zip 文件中的冗余有何实际价值?

zip 文件中的冗余有何实际价值?

压缩中如何实现冗余?我能从中受益吗?

我猜想它包括将查找表存储两次之类的操作,这样单个缺陷就不会使整个文件的其余部分失效。至于用例,可能是将文件存储在有轻微划痕的 CD 上时?

但是,我个人从未从向 zip 文件添加冗余中获得任何好处,而且我倾向于省略它们,所以我想知道它们在实践中是否真的有用。

答案1

我相信您说的是 LZ 自适应算法。它之所以被称为冗余,并不是因为在构建 zip 文件的过程中有任何东西被重复了。这个术语源于这种压缩方法的工作原理。

为了说明这一点,下面举一个例子。假设我有一份包含以下短语的文档:

It is what it is because that's what it is

如果我想通过冗余使这个短语更短,我会先创建一个包含所有重复单词的词典,就像这样

1it
2is
3what

然后我会将句子改写为

12312becausethats312 

如果我想进一步压缩它,我可以将以下内容添加到我的字典中:

312x
12y

这样就变成了

yxbecausethatsx

如您所见,您执行的冗余检查越多,压缩率就越高。但您也增加了损坏的可能性。这是因为随着字典的增长,它变得更容易损坏,如果字典的任何部分损坏,其余部分就无法读取。

相关内容