(全新)第15章 数据压缩.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第15章 数据压缩 压缩的概念 今年来,技术改变了我们传输和存储数据的方式 光纤:能够更快速地传输数据 DVD:使得在较小物理媒介上存储大量数据称为可能 人们的要求也在逐渐增加 人们总是希望在更短的时间内下载更多的数据,希望在更小的空间内存储更多的数据 数据压缩技术 通过部分消除数据中内在的冗余来减少发送或存储的数据量,从而提高数据传输和存储效率,同时保护了数据的完整性。 压缩技术的分类 本章内容安排 无损压缩 有损压缩 无损压缩 在无损压缩中,数据的完整性是受到保护的,主要用于压缩文档或程序。 压缩:在发送或存储数据时,通过压缩算法减少发送和存储的数据量。 解压缩:在使用数据时,通过解压缩算法还原出原始的数据,解压缩后的数据和原始数据完全一样。 压缩和解压缩是两个相反的过程,压缩时消除冗余数据,解压时冗余被加回去。 游程长度编码 基本思想:将数据中连续重复出现的符号用一个符号和这个符号重复的次数来代替。 可用来压缩由任何符号组成的数据。 示例中使用固定位数数字(2位)表示符号出现次数 游程长度编码 在位模式中,只使用0和1,如果一种符号比另一种符号的使用更为频繁,则游程长度编码更有效。 假设一段数据中,以0为主而1很少,可以通过记录每两个1之间0的个数来减少数据的位数。 游程长度编码 通常使用固定位数的二进制数(无符号数)来表示1之间0的个数,为避免额外的冗余,应设置一个合理的位数。 如果设置的位数过多,而1之间0的个数较少,则也是一种浪费和冗余。 特殊情况 使用4位二进制压缩时,如果1之间0的个数多于15个,它们将被分为多组,如25个0被编码为1111 1010。 问题:如何识别是25个0,还是两个1之间15个0,然后两个1之间10个0?规定如果前面的计数为1111,后面4位仍然表示一个整体。 问题:如果某个计数正好是15,怎么办?将计数强行表示为1111 0000。 霍夫曼编码 基本思想:统计一段数据中各种符号出现的频率,为频率高的符号分配较短的编码,为频率低的符号分配较长的编码。 示例:假定只有5个字符,使用频率如下 1、霍夫曼编码-构造树 根据各字符的频率构造树 将全部字符排成一行(树叶) 找出权值最小的两个节点,合成第三个节点,产生一棵简单的二层树,新节点的权值为两个子节点权值之和 重复步骤二,直到各个层上的所有节点合成一棵树 霍夫曼编码-构造树 2、字符编码 为树的每个分支分配1位二进制位,从根节点开始,为左分支分配0,为右分支分配1。对其他各个节点重复这一模式。 从根开始,顺着分支到达各个字符所在的位置,该字符的编码就是所经过路径上各个分支所分配值的排列。 字符编码 字符编码的要点 出现频率高(A、D、E)的字符的编码要比出现频率低的字符(B、C)编码短。 没有一个编码是其它编码的前缀。示例中2位编码是00、10和11,不是其它3位编码(010、011)的前缀,不存在岐义。 3、数据编码(压缩) 不使用霍夫曼编码,5个符号,每个符号需要使用3位进行编码,发送整个文本串总共需30位。使用霍夫曼编码只需要发送22位。 数据解码(解压缩) 霍夫曼编码是一种即时编码,不存在二义性。没有一个编码是其他编码的前缀。 收到前2位,即可断定是字母E,因为不存在以11打头的3位编码。 Lempel Ziv编码 基本思想:LZ编码是基于字典编码的一类算法。这一类算法在通信对话时产生一个字符串字典,即字符串与编码的对照表。如果接收方和发送方都有这样的字典副本,字符串可以由字典中的索引代替,以减少数据的传输量。 难点:如何产生并传输字典。LZ算法采用的是基于字典的自适应编码。 1、压缩字符串 基本思想:压缩过程同时完成建立字典索引和压缩字符串两件事。 算法从未压缩的字符串中选取最小的子字符串,这些子串在字典中不存在;将这些子串插入字典中并分配索引值。压缩时,将子串除最后一个字符以外的部分用对应的索引值代替。然后将索引和子串的最后一个字符插入到压缩字符串中。 压缩过程 选取不在字典中的最小子串,即第一个字符B,插入字典赋予索引值1。因子串只有1个字符,压缩结果即为B。 压缩过程 选取下一个不在字典中的最小子串,应该是A,插入字典赋予索引值2。因子串只有1个字符,压缩结果为A。 压缩过程 继续选择下一个不在字典中的最小子串,因为A已经在字典中,所以选择AB。将AB插入字典并分配索引3。压缩时,AB除最后一个字符后是A,对应的索引为2,子串压缩结果为2B。 压缩过程 继续选择下一个不在字典中的最小子串,选择ABB,因为A和AB已经在字典中,为ABB分配索引值4。ABB除去最后一位后是AB,对应的索引为3,子串压缩结果为3B。 压缩过程 继续选择BA作为最小子串,插入字典并分配索引值5。BA除最后一位后是B,对应索引值为1,子串压缩结果为1A

文档评论(0)

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

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

1亿VIP精品文档

相关文档