【问题标题】:Does gzip or zip compress to a smaller size when files are similar to each other?当文件彼此相似时,gzip 或 zip 是否会压缩到较小的大小?
【发布时间】:2022-01-25 21:16:34
【问题描述】:

我对压缩类似文件的多个版本感兴趣。这些文件是 PDF,它们之间存在(通常是微小的)差异。

我的问题是:zip 或 gzip 算法是否能够利用这些文件之间的相似性来提高压缩率?还是单独处理每个文件?

我从How does the GZip algorithm work? 中查看了http://www.infinitepartitions.com/art001.html,它检查了算法本身,但没有回答实现是否单独处理所有文件。

后续问题:如果没有,是否有文件压缩算法能够利用文件之间的相似性来帮助压缩?

【问题讨论】:

  • 与此处相关的概念是solid compression。据我所知,.zip 文件不使用此功能,因此对于 .zip 文件,每个文件都是单独压缩的,并且压缩编码器不了解或了解任何其他文件。回答您的最后一个示例,7-Zip .7z 压缩格式确实允许可靠压缩。

标签: compression gzip


【解决方案1】:

邮编文件彼此独立压缩。 gzip 本身只会压缩一个文件。您想要的是 tar 和 gzip,其中 tar 会将文件彼此相邻(带有中间头),然后 gzip 会将整个内容压缩为一个流,生成一个 .tar.gz 文件。

这将能够利用彼此相距约 32K 的相似性。如果您的文件远大于 32K,那么您应该尝试使用 xz 而不是 gzip,生成 .tar.xz 文件。

【讨论】:

    最近更新 更多