第二次作业

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

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

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

给出以上每一试验得出的文件大小,并解释其差别。

答: 

文件名 压缩前文件大小 压缩后文件大小 压缩比
Sena 64KB 56.1KB 87.66%
Sinan 64KB 60.2KB 94.06%
Omaha 64KB 57KB 89.06%

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) =1*0.15*(-log20.15)+1*0.04*(-log20.04)+1*0.26*(-log20.26)+1*0.05*(-log20.05)+1*0.50*(-log20.05)

             =0.547

       (b)  将概率按从大到小的顺序排列为:

            P(a5)=0.50

            P(a3)=0.26

            P(a1)=0.15

            P(a4)=0.05

            P(a2)=0.04

           对其进行划分:

           所以这个信源的霍夫曼码为:

                                        a5     0

                                        a3     10

                                        a1     110

                                        a4     1110

                                        a2     1111

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

                           =1.83 (bit/pel)  

           冗余度:r=Hmax(x)-H(x)=logm-H(x)

                        =logm-H(x)

                        =1.83-0.547

                        =1.283(bit/pel)  

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)  1、将信号源的符号按照概率的大小按从大到小的顺序排列。

             2、然后将出现概率最小的进行合并相加,并对其中的一个赋“1”,另一个赋“0”,相加得到的结果在与其它的比较。

             3、重复“2”的过程直到最后两个符号的概率相加得1位置

      (b)  将概率按从大到小的顺序排列为:

            P(a4)=0.35

            P(a2)=0.3

            P(a3)=0.25

            P(a1)=0.1

             对其进行划分:

 

        所以这个信源的霍夫曼编码为:

                                        a4     0

                                        a2     10

                                        a3     110

                                        a1     111

       (b)最小方差:

        因为

           熵: 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.85(bit/pel)  

       冗余度:r=Hmax(x)-H(x)=logm-H(x)

                        =logm-H(x)

                        =1.85-0.568

                        =1.282(bit/pel)

 最小方差过程:

                    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

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

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

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

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

        答:(a)程序代码是老师提供的,由程序计算出文件中的一些图像和语音文件的一阶熵分别为:

文件名

一阶熵
 EARTH.IMG 4.770801bit/字符;
 GABE.RAM 7.116338bit/字符;
BERK.RAW 7.151537bit/字符;
OMAHA.IMG 6.942426bit/字符;
 SENA.IMG 6.834299bit/字符; 
SENSIN.IMG 7.317944bit/字符;

 

  

 

(b)选择图像文件OMAHA.IMG。其一阶熵为: 6.942426  

 

其二阶熵为:4.488626 

    

 从上面我们可以清楚的看到,该图片的一阶熵和二阶熵比较,二阶熵要小,因

此文件经过二阶压缩处理要比一阶压缩处理要好,减少存储空间。

(c)图像文件OMAHA.IMG的差分熵为:6.286834

由(b)中可知差分熵位于一阶熵和二阶熵之间,但与一阶熵比较接近,因此我们如果要选择压缩方

法的话我觉得因该选择二阶熵            

原文地址:https://www.cnblogs.com/lanxuetianya/p/4784737.html