【问题标题】:How to Merge huffman and lz77?如何合并霍夫曼和lz77?
【发布时间】:2020-11-05 09:51:17
【问题描述】:

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

我该怎么做?

我必须手动编写而不使用库。

【问题讨论】:

  • 能否请您也添加您的代码?
  • “代码”是指数字的编码,还是源代码?你知道 Deflate 是如何工作的吗?
  • @Zerte:我不太了解你的目的.. 但我致力于创建霍夫曼树,然后创建 lz77..我现在想尝试结合这两种算法来创建一个 deflate ..我不确切知道它是如何工作的,因为我在互联网上没有找到任何人很好地解释算法,我不想使用库
  • 放气算法/格式为documented

标签: java zip huffman-code deflate lz77


【解决方案1】:

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

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

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

您可以阅读deflate description,了解它是如何做到这一切的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 2023-03-23
    相关资源
    最近更新 更多