- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三 算术编码
一、实验目的
1、复习C++语言基本编写方法,熟悉VC编程环境。
2、复习算术编码基本流程, 学会调试算术编码编码程序。
3、根据给出资料,自学自适应0阶算术编、解码方法。
二、实验内容
1.复习C++代码基本语法(类和虚函数等面向对象数据结构定义)
2.根据实验提供的源代码,学习算术编码实现流程,培养实际动手调试能力和
相应的编程技巧。
三、实验仪器、设备
1.计算机-系统最低配置 256M 内存、P4 CPU。
2.C++ 编程软件 - Visual C++ 7.0 (Microsoft Visual Studio 2003)
Visual C++ 8.0 (Microsoft Visual Studio 2005)
四、实验原理
1.算术编码基本原理是将编码消息表示成实数0 和1 之间的一个间隔,消息
越长,编码表示它的间隔就越小,表示这一间隔所需的二进制位就越多。 算术编码
用到两个基本的参数:符号的概率和它的编码间隔。信源符号的概率决定压缩编码
的效率,也决定编码过程中信源符号的间隔,而这些间隔包含在0 到1 之间。编码
过程中的间隔决定了符号压缩后的输出。如何解压缩呢?那就更简单了。解压缩之前仍然假定三个字符的概率相等。解压缩时面对的是二进制流 1010001111,先在前面加上 0 和小数点把它变成小数0.1010001111,也就是十进制 0.64。这时我们发现 0.64 在分布图中落入字符 b 的区间内,立即输出字符 b,并得出三个字符新的概率分布。类似压缩时采用的方法,我们按照新的概率分布划分字符 b 的区间。在新的划分中,我们发现 0.64 落入了字符 c 的区间,我们可以输出字符 c。同理,我们可以继续输出所有的字符,完成全部解压缩过程。
2.小数存储方法
如果信息内容特别丰富,我们要输出的小数将会很长很长,该如何在内存中表
示如此长的小数呢?其实,没有任何必要在内存中存储要输出的整个小数。从上面
的例子可以知道,在编码的进行中,会不断地得到有关要输出小数的各种信息。具
体地讲,当我们将区间限定在 0.6390 - 0.6501 之间时,我们已经知道要输出的小
数第一位(十进制)一定是 6,那么我们完全可以将 6 从内存中拿掉,接着在区间
0.390 - 0.501 之间继续我们的压缩进程。内存中始终不会有非常长的小数存在。
使用二进制时也是一样的,我们会随着压缩的进行不断决定下一个要输出的二进制
位是 0 还是 1,然后输出该位并减小内存中小数的长度,具体可以参考E1/E2/E3
放大原理,及它们之间关系的描述。
3.静态模型与自适应模型
1)静态模型
对信息 bccb 我们统计出其中只有两个字符,概率分布为 Pb = 0.5,Pc = 0.5。在
压缩过程中不必再更新此概率分布,每次对区间的划分都依照此分布即可,对上例
也就是每次都平分区间。这样,压缩过程可以简单表示为:
输出区间的下限 输出区间的上限
------------------------------------------------------------------------
压缩前 0.0 1.0
输入 b 0.0 0.5
输入 c 0.25 0.5
输入 c 0.375 0.5
输入 b 0.375 0.4375
最后的输出区间在 0.375 - 0.4375 之间,甚至连一个十进制位都没有确定,
也就是说,整个信息根本用不了一个十进制位。
2)自适应模型
既然使用静态模型可以很好地接近熵值,为什么还要采用自适应模型呢?要知
道,静态模型无法适应信息多样性,另外还有最重要的一点,对较长的信息,静态
模型统计出的符号概率是该符号在整个信息中的出现概率,而自适应模型可以统计
出某个符号在某一局部的出现概率或某个符号相对于某一上下文的出现概率,换句
话说,自适应模型得到的概率分布将有利于对信息的压缩(可以说结合上下文的自
适应模型的信息熵建立在更高的概率层次上,其总熵值更小),好的基于上下文的自
适应模型得到的压缩结果将远远超过静态模型。
3)自适应模型的阶
通常用“阶”(order)这一术语区分不同的自适应模型。前面例子中采用的是 0
阶自适应模型,该例子中统计的是符号在已输入信息中的出现概率,没有考虑任何
上下文信息。如果我将模型变成统计符号在某个特定符号后的出现概率,那么,模
型就成为了 1 阶上下文自适应模型。举个例子要对一篇英文文本进行编码,已经编
码了 10000 个英文字符,刚刚编码的字符是 t,下一个要编码的字符是 h。我们在
前面的编码过程中已经统计出前 10000 个字符中出现了 113 次字母 t,其中有 47
个 t 后面跟着字母 h。我们得出字符 h 在字符 t 后的出现频率是 47/1
您可能关注的文档
最近下载
- 湖北省总工会考试试题及答案.doc VIP
- 住院医师规范化培训-医学检验真题库_25.docx VIP
- 房贷提前还清协议书.docx VIP
- 公司治理教学课件(完整版).ppt VIP
- 青光眼小梁切除术.ppt VIP
- 药物设计软件:Discovery Studio二次开发all.docx VIP
- 2025年郑州澍青医学高等专科学校单招语文测试模拟题库汇编.docx VIP
- GTBO41100-2017B 项目运营手册成本弦.pdf VIP
- 2024-2025学年初中道德与法治七年级上册(2024)统编版(部编版)(2024)教学设计合集.docx
- 2025卫星互联网承载网技术白皮书.docx VIP
文档评论(0)