一种基于边缘检测的自适应运动检测方法转让专利

申请号 : CN201210476628.X

文献号 : CN102946504B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘成强刘强樊鹏

申请人 : 四川虹微技术有限公司

摘要 :

本发明公开了一种基于边缘检测的自适应运动检测方法,通过计算当前像素点相关的四个亮度分量场间差值以及两个U、V色差分量场间差值,然后将四个亮度分量场间差值分别与四个阈值进行比较,得到变量mov_mode,再后,根据变量mov_mode的值,并结合前面两场当前像素对应像素点的运动状态、边缘检测情况得到判断结果,最后依据U、V色差分量场间差值对判断结果进行修正。本发明通过将边缘检测情况以及色差分量参与到运动状态的判断中,提高了运动检测的鲁棒性,为隔行视频的去隔行奠定了良好的基础。

权利要求 :

1.一种基于边缘检测的自适应运动检测方法,其特征在于,包括以下步骤:(1)、场间差值计算:

(1.1)、亮度分量的场间差值计算:

field_diff12=|YFn(i,j)-YFn+1(i,j)|+|YFn(i,j-1)-YFn+1(i,j-1)|+|YFn(i,j+1)-YFn+

1(i,j+1)|

field_diff23=|YFn(i,j)-YFn-1(i,j)|+|YFn(i,j-1)-YFn-1(i,j-1)|+|YFn(i,j+1)-YFn-

1(i,j+1)|

frm_diff02= |YFn(i,j)-YFn-2(i,j)|+|YFn(i,j-1)-YFn-2(i,j-1)|+|YFn(i,j+1)-YFn-2(i,j+1)|frm_diff13=|YFn+1(i,j)-YFn-1(i,j)|+|YFn+1(i,j-1)-YFn-1(i,j-1)|+|YFn+1(i,j+1)-YFn-1(i,j+1)|(1.2)、U色差分量的场间差值计算:

Ufield_diff12=|UFn(i,j)-UFn+1(i,j)|+|UFn(i,j-1)-UFn+1(i,j-1)|+|UFn(i,j+1)-UFn+1(i,j+1)|Ufield_diff23=|UFn(i,j)-UFn-1(i,j)|+|UFn(i,j-1)-UFn-1(i,j-1)|+|UFn(i,j+1)-UFn-1(i,j+1)|(1.3)、V色差分量的场间差值计算:

Vfield_diff12=|VFn(i,j)-VFn+1(i,j)|+|VFn(i,j-1)-VFn+1(i,j-1)|+|VFn(i,j+1)-VFn+1(i,j+1)|Vfield_diff23=|VFn(i,j)-VFn-1(i,j)|+|VFn(i,j-1)-VFn-1(i,j-1)|+|VFn(i,j+1)-VFn-1(i,j+1)|

4个亮度场间差值field_diff12、field_diff23、field_diff02、field_diff13分别表示输入的4场图像在当前像素点空间位置(i,j)处的亮度场间差值,其中亮度场间差值field_diff12表示当前场图像n当前像素点与它后一场图像n+1对应像素点之间的亮度场间差值、field_diff23表示当前场图像n当前像素点与它前一场图像n-1对应像素点之间的亮度场间差值、field_diff02表示当前场图像n当前像素点与它前第二场图像n-2对应像素点之间的亮度场间差值、field_diff13表示它后一场图像n+1对应像素点和它前一场图像n-1对应像素点之间的亮度场间差值;

两个U色差分量的场间差值Ufield_diff12、Ufield_diff23分别表示输入的4场图像在当前像素点空间位置(i,j)处的U色度分量场间差值,其中U色差分量的场间差值Ufield_diff12表示当前场图像n当前像素点与它后一场图像n+1对应像素点之间的U色度分量差值、Ufield_diff23表示当前场图像n当前像素点与它前一场图像n-1对应像素点之间的U色度分量差值;

两个V色差分量的场间差值Vfield_diff12、Vfield_diff23分别表示输入的4场图像在当前像素点空间位置(i,j)处的V色度分量场间差值,其中V色差分量的场间差值Vfield_diff12表示当前场图像n当前像素点与它后一场图像n+1对应像素点之间的V色度分量差值、Vfield_diff23表示当前场图像n当前像素点与它前一场图像n-1对应像素点之间的V色度分量差值;

其中,YFn、YFn+1、YFn-1、YFn-2分别表示当前场图像,当前场后一场图像,当前前一场图像,当前场前面第二场图像像素点的亮度分量,即Y分量;

UFn,UFn+1,UFn-1,UFn-2分别表示当前场图像,当前场后一场图像,当前前一场图像,当前场前面第二场图像像素点的U色差分量;

VFn,VFn+1,VFn-1,VFn-2分别表示当前场图像,当前场后一场图像,当前前一场图像,当前场前面第二场图像像素点的V色差分量;

其中,(i,j)表示当前像素点在图像中的空间位置,(i,j-1)表示当前像素点水平位置左方的像素点在图像中的空间位置,(i,j+1)表示当前像素点水平位置右方的像素点在图像中的空间位置;

(2)、亮度分量的场间差值与阈值比较

将亮度分量的场间差值分别与一个阈值进行比较,得到当前像素点的运动模式,用变量mov_mode表示,mov_mode值采用二进制算法得到,其计算过程如下:如果亮度分量的场间差值field_diff23>阈值thread1,则变量mov_mode的第一位为:mov_mode[0]=1

否则,mov_mode[0]=0;

如果亮度分量的场间差值field_diff12>阈值thread2,则变量mov_mode的第二位为:mov_mode[1]=1

否则,mov_mode[1]=0;

如果亮度分量的场间差值frm_diff13>阈值thread3,则变量mov_mode的第三位为:mov_mode[2]=1

否则,mov_mode[2]=0;

如果亮度分量的场间差值frm_diff02>阈值thread4,则变量mov_mode的第四位为:mov_mode[3]=1

否则,mov_mode[3]=0;

其中,阈值thread1~4根据经验值确定;

将变量mov_mode的格式从二进制值转换为十进制值;

(3)、边缘检测

(3.1)、垂直梯度计算:

当前场图像的当前像素点的垂直梯度计算如下:

grad_vern(i,j)=|YFn(i,j)-YFn(i+1,j)|+|YFn(i,j-1)-YFn(i+1,j-1)|+|YFn(i,j+1)-YFn(i+1,j+1)|前一场图像的对应像素点的垂直梯度计算如下:

grad_vern-1(i,j)=|YFn-1(i,j)-YFn-1(i+1,j)|+|YFn-1(i,j-1)-YFn-1(i+1,j-1)|+|YFn-1(i,j+1)-YFn-1(i+1,j+1)|前面第二场图像的对应像素点的垂直梯度计算如下:grad_vern-2(i,j)=|YFn-2(i,j)-YFn-2(i+1,j)|+|YFn-2(i,j-1)-YFn-2(i+1,j-1)|+|YFn-2(i,j+1)-YFn-2(i+1,j+1)|后一场图像的对应像素点的垂直梯度计算如下:

grad_vern+1(i,j)=|YFn+1(i,j)-YFn+1(i+1,j)|+|YFn+1(i,j-1)-YFn+1(i+1,j-1)|+|YFn+1(i,j+1)-YFn+1(i+1,j+1)|(3.2)、边缘判断,

如果同时满足:

grad_vern(i,j)>edge_threadgrad_vern-1(i,j)>edge_threadgrad_vern-2(i,j)>edge_threadgrad_vern+1(i,j)>edge_thread则边缘标识edge_flag(i,j)=1,否则,边缘标识edge_flag(i,j)=0;

(4)、运动静止判断

当前场像素点的运动状态,前一场对应像素点的运动状态,当前场前两场对应像素点的运动状态分别为mov_staten(i,j)、mov_staten-1(i,j)、mov_staten-2(i,j);

当它们的值等于0时表示静止,等于1时表示运动;

(4.1)、如果变量mov_mode=0或者mov_mode=8,则当前场像素点的运动状态为:mov_staten(i,j)=0

否则:

(4.2)、如果mov_mode>3并且mov_mode≠8,则当前场像素点的运动状态为:mov_staten(i,j)=1,

否则:

(4.3)、如果mov_mode>0并且mov_mode<4(4.3.1)、如果前一场和前面第二场对应点的运动状态都是运动,则当前场像素点的运动状态为:mov_staten(i,j)=1,否则:

(4.3.2)、如果前一场和前面第二场对应点的运动状态都是静止,则当前场像素点的运动状态为:mov_staten(i,j)=0,否则:

(4.3.3)、如果边缘标识edge_flag(i,j)=1,则当前场像素点的运动状态为:mov_staten(i,j)=0,否则:

(4.3.4)、如果mov_mode=3,则当前场像素点的运动状态为:mov_staten(i,j)=1,否则:

(4.3.5)、当前场像素点的运动状态为:

mov_staten(i,j)=0;

(5)、运动状态判断结果的修正

如果运动变量mov_mode<9并且mov_mode≠3并且mov_mode≠7,则根据色度分量的场间差值对当前场像素点的运动状态进行修正:(5.1)、如果同时满足:

Ufield_diff12>UVThread

Ufield_diff23>UVThread

Vfield_diff12>UVThread

Vfield_diff23>UVThread

则mov_staten(i,j)=1,否则,当前像素点的运动状态保持上面(4.1)~(4.3)判断得到的运动状态;

(5.2)如果不满足mov_mode<9&mov_mode!=3&mov_mode!=7,当前像素点的运动状态保持上面4.1~4.3判断得到的状态。

说明书 :

一种基于边缘检测的自适应运动检测方法

技术领域

[0001] 本发明属于视频处理技术领域,更为具体地讲,涉及视频后处理隔行视频信号向逐行视频转换中的一种基于边缘检测的自适应运动检测方法。

背景技术

[0002] 由于受到传输带宽的限制,电视台发送的电视信号都不是完整的图像,而是将一个场景分成奇场和偶场两个部分分时发送,这样就产生隔行视频信号。但是随着数字信号处理技术的不断发展和宽屏幕平板电视的出现,人们对电视显示质量的要求越来越高,电视台发送的隔行信号在目前的高端平板电视上显示就会出现严重的屏闪、锯齿等严重问题。去隔行技术即隔行转逐行技术正是为了解决隔行视频信号和高端电视之间矛盾产生的。
[0003] 去隔行算法根据其所用滤波器的种类不同分为线性算法、非线性算法、运动补偿算法和运动自适应算法。线性算法包括行复制、行平均等,去隔行后视频图像模糊并产生严重矩尺;非线性算法包括中值滤波和一些拟和算法;运动补偿算法理论上是效果最好的,但是由于其算法复杂度高,硬件实现成本高等原因还没有成为目前产品的主流方案;而基于运动自适应的去隔行算法根据运动检测得到的运动参数来选择场内插值或场间复制,是目前大多终端显示产品选择的去隔行方案。
[0004] 目前基于运动自适应的去隔行算法最主要的核心内容就是判断当前像素的运动和静止状态。对于运动和静止的判断往往都是通过对场间或者帧间差值与一个阈值进行比较得到。但这种方式运动检测的鲁棒性不强。

发明内容

[0005] 本发明的目的在于克服现有技术的不足,提供一种基于边缘检测的自适应运动检测方法,以提高运动检测的鲁棒性,为隔行视频的去隔行奠定良好的基础。
[0006] 为实现上述目的,本发明基于边缘检测的自适应运动检测方法,其特征在于,包括以下步骤:
[0007] (1)、场间差值计算:
[0008] (1.1)、亮度分量的场间差值计算:
[0009] field_diff12=|YFn(i,j)-YFn+1(i,j)|+|YFn(i,j-1)-YFn+1(i,j-1)|+|YFn(i,j+1)-YFn+1(i,j+1)|
[0010] field_diff23=|YFn(i,j)-YFn-1(i,j)|+|YFn(i,j-1)-YFn-1(i,j-1)|+|YFn(i,j+1)-YFn-1(i,j+1)|
[0011] frm_diff02=|YFn(i,j)-YFn-2(i,j)|+|YFn(i,j-1)-YFn-2(i,j-1)|+|YFn(i,j+1)-YFn-2(i,j+1)|
[0012] frm_diff13=|YFn+1(i,j)-YFn-1(i,j)|+|YFn+1(i,j-1)-YFn-1(i,j-1)|+|YFn+1(i,j+1)-YFn-1(i,j+1)|
[0013] (1.2)、U色差分量的场间差值计算:
[0014] Ufield_diff12=|UFn(i,j)-UFn+1(i,j)|+|UFn(i,j-1)-UFn+1(i,j-1)|+|UFn(i,j+1)-UFn+1(i,j+1)|
[0015] Ufield_diff23=|UFn(i,j)-UFn-1(i,j)|+|UFn(i,j-1)-UFn-1(i,j-1)|+|UFn(i,j+1)-UFn-1(i,j+1)|
[0016] (1.3)、V色差分量的场间差值计算:
[0017] Vfield_diff12=|VFn(i,j)-VFn+1(i,j)|+|VFn(i,j-1)-VFn+1(i,j-1)|+|VFn(i,j+1)-VFn+1(i,j+1)|
[0018] Vfield_diff23=|VFn(i,j)-VFn-1(i,j)|+|VFn(i,j-1)-VFn-1(i,j-1)|+|VFn(i,j+1)-VFn-1(i,j+1)|
[0019] 其中,YFn、YFn+1、YFn-1、YFn-2分别表示当前场图像,当前场后一场图像,当前前一场图像,当前场前面第二场图像像素点的亮度分量(即Y分量);
[0020] UFn,UFn+1,UFn-1,UFn-2分别表示当前场图像,当前场后一场图像,当前前一场图像,当前场前面第二场图像像素点的U色差分量;
[0021] VFn,VFn+1,VFn-1,VFn-2分别表示当前场图像,当前场后一场图像,当前前一场图像,当前场前面第二场图像像素点的V色差分量;
[0022] 其中,(i,j)表示当前像素点在图像中的空间位置,(i,j-1)表示当前像素点水平位置左方的像素点在图像中的空间位置,(i,j+1)表示当前像素点水平位置右方的像素点在图像中的空间位置;
[0023] (2)、亮度分量的场间差值与阈值比较
[0024] 将亮度分量的场间差值分别与一个阈值进行比较,得到当前像素点的运动模式,用变量mov_mode表示,mov_mode值采用二进制算法得到,其计算过程如下:
[0025] 如果亮度分量的场间差值field_diff23>阈值thread1,则变量mov_mode的第一位为:
[0026] mov_mode[0]=1
[0027] 否则,mov_mode[0]=0;
[0028] 如果亮度分量的场间差值field_diff12>阈值thread2,则变量mov_mode的第二位为:
[0029] mov_mode[1]=1
[0030] 否则,mov_mode[1]=0;
[0031] 如果亮度分量的场间差值frm_diff13>阈值thread3,则变量mov_mode的第三位为:
[0032] mov_mode[2]=1
[0033] 否则,mov_mode[2]=0;
[0034] 如果亮度分量的场间差值frm_diff02>阈值thread4,则变量mov_mode的第四位为:
[0035] mov_mode[3]=1
[0036] 否则,mov_mode[3]=0;
[0037] 其中,阈值thread1~4根据经验值确定;
[0038] 将变量mov_mode的格式从二进制值转换为十进制值;
[0039] (3)、边缘检测
[0040] (3.1)、垂直梯度计算:
[0041] 当前场图像的当前像素点的垂直梯度计算如下:
[0042] grad_vern(i,j)=|YFn(i,j)-YFn(i+1,j)|+|YFn(i,j-1)-YFn(i+1,j-1)|+|YFn(i,j+1)-YFn(i+1,j+1)|
[0043] 前一场图像的对应像素点的垂直梯度计算如下:
[0044] grad_vern-1(i,j)=|YFn-1(i,j)-YFn-1(i+1,j)|+|YFn-1(i,j-1)-YFn-1(i+1,j-1)|+|YFn-1(i,j+1)-YFn-1(i+1,j+1)|
[0045] 前面第二场图像的对应像素点的垂直梯度计算如下:
[0046] grad_vern-2(i,j)=|YFn-2(i,j)-YFn-2(i+1,j)|+|YFn-2(i,j-1)-YFn-2(i+1,j-1)|+|YFn-2(i,j+1)-YFn-2(i+1,j+1)|
[0047] 后一场图像的对应像素点的垂直梯度计算如下:
[0048] grad_vern+1(i,j)=|YFn+1(i,j)-YFn+1(i+1,j)|+|YFn+1(i,j-1)-YFn+1(i+1,j-1)|+|YFn+1(i,j+1)-YFn+1(i+1,j+1)|
[0049] (3.2)、边缘判断,
[0050] 如果同时满足:
[0051] grad_vern(i,j)>edge_thread
[0052] grad_vern-1(i,j)>edge_thread
[0053] grad_vern-2(i,j)>edge_thread
[0054] grad_vern+1(i,j)>edge_thread
[0055] 则边缘标识edge_flag(i,j)=1,否则,边缘标识edge_flag(i,j)=0;
[0056] (4)、运动静止判断
[0057] 当前场像素点的运动状态,前一场对应像素点的运动状态,当前场前两场对应像素点的运动状态分别为mov_staten(i,j)、mov_staten-1(i,j)、mov_staten-2(i,j);
[0058] 当它们的值等于0时表示静止,等于1时表示运动;
[0059] (4.1)、如果变量mov_mode=0或者mov_mode=8,则当前场像素点的运动状态为:
[0060] mov_staten(i,j)=0
[0061] 否则:
[0062] (4.2)、如果mov_mode>3并且mov_mode≠8,则当前场像素点的运动状态为:
[0063] mov_staten(i,j)=1,
[0064] 否则:
[0065] (4.3)、如果mov_mode>0并且mov_mode<4
[0066] (4.3.1)、如果前一场和前面第二场对应点的运动状态都是运动,则当前场像素点的运动状态为:
[0067] mov_staten(i,j)=1,否则:
[0068] (4.3.2)、如果前一场和前面第二场对应点的运动状态都是静止,则当前场像素点的运动状态为:
[0069] mov_staten(i,j)=0,否则:
[0070] (4.3.3)、如果边缘标识edge_flag(i,j)=1,则当前场像素点的运动状态为:
[0071] mov_staten(i,j)=0,否则:
[0072] (4.3.4)、如果mov_mode=3,则当前场像素点的运动状态为:
[0073] mov_staten(i,j)=1,否则:
[0074] (4.3.5)、当前场像素点的运动状态为:
[0075] mov_staten(i,j)=0;
[0076] (5)、运动状态判断结果的修正
[0077] 如果运动变量mov_mode<9并且mov_mode≠3并且mov_mode≠7,则根据色度分量的场间差值对当前场像素点的运动状态进行修正:
[0078] (5.1)、如果同时满足:
[0079] Ufield_diff12>UVThread
[0080] Ufield_diff23>UVThread
[0081] Vfield_diff12>UVThread
[0082] Vfield_diff23>UVThread
[0083] 则mov_staten(i,j)=1,否则,当前像素点的运动状态保持上面(4.1)~(4.3)判断得到的运动状态;
[0084] (5.2)如果不满足以mov_mode<9&mov_mode!=3&mov_mode!=7,当前像素点的运动状态保持上面4.1~4.3判断得到的状态。
[0085] 本发明的发明目的是这样实现的:
[0086] 本发明基于边缘检测的自适应运动检测方法,通过计算当前像素点相关的四个亮度分量场间差值以及两个U、V色差分量场间差值,然后将四个亮度分量场间差值分别与四个阈值进行比较,得到变量mov_mode,再后,根据变量mov_mode的值,并结合前面两场当前像素对应像素点的运动状态、边缘检测情况得到判断结果,最后依据U、V色差分量场间差值对判断结果进行修正。本发明通过将边缘检测情况以及色差分量参与到运动状态的判断中,提高了运动检测的鲁棒性,为隔行视频的去隔行奠定了良好的基础。

附图说明

[0087] 图1是本发明基于边缘检测的自适应运动检测方法一具体实施方式流程图。

具体实施方式

[0088] 下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
[0089] 图1是本发明基于边缘检测的自适应运动检测方法一具体实施方式流程图。
[0090] 如图1所示,在本实施例中,本发明基于边缘检测的自适应运动检测方法包括以下步骤:
[0091] 1、场间差值计算
[0092] 在本发明中,场间差值是基于4场视频图像输入进行的,即根据当前场图像YFn、当前场后一场图像、当前前一场图像、当前场前面第二场图像像素点的亮度分量(即Y分量)YFn、YFn+1、YFn-1、YFn-2;当前场图像、当前场后一场图像、当前前一场图像、当前场前面第二场图像像素点的U色差分量UFn,UFn+1,UFn-1,UFn-2;当前场图像、当前场后一场图像、当前前一场图像、当前场前面第二场图像像素点的V色差分量VFn,VFn+1,VFn-1,VFn-2进行计算的,具体为:
[0093] 亮度场间差值计算:
[0094] field_diff12= |Fn(i,j)-Fn+1(i,j)|+|Fn(i,j-1)-Fn+1(i,j-1)|+|Fn(i,j+1)-Fn+1(i,j+1)|
[0095] field_diff23= |Fn(i,j)-Fn-1(i,j)|+|Fn(i,j-1)-Fn-1(i,j-1)|+|Fn(i,j+1)-Fn-1(i,j+1)|
[0096] field_diff02= |Fn(i,j)-Fn-2(i,j)|+|Fn(i,j-1)-Fn-2(i,j-1)|+|Fn(i,j+1)-Fn-2(i,j+1)|
[0097] field_diff13=|Fn+1(i,j)-Fn-1(i,j)|+|Fn+1(i,j-1)-Fn-1(i,j-1)|+|Fn+1(i,j+1)-Fn-1(i,j+1)|
[0098] U色差分量的场间差值计算:
[0099] Ufield_diff12=|UFn(i,j)-UFn+1(i,j)|+|UFn(i,j-1)-UFn+1(i,j-1)|+|UFn(i,j+1)-UFn+1(i,j+1)|
[0100] Ufield_diff23=|UFn(i,j)-UFn-1(i,j)|+|UFn(i,j-1)-UFn-1(i,j-1)|+|UFn(i,j+1)-UFn-1(i,j+1)|
[0101] V色差分量的场间差值计算:
[0102] Vfield_diff12=|VFn(i,j)-VFn+1(i,j)|+|VFn(i,j-1)-VFn+1(i,j-1)|+|VFn(i,j+1)-VFn+1(i,j+1)|
[0103] Vfield_diff23=|VFn(i,j)-VFn-1(i,j)|+|VFn(i,j-1)-VFn-1(i,j-1)|+|VFn(i,j+1)-VFn-1(i,j+1)|
[0104] 以上是4个亮度场间差值field_diff12、field_diff23、field_diff02、field_diff13分别表示输入的4场图像在当前像素点空间位置(i,j)处的亮度场间差值,其中亮度场间差值field_diff12表示当前场图像n当前像素点与它后一场图像n+1对应像素点之间的亮度场间差值、field_diff23表示当前场图像n当前像素点与它前一场图像n-1对应像素点之间的亮度场间差值、field_diff02表示当前场图像n当前像素点与它前第二场图像n-2对应像素点之间的亮度场间差值、field_diff13表示它后一场图像n+1对应像素点和它前一场图像n-1对应像素点之间的亮度场间差值。
[0105] 两个U色差分量的场间差值Ufield_diff12、Ufield_diff23分别表示输入的4场图像在当前像素点空间位置(i,j)处的U色度分量场间差值,其中U色差分量的场间差值Ufield_diff12表示当前场图像n当前像素点与它后一场图像n+1对应像素点之间的U色度分量差值、Ufield_diff23表示当前场图像n当前像素点与它前一场图像n-1对应像素点之间的U色度分量差值。
[0106] 两个V色差分量的场间差值Vfield_diff12、Vfield_diff23分别表示输入的4场图像在当前像素点空间位置(i,j)处的V色度分量场间差值,其中V色差分量的场间差值Vfield_diff12表示当前场图像n当前像素点与它后一场图像n+1对应像素点之间的V色度分量差值、Vfield_diff23表示当前场图像n当前像素点与它前一场图像n-1对应像素点之间的V色度分量差值。
[0107] 经过本步骤,获取当前像素点位置(i,j)四个亮度分量场间差值field_diff12、field_diff23、field_diff02、field_diff13,两个U色差分量的场间差值Ufield_diff12、Ufield_diff23、两个V色差分量的场间差值Vfield_diff12、Vfield_diff23。
[0108] 2、亮度分量的场间差值与阈值比较
[0109] 将亮度分量的场间差值分别与一个阈值进行比较,得到当前像素点的运动模式,用变量mov_mode表示,mov_mode值的计算如下:
[0110] 如果亮度分量的场间差值field_diff23>阈值thread1,则变量mov_mode的第一位为:
[0111] mov_mode[0]=1
[0112] 否则,mov_mode[0]=0;
[0113] 如果亮度分量的场间差值field_diff12>阈值thread2,则变量mov_mode的第二位为:
[0114] mov_mode[1]=1
[0115] 否则,mov_mode[1]=0;
[0116] 如果亮度分量的场间差值frm_diff13>阈值thread3,则变量mov_mode的第三位为:
[0117] mov_mode[2]=1
[0118] 否则,mov_mode[2]=0;
[0119] 如果亮度分量的场间差值frm_diff02>阈值thread4,则变量mov_mode的第四位为:
[0120] mov_mode[3]=1
[0121] 否则,mov_mode[3]=0;
[0122] 比较得到变量mov_mode的值的目的是之后需要与其它条件一起进行运动和静止的判断。
[0123] 3、边缘检测
[0124] 3.1、垂直梯度计算:
[0125] 当前场图像的当前像素点的垂直梯度计算如下:
[0126] grad_vern(i,j)=|YFn(i,j)-YFn(i+1,j)|+|YFn(i,j-1)-YFn(i+1,j-1)|+|YFn(i,j+1)-YFn(i+1,j+1)|
[0127] 前一场图像的对应像素点的垂直梯度计算如下:
[0128] grad_vern-1(i,j)=|YFn-1(i,j)-YFn-1(i+1,j)|+|YFn-1(i,j-1)-YFn-1(i+1,j-1)|+|YFn-1(i,j+1)-YFn-1(i+1,j+1)|
[0129] 前面第二场图像的对应像素点的垂直梯度计算如下:
[0130] grad_vern-2(i,j)=|YFn-2(i,j)-YFn-2(i+1,j)|+|YFn-2(i,j-1)-YFn-2(i+1,j-1)|+|YFn-2(i,j+1)-YFn-2(i+1,j+1)|
[0131] 后一场图像的对应像素点的垂直梯度计算如下:
[0132] grad_vern+1(i,j)=|YFn+1(i,j)-YFn+1(i+1,j)|+|YFn+1(i,j-1)-YFn+1(i+1,j-1)|+|YFn+1(i,j+1)-YFn+1(i+1,j+1)|
[0133] 3.2、边缘判断,
[0134] 如果同时满足:
[0135] grad_vern(i,j)>edge_thread
[0136] grad_vern-1(i,j)>edge_thread
[0137] grad_vern-2(i,j)>edge_thread
[0138] grad_vern+1(i,j)>edge_thread
[0139] 则边缘标识edge_flag(i,j)=1,否则,边缘标识edge_flag(i,j)=0;
[0140] 4、运动静止判断
[0141] 当前场像素点的运动状态,前一场对应像素点的运动状态,当前场前两场对应像素点的运动状态分别为mov_staten(i,j)、mov_staten-1(i,j)、mov_staten-2(i,j);
[0142] 当它们的值等于0时表示静止,等于1时表示运动;
[0143] 4.1、如果变量mov_mode=0或者mov_mode=8,则当前场像素点的运动状态为:
[0144] mov_staten(i,j)=0
[0145] 否则:
[0146] 4.2、如果mov_mode>3并且mov_mode≠8,则当前场像素点的运动状态为:
[0147] mov_staten(i,j)=1,
[0148] 否则:
[0149] 4.3、如果mov_mode>0并且mov_mode<4
[0150] 这种情况,需要利用前面两场的运动检测的结果来进一步判断,具体判断如下:
[0151] 4.3.1、如果前一场和前面第二场对应点的运动状态都是运动,则当前场像素点的运动状态为:
[0152] mov_staten(i,j)=1,否则:
[0153] 4.3.2、如果前一场和前面第二场对应点的运动状态都是静止,则当前场像素点的运动状态为:
[0154] mov_staten(i,j)=0,否则即不满足4.3.1也不满足4.3.2:
[0155] 4.3.3、如果边缘标识edge_flag(i,j)=1,则当前场像素点的运动状态为:
[0156] mov_staten(i,j)=0,否则:
[0157] 4.3.4、如果mov_mode=3,则当前场像素点的运动状态为:
[0158] mov_staten(i,j)=1,否则:
[0159] 4.3.5、当前场像素点的运动状态为:
[0160] mov_staten(i,j)=0;
[0161] 5、运动状态判断结果的修正
[0162] 在前面的步骤中,已经初步把当前像素的运动状态判断出来,接下来就是利用两个色差分量对运动检测结果进行校正。要采用色差分量对运动检测结果进行校正是因为某些运动的场景中亮度分量(Y分量)的场间差值很小,如果只根据Y分量的场间差值来进行运动状态的判断会被判断为静止,所以这时就考虑使用两个色差分量对前面的判断结果进行校正。
[0163] 如果运动变量mov_mode<9并且mov_mode≠3并且mov_mode≠7,则根据色度分量的场间差值对当前场像素点的运动状态进行修正:
[0164] 5.1、如果同时满足:
[0165] Ufield_diff12>UVThread
[0166] Ufield_diff23>UVThread
[0167] Vfield_diff12>UVThread
[0168] Vfield_diff23>UVThread
[0169] 则mov_staten(i,j)=1,否则,当前像素点的运动状态保持上面(4.1)~(4.3)判断得到的运动状态;
[0170] 5.2、如果不满足以mov_mode<9&mov_mode!=3&mov_mode!=7,当前像素点的运动状态保持上面4.1~4.3判断得到的状态。
[0171] 通过上述步骤,将边缘检测情况以及色差分量参与到运动状态的判断中,提高了运动检测的鲁棒性,为隔行视频的去隔行奠定了良好的基础。
[0172] 尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。