参考书《数据压缩导论(第4版)》Page 66(2,4,5) Page 30 (6)

1、《数据压缩导论(第4版)》Page 66

2  利用程序huff_enc和huff­_dec进行以下操作(在每种情况下,利用由被压缩图像生成的码本)。

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

          图像Sena、Sinan和Omaha编码的结果如下(含码表,单位:字节)

图像

直接对像素编码

对差分图像编码

Sena

57,503

32,666

Sinan

61,649

37,156

Omaha

58,374

54,065

     (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*log0.15+0.04*log0.04+0.26*log0.26+0.05*log0.05+0.5*log0.5)

          =1.82bits/symbol

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

 

              a1:110

              a2:1111

              a3:10

              a4:1110

              a5:0

 

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

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

            =1.83bits/symbol

        冗余度:(1.83-1.82)= 0.01bis/symbol

5  一个符号集A={a1, a2, a3, a4,},其概率为P(a1)=0.1,P(a2)=0.3,P(a3)=0.25,P(a4)=0.35,使用以下过程找出一种霍夫曼码:

     (a)       本章概述的第一种过程:

Huffman code:a1:001

                      a2:01

                      a3:000

                      a4:1

代码的平均长度是0.1×3+0.3×2+0.25×3+0.35×1 = 2 bits/symbol.

     (b)       最小方差过程。

Huffman code:a1:11

                      a2:01

                      a3:10

                      a4:00

 代码的平均长度是代码的平均长度是2 bits/symbol

解释这两种霍夫曼码的区别。

         码字的平均长度是两码相同,那就是他们都是同样有效的速率。然而,二码的代码长度为零的方差。这意味着如果我们在通信系统中使用该代码,我们将不会有任何问题与缓冲区控制。

2、 《数据压缩导论(第4版)》   Page 30

6. 在本书配套的数据集中有几个图像和语音文件。

       (a)编写一段程序,计算其中一些图像和语音文件的一阶熵。

文件名 一阶熵
EARTH.IMG 4.770801
OMAHA.IMG 6.942426
SENA.IMG 6.834299
SENSIN.IMG 7.317944
BERK.RAW 7.151537
GABE.RAW 7.116338

       (b)选择一个图像文件,并计算其二阶熵。试解释一阶熵和二阶熵之间的差别。

文件名 一阶熵 二阶熵
OMAHA.IMG 6.942426 4.488626
SENA.IMG 6.834299 3.625204

差别:二阶熵都比一阶熵小得多

       (c)对于(b)中所用的图像文件,计算其相邻像素之差的熵。试解释你的发现。

文件名 一阶熵 二阶熵 差分熵
OMAHA.IMG 6.942426 4.488626 6.286834
SENA.IMG 6.834299 3.625204 3.856989

相邻像素之差的熵都个有不同

原文地址:https://www.cnblogs.com/Ray7/p/4784898.html