符号频率相等的霍夫曼码
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 是任意的。
那么如何获得唯一可解码的码字呢?
您需要向接收器发送代码,而不是频率。您可以任意分配 0
和 1
到所有分支,然后在编码符号本身之前发送每个符号的代码。来自同一组频率的许多可能的霍夫曼代码。
更常见的是只发送每个符号的代码长度(以位为单位)。在这种情况下,它们是 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
其中等长代码按字典顺序分配给符号。请注意,不需要构建的霍夫曼树。所需要的只是每个符号的位数。
从这些频率开始:
A:7 F:6 H:1 M:2 N:4 U:5
在后面的步骤中,我有 5 6 7 7,其中 7 之一是 "A"。我选择哪 7 个分支是 0 或 1 是任意的。
那么如何获得唯一可解码的码字呢?
您需要向接收器发送代码,而不是频率。您可以任意分配 0
和 1
到所有分支,然后在编码符号本身之前发送每个符号的代码。来自同一组频率的许多可能的霍夫曼代码。
更常见的是只发送每个符号的代码长度(以位为单位)。在这种情况下,它们是 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
其中等长代码按字典顺序分配给符号。请注意,不需要构建的霍夫曼树。所需要的只是每个符号的位数。