视频编码中的图像帧编组的制作方法

文档序号:7884760阅读:285来源:国知局
专利名称:视频编码中的图像帧编组的制作方法
技术领域
本发明涉及多媒体文件的编组,尤其是视频文件并且尤其是与流播(streaming)有关的多媒体文件的编组。
背景技术
术语“流播”指的是同时发送并回放数据(典型的是多媒体数据,比如音频和视频文件),在流播过程中,接收人可以在所有要发送的数据已经接收到之前开始数据回放。多媒体数据流播系统包括一个流播服务器和终端设备,接收人可使用该终端设备与流播服务器典型地通过电信网络来建立一个数据连接。接收人从流播服务器取回已存储的或实时的多媒体数据,然后就可以借助包含在终端中的流播应用程序非常有利地、几乎与数据的传输实时地开始多媒体数据的回放。
从流播服务器的角度来看,可以将流播执行为常规流播,或者可以将其执行为向终端的累进下载。在常规流播过程中,多媒体数据和/或数据内容的传送通过确保传送的比特率基本上对应于终端设备的回放速率来进行控制,或者如果传送过程中所使用的电信网络造成了数据传送中的瓶颈,就通过确保传送的比特率基本上对应于电信网络中可用的带宽来进行控制。在累进下载过程中,根本不必要对多媒体数据和/或数据内容的传送进行干预,但是多媒体文件同样传送给接收者,这典型地是通过使用传送协议流量控制而进行的。于是终端接收、存储并再生从服务器传送过来的数据的精确副本,然后这个副本可以稍后在终端上再次进行再生,而无需再次通过电信网络开始一个流播。不过,一般来说,存储在终端中的多媒体文件都非常大,并且将它们传送到终端是非常耗时的且它们要求非常大量的存储空间,这就是为什么经常会首选常规流播的原因。
多媒体文件中的视频文件包括大量的静态图像帧,这些帧被快速连续地(通常为每秒15到30帧)显示以产生运动图像的效果。这些图像帧典型地包括很多静止的背景物,它们由基本保持不变的图像信息确定,以及包括少量的运动物,它们由发生了某种程度的变化的图像信息确定。由连续显示的图像帧包含的信息通常大同小异,即,连续的图像帧包含相当大的冗余量。视频文件中出现的冗余性可以分为空间、时间和频谱冗余。空间冗余涉及相邻图像像素的相互相关性,时间冗余涉及后续帧中的特定图像对象中发生的变化,而频谱冗余涉及图像帧中的不同颜色分量的相关性。
为了减少视频文件中的数据量,可以通过减少图像帧中的冗余信息量来将图像数据压缩为较小的形式。此外,在编码的同时,大多数当前使用的视频编码器会使视频信息中不很重要的图像帧片断的图像质量降级。此外,很多视频编码方法是通过对压缩参数进行高效无损编码(称为VLC(可变长度编码))而使得从图像数据编码得到的比特流中的冗余得以减少的。
此外,很多编码方法利用上面介绍的连续图像帧的时间冗余。在这种情况下,使用了一种称为运动补偿时间预测的方法,即,视频序列中的一些(典型地是大多数)图像帧的内容是通过跟踪连续图像帧中的特定对象或区域的变化,从该序列中的其它帧预测出来的。视频序列总是包含一些压缩的图像帧这些压缩图像帧的图像信息尚未使用运动补偿时间预测来确定。这样的帧被称为INTRA帧,或I帧。对应地,由在前图像帧预测的运动补偿视频序列图像帧被称为INTER-帧,或P帧(预测的)。P帧的图像信息是使用一个I帧和可能一个或多个在前编码的P帧确定出来的。如果丢失了一帧,那么依赖于它的其它帧就不再能够被正确地解码。
I帧通常发起一个被定义为一个图片组(GOP)的视频序列,该图片组的P帧只能根据所关心的GOP中的I帧和在前的P帧进行确定。下一个I帧开始一个新的图片组GOP,该图片组包含的图像信息因此不能根据在前的GOP的帧进行确定。换句话说,图片组在时间上是不重叠的,从而每个图片组可以单独进行解码。此外,很多视频压缩方法采用了双向预测的B帧(双向的),在图片组GOP中,这些B帧被设置在两个锚帧(anchor frame)(I帧和P帧或两个P帧)之间,B帧的图像信息是从在前的锚定帧和跟在B帧之后的锚定帧预测出来的。因此B帧提供了质量比P帧高的图像信息,但是通常它们不用作锚定帧,因此从视频序列中将它们去除不会使后续图像的质量降级。不过,没有什么会阻止B帧也用作为锚定帧,只是在那种情况下,才不能将它们从视频序列中除去、而不降低依赖于它们的那些帧的质量。
每个视频帧可以分为称为宏块的部分,这些宏块包括一个矩形图像区域的所有像素的颜色分量(比如Y、U、V)。更加具体讲,宏块由每颜色分量至少一个块组成,这些块各自包括相关图像区域中的一个色级的颜色值(比如Y、U或V)。这些块的空间分辨率可以不同于宏块的空间分辨率,例如,U和V分量可以仅使用Y分量的分辨率的一半进行显示。宏块可以进一步编组为条,例如,宏块条可以是通常按照图像的扫描顺序选取的宏块的组。时间预测通常是在块或宏块所特定的视频编码方法中进行的,而不是在图像帧所特定的视频编码方法中进行的。
为了顾及视频文件的灵活流播,很多视频编码系统采用了可缩放编码,按照这种编码方法,可以除去视频序列的部分元素或元素组,而不会影响视频序列其它部分的重构。可缩放性通常是通过将图像帧编组为几个分层结构的层来实现的。编码到基本层图像帧的图像帧基本上只包括对于在接收端进行视频信息解码所必需的图像帧。每个图片组GOP的基本层因此包括一个I帧和必要数目的P帧。在基本层之下可确定一个或多个增强层,每一个增强层与上一层相比提高了视频编码的质量。因此这些增强层包含基于运动补偿、由一个或多个上层图像预测得到的P或B帧。这些帧通常依据一个算术级数来编号。
在流播过程中,传送比特率必须是根据所使用的带宽或接收者的最大解码或者比特率值进行控制的。比特率可以在流播服务器中进行控制,或者在电信网络的某一个单元中进行控制,例如在因特网路由器或移动通信网络的基站中进行控制。在流播服务器中控制比特率的最简单的手段是从传送中省去具有高信息含量的B帧。此外,流播服务器可以确定将在视频流中传送的可缩放层的数量,并且因此可以总是在新的图片组GOP开始的时候,改变可缩放层的数量。使用不同的视频序列编码方法也是可能的。相应地,在电信网络的单元中,可以从比特流中去除增强层的B帧以及其它的P帧。
上述方案牵涉到许多缺点。很多编码方法,比如依据ITU-T(国际电信联盟,电信标准化部门)标准H.263进行的编码,都熟悉一种称为参考图片选择的规程。在参考图片选择中,P图像的至少一部分是由除了在时域内紧接在该P图像前面的图像之外的至少一个其它图像预测出来的。所选定的参考图像以特定于图像的、特定于图像段(比如一条或一组宏块)的、特定于宏块的或者特定于块的方式在编码的比特流或者比特流标题字段中用信号通知。可以对参考图片选择进行推广,以致于还可以从在时间上跟在所要编码的图像后边的图像来作出预测。此外,还可以将参考图片选择推广为覆盖所有的在时间上进行预测的帧类型,包括B帧。由于还可能选择先于作为图片组GOP开始的I图像的至少一个图像作为参考图像,因此采用参考图片选择的一组图片不是必定能独立解码的。此外,在流播服务器或网络单元中进行可缩放性或编码方法的调节变得很困难,因为必须对视频序列进行长时段的解码、分析和缓冲,以使得不同图像组之间的任何依赖性都能够得以检测出来。
现有技术的编码方法中的另一个问题是,没有用信号通知INTER-帧之间的重要性差异的有用方法。例如,当要对很多个P帧进行连续预测时,对于重构来说第一个P帧通常是最重要的帧,这是因为有比后续P帧更多的、依赖于第一个P帧的图像帧。不过,已知的编码方法未能提供用信号通知这种重要性差异的简单方法。
再有一个问题涉及在另一个视频序列中间插入一个视频序列,这通常会导致图像编号的不连续。视频序列图像的编号典型地用于检测图像帧的缺失。不过,如果将一个单独的视频序列(比如一个商业节目)插入到一个视频序列中,则所述单独的视频序列通常配置有单独的图像编号,这个编号方式与原始视频序列的递增的图像编号是不一致的。接收终端可能因此会将不正常的图像编号解译为缺失图像帧的信号,并开始不必要的动作来重构被怀疑为缺失的图像帧,或者请求对其进行重新发送。在缩放视频序列的时候,会遇到同样的问题例如,如果去除了很多个连续的帧,则接收终端可能不必要地将这些去除解译为协议错误。

发明内容
因此本发明的一个目的是,提供一种使得由上述问题造成的不利因素能够得以减小的方法和一种实现该方法的设备。本发明的这一目的是通过一种方法、视频编码器、视频解码器、流播系统组成部分和计算机程序来实现的,它们的特征在于独立权利要求中所陈述的特征。
在从属权利要求中公开了本发明的优选实施例。
本发明基于这样一种思想编码一个可缩放的压缩视频序列,该视频序列包括根据至少第一和第二帧格式编码的视频帧,符合第一帧格式的视频帧独立于其它的视频帧,即,它们一般来说是I帧,而按照第二帧格式的视频帧是由至少一个其它的视频帧预测出来的,例如P帧。视频序列包括形成于其中的第一子序列,所述子序列的至少一部分是通过对至少第一帧格式(I帧)的视频帧(I帧)进行编码而形成的;和至少一个第二子序列,所述子序列的至少一部分是通过对至少第二帧格式的视频帧(例如,P帧)进行编码而形成的,并且所述第二子序列的至少一个视频帧是从所述第一子序列的至少一个视频帧预测出来的。此外,将由至少第二子序列包含的视频帧的识别数据确定到所关心的视频序列中。
因此,本发明的一个主要方面是确定每个子序列所依赖的子序列,即,一个子序列将包含已被直接用于预测由所述子序列包含的图像帧的所有子序列的信息。这个信息在视频序列的比特流中最好独立于实际的图像信息而用信号通知,从而由该视频序列包含的图像数据可以优选地进行缩放,因为该视频序列可独立解码的部分可以很容易地确定出来,并且可以将所述部分除去而不会影响剩下的图像数据的解码。
按照本发明的一个优选实施例,为视频序列形成了可缩放的编码分层结构,按照这种分层结构,视频序列的第一个可缩放层按照这种方式编码它包括至少第一帧格式的视频帧,即I帧,且视频序列的较低的可缩放层被编码以使得它们包括至少第二帧格式的视频帧,即P和/或B帧,这些视频帧编组为子序列,其中至少一个视频帧是从上面的可缩放层的视频帧预测的,或者是从同一子序列的另一个视频帧预测的。可缩放层的数量没有限制。
按照本发明的一个优选实施例,为每个视频帧确定了一个唯一的标识符,该标识符组合了可缩放层号、子序列标识符和图像编号。可以将该标识符包含到视频序列的标题字段中,或者包含到依照传送协议要用于视频序列传送的标题字段中。
本发明的规程的优点是,它提供了一种灵活的编码分层结构,一方面,它使得能够实现所传送的视频序列的比特率的缩放,而不要求对视频序列进行解码,另一方面,它使得能够实现各个子序列的独立解码。这使得,例如流播服务器,能够方便地调节比特率,而不用对视频序列进行解码、分析和缓冲,因为流播服务器能够直接通过标识符以及它们间的依赖性来推导出不同的子序列间的依赖性。此外,必要时,流播服务器可以进行子序列所特定的、可缩放性或所采用的编码方法的调整,因为不同帧之间的依赖性是已知的。另外一个优点是,本发明的编码分层结构和图像编号使得一个单独的视频序列能够容易地插入到另一个视频序列中。


下面,将结合优选实施例并参照附图对本发明进行描述,其中附图1表示一种普通的多媒体数据流播系统,其中可以应用本发明的可缩放编码分层结构;附图2表示本发明的一个优选实施例的可缩放编码分层结构;附图3a和3b表示用于调整可缩放性的本发明的实施例;附图4a、4b和4c表示用于调整图像编号的本发明的实施例;附图5a、5b和5c表示在可缩放编码分层结构中使用B帧的本发明的实施例;附图6a、6b和6c表示本发明结合参考图片选择的优选实施例的可缩放编码分层结构;和附图7表示按照用于对场景变换进行编码的本发明的优选实施例的方案。
具体实施例方式
下面,公开了一种通用的多媒体数据流播系统,其基本原理可以与任何电信系统相结合地应用。虽然这里是具体参照流播系统(其中多媒体数据最好是通过诸如IP网络这样的采用包交换数据协议的电信网络传送的)对本发明进行介绍的,但是本发明同样也可应用在诸如固定电话网PSTN/ISDN(公共交换电话网/综合业务数字网)这样的电路交换网络或者移动通信网PLMN(公共地面移动网络)中。此外,本发明既可以应用在正常流播形式的多媒体文件流播中,又可以应用在累进下载的多媒体文件流播中,而且可以用于实现例如视频呼叫。
还应当注意到,虽然这里是具体参照流播系统对本发明进行介绍的,并且本发明也可以便利地应用于这些系统中,但是本发明并不单单局限于流播系统,而是可以应用在任何视频再生系统中,不管所要解码的视频文件是如何下载和从哪里下载的。本发明因此可以应用于,例如,从DVD盘或从其它一些计算机存储载体上下载的视频文件的回放,例如与可用于视频回放的变化处理能力相结合而进行。具体来讲,本发明可应用于通常在受到带宽限制的电信系统中使用的不同低比特率视频编码。一个实例是按照ITU-T标准H.263定义的系统和正在H.26L(可能以后会变为H.264)定义的系统。结合这些系统,本发明可以应用于例如移动台,在这种情况下,当移动台还被用来执行视频回放之外的其它应用时,可以对视频回放进行调节,以适应改变的传送容量或信道质量以及当前可用的处理器运算能力。
还应当注意,为了清楚起见,下面将通过给出一个图像帧级别上的图像帧编码和时间预测的计算来对本发明进行介绍。不过,在实践中,编码和时间预测通常是对块或宏块级进行的,正如上面所述的。
将参照附图1对一个典型的多媒体流播系统进行介绍,该系统是应用本发明的规程的优选系统。
多媒体数据流播系统通常包括一个或多个多媒体源100,比如摄像机和麦克风,或者存储在存储载体中的视频图像或计算机图形文件。在编码器102中,将从不同的多媒体源100得到的原始数据组合到一个多媒体文件中,该编码器102也可以称为编辑单元。从一个或多个多媒体源100得到的原始数据首先是使用一个包含在编码器102中的捕获装置104捕获到的,这个捕获装置通常可以被实现为不同的接口卡、驱动软件或控制卡功能的应用软件。例如,可以使用视频捕获卡和相关软件来捕获视频数据。捕获装置104的输出通常是未压缩或轻微压缩的数据流,例如当涉及到视频捕获卡时,是YUV 4:2:0格式或运动-JPEG图像格式的未压缩视频帧。
编辑器106将不同的媒体流链接在一起,以使按期望要同时再生的视频和音频流同步。编辑器106还可以举例而言,通过使帧速率减半或通过降低空间分辨率来对比如视频流的各个媒体流进行编辑。这些单独的(虽然是同步的)媒体流在压缩器108中进行压缩,在这种情况下,每个媒体流是使用适用于该媒体流的压缩器单独进行压缩的。例如,可以使用依照ITU-T建议标准H.263或H.26L的低比特率视频编码技术对YUV 4:2:0格式的视频帧进行压缩。通常在多路复用器110中对这些单独的、同步且经过压缩的媒体流进行交织,从编码器102得到的输出是一个单一、均匀的比特流,该比特流包含多个媒体流的数据,并且可以将该比特流称为多媒体文件。需要注意的是,多媒体文件的形成并非必须要求将多个媒体流多路复用为一个单一的文件,而是可以由流播服务器就在传送该媒体流之前对它们进行交织。
这些媒体文件被传送给一个流播服务器112,这样该服务器就具有按照实时流播方式或以累进下载的形式进行流播的能力。在累进下载过程中,首先将多媒体文件保存在服务器112的存储器中,当需求产生时,可以从这里取回它们以进行传送。在实时流播过程中,编辑器102向流播服务器112发送多媒体文件的连续媒体流,并且服务器112将该媒体流直接转送给客户端114。作为另外一种选择,还可以这样来执行实时流播将多媒体文件存储在一个可从服务器112进行访问的存储装置中,当需求产生时,可以从那里驱动实时流播并启动多媒体文件的连续媒体流。在这种情况下,编辑器102就没有必要借助任何手段对流播进行控制了。流播服务器112依照可用带宽或者客户端114的最大解码和回放速率来进行多媒体数据的业务量整形,该流播服务器112能够例如通过从传输中省去B帧或者通过调整可缩放层的数量来调节媒体流的比特率。而且,流播服务器112可以修改经多路复用的媒体流的标题字段,以减小它们的大小,并且可以将多媒体数据封装到适于在所采用的电信网络中传送的数据包中。客户端114可以通过使用适当的控制协议来至少在某种程度上对服务器112的操作进行调节。客户端114至少可以通过这样的方式对服务器112进行控制可以选择所需的多媒体文件传送到客户端,除此之外,客户端通常还能够停止和中断多媒体文件的传送。
当客户端114正在接收多媒体文件时,首先将该文件提供给一个解复用器116,该解复用器将多媒体文件所包含的媒体流分离出来。然后将单独的、经压缩的媒体流提供给一个解压缩器118,此处各个单独的媒体流是由适用于各个具体媒体流的解压缩器进行解压缩的。将经解压缩和重构的媒体流提供给一个回放单元120,在这里,这些媒体流是依照它们的同步数据以正确的步调得以还原的,然后将经还原的媒体流提供给呈现装置124。实际的呈现装置124可以包括,例如,计算机或移动台显示器和扬声器装置。客户端114一般来说还包括一个控制单元122,终端用户一般可以通过一个用户界面对该控制单元122进行控制,并且该控制单元122根据终端用户给出的指令,既可以通过上述的控制协议对服务器的操作进行控制,也可以对回放单元120的操作进行控制。
要注意的是,多媒体文件从流播服务器112到客户端114的传送是通过电信网络进行的,传送路径通常包括多个电信网络单元。因此有可能至少有这样的一些网络单元,它们可以至少部分地以与上面关于流播服务器介绍的相同方式,来进行关于可用带宽或客户端114的最大解码和回放速率的多媒体数据的业务量整形。
下面将参照本发明的优选实施例和附图2中示出的一个实例对可缩放编码进行介绍。附图2表示压缩视频序列的一部分,具有第一帧200,该第一帧200是一个INTRA帧或I帧,并因此是一个独立确定的视频帧,其图像信息无需使用运动补偿时间预测来确定。I帧200位于第一可缩放层,该层也可称为INTRA层。给每个可缩放层分配一个唯一的标识符,比如层号。因此可以分配给INTRA层例如一个号码0,或者其它字母数字的标识符,例如一个字母,或字母与数字的组合。
相应地,为各个可缩放层确定了由一个或多个视频帧的组构成的子序列,在一个组的图像中的至少一个(一般来说是第一个或最后一个)被至少从另一个子序列的视频帧进行时间预测,所述另一个子序列一般来说是较高或同一可缩放层的子序列,其余的视频帧是仅从同一子序列的视频帧进行时间预测,或者也有可能从所述第二个子序列的一个或多个视频帧进行时间预测。子序列可以独立地进行解码,而不考虑除了所述第二个子序列之外的其它子序列。使用例如从为可缩放层的第一个子序列给出的号码0开始的连续编号,为每个可缩放层的子序列分配了一个唯一的标识符。由于I帧200是独立确定的,并且在接收的时候还可以进行与其它图像帧无关的独立解码,因此它还可以在某种意义上形成一个单独的子序列。
因此,本发明的主要特征是根据子序列所依赖的那些子序列来确定每个子序列。换句话说,一个子序列包括关于已直接用于预测该所关心子序列的图像帧的所有子序列的信息。这个信息在视频序列比特流中用信号通知,最好是独立于实际的图像信息,并且因此该视频序列的图像数据可以优选地被调节,因为很容易确定要独立进行解码的视频子序列部分,并且可以将其除去,而不会影响其余图像数据的解码。
下面,在每个子序列中,使用例如从为子序列的第一个视频帧给出的号码0开始的连续编号,为子序列的视频帧给出图像号码。由于I帧200也形成一个单独的子序列,所以其图像号码为0。在附图2中,I帧200显示为该帧的类型(I)、子序列标识符和图像号码(0.0)。
附图2还示出了INTRA层的下一个I帧202,该帧也是一个未使用运动补偿时间预测而确定的独立确定的视频帧。I帧的时间传输频率取决于很多与视频编码、图像信息内容以及所要使用的带宽相关的因素,并且,取决于应用程序或应用环境,例如,I帧以0.5到10秒的间隔在视频序列中传送。由于I帧202可以独立解码,因此它也形成一个单独的子序列。由于这是INTRA层中的第二个子序列,因此I帧202的子序列标识符的连续编号为1。此外,由于I帧202也形成单独的子序列,即,它是该子序列中仅有的视频帧,因此其图像号码为0。这样,I帧202可由标识符(I.1.0)标示。相应地,INTRA层中的下一个I帧的标识符是(I.2.0),等等。结果,只有独立确定的I帧(其中图像信息不是使用运动补偿时间预测确定的)被编码到第一个可缩放层(即,INTRA层)中。也可以使用其它类型编号方式或其它的标识符来确定这些子序列,只要可以使子序列相互区别开来即可。
下一个可缩放层(该层具有层号(例如)1,并且可以将该层称为基本层),包括经编码的、经运动补偿的INTER或P帧(一般仅从在前的图像帧进行预测,即,在这种情况下,是从上面的INTRA层的I帧预测)。附图2中所示的基本层的第一个P帧204的图像信息是使用INTRA层的I帧200确定的。以P帧204开始该基本层的第一个子序列,因此P帧204的子序列的标识符为0。此外,由于P帧204是基本层的第一个子序列的第一个图像帧,因此P帧204的图像号码是0。P帧204因此可由(P.0.0)来标识。
基本层中在时间上跟在后边的P帧206是从在前的P帧204预测出来的。因此P帧206和204属于同一子序列,从而P帧206也接纳子序列标识符0。由于P帧206是子序列0中的第二图像帧,所以P帧206的图像号是1,并且该P帧206可由(P.0.1)来标识。
跟在基本层后面且具有层号2的可缩放层叫做增强层1。该层包括经编码的、仅从在前的图像帧预测出来的运动补偿的P帧,在这种情况下是从INTRA层的I帧或基本层的P帧预测出来的。附图2示出了增强层1的第一个图像帧208和第二个图像帧210,它们都是仅从INTRA层的第一图像帧200预测出来的。从P帧208开始增强层1的第一个子序列,因此该P帧的子序列标识符是0。此外,由于P帧208是所述子序列中的第一个也是仅有的图像帧,因此P帧208接纳图像编号0。这样P帧208可由(P.0.0)来标识。
由于第二个图像帧210也是仅从INTRA层的第一个图像帧200预测来的,所以从该P帧210开始增强层1的第二个子序列并且因此该P帧210的子序列标识符是1。由于P帧210是该子序列中的第一个图像帧,因此P帧210的图像编号为0。这样该P帧可由(P.1.0)来标识。增强层1中的在时间上后续的P帧212是从前一P帧210预测出来的。P帧210和212因此属于同一子序列,并且因此该P帧也接纳子序列标识符1。P帧212是子序列1中的第二个图像帧,因此该P帧接纳图像编号1,从而该P帧可由(P.1.1)标识。
增强层1的按时间顺序第四个图像帧214是从基本层的第一个图像帧204预测出来的。P帧214因此起始了增强层1的第三个子序列,因此P帧214接纳子序列标识符2。此外,由于P帧214是该子序列中的第一个且仅有的图像帧,因此P帧214的图像编号为0。因此P帧208可由(P.2.0)标识。
而且增强层1的按时间顺序第五个图像帧216是仅从基本层的第一个图像帧204预测出来的,P帧216因此起始了增强层1的第四个子序列,并且P帧216的子序列标识符是3。此外,由于P帧216是所关心的子序列中的第一个图像帧,因此P帧216的图像编号为0。因此P帧216可由(P.3.0)标识。增强层1中的在时间上后续的P帧218是从先前的P帧216预测出来的。P帧216和218因此属于同一子序列,并且该P帧218的子序列标识符也为3。由于P帧218是子序列3中的第二个图像帧,因此该P帧218的图像编号为1,从而该P帧218可由(P.3.1)标识。
为了说明的简便和清楚,上面所介绍的公开内容仅涉及I和P帧。不过,本领域的技术人员可以轻而易举地发现,本发明的可缩放视频编码也可以使用其它公知的图像帧类型来实现,比如上面所介绍的B帧和至少SI帧、SP帧和MH帧。SI帧对应于I帧,不过和SP帧结合在一起,才能使相同的图像得以重构。依次地,SP帧是一个P帧,它经历了特殊的编码,与一个SI帧或另一个SP帧组合在一起才能使得同一图像得以重构。通常把SP帧放在视频序列中需要访问点或扫描点的点上,或者放在可能改变视频流的编码参数的点上。并且这些帧还可用于纠错和用于提高容错。SP帧在其它方面与由在前帧预测的常规P帧相同,只是将SP帧定义为可由SP或SI类型的另一个视频帧进行替换,新的帧的解码结果与视频流中原来的SP帧的解码结果相同。换句话说,用于代替视频流中的SP帧的新的SP帧是从另一个序列或视频流中预测出来的,并且重构得出的帧仍然具有相同的内容。在例如本申请人较早的申请PCT/F102/00004中对SP帧进行了介绍。
与B帧类似,MH(多假设(Multi Hypothesis))帧的宏块是根据运动补偿预测由两个其它的帧预测出来的,不过,这两个其它的帧并不必须与MH帧位置相邻。更精确地讲,将预测宏块计算做两个其它帧的两个宏块的平均。不使用两个帧,MH帧宏块实际上也可从一个其它帧预测出来。可以依据宏块而改变参考图像,换句话说,在同一图像中的所有宏块没有必要使用同一帧进行预测。
这样,子序列覆盖了视频序列中的特定的时间段。同一层或不同层的子序列可以是部分或完全重叠的。如果在同一层上有时间上重叠的图像帧,那么可以将这些帧解译为是同一图像内容的交替表示,因此任何模式的图像表示都可以使用。另一方面,如果在不同层上有时间上重叠的图像帧,则它们形成了同一图像内容的不同表示,并且因此这些表示在图像质量上是不同的,即,较低层上的图像质量更好。
上面参照附图2公开的内容说明了按照本发明的优选实施例的图像帧的一种可缩放的编码方案以及一种分层结构和编号方法。在这个实施例中,INTRA层只包括I帧,基本层可以只使用从INTRA层接收的信息进行解码。相应地,增强层1的解码一般来说需要来自基本层和INTRA层的信息。
可缩放层的数量不局限于如上所述的三个,而是可以使用为产生足够的可缩放性而考虑的任何数量的增强层。从而,增强层2的层号是四,增强层3的层号是五等等。由于上述例子中的某些图像帧被给予相同的标识符(例如,图像帧204和208的标识符都是(P.0.0)),因此通过在标识符中包含层号,便能够唯一地标识每个图像帧,并且同时,优选地确定了每个图像帧与其它图像帧的依赖性。这样就唯一地标识了每个图像帧,图像帧204的标识符,例如,是(P.1.0.0)或简单地是(1.0.0),相应地,图像208的标识符是(P.2.0.0)或(2.0.0)。
按照本发明的一个优选实施例,参考图像帧的号码是依照一个特定的预定字母数字数序列来确定的,例如为0和255之间的整数。当参数值达到所考虑的序列中的最大值N(例如,255)时,则参数值的确定从头开始,即,从序列的最小值(例如,0)开始。这样,图像帧在特定的子序列中得到了唯一地标识,直到同样的图像编号被再次使用的那一点。子序列标识符也可以依照一个特定的预定算术级数来确定。当子序列标识符的值达到该级数的最大值N时,标识符的确定再次从该级数的首项开始。不过,不能将仍在使用的(在同一层中的)标识符分配给子序列。除了算术方法外,还可以采用另外一种方法来确定所使用的序列。一种可选方案是,分配随机子序列标识符,要考虑所分配的标识符不被再次使用。
当用户希望在视频序列的中间开始浏览视频文件时,图像帧的编号会出现问题。这种情况发生在,例如,用户希望向后或向前浏览本地存储的视频文件或在一个特定的点浏览流播文件的时候;用户从一个随机点启动流播文件的回放的时候;或者检测到所要再生的视频文件中包含错误、而该错误会中断回放或者要求从错误之后的点重新恢复回放的时候。当视频文件的浏览是在先前的浏览之后从一个随机点重新开始时,图像编号通常会出现不连续性。解码器一般来说会将这种情况解译为图像帧的非故意缺失,并且将会不必要地设法重构那些疑为丢失的图像帧。
按照本发明的一个优选实施例,这可以通过在可独立解码的图片组GOP中定义一个起始图像来避免在解码器中发生这种情况,该可独立解码的图片组GOP是在视频文件的随机点上被激活的,并且所述起始图像的编号被设置为零。这样,该可独立解码的图片组可以是例如INTRA层的一个子序列,例如在这种情况下,将一个I帧用作所述起始图像,或者,如果采用了源自基本层的缩放,则该可独立解码的图像组是基本层的一个子序列,在这种情况下,该子序列的第一个图像帧(一般来说是I帧)通常用作起始图像。从而,当在一个随机点激活时,解码器优选地将可独立解码的子序列的第一个图像帧(最好是I帧)的标识符设置为0。由于所要解码的子序列还可能包含其它标识符为零的图像帧(例如当上述的字母数字序列从头开始时),可以将子序列的开端(即,其第一个图像帧),例如,通过加在该图像帧中的一个条的标题字段中的一个单独标记而指示给解码器。这使得解码器能够将该图像编号正确地解译,并且能够从视频序列的图像帧中找到起始该子序列的正确图像帧。
上述的编号系统给出了这样一个实例如何进行本发明的唯一图像帧标识,以致同时指示出图像帧之间的相互依赖性。不过,可以应用本发明的方法的视频编码方法,比如依照ITU-T标准H.263和H.26L的视频编码方法,采用了代码表,它们进而使用了可变长度编码。当使用可变长度编码来对层号进行编码时,例如,一个较低的码字索引,即较小的层号,则这意味着一个较短的码字。在实践中,本发明的可缩放编码将会在大多数情况中以这样一种方式用,即基本层将会包括明显多于INTRA层的图像帧。这证明了在基本层使用比INTRA层较低的索引(即,较小的层号)是正确的,因为编码的视频数据量由此有利地得到了降低。由此,最好为INTRA层指配层号1而将层号0配给基本层。另外,可以通过使用比INTRA层编号更少的比特对基本层编号进行编码来形成所述代码,在这种情况下,考虑到所创建的代码长度,实际的层号值是无关的。
此外,按照本发明的第二个优选实施例,当使可缩放层的数量保持得较低时,尤其可以将第一个可缩放层编码为包含INTRA层和基本层。从编码的分层结构的角度考虑,构思此方案的最简单的方法是一起省略掉INTRA层,并为基本层提供由独立定义的I帧(其图像信息未使用运动补偿时间预测来确定)和从在前的帧预测出来的图像帧(图像帧在这种情况下是由同一层的I帧预测出来的运动补偿P帧)组成的编码帧。这样,基本层仍然可以使用层号0,并且,如果将增强层编码为视频序列,则分配给增强层1的层号是1。这将在下面参照附图3a和3b进行说明。
附图3a表示一个非可缩放的视频序列结构,其中所有的图像帧都放在同一可缩放层上,即,基本层上。该视频序列包括一个第一图像帧300,它是一个I帧(I.0.0),并且因此它起始第一子序列。图像帧300用于预测子序列的第二个图像帧302,即,P帧(P.0.1),然后该P帧用于预测该子序列的第三个图像帧304,即,P帧(P.0.2),该P帧(P.0.2)进而用于预测下一个图像帧306,即,P帧(P.0.3)。然后在该视频序列中配备一个经编码的I帧(I.1.0),即I帧308,这样,该I帧起始该视频序列中的第二个子序列。这种类型的非可缩放编码可用于,例如,当所采用的应用不允许使用可缩放编码时,或者不需要使用可缩放编码时。例如,在电路交换可视电话应用中,信道带宽保持恒定,并且视频序列是实时编码的,因此一般情况下不需要可缩放编码。
接下来,附图3b表示这样一个实例,在需要的时候,如何为组合在一起的INTRA和基本层添加可缩放性。这里,视频序列基本层同样包括一个第一图像帧310,它是一个I帧(I.0.0),并且它起始基本层的第一个子序列。图像帧310用于预测该子序列的第二个图像帧312,即,P帧(P.0.1),然后该P帧用于预测该子序列的第三个图像帧314,即,P帧(P.0.2)。不过,增强层1也编码为这一视频序列,并且它包括一个第一子序列,该第一子序列的第一个且唯一的图像帧316是一个P帧(P.0.0),该P帧是从基本层的第一个图像帧310预测来的。增强层的第二个子序列的第一个图像帧318是顺次从基本层的第二个图像帧312预测来的,并且因此这个P帧的标识符是(P.1.0)。增强层的下一个图像帧320再次地是从同一层的在前图像帧318预测出来的,因此,它属于同一个子序列,从而其标识符为(P.1.1)。
在本发明的这一实施例中,基本层的子序列可独立地解码,虽然基本层子序列可能依赖于另一个基本层子序列。基本层子序列的解码需要来自基本层和/或来自增强层1的第二个子序列的信息,增强层2的子序列的解码需要来自增强层1和/或来自增强层2的第二个子序列的信息,等等。按照一种实施方案,I帧并不单单限于基本层,而是较低的增强层也可以包含I帧。
支持上述实施例的基本思想是,一个子序列包含关于它所依赖的所有子序列的信息,即,关于用于预测所讨论的子序列的图像帧中的至少一帧的所有子序列的信息。不过,按照一种实施方式,也可能是一个子序列包含关于依赖于所讨论的子序列的所有子序列的信息,也就是,关于所有这样的子序列的信息,即在该子序列中至少一个图像帧已使用所讨论的子序列中的至少一个图像帧预测。由于在后一情况下,依赖性一般来说在时间上是向前确定的,因此在编码过程中可以按照稍后介绍的方式来方便地利用图像帧缓冲器。
在上述所有实施例中,图像帧的编号都是子序列所特定的,即,新的子序列总是从头开始编号。这样,标识个体图像帧就需要确定层号、子序列标识符和图像帧编号。按照本发明的优选实施方式,可以使用连续的编号对图像帧进行独立编号,其中连续的参考图像帧按照编码顺序由递增一的号码来指示。关于层号和子序列标识符,也可以采用上述的编号规程。在必要的时候,这使得每个图像帧都能够得以唯一地标识,而无需使用层号和子序列标识符。
这将参照附图4a所示的例子进行介绍,在附图4a中,基本层包括一个在时间上处于第一位的I帧400(I.0.0)。这个帧用于预测增强层1的第一个图像帧402,即,(P.0.1),然后帧(P.0.1)用于预测属于同一子序列(具有子序列标识符0)的第二个图像帧404,即,(P.0.2),帧(P.0.2)用于预测同一子序列的第三个图像帧406,即,(P.0.3),帧(P.0.3)用于预测第四个图像帧408(P.0.4),最后,第四个帧用于预测第五个图像帧410(P.0.5)。按时间顺序下一个视频序列图像帧412位于基本层上,在这种情况下该帧412与I帧400处于同一子序列中,虽然按时间顺序它只是第七个编码的图像帧,并且因此其标识符为(P.0.6)。于是该第七个帧用于预测增强层1的第二个子序列的第一个图像帧414,即,(P.1.7),然后该帧(P.1.7)用于预测属于同一子序列(具有子序列标识符1)的第二个图像帧416,即,(P.1.8),帧(P.1.8)进而用于预测第三个图像帧418(P.1.9),该第三个图像帧(P.1.9)用于预测第四个图像帧420(P.1.10),最后,第四个图像帧420用于预测同一子序列的第五个图像帧422(P.1.11)。按时间顺序下一个视频序列图像帧424再次位于基本层上,这里它与I帧400和P帧412处于同一子序列中,虽然按时间顺序它只是第十三个编码图像帧,并且因此其标识符为(P.0.12)。为了说明清楚,本实施例的上述说明没有包含层标识符,不过显然,为了实现可缩放性,层标识符也必须与视频序列一起用信号通知,一般来说是作为图像帧标识符的一部分。
附图4b和4c表示对附图4a中所示的视频序列的图像帧进行编组的另外的实施例。附图4b中的图像帧是依据子序列进行编号的,即,新的子序列总是从开端(从零)开始编号。接下来,附图4c采用了这样一种图像帧编号方法在其它方面上与附图4a中所使用的编号方法相对应,只是基本层的P帧由SP帧对代替,以顾及图像信息的等同重构。
如上所述,本发明的规程也可以使用B帧来实现。它的一个例子在附图5a、5b和5c中给出。附图5a表示时域中的一个视频序列,该序列包含P帧P1、P4和P7,有多个B帧位于它们之间,B帧关于时间预测的相互依赖关系由箭头表示。附图5b表示视频序列图像帧的一个优选编组,其中示出了附图5a中所示的相互依赖关系。附图5b表示子序列所特定的图像帧编号,其中新的子序列总是从零开始对图像帧编号。接下来,附图5c表示这样一种图像帧编号按照时间预测的顺序连续编号,其中后面的参考帧总是接纳前一编码的参考帧的下一个图像号码。图像帧(B1.8)(和(B2.10))不用作任何其它帧的参考预测帧,因此它不影响图像帧编号。
上面的例子说明了可如何通过使用本发明的方法来调整视频序列编码的可缩放性的不同可选方案。从终端设备再生视频序列的角度看,可得到越多的可缩放层,或者说能够解码的可缩放层越多,图像的质量就越好。换句话说,图像信息量的增加和用于传送这些信息的比特率的增大,提高了时间或空间分辨率,或者图像数据的空间质量。相应地,较多数量的可缩放层也会对执行解码的终端设备的处理能力提出相当高的要求。
此外,上面的例子说明了通过使用子序列所获得的优点。通过使用图像帧标识符,便以明确的方式指出了子序列中每个图像帧与其它图像帧的依赖性。这样,子序列就形成了一个独立的整体,在必要时,它可以整个被从视频序列中省去,而不会影响视频序列中后续图像帧的解码。在这种情况下,只有所讨论的子序列的图像帧和在同一可缩放层上和/或在较低可缩放层上依赖于该所讨论子序列的子序列中的图像帧不被解码。
与视频序列一起发送的图像帧标识符数据最好包含在视频序列的标题字段中或包含在传送视频序列所使用的传送协议的标题字段中。换句话说,预测得到的图像帧的标识符数据并不包含在经编码的视频序列的图像数据中,而总是包含在标题字段中,从而不用对实际视频序列的图像进行解码就可以检测出图像帧的依赖性。在对视频序列进行编码以进行传送的时候,该图像帧的标识符数据可以存储在,例如,流播服务器的缓冲存储器中。此外,可以在各个可缩放层上对子序列进行独立的解码,因为子序列的图像帧不依赖于同一可缩放层上的其它子序列。
按照本发明的一种实施方式,子序列所包含的图像帧因此也可以依赖于同一可缩放层上的其它子序列。然后必须将这种依赖性用信号通知给,例如,执行业务量整形的流播服务器,因为位于同一层上的相互依赖的子序列不能单独地从所要发送的视频序列中除去。执行该信令的优选方式是将其包含在所发送的图像帧标识符中,例如通过列出所讨论的子序列所依赖的层-子序列对。这还提供了一种表示与同一可缩放层上的另一个子序列的依赖性的优选方式。
上述的例子说明了这样一种情况图像帧是按照时间顺序从在前的图像帧预测出来的。不过,在一些编码方法中,已经将参考图片选择进一步扩展到还包括从按时间顺序跟在后面的图像帧来预测图像帧的图像信息。参考图片选择提供了创建不同的在时间上可缩放图像帧结构的很多各种各样的手段,并且使得视频序列的错误敏感度得到了降低。基于参考图片选择的编码技术之一是INTRA帧延期。INTRA帧未被放在在视频序列中其在时间上的“正确”位置上,但是其位置被在时间上延期。位于INTRA帧的“正确”位置与其实际位置之间的视频序列图像帧按时间顺序向后由所讨论的INTRA帧进行预测。这自然要求将未编码的图像帧缓冲充分长的时间段,以致使所要显示的所有图像帧都可以被编码且得以按照它们的呈现次序安排。下面将参照附图6对按照本发明的INTRA帧转移以及相关的子序列确定进行介绍。
附图6a表示一个视频序列部分,其中INTRA帧包括一个单一的I帧600,该I帧在时间上被转移到附图6中所示的位置上,虽然该I帧在视频序列中的“正确”位置应当是第一个图像帧的位置。这样,在“正确”位置与实际位置600之间的视频序列图像帧是按照时间顺序向后由I帧600预测出来的。这是通过编码到增强层1中并且具有第一个按时间顺序后向预测的图像帧602(P帧(P.0.0))的子序列表示出来的。这个帧用于按时间顺序预测在前的图像帧604,即,P帧(P.0.1),该P帧(P.0.1)顺次用于预测图像帧606,即,P帧(P.0.2),最后,帧606用于预测图像帧608,即,P帧(P.0.3),该P帧(P.0.3)处于I帧600在视频序列中的“正确”位置上。相应地,基本层上的I帧600还用于包含四个P帧610、612、614和616(即,P帧(P.0.0)、(P.0.1)、(P.0.2)和(P.0.3))的子序列的按时间顺序前向预测。
在这个例子中,将后向预测的图像帧放在比前向预测的图像层更低层上的行为表明,为了说明的目的,在这个编码实例中,将后向预测的图像帧主观地看作没有前向预测的图像帧有价值。自然,这些子序列也可以同时放在同一层上,在这种情况下,可以将它们看作是等同的,或者也可以将后向预测的子序列放在上层上,在这种情况下,可以将其主观地看作为更有价值。
附图6b和6c表示对依据附图6a的视频序列进行编码的一些可供选择的方法。在附图6b中,前向和后向预测的子序列都放在了基本层上,只有I帧放在INTRA层上。这样,这一层上的前向预测的子序列是第二个子序列并且其子序列标识符为1。接下来,在附图6c中,I帧和基于该I帧的前向预测的子序列放在基本层上,而后向预测的子序列放在了增强层1上。
而且,按照本发明的优选实施例方式,可以利用上面介绍的可缩放性来将所谓的场景变换编码为视频序列。诸如新闻报道、音乐视频和电影预告片这样的视频素材经常包括单独的图像素材场景之间的迅速切换。有时候这种切换是突然的,不过通常使用一种称为场景变换的规程,按照这种方法,从一个场景向另一个场景的转换是通过使前一个场景的图像帧渐渐变暗、擦除、马赛克淡入淡出或滚动、并且相应地通过表现出下一场景的图像帧来进行的。从编码效率的角度看,场景变换的视频编号通常是很有问题的,因为在场景变换过程中出现的图像帧既包括有关终止场景的图像帧的信息又包括有关开始场景的图像帧的信息。
一种典型的场景变换-淡出淡入,是通过逐渐将第一个场景的图像帧的强度或亮度降低为零,同时逐渐将第二个场景的图像帧的强度增大到其最大值来实现的。这种场景变换被称为交叉淡出淡入场景变换。
一般来说,可以将计算机制作的图像想象为是由多个层或图像对象组成的。可以参照至少三种信息类型来定义每个对象图像对象的结构、它的形状和透明度,以及相对于图像的背景和其它图像对象的分层等级(深度)。形状和透明度通常是使用所谓的阿尔法平面来确定的,该阿尔法平面测量不透明性并且其值通常是为各个图像对象单独确定的,有可能不包括背景,背景通常被确定为不透明的。这样,可以将不透明的图像对象(比如背景)的阿尔法平面值设置为1.0,而完全透明的图像对象的阿尔法平面值为0.0。之间的值定义了图片中的特定图像对象相比于背景,或其它至少部分重叠的具有高于所讨论的图像对象的深度值的图像对象的可见性的强度。
依据图像对象的形状、透明度和深度位置、按层次的图像对象的叠合称为场景合成。在实践中,该规程是以使用加权平均为基础的。首先,将最接近背景,即,依据其深度位置是最深的图像对象放到背景上,从而形成了它们两个的组合图像。将组合图像的像素值形成为由背景图像和所讨论的图像对象的阿尔法平面值加权了的平均值。然后将该组合图像的阿尔法平面值设置为1.0,此后,该组合图像用作下一图像对象的背景图像。这一处理过程继续进行,直到将所有图像对象都粘贴到该图像上。
在下文中,将会介绍一种按照本发明的优选实施方式的规程,其中将视频序列可缩放层与上面介绍的图像帧的图像对象以及它们的信息类型结合起来,以提供具有可缩放视频编码的场景变换,它还具有良好的压缩效率。
下文中本发明的这个实施例是借助实例并以简化的方式进行介绍的,一方面,通过使用交叉淡出淡入场景变换作为实例,另一方面,通过使用突变场景变换作为实例。在场景变换过程中所要显示的图像帧一般来说是由两个重叠的图像帧形成的,第一个图像帧包括第一个图像场景而第二个图像帧包括第二个场景。图像帧之一用作背景图像,而其它被称为前景图像的图像帧被放在该背景图像之上。背景图像的不透明度,即,其非透明性值是恒定的。换句话说,其像素所特定的阿尔法平面值不被调节。
在本发明的这个实施例中,背景和前景图像都是按照可缩放层定义的。这在附图7中进行了说明,附图7表示可如何在本发明的场景变换期间将两个不同场景的图像帧放到可缩放层上。附图7示出了位于基本层上的第一个(终止)场景的第一个图像帧700。该图像帧700可以是一个包含没有使用运动补偿时间预测确定的图像信息的I帧,或者是一个P帧(它是由在前的图像帧预测的运动补偿图像帧)。在按照时间顺序的后面的图像帧期间,第二个(起始)场景的编码开始,并且,按照本发明,也将该场景的图像帧放在基本层上。然后将第二个(终止)场景中剩下的图像帧702、704放在增强层1上。这些图像帧一般来说是P帧。
在这个实施例中,因此至少在场景变换的持续时间之内将第二个(起始)场景的图像帧放在基本层上。该场景的第一个图像帧706一般来说是一个I帧,并且它用于按时间顺序预测该场景的后续图像帧。因此,第二个场景的后续图像帧是时间上预测的帧,一般来说是P帧,比如附图7中所示的帧708和710。
按照本发明的一种优选实施方式,通过将基本层上的图像层总是定义为具有最大不透明度(100%)或非透明性值的背景图像,这种将图像帧放在可缩放层上可用于实现交叉淡出淡入场景变换。在场景变换期间,将位于增强层上的图像帧放到背景图像上,并且例如借助适当的滤波器对它们的不透明度进行调节,以致这些帧逐渐从不透明变为透明。
在附图7所示的视频序列中,在第一个基本层图像帧700期间,在较低的可缩放层上没有图像帧。对于这一时刻,仅将该第一个图像帧700编码为视频序列。
基本层的下一个图像帧706起始了一个新的(第二)场景,在此期间,为图像帧706提供了将其放置为背景图像的深度定位,并且将其不透明度值设置为最大。在增强层1上,有一个终止(第一)场景的图像帧702与基本层的图像帧706在时间上是同时的。为了使得交叉淡出淡入场景变换得以实现,必须要增大帧702的透明性。附图7的例子假设,将图像帧702的不透明度设置为67%,并且,此外,为图像帧702提供了将其确定为前景图像的深度定位。对于这一时刻,将组合了图像帧706和702的图像编码到视频序列中,图像706可视为背景上的一个较弱的图像,而图像702可视为前面的一个较强的图像,因为其不透明度值实质上很高(67%)。
在按时间顺序跟在后面的图像帧期间,在基本层上有一个第二场景的第二图像帧708,因此为该帧708相应地提供了将其确定为背景图像的深度定位,并且将其不透明度值设为最大。增强层1还包括时间上同时终止的(第一)场景的最后一个图像帧704,将该帧的不透明度值设置为33%,并且此外,为该图像帧704提供了将其也确定为前景图像的深度定位。从而,对于这一时刻,将由图像帧708和704组合的图像编码为视频序列,图像708得以显示为背景上较强的图像,而图像704显示为前景上较弱的图像,因为图像704的不透明度值不再超过33%。
在按时间顺序跟在后面的图像帧期间,基本层包括一个第二场景的第三图像帧710。由于第一个场景已经终止,所以只有图像帧710被编码到视频序列中,并且第二个场景的显示从帧710继续进行。
上面的公开内容借助实例介绍了按照本发明的图像帧在可缩放层上的定位,用于以从编码效率的角度看比较有利的方式实现交叉淡出淡入的场景变换。不过,有可能在传送或解码视频序列的时候,出现这样一种情况,即必须依据可用于数据传送的带宽的最大值和/或终端设备解码速度对视频序列的比特率进行调整。此种比特率控制在要使用现有技术的视频编码方法实现场景变换的时候会引发问题。
本发明的优选实施方式现在允许将一个或多个可缩放层或包含在它们之中的可独立解码的子序列从视频序列中除去,从而可以降低视频序列的比特率,且同时仍然可以对视频序列进行解码,而不会降低图像频率。在按照附图7的图像帧定位中,这可以通过从视频序列中除去增强层1来实现。这样,视频序列仅用于显示基本层的图像帧700、706、708和710。换句话说,从第一个(终止)场景到第二个(起始)场景的直接变换以突然的场景变换的形式进行,即,直接从第一个场景的图像帧700进入到起始第二个场景的I图像帧706。该变换因此不是一个交叉淡出淡入的场景变换,而是一个突然的场景变换。然而尽管如此,场景变换还是能够以不影响视频序列图像的质量的有利方式进行,并且观众通常不会经历一个代替交叉淡出淡入场景变换的、以任何令人心烦或者有错误的方式而执行的突然的场景变换。与之相比较,由于现有技术的实现方法不允许除去可缩放层,所以场景变换经常需要降低图像频率,此时观众会感觉到突然的变化并且会觉得心烦。
因此,本发明提供了一种在流播服务器中执行多媒体数据业务量整形的优选手段,包括关于视频序列的不同子序列的信息它们的平均比特率、相对于整个视频序列的位置、持续时间和它们与各层有关的相互依赖性。流播服务器还确定了可用于数据传送的带宽的最大值和/或终端设备的解码速度。根据这一信息,流播服务器决定在视频序列中传送多少可缩放层和传送哪些子序列。这样,在必要的时候,就可以进行比特率控制了首先通过对可缩放层的数量进行组略地调整,此后可以容易地进行子序列所特定的较为精细的调整。最简单地讲,比特率控制意味着作出有关一个具体的子序列是否应被加入到视频序列中或从该视频序列中将其除去的子序列所特定的决定。在除去的情况下,从视频序列中除去整个子序列是比较可行的,因为除去单独的图像可能会导致同一子序列中其它图像的错误。出于同样的原因,如果较低增强层的所有子序列依赖于已经除去的较高层上的子序列的话,那么应当将它们全部都除去。如果在同一可缩放层上有相互依赖的多个子序列,那么如果除去了比较靠前的子序列,则依赖于该比较靠前的子序列的子序列也必须除去。
如果将图像帧标识符数据加到了所要传送的视频序列中,那么业务量整形也可以在用于传送视频序列的电信网络单元中进行,例如,在因特网路由器中、在不同的网关中或者在移动通信网络的基站或基站控制器中进行。为了使网络单元能够维持并处理子序列信息,它必须具有额外的存储器和处理能力。出于这一原因,在网络中进行的业务量整形也许最有可能使用简单的处理方法来执行,比如由某些基于IP的网络支持的DiffServ,即区别业务,规程。按照DiffServ方法,为每个IP数据包分配一个优先级,从而与较低优先级的数据包相比,较高优先级的数据包被更加快速且更加可靠地传递给接收者。通过不仅确定可缩放层所特定的优先级,而且确定子序列所特定的优先级,而可以将这种方法便利地应用到本发明的可缩放性中,这使得能够实现更加高级的优先级。
有很多用于在所要传送的视频序列中添加图像帧标识符数据的可选择的方案。此外,也有可能不在视频序列中加入任何标识符数据,在这种情况下,仅在流播服务器中进行业务量整形。标识符数据可以包含在视频序列的标题字段中,或者包含在所使用的传送协议的标题字段中,例如RTP(实时协议)的标题字段中。按照一种优选实施方式,可以使用一种辅助增强信息(SEI)机制来传送标识符数据。SEI提供一种与视频数据内容同步传送的数据传递机制,这样有助于视频序列的解码和显示。在ITU-T标准文件ITU-T Rec.H.264(ISO/IEC 14496-102002),附件D中,较为详细地公开了SEI机制,尤其是在用于传送层和子序列信息的时候。在这种情况下,其中单独的传送协议或机制被用于标识符数据的传送,业务量整形也可以在传送路径中的一个网络单元中进行。此外,接收终端设备可以对解码进行控制。
如果编码器或解码器支持参考图片选择,那么视频序列编码要求在编码之前缓冲经解码的图像帧,以便使得不同的图像帧之间的关系能够按时间顺序从一个或多个其它的图像帧预测出来。可以至少以两种不同的方式来安排图像帧缓冲或者作为活动窗口或者作为自适应缓冲存储器控制。在滑动窗口中,将最后编码的M个图像帧用作为一个缓冲器。该缓冲器中的帧具有已解码和已重构的形式,这使得它们能够在编码中用作参考图像。随着编码的进行,图像帧缓冲根据FIFO原理(先入先出)工作。不用作参考图像的图像,比如传统的B帧,不需要存储在缓冲器中。另外,也可以按照自适应缓冲存储器控制来实施缓冲,在这种情况下,图像缓冲并不限于FIFO原理,而是在处理过程中间可以将不需要的图像帧清出缓冲器,或者,相应地,某些图像帧可以在更长时间内被存储在缓冲器中(如果它们需要作为后面的图像帧的参考图像)。例如,一种公知的参考图片选择是通过对缓冲存储器中的图像帧编制索引为一个特定的顺序来实现的,然后使用这些图像索引来查找与运动补偿相关的图像。与使用图像编号(例如,当运动补偿参考图像要用信号通知时,使用图像编号来查找一个特定的图像)相比,这种编制索引的方法总地来说提供了更好的压缩效率。
上面所述的参考图像编制索引方法对传送错误很敏感,因为发送者的编码器和接收者的解码器的缓冲器必须以相同的顺序包含相互对应的重构图像,以确保编码器和解码器都根据相同的索引顺序。如果图像帧在编码器和解码器的缓冲器中是以不同的顺序编制索引的,那么在解码器中可能会使用不正确的参考图像。为了防止这种情况的发生,有必要使解码器可被控制去考虑编码器有意从视频序列中除去的图像帧和子序列。在这种情况下,图像帧编号可能会包括间隙,解码器通常会将此解译为错误,并设法重构被解译为丢失的图像帧。出于这种原因,有必要使编码器能够告知解码器,所发送的图像帧中的图像编号的不连续是有意造成的。
响应于此,并假定使用了滑动窗口来对图像帧进行缓冲,则解码器将与丢失的图像编号相应的多个图像帧输入到缓冲存储器中,它们的内容可以是完全随机的。然后使用一个标识符“无效”标示这些随机的图像帧,以指示这些所关心的图像帧不属于实际的视频序列,而只是为了缓冲存储器管理而输入的填充帧。自然,填充帧可以仅仅使用存储器指示器来实现,即,最好不将数据输入到缓冲存储器中,而是仅仅使用存储器管理来存储对同类的“无效”帧的引用。在将由丢失的图像编号所指示的数量的填充帧输入到缓冲器中之后,实际视频序列的图像帧的输入从正确的图像帧编号继续进行,这使得编码器和解码器的缓冲存储器优选地被保持为同步。如果在解码期间,检测到了一个图像编号的引用,然后发现它指示位于该缓冲器中的一个填充帧,则在解码器中启动纠错动作,以重构该实际的参考图像,例如,通过请求编码器重新发送所讨论的参考图像。
此外,本发明的规程使得单独的缓冲存储器能够用在不同的可缩放层上,或者,相应地,特定于子序列。这样,每个可缩放层可以具有一个单独的缓冲存储器,该缓冲存储器在概念上是单独的并且是在滑动窗口原理的基础上运行的。类似地,每个子序列还可以配备一个概念性的单独的缓冲存储器,该缓冲存储器也在滑动窗口原理的基础上运行。这意味着当子序列终止时,缓冲存储器总是空的。单独的缓冲存储器能够以优选的方式用于在某些情况下降低对信令的需求,在这些情况中,正常的滑动窗口缓冲将是不够的并且可能将需要改为使用主动的自适应缓冲存储器管理。
H.26L标准将图片次序计数定义为按照输出次序的图片位置。在H.26L标准中规定的解码处理使用图片次序计数来为B条中的参考图片确定默认的索引排序,以表示用于运动矢量预测中的矢量缩放和用于B条中的隐含模式加权预测的帧与场之间的图片次序差,并确定何时按照解码顺序的连续条属于不同的图片。对图片次序计数进行编码并为每个图片进行传送。
按照本发明的一种实施方式,解码器使用图片次序计数来推断那些图片是时间重叠的,即,具有相等的图片次序计数的图片是时间重叠的。最好,解码器仅输出最高的接收到的层上的图片。在缺少层信息的情况下,解码器推断最新的按照解码顺序、在时间上重叠的图像驻留于最高的所接收到的层。
上面公开的内容介绍了一种为了产生一个可缩放的压缩视频序列而对视频帧进行编码的规程。实际的规程是在视频编码器中执行的,比如是在附图1中的压缩器108中执行的,该压缩器可以是任何公知的视频编码器。例如可以使用依据ITU-T建议H.263或H.26L的视频编码器,将这种视频编码器安排为按照本发明,将一个第一子序列形成到视频序列中,该子序列的至少一部分是通过对I帧进行编码形成的;将至少一个第二子序列形成到视频序列中,该第二子序列的至少一部分是通过对至少P或B帧进行编码形成的,并且该第二子序列的至少一个视频帧是从所述第一子序列的至少一个视频帧预测出来的;以及,将至少第二子序列的视频帧的标识数据确定到视频序列中。
按照本发明的规程,一个特定可缩放层的每个子序列最好是可独立解码的,自然要考虑对较高可缩放层或者同一可缩放层的可能的其它子序列的依赖性。因此,可以通过如下方式对诸如上述的一个可缩放的压缩视频帧进行解码对视频序列的第一个子序列进行解码,该子序列的至少一部分是通过对至少I帧编码而形成的;和对视频序列的至少一个第二子序列进行解码,该第二子序列的至少一部分是通过对至少P或B帧编码而形成的,且该第二子序列的至少一个视频帧是从第一子序列的至少一个视频帧预测出来的;和确定至少由视频序列的第二子序列包含的视频帧的标识和依赖性数据;并根据子序列依赖性重构该视频序列的至少一部分。
实际的解码是在视频解码器(比如附图1中的解压缩器118)中进行的,该视频解码器可以是任何公知的视频解码器。例如,可以使用依据ITU-T建议H.263或H.26L的低比特率视频解码器,在本发明中,将该解码器安排为用于对视频序列的第一个子序列进行解码,该子序列的至少一部分是通过对I帧编码形成的;对视频序列的至少一个第二子序列进行解码,该第二子序列的至少一部分是通过对至少P或B帧编码而形成的,且该第二子序列的至少一个视频帧是从第一子序列的至少一个视频帧预测出来的。将该视频解码器安排为用于确定至少由视频序列的第二子序列包含的视频帧的标识和依赖性数据,并根据子序列的依赖性而重构该视频序列的至少一部分。
本发明的流播系统的操作中的一个主要方面是,对编码器和解码器进行定位,至少使得编码器在操作上与流播服务器相连接并且解码器在操作上与接收终端设备相连接。不过,该流播系统的不同组成部分,尤其是终端设备,可以包括允许多媒体文件的双向传送(即,传送和接收)的功能性。因此,编码器和解码器可以以集成了编码器和解码器功能性的、称为视频编解码器的形式实现。
应当注意到,按照本发明,上述流播系统的功能单元及其组成部分,比如流播服务器、视频编码器、视频解码器和终端最好是借助软件、通过硬件解决方案或者作为二者的组合来实现的。本发明的编码和解码方法尤其适于实现为包括用于执行本发明的处理步骤的计算机可读命令的计算机软件。实现编码器和解码器的优选方式是将它们作为可由计算机类的设备(例如个人计算机(PC)或移动台)执行的程序代码存储在存储装置中,以便为所讨论的设备提供编码/解码功能性。
另一种可选方案是将本发明实现为包括可缩放地压缩的视频序列的视频信号,其中可缩放地压缩的视频序列进而包括按照至少第一和第二帧格式编码的视频帧,按照第一帧格式的视频帧独立于其它的视频帧,并且第二帧格式的视频帧是从其它视频帧中的至少一个预测出来的。按照本发明,所讨论的视频信号包括至少一个第一子序列,该第一子序列的至少一部分是通过对至少第一帧格式的视频帧进行编码而形成的;至少一个第二子序列,该第二子序列的至少一部分是通过对至少第二帧格式的视频帧进行编码而形成的;且至少一个第二子序列的视频帧是从至少一个第一子序列的视频帧预测出来的;以及至少一个数据字段,该数据字段确定属于第二子序列的视频帧。
对本领域的技术人员而言,有一点是显而易见的随着技术的进步,本发明的基本思想可以以各种不同的方式来实现。因此,本发明及其实施例并不局限于上述的实例,而是,它们可以在权利要求书的范围之内进行各种改变。
权利要求
1.一种对视频帧进行编码的方法,用于形成可缩放的压缩视频序列,该视频序列包括按照至少第一和第二帧格式编码的视频帧,第一帧格式的视频帧独立于其它的视频帧,而第二帧格式的视频帧是由至少一个其它的视频帧预测出来的,其特征在于,该方法包括下述步骤将一个第一子序列的至少一部分形成到视频序列中,所述第一子序列的至少一部分是通过对至少第一帧格式的视频帧进行编码而形成的;和将至少一个第二子序列形成到视频序列中,所述第二子序列的至少一部分是通过对至少第二帧格式的视频帧进行编码而形成的,并且所述第二子序列的至少一个视频帧已从所述第一子序列的至少一个视频帧预测出来;和将指示哪些视频帧属于第二子序列的信息形成到视频序列中。
2.按照权利要求1所述的方法,其特征在于,包括下述步骤将至少第二子序列的视频帧与第一子序列的至少一个视频帧之间的相互依赖性确定到视频序列中。
3.按照权利要求2所述的方法,其特征在于,包括下述步骤将视频序列编码到多个可缩放层中;和确定第二子序列的视频帧的依赖性,以致第二子序列的至少一个视频帧是从一个组预测出来的,该组包括较高的可缩放层的一个视频帧;同一可缩放层中的另一子序列的一个视频帧。
4.按照权利要求3所述的方法,其特征在于,包括下述步骤根据至少一个可缩放层标识符和一个子序列标识符确定第二子序列的视频帧的依赖性。
5.按照权利要求3或4所述的方法,其特征在于,包括下述步骤对视频序列的第一个可缩放层进行编码,以包括按照一个帧格式的视频帧,该视频帧中的每一个形成一个单独的子序列。
6.按照权利要求3或4所述的方法,其特征在于,包括下述步骤对视频序列的第一个可缩放层进行编码,以包括按照第一和第二帧格式的视频帧。
7.按照权利要求3所述的方法,其特征在于,包括下述步骤将每个视频帧的一个唯一的标识符确定为层号、子序列标识符和图像编号的组合。
8.按照权利要求3所述的方法,其特征在于,包括下述步骤根据图像编号为每个视频帧确定一个唯一的标识符。
9.按照权利要求7或8所述的方法,其特征在于,包括下述步骤将所述标识符加到视频序列的标题字段中,或者加到传送视频序列所使用的传送协议的标题字段中。
10.按照前述任何一项权利要求所述的方法,其特征在于第一帧格式的视频帧是I帧,而第二帧格式的视频帧是时间上的前向和/或后向预测的P帧,该P帧已使用至少一个参考图像进行预测。
11.按照前述任何一项权利要求所述的方法,其特征在于,包括下述步骤以这样一种方式对子序列进行编码,即该子序列帧的至少一些在时间上是至少部分重叠的。
12.按照前述任何一项权利要求所述的方法,其特征在于,包括下述步骤以这样一种方式对视频帧进行编码,即发生在视频帧之间的时间预测是特定于块或宏块的。
13.一种流播系统中的单元,比如流播服务器或者电信系统中的网络单元,其被安排为向至少一个终端设备发送经压缩的视频序列并且控制该视频序列传送的比特率,其特征在于该单元被安排为,控制视频序列传送的比特率,其中该视频序列的第一个子序列包括至少第一帧格式的视频帧,并且至少一个第二个子序列包括至少第二帧格式的视频帧,第二子序列的至少一个视频帧已从第一子序列的至少一个视频帧预测出来;该比特率控制被安排为以至少下述方式之一执行从视频序列中除去至少一个子序列;将至少一个子序列加到视频序列中。
14.一种视频编码器,用于形成一个可缩放的压缩视频序列,该视频序列包括按照至少第一和第二帧格式编码的视频帧,第一帧格式的视频帧独立于其它的视频帧,而第二帧格式的视频帧是由至少一个其它的视频帧预测出来的,其特征在于,所述视频编码器被安排为将一个第一子序列形成到视频序列中,所述第一子序列的至少一部分是通过对至少第一帧格式的视频帧进行编码而形成的;和将至少一个第二子序列形成到视频序列中,所述第二子序列的至少一部分是通过对至少第二帧格式的视频帧进行编码而形成的,所述第二子序列的至少一个视频帧已从所述第一子序列的至少一个视频帧预测出来;和将指示哪些视频帧属于第二子序列的信息形成到视频序列中。
15.一种用于对可缩放地压缩的视频序列进行解码的方法,该视频序列包括按照至少第一和第二帧格式编码的视频帧,第一帧格式的视频帧独立于其它的视频帧,而第二帧格式的视频帧是由至少一个其它的视频帧预测出来的,其特征在于,包括下述步骤对视频序列的第一子序列进行解码,所述第一子序列的至少一部分是通过对至少第一帧格式的视频帧进行编码而形成的;和对视频序列的至少第二子序列进行解码,所述第二子序列的至少一部分是通过对至少第二帧格式的视频帧进行编码而形成的,所述第二子序列的至少一个视频帧已从所述第一子序列的至少一个视频帧预测出来;确定至少与由视频序列的第二子序列包含的视频帧相关的依赖性数据;和根据子序列的依赖性重构视频序列的至少一部分。
16.按照权利要求15所述的方法,其中将视频帧输入到一个与解码有关的滑动缓冲存储器中,其特征在于,包括下述步骤从视频序列解码出一个指示,该指示通知视频序列中的图像帧的图像编号的不连续是有意造成的;响应于所述指示,该缓冲存储器被配置为包括与丢失的图像编号相应数量的图像帧;和在已经将缓冲存储器配置为包括与丢失的图像编号相应数量的图像帧之后,从正确的图像帧编号开始,继续将所关心的视频序列包含的图像帧输入到缓冲存储器。
17.按照权利要求16所述的方法,其特征在于,包括下述步骤将数量相应于丢失图像编号的填充帧输入到缓冲存储器中。
18.按照权利要求15到17中任一项所述的方法,其特征在于,包括下述步骤通过从所述视频序列中除去至少一个可独立解码的子序列来对该视频序列进行解码。
19.按照权利要求15到18中任一项所述的方法,其特征在于,包括下述步骤从所述视频序列中的一个随机点起始解码;确定在所述随机点之后的下一个可独立解码的子序列,和将所述子序列中的第一个视频帧的图像编号值设置为零。
20.按照权利要求15到19中任一项所述的方法,其特征在于,包括下述步骤根据图片次序计数信息从所述视频序列中识别出至少部分在时间上重叠的子序列帧,和从解码器中输出按照解码顺序的最后一个图像帧,所述帧是从一组所述至少部分在时间上重叠的图像帧中选择出来的。
21.一种视频解码器,用于对可缩放地压缩的视频序列进行解码,该视频序列包括按照至少第一和第二帧格式编码的视频帧,第一帧格式的视频帧独立于其它的视频帧,而第二帧格式的视频帧是由至少一个其它的视频帧预测出来的,其特征在于,该视频解码器被安排为对视频序列的第一子序列进行解码,所述第一子序列的至少一部分是通过对至少第一帧格式的视频帧进行编码而形成的;和对视频序列的至少第二子序列进行解码,所述第二子序列的至少一部分是通过对至少第二帧格式的视频帧进行编码而形成的,并且所述第二子序列的至少一个视频帧已从所述第一子序列的至少一个视频帧预测出来;确定至少由视频序列的第二子序列包含的视频帧的依赖性数据;和根据子序列的依赖性重构视频序列的至少一部分。
22.一种计算机程序,用于对视频帧进行编码从而形成可缩放的压缩视频序列,该视频序列包括按照至少第一和第二帧格式编码的视频帧,第一帧格式的视频帧独立于其它的视频帧,而第二帧格式的视频帧是由至少一个其它的视频帧预测出来的,其特征在于,所述计算机程序包括用于形成视频序列的第一子序列的程序代码,所述子序列的至少一部分是通过对至少第一帧格式的视频帧进行编码而形成的;和用于形成该视频序列的至少一个第二子序列的程序代码,所述子序列的至少一部分是通过对至少第二帧格式的视频帧进行编码而形成的,并且所述第二子序列的至少一个视频帧已从所述第一子序列的至少一个视频帧预测出来;和用于将数据确定到视频序列中以确定哪些视频帧属于第二子序列的程序代码。
23.一种计算机程序,用于对可缩放地压缩的视频序列进行解码,该视频序列包括按照至少第一和第二帧格式编码的视频帧,第一帧格式的视频帧独立于其它的视频帧,而第二帧格式的视频帧是由至少一个其它的视频帧预测出来的,其特征在于,所述计算机程序包括用于对视频序列的第一子序列进行解码的程序代码,所述子序列的至少一部分是通过对至少第一帧格式的视频帧进行编码而形成的;和用于对视频序列的至少第二子序列进行解码的程序代码,所述子序列的至少一部分是通过对至少第二帧格式的视频帧进行编码而形成的,并且所述第二子序列的至少一个视频帧已从所述第一子序列的至少一个视频帧预测出来;和用于确定至少由视频序列的第二子序列包含的视频帧的依赖性数据的程序代码;和用于根据子序列的依赖性重构视频序列的至少一部分的程序代码。
24.一种视频信号,包括可缩放地压缩的视频序列,该视频序列包括按照至少第一和第二帧格式编码的视频帧,第一帧格式的视频帧独立于其它的视频帧,而第二帧格式的视频帧是由至少一个其它的视频帧预测出来的,其特征在于,所述视频信号包括第一子序列,所述第一子序列的至少一部分是通过对至少第一帧格式的视频帧进行编码而形成的;至少第二子序列,所述第二子序列的至少一部分是通过对至少第二帧格式的视频帧进行编码而形成的,并且所述第二子序列的至少一个视频帧已从所述第一子序列的至少一个视频帧预测出来;和确定属于第二子序列的视频帧的至少一个数据字段。
全文摘要
一种对视频帧进行编码的方法,用于形成可缩放的压缩视频序列,该视频序列包括按照至少第一和第二帧格式编码的视频帧。第一帧格式的视频帧是独立的视频帧,而第二帧格式的视频帧是由至少一个其它的视频帧预测出来的。所述视频序列具有确定于其中的第一子序列,所述第一子序列的至少一部分是通过对至少第一帧格式的视频帧进行编码而形成的;并具有至少一个第二子序列,所述第二子序列的至少一部分是通过对第二帧格式的视频帧进行编码而形成的,并且所述第二子序列的至少一个视频帧已从所述第一子序列的至少一个视频帧预测出来。将第二子序列的帧标识符数据确定到所述视频序列中。
文档编号H04N7/36GK1620820SQ03802521
公开日2005年5月25日 申请日期2003年1月22日 优先权日2002年1月23日
发明者M·汉努克塞拉 申请人:诺基亚有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1