- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
cabac原理附其实现笔记
Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC
简称Cabac,H264中的一种熵编码方式:基于上下文的自适应二进制算术编码
内容安排:1,介绍算术编码 2,介绍二进制算术编码 3介绍Cabac及其一些实用的实现方式(参考JSVM代码,也可以参考JM) ---张新发
一,算术编码
算术编码是一种常用的变字长编码,它是利用信源概率分布特性、能够趋近熵极限的编码方法。它与 Huffman 一样,也是对出现概率大的符号赋予短码,对概率小的符号赋予长码。但它的编码过程与 Huffman 编码却不相同,而且在信源概率分布比较均匀的情况下其编码效率高于 Huffman 编码。它和 Huffman 编码最大的区别在于它不是使用整数码。Huffman 码是用整数长度的码字来编码的最佳方法,而算法编码是一种并不局限于整数长度码字的最佳编码方法。算术编码是把各符号出现的概率表示在单位概率 [0,1] 区间之中,区间的宽度代表概率值的大小。符号出现的概率越大对应于区间愈宽,可用较短码字表示;符号出现概率越小对应于区间愈窄,需要较长码字表示。 举例如下:
以符号为例
在算术编码中通常采用二进制分数表示概率,每个符号所对应的概率区间都是半开区间,即该区间包括左端点,而不包括右端点,如 S1对应 [0, 0.001),S2 对应 [0.001, 0.01) 等。
算术编码产生的码字实际上是一个二进制数值的指针,指向所编的符号对应的概率区间。
符号序列…… 的第一个符号 S3 用指向第 3 个子区间的指针来代表,可以用这个区间内的任意一个小数来表示这个指针,这里约定这个区间的左端点代表这个指针,因此得到第一个码字.011。
后续的编码将在前面编码指向的子区间内进行,将 [.011, .111] 区间再按概率大小划分为 4 份,第二个符号 S3 指向 .1001 (S3 区间的左端),输出码字变为 .1001。
然后,S3 对应的子区间又被划分为 4 份,开始对第三个符号 S2 进行编码,…….
两个参量:编码点(指针所指处)C 和区间宽度 A。
初始状态
编码点(指针所指处)C = 0
区间宽度 A = 1.0
新编码点 C = 原编码点 C + 原区间 A×Pi
新区间 A = 原区间 A×pi
序列 S3S3S2S4 …… 的编码过程:
第1个符号 (S3): C = 0 + 1×.011 = .011
A = 1×.1 = .1
第2个符号 (S3): C = .011 + .1×.011 = .1001
A = .1×.1 = .01
第3个符号 (S2): C = .1001 + .01×.001 = .10011
A = .01×.01 = .0001
第4个符号 (S4): C = .10011 + .0001×.111 = .1010011 (输出的码字)
A = .0001×.001 = .0000001
解码过程
算法解码采取与编码过程相反的步骤
把接收到的码字串指向其对应的子区间,得到此子区间对应的符号,即为解码后的符号。
即从码字串中减去已解码符号的子区间的左端点的数值(累积概率),
并将差值除以该子区间的宽度(概率值),得到新的码字串。
上述例子
当收到字码串 (.1010011) 时,其指向子区间 [.011, .111],对应于 S3,因此,得到第 1 个符号为 S3。
新码字串:(.1010011 - .011) ÷ (.1) = 0.100011 ,新码字串仍然指向子区间 [.011, .111],因此,第 2 个符号仍为 S3。
其它符号依次类推
二,二进制算术编码
二进制算术编码的输入的字符只有两种,如果信源字符集内包含有多个字符,则先将这些字符经过一系列的二进判决,变成二进制字符串。
这两个符号构成的序列的编码与算术编码基本原理相同,仍是不断划分概率子区间的递归过程。
在两个输入字符中,出现概率较大的为 MPS (More Probable Symbol),MPS 的概率为 Pe;出现概率较小的为 LPS (Less Probable Symbol),LPS 的概率为 Qe,Pe=1-Qe。
编码
文档评论(0)