首页 > 其他 > 详细

霍夫曼编码

时间:2018-03-28 20:07:13      阅读:223      评论:0      收藏:0      [点我收藏+]

霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。

霍夫曼编码具体步骤:

1、将信源符号的概率按减小的顺序排序
2、把两个最小的概率相加,始终将比较大的概率的分支放在右边,继续这一步骤(选取根节点权重最小的两棵树合并)
3、画出到每个信源符号的路径,(左0右1)得到每个信源符号的霍夫曼码

如:由6个不同字母组成的30个的字符串:CCABD EAFDD AACEE BBACA EFAAB CCCEA

1、计算每个字母的概率

A-----------------9
C-----------------7
E-----------------5
B-----------------4
D-----------------3
F-----------------2

2、将概率最小的相加并将较大概率分支放在右边

3、按左0右1的原则画出每个信源符号路径,得下图

技术分享图片

获得每个字符的编码:

A-----------------9-----------------10
C-----------------7-----------------01
E-----------------5-----------------111
B-----------------4-----------------110
D-----------------3-----------------001
F-----------------2-----------------000

EG:

某通信码中只会出现8中字符,其概率分别是0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11,若对其进行霍夫曼编码,其霍夫曼树的高度是?

计算字符概率:

b-----------------29
f-----------------23
e-----------------14
h-----------------11
d-----------------8
c-----------------7
a-----------------5
g-----------------3

霍夫曼树为:

技术分享图片

所以高度是4

霍夫曼编码

原文:https://www.cnblogs.com/Mr-Wenyan/p/8665457.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!