一、前言
在前面的学习中我们已经了解到熵编码是利用信息的统计冗余进行数据压缩的无损编码方法,并且已经讨论过了熵编码的基本原理、H.264中使用的语法元素解析算法“指数哥伦布编码”的算法与实践,讨论了在H.264中非常重要的一种熵编码方法,即上下文自适应的变长编码(CAVLC);
以上的内容在H.264的baseline profile中具有广泛应用。然而在实际应用场景中更为流行的通常是main profile(main profile区别于前面的baseline profile最主要是熵编码使用了算法编码CABAC),在main profile中为了进一步提升压缩比率,采用的熵编码方法不是CAVLC,而是压缩效率更高的CABAC
CABAC的全称为上下文自适应的二进制算术编码(Context-Adaptive Binary Arithmetic Coding, CABAC)
二、算术编码的基本概念
- 什么是算术编码
- 算术编码是一种极为常用的熵编码算法,常用于图像和视频等数据的无损压缩
- 算术编码的特点
- 相同点:高频元素分配短码,低频元素分配长码
- 差异点:VLC将每个元素分配一个码字,最终得到多个元素对应码字相接而成的码流&#