H264---CPB(CodedBlockPattern)
程序员文章站
2022-07-06 22:55:05
...
在I_16x16宏块中,CPB通过mb_type确定
而在其他宏块中,需要专门支出(传输)
coded_block_pattern 表示六个bit亮度和色度 8x8 块可能含有非零的变换系数幅值。对预测模式不等于
Intra_16x16 的 宏 块 , 比 特 流 中 存 在 coded_block_pattern 且 变 量 CodedBlockPatternLuma 和
CodedBlockPatternChroma :
2bit 色度CPB:CodedBlockPatternLuma = coded_block_pattern % 16
(CodedBlockPatternLuma ) 可取值0,1,2
4bit 亮度CPB:CodedBlockPatternChroma = coded_block_pattern / 16
(CodedBlockPatternChroma ) 对应4个8x8 分别取0,1
当存在 coded_block_pattern 时,CodedBlockPatternLuma 表示了宏块的每四个 8x8 亮度块的下列情形之一:
1、8x8 亮度块中的四个 4x4 亮度块的所有变换系数幅值都等于 0 ????残差(DC、AC)全部不编码
2、8x8 亮度块中的一个或多个 4x4 亮度块的一个或多个变换系数幅值不为 0????残差(DC、AC)全部编码
而色度CPB(CodedBlockPatternChroma)如下:
注:仅I_16x16支持单独编码DC系数
其他的宏块仅支持2种编码方案:残差全部编码or全部不编码