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

第三次作业

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

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

       a,对Sena、Sensin、Omaha图像进行编码

       解:对Sena、Sensin、Omaha图像进行编码的表如下:

             图像文件名               压缩前             压缩后          压缩比

              Sena                     64KB              56.1KB        1.14

              Sensin                   64KB              60.2KB        1.06

              Omaha                  64KB               57.0KB       1.12

 

  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)计算这个信源的熵

    解:H(A)=-∑i=1,2,3,4,5P(ai)*log2P(ai)

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

                      =1.817685

                      ≈1.81

  (b)求这个信源的霍夫曼码

    解:这个信源的二叉树如下:

       技术分享

 

       由上图的二叉树, 这个信源的霍夫曼吗如下:

           字母        概率        霍夫曼码

           a1             0.15            101

           a2             0.04            111

           a3             0.26            100

           a4             0.05            110

           a5             0.50            0

  (c)求b中代码的平均长度及其冗余度

    解:代码的平均长度为:l=∑P(ai)*Li=0.15*3+0.04*3+0.26*3+0.05*3+0.50*1=2

          冗余度为:e=1-H(A)/l=1-1.81/2=0.095

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

    答:因为在数据压缩领域中进行编码时,为了能够使用不固定长度的码表示单个字母,即使用最优前缀编码,

          编码必须满足前缀编码的要求,前缀编码的要求是较短的编码不能使较长编码的前缀,要构造满足此

          要求的编码,二叉树是最好的选择。所以压缩领域中的编码方法总和二叉树联系在一起。

 

第三次作业