为什么我们不使用简单的二进制值来压缩数据

时间:2015-04-08 10:27:20

标签: algorithm encoding compression huffman-code data-compression

在Huffman算法中,我们形成一个树,然后用树值1和0替换每个字符,为什么我们不使用像a=0,b=1,c=10,d=01,e=11这样的二进制数字等等,而不是用字符和解压缩时应用反向并用字母替换二进制数字。

喜欢这样:

character Huffman-code binary-code
a            00            0
b            01            1
c            101           01

依旧......

1 个答案:

答案 0 :(得分:2)

霍夫曼码的重要条件是没有两个是彼此的前缀。如果你只是重新编号(因为我认为这是你的建议),你就失去了这个属性。

要了解为什么会中断,请查看" 01"作为输出。在非霍夫曼版本中,它可能是" 0"其次是" 1" (因此" ab"),或" 01" (因此" c"),你无法分辨哪个。