第二次作业

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

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

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

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

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

解:(a)

    图片Sena、Sensin和Omaha的原图大小均为64.0KB,压缩后Sena、Sensin和Omaha的图片大小分别为56.1KB、60.2KB、57.0KB,所以几张图片的压缩比分别为:87.7%、94.1%、89.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(s)=0.15*log20.15+0.04*log20.04+0.26*log20.26+0.05*log20.05+0.50*log20.50

               = 2.368 bit/

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

a1 110;a2 1111;a3 10;a4 1110 ;a5 0

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

冗余度:H-L=2.368-1.83=0.538

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)

把各字符出现的概率从小到大排列:P(a1)=0.1,P(a2)=0.3,P(a3)=0.25,P(a4)=0.35,对划分得到的两个子集递归编 码,直到每个集合不能再被划分。

(b)

第一种方法的方差S12=0.35*(1-2)2+0.3*(2-2)2+(0.25+0.1)*(3-2)2=0.7

第二种方法的方差S22=(0.35+0.1+0.3+0.25)*(2-2)2=0

第二种编码比较实用,因为方差小,变化不大、

6.

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

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

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

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

解:(a)

由代码调试得:EARTH.IMG=4.770801bit/字符; DMAHA.IMG=6.942426bit/字符; SENA.IMG=6.834299bit/字符;SENSIN.IMG=7.317944bit/字符; BERK.RAW=4.315677bit/字符; GABE.RAM=3.856989bit/字符;

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

(c)相邻像素之差的熵为:4.7770801-2.568358=2.2087221bit/字符;所以该图片位于一阶熵和二阶熵之间。

原文地址:https://www.cnblogs.com/shihuiyun/p/4785099.html