首页> 中国专利> 动图像编码装置、动图像编码方法以及动图像编码程序、动图像解码装置、动图像解码方法以及动图像解码程序

动图像编码装置、动图像编码方法以及动图像编码程序、动图像解码装置、动图像解码方法以及动图像解码程序

摘要

根据本发明,能够提供以低负载实现高效率的图像编码/解码处理的动图像编码以及解码。本发明是以编码块为单位进行仿射变换的动图像编码装置,其特征在于,包括:仿射继承合并候选导出部,导出仿射继承合并候选,所述仿射继承合并候选继承在空间上与编码对象块接近的块所具有的仿射模型;仿射构建合并候选导出部,根据在空间上或时间上与编码对象块接近的块所具有的多个运动信息导出仿射构建合并候选;以及仿射固定合并候选导出部,导出仿射控制点的运动信息被固定的仿射固定合并候选,所述仿射固定合并候选将各仿射控制点的运动矢量固定为(0,0)。

著录项

  • 公开/公告号CN112352433A

    专利类型发明专利

  • 公开/公告日2021-02-09

    原文格式PDF

  • 申请/专利权人 JVC建伍株式会社;

    申请/专利号CN201980044804.2

  • 申请日2019-12-20

  • 分类号H04N19/52(20060101);H04N19/70(20060101);

  • 代理机构11258 北京东方亿思知识产权代理有限责任公司;

  • 代理人宋开元

  • 地址 日本神奈川县

  • 入库时间 2023-06-19 09:51:02

说明书

技术领域

本发明涉及将图像分割为块并进行预测的图像编码和解码技术。

背景技术

在图像编码和解码中,将作为处理对象的图像分割为预定数量的像素集合、即块,以块为单位进行处理。通过分割成适当的块,适当地设定画面内预测(帧内预测)、画面间预测(帧间预测),编码效率得以提高。

在动图像的编码/解码中,通过根据已编码/解码的图片进行预测的帧间预测来提高编码效率。专利文献1记载有在帧间预测时应用仿射变换的技术。在动图像中,伴有物体放大、缩小、旋转这样的变形的情况并不少见,通过应用专利文献1的技术,能够进行高效率的编码。

现有技术文献

专利文献

专利文献1:日本特开平9-172644号公报。

发明内容

但是,由于专利文献1的技术伴有图像的变换,因此存在处理负载庞大的问题。本发明鉴于上述课题,提供一种低负载且高效率的编码技术。

后面描述的实施方式例如能够与以下方面相关。

第一方面是一种动图像编码装置,以编码块为单位进行仿射变换,所述动图像编码装置包括:仿射继承合并候选导出部,导出仿射继承合并候选,所述仿射继承合并候选继承在空间上与编码对象块接近的块所具有的仿射模型;仿射构建合并候选导出部,根据在空间上或时间上与编码对象块接近的块所具有的多个运动信息导出仿射构建合并候选;以及仿射固定合并候选导出部,导出仿射控制点的运动信息被固定的仿射固定合并候选,仿射固定合并候选将各仿射控制点的运动矢量固定为(0,0)。

第二方面是一种动图像编码方法,以编码块为单位进行仿射变换,所述动图像编码方法包括:仿射继承合并候选导出步骤,导出仿射继承合并候选,所述仿射继承合并候选继承在空间上与编码对象块接近的块所具有的仿射模型;仿射构建合并候选导出步骤,根据在空间上或时间上与编码对象块接近的块所具有的多个运动信息导出仿射构建合并候选;以及仿射固定合并候选导出步骤,导出仿射控制点的运动信息被固定的仿射固定合并候选,仿射固定合并候选将各仿射控制点的运动矢量固定为(0,0)。

第三方面是一种动图像编码程序,以编码块为单位进行仿射变换,并保存在计算机可读取的非临时性记录介质中,所述动图像编码程序使计算机执行以下步骤:仿射继承合并候选导出步骤,导出仿射继承合并候选,所述仿射继承合并候选继承在空间上与编码对象块接近的块所具有的仿射模型;仿射构建合并候选导出步骤,根据在空间上或时间上与编码对象块接近的块所具有的多个运动信息导出仿射构建合并候选;以及仿射固定合并候选导出步骤,导出仿射控制点的运动信息被固定的仿射固定合并候选,所述仿射固定合并候选将各仿射控制点的运动矢量固定为(0,0)。

第四方面涉及一种动图像解码装置,以解码块为单位进行仿射变换,所述动图像解码装置包括:仿射继承合并候选导出部,导出仿射继承合并候选,所述仿射继承合并候选继承在空间上与解码对象块接近的块所具有的仿射模型;仿射构建合并候选导出部,根据在空间上或时间上与解码对象块接近的块所具有的多个运动信息导出仿射构建合并候选;以及仿射固定合并候选导出部,导出仿射控制点的运动信息被固定的仿射固定合并候选,仿射固定合并候选将各仿射控制点的运动矢量固定为(0,0)。

第五方面涉及一种动图像解码方法,以解码块为单位进行仿射变换,所述动图像解码方法的特征在于,包括:仿射继承合并候选导出步骤,导出仿射继承合并候选,所述仿射继承合并候选继承在空间上与解码对象块接近的块所具有的仿射模型;仿射构建合并候选导出步骤,根据在空间上或时间上与解码对象块接近的块所具有的多个运动信息导出仿射构建合并候选;以及仿射固定合并候选导出步骤,导出仿射控制点的运动信息被固定的仿射固定合并候选,仿射固定合并候选将各仿射控制点的运动矢量固定为(0,0)。

第六方面涉及一种动图像解码程序,以解码块为单位进行仿射变换,并保存在计算机可读取的非临时性记录介质中,所述动图像解码程序使计算机执行以下步骤:仿射继承合并候选导出步骤,导出仿射继承合并候选,所述仿射继承合并候选继承在空间上与解码对象块接近的块所具有的仿射模型;仿射构建合并候选导出步骤,根据在空间上或时间上与解码对象块接近的块所具有的多个运动信息导出仿射构建合并候选;以及仿射固定合并候选导出步骤,导出仿射控制点的运动信息被固定的仿射固定合并候选,仿射固定合并候选将各仿射控制点的运动矢量固定为(0,0)。此外,这些记载是例示。本申请及本发明的范围并不受这些记载的限定或限制。另外,在本说明书中,应该理解为“本发明”的记载并不是限定本发明或本申请的范围,而是用于例示。

根据本发明,能够以低负载实现高效率的图像编码/解码处理。

附图说明

图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是本申请的编码装置中的子块预测运动矢量模式导出部303的框图;

图39是本申请的解码装置中的子块预测运动矢量模式导出部403的框图;

图40是本申请的编码装置中的子块合并模式导出部304的框图;

图41是本申请的解码装置中的子块合并模式导出部404的框图;

图42是说明仿射继承预测运动矢量候选导出的图;

图43是说明仿射构建预测运动矢量候选导出的图;

图44是说明仿射继承合并候选导出的图;

图45是说明仿射构建合并候选导出的图;

图46是仿射继承预测运动矢量候选导出的流程图;

图47是仿射构建预测运动矢量候选导出的流程图;

图48是仿射继承合并候选导出的流程图;

图49是仿射构建合并候选导出的流程图;

图50是用于说明子块时间合并候选导出部381的动作的流程图;

图51是用于说明导出块的相邻运动信息的处理的流程图;

图52是用于说明导出临时运动矢量的处理的流程图;

图53是用于说明帧间预测信息的导出的流程图;

图54是用于说明导出子块运动信息的处理的流程图;

图55是用于说明图片的时间上的前后关系的图;

图56是用于说明通常预测运动矢量模式导出部301中的时间预测运动矢量候选的导出处理的流程图;

图57是用于说明通常预测运动矢量模式导出部301中的时间预测运动矢量候选的导出处理中的、ColPic的导出处理的流程图;

图58是用于说明通常预测运动矢量模式导出部301中的时间预测运动矢量候选的导出处理中的、导出ColPic的编码信息的处理的流程图;

图59是用于说明帧间预测信息的导出处理的流程图;

图60是示出当编码块colCb的帧间预测模式是双预测(Pred_BI)时的编码块的帧间预测信息的导出处理步骤的流程图;

图61是用于说明运动矢量的缩放运算处理步骤的流程图;

图62是用于说明时间合并候选的导出处理的流程图;

图63是在仿射构建合并候选导出中表示运动信息的比较对象的图。

具体实施方式

定义在本实施方式中使用的技术及技术用语。

<树块>

在实施方式中,以预定的尺寸对编码/解码处理对象图像进行均等分割。将此单位定义为树块。在图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条带(P slice)中,能够使用L0预测(Pred_L0)。在B条带(B slice)中,能够使用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(Picture Order Count,图片序列号)是与要被编码的图片相关联的变量,并且设定与图片的输出顺序对应的递增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,以下相同)。

接着,时间预测运动矢量候选导出部322和422导出来自时间与当前的处理对象图片不同的图片中的块的预测运动矢量的候选。在该处理中,导出表示是否能够利用不同时间的图片的编码块的预测运动矢量候选的标志availableFlagLXCol、以及运动矢量mvLXCol、参考索引refIdxCol、参考列表listCol,将mvLXCol添加到预测运动矢量候选列表mvpListLX中(图20的步骤S303)。

此外,假设能够省略以序列(SPS)、图片(PPS)或条带为单位的时间预测运动矢量候选导出部322和422的处理。

接着,历史预测运动矢量候选导出部323和423将登记在历史预测运动矢量候选列表HmvpCandList中的历史预测运动矢量候选添加到预测运动矢量候选列表mvpListLX中(图20的步骤S304)。关于该步骤S304的登记处理步骤的细节使用图29的流程图在后面叙述。

接着,预测运动矢量候选补充部325和425添加(0,0)等预定值的预测运动矢量候选,直到满足预测运动矢量候选列表mvpListLX为止(图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。但是,在本实施方式中,由于不参考成为处理对象的编码块所包含的块的帧间预测信息来导出合并候选,所以不导出使用处理对象的编码块所包含的块的帧间预测信息的空间合并候选。

接着,在时间合并候选导出部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。

<导出子块预测运动矢量模式>

对子块预测运动矢量模式导出进行说明。

图38是本申请的编码装置中的子块预测运动矢量模式导出部303的框图。

首先,在仿射继承预测运动矢量候选导出部361中,导出仿射继承预测运动矢量候选。关于仿射继承预测运动矢量候选导出的详细情况将在后面叙述。

接着,在仿射构建预测运动矢量候选导出部362中,导出仿射构建预测运动矢量候选。关于仿射构建预测运动矢量候选导出的详细情况将在后面叙述。

接着,在仿射相同预测运动矢量候选导出部363中,导出仿射相同预测运动矢量候选。关于仿射相同预测运动矢量候选导出的详细情况将在后面叙述。

子块运动矢量检测部366检测适于子块预测运动矢量模式的子块运动矢量,并将检测到的矢量提供给子块预测运动矢量候选选择部367和差分运算部368。

子块预测运动矢量候选选择部367基于从子块运动矢量检测部366提供的运动矢量,从在仿射继承预测运动矢量候选导出部361、仿射构建预测运动矢量候选导出部362和仿射相同预测运动矢量候选导出部363中导出的子块预测运动矢量候选中选择子块预测运动矢量候选,并且将关于所选择出的子块预测运动矢量候选的信息提供给帧间预测模式判定部305和差分运算部368。

差分运算部368将差分预测运动矢量提供给帧间预测模式判定部305,所述差分预测运动矢量是从由子块运动矢量检测部366提供的运动矢量中减去由子块预测运动矢量候选选择部367选择的子块预测运动矢量而得的。

图39是本申请的解码装置中的子块预测运动矢量模式导出部403的框图。

首先,在仿射继承预测运动矢量候选导出部461中,导出仿射继承预测运动矢量候选。仿射继承预测运动矢量候选导出部461的处理与本申请的编码装置中的仿射继承预测运动矢量候选导出部361的处理相同。

接着,在仿射构建预测运动矢量候选导出部462中导出仿射构建预测运动矢量候选。仿射构建预测运动矢量候选导出部462处理与本申请的编码装置中的仿射构建预测运动矢量候选导出部362的处理相同。

接着,在仿射相同预测运动矢量候选导出部463中,导出仿射相同预测运动矢量候选。仿射相同预测运动矢量候选导出部463的处理与本申请的编码装置中的仿射相同预测运动矢量候选导出部363的处理相同。

子块预测运动矢量候选选择部467基于从编码装置发送并解码的预测运动矢量索引,从在仿射继承预测运动矢量候选导出部461、仿射构建预测运动矢量候选导出部462和仿射相同预测运动矢量候选导出部463中导出的子块预测运动矢量候选中选择子块预测运动矢量候选,并将关于所选择出的子块预测运动矢量候选的信息提供给运动补偿预测部406和加法运算部467。

加法运算部467将运动矢量提供给运动补偿预测部406,该运送矢量是由子块预测运动矢量候选选择部466选择的子块预测运动矢量与从编码装置传送并解码的差分运动矢量相加而生成的。

<导出仿射继承预测运动矢量候选>

对仿射继承预测运动矢量候选导出部361进行说明。仿射继承预测运动矢量候选导出部461也与仿射继承预测运动矢量候选导出部361相同。

仿射继承预测运动矢量候选继承仿射控制点的运动矢量信息。图42是说明仿射继承预测运动矢量候选导出的图。

仿射继承预测运动矢量候选是通过搜索空间上相邻的已编码/已解码块具有的仿射控制点的运动矢量来获得。

具体而言,从与编码/解码对象块的左侧相邻的块(A0、A1)和与编码/解码对象块的上侧相邻的块(B0、B1、B2)中,分别搜索最大的一个仿射模式,作为仿射继承预测运动矢量。

图46是仿射继承预测运动矢量候选导出的流程图。

首先,将与编码/解码对象块的左侧相邻的块(A0、A1)设为左组(S3101),判断包含A0的块是否是使用了仿射保障的块(仿射模式)(S3102)。在A0是仿射模式的情况下(S3102:是),获取A0使用的仿射模型(S3103),转移到与上侧相邻的块的处理。在A0不是仿射模式的情况下(S3102:否),将仿射继承预测运动矢量候选导出的对象为A0->A1,尝试从包含A1的块获取仿射模式。

接着,将与编码/解码对象块的上侧相邻的块(B0、B1、B2)作为上组(S3104),判断包含B0的块是否为仿射模式(S3105)。如果B0是仿射模式(S3105:是),则获取B0使用的仿射模型(S3106),处理结束。在B0不是仿射模式的情况下(S3105:否),将仿射继承预测运动矢量候选导出的对象设为B0->B1,尝试从包含B1的块获取仿射模式。此外,在B1不是仿射模式的情况下(S3105:否),将仿射继承预测运动矢量候选导出的对象设为B1->B2,尝试从包含B2的块获取仿射模式。

如此,通过对左侧块和上侧块分组,对左侧块按照左下到左上的块的顺序搜索仿射模型,对左侧块按照右上到左上的块的顺序搜索仿射模型,能够获得两个尽可能不同的仿射模型,并且能够导出仿射预测运动矢量的任一个变小差分运动矢量的仿射预测运动矢量候选。

<导出仿射构建预测运动矢量候选>

对仿射构建预测运动矢量候选导出部362进行说明。关于仿射构建预测运动矢量候选导出部462也与仿射构建预测运动矢量候选导出部362相同。

仿射构建预测运动矢量候选根据空间上相邻的块的运动信息来构建仿射控制点的运动矢量信息。

图43是用于说明仿射构建预测运动矢量候选导出的图。

仿射构建预测运动矢量候选是通过组合空间上相邻的已编码和已解码块具有的运动矢量来构建新仿射模型而获得的。

具体而言,从与编码/解码对象块的左上侧相邻的块(B2、B3、A2)导出左上仿射控制点CP0的运动矢量,从与编码/解码对象块的右上侧相邻的块(B1、B0)导出右上仿射控制点CP1的运动矢量,从与编码/解码对象块的左下侧相邻的块(A1、A0)导出左下仿射控制点CP2的运动矢量。

图47是仿射构建预测运动矢量候选导出的流程图。

首先,导出左上控制点CP0、右上控制点CP1、左下仿射控制点CP2(S3201)。左上仿射控制点CP0通过按照B2、B3和A2参考块的优先顺序搜索具有与编码/解码对象块相同的参考图像的参考块来计算。右上仿射控制点CP1通过按照B1、B0参考块的优先顺序搜索具有与编码/解码对象块相同的参考图像的参考块来计算。左下仿射控制点CP2通过按照A1、A0参考块的优先顺序搜索具有与编码/解码对象块相同的参考图像的参考块来计算。

在选择三个仿射控制点模式作为仿射构建预测运动矢量的情况下(S3202:是),判断三个仿射控制点(CP0、CP1、CP2)是否已全部导出(S3203)。在三个仿射控制点(CP0、CP1、CP2)全部被导出(S3203:是)的情况下,将使用三个仿射控制点(CP0、CP1、CP2)的仿射模型设为仿射构建预测运动矢量(S3204)。在不选择三个仿射控制点模式,而选择了两个仿射控制点模式的情况下(S3202:否),判断两个仿射控制点是否已被全部导出(CP0、CP1)(S3205)。在两个仿射控制点(CP0、CP1)全部被导出(S3205:是)的情况下,将使用两个仿射控制点(CP0、CP1)的仿射模型设为仿射构建预测运动矢量(S3206)。

<仿射相同预测运动矢量候选导出>

对仿射相同预测运动矢量候选导出部363进行说明。关于仿射相同预测运动矢量候选导出部463也与仿射相同预测运动矢量候选导出部363相同。

仿射相同预测运动矢量候选通过在各仿射控制点导出相同的运动矢量来获得。

具体地说,与仿射预测运动矢量候选导出部362、462同样,通过导出各仿射控制点信息,将所有仿射控制点在CP0~CP2的任一个中设定为相同来得到。另外,也可以通过将与通常预测运动矢量模式同样地导出的时间运动矢量设定在所有仿射控制点来得到。

(子块合并模式导出)

对子块合并模式导出进行说明。

图40是本申请的编码装置中的子块合并模式导出部304的框图。子块合并模式导出部304具有子块合并候选列表subblockMergeCandList。这与通常合并模式导出部302中的合并候选列表mergeCandList相同,仅在为以子块为单位不同的候选列表这一点上不同。

首先,在子块时间合并候选导出部381中,导出子块时间合并候选。关于子块时间合并候选导出的详细内容将在后面叙述。

接着,在仿射继承合并候选导出部382中,导出仿射继承合并候选。关于仿射继承合并候选导出的详细情况将在后面叙述。

接着,在仿射构建合并候选导出部383中,导出仿射构建合并候选。关于仿射构建合并候选导出的详细情况将在后面叙述。

接着,在仿射固定合并候选导出部384中,导出仿射固定合并候选。关于仿射固定合并候选导出的详细情况将在后面叙述。

子块合并候选选择部386从在子块时间合并候选导出部381、仿射继承合并候选导出部382、仿射构建合并候选导出部383和仿射固定合并候选导出部384导出的子块合并候选中选择子块合并候选,并将关于选择出的子块合并候选的信息提供给帧间预测模式判定部305。

图41是本申请的解码装置中的子块合并模式导出部404的框图。子块合并模式导出部404具有子块合并候选列表subblockMergeCandList。这与子块合并模式导出部304相同。

首先,在子块时间合并候选导出部481中,导出子块时间合并候选。子块时间合并候选导出部481的处理与子块时间合并候选导出部381的处理相同。

接着,在仿射继承合并候选导出部482中,导出仿射继承合并候选。仿射继承合并候选导出部482的处理与仿射继承合并候选导出部382的处理相同。

接着,在仿射构建合并候选导出部483中,导出仿射构建合并候选。仿射构建合并候选导出部483的处理与仿射构建合并候选导出部383的处理相同。

接着,在仿射固定合并候选导出部485中,导出仿射固定合并候选。仿射固定合并候选导出部485的处理与仿射固定合并候选导出部485的处理相同。

子块合并候选选择部486基于从编码装置传送并被解码的索引从在子块时间合并候选导出部481、仿射继承合并候选导出部482、仿射构建合并候选导出部483和仿射固定合并候选导出部484中导出的子块合并候选中选择子块合并候选,并将与所选择出的子块合并候选相关的信息提供给运动补偿预测部406。

<子块时间合并候选导出>

关于子块时间合并候选导出部381的动作将在后面叙述。

<仿射继承合并候选导出>

对仿射继承合并候选导出部382进行说明。关于仿射继承合并候选导出部482也与仿射继承合并候选导出部382相同。

仿射继承合并候选从空间上相邻的块所具有的仿射模型继承仿射控制点的仿射模型。仿射模型由空间上相邻的块的尺寸和仿射控制点的运动信息决定。

图44是说明仿射继承合并候选导出的图。仿射合并继承合并模式候选的导出与仿射继承预测运动矢量的导出相同,通过搜索空间上相邻的已编码/已解码块所具有的仿射控制点的运动矢量来得到。

具体地,从与编码/解码对象块的左侧相邻的块(A0、A1)和与编码/解码对象块的上侧相邻的块(B0、B1、B2)中,分别搜索最大一个仿射模式,用于仿射模式。

图48是仿射继承合并候选导出的流程图。

首先,将与编码/解码对象块的左侧相邻的块(A0、A1)设为左组(S3301),判断包含A0的块是否为仿射模式(S3302)。在A0是仿射模式的情况下(S3102:是),获取A0使用的仿射模型(S3303),转移到与上侧相邻的块的处理。在A0不是仿射模式的情况下(S3302:否),将仿射继承合并候选导出的对象设为A0->A1,尝试从包含A1的块获取仿射模式。

接着,将与编码/解码对象块的上侧相邻的块(B0、B1、B2)设为上组(S3304),判断包含B0的块是否为仿射模式(S3305)。如果B0是仿射模式(S3305:是),则获取B0使用的仿射模型(S3306),结束处理。在B0不是仿射模式的情况下(S3305:否),将仿射继承合并候选导出的对象设为B0->B1,尝试从包含B1的块获取仿射模式。并且,在B1不是仿射模式的情况下(S3305:否),将仿射继承合并候选导出的对象设为B1->B2,尝试从包含B2的块获取仿射模式。

<仿射构建合并候选导出>

对仿射构建合并候选导出部383进行说明。关于仿射构建合并候选导出部483也与仿射构建合并候选导出部383相同。

图45是用于说明仿射构建合并候选导出的图。仿射构建合并候选根据空间上相邻的块所具有的运动信息和时间编码块来构建仿射控制点的仿射模型。

具体而言,从与编码/解码对象块的左上侧相邻的块(B2、B3、A2)导出左上仿射控制点CP0的运动矢量,从与编码/解码对象块的右上侧相邻的块(B1、B0)导出右上仿射控制点CP1的运动矢量,从与编码/解码对象块的左下侧相邻的块(A1、A0)导出左下仿射控制点CP2的运动矢量,从与编码/解码对象块的右下侧相邻的时间编码块(T0)导出右下仿射控制点CP3的运动矢量。

图49是仿射构建合并候选导出的流程图。

首先,导出左上仿射控制点CP0、右上仿射控制点CP1、左下仿射控制点CP2、右下仿射控制点CP3(S3401)。左上仿射控制点CP0通过按照B2、B3和A2块的优先顺序搜索具有运动信息的块来计算。右上仿射控制点CP1通过按照B1和B0块的优先顺序搜索具有运动信息的块来计算。左下仿射控制点CP2通过按照A1、A0块的优先顺序搜索具有运动信息的块来计算。右下仿射控制点CP3通过搜索时间块的运动信息来计算。

接着,判断是否能够通过导出的左上仿射控制点CP0、右上仿射控制点CP1、左下仿射控制点CP2,构建基于三个仿射控制点的仿射模型(S3402),在能够构建时(S3402:是),将基于左上仿射控制点CP0、右上仿射控制点CP1、左下仿射控制点CP2的三个仿射控制点仿射模型作为仿射合并候选(S3403)。

接着,判断是否能够通过导出的左上仿射控制点CP0、右上仿射控制点CP1、右下仿射控制点CP3,构建基于三个仿射控制点的仿射模型(S3404),在能够构建时(S3404:是),将基于左上仿射控制点CP0、右上仿射控制点CP1、右下仿射控制点CP3的三个仿射控制点仿射模型作为仿射合并候选(S3405)。

接着,判断是否能够通过导出的左上仿射控制点CP0、左下仿射控制点CP2、右下仿射控制点CP3,构建基于三个仿射控制点的仿射模型(S3406),在能够构建时(S3406:是),将基于左上仿射控制点CP0、左下仿射控制点CP2、右下仿射控制点CP3的三个仿射控制点仿射模型作为仿射合并候选(S3407)。

接着,判断是否能够通过导出的左上仿射控制点CP0、右上仿射控制点CP1,构建基于两个仿射控制点的仿射模型(S3408),在能够构建的情况下(S3408:是),将基于左上仿射控制点CP0、右上仿射控制点CP1的两个仿射控制点仿射模型作为仿射合并候选(S3409)。

接着,判断是否能够通过导出的左上仿射控制点CP0、左下仿射控制点CP2构建基于两个仿射控制点的仿射模型(S3410),在能够构建的情况下(S3410:是),将基于左上仿射控制点CP0、左下仿射控制点CP2的两个仿射控制点仿射模型作为仿射合并候选(S3411)。

这里,是否构建了仿射模型通过下述条件来判断。

1.所有的仿射控制点的参考图像是相同的。(能够进行仿射变换)

2.在至少一个仿射控制点处具有不同的运动矢量。(不能用平移描述)

如此,在实施方式1中,对于所有的仿射构建合并候选包含左上仿射控制点CP0。在对图像按从左到右、从上到下的光栅扫描顺序进行处理时,左上仿射控制点CP0存在编码/解码块的可能性最高,即,存在运动信息的可能性最高。

通过使用左上仿射控制点CP0导出仿射构建合并候选,能够减少判定组合仿射控制点时的参考图像是否相同的处理量。另外,在导出右上仿射控制点CP1、左下仿射控制点CP2和右下仿射控制点CP3的仿射控制点(S3401)时,也能够优先搜索与左上仿射控制点CP0相同的参考图像。在这种情况下,能够导出参考图像相同的仿射构建合并候选,并导出参考图像相同的、有效的仿射构建合并候选,并且能够导出编码效率高的仿射合并候选。

这里,更详细地说明以左上仿射控制点CP0为基准的参考图像的判定。

图62是表示在仿射构建合并候选导出中通过组合所导出的各仿射控制点来导出仿射构建合并候选时的运动信息的比较对象的图。

图62的(A)是通过左上仿射控制点CP0、右上仿射控制点CP1和左下仿射控制点CP2构建三个仿射控制点仿射模型时的图。在这种情况下,比较左上仿射控制点CP0和右上仿射控制点CP1的运动信息,并且比较左上仿射控制点CP0和右上仿射控制点CP1的参考图像是否相同、以及左上仿射控制点CP0和右上仿射控制点CP1的运动矢量是否不同。同样地,比较左上仿射控制点CP0和左下仿射控制点CP2的运动信息。

图62的(B)是通过左上仿射控制点CP0、左下仿射控制点CP2和右下仿射控制点CP3构建三个仿射控制点仿射模型时的图。在这种情况下,比较左上仿射控制点CP0和左下仿射控制点CP2的运动信息,并且比较左上仿射控制点CP0和右下仿射控制点CP3的运动信息。

图62的(C)是通过左上仿射控制点CP0、右上仿射控制点CP1和右下仿射控制点CP3构建三个仿射控制点仿射模型时的图。在这种情况下,比较左上仿射控制点CP0和右上仿射控制点CP1的运动信息,并且比较左上仿射控制点CP0和右下仿射控制点CP3的运动信息。

图62的(D)是通过左上仿射控制点CP0和右上仿射控制点CP1构建两个仿射控制点仿射模型时的图。在这种情况下,比较左上仿射控制点CP0和右上仿射控制点CP1的运动信息。

图62的(E)是通过左上仿射控制点CP0和左下仿射控制点CP2构建两个仿射控制点仿射模型时的图。在这种情况下,比较左上仿射控制点CP0和左下仿射控制点CP2的运动信息。

这样,在所有的仿射构建合并候选导出的组合中,对左上仿射控制点CP0和各仿射控制点CPx(x=1,2,3)的运动信息进行比较,判断参考图像是否相同、是否能够进行仿射变换。

<仿射固定合并候选导出>

对仿射固定合并候选导出部385进行说明。关于仿射固定合并候选导出部485也与仿射固定合并候选导出部385相同。仿射固定合并候选以固定的运动信息来固定仿射控制点的运动信息。具体地,将各仿射控制点的运动矢量固定为(0,0)。

<时间预测运动矢量>

在描述时间预测运动矢量之前对图片的时间前后关系进行说明。图55的(a)表示编码对象的编码块与编码对象图片在时间上不同的已编码的图片的关系。在编码对象图片中,将编码所参考的特定的已编码的图片定义为ColPic。ColPic通过句法来确定。

另外,图55的(b)示出在ColPic中与编码对象的编码块位于相同位置以及存在其附近的已编码的编码块。这些编码块T0和T1是与编码对象图片在时间上不同的图片中的、大致相同位置的编码块。

上述图片的时间上的前后关系的说明是编码时的说明,但解码时也是同样的。即,在解码时,将上述说明中的编码置换为解码,同样地进行说明。

参考图56对图17的通常预测运动矢量模式导出部301中的时间预测运动矢量候选导出部322的动作进行说明。

首先,导出ColPic(步骤S4201)。关于ColPic的导出,参考图57进行说明。

当条带类型“slice_type”是B条带、标志collocated_from_l0_flag是0时(步骤S4211:是,步骤S4212:是),成为RefPicList_1[0]、即参考列表L1的参考索引为0的图片变为不同时间的图片colPic(步骤S4213)。否则,即当条带类型slice_type是B条带并且上述标志collocated_from_l0_flag是1(步骤S4211:是,步骤S4212:否)时,或者当条带类型slice_type是P条带(步骤S4211:否,步骤S4214:是)时,成为RefPicList0[0],即参考列表L0的参考索引为0的图片变为不同时间的图片colPic(步骤S4215)。在slice_type不是P条带的情况下(步骤S4214:否),结束处理。

再次参考图56。在导出ColPic之后,导出编码块colCb,获取编码信息(步骤S4202)。参考图58对该处理进行说明。

首先,在不同时间的图片colPic内,将位于与处理对象的编码块相同位置的右下(外侧)的编码块设为不同时间的编码块colCb(步骤S4221)。该编码块相当于图49的编码块T0。

接着,获取不同时间的编码块colCb的编码信息(步骤S4222)。当无法利用不同时间的编码块colCb的PredMode时或者不同时间的编码块colCb的预测模式PredMode是帧内预测(MODE_INTRA)时(步骤S4223:否,步骤S4224:是),在不同时间的图片colPic内将位于与处理对象的编码块相同位置的中央右下方的编码块设为不同时间的编码块colCb(步骤S4225)。该编码块相当于图55的编码块T1。

再次参考图56。接着,按照每个参考列表导出帧间预测信息(S4203、S4204)。这里,对于编码块colCb,导出每个参考列表的运动矢量mvLXCol和表示编码信息是否有效的标志availableFlagLXCol。LX表示参考列表,在导出参考列表0时,LX为L0,在导出参考列表1时,LX为L1。参考图59对帧间预测信息的导出进行说明。

在无法利用不同时间的编码块colCb的情况下(S4231和S4231:否),或者在预测模式PredMode是帧内预测(MODE_INTRA)的情况下(S4232:否),将标志availableFlagLXCol和标志predFlagLXCol都设为0(步骤S4233),将运动矢量mvLXCol设为(0,0)(S4234),结束处理。

如果能够利用编码块colCb(S4231:是)、预测模式PredMode不是帧内预测(MODE_INTRA)(S4232:是),则通过以下步骤计算mvCol、refIdxCol和availableFlagCol。

当表示是否正在利用编码块colCb的L0预测的标志PredFlagL0[xPCol][yPCol]为0(S4235:是)时,由于编码块colCb的预测模式为Pred_L1,因此运动矢量mvCol被设定为与编码块colCb的L1的运动矢量、即MvL1[xPCol][yPCol]相同的值(S4236),参考索引refIdxCol被设定为与L1的参考索引RefIdxL1[xPCol][yPCol]相同的值(S4237),列表ListCol被设定为L1(S4238)。这里,xPCol和yPCol是表示在不同时间的图片COLPic内的编码块colCb的左上像素的位置的索引。

另一方面,当编码块colCb的L0预测标志PredFlagL0[xPCol][yPCol]不为0时(S4235:否),判定编码块colCb的L1预测标志PredFlagL1[xPCol][yPCol]是否为0。当编码块colCb的L1预测标志PredFlagL1[xPCol][yPCol]为0时(S4239:是),运动矢量mvCol被设定为与编码块colCb的L0运动矢量MvL0[xPCol][yPCol]相同的值(S4240),参考索引refIdxCol被设定为与L0的参考索引RefIdxL0[xL0[xPCol][yPCol]相同的值(S4241),列表ListCol被设定为0(S4242)。

当编码块colCb的L0预测标志PredFlagL0[xPCol][yPCol]和编码块colCb的L1预测标志PredFlagL1[xPCol][yPCol]均不为0时(S4235:否,S4239:否),由于编码块colCb的帧间预测模式是双预测(Pred_BI),因此从L0和L1的两个运动矢量中选择一个(S4243)。图60是示出导出当编码块colCb的帧间预测模式是双预测(Pred_BI)时的编码块的帧间预测信息的导出处理步骤的流程图。

首先,判断所有参考列表中登记的所有图片的POC是否小于当前的编码对象图片的POC(S4251),在编码块colCb的所有参考列表、即L0和L1中登记的所有图片的POC小于当前的编码对象图片的POC的情况下(S4251:是),在LX为L0、即导出编码对象的编码块的L0的运动矢量的预测矢量候选的情况下(S4252:是),选择编码块colCb的L0侧的帧间预测信息,在LX为L1、即导出编码对象的编码块的L1的运动矢量的预测矢量候选的情况下(S4252:否),选择编码块coLCb的L1侧的帧间预测信息。另一方面,在编码块colCb的所有参考列表L0和L1中登记的图片的POC中的至少一个大于当前的编码对象图片的POC的情况下(S4251:否),在标志collocated_from_l0_flag为0的情况下(S4253:是),选择编码块colCb的L0侧的帧间预测信息,在标志collocated_from_l0_flag为1的情况下(S4253:否),选择编码块colCb的L1侧的帧间预测信息。

当选择编码块colCb的L0侧的帧间预测信息时(S4252:是,S4253:是),运动矢量mvCol被设定为与MvL0[xPCol][yPCol]相同的值(S4254),参考索引refIdxCol被设定为与RefIdxL0[xPCol][yPCol]相同的值(S4255),并且列表ListCol被设定为L0(S4256)。

当选择编码块colCb的L1侧的帧间预测信息时(S4252:否,S4253:否),运动矢量mvCol被设定为与MvL1[xPCol][yPCol]相同的值(S4257),参考索引refIdxCol被设定为与RefIdxL1[xPCol][yPCol]相同的值(S4258),并且列表ListCol被设定为L1(S4259)。

返回到图59,如果能够从编码块colCb获取了帧间预测信息,则将标志availableFlagLXCol和标志predFlagLXCol都设为1(S4244)。

接着,对运动矢量mvCol进行缩放,设为运动矢量mvLXCol(S4245、S4245)。使用图61对该运动矢量mvLXCol的缩放运算处理步骤进行说明。

通过从不同时间的图片colPic的POC中减去与在编码块colCb的列表ListCol中参考的参考索引refIdxCol对应的参考图片的POC,来计算图片间距离td(S4261)。此外,在与不同时间的图片colPic相比在编码块colCb的列表ListCol中参考的参考图片的POC在显示顺序上靠前的情况下,图片间距离td为正值,在与不同时间的图片colPic相比在编码块colCb的列表ListCol中参考的参考图片的POC在显示顺序上靠后的情况下,图片间距离td为负值。

td=不同时间的图片colPic的POC-在编码块colCb的列表ListCol中参考的参考图片的POC

通过从当前的编码对象图片的POC中减去当前的编码对象图片的列表LX所参考的参考图片的POC来计算图片间距离tb(S4262)。此外,在与当前的编码对象图片相比在当前的编码对象图片的列表LX中参考的参考图片在显示顺序上靠前的情况下,图片间距离tb为正值,在当前的编码对象图片的列表LX中参考的参考图片在显示顺序上靠后的情况下,图片间距离tb为负值。

tb=当前的编码/解码对象图片的POC-时间合并候选的与LX的参考索引对应的参考图片的POC

接着,对图片间距离td和tb进行比较(S4263),在图片间距离td和tb相等的情况下(S4263:是),通过下式计算运动矢量mvLXCol(S4264),结束本缩放运算处理。

mvLXCol=mvCol

另一方面,在图片间距离td和tb不相等的情况下(S4263:否),通过下式计算变量tx(S4265)。

tx=(16384+Abs(td)>>1)/td

接着,通过下式计算缩放系数distScaleFactor(S4266)。

distScaleFactor=Clip3(-4096,4095,(tb×tx+32)>>6)

这里,Clip3(x,y,z)是关于值z的将最小值限制为x、将最大值限制为y的函数。接着,通过下式计算运动矢量mvLXCol(S4267),结束本缩放运算处理。

mvLXCol=Clip3(-32768,32767,Sign(distScaleFactor×mvLXCol)

×((Abs(distScaleFactor×mvLXCol)+127)>>8)

这里,Sign(x)是返回值x的符号的函数,Abs(x)是返回值x的绝对值的函数。

再次参考图56。然后,将L0的运动矢量mvL0Col作为候选添加到上述的通常预测运动矢量模式导出部301中的预测运动矢量候选列表mvpListLXN中(S4205)。然而,该添加仅在表示参考列表0的编码块colCb是否有效的标志availableFlagL0Col=1的情况下进行。另外,将L1的运动矢量mvL1Col作为候选添加到上述的通常预测运动矢量模式导出部301中的预测运动矢量候选列表mvpListLXN中(S4205)。但是,该添加仅在表示参考列表1的编码块colCb是否有效的标志availableFlagL1Col=1的情况下进行。根据上述,结束时间预测运动矢量候选导出部322的处理。

上述的通常预测运动矢量模式导出部301的说明是编码时的说明,但解码时也是同样的。即,图23的通常预测运动矢量模式导出部401中的时间预测运动矢量候选导出部422的动作将上述说明中的编码置换为解码,同样地进行说明。

<时间合并>

参考图62对图18的通常合并模式导出部302中的时间合并候选导出部342的动作进行说明。

首先,导出ColPic(步骤S4301)。接着,导出编码块colCb,获取编码信息(步骤S4302)。并且,针对每个参考列表,导出帧间预测信息(S4303、S4304)。以上的处理由于与时间预测运动矢量候选导出部322中的S4201至S4204相同,因此省略说明。

接下来,计算表示编码块colCb是否有效的标志availableFlagCol(S4305)。如果标志availableFlagL0Col或标志availableFlagL1Col是1,则availableFlagCol是1。除此之外,availableFlagCol为0。

然后,将L0的运动矢量mvL0Col及L1的运动矢量mvL1Col作为候选添加到上述的通常合并模式导出部302中的合并候选列表mergeCandList中(S4306)。然而,该添加仅在表示编码块colCb是否有效的标志availableFlagCol=1的情况下进行。根据以上结束时间合并候选导出部342的处理。

上述的时间合并候选导出部342的说明是编码时的说明,但解码时也同样。即,图24的通常合并模式导出部402中的时间合并候选导出部442的动作将上述说明中的编码置换为解码,同样地进行说明。

<更新历史预测运动矢量候选列表>

接着,详细说明编码侧的编码信息保存存储器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~S2107)。

首先,以编码块为单位进行初始设定。对表示是否存在相同候选的标志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的要素的移位及添加处理。

图31A~图31C是用于说明历史预测运动矢量候选列表的更新处理的一例的图。在已登记六个要素(帧间预测信息)的历史预测运动矢量候选列表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的步骤S2207:否),跳过步骤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的重复处理。

在完成了对历史预测运动矢量候选列表中的所有要素的确认、或者对合并候选列表的所有要素添加合并候选后,完成该历史合并候选的导出处理。

<子块时间合并候选导出>

参考图50对图16的子块合并模式导出部304中的子块时间合并候选导出部381的动作进行说明。

首先,判定编码块是否小于8×8像素(S4002)。

在编码块小于8×8像素的情况下(S4002:是),设定为表示子块时间合并候选的存在的标志availableFlagSbCol=0(S4003),结束子块时间合并候选导出部的处理。这里,在通过句法禁止临时运动矢量预测的情况下,或者在禁止子块时间合并的情况下,进行与编码块小于8×8像素的情况(S4002:是)相同的处理。

另一方面,在编码块为8×8像素以上的情况下(S4002:否),导出编码图片中的编码块的相邻运动信息(S4004)。

参考图51说明导出编码块的相邻运动信息的处理。导出相邻运动信息的处理与上述的空间预测运动矢量候选导出部321的处理相似。但是,搜索相邻块的顺序为A0、B0、B1、A1,不搜索B2。首先,设相邻块n=A0,获取编码信息(S4052)。编码信息表示标志availableFlagN、每个参考列表的参考索引refIdxLXN和运动矢量mvLXN,标志availableFlagN表示能否利用相邻块。

接着,判断相邻块n是有效还是无效(S4054)。如果表示能否利用相邻块的标志availableFlagN=1,则设为有效,除此以外设为无效。

如果相邻块n有效(S4054:是),则将参考索引refIdxLXN设为相邻块n的参考索引refIdxLXn(S4056)。另外,将运动矢量mvLXN作为相邻块n的运动矢量mvLXn(S4056),结束导出块的相邻运动信息的处理。

另一方面,如果相邻块n无效(S4106:否),则设为相邻块n=B0,获取编码信息(S4104)。以下,进行同样的处理,按照B1、A1的顺序进行循环。导出相邻运动信息的处理进行循环直到相邻块有效为止,如果所有的相邻块A0、B0、B1、A1无效,则结束导出块的相邻运动信息的处理。

再次参考图50。在导出相邻运动信息后(S4004),导出临时运动矢量(S4006)。

参考图52对导出临时运动矢量的处理进行说明。首先,初始化为临时运动矢量tempMv=(0,0)(S4062)。

接着,判断相邻运动信息是有效还是无效(S4064)。如果表示能否利用相邻块的标志availableFlagN=1,则设为有效,除此以外设为无效。在相邻运动信息无效的情况下(S4064:否),结束导出临时运动矢量的处理。

另一方面,在相邻运动信息有效的情况下(S4064:是),判断表示在相邻块N中能否利用L1预测的标志predFlagL1N是否为1(S4066)。在predFlagL1N=0的情况下(S4066:否),进入下一处理(S4078)。如果predFlagL1N=1(S4066:是),则判断登记在所有参考列表中的所有图片的POC是否等于或小于当前的编码对象图片的POC(S4068)。在该判断为真的情况下(S4068:是),进入下一处理(S4070)。

在条带类型slice_typ是B条带、且标志collocated_from_l0_flag是0(S4070:是、S4072:是)的情况下,判断ColPic与参考图片RefPicList1[refIdxL1N](参考列表L1的参考索引refIdxL1N的图片)是否相同(S4074)。在该判断为真的情况下(S4074:是),设为临时运动矢量tempMv=mvL1N(S4076)。在该判断为假的情况下(S4074:否),进入下一处理(S4078)。在条带类型slice_type不是B条带、标志collocated_from_l0_flag不是0的情况下(S4070:否,或者S4072:否),则进入到下一处理(S4078)。

然后,判断表示在相邻块N中能否利用L0预测的标志predFlagL0N是否为1(S4078)。当predFlagL0N=1时(S4078:是),判断ColPic与参考图片RefPicList0[refIdxL0N](参考列表L0的参考索引refIdxL0N的图片)是否相同(S4080)。在该判断为真的情况下(S4080:是),设为临时运动矢量tempMv=mvL0N(S4082)。在该判断为假的情况下(S4080:否),结束导出临时运动矢量的处理。再次参考图50。接着,导出ColPic(S4016)。该处理由于与时间预测运动矢量候选导出部322中的S4201相同,因此省略说明。

然后,设定不同时间的编码块colCb(S4017)。这是将在不同时间的图片ColPic内位于与处理对象的编码块相同位置的中央右下的编码块设定为colCb。该编码块相当于图55的编码块T1。

接着,将对编码块colCb相加临时运动矢量tempMv而获得的位置设为新的colCb(S4018)。如果将编码块colCb的左上的位置设为(xColCb,yColCb),将临时运动矢量tempMv在1/16像素精度下设为(tempMv[0],tempMv[1]),则新的colCb的左上的位置如下。

xColCb=Clip3(xCtb,xCtb+CtbSizeY+3,xcolCb+(tempMv[0]>>4))

yColCb=Clip3(yCtb,yCtb+CtbSizeY-1,ycolCb+(tempMv[1]>>4))

这里,设树块的左上方的位置为(xCtb,yCtb)、树块的尺寸为CtbSizeY。如上式所示,加上tempMv后的位置被修正为树块的尺寸程度的范围,以避免与加上tempMv前相比发生大的偏差。如果该位置在画面外,则被修正到画面内。

然后,判定该编码块colCb的预测模式PredMode是否是帧间预测(MODE_INTER)(S4020)。当colCb的预测模式不是帧间预测时(S4020:否),设定表示子块时间合并候选的存在的标志availableFlagSbCol=0(S4003),结束子块时间合并候选导出部的处理。

另一方面,在colCb的预测模式是帧间预测的情况下(S4020:是),针对每个参考列表导出帧间预测信息(S4022、S4023)。这里,对于colCb,导出每个参考列表的中心运动矢量ctrMvLX和表示是否利用LX预测的标志ctrPredFlagLX。LX表示参考列表,在导出参考列表0时,LX为L0,在导出参考列表1时,LX为L1。参考图53对帧间预测信息的导出进行说明。

当无法利用不同时间的编码块colCb时(S4112:否),或者当预测模式PredMode是帧内预测(MODE_INTRA)时(S4114:否),标志availableFlagLXCol和标志predFlagLXCol均为0(步骤S4116),将运动矢量mvCol为(0,0)(S4118),结束帧间预测信息的导出处理。

如果能够利用编码块colCb(S4112:是),并且预测模式PredMode不是帧内预测(MODE_INTRA)(S4114:是),则通过以下步骤计算mvCol、refIdxCol和availableFlagCol。

如果表示是否利用编码块colCb的LX预测的标志PredFlagLX[xPCol][yPCol]是1(S4120:是),则运动矢量mvCol被设定为与编码块colCb的LX的运动矢量MvLX[xPCol][yPCol]相同的值(S4122),参考索引refIdxCol被设定为与LX的参考索引RefIdxLX[xPCol][yPCol]相同的值(S4124),列表listCoLX被设定为LX(S4126)。这里,xPCol和yPCol是表示在不同时间的图片colPic内的编码块colCb的左上像素的位置的索引。

另一方面,当表示是否利用编码块colCb的LX预测的标志PredFlagLX[xPCol][yPCol]为0时(S4120:否),执行以下处理。首先,判断登记在所有参考列表中的所有图片的POC是否是当前的编码对象图片的POC以下(S4128)。并且,判断表示是否利用colCb的LY预测的标志PredFlagLY[xPCol][yPCol]是否为1(S4128)。这里,LY预测定义为与LX预测不同的参考列表。即,在LX=L0时LY=L1,在LX=L1时LY=L0。

如果该判断为真(S4128:是),则运动矢量mvCol被设定为与编码块colCb的LY的运动矢量MvLY[xPCol][yPCol]相同的值(S4130),参考索引refIdxCol被设定为与LY的参考索引RefIdxLY[xPCol][yPCol]相同的值(S4132),列表listCol被设定为LX(S4134)。

另一方面,在该判断为假的情况下(S4128:否),将标志availableFlagLXCol和标志predFlagLXCol都设为0(步骤S4116),将运动矢量mvCol设为(0,0)(S4118),结束帧间预测信息的导出处理。

当从编码块colCb获取帧间预测信息时,将标志availableFlagLXCol和标志predFlagLXCol都设为1(S4136)。

接着,对运动矢量mvCol进行缩放,设为运动矢量mvLXCol(S4138)。该处理由于与时间预测运动矢量候选导出部322中的S4245相同,因此省略说明。

再次参考图50。在针对每个参考列表导出帧间预测信息之后,将计算出的运动矢量mvLXCol设为中心运动矢量ctrMvLX,并且将计算出的标志predFlagLXCol设为标志ctrPredFlagLX(S4022,S4023)。

然后,判断中心运动矢量是有效还是无效(S4024)。如果ctrPredFlagL0=0且ctrPredFlagL1=0,则判断为无效,除此以外判断为无效。在中心运动矢量是无效的情况下(S4024:否),设定为表示子块时间合并候选的存在的标志availableFlagSbCol=0(S4003),结束子块时间合并候选导出部的处理。

另一方面,在中心运动矢量有效的情况下(S4024:是),设定表示子块时间合并候选的存在的标志availableFlagSbCol=1(S4025),导出子块运动信息(S4026)。参考图54对该处理进行说明。

首先,根据编码块colCb的宽度cbWidth和高度cBheight,计算宽度方向的子块数numSbX和高度方向的子块数numSbY(S4152)。另外,设为refIdxLXSbCol=0(S4152)。在该处理之后,以预测子块colSb为单位执行重复处理。该重复在将高度方向的索引ySbIdx从0变更到numSbY、将宽度方向的索引xSbIdx从0变更到numSbX的同时进行处理。

如果将编码块colCb的左上位置设为(xCb,yCb),则如下计算预测子块colSb的左上位置(xSb,ySb)。

xSb=xCb+xSbIdx×sbWidth

ySb=yCb+ySbIdx×sbHeight

接着,将在预测子块colSb上相加了临时运动矢量tempMv的位置设为新的colSb(S4154)。如果将预测子块colSb的左上位置设为(xColSb,yColSb)、将临时运动矢量tempMv在1/16像素精度下设为(tempMv[0],tempMv[1]),则新的colSb的左上位置如下。

xColSb=Clip3(xCtb,xCtb+CtbSizeY+3,xSb+(tempMv[0]>>4))

yColSb=Clip3(yCtb,yCtb+CtbSizeY-1,ySb+(tempMv[1]>>4))

这里,设树块的左上方的位置为(xCtb,yCtb),树块的尺寸为CtbSizeY。如上式所示,加上tempMv后的位置被修正为树块的尺寸程度的范围,以避免与tempMv相加前比发生较大的偏差。如果该位置为画面外,则被修正到画面内。

然后,按照每个参考列表导出帧间预测信息(S4156、S4158)。这里,对于预测子块colSb,以子块为单位导出每个参考列表的运动矢量mvLXSbCol和表示预测子块是否有效的标志availableFlagLXSbCol。LX表示参考列表,在导出参考列表0时,LX为L0,在导出参考列表1时,LX为L1。由于帧间预测信息的导出与图50的S4022、S4023相同,因此省略说明。

在导出帧间预测信息后(S4156、S4158),判断预测子块colSb是否有效(S4160)。在availableFlagL0SbCol=0且availableFlagL1SbCol=0情况下,判断为colSb无效,除此以外判断为有效。在colSb无效的情况下(S4160:否),将运动矢量mvLXSbCol设为中心运动矢量ctrMvLX(S4162)。并且,将表示是否利用LX预测的标志predFlagLXSbCol设为中心运动矢量中的标志ctrPredFlagLX(S4162)。通过以上步骤,结束子块运动信息导出。

再次参考图50。然后,将L0的运动矢量mvL0SbCol及L1的运动矢量mvL1SbCol作为候选添加到上述的子块合并模式导出部304中的子块合并候选列表subblockMergeCandList中(S4028)。但是,该添加仅在表示子块时间合并候选的存在的标志availableSbCol=1的情况下。通过以上处理,结束时间合并候选导出部342的处理。

上述的子块时间合并候选导出部381的说明是编码时的说明,但解码时也是同样的。即,图22的子块合并模式导出部404中的子块时间合并候选导出部481的动作将上述说明中的编码置换为解码,同样地进行说明。

<运动补偿预测处理>

运动补偿预测部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的运动补偿预测信号。

在基于仿射模型的运动补偿中,由于以子块为单位导出参考索引或运动矢量,因此以子块为单位使用成为处理对象的参考索引或运动矢量来生成运动补偿预测信号。

四参数仿射模型是以下模式:根据两个控制点的各自的运动矢量的水平分量及垂直分量的四个参数导出子块的运动矢量,以子块为单位进行运动补偿。

(第二实施方式)

在第二实施方式中,在导出子块合并模式导出部304/404中的仿射构建合并候选时,固定成为与各仿射控制点(CP0、CP1、CP2和CP3)的参考图像进行比较的对象的参考图像,判断是否能够进行仿射变换。例如,固定到具有参考图像索引0的参考图像,并且判断是否能够通过各仿射变换控制点(CP0、CP1、CP2和CP3)的各组合来进行仿射变换。

通过将各仿射控制点的参考图像与固定的参考图像进行比较,能够构建基于不使用左上仿射控制点CP0的右上仿射控制点CP1、左下仿射控制点CP2、右下仿射控制点CP3的三个仿射控制点仿射模型。由此,能够提高导出仿射构建合并候选的可能性,仿射合并模式的预测精度提高,编码效率提高。

以上所述的所有实施方式也可以组合多个。

在以上所述的所有实施方式中,图像编码装置输出的比特流具有特定的数据格式,以便能够根据在实施方式中使用的编码方法进行解码。另外,与该图像编码装置对应的图像解码装置能够对该特定的数据格式的比特流进行解码。

在使用有线或无线网络用于在图像编码装置和图像解码装置之间交换比特流的情况下,可以将比特流转换为适合于通信线路的传送形式的数据格式来传送。在该情况下,设置了:发送装置,将从图像编码装置输出的比特流转换为适合于通信线路的传送形式的数据格式的编码数据并将该编码数据发送到网络;以及接收装置,从网络接收编码数据并将该编码数据恢复为比特流而提供给图像解码装置。发送装置包括:存储器,对从图像编码装置输出的比特流进行缓冲;分组处理部,对比特流进行分组;以及发送部,经由网络发送已被分组的编码数据。接收装置包括:接收部,经由网络接收已被分组的编码数据;存储器,对已接收到的编码数据进行缓冲;以及分组处理部,对编码数据进行分组处理以生成比特流,并将该比特流提供给图像解码装置。

另外,也可以通过在构成中添加显示由图像解码装置解码的图像的显示部来作为显示装置。在这种情况下,显示部读出由解码图像信号重叠部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解码图像存储器。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号