第六周作业1——利用哈夫曼编码英文字母表

来源:互联网 发布:苹果cms解析教程 编辑:程序博客网 时间:2024/05/17 08:06

       哈夫曼编码的具体步骤归纳如下:

       ① 概率统计(如对一幅图像,或m幅同种类型图像作灰度信号统计),得到n个不同概率的信息符号。

       ② 将n个信源信息符号的n个概率,按概率大小排序。

       ③ 将n个概率中,最后两个小概率相加,这时概率个数减为n-1个。

       ④ 将n-1个概率,按大小重新排序。

       ⑤ 重复③,将新排序后的最后两个小概率再相加,相加和与其余概率再排序。

       ⑥ 如此反复重复n-2次,得到只剩两个概率序列。

       ⑦ 以二进制码元(0.1)赋值,构成哈夫曼码字。编码结束。


      求解过程演示:http://hi.baidu.com/jiang_yy_jiang/item/612a7b4a353199a9df2a9fa7




哈夫曼树:



字符表最优huffman编码:

r:0000                   o:1000                  空格:111             z:1101111101h:0001                   b:1000100               t:1100                j:1101111110u:00100                  p:1000101               f:110100              x:1101111111c:00101                  y:1000110               w:110101s:0011                   g:1000111               m:110110e:010                    a:1010                  v:1101110n:0110                   l:10110                 k:11011110i:0111                   d:10111                 q:1101111100


b.由 a可得: (3*2+4*8+5*4+6*7+7+8+10*4)/27 5.74 ,即每个字母的编码平均需要6位。

c.结果肯定比熵(约为5.74)要大,因为在计算熵的时候允许有小数个比特,而实际上每个字符的编码长度都必需为整数。

d.不是,因为还可以把前缀,后缀或者整个单词的本身组合起来考虑


0 0