一种判断帧率提升中闭塞区域的方法 【技术领域】
本发明涉及视频图像处理技术,特别是视频图像帧率提升技术。
背景技术
数字视频以及多媒体信息的大规模应用带来了显示格式的多样性。因此,这些格式之间的转换就显得非常重要。而帧率提升(FRUC)就是一种能将低帧率视频序列转化为高帧率视频序列的技术。帧率提升具有广阔的应用领域,下面举两个例子说明。
帧率提升方法的应用之一:现在平板电视(如LCD)大规模流行,原始视频图像的帧率是50或者60Hz,相当于每帧图像要在屏幕上存在20或者16.67ms,当视频图像内容有明显的运动时,人主观观看LCD时会感觉有抖动现象出现。而采用FRUC技术,可以将原来的帧率提升一倍,达到100或者120HZ,那么每帧图像的显示时间就下降到了10或者8.3ms左右,可以极大的提升主观效果,视频内容的运动也会看起来更加的连续和自然。
帧率提升方法的应用之二:现在电影的显示频率是24HZ,而现在电视的播放频率是60Hz,如果想要将电影内容在电视上播放,必须将24Hz的电影内容转变为60Hz,这需要考虑运动的情况下提升帧率,这也是FRUC的一个主要应用。
帧率提升可以简单的分为两类:一类是采用帧复制、线性插帧以及插入灰帧或者黑帧,这些方法的共同点是都不考虑相邻两帧图像之间的运动信息,因此在图像的运动物体的边缘产生强烈的锯齿和抖动,带来严重的图像质量退化。而这一类方法的缺点可以采用基于运动估计/运动补偿的插帧(MCFI)方法来去除,这也是下面介绍的第二类方法与第一类方法的不同所在。
第二类帧率提升方法就是基于运动估计/运动补偿进行插帧:如果两帧之间的运动信息可以被精确地估计出来,那么就可以简单的沿着估计出来的运动方向进行插帧。但是,在图像中的闭塞(Occlusion)区域,需要插入的像素(pixel)信息只是存在于前一帧或者后一帧图像上,这些像素在两帧之间就找不到适当的匹配,那么在闭塞区域采用原来的运动估计方法得出的运动矢量(MV)也是不可靠、不正确的。图1中揭示了图像中的闭塞(Occlusion)区域的概念。图1中竖直平行的两根实线代表顺序的两帧图像——第N-1帧和第N帧。需要在竖直虚线所处位置插入一帧图像。标识2指向的在第N-1帧图像中的虚线框表征一个移动的物体,当然在第N帧图像中,该移动的物体在图像中的坐标位置要发生变化,假定该物体只是向上方移动,这样在要插入的图像中标识1所指向的插入图像中的两个区域分别在第N-1帧或第N帧中没有可以直接得到的图像信息,标识1所指向的区域就是闭塞区域。对闭塞区域进一步分类,可以分为遮挡区域1.1(covering area)和显露区域1.2(uncovering area),其中遮挡区域是指在前一帧图像中没有对应图像信息的区域,显露区域是指在后一帧图像中没有对应图像信息的区域。
如果直接忽略掉闭塞区域,那么在FRUC上所带来的直接后果就是在运动物体的边缘会带来让人恼火的光圈现象(halo),因此,解决闭塞区域问题在FRUC问题中就显得非常重要。
解决闭塞区域问题需要两个步骤:一是要定位出闭塞区域,二是在闭塞区域中进一步区分出遮挡区域和显露区域。完成上述两个步骤之后,可以给不同的区域分配不同地运动矢量(MV)和插值模式,来达到完美的插帧的目标。
现有判断闭塞区域主要采用SAD(Sum of Absolute Difference)法,其主要原理是基于块匹配(block-based),块是将一帧视频图像等分成的若干部分,各部分包含若干像素(如8×8像素),每部分都是进行图像处理时的基本单位。SAD法以一帧A上的块作为基准块,在另一帧B上找到与他相匹配的块。其过程是这样的:在另一帧B上我们取很多的参考块(每个参考块对应一个参考的运动矢量)与A上的基准块进行匹配,直到找到那个使匹配值最小的(或者说是最匹配的)的块,这时的参考运动矢量即作为最终的结果运动矢量。
在块匹配的实际计算过程中,这个寻找最匹配的过程就是寻找使SAD一绝对差异总和最小的过程。使SAD最小的那个参考运动矢量就是最终这个块的运动矢量。
如果一个运动物体在两帧上都存在,那么可以在两帧之间找到合适的匹配,这样计算出来的SAD的值都不会很大。但是如果在遮挡区域,因为在两帧之间没有相同的像素进行匹配,利用块匹配的方法在遮挡区域找到的运动矢量就是错误的,错误的运动矢量相对应的SAD值就会很大。在实际情况下,因为阈值很难选定,利用SAD的方法并不能把所有的遮挡区域挑选出来。
【发明内容】
为了准确定位闭塞区域,本发明提供了一种判断帧率提升中闭塞区域的方法,可以有效定位闭塞区域,并在此基础上区分遮挡区域和显露区域。
本发明的技术方案如下:
判断帧率提升中闭塞区域的方法包括如下步骤:
将需要插入的视频图像等分成若干区块,该插入视频图像上需要判断区块的运动矢量方向延伸到前后相邻帧视频图像得到两个区块,计算该两个区块之间的相似度,所述相似度是基于两区块中像素属性值的1阶到n阶的统计量获得的,n≥2,如果相似度达到设定的阈值,即所述两个区块的差异达到预定的程度时,则该需要判断区块位于闭塞区域。
所述相似度为S指数,若S指数小于设定的阈值,则该区块位于闭塞区域;计算S指数的方法包括如下步骤:
计算需要判断区块的运动矢量,获得所述延伸得到的两个区块;
分别计算所述延伸得到的两个区块内像素属性值的均值uX和uY;
分别计算所述延伸得到的两个区块内像素属性值的方差σX2和σY2;
计算所述延伸得到的两个区块像素属性值的协方差σXY;
令l(X,Y)=2uXuYuX2+uY2,]]>c(X,Y)=2σXσYσX2+σY2,]]>s(X,Y)=σXYσXσY;]]>
计算S(X,Y)=[l(X,Y)]α×[c(X,Y)]β×[s(X,Y)]γ,其中α,β,γ为经验值,S(X,Y)即为S指数。
所述判断帧率提升中闭塞区域的方法还包括计算所述需要判断区块的运动矢量与邻近区块运动矢量是否连续的步骤:计算需要判断的区块与邻近区块的运动矢量差,如果所述运动矢量差大于或等于一个阈值,则认为需要判断的区块的运动矢量与邻近区块运动矢量不连续;若根据区块的S指数判断区块位于闭塞区域,且该区块的运动矢量与邻近区块运动矢量不连续,则该区块位于闭塞区域的置信度高于仅凭S指数判断该区块位于闭塞区域的置信度。
所述与运动矢量相比的阈值确定方法如下:对需要插入帧图像中的每一个区块计算其与邻近区块的运动矢量差,得到的运动矢量差的最大值为max_mv_dif,a×max_mv_dif即为所述阈值,a为在0-1之间选取的经验值。
优选的,a的值为0.25。
在确定需要判断区块位于闭塞区域后,对需要判断区块属于遮挡区域或显露区域的判断步骤如下:
连续的4帧图像顺序为第n-2帧、第n-1帧、第n帧和第n+1帧,需要判断的区块位于第n-1帧和第n帧之间插入的帧上,计算第n-2帧和第n-1帧之间插入帧中与所述需要判断区块相同位置区块的运动矢量MV(n-2,n-1),及第n帧和第n+1帧之间插入帧中与所述需要判断区块相同位置区块的运动矢量MV(n,n+1),括号中的两个代码表示得到运动矢量基于的图像顺序号;
将MV(n-2,n-1)表明的运动方向延伸到第n-1帧和第n帧上得到对应的区块B1和B2;
将MV(n,n+1)表明的运动方向延伸到第n帧和第n-1帧上得到对应的区块B3和B4;
计算B1和B2间的S指数S(B1,B2);
计算B3和B4间的S指数S(B3,B4);
如果S(B1,B2)>S(B3,B4),则区块属于显露区域;如果S(B1,B2)<S(B3,B4),则区块属于遮挡区域;S(B1,B2)=S(B3,B4)时区块可以属于显露区域,也可以属于遮挡区域。
本发明的技术效果:
图3是采用现有SAD方法进行帧率提升后的结果,图4是采用本发明的S指数方法进行帧率提升后的结果。从图3和图4的对比可以看到,图4中运动物体边缘的瑕疵(artifact)明显减少。附图如果是彩色图像,则图4优于图3的效果会更明显。
【附图说明】
图1为介绍闭塞区域概念的示意图;
图2是为说明区分遮挡区域和显露区域的方法的示意图;
图3是采用现有SAD方法进行帧率提升后的图像结果;
图4是采用本发明的方法进行帧率提升后的图像结果;
图5是区块与邻近区块位置关系图。
图中标识列示如下:
1、闭塞区域;1.1、遮挡区域;1.2、显露区域;2、视频图像中移动的物体影像。
【具体实施方式】
以下具体说明本发明的技术方案。
首先需要定位闭塞区域,即在插入帧(需要插入的图像,以下同)中属于闭塞区域区块。为了达成这一目的,需要将视频图像(插入帧)等分成若干区块,区块是包括数量相等个像素的单位块,且单位块的形状也是相同的,如每个区块为8×8像素的正方形块。在划分完区块后,选定如下两个区块:沿需要判断是否属于闭塞区域的区块(简称为需要判断区块)的运动矢量方向延伸,与前后两帧图像相交得到的区块,计算所述两个区块的相似度,若相似度达到设定的阈值(即两个区块的不相似度达到一定程度),则可以判定该需要判断的区块属于闭塞区域。相似度是基于两区块中像素属性值的1阶到n阶的统计量获得的,n≥2。即相似度是基于从1阶到高阶的统计量计算得到的,从数理统计的知识可知,基于多阶统计量得到的结果可信度更高,当然会使得判断结果更准确。
下面以S指数为例说明本发明相似度的获取方法:
接续上述的假定,即区块为8×8像素的正方形块,以下公式中下标X代表插入帧前一帧图像上需要判断区块运动矢量延伸得到的区块,下标Y代表插入帧后一帧图像上需要判断区块运动矢量延伸得到的区块;正常字体(非下标)的X代表前一帧图像像素的属性值,正常字体的Y代表后一帧图像像素的属性值,这里的属性值可以是像素的亮度、色度、灰度等属性值。
首先需要利用现有方法获得需要判断区块的运动矢量。获得以下区块:沿需要判断区块的运动矢量延伸与前、后两帧图像相交得到的区块。
分别计算上述两个运动矢量延伸得到的区块内像素属性值的均值uX和uY:uX=X‾=1N×NΣi=1NΣj=1NXi,j;]]>uY=Y‾=1N×NΣi=1NΣj=1NYi,j.]]>
分别计算上述两个区块内像素属性值的方差σX2和σY2:σX2=1(N-1)×(N-1)Σi=1NΣj=1N(Xi,j-uX)2;]]>σY2=1(N-1)×(N-1)Σi=1NΣj=1N(Yi,j-uY)2.]]>
计算上述两个区块的协方差σXY:σXY=1(N-1)×(N-1)Σi=1NΣj=1N(Xi,j-uX)(Yi,j-uY).]]>
令l(X,Y)=2uXuYuX2+uY2,]]>c(X,Y)=2σXσYσX2+σY2,]]>s(X,Y)=σXYσXσY.]]>
则S(X,Y)=[l(X,Y)]α×[c(X,Y)]β×[s(X,Y)]γ,S(X,Y)即为S指数。其中,α,β,γ指数用来控制各个分量在计算S指数时的比重。一般的,我们取α=β=γ=1,此时有:S(X,Y)=[l(X,Y)]×[c(X,Y)]×[s(X,Y)]=4uXuYσXY(uX2+uY2)(σX2+σY2).]]>S(X,Y)即为S指数。
通过S指数可以得出需要判断区块是否属于闭塞区域,为了进一步增加判断的置信度,引入如下的辅助判断,即计算需要判度区块的运动矢量与邻近区块的运动矢量是否是连续的。引入这一辅助判度的依据是:发生闭塞的区域都是沿着物体的边缘出现的,处于边缘的区块的运动矢量与周围区块的运动矢量存在明显的不连续性,而且可能存在很大不同。
判断区块与邻近区块不连续性的实例:
取一个3×3的窗口,包括9个区块,相对位置如图5所示:
C是需要判断的区块,B2,B4,B5和B7是C的邻近的块(即C的上、下、左、右四个方向的邻近区块),可以用来判断C的运动矢量不连续性。
设C的运动矢量为MV(C)=(MVx(C),MVy(C)),MVx代表X方向的运动矢量分量,MVy代表Y方向的运动矢量分量,以下同。
相应的,其他区块的运动矢量为:
MV(B2)=(MVx(B2),MVy(B2))
MV(B4)=(MVx(B4),MVy(B4))
MV(B5)=(MVx(B3),MVy(B5))
MV(B7)=(MVx(B3),MVy(B7))
计算当前块C与周围块B2,B4,B5和B7的运动矢量的差:
MV_dif(C)=abs(MVx(C)-MVx(B2))+abs(MVy(C)-MVy(B2))+
abs(MVx(C)-MVx(B4))+abs(MVy(C)-MVy(B4))+
abs(MVx(C)-MVx(B5))+abs(MVy(C)-MVy(B5))+
abs(MVx(C)-MVx(B7))+abs(MVy(C)-MVy(B7))
其中,abs()表示取绝对值的意思。
对一帧图像中的每一个区块,我们都计算其与邻近区块的运动矢量的差,就得到了一个运动矢量差的数组MV_dif,我们统计其最大值,记为max_mv_dif
然后有如下的判断过程:
如果当前块的MV_dif(C)>=max_mv_dif×25%,则表明需要判断区块的运动矢量与邻近区块的运动矢量是不连续的。其中,25%是一个选定的经验值,可以在0-100%之间变动。
综合所述的辅助判断,可以得出置信度更高的定位闭塞区域的方法:如果前后两帧图像对应区块(即延伸需要判断区块运动矢量得到区块)的S指数差低于阈值,而且该需要判断区块的运动矢量与周围区块的运动矢量是不连续的,那么我们就认为该像素块处于发生遮挡问题的区域。
其次,在判断出区块是属于闭塞区域后,还需要确定是哪一种闭塞区域,即属于遮挡区域还是显露区域。由于闭塞区域的区块仅在前后两帧图像之一上保留有信息,因此,仅凭前后两帧图像还无法确定闭塞区域到底属于哪一种。本发明利用三帧或更多帧连续的视频图像来确定区块的闭塞区域类型,具体方法如以下实例所示:
有连续的第n-2帧、第n-1帧、第n帧、第n+1帧,需要判断第n-1帧和第n帧之间插入帧上的闭塞区域区块的类型,假定插入帧均在前后两帧间隔的正中间。计算第n-2帧和第n-1帧之间插入帧中与所述需要判断区块相同位置区块的运动矢量MV(n-2,n-1),及第n帧和第n+1帧之间插入帧中与所述需要判断区块相同位置区块的运动矢量MV(n,n+1),括号中的两个代码表示得到运动矢量基于的图像顺序号。
将MV(n-2,n-1)表明的运动方向延伸到第n-1帧和第n帧上得到对应的区块B1和B2,B1在第n-1帧上的坐标为(p+0.5×MV(n-2,n-1),q+0.5×MV(n-2,n-1)),B2在第n帧上的坐标为(p+1.5×MV(n-2,n-1),q+1.5×MV(n-2,n-1)),其中(p,q)为需要判断区块在插入帧上的坐标。
将MV(n,n+1)表明的运动方向延伸到第n帧和第n-1帧上得到对应的在第n帧上的区块B3和在第n-1帧上的B4。B3的坐标为(p-0.5×MV(n,n+1),q-0.5×MV(n,n+1)),B4的坐标为(p-1.5×MV(n,n+1),q-1.5×MV(n,n+1))。
分别按前叙步骤计算B1和B2之间的S指数S(B1,B2),及B3和B4之间的S指数S(B3,B4)。
如果S(B1,B2)>S(B3,B4),则需要判断的闭塞区域区块属于显露区域;如果S(B1,B2)<S(B3,B4),则需要判断的闭塞区域区块属于遮挡区域;如果S(B1,B2)=S(B3,B4),则需要判断的闭塞区域区块可以属于显露区域,也可以属于遮挡区域。
至此,实现了对属于闭塞区域的区块的类型的判断。
在判断出插入帧的区块是否属于闭塞区域,及属于哪种类型的闭塞区域后,可以有针对性的处理,得到效果优良的插入帧图像,如图4所示的经本发明方法处理的图像结果。
后续有针对性的处理可以如以下处理方式:
对于非闭塞区域类区块,原来基于前后两帧图像计算出来的区块的运动矢量不变,还是MV(n-1,n,),其插值方式为双向插值。
对于显露区域,区块的运动矢量用后面一帧的相同坐标区块的运动矢量来代替,为MV(n,n+1),其插值方式为后向单向插值。
对于遮挡区域,区块的运动矢量用前一帧的相同坐标区块的运动矢量来代替,为MV(n-2,n-1,),其插值方式为前向单向插值。