18新利最新登入文件压缩的工作原理

由:汤姆哈里斯|
文件压缩"width=
需要压缩文件?Sturti / Getty Images

如果您从Internet上下载了许多程序和文件,那么您以前可能遇到过ZIP文件。这个压缩系统是一项非常方便的发明,特别是对Web用户来说,因为它可以让您减少压缩文件的总数位和字节这样它就可以在较慢的互联网连接上更快地传输,或者占用更少的磁盘空间。一旦你下载了这个文件,你的电脑就会使用一个程序WinZipStuffit将文件扩展回原始大小。如果一切正常,展开的文件与压缩前的原始文件完全相同。

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

广告

大多数类型的计算机文件都是相当冗余的——它们一遍又一遍地列出相同的信息。18luck手机登录文件压缩程序可以简单地消除冗余。文件压缩程序不是一遍又一遍地列出一条信息,而是只列出一条信息18luck手机登录,然后在它出现在原始程序中时引用它。

举个例子,让我们来看一种我们都很熟悉的信息:单词。18luck手机登录

在约翰·f·肯尼迪1961年的就职演说中,他说了这句著名的话:

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

这句话有17个单词,由61个字母、16个空格、一个破折号和一个句号组成。如果每个字母、空格或标点符号占一个单位内存,我们得到的文件总大小为79个单位。为了减小文件大小,我们需要寻找冗余。

我们立即注意到:

  • ask出现了两次
  • “what”出现了两次
  • your"出现了两次
  • “country”出现了两次
  • “can”出现了两次
  • “do”出现了两次
  • “for”出现了两次
  • “you”出现了两次

忽略大写字母和小写字母之间的区别,这个短语大约有一半是多余的。九个词——问,不是问,什么,你的,国家,能不能,做什么,为你——几乎提供了整段引文所需要的一切。要构造短语的后半部分,我们只需指出前半部分的单词,并填上空格和标点符号。

我们将在下一节中更详细地了解18新利最新登入文件压缩系统如何处理冗余。

广告

冗余和算法

的一种变体LZ自适应基于字典的算法压缩文件。“LZ”指兰佩尔和齐夫,算法的创造者,而“字典”指的是方法编目数据碎片。

排列字典的系统各不相同,但它可以像一个编号列表一样简单。当我们浏览肯尼迪的名言时,我们挑出重复的词,并把它们放入编号索引中。然后,我们只是写下数字,而不是写出整个单词。

广告

如果这是我们的字典

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

我们现在的句子是:"1不是2 3 4 5 6 7 8——1 2 8 5 6 7 3 4"

如果你知道这个系统,你可以很容易地重建原来的短语只使用这个字典和数字模式。这是你的扩展程序电脑当它展开下载的文件时执行。您可能还遇到过自己打开的压缩文件。为了创建这种类型的文件,程序员在压缩文件中包含一个简单的扩展程序。一旦下载,它会自动重建原始文件。

但是这个18新利最新登入系统实际上节省了多少空间呢?“1不是2 3 4 5 6 7 8——1 2 8 5 6 7 3 4”当然比“不要问你的国家能为你做什么;问自己能为国家做些什么,“但要记住,我们需要这样做保存字典本身和文件

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

但这只是一句话!你可以想象,如果压缩程序在肯尼迪余下的演讲中工作,它会发现这些词和其他词重复了很多次。并且,正如我们将在下一节中看到的,它还将重写字典以获得最有效的组织。

广告

搜索模式

在前面的例子中,我们挑出了所有重复的单词,并将它们放入字典中。对我们来说,这是编写字典最明显的方式。但是压缩程序的看法完全不同:它没有任何单独单词的概念——它只寻找模式。为了尽可能地减小文件大小,它会仔细选择要包含在字典中的模式。

如果我们从这个角度来看待这个短语,我们就会得到一本完全不同的词典。

广告

如果压缩程序扫描肯尼迪的短语,它遇到的第一个冗余将只有几个字母长。在“ask not what your”中,有一个重复的字母“t”后面跟着一个空格——在“not”和“what”中。如果压缩程序将此写入字典,那么每次“t”后面跟着空格时,它都可以写入“1”。但在这个简短的短语中,这个模式出现的次数还不够多,不足以使它成为一个有价值的条目,所以程序最终会覆盖它。

程序可能注意到的下一件事是“ou”,它同时出现在“your”和“country”中。如果这是一个较长的文档,将这种模式写入字典可以节省大量空间——“ou”在英语中是一个相当常见的组合。但是当压缩程序处理这句话时,它会很快为字典词条找到更好的选择:不仅“ou”被重复了,而且整个单词“your”和“country”都被重复了,而且它们实际上是一起重复的,就像短语“your country”一样。在这种情况下,程序将用“your country”的条目覆盖字典中“ou”的条目。

短语“can do for”也被重复了,一次后面跟着“your”,一次后面跟着“you”,形成了“can do for you”的重复模式。这允许我们用一个数字值写15个字符(包括空格),而“your country”只允许我们用一个数字值写13个字符(包括空格),所以程序会把“your country”条目重写为“r country”,然后为“can do for you”写一个单独的条目。程序以这种方式进行,提取所有重复的信息位,然后计算应该将哪些模式写入字典。18luck手机登录这种重写字典的能力是“适应性”的一部分LZ自适应基于字典的算法.正如您可以从上面的讨论中看到的,程序实际执行此操作的方式相当复杂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手机登录主题的更多信息,请查看下一页上的链接。

广告

最初发表于2001年1月18日

文件压缩常见问题

压缩文件有什么用?
压缩有助于减小文件大小。这样,您可以更快地发送和接收数据。
文件压缩方案的基本类型是什么?
文件压缩分为两种类型:有损和无损。无损压缩将文件大小分解成更小的大小用于传输,并在另一端将其重新组合在一起,以便再次使用。有损压缩消除了“不必要的”信息位,使文件更小;18luck手机登录它不能放回更大的文件中。
zip文件使用什么压缩?
Zip文件使用无损数据压缩。这些文件可以包含多个可能已经压缩过的目录。他们使用某些压缩算法,如DEFLATE。
文件压缩会降低质量吗?
在计算机或相机中压缩图像后,压缩可能会降低清晰度、对比度和更精细的颜色细节。
特色

广告

加载……
Baidu