噪声图像的分形压缩编码研究
摘要:分形图像压缩编码是近年来产生的新的图像压缩编码技术,由于其具有极高的压缩比而获得广泛的关注。主要讨论了图像小波域的去噪问题以及如何将小波域的去噪与分形图像压缩方法结合起来,以获得良好的编码效率和图像质量。
关键词:分形编码 图像压缩 噪声
分形的概念是由数学家B.Mandelbrot于1975年提出的,他把分形定义为“一种由许多个与整体有某种相似性的局部所构成的形体”。分形概念的提出及分形几何学的创立为描述客观世界提供了更准确的数学模型。图形学是几何学的延伸与发展,分形模型研究成果的积累形成了新的图像学分支——分形图像学。而基于分形的图像编码方法实质是对图像中一个或多个相对大的部分施行压缩变换来逼近图像的每一部分。1990年,A.Jacquin提出了全自动的可行的分形压缩编码方法,由于其可以获得极高的压缩比而得到广泛关注。在实际的图像编码过程中,原始图像经常被噪声(最常见的是高斯白噪声)污染。由于噪声的存在,一方面使得图像编码的时间延长,另一方面,降低了图像的信噪比,图像质量明显下降。因此,笔者试图寻找一种方法,在不影响图像压缩比的前提下去噪,从而提高编码效率和图像质量。
1 分形图像压缩编码方式
1.1 拼接定理(Collage Theorem)
拼接定理是分形图像压缩技术的核心。
设{RT:wi,i=1,2,…,p}是T维的收缩仿射变换集合,即IFS、R为实数集。给定V∈RT,ε>0,如果IFS中最大的收缩因子s∈(0,1),且满足:
h(V,W(V))<ε
则有:h(V,A)<ε/(1-ε)
其中,A为IFS的吸引子,h(A,B)为Hausdorff距离。拼按定理给出了数集V与吸引了IFS之间逼近程度的一个上限值,即拼接误差的上限值。
拼接定理提供了用IFS进行图像压缩的理论依据。对于一般的灰度图像,可认为是一张原始灰度曲面(R3空间上的一个紧子集)进行抽样和量化得到的。尽管无法使原理图像(V)成为某一个迭代函数系统IFS的吸引子,但是如果能找到一组收缩仿射变换wi,i=1,2,…,p,使javascript:window.open(this.src);" style="cursor:pointer;"/>与V充分地接近,那么由拼接定理可知V是该IFS(RT:wi,i=1,2,…,p)对应吸引子的良好逼近。
在利用收缩仿射变换{RT:wi,i=1,2,…p}结图像进行解压缩时,迭代过程与初始条件无关。也就是说,对任意给定的初始图像数据进行多次迭代,就可以完成对原始图像的重构。
1.2 分形图像压缩编码的实现
所谓局部IFS(LIFS)是指其变换的定义域由原来的整个区域放宽为全部区域的某些子集。通过将理论从全局扩展到局部,可以得到一种全自动的分形压缩方案,Jacquin方法的实质是固定方块定义域块的大小并限制仿射变换为一定的形式,然后搜索图像录找与定义域块相匹配的值域块(它的大小是定义域块的4倍),搜索中要配合Jacquin提出的八种对称变换算子对值域块进行变换。
编码压缩过程:把原始图像分成互不重叠的定义域块(Range块),这些块能将原始图像全部覆盖,每一个Range块大小均为B×B;每一Domain埠的大小均为D×D,且通常D=2B。为使压缩后重构图像的质量更好,相邻 的Domain块之间在水平及垂直方向均有重叠,水平及垂直方向上位移量为B。依次对每一个Domain块中相邻的4个灰度值求平均,于是每一个大小为D×D(2B×2B)Domain块就变成了大小为B×B的Sub_Domain块。之后利用最小二乘法,并配合八种对称变换算子,将收缩后的Domain块(Sub_Domain块)与Range块进行匹配运算:
javascript:window.open(this.src);" style="cursor:pointer;"/>
若计算出的MSE小于给定误差,则认为匹配成功,否则继续匹配,在找到最佳值域块及仿射变换后,需要存储其参数以便传输。这些参数包括:匹配成功的Domain块块号、Jacquin变换算子的编号以及比例因子S、偏移量O。
解码重构过程:从任意的初始图像开始(当然该图的大小要与原图一致),和原始图像(如图1所示)一样,对任意图像也可分为相同大小的定义域块和值域块,根据传输的参数,用值域块对定义域块进行逼近,当全部的定义域块都被逼近一次后,称为完成一次迭代,所得图像作为下一次迭代的初始图像,一直迭代下去直至重构图像不再随迭代发生显著变化为止,重构结束。
2 对噪声图像进行分形压缩编码的结果
以256×256的Lena灰度图像为例(噪声均为零均值的高斯白噪声),在对图像进行分割时,取B=4,D=8。表1给出了用分形压缩算法对噪声图像编码的结果。图2和图3给出噪声方差为50时的噪声图像和分形压缩图像。
javascript:window.open(this.src);" style="cursor:pointer;"/>
从表1中可以明显看出,当图像被高斯白噪声污染后,分形编码算法的性能明显降低,一是编码时间大大增加,而且噪声方差越大,编码时间越长,这主要是因为图像被污染的程度越大,图像信息损害的就越厉害,图像的分形特性遭到破坏,在编码过程中寻找匹配块的难度就越大、时间越久,分形算法的编码效率大大降低。二是重构图像信噪比降低,图像质量严重恶化,尤其是方差增大时,图像质量恶化更严重,如方差为200时,重构图像的信噪比降低了24.36(如图3所示),图像的一些信息特征已经不存在了。因此要提高含噪声图像的编码效率和信噪比,就必须对图像先进行去噪处理,同时要保证图像的分形特点。由于小波已被广泛地用于图像处理并获得良好的效果,所以利用小波方波对图像进行去噪处理。
表1 噪声图像分形压缩编码结果
图像类型 | 编码时间t(s) | 信噪比PSNR(dB) |
无噪声图像 | 58 | 32.87 |
含噪声图像1(方差50) | 205 | 28.47 |
含噪声图像2(方差100) | 392 | 26.69 |
含噪声图像3(方差200) | 750 | 24.36 |
3 图像小波域的去噪方法
小波分析用于图像去噪处理,主要是针对图像信号与噪声信号经小波变换后在不同的分辨率呈现不同的规律,在不同的分辨率下,设定阈值门限,调整小波系数,达到图像去噪目的。
在小波系数进行取舍之前,实际上按照一定准则(或者阈值化)将小波系数划分为两类:一类是重要的、规则的小波系数;另一类是被看作非重要的或者受噪声干扰较大的小波系数。通常以小波系数的绝对值作为小波系数的分类单元。小波系数绝对值趋向于零,意味道着小波系数所包含的信息量并且强烈地受噪声干扰。最常用的阈值化去噪方法:一是默认阈值消噪处理,即在消噪处理过程中采用程序中设定的阈值,对分解信号进行分类处理,以求消除噪声;二是给定软(或硬)阈值消噪处理,阈值通过某一个经验公式获得,该阈值比默认的阈值去噪效果更有说服力。
对于“软阈值化”,绝对值小于阈值δ的小波系数数值用零代替;绝对值大于阈值δ的小波系数数值用δ来缩减。如下所示:
javascript:window.open(this.src);" style="cursor:pointer;"/>
式中,W表示小波系数的数值;sgn(·)是符号函数,当数值大于零,符号为正,反之符号为负。对于“硬阈值化”,仅仅保留绝对值大于阈值δ的小波系数,并且被保留系数与系数相同(没有被缩减),如下式所示:
javascript:window.open(this.src);" style="cursor:pointer;"/>
两种方法各有差异,前者具有连续性,在数学上容易处理,后者更接近实际应用。
阈值化处理的关键在于选择合适的并值δ。如果阈值门太小,处理后的信号仍有噪声存在;阈值太大,重要的图像特征将被滤掉,引起偏差。大多数阈值的选取过程是针对一组小波系数,即根据本组小波系数的统计特性,计算出一个阈值δ。Donoho等提出了一种典型的阈值选取方式,从理论上说明阈值与噪声的方差成正比,为:
javascript:window.open(this.src);" style="cursor:pointer;"/>
其中,Nj表示第j层子带上小波系数的个数。
通过对信号的收缩阈值处理,能较好去除噪声,提高重构图像的信噪比和图像的编码效率。
javascript:window.open(this.src);" style="cursor:pointer;"/>
4 去噪声图像的分形压缩编码结果及讨论
为了便于对比,这里所采用的图像仍然是256×256的Lena灰度图像,分解所用的滤波器是双正交B97滤波器,分解级数为4。实际均在Pentium 4/1.5、RAM128MB的机器上编译完成。图4和图5是消噪图像(原噪声图像方差=100)和消噪图像分形压缩结果。
经小波域去噪的图像分形压缩编码性能明显提高,一是体现在编码时间上,去噪图像的编码时间与有噪图像相比大大缩短,效率大大提高,分形压缩方法本身特点就是压缩时间长,因此这种效率的提高是非常可观的;二是图像质量明显好转,信噪比有较大的提高,保证了分形压缩编码的质量(如图5所示)。以上实验和结论充分说明了图像小波域的去噪方法能够对噪声图像进行良好的消噪处理,保证了分形压缩编码方法的编码效率和图像质量。