基于JPEG2000的感兴趣区域压缩编码算法
2014-02-18袁建亮朱远平
袁建亮,朱远平
(天津师范大学计算机与信息工程学院,天津300387)
在实际应用中,观察者往往只对图像的某一部分感兴趣,如图片中的文字区域、医学图像中的病理部位、遥感图像中的目标物体以及交通图像中的汽车牌照等,这些区域统称为感兴趣区域(regions of interest,ROI),而感兴趣以外的区域称为背景区域(background,BG).感兴趣区域压缩重构质量的高低直接决定了对重构图像的整体评价.而JPEG2000是基于离散小波变换(discrete wavelet transform,DWT)的最新静态图像压缩标准[1],它支持对ROI编码.ROI压缩编码技术对图像中的ROI进行无损压缩或近似无损压缩(不影响视觉观察),对BG进行有损压缩,既可以满足人们对图像的质量要求,又可以降低图像传输时间和节约存储空间.图像压缩研究的主要方向有压缩编码结合人眼生理和心理视觉特性、基于分形几何的分形编码压缩、基于模型的编码技术、小波编码以及基于人工神经网络的编码等[2].目前关于图像ROI提取的研究主要有2种方法:(1)利用图像分割技术提取ROI;(2)从人眼视觉特性出发,通过模拟人眼视觉特点,寻找特定的视觉敏感区域,并将这些视觉敏感区域排序作为ROI.根据人眼的视觉特性,Claudio[3]提出提取局部极大值的6种图像处理算法.对ROI进行编码的研究也非常多,最基本的是对图像ROI采用(5/3)小波变换,对BG部分采用(9/7)小波变换的方法[4].近年来,针对ROI部分系数改进方法的研究成果较多.如Liu等提出的PSBshift[5]和MSBshift[6]就是利用JPEG2000标准中规定的2种ROI编码方法的优点,对ROI系数进行提升.还有一些针对ROI在不同领域应用的研究,将ROI编码用于图像检索[7]、身份证图像的压缩[8]以及图像车牌识别系统的图像存储系统[9]等,但这些研究只单纯地将ROI编码思想与实际应用相结合,没有对算法本身进行改进.本研究首先对JPEG2000压缩编码原理进行系统分析,然后用改进的EBCOT方法实现了基于JPEG2000的ROI有损压缩编码,最后采用混合编程进行算法仿真.
1 JPEG2000压缩过程及原理
JPEG2000压缩过程主要包括图像预处理、小波变换、量化和熵编码4部分,首先对原始图像进行预处理,然后进行小波变换得到小波系数,再对小波系数进行量化和熵编码.在解码端,采用相反过程来重构图像.图1和图2分别为JPEG2000图像编码的编解码流程[10-11].
图2 基于DWT的JPEG2000解码器流程Fig.2 Flowchart of JPEG2000decoder based on DWT
JPEG2000图像编码的具体流程为:
(1)DC电位平移.将原始图像进行区域划分,划分为互不重叠的区域称为片,将片中数据进行DC系数平移,将无符号数据转换为有符号数.
(2)分量变换.对具有多个分量的图像先通过某种变换降低几个分量之间的相关性,提高压缩效率.目前JPEG2000主要是对RGB分量采用ICT(irreversible color transform)或 RCT(reversible color transform)将色彩信息转换为频道信息,解压缩时进行相应的逆变换恢复原分量的值.
ICT的定义为
式(1)中:Y为亮度分量;Ch为蓝色色度分量;Cr为红色色度分量.
RCT的定义为
式(2)中:Y为亮度分量;U和V均为色度分量.
(3)小波变换.不同于离散余弦变换(discrete cosine transform,DCT),小波变换具有对信号进行多分辨率分析(multi-resolution analysis,MRA)和反映信号局部特征的优点.通过“变尺度”和“平移”运算,小波变换在空间域和频域上为图像提供大小可变的滑动窗口,在不同的尺度上对图像进行分析,获取图像在不同空间域和频域上的局部特征.对图像信号进行多级小波变换,可得到不同空间分辨率的图像逼近,使得压缩码流具有空间分辨率可分级的特性.这一特点允许压缩码流在不同的分辨率解码器上解码显示[12].
JPEG2000采用的小波算法为小波提升算法,利用5/3或9/7滤波器组对分块的图像进行提升运算,前者可用于有损或无损图像压缩;后者只能用于有损图像压缩,其基本思想是将每一级滤波运算分解为分裂、预测和更新3个过程.二维Mallat算法采用了可分离的滤波器设计,相当于分别对图像数据的行和列作一维小波变换,对图像(m×n)进行1次离散小波变换分解(式(3)~式(6))得到 4个子频带 a(LL)、v(LH)、h(HL)和 d(HH),其中 a(LL)表示图像中的低频信息,v(LH)表示垂直方向上的高频信息,h(HL)表示水平方向上的高频信息,d(HH)表示对角线方向上的高频信息,N层小波分解就是不断地对低频信息a(LL)进行分解的过程.3层离散小波变换的频率分布情况如图3所示.
式(3)~式(6)中:a1代表低频信息;h1代表水平方向上的高频信息;v1代表垂直方向上的高频信息;d1代表对角线上的高频信息.
图3 3层离散小波变换的频率分布情况Fig.3 Frequency distribution of 3-layer DWT
(4)量化.经过N级小波变换,得到(3N+1)个子带.由于每个子带的小波系数反映了图像在不同频域的特征,具有不同的统计和视觉特性,因此对每个子带采用不同的量化步长进行量化.量化后的小波系数用符号和幅度值来表示.
(5)熵编码.熵编码在JPEG2000里实现的是优化截断的嵌入式块编码算法(embeded block coder with optimized truncation,EBCOT).该算法采用2层编码结构,tile1编码分为位平面编码和基于上下文的算术编码2部分,tile2编码是分层、打包和形成码流的过程.这层编码完成了JPEG2000标准具有的许多优良性能,如压缩质量和分辨率可分级性.分层装配的目的是按率失真最优的原则,选取合适的截断点截断每一分块的压缩码流,装配成具有分辨率可伸缩性(RLCP)或质量可伸缩性(LRCP)的满足预定编码长度的最终码流[13],如图4所示.
图4 熵编码形成的码流结构Fig.4 Code-stream structure formed by entropy coding
2 感兴趣区域ROI压缩编码算法
在实际的处理过程中,要实现ROI以高于BG的质量和优先级编解码,就要通过提升ROI对应的小波系数或降低BG对应的小波系数来实现.实现ROI编码就是在图像编码的基础上增加ROI区域的确定过程、ROI模板生成过程、小波系数调整和ROI形状及位置信息的编解码过程以及由此引起对原算法的相应调整过程.
2.1 最大偏移法(Max shift方法)
最大偏移法实现ROI的编码原理如下:(1)在空间域确定ROI区域;(2)在小波域生成ROI模板;(3)判断所有属于BG的小波系数,确定其最大值max(bg)和 S,使 S=INT[log2|max(bg)|],INT 表示取整;(4)对所有属于ROI的系数进行提升,即乘以2S使对于任意属于ROI的小波系数都大于等于2S,然后对处理后的小波系数进行编码.在解码端,首先解码S值,然后解码所有的小波系数,那些大于2S的ROI系数被平移到它们最初的值[14].
Max shift法与一般方法的比较情况如图5所示.
图5 Max shift法与一般方法的比较Fig.5 Compression of Max shift method and general method
与一般的基于尺度方法相比,Max shift方法的优点是不用编码ROI的形状和位置信息(因为ROI系数被完全提升),可以对任意子带进行提升,实现任意形状的ROI编码.但它也有对应的不足之处,如在解码BG之前必须完全解码ROI,不能随意调节S值以获得相对ROI不同的优先级.可以将此ROI编码思想用于其他编码算法以实现ROI编码.
2.2 EBCOT方法
本研究采用改进的EBCOT方法来实现ROI的有损压缩编码,算法流程如图6所示.
图6 基于EBCOT方法实现ROI有损压的码流程图Fig.6 Flowchart of ROI lossy compression based on EBCOT method
算法的具体步骤为:
(1)确定缩放比例S和图像的ROI模板,找出属于ROI区域的小波系数.
(2)将小波系数表示成比特平面,然后对最高有效的S个位平面用EBCOT算法进行编码.对于BG区域,始终编码为0,并且重要性标志一直设为0;对于ROI区域,按照正常的编码方法进行编码.
(3)在前S个比特平面编码完成后,再次从第1个比特平面开始编码,对前S个比特平面进行第2次编码.对ROI区域内的小波系数跳过编码,对其余小波系数采用正常的编码方法进行编码.
(4)对S比特平面以下的所有小波系数(包括ROI区域和BG区域)按照EBCOT编码方法进行编码.
在解码端,由于没有BG系数的移位,只需要按照码流的顺序进行解码即可.因为ROI的编码优先于BG区域的编码,所以当码流被截断时,ROI的解码质量肯定高于BG的解码质量.
3 压缩重构图像的判别标准
在有损编码的算法中,由于删除信息冗余度的同时也将不相干信息删除,因此在解码时不能精确恢复原始图像,只能对原始图像进行近似重构.假设原始图像的像素个数为m×n,灰度f(xi,yi),i=(1,2,…,n),j=(1,2,…,m),经过压缩后重构图像的灰度为f′(xi,yi),通用的评价重构图像指标有MSE和PSNR.MSE是衡量“平均误差”的一种较方便的方法,可以用于评价数据的变化程度,在图像中反映的是压缩图像与原图像对应像素差值的累积和,在实际中,经常用到的是峰值信噪比(PSNR).当PSNR超过30db时,人的视觉很难分辨出原始图像与重构图像的差别[15].
4 算法仿真实验
4.1 实验过程
对于实际生活中的大量文本图像,感兴趣区域通常仅为文本内容,对图像信息要求并不高,所以在尽量保持文本内容可读的前提(低倍率压缩ROI)下,高倍率压缩BG信息,用最小的存储空间来保存和传输文本图像.基于此目标,在Visual Studio 2010和MATLAB R2011a环境下,对基于JPEG2000的ROI压缩编码算法进行实验测试,选择不同的图像,手工指定图像上的ROI,即文本区域,然后在压缩时对ROI和BG分别指定不同的压缩率获得重构图像.将不同压缩率的ROI与BG自由组合,得到不同压缩率的重构图像.实验中,选用大小为1600×1200×3的彩色图像作为实验图像,假定文字部分作为ROI,其余部分为BG,如图7所示,对其按不同的压缩率进行压缩处理.
图7 原图像和分割部分Fig.7 Original image and segment part
4.2 实验结果及分析
采用本研究提出的方法,对BG、ROI和最终的压缩重构图像分别进行测试,得到不同压缩率与PSNR之间的关系如表1所示.
表1 不同压缩率与PSNR对比Tab.1 Comparison of different compression ratio and PSNR
由表1可以得出,本研究提出的算法对BG进行高倍率压缩,对ROI进行低倍压缩,使压缩图像在保持较高PSNR的前提下,提高压缩倍率,达到了预期的效果.为进一步考察算法的准确性,本研究采用一般压缩方法对图7进行处理,2种方法的对比结果如图8所示.
图8 压缩率与PSNR的关系图Fig.8 Relationship diagram of compression ratio and PSNR
同时,分别采用一般压缩方法和本研究方法,对6幅其他文本图像进行处理,得到平均PSNR,结果如图9所示.
图9 多幅压缩图像压缩率与PSNR的关系图Fig.9 Relationship diagram of many reconstructed images compression ratio and PSNR
由图8和图9可以得出:(1)基于ROI压缩方法的性能优于一般压缩方法,无论是高压缩还是低压缩,PSNR值均高0~2db.(2)随着压缩率的不断提高,重构图像的PSNR值逐渐减低.对于BG,压缩200~300倍后,依然具有很高的PSNR值;对于ROI区域,在允许部分信息损失的前提下,压缩100~200倍后,视觉观察变化不大;对于整幅图像,压缩50~200倍后,依然可以得到很好质量的压缩重构图像.
5 结论
本研究提出一种基于JPEG2000感兴趣区域图像压缩方法.该方法对不同区域采用不同的压缩率,对ROI进行低倍率有损压缩,对BG进行高倍率有损压缩,可以保证重要信息不丢失的前提下,高倍率地压缩BG图像.仿真实验结果表明:基于ROI压缩方法的性能优于一般压缩方法,在获得更高压缩率的情况下,压缩重构图像可以保持较高的峰值信噪比,很好地解决了压缩率和图像质量之间的矛盾.
[1]CHRISTOPOULOS C A,SKODRAS A N,EBRAHIMI T.The JPEG 2000still image coding system:an overview[J].Trans Consumer Electron,2000,46(4):1103-1127.
[2] 沈兰荪.图像编码与异步传输[M].北京:人民邮电出版社,1998:87-122.
[3]PRIVITERA C M,STARK L W.Evaluating image processing algorithms that predict region of interest[J].Pattern Recognition Letters,1998,19(11):1037-1043.
[4] WATANABE O,KIYA H.ROI-based scalability for progressive transmission in JPEG2000coding[J].Circuits and Systems,2003,2:416-419.
[5]FUKUMA S,IKUTA S,ITO M,et al.An ROI image coding based on switching wavelet transform[J].Circuits and Systems,2003,2:420-423.
[6] LIU L J,FAN G L.A new method for JPEG2000region-of-interest image coding:most significant bitplanes shift[J].Circuits and Systems,2002,2:176-179.
[7] 唐俊华,阎保平.基于用户定义感兴趣区域的图像检索算法[J].计算机应用,2002,22(11):20-22.
[8] 阙大顺,李占,高勇.基于EZW与ROI混合编码的身份照片压缩算法研究[J].武汉理工大学学报:交通科学与工程版,2005,29(3):429-431.
[9] 刘海林,李灿平,王绪本.ROI技术在车牌识别系统中图像存储方面的应用研究[J].物探化探计算技术,2002,24(4):362-366.
[10]吴贤宇.基于EBCOT的JPEG2000压缩方法概述[J].计算机与现代化,2008,157(9):106-109.
[11]冈萨雷斯,伍兹.数字图像处理[M].3版.北京:电子工业出版社,2010:334-398.
[12]张旭东,卢国栋,冯健.图像编码基础和小波压缩技术——原理、算法和标准[M].北京:清华大学出版社,2004.
[13]冯前进,陈武凡.基于内嵌块优化等级树(EBCOT)算法的图像编码[J].计算机学报,2002,25(11):1170-1174.
[14]魏琳.基于感兴趣区域(ROI)图像的压缩编码研究[D].重庆:重庆大学,2007.
[15]张铮,王艳平,薛桂香.数字图像处理与机器视觉:Visual C++与Matlab实现[M].北京:人民邮电出版社,2010.