符号频率相等的霍夫曼码

Huffman Code with equal symbol frequencies

从这些频率开始:

A:7 F:6 H:1 M:2 N:4 U:5

在后面的步骤中,我有 5 6 7 7,其中 7 之一是 "A"。我选择哪 7 个分支是 0 或 1 是任意的。

那么如何获得唯一可解码的码字呢?

您需要向接收器发送代码,而不是频率。您可以任意分配 01 到所有分支,然后在编码符号本身之前发送每个符号的代码。来自同一组频率的许多可能的霍夫曼代码。

更常见的是只发送每个符号的代码长度(以位为单位)。在这种情况下,它们是 A:2 F:2 H:4 M:4 N:3 U:2。然后在两端使用 canonical code 仅取决于长度。在这种情况下,从 0 开始,规范代码将是:

A: 00
F: 01
U: 10
N: 110
H: 1110
M: 1111

其中等长代码按字典顺序分配给符号。请注意,不需要构建的霍夫曼树。所需要的只是每个符号的位数。