你能解释一下如何从 lz77 转换为霍夫曼吗?

Could you explain how to convert from lz77 to huffman?

你能解释一下如何在下图中的示例中将 lz77 转换为 huffman 吗?

简单:

在第一步中,您的输出基本上是 3 个数字:

  1. 上一索引
  2. 要重复的字符数
  3. 下一个字符(ascii 或 unicode)

该算法要求您预先指定滑动 window。这意味着您知道 (1) 和 (2) 最多可以有多大。 换句话说,您知道 (1) 和 (2) 将占用多少位。 由于 (3) 本质上也是来自固定长度字母表的字符,因此您还知道 (3)

的位长

这意味着简单地连接它们是安全的。 因此,第一个算法的输出可以被认为是输出一个位序列,其中序列中的每一项都有固定的长度。

这是应用哈夫曼的理想选择。

当然具体的就不说了,大家可以选择很多。

  • 归一化霍夫曼 table
  • 左分支 1 vs 左分支 0
  • 合并数量相似的项目时的优先级
  • 等等

所以我无法轻易解释您显示的确切输出值。 但我希望我至少可以解释一下如何从 A 到 B。

你不能。显示的编码是比喻性的。不是字面意思。符号A、B、C都被编码为单个比特0。显然这对解码端的帮助不大。