首页 > 其他 > 详细

第二作业——肖祥英

时间:2015-09-09 13:05:49      阅读:223      评论:0      收藏:0      [点我收藏+]

P66

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

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

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

答:根据文件程序调试结果如下图所示:

文件名

压缩前

压缩后

压缩率

Sena

64

57

89%

Sensin

64

61

95%

Omaha

64

58

90%

所以压缩率一般是越小越好,但是压得越小,解压时间就越长。

 

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*(log2(0.15))-0.04*(log2(0.04))-0.26 *(log2(0.26))-0.05*(log2(0.05))-0.50*(log2(0.50))=1.83

(b)根据上述的概率得:

字母

概率

码字

a1

0.15

000

a2

0.04

0010

a3

0.26

01

a4

0.05

0011

a5

0.50

1

   (c)L=0.15*3+0.04*4+0.26*2+0.05*4+0.5*1=1.83

        L-H=0

 

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       

0.1  

 

a1

0.1  

a2    

0.3    

 

a2

0.3    

a3       

0.25

 

a3

0.25

a4       

0.35

 

a4

0.35

二、根据集合的概率对集合进行排序(升序)

字母        

概率        

码字

集合

集合的概率

a1       

0.1  

 

a1

0.1  

a2    

0.3    

 

a3

0.25 

a3       

0.25

 

a2

0.3

a4       

0.35

 

a4

0.35

三、对最前面集合的字母的码字中插入前缀 ‘1’

字母        

概率        

码字

集合

集合的概率

a1       

0.1  

1

a1

0.1  

a2    

0.3    

 

a3

0.25 

a3       

0.25

 

a2

0.3

a4       

0.35

 

a4

0.35

四、对第二个集合中字母的码字中插入前缀‘0’

字母        

概率        

码字

集合

集合的概率

a1       

0.1  

1

a1

0.1  

a2    

0.3    

 

a3

0.25 

a3       

0.25

0

a2

0.3

a4       

0.35

 

a4

0.35

五、合并最前面的两个集合

字母        

概率        

码字

集合

集合的概率

a1       

0.1  

1

a1a3

0.35

a2    

0.3    

 

a2

0.3

a3       

0.25

0

a4

0.35

a4       

0.35

 

 

 

六、根据集合的概率对集合进行排序(升序)

字母        

概率        

码字

集合

集合的概率

a1       

0.1  

1

a2

0.3

a2    

0.3    

 

a1a3

0.35

a3       

0.25

0

a4

0.35

a4       

0.35

 

 

 

 

七、对最前面集合的字母的码字中插入前缀 ‘1’

 

字母        

概率        

码字

集合

集合的概率

a1       

0.1  

1

a2

0.3

a2    

0.3    

1

a1a3

0.35

a3       

0.25

0

a4

0.35

a4       

0.35

 

 

 

 

 

 

 

 

 

 

 

 

 

八、对第二个集合中字母的码字中插入前缀‘0’

字母        

概率        

码字

集合

集合的概率

a1       

0.1  

01

a2

0.3

a2    

0.3    

1

a1a3

0.35

a3       

0.25

00

a4

0.35

a4       

0.35

 

 

 

九、合并最前面的两个集合

字母        

概率        

码字

集合

集合的概率

a1       

0.1  

01

a1a2 a3

0.65

a2    

0.3    

1

a4

0.35

a3       

0.25

00

 

 

a4       

0.35

 

 

 

十、根据集合的概率对集合进行排序(升序)

字母        

概率        

码字

集合

集合的概率

a1       

0.1  

01

a4

0.35

a2    

0.3    

1

a1a2 a3

0.65

a3       

0.25

00

 

 

a4       

0.35

 

 

 

十一、对最前面集合的字母的码字中插入前缀 ‘1’

字母        

概率        

码字

集合

集合的概率

a1       

0.1  

01

a4

0.35

a2    

0.3    

1

a1a2 a3

0.65

a3       

0.25

00

 

 

a4       

0.35

1

 

 

十二、对第二个集合中字母的码字中插入前缀‘0’

字母        

概率        

码字

集合

集合的概率

a1       

0.1  

001

a4

0.35

a2    

0.3    

01

a1a2 a3

0.65

a3       

0.25

000

 

 

a4       

0.35

1

 

 

十三、合并最前面的两个集合

字母        

概率        

码字

集合

集合的概率

a1       

0.1  

001

a1a2a3a4

 

a2    

0.3    

01

 

 

a3       

0.25

000

 

 

a4       

0.35

1

 

 

  则平均码长l=0.1*3+0.3*2+0.25*3+0.35*1=2;

第二作业——肖祥英

原文:http://www.cnblogs.com/tiant/p/4794107.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!