首页 > 代码库 > 第三次作业

第三次作业

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

2.利用程序huff_enchuff_dec进行一下操作(在每种情况下,利用由被压缩图像生产的码本)。

(a)SenaSensinOmaha图像进行编码

图像文件名

压缩前

压缩后

Sena

64.0KB

56.1KB

Sinan

64.0KB

60.2KB 

Omaha

64.0KB

57.0KB

 

 

 

 

 

4.一个信源从符号集A={a1,a2,a3,a4,a5}中选择字母,概率为P(a1)=0.15P(a2)=0.04P(a3)=0.26P(a4)=0.05P(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.15log2 (0.15)-0.04log2 (0.04)-0.26log2 (0.26)-0.05log2 (0.05)-0.50log2 (0.50)

=0.41+0.19+0.51+0.22++0.50

=1.82(bits)

(b)

概率由大到小排列为  0.500.260.150.050.04, 即 a5a3a1a4a2

            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=1.83

冗余度=L-H=1.83-1.82=0.01

 

二、 思考:为什么压缩领域中的编码方法总和二叉树联系在一起呢?

答:为了使用不固定的码长表示单个字符,编码必须符合“前缀编码”的要求,

即较短的编码决不能是较长编码的前缀。

要构造符合这一要求的二进制编码体系,二叉树是最理想的选择。

 

三、 选做:试将“Shannon-Fano”编程实现。

 

第三次作业