赵兴朋 , 刘卫东 ,, 于 岗
(1.中国海洋大学 信息科学与工程学院,山东 青岛 266100;2.海信电器股份有限公司 山东 青岛 266071)
图像缩放技术在高清数字电视、多媒体投影机、智能手机等终端显示设备中的应用非常广泛。特别是由于非线性滤波器的滤波效果相比线性滤波器的滤波效果更加真实细腻,所以基于非线性滤波(如多相滤波)插值的缩放技术得到了广泛的研究并日渐成熟。但是该技术所带来的振铃现象是应用中必须加以处理的问题。具体表现如一帧图像中,相邻两个不同物体交界处,在图像放大后会产生类似于波纹状的振荡现象——称之为振铃。特别是当这两个物体的像素灰度值差别很大时,振铃现象尤为明显,图像也更加模糊。
所以,对于某些清晰度要求比较高的显示设备(如1 920×1 080 p全高清数字电视),图像在缩放后,一般都要对其进行去振铃操作,以达到较好的显示效果。常见的图像缩放去振铃技术,为了达到去振铃的目的,会在振铃产生的小区域连同周围相当大的一部分区域内,用某种粗糙滤波代替原先的非线性滤波。这样做的后果是把图像缩放后的相当一部分细节信息丢失。而本设计所采用的去振铃算法针对上述缺点进行了优化和改进。
振铃现象产生的主要原因是图像在变换过程中高频信息的丢失,高频分量丢失越多,振铃越严重。而低通滤波器的特点是通低频阻高频,尤其是理想低通滤波器的高频部分会被完全滤掉。因此,当一帧图像的全部像素点通过低通滤波器后,图像中不同物体交界处的高频细节丢失,振铃现象由此产生,并且低通滤波器越是趋于理想振铃现象越明显[1]。
图1是表示图像缩放过程中产生振铃现象的原理组图。图中A是理想低通滤波器的空间域图。有1单位冲击脉冲f(x)(类似于图像中不同物体的交界处),通过该低通滤波器后(f(x)卷积h(x)),其空间域波形如图1中B所示[2];显然单位冲击脉冲通过低通滤波器之后,变成了幅度向两边延伸且逐渐减小的振荡波形,这种类似于波纹状的振荡就是振铃现象产生的根本原因。图中C是B的俯视平面图[3]。
本设计中图像缩放所采用的多相滤波器的系数分布如图中D所示,其特性非常接近理想低通滤波器(如A)。由上述介绍可以想象到当一帧图像经过该多相滤波系统时必然会产生较严重的振铃现象。
图1 图像缩放产生振铃现象原理图Fig.1 Schematic diagram of ringing in image scaling
由振铃产生的原因可知,要降低图像缩放后的振铃现象且尽可能的保持原图像的真实细腻,我们只要在原图像的平坦区域采用多相滤波器,而在像素灰度值剧烈变化区域采用线性滤波器就可以实现[4]。
本文所采用的线性滤波器是系数呈三角特性分布的六抽头滤波器,抽头系数的具体大小要根据相应的插值位置计算得到。其频谱图如图2中A所示,显然相比理想低通滤波器的频谱特性,线性三角滤波器对高频信息的屏蔽就没那么理想,进而达到去振铃的效果。我们怎样寻找需要去振铃操作的目标插值像素点呢?
本文所用多相滤波器是6抽头的,插值像素点的大小由插值像素位置的临近6个原像素点通过多相滤波器计算得到。全局差值最大值g_max(global_max),即6个相邻像素依次相减,绝对值最大者,其求解方法如图2中B所示。局部差值最大值loc_max(local_max),求解方法如图中C所示。图中l_max(left_max)表示插值点左侧差值绝对值的最大值,r_max(right_max)表示插值点右侧差值绝对值的最大值。两者的具体求解过程同g_max类似,只是所涉及到的原像素点个数不同(图2中C所示:左侧为实线连接的3个像素点,右侧为虚线连接的3个像素点,中间重叠两个,共4个)。然后选择l_max和r_max较小者作为loc_max。
图2 线性滤波器频谱及全局/局部差值最大值框图Fig.2 Illustrative diagram of linear filter spectrum and global/local maximum difference
这样求解g_max和loc_max的意义何在?我们来看图3去振铃算法原理图,当插值像素位于插值点0时,因为插值点0所用到的有效像素点都在同一个物体1中,所以计算得到的g_max与loc_max近似相等,表示这6个像素点不包括边界信息,此时不需要对插值点0进行去振铃操作;当插值像素位于插值点1时,其所用到的有效像素点分布于不同物体1和2中,此时计算得到g_max会远远大于loc_max。本文假定只要g_max大于10倍的loc_max就认为此插值点包含了边界信息,也就是包含了丰富的高频分量,需要对该插值点(插值点1)进行去振铃操作,即用线性三角滤波器代替多相滤波器来对原素点进行滤波[5]。
如上,我们只在物体交界处附近(插值点1)进行去振铃操作,而远离物体交界处(插值点0)不进行去振铃操作,从而达到该去振铃区域尽量去振铃不该去振铃区域尽量不去振铃的目的。这样既减弱了振铃现象的影响,又尽可能地保持了原图像的真实细腻[6]。相比其他一些算法所介绍的,在离交界处相当大的区域内不加选择的一概进行去振铃操作效果要好很多。
图3 去振铃算法原理图Fig.3 Schematic diagram of deringing’s algorithm
该去振铃模块作为一个独立的功能系统可直接挂接在图像缩放模块之后。根据上述算法,其硬件系统架构框图如图4所示,该系统架构主要包括ram缓存器、dering_ena(使能信号产生)模块、global_max(全局最大值)模块、local_max(局部最大值)模块、linear_filter(线性滤波器)模块以及result_modify(结果校正)模块等6部分。其中,ram缓存器模块用来暂存上一级模块输入的数据信息;dering_ena模块产生去振铃的使能信号;global_max模块用来计算全局最大值g_max;local_max模块用来计算局部最大值 loc_max;linear_filter模块用线性三角滤波器来计算插值点像素的值;result_modify 模 块 根 据 global_max、local_max、linear_filter模块输出结果的相对关系,对由前一级h/v_scaler模块输入的插值像素进行相应地修正。图中实线包围的部分表示该去振铃架构的主要功能模块,虚线包围的部分表示其外围的连线电路、使能模块及ram缓存器模块。
图4 去振铃硬件系统架构Fig.4 Hardware system architecture of deringing
根据算法介绍,global_max和local_max这两个模块用到的硬件资源很相似,都用到了减法器、选择器、比较器等。因为本设计中的插值多相滤波器是6抽头的,所以global_max模块在硬件实现的过程中用到10个减法器,5个选择器,4个比较器[7];local_max模块的计算过程稍微复杂一些,这里按照计算g_max的方法分别求出l_max和r_max,然后将两者通过一个比较器,选出较小的一个作为loc_max输出。用到的主要硬件资源有减法器、选择器和比较器。
linear_filter模块主要是对原像素点进行线性滤波,根据前面讲述到的,本模块用到的主要硬件资源是乘法器和加法器。因为本设计中的线性滤波器也是6抽头的,所以本模块主要包括6个乘法器和5个加法器,每一个像素点与相应的抽头系数相乘,然后逐级相加,得到滤波器的最终输出结果。result_modify模块主要根据g_max与loc_max相对大小关系,用线性滤波器的输出对多相滤波器的插值像素进行修正。本模块用到的主要硬件资源有比较器、移位选择器、减法器等。
图5 FPGA验证效果对比图Fig.5 Results of FPGA verification
本设计使用的FPGA是altera的stratixIV,通过VGA接口连接显示器显示图像。当dering_ena信号未被使能时,图像显示如图5中(a)所示;当dering_ena信号被使能时,图像显示如图5中(b)所示。通过对比不难发现:缩放后的图像经过去振铃操作,中间黑白交界区域更加清晰,波纹状的振铃现象大大减弱,并且图像的其他区域依然清晰细腻;而未经过去振铃操作的图像交界区域有明显的振铃现象,画面相对模糊。可见本设计在使用较少硬件资源和基本不影响缩放图像画面质量的基础上,对交界细节处的去振铃效果是比较明显的。
[1]郑君里.信号与系统[M].2版.北京:高等教育出版社,2005:43-264.
[2]郭炜,祝永新.一种改进的自适应去振铃滤波算法及其硬件实现[D].上海:上海交通大学,2009.
[3]Gonzalez R C,Woods R E.Digital Image Processing[M].2nd ed.Beijing:Publishing House of Electronics Industry,2007:132-141.
[4]程佩青.数字信号处理教程[M].3版.北京:清华大学出版社,2007:8-322.
[5]ZHANG Bo,Ashish Koul.Dering operation for image processing:US,20100135592 AL[P].JUN.3,2010.
[6]Keshab,K Parhi.VLSI Digital Signal Processing Systems[M].3rd rd.[S.l.], 2004:34-451.
[7]徐宗琦,高璐.一种盲复原图像振铃效应的后处理与质量评价方法[J].计算机应用, 2007(4):2-4.XU Zong-qi,GAO Lu.Ringing effect postprocessing and quality assessment method of blind restoration image[J].Journal of Computer Applications, 2007(4):2-4.