Go to the documentation of this file.
100#if _MSC_VER >= 1900 && !defined(HAVE_STRUCT_TIMESPEC)
101# define HAVE_STRUCT_TIMESPEC
104#if defined(_MSC_VER) && defined(_M_AMD64)
108#if defined(__GNUC__) && defined(__x86_64__)
113#define PIXEL_MAX ((1 << KVZ_BIT_DEPTH) - 1)
124#define PU_DEPTH_INTER_MIN 0
125#define PU_DEPTH_INTER_MAX 3
126#define PU_DEPTH_INTRA_MIN 0
127#define PU_DEPTH_INTRA_MAX 4
130#define MAX_GOP_LAYERS 6
140#define MAX_PU_DEPTH 4
146#define OPTIMIZATION_SKIP_RESIDUAL_ON_THRESHOLD 0
151#define CU_MIN_SIZE_PIXELS (1 << MIN_SIZE)
153#define LCU_WIDTH (1 << (MIN_SIZE + MAX_DEPTH))
155#define LCU_WIDTH_C (LCU_WIDTH / 2)
158#define TR_MAX_LOG2_SIZE 5
159#define TR_MAX_WIDTH (1 << TR_MAX_LOG2_SIZE)
161#define TR_MIN_LOG2_SIZE 2
162#define TR_MIN_WIDTH (1 << TR_MIN_LOG2_SIZE)
165 #error "Kvazaar only support LCU_WIDTH == 64"
168#define LCU_LUMA_SIZE (LCU_WIDTH * LCU_WIDTH)
169#define LCU_CHROMA_SIZE (LCU_WIDTH * LCU_WIDTH >> 2)
179#define DEBLOCK_DELAY_PX 8
191#define SAO_DELAY_PX (DEBLOCK_DELAY_PX + 2)
193#define MAX_REF_PIC_COUNT 16
195#define AMVP_MAX_NUM_CANDS 2
196#define AMVP_MAX_NUM_CANDS_MEM 3
197#define MRG_MAX_NUM_CANDS 5
200#define ABS(a) ((a) >= 0 ? (a) : (-a))
201#define MAX(a,b) (((a)>(b))?(a):(b))
202#define MIN(a,b) (((a)<(b))?(a):(b))
203#define CLIP(low,high,value) MAX((low),MIN((high),(value)))
204#define CLIP_TO_PIXEL(value) CLIP(0, PIXEL_MAX, (value))
205#define CLIP_TO_QP(value) CLIP(0, 51, (value))
206#define SWAP(a,b,swaptype) { swaptype tempval; tempval = a; a = b; b = tempval; }
207#define CU_WIDTH_FROM_DEPTH(depth) (LCU_WIDTH >> depth)
208#define WITHIN(val, min_val, max_val) ((min_val) <= (val) && (val) <= (max_val))
209#define CEILDIV(x,y) (((x) + (y) - 1) / (y))
211#define LOG2_LCU_WIDTH 6
213#define CU_TO_PIXEL(x, y, depth, stride) (((y) << (LOG2_LCU_WIDTH - (depth))) * (stride) \
214 + ((x) << (LOG2_LCU_WIDTH - (depth))))
216#define SIGN3(x) (((x) > 0) - ((x) < 0))
220#define QUOTE_EXPAND(x) QUOTE(x)
223#define KVZ_VERSION 2.3.1
225#define VERSION_STRING QUOTE_EXPAND(KVZ_VERSION)
230#define SAO_ABS_OFFSET_MAX ((1 << (MIN(KVZ_BIT_DEPTH, 10) - 5)) - 1)
232#define MAX_TILES_PER_DIM 48
237 #define INLINE __forceinline
238 #pragma inline_recursion(on)
240 #define INLINE inline
244#define ALIGNED_POINTER(p, alignment) (void*)((intptr_t)(p) + (alignment) - ((intptr_t)(p) % (alignment)))
246#define SIMD_ALIGNMENT 32
249 #define ALIGNED(alignment) __declspec(align(alignment))
251 #define ALIGNED(alignment) __attribute__((aligned (alignment)))
257#define NO_ASAN __attribute__((no_sanitize("address")))
263 #define MALLOC(type, num) (type *)malloc(sizeof(type) * (num))
264 #define MALLOC_SIMD_PADDED(type, num, padding) (type *)malloc(sizeof(type) * (num) + (padding))
266 #define MALLOC(type, num) malloc(sizeof(type) * (num))
267 #define MALLOC_SIMD_PADDED(type, num, padding) malloc(sizeof(type) * (num) + (padding))
275#define FILL(var, val) memset(&(var), (val), sizeof(var))
277#define FILL_ARRAY(ar, val, size) \
279 void *temp_ptr = (void*)(ar);\
280 memset((temp_ptr), (val), (size) * sizeof(*(ar)));\
283#define FREE_POINTER(pointer) { free((void*)pointer); pointer = NULL; }
284#define MOVE_POINTER(dst_pointer,src_pointer) { dst_pointer = src_pointer; src_pointer = NULL; }
287#define MAX_INT 0x7FFFFFFF
290#define MAX_INT64 0x7FFFFFFFFFFFFFFFLL
293#define MAX_DOUBLE 1.7e+308
297#define SCALING_LIST_4x4 0
298#define SCALING_LIST_8x8 1
299#define SCALING_LIST_16x16 2
300#define SCALING_LIST_32x32 3
301#define SCALING_LIST_SIZE_NUM 4
302#define SCALING_LIST_NUM 6
303#define MAX_MATRIX_COEF_NUM 64
304#define SCALING_LIST_REM_NUM 6
306#define MAX_TR_DYNAMIC_RANGE 15
313#if defined(_M_IX86) || defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) || defined(_M_X64) || defined(_M_AMD64) || defined(__amd64__) || defined(__x86_64__)
314# define COMPILE_INTEL 1
316# define COMPILE_INTEL 0
325#define MSC_X86_SIMD(level) (_M_X64 || (_M_IX86_FP >= (level)))
328# if defined(__MMX__) || MSC_X86_SIMD(1)
329# define COMPILE_INTEL_MMX 1
331# if defined(__SSE__) || MSC_X86_SIMD(1)
332# define COMPILE_INTEL_SSE 1
334# if defined(__SSE2__) || MSC_X86_SIMD(2)
335# define COMPILE_INTEL_SSE2 1
337# if defined(__SSE3__)
338# define COMPILE_INTEL_SSE3 1
340# if defined(__SSSE3__) || MSC_X86_SIMD(2)
341# define COMPILE_INTEL_SSSE3 1
343# if defined(__SSE4_1__) || MSC_X86_SIMD(2)
344# define COMPILE_INTEL_SSE41 1
346# if defined(__SSE4_2__) || MSC_X86_SIMD(2)
347# define COMPILE_INTEL_SSE42 1
350# define COMPILE_INTEL_AVX 1
352# if defined(__AVX2__)
353# define COMPILE_INTEL_AVX2 1
357#if defined (_M_PPC) || defined(__powerpc64__) || defined(__powerpc__)
358# define COMPILE_POWERPC 1
360# define COMPILE_POWERPC_ALTIVEC 1
362# define COMPILE_POWERPC_ALTIVEC 0
365# define COMPILE_POWERPC 0
368#if defined (_M_ARM) || defined(__arm__) || defined(__thumb__)
369# define COMPILE_ARM 1
371# define COMPILE_ARM 0
375#define KVZ_QP_DELTA_MIN -(26 + 3 * (KVZ_BIT_DEPTH - 8))
376#define KVZ_QP_DELTA_MAX 25 + 3 * (KVZ_BIT_DEPTH - 8)
color_t
Definition: global.h:309
@ COLOR_V
Definition: global.h:309
@ COLOR_Y
Definition: global.h:309
@ COLOR_U
Definition: global.h:309
int16_t coeff_t
Definition: global.h:115