为什么压缩文件可以将原来一个G的东西压缩成六七百兆的啊?

来源:百度知道 编辑:UC知道 时间:2024/05/27 14:48:21
这是什么工作原理啊?能不能解释一下吧?

默虹 - 探花 十级

就像是棉花被打包一样的道理。。。

将文件从一种格式转换成另一种格式,当解压缩时又将文件格式转换回来,而压缩工具就起到了压缩与解压缩的的作用.
至于文件的格式转换,举个例子,由于图象文件所占的空间较大,于是我用压缩工具将它压缩成文字格式,而文字格式的文件通常比图象格式来得大,它们之间存在着互相转换的关系,由此压缩工具的产生,不过当文件为另一种格式时,文件不易被读取,所以压缩工具又具有解压缩的功能.

目前压缩技术可分为通用无损数据压缩与有损压缩两大类,但不管是采用何种技术模型,其本质内容都是一样的,即都是通过某种特殊的编码方式将数据信息中存在的重复度、冗余度有效地降低,从而达到数据压缩的目的。

比如:“中国”是“中华人民共和国”的简称,但前者的字数是2,后者则是7,但我们都不会对它们俩所要表达的意思产生误解,这是因为前者保留了信息中最“关键点”。同时,作为有思维能力的人类,我们可以根据前后词汇关系和知识积累,就可推断出其原来的全部信息。压缩技术也一样,在不影响文件的基本使用的前提下,只保留原数据中一些“关键点”,去掉了数据中的重复的、冗余的信息,从而达到压缩的目的。这就是文件压缩技术所要遵循的最基本原理。

举一个详细的例子:

1、压缩的原理

有两种形式的重复存在于计算机数据中,zip 就是对这两种重复进行了压缩。
一种是短语形式的重复,即三个字节以上的重复,对于这种重复,zip用两个数字:1.重复位置距当前压缩位置的距离;2.重复的长度,来表示这个重复,假设这两个数字各占一个字节,于是数据便得到了压缩,这很容易理解。
一个字节有 0 - 255 共 256 种可能的取值,三个字节有 256 * 256 * 256 共一千六百多万种可能的情况,更长的短语取值的可能情况以指数方式增长,出现重复的概率似乎极低,实则不然,各种类型的数据都有出现重复的倾向,一篇论文中,为数不多的术语倾向于重复出现;一篇小说,人名和地名会重复出现;一张上下渐变的背景图片,水平方向上的像素会重复出现;程序的源文件中,语法关键字会重复出现(我们写程序时,多少次前后copy、paste?),以几十 K 为单位