• 第一次作业


    1-1

          对于“我们要压缩什么”,我的理解是:压缩那些比较大的文件  冗余度比较高的文件

    1-2  

          对于问题“为什么压缩”,对此我的理解是:对其进行压缩后可以减少冗余度,在发送大文件的时候,先通过压缩,可以缩短发送时间。如果不压缩,很多应用或者服务不可用(如视频),

    还有对文字、图片、声音、动画进行压缩等等。数据压缩通常有时间域、空间域等方面,所以也可以说着些方面进行压缩。

    1-6

    数据压缩可分为有损压缩(不可逆压缩)和无损压缩(可逆压缩)。

    所谓可逆压缩:是指能够准确无误地重现原始数字波形数据的压缩方式。从压缩后的数据能够完全恢复出原来的数据,信息没有任何丢失,称为无损压缩;

    不可逆压缩:无法完全恢复出原数据,信息有一定的丢失,称为有损压缩。

    其中可逆压缩和不可逆压缩又可以重新细分,可逆压缩可细分为:统计编码和其他编码;不可逆压缩可细分为特征抽取和量化。

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

    1.4 项目与习题

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

          通过多次实验发现,对文件进行压缩后,压缩后的文件大小明显比压缩前小, 对于音频,视频等的压缩程度会比文本文档的压缩程度要大,对于传输更能节约空间与时间。

           但这些压缩对于文件都是无损压缩,通过解压可还原文件。

      2. 从一本通俗杂志中摘录几段文字,并删除所有不会影响理解的文字,实现压缩。例如,在"this is the dog that belong to my friend”  中,删除 is 、the、that和to之后,仍然能传递相同的意思。用被删除的单词数与原文本的总单词数之比来衡量文本中的冗余度。用一本技术期刊中的文字来重复这一实验。对于摘自不同来源的文字,我们能否就其冗余度做出定量论述?

               我的理解:我们不能就其冗余度做出定量论述。冗余度它表征源信息率的多于程度,是描述信源客观统计特性的一个物理量。对于不同的文字段,某些文字的重复度是不一样的, 信源=信息+冗余度  ,也就是说删除多余的一个量,它不会影响整个数据的完整性,冗余度越大,压缩潜力也就越大,压缩后不会影响信息的传递。  

       

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

     3, 5, 7(a)

     我的回答:

    3--(a)  H=Σ P(Ai) logb1/P(Ai)=4*1/4*log24=2

        (b)   H=Σ P(Ai) logb1/P(Ai)=1/2*log22+1/4*log24+2*1/8*log28=1.75

        (c)    H=Σ P(Ai) logb1/P(Ai)=0.505*log21/0.505+1/4*log24+1/8*log28+0.12*log21/0.12

                    =101/200/log2200/101+1/2+3/8+0.12*log225/3      

    5.  由题可得: PA=21/84=1/4      PC=24/84=2/7        PT=23/84            PG=16/84=4/21

                       H=Σ P(Ai) logb1/P(Ai)=1/4* log24+2/7* log27/2+23/84* log284/23+4/21* log221/4

                         =2

                                  

     

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

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

    答案如下:

               

    #include<stdio.h>
    #include <stdlib.h> 
    #include<time.h>
    void main()
    {
      char a[200][200];
      int R;
      srand((int)time(NULL));
      for(int i=1;i<=100;i++)
      {
        for(int j=1;j<=4;j++)
          {
        
            R=rand()%26;
            a[i][j]=R+'a';
          }
      }
      
        for( i=1;i<=100;i++)
        {
          for(int j=1;j<=4;j++)
          {
            printf("%c",a[i][j]);
          }
         printf("	");
        } 
    }
    

      

    这些单词中只有三个单词有意义
                                                                                                                                                                                                                     
     

  • 相关阅读:
    oracle执行.sql文件
    rematch的基本用法
    dva的基本用法
    redux-saga基本用法
    react-redux的基本用法
    redux的基本概念
    mobx基本概念
    centos 编译安装Apache 2.4
    javascript动态添加一组input
    php配置文件语法
  • 原文地址:https://www.cnblogs.com/chenxiaoli/p/4759959.html
Copyright © 2020-2023  润新知