首页 > 代码库 > 第三次作业
第三次作业
1, 参考书《数据压缩导论(第4版)》 Page 66
2、利用程序huff_enc和huff_dec进行以下操作(在每种情况下,利用由被压缩图像生成的码本)
a,对Sena、Sensin、Omaha图像进行编码
解:对Sena、Sensin、Omaha图像进行编码的表如下:
图像文件名 压缩前 压缩后 压缩比
Sena 64KB 56.1KB 1.14
Sensin 64KB 60.2KB 1.06
Omaha 64KB 57.0KB 1.12
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)计算这个信源的熵
解:H(A)=-∑i=1,2,3,4,5P(ai)*log2P(ai)
=-(0.15*log20.15+0.04*log20.04+0.26*log20.26+0.05*log20.05+0.50*log20.50)
=1.817685
≈1.81
(b)求这个信源的霍夫曼码
解:这个信源的二叉树如下:
由上图的二叉树, 这个信源的霍夫曼吗如下:
字母 概率 霍夫曼码
a1 0.15 101
a2 0.04 111
a3 0.26 100
a4 0.05 110
a5 0.50 0
(c)求b中代码的平均长度及其冗余度
解:代码的平均长度为:l=∑P(ai)*Li=0.15*3+0.04*3+0.26*3+0.05*3+0.50*1=2
冗余度为:e=1-H(A)/l=1-1.81/2=0.095
2, 思考:为什么压缩领域中的编码方法总和二叉树联系在一起呢?
答:因为在数据压缩领域中进行编码时,为了能够使用不固定长度的码表示单个字母,即使用最优前缀编码,
编码必须满足前缀编码的要求,前缀编码的要求是较短的编码不能使较长编码的前缀,要构造满足此
要求的编码,二叉树是最好的选择。所以压缩领域中的编码方法总和二叉树联系在一起。
第三次作业