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