lavc/hevc_cabac: fix cbf_cb and cbf_cr for transform depth 4

The max transform depth is 5(from 0 to 4), so we need 5 cabac states for
cbf_cb and cbf_cr.

See Table 9-4 for details.

Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
Linjie Fu 2019-12-11 16:47:38 +08:00 committed by James Almer
parent 377a095dc3
commit d31a290226
1 changed files with 21 additions and 21 deletions

View File

@ -66,7 +66,7 @@ static const int8_t num_bins_in_se[] = {
1, // no_residual_data_flag 1, // no_residual_data_flag
3, // split_transform_flag 3, // split_transform_flag
2, // cbf_luma 2, // cbf_luma
4, // cbf_cb, cbf_cr 5, // cbf_cb, cbf_cr
2, // transform_skip_flag[][] 2, // transform_skip_flag[][]
2, // explicit_rdpcm_flag[][] 2, // explicit_rdpcm_flag[][]
2, // explicit_rdpcm_dir_flag[][] 2, // explicit_rdpcm_dir_flag[][]
@ -122,23 +122,23 @@ static const int elem_offset[sizeof(num_bins_in_se)] = {
37, // split_transform_flag 37, // split_transform_flag
40, // cbf_luma 40, // cbf_luma
42, // cbf_cb, cbf_cr 42, // cbf_cb, cbf_cr
46, // transform_skip_flag[][] 47, // transform_skip_flag[][]
48, // explicit_rdpcm_flag[][] 49, // explicit_rdpcm_flag[][]
50, // explicit_rdpcm_dir_flag[][] 51, // explicit_rdpcm_dir_flag[][]
52, // last_significant_coeff_x_prefix 53, // last_significant_coeff_x_prefix
70, // last_significant_coeff_y_prefix 71, // last_significant_coeff_y_prefix
88, // last_significant_coeff_x_suffix 89, // last_significant_coeff_x_suffix
88, // last_significant_coeff_y_suffix 89, // last_significant_coeff_y_suffix
88, // significant_coeff_group_flag 89, // significant_coeff_group_flag
92, // significant_coeff_flag 93, // significant_coeff_flag
136, // coeff_abs_level_greater1_flag 137, // coeff_abs_level_greater1_flag
160, // coeff_abs_level_greater2_flag 161, // coeff_abs_level_greater2_flag
166, // coeff_abs_level_remaining 167, // coeff_abs_level_remaining
166, // coeff_sign_flag 167, // coeff_sign_flag
166, // log2_res_scale_abs 167, // log2_res_scale_abs
174, // res_scale_sign_flag 175, // res_scale_sign_flag
176, // cu_chroma_qp_offset_flag 177, // cu_chroma_qp_offset_flag
177, // cu_chroma_qp_offset_idx 178, // cu_chroma_qp_offset_idx
}; };
#define CNU 154 #define CNU 154
@ -189,7 +189,7 @@ static const uint8_t init_values[3][HEVC_CONTEXTS] = {
// cbf_luma // cbf_luma
111, 141, 111, 141,
// cbf_cb, cbf_cr // cbf_cb, cbf_cr
94, 138, 182, 154, 94, 138, 182, 154, 154,
// transform_skip_flag // transform_skip_flag
139, 139, 139, 139,
// explicit_rdpcm_flag // explicit_rdpcm_flag
@ -266,7 +266,7 @@ static const uint8_t init_values[3][HEVC_CONTEXTS] = {
// cbf_luma // cbf_luma
153, 111, 153, 111,
// cbf_cb, cbf_cr // cbf_cb, cbf_cr
149, 107, 167, 154, 149, 107, 167, 154, 154,
// transform_skip_flag // transform_skip_flag
139, 139, 139, 139,
// explicit_rdpcm_flag // explicit_rdpcm_flag
@ -343,7 +343,7 @@ static const uint8_t init_values[3][HEVC_CONTEXTS] = {
// cbf_luma // cbf_luma
153, 111, 153, 111,
// cbf_cb, cbf_cr // cbf_cb, cbf_cr
149, 92, 167, 154, 149, 92, 167, 154, 154,
// transform_skip_flag // transform_skip_flag
139, 139, 139, 139,
// explicit_rdpcm_flag // explicit_rdpcm_flag