书城计算机网络多媒体技术
13955600000008

第8章 多媒体数据压缩编码技术(1)

音频、视频和图像处理能力是多媒体系统的重要技术指标。数字音频、视频和图像的表示需要大量的存储空间,同时这些信息要求计算机实时或准实时地进行处理。多媒体系统处理的对象及功能决定了多媒体计算机必须具有高速信号处理能力、大容量内存、足够的传输频带宽度等功能。为了解决存储、处理和传输多媒体数据的问题,除了提高计算机本身的性能及通信信道的带宽外,更重要的是对多媒体数据进行有效的压缩,以便以最小的时间和空间来传输和储存多媒体数据。

本章主要讨论多媒体数据压缩编码的基本概念,常用音频、图像信号压缩编码及解压方法,以及静态、动态图像信号的处理技术。

3.1数据压缩编码的基本概念

3.1.1数据压缩的可能性及意义

1.数据压缩的可能性

音频信号和视频图像的数字化数据可以进行数据压缩编码是基于以下两种事实。

1)信息的冗余度

无论是话音信息还是图像信息都有较大的冗余度。按采样定理,采样频率fs与信号的最高频率fm应满足fs≥2fm,为使离散信号能完全复现原连续信号,一般选择fs>2fm,即都是过采样,说明采样的离散数据具有冗余度。

对于连续过程而言,离散化时都以信号的上限频率为依据,但实际上信号并不是总是或经常处在上限频率(fm)上,也就是话音信号并不始终是那么活跃,信号的能量主要集中在低频部分。以fm为依据选择采样频率,只是从“无损”信息的角度出发,若允许在一定范围内“有损”(失真),那么使fs≥2fm自然就有了冗余度。说得极端一点,若信号在一段时间内不变,那么在这一段时间内只需一个采样点就可以了。

2)信号的相关性

相关就是联系,或两个信号之间的相似性。定义同一个信号前后时刻的相关性就是自相关函数ρxx(≤1);定义两个信号间的相似程度就是两个信号的互相关函数ρxy(ρxy≤1)。

2.数据压缩的意义

在信息无损或损失在一定允许范围内进行数据压缩,显然由于数据的减少,自然减小了数据的存储容量,同时,有利于数据的传输,降低了对数据传输通道的要求。由于数据量减少,因此,若数据速率(信道带宽)一定,则可以减少传输时间;若传输时间一定,则可以降低数据速率。数据速率降低,就可以增加数据(码元)的宽度,传输信号的频带降低,自然就降低了对信道带宽的要求。

3.1.2信息的量度

1.信息的含义

消息:是由符号、文字、数字或语音组成的表达一定含义的一个序列,如一份电报和报纸上的一段文字。消息是信息的载体,是表达信息的工具。

信息:是消息的内涵,是消息中的不确定性内容。

2.信息的量度

1)信息量及熵

(1)信息量的定义

设信源x由属于集合Am={a1,a2,…,am}的m个可能的符号产生,若信源事件aj的概率为P(aj),则定义事件aj的信息量I(aj)I(aj)=-logP(aj)

作为事件aj所包含的信息量的量度,称为自信息。

单位:取2为底的对数,则单位为比特(bit);取e为底的对数,则单位为奈特。

从信息量的定义可以看出,信息是事件aj的不确定因素的度量。事件发生的概率越大,事件的信息量越小;反之,一个发生的可能性很小的事件,携带的信息量就很大。

例如:在32个数码中任选1个数码时,设每个数码选中的概率是相等的,则

P(aj)=132

那么,任一数码的信息量为

I(aj)=-lb132=lb25=5bit

(2)信源的熵

一个通信系统并非只传送1个符号,而是多个符号,这就需要定义整个信源符号的平均信息量的大小。通常把自信息的统计平均值--数学期望。

H(x)=-mj=1P(aj)lbP(aj)(31)。

即信源x中每个符号的平均信息量,称为信源x的熵。

当信源x中的每个符号是等概率的且是独立的时候,平均信息量最大,此时。

P(aj)=1m,j=1,2,…,m

代入式(31)得

H(x)=Hmax=lbm

例如:若信号x{a1,a2}的概率分别为P(a1)=0.9,P(a2)=0.1,则符号的平均信息量,即信源x的熵为。

H(x)=-(0.9×lb0.9+0.1×lb0.1)=0.467bit

若a1,a2的概率P(a1)=P(a2)=0.5,则信源x的平均信息量达到最大,即。

H(x)=Hmax(x)=lb2=1bit

所以二进制1位数据(0/1)的每1位的信息量为1比特。

2)冗余度

先看一个例子,设一幅图片有4个灰度级S={A,B,C,D},这4个灰度级所出现的概率分别为P(aj)={0.6,0.2,0.06,0.14},则。

H(x)=-(0.6×lb0.6+0.2×lb0.2+0.06×lb0.06+0.14×lb0.14)=1.547bit。

即其平均信息熵为1.547bit。这说明表示这4个灰度级所使用的最少平均位数为1.547bit。

平均信息熵是一种理论上的最佳编码的平均码长。平常使用的一般为自然码编码,表示每一事件的位数是相同的。如果对A、B、C、D这4个灰度级采用自然码进行编码,即每一个灰度级用两位二进制表示,则4个灰度级的平均码长为2,而平均信息熵是理论上的最佳编码的平均码长,为1.547位。显然,自然码编码和理论上的最佳编码存在一定的差距,这一差距常用冗余度r来表示:

r=原始图像平均码长原始图像平均信息熵-1=21.547-1≈0.29

冗余度表示原始图像编码中所包含冗余信息的多少,应越小越好。在本例中,灰度级的自然码编码长度为2bit,平均信息熵是理论上的最佳编码码长,为1.547bit,显然,在自然码编码中包含有冗余信息。如何找出一种编码方法,使其平均码长尽量接近信息熵,是图像编码所追求的目标。

另外,如果4个灰度级是等概率出现的,均为0.25,则信源的平均信息熵为

H(x)=-4j=1P(aj)lbP(aj)=2bit

即在等概率的情况下,自然码编码的冗余度为0。

3.1.3数据冗余及其类型

冗余是指信息存在的各种性质的多余度。数据冗余,就是数据量(D)与其表达的信息量(I)不相等的现象。

设冗余量为du,它们的关系即可表示为

I=D-dudu≥0如果du=0,表示数据不存在冗余,不需也不能对数据进行压缩。需要并能够对数据进行有效压缩的条件是du0。

多媒体数据在数字化后存在各种形式的数据冗余,常见的有以下几种类型。

1.空间冗余

规则物体和规则背景的表面物理特性都具有相关性,数字化后表现为数字冗余。例如:一幅图片的画面中有一个规则物体,其表面颜色均匀,各部分的亮度、饱和度相近,把该图片作数字化处理时,生成位图后,很大数量的相邻像素的数据是完全一样或十分接近的,完全一样的数据当然可以压缩,而十分接近的数据也可以压缩,因为恢复后人也分辨不出它与原图有什么区别,这种压缩就是对空间冗余的压缩。

2.时间冗余

序列图像(如电视图像和运动图像)和语音数据的前后有着很强的相关性,经常包含着冗余。在播出该序列图像时,时间发生了推移,但若干幅画面的同一部位没有变化,变化的只是其中的某些地方,这就形成了时间冗余。

3.统计冗余

空间冗余和时间冗余是把图像信号看做概率信号时所反映出的统计特性,因此,这两种冗余也称为统计冗余。

4.信息熵冗余

信息熵冗余也叫“编码冗余”。所谓信息熵,是指一团数据所携带的信息量,信息熵冗余则在一团数据的内部产生。信息量是指从N个相等的可能事件中选出一个事件所需要的信息度量和含量,即在N个事件中辨识特定的一个事件的过程中需要提问“是或否”的次数。将信源所有可能事件的信息量进行平均,即为信息的“熵(entropy)”,熵是平均信息量。信息熵可表示为

E=-k-1i=0P(xi)lbP(xi)

式中,E为信息熵,k为数据组中数据的种类或码元数,P(xi)为码元xi发生的概率。

一组数据的数据量显然等于各记录码的二进制位(bit)数(编码长度)与该码元出现的概率的乘积之和,即

D=k-1i=0P(xi)b(xi)

式中,D为数据量,k和P(xi)同上,b(xi)为分配给码元xi的比特数。

若要求不存在数据冗余,即冗余量du=D=E,则需有

b(xi)=-lbP(xi)

由于实际中很难预估出{P(x0),…,P(xk-1)},因此,为使处理上简单,一般把所有码元记录成相同的二进制位数b(x0)=b(x1)=…=P(xk-1)。这样所得的D必然大于E,即du=D-E0。这种因码元编码长度的不经济而引起的数据冗余称为熵冗余,又叫编码冗余。

例如,从64个数中选出某一个数,可先问“是否大于32?”消除半数的可能,这样只要6次就可选出某数。这是因为每提问一次都会得到1比特的信息量。因此,在64个数中选定某一数所需的信息量是lb64=6(bit)。

5.结构冗余

数字化图像中物体表面纹理等结构往往存在着数据冗余,这种冗余叫结构冗余。若一幅图像中有很强的结构特性,如布纹和草席图像等,其纹理很规范清晰,于是它们在结构上存在着极大的相似性,也就存在着较强的结构冗余。

6.知识冗余

由图像的记录方式与人对图像的知识差异而产生的冗余称知识冗余。人对许多图像的理解与某些基础知识有很大的相关性。许多规律性的结构人可以由先验知识和背景知识得到。而计算机存储图像时还得把一个个像素信息存入,这就形成了冗余。

7.视觉冗余

人类的视觉系统对于图像场的注意是非均匀和非线性的,并不是对图像中的任何变化都能感知,而在实际图像中存在大量的人类的视觉系统不能察觉的细节变化的数据。事实上,人类的视觉系统的一般分辨能力为106灰度级,而一般图像的量化采用的是108灰度级。这种从人类视觉系统的分辨能力上看,图像数据中存在的数据冗余,叫做视觉冗余。

8.其他冗余

除了前面所述的几种数据冗余以外,由于图像空间的非定常特性而产生的冗余,以及其他种类的冗余,均属于其他冗余之列。

3.1.4数据压缩编码方法分类

数据压缩方法很多,从不同的观点出发可以有不同的划分方法。

1.无损压缩与有损压缩

根据解码后的数据与原始数据是否一致,压缩后是否损失信息,可以把数据压缩编码划分为无损压缩和有损压缩两类。

有损压缩使信息源的熵减少,也就是在数据压缩过程中损失掉一部分信息量。

无损压缩是一种可逆处理,即压缩过程没有损失信息源的熵,压缩仅仅去掉了一些冗余的信息。

2.按压缩原理进行分类

根据压缩原理进行分类,可以把数据压缩编码分为预测编码、变换编码和信息熵编码等几类。

1)预测编码

预测编码是针对统计冗余进行压缩的,常运用“时间序列分析”的概念解决动态系统的输出问题。其基本原理是:根据离散信号之间存在着一定关联性的特点,利用前面的一个或多个信号对下一个信号进行预测,然后对实际值和预测值的差进行编码,由于差值比实际值小得多,从而达到压缩数据量的目的。预测编码的典型压缩方法有PCM、DPCM、ADPCM等。

2)变换编码

变换编码也是针对统计冗余进行压缩的。所谓变换编码,是指先对信号进行某种函数变换,从一种信号空间变换到另一种信号空间(如将图像光强矩阵的时域信号变换到频域的系数空间上)进行处理的方法。若在空间上具有强相关的信号,映射在频域上就是某些特定区域内能量集中的部分,或者是系数矩阵的分布具有某些规律,从而利用这些规律分配频域上的量化比特率,达到数据压缩的目的。常用的变换编码的方法有KL变换和余弦变换(DCT)等。

3)信息熵编码

信息熵编码的目的是减少符号序列中的冗余度,提高符号的平均信息量。信息熵编码是根据符号序列的统计特性,寻找某种方法把符号序列变换为最短的码字序列,使各码元承载的平均信息量最大,同时又能保证无失真地恢复原来的符号序列,即要保存信息的熵值。信息熵编码最常用的方法有哈夫曼(Huffman)编码、游程编码和LZW编码等。

3.1.5数据压缩编码方法的选择

数据压缩方法有许多种,可以从不同的侧面来比较这些数据压缩方法的优劣,例如,实现的复杂程度、所付出的代价的高低,以及压缩系统的体积、重量及误差等,但最重要的指标是指在一定误差或质量下的压缩比。常用的有如下两种定义。

①采样压缩比φd:

φd=压缩前输入的总采样数压缩后输出的总采样数

由该定义可见,φd一定是大于1的数,当然越大越好。由于我们所研究的信号都要数字化,为存储和传送这些数字化信号,通常还要增加一些信息,以便顺利地解压。因此,下面的比特压缩比φb更为有用。

②比特压缩比φb:

φb=压缩前输入的总比特数压缩后输出的总比特数

根据上式及前面的解释,φb通常要比φd小,而且φb更能反映实际情况。因此,当提到压缩比而又没有作特别说明时,通常指的就是比特压缩比φb。

在数据压缩系统中,人们很关心的一个问题就是利用已压缩的数据重建原始数据所带来的误差,这是衡量某种压缩方法好坏的又一重要标志。在考虑重建误差时,总是局限于这种误差是由压缩方法产生的,而认为其他部分都是理想的。只有这样,才能更好地对不同压缩方法的误差进行比较。常用的方法有以下几种。

①均方根误差,如果原始信息源数据为集合,用压缩后数据经解压重建的原始数据为集合,则两者的均方误差和均方根误差分别表示为。

②峰值误差:原始数据与重建数据间差值的最大绝对值。用下式表示:

③汉明距离:汉明距离的定义为

以上是衡量数据压缩性能的方法。很显然,这是对有损压缩而言的。原则上说,无损压缩是没有误差的。

另外,还必须强调,在信号的采集、压缩、存储(或传输)以及信号的解压重建、恢复原始信号过程中,压缩和解压只是其中一个中间处理环节,因此,某种信号质量的衡量最终会与压缩方法的误差有关。

3.2常用音频信号压缩编码及解压方法

本节先介绍一些常用于音频信号的压缩方法。为了使读者对压缩方法有一个大致的认识,现将常见的音频数据压缩方法罗列于图31中。其中有一些是可以用于视频信号压缩的。

音频信号的编码,大致可以分为波形编码和参数编码两种方法。

①波形编码的基本思想是在满足采样定理的前提下,采样量化,并使编码以后的数据量尽可能小,译码以后的输出信号尽可能逼近原来的输入音频信号的波形,如PCM、DPCM、DM、ADPCM等。

②参数编码(分析合成编码)主要是针对话音信号,抽取话音信号的特征参数,然后进行编码,译码时激励相应振荡器通过喇叭发声。