预测图像生成装置、运动图像解码装置、以及运动图像编码装置的制作方法

文档序号:15577088发布日期:2018-09-29 05:43阅读:450来源:国知局

本发明涉及一种预测图像生成装置、运动图像解码装置、以及运动图像编码装置。



背景技术:

为了有效率地传输或记录运动图像,使用有通过对运动图像进行编码而生成编码数据的运动图像编码装置、以及通过对该编码数据进行解码而生成解码图像的运动图像解码装置。

作为具体的运动图像编码方式,例如可列举在h.264/mpeg-4.avc、hevc(high-efficiencyvideocoding:高效视频编码)中提出的方式等。

在这种运动图像编码方式中,构成运动图像的图像(图片)被由通过对图像进行分割而获得的切片(slice)、通过对切片进行分割而获得的编码单元(有时也称为编码单元(codingunit))、以及作为通过对编码单元进行分割而获得的块的预测单元(pu)、变换单元(tu)形成的分级结构管理,从而按块进行编码、解码。

此外,在这种运动图像编码方式中,通常,基于通过对输入图像进行编码/解码而获得的局部解码图像生成预测图像,而对从输入图像(原图像)中减去该预测图像而获得的预测残差(有时也称为“差分图像”或“残差图像”)进行编码。作为预测图像的生成方法,可列举画面间预测(帧间预测)以及画面内预测(帧内预测)。

此外,作为近年来的运动图像编码以及解码的技术,可列举非专利文献1。

现有技术文献

非专利文献

非专利文献1:video/jvet,“algorithmdescriptionofjointexplorationtestmodel1(jem1)”,internationalorganizationforstandardizationorganisationinternationaledenormalisationiso/iecjtc1/sc29/wg11codingofmovingpicturesandaudio,iso/iecjtc1/sc29/wg11/n15790,october2015,geneva,ch.



技术实现要素:

发明要解决的问题

在近年来的运动图像编码以及解码技术中,实施有在生成预测图像时的运动补偿处理中使用运动补偿滤波的技术。另一方面,产生了运动补偿的精度越提升,所需的滤波系数越增加,预先储存滤波系数所需的存储量越增加的第一课题。

此外,在近年来的运动图像编码以及解码技术中,实施有使用高精度的运动矢量来生成预测图像的技术。另一方面,为了使用高精度的运动矢量,差分矢量的代码量增大,因此,产生了编码效率未必提高的第二课题。

本发明提供一种能够解决上述的第一以及第二课题的至少任一方的图像解码装置、图像编码装置、以及预测图像生成装置。

技术方案

为了解决上述课题,本发明的一方案的预测图像生成装置通过对参照图像进行运动补偿来生成预测图像,所述预测图像生成装置具备:滤波部,对使运动矢量作用于上述参照图像而获得的1/mac像素精度的应用完运动矢量的图像发挥作用,上述滤波部使利用由相位i(i为0以上mac-1以下的整数)和滤波系数位置k(k为0以上ntaps-1以下的整数,ntaps为抽头数)指定的滤波系数mcfilter[i][k]的滤波处理对上述应用完运动矢量的图像发挥作用,上述滤波系数mcfilter[i][k]处于滤波系数mcfilter[p][k](p≠i)以及滤波系数mcfilter[q][k](q≠i)的加权平均值的关系。

此外,为了解决上述课题,本发明的一方案的预测图像生成装置通过对参照图像进行运动补偿来按预测块生成预测图像,所述预测图像生成装置具备:运动矢量推导部,通过按预测块对预测矢量加上或减去差分矢量来推导运动矢量,上述运动矢量推导部根据预测块的尺寸,切换相对于该预测块推导出的运动矢量的精度。

此外,为了解决上述课题,本发明的一方案的预测图像生成装置通过对参照图像进行运动补偿来按预测块生成预测图像,所述预测图像生成装置具备:运动矢量推导部,通过按预测块对预测矢量加上或减去差分矢量来推导运动矢量,上述运动矢量推导部根据与预测块相关的量化参数的大小,切换相对于该预测块推导出的运动矢量的精度。

此外,为了解决上述课题,本发明的一方案的预测图像生成装置通过对参照图像进行运动补偿来生成预测图像,所述预测图像生成装置具备:运动矢量推导部,通过对预测矢量加上或减去逆量化后的差分矢量来推导运动矢量,上述运动矢量推导部根据量化后的差分矢量的量化值,切换针对差分矢量的逆量化处理的精度。

此外,为了解决上述课题,本发明的一方案的预测图像生成装置通过对参照图像进行运动补偿来生成预测图像,所述预测图像生成装置具备:运动矢量推导部,通过对预测矢量加上或减去差分矢量来推导运动矢量,上述运动矢量推导部在指示运动矢量的精度的标志表示出第一值的情况下,根据量化后的差分矢量的量化值,切换针对差分矢量的逆量化处理的精度,在指示运动矢量的精度的标志表示出第二值的情况下,不论量化后的差分矢量的量化值为何值,都以固定的精度进行针对差分矢量的逆量化处理。

此外,为了解决上述课题,本发明的一方案的预测图像生成装置通过对参照图像进行运动补偿来生成预测图像,所述预测图像生成装置具备:运动矢量推导部,通过对预测矢量加上或减去差分矢量来推导运动矢量,上述运动矢量推导部在指示运动矢量的精度的标志表示出第一值的情况下,根据量化后的差分矢量的量化值,对将针对差分矢量的逆量化处理的精度设为第一精度还是设为第二精度进行切换,在指示运动矢量的精度的标志表示出第二值的情况下,根据量化后的差分矢量的量化值,对将针对差分矢量的逆量化处理的精度设为第三精度还是第四精度进行切换,上述第一精度以及第二精度的至少任一个精度比上述第三精度以及第四精度高。

有益效果

根据以上的构成,能够解决上述的第一以及第二课题的至少任一个课题。

附图说明

图1是表示本实施方式的编码流的数据的分级结构的图。

图2是表示pu分割模式的图案的图。图2(a)~(h)分别表示pu分割模式为2n×2n、2n×n、2n×nu、2n×nd、n×2n、nl×2n、nr×2n、以及n×n的情况的分区形状。

图3是表示参照图片列表的一个示例的概念图。

图4是表示参照图片的示例的概念图。

图5是表示本实施方式的图像解码装置的构成的概略图。

图6是表示本实施方式的帧间预测参数解码部的构成的概略图。

图7是表示本实施方式的合并预测参数推导部的构成的概略图。

图8是表示本实施方式的amvp预测参数推导部的构成的概略图。

图9是表示矢量候选的一个示例的概念图。

图10是表示本实施方式的帧间预测参数解码控制部的构成的概略图。

图11是表示本实施方式的帧间预测图像生成部的构成的概略图。

图12是表示本实施方式的图像编码装置的构成的框图。

图13是表示本实施方式的帧间预测参数编码部的构成的概略图。

图14是表示本发明的实施方式的图像传输系统的构成的概略图。

图15是表示通过本实施方式的帧间预测参数解码控制部进行的帧间预测语法解码处理的流程的流程图。

图16是表示本实施方式的差分矢量解码处理的示例的流程图。

图17是表示本实施方式的差分矢量解码处理的其它示例的流程图。

图18是表示通过本实施方式的帧间预测参数解码部进行的运动矢量推导处理的流程的流程图。

图19是表示本实施方式的差分矢量推导处理的示例的流程图。

图20是表示本实施方式的预测矢量循环处理的示例的流程图。

图21是具体地表示本实施方式的运动矢量尺度推导处理的示例的流程图。

图22是更具体地表示本实施方式的运动矢量尺度推导处理的其它示例的流程图。

图23是更具体地表示本实施方式的运动矢量尺度推导处理的其它示例的流程图。

图24(a)~图24(c)是表示本实施方式的基本矢量精度和指示根据对象块的块尺寸而设定(切换)的运动矢量精度的参数(shifts)的关系的表格。

图25(a)~图25(c)是表示与指示根据本实施方式的对象块的块尺寸和运动矢量精度标志而设定(切换)的运动矢量精度的参数(shifts)的关系的表格。

图26(a)~图26(c)是表示指示根据本实施方式的qp而设定(切换)的运动矢量精度的参数(shifts)的表格。

图27(a)和图27(b)是表示根据本实施方式的qp和运动矢量精度标志而设定(切换)的运动矢量精度(shifts)的表格。

图28是表示本实施方式的已量化差分矢量与逆量化差分矢量的关系的曲线图。

图29是更具体地表示本实施方式的运动矢量尺度推导处理的其它示例的流程图。

图30是表示本实施方式的运动补偿部的具体构成的框图。

图31是表示本实施方式的滤波系数的一个示例的图。

图32(a)是表示本实施方式的运动补偿滤波部从偶数相位的滤波系数计算出奇数相位的滤波系数的示例的图。图32(b)是表示本实施方式的运动补偿滤波部从奇数相位的滤波系数计算出偶数相位的滤波系数的示例的图。

图33是表示搭载有上述图像编码装置的发送装置、以及搭载有上述图像解码装置的接收装置的构成的图。图33(a)表示搭载有图像编码装置的发送装置,图33(b)表示搭载有图像解码装置的接收装置。

图34是表示搭载有上述图像编码装置的记录装置、以及搭载有上述图像解码装置的再现装置的构成的图。图34(a)表示搭载有图像编码装置的记录装置,图34(b)表示搭载有图像解码装置的再现装置。

具体实施方式

(第一实施方式)

以下,参照附图对本发明的实施方式进行说明。

图14是表示本实施方式的图像传输系统1的构成的概略图。

图像传输系统1是传输对编码对象图像进行了编码而得的代码,并对通过解码所传输的代码而得的图像进行显示的系统。图像传输系统1包含图像编码装置(运动图像编码装置)11、网络21、图像解码装置(运动图像解码装置)31以及图像显示装置41而构成。

图像编码装置11中输入指示单层或者多层的图像的信号t。层是在构成某时间的图片存在一个以上的情况下用于区别多个图片的概念。例如,当将相同图片在图像质量、分辨率不同的多个层进行编码时则成为可分级编码(scalablecoding),当将不同视点的图片在多个层进行编码时则成为视点可分级编码(viewscalablecoding)。当在多个层的图片间进行预测(层间预测、视点间预测)的情况下,编码效率大幅度提高。此外,即使在不进行预测的情况(同时联播(simulcast))的情况下,也能够汇总编码数据。

网络21将图像编码装置11所产生的编码流te传输至图像解码装置31。网络21是互联网(internet)、广域网(wan:wideareanetwork)、小型网络(lan:localareanetwork,局域网)或这些的组合。网络21不一定限定于双向的通信网,也可以是传输地面波数字广播、卫星广播等广播波的单向或双向的通信网。此外,网络21也可以用dvd(digitalversatiledisc:数字通用光盘)、bd(blue-raydisc:蓝光光盘,注册商标)等记录有编码流te的存储介质来代替。

图像解码装置31对网络21所传输的编码流te分别进行解码,生成分别解码后的一个或多个解码层图像td(解码视点图像td)。

图像显示装置41对图像解码装置31所生成的一个或多个解码层图像td的全部或一部分进行显示。例如,在视点可分级编码中,在显示全部的情况时显示三维图像(立体图像)、自由视点图像,在显示一部分的情况时显示二维图像。图像显示装置41例如具备液晶显示器、有机el(electro-luminescence:电致发光)显示器等显示设备。此外,在空间可分级编码、信噪比(snr)可分级编码中图像解码装置31、图像显示装置41具有较高的处理能力的情况下,显示图像质量高的增强层图像。此外,在图像解码装置31、图像显示装置41仅具有较低的处理能力的情况下,显示不需要增强层程度的高处理能力、显示能力的基本层图像(baselayerimage)。

<编码流te的结构>

在对本实施方式的图像编码装置11以及图像解码装置31进行详细说明之前,对由图像编码装置11生成并被图像解码装置31解码的编码流te的数据结构进行说明。

图1是表示编码流te中的数据的分级结构的图。编码流te示例性地包含序列以及构成序列的多个图片。图1(a)~图1(f)是分别表示既定序列seq的序列层、规定图片pict的图片层、规定切片s的切片层、规定切片数据的切片数据层、规定包含于切片数据的编码树单元的编码树层、规定包含于编码树的编码单元(cu:codingunit)的编码单元层的图。(序列层)

在序列层中,规定有图像解码装置31用于对处理对象的序列seq(以下,也称为对象序列)进行解码而参照的数据的集合。序列seq如图1(a)所示,包含视频参数集(videoparameterset)、序列参数集sps(sequenceparameterset)、图片参数集pps(pictureparameterset)、图片pict、以及补充增强信息sei(supplementalenhancementinformation)。在此,表示于#后的值表示层id。在图1中示出存在#0和#1即层0和层1的编码数据的示例,但层的种类以及层数并不取决于此。

视频参数集vps在由多个层构成的运动图像中,规定有多个运动图像通用的编码参数的集合、以及运动图像所包含的多个层和与各层相关连的编码参数的集合。

在序列参数集sps中,规定有图像解码装置31用于对对象序列进行解码而参照的编码参数的集合。例如,规定图片的宽度、高度。需要说明的是,sps也可以存在有多个。该情况下,从pps中选择多个sps的任一个。

在图片参数集pps中,规定有图像解码装置31用于对对象序列内的各图片进行解码而参照的编码参数的集合。例如包含用于图片的解码的量化宽度的基准值(pic_init_qp_minus26)、指示加权预测的应用的标志(weighted_pred_flag)。需要说明的是,pps也可以存在有多个。该情况下,从对象序列内的各图片中选择多个pps的任一个。

(图片层)

在图片层中,规定有图像解码装置31用于对处理对象的图片pict(以下,也称为对象图片)进行解码而参照的数据的集合。图片pict如图1(b)所示,包含切片s0~sns-1(ns为图片pict所包含的切片的总数)。

需要说明的是,以下,在无需对切片s0~sns-1分别进行区别的情况下,有时会省略代码的后缀地进行记述。此外,以下说明的包含于编码流te且标有后缀的其它数据也是同样的。

(切片层)

在切片层中,规定有图像解码装置31用于对处理对象的切片s(也称为对象切片)进行解码而参照的数据的集合。切片s如图1(c)所示,包含切片标头(sliceheader)sh以及切片数据sdata。

切片标头sh中包含图像解码装置31用于确定对象切片的解码方法而参照的编码参数群。指定切片类型的切片类型指定信息(slice_type)是包含于切片标头sh的编码参数的一个示例。

作为可由切片类型指定信息指定的切片类型,可列举:(1)在进行编码时仅使用帧内预测的i切片、(2)在进行编码时使用单向预测或帧内预测的p切片、以及(3)在进行编码时使用单向预测、双向预测、或帧内预测的b切片等。

需要说明的是,切片标头sh中也可以含有包含于上述序列层的对图片参数集pps的参照(pic_parameter_set_id)。

(切片数据层)

在切片数据层中,规定有图像解码装置31用于对处理对象的切片数据sdata进行解码而参照的数据的集合。切片数据sdata如图1(d)所示,包含编码树块(ctb:codedtreeblock)。ctb是构成切片的固定尺寸(例如64×64)的块,有时也称为最大编码单元(lcu:largestcordingunit)、编码树单元(ctu:codedtreeunit)。

(编码树层)

编码树层如图1(e)所示,规定有图像解码装置31用于对处理对象的编码树块进行解码而参照的数据的集合。编码树块通过递归的四叉树分割而被分割。将通过递归的四叉树分割而获得的树形结构的节点称为编码树(codingtree)。四叉树的中间节点为编码四叉树(cqt:codedquadtree),编码树块本身也被规定为最上层的cqt。cqt包含分割标志(split_flag),在split_flag为1的情况下,分割为4个编码树单元cqt。在split_flag为0的情况下,编码树单元cqt不进行分割,而是具有一个编码单元(cu:codedunit)作为节点。编码单元cu为编码树层的末端节点,在该层中不进行进一步分割。编码单元cu成为编码处理的基本单元。

此外,在编码树块ctb的尺寸为64×64像素的情况下,编码单元的尺寸可获得64×64像素、32×32像素、16×16像素、以及8×8像素中的任一个。

(编码单元层)

编码单元层如图1(f)所示,规定有图像解码装置31用于对处理对象的编码单元进行解码而参照的数据的集合。具体而言,编码单元由编码树、预测树、变换树、以及cu标头cuf构成。在编码树中规定分割标志、分割图案、预测模式等。

预测树中,规定了将编码单元分割为一个或多个而得的各预测块的预测信息(参照图片索引、运动矢量等)。如果以其它表述来说,预测块是构成编码单元的一个或多个不重复的区域。此外,预测树包含通过上述的分割而获得的一个或多个预测块。需要说明的是,以下将进一步分割预测块而得的预测单元称为“子块”。子块(预测块)由一个或多个像素构成。在预测块与子块的尺寸相等的情况下,预测块中的子块为一个。在预测块的尺寸大于子块的尺寸的情况下,预测块被分割为子块。例如在预测块为8×8、子块为4×4的情况下,预测块被水平地分割为两部分,被垂直地分割为两部分,从而分割成四个子块。

预测处理按该预测块(子块)进行。以下,也将作为预测的单元的预测块称为预测单元(pu:predictionunit,预测单元)。

预测树中的分割的种类大体来说有帧内预测的情况和帧间预测的情况两种。帧内预测是相同图片内的预测,帧间预测是指在相互不同的图片间(例如,显示时刻间,层图像间)进行的预测处理。

在帧内预测的情况下,分割方法有2n×2n(与编码单元相同尺寸)和n×n。

此外,在帧间预测的情况下,分割方法根据编码数据的pu分割模式(part_mode)而进行编码。分割中有2n×2n(与编码单元相同尺寸)、2n×n、2n×nu、2n×nd、n×2n、nl×2n、nr×2n、以及n×n等。需要说明的是,2n×nu表示将2n×2n的编码单元从上到下依次分割为2n×0.5n和2n×1.5n两个区域。2n×nd表示将2n×2n的编码单元从上到下依次分割为2n×1.5n和2n×0.5n两个区域。nl×2n表示将2n×2n的编码单元从左到右依次分割为0.5n×2n和1.5n×2n两个区域。nr×2n表示将2n×2n的编码单元从左到右依次分割为1.5n×2n和0.5n×1.5n两个区域。分割数为一、二、四中的任一个,因此包含于cu的pu为一个至四个。将这些pu依次表示为pu0、pu1、pu2、pu3。

图2(a)~图2(h)中,针对各分割类型具体地图示出了cu中的pu分割的边界的位置。

需要说明的是,图2(a)表示不进行cu的分割的2n×2n的pu分割模式。

此外,图2(b)、图2(c)、以及图2(d)分别表示pu分割模式分别为2n×n、2n×nu、以及2n×nd的情况下的分区的形状。以下,将pu分割模式为2n×n、2n×nu、以及2n×nd的情况的分区统称为横长分区。

此外,图2(e)、图2(f)、以及图2(g)分别表示pu分割模式为n×2n、nl×2n、以及nr×2n的情况下的分区的形状。以下,将pu分割类型为n×2n、nl×2n、以及nr×2n的情况的分区统称为纵长分区。

此外,将横长分区以及纵长分区统称为长方形分区。

此外,图2(h)表示pu分割模式为n×n的情况的分区的形状。基于其分区的形状,也将图2(a)以及图2(h)的pu分割模式称为正方形分割。此外,也将图2(b)~图2(g)的pu分割模式称为非正方形分割。

此外,在图2(a)~图2(h)中,赋予各区域的编号表示区域的标识号,按照该标识号的顺序依次对区域进行处理。即,该标识号表示分区的扫描顺序。

此外,在图2(a)~图2(h)中,设为左上为cu的基准点(原点)。

此外,在变换树中,编码单元被分割为一个或多个变换块,且各变换块的位置和尺寸有所规定。如果以其它表述来说,变换块是构成编码单元的一个或多个不重复的区域。此外,变换树包含通过上述的分割而获得的一个或多个变换块。

变换树的分割中,具有将与编码单元相同的尺寸的区域分配为变换块的分割、和与上述的树块的分割同样地通过递归的四叉树分割而进行的分割。

变换处理按该变换块进行。以下,也将作为变换的单元的变换块称为变换单元(transformunit;tu)。

(预测参数)

预测单元的预测图像通过预测单元所随附的预测参数而推导出来。预测参数中具有帧内预测的预测参数或者帧间预测的预测参数。以下,对帧间预测的预测参数(帧间预测参数)进行说明。帧间预测参数由预测列表利用标志predflagl0、predflagl1、参照图片索引refidxl0、refidxl1以及矢量mvl0、mvl1构成。预测列表利用标志predflagl0、predflagl1是表示是否使用各个被称为l0列表、l1列表的参照图片列表的标志,当值为1的情况下,使用对应的参照图片列表。需要说明的是,当在本说明书中记为“表示是否为××的标志”的情况下,将1设为是××的情况,将0设为不是××的情况,在逻辑非、逻辑乘等中将1处理为真,将0处理为假(以下同样)。但是,在实际的装置、方法中也可以使用其它值作为真值、假值。在使用两个参照图片列表的情况下,就是说,predflagl0=1、predflagl1=1的情况与双预测对应。此外,在使用一个参照图片列表的情况下,即(predflagl0,predflagl1)=(1,0)或者(predflagl0,predflagl1)=(0,1)的情况与单预测对应。需要说明的是,预测列表利用标志的信息也可以用后述的帧间预测标志inter_pred_idc来表示。通常,在后述的预测图像生成部(预测图像生成装置)308、预测参数存储器307中使用预测列表利用标志。此外,在根据编码数据对是否使用哪一个参照图片列表的信息进行解码的情况下,使用帧间预测标志inter_pred_idc。

用于推导包含于编码数据的帧间预测参数的语法元素中,例如具有分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标志inter_pred_idc、参照图片索引refidxlx、预测矢量索引mvp_lx_idx、以及差分矢量mvdlx。

(参照图片列表的一个示例)

接着,对参照图片列表的一个示例进行说明。参照图片列表是由存储于参照图片存储器306(图5)的参照图片形成的列。图3是表示参照图片列表的一个示例的概念图。在参照图片列表601中,左右排列成一列的5个长方形分别表示参照图片。从左端向右依次示出的代码p1、p2、q0、p3、p4是表示各参照图片的代码。p1等的p是表示视点p,然后q0的q是表示与视点p不同的视点q。p以及q的后缀表示图片顺序编号poc。refidxlx的正下方的向下的箭头表示参照图片索引refidxlx是在参照图片存储器306中参照了参照图片q0的索引。

(参照图片的示例)

接着,对在推导矢量时使用的参照图片的示例进行说明。图4是表示参照图片的示例的概念图。在图4中,横轴表示显示时刻,纵轴表示视点。图4所示的纵两行、横三列(共计六个)的长方形分别表示图片。六个长方形中,下面一行的从左起第二列的长方形表示解码对象的图片(对象图片),其余的五个长方形分别表示参照图片。以从对象图片起向上的箭头表示的参照图片q0是与对象图片为相同显示时刻但视点不同的图片。在以对象图片作为基准的位移预测中,使用参照图片q0。以从对象图片起向左的箭头表示的参照图片p1是与对象图片相同的视点的过去的图片。以从对象图片起向右的箭头表示的参照图片p2是与对象图片相同的视点的未来的图片。在以对象图片作为基准的运动预测中,使用参照图片p1或p2。

(帧间预测标志与预测列表利用标志)

帧间预测标志与预测列表利用标志predflagl0、predflagl1的关系如下所述,可相互变换。因此,作为帧间预测参数,可以使用预测列表利用标志,也可以使用帧间预测标志。此外,以下,使用了预测列表利用标志的判定可以替换为帧间预测标志。反之,使用了帧间预测标志的判定也可以替换为预测列表利用标志。

帧间预测标志=(predflagl1<<1)+predflagl0

predflagl0=帧间预测标志&1

predflagl1=帧间预测标志>>1

在此,>>为右移位,<<为左移位。

(合并预测与amvp预测)

预测参数的解码(编码)方法中具有合并预测(merge)模式和amvp(adaptivemotionvectorprediction:自适应运动矢量预测)模式。合并标志merge_flag是用于标识这些的标志。无论是合并预测模式还是amvp模式,都使用已经处理完的块的预测参数,推导对象pu的预测参数。合并预测模式是不使预测列表利用标志predflaglx(或帧间预测标志inter_pred_idc)、参照图片索引refidxlx、运动矢量mvlx包含于编码数据地直接使用已推导出的附近pu的预测参数的模式。此外,amvp模式是使帧间预测标志inter_pred_idc、参照图片索引refidxlx、运动矢量mvlx包含于编码数据的模式。需要说明的是,运动矢量mvlx被编码为标识预测矢量mvplx的预测矢量索引mvp_lx_idx和差分矢量mvdlx。

帧间预测标志inter_pred_idc是表示参照图片的种类以及数量的数据,取pred_l0、pred_l1、pred_bi中的任一值。pred_l0、pred_l1表示使用分别存储于被称为l0列表、l1列表的参照图片列表的参照图片,并表示均使用一张参照图片(单预测)。将使用了l0列表、l1列表的预测分别称为l0预测、l1预测。pred_bi表示使用两张参照图片(双预测),并表示使用存储于l0列表和l1列表的两个参照图片。预测矢量索引mvp_lx_idx是表示预测矢量的索引,参照图片索引refidxlx是表示存储于参照图片列表的参照图片的索引。需要说明的是,lx是在不对l0预测与l1预测进行区别的情况下使用的记述方法,通过将lx替换为l0、l1,对针对l0列表的参数与针对l1列表的参数进行区别。例如,refidxl0是用于l0预测的参照图片索引,refidxl1是用于l1预测的参照图片索引,refidx(refidxlx)是在不对refidxl0与refidxl1进行区别的情况下使用的标记。

合并索引merge_idx是表示是否使用从处理已完成的块推导的预测参数候选(合并候选)中的任一个预测参数作为解码对象块的预测参数的索引。

需要说明的是,“对象块”可以是比多个预测块高一个层级的预测块,也可以是包含上述多个预测块的编码单元。

(运动矢量与位移矢量)

运动矢量mvlx中,可以分为表示不同时间的两个图片上的块间的偏移量的狭义的运动矢量(狭义的运动矢量)、和表示相同时间的两个块间的偏移量的位移矢量(disparityvector:视差矢量)。在以下的说明中,不对运动矢量和位移矢量进行区别,而简称为运动矢量mvlx。将与运动矢量mvlx相关的预测矢量、差分矢量分别称为预测矢量mvplx、差分矢量mvdlx。对于运动矢量mvlx以及差分矢量mvdlx是运动矢量还是位移矢量,使用矢量所随附的参照图片索引refidxlx来进行标识。

(图像解码装置的构成)

接着,对本实施方式的图像解码装置31的构成进行说明。图5是表示本实施方式的图像解码装置31的构成的概略图。图像解码装置31包含熵解码部301、预测参数解码部(预测图像生成装置)302、参照图片存储器(参照图像存储部、帧存储器)306、预测参数存储器(预测参数存储部、帧存储器)307、预测图像生成部308、逆量化/逆dct部311、以及加法部312、残差储存部313(残差记录部)而构成。

此外,预测参数解码部302包含帧间预测参数解码部(运动矢量推导部)303以及帧内预测参数解码部304而构成。预测图像生成部308包含帧间预测图像生成部309以及帧内预测图像生成部310而构成。

熵解码部301对从外部输入的编码流te进行熵解码,并分离各个代码(语法元素)而进行解码。经分离的代码中,具有用于生成预测图像的预测信息以及用于生成差分图像的残差信息等。

熵解码部301将经分离的代码的一部分输出至预测参数解码部302。经分离的代码的一部分例如是预测模式predmode、分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标志inter_pred_idc、参照图片索引refidxlx、预测矢量索引mvp_lx_idx、以及差分矢量mvdlx。对于是否解码哪一个代码的控制,是基于预测参数解码部302的指示而进行的。熵解码部301将量化系数输出至逆量化/逆dct部311。该量化系数是在编码处理中对残差信号进行dct(discretecosinetransform:离散余弦变换)并进行量化而获得的系数。

帧间预测参数解码部303基于从熵解码部301输入的代码,参照存储于预测参数存储器307的预测参数,对帧间预测参数进行解码。

帧间预测参数解码部303将已解码的帧间预测参数输出至预测图像生成部308,此外,存储于预测参数存储器307。对帧间预测参数解码部303的详细内容将于下文叙述。

帧内预测参数解码部304基于从熵解码部301输入的代码,参照存储于预测参数存储器307的预测参数,对帧内预测参数进行解码。帧内预测参数是在在一个图片内对图片块进行预测的处理中使用的参数,例如,帧内预测模式intrapredmode。帧内预测参数解码部304将已解码的帧内预测参数输出至预测图像生成部308,此外,存储于预测参数存储器307。

帧内预测参数解码部304也可以推导在亮度和色差上不同的帧内预测模式。该情况下,帧内预测参数解码部304将亮度预测模式intrapredmodey解码作为亮度的预测参数,将色差预测模式intrapredmodec解码作为色差的预测参数。亮度预测模式intrapredmodey为35模式,平面预测(0)、dc预测(1)、方向预测(2~34)与其对应。色差预测模式intrapredmodec使用平面预测(0)、dc预测(1)、方向预测(2~34)、lm模式(35)中的任一个。帧内预测参数解码部304对指示intrapredmodec是否是与亮度模式相同的模式的标志进行解码,如果标志指示是与亮度模式相同的模式,则将intrapredmodey分配至intrapredmodec。此外,如果标志指示是与亮度模式不同的模式,则帧内预测参数解码部304也可以将平面预测(0)、dc预测(1)、方向预测(2~34)、lm模式(35)解码作为intrapredmodec。

参照图片存储器306将加法部312所生成的参照图片的块(参照图片块)按解码对象的图片以及块存储于预定的位置。

预测参数存储器307将预测参数按解码对象的图片以及块存储于预定的位置。具体而言,预测参数存储器307存储帧间预测参数解码部303所解码的帧间预测参数、帧内预测参数解码部304所解码的帧内预测参数、以及熵解码部301所分离的预测模式predmode。所存储的帧间预测参数中,例如具有预测列表利用标志predflaglx(帧间预测标志inter_pred_idc)、参照图片索引refidxlx、以及运动矢量mvlx。

预测图像生成部308中输入有从熵解码部301输入的预测模式predmode,此外,从预测参数解码部302输入有预测参数。此外,预测图像生成部308从参照图片存储器306中读出参照图片。预测图像生成部308在预测模式predmode所表示的预测模式下,使用输入的预测参数和读出的参照图片来生成预测图片块p(预测图像)。

在此,在预测模式predmode表示帧间预测模式的情况下,帧间预测图像生成部309使用从帧间预测参数解码部303输入的帧间预测参数和读出的参照图片,通过帧间预测来生成预测图片块p。预测图片块p与预测单元pu对应。pu相当于如上所述地进行预测处理的由成为单元的多个像素形成的图片的一部分,就是说,相当于进行一次预测处理的解码对象块。

帧间预测图像生成部309相对于预测列表利用标志predflaglx为1的参照图片列表(l0列表或者l1列表),根据参照图片索引refidxlx所指示的参照图片,从参照图片存储器306中读出位于以解码对象块为基准的运动矢量mvlx所示的位置的参照图片块。帧间预测图像生成部309对读出的参照图片块进行预测,生成预测图片块p。帧间预测图像生成部309将生成的预测图片块p输出至加法部312。

在预测模式predmode表示帧内预测模式的情况下,帧内预测图像生成部310使用从帧内预测参数解码部304输入的帧内预测参数和读出的参照图片来进行帧内预测。具体而言,帧内预测图像生成部310从参照图片存储器306中读出为解码对象的图片且在已经解码的块中位于从解码对象块起预定的范围的参照图片块。预定的范围是在解码对象块以所谓的光栅扫描的顺序依次移动的情况下,例如左、左上、上、右上的相邻块中的任一个,根据帧内预测模式而不同。光栅扫描的顺序是在各图片中针对从上端至下端各行依次从左端移动至右端的顺序。

帧内预测图像生成部310在帧内预测模式intrapredmode所示的预测模式下对读出的参照图片块进行预测,生成预测图片块。帧内预测图像生成部310将生成的预测图片块p输出至加法部312。

在帧内预测参数解码部304中,在推导在亮度和色差上不同的帧内预测模式的情况下,帧内预测图像生成部310根据亮度预测模式intrapredmodey,通过平面预测(0)、dc预测(1)、方向预测(2~34)中的任一个来生成亮度的预测图片块。此外,帧内预测图像生成部310根据色差预测模式intrapredmodec,通过平面预测(0)、dc预测(1)、方向预测(2~344)、lm模式(35)中的任一个来生成色差的预测图片块。

逆量化/逆dct部311将从熵解码部301输入的量化系数逆量化来求出dct系数。逆量化/逆dct部311对求出的dct系数进行逆dct(inversediscretecosinetransform:逆离散余弦变换),计算出解码残差信号。逆量化/逆dct部311将计算出的解码残差信号输出至加法部312以及残差储存部313。

加法部312将从帧间预测图像生成部309以及帧内预测图像生成部310输入的预测图片块p和从逆量化/逆dct部311输入的解码残差信号的信号值按像素相加,生成参照图片块。加法部312将生成的参照图片块存储于参照图片存储器306,并将按图片整合生成的参照图片块而得的解码层图像td输出至外部。

(帧间预测参数解码部的构成)

接着,对帧间预测参数解码部303的构成进行说明。

图6是表示本实施方式的帧间预测参数解码部303的构成的概略图。帧间预测参数解码部303包含帧间预测参数解码控制部(运动矢量推导部)3031、amvp预测参数推导部3032、加法部3035、以及合并预测参数推导部3036而构成。

帧间预测参数解码控制部3031向熵解码部301指示与帧间预测相关联的代码(语法元素)的解码,而提取编码数据所包含的代码(语法元素),例如分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标志inter_pred_idc、参照图片索引refidxlx、预测矢量索引mvp_lx_idx、以及差分矢量mvdlx。

帧间预测参数解码控制部3031首先提取合并标志。帧间预测参数解码控制部3031表示为提取某语法元素的情况是指向熵解码部301指示某语法元素的解码,从编码数据中读出符合的语法元素。在此,在合并标志所指示的值为1、即指示合并预测模式的情况下,帧间预测参数解码控制部3031提取合并索引merge_idx作为合并预测的预测参数。帧间预测参数解码控制部3031将提取的合并索引merge_idx输出至合并预测参数推导部3036。

在合并标志merge_flag为0、即指示amvp预测模式的情况下,帧间预测参数解码控制部3031使用熵解码部301从编码数据中提取amvp预测参数。作为amvp预测参数,例如有帧间预测标志inter_pred_idc、参照图片索引refidxlx、预测矢量索引mvp_lx_idx、以及差分矢量mvdlx。帧间预测参数解码控制部3031将从提取出的帧间预测标志inter_pred_idc推导的预测列表利用标志predflaglx和参照图片索引refidxlx输出至amvp预测参数推导部3032以及预测图像生成部308(图5),此外,存储于预测参数存储器307(图5)。帧间预测参数解码控制部3031将提取出的预测矢量索引mvp_lx_idx输出至amvp预测参数推导部3032。帧间预测参数解码控制部3031将提取出的差分矢量mvdlx输出至加法部3035。

图7是表示本实施方式的合并预测参数推导部3036的构成的概略图。合并预测参数推导部3036具备合并候选推导部30361(预测矢量计算部)和合并候选选择部30362。合并候选储存部303611储存从合并候选推导部30361输入的合并候选。需要说明的是,合并候选包含预测列表利用标志predflaglx、运动矢量mvlx、以及参照图片索引refidxlx而构成。在合并候选储存部303611中,索引按照规定的规则被分配至所储存的合并候选。

合并候选推导部30361直接使用已经进行了解码处理的相邻块的运动矢量和参照图片索引refidxlx来推导合并候选。除此之外,也可以使用仿射预测来推导合并候选。以下,对该方法进行详细说明。合并候选推导部30361可以将仿射预测使用于后述的空间合并候选推导处理、时间合并(帧间合并)候选推导处理、组合合并候选推导处理、以及零合并候选推导处理。需要说明的是,仿射预测以子块单元进行,预测参数按子块储存于预测参数存储器307。或者,仿射预测也可以以像素单元进行。

(空间合并候选推导处理)

作为空间合并候选推导处理,合并候选推导部30361按照规定的规则,读出预测参数存储器307所存储的预测参数(预测列表利用标志predflaglx、运动矢量mvlx、参照图片索引refidxlx),并将读出的预测参数推导为合并候选。读出的预测参数是位于从解码对象块起预定的范围内的各块(例如,分别与解码对象块的左下端、左上端、右上端相接的块的全部或一部分)的预测参数。由合并候选推导部30361推导的合并候选储存于合并候选储存部303611。

(时间合并候选推导处理)

作为时间合并推导处理,合并候选推导部30361从预测参数存储器307中读出包含解码对象块的右下的坐标的参照图像中的块的预测参数,作为合并候选。参照图像的指定方法例如可以使用在切片标头中指定的参照图片索引refidxlx,也可以使用与解码对象块相邻的块的参照图片索引refidxlx中最小的参照图片索引来指定。由合并候选推导部30361推导的合并候选储存于合并候选储存部303611。

(组合合并候选推导处理)

作为组合合并推导处理,合并候选推导部30361通过将已经推导且储存于合并候选储存部303611的两个不同的完成推导的合并候选的矢量和参照图片索引分别作为l0、l1的矢量进行组合,来推导组合合并候选。由合并候选推导部30361推导的合并候选储存于合并候选储存部303611。

(零合并候选推导处理)

作为零合并候选推导处理,合并候选推导部30361推导参照图片索引refidxlx为0且运动矢量mvlx的x成分、y成分均为0的合并候选。由合并候选推导部30361推导的合并候选储存于合并候选储存部303611。

合并候选选择部30362选择储存于合并候选储存部303611的合并候选中分配有与从帧间预测参数解码控制部3031输入的合并索引merge_idx对应的索引的合并候选作为对象pu的帧间预测参数。合并候选选择部30362将所选择的合并候选存储于预测参数存储器307,并且输出至预测图像生成部308(图5)。

图8是表示本实施方式的amvp预测参数推导部3032的构成的概略图。amvp预测参数推导部3032具备矢量候选推导部3033(矢量计算部)和矢量候选选择部3034。矢量候选推导部3033读出预测参数存储器307基于参照图片索引refidx而存储的矢量(运动矢量或位移矢量),作为预测矢量mvplx。读出的矢量是位于从解码对象块起预定的范围内的各块(例如,分别与解码对象块的左下端、左上端、右上端相接的块的全部或一部分)的矢量。

矢量候选选择部3034选择矢量候选推导部3033读出的矢量候选中从帧间预测参数解码控制部3031输入的预测矢量索引mvp_lx_idx所指示的矢量候选来做为预测矢量mvplx。矢量候选选择部3034将所选择的预测矢量mvplx输出至加法部3035。

此外,矢量候选选择部3034也可以采用对所选择的预测矢量mvplx进行后述的循环处理的构成。

矢量候选储存部30331储存从矢量候选推导部3033输入的矢量候选。需要说明的是,矢量候选包含预测矢量mvplx而构成。在矢量候选储存部30331中,索引按照规定的规则被分配至所储存的矢量候选。

矢量候选推导部3033使用仿射预测来推导矢量候选。矢量候选推导部3033也可以将仿射预测用于后述的空间矢量候选推导处理、时间矢量(帧间矢量)候选推导处理、组合矢量候选推导处理、以及零矢量候选推导处理。需要说明的是,仿射预测以子块单元进行,预测参数按子块储存于预测参数存储器307。或者,仿射预测也可以以像素单元进行。

图9是表示矢量候选的一个示例的概念图。图9所示的预测矢量列表602是由在矢量候选推导部3033中推导的多个矢量候选形成的列表。在预测矢量列表602中,左右排列成一列的5个长方形分别表示指示预测矢量的区域。从左端起的第二个mvp_lx_idx的正下方的向下的箭头和其下方的mvplx表示预测矢量索引mvp_lx_idx是在预测参数存储器307中参照矢量mvplx的索引。

矢量候选基于矢量候选选择部3034所参照的块的矢量而生成。矢量候选选择部3034所参照的块是完成了解码处理的块,也可是从解码对象块起预定的范围的块(例如,相邻块)。需要说明的是,相邻块除了包含与解码对象块空间上相邻的块、例如左块、上块以外,还包含与解码对象块时间上相邻的块,例如从与解码对象块相同位置且显示时刻不同的块中获得的块。

加法部3035将从amvp预测参数推导部3032输入的预测矢量mvplx和从帧间预测参数解码控制部3031输入的差分矢量mvdlx相加,计算出运动矢量mvlx。加法部3035将计算出的运动矢量mvlx输出至预测图像生成部308(图5)。

图10是表示本实施方式的帧间预测参数解码控制部3031的构成的概略图。帧间预测参数解码控制部3031包含附加预测标志解码部30311、合并索引解码部30312、矢量候选索引解码部30313、以及未图示的分割模式解码部、合并标志解码部、帧间预测标志解码部、参照图片索引解码部、矢量差分解码部等而构成。分割模式解码部、合并标志解码部、合并索引解码部、帧间预测标志解码部、参照图片索引解码部、矢量候选索引解码部30313、矢量差分解码部分别对分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标志inter_pred_idc、参照图片索引refidxlx、预测矢量索引mvp_lx_idx、差分矢量mvdlx进行解码。(帧间预测图像生成部309)

图11是表示本实施方式的帧间预测图像生成部309的构成的概略图。帧间预测图像生成部309包含运动补偿部3091和权重预测部3094而构成。(运动补偿)

运动补偿部3091基于从帧间预测参数解码部303输入的预测列表利用标志predflaglx、参照图片索引refidxlx、运动矢量mvlx,从参照图片存储器306中读出位于以由参照图片索引refidxlx指定的参照图片的解码对象块的位置作为起点而偏移运动矢量mvlx程度的位置的块,由此,生成运动补偿图像。在此,在运动矢量mvlx的精度并非整数精度的情况下,实施被称为运动补偿滤波的用于生成小数位置的像素的滤波,生成运动补偿图像。以下,将l0预测的运动补偿图像称为predsamplesl0、将l1预测的运动补偿图像称为predsamplesl1。在不对两者进行区别的情况下称为predsampleslx。

(权重预测)

权重预测部3094通过将输入的运动位移图像predsampleslx与权重系数相乘,生成预测图片块p(预测图像)。所输入的运动位移图像predsampleslx是在进行残差预测的情况下,实施了残差预测的图像。在参照列表利用标志的一方(predflagl0或predflagl1)为1的情况(单预测的情况)下,在不使用权重预测的情况下,进行使所输入的运动位移图像predsampleslx(lx为l0或l1)与像素位数相一致的下式的处理。

predsamples[x][y]=clip3(0,(1<<bitdepth)-1,(predsampleslx[x][y]+offset1)>>shift1)

在此,shift1=14-bitdepth,offset1=1<<(shift1-1)。

此外,在参照列表利用标志的两者(predflagl0或predflagl1)为1的情况(双预测的情况)下,在不使用权重预测的情况下,进行将所输入的运动位移图像predsamplesl0、predsamplesl1平均,并使其平均数与像素位数相一致的下式的处理。

predsamples[x][y]=clip3(0,(1<<bitdepth)-1,(predsamplesl0[x][y]+predsamplesl1[x][y]+offset2)>>shift2)

在此,shift2=15-bitdepth,offset2=1<<(shift2-1)。

而且,在单预测的情况下,在进行权重预测的情况下,权重预测部3094从编码数据推导权重预测系数w0和偏移值(offset)o0,并进行下式的处理。

predsamples[x][y]=clip3(0,(1<<bitdepth)-1,((predsampleslx[x][y]*w0+2log2wd-1)>>log2wd)+o0)

在此,log2wd是表示规定的移位量的变量。

而且,在双预测的情况下,在进行权重预测的情况下,权重预测部3094从编码数据推导权重预测系数w0、w1、o0、o1,并进行下式的处理。

predsamples[x][y]=clip3(0,(1<<bitdepth)-1,(predsamplesl0[x][y]*w0+predsamplesl1[x][y]*w1+((o0+o1+1)<<log2wd))>>(log2wd+1))

<运动矢量解码处理>

以下,参照图15~图27,对本实施方式的运动矢量解码处理具体地进行说明。

根据上述的说明可明确,本实施方式的运动矢量解码处理包括对与帧间预测相关连的语法元素进行解码的处理(也称为运动语法解码处理)和推导运动矢量的处理(运动矢量推导处理)。

(运动语法解码处理)

图15是表示由帧间预测参数解码控制部3031进行的帧间预测语法解码处理的流程的流程图。在图15的说明的以下的说明中,在没有特别明示的情况下,各处理由帧间预测参数解码控制部3031进行。

首先,在步骤s101中,将合并标志merge_flag解码,在步骤s102中,判断merge_flag!=0?。

在merge_flag!=0为真(在s102中为y)的情况下,在s103中解码合并索引merge_idx,前进至合并模式下的运动矢量推导处理(s201)(图18(a))。

在merge_flag!=0为假(在s102中为n)的情况下,在s104中解码帧间预测标志inter_pred_idc,在s105中解码参照图片索引refidxl0,在s106中解码差分矢量的语法mvdl0,在s107中解码预测矢量索引mvp_l0_idx。

在s108中解码参照图片索引refidxl1,在s109中解码差分矢量的语法mvdl1,在s110中解码预测矢量索引mvp_l1_idx,前进至amvp模式下的运动矢量推导处理(s301)(图18(b))。

需要说明的是,在帧间预测标志inter_pred_idc为0、即在指示l0预测(pred_l0)的情况下,不需要进行s108~s110的处理。另一方面,在帧间预测标志inter_pred_idc为1、即在指示l1预测(pred_l1)的情况下,不需要进行s105~s107的处理。此外,在帧间预测标志inter_pred_idc为2、即在指示双预测(pred_b)的情况下,执行s105~s110的各步骤。

(差分矢量解码处理)

图16是更具体地表示上述的步骤s106以及s109中的差分矢量解码处理的流程图。至此为止,不对运动矢量、差分矢量mvdlx的水平成分、垂直成分进行区别地标记为mvlx、mvdlx。在此,为了明确需要水平成分和垂直成分的语法的情况和需要进行水平成分和垂直成分的处理的情况,使用[0]、[1]对各成分进行标记。

如图16所示,首先,在步骤s10611中,从编码数据中解码表示水平运动矢量差分绝对值的语法mvdabsval[0],在步骤s10612中,判断(水平)运动矢量差分绝对值是否为0

mvdabsval[0]!=0。

在水平运动矢量差分绝对值mvdabsval[0]!=0为真(在s10612中为y)的情况下,在s10614中从编码数据中解码表示水平运动矢量差分的代码(正负)的语法mv_sign_flag[0],前进至s10615。另一方面,在mvdabsval[0]!=0为假(在s10612中为n)的情况下,在s10613中mv_sign_flag[0]被设定(infer)为0,前进至s10615。

接着,在步骤s10615中,解码表示垂直运动矢量差分绝对值的语法mvdabsval[1],在步骤s10612中,判断(垂直)运动矢量差分绝对值是否为0

mvdabsval[1]!=0。

在mvdabsval[1]!=0为真(在s10616中为y)的情况下,在s10618中从编码数据中解码表示垂直运动矢量差分的代码(正负)的语法mv_sign_flag[1]。另一方面,在mvdabsval[1]!=0?为假(在s10616中为n)的情况下,在s10617中将表示垂直运动矢量差分的代码(正负)的语法mv_sign_flag[1]设定为0。

在上述中,以由{水平成分,垂直成分}形成的矢量表示运动矢量差分绝对值mvdabsval、运动矢量差分的代码mvd_sign_flag各者,并将水平成分选取为[0]、垂直成分选取为[1]。作为其它的选取方法,例如也可以设为将垂直成分选取为[0]、将水平成分选取为[1]。此外,在处理水平成分之后再处理垂直成分,但处理的顺序并不限定于此。例如,也可以先处理垂直成分后处理水平成分(以下同样)。

图17是表示利用与在图16中示例的处理不同的方法在步骤s106以及s109中对差分矢量进行解码处理的示例的流程图。对于在图16中已经说明的步骤,在图17中也赋予相同的符号,从而省略说明。

在图17所示的示例中,对运动矢量精度标志mvd_dequant_flag进一步进行解码这一点与图16不同。

即,在图17所示的示例中,在已经说明的s10617以及s10618之后,在s10629中推导表示差分矢量是否为0的变量nonzeromv,判断差分矢量是否为0

nonzeromv!=0?。

在此,变量nonzeromv能够通过以下而推导。

nonzeromv=mvdabsval[0]+mvdabsval[1]

在nonzeromv!=0为真(在s10629中为y)的情况下,即在差分矢量为0以外的情况下,在s10630中从编码数据中解码运动矢量精度标志mvd_dequant_flag。此外,在nonzeromv!=0为假(在s10629中为n)的情况下,不从编码数据中解码mvd_dequant_flag地将mvd_dequant_flag设定为0。就是说,在差分矢量为0以外的情况下,即仅在nonzeromv!=0时,mvd_dequant_flag被解码。

需要说明的是,运动矢量精度标志mvd_dequant_flag用于切换运动矢量的精度。此外,在将该标志设为选择是否将运动矢量的精度设为全像素(fullpixel)的标志的情况下,可以写作(可以标记为)integer_mv_flag。(运动矢量推导处理)

接着,使用图18~图27对运动矢量推导处理进行说明。

图18是表示通过本实施方式的帧间预测参数解码部303进行的运动矢量推导处理的流程的流程图。

(合并预测模式下的运动矢量推导处理)

图18(a)是表示合并预测模式下的运动矢量推导处理的流程的流程图。如图18(a)所示,在s201中合并候选推导部30361推导合并候选列表mergecandlist。在s202中,合并候选选择部30362基于mergecandlist[merge_idx]对由合并索引merge_idx指定的合并候选mvlx进行选择。例如,通过mvlx=mergecandlist[merge_idx]而推导。(amvp模式下的运动矢量推导处理)

在amvp模式中,通过从已经解码的语法mvdabsval、mv_sign_flag推导差分运动矢量mvdlx,并将差分运动矢量mvdlx与预测矢量mvplx相加,而推导运动矢量mvlx。在语法的说明中,使用mvdabsval[0]、mvdabsval[1]等和[0]、[1],来对水平成分和垂直成分进行区别地进行说明,但在以下中,出于简便并不对成分进行区别,而简记为mvdabsval等。实际上,运动矢量中具有水平成分和垂直成分,因此,依次对各成分执行不区别成分地记载的处理即可。

另一方面,图18(b)是表示amvp模式下的运动矢量推导处理的流程的流程图。如图18(b)所示,在s301中,矢量候选推导部3033推导运动矢量预测子列表mvplistlx。在s302中,矢量候选选择部3034对由预测矢量索引mvp_lx_idx指定的运动矢量候选(预测矢量、预测运动矢量)mvplx=mvplistlx[mvp_lx_idx]进行选择。

接着,在s303中,帧间预测参数解码控制部3031推导差分矢量mvdlx。如图18(b)的s304所示,矢量候选选择部3034也可以对所选择的预测矢量进行循环处理。接着,在s305中,预测矢量mvplx和差分矢量mvdlx在加法部3035中被相加,计算出运动矢量mvlx。即,通过

mvlx=mvplx+mvdlx

计算出mvlx。

(差分矢量推导处理)

接着,使用图19对差分矢量推导处理进行说明。图19是更具体地表示上述的步骤s303中的差分矢量推导处理的流程图。差分矢量推导处理由下述的两个处理构成。逆量化处理(ps_dqmv):对从编码数据中解码且经过量化的值、即运动矢量差分绝对值mvdabsval(量化值)进行逆量化,并推导为特定的精度(例如后述的基本矢量精度)的运动矢量差分绝对值mvdabsval的处理。代码赋予处理(ps_sign):确定推导出的运动矢量差分绝对值mvdabsval的代码,推导运动矢量差分mvdlx的处理。

在图19的说明的以下的说明中,在没有特别明示的情况下,各处理由帧间预测参数解码控制部3031进行。

如图19所示,在s3031中,推导作为指定运动矢量精度的参数的运动矢量尺度shifts,在s3032中,判断运动矢量尺度是否>0。在运动矢量尺度>0为真、即shifts>0(在s3032中为y)的情况下,在s3033中例如通过使用shifts的位移位处理来对差分矢量进行逆量化。在此,位移位处理更具体而言,例如是使量化后的运动矢量差分绝对值mvdabsval左移位shifts的处理,通过

mvdabsval=mvdabsval<<shifts算式(scale)

而进行(处理ps_dqmv0)。

然后,在s3034中,进行差分矢量的代码赋予处理,前进至s3041。需要说明的是,该代码赋予处理(处理ps_sign)通过

mvdlx=mvdabsval*(1-2*mv_sign_flag)算式(sign)

而进行。即,根据mv_sign_flag的值,从运动矢量差分绝对值mvdabsval推导运动矢量差分mvdlx。需要说明的是,在运动矢量尺度>0为假、即shifts=0(在s3032中为n)的情况下,不经由s3033地前进至s3034。需要说明的是,应用了值0(shifts=0)时的移位的差分矢量的逆量化不会对差分矢量的值造成影响。因此,即使在是运动矢量尺度>0为假的情况的情况时,也可以采用不跳过s3033,而是在将运动矢量尺度推导为0(shifts=0)之后进行s3033的构成。

此外,由于运动矢量尺度一般使用0以上的值,因此,在运动矢量尺度为0以外的情况下,运动矢量尺度始终为正(>0)。由此,也可以代替“运动矢量尺度>0”的判定,将“运动矢量尺度!=0”用于判定。需要说明的是,在本说明书中,在进行“运动矢量尺度>0”的判断的其它处理中也是同样的。

(预测矢量循环处理)

接着,使用图20对预测矢量循环处理(预测运动矢量循环处理)进行说明。图20是更具体地表示上述的步骤s304中的预测矢量循环处理的流程图。在图20的说明的以下的说明中,在没有特别明示的情况下,各处理由矢量候选选择部3034进行。如图20所示,在s3041中推导运动矢量尺度,在s3042中判断运动矢量尺度>0。在运动矢量尺度>0为真(在s3042中为y)的情况下,就是说,在进行根据运动矢量尺度进行的差分矢量的逆量化的情况下,在s3043中,预测运动矢量mvplx也可以通过基于运动矢量尺度的循环、即通过

mvplx=round(mvplx,shifts)

进行循环处理(处理ps_pmvround)。在此,round(mvplx,shifts)表示对预测运动矢量mvplx进行使用shifts的循环处理的函数。例如,循环处理可以使用后述的算式(shift-1)至(shift-4)等,将预测运动矢量mvplx设为1<<shifts单元的值(离散的值)。

在s304之后,前进至s305。在s305中,从预测矢量mvplx和差分矢量mvdlx推导运动矢量mvlx。需要说明的是,在运动矢量尺度>0为假(在s3042中为n)的情况下,预测运动矢量mvplx不进行循环地前进至s305,推导运动矢量mvlx。

(利用了运动矢量精度标志的运动矢量尺度推导处理)

接着,使用图21对利用了运动矢量精度标志的运动矢量尺度推导处理(ps_p0)进行说明。图21是更具体地表示上述的s3031(参照图19)以及s3041(参照图20)中的运动矢量尺度推导处理的流程图。在图21中,为了方便说明而具体地示例出s3041的处理,但也可以对s3031应用图21所示的处理。

在图21的说明中的以下的说明中,在没有特别明示的情况下,各处理由帧间预测参数解码控制部3031进行。

如图21所示,在s304111中,判断运动矢量精度标志mvd_dequant_flag是否满足

mvd_dequant_flag!=0。在mvd_dequant_flag!=0为真(在s304111中为y)的情况下,例如,在mvd_dequant_flag=1的情况下,在s304112中,例如shifts设定为与表示运动矢量精度的基准的参数的运动矢量基本精度mvbaseaccu(>0)相等,运动矢量的精度设定为全像素。在此,mvbaseaccu的值例如为2。在s304112之后,前进至s3042。在运动矢量精度标志mvd_dequant_flag!=0为假(在s304111中为n)的情况下,例如,在mvd_dequant_flag=0的情况下,在s304113中,设定为shifts=0,前进至s3042。该情况下,运动矢量的精度设定为1/4像素。需要说明的是,在s304112中,例如shifts也可以设为表示运动矢量精度的基准的参数的运动矢量基本精度mvbaseaccu-1。该情况下,在mvd_dequant_flag为1(0以外)的情况下,运动矢量的精度设定为半像素。

需要说明的是,在上述中,采用在mvd_dequant_flag为1的情况下降低运动矢量的精度,在mvd_dequant_flag为0的情况下维持运动矢量的精度的构成。作为其它构成,也可以在mvd_dequant_flag的值为另一值、例如为0时降低运动矢量精度,为1时维持运动矢量精度。即,对于本说明书所示的标志,能够将其数值与标志所表示的内容设为任意的组合。

这样,根据上述的构成,参照运动矢量精度标志来切换运动矢量的精度,因此,能够使用具有更适当的精度的运动矢量。另一方面,由于需要使运动矢量精度标志包含于编码数据,因此代码量增大,可能也会有编码效率不如期待程度提高的情况。

以下,对用于实现编码效率的提高并且使用适当的精度的运动矢量的构成例进行说明。

(利用了对象块的块尺寸的运动矢量尺度推导处理)

作为实现编码效率的提高并且使用适当的精度的运动矢量的构成例(推导处理ps_p1a)之一,使用图22对利用了对象块的块尺寸的运动矢量尺度推导处理进行说明。图22是更具体地表示上述的s3031(参照图19)以及s3041(参照图20)中的运动矢量尺度推导处理的流程图。在图22中,为了方便说明而具体地示例出s3041的处理,但也可以对s3031应用图22所示的处理。

在图22的说明中的以下的说明中,在没有特别明示的情况下,各处理由帧间预测参数解码控制部3031进行。

如图22所示,在s304121中,判断块尺寸blkw是否满足

blkw<th(th为规定的阈值)。

在块尺寸blkw<th为真(在s304121中为y)的情况下,就是说,在块尺寸blkw较小的情况下,在s304122中设定为

shifts=shiftm,

前进至s3042。此外,在块尺寸blkw<th为假(在s304121中为n)的情况下,就是说,在块尺寸blkw较大的情况下,在s304123中设定为

shifts=shiftn,

前进至s3042。在此,shiftm以及shiftn是满足shiftm>shiftn的尺度参数,也可以为shiftn=0。

需要说明的是,图22的处理综上所述,也可以由下式进行表示。

shifts=(blkw<th)?shiftm:shiftn(算式p1a)

需要说明的是,在存在块尺寸的宽度blkw与高度blkh不同的情况的构成中,作为块的尺寸的域值判定,也可以使用blkw+blkh<th代替blkw<th。需要说明的是,本说明书的其它处理中也可以适宜地应用上述的变更。

此外,分支判定不限于<(较大),也可以使用≤(以下),作为等价的构成,也可以使y、n的分支反过来设为>、≥。需要说明的是,本说明书的其它处理中也可以适宜地应用上述的变更。

以上,根据块尺寸的大小,以块尺寸越大运动矢量尺度的值变得越小(越提高运动矢量精度)的方式推导运动矢量尺度。如上述的示例那样,在根据块尺寸的大小对块尺寸进行分类、并根据分类而对运动矢量尺度进行切换的构成中,块尺寸的分类数并不限于二,也可以是三以上。

这样,根据上述的构成,能够根据块尺寸切换差分矢量的精度。例如,在块尺寸大于规定的值的情况下,能够切换为高精度的矢量,在块尺寸小于规定的值的情况下,能够切换为低精度的运动矢量。这样,通过根据块尺寸切换运动矢量的精度,能够使用更适当的精度的运动矢量。

此外,在上述的构成中,能够不利用运动矢量精度标志地对差分矢量的精度进行切换。因此,无需对运动矢量精度标志进行编码以及解码,从而使编码数据的代码量降低。此外,由此,能够实现编码效率的提高。(利用了块尺寸以及运动矢量精度标志的运动矢量尺度推导处理)

此外,作为其它构成例(推导处理ps_p1b),接着使用图23对利用了对象块的块尺寸以及运动矢量精度标志的运动矢量尺度推导处理进行说明。图23是更具体地表示上述的s3031以及s3041中的运动矢量尺度推导处理的流程图。在图23中,为了方便说明而具体地示例出s3041的处理,但也可以对s3031应用图23所示的处理。

如图23所示,在s304131中,判断mvd_dequant_flag!是否=0。在mvd_dequant_flag!=0为假(在s304131中为n)的情况下,就是说,在mvd_dequant_flag为0的情况下,在s304132中判断块尺寸blkw是否满足

blkw<th(th为规定的阈值)。在块尺寸blkw<th为真(在s304132中为y)的情况下,就是说,在块尺寸blkw较小的情况下,

在s304133中,设定为

shifts=shiftm,

前进至s3042。此外,在块尺寸blkw<th为假(在s304132中为n)的情况下,就是说,在块尺寸blkw较大的情况下,在s304133中,作为运动矢量尺度设定为与块值较小的情况的值(shiftm)不同的值,且设定为

shifts=shiftn,

前进至s3042。

此外,在mvd_dequant_flag!=0为真(在s304131中为y)的情况下,就是说,在mvd_dequant_flag为1的情况下,

设定为shifts=shiftl,前进至s3042。在此,shiftl、shiftm、shiftn是满足shiftl≥shiftm>shiftn的尺度参数,也可以是shiftn=0。shiftn=0相当于不对运动矢量(差分运动矢量)进行逆量化(将通过量化尺度而变得不粗糙的运动矢量编码)。需要说明的是,在设为shiftl=mvbaseaccu且mvd_dequant_flag为1的情况下,设为全像素也是适当的。

需要说明的是,图23的处理的一部分s304132~s304134的处理(相当于图22)也可以用上述的(算式p1a)来进行表示。

图23的整体处理综上所述,也可以用下式(算式p1b)来进行表示。

shifts=mvd_dequant_flag!=0?shiftl:(blkw<th)?shiftm:shiftn(算式p1b)

以上,构成如下的构成:分类为根据块尺寸的大小而使用多个精度的运动矢量的模式,并以块尺寸越大运动矢量尺度的值变得越小(越提高运动矢量精度)的方式进行切换。需要说明的是,对于块尺寸的分类,并不限于两个分类,也可以采用分类为三个以上的构成。

根据上述的构成,参照块尺寸以及运动矢量精度标志的双方来确定运动矢量的精度,因此,能够使用具有更适当的精度的运动矢量。例如,在由运动矢量精度标志以整数精度(低精度)来表示运动矢量的精度的情况下,不论块尺寸如何,都将差分矢量的精度设定为整数精度(低精度)。此外,在由运动矢量精度标志以小数精度(高精度)来表示运动矢量的精度的情况下,根据块尺寸,能够进一步对差分矢量的精度进行切换。

因此,根据上述的构成,能够使用更适当的精度的运动矢量实现编码效率的提高。

需要说明的是,对于上述的运动矢量的推导,能够如下所述地换种说法。即,帧间预测参数解码部303(运动矢量推导部)通过按预测块对预测矢量加上或减去差分矢量来推导运动矢量。帧间预测参数解码部303根据预测块的尺寸,来切换对于该预测块推导出的运动矢量的精度(特别是用于推导运动矢量差分绝对值的移位值)。

此外,可以将通过上述的运动矢量的推导的处理而推导的运动矢量表示于下式。即,在将推导对象的运动矢量标记为mvlx、预测矢量标记为mvplx、差分矢量标记为mvdlx、循环处理标记为round()的情况下,可以根据预测块的尺寸确定移位量shifts,并通过

mvlx=round(mvplx)+(mvdlx<<shifts)

确定mvlx。

需要说明的是,以上述(mvdlx<<shifts)一项表示的差分矢量mvdlx的逆量化也可以在运动矢量差分绝对值中进行。即,如下所述,也可以采用进行对运动矢量差分绝对值mvdabsval进行逆量化的处理,并进行代码处理的构成。

mvdabsval=mvdabsval(=|qmvd|)<<shifts

mvdlx=mvdabsval*(1-2*mv_sign_flag)

mvlx=round(mvplx)+mvdlx

在上述中,以更新变量mvdabsval、mvdlx的构成来进行表示,但当为了使处理明确而使用“'”进行表示时,可以以如下所述的方式进行表示。

mvdabsval'=mvdabsval(=|qmvd|)<<shifts

mvdlx'=mvdabsval'*(1-2*mv_sign_flag)

mvlx=round(mvplx)+mvdlx'

此外,如上述的括弧()内所记载那样,除了mvdabsval以外,还可以用qmvd表示逆量化前(经过量化的)差分运动矢量绝对值。

(循环处理的各种具体例)

在以上的说明中提及到循环处理。循环处理的具体例并不对本实施方式进行限定,例如,使用

round(mvplx)=(mvplx>>shifts<<shifts)···(shift-1)

即可。此外,round()内的变量并不限于mvplx。此外,对于循环处理,除了上述示例以外,还可以列举使用下式的示例。例如,可以使用偏移值

offsets=1<<(shifts-1),

设为

round(mvplx)=((mvplx+offsets)>>shifts)<<shifts···(shift-2)。此外,

round(mvplx)=mvplx>0?(mvplx>>shifts)<<shifts:-(((-mvplx)>>shifts)<<shifts)···(shift-3)

即,在循环的对象为负的情况下,也可以采用如下的构成:通过乘以-1而暂时变换为正值,然后再执行与(算式:shift-1)同样的处理,之后通过乘以-1而变换为负。

此外,

round(mvplx)=mvplx>0?((mvplx+offsets)>>shifts)<<shifts:-((((-mvplx+offsets))>>shifts)<<shifts)···(shift-4)

即,也可以采用将算式(shift-2)的处理和算式(shift-3)相组合的处理。

(利用块尺寸切换的运动矢量精度的示例)

以下,使用图24对利用对象块的块尺寸切换的运动矢量精度(推导处理p1a)的具体例进行说明。图24(a)~图24(c)是表示基本矢量精度和指示根据对象块的块尺寸而设定(切换)的运动矢量精度的参数(shifts)的关系的表格。例如,帧间预测参数解码控制部3031可以以图24(a)~图24(c)所示的示例的方式进行上述的图22所示的s304121至s304123的处理。

需要说明的是,在本说明书中,导入“基本矢量”的概念,并用mvbaseaccu来表示指定该基本矢量的精度的参数。此外,“基本矢量”假设为以1<<mvbaseaccu的精度被解码。其中,“基本矢量”这个称呼仅是出于方便,“基本矢量”不过是作为用于指定运动矢量的精度的基准而导入的概念。在本专利中,以基本矢量精度给出向运动补偿滤波部30912输入时的矢量的精度。例如,在mvbaseaccu=2的情况下,基本矢量设为以1/4(=1/(1<<mvbaseaccu))像素精度被处理。在运动补偿滤波部30912中,使用0至m-1(m=(1<<mvbaseaccu))的相位的滤波系数的集合(0至m-1的滤波系数)进行滤波处理。此外,也可以采用使用该基本矢量的精度将推导(利用)的运动矢量储存至预测参数存储器108的构成。

图24(a)是表示将运动矢量精度切换为两个值的情况下的对象块的块尺寸、基本矢量精度以及指示运动矢量精度的参数shifts的关系的表格。在图24(a)的“i”所示的示例中,mvbaseaccu=3,基本矢量的精度为1/8pel。在“i”所示的示例中,当对象块的块尺寸blkw满足blkw>=64时,设定为shifts=0,运动矢量精度成为1/8pel。另一方面,当块尺寸blkw满足blkw<64时,设定为shifts=1,运动矢量精度成为1/4pel。

在图24(a)的“ii”所示的示例中,mvbaseaccu=4,基本矢量的精度为1/16pel。在“ii”所示的示例中,当对象块的块尺寸blkw满足blkw>=64时,设定为shifts=0,运动矢量精度成为1/16pel。另一方面,当块尺寸blkw满足blkw<64时,设定为shifts=2,运动矢量精度成为1/4pel。

在图24(a)的“iii”所示的示例中,mvbaseaccu=6,基本矢量的精度为1/64pel。在“iii”所示的示例中,当对象块的块尺寸blkw满足blkw>=64时,设定为shifts=0,运动矢量精度成为1/64pel。另一方面,当块尺寸blkw满足blkw<64时,设定为shifts=4,运动矢量精度成为1/4pel。

图24(b)是表示将运动矢量精度切换为三个值的情况下的对象块的块尺寸、基本矢量精度以及指示运动矢量精度的参数(shifts)的关系的表格。

在图24(b)所示的示例中,基本矢量精度为1/64pel。当对象块的块尺寸blkw满足blkw&gt;=64时,设定为shifts=0,运动矢量精度成为1/64pel。此外,当块尺寸blkw满足blkw>=32&&blkw<64时,设定为shifts=2,运动矢量精度成为1/16pel。此外,在块尺寸blkw满足blkw&lt;32时,设定为shifts=4,运动矢量精度成为1/4pel。

图24(c)是表示将运动矢量精度切换为五个值的情况下的对象块的块尺寸、基本矢量精度以及指示运动矢量精度的参数(shifts)的关系的表格。

在图24(c)所示的示例中,基本矢量精度为1/64pel。当对象块的块尺寸blkw满足blkw&gt;=128时,设定为shifts=0,运动矢量精度成为1/64pel。此外,当块尺寸blkw满足blkw>=64&&blkw<128时,设定为shifts=1,运动矢量精度成为1/32pel。此外,当块尺寸blkw满足blkw>=32&&blkw<64时,设定为shifts=2,运动矢量精度成为1/16pel。此外,当块尺寸blkw满足blkw>=16&&blkw<32时,设定为shifts=3,运动矢量精度成为1/8pel。此外,当块尺寸blkw满足blkw&lt;16时,设定为shifts=4,运动矢量精度成为1/4pel。

(运动矢量精度mvqstep的利用)

帧间预测参数解码控制部3031也可以是通过运动矢量的量化步长大小(quantizationstepsize)mvqstep的积来进行逆量化的构成,代替使用运动矢量尺度shifts进行的左移位。即,可以通过下述算式代替算式(scale),来进行逆量化。

mvdabsval=mvdabsval*mvqstep算式(qstep)

在此,mvqstep与shifts满足

shifts=log2(mvqstep)

的关系。这与以下等价。

mvqstep=1&lt;&lt;shifts=2shifts

再者,在基本运动矢量的精度为1/8时,在量化步长mvqstep为1的情况下,被编码的运动矢量的精度(mvstep)成为1/8,在量化步长mvqstep为2的情况下,被编码的运动矢量的精度(mvstep)成为1/4。因此,当将基本运动矢量的精度设为1/mvbaseaccu时,在量化步长mvqstep中,被编码的运动矢量的精度mvstep成为1/mvbaseaccu*mvqstep。例如,在利用mvqstep的积代替使用量化尺度shifts而进行的移位来进行图24(a)的“i”所示的运动矢量精度的切换的情况下,当块尺寸blkw满足blkw&gt;=64时,设定为mvqstep=1(=1&lt;&lt;shifts=1&lt;&lt;0=1)。换句话说,设定为mvstep=1/8=(1/mvbaseaccu*mvqstep=1/8*1)。另一方面,当块尺寸blkw满足blkw&lt;64时,设定为mvqstep=2(=1&lt;&lt;shifts=1&lt;&lt;1=2)。换句话说,设定为mvstep=1/4=(1/8*2)。

此外,在利用mvqstep进行图24(b)所示的运动矢量精度的切换的情况下,当块尺寸blkw满足blkw&gt;=64时,设定为mvqstep=1(=1&lt;&lt;shifts=1&lt;&lt;0)。换句话说,设定为mvstep=1/64=(1/64*1)。此外,当块尺寸blkw满足blkw>=32&&blkw<64时,设定为mvqstep=4(=1&lt;&lt;shifts=1&lt;&lt;2=4)。换句话说,设定为mvstep=1/16=(1/64*4)。此外,当块尺寸blkw满足blkw&lt;32时,设定为mvqstep=16(=1&lt;&lt;shifts=1&lt;&lt;4)。换句话说,设定为mvstep=1/4=(1/64*16)。

此外,在利用mvqstep进行图24(c)所示的运动矢量精度的切换的情况下,当块尺寸blkw满足blkw&gt;=128时,设定为mvqstep=1。换句话说,设定为mvstep=1/64。此外,当块尺寸blkw满足blkw>=64&&blkw<128时,设定为mvqstep=2。换句话说,设定为mvstep=1/32。此外,当块尺寸blkw满足blkw>=32&&blkw<64时,设定为mvqstep=3。换句话说,设定为mvstep=1/16。此外,当块尺寸blkw满足blkw>=16&&blkw<32时,设定为mvqstep=4。换句话说,设定为mvstep=1/8。此外,当满足块尺寸blkw&lt;16时,设定为mvqstep=5。换句话说,设定为mvstep=1/4。(使用块尺寸以及运动矢量精度标志切换的运动矢量精度的示例)

接着,使用图25对使用块尺寸以及作为运动矢量精度标志的mvd_dequant_flag切换的运动矢量精度(推导处理ps_p1b)的具体例进行说明。图25(a)~图25(c)是表示与指示由对象块的块尺寸和运动矢量精度标志设定(切换)的运动矢量精度的参数(shifts)的关系的表格。需要说明的是,在图25(a)~图25(c)中,示出将基本矢量精度设为1/16的示例,但基本矢量精度的值可以应用任意的值。帧间预测参数解码控制部3031也可以以图25(a)~图25(c)所示的示例的方式进行上述的图23所示的s304131至s304135的处理。

在图25(a)所示的示例中,在运动矢量精度标志为mvd_dequant_flag=0,且块尺寸大于规定的值(块尺寸大)的情况下,设定为shifts=0,运动矢量精度成为1/16pel。此外,在运动矢量精度标志为mvd_dequant_flag=0,且块尺寸小于规定的值(块尺寸小)的情况下,设定为shifts=2,运动矢量精度成为1/4pel。另一方面,在运动矢量精度标志为mvd_dequant_flag=1的情况下,设定为shifts=4,运动矢量精度成为1pel(全像素)。当用算式进行表示时,如下所述。

shifts=mvd_dequant_flag!=0?4:(blkw&lt;th)?2:0(相当于算式p1b)

在图25(b)所示的示例中,在运动矢量精度标志为mvd_dequant_flag=0,且块尺寸大于规定的值(块尺寸大)的情况下,设定为shifts=0,运动矢量精度mvstep成为1/16pel。此外,在运动矢量精度标志为mvd_dequant_flag=0,且块尺寸小于规定的值(块尺寸小)的情况下,设定为shifts=2,运动矢量精度成为1/4pel。另一方面,在运动矢量精度标志为mvd_dequant_flag=1,且块尺寸大于规定的值(块尺寸大)的情况下,设定为shifts=3,运动矢量精度成为1/2pel(半像素)。此外,在运动矢量精度标志为mvd_dequant_flag=1,且块尺寸小于规定的值(块尺寸小)的情况下,设定为shifts=4,运动矢量精度成为1pel(全像素)。

在图25(c)所示的示例中,在运动矢量精度标志为mvd_dequant_flag=0,且块尺寸大于规定的值(块尺寸大)的情况下,设定为shifts=0,运动矢量精度成为1/16pel。此外,在运动矢量精度标志为mvd_dequant_flag=0,且块尺寸小于规定的值(块尺寸小)的情况下,设定为shifts=1,运动矢量精度成为1/8pel。另一方面,在运动矢量精度标志为mvd_dequant_flag=1,且块尺寸大于规定的值(块尺寸大)的情况下,设定为shifts=2,运动矢量精度成为1/4pel。此外,在运动矢量精度标志为mvd_dequant_flag=1,且块尺寸小于规定的值(块尺寸小)的情况下,设定为shifts=3,运动矢量精度成为1/2pel(半像素)。

(使用qp切换的运动矢量精度的示例)

需要说明的是,在上述的示例中,对基于对象块的块尺寸推导shifts的构成进行了说明。作为其它构成,也可以采用帧间预测参数解码控制部3031(运动矢量推导部)基于作为量化参数的qp(quantizationparameter)代替对象块的块尺寸来推导shifts的构成(推导处理ps_p2a)。特别是,通过根据qp(或者qp的预测值)的大小推导shifts,在qp较小的情况下使用高精度运动矢量(较小的shifts),在qp较大的情况下使用低精度(较大的shifts)。例如,根据规定的值进行qp的判定,由此,在qp小于规定的值的情况下使用高精度运动矢量,在除此以外的情况下使用低精度。

在此,使用图26对使用qp切换的运动矢量精度的示例进行说明。图26(a)~图26(c)是表示指示根据qp设定(切换)的运动矢量精度的参数(shifts)的表格。例如,帧间预测参数解码控制部3031也可以以图26(a)~图26(c)所示的示例的方式进行差分矢量推导的处理。在图26(a)~图26(c)的说明中,对基本矢量精度的值并未特别提及,但能够使用任意值的基本矢量精度。在图26(a)(b)(c)中,分别示出了根据qp切换二、三、五个值的示例,但切换的数量(qp的分类数)并不限定于此。此外,用于qp的分类的域值也不限定于图中的示例。

图26(a)是表示在将运动矢量精度切换为两个值的情况下的qp与运动矢量精度(shifts)的关系的表格。在图26(a)所示的示例中,在qp较小的情况(qp&lt;24)下,设定为shifts=0。另一方面,在qp较大的情况(qp&gt;=24)下,将shifts设定为大于qp较小的情况的值,在此,设定为shifts=1。

在图26(b)所示的示例中,是表示在将运动矢量精度切换为三个值的情况下的qp与指示运动矢量精度的参数(shifts)的关系的表格。如图26(b)所示,在qp较小的情况(qp&lt;12)下,设定为shifts=0。此外,在qp为中等程度的情况(qp>=12&&qp<24)下,设定为shifts=1。此外,在qp较大的情况(qp&gt;=36)下,设定为shifts=2。

图26(c)是表示在将运动矢量精度切换为五个值的情况下的qp与指示运动矢量精度的参数(shifts)的对应的表格。如图26(c)所示,当满足qp&lt;12时,设定为shifts=0。此外,当满足qp>=12&&qp<18时,设定为shifts=1。此外,当满足qp>=18&&qp<24时,设定为shifts=2。此外,当满足qp>=24&&qp<36时,设定为shifts=3。此外,当满足qp>=36时,设定为shifts=4。

根据上述的构成,根据量化参数的大小切换对于该预测块推导的运动矢量的精度,因此,能够使用具有适当的精度的运动矢量生成预测图像。需要说明的是,也可以与根据标志切换运动矢量的精度的构成并用。

(运动矢量精度mvqstep的利用)

此外,帧间预测参数解码控制部3031也可以采用如下的构成:代替上述的shifts,根据对象块的块尺寸来推导mvqstep,作为运动矢量精度。

例如,在使用mvqstep进行图26(a)所示的运动矢量精度的切换的情况下,当满足qp&lt;24时,设定为mvqstep=16。换句话说,设定为mvstep=1/16。另一方面,当满足qp&gt;=24时,设定为mvqstep=4。换句话说,设定为mvstep=1/4。

此外,在使用mvqstep进行图26(b)所示的运动矢量精度的切换的情况下,当满足qp<12时,设定为mvqstep=64。换句话说,设定为mvstep=1/64。此外,当满足qp>=12&&qp<36时,设定为mvqstep=16。换句话说,设定为mvstep=1/16。此外,当满足qp&lt;36时,设定为mvqstep=4。换句话说,设定为mvstep=1/4。

此外,在使用mvqstep进行图26(c)所示的运动矢量精度的切换的情况下,当满足qp&lt;12时,设定为mvqstep=64。

换句话说,设定为mvstep=1/64。此外,当满足qp>=12&&qp<18时,设定为mvqstep=32。换句话说,设定为mvstep=1/32。此外,当满足qp>=18&&qp<24时,设定为mvqstep=16。换句话说,设定为mvstep=1/16。此外,当满足qp>=24&&qp<36时,设定为mvqstep=8。换句话说,设定为mvstep=1/8。此外,当满足qp&gt;=36时,设定为mvqstep=4。换句话说,设定为mvstep=1/4。

(利用qp以及运动矢量精度标志切换的运动矢量精度的示例)

接着,使用图27对利用qp以及作为运动矢量精度标志的mvd_dequant_flag切换的运动矢量精度(推导处理ps_p2b)的示例进行说明。图27(a)以及图27(b)是表示根据qp和运动矢量精度标志设定(切换)的运动矢量精度(shifts)的表格。帧间预测参数解码控制部3031也可以以图27(a)以及(b)所示的示例的方式进行差分矢量推导的处理。

在图27(a)以及图27(b)中,示出将基本矢量精度设为1/16pel(mvbaseaccu=4)的示例,但基本矢量精度(mvbaseaccu)的值可以应用任意的值。

在图27(a)所示的示例中,在运动矢量精度标志mvd_dequant_flag为1(0以外)的情况下,不论qp如何,都将shifts的值确定为固定的值。此外,在运动矢量精度标志mvd_dequant_flag为0的情况下,根据qp确定运动矢量尺度shifts的值。例如,在运动矢量精度标志为mvd_dequant_flag=0,且qp小于规定的值(qp小)的情况下,设定为shifts=0,运动矢量精度成为1/16pel。此外,在运动矢量精度标志为mvd_dequant_flag=0,且qp大于规定的值(qp大)的情况下,设定为shifts=2,运动矢量精度成为1/4pel。另一方面,在运动矢量精度标志为mvd_dequant_flag=1的情况下,固定地设定为shifts=mvbaseaccu(=4),运动矢量精度成为1pel(全像素)。这样,即使在根据qp而变更的情况下,将运动矢量精度标志mvd_dequant_flag为1的情况的shifts设为大于除此以外的情况(mvd_dequant_flag为0)的情况的shifts(将运动矢量精度设为低精度)也是适当的。

在图27(b)所示的示例中,示出即使在运动矢量精度标志为1(0以外)的情况下,根据qp来推导运动矢量尺度shifts的示例。具体而言,在运动矢量精度标志为mvd_dequant_flag=0,且qp小于规定的值(qp小)的情况下,设定为shifts=0,运动矢量精度成为1/16pel。此外,在运动矢量精度标志为mvd_dequant_flag=0,且qp大于规定的值(qp大)的情况下,设定为shifts=4,运动矢量精度成为1pel。另一方面,在运动矢量精度标志为mvd_dequant_flag=1,且qp小于规定的值(qp小)的情况下,设定为shifts=3,运动矢量精度成为1/2pel(半像素)。此外,在运动矢量精度标志为mvd_dequant_flag=1,且qp大于规定的值(qp大)的情况下,设定为shifts=mvbaseaccu(=4),运动矢量精度成为1pel(全像素)。这样,在运动矢量精度标志mvd_dequant_flag为1的情况下,设为对半像素和全像素进行切换较为适当。

此外,可以将通过上述的运动矢量的推导的处理而推导的运动矢量表示于下式。即,在将推导对象的运动矢量标记为mvlx、预测矢量标记为mvplx、差分矢量标记为mvdlx、循环处理标记为round()的情况下,根据预测块的尺寸,确定移位量shifts,并通过

mvlx=round(mvplx)+(mvdlx&lt;&lt;shifts)

确定mvlx。

&lt;差分矢量逆量化处理&gt;

以下,参照图28以及图29,对本实施方式的差分矢量的逆量化处理进行说明。

以下所说明的处理只要未特别明示,则是由帧间预测参数解码控制部3031进行。

(逆量化处理例1:以对应于完成量化的差分矢量的运动矢量精度对差分矢量进行逆量化)

以下,对通过帧间预测参数解码控制部3031实施的针对经过量化的差分矢量qmvd(量化值、完成量化的差分矢量)的非线性逆量化处理进行说明。

需要说明的是,完成量化的差分矢量与在将编码数据的语法解码而获得的时间点(进行逆量化前的时间点)时的差分矢量绝对值的值mvdabsval等价,qmvd的绝对值为mvdabsval。需要说明的是,在图28中,无论是在差分矢量为负的情况下还是在差分矢量为正的情况下,为了澄清图像而将差分矢量的量化值qmvd设为正和负双方均可成立的值,从而示出了示例。另一方面,在实际的处理中,可以用差分矢量的绝对值作为qmvd、即可以设为qmvd=mvdabsval。在以下的说明中,qmvd处理为绝对值。

图28是表示本处理例中的完成量化的差分矢量与逆量化差分矢量的关系的曲线图。图28所示的曲线图的横轴是完成量化的差分矢量即qmvd(对通过编码装置进行过量化以及编码的差分矢量进行了解码且未进行逆量化而得的值,即差分矢量的量化值),图28所示的曲线图的纵轴是逆量化后的差分矢量(也简称为逆量化差分矢量)mvd(=逆量化后mvdabsval)。帧间预测参数解码控制部3031如图28所示的曲线图那样,对完成量化的差分矢量qmvd进行逆量化处理。

mvdabsval=mvdabsval(=qmvd)&lt;&lt;shifts

其后,加法部3035通过对预测矢量加上或减去经过逆量化的差分矢量而推导运动矢量。例如,通过

mvdlx=mvdabsval*(1-2*mv_sign_flag)

mvlx=round(mvplx)+mvdlx

而推导。

对图28所示的曲线图进行详细说明。如图28所示,帧间预测参数解码控制部3031根据从编码数据中解码的完成量化的运动矢量差分与规定值(dth)的大小关系,切换完成量化的运动矢量的逆量化处理的精度。

例如,在差分矢量mvd的绝对值较小的情况下,运动矢量的精度设定为较高,在差分矢量mvd的绝对值较大的情况下,运动矢量的精度设定为较低。

换句话说,差分矢量mvd为零点附近(差分矢量mvd的绝对值较小的情况)与差分矢量mvd的绝对值远离零点附近的情况相比,相对于完成量化的差分矢量qmvd的变化,逆量化差分矢量mvd变化较小。

当差分矢量mvd远离零点附近时(运动矢量差分的绝对值较大的情况),与差分矢量mvd为零点附近的情况相比,相对于完成量化的差分矢量qmvd的变化,逆量化差分矢量变化较大。

这能够通过以下的构成而实现。即,在完成量化的差分矢量即qmvd的绝对值小于规定值(域值)dth(或者以下)的情况下,帧间预测参数解码控制部3031对完成量化的差分矢量qmvd进行由规定的倾斜(比例系数)而特定的逆量化的构成。以及,在完成量化的差分矢量qmvd为规定值dth以上的情况下,帧间预测参数解码控制部3031进行由使该规定的倾斜以运动矢量尺度shifts左位移位而获得的倾斜而特定的逆量化的构成。在此,上述规定的倾斜也可以例如为1。

综上,则如下所述(推导处理q2)。即,帧间预测参数解码控制部3031在完成量化的差分矢量的绝对值较小(qmvd&lt;dth)的情况下,不进行逆量化。

或者仅进行通过与k的积(或者根据log2(k)进行的左移位)而实施的基本的逆量化,并通过

mvdabsval=k*qmvd···算式q1

推导mvdabsval。

此外,帧间预测参数解码控制部3031在完成量化的差分矢量的绝对值较大(满足qmvd&gt;=dth)的情况下,除了基本的逆量化以外,进一步通过规定的逆量化尺度shifts进行追加的逆量化,并通过

mvdabsval=k*(dth+(qmvd-dth)&lt;&lt;shifts)···算式q2

推导mvdabsval。

需要说明的是,算式中出现了dth,其原因在于算式q1中的值与算式q2中的值在qmvd=dth时以成为相等的方式进行连接。当关注qmvd的系数(倾斜)时,注意成为k*1&lt;&lt;shifts,就是说,注意使逆量化尺度成为大shifts程度为好。

在此,mvdabsval是逆量化后的差分矢量的绝对值,k表示规定的比例系数。如上所述,可以设为k=1,也可以不设为如此。基于k的积可以通过根据log2(k)进行的左移位来实现。需要说明的是,在k=1的情况下,仅在满足完成量化的差分矢量qmvd&gt;=dth的情况下,进行基于shifts的逆量化,而在qmvd较小的情况下,不进行基于shifts的逆量化。

此外,具体而言,可以采用如下的构成:在上述算式q1以及q2中,将基本矢量精度设为1/8pel(mvbaseaccu=3)、shifts=1、dth=16。该情况下,在完成量化的差分矢量qmvd为16以上的情况(相当于运动矢量精度为2pel以上)下,使qmvd以shifts=1进行左移位,从而进行逆量化,运动矢量精度设定为1/4pel。即,在qmvd较大的情况下,可以采用将运动矢量精度设定为较低的构成。

此外,在其它示例中,也可以采用如下的构成:在上述算式q1以及q2中,将基本矢量精度设为1/16pel(mvbaseaccu=4)、shifts=1、dth=16。该情况下,在量化差分矢量qmvd为16以上的情况(相当于运动矢量精度为1pel以上)下,使qmvd以shifts=1进行左移位,从而进行逆量化,将运动矢量精度设定为1/8pel。即,在qmvd较大的情况下,可以采用将运动矢量精度设定为较低的构成。

需要说明的是,如果用一个算式来表示算式q1和算式q2,则帧间预测参数解码控制部3031也可以说是通过

mvdabsval=min(qmvd,dth)+max(0,(qmvd-dth)&lt;&lt;shifts)···算式q3

来推导作为差分矢量绝对值的mvdabsval的构成。

此外,作为其它构成,在完成量化的差分矢量qmvd小于域值dth(或者以下)的情况下,帧间预测参数解码控制部3031进行由通过

1&lt;&lt;shifts1

获得的倾斜而特定的逆量化。此外,在完成量化的差分矢量qmvd为域值dth以上(或者大于dth)的情况下,帧间预测参数解码控制部3031进行由通过

1&lt;&lt;shifts2

获得的倾斜而特定的逆量化。在此,shifts1与shifts2可以是相互相等的值,也可以不是。

根据上述的构成,根据经过量化的差分矢量的值来切换针对差分矢量的逆量化处理的精度,因此,能够使用更适当的精度的运动矢量来生成预测图像。此外,能够实现差分矢量的代码量的降低,因此编码效率提高。(逆量化处理例2a:以对应于运动矢量精度标志以及完成量化的差分矢量的运动矢量精度对差分矢量进行逆量化的示例)

接着,对以对应于运动矢量精度标志即mvd_dequant_flag以及完成量化的差分矢量的运动矢量精度对差分矢量进行逆量化的示例进行说明(推导处理ps_p2a)。

在本处理例中,在运动矢量精度标志满足mvd_dequant_flag=1的情况下,通过

mvdabsval=qmvd&lt;&lt;shifta···算式q4

推导mvdabsval。

另一方面,在运动矢量精度标志满足mvd_dequant_flag=0,且完成量化的差分矢量qmvd&lt;规定值dths的情况下,通过

mvdabsval=qmvd···算式q5

推导mvdabsval。

此外,在运动矢量精度标志满足mvd_dequant_flag=0且完成量化的差分矢量qmvd&gt;=规定值dths的情况下,通过

mvdabsval=dths+(qmvd-dths)&lt;&lt;shifts···算式q6

推导mvdabsval。

即,在运动矢量精度标志mvd_dequant_flag==0的情况下进行非线性逆量化,在运动矢量精度标志mvd_dequant_flag==1的情况下进行线性量化。

综上所述,成为下式。

mvdabsval=mvd_quant_flag==1?

qmvd&lt;&lt;shifta

qmvd&lt;dths?qmvd:dths+(qmvd-dths)&lt;&lt;shifts

换句话说,帧间预测参数解码控制部3031在表示运动矢量的精度的标志表示出第一值的情况下(mvd_dequant_flag==0的情况),根据经过量化的差分矢量的值(量化值)切换针对差分矢量的逆量化处理的精度,在表示运动矢量的精度的标志表示出第二值的情况下(mvd_dequant_flag==1的情况),不论经过量化的差分矢量的量化值如何,都以固定的精度进行针对差分矢量的逆量化处理。

例如,在上述算式q4~q6中将基本矢量精度设为1/8pel(mvbaseaccu=3)且设为shifta=3、shifts=1、dths=16的情况下,当满足运动矢量精度标志mvd_dequant_flag=1时,帧间预测参数解码控制部3031不论qmvd如何,都使量化后运动矢量qmvd(差分运动矢量绝对值)左移位shifta(=3位),来对运动矢量进行逆量化。即,通过将运动矢量精度设为全像素,与将运动矢量精度设为mvd_dequant_flag=0的情况相比,固定地设定为较低。另一方面,当满足运动矢量精度标志mvd_dequant_flag=0时,在qmvd为规定的域值16(相当于2pel)以上的情况下,帧间预测参数解码控制部3031通过使量化后运动矢量qmvd左移位shifts(=1位),来对运动矢量进行逆量化。即,将运动矢量精度设为1/4pel,将运动矢量精度设定为比qmvd小于规定的域值16的情况低。

此外,在其它示例中,在上述算式q4~q6中基本矢量精度设为1/16pel(mvbaseaccu=4)且设为shifta=4、shifts=2、dths=16的情况下,当满足运动矢量精度标志mvd_dequant_flag=1时,帧间预测参数解码控制部3031不论qmvd如何,都使量化后运动矢量qmvd左移位shifta(=4位),来对运动矢量进行逆量化。即,将运动矢量精度设为全像素,将运动矢量精度设定为较低。另一方面,当满足运动矢量精度标志mvd_dequant_flag=0时,在规定的域值qmvd为16(相当于1pel)以上的情况下,使量化后运动矢量qmvd左移位shifts(=2位),来对运动矢量进行逆量化。即,将运动矢量精度设为1/4pel,将运动矢量精度设定为较低。

需要说明的是,在上述q4~q6的构成中,规定的域值以及逆量化尺度(shifts,shifta)的值也可以不限定于上述示例而使用其它值。

根据上述的构成,能够使用更适当的精度的运动矢量生成预测图像。因此,预测精度提高,从而编码效率提高。

(逆量化处理例2b:以对应于运动矢量精度标志以及完成量化的差分矢量的运动矢量精度来对差分矢量进行逆量化的其它示例)

接着,对以对应于运动矢量精度标志以及完成量化的差分矢量的运动矢量精度来对差分矢量进行逆量化的其它示例(推导处理q2b)进行说明。

在本处理例中,在运动矢量精度标志为mvd_dequant_flag=1且满足完成量化的差分矢量qmvd&lt;规定值dtha的情况下,通过

mvdabsval=qmvd&lt;&lt;shifta1···算式q7

推导mvdabsval。

此外,在运动矢量精度标志为mvd_dequant_flag=1,且满足完成量化的差分矢量qmvd&gt;=规定值dtha的情况下,通过

mvdabsval=dtha&lt;&lt;shifta1+(qmvd-dtha)&lt;&lt;shifta2···算式q8

推导mvdabsval。

另一方面,在运动矢量精度标志为mvd_dequant_flag=0且满足完成量化的差分矢量qmvd&lt;规定值dths的情况下,通过

mvdabsval=qmvd···算式q9

推导mvdabsval。

此外,在运动矢量精度标志为mvd_dequant_flag=0且满足完成量化的差分矢量qmvd&gt;=dths的情况下,通过

mvdabsval=dths+(qmvd-dths)&lt;&lt;shifts···算式q10

推导mvdabsval。

即,无论在运动矢量精度标志mvd_dequant_flag==0或运动矢量精度标志mvd_dequant_flag==1的哪一种情况下,都进行经过量化的差分矢量的非线性逆量化。

综上所述,成为下式。

mvdabsval=mvd_quant_flag==1?

qmvd&lt;dtha?qmvd&lt;&lt;shifta1:dtha&lt;&lt;shifta1+(qmvd-dtha)&lt;&lt;shifta2

qmvd&lt;dths?qmvd:dths+(qmvd-dths)&lt;&lt;shifts

换句话说,帧间预测参数解码控制部3031在表示运动矢量的精度的标志表示出第一值的情况下(mvd_dequant_flag==0的情况),根据经过量化的差分矢量的量化值(逆量化前的值qmvd),来对将针对差分矢量的逆量化处理的精度设为第一精度还是第二精度进行切换,在表示运动矢量的精度的标志表示出第二值的情况下(mvd_dequant_flag==1的情况),根据经过量化的差分矢量的量化值,来对将针对差分矢量的逆量化处理的精度设为第三精度还是第四精度进行切换。上述第一精度以及第二精度的至少任一方精度比上述第三精度以及第四精度高。

例如,在上述算式q7~q10中将基本矢量精度设为1/8pel且设为shifta1=2、shifta2=3、dtha=4、shifts=2、dths=16的情况下,在满足运动矢量精度标志mvd_dequant_flag=1且完成量化的差分矢量qmvd为dtha=小于4的情况下,帧间预测参数解码控制部3031使完成量化的差分矢量qmvd(差分运动矢量绝对值)左移位shifta1=2,来对运动矢量进行逆量化。即,将运动矢量精度设定为1/2pel,将运动矢量精度设定为较低。

此外,在满足运动矢量精度标志mvd_dequant_flag=1且完成量化的差分矢量qmvd为dtha=4以上的情况下,帧间预测参数解码控制部3031使完成量化的差分矢量qmvd(差分运动矢量绝对值)左移位shifta2=3,来对运动矢量进行逆量化。即,将运动矢量精度设定为1pel,将运动矢量精度设定为较低。

另一方面,在满足运动矢量精度标志mvd_dequant_flag=0且完成量化的差分矢量qmvd为dths=小于16的情况下,帧间预测参数解码控制部3031将运动矢量精度设定为作为基本矢量精度的1/8。

此外,在满足运动矢量精度标志mvd_dequant_flag=0且完成量化的差分矢量qmvd为dths=16以上的情况下,帧间预测参数解码控制部3031使完成量化的差分矢量qmvd左移位shifts=2,来对运动矢量进行逆量化。即,将运动矢量精度设定为1/2pel,将运动矢量精度设定为较低。

根据上述的构成,能够使用更适当的精度的运动矢量来生成预测图像。因此,预测精度提高,从而编码效率提高。

(逆量化处理例3:对应于完成量化的差分矢量的差分矢量的逆量化以及预测矢量的循环处理)

接着,对在根据完成量化的差分矢量进行差分矢量的逆量化的情况下进行预测矢量的循环处理的示例进行说明。

在本处理例中,帧间预测参数解码控制部3031在以更低的精度进行针对差分矢量的逆量化处理的情况下,通过对经矢量候选选择部3034实施过循环处理的预测矢量加上或减去经过逆量化的差分矢量,来推导运动矢量。

例如,能够根据在上述的(以对应于完成量化的差分矢量的运动矢量精度对差分矢量进行逆量化)中说明的算式q3而设为

mvdabsval=qmvd+(qmvd-dth)&lt;&lt;shifts···算式q20。

在完成量化的差分矢量即qmvd为规定值dth以上的情况下,运动矢量mvlx推导为实施过循环处理的预测矢量mvplx与差分矢量mvdlx之和。即,推导为

mvlx=round(mvplx,shifts)+mvdlx。在此,通过round(mvplx,shifts),将mvplx的运动矢量精度降低至1&lt;&lt;shifts单元的精度。在此,从mvdabsval推导mvdlx的处理如作为代码赋予处理ps_sign而说明的那样。

另一方面,在完成量化的差分矢量即qmvd小于规定值dth的情况下,运动矢量mvlx推导为预测矢量mvplx与差分矢量mvdlx之和。即,推导为

mvlx=mvplx+mvdlx。

(逆量化处理例4:对应于运动矢量精度标志以及完成量化的差分矢量的值的差分矢量的逆量化以及预测矢量的循环处理)

在本处理例中,帧间预测参数解码控制部3031通过根据运动矢量精度标志以及完成量化的差分矢量,对经矢量候选选择部3034实施过循环处理的预测矢量加上或减去经过逆量化的差分矢量,来推导运动矢量。

例如,在运动矢量精度标志为mvd_dequant_flag=1的情况下,通过

mvdabsval=qmvd&lt;&lt;shifta

推导mvdabs。然后,运动矢量mvlx通过

mvlx=round(mvplx,shifta)+mvdlx

而推导为实施过循环处理的预测矢量mvplx和差分矢量mvdlx之和。在此,通过round(mvplx,shifta),mvplx的运动矢量精度降低至1&lt;&lt;shifta单元的精度。在此,从mvdabsval推导mvdlx的处理如作为代码赋予处理ps_sign而说明的那样。

另一方面,运动矢量精度标志为mvd_dequant_flag=0的情况如下所述。当完成量化的差分矢量qmvd小于规定值dth时,差分矢量的绝对值mvdabsval推导为与完成量化的差分矢量qmvd相等。即,通过mvdabsval=qmvd推导。然后,运动矢量mvlx成为预测矢量mvplx与差分矢量mvdlx之和。即,通过

mvlx==mvplx+mvdlx

而推导。此外,当完成量化的差分矢量qmvd为规定值dth以上时,差分矢量的绝对值mvdabsval通过

mvdabsval=dths+(qmvd-dths)&lt;&lt;shifts

而推导。然后,运动矢量mvlx成为实施过循环处理的预测矢量mvplx与差分矢量mvdlx之和。即,通过

mvlx=round(mvplx,shifts)+mvdlx

而推导。在此,通过round(mvplx,shifts),将mvplx的运动矢量精度降低至1&lt;&lt;shifts单元的精度。在此,从mvdabsval推导mvdlx的处理如作为代码赋予处理ps_sign而说明的那样。

(逆量化处理例5:对应于运动矢量精度标志以及完成量化的差分矢量的差分矢量的逆量化以及预测矢量的循环处理的其它示例)

接着,对进行对应于运动矢量精度标志以及完成量化的差分矢量的差分矢量的逆量化以及预测矢量的循环处理的其它示例进行说明。

在本处理例中,帧间预测参数解码控制部3031在以第一精度、第二精度、第三精度、以及第四精度中最高的精度以外的精度进行针对差分矢量的逆量化处理的情况下,加法部3035通过对经矢量候选选择部3034实施过循环处理的预测矢量加上或减去经过逆量化的差分矢量,来推导运动矢量。

对本实施方式的一个示例进行详细的说明。

在运动矢量精度标志为mvd_dequant_flag=1的情况下,当完成量化的差分矢量满足小于规定值dtha时,通过

mvdabsval=qmvd&lt;&lt;shifta1

推导mvdabsval。

然后,运动矢量mvlx推导为实施过循环处理的预测矢量mvplx与差分矢量mvdlx之和。即,推导为

mvlx=round(mvplx,shifta1)+mvdlx。在此,通过round(mvplx,shifta1),将mvplx的运动矢量精度降低至1&lt;&lt;shifta1单元的精度。

此外,在运动矢量精度标志为mvd_dequant_flag=1的情况下,当完成量化的差分矢量满足规定值dtha以上时,通过

mvdabsval=规定值dtha&lt;&lt;shifta1+(qmvd-dtha)&lt;&lt;shifta2

推导mvdabsval。

然后,运动矢量mvlx推导为实施过循环处理的预测矢量mvplx与差分矢量mvdlx之和。即,推导为

mvlx=round(mvplx,shifta2)+mvdlx。在此,通过round(mvplx,shifta2),将mvplx的运动矢量精度降低至1&lt;&lt;shifta2单元的精度。在此,从mvdabsval推导mvdlx的处理如作为代码赋予处理ps_sign而说明的那样。

另一方面,运动矢量精度标志为mvd_dequant_flag=0的情况如下所述。当完成量化的差分矢量qmvd小于规定值dth时,差分矢量的绝对值mvdabsval推导为与完成量化的差分矢量qmvd相等。即,通过mvdabsval=qmvd推导。然后,运动矢量mvlx成为预测矢量mvplx与差分矢量mvdlx之和。即,通过

mvlx=mvplx+mvdlx

而推导。此外,当完成量化的差分矢量qmvd为规定值dth以上时,差分矢量的绝对值mvdabsval通过

mvdabsval=dths+(qmvd-dths)&lt;&lt;shifts

而推导。然后,运动矢量mvlx成为实施过循环处理的预测矢量mvplx与差分矢量mvdlx之和。即,通过

mvlx=round(mvplx,shifts)+mvdlx

而推导。在此,通过round(mvplx,shifts),将mvplx的运动矢量精度降低至1&lt;&lt;shifts单元的精度。在此,从mvdabsval推导mvdlx的处理如作为代码赋予处理ps_sign而说明的那样。

(利用了完成量化的差分矢量的运动矢量尺度推导处理的流程)

图29是更具体地表示上述的s3031(参照图19)以及s3041(参照图20)中的运动矢量尺度推导处理的流程图。在图29中,为了方便说明而具体地示例出s3041的处理,但也可以对s3031应用图22所示的处理。

如图29所示,在s304131中,判断是否满足完成量化的差分矢量qmvd&lt;规定值dth。在完成量化的差分矢量qmvd&lt;规定值dth为假(在s304131中为n)的情况下,在s304132中设定为shifts=m,在完成量化的差分矢量qmvd&lt;规定值dth为真(在s304131中为y)的情况下,在s304133中设定为shifts=0。接着,前进至s3042。

&lt;运动补偿滤波&gt;

以下,参照图30~图32,对运动补偿部3091所具备的运动补偿滤波进行说明。

图30是表示运动补偿部3091的具体构成的框图。如图30所示,运动补偿部3091具备运动矢量应用部30911、运动补偿滤波部(滤波部)30912、以及滤波系数存储器30913。

运动矢量应用部3091基于从帧间预测参数解码部303输入的预测列表利用标志predflaglx、参照图片索引refidxlx、运动矢量mvlx,从参照图片存储器306中读出位于以由参照图片索引refidxlx指定的参照图片的解码对象块的位置作为起点而偏移运动矢量mvlx程度的位置的块,由此,生成应用完运动矢量的图像。

在运动矢量mvlx并非整数精度而是1/m像素精度(m为2以上的自然数)的情况下,应用完运动矢量的图像也同样为1/m像素精度。

在运动矢量mvlx并非整数精度的情况下,运动补偿滤波部30912通过使利用了滤波系数mcfilter[i][k](在此,i为0以上m-1以下的整数,k为0以上ntaps-1以下的整数)的滤波对应用完运动矢量的图像发挥作用,来生成上述的运动补偿图像(在l0预测的运动补偿图像的情况下,为predsamplesl0;在l1预测的运动补偿图像的情况下,为predsamplesl1;在不对两者进行区别的情况下,为predsampleslx)。

在运动矢量mvlx为整数精度的情况下,运动补偿滤波部30912不对应用完运动矢量的图像发挥作用,而使应用完运动矢量的图像直接成为运动补偿图像。

滤波系数存储器30913储存从编码数据中解码的运动补偿滤波系数。更具体而言,滤波系数存储器30913储存被运动补偿滤波30912使用的滤波系数mcfilter[i][k](在此,i为0以上m-1以下的整数,k为0以上ntaps-1以下的整数)中至少一部分的与i相关的滤波系数。

(滤波系数)

在此,使用图31对滤波系数mcfilter[i][k]的详细内容进行说明。图31是表示本实施方式的滤波系数的一个示例的图。

图31所示的滤波系数mcfilter[i][k]示例出了应用完运动矢量的图像的相位(i=0-15)的总数为16、滤波器的抽头(taps)数为8(8taps(k=0-7))的情况的滤波系数mcfilter[i][k]。在该示例中,相位(i=0-15)的总数为16。在相位数的总计为16的情况下,运动矢量的精度为1/16像素精度。即,在相位数的总计为m的情况下,运动矢量的精度为1/m像素精度。

例如,示出于图31的最上层的滤波系数{0,0,0,64,0,0,0,0}表示相位i=0时的各系数位置的滤波系数。在此,系数位置是指使滤波系数发挥作用的像素的相对位置。同样地,示出于图31的其它层的滤波系数是针对其它相位(i=1-15)的各系数位置的滤波系数。

滤波系数的总数为将滤波器的抽头(taps)数与相位数(即,运动矢量的精度的倒数)相乘而得的值。

(滤波系数的计算)

运动补偿滤波部(滤波部)30912所使用的上述滤波系数mcfilter[i][k]中,也可以包含使用滤波系数mcfilter[p][k](p≠i)以及滤波系数mcfilter[q][k](q≠i)计算出的滤波系数。滤波系数mcfilter[i][k]的计算例的详细内容如下所述。

(计算例1:由相位i-1、i+1的滤波系数的平均值计算出相位i的滤波系数)

使用图32(a)以及图32(b)对本实施方式的滤波系数的计算的一个示例进行说明。

图32(a)示出了运动补偿滤波部30912从一部分(在此为偶数)的相位的滤波系数计算出其它相位(在此为奇数相位)的滤波系数,并使用计算出的滤波系数的示例。在图32(a)中,对偶数相位的滤波系数标注下划线而进行表示。

在图32(a)所示的示例中,滤波系数存储器30913储存偶数相位的滤波系数。然后,奇数相位i的滤波系数由偶数相位i-1,i+1的滤波系数的平均值计算出。即,在i%2=1(i除以2的余数为1)的情况下,成为mcfilter[i][k]=(mcfilter[i-1][k]+mcfilter[i+1][k])/2。此外,在偶数相位i中,将储存于滤波系数存储器30913的mcfilter[i][k]用作滤波系数。即,在i%2=0(i除以2的余数为0)的情况下,成为mcfilter[i][k]=mcfilter[i][k]。

此外,在i%2=1的情况下,也可以设为mcfilter[i][k]=(mcfilter[i-1][k]+mcfilter[i+1][k])&gt;&gt;1。

此外,也可以采用将奇数的一部分的相位的滤波系数储存于滤波系数存储器30913,且运动补偿滤波部30912将该储存的滤波系数用作滤波系数的构成。

需要说明的是,上述与将成为基本的滤波系数mcfilterc储存于滤波系数存储器30913,并通过下式推导实际利用的滤波系数mcfitler的构成等价。

mcfilter[i][k]=mcfilterc[i&gt;&gt;1][k](i=0,2,4,……,2n,2n+1,n=7)

mcfilter[i][k]=(mcfilterc[i&gt;&gt;1][k]+mcfilterc[(i&gt;&gt;1)+1][k])/2(i=1,3,5,……,2n+1,n=6)

在此,/2所记载的除法可以设为&gt;&gt;1。

例如,在图32(a)所示的示例中,作为mcfilterc,使用以下的表格即可。

mcfilterc[][]=

{

{0,0,0,64,0,0,0,0},

{-1,2,-5,62,8,-3,1,0},

{-1,4,-10,58,17,-5,1,0},

{-1,3,-9,47,31,-10,4,-1},

{-1,4,-11,40,40,-11,4,-1},

{-1,4,-10,31,47,-9,3,-1},

{0,1,-5,17,58,-10,4,-1},

{0,1,-3,8,62,-5,2,-1},

{0,1,-2,4,63,-3,1,0}

}

另一方面,图32(b)示出了运动补偿滤波部30912从一部分(在此为奇数相位)的滤波系数计算出其它相位(偶数相位)的滤波系数的示例。在图32(b)中,对奇数相位的滤波系数标注下划线而进行表示。

在图32(b)的示例中,滤波系数存储器30913储存奇数相位的滤波系数。然后,偶数相位i的滤波系数由奇数相位i-1、i+1的滤波系数的平均值计算出。即,在i%2=0(i除以2的余数为0)的情况下,成为mcfilter[i][k]=(mcfilter[i-1][k]+mcfilter[i+1][k])/2。此外,在奇数相位i中,使用储存于滤波系数存储器30913的mcfilter[i][k]。即,在i%2=1(i除以2的余数为1)的情况下,成为mcfilter[i][k]=mcfilter[i][k]。

此外,在i%2=0的情况下,也可以设为mcfilter[i][k]=(mcfilter[i-1][k]+mcfilter[i+1][k])&gt;&gt;1。

上述与将成为基本的滤波系数mcfilterc储存于滤波系数存储器30913,并通过下式推导实际利用的滤波系数mcfitler的构成等价。

mcfilter[i][k]=mcfilterc[i&gt;&gt;1][k](i=0,1,3,5,……,2n+1,n=7)

mcfilter[i][k]=(mcfilterc[i&gt;&gt;1][k]+mcfilterc[(i&gt;&gt;1)+1][k])/2(i=0,2,4,6,……,2n+1,n=7)

在此,也可以设为/2&gt;&gt;1。

例如,在图32(b)所示的示例中,作为mcfilterc,使用以下的表格即可。

mcfilterc[][]=

{

{0,0,0,64,0,0,0,0},

{0,1,-3,63,4,-2,1,0},

{-1,3,-8,60,13,-4,1,0},

{-1,4,-11,52,26,-8,3,-1},

{-1,4,-11,45,34,-10,4,-1},

{-1,4,-10,34,45,-11,4,-1},

{-1,3,-8,26,52,-11,4,-1},

{0,1,-4,13,60,-8,3,-1},

{0,1,-2,4,63,-3,1,0}

}

此外,也可以采用将偶数的一部分的相位的滤波系数储存于滤波系数存储器30913,且运动补偿滤波部30912将该储存的滤波系数用作滤波系数的构成。

(计算例2:通过前后的其它相位的滤波系数的线性插值计算出相位i的滤波系数)

接着,对运动补偿滤波部30912通过前后的其它相位的滤波系数的线性插值计算出相位i的滤波系数的示例进行说明。运动补偿滤波部30912利用下式,计算出相位i的滤波系数。

mcfilter[i][k]=((n-w)*mcfilter[i0][k]+w*mcfilter[i1][k])&gt;&gt;log(n)

在此,i0=(i/n)*n,i1=i0+n,w=(i%n),n为2以上的整数。

即,上述滤波系数filter[i][k]中,含有满足mcfilter[i][k]=((n-w)*mcfilter[i0][k]+w*mcfilter[i1][k])&gt;&gt;log2(n),i0=(i/n)*n,i1=i0+n,w=(i%n)且n为2以上的整数的滤波系数。

上述与将成为基本的滤波系数mcfilterc储存于滤波系数存储器30913,并通过下式推导实际利用的滤波系数mcfitler的构成等价。

上述与将成为基本的滤波系数mcfilterc储存于滤波系数存储器30913,并通过下式推导实际利用的滤波系数mcfitler的构成等价。

mcfilter[i][k]=mcfilterc[i&gt;&gt;log2(n)][k](i=n*n)

mcfilter[i][k]=((n-w)*mcfilterc[i&gt;&gt;log2(n)][k]+w*mcfilter[(i&gt;&gt;log2(n))+1][k])&gt;&gt;log2(n)(i!=n*n)

此外,也可以是以下的构成。

mcfilter[i][k]=mcfilterc[i&gt;&gt;log2(n)][k](i=0,n*n+1)

mcfilter[i][k]=((n-w)*mcfilterc[i&gt;&gt;log2(n)][k]+w*mcfilter[(i&gt;&gt;log2(n))+1][k])&gt;&gt;log2(n)(i!=n*n+1)

根据以上的计算例所示的构成,无需将运动补偿滤波系数全部储存于滤波系数存储器30913。因此,能够抑制用于储存滤波系数的存储器的量。此外,将运动补偿滤波系数中的一部分滤波系数包含于编码数据即可,因此,削减了编码数据的代码量,从而能够期待编码效率的提高。

(图像编码装置的构成)

接着,对本实施方式的图像编码装置11的构成进行说明。图12是表示本实施方式的图像编码装置11的构成的框图。图像编码装置11包含预测图像生成部101、减法部102、dct/量化部103、熵编码部104、逆量化/逆dct部105、加法部106、预测参数存储器(预测参数存储部、帧存储器)108、参照图片存储器(参照图像存储部,帧存储器)109、编码参数确定部110、预测参数编码部111、以及残差储存部313(残差记录部)而构成。预测参数编码部111包含帧间预测参数编码部112以及帧内预测参数编码部113而构成。

预测图像生成部101对从外部输入的层图像t的每个视点的各图片,按块(分割该图片而成的区域)生成预测图片块p。在此,预测图像生成部101基于从预测参数编码部111输入的预测参数,从参照图片存储器109中读出参照图片块。从预测参数编码部111输入的预测参数例如是运动矢量或位移矢量。预测图像生成部101读出位于以编码对象块作为起点而预测的运动矢量或位移矢量所示的位置的块的参照图片块。预测图像生成部101针对读出的参照图片块,使用多个预测方式中的一个预测方式,生成预测图片块p。预测图像生成部101将生成的预测图片块p输出至减法部102。需要说明的是,预测图像生成部101是与已经说明的预测图像生成部308相同的动作,因此省略预测图片块p的生成的详细内容。

预测图像生成部101为了选择预测方式,例如选择使误差值为最小的预测方式,所述误差值基于包含于图像的块的每个像素的信号值与预测图片块p所对应的每个像素的信号值的差分。选择预测方式的方法并不限定于此。

多个预测方式是帧内预测、运动预测以及合并预测。运动预测是上述的帧间预测中显示时刻间的预测。合并预测是使用已经编码且与位于从编码对象块起预定的范围内的块相同的参照图片块以及预测参数的预测。

预测图像生成部101在选择了帧内预测的情况下,将表示生成预测图片块p时使用的帧内预测模式的预测模式intrapredmode输出至预测参数编码部111。

预测图像生成部101在选择了运动预测的情况下,将生成预测图片块p时使用的运动矢量mvlx存储于预测参数存储器108,并输出至帧间预测参数编码部112。运动矢量mvlx表示从编码对象块的位置至生成预测图片块p时的参照图片块的位置的矢量。表示运动矢量mvlx的信息中,包含表示参照图片的信息(例如,参照图片索引refidxlx、图片顺序编号poc),也可以是表示预测参数的信息。此外,预测图像生成部101将表示帧间预测模式的预测模式predmode输出至预测参数编码部111。

预测图像生成部101在选择了合并预测的情况下,将表示所选择的参照图片块的合并索引merge_idx输出至帧间预测参数编码部112。此外,预测图像生成部101将表示合并预测模式的预测模式predmode输出至预测参数编码部111。

此外,预测图像生成部101也可以具有生成被图像解码装置31所具备的运动补偿部3091参照的运动补偿滤波系数的构成。

此外,预测图像生成部101也可以具有与在图像解码装置31中说明的运动矢量的精度切换对应的构成。即,预测图像生成部101也可以根据块尺寸以及qp等切换运动矢量的精度。此外,也可以采用对在图像解码装置31中切换运动矢量的精度时参照的运动矢量精度标志mvd_dequant_flag进行编码的构成。

减法部102从自外部输入的层图像t所对应的块的信号值中按像素减去从预测图像生成部101输入的预测图片块p的信号值,生成残差信号。减法部102将生成的残差信号输出至dct/量化部103和编码参数确定部110。

dct/量化部103对从减法部102输入的残差信号进行dct,计算出dct系数。dct/量化部103对计算出的dct系数进行量化,求出量化系数。dct/量化部103将求出的量化系数输出至熵编码部104以及逆量化/逆dct部105。

熵编码部104中,从dct/量化部103输入有量化系数,从编码参数确定部110输入有编码参数。所输入的编码参数中,例如有参照图片索引refidxlx、预测矢量索引mvp_lx_idx、差分矢量mvdlx、预测模式predmode、以及合并索引merge_idx等代码。

需要说明的是,熵编码部104也可以采用在对差分矢量mvdlx进行编码前进行与在图像解码装置31中说明的非线性逆量化处理相对应的处理、即针对差分矢量的非线性量化处理的构成。

熵编码部104对输入的量化系数和编码参数进行熵编码从而生成编码流te,并将生成的编码流te输出至外部。

逆量化/逆dct部105对从dct/量化部103输入的量化系数进行逆量化,求出dct系数。逆量化/逆dct部105对求出的dct系数进行逆dct,计算出解码残差信号。逆量化/逆dct部105将计算出的解码残差信号输出至加法部106。

加法部106按像素将从预测图像生成部101输入的预测图片块p的信号值与从逆量化/逆dct部105输入的解码残差信号的信号值相加,生成参照图片块。加法部106将生成的参照图片块存储于参照图片存储器109。

预测参数存储器108将预测参数编码部111所生成的预测参数按编码对象的图片以及块存储于预定的位置。

参照图片存储器109将加法部106所生成的参照图片块按编码对象的图片以及块存储于预定的位置。

编码参数确定部110选择编码参数的多个集合中的一个集合。编码参数是上述的预测参数、与该预测参数相关连而生成的成为编码的对象的参数。预测图像生成部101分别使用这些编码参数的集合来生成预测图片块p。

编码参数确定部110对多个集合的每一个集合计算出信息量的大小和指示编码误差的成本值。成本值例如是代码量与平方误差乘以系数λ而得的值之和。代码量是对量化误差和编码参数进行熵编码而得的编码流te的信息量。平方误差是关于在减法部102中计算出的残差信号的残差值的平方值的像素间的总和。系数λ是大于预先设定的零的实数。编码参数确定部110选择计算出的成本值成为最小的编码参数的集合。由此,熵编码部104将所选择的编码参数的集合作为编码流te输出至外部,而不输出未被选择的编码参数的集合。

预测参数编码部111推导基于从预测图像生成部101输入的参数生成预测图片时所用的预测参数,并对推导出的预测参数进行编码,生成编码参数的集合。预测参数编码部111将所生成的编码参数的集合输出至熵编码部104。

预测参数编码部111将所生成的编码参数的集合中与编码参数确定部110所选择的参数对应的预测参数存储于预测参数存储器108。

预测参数编码部111在从预测图像生成部101输入的预测模式predmode表示帧间预测模式的情况下,使帧间预测参数编码部112进行动作。预测参数编码部111在预测模式predmode表示帧内预测模式的情况下,使帧内预测参数编码部113进行动作。

帧间预测参数编码部112基于从编码参数确定部110输入的预测参数而推导帧间预测参数。帧间预测参数编码部112中,作为推导帧间预测参数的构成,包含与帧间预测参数解码部303(参照图5等)推导帧间预测参数的构成相同的构成。帧间预测参数编码部112的构成将在下文叙述。

帧内预测参数编码部113将从编码参数确定部110输入的预测模式predmode所示的帧内预测模式intrapredmode确定为帧间预测参数的集合。(帧间预测参数编码部的构成)

接着,对帧间预测参数编码部112的构成进行说明。帧间预测参数编码部112是对应于帧间预测参数解码部303的部。

图13是表示本实施方式的帧间预测参数编码部112的构成的概略图。

帧间预测参数编码部112包含合并预测参数推导部1121、amvp预测参数推导部1122、减法部1123、以及预测参数整合部1126而构成。

合并预测参数推导部1121具有与上述的合并预测参数推导部3036(参照图7)同样的构成,amvp预测参数推导部1122具有与上述的amvp预测参数推导部3032(参照图8)同样的构成。

合并预测参数推导部1121中,在从预测图像生成部101输入的预测模式predmode表示合并预测模式的情况下,从编码参数确定部110输入合并索引merge_idx。合并索引merge_idx被输出至预测参数整合部1126。合并预测参数推导部1121从预测参数存储器108读出合并候选中合并索引merge_idx所指示的参照块的参照图片索引refidxlx、运动矢量mvlx。合并候选是位于从成为编码对象的编码对象块起预定的范围的参照块(例如,与编码对象块的左下端、左上端、右上端相接的参照块),是完成了编码处理的参照块。

amvp预测参数推导部1122具有与上述的amvp预测参数推导部3032(参照图8)同样的构成。

即,amvp预测参数推导部1122中,在从预测图像生成部101输入的预测模式predmode表示帧间预测模式的情况下,从编码参数确定部110输入运动矢量mvlx。amvp预测参数推导部1122基于所输入的运动矢量mvlx推导预测矢量mvplx。amvp预测参数推导部1122将推导出的预测矢量mvplx输出至减法部1123。需要说明的是,参照图片索引refidx以及预测矢量索引mvp_lx_idx被输出至预测参数整合部1126。

减法部1123从自编码参数确定部110输入的运动矢量mvlx中减去从amvp预测参数推导部1122输入的预测矢量mvplx,生成差分矢量mvdlx。差分矢量mvdlx输出至预测参数整合部1126。

在从预测图像生成部101输入的预测模式predmode表示合并预测模式的情况下,预测参数整合部1126将从编码参数确定部110输入的合并索引merge_idx输出至熵编码部104。

在从预测图像生成部101输入的预测模式predmode表示帧间预测模式的情况下,预测参数整合部1126进行接下来的处理。

预测参数整合部1126将从编码参数确定部110输入的参照图片索引refidxlx以及预测矢量索引mvp_lx_idx、从减法部1123输入的差分矢量mvdlx整合。预测参数整合部1126将所整合的代码输出至熵编码部104。

需要说明的是,帧间预测参数编码部112也可以包含帧间预测参数编码控制部(未图示),所述帧间预测参数编码控制部对熵编码部104指示与帧间预测相关连的代码(语法元素)的解码,并对包含于编码数据的代码(语法元素)、例如分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标志inter_pred_idc、参照图片索引refidxlx、预测矢量索引mvp_lx_idx、差分矢量mvdlx进行编码。

该情况下,帧间预测参数编码控制部1031包含合并索引编码部(与图10的合并索引解码部30312对应)、矢量候选索引编码部(与图10的矢量候选索引解码部30313对应)、分割模式编码部、合并标志编码部、帧间预测标志编码部、参照图片索引编码部、以及矢量差分编码部等而构成。分割模式编码部、合并标志编码部、合并索引编码部、帧间预测标志编码部、参照图片索引编码部、矢量候选索引编码部、矢量差分编码部分别对分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标志inter_pred_idc、参照图片索引refidxlx、预测矢量索引mvp_lx_idx、差分矢量mvdlx进行编码。

需要说明的是,可以通过计算机实现上述的实施方式中的图像编码装置11、图像解码装置31的一部分、例如熵解码部301、预测参数解码部302、预测图像生成部101、dct/量化部103、熵编码部104、逆量化/逆dct部105、编码参数确定部110、预测参数编码部111、熵解码部301、预测参数解码部302、预测图像生成部308、逆量化/逆dct部311。该情况下,可以通过将用于实现该控制功能的程序记录于计算机可读记录介质,并使计算机系统读入记录于该记录介质的程序并执行来实现。需要说明的是,在此提到的“计算机系统”是指内置于图像编码装置11-11h、图像解码装置31-31h的任一个中的计算机系统,采用包含os、外围设备等硬件的计算机系统。此外,“计算机可读记录介质”是指软盘、磁光盘、rom、cd-rom等可移动介质,以及内置于计算机系统的硬盘等存储装置。而且,“计算机可读记录介质”可以包含:像在经由因特网等网络或电话线路等通信线路来发送程序的情况下的通信线那样短时间内、动态地保存程序的介质;像作为该情况下的服务器、客户端的计算机系统内部的易失性存储器那样在固定时间内保存程序的介质。此外,上述程序可以是用于实现前述的功能的一部分的程序,也可以是能进一步将前述功能与已经记录于计算机系统中的程序组合来实现的程序。

此外,也可以将上述的实施方式中的图像编码装置11、图像解码装置31的一部分或全部作为lsi(largescaleintegration:大规模集成电路)等集成电路而实现。图像编码装置11、图像解码装置31的各功能块可以单独地处理器化,也可以集成一部分或全部来处理器化。此外,集成电路化的方法并不限于lsi,也可以通过专用电路或通用处理器来实现。此外,在通过半导体技术的进步出现代替lsi的集成电路化的技术的情况下,也可以使用基于该技术的集成电路。

以上,参照附图对该发明的一实施方式详细地进行了说明,但具体构成并不限定于上述,在不脱离该发明的主旨的范围内,可以进行各种设计变更等。

〔应用例〕

上述的图像编码装置11以及图像解码装置31可以搭载于进行运动图像的发送、接收、记录、再现的各种装置而利用。需要说明的是,运动图像可以是通过摄像机等拍摄的自然运动图像,也可以是通过计算机等生成的人工运动图像(包含cg以及gui)。

首先,参照图33,对能够将上述的图像编码装置11以及图像解码装置31利用于运动图像的发送以及接收的情况进行说明。

图33(a)是表示搭载有图像编码装置11的发送装置prod_a的构成的框图。如图33(a)所示,发送装置prod_a具备:通过对运动图像进行编码而获得编码数据的编码部prod_a1、通过根据编码部prod_a1获得的编码数据调制载波而获得调制信号的调制部prod_a2、以及发送调制部prod_a2获得的调制信号的发送部prod_a3。上述的图像编码装置11用作该编码部prod_a1。

发送装置prod_a也可以进一步具备:拍摄运动图像的摄像机prod_a4、记录有运动图像的记录介质prod_a5、用于从外部输入运动图像的输入端子prod_a6,以及生成或加工图像的图像处理部a7,作为输入至编码部prod_a1的运动图像的供给源。在图33(a)中示例出发送装置prod_a具备这些全部的构成,但也可以省略一部分。

需要说明的是,记录介质prod_a5可以是记录未被编码的运动图像的介质,也可以是记录以与传输用的编码方式不同的记录用的编码方式编码的运动图像的介质。在后者的情况下,使按照记录用的编码方式对从记录介质prod_a5读出的编码数据进行解码的解码部(未图示)介于记录介质prod_a5与编码部prod_a1之间为好。

图33(b)是表示搭载有图像解码装置31的接收装置prod_b的构成的框图。如图33(b)所示,接收装置prod_b具备:接收调制信号的接收部prod_b1、通过对接收部prod_b1所接收的调制信号进行解调而获得编码数据的解调部prod_b2、以及通过对解调部prod_b2获得的编码数据进行解码而获得运动图像的解码部prod_b3。上述的图像解码装置31用作该解码部prod_b3。

接收装置prod_b也可以进一步具备显示运动图像的显示器prod_b4、用于记录运动图像的记录介质prod_b5、以及用于将运动图像输出至外部的输出端子prod_b6,作为解码部prod_b3所输出的运动图像的供给目的地。图33(b)中示例出了接收装置prod_b具备这些全部的构成,但也可以省略一部分。

需要说明的是,记录介质prod_b5可以是用于记录未被编码的运动图像的介质,也可以是以与传输用的编码方式不同的记录用的编码方式编码的介质。在后者的情况下,使按照记录用的编码方式对从解码部prod_b3取得的运动图像进行编码的编码部(未图示)介于解码部prod_b3与记录介质prod_b5之间为好。

需要说明的是,传输调制信号的传输介质可以是无线,也可以是有线。此外,传输调制信号的传输方案可以是广播(在此,指发送目的地未预先特定的发送方案),也可以是通信(在此,指发送目的地已预先特定的发送方案)。即,调制信号的传输可以通过无线广播、有线广播、无线通信、以及有线通信的任一个来实现。

例如,地面数字广播的广播站(广播设备等)/接收站(电视接收机等)是通过无线广播收发调制信号的发送装置prod_a/接收装置prod_b的一个示例。此外,有线电视广播的广播站(广播设备等)/接收站(电视接收机等)是通过有线广播收发调制信号的发送装置prod_a/接收装置prod_b的一个示例。

此外,使用互联网的vod(videoondemand:视频点播)服务、运动图像共享服务等服务器(工作站等)/客户端(电视接收机、个人计算机、智能手机等)是通过通信收发调制信号的发送装置prod_a/接收装置prod_b的一个示例(通常,在lan中使用无线或有线的任一个作为传输介质,在wan中使用有线作为传输介质)。在此,个人计算机中包含台式pc、膝上型pc、以及平板型pc。此外,智能手机中也包含多功能便携电话终端。

需要说明的是,运动图像共享服务的客户端除了将从服务器下载的编码数据解码并显示于显示器的功能以外,还具有对通过摄像机拍摄的运动图像进行编码并上传至服务器的功能。即,运动图像共享服务的客户端发挥发送装置prod_a以及接收装置prod_b双方的功能。

接着,参照图34,对能够将上述的图像编码装置11以及图像解码装置31利用于运动图像的记录以及再现的情况进行说明。

图34(a)是表示搭载有上述的图像编码装置11的记录装置prod_c的构成的框图。如图34(a)所示,记录装置prod_c具备:通过对运动图像进行编码而获得编码数据的编码部prod_c1、以及将编码部prod_c1获得的编码数据写入记录介质prod_m的写入部prod_c2。上述的图像编码装置11用作该编码部prod_c1。

需要说明的是,记录介质prod_m可以是(1)如hdd(harddiskdrive:硬盘驱动器)、ssd(solidstatedrive:固体状态驱动机)等那样内置于记录装置prod_c的类型的记录介质,也可以是(2)如sd存储卡、usb(universalserialbus:通用串行总线)闪存等那样与记录装置prod_c连接的类型的记录介质,也可以是(3)如dvd(digitalversatiledisc:数字化通用磁盘)、bd(blu-raydisc:蓝光,注册商标)等那样装填至内置于记录装置prod_c的驱动装置(未图示)的类型的记录介质。

此外,记录装置prod_c也可以进一步具备:拍摄运动图像的摄像机prod_c3、用于从外部输入运动图像的输入端子prod_c4、用于接收运动图像的接收部prod_c5、以及生成或加工图像的图像处理部c6,作为输入至编码部prod_c1的运动图像的供给源。图34(a)中例示出了记录装置prod_c具备这些全部的构成,但也可以省略一部分。

需要说明的是,接收部prod_c5可以接收未被编码的运动图像,也可以接收以与记录用的编码方式不同的传输用的编码方式编码的编码数据。在后者的情况下,使对以传输用的编码方式编码的编码数据进行解码的传输用解码部(未图示)介于接收部prod_c5与编码部prod_c1之间为好。

作为这种记录装置prod_c,例如可列举:dvd记录器,bd记录器,hdd(harddiskdrive)记录器等(该情况下,输入端子prod_c4或接收部prod_c5成为运动图像的主要的供给源)。此外,便携式摄像机(该情况下,摄像机prod_c3成为运动图像的主要的供给源)、个人计算机(该情况下,接收部prod_c5或图像处理部c6成为运动图像的主要的供给源)、智能手机(该情况下,摄像机prod_c3或接收部prod_c5成为运动图像的主要的供给源)等也是这种记录装置prod_c的一个示例。

图34(b)是表示搭载有上述的图像解码装置31的再现装置prod_d的构成的框图。如图34(b)所示,再现装置prod_d具备:读出已写入记录介质prod_m的编码数据的读出部prod_d1、以及通过对读出部prod_d1所读出的编码数据进行解码而获得运动图像的解码部prod_d2。上述的图像解码装置31用作该解码部prod_d2。

需要说明的是,记录介质prod_m可以是(1)如hdd、ssd等那样内置于再现装置prod_d的类型的记录介质,也可以是(2)如sd存储卡、usb闪存等那样与再现装置prod_d连接的类型的记录介质,也可以是(3)如dvd、bd等那样装填至内置于再现装置prod_d的驱动装置(未图示)的类型的记录介质。

此外,再现装置prod_d也可以进一步具备显示运动图像的显示器prod_d3、用于将运动图像输出至外部的输出端子prod_d4、以及发送运动图像的发送部prod_d5,作为解码部prod_d2所输出的运动图像的供给目的地。图34(b)中示例出了再现装置prod_d具备这些全部的构成,但也可以省略一部分。

需要说明的是,发送部prod_d5可以发送未被编码的运动图像,也可以发送以与记录用的编码方式不同的传输用的编码方式编码的编码数据。在后者的情况下,使以传输用的编码方式对运动图像进行编码的编码部(未图示)介于解码部prod_d2与发送部prod_d5之间为好。

作为这种再现装置prod_d,例如可列举dvd播放器、bd播放器、hdd播放器等(该情况下,连接有电视接收机等的输出端子prod_d4成为运动图像的主要的供给目的地)。此外,电视接收机(该情况下,显示器prod_d3成为运动图像的主要的供给目的地)、数字标牌(也称为电子看板、电子公告板等,显示器prod_d3或发送部prod_d5成为运动图像的主要的供给目的地)、台式pc(该情况下,输出端子prod_d4或发送部prod_d5成为运动图像的主要的供给目的地)、膝上型或平板型pc(该情况下,显示器prod_d3或发送部prod_d5成为运动图像的主要的供给目的地)、智能手机(该情况下,显示器prod_d3或发送部prod_d5成为运动图像的主要的供给目的地)等也是这种再现装置prod_d的一个示例。

(硬件实现以及软件实现)

此外,上述的图像解码装置31以及图像编码装置11的各块可以通过形成于集成电路(ic芯片)上的逻辑电路而硬件上地实现,也可以利用cpu(centralprocessingunit:中央处理器)而软件上地实现。

在后者的情况下,上述各装置具备:执行实现各功能的程序的命令的cpu、储存上述程序的rom(readonlymemory:只读存储器)、展开上述程序的ram(randomaccessmemory:随机存取存储器)、以及储存上述程序和各种数据的存储器等存储装置(记录介质)等。然后,本发明的目的通过以下方式也能够达成:将实现上述的功能的软件、即计算机可读取地记录上述各装置的控制程序的程序代码(执行形式程序、中间代码程序、源程序)的记录介质供给至上述各装置,该计算机(或cpu、mpu)读出记录于记录介质的程序代码并执行。

作为上述记录介质,例如可使用磁带、盒式磁带等带类,包含软盘(注册商标)/硬盘等磁盘、cd-rom(compactdiscread-onlymemory:光盘只读存储器)/mo盘(magneto-opticaldisc:磁光盘)/md(minidisc:小型磁盘)/dvd(digitalversatiledisc:数字化通用磁盘)/cd-r(cdrecordable:光盘刻录片)/蓝光盘(blu-raydisc:注册商标)等光盘的盘类,ic卡(包含存储卡)/光卡等卡类,掩膜rom/eprom(erasableprogrammableread-onlymemory:可擦可编程只读存储器)/eeprom(electricallyerasableandprogrammableread-onlymemory:电可擦可编程只读存储器,注册商标)/闪速rom等半导体存储器类,或者pld(programmablelogicdevice:可编程逻辑器件)、fpga(fieldprogrammablegatearray:现场可编程门阵列)等逻辑电路类等。

此外,也可以将上述各装置构成为可与通信网络连接,经由通信网络供给上述程序代码。该通信网络能够传输程序代码即可,并无特别限定。例如,可利用互联网、内部网(intranet)、外部网(extranet)、lan(localareanetwork:局域网)、isdn(integratedservicesdigitalnetwork:综合业务数字网),van(value-addednetwork:增值网络)、catv(communityantennatelevision/cabletelevision:社区天线电视/有线电视)通信网、虚拟专用网(virtualprivatenetwork)、电话线路网、移动通信网、卫星通信网等。此外,构成该通信网络的传输介质也只要是可传输程序代码的介质即可,不限定于特定的构成或种类。例如,无论在ieee(instituteofelectricalandelectronicengineers:电气和电子工程师协会)1394、usb、电力线输送、有线tv线路、电话线、adsl(asymmetricdigitalsubscriberline:非对称数字用户线路)线路等有线中,还是在如irda(infrareddataassociation:红外线数据协会)、遥控器那样的红外线、bluetooth(注册商标)、ieee802.11无线、hdr(highdatarate:高数据速率)、nfc(nearfieldcommunication:近场通讯)、dlna(digitallivingnetworkalliance:数字生活网络联盟,注册商标)、便携电话网、卫星线路、地面波数字网等无线中都可利用。需要说明的是,本发明即使以通过电子传输将上述程序代码具体化的嵌入载波的计算机数据信号的形态也能够实现。

本发明并不限定于上述的实施方式,在权利要求所示的范围内,可进行各种变更。即,将在权利要求所示的范围内经过适宜变更的技术方案组合而获得的实施方式也包含在本发明的技术范围内。

(相关申请的交叉引用)

本申请针对2016年2月1日提出申请的日本特愿2016-017444主张优先权的利益,通过对该申请进行参照而将其全部内容包含在本说明书中。

工业上的可利用性

本发明能够优选地应用于对将图像数据编码而得的编码数据进行解码的图像解码装置、以及生成将图像数据编码而得的编码数据的图像编码装置。此外,能够优选地应用于由图像编码装置生成并被图像解码装置参照的编码数据的数据结构。

符号说明

11:图像编码装置(运动图像编码装置)

31:图像解码装置(运动图像解码装置)

302:预测参数解码部(预测图像生成装置)

303:帧间预测参数解码部(运动矢量推导部)

308:预测图像生成部(预测图像生成装置)

3031:帧间预测参数解码控制部(运动矢量推导部)

30912:补偿滤波部(滤波部)

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1