本技术涉及图像处理装置和方法,并且特别涉及使得可以更快速地获得运动信息的图像处理装置和方法。
背景技术:
例如,作为与图像的编码或解码有关的技术,已经提出了被称为fruc(帧速率上转换)的技术。该fruc技术是由jvet(联合视频探索组)提出的技术,并且在fruc技术中,在帧间预测时在解码器侧执行对运动信息的预测(例如,参考非专利文献1)。
在fruc技术中,通过解码器的模板匹配方法或双向匹配方法执行块匹配处理以导出运动信息。通过以这种方式由解码器导出运动信息,可以减少与被放置在比特流中的运动信息有关的信息。
引用列表
非专利文献
非专利文献1
itu-tsg16wp3和iso/iecjtc1/sc29/wg11的联合视频勘探组(jvet),“algorithmdescriptionofjointexplorationtestmodel4”,jvet-d1001_v3,第4次会议:成都,中国,2016年10月15日至21日
技术实现要素:
技术问题
顺便提及,在使用fruc技术的情况下,用于导出运动信息的块匹配不仅由编码器侧执行,而且还由解码器侧执行,并且块匹配中的处理的处理量很大。例如,如果块匹配中的处理量太大以至于需要时间来导出运动信息,则在一些情况下,不能实时地再现运动图像的内容等。
因此,需要一种使得可以更快速地获得运动信息以使得可以执行运动图像的内容等的实时再现的技术。
鉴于上述情况作出了本技术,本技术使得可以更快速地获得运动信息。
问题的解决方案
根据本技术的第一方面的一种图像处理装置包括:预测部,其被配置成基于多个运动矢量候选之中的给定上限数量的运动矢量候选,使用具有与处理目标的块的图像的时间不同的时间的参考图像来导出该块的运动矢量。
根据本技术的第一方面的图像处理方法与根据本技术的第一方面的图像处理装置对应。
在本技术的第一方面中,基于多个运动矢量候选之中的给定上限数量的运动矢量候选,使用具有与处理目标的块的图像的时间不同的时间的参考图像导出该块的运动矢量。
根据本技术的第二方面的一种图像处理装置包括:预测部,其被配置成关于多个运动矢量候选,计算原始图像的处理目标的块与具有与原始图像的时间不同的时间的解码图像中的由运动矢量候选中的每个运动矢量候选指示的块之间的差,并且基于所述差从多个运动矢量候选之中选择一个运动矢量候选;以及编码部,其被配置成对指示由预测部选择的运动矢量候选的信息进行编码。
在本技术的第二方面中,关于多个运动矢量候选,计算原始图像的处理目标的块与具有与原始图像的时间不同的时间的解码图像中的由运动矢量候选中的每个运动矢量候选指示的块之间的差,并且基于所述差从多个运动矢量候选之中选择一个运动矢量候选。此外,对指示所选择的运动矢量候选的信息进行编码。
根据本技术的第三方面的图像处理装置包括:预测部,其被配置成获取指示运动矢量候选的信息,并且基于具有与包括处理目标的块的图像的时间不同的时间的参考图像上的块以及具有与图像和参考图像的时间不同的时间的不同参考图像,通过块匹配来导出处理目标的块与不同参考图像之间的第二运动矢量,该参考图像上的块由第一运动矢量来指示,该第一运动矢量由所述信息指示并且从运动矢量候选获得。
在本技术的第三方面中,获取指示运动矢量候选的信息,并且基于具有与包括处理目标的块的图像的时间不同的时间的参考图像上的块以及具有与图像和参考图像的时间不同的时间的不同参考图像,通过块匹配导出处理目标的块与不同参考图像之间的第二运动矢量,该参考图像上的块由第一运动矢量来指示,该第一运动矢量由所述信息指示并且从运动矢量候选获得。
根据本技术的第四方面的一种图像处理装置包括:预测部,其被配置成从处理目标的块附近的周边区域之中获取未以fruc模式处理的周边区域中的运动矢量作为运动矢量候选,并且基于所获取的运动矢量候选,使用具有与包括处理目标的块的图像的时间不同的时间的参考图像来导出处理目标的块的运动矢量。
在本技术的第四方面中,从处理目标的块附近的周边区域之中获取未以fruc模式处理的周边区域中的运动矢量作为运动矢量候选,并且基于所获取的运动矢量候选,使用具有与包括处理目标的块的图像的时间不同的时间的参考图像导出处理目标的块的运动矢量。
本发明的有益效果
利用本技术的第一方面至第四方面,可以更快速地获得运动信息。
应当注意,此处描述的有益效果不是限制性的,而可以是在本公开内容中描述的任何效果。
附图说明
[图1]图1是示出帧间预测模式的视图。
[图2]图2是示出图像编码装置的配置的示例的视图。
[图3]图3是示出双向匹配的视图。
[图4]图4是示出双向匹配的视图。
[图5]图5是示出模板匹配的视图。
[图6]图6是示出模板匹配的视图。
[图7]图7是示出预测部的配置的示例的视图。
[图8]图8是示出预测运动矢量候选的视图。
[图9]图9是示出预测部的配置的另一示例的视图。
[图10]图10是示出图像编码处理的流程图。
[图11]图11是示出帧间预测处理模式设置处理的流程图。
[图12]图12是示出fruc合并模式编码处理的流程图。
[图13]图13是示出通过模板匹配进行的运动信息导出处理的流程图。
[图14]图14是示出通过双向匹配进行的运动信息导出处理的流程图。
[图15]图15是示出图像解码装置的配置的示例的视图。
[图16]图16是示出预测部的配置的示例的视图。
[图17]图17是示出预测部的配置的另一示例的视图。
[图18]图18是示出图像解码处理的流程图。
[图19]图19是示出fruc合并模式解码处理的流程图。
[图20]图20是示出通过双向匹配进行的另一运动信息导出处理的流程图。
[图21]图21是示出通过模板匹配进行的另一运动信息导出处理的流程图。
[图22]图22是示出帧间预测处理模式设置处理的流程图。
[图23]图23是示出通过双向匹配进行的又一运动信息导出处理的流程图。
[图24]图24是示出通过模板匹配进行的又一运动信息导出处理的流程图。
[图25]图25是示出fruc合并模式解码处理的流程图。
[图26]图26是示出通过双向匹配进行的另一运动信息导出处理的流程图。
[图27]图27是示出通过模板匹配进行的另一运动信息导出处理的流程图。
[图28]图28是示出通过双向匹配进行的又一运动信息导出处理的流程图。
[图29]图29是示出通过模板匹配进行的又一运动信息导出处理的流程图。
[图30]图30是示出通过双向匹配进行的再一运动信息导出处理的流程图。
[图31]图31是示出通过模板匹配进行的再一运动信息导出处理的流程图。
[图32]图32是示出模板匹配中的延迟的视图。
[图33]图33是示出改进的模板匹配的视图。
[图34]图34是示出预测部的配置的示例的视图。
[图35]图35是示出fruc合并模式编码处理的流程图。
[图36]图36是示出通过改进的模板匹配进行的运动信息导出处理的流程图。
[图37]图37是示出预测部的配置的又一示例的视图。
[图38]图38是示出又一fruc合并模式解码处理的流程图。
[图39]图39是示出通过改进的模板匹配进行的运动信息导出处理的流程图。
[图40]图40是示出对fruc块的参考的视图。
[图41]图41是示出对fruc块的参考的视图。
[图42]图42是示出对fruc块的参考的视图。
[图43]图43是示出计算机的配置的示例的视图。
具体实施方式
在下文中,参照附图描述应用本技术的实施方式。
<第一实施方式>
<帧间预测模式的类型>
在本技术中,通过帧间预测模式或帧内预测模式对作为处理目标的运动图像进行编码和解码。
在对运动图像进行编码或解码时,在被称为cu(编码单元)的处理单元(编码单元)中对与配置运动图像的帧对应的图片进行编码和解码。
cu是通过递归地划分作为最大编码单元并具有可变尺寸的ctu(编码树单元)形成的块。在以下描述中,除非另有说明,否则ctu被简称为cu,并且通过划分ctu获得的cu被称为子块。此外,在以下描述中不需要将cu和子块具体地彼此区分开的情况下,有时将cu和子块中的每一个简称为块。
此外,帧间预测模式包括例如如图1所示的多个模式,并且根据多个模式中之一来执行编码和解码。
在图1所示的示例中,帧间预测模式被分类成跳过模式和非跳过模式。
在非跳过模式下,将预测残差放置到通过编码获得的比特流中,该预测残差是:关于图片中的块,块与作为块的参考目的地的参考图片的参考块之间的差。相比之下,在跳过模式下,预测残差未被放置到比特流中。
此外,非跳过模式还被分类成合并模式和非合并模式。在非合并模式下,关于图片中的块,将指示关于该块确定的预测运动矢量的误差的差分运动矢量放置到通过编码获得的比特流中。相比之下,在合并模式下,这样的差分运动矢量不被放置在比特流中。
此外,非跳过模式中的非合并模式包括由箭头标记a11指示的仿射amvp(高级运动矢量预测)模式、由箭头标记a12指示的非fruc模式(即,普通amvp模式)以及由箭头标记a13指示的fruc模式。
仿射amvp模式是用于利用仿射变换导出运动信息的模式。amvp模式是以下模式,在该模式下,关于图片中的块,预测残差、用于获得预测运动矢量的预测运动矢量候选和差分运动矢量被放置到比特流中。特别地,将预测运动矢量候选和差分运动矢量作为运动信息放置到比特流中。
此处,指示处理目标的块周围的多个周边区域中之一的索引等被放置在比特流中,作为指示预测运动矢量候选的信息。在amvp模式下,在解码时,通过将差分运动矢量添加到作为预测运动矢量候选的周边区域的预测运动矢量而获得的矢量被用作处理目标的块的运动矢量。
此外,由箭头标记a13指示的fruc模式是以下模式,在该模式下,关于图片中的块,指示通过模板匹配方法和双向匹配方法中的哪一个导出运动信息的fruc_mode_flag、预测残差和差分运动矢量被放置到比特流中。fruc模式是以下模式,在该模式下,以amvp模式为基础在解码器侧导出运动信息。在以下描述中,由箭头标记a13指示的fruc模式有时被特别称为frucamvp模式。
此外,非跳过模式中的合并模式包括由箭头标记a14指示的fruc模式、由箭头标记a15指示的amvp中的合并模式以及由箭头标记a16指示的仿射合并模式。
由箭头标记a14指示的fruc模式是以下模式,在该模式下,关于图片中的块,fruc_mode_flag和预测残差被放置到比特流中。在以下描述中,由箭头标记a14指示的fruc模式有时被特别称为fruc合并模式。
由箭头标记a15指示的amvp中的合并模式是以下模式,在该模式下,关于图片中的块,预测残差和预测运动矢量候选被放置到比特流中,并且该合并模式有时被特别称为amvp合并模式。
由箭头标记a16指示的仿射合并模式与由箭头标记a11指示的仿射amvp模式的不同之处在于,差分运动矢量未被放置到比特流中。
此外,跳过模式被分类成fruc模式和非fruc模式。特别地,跳过模式包括由箭头标记a17指示的fruc模式、由箭头标记a18指示的合并模式以及由箭头标记a19指示的仿射合并模式。
由箭头标记a17指示的fruc模式是以下模式,在该模式下,关于图片中的块,fruc_mode_flag被放置到比特流中。在以下描述中,由箭头标记a17指示的fruc模式有时被特别称为跳过fruc模式。
由箭头标记a18指示的合并模式是以下模式,在该模式下,关于图片中的块,将预测运动矢量候选放置到比特流中,并且在以下描述中,该合并模式有时被特别称为跳过合并模式。
由箭头标记a19指示的仿射合并模式与由箭头标记a16指示的仿射合并模式的不同之处在于,预测残差未被放置到比特流中。
在本技术中,在编码器侧选择由图1的箭头标记a11至a19指示的模式中之一,并且对图片上的块进行编码。应当注意,在以下描述中,在以下假设下继续描述:为了简化描述,假设不选择跳过模式和与仿射变换有关的模式,并且从amvp模式、frucamvp模式、amvp合并模式和fruc合并模式之中选择在对块进行编码时的模式。
<图像编码装置的配置的示例>
现在,描述作为应用本技术的图像处理装置的图像编码装置。
图2是示出应用本技术的图像编码装置的实施方式的配置的示例的视图。
图2所示的图像编码装置11是对图像与其预测图像之间的预测残差进行编码的编码器,如avc(高级视频编码)或hevc(高效率视频编码)。例如,hevc技术或由jvet提出的技术被合并到图像编码装置11中。
应当注意,在图2中,示出了处理部、数据流等中的主要处理部、数据流等,并且图2所示的那些处理部、数据流等可能不是全部处理部、数据流等。特别地,在图像编码装置11中可以存在图2中未示出为块的处理部,或者可以存在图2中未示出为箭头标记等的处理或数据流。
图像编码装置11包括控制部21、运算部22、变换部23、量化部24、编码部25、去量化部26、逆变换部27、另一运算部28、帧存储器29和预测部30。图像编码装置11对作为帧单位的运动图像的输入图片的每个cu或每个子块执行编码。
特别地,图像编码装置11的控制部21基于来自外部的输入等设置包括头部信息hinfo、预测信息pinfo、变换信息tinfo等的编码参数。
头部信息hinfo包括诸如视频参数集(vps(视频参数集))、序列参数集(sps(序列参数集))、图片参数集(pps(图片参数集)和切片头部(sh)的信息。
预测信息pinfo包括例如指示在形成子块(pu(预测单元))时在每个划分层次中存在或不存在水平方向或垂直方向上的划分的分割标志。此外,对于每个块,预测信息pinfo包括指示块的预测处理是帧内预测处理还是帧间预测处理的模式信息pred_mode_flag。
在模式信息pred_mode_flag指示帧间预测处理的情况下,预测信息pinfo包括merge_flag、fruc_flag、fruc_mode_flag、运动矢量信息、用于指定参考图像(参考图片)的参考图像指定信息等。
merge_flag是指示帧间预测处理的模式是否为合并模式的标志信息。例如,在帧间预测处理的模式是合并模式的情况下,merge_flag的值被设置为1,而在帧间预测处理的模式不是合并模式的情况下,merge_flag的值被设置为0。
fruc_flag是指示模式是否是fruc模式的标志信息,并且例如,在模式是fruc模式的情况下,fruc_flag的值被设置为1,而在模式不是fruc模式的情况下,fruc_flag的值被设置为0。
fruc_mode_flag是指示在模式是fruc模式的情况下通过模板匹配方法和双向匹配方法中的哪一个导出运动信息的标志信息。例如,在通过双向匹配导出运动信息的情况下,fruc_mode_flag的值被设置为1,而在通过模板匹配来导出运动信息的情况下,fruc_mode_flag的值被设置为0。
运动矢量信息是由上述预测运动矢量候选或差分运动矢量中至少之一配置的信息。
在模式信息pred_mode_flag指示帧内预测处理的情况下,预测信息pinfo包括指示作为帧内预测处理的模式的帧内预测模式的帧内预测模式信息等。自然地,可以任意确定预测信息pinfo的实质,并且除了上述示例之外的任何信息可以包括在预测信息pinfo中。
变换信息tinfo包括指示称为tb(变换块)的处理单元(变换块)的尺寸的tbsize。虽然作为正交变换处理的处理单元的tu(变换单元)是针对每个亮度(y)和色差(cb,cr)由tb配置,但是此处假设tu与子块相同。
此外,在图像编码装置11中,将作为编码目标的运动图像(下文中有时被称为原始图像)的图片提供至运算部22和预测部30。
运算部22按顺序确定输入的图片作为编码目标的图片,并且基于预测信息pinfo的分割标志,对编码目标的图片设置编码目标的块即cu或子块。运算部22从编码目标的块(下文中有时被称为当前块)的图像i中以从预测部30提供的块为单位减去预测图像p以计算预测残差d,并且将计算的预测残差d提供至变换部23。
变换部23基于从控制部21提供的变换信息tinfo对从运算部22提供的预测残差d执行正交变换等以导出变换系数coeff,并且将导出的变换系数coeff提供至量化部24。
量化部24基于从控制部21提供的变换信息tinfo对从变换部23提供的变换系数coeff执行缩放(量化),以导出量化变换系数级别level。量化部24将量化变换系数级别level提供至编码部25和去量化部26。
编码部25通过预定方法对从量化部24提供的量化变换系数级别level等进行编码。例如,编码部25根据语法表的定义将从控制部21提供的编码参数(头部信息hinfo、预测信息pinfo、变换信息tinfo等)和从量化部24提供的量化变换系数级别level变换成每个语法元素的语法值。然后,编码部25通过算术编码等对语法值进行编码。
编码部25例如复用所获得的语法元素的比特串的编码数据作为编码的结果,并且将复用的编码数据输出作为编码流。
去量化部26基于从控制部21提供的变换信息tinfo对从量化部24提供的量化变换系数级别level的值执行缩放(去量化),以导出去量化之后的变换系数coeff_iq。去量化部26将变换系数coeff_iq提供至逆变换部27。由去量化部26执行的去量化是由量化部24执行的量化的处理的逆处理,并且是与由下文中描述的图像解码装置执行的去量化的处理类似的处理。
逆变换部27基于从控制部21提供的变换信息tinfo对从去量化部26提供的变换系数coeff_iq执行逆正交变换等,以导出预测残差d'。逆变换部27将预测残差d'提供至运算部28。
由逆变换部27执行的逆正交变换是由变换部23执行的正交变换的处理的逆处理,并且是与由下文中描述的图像解码装置执行的逆正交变换的处理类似的处理。
运算部28将从逆变换部27提供的预测残差d'和从预测部30提供的对应于预测残差d'的预测图像p相加,以导出局部解码图像rec。运算部28将局部解码图像rec提供至帧存储器29。
帧存储器29使用从运算部28提供的局部解码图像rec以图片为单位来重构解码图像,并且将重构的解码图像存储到帧存储器29中的缓冲器中。
帧存储器29将由预测部30指定的解码图像作为参考图像(参考图片)读出并且从缓冲器提供至预测部30。替选地,帧存储器29可以将根据解码图像的生成的头部信息hinfo、预测信息pinfo、变换信息tinfo等存储到帧存储器29中的缓冲器中。
预测部30基于预测信息pinfo的模式信息pred_mode_flag获取解码图像,该解码图像指示与编码目标的块在时间上相同并且存储在帧存储器29中作为参考图像。然后,预测部30使用参考图像针对编码目标的块执行由帧内预测模式信息指示的帧内预测模式的帧内预测处理。
此外,预测部30基于预测信息pinfo的模式信息pred_mode_flag和参考图像指定信息,获取指示与编码目标的块在时间上不同并且存储在帧存储器29中作为参考图像的解码图像。预测部30基于merge_flag、fruc_flag、fruc_mode_flag、运动矢量信息等,以由merge_flag和fruc_flag确定的模式对参考图像执行帧间预测处理。应当注意,在帧间预测处理时,还根据场合需要使用所提供的原始图像。
预测部30将作为帧内预测处理或帧间预测处理的结果生成的编码对象的块的预测图像p提供至运算部22和运算部28。
<fruc模式>
此处,描述fruc模式。
例如,在帧间预测中,为了执行运动补偿,解码器侧需要诸如预测运动矢量和参考索引的运动信息。
通常,预测运动矢量以诸如来自预测运动矢量候选的差分运动矢量信息的形式被包括在编码流中,并且解码器基于预测运动矢量候选和差分运动矢量信息来重构预测运动矢量。
由于如果差分运动矢量存储在编码流中,则编码流的代码量增加,因此编码效率降低。
fruc技术是用于预测运动信息——即,用于导出运动信息——的方法之一,并且如果由解码器侧通过fruc技术导出运动信息,则不仅可以高准确度地预测预测运动矢量,而且还可以减少运动信息的代码量,并且可以提高编码效率。特别是,由于在跳过fruc模式下不需要运动信息,因此可以显著地提高编码效率。
如上所述,在fruc模式下,可以由编码器侧选择双向匹配方法和模板匹配方法中之一,并且在解码器侧,可以通过由编码器侧指定的方法导出运动信息。
例如,在双向匹配中,使用作为编码目标的图片(帧)的图片pic11和作为参考图片的图片pic12和图片pic13来导出图片pic11上的当前块cb11的预测运动矢量,如图3所示。
应当注意,图3中的水平方向指示时间,并且在该示例中,图片pic12是按显示顺序比图片pic11的时间更早的帧,并且图片pic13是按显示顺序比图片pic11的时间更新的帧。
特别地,图片pic12是由作为参考图像指定信息的参考列表ref0指示为参考图片的图片(帧)。另一方面,图片pic13是由作为参考图片指定信息的参考列表ref1指示为参考图片的图片(帧)。
此处,参考列表ref0是基本上指示比编码目标的图片pic11更早的帧作为参考图片的列表,并且包括编码目标的图片的多个图片可以被指定为参考列表ref0中的参考图片。
类似地,参考列表ref1是基本上指示比编码目标的图片pic11更新的帧作为参考图片的列表,并且在参考列表ref1中,包括编码目标的图片的多个图片可以被指定为参考图片。
此外,在图3所示的示例中,td0指示图片pic11与图片pic12之间的时间距离,td1指示图片pic11与图片pic13之间的时间距离。此处,例如,时间距离td0和时间距离td1是彼此相等的距离。
例如,在导出作为编码目标的当前块cb11的预测运动矢量时,关于通过当前块cb11的中心的线性线l11,选择图像pic12中的以与线性线l11的交点为中心的块bl11以及图片pic13中的以与线性线l11的交点为中心的块bl12。然后,计算块bl11与块bl12之间的差。
此外,在搜索范围中使块bl11和块bl12的位置连续移位的同时,关于块bl11和块bl12的所有组合来计算该差,以搜索该差最小的组合。然后,将指示该差最小的组合的块的矢量确定为要确定的预测运动矢量。
应当注意,此时,选择每个块使得耦接块bl11的中心和块bl12的中心的线性线必然穿过当前块cb11的中心。换句话说,计算线性地耦接当前块cb11的块bl11与块bl12之间的差。
在该示例中,获得由图3中的箭头标记指示的运动矢量mv0和运动矢量mv1作为当前块cb11的预测运动矢量。
运动矢量mv0是起点在与当前块cb11的中心位置具有相同的位置关系的图片pic12上的位置处并且终点在块bl11的中心位置处的矢量。类似地,运动矢量mv1是起点在与当前块cb11的中心位置具有相同的位置关系的图片pic13上的位置处并且终点在块bl12的中心位置处的矢量。
以这种方式,在双向匹配中,假设在图片pic12与图片pic13之间纹理线性地移动的模型,并且以恒定速度移动(执行移动)的对象应用于该模型。
图4是一维地表示图片以利于理解两个参考图片上的块在双向匹配中线性耦接到当前块的视图。应当注意,在图4中,与图3中的元素相同的元素用相同的附图标记表示,并且适当地省略对相同元素的描述。
在该示例中,当前块cb11、图片pic12上的块bl21和图片pic13上的块bl22彼此线性耦接。特别地,当前块cb11、块bl21和块bl22位于线性线l21上,并且计算块bl21与块bl22之间的差,以导出预测运动矢量。
此处,关于作为参考图片的图片pic12和图片pic13,在当前块cb11被确定为编码目标或解码目标的时间点,对图片pic12和图片pic13的所有区域已经进行编码或解码。
相比之下,关于图片pic11,尽管在当前块cb11被确定为编码目标或解码目标的时间点处,已经编码或解码了相对于图4中的当前块cb11的上侧的区域,但是相对于图4中的当前块cb11的下侧的区域保持处于尚未被编码或解码的状态。
在导出当前块cb11的预测运动矢量时,变为差的计算目标的块通过改变线性线l21的角度(倾斜度)而变化。
如上所述,在双向匹配中,通过块匹配导出预测运动矢量,在块匹配中,在连续地使作为差的计算目标的块变化的同时,使用在显示时间上与编码目标的图片不同并且在显示时间上彼此不同的两个参考图片。因此,不仅可以由编码器侧而且可以由解码器侧以高准确度导出(预测)预测运动矢量。
此外,在模板匹配中,在编码目标的图片与具有与编码目标的图片的显示时间不同的显示时间的参考图片之间执行块匹配,例如,如图5所示。应当注意,在图5中,与图3中的元素相同的元素用相同的附图标记表示,并且适当地省略对相同元素的描述。
在图5所示的示例中,图片pic11上的当前块cb11是编码目标,并且在图片pic11与图片pic12之间执行块匹配。
在块匹配中,将与图片pic11上的当前块cb11相邻的区域tm11-1和另一区域tm11-2确定为模板,该模板是要用于块匹配——即,用于计算差——的区域。应当注意,在没有必要将区域tm11-1和区域tm11-2具体区分开的情况下,它们中的每一个有时被简称为区域tm11。
区域tm11是在当前块cb11被确定为处理目标的时间点处已经被编码或解码的区域。
此外,在作为参考图片的图片pic12中,具有与区域tm11-1和区域tm11-2的尺寸和形状相同的尺寸和形状的区域tm12-1和区域tm12-2是模板。
应当注意,区域tm12-1的形状和尺寸与区域tm11-1的形状和尺寸相同,区域tm12-2的形状和尺寸与区域tm11-2的形状和尺寸相同。此外,区域tm12-1与区域tm12-2之间的相对位置关系与区域tm11-1与区域tm11-2之间的相对位置关系相同。
在下文中,在不需要将区域tm12-1和区域tm12-2具体区分开的情况下,它们中的每一个也被称为区域tm12。
在模板匹配中,在预定搜索范围中使区域tm12的位置连续移位的同时,在每个位置处计算具有相同形状的区域tm11与区域tm12之间的差,以搜索差最小的区域tm12的位置的区域。
在该示例中,在计算差时,计算区域tm11-1与区域tm12-1之间的差以及区域tm11-2与区域tm12-2之间的差。
然后,指示差最小时的区域tm12的位置的矢量是要确定的预测运动矢量。在该示例中,作为当前块cb11的预测运动矢量,获得由图5中的箭头标记表示的运动矢量mv0。
例如,将具有与当前块cb11的形状和尺寸相同的形状和尺寸并且与图片pic12中的区域tm12具有与区域tm11与当前块cb11之间的相对位置关系相同的相对位置关系的块确定为块bl31。此外,假设当区域tm12和块bl31的位置是如图5所示的位置时,区域tm11与区域tm12之间的差最小。
在这种情况下,起点在与当前块cb11的中心位置具有相同位置关系的图片pic12上的位置处并且终点在块bl31的中心位置处的矢量被确定为运动矢量mv0。
图6是一维地表示图片以利于理解模板匹配中的参考图片的模板和与当前块相邻的模板之间的关系的视图。应当注意,图6中与图3或图5中的部分相同的部分用相同的附图标记表示,并且适当地省略对相同部分的描述。
在该示例中,与当前块cb11相邻的模板的区域tm11和作为参考图片的图片pic12上的模板的区域tm12被示出为由线性线连接,并且计算区域tm11与区域tm12之间的差,以导出预测运动矢量。
此处,在当前块cb11成为编码目标或解码目标的时间点处,作为参考图片的图片pic12和图片pic13已经在图片pic12和图片pic13的整个区域上被编码或解码。
相比之下,尽管关于图片pic11,在当前块cb11变为编码目标或解码目标的时间点处,图6中比当前块cb11更上侧的区域已被编码或解码,但是图6中比当前块更下侧的区域处于尚未被编码或解码的状态。在该示例中,区域tm11是已被编码或解码的区域。
在模板匹配中,假设当前块cb11与作为与当前块cb11相邻的模板的区域tm11之间的运动矢量相同。然后,从图像pic12内搜索出与区域tm11类似的区域,即具有小差的区域tm12,并且将由搜索结果指示的运动矢量确定为当前块cb11的预测运动矢量。
以这种方式,在模板匹配中,在连续地改变作为差的计算目标的参考图片上的模板位置的同时,通过一个参考图片的显示时间与编码目标的显示时间不同的块匹配来导出预测运动矢量。因此,不仅可以由编码器侧而且还可以由解码器侧以高准确度导出(预测)预测运动矢量。
<预测部的配置>
顺便提及,在上述图像编码装置11的预测部30中,通过双向匹配或模板匹配来执行运动信息的导出,即,预测运动矢量的导出。
例如,预测部30具有图7所示的配置作为用于通过双向匹配导出运动信息的配置。
特别地,在图7所示的示例中,预测部30包括候选获取部51、双向匹配处理部52、子块候选获取部53和双向匹配处理部54。
候选获取部51至双向匹配处理部54之中的候选获取部51和双向匹配处理部52是导出编码目标的cu(ctu)的运动信息的处理块。相比之下,子块候选获取部53和双向匹配处理部54是导出编码目标的子块的运动信息的处理块。
候选获取部51收集与编码目标的cu相邻的周边区域中的预测运动矢量(这样的预测运动矢量中的每一个在下文中也称为相邻运动矢量)作为预测运动矢量候选,即,作为起点的候选。
例如,如果假设要如图8所示的那样确定一个cu71的预测运动矢量,则与cu71相邻的四个区域r11-1至r11-4是周边区域。应当注意,在不需要将区域r11-1至区域r11-4彼此具体区分开的情况下,它们中的每一个有时仅被称为区域r11。
例如,每个区域r11是通过预定方法已经关于cu71被编码(解码)的区域。换句话说,在cu71被确定为编码目标的时间点处被编码之后已被解码的区域r11被确定为周边区域。
由于被确定为周边区域的区域r11是已被编码的区域,因此预测部30已经预测了已经获得的区域r11的运动矢量。
因此,候选获取部51使用区域r11的预测运动矢量作为cu71的预测运动矢量候选,即,作为cu71的起点的候选。应当注意,在下面的描述中,不仅相邻运动矢量而且周边区域被适当地称为起点的候选或预测运动矢量候选。
返回参照图7,候选获取部51生成关于编码目标的cu预先确定的周边区域的列表作为起点的候选的列表(下文中也被称为候选列表)。例如,生成指示用于在amvp合并模式下导出预测运动矢量的周边区域的索引的列表作为候选列表。
此外,候选获取部51获取由所生成的候选列表指示的起点的候选,即,周边区域的相邻运动矢量,并且将相邻的运动矢量提供至双向匹配处理部52。
双向匹配处理部52包括候选选择部61和运动矢量导出部62。
候选选择部61从由候选列表指示的多个预测运动矢量候选(起点的候选)之中选择一个候选。
运动矢量导出部62通过使用预测运动矢量的每个候选作为起点的双向匹配来确定编码目标的cu的预测运动矢量。
特别地,运动矢量导出部62将由作为一个参考图片(下文中被称为标准参考图片)上的起点的候选的相邻运动矢量确定的区域确定为搜索范围,并且将搜索范围中的块确定为差计算块。
然后,运动矢量导出部62对差计算块和与对应于差计算块的标准参考图片的时间不同的时间处的参考图片的块之间的差进行计算,并且计算可以从计算结果确定的成本(cost)。例如,关于差计算块确定的成本具有随着关于差计算块的差减小而减小的值。
应当注意,在以下描述中,指示起点的候选的索引由id表示并且关于由索引id指示的起点的候选确定的预定差计算块的成本被表示为成本ccur_bilat(id)。此外,关于针对由索引id指示的起点的候选获得的预定差计算块的预测运动矢量也被表示为预测运动矢量mvbilat(id)。
运动矢量导出部62在搜索范围中连续地移动差计算块的位置的同时,计算预测运动矢量mvbilat(id)和成本ccur_bilat(id),其中每个区域被确定为差计算块。
尽管在下文中描述了细节,但是假设例如在运动矢量导出部62中,并行设置多个匹配处理电路,关于起点的一个候选,多个匹配处理电路中的每一个通过双向匹配来计算预测运动矢量mvbilat(id)和成本ccur_bilat(id)。
在这种情况下,关于每个起点的候选,由匹配处理电路并行地执行处理,并且关于起点的所有候选,由候选选择部61从关于起点的所有候选针对各个参考图片计算的预测运动矢量mvbilat(id)之中选择成本ccur_bilat(id)最低的预测运动矢量mvbilat(id)作为编码目标的预测运动矢量。
此外,根据场合需要,运动矢量导出部62对最终获得的预测运动矢量与作为用于导出预测运动矢量的预测运动矢量候选的相邻运动矢量之间的差进行计算,作为编码目标的cu的差分运动矢量。
双向匹配处理部52将编码目标的cu的预测运动矢量提供至子块候选获取部53。
子块候选获取部53将关于编码目标的子块预先确定的编码目标的cu内的区域确定为周边区域,并且生成从双向匹配处理部52提供的周边区域和预测运动矢量被指示为子块的预测运动矢量候选的列表(这样的列表在下文中也被称为子块候选列表)。
子块候选获取部53获取由生成的子块候选列表指示的预测运动矢量候选(即,周边区域的相邻运动矢量)以及从双向匹配处理部52提供的预测运动矢量,并且将获取的相邻运动矢量和预测运动矢量提供至双向匹配处理部54。
双向匹配处理部54基于从子块候选获取部53向双向匹配处理部54提供的相邻运动矢量和预测运动矢量来执行与双向匹配处理部52的处理类似的处理,以导出编码目标的子块的预测运动矢量。
双向匹配处理部54包括候选选择部63和运动矢量导出部64,并且候选选择部63和运动矢量导出部64分别对应于候选选择部61和运动矢量导出部62。
此外,根据场合需要,运动矢量导出部64对最终获得的预测运动矢量与用于导出预测运动矢量的预测运动矢量候选之间的差进行计算,作为编码目标的子块的差分运动矢量。
在预测部30中,获得由双向匹配处理部52导出的预测运动矢量和差分运动矢量作为如上所述的编码目标的cu的运动信息。此外,获得由双向匹配处理部54导出的预测运动矢量和差分运动矢量作为编码目标的子块的运动信息。
顺便提及,在双向匹配中,重复地执行以下处理:例如,选择标准参考图片,关于标准参考图片进一步选择起点的候选,并且关于所选择的起点的候选确定指示最低成本的预测运动矢量。换句话说,关于标准参考图片和起点的候选的所有组合,按顺序重复地执行用于确定预测运动矢量的处理。
特别是,由于块匹配的处理步骤处理量很大,因此块匹配的重复执行需要很多时间来导出预测运动矢量,导致无法快速获得运动信息。
此处,图像编码装置11被配置成使得双向匹配处理部52或双向匹配处理部54中至少之一可以通过并行地执行关于若干标准参考图片或起点的若干候选的预测运动矢量导出处理的至少一部分来更快速地获得运动信息。
作为示例,在双向匹配处理部52的运动矢量导出部62被配置成使得运动矢量导出部62可以并行地执行双向匹配的情况下,在运动矢量导出部62中并行设置多个匹配处理电路。
例如,假设在运动矢量导出部62中设置n个匹配处理电路。在这种情况下,n个匹配电路中的每一个是算术处理电路,该算术处理电路关于起点的给定候选通过双向匹配导出指示最低成本ccur_bilat(id)的预测运动矢量mvbilat(id)。
在下文中,假设关于起点的一个候选最低的成本ccur_bilat(id)也被称为成本ccur_bilatbest(id),并且对应于成本ccur_bilat(id)的预测运动矢量mvbilat(id)也被称为预测运动矢量mvbilatbest(id)。
现在,假设由候选列表指示的预测运动矢量候选的数量(即,起点的候选的数量)是n。在这种情况下,在运动矢量导出部62中,可以由n个匹配处理电路并行地执行用于关于一个标准参考图片的起点的n个候选导出预测运动矢量mvbilatbest(id)的运算,并且可以更快速地获得运动信息。
例如,假设在每个匹配处理电路中针对起点的每个候选获得预测运动矢量mvbilatbest(id)的成本ccur_bilatbest(id)的情况下,候选选择部61确定与在成本ccur_bilatbest(id)之中最低的成本ccur_bilatbest(id)对应的预测运动矢量mvbilatbest(id)作为编码目标的cu的最终预测运动矢量。
应当注意,如果n个成本ccur_bilatbest(id)不按顺序被逐一比较,而是划分成若干组以同时比较n个成本ccur_bilatbest(id),例如,以比赛方式连续比较n个成本ccur_bilatbest(id),则可以更快速地指定最低成本ccur_bilatbest(id)。
此外,例如,候选选择部61可以被配置成使得并行设置多个成本运算电路,各自用于从起点的多个候选(预测运动矢量候选)之中选择起点的一个候选。
在这种情况下,例如,在一个成本运算电路中,执行用于计算关于起点的一个候选的成本的处理。
特别地,例如,关于起点的一个候选,成本运算电路确定由作为起点的候选的相邻运动矢量指示的标准参考图片上的块和与由相邻运动矢量指示的标准参考图片不同的参考图片上的块之间的差,并且根据该差来计算成本。
此处,起点的候选的成本指示起点的候选的预测运动矢量相似度,即,预测运动矢量候选的预测运动矢量相似度,并且成本的值具有随着参考图片上的块之间的差减小而减小的值。
在候选选择部61中,通过多个成本运算电路并行地执行用于计算起点的候选的成本的处理。
候选选择部61从起点的所有候选之中选择指示最低成本的起点的一个候选。
在这种情况下,运动矢量导出部62仅关于由候选选择部61选择的起点的一个候选,执行用于导出预测运动矢量mvbilat(id)和成本ccur_bilat(id)的处理,并且将作为处理的结果获得的预测运动矢量mvbilatbest(id)确定为编码目标的cu的最终预测运动矢量。因此,在这种情况下,运动矢量导出部62包括信号匹配处理电路就足够了。
在以这种方式在候选选择部61中并行设置多个成本运算电路的情况下,可以并行地执行用于确定起点的候选的成本的处理,并且因此,可以更快速地获得运动信息。
不仅在双向匹配处理部52中而且在双向匹配处理部54中,候选选择部63可以包括并行设置的多个成本运算电路,或运动矢量导出部64可以包括并行设置的多个匹配处理电路。
此外,例如,在运动矢量导出部62中设置的多个匹配处理电路中的每一个和在运动矢量导出部64中设置的多个匹配处理电路中的每一个可以彼此串联连接。在这种情况下,候选选择部63确定与由运动矢量导出部64的匹配处理电路获得的成本之中的最低成本对应的预测运动矢量作为编码目标的子块的最终预测运动矢量。
应当注意,以下描述继续采用下述情况作为示例:在运动矢量导出部62中彼此并行设置多个匹配电路,而在候选选择部61、候选选择部63和运动矢量导出部64中的任何一个中不彼此并行设置电路。
此外,例如,预测部30具有图9所示的配置,作为用于通过模板匹配来导出运动信息的配置。
特别地,在图9所示的示例中,预测部30包括候选获取部91、模板匹配处理部92、子块候选获取部93和模板匹配处理部94。
候选获取部91至模板匹配处理部94中的候选获取部91和模板匹配处理部92是导出关于编码目标的cu(ctu)的运动信息的处理块。相比之下,子块候选获取部93和模板匹配处理部94是导出关于编码目标的子块的运动信息的处理块。
候选获取部91执行与候选获取部51的操作类似的操作以生成候选列表,并且获取由候选列表指示的预测运动矢量候选,即,周边区域的相邻运动矢量,并且将由候选列表指示的预测运动矢量候选提供至模板匹配处理部92。
模板匹配处理部92包括候选选择部101和运动矢量导出部102。
候选选择部101从由候选列表指示的多个预测运动矢量候选(起点的候选)之中选择一个候选。
运动矢量导出部102通过确定预测运动矢量候选作为起点的候选的模板匹配来确定编码目标的cu的预测运动矢量。
特别地,运动矢量导出部102将由作为起点的候选的相邻运动矢量确定的参考图片上的区域确定为搜索范围,并将搜索范围中的预定位置处的区域确定为模板。然后,运动矢量导出部102通过模板匹配方法计算参考图片的模板和与编码目标的cu相邻的模板之间的差,并且计算可以根据计算结果确定的成本。例如,关于模板确定的成本具有随着模板之间的差的值的减小而减小的值。
应当注意,在以下描述中,指示起点的候选的索引由id来表示,并且关于参考图片的预定模板由索引id指示的起点的候选的成本被表示为成本ccur_temp(id)。此外,关于针对由索引id指示的起点的候选获得的参考图片的模板的预测运动矢量也被表示为预测运动矢量mvtemp(id)。
运动矢量导出部102在搜索范围中连续移动模板的位置的同时,使用所有区域作为模板来计算预测运动矢量mvtemp(id)和成本ccur_temp(id)。
此外,关于起点的一个候选最低的成本ccur_temp(id)也被称为成本ccur_tempbest(id),并且与成本ccur_tempbest(id)对应的预测运动矢量mvtemp(id)也被称为预测运动矢量mvtempbest(id)。运动矢量导出部102通过块匹配来计算预测运动矢量mvtempbest(id)和成本ccur_tempbest(id)。
例如,假设在运动矢量导出部102中并行设置用于关于起点的一个候选通过模板匹配来计算预测运动矢量mvtempbest(id)和成本ccur_tempbest(id)的多个匹配处理电路。
在这种情况下,由匹配处理电路对起点的候选并行地执行处理,并且由候选选择部101从关于起点的所有候选针对各个参考图片计算的预测运动矢量mvtempbest(id)之中选择指示最低成本ccur_tempbest(id)的预测运动矢量mvtempbest(id),作为编码目标的cu的预测运动矢量。
此外,在运动矢量导出部102中,根据场合需要,计算最终获得的预测运动矢量与作为预测运动矢量候选并且已被用于导出预测运动矢量的相邻运动矢量之间的差,作为编码目标的cu的差分运动矢量。
模板匹配处理部92将编码目标的cu的预测运动矢量提供至子块候选获取部93。
子块候选获取部93使用来自模板匹配处理部92的预测运动矢量执行与子块候选获取部53的操作类似的操作,以生成子块候选列表。
子块候选获取部93获取由生成的子块候选列表指示的预测运动矢量候选(即,周边区域的相邻运动矢量)以及从模板匹配处理部92提供的预测运动矢量,并且将由生成的子块候选列表指示的预测运动矢量候选和从模板匹配处理部92提供的预测运动矢量提供至模板匹配处理部94。
模板匹配处理部94基于从子块候选获取部93提供的相邻运动矢量和预测运动矢量,执行与模板匹配处理部92的处理类似的处理,以导出编码目标的子块的预测运动矢量。
模板匹配处理部94包括候选选择部103和运动矢量导出部104,并且候选选择部103和运动矢量导出部104分别对应于候选选择部101和运动矢量导出部102。
此外,在运动矢量导出部104中,根据场合需要,将最终获得的预测运动矢量与已经用于导出预测运动矢量的预测运动矢量候选之间的差计算为编码目标的子块的差分运动矢量。
以这种方式,在预测部30中,获得由模板匹配处理部92导出的预测运动矢量或差分运动矢量作为编码目标的cu的运动信息。此外,获得由模板匹配处理部94导出的预测运动矢量或差分运动矢量作为编码目标的子块的运动信息。
应当注意,与用于通过双向匹配导出运动信息的配置的情况类似,预测部30可以被配置成使得,在模板匹配处理部92或模板匹配处理部94中的至少之一中,可以并行地执行关于参考图片或起点的若干候选的预测运动矢量导出处理。
作为示例,在模板匹配处理部92的运动矢量导出部102被配置成使得其可以并行地执行模板匹配的情况下,运动矢量导出部102包括并行设置的多个匹配电路。
例如,假设在运动矢量导出部102中设置n个匹配处理电路。在这种情况下,n个匹配电路中的每一个是运算处理电路,该运算处理电路关于给定的起点的候选通过模板匹配来导出成本ccur_tempbest(id)和预测运动矢量mvtempbest(id)。
现在,例如,假设由候选列表指示的预测运动矢量候选的数量,即起点的候选者的数量,是n。在这种情况下,在运动矢量导出部102中,可以由n个匹配处理电路关于参考图片的起点的n个候选并行地执行用于导出预测运动矢量mvtempbest(id)的运算,并且可以更快速地获得运动信息。
例如,在每个匹配处理电路中获得关于起点的每个候选的预测运动矢量mvtempbest(id)的成本ccur_tempbest(id)的情况下,候选选择部101确定与成本ccur_tempbest(id)之中最低的成本ccur_tempbest(id)对应的预测运动矢量mvtempbest(id),作为编码目标的cu的最终预测运动矢量。
此外,例如,类似于候选选择部61的情况,可以在候选选择部101中并行设置多个成本运算电路。
应当注意,在运动矢量导出部102中并行设置多个匹配处理电路而在候选选择部101、候选选择部103和运动矢量导出部104中的任何一个中不并行设置电路的情况下继续以下描述。
<图像编码处理的描述>
现在,描述上述图像编码装置11的操作。
首先,参照图10的流程图描述由图像编码装置11进行的图像编码处理。应当注意,以cu为单位或以子块为单位执行该图像编码处理。
在步骤s11处,控制部21基于来自外部的输入等设置编码参数,并且将设置的编码参数提供至图像编码装置11的相关部件。
在步骤s11处,例如,如上所述的这样的头部信息hinfo、预测信息pinfo、变换信息tinfo等被设置为编码参数。
在步骤s12处,预测部30基于从控制部21提供的预测信息pinfo的模式信息pred_mode_flag来判定是否要执行帧间预测处理。例如,在模式信息pred_mode_flag的值指示帧间预测处理的情况下,在步骤s12处判定要执行帧间预测处理。
在步骤s12处判定要执行帧间预测处理的情况下,在步骤s13处,预测部30判定从控制部21提供的预测信息pinfo的merge_flag的值是否为1,即,是否满足merge_flag=1。
在步骤s13处判定merge_flag=1,即,判定可应用模式是合并模式的情况下,在步骤s14处,预测部30判定从控制部21提供的预测信息pinfo的fruc_flag的值是否为1,即,是否满足fruc_flag=1。
在步骤s14处判定满足fruc_flag=1,即,可应用模式是fruc模式的情况下,处理进行到步骤s15。
在步骤s15处,图像编码装置11的部件执行用于在fruc合并模式下对编码目标的图像i(当前块)进行编码的编码处理,并且然后图像处理过程随之结束。
在fruc合并模式下的编码处理中,通过fruc模式导出运动信息,并且生成放置有预测信息pinfo、量化变换系数级别level等的编码流。
此时生成的预测信息pinfo包括例如merge_flag、fruc_flag、fruc_mode_flag和参考图像指定信息,但是不包括运动矢量信息。此外,当图像i(即,当前块)是p切片的块时,预测信息pinfo包括fruc_mode_flag。
此外,尽管此处省略了描述,但是在跳过fruc模式的情况下,执行与在步骤s15处执行的fruc合并模式下的编码处理类似的处理,使得生成并输出编码流。然而,在跳过fruc模式下,编码流不具有放置在其中的量化变换系数级别level。
另一方面,在步骤s14处判定不满足fruc_flag=1的情况下,换句话说,在满足fruc_flag=0并且可应用模式不是fruc模式的情况下,处理进行到步骤s16。
在步骤s16处,图像编码装置11的部件执行用于在amvp合并模式下对编码目标的图像i进行编码的编码处理,并且图像编码处理随之结束。
应当注意,在amvp模式下的编码处理中,预测部30在amvp模式下执行运动补偿并且执行帧间预测处理。然后,使用通过帧间预测处理获得的预测图像p来编码当前块,并且生成放置有预测信息pinfo、量化变换系数级别level等的编码流。
此外,在步骤s13处判定不满足fruc_flag=1,即,满足fruc_flag=0并且可应用模式是非合并模式的情况下,处理进行到步骤s17。
在步骤s17处,预测部30判定从控制部21提供的预测信息pinfo的fruc_flag的值是否为1,即,是否满足fruc_flag=1。
在步骤s17处判定满足fruc_flag=1,即,可应用模式是fruc模式的情况下,处理进行到步骤s18。
在步骤s18处,图像编码装置11的部件执行用于在amvp模式下对编码目标的图像i进行编码的编码处理,并且图像编码处理随之结束。
应当注意,在frucamvp模式下的编码处理中,执行与fruc合并模式下的编码处理类似的处理,以生成编码流。在这种情况下,通过fruc模式导出运动信息,并且生成放置有预测信息pinfo、量化变换系数级别level等的编码流。
此外,预测信息pinfo包括例如merge_flag、fruc_flag、fruc_mode_flag、作为运动矢量信息的差分运动矢量以及参考图像指定信息。然而,在当前块是p切片的块时,预测信息pinfo不包括fruc_mode_flag。
另一方面,在步骤s17处判定不满足fruc_flag=1的情况下,即,在满足fruc_flag=0并且可应用模式不是fruc模式的情况下,处理进行到步骤s19。
在步骤s19处,图像编码装置11的部件执行用于在amvp模式下对编码目标的图像i进行编码的编码处理,并且图像编码处理随之结束。
应当注意,在amvp模式下的编码处理中,预测部30在amvp模式下执行运动补偿以执行帧间预测处理。然后,通过帧间预测处理获得的预测图像p用于对当前块进行编码,以生成放置有预测信息pinfo、量化变换系数级别level、运动矢量信息等的编码流。
另一方面,在步骤s12处判定不执行帧间预测处理的情况下,即,在判定要执行帧内预测处理的情况下,处理进行到步骤s20。
在步骤s20处,图像编码装置11的部件执行用于在帧内预测模式下对编码目标的图像i进行编码的帧内编码处理,并且图像编码处理随之结束。
在帧内编码处理中,预测部30在帧内预测模式下生成预测图像p。然后,预测图像p用于对当前块进行编码以生成放置有预测信息pinfo、量化变换系数级别level等的编码流。
图像编码装置11对响应于编码参数而输入的图像进行编码,并且以如上所述的方式输出通过编码获得的编码流。通过以适当的模式编码图像,可以提高编码效率。
<帧间预测处理模式设置处理的描述>
现在,参照图11的流程图描述与图10的步骤s11的处理对应的帧间预测处理模式设置处理。
该帧间预测处理模式设置处理是与帧间预测处理模式有关的图10的步骤s11处的处理的一部分的处理。特别地,帧间预测处理模式设置处理是确定merge_flag和fruc_flag的值的一部分的处理。此外以cu为单位或以子块为单位执行帧间预测处理模式设置处理。
在步骤s51处,控制部21控制图像编码装置11的部件以在fruc合并模式下执行对编码目标的块的编码处理,以计算rd成本jfruc_mrg。
应当注意,rd成本是基于作为编码结果获得的生成比特量(代码量)、解码图像的sse(误差平方和)等来计算的。
在步骤s52处,控制部21控制图像编码装置11的部件以在amvp合并模式下执行对编码目标的块的编码处理,以计算rd成本jmrg。
在步骤s53处,控制部21控制图像编码装置11的部件以在frucamvp模式下执行对编码目标的块的编码处理,以计算rd成本jfruc_amvp。
在步骤s54处,控制部21控制图像编码装置11的部件以在amvp模式下执行对编码目标的块的编码处理,以计算rd成本jamvp。
在步骤s55处,控制部21判定通过步骤s51至步骤s54处的处理获得的rd成本jfruc_mrg、rd成本jmrg、rd成本jfruc_amvp和rd成本jamvp之中的rd成本jfruc_mrg是否是最低。
在步骤s55处判定rd成本jfruc_mrg是最低的情况下,处理进行到步骤s56。在这种情况下,作为当前块的帧间预测模式,选择fruc合并模式,并且在上文参照图10描述的图像编码处理中,执行步骤s15处的编码处理以生成编码流。
在步骤s56处,控制部21分别将merge_flag和fruc_flag设置为merge_flag=1和fruc_flag=1。换句话说,控制部21将作为预测信息pinfo的merge_flag的值设置为1,并且将fruc_flag的值设置为1。
在步骤s57处,控制部21基于fruc模式下的运动信息的导出结果生成fruc_mode_flag,并且帧间预测处理模式设置处理随之结束。然而,在当前块是p切片的块时,不执行步骤s57处的处理并且不生成fruc_mode_flag。
例如,在fruc模式下进行编码时,在采用双向匹配方法来导出运动信息时的rd成本jbilateral低于采用模板匹配方法来导出运动信息时的rd成本jtemplate的情况下,fruc_mode_flag的值被设置成1。换句话说,在步骤s57处,生成值为1的fruc_mode_flag。另一方面,在rd成本jbilateral等于或高于rd成本jtemplate的情况下,fruc_mode_flag的值被设置为0。
此外,在步骤s55处判定rd成本jfruc_mrg不是最低的情况下,处理进行到步骤s58。在步骤s58处,控制部21判定在rd成本jfruc_mrg、rd成本jmrg、rd成本jfruc_amvp和rd成本jamvp之中rd成本jmrg是否最低。
在步骤s58处判定rd成本jmrg是最低的情况下,处理进行到步骤s59。在这种情况下,作为当前块的帧间预测模式,选择amvp合并模式,并且在上文参照图10描述的图像编码处理中,执行步骤s16处的编码处理以生成编码流。
在步骤s59处,控制部21分别将merge_flag和fruc_flag设置为merge_flag=1和fruc_flag=0,并且帧间预测处理模式设置处理随之结束。
此外,在步骤s58处判定rd成本jmrg不是最低的情况下,处理进行到步骤s60。
在步骤s60处,控制部21判定rd成本jfruc_amvp在rd成本jfruc_mrg、rd成本jmrg、rd成本jfruc_amvp和rd成本jamvp之中是否为最低的。
在步骤s60处判定rd成本jfruc_amvp最低的情况下,控制部21在步骤s61处将merge_flag和fruc_flag设置为merge_flag=0和fruc_flag=1。
在这种情况下,作为当前块的帧间预测模式,选择frucamvp模式,并且在上文参照图10描述的图像编码处理中,执行步骤s18处的编码处理以生成编码流。
在步骤s62处,控制部21基于fruc模式下的运动信息的导出的结果生成fruc_mode_flag,并且帧间预测处理模式设置处理随之结束。然而,在当前块是p切片的块的情况下,不执行步骤s62处的处理,并且不生成fruc_merge_flag。
应当注意,在步骤s62处,执行与步骤s57类似的处理。
另一方面,在步骤s60处判定rd成本jfruc_amvp不是最低的情况下,即,在rd成本jamvp是最低的情况下,处理进行到步骤s63。在这种情况下,作为当前块的帧间预测模式,选择amvp模式,并且在上文参照图10描述的图像编码处理中,执行步骤s19处的编码处理以生成编码流。
在步骤s63处,控制部21分别将merge_flag和fruc_flag设置为merge_flag=0和fruc_flag=0,并且帧间预测处理模式设置处理随之结束。
图像编码装置11计算各个模式中的rd成本,选择指示最低rd成本的模式,并且以如上所述的方式响应于选择的结果来生成merge_flag和fruc_flag。由此,可以提高编码效率。
<fruc合并模式编码处理的描述>
现在,参照图12的流程图描述由图像编码装置11进行的fruc合并模式编码处理。应当注意,以cu为单位或以子块为单位执行该fruc合并模式编码处理。
在步骤s91处,预测部30基于从控制部21提供的预测信息pinfo等判定处理目标的当前块(即,作为编码目标的图像i的cu或子块)是否是p切片的块。
在步骤s91处判定当前块是p切片的块的情况下,处理进行到步骤s92。在当前块是p切片的块的情况下,仅一个参考图片可用于p切片并且在导出运动信息时不能执行双向匹配,并且因此,作为运动信息的导出方法,自动采用(选择)模板匹配。
在步骤s92处,预测部30通过模板匹配方法导出当前块的运动信息。例如,预测部30基于从控制部21提供的预测信息pinfo等,从帧存储器29中读出编码目标的图像(帧)和由参考图像指定信息指示的参考图片,并且使用该图片通过模板匹配方法来导出当前块的运动信息。
如果执行步骤s92处的处理以导出运动信息,则此后处理进行到步骤s97。
另一方面,在步骤s91处判定当前块不是p切片的块的情况下,处理进行到步骤s93。
在步骤s93处,预测部30通过模板匹配方法导出当前块的运动信息,并且计算在采用模板匹配方法时的rd成本jtemplate。
例如,预测部30基于从控制部21提供的预测信息pinfo等,从帧存储器29中读出编码目标的图片(帧)和由参考图像指定信息指示的参考图片。此外,预测部30使用读出的图片来通过模板匹配导出当前块的运动信息,并且还计算rd成本jtemplate。
在步骤s94处,预测部30通过双向匹配方法导出当前块的运动信息,并且计算在采用双向匹配方法时的rd成本jbilateral。
例如,预测部30从帧存储器29中读出从控制部21提供的预测信息pinfo的参考图像指定信息所指示的两个参考图片。此外,预测部30使用读出的参考图片来通过双向匹配方法导出当前块的运动信息并且还计算rd成本jbilateral。
在步骤s95处,预测部30判定rd成本jbilateral是否低于rd成本jtemplate。
在步骤s95处判定rd成本jbilateral低于rd成本jtemplate的情况下,预测部30在步骤s96处基于通过双向匹配方法导出的运动信息来生成预测图像,并且将预测图像提供至运算部22和运算部28。
例如,预测部30将通过使用由两个单独的参考图片中的运动信息(预测运动矢量)指示的块的运动补偿生成的图像确定为预测图像p。
在生成预测图像之后,处理进行到步骤s98。
另一方面,如果在步骤s95处判定rd成本jbilateral不低于rd成本jtemplate或者在执行步骤s92处的处理之后,则在此后执行步骤s97处的处理。
特别地,在步骤s97处,预测部30基于通过模板匹配导出的运动信息生成预测图像,并且将预测图像提供至运算部22和运算部28。例如,预测部30将由参考图片中的运动信息(预测运动矢量)指示的块的图像确定为预测图像p。
在生成预测图像之后,处理进行到步骤s98。
在执行步骤s96或步骤s97的处理以生成预测图像p之后,执行步骤s98处的处理。
在步骤s98处,运算部22将提供的图像i与从预测部30提供的预测图像p之间的差算术地运算作为预测残差d,并且将预测残差d提供至变换部23。
在步骤s99处,变换部23基于从控制部21提供的变换信息tinfo对从运算部22提供的预测残差d执行正交变换等,并且将所产生的变换系数coeff提供至量化部24。
在步骤s100处,量化部24基于从控制部21提供的变换信息tinfo来缩放(量化)从变换单元23提供的变换系数coeff,以导出量化变换系数级别level。量化部24将量化变换系数级别level提供至编码部25和去量化部26。
在步骤s101处,去量化部26基于从控制部21提供的变换信息tinfo,利用与步骤s100处的量化的特性对应的特性对从量化部24提供的量化变换系数级别level进行量化。去量化部26将通过去量化获得的变换系数coeff_iq提供至逆变换部27。
在步骤s102处,逆变换部27基于从控制部21提供的变换信息tinfo,通过与步骤s99处的正交变换等对应的方法对从去量化部26提供的变换系数coeff_iq执行逆正交变换等,以导出预测残差d'。逆变换部27将获得的预测残差d'提供至运算部28。
在步骤s103处,运算部28将从逆变换部27提供的预测残差d'和从预测部30提供的预测图像p相加,以生成局部解码图像rec,并且将解码图像rec提供至帧存储器29。
在步骤s104处,帧存储器29使用从运算部28提供的局部解码图像rec以图片为单位重构解码图像,并且将解码图像保存在帧存储器29中的缓冲器中。
在步骤s105处,编码部25通过预定方法对通过图10的步骤s11处的处理设置并且从控制部21提供的编码参数以及通过步骤s100处的处理从量化部24提供的量化变换系数级别level进行编码。
编码部25复用通过编码获得的编码数据以形成编码流(比特流),并且将编码流输出至图像编码装置11的外部,从而结束fruc合并模式编码处理。
在这种情况下,在编码流中,例如,放置有通过对merge_flag、fruc_flag、fruc_mode_flag、参考图像指定信息等进行编码获得的数据、通过对量化变换系数级别level等进行编码获得的数据。以这种方式获得的编码流例如通过传输线或记录介质被传输到解码侧。
应当注意,上述fruc合并模式编码处理基本上对应于图10的步骤s15的处理。然而,更特别地,在步骤s15的时间点处,已经确定是要执行模板匹配还是要执行双向匹配。因此,根据由预测信息pinfo指示的方法导出运动信息,并且在步骤s96或s97处基于获得的运动信息来生成预测图像p。
此外,图12的步骤s91至步骤s95处的处理对应于图10的步骤s11处的处理,特别是对应于步骤s11处的处理中的图11的步骤s51处的处理。
特别地,如果在图11的步骤s51处从控制部21向预测部30发出计算rd成本jfruc_mrg的指令,则执行步骤s91至步骤s95处的处理。然后,例如,预测部30将rd成本jtemplate和rd成本jbilateral中较低的一个rd成本作为rd成本jfruc_mrg输出到控制部21。应当注意,在当前块是p切片的块时,不执行rd成本jbilateral的计算,并且将rd成本jtemplate输出作为rd成本jfruc_mrg。
此外,类似于图10的步骤s15的情况,同样在图10的步骤s18处,执行与上文中参照图12描述的fruc合并模式编码处理类似的处理。特别地,在步骤s15的情况与步骤s18的情况之间,要在图12的步骤s105处编码的编码参数不同。
图像编码装置11通过fruc模式导出运动信息,并且以如上所述的方式对编码目标的块进行编码。通过利用fruc使得以这种方式在解码侧导出运动信息,可以减少要放置到编码流中的运动矢量信息(运动信息),并且可以提高编码效率。
<通过模板匹配进行的运动信息导出处理的描述>
此处,更详细地描述用于从对应于图12的步骤s93或步骤s92的处理内导出运动信息的处理。特别地,在下文中,参照图13的流程图描述由预测部30执行的通过模板匹配的运动信息导出处理。
在步骤s131处,候选获取部91通过获取起点的候选来生成候选列表。
特别地,候选获取部91收集周边区域作为起点的候选以生成候选列表。此外,候选获取部91获取由候选列表指示的周边区域的参考图片的相邻运动矢量,并且将相邻运动矢量提供至模板匹配处理部92。
在步骤s132处,关于起点中的每一个,运动矢量导出部102使用从候选获取部91提供的相邻运动矢量作为起点,通过模板匹配来计算编码目标的cu的预测运动矢量mvtempbest(id)和成本ccur_tempbest(id)。在这种情况下,使用作为解码图像的编码目标的图片和从帧存储器29读出的参考图片来执行模板匹配。
应当注意,在步骤s132处,通过如上文所述的多个匹配处理电路并行地执行用于计算关于多个起点的预测运动矢量和成本的处理。因此,可以更快速地获得运动信息。
在步骤s133处,候选选择部101从在步骤s132处关于每个起点获得的预测运动矢量mvtempbest(id)之中选择指示最低成本ccur_tempbest(id)的预测运动矢量mvtempbest(id),作为最终预测运动矢量。
模板匹配处理部92将通过选择获得的最终预测运动矢量提供至子块候选获取部93。
例如,在以cu为单位执行上文参照图12描述的fruc合并模式编码处理的情况下,在步骤s133处最终获得的预测运动矢量被用作运动信息以执行图12的步骤s97处的处理。
另一方面,在差分运动矢量被放置在编码流中的情况下,例如,在当前模式是frucamvp模式等的情况下,也计算差分运动矢量。在刚刚描述的这种情况下,运动矢量导出部102计算在步骤s133处获得的最终预测运动矢量与作为已经用于导出预测运动矢量的预测运动矢量候选的相邻运动矢量之间的差,作为编码目标的cu的差分运动矢量。
在步骤s134处,子块候选获取部93获取关于编码目标的子块的起点的候选,以生成子块候选列表。特别地,子块候选获取部93基于针对编码目标的子块预先确定的编码目标的cu中的周边区域和从模板匹配处理部92提供的预测运动矢量来生成子块候选列表。
此外,子块候选获取部93获取由子块候选列表指示的预测运动矢量候选(即,周边区域的相邻运动矢量)以及从模板匹配处理部92提供的预测运动矢量,并且将所获取的矢量提供至模板匹配处理部94。
在步骤s135处,候选选择部103从所有参考图片的起点的所有候选之中选择起点的一个候选。
特别地,候选选择部103关于起点的每个候选,确定由作为起点的候选的相邻运动矢量或预测运动矢量指示的参考图片上的模板和与编码目标的子块相邻的模板之间的差。然后,候选选择部103基于所确定的差来计算起点的候选的成本。
此处,使用编码目标的图片和作为从帧存储器29读出的解码图像的参考图片来确定差。
候选选择部103从起点的所有候选之中选择指示最低成本的起点的候选。
在步骤s136处,关于在步骤s135处选择的起点的候选,运动矢量导出部104通过模板匹配来计算编码目标的子块的预测运动矢量和预测运动矢量的成本。
特别地,运动矢量导出部104在由作为起点的候选的相邻运动矢量或预测运动矢量确定的参考图像上的搜索范围中使参考图片的模板的位置连续地移位的同时执行块匹配。
通过块匹配,关于参考图片上的每个位置处的模板,确定模板和与编码目标的图片上的子块相邻的模板之间的差,以计算成本和预测运动矢量。此外,在这种情况下,编码目标的图片和作为从帧存储器29读出的解码图像的参考图片用于执行块匹配。
在步骤s137处,运动矢量导出部104从在步骤s136处计算的模板的各个位置处的预测运动矢量之中选择指示最低成本的预测运动矢量作为编码目标的子块的最终预测运动矢量。运动矢量导出部104输出以这种方式获得的预测运动矢量作为子块的运动信息,从而结束通过模板匹配进行的运动信息导出处理。
例如,在以子块为单位执行上文参照图12描述的fruc合并模式编码处理的情况下,在步骤s137处最终获得的预测运动矢量被用作运动信息,以执行图12的步骤s97处的处理。
另一方面,在差分运动矢量被放置到编码流中的情况下,例如,在可应用模式是frucamvp模式的情况下,也计算差分运动矢量。在刚刚描述的这种情况下,运动矢量导出部104计算在步骤s137处获得的最终预测运动矢量与已经用于导出预测运动矢量的预测运动矢量候选之间的差,作为编码目标的子块的差分运动矢量。
预测部30以如上所述的方式通过模板匹配方法来导出运动信息。通过以这种方式在导出运动信息时关于起点的多个候选并行地执行用于计算预测运动矢量的处理,可以更快速地获得运动信息。
<通过双向匹配进行的运动信息导出处理的描述>
此外,更详细地描述了用于从对应于图12的步骤s94的处理内导出运动信息的处理。特别地,参照图14的流程图描述由预测部30执行的通过双向匹配的运动信息导出处理。
在通过双向匹配进行的运动信息导出处理中,由候选获取部51执行步骤s161处的处理,并且由运动矢量导出部62执行步骤s162处的处理,之后由候选选择部61执行步骤s163处的处理。
此外,由子块候选获取部53执行步骤s164处的处理,并且由候选选择部63执行步骤s165处的处理,之后由运动矢量导出部64执行步骤s166和步骤s167处的处理。
应当注意,由于步骤s161至步骤167处的处理分别与图13的步骤s131至步骤s137处的处理类似,因此省略对步骤s161至步骤167处的处理的描述。
然而,在步骤s162和步骤s166处,不是通过模板匹配而是通过双向匹配来执行预测运动矢量和成本的计算。
然后,在步骤s163处获得的预测运动矢量或在步骤s167处获得的预测运动矢量被用作图12的步骤s96处的处理中的运动信息。此外,在步骤s163或步骤s167处,根据场合需要,还计算差分运动矢量。
预测部30以如上所述的方式通过双向匹配方法来导出运动信息。通过在导出运动信息时以这种方式关于起点的多个候选并行地执行用于计算预测运动矢量的处理,可以更快速地获得运动信息。
<图像解码装置的描述>
现在,描述作为对从图2所示的图像编码装置11输出的编码流进行解码并且应用本技术的图像处理装置的图像解码装置。
图15是示出应用本技术的图像解码装置的实施方式的配置的示例的视图。
图15所示的图像解码装置201通过与图像编码装置11的编码方法对应的解码方法,对由图像编码装置11生成的编码流进行解码。例如,图像解码装置201将hevc提出的技术或jvet提出的技术并入。
应当注意,图15示出了处理部、数据流等中的主要部分,并且图15所示的那些不是这样的处理部、数据流等的全部。特别地,可以在图像解码装置201中存在图15中未示出为块的处理部,或者可以存在图15中未示出为箭头标记等的处理或数据流。
图像解码装置201包括解码部211、去量化部212、逆变换部213、运算部214、帧存储器215和预测部216。
图像解码装置201针对输入的编码流的每个cu或每个子块执行解码。
解码部211通过与编码部25的编码方法对应的预定解码方法对向解码部211提供的编码流进行解码。例如,解码部211根据语法表的定义,对来自编码流的比特串的编码参数(例如,头部信息hinfo、预测信息pinfo、变换信息tinfo等)和量化变换系数级别level进行解码。
例如,解码部211基于编码参数中包括的分割标志来划分cu,并且将与各个量化变换系数级别level对应的cu或子块连续地设置为解码目标的块。
此外,解码部211将通过解码获得的编码参数提供至图像解码装置201的块。例如,解码部211将预测信息pinfo提供至预测部216,将变换信息tinfo提供至去量化部212和逆变换部213,并且将头部信息hinfo提供至关联块。此外,解码部211将每个量化变换系数级别level提供至去量化部212。
去量化部212基于从解码部211提供的变换信息tinfo来对从解码部211提供的量化变换系数级别level的值进行缩放(去量化),以导出变换系数coeff_iq。该去量化是对由图像编码装置11的量化部24执行的量化的逆处理。应当注意,去量化部26执行与由去量化部212进行的去量化类似的去量化。去量化部212将如此获得的变换系数coeff_iq提供至逆变换部213。
逆变换部213基于从解码部211提供的变换信息tinfo等对从去量化部212提供的变换系数coeff_iq执行逆正交变换等并且将作为逆正交变换的结果获得的预测残差d'提供至运算部214。
由逆变换部213执行的逆正交变换是对由图像编码装置11的变换部23执行的正交变换的处理的逆处理。应当注意,逆变换部27执行与逆变换部213进行的逆正交变换类似的逆正交变换。
运算部214将从逆变换部213提供的预测残差d'和与预测残差d'对应的预测图像p相加,以导出局部解码图像rec。
运算部214使用获得的局部解码图像rec以图片为单位重构解码图像并且将所产生的解码图像输出到外部。此外,运算部214还向帧存储器215提供局部解码图像rec。
帧存储器215使用从运算部214提供的局部解码图像rec来针对图片的每个单元重构解码图像,并且将解码图像存储到帧存储器215中的缓冲器中。
此外,帧存储器215从缓冲器读出由预测部216指定的解码图像作为参考图像(参考图片)并且将解码图像提供至预测部216。此外,帧存储器215可以将与解码图像的生成有关的头部信息hinfo、预测信息pinfo、变换信息tinfo等存储到帧存储器215中的缓冲器中。
预测部216基于预测信息pinfo的模式信息pred_mode_flag,获取在帧存储器215中存储并且指示与解码目标的块的时间相同的时间的解码图像作为参考图像。然后,预测部216使用参考图像针对解码目标的块在由帧内预测模式信息指示的帧内预测模式下执行帧内预测处理。
此外,预测部216基于预测信息pinfo的模式信息pred_mode_flag和参考图像指定信息,获取在帧存储器215中存储并且指示与解码目标的块的时间相同的时间的解码图像,并且获取指示与解码目标的块的时间不同的时间的解码图像,作为参考图像。
与图像编码装置11的预测部30类似,预测部216基于merge_flag、fruc_flag、fruc_mode_flag、运动矢量信息等,在通过merge_flag和fruc_flag确定的模式下使用从帧存储器215获取的图像来执行帧间预测处理。
预测部216将作为帧内预测处理或帧间预测处理的结果生成的解码目标的块的预测图像p提供至运算部214。
<预测部的配置>
此外,与图像编码装置11的预测部30的情况类似,图像解码装置201的预测部216具有用于通过双向匹配或模板匹配来导出运动信息的配置。
例如,预测部216具有图16所示的配置作为用于通过双向匹配导出运动信息的配置。
特别地,在图16所示的示例中,预测部216包括候选获取部241、双向匹配处理部242、子块候选获取部243和双向匹配处理部244。
此外,双向匹配处理部242包括候选选择部251和运动矢量导出部252,并且双向匹配处理部244包括候选选择部253和运动矢量导出部254。
应当注意,候选获取部241至双向匹配处理部244分别对应于图7所示的候选获取部51至双向匹配处理部54,并且分别具有与候选获取部51至双向匹配处理部54的配置类似的配置并且执行与候选获取部51至双向匹配处理部54的操作类似的操作,并且因此,省略对候选获取部241至双向匹配处理部244的描述。
此外,候选选择部251至运动矢量导出部254被类似地配置并且分别与图7所示的候选选择部61至运动矢量导出部64类似地操作,省略对候选选择部251至运动矢量导出部254的描述。
此外,例如,预测部216具有图17所示的配置,作为用于通过模板匹配来导出运动信息的配置。
特别地,在图17所示的示例中,预测部216包括候选获取部301、模板匹配处理部302、子块候选获取部303和模板匹配处理部304。
模板匹配处理部302包括候选选择部311和运动矢量导出部312,并且模板匹配处理部304包括候选选择部313和运动矢量导出部314。
应当注意,候选获取部301至模板匹配处理部304分别对应于图9所示的候选获取部91至模板匹配处理部94,并且分别具有与候选获取部91至模板匹配处理部94的配置类似的配置并且执行与候选获取部91至模板匹配处理部94的操作类似的操作,因此,省略候选获取部301至模板匹配处理部304的描述。
此外,候选选择部311至运动矢量导出部314分别具有与如图9所示的候选选择部101至运动矢量导出部104的配置类似的配置并且执行与候选选择部101至运动矢量导出部104的操作类似的操作,因此,省略对候选选择部311至运动矢量导出部314的描述。
<图像解码处理的描述>
现在,描述图像解码装置201的操作。
首先,参照图18的流程图描述图像解码装置201进行的图像解码处理。
在步骤s211处,解码部211对提供至图像解码装置201的编码流进行解码,以获得编码参数和量化变换系数级别level。
解码部211将编码参数提供至图像解码装置201的部件,并且将量化变换系数级别level提供至去量化部212。
在步骤s212处,解码部211基于编码参数中包括的分割标志来划分ctu,并且将与每个量化变换系数级别level对应的块(即,cu或子块)设置为解码目标的块。应当注意,对解码目标的每个块执行后续步骤s213至步骤s221的处理。
在确定了解码目标的块之后,由预测部216基于从解码部211输出的预测信息pinfo来执行步骤s213至步骤s215的处理,以确定用于解码的模式。应当注意,除了步骤s213至步骤s215处的处理不是由预测部30执行而是由预测部216执行以外,步骤s213至步骤s215处的处理分别类似于图10的步骤s12至步骤s14处的处理,因此,省略对步骤s213至步骤s215处的处理的描述。
在步骤s215处判定满足fruc_flag=1的情况下,即,在可应用模式是fruc模式的情况下,处理进行到步骤s216。
在步骤s216处,图像解码装置201的部件执行用于在fruc合并模式下对解码目标的块(当前块)的图像进行解码的解码处理,并且图像解码处理随之结束。
在fruc合并模式下的解码处理中,通过fruc模式导出运动信息,并且通过使用所产生的运动信息执行帧间预测处理生成的预测图像p被用来生成解码目标的块的图像。
相比之下,在步骤s215处判定不满足fruc_flag=1的情况下,即,在满足fruc_flag=0并且可应用模式不是fruc模式的情况下,处理进行到步骤s217。
在步骤s217处,图像解码装置201的部件执行用于在amvp合并模式下对解码目标的块的图像进行解码的解码处理,并且图像解码处理随之结束。
应当注意,在amvp合并模式下的解码处理中,预测部216通过amvp模式执行运动补偿并且执行帧间预测处理。然后,将通过帧间预测处理获得的预测图像p与预测残差d'相加,以形成解码目标的块的图像。
另一方面,在步骤s214处判定不满足merge_flag=1的情况下,即,在满足merge_flag=0并且可应用模式是非合并模式的情况下,处理进行到步骤s218。
在步骤s218处,预测部216判定从解码部211提供的预测信息pinfo的fruc_flag的值是否为1,即,是否满足fruc_flag=1。
在步骤s218处判定满足fruc_flag=1的情况下,即,在可应用模式是fruc模式的情况下,处理进行到步骤s219。
在步骤s219处,图像解码装置201的部件执行用于在frucamvp模式下对解码目标的块的图像进行解码的解码处理,并且图像解码处理随之结束。
应当注意,在frucamvp模式下的解码处理中,执行与fruc合并模式下的解码处理类似的处理,以导出运动信息,从而生成解码目标的块的图像。然而,在frucamvp模式下,由于差分运动矢量被放置在编码流中,因此差分运动矢量用于导出解码目标的块的预测运动矢量。
相比之下,在步骤s218处判定不满足fruc_flag=1的情况下,即,在满足fruc_flag=0并且可应用模式不是fruc模式的情况下,处理进行到步骤s220。
在步骤s220处,图像解码装置201的部件执行用于在amvp模式下对解码目标的块的图像进行解码的解码处理,并且图像解码处理随之结束。
应当注意,在amvp模式下的解码处理中,预测部216通过amvp模式执行运动补偿,并且执行帧间预测处理。然后,将通过帧间预测处理获得的预测图像p与预测残差d'相加,以形成解码目标的块的图像。
此外,在步骤s213处判定不执行帧间预测处理的情况下,即,在判定要执行帧内预测处理的情况下,处理进行到步骤s221。
在步骤s221处,图像解码装置201的部件执行用于在帧内预测模式下对解码目标的块的图像进行解码的帧内解码处理,并且图像解码处理随之结束。
在帧内解码处理中,预测部216通过帧内预测模式生成预测图像p,并且将预测图像p与预测残差d'相加,以形成解码目标的块的图像。
图像解码装置201以如上所述的方式响应于编码参数对解码目标的块进行解码。通过以这种方式在适当的模式下对图像进行解码,即使使用小代码量的编码流,也可以获得高质量的图像。
<fruc合并模式解码处理的描述>
随后,描述与图18的步骤s216处的处理对应的fruc合并模式解码处理。特别地,参照图19的流程图描述由图像解码装置201执行的fruc合并模式解码处理。应当注意,对解码目标的每个块执行该fruc合并模式解码处理。
在步骤s251处,去量化部212对通过图18的步骤s211处的处理获得的量化变换系数级别level进行去量化,以导出变换系数coeff_iq,并且将变换系数coeff_iq提供至逆变换部213。
在步骤s252处,逆变换部213对从去量化部212提供的变换系数coeff_iq执行逆正交变换等,并且将所产生的预测残差d'提供至运算部214。
在步骤s253处,预测部216基于从解码部211提供的预测信息pinfo等,判定解码目标的块是否是p切片的块。
在步骤s253处判定解码目标的块不是p切片的块的情况下,处理进行到步骤s254。
在步骤s254处,预测部216获取fruc_mode_flag。
特别地,在解码目标的块不是p切片的块的情况下,在图18的步骤s211处,由解码部211从编码流中读出fruc_mode_flag,并且将包括读出的fruc_mode_flag的预测信息pinfo从解码部211提供至预测部216。预测部216以这种方式从向其提供的预测信息pinfo获取fruc_mode_flag。
在步骤s255处,预测部216基于fruc_mode_flag,判定是否要执行双向匹配。例如,在fruc_mode_flag的值为1的情况下,判定要执行双向匹配。
在步骤s255处判定要执行双向匹配的情况下,预测部216在步骤s256处通过双向匹配方法导出运动信息。因此,获得预测运动矢量作为解码目标的块的运动信息。
在步骤s257处,预测部216基于通过步骤s256处的处理导出的运动信息,即,基于预测运动矢量,来执行运动补偿以生成预测图像p并且将预测图像p提供至运算部214。
例如,预测部216从帧存储器215中读出由参考图像指定信息指示的两个解码图像,并且使用由参考图片的预测运动矢量指示的块通过运动补偿来生成预测图像p。
在以这种方式获得预测图像p之后,处理进行到步骤s260。
相比之下,在步骤s255处判定不执行双向匹配或者在步骤s253处判定解码目标的块是p切片的块的情况下,执行步骤s258处的处理。
在步骤s258处,预测部216通过模板匹配方法导出运动信息。因此,获得预测运动矢量作为解码目标的块的运动信息。
在步骤s259处,预测部216基于通过步骤s258处的处理导出的运动信息,即,基于预测运动矢量,来执行运动补偿,以生成预测图像p并且将预测图像p提供至运算部214。
例如,预测部216从帧存储器215中读出由参考图像指定信息指示的一个解码图像作为参考图片,并且将由参考图片中的预测运动矢量指示的块的图像确定为预测图像p。
在以这种方式获得预测图像p之后,处理进行到步骤s260。
在执行步骤s257至步骤s259处的处理以生成预测图像p之后,执行步骤s260处的处理。
在步骤s260处,运算部214将从逆变换部213提供的预测残差d'与从预测部216提供的预测图像p相加,以导出局部解码图像rec。运算部214使用获得的局部解码图像rec以图片为单位来重构解码图像,并且将获得的解码图像输出至图像解码装置201的外部。此外,运算部214向帧存储器215提供局部解码图像rec。
在步骤s261处,帧存储器215使用从运算部214提供的局部解码图像rec以图片为单位来重构解码图像,并且将解码图像保存在帧存储器215中的缓冲器中。当以这种方式获得解码图像时,fruc合并模式解码处理结束。
图像解码装置201通过fruc模式导出运动信息,并且以如上所述的方式对解码目标的块进行解码。通过以这种方式利用fruc模式在解码侧导出运动信息,可以减少编码流的代码量并且可以提高编码效率。
应当注意,同样在图18的步骤s219处,执行与上面参照图19描述的fruc合并模式解码处理类似的处理。然而,由于在frucamvp模式下将差分运动矢量放置在编码流中,因此差分运动矢量用于导出解码目标的块的预测运动矢量。
<通过双向匹配进行的运动信息导出处理的描述>
此处,参照图20的流程图描述由预测部216执行并且对应于图19的步骤s256处的处理的通过双向匹配的运动信息导出处理。
在通过双向匹配进行的运动信息导出处理中,由候选获取部241执行步骤s291处的处理,并且由运动矢量导出部252执行步骤s292处的处理,并且由候选选择部251执行步骤s293处的处理。
此外,由子块候选获取部243执行步骤s294处的处理,并且由候选选择部253执行步骤s295处的处理,并且由运动矢量导出部254执行步骤s296和步骤s297处的处理。
应当注意,步骤s291至步骤s297的处理分别与图14的步骤s161至步骤s167的处理类似,因此,省略对步骤s291至步骤s297的处理的描述。
此外,当在可应用模式是frucamvp模式的情况下将差分运动矢量放置在编码流中时,从编码流读出并且从解码部211向预测部216提供的差分运动矢量被添加到预测运动矢量候选,以形成预测运动矢量。
<通过模板匹配进行的运动信息导出处理的描述>
此外,参照图21的流程图描述由预测部216执行并且与图19的步骤s258处的处理对应的通过模板匹配的运动信息导出处理。
在通过模板匹配进行的运动信息导出处理中,由候选获取部301执行步骤s331处的处理,并且由运动矢量导出部312执行步骤s332处的处理,并且由候选选择部311执行步骤s333处的处理。
此外,由子块候选获取部303执行步骤s334处的处理,并且由候选选择部313执行步骤s335处的处理,并且由运动矢量导出部314执行步骤s336和步骤s337处的处理。
应当注意,由于步骤s331至步骤s337处的处理分别与图13的步骤s131至步骤s137处的处理类似,因此省略对步骤s331至步骤s337处的处理的描述。
此外,当在可应用模式是frucamvp模式的情况下将差分运动矢量放置在编码流中时,将从编码流读出并且从解码部211向预测部216提供的差分运动矢量添加到预测运动矢量候选,以形成预测运动矢量。
此外,图像解码装置201可以在预测运动矢量导出时通过以如上所述的方式并行地执行处理的一部分来更快速地获得运动信息。
<第二实施方式>
<帧间预测模式设置处理的描述>
顺便提及,上述第一实施方式涉及以下示例:当通过模板匹配或双向匹配导出运动信息时,由多个匹配处理电路并行地执行处理,以实现更高速度地导出运动信息。
然而,在这种情况下,需要与起点的候选的数量对应的匹配处理电路的数量,并且在匹配处理电路的数量小的情况下,当起点的候选的数量变为最大时,处理速度下降最多。
此外,如果在处理速度下降最多时还尝试确保实时再现,则尽管有必要提供足够的匹配处理电路的数量来以足够高的速度导出运动信息,但是随着匹配处理电路的数量增大,担心电路规模的增大。
因此,当通过模板匹配或双向匹配导出运动信息时,可以通过对起点的候选的数量设置上限来更快速地获得运动信息。
在刚刚描述的这种情况下,例如,控制部21生成指示模板匹配时的起点的候选的上限数量的max_num_fruc_template_cand以及指示双向匹配时的起点的候选的上限数量的max_num_fruc_bilateral_cand。
应当注意,在不需要将max_num_fruc_template_cand和max_num_fruc_bilateral_cand彼此特别区分的情况下,它们中的每一个有时仅被称为候选上限数量信息。
例如,可以预先确定起点的候选的上限数量。此外,可以基于作为解码目标的运动图像(内容)的帧速率或比特率、分辨率(图像尺寸)等的级别或层(tier)动态地确定起点的候选的上限数量。
此外,可以基于再现编码目标的运动图像的再现设备的类型、再现设备的电池容量或最大功耗、再现设备的处理能力、再现设备具有的存储器的访问带宽的上限值、再现设备的最大资源等来确定起点的候选的上限数量。此外,可以基于在再现设备中并行设置的匹配处理电路的数量等来确定起点的候选的上限数量。通过适当地确定起点的候选的上限数量,也可以保证实时再现。
可以针对编码目标的整个运动图像提供一个这样的候选上限数量信息,可以针对每个图片或针对每个切片确定这样的候选上限数量信息,或者可以针对每个cu或针对每个子块确定这样的候选上限数量信息。例如,在针对每个切片确定候选上限数量信息的情况下,整个编码流的代码量可以相对于针对每个cu或针对每个子块确定候选上限数量信息的情况下的整个编码流的代码量减少。
在控制部21生成候选上限数量信息之后,控制部21将候选上限数量信息放置到序列参数集或切片头部中。
在以这种方式生成候选上限数量信息的情况下,在图像编码装置11中,执行图22所示的帧间预测处理模式设置处理。在下文中,参照图22的流程图描述由图像编码装置11进行的帧间预测处理模式设置处理。
在步骤s371处,控制部21确定模板匹配时的起点的候选的上限数量,并且生成指示确定结果的max_num_fruc_template_cand。例如,基于诸如级别或层的与编码目标的图像(运动图像)有关的信息、诸如再现设备的处理能力等的与再现设备有关的信息等来确定起点的候选的上限数量。
在步骤s372处,控制部21确定双向匹配时的起点的候选的上限数量并且生成指示确定的结果的max_num_fruc_bilateral_cand。例如,以与步骤s371的情况类似的方式确定起点的候选的上限数量。
控制部21将作为生成的候选上限数量信息的max_num_fruc_template_cand和max_num_fruc_bilateral_cand放置到头部信息hinfo的序列参数集、切片头部等的预定位置。因此,例如,在图12的步骤s105处,对候选上限数量信息进行编码并且将其放置到编码流中。
在将候选上限数量信息放置到头部信息hinfo中之后,执行步骤s373到步骤s385的处理,并且帧间预测处理模式设置处理随之结束。然而,由于那些处理分别与图11的步骤s51至s63处的处理类似,因此省略对它们的描述。
图像编码装置11以如上所述的方式生成候选上限数量信息并且将候选上限数量信息放置到头部信息hinfo中。这使得解码侧可以根据候选上限数量信息来限制起点的候选的数量,并且可以更快速地获得运动信息。
<通过双向匹配进行的运动信息导出处理的描述>
同时,在执行图22所示的帧间预测处理模式设置处理的情况下,图像编码装置11的预测部30执行图23所示的通过双向匹配进行的运动信息导出处理以及图24所示的通过模板匹配进行的运动信息导出处理。
首先,参考图23的流程图来描述由图像编码装置11的预测部30执行的通过双向匹配进行的运动信息导出处理。
在步骤s411处,候选获取部51获取起点的候选以生成候选列表。应当注意,在步骤s411处,执行与图14的步骤s161处的处理类似的处理。
在步骤s412处,预测部30的候选获取部51限制起点的候选数量。特别地,候选获取部51从控制部21获取max_num_fruc_bilateral_cand,并且将由max_num_fruc_bilateral_cand指示的数量确定为候选数量的上限。因此,起点的候选数量被限制为由max_num_fruc_bilateral_cand指示的数量。
在限制起点的候选数量之后,执行步骤s413至步骤s418处的处理,并且运动信息导出处理随之结束。然而,由于步骤s413至步骤s418处的处理分别与图14的步骤s162至步骤s167处的处理类似,因此省略对步骤s413至步骤s418处的处理的描述。
然而,在步骤s413处,仅针对在步骤s412处确定的限制之后的起点的候选数量执行双向匹配,以计算预测运动矢量。
例如,假设由max_num_fruc_bilateral_cand指示的数量是3。在这种情况下,在步骤s413处,将由候选列表指示的起点的候选中预先确定的三个候选用作实际起点,并且针对三个起点执行双向匹配以计算预测运动矢量。
因此,在该示例中,运动矢量导出部62执行用于通过三个匹配处理电路针对起点的候选并行地计算预测运动矢量的处理。
注意,假设相对于由候选上限数量信息指示的候选数量(即,相对于限制之后的候选数量),预先确定在由候选列表指示的起点的候选中在步骤s413处要使用起点的哪些候选。换句话说,相对于由候选上限数量信息指示的候选数量,预先确定要从起点的候选中排除的候选。
此外,虽然此处描述了在步骤s413处使用的起点的候选被限制为由候选上限数量信息指示的候选数量的示例,但是在双向匹配处理部54中,也可以限制起点的候选数量。
预测部30限制起点的候选数量并且使用由候选上限数量信息指示的候选数量作为实际起点,以如上所述的方式导出运动信息。因此,可以更快速地获得运动信息。
此外,通过确定候选数量的上限,也可以减少要在运动矢量导出部62中设置的匹配处理电路的数量,并且可以抑制电路规模的增加。例如,如果由候选上限数量信息指示的上限数量总是相等而与编码目标的运动图像无关,则要并行设置的匹配处理电路的数量也可以仅是上限数量。
<通过模板匹配进行的运动信息导出处理的描述>
随后,参照图24的流程图来描述由图像编码装置11的预测部30执行的通过模板匹配进行的运动信息导出处理。
在步骤s451处,候选获取部91获取起点的候选以生成候选列表。应当注意,在步骤s451处,执行与图13的步骤s131处的处理类似的处理。
在处理s452处,预测部30的候选获取部91限制起点的候选数量。
特别地,候选获取部91从控制部21获取max_num_fruc_template_cand并且将由max_num_fruc_template_cand指示的数量确定为候选数量的上限。因此,起点的候选数量被限制为由max_num_fruc_template_cand指示的数量。
在限制起点的候选数量之后,执行步骤s453至步骤s458处的处理,并且通过模板匹配进行的运动信息导出处理随之结束。然而,由于步骤s453至步骤s458处的处理分别与图13的步骤s132至步骤s137处的处理类似,因此省略对步骤s453至步骤s458处的处理的描述。
然而,在步骤s453处,仅关于执行在步骤s452处确定的限制之后的起点的候选数量执行模板匹配以计算预测运动矢量。
例如,假设由max_num_fruc_template_cand指示的数量是3。在这种情况下,在步骤s453处,将由候选列表指示的起点的候选中预先确定的三个候选用作实际起点,并且关于三个起点执行模板匹配以计算预测运动矢量。
注意,假设相对于由候选上限数量信息指示的候选数量(即,相对于限制之后的候选数量),预先确定由候选列表指示的起点的候选中在步骤s413处要使用起点的哪些候选。
此外,虽然此处描述了在步骤s453处使用的起点的候选被限制为由候选上限数量信息指示的候选数量的示例,但是在模板匹配处理部94中,也可以限制起点的候选数量。
预测部30限制起点的候选数量并且使用由候选上限数量信息指示的候选数量作为实际起点,以如上所述的方式导出运动信息。因此,可以更快速地获得运动信息。此外,通过确定候选数量的上限,也可以减少要在运动矢量导出部102中设置的匹配处理电路的数量,并且可以抑制电路规模的增加。
<fruc合并模式解码处理的描述>
此外,在max_num_fruc_bilateral_cand或max_num_fruc_template_cand被放置在编码流中的情况下,在图像解码装置201中,从通过在图18所示的图像解码处理的步骤s211处进行解码获得的编码参数的头部信息hinfo中读出max_num_fruc_bilateral_cand和max_num_fruc_template_cand。
然后,从解码部211向预测部216提供这样的max_num_fruc_bilateral_cand和max_num_fruc_template_cand。
此外,作为与图18的步骤s216相对应的fruc合并模式解码处理,例如,执行图25所示的处理。在下文中,参照图25的流程图描述由图像解码装置201执行的fruc合并模式解码处理。
应当注意,由于步骤s491至步骤s494处的处理分别与图19的步骤s251至步骤s254处的处理类似,因此省略对步骤s491至步骤s494处的处理的描述。
在步骤s495处,预测部216从解码部211获取候选上限数量信息,即max_num_fruc_bilateral_cand和max_num_fruc_template_cand。
在获取候选上限数量信息之后,执行步骤s496至步骤s502处的处理,并且fruc合并模式解码处理随之结束。然而,由于步骤s496至步骤s502处的处理分别与图19的步骤s255至步骤s261处的处理类似,因此省略对步骤s496至步骤s502处的处理的描述。
然而,在步骤s497处,针对由max_num_fruc_bilateral_cand限制的起点的候选数量执行双向匹配处理。此外,在步骤s499处,执行关于由max_num_fruc_template_cand限制的起点的候选数量的模板匹配处理。
预测部216通过以这种方式获取候选上限数量信息来在导出运动信息时限制起点的候选数量,并且可以更快速地获取运动信息。
<通过双向匹配进行的运动信息导出处理的描述>
此处,描述与图25的步骤s497处的处理相对应的处理。特别地,下面参照图26的流程图描述由预测部216执行的通过双向匹配进行的运动信息导出处理。
应当注意,由于步骤s531处的处理与图20的步骤s291处的处理类似,因此省略对步骤s531处的处理的描述。
在步骤s532处,预测部216的候选获取部241限制起点的候选数量。特别地,候选获取部241基于通过图25的步骤s495处的处理从解码部211获取的max_num_fruc_bilateral_cand,将由max_num_fruc_bilateral_cand指示的数量确定为候选数量的上限。因此,起点的候选数量被限制为由max_num_fruc_bilateral_cand指示的数量。
在限制起点的候选数量之后,执行步骤s533至步骤s538处的处理,并且通过双向匹配进行的运动信息导出处理随之结束。然而,由于步骤s533至步骤s538处的处理分别与图20的步骤s292至步骤s297处的处理类似,因此省略对步骤s533至步骤s538处的处理的描述。
然而,在步骤s533处,仅在执行步骤s532处确定的限制之后关于起点的候选数量执行双向匹配,以与图23的步骤s413处的情况类似地计算预测运动矢量。
预测部216限制起点的数量来执行双向匹配以如上所述的方式导出运动信息。因此,可以更快速地获得运动信息。
<通过模板匹配进行的运动信息导出处理的描述>
此外,描述与图25的步骤s499处的处理相对应的处理。特别地,下面参照图27的流程图描述由预测部216执行的通过模板匹配进行的运动信息导出处理。
应当注意,由于步骤s571处的处理与图21的步骤s331处的处理类似,因此省略对步骤s571处的处理的描述。
在步骤s572处,预测部216的候选获取部301限制起点的候选数量。特别地,候选获取部301基于在图25的步骤s495处的处理中从解码部211获取的max_num_fruc_template_cand,将由max_num_fruc_template_cand指示的数量确定为候选数量的上限。因此,起点的候选数量被限制为由max_num_fruc_template_cand指示的数量。
在限制起点的候选数量之后,执行步骤s573至步骤s578处的处理,并且通过模板匹配进行的运动信息导出处理随之结束。然而,由于步骤s573至步骤s578处的处理与图21的步骤s332至步骤s337处的处理类似,因此省略对步骤s573至步骤s578处的处理的描述。
然而,在步骤s573处,仅在执行步骤s572处确定的限制之后关于起点的候选数量执行模板匹配,以与图24的步骤s453处的情况类似地计算预测运动矢量。
预测部216限制起点的数量来执行模板匹配以如上所述的方式导出运动信息。因此,可以更快速地获得运动信息。
<第三实施方式>
<候选上限数量信息>
顺便提及,在模板匹配中,例如参照图5,如上所述,将当前块附近存在的区域用作模板。
因此,仅在获得模板的图像之后,例如,通过解码,可以开始模板匹配(即,块匹配)的处理。例如,如果在获得模板的图像之前需要很多时间,则开始块匹配的处理被延迟,从实时再现的观点来看这不是优选的。换句话说,如果可以在更早的时刻开始块匹配的处理,则在实时再现方面是有利的。
因此,为了使得可以更快速地获得运动信息,在一些情况下,上文描述的max_num_fruc_template_cand的值可以被设置为0。
在这种情况下,如果max_num_fruc_template_cand的值为0,则不执行模板匹配,而是执行双向匹配以导出运动信息。因此,可以在更早的时刻开始用于导出运动信息的块匹配。
类似地,max_num_fruc_bilateral_cand的值可以适当地设置为0,使得在这样的情况下,不执行双向匹配,而是执行模板匹配以导出运动信息。
例如,有时在编码侧确定:图片或块是希望从中快速导出运动信息的图片或块,或者图片或块是希望确保足够的图片质量的图片或块(即使需要时间来导出运动信息)。换句话说,有时确定将双向匹配和模板匹配中的哪一个应用于编码目标的图片或块以导出运动信息。
在刚刚描述的这样的情况下,如果控制部21适当地确定max_num_fruc_template_cand或max_num_fruc_bilateral_cand的值,则可以更快速地获得运动信息。
在候选上限数量信息的值被适当地设置为0使得例如在图22的步骤s371或步骤s372处不以这种方式执行模板匹配或双向匹配的情况下,max_num_fruc_template_cand的值被适当地设置为0或者max_num_fruc_bilateral_cand的值被适当地设置为0。
在这种情况下,例如,在图12所示的fruc合并模式编码处理中,预测部30从控制部21获取候选上限数量信息,并且根据所获取的候选上限数量信息导出运动信息。特别地,当满足max_num_fruc_template_cand=0时,不执行步骤s93处的处理,并且当满足max_num_fruc_bilateral_cand=0时,不执行步骤s94处的处理。因此,可以更快速地执行编码。
此外,假设在将max_num_fruc_template_cand或max_num_fruc_bilateral_cand作为候选上限数量信息放置到编码流中的情况下,候选上限数量信息的至少一种类型的值总是被设置为0。在这种情况下,图像解码装置201的预测部216可以参考候选上限数量信息以指定将使用双向匹配和模板匹配中的哪一种方法来在fruc模式下导出运动信息。
因此,在刚刚描述的这样的情况下,在图19的步骤s254处,预测部216从解码部211获取max_num_fruc_template_cand和max_num_fruc_bilateral_cand。然后,在步骤s255处,预测部216基于在步骤s254处获取的max_num_fruc_template_cand和max_num_fruc_bilateral_cand的值判定是否要执行双向匹配。
特别地,在这种情况下,由于不需要fruc_mode_flag,因此图像编码装置11可以不执行图22的步骤s379和步骤s384处的处理,使得fruc_mode_flag不被放置到编码流中。
<第四实施方式>
<通过双向匹配进行的运动信息导出处理的描述>
通常,在通过模板匹配或双向匹配导出预测运动矢量的情况下,收集起点的候选(即,运动矢量候选)以首先生成候选列表。
然后,使用由候选列表指示的预测运动矢量的候选,并且从预测运动矢量的候选中选择最佳的一个。换句话说,基于预测运动矢量的候选确定最佳的预测运动矢量。
尽管通常在运动图像的广播侧取决于应用等,但是当执行编码时,可能需要时间来进行处理。然而,在诸如电视接收器或个人计算机的再现侧,经常需要在实时的基础上执行解码。然而,由于用于基于预测运动处理的候选来获取预测运动矢量的处理涉及很大的处理量,因此在一些情况下,存在可能无法执行实时再现的可能性。
此外,由于解码侧不具有原始图像,因此通过模板匹配或双向匹配确定的预测运动矢量相对于原始图像不一定是最佳的,并且存在可能选择不是最佳的预测运动矢量的可能性。
因此,在编码侧,可以在编码之前使用原始图像来选择预测运动矢量的候选,使得在解码侧使用预测运动矢量候选来仅执行预测运动矢量的精细调整。
在刚刚描述的这样的情况下,例如,图7所示的候选选择部61或图9所示的候选选择部101被配置成使得,上文描述的单个成本运算电路被设置或者被配置成使得设置彼此并联的多个成本运算电路。
此外,例如,图7所示的运动矢量导出部62、图9所示的运动矢量导出部102、图16所示的运动矢量导出部252、以及图17所示的运动矢量导出部312被配置成使得它们包括上文描述的单个匹配处理电路。
此外,在这种情况下,预测部30例如执行图28所示的处理作为通过双向匹配进行的运动信息导出处理。特别地,参照图28的流程图描述由图像编码装置11执行的通过双向匹配进行的运动信息导出处理。
应当注意,由于步骤s611处的处理与图14的步骤s161处的处理类似,因此省略对步骤s611处的处理的描述。
在步骤s612处,候选获取部51向在步骤s611处获得的起点的每个候选(即,预测运动矢量的每个候选)分配用于识别预测运动矢量候选的索引号。例如,针对预测运动矢量候选(即,周边区域)的每个位置预先确定要分配的索引号。
在步骤s613处,关于使用原始图像的所有参考图片,候选选择部61从起点的所有候选(即,预测运动矢量的所有候选)中选择预测运动矢量的一个候选。
例如,候选选择部61关于预测运动矢量的每个候选,确定由作为预测运动矢量候选的相邻运动矢量指示的两个参考图片上的每个块与原始图像上的编码目标的cu之间的差,并且基于所确定的差来计算预测运动矢量候选的成本。
候选选择部61从预测运动矢量的所有候选中选择指示最低成本的运动矢量候选。
此处,尽管用于计算成本的两个参考图片是从帧存储器29读出的解码图像,但是作为包括编码目标的cu的图像,使用与提供给运算部22的图像相同的原始图像。通过以这种方式使用原始图像计算成本,可以更准确地选择预测运动矢量的更准确的候选。
预测部30向控制部21输出以这种方式选择的预测运动矢量候选的索引号。然后,在图10的步骤s11处,控制部21将从预测部30提供的索引号放置到预测信息pinfo等中。因此,例如,在图12的步骤s105处,获得其中以编码形式放置有预测运动矢量候选(即,起点的候选)的索引号的编码流。
在步骤s614处,运动矢量导出部62关于在步骤s613处选择的起点的候选(即,预测运动矢量候选)通过双向匹配计算编码目标的cu的预测运动矢量和预测运动矢量的成本。应当注意,在步骤s614处,将从帧存储器29读出的解码图像用作参考图片,以执行与图14的步骤s166处的处理类似的处理。
在步骤s615处,运动矢量导出部62从在步骤s614处计算的预测运动矢量中选择指示最低成本的预测运动矢量作为编码目标的cu的最终预测运动矢量,并且将最终预测运动矢量提供给子块候选获取部53。
此外,在将差分运动矢量放置到编码流中的情况下,例如可适用模式是frucamvp模式等的情况下,在步骤s615处,计算预测运动矢量候选与预测运动矢量之间的差作为参考运动矢量,并且将获得的差分运动矢量放置到编码流中。应当注意,原始图像也可以用于计算差分运动矢量。
在以这种方式获得编码目标的cu的预测运动矢量之后,执行步骤s616至步骤s619处的处理,并且通过双向匹配进行的运动信息导出处理随之结束。然而,由于步骤s616至步骤s619处的处理分别与图14的步骤s164至步骤s167处的处理类似,因此省略对步骤s616至步骤s619处的处理的描述。
预测部30以如上所述的方式输出指示与预测运动矢量相对应的预测运动矢量候选的索引号。因此,在图像解码装置201上,可以选择预测运动矢量的适当候选,并且需要仅对预测运动矢量候选执行处理,并且可以用较小的处理量更快速地获得适当的运动信息。
<通过模板匹配进行的运动信息导出处理的描述>
类似地,预测部30执行例如图29所示的处理作为通过模板匹配进行的运动信息导出处理。特别地,在下文中,参照图29的流程图描述由图像编码装置11执行的通过模板匹配进行的运动信息导出处理。
应当注意的是,由于步骤s651处的处理与图13的步骤s131处的处理类似,因此省略对步骤s651处的处理的描述。
此外,在执行步骤s651处的处理之后,由候选获取部91执行步骤s652处的处理,并且由候选选择部101执行步骤s653处的处理。应当注意,步骤s652和步骤s653处的处理分别与图28的步骤s612和步骤s613处的处理类似,并且因此省略对步骤s652和步骤s653处的处理的描述。
然而,在步骤s653处,关于预测运动矢量的每个候选,确定由作为预测运动矢量候选的相邻运动矢量指示的一个参考图片上的块(解码图像)与原始图像上的编码目标的cu之间的差以计算成本。然后,从预测运动矢量的所有候选中,选择指示最低成本的预测运动矢量候选。
预测部30将以这种方式选择的预测运动矢量候选的索引号输出至控制部21。然后,在图10的步骤s11处,控制部21将从预测部30提供的索引号放置到预测信息pinfo等中。因此,例如,在图12的步骤s105处,获得其中以编码形式放置有预测运动矢量候选(即,起点的候选)的索引号的编码流。
在步骤s654处,运动矢量导出部102关于在步骤s653处选择的起点的候选(即,预测运动矢量候选)通过模板匹配计算编码目标的cu的预测运动矢量和预测运动矢量的成本。应当注意,在步骤s654处,将从帧存储器29读出的解码图像用作编码目标的图片和参考图片,并且执行与图13的步骤s136处的处理类似的处理。
在步骤s655处,运动矢量导出部102从在步骤s654处计算的预测运动矢量中选择指示最低成本的预测运动矢量作为编码目标的cu的最终预测运动矢量,并且向子块候选获取部93提供最终预测运动矢量。
此外,在将差分运动矢量放置到编码流中的情况下,例如可适用模式是frucamvp模式等的情况下,在步骤s655处计算差分运动矢量并且将获得的差分运动矢量放置到编码流中。
在以这种方式获得编码目标的cu的预测运动矢量之后,执行步骤s656至步骤s659处的处理,并且通过模板匹配进行的运动信息导出处理随之结束。然而,由于步骤s656至步骤s659处的处理分别与图13的步骤s134至步骤s137处的处理类似,因此省略对步骤s656至步骤s659处的处理的描述。
预测部30以如上所述的方式输出指示与预测运动矢量相对应的预测运动矢量候选的索引号。因此,可以用小的处理量更快速地获得适当的运动信息。
此处要注意的是,尽管关于编码目标的cu,起点的候选的索引号被放置到编码流中,但是关于子块,也可以类似地将起点的候选的索引号放置到编码流中。
<通过双向匹配进行的运动信息导出处理的描述>
另一方面,在图像解码装置201中,执行图30所示的通过双向匹配进行的运动信息导出处理和图31所示的通过双向匹配进行的运动信息导出处理。
首先,下面参照图30的流程图描述由图像解码装置201执行的通过双向匹配进行的运动信息导出处理。
应当注意,由于步骤s691处的处理与图20的步骤s291处的处理类似,因此省略对步骤s691处的处理的描述。
在步骤s692处,候选获取部241向在步骤s691处获得的起点的每个候选(即,预测运动矢量的每个候选)分配用于识别起点的候选的索引号。应当注意,在步骤s692处,执行与图28的步骤s612处的处理类似的处理。
在步骤s693处,预测部216从解码部211获取指示起点的候选的索引号。
特别地,在解码部211中,通过对编码流进行解码来获得起点的候选的索引号。预测部216从解码部211获取包括索引号的预测信息pinfo等,以获取索引号。在步骤s693处获得的索引号是在图28的步骤s613处选择的起点的候选的索引号。
在步骤s694处,候选选择部251基于在步骤s693处获取的索引号,选择起点的一个候选。
特别地,候选选择部251从由候选列表指示的起点的候选中(即,从预测运动矢量候选中)选择在步骤s693处获取的索引号所指示的起点的候选。
在选择预测运动矢量候选之后,由运动矢量导出部252执行步骤s695和步骤s696处的处理,以导出预测运动矢量。
应当注意,由于步骤s695和步骤s696处的处理与图28的步骤s614和步骤s615处的处理类似,因此省略对步骤s695和步骤s696处的处理的描述。然而,在步骤s695处,仅关于在步骤s694处选择的起点的候选(即,关于预测运动矢量候选)通过双向匹配来计算成本和预测运动矢量。
此外,在将差分运动矢量放置到编码流中时,例如在可适用模式是frucamvp模式的情况下,不执行步骤s695和步骤s696处的处理。在这种情况下,通过预测部216从解码部211获取差分运动矢量,并且将在将差分运动矢量与作为在步骤s694处选择的预测运动矢量候选的相邻运动矢量相加时的结果确定为预测运动矢量。
在执行步骤s696处的处理以获取解码目标的cu的预测运动矢量之后,执行步骤s697至步骤s700处的处理,并且通过双向匹配进行的运动信息导出处理随之结束。应当注意,由于步骤s697至步骤s700处的处理分别与图20的步骤s294至步骤s297处的处理类似,因此省略对步骤s697至步骤s700处的处理的描述。
预测部216仅针对由索引号指示的起点的候选执行处理,以便以这种方式导出运动信息。因此,由于消除了对起点的多个候选中的每一个执行处理的必要性,因此减少了图像解码装置201侧的处理量。因此,可以更快速地获得运动信息。此外,通过使用由图像编码装置11指定的索引号指示的起点的候选作为起点的候选,可以导出更准确的运动信息。
<通过模板匹配进行的运动信息导出处理的描述>
随后,参照图31的流程图描述由图像解码装置201执行的通过模板匹配进行的运动信息导出处理。
应当注意,由于步骤s731处的处理与图21的步骤s331处的处理类似,因此省略对步骤s731处的处理的描述。
此外,在执行步骤s731处的处理之后,由候选获取部301执行步骤s732处的处理并且由预测部216执行步骤s733处的处理。此外,由候选选择部311执行步骤s734处的处理并且由运动矢量导出部312执行步骤s735和步骤s736处的处理。
应当注意,由于步骤s732至步骤s736处的处理与图30的步骤s692至步骤s696处的处理类似,因此省略对步骤s732至步骤s736处的处理的描述。
然而,在步骤s735处,仅关于在步骤s734处选择的起点的候选(即,关于预测运动矢量候选)通过模板匹配来计算成本和预测运动矢量。
然而,在将差分运动矢量放置到编码流中的情况下,在可适用模式是frucamvp模式的情况下,不执行步骤s735和步骤s736处的处理。在这种情况下,通过预测部216从解码部211获取差分运动矢量,并且将在将差分运动矢量与作为在步骤s734处选择的预测运动矢量候选的相邻运动矢量相加时的结果确定为预测运动矢量。
在执行步骤s736处的处理以获取解码目标的cu的预测运动矢量之后,执行步骤s737至步骤s740处的处理,并且通过模板匹配进行的运动信息导出处理随之结束。应当注意,由于步骤s737至步骤s740处的处理分别与图21的步骤s334至步骤s337处的处理类似,因此省略对步骤s737至步骤s740处的处理的描述。
预测部216仅针对由索引号指示的起点的候选执行处理,以便以这种方式导出运动信息。因此,由于消除了对起点的多个候选中的每一个执行处理的必要性,因此减少了图像解码装置201侧的处理量并且可以更快速地获得运动信息。此外,通过使用由图像编码装置11侧指定的索引号指示的起点的候选作为起点的候选,可以导出更准确的运动信息。
<第五实施方式>
<改进的模板模式>
顺便提及,在模板匹配中,例如,如图32所示,与当前块cb51相邻的区域tm52-1和另一区域tm52-2的解码图像(解码图像)被用作模板。
因此,直到获得区域tm52-1和区域tm52-2的解码图像之后,才能开始通过模板匹配进行的块匹配的处理。通常,在用于解码(解码)的处理过程之后获得区域tm52-1和区域tm52-2的解码图像之前需要很多时间。因此,由于不能关于多个块(cu)执行用于编码或解码的处理,因此难以进行高速处理。
此外,在双向匹配中,例如,如上文参照图3所描述的,对象在图像上的移动被限制为线性地互连块bl11、当前块cb11和块bl12的移动。然而,由于实际上还存在不线性移动的对象(图像),因此通过双向匹配导出(搜索)预测运动矢量有时会导致失败,这导致编码效率的降低。换句话说,有时不能获取适当的预测运动矢量。
因此,在可适用模式是fruc模式的情况下,使得不仅可以通过模板匹配方法和双向匹配方法而且还可以通过改进的模板匹配方法来导出运动信息。换句话说,在可适用模式是fruc模式的情况下,可以通过模板匹配方法、双向匹配方法和改进的模板匹配方法中的一种来导出运动信息。
应当注意,在可适用模式是fruc模式的情况下,尽管双向匹配方法和改进的模板匹配方法中的一种能够被选择为运动信息的导出方法,但是假设在可适用模式是fruc模式的情况下可以选择模板匹配方法、双向匹配方法和改进的模板匹配方法中的一种来继续以下描述。
此处,描述了改进的模板匹配方法的概述。
例如,假设如图33所示,存在编码目标的图片pic11和作为参考图片的图片pic12和图片pic13。应当注意,图33中与图4中的部分相似的部分用相同的附图标记表示,并且适当地省略对相似部分的描述。
在该示例中,图片pic11上的当前块cb11是编码目标或解码目标。同时,图片pic12是由参考列表ref0指示并且在时间上早于图片pic11的参考图像,并且图片pic13是由参考列表ref1指示并且在时间上晚于图片pic11的的参考图片。
在改进的模板匹配中,首先关于当前块cb11,将与当前块cb11相邻的周边区域确定为预测运动矢量候选,并且类似于模板匹配或双向匹配,获取周边区域的相邻运动矢量。
然后,例如,关于图片pic12,计算由预测运动矢量的一个候选指示的块bl61与当前块cb11之间的差,并且计算预测运动矢量的候选的成本。随着块bl61与当前块cb11之间的差减小,该成本的值减小。
类似地,同样关于预测运动矢量的另一候选,计算与当前块cb11的差并且计算成本。
在针对关于图片pic12的预测运动矢量的每个候选计算成本之后,将其成本指示最低值的预测运动矢量候选确定为关于图片pic12的预测运动矢量。此处,假设与例如块bl61相对应的预测运动矢量候选的成本最低。
应当注意,关于参考列表ref0的参考图片确定的当前块的预测运动矢量(即,当前块与参考列表ref0的参考图片之间的预测运动矢量)在下文中也被称为预测运动矢量mvl0。
随后,假设由预测运动矢量mvl0指示的块bl61位于当前块cb11的位置处。简而言之,块bl61的图像被用作当前块cb11的图像。
此外,关于当前块cb11,将与当前块cb11相邻的周边区域确定为预测运动矢量候选,并且获取关于周边区域的图片pic13的相邻运动矢量。
然后,例如,关于图片pic13,计算由预测运动矢量的一个候选指示的块bl62与用作当前块cb11的块bl61之间的差,并且计算关于预测运动矢量候选的成本。该成本具有随着块bl62与块bl61之间的差减小而减小的值。
同样关于预测运动矢量的另一候选,类似地计算与块bl61的差并且计算成本。
在针对关于图片pic13的预测运动矢量的每个候选计算成本之后,选择成本中成本最低的预测运动矢量候选。
此外,将由所选择的预测运动矢量候选确定的图片pic13上的区域确定为搜索范围,并且在搜索范围中对块bl62的位置进行连续移位的同时通过块匹配连续计算预测运动矢量。
特别地,计算搜索范围中的块bl62与块bl61之间的差,并且计算关于每个块bl62的位置的预测运动矢量和成本。该成本具有随着块bl61与块bl62之间的差减小而减小的值。
在关于图片pic13计算每个块bl62位置的成本之后,将成本中最低的成本的运动矢量确定为图片pic13与当前块cb11之间的预测运动矢量。
应当注意,关于参考列表ref1的参考图片确定的预测运动矢量(即,当前块与参考列表ref1的参考块之间的预测运动矢量)在下文中也被称为预测运动矢量mvl1。
例如,在该示例中,由图像编码装置11侧导出预测运动矢量mvl0,并且将指示与获得的预测运动矢量mvl0相对应的预测运动矢量候选的信息发送至图像解码装置201。然后,在图像解码装置201中,使用从图像编码装置11指定的预测运动矢量mvl0来导出预测运动矢量mvl1。
应当注意,虽然此处给出了在导出预测运动矢量mvl0之后导出预测运动矢量mvl1的示例的描述,但也可以在导出预测运动矢量mvl1之后导出预测运动矢量mvl0。
在刚刚描述的这样的情况下,由图像编码装置11侧导出预测运动矢量mvl1,并且将指示与获得的预测运动矢量mvl1相对应的预测运动矢量候选的信息发送至图像解码装置201。然后,在图像解码装置201中,使用从图像编码装置11指定的预测运动矢量mvl1来导出预测运动矢量mvl0。
在下文中,假设由图像编码装置11侧导出预测运动矢量mvl0并且由图像解码装置201侧导出预测运动矢量mvl1来继续进行描述。
在如上所述的这样的改进的模板匹配中,当图像编码装置11在导出预测运动矢量mvl0时选择预测运动矢量候选时,它可以使用原始图像来计算成本。因此,可以选择更准确(即,更适当的)预测运动矢量候选。
此外,在图像解码装置201中,参考图片上的由预测运动矢量mvl0指示的块被用作当前块。因此,可以在不等待获得诸如模板的解码目标的图片的一部分的解码图像的情况下开始块匹配的处理,并且可以更快速地获得运动信息。
此外,由于预测运动矢量mvl0和预测运动矢量mvl1可以通过改进的模板匹配获得,因此对象(图像)的运动不被限制为如图片pic12与图片pic13之间的双向匹配的情况的线性运动。因此,相对于实际运动图像可以获得更准确的预测运动矢量,并且可以提高编码效率。
此外,由于在图像解码装置201侧导出预测运动矢量mvl1,因此消除了将与预测运动矢量mvl1有关的信息放置到编码流中的必要性,并且可以尽可能多地减少代码量。
<预测部的配置>
在可以在fruc模式下通过模板匹配导出运动信息的情况下,由图像编码装置11的控制部21生成的fruc_mode_flag是指示模板匹配方法、双向匹配方法和改进的模板匹配方法中的哪一种方法被用于导出运动信息的信息。
此外,图像编码装置11的预测部30包括例如图34所示的配置作为用于通过改进的模板匹配来导出运动信息的配置。
特别地,在图34所示的示例中,预测部30包括候选获取部361、改进的模板匹配处理部362、子块候选获取部363和改进的模板匹配处理部364。
在候选获取部361至改进的模板匹配处理部364中,候选获取部361和改进的模板匹配处理部362是用于导出关于编码目标的cu(ctu)的运动信息的处理块。相比之下,子块候选获取部363和改进的模板匹配处理部364是用于导出关于编码目标的子块的运动信息的处理块。
候选获取部361执行例如与图7的候选获取部51的操作类似的操作以生成候选列表,并且获取由候选列表指示的预测运动矢量候选(即,周边区域)的相邻运动矢量,并且将相邻运动矢量提供给改进的模板匹配处理部362。
改进的模板匹配处理部362包括候选选择部371和运动矢量导出部372。
候选选择部371从由候选列表指示的预测运动矢量的多个候选(起点的候选)中选择一个候选。
运动矢量导出部372基于预测运动矢量候选通过块匹配来确定编码目标的预测运动矢量。因此,关于编码目标的cu获得预测运动矢量mvl0和预测运动矢量mvl1。
此外,根据场合需要,运动矢量导出部372导出最终获得的预测运动矢量与用于导出预测运动矢量的预测运动矢量候选之间的差,作为编码目标的cu的差分运动矢量。
改进的模板匹配处理部362将获得的编码目标的cu的预测运动矢量提供给子块候选获取部363。
子块候选获取部363使用来自改进的模板匹配处理部362的预测运动矢量来执行与图7的子块候选获取部53的操作类似的操作,以生成子块候选列表。
子块候选获取部363获取由其生成的子块候选列表指示的预测运动矢量候选(即,周边区域)和从改进的模板匹配处理部362提供的预测运动矢量,并且将获取的预测运动矢量提供给改进的模板匹配处理部364。
改进的模板匹配处理部364基于从子块候选获取部363提供的相邻运动矢量和预测运动矢量,执行与改进的模板匹配处理部362的处理类似的处理,以导出编码目标的子块的预测运动矢量。
改进的模板匹配处理部364包括候选选择部373和运动矢量导出部374,并且候选选择部373和运动矢量导出部374分别对应于候选选择部371和运动矢量导出部372。
此外,根据场合需要,在运动矢量导出部374中,计算最终获得的预测运动矢量与用于导出预测运动矢量的预测运动矢量候选之间的差,作为编码目标的子块的差分运动矢量。
<fruc合并模式编码处理的描述>
随后,参照图35的流程图描述由图像编码装置11进行的fruc合并模式编码处理。应当注意,以cu为单位或者以子块为单位执行fruc合并模式编码处理。
在开始fruc合并模式编码处理之后,执行步骤s771至步骤s774处的处理。然而,步骤s771至步骤s774处的处理分别与图12的步骤s91至步骤s94处的处理类似,并且因此省略对步骤s771至步骤s774处的处理的描述。
在步骤s775处,当采用改进的模板匹配方法时,预测部30通过改进的模板匹配方法导出当前块的运动信息,并且计算rd成本jimptemplate。
例如,预测部30基于从控制部21提供的预测信息pinfo等,从帧存储器29中读出由参考图像指定信息指示的参考图片。此外,预测部30使用读出的参考图片和提供给其的编码目标的图片的原始图像,以通过改进的模板匹配方法导出当前块的运动信息,并且还计算rd成本jimptemplate。
在步骤s776处,预测部30判定步骤s773至步骤s775处计算的rd成本jbilateral、rd成本jtemplate和rd成本jimptemplate中的rd成本jbilateral是否是最低。
在步骤s776处判定rd成本jbilateral是最低的情况下,执行步骤s777处的处理,并且之后,处理进行到步骤s781。应当注意,由于步骤s777处的处理与图12的步骤s96处的处理类似,因此省略对步骤s777处的处理的描述。
另一方面,在步骤s776处判定rd成本jbilateral不是最低的情况下,处理进行到步骤s778。
在步骤s778处,预测部30判定rd成本jbilateral、rd成本jtemplate和rd成本jimptemplate中的rd成本jimptemplate是否是最低。
在步骤s778处判定rd成本jimptemplate是最低的情况下,处理进行到步骤s779。
在步骤s779处,预测部30基于通过改进的模板匹配方法导出的运动信息生成预测图像,并且将预测图像提供给运算部22和运算部28。例如,预测部30将使用由作为解码图像的两个参考图片的运动信息指示的(即,由预测运动矢量mvl0和预测运动矢量mvl1指示的)块通过运动补偿生成的图像确定为预测图像p。
应当注意,尽管在改进的模板匹配中,参考列表ref0的参考图片和参考列表ref1的参考图片用于生成预测图像p,但也可以仅使用参考图片中的一个来生成预测图像p。
在步骤s779处生成预测图像p之后,处理进行到步骤s781。
另一方面,在步骤s778处判定rd成本jimptemplate不是最低的情况下,或者执行步骤s772处的处理的情况下,之后执行步骤s780处的处理。然而,由于步骤s780处的处理与图12的步骤s97处的处理类似,因此省略对步骤s780处的处理的描述。在执行步骤s780处的处理之后,处理进行到步骤s781。
应当注意,在上文参照图11所描述的帧间预测处理模式设置处理的步骤s57或步骤s62处,基于步骤s776或步骤s778处的判定结果,生成fruc_mode_flag,其指示将使用模板匹配方法、双向匹配方法和改进的模板匹配方法中的哪一个来导出运动信息。
如果执行步骤s777处的处理,如果执行步骤s779处的处理或者如果执行步骤s780处的处理,则执行步骤s781至步骤s788处的处理,并且fruc合并模式编码处理随之结束。应当注意,由于步骤s781至步骤s788处的处理分别与图12的步骤s98至步骤s105处的处理类似,因此省略对步骤s781至步骤s788处的处理的描述。
图像编码装置11通过fruc模式导出运动信息,并且以如上所述的方式对编码目标的块进行编码。通过利用fruc模式并且以这种方式在解码侧导出运动信息,可以减少要放置到编码流中的运动信息,并且可以提高编码效率。
<通过改进的模板匹配进行的运动信息导出处理的描述>
此处,更详细地描述用于从与图35的步骤s775相对应的处理内导出运动信息的处理。特别地,参照图36的流程图描述由预测部30执行的通过改进的模板匹配方法进行的运动信息导出处理。
在步骤s821处,候选获取部361获取关于参考列表ref0的参考图片的起点的候选(即,预测运动矢量候选)以生成候选列表。例如,在步骤s821处,执行与图14的步骤s161处的处理类似的处理。
在步骤s822处,候选获取部361向在步骤s821处获得的预测运动矢量候选分配用于识别预测运动矢量候选的索引号。例如,预先确定要为预测运动矢量的每个候选(即,为周边区域的每个位置)分配的索引号。
此外,候选获取部361获取作为由候选列表指示的预测运动矢量候选的相邻运动矢量并且将相邻运动矢量提供给改进的模板匹配处理部362。
在步骤s823处,候选选择部371基于原始图像从由候选列表指示的预测运动矢量候选中选择成本最低的预测运动矢量候选。
特别地,候选选择部371从帧存储器29中读出由参考图像指定信息指示的参考列表ref0的参考图片(解码图像)中的由作为预测运动矢量候选的相邻运动矢量指示的块。然后,候选选择部371计算读出的块与提供给其的原始图像上的编码目标(当前块)的cu之间的差,以计算预测运动矢量候选的成本。
候选选择部371从预测运动矢量候选中选择成本最低的预测运动矢量候选。
在步骤s824处,运动矢量导出部372导出差分运动矢量。
特别地,运动矢量导出部372将在参考列表ref0的参考图片(解码图像)中由在步骤s823处选择的预测运动矢量候选定义的区域确定为搜索范围。运动矢量导出部372确定原始图像上的编码目标的cu与搜索范围中的块之间的差,以计算成本和预测运动矢量,并且将成本最低的运动预测矢量确定为最终的预测运动矢量mvl0。然后,预测运动矢量mvl0与作为预测运动矢量候选的相邻运动矢量之间的差被确定为差分运动矢量。
在导出差分运动矢量之后,从预测部30向控制部21提供所获得的差分运动矢量、指示所选择的预测运动矢量候选的索引号和选择预测运动矢量mvl0的选择信息。此外,运动矢量导出部372将获得的预测运动矢量mvl0提供给子块候选获取部363。
此处,选择信息是指示预测运动矢量mvl0与预测运动矢量mvl1之间的哪个预测运动矢量通过图像编码装置11被导出并且被放置到编码流中的信息。此外,此处的运动矢量信息是例如差分运动矢量和指示所选择的预测运动矢量候选的索引号。
在图35的步骤s788处,将选择信息、索引信息和差分运动矢量放置到编码流中,并且与编码流一起发送到图像解码装置201。
应当注意,可以不导出差分运动矢量,并且可以将所选择的预测运动矢量候选原样确定为预测运动矢量mvl0。
在步骤s825处,候选获取部361执行与步骤s821处的处理类似的处理,以获取关于参考列表ref1的参考图片的起点的候选(即,预测运动矢量候选)以生成候选列表。
此外,候选获取部361获取作为由候选列表指示的预测运动矢量候选的相邻运动矢量,并且将相邻运动矢量提供给改进的模板匹配处理部362。
在步骤s826处,候选选择部371从由候选列表指示的预测运动矢量候选中选择成本最低的预测运动矢量候选。
特别地,候选选择部371从帧存储器29中读出由参考图像指定信息指示的参考列表ref1的参考图片(解码图像)中的由作为预测运动矢量候选的相邻运动矢量指示的块。
此外,候选选择部371从帧存储器29中读出由参考图像指定信息指示的参考列表ref0的参考图片(解码图像)中的由预测运动矢量mvl0指示的块。
然后,候选选择部371确定读出的两个块之间的差,以计算预测运动矢量候选的成本,并且选择成本最低的预测运动矢量候选。
在步骤s827处,运动矢量导出部372基于通过步骤s826处的处理选择的预测运动矢量候选来导出预测运动矢量。
特别地,运动矢量导出部372将从帧存储器29中读出的参考列表ref1的参考图片(解码图像)中的由在步骤s826处选择的预测运动矢量候选定义的区域确定为搜索范围。
然后,运动矢量导出部372确定从帧存储器29读出的参考列表ref0的参考图片(解码图像)中的由预测运动矢量mvl0指示的块与搜索范围中的每个块之间的差以计算成本和预测运动矢量,并且通过块匹配将成本最低的预测运动矢量确定为最终的预测运动矢量mvl1。运动矢量导出部372将以这种方式获得的预测运动矢量mvl1提供给子块候选获取部363。
当以cu为单位执行编码时,在图35的步骤s779处,基于通过上述处理获得的预测运动矢量mvl0和预测运动矢量mvl1,通过运动补偿生成预测图像p。
在步骤s828处,子块候选获取部363获取关于参考列表ref0的参考图片的预测运动矢量候选,以生成编码目标的子块的子块候选列表。
特别地,子块候选获取部363基于预先针对编码目标的子块确定的编码目标的cu中的周边区域和从改进的模板匹配处理部362提供的预测运动矢量mvl0来生成子块候选列表。
此外,子块候选获取部363获取由子块候选列表指示的预测运动矢量候选(即,周边区域)的相邻运动矢量以及从改进的模板匹配处理部362提供的预测运动矢量mvl0,并且将获取的运动矢量提供给改进的模板匹配处理部364。
在步骤s829处,候选选择部373执行与步骤s826处的处理类似的处理,以从由子块候选列表指示的预测运动矢量候选中选择成本最低的预测运动矢量候选。
应当注意,此处,例如,基于在参考列表ref1的参考图片(解码图像)上由在步骤s827处获得的预测运动矢量mvl1指示的块与参考列表ref0的参考图片(解码图像)上由预测运动矢量候选指示的块之间的差,计算预测运动矢量候选的成本。
在步骤s830处,运动矢量导出部374基于在步骤s829处选择的预测运动矢量候选执行与在步骤s827处的处理类似的处理以导出编码目标的子块的预测运动矢量mvl0。
在这种情况下,例如,将参考列表ref0的参考图片(解码图像)上由预测运动矢量候选指示的区域确定为搜索范围。然后,确定在参考列表ref1的参考图片(解码图像)上由步骤s827处获得的预测运动矢量mvl1指示的块与搜索范围中的每个块之间的差,以计算成本和预测运动矢量,并且通过块匹配将成本最低的预测运动矢量确定为最终的预测运动矢量mvl0。
在导出预测运动矢量mvl0之后,关于编码目标的子块对参考列表ref1的参考图片执行步骤s831至步骤s833处的处理,以导出编码目标的子块的预测运动矢量mvl1。应当注意,由于步骤s831至步骤s833处的处理与步骤s825至步骤s827处的处理类似,因此省略对步骤s831至步骤s833处的处理的描述。
当在图35的步骤s779处执行以子块为单位的编码时,基于通过上述处理获得的子块的预测运动矢量mvl0和预测运动矢量mvl1,通过运动补偿生成预测图像p。
当以上述这样的方式导出预测运动矢量mvl0和预测运动矢量mvl1时,通过改进的模板匹配进行的运动信息导出处理随之结束。
预测部30以上述这样的方式使用原始图像通过改进的模板匹配导出运动信息。这使得可以更快速地获得更准确的预测运动矢量。
<预测部的配置>
此外,在以fruc模式执行通过改进的模板匹配来导出运动信息的情况下,图像解码装置201的预测部216包括例如图37所示的配置作为通过改进的模板匹配来导出运动信息的配置。
特别地,在图37所示的示例中,预测部216包括候选获取部401、改进的模板匹配处理部402、子块候选获取部403和改进的模板匹配处理部404。
此外,改进的模板匹配处理部402包括候选选择部411和运动矢量导出部412,并且改进的模板匹配处理部404包括候选选择部413和运动矢量导出部414。
应当注意,由于候选获取部401至改进的模板匹配处理部404分别与图34的候选获取部361至改进的模板匹配处理部364类似,因此省略对候选获取部401至改进的模板匹配处理部404的描述。
同样,候选选择部411至运动矢量导出部414分别与图34的候选选择部371至运动矢量导出部374类似,因此,省略对它们的描述。
<fruc合并模式解码处理的描述>
现在,参照图38的流程图描述由图像解码装置201进行的fruc合并模式解码处理。该fruc合并模式解码处理以cu为单位或以子块为单位来执行。
应当注意,由于步骤s861至步骤s867处的处理分别与图19的步骤s251至步骤s257处的处理类似,因此省略对步骤s861至步骤s867处的处理的描述。
在步骤s865处判定不执行双向匹配的情况下,预测部216在步骤s868处基于fruc_mode_flag判定是否要执行改进的模板匹配。例如,在fruc_mode_flag的值是指示要执行改进的模板匹配的值的情况下,判定要执行改进的模板匹配。
在步骤s868处判定要执行改进的模板匹配的情况下,在步骤s869处,预测部216通过改进的模板匹配方法导出运动信息。因此,获得预测运动矢量作为解码目标的块的运动信息。此处,获得上文描述的预测运动矢量mvl0和预测运动矢量mvl1。
在步骤s870处,预测部216基于通过在步骤s869处的处理导出的运动信息(即,基于预测运动矢量)执行运动补偿,以生成预测图像p并且将预测图像p提供给运算部214。
例如,预测部216从帧存储器215中读出由参考图像指定信息指示的两个解码图像作为参考图片,并且使用参考图片中的由预测运动矢量指示的块通过运动补偿生成预测图像p。
以这种方式获得预测图像p之后,处理进行到步骤s873。
另一方面,在步骤s868处判定不执行改进的模板匹配或者在步骤s863处判定cu或子块是p切片的情况下,执行在步骤s871和步骤s872处的处理,并且之后,处理进行到步骤s873。应当注意,由于步骤s871和步骤s872处的处理分别与图19的步骤s258和步骤s259处的处理类似,因此省略对步骤s871和步骤s872处的处理的描述。
此外,在执行步骤s867处的处理之后,在执行步骤s870处的处理之后或者在执行步骤s872处的处理之后,执行步骤s873和步骤s874处的处理,并且fruc合并模式解码处理随之结束。应当注意,由于步骤s873和步骤s874处的处理分别与图19的步骤s260和步骤s261处的处理类似,因此省略对步骤s873和步骤s874处的处理的描述。
图像解码装置201通过fruc模式导出运动信息,并且以如上所述的方式对解码目标的块进行解码。通过利用fruc模式并且在解码侧导出运动信息,可以减少编码流的代码量,并且可以提高编码效率。
<通过改进的模板匹配进行的运动信息导出处理的描述>
此处,参照图39的流程图描述与图38的步骤s869处的处理相对应的并且由预测部216执行的通过改进的模板匹配进行的运动信息导出处理。
在步骤s901处,候选获取部401获取预测运动矢量候选,并且在步骤s902处,由候选获取部401为预测运动矢量候选分配索引号。
应当注意,由于步骤s901和步骤s902处的处理分别与图36的步骤s821和步骤s822处的处理类似,因此省略对步骤s901和步骤s902处的处理的描述。
在步骤s903处,预测部216从解码部211获取指示预测运动矢量候选的索引号。
特别地,解码部211通过对编码流进行解码来获取预测运动矢量候选的索引号、差分运动矢量和选择信息。预测部216通过从解码部211获取包括索引号、差分运动矢量和选择信息的预测信息pinfo来获取索引号。应当注意,此处获取的索引号和差分运动矢量是在图36的步骤s823和步骤s824处获得的索引号和差分运动矢量。
在步骤s904处,运动矢量导出部412基于在步骤s903处获取的索引号生成预测运动矢量。
特别地,候选选择部411从由候选列表指示的预测运动矢量候选中选择由在步骤s903处获取的索引号指示的预测运动矢量候选。然后,运动矢量导出部412将在步骤s903处获取的差分运动矢量与作为由候选选择部411选择的预测运动矢量候选的相邻运动矢量相加,以获得预测运动矢量mvl0。
应当注意,在不存在预测运动矢量候选的情况下,由候选选择部411选择的预测运动矢量候选被原样确定为预测运动矢量mvl0。此处,由于选择信息是导出预测运动矢量mvl0的信息,因此在获得预测运动矢量mvl0之后,导出预测运动矢量mvl1。然而,当选择信息是导出预测运动矢量mvl1的信息时,在获得预测运动矢量mvl1之后导出预测运动矢量mvl0。
在导出预测运动矢量mvl0之后,执行步骤s905至步骤s913处的处理,并且通过改进的模板匹配进行的运动信息导出处理随之结束。然而,由于步骤s905至步骤s913处的处理分别与图36的步骤s825至步骤s833处的处理类似,因此省略对步骤s905至步骤s913处的处理的描述。例如,在图38的步骤s870处,使用通过如上所述的处理导出的预测运动矢量mvl0和预测运动矢量mvl1来生成预测图像p。
预测部216以如上所述的方式使用由索引号指示的预测运动矢量候选导出预测运动矢量mvl0。这使得可以更快速地获得更准确的预测运动矢量。
<第六实施方式>
<fruc模式下的并行处理>
顺便提及,为了提高在fruc模式下导出每个块的运动信息时的处理速度,一种解决方案是执行用于关于多个块并行地导出运动信息的处理。
例如,如图40所示,假设在预定图片pic71中存在连续排列的块b0至块b5。此外,假设在由斜线指示的块b1、块b2和块b4中,通过fruc模式执行用于编码或解码的处理,并且在剩余的块b0、块b3和块b5中,通过与fruc模式不同的模式执行编码或解码。此处应当注意,在执行解码的假设下继续以下描述。
例如,如果可以针对由fruc模式处理的块b1、块b2和块b4并行地执行解码,则由于三个块被同时解码,因此可以加快解码处理。
然而,如果考虑fruc模式下的运动信息的导出,则当首先收集预测运动矢量候选,即起点的候选时,需要参考作为处理目标的块周围的块的预测运动矢量的相邻运动矢量。
因此,在本示例中,当对块b2执行fruc模式的处理时,需要使用相邻块b1的区域作为周边区域并且参考(收集)周边区域的预测运动矢量(相邻运动矢量)。
应当注意,在图40中,每个箭头标记表示箭头标记的开始位置处的块参考箭头标记的结束位置处的块的信息。
由于在解码时,每个块必须参考在图40中在左侧与其相邻的块,即使尝试并行地对块b1、块b2和块b4执行解码,也可能级联出现完成对参考目的地的处理之前不能获取块的相邻运动矢量的情况。因此,如果这继续,则不能并行处理这些块以提高处理速度。
因此,在fruc模式下导出的预测运动矢量(相邻运动矢量)可以适当地避免被称为预测运动矢量候选。这使得可以防止级联出现完成对参考目的地的处理之前不能开始导出运动矢量的这样的情况。
在这种情况下,例如,可以总是防止由fruc模式导出的预测运动矢量(相邻运动矢量)成为预测运动矢量候选,而不依赖于条件。
此外,例如,可以使用控制信号fluc_mv_decoupling_flag来控制是否要使在fruc模式下导出的预测运动矢量成为预测运动矢量候选。
在刚刚描述的这样的情况下,在控制信号fluc_mv_decoupling_flag的值为1的情况下,通过fruc模式导出的预测运动矢量避免被确定为预测运动矢量候选。相比之下,在控制信号fluc_mv_decoupling_flag的值为0的情况下,还将由fruc模式导出的预测运动矢量确定为预测运动矢量候选。
例如,控制信号fluc_mv_decoupling_flag的值由图像编码装置11预先确定,并且控制信号fluc_mv_decoupling_flag被控制部21作为编码参数放置到编码参数中。
通过刚刚描述的配置,图像编码装置11的预测部30和图像解码装置201的预测部216响应于控制信号fluc_mv_decoupling_flag来参考预测运动矢量的同一候选,以导出运动信息。
应当注意,假设使用这样的控制信号fluc_mv_decoupling_flag,继续以下描述。
此处,参照图41和图42描述控制信号fluc_mv_decoupling_flag的值为1的情况下的处理的示例。应当注意,图41和图42中与图40中的部分相似的部分由相同的附图标记表示并且适当地省略对它们的描述。
例如,如果通过fruc模式对图41所示的示例中的块b1进行解码,则预测部216保存块b1是通过fruc模式解码的块的fruc块信息。应当注意,在以下描述中,通过fruc模式解码(处理)的块,即,通过fruc模式从其导出运动信息的块,也被称为fruc块。
由此,例如,当预测部216收集关于块b2的预测运动矢量候选时,可以参考关于块b1的fruc_flag块信息来掌握(指定)块b1是fruc块。
应当注意,在以下描述中,不是fruc块的块,即不是由fruc模式处理的块,也被称为非fruc块。
在该示例中,例如,当收集关于块b2的预测运动矢量候选时,尽管块b1最初被确定为预测运动矢量候选,但是由于块b1是fruc块,所以它不被确定为预测运动矢量候选。
然后,代替块b1,将图41中在左侧与块b1相邻的块b0或图41中在上侧与块b1相邻的非fruc块确定为预测运动矢量候选。特别地,将与作为fruc块的块b1相邻的非fruc块的预测运动矢量(相邻运动矢量)确定为关于块b2的预测运动矢量候选。
应当注意,在图41中在上侧与块b0或块b1相邻的块是fruc块的情况下,在上侧与该块进一步相邻的非fruc块被确定为预测运动矢量候选。
特别地,例如,当块b0是fruc块并且图41中在左侧与块b0相邻的块是非fruc块时,该非fruc块被确定为预测运动矢量候选。
类似地,例如,当图41中在上侧与块b1相邻的块是fruc块并且图41中在上侧与该块相邻的块是非fruc块时,使该非fruc块成为预测运动矢量候选。
简而言之,在本示例中,以比解码目标的块执行解码处理的顺序位于更早侧的并且此外最接近解码目标的块的非fruc块被确定为预测运动矢量候选。换句话说,在解码目标的块之前经历解码处理并且此外最接近解码目标的块的非fruc块被确定为预测运动矢量候选。
应当注意,当与解码目标的块相邻并且最初要成为预测运动矢量候选的块是fruc块时,该fruc块可以在假设关于该fruc块的预测运动矢量是预先确定的矢量(例如零矢量)的情况下成为预测运动矢量候选。
此外,类似于块b1,同样关于作为fruc块的块b2,保存块b2是fruc块的fruc块信息,并且同样关于块b4,保存块b4是fruc块的fruc块信息。
例如,通过以这种方式收集关于每个块的预测运动矢量候选,可以立即从块b1参考块b0。换句话说,关于块b1,块b0被确定为预测运动矢量候选。
同时,关于块b2,由于可以从fruc块信息指定块b1是fruc块,因此不是块b1而是块b0被确定为预测运动矢量候选,并且可以立即参考预测运动矢量候选。
此外,尽管块b3是非fruc块,但是例如,当在amvp模式下或类似情况下对块b3进行解码时,从块b3收集预测运动矢量候选。
特别地,在块b3中,可以从fruc块信息指定块b2和块b1是fruc块。此外,假设,例如,图41中在上侧与块b2相邻的块是非fruc块。
在这种情况下,关于块b3,图41中在上侧与块b2相邻并且是非fruc块(该非fruc块比块b3在解码顺序上更早并且最接近块b3)的块被确定为预测运动矢量候选,并且块b3可以立即参考预测运动矢量候选。
关于块b4,由于相邻块b3不是fruc块,因此块b3被确定为预测运动矢量候选,并且块b4可以立即参考预测运动矢量候选。
此外,关于块b5,由于根据fruc块信息,块b4可以被指定为fruc块,因此不是块b4而是块b3被确定为预测运动矢量候选,并且块b5可以立即参考预测运动矢量候选。
通过以如上所述的这样的方式收集关于解码目标的块的预测运动矢量候选以生成候选列表和子块候选列表,如图42所示,fruc块的块匹配的结果(即,预测运动矢量)不再被参考。
图42表示了不参考作为fruc块的块b1、块b2和块b4。
在这种情况下,在块b1至块b5中,在fruc块中获得的预测运动矢量不包括在要收集的预测运动矢量候选中。
因此,可以同时(即,并行地)对作为fruc块的块b1、块b2和块b4进行解码,并且可以整体实现解码处理的加速。应当注意,尽管此处作为示例描述了执行解码处理的情况,但是由于在执行编码处理的情况下也使用解码图像,因此可以通过类似的原因来实现编码处理的速度的提高。
通过以如上所述的这样的方式收集关于处理目标的块的预测运动矢量候选以生成候选列表或子块候选列表,可以实现多个fruc块的并行处理,并且可以实现编码处理和解码处理的速度的提高。
在这种情况下,获取作为在处理目标的块附近预先确定的周边区域中的非fruc块的周边区域的相邻运动矢量(即与处理目标的块相邻的运动矢量)作为预测运动矢量候选。此外,当周边区域是fruc块时,获取周边区域附近的非fruc块的相邻运动矢量作为预测运动矢量候选。
特别地,在图像编码装置11中,关于在fruc模式下处理的块,例如,在执行图12的步骤s96或步骤s97处的处理的时刻,生成fruc块信息,并且fruc块信息被保存到预测部30中。
然后,例如,在图13的步骤s131或步骤s134处,基于fruc块信息,从预测运动矢量(起点)的候选中排除关于其fruc块是周边区域的相邻运动矢量。特别地,不选择fruc块的相邻运动矢量作为预测运动矢量候选,而是选择不同块(非fruc块)的预测运动矢量作为运动矢量候选来代替相邻运动矢量。此时,可以不选择(获取)运动矢量的替代候选。
类似地,例如,同样在图14的步骤s161或步骤s164处,基于fruc块信息从预测运动矢量候选中排除关于其fruc块是周边区域的相邻运动矢量。
此外,同样在图像解码装置201中,在从解码部211向预测部216提供从编码流中读出并且其值为1的控制信号fruc_mv_decoupling_flag的情况下,执行与在图像编码装置11中的情况类似的处理。
特别地,例如,在执行图19的步骤s256或步骤s258处的处理的时刻,关于在fruc模式下处理的块,生成fruc块信息并将fruc块信息保存到预测部216中。
然后,例如,在图20的步骤s291或步骤s294处,基于fruc块信息从预测运动矢量候选中排除关于其fruc块是周边区域的相邻运动矢量。特别地,不选择fruc块的相邻运动矢量作为预测运动矢量候选,而是选择不同块(非fruc块)的预测运动矢量作为运动矢量候选来代替相邻运动矢量。
类似地,例如,同样在图21的步骤s331或步骤s334处,基于fruc块信息,从预测运动矢量候选中排除关于其fruc块是周边区域的相邻运动矢量。
应当注意,不仅在模板匹配和双向匹配中而且在上述改进的模板匹配中,可以从预测运动矢量候选中排除关于其fruc块是周边区域的相邻运动矢量。
如上所述,利用本技术,可以更快速地获得运动信息。此外,上述本技术可以应用于各种电子设备和系统,例如服务器、网络系统、电视机、个人计算机、便携式电话机、记录和再现装置、成像装置或便携式设备。注意,自然也可以适当地组合上述实施方式。
<计算机的配置的示例>
虽然说明书中描述的一系列处理可以由硬件来执行,但也可以由软件来执行。在通过软件执行一系列处理的情况下,将配置软件的程序安装到计算机中。此处,计算机包括并入专用硬件中的计算机或例如可以通过安装各种程序来执行各种功能的通用计算机。
图43是示出通过程序执行上述一系列处理的计算机的硬件配置的示例的框图。
在计算机中,cpu(中央处理单元)501、rom(只读存储器)502和ram(随机存取存储器)503通过总线504彼此连接。
输入/输出接口505还连接至总线504。输入部506、输出部507、记录部508、通信部509和驱动器510耦合至输入/输出接口505。
输入部506包括键盘、鼠标、麦克风、成像装置等。输出部507包括显示器、扬声器阵列等。记录部508包括硬盘、非易失性存储器等。通信部509包括网络接口等。驱动器510驱动可移除记录介质511,例如磁盘、光盘、磁光盘、半导体存储器等。
在以如上所述的方式配置的计算机中,cpu501通过输入/输出接口505和总线504将例如记录在记录部508中的程序加载到ram503中,并且执行程序以执行上述一系列过程。
由计算机(cpu501)执行的程序可以例如以封装介质的形式记录在可移除记录介质511上并且被提供。此外,可以通过诸如局域网、因特网或数字卫星广播的有线或无线传输介质来提供程序。
在计算机中,通过将可移除记录介质511加载到驱动器510中,可以通过输入/输出接口505将程序安装到记录部508中。此外,程序可以由通信部509通过有线或无线传输介质来接收并且安装到记录部508中。此外,还可以预先将程序安装到rom502或记录部508中。
应当注意,由计算机执行的程序可以是按照本说明书中描述的顺序按时间序列执行其处理的程序,或者可以是并行执行或在必要时刻(例如当调用时)执行其处理的程序。
此外,本技术的实施方式不限于上述实施方式,并且可以在不脱离本技术的主题的情况下以各种方式进行修改。
例如,本技术可以采用用于云计算的配置,其中一个功能由多个装置通过网络共享和协作处理。
此外,结合上文描述的流程图描述的步骤可以由一个装置执行,并且可以通过多个装置的协作来执行。
此外,在一个步骤中包括多个处理的情况下,一个步骤中包括的多个处理可以由一个装置执行,或者可以通过多个装置的协作来执行。
此外,本说明书中描述的有利效果始终是示例性的并且不是限制性的,并且可以获得其他有利效果。
此外,本技术也可以采取以下配置。
(1)
一种图像处理装置,包括:
预测部,其被配置成基于多个运动矢量候选之中的给定上限数量的运动矢量候选,使用具有与处理目标的块的图像的时间不同的时间的参考图像来导出所述块的运动矢量。
(2)
根据(1)所述的图像处理装置,其中,
所述预测部通过使用所述参考图像的块匹配来导出所述运动矢量。
(3)
根据(1)或(2)所述的图像处理装置,其中,
所述预测部通过基于包括所述块的所述图像和所述参考图像的模板匹配来导出所述运动矢量。
(4)
根据(1)或(2)所述的图像处理装置,其中,
所述预测部通过基于具有彼此不同的时间的所述参考图像的双向匹配来导出所述运动矢量。
(5)
根据(1)或(2)所述的图像处理装置,其中,
所述预测部获取指示所述上限数量的上限数量信息,并且在基于包括所述块的所述图像和所述参考图像的模板匹配和基于具有彼此不同的时间的所述参考图像的双向匹配中的一者的上限数量为零的情况下,通过所述模板匹配和所述双向匹配中的另一者来导出所述运动矢量。
(6)
根据(1)至(5)中任一项所述的图像处理装置,还包括:
编码部,其被配置成对指示是通过模板匹配导出所述运动矢量还是通过双向匹配导出所述运动矢量的信息进行编码。
(7)
根据(1)至(6)中任一项所述的图像处理装置,还包括:
编码部,其被配置成对指示所述上限数量的上限数量信息进行编码。
(8)
根据(1)至(7)中任一项所述的图像处理装置,其中,
所述上限数量是基于与处理目标的图像有关的信息确定的。
(9)
根据(1)至(8)中任一项所述的图像处理装置,其中,
所述预测部并行地执行用于导出所述块的运动矢量的处理中的至少一部分处理。
(10)
根据(9)所述的图像处理装置,其中,
所述预测部包括:
运动矢量导出部,所述运动矢量导出部包括用于关于所述运动矢量候选通过块匹配导出所述运动矢量和成本的多个匹配处理电路;以及
候选选择部,所述候选选择部被配置成:从由所述多个匹配处理电路并行地导出的运动矢量之中,选择指示最低成本的运动矢量作为所述块的最终运动矢量。
(11)
根据(9)所述的图像处理装置,其中,
所述预测部包括:
候选选择部,所述候选选择部包括用于计算指示所述运动矢量候选的预测运动矢量相似度的成本的多个成本运算电路,并且所述候选选择部从所述多个运动矢量候选之中选择指示由所述多个成本运算电路并行地计算的多个成本之中的最低成本的运动矢量候选;以及
运动矢量导出部,所述运动矢量导出部被配置成基于由所述候选选择部选择的运动矢量候选通过块匹配来导出所述运动矢量。
(12)
根据(1)至(11)中任一项所述的图像处理装置,其中,
所述预测部基于所述运动矢量来生成所述块的预测图像。
(13)
一种图像处理方法,包括以下步骤:
基于多个运动矢量候选之中的给定上限数量的运动矢量候选,使用具有与包括处理目标的块的图像的时间不同的时间的参考图像来导出所述块的运动矢量。
(14)
一种图像处理装置,包括:
预测部,其被配置成:关于多个运动矢量候选,计算原始图像的处理目标的块与具有与所述原始图像的时间不同的时间的解码图像中的由运动矢量候选中的每个运动矢量候选指示的块之间的差,并且基于所述差从所述多个运动矢量候选之中选择一个运动矢量候选;以及
编码部,其被配置成:对指示由所述预测部选择的运动矢量候选的信息进行编码。
(15)
根据(14)所述的图像处理装置,其中,
所述预测部:
基于所述原始图像和具有与所述解码图像的时间不同的时间的不同解码图像以及所述解码图像中的由所选择的运动矢量候选指示的块,通过块匹配来导出所述处理目标的块与所述不同解码图像之间的运动矢量;并且
基于所选择的运动矢量候选和所述运动矢量,生成所述处理目标的块的预测图像。
(16)
根据(14)所述的图像处理装置,其中,
所述预测部基于所选择的运动矢量候选,通过块匹配导出所述处理目标的块的运动矢量,并且导出所述运动矢量与所述运动矢量候选之间的差作为差分运动矢量;以及
所述编码部对所述信息和所述差分运动矢量进行编码。
(17)
一种图像处理方法,包括以下步骤:
关于多个运动矢量候选,计算原始图像的处理目标的块与具有与所述原始图像的时间不同的时间的解码图像中的运动矢量候选中的每个运动矢量候选指示的块之间的差,并且基于所述差从所述多个运动矢量候选中选择一个运动矢量候选;以及
对指示由所述预测部选择的运动矢量候选的信息进行编码。
(18)
一种图像处理装置,包括:
预测部,其被配置成获取指示运动矢量候选的信息,并且基于具有与包括处理目标的块的图像的时间不同的时间的参考图像上的块以及具有与所述图像和所述参考图像的时间不同的时间的不同参考图像,通过块匹配来导出所述处理目标的块与所述不同参考图像之间的第二运动矢量,所述参考图像上的块由第一运动矢量来指示,所述第一运动矢量从由所述信息指示的所述运动矢量候选获得。
(19)
根据(18)所述的图像处理装置,其中,
所述预测部基于所述第一运动矢量和所述第二运动矢量来生成所述处理目标的块的预测图像。
(20)
根据(18)或(19)所述的图像处理装置,其中,
所述预测部获取差分运动矢量并且将所述差分运动矢量和所述运动矢量候选求和,以获得所述第一运动矢量。
(21)
一种图像处理方法,包括以下步骤:
获取指示运动矢量候选的信息,并且基于具有与包括处理目标的块的图像的时间不同的时间的参考图像上的块以及具有与所述图像和所述参考图像的时间不同的时间的不同参考图像,通过块匹配来导出所述处理目标的块与所述不同参考图像之间的第二运动矢量,所述参考图像上的块由第一运动矢量来指示,所述第一运动矢量由所述信息指示并且从所述运动矢量候选获得。
(22)
一种图像处理装置,包括:
预测部,其被配置成从处理目标的块附近的周边区域之中获取未以fruc模式处理的所述周边区域中的运动矢量作为运动矢量候选,并且基于所获取的运动矢量候选,使用具有与包括所述处理目标的块的图像的时间不同的时间的参考图像来导出所述处理目标的块的运动矢量。
(23)
根据(22)所述的图像处理装置,其中,
在以fruc模式处理所述周边区域的情况下,所述预测部获取与所述周边区域相邻并且未以fruc模式处理的区域中的运动矢量作为所述运动矢量候选。
(24)
一种图像处理方法,包括以下步骤:
从处理目标的块附近的周边区域之中获取未以fruc模式处理的周边区域中的运动矢量作为运动矢量候选,并且基于所获取的运动矢量候选,使用具有与包括所述处理目标的块的图像的时间不同的时间的参考图像来导出所述处理目标的块的运动矢量。
附图标记列表
11图像编码装置,21控制部,30预测部,51候选获取部,52双向匹配处理部,53子块候选获取部,54双向匹配处理部,91候选获取部,92模板匹配处理部,93子块候选获取部,94模板匹配处理部,201图像解码装置,211解码部,216预测部。