由三个部分组成.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
由三个部分组成: 一. 二进制化 (主要是将非二制的各语法元素转换成二进制的比特序列,也可以称为对输入流的预编码,经它编码后的输出是MPS概率极高的比特流。) MPS(高概率符号0或1) 、LPS(低概率符号1 或0) 在算术编码流程中必须的记录状态为: L 当前区间的下限 R 当前区间的大小长度 Binval 当前字符,即二进制的符号1或0 各字符的概率Px 当前处理的字符为MPS时,区间递进只是子区间的长度发生了改变,而作为影响实际输出值的L却没有发生改变,这个现象意味着如果输入流中连续出现大量的MPS,或者MPS相对LPS出现的概率比较高时, 可以达到极高的压缩效果,编码输出的码率也更接近熵率。 四种转换方式: Unary Binarization(U) ; Truncated unary binarization(TU); Kth order Exp_golomb binarization (UEGK); Fixed_length binarization (FL) U : binIdx 编码后的比持序号 编码前 编码后的比特流 0 0 1 1 0 2 1 1 0 3 1 1 1 0 . . . . . . binIdx 0 1 2 3 二. 上下文建模 为基本的CABAC 编码过程 , 一种regular coding mode 另一种为 bypass coding mode. 只有regular coding mode 应用了上下文模型,而直通模式用于加速编码流程,当概率近似为50%的时候。这部分主要说明regular coding mode的进程。这里,先说理论,再讲流程。  理论:   1,CABAC 算术编码基础 算术编码的复杂度主要体现在概率的估计和更新, CABAC建立了一个基于查表的概率模型,将0~0.5 划分为64个概率量化值,这些概率对应于LPS字符,而MPS的概率为(1-Plps),概率的估计值被限制在查表内,概率的刷新也是依据于查表。如果当前出现的字符是MPS,则Plps 变小。 划分子区间的乘法运算 R=R x Px 对于这里的乘法运算,CABAC首先建立了一个二维表格,存储预先计算好的乘法结果,表格的入口参数一个来自Px( 对应于theta,概率量化值),另一个来自R(R的量化为:p=(R6)3 ), 流程图: 图中,灰色部分是概率的刷新部分,表TABRangeLPS存储预先计算好的乘法结果,表TransIDxLPS是与对应的概率表。 有三个值是比较特殊的,: theata=0 时,LPS的概率已达到了最大值0.5,如果下一个出现的是LPS,则此时LPS和MPS的字符交换位置. Theta=63对应着LPS的最小概率值,但它并没有纳入CABAC的概率估计和更新的范围,这个值被用做特殊场合,传递特殊信息,比如,当解码器检测到当前区间的划分依据是这个值时,认为表示当前流的结束. Theta=62 ,这是表中的最小值,它对应的刷新值是它自身,当MPS连续出现,LPS的概率持续减小,到62保持不变。 2 CABAC 上下文模型 CABAC将片作为算术编码的生命周期,h.264将一个片内可能出现的数据划分为399个上下文模型,每个模型均有自己的CtxIdx(上下文序号 ),每个不同的字符依据对应的上下文模型,来索引自身的概率查找表。即收到字符后,先索引该字符的上下文模型序号(CtxIdx),才能找到它的概率查找表(TransIdxLPS),再做上图上的操作。这些模型的划分精确到比特,几乎大多数的比特和它们邻近的比特处于不同的上下文模型中。 查找每个比特所对应的上下文模型有两个步骤: 1确定该比特所属的句法元素。即例如: mb_type, mb_field_decoding_flag 等。 h.264为每个句法元素分配了一个上下文模型区间,T9-11 该句法元素的所有比特位的上下文模型的上下文序号(ctxIdx)都处于这个区间中, 2.按照某一个法则为当前比特在步骤1中得到的区间中找到对应的CtxIdx。该法则对不同的句法元素各不相同。这个法则通常用表来表示,下表列出了大多数句法元素为所各比特查找CtxIdx的法则。其中CtxOffset为步骤1中所处区间起始点的偏移。但是在表中也可以看到,某些比特对应多个上下文模型,这时,需要在解码中根据前后宏块的空间相关性进一步确定。对应标准中的Table 9-29 即 当 1.索引ctxIdx 小于等于72时,是关于宏块类型,子宏块类型,预测模式,以及基于片层和宏块层的控制信息句法元素。此时,CtxIdx = Ts (步骤1中的初值)+Ctxoffset ; 2.索引ctxIdx大于72时,是残余数据编码,其中Coded_block_pattern 句法元素的索引

文档评论(0)

jmm118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档