帧间预测编码方法与流程

文档序号:13521403阅读:276来源:国知局
帧间预测编码方法与流程
帧间预测编码方法本申请为分案申请,其母案为于2011年8月12日提交的申请号为201180050178.1的题为“帧间预测编码方法”的申请。技术领域本发明涉及一种帧间预测模式中运动图片的编码方法,更具体地讲,涉及一种使用与当前单元在空间上相邻的预测单元的运动矢量和与当前单元在时间上相邻的预测单元的运动矢量之一对当前预测单元的运动矢量进行编码的方法。

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

技术实现要素:
技术问题本发明涉及提供一种使用在空间上和时间上邻近的预测单元的运动矢量之一对当前预测单元的运动矢量进行编码并且在帧间预测模式中对运动图片进行编码的方法。技术方案本发明的一方面提供了一种帧间预测模式中运动图片的解码方法,包括:确定参考图片索引和当前预测单元的运动矢量;使用每个均存在于预定位置处的相邻的预测单元的有效运动矢量导出空间运动矢量候选项;导出所述当前预测单元的时间运动矢量候选项,确定所述空间运动矢量候选项和所述时间运动矢量候选项之一作为运动矢量预测值;以及计算所述当前预测单元的运动矢量与所述运动矢量预测值之间的运动矢量差值,并且对所述运动矢量差值和所述参考图片索引进行编码。有益效果根据本发明的方法确定参考图片索引和当前预测单元的运动矢量;使用每个均存在于预定位置处的相邻的预测单元的可用运动矢量导出空间运动矢量候选项;导出当前预测单元的时间运动矢量候选项;确定空间和时间运动矢量候选项之一作为运动矢量预测值;以及计算当前预测单元的运动矢量与运动矢量预测值之间的运动矢量差值,并且对运动矢量差值和参考图片索引进行编码。因此,在任何种类的图片中均有效地预测运动矢量。附图说明图1是根据本发明的帧间预测解码设备的方框图。图2是示出根据本发明生成跳过的编码单元的重构块的过程的流程图。图3是示出了根据本发明的空间跳过候选块的位置的示意图。图4是示出了根据本发明的用于导出时间跳过候选项的参考图片索引并与当前预测单元相邻的预测单元的位置的示意图。图5是示出了根据本发明的与当前预测单元相对应的时间跳过候选图片中块的位置的示意图。图6是示出了根据本发明的当对运动矢量进行了预测性编码时生成重构块的过程的流程图。图7是示出了根据本发明的用于生成空间运动矢量候选项的相邻的预测单元的位置的示意图。具体实施方式以下将参照附图详细描述本发明的各个实施例。然而,本发明并不局限于以下公开的示例性实施例,而是可以以多种形式实施。因此,可以对本发明进行许多其他的修改和设变,但是要理解的是在所公开的内容的范围内,本发明另外可以以不同于具体描述的方式实施。将一张图片分割成多个切片,并且将每个切片分割成多个最大的编码单元(LCU)。每个LCU的位置由地址指示器指定。LCU可以是编码单元自身或者可以被分割成多个编码单元。LCU包含表示LCU中编码单元结构的信息。使用一个或多个分隔标志来表示LCU中编码单元的结构。每个编码单元包括一个或多个预测单元。预测单元是帧内预测或帧间预测用的基本单元。变换单元用于变换编码。在帧内预测中,预测单元包含一个或多个变换单元。在帧间预测中,变换单元可以是由一个或多个预测单元构成的。预测单元的最大大小被定义为顺序参数集(SPS),并且变换单元具有递归四叉树的形式。帧内预测中预测单元的最大大小可以与帧间预测中预测单元的最大大小不同。帧内预测和帧间预测的预测单元的最大大小都包含在SPS中。根据本发明的帧间预测编码装置包括图片分割单元、变换单元、量化单元、扫描单元、熵编码单元、帧内预测单元、帧间预测单元、反向量化单元、反向变换单元、后处理单元、图片存储单元、减法器和加法器。图片分割单元分析输入的视频信号,从而将图片的每个LCU分割成每个均具有预定大小的一个或多个编码单元,确定每个编码单元的预测模式,并且确定每个编码单元的预测单元的大小。图片分割单元根据预测模式将要编码的预测单元发送到帧内预测单元或帧间预测单元。另外,图片分割单元将要编码的预测单元发送到减法器。变换单元将预测单元的原始块与帧内预测单元或帧间预测单元生成的预测块之间的残差信号进行变换。残差块可以具有编码单元的大小。残差块可以被分割成最佳变换单元并且进行变换。根据预测模式(帧内或帧间)和帧内预测模式可以自适应地确定变换矩阵。变换单元可以通过水平的和垂直的一维(1D)变换矩阵进行变换。在帧间预测中,采用一个预定的变换矩阵。在帧内预测中,在当前预测单元的帧内预测模式是水平的时候,残差信号很可能具有垂直方向性。因此,垂直方向采用基于离散余弦变换(DCT)的整数矩阵,并且水平方向采用基于离散正弦变换(DST)或基于卡洛变换(KLT)(KarhunenLoèvetransform)的整数矩阵。当帧内预测模式是垂直的时候,在垂直方向采用基于DST或KLT的整数矩阵,在水平方向采用基于DCT的整数矩阵。当帧内预测模式是DC的时候,在两个方向都可以采用基于DCT的整数矩阵。并且,在帧内预测中,可以根据变换单元的大小自适应确定变换矩阵。量化单元确定用于对残差块的变换系数进行量化的量化步距。对大小等于或大于预定大小的编码单元确定量化步距。对于大小小于预定大小的编码单元,量化步距取决于预定大小。通过使用所确定的量化步距和根据预测模式确定的量化矩阵,量化变换块的变换系数。量化单元可以将相邻的编码单元的量化步距确定为当前编码单元的量化步距预测值。例如,量化单元可以将当前编码单元的左侧编码单元的量化步距确定为量化步距预测值。如果左侧编码单元无法使用,则确定扫描顺序中前一个编码单元的量化步距作为当前编码单元的量化步距预测值。作为另外一种选择,通过按照左侧编码单元、上侧编码单元和前一个编码单元的顺序扫描,将第一个可用的量化步距确定为量化步距预测值。量化的变换块被提供到反向量化单元和扫描单元。扫描单元扫描量化的变换块的量化的变换系数,从而将量化的变换系数转换成一维量化的变换系数。根据预测模式和帧内预测模式确定扫描方式。也可以根据变换单元的大小确定扫描方式。扫描单元确定是否将量化的变换块分割成多个子集。如果变换单元的大小大于第一参考大小,则将量化的变换块分割成多个子集。第一参考大小是4x4或8x8。扫描单元确定将要应用于量化的变换块的扫描方式。在帧间预测中,使用预定的扫描方式(例如,锯齿状扫描)。在帧内预测中,根据帧内预测模式和变换单元的大小选择扫描方式。在非定向帧内预测模式模式中,使用预定的方式。非定向帧内预测模式是DC模式或平面模式。在定向帧内预测模式中,扫描方式可以根据帧内预测模式以及变换单元的大小的变化而变化。在定向帧内预测模式中,如果变换单元的大小等于或大于预定大小,则使用预定的扫描方式;并且如果变换单元的大小小于预定大小,则根据定向帧内预测模式自适应选择扫描方式。预定大小是16x16。如果变换单元的大小小于预定大小,使用三个扫描方式中的一个。三个扫描方式是第一扫描方式(预定扫描)、第二扫描方式(水平扫描)和第三扫描方式(垂直扫描)。对于垂直帧内预测模式,采用第二扫描方式,因为在水平方向上很可能存在非零系数。对于在相对于垂直帧内预测模式的顺时针方向上与垂直帧内预测模式相邻的预定数量的定向帧内预测模式以及在相对于垂直帧内预测模式的逆时针方向上与垂直帧内预测模式相邻的预定数量的定向帧内预测模式,采用第二扫描方式。对于水平帧内预测模式,采用第三扫描方式。对于在相对于水平帧内预测模式的顺时针方向上与水平帧内预测模式相邻的预定数量的定向帧内预测模式以及在相对于水平帧内预测模式的逆时针方向上与水平帧内预测模式相邻的预定数量的定向帧内预测模式,采用第三扫描方式。预定数量是3或4。在相反方向上扫描量化的变换系数。当量化的变换系数被分割成多个子集时,将同一个扫描方式应用于每个子集的量化的变换系数。多个子集包括主子集和一个或多个剩余子集。主子集位于左上侧并且包括DC系数。一个或多个剩余子集覆盖不同于主子集的区域。锯齿状扫描可以用于扫描这些子集。可以在前向方向上从主子集到剩余子集扫描子集,或者可以在相反的方向上扫描子集。扫描子集用的扫描方式可以设置成与扫描量化的变换系数用的扫描方式相同。在这种情况下,根据帧内预测模式确定扫描子集用的扫描方式。根据本发明的编码装置100将能表示变换单元的最后一个非零量化系数的位置的信息发送到解码器。编码装置100还将能表示每个子集的最后一个非零量化系数的位置的信息发送到解码器。反向量化单元将量化的变换系数进行反向量化。反向变换单元从反向量化的变换系数中恢复空间域的残差块。加法器通过将反向变换单元重构的残差块加上来自帧内预测单元或帧间预测单元的预测块而生成重构块。后处理单元执行用于清除重构的图片中产生的块效应的去块滤波过程、用于补偿重构的图片与原始图像的每个像素之间的差值的自适应偏移应用过程、以及用于补偿编码单元中重构的图片与原始图像之间的差值的自适应回路滤波器过程。去块滤波过程可以应用于具有预定大小或更大的预测单元之间的边界以及变换单元之间的边界。预定大小可以是8×8。去块滤波过程包括:确定将要滤波的边界的步骤,确定将要应用于边界的边界滤波强度的步骤,确定是否应用去块滤波器的步骤,以及当确定采用去块滤波器时选择将要应用于边界的滤波器的步骤。根据以下内容确定是否采用去块滤波器:i)边界滤波强度是否大于0;ii)表示P块和Q块的边界像素之间的差的值是否小于根据量化参数确定的第一参考值。可能存在两个或更多个滤波器。当与块边界相邻的两个像素之间的差值的绝对值等于或大于第二参考值时,选择弱滤波器。由量化参数和边界滤波强度确定第二参数值。可以根据通过比较原始图像与去块滤波过程或自适应偏移应用过程所应用的重构的图像而获得的一个值,来执行自适应回路滤波过程。通过根据4×4块的一个拉普拉斯算子的活性值来检测自适应回路滤波器(ALF)。所确定的ALF可以应用于包括在4×4块或8×8块中的所有像素。可以根据编码单元来确定是否采用ALF。回路滤波器的大小和系数可以根据每个编码单元的变化而变化。切片头可以包括表示是否将ALF应用于每个编码单元的信息、滤波器系数信息和滤波器形状信息等等。在色度分量的情况下,可以在图片单元中确定是否应用ALF。与亮度不同,回路滤波器可以具有矩形形状。根据顺序或图片执行自适应回路滤波过程。ALF滤波器参数信息被包括在图片头中或切片头中。如果ALF滤波器参数信息被包括在图片头中,则切片头不包括ALF滤波器参数信息。但是,如果ALF滤波器参数信息不包括在图片头中,则切片头包括ALF滤波器参数信息。ALF滤波器参数信息包括亮度分量用的滤波器的水平长度和/或垂直长度和滤波器数量。如果滤波器的数量是2或更多,则ALF滤波器参数信息可以包括表示是否使用预测对滤波器进行编码的信息。当使用预测对滤波器进行编码时,ALF滤波器参数信息包括被预测性编码的滤波器系数。反之,当不使用预测对滤波器进行编码时,ALF滤波器参数信息包括未被预测性编码的滤波器系数。也可以自适应地对色度分量进行滤波。切片头或图片头可以包括每个色度分量是否被滤波的信息。为了减少位数,表示Cr分量是否被滤波的信息以及表示Cb分量是否被滤波的信息可以被共同编码。优选的是,在Cr和Cb分量两者都未被滤波的情况下熵编码分配最低信息,因为Cr和Cb分量两者都未被滤波的可能性很大。对于Cr和Cb分量中至少一个被滤波的情况,ALF滤波器参数信息包括表示色度分量用的滤波器系数的水平长度和/或垂直长度以及滤波器的信息。另外,对于等于或大于预定大小的每个编码单元,可以打开或关闭ALF过程。因此,每个切片头包括表示是否对切片中的每个编码单元应用ALF过程的信息。图片存储单元从后处理单元接收后处理的图像数据,并且将图像存储在图片单元中。图片可以是以帧或场为单位的图像。图片存储单元具有能存储多个图片的缓冲器(未示出)。帧间预测单元使用存储在图片存储单元中的一个或多个参考图片来执行运动估计,并且确定表示参考图片的参考图片索引和运动矢量。根据参考图片索引和运动矢量,帧间预测单元从存储于图片存储单元180中的多个参考图片中选择的一个参考图片提取与将要编码的预测单元相对应的预测块,并且输出所提取的预测块。帧内预测单元使用当前图片中重构的参考像素值执行帧内预测。帧内预测单元接收将要被预测性编码的当前的预测单元,选择预定数量的帧内预测模式之一,并且执行帧内预测。预定数量的帧内预测模式可以根据当前的预测单元的大小确定。帧内预测单元自适应滤波参考像素以生成帧内预测块。当一些参考像素无法使用时,能够使用一个或多个可用的参考像素在无法使用的位置处生成参考像素。熵编码单元对量化单元所量化的量化系数、从帧内预测单元接收的帧内预测信息、从帧间预测单元接收的运动信息等进行熵编码。同时,根据本发明的装置对运动矢量进行预测性编码。运动矢量的编码过程由帧间预测单元和熵编码单元执行。运动矢量的编码过程如下。首先,获得当前预测单元的运动矢量。将存在于预定位置处的相邻的预测单元的可用的运动矢量确定为空间运动矢量候选项。如果相邻的预测单元的运动矢量不存在,或者相邻的预测单元不包括在当前切片中,则将运动矢量确定为无法使用。接下来,可以对空间运动矢量进行自适应地缩放。如果当前预测单元和相邻的预测单元具有相同的参考图片,则不缩放运动矢量候选项。但是,如果当前预测单元和相邻的预测单元具有不同的参考图片,或者参考图片的时间距离不一样,则可以使用时间距离对运动矢量候选项进行缩放。对于静态图像(例如,背景图像),不可以将运动矢量进行缩放。可以将空间运动矢量候选项的缩放数量限定为预定数量。在空间运动矢量候选项和时间运动矢量候选项之中选择运动矢量预测值.然后,对当前预测单元的运动矢量与运动矢量预测值之间的运动矢量差值(MVD)进行编码。并且对表示运动矢量预测值的信息进行编码。时间运动矢量候选项是位于或靠近与当前预测单元的位置相对应的一个参考图片中的位置处的一个块的运动矢量。当在参考图片中存在多个块时,根据预定的方法选择一个运动矢量作为时间运动矢量。例如,如果位于与图片中的当前预测单元相对应的第一位置处的块的运动矢量可用,则将运动矢量确定为时间运动矢量候选项。但是,如果位于第一位置处的块的运动矢量无法使用,则将位于第二位置处的块的运动矢量确定为时间运动矢量候选项。在B切片(双向预测)中,从包括时间运动矢量候选项的参考图片导出参考图片列表0或1。因此,将表示一个参考图片列表的列表指示符发送到解码器,并且解码器使用列表指示符来确定包括时间运动矢量候选项的参考图片。比特流中可以包括表示是否使用了时间运动矢量候选项的信息。因此,运动矢量的解码过程可以根据信息而变化。空间运动矢量候选项包括左运动矢量候选项和上运动矢量候选项。当前预测单元的左运动矢量候选项是当前预测单元的左侧预测单元的运动矢量或左下侧预测单元的运动矢量。左运动矢量候选项是在按照预定的顺序检索左侧预测单元和左下侧预测单元的运动矢量时遇到的第一个可用的运动矢量。当前预测单元的上运动矢量候选项是当按照预定的顺序检索当前预测单元的上侧预测单元、右上侧预测单元和左上侧预测单元的运动矢量时遇到的第一个可用的运动矢量。如果运动矢量候选项具有相同的运动矢量,则去除序数较大的运动矢量候选项。如果运动矢量候选项是一个,则将该运动矢量候选项确定为运动矢量预测值,并且不对表示运动矢量预测值的预测值指示符进行编码。图1是根据本发明的运动图片解码装置的方框图。根据本发明的运动图片解码装置包括熵解码单元210、反向扫描单元215、反向量化单元220、反向变换单元225、加法器270、后处理单元250、图片存储单元260、帧内预测单元230、帧间预测单元240和开关280。熵解码单元210从接收的由运动图片编码设备发送的比特流提取帧内预测信息、帧间预测信息、量化系数信息等。熵解码单元210将帧间预测信息发送到帧间预测单元240,将帧内预测信息发送到帧内预测单元230和反向变换单元225,将量化系数信息发送到反向量化单元220和反向量化/变换单元225。反向扫描单元215将量化的系数信息转换成二维(2D)的量化的变换块。选择多个反向扫描方式中的一个用于变换。根据帧内预测模式选择反向扫描方式。如果将被解码的变换单元的大小大于预定的参考大小,则根据选择的反向扫描方式反向地扫描每个子集的量化的变换系数,以生成多个子集,并且使用这些子集生成具有变换单元的大小的量化的变换块。如果将要解码的变换单元的大小等于预定的参考大小,则根据选择的反向扫描方式反向地扫描量化的变换块的量化的变换系数,以生成具有变换单元的大小的量化的变换块。多个子集包括主子集和一个或多个剩余子集。主子集位于左上侧并且包括DC系数,并且一个或多个剩余子集覆盖与主子集不同的区域。将要应用于子集的扫描方式可以是锯齿状扫描。可以在前向方向上从主子集到剩余子集反向地扫描子集,或者可以在相反的方向上扫描子集。扫描子集用的扫描方式可以设置成与扫描量化的变换系数用的扫描方式相同。反向扫描单元215使用表示变换单元的最后一个非零量化系数的位置的信息来执行反向扫描过程。在定向帧内预测模式中,扫描方式可以根据帧内预测模式以及变换单元的大小而变化。在定向帧内预测模式中,如果变换单元的大小等于或大于预定大小,则使用预定的扫描方式,并且如果变换单元的大小小于预定大小,则根据定向帧内预测模式自适应选择扫描方式。预定大小是16x16。如果变换单元的大小小于预定大小,则使用三个扫描方式中的一个。三个扫描方式是第一扫描方式(预定扫描)、第二扫描方式(水平扫描)和第三扫描方式(垂直扫描)。对于垂直帧内预测模式,采用第二扫描方式,因为在水平方向上很可能存在非零系数。对于在相对于垂直帧内预测模式的顺时针方向上与垂直帧内预测模式相邻的预定数量的定向帧内预测模式以及在相对于垂直帧内预测模式的逆时针方向上与垂直帧内预测模式相邻的预定数量的定向帧内预测模式,采用第二扫描方式。对于水平帧内预测模式,采用第三扫描方式。对于在相对于水平帧内预测模式的顺时针方向上与水平帧内预测模式相邻的预定数量的定向帧内预测模式以及在相对于水平帧内预测模式的逆时针方向上与水平帧内预测模式相邻的预定数量的定向帧内预测模式,采用第三扫描方式。预定数量是3或4。反向量化单元220恢复量化步距以反向地量化二维反向量化的系数。对大小等于或大于预定大小的编码单元确定量化步距。如果编码单元的大小小于预定大小,则量化步距取决于预定大小。反向量化单元220可以将相邻的编码单元的量化步距确定为当前编码单元的量化步距预测值。例如,反向量化单元220可以将当前编码单元的左侧编码单元的量化步距确定为当前编码单元的量化步距预测值。如果左侧编码单元无法使用,则确定扫描顺序中前一个编码单元的量化步距作为当前编码单元的量化步距预测值。作为另外一种选择,当按照左侧编码单元、上侧编码单元和前一个编码单元的顺序进行扫描时,将第一个可用的量化步距确定作为当前编码单元的量化步距预测值。当确定了量化步距预测值时,通过将量化步距预测值加上接收的残差的量化步距,从而获得量化步距。然后,使用根据量化步距和预测模式确定的量化矩阵,反向地量化反向量化的变换系数。反向变换单元225将反向量化的块进行反向地变换以恢复残差块。根据预测模式(帧内或帧间)和帧内预测模式自适应地确定将要应用到反向量化的块的反向变换矩阵。反向变换矩阵的确定过程与帧间预测编码设备中变换单元的过程相同。加法器270将反向变换单元225重构的恢复的残差块加上帧内预测单元230或帧间预测单元240生成的预测块以生成重构块。后处理单元250对重构的图像执行去块滤波以减少量化所造成的块效应。图片存储单元260存储经过后处理单元250进行滤波的重构的图片。帧内预测单元230根据所接收的帧内预测信息恢复当前块的帧内预测模式,并且根据恢复的帧内预测模式生成预测块。帧间预测单元240根据接收的运动信息恢复当前预测单元的运动矢量,并且使用参考图片索引和运动矢量生成预测块。如果应用小数精度的运动补偿,则使用内插滤波器生成预测块。帧间预测单元240按照如下方式解码运动矢量。通过恢复被编码的运动矢量之间的差值来生成运动矢量差值。将存在于预定位置处的相邻的预测单元的可用的运动矢量确定为空间运动矢量候选项。并且自适应地缩放空间运动矢量候选项。如果当前预测单元和相邻的预测单元具有相同的参考图片,则不缩放运动矢量候选项。但是,如果当前预测单元和相邻的预测单元具有不同的参考图片,或参考图片的时间距离不同,则可以使用参考图片的时间距离对运动矢量候选项进行缩放。使用表示运动矢量预测值的信息,在空间运动矢量候选项和时间运动矢量候选项中选择运动矢量预测值。然后,将运动矢量差值与运动矢量预测值相加以生成当前预测单元的运动矢量。时间运动矢量候选项是位于或靠近与当前预测单元的位置相对应的一个参考图片中的位置处的一个块的运动矢量。当在参考图片中存在多个块时,根据预定的方法选择一个运动矢量作为时间运动矢量。例如,如果位于与图片中的当前预测单元相对应的第一位置处的块的运动矢量可用,则将运动矢量确定为时间运动矢量候选项。但是,如果位于第一位置处的块的运动矢量无法使用,则将位于第二位置处的块的运动矢量确定为时间运动矢量候选项。在B切片(双向预测)中,从包括时间运动矢量候选项的参考图片导出参考图片列表0或1。因此,表示一个参考图片列表的列表指示符被发送到解码器,并且解码器使用列表指示符来确定包括时间运动矢量候选项的参考图片。。比特流中可以包括表示是否使用了时间运动矢量候选项的信息。因此,运动矢量的解码过程可以根据信息而变化。空间运动矢量候选项包括左运动矢量候选项和上运动矢量候选项。当前预测单元的左运动矢量候选项是当前预测单元的左侧预测单元的运动矢量或左下侧预测单元的运动矢量。左运动矢量候选项是在按照预定的顺序检索左侧预测单元和左下侧预测单元的运动矢量时遇到的第一个可用的运动矢量。当前预测单元的上运动矢量候选项是当按照预定的顺序检索当前预测单元的上侧预测单元、右上侧预测单元和左上侧预测单元的运动矢量时遇到的第一个可用的运动矢量。如果运动矢量候选项具有相同的运动矢量,则去除序数较大的运动矢量候选项。如果运动矢量候选项是一个,则将该运动矢量候选项确定为运动矢量预测值,并且不对表示运动矢量预测值的预测值指示符进行编码。开关280根据预测模式将帧内预测单元230或帧间预测单元240生成的预测块提供给加法器270。本文描述了根据本发明的在帧内预测模式中运动图像的解码方法。所述方法包括:将当前预测单元的运动信息进行解码的过程,生成当前预测单元的预测块的过程,恢复残差块的过程和使用预测块和残差块生成重构块的过程。运动信息包括运动矢量和参考图片索引。图2是示出根据本发明生成跳过的编码单元的重构块的过程的流程图。当所接收的编码单元的skip_flag为1时,执行此过程。首先,在步骤S210中,从相邻的预测单元导出空间跳过候选项。如图3所示,当前单元的左侧预测单元(A块)的运动信息、当前单元的上侧预测单元(B块)的运动信息、当前单元的右上侧预测单元(C块)的运动信息和当前单元的左下预测单元(D块)的运动信息可以是空间跳过候选项。如果A块、B块、C块和D块中的一个或多个块无法使用,当前单元的左上侧预测单元(E块)的运动信息可以是空间跳过候选项块。运动信息包括运动矢量和参考图片索引。作为另外一种选择,左侧预测单元(A块)、上侧预测单元(B块)和角预测单元可以是空间跳过候选块。角预测单元是当按照预定的顺序(例如,按照C块、D块和E块的顺序,按照E块、D块和C块的顺序,等等)检索C、D和E块时遇到的第一个可用的预测单元。检查每个相邻的预测单元的可用性。如果不存在预测单元或者预测单元的预测模式是帧内模式,则将预测单元确定为无法使用。当存在多个左侧预测单元时,在按照预定的顺序(例如,从上到下或从下到上)检查多个左侧预测单元的可用性时遇到的第一个可用的预测单元可以被确定为左侧预测单元,或者左侧最上方的预测单元或左侧最下方的预测单元可以被确定为左侧预测单元。当存在多个上侧预测单元时,在按照预定的顺序(例如,从左到右或从右到左)检查多个上侧预测单元的可用性时遇到的第一个可用的预测单元可以被确定为上侧预测单元,或者上方最左侧的预测单元或上方最右侧的预测单元可以被确定为上侧预测单元。在步骤S220中导出时间跳过候选项。步骤S220包括导出用于时间跳过候选项的参考图片索引的步骤以及导出时间跳过候选项的运动矢量的步骤。用于导出用于时间跳过候选项的参考图片索引的步骤如下。用于时间跳过候选项的参考图片索引可以设置成0。或者可以使用在空间上相邻的预测单元的参考图片索引来导出参考图片索引。图4是示出了根据本发明的与用于导出时间跳过候选项的参考图片索引的当前预测单元相邻的预测单元的位置的示意图。用于时间跳过候选项的参考图片索引是相邻的预测单元的参考图片索引之一。左侧预测单元(A块)、上侧预测单元(B块)、右上侧预测单元(C块)、左下侧预测单元(D块)和右上侧单元(E块)的参考图片索引可用于导出用于时间跳过候选项的参考图片索引。当存在多个上侧预测单元时,在从左到右或从右到左检索多个上侧预测单元时遇到的第一个可用的预测单元可以被确定为上侧预测单元。并且将第一可用单元的参考图片索引确定为上侧预测单元的参考图片索引。当存在多个左侧预测单元时,在从上到下检索多个左侧预测单元时遇到的第一个可用的预测单元可以被确定为左侧预测单元。并且将第一可用单元的参考图片索引确定为左侧预测单元的参考图片索引。角预测单元的参考图片索引是在按照C块、D块和E块的顺序检索块时遇到的第一个可用的预测单元的参考图片索引。当确定了左侧相邻的预测单元的参考图片索引(左参考图片索引)、上侧相邻的预测单元的参考图片索引(上参考图片索引)和角相邻的预测单元的参考图片索引(角参考图片索引)时,从其中导出用于时间跳过候选项的参考图片索引。这里,使用C块、D块和E块中的唯一一个来导出用于时间跳过候选项的参考图片索引。但是,可以使用C块和D块或所有的C块、D块和E块来导出用于时间跳过候选项的参考图片索引。将频率最高的参考图片索引确定为用于时间跳过候选项的参考图片索引。当存在多个具有相同频率的参考图片索引时,将最低的参考图片索引确定为用于时间跳过候选项的参考图片索引。导出用于时间跳过候选项的运动矢量的步骤如下。首先,导出时间跳过候选块所属的参考图片(时间跳过候选图片)。例如,将索引为0的参考图片确定为时间跳过候选图片。当切片类型为P时,将参考图片列表0的第一参考图片确定为时间跳过候选图片。当切片类型为B时,使用表示时间跳过候选图片的切片头的标志来选择一个参考图片列表,并且将在预定的选择条件下选自所选的参考图片列表的参考图片确定为时间跳过候选图片。例如,当标志为1时,就从列表0中选择时间跳过候选图片。并且当标志为0时,就从列表1中选择时间跳过候选图片。作为另外一种选择,将用于时间跳过候选图片的参考图片索引所表示的参考图片确定为时间跳过候选块所属的时间跳过候选图片。例如,当切片类型为P时,列表0中用于时间跳过候选图片的参考图片索引所表示的参考图片被确定为时间跳过候选图片。当切片类型为B时,使用表示时间跳过候选图片的标志来选择参考图片列表,并且将用于时间跳过候选图片的参考图片列表所表示的参考图片确定为时间跳过候选图片。接下来,导出时间跳过候选块。选择与当前预测单元相对应的多个块之一作为时间跳过候选块。多个块位于时间跳过候选图片中。为这些块的每一个指定优先级。将根据优先级确定的第一个可用的块确定为时间跳过候选块。图5是示出了根据本发明的与当前预测单元相对应的时间跳过候选图片中的块的位置的示意图。优选的是,时间跳过候选块的位置不同于空间跳过候选块的位置。因此,下方右侧的角块(BR0块)或较下方右侧的块(BR1块)可以是第一跳过候选块。下方右侧的角块(BR0块)与包括在时间跳过候选图片中的块相邻并且对应于当前的预测单元。较下方右侧的块(BR1块)位于包括在时间跳过候选图片中的块内并且对应于当前预测单元。块(C块)包括在时间跳过候选图片中所包括的并且与当前预测单元对应的块的中心位置的左上像素或左下像素,该C块可以是第二跳过候选块。如果第一跳过候选块可用,则将第一跳过候选块确定为时间跳过候选块。如果第一跳过候选块无法使用并且第二跳过候选块可用,则将第二跳过候选块确定为时间跳过候选块。作为另外一种选择,可以将在按照BR0、BR1和C的顺序扫描检索块时遇到的第一个可用的块确定为时间跳过候选块。另外,当存在多个可用的时间跳过候选块时,将最大的对应块或可用的时间跳过候选块的中间值确定为时间跳过候选运动矢量。当确定了时间跳过候选块时,将时间跳过候选块的运动矢量设置为时间跳过候选运动矢量。接下来,重构跳过候选项列表(S230)。使用可用的空间跳过候选项和可用的时间跳过候选项构造跳过候选列表。可以按照空间左侧跳过候选项(A候选项)、空间上侧跳过候选项(B候选项)、时间跳过候选项、空间右上侧跳过候选项(C候选项)和空间左下跳过候选项(D候选项)的顺序,或按照时间跳过候选项、空间左侧跳过候选项(A候选项)、空间上侧跳过候选项(B候选项)、空间右上侧跳过候选项(C候选项)和空间左下跳过候选项(D候选项)的顺序,来构造跳过候选项列表。当A、B、C、D候选项中一个或多个无法使用时,将空间左上侧跳过候选项(E候选项)添加到跳过候选项列表中无法使用的候选项的位置处。如果多个候选项具有相同的运动信息,则将优先级低的候选项从跳过候选项列表中删除。运动信息包括运动矢量和参考图片索引。接下来,在步骤S240中,导出当前预测单元的运动矢量和参考图片索引。当所接收的预测单元中存在跳过索引时,将跳过索引所表示的跳过候选项的运动矢量和参考图片索引确定为当前预测单元的运动矢量和参考索引。当所接收的预测单元中不存在跳过索引而存在跳过候选项时,将跳过候选项的运动矢量和参考图片索引确定为当前预测单元的运动矢量和参考索引。当所接收的预测单元中不存在跳过索引并且至少一个跳过候选项都不存在时,将当前预测单元的运动矢量和参考索引设置为0。当跳过索引表示时间跳过候选项时,将跳过候选块的运动矢量确定为当前预测单元的运动矢量,并且将0或用于时间跳过候选项的参考图片索引确定为当前预测单元的参考图片索引。可能已经使用由可用的跳过候选项的数量所确定的可变长度编码(VLC)表对跳过索引进行编码。如果已经使用由可用的跳过候选项的数量所确定的VLC对跳过索引进行编码,则在步骤230与步骤240之间可以插入统计可用的跳过候选项的数量相并使用与该数量对应的VLC表对跳过索引进行解码的步骤。在步骤S240中,使用被解码的跳过索引来确定当前预测单元的运动矢量。作为另外一种选择,跳过候选项的数量可以是固定的。如果跳过候选项的数量是固定的,则可以生成一个或多个额外的跳过候选项,以将其添加到候选项列表中。在步骤S250中,如果导出了当前预测单元的运动矢量和参考图片索引,则使用参考图片索引和运动矢量来生成预测块。预测块是重构的块。同时,当编码单元中的skip_flag为0并且预测单元语法中的merge_flag为1时,生成重构的块的过程与生成跳过的编码单元的重构的块的过程几乎相同。具体地讲,生成预测块的过程与生成跳过的编码单元的预测块的过程相同。在跳过模式中,所生成的预测块是重构块,因为残差块为0。然而,在合并模式中,残差块并非为0,从而增加恢复残差块的步骤和通过添加预测块和残差块来生成重构的块的步骤。从相邻的预测单元中导出可用的空间和时间合并候选项。用于获得空间合并候选项和时间合并候选项的过程分别与空间跳过候选项和时间跳过候选项的过程相同。接下来,使用可用的合并候选项构造合并候选项列表。以预定的顺序排列可用的空间合并候选项和可用的时间合并候选项。预定的顺序是空间左侧合并候选项(A候选项)、空间上侧合并候选项(B候选项)、时间合并候选项、空间右上侧合并候选项(C候选项)和空间左下合并候选项(D候选项)的顺序,或者时间合并候选项、空间左侧合并候选项(A候选项)、空间上侧合并候选项(B候选项)、空间右上侧合并候选项(C候选项)和空间左下合并候选项(D候选项)的顺序。当候选项A、B、C、D中的一个或多个无法使用时,将空间左上侧合并候选项(E候选项)添加到合并候选项列表中无法使用的候选项的位置处。另外,根据预测单元的预测模式,可以改变预定的顺序或者从合并候选项中排除一个或多个合并候选项。例如,如果预测单元为2N×N,则可以排除空间左下侧的合并候选项(D候选项)。如果预测单元为N×2N,则改变空间左下侧合并候选项(D候选项)和空间右上侧合并候选项(C候选项)的顺序或者排除空间右上侧合并候选项(C候选项)。接下来,导出当前预测单元的运动矢量和参考图片索引。当所接收的预测单元中存在合并索引时,将合并索引所表示的合并候选项的运动矢量和参考图片索引确定为当前预测单元的运动矢量和参考索引。当所接收的预测单元中不存在合并索引而存在合并候选项时,将合并候选项的运动矢量和参考图片索引确定为当前预测单元的运动矢量和参考索引。当所接收的预测单元中不存在合并索引并且至少一个合并候选项都不存在时,将当前预测单元的运动矢量和参考索引设置为0。当合并候选项是时间合并候选项时,将合并候选块的运动矢量确定为当前预测单元的运动矢量。并且可以将0或用于时间合并候选项的参考图片索引确定为当前预测单元的参考图片索引。可能已经使用由可用的合并候选项的数量所确定的VLC表对合并索引进行编码。如果已经使用了由可用的合并候选项的数量所确定的VLC表对合并索引进行了编码,则可以插入统计可用的跳过候选项的数量并且使用与该数量相对应的VLC表对跳过索引进行解码的步骤。如果导出了当前预测单元的运动矢量和参考图片索引,则使用参考图片索引和运动矢量来生成预测块。另外,在变换单元的单元中恢复残差块。通过熵解码、反向扫描、反向量化和反向变换来恢复残差块。由图1中解码装置的熵解码单元210、反向扫描单元215、反向量化单元220和反向变换单元225执行此过程。最后,使用预测单元和残差块来生成重构的块。可以在编码单元的单元中生成重构的块。因此,当在编码单元的单元中分别生成预测块和残差块之后,使用编码单元的单元中的预测块和编码单元的单元中的残差块来生成重构的块。图6是示出了根据本发明的当对运动矢量进行了预测性编码时生成重构块的过程的流程图。当skip_flag为0并且merge_flag为0时,应用此过程。首先,在步骤S310中,从所接收的比特流的预测单元语法获得当前预测单元的参考图片索引和运动矢量差值。如果切片类型为B,则检查帧间预测信息。如果帧间预测信息通过使用结合的参考图片列表来表示单向预测,则使用参考图片索引选择所结合的参考图片列表的多个参考图片中的一个参考图片,并且恢复运动矢量差值。如果帧间预测信息通过使用参考图片列表0来表示单向预测,则使用参考图片列表0的参考图片索引选择参考图片,并且恢复运动矢量差值。如果帧间预测信息表示双向预测,则使用参考图片列表0和1的每个参考图片索引来选择每个参考图片,并且恢复每个参考图片的每个运动矢量差值。接下来,在步骤S320中导出空间运动矢量候选项。图7是示出了根据本发明的用于生成运动矢量候选项的相邻的预测单元的位置的示意图。空间左运动矢量候选块可以是当前预测单元的左侧预测单元(A块和D块)之一。空间上运动矢量候选块可以是当前预测单元的上侧预测单元(B块、C块和E块)之一。用于导出空间左运动矢量候选项的过程如下。通过按照A块和D块的顺序或者按照D块和A块的顺序检索当前预测单元的左侧块来检查是否存在满足第一条件的预测单元。第一条件为:1)存在预测单元;2)预测单元为帧间预测编码单元;3)预测单元具有与当前预测单元相同的参考图片;以及4)预测单元具有与当前预测单元相同的参考图片列表。如果存在满足第一条件的预测单元,则将预测单元的运动矢量确定为空间左运动矢量候选项。如果不存在满足第一条件的预测单元,则检查是否具有满足第二条件的预测单元。第二条件为:1)存在预测单元;2)预测单元为帧间预测编码单元;3)预测单元具有与当前预测单元相同的参考图片;以及4)预测单元具有不同于当前预测单元的参考图片列表。如果存在满足第二条件的预测单元,则将预测单元的运动矢量确定为空间左运动矢量候选项。如果不存在满足第二条件的预测单元,则检查是否具有满足第三条件的预测单元。第三条件为:1)存在预测单元;2)预测单元为帧间预测编码单元;3)预测单元具有与当前预测单元相同的参考图片列表;以及4)预测单元具有不同于当前预测单元的参考图片。如果存在满足第三条件的预测单元则,将预测单元的运动矢量确定为空间左运动矢量候选项。如果不存在满足第三条件的预测单元,则检查是否具有满足第四条件的预测单元。第四条件为:1)存在预测单元;2)预测单元为帧间预测编码单元;3)预测单元具有不同于当前预测单元的参考图片列表;以及4)预测单元具有不同于当前预测单元的参考图片。如果存在满足第四条件的预测单元,则将预测单元的运动矢量确定为空间左运动矢量候选项。不缩放满足第一条件或第二条件的预测单元的运动矢量。但是,缩放满足第三条件或第四条件的预测单元的运动矢量。如果不存在满足任何一个条件的预测单元,则空间左侧的运动矢量候选项就无法使用。用于导出空间上运动矢量候选项的过程如下。通过按照B块、C块和E块的顺序或者按照C块、B块和E块的顺序检索以上块来检查是否存在满足第一条件的预测单元。如果存在满足第一条件的预测单元,则将预测单元的运动矢量确定为空间上运动矢量候选项。如果不存在满足第一条件的预测单元,则检查是否满足第二条件的预测单元。如果存在满足第二条件的预测单元,将预测单元的运动矢量确定为空间上运动矢量候选项。如果不存在满足第二条件的预测单元,则检查是否满足第三条件的预测单元。如果存在满足第三条件的预测单元,将预测单元的运动矢量确定为空间上运动矢量候选项。如果不存在满足第三条件的预测单元,则检查是否满足第四条件的预测单元。如果存在满足第四条件的预测单元,将预测单元的运动矢量确定为空间上运动矢量候选项。不缩放满足第一条件或第二条件的预测单元的运动矢量。但是,缩放满足第三条件或第四条件的预测单元的运动矢量。如果不存在满足任何一个条件的预测单元,空间上侧的运动矢量候选项就无法使用。用于确定空间左运动矢量候选项的第一至第四条件与用于确定空间上运动矢量候选项的第一至第四条件相同。在步骤S330中导出时间运动矢量候选项。首先,导出数据运动矢量候选块所属的参考图片(时间跳过候选图片)。可以将索引为0的参考图片确定为时间运动矢量候选图片。例如,当切片类型为P时,将参考图片列表0的第一参考图片确定为时间运动矢量候选图片。当切片类型为B时,使用表示时间运动矢量候选项所属的列表的切片头的标志来确定时间运动矢量候选图片。例如,如果标志为1,从列表0确定时间运动矢量候选图片,并且如果标志为0,从列表1确定时间运动矢量候选图片。作为另外一种选择,将从接收的预测单元获得的参考图片索引所表示的参考图片确定为时间运动矢量候选图片。接下来,导出时间运动矢量候选块。时间运动矢量候选块与时间跳过候选块相同。如果导出了时间运动矢量候选块,将时间运动矢量候选块的运动矢量确定为时间运动矢量候选项。接下来,在步骤S340中构造运动矢量候选项列表。使用可用的空间和时间运动矢量候选项来构造运动矢量候选项列表。可以按照预定的顺序构造运动矢量候选项列表。预定的顺序是空间左运动矢量候选项、空间上运动矢量候选项和时间运动矢量候选项的顺序,或者时间运动矢量候选项、空间左运动矢量候选项和空间上运动矢量候选项的顺序。根据预测单元的预测模式可以改变预定的顺序或者从运动矢量候选项中排除一个或多个运动矢量候选项。例如,如果当前预测单元被分割为两个2N×N预测单元,则可以对下侧2N×N预测单元将空间上运动矢量候选项排除。如果当前预测单元被分割成两个N×2N预测单元,则可以改变空间上运动矢量候选项和空间左运动矢量候选项的顺序,或者可以对右侧N×2N预侧单元将空间左运动矢量候选项排除。作为另外一种选择,当编码单元被分割成两个2N×N预测单元时,可以以合并模式对以上2N×N预测单元的运动信息进行编码。如果可能无法以合并模式对以上2N×N预测单元的运动信息进行编码时,可以删除D块,或者当确定空间左运动矢量候选项时,按照此顺序扫描A块和D块。当编码单元被分割为两个N×2N预测单元时,相同的方法可以应用于空间上运动矢量候选项。接下来,如果多个候选项具有相同的运动矢量,则在运动矢量候选项列表中删除具有较低优先级的候选项。接下来,在步骤S350中获得当前预测单元的运动矢量预测值。当在预测单元中存在运动矢量索引时,将运动矢量索引表示的运动矢量候选项确定为当前预测单元的运动矢量预测值。当在所接收的预测单元中不存在运动矢量索引并且存在运动矢量候选项时,将运动矢量候选项确定为当前预测单元的运动矢量预测值。当所有的运动矢量候选项都无法使用时,将当前单元的运动矢量预测值设置为0。同时,在构造运动矢量候选项列表之前,可以读取运动矢量索引。在这种情况下,在按照预定的顺序以运动矢量索引所表示的数量检索可用的运动矢量候选项之后,可以将与运动矢量索引相对应的运动矢量候选项确定为当前预测单元的运动矢量。运动矢量索引可以以固定的长度或变化的长度进行编码。在步骤S360中,如果获得了当前预测单元的运动矢量预测值,则通过将运动矢量差值与运动矢量预测值相加而重构当前预测单元的运动矢量。接下来,在步骤S370中,使用当前预测单元的接收的参考图片索引和当前预测单元的恢复的运动矢量来生成预测块。另外,在步骤S380中,在变换单元的单元中恢复残差块。通过熵解码、反向扫描、反向量化和反向变换恢复残差块。由图1中解码装置的熵解码单元210、反向扫描单元215、反向量化单元220和反向变换单元225执行此过程。最后,在步骤S390中使用预测块和残差块来生成重构的块。在编码单元的单元中可以生成重构的块。因此,在编码单元的单元中分别生成预测块和残差块之后,使用编码单元的单元中的预测块和编码单元的单元中的残差块来生成重构的块。尽管根据本发明的某些示例性实施例示出并且描述了本发明,但是本领域技术人员将会理解的是,在不脱离由所附权利要求书所限定的精神和范围中,可以在本发明的形式和细节上进行各种修改。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1