数据压缩编码:霍夫曼编码

一、霍夫曼编码基本思想

霍夫曼编码的基本思想是:对出现概率较大的符号取较短的码长,而对于概率较小的符号取较长的码长,它是一种变长码,通常称其为最优码。

二、霍夫曼编码原理

设某信源有几个符号,对应于各自拥有的概率。首先,将所有的符号按照它们的概率大小由大到小排列。编码时,从概率最小的两个符号开始选其中一路为0,一路为1,将这两个符号的概率相加,再将所有的概率按从大到小排列,多次重复上述步骤直到合并概率归一为止。

下面举个例子:

设有一个由5个不同符号组成的30个符号的字符串:BABACACADADABBCBABEBEDDABEEEBB,求该字符串的霍夫曼编码。

①首先,我们算出各个符号的概率:

P(A) = 8/30; P(B) = 10/30; P(C) = 3/30; P(D) = 4/30; P(E) = 5/30

②将上面五个符号按概率从大到小排列:

B:10/30

A:8/30

E:5/30

D:4/30

C:3/30

③接下来按上述方法合并,具体如下图所示:

                           

从右往左读,以C为例,与C相关的有7/30,12/30,所以C的码字为:010;以此类推,D的码字为011,E的码字为00,A的码字为10,B的码字为11。

因此该字符串的霍夫曼码为:

111011100101001010010100111001110111101011101100110001101110110000001111


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值