位于视频编解码系统末端。
目标:去除信源符号在表达信息上的冗余,并完成码流的组织。
码流组成:大部分是变换系数的编码比特数,一些运动矢量等辅助信息、小部分是各种flag。

6.1 基本原理

极限熵:表示该信息量所需的最少比特数,这是熵编码的最优目标。
熵编码:即变长编码,对大概率符号用少的码字或后面讲的其他方式,这样比等长编码短(也就去除了编码冗余)

6.1.1 信源的数学描述及信息熵测度

信息熵:信源F每输出一个符号所提供的平均信息量(N阶)
高文老师《数字视频编码技术原理》第6章:熵编码
编码所需要的最小码率不可能低于信源的信息熵。

降低码率的方法:矢量无损编码、条件无损编码。
矢量无损编码:将连续的N个符号当成一个矢量,对这个矢量分配一个码字。
条件无损编码:当前符号所使用的码字取决于之前编码的符号,即基于上下文的编码方式。

6.1.2 变长编码

变长编码也被称之为熵编码,尽可能趋近于极限熵
哈夫曼码:最经典、最佳变长码。缺点:需传输哈夫曼表,并且解码的复杂度很高。
高文老师《数字视频编码技术原理》第6章:熵编码
指数哥伦布码:结构性好,解码器可以很快判断码字长度。
高文老师《数字视频编码技术原理》第6章:熵编码
变长码缺点:每个输入符号至少1bit才能表示,只有当信源概率是2的x次方时才能达到信源一阶熵。

6.1.3 算术编码

优点:对整体输入符号分配一个码字,码字较短。
缺点:计算复杂度较高,通过查表的方式可以作为此缺点的解决方案(H.264/AVC)。
高文老师《数字视频编码技术原理》第6章:熵编码
自适应算数编码器:根据信源符号局部统计特性,更新信源符号的概率值。

6.2 变换系数分布特性

主要研究原因:占总体码流的大部分。

6.2.1 DCT系数的统计特性

特性:低频系数幅值大,高频系数幅值小。
处理方法:zigzag扫描来组织DCT系数,形成一维序列。
两种符号:非零系数(Level)、连续两个非零系数中间零系数的个数(Run)。
趋势:Level递减、Run递增,两者呈负相关。
高文老师《数字视频编码技术原理》第6章:熵编码
利用这些统计特性来获取更高的压缩性能。

6.2.2 小波变换系数的统计特性

相同空间位置不同子带系数具有相似性。
随子带频率的增加系数能量逐渐减少。
幅值大的系数对于解码质量的贡献高于幅值小的系数

6.3 典型的图像熵编码方法

行程编码(游程编码):将连续出现的多个相同符号及出现次数映射为某个码字。
高文老师《数字视频编码技术原理》第6章:熵编码
上下文状态的建立:Run和Level分开编码,根据Run的起始位置分成12种哈夫曼表(左图),Level根据位置分成8种哈夫曼表(右图)。
高文老师《数字视频编码技术原理》第6章:熵编码
小波变换:零树扫描
高文老师《数字视频编码技术原理》第6章:熵编码

6.4 典型的视频熵编码方法

笔者小记:这有n个概率模型(如几个适合剧烈变换的[0.1,0.9],另外几个适合平缓[0.4,0.6]),对于当前情况这n个哪个更好(如当前应该很平缓,应该选择平缓的几个之一)。
上下文建模:进行概率估计,使估计的条件概率是真正条件概率是良好估计——根据概率分布选取一个良好的给定的子序列过程,故上下文就是条件概率分布。
精确度:1、上下文模型与编码对象的统计特性匹配程度;2、如何对熵编码器的输入序列进行适当的调整。
基于上下文的编码:为编码器设定多个上下文状态,利用已编码的历史信息(即上下文信息),选择其中一个状态,在此状态下对当前待编码符号进行编码。

6.4.1 基于上下文的变长编码方法

变长编码:VLC
基于上下文的变长编码:CAVLC(H.264/AVC、AVS)
优势:高吞吐率
缺陷:不易于并行,码表需统计获得,对概率大于0.5的单个符号无法有效编码。

6.4.2 基于上下文的算术编码

算术编码:BAC
基于上下文的算术编码:CABAC(H.263 -)
编码方式:正反两次扫描。在首次正向扫描中根据系数的物理频率位置构造上下文对系数的第一位面进行编码,首先编码系数的第一位平面Sig,取值为0或1。如果Sig值为1,则需要编码符号Last用于表示当前系数是否为当前块中的最后一个非零系数。在二次〉逆扫描中完成对非零系数其他位面的编码。编码系数时根据连续系数值等于或大于1的个数来区分不同的上下文模型,取得了较高的编码性能。
优势:1、二进制算术编码器复杂度低;2、建立多个模型进行自适应切换充分挖掘了编码系数上下文的相关性;3、基于有限状态机的上下文模型的更新机制更为灵活和精确。
上下文模型的类型:主上下文模型、次上下文模型、伴随上下文模型(上下文加权模型)。

6.4.3 位平面编码

方法:将数值表示成二进制形式,再按照MSB到LSB的顺序依次对每个位平面编码。
高文老师《数字视频编码技术原理》第6章:熵编码

6.4.4 零树编码

对小波变换进行的熵编码,略。

相关文章:

  • 2021-04-08
  • 2021-07-21
  • 2021-07-11
  • 2021-12-06
  • 2021-10-20
  • 2022-03-10
  • 2021-06-30
猜你喜欢
  • 2021-11-15
  • 2021-04-22
  • 2021-12-05
  • 2021-12-11
  • 2021-09-04
  • 2022-12-23
相关资源
相似解决方案