可以将数据添加到文件中进行更多压缩吗?

时间:2014-07-31 15:55:59

标签: algorithm compression

我们说我有一个10MB的文件可以压缩到5MB。是否存在可以向文件添加数据并使其压缩到小于5MB的情况?

编辑:为了清楚,通过向文件添加数据我的意思是附加数据,而不是添加到文件的中间。

2 个答案:

答案 0 :(得分:3)

原来的问题:

请注意,每个5MB文件都显示为文件(01)^(41943040)的非连续按位子序列,这是文件大小的两倍并且压缩得非常好。实际上,您可以从41943040 01中的每一个中选择一位。

这里的诀窍是,来自"填充"文件,您无法恢复原始文件。所有5MB文件" pad"到相同的位串。

修改后的问题:

仍然"是的,"但它足够接近"没有"出于所有实际目的。我不认为这可能发生在gzip上。但是,如果使用Burrows-Wheeler变换后跟运行长度编码进行压缩,则追加到字符串可以改变字符串循环移位的顺序,从而通过纯粹的巧合,可以产生更好压缩的字符串。

答案 1 :(得分:0)

对于字典类型压缩,模型的任何给定条目的每个前缀都有一个条目(LZW,一个),而其他条目没有(例如,LZMW)。 如果对于后者,例如10 ^ 7字节的文件的扩展可以使用比原始文件末尾的前缀的任何编码更便宜的编码的条目,则压缩文件将更短。 (使用LZMW和10 ^ 7个相同的字节,我希望在编码前两个字节后输入两个字节,另一个输入为四个,八个,... 2 ^ 22.附加(3 * 2 ^ 22 - 10 ^ 7)允许完成还有一个" 2 ^ 22代码" - 代码为10 ^ 7个字节作为......)