由于多媒体技术的发展,图像压缩技术成为图像处理中研究的热点。编码压缩技术的发展,使大容量图像信息的存储与传输得以实现,并且解决了多媒体等新技术在实际应用中遇到的各种困难。
论文先介绍了当前流行的图像压缩技术,重点介绍块截断编码技术,先从理论上介绍块截断编码原理,块截断编码是一种有效、快速的数字图像压缩技术,作为一种经典的图像压缩编码,块截断编码技术的实时性很强。论文介绍了两种块截断编码算法,一种是标准的块截断编码算法,另外一种是改进的块截断算法即绝对矩块截断算法。在图像压缩性能评价中,常用的准则有客观保真度与主观保真度。其中客观评价主要采用峰值信噪比(PSNR)和均方误差(MSE)这两种方法,主观评价是指人对图像质量的主观感觉。论文选取三幅图像,分别用这两种算法对这三种图像进行压缩,观察压缩后图像的质量及每幅图像压缩时的峰值信噪比(PSNR)和均方误差(MSE)来评价这两种方法。总结这两种方法各自的特点。
实验证明,标准的块截断图像编码算法快速容易实现,而且它对信道误码不敏感,实时性比较强,图像质量比较好;绝对矩块截断编码不仅具备了以上的优点,而且运算处理更加迅速,并且较好的保留了图像的边缘,获得了更高的图像质量。
二十世纪末,人类社会开始进入到数字化时代,数字图像技术作为数字技术的重要组成部分,将人们带入了崭新的多媒体世界。随着科学的发展和社会的进步,人们对图像信息的需求也越来越大。在多媒体计算机系统、电子出版、视频会议、数字化图书馆等许多领域,数字图像都有着广泛的应用。然而,大量的图像数据量使得存储成本越来越高,不能满足现今网络环境下多媒体通信的需求。因此,图像编码应运而生并迅速发展起来。
图像编码,即图像压缩,就是在保证一定重构质量的前提下,通过去除图像中的各种冗余,以尽量少的比特数来表征图像信息。传统的图像编码是以香农信息论为出发点,用统计概率模型来描述信源[1]。编码实体是像素或像素块,以消除数据相关冗余为目的,由此产生的JPEG、MPEG-1、MPEG-2、H.261及H.263等编码国际标准己经获得了很大的成功。新一代基于内容的图像编码方法,充分考虑了信息接收者的主观特性、图像信息的具体含义和重要程度,以消除图像内容为目的,是目前一个较为活跃的研究领域。
一幅图像的数字表示需要很大的比特数。图像压缩的目的在于降低这个比特数到最小程度并且重现原始图像的忠实样本。图像压缩的早期研究是以讯息理论作为指导思想的,并得出许多种压缩方法。普通压缩方法的压缩比为10:1,目前,人视觉的脑机理的研究开拓了图像压缩技术的新纪元,可使压缩比达到100:1。
常用的压缩方法包括冗余度压缩法、熵压缩法、变换编码、块截断编码等,其中块截断编码虽然压缩比不高(一般为4:1左右),但是具有简单、快速、易实现,对信道误码不敏感,还能够获得较高的图像质量,所以长期以来一直受到人们的重视。特别是在计算机技术很发达的今天,它的实时实现十分容易,块截断算法,可以用纯软件方式完成对活动图像压缩,而MPEG等算法不能做到这一点。从理论上讲,块截断算法能够保持信号样本的一阶矩和二阶矩使译码图像在一定程度上保持了原图像的局部统计特性。因此,本文研究块截断编码图像压缩技术及其实现。
从图像压缩编码的发展过程来说,可以分成三个阶段:第一代,着重于图像信息冗余度的压缩方法。第二代,着重于图像视觉冗余信息的压缩方法。第三代基于模型的图像压缩方法。
数据压缩的理论研究开始于Shannon的信息论。1948年Shannon的经典论文《通信的数学原理》中首次提到了信息率——失真函数概念,1959年又进一步确立了失真率理论,从而奠定了信源编码的理论基础[2]。从此理论出发不难得到数据压缩的两种基本途径:其一,设法改变信源的概率分布,使其尽可能地非均匀,再用最佳编码方法使平均码长逼近信源熵;其二,联合信源的冗余度也寓于信源间的相关性之中。去除它们之间的相关性,使之成为或差不多成为不相关信源。
经典方法中的无损压缩方法,如Huffman编码、算术编码、游程编码等,基于上述的基本途径之一,其压缩效率都以其熵为上界,故其压缩比饱和于l0:1左右。有损压缩方法,如预测编码、变换域编码、混合编码、矢量量化、块截断编码等基于基本途径之二,同时也大都受信息熵的约束。
虽然经典方法依据了图像本身固有的统计特性和利用人视觉系统的某些特性进行压缩编码,但是利用得还不够充分,且伴随着感知生理——心理学的发展,人们越来越清楚地认识到:人的视觉感知特点与统计意义上的信息分布并不一致,即统计上需要更多的信息量才能表征特征,对视觉感知可能并不重要。从感知角度来讲,无需详细表征这部分特征。这时,压缩技术的研究就突破了传统Shannon理论的框架,注重对感知特性的利用,即利用所谓的“感知熵”理论,使得压缩效率得以极大提高,因此称其为现代压缩编码方法。
伴随着数学理论,如小波变换、分形几何理论、数学形态学等以及相关学科,如模式识别、人工智能、神经网络、感知生理心理学等的深入发展,新颖高效的现代压缩方法相继产生。现代压缩方法又称为分析与综合方法。目前图像压缩编码技术的研究除了更好的实现现有的国际标准以外,又出现了许多新的图像编码方法,主要有多分辨率编码、基于表面描述编码、模型编码、人工神经网络编码、分形几何编码、数学形态学编码等[3]。其中分形图像压缩和小波图像压缩是当前研究的热点。下面针对目前典型的图像压缩方法进行以下综述。
1.JPEG压缩:负责开发静止图像压缩标准的“联合图片专家组”(Joint Photographic Expert Group,简称JPEG),于1989年1月形成了基于自适应DCT的JPEG技术规范的第一个草案,其后多次修改,至1991年形成ISO10918国际标准草案,并在一年后成为国际标准,简称JPEG标准[4]。
JPEG算法中首先对图像进行分块处理,一般分成互不重叠的 大小的块,再对每一块进行二维离散余弦变换(DCT)。变换后的系数基本不相关,且系数矩阵的能量集中在低频区,根据量化表进行量化,量化的结果保留了低频部分的系数,去掉了高频部分的系数。量化后的系数按zigzag扫描重新组织,然后进行哈夫曼编码。JPEG的优点是具有中端和高端比特率上的良好图像质量。缺点是:由于对图像进行分块,在高压缩比时产生严重的方块效应;压缩比不高,小于50。
JPEG压缩图像出现方块效应的原因是:一般情况下图像信号是高度非平稳的,很难用Gauss过程来刻画,并且图像中的一些突变结构例如边缘信息远比图像平稳性重要,用余弦基作图像信号的非线性逼近其结果不是最优的。
针对JPEG在高压缩比情况下,产生方块效应,解压图像较差,近年来提出了不少改进方法,最有效的是下面的两种方法: DCT零树编码、层式DCT零树编码。
2.JEPG2000压缩:JPEG2000是由ISO/IEC JTCISC29标准化小组负责制定的全新静止图像压缩标准。一个最大改进是它采用小波变换代替了余弦变换。2000年3月的东京会议,确定了彩色静态图像的新一代编码方式—JPEG2000图像压缩标准的编码算法[4]。
JPEG2000格式的图像压缩比,可在现在的JPEG基础上再提高10%~30%,而且压缩后的图像显得更加细腻平滑。对于目前的JPEG标准,在同一个压缩码流中不能同时提供有损和无损压缩,而在JPEG2000系统中,通过选择参数,能够对图像进行有损和无损压缩。现在网络上的JPEG图像下载时是按“块”传输的,而JPEG2000格式的图像支持渐进传输,这使用户不必接收整个图像的压缩码流。由于JPEG2000采用小波技术,可随机获取某些感兴趣的图像区域(ROI)的压缩码流,对压缩的图像数据进行传输、滤波等操作。
JPEG2000标准适用于各种图像的压缩编码。其应用领域将包括Internet、传真、打印、遥感、移动通信、医疗、数字图书馆和电子商务等。JPEG2000图像压缩标准将成为21世纪的主流静态图像压缩标准。
3.小波变换图像压缩:小波变换用于图像编码的基本思想就是把图像根据Mallat塔式快速小波变换算法进行多分辨率分解。其具体过程为:首先对图像进行多级小波分解,然后对每层的小波系数进行量化,再对量化后的系数进行编码。小波图像压缩是当前图像压缩的热点之一,已经形成了基于小波变换的国际压缩标准,如MPEG-4标准,及如上所述的JPEG2000标准。
目前3个最高等级的小波图像编码分别是嵌入式小波零树图像编码(EZW),分层树中分配样本图像编码(SPIHT)和可扩展图像压缩编码(EBCOT)。
小波图像压缩被认为是当前最有发展前途的图像压缩算法之一。小波图像压缩的研究集中在对小波系数的编码问题上。在以后的工作中,应充分考虑人眼视觉特性,进一步提高压缩比,改善图像质量。并且考虑将小波变换与其他压缩方法相结合。例如与分形图像压缩相结合是当前的一个研究热点。
4.分形图像压缩:1988年,Barnsley通过实验证明分形图像压缩可以得到比经典图像编码技术高几个数量级的压缩比。1990年,Barnsley的学生A.E.Jacquin提出局部迭代函数系统理论后,使分形用于图像压缩在计算机上自动实现成为可能。
分形压缩主要利用自相似的特点,通过迭代函数系统(Iterated Function System, IFS)实现。其理论基础是迭代函数系统定理和拼贴定理。
分形图像压缩把原始图像分割成若干个子图像,然后每一个子图像对应一个迭代函数,子图像以迭代函数存储,迭代函数越简单,压缩比也就越大。同样解码时只要调出每一个子图像对应的迭代函数反复迭代,就可以恢复出原来的子图像,从而得到原始图像。随着分形图像压缩技术的发展,越来越多的算法被提出,基于分形的不同特征,可以分成以下几种主要的分形图像编码方法:尺码编码方法、迭代函数系统方法、A-E-Jacquin的分形方案。
虽然分形图像压缩在图像压缩领域还不占主导地位,但是分形图像压缩既考虑局部与局部,又考虑局部与整体的相关性,适合于自相似或自仿射的图像压缩,而自然界中存在大量的自相似或自仿射的几何形状,因此它的适用范围很广。
近年来块截断编码的研究也取得了可喜的成果。块截断编码(Block Truncation Coding,简称BTC)作为一种经典的压缩方法,虽然比起来现代的压缩技术压缩比不高(它的压缩比一般为4:1左右),编码性能不如DCT技术,但是因为它具有简单、快速的实现算法,对信道误码不敏感,还能够获得令人满意的图象质量,所以长期以来一直受到人们的重视。特别是在计算机技术很发达的今天,它的实时实现十分容易,在军事领域和卫星传输方面都有很大的应用前景。
1979年,E.J.Delp和0.R.Mitehell最先提出了块截断图象编码算法,此后陆续出现了许多关于块截断编码的改进算法和自适应的或混合的块截断编码方案[5]。H.B.Mitehell等人系统地比较了各种块截断算法性能的优劣和运算复杂度的高低。近年来,块截断编码越来越多的与其他方法结合应用于各个领域。涂国防等人提出了一种新的纯软件视频编解码算法 ,利用改进的块截断编码和基于一步预测运动估计的运动补偿技术 ,该算法能够在现有的普通PC机上实时实现全彩色视频电话图像序列的编解码。
王业奎等人提出了一种新的活动图像编码算法,称为自适应多值量化的亚抽样块截断编码。模拟结果表明:这种新算法比现有的其它同类算法有更好的性能,压缩比为30,信噪比为35.4dB,图像主观质量良好,在现有个人计算机上可以用软件实时实现。
陆哲明等人提出了一种块截断编码的改进算法,用一种快速查表法来编码高低电平,用24个视觉模型来编码4×4二进制位图,实验表明这种方法可以快速编码和解码,并且能够有效的提高压缩比。
复旦大学计算机系教授薛向阳等人提出了一种改进的块截断编码算法,从理论上讲,块截断编码算法能够保持信号样本的一阶矩和二阶矩,使译码图象在一定程度上保持了原图象的局部统计特性,但是从目前已经提出的各种块截断编码算法来看,它们都是二电平量化器,都将图象量化成高低两个电平值,因此在译码图象中不可避免地出现方块失真,特别是在图象边缘处出现明显的阶梯现象。为克服这一缺点,用低通滤波器对BTC量化后的二值图象块进行平滑,使得块失真有所改善,实验表明本方案还能够明显提高重建图象的峰值信噪比。
T.M. Amarunnishad 等人提出了一种应用模糊边缘补偿算子改进块截断编码压缩的方法,改方法用模糊逻辑比特块来替换传统块截断编码方法。该模糊逻辑块是在模糊边缘图像中使用耶格尔合补充边缘模糊算子得到。实验表明,本方法较传统块截断编码方法在视觉质量上和峰值信噪比上都有所改进。
目前有许多基于块截断编码的改进算法,分别在提高压缩率和提高图像的压缩质量几个方面有了明显的进展。
本文主要研究标准的块截断编码算法和改进的块截断编码算法,并完成对这两种算法的实现。
- 图像压缩技术
- 图像压缩技术概述
在过去的20多年里,微电子、计算机和传感器技术取得了突飞猛进的发展。数字图像的获取、数字处理、存储、传输、显示等技术也因此获得了极大的成功。但是,当前随着人们对图像、声音等多媒体信息的需求越来越大,如果直接把未经压缩的图像数据用于交换和存储,那么数据的大小还是会远远超出已有的存储技术和网络带宽。不过,把图像数据进行适当的压缩,则可能使图像数据大小减小几十倍甚至上百倍。显然,数字图像压缩有着重大的实用价值和广阔的发展前景。
图像编码与压缩从本质上来说就是对要处理的图像原始数据按一定的规则进行变换和组合,从而达到以尽可能少的代码(符号)来表示尽可能多的数据信息。压缩通过编码来实现,或者说编码带来压缩的效果。所以,一般把此项处理称之为压缩编码。例如,一幅512×512、灰度等级为8比特的图像,其数据量为256K字节。以四通道卫星遥感探测器为例,以此视窗,一个时次即达1M字节。实际上,卫星遥感探测时,视窗远大于此,通道远多于此。如地球同步卫星,探测范围达全球面积的三分之一。试想,要保存这些图像数据,该需要多大的存储空间。在现代通信中,图像传输已成为重要的内容。在工作中除要求设备可靠、图像保真度高以外,实时性将是重要技术指标之一。很显然,在信道带宽、通信链路容量一定的前提下,采用编码压缩技术,减少传输数据量,是提高通信速度的重要手段。
可以这样认为,没有编码压缩技术的发展,大容量图像信息的存储与传输是难以实现的,多媒体等新技术在实际中的应用也会碰到困难。
- 图像压缩技术分类
数字图像压缩简称图像压缩,有时又称为图像压缩编码或图像编码,从对象上看分为静止图像压缩和运动图像压缩。
图像压缩研究始于1948年,针对电视图像传输而提出的脉冲编码调制(PCM)原理。20世纪五、六十年代进行的研究限于图像的帧内编码(如预测法)、子抽样/内插复原、图像的统计特性和视觉特性等等。从20世纪60年代末开始,正交变换方法和其它方法被陆续提出,并对图像的帧间编码
(即运动图像编码)做了初步探讨。1969年举行的首届“图像编码会议”表明图像压缩编码己作为一个相对独立的学科出现。1988年是图像压缩编码发展极为重要的一年,视频压缩标准H261和静止图像压缩标准JPEG的框架原理基本确定,分形和神经网络在图像压缩编码中取得重要进展,因此,1988年以前主要研究的压缩编码方法通常称为“经典方法”或“传统方法”,其后提出的具有重要发展前景的方法称为“现代方法”。
现代编码方法:
1.模型法编码:模型编码将图像信号看作三维世界中的目标和景物投影到二维平面的产物,而对这一产物的评价是由人类视觉系统的特性决定的。模型编码的关键是对特定的图像建立模型,并根据这个模型确定图像中景物的特征参数,如运动参数、形状参数等。解码时则根据参数和已知模型用图像合成技术重建图像。由于编码的对象是特征参数,而不是原始图像,因此有可能实现比较大的压缩比。模型编码引入的误差主要是人眼视觉不太敏感的几何失真,因此重建图像非常自然和逼真。
2.分形编码法:分形法是基于物质的自相似性,在编码时将信号分解为若干分形子图,提取其迭代函数系统代码(IFS代码)。恢复时则由该代码按规律迭代重构各子图。基于IFS的分形法编码压缩过程应包括以下步骤:
(1) 将原图预分割成若干分形子图,使每一子图具有一定的分形结构。目前这一步需要采用图像处理、计算机视觉和模式识别的技术,经过反复试凑才能完成。
(2) 对每一子图提取IFS代码。即将子图置于计算机屏幕上,采用伸缩、平移、旋转或仿射手段,对子图进行压缩,获得一组仿射变换参量,便可得到该子图的IFS代码。
(3) 对IFS代码采用经典的编码方法进行编码。
(4) 译码形成IFS代码。
(5) 由IFS代码,利用随机迭代法获取相应的重构子图。
(6) 把各重构子图拼成恢复图像。对于一定的整体与局部存在明显相似性或仿射性的分形图像类,这种方法可以取得很高的压缩比。
3.小波变换压缩方法:小波变换把图像分解成逼近图像和细节图像之和,它们分别代表图像的不同结构,然后采用快速算法(Mallat)进行压缩,可以获得很高的压缩比。基于小波变换的图像压缩算法首先使用某种小波基函数将图像作小波变换,再根据4个通道的不同情况,分别量化编码,比如对低频频段(LL)采用较多的量化级别,而对中间频段(LH,RH)采用较少量化级别,对高频频段(HH)采用很少几个量化级别,这样根据重构时对复原信号的重要程度分别对待的方式可以有效地提高压缩比而又不产生明显的失真[6]。小波变换在静态图像压缩中的作用已经得到公认,为JPEG2000标准所采纳。小波变换应用于图像压缩时,本质上是对原始图像的小波系数进行重组处理,然后用处理后的小波系数恢复图像,在实际的信号压缩标准中(如JPEG2000),一般采用支集长度为9和7的双正交小波,该方法容错性比较好,因此更适合实际的应用。
经典编码方法:
1.行程长度编码(RLE):行程长度编码(run-length encoding)是压缩一个文件最简单的方法之一。它的做法是把一系列的重复值(例如图像像素的灰度值)用一个单独的值再加上一个计数值来取代。比如有这样一个字母序列aabbbccccccccdddddd,它的行程长度编码就是2a3b8c6d。这种方法实现起来很容易,而且对于具有长重复值的串的压缩编码很有效。例如对于有大面积的连续阴影或者颜色相同的图像,使用这种方法压缩效果很好。很多位图文件格式都用行程长度编码,例如TIFF,PCX, GEM等。
2 .LZW编码:LZW编码原理是将每一个字节的值都要与下一个字节的值配成一个字符对,并为每个字符对设定一个代码。当同样的一个字符对再度出现时,就用代号代替这一字符对,然后再以这个代号与下个字符配对。LZW编码原理的一个重要特征是,代码不仅仅能取代一串同值的数据,也能够代替一串不同值的数据。在图像数据中若有某些不同值的数据经常重复出现,也能找到一个代号来取代这些数据串。在此方面,LZW压缩原理是优于RLE的。
3.霍夫曼编码:霍夫曼编码(Huffman encoding)是通过用不固定长度的编码代替原始数据来实现的。霍夫曼编码最初是为了对文本文件进行压缩而建立的,迄今已经有很多变体。它的基本思路是出现频率越高的值,其对应的编码长度越短,反之出现频率越低的值,其对应的编码长度越长。
4.预测及内插编码:一般在图像中局部区域的象素是高度相关的,因此可以用先前的象素的有关灰度知识来对当前象素的灰度进行预计,这就是预测。而所谓内插就是根据先前的和后来的象素的灰度知识来推断当前象素的灰度情况。如果预测和内插是正确的,则不必对每一个象素的灰度都进行压缩,而是把预测值与实际象素值之间的差值经过熵编码后发送到接收端。在接收端通过预测值加差值信号来重建原象素。
5.矢量量化编码:矢量量化编码利用相邻图像数据间的高度相关性,将输入图像数据序列分组,每一组m个数据构成一个m维矢量,一起进行编码,即一次量化多个点。根据仙农率失真理论,对于无记忆信源,矢量量化编码总是优于标量量化编码。编码前,先通过大量样本的训练或学习或自组织特征映射神经网络方法,得到一系列的标准图像模式,每一个图像模式就称为码字或码矢,这些码字或码矢合在一起称为码书,码书实际上就是数据库。输入图像块按照一定的方式形成一个输入矢量。编码时用这个输入矢量与码书中的所有码字计算距离,找到距离最近的码字,即找到最佳匹配图像块。输出其索引(地址)作为编码结果。解码过程与之相反,根据编码结果中的索引从码书中找到索引对应的码字(该码书必须与编码时使用的码书一致),构成解码结果。由此可知,矢量量化编码是有损编码。目前使用较多的矢量量化编码方案主要是随机型矢量量化,包括变换域矢量量化,有限状态矢量量化,地址矢量量化,波形增益矢量量化,分类矢量量化及预测矢量量化等。
6.块截断编码:1979年,E.J.Delp和0.R.Mitehell提出了块截断图象编码算法,此后陆续出现了许多关于块截断编码的改进算法和自适应的或混合的块截断编码方案,最近,H.B.Mitehell等人又系统地比较了各种BTC算法性能的优劣和运算复杂度的高低.。
虽然BTC的压缩比不高(一般为4:1左右),编码性能不如DCT技术,但是因为它具有简单、快速的实现算法,对信道误码不敏感,还能够获得令人满意的图象质量,所以长期以来一直受到人们的重视.特别是在计算机技术很发达的今天,它的实时实现十分容易,因此本文着重研究块截断编码技术。
- 块截断编码原理
3.1块截断编码概述
块截断编码是一种有效的、快速的有损图像压缩方法。与矢量量化和变换编码相比,块截断编码更加容易实现。因为它具有运算量低,所需存贮量小,简单、快速的低复杂度实现算法,以及良好的抗信道干扰特性等优点,所以长期以来在实时图像传输领域中一直受到人们的重视。实质上块截断编码是一个1比特自适应矩保持(Moment-preserving quantizer)量化器,它能够保持信号样本的一阶矩和二阶矩,使译码图像在一定程度上保持了原图像的局部统计特性。块截断编码最早由E.J.Delp和O.R.Mitchell于1979年提出,该算法保持图像的块均值和图像的块标准方差不变。后来,在1984年,Lema和Mitchell提出了一种块截断编码的简单快速的改进方法,即保持绝对值中心矩不变的块截断编码算法(Absolute MomentBTC,AMBTC)[8]。然而标准块截断编码算法和绝对矩块截断编码算法所能达到的比特率均为2比特/像素,同时其压缩比也不高。因此,为了进一步提高压缩比、减少比特率,并提高重建图像的质量随后又陆续出现了许多关于块截断编码的改进算法和自适应的或混合的块截断编码方案。例如,用中值滤波器,矢量量化,插值或预测等方法来对输出量化器的数据进行编码。然而,压缩比的增加,比特率的减少都是以重建图像失真度的增大或算法复杂度的增加为代价的。
3.2 块截断编码基本原理
在标准的块截断编码中,将图像分段成为n×n无重叠图像块,4×4为典型块,并为各数据块而单独设计的2电平(1bit)量化器。量化门限和二个重建电平随一个图像块的局部统计特征而变化,因此该编码实际上是一个局部二进制处理过程,这种数据块的表达方式是由一个n×n比特映像所组成,该n×nbit代表了有关各像素的重建电平和确定两个重建电平的附加信息,而译码是个简单的处理过程,它在作为每比特映像的各像素位置,选定一个合适的重建值而完成译码。