我想知道是否有任何场景需要使用相同或不同的算法多次压缩文件。据我所知,可以通过根据压缩算法的细微差别应用进一步压缩来进一步减小文件大小。 (它针对哪些文件或数据进行了优化)。也许某些技术需要某种文件类型?如果应用多轮压缩,是否会导致文件大小增加,因为添加了信息来表示已使用某种压缩编码?
答案1
不,通常多次压缩是没有意义的,除非您碰巧有不同的层尝试进行压缩(例如,您有一个 PNG 图像,存储在压缩的 tar 存档 ( .tar.gz
) 中,存储在文件系统上或通过链接传输进行压缩)。
多重压缩没有任何好处,因为任何通用压缩算法都会尝试将实际信息压缩到尽可能小的文件中,本质上使其看起来尽可能随机(高熵)。随机数据的压缩效果不是很好,因此后面的压缩层作用不大。当然,如果初始压缩是微不足道的(例如仅游程编码),那么更复杂的算法可能仍然能够进一步压缩数据。但在这种情况下,您可能最好对原始数据使用更好的算法。
多轮压缩很容易增加文件大小,正是因为通常会涉及到一些标头。对于文件压缩,了解使用的压缩算法很有用,例如gzip
还存储原始文件名。