假设我们有以下规范的霍夫曼代码表。
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(不在解码器中使用霍夫曼树)?
答案 0 :(得分:0)
这不是规范的霍夫曼代码表,也不是霍夫曼代码,也不是前缀代码。代码长度1,2,3,3超额预订可用位。 1,2,2是一个完整的代码,不允许编码符号。
1,2,3,3是完整且未超额订购的代码,在这种情况下,代码的示例将是0,10,110,111。您可以看到这些代码可以被唯一地解码,读取它们从左到右。