代码改变世界

CABAC与CAVLC有什么区别?

2017-09-27 20:43  nigaopeng  阅读(3914)  评论(0编辑  收藏  举报

待完善

 

7.3.12 用 CAVLC 方式编码的残差数据的语义 coeff_token   指明了非零系数的个数,拖尾系数的个数。

 

trailing_ones_sign_flag 拖尾系数的符号 - 如果trailing_ones_sign_flag = 0, 相应的拖尾系数是+1。 - 否则,trailing_ones_sign_flag =1,相应的拖尾系数是-1。 -  level_prefix and level_suffix 非零系数值的前和后。

 

total_zeros  系数中 0 的总个数。 run_before 在非零系数之前连续零的个数。

 

7.3.13 用 CABAC 方式编码的残差数据的语义 coded_block_flag 指出当前块是否包含非零系数。 如果 coded_block_flag= 0, 这个块不包含非零系数。 如果 coded_block_flag = 1,这个块包含非零系数。

 

significant_coeff_flag[ i ] 指出在位置为 i 处的变换系数是否为零。 如果 significant_coeff_flag[ i ] = 0, 在位置为 i 处的变换系数为零。 否则,significant_coeff_flag[ i ] =1, 在位置为 i 处的变换系数不为零。

 

last_significant_coeff_flag[ i ] 表示当前位置 i 处的变换系数是否为块中后一个非零系数。 如果 last_significant_coeff_flag[ i ] =1, 这个块中随后的系数都为零。 否则, 这个块中随后的系数中还有其它的非零系数.

 

coeff_abs_level_minus1[ i ]系数的绝对值减 1。 coeff_sign_flag[ i ] 系数的符号位。 - coeff_sign_flag = 0, 正数。 - coeff_sign_flag=1, 负数。