- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
算术编码要注意的几个问题:由于实际的计算机的精度不可能无限长,运算中出现溢出是一个明显的问题,但多数机器都有16位、32位或者64位的精度,因此这个问题可使用比例缩放方法解决。算术编码器对整个消息只产生一个码字,这个码字是在间隔[0,1)中的一个实数,因此译码器在接受到表示这个实数的所有位之前不能进行译码。算术编码也是一种对错误很敏感的编码方法,如果有一位发生错误就会导致整个消息译错。统计编码基本原理和方法第28页,共41页,星期六,2024年,5月行程编码是最简单、最古老的压缩技术之一,主要技术是检测重复的比特或字符序列,并用它们的出现次数取而代之。该方法有两大模式:一是消零(消空白),二是行(游)程(runlength)编码。消零(或消空白)法将数字中连续的“0”或文本中连续的空白用一个标识符(或特殊字符)后跟数字N(连续“0”的个数)来代替。如数字序列:742300000000000000000055编码为:7423Z1855统计编码基本原理和方法第29页,共41页,星期六,2024年,5月行程编码行程编码法任何重复的字符序列可被一个短格式取代。该算法适合于任何重复的字符。一组n个连续的字符c将被c和一个特殊的字符取代。当然,若给定字符仅重复两次就不要用此方法。任何重复4次或4次以上的字符由“该字符+记号(M)+重复次数”代替。例如数字序列:Name:..........CR编码为:Name:.M10CR统计编码基本原理和方法第30页,共41页,星期六,2024年,5月词典编码词典编码(dictionaryencoding)的根据是数据本身包含有重复代码这个特性。例如文本文件和光栅图像就具有这种特性。归纳起来大致有两类。统计编码基本原理和方法第31页,共41页,星期六,2024年,5月第一类词典法的想法是企图查找正在压缩的字符序列是否在以前输入的数据中出现过,然后用已经出现过的字符串替代重复的部分,它的输出仅仅是指向早期出现过的字符串的“指针”。词典编码基本原理和方法第32页,共41页,星期六,2024年,5月第二类算法的想法是企图从输入的数据中创建一个“短语词典(dictionaryofthephrases)”,编码数据过程中当遇到已经在词典中出现的“短语”时,编码器就输出这个词典中的短语的“索引号”,而不是短语本身。词典编码基本原理和方法第33页,共41页,星期六,2024年,5月词典编码基本原理和方法第34页,共41页,星期六,2024年,5月LZW编码简介LZW通过建立一个字符串表,用较短的代码来表示较长的字符串来实现压缩。字符串和编码的对应关系是在压缩过程中动态生成的,并且隐含在压缩数据中,解压的时候根据表来进行恢复,是一种无损压缩。全称Lempel-Ziv-WelchEncoding,简称LZW的压缩算法。词典编码基本原理和方法第35页,共41页,星期六,2024年,5月LZW压缩有三个重要的对象数据流(CharStream)编码流(CodeStream)编译表(StringTable)。在编码时,数据流是输入对象(文本文件的数据序列),编码流就是输出对象(经过压缩运算的编码数据);在解码时,编码流则是输入对象,数据流是输出对象;而编译表是在编码和解码时都须要用借助的对象。词典编码基本原理和方法第36页,共41页,星期六,2024年,5月LZW编码基本原理提取原始文本文件数据中的不同字符,基于这些字符创建一个编译表,然后用编译表中的字符的索引来替代原始文本文件数据中的相应字符,减少原始数据大小。看起来和调色板图象的实现原理差不多,但是应该注意到的是,我们这里的编译表不是事先创建好的,而是根据原始文件数据动态创建的,解码时还要从已编码的数据中还原出原来的编译表.词典编码基本原理和方法第37页,共41页,星期六,2024年,5月LZW算法LZW算法基于转换串表(字典)T,将输入字符串映射成定长(通常为12位)的码字。在12位4096种可能的代码中,256个代表单字符,剩下3840给出现的字符串。1)初始化:将所有的单字符串放入串表2)读第一个输入字符给前缀串ω3)Step:读下一个输入字符K;if没有这样的K(输入已穷尽):码字(ω)输出;结束。IfωK已存在于串表中:ωK:=ω;repeatStep;elseωK不在
您可能关注的文档
- 昏迷的诊断和鉴别诊断 (2).ppt
- 毒物分析第七章.ppt
- 有机化学 杂环化合物.ppt
- 植物体的组成.ppt
- 新生儿感染首医小讲课动画.ppt
- 文言语句翻译精选高考典型题.ppt
- 普外科专科培训新入科护士.ppt
- 机械原理间歇运动机构.ppt
- 机械通气的临床应用钱超.ppt
- 新清热剂课件.ppt
- 人教版数学六年级下册试题期末模拟检测卷有答案.docx
- 人教版数学六年级下册试题期末模拟检测卷精品【考点梳理】.docx
- 人教版数学六年级下册试题期末模拟检测卷精品(名师系列).docx
- 人教版数学六年级下册试题期末模拟检测卷精品【名师推荐】.docx
- 人教版数学六年级下册试题期末模拟检测卷精品【含答案】.docx
- 人教版数学六年级下册试题期末模拟检测卷精品【全国通用】.docx
- 人教版数学六年级下册试题期末模拟检测卷必考题.docx
- 人教版数学六年级下册试题期末模拟检测卷推荐.docx
- 人教版数学六年级下册试题期末模拟检测卷往年题考.docx
- 人教版数学六年级下册试题期末模拟检测卷精品【考点梳理】.docx
文档评论(0)