随笔

1-1数据压缩的一个基本问题是“我们要压缩什么”,对此你是怎样理解的?

答:

数据压缩,就是以最少的数码表示信源所发的信号,减少容纳给定消息集合或数据采样集合的信号空间。因而我们要压缩的是物理空间,时间区间和电磁频段等;只要采用某种方法来减少某一种信号空间,就能压缩数据。

1-2 数据压缩的另一个基本问题是“为什么要进行压缩”,对此你又是怎样理解的?

答:

在有限的网络带宽,载体容量的前提下,直接使用未压缩的多媒体数据显得有点力不从心;因为多媒体技术所处理的对象包括图像、视频和声音等多种媒体。它们的数据量非常大。如果不进行数据压缩的话传输和存储都难以实用化。而经过数据压缩可以将一些占用内存比较大多媒体数据,压缩成可以缩小的文件内存,这样可以方便传递。

1-6数据压缩技术是如何分类的?

答:

数据压缩,通俗地说,就是用最少的数码来表示信号。  其作用是:能较快地传输各种信号,大致可分为以下两类:

1.冗余度压缩(1)统计编码(2)其他编码

2.熵压缩(1)特征提取(2)量化

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

答:对于文件包来说压缩后大小明显变小,易于传输和储存,对于图像压缩的比例越小越清晰,压缩的比例越大越模糊。

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

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

 

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

(a)P(a1)=P(a2)=P(a3)=P(a4)=1/4

(b)P(a1)=1/2 , P(a2)=1/4 , P(a3)=P(a4)=1/8 

(c)P(a1)=0.505 ,  P(a2)=1/4 , P(a3)=1/4 , P(a4)=0.12 

答:(a)一阶熵为:

             H(s)=  -1/4*4*log21/4

             H(s) =-log22-2

             H(s)=2(bit)

  (b)一阶熵为:

             H(s)= -1/2log21/2-1/4*log21/4-2*1/8*log21/8

             H(s)=1/2+1/2+3/4

             H(s)=1.75(bit)

  (c)一阶熵为:

              H(s)=-0.505*log20.505-1/4*log21/4-1/4*log21/4-0.12*log20.12

              H(s) =-0.505*log20.505+1/2+1/2-0.12*log20.12

              H(s)= 0.5+1-0.12*log20.12

              H(s)=1.8672(bit)

5、考虑以下序列:

                ATGCTTAACGTGCTTAACCTGAAGCTTCCGCTGAAGAACCTG

                CTGAACCCGCTTAAGCTTAAGCTGAACCTTCTGAACCTGCTT

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

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

解:(a)各字母的概率值如下:

       P(A)=21/84=1/4;P(T)=23/84;P(G)=16/84=4/21;P(C)=24/84=2/7.

则这一序列的一阶熵为:

 H(s)=-1/4*log2(1/4)-23/84*log2(23/84)-4/21*log2(4/21)-2/7*log2(2/7)=

 H(s)=1.983(bit)

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

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

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

解:

#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>


int _tmain(int argc, _TCHAR* argv[])
{
     int i,j;
     for(i=1;i<100;i++)
    {
        for(j=0;j<4;j++)
       {
           putchar(rand()%1?65+rand()%26:60+rand()%26);
       }
       putchar(' ');
     }
    return 0;
}

由调试结果所得,这些单词都是没有意义的。

原文地址:https://www.cnblogs.com/shihuiyun/p/4765989.html