摘要:图像作为传递信息的媒体和手段是十分重要的。但是数字图像的数据量非常大,需要很多的比特数,因而需要对图像进行压缩。所谓图像压缩就是在保证一定的图像质量和满足一定要求的前提下,减少图像原始数据量的一种过程。
关键字:图像压缩嵌入式小波变换
abstract:
the image as delivering medium and means of information are very important .but the data quantity of the numerical image is very big, needing a lot of ratios to especially count, as a result need to carry on the compression to the image .so-called image compression is at guarantee the certain image quantity and satisfy the premise of certain request under, a process of reducing the quantity of original data of image.
firstly, the image compression's necessary and feasibility are discussed, and several classical image coding technologies are introduced. including code method and its evaluation criteria, main image coding international standard and so on. finally, the embedded zerotree wavelet algorithm based on the wavelet transformation had been analysised and the discuss, and its basic thought、 concept and algorithm principle had been elaborated. and the programming based on matlab has been completed: overall situation threshold value image compression based on the bior3.1 wavelet, image two-times compressions and the primitive image 3-times decompositions based on the bior3.7 wavelet, the image compression-encoding and decoding based on the harr wavelet and the huffman coding. through carries on the compression code test experiment to the standard test image, confirmed this method operation’s succinction, the quick speed, the high quality of the re-build images, which has obtained the satisfying effect.
keywords:image compression embedded wavelet transform
本文首先论述了图像数据压缩的必要性和可行性,对传统的经典的图像编码技术进行了介绍。www.133229.Com包括编码方法及其评价标准、主要的图像编码国际标准等。并对基于小波变换的嵌入式零树算法进行了详细的分析和讨论,阐述了嵌入式零树小波编码(ezw)的基本思想、概念及算法原理。并完成了基于harr小波基和huffman编码方法的图像压缩编解码的编程。通过对标准测试图像进行压缩编码测试实验,证实该方法运算简洁,速度快,重构图像质量高,取得了令人满意的效果。
一、图像压缩编码概述
1.图像压缩编码的原理
图像压缩机制通常可以分为两种:有损压缩和无损压缩。在无损压缩中,我们关心的是确信重建没有丢失信息,无损压缩通常被用于文本文件的压缩中。对于有损压缩,允许压缩后产生质量上的误差。有损压缩机制的优点是可以得到比无损压缩高得多的压缩比,但是它只能用于可以用近似的数据代替原始数据,而这种相近数据又是容易被压缩的情况。举例来说,一幅和原图像在视觉上没有区别的图像可以看作是原图像的近似。任何压缩机制的根本思想都是除去数据中存在的相关性。所谓相关性,就是能够根据给出的一部分数据判断其相邻的数据。数据相关性分为以下几种:
(1)空间相关性:可以根据图像中某一点的像素值推断出其相邻点的像素值;
(2)频率相关性:一个信号的傅立叶变换通常是光滑的,这意味着可以根据某一部分的频率来推断其相邻部分的频率;
(3)时间相关性:在数字视频中,在时间上相邻两帧图像的大部分像素的值变化很小。
有损压缩的标准过程是变换编码。基本思想是用一个和原来不同的数学基来表示数据,在这种新的表示下,数据的相关性能够显露出来或被拆开。在这种情况下,大部分的系数都接近于0,可以忽略,于是可以将余下的信息存储在一个较小的数据包中。
2.图像压缩编码的方法
图像压缩编码有多种分类。按图像形式分为图示像和非图示像;从光度特征分为单色图像,彩色图像和多光谱图像;从处理维数分为行内编码,帧内编码和帧间编码;根据编码原理可分为:熵编码、预测编码、变换编码和混合编码[9]。
2.1熵编码
熵编码是纯粹基于信号统计特性的编码技术,是一种无损编码。熵编码的基本原理是给出现概率较大的符号赋予一个短码字,而给出现概率较小的符号赋予一个长码字,从而使得最终的平均码长最小。常见的熵编码方法有行程编码(runlengthencoding)、哈夫曼编码(huffman)和算术编码。这里重点说明哈夫曼编码。
哈夫曼编码是以信源概率分布为基础的,但一般无法事先知道信源的概率分布,通常采用对大量数据进行统计后得到的近似分布来代替,这样会导致实际应用时哈夫曼编码无法达到最佳性能。通过利用根据输入数据序列自适应地匹配信源概率分布的方法,可以较好地改进哈夫曼编码的性能。哈夫曼编码的一般算法如下[12]:
(1)首先统计信源中各符号出现的概率,按符号出现的概率从大到小排序;
(2)把最小的两个概率相加合并成新的概率,与剩余的概率组成新的概率集合;
(3)对新的概率集合重新排序,再次把其中最小的两个概率相加,组成新的概率集合,如此重复进行,直到最后两个概率的和为1;
(4)分配码字:码字分配从最后一步开始反向进行,对于每次相加的两个概率,给大的赋“0”小的赋“1”(也可以全部相反,如果两个概率相等,则从中任选一个赋“0”,另一个赋“1”即可),读出时由该符号开始一直走到最后的概率和“1”,将路线上所遇到的“0”和“1”按最低位到最高位的顺序排好,就是该符号的哈夫曼编码。
2.2预测编码
在经典的图像编码技术中,预测编码和变换编码是主要的两类编码方法。预测编码的硬件实现比较简单,而对于图像质量要求高的场合,采用预测编码,例如,差分脉冲编码调制(dpcm)可以达到与变换编码同样程度的码率压缩。目前,在视频序列编码,进行时间轴冗余度压缩的主要手段是运动补偿帧间预测。在预测编码时,不直接传送图像样值本身,而是对实际样值与它的一个预测值间的差值进行编码、传送。如果这一差值—预测误差被量化后再编码,这种预测编码方式叫dpcm。dpcm就是通过去除相邻像素间的相关性和减少对差值的量化层数来实现码率压缩的。
2.3变换编码
变换编码的基本思想是将在通常的欧几里德几何空间(空间域)描写的图像信号变换到另外的正交向量空间(变换域)进行描写。如果所选的正交向量空间的基向量与图像本身的特征向量很接近,那么同一信号在这种空间中描写起来就会简单得多。空间域的一个n×n个像素组成的像块经过正交变换后,在变换域变成了同样大小的变换系数块。变换前后的明显差别是,空间域像块中像素之间存在很强的相关性,能量分布比较均匀;经过正交变换后,变换系数间近似是统计独立的,相关性基本解除,并且能量主要集中在直流和低频的变换系数上。这样一个解相关过程也就是冗余度压缩的过程。在经过正交变换后,再在变换域进行滤波、与视觉特点匹配的量化及统计编码就可以实现有效的数据压缩。本文重点研究的是小波变换在图像编码中的应用。
2.4混合编码
混合编码是指综合了熵编码、变换编码或预测编码的编码方法,如jpeg标准和mpeg标准。
3.图像编码方法的评价标准
对于一个图像编码方法的评价,主要包括以下两个方面:一是对重构图像质量的评价,二是对图像编码效率的评价。通常的图像编码都是失真编码,这就需要有一个对重构图像质量进行评价的标准,希望在传输码率尽量低的前提下能尽量保证重构的图像具有较高的图像质量,这对图像编码方法的发展具有很好的指导意义。图像质量的含义主要包含了两层意义:一是重构图像的失真度,即重构图像与原图像的偏离程度:二是图像的可读性,即人们能从图像中获得的信息。一般情况下,人眼是图像信息的接收者,但由于目前对人的视觉系统的性质的理解还很有限,还不能对图像的失真度和可读性做定量描述,所以在图像质量评价方法上,除了主观的评价方法外,还需要客观的评价方法。
主观评价方法是由评价者直接对一幅图像进行观察,从感觉上去度量其失真程度,给出质量评价分数,对所有评价者给出的分数进行加权平均,所得结果即为主观评价结果,有两种尺度:绝对尺度和相对尺度。绝对尺度可以分为5个等级:很好,较好,一般,较差,很差;相对尺度也分为5个等级:最好的,高于平均水平,平均水平,低于平均水平,最差的。这种评价结果必然符合人的视觉感受,相对于客观评价方法是可靠的,但它使用起来不方便,一方面不能用数学模型对其进行描述,不能直接用于图像编码过程中的质量评价和控制,另一方面,主观评价容易受到评价者的主观因素影响,如年龄、教育程度和性格等,所以大多数情况下还是以客观评价方法对图像质量进行评价。
所谓客观评价方法,就是定义一个数学公式,然后对待评价的图像进行运算,得到一个唯一的数字量作为测度结果,通常用于评价图像的失真度。图像压缩的好坏通常由以下几个量表征[11]:
(1)0的系数个数百分比和保留能量百分比
小波分解系数中置0的系数个数百分比、压缩后图像保留能量百分比是两个非常重要且直接的指标。前者直接表示了经压缩编码后节省的系数个数百分比,而后者表示了图片的质量的保留程度。
(2)压缩比cr(compressionratio)
cr=压缩前图像所含比特数/压缩后图像所含比特数
图像的压缩效率通常用压缩比来衡量,压缩比越高,图像压缩越大,反之亦然。
(3)编码及解码时间
编解码的时间越短越好,但要实现比较好的压缩效果,必然要采用较复杂的算法,运算量的增加必然使编解码时间增加,因此这是一对矛盾,在实际应用中要综合考虑。同时,编码和解码也存在一定的矛盾,一般由于编码端环境的限制,对编码的时间要求更严格,也常采用尽量减少编码端的计算,将这些计算放到解码端进行处理。
(4)重建图像质量
人眼是重建图像主观评价的工具,通常至少选20人作为评判者,以保证结果的可靠性;在实际中常用一些客观参数作为评判重建图像质量的一个度量。这些参数有psnr,mse。
其中m×n是图像的尺寸,,分别表示原图像和重建图像在(i,j)处的灰度值。
psnr=10log10(l2/mse)
应该注意的是,mse和psnr是从总体上反映原始图像和重构图像的差别,并不能反映局部。有时候同样的信噪比,视觉效果还是会有一定的差异,这主要是由于误差的均匀程度造成的。一般来讲,误差均匀时视觉效果好,反之视觉效果不好。大多数情况下,都可以用psnr对图像质量进行评价,但有时其结果可能与主观评价结果不相符。n
二、基于嵌入式思想的小波图像压缩算法
1.嵌入式零树小波编码(ezw)的基本思想
一般地,在图像的低比特率编码中,用来表示非零系数位置的开销远远大于用来表示非零系数的开销,由于图像小波系数存在的空间位置相似性和树状结构特性,因而将这种特性应用于图像压缩领域,就可以大大节约图像压缩编码当中非零系数位置的存储效率,从而提高图像的压缩效率。此外,在一幅图像中,具有较高能量低频信息对视觉比较重要,而能量较低的高频信息对于视觉来说不太重要,而图像小波系数具有能量集中和聚簇特性,因此将小波变换和嵌入式编码结合可以实现图像渐进传输。基于小波变换的压缩传输就是在小波变换的基础上,利用图像小波系数的特性,采用适当的方法组织图像的小波系数,以形成高效的编码码流。
一幅图像经过小波变换后,并没有实现压缩,只是整幅图像的能量进行了重新分配,要进行压缩还必须进行量化和墒编码。一般而言,小波图像压缩的编/解码过程可用图2-1所示的框图表示。图中,量化为小波编码的关键之一,其目的是为了更好的组织图像的小波系数,以实现高效压缩,嫡编码是将量化后的小波系数编码形成比特流输出。
嵌入式编码就是指编码器可以生成大小不同的码流文件,而小的文件(有m比特),与大的文件的前m比特是完全相同的。这样一来,就只需要一个单独的码流就能够以任意低于或等于编码码率的码率来进行解码的编码方式,其主要目的就是要实现渐近的图像传输。我们熟悉的gif图像编码格式就支持渐近传输。这样做的好处是图像的传输可以在任意的时候终止,不需要传输完整的一幅图像,用户就可以看到图像的部分信息。在传输信道很差的情况下,如果图像传输异常中断时,用户也可以根据接收到的数据了解整幅图像的大致信息。而不象非渐近传输那样,如果异常中断传输,用户得到了已传输部分的完整内容,而对未传输部分却一点也没有了解到。
对要研究的图像中的点或像素,用来表示,(i,j)就是该点的坐标。本文研究的图像都是数字图像,为了简单起见,这里和后面讨论的都是灰度图像,即n×n×mbpp(比特每像素)的图像,n代表了图像的水平和垂直纬度,m代表了每个像素所用的比特数。
在渐近传输方案中,一个主要的任务就是选择最重要的信息,它可以使失真减少最大,把这最重要的信息最先传输。为能做出选择,我们用最小均方误差(mse,meansquared-error)来衡量失真:
图2-2是一些按幅度大小排列的像素的二进制表示。最上面一行是数据的符号,最上面的比特是最高位,也即是最重要的。渐近传输就按行进行,从左到右。因为数据已经是递减排列,所以每一列开始的“0”bit和第一个“1”比特都不需要传送,它们可以自动的在解码端得到恢复。真正需要传送的比特只是图4-2中箭头标注的比特。采用嵌入式编码进行渐近的传输,解码端可以以任意低于或等于编码码率的码率来对一个单独的编码文件进行解码,从而为编码提供了更多的灵活性。从上面的分析可以看出,这样的编码方式仿佛是嵌入到了数据比特流内,可以在任意点进行截断,所以就称为嵌入式的比特面编码,或简称嵌入式编码。
jmshapiro提出的嵌入式零树小波编码算法充分利用了图像的小波变换系数各子带之间的相关性,而计算实现却很简单,所以立即引起了许多研究者的巨大兴趣和进一步探索。零树编码算法的基本思想是采用了零树(zerotree)这一数据结构来表示小波系数时,充分利用小波变换的优秀时频局域性和挖掘变换系数各子带之间的相关性。另外,该方法很好地利用了小波系数的特性使得输出的码流具有嵌入特性,它的重要性排序和分级量化的思想被许多编码算法所采用。该方法有以下几个突出的优点:
(1)可对编码后的输出码流进行精确的控制且产生嵌入式码流;
(2)由于在每一轮量化扫描时对各子带使用同一个阈值,因此有利于将变换系数大的图像边缘部分保留;
(3)容易实现累进传输;
(4)不需要做各子带的比特分配和量化步长设计,简化了实现,提高了速度。
经过变换后的图像各子带系数呈现树状的层次分解结构,尺度间有明显的相似性与方向性这些特征,表现为低频系数比较小则其相对应的高频系数一般也比较小。jmshapiro提出的嵌入零树小波编码正是因为充分利用了这种关系,获得了较高的编码效率。同时该编码能产生嵌入式码流,支持多码率。
2.嵌入式零树小波编码算法原理
2.1扫描顺序
ezw在编码的时候输出的位置信息隐含在特定的扫描顺序里,解码器使用和编码器相同的规律扫描解码,就可以恢复出原始的图像。扫描的顺序如图4-5所示。这样的扫描顺序能保证粗尺度系数在细尺度系数前被扫描,当前子带中的所有系数扫描完后才进入下个子带,也即低频信号优先编码,从而实现了嵌入式编码。
2.2ezw编码
ezw的编码就是按照扫描的顺序,相应于给定的阈值k,将每个小波系数分成pos(简写为p)、neg(简写为n)、iz(简写为z)和ztr(简写为t)的码流。ezw编码算法在一阈值下经过两个过程:主过程(dominant_pass)和辅过程(subordinate_pass)。然后将阈值降为原来的一半,步骤同上。当阈值不断降低,就实现了逐次逼近的嵌入式编码。
其中主过程实现以下3项任务:
①按一定的顺序扫描小波系数,根据小波系数输出码流,设取出的系数为x[n],当前阈值为k,其输出规则如下:
l如果x[n]>k,则输出p;
l如果x[n]<-k,则输出n;
l如果|x[n]|<k,且该系数后代中有重要系数,则输出z;
l如果|x[n]|<k,且该系数后代中没有重要系数,则输出t;
②将主表中的重要系数抽取出来,其绝对值放入被称为附表的一维数组中。
③在主表中重要系数的位置填零。
辅过程对重要系数再进行精细编码,根据附表中存的系数输出0或者1,0表示系数在下半区,即k到3/2k之间,1表示系数在上半区,即3/2k到2k之间。最后当阈值k降为1时,根据主通道和从通道输出的码流就能无误的表示出所有系数的值。要实现无损压缩,还要对输出的码流进行熵编码,一般采用算术编码或者游程编码。因为各轮的阈值不一样,最后在得到的附表中,列在前面的非零值的点比后面的重要。在判别中只有四种符号:对应于某门限的正值、负值、零树根、孤立零,从而大大压缩了所需的比特数。对应于四种符号再加上附加的非零值的数值范围的符号可以用熵编码按概率的大小进一步予以压缩,达到低比特率的要求。零树编码的另一个特点是各层子带中有意义的系数是按父系到子系、重要的值优先的原则在附表中排列,可以按所需的压缩比截取有意义的值,因此在压缩编码中比较灵活。
解码时根据p、n、z、t码流和扫描顺序就能确定系数的位置,同时由码流和附表的值就能确定系数的值。
2.3细化
细化过程就是逐次量化逼近的过程。用一个阈值序列k0、k1……kn-1来判定重要系数。其中
3.实验过程与结果分析
3.1算法实现过程
根据图像小波变换的实现过程和嵌入式零树编码的基本原理,可以得出基于小波变换的嵌入式零树编码的图像压缩传输的实现步骤:
(1)选择一种边界延拓方法对待压缩传输的图像进行边界延拓;
(2)选择合适的小波滤波器按照一定级数对延拓后的图像进行小波分解,产生多个频带的小波系数;
(3)确定ezw编码的初始闲值和传输码率,按照ezw编码方法对各个频带的小波系数进行多次扫描、量化、嫡编码直到达到给定的传输码率,从而得到压缩的传输码流;
(4)对压缩的传输码流进行ezw解码得到图像小波系数,对小波系数进行逆小波变换得到重建图像;
3.2结果分析
(1)实验一:基于harr小波基的嵌入式零数小波(ezw)图像压缩编解码
在matlab的commandwindow中显示出:s=82750;t=131072;ratio=0.6313。
其中,s表示压缩后图像的大小,t表示原始图像的的大小,ratio表示压缩率。
基于小波变换的图像压缩编码是一个新兴的领域,出现了许多新的优秀压缩算法。是与多学科有联系的交叉学科,其研究范围十分广泛,在图像压缩中的应用的涉及面也很广,其中的许多理论和实际问题还有待进一步解决,技术发展十分迅速,新的挑战层出不穷。
四、参考文献
[1](美)崔锦泰.小波分析导论.程正兴译.西安交通大学出版社,1995.6
[2]徐长发.实用小波方法(第二版),华中科技大学出版社,2004.1
[3]杨福生.小波变换的工程分析与应用.科学出版社,1999
[4]陈桂明等.应用matlab语言处理数字信号与数字图像.科学出版社,2000
[5]黄贤武、王加俊、李家华.数字图像处理与压缩编码技术.电子科技大学出版社,2000.12
[6]彭玉华.小波变换与工程应用.科学出版社,1999
[7]胡栋.静止图像编码的基本方法与国际标准.北京邮电大学出版社,2003
[8]李建平、唐远炎.小波分析方法的应用.重庆大学出版社,1999
[9]邹定清.基于小波的静态图像压缩算法的研究.[哈尔滨理工大学学位论文].哈尔滨:哈尔滨理工大学,2005.3
[10]王文涛.基于小波的图像压缩编码算法研究.[重庆大学学位论文].重庆:重庆大学,2005.5
[11](美)r.w汉明(r.whamming).编码和信息理论.朱雪龙译.科学出版社,1984.2
[12]张鸣瑞、邹世开.编码理论.北京航空航天大学出版社,1990.3
[13](美)ingriddaubechies.tenlecturesonwavelets.李建平、杨万年译.国防工业出版社,2004.5
[14]程正兴.小波分析算法与应用.西安交通大学出版社,1998
[15]marka.pinsky.introductiontofourieranalysisandwavelets.机械工业出版社,2003
[16]j.villasensor.waveletfilterevaluationforimagecompression.ieeetrans.onimageprocessing,1995