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

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

      答:图片Sena、Sensin和Omaha的原图大小均为64.0KB,压缩后Sena、Sensin和Omaha的图片大小分别为56.1KB、60.2KB、57.0KB,所以几张图片的压缩比分别为:0.877、0.941、0.891

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)

                       =0.548 bits/symbol

         (b)  A={a1, a2, a3, a4, a5}={110,1111,10,1110,0}

         (c)   平均码长:

                   l=0.15*3+0.04*4+0.26*2+0.05*4+0.50*1

                     =1.83bits/symbol

                    冗余:

                    l-H=1.282bits/symbol

1-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)  以空码开始;计算所有符号的频率/概率;对所有符号按其概率排序;将符号集合划为两个概率差异最小集合;在第一个集合的码字前加‘0’,在第二个集合的码字前加‘1’;对划分得到的两个子集递归编 码,直到每个集合不能再被划分。

           (b)  A={a1, a2, a3, a4,}={001,001,00,1}

                     H=-(0.1* log2*0.1+0.3* log2*0.3+0.25* log2*0.25+

                               0.35* log2*0.35)

                        =0.568bits/symbol

                     平均码长:

                       l=0.1*3+0.3*3+0.25*2+0.35*1

                        =1.85bits/symbol

                       冗余:

                       l-H=1.282bits/symbol

                            最小方差过程:

                            S2=0.1(3-1.282)2+0.3(3-1.282)2+0.25(2-1.282)2+0.35(1-1.282)2

                                =1.337

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

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

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

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

        答:

           (a)程序代码是老师提供的,由程序计算出文件中的一些图像和语音文件的一阶熵分别为:   EARTH.IMG=4.770801bit/字符; DMAHA.IMG=6.942426bit/字符; SENA.IMG=6.834299bit/字                   符;SENSIN.IMG=7.317944bit/字符; BERK.RAW=7.151537bit/字符; GABE.RAM=7.116338bit/字符;

           (b)图片EARTH.IMG的二阶熵为2.568358bit/字符,由(a)知图片EARTH.IMG的一阶熵为4.770801bit/字符,比较该图片的一阶熵和二阶熵可以得出,二阶熵要小,所以出现概率较低。

           (c)图片EARTH.IMG的相邻像素之差的熵为3.962697bit/字符,由结果可知相邻像素之差位于图片的一阶熵和二阶熵之间。