参考书 数据压缩导论(第4版)Page 66
2. 利用程序huff_enc和huff_dec进行以下操作(在每种情况下,利用由被压缩图像生成的码本)。
(a)对Sena、Sensin和Omaha图像时行编码。
答案:
压缩前图像名称 | 压缩后名称 | 压缩前大小 | 压缩后大小 | 压缩比 |
SENA.IMG | sena.huff | 64.0KB(65,536字节) | 56.1KB(57,503字节) | 87.6% |
SENSIN.IMG | sensin.huff | 64.0KB(65,536字节) | 60.2KB(61,649字节) | 94.1% |
OMAHA.IMG | omaha.huff | 64.0KB(65,536字节) | 57.0KB(58,374字节) | 89.1% |
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)log2(P(a1))-P(a2)log2(P(a2))-P(a3)log2(P(a3))-P(a4)log2(P(a4))-P(a5)log2(P(a5))
=-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)
=2.368bit
(b)霍夫曼编码:a1的霍夫曼编码为001
a2的霍夫曼编码为0000
a3的霍夫曼编码为01
a4的霍夫曼编码为0001
a5的霍夫曼编码为1
(c)平均码长为L
L=P(a1)*l(a1)+P(a2)*l(a2)+P(a3)*l(a3)+P(a4)*l(a4)+P(a5)*l(a5)
=0.15*3+0.04*4+0.26*2+0.05*4+0.5*1
=1.83比特/符号
冗余度为H-L=2.368-1.83=0.538
5.(a) 一个符号集A={a1, a2, a3, a4,},其概率为P(a1)=0.1,P(a2)=0.3,P(a3)=0.25,P(a4)=0.35,使用以下过程找出一种霍夫曼码:
(a)本章概述的第一种过程:
答:(1)将每个符号出现的概率大小按照从小到大的顺序从上到下排列。
(2)将最小的两个符号的概率相加,并继续这一步骤,始终将较高的概率分支放在下部,得到新的概率。
(3)再将得到的这个新的概率放到剩下的符号的概率中进行比较重复步骤1、2,直到最后相加的概率为1。
(4)再进行步骤1、2的时候,在每对组合中的指定为0,下部指定为1。
(5)画出每个信源符号概率到1处的路径,记下沿路径的1和0。
(6)对于每个信源符号都写出1、0序列,则从右到左就得到霍夫曼编码。
所以此符号集的霍夫曼编码是:a1的霍夫曼编码为110,
a2的霍夫曼编码为10,
a3的霍夫曼编码为111,
a4的霍夫曼编码为0,
平均码长L=2比特/符号。
(b)最小方差过程。
答:此符号集的熵H=-P(a1)log2(P(a1))-P(a2)log2(P(a2))-P(a3)log2(P(a3))-P(a4)log2(P(a4))
= -0.1*log2(0.1) -0.3*log2(0.3) -0.25*log2(0.25) -0.35*log2(0.35)
=0.57比特/符号
a1的霍夫曼编码为110,
a2的霍夫曼编码为10,
a3的霍夫曼编码为111,
a4的霍夫曼编码为0,
平均码长L=3*0.1+2*0.3+3*0.25+1*0.35=2比特/符号
冗余度为:H-L=2-0.57=1.43
方差S2=0.1*(3-1.43)2+0.3*(2-1.43)2+0.25*(3-1.43)2+0.35*(1-1.43)2
=1.0249
解释这两种霍夫曼码的区别。
数据导论压缩第30页第六题:
一阶熵:
二阶熵为:
差分熵为:
图像名称 | 一阶熵 | 二阶熵 | 差分熵 |
BERK.IMG | 7.151537 | 6.705169 | 8.976150 |
EARTH.IMG | 4.770801 | 2.568358 | 3.962697 |
GABE.IMG | 7.116338 | 6.654578 | 8.978236 |
OMAHA.IMG | 6.942426 | 4.488626 | 6.286834 |
SENA.IMG | 6.834299 | 3.625204 | 3.856899 |
SENSIN.IMG | 7.317944 | 4.301673 | 4.541547 |
test.txt | 4.315677 | 3.122731 | 6.099982 |