zoukankan      html  css  js  c++  java
  • 张川的第二次作业

    P66.  

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

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

    答:

    文件名 压缩前 压缩后 压缩比
    SENA 64.0 KB (65,536 字节) 56.1 KB (57,503 字节) 87.656%
    OMAHA 64.0 KB (65,536 字节) 57.0 KB (58,374 字节) 89.063%
    SINAN 64.0 KB (65,536 字节) 60.2 KB (61,649 字节) 94.063%

     从这张表可以看出,虽然相同的大小的文件,但是压缩之后文件的大小是不同的。所以我们可以知道,不同的文件所包含的数据不同,数据的压缩比不同,并且有些数据不能压缩。

    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)中代码的平均长度及其冗余度。

     H=-( P(a1)*log2* P(a1)+    P(a2)*log2* P(a2)+ P(a3)*log2* P(a3P(a4)*log2* P(a4)+  P(a5)*log2* P(a5))

         =-(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.82 (bits)

    (b)

    a1 a2
    a3
    a4
    a5
    001 0000 01 0001 1

    (c)

    l=0.15*3+0.04*4+0.26*2+0.05*4+0.50*1

     =0.45+0.16+0.52+0.20+0.50

     =1.83(bits)

    冗余度=l-H=1.83-1.82=0.01(bits)

    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):

    步骤1.将信源信号按出现概率减小的顺序排列。

    步骤2.将两个最小的概率组合相加,并继续这一步骤,始终将较高的概率分支放在上部,直到概率达到1为止。

    步骤3.对每对组合中的上边一个指定为1,下边一个指定为0(或相反:对上边一个指定为0,下边一个指定为1);

    步骤4.画出由概率1处到每个信源符号概率的路径,顺序记下沿路径的1和0,所得即为该符号的霍夫曼码字。

    (b)

    第一种hufanman树:

    字母 码字
    a1 010
    a2 00
    a3 011
    a4 1

    平均码长为:l1=3*0.1+2*0.3+3*0.25+1*0.35=2bits/symbol

    最小方差:σ2=0.1*(3-2)2+0.3*(2-2)2+0.25*(3-2)2+0.35*(1-2)2=0.7

    第二种hufanman树:

    字母 码字
    a1 00
    a2 10
    a3 01
    a4 11

    平均码长为:l2=0.1*2+0.3*2+0.25*2+0.35*2=22bits/symbol

    最小方差:σ2=0.1*(2-2)2+0.3*(2-2)2+0.25*(2-2)2+0.35*(2-2)2=0

    在这两种编码中,他们所求得的平均码长都相同,但是方差最小方差不一样。我们以最小方差为最佳,这样在这个编码中,第二种编码更佳。

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

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

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

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

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

    答:(a)

    文件名 一阶熵
    EARTH.IMG 4.770801
    OMAHA.IMG 6.942426
    SENA.IMG 6.834299
    SENSIN.IMG 7.317944
    BERK.RAW 7.151537
    GABE.RAW 7.116338

    (b)

    文件名 一阶熵 二阶熵
    EARTH.IMG 4.770801 2.568358
    OMAHA.IMG 6.942426 4.488626
    SENA.IMG 6.834299 3.625204
    SENSIN.IMG 7.317944 4.301673

    通过这些图像的一阶熵、二阶熵表的对比,可以看出,二阶熵都比一阶熵小。

    (c)

    文件名 一阶熵 二阶熵 差分熵
    EARTH.IMG 4.770801 2.568358 3.962697 
    OMAHA.IMG 6.942426 4.488626 6.286834
    SENA.IMG 6.834299 3.625204 3.856989
    SENSIN.IMG 7.317944 4.301673 4.541547 

      从表中的数据之间的对比,可以看出二阶熵比一阶熵小,差分熵则在二者之间。

  • 相关阅读:
    流 例题

    容器集合整理
    容器集合
    容器 集合知识点
    面向对象回顾
    面向对象例题
    Java常用的8大排序算法
    Java中两个动态代理
    为什么synchronized无法禁止指令重排,却能保证有序性
  • 原文地址:https://www.cnblogs.com/zhangchuan24/p/4794106.html
Copyright © 2011-2022 走看看