一种基于小波变换的图像压缩方法与实现
扫描二维码
随时随地手机看文章
随着计算机、通信、电子信息技术的快速发展,人们的生活与图像紧密相连,如数字电视图像、3G通信、彩信、导航系统图像、视频图像防盗系统等。然而图像信息包含的信息量巨大,这给储存、处理和传输带来了很多困难,这也是相关技术发展的瓶颈。不断地增加信道带宽和储存容量并不能解决根本问题,而现有技术已经显得力不从心。解决问题的根本就是必须要对图像信息进行压缩处理,在保证一定图像质量的基础上,能用尽可能少的信息量表示重构的原始图像,即用最少的信息还原出最近似原始图像的重构图像。图像压缩技术在20世纪60年代后开始发展起来,80年代小波变换的理论被提出后,图像压缩技术备受关注并成为热门的研究技术。
1 图像压缩技术
1.1 图像压缩的可能性
图像信息能够进行压缩处理是因为图像具有以下特点:(1)在空域上,图像具有很强的相关性;(2)在频域上,图像的低频分量多,高频分量少;(3)人眼在观察图像时有暂留和掩盖现象,因此,可以去除一些信息又不至于影响视觉效果。
1.2 图像压缩技术的发展
一般将基于信息论和数字信号处理的图像压缩技术称为第一代压缩技术,而将结合人类视觉特性、心理特性的图像压缩技术称为第二代压缩技术。第一代压缩技术以信源编码理论为基础,使信源的概率分布尽可能非均匀或是去除信源符号间的相关性,从而达到压缩的目的。第二代压缩技术则注重于利用人类的生理特点来获得高压缩比,涉及的理论领域多,如基于分形理论、小波理论等。小波理论在近三十年发展迅速,成为图像处理的核心理论。图像压缩的国际新标准JPEG2000就是采用基于小波理论的新一代压缩技术。
2 小波变换
2.1 小波及相关概念
小波是一类在有限区间内快速衰减到0的函数。小波分析就是将信号分解为原小波(也叫小波基)函数不同位移和膨胀的小波。而小波变换就是采用小波理论,将原始信号进行处理,使其具有某些更适合后续处理的时频特性。小波变换因具有良好的空域、频域局部化,多分辨率,时间复杂度低等特性,特别适合处理非平稳信号,数字图像是典型的非平稳二维信号。
2.2 图像的小波变换
图像小波变换采用二维小波变换快速算法,就是不断将上一级图像分解成4个子带。以原图像为初始信号,经过一组高通和低通滤波器,将原始信号分解成4个子带,即一个低频子带(LL)和3个高频子带(HL、LH、HH)。其中,LL是近似图像,HL是水平细节图像,LH是垂直细节图像,HH是对角细节图像。这叫作一级小波分解,这种分解可以迭代,但是只针对上一级的低频子图像,理论上可以进行无限级分解,但是在图像压缩上,需要考虑重构图像的质量,所以最好不超过5级,一般采用3级小波分解。图1是小波三层小波分解示意图。
图像进行小波变换后,并没有实现能量的压缩,而只是对整个图像的信号能量进行重新分配。低频子图像包含了大部分的图像信息,高频子图像上大部分点的数值都接近0,越是高频这种现象越明显。对于一个图像来说,表现一个图像最主要的部分就是低频部分。所以可以充分利用这一变换后的特性,采用适当的方法对变换后的小波系数进行组织,最常用的方法就是只保留低频系数,对其进行小量化,而用大量化将高频系数尽可能置0,以实现图像信息的有效压缩。基于小波变换的图像压缩处理过程是:将输入的原始图像进行小波变换,根据处理需要将小波变换的系数矩阵进行量化编码,再通过小波逆变换重构图像。
3 算法与实现
3.1 算法描述
任何图像信号经过拍摄、扫描、传输等方法存储到计算机内进行处理时,都不可避免地包含各种噪声信号,而噪声信号往往是导致信噪比下降的主要因素,导致原始图像在后续的处理中效果不尽人意。研究发现,所有噪声几乎都集中在高频率部分,所以可以先对图像进行高频去噪处理。
本文算法步骤如下:
(1)利用Matlab软件提供的小波工具箱中的函数ddencmp和wdencmp函数对输入的图像用小波进行除噪处理。利用这两个函数去噪,有4个去噪参数可供选择,不同的参数有不同的效果。
(2)将经过小波去噪处理后的图像进行小波变换。在这里最关键的就是对小波基的选择,因为不同的小波函数具有不同的时频局域性,对恢复的图像质量至关重要。小波基函数在选择上一般要遵循的原则是:具有紧支集、正则性好、消失矩大。紧支集可以无冗余地表征图像信号;正则性可获得好的图像特征,即小波的正则性越大,分解后的小波图像各高频子带的能量就越集中于图像的边缘附近;消失矩则表明了小波变换后信息能量的集中程度,消失矩越大,分解后的能量就越集中在低频子带。Haar小波基是最早、最简单的具有上述特性的函数,本文分别采用bior2.6和Haar小波基函数进行小波分解。
(3)采用量化编码对小波变换后的图像信号进行压缩处理。
(4)对以上3个步骤进行逆变换,重构原始图像。
3.2 算法的实现
使用Matlab软件编写程序实现算法。
(1)图像去噪程序
load zhxh %装入要处理的小孩头像图片
x=zhxh;
subplot(121);colormap(map);image(x);title(′原始图像′);axis square;
[thr,sorh,keepapp]=ddencmp(′den′,′wv′,x);
thr=thselect(x,′rigrsure′); %采用去噪参数’rigrsure’,
还可以使用参数’heursure’,’sqtwolog’,’minimaxi’
[xc,perf0,perfl2]=wdencmp(′gbl′,x,′bior2.6′,3,thr,sorh,keepapp);
subplot(122);colormap(map);image(xc);title(′去噪后图像′);axis square;
表1为使用不同的去噪参数,对图像能量的处理结果。