用于对运动矢量进行编码和解码的方法和设备与流程

文档序号:12697278阅读:191来源:国知局
用于对运动矢量进行编码和解码的方法和设备与流程

技术领域

示例性实施例涉及用于对静止图像和运动图像进行编码和解码的方法和设备,更具体地讲,涉及通过预测运动矢量对当前块的运动矢量进行编码和解码的方法和设备。



背景技术:

在编解码器(诸如MPEG-4、H.264或MPEG-4先进视频编码(AVC))中,与当前块相邻的预先编码的块的运动矢量用于预测当前块的运动矢量。这里,先前编码的与当前块的左侧、顶部和右上方相邻的块的运动矢量的中值被用作当前块的运动矢量预测因子(motion vector predictor)。



技术实现要素:

技术问题

需要提供用于产生当前块的运动矢量预测因子的更多样的方法。

解决方案

示例性实施例提供用于对运动矢量进行编码和解码的方法和设备。

有益效果

根据示例性实施例,可提供各种运动矢量预测因子,并且可提高图像压缩效率。

附图说明

图1是根据示例性实施例的用于对视频进行编码的设备的框图;

图2是根据示例性实施例的用于对视频进行解码的设备的框图;

图3是用于描述根据示例性实施例的编码单元的概念的示图;

图4是根据示例性实施例的基于编码单元的图像编码器的框图;

图5是根据示例性实施例的基于编码单元的图像解码器的框图;

图6是示出根据示例性实施例的根据深度的较深层编码单元以及分区的示图;

图7是用于描述根据示例性实施例的编码单元和变换单元之间的关系的示图;

图8是用于描述根据示例性实施例的与编码深度相应的编码单元的编码信息的示图;

图9是根据示例性实施例的根据深度的较深层编码单元的示图;

图10至图12是用于描述根据示例性实施例的编码单元、预测单元和变换单元之间的关系的示图;

图13是用于描述根据表1的编码模式信息的编码单元、预测单元或分区、和变换单元之间的关系的示图;

图14是根据示例性实施例的用于对运动矢量进行编码的设备的框图;

图15A和15B是根据示例性实施例的运动矢量预测因子候选的示图;

图15C至15E是根据示例性实施例的与当前块相邻的具有各种尺寸的块的示图;

图16是示出根据示例性实施例的对运动矢量进行编码的方法的流程图;

图17是示出根据示例性实施例的产生运动矢量预测因子的流程图;

图18A至18C是用于描述根据示例性实施例的确定运动矢量预测因子的参考图;

图19A至19C是用于描述根据示例性实施例的产生运动矢量预测因子候选的参考图;

图20是用于描述根据示例性实施例的以不直接模式产生运动矢量预测因子的方法的示图;

图21是根据示例性实施例的用于对运动矢量进行解码的设备的框图;

图22是示出根据示例性实施例的对运动矢量进行解码的方法的流程图。

最佳模式

根据示例性实施例的一方面,提供了一种对运动矢量进行编码的方法,所述方法包括:对当前画面的当前块执行运动估计,并且基于运动估计的当前块产生当前块的运动矢量,当前块的运动矢量指示在第一参考画面中与当前块相应的区域;确定在当前块之前编码的相邻块中是否存在具有参考第一参考画面的运动矢量的相邻块;执行以下两种产生运动矢量预测因子的处理之一:响应于确定存在具有参考第一参考画面的运动矢量的相邻块,使用确定的参考第一参考画面的相邻块的运动矢量来产生运动矢量预测因子;响应于确定不存在具有参考第一参考画面的运动矢量的相邻块,通过使用参考除了第一参考画面之外的第二参考画面的相邻块的运动矢量来产生运动矢量预测因子;将当前块的运动矢量预测因子和运动矢量之间的差编码为当前块的运动矢量信息。

根据示例性实施例的另一方面,提供了一种对运动矢量进行解码的方法,所述方法包括:从比特流解码指示比特流的当前块的运动矢量预测因子的运动矢量预测因子信息;对当前块的运动矢量与当前块的运动矢量预测因子之间的差进行解码;基于解码的运动矢量预测因子信息来产生当前块的运动矢量预测因子;基于运动矢量预测因子和解码的差来恢复当前块的运动矢量,其中,如果在当前块的相邻块中存在与第一块同样具有参考第一参考画面的运动矢量的块,则运动矢量预测因子是从参考第一参考画面的相邻块的运动矢量产生的运动矢量预测因子,如果在相邻块中不存在具有参考第一参考画面的运动矢量的块,则运动矢量预测因子是从参考除了第一参考画面之外的第二参考画面的相邻块的运动矢量产生的运动矢量预测因子。

根据示例性实施例的另一方面,提供了一种用于对运动矢量进行编码的设备,所述设备包括:运动估计器,对当前画面的当前块执行运动估计,并且基于运动估计的当前块产生当前块的运动矢量,当前块的运动矢量指示在第一参考画面中与当前块相应的区域;运动矢量编码器,确定在当前块之前编码的相邻块中是否存在具有参考第一参考画面的运动矢量的相邻块;通过以下两种方式之一来产生运动矢量预测因子:响应于确定存在具有参考第一参考画面的运动矢量的相邻块,使用参考第一参考画面的相邻块的运动矢量来产生运动矢量预测因子,以及响应于确定不存在具有参考第一参考画面的运动矢量的相邻块,通过使用参考除了第一参考画面之外的第二参考画面的相邻块的运动矢量来产生运动矢量预测因子;将当前块的运动矢量预测因子和运动矢量之间的差编码为当前块的运动矢量信息。

根据示例性实施例的另一方面,提供了一种用于对运动矢量进行解码的设备,所述设备包括:运动矢量解码器,从比特流解码指示比特流的当前块的运动矢量预测因子的运动矢量预测因子信息,并对当前块的运动矢量与当前块的运动矢量预测因子之间的差进行解码;运动补偿器,基于解码的运动矢量预测因子信息来产生当前块的运动矢量预测因子,并基于运动矢量预测因子和解码的差来恢复当前块的运动矢量,其中,如果在当前块的相邻块中存在与第一块同样具有参考第一参考画面的运动矢量的块,则运动矢量预测因子是从参考第一参考画面的相邻块的运动矢量产生的运动矢量预测因子,如果在相邻块中不存在具有参考第一参考画面的运动矢量的块,则运动矢量预测因子是从参考除了第一参考画面之外的第二参考画面的相邻块的运动矢量产生的运动矢量预测因子。

具体实施方式

以下,将参照附图更充分地描述示例性实施例,其中,示例性实施例显示在附图中。

图1是根据示例性实施例的视频编码设备100的框图。

视频编码设备100包括最大编码单元划分器110、编码单元确定器120和输出单元130。

最大编码单元划分器110可基于图像的当前画面的最大编码单元对当前画面进行划分。如果当前画面大于最大编码单元,则当前画面的图像数据可被划分为至少一个最大编码单元。根据示例性实施例的最大编码单元可以是具有32×32、64×64、128×128、256×256等尺寸的数据单元,其中,数据单元的形状是宽和高为2的平方(大于8)的方形。图像数据可根据所述至少一个最大编码单元被输出到编码单元确定器120。

根据示例性实施例的编码单元可由最大尺寸和深度表征。深度表示编码单元从最大编码单元开始被空间划分的次数,随着深度加深,根据深度的较深层编码单元可从最大编码单元被划分到最小编码单元。最大编码单元的深度是最高深度,最小编码单元的深度是最低深度。由于与每个深度相应的编码单元的尺寸随着最大编码单元的深度加深而减小,因此与较高深度相应的编码单元可包括与较低深度相应的多个编码单元。

如上所述,根据编码单元的最大尺寸将当前画面的图像数据划分为多个最大编码单元,每个最大编码单元可包括根据深度划分的较深层编码单元。由于根据示例性实施例的最大编码单元根据深度被划分,因此包括在最大编码单元中的空间域的图像数据可根据深度被分层地分类。

可预先确定编码单元的最大深度和最大尺寸,其中,所述最大深度和最大尺寸限制最大编码单元的高度和宽度被分层划分的总次数。

编码单元确定器120对通过根据深度划分最大编码单元的区域而获得的至少一个划分的区域进行编码,并根据所述至少一个划分的区域确定输出最终编码图像数据的深度。换句话说,编码单元确定器120通过根据当前画面的最大编码单元以根据深度的较深层编码单元对图像数据进行编码并选择具有最小编码误差的深度,来确定编码深度。确定的编码深度和根据确定的编码深度的编码图像数据被输出到输出单元130。

基于与等于或低于最大深度的至少一个深度相应的较深层编码单元对最大编码单元中的图像数据进行编码,并基于每个较深层编码单元来比较对图像数据进行编码的结果。可在比较所述较深层编码单元的编码误差之后选择具有最小编码误差的深度。可针对每个最大编码单元选择至少一个编码深度。

随着编码单元根据深度被分层划分并随着编码单元的数量增加,最大编码单元的尺寸被划分。另外,即使编码单元在一个最大编码单元中相应于相同深度,仍通过单独测量每个编码单元的图像数据的编码误差来确定是否将相应于相同深度的每个编码单元划分为更低深度。因此,即使当图像数据被包括在一个最大编码单元中,图像数据也根据深度被划分为区域并且在一个最大编码单元中编码误差会根据区域而不同,因此,编码深度会根据图像数据中的区域而不同。因此,可在一个最大编码单元中确定一个或多个编码深度,并可根据至少一个编码深度的编码单元来划分最大编码单元的图像数据。

因此,编码单元确定器120可确定包括在最大编码单元中的具有树结构的编码单元。根据示例性实施例的具有树结构的编码单元包括最大编码单元中所包括的所有较深层编码单元中与确定为编码深度的深度相应的编码单元。可在最大编码单元的相同区域中根据深度分层地确定编码深度的编码单元,并可在不同区域中独立地确定所述编码深度的编码单元。类似地,当前区域中的编码深度与另一区域中的编码深度可被独立地确定。

根据示例性实施例的最大深度是与从最大编码单元到最小编码单元的划分次数相关的索引。根据示例性实施例的第一最大深度可表示从最大编码单元到最小编码单元的总的划分次数。根据示例性实施例的第二最大深度可表示从最大编码单元到最小编码单元的深度级别总数。例如,当最大编码单元的深度是0时,最大编码单元被划分一次的编码单元的深度可被设置为1,最大编码单元被划分两次的编码单元的深度可被设置为2。这里,如果最小编码单元是最大编码单元被划分四次的编码单元,则存在深度0、深度1、深度2、深度3、深度4这5个深度级别,因此,第一最大深度可被设置为4,第二最大编码深度可被设置为5。

可根据最大编码单元执行预测编码和变换。还根据最大编码单元,基于根据等于最大深度的深度或小于最大深度的深度的较深层编码单元来执行预测编码和变换。

由于每当最大编码单元根据深度被划分时较深层编码单元的数量就增加,因此对随着深度加深而产生的所有较深层编码单元执行包括预测编码和变换的编码。为了便于描述,现在将基于最大编码单元中的当前深度的编码单元描述预测编码和变换。

视频编码设备100可选择用于对图像数据进行编码的数据单元的尺寸或形状。为了对图像数据进行编码,执行诸如预测编码、变换和熵编码的操作,同时,相同的数据单元可用于所有操作,或者不同的数据单元可用于每个操作。

例如,视频编码设备100可不仅选择用于对图像数据进行编码的编码单元,还可选择与该编码单元不同的数据单元以对编码单元中的图像数据执行预测编码。

为了在最大编码单元中执行预测编码,可基于与编码深度相应的编码单元(即,基于不再被划分为与更低深度相应的编码单元的编码单元)执行预测编码。以下,不再被划分并且成为用于预测编码的基本单元的编码单元将被称为预测单元。通过划分预测单元获得的分区(partition)可包括预测单元或通过划分预测单元的高度和宽度中的至少一个而获得的数据单元。

例如,当2N×2N(其中,N是正整数)的编码单元不再被划分并且成为2N×2N的预测单元时,分区的尺寸可以是2N×2N、2N×N、N×2N或N×N。分区类型的示例包括通过对称地划分预测单元的高度或宽度而获得的对称分区、通过不对称地划分预测单元的高度或宽度(诸如,1:n或n:1)而获得的分区、通过几何地划分预测单元而获得的分区以及具有任意形状的分区。

预测单元的预测模式可以是帧内模式、帧间模式和跳过模式中的至少一个。例如,可对2N×2N、2N×N、N×2N或N×N的分区执行帧内模式或帧间模式。另外,可仅对2N×2N的分区执行跳过模式。可独立地对编码单元中的一个预测单元执行编码,从而选择具有最小编码误差的预测模式。

视频编码设备100可不仅基于用于对图像数据进行编码的编码单元对编码单元中的图像数据执行变换,还可基于与编码单元不同的数据单元对编码单元中的图像数据执行变换。

为了在编码单元中执行变换,可基于具有小于或等于编码单元的尺寸的数据单元执行变换。例如,用于变换的数据单元可包括用于帧内模式的数据单元和用于帧间模式的数据单元。

用作变换的基础的数据单元现在将被称为变换单元。与编码单元类似,编码单元中的变换单元可被递归地划分为更小尺寸的区域,从而能够以区域为单位独立地确定变换单元。因此,可基于根据变换深度的具有树结构的变换单元来划分编码单元中的残差数据。

还可在变换单元中设置指示通过划分编码单元的宽度和高度而达到变换单元的划分次数的变换深度。例如,在2N×2N的当前编码单元中,当变换单元的尺寸也是2N×2N时,变换深度可以是0,当变换单元的尺寸由此是N×N时,变换深度可以是1,当变换单元的尺寸由此是N/2×N/2时,变换深度可以是2。换句话说,可根据变换深度来设置具有树结构的变换单元。

根据与编码深度相应的编码单元对信息编码不仅需要关于编码深度的信息,还需要与预测编码和变换相关的信息。因此,编码单元确定器120不仅确定具有最小编码误差的编码深度,还确定预测单元中的分区类型、根据预测单元的预测模式以及用于变换的变换单元的尺寸。

稍后将参照图3到图12详细描述根据示例性实施例的最大编码单元中的根据树结构的编码单元和确定分区的方法。

编码单元确定器120可通过使用基于拉格朗日乘子(Lagrangian multiplier)的率失真最优化,测量根据深度的较深层编码单元的编码误差。

输出单元130在比特流中输出最大编码单元的图像数据、关于根据编码深度的编码模式的信息,其中,最大编码单元的图像数据基于由编码单元确定器120确定的至少一个编码深度被编码。

可通过对图像的残差数据进行编码来获得编码的图像数据。

关于根据编码深度的编码模式的信息可包括关于编码深度的信息、关于预测单元中的分区类型的信息、预测模式和变换单元的尺寸。

可通过使用根据深度的划分信息来定义关于编码深度的信息,其中,所述关于编码深度的信息指示是否对较低深度而非当前深度的编码单元执行编码。如果当前编码单元的当前深度是编码深度,则当前编码单元中的图像数据被编码和输出,并且因此划分信息可被定义为不将当前编码单元划分至较低深度。可选择地,如果当前编码单元的当前深度不是编码深度,则对较低深度的编码单元执行编码,并且因此划分信息可被定义为对当前编码单元进行划分以获得较低深度的编码单元。

如果当前深度不是编码深度,则对被划分为较低深度的编码单元的编码单元执行编码。因为在当前深度的一个编码单元中存在较低深度的至少一个编码单元,所以对较低深度的每个编码单元重复执行编码,从而可针对具有相同深度的编码单元递归地执行编码。

因为针对一个最大编码单元确定具有树结构的编码单元,并且针对编码深度的编码单元确定关于至少一个编码模式的信息,所以可针对一个最大编码单元确定关于至少一个编码模式的信息。另外,因为根据深度分层地划分图像数据,所以最大编码单元的图像数据的编码深度可根据位置而不同,从而可针对图像数据设置关于编码深度和编码模式的信息。

因此,输出单元130可将关于相应的编码深度和编码模式的编码信息分配给包括在最大编码单元中的编码单元、预测单元和最小单元中的至少一个。

根据示例性实施例的最小单元是通过将组成最低深度的最小编码单元划分为4份而获得的矩形数据单元。可选择地,最小单元可以是最大矩形数据单元,其中,所述最大矩形数据单元可被包括在最大编码单元中包括的所有编码单元、预测单元、分区单元和变换单元中。

例如,通过输出单元130输出的编码信息可被分类为根据编码单元的编码信息和根据预测单元的编码信息。根据编码单元的编码信息可包括关于预测模式的信息以及关于分区的尺寸的信息。根据预测单元的编码信息可包括关于帧间模式的估计方向的信息、关于帧间模式的参考图像索引的信息、关于运动矢量的信息、关于帧内模式的色度分量的信息以及关于帧内模式的插值方法的信息。另外,关于根据画面、条带或GOP定义的编码单元的最大尺寸的信息以及关于最大深度的信息可被插入到比特流的头中。

在视频编码设备100中,较深层编码单元可以是通过将作为上一层的较高深度的编码单元的高度或宽度除以2而获得的编码单元。换而言之,在当前深度的编码单元的尺寸是2N×2N时,较低深度的编码单元的尺寸是N×N。另外,具有2N×2N的尺寸的当前深度的编码单元可包括最多4个较低深度的编码单元。

因此,基于最大编码单元的尺寸和考虑当前画面的特性而确定的最大深度,视频编码设备100可通过针对每个最大编码单元确定具有最佳形状和最佳尺寸的编码单元,来形成具有树结构的编码单元。另外,因为可通过使用各种预测模式和变换中的任意一种来对每个最大编码单元执行编码,所以可考虑各种图像尺寸的编码单元的特性来确定最佳编码模式。

因此,如果以传统的宏块对具有高分辨率或大数据量的图像进行编码,则每个画面的宏块的数量会急剧增加。因此,针对每个宏块产生的压缩信息的条数增加,从而难以发送压缩的信息并且数据压缩效率下降。然而,通过使用视频编码设备100,因为在考虑图像的特征的同时调整了编码单元,同时,在考虑图像的尺寸的同时增大了编码单元的最大尺寸,所以图像压缩效率可提高。

图2是根据示例性实施例的视频解码设备200的框图。

视频解码设备200包括接收器210、图像数据和编码信息提取器220以及图像数据解码器230。用于视频解码设备200的各种操作的各种术语(诸如编码单元、深度、预测单元、变换单元以及关于各种编码模式的信息)与参照图1和视频编码设备100所描述的术语类似。

接收器210接收并解析编码的视频的比特流。图像数据和编码信息提取器220从解析的比特流提取每个编码单元的编码的图像数据,并将提取的图像数据输出到图像数据解码器230,其中,编码单元具有根据每个最大编码单元的树结构。图像数据和编码信息提取器220可从关于当前画面的头提取关于当前画面的编码单元的最大尺寸的信息。

另外,图像数据和编码信息提取器220从解析的比特流提取关于根据每个最大编码单元具有树结构的编码单元的编码深度和编码模式的信息。提取的关于编码深度和编码模式的信息被输出到图像数据解码器230。换句话说,比特流中的图像数据被划分为最大编码单元,从而图像数据解码器230针对每个最大编码单元对图像数据进行解码。

可针对关于与编码深度相应的至少一个编码单元的信息设置关于根据最大编码单元的编码深度和编码模式的信息,关于编码模式的信息可包括关于与编码深度相应的相应编码单元的分区类型的信息、关于预测模式的信息以及变换单元的尺寸。另外,根据深度的划分信息可被提取作为关于编码深度的信息。

由图像数据和编码信息提取器220提取的关于根据每个最大编码单元的编码深度和编码模式的信息是关于这样的编码深度和编码模式的信息,即:所述编码模式和编码深度被确定为当编码器(诸如视频编码设备100)根据每个最大编码单元针对根据深度的每个较深层编码单元重复执行编码时产生最小编码误差。因此,视频解码设备200可通过根据产生最小编码误差的编码深度和编码模式对图像数据进行解码来恢复图像。

由于关于编码深度和编码模式的编码信息可被分配给相应的编码单元、预测单元和最小单元中的预定数据单元,因此图像数据和编码信息提取器220可提取关于根据预定数据单元的编码深度和编码模式的信息。被分配有相同的关于编码深度和编码模式的信息的预定数据单元可被推断为包括在同一最大编码单元中的数据单元。

图像数据解码器230通过基于关于根据最大编码单元的编码深度和编码模式的信息,对每个最大编码单元中的图像数据进行解码来恢复当前画面。换而言之,图像数据解码器230可基于提取的与包括在每个最大编码单元中的具有树结构的编码单元中的每个编码单元的分区类型、预测模式和变换单元有关的信息,来对编码的图像数据进行解码。解码处理可包括预测和逆变换,其中,所述预测包括帧内预测和运动补偿。

基于关于根据编码深度的编码单元的预测单元的分区类型和预测模式的信息,图像数据解码器230可根据每个编码单元的分区和预测模式执行帧内预测或运动补偿。

此外,基于关于根据编码深度的编码单元的变换单元的尺寸的信息,图像数据解码器230可根据编码单元中的每个变换单元来执行逆变换,从而根据最大编码单元执行逆变换。

图像数据解码器230可通过使用根据深度的划分信息来确定当前最大编码单元的至少一个编码深度。如果所述划分信息指示在当前深度不再划分图像数据,则当前深度是编码深度。因此,图像数据解码器230可通过使用针对与编码深度相应的每个编码单元的关于预测单元的分区类型、预测模式、变换单元的尺寸的信息,对当前最大编码单元中的与每个编码深度相应的至少一个编码单元的编码的数据进行解码。

换而言之,可通过观察为编码单元、预测单元和最小单元中的预定数据单元分配的编码信息集,收集包含编码信息(所述编码信息包括相同的划分信息)的数据单元,并且收集的数据单元可被认为是将由图像数据解码器230以相同编码模式进行解码的一个数据单元。

视频解码设备200可获得与在对每个最大编码单元递归地执行编码时产生最小编码误差的至少一个编码单元有关的信息,并且视频解码设备200可使用所述信息来对当前画面进行解码。换而言之,可以对在每个最大编码单元中被确定为最佳编码单元的具有树结构的编码单元进行解码。

因此,即使图像数据具有高分辨率和大数据量,也可通过使用编码单元的尺寸和编码模式对所述图像数据进行有效地解码和恢复,其中,通过使用从编码器接收的关于最佳编码模式的信息,根据图像数据的特性来自适应地确定编码单元的尺寸和编码模式。

现在将参照图3至图13描述根据示例性实施例的确定具有树结构的编码单元、预测单元和变换单元的方法。

图3是用于描述根据示例性实施例的编码单元的概念的示图。

可以以宽度×高度来表示编码单元的尺寸,并且编码单元的尺寸可以是64×64、32×32、16×16和8×8。64×64的编码单元可被划分为64×64、64×32、32×64或32×32的分区,32×32的编码单元可被划分为32×32、32×16、16×32或16×16的分区,16×16的编码单元可被划分为16×16、16×8、8×16或8×8的分区,8×8的编码单元可被划分为8×8、8×4、4×8或4×4的分区。

在视频数据310中,分辨率是1920×1080,编码单元的最大尺寸是64,最大深度是2。在视频数据320中,分辨率是1920×1080,编码单元的最大尺寸是64,最大深度是3。在视频数据330中,分辨率是352×288,编码单元的最大尺寸是16,最大深度是1。图3中示出的最大深度表示从最大编码单元到最小编码单元的总划分次数。

如果分辨率高或者数据量大,则编码单元的最大尺寸可以很大,从而不仅提高编码效率,还精确地反映图像的特性。因此,具有比视频数据330更高的分辨率的视频数据310和视频数据320的编码单元的最大尺寸可以为64。

由于视频数据310的最大深度是2,所以视频数据310的编码单元315可包括具有64的长轴(long axis)尺寸的最大编码单元,还包括由于通过将最大编码单元划分两次使深度加深两层而具有32和16的长轴尺寸的编码单元。同时,因为视频数据330的最大深度是1,所以视频数据330的编码单元335可包括具有16的长轴尺寸的最大编码单元,还包括由于通过将最大编码单元划分一次使深度加深一层而具有8的长轴尺寸的编码单元。

因为视频数据320的最大深度是3,所以视频数据320的编码单元325可包括具有64的长轴尺寸的最大编码单元,以及由于通过将最大编码单元划分三次使深度加深3层而具有32、16和8的长轴尺寸的编码单元。随着深度加深,详细信息可被精确地表示。

图4是根据示例性实施例的基于编码单元的图像编码器400的框图。

图像编码器400执行视频编码设备100的编码单元确定器120的操作,以对图像数据进行编码。换而言之,帧内预测器410对当前帧405中的帧内模式的编码单元执行帧内预测,运动估计器420和运动补偿器425通过使用当前帧405和参考帧495,对当前帧405中的帧间模式的编码单元执行帧间估计和运动补偿。

从帧内预测器410、运动估计器420和运动补偿器425输出的数据通过变换器430和量化器440被输出为量化的变换系数。量化的变换系数通过反量化器460和逆变换器470被恢复为空间域中的数据,并且恢复的空间域中的数据在通过去块单元480和环路滤波单元490进行后处理之后,被输出为参考帧495。量化的变换系数可通过熵编码器450被输出为比特流455。

为了在视频编码设备100中应用图像编码器400,图像编码器400的所有部件(即,帧内预测器410、运动估计器420、运动补偿器425、变换器430、量化器440、熵编码器450、反量化器460、逆变换器470、去块单元480和环路滤波器490)在考虑每个最大编码单元的最大深度的同时,基于具有树结构的编码单元中的每个编码单元执行操作。

具体地说,帧内预测器410、运动估计器420以及运动补偿器425在考虑当前最大编码单元的最大尺寸和最大深度的同时,确定具有树结构的编码单元中的每个编码单元的分区和预测模式,变换器430确定在具有树结构的编码单元中的每个编码单元中的变换单元的尺寸。

图5是根据示例性实施例的基于编码单元的图像解码器500的框图。

解析器510从比特流505解析将被解码的编码图像数据和解码所需的关于编码的信息。编码图像数据通过熵解码器520和反量化器530被输出为反量化的数据,并且反量化的数据通过逆变换器540被恢复为空间域中的图像数据。

帧内预测器550针对空间域中的图像数据,对帧内模式的编码单元执行帧内预测,运动补偿器560通过使用参考帧585,对帧间模式的编码单元执行运动补偿。

经过帧内预测器550和运动补偿器560的空间域中的图像数据可在通过去块单元570和环路滤波单元580进行后处理之后,被输出为恢复的帧595。另外,通过去块单元570和环路滤波单元580进行后处理的图像数据可被输出为参考帧585。

为了在视频解码设备200的图像数据解码器230中对图像数据进行解码,图像解码器500可执行在解析器510之后执行的操作。

为了在视频解码设备200中应用图像解码器500,图像解码器500的所有部件(即,解析器510、熵解码器520、反量化器530、逆变换器540、帧内预测器550、运动补偿器560、去块单元570以及循环滤波单元580)针对每个最大编码单元基于具有树结构的编码单元来执行操作。

具体地说,帧内预测器550和运动补偿器560基于具有树结构的编码单元中的每个编码单元的分区和预测模式来执行操作,逆变换器540基于每个编码单元的变换单元的尺寸来执行操作。

图6是示出根据示例性实施例的根据深度和分区的较深层编码单元的示图。

视频编码设备100和视频解码设备200使用分层的编码单元以考虑图像的特性。可根据图像的特性自适应地确定编码单元的最大高度、最大宽度和最大深度,或可由用户不同地设置编码单元的最大高度、最大宽度和最大深度。可根据编码单元的预定最大尺寸来确定根据深度的较深层编码单元的尺寸。

根据示例性实施例,在编码单元的分层结构600中,编码单元的最大高度和最大宽度每个都是64,最大深度是4。由于深度沿着分层结构600的垂直轴加深,因此较深层编码单元的高度和宽度均被划分。此外,沿分层结构600的水平轴示出了作为用于每个较深层编码单元的预测编码的基础的预测单元和分区。

换而言之,编码单元610是分层结构600中的最大编码单元,其中,深度是0,尺寸(即高度×宽度)是64×64。深度沿着垂直轴加深,并存在尺寸为32×32且深度为1的编码单元620、尺寸为16×16且深度为2的编码单元630、尺寸为8×8且深度为3的编码单元640和尺寸为4×4且深度为4的编码单元650。尺寸为4×4且深度为4的编码单元650是最小编码单元。

编码单元的预测单元和分区根据每个深度沿着水平轴布置。换而言之,如果尺寸为64×64且深度为0的编码单元610是预测单元,则所述预测单元可被划分为包括在编码单元610中的分区,即:尺寸为64×64的分区610、尺寸为64×32的分区612、尺寸为32×64的分区614或尺寸为32×32的分区616。

类似地,尺寸为32×32且深度为1的编码单元620的预测单元可以被划分为包括在编码单元620中的分区,即:尺寸为32×32的分区620、尺寸为32×16的分区622、尺寸为16×32的分区624和尺寸为16×16的分区626。

类似地,尺寸为16×16且深度为2的编码单元630的预测单元可以被划分为包括在编码单元630中的分区,即:包括在编码单元630中的尺寸为16×16的分区、尺寸为16×8的分区632、尺寸为8×16的分区634和尺寸为8×8的分区636。

类似地,尺寸为8×8且深度为3的编码单元640的预测单元可以被划分为包括在编码单元640中的分区,即:包括在编码单元640中的尺寸为8×8的分区、尺寸为8×4的分区642、尺寸为4×8的分区644和尺寸为4×4的分区646。

尺寸为4×4且深度为4的编码单元650是最小编码单元和最低深度的编码单元。编码单元650的预测单元仅被分配给尺寸为4×4的分区。

为了确定组成最大编码单元610的编码单元的至少一个编码深度,视频编码设备100的编码单元确定器120对包括在最大编码单元610中的与每个深度相应的编码单元执行编码。

随着深度加深,以相同范围和相同尺寸包括数据的根据深度的较深层编码单元的数量增加。例如,需要4个与深度2相应的编码单元以覆盖与深度1相应的一个编码单元中包括的数据。因此,为了比较根据深度的相同数据的编码结果,与深度1相应的编码单元和与深度2相应的四个编码单元均被编码。

为了对深度中的当前深度执行编码,可通过沿着分层结构600的水平轴对与当前深度相应的编码单元中的每个预测单元执行编码来针对当前深度选择最小编码误差。作为选择,可通过随着深度沿分层结构600的垂直轴加深对每个深度执行编码来比较根据深度的最小编码误差,从而搜索最小编码误差。编码单元610中具有最小编码误差的深度和分区可被选择为编码单元610的编码深度和分区类型。

图7是用于描述根据示例性实施例的编码单元710和变换单元720之间的关系的示图。

针对每个最大编码单元,视频编码设备100或视频解码设备200根据具有小于或等于最大编码单元的尺寸的编码单元对图像进行编码或解码。可基于不大于相应编码单元的数据单元来选择编码期间用于变换的变换单元的尺寸。

例如,在视频编码设备100或视频解码设备200中,如果编码单元710的尺寸是64×64,则可通过使用尺寸为32×32的变换单元720来执行变换。

此外,可通过对尺寸为小于64×64的32×32、16×16、8×8和4×4的变换单元中的每一个执行变换来对尺寸为64×64的编码单元710的数据进行编码,然后可选择具有最小编码误差的变换单元。

图8是用于描述根据示例性实施例的与编码深度相应的编码单元的编码信息的示图。

视频编码设备100的输出单元130可将与编码深度相应的每个编码单元的关于分区类型的信息800、关于预测模式的信息810和关于变换单元的尺寸的信息820编码为关于编码模式的信息,并将其发送。

信息800表示关于通过划分当前编码单元的预测单元而获得的分区的形状的信息,其中,所述分区是用于对当前编码单元进行预测编码的数据单元。例如,尺寸为2N×2N的当前编码单元CU_0可被划分为尺寸为2N×2N的分区802、尺寸为2N×N的分区804、尺寸为N×2N的分区806和尺寸为N×N的分区808中的任意一个。这里,关于分区类型的信息800被设置为表示尺寸为2N×N的分区804、尺寸为N×2N的分区806和尺寸为N×N的分区808中的一个。

信息810表示每个分区的预测模式。例如,信息810可表示对由信息800表示的分区执行的预测编码的模式,即:帧内模式812、帧间模式814或跳过模式816。

信息820表示当对当前编码单元执行变换时作为基础的变换单元。例如,变换单元可以是第一帧内变换单元822、第二帧内变换单元824、第一帧间变换单元826或第二帧间变换单元828。

视频解码设备200的图像数据和编码信息提取器220可根据每个较深层编码单元提取和使用用于解码的信息800、810和820。

图9是根据示例性实施例的根据深度的较深层编码单元的示图。

划分信息可被用于表示深度的改变。划分信息表示当前深度的编码单元是否被划分为较低深度的编码单元。

用于对深度为0且尺寸为2N_0×2N_0的编码单元900进行预测编码的预测单元910可包括尺寸为2N_0×2N_0的分区类型912、尺寸为2N_0×N_0的分区类型914、尺寸为N_0×2N_0的分区类型916和尺寸为N_0×N_0的分区类型918的分区。图9只示出了通过对称地划分预测单元910获得的分区类型912至分区类型918,但是分区类型不限于此,预测单元910的分区可包括非对称分区、具有预定形状的分区和具有几何形状的分区。

根据每个分区类型,可对尺寸为2N_0×2N_0的一个分区、尺寸为2N_0×N_0的两个分区、尺寸为N_0×2N_0的两个分区、尺寸为N_0×N_0的四个分区重复地执行预测编码。可对尺寸为2N_0×2N_0、N_0×2N_0、2N_0×N_0和N_0×N_0的分区执行帧内模式下和帧间模式下的预测编码。仅对尺寸为2N_0×2N_0的分区执行跳过模式下的预测编码。

如果在分区类型912至分区类型916之一中,编码误差最小,则预测单元910可不被划分为更低深度。

如果在分区类型918中编码误差最小,则在操作920,深度从0改变为1以划分分区类型918,并对深度为2且尺寸为N_0×N_0的编码单元930重复执行编码以搜索最小编码误差。

用于对深度为1且尺寸为2N_1×2N_1(=N_0×N_0)的编码单元930进行预测编码的预测单元940可包括尺寸为2N_1×2N_1的分区类型942、尺寸为2N_1×N_1的分区类型944、尺寸为N_1×2N_1的分区类型946和尺寸为N_1×N_1的分区类型948的分区。

如果在分区类型948中编码误差最小,则在操作950,深度从1改变为2以划分分区类型948,并对深度为2且尺寸为N_2×N_2的编码单元960重复执行编码以搜索最小编码误差。

当最大深度为d时,根据每个深度的划分操作可被执行直到当深度变为d-1,并且划分信息可被编码直到当深度为0至d-2中的一个。换而言之,当在操作970将与深度d-2相应的编码单元划分之后,执行编码直到当深度为d-1时,用于对深度为d-1且尺寸为2N_(d-1)×2N_(d-1)的编码单元980进行预测编码的预测单元990可包括尺寸为2N_(d-1)×2N_(d-1)的分区类型992、尺寸为2N_(d-1)×N_(d-1)的分区类型994、尺寸为N_(d-1)×2N_(d-1)的分区类型996以及尺寸为N_(d-1)×N_(d-1)的分区类型998的分区。

可对分区类型992至分区类型998中的尺寸为2N_(d-1)×2N_(d-1)的一个分区、尺寸为2N_(d-1)×N_(d-1)的两个分区、尺寸为N_(d-1)×2N_(d-1)的两个分区、尺寸为N_(d-1)×N_(d-1)的四个分区重复执行预测编码,以搜索具有最小编码误差的分区类型。

即使当分区类型998具有最小编码误差时,由于最大深度为d,所以深度为d-1的编码单元CU_(d-1)不再被划分为较低深度,构成当前最大编码单元900的编码单元的编码深度被确定为d-1,并且当前最大编码单元900的分区类型可被确定为N_(d-1)×N_(d-1)。此外,由于最大深度为d,并且最低深度为d-1的最小编码单元980不再被划分为较低深度,所以不设置最小编码单元980的划分信息。

数据单元999可以是用于当前最大编码单元的最小单元。根据示例性实施例的最小单元可以是通过将最小编码单元980划分为4部分而获得的矩形数据单元。通过重复地执行编码,视频编码设备100可通过比较根据编码单元900的深度的编码误差来选择具有最小编码误差的深度以确定编码深度,并且可将相应的分区类型和预测模式设置为编码深度的编码模式。

这样,在深度1至深度d的所有深度中比较根据深度的最小编码误差,并且具有最小编码误差的深度可被确定为编码深度。编码深度、预测单元的分区类型、预测模式可作为关于编码模式的信息被编码和发送。此外,由于从深度0至编码深度来划分编码单元,所以只有编码深度的划分信息被设置为0,并且除了编码深度之外的深度的划分信息被设置为1。

视频解码设备200的图像数据和编码信息提取器220可提取并使用关于编码单元900的编码深度和预测单元的信息,以对分区912进行解码。视频解码设备200可通过使用根据深度的划分信息将划分信息为0的深度确定为编码深度,并且可使用关于相应深度的编码模式的信息,以用于解码。

图10至图12是用于描述根据示例性实施例的编码单元1010、预测单元1060和变换单元1070之间的关系的示图。

编码单元1010是最大编码单元中的与由视频编码设备100确定的编码深度相应的具有树结构的编码单元。预测单元1060是每个编码单元1010的预测单元的分区,变换单元1070是每个编码单元1010的变换单元。

当编码单元1010中的最大编码单元的深度为0时,编码单元1012和1054的深度为1,编码单元1014、1016、1018、1028、1050和1052的深度为2,编码单元1020、1022、1024、1026、1030、1032和1048的深度为3,编码单元1040、1042、1044和1046的深度为4。

在预测单元1060中,通过在编码单元1010中划分编码单元来获得一些编码单元1014、1016、1022、1032、1048、1050、1052和1054。换而言之,编码单元1014、1022、1050和1054中的分区类型的尺寸为2N×N,编码单元1016、1048和1052的分区类型的尺寸为N×2N,编码单元1032的分区类型的尺寸为N×N。编码单元1010的预测单元和分区小于或等于每个编码单元。

以小于编码单元1052的数据单元对变换单元1070中的编码单元1052的图像数据执行变换或逆变换。另外,变换单元1070中的编码单元1014、1016、1022、1032、1048、1050和1052与预测单元1060中的那些编码单元在尺寸和形状上不同。换而言之,视频编码设备100和视频解码设备200可对相同的编码单元中的数据单元单独地执行帧内预测、运动估计、运动补偿、变换和逆变换。

因此,对最大编码单元的每个区域中具有分层结构的编码单元中的每个编码单元递归地执行编码以确定最佳编码单元,因此可获得具有递归树结构的编码单元。编码信息可包括关于编码单元的划分信息、关于分区类型的信息、关于预测模式的信息以及关于变换单元的尺寸的信息。表1示出了可由视频编码设备100和视频解码设备200设置的编码信息。

[表1]

视频编码设备100的输出单元130可输出关于具有树结构的编码单元的编码信息,视频解码设备200的图像数据和编码信息提取器220可从接收的比特流提取关于具有树结构的编码单元的编码信息。

划分信息指示当前编码单元是否被划分为较低深度的编码单元。如果当前深度d的划分信息为0,则当前编码单元不再被划分为较低深度的深度是编码深度。因此,可针对编码深度定义关于变换单元的尺寸、分区类型、预测模式的信息。如果根据划分信息将当前编码单元进一步划分,则对较低深度的四个划分的编码单元独立地执行编码。

预测模式可以是帧内模式、帧间模式和跳过模式中的一种。可在所有分区类型中定义帧内模式和帧间模式,仅在尺寸为2N×2N的分区类型中定义跳过模式。

关于分区类型的信息可表示通过对称划分预测单元的高度或宽度获得的尺寸为2N×2N、2N×N、N×2N和N×N的对称分区类型以及通过非对称划分预测单元的高度或宽度获得的尺寸为2N×nU、2N×nD、nL×2N和nR×2N的非对称分区类型。可通过以1:3和3:1划分预测单元的高度来分别获得尺寸为2N×nU和2N×nD的非对称分区类型,可通过以1:3和3:1划分预测单元的宽度来分别获得尺寸为nL×2N和nR×2N的非对称分区类型。

变换单元的尺寸可被设置为帧内模式下的两种类型以及帧间模式下的两种类型。换而言之,如果变换单元的划分信息为0,则变换单元的尺寸可以是2N×2N(2N×2N是当前编码单元的尺寸)。如果变换单元的划分信息为1,则可通过划分当前编码单元来获得变换单元。另外,如果尺寸为2N×2N的当前编码单元的分区类型是对称分区类型,则变换单元的尺寸可以是N×N,如果当前编码单元的分区类型是非对称分区类型,则变换单元的尺寸可以是N/2×N/2。

关于具有树结构的编码单元的编码信息可包括与编码深度相应的编码单元、预测单元以及最小单元中的至少一个。与编码深度相应的编码单元可包括包含相同编码信息的最小单元和预测单元中的至少一个。

因此,通过比较相邻数据单元的编码信息来确定相邻数据单元是否包括在与编码深度相应的相同编码单元中。另外,通过使用数据单元的编码信息来确定与编码深度相应的相应编码单元,因此可确定最大编码单元中的编码深度的分布。

因此,如果基于相邻数据单元的编码信息来预测当前编码单元,则可直接参考和使用与当前编码单元相邻的较深层编码单元中的数据单元的编码信息。

可选择地,如果基于相邻数据单元的编码信息来预测当前编码单元,则使用所述数据单元的编码信息来搜索与当前编码单元相邻的数据单元,并且可参考搜索到的相邻编码单元来预测当前编码单元。

图13是用于描述根据表1的编码模式信息的编码单元、预测单元或分区、变换单元之间的关系的示图。

最大编码单元1300包括多种编码深度的编码单元1302、1304、1306、1312、1314、1316和1318。这里,由于编码单元1318是编码深度的编码单元,所以划分信息可被设置为0。关于尺寸为2N×2N的编码单元1318的分区类型的信息可被设置为尺寸为2N×2N的分区类型1322、尺寸为2N×N的分区类型1324、尺寸为N×2N的分区类型1326、尺寸为N×N的分区类型1328、尺寸为2N×nU的分区类型1332、尺寸为2N×nD的分区类型1334、尺寸为nL×2N的分区类型1336以及尺寸为nR×2N的分区类型1338中的一个。

当分区类型被设置为对称(即,分区类型1322、1324、1326或1328)时,如果变换单元的划分信息(TU尺寸标志)为0,则设置尺寸为2N×2N的变换单元1342,如果TU尺寸标志为1,则设置尺寸为N×N的变换单元1344。

当分区类型被设置为非对称(即,分区类型1332、1334、1336或1338)时,如果TU尺寸标志为0,则设置尺寸为2N×2N的变换单元1352,如果TU尺寸标志为1,则设置尺寸为N/2×N/2的变换单元1354。

现在将对由图4的视频编码设备100的运动估计器420和运动补偿器425以及由图5的视频解码设备200的运动补偿器560执行的运动估计和补偿进行详细描述。下文中,上述预测单元将被称为块。

图14是根据示例性实施例的用于对运动矢量进行编码的设备1600的框图。设备1400包括涉及对运动矢量进行编码的元件,诸如图4的运动估计器420和熵编码器450,其中,熵编码器450可执行由图14的运动矢量编码器1420执行的操作。

参照图14,根据当前示例性实施例的设备1400包括运动估计器1410和运动矢量编码器1420。

运动估计器1410通过对当前块执行运动估计来产生当前块的运动矢量,其中,所述当前块的运动矢量指示第一参考画面中与当前块相应的区域。

通常,块的运动矢量与相邻块的运动矢量紧密相关。因此,从相邻块的运动矢量来估计当前块的运动矢量,并且只有相邻块的运动矢量和当前块的差矢量被编码以减小将被编码的比特量。因此,运动矢量编码器1420通过使用相邻块的运动矢量信息来产生运动矢量预测因子以用于对当前块的运动矢量信息进行编码,并且仅将当前块的运动矢量预测因子和运动矢量之间的差编码为当前块的运动矢量信息。详细地,当在当前块之前编码的相邻块中存在具有参考由当前块参考的第一参考画面的运动矢量的块时,运动矢量编码器1420通过使用参考第一参考画面的相邻块的运动矢量来产生运动矢量预测因子,或者当在相邻块中不存在具有参考第一参考画面的运动矢量的块时,运动矢量编码器1420通过使用参考除了第一参考画面之外的参考画面的参考块的运动矢量来产生运动矢量预测因子,随后,运动矢量编码器1420将产生的运动矢量预测因子与当前块的运动矢量之间的差编码为当前块的运动矢量信息。如上所述,传统图像编码设备将与当前块的左侧、顶部和右上方相邻的相邻块的运动矢量的中值用作当前块的运动矢量。然而,设备1400经由各种方法中的一种从相邻块中产生运动矢量预测因子候选,并使用除了中值之外的从运动矢量预测因子候选组中选择的运动矢量预测因子以对当前块的运动矢量进行编码,从而增加根据图像特性的图像压缩效率。

现在将对由运动矢量编码器1420执行的运动矢量预测因子的产生进行详细描述。

图15A和15B是根据示例性实施例的运动矢量预测因子候选的示图。

参照图15A,运动矢量编码器1420可将在当前块之前编码的相邻块的运动矢量之一用作当前块的运动矢量预测因子。当前块的相邻块中的最左a0块1501、最左上b0块1502、右上c块1503、左上d块1505和左下e块1504的运动矢量中的任何一个可被用作当前块的运动矢量预测因子。由于基于具有各种尺寸的编码单元(根据深度来划分所述编码单元)来执行视频编码和解码方法,因此左下e块1504的运动矢量还可用作当前块的运动矢量预测因子。参照回图10,如果当前块是编码单元1020,则在当前块1020的上方、左上方、右上方、左侧和左下方的编码单元1014、1016、1018和1022在当前块1020之前被编码。换句话说,由于编码单元1018在包括当前块的编码单元1020之前被编码,因此,考虑到编码单元1018在具有较深深度的编码单元中被编码,与当前块的左下方相邻的块的运动矢量也可被用作当前块的运动矢量预测因子。

参照图15B,当前块的所有相邻块的运动矢量可被用作当前块的运动矢量预测因子。换句话说,不仅与当前块的顶部相邻的块1510中的最左a0块的运动矢量可被用作当前块的运动矢量预测因子,而且与当前块的顶部相邻的所有块a0至aN的运动矢量可被用作当前块的运动矢量预测因子,并且不仅与当前块的左侧相邻的块1520中的最上b0块的运动矢量可被用作当前块的运动矢量预测因子,而且与当前块的左侧相邻的所有块b0至bN的运动矢量可被用作当前块的运动矢量预测因子。

可选择地,相邻块的运动矢量的中值可被用作运动矢量预测因子。换句话说,中值mv_a0、mv_b0和mv_c可被用作当前块的运动矢量预测因子。这里,中值mv_a0是a0块的运动矢量,中值mv_b0是b0块的运动矢量,中值mv_c是c块的运动矢量。

然而,运动矢量预测因子候选可根据当前块的尺寸和相邻块的尺寸被限制,这将参照图15C至图15E进行详细描述。

图15C至图15E是根据示例性实施例的与当前块相邻的具有各种尺寸的块的示图。

如上所述,图像编码和解码方法通过使用根据深度确定的具有各种尺寸的编码单元和预测单元来对图像进行编码和解码。因此,当前块的相邻块的尺寸可改变,并且如果当前块的尺寸和一些相邻块的尺寸相差很大,则这些相邻块的运动矢量可不被用作当前块的运动矢量预测因子。

参照图15C,当前块1010的顶部的相邻块1014至1018具有的尺寸小于当前块1010的尺寸。由于具有与当前块1010相同尺寸的相邻块1012的运动矢量很可能与当前块1010的运动矢量相同或类似,因此运动矢量编码器1420可仅将相邻块1012的运动矢量用作运动矢量预测因子。

即使尺寸不同,但是具有预定尺寸或大于预定尺寸的相邻块的运动矢量可被用作运动矢量预测因子。例如,与当前块1010相比具有1/4或以上尺寸的相邻块1012和1018可被用作运动矢量预测因子。

参照图15D,与当前块1020的左侧相邻的相邻块1022的尺寸是当前块1020的尺寸的16倍,并且因此存在显著的尺寸差别。由于该显著的尺寸差别,相邻块1022的运动矢量不可能与当前块1020的运动矢量相同或类似。因此,相邻块1022的运动矢量不被用作当前块1020的运动矢量预测因子,并且位于当前块1020的顶部的相邻块1024的运动矢量和位于当前块1020的右上方的相邻块1026的运动矢量可被使用。

参照图15E,当前块1030的尺寸大于所有相邻块1031至1037的尺寸。这里,如果相邻块1031至1037的运动矢量被用作当前块1030的运动矢量预测因子,则当前块1030的运动矢量预测因子候选的数量可能会太多。随着当前块1030的尺寸与相邻块1031至1037的尺寸之间的差的增加,运动矢量预测因子候选的数量也增加。因此,运动矢量编码器1420不将一些相邻块的运动矢量用作当前块的运动矢量预测因子。

例如,在图15E中,与当前块1030的左下方相邻的相邻块1031的运动矢量和与当前块1030的右上方相邻的相邻块1037的运动矢量不会被用作当前块1030的运动矢量预测因子。换句话说,如果当前块1030的尺寸等于或高于预定尺寸,则预定方向上的相邻块的运动矢量不会被用作当前块1030的运动矢量预测因子。

可选择地,代替通过根据当前块的尺寸和相邻块的尺寸限制运动矢量预测因子候选来产生运动矢量预测因子候选,运动矢量编码器1420可基于与被当前块参考的第一参考画面相同的参考画面是否被使用、位于与第一参考画面相同列表方向(list direction)上的参考画面是否被使用以及位于与第一参考画面不同列表方向上的参考画面是否被使用,来从相邻块产生运动矢量预测因子。

图16是示出根据示例性实施例的对运动矢量进行编码的方法的流程图。在产生运动矢量预测因子候选时,运动矢量编码器1420通过利用使用与由当前块参考的第一参考画面相同的参考画面的相邻块的运动矢量来产生来产生运动矢量预测因子候选;如果使用与第一参考画面相同的参考画面的参考画面不存在,则运动矢量编码器1420通过利用使用位于与第一参考画面相同方向上的另一参考画面的相邻块的运动矢量来产生运动矢量预测因子候选;如果参考位于与第一参考画面相同方向上的其他参考画面的相邻块不存在,则运动矢量编码器1420通过利用参考位于与第一参考画面不同的列表方向上的另一参考画面的相邻块的运动矢量来产生运动矢量预测因子候选。

参照图16,在操作1610,运动估计器1410通过对当前块执行运动估计,来产生指示在第一参考画面中与当前块相应的区域的当前块的运动矢量。

在操作1620,如果在当前块之前编码的相邻块中存在具有参考第一参考画面的运动矢量的块,则运动矢量编码器1420通过使用参考第一参考画面的相邻块的运动矢量来产生运动矢量预测因子,在操作1630,如果在相邻块中不存在具有参考第一参考画面的运动矢量的块,则运动矢量编码器1420通过使用参考除了第一参考画面之外的参考画面的相邻块的运动矢量来产生运动矢量预测因子。

在操作1640,运动矢量编码器1420将当前块的运动矢量预测因子与运动矢量之间的差编码为当前块的运动矢量信息。

图17是详细示出根据示例性实施例的产生运动矢量预测因子的流程图。

参照图17,在操作1710,运动矢量编码器1420根据预定扫描顺序来提取当前块的相邻块的运动信息。相邻块的运动信息包括由相邻块参考的参考画面信息ref index_N和相邻块的运动矢量信息。运动矢量编码器1420从与当前块的左侧相邻的块选择第一运动矢量预测因子,从与当前块的顶部相邻的块选择第二运动矢量预测因子,从位于当前块的角落的块选择第三运动矢量预测因子。为了选择第一至第三运动矢量预测因子,位于当前块的顶部、左侧和角落的每个块的参考画面与由当前块参考的参考画面信息进行比较。参考回图15B,预定扫描顺序为在块1520中从顶到底(即从块b0到块bn)以及在块1510中从左到右(即,从块a0到块an)。可按照块c 1531、块d 1533和块e 1532的顺序来扫描c块1531、e块1532和d块1533。然而,预定扫描顺序可不同。

在操作1720,运动矢量编码器1420将由当前块参考的参考画面信息ref index_Cur与相邻块的参考画面信息ref index_N进行比较,以确定相邻块的参考画面是否与由当前块参考的参考画面(即,第一参考画面)相同。当在操作1720中确定相邻块的参考画面与第一参考画面相同时,在操作1730,相邻块的运动矢量被确定为运动矢量预测因子。根据位于当前块的顶部的块1510、位于当前块的左侧的块1520以及位于当前块的角落的块1531至1533的组来执行操作1720和1730,以产生第一至第三运动矢量预测因子。

在操作1740,确定是否根据块1510、块1520和块1531至1533的组对所有相邻块执行操作1720。如果块1510、块1520和块1531至1533的组中的任何一个不包括参考与第一参考画面相同的参考画面的相邻块,则在操作1750,确定参考与第一参考画面不同但位于当前块的列表方向上的另一参考画面的相邻块是否存在。这里,列表方向表示参考在当前画面之前的先前画面的L0方向和参考在当前画面之后的下一画面的L1方向。

如果在操作1750确定相邻块参考所述另一参考画面,则在操作1760,相邻块的运动矢量被确定为运动矢量预测因子。在操作1770,确定是否对所有相邻块(即,块1510、块1520和块1531至1533)执行操作1750。如果块1510、块1520和块1531至1533的组中的任何一个不包括参考与第一参考画面不同但位于当前块的列表方向上的另一参考画面的相邻块,则在操作1780,参考位于与第一参考画面不同的列表方向上的另一参考画面的相邻块的运动矢量被确定为当前块的运动矢量预测因子。

换句话说,根据示例性实施例的用于对运动矢量进行编码的方法和设备从位于当前块的左侧的相邻块产生第一运动矢量预测因子,从位于当前块的顶部的相邻块产生第二运动矢量预测因子,并从位于当前块的角落的相邻块产生第三运动矢量预测因子,并且同时,以参考第一参考画面的相邻块的运动矢量、参考与第一参考画面不同但存在于与当前块相同的列表方向上的另一参考画面的相邻块的运动矢量、以及参考位于与当前块不同列表方向上的另一参考画面的相邻块的运动矢量的顺序来扫描相邻块,以确定当前块的运动矢量预测因子候选。

图18A至图18C是用于详细描述根据示例性实施例的确定运动矢量预测因子的参考图。

图18A是用于描述在存在参考被当前块参考的第一参考画面1810的相邻块的情况下产生运动矢量预测因子的示图。

参照图18A,运动矢量编码器1420从位于当前块180的左侧的相邻块184和185产生第一运动矢量预测因子,从位于当前块180的顶部的相邻块181至183产生第二运动矢量预测因子,从位于当前块180的角落的块(未显示)产生第三运动矢量预测因子。现在将作为示例来详细描述从块181至183产生第二运动矢量预测因子。在产生第一运动矢量预测因子和第三运动矢量预测因子时,将类似地应用产生第二运动矢量预测因子的处理。

当由当前画面1800的当前块180参考第一参考画面1810时,运动矢量编码器1420以从左到右的顺序来扫描相邻块181至183,以确定由相邻块181至183参考的参考画面是否与第一参考画面1810相同。在图18A中,假设相邻块181参考当前画面1800后面的参考画面1830的区域1831,相邻块182是经由与当前块180相同的第一参考画面1810的区域1816预测的运动相邻块,并且块183是帧内预测块。这里,运动矢量编码器1420将初始有效并且参考第一参考画面1810的相邻块182的运动矢量mv_182确定为第二运动矢量预测因子。同样,当相邻块182参考与当前画面1800相同的第一参考画面1810时,由于运动矢量mv_182的时间距离与当前块180经由区域1815的运动矢量mv_cur的时间距离相同,因此相邻块182的运动矢量mv_182不会被单独缩放。然而,如以上参照图15C至15E所述,如果相邻块182的尺寸与当前块180相比小于或等于预定阈值,则运动矢量编码器1420可不选择相邻块182的运动矢量mv_182作为第二运动矢量预测因子。如果不存在如图18A所示参考第一参考画面1810的相邻块182,则执行参照图18B描述的产生运动矢量预测因子。

图18B是用于描述当参考第一参考画面1810的相邻块不存在而参考位于与第一参考画面1810相同列表方向上的另一参考画面的相邻块存在时,产生运动矢量预测因子的示图。

参照图18B,假设相邻块181和182参考当前画面1800后面的参考画面1830的区域1832、1833,相邻块183是经由参考画面1820(不是第一参考画面1810但是与第一参考画面1810在相同的列表方向上,即时间上在当前画面1800之前)的区域1821预测的运动块。这里,运动矢量编码器1420将初始有效并且参考与第一参考画面1810在相同列表方向上的参考画面1820的相邻块183的运动矢量mv_183确定为第二运动矢量预测因子。同样,当相邻块183参考参考画面1820时,由于第一参考画面1810和参考画面1820的时间距离彼此不同,因此在考虑当前画面1800和第一参考画面1810之间的时间距离t1以及当前画面1800和参考画面1820之间的时间距离t2的同时,相邻块183的运动矢量mv_183被缩放。详细地,运动矢量编码器1420通过将运动矢量mv_183乘以值(t1/t2)来执行缩放,从而将mv_183×(t1/t2)确定为第二运动矢量预测因子。换句话说,当CurrPOC表示当前画面1800的画面顺序计数(POC),CurrRefPOC表示由当前块180参考的参考画面的POC,NeighRefPOC表示由相邻块参考的参考画面的POC时,经由以下等式来计算缩放(Scale)值:

Scale=(CurrPOC-CurrRefPOC)/(CurrPOC-NeighRefPOC),并且通过将确定的运动矢量与缩放值相乘来执行缩放。

即使参考位于与第一参考画面1810相同列表方向上的其他参考画面的相邻块不存在,也可如将参照图18C所述地产生运动矢量预测因子。

图18C是用于描述当参考位于与第一参考画面1810相同列表方向上的其他参考画面的相邻块不存在时产生运动矢量预测因子的示图。

参照图18C,假设当前块180经由当前画面1800后面的区域1834参考第一参考画面1830,相邻块181是帧内预测块,相邻块182经由当前画面1800之前的区域1816参考所述参考画面1810,相邻块183是经由当前画面1800之前的区域1822参考所述参考画面1820的运动块。换句话说,在图18C中,参考由当前块180参考的第一参考画面1830的相邻块不存在于当前块180的顶部块中,将当前画面1800后面的画面用作参考画面的相邻块也不存在。这里,运动矢量编码器1420将初始有效并且参考与第一参考画面1830不同列表方向上的参考画面1810(即,在当前画面1800之前)的相邻块182的运动矢量mv_182确定为第二运动矢量预测因子。当相邻块182参考不同列表方向上的参考画面1810而非第一参考画面1830时,由于第一参考画面1830和参考画面1810的时间距离彼此不同,因此在考虑当前画面1800和第一参考画面1830之间的时间距离t3、当前画面1800和参考画面1810之间的时间距离t4以及列表方向的同时,相邻块182的运动矢量mv_182被缩放。详细地,运动矢量编码器1420通过将相邻块182的运动矢量mv_182乘以值-(t3/t4)来执行缩放,并且将(mv_182×(t3/t4))确定为第二运动矢量预测因子。

运动矢量编码器1420通过根据位于当前块180的左侧和角落的多组块执行参照图18A至图18C所述的处理来确定第一运动矢量预测因子和第三运动矢量预测因子。当第一运动矢量预测因子至第三运动矢量预测因子被确定时,运动矢量编码器1420可进一步包括作为运动矢量预测因子候选的第一运动矢量预测因子至第三运动矢量预测因子的中值。如果第一运动矢量预测因子至第三运动矢量预测因子都不存在,则运动矢量编码器1420将0矢量设置为中值。如果仅第一运动矢量预测因子至第三运动矢量预测因子之一存在,则运动矢量编码器1420将存在的运动矢量预测因子设置为中值。如果仅第一运动矢量预测因子至第三运动矢量预测因子中的两个存在,则运动矢量编码器1420可将不存在的运动矢量预测因子设置为0矢量,根据x轴和y轴的分量计算中值,并将计算的中值包括在运动矢量预测因子候选中。

同时,在确定相邻块的运动矢量的中值时,运动矢量编码器1420可通过仅使用相同类型的运动矢量来计算中值。换句话说,运动矢量编码器1420可通过仅使用当前块的相邻块的运动矢量之中的参考与当前块相同的第一参考画面的运动矢量来确定第一运动矢量预测因子至第三运动矢量预测因子,并将第一运动矢量预测因子至第三运动矢量预测因子的中值包括在当前块的运动矢量预测因子候选中。

可选择地,如上所述,运动矢量编码器1420可通过使用参考与第一参考画面相同列表方向上的另一参考画面的相邻块的运动矢量或者参考与第一参考画面不同列表方向上的另一参考画面的相邻块的运动矢量,来确定第一运动矢量预测因子至第三运动矢量预测因子,并将第一运动矢量预测因子至第三运动矢量预测因子的中值包括在当前块的运动矢量预测因子候选中。这里,仅当在相邻块中确定的所有的第一运动矢量预测因子至第三运动矢量预测因子参考与当前块不同的另一参考画面时,运动矢量编码器1420可将第一运动矢量预测因子至第三运动矢量预测因子的中值包括在运动矢量预测因子候选中。

图19A至19C是用于描述根据示例性实施例的产生运动矢量预测因子候选的参考图。

图19A是用于描述根据示例性实施例的计算双向预测画面(B画面)的运动矢量预测因子的方法的示图。在B画面中,在包括当前块1900的当前画面1910执行双向预测的情况下,基于时间距离产生的运动矢量可以是运动矢量预测因子候选。

可通过使用时间上在前画面1912的同位块1920的运动矢量来产生当前画面1910的当前块1900的运动矢量预测因子mv_temporal。例如,当针对当前画面1910的时间上在后画面1914的块1922、当前画面1900和画面1914之间的时间距离t5以及画面1912和1914之间的时间距离t6产生同位块1920的运动矢量mv_colA时,当前块1900的运动矢量预测因子候选mv_L0A和mv_L1A可被如下产生:

mv_L1A=(t5/t6)×mv_colA

mv_L0A=L1A-mv_colA

这里,mv_L0A表示当前块1900相对于时间上在前画面1912的运动矢量预测因子,mv_L1A表示当前块1900相对于时间上在后画面1914的运动矢量预测因子。

在图19A中,构成B画面的当前画面1910存在于时间上在前画面1912和时间上在后画面1914之间。这里,当针对时间上在后画面1914产生同位块1920的运动矢量mv_colA时,可基于运动矢量预测因子mv_L1A来更加精确地预测当前块1900的运动矢量。换句话说,与当运动矢量mv_colA在与图19A显示的方向相反的方向上时(即当针对于在时间上在前画面1912之前的另一画面产生运动矢量mv_colA时)相比,当运动矢量mv_colA在图19A中显示的方向上时,当前块1900的运动矢量可被更加精确地预测。

因此,当从当前块1900到同位块1920的方向是List0方向时,同位块1920的运动矢量mv_colA应该处于List1方向,使得如图19A所示当前画面1910存在于时间上在前画面1912和时间上在后画面1914之间,从而基于运动矢量mv_colA来精确地预测当前块1900的预测矢量。

另外,由于图19A的当前画面1910、时间上在前画面1912和时间上在后画面1914按时间顺序排列,因此可基于POC来产生当前块1900的运动矢量预测因子mv_temporal。由于由当前块1900参考的画面可以不是当前画面1910、时间上在前画面1912和时间上在后画面1914之一,因此基于POC来产生当前块1900的运动矢量预测因子mv_temporal。

例如,当CurrPOC表示当前画面的POC而CurrRefPOC表示由当前画面参考的画面的POC时,当前块的运动矢量预测因子可被如下产生:

Scale=(CurrPOC-CurrRefPOC)/(ColPOC-ColRefPOC)

mv_temporal=Scale×mv_colA

这里,ColPOC表示包括同位块1920的时间上在前画面1912的POC,ColRefPOC表示包括由同位块1920参考的块1922的时间上在后画面的POC。

图19B是用于描述根据另一示例性实施例的产生B画面的运动矢量预测因子的方法的示图。将图19A的方法与图19B的方法进行比较,时间上在后画面1914包括位于与当前画面1910的当前块1900相同位置的块1930。

参照图19B,可通过使用时间上在后画面1914的同位块1930的运动矢量来产生当前画面1910的当前块1900的运动矢量预测因子。例如,当针对时间上在前画面1912的块1932、当前画面1910和画面1912之间的时间距离t7以及画面1912和1914之间的时间距离t8来产生同位块1930的运动矢量mv_colB时,当前块1900的运动矢量预测因子候选mv_L0B和mv_L1B可被如下产生:

mv_L0B=(t7/t8)×mv_colB

mv_L1B=mv_L0B-mv_colB

这里,mv_L0B表示当前画面1910相对于时间上在前画面1912的运动矢量预测因子,mv_L1B表示当前块1900相对于时间上在后画面1914的运动矢量预测因子。

与图19A类似,构成B画面的当前画面1910存在于图19B中的时间上在前画面1912和时间上在后画面1914之间。因此,当针对时间上在前画面1912产生同位块1930的运动矢量mv_colB时,可基于运动矢量mv_L0B更加精确地预测当前块1900的运动矢量。换句话说,与当运动矢量mv_colB在与图19B显示的方向相反的方向上时(即当针对在时间上在后画面1914之后的另一画面产生运动画面mv_colB时)相比,当运动矢量mv_colB在图19B显示的方向上时,可更加精确地预测当前块1900的运动矢量。

因此,当从当前块1900到同位块1930的方向是List1方向时,同位块1930的运动矢量mv_colB应该在List0方向上,使得如图19B所示当前画面1910存在于时间上在前画面1912和时间上在后画面1914之间,从而基于运动矢量mv_colB来精确地预测当前块1900的运动矢量。

另外,因为由当前块1900参考的画面可能不是时间上在前画面1912和时间上在后画面1914之一,因此基于POC来产生当前块1900的运动矢量预测因子。例如,当CurrPOC表示当前画面的POC而CurrRefPOC表示由当前画面参考的画面的POC时,当前块的运动矢量预测因子可被如下产生:

Scale=(CurrPOC-CurrRefPOC)/(ColPOC-ColRefPOC)

mv_temporal=Scale×mv_colB

这里,ColPOC表示包括同位块1930的时间上在后画面1914的POC,ColRefPOC表示包括由同位块1930参考的块1932的时间上在前画面1912的POC。

运动矢量编码器1420可在产生B画面的当前块1900的运动矢量预测因子时,使用图19A和图19B的方法中的任何一种。换句话说,由于运动矢量编码器1420通过使用同位块1920或1930的时间距离和运动矢量来产生运动矢量预测因子,因此仅当同位块1920或1930的运动矢量存在时,通过使用图19A和图19B的方法之一来产生运动矢量预测因子。因此,运动矢量编码器1420通过仅使用同位块1920和1930中的具有运动矢量的块来产生当前块1900的运动矢量预测因子。

例如,当时间上在前画面1912的同位块1920通过使用帧内预测而非帧间预测被编码时,同位块1920的运动矢量不存在,因此不能通过使用图19A的方法产生当前块1900的运动矢量预测因子。

当运动矢量编码器1420如图19A和图19B所示产生B画面的当前块1900的运动矢量预测因子时,时间上在前画面1912的同位块1920和时间上在后画面1914的同位块1930可都被使用。因此,用于对运动矢量进行解码的解码器必须确定同位块1920和1930中的哪个块被用于产生运动矢量预测因子,以对运动矢量预测因子进行解码。

因此,运动矢量编码器1420可对用于指定哪个块被使用的信息进行编码,并将编码的信息插入块头或条带头。

图19C是用于描述根据示例性实施例的产生预测画面(P画面)的运动矢量预测因子的方法的示图。

参照图19C,可通过使用时间上在前画面1912的同位块1940的运动矢量来产生当前画面1910的当前块1900的运动矢量预测因子。例如,当针对另一时间上在前画面1916的块1942、画面1912和1916之间的时间距离t9以及画面1910和1916之间的时间距离t10来产生同位块1940的运动矢量mv_colC时,当前块1900的运动矢量预测因子mv_L0C可被如下产生:

mv_L0C=(t10/t9)×mv_colC

可基于如上参照图19A和图19B所述的POC来产生运动矢量mv_L0C。可基于当前画面1910的POC、由当前画面1910参考的画面的POC、时间上在前画面1912的POC或者另一时间上在前画面1916的POC来产生运动矢量mv_L0C。

由于当前画面1910是P画面,因此在图19C中(与图19A和19B不同)仅产生当前画面1900的一个运动矢量预测因子候选。

总之,由运动矢量编码器1420产生的运动矢量预测因子候选的组C可如下。

C={median(mv_a’,mv_b’,mv_c’),mv_a’,mv_b’,mv_c’,mv_temporal}

这里,如上参照图16至图18所述,mv_a’表示构成从当前块的左侧块初始有效的相邻块的运动矢量的第一运动矢量预测因子,mv_b’表示构成从当前块的顶部块初始有效的相邻块的运动矢量的第二运动矢量预测因子,mv_c’表示构成从位于当前块的角落的块有效的相邻块的运动矢量的第三运动矢量预测因子。这里,关于相邻块的有效性,顺序地确定以下项:i)相邻块是否参考由当前块参考的第一参考画面、ii)相邻块是否参考除了第一参考画面之外的存在于与第一参考画面相同列表方向上的参考画面、以及iii)相邻块是否参考存在于与第一参考画面不同的列表方向上的参考画面,并且满足以上条件的初始扫描的相邻块的运动矢量被确定为运动矢量预测因子候选。另外,median()表示中值,mv_temporal表示通过使用以上参照图19A至图19C描述的时间距离产生的运动矢量预测因子候选。如上所述,在将相邻块的运动矢量的中值确定为运动矢量预测因子候选时,运动矢量编码器1420可通过仅使用相同类型的运动矢量来计算中值。换句话说,运动矢量编码器1420可通过仅使用当前块的相邻块的运动矢量中的参考第一参考画面的运动矢量来确定第一至第三运动矢量预测因子,并将第一至第三运动矢量预测因子的中值包括在当前块的运动矢量预测因子候选中。可选择地,如上所述,运动矢量编码器1420可通过使用参考与第一参考画面相同列表方向上的参考画面的相邻块的运动矢量或者参考与第一参考画面不同列表方向上的参考画面的相邻块的运动矢量来确定第一至第三运动矢量预测因子,并将第一至第三运动矢量预测因子的中值包括在当前块的运动矢量预测因子候选中。这里,仅当所有的第一至第三运动矢量预测因子参考除了第一参考画面之外的参考画面时,运动矢量编码器1420可将第一至第三运动矢量预测因子的中值包括在运动矢量预测因子候选中。

运动矢量编码器1420可添加关于运动矢量预测因子候选的组C的元素中的哪个运动矢量预测因子被用于比特流的信息,作为关于运动矢量预测因子的信息。详细地,为了指定组C中的一个元素,运动矢量编码器1420可将索引(index)分配给每个运动矢量预测因子候选,并将实际用于对运动矢量进行编码的运动矢量预测因子的索引信息添加到比特流。

另外,当组C被产生时,运动矢量编码器1420在对运动矢量进行编码时,可将可使用的运动矢量预测因子区分优先次序以根据优先级来使用可使用的运动矢量预测因子。例如,运动矢量编码器1420以所示顺序将median(mv_a’,mv_b’,mv_c’)、mv_a’、mv_b’、mv_c’和mv_temporal区分优先次序,以确定将用于对运动矢量进行编码的运动矢量预测因子。

熟练的技术人员将理解,除了上述运动矢量预测因子候选之外的运动矢量预测因子候选可被使用。

可选择地,运动矢量编码器1420可将相邻块分类为N(N是整数)个相邻组,并通过使用参考与第一参考画面相同列表方向上的另一参考画面的相邻块的运动矢量或者参考与第一参考画面不同列表方向上的另一参考画面的相邻块的运动矢量来确定用于N个相邻组各自的N个运动矢量预测因子,并将第一至第三运动矢量预测因子的中值包括在当前块的运动矢量预测因子候选中。例如,参照回图15B,运动矢量编码器1420可将相邻块分类为两组。这里,一组包括与当前块的顶部相邻的a0至an块1510以及右上c块1531。另一组包括与当前块的左侧相邻的b0至bn块1520以及左下e块1532。在将当前块的相邻块分组为两组之后,如上所述,运动矢量编码器1420确定用于两组各自的两个运动矢量预测因子。另外,运动矢量编码器1420可根据相邻块的位置来将相邻块分类为N个相邻组,并确定用于N个相邻组各自的N个运动矢量预测因子。

同时,运动矢量编码器1420可仅对指示当前块的运动矢量预测因子基于在当前块之前编码的相邻区域中所包括的块还是像素被编码的信息进行编码。换句话说,运动矢量编码器1420可不对用于指定运动矢量预测因子的信息进行编码,并且可仅对指示运动矢量预测因子被产生的信息进行编码。同样,在编解码器(诸如MPEG-4、H.264或者MPEG-4AVC)中,在当前块之前编码的相邻块的运动矢量被用于预测当前块的运动矢量。当位于当前块的左侧、顶部或右上方的先前编码的相邻块的运动矢量的中值被确定用作当前块的运动矢量预测因子时,用于选择运动矢量预测因子候选之一的信息可不被单独地编码。

换句话说,当在编码处理期间对指示当前块的运动矢量预测因子以不直接模式(implicit mode)被编码的信息进行编码时,在解码处理期间,位于当前块的左侧、顶部和右上方的相邻块的运动矢量的中值可被用作当前块的运动矢量预测因子。具体地,根据另一示例性实施例的用于对运动矢量进行编码的方法和设备可通过将在当前块之前编码的相邻像素值用作模板(template)来产生运动矢量预测因子。这将参照图20进行详细描述。

图20是用于描述根据示例性实施例的以不直接模式产生运动矢量预测因子的方法的示图。

参照图20,通过使用在当前块2000之前编码的相邻区域2020中所包括的像素2022来产生当前画面2010的当前块2000的运动矢量预测因子。通过使用像素2022搜索参考画面2012来确定与像素2022相应的像素2024。可通过计算代价(诸如绝对差和(SAD))来确定像素2024。当像素2024被确定时,像素2022的运动矢量mv_template被确定,并且运动矢量mv_template可被用作当前块2000的运动矢量预测因子。当在参考画面2012中搜索运动矢量mv_template时,以上描述的运动矢量预测因子候选的组C可被使用。

图21是根据示例性实施例的用于对运动矢量进行解码的设备2100的框图。

图21的设备2100包括涉及对运动矢量进行编码的元件,诸如图5的运动补偿器560和熵解码器520,其中,图5的熵解码器520可执行由图21的运动矢量解码器2110执行的操作。

参照图21,设备2100包括运动矢量解码器2110和运动补偿器2120。

运动矢量解码器2110对关于从比特流解码的当前块的运动矢量预测因子的信息、以及当前块的运动矢量与当前块的运动矢量预测因子之间的差进行解码。详细地,运动矢量解码器2110对指示以上描述的运动矢量预测因子候选中的被用作将被解码的当前块的运动矢量预测因子的运动矢量预测因子的索引信息进行解码。如果运动矢量预测因子候选包括以上参照图19A至图19C描述的mv_temporal,则关于用于产生mv_temporal的同位块是当前画面的时间上在前画面还是时间上在后画面的块的信息也被解码。如果如图20所示以不直接模式对当前块的运动矢量预测因子进行编码,则指示不直接模式的模式信息被解码。

运动补偿器2120基于关于当前块的运动矢量预测因子的信息来产生当前块的运动矢量预测因子。换句话说,运动补偿器2120根据关于运动矢量预测因子的信息确定哪个运动矢量预测因子被用作当前块的运动矢量预测因子,并通过将确定的运动矢量预测因子与解码的差相加来恢复当前块的运动矢量。在如以上参照图16至图18所述而编码的运动矢量预测因子中,当相邻块中不存在与当前块类似地具有参考第一参考画面的运动矢量的块时,可通过使用参考除了第一参考画面之外的参考画面的相邻块的运动矢量来确定运动矢量预测因子。

图22是示出根据示例性实施例的对运动矢量进行解码的方法的流程图。

参照图22,分别在操作2210和2220,运动矢量解码器2110对关于从比特流解码的当前块的运动矢量预测因子的信息进行解码,并对当前块的运动矢量与当前块的运动矢量预测因子之间的差进行解码。如上所述,运动矢量解码器2110对指示运动矢量预测因子候选中的用作将被解码的当前块的运动矢量预测因子的运动矢量预测因子的索引信息进行解码。如果运动矢量预测因子候选包括以上参照图19A至图19C描述的mv_temporal,则关于用于产生mv_temporal的同位块是当前块的时间上在前画面还是时间上在后画面的块的信息也被解码。如果如图20所示以不直接模式对当前块的运动矢量预测因子进行编码,则指示不直接模式的模式信息被解码。

在操作2230,运动补偿器2120基于关于运动矢量预测因子的信息来产生当前块的运动矢量预测因子,并且通过将运动矢量预测因子与差相加来恢复当前块的运动矢量。如上所述,在如以上参照图16至图18所述而编码的运动矢量预测因子中,当相邻块中不存在与当前块类似地具有参考第一参考画面的运动矢量的块时,可通过使用参考除了第一参考画面之外的参考画面的相邻块的运动矢量来确定运动矢量预测因子。

示例性实施例也可被实施为计算机可读记录介质上的计算机可读代码。计算机可读记录介质是可存储其后可由计算机系统读取的数据的任何数据存储装置。计算机可读记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘、光数据存储装置等。计算机可读记录介质还可分布在联网的计算机系统上,使得计算机可读代码以分布式方式被存储和执行。可选择地,示例性实施例可被实施为用于通过网络(诸如,互联网)传输的计算机可读传输介质(诸如,载波)。

示例性实施例的设备、编码器和解码器可包括与设备的每个单元连接的总线、与总线连接以用于控制设备的操作来执行上述功能并用于执行命令的至少一个处理器(例如,中央处理单元、微处理器等)以及与总线连接以用于存储命令、接收的消息和产生的消息的存储器。

虽然已参照本发明的示例性实施例具体地示出并描述了本申请的多方面,但本领域的普通技术人员将理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可在其中做出形式和细节上的各种改变。示例性实施例应被视为仅是描述性的,而不是为了限制。因此,本发明的范围由权利要求限定而不由详细描述限定,并且在所述范围之内的所有不同将被理解为被包括在本发明中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1