0

假设我们有以下规范的霍夫曼代码表。

Symbol    Code-length   Codeword
 A            2          00
 B            2          01
 C            2          10
 D            2          11

现在,我们从输入文件中读取符号并通过查看上表对其进行编码。然而,许多资源说,在规范霍夫曼的情况下,我们不应该发送代码字。相反,每个符号的代码长度就足够了。

如果文本文件包含 ACCDB,我应该将 00 01 10 11 还是 10 10 10 10(对应代码长度的二进制等效项)作为编码比特流传输?如果我错了,请纠正我,我很感激任何解释。

此外,如果规范霍夫曼是这种情况,我们将如何解码该比特流以取回原始符号 ACCDB(在解码器中不使用霍夫曼树)?

4

1 回答 1

0

这不是一个规范的霍夫曼代码表,也不是一个霍夫曼代码,也不是一个前缀代码。代码长度 1、2、2、3 超额订阅了可用位。1, 2, 2 是一个完整的代码,不允许再编码符号。

1, 2, 3, 3 是完整且未超额订阅的代码,在这种情况下,代码的示例为 0、10、110、111。您可以看到这些代码可以唯一解码,从左到右读取它们.

于 2017-01-19T15:47:51.533 回答