一、上下文自适应的二进制算术编码
在上篇博文十六、算术编码_1、基本原理与实现,然而在实际的H.264编解码的方法中,显然是不可能采用上文中简单的算法来实现。
- H.264采用的算术编码方法:
- 上下文自适应的二进制算术编码(Context-based Adaptive Binary Arithmetic Coding, CABAC)
- CABAC:
- H264中首先采用的、专用于视频压缩编码的熵编码算法
- 在视频编码的发展中保持了强大生命力,并在H265中保留继承
- 在CABAC中,主要步骤或算法可以分为3个步骤/类别:
- 语法元素的二值化: 残差数据不可能只有0、1,而是包含的非常广的取值范围的,所以需要将取值范围广泛的语法元素转化为0/1的二进制信息流
- 语法元素的山下文: 维护每个语法元素在每次编码执行过程时的概率模型及其变化(概率模型是动态发生变化的)
- 算法编码: 根据上下文给出的概率模型,将二值化的语法元素编码为码流。(这部分和上节的算术编码的原理基本一致)
- 在H264的标准文档中,CABAC的解析方法定义于9.3节。
- 在文档中使用cabac的语法元素以描述符ae(v)来标识
- 对使用CABA