- 1、本文档共491页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字电视原理(余兆明 西电版第4章 图像数据压缩编码
4.1 图像数据压缩编码概述 4.2 预测编码 4.3 变换编码 4.4 熵编码 4.5 子带编码 4.6 小波变换 4.7 分形图像编码 4.8 模型基图像编码 习题 图 4.4.11 自适应算术编码的基本模型 为了提高编码效率并解决复杂性和自适应性的问题,H.264引入了CABAC,它除了具有算术编码固有的优点之外,还有以下特点: (1) 具有自适应能力。CABAC在编码过程中能够动态地估计符号的概率,下一个待编码的符号将按新的概率进行编码。 (2) 传统的自适应算术编码(AAC)在编码的过程中累计接收到的符号数目,在总的符号数目中所占的百分比作为对其概率的估计,在实现时需要用到除法运算。CABAC的自适应原理与之相同,但是采用了有限状态机(Finite State Machine,FSM)与查表来实现对概率的估计。FSM的每一个状态对应一个典型概率,这实际上是对概率进行了量化。估计符号概率的过程相当于在不同的状态间切换。这样建立一个状态转换表就可以用简单的查表来完成概率更新,从而避免了传统AAC中概率估计所用的除法运算。 (3) CABAC同样用查表的方法完成子区间的划分。一般地,如果想得到子区间的长度,需要做乘法Range×p,其中Range代表当前区间的长度,p为概率。为避免乘法运算,CABAC将Range进行了量化,由于概率p已经被离散地表示成FSM的一个个状态,所以Range×p的结果就是有限个数,可以事先计算好作成一张表,这样以当前区间的量化值和状态作为索引就可以查表得到子区间的长度了。总之,CABAC可以获得比CAVLC更好的自适应性和编码性能,其代价就是相对较高的复杂性。 H.264的自适应算术编码主要有以下几个步骤,如图4.4.11所示。 (1) 上下文建模:使基本概率模型能适应随视频帧而改变的统计特性。上下文建模提供了编码符号的条件概率估计,并利用合适的上下文模型去除符号间的相关性。 (2) 二值化:CABAC使用二进制的算术编码,这就意味着编码器只对0或者1的二进制数进行编码。二值化过程就是把非二进制的符号(比如变换系数、运动矢量)变成二进制的符号。 (3) 算术编码:根据选择的概率模式对输入二进制符号编码。 (4) 概率估计更新:被选择的内容模型将根据当前所输入的二进制符号进行更新。例如,如果当前的符号是“1”,则“1”的概率将被增加。 下面,我们将详细讨论二进制转换、上下文建模和二进制算术编码三个主要步骤。 1) 二进制转换 (1) 常规方法。在视频编码的上下文建模和自适应算术编码中,一个成功的方法应满足以下两个要求: ① 在编码单元间很短的时间间隔内快速、准确地完成对条件概率的评估; ② 计算复杂度,包括执行概率评估与随后算术编码的每一个基本操作,必须保持在一个很低的水准,从而确保固有过程的高吞吐量。 为了满足这两个要求,首先介绍减小编码语法元素字母表尺寸的预处理过程。CABAC中减小字母表是通过应用二进制转换将非二进制语法元素唯一映射到一个二进制码字,称为二进制串(bin string)。这种方法的优点在建模和执行时都有体现。 首先,我们应该注意到在建模过程中并没有丢失什么,尽管可能有些独立的符号会被恢复。为了举例说明这个问题,我们来看看P/SP片的mb_type的二进制转换。 在图4.4.12(a)的描述中,二元树的末节点对应于语法元素的符号值,从根节点到末节点符号值的串联即可表示相应二进制串的符号值。例如,设mb_type的值为3,宏块类型“P_8×8”,也就是,在一个P/SP片中,宏块被分割成4个8×8子块。在这种情况下,bin string的值为“001”。按照这个逻辑,符号概率p(“3”)就等于概率p (C0)(“0”),p (C1)(“0”)和p (C2)(“1”)的乘积。其中,C0、C1和C2分别表示相应内部节点的(二元)概率模型,见图4.4.12。这种联系对所有符号成立。 图 4.4.12 P/SP片的mb_type的二进制转换 (a) 四步二元树实例; (b) 三步二元树实例 虽然在这一阶段看不出获得什么收益,但使用二进制算术编码器来代替m-ary算术编码器却有着明显的优点。自适应m-ary算术编码(当m2时)对每个符号至少要进行两次乘法运算,同时,执行概率评估的操作也相当复杂。为了压缩这些操作,专门为CABAC构架开发了快速无乘法运算二进制算术编码。 最后,作为最重要的优点,二进制转换允许在子符号层上进行上下文建模。经常出现的bins可以使用条件概率,而特殊的bins则要联合对待,典型的有无序概率模型。相比常规的上下文建模方法,设计中附加的自由度
文档评论(0)