张翠的第二次作业

P66

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

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

    (b) 编写一段程序,得到相邻之差,然后利用huffman对差值图像进行编码。

    (c)  使用adap_huff重复(a)和(b)。

      解答:(a)

文件名 压缩前 压缩后 压缩比
Sena 64.0KB 56.1KB 0.88
Sensin 64.0KB 60.2KB 0.94
Omaha 64.0KB 57.0KB 0.89

    (b)

    (c)  

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=0.15*log220/3+0.04*log225+0.26*log250/13+0.05*log220+0.5*log22

                      =0.411+0.186+0.505+0.216+0.5

                      =1.818

              (b)这个信源的霍夫曼码为:

                    1)为每个字符创建一个集合

字母 码字 概率 集合 集合的概率
a1   0.15 a1 0.15
a2   0.04 a2 0.04
a3   0.26 a3 0.26
a4   0.05 a4 0.05
a5   0.5 a5 0.5

                  2)第一次编码

 字母  码字  概率  集合  集合的概率
 a1    0.15  a2a4
 0.09
 a2  1  0.04  a1
 0.15
 a3
   0.26  a3
 0.26
 a4
 0  0.05  a5
 0.5
 a5
   0.5  
 

                 3)第二次编码

字母 码字 概率 集合 集合的概率
a1 0  0.15 a2a4a1 0.24
a2
11 0.04 a3 0.26
a3   0.26 a5 0.5
a4 10  0.05    
a5    0.5    

               4)第三次编码

字母 码字 概率 集合 集合的概率
a1 10  0.15 a2a4a1a3  0.5
a2 111 0.04 a5
 0.5
a3 0 0.26    
a4 110  0.05    
a5    0.5    

              5)第四次编码

字母 码字 概率 集合 集合的概率
a1 110 0.15 a2a4a1a3a5 1.0
a2 1111 0.04    
a3 10 0.26    
a4 1110 0.05    
a5 0 0.5    

             综上可得:a1:110                       a2:1111                    a3:10               a4:1110                  a5:0

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

                             =0.45+0.16+0.52+0.2+0.5

                             =1.83bits/symbol

                冗余度R=L-H=1.83-1.818=0.012

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)用本章概述的第一种过程可得:

                          第一个霍夫曼码为: a1:001                  a2:01                 a3:000           a4:1

                          第二个霍夫曼码为: a1:00                  a2:10               a3:01           a4:11

                          第一个的平均码长L=0.1*3+0.3*2+0.25*3+0.35*1 =2.0

                          第二个的平均码长L=0.1*2+0.3*2+0.25*2+0.35*2=2.0

                     (b)最小方差过程:

                            第一个的方差S1=0.1*(2-3)2+0.3*(2-2)2+0.25*(2-3)2+0.35*(2-1)2=0.7

                            第二个的方差S2=0.1*(2-2)2+0.3*(2-2)2+0.25*(2-2)2+0.35*(2-2)2=0

                  这两种霍夫曼码的区别在于:这两个代码的平均码长是相同的,但码字长度的方差有很大不同

参考书《数据压缩导论(第4版)》Page 30

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

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

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

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

解答:根据老师所提供的代码,调试的到的结果如下:

图像名称 一阶熵 二阶熵 差分熵
EARTH(IMG) 4.770801 2.568358 3.962697
OMAHA(IMG) 6.942426 4.488626 6.286834
SENA(IMG) 6.834299 3.625204 3.856989
SENSIN(IMG) 7.317944 4.301673 4.541547
BERK(RAW) 7.151537 6.705169 8.976150
GABE(RAW) 7.116338 6.654578 8.978236

                  由表格中的内容,我们可以得到结论是:1)相同图像的一阶熵都要比二阶熵的数值大

                                                                    2)相同图像的差分熵的数值要大于二阶熵的数值。原因:两者都考虑相邻像素之间相关性,所以熵较小;但二阶熵是考虑                                                                           相邻像素间相关性后熵的下界,比差分熵更小一些。

           

原文地址:https://www.cnblogs.com/zhangcui/p/4785110.html