TUT HEVC Encoder
|
Header that is included in every other header. More...
#include <assert.h>
#include <stdbool.h>
#include <stdint.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
Go to the source code of this file.
Macros | |
#define | PIXEL_MIN 0 |
#define | PIXEL_MAX ((1 << KVZ_BIT_DEPTH) - 1) |
#define | PU_DEPTH_INTER_MIN 0 |
Limits for prediction block sizes. 0 = 64x64, 4 = 4x4. More... | |
#define | PU_DEPTH_INTER_MAX 3 |
#define | PU_DEPTH_INTRA_MIN 0 |
#define | PU_DEPTH_INTRA_MAX 4 |
#define | MAX_GOP_LAYERS 6 |
Maximum number of layers in GOP structure (for allocating structures) More... | |
#define | MAX_DEPTH 3 |
Maximum CU depth when descending form LCU level. More... | |
#define | MIN_SIZE 3 |
Minimum log2 size of CUs. More... | |
#define | MAX_PU_DEPTH 4 |
Minimum log2 size of PUs. More... | |
#define | ENABLE_PCM 0 |
spec: pcm_enabled_flag, Setting to 1 will enable using PCM blocks (current intra-search does not consider PCM) More... | |
#define | OPTIMIZATION_SKIP_RESIDUAL_ON_THRESHOLD 0 |
skip residual coding when it's under some threshold More... | |
#define | CU_MIN_SIZE_PIXELS (1 << MIN_SIZE) |
pow(2, MIN_SIZE) More... | |
#define | LCU_WIDTH (1 << (MIN_SIZE + MAX_DEPTH)) |
spec: CtbSizeY More... | |
#define | LCU_WIDTH_C (LCU_WIDTH / 2) |
spec: CtbWidthC and CtbHeightC More... | |
#define | TR_MAX_LOG2_SIZE 5 |
spec: Log2MaxTrafoSize <= Min(CtbLog2SizeY, 5) More... | |
#define | TR_MAX_WIDTH (1 << TR_MAX_LOG2_SIZE) |
#define | TR_MIN_LOG2_SIZE 2 |
spec: Log2MinTrafoSize More... | |
#define | TR_MIN_WIDTH (1 << TR_MIN_LOG2_SIZE) |
#define | LCU_LUMA_SIZE (LCU_WIDTH * LCU_WIDTH) |
#define | LCU_CHROMA_SIZE (LCU_WIDTH * LCU_WIDTH >> 2) |
#define | DEBLOCK_DELAY_PX 8 |
Number of pixels to delay deblocking. More... | |
#define | SAO_DELAY_PX (DEBLOCK_DELAY_PX + 2) |
Number of pixels to delay SAO in horizontal and vertical directions. More... | |
#define | MAX_REF_PIC_COUNT 16 |
#define | AMVP_MAX_NUM_CANDS 2 |
#define | AMVP_MAX_NUM_CANDS_MEM 3 |
#define | MRG_MAX_NUM_CANDS 5 |
#define | ABS(a) ((a) >= 0 ? (a) : (-a)) |
#define | MAX(a, b) (((a)>(b))?(a):(b)) |
#define | MIN(a, b) (((a)<(b))?(a):(b)) |
#define | CLIP(low, high, value) MAX((low),MIN((high),(value))) |
#define | CLIP_TO_PIXEL(value) CLIP(0, PIXEL_MAX, (value)) |
#define | CLIP_TO_QP(value) CLIP(0, 51, (value)) |
#define | SWAP(a, b, swaptype) { swaptype tempval; tempval = a; a = b; b = tempval; } |
#define | CU_WIDTH_FROM_DEPTH(depth) (LCU_WIDTH >> depth) |
#define | WITHIN(val, min_val, max_val) ((min_val) <= (val) && (val) <= (max_val)) |
#define | CEILDIV(x, y) (((x) + (y) - 1) / (y)) |
#define | LOG2_LCU_WIDTH 6 |
#define | CU_TO_PIXEL(x, y, depth, stride) |
#define | SIGN3(x) (((x) > 0) - ((x) < 0)) |
#define | QUOTE(x) #x |
#define | QUOTE_EXPAND(x) QUOTE(x) |
#define | KVZ_VERSION 2.3.1 |
#define | VERSION_STRING QUOTE_EXPAND(KVZ_VERSION) |
#define | SAO_ABS_OFFSET_MAX ((1 << (MIN(KVZ_BIT_DEPTH, 10) - 5)) - 1) |
#define | MAX_TILES_PER_DIM 48 |
#define | MAX_SLICES 16 |
#define | INLINE inline |
#define | ALIGNED_POINTER(p, alignment) (void*)((intptr_t)(p) + (alignment) - ((intptr_t)(p) % (alignment))) |
#define | SIMD_ALIGNMENT 32 |
#define | ALIGNED(alignment) __attribute__((aligned (alignment))) |
#define | NO_ASAN __attribute__((no_sanitize("address"))) |
#define | MALLOC(type, num) malloc(sizeof(type) * (num)) |
#define | MALLOC_SIMD_PADDED(type, num, padding) malloc(sizeof(type) * (num) + (padding)) |
#define | FILL(var, val) memset(&(var), (val), sizeof(var)) |
#define | FILL_ARRAY(ar, val, size) |
#define | FREE_POINTER(pointer) { free((void*)pointer); pointer = NULL; } |
#define | MOVE_POINTER(dst_pointer, src_pointer) { dst_pointer = src_pointer; src_pointer = NULL; } |
#define | MAX_INT 0x7FFFFFFF |
#define | MAX_INT64 0x7FFFFFFFFFFFFFFFLL |
#define | MAX_DOUBLE 1.7e+308 |
#define | SCALING_LIST_4x4 0 |
#define | SCALING_LIST_8x8 1 |
#define | SCALING_LIST_16x16 2 |
#define | SCALING_LIST_32x32 3 |
#define | SCALING_LIST_SIZE_NUM 4 |
#define | SCALING_LIST_NUM 6 |
#define | MAX_MATRIX_COEF_NUM 64 |
#define | SCALING_LIST_REM_NUM 6 |
#define | MAX_TR_DYNAMIC_RANGE 15 |
#define | COMPILE_INTEL 0 |
#define | MSC_X86_SIMD(level) (_M_X64 || (_M_IX86_FP >= (level))) |
#define | COMPILE_POWERPC 0 |
#define | COMPILE_ARM 0 |
#define | KVZ_QP_DELTA_MIN -(26 + 3 * (KVZ_BIT_DEPTH - 8)) |
#define | KVZ_QP_DELTA_MAX 25 + 3 * (KVZ_BIT_DEPTH - 8) |
Typedefs | |
typedef int16_t | coeff_t |
Enumerations | |
enum | color_t { COLOR_Y = 0 , COLOR_U , COLOR_V } |
This file contains global constants that can be referred to from any header or source file. It also contains some helper macros and includes stdint.h so that any file can refer to integer types with exact widths.
#define ABS | ( | a | ) | ((a) >= 0 ? (a) : (-a)) |
#define ALIGNED | ( | alignment | ) | __attribute__((aligned (alignment))) |
#define ALIGNED_POINTER | ( | p, | |
alignment | |||
) | (void*)((intptr_t)(p) + (alignment) - ((intptr_t)(p) % (alignment))) |
#define AMVP_MAX_NUM_CANDS 2 |
#define AMVP_MAX_NUM_CANDS_MEM 3 |
#define CEILDIV | ( | x, | |
y | |||
) | (((x) + (y) - 1) / (y)) |
#define CLIP_TO_QP | ( | value | ) | CLIP(0, 51, (value)) |
#define COMPILE_ARM 0 |
#define COMPILE_INTEL 0 |
#define COMPILE_POWERPC 0 |
#define CU_MIN_SIZE_PIXELS (1 << MIN_SIZE) |
#define CU_TO_PIXEL | ( | x, | |
y, | |||
depth, | |||
stride | |||
) |
#define CU_WIDTH_FROM_DEPTH | ( | depth | ) | (LCU_WIDTH >> depth) |
#define DEBLOCK_DELAY_PX 8 |
Number of pixels at the bottom and right side of the LCU that are not deblocked until when filtering the neighboring LCU. The last four chroma pixels of the horizontal edges within the LCU are deblocked with the LCU to the right. Therefore, DEBLOCK_DELAY_PX is set to 8 pixels.
#define ENABLE_PCM 0 |
#define FILL | ( | var, | |
val | |||
) | memset(&(var), (val), sizeof(var)) |
#define FILL_ARRAY | ( | ar, | |
val, | |||
size | |||
) |
#define FREE_POINTER | ( | pointer | ) | { free((void*)pointer); pointer = NULL; } |
#define INLINE inline |
#define KVZ_QP_DELTA_MAX 25 + 3 * (KVZ_BIT_DEPTH - 8) |
#define KVZ_QP_DELTA_MIN -(26 + 3 * (KVZ_BIT_DEPTH - 8)) |
#define KVZ_VERSION 2.3.1 |
#define LCU_WIDTH_C (LCU_WIDTH / 2) |
#define LOG2_LCU_WIDTH 6 |
#define MALLOC | ( | type, | |
num | |||
) | malloc(sizeof(type) * (num)) |
#define MALLOC_SIMD_PADDED | ( | type, | |
num, | |||
padding | |||
) | malloc(sizeof(type) * (num) + (padding)) |
#define MAX | ( | a, | |
b | |||
) | (((a)>(b))?(a):(b)) |
#define MAX_DEPTH 3 |
spec: log2_diff_max_min_luma_coding_block_size
#define MAX_DOUBLE 1.7e+308 |
#define MAX_GOP_LAYERS 6 |
#define MAX_INT 0x7FFFFFFF |
#define MAX_INT64 0x7FFFFFFFFFFFFFFFLL |
#define MAX_MATRIX_COEF_NUM 64 |
#define MAX_PU_DEPTH 4 |
Search is started at depth 0 and goes in Z-order to MAX_PU_DEPTH, see search_cu()
#define MAX_REF_PIC_COUNT 16 |
#define MAX_SLICES 16 |
#define MAX_TILES_PER_DIM 48 |
#define MAX_TR_DYNAMIC_RANGE 15 |
#define MIN | ( | a, | |
b | |||
) | (((a)<(b))?(a):(b)) |
#define MIN_SIZE 3 |
spec: MinCbLog2SizeY
#define MOVE_POINTER | ( | dst_pointer, | |
src_pointer | |||
) | { dst_pointer = src_pointer; src_pointer = NULL; } |
#define MRG_MAX_NUM_CANDS 5 |
#define MSC_X86_SIMD | ( | level | ) | (_M_X64 || (_M_IX86_FP >= (level))) |
#define NO_ASAN __attribute__((no_sanitize("address"))) |
#define OPTIMIZATION_SKIP_RESIDUAL_ON_THRESHOLD 0 |
#define PIXEL_MAX ((1 << KVZ_BIT_DEPTH) - 1) |
#define PIXEL_MIN 0 |
#define PU_DEPTH_INTER_MAX 3 |
#define PU_DEPTH_INTER_MIN 0 |
#define PU_DEPTH_INTRA_MAX 4 |
#define PU_DEPTH_INTRA_MIN 0 |
#define QUOTE | ( | x | ) | #x |
#define QUOTE_EXPAND | ( | x | ) | QUOTE(x) |
#define SAO_ABS_OFFSET_MAX ((1 << (MIN(KVZ_BIT_DEPTH, 10) - 5)) - 1) |
#define SAO_DELAY_PX (DEBLOCK_DELAY_PX + 2) |
Number of pixels at the bottom and right side of the LCU that are not filtered with SAO until when filtering the neighboring LCU. SAO reconstruction requires that a one pixels border has been deblocked for both luma and chroma. Therefore, SAO_DELAY_PX is set to DEBLOCK_DELAY_PX + 2.
#define SCALING_LIST_16x16 2 |
#define SCALING_LIST_32x32 3 |
#define SCALING_LIST_4x4 0 |
#define SCALING_LIST_8x8 1 |
#define SCALING_LIST_NUM 6 |
#define SCALING_LIST_REM_NUM 6 |
#define SCALING_LIST_SIZE_NUM 4 |
#define SIGN3 | ( | x | ) | (((x) > 0) - ((x) < 0)) |
#define SIMD_ALIGNMENT 32 |
#define SWAP | ( | a, | |
b, | |||
swaptype | |||
) | { swaptype tempval; tempval = a; a = b; b = tempval; } |
#define TR_MAX_LOG2_SIZE 5 |
#define TR_MAX_WIDTH (1 << TR_MAX_LOG2_SIZE) |
#define TR_MIN_LOG2_SIZE 2 |
#define TR_MIN_WIDTH (1 << TR_MIN_LOG2_SIZE) |
#define VERSION_STRING QUOTE_EXPAND(KVZ_VERSION) |
#define WITHIN | ( | val, | |
min_val, | |||
max_val | |||
) | ((min_val) <= (val) && (val) <= (max_val)) |
typedef int16_t coeff_t |
enum color_t |