基于多小波的图像压缩
2010-05-13王秀碧
王秀碧
摘 要:多小波以其具有正交性、对称性、短支撑和较大的消失矩等多个良好特性弥补了单小波的不足。在介绍多小波理论的基础上,提出一种新的图像压缩方法。该方法以CL多小波为基础,结合SPIHT图像压缩算法,对多小波系数进行压缩处理。采用Matlab 6.5进行实验,实验结果表明,经该算法压缩后的图像,其质量优于一般小波变换的传统方法。
关键词:小波变换;多小波;SPIHT;图像压缩
中图分类号:TP292.42文献标识码:A
文章编号:1004-373X(2009)12-073-03
Image Compression Based on Multi-wavelet
WANG Xiubi
(Sichuan University of Science & Engineering,Zigong,643000,China)
Abstract:Multi-wavelet has many good chatacters such as orthogonality,short support,more vanishing moments,which makes up for the shortcoming of scalar wavelet.Based on introducing multi-wavelet,a new image compression method is proposed,which based on CL multi-wavelet,adopting the SPIHT,carrying on compression on the coefficient of multiwavelet.Simulated by Matlab 6.5,experimental results indicate that the quality of image is better than traditional method.
Keywords:wavelet transform;multi-wavelet;SPIHT;image compression
0 引 言
小波分析是近年来发展起来的新算法。Matlat将小波分析用于信号处理,提出了多分辨率分析的概念,给出了信号分解和重构的算法,从此开始了小波分析在图像处理中的应用研究。多小波是小波理论的新发展,多小波是指由两个或两个以上的函数为尺度函数生成的小波。多小波之所以受到世人瞩目,主要原因是它既保持了单小波的诸多优点,又克服了单小波的缺陷,在实际应用中可以把十分重要的光滑性、紧支性和对称性等完美地结合在一起。这里将充分利用多小波分解系数的结构,采用SPIHT图像压缩算法,对多小波系数进行压缩处理,得到一种比较有效的多小波图像压缩方法。
1 多小波理论
将标量域上的滤波器组和多小波拓展到矢量域上,就可以得到具有一般性的矢量小波,即多小波。对应的尺度方程和小波方程如下:
Φ(t)=∑kHkΦ(2t-k)
Ψ(t)=∑kGkΦ(2t-k)
式中:Φ(t)=[φ0(t),φ1(t),…,φr-1(t)]T;Ψ(t)=[ψ0(t),ψ1(t),…,ψr-1(t)]T;Hk,Gk分别为r×r的矩阵尺度滤波器和矩阵小波滤波器。当且仅当两个矩阵滤波器具有有限长时,函数Φ,Ψ具有紧支集。
给定一个函数f(x)∈L2(R),由多小波系数就可以给出函数的多分辨率分析(MRA)。设f=f0∈V0,则正交多尺度函数和正交多小波函数的性质为:
V0=W-1⊕V-1=…=W-1⊕…⊕WL⊕VL
由于V0=span{φl(-k),0≤l≤r-1,k∈Z},所以f(t) = ∑k∑r-1l = 0c(0)l,k φl (t-k),f(t)。可以更进一步表示为:
f(t) = ∑k∑r-1l = 0c(-1)l,k φl (2-1t-k) +
∑k∑r-1l = 0d(-1)l,k ψl (2-1t-k) = …=
∑k∑r-1l = 0c(L)l,k φl (2Lt-k) +
∑-1j = L∑k∑r-1l = 0d(j)l,k ψl (2jt-k)
由此可以得到多小波的分解算法和重构算法。
分解算法:
Cj-1,n=∑kHk-2nCj,n;Dj-1,n=∑kGk-2nCj,n
重构算法:
Cj,n= ∑kHTn-2k Cj-1,k+ ∑kGTn-2k Dj-1,k
2 SPIHT算法原理
SPIHT算法把待量化编码的小波系数分成3个集合:不重要集LIS,不重要象素集LIP和重要像素集LSP。通过初始化、分类、细化和量化步长更新等4个子过程完成嵌入编码。根据空间方向树结构,SPIHT算法将集合的分割策略定义为:
Z(i,j)=C(i,j)+D(i,j)
D(i,j)=O(i,j)+L(i,j)
L(i,j)=∑D(k,l)(1)
式中:(k,l)∈O(i,j);Z(i,j)为空间方向树;C(i,j)为树上任一节点;D(i,j)表示节点C(i,j)中所有后代(子孙)的坐标集合;O(i,j)表示节点C(i,j)中直接后代(儿子)的坐标集合;L(i,j)表示节点C(i,j)中除直接后代(儿子)外所有后代坐标的集合。
SPIHT算法编码过程通过LIP,LIS,LSP三张链表跟踪小波系数集合的重要性测试和集合分割情况。把小波图像按空间方向树的结构组织编码,编码过程中,三张链表动态更新,小波系数集合重要性测试Sn(T)的定义如式(2)所示。式中T为测试的坐标集合,如:Sn(i,j)是测试节点(i,j)系数的重要性;Sn[D(i,j)]是测试节点(i,j)的所有子孙节点中是否存在的重要系数。
Sn(T)=1,max(i,j∈Γ){|T(i,j)|}≥2n
0,max(i,j∈Γ){|T(i,j)|}<2n (2)
编码步骤:
(1) 初始化
设置初值n=log2[max(i,j∈C)|T(i,j)|];设置LIP为H中所有元素;设置LIS为H中所有元素,并以D型命名;设置LSP为空元素表。
(2) LIP表处理
检查LIP链表中的每个元素,根据式(2)输出Sn(i,j)的值。若Sn(i,j)=1,则输出T(i,j)的符号位,并移(i,j)至LSP的表尾。
(3) LIS表处理
检查LIS链表中的每个元素,当元素为D型,根据式(2)输出Sn[D(i,j)]的值。若Sn[D(i,j)]=1,检查O(i,j)中每个元素并根据式(2)输出,把输出为1的元素加入LSP表尾并编码其符号位;把输出为0的元素加入LIP表尾。若L(i,j)为空元素,则把(i,j)元素从LIS表中删去;若L(i,j)不为空元素,则把O(i,j)中每个元素以L型命名加入LIS表尾;若元素为L型,则根据式(2)输出Sn[L(i,j)]。若Sn[L(i,j)]=1,从LIS表中删去(i,j)元素,并将O(i,j)中的每个元素以D型命名加入LIS表尾。
(4) LSP表处理
检查LSP表中的每个元素,输出表中元素小波系数在第n层的数值。
(5) 当n=n-1时,若编码率没有达到指定要求,返回步骤(2)重复此过程;若编码率已达到指定要求,编码结束。
3 基于多小波的SPIHT算法
根据前面分析的SPIHT算法,结合多小波,设计出一个可分级图像编码系统。该系统包括图像多小波变换、SPIHT编码和算术编码等几个部分。系统流程图如图1所示。
图1 图像编/解码框图
与传统小波相比,CL多小波具有更为优良的属性:CL多小波的尺度函数和小波函数均具有紧支撑属性,使其具有良好的局域性;尺度函数分别与小波函数对称和反对称,保证其具有线性相位;正交性使其变换后保持能量恒定等。对其进行平衡处理后不仅可使2个低通滤波器和两个高通滤波器的响应分别重合,还可较好地改善系统本身低通、高通滤波器的响应性能。
4 试验及仿真结果分析
本文用Matlab中Woman来进行试验,采用Matlab 6.5进行仿真。
4.1 图像的多小波分解和重构
图像的多小波分解和重构仿真见图2(程序略)。
多小波分解后的图像左上角为低频子带,其余为高频子带。从图2可看出,经过变换后的高频子带基本上为黑色,即能量很低,能量被集中到了低频子带。经过多小波重构后还原出来的图像主观效果好,图像较清晰。
4.2 图像压缩
这里分别采用单小波和多小波进行图像压缩并对仿真结果进行分析。
图2 多小波分解和重构图像
图3和图4分别为用单小波和多小波进行图像压缩的图像效果(程序略)。
图3 单小波的SPIHT算法图像压缩效果
图4 多小波SPIHT算法图像压缩效果
从图3和图4看出,采用多小波对SPIHT算法进行改进后恢复图像清晰,效果较好。
5 结 语
多小波图像压缩与单小波图像压缩有所不同。首先多小波变换在分解之前要对图像数据进行预滤波,图像重构时需要做后置滤波;
其次由于有多个尺度函数和多个小波的存在,在图像的多小波变换系数中同一尺度且同一方向上存在两个或两个以上对应不同小波细节的子图,做一次多小波分解会得到比单小波分解更多的子图,子图增多使得处理更加灵活。根据实验结果和多次实验发现,对于要求较好的图像质量、较低比特率或者提出一些特殊要求时,使用多小波的压缩算法具有较好的特性。从一定角度上来说,基于多小波的SPIHT压缩编码方法是一种有效的压缩编码方法。
参考文献
[1]胡昌华,张军波,夏军,等.基于Matlab的系统分析与设计小波分析[M].西安:西安电子科技大学出版社,1999.
[2]宫铭举,王汝霖.基于CL多小波与SOFM的图像矢量量化[J].计算机应用研究,2005,26(8):238-240.
[3]何文章,吴爱弟,宋国乡.基于双正交多小波图像压缩方法[J].东北师范大学学报,2004,36(2):121-124.
[4]田海振,田华,程正兴.多小波及其在图像处理中的应用[J].信阳师范学院学报,2004,17(1):100-103.
[5]张婷,杨济安.对图像压缩中的SPIHT与SPECK算法的研究[J].广西民族学院学报,2006,12(1):99-103.
[6]邵华平,覃征,钱清泉.多小波的构造与应用[J].湖南师范大学学报:自然科学版,2005,28(1):31-36.
[7]刘雄伟,成礼智.基于EBCOT和多小波的图像压缩编码[J].微计算机信息,2006,22(3):230-231.
[8]李双虎,陈洪京.小波图像压缩EZW编码算法研究[J].河北省科学院学报,2005,22(4):1-3.
[9]张会红.一种基于Matlab的图像变换编码的研究方法[J].计算机与数字工程,2005,33(2):64-66.
[10]安丹丹,王宝珠.一种改进的嵌入式零树小波编码算法[J].信息通信,2007(5):38-40.
[11] 陈耀明.小波变换在图像数据压缩中的应用[J].现代电子技术,2007,30(6):136-138.