内容自适应视频编码器和编码方法

文档序号:7943012阅读:302来源:国知局
专利名称:内容自适应视频编码器和编码方法
内容自适应视频编码器和编码方法技术领域
一般来说,本发明涉及视频编码,具体来说,涉及预处理视频数据以用于优化 MPEG2编码的视频。
背景技术
IS0(国际标准化组织)/IEC(国际电工委员会)视频压缩标准(例如,IS0/IEC 13818-2,参考文献1,通常称为运动图片专家组(MPEG)2标准)定义了用于根据这些标准制 作的数字化编码视频的三种类型的编码图片
I图片它是不使用帧间预测的场内或帧内编码图片;
P图片它是只具有来自之前图片的单向帧间预测的预测性编码图片;以及
B图片它是具有来自之前和未来图片的双向帧间预测的预测性编码图片。
因此,I和P图片可用作其它P和B图片的帧间时间预测的参考图片。诸如H. 264 规范的一些实现允许使用B图片作为其它B图片的参考图片。这些B图片称为参考B。同 时,对P图片有区别地编码,并且因此在编码时产生比I图片小的文件大小;类似地,B图片 产生甚至更小的文件大小。因此,有益的是减小传送或存储MPEG2视频流(S卩,序列)所需 的容量,即,使用较少的I图片和相对较多的P和B图片。
从I图片开始并以下一个I图片之前的图片结束的连续图片序列称为图片组或 G0P。在I图片之间使用P和B图片,以便减小视频流大小。I图片(参考图片)之间的间 隔称为GOP长度,并且P图片之间的间隔称为Sub-GOP长度。GOP长度中的图片顺序称为 GOP结构。
I、P和B图片的排列由MPEG2规范规定,但是未定义任何特定的GOP长度或结构 (即,GOP参数),并且因此让制造商和用户针对任何特定应用选择合适的GOP参数。
MPEG2规范中固有的假设是,一旦做了选择,GOP参数便固定,即,通常预期GOP的 大小和结构不会动态地改变。但是,规范没有决定性地禁止这样做。
过去使用可变G0P,以便减轻在可伸缩MPEG视频编码时出现的难度,其中可伸缩 是指以不同的质量级、分辨率和帧速率解码表示编码视频的位流的能力。
文献W02005086493A1中提供了可变GOP可伸缩编码的一个实例。在此情况下,GOP 参数设置成允许不同的解码器系统具有不同的能力以便能够解码和呈现视频资料。不是调 适(adapt)GOP长度,而是如果只是在长度上不同于正常GOP的第二 GOP使编码成本(如某 个参数所测量的)更低,则选择第二 GOP这一选项。这种类型的方案是可伸缩编码所特有 的,并且它不灵活,也不能使它本身紧密地适合图片序列的行为。它特别不能应对由诸如场 景变换、隐显(fade)、闪光(flash)、时间或特殊复杂性等实际因素引起的编码缺点。同时, 利用静态(即,固定)大小/结构的GOP会导致次优编码性能。
因此,本发明的目的是解决这些问题并改善MPEG2编码的实际性能。发明内容
在本发明的第一方面,提供一种预处理视频图片数据序列的方法,其中视频图片 数据序列包括排列成多个图片组GOP的I图片、P图片和B图片,并且所述多个图片组中的 每个图片组具有第一图片和多个子图片组Sub-GOP。在所描述的方法中,分析视频图片数 据序列以确定视频图片数据序列内相对于新GOP的起点位置的场景变换的位置,从而向视 频编码器提供信息以通过延长或减小当前GOP长度来移动新GOP的起点以与场景变换重合 (coincide)。如果场景变换和新GOP的起点在预定数量的图片内,这便完成了。
以此方式,视频数据(内容)的源序列的逐帧行为而不是固定选项集合使GOP参 数适合最优编码。此外,该方法使得能够对于任何给定的视频数据序列使用较少的I帧,编 码的数据大小因此更小,从而允许编码器/解码器中的更快速处理和更低的存储要求。
可选地,如果所提供的信息指示通过延长当前GOP长度来移动新GOP的起点,则 延长步骤包括由P和B图片创建一个或多个新的Sub-GOP ;以及将新创建的一个或多个 Sub-GOP插入到当前G0P,直到当前GOP具有足够长度为止。创建这一个或多个新Sub-GOP 的步骤可包括提供第一 P图片作为这一个或多个Sub-GOP的最后一个图片;以及在第一 P 图片之前插入B或P图片直到达到期望的Sub-GOP长度。
可选地,如果所提供的信息指示通过减小当前GOP长度来移动新GOP的起点,则 减小当前GOP长度的步骤包括在场景变换处插入I图片作为新GOP的第一图片以开始新 GOP ;由P和B图片创建一个或多个新的Sub-GOP ;以及将新创建的一个或多个Sub-GOP插 入到新GOP中,直到新GOP具有足够长度为止。创建这一个或多个新Sub-GOP的步骤可包 括提供第一 P图片作为这一个或多个sub-GOP的最后一个图片;以及在第一 P图片之前插 入B或P图片直到达到期望的Sub-GOP长度。
可选地,插入到新创建的Sub-GOP中的图片的图片类型取决于视频图片数据的度 量(metric),包括空间复杂性度量;时间复杂性度量;隐显活动度量;闪光活动度量;场 景变换度量;以及位速率度量。
可选地,除非对视频图片数据序列的分析发现以下布尔方程为真,否则插入到新 创建的Sub-GOP的图片的图片类型内容为B型图片(视频图片数据序列的时间位移> = 第一预定值)或(视频图片数据序列的时间失真>=第二预定值)或(时间位移<=第三 预定值并且空间复杂性<=第四预定值并且位速率<=预定速率)并且(未出现闪光或未 出现隐显),在此情况下,在新创建的sub-GOP中使用P图片。在上述标准中,时间位移和时 间失真是时间复杂性度量;并且闪光活动度量包括检测被测Sub-GOP中是否出现闪光,以 提供“未出现闪光”的布尔值;而隐显活动度量包括检测被测Sub-GOP中是否出现隐显,以 提供“未出现隐显”的布尔值。
可选地,第一预定值是16,第二预定值是056*16),第三预定值是5,第四预定值 是2560,并且预定位速率是2兆位/秒。
可选地,场景变换可包括经过编辑的视频数据序列中的场景剪切或拼接点。
可选地,如果场景变换是拼接点,则方法还包括向编码器提供指示在拼接点处插 入I图片的信息;以及将拼接点之前的Sub-GOP中的所有图片转换为P图片。
可选地,视频图片数据序列包括使得每个图片包括顶场和底场的交错视频数据,并 且如果场景变换是场景剪切,则方法还包括向编码器提供信息,该信息指示,如果场景剪切出现在被测sub-GOP的最后一个图片的底场上,则在下一个sub-GOP的参考图片上插入I图片。
可选地,预定图片数是6。
该方法通常依次运用于视频图片数据序列中的每个Sub-GOP。
所插入的是P图片还是B图片可取决于在所处理的视频数据序列中是否检测到隐 显或闪光。
在本发明的第二方面,提供一种预处理视频图片数据序列的方法,其中视频图片 数据序列包括排列成多个图片组GOP的I图片、P图片和B图片,并且所述多个图片组中的 每个图片组具有第一图片和多个子图片组Sub-GOP。该方法包括分析视频图片数据序列 以确定有关视频图片数据序列的度量;以及取决于满足预定标准的视频图片数据序列的区 段(section)的度量,在视频图片数据序列的所述区段中,将B图片转换为P图片。
在自适应GOP结构方法中所用的关于视频图片数据序列的度量包括以下度量中 的任何一种或多种空间复杂性度量;时间复杂性度量;隐显活动度量;闪光活动度量;以 及位速率度量。
可选地,该方法还可包括在视频图片数据序列的该区段中检测闪光或隐显,其中 如果视频图片数据序列的该区段具有高时间复杂性,或者视频图片数据序列的该区段在较 低位速率具有低空间和时间复杂性,并且在视频图片数据序列的该区段中未检测到闪光或 隐显,则进行将B图片转换为P图片的步骤。
只有满足以下预定标准时才可进行B图片到P图片的转换(视频图片数据序列 的时间位移>=第一预定值)或(视频图片数据序列的时间失真>=第二预定值)或(时 间位移<=第三预定值并且空间复杂性<=第四预定值并且位速率<=预定速率)并且 (未出现闪光或未出现隐显),其中时间位移和时间失真是时间复杂性度量。
在本发明的第三方面,提供一种用于预处理视频图片数据序列的视频预处理器设 备,其中视频图片数据序列包括排列成多个图片组GOP的I图片、P图片和B图片,并且每 个图片组具有第一图片和多个子图片组Sub-GOP。该预处理器包括适于分析视频图片数 据序列的视频序列分析器,包括适于确定视频图片数据序列内相对于新GOP的起点位置的 场景变换的位置的位置确定处理器;以及GOP自适应电路,适于向视频编码器提供信息,以 便如果场景变换和新GOP的起点在预定数量的图片内,则取决于视频序列分析器的输出度 量通过延长或减小当前GOP长度来移动新GOP的起点以与场景变换重合。
在本发明的第四方面,提供一种用于预处理视频图片数据序列的视频预处理器设 备,其中视频图片数据序列包括排列成多个图片组GOP的I图片、P图片和B图片,并且每 个图片组具有第一图片和多个子图片组Sub-GOP。该视频预处理器设备包括视频序列分 析器,适于分析视频图片数据序列以确定关于视频图片数据序列的度量;以及GOP自适应 电路,适于向视频编码器提供信息,以使得取决于满足预定标准的视频图片数据序列的区 段的度量,在视频图片数据序列的所述区段中,视频编码器将B图片转换为P图片。
视频序列分析器还可包括以下组件中的一种或多种场景变换检测器,适于检测 视频图片数据序列中的场景变换;隐显检测器,适于检测视频图片数据序列中的隐显;闪 光检测器,适于检测视频图片数据序列中的闪光;层级运动估计器,适于提供视频图片数据 序列的时间度量;空间复杂性估计器,适于提供视频图片数据序列的空间复杂性度量;第 一缓冲器,用于缓冲视频图片数据序列以在检测器或估计器的任一个中使用;以及延迟器,用于延迟第二缓冲器的输出。
需要不同GOP参数的每个应用可通过在所采用的编码硬件或软件内具有灵活调 整可用来适应。
在本发明的又一方面,提供一种预处理视频数据的方法,包括分析包括图片序列 的视频数据,该图片序列包括多个GOP ;确定相对于GOP的起点位置的场景剪切的位置;改 变在时间上位于场景剪切之前的第一 GOP的GOP长度,以使得第一 GOP在场景剪切之前的 一个图片结束;以及从场景剪切开始新G0P。


现在将参考附图只是举例描述预处理视频数据的方法,附图中
图1示出根据诸如MPEG2的视频编码标准的GOP长度和GOP结构的图示;
图2示出根据本发明一个实施例的自适应GOP长度和GOP结构预处理设备的示范 性高级示意性框图3a示出现有技术视频图片数据序列中的GOP开端和场景剪切的相对位置的图 示;
图北示出根据本发明一个实施例对于图3a的实例如何调适GOP长度的图示;
图如示出当场景剪切出现在当前sub-GOP的参考图片的最后一个场中时的图 示;
图4b示出根据本发明一个实施例对于图如的实例如何调适GOP长度的图示;
图5示出在运用本发明一个实施例之前的I、P和B帧的示范性序列的原始显示顺 序;
图6示出图5的序列的帧12处的场景剪切的现有技术处理;
图7示出根据本发明一个实施例的如图5所示的序列的帧12处的场景剪切的处 理;
图8示出如图5所示的序列的帧21处的场景剪切的现有技术处理;
图9示出根据本发明一个实施例的如图5所示的序列的帧21处的场景剪切的处 理;
图10示出根据本发明一个实施例的空间复杂性计算中所用的示范性4X4像素 块;
图11示出如图5所示的序列的帧13至23之间的快速运动影像区段的现有技术 处理;
图12示出根据本发明一个实施例的如图5所示的序列的帧13至23之间的快速 运动影像区段的处理;
图13示出根据本发明一个实施例的自适应GOP长度和GOP结构方法的示范性流 程图14示出根据本发明一个实施例适于实现该方法的硬件的更详细示范性高级示 意图。
具体实施方式
现在将参考附图描述本发明的实施例,附图中,赋予相同或类似的部分或步骤相 同或类似的附图标记。
图1描绘形成由I图片10、P图片20和B图片30组成的视频图片数据序列的连 续图片序列。在所示实例中,GOP长度45是12,并且Sub-GOP长度25是3。图1还示出P 和B图片的时间预测的方向。具体来说,示出用于P图片的正向预测21、用于B图片的正向 预测31和用于B图片的反向预测35。
图1还示出GOP的一般形式,S卩,第一图片50 (I图片)、然后是第一 sub-GOP 60、 再进一步是sub-GOP 61和62等。
如前所述,MPEG2标准没有定义特定的GOP长度45和Sub-GOP长度25,因此它们 可固定或可变。如本发明所提议基于序列的内容改变GOP长度45和GOP结构可使所实现 的压缩最大化,并且通过检测编码并使编码适应所编码的视频本身的内容、从而避免缺陷 编码来改善图片质量。
为了达到最佳编码效率,很明显,GOP长度45应当很长,但是这可导致实际问题, 并且因此典型的GOP长度45是有限的。这是因为,所预测的错误可通过GOP传播,因为随 后预测的图片利用其中具有错误的之前预测的图片,并且因此传递错误。
考虑其中场景剪切跟在GOP末端之后的几个图片之后的情形。然后,比较好的是通 过在场景剪切处插入I帧来延长之前的GOP并开始新的G0P,从而避免速率控制缓冲器波动。
同时,通过关闭B图片(即,只使用P图片)来更好地编码具有大的全局摇摄 (global pan)的快速运动序列,而用B图片更好地编码慢速运动序列或具有隐显和闪光灯 (camera flashes)的序列。因此,有利的是基于视频内容调适GOP长度和GOP结构以使所 实现的压缩最大化并且因此改善所感知的视频质量。下文更详细地说明所提议的自适应 GOP长度和GOP结构方法。
本发明建议采用以下方法来自适应地调整GOP长度45和GOP结构,以便改善所感 知的特定图片序列的编码质量
1)基于场景变换延长或减小GOP长度-称为自适应GOP长度;
2)基于视频内容关闭Sub-GOP中的B图片-称为自适应GOP结构。
场景变换可以是电影中的典型场景剪切,不然可以是不同原始视频源之间的拼接点ο
为了基于内容调适GOP长度45和GOP结构,所提议的方法在视频编码的预处理阶 段中利用来自不同模块的信息,预处理阶段是在适当编码之前的处理阶段,其任务是分析 输入视频图片并提供关于它们的高级信息以指导视频编码器做出最适宜的编码决策。
它利用诸如下列的信息来自对层级运动估计(ME)的分析的信息;空间复杂性度 量;场景剪切检测;隐显检测和闪光检测。这些模块中的每个模块在图2中的根据本发明一 个实施例的预处理器设备中示出。但是,取代所示模块或除了所示模块之外,可利用检测其 它度量的其它模块。
具体来说,图2示出用于预处理阶段110-150的Sub-GOP输入105,其中预处理阶 段110-150的输出用于创建视频图片数据帧的输出序列的自适应GOP长度和结构160。
更详细地描述图2,场景剪切检测器110通知GOP自适应电路关于新镜头的开端以及新镜头相对于包含它的帧或场的位置(即,帧中的场景剪切、顶场中的场景剪切或底场 中的场景剪切)。场景剪切检测器110还给出关于在当前Sub-GOP之前的图片中的未来场 景剪切的信息。在优选实施例中,场景剪切检测器向前看到6个图片。
隐显检测器120提供关于当前图片是渐显或渐隐的一部分还是两者都不是的信 息。闪光检测器130提供标志以通知GOP自适应电路当前图片中是否具有闪光灯。层级运 动估计器140提供时间复杂性度量,这将在下文更详细地描述。同时,空间复杂性检测器 150检测空间复杂性,这将在下文参考图10更详细地论述。
自适应GOP长度
如前所述,GOP长度45规定连续I图片之间的间隔。因为从之前图片预测P图片 并且从之前和未来图片预测B图片,所以运动补偿错误会在不使用I图片的情况下传播。在 闭合GOP中,当预测P或B图片时,不允许引用来自之前GOP的图片,利用闭合GOP有助于 无缝地改变视频编码器内容,并且特别在拼接点的情况中使用。开放GOP允许在预测P或 B图片时引用之前的G0P,并且开放GOP可允许更大的压缩。
因此,需要周期性地插入I图片以防止这样的错误传播并且因此改善所感知的视 频质量。周期性地插入I图片也是为了减少解码器处的随机存取时间或信道改变时间。在 场景剪切处,必须插入I图片,因为否则预测会失败,这是因为它们引用与当前图像不再有 关的图像。因此,在以下情况中需要插入I图片
1)在GOP的开端处;
2)在场景变换处(即,包括场景剪切和拼接点)。
如果场景变换是场景剪切,并且它在GOP的开端之前发生,则在场景剪切之后的 第一参考图片上插入I图片,并且从插入的这个I图片开始新的G0P。如果场景剪切正巧落 在非参考图片上,即,落在B图片上,则更佳的是延迟场景剪切直至下一个参考帧,因为已 知这可改善参考图片的质量。
在本发明的一个实施例中,如果场景变换和GOP的开端在6个帧内,则延长GOP长度。
典型的情景如图3a和北所示。
在没有自适应GOP长度方法的情况下,将密集地插入两个I图片。根据系统的所 选设定GOP长度,一个出现在GOP 201的自然起点处,另一个不按正常序列插入在场景剪切 202处以防止错误传播,否则错误传播将因引用与场景剪切之后的视频无关的图片而发生。 将两个I图片放得如此密集增加了要发送给编码器的数据量,因此会对速率控制缓冲器存 储造成不利影响,并且因此潜在地使缓冲器不必要地溢出。
根据本发明,上述情景可通过以下方法来处理将当前GOP 210延长至出现场景 变换的点,然后从来自第一场景变换图片203的I帧开始下一个GOP 220,从而避免密集地 插入两个I图片。在本发明中,当前GOP 210(长度)被视为是位于场景变换之前的GOP (的 长度),而下一个GOP 220(长度)被视为是在场景变换之后的GOP (的长度)。这如图北 所示。类似的当前/下一个命名协议同样适用于本描述中的sub-GOP。
在本发明中,场景变换可包括视频内的“传统”场景剪切(例如,电影从建筑物内 部变换到外部),或者它可包括拼接点(例如,电影转到广告时间)。下文将进一步论述拼 接点以及围绕它们的应用的具体问题。
图如和4b示出该方法如何处理特殊情形,在该特殊情形中,视频数据序列交错 (即,包括多个场),并且场景剪切正巧落在Sub-GOP的最后一个图片的底场202b上,S卩,落 在参考图片(P图片而不是B图片)上。在这种情形中,优选的是将I帧插在下一个Sub-GOP 的参考图片20 上,而不是插在场景剪切点本身、即延迟的场景剪切上。注意,在图如和 4b中,示出形成以BBPBBP形式、即两个sub-GOP值的帧的B和P场的样本。这些帧的场连 续编号,“ t ”表示顶场,“ b ”表示底场。
现在将利用图5-9描述描绘本发明的自适应GOP长度方法部分的效果的更详细的 示范视频帧序列(即,非交错视频)集合,其中给出为输出视频序列的每个帧号产生的图片 类型。注意,在交错视频的情形中,如图如和4b中所使用,帧可由两个场形成。
图5示出具有Sub-GOP长度3和GOP长度45的起始MPEG2编码器视频编码情景 的显示顺序。在此情况下,每16个帧开始一个新GOP 201。
但是,如果场景剪切202发生在帧号12处,则在不运用本发明的自适应GOP长度 方法的情况下,视频编码器产生如图6所示的图片序列输出。在此情况下,场景剪切202出 现在帧12上,其中在开始下一个GOP 204的I帧(根据所用的固定长度GOP的长度45,在 此情况下为1 出现之前只存在两个B帧。因此,实际上,出现非常短的G0P,从而导致在非 常短的时间量内出现两个较大尺寸的I帧。此时,这导致高于平均位速率。
然而,如果对图5运用本发明的自适应GOP长度方法,则产生图7的图片序列。在 此情况下,减小当前GOP长度以在帧12处将场景变换202考虑在内。因此,下一个GOP的 I帧和场景剪切在帧12处组合203,其中新GOP从帧12 “不按序列地(out of sequence),, 开始,即,在使用为15的固定GOP长度时不在预期位置开始。这涉及减小当前GOP的大小。
在第二实例中,场景剪切202发生在帧号21处。在没有自适应GOP长度方法的情 况下,视频编码器产生如图8所示的视频序列输出。同样可见,在相对短时间帧内出现两个 I帧(分别在帧15和21处),并且因此视频位速率增大。
但是,在运用所提议的自适应GOP长度方法的情况下,序列输出如图9所示。现在, 将第一(当前)GOP延长以使得下一个GOP的起点203与帧21处的场景变换重合。
在下一个GOP的起点与场景剪切组合的每种情况中,除非如下文特别参考图13所 更详细地论述,存在需要不同结构的特定情景,否则根据正常Sub-GOP结构BBP填充中间 帧。在GOP缩短的情况下,同样除非存在需要改用P图片的特定情景,例如如下文所描述的 情景,否则它运用典型的GOP结束结构BBI。
自适应GOP结构
在Sub-GOP长度中,取决于视频图片数据的视频内容的空间和时间复杂性度量, 基于视频内容关闭B图片是个好主意。例如,通过关闭B图片来更好地编码具有快速摇摄 的序列。
因此,本发明也可利用某些度量的评估,以便确定优化的Sub-GOP结构。度量可包 括空间复杂性度量;时间复杂性度量;隐显活动度量(关于视频序列中的隐显的信息); 闪光活动度量(关于视频序列中的闪光的信息);场景剪切度量;以及位速率度量(视频编 码器的位速率)。
GOP自适应电路可适于在不改变GOP长度的情况下执行对GOP结构的调适。
空间复杂性的计算
空间复杂性是从序列的水平和垂直活动之和导出的。具有较小空间复杂性的序列 在空间域具有较大的冗余度,反之亦然。垂直活动表示图片的相邻行之间的空间一致性,而 水平活动表示水平方向上的相邻像素之间的空间一致性。水平活动是水平方向上的像素的 加权和,而垂直活动是垂直方向上的像素的加权和。
图10示出根据本发明一个实施例在空间复杂性计算中所用的示范性4X4像素 块。在下文中,利用图10中的像素位置‘al’的实例来说明水平和垂直活动的示范性计算。
(行 N 的)水平活动=abs (a0+al_a2_a3)/16 ;
(第2 列的)垂直活动=abs(al-bl)/16,
其中‘abs,是绝对值函数。
行(Line)用于记号表示,其中行N+1是位于行N下方的那一行,因此它们相隔图 片宽度数量的像素(即,视频间的像素数量)。
通过依次对每个像素运用上述方程来为图片中的所有像素计算和累加水平活动 和垂直活动。
对于交错图片,为顶场和底场单独计算水平和垂直活动。
然后,从水平和垂直活动之和导出空间复杂性。
空间复杂性可计算如下
对于渐进式图片
空间复杂性=(水平活动+垂直活动)/32
对于交错图片
空间复杂性=(顶场水平活动+底场水平活动+顶场垂直活动+底场垂直活 动)/32
以上利用比例因子(在所示实例中为32)来减小所用的数字的大小。
为sub GOP中的每个图片计算空间复杂性,并对于sub GOP将其求平均值以用于 调适GOP结构。
时间复杂性的计算
为了计算时间复杂性的估计值,在宏块级在连续图片之间执行层级运动估计。在 典型实现中,宏块由该图片的16X16像素组成(S卩,每个宏块256个像素)。计算每个宏块 的运动向量及其对应的绝对差和(SAD)值。在本发明中其使用证明是有利的时间复杂性度 量为
1)时间失真(temporal distortion);
2)时间位移(temporal displacement)。
时间失真是所有宏块的SAD值的平均值,时间位移是所有宏块的运动向量的绝对 和的平均值。
时间失真=所有宏块的SAD之和/图片中的宏块数;
时间位移=所有宏块的水平和垂直运动向量的绝对和之和/图片中的宏块数。
为Sub GOP中的每个图片计算时间失真和时间位移,并对于SubGOP将它们求平均值。
取决于序列的空间和时间复杂性,如果满足以下条件,则关闭B图片
1)序列在时间域具有高活性,S卩,高时间复杂性(意为高时间失真和/或高时间位移);
2)序列在较低位速率具有非常低的空间和时间复杂性(因为对于MPEG2,与B图 片相比,P图片的略过标准更宽松)。
利用以下伪代码来说明所提议的自适应GOP结构方法,假设宏块大小为16X16像 素,g卩,每个宏块256个像素
If ((Temporal Displacement >= 16) OR
(Temporal Distortion > = 256*16)OR
(Temporal Displacement <= 5AND Spatial complexity <= 2560AND
BitRate < = 2MBPS))
{
Turn off B pictures.
}
每个像素测量时间失真,然后对于宏块求和。因此,可见,以上代码要求对于宏块 中的每个像素时间失真要大于或等于16。
以上测试适用于Sub GOP长度中的每个图片。试验发现,当利用16X16宏块时, 该方法中设置阈值的以上所用的特定参数值在实践中是有利的。对于不同大小的宏块和图 像/视频大小可使用按比例定大小的值。
当在视频中检测到隐显或闪光时,则不能选择PPP结构,而是将它们编码为BBP或 BBI。
现在将利用图5、11和12描述用于描绘本发明的自适应GOP结构部分的效果的示 范视频帧序列集合,其中给出为输出视频序列的每个帧号产生的图片类型。
图5是初始起始视频序列。
图11示出在帧13至23之间具有非常快速运动内容并且没有运用自适应GOP方 法的视频序列的显示顺序。
图12示出在帧13至23之间具有非常快速运动但是运用自适应GOP结构方法的 相同视频序列的显示顺序。
可见,当检测到非常快速运动时,自适应GOP结构方法将sub-GOP中常用的B图片 的所有示例转换为P图片。在这个实例中,GOP长度没有改变。
处理拼接点
在数字广播分配网络中常见的是,为了各种目的修改编码资料流。例如,在电缆站 头,选择输入流,并重新多路复用以用于正向传输。在这个称为拼接的过程中,有时需要编 辑视频资料以增加、移除或替换区段(例如,广告),并且这通常在压缩域中完成以避免解 码、然后再编码的成本和质量代价。
由于拼接点固有地涉及完整的图像变化,所以在拼接点之后的帧不应利用在拼接 点之前的任何帧作为视频压缩中所用的预测中的参考。否则,将出现错误预测,从而导致较 差的压缩或假象。因此,拼接点必须结束拼接点之前的GOP (如上文所论述,它停止以后帧 中所用的反向预测),即,拼接点必须利用闭合G0P。利用闭合GOP意味着,拼接点之前的图 片必须是I图片或P图片。
当存在简单的场景剪切时,不会出现这种限制,并且因此在这种情况下可使用开放 G0P。
在这些拼接点处,将拼接点逼迫到已知的GOP边界并不总是便利的,并且因此可 利用本发明。这是由图5-9突出的上述GOP边界问题的特殊情况情景的形式。在这种情况 下,需要在期望的拼接点处插入I图片或P图片,并且必须将它之前的图片编码为P图片。 因此,如果在Sub-GOP中需要拼接点,则将该Sub-GOP结构变为包含全为P的图片,并在拼 接点处插入I图片。
图13示出详细说明对于其中每个图片是帧、即GOP结构由所指示的I帧、P帧或 B帧形成的情形本发明如何利用上述自适应GOP长度和结构方法以及拼接点处理的组合来 为Sub-GOP指定图片结构的示范性应用的流程图。所示的实例利用大小为3的Sub-GOP。 在使用较大的Sub-GOP大小的情况下,重复所提议的Sub-GOP结构的最后一个帧类型。
方法300适用于原始帧序列,从第一图片50之后的Sub-GOP 60开始,一次一个 Sub-GOP。对于每个新Sub-GOP,方法重新开始。
方法在START 301开始。首先,在步骤302,分析Sub-GOP以查看它是否包含拼接 点。如果它包含拼接点,则在步骤303,将Sub-GOP中的所有帧变为P帧,并在拼接点处插入 I帧(它开始新G0P)。然后,对于下一个Sub-GOP,方法可重新开始。
如果在步骤302在Sub-GOP中不存在拼接点,则在步骤304,分析相同的Sub-GOP 以查看它是否是GOP的最后一个Sub-GOP。
如果被测Sub-GOP是GOP的最后一个Sub_G0P,则在步骤305,检查视频序列以查 看接下来的6个帧(即,2个Sub-GOP长度)内是否出现场景剪切。
在优选实施例中,利用6帧超前帧计数,因为超前越长会增加编码的等待时间并 增加帧缓冲器存储要求。这也就是说,给定编码器性能的特定要求集合,发现6帧超前窗口 的选择在真实世界测试中是有利的。但是,在不同的编码器要求情景中同样可使用其它窗 口大小,并且在源数字视频中可同样使用其它GOP/sub-GOP长度。
如果出现场景剪切,则方法移到步骤306,在步骤306,它利用时间复杂性、特殊复 杂性、时间失真、视频位速率、闪光/隐显存在来进行上述计算,以便确定场景剪切处所用 的Sub-GOP结构。
具体来说,该方法计算以下布尔方程的解(A OR B OR C)ANDD,其中
A=时间复杂性大于或等于16;
B =时间失真大于或等于056*16);
C =时间复杂性小于或等于5,并且空间复杂性小于或等于2560,并且视频位速率 大于或等于2Mbps (兆位/秒);
D =未出现闪光并且未出现隐显,
其中“并且(AND) ”和“或(OR) ”是布尔运算符。
该方程的输出是1(=是)或0(=否),并且决定如图13所示的输出结构,即 BBP,其中解为0 (步骤308);以及PPP,其中解为1 (步骤307)。
移回到步骤305,如果接下来的6个帧中没有场景剪切,则在步骤309,利用上文针 对步骤306描述的相同方程,但是解的结果变为输出最后一个Sub-GOP结构BBI,其中解 为0(步骤311);以及输出最后一个Sub-GOP结构PPI,其中解为1(步骤310)。因此,当前 的GOP结束,并且取决于例如视频的摇摄速度,从随后使用的B或P帧开始新G0P。
移回到步骤304,如果被测Sub-GOP不是GOP的最后一个Sub_G0P,则在步骤312, 测试该Sub-GOP以查看它是否包含场景剪切。
如果被测Sub-GOP中没有场景剪切,则如上文已经详细描述,方法移回到步骤 306。但是,如果被测Sub-GOP中有场景剪切,则方法移到步骤313,在步骤313,它更具体 地测试场景剪切是(或不是)出现在参考图片的底场中。如果不是,则利用Sub-GOP结构 BBI (步骤314)。如果是,则将场景剪切延迟直至下一个Sub-GOP (步骤315),并且方法再次 移到步骤306。
以上方法基于场景剪切的存在延长当前GOP长度。在处理GOP的最后一个Sub-GOP 时,如果场景剪切检测器指示在2个sub-GOP长度内存在场景剪切,则不在当前Sub-GOP中 插入I帧,而是将其延迟直至下一个sub-GOP。在处理下一个Sub-GOP (包含场景剪切)时, 则在这里插入I图片,并且因此延长GOP长度。
如果场景剪切与GOP大小不同步地发生,即,场景剪切发生在长度为3的Sub-GOP 的典型BBP结构的两个B图片中的任何一个B图片上,则在Sub-GOP的最后一个图片上(P 图片之前所在的位置)插入I图片,即,延迟的场景剪切。这也就是说,如果场景剪切正巧 落在非参考图片、即B图片上,则将场景剪切的I帧插入延迟直至场景剪切之后的下一个参 考图片。这是因为,B图片利用正向和反向预测,而其正向预测将出错,其反向预测将正确, 因此如果场景剪切落在B图片上,则无需立即插入I帧。
通过利用本发明的在上文一般描述的实施例,可根据所编码的视频序列的实际属 性选择要使用的Sub-GOP的正确结构。因此,实现了更有效的视频输出流或序列。
本领域技术人员将明白,在任何给定实现中,取决于该实现想要处理的内容,可只 实现流程图的子部分。例如,在一些实现中,方法可布置成不处理拼接点,因为预期在源视 频序列中没有拼接点。
在本发明的一些实施例中,只实现该方法的自适应GOP结构部分。在这种情况下, 根据所检测的度量,不改变GOP长度,而只改变它们的结构。
上述方法可由任何适当调适的硬件来执行,并且因此,该方法可以用存储在计算 机可读介质上的指令集来实施,该指令集在加载到计算机、数字信号处理器(DSP)等中时 使计算机执行上文所述的方法。
同样地,该方法可作为特殊编程或硬件设计的集成电路来实施,该集成电路进行 操作以对加载到所述集成电路中的图像数据执行该方法。集成电路可作为诸如PC等的通 用计算装置的一部分来形成,或者它可作为诸如游戏控制台、移动电话、便携式计算机装置 或硬件视频编码器的更专门的装置的一部分来形成。
一个示范性硬件实施例是编程为执行所述方法的现场可编程门阵列(FPGA),它设 置在安装在机架上的视频编码器的子板上以在例如支持现场新闻组的电视演播室或位置 视频上行加值网络(locationvideo uplink van)中使用。
本发明的另一个示范性硬件实施例是如图14所示由专用集成电路(ASIC)制成的 视频预处理器。
在图14中,预处理器ASIC 400包括馈送到缓冲器420和延迟器430的输入410。 缓冲器420存储视频图片数据的输入序列,并将该序列提供给每个检测器110-150。根据本 发明一个实施例,检测器110-150利用经过缓冲的视频图片数据来导出供GOP自适应过程使用的度量。每个检测器象上文参考图2所论述地那样进行操作。
检测器110-150的输出将在GOP自适应方法中使用的度量提供给GOP自适应电路 440。GOP自适应电路440利用所提供的度量以及视频图片数据的输入延迟版本来生成关于 随后的视频编码器(未示出)如何调适GOP长度和结构的信息。延迟器430确保在GOP自 适应电路440对视频数据序列进行操作之前检测器有足够的时间来进行它们的检测过程。 在没有延迟器430的情况下,将在当前sub-GOP上使用之前Sub-GOP的度量。
如果特定实现需要,则根据本发明的视频数据的预处理可并入到视频编码器中。
GOP自适应电路440在输出450处输出供随后的视频编码器使用的关于视频编码 器如何调适视频图片数据序列的信息。
根据本发明的一个实施例,缓冲器420的大小根据该方法的实现的特定需要、最 具体来说是根据超前窗口的大小来设计。在一个优选实施例中,缓冲器的大小设计成存储 当前sub-GOP以及在当前图片之前的6个图片(即,在Sub-GOP长度3的给定实例中为9 个图片)。
本领域技术人员将明白,本文描述的方法中进行的步骤的确切顺序和内容可根据 特定的执行参数集合的要求而改变,执行参数可以是例如执行速度、所检测的信息的类型、 检测准确度等。因此,权利要求的编号不应理解为是对在权利要求之间移动步骤的能力的 严格限制,并且因此,可自由利用从属权利要求的这些部分。
权利要求
1.一种预处理视频图片数据序列的方法,所述视频图片数据序列包括排列成多个图片 组GOP的I图片、P图片和B图片,并且所述多个图片组中的每个图片组具有第一图片和多 个子图片组Sub-GOP,所述方法包括分析所述视频图片数据序列;确定所述视频图片数据序列内相对于新GOP的起点位置的场景变换的位置;以及 向视频编码器提供信息,所述信息指示,如果所述场景变换和新GOP的起点在预定数 量的图片内,则通过延长或减小当前GOP长度来移动所述新GOP的起点以与所述场景变换重合。
2.如权利要求1所述的方法,其中,如果提供的所述信息指示通过延长所述当前GOP长 度来移动所述新GOP的起点,则所述延长步骤包括由P和B图片创建一个或多个新Sub-GOP ;以及将新创建的所述一个或多个Sub-GOP插入到所述当前G0P,直到所述当前GOP具有足够 长度为止;其中创建所述一个或多个新Sub-GOP的所述步骤包括 提供第一 P图片作为所述一个或多个Sub-GOP的最后一个图片;以及 在所述第一 P图片之前插入B或P图片直到达到期望的Sub-GOP长度。
3.如权利要求1或2所述的方法,其中,如果提供的所述信息指示通过减小所述当前 GOP长度来移动所述新GOP的起点,则减小所述当前GOP长度的所述步骤包括在所述场景变换处插入I图片作为新GOP的第一图片以开始新GOP ; 由P和B图片创建一个或多个新Sub-GOP ;以及将新创建的所述一个或多个Sub-GOP插入到所述新GOP中,直到所述新GOP具有足够 长度为止;其中创建所述一个或多个新Sub-GOP的所述步骤包括 提供第一 P图片作为所述一个或多个sub-GOP的最后一个图片;以及 在所述第一 P图片之前插入B或P图片直到达到期望的Sub-GOP长度。
4.如权利要求2或3所述的方法,其中插入到新创建的Sub-GOP中的所述图片的图片 类型取决于所述视频图片数据的度量,所述度量包括空间复杂性度量; 时间复杂性度量; 隐显活动度量; 闪光活动度量; 场景变换度量;以及 位速率度量。
5.如权利要求2-4中任一权利要求所述的方法,其中除非对所述视频图片数据序列的 分析发现以下布尔方程为真,否则插入到新创建的Sub-GOP中的所述图片的图片类型内容 为B型图片(所述视频图片数据序列的时间位移>=第一预定值)或(所述视频图片数据序列的 时间失真>=第二预定值)或(时间位移<=第三预定值并且空间复杂性<=第四预定值 并且位速率< =预定速率)并且(未出现闪光或未出现隐显);其中如果发现为真,则在所述新创建的sub-GOP中使用P图片;其中时间位移和时间失真是时间复杂性度量;闪光活动度量包括检测被测Sub-GOP中是否出现闪光,以提供“未出现闪光”的布尔 值;并且隐显活动度量包括检测所述被测Sub-GOP中是否出现隐显,以提供“未出现隐显”的布 尔值。
6.如权利要求5所述的方法,其中所述第一预定值是16,所述第二预定值是(256*16), 所述第三预定值是5,所述第四预定值是2560,并且所述预定位速率是2兆位/秒。
7.如前述任一权利要求所述的方法,其中场景变换包括经过编辑的视频数据序列中的 场景剪切或拼接点。
8.如权利要求7所述的方法,其中,如果所述场景变换是拼接点,则所述方法还包括向 所述编码器提供信息,所述信息指示在所述拼接点处插入I图片;以及将所述拼接点之前的所述Sub-GOP中的所有图片转换为P图片。
9.如权利要求7所述的方法,其中所述视频图片数据序列包括使得每个图片包括顶场 和底场的交错视频数据,并且如果所述场景变换是场景剪切,则所述方法还包括向所述编 码器提供信息,所述信息指示如果所述场景剪切出现在所述被测sub-GOP的最后一个图片的底场上,则在下一个 sub-GOP的参考图片上插入I图片。
10.如前述任一权利要求所述的方法,其中所述预定图片数是6。
11.如前述任一权利要求所述的方法,其中所述方法依次运用于视频图片数据序列中 的每个Sub-GOP。
12.一种预处理视频图片数据序列的方法,所述视频图片数据序列包括排列成多个图 片组GOP的I图片、P图片和B图片,并且所述多个图片组中的每个图片组具有第一图片和 多个子图片组Sub-GOP,所述方法包括分析所述视频图片数据序列以确定关于所述视频图片数据序列的度量;取决于满足预定标准的所述视频图片数据序列的区段的度量,在所述视频图片数据序 列的所述区段中,将B图片转换为P图片。
13.如权利要求12所述的方法,其中关于所述视频图片数据序列的度量包括以下度量 中的任何一种或多种空间复杂性度量;时间复杂性度量;隐显活动度量;闪光活动度量;以及位速率度量。
14.如权利要求12或13所述的方法,还包括在所述视频图片数据序列的所述区段中检 测闪光或隐显,并且其中,如果所述视频图片数据序列的所述区段具有高时间复杂性,或者 所述视频图片数据序列的所述区段在较低位速率具有低空间和时间复杂性,并且在所述视频图片数据序列的所述区段中未检测到闪光或隐显,则进行将B图片转换为P图片的所述步骤。
15.如权利要求12-14中任一权利要求所述的方法,其中,如果满足以下条件,则进行 将B图片转换为P图片的所述步骤(所述视频图片数据序列的时间位移>=第一预定值)或(所述视频图片数据序列的 时间失真>=第二预定值)或(时间位移<=第三预定值并且空间复杂性<=第四预定值 并且位速率< =预定速率)并且(未出现闪光或未出现隐显); 其中时间位移和时间失真是时间复杂性度量。
16.如权利要求15所述的方法,其中所述第一预定值是16,所述第二预定值是 (256*16),所述第三预定值是5,所述第四预定值是2560,并且所述预定位速率是2兆位/秒。
17.一种基本上如上文参考图2、北-5、7和9-13描述并且如这些图所示的方法。
18.一种用于预处理视频图片数据序列的视频预处理器设备,所述视频图片数据序列 包括排列成多个图片组GOP的I图片、P图片和B图片,并且每个所述图片组具有第一图片 和多个子图片组Sub-GOP,所述设备包括适于分析所述视频图片数据序列的视频序列分析器,包括适于确定所述视频图片数据 序列内相对于新GOP的起点位置的场景变换的位置的位置确定处理器;以及GOP自适应电路,适于向视频编码器提供信息,以使得如果所述场景变换和新GOP的起 点在预定数量的图片内,则取决于所述视频序列分析器的输出度量,所述视频编码器通过 延长或减小当前GOP长度来移动所述新GOP的起点以与所述场景变换重合。
19.如权利要求18所述的设备,其中所述视频序列分析器还包括以下组件中的一种或 多种场景变换检测器,适于检测所述视频图片数据序列中的场景变换; 隐显检测器,适于检测所述视频图片数据序列中的隐显; 闪光检测器,适于检测所述视频图片数据序列中的闪光; 层级运动估计器,适于提供所述视频图片数据序列的时间度量; 空间复杂性估计器,适于提供所述视频图片数据序列的空间复杂性度量; 第一缓冲器,用于缓冲所述视频图片数据序列以在所述检测器或估计器中的任一个中 使用;以及延迟器,用于延迟所述第二缓冲器的输出。
20.如权利要求18或19所述的设备,还包括适于执行权利要求2-12中任一权利要求 所述的方法的处理器。
21.一种用于预处理视频图片数据序列的视频预处理器设备,所述视频图片数据序列 包括排列成多个图片组GOP的I图片、P图片和B图片,并且每个所述图片组具有第一图片 和多个子图片组Sub-GOP,所述设备包括视频序列分析器,适于分析所述视频图片数据序列以确定关于所述视频图片数据序列 的度量;以及GOP自适应电路,适于向视频编码器提供信息,以使得取决于满足预定标准的所述视频 图片数据序列的区段的度量,所述视频编码器在所述视频图片数据序列的所述区段中将图片转换为P图片。
22. —种携带指令的计算机可读介质,所述指令在执行时使计算机逻辑执行权利要求 1-17中任一权利要求所述的方法。
全文摘要
一种预处理包括I图片、P图片和B图片的视频图片数据序列的方法,其中这些图片排列成多个图片组(GOP),并且每个图片组具有第一图片和多个子图片组(Sub-GOP)。该方法利用对视频图片数据序列的分析来确定视频图片数据序列内相对于新GOP的起点位置的场景变换的位置,然后根据场景变换和新GOP的起点是否在彼此的预定数量的图片内而通过延长或减小当前GOP长度来移动新GOP的起点以与场景变换重合。还提供用于实现该方法的设备。
文档编号H04N7/50GK102037730SQ200880129541
公开日2011年4月27日 申请日期2008年5月22日 优先权日2008年5月22日
发明者A·M·博克, R·斯皮塞尔, S·G·安穆 申请人:爱立信电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1