zoukankan      html  css  js  c++  java
  • 第一次作业——肖祥英

    1-1:数据压缩的一个基本问题是“我们要压缩什么”,对此你是怎样理解的?
    答:以最少的数码来表示信源所发出的信号,减少容纳给定集合或数据采样集合发信号空间。物理空间、时间空间、电磁频段都可能成为数据压缩的对象。

    1-2:数据压缩的另一个基本问题是“为什么进行压缩”,对此你又是如何理解的?
    答:它主要目的是减少在存储时占用的空间。又因为存储占用大量的空间,以及大数据量使得数据传输量非常大,这对通信道及网络都造成很大压力。所以要进行数据压缩。
    1-6:数据压缩技术是如何进行分类的?
    答:(1)按照压缩方法是否产生失真分类 —— 根据解码后数据与原始数据是否完全一致进行分类,压缩方法可被分为有失真编码和无失真编码两大类。
    (2)按照压缩方法的原理分类 —— 根据编码原理进行分类,大致有编码、变换编码、统计编码、分析-合成编码、混合编码和其他一些编码方法。

    参考书  1-4

     1.4 1、用你的计算机上的压缩工具来压缩不同文件。研究原文件的大小和类型对于压缩文件与原文件大小之比的影响。

    答:文件类型不同,压缩前的文件大小与压缩后的文件大小只比也就不同,有的文件压缩后变化不是甚至不会变化,有的文件压缩后文件会变小很多。这也许就是不同的文件类型有的能够有损压缩,而有的却只能无损压缩。相应压缩比则根据文件类型的不同有所不同,比如文档类的文件压缩比很大(一个字或者一个词在同一个文件会反复出现),而影音文件的压缩比则比较小(每一个像素点的色素不同是常有的,不同颜色和颜色深浅、对比度的不同、亮度不同、音调音色不同等的对应二进制代码是不同的)。所以压缩比确实是不能一概而论的。

    
    

     1.4 2、冗余度它表征源信息率的多于程度,是描述信源客观统计特性的一个物理量。也可以说是从多余的一个量,它不影响数据的完整,也正是因为这一个多余量的存在,才能对其信源进行压缩,压缩后不会影响传递信息。信源=信息+冗余度。

    P30

    3、给定符号集A={a1,a2, a3,a4},求一下条件下的一阶熵:

    aPa1)= Pa2)=Pa3)= Pa4)= 1/4

    bPa1)=1/2   Pa2)=1/4   Pa3)= Pa4)=1/8

    cPa1)=0.505  Pa2)=1/4   Pa3)=1/8   Pa4)=0.12

    答:(aH=-(4*1/4*(log21/4))=2

       (bH=-1/2*(log21/2))-1/4*(log21/4))-2*1/8*(log21/8))=1.75

       (cH=-0.505*log20.505))-1/4*(log21/4))-1/8 *(log21/8))-0.12*(log20.12))=1.26

    5、考虑一下序列:

         ATGCTTAACGTGCTTAACCTGAAGCTTCCGCTGAAGAACCTG

         CTGAACCCGCTTAAGCTGAACCTTCTGAAGCTTAACCTGCTT

    (a) 根据此序列估计各概率值,并计算着一序列的一阶、二阶、三阶和四阶熵。

    (b) 根据这些熵,能否推断此序列具有什么样的结构?

     

    答:根据此序列得知PA=21/84=0.25  PT=23/84=0.27  

                       PG=16/84=0.19  PC=24/84=0.28 

    H=-log20.25))*0.25+-log20.27))*0.27+-log20.19))*0.19+-log20.28))*0.28=7.64

     

     

     

    7.做一个实验,看看一个模型能够多么准确地描述一个信源。

    a)编写一段程序,从包括26个字母的符号集{a,b,……,z}中随机选择字母,组成100个四字母单词,这些单词中有多少是有意义的?

    答:

    #include <stdio.h> 

    #include<stdlib.h> 

    #include <windows.h>

    int main()

    {

    int i,n;

    for(i=0;i<100;i++)

     {

     for(n=0;n<100;n++)

      {putchar(rand()%2?65+rand()%26:97+rand()%26);}

    Sleep(500);

    putchar(' ');

    return 0;

    }

    则大部分单词是乱序,且无意义。

    P66

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

    a)对SenaSensinOmaha图像进行编码。

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

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

    文件名

    压缩前

    压缩后

    压缩率

    Sena

    64

    57

    89%

    Sensin

    64

    61

    95%

    Omaha

    64

    58

    90%

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

    4.一个信源从符号集A={a1,a2, a3, a4, a5}中选择字母,概率为Pa1)=0.15Pa2)=0.04Pa3)=0.26Pa4)=0.05Pa5)=0.50.

    a)计算这个信源的熵。

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

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

    答:(aH=-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

       (cL=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,},其概率为Pa1)=0.1Pa2)=0.3Pa3)=0.25Pa4)=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

     
  • 相关阅读:
    新博客
    【Gym-100712 #H】Bridges
    【CodeForces817F】MEX Queries
    【POJ1734】Sightseeing trip
    【Aizu2968】Non-trivial Common Divisor
    【Gym-101473 #I】Patches
    【POJ2228】Naptime
    【CodeForces219D】Choosing Capital for Treeland
    【URAL1018】Binary Apple Tree
    深入探索C++对象模型(五)
  • 原文地址:https://www.cnblogs.com/tiant/p/4762884.html
Copyright © 2011-2022 走看看