一般数据是怎么被压缩

一般数据是怎么被压缩

ID:20213166

大小:200.00 KB

页数:3页

时间:2018-10-09

一般数据是怎么被压缩_第1页
一般数据是怎么被压缩_第2页
一般数据是怎么被压缩_第3页
资源描述:

《一般数据是怎么被压缩》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据是怎么被压缩的压缩软件大家想必都不不陌生。甚至是太熟悉而忽略了它的神奇。你有想过为什么压缩软件能把一组数据的体积缩小,并且还能再完整地展开还原吗?多余的体积究竟被藏在了哪里?下面就进来马上解析一哈!首先来看看什么是压缩。打一个比方,当你有天走在路上,碰见熟人对你说:“吃了?”你一定知道他是在打招呼,既不是要请客也不是让你“没吃赶紧回家吃去”。这一句简单的“吃了”是礼貌和问好的体现,也是一种信息的压缩。笼统地说,把一系列已有信息通过一定方法处理,使得其长度缩短,并且信息含量基本或者完全不变,就称之为压缩。在计算机上的压缩过程我们都知道,计算机采用的是2进制系统。一个连续的n

2、位二进制数集,就可以用来表示2n个字符。目前的国际标准是ASCII码:用一个字节即8位数的2进制码,来表示各种字符和字母。现在我们只使用2位二进制码,来简单地演示由4个符号组成的字符串的压缩过程。假设我们有这么一串20个字母的数据:默认情况下,用2位2进制码来表示这四个字母:ABCD00011011每个字符在字符串中各自出现的次数并不相等:A:6次B:10次C:3次D:1次而在计算机中,数据则是以2进制码的形式储存在硬盘上的:0000010000010110010001010110010100011110压缩过程如下:①注明每个字符的出现次数。把两个出现次数最小的字符圈到一起

3、,看作一个新字符,新字符的次数为两个组成字符的次数之和。②重复上述操作,直至完成对所有字符的处理。这种操作形成的结构看起来像棵树(如图所示),被称为——霍夫曼(Huffman)树。③在每一层的分支线上,按下图所示分别标上0和1。从最顶端往下读,每个字符都有唯一的分支编号连到它那里,无重复也无遗漏,这样就得到了ABCD这四个字符的新的代码:ABCD100110111用以上新编码代入原字符串中,得到:1010010100011001000011000100111110整理一下得到新编码:原编码:0000010000010110010001010110010100011110新编码

4、:1010010100011001000011000100111110看!数据成功被压缩。这一段40位长度的内容被压缩到了34位,压缩率是85%。回顾过程容易发现压缩的秘密:出现频率最多的"B"由一位二进制码“0”来表示,而出现频率较低的"C"和"D",则由长度增加了的三位二进制码来表示。通过合理分配不同长度的编码,肯定可以对数据进行一定程度的压缩。另外可以证明,霍夫曼树就是此类编码替代的最优化的方案之一。因为假如存在一个字符的出现频率高于另一个字符,而它的变长码长度却长于另一个字符,那么必然可以通过交换两者的位置,使得输出结果的总长度变短。有限次操作后可以达到无法再交换的情

5、况,也就是霍夫曼树规则下的情况。进一步思考几个问题在压缩文件的时候,人们不禁会产生一些新想法或者遇到一些疑问:是否可以对压缩后的数据再次压缩?当2n的n变大后,遇到A:1010,B:10这样的情况,如何解读10101010?就操作上来说,当然能反复编码,但通过对本文例子中得到的新编码再次操作后会发现,结果是不会有任何变化的。压缩的实质,在于消除特定字符分布上的不均衡,通过将短码分配给高频字符,而长码对应低频字符实现长度上的优化。而数据经过一次压缩后,字符的分布已经几乎平均化了,很难更进一步的压缩了。而第二个问题描述的情况是不会出现的的。从构造霍夫曼树操作上可以看到,一个字符无

6、法在另一个字符的上层。只要操作正确,就一定可以构造出唯一的代码表,不存在歧义。还有一个有趣的问题是:虽然把40字节的内容压缩到了34字节,但需要将相应的码表一并发送给接收方(没有对应码表,无法解压)。这不反而使得压缩后的数据比压缩前的还要长?事实也确实如此。本文例子中,真正的最终结果体积是大于原文的。但这不意味了算法错误。这是因为“n”过小(例子中为2,实际通常为8)导致的。总长度的不够使得节省出来的那部分容量还不足以弥补码表本身的储存空间。实际应用中,如果你非要去压缩一个只有几个字节的文件,得到的压缩包也经常会大于文件本身。通常,压缩软件会在每压缩4kb到32kb数据后,重

7、新生成并保存一个霍夫曼树。当分块过大时,统计上的整体平均,会掩盖小区域内的极度不平均,损失了压缩的空间。比如存在一个这样的文件:AAAAA……AAAAA(一万个)BBBBB……BBBBB(一万个)……ZZZZ(一万个)。如果从整体上进行霍夫曼树操作,将不会产生任何压缩,但是这时候我们把它分成26块,压缩并各自保存相应的重新编码的霍夫曼树,压缩率将非常惊人,约等于12.5%。英语中各字母出现频率示意图通过上面字频图我们知道,在一般文本中,英语字母使用频率各不相同,而且差别很大。有着很高的不平均度。所以大部

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。