【问题标题】:How to compute good preset dictionary for deflate compression如何为放气压缩计算好的预设字典
【发布时间】:2013-07-10 14:29:50
【问题描述】:

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

我开始研究前缀树,但不清楚如何在这种情况下使用它们。

最好的问候, 贾雷克

【问题讨论】:

    标签: compression gzip zlib deflate jzlib


    【解决方案1】:

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

    首先要尝试将 32K 的 1-3K 示例简单地连接起来,看看与没有字典相比能提供多少收益。然后你从那里弄乱它,改变例子的顺序或者把例子中重复的部分拉到字典的末尾。

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

    【讨论】:

    • 谢谢马克,这正是我现在正在做的事情。即使使用简单的连接示例,压缩也非常好。我还将尝试查找最常见的子字符串并将它们放在字典的末尾附近。我还打算使用不止一本字典(我的样本自然可以分为子类别)。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-21
      • 2010-11-07
      • 2012-12-09
      • 2015-02-27
      • 1970-01-01
      • 2020-03-04
      • 1970-01-01
      • 2014-02-16
      相关资源
      最近更新 更多