刘存俊第二次作业

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

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

图像名称 压缩前 压缩后 压缩率
Sena    64.0  56.1 88%
   Sensin 64.0 60.2 94%
    Omaha 64.0 57.0 89%
图像名称 压缩前 压缩后 压缩率
Sena  64.0 56.1 87.66%
Sensin 64.0 60.2 94.06%
Omaha 64.0 57.0 79.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):H=p(a1)*log2p(a1)+p(a2)*log2p(a2)+p(a3)*log2p(a3)+p(a4)*log2p(a4)+p(a5)*log2p(a5)

             =0.15*log20.15+0.04*log20.04+0.26*log20.26+0.05*log20.05+0.50*log20.50

            =0.548

(b)概率从小到大的排序为:0.04,0.05,0.15,0.26,0.50

          a1的编码为:001

          a2的编码为:0000

          a3的编码为:01

          a4的编码为:0001

          a5的编码为:1

(c)平均长度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.50*1

                      =1.83bit

     冗余度r=Hmax(x)-H(X)=logm=H(X)=1.83-0.548=1.282

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 0.1
a2 01 0.3
a3 000 0.25
a4 1 0.35
字母 码字 概率
a1 11 0.1
a2 01 0.3
a3 01 0.25
a4 00 0.35


可得

平均码长: 

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

L=2*0.1+2*0.3+2*0.25+2*0.35=2

冗余=l-H=1.282bits/symbol

故最小方差过程:

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

S2=0.1(2-2)2+0.3(2-2)2+0.25(2-2)2+0.35(2-2)2 =0

对比之下可以看出第二种方法更加好一些

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

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

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

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

文件名 一阶熵 二阶熵 差阶熵
SENA.IMG 6.834299 3.625204 3.856989
GABE.RAW 7.116338 6.654578 8.978236
BERK.RAW 7.151537 6.705169 8.976150
EARTH.IMG 4.770801 2.568358 3.962697
OMAHA.IMG 6.942426 4.488626 6.286834
SENSIN.IMG 7.317944 4.301673 4.541597
原文地址:https://www.cnblogs.com/liucunjun/p/4818703.html