为了更好地体现本发明的优点,我们首先回顾一下已有技术中典型的多媒体内容创建与检索***的框架并引入压缩视频序列的特征。虽然下面的描述集中在使用基于分组的数据协议传输信息的网络(如Internet)中存储的多媒体数据检索上,但是应该知道,本发明同样适用于电路交换网络,如固定线路PSTN(公共服务电话网)或移动PLMN(公共陆地移动网)电话***。它也适用于既使用基于分组的数据传输协议又使用电路交换数据传输协议的网络中。例如,正在进行标准化的通用移动电话***(UMTS)可以包括电路交换与基于分组的元素。本发明适用于非实时应用,如视频流中,也适用于实时通信应用,如视频电话中。
图1中描述了一个典型的多媒体内容创建与检索***。该***(通常用1表示)拥有一个或多个多媒体内容10的来源。这些来源可以包括,例如,一个视频照相机与一个麦克风,不过也可以包括其他元素。例如,多媒体内容也可以包括计算机动画,或存储在大存储媒介(如网络硬盘驱动器)上的数据文件库。
为了组成包括不同媒介类类型的多媒体片段(称为“磁道”),将从各种来源中捕捉或检索的原始数据组合到一起。在图1中显示的多媒体创建与检索***中,此任务由编辑器12完成。原始多媒体数据所需的存储空间是非常巨大的,通常可达很多兆字节。因此,为了给多媒体检索服务提供方便,尤其是低比特速率信道中的多媒体检索服务,通常在编辑过程中压缩多媒体片段。只要各种原始数据源已经组合起来并压缩为多媒体片段,这些片段将连接到多媒体服务器14中。通常,很多客户端16可以通过某些网络访问服务器,不过为简便起见,图1中只列出了一个这样的客户端。
服务器14可以响应客户端发出的请求与控制命令15。服务器的主要任务是将所需的多媒体片段发送给客户端16。只要客户端已经接收到该片段,将在客户端终端设备处进行解压缩,多媒体内容得以“回放”。在回放阶段,多媒体片段的各个元素分别以客户端终端设备提供的合适的回放方式18显示,例如,视频内容在终端设备上展显示,而音频内容由扬声器或类似设备重新生成。
参考图2对多媒体片段编辑器12执行的操作进行进一步解释。由一个或多个数据源10的捕捉设备20对原始数据进行捕捉。使用硬件、专用设备驱动程序(即软件)及一个通过控制其设备驱动程序来使用硬件的捕捉应用程序进行数据捕捉。例如,如果数据源是一个视频照相机,捕捉视频数据所需的硬件可以包括连接到个人电脑上的视频撷取卡。捕捉设备20的输出通常为未压缩数据流或轻微压缩的数据流,后者与前者相比,存在不相关的质量下降。例如,视频撷取卡的输出可以是未压缩YUV 4∶2∶0格式的视频帧,或者是运动-JPEG图像格式的视频帧。术语“流”用于表示很多情况中,多媒体数据从各种源(原始数据的连续“流”)中实时捕捉。而多媒体数据的源可以是预先存储的文件形式,存储在大的存储媒介,如网络硬件驱动器中。
编辑器22将各个媒介源10中单独的媒介流链接在同一时间轴上。例如,应该同时回放的多媒体流,如音频与视频内容,通过指示各帧所需的回放时刻链接起来。也可以给出其他多媒体流所需回放时刻的标识。为了指出最初独立的多媒体流现在以该方式连接,使用术语“多媒体磁道”作为描述多媒体内容的一般术语。编辑器22也可能以不同的方式编辑多媒体磁道。例如,音频帧速率可能降为一半或空间解析度可能下降。
在压缩阶段24中,各个媒体磁道可以以适合该媒体类型的方式进行独立压缩。例如,一个未压缩的YUV 4∶2∶0视频磁道可以使用用于低比特速率视频编码的ITU-T建议H.263压缩。在复用阶段26中,对压缩媒体磁道进行交织,组成单一的比特流。此单一的比特流,含有大量不同的媒体类型,称为“多媒体片段”。但是,应该知道,对应提供多媒体比特流来说,复用并不是必须的。该片段随后与多媒体服务器14连接。
现在参考图3的流程图对多媒体服务器14的操作进行更详细的说明。通常,多媒体服务器有两种模式的操作,非实时操作与实时操作。也就是说,多媒体服务器可以传送预先存储的多媒体片段或现场(实时)多媒体流。在前一种情况中,片段必须首先存储在服务器数据库30中。在后一种情况中,多媒体片段通过编辑器12与服务器相连,作为立刻传送给客户端16的连续多媒体流。服务器可以消除并压缩一些复用格式中使用的头信息,并将媒体片段封装成适合在网络上传递的包。客户端使用“控制协议”15控制服务器的操作。控制协议提供的最小控制集组成选择所需的媒体片段的函数。此外,服务器可以支持更多的高级控制。例如,客户端16可以停止片段的传输,或暂停并检索其传输。此外,客户端也可以在传输信道的吞吐量改变时***体流。在这种情况下,服务器动态地对比特流进行调整来利用传输的可用带宽。
图4中是典型的多媒体检索客户端16中的模块。在从多媒体服务器中检索压缩与复用的多媒体片段时,为了对片段中包含的不同媒体磁道分离,客户端首先对片段40进行解复。然后,单独的媒体磁道进行解压缩42。然后使用客户端输出设备18对解压缩(重建)的媒体磁道进行回放。除了这些操作之外,客户端包括与终端用户接口的控制器单元46,根据用户输入对回放进行控制,并处理客户端-服务器控制业务。而解复、解压缩与回放操作可以在下载该片段后面部分的同时执行。此方法一般称为“流”。客户端也可以下载整个片段,对其进行解复,对各个多媒体磁道解压缩,然后才启动回放功能。
下面描述适合在通信网中传输的数字音频序列的内容。音频序列,与胶片上录制的普通动画一样,由静止图像的序列组成,之所以产生运动的幻觉,是因为以较快的速率(通常为15-30帧/秒)依次展现图像。由于帧速率较快,连续帧中的图像相当类似,因此包含大量的冗余信息。例如,一个典型的场景包括一些静态的元素例如背景图面,还包括一些形式多样的运动区域,例如,新闻播音员的面部,运动的车辆等等。而记录场景的照相机本身也可能是运动的,这样图像的所有元素进行相同地运动。在很多情况下,这将意味着一个视频帧与另一个视频帧之间的整体变化很小。当然,这取决于其运动的本质。例如,运动越快,一帧到相邻帧的变化越大。类似地,如果场景中包括大量的运动元素,一帧到相邻帧的变化要比其中只有一个元素运动的场景中的帧间变化要大。
视频压缩方法的基础是减少视频序列的冗余与可察觉的无关部分。视频序列的冗余可以分为空间域上、时域上与频域上的冗余。术语“空间域上的冗余”用于描述相邻像素之间的相关性。术语“时域的冗余”表示出现在一个图中的对象很可能出现在后面的图像中,而“频域的冗余”是指同一图像的不同颜色的元素之间的相关性。
在给定的图像序列中简单地减少不同形式的冗余通常无法进行充分有效的压缩。因此,目前大多数视频编码器也减少音频序列中那些最不重要的部分的质量。此外,也通过对压缩参数与系数的有效编码降低比特流本身的冗余。通常,这可以通过使用称为“可变长度的编码”(VLC)技术完成。
视频压缩方法通常使用“运动补偿时间预测”。这是一种减少时域冗余的形式,其中视频序列中一些(经常很多)帧的内容可以通过跟踪物体或帧间图像区域的运动进行“预测”。不使用减少时域冗余方法的压缩图像通常称为“INTRA”或“I-帧”,而时域预测的图像称为“INTER”或“P-帧”。在“INTER”帧的情况下,预测(运动补偿)的图像很少足够精确,因此,在各个“INTER”帧中,也使用空间域的压缩预测错误图像。很多视频压缩方案也引入双向预测帧,通常称为“B-图”或“B-帧”。如图5所示,B-图在参照物或“锚”图对(I或P帧)之间***,并且从一个或两个锚图中预测。从图中可以看出,序列从INTRA或I帧50开始。B-图(一般用52表示)与前向预测的P-图54相比,压缩率较高。在图5中,箭头51a与51b表示双向预测过程,而箭头53表示前向预测。B-图并不用作锚图,也就是说,没有其他的帧从中预测,因此,它们可以从视频序列中去除,不会引起所成图片的质量恶化。应当注意,尽管B-图与P-图相比可以增加压缩性能,但是其构造却需要更多的存储空间,其处理要求也更加复杂,并且其应用也会引入附加时延。
从上述对时域预测的讨论可以看出,数据丢失会恶化给定帧中的图像内容,这种影响将在时间上传播,引起该帧预测的后续帧的恶化。显然,视频序列的编码从INTRA帧开始,这是因为在序列的开始时,前面没有帧能够作为预测参考。但是,应该注意,在显示帧时,如在客户终端设备18处显示时,帧的回放顺序不会与编码/译码的顺序相同。因此,尽管编码/译码操作从INTRA帧开始,这并不表示帧必须从INTRA帧开始回放。
关于低比特速率视频编码中使用的不同图片类型的详细信息,请参考文章“H.263+:Video Coding at Low Bit-rates”,G.cote,B.Erol,M.Gallant与F.Kossentini,IEEE Transactions on Circuits andSystems for Video Technology,1998年11月。
根据上述关于现有的多媒体检索***与视频编码(压缩)技术的信息可以知道,通信网中的视频序列检索/流存在着一个重要问题。因为视频帧通常是从一帧中预测另一帧,压缩视频序列非常容易出现传输错误。如果由于网络传输错误出现数据丢失,视频流的内容信息将会丢失。传输错误的影响可能不同。如果对视频帧的重建非常重要的信息丢失(例如,存储在图片头中的信息),那么在接收客户端将无法显示图像。这样,整个帧以及从它中预测的帧序列将会丢失(即,无法重建与显示)。如果情况没这么糟糕,只有部分图像内容受到影响。但是,从坏帧中预测的帧仍然会受到影响,在传输下一INTRA帧并正确重建之前,错误将会在图像序列中的时域和空间域上传播。这在比特速率很低的通信中是个严重的问题,这时INTRA帧可能只是在很短时间内(如每10秒传输一个INTRA帧)传输。
传输错误的变化取决于其通信网络。在电路交换网络中,如固定线路与移动电话***中,传输错误通常是比特翻转的形式。也就是说,表示如多媒体流的视频内容等的数字数据,其错误形式为1变为0,而0变为1,从而导致图像内容的错误表达。在移动电话网中,比特翻转的错误通常是由无线链接的质量下降而引起的。
在使用分组交换数据通信的网络中,传输错误的形式包丢失。在这种网络中,数据包的丢失通常是由网络拥塞引起的。如果网络出现拥塞,网络元素,如网关路由器,可能丢弃数据包,而如果使用不可靠的传输协议,如UDP(用户数据报协议),丢失的数据包不会被重传。此外,从网络的角度看,发送包含几百字节的相对较大的包是有益的,因此,丢失的包可能包括几幅低比特速率序列图。通常,多数视频帧是时域上预测的INTER帧,因此丢失一个或多个这样的图在客户终端重建时会有严重的视频序列质量问题。不但会丢失一个或多个帧,而且从这些帧中预测的所有后续图都将破坏。
现有技术中有一些技术是针对传输错误损害压缩视频序列问题的。通常这些方法称为“容错控制”方法,分为两类:错误纠正与错误消除方法。错误纠正是指完全检索有错数据的能力,使其看起来好像根本没有发生错误。例如,重传可以看作一种错误纠正方法。错误消除是指消除传输错误带来的影响,使之在重建的视频信号中不易被发现的能力。错误消除方法通常有三种:前向错误消除、事后处理的错误消除以及交互式错误消除。前向错误消除技术是传输终端将一定程度的冗余添加到发送数据中,从而使接收端能够在即使传输出现错误时,也可以很容易地检索数据。例如,发送视频编码器可以截短压缩视频信号的预测路径。另一方面,事后处理的错误消除完全是接收机控制的。这些方法都是尽量估计错误接收数据的正确表达。为了最小化传输错误的影响,发射机与接收机也可以协同操作。这些方法很大程度上取决于接收机提供的反馈信息。事后处理的错误消除也可以称为消极错误消除,而其他两种形式可以称为积极错误消除。本发明属于视频压缩中使用的截短预测路径的类别。需要说明的是,下面引入的方法也适用于在分组交换或电路交换网中传输的压缩视频流。而其数据网的类型及出现的传输错误类型与现有技术及本发明的应用没有必然联系。
视频序列中截短预测路径的容错控制方法应根据下列原则;如果视频序列包括很多INTER帧,传输错误引起的图像数据丢失将会导致后面的译码INTER帧遭到破坏,而错误将会传播并会在译码后的视频流中看到。因此,可以通过减小视频比特流中INTER帧序列的长度提高***的容错控制能力。可以采取的方法有:1.增加视频流中INTRA帧的频率;2.使用B-帧;3.使用参照图选择;4.使用现有的视频冗余编码技术。
在视频序列中减少预测路径长度的现有方法将会引起压缩序列比特速率的提高。这一影响是我们不希望的,尤其是在比特速率传输信道或所有可用带宽必须在多个用户间共享的信道中。比特速率的增加取决于所采用的方法以及要编码的视频序列的性质。
根据上述论述,考虑多媒体检索***与压缩视频序列的本质,可以看出,需要限制传输错误对察觉到的图像质量的影响。虽然现有的有些技术通过限制压缩视频序列使用的预测路径长度来解决该问题,但是在多数情况下,会导致编码序列所需的比特速率的增加。因此,本发明的一个目标是在维持可接受的低比特速率的前提下增强压缩视频序列传输错误的容错能力。
发明内容
依据上述本发明的目的,本发明的第一方面提供一种对视频帧序列进行编码形成一个压缩视频序列的方法,所述的压缩视频序列包括以至少第一个压缩视频帧格式与第二个压缩视频帧格式编码的帧,所述的第一个压缩视频帧格式不是时域上预测的格式,而第二个压缩视频帧格式是一种时域上预测的格式,其特点在于该方法包括下列步骤:识别关于第一个视频帧的第一个标识,该标识表示第一个视频帧应该以第一个压缩视频帧格式编码;将所述的第一个标识与第二个视频帧相连;以所述的第一个压缩视频帧格式对第二个视频帧进行编码;定义第一个视频帧集合,它包括在第二个视频帧之前出现的N个视频帧;以所述的第二个压缩视频帧格式对所述的第一个视频帧集合进行编码;定义第二个视频帧集合,包括在所述的第二个视频帧之后出现的M个视频帧;并以所述的第二个压缩视频帧格式对所述的第二个视频帧的集合进行编码。
依据本发明第二部分的内容,提供一个对视频帧序列编码的视频编码器,形成压缩视频序列,所述的压缩视频序列包括以至少第一个压缩视频帧格式与第二个压缩视频帧格式编码的帧,所述的第一个压缩视频帧格式不是时域预测的,而所述的第二个压缩视频帧格式是时域预测的,其特征在于编码器包括:一种识别与第一个视频帧有关的第一个标识的方法,该标识表示所述的第一个视频帧应该以第一个压缩视频帧格式进行编码;连接所述的第一个标识与第二个视频帧的方法;以所述的第一个压缩视频帧格式对所述的第二个视频帧编码的方法;定义包括在所述的第二个视频帧之前出现的N个视频帧的第一个视频帧集合的方法;以所述的第二个压缩视频帧格式对所述的第一个视频帧的集合编码的方法;定义包括在所述的第二个视频帧后出现的M个视频帧的第二个视频帧集合的方法;以及以所述的第二个压缩视频帧格式对所述的第二个视频帧集合编码的方法。
依据本发明第三方面的内容,提供一个视频编译码器,包括依据本发明的第二方面内容的视频编码器。
依据本发明第四方面的内容,提供一个多媒体内容创建***,包括一个依据本发明第二方面内容的视频编码器。
依据本发明第五方面的内容,提供一个多媒体终端,包括依据本发明第二方面内容的视频编码器。
依据本发明第六方面的内容,提供一个依据本发明第五方面内容的多媒体终端,其特征在于该终端是一个无线电信设备。
依据本发明第七方面的内容,提供一种对压缩视频序列译码从而形成解压缩后的视频帧序列的方法,所述的压缩视频序列包括以至少第一个压缩视频帧格式及第二个压缩视频帧格式编码的帧,所述的第一个压缩视频帧格式是一个非时域预测的格式,所述的第二个压缩视频帧格式是时域预测的格式,其特征在于该方法包括以下步骤:识别与第一个视频帧相关的第一个标识,该标识表示所述的第一个视频帧是以所述的第一个压缩视频帧格式编码;对所述的第一个视频帧进行译码;接收所述的第二个压缩视频帧格式的第一个N帧的集合,包括所述的第一个视频帧之前所述的解压缩视频序列;对所述的第一个N个视频帧的集合进行译码;根据与第一个帧集合相关的回放信息重新对第一个帧集合的帧排序;接收所述的第二个压缩视频帧格式的M个视频帧的第二个集合,包括所述的第一个视频帧之后的解压缩视频序列;以及对所述的第二个视频帧集合进行译码。
依据本发明第八方面的内容,提供一个视频译码器,对压缩视频序列进行译码,形成解压缩视频帧的序列,所述的压缩视频序列包括以至少第一个压缩视频帧格式及第二个压缩视频帧格式编码的帧,所述的第一个压缩视频帧格式不是时域上预测格式,而所述的第二个压缩视频帧格式是时域上预测的格式,其特征在于包括识别译码器与第一个视频帧相关的第一个标识的方法,该标识表示所述的第一个视频帧以所述的第一个压缩视频帧格式编码;以及对所述的第一个视频帧进行译码的方法。
接收所述的第二个压缩视频帧格式的N个帧的第一个集合的方法,用于包含所述的第一个视频帧之前的所述解压缩视频序列;对所述的N个视频帧的第一个集合译码的方法;依据与第一个集合帧相关的回放信息对第一个帧集合的帧进行排序;接收所述的压缩视频帧格式的M个视频帧的第二个集合,用于包含所述的第一个视频帧后的所述解压缩后的视频序列;对所述的第二个视频帧的集合译码的方法。
依据本发明第九方面的内容,提供一个视频编译码器,包括依据本发明第八方面内容的视频译码器。
依据本发明第十方面的内容,提供一个多媒体内容检索***,包括一个依据本发明第八方面的内容的视频译码器。
依据本发明第十一方面的内容,提供一个多媒体终端,包括一个依据本发明第八方面内容的视频译码器。
依据本发明第十二方面的内容,提供一个依据本发明第十一方面的内容的多媒体终端,其特征在于该终端是一个无线电信设备。
依据本发明第十三方面的内容,提供一个计算机程序,将计算机作为视频编码器对视频帧序列进行编码从而形成一个压缩视频序列,所述的压缩视频序列包括以至少第一个压缩视频帧格式及第二个压缩视频帧格式编码的帧,所述的第一个压缩视频帧格式不是时域预测格式,所述的第二个压缩视频帧格式是时域预测的格式,其特征在于所述的计算机程序包括:识别第一个视频帧相关的第一个标识的计算机可执行代码,所述的第一个视频帧应该以所述的第一个压缩视频帧格式编码;将所述的第一个标识与第二个视频帧关联起来的计算机可执行代码;以所述的第一个压缩视频帧格式的所述第二个视频帧进行编码的计算机可执行代码;定义包括所述的第二个视频帧之前出现的N个视频帧的第一个视频帧集合;以所述的第二个压缩视频帧格式对所述第一个视频帧集合编码的计算机可执行代码;定义包括所述的第二个视频帧之后出现的M个视频帧的第二个视频帧集合的计算机可执行代码;以所述的第二个压缩视频帧格式对所述的第二个视频帧集合进行编码的计算机可执行代码。
依据本发明第十四方面的内容,提供计算机程序,将计算机作为视频译码器对压缩视频序列译码,形成解压缩视频帧序列,所述的压缩视频序列包括以至少第一个压缩视频帧格式及第二个压缩视频帧格式编码的帧,所述的第一个压缩视频帧格式不是时域上预测的格式,而所述的第二个压缩视频帧格式是时域预测的格式,其特征在于所述的计算机程序包括:识别与第一个压缩视频帧相关的第一个标识的计算机可执行代码,该标识用来表示所述的第一个视频帧以所述的第一个压缩视频帧格式编码;对所述的第一个视频帧译码的计算机可执行代码;接收所述的第二个压缩视频帧格式的第一个N帧集合的计算机可执行代码,包括进所述的第一个视频帧之前的所述解压缩视频序列;对所述的第一个N个视频帧集合译码的计算机可执行代码;根据第一个集合的帧相关的回放信息对第一个帧集合进行排序的计算机可执行代码;接收所述的第二个压缩视频帧格式的第二个M个视频帧的集合的计算机可执行代码,包括进所述的第一个视频帧后的所述解压缩视频序列;以及对所述的第二个视频帧集合译码的计算机可执行代码。
依据本发明第十五方面的内容,提供一个依据本发明第十三与第十四方面内容的计算机程序。
依据本发明另一方面的内容,提供一个存储媒介,包括将计算机作为视频编码器的计算机程序,对视频帧序列编码,形成压缩视频序列,所述的压缩视频序列包括以至少第一个压缩视频帧格式及第二个压缩视频帧格式编码的帧,所述的第一个压缩视频帧格式不是时域上预测的格式,而所述的第二个压缩视频帧格式是时域上预测的格式,其特征在于所述的存储媒介包括:
识别与第一个视频帧相关的第一个标识的计算机可执行代码,该标识用来表示所述的第一个视频帧应该以所述的第一个压缩视频帧格式编码;
将所述的第一个标识与第二个视频帧相关联的计算机可执行代码;
定义包含在所述的第二个视频之前出现的N个视频帧的第一个视频帧集合的计算机可执行代码;
以所述的第二个压缩视频帧格式对所述第一个视频帧进行编码的计算机代码;
定义包含所述的第二个视频帧之后出现的M个视频帧的第二个视频帧集合的计算机可执行代码;
以所述的第二个压缩帧格式对视频帧的第二个集合编码的计算机可执行代码。
依据本发明另一部分的内容,提供一个存储媒介,包括将计算机作为视频译码器的计算机程序,对视频帧序列译码,形成解压缩视频序列,所述的压缩视频序列包括以至少第一个压缩视频帧格式及第二个压缩视频帧格式编码的帧,所述的第一个压缩视频帧格式不是时域上预测的格式,而所述的第二个压缩视频帧格式是时域上预测的格式,其特征在于所述的存储媒介包括:
识别与第一个视频帧相关的第一个标识的计算机可执行代码,用来表示所述的第一个视频帧应该以所述的第一个压缩视频帧格式编码;
对所述的第一个视频帧译码的计算机可执行代码;
接收所述的第二个压缩视频的第一个N帧集合的计算机可执行代码,包括所述的第一个视频帧之前的所述解压缩视频序列;
对所述的第一个N视频帧集合译码的计算机可执行代码;
根据与第一个集合的帧相关的回放信息,对第一个帧集合的帧排序的计算机可执行代码;
接收所述的第二个压缩视频帧格式的第二个M个视频帧集合的计算机可执行代码,包括入所述的第一个视频帧后的所述解压缩视频序列;
对所述的第二个视频帧集合译码的计算机可执行代码。
依据本发明进一步的内容,提供对视频帧序列编码形成压缩帧序列的方法,所述的压缩视频序列包括以至少第一个压缩视频帧格式及第二个压缩视频帧格式编码的帧,所述的第一个压缩视频帧格式不是时域上预测的格式,而所述的第二个压缩视频帧格式是时域上预测的格式,其特征在于该方法包括以下步骤:
识别与第一个视频帧相关的第一个标识,用来表示所述的第一个视频帧应该以所述的第一个压缩视频帧格式编码;
按照降低所述的压缩视频序列中的预测路径长度的方法将所述的第一个标识与第二个视频帧进行相关。
依据本发明的视频编码方法提供的编码视频数据流的容错控制能力比传统的方法编码的视频流更强。尤其是,本发明提供一个视频编码/译码***,其中造成时间上预测的图像损坏的数据丢失的影响,与采用传统的视频编译码器相比,传播范围要小。依据本发明,可以通过截短视频序列内的预测路径,减少时间上预测帧的的损坏程度。这可以通过有效地对INTRA编码后的帧***延迟来完成。例如,在周期性的INTRA帧请求、INTRA帧更新来自远程终端或场景剪切的请求之后。依据本发明,通常以INTRA格式编码的帧,如与周期性INTRA请求、INTRA更新请求或场景剪切相关的那些帧,本身不用INTRA格式编码。相反,后来在视频序列中出现的帧选择用INTRA格式编码。实际上用INTRA格式编码(称为“实际”INTRA帧)的帧的选择方式是使它大约位于周期性INTRA请求、INTRA帧请求或场景剪切之间的中点。在实际的INTRA帧之前出现的帧逆序从实际的INTRA帧开始使用时域预测编码,而那些在它之后出现的帧在前向上使用时域预测。依据本发明的一个优选实施例,那些反向预测的帧以INTER(P-帧)格式编码。在另一个优选实施例中,在后向预测中使用B-帧格式编码的帧。
本发明与传统的视频编码方法比较,提供更强的容错控制能力,其中与周期性INTRA请求、INTRA帧更新请求或场景剪切相关的帧本身用INTRA格式编码。尤其是,使用依据本发明的方法时,由于传输错误引起其的帧丢失的比例大为降低。与通过降低预测路径长度增强错误控制能力的传统方法相比,本发明不会引起比特速率的明显增加。
本发明可以在例如多媒体检索***中实现,其中在不可靠的基于分组的传输协议的顶端对视频分流,如UDP。它也可以在实时视频电话应用中实现。本发明尤其适用于移动应用中,其中至少一部分通信链接通过无线信道形成。因为无线通信链接具有相对较高的比特错误率,并且带宽受限,本发明提供的增强的错误控制能力尤其具有优势,因为它不会使比特速率出现明显增加。
此外,需要强调的是网络的特点、连接的类型及传输协议对于本发明的实施并不重要。网络可以包括固定网(PSTN)与移动电信网(PLMN),其中至少一部分通信链接由无线信道形成。网络中的数据传输可以完全是基于分组的、完全是电路交换的、或者可以既包括电路交换也包括分组交换数据传输。例如,网络可以包括使用与其他使用电路交换数据传输的网络元素耦合的基于分组的数据传输的一些元素(如,核心网)。这类***的一个例子是目前提出的UMTS第三代移动电话网,其中至少部分网络可以依靠电路交换传输。
影响数据流的传输错误的本质也与本发明的应用不相关。此外,依据本发明的编码、译码与回放方法可以用于预先存储所需要的视频与现场(实时)视频压缩中。还应该强调的是,本发明可以单独应用或与现有的错误纠正、消除及控制技术联合应用,包括传统的截短视频序列中的预测路径的传统方法,如上述提到的那些传统方法。
详细描述
为了更好地理解本发明及其优点,下面将通过示例及对比图7与图8描述依据本发明的一个视频编码方法的优选实施例。图7描述传统方式下的一个压缩视频序列,而图8描述依据本发明创建的压缩视频序列。这两个序列都表示相同的图像内容,由一个长序列的视频形成部分的几个连续帧构成。如前所述,INTRA格式编码的帧一般用参考序号50表示,INTER帧的标号为54。依据以前使用的惯例,创建INTER帧的前向预测过程的标号为53。在两个序列的开始处是场景剪切70。尽管下面的描述主要是结合视频序列中的场景剪切依据本发明的方法应用,但是本发明也同样适用于通常会产生INTRA格式的帧编码的情况中,这包括场景剪切、来自远程终端的INTRA帧的请求和周期性的INTRA帧更新操作,但是并不仅限于此。
图7中的帧序列表示的是传统的编码方案,其中INTRA帧50在场景剪切70之后立刻***到序列中。当出现场景剪切时,剪切之后的图像内容与剪切之前的内容差别较大。因此,在场景剪切之后根据前面的帧的前向预测立刻将帧编码成为INTER帧是不可能也不现实的。这样,依据传统的编码方案,在场景剪切之后立刻将INTRA帧50(I1)***。然后后面的帧根据该INTRA帧进行前向预测(INTER编码),直到出现例如下一个场景剪切、周期性INTRA请求和INTRA帧更新请求(70)为止。
如前描述,依据本发明的方法的基础是INTRA帧的延迟***,如图8所示。依据本发明,INTRA帧并不是立即***到视频流中,而是对在视频序列中后来出现的一帧进行INTRA格式的编码。在图8中用I1表示该帧。从图8中可以看出,场景剪切70与I1之间的帧(图8中的标号为P2和P3)从I1开始逆向预测为INTER帧,如箭头80所示。因此,它们在I1译码之后才能译码,这跟在能够进行前面图像内容的译码之前必须重建I1是类似的。这就意味着,依据本发明提供的方法,在视频序列回放过程中需要的初始缓冲器时延通常应该比场景剪切与后面的INTRA帧之间的时间长。
在考虑为了能够译出INTER帧P5必须成功传送多少帧的问题时,可以看出依据本发明提供的方法的主要优点。使用图7中的传统的帧排序方案,P5的成功译码需要正确传送并译出I1、P2、P3、P4和P5。因此,序列中(如帧I1)早出现的数据丢失(如包丢失)将会引起译码图片内容的错误,在序列中传播也会到达帧P5。而在依据本发明的方法中,对P5的成功译码只需要I1、P4与P5正确传输并译码。也就是说,通过使用本发明的方法,图像序列中的预测路径可以有效降低,从而增加了帧P5正确译码的概率。此外,序列中错误在时间上的传播也得以降低。序列中早期出现的数据丢失,例如在帧P2中出现的数据丢失,将只会引起帧P2与P3的译码图片内容中的错误。
下面对依据本发明的视频编码方法进行详细描述。依据本发明的方法实现的视频编码器的功能将与传统的视频编码器的操作进行对比。图9中有传统视频编码器的构造90。
在现有技术中的视频编码器90中,未编码的原始图片首先从视频源(例如耦合到帧撷取器的视频照相机和存储设备,如存储原始视频帧的计算机硬盘驱动器)连接到编码器。编码器也可以通过将控制命令发送给视频源和存储设备来请求一个新帧压缩。获取一个视频新帧压缩的过程参见图9的步骤91。未编码帧传送给编码器的速率可以是固定的或可变的。
通常,可以通过跳过一些帧降低视频序列的比特速率,也就是说,通过从视频序列中忽略一些帧完成。视频编码器的比特速率控制算法决定是否对某帧编码。此过程在图9中用步骤92表示。如果比特速率控制逻辑确定某一给定的帧需要编码,那么传统的视频编码器决定帧编码的模式。该判决过程用步骤94表示。如果已经请求了周期性的INTRA更新、INTRA帧更新请求已经从远程终端接收到、或者已经出现场景剪切,那么该帧用INTRA格式编码,如步骤98所示。否则,该帧用INTER帧格式编码,如步骤96所示。为了便于理解,我们的描述有一定程度的简化,此处没有考虑其他帧类型的处理,即双向预测的B帧。不过,这一简化不会影响依据现有技术对编码器操作的理解。
为了比较,图10中描述了依据本发明的视频编码方法的程序元素。完成与现有技术中的上述视频编码器等价功能的新方法的元素的参考编号与图9中使用的相同。
首先,未编码的原始视频帧连接到编码器,或该编码器可以请求新帧进行压缩。在图10中用步骤91表示。然后编码器确定(步骤94)图像内容是否用INTRA格式编码,例如作为场景剪切的结果、周期性INTRA帧更新间隔的结束或来自远程终端的INTRA帧更新请求的接收。依据本发明,如果编码器确定需要INTRA帧,那么它将记录需要这样的INTRA帧,如图10的步骤101所示。这样的标识INTRA帧需求的记录可以通过为帧设置标记并将标记存储在帧缓冲器中完成。下面对请求INTRA帧的方法进行更详细的描述,不过应该知道,对于本发明的应用来说,采用哪种标识INTRA请求的方法并不重要。之后帧进行缓存(102)。
依据本发明的编码器需要一个缓冲器,用于存储压缩之前的原始图像数据。存储器应该足够大,能够包含对应时间周期(T)的原始图像帧。一些所谓的“meta”数据与每个图像数据帧相对应。Meta数据提供关于要进行编码的帧的信息,而如果产生请求,如上所述,它还可以包括INTRA帧请求标识。对于用INTER格式编码的帧,meta数据可以包括用于运动补偿的参考帧的数量(如果参考帧不是前面已经编码的帧)。所有帧的meta数据包括压缩序号CO,标识将进行编码的未压缩视频帧的顺序。每个要进行编码的帧存储在缓冲器中。
最初,在开始编码之前,缓冲器是空的。当开始编码时,缓冲器被填充,直到其中的帧数与时间段T相对应(102)。监控缓冲器确定它什么时候填满(步骤103)。当缓冲器满时,“最老的”帧,即最先装入缓冲器的帧,从缓冲器中去除。此操作用图10中的步骤104标识。编码器确定该帧是否与INTRA帧请求相关(步骤105),这可以通过例如检查该帧相应的meta数据并确定是否设置INTRA标记来完成。如果帧不与INTRA请求相关,编码器的比特速率控制算法确定是否应该跳过该帧(步骤92),或者是否应将该帧编码为INTER帧(步骤107)。如果某帧被跳过,并且它包含一个用来表明除了前面的帧之外的帧应该用作运动补偿的参考的标识,那么该标识应该复制到描述缓冲器中的下一帧的meta数据中。如果决定不跳过该帧,那么使用序列中前面的帧作为参考或meta数据标识的运动步骤所示的帧,将该帧用INTER格式编码(步骤107)。
如果从缓冲器得到的帧与INTRA帧请求相关,那么执行INTRA帧处理程序,通常用参考编码108表示。图11详细地描述了步骤108的过程元素。当前的INTRA帧请求在时刻T1出现。INTRA帧处理过程的第一步是搜索帧缓冲器并定位下一个INTRA帧请求,即当前处理的帧之后的INTRA帧请求。参见图11中的步骤110。下一个INTRA请求的T2时刻由相应的meta数据确定。然后,确定INTRA格式编码的实际帧,从而令这两个请求的INTRA帧的时间差大约相等。也就是说,如果当前的INTRA请求与出现时间为T1的帧相关,从出现时间为T3的缓冲器中选择一帧,令T3-T1约等于T2-T3。选用该新定位的帧进行INTRA格式的编码。上述过程用图11中的参考编号112表示。需要说明的是,依据本发明,实际用INTRA格式编码的帧(称为“实际”INTRA帧)不是最初的INTRA编码请求有关的帧,而是视频序列中出现的一些其他帧。如果缓冲器没有包含与INTRA帧请求相关的帧,选择实际用INTRA格式编码的帧,使其出现时刻T3与T1时刻的INTRA请求之间的时间差大约等于T3与缓冲其的最后一帧之间的时间差。
然后在步骤114中,实际用INTRA格式编码的帧从缓冲器中去除,对在实际的INTRA帧之前的帧的顺序进行翻转。标记在实际的INTRA帧之前并与之相连的帧以及在其之后并与之相连的帧,令它们包含表明实际的INTRA帧应该用作运动补偿参考的标识。最后,选择进行INTRA格式编码的帧编码为INTRA帧(步骤116),而其他达到但是不包括T2对应的帧使用运动补偿时域预测编码进行编码。那些在实际的INTRA帧之前出现的帧从实际的INTRA帧开始进行逆序编码,而在其之后出现的帧进行前向编码。应该知道,翻转在实际的INTRA帧之前的帧的顺序并不一定需要物理上的缓冲器重排。缓冲器内有效的帧翻转可以使用分配给各帧的压缩顺序(CO)编号完成,这将在下面进行详细描述。
为了更好地理解上述INTRA帧处理过程,我们看下面的示例。假设视频捕捉与检索***的视频编码器已经依据本发明的方法设计。编码器包括可以存储未压缩格式视频数据的5秒(加一帧)的缓冲器。通过视频帧源以25帧/秒的固定速率将未压缩(即原始)视频帧提供给编码器,这样可使连续的帧之间的时间差统一为40毫秒。在序列中的任一时间点,缓冲器的内容如表1所示:
表1视频编码器缓冲器内容示例
回放/捕获时间 |
t+0 |
t+40 |
t+80 |
… |
T+4960 |
t+5000 |
压缩顺序 |
不存在 |
不存在 |
不存在 |
… |
不存在 |
不存在 |
Meta数据 |
INTRA请求 | | | | |
INTRA请求 |
在表1中,给定原始视频帧的回放/捕捉时间的参考时刻t用毫秒表示。如上所述,meta数据用于存储未压缩视频帧的附加信息,例如用于表示压缩与解压缩的帧的顺序的压缩顺序编号(CO)。
在该例中考察的特定视频序列中,没有场景剪切,但是每隔5秒请求一个周期性INTRA更新。在meta数据中有每个未压缩视频帧提供的相应INTRA帧请求标识。从表1中可以看出,该例中假设初始INTRA请求在时刻t出现。因为INTRA请求每隔5秒出现一次,下一个这样的请求将在t+5000ms处出现。未压缩的视频帧提供的meta数据使编码器能够确定进行INTRA请求的时刻。
使用依据本发明的方法,编码器并不将INTRA编码应用到直接与INTRA请求相连的帧,而是在当前的INTRA请求与下一个INTRA请求之间的大约中点处选择用INTRA格式编码的帧。应该知道,没有必要一定要选择刚好在连续的INTRA请求中点的帧,这取决于连续INTRA请求之间的时间间隔与视频序列的帧速率。在此处的示例中,帧之间的距离是40ms,INTRA请求以固定的5000ms间隔出现,依据本发明,最合适以INTRA格式编码的帧是在t+2480ms或t+2520ms出现的帧(参见表1)。因此,编码器可以选择在t+2480或t+2520ms出现的帧作为实际的INTRA帧。对于INTRA格式编码来说,选择这两类帧同样合适。用于决定实际的INTRA帧的选择的准则依据本发明的实施方式可以不同,但是在该示例中,假定出现在t+2480ms的帧选为实际的INTRA帧。
然后编码器将压缩顺序(CO)编码分配给缓冲器中的未压缩帧。缓冲器中的所有帧都标有表示实际的INTRA帧的压缩顺序号,即前面选为INTRA格式编码的帧。此压缩顺序信息存储在与各帧相关的meta数据中,如表2所示。
回放/捕获时间 |
t+0 |
t+40 |
t+80 |
… |
t+2440 |
t+2480 |
t+2520 |
… |
t+4960 |
t+5000 |
压缩顺序 |
CO=62 |
CO=61 |
CO=60 |
… |
CO=1 |
CO=0 |
OO=63 |
… |
CO=124 |
NA |
Meta数据 | | | | | |
实际INTRA | 参考图CO=0 | | |
INTRA请求 |
表2压缩序号与参考图选择分配后的示例缓冲器的内容
给出编码器的缓冲器中实际的INTRA帧之前的未压缩帧的压缩序号顺序,可使缓冲器中出现较早的帧接收较大的压缩序号。实际的INTRA帧的压缩序号CO=0。因此,在此处的示例中在实际的INTRA帧之前与它相邻的帧(即在t+2440ms处出现的帧)的压缩序号为CO=1。在该帧之前的帧的序号CO=2,再往前是CO=3,依次类推。在此处的示例中,这种标号方案将使缓冲器中的第一个帧的压缩编号为CO=62。本发明所属领域的技术人员都知道,此标号方案可以有效的标识在实际的INTRA帧之前的帧应该逆序从实际的INTRA帧中预测,而不是从与初始的INTRA请求相关的帧(即t时刻出现的帧)中前向预测。
在实际的INTRA帧之后相邻帧的压缩序号(即在t+2520ms出现的帧),以及后面帧的压缩序号,随着从实际的INTRA帧之前的序列中最早的帧的压缩序号开始进行编号。因此,在此处的示例中,在编码器的帧缓冲器中的实际INTRA帧之后立刻出现的未压缩视频帧的压缩序号为CO=63,它之后的帧的压缩序号为CO=64,再下一帧为CP=65,依次类推。此外,依据本发明的方法,实际的INTRA帧之后相邻的帧的编号方式应该使其参考图(从中预测该帧)不是前面压缩序号的帧,而是压缩序号为CO=0的实际INTRA帧。此标识包含在与实际的INTRA帧之后立刻出现的帧相关的meta数据中。在此处的示例中,这意味着压缩序号CO=63的实际INTRA帧之后立刻出现的帧不是从压缩序号CO=62的帧中预测的,而是从压缩序号为CO=0的实际INTRA帧本身预测的。
分配压缩序号之后的视频缓冲器的内容,如表2所示。
然后编码器从缓冲器中去除实际的INTRA帧,依据前面分配的压缩编号对缓冲器重新排序,并对选定的(即实际的)INTRA帧进行编码。
需要强调的是,对缓冲器物理上的重新排序的需求取决于所用的缓冲器类型。如果编码器可以搜索缓冲器并随机访问其内容(即缓冲器是一个随机接入缓冲器),那么可以以压缩序号所示的顺序直接选择编码帧,不再需要物理上的重新排序。另一方面,与此例中的假设类似,如果比较容易以先入先出方法接入缓冲器,那么依据压缩序号对帧的物理上的重新排序就很有好处。
实际的INTRA帧可以使用任何合适的方法编码。编码方法的准确选择可以根据如将在后面用于传输压缩视频数据的通信信道的特点进行。可用的比特速率是一项可能的指示编码方法选择的准则。例如,在固定线路的视频检索或视频电话***中,可以依据ITU-T建议H.261对选定的(实际)INTRA帧进行编码,这是专门设计用于在可用的比特速率为p×64kbits/s的通信***中提供最优性能。如果视频数据包括在多媒体比特流中,依据MPEG4标准的编码可能会更适合。在极低的比特速率通信尤其是在无线信道上,ITU-T建议H.263是另一个可选的视频编码方案。
在上述的重新排序操作之后,缓冲器的内容如表3所示:
表3重新排序后视频缓冲器的内容示例
回放/捕获时间 |
t+2440 |
t+2400 |
t+2360 |
… |
t+0 |
t+2520 |
t+2560 |
… |
t+4960 |
t+5000 |
压缩顺序 |
CO=1 |
CO=2 |
CO=3 |
… |
CO=62 |
CO=63 |
CO=64 |
… |
CO=124 |
NA |
Metadata | | | | | | 参考图CO=0 | | | | INTRA请求 |
缓冲器中其余的帧(除对应t+5000的帧之外)用INTER格式编码,帧序列(其中的帧从一个预测出另外一个)由其压缩序号及相应的meta数据提供的参考图选择信息决定。同样,所用的INTER编码的详细信息对于本发明的方法应用并不重要。因为对视频帧编码的顺序由其分配的压缩序号决定,编码过程进行如下处理。压缩序号CO=1到CO=62的帧一个接一个地顺序预测,从实际的INTRA帧(压缩号CO=0)开始。也就是说,压缩序号为CO=1的帧使用实际的INTRA帧作为参考图进行INTER编码,压缩序号CO=2的帧从译码INTER编码帧中预测,其压缩序号为CO=1,依次类推。此过程看上去好像是前向预测的。但是,由于未压缩帧的压缩序号是逆序的,帧CO=1到CO=62从实际的INTRA帧中进行逆序的有效预测。
此过程一直持续到到达压缩序号CO=63的帧为止。该帧应该用INTER格式编码,从实际的INTRA帧(CO=0)处前向预测,不应该从帧CO=62中预测。依据本发明的方法中,这在关于帧CO=63的meta数据中标明。Meta数据标识帧CO=63的INTER前向编码使用的参考图的压缩序号为CO=0,即实际的INTRA帧。只要预测的来源重新设置为帧CO=0,编码器就继续对其余的缓冲器中的未编码帧(那些压缩序号为CO=63到CO=124)一个接一个地进行序列编码。也就是说,帧CO=63使用帧CO=0(即实际的INTRA帧)作为其参考图进行编码,帧CO=64从CO=63中预测,而帧CO=65从CO=64中预测,依次类推。
在前面的描述中,使用示例对依据本发明的视频编码方法进行描述,在该示例中,主要根据两个类型的视频帧,非时域预测的INTRA帧及时域预测的INTER帧,对视频序列进行编码。但是,本发明所属领域的技术人员应该知道,此方法也可以延伸到包括使用其他类型的视频帧。尤其是,使用前向、反向或双向时间预测的B图也可以结合本发明使用。也就是说,实际的INTRA帧或任何逆序预测形成实际的INTRA帧的INTER格式的帧可以用作创建B图的锚图。B图可以使用前向预测、反向预测或双向预测创建。类似的,B图也可以包含在含有从实际的INTRA帧前向预测的INTER格式帧序列部分中。
上述过程使视频数据的各帧可以参考选定的(实际)INTRA帧以直接的方式编码。但是,尽管视频帧依据它们分配的压缩序号进行编码有利于编码过程,但是在帧译码时会产生一个问题。尤其是,视频帧不可能以正确的回放顺序编码。参见表3中的回放/捕捉时间。因此,当帧以这样的顺序经过编码并通过通信信道传送给译码器时,译码器依据其回放时间对帧进行重新排序,确保它们能够以正确的顺序回放。
后面将对这一过程进行详细描述,不过此处应该说明的是,考虑到译码器端所需的回放时间,信息与各帧是相关的。信息与其本身的图片数据及包含各帧的压缩序号的meat数据传送给译码器。在一定的分组交换网络中,数据包不可能以与其传送顺序相同的顺序到达接收端。一些传输协议,如RTP(可靠传输协议),可以提供数据包传送的顺序标识(“序列编号”)。这可以使数据包在接收端组合成为其正确的顺序。在这类***中,没有必要将压缩序号与视频数据一起发送,这是因为视频帧编码的顺序可以从接收的数据包的序列编号中推断出。但是,在传输协议没有提供序列编号的***中,需要有压缩顺序信息的传输。各个视频帧的回放时间安排信息在通过通信链接传输视频数据时比较容易包含入文件或复用/传输格式头中,并且其本身可以包含在视频编码格式/语法中。
因为本发明实质上是在INTRA请求之后延迟INTRA帧的***,因此后向预测的INTER帧也必须在INTRA格式实际编码的帧之前显示。在图14所示的依据本发明的另一个方法优选实施例中,可以使用B-帧。在压缩视频语法或周围文件或传输格式不允许在后面的锚帧(I1)之前使用逆序预测的帧(如图8中的INTER编码帧P2与P3)回放时使用此方法比较有利。通常,例如在ITU-T建议H.263中,B-帧支持后向、前向或双向的预测。因此,依据本发明的编码方法可以使用从后面的锚帧(I1)中后向预测B-帧完成。但是,此技术与本发明前面描述的优选实施例相比,压缩效率较低。
参考图14,依据本发明另一个实施例的编码方法的过程与优选实施例的方式类似,包括选择实际INTRA帧的位置也是类似的。在编码器缓冲器中实际INTRA帧之前的帧编码为B-帧52,每个B帧直接从实际的INTRA帧中后向预测51b,如图14所示。因为B-帧的后向预测由视频编码建议如ITU-T H.263支持,在该实施例中,不必将逆序CO号分配给实际的INTRA帧前面的帧。只要标识各帧应该使用实际的INTRA帧作为预测参考帧进行B-帧格式的编码就足够了。此信息可以包含在与实际的INTRA帧之前的各帧相关的meta数据中。随后缓冲器中实际的INTRA帧之后的帧一个接一个的用INTER格式编码。表明实际的INTRA帧将作为实际的INTRA帧之后与之相邻的帧预测参考的标识包含在该帧的meta数据中。
本发明的另一个方法实施例可以用在视频压缩方法不支持参考图选择的情况中。在这种情况下,控制或调用视频编译码器的层(如控制程序)可以在实际的INTRA帧被参考之前的瞬间用实际的INTRA帧代替编译码器的参考帧缓冲器的内容。在上述的示例中,这就意味着参考帧缓冲器在开始对帧CO=63编码或译码时,应该载入帧CO=0。为了支持本发明的该实施例,压缩帧语法,或复用/传输格式应该承载标识实际的INTRA帧及哪些帧需要将其作为参考的信息。
下面,将对适合与视频编码方法一起使用的译码方法及视频回放方法的优选实施例进行描述。图12中是一个依据本发明的译码方法。在译码过程中译码器从传输信道中接收编码帧并缓存(120)这些帧。然后译码器对缓存的帧122进行译码。在这种情况下,传输信号可以是任何适合压缩视频或多媒体数据传输的通信信道。传输可以通过固定线路网络,如Internet、ISDN或PSDN(公共交换电话网)进行;至少部分网络也可以包含一个无线链接,如PLMN(公共陆地移动网)提供的无线链接。术语“传输信道”应该包含存储文件从存储媒介(例如用于显示或进一步处理的计算机硬件驱动器)检索时进行的数据传输。
本发明所属领域的技术人员都知道,压缩视频序列的每一帧都是依据其编码方法用基本上标准的方式译码。这是完全可能的,因为依据本发明的方法不必更改INTRA及INTER编码帧本身的格式。因此,未压缩视频帧的编码可以依据任何合适的方案进行,无论是标准的还是私有的。
在译码后,未压缩帧存储(124)在回放缓冲器中。如果编码器中使用的缓冲器长度为T(参见上面编码阶段的描述),译码器中使用的缓冲器应该能够支持至少0.5×T秒的未压缩视频图。然后,将解压缩的视频帧排序成其正确的回放序列。译码器使用与每帧相关的回放信息对帧进行排序。如上所述,在将视频帧存储在编码器的缓冲器中可以将该信息并入数据结构中,并且在压缩视频语法中或将压缩视频帧传输给译码器时使用复用/传输格式承载该信息。在一些情况中,例如在通信信道的吞吐量下降时,译码器实际上可以在安排的回放时间后接收该帧。如果在安排的回放时间后接收该帧,或者在回放时间前接收但是无法迅速译码来保证按时回放,那么这样的帧不可能存储在译码器的输入缓冲器中。但是,存储晚到的帧或无法在其回放时按时译码的帧是有用的,这是因为它们可以用于提高其他帧的错误消除能力等等。
图13中是依据本发明的优选实施例的视频回放装置的过程步骤。回放装置的输入为来自视频译码器的缓冲器124的解压缩后的视频帧,根据其安排的回放时间正确排序。当开始一个新的视频序列的回放时,后面的视频帧在回放缓冲器132中缓存。为了保证视频序列的回放不被中断,该初始缓冲时间应该至少为0.5×T秒。在初始的缓冲时间之后,回放过程进入正常的回放循环,包括步骤134、136与138。134的第一步是确定是否安排回放缓冲器中的一个帧进行回放。如果是,那么在136中显示。如果不是,或者刚刚显示了一个帧,那么该过程进入周期性等待或空闲状态138。回放循环的操作速率为原始捕捉序列的(最大)帧速率。例如,如果序列以25帧/秒的速率捕捉,则回放循环每40毫秒执行一次。
图15是依据本发明的多媒体内容创建***的优选实施例。此处,该***包括三个媒体源10:音频源151a、视频源151b及数据源151c。本发明所述领域的技术人员都知道,媒体源的数目并不限于此处介绍的这三个。而且每个源可以是多种形式,包括但是不限于“现场”源,即实时媒体内容以及非实时媒体源,如大型存储媒介上的媒体内容文件,例如网络硬件驱动器等等。
依据本发明的多媒体内容创建***包括多媒体捕捉方法,通常用参考号20表示。在本发明的优选实施例中,每个多媒体源提供专用捕捉装置。因此,捕捉方法20包括音频捕捉装置152a、视频捕捉装置152b及数据捕捉装置152c。音频捕捉装置可以包括如麦克风、模拟-数字转换器及信号处理电子装置形成数字化的音频数据帧。视频捕捉装置,如前所述,可以包括视频撷取卡,用于从模拟视频输入产生数字视频帧。对于每个媒体源,捕捉设备也可以包括一些软件,如用于***介源及其相应的捕捉装置操作的专用设备驱动器及应用程序。多媒体捕捉方法20的输出是未压缩的媒体流的集合,每个媒体流对应一个媒体源151a-151c。
如果一个或多个媒体源提供已经适合用于多媒体内容编辑器22格式的内容,那么该媒体内容可以直接用于编辑器。例如,在媒体源是从存储在大型存储媒介中的文件中以数据形式检索的音频或视频帧的文件时。
多媒体内容编辑器22接收到多媒体捕捉方法提供的独立媒体流,并将它们链接为统一的实时流。例如,应该同时回放的多媒体流,如视频及音频内容,通过提供各帧所需的回放时间的标识链接起来。也可以提供所需的其他多媒体流的回放时间的标识。只要用这种方式链接,多媒体内容的每个元素都称为“磁道”。编辑器22也可以运用各种方式编辑媒体磁道。例如,视频帧速率可以降低一半或者视频图像的空间解析度可以降低。
从编辑器22开始,通过编码单元24接收媒体磁道。在本发明的优选实施例中,每个磁道以适合该媒体类型的方法进行独立编码,而每个媒体类型均提供单独的编码器。因此,在此例中,提供了三个编码器,一个音频编码器157a、一个视频编码器157b以及数据编码器157c。应该知道,所用编码器的个数对于本发明的应用来说并不重要。而且在数据编码器中,编码方式可能因数据的不同而有所差异。每个编码器去除各个媒体磁道中的冗余信息,这样它们就可以用更简洁的格式标识,适合在带宽有限的通信链接中传输。所用的压缩技术包括无丢失与有丢失压缩技术。音频与数据磁道可以使用任何合适的方法编码,其选择可以根据用于进一步将多媒体数据传输给接收客户端的通信信道的特点。例如,音频磁道可以使用GSM EFR语音编译码器编码。视频编码器157b依据本文中前面描述的方法实现。它使用运动补偿时间预测,并且如前所述,操作方式应依据本发明降低图像序列中的预测路径,给压缩视频磁道提供更大的容忍数据丢失引起的错误的能力。
复用器26接收编码单元24产生的压缩媒体磁道。此处它们进行交织,形成统一的比特流,该比特流称为多媒体“片段”。然后将这些片段传递给多媒体服务器14,通过通信链接进一步传递给接收客户端。
图16是依据本发明的方法的另一种情况。该图描述了依据ITU-T建议H.324实现的多媒体终端160。此终端可以作为多媒体收发机设备。它包括对通信网上传输的多媒体数据流的捕捉、编码与复用的元素,以及接收、解复用、译码与回放接收到的多媒体内容的元素。ITU-T建议H.324将终端操作定义为一个整体,并参考其他的建议,控制各种终端设备元素的操作。通常,这样的多媒体终端可以用于实时多媒体应用中,如视频电话中,但是并不仅限于此。例如,H.324多媒体终端也可以用作多媒体内容检索客户端,从例如多媒体内容服务器等处下载或分流多媒体内容。
在本发明的内容中,应该知道,图16中的H.324终端只是其中的一种适合用于本发明的方法中的多媒体终端设备。还应该说明的是,也可以使用一些其他与终端设备的位置与安装有关的技术。如图16所示,多媒体终端可以位于与固定线路电话网,如模拟PSTN(公共交换电话网),相连的通信设备中。在这种情况中,多媒体终端配有调制解调器171,符合ITU-T建议V.8、V.34及V.8bis。多媒体终端也可以连接到外部调制解调器上。该调制解调器可以将复用的数字数据与多媒体终端产生的控制信号转换为适合在PSTN上传输的模拟格式。它还可以使多媒体终端接收来自PSTN的模拟形式的数据及控制信号并将它们转换为可以解复用并以合适的方法被终端处理的数字数据流。
H.324多媒体终端也可以通过下列方式实现:可以将其与数字固定线路网络,如ISDN(综合业务数据网)直接相连。在此情况下,该终端依据H.324/I(ITU-T建议H.324的附录D)实现,而调制解调器171依据ITU-TI.400系列建议用ISDN用户网接口代替。在图16中,该ISDN用户网接口用框图172表示。
H.324多媒体终端也可用于移动通信应用中。建议H.324的附录C有一些将H.324终端用于易错的通信环境中的修订。这些修订中多数专门用于复用协议,用来合并数据流(ITU-T建议H.223),并产生更健壮的比特流,抵抗信道错误引起的数据丢失与破坏。尽管这些修订的使用不限于移动通信中,但是它们尤其适用于移动应用中,这是因为在这一类通信链接中的比特错误率一般较高。H.324附录C也指出(第C.3段)在移动应用中,调制解调器171可以用任何合适的无线接口代替,见图16的框图173。因此,依据H.324附录C实现的移动多媒体终端(通常指H.324/M终端)可以接受适合用于任何当前或未来移动典型网中的无线部分。例如,H.324/M多媒体终端可以包括一个与当前第二代GSM移动电话网或提出的第三代UMTS(通用移动电话***)相连的无线收发机。
无论多媒体终端怎样安装,无论它位于哪里,都可能需要与包括电路交换及基于分组的电信链接的通信网络交换多媒体数据,该电信网可能包括具有无线链接的移动电信网。例如,链接到ISDN网中的H.324/I多媒体终端可以在PLMN移动电话网中形成与H.324/M终端的连接。通过网络在终端之间传输的多媒体数据会受到各种来源的错误与数据丢失的影响。这可能包括比特翻转错误,例如由影响无线通信链接的干扰所引起,还可能包括核心ISDN网中可能的拥塞引起的包丢失。因此,尽量使通信多媒体终端的视频编码器的安装能够为视频比特流提供高度的传输错误容忍能力是很有用的。如前所述,依据本发明的视频编码方法使用时间预测技术压缩可以为视频序列提供容错控制能力。因此,它非常适合安装在多媒体终端中,尤其是适合安装在可能用于易于出错的通信信道中的设备中。
需要说明的是,在设计用于双向通信(即可以发送并接收视频数据)的多媒体终端中,必须提供依据本发明安装的视频编码器与视频译码器。因为依据本发明的优选实施例的视频编码器可以改变压缩帧的顺序,因此接收终端的视频译码器必须在显示之前对接收到的帧正确排序。因此,依据本发明典型的多媒体终端将包含一个能够完成上述编码/译码方法的编码器/译码器对。这样的编码器与译码器对经常作为统一的功能单元安装,称为“编译码器”。另一方面,如果多媒体终端只用作多媒体检索客户端,那么它只需要包括一个依据本发明安装的译码器。
下面将参考图16详细描述典型的H.324多媒体终端。该多媒体终端160包括各种所谓的“终端设备”。它包括视频、音频及远程信息处理,通常分别用参考号161、162及163表示。视频设备161可以包括如捕捉视频图像的视频照相机、显示接收到的视频内容的监控器以及可选的视频处理设备。音频设备162通常包括一个麦克风,可用于捕捉语音信息等,还包括一个扬声器,用于重新生成接收的音频内容。音频设备也可以包括附加的音频处理单元。远程信息处理163可以包括数据终端、键盘、电子书写板或静止图像收发机,如传真单元。
视频设备耦合到视频编译码器165中。该视频编译码器包括一个视频编码器及相应的视频译码器。应该以合适的格式对捕捉的视频数据进行编码,从而在通信链接上进行进一步的传输,并对通信网中接收到的压缩音频内容译码。在图16的示例中,视频编译码器依据ITU-T建议H.263实现,尤其适合用于低比特速率的视频会议应用,其中通信链接是例如可用带宽为20kps的无线信道。
类似地,终端的音频设备耦合到音频编译码器中,用图16的参考号166表示。在此示例中,音频编译码器依据ITU-T建议G.723.1完成。与视频编译码器类似,音频编译码器包括一个编码/译码对。它将终端音频设备捕捉的音频数据转换为适合在通信链接上传输的格式,并将从网络中接收的音频数据编码为适合在终端扬声器等重新生成的格式。音频编译码器的输出传送给延迟框167。它可以补偿视频编码过程引入的延迟,从而保证音频与视频内容的同步。
多媒体终端的***控制框164控制连接到网络的信令,建立在发送与接收终端之间操作的通用模式。H.324指出使用ITU-T建议H.245定义的控制协议执行端到端的信令。H.245控制协议,在图16中用参考号168表示,交换关于发送并接收终端的编码与译码能力的信息,并用于进行各种视频编码器的编码模式。***控制框164也依据ITU-T建议H.233控制数据加密的使用。考虑用于数据传输中加密类型的信息从加密模块169传递给复用器/解复用器(MUX/DEMUX单元)170。
在来自多媒体终端的数据传输中,MUX/DEMUX单元170将编码与同步的视频与音频流与来自远程信息处理163的数据输入合并起来,形成统一的比特流。加密模块169提供的有关用于比特流的数据加密类型(如果有)的信息,用于选择加密模式。因此,当复用并可能加密的多媒体数据流接收到时,MUX/DEMUX单元170负载对比特流解密,将其分成多媒体元素并将这些元素传递给合适的编译码器与/或终端设备用于译码与重新生成。依据H.324标准,MUX/DEMUX单元170应该执行ITU-T建议H.223。
应该说明的是,依据本发明,多媒体内容创建***、多媒体终端、多媒体检索客户端、视频编码器、译码器给视频编译码器的功能元素可以作为软件或专用硬件或两者结合实现。依据本发明,视频编码与译码方法尤其适合以计算机程序的格式实现,程序包括计算机可读的用于完成本发明的功能步骤的指令。类似,依据本发明的编码器与译码器可以作为存储在存储媒介上的软件代码实现并在计算机(如个人台式电脑)上执行,从而可以为计算机提供视频编码与/或译码功能。
下面结合仿真试验的结果考察包丢失情况来更好的理解本发明的优点。在这一示例中,假设为完成依据本发明的编码方式所设计的视频编码器用来以10帧/秒的速率对QCIF(1/4公用中分辨率格式)视频帧进行编码。周期性INTRA帧请求以5-秒的间隔出现,但是由于视频序列中的场景剪切而没有出现INTRA帧。表示INTRA编码帧所需的数据量设为2000字节,而INTER帧的大小约为200字节。这些数据是典型的依据当前使用的视频编码标准,如ITU-T建议H.263编码的INTRA与INTER编码QCIF格式帧。
用于Internet与局域网(LAN)中的数据传输的典型最大尺寸的协议数据单元大约为1500字节。假设这为包的大小,典型的INTRA编码帧的传送需要两个包。另一方面,一个包可以承载7个INTER帧。这就意味者,为了传输占用5秒视频的50个帧,共需要9个包。假设序列从INTRA帧(这是一般情况)开始,那么典型的5-秒视频序列组成一个INTRA帧及49个INTER编码帧。如上所述,INTRA帧传输需要两个包,而其余的40个INTER编码帧可以用7个帧传送,因此总共需要9个包。需要说明的是,使用大包用于Internet上的数据传输是有好处的。首先,在Internet骨干网中,包丢失的概率基本上与包的大小无关,其次,如果使用大包,包头过大的情况就会降低。
运用依据本发明的编码方法,编码器使用持续时间为5秒+1帧的缓冲器存储QCIF格式的后面的视频帧。当开始编码过程时,缓冲器最初为空的,然后存入未压缩的QCIF视频帧。序列中的第一个帧是有关INTRA请求的。由于该示例中的缓冲器长度的选择与周期性INTRA更新请求一致,并且因为假设在所考察的时间段内没有场景剪切或INTRA帧更新请求,存储在缓冲器中的最后一帧将与下一个INTRA请求有关。因此,编码器能够定位缓冲器中的未压缩帧,其出现时间约在两个INTRA帧请求之间的中点处。此帧被选择用于进行INTRA格式的编码(即选为实际的INTRA帧),并且前面描述的编码过程用于缓冲器中的帧。在此处考虑的仿真中,进一步假设已经经过编码压缩的视频帧在基于分组的通信网络中传输,并且通信信道由于拥塞导致一定比例的传输包丢失。仿真比特速率为18880bps,Internet上的视听流的目标比特速率为28.8kbps调制解调器。
下表对依据本发明的编码方法的容错能力与传统编码方案的进行比较,其中所有INTRA请求相关的帧本身用INTRA格式编码(即图7所示)。表4显示的是在平均每9帧丢失1个包(11%的包丢失率)的情况中的帧丢失数据,表5表示每9帧中丢失2个包(22%的包丢失率)的对应数字。
表4 11%包丢失率中传统方法与本发明方法的振丢失率
预计丢失图形数 |
33 |
25 |
预计图形丢失百分比 |
66% |
49% |
表5 22%包丢失率中传统方法与本发明方法的振丢失率
|
传统方法 |
本发明方法 |
预计丢失图形数 |
43 |
35 |
预计图形丢失百分比 |
85% |
71% |
从上述两种情况都可以看出,使用依据本发明的方法,丢失的帧较少。
在前面的内容中,借助优选实施例描述了依据本发明的方法。本发明所述领域的技术人员都知道,本发明并不限于前面提及的优选实施例的描述,而是可以用于其他形式,不违背其本质属性与特征。因此,上述优选实施例应该看作是示意性的,而不是限定性的。因此,本发明的应用范围由权利要求限定,而此处对发明内容的一般描述仅作为标识。
此外,此规范书(包含权利要求)与/或图中描述的每个特征都可以与其他描述与/或示例特征互相独立地用于本发明。本发明也可以包含任何新的特征或此处明确或概括性描述的特征的组合,而不管它是否与权利要求的内容相关或是否是减轻了任何或所有提及的问题。
此规范书也给出本发明的摘要作为参考。