1 /* 2 * Copyright(c) 2018 Intel Corporation 3 * SPDX - License - Identifier: BSD - 2 - Clause - Patent 4 */ 5 6 #ifndef EbTransformUnit_h 7 #define EbTransformUnit_h 8 9 #include "EbDefinitions.h" 10 #ifdef __cplusplus 11 extern "C" { 12 #endif 13 #define TRANSFORM_UNIT_MAX_COUNT 5 14 #define TRANSFORM_UNIT_2Nx2N_AREA 16 15 #define TRANSFORM_UNIT_NxN_AREA 4 16 17 #pragma pack(push, 1) 18 typedef struct TransformUnit_s { 19 unsigned tuIndex : 5; 20 unsigned lumaCbfContext : 1; 21 unsigned splitFlag : 1; 22 unsigned chromaCbfContext : 2; 23 unsigned cbCbf : 1; 24 unsigned crCbf : 1; 25 unsigned lumaCbf : 1; 26 unsigned transCoeffShapeLuma : 2; 27 unsigned transCoeffShapeChroma : 2; 28 unsigned transCoeffShapeChroma2 : 2; 29 30 unsigned cbCbf2 : 1; 31 unsigned crCbf2 : 1; 32 EB_U16 nzCoefCount[3]; 33 EB_BOOL isOnlyDc[3]; 34 35 EB_U16 nzCoefCount2[2]; 36 EB_BOOL isOnlyDc2[3]; 37 } TransformUnit_t; 38 #pragma pack(pop) 39 #ifdef __cplusplus 40 } 41 #endif 42 #endif // EbTransformUnit_h 43