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;
}
由调试结果所得,这些单词都是没有意义的。