是否有压缩库支持在某些文件集上“学习”或使用某些文件作为压缩其他文件的基础?
如果我们想压缩许多类似的文件,保留对每个文件的快速访问权限,这将非常有用。
类似的东西:
# compression:
compressor.learn_on_data(standard_data);
compressor.compresss(data, data_compressed);
# decompression:
decompressor.learn_on_data(the_same_standard_data);
decompressor.decompress(data_compressed, data);
如何调用(我认为“增量压缩”还有一点其他的事情)?在流行的压缩库中是否有这种实现?我希望它可以通过例如用标准数据预先填充词典来实现。
答案 0 :(得分:2)
是的,它有效。 虽然有很多技巧,但你会发现最简单的技术称为“字典预填充”。简而言之,您提供了一个文件,从中可以“消化”最新的部分(最大窗口大小,根据您的算法可以在4K到64MB之间),因此可以用来更好地压缩下一个文件。
实际上,这类似于“实体模式”,当在存档中时,所有相同类型的文件被组合在一起,以便前一个文件可以用作下一个文件的字典,从而提高压缩率。 / p>
下行:必须为压缩器和解压缩器提供相同的字典。