一种改进的运动自适应去隔行算法
2010-06-25张应均刘一清
张应均,刘一清,余 奔
(华东师范大学 信息科学技术学院,上海 200241)
1 引言
虽然高清数字电视已经越来越普及,但仍然需要对传统模拟信号进行兼容。传统模拟标准如NTSC,PAL和SECAM等都包括了隔行扫描方式[1],而数字电视主要为逐行扫描方式,因此数字电视在接收传统模拟信号时一定会进行隔行转逐行变换。常用的去隔行算法可以分为空域法、时域法和混合法。空域算法直接在当前场插值得到缺失的行,而时域法涉及到了相邻场之间的运算,混合法结合了空域和时域两种方法的优势。笔者分析了这3个方面几种常见的去隔行算法,根据算法复杂度和处理效果折中考虑,提出了一种改进的、适于硬件实现的运动自适应去隔行算法。这个算法分别选择了笔者提出的结合水平边沿检测的ELA算法作为运动图像部分处理算法,并选择场插值法作为静止图像部分处理算法。另外还提出一种新的运动检测算法,使用了邻域窗口内带权重的4场隔场差值作为运动估计,并加入了一个简单的2维中值滤波器滤除由于图像噪声而引起的运动检测噪点。
2 去隔行算法设计
2.1 去隔行算法简介
去隔行算法可以分为空域法、时域法和混合法,常见的空域法有直接重复行法、行平均法和边沿自适应平均法(Edge-based Line Average,ELA)[2-4]。 直接重复行法最为简单,其通过直接重复行来获得缺失行,但会带来垂直分辨力的下降。而行平均法通过平均缺失行的上下两行来得到缺失行,也会带来垂直方向上的模糊和物体边缘锯齿。ELA算法根据图像中沿信息来进行行插值,可以消除行平均法带来的物体边缘锯齿失真。时域方法涉及到了相邻场之间的运算,常见方法有场混合法和场插值法。这两种方法都是利用相邻奇偶场插值得到逐行输出场,场混合法采用相邻场两两合并的方法。而场插值法则根据多个相邻场线性插值的方法得到缺失行,其处理效果优于场混合法。时域法的优点是保证了图像的垂直分辨力,其缺点是对于运动图像会产生错位锯齿失真。混合法有VT中值滤波法[5-6],运动自适应去隔行算法[2-9]以及复杂度最高的运动补偿去隔行算法[1]。混合法结合了空域法和时域法各自的优势,具有更好的处理效果。
考虑实现成本和处理效果,采用运动自适应去隔行算法来进行隔行转逐行变换。其算法框图如图1所示[2-9],主要包括运动检测算法以及场内插值算法(空域)和场间插值算法(时域)3个部分。运动检测算法对图像进行运动检测,然后根据检测结果K去处理选择场内插值算法和场间插值算法得到缺失行,最后与当前场已有行交织以实现逐行输出。这里的fo为输出函数,它可以是一个选择函数,根据K值是否超过阈值来选择输出哪种算法结果;同时它也可是一个非线性函数[3],根据K值处理两个算法对输出的贡献比例。这样处理的结果既利用了时域算法保证垂直分辨力的优点,又用空域算法避免了时域算法在处理运动图像上的不足。
图1 运动自适应去隔行算法框图
2.2 运动自适应去隔行算法
设计运动自适应去隔行算法的关键就是图1中3个算法的设计,以及选择合适的输出函数fo。对于基于空域的场内插值算法的选择,传统的ELA算法选择最小方向差为插值方向,但是这种算法的缺点是对于图像中的水平边沿会出现边沿误判,从而导致失真[7]。目前改进ELA的一个方向是增大计算方向差的窗口,但是并不能完全消除对水平边沿的误判。笔者提出了一种结合水平边沿检测的改进型ELA算法(见图2)。
图2 结合了水平边沿检测的ELA算法
图2为插值场的一部分,其中Pn为正在处理的待插值像素,点a~j为其上下相邻行的10个像素点。为了能够判断出水平边沿,则需要计算上下两行像素点的垂直差和上下两行行内的水平差,若垂直差远大于水平差则为水平边沿的可能性就大。垂直方向差和水平方向差定义为
式中:4c和4h是考虑临近点权重更大,且中心对称。其中VD越大表示水平边沿的可能性越大,而HD越大表示垂直边沿的可能性越大。文中取VD>4HD,则判定插值像素部分为水平边沿。
定义方向差如式(3)所示,若DMIN为方向差最小值,则定义PELA如式(4)所示,即窗口扩展了的传统ELA算法结果。算法最终的输出如式(5)所示。
由于算法首先判断了图像是否为水平边沿,因此可以在一定程度上避免传统ELA对图像水平边沿的不足。另外通过把检测窗口上下两行由原来的各3个像素扩展到各5个像素,使得方向检测扩展到约26°~154°,接近水平的边沿得到更准确方向的插值。虽然这个算法实现起来要比行平均法复杂,但总的来说实现成本并不高。
对于时域的场间插值算法,使用场插值法,其算法描述如图3所示。从图中可以看出场混合法其实是将待插场前后两场的行数据进行平均而得到缺失行。这种输出的特点既保证了图像的垂直分辨力,又使得帧率提高1倍,减少图像画面的闪烁,而且其硬件也比较容易实现。
图3 场插值法
2.3 运动检测算法
运动检测算法对于运动自适应去隔行算法来说是至关重要的,因为只有准确检测出图像的运动状态才能选择合适的插值方法以获得好的处理效果。运动自适应去隔行算法的运动检测可以既为运动块检测,也可以为逐个像素点检测[8],文中采用处理效果较好的逐点检测。一般的运动检测算法采用相邻场相邻像素的差作为运动值估计。对于传统模拟信号经视频接口芯片采样后的数字信号,只使用亮度信号来作运动检测依据。理由有3点:一是模拟视频传输过程中色度信号传输带宽低,相对亮度信号包含噪声多;二是亮度信号已经包含了红绿蓝3个色彩分量的信息,且人眼对其更为敏感;三是可以减少硬件实现成本。同时由于传统模拟信号中往往带有噪声,这些噪声使得静止图像的相邻场也有差值存在。因此运动检测算法不能只是简单地根据相邻场差值来判定图像运动状态,而需要一定的滤波处理来减小误判噪点。运动检测算法框图如图4所示。
图4 运动检测算法
为了实现运动检测,使用相邻4场数据进行检测。参考文献[7]中,使用了相隔场和相邻场来计算场差值。这样做的缺点是会由于相邻场插值后再做场差值而引入误差[9]。笔者参考了文献[8]~[9]所使用的方法,使用相隔场计算场差值。由于场差值直接从原始相隔场数据得到,因此避免了因插值而引入的误差。运动检测算法如图5所示。其中Fn场内的灰色像素点为当前插值像素点,其图像坐标为(i,j)。取其周围3×3的领域作为隔场差值的计算窗口。
图5 运动检测数据
定义隔场差值如式6所示。FDxy表示窗口内(x,y)坐标处的两相邻隔场的场差值。定义窗口总场差值FD如式7所示。窗口总差值为窗口元素场差值矩阵与其对应权重矩阵的点积。权重矩阵内中心值最大,靠边逐渐变小,表示其对当前像素点的运动估计贡献为中心最大,边上最小。窗口总场差值的数值越大表示当前像素为运动状态的可能性越大。
运动检测的输出窗口总场差值FD传输给二值化模块,其根据FD的大小是否超过设置好的阈值FDT,来判定当前像素为运动像素(1),还是静止像素(0)。由于误判为运动的后果小于误判为静止,取FDT为1/8倍的像素亮度最大值。由于图像中存在的噪声会引起一些误判,因此二值化后的数据最后经过1个3×3的二维中值滤波器(也可称为中值图像滤波器)进行滤除噪声处理。这个二维中值滤波器实际为大数滤波器,当窗口内1的个数大于等于5时,则输出值为1,表示当前像素为运动状态。
3 仿真结果分析
为了获得帧内去隔行算法对隔行图像的处理结果,先对去隔行算法常用的美国国旗照片进行处理测试。测试时使用Matlab读入照片,并进行去隔行处理。然后分别用ELA和本文提出的结合了水平边沿检测的ELA算法进行插值处理,最后输出。利用Matlab视频图像处理包里提供的峰值信噪比(Peak Signal to Noise Ratio,PSNR)工具,计算得到的3种插值算法的处理后与原图的PSNR如表1所示。从图6中看出,本文算法对旗面上水平边沿的处理效果要优于ELA算法。
表1 各插值算法PSNR
图6 3种图像对比
对文中提出的运动检测模块的测试,笔者使用Mat⁃lab中的vipmen视频进行检测。通过Matlab提供的视频图像处理包工具,获取vipmen第5秒的4帧图像(此时图像为一男子从屏幕右边走入),然后根据本文算法进行处理。处理结果如图7所示,其中中间图像为运动检测模块检测出的二值化图像,白色部分表示运动物体。由于图像噪声的影响,可以看到很多错误检测噪点。在经过了一个3×3的中值图像滤波器后,大部分错误噪点被滤除。注意对一些大块的错误检测并不能通过中值滤波器消除,同时男子身体部分也存在大块未被检测出的区域。但从整体处理效果上来看,本文的运动检测算法可以满足运动自适应去隔行算法的要求。
图7 3种处理结果
4 小结
在总结各种去隔行算法的基础上,对运动自适应去隔行算法中的空域场内插值算法和运动检测算法做了改进。其中针对传统ELA算法对图像水平边沿处理的不足,添加了水平边沿检测,并加大了ELA窗口,使得其能适应角度更大的沿。另外,提出了一种新的运动检测算法,使用了领域窗口内带权重的4场隔场差值作为运动估计,并利用2维中值滤波器滤除由于图像噪声而引起的运动检测噪点。仿真测试结果显示笔者提出的以上两种算法处理效果与以往算法相比都有所提升,且算法简单,易于实现。
[1]JACK K.视频技术手册[M].5版.杨征,田尊华,张杰良,等,译.北京:人民邮电出版社,2009.
[2]TAI S C, YU C S,CHANG F J.A motion and edge adaptive deinterlacing algorithm[C]//Proc.2004 IEEE International Conference on Multimedia and Expo.[S.l.]:IEEE Press,2004:659-662.
[3]SHAHINFARD E,SIDAHMED M A,AHMADI M.A motion adaptive deinterlacing method with hierarchical motion detection algorithm[C]//Proc.15th IEEE International Conference on Image Processing.[S.l.]:IEEE Press,2008:889-892.
[4]杨宇红,张文军,董云朝.一种自适应去隔行算法及其电路设计[J].数据采集与处理,2004(3):334-337.
[5]罗宁,方向忠,张文军.便于硬件实现的去隔行算法研究[J].电视技术,2004(10):8-10.
[6]李成奇,何云斌.基于FPGA优化运动检测去隔行算法的设计[J].哈尔滨理工大学学报,2008(5):67-70.
[7]JUNG Y Y,YANG S,YU P.An effective de-interlacing techniques using two types of motion information[J].IEEE Transactions on Consumer Electronics,2003,49(3):493-498.
[8]SUN Hongbin,ZHENG Nanning,GE Chenyang.An efficient motion adaptive de-interlacing and its VLSI architecture design two types of motion iInformation[C]//Proc.IEEE Computer Society Annual Symposium on VLSI.[S.l.]:IEEE Press,2008:455-458.
[9]SHAHINFARD E,SIDAHMED M,AHMADI M.An improved motion a daptive deinterlacing method using variableblock-sizemotion detection[C]//Proc.2007 IEEE International Symposium on Signal Processing and Information Technology.[S.l.]:IEEE Press,2007:122-126.