首页 > 代码库 > 第三次作业

第三次作业

一、参考书《数据压缩导论(第4版)》  Page 66 第2(a),4 题

2.利用程序huff_enc和huff_dec进行一下操作(在每种情况下,利用由被压缩图像生产的码本)。

(a)对Sena、Sensin和Omaha图像进行编码

图像文件名压缩前压缩后
sena64.0KB(65,536字节)56.1KB(57,503字节)
sinan64.0KB(65,536字节)60.2KB(61,649字节)
omaha64.0KB(65,536字节)57.0KB(58,374字节)

 

4.一个信源从符号集A={a1,a2,a3,a4,a5}中选择字母,概率为P(a1)=0.15,P(a2)=0.04,P(a3)=0.26,P(a4)=0.05,P(a5)=0.50。

(a)计算这个信源的熵。

(b)求这个信源的霍夫曼码。

(c)求(b)中代码的平均长度及其冗余度。

 答:

(a)

          H=-P(a1)*logP(a1)-P(a2)*logP(a2)-P(a3)*logP(a3)-P(a4)*logP(a4)-P(a5)*logP(a5)

          =0.411+0.186+0.505+0.216+0.5

          =1.818(bits/symbol)         

(b)

∵将概率由大到小排列为:a5,a3,a1,a4,a2

  ∴          a1:001

               a2:0000

               a3:01

               a4:0001

               a5:1

(c)

        ∵平均长度:L=0.15*3+0.04*4+0.26*2+0.05*4+0.5*1

                             =0.45+0.16+0.52+0.2+0.5

                             =1.83(bits/symbol)

              ∴冗余度:L-H(A)=1.83-1.818=0.012(bits/symbol)

 

 

二、 思考:为什么压缩领域中的编码方法总和二叉树联系在一起呢?

     答:为了使用不固定的码长表示单个字符,编码必须符合“前缀编码”的要求,因为较短的编码不能是较长编码的前缀。所以要构造符合这一哥要求的二进制编码体系,压缩领域中的编码方法总和二叉树联系在一起。

 

 

 

 

三、 选做:试将“Shannon-Fano”编程实现。

第三次作业