本发明涉及将图像分割为块并进行预测的图像编码和解码技术。
背景技术:
在图像编码和解码中,将作为处理对象的图像分割为预定数量的像素的集合、即块,并以块为单位进行处理。通过分割成适当的块,适当地设定画面内预测(帧内预测)、画面间预测(帧间预测),提高编码效率。
在动图像的编码/解码中,通过根据已编码/解码的图片预测的帧间预测来提高编码效率。专利文献1公开了一种在帧间预测时应用仿射变换的技术。在动图像中,物体伴随着放大、缩小、旋转这样的变形的情况并不少见,通过应用专利文献1的技术,能够进行高效的编码。
现有技术文献
专利文献
专利文献1:日本特开平9-172644号公报。
技术实现要素:
发明所要解决的问题
但是,由于专利文献1技术伴随着图像的变换,所以存在处理负荷大的问题。本发明鉴于上述问题,提供一种低负荷且高效的编码技术。
用于解决问题的手段
为了解决上述问题,本发明的一个方式的动图像解码装置,包括:空间运动信息候选导出部,从空间上与解码对象块接近的块的运动信息中导出空间运动信息候选;时间运动信息候选导出部,从时间上与解码对象块接近的块的运动信息中导出时间运动信息候选;以及历史运动信息候选导出部,从保持已解码块的运动信息的存储器中导出历史运动信息候选,所述时间运动信息候选不与所述空间运动信息候选以及所述历史运动信息候选中的任一个进行运动信息的比较。
另外,本发明的另一方式的动图像解码方法,包括以下步骤:从空间上与解码对象块接近的块的运动信息中导出空间运动信息候选;从时间上与解码对象块接近的块的运动信息中导出时间运动信息候选;以及从保持已解码块的运动信息的存储器中导出历史运动信息候选,所述时间运动信息候选不与所述空间运动信息候选以及所述历史运动信息候选中的任一个进行运动信息的比较。
另外,本发明的另一方式的动图像解码程序,用于使计算机作为以下部发挥功能:空间运动信息候选导出部,从空间上与解码对象块接近的块的运动信息中导出空间运动信息候选;时间运动信息候选导出部,从时间上与解码对象块接近的块的运动信息中导出时间运动信息候选;以及历史运动信息候选导出部,从保持已解码块的运动信息的存储器中导出历史运动信息候选,所述时间运动信息候选不与所述空间运动信息候选以及所述历史运动信息候选中的任一个进行运动信息的比较。
发明的效果
根据本发明,能够以低负荷实现高效率的图像编码/解码处理。
附图说明
图1是本发明的实施方式涉及的图像编码装置的框图;
图2是本发明实施方式涉及的图像解码装置的框图;
图3是用于说明分割树块的动作的流程图;
图4是示出将输入的图像分割为树块的情形的图;
图5是说明z-扫描的图;
图6a是示出块的分割形状的图;
图6b是示出块的分割形状的图;
图6c是示出块的分割形状的图;
图6d是示出块的分割形状的图;
图6e是示出块的分割形状的图;
图7是用于说明将块进行4分割的动作的流程图;
图8是用于说明对块进行2分割或3分割的动作的流程图;
图9是用于描述块分割的形状的句法;
图10a是用于说明帧内预测的图;
图10b是用于说明帧内预测的图;
图11是用于说明帧间预测的参考块的图;
图12是用于描述编码块预测模式的句法;
图13是示出与帧间预测相关的句法元素和模式之间的对应关系的图;
图14是用于说明控制点为两点的仿射变换运动补偿的图;
图15是用于说明控制点为三点的仿射变换运动补偿的图;
图16是图1的帧间预测部102的详细结构的框图;
图17是图16的通常预测运动矢量模式导出部301的详细结构的框图;
图18是图16的通常合并模式导出部302的详细结构的框图;
图19是用于说明图16的通常预测运动矢量模式导出部301的通常预测运动矢量模式导出处理的流程图;
图20是表示通常预测运动矢量模式导出处理的处理步骤的流程图;
图21是说明通常合并模式导出处理的处理步骤的流程图;
图22是图2的帧间预测部203的详细结构的框图;
图23是图22的通常预测运动矢量模式导出部401的详细结构的框图;
图24是图22的通常合并模式导出部402的详细结构的框图;
图25是用于说明图22的通常预测运动矢量模式导出部401的通常预测运动矢量模式导出处理的流程图;
图26是说明历史预测运动矢量候选列表初始化/更新处理过程的图;
图27是在历史预测运动矢量候选列表初始化/更新处理步骤中的、相同要素确认处理步骤的流程图;
图28是在历史预测运动矢量候选列表初始化/更新处理步骤中的要素移位处理步骤的流程图;
图29是说明历史预测运动矢量候选导出处理步骤的流程图;
图30是说明历史合并候选导出处理步骤的流程图;
图31a是用于说明历史预测运动矢量候选列表更新处理的一例的图;
图31b是用于说明历史预测运动矢量候选列表更新处理的一例的图;
图31c是用于说明历史预测运动矢量候选列表更新处理的一例的图;
图32是用于说明在l0预测中l0的参考图片(refl0pic)处于处理对象图片(curpic)之前的时刻的情况下的运动补偿预测的图;
图33是用于说明在l0预测中l0预测的参考图片处于处理对象图片之后的时刻的情况下的运动补偿预测的图;
图34是用于说明在双预测中l0预测的参考图片处于处理对象图片之前的时刻、l1预测的参考图片处于处理对象图片之后的时刻的情况下的运动补偿预测的预测方向的图;
图35是用于说明双预测中l0预测的参考图片和l1预测的参考图片处于处理对象图片之前的时刻的情况下的运动补偿预测的预测方向的图;
图36是用于说明双预测中l0预测的参考图片和l1预测的参考图片处于处理对象图片之后的时刻的情况下的运动补偿预测的预测方向的图;
图37是用于说明本发明的实施方式的编码解码装置的硬件结构的一例的图;
图38是本发明的第二实施方式中的图16的通常预测运动矢量模式导出部301的详细结构的框图;
图39是本发明的第二实施方式中的图22的通常预测运动矢量模式导出部401的详细结构的框图;
图40是本发明的第三实施方式中的图16的通常预测运动矢量模式导出部301的详细结构的框图;
图41是本发明的第三实施方式中的图22的通常预测运动矢量模式导出部401的详细结构的框图。
具体实施方式
定义在本实施方式中使用的技术及技术用语。
<树块>
在实施方式中,以预定的尺寸对编码/解码处理对象图像进行均等分割。将此单位定义为树块。在图4中,将树块的尺寸设为128×128像素,但树块的尺寸并不限定于此,可以设定任意的尺寸。作为处理对象(在编码处理中对应于编码对象,在解码处理中对应于解码对象。)的树块按照光栅扫描顺序,即从左到右、从上到下的顺序切换。各树块的内部可以进行进一步的递归分割。将在对树块进行递归分割之后的、成为编码和解码对象的块定义为编码块。另外,将树块、编码块统称为块。通过进行适当的块分割,能够进行高效率的编码。树块的尺寸可以是在编码装置和解码装置中预先决定的固定值,也可以采用将编码装置决定的树块的尺寸传送到解码装置的结构。这里,将树块的最大尺寸设为128×128像素,将树块的最小尺寸设为16×16像素。另外,将编码块最大尺寸设为64×64像素,将编码块的最小尺寸设为4×4像素。
<预测模式>
以处理对象编码块为单位,切换帧内预测(mode_intra)和帧间预测(mode_inter),该帧内预测(mode_intra)根据处理对象图像的已处理图像信号进行预测,该帧间预测根据已处理图像的图像信号进行预测。
已处理图像在编码处理中用于将完成了编码的信号进行解码而得到的图像、图像信号、树块、块、编码块等,并在解码处理中用于完成了解码的图像、图像信号、树块、块、编码块等。
将识别该帧内预测(mode_intra)和帧间预测(mode_inter)的模式定义为预测模式(predmode)。预测模式(predmode)以值的形式表现帧内预测(mode_intra)或帧间预测(mode_inter)。
<帧间预测>
在根据已处理图像的图像信号进行预测的帧间预测中,能够将多个已处理图像用作参考图片。为了管理多个参考图片,定义l0(参考列表0)和l1(参考列表1)这两种参考列表,分别使用参考索引来确定参考图片。在p条带(pslice)中,能够使用l0预测(pred_l0)。在b条带(bslice)中,能够使用l0预测(pred_l0)、l1预测(pred_l1)、双预测(pred_bi)。l0预测(pred_l0)是参考由l0管理的参考图片的帧间预测,并且l1预测(pred_l1)是参考由l1管理的参考图片的帧间预测。双预测(pred_bi)是同时执行l0预测和l1预测并且参考由l0和l1中的每一个管理的一个个参考图片的帧间预测。将确定l0预测、l1预测和双预测的信息定义为帧间预测模式。关于在以后的处理中在输出上附加有下标lx的常数、变量,以按l0、l1进行处理为前提。
<预测运动矢量模式>
预测运动矢量模式是传送用于确定预测运动矢量的索引、差分运动矢量、帧间预测模式、参考索引并决定处理对象块的帧间预测信息的模式。预测运动矢量根据预测运动矢量候选和用于确定预测运动矢量的索引导出,所述预测运动矢量候选是根据与处理对象块相邻的已处理块或者属于已处理图像的块中位于与处理对象块相同位置或者其附近(邻近)的块导出的。
<合并模式>
合并模式是以下模式:不传送差分运动矢量、参考索引,而根据与处理对象块相邻的已处理块或属于已处理图像的块中与处理对象块位于相同位置或其附近(邻近)的块的帧间预测信息导出处理对象块的帧间预测信息。
将与处理对象块相邻的已处理块以及该已处理块的帧间预测信息定义为空间合并候选。将属于已处理图像的块中位于与处理对象块相同位置或其附近(邻近)的块、以及根据该块的帧间预测信息导出的帧间预测信息定义为时间合并候选。各合并候选被登记在合并候选列表中,通过合并索引来确定在处理对象块的预测中使用的合并候选。
<相邻块>
图11是说明用于在预测运动矢量模式和合并模式下导出帧间预测信息而参考的参考块的图。a0、a1、a2、b0、b1、b2、b3是与处理对象块相邻的已处理块。t0是在属于已处理图像块中与处理对象图像中的处理对象块位于相同位置或其附近(邻近)的块。
a1、a2是位于处理对象编码块的左侧、与处理对象编码块相邻的块。b1、b3是位于处理对象编码块的上侧、与处理对象编码块相邻的块。a0、b0、b2分别是位于处理对象编码块的左下、右上、左上的块。
后面描述在预测运动矢量模式和合并模式中如何处理相邻块的细节。
<仿射变换运动补偿>
仿射变换运动补偿是将编码块分割为预定单位的子块,并对分割后的各子块单独决定运动矢量来进行运动补偿的。基于一个以上的控制点来导出各子块的运动矢量,该一个以上的控制点根据与处理对象块相邻的已处理块或属于已处理图像的块中与处理对象块位于相同位置或其附近(邻近)的块的帧间预测信息导出。在本实施方式中,将子块的尺寸设为4×4像素,但子块的尺寸并不限定于此,也可以以像素为单位导出运动矢量。
图14示出了控制点为两个时的仿射变换运动补偿的例子。在该情况下,两个控制点具有水平方向分量和垂直方向分量两个参数。因此,将控制点为两个时的仿射变换称为四参数仿射变换。图14的cp1、cp2是控制点。
图15示出了在控制点为三个时的仿射变换运动补偿的例子。在该情况下,三个控制点具有水平方向分量和垂直方向分量这两个参数。因此,将控制点为三个时的仿射变换称为六参数仿射变换。图15的cp1、cp2、cp3是控制点。
仿射变换运动补偿可以在预测运动矢量模式和合并模式中的任一模式中使用。将在预测运动矢量模式下应用仿射变换运动补偿的模式定义为子块预测运动矢量模式,将在合并模式下应用仿射变换运动补偿的模式定义为子块合并模式。
<帧间预测的句法>
使用图12和图13对与帧间预测有关的句法进行说明。
图12的merge_flag是表示将处理对象编码块设为合并模式还是设为预测运动矢量模式的标志。merge_affine_flag是表示是否在合并模式的处理对象编码块中应用子块合并模式的标志。inter_affine_flag是表示是否在预测运动矢量模式的处理对象编码块中应用子块预测运动矢量模式的标志。cu_affine_type_flag是用于在子块预测运动矢量模式中决定控制点的数量的标志。
图13示出了各句法元素的值和与其对应的预测方法。merge_flag=1、merge_affine_flag=0对应于通常合并模式。通常合并模式为不是子块合并的合并模式。merge_flag=1、merge_affine_flag=1对应于子块合并模式。merge_flag=0、inter_affine_flag=0对应于通常预测运动矢量模式。通常预测运动矢量模式为不是子块预测运动矢量模式的预测运动矢量合并。merge_flag=0、inter_affine_flag=1对应于子块预测运动矢量模式。在merge_flag=0、inter_affine_flag=1的情况下,进一步传送cu_affine_type_flag,决定控制点的数量。
<poc>
poc(pictureordercount,图片序列号)是与要被编码的图片相关联的变量,并且设定与图片的输出顺序对应的递增1的值。根据poc的值,能够辨别是否是相同的图片、辨别输出顺序中的图片之间的前后关系、导出图片之间的距离。例如,如果两个图片的poc具有相同的值,则可以判断为是相同的图片。在两个图片的poc具有不同值的情况下,能够判断为poc的值小的图片是先输出的图片,两个图片的poc之间的差表示时间轴方向上的图片之间的距离。
(第一实施方式)
对本发明的第一实施方式涉及的图像编码装置100和图像解码装置200进行说明。
图1是第一实施方式涉及的图像编码装置100的框图。实施方式的图像编码装置100包括块分割部101、帧间预测部102、帧内预测部103、解码图像存储器104、预测方法决定部105、残差生成部106、正交变换/量化部107、比特串编码部108、逆量化/逆正交变换部109、解码图像信号重叠部110、以及编码信息保存存储器111。
块分割部101递归地分割已被输入的图像,以生成编码块。块分割部101包括4分割部和2-3分割部,4分割部将成为分割对象的块在水平方向和垂直方向上分别进行分割,2-3分割部将成为分割对象的块在水平方向和垂直方向中的任一个上进行分割。块分割部101将所生成的编码块设定为处理对象编码块,并将该处理对象编码块的图像信号提供给帧间预测部102、帧内预测部103和残差生成部106。另外,块分割部101将表示所决定的递归分割结构的信息提供给比特串编码部108。块分割部101的详细的动作在后面叙述。
帧间预测部102进行处理对象编码块的帧间预测。帧间预测部102根据保存在编码信息保存存储器111中的帧间预测信息和保存在解码图像存储器104中的已解码的图像信号导出多个帧间预测信息的候选,从导出的多个候选中选择合适的帧间预测模式,并且将所选择的帧间预测模式和与所选择的帧间预测模式对应的预测图像信号提供给预测方法决定部105。后面描述帧间预测部102的详细结构和动作。
帧内预测部103进行处理对象编码块的帧内预测。帧内预测部103将保存在解码图像存储器104中的已解码的图像信号作为参考像素进行参考,通过基于保存在编码信息保存存储器111中的帧内预测模式等编码信息的帧内预测来生成预测图像信号。在帧内预测中,帧内预测部103从多个帧内预测模式中选择合适的帧内预测模式,并将所选择的帧内预测模式和与所选择的帧内预测模式对应的预测图像信号提供给预测方法决定部105。
图10a和图10b示出了帧内预测的例子。图10a是示出了帧内预测的预测方向与帧内预测模式编号之间的对应关系的图。例如,帧内预测模式50通过在垂直方向上复制参考像素来生成帧内预测图像。帧内预测模式1是dc模式,并且是将处理对象块的所有像素值设为参考像素的平均值的模式。帧内预测模式0是planar模式(二维模式),是根据垂直方向和水平方向上的参考像素生成二维帧内预测图像的模式。图10b是生成帧内预测模式40的情况下的帧内预测图像的例子。帧内预测部103将帧内预测模式指示的方向上的参考像素的值复制到处理对象块的每个像素。在帧内预测模式中的参考像素不是整数位置的情况下,帧内预测部103根据周围的整数位置处的参考像素值通过插值决定参考像素值。
解码图像存储器104保存由解码图像信号重叠部110生成的解码图像。解码图像存储器104将保存的解码图像提供给帧间预测部102和帧内预测部103。
预测方法决定部105通过使用编码信息和残差的编码量、预测图像信号与处理对象图像信号之间的失真量等对帧内预测和帧间预测中的每一个进行评估,来决定最佳预测模式。在帧内预测的情况下,预测方法决定部105将帧内预测模式等的帧内预测信息作为编码信息提供给比特串编码部108。在帧间预测的合并模式的情况下,预测方法决定部105将合并索引、指示是否是子块合并模式的信息(子块合并标志)等帧间预测信息作为编码信息提供给比特串编码部108。在帧间预测的预测运动矢量模式的情况下,预测方法决定部105将帧间预测模式、预测运动矢量索引、l0和l1的参考索引、差分运动矢量、及指示是否为子块预测运动矢量模式的信息(子块预测运动矢量标志)等帧间预测信息作为编码信息提供给比特串编码部108。此外,预测方法决定部105将所决定的编码信息提供给编码信息保存存储器111。预测方法决定部105将预测图像信号提供给残差生成部106及解码图像信号重叠部110。
残差生成部106通过从处理对象的图像信号中减去预测图像信号来生成残差,并提供给正交变换/量化部107。
正交变换/量化部107根据量化参数对残差进行正交变换和量化,以生成经过正交变换/量化的残差,并且将所生成的残差提供给比特串编码部108和逆量化/逆正交变换部109。
比特串编码部108除了序列、图片、条带、编码块单位的信息之外,还针对每个编码块对与由预测方法决定部105决定的预测方法对应的编码信息进行编码。具体而言,比特串编码部108对每个编码块的预测模式predmode进行编码。在预测模式是帧间预测(mode_inter)的情况下,比特串编码部108按照规定的句法(比特串的句法规则)对辨别是否为合并模式的标志、子块合并标志、在是合并模式的情况下的合并索引、在不是合并模式的情况下的帧间预测模式、预测运动矢量索引、与差分运动矢量有关的信息、子块预测运动矢量标志等编码信息(帧间预测信息)进行编码,生成第一比特串。在预测模式是帧内预测(mode_intra)的情况下,按照规定的句法(比特串的句法规则)对帧内预测模式等编码信息(帧内预测信息)进行编码,生成第一比特串。另外,比特串编码部108按照规定的句法对正交变换及量化后的残差进行熵编码,生成第二比特串。比特串编码部108按照规定的句法对第一比特串和第二比特串进行复用,输出比特流。
逆量化/逆正交变换部109对从正交变换/量化部107提供的经正交变换/量化的残差进行逆量化和逆正交变换,以计算残差,并将所计算出的残差提供给解码图像信号重叠部110。
解码图像信号重叠部110将与预测方法决定部105的决定对应的预测图像信号和由逆量化/逆正交变换部109进行逆量化及逆正交变换而得的残差重叠,生成解码图像,并保存在解码图像存储器104中。此外,解码图像信号重叠部110也可以对解码图像实施减少编码引起的块失真等失真的滤波处理后,保存在解码图像存储器104中。
编码信息保存存储器111保存由预测方法决定部105决定的预测模式(帧间预测或帧内预测)等编码信息。在帧间预测的情况下,在编码信息保存存储器111中保存的编码信息中包括所决定的运动矢量、参考列表l0、l1的参考索引、以及历史预测运动矢量候选列表等帧间预测信息。另外,在帧间预测的合并模式的情况下,编码信息保存存储器111保存的编码信息中除了上述各信息之外,还包含合并索引、表示是否是子块合并模式的信息(子块合并标志)的帧间预测信息。另外,在帧间预测的预测运动矢量模式的情况下,在编码信息保存存储器111保存的编码信息中,除了上述各信息之外,还包含帧间预测模式、预测运动矢量索引、差分运动矢量、表示是否为子块预测运动矢量模式的信息(子块预测运动矢量标志)等帧间预测信息。在帧内预测的情况下,在编码信息保存存储器111保存的编码信息中包含所决定的帧内预测模式等帧内预测信息。
图2是表示与图1的图像编码装置对应的本发明的实施方式涉及的图像解码装置的结构的框图。实施方式的图像解码装置包括比特串解码部201、块分割部202、帧间预测部203、帧内预测部204、编码信息保存存储器205、逆量化/逆正交变换部206、解码图像信号重叠部207和解码图像存储器208。
图2的图像解码装置的解码处理与图1的图像编码装置的内部设置的解码处理对应,因此图2的编码信息保存存储器205、逆量化/逆正交变换部206、解码图像信号重叠部207以及解码图像存储器208的各结构具有与图1的图像编码装置的编码信息保存存储器111、逆量化/逆正交变换部109、解码图像信号重叠部110以及解码图像存储器104的各结构分别对应的功能。
提供给比特串解码部201的比特流根据规定的句法规则被分离。比特串解码部201对分离出的第一比特串进行解码,得到序列、图片、条带、编码块单位的信息、以及编码块单位的编码信息。具体而言,比特串解码部201以编码块为单位解码预测模式predmode,预测模式predmode辨别是帧间预测(mode_inter)还是帧内预测(mode_intra)。在预测模式是帧间预测(mode_inter)的情况下,比特串解码部201按照规定的句法对与辨别是否为合并模式的标志、在合并模式的情况下的合并索引、子块合并标志、预测运动矢量模式的情况下的帧间预测模式、预测运动矢量索引、差分运动矢量、子块预测运动矢量标志等有关的编码信息(帧间预测信息)进行解码,并将编码信息(帧间预测信息)经由帧间预测部203和块分割部202提供给编码信息保存存储器205。在预测模式是帧内预测(mode_intra)的情况下,按照规定的句法对帧内预测模式等编码信息(帧内预测信息)进行解码,将编码信息(帧内预测信息)经由帧间预测部203或帧内预测部204、以及块分割部202提供给编码信息保存存储器205。比特串解码部201对分离出的第二比特串进行解码,计算出正交变换/量化后的残差,并将正交变换/量化后的残差提供给逆量化/逆正交变换部206。
当处理对象的编码块的预测模式predmode是帧间预测(mode_inter)中的预测运动矢量模式时,帧间预测部203使用存储在编码信息保存存储器205中的已解码的图像信号的编码信息来导出多个预测运动矢量的候选,并将所导出的多个预测运动矢量的候选登记在后述的预测运动矢量候选列表中。帧间预测部203从登记在预测运动矢量候选列表中的多个预测运动矢量候选中选择与由比特串解码部201解码而提供的预测运动矢量索引对应的预测运动矢量,根据由比特串解码部201解码的差分运动矢量和选择出的预测运动矢量计算运动矢量,并将计算出的运动矢量与其它的编码信息一起保存在编码信息保存存储器205中。这里,要提供/保存的编码块的编码信息是预测模式predmode、表示是否利用l0预测以及l1预测的标志predflagl0[xp][yp]、predflagl1[xp][yp]、l0、l1的参考索引refidxl0[xp][yp]、refidxl1[xp][yp]、l0、l1的运动矢量mvl0[xp][yp]、mvl1[xp][yp]等。这里,xp、yp是表示图片内的编码块的左上像素的位置的索引。在预测模式predmode是帧间预测(mode_inter)且帧间预测模式是l0预测(pred_l0)的情况下,指示是否使用l0预测的标志predflagl0是1,且指示是否使用l1预测的标志predflagl1是0。在帧间预测模式是l1预测(pred_l1)的情况下,指示是否使用l0预测的标志predflagl0是0,且指示是否使用l1预测的标志predflagl1是1。在帧间预测模式是双预测(pred_bi)的情况下,指示是否使用l0预测的标志predflagl0和指示是否使用l1预测的标志predflagl1都是1。并且,在处理对象的编码块的预测模式predmode是帧间预测(mode_inter)中的合并模式时,导出合并候选。使用存储在编码信息保存存储器205中的已解码的编码块的编码信息,导出多个合并的候选,登记在后述的合并候选列表中,从登记在合并候选列表中的多个合并候选中选择与由比特串解码部201解码而提供的合并索引对应的合并候选,将表示是否利用所选择的合并候选的l0预测及l1预测的标志predflagl0[xp][yp]、predflagl1[xp][yp]、l0、l1的参考索引refidxl0[xp][yp]、refidxl1[xp][yp]、l0、l1的运动矢量mvl0[xp][yp]、mvl1[xp][yp]等帧间预测信息保存在编码信息保存存储器205中。这里,xp、yp是表示图片内的编码块的左上像素的位置的索引。后述帧间预测部203的详细构成和动作。
当处理对象的编码块的预测模式predmode是帧内预测(mode_intra)时,帧内预测部204进行帧内预测。在由比特串解码部201解码的编码信息中包含帧内预测模式。帧内预测部204根据包括在由比特串解码部201解码的解码信息中的帧内预测模式,通过帧内预测并根据保存在解码图像存储器208中的已解码图像信号生成预测图像信号,并且将所生成的预测图像信号提供给解码图像信号重叠部207。帧内预测部204由于对应于图像编码装置100的帧内预测部103,因此执行与帧内预测部103相同的处理。
逆量化/逆正交变换部206对由比特串解码部201解码后的正交变换/量化后的残差进行逆正交变换及逆量化,得到逆正交变换/逆量化后的残差。
解码图像信号重叠部207通过重叠由帧间预测部203进行帧间预测而得的预测图像信号或由帧内预测部204进行帧内预测而得的预测图像信号、和由逆量化/逆正交变换部206进行逆正交变换/逆量化后的残差,对解码图像信号进行解码,将解码后的解码图像信号保存在解码图像存储器208中。在保存在解码图像存储器208中时,解码图像信号重叠部207对解码图像也可以在实施减少编码引起的块失真等的滤波处理后,保存在解码图像存储器208中。
接着,对图像编码装置100中的块分割部101的动作进行说明。图3是表示将图像分割为树块、并进一步分割各树块的动作的流程图。首先,将输入的图像分割为预定尺寸的树块(步骤s1001)。对于各树块,按照预定的顺序、即光栅扫描顺序进行扫描(步骤s1002),分割处理对象的树块的内部(步骤s1003)。
图7是表示步骤s1003的分割处理的详细动作的流程图。首先,判断是否将处理对象的块进行4分割(步骤s1101)。
在判断为将处理对象块4分割的情况下,将处理对象块4分割(步骤s1102)。对于将处理对象块分割而得的各块,按照z扫描顺序、即左上、右上、左下、右下的顺序进行扫描(步骤s1103)。图5是z扫描顺序的例子,图6a的601是将处理对象块4分割后的例子。图6a的601的编号0~3表示处理的顺序。然后,对于在步骤s1101中分割的各块,递归地执行图7的分割处理(步骤s1104)。
在判断为不对处理对象块进行4分割的情况下,进行2-3分割(步骤s1105)。
图8是表示步骤s1105的2-3分割处理的详细动作的流程图。首先,判断是否对处理对象的块进行2-3分割,即是否进行2分割和3分割中的某一个(步骤s1201)。
在判断为不对处理对象块进行2-3分割的情况下,即判断为不进行分割的情况下,结束分割(步骤s1211)。即,对于通过递归分割处理分割而得的块,不进行进一步的递归分割处理。
在判断为将处理对象的块进行2-3分割的情况下,判断是否进一步将处理对象块进行2分割(步骤s1202)。
在判断为将处理对象块进行2分割的情况下,判断是否对处理对象块进行上下(垂直方向)分割(步骤s1203),基于其结果,对处理对象块在上下(垂直方向)进行2分割(步骤s1204),或者对处理对象块在左右(水平方向)进行2分割(步骤s1205)。作为步骤s1204的结果,处理对象块如图6b中的602所示,被分割为上下(垂直方向)两部分。作为步骤s1205的结果,处理对象块如图6d中的604所示,被分割为左右(水平方向)两部分。
在步骤s1202中,在未判断为对处理对象块进行2分割的情况下,即,在判断为3分割的情况下,则判断是否对处理对象块在上中下(垂直方向)进行分割(步骤s1206),基于该结果,对处理对象块在上中下(垂直方向)进行3分割(步骤s1207),或者对处理对象块在左中右(水平方向)进行3分割(步骤s1208)。在步骤s1207的结果中,处理对象块如图6c的603所示,被分割为上中下(垂直方向)3部分,在步骤s1208的结果中,处理对象块如图6e的605所示,被分割为左中右(水平方向)3部分。
在执行了步骤s1204、步骤s1205、步骤s1207、步骤s1208中任一个之后,按照从左到右、从上到下的顺序对将处理对象块分割而成的各块进行扫描(步骤s1209)。图6b~图6e的从602到605的编号0~2表示处理的顺序。对于分割而成的各块,递归地执行图8的2-3分割处理(步骤s1210)。
这里说明的递归的块分割也可以根据分割的次数、或者处理对象的块的尺寸等来限制是否需要分割。限制是否需要分割的信息可以以通过在编码装置和解码装置之间预先约定而不进行信息传递的结构来实现,也可以以通过编码装置决定限制是否需要分割的信息并记录在比特串中来向解码装置传递的结构来实现。
在分割完某块时,将分割前的块称为母块,将分割后的各块称为子块。
接下来,对图像解码装置200中的块分割部202的动作进行说明。块分割部202按照与图像编码装置100的块分割部101相同的处理步骤来分割树块。但是,不同之处在于,在图像编码装置100的块分割部101中,应用基于图像识别的最佳形状的估计或失真率优化等优化方法,决定最佳的块分割的形状,与此相对,图像解码装置200中的块分割部202通过对比特串中记录的块分割信息进行解码,来决定块分割形状。
图9示出与第一实施方式的块分割有关的句法(比特串的句法规则)。coding_quadtree()表示块的4分割处理所涉及的句法。multi_type_tree()表示块的2分割或3分割处理所涉及的句法。qt_split是表示是否对块进行4分割的标志。在对块进行4分割的情况下,设qt_split=1,在不进行4分割的情况下,设qt_split=0。在4分割的情况下(qt_split=1),对4分割后的各块递归地进行4分割处理(coding_quadtree(0)、coding_quadtree(1)、coding_quadtree(2)、coding_quadtree(3),自变量的0~3对应于图6a的601的编号)。在不进行4分割的情况下(qt_split=0),按照multi_type_tree(),决定后续的分割。mtt_split是表示是否进一步进行分割的标志。并且,在进行分割的情况下(mtt_split=1),传送表示是在垂直方向上分割还是在水平方向上分割的标记即mtt_split_vertical、以及决定是进行2分割还是进行3分割的标记即mtt_split_binary。mtt_split_vertical=1表示在垂直方向上进行分割,mtt_split_vertical=0表示在水平方向上进行分割。mtt_split_binary=1表示进行2分割,mtt_split_binary=0表示进行3分割。在2分割的情况下(mtt_split_binary=1),对2分割后的各块递归地进行分割处理(multi_type_tree(0)、multi_type_tree(1),自变量的0~1对应于图6b~图6d的602或604的编号)。在3分割的情况下(mtt_split_binary=0),对3分割后的各块递归地进行分割处理(multi_type_tree(0)、multi_type_tree(1)、multi_type_tree(2),0~2对应于图6b的603或图6e的605的编号)。通过递归地调用multi_type_tree,进行分层块分割,直到mtt_split=0为止。
<帧间预测>
实施方式的帧间预测方法在图1的图像编码装置的帧间预测部102以及图2的图像解码装置的帧间预测部203中实施。
对实施方式涉及的帧间预测方法使用附图进行说明。帧间预测方法以编码块为单位在编码处理和解码处理中的任一个中实施。
<编码侧的帧间预测部102的说明>
图16是示出图1的图像编码装置的帧间预测部102的详细结构的图。通常预测运动矢量模式导出部301导出多个通常预测运动矢量候选来选择预测运动矢量,并计算所选择出的预测运动矢量与检测出的运动矢量之间的差分运动矢量。检测出的帧间预测模式、参考索引、运动矢量以及计算出的差分运动矢量是通常预测运动矢量模式的帧间预测信息。该帧间预测信息被提供给帧间预测模式判定部305。通常预测运动矢量模式导出部301的详细结构和处理在后面叙述。
在通常合并模式导出部302中,导出多个通常合并候选,选择通常合并候选,得到通常合并模式的帧间预测信息。该帧间预测信息被提供给帧间预测模式判定部305。通常合并模式导出部302的详细结构和处理将在后面叙述。
在子块预测运动矢量模式导出部303中,导出多个子块预测运动矢量候选来选择子块预测运动矢量,并计算所选择出的子块预测运动矢量与检测出的运动矢量之间的差分运动矢量。检测出的帧间预测模式、参考索引、运动矢量和计算出的差分运动矢量为子块预测运动矢量模式的帧间预测信息。该帧间预测信息被提供给帧间预测模式判定部305。
在子块合并模式导出部304中,导出多个子块合并候选,选择子块合并候选,得到子块合并模式的帧间预测信息。该帧间预测信息被提供给帧间预测模式判定部305。
帧间预测模式判定部305基于从通常预测运动矢量模式导出部301、通常合并模式导出部302、子块预测运动矢量模式导出部303和子块合并模式导出部304提供的帧间预测信息来判定帧间预测信息。与判定结果相应的帧间预测信息从帧间预测模式判定部305被提供给运动补偿预测部306。
运动补偿预测部306基于判定出的帧间预测信息对保存在解码图像存储器104中的参考图像信号进行帧间预测。运动补偿预测部306的详细结构和处理将在后面叙述。
<解码侧的帧间预测部203的说明>
图22是示出图2的图像解码装置的帧间预测部203的详细结构的图。
通常预测运动矢量模式导出部401导出多个通常预测运动矢量候选来选择预测运动矢量,计算选择出的预测运动矢量与解码后的差分运动矢量的相加值来作为运动矢量。解码后的帧间预测模式、参考索引、运动矢量为通常预测运动矢量模式的帧间预测信息。该帧间预测信息经由开关408被提供给运动补偿预测部406。通常预测运动矢量模式导出部401的详细结构和处理将在后面叙述。
在通常合并模式导出部402中,导出多个通常合并候选来选择通常合并候选,得到通常合并模式的帧间预测信息。该帧间预测信息经由开关408被提供给运动补偿预测部406。通常合并模式导出部402的详细结构和处理将在后面叙述。
在子块预测运动矢量模式导出部403中,导出多个子块预测运动矢量候选来选择子块预测运动矢量,计算选择出的子块预测运动矢量与解码后的差分运动矢量的相加值来作为运动矢量。解码后的帧间预测模式、参考索引、运动矢量成为子块预测运动矢量模式的帧间预测信息。该帧间预测信息经由开关408被提供给运动补偿预测部406。
在子块合并模式导出部404中,导出多个子块合并候选来选择子块合并候选,得到子块合并模式的帧间预测信息。该帧间预测信息经由开关408被提供给运动补偿预测部406。
在运动补偿预测部406中,基于判定出的帧间预测信息对保存在解码图像存储器208中的参考图像信号进行帧间预测。运动补偿预测部406的详细结构和处理与编码侧的运动补偿预测部306相同。
<通常预测运动矢量模式导出部(通常amvp)>
图17的通常预测运动矢量模式导出部301包含空间预测运动矢量候选导出部321、时间预测运动矢量候选导出部322、历史预测运动矢量候选导出部323、预测运动矢量候选补充部325、通常运动矢量检测部326、预测运动矢量候选选择部327、以及运动矢量减法部328。
图23的通常预测运动矢量模式导出部401包含空间预测运动矢量候选导出部421、时间预测运动矢量候选导出部422、历史预测运动矢量候选导出部423、预测运动矢量候选补充部425、预测运动矢量候选选择部426、以及运动矢量加法部427。
分别使用图19、图25的流程图对编码侧的通常预测运动矢量模式导出部301和解码侧的通常预测运动矢量模式导出部401的处理步骤进行说明。图19是示出基于编码侧的通常运动矢量模式导出部301的通常预测运动矢量模式导出处理步骤的流程图,图25是示出基于解码侧的通常运动矢量模式导出部401的通常预测运动矢量模式导出处理步骤的流程图。
<通常预测运动矢量模式导出部(通常amvp):编码侧的说明>
参考图19对编码侧的通常预测运动矢量模式导出处理步骤进行说明。在图19的处理步骤的说明中,有时省略图19所示的“通常”一词。
首先,通常运动矢量检测部326针对每个帧间预测模式和参考索引检测通常运动矢量(图19的步骤s100)。
接着,空间预测运动矢量候选导出部321、时间预测运动矢量候选导出部322、历史预测运动矢量候选导出部323、预测运动矢量候选补充部325、预测运动矢量候选选择部327和运动矢量减法部328针对每个l0和l1分别计算在通常预测运动矢量模式的帧间预测中使用的运动矢量的差分运动矢量(图19的步骤s101至s106)。具体地,当处理对象块的预测模式predmode是帧间预测(mode_inter)并且帧间预测模式是l0预测(pred_l0)时,计算l0的预测运动矢量候选列表mvplistl0,选择预测运动矢量mvpl0,并且计算l0的运动矢量mvl0的差分运动矢量mvdl0。当处理对象块的帧间预测模式是l1预测(pred_l1)时,计算l1的预测运动矢量候选列表mvplistl1,选择预测运动矢量mvpl1,并且计算l1的运动矢量mvl1的差分运动矢量mvdl1。在处理对象块的帧间预测模式是双预测(pred_bi)时,同时进行l0预测和l1预测,计算l0的预测运动矢量候选列表mvplistl0,选择l0的预测运动矢量mvpl0,计算l0的运动矢量mvl0的差分运动矢量mvdl0,并计算l1的预测运动矢量候选列表mvplistl1,计算l1的预测运动矢量mvpl1,分别计算l1的运动矢量mvl1的差分运动矢量mvdl1。
对l0、l1分别进行差分运动矢量计算处理,但l0、l1都是共同的处理。因此,在以下说明中,将l0、l1表示为共同的lx。在计算l0的差分运动矢量的处理中,lx的x为0,在计算l1的差分运动矢量的处理中,lx的x为1。另外,在计算lx的差分运动矢量的处理中,在不参考lx而参考另一个列表的信息的情况下,将另一个列表表示为ly。
在使用lx的运动矢量mvlx的情况下(图19的步骤s102:是),计算lx的预测运动矢量的候选,构建lx的预测运动矢量候选列表mvplistlx(图19的步骤s103)。由通常预测运动矢量模式导出部301中的空间预测运动矢量候选导出部321、时间预测运动矢量候选导出部322、历史预测运动矢量候选导出部323、预测运动矢量候选补充部325导出多个预测运动矢量的候选,构建预测运动矢量候选列表mvplistlx。关于图19的步骤s103的详细的处理步骤使用图20的流程图在后面叙述。
接着,由预测运动矢量候选选择部327从lx的预测运动矢量候选列表mvplistlx中选择lx的预测运动矢量mvplx(图19的步骤s104)。这里,在预测运动矢量候选列表mvplistlx中,将某一个要素(从0开始数第i个要素)表示为mvplistlx[i]。计算作为运动矢量mvlx与保存在预测运动矢量候选列表mvplistlx中的各预测运动矢量的候选mvplistlx[i]之间的差分的各个差分运动矢量。针对每个预测运动矢量候选列表mvplistlx的要素(预测运动矢量候选),计算对这些差分运动矢量进行编码时的编码量。然后,在登记在预测运动矢量候选列表mvplistlx中的各要素中,选择预测运动矢量的每个候选的码量最小的预测运动矢量的候选mvplistlx[i]作为预测运动矢量mvplx,并获取该索引i。在预测运动矢量候选列表mvplistlx中存在多个成为最小的产生码量的预测运动矢量的候选的情况下,将由预测运动矢量候选列表mvplistlx中的索引i小的编号表示的预测运动矢量的候选mvplistlx[i]选择为最佳的预测运动矢量mvplx,并获取该索引i。
接着,运动矢量减法部328从lx的运动矢量mvlx中减去所选择出的lx的预测运动矢量mvplx,设为mvdlx=mvlx-mvplx,来计算lx的差分运动矢量mvdlx(图19的步骤s105)。
<通常预测运动矢量模式导出部(通常amvp):解码侧的说明>
接着,参考图25对解码侧的通常预测运动矢量模式处理步骤进行说明。在解码侧,由空间预测运动矢量候选导出部421、时间预测运动矢量候选导出部422、历史预测运动矢量候选导出部423和预测运动矢量候选补充部425针对每个l0和l1计算在通常预测运动矢量模式的帧间预测中使用的运动矢量(图25的步骤s201至s206)。具体地,当处理对象块的预测模式predmode是帧间预测(mode_inter)并且处理对象块的帧间预测模式是l0预测(pred_l0)时,计算l0的预测运动矢量候选列表mvplistl0,选择预测运动矢量mvpl0,并且计算l0的运动矢量mvl0。当处理对象块的帧间预测模式是l1预测(pred_l1)时,计算l1的预测运动矢量候选列表mvplistl1,选择预测运动矢量mvpl1,并且计算l1的运动矢量mvl1。在处理对象块的帧间预测模式是双预测(pred_bi)时,同时进行l0预测和l1预测,计算l0的预测运动矢量候选列表mvplistl0,选择l0的预测运动矢量mvpl0,计算l0的运动矢量mvl0,并计算l1的预测运动矢量候选列表mvplistl1,计算l1的预测运动矢量mvpl1,分别计算l1的运动矢量mvl1。
与编码侧同样地,在解码侧也对l0、l1分别进行运动矢量计算处理,但l0、l1都是共同的处理。因此,在以下说明中,将l0、l1表示为共同的lx。lx表示用于处理对象的编码块的帧间预测的帧间预测模式。在计算l0的运动矢量的处理中,x为0,在计算l1的运动矢量的处理中,x为1。另外,在计算lx的运动矢量的处理中,在不参考与计算对象的lx相同的参考列表,而是参考另一个参考列表的信息的情况下,将另一个参考列表表示为ly。
在使用lx的运动矢量mvlx的情况下(图25的步骤s202:是),计算lx的预测运动矢量的候选,构建lx的预测运动矢量候选列表mvplistlx(图25的步骤s203)。由通常预测运动矢量模式导出部401中的空间预测运动矢量候选导出部421、时间预测运动矢量候选导出部422、历史预测运动矢量候选导出部423、预测运动矢量候选补充部425计算多个预测运动矢量的候选,构建预测运动矢量候选列表mvplistlx。关于图25的步骤s203的详细的处理步骤,使用图20的流程图在后面叙述。
接着,由预测运动矢量候选选择部426从预测运动矢量候选列表mvplistlx中取出与在比特串解码部201中解码而提供的预测运动矢量的索引mvpidxlx对应的预测运动矢量的候选mvplistlx[mvpidxlx],作为所选择出的预测运动矢量mvplx(图25的步骤s204)。
接着,由运动矢量加法部427对由比特串解码部201解码而提供的lx的差分运动矢量mvdlx和lx的预测运动矢量mvplx进行加法运算,设为mvlx=mvplx+mvdlx,计算出lx的运动矢量mvlx(图25的步骤s205)。
<通常预测运动矢量模式导出部(通常amvp):运动矢量的预测方法>
图20是表示在本发明的实施方式涉及的图像编码装置的通常预测运动矢量模式导出部301和图像解码装置的通常预测运动矢量模式导出部401中具有共同的功能的通常预测运动矢量模式导出处理的处理步骤的流程图。
在通常预测运动矢量模式导出部301以及通常预测运动矢量模式导出部401中,具有预测运动矢量候选列表mvplistlx。预测运动矢量候选列表mvplistlx构成列表结构,设置有将表示预测运动矢量候选列表内部的位置的预测运动矢量索引和与索引对应的预测运动矢量候选作为要素进行保存的存储区域。预测运动矢量索引的数字从0开始,在预测运动矢量候选列表mvplistlx的存储区域中保存预测运动矢量候选。在本实施方式中,假设预测运动矢量候选列表mvplistlx能够登记至少两个预测运动矢量候选(帧间预测信息)。此外,将表示登记在预测运动矢量候选列表mvplistlx中的预测运动矢量候选数的变量numcurrmvpcand设定为0。
空间预测运动矢量候选导出部321和421导出来自与左侧相邻的块的预测运动矢量的候选。在该处理中,参考与左侧相邻的块(图11的a0或a1)的帧间预测信息、即表示能否利用预测运动矢量候选的标志以及运动矢量、参考索引等,导出预测运动矢量mvlxa,将导出的mvlxa添加到预测运动矢量候选列表mvplistlx中(图20的步骤s301)。另外,在l0预测时x为0,在l1预测时x为1(以下相同)。接着,空间预测运动矢量候选导出部321和421导出来自与上侧相邻的块的预测运动矢量的候选。在该处理中,参考与上侧相邻的块(图11的b0、b1或b2)的帧间预测信息、即表示能否利用预测运动矢量候选的标志、以及运动矢量、参考索引等,导出预测运动矢量mvlxb,如果分别导出的mvlxa和mvlxb不相等,则将mvlxb添加到预测运动矢量候选列表mvplistlx中(图20的步骤s302)。图20的步骤s301和s302的处理除了参考的相邻块的位置和数量不同这一点以外是共同的,导出表示是否能够利用编码块的预测运动矢量候选的标志availableflaglxn、以及运动矢量mvlxn、参考索引refidxn(n表示a或b,以下相同)。
接着,历史预测运动矢量候选导出部323及423将登记在历史预测运动矢量候选列表hmvpcandlist中的历史预测运动矢量候选添加到预测运动矢量候选列表mvplistlx中(图20的步骤s303)。稍后将使用图29的流程图描述该步骤s303中的登记处理步骤的细节。
接着,时间预测运动矢量候选导出部322及422导出来自与当前的处理对象图像时间不同的图像中的块的预测运动矢量的候选。在该处理中,导出表示是否可以利用不同时间的图片的编码块的预测运动矢量候选的标志可用性标签lxcol、运动矢量mvlxcol、参照索引refidxcol、参照列表listcol,将mvlxcol添加到预测运动矢量候选列表mvplistlx中(图20的步骤s304)。
此外,假设可以省略以序列(sps)、图片(pps)或条带为单位的时间预测运动矢量候选导出部322和422的处理。
接着,预测运动矢量候选补充部325及425在满足预测运动矢量候选列表mvplistlx之前,添加(0,0)等预定值的预测运动矢量候选(图20的s305)。
<通常合并模式导出部(通常合并)>
图18的通常合并模式导出部302包含空间合并候选导出部341、时间合并候选导出部342、平均合并候选导出部344、历史合并候选导出部345、合并候选补充部346、以及合并候选选择部347。
图24的通常合并模式导出部402包含空间合并候选导出部441、时间合并候选导出部442、平均合并候选导出部444、历史合并候选导出部445、合并候选补充部446、以及合并候选选择部447。
图21是说明在本发明的实施方式涉及的图像编码装置的通常合并模式导出部302和图像解码装置的通常合并模式导出部402中具有共同的功能的通常合并模式导出处理的步骤的流程图。
以下,依次说明各过程。此外,在以下的说明中,只要没有特别说明,就对条带类型slice_type为b条带的情况进行说明,但也能适用于p条带的情况。然而,在条带类型slice_type是p条带的情况下,由于仅存在l0预测(pred_l0)作为帧间预测模式,不存在l1预测(pred_l1)和双预测(pred_bi)。因此,能够省略围绕l1的处理。
在通常合并模式导出部302和通常合并模式导出部402中,具有合并候选列表mergecandlist。合并候选列表mergecandlist构成列表结构,设置有表示合并候选列表内部的位置的合并索引、和将与索引对应的合并候选作为要素进行保存的存储区域。合并索引的数字从0开始,在合并候选列表mergecandlist的存储区域中保存合并候选。在以后的处理中,假设登记在合并候选列表mergecandlist中的合并索引i的合并候选由mergecandlist[i]表示。在本实施方式中,假定合并候选列表mergecandlist能够登记至少六个合并候选(帧间预测信息)。并且,对表示合并候选列表mergecandlist中登记的合并候选数的变量numcurrmergecand设定0。
在空间合并候选导出部341和空间合并候选导出部441中,根据保存在图像编码装置的编码信息保存存储器111或图像解码装置的编码信息保存存储器205中的编码信息,按照b1、a1、b0、a0、b2的顺序从来自与处理对象块的左侧和上侧相邻的各个块(图11中的b1、a1、b0、a0、b2)中导出空间合并候选,并将所导出的空间合并候选登记在合并候选列表mergecandlist中(图21中的步骤s401)。这里,定义表示空间合并候选b1、a1、b0、a0、b2或时间合并候选col中的任一个的n。导出表示块n的帧间预测信息能否用作空间合并候选的标志availableflagn、空间合并候选n的l0的参考索引refidxl0n和l1的参考索引refidxl1n、表示是否进行l0预测的l0预测标志predflagl0n、表示是否进行l1预测的l1预测标志predflagl1n、l0的运动矢量mvl0n、l1的运动矢量mvl1n。但是,在本实施方式中,由于不参考成为处理对象的编码块所包含的块的帧间预测信息来导出合并候选,所以不导出使用处理对象的编码块所包含的块的帧间预测信息的空间合并候选。(图11中的b1、a1、b0、a0、b2)
接着,在时间合并候选导出部342以及时间合并候选导出部442中,导出来自不同时间的图片的时间合并候选,将导出的时间合并候选登记在合并候选列表mergecandlist中(图21的步骤s402)。导出表示能否利用时间合并候选的标志availableflagcol、表示是否进行时间合并候选的l0预测的l0预测标志predflagl0col、以及表示是否进行l1预测的l1预测标志predflagl1col、以及l0的运动矢量mvl0col和l1的运动矢量mvl1col。
此外,能够省略以序列(sps)、图片(pps)或条带为单位的时间合并候选导出部342和时间合并候选导出部442的处理。
接着,在历史合并候选导出部345和历史合并候选导出部445中,将登记在历史预测运动矢量候选列表hmvpcandlist中的历史预测运动矢量候选登记在合并候选列表mergecandlist中(图21的步骤s403)。
此外,在登记在合并候选列表mergecandlist中的合并候选数numcurrmergecand小于最大合并候选数maxnummergecand的情况下,登记在合并候选列表mergecandlist中的合并候选数numcurrmergecand以最大合并候选数maxnummergecand为上限来导出历史合并候选,并且将其登记在合并候选列表mergecandlist中。
接着,在平均合并候选导出部344和平均合并候选导出部444中,从合并候选列表mergecandlist中导出平均合并候选,将导出的平均合并候选添加到合并候选列表mergecandlist中(图21的步骤s404)。
此外,在登记在合并候选列表mergecandlist中的合并候选数numcurrmergecand小于最大合并候选数maxnummergecand的情况下,登记在合并候选列表mergecandlist中的合并候选数numcurrmergecand以最大合并候选数maxnummergecand为上限,导出平均合并候选,并且将其登记在合并候选列表mergecandlist中。
这里,平均合并候选是新的合并候选,该新的合并候选具有通过对合并候选列表mergecandlist中登记的第一合并候选和第二合并候选具有的运动矢量按照每个l0预测和l1预测进行平均而获得的运动矢量。
接着,在合并候选补充部346和合并候选补充部446中,在登记在合并候选列表mergecandlist中的合并候选数numcurrmergecand小于最大合并候选数maxnummergecand时,登记在合并候选列表mergecandlist中的合并候选数numcurrmergecand以最大合并候选数maxnummergecand为上限导出添加合并候选,并登记在合并候选列表mergecandlist中(图21的步骤s405)。以最大合并候选数maxnummergecand为上限,在p条带中,添加运动矢量具有(0,0)值的预测模式为l0预测(pred_l0)的合并候选。在b条带中,添加运动矢量具有值(0,0)的预测模式为双预测(pred_bi)的合并候选。添加合并候选时的参考索引与已添加的参考索引不同。
接着,在合并候选选择部347和合并候选选择部447中,从登记在合并候选列表mergecandlist内的合并候选中选择合并候选。在编码侧的合并候选选择部347通过计算码量和失真量来选择合并候选,并经由帧间预测模式判定部305将表示所选择出的合并候选的合并索引、合并候选的帧间预测信息提供给运动补偿预测部306。另一方面,在解码侧的合并候选选择部447中,基于解码后的合并索引选择合并候选,并将选择出的合并候选提供给运动补偿预测部406。
<更新历史预测运动矢量候选列表>
接着,详细说明编码侧的编码信息保存存储器111及解码侧的编码信息保存存储器205所具备的历史预测运动矢量候选列表hmvpcandlist的初始化方法及更新方法。图26是用于说明历史预测运动矢量候选列表初始化/更新处理步骤的流程图。
在本实施方式中,假定历史预测运动矢量候选列表hmvpcandlist的更新在编码信息保存存储器111和编码信息保存存储器205中执行。也可以在帧间预测部102以及帧间预测部203中设置历史预测运动矢量候选列表更新部,实施历史预测运动矢量候选列表hmvpcandlist的更新。
在条带的开头进行历史预测运动矢量候选列表hmvpcandlist的初始设定,在编码侧,在由预测方法决定部105选择了通常预测运动矢量模式或通常合并模式的情况下,更新历史预测运动矢量候选列表hmvpcandlist,在解码侧,在由比特串解码部201解码后的预测信息为通常预测运动矢量模式或通常合并模式的情况下,更新历史预测运动矢量候选列表hmvpcandlist。
将在通常预测运动矢量模式或通常合并模式下进行帧间预测时使用的帧间预测信息登记在历史预测运动矢量候选列表hmvpcandlist中作为帧间预测信息候选hmvpcand。帧间预测信息候选hmvpcand包括l0的参考索引refidxl0和l1的参考索引refidxl1、表示是否进行l0预测的l0预测标志predflagl0和表示是否进行l1预测的l1预测标志predflagl1、l0的运动矢量mvl0和l1的运动矢量mvl1。
在编码侧的编码信息保存存储器111和解码侧的编码信息保存存储器205中具有的历史预测运动矢量候选列表hmvpcandlist中所登记的要素(即,帧间预测信息)中,存在与帧间预测信息候选hmvpcand相同的值的帧间预测信息的情况下,从历史预测运动矢量候选列表hmvpcandlist中删除该要素。另一方面,在不存在与帧间预测信息候选hmvpcand相同的值的帧间预测信息的情况下,删除历史预测运动矢量候选列表hmvpcandlist的开头的要素,并且将帧间预测信息候选hmvpcand添加到历史预测运动矢量候选列表hmvpcandlist的最后。
将本发明的编码侧的编码信息保存存储器111及解码侧的编码信息保存存储器205所具备的历史预测运动矢量候选列表hmvpcandlist的要素的数量设为6。
首先,以条带为单位初始化历史预测运动矢量候选列表hmvpcandlist(图26的步骤s2101)。在条带的开头,将历史预测运动矢量候选列表hmvpcandlist的所有要素设为空,将登记在历史预测运动矢量候选列表hmvpcandlist中的历史预测运动矢量候选数(当前的候选数)numhmvpcand的值设定为0。
此外,虽然假定了以条带单位(条带的最初的编码块)实施历史预测运动矢量候选列表hmvpcandlist的初始化,但也可以以图片为单位、以矩形(tile)为单位、以树块行为单位实施。
接着,对条带内的每个编码块重复进行以下的历史预测运动矢量候选列表hmvpcandlist的更新处理(图26的步骤s2102~s2111)。
首先,以编码块为单位进行初始设定。对表示是否存在相同候选的标志identicalcandexist设定false(假)的值,对表示删除对象的候选的删除对象索引removeidx设定“0”(图26的步骤s2103)。
判定是否存在登记对象的帧间预测信息候选hmvpcand(图26的步骤s2104)。在由编码侧的预测方法决定部105判定为通常预测运动矢量模式或通常合并模式的情况下,或者在由解码侧的比特串解码部201解码为通常预测运动矢量模式或通常合并模式的情况下,将该帧间预测信息设为登记对象的帧间预测信息候选hmvpcand。在由编码侧的预测方法决定部105判定为帧内预测模式、子块预测运动矢量模式或子块合并模式的情况下,或者由解码侧的比特串解码部201解码为帧内预测模式、子块预测运动矢量模式或子块合并模式的情况下,不进行历史预测运动矢量候选列表hmvpcandlist的更新处理,不存在登记对象的帧间预测信息候选hmvpcand。在不存在登记对象的帧间预测信息候选hmvpcand的情况下,跳过步骤s2105~s2106(图26的步骤s2104:否)。在存在登记对象的帧间预测信息候选hmvpcand的情况下,执行步骤s2105之后的处理(图26的步骤s2104:是)。
接着,判定在历史预测运动矢量候选列表hmvpcandlist的每个要素中是否存在与登记对象的帧间预测信息候选hmvpcand相同的值的要素(帧间预测信息)、即是否存在相同的要素(图26的步骤s2105)。图27是该相同要素确认处理步骤的流程图。在历史预测运动矢量候选数量numhmvpcand的值为0的情况下(图27的步骤s2121:否),历史预测运动矢量候选列表hmvpcandlist为空,由于不存在相同候选,因此跳过图27的步骤s2122~s2125,结束该相同要素确认处理步骤。在历史预测运动矢量候选数量numhmvpcand的值大于0的情况下(图27的步骤s2121:是),历史预测运动矢量索引hmvpidx从0到numhmvpcand-1,重复步骤s2123的处理(图27的步骤s2122~s2125)。首先,比较历史预测运动矢量候选列表的从0开始数的第hmvpidx个要素hmvpcandlist[hmvpidx]是否与帧间预测信息候选hmvpcand相同(图27的步骤s2123)。在相同的情况下(图27的步骤s2123:是),对表示是否存在相同候选的标志identicalcandexist设定为true(真)的值,对表示删除对象的要素的位置的删除对象索引removeidx设定当前的历史预测运动矢量索引hmvpidx的值,结束该相同要素确认处理。在不相同的情况下(图27的步骤s2123:否),使hmvpidx增加1,如果历史预测运动矢量索引hmvpidx为numhmvpcand-1以下,则进行步骤s2123以后的处理。
再次返回图26的流程图,进行历史预测运动矢量候选列表hmvpcandlist的要素的移位及添加处理(图26的步骤s2106)。图28是图26的步骤s2106的历史预测运动矢量候选列表hmvpcandlist的要素移位/添加处理步骤的流程图。首先,判定在去除保存在历史预测运动矢量候选列表hmvpcandlist中的要素之后是添加新的要素,还是在不去除要素的情况下添加新的要素。具体地,比较表示是否存在相同候选的标志identicalcandexist是否为true(真)或numhmvvpcand是否为6(图28的步骤s2141)。在满足表示是否存在相同候选的标志identicalcandexist为true(真)或当前的候选数numhmvpcand为6的任一个条件的情况下(图28的步骤s2141:是),去除保存在历史预测运动矢量候选列表hmvpcandlist中的要素之后,添加新的要素。将索引i的初始值设定为removeidx+1的值。从该初始值到numhmvpcand,重复步骤s2143的要素移位处理。(图28的步骤s2142~s2144)。通过将hmvpcandlist[i]的要素复制到hmvpcandlist[i-1],将要素向前方移位(图28的步骤s2143),将i增加1(图28的步骤s2142~s2144)。接下来,将帧间预测信息候选hmvpcand添加到与历史预测运动矢量候选列表的最后相当的从0开始数的第(numhmvpcand-1)个hmvpcandlist[numhmvpcand-1](图28的步骤s2145),结束该历史预测运动矢量候选列表hmvpcandlist的要素移位/添加处理。另一方面,在表示是否存在相同候选的标志identicalcandexist为true(真)以及numhmvpcand为6的任一个条件均不满足的情况下(图28的步骤s2141:否),不除去保存在历史预测运动矢量候选列表hmvpcandlist中的要素,而将帧间预测信息候选hmvpcand添加到历史预测运动矢量候选列表的最后(图28的步骤s2146)。这里,历史预测运动矢量候选列表的最后是从0开始数的第numhmvpcand个hmvpcandlist[numhmvpcand]。另外,使numhmvpcand增加1,结束该历史预测运动矢量候选列表hmvpcandlist的要素的移位及添加处理。
图31是用于说明历史预测运动矢量候选列表的更新处理的一例的图。在已登记六个要素(帧间预测信息)的历史预测运动矢量候选列表hmvpcandlist中添加新的要素时,从历史预测运动矢量候选列表hmvpcandlist的前方的要素开始依次与新的帧间预测信息进行比较(图31a),如果新的要素与历史预测运动矢量候选列表hmvpcandlist的从开头起第三个的要素hmvp2是相同的值,则从历史预测运动矢量候选列表hmvpcandlist中删除要素hmvp2、并将后方的要素hmvp3~hmvp5向前方一个个地移位(复制),将新的要素添加到历史预测运动矢量候选列表hmvpcandlist的最后(图31b),完成历史预测运动矢量候选列表hmvpcandlist的更新(图31c)。
<历史预测运动矢量候选导出处理>
接着,详细说明作为图20的步骤s304的处理步骤的从历史预测运动矢量候选列表hmvpcandlist导出历史预测运动矢量候选的方法,图20的步骤s304的处理步骤是在编码侧的通常预测运动矢量模式导出部301的历史预测运动矢量候选导出部323、解码侧的通常预测运动矢量模式导出部401的历史预测运动矢量候选导出部423中共同的处理。图29是说明历史预测运动矢量候选导出处理步骤的流程图。
在当前的预测运动矢量候选数numcurrmvpcand为预测运动矢量候选列表mvplistlx的最大要素数(这里为2)以上或者历史预测运动矢量候选数numhmvpcand的值为0的情况下(图29的步骤s2201:否),省略图29的从步骤s2202至s2209的处理,结束历史预测运动矢量候选导出处理步骤。在当前的预测运动矢量候选数numcurrmvpcand小于预测运动矢量候选列表mvplistlx的最大要素数2且历史预测运动矢量候选数numhmvpcand的值大于0时(图29的步骤s2201:是),执行图29的步骤s2202至s2209的处理。
接下来,重复图29的步骤s2203至s2208的处理,直到索引i从1到4和历史预测运动矢量候选数numcheckedhmvpcand的任一个较小的值为止(图29的步骤s2202至s2209)。在当前的预测运动矢量候选数numcurrmvpcand是预测运动矢量候选列表mvplistlx的最大要素数2以上的情况下(图29的步骤s2203:否),省略图29的步骤s2204至s2209的处理,结束该历史预测运动矢量候选导出处理步骤。在当前的预测运动矢量候选数numcurrmvpcand小于预测运动矢量候选列表mvplistlx的最大要素数2(图29的步骤s2203:是)的情况下,执行图29的步骤s2204之后的处理。
接着,对y为0和1(l0和l1)分别进行从步骤s2205到s2207处理(图29的步骤s2204~s2208)。在当前的预测运动矢量候选数numcurrmvpcand是预测运动矢量候选列表mvplistlx的最大要素数2以上的情况下(图29的步骤s2205:否),省略图29的步骤s2206至s2209的处理,结束该历史预测运动矢量候选导出处理步骤。在当前的预测运动矢量候选数numcurrmvpcand小于预测运动矢量候选列表mvplistlx的最大要素数2的情况下(图29中的步骤s2205:是),执行图29中的步骤s2206之后的处理。
接着,在历史预测运动矢量候选列表hmvpcandlist中,在是与编码/解码对象运动矢量的参考索引refidxlx相同的参考索引的要素、且是与预测运动矢量列表mvplistlx的任何要素都不同的要素的情况下(图29的步骤s2206的是),对预测运动矢量候选列表的从0开始数第numcurrmvpcand个的要素mvplistlx[numcurrmvpcand]添加历史预测运动矢量候选hmvpcandlist[numhmvpcand-i]的ly的运动矢量(图29的步骤s2207),并将当前的预测运动矢量候选数numcurrmvpcand增加1。当在历史预测运动矢量候选列表hmvpcandlist中没有与编码/解码对象运动矢量的参考索引refidxlx相同的参考索引的要素、且没有与预测运动矢量列表mvplistlx的任何要素都不同的要素的情况下(图29的步骤s2206的否),跳过步骤s2207的添加处理。
在l0和l1中两者都进行以上的图29的步骤s2205到s2207的处理(图29的步骤s2204~s2208)。将索引i增加1,在索引i小于等于4和历史预测运动矢量候选数numhmvpcand的任一个较小的值的情况下,再次进行步骤s2203以后的处理(图29的步骤s2202~s2209)。
<历史合并候选导出处理>
接着,详细说明作为图21的步骤s404的处理步骤的从历史合并候选列表hmvpcandlist导出历史合并候选的方法,所述图21的步骤s404的处理步骤是在编码侧的通常合并模式导出部302的历史合并候选导出部345、解码侧的通常合并模式导出部402的历史合并候选导出部445中共同的处理。图30是说明历史合并候选导出处理步骤的流程图。
首先,进行初始化处理(图30的步骤s2301)。对ispruned[i]的从0到第(numcurrmergecand-1)个要素的每个要素设定false(假)的值,并对变量numorigmergecand设定登记在当前的合并候选列表中的要素数numcurrmergecand。
接着,将索引hmvpidx的初始值设定为1,从该初始值到numhmvpcand重复进行从图30的步骤s2303到步骤s2310的添加处理(图30的步骤s2302~s2311)。如果登记在当前的合并候选列表中的要素数numcurrmergecand不是(最大合并候选数maxnummergecand-1)以下,则由于合并候选被添加到合并候选列表中的所有要素,因此结束该历史合并候选导出处理(图30的步骤s2303:否)。如果登记在当前的合并候选列表中的要素数numcurrmergecand是(最大合并候选数maxnummergecand-1)以下,则执行步骤s2304以后的处理。对samemotion设定false(假)的值(图30的步骤s2304)。接着,将索引i的初始值设定为0,从该初始值到numorigmergecand-1进行图30的步骤s2306、s2307的处理(图30的s2305~s2308)。比较历史运动矢量预测候选列表的从0开始数的第(numhmvpcand–hmvpidx)个的要素hmvpcandlist[numhmvpcand-hmvpidx]是否与合并候选列表的从0开始数的第i个的要素mergecandlist[i]是相同值(图30的步骤s2306)。
合并候选的相同值是指当合并候选所具有的所有构成要素(帧间预测模式、参考索引和运动矢量)的值相同时合并候选为相同值。在合并候选为相同值且ispruned[i]为false(假)的情况下(图30的步骤s2306:是),samemotion以及ispruned[i]都设定为true(真)(图30的步骤s2307)。在不是相同值的情况下(图30的步骤s2306:否),跳过步骤s2307的处理。在图30的步骤s2305至s2308的重复处理完成之后,比较samemotion是否为false(假)(图30的步骤s2309),在samemotion为false(假)的情况下(图30的步骤s2309:是),即由于历史预测运动矢量候选列表的从0开始数第(numhmvpcand-hmvpidx)个要素hmvpcandlist[numhvpcand-hmvpidx]不存在于mergecandlist,因此在合并候选列表的第numcurrmergecand个的mergecandlist[numcurrmergecand]中添加从历史预测运动矢量候选列表的从0开始数的第(numhmvpcand–hmvpidx)个的要素hmvpcandlist[numhmvpcand-hmvpidx],并使numcurrmergecand增加1(图30的步骤s2310)。使索引hmvpidx增加1(图30的步骤s2302),进行图30的步骤s2302~s2311的重复处理。
在完成了对历史预测运动矢量候选列表中的所有要素的确认、或者对合并候选列表的所有要素添加合并候选后,完成该历史合并候选的导出处理。
<运动补偿预测处理>
运动补偿预测部306获取在编码中为当前预测处理的对象的块的位置以及尺寸。另外,运动补偿预测部306从帧间预测模式判定部305获取帧间预测信息。根据所获取的帧间预测信息导出参考索引和运动矢量,在获取使解码图像存储器104内的参考索引所确定的参考图像从与预测块的图像信号相同的位置移动了运动矢量的量的位置的图像信号后,生成预测信号。
在帧间预测中的帧间预测模式是如l0预测或l1预测那样的、来自单个参考图片的预测的情况下,将从一个参考图片获取的预测信号设为运动补偿预测信号,在帧间预测模式是如bi预测那样的、预测模式是来自两个参考图片的预测的情况下,将对从两个参考图片获取的预测信号进行加权平均而得的信号设为运动补偿预测信号,并将运动补偿预测信号提供给预测方法决定部105。这里,将双预测的加权平均的比率设为1∶1,但也可以使用其他的比率进行加权平均。例如,也可以设为成为预测对象的图片与参考图片的图片间隔越近则加权的比率越大。另外,也可以使用图片间隔的组合与加权比率的对应表来进行加权比率的计算。
运动补偿预测部406具有与编码侧的运动补偿预测部306相同的功能。运动补偿预测部406通过开关408从通常预测运动矢量模式导出部401、通常合并模式导出部402、子块预测运动矢量模式导出部403和子块合并模式导出部404获取帧间预测信息。运动补偿预测部406将所获得的运动补偿预测信号提供给解码图像信号重叠部207。
<关于帧间预测模式>
将进行根据单个的参考图片的预测的处理定义为单预测。在单预测的情况下,进行l0预测或l1预测这样的、使用登记在参考列表l0或l1中的两个参考图片的任一个的预测。
图32示出了单预测中的l0的参考图片(refl0pic)处于处理对象图片(curpic)之前的时刻的情况。图33示出了单预测中的l0预测的参考图片处于处理对象图片之后的时刻的情况。同样地,也能够通过将图32和图33的l0预测的参考图片置换为l1预测的参考图片(refl1pic)来进行单预测。
将进行根据两个参考图片的预测的处理定义为双预测,在双预测的情况下,利用l0预测和l1预测这两者来表述为bi预测。图34示出了双预测中的l0预测的参考图片处于处理对象图片之前的时刻、l1预测的参考图片处于处理对象图片之后的时刻的情况。图35示出了双预测中的l0预测的参考图片和l1预测的参考图片处于处理对象图片之前的时刻的情况。图36示出了双预测中的l0预测的参考图片和l1预测的参考图片处于处理对象图片之后的时刻的情况。
如此,l0/l1的预测类别和时间的关系能够在l0不限定于过去方向、l1不限定于未来方向的情况下使用。另外,在双预测的情况下,可以使用相同的参考图片执行l0预测和l1预测中的每一个。此外,基于表示是否使用l0预测和是否使用l1预测的信息(例如,标志)来判断是以单预测来进行运动补偿预测还是以双预测进行运动补偿预测。
<关于参考索引>
在本发明的实施方式中,为了提高运动补偿预测的精度,能够在运动补偿预测中从多个参考图片中选择最佳的参考图片。因此,将在运动补偿预测中利用的参考图片用作参考索引,并且将参考索引与差分运动矢量一起编码到比特流中。
<基于通常预测运动矢量模式的运动补偿处理>
如在图16的编码侧的帧间预测部102中也示出,当在帧间预测模式判定部305中选择了基于通常预测运动矢量模式导出部301的帧间预测信息时,运动补偿预测部306从帧间预测模式判定部305获取该帧间预测信息,导出成为当前处理对象的块的帧间预测模式、参考索引和运动矢量,生成运动补偿预测信号。所生成的运动补偿预测信号被提供给预测方法决定部105。
同样地,如在图22的解码侧的帧间预测部203中也示出那样,当在解码过程中开关408与通常预测运动矢量模式导出部401连接时,运动补偿预测部406获取基于通常预测运动矢量模式导出部401的帧间预测信息,导出成为当前处理对象的块的帧间预测模式、参考索引以及运动矢量,生成运动补偿预测信号。所生成的运动补偿预测信号被提供给解码图像信号重叠部207。
<基于通常合并模式的运动补偿处理>
如在图16的编码侧中的帧间预测部102中也示出的那样,当在帧间预测模式判定部305中选择了基于通常合并模式导出部302的帧间预测信息时,运动补偿预测部306从帧间预测模式判定部305获取该帧间预测信息,导出成为当前处理对象的块的帧间预测模式、参考索引和运动矢量,生成运动补偿预测信号。所生成的运动补偿预测信号被提供给预测方法决定部105。
同样地,如在图22的解码侧的帧间预测部203中也示出的那样,当在解码过程中开关408与通常合并模式导出部402连接时,运动补偿预测部406获取基于通常合并模式导出部402的帧间预测信息,导出成为当前处理对象的块的帧间预测模式、参考索引、运动矢量,生成运动补偿预测信号。所生成的运动补偿预测信号被提供给解码图像信号重叠部207。
<基于子块预测运动矢量模式的运动补偿处理>
如在图16的编码侧的帧间预测部102中也示出的那样,当在帧间预测模式判定部305中选择了基于子块预测运动矢量模式导出部303的帧间预测信息时,运动补偿预测部306从帧间预测模式判定部305获取该帧间预测信息,导出成为当前处理对象的块的帧间预测模式、参考索引和运动矢量,生成运动补偿预测信号。所生成的运动补偿预测信号被提供给预测方法决定部105。
同样,如在图22的解码侧的帧间预测部203中也示出的那样,当在解码过程中开关408与子块预测运动矢量模式导出部403连接时,运动补偿预测部406获取基于子块预测运动矢量模式导出部403的帧间预测信息,导出成为当前处理对象的块的帧间预测模式、参考索引以及运动矢量,生成运动补偿预测信号。所生成的运动补偿预测信号被提供给解码图像信号重叠部207。
<基于子块合并模式的运动补偿处理>
如在图16的编码侧的帧间预测部102中也示出的那样,当在帧间预测模式判定部305中选择了基于子块合并模式导出部304的帧间预测信息时,运动补偿预测部306从帧间预测模式判定部305获取该帧间预测信息,导出成为当前处理对象的块的帧间预测模式、参考索引以及运动矢量,生成运动补偿预测信号。所生成的运动补偿预测信号被提供给预测方法决定部105。
同样地,如在图22的解码侧的帧间预测部203中也示出的那样,当在解码过程中开关408与子块合并模式导出部404连接时,运动补偿预测部406获取基于子块合并模式导出部404的帧间预测信息,导出成为当前处理对象的块的帧间预测模式、参考索引以及运动矢量,生成运动补偿预测信号。所生成的运动补偿预测信号被提供给解码图像信号重叠部207。
<基于仿射变换预测的运动补偿处理>
在通常预测运动矢量模式和通常合并模式中,能够基于以下标志使用基于仿射模型的运动补偿。以下标志基于在编码处理中由帧间预测模式判定部305决定的帧间预测条件而被反映在以下标志中,并且被编码到比特流中。在解码处理中,基于比特流中的以下标志来确定是否执行基于仿射模型的运动补偿。
sps_affine_enabled_flag表示在帧间预测中能否使用基于仿射模型的运动补偿。如果sps_affine_enabled_flag为0,则以序列为单位进行抑制,使得不是基于仿射模型的运动补偿。另外,inter_affine_flag和cu_affine_type_flag不在编码视频序列的cu(编码块)句法中传送。如果sps_affine_enabled_flag是1,则能够在编码视频序列中使用基于仿射模型的运动补偿。
sps_affine_type_flag表示在帧间预测中能否使用基于六参数仿射模型的运动补偿。如果sps_affine_type_flag为0,则被抑制为不是基于六参数仿射模型的运动补偿。另外,cu_affine_type_flag不在编码视频序列的cu句法中传送。如果sps_affine_type_flag是1,则能够在编码视频序列中使用基于六参数仿射模型的运动补偿。在不存在sps_affine_type_flag的情况下,设为是0。
在对p条带或b条带进行解码的情况下,在成为当前处理对象的cu中,如果inter_affine_flag是1,则使用基于仿射模型的运动补偿来生成成为当前处理对象的cu的运动补偿预测信号。如果inter_affine_flag是0,则仿射模型不用于成为当前处理对象的cu。在不存在inter_affine_flag的情况下,设为是0。
在对p条带或b条带进行解码的情况下,在成为当前处理对象的cu中,如果cu_affine_type_flag是1,则使用基于六参数仿射模型的运动补偿来生成成为当前处理对象的cu的运动补偿预测信号。如果cu_affine_type_flag为0,则使用基于四参数仿射模型的运动补偿来生成成为当前处理对象的cu的运动补偿预测信号。
在基于仿射模型的运动补偿中,由于以子块为单位导出参考索引或运动矢量,因此以子块为单位使用成为处理对象的参考索引或运动矢量来生成运动补偿预测信号。
四参数仿射模型是以下模式:根据两个控制点的各自的运动矢量的水平分量及垂直分量的四个参数导出子块的运动矢量,以子块为单位进行运动补偿。
在本实施方式中,在通常预测运动矢量模式中的预测运动矢量候选列表的导出中,按照空间预测运动矢量候选、历史预测运动矢量候选、时间预测运动矢量候选的顺序进行候选的添加。通过采用这样的结构,能够得到以下的效果。
1.在历史预测运动矢量候选导出处理中,进行已被添加到预测运动矢量候选列表中的要素和历史预测运动矢量候选列表中的要素的相同要素确认步骤,仅在不相同的情况下将历史预测运动矢量候选列表中的要素添加到预测运动矢量候选列表中,因此保证预测运动矢量候选列表分别具有不同的要素。此外,使用空间相关性的空间预测运动矢量候选和使用处理历史的历史预测运动矢量候选分别具有不同的特性。因此,能够提供特性不同的多个预测运动矢量候选的可能性变高,能够提高编码效率。
2.历史预测运动矢量候选导出处理进行与空间预测运动矢量候选的相同要素确认,而不进行与时间预测运动矢量候选的相同要素确认。因此,由于能够限制进行相同要素确认的次数,所以能够减轻与预测运动矢量候选列表导出相关的处理负荷。
3.时间预测运动矢量候选导出处理不进行与空间预测运动矢量候选以及历史预测运动矢量候选的相同要素确认。因此,可以独立地导出历史预测运动矢量候选和时间预测运动矢量候选。能够实现基于并行处理的吞吐量的改善。
(第二实施方式)
在第二实施方式中,在通常预测运动矢量模式的预测运动矢量候选列表生成中,不导出时间预测运动矢量候选,而是按照空间预测运动矢量候选、历史预测运动矢量候选的顺序进行候选的添加。
图38是第二实施方式中的图16的通常预测运动矢量模式导出部301的详细结构的框图。
图39是第二实施方式中的图22的通常预测运动矢量模式导出部401的详细结构的框图。
在第二实施方式中,由于不导出时间预测运动矢量候选而生成预测运动矢量候选列表,所以能够减轻处理负荷。此外,在通常预测运动矢量模式中,由于以历史预测运动矢量候选充分填充预测运动矢量候选列表,所以编码效率也不降低。
(第三实施方式)
在第三实施方式中,在通常预测运动矢量模式的预测运动矢量候选列表生成中,按照空间预测运动矢量候选、时间预测运动矢量候选和历史预测运动矢量候选的顺序进行候选的添加。这里,在历史预测运动矢量候选导出处理中,不进行与空间预测运动矢量候选以及时间预测运动矢量候选的相同要素确认。
图40是第三实施方式中的图16的通常预测运动矢量模式导出部301的详细结构的框图。
图41是第三实施方式中的图22的通常预测运动矢量模式导出部401的详细结构的框图。
在第三实施方式中,与第一实施方式同样,能够限制进行相同要素确认的次数,因此能够减轻与预测运动矢量候选列表导出相关的处理负荷。此外,通过以比历史预测运动矢量候选高的顺序将时间预测运动矢量候选添加到预测运动矢量候选列表中,可以在不对不同类型(空间预测运动矢量候选、时间预测运动矢量候选、历史预测运动矢量候选)的候选之间进行预测运动矢量的相同要素检查而抑制处理负荷的情况下,将具有高预测效率的时间预测运动矢量候选优先于历史预测运动矢量候选,来生成具有高编码效率的预测运动矢量候选列表。
以上所述的所有实施方式也可以组合多个。
在以上所述的所有实施方式中,图像编码装置输出的比特流具有特定的数据格式,以便能够根据在实施方式中使用的编码方法进行解码。另外,与该图像编码装置对应的图像解码装置能够对该特定的数据格式的比特流进行解码。
在使用有线或无线网络用于在图像编码装置和图像解码装置之间交换比特流的情况下,可以将比特流转换为适合于通信线路的传送形式的数据格式来传送。在该情况下,设置了:发送装置,将从图像编码装置输出的比特流转换为适合于通信线路的传送形式的数据格式的编码数据并将该编码数据发送到网络;以及接收装置,从网络接收编码数据并将该编码数据恢复为比特流而提供给图像解码装置。发送装置包括:存储器,对从图像编码装置输出的比特流进行缓冲;分组处理部,对比特流进行分组;以及发送部,经由网络发送已被分组的编码数据。接收装置包括:接收部,经由网络接收已被分组的编码数据;存储器,对已接收到的编码数据进行缓冲;以及分组处理部,对编码数据进行分组处理以生成比特流,并将该比特流提供给图像解码装置。
另外,也可以通过在构成中添加显示由图像解码装置解码的图像的显示部来作为显示装置。在这种情况下,显示部读出由解码图像信号重叠部207生成并保存在解码图像存储器208中的解码图像信号,并且显示在屏幕上。
另外,也可以将拍摄部添加到结构中,将拍摄到的图像输入到图像编码装置中,从而作为拍摄装置。在这种情况下,拍摄部将拍摄到的图像信号输入到块分割部101。
图37示出本实施方式的编码解码装置的硬件结构的一例。编码解码装置包括本发明实施方式涉及的图像编码装置和图像解码装置的结构。该编码解码装置9000具有cpu9001、编解码器ic9002、i/o接口9003、存储器9004、光盘驱动器9005、网络接口9006、视频接口9009,各部分通过总线9010连接。
图像编码部9007和图像解码部9008典型地作为编解码器ic9002来安装。本发明实施方式涉及的图像编码装置的图像编码处理由图像编码部9007执行,本发明实施方式涉及的图像解码装置中的图像解码处理由图像解码部9008执行。i/o接口9003例如通过usb接口实现,与外部的键盘9104、鼠标9105等连接。cpu9001基于通过i/o接口9003输入的用户操作,控制编码解码装置9000,以执行用户期望的动作。作为用户通过键盘9104、鼠标9105等进行的操作,有执行编码和解码中的哪一个的功能的选择、编码质量的设定、比特流的输入输出目的地、图像的输入输出目的地等。
当用户希望再现记录在盘记录介质9100中的图像的操作时,光盘驱动器9005从插入的盘记录介质9100读出比特流,并且经由总线9010将读出的比特流发送到编解码器ic9002的图像解码部9008。图像解码部9008对输入的比特流执行本发明的实施方式涉及的图像解码装置中的图像解码处理,并将解码图像经由视频接口9009发送到外部的监视器9103。另外,编码解码装置9000具有网络接口9006,并能够经由网络9101与外部的分发服务器9106、便携终端9107连接。当用户希望再现记录在分发服务器9106或移动终端9107上的图像而不是记录在盘记录介质9100上的图像时,网络接口9006从网络9101获取比特流,而不是从输入的盘记录介质9100读出比特流。另外,在用户希望再现记录在存储器9004中的图像的情况下,对记录在存储器9004中的比特流,执行本发明的实施方式涉及的图像解码装置中的图像解码处理。
在用户希望将由外部的相机9102拍摄的图像进行编码并记录在存储器9004中的操作的情况下,视频接口9009从相机9102输入图像,经由总线9010发送到编解码器ic9002的图像编码部9007。图像编码部9007对经由视频接口9009输入的图像执行本发明的实施方式涉及的图像编码装置中的图像编码处理,并生成比特流。然后,通过总线9010将比特流发送到存储器9004。当用户希望将比特流记录在盘记录介质9100上而不是存储器9004中时,光盘驱动器9005针对插入的盘记录介质9100进行比特流的写入。
也可以实现具有图像编码装置而不具有图像解码装置的硬件结构、或具有图像解码装置而不具有图像编码装置的硬件结构。这样的硬件结构例如通过将编解码器ic9002分别置换为图像编码部9007或图像解码部9008来实现。
与上述编码和解码相关的处理当然可以实现为使用硬件的传送、存储和接收装置,并且可以通过存储在rom(只读存储器)、闪存等中的固件或计算机等的软件来实现。可以将该固件程序、软件程序记录在计算机等可读取的记录介质中来提供,也可以通过有线或无线网络从服务器提供,还可以作为地面波或卫星数字广播的数据广播来提供。
以上,基于实施方式对本发明进行了说明。实施方式为例示,这些各构成要素和各处理步骤的组合可以有各种变形例,并且这样的变形例也在本发明的范围内,这是本领域技术人员能够理解的。
符号说明
100图像编码装置、101块分割部、102帧间预测部、103帧内预测部、104解码图像存储器、105预测方法决定部、106残差生成部、107正交变换/量化部、108比特串编码部、109逆量化/逆正交变换部、110解码图像信号重叠部、111编码信息保存存储器、200图像解码装置、201比特串解码部、202块分割部、203帧间预测部、204帧内预测部、205编码信息保存存储器、206逆量化/逆正交变换部、207解码图像信号重叠部、208解码图像存储器。