APP下载

一种新的运动自适应去隔行算法

2012-03-15李火生李国平滕国伟赵海武王国中

电视技术 2012年15期
关键词:插值时域边缘

李火生,李国平,滕国伟,赵海武,王国中,范 涛

(上海大学通信与信息工程学院,上海200072)

随着集成电路技术、通信技术和显示技术的迅猛发展,以及人们对视频画面质量期望的提高,隔行显示技术逐步退出历史的舞台,逐行显示成为视频播放的主流。为了更好地利用现存的大量隔行扫描视频节目资源,需要将隔行扫描的视频通过数字化处理,转换为逐行扫描视频,也就是视频去隔行。

传统的模拟电视标准主要是隔行扫描方式,而逐行扫描方式则成为现在的数字电视标准。由于这两种标准有一个共存期,因此现在的数字电视必须有能将隔行视频转换为逐行视频的功能,所以去隔行技术的研究有着重要的现实意义[1]。

随着视频编解码技术的发展,图像质量显得愈发重要,传统的隔行显示技术已经不能满足观众对视频图像质量的要求。因此,去隔行技术应运而生,它可以消除或者极大地减少隔行视频中的扫描行、行间闪烁、锯齿,使视频画面更加赏心悦目。

1 现有的去隔行算法

隔行视频经过去隔行处理后输出逐行视频,其过程可表示为

式中:F(x-,n) 为输入的隔行视频中某一场的信号;Fi(x-,n)为插值生产的像素;F0(x-,n)为输出的逐行视频信号;x-为像素的位置;n为场的序号。可见,只有在y mod 2=n mod 2的情况下才有输入信号,也就是由偶数场中的偶数行插值获得奇数行或由奇数场中的奇数行插值获得偶数行。

通过分析可知,去隔行算法的本质是利用隔行视频中的一部分信息得到合适的Fi(x-,n)。现有的算法主要分为时域去隔行算法、空域去隔行算法和混合去隔行算法3类。

边沿自适应平均法(Edge-based Line Average,ELA)是现在用得最多的空域去隔行算法,除此之外还有直接行重复法、行平均法。直接行重复法利用行复制,把一场“填充”为一帧;行平均法利用缺失行相邻的两行做简单的平均计算来得到缺失行,然后进行“填充”;ELA是经典的空域去隔行算法,它根据图像中的纹理信息来选择用来插值的点,是这3种方法中最好的[2]。垂直分辨力的下降是这3种空域插值算法无法克服的缺陷。

常见时域去隔行方法有场混合法和场间插值法,它涉及到相邻两场的运算。场混合法利用两个相邻场合并成一帧;场插值法则由多个相邻近的场经过线性插值运算得到一帧。时域法的缺点是:运动剧烈的图像经过去隔行后,行与行之间会有“对不齐”现象,形成错位失真。

混合法把空域和时域中的信息结合起来利用,具有更好的去隔行效果,它包括运动自适应去隔行算法以及复杂度最高的运动补偿去隔行算法。本文提出的新的运动自适应算法为混合算法中的一种。

1.1 边沿自适应平均法(ELA)

ELA分为两步,第一步为检测边缘,第二步为利用边缘方向的像素进行插值。如图1所示,图中有5条斜线,变量k表示这些斜线的方向,设c(k)为边缘检测函数,其实际意义为k方向上的相关度,其值越小,表示可能性越大。D表示检测到的边缘,其中R为检测的范围[3]。插值公司如式(4)所示,设f(i,j)为像素值。本文为了算法实现上的方便,取R=3。

图1 图像中的边缘

ELA算法能很好地消除图像边缘的模糊,但当图像的边缘为接近水平方向时,要检查到这种边缘,取值须为无穷大,这种方法就无能为力了。ELA算法最大的优点是保证了输出的一帧图像中没有运动估计导致的不自然信号,同时运算简单,硬件实现容易。

1.2 场间插值法

如图2所示,为待插值的场,利用相邻两场的信息对中缺失的奇数或偶数行进行插值,得到缺失像素。

图2 利用一场信息获得另一场信息

插值算法为

场间插值法能很好地减少图像画面的闪烁,提高图像的垂直分辨力,计算复杂度低[2]。如果视频中没有运动场景,这种算法就是最优算法,但对于运动剧烈的视频则会产生较严重的运动模糊。

1.3 运动自适应去隔行算法

将图像中的像素点划分为运动像素和静止像素是运动自适应去隔行算法的一个基本步骤,对运动像素采用时域去隔行,对静止像素采用空域去隔行。运动自适应去隔行算法根据不同的运动信息采用不同的去隔行算法,在时域分辨力和空域分辨力上能达到很好的平衡。运动补偿去隔行算法复杂度高,并且对误差非常敏感,实际的应用不多。

由于视频去隔行的实际需求,很多芯片厂商提供了自己的视频去隔行函数,例如Intel公司推出的IPP库。Intel IPP库包含各种多媒体处理函数,包含视频去隔行函数。这个函数所采用的视频去隔行算法为DMA(De-Interlace Motion Adaptive)[4],这个算法综合利用时域和空域中的冗余信息,根据运动状况和边缘纹理进行滤波,它属于混合算法,其效果见第5节。

1.4 基于多帧的自适应去隔行算法

这里提出一种基于多帧的运动自适应去隔行算法,该算法充分利用了多场间的时间冗余信息,准确地进行运动检测,同时在运动检测过程中设定门限,提高运动检测的效率。除此之外,充分利用场内的空间冗余信息,进行基于边界的加权平均算法插值。实验结果表明,该算法获得了较好的显示效果。

新算法利用被检测点所在场的临近场来判断该点是否运动,也就是利用时域信息进行运动检测,算法的流程图如图3所示。该算法根据被检测点的运动情况来选择线性插值算法或是场合并算法。

图3 基于多帧的自适应去隔行算法的流程图

2 运动检测

如图4所示,设当前帧为Current,其前向参考帧按时间顺序分别为prev3,prev2,prev1,其中prev1是临近帧。设l为帧的宽度,当前像素为Current(x,t),则Current(x,y+l)为同一帧中另一场的临近像素,Current(x,y+2l)为同一场中的相邻像素。设运动检测阈值为T(本文中,根据经验取T=30),则运动检测的流程如图5所示。

图4 临近帧

图5 运动检测的流程图

Step1:把当前帧 Current中,Current(x,y-1),Current(x,y),Current(x,y+1)3 个点分别与 prev1 中相应位置的亮度值做差,并取绝对值。绝对值求和与比较,如果大于,则判断为运动场景,终止检测。否则跳转到Step2。

Step2:把当前帧 Current中 Current(x,y-1),Current(x,y),Current(x,y+1)3 个点分别与 prev2 中相应位置的亮度值做差,并取绝对值。绝对值求和与比较,如果大于,则判断为运动场景,终止检测。否则跳转到Step3。

Step3:把当前帧 Current中 Current(x,y-1),Current(x,y),Current(x,y+1)3 个点分别与 prev3 中相应位置的亮度值做差,并取绝对值。绝对值求和与比较,如果大于,则判断为运动场景,终止检测。否则跳转到Step4。

Step4:把当前帧 Current中 Current(x+l,y-1),Current(x+l,y),Current(x+l,y+1)3 个点分别与 prev1 中相应位置的亮度值做差,并取绝对值。绝对值求和与比较,如果大于,则判断为运动场景,终止检测。否则跳转到Step5。

Step5:把当前帧 Current中 Current(x+l,y-1),Current(x+l,y),Current(x+l,y+1)3 个点分别与prev2 中相应位置的亮度值做差,并取绝对值。绝对值求和与比较,如果大于,则判断为运动场景,终止检测。否则跳转到Step6。

Step6:把当前帧 Current中 Current(x+l,y-1),Current(x+l,y),Current(x+l,y+1)3 个点分别与prev3 中相应位置的亮度值做差,并取绝对值。绝对值求和与比较,如果大于,则判断为运动场景,终止检测。否则跳转到Step7。

Step7:把当前帧 Current中 Current(x+2l,y-1),Current(x+2l,y),Current(x+2l,y+1)3 个点分别与 prev1 中相应位置的亮度值做差,并取绝对值。绝对值求和与比较,如果大于,则判断为运动场景,终止检测。否则跳转到Step8。

Step8:把当前帧 Current中 Current(x+2l,y-1),Current(x+2l,y),Current(x+2l,y+1)3 个点分别与 prev2 中相应位置的亮度值做差,并取绝对值。绝对值求和与比较,如果大于,则判断为运动场景,终止检测。否则跳转到Step9。

Step9:把当前帧 Current中 Current(x+2l,y-1),Current(x+2l,y),Current(x+2l,y+1)3 个点分别与 prev3 中相应位置的亮度值做差,并取绝对值。绝对值求和与比较,如果大于,则判断为运动场景,终止检测。否则为静止场景。

3 边缘检测

物体的边缘在一定程度上决定着图像的画面质量,是图像中重要的信息;由于隔行采集图像视频,运动物体的边缘容易出现的锯齿化现象;无论何种视频去隔行技术都必须尽可能地去掉物体边缘的锯齿。为了去掉隔行视频中边缘的锯齿,首先有必要检测到边缘。

在同一场内,计算不同方向像素点的相关性来确定边缘方向,相关性越大,边缘的可能性就越大[5-6]。如图6所示,i-1,i+1为一场中相邻的两行,图中有斜线,表示边缘方向,设diff(d)为边缘检测函数,其实际意义为d方向上的相关度,其值越小,则该方向边缘的可能性越大。D表示检测到的边缘,表示使diff(d)最小情况下的d的方向。

图6 边缘检测

其相关函数为

如图6所示,该算法只能检测到有限的运动方向,无法检测到水平方向的运动;并且没有考虑到噪声对检测结果的影响。这些是该算法要改进的地方。

4 线性插值

如果检测到运动,则根据边缘的不同选用不同的像素点进行线性插值。如图7~9所示:i为当前行,i-2~i+3为一场中的相邻行,当检测到的边缘为右上45°时,则选取的点如图7所示;当检测到的边缘为左下45°时,则选取的点如图8所示;否则选取如图9所示的点。

插值公式[7]为

式中:P 为由插值获得的像素值,A,B,C,D,E,F 分别为同一场中沿边缘方向的6个点,根据与目标像素的远近分配给不同的权值,与式(5)相比,采用多个相关点进行插值能充分利用空间上的相关性,使画面更加平滑,并且后续的视频编码能获得更好的压缩效率。如果没有检测到运动,则用行场合并。

5 实验结果

图10a为ELA算法的去隔行效果,图中属于静止场景的字幕出现了模糊;图10b为场间插值法的实现效果,图中属于运动场景的赛车出现了严重的运动模糊;图10c为DMA算法效果,其画面和前两图相比,静止场景的字幕和运动场景的赛车都没有出现明显的模糊,整体清晰度改善不少,但画面不够平滑,有较为明显的颗粒。这里提出的基于多帧的运动自适应去隔行算法其效果见图10d,与图10c相比,画面平滑,运动场景和静止场景没有出现模糊,清晰度得到很大的改善。

图10e为原始隔行视频现实的情况,可以看出画面模糊不清。图10f为DMA算法处理后的效果,效果和原始视频相比有很大改善,但图10f中有些地方出现了虚影。图10h是另一种运动自适应方法[7],其处理后的画面出现了明显的运动模糊。图10g是本文提出的算法,其效果和图10f以及10h相比,运动和静止场景均比较清晰,画面流畅,在整体显示效果上有很大的改善。

图10 几种视频去隔行算法实验结果的比较

本文提出的新算法在边缘检测上和其他相关算法相比,复杂度相差无几。在运动检测时,新算法采用阈值法,提前终止检测,降低了复杂度。新算法中的插值算法通过位移的方式替代除法,降低算法复杂度。所以新算法的复杂度与其他算法相比,在整体上没有明显提高,并且实现简单。

6 小结

在总结几种经典去隔行算法的基础上,对自适应去隔行算法中最为关键的部分——运动检测算法和空域场内插值算法作了新的改进,提出了较为可靠的运动检测方法,这种算法充分利用了被检测点附近点的相关性,在一定程度上能排除噪声的干扰,提高运动检测的准确性。新算法中的插值算法和传统插值算法相比较,它更能充分利用边缘的特性,改善去隔行效果。此外,运算量小、编程实现简单等特点使得新算法具有较强的实时性,具有一定实用价值,便于在单片机、DSP、FPGA等硬件上实现。

[1]俞志峰,张乐,江浩,等.一种提升电视图像质量的自适应去隔行算法[J]. 电视技术,2010,34(S1):73-75.

[2]张应均,刘一清,余奔.一种改进的运动自适应去隔行算法[J].电视技术,2010,34(S1):69-72.

[3]蔡学森,戴金波.内容自适应与DOI的场内去隔行研究[J].计算机工程与应用,2009,45(27):151-153.

[4]Intel.Intel integrated performance primitives for Intel architecture reference manual,volume 2:image and video processing[EB/OL].[2012-01-04].http://software.intel.com/sites/products/documentation/hpc/ipp/ipp_manual/ippi.pdf.

[5]郑淑红,杨任尔,励金祥,等.一种新的运动自适应去隔行算法[J].宁波大学学报:理工版,2011,23(3):44-47.

[6]JUNG S,KIM H,HA L,et al.A novel de-interlacing algorithmbased on adaptive polynomial interpolation [J].World Academy of Science,Engineering and Technology,2009,49:301-303.

[7]毕厚杰.新一代视频压缩编码标准——H.264/AVC[M].北京:人民邮电出版社,2005.

猜你喜欢

插值时域边缘
基于Sinc插值与相关谱的纵横波速度比扫描方法
基于时域信号的三电平逆变器复合故障诊断
一张图看懂边缘计算
基于极大似然准则与滚动时域估计的自适应UKF算法
一种改进FFT多谱线插值谐波分析方法
基于四项最低旁瓣Nuttall窗的插值FFT谐波分析
基于时域逆滤波的宽带脉冲声生成技术
基于时域波形特征的输电线雷击识别
Blackman-Harris窗的插值FFT谐波分析与应用
在边缘寻找自我