0

您能否在下图中的示例中解释如何从 lz77 转换为霍夫曼?

例子

4

2 回答 2

1

简单的:

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

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

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

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

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

当然具体细节就不说了,大家可以从很多选项中选择。

  • 标准化霍夫曼表
  • 左分支为 1,左分支为 0
  • 合并相似数量的项目时的优先级
  • ETC

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

于 2017-09-24T20:17:48.493 回答
0

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

于 2017-09-25T21:36:04.220 回答