参考书《数据压缩导论(第4版)》Page 66
2 利用程序huff_enc和huff_dec进行以下操作(在每种情况下,利用由被压缩图像生成的码本)。
(a) 对Sena、Sensin和Omaha图像时行编码。
图像 | 压缩前 | 压缩后 | 压缩比 |
SENA | 64kb | 57kb | 0.89 |
OMAHA | 64kb | 58kb | 0.90 |
SINAN | 64kb | 61kb | 0.95 |
(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)计算这个信源的熵。
(b)求这个信源的霍夫曼码。
(c)求(b)中代码的平均长度及其冗余度。
(a)
H(a)=-∑P(x)logP(x)
=-P(a1)log2P(a1)-P(a2)log2P(a2)-P(a3)log2P(a3)-P(a4)log2P(a4)
=-(0.15)log2(0.15)-(0.04)log2(0.04)-(0.26)log2(0.26)-(0.05)log2(0.05)-(0.50)log2(0.50)
=0.41+0.18+0.50+0.21+0.5
=1.8bits
(b)
1
a5( 0.50) (0.50)
1 0
a3(0.26) (0.24 )
1 0
a1( 0.15) ( 0.09)
1 0
a4 (0.05) a2( 0.04 )
1 0
P | 霍夫曼码 |
a1( 0.15) | 100 |
a2( 0.04) | 0000 |
a3( 0.26) | 10 |
a4( 0.05) | 1000 |
a5( 0.50) | 1 |
(c)
平均长度=0.15*3+0.04*4+0.26*2+0.05*4+0.5*1=1.83bits
冗余度=平均长度-H(a)=1.83-1.8=0.03bits
5 一个符号集A={a1, a2, a3, a4,},其概率为P(a1)=0.1,P(a2)=0.3,P(a3)=0.25,P(a4)=0.35,使用以下过程找出一种霍夫曼码:
(a)本章概述的第一种过程:
(b)最小方差过程。
解释这两种霍夫曼码的区别。
(a)
P | 霍夫曼码 |
a1( 0.1) | 110 |
a2( 0.3) | 10 |
a3( 0.25) | 111 |
a4( 0.35) | 0 |
(b)
P | 霍夫曼码 |
a1( 0.1) | 00 |
a2( 0.3) | 10 |
a3( 0.25) | 01 |
a4( 0.35) | 11 |
参考书《数据压缩导论(第4版)》Page 30
6在本书配套的数据中有几个图像和语音文件。
(a) 编写一段程序,计算其中一些图像和语音文件的一阶熵。
(b) 选择一个图像文件,计算其二阶熵。试解释一阶熵与二阶熵的差别。
(c) 对于(b)中所有的图像文件,计算其相邻像素之差的熵,试解释你的发现。
图像 | 一阶熵 | 二阶熵 | 差熵 |
EARTH | 4.770801 | 2.568358 | 3.962697 |
OMAHA | 6.942426 | 4.488626 | 6.286834 |
SENA | 6.834299 | 3.625204 | 3.856989 |
SENSIN | 7.317944 | 4.301673 | 4.541547 |
BERK | 7.151537 | 6.705169 | 8.976150 |
GABE | 7.116338 | 6.654578 | 8.978236 |
一阶熵与二阶熵相差近似为3 ,差熵与一阶熵相差不大。