具体实施方式
(第一实施方式)
以下,参照附图对本发明的实施方式进行说明。
图32是表示本实施方式的图像传输系统1的构成的概略图。
图像传输系统1是传输对编码对象图像进行编码而得到的编码流,对所传输的编码流进行解码并显示图像的系统。图像传输系统1构成为包括:运动图像编码装置(图像编码装置)11、网络21、运动图像解码装置(图像解码装置)31以及运动图像显示装置(图像显示装置)41。
运动图像编码装置11被输入图像T。
网络21将运动图像编码装置11生成的编码流Te传输至运动图像解码装置31。网络21是互联网(Intemet)、广域网(WAN:Wide Area Network)、小型网络(LAN:Local AreaNetwork,局域网)或它们的组合。网络21不一定限定于双向的通信网,也可以是传输地面数字广播、卫星广播等广播波的单向的通信网。此外,网络21也可以用DVD(DigitalVersatile Disc:数字通用光盘,注册商标)、BD(Blu-ray(注册商标)Disc:蓝光光盘,注册商标)等记录有编码流Te的存储介质代替。
运动图像解码装置31对网络21所传输的编码流Te分别进行解码,生成解码后的一个或多个解码图像Td。
运动图像显示装置41显示运动图像解码装置31所生成的一个或多个解码图像Td的全部或一部分。运动图像显示装置41例如具备液晶显示器、有机EL(Electro-luminescence:电致发光)显示器等显示设备。作为显示器的形式,可列举出固定式、移动式、HMD等。此外,在运动图像解码装置31具有高处理能力的情况下显示画质高的图像,在仅具有较低处理能力的情况下显示不需要高处理能力、高显示能力的图像。
<运算符>
以下记述在本说明书中使用的运算符。
>>为向右位移,<<为向左位移,&为逐位AND,|为逐位OR,|=为OR代入运算符,||表示逻辑和。
x?y∶z是在x为真(0以外)的情况下取y、在x为假(0)的情况下取z的3项运算符。
Clip3(a,b,c)是将c裁剪到a以上b以下的值的函数,是在c<a的情况下返回a、在c>b的情况下返回b、在其他情况下返回c的函数(其中a<=b)。
abs(a)是返回a的绝对值的函数。
Int(a)是返回a的整数值的函数。
floor(a)是返回a以下的最大整数的函数。
ceil(a)是返回a以上的最大整数的函数。
a/d表示a除以d(舍去小数点以下)。
<编码流Te的结构>
在对本实施方式的运动图像编码装置11和运动图像解码装置31进行详细说明之前,对由运动图像编码装置11生成并由运动图像解码装置31进行解码的编码流Te的数据结构进行说明。
图2是表示编码流Te中的数据的分级结构的图。编码流Te示例性地包括序列和构成序列的多张图片。图2的(a)~(f)分别是表示既定序列SEQ的编码视频序列、规定图片PICT的编码图片、规定切片S的编码切片、规定切片数据的编码切片数据、编码切片数据中所包括的编码树单元CTU以及编码树单元中所包括的编码单元CU的图。
(编码视频序列)
在编码视频序列中,规定有供运动图像解码装置31参照以便对处理对象的序列SEQ进行解码的数据的集合。序列SEQ如图2的(a)所示,包括:视频参数集(Video ParameterSet)、序列参数集SPS(Sequence Parameter Set)、图片参数集PPS(Picture ParameterSet)、图片PICT以及补充增强信息SEI(Supplemental Enhancement Information)。
视频参数集VPS在由多层构成的运动图像中,规定有多个运动图像通用的编码参数的集合,以及运动图像中包括的多层和与各层关联的编码参数的集合。
在序列参数集SPS中,规定有供运动图像解码装置31参照以便对对象序列进行解码的编码参数的集合。例如,规定有图片的宽度、高度。需要说明的是,SPS可以存在多个。在该情况下,从PPS中选择多个SPS中的任一个。
在图片参数集PPS中,规定有供运动图像解码装置31参照以便对对象序列内的各图片进行解码的编码参数的集合。例如包括用于图片的解码的量化宽度的基准值(pic_init_qp_minus26)和指示加权预测的应用的标志(weighted_pred_flag)。需要说明的是,PPS可以存在多个。在该情况下,从对象序列内的各图片中选择多个PPS中的任一个。
(编码图片)
在编码图片中,规定有供运动图像解码装置31参照以便对处理对象的图片PICT进行解码的数据的集合。图片PICT如图2的(b)所示,包括切片0~切片NS-1(NS为图片PICT中所包括的切片的总数)。
需要说明的是,在无需对各切片0~切片NS-1进行区分的情况下,有时会省略代码的下标来进行记述。此外,以下所说明的编码流Te中包括的且带有下标的其他数据也是同样的。
(编码切片)
在编码切片中,规定有供运动图像解码装置31参照以便对处理对象的切片S进行解码的数据的集合。切片如图2的(c)所示包括切片报头和切片数据。
切片报头中包括供运动图像解码装置31参照以便确定对象切片的解码方法的编码参数组。指定切片类型的切片类型指定信息(slice_type)是切片报头中包括的编码参数的一个示例。
作为能由切片类型指定信息指定的切片类型,可列举出:(1)在进行编码时仅使用帧内预测的I切片、(2)在进行编码时使用单向预测或帧内预测的P切片以及(3)在进行编码时使用单向预测、双向预测或帧内预测的B切片等。需要说明的是,帧间预测不限于单向预测、双向预测,也可以使用更多的参照图片来生成预测图像。以下,称为P、B切片的情况是指包括能使用帧间预测的块的切片。
需要说明的是,切片报头中也可以包括对图片参数集PPS的参照(pic_parameter_set_id)。
(编码切片数据)
在编码切片数据中,规定有供运动图像解码装置31参照以便对处理对象的切片数据进行解码的数据的集合。切片数据如图2的(d)所示包括CTU。CTU是构成切片的固定大小(例如64×64)的块,也称为最大编码单位(LCU:Largest Coding Unit)。
(编码树单元CTU)
在图2的(e)中,规定有供运动图像解码装置31参照以便对处理对象的CTU进行解码的数据的集合。CTU通过递归的四叉树分割(QT(Quad Tree)分割)、二叉树分割(BT(Binary Tree)分割)或三叉树分割(TT(Ternary Tree)分割)分割成作为编码处理的基本单位的编码单元CU。将BT分割和TT分割统称为多叉树分割(MT(Multi Tree)分割)。将通过递归的四叉树分割而得到的树形结构的节点称为编码节点(Coding Node)。四叉树、二叉树以及三叉树的中间节点为编码节点,CTU本身也被规定为最上层的编码节点。
CT包括以下信息作为CT信息:表示是否进行QT分割的QT分割标志(cu_split_flag)、表示有无MT分割的MT分割模式(split_mt_mode)、表示MT分割的分割方向的MT分割方向(split_mt_dir)、表示MT分割的分割类型的MT分割类型(split_mt_type)。cu_split_flag、split_mt_flag、split_mt_dir、split_mt_type按每个编码节点进行传输。
在cu_split_flag为1的情况下,编码节点分割成4个编码节点(图3的(b))。在cu_split_flag为0时,split_mt_flag为0的情况下,不分割编码节点,而保持1个CU作为节点(图3的(a))。CU为编码节点的末端节点,且不进行进一步分割。CU为编码处理的基本单位。
在split_mt_flag为1的情况下如下所示地对编码节点进行MT分割。在split_mt_type为0时,split_mt_dir为1的情况下,将编码节点水平分割成2个编码节点(图3的(d)),在split_mt_dir为0的情况下将编码节点垂直分割成2个编码节点(图3的(c))。此外,在split_mt_type为1时,split_mt_dir为1的情况下,将编码节点水平分割成3个编码节点(图3的(f)),在split_mt_dir为0的情况下将编码节点垂直分割成3个编码节点(图3的(e))。
此外,在CTU的大小为64×64像素的情况下,CU的大小可以取64×64像素、64×32像素、32×64像素、32×32像素、64×16像素、16×64像素、32×16像素、16×32像素、16×16像素、64×8像素、8×64像素、32×8像素、8×32像素、16×8像素、8×16像素、8×8像素、64×4像素、4×64像素、32×4像素、4×32像素、16×4像素、4×16像素、8×4像素、4×8像素以及4×4像素中的任一种。
(编码单元CU)
如图2的(f)所示,规定有供运动图像解码装置31参照以便对处理对象的CU进行解码的数据的集合。具体而言,CU由CU报头CUH、预测参数、变换参数、量化变换系数等构成。在CU报头中规定有预测模式等。
预测处理存在以CU为单位进行的情况和以进一步分割CU而得到的子CU为单位进行的情况。在CU与子CU的大小相等的情况下,CU中的子CU为1个。在CU的大小大于子CU的大小的情况下,CU被分割成子CU。例如,在CU为8×8、子CU为4×4的情况下,CU被分割成4个子CU,包括水平分割的两部分和乖直分割的两部分。
预测的种类(预测模式)存在帧内预测和帧间预测两种。帧内预测是同一图片内的预测,帧间预测是指在互不相同的图片间(例如显示时刻间、层图像间)进行的预测处理。
变换/量化部处理以CU为单位来进行,但量化变换系数也可以以4×4等子块为单位来进行熵编码。
(预测参数)
预测图像由附加于块的预测参数推导。预测参数中存在帧内预测和帧间预测的预测参数。
以下,对帧间预测的预测参数进行说明。帧间预测参数由预测列表利用标志predFlagL0、predFlagL1、参照图片索引refIdxL0、refIdxL1以及运动矢量mvL0、mvL1构成。预测列表利用标志predFlagL0、predFlagL1是表示是否使用各个被称为L0列表、L1列表的参照图片列表的标志,在值为1的情况下使用对应的参照图片列表。需要说明的是,在本说明书中记为“表示是否为××的标志”的情况下,将标志为0以外(例如1)设为是××的情况,将标志为0设为不是××的情况,在逻辑非、逻辑积等中将1视为真,将0视为假(以下同样)。不过,在实际的装置、方法中也可以使用其他值作为真值、假值。
用于推导帧间预测参数的语法要素中,例如有合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_LX_idx以及差分矢量mvdLX。
(参照图片列表)
参照图片列表是由存储于参照图片存储器306的参照图片构成的列表。图4是表示低延迟用的图片结构中的参照图片和参照图片列表的一个示例的概念图。在图4的(a)中,矩形表示图片,箭头表示图片的参照关系,横轴表示时间,矩形中的I、P、B分别表示帧内图片、单向预测图片、双向预测图片,矩形中的数字表示解码顺序。如图4的(a)所示,图片的解码顺序为I0、P1/B1、P2/B2、P3/B3、P4/B4,显示顺序也相同。图4的(b)中示出图片B3(对象图片)的参照图片列表的示例。参照图片列表是表示参照图片的候选的列表,一张图片(切片)可以具有一个以上的参照图片列表。在图4的(b)的示例中,对象图片B3具有L0列表RefPicList0和L1列表RefPicList1这两个参照图片列表。在各CU中,由参照图片索引refIdxLX指定实际上以参照图片列表RefPicListX(X=0或1)中的哪一张图片来进行参照。图4的(b)是refIdxL0=2、refIdxL1=0的示例。在对象图片为P3的情况下,参照图片列表仅是L0列表。需要说明的是,LX是在不对L0预测和L1预测进行区分的情况下使用的记述方法,以下,通过将LX置换为L0、L1对针对L0列表的参数和针对L1列表的参数进行区分。
(合并预测和AMVP预测)
预测参数的解码(编码)方法中有合并预测(merge)模式和AMVP(Adaptive MotionVector Prediction:自适应运动矢量预测)模式,合并标志merge_flag是用于识别它们的标志。
合并预测模式是不将预测列表利用标志predFlagLX(或帧间预测标识符inter_pred_idc)、参照图片索引refIdxLX、运动矢量mvLX包括于编码数据而从已处理的附近块的预测参数推导出并使用的模式。合并索引merge_idx是表示是否将从处理已完成的块推导出的预测参数候选(合并候选)中的任一个预测参数用作对象块的预测参数的索引。
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列表中进行管理的一张参照图片的单向预测。PRED_BI表示使用在L0列表和L1列表中进行管理的两张参照图片的双向预测BiPred。
(运动矢量)
运动矢量mvLX表示不同的两张图片上的块间的移位量。将与运动矢量mvLX有关的预测矢量、差分矢量分别称为预测矢量mvpLX、差分矢量mvdLX。
以下,对帧内预测的预测参数进行说明。帧内预测参数由亮度预测模式IntraPredModeY和色差预测模式IntraPredModeC构成。图5是表示帧内预测模式的种类(模式编号)的概略图。如图5所示,帧内预测模式例如存在67种(0~66)。例如是Planar(平面)预测(0)、DC预测(1)、Angular(角度)预测(2~66)。而且,可以在色差中追加LM模式(67~72)。
用于推导帧内预测参数的语法要素中例如有prev_intra_luma_pred_flag、mpm_idx、rem_selected_mode_flag、rem_selected_mode、rem_non_selected_mode等。
(MPM)
prev_intra_luma_pred_flag是表示对象块的亮度预测模式Intra Pred ModeY与MPM(Most Probable Mode:最可能模式)是否一致的标志。MPM是MPM候选列表mpmCandList[]中所包括的预测模式。MPM候选列表是储存有根据邻接块的帧内预测模式和规定的帧内预测模式估计应用于对象块的概率高的候选的列表。在prev_intra_luma_pred_flag为1的情况下,使用MPM候选列表和索引mpm_idx推导出对象块的亮度预测模式IntraPredModeY。
IntraPredModeY=mpmCandList[mpm_idx]
(REM)
在prev_intra_luma_pred_flag为0的情况下,从在全部帧内预测模式中除去MPM候选列表中所包括的帧内预测模式后剩余的模式RemIntraPredMode中选择帧内预测模式。作为RemIntraPredMode可选择的帧内预测模式被称为“非MPM”或“REM”。标志rem_selected_mode_flag是指定是参照rem_selected_mode选择帧内预测模式的还是参照rem_non_selected_mode选择帧内预测模式的标志。使用rem_selected_mode或者rem_non_selected_mode推导出RemIntraPredMode。
(附加限制的编码/解码区域)
对运动图像编码、解码方法进行说明,所述运动图像编码、解码方法的特征在于,在同一图片内设定部分区域,在部分区域不使用其他的区域的像素进行编码、解码处理,在其他的区域使用整张图片进行编码、解码处理。
图6是说明本发明的区域A、区域B的图。在本发明的运动图像编码装置、解码装置中设定图片内的区域A和区域B的区域。在A区域中,仅能根据区域A来进行预测处理,在区域的外侧进行填充等处理。在B区域中,能根据也包括A区域的整张图片进行预测处理。在此,预测处理是指帧内预测、帧间预测、环路滤波处理等。在区域A中,在区域A内关闭了编码处理/解码处理,因此对区域A仅能进行解码。
以下,将区域A称为限制区域(第一区域、控制区域、清洁区域、已刷新的区域、区域A)。相反,也将限制区域以外的区域称为非限制区域(第二区域、非控制区域、脏区域、未刷新的区域、区域B、限制区域外)。
例如,仅通过帧内预测进行编码/解码的区域且在帧内预测中已编码的区域(后述的新刷新区域FRA)是限制区域。进一步参照由帧内预测构成的该限制区域进行编码/解码的区域也是限制区域。而且,参照参照图片中的限制区域进行编码/解码的区域也是限制区域。就是说,限制区域是指参照限制区域进行编码/解码的区域。
以下,以(xRA_st,yRA_st)表示限制区域的左上位置,以(xRA_en,yRA_en)表示右下位置,以(wRA,hRA)表示大小。此外,位置和大小存在以下的关系,因此可以根据一方推导出另一方。
xRA_en=xRA_st+wRA-1
yRA_en=yRA_st+hRA-1
此外,也能如下所述地进行推导。
wRA=xRA en-xRA st+1
hRA=yRA_en-yRA_st+1
而且,以(xRA_st[j],yRA_st[j])表示时刻j的限制参照区域的左上位置,以(xRA_en[j],yRA_en[j])表示右下位置,以(wRA[j],hRA[j])表示大小。此外,也可以以(xRA_st[Ref],yRA_st[Ref])表示参照图片Ref的限制参照区域的位置,以(xRA_en[Ref],yRA_en[Ref])表示右下位置,以(wRA[Ref],hRA[Ref])表示大小。
(限制区域的判定)
例如,在某张图片为时刻i,某个块的位置为(x,y)的情况下,可以通过以下的算式判定位置的像素是否处于限制区域内。
IsRA(x,y)=(xRA_st[i]<=x&&x<=xRA_en[i]&&yRA_st[i]<=y&&y<=yRA_en[i])
或者也可以是以下的判定式。
IsRA(x,y)=(xRA_st[i]<=x&&x<xRA_st[i]+wRA[i]&&yRA_st[i]<=y&&y<yRA_st[i]+hRA[i])
IsRA(xRef,yRef)=(xRA_st[Ref]<=xRef&&xRef<=xRA_en[Ref]&&yR A_st[Ref]<=yRef&&yRef<=yRA_en[Ref])
例如,在对象图片为时刻i,对象块Pb的左上坐标为(xPb,yPb),宽度和高度为bW和bH的情况下,运动图像解码装置和运动图像编码装置的帧内预测部、运动补偿部、环路滤波器在对象块Pb处于限制区域内的情况下,通过以下的判定式推导出IsRA(Pb)。
IsRA(Pb)=(xRA_st[i]<=xPb&&xPb<=xRA_en[i]&&yRA_st[i]<=yPb&&yPb<=yRA_en[i])
或者也可以是以下的判定式。
IsRA(Pb)=(xRA_st[i]<=xPb&&xPb<xRA_st[i]+wRA[i]&&yRA_st[i]<=yPb&&yPb<yRA_st[i]+hRA[i])
(限制参照区域的基本动作)
本说明书的运动图像编码装置和运动图像解码装置进行以下的动作。
图7是表示在本发明的帧内预测、帧间预测、环路滤波中限制区域能参照的范围的图。图7的(a)表示限制区域中所包括的对象块能参照的范围。与对象块相同的图片(对象图片)中的限制区域中所包括的已编码/解码的区域是对象块在帧内预测、帧间预测、环路滤波中能参照的范围。同样,参照图片中的限制区域(限制参照区域)是对象块在帧间预测、环路滤波中能参照的范围。图7的(b)表示非限制区域中所包括的对象块能参照的范围。对象图片中的已编码/解码的区域是对象块在帧内预测、帧间预测中能参照的范围。同样,参照图片中的所有区域是在帧间预测中能参照的范围。需要说明的是,在使用图块、切片、波前等并行处理、参照限制的情况下,除了上述之外也附加其他的限制。
·限制区域中所包括的对象块进行仅参照对象图片中的限制区域的像素的帧内预测或参照参照图片的限制参照区域的帧间预测。
·限制区域中所包括的对象块参照对象图片中的限制区域的编码参数(例如帧内预测方向、运动矢量、参照图片索引)或参照参照图片的限制参照区域的编码参数来推导出对象块的编码参数。
·限制区域中所包括的对象块仅参照对象图片中的限制区域的像素进行环路滤波处理。
(限制区域的判定和利用可能性)
在帧内预测的MPM推导、帧间预测的合并候选推导等中,使用邻接区域的预测参数来推导出对象块的预测参数(帧内预测模式、运动矢量)。可以在这样的情况下进行以下的处理。在帧内预测和帧间预测中对象块处于限制区域(IsRA(xPb,yPb)为真)且对象块的邻接块的参照位置(xNbX,yNbX)处于非限制区域(IsRA(xNbX,yNbX)为假)的情况下,在预测参数推导中不使用邻接块的值。即,在对象块处于限制区域(IsRA(xPb,yPb)为真)且对象块的邻接块的参照位置(xNbX,yNbX)处于限制区域(IsRA(xNbX,yNbX)为真)的情况下,将该位置(xNbX,yNbX)用于预测参数的推导。
需要说明的是,如上所述地通过预测候选的推导进行了说明,但也可以应用于环路滤波处理。此外,也可以与画面外、并行处理单位(切片边界、图块边界)的判定同样地对整个画面外的判定使用限制区域的判定。在这种情况下,在对象块处于限制区域(IsRA(xPb,yPb)为真)且对象块的参照位置(xNbX,yNbX)处于限制区域(IsRA(xNbX,yNbX)为真)的情况下,将参照位置(xNbX,yNbX)判定为不可参照(不可利用)(availableNbX=0)。即,在对象块处于画面内,且对象块和参照位置不在不同的并行处理单位,对象块处于非限制区域或对象块的参照位置(xNbX,yNbX)处于限制区域的情况下(IsRA(xNbX,yNbX)为真),将参照位置(xNbX,yNbX)判定为可参照(availableNbX=1)。在帧内预测和帧间预测中,参照位置(xNbX,yNbX)是可参照(可利用)(availableNbX=1)的情况下,将该参照位置的预测参数用于对象块的预测参数的推导,在环路滤波中,在可利用(availableNbX=1)参照位置(xNbX,yNbX)的情况下,进行去块滤波处理。
(限制参照区域的判定和限制参照区域的裁剪)
此外,在参照图片在时刻j,参照像素的左上位置为(xRef,yRef)的情况下,运动补偿部,通过以下的判定式推导出参照像素处于限制参照区域内的情况。
IsRA(xRef,yRef)=(xRA_st[j]<=xRef&&xRef<=xRA_en[j]&&yRA_st[j]<=yRef&&yRef<=yRA_en[j])
或者也可以是以下的判定式。
IsRA(xRef,yRef)=(xRA_st[j]<=xRef&&xRef<xRA_st[j]+wRA[j]&&y RA_st[i]<=yRef&&yRef<yRA_st[j]+hRA[j])
此外,运动补偿部也可以使用以下的算式将参照像素裁剪到限制区域内的位置。
xRef=Clip3(xRA_st[j],xRA_en[j],xRef)
yRef=Clip3(yRA_st[j],yRA_en[j],yRef)
或者也可以是以下的推导式。
xRef=Clip3(xRA_st[j],xRA_st[j]+wRA[j]-1,xRef)
yRef=Clip3(yRA_st[j],yRA_st[j]+hRA[j]-1,yRef)
需要说明的是,限制区域的位置通过后述的阶段性刷新信息从运动图像编码装置传输至运动图像解码装置。需要说明的是,限制区域的位置、大小也可以不根据时刻(例如POC)推导,而是在将对象图片解码后或在对象图片的解码开始时间点设定参照存储器内的参照图片Ref。在该情况下,能通过指定参照图片Ref来推导出该限制区域的位置和大小。
(限制参照区域的设定/更新)
·将图片的上述限制区域设定为将图片设为参照图片的情况下的上述限制参照区域。
例如,在具有左上坐标(xRA_st,yRA_st)、右下坐标(xRA_en,yRA_en)、大小(wRA,hRA)的限制区域的图片作为时刻j的参照图片而被参照的情况下,可以通过以下的算式来设定限制参照区域。
xRA_st[j]=xRA_st,xRA_en[j]=xRA_en,wRA[j]=wRA
yRA_st[j]=yRA_st,yRA_en[j]=xRA_en,hRA[j]=hRA
图8是表示参照存储器内的参照图片的限制参照区域的更新的图。例如,参照存储器内的参照图片j的限制参照区域使用左上坐标(xRA_st[j],yRA_st[j])、右下坐标(xRA_en[j],yRA_en[j])、大小(wRA[j],hRA[j])来对时刻i的对象图片的限制区域,就是说左上坐标(xRA_st[i],yRA_st[i])、右下坐标(xRA_en[i],yRA_en[i])、大小(wRA[i],hRA[i])进行解码。在将对象图片i解码后在参照存储器中储存为参照图片i时的限制参照区域可以为以下。
参照图片j的限制参照区域:左上坐标(xRA_st[j],yRA_st[j])、右下坐标(xRA_en[j],yRA_en[j])、大小(wRA[j],hRA[j])
参照图片i的限制参照区域:左上坐标(xRA_st[i],yRA_st[i])、右下坐标(xRA_en[i],yRA_en[i])、大小(wRA[i],hRA[i])
此外,如后文所述,在将限制区域重叠的情况下,参照图片的限制参照区域可以比解码了对象图片的时间点的限制参照区域小。
参照图片j的限制参照区域:左上坐标(xRA_st[j],yRA_st[j])、右下坐标(xRA_en[j],yRA_en[j])、大小(wRA[j],hRA[j])
参照图片i的限制参照区域:左上坐标(xRA_st[i],yRA_st[i])、右下坐标(xRA_en[i]-wOVLP,yRA_en[i])、大小(wRA[i]-wOVLP,hRA[i])
而且,如后文所述,可以使用时刻i-1的限制区域和对象图片的新限制区域FRA来设定时刻j(=i)的参照图片的限制参照区域。
·在阶段性解码刷新图片(Sequentially Decoder Refresh、SDR图片)中,从参照图片中的限制区域中清除可参照的所有区域(限制参照区域)并设为不可参照。
例如,可以在时刻j的参照图片中将表示是否设定限制参照区域的标志设定为0,也可以通过以下的算式来去掉限制参照区域。
xRA_st[j]=0,xRA_en[j]=0,wRA[j]=0
yRA_st[j]=0,yRA_en[j]=00,hRA[j]=0
此外,也将参照图片中的限制区域称为限制参照区域(第一参照区域、非控制参照区域、清洁参照区域、已刷新的参照区域、参照区域A),也将参照图片中的非限制区域称为非限制参照区域(第二参照区域、非控制参照区域、脏参照区域、未刷新的参照区域、参照区域B)。
(阶段性刷新)
对本发明的刷新(阶段性刷新、阶段性解码刷新)的概要进行说明。本发明的阶段性刷新是指如下技术:阶段性地传输由帧内预测构成的限制区域,进而在后续的图片中将限制区域的大小扩展至整个画面,由此阶段性地刷新整张图片。需要说明的是,在本说明书中,将在对象图片中新追加为限制区域的区域称为新刷新区域(Fresh Refresh Area)。
图9是说明本发明的刷新(阶段性刷新)的图。本说明书的阶段性刷新中,在作为刷新的起点的图片中插入由帧内预测构成的限制区域(新刷新区域FRA)。将作为该刷新的起点的图片称为SDR图片(Sequentially Decoder Refresh、随机接入点)。将仅使用该帧内预测模式进行编码后的区域称为新刷新区域FRA(Forced Refresh Area:强制刷新区域)。
在图9的(a)中示出各时刻t的限制区域。如图9的(a)所示,在SDR图片(t=0)中,对所有由帧内预测构成的限制区域进行解码。在SDR图片中,清除参照图片中的所有限制参照区域并设为不可参照。接着,随着从t=0扩展至numIR-1而扩大限制区域,在t=numIR-1时刷新整张图片。图9的(b)表示参照图片上的限制参照区域。在图9的(b)中,将时刻t的图片作为参照图片进行参照时,通过横线区域表示限制参照区域。也可以是周期性地插入SDR图片的构成。在本说明书中,按每个SDR周期SDRperiod插入SDR图片。
图10是明确地示出限制区域中的在对象图片中新追加的区域(新刷新区域)的图。在阶段性刷新中,能阶段性地追加新刷新区域FRA,并包括所追加的FRA来新设定限制区域,由此进行整张图片的刷新。需要说明的是,也能将新刷新区域FRA的所有部分设为仅由帧内预测构成的区域(Intra Refresh Area、IRA)。可以通过如此将新刷新区域FRA设为帧内预测IRA来进一步提高能正常解码的可能性(容错性)。
需要说明的是,限制区域不得参照SDR周期的起点图片以前的图片。例如,在图10的(a)的时刻t=2时,k=0或k=1的区域所参照的图片是图10的(b)的参照图片存储器内的时刻t=0或t=1的图片。
(阶段性刷新的构成例)
图11的(a)是将一张图片分割成numIR个区域(刷新单位区域)的示例。以下,设为numIR=5进行说明。图11的(a)中的编号k(k=0..4)是表示刷新单位区域的索引。
图11的(b)是表示追加至限制区域的新刷新区域FRA(图中斜线区域)从左向右移位的示例的图。在时刻t=0时,左端的k=0的区域为FRA,在时刻t=1时,k=1的区域为FRA。随着t增加,FRA向右移位,在时刻t=4时,位于图片的右端的k=4(=numIR-1)的区域为FRA。从t=5到t=N-1是不包括FRA的通常的图片。在t=N以后,重复与从t=0到t=N-1相同的图片结构。将该N称为SDR周期SDRperiod。在时刻t,(t%SDRperiod)=0的图片为随机接入点,能以此为起点进行随机接入。
(利用阶段性刷新的随机接入处理)
运动图像解码装置对在SDR图片中帧内预测出的限制区域(FRA)进行解码,在限制区域以外的区域中通过错误隐藏(Error concealment)生成适当的图像。在接着SDR图片的图片中,也对帧内预测出的限制区域、参照参照图片的限制参照区域的限制区域进行解码,在除此以外的区域中通过错误隐藏生成适当的图像。能通过重复该动作直至新限制区域(例如FRA)从图片的一端移动至另一端,限制区域变为整张图片(针对numIR张图片)来正确地对整张图片进行解码。
(刷新区域的形状和移位方向)
图12是表示FRA区域的图。图12的(a)表示从左向右移位的情况,在该情况下,FRA是将(xIR,yIR)设为左上坐标的宽度为wIR、高度为hPict的矩形。FRA的宽度wIR是最小CU的宽度minCU的整数倍。
wIR=minCU*a
在此,a为正整数。
此外,图12的(b)表示从上向下移位的情况,在该情况下,FRA是将(xIR,yIR)设为左上坐标的高度为hIR、宽度为wPict的矩形。而且,FRA的高度hIR为最小CU的宽度minCU的整数倍。
hIR=minCU*a
在此,a为正整数。就是说,FRA的宽度或高度的粒度是CU的宽度或高度的最小值minCU以上且设定为minCU的整数倍。
图13是说明刷新方向的图。在图13的(a)中,将FRA沿垂直方向插入,从左向右移位。在该情况下,时刻t的图片的新限制区域的左上坐标(xIR[t],yIR[t])、右下坐标(xRA_en[t],yRA_en[t])能通过以下来表现。
(xIR[t],yIR[t])=(wIR*t-1,hPict-1)
(xRA_en[t],yRA_en[t])=(wIR*(t+1)-1,hPict-1)
而且,时刻t的图片的限制区域的左上坐标(xRA_st[t],yRA_st[t])、右下坐标(xRA_en[t],yRA_en[t])能通过(算式IR-1)来表现。
(xRA_st[t],yRA_st[t])=(0,0)(算式IR-1)
(xRA_en[t],yRA_en[t])=(wIR*(t+1)-1,hPict-1)
在此,wIR为FRA的宽度,hPict为图片的高度。
此外,(算式IR-1)可以使用与参照限制区域以外的像素值、编码参数而推导出的像素关联的宽度wOVLP如下所述地表现。
(xRA_st[t],yRA_st[t])=(0,0)
(xRA_en[t],yRA_en[t])=(wIR*(t+1)-1-wOVLP,hPict-1)
图13的(b)是将FRA沿垂直方向插入,从右向左移位的示例(seq_refresh_direction=1)。
图13的(c)是将FRA沿水平方向插入,从上向下移位的示例(seq_refresh_direction=0)。在该情况下,时刻t的图片的限制区域的左上坐标能通过(算式IR-2)来表现。
(xRA_st[t],yRA_st[t])=(0,0)(算式IR-2)
(xRA_en[t],yRA_en[t])=(wPict-1,hIR*(t+1)-1)
在此,hIR为FRA的高度,wPict为图片的宽度。
此外,(算式IR-2)可以使用与参照限制区域以外的像素值、编码参数而推导出的像素关联的高度wOVLP如下所述地表现。
(xRA_st[t],yRA_st[t])=(0,0)
(xRA_en[t],yRA_en[t])=(wPict-1,hIR*(t+1)-1-hOVLP)
图13的(d)是将FRA沿水平方向插入,从下向上移位的示例。
图14是由多个区域构成FRA的示例。如上所述,区域k是某个图片上的一个矩形,但是,如图14的(a)所示,区域k也可以是多个矩形。在该情况下,如图14的(b)所示,限制区域由图片的多个区域构成。
(运动图像解码装置的构成)
对本实施方式的运动图像解码装置31(图17)的构成进行说明。
运动图像解码装置31构成为包括:熵解码部301、参数解码部(预测图像解码装置)302、环路滤波器305、参照图片存储器306、预测参数存储器307、预测图像生成部(预测图像生成装置)308、逆量化/逆变换部311以及加法部312。需要说明的是,根据后文所述的运动图像编码装置11,也存在运动图像解码装置31中不包括环路滤波器305的构成。
参数解码部302具备限制区域控制部320,限制区域控制部320具备未图示的报头解码部3020、CT信息解码部3021以及CU解码部3022(预测模式解码部),CU解码部3022还具备TU解码部3024。报头解码部3020从编码数据解码VPS、SPS、PPS等参数集信息。报头解码部3020从编码数据解码切片报头(切片信息)。CT信息解码部3021从编码数据解码CT。CU解码部3022从编码数据解码CU。TU解码部3024在TU中包括预测误差的情况下,从编码数据解码QP更新信息(量化校正值)和量化预测误差(residual_coding)。
此外,参数解码部302构成为包括未图示的帧间预测参数解码部303和帧内预测参数解码部304。预测图像生成部308构成为包括帧间预测图像生成部309和帧内预测图像生成部310。
此外,在下文中对将CTU、CU用作处理单位的示例进行了记载,但不限于此,也可以以子CU为单位进行处理。或者,也可以设为将CTU、CU、TU替换为块,将子CU替换为子块,以块或者子块为单位进行的处理。
熵解码部301对从外部输入的编码流Te进行熵解码,分离各个编码(语法要素)并进行解码。熵编码中存在如下方式:使用根据语法要素的种类、周围的状况而适当选择出的上下文(概率模型)对语法要素进行可变长度编码的方式;以及使用预定的表或计算式对语法要素进行可变长度编码的方式。作为前者的代表有CABAC(Context Adaptive BinaryArithmetic Coding:上下文自适应二进制算术编码)。分离后的代码中存在用于生成预测图像的预测信息和用于生成差分图像的预测误差等。
熵解码部301将分离后的代码的一部分输出至参数解码部302。分离后的代码的一部分例如是预测模式predMode、合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_LX_idx以及差分矢量mvdLX等。基于参数解码部302的指示来进行对哪一个代码进行解码的控制。熵解码部301将量化变换系数输出至逆量化/逆变换部31l。
(参数解码部302)
图15是表示进行通知以实现阶段性刷新的语法的一个示例的图。图15的(a)表示在序列参数集(SPS)中通知的语法(阶段性刷新信息)。seq_refresh_enable_flag是表示在以后的图片中是否使用阶段性刷新的标志。参数解码部302对阶段性刷新信息进行解码,运动图像解码装置在seq_refresh_enable_flag标志为1的情况下,使用阶段性刷新对运动图像进行解码,在seq_refresh_enable_flag标志为0的情况下,不使用阶段性刷新。参数解码部302在seq_refresh_enable_flag为1的情况下,对seq_refresh_mode、seq_refresh_direction、seq_refresh_period进行解码。seq_refresh_mode是表示图13所示的阶段性刷新的种类的标志。
对于运动图像解码装置,如果seq_refresh_mode为0,则如图13的(a)、(b)所示,将新刷新区域(FRA)沿垂直方向插入图片,如果seq_refresh_mode为1,则如图13的(c)、(d)所示,将FRA沿水平方向插入图片。
seq_refresh_direction是表示图13所示的阶段性刷新的移位方向的标志。如果seq_refresh_direction为0,则如图13的(a)、(c)所示,运动图像解码装置将FRA从图片的左向右或者从上向下移位。如果seq_refresh_direction为1,则如图13的(b)、(d)所示,将FRA从图片的右向左或者从下向上移位。seq_refresh_period是SDR周期SDRperiod,表示随机接入点间的图片数。
图15的(b)表示在图片参数集(PPS)中通知的阶段性刷新信息的语法。参数解码部302在seq_refresh_enable_flag为1的情况下,对seq_refresh_position、seq_refresh_size、seq_refresh_overlap进行解码。seq_refresh_position是指定追加至限制区域的新刷新区域的左上坐标(xIR,yIR)的语法。在seq_refresh_mode为0(垂直矩形限制区域)的情况下,参数解码部302对x坐标xIR设定seq_refresh_position,将y坐标yIR设定为0。在seq_refresh_mode为1(水平矩形限制区域)的情况下,将x坐标yIR设定为0,将y坐标yIR设定为seq_refresh_position。seq_refresh_size是FRA的大小,在seq_refresh_mode为0的情况下,设定为FRA的宽度wIR,在seq_refresh_mode为1的情况下,设定为FRA的高度hIR。seq_refresh_overlap是按解码顺序前一张图片的FRA的位置和对象图片的FRA的位置重叠的区域的大小,在seq_refresh_mode为0的情况下,指定重叠的宽度wOVLP,在seq_refresh_mode为1的情况下指定重叠的高度hOVLP。需要说明的是,seq_refresh_overlap也可以为0。
(重叠新刷新区域)
如图16所示,在时刻t的对象图片中追加至限制区域的新刷新区域(FRA)可以与时刻t-1的图片的FRA重复(重叠)。在图16中,是宽度wOVLP重叠的区域。在该情况下,可以如下所述地减去重叠区域来推导出将时刻t的图片作为参照图片进行参照时的限制参照区域的终点。以下,也可以将减去重叠区域而得到的限制区域称为滤波限制区域(或滤波后限制区域、重叠限制区域、参照用限制区域)。seq_refresh_mode为1(水平矩形限制区域)的情况下的推导式如下所示。
(xRA_en[t],yRA_en[t])=(wPict,(hIR-hOVLP)*(t+1)-1)
seq_refresh_mode为0(垂直矩形限制区域)的情况下的推导式如下所示。
(xRA_en[t],yRA_en[t])=((wIR-wOVLP)*(t+1)-1,hPict)
在新限制区域(例如帧内刷新区域)从左向右移位的情况下,seq_refresh_mode=0且seq_refresh_direction=0)的情况下的滤波限制区域为0(垂直矩形限制区域)时的推导式如下所示。
(xRA_st[t],yRA_st[t])=(0,0)
(xRA_en[t],yRA_en[t])=((wIR-wOVLP)*(t+1)-1,hPict-1)
在新限制区域从右向左移位的情况下,(seq_refresh_mode=0且seq_refresh_direction=1)的情况下的滤波限制区域的推导式如下所示。
(xRA_st[t],yRA_st[t])=(wPict-(wIR-wOVLP)*(t+1)-1,0)
(xRA_en[t],yRA_en[t])=(wPict-1,hPict-1)
在新限制区域(例如帧内刷新区域)从上向下移位的情况下,(seq_refresh_mode=1且seq_refresh_direction=0)的滤波限制区域的推导式如下所示。
(xRA_st[t],yRA_st[t])=(0,0)
(xRA_en[t],yRA_en[t])=(wPict-1,(hIR-hOVLP)*(t+1)-1)
在新限制区域从下向上移位的情况下,(seq_refresh_mode=1且seq_refresh_direction=1)的情况下的滤波限制区域的推导式如下所示。
(xRA_st[t],yRA_st[t])=(wPict-1,hPict-(hIR-hOVLP)*(t+1)-1)
(xRA_en[t],yRA_en[t])=(wPict-1,hPict-1)
如此,运动图像解码装置能通过对在SPS或PPS中与阶段性刷新有关系的语法进行解码来获取阶段性刷新的信息。因此,运动图像解码装置能在随机接入时的运动图像的解码中利用阶段性刷新适当地对编码数据进行解码。
环路滤波器305是设于编码环路内的滤波器,是去除块失真、振铃失真来改善画质的滤波器。环路滤波器305对加法部312所生成的CU的解码图像应用去块滤波器3051、取样自适应偏移(SAO)、自适应环路滤波器(ALF)等滤波器。
(去块滤波器3051)
去块滤波器3051在经由块(CTU/CU/TU)边界邻接的像素的像素值之差在预先设定的范围内的情况下判定为存在块失真。然后,通过对去块滤波前解码图像中的该块边界实施去块处理,使该块边界附近的图像平滑化。
首先,去块滤波器3051以块为单位进行滤波的打开/关闭判定。例如,在满足(算式DB-1)的情况下,对对象块实施滤波。
abs(P20-2*P10+P00)+abs(P23-2*P13+P03)+abs(Q20-2*Q10+Q00)+abs(Q23-2*Q13+Q03)<β(算式DB-1)
在此,如图33的(a)或图33的(b)所示,P2k、P1k、P0k、Q0k、Q1k、Q2k(k=0,3)分别为距离块边界的距离为2、1、0、0、1、2像素的列或行。图33的(a)是在垂直方向块P与块Q相接的一个示例,图33的(b)是在水平方向块P与块Q相接的一个示例。P2k、P1k、P0k是在边界相接的块P、块Q中的块P中所包含的像素,Q0k、Q1k、Q2k是块Q中所包含的像素。k表示块边界方向的像素的编号。β为规定的阈值。
在满足(算式DB-1)的情况下,去块滤波器3051通过(算式DB-2)相对于块P和块Q的边界推导出滤波的强度。在满足(算式DB-2)的全部的情况下,去块滤波器3051将滤波强度设定为“强”,在不满足(算式DB-2)的情况下,将滤波强度设定为“弱”。
2*(abs(P20-2*P10+P00)+abs(Q20-2*Q10+Q00))<(β>>2)(算式DB-2)
2*(abs(P23-2*P13+P03)+abs(Q23-2*Q13+Q03))<(β>>2)
abs(P30-P00)+abs(Q00-Q30))<(β>>3)
abs(P33-P03)+abs(Q03-Q33))<(γ)
abs(P00-P00)+abs(Q00-Q30))<(γ)
在此,γ为取决于量化参数的阈值。
而且,在滤波强度为“强”的情况下,通过(算式DB-3)进行滤波处理。
P2k’=Clip3(P2k-δ,P2k+δ,(2*P3k+3*P2k+P1k+P0k+Q0k+4)>>3)(算式DB-3)
P1k’=CliP3(P1k-δ,P1k+δ,(P2k+P1k+P0k+Q0k+2)>>2)
P0k’=CliP3(P0k-δ,P0k+δ,(P2k+2*P1k+2*P0k+2*Q0k+Q1k+4)>>3)
Q0k’=CliP3(Q0k-δ,Q0k+δ,(P1k+2*P0k+2*Q0k+2*Q1k+Q2k+4)>>3)
Q1k’=CliP3(Q1k-δ,Q1k+δ,(P0k+Q0k+Q1k+Q2k+2)>>2)
Q2k’=CliP3(Q2k-δ,Q2k+δ,(P0k+Q0k+Q1k+3*Q2k+2*Q3k+4)>>3)
在此,P3k、P2k、P1k、P0k、Q0k、Q1k、Q2k、Q3分别为距离块边界的距离为3、2、1、0、0、1、2、3像素的列或行。δ是用于抑制滤波处理的变量。
在以上的示例中,去块滤波器3051参照从图33的(c)中横线所示的边界开始的每三个像素,以便确定在边界相接的两个块中滤波的打开/关闭和滤波的强度。此外,参照从图33的(d)中横线所示的边界开始的每四个像素对从图33的(e)中的纵线所示的边界开始的每三个像素的值进行校正,以便实施去块滤波。就是说,在滤波处理中需要邻接的不同的块的像素。
然而,如图34的(a)所示,在块P包括于限制区域,块Q不包括于限制区域的情况下,参照块Q实施滤波后的块P的区域参照随机接入时未确定的像素值(非限制区域),因此无法正常解码。
在本申请中,提供一种能通过以下的方法生成能随机接入的编码数据来正常进行解码的方法。
(限制区域的去块滤波限制)
图35是表示限制区域与去块滤波的关系的图。
本实施例的去块滤波器3051在seq_refresh_enable_flag为1的情况下,在隔着限制区域与非限制区域的边界而邻接的块中关闭滤波。
去块滤波器3051判定隔着块的边界(CU边界、PU边界、TU边界)的块P和块Q是否隔着限制区域边界。
例如,在将限制区域的左上坐标设为(xRA_st,yRA_st),将限制区域的宽度设为wRA,将块P的CU的宽度设为wCU时,隔着限制区域边界而邻接的块P和块Q的x坐标xCUP、xCUQ能通过(算式DB-4)来表现。
xCUP=xRA_st+wRA-wCU(算式DB-4)
xCUQ=xRA_st+wRA
去块滤波器3051可以使用以下块P的像素的坐标(xP,yP)和块Q的像素的坐标(xQ,yQ),可以是以下的判定式。
(IsRA(xP,yP)&&!IsRA(xQ,yQ))||(!IsRA(xP,yP)&&IsRA(xQ,yQ))
此外,在新限制区域的移位方法为固定的情况下,例如在seq_refresh_direction=0的情况下,可以使用以下的判定式。
(IsRA(xP,yP)&&!IsRA(xQ,yQ))
此外,例如在seq_refresh_direction=1的情况下,可以使用以下的判定式。
(!IsRA(xP,yP)&&IsRA(xQ,yQ))
例如,在将新限制区域的左上坐标设为(xIR,yIR),将新限制区域的宽度设为wIR,将块P的CU的宽度设为wCU时,隔着限制区域边界而邻接的块P和块Q的x坐标xCUP、xCUQ能通过(算式DB-4)来表现。
xCUP=xIR+wIR-wCU(算式DB-4)
xCUQ=xIR+wIR
在该情况下,去块滤波器3051可以对块的左上的x坐标满足(算式DB-4)的块P、块Q关闭滤波。
图36的(a)是表示本实施方式的去块滤波器3051的滤波处理的流程的流程图。
S2202:去块滤波器3051基于作为对象的块P和块Q的左上坐标来检查这些块是否隔着限制区域边界而邻接。
具体而言,在(IsRA(xP,yP)&&!IsRA(xQ,yQ))||(!IsRA(xP,yP)&&IsRA(xQ,yQ))为真的情况下,可以判定为隔着限制区域边界而邻接。此外,也可以将(IsRA(xP,yP)&&IsRA(xQ,yQ))||(!IsRA(xP,yP)&&!IsRA(xQ,yQ))为真的情况判定为隔着限制区域边界而不邻接。此外,也可以对作为减去重叠区域而得到的限制区域的滤波限制区域进行该判定。
S2204:在块P和块Q隔着限制区域边界而邻接的情况下(在S2202中为Y),去块滤波器3051在两个块双方中将滤波设定为关闭。
S2206:在块P和块Q隔着限制区域边界而不邻接的情况下(在S2202中为N),去块滤波器3051在两个块双方中将滤波设定为打开。即,在块P和块Q两方处于限制区域(IsRA(xP,yP)&&IsRA(xQ,yQ))或块P和块Q两方处于非限制区域的情况下(!IsRA(xP,yP)&&!IsRA(xQ,yQ)),打开滤波。也可以是,在块P和块Q两方处于限制区域IsRA(xP,yP)&&IsRA(xQ,yQ),或限制区域关闭(seq_refresh_enable_flag=0)的情况下,打开滤波。
在(算式DB-1)的判定前实施这些处理。在S2204中设定为关闭滤波的情况下,去块滤波器3051不进行(算式DB-1)以后的处理,进入下一个块的处理。在S2206中设定为打开滤波的情况下,去块滤波器3051进行(算式DB-1)以后的通常的处理。此时,如果不满足(算式DB-1),则去块滤波器3051关闭滤波。
如此,去块滤波器3051在限制区域的边界关闭去块滤波,由此,能推导出限制区域中所包括的限制区域的区域的像素值,而不使用非限制区域的像素值。因此,仅对限制区域边界关闭去块滤波,由此能在随机接入中实现正常的解码,并且实现低延迟。
(另一构成例)
作为另一示例,去块滤波器3051仅对隔着限制区域和非限制区域的边界而邻接的块中的限制区域内的块P关闭滤波。就是说,在块P的左上的x坐标满足(算式DF-4)的xCUP时关闭滤波。
图36的(b)是表示本实施方式的滤波处理的流程的流程图。
S2202和S2206是与图36的(a)相同的处理,省略其说明。
S2205:在块P和块Q隔着限制区域边界而邻接的情况下(在S2202中为Y),去块滤波器3051在块P中将滤波设定为关闭。
在该情况下,去块滤波器3051在块Q中进行基于(算式DB-1)的滤波的打开/关闭判定,在打开的情况下使用(算式DB-1)推导出滤波的强度,使用(算式DB-3)仅对块Q的像素Q0k、Q1k、Q2k实施滤波。
另一方面,在新刷新区域如图13的(c)所示地在垂直方向移位的情况下(seq_refresh_mode=1且seq_refresh_direction=0),在将限制区域的左上坐标设为(xIR,yIR),将限制区域的高度设为hIR,将CU的高度设为hCU时,能使用隔着限制区域边界而邻接的块P和块Q的y坐标yCUP、yCUQ通过(算式DB-5)来表现。
yCUP=yIR+hIR-hCU(算式DB-5)
yCUQ=yIR+hIR
如此,去块滤波器3051在限制区域的边界仅对实现随机接入功能所需的限制区域内的块关闭去块滤波,对随机接入功能不需要的块打开去块滤波。由此,能不使用非限制区域的像素值地推导出在以后的编码、解码处理中作为限制区域而被参照的区域的像素值。因此,仅对限制区域边界关闭去块滤波,由此能在随机接入中实现正常的解码,并且实现低延迟。
通过上述构成,去块滤波器3051在限制区域(刷新区域、第一区域)和非限制区域间(未刷新区域、第二区域)的滤波处理中强制关闭滤波。
通过上述构成,在限制区域与非限制区域区域间的滤波处理中,仅强制关闭限制区域侧的滤波处理。
(刷新区域的重叠)
在本实施例中,对去块滤波器3051不变更去块滤波处理,而在下一编码图片中将块P再次作为限制区域进行编码、解码的方法进行说明。
如以上所说明的那样,在通常的去块滤波处理中,在去块滤波器3051进行滤波的打开/关闭推导、滤波的强度推导、滤波中,块P参照块Q的信息。例如,如图35所示,隔着限制区域边界的双方的块在滤波处理中互相参照,对像素值进行校正。因此,在无法获取块Q的信息的情况下,无法正常对块P进行解码处理。
在去块滤波器3051中,使用非限制区域(块Q侧)的像素对限制区域内(块P侧)的像素实施滤波处理的情况下,限制区域中的块P侧的像素不被限制。因此,在后续的图片中,需要从限制区域中除去。因此,如图16所示,在后续的图片中参照t=k的图片时,也不将对象图片的限制区域(例如t=k)中的块P的列(由wOVLP宽度表示的区域)用作限制参照区域。需要说明的是,在时间上下一要编码的图片中,也可以将从该限制参照区域中除去的区域再次作为限制区域进行编码。
就是说,运动图像编码装置设定为在各时刻将限制区域重叠块P的宽度wOVL,将第二次编码后的块P设定为限制区域,在以后的编码处理中进行参照。然后,在时刻t=k+1,运动图像解码装置的去块滤波器3051参照左侧邻接的限制区域内的块和右侧邻接的相同的限制区域内的块,对第二次作为限制区域而解码的块P实施滤波。因此,块P能仅使用随机接入点以后的编码数据进行编码、解码。
去块滤波以块为单位进行处理,因此重叠的宽度wOVLP可以是CU的宽度wCU,但是,通过滤波校正的像素是块内的一部分。因此,如(算式DB-6)所示,可以从通过滤波校正的像素数numDFPEL和CU的宽度的最小值minC推导出重叠区域的宽度wOVLP。
wOVLP=ceil(numDFPEL/minCU)*minCU(算式DB-6)
例如,在numDFPEL=3,minCU为4的情况下,设为wOVLP=4。需要说明的是,wIR>wOVLP。在时刻t=k,将限制区域的左上坐标设为(xRA_st[k],yRA_st[k]),将限制区域的宽度设为wRA时,时刻t=k+1的限制参照区域的左上坐标(xRA_st[k+1],yRA_st[k+1])可以通过(算式DB-7)来推导。
xRA_st[k+1]=xRA_st[k]+wRA-wOVLP(算式DB-7)
yRA_st[k+1]=yRA_st[k]
另一方面,在新刷新区域(例如帧内刷新区域)如图13的(c)所示地在垂直方向移位的情况下,重叠区域的高度hOVLP和时刻t=k+1的限制参照区域的左上坐标(xRA_st[k+1],yRA_st[k+1])能通过(算式DB-8)来表现。
hOVLP=ceil(numDFPEL/minCU)*minCU(算式DB-8)
xRA_st[k+1]=xRA_st[k]
yRA_st[k+1]=yRA_st[k]+hRA-hOVLP
需要说明的是,hRA>hOVLP。
不过,在如(去块滤波关闭)中记载的那样,将块P的去块滤波关闭的情况下,将wOVLP、hOVLP设定为0,不进行重叠。
上述构成的动作能总结如下。
对阶段性刷新信息进行解码,判定对象块是否处于限制区域。在阶段性刷新打开(seq_refresh_enable_flag=1)且对象块处于限制区域的情况下(IsRA(xPb,yPb)为真),如已说明过的那样,仅使用限制区域的预测参数来推导出帧内预测和帧间预测的预测参数。而且,仅使用限制区域的像素进行帧内预测,仅使用参照图像的限制参照区域的像素进行帧间预测。
在环路滤波器中阶段性刷新打开(seq_refresh_enable_flag=1)且对象块处于限制区域的情况下(IsRA(xPb,yPb)为真),在限制区域中也应用去块滤波器。由此,从限制区域内的限制中除去了相当于限制区域中的重叠区域的区域,因此,将该区域从用于下一参照的参照限制区域中除去。需要说明的是,在环路滤波器中也可以将除去了相当于限制区域中的重叠区域的区域的范围用作限制区域,或进行滤波处理。
如此,运动图像编码装置在时刻t=k和时刻t=k+1将与限制区域边界相接的块的一部分或全部作为限制区域进行编码。然后,运动图像解码装置将在t=k+1解码后的块的像素值作为限制区域,在后续的图片中进行参照。因此,能在随机接入中实现正常的解码,并且实现低延迟。
通过上述构成,针对限制区域(刷新区域)的非限制区域(未刷新区域)侧或限制区域侧,通过与限制区域相同的方法对最小CU大小或包含滤波所需的像素数的CU大小(或通过语法指定的大小)的CU进行编码。
(变形例1)
近年来,从提高画质的观点出发,对大小较大的块使用大抽头数的去块滤波。例如,在32×32以上的块的情况下,通过滤波器对从块边界开始的7像素进行校正。就是说numDFPEL=7。然而,校正后的像素必须在下一图片中再次通过帧内预测(作为限制区域)进行编码。重叠区域越增加,编码效率越降低。在本变形例中,通过缩短与限制区域边界相接的块的去块滤波来削减重叠的限制区域,抑制编码效率的降低。
例如,在CU的最小值minCU=4,通过去块滤波校正的像素数numDFPEL_L=7(称为长滤波)的情况下,重叠宽度wOVLP通过(算式DF-6)得到8。与之相对,在将通过去块滤波校正的像素数缩短为numDFPEL_S=3(称为短滤波)时,重叠宽度wOVLP为4。
变形例1的去块滤波器3051根据是否为与限制区域边界相接的块来切换滤波的种类(长滤波、短滤波)。通过(算式DF-9)来判定是否为与限制区域边界相接的块。将限制区域的左上坐标设为(xRA_st[k],yRA_st[k]),将限制区域的宽度设为wRA,将块的左上坐标设为(xPb,yPb),将块的宽度设为wPb。
if(如果)(xPb==xRA_st[k]+wRA-wPb)(算式DF-9)
在(算式DF-9)为真的情况下,块与限制区域边界相接,因此,去块滤波器3051使用短滤波,否则,使用长滤波。
另一方面,在新刷新区域如图13的(c)所示地在垂直方向移位的情况下,通过(算式DF-10)来判定是否为与限制区域边界相接的块。
if(yPb==yRA_st[k]+hRA-hPb)(算式DF-10)
需要说明的是,通过块Q内的滤波校正后的像素数与重叠宽度没有关系,因此也可以在块Q中不实施切换去块滤波的处理。
如此,在与限制区域边界相接的块中,对去块滤波处理应用短滤波,由此能削减重叠宽度,抑制编码效率的降低。在该情况下,理想的是,短滤波的抽头数为CU的最小大小以下。
(帧间预测参数解码部的构成)
帧间预测参数解码部303基于从熵解码部301输入的代码,参照存储于预测参数存储器307的预测参数来对帧间预测参数进行解码。此外,帧间预测参数解码部303将解码后的帧间预测参数输出至预测图像生成部308,存储于预测参数存储器307。
图19的(a)是表示本实施方式的帧间预测参数解码部303的构成的概略图。帧间预测参数解码部303构成为包括:参数解码控制部3031、AMVP预测参数推导部3032、加法部3038、合并预测参数推导部3036以及子块预测参数推导部3037。也可以将AMVP预测参数推导部3032、合并预测参数推导部3036、子块预测参数推导部3037统称为运动矢量推导部(运动矢量推导装置)。
参数解码控制部3031向熵解码部301指示解码与帧间预测关联的语法要素,提取编码数据中所包括的语法要素,例如,合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_LX_idx以及差分矢量mvdLX。
参数解码控制部3031首先提取合并标志merge_flag。参数解码控制部3031表现为提取某个语法要素的情况是指向熵解码部301指示某个语法要素的解码,从编码数据中读出符合的语法要素的意思。
在合并标志merge_flag为0,即指示AMVP预测模式的情况下,参数解码控制部3031使用熵解码部301从编码数据中提取AMVP预测参数。作为AMVP预测参数,例如有帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_LX_idx以及差分矢量mvdLX。AMVP预测参数推导部3032根据预测矢量索引mvp_LX_idx推导出预测矢量mvpLX。参数解码控制部3031将差分矢量mvdLX输出至加法部3038。在加法部3038中,将预测矢量mvpLX和差分矢量mvdLX相加,推导出运动矢量。
在合并标志merge_flag为1,即指示合并预测模式的情况下,参数解码控制部3031提取合并索引merge_idx作为合并预测的预测参数。参数解码控制部3031将提取出的合并索引merge_idx输出至合并预测参数推导部3036。
图20的(a)是表示本实施方式的合并预测参数推导部3036的构成的概略图。合并预测参数推导部3036具备:合并候选推导部30361、合并候选选择部30362以及合并候选储存部30363。合并候选储存部30363储存从合并候选推导部30361输入的合并候选。需要说明的是,合并候选构成为包括:预测列表利用标志predFlagLX、运动矢量mvLX以及参照图片索引refIdxLX。在合并候选储存部30363中,索引按照规定的规则被分配至所储存的合并候选。
合并候选推导部30361直接使用已解码的邻接块的运动矢量和参照图片索引refIdxLX来推导出合并候选。除此以外,合并候选推导部30361可以在后述的空间合并候选推导处理、时间合并候选推导处理、组合合并候选推导处理以及零合并候选推导处理中应用仿射预测。
(空间合并候选推导处理)
作为空间合并候选推导处理,合并候选推导部30361按照规定的规则,读出预测参数存储器307所存储的预测参数(预测列表利用标志predFlagLX、运动矢量mvLX、参照图片索引refIdxLX),设定为合并候选。在参照图片的指定方法中,例如是处于距离对象块预先设定的范围内的各邻接块(例如分别与对象块的左端L、左下端BL、左上端AL、上端A、右上端AR相接的块)的预测参数。将各合并候选称为L、BL、AL、A、AR。
在对象块处于限制区域(IsRA(xPb,yPb)为真)且对象块的邻接块的参照位置(xNbX,yNbX)处于非限制区域(IsRA(xNbX,yNbX)为假)的情况下,合并候选推导部30361在合并候选的推导中不使用邻接块的值。即,在对象块处于限制区域(IsRA(xPb,yPb)为真)且对象块的邻接块的参照位置(xNbX,yNbX)处于限制区域的情况(IsRA(xNbX,yNbX)为真)且为帧内预测的情况下,合并候选推导部30361将该位置(xNbX,yNbX)用于合并候选的推导。
例如,在新限制区域如图13的(a)所示地从左向右移位的情况下(seq_refresh_mode=0且seq_refresh_direction=0),对象块处于限制区域(IsRA(xPb,yPb)为真),且对象块的右侧邻接位置B0(xPb+wPb,yPb-1)处于限制区域(IsRA(xPb+wPb,yPb-1)为真)的情况下,在合并候选推导部30361中,将B0设为可利用(availableB0=1),在合并候选的推导中使用右侧邻接块的值。
例如,在新限制区域如图13的(a)所示地从右向左移位的情况(seq_refresh_mode=0且seq_refresh_direction=1),对象块处于限制区域(IsRA(xPb,yPb)为真)且对象块的左侧邻接位置A0(xPb-1,yPb+hPb)、A1(xPb-1,yPb+hPb-1)、B2(xPb-1,yPb-1)处于限制区域的情况的情况下,帧内预测部3104在合并候选的推导中使用左侧邻接位置A0、A1、B2的值。
(时间合并候选推导处理)
作为时间合并推导处理,合并候选推导部30361从预测参数存储器307中读出对象块的右下CBR或包含中央的坐标的参照图像中的块C的预测参数,设为合并候选,并储存于合并候选列表mergeCandList[]。一般优先将块CBR加入合并候选列表mergeCandList[],在块CBR不具有运动矢量的(例如帧内预测块)情况、块CBR位于图片外的情况下,将块C的运动矢量加入预测矢量候选。在参照图像的指定方法中,例如可以使用在切片报头中指定的参照图片索引refIdxLX,也可以使用邻接块的参照图片索引refIdxLX中最小的参照图片索引来指定。
例如合并候选推导部30361可以通过(算式MRG-1)推导出块C的位置(xColCtr,yColCtr)和块CBR的位置(xColCBr,yColCBr)。
xColCtr=xPb+(wPb>>1)(算式MRG-1)
yColCtr=yPb+(hPb>>1)
xColCBr=xPb+wPb
yColCBr=yPb+hPb
在此,(xPb,yPb)为对象块的左上坐标,(wPb,hPb)为对象块的宽度和高度。如果块CBR可利用,则利用块CBR的运动矢量推导出合并候选COL。如果块CBR不可利用,则使用块C推导出COL。
由合并候选推导部30361推导出的上述合并候选储存于合并候选储存部30363。储存于合并候选列表mergeCandList[]的顺序例如是空间合并候选、时间合并候选,就是说{L,A,AR,BL,A,COL,COMB0,..}。需要说明的是,不可利用的(块为帧内预测等)参照块不储存于合并候选列表。
合并候选选择部30362选择储存于合并候选储存部30363的合并候选列表中所包括的合并候选中的分配有从参数解码控制部3031输入的合并索引merge_idx的合并候选mergeCandList[merge_idx]作为对象块的帧间预测参数。合并候选选择部30362将所选出的合并候选存储于预测参数存储器307,并且输出至预测图像生成部308。
图20的(b)是表示本实施方式的AMVP预测参数推导部3032的构成的概略图。AMVP预测参数推导部3032具备矢量候选推导部3033、矢量候选选择部3034以及矢量候选储存部3035。矢量候选推导部3033根据规定的规则,从预测参数存储器307所存储的已解码的邻接块的运动矢量mvLX推导出预测矢量候选,并储存于矢量候选储存部3035的预测矢量候选列表mvpListLX[]。
矢量候选选择部3034选择预测矢量候选列表mvpListLX[]的预测矢量候选中的预测矢量索引mvp_LX_idx所示的运动矢量mvpListLX[mvp_LX_idx]作为预测矢量mvpLX。矢量候选选择部3034将所选出的预测矢量mvpLX输出至加法部3038。
需要说明的是,可以通过后述的方法对距离对象块预先设定的范围的已解码邻接块的运动矢量进行缩放来推导出预测矢量候选。邻接块除了包括与对象块空间上邻接的块,例如左块、上块以外,还包括与对象块时间上邻接的区域,例如,根据包含与对象块相同的位置,显示时刻不同的块的预测参数获得的区域。
加法部3038将从AMVP预测参数推导部3032输入的预测矢量mvpLX和从参数解码控制部3031输入的差分矢量mvdLX相加,计算出运动矢量mvLX。加法部3038将计算出的运动矢量mvLX输出至预测图像生成部308和预测参数存储器307。
mvLX[0]=mvpLX[0]+mvdLX[0]
mvLX[1]=mvpLX[1]+mvdLX[1]
(运动矢量缩放)
对运动矢量的缩放的推导方法进行说明。在设为运动矢量Mv(参照运动矢量)、包含具有Mv的块的图片PicMv、Mv的参照图片PicMvRef、缩放后的运动矢量sMv(scaledMV)、包含具有sMv的块的图片CurPic、sMv所参照的参照图片CurPicRef时,通过(算式INTERP-1)所示的推导函数MvScale(Mv,PicMv,PicMvRef,CurPic,CurPicRef)推导出sMv。
sMv=MvScale(Mv,PicMv,PicMvRef,CurPic,CurPicRef)(算式INTERP-1)
=Clip3(-R1,R1-1,sign(distScaleFactor*Mv)*((abs(distScaleFactor*Mv)+round1-1)>>shift1))
distScaleFactor=Clip3(-R2,R2-1,(tb*tx+round2)>>shift2)
tx=(16384+abs(td)>>1)/td
td=DiffPicOrderCnt(PicMv,PicMvRef)
tb=DiffPicOrderCnt(CurPic,CurPicRef)
在此,round1、round2、shift1、shift2是用于使用倒数进行除法的轮次值和移位值,例如,round1=1<<(shift1-1),round2=1<<(shift2-1),shift1=8,shift2=6等。DiffPicOrderCnt(Pic1,Pic2)是返回Pic1与Pic2的时间信息(例如POC)之差的函数。为了以有限的精度进行处理,对R1、R2的值域进行限制,例如,R1=32768,R2=4096等。
此外,缩放函数MvScale(Mv,PicMv,PicMvRef,CurPic,CurPicRef)可以是以下的算式。
MvScale(Mv,PicMv,PicMvRef,CurPic,CurPicRef)=
Mv*DiffPicOrderCnt(CurPic,CurPicRef)/DiffPicOrderCnt(PicMv,PicMvRef)
即,可以根据CurPic与CurPicRef的时间信息之差和PicMv与PicMvRef的时间信息之差的比对Mv进行缩放。
(帧内预测参数解码部304的构成)
帧内预测参数解码部304基于从熵解码部301输入的代码,参照存储于预测参数存储器307的预测参数来对帧内预测参数进行解码,例如对帧内预测模式IntraPredMode进行解码。帧内预测参数解码部304将解码后的帧内预测参数输出至预测图像生成部308,再存储于预测参数存储器307。帧内预测参数解码部304也可以推导出在亮度和色差上不同的帧内预测模式。
图21是表示参数解码部302的帧内预测参数解码部304的构成的概略图。如图21所示,帧内预测参数解码部304构成为包括:参数解码控制部3041、亮度帧内预测参数解码部3042以及色差帧内预测参数解码部3043。
参数解码控制部3041对熵解码部301指示语法要素的解码,从熵解码部301接收语法要素。其中,在prev_intra_luma_pred_flag为1的情况下,参数解码控制部3041向亮度帧内预测参数解码部3042内的MPM参数解码部30422输出mpm_idx。此外,在prev_intra_luma_pred_flag为0的情况下,参数解码控制部3041向亮度帧内预测参数解码部3042的非MPM参数解码部30423输出rem_selected_mode_flag、rem_selected_mode、rem_non_selected_mode。此外,参数解码控制部3041向色差帧内预测参数解码部3043输出色差的帧内预测参数的语法要素。
亮度帧内预测参数解码部3042构成为包括:MPM候选列表导出部30421、MPM参数解码部30422以及非MPM参数解码部30423(解码部、推导部)。
MPM参数解码部30422参照由MPM候选列表推导部30421推导出的MPM候选列表mpmCandList[]和mpm_idx来推导出亮度预测模式IntraPredModeY,输出至帧内预测图像生成部310。
非MPM参数解码部30423根据MPM候选列表mpmCandList[]和rem_selected_mode_flag、rem_selected_mode、rem_non_selected_mode推导出RemIntraPredMode,将亮度预测模式IntraPredModeY输出至帧内预测图像生成部310。
色差帧内预测参数解码部3043根据色差的帧内预测参数的语法要素推导出色差预测模式IntraPredModeC,输出至帧内预测图像生成部310。
在使用刷新来实现随机接入的情况下,对上述的参数附加部分限制。在限制参照区域与非限制参照区域的边界,在后述的参照像素滤波、预测图像生成处理中,有时参照非限制参照区域的像素,需要对参照像素滤波器、预测模式、预测像素生成处理等进行限制。
参照图片存储器306将加法部312所生成的CU解码图像按每个对象图片和对象CU存储于预定的位置。
预测参数存储器307将预测参数按每个解码对象的CTU或CU存储于预定的位置。具体而言,预测参数存储器307存储由参数解码部302解码后的参数和由熵解码部301分离后的预测模式predMode等。
预测图像生成部308被输入预测模式predMode、预测参数等。此外,预测图像生成部308从参照图片存储器306中读出参照图片。预测图像生成部308在预测模式predMode所指示的预测模式(帧内预测、帧间预测)下,使用预测参数和读出的参照图片(参照图片块)来生成块或子块的预测图像。在此,参照图片块是指参照图片上的像素的集合(通常为矩形,因此称为块),是为了生成预测图像而参照的区域。
(帧间预测图像生成部309)
在预测模式predMode指示帧间预测模式的情况下,帧间预测图像生成部309使用从帧间预测参数解码部303输入的帧间预测参数和参照图片,通过帧间预测来生成块或子块的预测图像。
图22是表示本实施方式的预测图像生成部308中所包括的帧间预测图像生成部309的构成的概略图。帧间预测图像生成部309构成为包括运动补偿部(预测图像生成装置)3091和加权预测部3094。
(运动补偿)
运动补偿部3091(插补图像生成部)基于从帧间预测参数解码部303输入的帧间预测参数(预测列表利用标志predFlagLX、参照图片索引refIdxLX、运动矢量mvLX),从参照图片存储器306中读出处于在由参照图片索引refIdxLX指定的参照图片RefLX中的以对象块的位置为起点移位了运动矢量mvLX的位置的块,由此生成插补图像(运动补偿图像)。在此,在运动矢量mvLX的精度并非整数精度的情况下,实施称为运动补偿滤波的用于生成小数位置的像素的滤波,生成运动补偿图像。
运动补偿部3091首先通过以下的算式推导出与预测块内坐标(x,y)对应的整数位置(xInt,yInt)和相位(xFrac,yFrac)。
xInt=xPb+(mvLX[0]>>(log2(MVBIT)))+x
xFrac=mvLX[0]&(MVBIT-1)
yInt=yPb+(mvLX[1]>>(log2(MVBIT)))+y
yFrac=mvLX[1]&(MVBIT-1)
在此,(xPb,yPb)为wPb*hPb大小的块的左上坐标,x=0…wPb-1,y=0…hPb-1,MVBIT表示运动矢量mvLX的精度(1/MVBIT像素精度)。
运动补偿部3091使用内插滤波器对参照图片refImg进行水平插补处理由此推导出临时的图像temp[][]。以下的∑是与k=0..NTAP-1的k有关的和,shift1是调整值的区间的归一化参数,offset1=1<<(shift1-1)。
temp[x][y]=(∑mcFilter[xFrac][k]*refImg[xInt+k-NTAP/2+1][yInt]+offset1)>>shift1
接着,运动补偿部3091通过对临时的图像temp[][]进行垂直插补处理,推导出插补图像Pred[][]。以下的∑是与k=0..NTAP-1的k有关的和,shift2是调整值的区间的归一化参数,offset2=1<<(shift2-1)。
Pred[x][y]=(∑mcFilter[yFrac][k]*temp[x][y+k-NTAP/2+1]+offset2)>>shift2
需要说明的是,在双向预测的情况下,按每个L0列表、L1列表推导出上述的Pred[][](称为插补图像PredL0[][]和PredL1[][]),根据插补图像PredL0[][]和插补图像PredL1[][]生成插补图像Pred[][]。
(加权预测)
加权预测部3094通过将运动补偿图像PredLX与加权系数相乘,生成块的预测图像。在预测列表利用标志的一方(predFlagL0或predFlagL1)为1(单向预测)且不使用加权预测的情况下,进行使运动补偿图像PredLX(LX为L0或L1)与像素比特数bitDepth匹配的以下的算式的处理。
Pred[x][y]=Clip3(0,(1<<bitDepth)-1,(PredLX[x][y]+offset1)>>shift1)
在此,shift1=14-bitDepth,offset1=1<<(shift1-1)。
此外,在参照列表利用标志两者(predFlagL0和predFlagL1)为1(双向预测BiPred)且不使用加权预测的情况下,进行将运动补偿图像PredL0、PredL1平均,并使其平均数与像素比特数匹配的以下的算式的处理。
Pred[x][y]=Clip3(0,(1<<bitDepth)-1,(PredL0[x][y]+PredL1[x][y]+offset2)>>shift2)
在此,shift2=15-bitDepth,offset2=1<<(shift2-1)。
而且,在进行单向预测且进行加权预测的情况下,加权预测部3094从编码数据推导出加权预测系数w0和偏移值o0,并进行以下的算式的处理。
Pred[x][y]=Clip3(0,(1<<bitDepth)-1,((PredLX[x][y]*w0+2^
(log2WD-1))>>log2WD)+o0)
在此,log2WD是表示规定的移位量的变量。
而且,在进行双向预测BiPred且进行加权预测的情况下,加权预测部3094从编码数据推导出加权预测系数w0、w1、o0、o1,进行以下的算式的处理。
Pred[x][y]=Clip3(0,(1<<bitDepth)-1,(PredL0[x][y]*w0+PredL1[x][y]*w1+((o0+ol+1)<<log2WD))>>(log2WD+1))
帧间预测图像生成部309将生成的块的预测图像输出至加法部312。
(刷新和帧间预测)
在刷新中,为了在随机接入时实现随机接入点以后的正常的解码处理,在限制区域的帧间预测中也需要仅参照参照图片的限制区域(限制参照区域)来生成预测图像。
(限制参照区域的边界填充)
在本实施例的运动补偿部3091中,如图23的(a)所示,在对象块Pb处于限制区域且seq_refresh_enable_flag为1的情况下,参照图片的像素处于非限制参照区域的情况下,实施将参照图片中的非限制参照区域(第二参照区域)的像素值置换成限制参照区域的像素值的填充处理。例如,在对象块的左上坐标为(xPb,yPb),宽度和高度为bW和bH的情况下,运动补偿部3091通过已说明过的IsRA(Pb)推导出对象块(Pb)是否处于限制区域内。
边界填充通过在由运动补偿部3091进行的插补图像生成(运动补偿)中使用以下的位置xRef+i,yRef+j的像素值refImg[xRef+i][yRef+j]作为参照像素的位置(xIntL+i,yIntL+i)的像素值来实现。即,通过将用于插补图像生成的像素的参照位置裁剪到参照图片的限制参照区域的边界像素的位置(例如左端、上端、下端、右端的位置)来实现。
例如,在参照图片的限制参照区域的左端位置为xRA_st,右端位置为xRA_en,上端位置为yRA_st,下端位置为yRA_en的情况下,运动补偿部3091进行以下的边界填充处理。就是说,在参照位置的X坐标xIntL+i小于限制参照区域的左端的情况下置换成限制参照区域的左端像素的位置xRA st。同样,在参照位置的X坐标xIntL+i大于限制参照区域的右端的情况下置换成限制参照区域的右端像素的位置xRA_en。在Y坐标yIntL+j小于限制参照区域的上端的情况下置换成上端像素位置yRA_st,在Y坐标yIntL+j大于限制参照区域的下端的情况下置换成下端像素的位置yRA_en。
xRef+i=Clip3(xRA_st,xRA_en,xIntL+i)(算式INTERP-2)
yRef+j=Clip3(yRA_st,yRA_en,yIntL+j)
例如,在阶段性刷新信息打开(seq_refresh_enable_flag=1),而且seq_refresh_mode=0、seq_refresh_direction=0的情况下,就是说,使限制参照区域从左向右移动的情况下,将时刻t=k的限制参照区域的右端位置(宽度)设为wRA[k]时,
xRA_st=0,xRA_en=wRA[k]-1
yRA_st=0,yRA_en=hPict-1
因此,运动补偿部3091使用(算式INTERP-3)推导出参照像素的坐标。
xRef+i=Clip3(0,wRA[k]-1,xIntL+i)(算式INTERP-3)
yRef+j=Clip3(0,hPict-1,yIntL+j)
在此,hPict为图片的高度。
需要说明的是,对于xIntL、yIntL,在将以图片的左上坐标为基准的对象块的左上坐标设为(xPb,yPb),将运动矢量设为(mvLX[0],mvLX[1])时,通过(算式INTERP-3’)推导出参照像素的坐标。
xIntL=xPb+(mvLX[0]>>log2(MVBIT))(算式INTERP-3’)
yIntL=yPb+(mvLX[1]>>log2(MVBIT))
在此,MVBIT表示运动矢量的精度为1/MVBIT像素(pel)。
能通过读出坐标(xRef+i,yRef+j)的像素值来实现图23的(a)的填充。
需要说明的是,在阶段性刷新信息中,seq_refresh_mode=0、seq_refresh_direction=1的情况下,就是说,在使限制参照区域从右向左移动的情况下,通过yRA_en=wRA[k]推导出左端坐标xRA_st,使用以下的算式推导出参照像素的坐标。
xRef+i=Clip3(wRA[k],wPict-1,xIntL+i)(算式INTERP-2’)
yRef+j=Clip3(0,hPict-1,yIntL+j)
在此,
xRA_st=wRA[k],xRA_en=wPict-1
yRA_st=0,yRA_en=hPict-1
另一方面,在刷新如图13的(c)所示地在垂直方向移位的情况下(在阶段性刷新信息中,seq_refresh_mode=1、seq_refresh_direction=0的情况),在将限制参照区域的高度设为hRA时,通过yRA_en=hRA-1推导出下端坐标,在边界填充中使用(算式INTERP-4)来推导出参照像素的坐标。
xRef+i=Clip3(0,wPict-1,xIntL+i)(算式INTERP-4)
yRef+j=Clip3(0,yRA_en,yIntL+j)
在此,wPict为图片的宽度。
在阶段性刷新中,如此使用限制参照区域的边界像素来进行填充,由此,即使在限制区域内的帧间预测中的运动矢量指向参照图片的限制参照区域外(非限制参照区域)的情况下,也使用限制参照区域内的像素值来置换参照像素,因此,在帧间预测中也能实现随机接入点以后的正常的解码处理。
通过上述过程,在限制区域的帧间预测中,在使用了指向限制参照区域外的运动矢量的图像生成处理中,运动补偿部3091使用限制参照区域的像素来置换(填充)非限制参照区域的像素。
(限制参照区域的运动矢量限制)
在参照参照图片时,作为仅参照限制参照区域的像素来生成预测图像的另一方法,存在边界运动矢量限制。在本实施例中,在由后述的运动补偿部3091进行的运动补偿中,限制(裁剪)运动矢量,使参照像素的位置(xIntL+i,yIntL+j)进入限制参照区域内。
在本实施例中,可以是,在时刻t=k的对象块的左上坐标为(xPb,yPb)、块的大小为(wPb,hPb)、将时刻j的参照图片的限制参照区域的位置设为(xRA_st[j],xRA_st[j])、将大小设为(wRA[j],hRA[j])时,将块的运动矢量mvLX设为输入,判定运动矢量的尖端是否处于限制范围内。将该判定式表示为(算式INTERP-5)。
IsRA(Pb,mvLX)=(xRA_st[j]<=xPb+(mvLX[0]>>log2(MVBIT))-NTAP2+1)&&
(xPb+wPb-1+(mvLX[0]>>log2(MVBIT))+NTAP2<xRA_st[j]+wRA[j])(算式INTERP-5)
此外,也可以是以下的算式。
IsRA(Pb,mvLX)=(yRA_st[j]<=yPb+(mvLX[1]>>log2(MVBIT))-NTAP2+1)&&
(yPb+hPb-1+(mvLX[1]>>log2(MVBIT))+NTAP2<yRA_st[j]+hRA[j])
此外,在本实施例中,在时刻t=k的对象块的左上坐标为(xPb,yPb)、块的大小为(wPb,hPb)、将时刻j的参照图片的限制参照区域的位置设为(xRA_st[j],xRA_st[j])、将大小设为(wRA[j],hRA[j])时,将块的运动矢量mvLX设为输入,输出被限制的运动矢量mvLX。将该运动矢量mvLX的限制表示为(算式INTERP-6)。
mvLX[0]=ClipRA(mvLX[0])=Clip3(xRA_st[j]+(NTAP2-1-xPb)<<log2(MVBIT),(xRA_st[j]+wRA[j]-NTAP2-xPb-wPb)<<log2(MVBIT),mvLX[0])(算式INTERP-6)
mvLX[1]=ClipRA(mvLX[1])=Clip3(yRA_st[j]+(NTAP2-1-yPb)<<log2(MVBIT),(yRA_st[j]+hRA[j]-NTAP2+1-yPb-hPb)<<log2(MVBIT),mvLX[1])
将上述裁剪处理在以下表现为ClipRA(mvLX)。
或者,在限制区域从左向右移位的情况(在阶段性刷新信息中,seq_refresh_mode=0、seq_refresh_direction=0的情况)且限制参照区域的宽度为wRA的情况下,xRA_st=0,xRA_en=wRA-1,yRA_st=0,yRA_en=hPict-1,因此可以通过以下的算式来推导。
mvLX[0]=Clip3((NTAP2-1-xPb)<<log2(MVBIT),(wRA[k]-NTAP2-xPb-wPb)<<log2(MVBIT),mvLX[0])(算式INTERP-6)
mvLX[1]=Clip3((NTAP2-1-yPb)<<log2(MVBIT),(hPict-NTAP2+1-yPb-hPb)<<log2(MVBIT),mvLX[1])
在此,NTAP是用于插补图像生成的滤波的抽头数,NTAP2=NTAP/2。此外,时刻t=k的限制参照区域的宽度wRA[k]可以使用限制区域的宽度wIR和重叠的宽度wOVLP,通过(算式INTERP-7)的算式推导。
wRA[k]=(wIR-wOVLP)*(k+1)(算式INTERP-7)
另一方面,在限制区域如图13的(c)所示地在垂直方向移位的情况下(在阶段性刷新信息中,seq_refresh_mode=1、seq_refresh_direction=0的情况),可以通过(算式INTERP-8)推导出运动矢量mvLX的限制和时刻t=k的限制参照区域的高度hRA[k]。
mvLX[0]=Clip3((NTAP2-1-xPb)<<log2(MVBIT),(wPict-NTAP2+1-xPb-wPb+1)<<log2(MVBIT),mvLX[0])(算式INTERP-8)
mvLX[1]=Clip3((NTAP2-1-yPb)<<log2(MVBIT),(hRA[k]-NTAP2+1-yPb-hPb+1)<<log2(MVBIT),mvLX[1])
hRA[k]=(hIR-hOVLP)*(k+1)
在刷新中,如此限制运动矢量,由此,运动矢量指向参照图片的限制区域内,因此在限制区域的帧间预测中也能实现随机接入点以后的正常的解码处理。
通过上述过程,在帧间预测参数解码部303、运动补偿部3091进行帧间预测的情况下将指向非限制参照区域的矢量裁剪到限制参照边界内。(限制参照区域的合并预测限制)
在后续图片中的限制区域的帧间预测中能参照的限制区域(限制参照区域,)如图10的(d)中的横线所示,具有根据参照图片(时刻)而不同的范围。因此,在如合并预测所示地根据对象块的周边块(以下邻接块)的运动矢量来估计对象块的运动矢量的情况下,需要进行追加处理。
图23的(b)是表示本实施例的一个示例的图。在图23的(b)中,对象块处于时刻t=4的图片的限制区域。而且,在空间合并候选中使用的邻接块AL的参照图片索引表示时刻t=1的图片(参照图片PicMvRef),该运动矢量为mvLX_AL。在由邻接块AL的运动矢量mvLX_AL参照的时刻t=1的区域包括于限制参照区域情况下,在将运动矢量mvLX_AL作为合并候选应用于对象块的运动矢量时,也有可能指向限制参照区域外。本实施例的合并预测参数推导部3036如此推导出合并候选,使指向限制参照区域外的合并候选不包括于合并候选列表。
具体而言,在seq_refresh_enable_flag为1的情况下,在合并预测参数推导部3036推导出的合并候选(例如合并候选N)中,参照图片索引和运动矢量处于限制参照区域,就是说在IsRA(Pb,mvLX_N)为真的情况下,将合并候选N的利用可能性availabilityN设定为1,在限制参照区域外的情况下将availabilityN设定为0。此外,也可以仅将利用可能性availabilityN为1的合并候选设定于合并候选列表。
此外,在seq_refresh_enable_flag为1的情况下,在合并预测参数推导部3036推导出的合并候选(例如合并候选N)的L0参照图片、L1参照图片中分别判定参照图片索引refIdxLXN和运动矢量mvLXN是否指向限制参照区域。在指向限制参照区域内的情况下,如果是利用标志predFlagLX=1(X=0,1),则可以将进行双向预测的合并候选设定于合并候选列表。在L0、L1的参照图片列表中的一方的参照图片不可利用的(!IsRA(Pb,mvLXN))情况下,对于predFlagLX=1的参照图片列表LX,将单预测的合并候选设定于合并候选列表。此外,在L0、L1的参照图片列表两方的参照图片不可利用的predFlagLX=0的情况下,将合并候选N的利用可能性availabilityN设定为0。
可以是,在seq_refresh_enable_flag为1的情况下,合并预测参数推导部3036按顺序参照已生成的合并候选列表,在已生成的合并候选列表中的参照图片索引和运动矢量指示限制参照区域外的情况下,从合并候选列表中除去。
在阶段性刷新信息中,在seq_refresh_mode=1、seq_refresh_direction=0的情况下,合并候选的参照图片索引所示的参照图片的时刻为t=j,合并候选的运动矢量为mvLX_AL的情况下,设为具有满足(算式INTERP-9)的参照图片索引和运动矢量的设为可利用的合并候选。
xPb+wPb-1+mvLX_AL[0]<=xRA_en[j]-1(算式INTERP-9)
或者可以通过以下的算式进行推导。
xPb+wPb-1+mvLX_AL[0]<xRA_st[j]+wRA[j]
或者可以通过以下的算式进行推导。
xPb+wPb-1+mvLX_AL[0]<=(wIR-wOVLP)*(j+1)
另一方面,在阶段性刷新信息中,在seq_refresh_mode=1、seq_refresh_direction=0的情况,就是说,限制区域如图13的(c)所示地在垂直方向从上向下地移位的情况下,合并候选的参照图片索引和运动矢量使用(算式INTERP-10)来判定可利用的合并候选。
yPb+hPb-1+mvLX_AL[1]<=yRA_en[j]-1(算式INTERP-10)
或者可以通过以下的算式进行推导。
yPb+hPb-1+mvLX_AL[1]<yRA_st[j]+wRA[j]
或者可以通过以下的算式进行推导。
yPb+hPb-1+mvLX_AL[1]<=(hIR-hOVLP)*(j+1)
如上所述,在使用限制区域来实现随机接入的情况下限制合并候选,使对象块所参照的区域包括于限制参照区域,由此能实现随机接入点以后的正常的解码处理。
或者,作为另一示例,本实施方式的合并候选推导部30361也可以在seq_refresh_enable_flag为1且对象块Pb处于限制区域内IsRA(Pb)的情况下,使用以下的算式将合并候选N运动矢量mvLX_N裁剪到限制区域内的位置。
mvLX[0]=ClipRA(mvLX_N[0])
mvLX[1]=ClipRA(mvLX_N[1])
或者,作为seq_refresh_enable_flag为1的另一示例,对于在将合并候选的参照图片索引和运动矢量应用于对象块时,对象块所参照的区域包括于非限制参照区域的情况进行说明。在该情况下,可以通过修正参照图片索引,对运动矢量进行缩放来判定对象块的参照区域是否包括于限制参照区域IsRA(Pb,scaledMV)。
在阶段性刷新信息中,seq_refresh_mode=0、seq_refresh_direction=0的情况下,参照图片索引和运动矢量使用(算式INTERP-11)来判定能利用的合并候选。
xPb+wPb-1+scaledMV[0]<=xRA_en[j]-1(算式INTERP-11)
或者可以通过以下的算式进行推导。
xPb+wPb-1+scaledMV[0]<xRA_st[j]+wRA[j]
或者可以通过以下的算式进行推导。
xPb+wPb-1+scaledMV[0]<=(wIR-wOVLP)*(j’+1)
scaledMV=MvScale(mvLX_AL,k,j,k,j’)
在此,k为对象图片的时刻,j为邻接块的参照图片的时刻,但也可以将这些视为POC。scaledMV是缩放后的邻接块的运动矢量,通过(算式INTERP-1)进行推导。j’是修正后的参照图片索引所指示的参照图片的时刻(POC)。
另一方面,在限制区域如图13的(c)所示地在垂直方向移位的情况下(在阶段性刷新信息中,seq_refresh_mode=1、seq_refresh_direction=0的情况),推导出参照图片索引和运动矢量,以满足(算式INTERP-12)。
yPb+hPb-1+scaledMV[1]<=(hIR-hOVLP)*(j’+1)(算式INTERP-12)
scaledMV=MvScale(mvLX_AL,k,j,k,j’)
如上所述,在使用限制区域实现随机接入的情况下,通过修正合并候选的参照图片索引、运动矢量将对象块的参照区域包括于限制参照区域,因此,能实现随机接入点以后的正常的解码处理。
(帧内预测图像生成部310)
在预测模式predMode指示帧内预测模式的情况下,帧内预测图像生成部310使用从帧内预测参数解码部304输入的帧内预测参数和从参照图片存储器306中读出的参照像素来进行帧内预测。
具体而言,帧内预测图像生成部310从参照图片存储器306中读出对象图片上的距离对象块预定的范围的邻接块。预定的范围是在对象块的左、左上、上、右上的邻接块,根据帧内预测模式参照的区域不同。
帧内预测图像生成部310参照读出的解码像素值和帧内预测模式IntraPredMode所指示的预测模式来生成对象块的预测图像。帧内预测图像生成部310将生成的预测图像输出至加法部312。
以下,对基于帧内预测模式的预测图像的生成进行说明。在Planar预测、DC预测、Angular预测中,将与对象块邻接的已解码的周边区域设定为参照区域。然后,将参照区域上的像素向特定的方向外插来生成预测图像。例如,可以将参照区域设定为包括对象块的左和上(或者进一步包括左上、右上、左下)的L字型的区域(例如图24的(a)的斜线的圆形标记的像素所示的区域)。
(预测图像生成部的详细内容)
接着,使用图25对帧内预测图像生成部310的构成的详细内容进行说明。帧内预测图像生成部310具备:对象块设定部3101、未滤波参照图像设定部3102(第一参照图像设定部)、已滤波参照图像设定部3103(第二参照图像设定部)、预测部3104以及预测图像校正部3105(预测图像校正部、滤波切换部、加权系数变更部)。
预测部3104基于参照区域上的各参照像素(未滤波参照图像)、应用参照像素滤波器(第一滤波器)生成的已滤波参照图像、帧内预测模式,生成对象块的临时预测图像(校正前预测图像),输出至预测图像校正部3105。预测图像校正部3105根据帧内预测模式来修正临时预测图像,生成预测图像(已校正的预测图像)并输出。
以下,对帧内预测图像生成部310所具备的各部进行说明。
(对象块设定部3101)
对象块设定部3101将对象CU设定为对象块,输出与对象块有关的信息(对象块信息)。对象块信息中至少包括对象块的大小、位置、指示亮度或色差的索引。
(未滤波参照图像设定部3102)
未滤波参照图像设定部3102基于对象块的大小和位置,将对象块的邻接区域设定为参照区域。接着,对参照区域内的各像素值(未滤波参照图像、边界像素)设置参照图片存储器306上对应的位置的各解码像素值。图24的(a)所示的与对象块上边邻接的解码像素的行r[x][-1]和与对象块左边邻接的解码像素的列r[-1][y]为未滤波参照图像。使用以对象图片的左上坐标为基准来表现的对象图片的解码像素值u[][],通过(算式INTRAP-1)来设定未滤波参照图像r[x][y]。
r[x][y]=u[xPb+x][yPb+y](算式INTRAP-1)
x=-1,y=-1..(maxBS*2-1)和x=0..(maxBS*2-1),y=-1
在此,(xPb,yPb)表示对象块的左上坐标,maxBS表示对象块的宽度wPb或高度hPb中较大的一方的值。
在(算式INTRAP-1)中,如图24的(a)所示,与对象块上边邻接的解码像素的行r[x][-1]和与对象块左边邻接的解码像素的列r[-1][y]为未滤波参照图像。需要说明的是,在不存在或无法参照与参照像素位置对应的解码像素值的情况下,可以将既定的值(例如,在像素比特深度为bitDepth的情况下,1<<(bitDepth-1))设定为未滤波参照图像。或者,也可以将存在于对应的解码像素的附近的可参照的解码像素值设定为未滤波参照图像。此外,“y=-1..(maxBS*2-1)”表示y可以取-1到(maxBS*2-1)的(maxBS*2+1)个值,“x=0..(maxBS*2-1)”表示x可以取0到(maxBS*2-1)的(maxBS*2)个值。
(限制区域的参照区域的像素值设定1)
在seq_refresD_enable_flag为1,对象块Pb处于限制区域内的情况下(IsRA(Pb)为真),本实施方式的帧内预测图像生成部310在限制区域(第一区域)和非限制区域(第二区域)的边界,不参照图26的(a)所示的非限制区域的像素值。就是说,在seq_refresh_enable_flag为1的情况下,帧内预测图像生成部310将非限制区域的像素设定为作为参照像素“不可利用(notavailable)”。在该情况下,帧内预测图像生成部310将限制区域内的r[wCU-1][-1]设定为限制区域外的参照像素r[x][-1](x>=wCU)的像素值。
r[x][-1]=r[wCU-1][-1](wCU<=x<2*maxBS)(算式INTRAP-2)
另一方面,在限制区域在垂直方向移位的情况下,将r[-1][hCU-1]设定为参照像素r[-1][y](y>=hCU)的像素值。
r[-1][y]=r[-1][hCU-1](hCU<=y<2*maxBS)(算式INTRAP-3)
通过如此设定参照区域,在何种帧内预测模式下,都不会参照非限制区域的像素值来生成预测图像。因此,无需变更后述的已滤波参照图像设定部3103、帧内预测部3104、预测图像校正部3105的处理。
(已滤波参照图像设定部3103)
已滤波参照图像设定部3103根据帧内预测模式,对未滤波参照图像应用参照像素滤波器(第一滤波器),推导出参照区域上的各位置(x,y)的已滤波参照图像s[x][y]。具体而言,对位置(x,y)和其周边的未滤波参照图像应用低通滤波器,推导出已滤波参照图像(图24的(b))。需要说明的是,不一定对全部帧内预测模式应用低通滤波器,也可以对一部分的帧内预测模式应用低通滤波器。
接着,对于在未滤波参照图像设定部3102中,在限制区域与非限制区域的边界不使用(参照区域的像素值设定1)的方法,而通过(算式INTRAP-1)所示的通常的方法设定参照区域的情况进行说明。
在参照像素滤波器为抽头数NTAP的平滑滤波器的情况下,已滤波参照图像设定部3103如图26的(b)所示,不对参照非限制区域的像素实施滤波的像素实施参照像素滤波器。就是说,将非限制区域的像素设定为作为参照像素“不可利用(not available)”。在该情况下,也可以不对非限制区域的像素或对象块的上侧的所有参照区域实施参照像素滤波。
或者,在参照像素滤波器为参照r[maxBS*2-1][-1]的像素值的线性滤波器的情况下,至少不对对象块的上侧的参照区域实施滤波。
另一方面,在限制区域在垂直方向移位的情况下,未实施滤波的参照区域是对象块的左侧的参照区域。此外,在参照像素滤波器是参照r[-1][maxBS*2-1]的像素值的线性滤波器的情况下,至少不对对象块的左侧的参照区域实施滤波。
在通过通常的方法设定参照区域的情况下,在后述的帧内预测部3104中也需要进行与通常的方法不同的处理。
需要说明的是,将在已滤波参照像素设定部3103中应用于参照区域上的未滤波参照图像的滤波器称为“参照像素滤波器(第一滤波器)”,与之相对,将在后述的预测图像校正部3105中对临时预测图像进行校正的滤波器称为“边界滤波器(第二滤波器)”。
(帧内预测部3104的构成)
帧内预测部3104基于帧内预测模式、未滤波参照图像、已滤波参照像素值来生成对象块的临时预测图像(临时预测像素值、校正前预测图像),输出至预测图像校正部3105。预测部3104的内部具备:Planar(平面)预测部31041、DC预测部31042、Angular(角度)预测部31043以及LM预测部31044。预测部3104根据帧内预测模式来选择特定的预测部,输入未滤波参照图像、已滤波参照图像。帧内预测模式与对应的预测部的关系如下所示。
·Planar预测···Planar预测部31041
·DC预测···DC预测部31042
·Angular预测···Angular预测部31043
·LM预测···LM预测部31044
在使用限制区域来实现随机接入时,在未在限制区域与非限制区域的边界通过(参照区域的像素值设定1)的方法设定参照像素的情况下,只要未设定后述的条件,就不得使用Planar预测模式。此外,关于Angular帧内预测模式,不得使用比图5所示的垂直预测模式(50)大的帧内预测模式(IntraPredModeY>50)。这是因为这些模式参照非限制区域中所包括的像素。
(Planar预测)
Planar预测部31041根据对象像素位置与参照像素位置的距离,对多张已滤波参照图像进行线性相加生成临时预测图像,输出至预测图像校正部3105。使用已滤波参照像素值s[x][y]和对象块的宽度wPb、高度hPb,通过(算式INTRAP-4)推导出临时预测图像的像素值q[x][y]。
q[x][y]=((wPb-1-x)*s[-1][y]+(x+1)*s[wPb][-1]+(hPb-1-y)*s[x][-1]+(y+1)*s[-1][hPb]+maxBS)>>(log2(maxBS)+1)(算式INTRAP-4)
在此,x=0..wPb-1,y=0..hPb-1。
(限制区域和Planar预测)
在限制区域与非限制区域的边界,在(算式INTRAP-4)中参照的s[wPb][-1]为非限制区域的像素的情况下,无法在使用了限制区域的随机接入中进行参照。在本实施例中,使用s[wPb-1][-1]代替s[wPb][-1],计算出临时预测图像的像素值q[x][y]。
q[x][y]=((wPb-1-x)*s[-1][y]+(x+1)*s[wPb-1][-1]+(hPb-1-y)*s[x][-1]+(y+1)*s[-1][hPb]+maxBS)>>(log2(maxBS)+1)(算式INTRAP-5)
而且,也可以使用s[-1][hPb-1]代替s[-1][hPb],计算出临时预测图像的像素值q[x][y]。
q[x][y]=((wPb-1-x)*s[-1][y]+(x+1)*s[wPb-1][-1]+(hPb-1-y)*s[x][-1]+(y+1)*s[-1][hPb-1]+maxBS)>>(log2(maxBS)+1)(算式INTRAP-6)
如此,通过仅参照限制区域的像素值计算出临时预测图像的像素值q[x][y],即使在使用限制区域来实现随机接入的情况下也能使用Planar预测。
如上所述,在限制区域内的帧内CU中,在Planar预测中使用的邻接参照像素跨越非限制区域(第二区域)的情况下,帧内预测部3104将非限制区域的邻接参照像素置换成限制区域内像素,进行由Planar预测实现的预测图像生成。
(DC预测)
DC预测部31042推导出相当于已滤波参照图像s[x][y]的平均值的DC预测值,输出将DC预测值作为像素值的临时预测图像q[x][y]。
(Angular预测)
Angular预测部31043使用帧内预测模式所指示的预测方向(参照方向)的已滤波参照图像s[x][y]生成临时预测图像q[x][y],输出至预测图像校正部3105。
(限制区域和MPM预测)
在对象块处于限制区域(IsRA(xPb,yPb)为真)且对象块的邻接块的参照位置(xNbX,yNbX)处于非限制区域(IsRA(xNbX,yNbX)为假)的情况下,帧内预测部3104(MPM候选列表推导部30421)在MPM候选的推导中不使用邻接块的值。即,在对象块处于限制区域(IsRA(xPb,yPb)为真)且对象块的邻接块的参照位置(xNbX,yNbX)处于限制区域的情况下(IsRA(xNbX,yNbX)为真),帧内预测部3104在帧内预测的情况下将该位置(xNbX,yNbX)用于MPM候选candIntraPredModeX。
例如,在新限制区域如图13的(a)所示地从左向右移位的情况下(seq_refresh_mode=0且seq_refresh_direction=0),对象块处于限制区域(IsRA(xPb,yPb)为真),且对象块的右侧邻接位置(xPb+wPb,yPb-1)处于限制区域(IsRA(xPb+wPb,yPb-1)为真)的情况下,帧内预测部3104在MPM候选的推导中使用右侧邻接位置的值。
例如,在新限制区域如图13的(a)所示地从右向左移位的情况下(seq_refresh_mode=0且seq_refresh_direction=1),对象块处于限制区域(IsRA(xPb,yPb)为真),且对象块的左侧邻接位置(xPb-1,yPb)处于限制区域(IsRA(xPb-1,yPb)为真)的情况下,帧内预测部3104在MPM候选的推导中使用左侧邻接位置的值。
(限制区域和Angular预测)
在限制区域从左向右扩展的情况下(seq_refresh_mode=0且seq_refresh_direction=0),在Angular预测中,在比图5所示的垂直预测模式(IntraPredModeVer=50)大的帧内预测模式(IntraPredModeY>IntraPredModeVer)下,参照限制区域与非限制区域的边界上非限制区域的像素。例如,如图27的(a)、(b)所示,在限制区域从左向右扩展的情况下(seq_refresh_mode=0且seq_refresh_direction=0),与对象块的右上邻接的参照像素包括于非限制区域。就是说,在将对象块的宽度设为wPb时,s[x][-1](x>=wPb)为非限制区域的像素值。因此,在使用限制区域来实现随机接入的情况下,将帧内预测模式限制在IntraPredModeVer以下(IntraPredModeY<=IntraPredModeVer)。
具体而言,帧内预测部3104(MPM候选列表推导部30421)在对象块处于限制区域(IsRA(xPb,yPb)为真)且对象块的右侧区域处于非限制区域的情况下(IsRA(xPb+wPb,yPb-1)为假),推导出大于IntraPredModeVer的值作为MPM候选的情况下,将该MPM候选设为非available(可利用),不插入MPM候选。此外,在该情况下,帧内预测参数解码部304在推导出的帧内预测模式大于IntraPredModeVer的情况下,可以裁剪到IntraPredModeVer。
IntraPredMode=Min(IntraPredMode,IntraPredModeVer)
反之,帧内预测部3104在新限制区域如图13的(b)所示地从右向左移位的情况(seq_refresh_mode=0且seq_refresh_direction=1),就是说,在对象块的左侧区域(IsRA(xPb-1,yPb)为假)处于非限制区域的情况下,对MPM候选推导出小于IntraPredModeVer的值的情况下,将该MPM候选设为非available,不插入MPM候选。此外,在该情况下,帧内预测参数解码部304在推导出的帧内预测模式小于IntraPredModeVer的情况下,可以裁剪到IntraPredModeVer。
IntraPredMode=Max(IntraPredMode,IntraPredModeVer)
另一方面,帧内预测部3104在新限制区域如图13的(c)所示地在垂直方向移位的情况下,例如,如图27(c)、(d)所示,在限制区域从上向下扩展的情况下(seq_refresh_mode=1且seq_refresh_direction=0),将与对象块的左下邻接的参照像素包括于非限制区域。就是说,在将对象块的高度设为hPb时,s[-1][y](y>=hPb)为非限制区域的像素值。因此,将帧内预测模式限制在作为水平预测模式的IntraPredModeHor(=18)以上(IntraPredModeY>=IntraPredModeHor)。
具体而言,帧内预测部3104在对象块的上侧区域(IsRA(xPb,yPb-1)为假)处于非限制区域的情况,推导出大于IntraPredModeHor的值作为MPM候选的情况下,将该MPM候选设为非available,不插入MPM候选。此外,在该情况下,帧内预测参数解码部304在推导出的帧内预测模式大于IntraPredModeHor的情况下,可以裁剪到IntraPredModeHor。
IntraPredMode=Min(IntraPredMode,IntraPredModeHor)
反之,帧内预测部3104在新限制区域如图13的(d)所示地从下向上移位的情况(seq_refresh_mode=1且seq_refresh_direction=1),就是说,在对象块的下侧区域处于非限制区域的情况下(IsRA(xPb-1,yPb+hPb)为假),对MPM候选推导出小于IntraPredModeHor的值的情况下,将该MPM候选设为非available,不插入MPM候选。此外,在该情况下,帧内预测参数解码部304在推导出的帧内预测模式小于IntraPredModeHor的情况下,可以裁剪到IntraPredModeHor。
IntraPredMode=Max(IntraPredMode,IntraPredModeHor)
如此,通过限制帧内预测模式,即使在使用新限制区域来实现随机接入的情况下,也能使用Angular预测。
通过上述过程,帧内预测部3104在限制区域内的帧内CU中邻接参照像素跨越非限制区域(第二区域)的情况下除去使用该区域的Angular预测模式。
通过上述过程,帧内预测部3104在限制区域内的帧内CU中邻接参照像素跨越非限制区域(第二区域)的情况下将该区域视为notavailable(不可利用)。
(LM预测)
LM预测部31044基于亮度的像素值来预测色差的像素值。具体而言,是基于解码后的亮度图像,使用线性模型来生成色差图像(Cb,Cr)的预测图像的方式。LM预测有CCLM(Cross-ComponentLinearModelprediction:交叉分量线性模型预测)预测和MMLM(Multiple Model ccLM:多模型ccLM)预测。CCLM预测是对一个块使用一个用于根据亮度预测色差的线性模型的预测方式。MMLM预测是对一个块使用两个以上用于根据亮度预测色差的线性模型的预测方式。
(预测图像校正部3105的构成)
预测图像校正部3105根据帧内预测模式对从预测部3104输出的临时预测图像进行修正。具体而言,预测图像校正部3105针对临时预测图像,根据各像素的参照区域与对象预测像素的距离,对未滤波参照图像和临时预测图像进行加权相加(加权平均),由此推导出修正了临时预测图像的预测图像(已校正预测图像)Pred。需要说明的是,在部分帧内预测模式下,不通过预测图像校正部3105对临时预测图像进行校正,也可以直接将预测部3104的输出作为预测图像。
逆量化/逆变换部311将从熵解码部301输入的量化变换系数逆量化来求出变换系数。该量化变换系数是在编码处理中对预测误差进行DCT(Discrete Cosine Transform,离散余弦变换)、DST(Discrete Sine Transform,离散正弦变换)、KLT(Karyhnen LoeveTransform,卡胡南列夫变换)等频率变换并量化而得到的系数。逆量化/逆变换部311对求出的变换系数进行逆DCT、逆DST、逆KLT等逆频率变换,计算预测误差。逆量化/逆变换部311将预测误差输出至加法部312。
加法部312按每个像素将从预测图像生成部308输入的块的预测图像与从逆量化/逆变换部311输入的预测误差相加,生成块的解码图像。加法部312将块的解码图像存储于参照图片存储器306,并向环路滤波器305输出。
(运动图像编码装置的构成)
接着,对本实施方式的运动图像编码装置11的构成进行说明。图18是表示本实施方式的运动图像编码装置11的构成的框图。运动图像编码装置11构成为包括:预测图像生成部101、减法部102、变换/量化部103、逆量化/逆变换部105、加法部106、环路滤波器107、预测参数存储器(预测参数存储部、帧存储器)108、参照图片存储器(参照图像存储部、帧存储器)109、编码参数确定部110、参数编码部111以及熵编码部104。
预测图像生成部101按将每个图像T的各图片分割而成的区域即CU生成预测图像。预测图像生成部101进行与已说明的预测图像生成部308相同的动作,在此省略其说明。
减法部102从图像T的像素值中减去从预测图像生成部101输入的块的预测图像的像素值,生成预测误差。减法部102将预测误差输出至变换/量化部103。
变换/量化部103对从减法部102输入的预测误差,通过频率变换计算出变换系数,并通过量化推导量化变换系数。变换/量化部103将量化变换系数输出至熵编码部104和逆量化/逆变换部105。
逆量化/逆变换部105与运动图像解码装置31中的逆量化/逆变换部311(图17)相同,在此省略其说明。计算出的预测误差输入至加法部106。
参数编码部111由限制区域控制部120、未图示的帧间预测参数编码部112和帧内预测参数编码部113构成。
限制区域控制部120具备:报头编码部1110、CT信息编码部1111、CU编码部1112(预测模式编码部)以及未图示的帧间预测参数编码部112和帧内预测参数编码部113。CU编码部1112还具备TU编码部1114。
以下,对各模块的概略动作进行说明。参数编码部111进行报头信息、分割信息、预测信息、量化变换系数等参数的编码处理。
CT信息编码部1111根据编码数据对QT、MT(BT、TT)分割信息等进行编码。
CU编码部1112对CU信息、预测信息、TU分割标志splk_transform_flag、CU残差标志cbf_cb、cbf_cr、cbf_luma等进行编码。
TU编码部1114在TU中包括预测误差的情况下,对QP更新信息(量化校正值)和量化预测误差(residual_coding)进行编码。
熵编码部104将从供给方供给的语法要素转换成二进制数据,通过CABAC等熵编码方式生成编码数据并输出。语法要素的供给方是CT信息编码部1111、CU编码部1112。语法要素是帧间预测参数(预测模式predMode、合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_LX_idx、差分矢量mvdLX)、帧内预测参数(prev_intra_luma_pred_flag、mpm_idx、rem_selected_mode_flag、rem_selected_mode、rem_non_selected_mode)、量化变换系数等。
熵编码部104对分割信息、预测参数、量化变换系数等进行熵编码生成编码流Te并输出。
(帧间预测参数编码部的构成)
帧间预测参数编码部112基于从编码参数确定部110输入的预测参数而推导帧间预测参数。帧间预测参数编码部112包括与由帧间预测参数解码部303推导出帧间预测参数的构成部分相同的构成。
对帧间预测参数编码部112的构成进行说明。如图28的(a)所示,构成为包括:参数编码控制部1121、AMVP预测参数推导部1122、减法部1123、子块预测参数推导部1125等。参数编码控制部1121包括合并索引推导部11211和矢量候选索引推导部11212。也可以将合并索引推导部11211、矢量候选索引推导部11212、AMVP预测参数推导部1122、子块预测参数推导部1125统称为运动矢量推导部(运动矢量推导装置)。帧间预测参数编码部112将运动矢量(mvLX,subMvLX)、参照图片索引refIdxLX、帧间预测标识符inter_pred_idc或表示这些的信息输出至预测图像生成部101。此外,帧间预测参数编码部112将合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_1X_idx、差分矢量mvdLX、子块预测模式标志subPbMotionFlag输出至熵编码部104。
合并索引推导部11211将从编码参数确定部110输入的运动矢量和参照图片索引与从预测参数存储器108读出的合并候选的块所具有的运动矢量和参照图片索引进行比较,推导出合并索引merge_idx,输出至熵编码部104。合并候选是处于距离对象CU预定的范围的参照块(例如,与对象块的左端、左下端、左上端、上端、右上端相接的参照块),是完成了编码处理的块。矢量候选索引推导部11212推导出预测矢量索引mvp_1X_idx。
AMVP预测参数推导部1122基于运动矢量mvLX推导预测矢量mvpLX。AMVP预测参数推导部1122将预测矢量mvpLX输出至减法部1123。需要说明的是,参照图片索引refIdxLX和预测矢量索引mvp_1X_idx被输出至熵编码部104。
减法部1123从自编码参数确定部110输入的运动矢量mvLX中减去作为AMVP预测参数推导部1122的输出的预测矢量mvpLX,生成差分矢量mvdLX。差分矢量mvdLX被输出至熵编码部104。
(帧内预测参数编码部113的构成)
帧内预测参数编码部113根据从编码参数确定部110输入的帧内预测模式IntraPredMode,推导用于编码的形式(例如mpm_idx、rem_intra_luma_pred_mode等)。帧内预测参数编码部113包括与由帧内预测参数解码部304推导出帧内预测参数的构成部分相同的构成。
图29是表示参数编码部111的帧内预测参数编码部113的构成的概略图。帧内预测参数编码部113构成为包括:参数编码控制部1131、亮度帧内预测参数推导部1132以及色差帧内预测参数推导部1133。
从编码参数确定部110向参数编码控制部1131输入亮度预测模式IntraPredModeY和色差预测模式IntraPredModeC。参数编码控制部1131参照参照候选列表推导部30421的MPM候选列表mpmCandList[]来确定prev_intra_luma_pred_flag。然后,将prev_intra_luma_pred_flag和亮度预测模式IntraPredModeY输出至亮度帧内预测参数推导部1132。此外,将色差预测模式IntraPredModeC输出至色差帧内预测参数推导部1133。
亮度帧内预测参数推导部1132构成为包括:MPM候选列表推导部30421(候选列表导出部)、MPM参数推导部11322(参数推导部)以及非MPM参数推导部11323(编码部、推导部)。
MPM候选列表推导部30421参照储存于预测参数存储器108的邻接块的帧内预测模式推导出MPM候选列表mpmCandList[]。在prev_intra_luma_pred_flag为1的情况下,MPM参数推导部11322根据亮度预测模式IntraPredModeY和MPM候选列表mpmCandList[]推导出mpm_idx,输出至熵编码部104。在prev_intra_luma_pred_flag为0的情况下,非MPM参数推导部11323根据亮度预测模式IntraPredModeY和MPM候选列表mpmCandList[]推导出RemIntraPredMode,将rem_selected_mode或rem_non_selected_mode输出至熵编码部104。
色差帧内预测参数推导部1133根据亮度预测模式IntraPredModeY和色差预测模式IntraPredModeC推导出not_dm_chroma_flag、not_1m_chroma_flag、chroma_intra_mode_idx并输出。
加法部106将从预测图像生成部101输入的块预测图像的像素值和从逆量化/逆变换部105输入的预测误差按每个像素相加来生成解码图像。加法部106将生成的解码图像存储于参照图片存储器109。
环路滤波器107对加法部106所生成的解码图像,实施去块滤波、SAO、ALF。需要说明的是,环路滤波器107不一定包括上述三种滤波器,例如也可以是仅包括去块滤波器的构成。
预测参数存储器108将编码参数确定部110所生成的预测参数按每个对象图片和CU存储于预定的位置。
参照图片存储器109将环路滤波器107所生成的解码图像按每个对象图片和CU每存储于预定的位置。
编码参数确定部110选择编码参数的多个集合中的一个集合。编码参数是指上述的QT、BT或TT分割信息、预测参数或与它们关联生成的作为编码对象的参数。预测图像生成部101使用这些编码参数来生成预测图像。
编码参数确定部110对多个集合的每一个集合计算出表示信息量的大小和编码误差的RD成本值。RD成本值例如是编码量与平方误差乘以系数λ而得到的值之和。编码量是对量化误差和编码参数进行熵编码而得到的编码流Te的信息量。平方误差是在减法部102中计算出的预测误差的平方和。系数λ是大于预先设定的零的实数。编码参数确定部110选择计算出的成本值为最小的编码参数的集合。由此,熵编码部104将所选出的编码参数集作为编码流Te输出。编码参数确定部110将所确定的编码参数存储于预测参数存储器108。
需要说明的是,可以通过计算机实现上述的实施方式中的运动图像编码装置11、运动图像解码装置31的一部分,例如,熵解码部301、参数解码部302、环路滤波器305、预测图像生成部308、逆量化/逆变换部311、加法部312、预测图像生成部101、减法部102、变换/量化部103、熵编码部104、逆量化/逆变换部105、环路滤波器107、编码参数确定部110以及参数编码部111。在该情况下,可以通过将用于实现该控制功能的程序记录于计算机可读记录介质,使计算机系统读入记录于该记录介质的程序并执行来实现。需要说明的是,在此提到的“计算机系统”是指内置于运动图像编码装置11、运动图像解码装置31中的任一个的计算机系统,采用包括OS、外围设备等硬件的计算机系统。此外,“计算机可读记录介质”是指软盘、磁光盘、ROM、CD-ROM等可移动介质、内置于计算机系统的硬盘等存储装置。而且,“计算机可读记录介质”也可以包括:像经由互联网等网络或电话线路等通信线路来发送程序的情况下的通信线那样短时间内、动态地保存程序的记录介质;以及像作为该情况下的服务器、客户端的计算机系统内部的易失性存储器那样保存程序固定时间的记录介质。此外,上述程序可以是用于实现上述功能的一部分的程序,也可以是能通过与已记录在计算机系统中的程序进行组合来实现上述功能的程序。
本发明的一个方案的运动图像解码装置的特征在于,将图片分割成限制区域和非限制区域,对于限制区域中所包括的块,使用仅参照上述图片中的限制区域的像素的帧内预测或参照上述图片的参照图片的限制参照区域的帧间预测来进行预测,对于非限制区域中所包括的块,使用参照上述图片中的已解码的像素的帧内预测或参照上述图片的参照图片的帧间预测来进行预测,在上述图片解码后,将上述图片的上述限制区域设定为上述限制参照区域。
本发明的一个方案的运动图像解码装置的特征在于,将图片分割成新刷新区域、限制区域以及非限制区域,对于新刷新区域中所包括的块,进行仅参照限制区域的像素的帧内预测,对于限制区域中所包括的块,进行仅参照上述新刷新区域或上述限制区域的像素的帧内预测或进行参照参照图片的限制参照区域的帧间预测,对于非限制区域中所包括的块,使用参照上述图片中的已解码的像素的帧内预测或参照上述图片的参照图片的帧间预测来进行预测,在上述图片解码后,将追加了上述新刷新区域的上述限制区域设定为上述限制参照区域。
本发明的一个方案的运动图像解码装置的特征在于,将图片分割成限制区域和非限制区域,对于限制区域内的新刷新区域中所包括的块,进行仅参照限制区域的像素的帧内预测,对于限制区域中所包括的块,进行仅参照上述新刷新区域或上述限制区域的像素的帧内预测或进行参照参照图片的限制参照区域的帧间预测,对于非限制区域中所包括的块,使用参照上述图片中的已解码的像素的帧内预测或参照上述图片的参照图片的帧间预测来进行预测,在上述图片解码后,将上述限制区域设定为上述限制参照区域。
本发明的一个方案的运动图像解码装置的特征在于,在上述新刷新区域中,在时刻t和时刻t-1被解码的区域重复(重叠)。
本发明的一个方案的运动图像编码装置的特征在于,将图片分割成限制区域和非限制区域,对于限制区域中所包括的块,使用仅参照上述图片中的限制区域的像素的帧内预测或参照上述图片的参照图片的限制参照区域的帧间预测来进行预测,对于非限制区域中所包括的块,使用参照上述图片中的已解码的像素的帧内预测或参照上述图片的参照图片的帧间预测来进行预测,在上述图片编码后,将上述图片的上述限制区域设定为上述限制参照区域。
本发明的一个方案的运动图像解码装置的特征在于,具备去块滤波器,去块滤波器在隔着上述限制区域和上述非限制区域的两个块的滤波处理中关闭块的滤波处理。
本发明的一个方案的运动图像解码装置的特征在于,具备去块滤波器,去块滤波器在隔着上述限制区域和非限制区域的两个块的滤波处理中关闭上述限制区域中所包括的块的滤波处理。
本发明的一个方案的运动图像解码装置的特征在于,上述重叠的区域的宽度由通过滤波处理校正的像素数和块的宽度的最小值推导出。
本发明的一个方案的运动图像解码装置的特征在于,具备预测图像生成部,预测图像生成部部在限制区域与非限制区域的边界,将非限制区域的像素设定为“不可用作参照像素”,在对象块的参照区域设定限制区域的像素值。
本发明的一个方案的运动图像解码装置的特征在于,具备预测图像生成部,预测图像生成部部在限制区域与非限制区域的边界,对参照非限制区域的像素的像素关闭参照像素滤波。
本发明的一个方案的运动图像解码装置的特征在于,具备预测图像生成部,预测图像生成部部在限制区域内的对象块中帧内预测模式所指示的预测方向的参照像素包括非限制区域的情况下除去上述帧内预测模式。
本发明的一个方案的运动图像解码装置的特征在于,具备预测图像生成部,预测图像生成部部在限制区域内的对象块中在帧内预测模式所指示的预测方向的参照像素包括非限制区域的情况下将上述参照像素设定为“不可利用”。
本发明的一个方案的运动图像解码装置的特征在于,具备预测图像生成部,预测图像生成部部在限制区域内的对象块中,在Planar预测中所参照的像素包括非限制区域的情况下,将非限制区域的参照像素置换成限制区域的像素。
本发明的一个方案的运动图像解码装置的特征在于,具备预测图像生成部,预测图像生成部部在限制区域内的对象块中,在Planar预测中所参照的像素包括非限制区域的情况下,除去Planar预测模式。
本发明的一个方案的运动图像解码装置的特征在于,具备运动补偿部,运动补偿部在限制区域的对象块所参照的图片的像素处于非限制参照区域的情况下,实施将参照图片中的非限制参照区域的像素值置换成限制参照区域的像素值的填充处理。
本发明的一个方案的运动图像解码装置的特征在于,具备运动补偿部,运动补偿部在限制区域的对象块所参照的图片的像素处于非限制参照区域的情况下,将指向非限制参照区域的矢量限制(裁剪)到限制参照边界内。
本发明的一个方案的运动图像解码装置的特征在于,具备运动补偿部,运动补偿部从合并候选列表中选择邻接块并设定为合并候选,所述邻接块具有限制区域的对象块所参照的区域包括于限制参照区域这样的参照图片索引与运动矢量的组合。
本发明的一个方案的运动图像解码装置的特征在于,具备运动补偿部,运动补偿部设定为,在限制区域的对象块中,在基于合并候选的参照图片索引和运动矢量的参照区域不包括于限制参照区域的情况下,修正上述参照图片索引,对上述运动矢量进行缩放,从而使对象块的所述参照区域包括于限制参照区域。
此外,也可以将上述的实施方式中的运动图像编码装置11、运动图像解码装置31中的一部分或全部作为LSI(Large Scale Integration:大规模集成电路)等集成电路而实现。运动图像编码装置11、运动图像解码装置31的各功能块可以单独地处理器化,也可以将一部分或全部集成来处理器化。此外,集成电路化的方法并不限于LSI,也可以通过专用电路或通用处理器来实现。此外,在随着半导体技术的进步而出现代替LSI的集成电路化的技术的情况下,也可以使用基于该技术的集成电路。
以上,参照附图对该发明的一实施方式详细地进行了说明,但具体构成并不限于上述实施方式,在不脱离该发明的主旨的范围内,可以进行各种设计变更等。
〔应用例〕
上述运动图像编码装置11和运动图像解码装置31可以搭载于进行运动图像的发送、接收、记录、再现的各种装置而利用。需要说明的是,运动图像可以是通过摄像机等拍摄的自然运动图像,也可以是通过计算机等生成的人工运动图像(包括CG和GUI)。
首先,参照图30对能将上述的运动图像编码装置11和运动图像解码装置31用于运动图像的发送和接收的情况进行说明。
图30的(a)是表示搭载有运动图像编码装置11的发送装置PROD_A的构成的框图。如图30的(a)所示,发送装置PROD_A具备:通过对运动图像进行编码而得到编码数据的编码部PROD_A1、通过利用编码部PROD_A1所得到的编码数据对载波进行调制而得到调制信号的调制部PROD_A2以及发送调制部PROD_A2所得到的调制信号的发送部PROD_A3。上述的运动图像编码装置11被用作该编码部PROD_A1。
作为输入至编码部PROD_A1的运动图像的供给源,发送装置PROD_A也可以进一步具备:拍摄运动图像的摄像机PROD_A4、记录有运动图像的记录介质PROD_A5、用于从外部输入运动图像的输入端子PROD_A6以及生成或加工图像的图像处理部A7。在图30的(a)中举例示出了发送装置PROD_A具备全部这些的构成,但也可以省略一部分。
需要说明的是,记录介质PROD_A5可以是记录有未被编码的运动图像的介质,也可以是记录有以与传输用的编码方式不同的记录用的编码方式进行编码后的运动图像的介质。在后者的情况下,使按照记录用的编码方式对从记录介质PROD_A5读出的编码数据进行解码的解码部(未图示)介于记录介质PROD_A5与编码部PROD_A1之间为好。
图30的(b)是表示搭载有运动图像解码装置31的接收装置PROD_B的构成的框图。如图30的(b)所示,接收装置PROD_B具备:接收调制信号的接收部PROD_B1、通过对接收部PROD_B1所接收到的调制信号进行解调而得到编码数据的解调部PROD_B2以及通过对解调部PROD_B2所得到的编码数据进行解码而得到运动图像的解码部PROD_B3。上述的运动图像解码装置31被用作该解码部PROD_B3。
接收装置PROD_B作为解码部PROD_B3所输出的运动图像的供给目的地,也可以进一步具备显示运动图像的显示器PROD_B4、用于记录运动图像的记录介质PROD_B5以及用于将运动图像输出至外部的输出端子PROD_B6。在图30的(b)中举例示出了接收装置PROD_B具备全部这些的构成,但也可以省略一部分。
需要说明的是,记录介质PROD_B5可以是用于记录未被编码的运动图像的介质,也可以是以与传输用的编码方式不同的记录用的编码方式编码后的介质。在后者的情况下,使按照记录用的编码方式对从解码部PROD_B3获取到的运动图像进行编码的编码部(未图示)介于解码部PROD_B3与记录介质PROD_B5之间为好。
需要说明的是,传输调制信号的传输介质可以是无线的,也可以是有线的。此外,传输调制信号的传输方案可以是广播(在此,指发送目的地未预先确定的发送方案),也可以是通信(在此,指发送目的地已预先确定的发送方案)。即,调制信号的传输可以通过无线广播、有线广播、无线通信以及有线通信中的任一个来实现。
例如,地面数字广播的广播站(广播设备等)/接收站(电视接收机等)是通过无线广播收发调制信号的发送装置PROD_A/接收装置PROD_B的一个示例。此外,有线电视广播的广播站(广播设备等)/接收站(电视接收机等)是通过有线广播收发调制信号的发送装置PROD_A/接收装置PROD_B的一个示例。
此外,使用互联网的VOD(Video On Demand:视频点播)服务、运动图像共享服务等服务器(工作站等)/客户端(电视接收机、个人计算机、智能手机等)是通过通信收发调制信号的发送装置PROD_A/接收装置PROD_B的一个示例(通常,在LAN中使用无线或有线的任一个作为传输介质,在WAN中使用有线作为传输介质)。在此,个人计算机包括台式PC、膝上型PC以及平板型PC。此外,智能手机中也包括多功能便携电话终端。
需要说明的是,运动图像共享服务的客户端除了对从服务器下载的编码数据进行解码并显示于显示器的功能以外,还具有对通过摄像机拍摄到的运动图像进行编码并上传至服务器的功能。即,运动图像共享服务的客户端发挥发送装置PROD_A和接收装置PROD_B这两方的功能。
接着,参照图31,对能将上述的运动图像编码装置11和运动图像解码装置31用于运动图像的记录和再现的情况进行说明。
图31的(a)是表示搭载有上述的运动图像编码装置11的记录装置PROD_C的构成的框图。如图31的(a)所示,记录装置PROD_C具备:通过对运动图像进行编码而得到编码数据的编码部PROD_C1和将编码部PROD_C1所得到的编码数据写入记录介质PROD_M的写入部PROD_C2。上述的运动图像编码装置11被用作该编码部PROD_C1。
需要说明的是,记录介质PROD_M可以是(1)如HDD(HardDisk Drive:硬盘驱动器)、SSD(Solid State Drive:固态硬盘)等那样内置于记录装置PROD_C的类型的记录介质,也可以是(2)如SD存储卡、USB(Universal Serial Bus:通用串行总线)闪存等那样连接于记录装置PROD_C的类型的记录介质,还可以是(3)如DVD(Digital Versatile Disc:数字通用光盘、注册商标)、BD(Blu-ray(注册商标)Disc:蓝光光盘、注册商标)等那样装填至内置于记录装置PROD_C的驱动装置(未图示)的记录介质。
此外,作为输入至编码部PROD_C1的运动图像的供给源,记录装置PROD_C也可以进一步具备:拍摄运动图像的摄像机PROD_C3、用于从外部输入运动图像的输入端子PROD_C4、用于接收运动图像的接收部PROD_C5以及生成或加工图像的图像处理部PROD_C6。在图中举例示出了记录装置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的一个示例。
图31的(b)是表示搭载有上述的运动图像解码装置31的再现装置PROD_D的构成的框图。如图31的(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_D2所输出的运动图像的供给目的地,再现装置PROD_D也可以进一步具备:显示运动图像的显示器PROD_D3、用于将运动图像输出至外部的输出端子PROD_D4以及发送运动图像的发送部PROD_D5。在图中举例示出了再现装置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(Central ProcessingUnit:中央处理器)而以软件方式地实现。
在后者的情况下,上述各装置具备:执行实现各功能的程序的命令的CPU、储存上述程序的ROM(Read Only Memory:只读存储器)、展开上述程序的RAM(Random AccessMemory:随机存取存储器)、以及储存上述程序和各种数据的存储器等存储装置(记录介质)等。然后,本发明的实施方案的目的在于通过以下方式也能达到:将以计算机可读取的方式记录实现前述功能的软件即上述各装置的控制程序的程序代码(执行形式程序、中间代码程序、源程序)的记录介质供给至上述各装置,该计算机(或CPU、MPU)读出记录于记录介质的程序代码并执行。
作为上述记录介质,例如能使用:磁带、盒式磁带等带类;包括软盘(注册商标)/硬盘等磁盘、CD-ROM(Compact Disc Read-Only Memory:光盘只读存储器)/MO盘(Magneto-Opticaldisc:磁光盘)/MD(MiniDisc:迷你磁光盘)/DVD(Digital Versatile Disc:数字通用光盘,注册商标)/CD-R(CD Recordable:可记录光盘)/蓝光光盘(Blu-ray(注册商标)Disc:注册商标)等光盘的盘类;IC卡(包括存储卡)/光卡等卡类;掩膜ROM/EPROM(ErasableProgrammable Read-Only Memory:可擦可编程只读存储器)/EEPROM(ElectricallyErasableandProgrammableRead-OnlyMemory:电可擦可编程只读存储器)/闪存ROM等半导体存储器类;或者PLD(Programmable logic device:可编程逻辑器件)、FPGA(FieldProgrammable Gate Array:现场可编程门阵列)等逻辑电路类等。
此外,也可以将上述各装置构成为能与通信网络连接,并经由通信网络供给上述程序代码。该通信网络能传输程序代码即可,不被特别限定。例如,可利用互联网、内联网(intranet)、外联网(extranet)、LAN(Local Area Network:局域网)、ISDN(IntegratedServices Digital Network:综合业务数字网)、VAN(Value-Added Network:增值网络)、CATV(CommunityRAntenna television/Cable Television:共用天线电视/有线电视)通信网、虚拟专用网(Virtual Private Network)、电话线路网、移动通信网、卫星通信网等。此外,构成该通信网络的传输介质也是为能传输程序代码的介质即可,不限定于特定的构成或种类。例如,无论在IEEE(Institute ofElectrical and Electronic Engineers:电气和电子工程师协会)1394、USB、电力线输送、有线TV线路、电话线、ADSL(Asymmetric DigitalSubscriber Line:非对称数字用户线路)线路等有线中,还是在如IrDA(InfraredDataAssociation:红外线数据协会)、遥控器那样的红外线、BlueTooth(注册商标)、IEEE802.11无线、HDR(High Data Rate:高数据速率)、NFC(Near Field Communication:近场通讯)、DLNA(注册商标)(Digital Living Network Alliance:数字生活网络联盟、注册商标)、便携电话网、卫星线路、地面数字广播网等无线中都可利用。需要说明的是,本发明的实施方式即使以通过电子传输来将上述程序代码具体化的嵌入载波的计算机数据信号的形态也能够实现。
本发明的实施方式并不限定于上述的实施方式,能在权利要求所示的范围内进行各种变更。即,将在权利要求所示的范围内经过适当变更的技术方案组合而得到的实施方式也包括在本发明的技术范围内。
工业上的可利用性
本发明的实施方式能优选地应用于对将图像数据编码而得到的编码数据进行解码的运动图像解码装置,以及生成将图像数据编码而得到的编码数据的运动图像编码装置。此外,能优选地应用于由运动图像编码装置生成并被运动图像解码装置参照的编码数据的数据结构。
(关联申请的相互参照)
本申请对2018年8月6日提出申请的日本专利申请:日本特愿2018-147658、2018年8月7日提出申请的日本专利申请:日本特愿2018-148470以及2018年8月7日提出申请的日本专利申请:日本特愿2018-148471主张优先权的利益,并通过对其进行参照而将其全部内容包括到本说明书中。
附图标记说明
31 图像解码装置
301 熵解码部
302 参数解码部
3020 报头解码部
303 帧间预测参数解码部
304 帧内预测参数解码部
308 预测图像生成部
309 帧间预测图像生成部
310 帧内预测图像生成部
311 逆量化/逆变换部
312 加法部
320 限制区域控制部
11 图像编码装置
101 预测图像生成部
102 减法部
103 变换/量化部
104 熵编码部
105 逆量化/逆变换部
107 环路滤波器
110 编码参数确定部
111 参数编码部
112 帧间预测参数编码部
113 帧内预测参数编码部
120 限制区域控制部
1110 报头编码部
1111 CT信息编码部
1112 CU编码部(预测模式编码部)
1114 TU编码部