X-Git-Url: https://git.piment-noir.org/?p=deb_x265.git;a=blobdiff_plain;f=source%2Fcommon%2Fcommon.h;h=a0f82860cec98026cac819f9659e58a7aac255fc;hp=b447bb372768379ea750102fcd00db6df00bd592;hb=b53f7c52d8280ab63876efd6eb292c21430ac607;hpb=5c9b45285dd64723ad1dac380b98a7b1f3095674 diff --git a/source/common/common.h b/source/common/common.h index b447bb3..a0f8286 100644 --- a/source/common/common.h +++ b/source/common/common.h @@ -41,6 +41,15 @@ #include "x265.h" +#if ENABLE_PPA +#include "PPA/ppa.h" +#define ProfileScopeEvent(x) PPAScopeEvent(x) +#define PROFILE_INIT() PPA_INIT() +#else +#define ProfileScopeEvent(x) +#define PROFILE_INIT() +#endif + #define FENC_STRIDE 64 #define NUM_INTRA_MODE 35 @@ -56,6 +65,10 @@ extern "C" intptr_t x265_stack_align(void (*func)(), ...); #define x265_stack_align(func, ...) func(__VA_ARGS__) #endif +#if defined(__MINGW32__) +#define fseeko fseeko64 +#endif + #elif defined(_MSC_VER) #define ALIGN_VAR_8(T, var) __declspec(align(8)) T var @@ -245,9 +258,6 @@ typedef int16_t coeff_t; // transform coefficient #define MAX_TR_SIZE (1 << MAX_LOG2_TR_SIZE) #define MAX_TS_SIZE (1 << MAX_LOG2_TS_SIZE) -#define MAX_NUM_TR_COEFFS MAX_TR_SIZE * MAX_TR_SIZE /* Maximum number of transform coefficients, for a 32x32 transform */ -#define MAX_NUM_TR_CATEGORIES 8 /* 32, 16, 8, 4 transform categories each for luma and chroma */ - #define COEF_REMAIN_BIN_REDUCTION 3 // indicates the level at which the VLC // transitions from Golomb-Rice to TU+EG(k) @@ -297,21 +307,12 @@ typedef int16_t coeff_t; // transform coefficient #define CHROMA_H_SHIFT(x) (x == X265_CSP_I420 || x == X265_CSP_I422) #define CHROMA_V_SHIFT(x) (x == X265_CSP_I420) +#define X265_MAX_PRED_MODE_PER_CTU 85 * 2 * 8 namespace x265 { enum { SAO_NUM_OFFSET = 4 }; -// NOTE: MUST be alignment to 16 or 32 bytes for asm code -struct NoiseReduction -{ - /* 0 = luma 4x4, 1 = luma 8x8, 2 = luma 16x16, 3 = luma 32x32 - * 4 = chroma 4x4, 5 = chroma 8x8, 6 = chroma 16x16, 7 = chroma 32x32 */ - uint16_t offsetDenoise[MAX_NUM_TR_CATEGORIES][MAX_NUM_TR_COEFFS]; - uint32_t residualSum[MAX_NUM_TR_CATEGORIES][MAX_NUM_TR_COEFFS]; - uint32_t count[MAX_NUM_TR_CATEGORIES]; -}; - enum SaoMergeMode { SAO_MERGE_NONE, @@ -358,6 +359,20 @@ struct SAOParam } }; +/* Stores inter (motion estimation) analysis data for a single frame */ +struct analysis_inter_data +{ + int ref; +}; + +/* Stores intra analysis data for a single frame. This struct needs better packing */ +struct analysis_intra_data +{ + uint8_t* depth; + uint8_t* modes; + char* partSizes; +}; + enum TextType { TEXT_LUMA = 0, // luma