具体实施方式
〔实施方式1〕
(编码数据#1)
在进行本实施方式所涉及的运动图像编码装置2以及运动图像解码装置1的详细说明之前,先对由运动图像编码装置2生成、并且由运动图像解码装置1解码的编码数据#1的数据结构进行说明。
图2是表示编码数据#1的数据结构的图。作为示例,编码数据#1包括序列、以及构成序列的多个图片。
在图2中示出编码数据#1中的图片层以下的层次的结构。图2的(a)~(d)分别是表示规定图片PICT的图片层、规定切片S的切片层、规定树区块(Tree block)TBLK的树区块层、规定树区块TBLK中包含的编码单位(Coding Unit;CU)的CU层的图。
(图片层)
在图片层中,规定了运动图像解码装置1为了对处理对象的图片PICT(以下也称为“对象图片”)进行解码而参考的数据的集合。如图2的(a)所示,图片PICT包含图片头PH、以及切片S1~SNS(NS是图片PICT中包含的切片的总数)。
另外,以下在不需要区别切片S1~SNS的各个的情况下,有时省略码的后缀来记述。此外,对于以下进行说明的编码数据#1中包含的带有后缀的其他数据也相同。
在图片头PH中包含运动图像解码装置1为了决定对象图片的解码方法而参考的编码参数群。例如,表示运动图像编码装置2在编码时使用的可变长编码的模式的编码模式信息(entropy_coding_mode_flag),是图片头PH中包含的编码参数的一例。
在entropy_coding_mode_flag为0的情况下,该图片PICT通过CAVLC(Context-based Adaptive Variable Length Coding,基于上下文的自适应变长编码)进行了编码。此外,在entropy_coding_mode_flag为1的情况下,该图片PICT通过CABAC(Context-basedAdaptive Binary Arithmetic Coding,基于上下文的自适应二进制算术编码)进行了编码。
另外,图片头PH也被称为图片参数集(PPS:Picture Parameter Set)。
(切片层)
在切片层中,规定运动图像解码装置1为了对处理对象的切片S(也称为“对象切片”)进行解码而参考的数据的集合。如图2的(b)所示,切片S包含切片头SH、以及树区块TBLK1~TBLKNC(NC是切片S中包含的树区块的总数)的序列。
在切片头SH中包含运动图像解码装置1为了决定对象切片的解码方法而参考的编码参数群。指定切片类型的切片类型指定信息(slice_type),是切片头SH中包含的编码参数的一例。
作为通过切片类型指定信息能够指定的切片类型,可以列举:(1)编码时仅使用帧内预测的I切片;(2)编码时使用单方向预测、或者帧内预测的P切片;(3)编码时使用单方向预测、双方向预测、或者帧内预测的B切片等。
此外,在切片头SH中包含由运动图像解码装置1具备的自适应滤波器参考的滤波器参数FP。另外,也可以采用在图片头PH中包含滤波器参数FP的构成。
(树区块层)
在树区块层中,规定运动图像解码装置1为了对处理对象的树区块TBLK(以下也称为“对象树区块”)进行解码而参考的数据的集合。另外,有时将树区块称为最大编码单位(LCU:Largest Cording Unit)。
树区块TBLK包含树区块头TBLKH和编码单位信息CU1~CUNL(NL是树区块TBLK中包含的编码单位信息的总数)。这里,首先,如下所述来说明树区块TBLK与编码单位信息CU的关系。
树区块TBLK被分割为用于确定用于帧内预测或者帧间预测、以及变换的各处理的区块大小的分区。
树区块TBLK的上述分区,通过递归的四叉树分割进行分割。以下将通过该递归的四叉树分割而得到的树结构称为编码树(coding tree)。
以下,将与编码树的末端的节点即叶子(1eaf)对应的分区作为编码节点(codingnode)来参考。此外,因为编码节点成为编码处理的基本单位,所以以下也将编码节点称为编码单位(CU)。
也就是说,编码单位信息(以下称为CU信息)CU1~CUNL是与将树 区块TBLK递归地进行四叉树分割而得到的各编码节点(编码单位)对应的信息。
此外,编码树的根(root)与树区块TBLK建立对应。换言之,树区块TBLK与递归地包含多个编码节点的四叉树分割的树结构的最上位节点建立对应。
另外,各编码节点的大小,纵横都是该编码节点直接所属的编码节点(即,该编码节点的上一层次的节点的分区)的大小的一半。
此外,各编码节点能够取值的大小,依赖于编码数据#1的序列参数集SPS中包含的编码节点的大小指定信息以及最大层次深度(maximum hierarchical depth)。例如,在树区块TBLK的大小为64×64像素、最大层次深度为3的情况下,该树区块TBLK以下的层次中的编码节点能够取值3种大小、即64×64像素、32×32像素、以及16×16像素的任一个。
(树区块头)
树区块头TBLKH中包含运动图像解码装置1为了决定对象树区块的解码方法而参考的编码参数。具体而言,如图2的(c)所示,包含用于指定向对象树区块的各CU的分割型式(pattern)的树区块分割信息SP_TBLK、以及用于指定量化步长的大小的量化参数差分Δqp(qp_delta)。
树区块分割信息SP_TBLK是表示用于分割树区块的编码树的信息,具体而言,是指定对象树区块中包含的各CU的形状、大小、以及在对象树区块内的位置的信息。
另外,树区块分割信息SP_TBLK也可以不显示地包含CU的形状、大小。例如树区块分割信息SP_TBLK可以是表示是否对对象树区块整体或者树区块的部分区域进行四分割的标志(split_coding_unit_flag)的集合。在该情况下,通过并用树区块的形状、大小能够确定各CU的形状、大小。
此外,量化参数差分Δqp是对象树区块中的量化参数qp与紧接该对象树区块之前被编码的树区块中的量化参数qp’的差分qP-qp’。
(CU层)
在CU层中,规定运动图像解码装置1为了对处理对象的CU(以下也称为“对象CU”)进行解码而参考的数据的集合。
这里,在说明CU信息CU中包含的数据的具体内容之前,对CU中包含的数据的树结构进行说明。编码节点成为预测树(prediction tree;PT)以及变换树(transform tree;TT)的根节点。如下所述来说明预测树以及变换树。
在预测树中,编码节点被分割为一个或者多个预测区块,规定各预测区块的位置和大小。用其他表现方式来说,预测区块是构成编码节点的一个或者多个不重复的区域。此外,预测树包含通过上述的分割而得到的一个或者多个预测区块。
按每个该预测区块来进行预测处理。以下,将作为预测的单位的预测区块也称为预测单位(prediction unit;PU)。
预测树中的分割的种类,笼统地说存在帧内预测的情况和帧间预测的情况。
在帧内预测的情况下,分割方法存在2N×2N(大小与编码节点相同)和N×N。
此外,在帧间预测的情况下,分割方法存在2N×2N(大小与编码节点相同)、2N×N、N×2N、以及N×N等。
此外,在变换树中,编码节点被分割为一个或者多个变换区块,规定各变换区块的位置和大小。用其他表现方式来说,变换区块是构成编码节点的一个或者多个不重复的区域。此外,变换树包含通过上述的分割而得到的一个或者多个变换区块。
对于变换树中的分割,有将大小与编码节点相同的区域作为变换区块进行分配的方式;和与上述的树区块的分割同样,基于递归的四叉树分割的方式。
按每个该变换区块来进行变换处理。以下,将作为变换的单位的变换区块也称为变换单位(transform unit;TU)。
(CU信息的数据结构)
接下来,参考图2的(d)来说明CU信息CU中包含的数据的具体内容。如图2的(d)所示,具体而言,CU信息CU包含跳转标志SKIP、PT信息PTI、以及TT信息TTI。
跳转标志SKIP,是表示对于对象的PU是否应用了跳转模式的标志, 在跳转标志SKIP的值为1的情况下,即,对对象CU应用了跳转模式的情况下,该CU信息CU中的PT信息PTI、以及TT信息TTI被省略。另外,对于I切片,省略跳转标志SKIP。
PT信息PTI是与CU中包含的PT相关的信息。换言之,PT信息PTI是与PT中包含的一个或者多个PU的各个相关的信息的集合,在由运动图像解码装置1生成预测图像时被参考。如图2的(d)所示,PT信息PTI包含预测类型信息PType、以及预测信息PInfo。
预测类型信息PType,是指定使用帧内预测或者使用帧间预测作为对于对象PU的预测图像生成方法的信息。
预测信息PInfo根据预测类型信息PType指定哪种预测方法,由帧内预测信息或者帧间预测信息构成。以下,将应用帧内预测的PU也称为帧内PU,将应用帧间预测的PU也称为帧间PU。
此外,预测信息PInfo包含指定对象PU的形状、大小、以及位置的信息。如上所述,以PU为单位来进行预测图像的生成。对于预测信息PInfo的详细情况,后面叙述。
TT信息TTI是与CU中包含的TT相关的信息。换言之,TT信息TTI是与TT中包含的一个或者多个TU的各个相关的信息的集合,在由运动图像解码装置1解码残差数据时被参考。另外,以下,有时将TU称为区块。
如图2的(d)所示,TT信息TTI包含用于指定向对象CU的各变换区块的分割型式的TT分割信息SP_TT、以及量化预测残差QD1~QDNT(NT是对象CU中包含的区块的总数)。
具体而言,TT分割信息SP_TT是用于决定对象CU中包含的各TU的形状、大小、以及在对象CU内的位置的信息。例如,TT分割信息SP_TT能够由表示是否进行成为对象的节点的分割的信息(split_transform_unit_flag)、和表示该分割的深度的信息(trafoDepth)来实现。
此外,例如,在CU的大小为64×64的情况下,由分割所得的各TU可以取值从32×32像素到2×2像素的大小。
各量化预测残差QD是通过运动图像编码装置2对作为处理对象区块 的对象区块实施以下的处理1~3而生成的编码数据。
处理1:对从编码对象图像减去预测图像得到的预测残差进行DCT变换(DiscreteCosine Transform,离散余弦变换);
处理2:对由处理1所得到的变换系数进行量化;
处理3:对由处理2被量化后的变换系数进行可变长编码;
另外,上述的量化参数qp表示运动图像编码装置2对变换系数进行量化时所使用的量化步长QP的大小(QP=2qp/6)。
(预测信息PInfo)
如上所述,预测信息PInfo中存在帧间预测信息以及帧内预测信息这两种。
帧间预测信息中包含运动图像解码装置1通过帧间预测生成帧间预测图像时所参考的编码参数。更具体而言,帧间预测信息中包含用于指定向对象CU的各帧间PU的分割型式的帧间PU分割信息、以及对于各帧间PU的帧间预测参数。
帧间预测参数中包含参考图像索引、估计运动矢量索引和运动矢量残差。
另一方面,帧内预测信息中包含运动图像解码装置1通过帧内预测生成帧内预测图像时所参考的编码参数。更具体而言,帧内预测信息中包含用于指定向对象CU的各帧内PU的分割型式的帧内PU分割信息、以及对于各帧内PU的帧内预测参数。帧内预测参数是用于指定对于各帧内PU的帧内预测方法(预测模式)的参数。
(偏移单位)
此外,在本实施方式中,各图片或者各切片通过四叉树结构被递归地分割为多个偏移单位(也称为QAOU:Quad Adaptive Offset Unit,四方自适应偏移单位)。这里,所谓QAOU,是本实施方式所涉及的自适应偏移滤波器执行的偏移滤波处理的处理单位。
如图2(e)~(f)所示,与各QAOU相关的信息即QAOU信息包含表示自身是否被进一步分割的sao_split_flag。更具体而言,sao_split_flag通过后述的参量(sao_curr_depth、ys、xs)来指定,也记作sao_split_flag[sao_curr_depth][ys][xs]。
在某QAOU中包含的sao_split_flag表示该QAOU进一步被分割的情况下(即,该QAOU不是叶子的情况下),如图2(e)所示,在与该QAOU相关的QAOU信息中包含与该QAOU中包含的多个QAOU的各个相关的QAOU信息。
另一方面,在某QAOU中包含的sao_split_flag表示该QAOU不被进一步分割的情况下(即,该QAOU是叶子的情况下),如图2(f)所示,在与该QAOU相关的QAOU信息中包含与该QAOU相关的偏移信息OI。此外,如图2(f)所示,在偏移信息OI中包含:指定偏移类型的偏移类型指定信息OTI、以及根据偏移类型而决定的偏移群。进而,如图2(f)所示,偏移群中包含多个偏移。
另外,编码数据中的偏移是被量化过的值。此外,编码数据中的偏移也可以是通过使用任一种预测、例如线性预测而得到的预测残差。此外,在按每一定的单位区域不同地指定后述的像素比特深度的情况下,根据像素比特深度来变更偏移的比特深度、偏移值域、以及移位值的本实施方式中,在偏移类型指定信息OTI中也可以包含处理对象区域的像素比特深度。
替换要参考的附图来说明偏移信息OI,如下所述。
图3是表示偏移信息OI(图3中记作sao_offset_param())中包含的各句法的图。
如图3所示,偏移信息OI中包含句法sao_type_idx[sao_curr_depth][ys][xs]。此外,在sao_type_idx[sao_curr_depth][ys][xs]不是0的情况下,在偏移信息OI中包含sao_offset[sao_curr_depth][ys][xs][i]。
(sao_curr_depth、ys、xs)
作为sao_type_idx以及sao_offset的参量的sao_curr_depth是表示QAOU的分割深度的索引,ys以及xs分别是用于表示QAOU(或者后述的QAOMU)的y方向的位置以及x方向的位置的索引。
图4(a)~(e)是表示与sao_curr_depth的值相应的QAOU的分割形态的图,(a)示出sao_curr_depth=0的情况,(b)示出sao_curr_depth=1的情况,(c)示出sao_curr_depth=2的情况,(d)示出sao_curr_depth=3的情况,(e) 示出sao_curr_depth=4的情况。如图4(a)~(e)所示,各QAOU由sao_curr_depth、以及(xs、ys)来指定。
此外,如图4(a)所示,在sao_curr_depth=0时,xs以及ys分别是0,如图4(b)所示,在sao_curr_depth=1时,xs以及ys分别可以取0以及1的任一个值。此外,如图4(c)所示,在sao_curr_depth=2时,xs以及ys分别可以取0、1、2以及3的任一个值。一般,对于给定的sao_curr_depth,xs以及ys分别可以取0~2sao_curr_depth-1的值。
(sao_type_idx)
sao_type_idx[sao_curr_depth][ys][xs]与上述的偏移类型指定信息OTI相对应,是用于指定对于各QAOU的偏移类型的句法。以下,有时将sao_type_idx简称为偏移类型。
在本实施方式中,sao_type_idx[sao_curr_depth][ys][xs]取0至6的整数值。sao_type_idx[sao_curr_depth][ys][xs]=0表示对于对象QAOU中的偏移滤波器前图像(例如,后述的已去区块解码图像P_DB)不进行偏移滤波处理,sao_type_idx[sao_curr_depth][ys][xs]=1~4表示对于对缘QAOU中的偏移滤波器前图像进行边缘偏移处理,sao_type_idx[sao_curr_depth][ys][xs]=5~6表示对于对象QAOU中的偏移滤波器前图像进行带偏移处理。对于边缘偏移处理以及带偏移处理的具体内容,后面叙述。
(sao_offset)
sao_offset[sao_curr_depth][ys][xs][i]是表示在本实施方式所涉及的自适应偏移滤波器执行的偏移滤波处理中对象QAOU中包含的各像素上加上的偏移的具体值的句法。在本实施方式中,有时将sao_offset简称为偏移。
sao_offset[sao_curr_depth][ys][xs][i],除了参量sao_curr_depth、ys以及xs之外还根据索引i来指定。这里,索引i是用于指定类别的索引,也记作class_idx。索引i在sao_type_idx[sao_curr_depth][ys][xs]的值为1~4的任一个的情况下(即,边缘偏移的情况下),取i=0~4的任一个整数值。此外,在sao_type_idx[sao_curr_depth][ys][xs]的值为5~6的任一个的情况下(即,带偏移的情况下),取i=0~16的任一个整数值。另外,如后所 述,任一种情况下,i=0都表示不加上偏移。
如后所述,本实施方式所涉及的自适应偏移滤波器将对象QAOU中包含的对象像素分类为上述多个类别的任一个,并且对该对象像素加上对于该对象像素被分类的类别的偏移Offset。
此外,图3所示的Descriptor(描述符)ue(v)表示与该描述符建立了关联的句法是无符号的数值,值被可变长编码,se(v)表示与该描述符建立了关联的句法是带符号的数值,分为符号和绝对值被可变长编码。
(运动图像解码装置1)
以下,参考图1以及图5~图13来说明本实施方式所涉及的运动图像解码装置1。关于运动图像解码装置1,其一部分包含H.264/MPEG-4.AVC中所采用的方式、VCEG(VideoCoding Expert Group,视频编码专家组)中的共同开发用编解码器即KTA软件中所采用的方式、作为其后继编解码器的TMuC(Test Model under Consideration,考虑中的测试模型)软件中所采用的方式、以及HM(HEVC TestModel,高效率视频编码测试模型)软件中所采用的技术。
图5是表示运动图像解码装置1的构成的框图。如图5所示,运动图像解码装置1具备可变长码解码部13、运动矢量恢复部14、缓冲存储器15、帧间预测图像生成部16、帧内预测图像生成部17、预测方式决定部18、逆量化/逆变换部19、加法器20、去区块滤波器41、自适应滤波器50、以及自适应偏移滤波器60。运动图像解码装置1是用于通过对编码数据#1进行解码来生成运动图像#2的装置。
可变长码解码部13从编码数据#1解码与各分区相关的预测参数PP。即,关于帧间预测分区,从编码数据#1解码参考图像索引RI、估计运动矢量索引PMVI、以及运动矢量残差MVD,并将这些提供给运动矢量恢复部14。另一方面,关于帧内预测分区,从编码数据#1解码(1)指定分区的大小的大小指定信息、以及(2)指定预测索引的预测索引指定信息,并将其提供给帧内预测图像生成部17。此外,可变长码解码部13从编码数据解码CU信息,并将其提供给预测方式决定部18(省略图示)。进而,可变长码解码部13从编码数据#1解码与各区块相关的量化预测残差QD、以及与包含该区块的树区块相关的量化参数差分Δqp,并且将这些提供给 逆量化/逆变换部19。此外,可变长码解码部13从编码数据#1提取QAOU信息,并且将所提取的QAOU信息提供给自适应偏移滤波器60。
运动矢量恢复部14将与各帧间预测分区相关的运动矢量mv根据与该分区相关的运动矢量残差MVD和与其他分区相关的已恢复的运动矢量mv’进行恢复。具体而言,(1)按照由估计运动矢量索引PMVI所指定的估计方法,根据已恢复的运动矢量mv’导出估计运动矢量pmv,(2)通过将导出的估计运动矢量pmv和运动矢量残差MVD相加来得到运动矢量mv。另外,可以从缓冲存储器15读出与其他分区相关的已恢复的运动矢量mv’。运动矢量恢复部14将所恢复的运动矢量mv与对应的参考图像索引RI一起提供给帧间预测图像生成部16。另外,对于进行双方向预测(加权预测)的帧间预测分区,将所恢复的2个运动矢量mv1以及mv2与对应的参考图像索引RI1以及RI2一起提供给帧间预测图像生成部16。
帧间预测图像生成部16生成与各帧间预测分区相关的运动补偿图像mc。具体而言,使用从运动矢量恢复部14提供的运动矢量mv,根据由同样从运动矢量恢复部14提供的参考图像索引RI所指定的已滤波解码图像P_FL’,生成运动补偿图像mc。这里,已滤波解码图像P_FL’是通过对已经完成了解码的解码图像P实施去区块滤波器41的去区块处理、自适应偏移滤波器60的偏移滤波处理、以及自适应滤波器50的自适应滤波处理而得到的图像,帧间预测图像生成部16可以从缓冲存储器15读出构成已滤波解码图像P_FL’的各像素的像素值。由帧间预测图像生成部16生成的运动补偿图像mc作为帧间预测图像Pred_Imer提供给预测方式决定部18。另外,对于进行双方向预测(加权预测)的帧间预测分区,通过(1)使用运动矢量mv1根据由参考图像索引RI1所指定的已滤波解码图像P_FL1’生成运动补偿图像mc1,(2)使用运动矢量mv2根据由参考图像索引RI2所指定的已滤波解码图像P_FL2’生成运动补偿图像mc2,(3)通过对运动补偿图像mc1与运动补偿图像mc2的加权平均加上偏移值从而生成帧间预测图像Pred_Inter。
帧内预测图像生成部17生成与各帧内预测分区相关的预测图像Pred_Intra。具体而言,首先,参考从编码数据#1解码出的预测模式,例如按照光栅扫描顺序对对象分区分配该预测模式。接下来,按照该预测模 式所示的预测方法,从解码图像P生成预测图像Pred_Intra。由帧内预测图像生成部17所生成的帧内预测图像Pred_Intra提供给预测方式决定部18。
此外,帧内预测图像生成部17将对象分区的大小、以及表示分配给对象分区的预测模式的信息即帧内编码模式信息IEM提供给自适应滤波器50。
预测方式决定部18基于CU信息决定各分区是要进行帧间预测的帧间预测分区,还是要进行帧内预测的帧内预测分区。而且,在前者的情况下,将由帧间预测图像生成部16所生成的帧间预测图像Pred_Inter作为预测图像Pred提供给加法器20,在后者的情况下,将由帧内预测图像生成部17所生成的帧内预测图像Pred_Intra作为预测图像Pred提供给加法器20。
逆量化/逆变换部19,(1)对量化预测残差QD进行逆量化,(2)对通过逆量化而得到的DCT系数进行逆DCT(Discrete Cosine Transform,离散余弦变换)变换,(3)将通过逆DCT变换而得到的预测残差D提供给加法器20。另外,在对量化预测残差QD进行逆量化时,逆量化/逆变换部19根据从可变长码解码部13提供的量化参数差分Δqp导出量化步长QP。量化参数qp可以通过对与紧接之前进行了逆量化/逆DCT变换的树区块相关的量化参数qp’加上量化参数差分Δqp来导出,量化步长QP可以从量化步长qp通过Qp=2pq/b导出。此外,逆量化/逆变换部19执行的预测残差D的生成,以区块(变换单位)为单位来进行。
加法器20通过将从预测方式决定部18提供的预测图像Pred、和从逆量化/逆变换部19提供的预测残差D相加,来生成解码图像P。
去区块滤波器41在隔着解码图像P中的区块边界或者CU边界而相互相邻的像素的像素值之差小于预先决定的阈值的情况下,通过对解码图像P中的该区块边界或者该CU边界实施去区块处理,从而进行该区块边界或者该CU边界附近的图像的平滑化。通过去区块滤波器41实施了去区块处理的图像,作为已去区块解码图像P_DB输出给自适应偏移滤波器60。
自适应偏移滤波器60通过对从去区块滤波器41提供的已去区块解码 图像P_DB,以QAOU为处理单位实施使用了从编码数据#1解码出的偏移的偏移滤波处理,从而生成偏移已滤波解码图像P_OF。所生成的偏移已滤波解码图像P_OF被提供给自适应偏移滤波器60。对于自适应偏移滤波器60的具体构成,进行后述,所以这里省略说明。
自适应滤波器50通过对从自适应偏移滤波器60提供的偏移已滤波解码图像P_OF实施使用了从编码数据#1解码出的滤波器参数FP的滤波处理,从而生成已滤波解码图像P_FL。通过自适应滤波器50实施了滤波处理的图像,作为已滤波解码图像P_FL输出到外部,并且与由可变长码解码部13从编码数据解码出的POC指定信息建立关联地存储到缓冲存储器15。
(自适应偏移滤波器60)
图1是表示自适应偏移滤波器60的构成的框图。如图1所示,自适应偏移滤波器60具备自适应偏移滤波器信息解码部61以及自适应偏移滤波器处理部62。
此外,如图1所示,自适应偏移滤波器信息解码部61具备偏移信息解码部611、QAOU结构解码部612、以及偏移属性设定部613。
偏移信息解码部611参考编码数据#1中包含的QAOU信息,解码QAOU信息中包含的偏移信息OI。此外,将通过解码偏移信息OI而得到的sao_type_idx[sao_curr_depth][ys][xs]以及sao_offset[sao_curr_depth][ys][xs][i]的各值与各个参量(sao_curr_depth、ys、xs)以及(sao_curr_depth、ys、xs、i)建立关联,提供给偏移信息存储部621。
QAOU结构解码部612通过解码QAOU信息中包含的sao_split_flag[sao_curr_depth][ys][xs],决定QAOU的分割结构,将表示所决定的QAOU的分割结构的QAOU结构信息提供给偏移信息存储部621。
偏移属性设定部613决定偏移的比特深度(也称为SAO_DEPTH)和偏移的值域。这里,偏移的比特深度,根据输入到偏移属性设定部613的未图示的像素比特深度(也称为PIC_DEPTH)决定。所谓像素比特深度,用比特宽度表示构成自适应偏移滤波器60的输入图像的像素值的值域,像素比特深度为N比特时,像素值取0至2N-1的范围。例如,像素比特深度为8比特时,像素值可以取0至255的范围。自适应偏移滤波器60的 输入图像是运动图像解码装置1的解码图像、或者运动图像编码装置2的局部解码图像的情况下,使用解码图像/局部解码图像的比特深度。自适应偏移滤波器60的输入图像的精度以及输出图像的精度是像素比特深度。
像素比特深度能够对使用编码数据#1中的句法而决定的值进行解码来使用。例如,H.264/AVC的情况下,可以使用序列参数集中的bit_depth_luma_minus8来决定。进而,作为其他方式,像素比特深度可以按处理对象的每个单位区域来决定,在该情况下,从该单位区域的头解码像素比特深度。单位区域的像素比特深度可以包含在用于解码自适应偏移滤波器60的输入图像的编码数据#1中的参数信息或头中,也可以被包含为QAOU信息的一部分。作为用于解码输入图像的参数信息以及头,可以预先在图片参数头、切片头、LCU、CU等中包含像素比特深度。此外,作为QAOU信息的一部分,可以在叶子QAOU中包含像素比特深度,也可以在给定层次(例如最上位层次的QAOU、第1层次的QAOU)的QAOU信息中包含像素比特深度。此外,作为像素比特深度的编码,适宜作为自8比特的差分值进行编码。在QAOU信息中,除了像素比特深度之外,也可以直接对移位值进行编码。此外,移位值适于仅在超过8比特的情况下进行编码。这里作为移位值,表示为了进行逆量化而需要的比特移位量。作为用于逆量化的参数,除了移位值之外,还可以是步长值。在该情况下,偏移的逆量化可以利用与步长值的积来执行,偏移的量化可以利用基于步长值的除法来执行。
此外,所谓偏移的比特深度,是表示编码数据#1中被编码的偏移的精度的值。编码数据#1中包含的偏移被量化,该量化后的偏移在解码后,通过后述的偏移导出部625,被逆量化为与像素比特深度相匹配的比特深度。此外,在后述的偏移加法部626中,进行逆量化后的偏移的加法运算。偏移的比特深度具有像素比特深度以下的值。在偏移的比特深度比像素比特深度小k比特的情况下,被编码的偏移的值,表示将2k作为偏移的量化步长进行了量化后的值。由后述的偏移导出部625进行从解码后的比特深度向像素比特深度的变换。
偏移属性设定部613还根据所决定的偏移的比特深度设定偏移值域。 而且,根据偏移的像素比特深度和偏移值域设定移位值。被设定的偏移值域以及移位值提供给偏移信息存储部621以及偏移信息解码部611。利用后述的型式S1~S6的任一种方式进行偏移的比特深度的决定和移位值的设定。利用后述的型式C1、型式C2的任一种方式进行偏移值域的设定。将偏移值域以及移位值等对于偏移公共的属性称为偏移属性。另一方面,如图1所示,自适应偏移滤波器处理部62具备偏移信息存储部621、QAOU控制部622、偏移类型导出部623、类别分类部624、偏移导出部625、以及偏移加法部626。
偏移信息存储部621是用于基于QAOU结构信息、sao_type_idx[sao_curr_depth][ys][xs]、以及sao_offset[sao_curr_depth][ys][xs][i]管理以及存储与对于各QAOU所指定的偏移类型以及该偏移类型中能够选择的各类别相关的偏移的具体值的构成,具备映射存储器以及表存储器。
映射存储器中存储有分配给根据分割深度而决定的各偏移最小单位(也称为QAOMU:Quad Adaptive Offset Minimum Unit;四方自适应偏移最小单位)的后述的QAOU索引。在图6(a)中说明映射存储器。图6(a)是用于说明映射存储器中存储的QAOU索引的一例的图,是表示构成对象处理单位(例如LCU)的分割深度3的各QAOMU和分配给各QAOMU的QAOU索引的图。在图6(a)中,为了简便,不考虑QAOU的分割深度地将索引0~9指定QAOU。在图6(a)所示的示例中,将由QAOU索引=I所指定的QAOU记作QAOUI。此外,图6(a)中的细线示出QAOMU的边界,粗线示出QAOU的边界。
如图6(a)所示,QAOU0由4个QAOMU构成,对于这4个QAOMU,分配了0作为QAOU索引。另一方面,QAOU3由一个QAOMU构成,对该QAOMU分配了3作为QAOU索引。如此,映射存储器中存储了对各QAOMU所分配的QAOU索引。
另一方面,在表存储器中,各QAOU索引、与该QAOU索引建立了关联的偏移类型、以及与该偏移类型中能够选择的各类别相关的偏移的具体的值相关建立关联地进行存储。偏移信息存储部621存储被由偏移属性设定部613设定的偏移值域限制了值的范围的偏移。
图6(b)是用于说明表存储器中所存储的信息的一例的图,示出与QAOU索引0~9的各个建立了关联的偏移类型以及与各偏移类型中能够选择的各类别相关的偏移。图6(b)中的“xxx”表示可以相互不同的具体数值。
此外,图6(b)中的“BO_1”表示由sao_type_idx=5指定的偏移类型。此外,“EO_1”表示由sao_type_idx=1指定的偏移类型。如此,将由sao_type_idx=1、2、3、4指定的偏移类型即边缘偏移分别记作EO_1、2、3、4,将由sao_type_idx=5、6指定的偏移类型即带偏移分别记作BO_1、2。
如图6(b)所示,在偏移类型为带偏移的情况下,与该偏移类型相关地存储在表存储器中的偏移是偏移1~偏移16这总计16个。这里,偏移1~偏移16指的是,sao_type_idx[sao_curr_depth][ys][xs]的值为5或者6的情况下的、由sao_offset[sao_curr_depth][ys][xs][1]~sao_offset[sao_curr_depth][ys][xs][16]分别指定的值。另一方面,在偏移类型为边缘偏移的情况下,关于该偏移类型存储在表存储器中的偏移是偏移1~4这总计4个。这里,偏移1~4指的是,sao_type_idx[sao_curr_depth][ys][xs]的值为1、2、3、4的任一个的情况下的、由sao_offset[sao_curr_depth][ys][xs][1]~sao_offset[sao_curr_depth][ys][xs][4]分别指定的值。偏移5~16中什么都没有存储。
此外,表存储器中所存储的各偏移的存储器大小,由从偏移属性设定部613提供的偏移值域决定。在偏移值域为-24~24-1的情况下,每一个偏移可以用5比特来表现,需要5比特的存储器大小。
另外,各QAOMU中带有QAOMU编号,可以通过该QAOMU编号来相互识别各QAOMU。以下,将QAOMU编号为NQ的QAOMU也记作QAOMUNQ。
从分割深度0到最大的分割深度,QAOU索引是所指定的QAOU的区块的编号。在最大分割深度为4的情况下,对于分割深度的全区块(1+4+16+64+256=341个),如图7所示,由QAOU索引指定0~340的值。
由运动图像解码装置1使用的偏移信息存储部621中,不需要存储全 部分割深度的全部QAOU的偏移,所以不需要确保341个存储器区域,只要有在由所输入的QAOU信息所指定的结构实际使用的QAOU的数量的存储器区域即可。在最大分割深度为4时,该区块数是256以下,所以有256个映射存储器以及表存储器就足够。在该情况下,在偏移信息存储部621使用的QAOU索引,使用用于识别叶子QAOU的唯一的索引,例如,每当解码叶子QAOU时逐一增量的0至255以下的索引。此外,在偏移信息存储部621中,也可以以与最大分割深度对应的QAOU信息为单位,来存储映射表。在该情况下,在偏移信息存储部621使用的QAOU索引,使用0~255的编号,这与图7中的QAOMU编号85~340对应。
图7(a)~(e)是表示对象处理单位(例如LCU)中包含的QAOMU所附带的QAOMU编号的一例的图,(a)示出分割深度为0的QAOMU所附带的QAOMU编号,(b)示出分割深度为1的QAOMU所附带的QAOMU编号,(c)示出分割深度为2的QAOMU所附带的QAOMU编号,(d)示出分割深度为3的QAOMU所附带的QAOMU编号,(e)示出分割深度为4的QAOMU所附带的QAOMU编号。
QAOU控制部622控制自适应偏移滤波器处理部62中包含的各部。此外,QAOU控制部622参考QAOU结构信息,将已去区块解码图像P_DB分割为一个或多个QAOU,并且以给定顺序扫描各QAOU。此外,将表示作为处理对象的对象QAOMU的QAOMU编号提供给偏移类型导出部623。
偏移类型导出部623参考偏移信息存储部621的映射存储器以及表存储器,导出由从QAOU控制部622提供的QAOMU编号所指定的偏移类型。此外,将所导出的偏移类型提供给类别分类部624。
类别分类部624将对象QAOU中包含的各像素分类为从偏移类型导出部623提供的偏移类型中能够选择的多个类别的任一个。此外,将该偏移类型、和表示各像素被分类的类别的类别索引提供给偏移导出部625。另外,对于类别分类部624执行的具体的分类处理,后面叙述,所以这里省略说明。
偏移导出部625参考偏移信息存储部621的表存储器,对于对象QAOU中包含的各像素,导出由从类别分类部624提供的偏移类型以及 类别索引所指定的偏移。还具备偏移逆移位部,其使偏移向左侧比特移位由偏移属性设定部613所设定的移位值(未图示)。偏移逆移位部进行该偏移的逆量化,使得偏移的比特深度与像素比特深度相匹配。通过进行这种逆量化,在后述的偏移加法部626的加算处理中,能够在同一比特深度进行像素值与偏移的加法运算。对各像素逆量化后的偏移提供给偏移加法部626。
偏移加法部626对对象QAOU中的已去区块解码图像P_DB的各像素加上从偏移导出部625提供的偏移。偏移加法部626将对已去区块解码图像P_DB中包含的全部QAOU进行处理而得到的图像作为偏移已滤波解码图像P_OF输出。
图8是表示自适应偏移滤波器处理部62执行的处理的流程的流程图。
(步骤S101)
首先,QAOU控制部622从偏移信息存储部621取得QAOU结构信息。
(步骤S102)
接下来,QAOU控制部622开始将作为处理对象的对象QAOMU的QAOMU编号作为循环变量的第1循环。
(步骤S103)
QAOU控制部622向偏移类型导出部623提供QAOMU编号。基于QAOU控制部622的控制,偏移类型导出部623从偏移信息存储部621的映射存储器以及表存储器读出由从QAOU控制部622提供的QAOMU编号指定的偏移类型。此外,偏移类型导出部623将所读出的偏移类型提供给类别分类部624。
(步骤S104)
接下来,QAOU控制部622开始以对象QAOMU中包含的各像素的像素编号为循环变量的第2循环。这里,像素编号,用于相互识别对象QAOMU中包含的像素,例如,可以使用对包含在对象QAOMU中的各像素按给定扫描顺序所附加的编号。此外,也可以代替这种像素编号,而将对象QAOMU中包含的各像素的x坐标以及y坐标作为循环变量。
(步骤S105)
接下来,类别分类部624基于QAOU控制部622的控制,将处理对象的像素分类为从偏移类型导出部623提供的偏移类型中能够选择的多个类别的任一个。此外,将该偏移类型、和表示处理对象的像素被分类的类别的类别索引提供给偏移导出部625。
(步骤S106)
接下来,偏移导出部625基于QAOU控制部622的控制,从偏移信息存储部621读出要对处理对象的像素加上的偏移。即,读出由从类别分类部624提供的偏移类型以及类别索引所指定的偏移。此外,将通过将针对处理对象的像素所导出的偏移向左侧比特移位从偏移属性设定部613提供的移位值而逆量化后的偏移提供给偏移加法部626。
(步骤S107)
接下来,偏移加法部626基于QAOU控制部622的控制,对已去区块解码图像P_DB的处理对象像素的像素值加上从偏移导出部625提供的偏移。
(步骤S108)
本步骤是第2循环的结束。
(步骤S109)
本步骤是第1循环的结束。
另外,在步骤S103中,在偏移类型导出部623读出的偏移为0(偏移类型=0)时,QAOU控制部622控制偏移加法部626,使得不对处理对象的QAOMU的各像素加上偏移。
此外,在步骤S105中,在对象像素被分类为类别0(类别索引=0)的情况下,控制偏移加法部626,使得不对该对象像素加上偏移。
(存储偏移所需要的比特数)
接下来,说明存储偏移(sao_offset)所需要的比特数。在像素比特深度是10比特、偏移的比特深度是9比特的情况下,偏移取-29~29-1的值,每一个偏移的比特数具有大到10比特的比特数。在如此解码较大的比特数的偏移的情况下,偏移信息存储部621,作为用于预先存储偏移的存储器大小,要求具有每1图片最大为
(每1图片的OAOMU的总数)×(类别数)×(每偏移的比特数)=256 ×16×10(比特)=40960(比特)。
每1图片的QAOMU的总数,对于解码装置是256个,而对于后述的编码装置使用341个,所以需要更大的存储器。如此,在不限制偏移的值域,而使用在偏移的比特深度可能的值域的情况下,偏移的比特数较大,所以需要用于预先存储偏移的较大的存储器大小。
(SAO_DEPTH与编码效率的关系)
从量化误差的观点出发,SAO_DEPTH和PIC_DEPTH存在相互密切的关系。自适应偏移滤波器60的输出图像的比特深度是像素比特深度PIC_DEPTH,SAO_DEPTH是对像素加上的偏移的比特深度,所以即使使用超过像素比特深度的精度的偏移,也会在输出过程被舍弃,作为偏移的精度的SAO_DEPTH,优选被设定为PIC_DEPTH以下。此外,在SAO_DEPTH小于PIC_DEPTH的情况下,仅能对输入图像进行比由滤波器能够补正的精度(PIC_DEPTH)粗的补正,所以滤波器效果减小。
另外,在偏移的精度SAO_DEPTH高的情况下,偏移的码量增加。一般,由通过使使用编码数据的码量R、输入图像的失真D、权重λ来表现的码率失真成本D+λR最小化从而编码效率被最佳化也可以理解,因为偏移的精度对失真D给予负面影响,对码率R给予正面影响,所以精度的大小存在折中,存在特定的最佳值。
进而,在本实施例中,通过将被量化的偏移限制在由一定的比特宽度能够表现的偏移值域,从而能够限制在偏移信息存储部621用于存储被量化的偏移的比特宽度。与不进行限制的情况相比,能够获得削减存储器大小的效果。但是,过度地使偏移值域变窄,偏移对解码图像的失真进行补正的效果变小,所以存在偏移的加法处理不能去除解码图像的失真、编码效率降低的情况。因此,优选对偏移值域设定最佳的范围,使得编码效率不降低。
在本实施方式中,偏移属性设定部613通过型式S1~S6的任一种来设定偏移比特深度以及偏移的移位值,通过型式C1~C3的任一种来设定偏移值域。
(型式S1)
在型式S1中,如图9(a)所示,使偏移的比特深度SAO_DEPTH与像 素比特深度PIC_DEPTH相等。因为偏移的精度的最大值成为像素比特深度,所以型式S1成为以最大的精度对偏移进行编码。
(型式S2)
在型式S2中,如图9(b)所示,在PIC_DEPTH为10比特以下时,使SAO_DEPTH与PIC_DEPTH相等,在PIC_DEPTH为11比特以上时,将SAO_DEPTH设为10。在型式S2将偏移的比特深度的上限设为10比特。根据发明者的见解,在解码图像的量化步长QP的值较小时(比特率高时),偏移的比特深度与像素比特深度相同的情况与偏移的比特深度较小的情况相比,编码效率高,相反,在量化步长QP的值较大时,偏移的比特深度小于像素比特深度的情况较之于与像素比特深度相同的情况,编码效率变高。根据发明者的实验,确认了量化参数qp在12~27的区域中通过按照型式S2决定偏移的比特深度,从而与像素比特深度为9比特以下时偏移的比特深度为8比特、像素比特深度为10比特以上时偏移的比特深度为9比特的情况相比,编码效率提高。因此,在型式S2中,通过以10比特为界来改变对像素比特深度的依赖性,从而与如型式S1那样使偏移的比特深度和像素比特深度相等的情况相比,能够减小偏移的码量,并且能够获得较高的编码效率。
(型式S3)
在型式S3中,如图9(c)所示,在PIC_DEPTH为9比特以下时,使SAO_DEPTH与PIC_DEPTH相等,在PIC_DEPTH为10比特以上时,将SAO_DEPTH设为9。在型式S3将偏移的比特深度的上限设为9比特。在型式S3中,也与型式S2同样地能够减小偏移的码量,能够获得较高的编码效率。
(型式S4)
在型式S4中,如图9(d)所示,在PIC_DEPTH为10比特以下时,使SAO_DEPTH与PIC_DEPTH相等,在PIC_DEPTH为11比特以上时,将SAO_DEPTH设为10-floor((PIC_DEPTH-10)/STEP)。这里,函数floor(x)是给出x以下的最大整数的函数。在型式S4中,在像素比特深度为10比特以上时,表示像素比特每增加(减少)STEP比特,偏移的比特深度增加(减少)1比特。在图9(e)中,示出型式S4中的STEP=2的情况,像素比 特深度每增加2比特,偏移的比特深度增加1比特。通过采用这种构成,考虑像素比特深度的大小的同时,对于比特率的大小,能够进行自由度比型式S2以及型式S3高的对应。
此外,型式S1~型式S4中共同的是移位值用PIC_DEPTH与SAO_DEPTH的差分值PIC_DEPTH-SAO_DEPTH来表示。上述型式S1~S4中的偏移比特深度以及移位值的变更,不增加存储器大小以及处理量而设定偏移比特深度以及移位值,所以能够改善编码效率。
(型式S5)
在型式S5中明示地对偏移的比特深度进行编码。具体而言,对偏移的比特深度与给定值的差进行编码。给定值为8、或者像素比特深度恰当,前者的情况下,SAO_DEPTH-8被编码,后者的情况下,PIC_DEPTH-SAO_DEPTH是恰当的。另外,偏移的比特深度也可以作为编码数据的各种参数信息、头或者QAOU信息的一部分进行编码。作为QAOU信息的一部分,既可以在叶子QAOU中含有像素比特深度,也可以在给定层次(例如最上位层次的QAOU、或者第1层次的QAOU)的QAOU信息中含有像素比特深度。通过作为编码数据的一部分进行编码,通过在解码装置以及编码装置将比特深度设定为最佳的值,从而可以获得使编码效率最大化的效果。此外,在利用QAOU信息对比特深度进行编码的情况下,通过按照QAOU的深度sao_curr_depth变更比特深度,从而能够减小用于存储偏移的存储器。有可能出现较多的偏移的情况是sao_curr_depth较大的情况,所以通过在sao_curr_depth较大的情况下将比特深度设定得较小,在sao_curr_depth较小的情况下将比特深度设定得较大,从而能够削减存储器大小。例如,在sao_curr_depth=0~1的情况下,设偏移的比特深度=像素比特深度(型式S1),在sao_curr_depth=2~4时,对偏移的比特深度设定上限(型式S2)等是恰当的,如此对比特宽度进行编码。此外,也可以对表示是按每个QAOU的深度对偏移的比特宽度进行编码、还是与QAOU的深度无关地使用一种偏移的比特宽度的标志进行编码,切换是否按每个QAOU的深度进行编码。
(型式S6)
在型式S6中,没有明示的编码,按照sao_curr_depth决定比特深度。 例如,在sao_curr_depth=0~1的情况下,设偏移的比特深度=像素比特深度(型式S1),在sao_curr_depth=2~4时,对偏移的比特深度设定上限(型式S2)等是恰当的。
(型式C1)
在型式C1中,按照SAO_DEPTH设定偏移值域。以下,将表示偏移值域的值的最大的比特长设为CLIP_BIT。具体而言,通过CLIP_BIT=SAO_DEPTH-K的计算,将偏移值域决定为-2CLIP_BIT-1~2CLIP_BIT-1-1。根据发明者的实验,发现了K=4是恰当的。即,确认了在K=4的情况下,即使根据偏移值域来限定偏移的范围,也没有编码效率的降低。在最经常使用的像素的比特深度为8的情况下,K=4是恰当的。在像素比特深度为8的情况下,偏移的比特深度SAO_DEPTH也为8,成为CLIP_BIT=8-K=4。一个偏移能够用4比特进行存储,对于以8比特的字节为单位进行处理的软件等,可以在1字节打包存储一个偏移,可以简便地削减存储器大小。
(型式C2)
在型式C2中,与SAO_DEPTH无关地设定偏移值域。具体而言,设CLIP_BIT=8,将偏移值域决定为-27~27-1。
此外,一般地,也可以使用不依赖于SAO_DEPTH的常数N来设CLIP_BIT=N。在与SAO_DEPTH无关地设定偏移值域的情况下,可以获得减小存储器大小的效果,所以优选设定为小于偏移的比特深度的值。
(型式C3)
在型式C3中,按照QAOU的层次来决定偏移值域。在sao_curr_depth较小的情况下(例如0~1),设为不依赖于偏移的比特深度来决定偏移值域,在sao_curr_depth较大的情况下(例如2~4),根据偏移的比特深度来进行决定,这是恰当的。例如,存在前者采用CLIP_BIT=8(型式C2)、后者采用SAO_DEPTH-K比特(型式C1)的方法。另外,在按照QAOU的层次来变更偏移的比特深度的情况下,作为结果,存在也可以是固定的比特数的情况。例如,设CLIP_BIT=4是恰当的。
(偏移的比特数的具体例1)
接下来,对于本实施方式所涉及的偏移(sao_offset)的比特数的第1具 体例进行说明。在本例中,说明将像素比特深度设为10比特,根据型式S2进行移位值的设定,根据型式C1进行偏移值域的设定的情况。在型式S2中,偏移的比特深度被设定为10比特,在型式C1中,偏移值域被设定为10-4=6比特。每一个偏移的比特数是6比特,对应于将偏移可以取的值限制在-32~31的值。在本例的情况下,偏移信息存储部621,作为用于预先存储偏移的存储器大小,每一图片最大具有
(每一图片的QAOMU的总数)×(类别数)×(每一偏移的比特数)=256×16×6(比特)=24576(比特)
就够。
因此,通过采用偏移具有本例的值域的构成,与现有例相比,能够使偏移信息存储部621所需要的存储器大小减少到约3/5。
因为能够削减包含在编码数据#1中的偏移的码量,所以能够实现编码效率的提高。此外,因为加上过度的偏移的情况被抑制,所以可以保证适当的画质。
(偏移的比特数的具体例2)
接下来,对本实施方式所涉及的偏移(sao_offset)的比特数的第2具体例进行说明。在本例中,说明将像素比特深度设为10比特,根据型式S2进行移位值的设定,根据型式C2进行偏移值域的设定的示例。根据型式S2,偏移的比特深度被设定为10比特,根据型式C2,偏移值域被设定8比特。每一偏移的比特数为8比特,对应于将偏移可以取的值限制在例如-128~127的值。在本例的情况下,偏移信息存储部621,作为用于预先存储偏移的存储器大小,每一图片最大具有
(每一图片的QAOMU的总数)×(类别数)×(每一偏移的比特数)=256×16×8(比特)=32768(比特)
就够。
因此,通过采用偏移具有本例的比特数的构成,与现有例相比,能够使偏移信息存储部621所需要的存储器大小减少到约4/5。
此外,因为能够削减包含在编码数据#1中的偏移的码量,所以能够实现编码效率的提高。此外,因为加上过度的偏移的情况被抑制,所以可以保证适当的画质。
另外,若限制偏移的比特数,则能够减少包含在编码数据中的偏移信息的码量,但是若过度地进行限制,则存在如下问题:具备自适应偏移滤波器的情况的优点变小,包含在编码数据中的残差数据(残差图像的像素值)的码量变大。
(偏移的比特数的具体例3)
接下来,对偏移(sao_offset)的比特数的第3具体例进行说明。本例在型式C1、C2任一种中,根据偏移类型是边缘偏移(偏移类型=1~4)还是带偏移(偏移类型=5~6),而对偏移的比特数设定不同的值。这里,以将像素比特深度设为10比特的情况为例,说明如下方法:根据型式S2进行移位值的设定,根据型式C2进行边缘偏移的偏移值域的设定,根据型式C1进行带偏移的偏移值域的设定。
在像素比特深度为10比特的情况下,在型式S2中,偏移的比特深度被设定为10比特。属于边缘偏移的偏移类型的偏移(以下称为“边缘偏移的偏移”),根据型式C2将值域设定为8比特。属于带偏移的偏移类型的偏移(以下称为“带偏移的偏移”),根据型式C1将值域设定为6比特。更一般而言,将边缘偏移的偏移的比特数设为N比特,将带偏移的偏移的比特数设为M比特时,按照满足N≥M的方式决定偏移的比特数。
在偏移信息存储部621需要确保的存储器大小,以QAOU单位,是偏移类型的类别数×偏移的比特数,所以若减小偏移的类别数大于边缘偏移的带偏移的比特数,则对于偏移能够有效地利用在偏移信息存储部621所使用的存储器区域。
如此通过按照偏移类型,使偏移的比特数不同,不会对偏移信息存储部621要求过度的存储器大小,能够实现编码效率的提高。能够最有效地利用存储器区域。
另外,在用于限制偏移可以取的值的阈值th大于2m-1且为2m以下时,作为用于对该偏移进行编码的编码方式,可以采用m比特的固定长编码/解码方式。此外,可以采用将最大值设为th的Truncated unary编码、Truncated Rice编码等可变长编码/解码方式。另外,上述最大值th,根据从偏移属性设定部613提供的偏移值域来决定。此外,运动图像解码装置1可以对如此进行了编码的偏移进行解码。
对于以上的构成,在偏移属性设定部613中设定偏移的比特深度、偏移值域、以及移位值。在自适应偏移滤波器信息解码部61中,解码具有偏移值域的范围的值的量化偏移,对各个偏移,存储在具有偏移值域以上的比特宽度的存储区域的偏移信息存储部621。在本实施方式中,特征在于根据偏移的比特深度来决定偏移值域。此外,根据像素的比特深度来决定偏移的比特深度。因此,根据像素的比特深度来决定偏移的比特深度也是本实施方式的特征。
此外,实施方式1中的自适应偏移滤波器信息解码部61可以采用如下方式:具备存储解码后的偏移的存储部和对从该存储部获得的偏移进行逆量化的逆量化部,省略偏移导出部625中的逆量化处理。在该情况下,特征在于:存储部存储被限制在由偏移属性设定部613设定的偏移值域的偏移;以及逆量化部按照由偏移属性设定部613设定的移位值向左侧进行移位来进行逆量化处理。
偏移信息解码部611还可以表现为,从编码数据#1解码由偏移加法部626参考的各偏移,偏移加法部626对由多个单位区域构成的输入图像的各像素值加上偏移,并且偏移信息解码部611具备偏移解码单元,该偏移解码单元设定按照未图示的像素比特深度而决定的偏移值域以及移位值,并且解码被限制在偏移值域的偏移。
此外,本实施方式所涉及的自适应偏移滤波器60还可以表现为图像滤波器装置,图像滤波器装置对由多个单位区域构成的输入图像的各像素值加上偏移,并且图像滤波器装置具备:偏移属性设定部613,其参考编码数据中包含的偏移类型指定信息,设定处理对象的单位区域中的偏移属性;偏移信息解码部611,其解码具有与上述设定的偏移属性中包含的偏移值域相应的比特宽度的偏移;和偏移加法部626,其对上述输入图像的各像素值加上上述偏移。
进而,偏移信息解码部611还可以构成为,除了上述偏移解码单元之外,具备:决定单元,其决定多个偏移类型中处理对象的单位区域所属的偏移类型;和偏移解码单元,其解码具有根据由上述决定单元所决定的偏移类型而不同的比特宽度的偏移。
此外可以构成为,上述偏移类型指定信息包含各单位区域中的上述输 入图像的像素值的比特深度,偏移信息解码部611解码具有与上述像素值的比特深度相应的比特宽度的偏移。
以下,对于类别分类部624执行的分类处理的具体例进行说明。类别分类部624优选进行以下的分类处理例中的与生成编码数据#1的运动图像编码装置中的分类处理相对应的分类处理。
(类别分类部624执行的分类处理例1)
参考图10(a)~(f)至图12来说明类别分类部624执行的分类处理的第1例。
(偏移类型=1~4(边缘偏移)时)
在由偏移类型导出部623所提供的偏移类型为1~4的任一种时,类别分类部624判断在处理对象的像素附近是否存在边缘,并且在存在边缘的情况下判断边缘的种类,根据判断的结果,将该处理对象的像素分类为多个类别的任一种。
更具体而言,首先,类别分类部624计算处理对象像素x的像素值pic[x]与相邻于该处理对象像素或者共有顶点的2个像素a、b的像素值pic[a]、pic[b]的差分的符号
Sign(pic[x]-pic[a])、以及
Sign(pic[x]-pic[b])。
这里,Sign(z)是取
Sign(z)=+1(z>0时)
Sign(z)=0(z=0时)
Sign(z)=-1(z<0时)
的各值的函数。此外,将哪个像素用作像素a以及像素b,依赖于具体的偏移类型,按照以下方式决定。
·偏移类型=1(sao_type_idx=1)时
如图10(a)所示,将与处理对象像素x的左侧相邻的像素作为像素a,将与处理对象像素的右侧相邻的像素作为像素b。
·偏移类型=2(sao_type_idx=2)时
如图10(b)所示,将与处理对象像素x的上侧相邻的像素作为像素a,将与处理对象像素的下侧相邻的像素作为像素b。
·偏移类型=3(sao_type_idx=3)时
如图10(c)所示,将共有处理对象像素x的左上的顶点的像素作为像素a,将共有处理对象像素的右下的顶点的像素作为像素b。
·偏移类型=4(sao_type_idx=4)时
如图10(d)所示,将共有处理对象像素x的左下的顶点的像素作为像素a,将共有处理对象像素的右上的顶点的像素作为像素b。
图11(a)是表示处理对象像素x的像素值pic[x]与像素a或者b的像素值的大小关系的曲线、以及表示与其大小关系相应的函数Sign的值的图。在图11(a)所示的曲线中,附带有pic[x]的黑圆点表示处理对象像素x的像素值,未附带有pic[x]的黑圆点表示处理对象像素a或者b的像素值。此外,图11(a)所示的曲线中的上下方向表示像素值的大小。
接下来,类别分类部624基于Sign(pic[x]-pic[a])、以及Sign(pic[x]-pic[b])通过以下的数式(1-1)导出EgdeType。
EgdeType=Sign(pic[x]-pic[a])+Sign(pic[x]-pic[b])+2…(1-1)
图11(b)是表示处理对象像素x的像素值与像素a以及b的像素值的大小关系的曲线、以及表示与其大小关系相应的EgdeType的值的图。在图11(b)中,各曲线的中心的黑圆点表示处理对象像素x的像素值,两端的黑圆点表示像素a以及b的像素值。此外,图11(b)所示的曲线中的上下方向表示像素值的大小。
接下来,类别分类部624基于所导出的EgdeType,按以下的方式导出处理对象像素x应该所属的类别的类别索引(class_idx)。
class_idx=EoTbl[EdgeType]
这里,EoTbl[EdgeType]是用于根据EdgeType导出class_idx的变换表。图11(d)中示出该变换表EoTbl的具体例。
如图11(d)所示,类别分类部624在由处理对象像素x、像素a以及像素b构成的区域不存在边缘的情况下(以下,也称为“平坦的情况”),将处理对象像素x分类为类别0(class_idx=0)。图11(c)示出图11(b)所示的各曲线与lass_idx的对应。
(偏移类型=5~6(带偏移)时)
在从偏移类型导出部623提供的偏移类型是5~6的任一种时,类别 分类部624按照处理对象像素x的像素值pic[x],将该处理对象像素的像素值分类为多个类别的任一个。
·偏移类型=5(sao_type_idx=5)时
类别分类部624在处理对象像素x的像素值pic[x]满足
(max×1/4)≤pic[x]≤(max×3/4)
的情况下,将该处理对象像素分类为类别0以外的类别。即,在处理对象像素的像素值处于图12(a)中的斜线的范围内的情况下,将该处理对象像素分类为类别0以外的类别。另外,上述max表示处理对象像素x的像素值可以取的最大值,例如,max=255。此外,在max=255时,上述条件也可以表现为
8≤(pic[x]/8)≤23。
·偏移类型=6(sao_type_idx=6)时
类别分类部624在处理对象像素x的像素值pic[x]满足
pic[x]≤(max×1/4)或者(max×3/4)≤pic[x]
的情况下,将该处理对象像素分类为类别0以外的类别。即,在处理对象像素的像素值处于图12(b)中的斜线的范围内的情况下,将该处理对象像素分类为类别0以外的类别。另外,上述max表示处理对象像素x的像素值可以取的最大值,例如,max=255。此外,在nax=255时,上述条件可以表现为
(pic[x]/8)≤7或者24≤(pic[x]/8)。
若更具体地说明类别分类部624执行的类别分类处理,则如下所述。
在偏移类型为5~6的任一种时,类别分类部624按照以下方式导出处理对象像素x应该所属的类别的类别索引(class_idx)。
class_idx=EoTbl[sao_type_idx][pic[x]/8]
这里,EoTbl[sao_type_idx][pic[x]/8]是用于根据处理对象像素x的像素值pic[x]和sao_type_idx导出class_idx的变换表。图12中示出该变换表EoTbl的具体例。在图12(c)中,“BO_1”表示sao_type_index=5,“BO_2”表示sao_type_index=6。
如图12(c)所示,sao_type_index=5时,类别分类部624在处理对象像素x的像素值pic[x]满足8≤(pic[x]/8)≤23时,按照pic[x]的大小,将处 理对象像素x分类为类别索引1~16的任一种。
另一方面,sao_type_index=6时,类别分类部624在处理对象像素x的像素值pic[x]满足pic[x]/8)≤7或者24≤(pic[x]/8)时,按照pic[x]的大小,将处理对象像素x分类为类别索引1~16的任一种类别。
一般,图像的比特深度为PIC_DEPTH时,max=2PIC_DEPTH-1,使用pic/2(PIC_DEPTH-5)代替图12(c)中的pic/8来进行类别的分类。
(类别分类部624执行的分类处理例2)
接下来,对类别分类部624执行的分类处理的第2例进行说明。
在本处理例中,类别分类部624使用以下的数式(1-2)代替数式(1-1)来导出EgdeType。其他与分类处理例1相同。
EgdeType=Sign((pic[x]>>shift)-(pic[a]>>shift))+Sign((pic[x]>>shift)-(pic[b]>>shift))+2…(1-2)
这里,“>>”表示右比特移位,“shift”表示比特移位的大小。对于“shift”的具体值,例如,可以按照与像素值的比特深度具有正相关的方式进行决定。
在基于分类处理例1的分类处理中,即使在像素值的斜率非常小的情况下,只要像素值的斜率不是0,则Sign的值成为非0。因此,基于分类处理例1的分类处理,具有容易受到噪声的影响的一面。
在本处理例中,因为使像素值向右移位之后取得差分,所以EgdeType的值变得难以受到噪声的影响,具有编码效率提高这样的效果。
另外,在本处理例中,也可以使用以下的数式(1-3)代替数式(1-2)。
EgdeType=Sign((pic[x]-pic[a])>>shift)+Sign((pic[x]-pic[b])>>shift))+2···(1-3)
即,也可以在取得像素值的差分之后,进行右比特移位。通过使用数式(1-3)也可以取得与使用数式(1-2)的情况相同的效果。
(类别分类部624执行的分类处理例3)
接下来,对类别分类部624执行的分类处理的第3例进行说明。
在本处理例中,类别分类部624按照以下的方式变更在分类处理例1 中所说明的函数Sign的定义。其他与分类处理例1相同。
Sign(z)=+1(z>th时)
Sign(z)=0(-th≤z≤th时)
Sign(z)=-1(z<-th时)
这里,th是具有预先决定的值的阈值。对于阈值th的具体值的绝对值,例如,可以决定为与像素值的比特深度具有正相关。
在本处理例中,EgdeType的值也变得难以受到噪声的影响,能够获得较高的编码效率。
(类别分类部624执行的分类处理例4)
接下来,对类别分类部624执行的分类处理的第4例进行说明。
在本处理例中,类别分类部624使用图13所示的EoTbl[sao_type_idx][pic[x]/8]代替图12(c)所示的EoTbl[sao_type_idx][pic[x]/8]。
如图13所示,在本处理例中,在pic[x]/8的值是8以及9的任一个的情况下,无论是sao_type_index=5,还是sao_type_index=6,处理对象像素x都被分类为类别索引不是0的类别。此外,在pic[x]/8的值是22以及23的任一个的情况下,无论是sao_type_index=5,还是sao_type_index=6,处理对象像素x都被分类为类别索引不是0的类别。
此外,在本处理例中,处理对象像素的像素值在其值为15以下的情况下(pic[x]/8=0或者1的情况下),被裁剪(clip)为MIN。此外,处理对象像素的像素值在其值为240以上的情况下(pic[x]/8=30或者31的情况下),被裁剪为MAX。这里,作为MIN以及MAX,优选使用如下任一种组合:
·MIN=15、MAX=240
·MIN=16、MAX=239
·MIN=16、MAX=235
在分类处理例1中,sao_type_index=5时被分类为类别0的处理对象像素,在sao_type_index=6时被分类为不是类别0的类别。此外,sao_type_index=6时被分类为类别0的处理对象像素,在sao_type_index=5时被分类为不是类别0的类别。
因此,在分类处理例1中,根据是sao_type_index=5,还是 sao_type_index=6,加上了偏移之后的像素值有可能较大地不同,所以有可能产生不能如所期待的那样提高编码效率的问题。此外,这种问题,在偏移滤波器前图像的像素值是pic[x]/8的值为8以及9的任一个、或者pic[x]/8的值为22以及23的任一个的情况下,会变得显著。
在本处理例中,在pic[x]/8的值为8以及9的任一个的情况下,无论是sao_type_index=5,还是sao_type_index=6,处理对象像素x都被分类为类别索引不是0的类别,在pic[x]/8的值为22以及23的任一个的情况下,无论是sao_type_index=5,还是sao_type_index=6,处理对象像素x都被分类为类别索引不是0的类别,所以难以产生上述问题。因此,通过进行本处理例的处理,能够实现编码效率的提高。
另外,在本处理例中,在pic[x]/8的值为8以及9的任一个的情况下,以及在pic[x]/8的值为22以及23的任一个的情况下,无论是sao_type_index=5,还是sao_type_index=6,处理对象像素x都被分类为了类别索引不是0的类别,但是这不是用来限定本处理例的,只要在pic[x]/8的值为给定范围时,进行无论是sao_type_index=5,还是sao_type_index=6都将处理对象像素x分类为类别索引不是0的类别的处理即可。
一般而言,在图像的像素比特深度为PIC_DEPTH时,max=2PIC_DEPTH-1,使用pic/2(PIC_DEPTH-5)代替图13中的pic/8来进行类别的分类。
如此,进行本处理例的分类处理的类别分类部624可以表现为,在上述对象像素的像素值为给定范围内时,包含上述对象像素的单位区域所属的偏移类型是上述第1以及上述第2偏移类型的任一种的情况下,都将上述对象像素分类为加上偏移的偏移类别。
(运动图像编码装置2)
以下,参考图14至图18(a)~(d)说明通过对编码对象图像进行编码从而生成编码数据#1的运动图像编码装置2。关于运动图像编码装置2,其一部分包含H.264/MPEG-4.AVC中所采用的方式、VCEG(Video Coding Expert Group,视频编码专家组)中的共同开发用编解码器即KTA软件中所采用的方式、作为其后继编解码器的TMuC(Test Model underConsideration,考虑中的测试模型)软件中所采用的方式、以及HM(HEVC TestModel,高效率视频编码测试模型)软件中所采用的技术。
图14是表示本实施方式所涉及的运动图像编码装置2的构成的框图。如图14所示,运动图像编码装置2具备:变换/量化部21、可变长码编码部22、逆量化/逆变换部23、缓冲存储器24、帧内预测图像生成部25、帧间预测图像生成部26、运动矢量检测部27、预测方式控制部28、运动矢量冗余删除部29、加法器31、减法器32、去区块滤波器33、自适应滤波器70、以及自适应偏移滤波器80。运动图像编码装置2是通过对运动图像#10(编码对象图像)进行编码从而生成编码数据#1的装置。
变换/量化部21,(1)按每个区块对从编码对象图像减去预测图像Pred而得到的预测残差D进行DCT变换(Discrete Cosine Transform,离散余弦变换),(2)对通过DCT变换而得到的DCT系数进行量化,(3)将通过量化而得到的量化预测残差QD提供给可变长码编码部22以及逆量化/逆变换部23。另外,变换/量化部21,(1)按每个树区块,选择进行量化时所使用的量化步长QP,(2)将表示所选择的量化步长QP的大小的量化参数差分Δqp提供给可变长码编码部22,(3)将所选择的量化步长QP提供给逆量化/逆变换部23。这里,所谓量化参数差分Δqp,是指从与DCT变换/量化的树区块相关的量化参数qp(Qp=2pq/6)的值减去与紧接之前进行了DCT变换/量化的树区块相关的量化参数qp’的值而得到的差分值。
可变长码编码部22,通过对(1)从变换/量化部21提供的量化预测残差QD以及Δqp、(2)从后述的预测方式控制部28提供的量化参数PP、以及(3)从后述的自适应滤波器70提供的滤波器集编号、滤波器系数群、区域指定信息以及开关(on-off)信息进行可变长编码,从而生成编码数据#1。此外,可变长码编码部22对从自适应偏移滤波器80提供的QAOU信息进行编码,并包含在编码数据#1中。
逆量化/逆变换部23,(1)对量化预测残差QD进行逆量化,(2)对通过逆量化而得到的DCT系数进行逆DCT(Discrete Cosine Transform,离散余弦变换)变换,(3)将通过逆DCT变换而得到的预测残差D提供给加法器31。在对量化预测残差QD进行逆量化时,利用从变换/量化部21提供的量化步长QP。另外,从逆量化/逆变换部23输出的预测残差D是对输入到变换/量化部21的预测残差D加上了量化误差的预测残差D,但这里为 了简化,使用共同的名称。
帧内预测图像生成部25生成与各分区相关的预测图像Pred_Intra。具体而言,(1)对各分区,选择用于帧内预测的预测模式,(2)使用所选择的预测模式,从解码图像P生成预测图像Pred_Intra。帧内预测图像生成部25将所生成的帧内预测图像Pred_Intra提供给预测方式控制部28。
此外,帧内预测图像生成部25根据对各分区所选择的预测模式、和各分区的大小,确定对各分区的预测索引PI,并且将该预测索引PI提供给预测方式控制部28。
此外,帧内预测图像生成部25将对象分区的大小、以及表示分配给对象分区的预测模式的信息即帧内编码模式信息IEM提供给自适应滤波器70。
运动矢量检测部27检测与各分区相关的运动矢量mv。具体而言,(1)选择作为参考图像利用的已滤波解码图像P_FL’,(2)通过在所选择的已滤波解码图像P_FL’中搜索与对象分区最近似的区域,从而检测与对象分区相关的运动矢量mv。这里,已滤波解码图像P_FL’是对已经完成了解码的完成解码的解码图像实施去区块滤波器33的去区块处理、自适应偏移滤波器80的自适应偏移处理、以及自适应滤波器70的自适应滤波处理而得到的图像,运动矢量检测部27可以从缓冲存储器24读出构成已滤波解码图像P_FL’的各像素的像素值。运动矢量检测部27将所检测出的运动矢量mv和指定作为参考图像利用的已滤波解码图像P_FL’的参考图像索引RI一起提供给帧间预测图像生成部26以及运动矢量冗余删除部29。另外,对于进行双方向预测(加权预测)的分区,作为参考图像选择2个已滤波解码图像P_FL1’以及P_FL2’,将与2个已滤波解码图像P_FL1’以及P_FL2’分别对应的运动矢量mv1和mv2、以及参考图像索引RI1和RI2提供给帧间预测图像生成部26以及运动矢量冗余删除部29。
帧间预测图像生成部26生成与各帧间预测分区相关的运动补偿图像mc。具体而言,使用从运动矢量检测部27提供的运动矢量mv,根据由从运动矢量检测部27提供的参考图像索引RI所指定的已滤波解码图像P_FL’,生成运动补偿图像mc。与运动矢量检测部27相同,帧间预测图像生成部26可以从缓冲存储器24读出构成已滤波解码图像P_FL’的各像 素的像素值。帧间预测图像生成部26将所生成的运动补偿图像mc(帧间预测图像Pred_Inter)与从运动矢量检测部27提供的参考图像索引RI一起提供给预测方式控制部28。另外,关于分区双方向预测(加权预测),(1)使用运动矢量mv1,根据由参考图像索引RI1所指定的已滤波解码图像P_FL1’生成运动补偿图像mc1,(2)使用运动矢量mv2,根据由参考图像索引RI2所指定的滤波器済参考图像P_FL2’生成运动补偿图像mc2,(3)通过对运动补偿图像mc1和运动补偿图像mc2的加权平均加上偏移值,从而生成帧间预测图像Pred_Inter。
预测方式控制部28将帧内预测图像Pred_Intra以及帧间预测图像Pred_Inter与编码对象图像进行比较,选择是进行帧内预测还是进行帧间预测。在选择了帧内预测的情况下,预测方式控制部28将帧内预测图像Pred_Intra作为预测图像Pred提供给加法器31以及减法器32,并且将从帧内预测图像生成部25提供的预测索引PI作为预测参数PP提供给可变长码编码部22。另一方面,在选择了帧间预测的情况下,预测方式控制部28将帧间预测图像Pred_Inter作为预测图像Pred提供给加法器31以及减法器32,并且将从帧间预测图像生成部26提供的参考图像索引RI以及从运动矢量冗余删除部29(后述)提供的估计运动矢量索引PMVI和运动矢量残差MVD作为预测参数PP提供给可变长码编码部。
通过从编码对象图像中减去由预测方式控制部28所选择的预测图像Pred,从而利用减法器32生成预测残差D。由减法器32生成的预测残差D,如上所述,通过变换/量化部21进行DCT变换/量化。另一方面,通过在由逆量化/逆变换部23所生成的预测残差D加上由预测方式控制部28所选择的预测图像Pred,从而由加法器31生成局部解码图像P。由加法器31所生成的局部解码图像P经由去区块滤波器33、自适应偏移滤波器80以及自适应滤波器70之后,作为已滤波解码图像P_FL存储到缓冲存储器24中,并且被利用为帧间预测中的参考图像。
另外,运动矢量冗余删除部29删除由运动矢量检测部27所检测出的运动矢量mv中的冗余。具体而言,(1)选择用于估计运动矢量mv的估计方法,(2)按照所选择的估计方法,导出估计运动矢量pmv,(3)通过从运动矢量mv减去估计运动矢量pmv从而生成运动矢量残差MVD。运动矢 量冗余删除部29将所生成的运动矢量残差MVD与表示所选择的估计方法的估计运动矢量索引PMVI一起提供给预测方式控制部28。
去区块滤波器33在隔着解码图像P中的区块边界或者CU边界而相互相邻的像素的像素值之差小于预先决定的阈值的情况下,对解码图像P中的该区块边界或者该CU边界实施去区块处理,由此进行该区块边界或者该CU边界附近的图像的平滑化。通过去区块滤波器33实施了去区块处理的图像作为已去区块解码图像P_DB输出到自适应偏移滤波器80中。
自适应偏移滤波器80对从去区块滤波器33提供的已去区块解码图像P_DB实施自适应偏移滤波处理从而生成偏移已滤波解码图像P_OF。所生成的偏移已滤波解码图像P_OF提供给自适应滤波器70。对于自适应偏移滤波器80的具体构成,后面叙述,所以这里省略说明。
自适应滤波器70对从自适应偏移滤波器80提供的偏移已滤波解码图像P_OF实施自适应滤波处理,从而生成已滤波解码图像P_FL。通过自适应滤波器70实施了滤波处理的已滤波解码图像P_FL存储到缓冲存储器24中。由自适应滤波器70所使用的滤波器系数被决定为使得已滤波解码图像P_FL与编码对象图像#10的误差变得更小,如此所决定的滤波器系数作为滤波器参数FP进行编码,并传输给运动图像解码装置1。
(自适应偏移滤波器80)
图15是表示自适应偏移滤波器80的构成的框图。如图15所示,自适应偏移滤波器80具备自适应偏移滤波器信息设定部81以及自适应偏移滤波器处理部82。
此外,如图15所示,自适应偏移滤波器信息设定部81具备偏移计算部811、偏移移位部816、偏移裁剪部812、偏移信息选择部813以及偏移属性设定部815。
(偏移计算部811)
偏移计算部811对于包含在对象处理单位(例如LCU)中的给定分割深度为止的全部QAOMU,计算针对全部偏移类型以及全部类别的偏移。这里,偏移类型以及类别与运动图像解码装置1的说明中所说明的偏移类型以及类别相同。
图16是表示偏移计算部811执行的处理流程的流程图。
(步骤S201)
首先,偏移计算部811开始将作为处理对象的对象QAOMU的QAOMU编号作为循环变量的第1循环。例如,在图7(a)~(e)所示的示例的情况下,该第1循环是从QAOMU编号=0至QAOMU编号=340的循环。
(步骤S202)
接下来,偏移计算部811开始将对于对象QAOMU能够选择的偏移类型作为循环变量的第2循环。该第2循环是从偏移类型1至偏移类型6的循环。
(步骤S203)
接下来,偏移计算部811开始将包含在对象QAOMU中的像素作为单位的第3循环。
(步骤S204)
接下来,偏移计算部811将对象像素分类为多个类别的任一种。更具体而言,在作为第2循环变量的偏移类型为1~4时,将对象像素分类为类别1~4的任一种。本步骤中的分类处理是与运动图像解码装置1中的自适应偏移滤波器60具备的类别分类部624执行的分类处理例1~分类处理例4的任一种相同的处理。
此外,关于对象QAOMU,按每个类别,计算像素被分类的次数即分类次数count[part_idx][sao_type_index][class_idx]。这里,part_idx表示QAOMU编号。
(步骤S205)
接下来,偏移计算部811通过取得对象像素中的已去区块解码图像P_DB的像素值与该对象像素中的编码对象图像#10的像素值的差分,从而计算该对象像素中的差分像素值。更具体而言,将对象像素的位置设为(x、y)时,计算P_DB(x、y)-Org(x、y)。这里,P_DB(x、y)表示对象像素中的已去区块解码图像P_DB的像素值,Org(x、y)表示对象像素中的编码对象图像#10的像素值。
(步骤S206)
本步骤是第3循环的结束。在本步骤结束的时点,关于包含在对象 QAOMU中的全部像素,计算出了差分像素值。
(步骤S207)
接下来,偏移计算部811通过用针对包含在对象QAOMU中的各像素的差分像素值的每个类别的总和除以该类别的分类次数,从而计算偏移。更具体而言,偏移计算部811使用以下的式子计算针对对象QAOMU、对象偏移类型、以及对象类别的偏移offset[part_idx][sao_type_idx][class_idx]。
offset[part_idx][sao_type_idx][class_idx]=∑(P_DB(x、y)-Org(x、y))/count[part_idx][sao_type_idx][class_idx]
这里,记号∑表示取得由part_idx指定的对象QAOMU、以及由sao_type_idx指定的对象偏移类型中关于被分类为由class_idx所指定的对象类别的像素的和。
(步骤S208)
本步骤是第2循环的结束。
(步骤S209)
本步骤是第3循环的结束。
通过以上处理,偏移计算部811对于包含在对象LCU中的给定分割深度为止的全部QAOMU,计算针对全部偏移类型以及全部类别的偏移。例如,在图7(a)~(e)所示的示例的情况下,偏移计算部811总计计算出
((分割深度0的QAOMU的总数)+……+(分割深度4的QAOMU的总数))×((EO的偏移类型数)×(EO的类别数)+(BO的偏移类型数)×(BO的类别数))=(1+4+16+64+256)×((4×4)+(2×16))=16368(个)
偏移。这里,各偏移的比特数是例如10比特。
偏移计算部811将由通过上述处理所计算出的偏移、偏移类型、类别、以及表示QAOU的分割结构的QAOU结构信息构成的偏移信息提供给偏移移位部816。
另外,运动图像编码装置2可以构成为对表示在上述步骤S204中进行了哪种分类处理例所涉及的分类处理的标志进行编码,并且运动图像解码装置1具备的自适应偏移滤波器60可以构成为参考该标志进行与该标志所示的分类处理相同的分类处理。此外,也可以构成为不利用那样的标 志,而是由运动图像编码装置2和运动图像解码装置1进行预先决定的相同的分类处理。
(偏移移位部816)
偏移移位部816进行从偏移计算部811提供的偏移信息中包含的各偏移的量化。量化通过使偏移向右侧进行比特移位,从而将偏移从像素比特深度的精度变换为偏移的比特深度的精度。另外,移位处理中的移位量通过由后述的偏移属性设定部815所提供的移位值来决定。
(偏移裁剪部812)
偏移裁剪部812为了向从后述的偏移属性设定部815提供的偏移值域进行限制,通过以下所示的裁剪处理1、裁剪处理2的任一种处理对从偏移移位部816提供的偏移进行裁剪处理。
(裁剪处理1)
偏移裁剪部812对从偏移移位部816提供的偏移信息中所包含的各偏移进行裁剪处理。偏移裁剪部812通过将从偏移移位部816提供的各偏移裁剪为例如-8至7的值,从而用4比特来表现各偏移。被裁剪后的各偏移提供给偏移信息选择部813。与运动图像解码装置1同样地,根据图像的比特深度和偏移的比特深度来设定要裁剪的比特宽度。
如此,通过对各偏移进行裁剪,从而能够削减用于存储各偏移的存储器(未图示)的存储器大小。此外,因为能够削减编码数据#1中包含的偏移的码量,所以能够实现编码效率的提高。此外,因为抑制了加上过度的偏移,所以保证了适当的画质。
(裁剪处理2)
此外,偏移裁剪部812也可以构成为按照偏移类型将从偏移移位部816提供的各偏移的裁剪范围设定为不同的值。
例如,在偏移类型为边缘偏移的情况下,将偏移的比特数设为8比特,在偏移类型为带偏移的情况下,将偏移的比特数设为4比特。更一般而言,在将偏移类型为边缘偏移时的偏移的比特数设为N比特,将偏移类型为带偏移时的偏移的比特数设为M比特时,按照满足N>M的方式决定偏移的比特数。
如此按照偏移类型,使偏移的比特数不同,从而不会对用于存储各偏 移的存储器要求过度的存储器大小,能够实现编码效率的提高。
另外,在用于限制偏移能够取的值的阈值th大于2m-1并且为2m以下时,作为用于对该偏移进行编码的编码方式,能够使用m比特的固定长编码。更具体而言,能够采用将最大值设为th的Truncated unary编码、Truncated Rice编码。另外,上述最大值th由从偏移属性设定部815提供的偏移值域来决定。
此外,将上述裁剪处理1以及2进行组合而得到的裁剪处理也包含在本实施方式中。此外,自适应偏移滤波器80也可以采用不具备偏移裁剪部812的构成。
(偏移信息选择部813)
偏移信息选择部813决定RD成本(Rate-Distorsion cost)变得更小的偏移类型、类别、偏移的组合、以及与其对应的QAOU分割结构,并且将表示所决定的偏移类型、类别、偏移、以及与其对应的QAOM分割结构的QAOU信息提供给可变长码编码部22。此外,偏移信息选择部813按每个QAOU或者按每个QAOMU将所决定的偏移提供给自适应偏移滤波器处理部82。
若参考图17~图18来具体地说明偏移信息选择部813的处理,则如下所述。图17是表示偏移信息选择部813执行的处理流程的流程图。
(步骤S301)
首先,偏移信息选择部813开始将作为处理对象的对象QAOMU的QAOMU编号作为循环变量的第1循环。
(步骤S302)
接下来,偏移信息选择部813开始以针对对象QAOMU能够选择的偏移类型为循环变量的第2循环。该第2循环是偏移类型1至偏移类型6的循环。
(步骤S303)
接下来,偏移信息选择部813针对对象偏移类型计算对象QAOMU中的偏移已滤波解码图像P_OF和编码对象图像#10的平方误差。
(步骤S304)
本步骤是第2循环的结束。
(步骤S305)
本步骤是第1循环的结束。在第1以及第2循环结束的时点,关于各QAOMU,计算出了针对全部偏移类型的平方误差。
(步骤S306)
接下来,偏移信息选择部813从将对象处理单位(例如LCU)分割为QAOU的QAOU分割结构中决定RD成本变得更小的QAOU分割结构。
若参考图18(a)~(d)来说明本步骤中的偏移信息选择部813的具体处理例,则如下所述。
首先,偏移信息选择部813计算使分割深度为0时的RD成本和使分割深度为1时的RD成本(图18(a))。在图18(a)中,设分割深度1的RD成本小于分割深度0的RD成本(图18(b))。
接下来,偏移信息选择部813计算使分割深度为2时的RD成本(图18(c))。
接下来,偏移信息选择部813比较分割深度1的QAOMU的RD成本和该分割深度1的QAOMU中包含的分割深度2的QAOMU的RD成本,在分割深度2的QAOMU的RD成本比较小的情况下,将该分割深度1的QAOMU更新为分割深度2的QAOMU(图18(d))。直到达到最大分割深度为止反复该处理。据此,决定RD成本变得更小的QAOU分割结构。
(偏移属性设定部815)
偏移属性设定部815将未图示的像素比特深度作为输入来决定偏移的比特深度。根据所决定的偏移的比特深度,设定偏移值域以及移位值。偏移值域提供给自适应偏移滤波器处理部82,移位值提供给偏移移位部816。偏移值域以及移位值的设定是与上述的偏移属性设定部613相同的处理,所以这里省略说明。
(自适应偏移滤波器处理部82)
自适应偏移滤波器处理部82对对象QAOU中的已去区块解码图像P_DB的各像素加上从偏移信息选择部813提供的偏移。自适应偏移滤波器处理部82将对包含在已去区块解码图像P_DB中的全部QAOU进行处理而得到的图像作为偏移已滤波解码图像P_OF来输出。另外,自适应偏 移滤波器处理部82的构成与自适应偏移滤波器处理部62相同,所以这里省略说明。这里未图示的自适应偏移滤波器处理部82中包含的偏移信息存储部中所存储的各偏移,被限制在由偏移属性设定部815设定的偏移值域。
〔实施方式2〕
在实施方式1中,将编码数据#1中包含的sao_offset[sao_curr_depth][ys][xs][i]设为了表示在自适应偏移滤波器的偏移滤波处理中对包含在对象QAOU中的各像素加上的偏移的具体值的句法。
另一方面,发明者获得了如下见解:通过对偏移滤波处理中使用的偏移的值进行预测编码,即,对使用偏移的值和该偏移的值的预测值而计算出的偏移残差进行编码,从而能够进一步削减编码数据的码量。
在本实施方式中,参考图19~图21来说明对进行了预测编码的偏移进行偏移滤波处理的运动图像解码装置、和对偏移滤波处理中使用的偏移进行预测编码的运动图像编码装置。另外,对于在实施方式1中已经说明过的部分省略说明。
(编码数据)
本实施方式所涉及的编码数据含有偏移残差sao_offset_residual[sao_curr_depth][ys][xs][i]来代替实施方式1所涉及的编码数据#1中包含的sao_offset[sao_curr_depth][ys][xs][i]。本实施方式所涉及的编码数据的其他结构与实施方式1所涉及的编码数据#1的结构相同。以下,有时将本实施方式所涉及的编码数据记作编码数据#3。
(sao_offset_residual)
偏移残差sao_offset_residual[sao_curr_depth][ys][xs][i]是本实施方式所涉及的自适应偏移滤波器执行的偏移滤波处理中对包含在对象QAOU中的各像素加上的偏移的值与该偏移的值的预测值的带权重的差分值,也记作sao_offset_residual[sao_type_idx][class_idx]。
将对包含在对象QAOU中的对象像素加上的偏移记作Offset[sao_type_idx][class_idx]时,偏移残差sao_offset_residual[sao_type_idx][class_idx]通过下式给出:
sao_offset_residual[sao_type_idx][class_idx]
=Offset[sao_type_idx][class_idx]
-a*pred_offset[merge_tbl[sao_type_idx]][class_idx]。
这里,a是对预测值pred_offset乘上的权重系数,merge_tbl是以sao_type_idx为参量的函数。对于a以及merge_tbl的具体例,后面叙述,所以这里省略说明。
(运动图像解码装置)
本实施方式所涉及的运动图像解码装置具备自适应偏移滤波器60’来代替实施方式1所涉及的运动图像解码装置1具备的自适应偏移滤波器60。本实施方式所涉及的运动图像解码装置的其他构成与实施方式1所涉及的运动图像解码装置1的构成相同。
图19是表示本实施方式所涉及的自适应偏移滤波器60’的构成的框图。如图19所示,自适应偏移滤波器60’具备偏移信息解码部611’来代替自适应偏移滤波器60具备的偏移信息解码部611。
(偏移信息解码部611’)
偏移信息解码部611’参考编码数据#3中包含的QAOU信息,对QAOU信息中包含的偏移信息OI进行解码。此外,使用通过解码偏移信息OI而得到的偏移残差sao_offset_residual[sao_type_idx][class_idx]、和预测值pred_offset[merge_tbl[sao_type_idx]][class_idx],通过下式来计算自适应偏移滤波处理中使用的偏移Offset[sao_type_idx][class_idx]:
Offset[sao_type_idx][class_idx]
=a*pred_offset[merge_tbl[sao_type_idx]][class_idx]
+sao_offset_residual[sao_type_idx][class_idx]
并且将所计算出的偏移Offset[sao_type_idx][class_idx]存储到偏移信息存储部621。这里,pred_offset[merge_tbl[sao_type_idx]][class_idx]是Offset[sao_type_idx][class_idx]的预测值。merge_tbl[sao_type_idx]是对sao_type_idx=1~6给予索引的表,可以将一个以上的sao_type_idx看做同一组。
(pred_offset的具体例1)
对pred_offset[merge_tbl[sao_type_idx]][class_idx]的第1具体例进行 说明。在本例中,通过
pred_offset[merge_tbl[sao_type_idx]][class_idx]
=Offset′[sao_type_idx][class_idx]
来决定预测值pred_offset[merge_tbl[sao_type_idx]][class_idx]。这里,Offset′[sao_type_idx][class_idx]是已经解码的偏移,表示与偏移类型索引sao_type_idx、以及类别索引class_idx建立了关联的偏移。
如此,在本例中,作为Offset[sao_type_idx][class_idx]的预测值,是已经解码的偏移,使用与偏移类型索引sao_type_idx、以及类别索引class_idx建立了关联的偏移Offset′[sao_type_idx][class_idx]。
(pred_offset的具体例2)
对pred_offset[merge_tbl[sao_type_idx]][class_idx]的第2具体例进行说明。在本例中,通过
pred_offset[merge_tbl[sao_type_idx]][class_idx]
=(pred_offset′[merge_tbl[sao_type_idx]][class_idx]*W1
+Offset′[sao_type_idx][class_idx]*W2)>>1og2(W1+W2)
来决定预测值pred_offset[merge_tbl[sao_type_idx]][class_idx]。这里,pred_offset′[merge_tbl[sao_type_idx]][class_idx]表示计算已经解码的偏移Offset′[saotype_idx][class_idx]时所使用的预测值。此外,“*”表示取乘积的运算记号,“>>”表示右比特移位。此外,W1以及W2分别表示权重系数,例如,可以取W1=3、W2=1。W1以及W2的具体值,只要按照编码效率变得更高的方式进行决定即可。
由上式可知,在本例中,为了求出predoffset,参考pred_offset′以及Offset′,为了求出pred_offset′,参考pred_offset″以及Offset″,......,如此递归地参考已经解码的预测值以及偏移,所以对于pred_offset,已经解码的多个偏移作出贡献。因此,预测值的过度的变动被抑制。据此,例如,即使在由于噪声的影响而计算出不恰当的预测值那样的情况下,也可以抑制那样的不恰当的预测值的影响,所以能够实现编码效率的提高。
(pred_offset的具体例3)
对pred_offset[merge_tbl[sao_type_idx]][class_idx]的第3具体例进行说明。在本例中,通过
pred_offset[merge_tbl[sao_type_idx]][class_idx]
=clip3(-th、th、pred_offset[merge_tbl[sao_type_idx]][class_idx])
来决定预测值pred_offset[merge_tbl[sao_type_idx]][class_idx]。这里,clip3(A、B、C)表示用下限值A以及上限值B来裁剪值C。此外,对于clip3的参量的pred_offset[merge_tbl[sao_type_idx]],例如,设为如上述具体例1或者2那样所决定的值。此外,对于阈值th,例如,依赖于像素值的比特深度bit_depth,如下地来决定。
th=4(bit_depth=8)
th=8(bit_depth>8)
如此,在本例中,通过使用利用上限值以及下限值进行了裁剪的预测值,不会产生过大的预测值或过小的预测值,所以能够实现编码效率的提高。此外,上限值以及下限值的绝对值被设定为像素值的比特较大时变大,所以可以根据像素值的比特深度来进行适当的裁剪处理,能够防止画质的劣化。
(merge_tbl的具体例1)
图20(a)是表示函数mergetbl[sao_type_idx]的第1具体例的表。如图20(a)所示,本例所涉及的merge_tbl[sao_type_idx]在saotype_idx=0时不取值,在sao_type_idx=l~6时分别取0~5的值。因此,本例所涉及的merge_tbl[sao_type_idx]还可以表现为
merge_tbl[sao_type_idx]=sao_type_idx-1。
通过使用本例所涉及的merge_tbl[sao_type_idx],偏移信息解码部611’对于各个sao_type_idx以及各个class_idx个别地决定预测值pred_offset,所以能够削减偏移残差sao_offset_residual的码量。
(merge_tbl的具体例2)
图20(b)是表示函数merge_tbl[sao_type_idx]的第2具体例的表。如图20(b)所示,本例所涉及的merge_tbl[sao_type_idx]在边缘偏移(sao_type_idx=1~4)时取0的值,在带偏移(sao_type_idx=5~6)时取1~2的值。
例如,设在先偏移的计算时指定sao_type_idx=1(merge_tbl[sao_type_idx=1]=0)以及class_idx=1,下一偏移 的计算时指定sao_type_idx=2(merge_tbl[sao_type_idx=2]=0)以及class_idx=1时,计算该下一偏移时所使用的预测值与该在先偏移的计算时所使用的预测值相同。
通过使用本例所涉及的merge_tbl[sao_type_idx],偏移信息解码部611’对于指定了边缘偏移的情况、以及指定了带偏移的情况的各情况,进行以下的处理。
·指定了边缘偏移的情况
根据与解码对象的偏移建立了关联的类别相同的类别的已经解码的偏移,计算该解码对象的偏移的预测值。这里,解码对象的偏移和预测值,只要类别相同,则偏移类型也可以不同。因此,可以将为了计算某偏移类型的偏移而设定的预测值用于计算与该某偏移不同的偏移类型的偏移,所以用于设定预测值的处理被减轻。
·指定了带偏移的情况
根据与与解码对象的偏移建立了关联的偏移类型以及类别相同的偏移类型以及类别的偏移,计算该解码对象的偏移的预测值。
若使用本例所涉及的merge_tbl[sao_type_idx],则能够削减处理量的同时计算出适当的预测值。
(系数a的具体例)
对预测值pred_offset乘上的权重系数a,既可以与偏移类型无关地使用1,也可以根据偏移类型来使用不同的值。
例如,可以设为:
a=1(边缘偏移时)
a=0.5(带偏移时)。
更一般而言,在设将指定了边缘偏移时的系数a表示为a(edge)、将指定了带偏移时的系数a表示为a(band)时,可以使用满足如下关系的系数a:
a(edge)>a(band)。
发明者发现:指定了边缘偏移时的、已经解码的偏移与解码对象的偏移之间的相关,大于指定了带偏移时的、已经解码的偏移与解码对象的偏移之间的相关。在上述具体例中,能够适当地引入已经解码的偏移与解码 对象的偏移的相关的影响,所以可以削减偏移残差的码量。
(运动图像编码装置)
本实施方式所涉及的运动图像编码装置具备自适应偏移滤波器80’来代替实施方式1所涉及的运动图像编码装置2具备的自适应偏移滤波器80。本实施方式所涉及的运动图像编码装置的其他构成与实施方式1所涉及的运动图像编码装置2的构成相同。
图21是表示本实施方式所涉及的自适应偏移滤波器80’的构成的框图。如图21所示,自适应偏移滤波器80’除了自适应偏移滤波器60具备的各部之外具备偏移残差导出部814。
(偏移残差导出部814)
偏移残差导出部814通过取得从偏移信息选择部813提供的偏移与该偏移的预测值的差分,计算偏移残差。该偏移残差作为QAOU信息的一部分由可变长码编码部22进行编码。
由偏移残差导出部814所设定的预测值与由本实施方式所涉及的运动图像解码装置具备的偏移信息解码部611’所设定的预测值相同,所以这里省略说明。
(附注事项1)
本发明还可以如以下那样进行记载。
本发明所涉及的图像滤波器装置是一种对由多个单位区域构成的输入图像的各像素值加上偏移的图像滤波器装置,其特征在于具备:偏移属性设定单元,其参考编码数据中包含的偏移类型指定信息,设定处理对象的单位区域中的偏移属性;偏移解码单元,其对具有与上述设定的偏移属性中包含的偏移值域对应的比特宽度的偏移进行解码;和滤波器单元,其对上述输入图像的各像素值加上上述偏移。
根据上述那样所构成的图像滤波器装置,通过上述偏移属性设定单元参考包含在编码数据中的偏移类型指定信息,设定处理对象的单位区域中的偏移属性,并且通过上述偏移解码单元对具有与包含在所设定的偏移属性中的偏移值域对应的比特宽度的偏移进行解码,所以能够有效的削减用于预先存储偏移的存储器大小。
因此,根据上述构成,能够削减用于预先存储偏移的存储器大小的同 时进行适当的偏移滤波处理。
另外,上述偏移类型指定信息可以是按每个上述输入图像而决定信息,也可以是按每个上述单位区域而决定的信息。此外,可以是按每个上述输入图像的给定集而决定的信息,也可以是按每个上述单位区域的给定集而决定的信息。
此外,优选上述偏移类型指定信息包含各单位区域中的上述输入图像的像素值的比特深度,上述偏移解码单元对具有与上述像素值的比特深度相应的比特宽度的偏移进行解码。
根据上述构成,上述偏移解码单元对具有与上述像素值的比特深度相应的比特宽度的偏移进行解码,所以能够有效的削减用于预先存储偏移的存储器大小。
另外,可以构成为:上述偏移类型指定信息包含各单位区域中的上述输入图像的像素值的比特深度,上述偏移解码单元对具有能够表现与上述比特深度相应的值域的比特宽度的偏移进行解码。
根据上述构成,上述偏移解码单元对具有能够表现与各单位区域中的上述输入图像的像素值的比特深度相应的值域的比特宽度的偏移进行解码,所以能够有效的削减用于预先存储偏移的存储器大小。
另外,所谓能够表现与上述比特深度相应的值域的比特宽度,是指用二进制数表现包含在值域范围内的值时的比特宽度,例如值域为-23~23-1时,能够表现的比特宽度是4比特。
此外,优选上述解码后的偏移是被量化后的值,上述滤波器单元对上述各像素值加上使用上述偏移属性中包含的参数对上述偏移进行逆量化而得到的值。
根据上述构成,因为上述解码后的偏移是被量化后的值,上述滤波器单元对上述各像素值加上使用包含在上述偏移属性中的参数对上述偏移进行逆量化而得到的值,所以与上述偏移属性中包含的参数相应的偏移被加到各图像值上。
因此,根据上述构成,能够削减用于预先存储偏移的存储器大小的同时使编码效率提高。
另外,可以构成为:上述偏移类型指定信息包含像素值的移位值,上 述滤波器单元加上使用该移位值对上述偏移进行逆量化所得到的值,来代替上述偏移。
根据上述构成,因为上述偏移类型指定信息包含像素值的移位值,上述滤波器单元加上使用该移位值对上述偏移进行逆量化而得到的值,来代替上述偏移,所以能够获得与像素值的移位值相应的偏移。因此,能够削减用于预先存储偏移的存储器大小的同时使编码效率提高。
另外,所谓像素值的移位值,是指像素比特深度与偏移的比特深度的差分值,所谓使用该移位值对上述偏移进行逆量化,是指使上述偏移向左侧比特移位该移位值,从偏移的比特深度变换为像素比特深度。
此外,优选上述偏移类型指定信息是针对上述输入图像而决定的信息。
根据上述构成,因为偏移类型指定信息是针对上述输入图像而决定的信息,所以上述图像滤波器装置能够对上述输入图像进行适当的偏移处理。
此外,本发明所涉及的偏移解码装置是一种对由对输入图像的各像素值加上偏移的图像滤波器所参考的各偏移进行解码的偏移解码装置,其特征在于具备:偏移残差解码单元,其从编码数据解码各偏移残差;预测值导出单元,其从已经解码的偏移导出各偏移的预测值;和偏移计算单元,其根据由上述预测值导出单元导出的预测值、以及由上述偏移残差解码单元解码的偏移残差,计算各偏移。
根据上述那样所构成的偏移解码装置,因为具备从编码数据解码各偏移残差的偏移残差解码单元、从已经解码的偏移导出各偏移的预测值的预测值导出单元、和根据由上述预测值导出单元所导出的预测值以及由上述偏移残差解码单元所解码的偏移残差计算各偏移的偏移计算单元,所以与直接编码各偏移的情况相比,能够根据码量较少的编码数据适当地解码偏移。
此外,优选上述输入图像由多个单位区域构成,上述偏移残差解码单元将各偏移残差与按每个单位区域而决定的偏移类型以及按每个像素而决定的偏移类别建立关联来进行解码,上述预测值导出单元对各偏移的预测值根据与与该偏移相同的偏移类型以及偏移类别建立了关联的已经解 码的偏移进行导出。
根据上述构成,因为对于各偏移的预测值,根据与与该偏移相同的偏移类型以及偏移类别建立了关联的已经解码的偏移进行导出,所以预测精度提高。因此,根据上述构成,能够由码量较少的编码数据适当的解码偏移。
此外,优选上述输入图像由多个单位区域构成,上述偏移残差解码单元将各偏移残差与按每个单位区域而决定的偏移类型以及按每个像素而决定的偏移类别建立关联来进行解码,上述预测值导出单元对于各偏移的预测值,在与该偏移建立了关联的偏移类型属于第1偏移类型群的情况下,根据与与该偏移相同的第1偏移类型群以及相同的偏移类别建立了关联的已经解码的偏移进行导出,在与该偏移建立了关联的偏移类型属于第2偏移类型群的情况下,根据与与该偏移相同的偏移类型以及偏移类别建立了关联的已经解码的偏移进行导出。
根据上述构成,因为对各偏移的预测值,在与该偏移建立了关联的偏移类型属于第1偏移类型群的情况下,根据与与该偏移相同的偏移类型建立了关联的已经解码的偏移进行导出,在与该偏移建立了关联的偏移类型属于第2偏移类型群的情况下,根据与与该偏移相同的偏移类型以及偏移类别建立了关联的已经解码的偏移进行导出,所以能够削减处理量,并且使预测精度提高。因此,根据上述构成,能够削减处理量的同时,根据码量较少的编码数据适当地解码偏移。
另外,所谓上述第1偏移类型,是指例如与该第1偏移类型建立了关联的单位区域中的各像素例如根据在该像素的附近边缘的形态,被分类为多个类别的任一种,所谓上述第2偏移类型,是指与该第2偏移类型建立了关联的单位区域中的各像素例如根据该像素的像素值被分类为多个类别的任一种。
此外,优选上述偏移计算单元将各偏移作为由上述预测值导出单元所导出的预测值以及由上述偏移残差解码单元所解码的偏移残差的线性函数来计算,对上述预测值乘上的系数,在与上述偏移建立了关联的偏移类型属于第1偏移类型群的情况、和与上述偏移建立了关联的偏移类型属于第2偏移类型群的情况是不同的。
根据上述构成,因为对上述预测值乘上的系数,在与上述偏移建立了关联的偏移类型属于第1偏移类型群的情况、和与上述偏移建立了关联的偏移类型属于第2偏移类型群的情况不同,所以能够根据偏移类型,使用更适当的系数来计算上述偏移。据此,能够实现编码效率的提高。
此外,优选上述预测值导出单元通过取得已经解码的偏移和该已经解码的偏移的预测值的加权平均,从而导出各偏移的预测值。
根据上述构成,因为通过取得已经解码的偏移和该已经解码的偏移的预测值的加权平均,导出各偏移的预测值,所以已经解码的多个偏移贡献于各偏移的预测值。因此,预测值的过度的变动被抑制。据此,例如,即使在由于噪声的影响而计算出了不恰当的预测值的情况下,也能够抑制这种不恰当的预测值的影响,所以能够实现编码效率的提高。
此外,优选上述预测值导出单元利用与输入图像中的各像素值的比特深度相应的上限值以及下限值,对所导出的各预测值进行裁剪。
根据上述构成,因为利用与输入图像中的各像素值的比特深度相应的上限值以及下限值,对所导出的各预测值进行裁剪,所以不会产生过大的预测值或过小的预测值,能够实现编码效率的提高。
此外,本发明所涉及的图像滤波器装置是一种作用于输入图像的图像滤波器装置,其特征在于具备:计算单元,其计算输入图像中的对象像素的像素值与该对象像素的周边像素的像素值的差分值;和比特移位单元,其将由上述计算单元所参考的像素值、或者由上述计算单元所计算出的差分值右比特移位给定移位值;分类单元,其根据由上述比特移位单元进行了右比特移位的差分值与0的大小关系,将上述对象像素分类为多个偏移类别的任一种;和偏移单元,其对上述对象像素的像素值,加上与由上述分类单元所分类的偏移类别建立了关联的偏移。
根据如上述那样所构成的图像滤波器装置,因为根据进行了右比特移位的差分值与0的大小关系,将上述对象像素分类为多个偏移类别的任一种,并且对上述对象像素的像素值,加上与由上述分类单元进行了分类的偏移类别建立了关联的偏移,所以类别分类处理难以受到噪声的影响,编码效率提高。
此外,优选上述给定移位值与上述对象像素的像素值的比特深度具有 正相关。
根据上述构成,因为上述给定移位值与上述对象像素的像素值的比特深度具有正相关,所以能够更有效地实现编码效率的提高。
此外,本发明所涉及的图像滤波器装置是一种作用于输入图像的图像滤波器装置,其特征在于具备:计算单元,其计算输入图像中的对象像素的像素值与该对象像素的周边像素的像素值的差分值;分类单元,其根据由上述计算单元所计算出的差分值与预先决定的第1以及第2阈值的大小关系,将上述对象像素分类为多个偏移类别的任一种;和偏移单元,其对上述对象像素的像素值,加上与由上述分类单元所分类的偏移类别建立了关联的偏移。
因为上述那样所构成的图像滤波器装置,根据由上述计算单元所计算出的差分值与预先决定的第1以及第2阈值的大小关系,将上述对象像素分类为多个偏移类别的任一种,并且对上述对象像素的像素值,加上与由上述分类单元所分类的偏移类别建立了关联的偏移,所以类别分类处理难以受到噪声的影响,编码效率提高。
此外,优选上述第1以及第2阈值的绝对值与上述对象像素的像素值的比特深度具有正相关。
根据上述构成,因为上述第1以及第2阈值的绝对值与上述对象像素的像素值的比特深度具有正相关,所以能够更有效地实现编码效率的提高。
此外,本发明所涉及的图像滤波器装置是一种作用于由多个单位区域构成的输入图像的图像滤波器装置,其特征在于具备:决定单元,其从第1以及第2偏移类型中决定包含输入图像中的对象像素的对象单位区域所属的偏移类型;分类单元,其根据上述对象单位区域所属的偏移类型以及上述对象像素的像素值,将上述对象像素分类为不加上偏移的偏移类别、以及加上偏移的多个偏移类别的任一种;和偏移单元,其对上述对象像素的像素值,加上与上述对象单位区域所属的偏移类型以及由上述分类单元所分类的偏移类别建立了关联的偏移,其中,上述分类单元在上述对象像素的像素值处于给定范围内时,在包含上述对象像素的单位区域所属的偏移类型是上述第1以及上述第2偏移类型的任一种的情况下,都将上述对 象像素分类为加上偏移的偏移类别。
根据上述那样所构成的图像滤波器装置,因为在上述对象像素的像素值处于给定范围内时,在包含上述对象像素的单位区域所属的偏移类型是上述第1以及上述第2偏移类型的任一种的情况下,都将上述对象像素分类为加上偏移的偏移类别,所以能够有效地去除区块噪声。因此,根据上述构成,能够实现编码效率的提高。
此外,本发明所涉及的图像滤波器装置是一种对由多个单位区域构成的输入图像的各像素值加上偏移的图像滤波器装置,其特征在于具备:决定单元,其从多个偏移类型中决定处理对象的单位区域所属的偏移类型;偏移编码单元,其根据上述偏移类型,决定具有不同的比特宽度的偏移,并且对该偏移进行编码;和滤波器单元,其对上述输入图像的各像素值加上上述所决定的偏移。
根据上述那样所构成的图像滤波器装置,从多个偏移类型中决定处理对象的单位区域所属的偏移类型,根据所决定的偏移类型,决定具有不同的比特宽度的偏移,并且将所决定的偏移加到上述输入图像的各像素上。此外,对所决定的偏移进行编码。
因此,根据上述构成,能够削减用于预先存储偏移的存储器大小,同时能够进行适当的偏移滤波处理。此外,根据上述构成,因为编码数据的码量被削减,所以编码效率提高。
此外,本发明所涉及的偏移编码装置是一种对由对输入图像的各像素值加上偏移的图像滤波器所参考的各偏移进行编码的偏移编码装置,其特征在于具备:预测值导出单元,其根据已经编码的偏移导出各偏移的预测值;偏移残差计算单元,其根据各偏移和由上述预测值导出单元所导出的预测值计算偏移残差;和偏移残差编码单元,其对由上述偏移残差计算单元所计算出的偏移残差进行编码。
根据如上述那样所构成的偏移编码装置,因为具备:预测值导出单元,其根据已经编码的偏移导出各偏移的预测值;偏移残差计算单元,其根据各偏移和由上述预测值导出单元所导出的预测值计算偏移残差;和偏移残差编码单元,其对由上述偏移残差计算单元所计算出的偏移残差进行编码,所以能够削减编码数据的码量。
此外,本发明所涉及的编码数据的数据结构是一种由对由多个单位区域构成的输入图像的各像素值加上偏移的图像滤波器所参考的编码数据的数据结构,其特征在于:含有指定各单位区域所属的偏移类型的偏移类型指定信息、和具有根据该偏移类型而不同的比特宽度的偏移,上述图像滤波器参考上述编码数据中包含的偏移类型指定信息,决定处理对象的单位区域所属的偏移类型,并且对具有根据所决定的偏移类型而不同的比特宽度的偏移进行解码。
如上述那样所构成的编码数据,因为含有根据偏移类型而具有不同的比特宽度的偏移,所以编码数据的码量被削减。此外,对上述编码数据进行解码的图像滤波器参考上述偏移类型指定信息,决定处理对象的单位区域所属的偏移类型,并且对根据所决定的偏移类型而具有不同的比特宽度的偏移进行解码,所以能够削减用于预先存储偏移的存储器大小的同时,进行适当的偏移滤波处理。
另外,上述偏移类型指定信息可以按每个上述输入图像来决定,也可以按每个上述单位区域来决定。此外,可以按每个上述输入图像的给定集来决定,也可以按每个上述单位区域的给定集来决定。
〔实施方式3〕
首先,参考图23来说明本实施方式中的偏移信息OI。图23(a)是表示偏移信息OI(图23(a)中记作“sao_offset_param()”)的句法的图。
如图23(a)所示,在偏移信息OI中包含参数“sao_type_idx[sao_curr_depth][ys][xs]”。此外,在参数“sao_type_idx[sao_curr_depth][ys][xs]”不是“0”的情况下,在偏移信息OI中含有参数“sao_offset[sao_curr_depth][ys][xs][i]”。
(sao_curr_depth、ys、xs)
作为“sao_type_idx”以及“sao_offset”的参量的“sao_curr_depth”是表示QAOU的分割深度的参数,“ys”以及“xs”是分别用于表示QAOU(或者后述的QAOMU)的y方向的位置以及x方向的位置的参数。
对于与“sao_curr_depth”的值相应的QAOU的分割形态,如上述参考图4所进行的说明。
图23(b)是表示QAOU信息(图23(b)中记作“sao_split_param()”)的 句法的图。如图23(b)的句法所示,若分割深度“sao_curr_depth”小于利用给定“saoMaxDepth”所设定的最大值,则根据参数“sao_split_flag”来选择是否进一步分割QAOU。在进行分割的情况下,递归地调用下一层次深度的“sao_split_param()”。在分割深度达到最大值(“sao_curr_depth”不小于“saoMaxDepth”)的情况下,在“sao_split_flag[sao_curr_depth][ys][xs]”中设定“0”,不进行进一步的分割。
图44中示出偏移信息以及QAOU信息的句法的另一例。
图44(a)是偏移信息的句法。虽然是与图23(a)同样的构成,但是在“sao_offset_param()”的参量、以及“sao_split_flag”、“sao_type_idx”、“sao_offset”的排列的下标中增加了作为表示颜色分量的值的“component”。据此,能够进行按每个亮度以及色差等颜色分量而不同的QAOU分割,并且能够应用不同的偏移。
图44(b)是QAOU信息的句法。与图44(a)相同,是在图23(b)中作为参量增加了颜色分量“component”的句法。
图44(c)是调用图44(a)以及图44(b)的句法的自适应偏移滤波器整体的句法。参数“sao_flag”是选择是否应用自适应偏移滤波器的标志,仅在该标志为真的情况下,使用后续的关于自适应偏移滤波器的参数。在该标志为真的情况下,对各颜色分量,指定最上位层次,调用句法“sao_split_param()”以及“sao_offset_param()”。因为是最上位层次,所以各句法中所给出的参量是sao_curr_depth=0、ys=0、xs=0。此外,“component”的值在亮度(Y)的情况下是0,在色差(Cb)的情况下是1,在色差(Cr)的情况下是2,来区别各颜色分量。另外,只要能够区别处理对象的颜色分量,则component的值也可以是其他值。
另外,对于色差(Cb)以及色差(Cr),使用与其分别对应的标志“sao_flag_cb”“sao_flag_cr”,选择是否应用自适应偏移滤波器,在不应用的情况下,不存储与该颜色分量对应的QAOU信息以及偏移信息。
因为在上述图44的句法中增加了参量“component”,所以在使用了上述图23的说明中将参量[sao_curr_depth][ys][xs]置换为[sao_curr_depth][ys][xs][component]来进行处理。以后的说明也相同。
(运动图像解码装置1’)
接下来,参考图22以及图24~图29来说明本实施方式所涉及的运动图像解码装置1’。另外,对于与上述实施方式中所示的部件具有相同功能的部件,标注相同的符号,并且省略其说明。
运动图像解码装置1’与运动图像解码装置1同样地,关于其一部分,包含H.264/MPEG-4.AVC中所采用的方式、VCEG(Video Coding Expert Group,视频编码专家组)中的共同开发用编解码器即KTA软件中所采用的方式、作为其后继编解码器的TMuC(Test Modelunder Consideration,考虑中的测试模型)软件中所采用的方式、以及HM(HEVCTestModel,高效率视频编码测试模型)软件中所采用的技术。此外,运动图像解码装置1’设置了自适应偏移滤波器60’来代替运动图像解码装置1中的自适应偏移滤波器60,这一点不同,其他构成相同。
(自适应偏移滤波器60’)
接下来,参考图22来说明自适应偏移滤波器60’的详细情况。图22是表示自适应偏移滤波器60’的构成的框图。如图22所示,自适应偏移滤波器60’是包括自适应偏移滤波器信息解码部61’以及自适应偏移滤波器处理部62’的构成。
此外,如图22所示,自适应偏移滤波器信息解码部61’是包括偏移信息解码部611、以及QAOU结构解码部612的构成。
偏移信息解码部611参考编码数据#1中包含的QAOU信息,解码QAOU信息中包含的偏移信息OI。此外,将通过解码偏移信息OI而得到的“sao_type_idx[sao_curr_depth][ys][xs][component]”以及“sao_offset[sao_curr_depth][ys][xs][i]”的各值与各个参量(sao_curr_depth、ys、xs)以及(sao_curr_depth、ys、xs、i)建立关联,提供给偏移信息存储部621。
更详细而言,偏移信息解码部611从编码数据#1解码代码,并且将所解码出的代码变换为“sao_type_idx”的值,与参量建立关联提供给偏移信息存储部621。这里,偏移信息解码部611根据处理对象的QAOU的层次的深度,变更代码的解码方法、以及从代码向“sao_type_idx”的值的变换。将该QAOU的层次的深度等的条件称为参数条件。对于与一般 参数条件相应的偏移信息的解码,使用图41、图42进行后述。
对于代码的解码方法,可以在处理对象的QAOU的层次的深度小于阈值时和处理对象的QAOU的层次的深度为阈值以上时,使用不同的最大值来进行,也可以仅在处理对象的QAOU的层次的深度为阈值以上时使用最大值。此外,可以在处理对象的QAOU的层次的深度小于阈值时和处理对象的QAOU的层次的深度为阈值以上时,使用不同的二值化(binarization)来进行。而且,可以在处理对象的QAOU的层次的深度小于阈值时和处理对象的QAOU的层次的深度为阈值以上时,使用不同的上下文。
例如,可以在处理对象的QAOU的层次的深度小于阈值的情况下,利用可变长编码(ue(v))解码代码,在处理对象的QAOU的层次的深度为阈值以上的情况下,利用与偏移类型的数量相应的truncated编码(te(v))解码代码。此外,可以在偏移类型数为2的幂时,利用固定长编码解码代码。若偏移类型数为4个,则可以用2bit来表现,所以可以用2bit进行固定长编码。
此外,偏移信息解码部611使用图25所示那样的变换表801以及变换表802进行从所解码的代码向“sao_type_idx”的值的变换。在图25(a)的变换表801中,示出2种变换型式。这2种变换型式根据处理对象的QAOU的层次的深度来分开使用。即,偏移信息解码部611在处理对象的QAOU的层次的深度小于阈值的情况下使用变换表801A,在处理对象的QAOU的层次的深度为阈值以上的情况下使用变换表801B。
在图25(a)的变换表801A中,对于代码“1”,偏移类型“EO_0”(“sao_type_idx”=1)建立了对应,对于代码“2”,偏移类型“EO_1”(“sao_type_idx”=2)建立了对应,对于代码“3”,偏移类型“EO_2”(“sao_type_idx”=3)建立了对应。以下,对于代码4~6也同样。
此外,在图25(a)的变换表801B中,对于代码“1”,偏移类型“EO_0”(“sao_type_idx”=1)建立了对应,对于代码“2”,偏移类型“BO_0”(“sao_type_idx”=5)建立了对应,对于代码“3”,偏移类型“BO_1”(“sao_type_idx”=6)建立了对应。而且,在变换表801B中不使用代码4~6。
如此,相对于在变换表801A中含有用于自适应偏移(SAO)的全部偏移类型,而在变换表801B中仅含有用于自适应偏移(SAO)的偏移类型中的一部分偏移类型。因此,在处理对象的QAOU的层次的深度为阈值以上的情况下,仅能使用一部分偏移类型。
这是因为,对于较深的层次,QAOU的面积变小,所以QAOU内的像素值的特性变得接近一样,即使不使用较多的类型,也能够导出适当的偏移。此外,据此,能够减少所使用的偏移类型数,所以能够减少所需要的存储器量,并且通过缩短表示偏移类型的编码数据的数据长等,从而能够使编码效率提高。
另外,若变换表801B中的代码与偏移类型的对应关系,与变换表801A中的代码与偏移类型的对应关系的顺序相同,则也可以采用仅使用变换表801A的构成。
图25(b)的变换表802示出能够代替变换表801B来使用的、与变换表801B同样的变换表的各种示例。所有变换表都与变换表801B同样地限制了类型的种类。此外,空栏表示不使用相应的代码。
变换表802A是仅使用边缘偏移的示例,不包含带偏移。边缘偏移的偏移数通常是4个,带偏移的偏移数通常是16个。如此,边缘偏移的偏移数比带偏移的偏移数少。因此,通过限制带偏移的使用,从而能够削减用于保持偏移的存储器量。尤其在层次较深的情况下,因为偏移增加所以存储器量变大。此外,在层次较深的情况下,带偏移的选择率降低。因此,通过将层次作为参数条件,在层次较深的情况下使用仅具备边缘偏移的变换表802A,在层次较浅的情况下使用具备边缘偏移和带偏移的变换表(例如801A),从而能够不使编码效率降低地削减存储器量。此外,因为在编码装置中能够节省不需要的选择分支的计算成本,所以能够减少处理量。
变换表802B是仅使用带偏移的示例,不包含边缘偏移。带偏移与边缘偏移相比具有如下特征:运算量较小,因为不使用对象像素的周围像素所以不需要用于保持参考像素的行存储器等。因此,通过根据参数条件来使用变换表802B,从而能够获得上述的效果。变换表802C是仅使用一个带偏移“BO_0”(“sao_type_idx”=5)的示例。
此外,变换表802D与变换表801B同样地是使用一个边缘偏移和两 个带偏移的示例。具体而言,是使用偏移类型“EO_0”(“sao_type_idx”=1)以及“BO_0”(“sao_type_idx”=5)、“BO_1”(“sao_type_idx”=6),带偏移类型中优先与短的代码(小的代码编号)建立了对应的示例。在层次较浅的情况下,与层次较深的情况相比,带偏移的选择率变高,所以通过将层次作为参数条件,在层次较浅的情况下使用变换表802D,将短的代码与使用频度高的类型建立对应,从而能够使编码效率提高。
另外,除了图25所例示的以外,也可以根据参数条件来变更代码与偏移类型的对应关系。对于变换表801A的任一与边缘偏移和带偏移都不同的偏移类型,可以根据层次深度等条件,单独或者与其他偏移类型一起进行使用。作为其具体例,可以列举在后述的其他实施方式中说明的、同时具有EO和BO的特征的偏移类型、在与现有边缘偏移“EO_0”不同的水平采样位置检测边缘的边缘偏移、基于与现有带偏移“BO_0”以及“BO_1”不同的带分配的带偏移。
QAOU结构解码部612通过解码包含在QAOU信息中的“sao_split_flag[sao_curr_depth][ys][xs]”,来决定QAOU的分割结构,并且将表示所决定的QAOU的分割结构的QAOU结构信息提供给偏移信息存储部621。
此外,也可以具备如下所示的偏移属性设定部613。偏移属性设定部613决定偏移的移位值。编码数据的偏移利用精度比像素比特深度(也称为PIC_DEPTH)低的偏移的比特深度(也称为SAO_DEPTH)进行编码。即,编码数据中的偏移被量化。所谓移位值,表示用于进行逆量化而需要的比特移位量。此外,偏移属性设定部613决定偏移的比特深度和偏移的值域。这里,根据输入偏移属性设定部613的未图示的像素比特深度(也称为PIC_DEPTH)来决定偏移的比特深度。所谓像素比特深度,是指用比特宽度表示构成自适应偏移滤波器60的输入图像的像素值的值域,在像素比特深度为N比特时,像素值取0~2N-1的范围。
SAO的比特深度以及移位值使用以下的式子,但是如后所述,也可以根据参数条件而使用其他值。
SAO_DEPTH=MIN(PIC_DEPTH、10)
移位值=PIC_DEPTH_MIN(PIC_DEPTH、10)
此外,用以下的式子决定量化偏移的值域。
此外,如图22所示,自适应偏移滤波器处理部62’是包括偏移信息存储部621、QAOU控制部622、偏移类型导出部623、类别分类部624、偏移导出部625、以及偏移加法部626的构成。
偏移信息存储部621基于QAOU结构信息、“sao_type_idx[sao_curr_depth][ys][xs]”、以及“sao_offset[sao_curr_depth][ys][xs][i]”,管理以及存储对各QAOU所指定的偏移类型、以及在该偏移类型中能够选择的各类别相关的偏移的具体值,是具备映射存储器以及表存储器的构成。
参考图24来说明映射存储器、以及表存储器。图24是表示映射存储器以及表存储器中所存储的示例的图,图24(a)是用于说明存储在映射存储器中的QAOU索引的一例的图,图24(b)是用于说明存储在表存储器中的信息的一例的图。
映射存储器601中存储分配给根据分割深度而决定的各偏移最小单位(也称为QAOMU:Quad Adaptive Offset Minimum Unit)的后述的QAOU索引。在图24(a)中示出构成对象处理单位(例如LCU)的分割深度3的各QAOMU和分配给各QAOMU的QAOU索引。另外,在图24(a)中,不考虑QAOU的分割深度,简便地将索引0~9分配给QAOU。此外,在图24(a)所示的示例中,将由QAOU索引=I所指定的QAOU记作QAOUI。此外,图24(a)中的细线表示QAOMU的边界,粗线表示QAOU的边界。
如图24(a)所示,QAOU0由4个QAOMU构成,这4个QAOMU中作为QAOU索引而分配了0。另一方面,QAOU3由一个QAOMU构成,该QAOMU中作为QAOU索引而分配了3。如此,在映射存储器中存储了分配给各QAOMU的QAOU索引。
此外,在表存储器602中,对于各QAOU索引,与该QAOU索引建立了关联的偏移类型、以及在该偏移类型中能够选择的各类别相关的偏移的具体值相互建立关联地进行存储。
具体而言,参考图24(b)进行说明。在图24(b)中示出与QAOU索引0~9的各个建立了关联的偏移类型以及在各偏移类型中能够选择的各类别相关的偏移。图24(b)中的“xxx”表示可以相互不同的具体数值。
此外,图24(b)中的“BO_1”表示由“sao_type_idx”=5所指定的偏移类型。此外,“EO_1”表示由“sao_type_idx”=1所指定的偏移类型。如此,将由“sao_type_idx”=1、2、3、4所指定的偏移类型即边缘偏移分别记作“EO_1、2、3、4”,将由“sao_type_idx”=5、6所指定的偏移类型即带偏移分别记作“BO_1、2”。
如图24(b)所示,在偏移类型为带偏移的情况下,关于该偏移类型而存储在表存储器中的偏移是偏移1~偏移16的总计16个。这里,偏移1~偏移16指在“sao_type_idx[sao_curr_depth][ys][xs]”的值为“5”或者“6”时由“sao_offset[sao_curr_depth][ys][xs][1]”~“sao_offset[sao_curr_depth][ys][xs][16]”分别所指定的值。
另一方面,在偏移类型为边缘偏移的情况下,关于该偏移类型而存储在表存储器中的偏移是偏移1~4的总计4个。这里,偏移1~4指在“sao_type_idx[sao_curr_depth][ys][xs]”的值为“1、2、3、4”任一个时由“sao_offset[sao_curr_depth][ys][xs][1]”~“sao_offset[sao_curr_depth][ys][xs][4]”所分别指定的值。另外,在边缘偏移的情况下,对于偏移5~16什么也不存储。
另外,对各QAOMU附加QAOMU编号,通过该QAOMU编号,各QAOMU能够相互识别。以下,将QAOMU编号为NQ的QAOMU记作QAOMUNQ。
此外,在本实施方式中,可以根据处理对象的QAOU的层次,使偏移的精度不同。根据偏移的精度,逆量化所使用的移位值也不同。在该情况下,也使用像素比特深度PIC_DEPTH来导出偏移的精度以及移位值。
作为偏移的精度的示例,例如,若将QAOU的层次的深度小于阈值时的偏移的精度、移位值设为
SAO_DEPTH=MIN(PIC_DEPTH、10)
移位值=PIC_DEPTH-MIN(PIC_DEPTH、10)
并且,将QAOU的层次的深度为阈值以上时的偏移的精度设为
SAO_DEPTH=MIN(PIC_DEPTH、8)
移位值=PIC_DEPTH-MIN(PIC_DEPTH、8)
则能够使偏移的精度不同。
如上所述,偏移的精度(偏移的比特深度、SAO_DEPTH)、和用比特宽度表现了构成输入图像的像素值的值域的像素比特深度(PIC_DEPTH),处于量化误差的观点存在相互密切的关系。自适应偏移滤波器60的输出图像的比特深度是像素比特深度PIC_DEPTH,SAO_DEPTH是对像素加上的偏移的比特深度,所以即使使用超过像素比特深度的精度的偏移,在输出过程也被舍弃,即使将SAO_DEPTH设定得超过PIC_DEPTH,也没有意义。相反,在SAO_DEPTH小于PIC_DEPTH的情况下,仅能对输入图像进行比由滤波器能够补正的精度(PIC_DEPTH)粗的补正,所以滤波器效果减小。
因此,通过将被量化后的偏移限制在用一定的比特宽度能够表现的偏移值域,能够限制由偏移信息存储部621用于存储被量化后的偏移的比特宽度。据此,与不进行限制的情况相比,能够获得存储器大小削减的效果。另一方面,使偏移值域过度地变窄,使偏移补正解码图像的失真的效果变小,通过偏移加法处理也不能去除解码图像的失真,编码效率降低。
因此,通过将偏移值域设定在最合适的范围使得编码效率不降低,从而能够削减存储器的使用量的同时维持滤波器的效果。
而且,将表示偏移值域的值的最大的比特长设为CLIP_BIT,通过CLIP_BIT=SAO_DEPTH-K的计算,将偏移值域确定为-2CLIP_BIT-1~2CLIP_BIT-1-1的情况下,根据发明者的实验,发现了若使K=4,则即使由偏移值域限制偏移的范围,编码效率也不会降低。
而且,在像素比特深度=8的情况下,偏移的比特深度SAO_DEPTH也是8,成为CLIP_BIT=8-K=4。一个偏移能够用4比特进行存储,对于以8比特的字节为单位进行处理的软件等,可以在1字节打包存储一个偏移,可以简便地削减存储器大小。
而且,在所设定的偏移的精度根据处理对象的QAOU的层次而不同的情况下,偏移信息存储部621根据处理对象的QAOU的层次的深度,切换确保偏移存储区域的单位大小。
具体而言,在将处理对象的QAOU的层次的深度小于阈值时的偏移的精度设定为nA比特(例如,nA=8或者6)、将处理对象的QAOU的层次的深度为阈值以上时的偏移的精度设定为nB比特(nA>nB、例如,nB=nA-2) 时,偏移信息存储部621用nA比特单位确保用于存储处理对象的QAOU的层次的深度小于阈值时的偏移的区域,用nB比特单位确保用于存储处理对象的QAOU的层次的深度为阈值以上时的偏移的区域。
另外,优选如下构成:在处理对象的QAOU的层次的深度为阈值以上的情况下,对偏移信息存储部621进行偏移的读写时,在写入时进行(nA-nB)比特下舍入,在读出时进行(nA-nB)比特上舍入,从而进行输入输出。根据该构成,不需要在其他模块中考虑偏移的精度的差来进行处理。
此外,偏移信息存储部621在根据处理对象的QAOU的层次的深度来改变需要的类别数的情况下,与需要的类别数相匹配,来切换要确保的表存储器的区域。例如,如后所述,考虑如下带偏移的情况:在处理对象的QAOU的层次的深度小于阈值的情况下,被分类为16类别,在处理对象的QAOU的层次的深度成为阈值以上的情况下,被分类为8类别。在该情况下,用于确保处理对象的QAOU的层次的深度成为阈值以上时的类别所需要的存储器的容量,成为处理对象的QAOU的层次的深度小于阈值时的一半。因此,偏移信息存储部621将处理对象的QAOU的层次的深度成为阈值以上时要确保的表存储器的大小切换为处理对象的QAOU的层次的深度小于阈值时的一半。
QAOU控制部622控制自适应偏移滤波器处理部62中包含的各部。此外,QAOU控制部622参考QAOU结构信息,将已去区块解码图像P_DB分割为一个或者多个QAOU,按给定顺序扫描各QAOU。此外,将表示作为处理对象的对象QAOMU的QAOMU编号提供给偏移类型导出部623。
偏移类型导出部623参考偏移信息存储部621的映射存储器以及表存储器,导出由从QAOU控制部622提供的QAOMU编号所指定的偏移类型。此外,将所导出的偏移类型提供给类别分类部624。
类别分类部624将包含在对象QAOU中的各像素分类为从偏移类型导出部623提供的偏移类型中能够选择的多个类别的任一种。此外,将该偏移类型、和表示各像素被分类的类别的类别索引提供给偏移导出部625。另外,对于类别分类部624执行的具体的分类处理,后面叙述,所以这里省略说明。
偏移导出部625参考偏移信息存储部621的表存储器,对包含在对象QAOU中的各像素,导出从类别分类部624提供的偏移类型以及由类别索引所指定的偏移。进一步,具备偏移逆移位部(未图示),其使偏移向左侧比特移位由偏移属性设定部613所设定的移位值。偏移逆移位部进行该偏移的逆量化,使得偏移的比特深度和像素比特深度相匹配。通过进行这种逆量化,在后述的偏移加法部626的加法运算处理中,可以在同一比特深度,进行像素值和偏移的加法运算。对各像素进行了逆量化的偏移提供给偏移加法部626。
偏移加法部626对对象QAOU中的已去区块解码图像P_DB的各像素加上从偏移导出部625提供的偏移。偏移加法部626将对包含在已去区块解码图像P_DB中的全部QAOU进行处理而得到的图像作为偏移已滤波解码图像P_OF输出。
接下来,参考图26~29来说明类别分类部624执行的分类处理。另外,以下,说明将QAOU的层次的深度等条件作为参数条件的情况,但是对于与一般参数条件相对应的类别分类部的构成,使用图34进行后述。
图26是用于说明自适应偏移滤波器60的偏移处理的图,(a)示出表示处理对象像素x的像素值pix[x]与像素a或者b的像素值的大小关系的曲线、以及与该大小关系相应的函数Sign的值,(b)示出表示处理对象像素x的像素值与像素a以及b的像素值的大小关系的曲线、以及与该大小关系相应的EgdeType的值,(c)示出(b)所示的各曲线与class_idx的对应,(d)~(f)示出表示从EgdeType向class_idx的变换的变换表。
图27是用于说明自适应偏移滤波器60的偏移处理的图,(a)概略地示出“sao_type_idx”=5时的类别分类,(b)概略地示出“sao_type_idx”=6时的类别分类。
图28是用于说明自适应偏移滤波器60的偏移处理的图,(a)概略地示出处理对象的QAOU的层次的深度小于阈值时的类别分类,(b)概略地示出处理对象的QAOU的层次的深度为阈值以上时的类别分类。
图29是表示指定了带偏移时的类别分类的一例的图,(a)示出处理对象的QAOU的层次的深度小于阈值时的类别分类的一例,(b)示出处理对象的QAOU的层次的深度为阈值以上的时的类别分类的一例。
(偏移类型=1~4(边缘偏移)时)
从偏移类型导出部623提供的偏移类型为1~4的任一种时的类别分类部624的处理,如上述参考图10进行的说明那样。
因此,如图26(a)所示,在像素值pix[x]与像素a或者b的像素值的大小关系中,在像素值pix[x]小于像素a或者b的像素值的情况下,Sign(pix[x]-pix[a])=-1;在相同的情况下,Sign(pix[x]-pix[a])=0;在大于的情况下,Sign(pix[x]-pix[a])=1。另外,在图26(a)中带有pix[x]的黑圆点表示处理对象像素x的像素值,不带有pix[x]的黑圆点表示处理对象像素a或者b的像素值。此外,图26(a)中的上下方向表示像素值的大小。
接下来,类别分类部624基于Sign(pix[x]-pix[a])、以及Sign(pix[x]-pix[b]),通过以下的数式(1-1)导出EgdeType。
EgdeType=Sign(pix[x]-pix[a])+Sign(pix[x]-pix[b])+2…(1-1)
据此,如图26(b)所示,相对于像素值pix[x],像素a以及b的像素值都比较大的情况下,成为EgdeType=0。此外,相对于像素值pix[x],像素a以及b中的一方的像素值较大、另一方的像素值相同的情况下,成为EgdeType=1。此外,相对于像素值pix[x],像素a以及b中的一方的像素值较小、另一方的像素值相同的情况下,成为EgdeType=3。
此外,相对于像素值pix[x],像素a以及b的像素值都小的情况下,成为EgdeType=4。此外,相对于像素值pix[x],像素a以及b中的一方的像素值较小、另一方的像素值较大的情况下,或者相对于像素值pix[x],像素a以及b的像素值都相同的情况下,成为EgdeType=2。
另外,在图26(b)中,各曲线的中心的黑圆点示出处理对象像素x的像素值,两端的黑圆点示出像素a以及b的像素值。此外,图26(b)中的上下方向示出像素值的大小。
接下来,类别分类部624基于所导出的EgdeType,按照以下方式导出处理对象像素x应该属于的类别的类别索引(class_idx)。
class_idx=EoTbl[EdgeType]
这里,EoTbl[EdgeType]是用于从EdgeType导出class_idx而使用的变换表。在图26(d)~(f)中示出该变换表EoTbl的具体例。
图26(d)所示的变换表1001X是不根据处理对象的QAOU的层次的 深度而改变所使用的变换表的情况的变换表。
此外,图26(e)所示的变换表1001A和图26(f)所示的变换表1001B是根据处理对象的QAOU的层次的深度来改变所使用的变换表的情况的变换表,在处理对象的QAOU的层次的深度小于阈值的情况下使用变换表1001A,在处理对象的QAOU的层次的深度为阈值以上的情况下使用变换表1001B。
在不根据处理对象的QAOU的层次的深度改变所使用的变换表的情况下,如变换表1001X所示,类别分类部624在由处理对象像素x、像素a以及像素b构成的区域不存在边缘的情况下(以下也称为平坦的情况),即,EdgeType=2的情况下,将处理对象像素x分类为类别0(“class_idx”=0)。此外,将EdgeType=0、1、3、4分别分类为class_idx=1、2、3、4。
此外,在不根据处理对象的QAOU的层次的深度而改变要使用的变换表的情况下,在处理对象的QAOU的层次的深度小于阈值时,如变换表1001A所示,类别分类部624在由处理对象像素x、像素a以及像素b构成的区域不存在边缘的情况下(以下也称为平坦的情况),即,EdgeType=2的情况下,将处理对象像素x分类为类别0(“class_idx”=0)。此外,将EdgeType=0、1、3、4分别分类为class_idx=l、3、4、2。此外,在处理对象的QAOU的层次的深度为阈值以上时,如变换表1001B所示,类别分类部624在由处理对象像素x、像素a以及像素b构成的区域不存在边缘的情况下(以下也称为平坦的情况),即,EdgeType=2的情况下,将处理对象像素x分类为类别0(“class_idx”=0)。此外,将EdgeType=0、1分类为class_idx=1,将EdgeType=3、4分类为class_idx=2。因此,在变换表1001B中,一个class_idx对应于多个EdgeType。
另外,对于变换表1001A,可认为可以与变换表1001X相同。但是,若使变换表1001A与变换表1001X相同,则在与变换S表1001B之间,对于相同的EdgeType,会分配不同的class_idx,变为根据层次而改变处理。例如,在EdgeType=3时,在层次的深度小于阈值的情况下,class_idx=4,在层次的深度为阈值以上的情况下,class_idx=2,变为根据层次而改变处理。
因此,通过使变换表1001A为图26(e)所示,通过与变换表1001B之 间,即层次间,不使处理发生变化。
(偏移类型=5~6(带偏移)时)
在从偏移类型导出部623提供的偏移类型为5或者6时,类别分类部624根据处理对象像素x的像素值pix[x],将该处理对象像素的像素值分类为多个类别的任一个。
·偏移类型=5(sao_type_idx=5)时
类别分类部624在处理对象像素x的像素值pix[x]满足
(max×1/4)≤pix[x]≤(max×3/4)
时,将该处理对象像素分类为类别0以外的类别。即,在处理对象像素的像素值处于图11(a)中的斜线的范围内的情况下,将该处理对象像素分类为类别0以外的类别。另外,上述max表示处理对象像素x的像素值能够取得的最大值,例如,max=255。此外,max=255时,上述条件既可以表现为8≤(pix[x]/8)≤23,也可以表现为4≤(pix[x]/16)≤11。
·偏移类型=6(sao_type_idx=6)时
类别分类部624在处理对象像素x的像素值pix[x]满足
pix[x]≤(max×1/4)或者(max×3/4)≤pix[x]
时,将该处理对象像素分类为类别0以外的类别。即,在处理对象像素的像素值处于图11(b)中的斜线的范围内的情况下,将该处理对象像素分类为类别0以外的类别。另外,上述max表示处理对象像素x的像素值能够取得的最大值,例如,max=255。此外,在max=255时,上述条件既可以表现为(pix[x]/8)≤7或者24≤(pix[x]/8),也可以表现为(pix[x]/16)≤3或者12≤(pix[x]/16)。
若更具体地说明类别分类部624执行的类别分类处理,则如下所述。
在偏移类型为5~6的任一种时,类别分类部624根据处理对象的QAOU的层次的深度,按照以下的方式导出处理对象像素x应该属于的类别的类别索引(class_idx)。
·处理对象的QAOU的层次的深度小于阈值时
class_idx=EoTbl[sao_type_idx][pix[x]/>>BoRefBit32]
·处理对象的QAOU的层次的深度为阈值以上时
class_idx=EoTbl[sao_type_idx][pix[x]/>>BoRefBit16]
这里,BoTbl[sao_type_idx][pix[x]/>>BoRefBit32]、以及BoTbl[sao_type_idx][pix[x]/>>BoRefBitl6]是用于根据处理对象像素x的像素值pix[x]和sao_type_idx导出class_idx而使用的变换表。BoRefBit32和BoRefBit16,在将图像比特深度设为PIC_DEPTH时,分别是由PIC_DEPTH-5、PIC_DEPTH-4所导出的值,是将像素值量化为32等级或者16等级的值。被量化的像素值也记作pixquant。利用BoRefBit32以及BoRefBit16进行右移位,对应于利用1<<BoRefBit32以及1<<BoRefBit16进行除法运算。该量化幅度在像素值的比特深度为8比特的情况下,分别是1<<(8-5)=8、1<<(8-4)=16。以下,说明量化幅度为8的情况。此外,将该量化幅度称为类别的幅度。
类别分类部624改变根据处理对象的QAOU的层次的深度进行分类的类别的幅度,进行类别的分类。例如,如图28(a)所示,在处理对象的QAOU的层次的深度小于阈值的情况下,类别分类部624将类别的幅度设为“8”从而将像素值分类为32个,来进行类别分类。此外,如图28(b)所示,在处理对象的QAOU的层次的深度为阈值以上的情况下,类别分类部624将类别的幅度设为“16”从而将像素值分类为16个,进行类别分类。
接下来,在图29中示出变换表EoTbl的具体例。分别在图29的(a)、(b)中,“BO_1”表示“sao_type_index”=5,“BO_2”表示“sao_type_index”=6。此外,图29(a)所示的变换表1301是处理对象的QAOU的层次的深度小于阈值时所使用的变换表,图29(b)所示的变换表1302是处理对象的QAOU的层次的深度为阈值以上时所使用的变换表。
在处理对象的QAOU的层次的深度小于阈值的情况下,“sao_type_index”=5时,如图29(a)所示,类别分类部624对于像素值pix[x]满足8≤(pix[x]/8)≤23的处理对象像素x,根据pix[x]的大小,分类为类别索引1~16的任一种类别。
此外,“sao_type_index”=6时,类别分类部624对于像素值pix[x]满足pix[x]/8)≤7或者24≤(pix[x]/8)的处理对象像素x,根据pix[x]的大小,分类为类别索引1~16的任一种类别。
此外,在处理对象的QAOU的层次的深度为阈值以上的情况下, “sao_type_index”=5时,如图29(b)所示,类别分类部624对于像素值pix[x]满足4≤(pix[x]/16)≤11的处理对象像素x,根据pix[x]的大小,分类为类别索引1~8的任一种类别。
此外,“sao_type_index”=6时,类别分类部624对于像素值pix[x]满足(pix[x]/16)≤3或者12≤(pix[x]/16)的处理对象像素x,根据pix[x]的大小,分类为类别索引1~8的任一种类别。
(偏移信息解码部611的构成)
图41是根据自适应偏移的参数的种类(参数条件)改变要使用的偏移类型的、并且/或者根据自适应偏移的参数条件改变类别的分类数的偏移信息解码部611的框图。偏移信息解码部611由自适应偏移类型解码部6111、使用偏移类型选择部6112、偏移类型解码部6113、自适应偏移解码部6114、使用偏移数选择部6115、偏移解码部6116构成。另外,所谓参数条件,是指由像素值计算出的值以外的参数,除了上述所说明的层次、偏移类型之外,还存在后述的附注事项中所说明的区块大小(QAOU大小)、颜色分量(component)、QP。
自适应偏移类型解码部6111是根据参数条件从编码数据中的QAOU信息自适应地解码偏移类型的单元,具备使用偏移类型选择部6112和偏移类型解码部6113。
使用偏移类型选择部6112是根据参数条件选择要使用的偏移类型的单元。如上所述,参数条件之一是层次。层次浅时所使用的偏移类型的数量小于层次深时所使用的偏移的数量。使用偏移类型选择部6112根据参数条件将用图8所说明的那样的变换表输入到偏移类型解码部6113。此外将能够使用的偏移类型的最大数输入到偏移类型解码部6113。
偏移类型解码部6113根据所输入的变换表和最大数,从编码数据解码偏移类型。将偏移类型的最大数设为N时,代码能够取的范围被限制为0~N-1的N个,所以能够减少代码的编码中所需要的比特数。例如,在最大数大于2m-1且为2m以下时,能够使用m比特的固定长编码。此外,还可以采用将最大值设为N-1的Truncated unary编码、Truncated Rice编码。
自适应偏移解码部6114是根据参数条件从编码数据中的QAOU信息 自适应地解码偏移的单元,具备使用偏移数选择部6115和偏移解码部6116。使用偏移数选择部6115是根据参数条件,选择要使用的偏移数的最大值和偏移的精度的单元。参数条件之一是层次,层次浅时所使用的偏移的数量大于层次深时所使用的偏移的数量。例如,可以在层次浅时,如图29(a)所示将偏移数设为16个,在层次深时,如图29(b)所示将偏移数设为8个。此外,如上所述,还可以根据层次来改变偏移的精度(比特深度)。使用偏移数选择部6115将偏移最大数和偏移精度输入到偏移解码部6116。偏移解码部6116根据偏移的最大数和偏移的精度来解码偏移。在使偏移的数量较少时,偏移的码量减少。此外,与偏移类型同样地,对于偏移也是若决定了各偏移的精度则对偏移进行编码的代码能够取的范围也被限制,所以能够减少代码的编码所需要的比特数。
图42(a)是表示使用偏移类型选择部6112的构成的框图。
使用偏移类型选择部6112具备偏移类型变换表选择部6117、第1偏移类型变换表存储部6118、第2偏移类型变换表存储部6119。
偏移类型变换表选择部6117根据参数条件选择第1偏移类型变换表存储部6118具备的变换表、或者第2偏移类型变换表存储部6119具备的变换表。在上述的示例中,801A是第1偏移类型变换表存储部6118具备的变换表,801B对应于第2偏移类型变换表存储部6119具备的变换表。
图42(b)是表示使用偏移类型选择部的其他构成的框图。
使用偏移类型选择部6112’具备偏移类型变换表选择部6117’、边缘偏移类型以及带偏移类型变换表存储部6118’、水平边缘偏移类型以及带偏移类型变换表存储部6119’。
(类别分类部624的构成)
图43是表示类别分类部624的构成的框图。
类别分类部624由自适应边缘偏移类别分类部6241、使用边缘偏移类别选择部6242、边缘偏移类别分类部6243、自适应带偏移类别分类部6244、使用带偏移类别/类别幅度选择部6245、带偏移类别分类部6246构成。
类别分类部624根据参数条件以及偏移类型,将各像素分类为类别。在偏移类型表示边缘偏移的情况下,通过自适应边缘偏移类别分类部 6241对像素进行分类,在偏移类型为带偏移的情况下,在自适应带偏移类别分类部6244中对像素进行分类。
自适应边缘偏移类别分类部6241是根据参数条件,自适应地将像素分类为类别的单元,具备使用边缘偏移类别选择部6242和边缘偏移类别分类部6243。使用边缘偏移类别选择部6242选择要使用的类别的种类。使用边缘偏移类别选择部6242将像素值的分类方法输入到边缘偏移类别分类部6243。具体而言,输入对像素值进行分类时临时导出的中间值EdgeType的导出方法、和用于从EdgeType导出class_idx而使用的变换表。使用图26(a)、图26(b)来说明中间值EdgeType的导出方法的示例,将其称为基本边缘分类方法。也可以使用用图33后述的边缘分类方法。如上所述,参数条件之一是层次,进行选择,使得层次浅时所使用的类别与层次深时所使用的类别相比成为较大的数。对于用于从EdgeType导出class_idx而使用的变换表,1001A、1001B成为示例。此外,根据颜色分量(component)来切换边缘导出方法的方法也是恰当的。在该情况下,恰当的是:对于亮度,采用使用水平、垂直、倾斜方向的边缘分类方法的基本边缘分类方法,对于色差,采用水平边缘分类方法,在水平边缘分类方法中,从对象像素来看,将为了削减行存储器而由边缘分类所使用的参考像素的范围限定在水平方向。边缘偏移类别分类部6243基于所给出的分类方法、和用于从EdgeType导出class_idx而使用的变换表,对像素进行分类。
自适应带偏移类别分类部6244是根据参数条件,自适应地将像素分类为类别的单元,具备使用带偏移类别/类别幅度选择部6245和带偏移类别分类部6246。使用带偏移类别/类别幅度选择部6245将像素值的分类方法输入到带偏移类别分类部6246。具体而言,输入作为将像素值分类为中间值时所使用的量化幅度的类别幅度、和用于从中间值导出class_idx而使用的变换表。如已经说明的那样,参数条件之一是层次,层次浅时所使用的类别的幅度小于层次深时所使用的类别的幅度。带偏移类别分类部6246根据所输入的类别幅度、和用于从中间值导出class_idx而使用的变换表,将像素值分类为类别。作为输入的类别幅度,可以不是类别幅度本身,而是与类别幅度对应的整数。例如在将1<<BoRefBit32设为类别幅度 的情况下,可以使用用于根据该以2为底的对数即用于像素量化的比特数BoRefBit32、像素的比特深度而求出用于对像素进行量化的比特数的值,来代替类别幅度,例如,若BoRefBit32=PIC_DEPTH-5,则使用5。
如此,根据参数条件来自适应地对编码数据进行解码,并且进行像素的类别分类。
如上所述,在本实施方式中,根据处理对象的QAOU的层次的深度,改变类别的分类数。更详细而言,在处理对象的QAOU的层次的深度较大的情况下,与较小的情况相比,分类为较少的类别数。
一般,需要的存储器量是存储器量=偏移的数据长×类别数×QAOU数,所以通过减少类别数,能够削减存储器的使用量。
此外,在较深的层次中,因为QAOU的面积变小,并且QAOU内的像素值的特性接近一样,所以即使减少类别数,偏移的效果也几乎不发生变化。
此外,在本实施方式中,根据处理对象的QAOU的层次的深度,改变偏移的精度。更详细而言,在处理对象的QAOU的层次的深度较大的情况下,与较小的情况相比,偏移的精度下降。据此,减少了处理对象的QAOU的层次的深度较大时的码量。
在较深的层次的QAOU中,所包含的像素数变少,所以QAOU整体来看的量化误差与上位的层次相比变小。因此,在较深的层次中,即使降低偏移的精度,偏移的效果也几乎不发生变化。
(运动图像编码装置2’)
接下来,参考图30、31来说明通过对编码对象图像进行编码从而生成编码数据#1的运动图像编码装置2’。运动图像编码装置2’与运动图像编码装置2同样地,其一部分包含H.264/MPEG-4.AVC中所采用的方式、VCEG(Video Coding Expert Group,视频编码专家组)中的共同开发用编解码器即KTA软件中所采用的方式、作为其后继编解码器的TMuC(TestModel under Consideration,考虑中的测试模型)软件中所采用的方式、以及HM(HEVCTestModel,高效率视频编码测试模型)软件中所采用的技术。
此外,运动图像编码装置2’设置有自适应偏移滤波器80’来代替运 动图像编码装置2中的自适应偏移滤波器80,这点不同,其他构成相同。
(自适应偏移滤波器80’)
接下来,参考图30来说明自适应偏移滤波器80’。图30是表示自适应偏移滤波器80’的构成的框图。如图30所示,自适应偏移滤波器80’是包括自适应偏移滤波器信息设定部81’以及自适应偏移滤波器处理部82’的构成。
此外,如图30所示,自适应偏移滤波器信息设定部81’是包括偏移计算部811、偏移移位部816、偏移裁剪部812、偏移信息选择部813、以及偏移属性设定部815的构成。
(偏移计算部811)
偏移计算部811对于对象处理单位(例如LCU)中包含的给定分割深度为止的全部QAOU,计算针对于处理对象的QAOU的层次相应地存在的全部偏移类型以及全部类别的偏移。这里,偏移类型以及类别与运动图像解码装置1的说明中所说明的相同。
偏移计算部811将由通过上述处理所计算出的偏移、偏移类型、类别、以及表示QAOU的分割结构的QAOU结构信息构成的偏移信息提供给偏移裁剪部812。
(偏移裁剪部812)
偏移裁剪部812通过以下所示的裁剪处理1、裁剪处理2的任一种处理对从偏移计算部811提供的偏移进行裁剪处理。
(裁剪处理1)
偏移裁剪部812通过将从偏移计算部811提供的各偏移裁剪为例如-8至7的值,从而用4比特来表现各偏移。被裁剪后的各偏移提供给偏移信息选择部813。与运动图像解码装置1同样地,根据图像的比特深度和偏移的比特深度来设定要裁剪的比特宽度。
如此,通过对各偏移进行裁剪,从而能够削减用于存储各偏移的存储器(未图示)的存储器大小。此外,因为能够削减编码数据#1中包含的偏移的码量,所以能够实现编码效率的提高。此外,因为抑制了加上过度的偏移,所以保证了适当的画质。
(裁剪处理2)
此外,偏移裁剪部812也可以构成为按照偏移类型将从偏移计算部811提供的各偏移的裁剪范围设定为不同的值。
例如,在偏移类型为边缘偏移的情况下,将偏移的比特数设为8比特,在偏移类型为带偏移的情况下,将偏移的比特数设为4比特。更一般而言,在将偏移类型为边缘偏移时的偏移的比特数设为N比特,将偏移类型为带偏移时的偏移的比特数设为M比特时,按照满足N>M的方式决定偏移的比特数。
如此按照偏移类型,使偏移的比特数不同,从而不会对用于存储各偏移的存储器要求过度的存储器大小,能够实现编码效率的提高。
另外,在用于限制偏移能够取的值的阈值th大于2m-1并且为2m以下时,作为用于对该偏移进行编码的编码方式,能够使用m比特的固定长编码。更具体而言,可以采用将最大值设为th的Truncated unary编码、Truncated Rice编码。
此外,将上述裁剪处理1以及2进行组合而得到的裁剪处理也包含在本实施方式中。此外,自适应偏移滤波器80也可以采用不具备偏移裁剪部812的构成。
此外,偏移裁剪部812,与偏移的精度相匹配,根据处理对象的QAOU的层次的深度,切换裁剪范围。具体而言,考虑在处理对象的QAOU的层次的深度小于阈值时偏移的精度为nA比特,在处理对象的QAOU的层次的深度为阈值以上时偏移的精度为nB比特的情况。此时,若处理对象的QAOU的层次的深度小于阈值,则偏移裁剪部812将裁剪范围设为-2nA/2~2nA/2-1。此外,若处理对象的QAOU的层次的深度为阈值以上,则将裁剪范围设为-2nA/2~2nA/2-1的基础上,将低位的(nA-nB)比特设为“0”。据此,能够通过偏移裁剪部812,对使用被裁剪处理后的偏移进行处理的偏移信息选择部813,使其不考虑偏移的精度进行处理。
(偏移信息选择部813)
偏移信息选择部813决定RD成本(Rate-Distorsion cost)变得更小的偏移类型、类别、偏移的组合、以及与其对应的QAOU分割结构,并且将表示所决定的偏移类型、类别、偏移、以及与其对应的QAOM分割结构的QAOU信息提供给可变长码编码部22。此外,偏移信息选择部813按 每个QAOU将所决定的偏移提供给自适应偏移滤波器处理部82。
若参考图31来进一步具体地说明偏移信息选择部813的处理,则如下所述。
图31是表示对于QAOU索引为“x”的QAOU计算针对各个偏移类型的平方误差的概要的图。如图31所示,偏移信息选择部813对于全部QAOMU,计算针对各个偏移类型的平方误差。而且,将所计算出的平方误差成为最小的偏移类型作为该QAOU的偏移类型。据此,对于全部QAOMU(QAOMU编号0~340),决定偏移类型。
接下来,偏移信息选择部813计算使分割深度为0时的RD成本和使分割深度为1时的RD成本。具体的计算方法,如上述参考图18所说明的那样。
(自适应偏移滤波器处理部82’)
自适应偏移滤波器处理部82’对对象QAOU中的已去区块解码图像P_DB的各像素加上从偏移信息选择部813提供的偏移。自适应偏移滤波器处理部82’将对包含在已去区块解码图像P_DB中的全部QAOU进行处理而得到的图像作为偏移已滤波解码图像P_OF来输出。另外,自适应偏移滤波器处理部82’的构成与自适应偏移滤波器处理部62’相同,所以这里省略说明。
此外,也可以使用自适应裁剪类型。即,作为偏移类型之一,可以设置自适应裁剪(AC)类型。在该情况下,偏移类型成为EO、BO、AC这3种。对于自适应裁剪类型(AC),不使用偏移,而使用下限值c1和上限值c2的裁剪来补正像素值。作为下限值c1以及上限值c2的示例,例如,可以列举c1=16、c2=235。
通过使用自适应裁剪类型,不需要偏移的编码处理、用于保持许多偏移的存储器。另外,在不使裁剪的下限值以及上限值为固定值而是自适应地给出的情况下,对下限值和上限值进行编码即可。该情况下,可以优选分别对自适当的固定值的差分进行编码,例如下限值对自16的偏移进行编码,上限值对自235的偏移进行编码。尤其是因为上限值成为较大的值,所以通过这种方法,不会降低编码效率。
(附注事项2)
此外,如上所述,根据QAOU的层次的深度,也可以是指根据QAOU的大小。即,可以根据QAOU的大小,使SAO的类型数、类别数、偏移精度不同。
例如,可以构成为:在QAOU的大小不足N×N像素的情况下,与QAOU的大小为N×N像素以上的情况相比,进一步限制SAO的类型数、类别数、以及偏移精度中的一种或多种。作为N的具体例,例如可以列举N=64(LCU的大小)。
此外,作为SAO的类型数的限制,例如,可以列举将EO限制为水平以及垂直类型的、使BO为1种的(变换表802C)、仅使用EO不使用BO的(变换表802A)、仅使用水平类型的EO以及BO的任一个的(变换表801B、变换表802D)等。在偏移信息解码部611中除了使用括弧内所示的变换表之外,对于SAO的类别数的限制、以及偏移精度的限制,可以利用与上述的实施方式相同的方法进行。
如此,通过限制SAO的类型的种类、类型数、类别数、以及偏移精度,能够削减存储器的使用量、减轻处理负荷。尤其在将类型的种类限制为BO的情况下,或者在将EO限制为水平以及垂直类型的情况下,能够减轻编码装置以及解码装置的类别分类部的处理负荷。此外,在限制类型数的情况下,能够省略用于限制最合适的类型的计算成本,所以能够减轻编码装置的处理负荷。通过将类型的种类限制为EO、限制类别数以及偏移精度,能够削减用于蓄积偏移的存储器的使用量。此外,通过将类型的种类限制为水平类型的EO以及BO,能够削减用于保持用于类别分类的参考像素的行存储器等的临时存储器,此外,能够缩短等待参考像素的解码的期间的延迟。另外,对于削减存储器的使用量,与限制EO的类别数相比,限制BO的类别数更为有效。
这种限制,可以通过图41~图43所示的单元的构成,在将参数条件设为QAOUN的大小的情况下,根据参数条件自适应地改变偏移信息解码部611、类别分类部624的动作来实现。
(附注事项3)
此外,可以采用如下构成:使对于亮度值加上偏移的QAOU(以下也称为亮度单位)的大小、与对于色差加上偏移的QAOU(以下也称为色差单 位)的大小不同,对于色差单位,相比较于亮度单位,进一步限制SAO的类型的种类、类型数、类别数、偏移精度、以及分割的最大层次。
例如,若是YUV形式的图像格式中的4:2:0形式等,对于亮度和色差,分辨率不同,色差的分辨率比亮度低的数据形式,则不需要如亮度那样精细地分割色差。因此,对于色差单位,通过限制SAO的类型的种类、类型数、类别数、偏移精度、以及分割的最大层次,从而能够削减存储器的使用量、减轻处理负荷。另外,例如,可以通过使SAO的树结构的最大深度比亮度单位变浅,来进行色差单位的最大层次的限制。
这种限制,可以通过利用图41~图43所示的单元的构成,在将参数条件设为QAOUN的大小的情况下,根据参数条件来自适应地改变偏移信息解码部611、类别分类部624的动作来实现。
尤其在对于亮度和色差都进行SAO处理的情况下,需要具备按每个颜色分量保持用于类别分类的参考像素的行存储器等的临时存储器。亮度成分与色差成分相比,重要度较低,所以通过使参数条件为色差成分,将类型的种类限制为水平类型的EO以及BO,从而能够削减对于色差成分的行存储器。在该情况下,在偏移信息解码部611中使用变换表801B、变换表802D等变换表。
此外,使参数条件为色差成分,与亮度成分相比,使偏移的精度变小,也尤其有效。例如,将亮度成分的偏移的精度设为
SAO_DEPTH=MIN(PIC_DEPTH、AY)
移位值=PIC_DEPTH-MIN(PIC_DEPTH、AY)
对于色差成分的情况,如下那样
SAO_DEPTH=MIN(PIC_DEPTH、THC)
移位值=PIC_DEPTH-MIN(PIC_DEPTH、AC)
求出偏移的精度、移位值的情况下,作为控制精度的变量AY、AC,使用AY>AC是恰当的。例如,设AY=10或者9、AC=8。在该情况下,相比较于色差成分,亮度成分的偏移的精度较大。对于移位值,相比较于色差成分,亮度成分的移位值成为较小的值。
(附注事项4)
此外,可以构成为:在CU的量化参数QP的值(QP值)为阈值以上的 情况下,限制SAO的类型的种类、类型数、类别数、偏移精度、以及分割的最大层次。QP值可以采用图片的初期的QP值,在SAO的处理对象QAOU沿着LCU或CU的边界的情况下,也可以采用与QAOU的左上坐标或者中心坐标对应的位置的CU的QP值。
QP值的值越高,预测图像的画质变得越低,详细的分类以及偏移的补正变得困难,所以即使限制SAO的类型的种类、类型数、类别数、偏移精度、以及分割的最大层次,对画质产生的影响也较小。因此,在QP值为阈值以上的情况下,若采用对SAO的类型数、类别数、偏移精度、以及分割的最大层次进行限制的构成,则不会对画质产生影响,能够削减存储器的使用量、减轻处理负荷。
这种限制,通过图41~图43所示的单元的构成,在将参数条件设为QP时,能够根据参数条件来自适应地改变偏移信息解码部611、类别分类部624的动作。
(附注事项5)
此外,对于特定类型的图片,例如B图片、非参考图片(IDR图片),也可以是限制SAO的类型的种类、类型数、类别数、偏移精度、以及分割的最大层次的结构。
对于I图片、P图片,因为该图片的画质对之后的图片产生较大的影响,所以需要将SAO的精度保持得较高。另一方面,对于这之外的图片,因为不会对之后的图片产生较大的影响,所以对于这些图片(B图片、IDR图片),也可以限制SAO的类型的种类、类型数、类别数、偏移精度、以及分割的最大层次。据此,能够削减存储器的使用量、减轻处理负荷。
这种限制,通过图41~图43所示的单元的构成,在将参数条件设为图片的种类的情况下,可以根据参数条件来自适应地改变偏移信息解码部611、类别分类部624的动作。
(附注事项6)
此外,也可以是根据画面上的QAOU的位置,对SAO的类型数、类别数、偏移精度、以及分割的最大层次进行限制的结构。
例如,在画面的周缘,也可以对SAO的类型数、类别数、偏移精度、以及分割的最大层次进行限制。
因为用户容易关注画面的中央附近,所以画面的中央附近的画质下降时,主观画质直接降低,而在画面的周缘,即使画质下降,主观画质也不会如画面中央附近那样降低。
此外,若不采用需要超过画面端的采样点的SAO类型,则能够减轻边界判断处理。
这种限制,通过图41~图43所示的单元的构成,在将参数条件设为QAOU的位置时,可以根据参数条件来自适应地改变偏移信息解码部611、类别分类部624的动作。
〔实施方式4〕
若基于图32来说明本发明的其他实施方式,则如下所述。在本实施方式中,与上述实施方式的不同点是,根据像素值来切换EO和BO。
本申请发明者等发现了如下特性:在像素中,对于中间灰度域,相比较于BO,EO一方的效果较高,对于其他的值域(低像素值域·高像素值域),BO一方的效果较高。因此,在本实施方式中,对于低像素值域以及高像素值域,采用BO,对于中间灰度域,采用EO。
具体而言,参考图32来进行说明。图32是用于说明根据像素值来切换EO和BO的构成的图,(a)是用于说明根据像素值来切换EO和BO的构成的概要的图,(b)是用于说明具体的切换值的图,(c)是表示偏移信息存储部621中存储的表存储器的内容的图。
如图32(a)所示,在本实施方式中,在像素值(亮度值)为0附近、以及255附近时使用BO,在其他值域时使用EO。即,根据像素值对SAO类型进行分类,在像素值为0附近、以及255附近时加上与像素值相应的偏移,在其他值域时加上与边缘的种类相应的偏移。
本申请发明者等的实验结果,EO和BO在所使用的像素值的范围分别发现了偏差。即,知道了EO在中间灰度域较多。这意味着在低像素值域以及高像素值域,与边缘的种类相比,像素值具有对误差的影响较大的倾向。
因此,在本实施方式中采用如下构成,即:根据像素值域来决定EO和BO,对于一种SAO类型,利用EO以及BO这两者中的误差补正效果高的部分。据此,能够使编码效率提高。此外,能够使SAO类型数、总 类别数减少,所以能够削减存储器的使用量,并且减轻处理负荷。
接下来,更详细地说明本实施方式。首先,在本实施方式中,与上述实施方式不同,对于“sao_type_idx”使用1~4,如下地进行定义。
·“sao_type_idx”=1:(BO_EO_0)相当于实施方式1的EO_0+BO
·“sao_type_idx”=2:(BO_EO_1)相当于实施方式1的EO_1+BO
·“sao_type_idx”=3:(BO_EO_2)相当于实施方式1的EO_2+BO
·“sao_type_idx”=4:(BO_EO_3)相当于实施方式1的EO_3+BO
此外,不使用实施方式1中的EO_0~3、以及BO_0、1。
而且,如图32(b)所示,类别分类部624使用图29的变换表1301中的BoTbl[BO_1]进行类别分类。而且,若像素值为max的1/4以下、以及max的3/4以上,则使用变换表1301来进行类别分类。
此外,如像素值为max的1/4与3/4之间,则根据上述实施方式中所说明的EO_0~3来判断边缘类型,进行类别分类。
据此,类别分类部624能够根据像素值切换BO和EO来对类别进行分类。
此外,偏移计算部811利用与上述实施方式中所说明的偏移的计算方法相同的方法计算偏移。但是,在本实施方式中,因为偏移类型的种类数是4种,所以使这点不同来进行计算。
此外,偏移信息存储部621中存储的表存储器2101,如图32(c)所示,将QAOU索引和偏移类型和该偏移类型中能够选择的各类别所相关的偏移的具体值相互建立关联地进行存储。
另外,在使用兼具有EO和BO的特征的偏移类型的情况下,可以构成为:首先,使用EO进行类别分类,对于特定的类别(边缘平坦的类别),使用BO进一步进行类别分类。此外,也可以构成为直接一起使用实施方式中所记载的EO以及BO。进而,也可以构成为根据上述实施方式中所记载的条件(QAOU的层次的深度是否小于阈值),改变是否设置兼具有EO和BO的特征的偏移类型,来削减类型数、类别数。
〔实施方式5〕
若基于图33、34、42来说明本发明的其他实施方式,则如以下所述。在本实施方式中,与上述实施方式的不同点是,在EO的类别分类中,将 边缘的判断中所使用的像素限定为仅是存在于判断对象的像素的水平方向的像素。
在上述实施方式中,对于存在于对象像素的上或者下方向的像素,也用在了边缘的判断中。因此,对于存在于对象像素的上方向的像素(完成偏移处理的像素),需要用于预先保持该像素的偏移处理前的像素值的行缓冲器。
因此,若将用于边缘的判断的像素限定于存在于对象像素的水平方向的像素,则不需要向上方向的参考,所以能够削减行缓冲器部分的存储器的使用量。此外,因为不需要上方向的边界判断(画面端等),所以也可以削减处理量。
此外,在仅使用存在于水平方向的像素的情况下,可以沿用上次为止的处理结果,所以能够进一步削减处理量。参考图33(a)进行说明。图33(a)示出存在于水平方向的像素,x0~x3是各个像素的像素值。
首先,对于像素值x1的像素,与两邻的差分如以下所示。
s1=sign(x1-x0)-sign(x2-x1)
接下来,对于像素值x2的像素,按以下的方式计算与两邻的差分。
s2=sign(x2-x1)-sign(x3-x2)
这里,s1、s2是用于x1、x2中的边缘的类别分类的值。
如此,在计算s2的情况下,再利用由s1所使用的sign(x2-x1)。因此,能够相应地减少处理量。
接下来,说明本实施方式的详细情况。在本实施方式中,将EO的类型设为2种。即,仅在“sao_type_idx”=1、2的情况下,设为边缘偏移(EO)。而且,在“sao_type_idx”=1(EO_0)时,与对象像素的左右像素进行比较来导出边缘的种类(图33(b)),在“sao_type_idx”=2(EO’_0)时,与处于在对象像素的左右离开了2像素的位置的像素进行比较来导出边缘的种类(图33(c))。
另外,在“sao_type_idx”=3、4的情况下,成为带偏移(BO)。这可以在上述实施方式1中将“sao_type_idx”=5、6的情况分别看做3、4。
上述“sao_type_idx”=2的情况下,使用从对象像素的两邻进一步离开了1像素的像素来判断边缘的种类,是为了使角度相对于水平较浅的边 缘的检测变得容易。如图33(d)所示,在将对象像素的两邻的像素作为比较对象的情况下,存在像素值的差分较小,不被判断为边缘的情况。即使在这种情况下,若取得与隔着1像素而相邻的像素的差分,则能够检测角度相对于水平较浅的边缘。
此外,也可以不使用与对象像素的两邻的差分,而是在左侧使用与相邻的像素的差分,在右侧使用与隔着1像素而相邻的像素(图34(a))的差分,还可以采用相反的情况(图34(b))。这在参考像素处于画面的端部的情况尤其有效。
进而,也可以构成为限定仅使用水平方向的像素的情况。例如,可以构成为在对B图片、非参考图片等其他图片的影响较小的图片的情况下,仅参考水平方向的像素,在这以外的情况下,与上述实施方式1相同,也可以构成为在画面端、切片边界附近等仅参考水平方向的像素,此外与上述实施方式相同。若采用这种方式,则能够削减存储器的使用量,并且能够削减处理量。此外,因为不进行上方向的参考,所以在画面端、切片边界附近的边界的判断处理也能够减轻。
此外,可以构成为以图片、区块单位利用标志明确地进行指定。
例如,在水平边缘(图34(c)))较多的情况下,若采用上述实施方式中所记载的方法进行处理,则能够防止性能下降。
此外,可以根据上述实施方式中所记载的条件(QAOU的层次的深度是否小于阈值),来变更是否采用仅使用存在于水平方向的像素的结构。进而也可以构成为:仅限于上述实施方式中所记载的并用BO和EO的情况,对于EO仅使用存在于水平方向的像素。
此外,可以根据与存在于水平方向的像素的差分是否大于(或者小于)阈值,来导出边缘的种类。具体而言,可以根据以下的式子对类别进行分类。
Sign(z)=+1(z>th时)
Sign(z)=0(-th≤z≤th时)
Sign(z)=-1(z<-th时)
这里,th是具有预先决定的值的阈值。
此外,在表示色差的像素值的情况下,对于边缘偏移,也可以采用仅 使用存在于水平方向的像素的结构。
仅在水平边缘分类方法仅是一种的情况下,例如,仅图33(b)的情况下,也能够获得限定于水平的效果。如上所述,在组合多种不同的水平边缘分类方法的情况下,与使用一种水平边缘分类方法例如图33(b)的情况相比,能够进行更细致的边缘分类。另外,使用多种水平边缘分类方法的情况的组合,如图33(b)、(c)所示,不限于变更对象像素与参考像素的距离来使用两个示例的情况,也可以是使用两个用于导出边缘种类的情况的阈值的结构。例如,可以具备上述阈值th为0的情况和为1的情况这两种水平边缘分类方法。
限定仅使用水平方向的像素的情况的构成,可以根据实施方式1的图41~图43所示的单元的构成,通过根据参数条件自适应地变更偏移信息解码部611、类别分类部624的动作来实现。例如,在图41的偏移信息解码部611中,根据参数条件,将由使用偏移类型选择部6112选择的偏移类型的种类仅限定于水平边缘分类方法,在偏移类型解码部6113中对所限定的种类的偏移类型进行解码。
如图42(b)所示,偏移类型变换表选择部6117根据参数条件选择边缘偏移类型以及带偏移类型存储部6118’具备的变换表、或者水平边缘偏移类型以及带偏移类型变换表存储部6119’具备的变换表。在一个示例中,在颜色分量为亮度的情况下,选择边缘偏移类型以及带偏移类型存储部6118’具备的变换表,在颜色分量为色差的情况下,选择水平边缘偏移类型以及带偏移类型变换表存储部6119’具备的变换表。
对于类别分类部624,在内部的使用偏移类型选择部6112中根据参数条件选择仅限定于水平边缘分类方法的边缘分类方法,在边缘偏移类别分类部6243中对像素进行分类。在一个示例中,在颜色分量为亮度的情况下,选择基本边缘分类方法,在颜色分量为色差的情况下,选择水平边缘分类方法。
〔实施方式6〕
若基于图35~37来说明本发明的其他实施方式,则如下所述。在本实施方式中,与上述实施方式的不同点是:在色差的像素值的中央附近,提高偏移精度或者细化类别的分割。
在图像中具有非彩色附近的误差在主观画质中容易显眼的特性。在各色差的像素值中,所谓非彩色,在值域的中央、比特深度为8比特的情况下,是指像素值128的像素的颜色。因此,在本实施方式中,在BO的情况下,对于色差的像素值128附近,提高偏移精度、或者使用更小的类别幅度来细化类别分割。另外在以下,对于色差的像素值将非彩色附近的值域称为非彩色值域。
据此,能够提高非彩色值域的偏移精度,所以在非彩色值域的偏移补正的性能提高。因此,在非彩色值域与原图像的误差减少,能够提高主观画质。此外,在非彩色值域中,通过相较于其他值域较窄地分割类别的分割,能够更精密地进行在非彩色值域的偏移补正。据此,能够减少与原图像的误差,能够提高主观画质。
另外,在本实施方式中,进行了非彩色值域的偏移精度的提高、以及类别分割的细分化,但是不局限于此,只要对会影响主观画质的范围的值,使类别分割细分化或者提高偏移精度,就能够提高主观画质。此外,在亮度的像素值中,对于在主观画质上画质劣化容易显眼的像素值域,同样地提高偏移精度、或者使类别分割细分化的构成,也能够取得同样的效果。
首先,参考图35来说明提高偏移的精度的情况。图35是表示提高偏移的精度的情况的概要的图。如图35所示,在提高偏移的精度的情况下,使色差的像素值128附近的偏移的精度为高精度,使这以外的值域的偏移的精度为低精度。
此外,偏移信息存储部621对于偏移为高精度的值域的偏移,确保nB比特(例如nB=8)的存储区域,对于偏移为低精度的值域的偏移,确保nA比特(例如nA=6)的存储区域。另外,若存储区域有富余,则也可以统一为nB比特。这种情况下,实现变得容易。
此外,偏移裁剪部812在偏移为高精度的值域和偏移为低精度的值域中切换裁剪范围。例如,对于偏移为低精度的值域,将裁剪范围设为-2nA/2~2nA/2-1,对于偏移为高精度的值域,将裁剪范围设为-2nB/2~2nB/2-1。
接下来,参考图36来说明使类别分类细分化的情况。图36是表示使类别分类细分化的情况的概要图,(a)示出变换表,(b)~(d)是用于说明类别分割的图。
而且,在使类别分类细分化的情况下,在偏移信息存储部621中的色差用的表存储器中,根据类别分类数来确保相当于“sao_type_idx”=5的偏移存储区域。
此外,在类别分类部624中,在BO的情况下,在由像素值导出类别时,判断对象像素的像素值是否包含非彩色值域。具体而言,例如使用图36(a)所示的变换表2501的任一个来进行类别分类。
在变换表2501中,通过“class_idx=BoTbl[sao_type_idx][pix[x]/4]”进行类别分类,相较于图29的变换表1301、1302,对于更细致的像素值分配了类别。
此外,在变换表2501的“BoTbl[BO_0][pix/4](a)”中示出如下示例:将类别分为16个,对非彩色值域进行细分化,使中间灰度域(pix/4=16~21,42~47)变得粗糙(图36(b))。此外,在“BoTbl[BO_0][pix/4](b)”中示出如下示例:将类别分为16个,并且缩小有偏移的值域,维持类别数和类别幅度的最大值的同时使非彩色值域细分化(图36(c))。此外,在“BoTbl[BO_0][pix/4](c)”中示出如下示例:将类别分为18个,使非彩色附近的值域细分化,并且也维持了类别幅度的最大值(图36(d))。此外,若列举其他示例,则可以使中问灰度域的类别幅度比非彩色值域的类别幅度相对变大,通过减少整体的类别数,来如以往地保持非彩色值域的补正精度的情况下,削减偏移存储区域。这是因为中间灰度域中的偏移补正的使用频度低于非彩色区域所以能够实现。
此外,也可以采用并用偏移的精度提高、和非彩色值域中的类别分类的细分化的结构。
此外,可以构成为:在表示亮度的像素值和表示色差的像素值,使偏移的精度不同,即,使对于表示色差的像素值的偏移的精度比对于表示亮度的像素值的偏移的精度变得粗糙。
(附注事项7)
此外,可以构成为:向靠近非彩色(=色差的像素值128)的方向进行偏移的加法运算。即,偏移加法部626可以在像素值为128以上和不足128使要加上的偏移的符号相反来进行处理。例如,在偏移a时,可以设为x’=x+a(x<128),x’=x-a(x≥128)。
此外,在加上偏移后的像素值要跨越128的情况下,可以构成为用128进行裁剪。例如,可以在像素值为“126(绿色一侧)”、偏移为“3”时,不是直接加上偏移x=126+3=129,而是设为x=clip(126+3,0,128)=128。这里,clip(x,y,z)表示将x的值限制于y≤x≤z的处理。
此外,例如,也可以在像素值为“129(红色一侧)”、偏移为“-4”时,不是直接加上偏移x=129+(-4)=125,而是设为x=clip(129+(-4),128,255)=128。
(附注事项8)
此外,可以构成为:在色差中,分为中间灰度域和其他值域来加上偏移。例如,如图37(a)所示,可以考虑非彩色的像素值来进行类别分类。在图37(a)所示的示例中,在“sao_type_idx”=5(BO_0)的情况下,将类别分配于中间灰度域,在“sao_type_idx”=6(BO_1)的情况下,将类别分配于中间灰度域以外的值域。
此外,如图37(b)所示,也可以在夹着非彩色的像素值的2个值域被非对称地进行类别分类。在图37(b)所示的示例中,类别的幅度与图37(a)所示的示例相同而划分的位置不同。
此外,如图37(c)、(d)所示,也可以按每个色差的通道(Cr以及Cb),使用不同的类别分类。在图37(c)、(d)所示的示例中,在色差(Cr)和色差(Cb),类别的幅度不同。类别幅度的变更,可以通过如变换表2501那样使类别数细分化来进行。
此外,如图37(e)所示,也可以构成为:对于色差,使BO的类型为一种来进行类别分类。
〔实施方式7〕
若基于图38~40来说明本发明的其他实施方式,则如下所述。在本实施方式中,与上述实施方式的不同点是:不对偏移的值本身进行编码,而是对偏移的值进行预测编码,即,对使用偏移的值和该偏移的值的预测值而计算出的偏移残差进行编码;以及对偏移预测值设置“0”。
一般在SAO中,根据表示区域分类的类别,对偏移进行编码。在没有被分类为该类别的像素(类别为空)的情况下,“0”被编码。通常,附近类别以及附近区域的偏移具有相近的值,所以若将已经解码过的偏移值 作为预测值对差分进行编码,则能够削减码量。但是,在类别为空的情况下,反而码量增加。
因此,在本实施方式中,通过在偏移的预测值中包含“0”,从包含“0”的多个预测值候补中选择一个预测值,对预测差分进行编码,从而减少偏移的码量。
据此,即使类别为空,也存在被分类为该类别的像素,即使在偏移被编码的情况下,也可以分配适当的预测值,所以能够通过预测编码来削减码量。
参考图38来说明本实施方式所涉及的偏移信息解码部611’的构成。偏移信息解码部611’是用于代替图22的偏移信息解码部611而设置的,是包括偏移残差解码部651、偏移恢复部652、预测值导出部653的结构。此外,预测值导出部653是包括预测候补标志解码部661、固定预测值计算部662、编码预测值计算部663、以及预测值候补选择部664的结构。
偏移残差解码部651从编码数据#1所包含的QAOU信息解码偏移残差,并且将所解码的偏移残差提供给偏移恢复部652。
预测值导出部653导出偏移的预测值。预测候补标志解码部661从QAOU信息解码预测候补标志,并且将所解码的预测候补标志提供给预测值候补选择部664。另外,预测候补标志解码部661也可以构成为:在以前所解码的偏移值为“0”的情况下,不解码候补选择标志。”
固定预测值计算部662将不存在被分类为该类别的像素的情况下所编码的偏移即固定值(这里是“0”)作为预测值进行计算,并且提供给预测值候补选择部664。
编码预测值计算部663从偏移信息存储部621读出已经被解码的偏移,计算预测值,并且提供给预测值候补选择部664。
预测值候补选择部664根据预测候补标志,从由固定预测值计算部662所提供的预测值以及由编码预测值计算部663所提供的预测值中选择要提供给偏移恢复部652的预测值。
偏移恢复部652根据下式从由预测值候补选择部664所提供的预测值(pred)和由偏移残差解码部651所提供的偏移残差(sao_offset)恢复偏移(Offset)。
“Offset”=“pred”+“sao_offset”
这里,对于在存在没有被分类的像素的类别(空的类别)的情况下,码量增加的理由,参考图39进行说明。图39是表示存在空的类别的情况的概要图。如图39所示,对于不是空的类别,该类别的偏移被编码。而且,按每个类别,将上次的偏移作为预测值,对该预测值与偏移的差分进行编码。但是,若存在空的类别,则预测值变为“0”,差分值变大。据此,码量增大。
因此,在本实施方式中构成为,通过预测候补标志,可以从“0”和“紧接之前的(0以外的)偏移”选择预测值。
参考图40来说明使用预测候补标志的情况的句法。图40是表示使用预测候补标志的情况的句法2901的图。如图40所示,增加预测候补标志“sao_pred_flag”,若“sao_pred_flag”=0则将紧接之前所解码的(不是0的)偏移作为预测值offsetp,若“sao_pred_flag”=1、或者最初的偏移,则设为预测值offsetp=0。另外,在句法2901中,“sao_offset_delta”表示与预测值的差分d,成为“sao_offset[sao_curr_depth][ys][xs]”=“offsetp+d”。
另外,也可以构成为根据偏移类型而不使用预测候补标志。例如可以构成为,在EO的情况下不使用预测候补标志,在BO的情况下使用预测候补标志。这是因为对于BO,根据像素值的分布,常常发生空的类别。
此外,也可以构成为根据偏移类型来决定是否进行预测编码本身。例如,可以构成为:在EO的情况下进行预测编码,在BO的情况下不进行预测编码。
(附注事项9)
此外,在上述实施方式3~7中,也可以使用帧内预测模式,以LCU单位,对边缘偏移的类别进行估计、限制、排序。
被认为作为SAO的EO类型而选择的边缘方向与帧内预测模式具有相关。因此,若参考处于与SAO的QAOU对应的位置的CU的帧内预测模式,则可以利用于EO类别的选择。
例如,根据帧内预测模式,可以估计并决定EO类别,限制EO类别的候补,或者按照被选择的可能性由高到低的顺序排列EO类别的顺序(索引)。
这在SAO的各层次的QAOU的大小为与CU相同的大小的情况下,例如分割图像使得SAO的QAOU的最大大小变得与LCU大小相等的情况下,尤其能够容易地实现。
(附注事项10)
在以往的自适应偏移滤波器中,因为偏移的种类(类型、类别)较多,所以可能需要较大的存储器大小。因此,在本实施方式中,实现了能够抑制存储器大小的增大的同时减少块失真的图像滤波器装置等。
本发明所涉及的图像滤波器装置是一种对由多个单位区域构成的输入图像的各像素值加上从多个偏移中所选择的偏移的图像滤波器装置,其特征在于,具备:偏移决定单元,其按每个单位区域,决定对各单位区域中所包含的像素的像素值加上的偏移;和滤波器单元,其对该单位区域中所包含的像素的像素值加上由上述偏移决定单元所决定的偏移,其中,上述偏移决定单元在成为偏移的决定对象的单位区域的大小小于给定大小的情况下,从相较于单位区域的大小为给定大小以上的情况限制了能够选择的偏移数的偏移之中,决定对该单位区域中所包含的像素的像素值加上的偏移。
根据上述构成,在成为偏移的决定对象的单位区域的大小小于给定大小的情况下,从相较于单位区域的大小为给定大小以上的情况被限制的偏移之中,决定要加上的偏移。
在单位区域的大小较小的情况下,其中包含的像素数变少,此外,该像素彼此具有相近似的值的可能性较高。因此,在单位区域的大小较小的情况下,即使限制了能够选择的偏移数,给予应用了偏移后的图像的影响也较小。此外,通过限制能够选择的偏移数,能够减少所需要的存储器的容量。
因此,根据上述构成,能够降低给予应用了偏移后的图像的影响,并且削减存储器的使用量。此外,通过能够选择的偏移数变少,能够削减码量,编码效率提高。
为了解决上述课题,本发明所涉及的图像滤波器装置是一种对由多个单位区域构成的输入图像的各像素值加上偏移的图像滤波器装置,其特征在于包括:偏移决定单元,其按每个单位区域,决定对各单位区域中包含 的像素的像素值加上的偏移;和滤波器单元,其对该单位区域中包含的像素的像素值加上由上述偏移决定单元所决定的偏移,其中上述滤波器单元在成为偏移的决定对象的单位区域的大小小于给定大小的情况下,加上精度相较于单位区域的大小为给定大小以上的情况变粗糙的偏移。
根据上述构成,在成为偏移的决定对象的单位区域的大小小于给定大小的情况下,加上精度相较于单位区域的大小为给定大小以上的情况粗糙的偏移。
在单位区域的大小较小的情况下,其中所包含的像素数变少,此外,其像素彼此具有相近似的值的可能性较高。因此,在单位区域的大小较小的情况下,即使使偏移的精度变得粗糙,给予量化误差的影响也较小。因此,给予应用了偏移后的图像的影响也较小。此外,通过使偏移的精度变粗糙,能够减少所需要的存储器的容量。
因此,根据上述构成,能够降低给予应用了偏移后的图像的影响,并且削减存储器的使用量。此外,通过偏移的精度变粗糙,能够削减码量,编码效率提高。
本发明所涉及的图像滤波器装置是一种对由多个单位区域构成的输入图像的各像素值实施自适应偏移(SAO:Sample Adaptive Offset,采样自适应偏移)的图像滤波器装置,具备:偏移决定单元,其按每个单位区域,决定对各单位区域中包含的像素的像素值加上的偏移的种类;和滤波器单元,其对该单位区域中包含的像素的像素值加上与由上述偏移决定单元所决定的偏移的种类相应的偏移,其中上述偏移决定单元对于要加上偏移的对象像素的像素值为最大值以及最小值的附近,将偏移的种类决定为带偏移(BO),对于这以外的值域的像素,将偏移的种类决定为边缘偏移(EO)。
根据上述构成,在实施自适应偏移的情况下,对于像素值为最大值以及最小值的附近的像素应用带偏移,对于这以外的值域的像素应用边缘偏移。
因为在高像素值域以及低像素值域中存在像素值相较于边缘容易对误差造成影响的倾向,所以通过上述构成,误差补正的效率提高,能够提高编码效率。
此外,若在一种类型并用带偏移和边缘偏移,则能够减少自适应偏移 的类型数,能够削减存储器的使用量以及处理量。
另外,在上述构成中,所谓带偏移,是指根据处理对象的像素的像素值的大小,对该处理对象像素的像素值加上多个偏移中的任一个的偏移处理(以下同样)。此外,在上述构成中,所谓边缘偏移,是指根据处理对象的像素的像素值与该处理对象的像素的周边像素的像素值的差分,对该处理对象像素的像素值加上多个偏移中的任一个的偏移处理(以下同样)。
在本发明所涉及的图像滤波器装置中,上述偏移决定单元也可以构成为:对于像素值为从最小值到最大值的四分之一、和从最大值的四分之三到最大值的值域的像素,决定为带偏移,对于这以外的值域,决定为边缘偏移。
根据上述构成,能够明确地区分应用带偏移的像素和应用边缘偏移的像素。
本发明所涉及的图像滤波器装置是一种对输入图像实施自适应偏移(SAO:SampleAdaptive Offset,采样自适应偏移)的图像滤波器装置,其特征在于具备:类别分类单元,其仅参考存在于对象像素的水平方向的像素,来进行用于决定应用边缘偏移(EO)时的类别而进行的边缘判断;和滤波器单元,其在应用边缘偏移(EO)的情况下,加上与上述类别分类单元分类的类别对应的偏移。
根据上述构成,因为在判断边缘时,仅参考水平方向的像素,所以与也参考上方向的像素的情况相比,能够削减所需要的存储器量。此外,因为不需要上方向的边界判断,所以还能够削减处理量。
在本发明所涉及的图像滤波器装置中,上述类别分类单元还可以参考处于在水平方向上从对象像素离开了2像素的位置的像素来进行边缘判断。
根据上述构成,因为参考从对象像素离开了2像素的像素,所以即使在边缘的角度较浅的情况下,也能够检测边缘。
本发明所涉及的图像滤波器装置是一种对输入图像实施自适应偏移(SAO:SampleAdaptive Offset,采样自适应偏移)的图像滤波器装置,其特征在于具备:类别分类单元,其将表示色差的像素值为最大值以及最小值的中央的值的中央值附近的类别的分割幅度相较于其他值域进行细分 化,来决定应用带偏移(BO)时的类别;和滤波器单元,其在应用带偏移(BO)的情况下,加上与上述类别分类单元分类的类别对应的偏移。
根据上述构成,将表示色差的像素值为最大值以及最小值的中央的值的中央值附近的类别的分割幅度相较于其他值域进行细分化来决定应用带偏移(BO)时的类别。
在色差的像素值为中央值时,该像素成为非彩色。非彩色的误差容易被人眼注意,主观画质降低。因此,如上述构成那样,若将中央值附近的类别幅度细分化,则能够对中央值附近的像素细致地设定偏移。据此,能够提高主观画质。
在本发明所涉及的图像滤波器装置中,也可以构成为:上述滤波器单元在上述中央值存在于加上偏移前的像素值与加上偏移后的像素值之间时,将加上偏移后的像素值设为上述中央值。
根据上述构成,不会超过中央值而加上偏移。色差的像素值为中央值的像素是非彩色,在夹着中央值的两侧,人眼能够察觉的颜色发生变化。因此,根据上述构成。通过加上偏移,能够防止人靠近的颜色发生变化。
本发明所涉及的图像滤波器装置是一种对输入图像实施自适应偏移(SAO:SampleAdaptive Offset,采样自适应偏移)的图像滤波器装置,其特征在于具备:滤波器单元,其对于表示色差的像素值为最大值以及最小值的中央的值的中央值附近的像素,加上精度高于其他值域的像素的偏移。
根据上述构成,对于表示色差的像素值为最大值以及最小值的中央的值的中央值附近的像素,加上精度高于其他值域的像素的偏移。
色差的像素值为中央值时,该像素成为非彩色。非彩色的误差容易引起人眼注意,主观画质降低。因此,如上述构成那样,若在中央值附近,提高要加上的偏移的精度,则能够对于中央值附近的像素细致地加上偏移。据此,能够提高主观画质。
本发明所涉及的偏移解码装置是一种对由对输入图像的各像素值加上偏移的图像滤波器所参考的各偏移进行解码的偏移解码装置,其特征在于具备:偏移残差解码单元,其从编码数据解码各偏移残差;预测值导出单元,其根据已经解码的偏移、或者预先决定的值,导出各偏移的预测值; 和偏移计算单元,其根据由上述预测值导出单元所导出的预测值、以及由上述偏移残差解码单元所解码的偏移残差,计算各偏移。
根据上述构成,因为根据残差来解码偏移,所以与直接编码偏移的情况相比,能够减少码量。此外,因为根据已经解码的偏移或者预先决定的值,导出用于求出残差的预测值,所以能够通过仅使用已经解码的偏移,防止差分数据的码量比直接进行编码时变大。
另外,作为预先决定的值,例如可以列举“0”。
本发明所涉及的偏移编码装置是一种对由对输入图像的各像素值加上偏移的图像滤波器所参考的各偏移进行编码的偏移编码装置,其特征在于具备:预测值导出单元,其根据已经编码的偏移、或者预先决定的值,导出各偏移的预测值;偏移残差计算单元,其根据各偏移和由上述预测值导出单元所导出的预测值,计算偏移残差;和偏移残差编码单元,其对由上述偏移残差计算单元所计算出的偏移残差进行编码。
根据上述构成,因为根据残差来解码偏移,所以与直接编码偏移的情况相比,能够减少码量。此外,因为根据已经解码的偏移或者预先决定的值,导出用于求出残差的预测值,所以能够通过仅使用已经解码的偏移,防止差分数据的码量比直接进行编码时变大。
本发明所涉及的编码数据的数据结构是一种由对由多个单位区域构成的输入图像的各像素值加上偏移的图像滤波器所参考的编码数据的数据结构,其特征在于,包括表示根据已经解码的偏移以及预先决定的值的哪一个导出预测值的预测值导出信息,上述图像滤波器参考上述编码数据中包含的预测值导出信息,导出预测值并且对偏移进行解码。
根据上述构成,能够根据预测值导出信息,决定是使预测值为已经解码的偏移、还是使预测值为预先决定的值。
(应用例)
上述的运动图像解码装置1(1’)以及运动图像编码装置2(2’)能够搭载于进行运动图像的发送、接收、记录、再生的各种装置中来利用。另外,运动图像既可以是由照相机等所拍摄的自然运动图像,也可以是由计算机等所生成的人工运动图像(包括CG以及GUI)。
首先,参考图45来说明可以将上述的运动图像解码装置1以及运动 图像编码装置2利用于运动图像的发送以及接收。
图45(a)是表示搭载了运动图像编码装置2的发送装置A的构成的框图。如图45(a)所示,发送装置A具备:通过对运动图像进行编码从而获得编码数据的编码部A1、通过以编码部A1所获得的编码数据调制载波从而获得调制信号的调制部A2、和发送调制部A2所获得的调制信号的发送部A3。上述的运动图像编码装置2被利用作该编码部A1。
发送装置A还可以具备拍摄运动图像的照相机A4、记录了运动图像的记录介质A5、用于从外部输入运动图像的输入端子A6、以及生成或者加工图像的图像处理部A7,作为输入到编码部A1的运动图像的提供源。在图45(a)中,例示了发送装置A具备全部这些部件的构成,但是也可以省略一部分。
另外,记录介质A5,既可以是记录了未被编码的运动图像的介质,也可以是记录了以与传输用的编码方式不同的记录用的编码方式进行了编码的运动图像的介质。在后者的情况下,可以在记录介质A5与编码部A1之间具备解码部(未图示),其按照记录用的编码方式对从记录介质A5读出的编码数据进行解码。
图45(b)是表示搭载了运动图像解码装置1的接收装置B的构成的框图。如图45(b)所示,接收装置B具备:接收调制信号的接收部B1、通过对接收部B1接收到的调制信号进行解调从而获得编码数据的解调部B2、和通过对解调部B2获得的编码数据进行解码从而获得运动图像的解码部B3。上述的运动图像解码装置1被利用作该解码部B3。
接收装置B还可以具备显示运动图像的显示器B4、用于记录运动图像的记录介质B5、以及用于将运动图像输出到外部的输出端子B6,作为解码部B3输出的运动图像的提供目的地。在图45(b)中例示了接收装置B具备全部这些部件的构成,但是也可以省略一部分。
另外,记录介质B5既可以是记录了未被编码的运动图像的介质,也可以是记录了以与传输用的编码方式不同的记录用的编码方式进行了编码的运动图像的介质。在后者的情况下,可以在解码部B3与记录介质B5之间具备编码部(未图示),其按照记录用的编码方式对从解码部B3取得的运动图像进行编码。
另外,传输调制信号的传输介质,既可以采用无线方式,也可以采用有线方式。此外,传输调制信号的传输方式,既可以是广播(这里指未预先确定发送目的地的发送方式),也可以是通信(这里指预先确定了发送目的地的发送方式)。即,调制信号的传输,可以通过无线广播、有线广播、无线通信、以及有线通信的任一种来实现。
例如,地面数字广播的广播站(广播设备等)/接收站(电视接收机等)是以无线广播收发调制信号的发送装置A/接收装置B的一例。此外,有线电视广播的广播站(广播设备等)/接收站(电视接收机等)是以有线广播收发调制信号的发送装置A/接收装置B的一例。
此外,使用了因特网的VOD(Video On Demand,视频点播)服务、视频共享服务等的服务器(工作站等)/客户端(电视接收机、个人计算机、智能电话等)是以通信收发调制信号的发送装置A/接收装置B的一例(通常,在LAN中作为传输介质使用无线或者有线的任一种,在WAN中作为传输介质使用有线)。这里,个人计算机中包括台式型PC、笔记本型PC、以及平板型PC。此外,智能电话中也包括多功能移动电话终端。
另外,视频共享服务的客户端,除了具有对从服务器下载的编码数据进行解码从而显示于显示器的功能之外,还具有对由照相机拍摄的运动图像进行编码从而上传到服务器的功能。即,视频共享服务的客户端作为发送装置A以及接收装置B的双方发挥功能。
接下来,参考图46来说明可以将上述的运动图像解码装置1以及运动图像编码装置2用于运动图像的记录以及再生。
图46(a)是表示搭载了上述的运动图像解码装置1的记录装置C的构成的框图。如图46(a)所示,记录装置C具备:通过对运动图像进行编码从而获得编码数据的编码部C1、和将编码部C1所获得的编码数据写入记录介质M中的写入部C2。上述的运动图像编码装置2被利用作该编码部C1。
另外,对于记录介质M,(1)可以是如HDD(Hard Disk Drive,硬盘驱动器)、SSD(Solid State Drive,固态驱动器)等那样,内置于记录装置C的类型,(2)可以是如SD存储卡、USB(Universal Serial Bus,通用串行总线)闪速存储器等那样,连接于记录装置C的类型,(3)可以是如DVD(Digital Versatile Disc,数字多功能光盘)、BD(Blu-ray Disc(蓝光光盘):注册商标)等那样,装在内置于记录装置C的驱动器装置(未图示)的类型。
此外,记录装置C还可以具备拍摄运动图像的照相机C3、用于从外部输入运动图像的输入端子C4、用于接收运动图像的接收部C5、以及生成或者加工图像的图像处理部C6,作为输入到编码部C1的运动图像的提供源。在图46(a)中例示了记录装置C具备全部这些部件的构成,但是也可以省略一部分。
另外,接收部C5可以接收未被编码的运动图像,也可以接收以与记录用的编码方式不同的传输用的编码方式进行了编码的编码数据。在后者的情况下,可以在接收部C5与编码部C1之间具备传输用解码部(未图示),其以传输用的编码方式对被编码的编码数据进行解码。
作为这种记录装置C,例如,列举DVD记录器、BD记录器、HD(Hard Disk,硬盘)记录器等(在该情况下,输入端子C4或者接收部C5成为运动图像的主提供源)。此外,摄录机(在该情况下,照相机C3成为运动图像的主提供源)、个人计算机(在该情况下,接收部C5或者图像处理部C6成为运动图像的主提供源)、智能电话(在该情况下,照相机C3或者接收部C5成为运动图像的主提供源)等也是这种记录装置C的一例。
图46(b)是表示搭载了上述的运动图像解码装置1的再生装置D的构成的框图。如图46(b)所示,再生装置D具备:读出记录介质M中所写入的编码数据的读出部D1、和通过对读出部D1所读出的编码数据进行解码从而获得运动图像的解码部D2。上述的运动图像解码装置1被利用作该解码部D2。
另外,对于记录介质M,(1)可以是如HDD、SSD等那样,内置于再生装置D的类型,(2)可以是如SD存储卡、USB闪速存储器等那样,连接于再生装置D的类型,(3)可以是如DVD、BD等那样,装在内置于再生装置D的驱动器装置(未图示)的类型。
此外,再生装置D还可以具备显示运动图像的显示器D3、用于将运动图像输出到外部的输出端子D4、以及发送运动图像的发送部D5,作为解码部D2输出的运动图像的提供目的地。在图46(b)中,例示了再生装置D具备全部这些部件的构成,但是也可以省略一部分。
另外,发送部D5可以发送未被编码的运动图像,也可以发送以与记录用的编码方式不同的传输用的编码方式进行了编码的编码数据。在后者的情况下,可以在解码部D2与发送部D5之间具备编码部(未图示),其以传输用的编码方式对运动图像进行编码。
作为这种再生装置D,例如,列举DVD播放器、BD播放器、HDD播放器等(在该情况下,连接电视接收机等的输出端子D4成为运动图像的主提供目的地)。此外,电视接收机(在该情况下,显示器D3成为运动图像的主提供目的地)、台式型PC(在该情况下,输出端子D4或者发送部D5成为运动图像的主提供目的地)、笔记本型或者平板型PC(在该情况下,显示器D3或者发送部D5成为运动图像的主提供目的地)、智能电话(在该情况下,显示器D3或者发送部D5成为运动图像的主提供目的地)、数字标牌(也称为电子看板、电子公告板等,显示器D3或者发送部D5成为运动图像的主提供目的地)等也是这种再生装置D的一例。
(基于软件的构成)
最后,运动图像解码装置1(1’)以及运动图像编码装置2(2’)的各模块,尤其是可变长码解码部13、运动矢量恢复部14、帧间预测图像生成部16、帧内预测图像生成部17、预测方式决定部18、逆量化/逆变换部19、去区块滤波器41、自适应滤波器50、自适应偏移滤波器60(60')、变换/量化部21、可变长码编码部22、逆量化/逆变换部23、帧内预测图像生成部25、帧间预测图像生成部26、运动矢量检测部27、预测方式控制部28、运动矢量冗余删除部29、去区块滤波器33、自适应滤波器70、自适应偏移滤波器80(80’),既可以通过形成在集成电路(IC芯片)上的逻辑电路来硬件地实现,也可以使用CPU(central processing unit,中央处理单元)来软件地实现。
在后者的情况下,运动图像解码装置1以及运动图像编码装置2具备:执行用于实现各功能的控制程序的命令的CPU、存储了上述程序的ROM(read only memory,只读存储器)、展开上述程序的RAM(random access memory,随机存取存储器)、存储上述程序以及各种数据的存储器等的存储装置(记录介质)等。而且,本发明的目的可以通过将以计算机可读取的方式记录了作为实现上述功能的软件的运动图像解码装置1以及 运动图像编码装置2的控制程序的程序代码(执行形式程序、中间代码程序、源程序)的记录介质提供给上述运动图像解码装置1以及运动图像编码装置2,并且其计算机(或者CPU、MPU(microprocessing unit,微处理单元))读出并执行记录介质中所记录的程序代码,来达成。
作为上述记录介质,例如,可以使用:磁带、盒式带等带类;包括Floppy(注册商标)盘/硬盘等磁盘、CD-ROM(compact disc read-only memory,光盘只读存储器)/MO盘(magneto-optical disc,磁光盘)/MD(Mini Disc,迷你盘)/DVD(digital versatiledisc,数字多功能盘)/CD-R(CD Recordable,可刻录CD)等光盘的盘类;IC卡(包括存储卡)/光卡等卡类;掩模ROM/EPROM(erasable programmable read-only memory,可擦写可编程只读存储器)/EEPROM(electrically erasable and programmable read-only memory,电可擦可编程只读存储器)(注册商标)/闪存ROM等半导体存储器类;或者PLD(Programmablelogic device,可编程逻辑器件)、FPGA(Field Programmable Gate Array,现场可编程门阵列)等逻辑电路类等。
此外,也可以将运动图像解码装置1以及运动图像编码装置2构成为可连接于通信网络,通过通信网络来提供上述程序代码。对于该通信网络,只要能够传输程序代码即可,不做特别限定。例如,可以利用因特网、内联网、外联网、LAN(local area network,局域网)、ISDN(integrated services digital network,综合服务数字网)、VAN(value-addednetwork,增值网络)、CATV(community antenna television/cable television,共用天线电视/有线电视)通信网、虚拟专用网(virtual private network)、电话线路网、移动体通信网、卫星通信网等。此外,对于构成该通信网络的传输介质,也是只要是能够传输程序代码的介质即可,不限定于特定的构成或者种类。例如,既可以利用IEEE(institute ofelectrical and electronic engineers,电气和电子工程师协会)1394、USB、电力线载波、有线TV线路、电话线、ADSL(asymmetric digital subscriber loop,非对称数字用户环路)线路等的有线,也可以利用IrDA(infrared data association,红外线数据协会)、远程控制那样的红外线、Bluetooth(注册商标)、IEEE802.11无线、HDR(high data rate,高数据速率)、NFC(Near Field Communication,近场通信)、DLNA(Digital Living NetworkAlliance,数字生活网络联盟)、移动电话网、 卫星线路、地上波数字网等的无线。另外,本发明也可以利用以电子传输使上述程序代码具体化的、嵌入在载波中的计算机数据信号的方式来实现。
本发明不限定于上述的各实施方式,在权利要求所示的范围内可以进行各种变更,适当组合不同的实施方式中分别公开的技术手段而得到的实施方式也包含在本发明的技术范围中。
产业上的可利用性
本发明可以适宜地用于对图像数据进行偏移滤波的图像滤波器。此外,可以适宜地应用于对编码数据进行解码的解码装置、以及对编码数据进行编码的编码装置。
符号说明
1 运动图像解码装置(解码装置)
41 去区块滤波器
50 自适应滤波器
60、60’ 自适应偏移滤波器(图像滤波器装置)
611、611’ 偏移信息解码部(偏移解码装置、决定单元、偏移属性设定单元、偏移解码单元、偏移残差解码单元、预测值导出单元)
612 QAOU结构解码部
613 偏移属性设定部(偏移属性设定单元)
621 偏移信息存储部
622 QAOU控制部
623 偏移类型导出部
624 类别分类部(计算单元、比特移位单元、分类单元)
625 偏移导出部(偏移逆移位单元)
626 偏移加法部(偏移单元)
2 运动图像编码装置(编码装置)
33 去区块滤波器
70 自适应滤波器
80、80’ 自适应偏移滤波器(图像滤波器装置)
811 偏移计算部
812 偏移裁剪部
813 偏移信息选择部
814 偏移残差导出部
815 偏移属性设定部(偏移属性设定单元)
816 偏移移位部(偏移移位单元)