本发明的目的是改进视频数据的编码和解码,以使得可以实现更高的编码效率和可以进一步降低编码视频数据的比特率。
根据本发明,可以通过一个根据权利要求1对视频数据进行运动补偿编码的编码器和进一步通过一个根据权利要求15对运动补偿编码的视频数据进行解码的解码器来实现本目的。此外,本目的还可以通过一个根据权利要求32对视频数据进行运动补偿编码的方法和通过一个根据权利要求33对运动补偿编码的视频数据进行解码的方法来实现。本发明的实施例由从属权利要求来限定。
根据本发明的第一方面,预测帧的特性和/或运动矢量的特性被用于减少编码视频数据的比特率,和用于改进视频数据的编码效率。预测误差集中在视频场景中运动物体的轮廓边沿。本发明是基于观察到预测帧P(x,y)中的结构,即亮度图案和/或色度像素值,如边缘和类似物,与运动物体的这些轮廓的位置大致吻合。在本文件中,术语“图象亮度的不连续性”表示这种预测帧的一般结构。编码器和解码器依次知道预测帧P(x,y),同时运动矢量也被传输。因此,根据预测帧P(x,y),可以在编码器和解码器中判定在预测误差帧中哪些区域是重要的,并将被分别编码和解码,而不须传输关于这些预测误差帧中的区域包容在编码视频数据中地址数据。
本发明还基于认识到预测误差集中在高速运动动作的区域。因此,在编码器和解码器中都可以用的运动矢量可被用于判定将被编码器编码和将被解码器解码的预测误差帧的重要区域,而不须在编码视频数据中包括关于这些预测误差帧的重要区域的地址数据。
根据本发明的这一方面的一个优选视频数据编码方案利用可用于编码器和解码器中的预测帧的结构特征,和在编码器中估计并传输到解码器的运动矢量的特性,以确定将被编码器编码的预测误差帧的区域,和在解码器中确定包容在编码视频数据中的预测帧的区域。
优选的,为了对一帧视频数据进行编码,预测误差帧被分割为多个区域。预测帧以类似于预测误差帧被分割的方式被分为一些区域,这样对于预测误差帧中的每一区域,在预测帧中都存在一个相应的区域。解码器以类似于编码器的方式分割预测帧,并将来自所接收的编码数据的预测误差帧再存入包含在所接收的编码数据中的预测误差帧的每一个相应区域。这些帧可被分割为预定大小和形状的区域或被分割为大小和形状可变的区域。将帧分割为区域可以自适应地完成。每一个区域的大小和形状可以根据局部运动动作和/或根据预测帧的局部结构特征,如根据预测帧的局部不连续性的程度。
优选的,在编码器已经以一种预定或自适应的方式完成帧的分割之后,编码器采用一种预定的顺序规则(sequence rule)来确定必须被编码的预测误差帧的区域。作为这种顺序规则的一个例子,对将被编码的区域,编码器逐行扫描这些由帧分割所得的区域的排列并对所有将被编码的区域以它们被发现的顺序进行编码。于是,解码器可以根据预测帧的分割,根据由预测帧和/或预测误差帧的区域所依据进行编码的运动矢量所提取的信息,以及根据所述顺序规则来恢复来自所接收的预测误差数据中的预测误差帧的每一个相应区域。
另外,根据本发明的第二方面,预测误差帧的所有区域或所选区域采用自适应编码方案进行编码。所选区域可以是根据本发明的第一方面确定为重要的预测误差帧的区域。自适应编码方案可考虑到将被编码的各个预测误差帧区域的不同特性种类。自适应编码方案的例子包括根据一些码本的分类矢量量化方案,每一码本是为一个所述特性种类设计的,正交变换,匹配追踪技术(matching pursuit techniques)等,所有这些技术都是本技术领域所公知的。将分类矢量量化方案用于视频数据的编码例如在信号处理,Elsevier,卷26,1992,P265,H.-H.-Chen,Y.-S.Chen和W.-H.Hsu所著的“通过矢量量化的低速率顺序图象”或在IEEE关于图象处理的国际会议ICIP 1994,卷2,P452,K.Zhang,M.Bober和J.Kittle所著的“用于顺序压缩的稳定运动估计和多级矢量量化”和在IEEE关于声学、语音、信号处理的国际会议ICASSP’94,卷5,P417,S.Liu所著的“块大小可变的基于VQ的运动补偿视频编解码的速率失真分析”中可以得知。根据本发明,当将自适应编码方案,例如分类矢量量化,正交变换,匹配追踪方案用于对预测误差帧的区域进行编码时,可以通过由可用于编码器和解码器中的预测帧的特性提取出分类信息(例如编码方案选择信息)来实现比特率的减少,这样编码视频数据不须包括分类信息。当采用预测帧的区域的自适应编码时,两者择一的或除了可以由与将被编码的预测误差帧的区域相应的预测帧的区域中提取出分类信息以外,运动矢量的特性可用于对预测误差帧的每一编码区域进行分类,例如码本选择,而不须在编码视频数据中包括分类信息。
根据本发明的这一方面,所提取的分类信息可以指示一个用于对预测误差帧的各个区域进行编码的特定编码方法,或可以指示一组不同的编码方法。根据本发明这一方面的一种有利实施,分类信息被用于为每一个将被编码的区域在许多区域编码器中选择一个区域编码器,每一个都适合于相应特性种类的特殊特性。每一个区域编码器顺序地具有一组可用的不同编码方法,视频编码器在这组方法中选择最佳方法并将编码方法选择信息发送给视频解码器。如果编码方法选择信息被熵编码(entropy encode),则发送给视频解码器的编码方法选择信息量可利用每一个区域编码器的编码方法选择的非归一化概率分布而保持很低。如果对于每一个特性种类,即对于每一个区域编码器,一个或很少数量的编码方法非常可能被选择,则当具有较少可能性的编码方法的选择可用较多数量比特指示给视频解码器时,这些一个或很少数量的编码方法的选择可以用较少数量比特指示给视频解码器。
在所选视频编码器中提供所有编码方法中的一个特定编码方法的选择可以由视频编码器根据视频解码器不可用的信息,例如根据一个初始视频数据帧输入,根据在预测误差帧的将被编码的区域中的像素值的各个结构等来实现。于是,视频解码器可用于根据可用于视频解码器的预测帧的特性和根据由视频编码器所传输的编码方法选择信息来选择区域编码器。
本发明的这一方面的实施是有利的,在根据预测帧的特性和/或运动矢量域的特性的分类留下一些关于预测误差帧的各个将被编码的区域的特性的不可靠性的情况下,它可以改善视频编码器和视频解码器的性能。利用本实施,甚至在这些情况下,在很大数量的不同编码方法中的一个高自适应性和精确的编码方法也可以很少数量的选择信息传送给视频解码器。
在考虑每一个区域编码器的编码方法选择概率分布之后,编码选择信息最好在发送给视频解码器之前进行墒编码。一个等效的修正在每一个区域编码器的许多编码方法中提供一个缺省编码方法,而视频编码器检查根据分类选择的区域编码器的缺省编码器方法是否满足于用于对预测误差帧的各个区域进行编码的合适标准。如果所选区域编码器的缺省编码器方法被发现运作是满意的,则视频编码器不传输编码方法选择信息给视频解码器,而视频解码器采用相应于视频编码器所采用的缺省编码方法的缺省解码方法。否则,视频编码器无视该缺省编码方法而选择一个适合的编码方法,并将相应的选择信息发送给视频解码器。
随后,将参照附图说明本发明的最佳实施例。
图1为根据本发明的运动补偿视频编码器的一个实施例的示意图。在该图中,参考标记1表示用于由视频帧输入I(x,y)和预测帧P(x,y)之间的差别来计算预测误差帧E(x,y)的装置。参考标记2表示预测误差编码块,参考标记3表示预测误差解码块。参考标记5代表用于由预测帧P(x,y)和解码的预测误差帧E*(x,y)来计算再建的视频帧I*(x,y)的计算装置。参考标记6表示一个用于保存再生的视频帧I*(x,y)和用于提供运动补偿预测器7所用于计算预测帧的参考帧R(x,y)的帧存储器。8表示用于估计运动矢量和提供运动矢量给MC预测块7的运动估计器。4表示用于接收由预测误差编码器2所输出的预测误差数据和运动估计器8所输出的运动矢量和用于多路复用预测误差数据和运动矢量以传输给一个解码器的多路复用器。
本发明的预测误差编码块2不仅被用于接收装置1所输出的预测误差帧E(x,y),还被用于接收预测帧P(x,y)和运动估计器8所估计的运动矢量。此外,预测误差解码块3不仅接收预测误差编码块2所输出的预测误差数据,还接收预测帧P(x,y)和运动估计器8所估计的运动矢量。
图1的视频编码器运作如下。对于每一帧输入的视频数据I(x,y),编码器都预测一个预测帧P(x,y),并比较预测帧P(x,y)和实际输入的视频帧I(x,y)。这一比较由计算装置1来完成。于是,预测误差帧E(x,y)被提供给块2和经过预测误差编码以产生压缩的预测误差数据,并传输给解码器。对预测误差帧E(x,y)的压缩可能导致一些信息的丢失。在考虑到视频解码器(图1中未示)是由视频编码器接收压缩的预测误差数据,而不是预测误差帧E(x,y),则视频解码器将使对实际视频帧的预测不是基于预测误差帧E(x,y),而是基于由对压缩预测误差数据解码而得的再生的预测误差帧E*(x,y)。为了避免在编码器和解码器中的预测帧P(x,y)之间的偏差,视频编码器以与视频解码器获得再生预测误差帧E*(x,y)相同的方式对预测误差编码器2所输出的预测误差数据进行编码,并且预测不是基于实际视频数据帧I(x,y),而是基于对应于视频数据帧的再建视频数据帧I*(x,y)完成的,该视频数据帧可以由视频解码器根据块2所输出的预测误差数据再建。
运动估计器8分析来自输入视频数据I(x,y)的一个顺序的场景运动,并估计描绘在后来的视频帧中每一个像素的位移的运动矢量。这些估计的位移可被MC预测器7用于根据所估计的位移修正当前再建视频帧I*(x,y)以到达下一帧I(x,y)的预测帧P(x,y)。
预测误差编码和解码以及根据运动估计产生一个预测帧是本技术领域所公知的。许多关于运动估计和运动补偿的文献已被公布。这些主题的细节是很容易得知的,因此没有必要详细讨论这些与本发明没有直接联系的问题。
预测误差编码器2通过将预测误差帧分割为多个区域来对预测误差帧E(x,y)进行编码。此外,预测误差编码器2接收和分析预测帧P(x,y),如图1中各自的虚线所示。另外,预测误差编码器2接收关于由运动估计器8所估计的运动矢量的信息,如图1中各自的虚线所示。由此,预测误差编码器2处于一个判定预测误差帧E(x,y)的哪些区域必须被编码,预测误差帧的哪些区域不包含重要的信息和不须传输给解码器的位置。预测误差编码器2根据对预测帧的特性的分析,和根据对所估计的运动矢量的分析来完成这一判定,预测帧和运动矢量在接收编码视频数据的解码器中也都可用。本发明的预测误差编码器2利用在预测误差帧E(x,y)中的重要信息集中在视频场景中运动的物体的轮廓边沿。当解码器不知道运动物体的精确轮廓时,可用于编码器和解码器中的预测帧P(x,y)的结构特征,例如图象亮度的不连续性、边缘和类似物,与这些轮廓的位置大致吻合。因此,预测误差编码器可以由预测帧P(x,y)的结构特征判定预测误差帧的重要区域的大致位置。除了根据预测帧P(x,y)的结构特征判定预测误差帧的重要区域之外,预测误差编码器2的这一实施例逐帧地分析了描述由于在场景中的运动引起的每一像素位移的运动矢量的特性,以判定将被传输给解码器的预测误差帧的重要区域。如果重要区域的判定是基于预测帧的结构特征,例如边缘和不连续性,和基于运动矢量,则预测误差帧的那些区域可以判定哪些描述了运动物体的轮廓的运动。可选地,预测误差帧的重要区域的这些判定可以基于预测帧的结构特征,或基于运动矢量。在这些较不优选的例子中,仍可能判定预测误差帧的一些不重要区域。
此外,本发明的预测误差编码器2还对预测误差帧E(x,y)的每一区域采用一个自适应编码方案以判定是否重要。根据结构特征的种类,例如预测帧P(x,y)的轮廓方向来为每一个区域选择各自的编码方案。因为预测帧P(x,y)在视频编码器和视频解码器中都可用,所以根据这些特性选择一个适应的编码方案是有利的,即使在编码预测误差数据中未包含另外的选择信息时,视频解码器仍能为每一个将被编码的区域选择一个与视频编码器所选择的各自的编码方案匹配的适当的解码方案。
因此,本发明的预测误差编码器2通过使用用于判定预测误差帧En(x,y)的将被编码的重要区域和用于为预测误差帧E(x,y)的每一重要区域选择一个适应的编码方案的信息来利用了在视频编码器和视频解码器中的预测帧Pn(x,y)和运动矢量的可用性,而不须传输关于预测误差帧E(x,y)的重要区域的位置的地址信息或关于所选择的编码方案的信息。
图1中的预测误差解码器3是有利的,但对于原理原因而言不是必需的。如果用于压缩预测误差帧E(x,y)的重要区域的编码方案导致了一些信息丢失,通过使运动矢量的估计和视频帧的预测不是基于实际输入帧,而是基于由一个与视频解码器所执行的解码操作相同的解码操作所得的再生视频帧I*(x,y),这些丢失的信息的一部分可以再传输给视频解码器。这一原理是本技术领域所公知的,因此,这里将省略预测误差解码器3的重要性的进一步讨论。在看到图1的预测误差解码器3与视频解码器中相应的预测误差块的相似性,随后在根据本发明的视频解码器的一个实施例的描述背景中将给出预测误差解码器3的结构性解释和运作细节。
多路复用器4是一个用于将由预测误差编码器2输出的预测误差编码数据和由运动估计器8输出的运动矢量数据多路复用的可选性部件。如果预测误差数据和运动矢量的各自传输信道可用,则可以省略多路复用器4。
图2为根据本发明的预测误差编码器的一个实施例的详细示意图。在图2中,21表示一个用于将预测帧P(x,y)分割为多个区域的块。22表示一个用于分析在预测帧P(x,y)的每一个区域中的空间不连续性的块。在这个不限制本发明范围的特定实施例中,该块包括对由P(x,y)的帧分割所产生的每个区域进行滤波操作的定向高通滤波器。用于实施块22的另一个选择包括边缘检测算法或对图象亮度值赋值的算法。块24被用于根据预测帧P(x,y)的分割将该预测误差帧E(x,y)分割为多个区域。
块25代表为由分割预测误差帧En(x,y)所得的每个区域决定该区域是否重要区域和将被编码,或该预测误差帧E的区域是否不是重要区域和因此将不被编码的判定装置。为了判定每个区域的重要性,块25接收块22中的定向高通滤波器的输出,此外还接收与将被判断和确定重要性的各个区域相应的运动矢量。块25将每一块中滤波器输入的绝对值相加,并将所得的和与第一预定阈值相比较。由此,块25可以判定预测帧P的各个区域是否具有不连续性的重要程度。此外,块25计算各个区域的运动矢量的幅度,并将运动矢量的最大幅度与第二阈值相比较以判定在该帧的各个区域中的运动动作是否重要。如果发现不连续性程度和运动动作都为重要,则块25判定该相应区域为重要,如果如果发现不连续性程度不重要或运动动作不重要,则块25判定该相应区域为不重要。
此外,块25将一个预定的顺序规则(sequence rule)用于将预测误差帧E的重要区域输出给块26,以进行压缩和传送给视频解码器(本图中未示)。特别地,在给特定实施例中,块25将由块21的分割操作所产生的所有区域排列为区域的一个排列,并逐行扫描这一排列以发现重要区域。然后,每个被发现的重要区域随即被输出到块26。由此,视频解码器可以对所接收的预测误差帧的区域定位,而不须接收关于相应位置的信息,这在随后将进行解释。预测帧P的帧分割是由块21以与块24分割预测误差帧E相同的方式进行的,这样预测误差帧E的每一个区域的重要性判定是基于该区域中预测帧的特性。换句话说,块21和块24所执行的帧分割是以这样一种方式进行的,使得预测误差帧和预测帧的相应区域包括相同的一组像素坐标(x,y)。该预测帧P和预测误差帧E被分割为具有相同块大小,例如4x4像素或8x8像素,的区域。应注意的是,分割可以依照预定的图案或可以基于分为不规则形状区域的预定图象的分裂(segmentation)。在这些编码器提供描述当前编码帧分裂为任意形状区域的信息给解码器的方案中,前述的分割可以基于这一分裂。
参考标记26表示一个用于对预测误差帧E将被编码的每个区域,即块25判定为重要的每个区域,进行压缩和编码。自适应区域编码器26包括一个分类块23,在本特定实施例中不限制本发明范围的该分类块将预测帧的每个重要区域分类为一个种类:无连续性;水平连续性;垂直连续性;左对角斜线连续性;右对角斜线连续性;不定向连续性。关于预测帧E的每个区域的分类是基于预测帧P的各个区域的定向特性而进行的,这些特性在块22中通过不连续性分析器进行分析和提取。参考标记28表示一个用于根据预测帧E的各个区域的分类选择在许多可选区域编码器271,…,27n中一个区域编码器,用以对预测误差帧E的各个区域进行编码。29表示用于选择所选区域编码器的输出和用于将所选区域的输出与视频编码器的输出相连接以传输到视频解码器的选择器。
图3显示了预测帧Pn的一个区域,为了图示说明图2中定向高通滤波器的运作。图3中所打点的每个块代表在预测帧P的预测区域中的一个像素。P(x,y)代表像素坐标为(x,y)的各个像素的亮度值。
图2中的块22在每个分割块中通过对每个像素坐标(x,y)将在预定方向,关于像素坐标(x,y)彼此相对的相邻像素的亮度值相减来提取出不连续性信息。特殊地,块22包括为相应区域的每个像素位置计算在位置(x,y+1)的一个垂直相邻像素的亮度值P(x,y+1)与对于位置(x,y)与在位置(x,y+1)处的所述像素相对的另一个垂直相邻像素位置(x,y-1)的亮度值P(x,y-1)之间的差别FH(x,y)的水平高通滤波器。此外,块22包括为每个像素位置计算在位置(x+1,y)的一个水平相邻像素的亮度值P(x+1,y)与,关于位置(x,y)与位置(x+1,y)处的所述像素相对的另一个水平相邻像素位置(x-1,y)的亮度值P(x-1,y)之间的差别FV(x,y)的垂直高通滤波器。
所产生的水平和垂直差别FH(x,y)和FV(x,y)分别代表每个像素位置(x,y)在垂直和水平方向上的空间不连续性。
块22将预测帧P的各个区域的每个像素的水平和垂直不连续性值FH(x,y)和FV(x,y)提供给块25,块25通过将相应区域中所有FH(x,y)和FV(x,y)的绝对值相加以判断在相应区域中发现的不连续性的重要性。如果所得的和大于预定的阈值,则块25判定预测帧P的相应区域包含相当显著的不连续性,否则判定预测帧P的相应区域未包含相当显著的不连续性。
图2中的分类器23接收由定向高通滤波器22输出的平和垂直不连续性值FH(x,y)和FV(x,y),并将这些值用于所讨论的每个区域,以根据在该区域中不连续性的结构,将该区域分为六个不同类别中的一个类别。图4显示了类别a到f中每一种类别的典型代表。如果预测帧的一个区域未显示出任何显著的不连续性,则该预测帧的该区域被分类属于类别a,因为在这一区域中,亮度值是逐渐变化的,或就没有变化。一个类别b的典型代表是显示有水平方向的不连续性的一个区域,例如一个水平边缘。类别c代表显示有垂直方向的不连续性的一个区域,例如垂直边缘。类别d和e代表具有对角方向不连续性的区域,例如对角边缘。类别d揭示了右对角斜线的不连续性,而类别e覆盖了左对角斜线的不连续性。最后,类别f的典型代表是一个包含非定向连续性的预测帧的一个区域,例如纹理。
定向不连续性类别b到e中每一个都可以根据该区域中相应不连续性的位置进一步再分为一些子类别。举类别b为例,第一子类别b1覆盖了在该区域的上半部分中水平不连续性,而子类别b2覆盖了在该区域的中间部分中水平不连续性。子类别b3覆盖了位于该区域的下班部分中的水平不连续性。
相似的,对于类别c、d和e,这些类别的再分分别根据不连续性的垂直和对角位置,由图4明显可见。应注意的是,类别数量当然可以,例如根据可选区域编码器271至27n和用于预测帧区域压缩的相应方法的数量而改变。同样,许多不同的算法也可以用于根据在该区域的滤波器输出值来对每一区域进行分类。这些算法的例子例如可由M.K.Jain,Prentice Hall International 1989,pp.347-357的“数字图象处理的基本原理”中可以得知。
根据图2中块25所判定的预测帧P每一区域的重要性的类别,于是,分类器23在可选区域编码器271至27n中选择一个适当的区域编码器,例如一个适当的矢量量化器,用于对预测误差帧E的所讨论区域进行自适应编码。在此特殊的实施例中,对于每一个类别或子类别,提供了适应于各个类别或子类别的成员的特定统计特性的专用矢量量化器。就此而言,矢量量化器对于具有一些信息损失的压缩信号也是已有技术。矢量量化器VQ1…VQn中每一个矢量量化器用在属于这个特定矢量量化器的码本中所发现的最佳近似值来代替预测误差帧En的一个区域。所述码本是最可能在相应类别或子类别中产生的一组很少代表,矢量量化器输出一个系数给在属于这个特定矢量量化器的码本中的最佳匹配码矢量是足够的。
根据本发明,预测误差帧的区域的分类是基于相应的预测帧区域。该预测帧在视频解码器中也可用,这样编码视频数据中不必包含分类信息。而是,该分类信息可以由视频解码器通过执行与编码器所执行的分类操作相类似的分类操作来提取出。
这里应注意的是,预测误差帧区域的其他压缩方法可以采用,例如正交变换技术(DCT,KLT)或匹配追踪技术。
随后将讨论根据本发明的运动补偿视频编码器的另一个实施例。本实施例与上述视频编码器的第一实施例相类似,除了下列部分。
图5显示了适用于根据本发明的视频编码器的第二实施例中的可选区域编码器271至27n中的每一个的一个实施例。如图5所示,根据本发明,可选区域编码器271至27n中的每一个包括多个用于执行多个不同编码方法的编码器531至53k。可选区域编码器271至27n中的每一个另外还包括一个用于在多个相应的编码器531至53k中选择一个根据一个适当标准最适合的编码器以对预测误差帧的一个相应区域进行编码。根据本特定实施例的选择控制器51不限制本发明判定的范围,其中可用于由分类器23所选的可选区域编码器的编码方法使的对预测误差帧E的相应区域可以最低编码误差进行编码。为此,选择控制器51接收预测误差帧E以便可以访问由分类器23所选的可选区域编码器的可用编码器531至53k中每一个所引起的编码误差。如果选择控制器51发现编码器531至53k中有多于一个的编码器表现满意,选择控制器51在这些编码器中选择以最低比特数量实现令人满意的性能的编码器。选择控制器51输出选择信息给选择器54以驱动所选的编码器对预测误差帧的将被编码的相应区域进行编码。此外,选择控制器51输出的选择信息被提供给墒编码器52,用于对选择信息进行墒编码。此外,选择信息控制选择器55以将编码器531至53k中所选的一个编码器一多路复用器56的一个输入端相连以将墒编码的选择信息和所选编码器输出的压缩预测误差数据多路复用。多路复用器56的输出是可选区域编码器271至27n的一个相应编码器的输出。
在根据本发明的视频编码器的该实施例中,图2所示的分类器23基于在预测帧的与将被编码的预测误差帧的各自区域相应的每个区域中的图象亮度的变化来对预测帧P的正方形区域进行分类。在本特定实施例中,图象亮度值的变化量由不连续性分析器22如下计算:
其中p(x,y)是在预测帧的各个区域的坐标(i,j)处的像素的亮度值,M是在正方形区域的每行和每列的像素数量,而q是在各个预测帧区域中像素的亮度值的平均值。
于是,不连续性分析器22为在预测帧各个区域中的多个预定像素群计算一个群运动量(cluster activity measure)CAM。每个像素群对应于一个特定的类别,该特定类别可由分类器23来区别。图6以举例的方式显示了相应于13个可由分类器23区别的不同特性类别的13个不同像素群。属于群1至13的相应群的像素在图6中以阴影显示。
在每一个群中,群运动量CAM在本特定实施例中计算如下:
对于在相应区域中位置(i,j)处的每一个像素,通过分析四个包含像素(i,j)的2x2像素子块来计算像素运动量pam(i,j)。图7中显示了对于像素(i,j)的这些子块的位置。于是,计算在每个子块中的像素值的变化。这些变化用varlu,varru,varll和varrl来代表。如果一个子块像素在该相应区域的外部,即当位置(i,j)是该区域的边界像素时,则该子块的变化被认为为0。则在该位置(i,j)的像素运动量为:
pam(i,j)=max(varlu,varll,vartu,varrl) (2)对于每一群(a),该群运动量cam(a)可计算如下
在该式中,Ca代表在群a中所有像素的像素运动量的和与群a的归一化因子w(a)的乘积。对于图6所示的群a=1至a=13,w(a)的值可以选择如下
在本特定实施例中,分类器23区别14个类别,而每一个将被编码的区域依照这14个类别中的一个,根据在预测帧的各个区域中的图象亮度的主要不连续性的位置进行分类。13个类别分别对应于图6所示的13个群中的一个。图6中未显示第14个类别,它是被分配给未包含任何显著的不连续性的区域。
相应于将被编码的预测误差帧的一个区域的预测帧的区域的分类的操作可以如下所述地进行。如果根据式(1)计算的区域的变化小于预定阈值,则该区域被认为不包含显著的不连续性,而分类器23将类别14分配给该区域。另一方面,如果如果根据式(1)计算的区域的变化大于所述预定阈值,则群a被发现,它的群运动量cam(a)是最高的,指示主要不连续性在群a中,而分类器23将类别a分配给该区域。根据该分类,分类器23选择可选区域编码器271至27n中与该类别相应的一个区域编码器。
根据该特定实施例,可选区域编码器271至27n中的每一个包括一组13个编码器的一个子集编码器531至53k,该13个编码器中每一个适用于图6所示的13个像素群。特殊地,该13个编码器中每一个适用于在其相关的像素群上执行二维离散余弦变换。每个可选区域编码器271至27n的多个编码器531至53k包括适用于相应可选区域编码器的类别的相应编码器,还包括适用于与相应可选区域编码器相关的类别的编码器。对于每一类别,所有其他可选区域编码器包括一组相同的编码器531至53k。通常,对于一个特定类别,如果一个区域分入一个不同类别的概率大于分入相应类别的概率,不可以忽略的,则该不同类别是相关的类别。在该特定实施例中,已发现与类别1相关的类别是类别7,9和13。与类别7相关的类别是类别1,4和13。与类别11相关的类别是类别11和13。与类别13相关的类别是其他所有类别。其他所有类别的相关类别直接的遵循对称性考虑。
根据本发明的视频编码器的该实施例利用一个不是与由分类器23所确定类别相对应的编码器的编码器比相应于该类别的编码器运作更好的概率非常低,同时相应于该类别的编码器运作性能最好的概率很高这一事实,这样传输给视频解码器的编码方法选择信息量很低,并可以只用很少的比特数来表示。对该选择信息进行编码是由墒编码器52基于每个可选区域编码器的相应选择概率以一种公知的方法执行的。
一般地,在考虑到基于相应预测帧区域的预测误差帧的分类中所包含的不确定性后,选择相关的类别。应注意的是,当在本实施例中,每个相关类别相应于一个可选区域编码器的类别时,存在提供其他相关类别的概率。例如,一个特定的类别可以具有与其他任何类别不同的相关类别。
图8显示了根据本发明的视频解码器的第一实施例。该视频解码器适用于以和视频编码器相同的方式产生一个预测帧P。此外,该视频解码器从由视频编码器所用来对预测误差帧编码的预测帧P中提取出相同的信息,并将该提取的信息用于对所接收的信息解码和用于再生预测误差帧E*。
特殊地,图8的解码器包括一个用于接收来自视频编码器的编码视频数据和用于对所接收的数据解复用为预测误差数据和运动矢量的解复用器(demultiplexer)。块32表示一个用于接收解复用的预测误差数据和用于由所接收的编码预测误差数据再生预测误差帧E*的预测误差解码器。33表示用于由预测帧P(x,y)和再生的预测误差帧E*计算再生的视频帧I*的计算装置。该再生的视频帧I*保存在帧存储器34中,并进而由视频解码器作为解码视频数据输出。35表示用于由保存于帧存储器34中用作参考帧R和基于所接收的来自视频编码器的,和描述在当前帧I中的估计像素位移的运动矢量构建预测帧P的运动补偿预测器。MC预测器35使用参考帧R和这些估计的像素位移来获得预测帧P(x,y)。
预测误差解码器32不仅接收编码的由视频编码器发送的预测误差数据,还接收来自MC预测器35的预测帧P和由视频编码器发送的运动矢量,并基于预测帧P和基于运动矢量来执行预测误差的解码。这可以由图8中的虚线表示。
基于预测帧P和基于运动矢量,预测误差解码器32处于这样一种位置,利用了在预测误差帧E中的显著的误差大致集中处于运动动作明显位置的预测帧的轮廓边沿,并基于视频编码器的只有预测误差帧的这种明显区域被编码的特性来判定预测误差帧E的哪个区域由视频编码器传输。因为MC预测35所产生的预测帧P对应于在视频编码器中由MC预测器7所产生预测帧P,根据本发明的这一实施例的该视频解码器可以执行预测误差解码,而不须接收关于预测误差帧的重要区域的位置的信息。额外地或可选择地,预测误差解码器32可以执行自适应解码,而不须提取出关于每个编码的预测误差帧的信息,因为解码器可以以与视频编码器将预测帧P用于对预测误差帧的将被编码的区域进行分类相同的方式从预测帧P中提取出这一信息。
图9显示图8的预测误差编码器32的详细示意图。在图9中,41表示一个用于将由MC预测器35所提供的预测帧P分割为多个区域的装置。预测帧的分割以与在视频编码器中相同的方式进行。换句话说,帧分割装置41完全对应于在图1的预测误差编码器中的帧分割装置21的功能。
参考标记42表示一个不连续性分析器,其功能对应于在视频编码器中提供的不连续性分析器22的功能,关于块22的相应的解释也适合于块42,因此这里就不在重复。图9中的块44表示用于判定预测误差帧中的哪些区域已被视频编码器编码并包含在压缩的预测误差数据中。为此,判定装置44执行一个类似于图2中块25所执行的重要区域的判断与决定的操作。如果视频解码器被设计用于与上述的视频编码器的第一实施例一起运作,则对于块41所提供的预测帧Pn的每一区域的每一像素位置(x,y),块44接收由不连续性分析器42输出的水平和垂直差别FV(x,y)和FH(x,y),并通过将在各个区域的所有位置(x,y)处的FV(x,y)和FH(x,y)的绝对值相加来判断在每个区域中所发现的不连续性的程度。根据图2中的块25所实施的判断,如果所得的和大于与块25所采用的预定阈值相对应的预定阈值,块44判定预测帧P的相应区域包含显著的不连续性,否则块44判定该相应区域未包含显著的不连续性。
此外,块44还接收视频编码器所传输运动矢量。基于此,块44通过计算相应区域的运动矢量的幅度并将最大幅度与和图2中的块25对于相应操作所采用的所述第二阈值相对应的阈值相比较来判断每个区域的运动动作量。块25基于块25所采用的相同的标准来判定该预测帧Pn的一个区域是否重要,即如果在该区域中不连续性的程度和运动动作量都被发现为显著,则块25判定该相应的区域为重要。
块44将一个预定的顺序规则应用于将所接收的预测误差数据的各部分分配给相应的区域,该规则对应于在视频编码器中块25所用于输出预测误差帧的重要区域的预定顺序规则。特殊地是,在该特定实施例中,块44以与在视频编码器中块25排列区域相似的方式将块425执行的分割操作所得的所有区域排列为区域的一个组合,并逐行扫描该区域组合以寻找重要的区域。对应于预测误差帧的一个区域的每一个所接收的预测误差数据的部分被分配给重要区域,所述区域排列中的顺序对应于接收相应部分的顺序。这种操作的一个例子如图10a和10b所示。图10a在视频编码器中块21和在视频解码器中块41所执行的分割操作产生的区域的组合105。该组合包括四列0-3和四行0-3。该组合105中阴影部分代表重要区域,而非阴影部分为不重要区域。
图10显示了从视频编码器接收的一个预测误差数据流。该数据流由部分101至104构成,每一部分包括预测误差帧的相应区域的预测误差数据。在本例子中,块44在组合105上进行的逐行扫描操作导致了重要组合的随后的顺序:(0,1);(1,2);(2,3);(3,2)。该顺序对应于在预测误差数据中的各部分的顺序。基于这些相应的顺序,块44可以将预测误差数据的每个接收的部分101至104分配给它的相应区域。T表示时间轴。
图9中参考标记43表示接收由块42输出的不连续性信息的分类器。在此实施例中,分类器43接收由定向高通滤波器42输出的垂直和水平不连续性值FV(x,y)和FH(x,y)方法,并执行与在视频编码器中所提供的分类器23所执行的类似操作。因此,关于块43以与块23所执行的分类操作类似的方式执行的分类操作的解释在此就不再重复。
参考标记45表示一个由分类器43所控制的选择器,用于根据分类器所判定的特性类别为由块44输出的压缩预测误差数据的每一部分选择一个适当的解码器。由此,自适应区域解码器48可以根据预测帧Pn的各个区域的类别执行一个与在视频编码器中块26所执行的编码操作相逆转的操作。图9中自适应区域解码器48的每个可选区域解码器471至47n对应于视频编码器中可选区域编码器271至27n中的一个。如果采用矢量量化器,它包括一个适应于将被每个区域解码器471至47n解码的区域类别的码本,而每个区域解码器471至47n适应于在其输入端接收一个给其码本的索引(index),该码本与相应的区域编码器所用的码本是相同的,并由对应于所接收索引的码本读出矢量。当然,除了矢量量化或作为可选择的,该预测误差编码器和解码器可以合并其他的自适应预测误差编码和解码方案,例如正交变换(DCT,KLT)或匹配追踪技术。
参考标记46表示用于将所选择的区域解码器的输出与预测误差解码器32的输出相连。于是,每个解码区域可在块44判定各个区域为重要的位置处被写入一个预测误差帧存储器(图中为显示),从而再保存预测误差帧E*(x,y)。
图11显示了根据本发明的第二实施例的视频解码器的一个可选区域解码器。根据第二实施例的视频解码器适应于与上述根据第二实施例的视频编码器一起使用。根据第二实施例的该视频解码器与根据第一实施例的视频解码器类似,除了根据第二实施例的图9中的不连续性分析器42和分类器43操作分别类似于根据第二实施例的视频编码器的不连续性分析器22和分类器23,这样,这些块的结构和操作的描述再次就不再作重复说明。此外,图11所示的根据第二实施例的视频解码器中的可选区域解码器471至47n不同于第一实施例中的可选区域解码器。
如图11所示,根据第二实施例的视频解码器中的每一个可选区域解码器471至47n包括一个用于对接收的来自第二实施例的视频编码器的压缩预测误差数据进行解复用为编码预测误差数据和熵编码方法选择信息。参考标记62表示接收熵编码方法选择信息的熵解码器。参考标记631至63k表示其中每个都与在相应于各个可选区域解码器的可选区域编码器中的编码器531至53k中的一个相对应的多个解码器。参考标记64和65表示由熵解码器62的输出控制的选择器,用于提供编码预测误差数据给多个解码器631至63k中的一个所选解码器,和用于将所选解码器的输出与相应的可选区域解码器的输出相连。
根据本发明的用于视频数据的编码器和解码器和根据本发明的用于对视频数据编码和解码的方法可以有利地用于各种广泛的应用领域。其中的一个应用领域是一个用于传输视频数据的系统,该系统包括一个根据本发明的编码器,用于传输编码视频数据的装置,和一个根据本发明的用于接收所传输视频数据并输出解码的视频数据的解码器。
另一个有利的应用是一个用于保存视频数据,该系统包括根据本发明用于对视频数据编码的编码器,用于保存编码视频数据的装置,和用于从所述存储装置提取出编码视频数据和用于解码和输出所述提取出的视频数据。
有利地,本发明也可与将被编码的帧的不同区域的不同编码方式合并使用。如果一帧的一些区域经过帧内编码而该帧的其他区域经过运动补偿编码,则本发明可用于这些运动补偿编码区域,和术语“一个视频帧的运动补偿编码”不应理解为限定为该帧的所有区域都是MC编码的情况。
本技术领域的技术人员应该清楚,本发明可以是在视频编解码器中的一个或更多编码方式的基础,其中它可以与现有技术中的编码方式一起使用。当编码区域和编码方案的确定不产生所希望的结果时,编码器可以决定使用一个现有技术的方式。例如,编码器可以推翻编码区域的选择和编码方案的选择,并将此决定传输给该解码器。这可能需要使用别的方式不需要的功能,但它可以判断随后发生的编码决定是否明显更好。