-1

我有 huffman 和 lz77 代码,但我需要任何方法来合并这些算法以使 deflate

我怎么能这样做?

我必须在不使用库的情况下手动编写它。

4

1 回答 1

0

LZ77 为您提供了一系列文字和长度/距离对。有很多方法可以应用霍夫曼编码。第一步是将霍夫曼编码应用于文字,就好像没有 LZ77 一样。然后按原样传递长度/距离对,确保您可以判断下一个是文字还是长度/距离对。

之后,您还可以尝试对长度/距离对进行编码。Deflate 将文字和长度放在一个 Huffman 代码中,将距离放在第二个 Huffman 代码中。或者,您可以编写一系列文字,后跟一个长度,然后将文字和长度放在不同的霍夫曼代码中。或者......许多其他方式。

为了能够解码,您还需要描述您在流开始时使用的霍夫曼代码。

您可以阅读deflate 描述,了解它是如何完成这一切的。

于 2020-07-16T20:39:26.697 回答