p66 3.10
2、利用程序huff_enc和huff_dec进行以下操作(在每种情况下,利用由被压缩图像生成的码本)。
(a)对Seca、Sensin和Omaha图像进行编码。
图像名 | 原文件大小 | 压缩文件大小 | 压缩比 |
Omaha | 64KB | 58KB | 1.10 |
Sena | 64KB | 57KB | 1.12 |
Sinan | 64KB | 61KB | 1.04 |
(b)编写一段程序,得到相邻像素之差,然后利用huffman对差值图像进行编码。
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=(-0.15*log20.15)+(-0.04*log20.04)+(-0.26*log20.26)+(-0.05*log20.05)+(-0.50*log20.50)
=0.4105+0.1858+0.5053+0.2161+0.5
=1.8177(bit)
(b)求这个信源的霍夫曼码。
解:
码长 码字 信源符号 出现概率
1 1 a5 0.5
2 01 a3 0.26
3 001 a1 0.15
4 0001 a4 0.05
4 0000 a2 0.04
(c)求(b)中代码的平均长度及其冗余度。
平均字长: l = 0.5*1+0.26*2+0.15*3+0.05*4+0.04*4 = 1.83 (bit)
冗余度: l - h = 1.83 - 1.8177 = 0.0123 (bit)
5、一个符号集A={a1,a2,a3,a4},P(a1)=0.1,P(a2)=0.3,P(a3)=0.25,P(a4)=0.35,使用以下过程找出一种霍夫曼码:
(a)本章概述的第一种过程。
(1) 码长 码字 信源符号 出现概率
2 11 a4 0.35
2 10 a2 0.3
2 01 a3 0.25
2 00 a1 0.1
此代码平均字长: l = 0.35*2 + 0.3*2 + 0.25*2 + 0.1*2 = 2 (bit)
(2) 码长 码字 信源符号 出现概率
2 1 a4 0.35
2 01 a2 0.3
2 001 a3 0.25
2 000 a1 0.1
此代码平均字长 : l = 3*0.1 + 2*0.3 + 3*0.25 + 1*0.35 = 2 (bit)
(b)最小方差过程。
(1) S2 = 0.35*(2-2)2 + 0.3*(2-2)2 + 0.25*(2-2)2 + 0.1*(2-2)2 = 0
(2) S2=0.1*(3-2)2+0.3*(2-2)2+0.25*(3-2)2+0.35*(1-2)2=0.70
p 30
6、在本书配套的数据集中有几个图像和语音文件。
(a)编写一段程序,计算其中一些图像和语音文件的一阶熵。
以下的这都是一阶熵:
EARTH.IMG 4.770801
OMAHA.IMG 6.942426
SENA.IMG 6.834299
SENSIN.IMG 7.317944
GABE.RAW 7.116338
BERK.RAW 7.151537
(b)选择一个图像文件,并计算其二阶熵。试解释一阶熵与二阶熵之间的区别。
EARTH.IMG 的二阶熵: 2.568358
由第一题和第二题的结果发现,一阶熵和二阶熵的差别是一阶熵与二阶熵的差相差不到比较小。
(c)对于(b)中所用的图像文件,计算其相邻像素之差的熵。试解释你的发现。
由一,二,三题的结果发现,差熵比一阶熵和二阶熵都要大