发明内容
本发明的目的是提出一种用于检测视频帧的序列的电影模式的方法,其仅需要存储少量的数据,然后数据能够被存储在FPGA电路的内部存储器中。
为此,本发明涉及一种用于检测包括至少三个连续的视频帧的序列的电影模式或摄像机模式的方法,其特征在于,它包括以下步骤:
-确定每个视频帧的视频电平的直方图,
-对于该序列的每个视频帧,计算表示所述视频帧的直方图和下一视频帧的直方图之间的直方图差的值,其被称为直方图差值,
-比较该序列的每个视频帧的直方图差值与至少一个比较值,以对于所述每个视频帧产生差的参数,该差的参数的值表示所述视频帧相对于下一视频帧不同与否的特征,以及
-比较由该序列的视频帧的差参数的值形成的图样与多个预定的图样,以产生标识所述视频帧的序列的电影模式或摄像机模式的模式信息。
该方法基本上需要存储两个直方图,用于计算每个视频帧的直方图差的步骤。每个直方图的大小按照千字节计,因此这两个直方图可以被本地存储在FPGA类型的可编程电路中。
有利地,所述模式信息也标识该序列的电影模式类型,例如电影模式2:2(序列最初为电影格式并且已经通过2:2下拉转换被变换)或电影模式3:2(序列最初为电影格式并且已经通过3:2下拉转换被变换)。
有利地,对于该序列的每个视频帧产生模式信息,所述模式信息也标识所考虑的视频帧是否为复制的视频帧。
根据特定实施例,对于当前视频帧,所述至少一个比较值属于包括下列项的组:
-先前视频帧的直方图差值,
-下一视频帧的直方图差值,和
-预定阈值。
根据特定实施例,用下列方式确定当前视频帧的直方图差值:
-对于每个视频电平,计算在当前视频帧中的所述视频电平的出现值(occurrence value)和下一视频帧中的所述视频电平的出现值之间的差,以便产生所述视频电平的每一个的出现差(occurrence difference),以及
-将所有视频电平的出现差的绝对值相加,以便产生当前视频帧的所述直方图差值。
根据一种变形,用下列方式确定当前视频帧的直方图差值:
-对于包括在0和N之间的每个视频电平i和包括在-n和n之间的每个偏移值j,计算当前视频帧中视频电平i的出现值和下一视频帧中视频电平i+j的出现值之间的差,以便对于每个视频电平i产生最多2n+1个出现(occurrence),
-对于每个视频电平i,从所述2n+1个出现差当中选择绝对值出现差中最低的,其被称为最小的出现,以及
-将所有视频电平的最小的出现差相加,以便产生当前视频帧的所述直方图差值。
该实施例变形使得能够克服当前视频帧相对于下一视频帧或下一视频帧相对于当前视频帧的可能的视频电平偏移。
意欲产生差参数的比较步骤也可以以不同的方法实现。
根据实施例,直方图差值与非零的预定阈值相比较,该非零的预定阈值是包含在该视频帧中的像素的数目和分配所述视频帧的预定的最大噪声的函数,以及如果考虑的视频帧的直方图差值大于所述阈值,则为所考虑的视频帧的类似参数分配第一值(例如,值“1”),如果不大于,则分配第二值(例如值“0”)。该差的第一值指示所考虑的视频帧不同于下一视频帧,该类似参数的第二值指示所考虑的视频帧明显等于下一视频帧。在此实施例中,该类似参数的确定非常依赖于阈值,而该阈值非常依赖于该预定的最大噪声。
根据不包括阈值的实施例,为了确定当前视频帧的差参数,所述当前视频帧的直方图差值与前一视频帧的直方图差值以及下一视频帧的直方图差值相比较,如果所述当前视频帧的所述直方图差值同时大于所述下一视频帧的所述直方图差值和所述前一视频帧的所述直方图差值,则为该当前视频帧的差参数分配第一值(例如,值“1”),而如果不大于,则分配第二值(例如值“0”)。如前一实施例所述,该类似参数值指示所考虑的视频帧不同于下一视频帧,该第二类似参数值指示所考虑的视频帧明显等于下一视频帧。
有利地,本发明的方法也包括:在确定视频电平直方图的步骤之前,对该序列的视频帧空间滤波的步骤,以便使得它们的视频内容平滑,因而降低视频帧中噪声内容对检测的影响。
有利地,本发明的方法也包括:在比较由差参数形成的图样与预定的图样的步骤之前,对所述差参数序列进行时间滤波的步骤。
根据特定实施例,对于所述序列的每个视频帧产生模式信息,所述模式信息也包括指示所述视频帧是否为源视频帧的比特。
最后,本发明的另一个目的是实现先前描述的方法的设备。更具体地,本发明也涉及一种用于检测包括至少三个连续的视频帧的序列的电影模式或摄像机模式的设备,其特征在于,该设备包括:
-第一计算电路,确定每个视频帧的视频电平的直方图,
-第二计算电路,对于该序列的每个视频帧,计算表示所述视频帧的直方图和下一视频帧的直方图之间的直方图差的值,其被称为直方图差,
-第一比较电路,比较该序列的每个视频帧的直方图差值与至少一个比较值,并且对于所述视频帧的每一个产生差的参数,该差的参数的值表示所述视频帧相对于下一视频帧不同与否的特征,
-第二比较电路,比较由该序列的视频帧的差参数的值形成的图样与多个预定的图样,以产生标识所述视频帧的所述序列的电影模式或摄像机模式的模式信息(MODE),以及
-控制单元,控制所述第一和第二计算电路和所述第一和第二比较电路。
具体实施方式
在本说明书的下一部分中,术语视频帧用于指定与图像或图像的一部分(例如,在隔行扫描的情况下的半个图像)对应的帧。此视频帧可以无差别地属于电影模式或视频模式下的序列。
此外,如前所示,电影模式下的视频帧的序列指定包括按照2:2或3:2格式转换而复制的一个或多个帧的帧序列。自然地,也存在其它格式转换,诸如2:3或3:2:3:2:2,但是我们在这里将我们自己限制为检测3:2或2:2电影模式的序列。视频模式或摄像机模式下的视频帧的序列指定不包括复制的帧的摄像机格式下的视频帧的序列。
最后,源视频帧指定来自于形成电影(每秒24或25个图像)或视频格式(每秒50或60个图像)的视频帧的序列的非复制的视频帧。
根据本发明,序列的电影或摄像机模式的检测基于要被分析的序列的视频帧的视频电平的直方图的计算和比较。
本发明的方法的步骤的流程图示出在图3中。这些步骤也由图4表示的实施例示出。在此示例中,该方法应用于4个连续的视频帧,其参考标号为T、T+1、T+2和T+3。
根据第一步骤(其参考标号为E1),对于序列的每个视频帧确定视频电平的直方图。因而,对于每个视频电平,确定其在被考虑的视频帧中的出现(occurrence)。如果视频电平用8比特编码,则获得256个出现值,每个与特定的视频电平相关联。在图4的示例中,计算4个视频帧的每一个的视频电平的直方图。然后获得4个直方图,记为HT、HT+1、HT+2和HT+3。
根据第二步骤(其参考标号为E2),然后对于每一个视频帧计算表示被考虑的视频帧和下一视频帧的直方图之间的差的值。此值,被称为直方图差值以及对于帧T被记为DT,例如用下列方式获得:
其中,-HT(i)是视频电平i在视频帧T的直方图HT中的出现值,以及
-HT+1(i)是视频电平i在视频帧T+1的直方图HT+1中的出现值。
在此示例中以及在本说明书的其余部分中,认为视频帧的视频电平用8比特编码并且具有包括在0和255之间的值。
因而,对于每个视频电平i,计算视频电平i在当前视频帧中的出现值HT(i)和此视频电平在下一视频帧中的出现值HT+1(i)之间的差。对于所有视频电平计算此出现差HT(i)-HT+1(i),然后将所有这些出现差的绝对值相加以产生视频帧T的直方图差的值。
如果视频帧T和T+1的直方图的内容非常接近或相同,则值DT很低或为零。
在图4的示例中,因而从步骤E2中,对于视频帧T、T+1和T+2,分别获得3个直方图差值,记为DT、DT+1和DT+2。
根据实施例变形,不同地计算直方图差的值DT,以克服会将一个视频帧的视频电平相对于另一个偏移的噪声。依据此变形,对于每个视频电平i,不仅计算其在帧T中的出现值和其在帧T+1中的出现值之间的差,而且计算其在帧T中的出现值和相邻视频电平i+j在帧T+1中的出现值之间的差,并且仅仅保持最小的差值。如果限制到最接近的视频电平(也即电平i-1和i+1),则通过以下等式表达直方图差:
此变形由图5中的示例示出。为了对于帧T的视频电平102计算直方图差,计算|HT(102)-HT+1(102)|、|HT(102)-HT+1(103)|和|HT(102)-HT+1(101)|,并选择最小值。为了计算直方图差的值DT,对于每个视频电平执行此计算和此选择并且将选择的最小值相加。
根据第三步骤(其参考标号为E3),对于每个视频帧,将当前视频帧的直方图差的值与至少一个其它直方图差值或一个预定阈值相比较,以推导表示当前视频帧相对于下一视频帧不同与否的特征的差参数(对于当前视频帧T记为PT)。如果这两个视频帧不同,则将值“1”分配给当前视频帧的差参数,以及如果相同,则分配值“0”。
多于一个实施例可以用来执行差参数的比较和产生的此步骤E3。
根据第一实施例,直方图差参数与预定阈值S0相比较。此值不为零,因为必须考虑影响比较的视频帧的可能的噪声。阈值S0是所考虑的视频帧中的像素数和影响每个视频帧的最大噪声的函数。如果直方图差值大于或等于阈值S0,则为差参数PT分配值“1”,以及如果直方图差值小于阈值S0,则为其分配值“0”。此阈值S0是像素数,并且例如等于视频帧的像素总数的百分数,此百数比定义受视频帧中的噪声的影响的像素的最大数目。此百分数例如为5%。则认为噪声最多影响该帧的5%的像素。在HD-Ready格式(1366*768像素)的图像的情况下,阈值S0例如等于1366*768*0.05=52424.4个像素。
根据没有阈值的第二实施例,当前视频帧的直方图差值与下一视频帧和前一视频帧的直方图差值相比较。例如,对于当前帧T,如果满足以下两个条件,则为差参数PT分配值“1”:
·DT>DT-1
·DT>DT+1
在其它情况下,为差参数PT分配值“0”。在3:2电影模式下的序列的情况下的比较步骤示出在图6中,其中已经为该序列计算了直方图差DT、DT+1、DT+2、DT+3、DT+4和DT+5。直方图差DT+1和DT+3遵守先前描述的两个条件。因而,为差参数PT+1和PT+3分配值“1”,并且为其它差参数分配值“0”。然后获得特征序列10100。
步骤E3的此第二实施例具有不使用前一实施例中定义的阈值的优点。
自然可以设想步骤E3的其它实施例,其仅仅将直方图差DT与直方图差DT+1或DT-1中的一个或另一个比较,并且可能与阈值进行比较。
如果再次参考图3以及图4,本发明的方法的最后步骤(其参考标号为E4)在于,将由在步骤E3中确定的视频帧的差参数形成的图样(pattern)与对应于摄像机模式以及不同的电影模式的预定图样相比较,以便推出处理的视频帧的序列是处于摄像机模式还是电影模式。有利地,此图样比较也使得能够确定序列的电影模式的类型,例如2:2电影模式或3:2电影模式,以及该序列中源视频帧(非复制的视频帧)的位置。
基本上,由两个连续的差参数PT和PT+1形成的图样足以区分处于摄像机模式的序列和处于电影模式的序列。图样11对应于摄像机模式,图样01或10对应于电影模式。根据优选实施例,该图样包括较大数量的或连续的差参数,以区分不同类型的电影模式。需要至少6个连续的差参数来清楚地区分3:2电影模式和2:2电影模式。
在下面的表中,定义了八个预定图样,每个包括6个连续的差参数值。图样n°1涉及摄像机模式。图样n°2和n°3涉及2:2电影模式并且由表征2:2电影模式的基本图样01的重复形成。图样4到8涉及3:2电影模式并且由表征电影模式3:2的基本图样10010的重复形成。
在此表中:
-图样n°1涉及摄像机模式下的视频帧的序列,该序列的每个视频帧涉及不同的源视频帧,为其确定了差参数的6个视频帧涉及6个不同的源视频帧,因此该序列可以被写作ABCDEF,其中每个字母代表特定的源视频帧,
-图样n°2涉及2:2电影模式下的视频帧的序列,其中第一视频帧等于第二视频帧(序列:AABBCC),
-图样n°3涉及2:2电影模式下的视频帧的序列,其中第一帧不同于第二帧(序列:ABBCCD),
-图样n°4涉及3:2电影模式下的视频帧的序列,其中三个第一帧相等(序列:AAABBC),
-图样n°5涉及3:2电影模式下的视频帧的序列,其中第二、第三和第四视频帧相等(序列:ABBBCC),
-图样n°6涉及3:2电影模式下的视频帧的序列,其中第三、第四和第五视频帧相等(序列:AABBBC),
-图样n°7涉及3:2电影模式下的视频帧的序列,其中第四、第五和第六视频帧相等(序列:ABBCCC),以及
-图样n°8涉及3:2电影模式下的视频帧的序列,其中第五、第六和第七视频帧相等(序列:AABBCC)。
因而,图样n°3到8涉及3:2电影模式,此模式的基本图样10100特征逐个图样地偏移一个帧。
可以看出,摄像机模式和电影模式之间的区别可以通过三个连续的视频帧来实现。如果使用步骤E3的第一实施例(将直方图差与阈值S0比较),则三个视频帧使得能够计算两个直方图差和两个参数差。如果使用步骤E3的第二实施例,则此区别需要额外的视频帧。
然后,2:2电影模式(序列n°3)和3:2电影模式(序列n°8)之间的区别可以通过七个连续的视频帧来实现。如果使用步骤E3的第一实施例(将直方图差与阈值S0比较),则七个视频帧使得能够计算六个直方图差和六个参数差。如果使用步骤E3的第二实施例,则此区别需要额外的视频帧。
优选地,对大量的视频帧-至少二十个连续的视频帧执行差参数的确定。因此时间滤波器可以应用于由差参数形成的图样上,以更清楚地显示基本图样(对于2:2电影模式为10,而对于3:2电影模式为10100)的重复,因而在执行步骤E4之前校正序列,以抑制由于噪声引起的误差。
作为步骤E4的结果,因而获得模式信息(图4中记为MODE),用于标识序列的摄像机模式或电影模式。根据有益的实施例,该模式信息也标识电影模式的类型。此信息包括例如2比特。用下列方式标识电影和摄像机模式以及电影模式的类型:
模式 |
MODE[1..0] |
摄像机模式 |
00 |
2:2电影模式 |
01 |
3:2电影模式 |
10 |
根据优选实施例,对于处理的序列的每个视频帧传递模式信息MODE,则该模式信息包括附加位MODE[3],用于指示处理的视频帧是源视频帧还是复制的视频帧。
帧 |
MODE[3] |
源视频帧 |
1 |
复制的视频帧 |
0 |
在这里详细描述的实施例中,其中DT为帧T和帧T+1之间的直方图差,源视频帧(MODE[3]=1)是参数差PT等于0的视频帧T,其前面是差参数PT-1等于1的视频帧T-1。其它视频帧是复制的视频帧(MODE[3]=0)。
有利地,在该方法开始时将空间滤波应用于视频帧,以使得它们的内容平滑并且降低噪声对序列的模式的确定的过程的影响。
此方法仅需要存储视频电平的两个直方图和预定序列。存储两个直方图所需的存储器中的资源为:
·格式HD-Ready(1366*768)
-每直方图类的像素的最大数目=1366*768=1049088或21比特
-该直方图中的256个视频电平或256个类
-存储器大小=2*21*256=10752比特
·格式Full-HD(1920*1080)
-每直方图类的像素的最大数目=1920*1080=2073600或21比特
-该直方图中的256个视频电平或256个类
-存储器大小=2*21*256=10752比特
因此标准FPGA电路的存储器资源就足够了。
本发明也涉及能够实现先前描述的方法的设备(其参考标号为图7中的10)。在此图中,所示的模块是可以或可以不对应于物理上可区别的单元的功能单元。例如,这些模块或它们中的一些可以被集中在单个组件中,或者构成同一软件的功能。相反地,一些模块可以由单独的物理实体组成。设备10包括:空间滤波器100,使得输入到设备的视频帧的视频内容平滑;用于计算并存储直方图的电路110,以按照本发明的方法的步骤E1来计算并存储视频帧的直方图;用于计算直方图差的电路120,以对于每个视频帧,按照本发明的方法的步骤E2,由存储在电路110中的直方图来确定直方图差;第一比较电路130,用于按照本发明的方法的步骤E3,由直方图差确定差参数;时间滤波器140,用于对由电路130产生的差参数的序列进行时间滤波;第二比较电路150,用于比较差参数与预定图样,以传递模式信息MODE;以及控制单元160,用于控制电路组100到150。
尽管已经参考不同的特定实施例描述了本发明,但是显然它不是限制性的,并且它包括描述的方式的所有技术等效物以及它们的组合,只要它们落入本发明的范围。