【发布时间】:2013-10-21 10:57:29
【问题描述】:
我尝试使用 LZW 压缩方法压缩 zip 文件(代码在以下链接中提供),
http://rosettacode.org/wiki/LZW_compression#C
它创建的编码文件长度比原始文件大小太长,这是什么原因? 请任何人帮助我了解实时发生的事情。
【问题讨论】:
-
什么,你试图压缩一个已经压缩的文件?这很可能会创建一个比原始文件更大的文件,因为它不能被进一步压缩,而且压缩器会将元数据添加到输出文件中。
-
哪种方法更适合压缩任何二进制数据流?
-
二进制无关。关键问题是 ZIP 压缩去除了(大部分)原始文件中的冗余数据,所以没有更多可压缩的了。
-
如果您想使用自己的压缩方案(无论出于何种原因),请先解压缩原始数据,然后使用您自己的重新压缩。但请注意,任何现有的 LZW 库几乎肯定会超出您自己的代码的压缩率(使用正确的参数)。
标签: c compression zip 7zip lzw