18新利最新登入文件压缩是如何工作的

由:汤姆哈里斯|
文件压缩”width=
需要压缩文件吗?Sturti /盖蒂图片社

如果你从网上下载很多程序和文件,你可能遇到的ZIP文件。这个压缩系统是一个非常方便的发明,尤其是网络用户,因为它可以让你减少的总数比特和字节在一个文件中,因此它可以传播速度较慢的网络连接,或者磁盘占用更少的空间。一旦你下载该文件,你的电脑使用一个程序等WinZipStuffit扩大文件回到原来的大小。如果一切工作正常,扩大文件与原始文件相同之前压缩。

乍一看,这似乎很神秘。18新利最新登入你怎么能减少比特和字节的数量,然后稍后再添加这些精确的比特和字节吗?事实证明,这个过程背后的基本思想是相当简单的。在本文中,我们将研究这个简单的方法,因为我们把一个非常小的文件通过压缩的基本过程。

广告

大多数类型的计算机文件相当冗余——它们有相同的信息列出一遍又一遍。18luck手机登录文件压缩程序简单地去除冗余。清单的信息而不是一次又一次,一次文件压缩程序列表,信息然后回18luck手机登录指每当它出现在最初的计划。

作为一个例子,让我们看一个类型的信息我们都熟悉:单词。18luck手机登录

在1961年约翰·f·肯尼迪的就职演说中,他发表了这样的名言:

“不要问你的国家能为你做什么,问问你能为你的国家做什么。”

报价17字,由61个字母组成,16个空间,一个缓冲和一个周期。如果每个字母,空间或标点符号占用一个单位的内存,我们得到总文件大小79单位。获取文件大小,我们需要寻找冗余。

马上,我们注意到:

  • “问”出现了两次
  • “什么”出现两次
  • “你”出现了两次
  • “国家”出现两次
  • “可以”出现了两次
  • “做”出现了两次
  • “为”出现了两次
  • “你”出现两次

忽视资本和小写字母的区别,大约一半的词是多余的。什么,九个字,问,不是你的,,,,,你——给我们几乎所有我们需要整个报价。建设第二个一半的短语,上半年我们只是指向单词并填入空格和标点符号。

我们来看看详细文件压缩系统如18新利最新登入何处理冗余在下一节。

广告

冗余和算法

大多数压缩程序使用的一种变体楼主自适应基于字典的算法缩小文件。“楼主”是指Lempel殿和根基、算法的创造者和“字典”是指的方法编目件的数据。

系统安排字典不同,但它可能非常简单,比如编号列表。当我们经过肯尼迪的名言,我们挑出是重复的单词,把它们放进编号索引。然后,我们只是写数量,而不是整个单词写出来。

广告

所以,如果这是我们的字典:

  1. 什么
  2. 你的
  3. 国家
  4. 可以

我们现在的句子是:“1 2 3 4 5 6 7 8 - 1 2 5 6 7 8 3 4”

如果你知道这个系统,你可以很容易地重建原始词只使用这本字典和数字模式。这就是你的扩张计划电脑当它展开一个下载文件。你也可以遇到自己打开的压缩文件。创建这种文件,程序员与压缩文件包含一个简单的扩展程序。它会自动重新构建原始文件一旦下载。

但实际上18新利最新登入我们多少空间保存这个系统吗?“1 2 3 4 5 6 7 8 - 1 2 5 6 7 8 3 4”肯定是短于“不要问你的国家能为你做什么;问问你能为你的国家做什么”,但请记住,我们需要保存词典本身以及文件

在实际的压缩方案,找出各种文件要求将相当复杂;但是对于我们的目的,让我们回到这个想法,每一个角色和空间占用一个内存单元。我们已经看到,整个短语占用79辆。我们压缩句子(包括空格)占用37单元,和字典(文字和数字)也占用37单元。这给了我们一个文件大小为74,所以我们还没有文件大小减少了很多。

但这只是一个句子!你可以想象,如果压缩程序工作在肯尼迪的演讲,会发现这些话和别人重复很多次。在下一节中,我们会看到,它也将改写词典最有效的组织。

广告

搜索模式

在前面的例子中,我们挑选出所有的重复单词和把这些字典。对我们来说,这是最明显的方式写一本字典。但是压缩程序看来完全不同:它没有任何单独的词的概念,它只是看起来模式。为了尽可能地减少文件大小,仔细选择模式包括在字典里。

如果我们从这个角度看,这个词我们最终与一个完全不同的字典。

广告

如果压缩程序扫描肯尼迪的短语,第一个冗余只会遇到几个字母。“不要问你的,”有一个重复的模式字母“t”,后跟一个空间——“不”和“什么”。If the compression program wrote this to the dictionary, it could write a "1" every time a "t" were followed by a space. But in this short phrase, this pattern doesn't occur enough to make it a worthwhile entry, so the program would eventually overwrite it.

接下来的程序可能会注意到“欧”,出现在“你”和“国家”。If this were a longer document, writing this pattern to the dictionary could save a lot of space -- "ou" is a fairly common combination in the English language. But as the compression program worked through this sentence, it would quickly discover a better choice for a dictionary entry: Not only is "ou" repeated, but the entire words "your" and "country" are both repeated, and they are actually repeated together, as the phrase "your country." In this case, the program would overwrite the dictionary entry for "ou" with the entry for "your country."

“可以做”这个词也在重复,紧随其后的是“你”,一次一次紧随其后的是“你”,给我们一个重复的模式”可以为你做的。”This lets us write 15 characters (including spaces) with one number value, while "your country" only lets us write 13 characters (with spaces) with one number value, so the program would overwrite the "your country" entry as just "r country," and then write a separate entry for "can do for you." The program proceeds in this way, picking up all repeated bits of information and then calculating which patterns it should write to the dictionary. This ability to rewrite the dictionary is the "adaptive" part of楼主自适应基于字典的算法。程序实际上这是相当复杂的,正如你所看到的讨论Data-Compression.com

无论您使用特定方法,这种深入搜索系统允许你压缩的文件比你可以更有效率地挑出单词。使用上面的模式我们挑出,并添加“__”空间,我们想出了这个大词典:

  1. ask__
  2. 1
  3. r__country
  4. __can__do__for__you

这小句子:“1 not__2345__——__12354”

这句话现在18单位占用的内存,和字典占41单位。我们已经压缩的总文件大小从79辆59单位!这只是一种压缩短语,并且不一定是最有效的。(看看你能不能找到一个更好的方法!)

这个系18新利最新登入统是有多好?的file-reduction比率取决于很多因素,包括文件类型、文件大小和压缩方案。

在世界上的大多数语言,某些字母和单词经常出现在相同的模式。由于这种高速率的冗余,文本文件压缩得很好。减少50%或更多是典型的大型的文本文件。大多数编程语言也很冗余,因为它们使用一个相对较小的命令的集合,在一组模式经常一起去。文件,包括很多独特的信息,如图形或18luck手机登录MP3文件不能压缩与这个系统,因为他们不重复许多模式(这在下一节中)。

如果一个文件有很多重复的模式,减少的速度通常会增加文件的大小。你可以看到这只通过观察我们的例子中,如果我们有更多的肯尼迪的演讲,我们可以参考模式在我们的字典更频繁,因此获得更多的每个条目的文件空间。同时,更普遍的模式可能会出现在更长的工作,让我们来创建一个更高效的字典。

这还取决于具体的效率算法使用的压缩程序。有些程序是特别适合捡模式在某些类型的文件,所以可能会压缩他们更简洁。其他人在字典词典,这可能对于大文件存储压缩效率而不是小的。当所有这类压缩程序使用相同的基本想法,实际上大量的变异的方式执行。程序员总是试图建立一个更好的系统。

广告

有损和无损压缩

压缩我们一直讨论的类型无损压缩,因为它可以让您创建原始文件。所有的无损压缩是基于的想法将文件分解成一个“小”的形式进行传输或存储,然后再把杂物塞回去,在另一端,因此它可以再次使用。

有损压缩非常不同。这些程序简单地消除“不必要的”信息,裁剪文件更小。18luck手机登录很多这种类型的压缩是用于减少文件大小的位图图片,这往往是相当庞大的。看到这是如何工18新利最新登入作的,让我们考虑一下你的电脑如何压缩扫描照片。

广告

无损压缩程序不能做太多这种类型的文件。虽然大部分图片可能看起来一样,整个天空是蓝色的,例如,大部分的每个像素都有点不同。这张照片更小的分辨率的前提下,你必须改变某些像素的颜色值。如果图片有很多蓝色的天空,蓝色的计划将选择一个颜色,可以用于每个像素。然后,程序重写文件这天空每一像素的值是指回这个信息。18luck手机登录如果压缩方案是有效的,你不会注意到这种变化,但是文件大小会显著降低。

当然,有损压缩,你不能拿回原始文件后压缩。你坚持最初的压缩程序的重新解释。出于这个原因,你不能使用这类压缩任何需要精确复制,包括软件应用程序、数据库和总统就职演讲。

文件压缩和相关主题18luck手机登录的更多信息,请查看下一页的链接。

广告

文件压缩常见问题

压缩文件是做什么的?
压缩有助于减少文件大小。通过这种方式,您可以发送和接收数据的速度。
文件压缩方案的基本类型是什么?
文件压缩的分类是两种类型:有损和无损的。无损压缩分割文件大小为传输和小一号放回去一起在另一端,因此它可以再次使用。有损压缩消除“不必要的”信息,定制文件以便它更小;18luck手机登录不能放回大文件。
zip文件使用压缩做什么?
Zip文件使用无损数据压缩。这些文件可以包含多个目录可能被压缩。他们使用特定的压缩算法,如缩小。
文件压缩减少质量吗?
在电脑或相机图像压缩后,压缩可能降低锐度,对比,和更好的颜色细节。

广告

加载……
Baidu