一 Cabac
基于上下文的自适应二进制算数编码CABAC,是一种自适应的二进制算数编码与一个设计精良的上下文模型结合起来得到的方法。它很好的利用了语法元素数值之间的高阶信息,使编码效率得到了进一步提高,在编码中,每一个符号的编码都与以前编码的结果有关,根据符号流的统计特习惯来自适应的为每一个符号分配码字,CABAC允许非整数的码字位数分配的各个符号,尤其适合于出现概率较大的符号。
二 Cabac原理
Cabac采用了高效的算术编码思想,同时充分考虑了视频流相关统计特性,大大提高了编码效率,它的编码过程主要包括3个基本步骤。
(1)二进制化
(2)上下文建模
(3)二进制算数编码,如图8.2 所示。
二进制化是将一个给定的非二进制语法元映射成一个二进制序列,即一个二元流,若输入的语法元素就是一个二进制的语法元素,则二进制化的处理被省略掉,数据通过一条旁路直接送往下一步。即对二元数据进行编码。二元算术编码有常规编码模式和旁路编码模式两种以供选择。在常规编码模式Regular Coding Mode中,语法元素的二元位Bin顺序地进入上下文模型器。编码器根据先前编码过的语法元素或者二元位的值,为每一个输入的二元位分配合适的概率模型,该过程即为上下文建模。将该Bin和分配给它的概率模型一起送进二元算术编码器进行编码。此外编码器还需要根据Bin值更新上下文模型,这就是编码中的自适应。另一种模式是旁路编码模式(Bypass Coding Mode),它无须为每个二元位分配特定特定的概率模型,输入的bin直接用一个简单的旁路编码器进行编码,以加快整个编码以及解码的速度。
输入语法元素-->非二进制语法元素-->二进制化
输入语法元素-->二进制语法元素
二进制值 --

CABAC是基于上下文的自适应二进制算数编码,结合算术编码与上下文模型,提高编码效率。它通过二进制化、上下文建模和算术编码三个步骤实现。上下文建模利用符号间的依赖关系提升性能,而编码模式包括常规编码和旁路编码。霍夫曼编码可用于二进制化,但其码字结构的不规则性增加了实现复杂度。
&spm=1001.2101.3001.5002&articleId=128605699&d=1&t=3&u=8d592bd8219f4f31adeefdde7f17a54f)
7298

被折叠的 条评论
为什么被折叠?



