x264 中 CABAC 熵编码介绍
- x264中的CABAC(Context-Adaptive Binary Arithmetic Coding)熵编码是H.264视频压缩标准中用于提高压缩效率的关键技术之一。CABAC是一种基于上下文自适应的二进制算术编码方法,它利用视频数据的统计特性和上下文信息来减少编码后的数据量,从而提高编码效率。
- 在x264的编码过程中,CABAC编码被用于编码宏块数据,包括运动向量差异、参考帧索引和变换系数等。x264中的CABAC编码模块由多个函数组成,如
x264_macroblock_write_cabac
用于CABAC熵编码的宏块数据输出 。
cabac_mb_header_p 函数
- 功能:cabac 熵编码中编码 P 帧内宏块头信息。
- 函数原理流程
- 宏块类型是P_L0 时,
- 调用
x264_cabac_encode_decision_noup( cb, 14, 0 )
;函数编码宏块类型为P_L0的决策。14是CABAC上下文中的索引,0是要编码的决策值(0或1)。- 分块类型为D_16x16,