栾 阳
[摘要]现今的电子信息技术领域正发生着一场具有深远影响的数字化革命。不仅通信、广播、电视、音响、录像、摄影和仪器、仪表等都面临着由模拟技术向数字技术的转变,数字化信息尤其是数字视频、音频信号的数据量是极其庞大的,给存储、传输以及有效、快速获取信息都带来了严重的障碍·如果不对其进行有效的压缩就难以得到实际应用。因此,数据压缩技术已成为当今数字通信、存储及多媒体系统的一项关键技术a因此,将概括性地介绍数据压缩的概念、压缩的发展、压缩的原理、常用的数据压缩方法以及压缩标准和数据压缩的应用等几个部分。
[关键词]数据压缩冗余数字化多媒体信息技术
中图分类号:TP3文献标识码:A文章编号:t671—7597(2009)1020094--02
现今的电子信息技术领域正发生着一场具有深远影响的数字化革命·不仅通信、广播、电视、音响、录像、摄影和仪器、仪表等都面临着由模拟技术向数字技术的转变,而且数字化视频、音频技术的发展也正引起计算机和网络技术的根本性变革,并为其应用开拓了新的空间。然而,由于数字化的多媒体信息尤其是数字视、音频信号的数据量特别庞大,如果不对其进行有效的压缩就难以得到实际的应用。因此,数据压缩技术已成为当今通信、广播、存储和多媒体娱乐领域一项共同涉及到的关键性技术。
一、数据压缩技术概述
(一)压缩技术的概念
所谓数据压缩技术通俗地说,就是用最少的数码来表示信号。其作用是:能较快地传输各种信号,如传真、图象等,用现有的通信干线并行开通更多的多媒体业务,如各种增值业务,压缩数据的存储容量。CD2ROM、VCD和DVD等,降低发信机功率,这对移动通信系统尤为重要。由此看来,通信时间、传输带宽、存储空间甚至发射能量,都可能与数据压缩的效果直接相关。
关于数据压缩的理论,比较系统的研究始于40年代初形成的信息论,早期信息论研究的主要内容之一就是已知消息中各符号出现的频率,设法构造一种编码,使消息所占的空间尽可能少。尽管当时数字计算机尚未出现,但所进行的研究与当今数字计算机所使用的压缩技术有着密切的联系。许多算法的出现,如Huffman编码等至今仍有很大的应用价值。
(二)数据压缩技术的发展
数据压缩的研究过程一直有两个发展方向:一个是许多数学家所致力于的建设信源和数据压缩的数学模型。并从中找出衡量数据压缩质量的技术指标及撮优压缩性能指标;另一个则是众多的工程技术人员所进行的工作,他们的研究重点为建立一个能实现数据压缩功能的系统,以服务于工程应用,或者对这些数据压缩系统进行分析或模拟,以确定它们的性能指标。但不论是理论研究还是工程实践,1977年以前,数据压缩作为信息论研究中的一项内容,主要是有关信息熵,数据压缩比和各种编码方法的研究,即按某种方法对源数据流进行编码,使得经过编码的数据流比原数据流占用较少的空间。其中基于符号频率统计的Huffman具有良好的压缩性能,一直占据重要的地位,不断有基于Huffman的改进算法提出。
随着计算机技术的飞速发展,数据压缩作为解决海量信息存储和传输的支撑技术受到人们的极大关注。研究把无失真压缩的研究推向了一个全新的阶段。目前,计算机文件常用的压缩正具如WinZip、ARJ等都是基于这种方法的。随着信号处理研究的不断发展,数字图像信号、语音信号等都被大量的引入到有关的领域中。由于图像信息占用较多的存储空间,而图像通信又是目前非话业务的主流,因此数据压缩技术在图像通信中得到了最广泛的应用。
在图像编码中,最早研究的是预测编码。曾作为经典理论而登载于各种专著,并得到广泛的应用。近年来,随着神经网络理论的兴起,有入采用BP网进行非线性预测的尝试,并取得了较好的效果。众多研究者相继提出了在多个分辨率下表示图像的方案,主要的方法有:子代编码,金字塔编码,小波变换编码等。基于小波变换的方法具有较高的压缩性能,已成为JPEG2000的核心算法。
(三)数据压缩技术的原理
关于压缩技术的原理:首先,数据中间常存在一些多余成分即冗余度。如在一份计算机文件中,某些符号要比其它符号频率高得多地重复出现这些冗余部分便可在数据编码中除去或减少,冗余度压缩是一个可逆过程,因此叫做无失真压缩或称保持型编码。
其次,数据中间尤其是相邻的数据之间常存在着相关性,如图片中常常有色彩均匀的背影;电视信号的相邻两帧之间可能只有少量的变化影物是不同的;声音信号有时具有一定的规律性和周期性等等。因此,有可能利用某些变换来尽可能地去掉这些相关性。但这种变换有时会带来不可恢复的损失和误差,因此叫做不可逆压缩或称有失真编码、熵压缩。
就数据压缩技术而言,最基本的要求是要尽量降低数字化的码率,同时仍保持一定的信号质量。不难想象,数据压缩的方法应该是很多的,但本质上不外乎上述的完全可逆的冗余度压缩和实际上不可逆的熵压缩两类。冗余度压缩常用于磁盘文件、数据通信和气象卫星云图等不允许在压缩过程中有丝毫损失的场合中。但它的压缩比通常只有几倍,远远不能满足数字视听应用的要求。在实际的数字视听设备中。差不多都采用压缩比更高、但实际有损的熵压缩技术。只要作为最终用户的人觉察不出或能够容忍这些失真,就允许对数字音像信号进一步压缩以换取更高的编码效率。熵压缩主要有特征抽取和量化两种方法,指纹的模式识别是前种方法应用的典型例子,而后种方法则是一种更通用的熵压缩技术。
二、数据压缩的分类及其压缩算法
(一)数据压缩技术的分类
数据压缩的研究已有几十年的历史,其间,人们提出了各种各样的压缩算法。在分类上,也存在几种不同的方法,按编码失真程度或者说按压缩过程的可逆性将数据压缩分为两种类型:无失真压缩(LosslessCompression)与有失真压缩(Lossy Compression):有人按编码基建模的不同将数据压缩分成模型基编码和波形基编码;又有人将它分为第一代压缩编码和第二代压缩编码;还可按压缩技术所使用的方法进行分类可分为预测编(Predictive Coding)、变换编码(Transform Coding)和统计编码(Statistical Coding)几大类。
(二)无失真压缩和有失真压缩算法
目前,较为认可的是第一种分类方法。无失真压缩和有失真压缩。无失真压缩;也可称之为冗余度压缩(Redundanc Compression)即无损压缩。原始数据可由压缩数据完全恢复出来。这种压缩方法的基本思想是除去或尽量除去数据中重复和冗余部分,而不丢失其中的任何信息,从而确保被压缩了的数据还原后与压缩前完全一致。这种压缩方法主要应用于文本、程序文件等不允许出现任何数据失真的场台。
1、基于字典编码技术的LZW算法
如果看文章时碰到了“NBA”的字样,去查查《英文缩略语词典》就知道这是“美国国家篮球协会”的缩写,三个单词被压缩成了三个字母,同样地,“缩略语词典”这一思想可以用来设计压缩算法。假如把出现过多次的子串叫做高频子串,并且把出现频高的子申编成一张表,称为高频字典,每个子串都有一个作为序号,那么每当碰到一个高频子串时,就用这个序号代替它。用一个字节代替一个子串当然,在压缩数据中得要把这个去,以供还原算法查字典用。字典可以是静态的,把原始数据扫描一遍就能得到也可以是动态的,就是先让字典空着,一边扫描,一边加进新的高频子串,字典满了就取消一部分“老”子串这样压缩率稍有下降,但能节约一次扫描的时间,从而极大地提高了处理度。这种压缩算法最早是由Lempel和Ziv两位专家于年提出的,当时叫做算法,后来经过贝尔实验室的改进,特别是welch在1984年的改进之后,成为现在的lzw算法。
2、基于哈夫曼编码原理的压缩算法
前面的LZW算法,是试图找出原始数据中各种形式的重复,然后以一种有效的方式重新编码存储。它们都是在不改变原始数据的字符编码方式的基础上的算法,也就是说,压缩前后都是用8个比特来表示一个字符。“ABCAABA”这个字申有7个字节,就是56个比特,要想压缩它,LZW不大合适,因其中既没有单个字节的多次重复,也没有子串的多次重复。这种思想是由Huffaman博士1952在年提出来的,我们把用这种编码原理的压缩算法叫做哈夫曼压缩。
上述例子的哈夫曼压缩过程简述如下:
第一步,统计原始数据中各个字符的出现次数A=4,B=2,c=1。
第二步,建立哈夫曼树,每个非叶结点的左右子树的权都尽可能地接近结果。
第三步,编码。从树根开始,向左转记为0,向右记为1,得到,A=0,B=10,c=11。这样编码出来的比特流能被唯一地识别出来。
第四步,把哈夫曼树存入结果数据。
第五步,重新编码原始数据到结果数据。因为上面的例子中只出现了个字符,字符集很小,所以能用1-2比特来编码,达到了很高的压缩率。哈夫曼算法的实质是针对统计结果对字符本身重新编码,而不是对重复字符或重复子串编码。一边压缩数据,一边动态地调整哈夫曼树,提高了速度。改进的哈夫曼算法又被称为自适应哈夫曼(Adaptive Huffman)或动态哈夫曼算法(Dynamic Huffman),是一种常用的算法。
3、静态图片有损压缩算法YVEG/M—JPEG
JPEG压缩算法的基本原理是把图片分为许多单元,每个单元都是一个正方形的区域,然后进行离散余弦变换(DCT—Discrete Cosine Transform),得到图形信号。因为人眼对图形信号的高频端不太敏感,所以去掉图形信号中的一些高频分量不会造成图片观察质量的明显下降。这里说的高频分量不是指彩色光谱中的蓝紫色光,而是指图形信号中表示图像边缘细节的部分。为了保证压缩质量,通常采用的压缩比为,24:1。
JPEG算法主要针对静态图片,但人们利用压缩原理,把一系列静态图片压缩存放起来,然后连续地解压重放就得到了动态图像。这种压缩方法被称为M—YeEG,即“活动的静态图像压缩”。它的本质仍然是JPEG。现在,M—JPEG基本上已被MPEG淘汰。一般JPEG压缩的实现方法以纯软件的形式为多,M-JPEG则以硬件实现形式居多。
4、动态图像有损压缩算法MPEG
MPEG是由“动态图像专家小组”制定的标准算法,其设计目标是在微机上得到相当于VHS录像质量的音频视频效果。该算法包含三项技术动态图像压缩技术,声音压缩技术和图像声音同步技术,其中动态图像压缩是其关键内容。
和电影一样,多媒体电影也是按照“帧”为单位组织的连续图像和声音信号。MPEG把帧按照如下三种情况分别处理:(1)当前帧:用来作为其他帧参考用的关键帧,一般使用12:1的高质量压缩,每秒钟只有两个当前帧。(2)预测帧:是使用当前帧的信息,根据其中实体的运动趋势向前预测得到的帧。(3)双向帧:为了得到满意的图像效果,仅有当前帧和预测帧是不够的,还需要在它们中间插入双向帧以使效果更加平滑。双向帧是利用前两者的信息,进行向前和向后两个方向的预测得到的。通过综合使用以上几种预测技术,MPEG算法的整体压缩比可以达到100:1的水平。
三、数据压缩技术的应用
数据压缩技术,广泛应用于工业、农业、军事、建筑、机械电子、影视新闻、等各个领域,成为人类生活中不可缺少的重要组成部分。
现在几乎每一个计算机用户都在使用数据压缩功能。拿最简单的讲,我们使用最广泛的文字处理软件如Word、WPS都提供了对保存文件的压缩功能,以使编辑生成的文件容量更小。目前最常用的图形(如JPEG)、音频(如MP3)、视频(如VCD/DVD)文件都使用了压缩技术,以使在有限的空间中存放更多的文件。不过这些压缩操作都是由相应的程序自动完成的,用户感觉不到。另外,我们通过软盘交换文件、通过因特网下载文件、通过邮件传送文件、使用备份程序等都可能要用到和接触到数据压缩,它已经融入到电脑的方方面面。
在我们日常生活中,也经常遇到的数据压缩技术,比如很多卫星电视就是通过数据压缩技术来传输的(先将电视信号转化为数字编码,再进行数据压缩,然后通过卫星传送到各地的有线电视台,有线电视台再还原为电视信号传送到我们千家万户)。另外,VCD、SVCD、DVD、IP电话、长途电话、传送股市行情数据等都要用到数据压缩技术。
四、总结
随着人类进入信息时代,人类将更多的依靠电脑,从Interet中获取信息。而大部分信息却都具有数据的海量性。在这种情况下,信息的传输与存储就成为首要问题。数据压缩就成为解决这一瓶颈问题的重要方法
采用数据压缩技术,对数据进行压缩,是实现实时、快速、有效地处理、传输和存储数据的首要问题和根本方法,压缩的出发点是利用各种算法将数据冗余压缩到最小,以保证尽可能少的有用信息,并且尽可能地减少失真,提高使用效率和质量;为了使压缩后的数据能够互换,必须规定通用的标准格式,因此国际上相关的组织和机构,制定了相应的国际上通用的数据压缩标准。目前,虽然数据压缩技术已很成熟,并得到了广泛的应用,但是人们仍在继续研究,以追求更好的压缩效果使其更好的为人类服务。