用于编码运动图片的设备转让专利

申请号 : CN201611271609.8

文献号 : CN107087198A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴秀美梁文玉

申请人 : M&K控股株式会社

摘要 :

提供了一种用于编码运动图片的设备,当当前编码块的左编码块的量化步距和所述当前编码块的上编码块的量化步距无法使用时,所述设备根据扫描顺序将前一个编码块的量化步距确定为所述当前编码块的量化步距预测值,并且将当按照参考图片中的第一预定位置的运动矢量和第二预定位置的运动矢量的顺序检索运动矢量时首先遇到的可用的运动矢量确定为时间运动矢量候选项。因此,能够减少编码所述当前预测块的运动信息和量化步距所需的编码位的数量。

权利要求 :

1.一种用于编码运动图片的设备,包括:

帧间预测单元,被配置为当以帧间预测模式编码当前块时,通过执行运动估计来确定所述当前块的参考图片和运动矢量,并且从所述参考图片提取与所述当前块对应的预测块;

帧内预测单元,被配置为当以帧内预测模式编码所述当前块时,确定所述当前块的帧内预测模式,并且根据所述当前块的帧内预测模式生成与所述当前块对应的预测块;

变换单元,被配置为变换通过计算所述当前块与所述预测块之间的差而获得的残差块,以生成变换块;

量化单元,被配置为确定当前编码块的量化步距且使用所述量化步距来量化所述变换块,以生成量化的变换块;

扫描单元,被配置为扫描所述量化的变换块的量化的变换系数,以生成一维量化的变换系数;以及熵编码单元,被配置为对所述一维量化的变换系数进行熵编码,

其中,所述运动矢量预测值是可用的空间运动矢量候选项或可用的时间运动矢量候选项,并且所述时间运动矢量候选项是当按照参考图片中的第一预定位置的运动矢量和第二预定位置的运动矢量的顺序检索运动矢量时首先遇到的可用的运动矢量,其中,使用量化步距预测值编码所述量化步距,并且所述量化步距预测值是通过使用所述当前编码块的左编码块的量化步距和所述当前编码块的上编码块的量化步距生成的,其中,当所述当前编码块的左编码块的量化步距和所述当前编码块的上编码块的量化步距不可用时,将扫描顺序中前一个编码块的量化步距选为所述当前编码块的量化步距预测值,其中,当所述变换块的大小大于4×4时,所述量化的变换块的所述量化的变换系数被分割成多个子块,其中,当以帧内预测模式编码所述当前块时,根据通过所述当前块的帧内预测模式确定的扫描方式来扫描所述多个子块,并且根据通过所述当前块的帧内预测模式确定的扫描方式来扫描每个子块的量化的变换系数,其中,用于扫描所述多个子块的扫描方式与用于扫描每个子块的量化的变换系数的扫描方式相同,并且其中,当以帧间预测模式编码所述当前块时,以预定的扫描方式扫描所述多个子块和每个子块的量化的变换系数。

2.根据权利要求1所述的设备,其中,对每个编码块确定所述量化步距。

3.根据权利要求1所述的设备,其中,对大小等于或大于预定大小的编码块确定所述量化步距。

4.根据权利要求1所述的设备,其中,所述扫描单元在相反方向上扫描每个子块的量化的变换系数和所述多个子块。

说明书 :

用于编码运动图片的设备

[0001] 本案是分案申请,其母案为于2011年8月12日申请的申请号为201180050178.1的题为“帧间预测编码方法”的专利申请。

技术领域

[0002] 本发明涉及一种帧间预测编码方法,更具体地讲,涉及一种使用与当前预测单元相邻的预测单元的运动矢量和位于被先前编码的参考图片的预定位置处的运动矢量之一对当前预测单元的运动矢量进行编码的帧间预测编码方法。

背景技术

[0003] 本发明涉及一种通过预测当前预测单元的运动矢量进行编码和解码的设备及方法。
[0004] 在例如运动图像专家组(MPEG)-1、MPEG-2、MPEG-4和H.264/MPEG-4先进视频编码(AVC)等的图像压缩方法中,一张图片被分割成多个宏块以对图像进行编码。并且,通过使用帧间预测或帧内预测对各个宏块进行编码。然后,根据将要编码的宏块的数据大小和原始宏块的失真选择最佳的编码模式,并且对宏块进行编码。
[0005] 在帧间预测中,使用运动估计以消除连续图片之间的时间冗余度。运动估计编码是通过使用一个或多个参考图片来估计并补偿块单元中当前图片的运动而对图像进行编码的方法。
[0006] 在运动估计编码中,通过使用预定的估计函数在参考图片的预定的搜索范围内搜索与当前块最相似的块。如果搜索到最相似的块,则仅发送当前块与参考图片中最相似的块之间的残差以提高数据压缩比。
[0007] 此时,为了对经过运动估计编码的当前块进行解码,用于运动矢量的信息表示当前块与参考图片中相似块之间的位置差。因此,当对当前块进行编码时,需要在比特流中插入用于运动矢量的编码信息。在此过程中,如果照这样对用于运动矢量的信息进行编码并且插入,则降低了图像数据的压缩比,因为增加了额外负担。
[0008] 因此,在帧间预测编码中,使用与当前块相邻的块来预测当前块的运动矢量,仅编码并且发送生成的运动矢量预测值与原始运动矢量之间的差值,并且还压缩运动矢量的信息。
[0009] 在H.264中,将作为当前块的运动矢量的预测值的运动矢量预测值确定为mvA、mvB和mvC的中间值。由于相邻的块倾向于彼此相似,所以将当前块的运动矢量确定为相邻的块的运动矢量的中间值。
[0010] 但是,如果相邻的块的一个或多个运动矢量不同于当前块的运动,则对于当前块而言,相邻的块的运动矢量的中间值可能不是有效的运动矢量预测值。另外,当图像的运动很小或者静止时,需要选择用于预测运动矢量的候选项并且将运动矢量进行编码或解码的方法,该方法与已知的运动预测方法相比更加有效。

发明内容

[0011] 技术问题
[0012] 本发明涉及提供一种使用与当前预测单元相邻的预测单元的运动矢量和位于被先前编码的参考图片的预定位置处的运动矢量之一对当前预测单元的运动矢量进行编码的帧间预测方法。
[0013] 技术方案
[0014] 本发明的一方面提供了一种帧间预测编码方法,包括:确定参考图片索引和当前预测单元的运动矢量;使用每个均存在于预定位置处的相邻的预测单元的可用的运动矢量导出空间运动矢量候选项;导出所述当前预测单元的时间运动矢量候选项,确定所述空间运动矢量候选项和所述时间运动矢量候选项之一作为所述当前预测单元的运动矢量预测值;以及计算所述当前预测单元的运动矢量与所述运动矢量预测值之间的运动矢量差值,并且对所述运动矢量差值和所述参考图片索引进行编码,其中所述时间运动矢量候选项是每个均存在于与所述当前预测单元对应的并被先前编码的参考图片中的位置处的当前预测单元的运动矢量或与当前预测单元相邻的预测单元的运动矢量。
[0015] 有益效果
[0016] 根据本发明的方法通过使用与当前单元相邻并且在预定位置处存在的相邻预测单元的可用的运动矢量来导出空间运动矢量候选项,通过使用每个均存在于与当前预测单元对应的并被先前编码的参考图片中的位置处的当前预测单元的运动矢量或与当前预测单元相邻的预测单元的运动矢量来导出当前预测单元的时间运动矢量候选项。并且所述方法确定空间和时间运动矢量候选项之一作为运动矢量预测值,并且计算当前预测单元的运动矢量与运动矢量预测值之间的运动矢量差值。因此,通过使用时间和空间运动矢量候选项,能够减少对当前预测单元的运动信息进行编码所需的编码位的数量。

附图说明

[0017] 图1是根据本发明的帧间预测编码设备的方框图。
[0018] 图2是根据本发明的帧间预测解码设备的方框图。
[0019] 图3是示出根据本发明生成跳过的编码预测单元的重构块的过程的流程图。
[0020] 图4是示出了根据本发明的空间跳过候选项的位置的示意图。
[0021] 图5是示出了根据本发明的用于导出时间跳过候选项的预测单元的位置的示意图。
[0022] 图6是示出了根据本发明的与当前预测单元相对应的时间跳过候选图片中块的位置的示意图。
[0023] 图7是示出了生成根据本发明编码的预测单元运动矢量预测用的重构块的过程的流程图。
[0024] 图8是示出了根据本发明的用于生成空间运动矢量候选项的、与当前预测单元相邻的预测单元的位置的示意图。

具体实施方式

[0025] 以下将参照附图详细描述本发明的各个实施例。然而,本发明并不局限于以下公开的示例性实施例,而是可以以多种形式实施。因此,可以对本发明进行许多其他的修改和设变,但是要理解的是在所公开的内容的范围内,本发明另外可以以不同于具体描述的方式实施。
[0026] 将一张图片分割成多个切片,并且将每个切片分割成多个最大的编码单元(LCU)。每个LCU的位置由地址指示器指定。LCU可以是编码单元自身或者可以被分割成多个编码单元。LCU包含表示LCU中编码单元结构的信息。使用一个或多个分隔标志来表示LCU中编码单元的结构。
[0027] 每个编码单元包括一个或多个预测单元。预测单元是帧内预测或帧间预测用的基本单元。
[0028] 变换单元是变换编码用的基本块。在帧内预测中,预测单元包含一个或多个变换单元。在帧间预测中,变换单元可以是由一个或多个预测单元构成的。预测单元的最大大小被定义为顺序参数集(SPS),并且变换单元可以被分割为递归四叉树的形式。帧内预测中预测单元的最大大小可以与帧间预测中预测单元的最大大小不同。帧内预测和帧间预测的预测单元的最大大小都包含在SPS中。
[0029] 图1是根据本发明的帧间预测编码设备的方框图。
[0030] 参照图1,根据本发明的帧间预测编码设备100包括图片分割单元110、变换单元120、量化单元130、扫描单元131、熵编码单元140、帧内预测单元150、帧间预测单元160、反向量化单元135、反向变换单元125、后处理单元170、图片存储单元180、减法器190和加法器
195。
[0031] 图片分割单元110分析输入的视频信号,从而将图片的每个LCU分割成每个均具有预定大小的一个或多个编码单元,确定每个编码单元的预测模式,并且确定每个编码单元的预测单元的大小。图片分割单元110根据预测模式将要编码的预测单元发送到帧内预测单元150或帧间预测单元160。另外,图片分割单元110将要编码的预测单元发送到减法器190。
[0032] 变换单元120将残差块进行变换,该残差块是预测单元的原始块与帧内预测单元150或帧间预测单元160生成的预测块之间的残差信号。残差块可以由编码单元构成。由编码单元构成的残差块可以被分割成最佳变换单元并且进行变换。根据预测模式(帧内或帧间)和帧内预测模式可以自适应地确定变换矩阵。变换单元可以通过水平的和垂直的一维(1D)变换矩阵进行变换。在帧间预测中,采用一个预定的变换矩阵。
[0033] 在帧内预测中,当帧内预测模式是水平的时候,残差块很可能具有垂直方向性。因此,垂直方向采用基于离散余弦变换(DCT)的整数矩阵,并且水平方向采用基于离散正弦变换(DST)或基于卡洛变换(KLT)(Karhunen Loève transform)的整数矩阵。当帧内预测模式是垂直的时候,在垂直方向采用基于DST或KLT的整数矩阵,在水平方向采用基于DCT的整数矩阵。当帧内预测模式是DC的时候,在两个方向都可以采用基于DCT的整数矩阵。也就是说,在帧内预测中,可以根据变换单元的大小和帧内预测模式自适应确定变换矩阵。
[0034] 量化单元130确定用于对变换矩阵所变换的残差块的变换系数进行量化的量化步距。对大小等于或大于预定大小的编码单元确定量化步距。对于大小小于预定大小的编码单元,量化步距取决于预定大小。通过使用所确定的量化步距和根据预测模式确定的量化矩阵,量化变换块的变换系数。量化单元130可以将相邻的编码单元的量化步距确定为当前编码单元的量化步距预测值。例如,量化单元130可以将当前编码单元的左侧编码单元的量化步距确定为量化步距预测值。如果左侧编码单元无法使用,则确定扫描顺序中前一个编码单元的量化步距作为当前编码单元的量化步距预测值。作为另外一种选择,通过按照左侧编码单元、上侧编码单元和前一个编码单元的顺序扫描,将第一个可用的量化步距确定为量化步距预测值。
[0035] 量化的变换块被提供到反向量化单元135和扫描单元131。
[0036] 扫描单元131扫描量化的变换块的量化的变换系数,从而将量化的变换系数转换成一维量化的变换系数。根据预测模式和帧内预测模式确定扫描方式。也可以根据变换单元的大小确定扫描方式。
[0037] 扫描单元131根据当前变换单元的大小确定是否将量化的变换块分割成多个子集。如果变换单元的大小大于第一参考大小,则将量化的变换块分割成多个子集。第一参考大小是4x4或8x8。
[0038] 扫描单元131确定将要应用于量化的变换块的扫描方式。在帧间预测中,使用预定的扫描方式(例如,锯齿状扫描)。在帧内预测中,根据帧内预测模式和变换单元的大小选择扫描方式。在非定向帧内预测模式模式中,使用预定的方式。非定向帧内预测模式是DC模式或平面模式。
[0039] 在定向帧内预测模式中,扫描方式可以根据帧内预测模式以及变换单元的大小的变化而变化。在定向帧内预测模式中,如果变换单元的大小等于或大于预定大小,则使用预定的扫描方式;并且如果变换单元的大小小于预定大小,则根据定向帧内预测模式自适应选择扫描方式。预定大小是16x16。
[0040] 如果变换单元的大小小于预定大小,使用三个扫描方式中的一个。三个扫描方式是第一扫描方式(预定扫描)、第二扫描方式(水平扫描)和第三扫描方式(垂直扫描)。对于垂直帧内预测模式,采用第二扫描方式,因为在水平方向上很可能存在非零系数。对于在两侧与垂直帧内预测模式相邻的预定数量的定向帧内预测模式,采用第二扫描方式。对于水平帧内预测模式,采用第三扫描方式。对于在两侧与水平帧内预测模式相邻的预定数量的定向帧内预测模式,采用第三扫描方式。预定数量是3或4。
[0041] 在相反方向上扫描量化的变换系数。当量化的变换系数被分割成多个子集时,将同一个扫描方式应用于每个子集的量化的变换系数。多个子集包括主子集和一个或多个剩余子集。主子集位于左上侧并且包括DC系数。一个或多个剩余子集覆盖不同于主子集的区域。
[0042] 锯齿状扫描可以用于扫描这些子集。可以在前向方向上从主子集到剩余子集扫描子集,或者可以在相反的方向上扫描子集。扫描子集用的扫描方式可以设置成与扫描量化的变换系数用的扫描方式相同。在这种情况下,根据帧内预测模式确定扫描子集用的扫描方式。
[0043] 编码器将能表示变换单元的最后一个非零量化系数的位置的信息发送到解码器。编码器还将能表示每个子集的最后一个非零量化系数的位置的信息发送到解码器。
[0044] 反向量化单元135将量化的变换系数进行反向量化。反向变换单元125从反向量化的变换系数中恢复空间域的残差块。加法器195通过将反向变换单元125重构的残差块加上来自帧内预测单元150或帧间预测单元160的预测块而生成重构块。
[0045] 后处理单元170执行用于清除重构的图片中产生的块效应的去块滤波过程、用于补偿重构的图片与原始图像的每个像素之间的差值的自适应偏移应用过程、以及用于补偿编码单元中重构的图片与原始图像之间的差值的自适应回路滤波器过程。
[0046] 去块滤波过程可以应用于具有预定大小或更大的预测单元之间的边界以及变换单元之间的边界。预定大小可以是8×8。去块滤波过程包括:确定将要滤波的边界的步骤,确定将要应用于边界的边界滤波强度的步骤,确定是否应用去块滤波器的步骤,以及当确定采用去块滤波器时选择将要应用于边界的滤波器的步骤。
[0047] 根据以下内容确定是否采用去块滤波器:i)边界滤波强度是否大于0;ii)表示P块和Q块的边界像素之间的差的值是否小于根据量化参数确定的第一参考值。
[0048] 可能存在两个或更多个滤波器。当与块边界相邻的两个像素之间的差值的绝对值等于或大于第二参考值时,选择弱滤波器。由量化参数和边界滤波强度确定第二参数值。
[0049] 可以根据通过比较原始图像与去块滤波过程或自适应偏移应用过程所应用的重构的图像而获得的一个值,来执行自适应回路滤波过程。通过根据4×4块的一个拉普拉斯算子的活性值来检测自适应回路滤波器(ALF)。所确定的ALF可以应用于包括在4×4块或8×8块中的所有像素。可以根据编码单元来确定是否采用ALF。回路滤波器的大小和系数可以根据每个编码单元的变化而变化。切片头可以包括表示是否将ALF应用于每个编码单元的信息、滤波器系数信息和滤波器形状信息等等。在色度分量的情况下,可以在图片单元中确定是否应用ALF。与亮度不同,回路滤波器可以具有矩形形状。
[0050] 可以根据通过比较原始图像与去块滤波过程或自适应偏移应用过程所应用的重构图像而获得的一个值,来执行自适应回路滤波过程。通过根据4×4块的一个拉普拉斯算子的活性值来检测自适应回路滤波器(ALF)。所确定的ALF可以应用于包括在4×4块或8×8块中的所有像素。可以根据编码单元来确定是否采用ALF。回路滤波器的大小和系数可以根据每个编码单元的变化而变化。表示是否将ALF应用于每个编码单元的信息、滤波器系数信息和滤波器形状信息可以被包括在切片头中并且被发送到解码器。在色度信号的情况下,可以在图片单元中确定是否应用ALF。与亮度不同,回路滤波器可以具有矩形形状。
[0051] 根据顺序或图片执行自适应回路滤波过程。ALF滤波器参数信息被包括在图片头中或切片头中。如果ALF滤波器参数信息被包括在图片头中,则切片头不包括ALF滤波器参数信息。但是,如果ALF滤波器参数信息不包括在图片头中,则切片头包括ALF滤波器参数信息。ALF滤波器参数信息包括亮度分量用的滤波器的水平长度和/或垂直长度和滤波器数量。如果滤波器的数量是2或更多,则ALF滤波器参数信息可以包括表示是否使用预测对滤波器进行编码的信息。当使用预测对滤波器进行编码时,ALF滤波器参数信息包括被预测性编码的滤波器系数。反之,当不使用预测对滤波器进行编码时,ALF滤波器参数信息包括未被预测性编码的滤波器系数。
[0052] 也可以自适应地对色度分量进行滤波。ALF滤波器参数信息可以包括每个色度分量是否被滤波的信息。为了减少位数,表示Cr分量是否被滤波的信息以及表示Cb分量是否被滤波的信息可以被共同编码。优选的是,在Cr和Cb分量两者都未被滤波的情况下熵编码分配最低信息,因为Cr和Cb分量两者都未被滤波的可能性很大。对于Cr和Cb分量中至少一个被滤波的情况,ALF滤波器参数信息包括表示色度分量用的滤波器系数的水平长度和/或垂直长度以及滤波器的信息。
[0053] 另外,对于等于或大于预定大小的每个编码单元,可以打开或关闭ALF过程。因此,每个切片头包括表示是否对切片中的每个编码单元应用ALF过程的信息。
[0054] 图片存储单元180从后处理单元170接收后处理的图像数据,并且将图像存储在图片单元中。图片可以是以帧或场为单位的图像。图片存储单元180具有能存储多个图片的缓冲器(未示出)。
[0055] 帧间预测单元160使用存储在图片存储单元180中的一个或多个参考图片来执行运动估计,并且确定表示参考图片的参考图片索引和运动矢量。根据参考图片索引和运动矢量,帧间预测单元160从存储于图片存储单元180中的多个参考图片中选择的一个参考图片提取与将要编码的预测单元相对应的预测块,并且输出所提取的预测块。
[0056] 帧内预测单元150使用当前图片中重构的参考像素值执行帧内预测。帧内预测单元150接收将要被预测性编码的当前的预测单元,选择预定数量的帧内预测模式之一,并且执行帧内预测。预定数量的帧内预测模式可以根据当前的预测单元的大小确定。帧内预测单元自适应滤波参考像素以生成帧内预测块。当一些参考像素无法使用时,能够使用一个或多个可用的参考像素在无法使用的位置处生成参考像素。
[0057] 熵编码单元140对量化单元130所量化的量化系数、从帧内预测单元150接收的帧内预测信息、从帧间预测单元160接收的运动信息等进行熵编码。
[0058] 同时,根据本发明的运动图片编码设备100对运动矢量进行预测性编码。运动矢量的编码过程由帧间预测单元160和熵编码单元140执行。运动矢量的编码过程如下。
[0059] 首先,获得当前预测单元的运动矢量。将存在于预定位置处的相邻的预测单元的可用的运动矢量确定为空间运动矢量候选项。如果相邻的预测单元的运动矢量不存在,或者相邻的预测单元不包括在当前切片中,则将运动矢量确定为无法使用。
[0060] 接下来,可以对空间运动矢量进行自适应地缩放。如果当前预测单元和相邻的预测单元具有相同的参考图片,则不缩放运动矢量候选项。但是,如果当前预测单元和相邻的预测单元具有不同的参考图片,或者参考图片的时间距离不一样,则可以使用时间距离对运动矢量候选项进行缩放。对于静态图像(例如,背景图像),不可以将运动矢量进行缩放。可以将空间运动矢量候选项的缩放数量限定为预定数量。
[0061] 在空间运动矢量候选项和时间运动矢量候选项之中选择运动矢量预测值,然后对当前预测单元的运动矢量与运动矢量预测值之间的运动矢量差值(MVD)进行编码。并且对表示运动矢量预测值的信息进行编码。
[0062] 时间运动矢量候选项是位于或靠近与当前预测单元的位置相对应的一个参考图片中的位置处的预测单元的运动矢量。当位于与参考图片中当前预测单元的位置相对应的一个参考图片中的位置或其附近存在预测单元的多个运动矢量时,根据预定的方法选择一个运动矢量作为时间运动矢量。例如,如果位于与图片中的当前预测单元相对应的第一位置处的块的运动矢量可用,则将运动矢量确定为时间运动矢量候选项。但是,如果位于第一位置处的块的运动矢量无法使用,则将位于第二位置处的块的运动矢量确定为时间运动矢量候选项。
[0063] 在B切片(双向预测)中,从包括时间运动矢量候选项的参考图片导出参考图片列表0或1。因此,将表示一个参考图片列表的列表信息发送到解码器,并且解码器使用列表指示符来确定参考图片。
[0064] 比特流中可以包括表示是否使用了时间运动矢量候选项的信息。因此,运动矢量的解码过程可以根据信息而变化。
[0065] 空间运动矢量候选项包括左运动矢量候选项和上运动矢量候选项。当前预测单元的左运动矢量候选项是当前预测单元的左侧预测单元的运动矢量或左下侧预测单元的运动矢量。左运动矢量候选项是在按照预定的顺序检索左侧预测单元和左下侧预测单元的运动矢量时遇到的第一个可用的运动矢量。当前预测单元的上运动矢量候选项是当按照预定的顺序检索当前预测单元的上侧预测单元、右上侧预测单元和左上侧预测单元的运动矢量时遇到的第一个可用的运动矢量。
[0066] 如果运动矢量候选项具有相同的运动矢量,则去除序数较大的运动矢量候选项。如果运动矢量候选项是一个,则将该运动矢量候选项确定为运动矢量预测值,并且不对表示运动矢量预测值的预测值指示符进行编码。
[0067] 图2是根据本发明的帧内预测解码设备的方框图。
[0068] 根据本发明的解码设备包括熵解码单元210、反向扫描单元215、反向量化单元220、反向变换单元225、加法器270、后处理单元250、图片存储单元260、帧内预测单元230、帧间预测单元240和开关280。
[0069] 熵解码单元210从接收的由运动图片编码设备发送的比特流提取帧内预测模式索引、运动矢量、量化系数序列等。熵解码单元210将解码的运动信息发送到帧间预测单元240,将帧内预测模式信息发送到帧内预测单元230和反向量化/变换单元225,将量化系数序列发送到反向量化单元220和反向量化/变换单元225。
[0070] 反向扫描单元215将量化的系数信息转换成二维(2D)的反向量化的变换块。选择多个反向扫描方式中的一个用于变换。根据帧内预测模式选择反向扫描方式。如果当前变换单元的大小大于预定的参考大小,则根据选择的反向扫描方式反向地扫描每个子集的量化的变换系数,以生成量化的变换单元。如果将要解码的变换单元的大小等于预定的参考大小,则根据选择的反向扫描方式反向地扫描量化的变换块的量化的变换系数,以生成量化的变换单元。如果在子集的单元中反向地扫描量化的变换系数,则将同一个反向扫描方式应用于每个子集中的量化的变换系数。多个子集包括主子集和一个或多个剩余子集。主子集位于左上侧并且包括DC系数,并且一个或多个剩余子集覆盖与主子集不同的区域。
[0071] 将要应用于子集的扫描方式可以是锯齿状扫描。可以在前向方向上从主子集到剩余子集反向地扫描子集,或者可以在相反的方向上扫描子集。扫描子集用的扫描方式可以设置成与扫描量化的变换系数用的扫描方式相同。反向扫描单元215使用表示变换单元的最后一个非零量化系数的位置的信息来执行反向扫描过程。
[0072] 在定向帧内预测模式中,扫描方式可以根据帧内预测模式以及变换单元的大小而变化。在定向帧内预测模式中,如果变换单元的大小等于或大于预定大小,则使用预定的扫描方式,并且如果变换单元的大小小于预定大小,则根据定向帧内预测模式自适应选择扫描方式。预定大小是16x16。
[0073] 如果变换单元的大小小于预定大小,则使用三个扫描方式中的一个。三个扫描方式是第一扫描方式(预定扫描)、第二扫描方式(水平扫描)和第三扫描方式(垂直扫描)。在垂直帧内预测模式中,采用第二扫描方式,因为在水平方向上很可能存在非零系数。对于在两侧与垂直帧内预测模式相邻的预定数量的定向帧内预测模式,采用第二扫描方式。在水平帧内预测模式中,采用第三扫描方式。对于在两侧与水平帧内预测模式相邻的预定数量的定向帧内预测模式,采用第三扫描方式。预定数量是3或4。
[0074] 反向量化单元220恢复量化步距以反向地量化二维反向量化的系数。对大小等于或大于预定大小的编码单元确定量化步距。如果编码单元的大小小于预定大小,则量化步距取决于预定大小。反向量化单元220可以将相邻的编码单元的量化步距确定为当前编码单元的量化步距预测值。例如,反向量化单元220可以将当前编码单元的左侧编码单元的量化步距确定为当前编码单元的量化步距预测值。如果左侧编码单元无法使用,则确定扫描顺序中前一个编码单元的量化步距作为当前编码单元的量化步距预测值。作为另外一种选择,当按照左侧编码单元、上侧编码单元和前一个编码单元的顺序进行扫描时,将可用的量化步距确定作为当前编码单元的量化步距预测值。
[0075] 当确定了量化步距预测值时,通过将量化步距预测值加上接收的残差的量化步距,从而获得量化步距。然后,使用根据量化步距和预测模式确定的量化矩阵,反向地量化反向量化的系数。
[0076] 反向变换单元225将反向量化的块进行反向地变换以恢复残差块。根据预测模式(帧内或帧间)和帧内预测模式自适应地确定将要应用到反向量化的块的反向变换矩阵。反向变换矩阵的确定过程与图1中变换单元120的过程相同。
[0077] 加法器270将反向量化/变换单元220重构的恢复的残差块加上帧内预测单元230或帧间预测单元240生成的预测块以生成重构块。
[0078] 后处理单元250对加法器270生成的恢复的图像执行去块滤波器过程。由此,可以减少根据量化过程的图像损失造成的块效应。
[0079] 图片存储单元260是帧存储器,该帧存储器存储由后处理单元250进行去块滤波的重构的局部图像。
[0080] 帧内预测单元230根据所接收的帧内预测模式索引恢复当前块的帧内预测模式,并且根据恢复的帧内预测模式生成预测块。
[0081] 帧间预测单元240根据接收的运动信息恢复当前预测单元的运动矢量,并且生成当前预测单元的预测块。如果应用小数精度的运动补偿,则使用内插滤波器生成预测块。
[0082] 帧间预测单元240按照如下方式解码运动矢量。
[0083] 通过恢复被编码的运动矢量之间的差值来生成运动矢量差值。
[0084] 将存在于预定位置处的相邻的预测单元的可用的运动矢量确定为空间运动矢量候选项。并且自适应地缩放空间运动矢量候选项。如果当前预测单元和相邻的预测单元具有相同的参考图片,则不缩放运动矢量候选项。但是,如果当前预测单元和相邻的预测单元具有不同的参考图片,则可以使用参考图片的时间距离对运动矢量候选项进行缩放。
[0085] 使用表示运动矢量预测值的信息,在空间运动矢量候选项和时间运动矢量候选项中选择运动矢量预测值。然后,将运动矢量差值与运动矢量预测值相加以生成当前预测单元的运动矢量。
[0086] 时间运动矢量候选项是位于或靠近与当前预测单元的位置相对应的一个参考图片中的位置处的预测单元的运动矢量。当位于与参考图片中当前预测单元的位置相对应的一个参考图片中的位置处或其附近存在预测单元的多个运动矢量时,根据预定的方法选择一个运动矢量作为时间运动矢量。例如,如果位于与图片中的当前预测单元相对应的第一位置处的块的运动矢量可用,则将运动矢量确定为时间运动矢量候选项。但是,如果位于第一位置处的块的运动矢量无法使用,则将位于第二位置处的块的运动矢量确定为时间运动矢量候选项。
[0087] 在B切片(双向预测)中,从包括时间运动矢量候选项的参考图片导出参考图片列表0或1。因此解码设备使用列表指示符来确定参考图片。
[0088] 比特流中可以包括表示是否使用了时间运动矢量候选项的信息。因此,运动矢量的解码过程可以根据信息而变化。
[0089] 空间运动矢量候选项包括左运动矢量候选项和上运动矢量候选项。当前预测单元的左运动矢量候选项是当前预测单元的左侧预测单元的运动矢量或左下侧预测单元的运动矢量。左运动矢量候选项是在按照预定的顺序检索左侧预测单元和左下侧预测单元的运动矢量时遇到的第一个可用的运动矢量。当前预测单元的上运动矢量候选项是当按照预定的顺序检索当前预测单元的上侧预测单元、右上侧预测单元和左上侧预测单元的运动矢量时遇到的第一个可用的运动矢量。
[0090] 如果运动矢量候选项具有相同的运动矢量,则去除序数较大的运动矢量候选项。
[0091] 如果运动矢量候选项是一个,则将该运动矢量候选项确定为运动矢量预测值,并且不对表示运动矢量预测值的预测值指示符进行编码。
[0092] 开关280根据预测模式将帧内预测单元230或帧间预测单元240生成的预测块提供给加法器270。
[0093] 本文描述了根据本发明的帧内预测解码方法。所述方法包括:将当前预测单元的运动信息进行解码的过程,生成当前预测单元的预测块的过程,恢复残差块的过程和使用预测块和残差块生成重构块的过程。运动信息包括运动矢量和参考图片索引。
[0094] 图3是示出根据本发明生成跳过的编码单元的重构块的过程的流程图。当所接收的编码单元的skip_flag为1时,执行此过程。
[0095] 首先,在步骤S210中,从相邻的预测单元导出空间跳过候选项。
[0096] 如图4所示,当前单元的左侧预测单元(A块)的运动信息、当前单元的上侧预测单元(B块)的运动信息、当前单元的右上侧预测单元(C块)的运动信息和当前单元的左下预测单元(D块)的运动信息可以是空间跳过候选项。如果A块、B块、C块和D块中的一个或多个块无法使用,当前单元的左上侧预测单元(E块)的运动信息可以是空间跳过候选项块。运动信息包括运动矢量和参考图片索引。
[0097] 作为另外一种选择,左侧预测单元(A块)的运动信息、上侧预测单元(B块)的运动信息和角预测单元的运动信息可以是空间跳过候选项。角预测单元是当按照预定的顺序(例如,按照C块、D块和E块的顺序,按照E块、D块和C块的顺序,等等)检索C、D和E块时遇到的第一个可用的预测单元。
[0098] 检查每个相邻的预测单元的可用性。如果不存在预测单元或者预测单元的预测模式是帧内模式,则将预测单元确定为无法使用。
[0099] 当存在多个左侧预测单元时,在按照预定的顺序(例如,从上到下或从下到上)检查多个左侧预测单元的可用性时遇到的第一个可用的预测单元可以被确定为左侧预测单元,或者左侧最上方的预测单元或左侧最下方的预测单元可以被确定为左侧预测单元。当存在多个上侧预测单元时,在按照预定的顺序(例如,从左到右或从右到左)检查多个上侧预测单元的可用性时遇到的第一个可用的预测单元可以被确定为上侧预测单元,或者上方最左侧的预测单元或上方最右侧的预测单元可以被确定为上侧预测单元。
[0100] 在步骤S220中导出时间跳过候选项。步骤S220包括导出用于时间跳过候选项的参考图片索引的步骤以及导出时间跳过候选项的运动矢量的步骤。
[0101] 在导出用于时间跳过候选项的参考图片索引的步骤中,导出用于时间跳过候选项的参考图片索引。用于时间跳过候选项的参考图片索引可以设置成0。或者可以使用在空间上相邻的预测单元的参考图片索引来导出用于时间跳过候选项的参考图片索引。
[0102] 图5是示出了根据本发明的与用于导出时间跳过候选项的参考图片索引的当前预测单元相邻的预测单元的位置的示意图。用于时间跳过候选项的参考图片索引是相邻的预测单元的参考图片索引之一。
[0103] 左侧预测单元(A块)、上侧预测单元(B块)、右上侧预测单元(C块)、左下侧预测单元(D块)和右上侧单元(E块)的参考图片索引可用于导出用于时间跳过候选项的参考图片索引。
[0104] 当存在多个上侧预测单元时,在从左到右或从右到左检索多个上侧预测单元时遇到的第一个可用的预测单元可以被确定为上侧预测单元。并且将第一可用单元的参考图片索引确定为上侧预测单元的参考图片索引。当存在多个左侧预测单元时,在从上到下检索多个左侧预测单元时遇到的第一个可用的预测单元可以被确定为左侧预测单元。并且将第一可用单元的参考图片索引确定为左侧预测单元的参考图片索引。
[0105] 角预测单元的参考图片索引是在按照C块、D块和E块的顺序检索块时遇到的第一个可用的预测单元的参考图片索引。
[0106] 当确定了左侧相邻的预测单元的参考图片索引(左参考图片索引)、上侧相邻的预测单元的参考图片索引(上参考图片索引)和角相邻的预测单元的参考图片索引(角参考图片索引)时,从其中导出用于时间跳过候选项的参考图片索引。这里,使用C块、D块和E块中的唯一一个来导出用于时间跳过候选项的参考图片索引。但是,可以使用C块和D块(4个候选项)或所有的C块、D块和E块(5个候选项)来导出用于时间跳过候选项的参考图片索引。以下将会描述所有的左参考图片索引、上参考图片索引和角参考图片索引都被使用的情况。
[0107] 将可用的参考图片索引中频率最高的参考图片索引确定为用于时间跳过候选项的参考图片索引。当存在多个具有最高频率的参考图片索引时,将最低的参考图片索引确定为用于时间跳过候选项的参考图片索引。
[0108] 导出用于时间跳过候选项的运动矢量的步骤如下。
[0109] 首先,导出时间跳过候选块所属的图片(时间跳过候选图片)。例如,将索引为0的参考图片确定为时间跳过候选图片。当切片类型为P时,将列表0的第一图片确定为时间跳过候选图片。当切片类型为B时,使用表示时间跳过候选项所属的参考图片列表的切片头的标志来选择一个参考图片列表,并且将来自选择的参考图片列表的参考图片索引为0的图片确定为时间跳过候选图片。例如,当标志为1时,就从列表0中选择时间跳过候选图片。并且当标志为0时,就从列表1中选择时间跳过候选图片。
[0110] 作为另外一种选择,将用于时间跳过候选图片的参考图片索引所表示的参考图片确定为时间跳过候选块所属的时间跳过候选图片。例如,当切片类型为P时,列表0中用于时间跳过候选图片的参考图片索引所表示的参考图片被确定为时间跳过候选图片。当切片类型为B时,使用表示时间跳过候选图片的标志来选择参考图片列表,并且将用于时间跳过候选图片的参考图片列表所表示的参考图片确定为时间跳过候选图片。
[0111] 接下来,导出时间跳过候选块。选择与当前预测单元相对应的多个块之一作为时间跳过候选块。多个块位于时间跳过候选图片中。为这些块的每一个指定优先级。将根据优先级确定的第一个可用的块确定为时间跳过候选块。
[0112] 图6是示出了根据本发明的与当前预测单元相对应的时间跳过候选图片中的块的示意图。
[0113] 优选的是,时间跳过候选块的位置不同于空间跳过候选块的位置。
[0114] 因此,下方左侧的角块(BR0块)或较下方左侧的块(BR1块)可以是第一跳过候选块。下方左侧的角块(BR0块)与包括在时间跳过候选图片中的块相邻并且对应于当前的预测单元。较下方左侧的块(BR1块)位于包括在时间跳过候选图片中的块内并且对应于当前预测单元。块(C块)包括在时间跳过候选图片中所包括的并且与当前预测单元对应的块的中心位置的左上像素或右下像素,该C块可以是第二跳过候选块。
[0115] 如果第一跳过候选块可用,则将第一跳过候选块确定为时间跳过候选块。如果第一跳过候选块无法使用并且第二跳过候选块可用,则将第二跳过候选块确定为时间跳过候选块。
[0116] 作为另外一种选择,可以按照BR0、BR1和C0的顺序扫描块。另外,当存在多个可用的时间跳过候选块时,将最大的对应块或可用的时间跳过候选块的中间值确定为时间跳过候选运动矢量。
[0117] 当确定了时间跳过候选块时,将时间跳过候选块的运动矢量设置为时间跳过候选运动矢量。
[0118] 接下来,在步骤S230中重构跳过候选项列表。
[0119] 使用可用的空间跳过候选项和可用的时间跳过候选项构造跳过候选列表。可以按照空间左侧跳过候选项(A候选项)、空间上侧跳过候选项(B候选项)、时间跳过候选项、空间右上侧跳过候选项(C候选项)和空间左下跳过候选项(D候选项)的顺序,或按照时间跳过候选项、空间左侧跳过候选项(A候选项)、空间上侧跳过候选项(B候选项)、空间右上侧跳过候选项(C候选项)和空间左下跳过候选项(D候选项)的顺序,来构造跳过候选项列表。
[0120] 当A、B、C、D候选项中一个或多个无法使用时,将空间左上侧跳过候选项(E候选项)添加到跳过候选项列表中无法使用的候选项的位置处。也就是说,按照每个空间跳过候选项的优先级的顺序检查每个空间跳过候选项的可用性,并且将空间左上跳过候选项(E候选项)添加到跳过候选项列表中无法使用的候选项的位置处。按照A候选项、B候选项、C候选项和D候选项的顺序,或者按照A候选项、D候选项、B候选项和C候选项的顺序指定优先级。
[0121] 如果多个候选项具有相同的运动信息,则将优先级低的候选项从跳过候选项列表中删除。运动信息包括运动矢量和参考图片索引。
[0122] 接下来,在步骤S240中,导出当前预测单元的运动矢量和参考图片索引。
[0123] 当所接收的预测单元中存在跳过索引时,将跳过索引所表示的跳过候选项的运动矢量和参考图片索引确定为当前预测单元的运动矢量和参考索引。
[0124] 当所接收的预测单元中不存在跳过索引而存在跳过候选项时,将跳过候选项的运动矢量和参考图片索引确定为当前预测单元的运动矢量和参考索引。
[0125] 当所接收的预测单元中不存在跳过索引并且至少一个跳过候选项都不存在时,将当前预测单元的运动矢量和参考索引设置为0。
[0126] 当跳过候选项表示时间跳过候选项时,将跳过候选块的运动矢量确定为当前预测单元的运动矢量,并且将0或用于时间跳过候选项的参考图片索引确定为当前预测单元的参考图片索引。
[0127] 可能已经使用由可用的跳过候选项的数量所确定的可变长度编码(VLC)表对跳过索引进行编码。如果已经使用由可用的跳过候选项的数量所确定的VLC对跳过索引进行编码,则在步骤230与步骤240之间可以插入使用与可用的跳过候选项的数量相对应的VLC表对跳过索引进行解码的步骤。在步骤S240中,使用被解码的跳过索引来确定当前预测单元的运动矢量。作为另外一种选择,跳过候选项的数量可以是固定的。如果跳过候选项的数量是固定的,则可以通过使用可用的跳过候选项来生成与一个或多个无法使用的跳过候选项相对应的跳过候选项,以构造跳过候选项列表。
[0128] 在步骤S250中,如果导出了当前预测单元的运动矢量和参考图片索引,则使用参考图片索引所表示的图片的运动矢量来生成预测块。预测块是重构的块。
[0129] 同时,当编码单元中的skip_flag为0并且所接收的预测单元中的merge_flag为1时,生成重构的块的过程与生成跳过的编码单元的重构的块的过程几乎相同。具体地讲,生成预测块的过程与生成跳过模式的预测块的过程相同。在跳过模式中,所生成的预测块是重构块,因为残差块为0。然而,在合并模式中,残差块并非为0,从而增加恢复残差块的步骤和通过添加预测块和残差块来生成重构的块的步骤。
[0130] 从相邻的预测单元中导出可用的空间和时间合并候选项。用于获得空间合并候选项和时间合并候选项的过程分别与空间跳过候选项和时间跳过候选项的过程相同。
[0131] 接下来,构造可用的合并候选项列表。以预定的顺序排列可用的空间合并候选项和可用的时间合并候选项。预定的顺序是空间左侧合并候选项(A候选项)、空间上侧合并候选项(B候选项)、时间合并候选项、空间右上侧合并候选项(C候选项)和空间左下合并候选项(D候选项)的顺序,或者时间合并候选项、空间左侧合并候选项(A候选项)、空间上侧合并候选项(B候选项)、空间右上侧合并候选项(C候选项)和空间左下合并候选项(D候选项)的顺序。
[0132] 当A、B、C、D合并候选项中一个或多个无法使用时,将空间左上侧合并候选项(E候选项)添加到合并候选项列表中无法使用的候选项的位置处。也就是说,按照每个空间合并候选项的优先级的顺序检查每个空间合并候选项的可用性,并且将空间左上合并候选项(E候选项)添加到合并候选项列表中无法使用的候选项的位置处。按照A、B、C和D的顺序或者A、D、B和C的顺序指定优先级。
[0133] 另外,根据预测单元的预测模式,可以改变预定的顺序或者从合并候选项中排除一个或多个合并候选项。例如,如果预测单元为2N×N,则可以排除空间左下侧的合并候选项(D候选项)。如果预测单元为N×2N,则改变空间左下侧合并候选项(D候选项)和空间右上侧合并候选项(C候选项)的顺序或者排除空间右上侧合并候选项(C候选项),因为空间左下侧合并候选项(D候选项)与当前预测单元之间的关联性高于空间右上侧合并候选项(C候选项)与当前预测单元之间的关联性。
[0134] 接下来,导出当前预测单元的运动矢量和参考图片索引。当所接收的预测单元中存在合并索引时,将合并候选项列表中合并索引所表示的合并候选项的运动矢量和参考图片索引确定为当前预测单元的运动矢量和参考索引。
[0135] 当所接收的预测单元中不存在合并索引而存在合并候选项时,将合并候选项的运动矢量和参考图片索引确定为当前预测单元的运动矢量和参考索引。
[0136] 当所接收的预测单元中不存在合并索引并且至少一个跳过候选项都不存在时,将当前预测单元的运动矢量和参考索引设置为0。
[0137] 当合并候选项表示时间合并候选项时,将时间合并候选项的运动矢量确定为当前单元的运动矢量。并且可以将0或用于时间合并候选项的参考图片索引确定为当前预测单元的参考图片索引。
[0138] 可能已经使用由可用的合并候选项的数量所确定的VLC表对合并索引进行编码。如果已经使用了由可用的合并候选项的数量所确定的VLC表对合并索引进行了编码,则可以插入统计可用的跳过候选项的数量并且使用与该数量相对应的VLC表对跳过索引进行解码的步骤。
[0139] 如果导出了当前预测单元的运动矢量和参考图片索引,则使用参考图片索引所表示的图片中的运动矢量来生成预测块。
[0140] 另外,在变换单元的单元中恢复残差块。通过熵解码、反向扫描、反向量化和反向变换来恢复残差块。由图2中解码装置的熵解码单元210、反向扫描单元215、反向量化单元220和反向变换单元225执行此过程。
[0141] 最后,使用预测单元和残差块来生成重构的块。可以在编码单元的单元中生成重构的块。因此,在编码单元中分别生成预测块和残差块之后,使用编码单元的单元中的预测块和编码单元的单元中的残差块来生成重构的块。
[0142] 图7是示出了根据本发明生成被运动矢量预测编码的预测单元的重构的块的过程的流程图。当编码单元中skip_flag为0并且所接收的预测单元中merge_flag为0时,应用此过程。
[0143] 首先,在步骤S310中,从所接收的比特流的预测单元语法获得当前预测单元的参考图片索引和运动矢量差值。
[0144] 如果切片类型为B,则检查帧间预测信息。如果帧间预测信息通过使用结合的参考图片列表(Pred_LC)来表示单向预测,则使用参考图片索引选择所结合的参考图片列表(list_c)的多个参考图片中的一个参考图片,并且恢复运动矢量差值。如果帧间预测信息通过使用参考图片列表0来表示单向预测,则使用参考图片列表0的参考图片索引选择参考图片,并且恢复运动矢量差值。如果帧间预测信息表示双向预测,则使用参考图片列表0和1的每个参考图片索引来选择每个参考图片,并且恢复每个参考图片的每个运动矢量差值。
[0145] 接下来,在步骤S320中导出空间运动矢量候选项。图8是示出了根据本发明的用于生成运动矢量候选项的相邻的预测单元的位置的示意图。
[0146] 空间左运动矢量候选项可以是当前预测单元的左侧预测单元(A块和D块)之一。空间上运动矢量候选块可以是当前预测单元的上侧预测单元(B块、C块和E块)之一。
[0147] 用于导出空间左运动矢量候选项的过程如下。
[0148] 通过按照A块和D块的顺序或者按照D块和A块的顺序检索当前预测单元的左侧块来检查是否存在满足第一条件的预测单元。第一条件为:1)存在预测单元;2)预测单元为帧间预测编码单元;3)预测单元具有与当前预测单元相同的参考图片;以及4)预测单元具有与当前预测单元相同的参考图片列表。如果存在满足第一条件的预测单元,则将预测单元的运动矢量确定为空间左运动矢量候选项。
[0149] 如果不存在满足第一条件的预测单元,则检查是否具有满足第二条件的预测单元。第二条件为:1)存在预测单元;2)预测单元为帧间预测编码单元;3)预测单元具有与当前预测单元相同的参考图片;以及4)预测单元具有不同于当前预测单元的参考图片列表。如果存在满足第二条件的预测单元,则将预测单元的运动矢量确定为空间左运动矢量候选项。
[0150] 如果不存在满足第二条件的预测单元,则检查是否具有满足第三条件的预测单元。第三条件为:1)存在预测单元;2)预测单元为帧间预测编码单元;3)预测单元具有与当前预测单元相同的参考图片列表;以及4)预测单元具有不同于当前预测单元的参考图片。如果存在满足第三条件的预测单元则,将预测单元的运动矢量确定为空间左运动矢量候选项。
[0151] 如果不存在满足第三条件的预测单元,则检查是否具有满足第四条件的预测单元。第四条件为:1)存在预测单元;2)预测单元为帧间预测编码单元;3)预测单元具有不同于当前预测单元的参考图片列表;以及4)预测单元具有不同于当前预测单元的参考图片。如果存在满足第四条件的预测单元,则将预测单元的运动矢量确定为空间左运动矢量候选项。
[0152] 不缩放满足第一条件或第二条件的预测单元的运动矢量。但是,缩放满足第三条件或第四条件的预测单元的运动矢量。
[0153] 如果不存在满足任何一个条件的预测单元,则空间左侧的运动矢量候选项就无法使用。
[0154] 用于导出空间上运动矢量候选项的过程如下。
[0155] 通过按照B块、C块和E块的顺序或者按照C块、B块和E块的顺序检索以上块来检查是否存在满足第一条件的预测单元。如果存在满足第一条件的预测单元,则将预测单元的运动矢量确定为空间上运动矢量候选项。
[0156] 如果不存在满足第一条件的预测单元,则检查是否满足第二条件的预测单元。如果存在满足第二条件的预测单元,将预测单元的运动矢量确定为空间上运动矢量候选项。
[0157] 如果不存在满足第二条件的预测单元,则检查是否满足第三条件的预测单元。如果存在满足第三条件的预测单元,将预测单元的运动矢量确定为空间上运动矢量候选项。
[0158] 如果不存在满足第三条件的预测单元,则检查是否满足第四条件的预测单元。如果存在满足第四条件的预测单元,将预测单元的运动矢量确定为空间上运动矢量候选项。
[0159] 不缩放满足第一条件或第二条件的预测单元的运动矢量。但是,缩放满足第三条件或第四条件的预测单元的运动矢量。
[0160] 如果不存在满足任何一个条件的预测单元,空间上侧的运动矢量候选项就无法使用。
[0161] 用于确定空间左运动矢量候选项的第一至第四条件与用于确定空间上运动矢量候选项的第一至第四条件相同。
[0162] 在步骤S330中导出时间运动矢量候选项。首先,导出数据运动矢量候选块所属的图片(时间跳过候选图片)。可以将索引为0的参考图片确定为时间运动矢量候选图片。例如,当切片类型为P时,将参考图片列表0的第一图片确定为时间运动矢量候选图片。当切片类型为B时,使用表示时间运动矢量候选项所属的列表的切片头的标志来确定时间运动矢量候选图片。例如,如果标志为1,从列表0确定时间运动矢量候选图片,并且如果标志为0,从列表1确定时间运动矢量候选图片。作为另外一种选择,将从预测单元获得的参考图片索引所表示的图片确定为时间运动矢量候选图片。
[0163] 接下来,导出时间运动矢量候选图片中的数据运动矢量候选块。时间运动矢量候选块与时间跳过候选块相同。如果导出了时间运动矢量候选块,将时间运动矢量候选块的运动矢量确定为时间运动矢量候选项。
[0164] 接下来,在步骤S340中构造运动矢量候选项列表。使用可用的空间和时间运动矢量候选项来构造运动矢量候选项列表。可以按照预定的顺序构造运动矢量候选项列表。预定的顺序是空间左运动矢量候选项、空间上运动矢量候选项和时间运动矢量候选项的顺序,或者时间运动矢量候选项、空间左运动矢量候选项和空间上运动矢量候选项的顺序。
[0165] 根据预测单元的预测模式可以改变预定的顺序或者从运动矢量候选项中排除一个或多个运动矢量候选项。例如,如果当前预测单元被分割为两个2N×N预测单元,则可以对下侧2N×N预测单元将空间上运动矢量候选项排除。如果当前预测单元被分割成两个N×2N预测单元,则可以改变空间上运动矢量候选项和空间左运动矢量候选项的顺序,或者可以对右侧N×2N预侧单元将空间左运动矢量候选项排除。
[0166] 作为另外一种选择,当编码单元被分割成两个2N×N预测单元时,可以合并以上2N×N预测单元。如果可能无法合并以上2N×N预测单元时,可以删除D块,或者当确定空间左运动矢量候选项时,按照此顺序扫描A块和D块。当编码单元被分割为两个N×2N预测单元时,相同的方法可以应用于空间上运动矢量候选项。
[0167] 接下来,如果多个候选项具有相同的运动矢量,则在运动矢量候选项列表中删除具有较低优先级的候选项。
[0168] 接下来,在步骤S350中获得当前预测单元的运动矢量预测值。
[0169] 当在预测单元中存在运动矢量索引时,将运动矢量候选项列表中相对应的索引的运动矢量候选项确定为当前预测单元的运动矢量预测值。当在所接收的预测单元中不存在运动矢量索引并且存在运动矢量候选项时,将运动矢量候选项确定为当前预测单元的运动矢量预测值。当所有的运动矢量候选项都无法使用时,将当前单元的运动矢量预测值设置为0。
[0170] 同时,在构造运动矢量候选项列表之前,可以读取运动矢量索引。在这种情况下,在按照预定的顺序以运动矢量索引所表示的数量检索可用的运动矢量候选项之后,可以将与运动矢量索引相对应的运动矢量候选项确定为当前预测单元的运动矢量。运动矢量索引可以以固定的长度或变化的长度进行编码。
[0171] 在步骤S360中,如果获得了当前预测单元的运动矢量预测值,则通过将运动矢量差值与运动矢量预测值相加而重构当前预测单元的运动矢量。
[0172] 接下来,在步骤S370中,使用当前预测单元的接收的参考图片索引和当前预测单元的恢复的运动矢量来生成预测块。
[0173] 另外,在步骤S380中,在变换单元的单元中恢复残差块。通过熵解码、反向扫描、反向量化和反向变换恢复残差块。由图2中解码装置的熵解码单元210、反向扫描单元215、反向量化单元220和反向变换单元225执行此过程。
[0174] 最后,在步骤S390中使用预测块和残差块来生成重构的块。在编码单元的单元中可以生成重构的块。因此,在编码单元的单元中分别生成预测块和残差块之后,使用编码单元的单元中的预测块和编码单元的单元中的残差块来生成重构的块。
[0175] 尽管根据本发明的某些示例性实施例示出并且描述了本发明,但是本领域技术人员将会理解的是,在不脱离由所附权利要求书所限定的精神和范围中,可以在本发明的形式和细节上进行各种修改。