在前面的例子中,我们挑选出所有的重复单词和把这些字典。对我们来说,这是最明显的方式写一本字典。但是压缩程序看来完全不同:它没有任何单独的词的概念,它只是看起来模式。为了尽可能地减少文件大小,仔细选择模式包括在字典里。
如果我们从这个角度看,这个词我们最终与一个完全不同的字典。
如果压缩程序扫描肯尼迪的短语,第一个冗余只会遇到几个字母。“不要问你的,”有一个重复的模式字母“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。
无论您使用特定方法,这种深入搜索系统允许你压缩的文件比你可以更有效率地挑出单词。使用上面的模式我们挑出,并添加“__”空间,我们想出了这个大词典:
- ask__
- 1
- 你
- r__country
- __can__do__for__you
这小句子:“1 not__2345__——__12354”
这句话现在18单位占用的内存,和字典占41单位。我们已经压缩的总文件大小从79辆59单位!这只是一种压缩短语,并且不一定是最有效的。(看看你能不能找到一个更好的方法!)
这个系18新利最新登入统是有多好?的file-reduction比率取决于很多因素,包括文件类型、文件大小和压缩方案。
在世界上的大多数语言,某些字母和单词经常出现在相同的模式。由于这种高速率的冗余,文本文件压缩得很好。减少50%或更多是典型的大型的文本文件。大多数编程语言也很冗余,因为它们使用一个相对较小的命令的集合,在一组模式经常一起去。文件,包括很多独特的信息,如图形或18luck手机登录MP3文件不能压缩与这个系统,因为他们不重复许多模式(这在下一节中)。
如果一个文件有很多重复的模式,减少的速度通常会增加文件的大小。你可以看到这只通过观察我们的例子中,如果我们有更多的肯尼迪的演讲,我们可以参考模式在我们的字典更频繁,因此获得更多的每个条目的文件空间。同时,更普遍的模式可能会出现在更长的工作,让我们来创建一个更高效的字典。
这还取决于具体的效率算法使用的压缩程序。有些程序是特别适合捡模式在某些类型的文件,所以可能会压缩他们更简洁。其他人在字典词典,这可能对于大文件存储压缩效率而不是小的。当所有这类压缩程序使用相同的基本想法,实际上大量的变异的方式执行。程序员总是试图建立一个更好的系统。