放气:安全尺寸

时间:2019-01-03 14:48:00

标签: deflate

我很难找到一种创建块的安全方法,它特别考虑了霍夫曼代码的长度。 是否存在从数据读取的安全字节数,由此产生的霍夫曼码不超过既定长度15,并且压缩不会那么糟糕?规范没有阐明如何实现此条件。

此刻,我正在做的是停止输入编码到一定数量的字节,因为我不知道该如何处理。

欢迎任何帮助。

1 个答案:

答案 0 :(得分:0)

不能通过限制要在块中压缩的数据量来限制霍夫曼码的长度。这个限制太短了。相反,如果应用霍夫曼算法导致某些代码的长度超过15位,则对霍夫曼代码进行修改以解决该问题。有关示例,请参见trees.c in zlib

还可以使用修改后的霍夫曼算法,该算法对最大代码长度有限制。参见A fast algorithm for optimal length-limited Huffman codes