如何为压缩压缩计算好的预设字典

时间:2013-07-12 05:54:46

标签: compression gzip zlib deflate jzlib

我有机会为deflate压缩预设字典。在我的情况下这是有道理的,因为要压缩的数据相对较小1kb-3kb,我有大量代表性示例。要压缩的数据由任意字节序列组成,因此标记化等不是一个好方法。此外,数据显示了大量重复(数据示例之间),因此良好的字典可能会产生非常好的结果。 问题是如何计算好字典?是否有算法计算最佳字典(给定样本数据)?

我开始查看前缀树,但目前尚不清楚如何在此上下文中使用它们。

祝你好运, 亚雷克

2 个答案:

答案 0 :(得分:3)

我不知道生成最佳甚至是好词典的算法。这通常是手工完成的。我认为后缀树是查找字典常用字符串的好方法,但我从未尝试过。

要尝试的第一件事就是简单地连接32K值的1-3K示例,看看没有字典提供多少增益。然后你从那里弄乱了它,改变了例子的顺序,或者将例子中的重复部分拉到字典的末尾。

请注意,最常见的字符串应放在最后,因为较短的距离需要较少的位。

答案 1 :(得分:0)

我不知道这有多好,但它是一个字典创建者:https://github.com/vkrasnov/dictator