发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种视频解交错中的隔行视频运动检测方法及其系统,在现有技术中的三场隔行视频的运动检测方法的基础上,增加了静止像素块检测,并通过计算出一个插值场进行运动检测,从而既节省了带宽需求,又减少了四场隔行视频的运动检测方法所带来的局部检测错误。
为实现上述目的及其他相关目的,本发明提供一种视频解交错中的隔行视频运动检测方法,采用相连的三场视频数据进行计算,三场视频数据分别为当前场、后一场和后后场,包括以下步骤:
检测当前场中的连续静止像素块;如果当前场中水平或垂直方向有连续多个像素块属于静止像素块,则判断这些静止像素块为当前场中的连续静止像素块,且连续静止像素块中的像素点相对于后一场无运动;
应用插值算法计算出后一场与当前场具有相同相位处的像素值,这些像素值构成后一场的插值场;
基于第一阈值和第二阈值对于当前场中每一个像素点,进行运动检测。
根据上述的视频解交错中的隔行视频运动检测方法,其中:进行运动检测时,将对于当前场中每一个像素点进行运动检测替换为只对当前场中不处于连续静止块中的每一个像素点进行运动检测。
进一步地,根据上述的视频解交错中的隔行视频运动检测方法,其中:当前场的所述静止像素块的判断方法如下:
将当前场与后后场的数据划分成若干个M*N的像素块,对当前场与后后场中对应的像素块做SAD计算,得到SAD值SAD_BLK;如果SAD_BLK满足条件SAD_BLK<TH_BLK||SAD_BLK<(PXL_max-PXL_min)*n1,则判断当前场中当前像素块属于静止像素块;其中,TH_BLK为可调阈值,PXL_max为当前场中当前像素块中的最大像素值,PXL_min为当前场中当前像素块中的最小像素值,n1为可调参数。
根据上述的视频解交错中的隔行视频运动检测方法,其中:所述插值算法包括以下步骤:
对于每个插值位置,计算插值位置周边像素点在a度、(a+45)度和(a+90)度三个方向上的像素梯度,选择像素梯度最小方向上的两个像素点求像素平均值G,其中0≤a≤180;
对于每个插值位置,计算中值median(B,E,G,P,P),其中B和E为插值位置上下行对应的像素点的像素值,P为前一场对应位置的像素值,median表示取中值的函数,中值滤波结果即为插值场相应像素点的像素值。
进一步地,根据上述的视频解交错中的隔行视频运动检测方法,其中:所述运动检测进一步包括将当前场中的每一像素点作为中心像素点与其周边像素点构成一个像素块,并与后后场中的对应像素块和后一场的插值场中对应的像素块分别做SAD计算,并基于所述的第一阈值和所述的第二阈值判断所述中心像素点相对于后一场有无运动。
更进一步地,根据上述的视频解交错中的隔行视频运动检测方法,其中:所述运动检测具体包括以下步骤:
将当前场中每一像素点作为中心像素点与其周边像素点构成一个像素块,并与后后场中对应的像素块作SAD计算,得到SAD值SAD_AC;
将当前场中每一像素点作为中心像素点与其周边像素点构成一个像素块,并与后一场的插值场中对应的像素块作SAD计算,得到SAD值SAD_AB;
如果SAD_AC>TH_AC或者SAD_AB>TH_AB,则判断该中心像素点相对于后一场有运动,否则,判断该中心像素点相对于后一场无运动,其中TH_AC为第一阈值,TH_AB为第二阈值。
根据上述的视频解交错中的隔行视频运动检测方法,其中:基于第一阈值和第二阈值对当前场中不处于连续静止块中的每一像素点进行运动检测。
进一步地,根据上述的视频解交错中的隔行视频运动检测方法,其中:所述运动检测进一步包括将当前场中不处于连续静止块中的每一像素点作为中心像素点与其周边像素点构成一个像素块,并与后后场中的对应像素块和后一场的插值场中对应的像素块分别做SAD计算,并基于所述的第一阈值和所述的第二阈值判断所述中心像素点相对于后一场有无运动。
更进一步地,根据上述的视频解交错中的隔行视频运动检测方法,其中:所述运动检测具体包括以下步骤:
将当前场中不处于连续静止块中的每一像素点作为中心像素点与其周边像素点构成一个像素块,并与后后场中对应的像素块作SAD计算,得到SAD值SAD_AC;
将当前场中不处于连续静止块中的每一像素点作为中心像素点与其周边像素点构成一个像素块,并与后一场的插值场中对应的像素块作SAD计算,得到SAD值SAD_AB;
如果SAD_AC>TH_AC或者SAD_AB>TH_AB,则判断该中心像素点相对于后一场有运动,否则,判断该中心像素点相对于后一场无运动,其中TH_AC为第一阈值,TH_AB为第二阈值。
根据上述的视频解交错中的隔行视频运动检测方法,其中:所述第一阈值TH_AC的确定包括:
如果AREA_max-AREA_min>TH_AREA,则TH_AC取固定值TH_AC_CON,否则,TH_AC=(AREA_max-AREA_min)*n2;其中,AREA_max为场A中当前中心像素点与其周边像素点构成的像素块中的最大像素值,AREA_min为场A中当前中心像素点与其周边像素点构成的像素块中的最小像素值,TH_AREA为可调阈值,TH_AC_CON为可调阈值,n2为可调参数。
根据上述的视频解交错中的隔行视频运动检测方法,其中:所述第二阈值TH_AB的确定包括:
如果PXL_Freq>TH_FREQ,则TH_AB=TH_HIGH,否则,TH_AB=TH_LOW;其中,TH_FREQ、TH_HIGH和TH_LOW均为可调阈值;PXL_Freq=|2*PXL_cur-PXL_up-PXL_dn|,其中PXL_cur为场A中的当前中心像素点;PXL_up为场A中当前中心像素点上面一行对应的像素点,PXL_dn为场A中当前中心像素点下面一行对应的像素点。
根据上述的视频解交错中的隔行视频运动检测方法,其中:对于5*3的像素块,TH_AREA取值为55,TH_AC_CON取值为230,n2为取值为1。
根据上述的视频解交错中的隔行视频运动检测方法,其中:对于5*3的像素块,TH_FREQ取值为95,TH_HIGH取值为650,TH_LOW取值为140。
同时,本发明还提供一种视频解交错中的隔行视频运动检测系统,对相连的三场视频数据进行运动检测,三场视频数据分别为当前场、后一场和后后场,包括连续静止像素块检测模块、插值场计算模块和基于像素点的运动检测模块;
所述连续静止像素块检测模块用于检测当前场中的连续静止像素块;如果当前场中水平或垂直方向有连续多个像素块属于静止像素块,则判断这些静止像素块为当前场中的连续静止像素块,且连续静止像素块中的像素点相对于后一场无运动;
所述插值场计算模块用于应用插值算法计算出后一场与当前场具有相同相位处的像素值,这些像素值构成后一场的插值场;
所述基于像素点的运动检测模块与所述连续静止像素块检测模块和所述插值场计算模块相连,用于基于第一阈值和第二阈值对于当前场中每一个像素点进行运动检测。
根据上述的视频解交错中的隔行视频运动检测系统,其中:所述基于像素点的运动检测模块进行运动检测时,将对于当前场中每一个像素点进行运动检测替换为只对当前场中不处于连续静止块中的每一个像素点进行运动检测。
进一步地,根据上述的视频解交错中的隔行视频运动检测系统,其中:当前场的静止像素块的判断方法如下:
将当前场与后后场的数据划分成若干个M*N的像素块,对当前场与后后场中对应的像素块做SAD计算,得到SAD值SAD_BLK;如果SAD_BLK满足条件SAD_BLK<TH_BLK||SAD_BLK<(PXL_max-PXL_min)*n1,则判断当前场中当前像素块属于静止像素块;其中,TH_BLK为可调阈值,PXL_max为当前场中当前像素块中的最大像素值,PXL_min为当前场中当前像素块中的最小像素值,n1为可调参数。
根据上述的视频解交错中的隔行视频运动检测系统,其中:所述插值算法包括以下步骤:
对于每个插值位置,计算插值位置周边像素点在a度、(a+45)度和(a+90)度三个方向上的像素梯度,选择像素梯度最小方向上的两个像素点求像素平均值G,其中0≤a≤180;
对于每个插值位置,计算中值median(B,E,G,P,P),其中B和E为插值位置上下行对应的像素点的像素值,P为前一场对应位置的像素值,median表示取中值的函数,中值滤波结果即为插值场相应像素点的像素值。
进一步地,根据上述的视频解交错中的隔行视频运动检测系统,其中:所述运动检测进一步包括将当前场中的每一像素点作为中心像素点与其周边像素点构成一个像素块,并与后后场中的对应像素块和后一场的插值场中对应的像素块分别做SAD计算,并基于所述的第一阈值和所述的第二阈值判断所述中心像素点相对于后一场有无运动。
更进一步地,根据上述的视频解交错中的隔行视频运动检测系统,其中:所述运动检测具体包括以下步骤:
将当前场中每一像素点作为中心像素点与其周边像素点构成一个像素块,并与后后场中对应的像素块作SAD计算,得到SAD值SAD_AC;
将当前场中每一像素点作为中心像素点与其周边像素点构成一个像素块,并与后一场的插值场中对应的像素块作SAD计算,得到SAD值SAD_AB;
如果SAD_AC>TH_AC或者SAD_AB>TH_AB,则判断该中心像素点相对于后一场有运动,否则,判断该中心像素点相对于后一场无运动,其中TH_AC为第一阈值,TH_AB为第二阈值。
根据上述的视频解交错中的隔行视频运动检测系统,其中:所述运动检测时,基于第一阈值和第二阈值对当前场中不处于连续静止像素块中的每一个像素点进行运动检测。
进一步地,根据上述的视频解交错中的隔行视频运动检测系统,其中:所述运动检测进一步包括将当前场中没有处于连续静止像素块的每一像素点作为中心像素点与其周边像素点构成一个像素块,并与后后场中的对应像素块和后一场的插值场中对应的像素块分别做SAD计算,并基于所述的第一阈值和所述的第二阈值判断所述中心像素点相对于后一场有无运动。
更进一步地,根据上述的视频解交错中的隔行视频运动检测系统,其中:所述运动检测具体包括以下步骤:
将当前场中没有处于连续静止像素块的每一像素点作为中心像素点与其周边像素点构成一个像素块,并与后后场中对应的像素块作SAD计算,得到SAD值SAD_AC;
将当前场中没有处于连续静止像素块的每一像素点作为中心像素点与其周边像素点构成一个像素块,并与后一场的插值场中对应的像素块作SAD计算,得到SAD值SAD_AB;
如果SAD_AC>TH_AC或者SAD_AB>TH_AB,则判断该中心像素点相对于后一场有运动,否则,判断该中心像素点相对于后一场无运动,其中TH_AC为第一阈值,TH_AB为第二阈值。
根据上述的视频解交错中的隔行视频运动检测系统,其中:所述第一阈值TH_AC的确定包括:
如果AREA_max-AREA_min>TH_AREA,则TH_AC取固定值TH_AC_CON,否则,TH_AC=(AREA_max-AREA_min)*n2;其中,AREA_max为场A中当前中心像素点与其周边像素点构成的像素块中的最大像素值,AREA_min为场A中当前中心像素点与其周边像素点构成的像素块中的最小像素值,TH_AREA为可调阈值,TH_AC_CON为可调阈值,n2为可调参数。
根据上述的视频解交错中的隔行视频运动检测系统,其中:所述第二阈值TH_AB的确定包括:
如果PXL_Freq>TH_FREQ,则TH_AB=TH_HIGH,否则,TH_AB=TH_LOW;其中,TH_FREQ、TH_HIGH和TH_LOW均为可调阈值;PXL_Freq=|2*PXL_cur-PXL_up-PXL_dn|,其中PXL_cur为场A中的当前中心像素点;PXL_up为场A中当前中心像素点上面一行对应的像素点,PXL_dn为场A中当前中心像素点下面一行对应的像素点。
根据上述的视频解交错中的隔行视频运动检测系统,其中:对于5*3的像素块,TH_AREA取值为55,TH_AC_CON取值为230,n2为取值为1。
根据上述的视频解交错中的隔行视频运动检测系统,其中:对于5*3的像素块,TH_FREQ取值为95,TH_HIGH取值为650,TH_LOW取值为140。
如上所述,本发明的视频解交错中的隔行视频运动检测方法及其系统,具有以下有益效果:
(1)引入插值场,并采用插值场数据与当前场数据作运动检测运算;
(2)引入连续静止像素块的检测,改善一些局部检测错误;
(3)采用自适应的阈值作为运动判断依据,使判断结果更准确;
(4)在较小的带宽需求的基础上,实现了较好的运动检测效果。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
如图2所示,在本发明的一个优选实施例中,本发明的视频解交错中的隔行视频运动检测方法采用相连的ABC三场视频数据进行计算,场A为当前场,场B为后一场,场C为后后场,具体包括以下步骤:
步骤S1、检测场A中的连续静止像素块。
如图3所示,首先将场A与场C的数据划分成若干个M*N的像素块,然后对场A与场C对应的像素块做SAD计算,得到SAD值SAD_BLK,如果SAD_BLK满足条件SAD_BLK<TH_BLK||SAD_BLK<(PXL_max-PXL_min)*n1,则判断场A中的当前像素块属于静止像素块。其中M*N优选为8*8。
其中,TH_BLK为可调阈值,可根据实际调试结果确定。对于8*8的像素块,参考值为130。PXL_max为场A中当前像素块中的最大像素值,PXL_min为场A中当前像素块中的最小像素值;n1为可调参数,对于8*8的像素块,参考值为3。
如果水平或垂直方向有连续N1个像素块属于静止像素块,则判断这些静止像素块为场A中的连续静止像素块,且场A中这些静止像素块区域中的像素点相对于后一场无运动。其中N1为自然数,取值范围为4-8。
步骤S2、计算插值场。
应用插值算法计算出后一场与场A具有相同相位处的像素值,这些像素值构成后一场的插值场场B’。插值后的各场数据如图4所示,其中黑色圆点表示当前场的像素点;白色圆点表示相邻场的像素点;灰色圆点表示插值场的像素点。
具体地,插值算法包括以下步骤:
1)空域插值
对于每个插值位置,计算插值位置周边像素点在a度、(a+45)度和(a+90)度三个方向上的像素梯度,选择像素梯度最小方向上的两个像素点求像素平均值G,其中0≤a≤180。优选地a为45。如图5所示,|C-D|表示45度像素梯度,|B-E|表示90度像素梯度,|A-F|表示135度像素梯度;假如135度方向像素梯度最小,则G=(A+F)/2。
2)中值滤波
对于每个插值位置,计算中值median(B,E,G,P,P),其中B和E为插值位置上下行对应的像素点的像素值,G为步骤1)中计算得到的像素平均值,P为前一场对应位置的像素值,median表示取中值的函数,同EXCEL中的MEDIAN(number1,number2…)函数。中值滤波结果作为最终插值结果,即作为插值场相应像素点的像素值。
步骤S3、对于场A中的每一个像素点,基于像素点进行运动检测。
参照图6,进行运动检测时,对于场A中的每一个像素点,采用以下步骤进行运动检测:
1)场A与场C做基于像素点的运动检测
将场A中的每一像素点作为中心像素点与其周边像素点构成一个像素块(H*V),并与场C中对应的像素块作SAD计算,计算结果记为SAD_AC。其中,网状圆点表示中心像素点。
其中,H*V像素块可以是5*3和3*3,优选地,本发明中的H*V像素块采用5*3。
2)场A与场B’做基于像素点的运动检测
将场A中每一像素点作为中心像素点与其周边像素点构成一个像素块,与场B’中对应的像素块作SAD计算,计算结果记为SAD_AB。
3)如果SAD_AC>TH_AC或者SAD_AB>TH_AB,则判断该中心像素点相对于后一场有运动,否则,判断该中心像素点相对于后一场无运动。其中TH_AC和TH_AB为阈值。
如果AREA_max-AREA_min>TH_AREA,则TH_AC取固定值TH_AC_CON;
否则,TH_AC=(AREA_max-AREA_min)*n2
其中,AREA_max为场A中当前中心像素点与其周边像素点构成的像素块中的最大像素值;AREA_min为场A中当前中心像素点与其周边像素点构成的像素块中的最小像素值;TH_AREA为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取55;TH_AC_CON为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取230;n2为可调参数,可根据实际调试结果确定,优选地取1。
如果PXL_Freq>TH_FREQ,则TH_AB=TH_HIGH;否则,TH_AB=TH_LOW。
其中,TH_FREQ为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取95;TH_HIGH为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取650;TH_LOW为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取140;PXL_Freq=|2*PXL_cur-PXL_up-PXL_dn|,PXL_cur为场A中的当前中心像素点;PXL_up为场A中当前中心像素点上面一行对应的像素点,PXL_dn为场A中当前中心像素点下面一行对应的像素点。
需要说明的是,步骤S1和步骤S2-S3可以是先后依次执行,也可以同时执行。
参照图7,在本发明的另一个优选实施例中,本发明的视频解交错中的隔行视频运动检测方法采用相连的ABC三场视频数据进行计算,场A为当前场,场B为后一场,场C为后后场,具体包括以下步骤:
步骤S1、检测场A中的连续静止像素块。
具体地,首先将场A与场C的数据划分成若干个M*N的像素块,然后对场A与场C对应的像素块做SAD计算,得到SAD值SAD_BLK,如果SAD_BLK满足条件SAD_BLK<TH_BLK||SAD_BLK<(PXL_max–PXL_min)*n1,则判断场A中当前像素块属于静止像素块。其中M*N优选为8*8。
其中,TH_BLK为可调阈值,可根据实际调试结果确定。对于8*8的像素块,参考值为130。PXL_max为场A中当前像素块中的最大像素值,PXL_min为场A中当前像素块中的最小像素值;n1为可调参数,对于8*8的像素块,参考值为3。
如果水平或垂直方向有连续N1个像素块属于静止像素块,则判断这些静止像素块为场A中的连续静止像素块,且场A中这些静止像素块区域中的像素点相对于后一场无运动。
步骤S2、计算插值场。
应用插值算法计算出后一场与场A具有相同相位处的像素值,这些像素值构成后一场的插值场场B’。
具体地,插值算法包括以下步骤:
1)空域插值
对于每个插值位置,计算插值位置周边像素点在a度、(a+45)度和(a+90)度三个方向上的像素梯度,选择像素梯度最小方向上的两个像素点求像素平均值G,其中0≤a≤180。优选地a为45。
2)中值滤波
对于每个插值位置,计算中值median(B,E,G,P,P),其中B和E为插值位置上下行对应的像素点的像素值,G为步骤1)中计算得到的像素平均值,P为前一场对应位置的像素值,median表示取中值的函数。中值滤波结果作为最终插值结果,即作为插值场相应像素点的像素值。
步骤S3、对于场A中不处于连续静止像素块中的每一个像素点,基于像素点进行运动检测。
对于场A处于连续静止像素块中的每一个像素点,判断其相对于后一场无运动;对于场A不处于连续静止像素块中的每一个像素点,进行运动检测。
具体地,步骤S3包括以下步骤:
1)场A与场C做基于像素点的运动检测
将场A中不处于连续静止像素块的每一像素点作为中心像素点与其周边像素点构成一个像素块(H*V),并与场C中对应的像素块作SAD计算,计算结果记为SAD_AC。
其中,H*V像素块可以是5*3和3*3,优选地,本发明中的H*V像素块采用5*3。
2)场A与场B’做基于像素点的运动检测
将场A中不处于连续静止像素块的每一像素点作为中心像素点与其周边像素点构成一个像素块,与场B’中对应的像素块作SAD计算,计算结果记为SAD_AB。
3)如果SAD_AC>TH_AC或者SAD_AB>TH_AB,则判断该中心像素点相对于后一场有运动,否则,判断该中心像素点相对于后一场无运动。其中TH_AC和TH_AB为阈值。
如果AREA_max-AREA_min>TH_AREA,则TH_AC取固定值TH_AC_CON;
否则,TH_AC=(AREA_max-AREA_min)*n2
其中,AREA_max为场A中当前中心像素点与其周边像素点构成的像素块中的最大像素值;AREA_min为场A中当前中心像素点与其周边像素点构成的像素块中的最小像素值;TH_AREA为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取55;TH_AC_CON为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取230;n2为可调参数,可根据实际调试结果确定,对于5*3的像素块,优选地取1。
如果PXL_Freq>TH_FREQ,则TH_AB=TH_HIGH;否则,TH_AB=TH_LOW。
其中,TH_FREQ为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取95;TH_HIGH为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取650;TH_LOW为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取140;PXL_Freq=|2*PXL_cur-PXL_up-PXL_dn|,PXL_cur为场A中的当前中心像素点;PXL_up为场A中当前中心像素点上面一行对应的像素点,PXL_dn为场A中当前中心像素点下面一行对应的像素点。
需要说明的是,步骤S1和步骤S2可以是先后依次执行,也可以同时执行,待步骤S1和步骤S2均完成后,再执行步骤S3。
参照图8,在本发明的一个优选实施例中,视频解交错中的隔行视频运动检测系统采用相连的ABC三场视频数据进行计算,场A为当前场,场B为后一场,场C为后后场,包括连续静止像素块检测模块、插值场计算模块和基于像素点的运动检测模块。
连续静止像素块检测模块用于检测场A中的连续静止像素块。
具体地,首先将场A与场C的数据划分成若干个M*N的像素块,然后场A与场C对应的像素块做SAD计算,得到SAD值SAD_BLK,如果SAD_BLK满足条件SAD_BLK<TH_BLK||SAD_BLK<(PXL_max-PXL_min)*n1,则判断场A中当前像素块属于静止像素块。其中M*N优选为8*8。
其中,TH_BLK为可调阈值,可根据实际调试结果确定。对于8*8的像素块,参考值为130。PXL_max为场A中当前像素块中的最大像素值,PXL_min为场A中当前像素块中的最小像素值;n1为可调参数,对于8*8的像素块,参考值为3。
如果水平或垂直方向有连续N1个像素块属于静止像素块,则判断这些静止像素块为场A中的连续静止像素块,且场A中这些静止像素块区域中的像素点相对于后一场无运动。
插值场计算模块用于计算插值场。
具体地,插值场计算模块应用插值算法计算出后一场与场A具有相同相位处的像素值,这些像素值构成后一场的插值场场B’。
具体地,插值算法包括以下步骤:
1)空域插值
参照图5,对于每个插值位置,计算插值位置周边像素点在a度、(a+45)度和(a+90)度三个方向上的像素梯度,选择像素梯度最小方向上的两个像素点求像素平均值G,其中0≤a≤180。优选地a为45。
2)中值滤波
对于每个插值位置,计算中值median(B,E,G,P,P),其中B和E为插值位置上下行对应的像素点的像素值,G为步骤1)中计算得到的像素平均值,P为前一场对应位置的像素值,median表示取中值的函数。中值滤波结果作为最终插值结果,即作为插值场相应像素点的像素值。
基于像素点的运动检测模块与连续静止像素块检测模块和插值场计算模块相连,用于基于像素点对场A中的每个像素点进行运动检测。
具体地,基于像素点进行运动检测时,对于场A中每一个像素点,采用以下步骤进行运动检测:
1)场A与场C做基于像素点的运动检测
将场A中每一像素点作为中心像素点作为中心像素点与其周边像素点构成一个像素块(H*V),并与场C中对应的像素块作SAD计算,计算结果记为SAD_AC。
其中,H*V像素块可以是5*3和3*3,优选地,本发明中的H*V像素块采用5*3。
2)场A与场B’做基于像素点的运动检测
将场A中每一像素点作为中心像素点与其周边像素点构成一个像素块,与场B’中对应的像素块作SAD计算,计算结果记为SAD_AB。
3)如果SAD_AC>TH_AC或者SAD_AB>TH_AB,则判断该中心像素点相对于后一场有运动,否则,判断该中心像素点相对于后一场无运动。其中TH_AC和TH_AB为阈值。
如果AREA_max-AREA_min>TH_AREA,则TH_AC取固定值TH_AC_CON;
否则,TH_AC=(AREA_max-AREA_min)*n2
其中,AREA_max为场A中当前中心像素点与其周边像素点构成的像素块中的最大像素值;AREA_min为场A中当前中心像素点与其周边像素点构成的像素块中的最小像素值;TH_AREA为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取55;TH_AC_CON为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取230;n2为可调参数,可根据实际调试结果确定,对于5*3的像素块,优选地取1。
如果PXL_Freq>TH_FREQ,则TH_AB=TH_HIGH;否则,TH_AB=TH_LOW。
其中,TH_FREQ为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取95;TH_HIGH为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取650;TH_LOW为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取140;PXL_Freq=|2*PXL_cur-PXL_up-PXL_dn|,PXL_cur为场A中的当前中心像素点;PXL_up为场A中当前中心像素点上面一行对应的像素点,PXL_dn为场A中当前中心像素点下面一行对应的像素点。
参照图9,在本发明的另一个优选实施例中,视频解交错中的隔行视频运动检测系统采用相连的ABC三场视频数据进行计算,场A为当前场,场B为后一场,场C为后后场,包括连续静止像素块检测模块、插值场计算模块和基于像素点的运动检测模块。
连续静止像素块检测模块用于检测场A中的连续静止像素块。
具体地,首先将场A与场C的数据划分成若干个M*N的像素块,然后场A与场C对应的像素块做SAD计算,得到SAD值SAD_BLK,如果SAD_BLK满足条件SAD_BLK<TH_BLK||SAD_BLK<(PXL_max-PXL_min)*n1,则判断场A中当前像素块属于静止像素块。其中M*N优选为8*8。
其中,TH_BLK为可调阈值,可根据实际调试结果确定。对于8*8的像素块,参考值为130。PXL_max为场A中当前像素块中的最大像素值,PXL_min为场A中当前像素块中的最小像素值;n1为可调参数,对于8*8的像素块,参考值为3。
如果水平或垂直方向有连续N1个像素块属于静止像素块,则判断这些静止像素块为场A中的连续静止像素块,且场A中这些静止像素块区域中的像素点相对于后一场无运动。
插值场计算模块用于计算插值场。
具体地,插值场计算模块应用插值算法计算出后一场与场A具有相同相位处的像素值,这些像素值构成后一场的插值场场B’。
具体地,插值算法包括以下步骤:
1)空域插值
参照图5,对于每个插值位置,计算插值位置周边像素点在a度、(a+45)度和(a+90)度三个方向上的像素梯度,选择像素梯度最小方向上的两个像素点求像素平均值G,其中0≤a≤180。优选地a为45。
2)中值滤波
对于每个插值位置,计算中值median(B,E,G,P,P),其中B和E为插值位置上下行对应的像素点的像素值,G为步骤1)中计算得到的像素平均值,P为前一场对应位置的像素值,median表示取中值的函数。中值滤波结果作为最终插值结果,即作为插值场相应像素点的像素值。
基于像素点的运动检测模块与连续静止像素块检测模块和插值场计算模块相连,用于基于像素点,对场A不处于连续静止像素块中的每一个像素点,进行运动检测。
其中,对于场A处于连续静止像素块中的每一个像素点,判断其相对于后一场无运动。
具体地,对场A不处于连续静止像素块中的每一个像素点,进行运动检测包括以下步骤:
1)场A与场C做基于像素点的运动检测
将场A中不处于连续静止像素块的每一像素点作为中心像素点与其周边像素点构成一个像素块(H*V),并与场C中对应的像素块作SAD计算,计算结果记为SAD_AC。
其中,H*V像素块可以是5*3和3*3,优选地,本发明中的H*V像素块采用5*3。
2)场A与场B’做基于像素点的运动检测
将场A中不处于连续静止像素块的每一像素点作为中心像素点点与其周边像素点构成一个像素块,与场B’中对应的像素块作SAD计算,计算结果记为SAD_AB。
3)如果SAD_AC>TH_AC或者SAD_AB>TH_AB,则判断该中心像素点相对于后一场有运动,否则,判断该中心像素点相对于后一场无运动。其中TH_AC和TH_AB为阈值。
如果AREA_max-AREA_min>TH_AREA,则TH_AC取固定值TH_AC_CON;
否则,TH_AC=(AREA_max-AREA_min)*n2
其中,AREA_max为场A中当前中心像素点与其周边像素点构成的像素块中的最大像素值;AREA_min为场A中当前中心像素点与其周边像素点构成的像素块中的最小像素值;TH_AREA为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取55;TH_AC_CON为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取230;n2为可调参数,可根据实际调试结果确定,对于5*3的像素块,优选地取1。
如果PXL_Freq>TH_FREQ,则TH_AB=TH_HIGH;否则,TH_AB=TH_LOW。
其中,TH_FREQ为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取95;TH_HIGH为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取650;TH_LOW为可调阈值,可根据实际调试结果确定,对于5*3的像素块,优选地取140;PXL_Freq=|2*PXL_cur-PXL_up-PXL_dn|,PXL_cur为场A中的当前中心像素点;PXL_up为场A中当前中心像素点上面一行对应的像素点,PXL_dn为场A中当前中心像素点下面一行对应的像素点。
由上可知,在图8所示的实施例中,不管连续静止像素块的检测结果如何,基于像素点的运动检测始终在进行,两者是并行或者串行的;而在图9所示的实施例中,先进行连续静止像素块检测,处于连续静止像素块内部的像素点不再做基于像素点的运动检测,只有不处于连续像素块内部的像素点才会进一步做基于像素点的运动检测,两者是串行的。
综上所述,本发明的视频解交错中的隔行视频运动检测方法及其系统引入插值场,并采用插值场数据与当前场数据作运动检测运算;引入连续静止像素块的检测,改善一些局部检测错误;采用自适应的阈值作为运动判断依据,使判断结果更准确;在较小的带宽需求的基础上,实现了较好的运动检测效果。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。