洪惠群
(阳光学院人工智能学院,福建福州 350015)
去隔行算法是实现视频信号从隔行扫描到逐行扫描格式转换的关键技术,其实质是对隔行电视信号进行插补,重建奇偶场中缺少的行信号,将场图像还原成帧图像[1,2].
传统的去隔行算法主要分为场间去隔行算法、场内去隔行算法和混合去隔行算法[3].场间去隔行算法主要利用时间上相邻的前一场或后一场的数据进行插值,可以消除闪烁,保护细节,提高图像的垂直分辨率,比较适合处理静止场景.当处理运动场景时,常会产生严重的运动模糊、齿状、羽化等现象[4].场内去隔行算法主要利用空间上同一场相邻数据进行插值,丢失另外一场画面的部分细节,能较好地消除闪烁、羽化或锯齿等问题;但存在垂直分辨率下降、几何失真及部分区域较模糊、细节表现不足等现象[5].混合去隔行算法主要有运动补偿、中值滤波、运动自适应等算法,综合了场内去隔行算法和场间去隔行算法,具有较好的去隔行效果,但计算量偏大,垂直分辨率不高[6].
其中,混合去隔行算法中的运动自适应算法是根据运动信息将图像划分为静止区域和运动区域,对静止区域采用场间去隔行算法[7],对于运动区域采用场内去隔行算法,计算量相对较小,能够有效减少硬件开销,能够提高静止区域的垂直分辨率,并有效消除运动区域的羽化、重影等现象,但无法提升运动区域的垂直分辨率,当场景中存在运动较快的空间周期模式运动时容易产生运动虚像[8].因此,本文以传统的运动自适应算法为基础,通过改进算法中的动静检测方法[9],预先对视频进行插值点运动状态判断,能更好的识别视频中运动区域和静止区域,提高其抗噪声能力.改进后的算法具有更好的静止物体边缘保持能力,能够根据图像内容自适应的调节运动静止加权权重,达到更好的去隔行效果.
改进的运动自适应去隔行算法主要由内容自适应动静检测模块、场内插值和场间插值的权重自适应调节模块、静止区域插值模块和运动区域插值模块等组成.本文主要在动静检测方面进行试验与改进.系统的工作流程如图1所示.当隔行扫描视频帧输入时,系统采用本文改进的运动自适应去隔行算法进行动静检测,根据检测结果判断该视频帧中的静止区域和运动区域范围,并对静止区域和运动区域分别进行场间去隔行插值和场内去隔行插值,随后将两个区域合并成视频帧进行输出.在视频动静检测过程中,本文采用基于内容优化的双边滤波器进行算法改进.
图1 系统的工作流程图Fig.1 Flow Chart of the System
基于内容优化双边滤波改进的动静检测方法是本文改进的运动自适应算法中重要的一个步骤,在进行动静检测前,先对视频进行预处理得到对应的帧差信号(由两帧的各个点差值绝对值组成的一幅图像).为了判断某个像素是处于运动区域还是静止区域,如果采用单点测试,由于噪声影响,鲁棒性太弱.因此,通常都是判断以这个像素点为中心的一个窗口内的帧差信号的绝对差的总和(SAD) 或者差值的平方和(SSE) 是否小于某个阈值,或者利用计算结果做归一化,使之成为场内插值和场间插值的加权权重[10-12].如果采用 SSE 进行判断的方式,本质就是判断以该像素为中心的窗口内各个像素组成的向量的欧氏距离是否小于某个阈值,即为对帧差平方信号进行平滑滤波,判断滤波后的某个像素的帧差平方信号是否小于一定的值.具体计算公式如下:
(1)
(2)
在以往的研究中,通常卷积核 K 采用 box filter,即对窗口内的所有像素求平均得到的用于判断动静区域的值.但是这种方法存在许多弊端.
首先,窗口内每个像素点采用相同的权重,并未考虑空间上每个像素点对中心点的距离相关性.其次,窗口大小是固定的.如果窗口太大导致静止物体的边缘像素被误认为运动,而如果窗口太小则鲁棒性太差,容易出现许多误判.再有,采用固定阈值,无法对视频内容进行区分.由于视频编码后视频纹理区域编码噪声大,而平坦区域噪声小,如果采用固定阈值,容易导致视频纹理区域更加趋向于被判断为运动区域,而平坦区域更趋向于被判断为静止区域.
为了克服上述三个问题,本文提出了一种基于内容优化双边滤波运动自适应去隔行算法.该算法具体实现如下:
(1)假设输入图像为 F(n),F(n+1),两幅图像的某一像素 (x,y) 差值平方为:
Dl(x,y,n)=(Fl(x,y,n)-Fl(x,y,n+1))2
(3)
其中,Fl为图像的亮度信号.为了克服窗口内采用相同权重所带来的动静区域判断的空间局限性,本文采用空间上不同的权重的卷积核来表示空间的某个像素对中心像素(x,y) 的相关度不同,改进了传统采用相同权重的卷积核的计算方式.具体表示如下:
通过多次试验,将卷积核Kl设为:
(4)
卷积结果可以看作时间上的梯度值 Gt,计算公式为:
Gt=Kl*Dl
(5)
通常视频中的作为物体的前景和背景具有不同的亮度信息,为了得到更好的判断静止者静止背景边缘像素,本文提出了一种类似双边滤波器的值域判断,利用值域信息对空间滤波器系数进行调整,得到更好的动静判断结果.具体实现如下:
假设像素 F(k,l,n) 在以像素 F(x,y,n) 为中心的卷积窗内部,则它们的差值为:
δ(k,l,n)=|F(x,y,n)-F(k,l,n)|
(6)
对差值进行归一化:
(7)
其中,CLIP 为截至函数,表达式如下:
(8)
(2)利用值域差值对卷积核进行优化,假设空间上像素 (k,l) 的权重为:ωs(k,l)
则优化后的卷积核上像素 (k,l) 的权值为:
Kt(k,l)=ωv(k,l)·ωs(k,l)
(9)
由此可以得到时间的差值,即时间梯度:
Gt(n)=D(n)*Kt
(10)
视频中垂直方向细节部分在去隔行时,使用场内插值方法,会产生剧烈抖动,在改进的算法中,需要利用场间插值方法来弥补垂直方向上的高频纹理数据,因此,在进行动静检测时,其结果依赖于时间方向的梯度与空间垂直方向上的梯度的比值.也就是说,如果空间垂直方向的梯度越大,在进行动静检测时,对时间轴上的变化容限越大.
为了计算空间上的垂直梯度,采用Sobel 卷积核如下:
(11)
通过 Sobel 核卷积,可以得到垂直梯度值:
Gv(n)=F(n)*Kv
(12)
最终本文根据空间上的梯度和时间上的梯度的比值,可以得到某个像素的运动和静止的权重W(x,y,n).
(13)
其中,Gt(x,y,n)为帧 n 像素点(x,y) 的时间梯度,Gv(x,y,n) 为帧 n 像素点 (x,y) 的空间梯度,为比例系数.
图2 测试视频帧1Fig.2 Frame 1 of the Tested Video
为了试验验证本文中提出的动静判断方法,本文采用多种测试序列进行测试,同时为了简化方法,并突出动静判决这个主题,本文的场内插值仅使用简单的 LA,场间仅使用当前帧的同位置像素.由于篇幅有限,下面仅举其中HQV 测试视频的两个实验帧作为例子.
实验帧一采用的是Flagtest测试序列,在Flag test中,某帧的图像如下图2所示.
它的特点是,旗帜一直处在运动中,背景静止,但是存在很大的噪声,前景叠加了一个箭头.
图3 测试帧1传统算法归一化权重图Fig.3 Traditional Algorithm Normalizing Weight Graph of Tested Frame 1
对于测试帧1,如果采用传统的动静判决方式,由于窗口选择和阈值都是固定,很难准确将带有噪声的背景和缓慢移动的旗帜很好的区分开,且由于采用了窗口的 boxfilter,它的边界存在很大的过渡空间,导致前景中的箭头的边缘容易受到后面的旗帜运动的干扰,偏向于判断为运动而使用场内插值导致垂直分辨率下降,并且产生抖动.
采用传统的动静判决方法得到的场内插值和场间插值的权重图如下图3所示,为了绘图方便,权重被归一化到 0~255.权重值越小则场间插值权重越高,反之则场内插值权重越高.
由图3可见,采用传统动静判决方法,背景由于存在很大的噪声干扰,出现比较多的灰色点,并且场间插值权重并没有降到足够低.其次,由于每个像素都是由一个窗口内的像素的差值平均而来,旗帜的边缘存在很大的过渡带.图3上可见,前景的箭头周边几乎都已经偏向白色.
图4 测试帧1改进算法归一化权重图Fig.4 Improved Algorithm Normalizing Weight Graph of Tested Frame 1
而使用本文提出的算法得到权重图如下图4所示,同样,为了作图方便,本文将权重映射到 0-255.由图4中可见,背景的噪声干扰被很好的抑制,并且旗帜的周边过渡带比较窄,运动和静止的像素被很好的区分开,而且图中还能够很容易的识别的箭头的形状,静止的箭头边缘被很好的保持下来.并且,本文提出的基于内容的自适应方法,能够对图像中水平线的加权权重进行很好的调节,水平线的场间插值权重被提高,能够有效的抗闪烁.图5,图6分别代表这两种算法的去隔行效果.
图5 测试帧1传统动静检测方法去隔行效果Fig.5 Traditional Static and Motion Detection De-Interlacing Effect of Tested Frame 1图6 测试帧1改进的动静检测方法去隔行效果Fig.6 Improved Static and Motion Detection De-Interlacing Effect of Tested Frame 1
实验测试帧2采用的是 Detail test 测试序列,在 Detail test中,某帧的图像如下图7所示.
它的特点是,背景静止,但是存在小物体运动.比如天空中的飞机和路上的汽车.
图7 测试视频帧2Fig.7 Frame 2 of Tested Video
如果采用传统的动静判决方式,由于窗口选择和阈值都是固定,很难准确将带有噪声的背景和运动的车、飞机很好的区分开,且由于采用了窗口的 boxfilter,它的边界同样存在很大的过渡空间,导致在画面中占比较小运动的车和飞机容易被周边大面积的静止背景影响,偏向于判断为静止而使用场间插值导致出现梳状线.
采用传统的动静判决方法得到的场内插值和场间插值的权重图如下图8所示,为了绘图方便,权重被归一化到 0~255.权重值越小则场间插值权重越高,反之则场内插值权重越高.
由图8可见,采用传统动静判决方法,背景由于存在很大的噪声干扰,出现比较多的灰色点,并且场间插值权重并没有降到足够低.其次,由于每个像素都是由一个窗口内的像素的差值平均而来,小运动物体,如汽车的边缘存在很大的过渡带.图8上可见,汽车的周边运动权重存在较大的过渡带.导致最后的去隔行时使用了较多的场间插值,导致梳状线的出现.
而使用本文提出的算法得到权重图如下图9所示,同样,为了作图方便,本文将权重映射到 0~255.由图4中可见,背景的噪声干扰被很好的抑制,并且汽车周边过渡带比较窄,运动和静止的像素被很好的区分开,而且图中还能够很容易的识别的汽车的形状,运动的汽车边缘被很好的保持下来.很好的区分使用场间和场内插值的区域,不会出现传统算法中出现的梳状线.图10,图11分别代表这两种算法的去隔行效果.
图8 测试帧2传统算法归一化权重图Fig.8 Traditional Algorithm Normalizing Weight Graph of Tested Frame 2图9 测试帧2改进算法归一化权重图Fig.9 Improved Algorithm Normalizing Weight Graph of Tested Frame 2图10 测试帧2传统算法去隔行效果Fig.10 Traditional Algorithm De-Interlacing Effect of Tested Frame 2图11 测试帧2改进算法去隔行效果Fig.11 Improved Algorithm De-Interlacing Effect of Tested Frame 2
本文提出了一种基于内容优化双边滤波运动自适应视频去隔行算法.该算法以传统的运动自适应算法为基础,通过改进的动静检测方法,对视频进行插值点运动状态判断,综合采用多种方法,对不同的区域,自适应的选择最优插值方法.实验证明,与传统的去隔行方法相比,该算法能较好的还原垂直细节,有效的抗闪烁,达到更好的去隔行效果.