专利名称:视频比特流中的场景切换检测的制作方法
技术领域:
本发明涉及MPEG类型视频,尤其涉及在视频比特流中的场景切换检测。
背景技术:
基于MPEG的视频序列能够被分成在长度上从小于一秒到几分钟或者更长变化的场景。这些划分或者场景切换的检测使得附加特征的值具有一个较宽的变化范围。例如,能够从每一个场景中选择出一帧,从而产生一个能够概括出一个视频记录的内容的情节串连图板。而且,也能够使用一个视频编辑器以一个场景接一个场景为基础来管理视频记录,例如,对场景进行重新排序,或者对一个场景中的每一帧应用图像处理技术。
MPEG视频序列包括三种类型帧,内帧(I),帧间帧(P)和双向帧(B)。I帧使用与JPEG类似的方法编码一幅静止图像。P帧是根据前面的I或者P帧进行预测的帧。B帧是根据前面的I或者P帧和接下来的I帧或者P帧进行预测的帧。这三种类型的帧利用离散余弦变换(DCT)来编码,离散余弦变换利用了帧与帧之间空间方向上的冗余。但是,对于I帧,DCT信息直接来源于一个图像采样,而对于P和B帧,DCT信息来源于预测之后的一个剩余误差。
每一帧被分成了多个宏块。每一个宏块包含与多个亮度块(例如,Y1,Y2,Y3和Y4)以及多个色度块(例如,在一个YUV系统中的一个U和一个V)有关的信息。这些块中的每一个都包含多个像素(pels)或者图像元素,例如一个8×8块。
当视频已经被编码成一个类似MPEG比特流时,场景切换检测可以在不全部解码该比特流的情况下进行,这提高了视频处理的速度。诸如宏块编码类型,运动矢量以及DCT系数的附加信息也能够在不全部解码该比特流的情况下,从比特流中抽取。
一种场景切换的检测方法可以如下执行1.对于I帧,确定DCT系数之间的均方差;2.对于P帧,所建议的方法确定前向预测宏块的数目;3.对于B帧,计数前向编码宏块的数目和后向编码的宏块的数目的较小值;以及4.然后在这些数目与帧数的图表中确定一个最小值。
在另一种所建议的检测场景切换的方法中对于I帧,使用根据DC系数建立的彩色直方图之间的差,并且组合有关不进行运动补偿的宏块数目与进行运动补偿的宏块数目之间的比值信息。所建议的方法在与帧数有关的图表中查找峰值。对于B帧,确定前向预测与后向预测之间的比值。在所有情况下,都利用局部自适应门限技术来识别峰值。
另一种方法对于具有运动补偿的,根据离散余弦(DC)系数所建立的所有的帧(I,P,B)都使用直方图。
但是,目前不存在根据一个子图像组(GOP)中所有预测的全局检测来进行场景切换检测的系统或者方法。
发明概述依照本发明的原则,在一个子GOP中根据所有预测的全局检测来检测场景切换。首先检测多个潜在场景切换的每一个切换的编码宏块的数目。然后确定多个潜在场景切换的每一个切换的预测宏块的数目。接下来确定与潜在场景切换相应的多个帧中每一个帧的编码宏块数目和预测宏块数目的比值。选择具有期望比值的帧。该比值与一个门限值相比较。如果确定该比值满足门限值,就检测出一个场景切换。
附图的简要说明下面将参考附图更详细地描述本发明的优选实施例。
附
图1表明根据本发明的原则,在一个子GOP中的示例场景切换;
附图2是一个表明根据本发明的原则的场景切换检测的第一种方法的流程图;以及附图3是一个表明根据本发明的原则的场景切换检测的第二种方法的流程图。
详细描述根据本发明的原则,场景切换检测是通过以下方式进行的收集有关每一个帧间帧(P)或者双向帧(B)中的前向预测和后向预测宏块的数目的数据,并且在一个子GOP的级别上(沿着前一B帧的每一固定帧)对其进行分析,而不是单独考虑每一个帧。应当理解,本发明可以通过各种硬件,软件,固件,专用处理器或者他们的组合来实现。在本发明的一个实施例中,本发明是作为一个切实包含在一个程序存储设备中的一个应用程序使用软件来实现的。该应用程序可以被上传到一个包含任意合适结构的机器上,也可以由该机器来执行。最好是,该机器在一个具有诸如一个或者多个中央处理单元(CPU),一个随机访问存储器(RAM),以及输入/输出(I/O)接口的硬件的计算机平台中实施。该计算机平台也包括一个操作系统以及微指令代码。这里描述的各种处理和功能可以是微指令代码的一部分,也可以是通过操作系统执行的应用程序(或者它们的组合)的一部分。此外,诸如附加数据存储设备和一个打印设备的各种其他的外围设备也可以连接到该计算机平台。
应当进一步理解,由于附图中描述的一些构成系统元件和方法步骤可能以软件实现,因此实际的连接、互相间的连接关系、或者系统元件(或者处理步骤)之间的功能关系可能随本发明被编程的方式而改变。根据这里所给出的本发明的教导,本领域的技术人员能够预计出本发明的这些以及相似的实现或者结构。
对于每一个P或者B帧,记录进行前向预测的宏块的数目和进行后向预测(仅在B帧中发现)的宏块的数目。检测每一固定帧(anchorframe)、内帧(I)或者P,以及所有紧挨前面的B帧的数据。
如果一个宏块被错误的预测,在运动补偿之后的剩余将很大,为了补偿该预测,需要较大的DCT系数。对于这些预测,非常可能预测是伪造的(超过百分之五十)。就是说,预测所基于的一个固定帧宏块可能与预测帧中的宏块没有实际的联系,但是该固定帧非常相似使得可能根据它进行一个预测。因此,在收集统计量时,这样的宏块就被忽略。尤其是,当计数前向预测和后向预测的宏块时,检查DCT系数的全部能量(平均信息量,熵)。DCT系数的全部能量是非DC系数的平方和。对于前向预测或者后向预测的数目(分别为nFwd和nBwd),或者对于编码宏块的数目(nCode),如果该能量大于一个门限值,不计数该宏块。对于MPEG-2,已经发现的一个典型的门限值是大约500。
对于一个固定帧,分析子GOP中每一帧的预测图样。参照图1,其描述了包含两个B帧和一个P帧的一个子GOP。一个场景切换的潜在位置包括位于帧B1102的前面,帧B1102和帧B2103之间,以及帧B2103和帧P3104之间。此外,如果帧是隔行扫描的,场景切换可能分别发生在105-107之间的任意三帧的场之间。
根据本发明的一个实施例,如果在108发生了一个场景切换,由于帧I/P0101与这些帧中的任意一个都不相关,所以在帧B1102,B2103或者P3104中几乎没有前向预测宏块。同样,如果在109发生了一个场景切换,由于帧B1102与预测所依据的帧P3104之间不相关,所以在帧B1102中几乎没有后向预测宏块;由于帧I/P0101与这些帧无关,因此我们期望在帧B2103或者P3104中几乎没有前向预测宏块。
这样,在108发生场景切换的可能性的测量就是帧B1102,B2103或者P3104中前向预测宏块数目的和。在109发生场景切换的可能性的测量就是帧B1102中后向预测的宏块的数目加上帧B2103和P3104中前向预测宏块的数目;在110中的场景切换的可能性与此类似。这样在相应的点发生场景切换的可能性就随着前向预测和后向预测宏块的全部数目的减小而增加。
参照图2,一旦确定当前图像(p)是P或者B帧201,在该帧中编码宏块的总数目(nCode[p])就被设定为具有小于一个energyThresh的AcEnergy的宏块的数目202。该帧中前向预测宏块的总数目(nFwd[p])被设定为具有小于一个energyThresh的AcEnergy并且进行前向预测的宏块的数目203。该帧中后向预测的宏块的数目(nBwd[p])被设定为具有小于一个energyThresh的AcEnergy并且进行后向预测的宏块的数目204。
现在参照图3,根据步骤301,判断p是否是一个I帧或者一个P帧。根据步骤302,如果p不是一个I帧或者P帧,那么直到该子GOP结束也不进行场景切换检测。根据步骤303,判断p是否是一个I帧,以及前面的图像是否是一个I帧或者一个P帧。根据步骤304,如果确定p是一个I帧,并且前面的图像是I或者P帧,那么在该子GOP中就没有检测出一个场景切换。一旦确定p是P类型帧,或者前面的图像是B类型帧,那么在步骤305-311中收集有关当前子GOP的数据。根据步骤305,在子GOP中,对于每一场f,将场f与前面的场之间交叉的潜在场景切换的预测计数(predMBs[f])以及穿过该边界进行预测的宏块的计数(codedMBs[f])初始化为0。
根据步骤307,对于子GOP中的每一场f,判断场f是否位于一个I图像内。根据步骤308,如果场f位于一个I图像内,那么处理继续到下一场。一旦确定场f不在一个I图像内,处理就在子GOP中场景切换的潜在位置循环,就是,两场之间的每一个位置f’。根据步骤309,对于子GOP中的每一个潜在场景切换f’,codedMBs[f’]的值增加nCode[f]。而且,根据步骤310,对于f前面或者等于f的每一个潜在场景切换f’,predMBs[f’]的值增加nFwd[f]。
根据步骤311,判断是否已经达到最后一场,根据步骤308,如果没有达到最后一场,接着处理下一场。根据步骤312,一旦确定已经达到最后一场,确定predMBs[f]与codedMBs[f]的比值(例如,predMBs[f]比codedMBs[f])为最小值的场f。根据步骤313,对于已经确定具有最小比值的场f,如果predMBs[f]除以codedMBs[f]小于一个predRatioThresh,根据步骤314,检测并报告在该场与前面场之间发生了场景切换,否则,根据步骤315,确定子GOP中没有发生场景切换。
应当注意,即使图像是帧图像,由于在帧图像的场(如果帧图像是隔行的)之间可能发生场景切换,对于每一场,确定预测宏块(predMBs)与场编码宏块(codedMBs)的数目。将一帧图像的宏块提供给该帧的每一场,从而计算predMBs和codedMBs。就是,当f’指的是帧中的某一场时,nCode[f’]是该帧中编码宏块的总数。类似,nFwd[f’]和nBwd[f’]分别表示场f’中前向预测宏块和后向预测宏块的数目。当f’与f是同一帧图像时,仅当f是该帧的第一场时,predMBs[f]增加nBwd[f],codedMBs[f]增加nCode[f]。由于假设前向预测仅应用到第一场,后向预测仅应用到第二场,所以第二场的排列不增加。如果没有这样做,一帧图像的场之间的场景切换将会被场景边界之间的预测所掩盖。
通过实验,已经发现预测比值门限,preRatioTresh最佳值是0.05。但是,进一步的实验和/或应用可以确定除了该值以外的其他值或者在某一特定的应用中更为合适的一个可变的门限值。而且,为AC能量门限选取的特定值,AcThresh,同样可以不同于上面所述的典型值。对于本领域的技术人员来说,很明显可以计算和改变这些以及其他的值从而使本发明的效率和精度达到最好,这些的改变仍然包含在这里所述的本发明的原则以内。
上面所述的特定方法已经有所应用并且进行了测试。其并不打算限制本发明或者权利要求所包含的范围。本发明的根本原则在于通过全局检查一个子GOP中的全部预测来精确地检测一个急剧场景切换。通过寻找预测中可能获得的全部信息的连续性,来减少错误的判断(场景切换的虚假报告)。
本发明的原则可以结合例如直方图方法来处理仅存在I帧的情况,以及在一个I帧之后跟着一个P帧的情况,在这种情况下,该方法不能检测出一个场景切换。涉及直方图的扩展也能够用于检测诸如淡入淡出,渐隐,以及滑过等渐进性的场景转换。
已经描述了通过对一个子GOP内的所有预测进行全局检查来精确检测场景切换的实施例,应当注意本领域的技术人员在上述教导下可以做出各种修改和变形。因此能够理解,在本发明所描述的特定实施例中可以做出各种修改和变形,这些修改和变形包含在附加的权利要求所定义的本发明的精神和范围内。这里已经详细描述了本发明以及专利法所要求的特性,要求和期望被专利证书所保护的内容在附加的权利要求中阐述。
权利要求
1.一种用于检测视频比特流中的场景切换的方法,包括步骤确定多个潜在场景切换中的每一个切换的编码宏块的数目(309);确定多个潜在场景切换中的每一个切换的预测宏块的数目(310);确定相应于多个潜在场景切换的多个帧中的每一个的编码宏块的数目与预测宏块的数目的比值;选择具有期望比值的帧(312);将该比值与一门限值相比较(313);以及一旦确定该比值满足该门限值,检测场景切换(314)。
2.如权利要求1所述的方法,进一步包括处理一组帧的步骤,其中每一帧包含两场,并且该组帧包括一个子图像组,该视频比特流包括多个子图像组。
3.如权利要求1所述的方法,进一步包括确定第一帧是否是一个I或者P图像的步骤,一旦确定第一帧不是一个I或者P图像,前进到下一个子图像组。
4.如权利要求1所述的方法,进一步包括确定第一图像是否是一个I图像以及前面的图像是否是一个I或者P图像的步骤,一旦确定第一图像是P图像或者前面图像是B图像,前进到下一子图像组。
5.如权利要求1所述的方法。进一步包括步骤对于每一帧,将预测宏块的数目初始化为零;以及对于每一帧,将编码宏块的数目初始化为零。
6.如权利要求1所述的方法,其中至少一个潜在场景切换发生在一帧中的隔行场之间。
7.如权利要求6所述的方法,其中确定预测宏块的数目的步骤进一步包括步骤对于每一潜在场景切换,一旦确定到一个相应的场是一帧图像的第一场,就将预测宏块的数目设定为前向预测的宏块数目;以及对于每一个潜在场景切换,一旦确定相应的场是一帧的第二场,就将预测宏块的数目设定为后向预测的宏块数目,其中该帧包括第一场和第二场。
8.如权利要求6所述的方法,其中场景切换相应于选定的场。
9.如权利要求1所述的方法,其中期望的比值是所确定的全部比值中的最小比值。
10.如权利要求1所述的方法,其中潜在场景切换发生在一个子图像组帧之间。
11.一种用于检测MPEG视频比特流中的场景切换的方法,包括步骤确定多个潜在场景切换中的每一个切换的编码宏块的数目,其中多个潜在场景切换发生在多个帧之间以及每一帧的多个场之间(309);对于多个潜在场景切换中的每一个切换,一旦检测到一个相应的场是一帧图像的第一场,就将预测宏块的数目设定为等于前向预测的宏块数目,并且对于多个潜在场景切换中的每一个切换,一旦检测到相应的场是该帧的第二场,就将预测宏块的数目设定为等于后向预测的宏块数目,其中该帧包括第一场和第二场(310);确定相应于多个潜在场景切换的多个场中的每一个的编码宏块的数目与预测宏块的数目的比值;在多个场中选择具有最小比值的场(312);将最小比值与一门限值相比较(313);以及一旦确定最小比值满足该门限值,就检测到一个场景切换,其中场景切换与所选择的场相对应(314)。
12.如权利要求11所述的方法,进一步包括处理一组帧的步骤,每一帧包含两场,其中该组帧包括一个子图像组,该视频比特流包括多个子图像组。
13.如权利要求11所述的方法,进一步包括步骤确定第一帧是否是一个I图像或者P图像;以及响应于第一帧不是一个I或者P图像的确定,处理前进到下一个子图像组。
14.如权利要求11所述的方法,进一步包括步骤确定第一图像是否是一个I图像;确定前面的图像是否是一个I或者P图像;以及响应于第一图像是P图像或者前面的图像是B图像的确定,处理前进到下一子图像组。
15.如权利要求11所述的方法。进一步包括步骤对于每一场,将预测宏块的数目初始化为零;以及对于每一场,将编码宏块的数目初始化为零。
16.权利要求11所述的方法,其中至少一个潜在场景切换发生在一帧的隔行场之间。
17.一种机器可读的程序存储设备,切实包含了可由机器执行的指令程序,以执行检测视频比特流中的场景切换的方法步骤,所述方法步骤包括确定多个潜在场景切换中的每一个切换的编码宏块的数目(309);确定多个潜在场景切换中的每一个切换的预测宏块的数目(310);确定相应于多个场景切换的多个帧中的每一个的编码宏块的数目与预测宏块的数目的比值;选择具有期望比值的帧(312);将该比值与一门限值相比较(313);以及一旦确定该比值满足该门限值,检测到场景切换(314)。
18.如权利要求17所述的方法,其中多个潜在场景切换发生在帧的隔行场之间。
19.如权利要求18所述的方法,其中确定预测宏块的数目的步骤进一步包括步骤对于每一潜在场景切换,一旦确定一个相应的场是帧中的第一场,就将预测宏块的数目设定为等于前向预测的宏块数目;以及对于每一个潜在场景切换,一旦确定相应的场是该帧的第二场,就将预测宏块的数目设定为等于后向预测的宏块数目,其中该帧包括第一场和第二场。
20.如权利要求18所述的方法,其中场景切换与所选择的场相对应。
21.如权利要求17所述的方法,其中期望的比值是所确定的全部比值中的最小比值。
22.一种用于检测一个视频比特流中的场景切换的设备,包括确定多个潜在场景切换中的每一个切换的编码宏块的数目的装置;确定多个潜在场景切换中的每一个切换的预测宏块的数目的装置;确定相应于多个场景切换的多个帧中的每一个的编码宏块的数目与预测宏块的数目的比值的装置;选择具有期望比值的帧的装置;将该比值与一门限值相比较的装置;以及一旦确定该比值满足该门限值,检测场景切换的装置。
全文摘要
公开了一种用于检测视频比特流中的场景切换的方法和设备。确定多个潜在场景切换中的每一个切换的编码宏块的数目(309);确定多个潜在场景切换中的每一个切换的预测宏块的数目(310);然后计算相应于潜在场景切换的多个帧中的每一个帧的编码宏块数目与预测宏块数目的比值;选择具有期望比值的帧(312);将所选择的帧的比值与一门限值相比较(313);以及响应于所选择的帧的比值满足该门限值的确定,报告已经检测出一个场景切换(314)。
文档编号H04N5/92GK1602592SQ02823277
公开日2005年3月30日 申请日期2002年9月20日 优先权日2001年9月26日
发明者R·M·彼得森, E·查洛姆 申请人:汤姆森许可公司