您的位置:首页 > 其它

Huffman编码字典构造

2017-08-03 19:06 330 查看

Huffman编码字典构造

Huffman编码的构造

对符号集的元素进行排序,使

fX(α0)≤fX(α1)≤⋯≤fX(αK−1)

If K=2
赋值cα0="0"和cα1="1"

else
创建一个新的符号集AX′={α′1,α2,⋯,αK−1},分配满足

fX′={fX(α0)+fX(α1),x=α′fX(x),其他

的概率fX′。递归调用编码构造算法,找到对应AX′和fX′的优化编码cα′1,cα2,⋯,cαK−1。通过在cα′1后增加“0”和“1”扩展编码,分别得到cα0和cα1。

end

上述算法就是Huffman编码的字典构造方法。

Huffman字典计算示例

假定AX={0,1,2,3},概率为

fX(0)=316,fX(1)=216,fX(2)=216,fX(3)=916

计算该符号集的Huffman编码字典。

下图是手算Huffman字典的方法:



在开发私有codec时,如果用到Huffman编码,则最好需要通过大规模的样本获得概率分布数据。只要获得概率数据,无需编程、无需手算就可以获得编码效率最高的Huffman字典。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息