CN111886867B - 运动矢量推导装置、运动图像解码装置以及运动图像编码装置 - Google Patents

运动矢量推导装置、运动图像解码装置以及运动图像编码装置 Download PDF

Info

Publication number
CN111886867B
CN111886867B CN201980007727.3A CN201980007727A CN111886867B CN 111886867 B CN111886867 B CN 111886867B CN 201980007727 A CN201980007727 A CN 201980007727A CN 111886867 B CN111886867 B CN 111886867B
Authority
CN
China
Prior art keywords
block
prediction
motion vector
unit
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980007727.3A
Other languages
English (en)
Other versions
CN111886867A (zh
Inventor
中条健
青野友子
猪饲知宏
佐佐木瑛一
八杉将伸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
FG Innovation Co Ltd
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2018001191A external-priority patent/JP2021057621A/ja
Application filed by FG Innovation Co Ltd, Sharp Corp filed Critical FG Innovation Co Ltd
Priority to CN202311613558.2A priority Critical patent/CN117579828A/zh
Priority to CN202311606007.3A priority patent/CN117579827A/zh
Priority to CN202311602438.2A priority patent/CN117579826A/zh
Publication of CN111886867A publication Critical patent/CN111886867A/zh
Application granted granted Critical
Publication of CN111886867B publication Critical patent/CN111886867B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/557Motion estimation characterised by stopping computation or iteration based on certain criteria, e.g. error magnitude being too large or early exit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明减轻搜索运动矢量的情况下的处理的负荷。为了解决上述的问题,本发明的一个方案的推导出为了生成用于运动图像的编码或解码的预测图像而参照的运动矢量的运动矢量推导装置(3032、3036~3038)具备通过匹配处理按每个预测单位搜索运动矢量的运动矢量搜索部(30373),所述运动矢量搜索部根据是否满足与像素比特长度对应的条件式来中止上述运动矢量的搜索。

Description

运动矢量推导装置、运动图像解码装置以及运动图像编码 装置
技术领域
本发明的实施方式涉及运动矢量推导装置、运动图像解码装置以及运动图像编码装置。
背景技术
为了高效地传输或记录运动图像,使用通过对运动图像进行编码生成编码数据的运动图像编码装置(图像编码装置)以及通过对该编码数据进行解码生成解码图像的运动图像解码装置(图像解码装置)。
作为具体的运动图像编码方式,例如可列举出在H.264/AVC、HEVC(High-Efficiency Video Coding:高效运动图像编码)中提出的方式等。
在这种运动图像编码方式中,构成运动图像的图像(图片)通过分级结构来管理,并按每个CU进行编码/解码,所述分级结构包括:通过分割图像而得到的切片、通过分割切片而得到的编码树单元(CTU:Coding Tree Unit)、通过分割编码树单元而得到的编码单位(也称为CU:Coding Unit、编码单元)以及作为通过分割编码单位而得到的块的预测单元(PU:Prediction Unit)、变换单元(TU:Transform Unit)。
此外,在这种运动图像编码方式中,通常,基于通过对输入图像进行编码/解码而得到的局部解码图像生成预测图像,对从输入图像(原图像)中减去该预测图像而得到的预测残差(有时也称为“差分图像”或“残差图像”)进行编码。作为预测图像的生成方法,可列举出画面间预测(帧间预测)和画面内预测(帧内预测)(非专利文献2)。
此外,作为近年来的运动图像编码和解码的技术,可列举出非专利文献1。非专利文献2中记载了如下技术:通过称为模式匹配运动矢量推导(Pattern matched motionvector derivation)的解码图像的匹配推导出运动矢量,生成预测图像,而不将运动矢量信息从编码侧传输至解码侧。
现有技术文献
非专利文献
非专利文献1:“Algorithm Description ofJoint Exploration Test Model7”,JVET-G1001,Joint Video Exploration Team(JVET)ofITU-TSG 16WP 3and ISO/IEC JTC1/SC 29/WG 11,2017-08-1902:20:15
非专利文献2:ITU-T H.265(02/2018)SERIES H:AUDIOVISUALAND MULTIMEDIASYSTEMS Infrastructure of audiovisualservices-Coding of moving video Highefficiency video coding
发明内容
发明要解决的问题
在使用通过解码图像的匹配推导出运动矢量的技术生成预测图像的情况下,不将运动矢量信息从编码侧传输至解码侧,因此认为仅仅使预测误差最小即可,但在与其他预测方式混合实施的情况下,推导出的运动矢量在时间上、空间上对周围的块的预测图像生成造成影响,因此,根据以何种基准推导出运动矢量预测效率大为不同。
此外,在如上所述的现有技术中,有能减轻在对作为对象的块搜索运动矢量的情况下的处理的负荷的余地。
本发明的目的在于,通过改善推导出运动矢量的基准来改善编码效率。
此外,本发明的一个方案是鉴于上述的问题而完成的,其目的在于,减轻搜索运动矢量的情况下的处理的负荷。
技术方案
本发明的实施方式的预测图像生成单元的特征在于,具有将对象块的预测图像用作对象块以外的区域的解码图像的模板来生成预测图像的匹配预测单元,所述匹配预测单元在匹配成本的计算中包括像素比特长度的值。
此外,为了解决上述的问题,本发明的一个方案的推导出为了生成用于运动图像的编码或解码的预测图像而参照的运动矢量的运动矢量推导装置具备通过匹配处理按每个预测单位搜索运动矢量的运动矢量搜索部,所述运动矢量搜索部根据是否满足与像素比特长度对应的条件式来中止上述运动矢量的搜索。
有益效果
根据上述的构成,能生成改善编码效率的预测图像。还能减轻搜索运动矢量的情况下的处理的负荷。
附图说明
图1是表示本实施方式的图像传输系统的构成的概略图。
图2是表示本实施方式的编码流的数据的分级结构的图。
图3是表示参照图片和参照图片列表的一个示例的概念图。
图4是表示本实施方式的运动图像解码装置的构成的图。
图5是表示本实施方式的帧间预测参数解码部的构成的图。
图6是表示本实施方式的AMVP预测参数推导部和合并预测参数推导部的构成的图。
图7(a)是表示预测矢量候选列表(合并候选列表)的图。图7(b)、图7(c)是表示对象块和参照块的位置关系的图。
图8是表示切片报头的语法的一个示例的图。
图9是对ATMVP处理进行说明的图。
图10是表示ATMVP处理的动作的流程图。
图11是对STMVP处理进行说明的图。
图12是表示STMVP处理的动作的流程图。
图13是表示为了进行仿射预测中的控制点的运动矢量的推导而参照的块的位置的示例的图。
图14(a)是对构成块的各子块的运动矢量进行说明的图。图14(b)是表示本实施方式的帧间预测图像生成部的构成的图。
图15是用于对双向匹配(Bilateral matching)以及模板匹配(Templatematching)进行说明的图。
图16是表示匹配模式的运动矢量推导处理的动作的流程图。
图17是表示OBMC预测的对象子块和邻接块的一个示例的图。
图18是表示OBMC预测的参数推导处理的流程图。
图19是对双向模板匹配处理进行说明的图。
图20是表示本实施方式的运动图像编码装置的构成的框图。
图21是表示本实施方式的帧间预测参数编码部的构成的概略图。
图22是表示搭载有本实施方式的运动图像编码装置的发送装置和搭载有运动图像解码装置的接收装置的构成的图。图22(a)表示搭载有运动图像编码装置的发送装置,图22(b)表示搭载有运动图像解码装置的接收装置。
图23是表示搭载有本实施方式的运动图像编码装置的记录装置和搭载有运动图像解码装置的再现装置的构成的图。图23(a)表示搭载有运动图像编码装置的记录装置,图23(b)表示搭载有运动图像解码装置的再现装置。
图24是表示本实施方式的序列报头的语法的一个示例的图。
图25是表示本实施方式的序列报头的语法的一个示例的图。
具体实施方式
(第一实施方式)
以下,参照附图对本发明的实施方式进行说明。
图1是表示本实施方式的图像传输系统1的构成的概略图。
图像传输系统1是传输对编码对象图像进行编码而得到的编码流,对所传输的编码进行解码并显示图像的系统。图像传输系统1构成为包括:运动图像编码装置(图像编码装置)11、网络21、运动图像解码装置(图像解码装置)31以及运动图像显示装置(图像显示装置)41。
运动图像编码装置11被输入图像T。
网络21将运动图像编码装置11所生成的编码流Te传输至运动图像解码装置31。网络21是互联网(internet)、广域网(WAN:Wide Area Network)、小型网络(LAN:Local AreaNetwork,局域网)或这些的组合。网络21不一定限定于双向的通信网,也可以是传输地面数字广播、卫星广播等广播波的单向的通信网。此外,网络21也可以用DVD(DigitalVersatileDisc:数字通用光盘)、BD(Blue-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以下的最大整数的函数。
a/d表示a除以d(舍去小数点以下)。
avg(a(i))是推导a(0)~a(N-1)的N个平均值的函数。
sqrt(a)是返回a的平方根值的函数。
<编码流Te的结构>
在对本实施方式的运动图像编码装置11和运动图像解码装置31进行详细说明之前,对由运动图像编码装置11生成并由运动图像解码装置31进行解码的编码流Te的数据结构进行说明。
图2是表示编码流Te中的数据的分级结构的图。编码流Te示例性地包括序列和构成序列的多张图片。图2的(a)~(f)分别是表示既定序列SEQ的编码视频序列、规定图片PICT的编码图片、规定切片S的编码切片、规定切片数据的编码切片数据、编码切片数据中所包括的编码树单元以及编码树单元中所包括的编码单元(Coding Unit:CU)的图。
(编码视频序列)
在编码视频序列中,规定有数据的集合,供运动图像解码装置31为了对处理对象的序列SEQ进行解码而参照。序列SEQ如图2的(a)所示,包括:视频参数集VPS(VideoParameter Set)、序列参数集SPS(Sequence Parameter Set)、图片参数集PPS(PictureParameter Set)、图片PICT以及补充增强信息SEI(Supplemental EnhancementInformation)。在此,在#后示出的值表示层ID。
视频参数集VPS在由多层构成的运动图像中,规定有多个运动图像通用的编码参数的集合以及运动图像中所包括的多层和与各层关联的编码参数的集合。
在序列参数集SPS中,规定有运动图像解码装置31为了对对象序列进行解码而参照的编码参数的集合。例如,规定有图片的宽度、高度、亮度以及色差的像素比特长度。需要说明的是,SPS可以存在多个。在该情况下,从PPS中选择多个SPS中的任一个。
作为本实施方式中的一个示例,将SPS中的亮度和色差的像素比特长度与匹配成本的误差评估的比特长度通过如图24所示的语法进行记述,表示如下的语义。通常的运动矢量的推导中的误差评估的比特长度是仅编码侧的处理,因此,无需向解码侧明确地传输,但是,在通过称为模式匹配运动矢量推导的解码图像的匹配推导出运动矢量,生成预测图像,而不将运动矢量信息从编码侧传输至解码侧地生成预测图像的技术中,也能明确地发送,由此统一模式匹配运动矢量推导以外的运动矢量推导中的基准。
bit_depth_luma_minus8如下所示地指定亮度像素比特长度BitDepthY和亮度量化参数范围偏移QpBdOffsetY的值。
BitDepthY=8+bit_depth_luma_minus8
QpBdOffsetY=6*bit_depth_luma_minus8
需要说明的是,bit_depth_luma_minus8必须在0以上8以下的范围内。
bit_depth_chroma_minus8如下所示地指定色差像素比特长度BitDepthC和色差量化参数范围偏移QpBdOffsetC的值。
BitDepthC=8+bit_depth_chroma_minus8
QpBdOffsetC=6*bit_depth_chroma_minus8
需要说明的是,bit_depth_chroma_minus8必须在0以上8以下的范围内。
decoder_side_distortion_bit_depth是误差误差评估的比特长度,如下所述地计算用于调整亮度像素比特长度的移位量ShiftDistortionBitDepthY和用于调整色差像素比特长度的移位量ShiftDistortionBitDepthC的值。
ShiftDistortionBitDepthY=BitDepthY-decoder_side_distortion_bit_depth
ShiftDistortionBitDepthC=BitDepthC-decoder_side_distortion_bit_depth
需要说明的是,decoder_side_distortion_bit_depth必须在8以上min(BitDepthY、BitDepthC)以下的范围内。
在图24中示出了SPS中的示例,但这些语法也可以用于PPS、切片(Slice)级。需要说明的是,在本实施方式中,示出了明确地在语法中记述decoder_side_distortion_bit_depth并作为编码数据从编码侧向解码侧发送信息的示例,但也可以以与像素比特长度联动的形式隐含地进行规定。其中,条件是为8以上min(BitDepthY、BitDepthC)和以下。
在图片参数集PPS中,规定有运动图像解码装置31为了对对象序列内的各图片进行解码而参照的编码参数的集合。例如包括用于图片的解码的量化宽度的基准值(pic_init_qp_minus26)和指示加权预测的应用的标志(weighted_pred_flag)。需要说明的是,PPS可以存在多个。在该情况下,从对象序列内的各切片报头中选择多个PPS中的任一个。
(编码图片)
在编码图片中,规定有运动图像解码装置31为了对处理对象的图片PICT进行解码而参照的数据的集合。图片PICT如图2的(b)所示,包括切片S0~SNS-1(NS为图片PICT中所包括的切片的总数)。
需要说明的是,以下,在无需对各切片S0~SNS-1进行区分的情况下,省略编码的下标来进行记述。此外,以下所说明的编码流Te中所包括的且带有下标的其他数据也是同样的。
(编码切片)
在编码切片中,规定有运动图像解码装置31为了对处理对象的切片S进行解码而参照的数据的集合。切片S如图2的(c)所示,包括切片报头SH和切片数据SDATA。
切片报头SH中包括运动图像解码装置31为了确定对象切片的解码方法而参照的编码参数组。指定切片类型的切片类型的指定信息(slice_type)是切片报头SH中所包括的编码参数的一个示例。
作为能由切片类型指定信息指定的切片类型,可列举出:(1)在进行编码时仅使用帧内预测的I切片、(2)在进行编码时使用单向预测或帧内预测的P切片以及(3)在进行编码时使用单向预测、双向预测或帧内预测的B切片等。需要说明的是,帧间预测不限于单向预测、双向预测,也可以使用更多的参照图片来生成预测图像。以下,称为P、B切片的情况是指包括能使用帧间预测的块的切片。
需要说明的是,切片报头SH中也可以包括上述编码视频序列中所包括的对图片参数集PPS的参照(pic_parameter_set_id)。
(编码切片数据)
在编码切片数据中,规定有运动图像解码装置31为了对处理对象的切片数据SDATA进行解码而参照的数据的集合。切片数据SDATA如图2的(d)所示,包括编码树单元(CTU:Coding Tree Unit、CTU块)。CTU是构成切片的固定大小(例如64×64)的块,也称为最大编码单位(LCU:Largest Coding Unit)。
(编码树单元)
在图2的(e)中规定有运动图像解码装置31为了对处理对象的编码树单元进行解码而参照的数据的集合。通过递归的四叉树分割(QT分割)或二叉树分割(BT分割)将编码树单元分割成作为编码处理的基本单位的编码单元(CU:Coding Unit)。将通过递归的四叉树分割或二叉树分割得到的树形结构称为编码树(CT:Coding Tree),将树形结构的节点称为编码节点(Coding Node:CN)。四叉树和二叉树的中间节点为编码节点,编码树单元本身也被规定为最上层的编码节点。
CTU包括表示是否进行QT分割的QT分割标志(cu_split_flag)和表示BT分割的分割方法的BT分割模式(split_bt_mode)作为CT信息。cu_split_flag和/或split_bt_mode按每个编码节点CN进行传输。在cu_split_flag为1的情况下,编码节点CN被分割成4个编码节点CN。在cu_split_flag为0时,split_bt_mode为1的情况下,编码节点CN被水平分割成两个编码节点CN,在split_bt_mode为2的情况下,编码节点CN被垂直分割成两个编码节点CN,在split_bt_mode为0的情况下,具有一个编码单元CU作为节点而编码节点CN不被分割。编码单元CU是编码节点的末端节点(叶节点),且不被进一步分割。
此外,在编码树单元CTU的大小为64×64像素的情况下,编码单元的大小可以取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像素中的任一种。
(编码单元)
在图2的(f)中规定有运动图像解码装置31为了对处理对象的编码单元进行解码而参照的数据的集合。具体而言,编码单元由预测树、变换树以及CU报头CUH构成。在CU报头中规定有预测模式、分割方法(PU分割模式)等。
在预测树中规定有将编码单元分割成一个或多个而得到的各预测单元(PU)的预测参数(参照图片索引、运动矢量等)。如果换为其他表述,则预测单元是构成编码单元的一个或多个不重复的区域。此外,预测树包括通过上述分割得到的一个或多个预测单元。需要说明的是,以下将进一步分割预测单元而得到的预测单位称为“子块”。子块由多个像素构成。在预测单元与子块的大小相等的情况下,预测单元中的子块为一个。在预测单元的大小大于子块的大小的情况下,预测单元被分割成子块。例如在预测单元为8×8、子块为4×4的情况下,预测单元被分割成4个子块,包括水平分割的两部分和垂直分割的两部分。
预测处理可以按每个该预测单元(子块)进行。
预测树中的预测的种类大体来说有帧内预测的情况和帧间预测的情况这两种。帧内预测是同一图片内的预测,帧间预测是指在互不相同的图片间(例如显示时刻间、层图像间)进行的预测处理。
在帧内预测的情况下,分割方法有2N×2N(与编码单元相同大小)和N×N。
此外,在帧间预测的情况下,分割方法根据编码数据的PU分割模式(part_mode)来进行编码,有2N×2N(与编码单元相同大小)、2N×N、2N×nU、2N×nD、N×2N、nL×2N、nR×2N以及N×N等。需要说明的是,2N×N、N×2N表示1∶1的对称分割,2N×nU、2N×nD以及nL×2N、nR×2N表示1∶3、3∶1的非对称分割。将CU中所包括的PU依次表示为PU0、PU1、PU2、PU3。
此外,在变换树中,编码单元被分割成一个或多个变换单元TU,并对各变换块的位置和大小进行规定。如果换为其他表述,则变换单元是构成编码单元的一个或多个不重复的区域。此外,变换树包括通过上述分割而得到的一个或多个变换单元。
变换树的分割中有将与编码单元相同的大小的区域分配为变换单元的分割和与上述CU的分割相同地通过递归的四叉树分割进行的分割。
变换处理按每个该变换单元进行。
(预测参数)
预测单元(Prediction Unit:PU)的预测图像通过与PU关联的预测参数来推导。预测参数中有帧内预测的预测参数或帧间预测的预测参数。以下,对帧间预测的预测参数(帧间预测参数)进行说明。帧间预测参数由预测列表利用标志predFlagL0、predFlagL1、参照图片索引refIdxL0、refIdxL1以及运动矢量mvL0、mvL1构成。预测列表利用标志predFlagL0、predFlagL1是表示是否使用各个被称为L0列表、L1列表的参照图片列表的标志,在值为1的情况下使用对应的参照图片列表。需要说明的是,在本说明书中记为“表示是否为××的标志”的情况下,将标志为0以外(例如1)设为是××的情况,将标志为0设为不是××的情况,在逻辑非、逻辑积等中将1视为真,将0视为假(以下同样)。但是,在实际的装置、方法中也可以使用其他值作为真值、假值。
用于推导出编码数据中所包括的帧间预测参数的语法要素中,例如有PU分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引ref_idx_1X(refIdxLX)、预测矢量索引mvp_1X_idx以及差分矢量mvdLX。
(参照图片列表)
参照图片列表是由存储于参照图片存储器306的参照图片构成的列表。图3是表示参照图片和参照图片列表的一个示例的概念图。在图3的(a)中,矩形表示图片,箭头表示图片的参照关系,横轴表示时间,矩形中的I、P、B分别表示帧内图片、单向预测图片、双向预测图片,矩形中的数字表示解码顺序。如图3的(a)所示,图片的解码顺序为I0、P1、B2、B3、B4,显示顺序为I0、B3、B2、B4、P1。在图3的(b)中示出参照图片列表的示例。参照图片列表是表示参照图片的候选的列表,一张图片(切片)可以具有一个以上的参照图片列表。在图3的(b)的示例中,对象图片B3具有L0列表RefPicList0和L1列表RefPicList1这两个参照图片列表。对象图片为B3的情况下的参照图片为I0、P1、B2,参照图片具有这些图片来作为要素。在各预测单元中,由参照图片索引refIdxLX指定实际上以参照图片列表RefPicListX(X=0或1)中的哪一张图片来进行参照。在图3的(b)中示出根据refIdxL0和refIdxL1参照参照图片P1和B2的示例。需要说明的是,LX是在不对L0预测和L1预测进行区分的情况下使用的记述方法,以下,通过将LX替换为L0、L1对针对L0列表的参数和针对L1列表的参数进行区分。
(合并预测和AMVP预测)
预测参数的解码(编码)方法中有合并预测(merge)模式和AMVP(Adaptive MotionVector Prediction:自适应运动矢量预测)模式,合并标志merge_flag是用于识别它们的标志。合并模式是不将预测列表利用标志predFlagLX(或帧间预测标识符inter_pred_idc)、参照图片索引refIdxLX、运动矢量mvLX包括于编码数据而从已处理的附近PU的预测参数中推导出并使用的模式。AMVP模式是将帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、运动矢量mvLX包括于编码数据的模式。需要说明的是,运动矢量mvLX被编码为识别预测矢量mvpLX的预测矢量索引mvp_1X_idx和差分矢量mvdLX。
帧间预测标识符inter_pred_idc是表示参照图片的种类和数量的值,取PRED_L0、PRED_L1、PRED_BI中的任一值。PRED_L0、PRED_L1表示使用分别在L0列表、L1列表的参照图片列表中进行管理的参照图片,表示使用一张参照图片(单向预测)。PRED_BI表示使用两张参照图片(双向预测BiPred),使用在L0列表和L1列表中进行管理的参照图片。预测矢量索引mvp_1X_idx是表示预测矢量的索引,参照图片索引refIdxLX是表示在参照图片列表中进行管理的参照图片的索引。
合并索引merge_idx是表示是否使用从已完成处理的PU推导出的预测参数候选(合并候选)中的任一个预测参数作为解码对象PU的预测参数的索引。
(运动矢量)
运动矢量mvLX表示不同的两张图片上的块间的偏移(移位)量。将与运动矢量mvLX有关的预测矢量、差分矢量分别称为预测矢量mvpLX、差分矢量mvdLX。
(双向预测biPred的判定)
是否为双向预测BiPred的标志biPred能根据两个预测列表利用标志是否均为1而推导出。例如能通过以下算式推导出。
biPred=(predFlagL0==1&&predFlagL1==1)
标志biPred也能根据帧间预测标识符是否是表示使用两个预测列表(参照图片)的值而推导出。例如能通过以下算式推导出。
biPred=(inter_pred_idc==PRED_BI)?1:0
(帧内预测)
接着,对帧内预测参数进行说明。
帧内预测参数是指在通过图片内的信息对CU进行预测处理中使用的参数,例如帧内预测模式IntraPredMode,亮度帧内预测模式IntraPredModeY和色差帧内预测模式IntraPredModeC可以不同。帧内预测模式例如存在67种,包括平面预测、DC预测、角度(Angular,方向)预测。色差预测模式IntraPredModeC例如使用平面预测、DC预测、角度预测、直接模式(使用亮度的预测模式的模式)、LM预测(根据亮度像素进行线性预测的模式)中的任一种。
(环路滤波器)
环路滤波器是设于编码环路内的滤波器,是去除块失真、振铃失真来改善画质的滤波器。环路滤波器主要有去块滤波器、取样自适应偏移器(SAO:Sample AdaptiveOffset)、自适应环路滤波器(ALF:Adaptive Loop Filter)。
(熵编码)
熵编码中存在如下方式:使用根据语法的种类、周围的状况适当选择出的上下文(概率模型)对语法进行可变长度编码的方式;以及使用预定的表或计算式对语法进行可变长度编码的方式。在前者CABAC(Context Adaptive Binary Arithmetic Coding:上下文自适应二进制算术编码)中将按每个编码或解码后的图片进行更新的概率模型储存于存储器。然后,在使用后续的帧间预测的P图片或B图片中,对象图片的上下文的初始状态从储存于存储器的概率模型中选择使用了相同的切片类型、相同的切片级别的量化参数的图片的概率模型,用于编码、解码处理。
(运动图像解码装置的构成)
在图4中示出本发明的运动图像解码装置(图像解码装置)31。运动图像解码装置31构成为包括:熵解码部301、预测参数解码部(预测图像解码装置)302、环路滤波器305、参照图片存储器306、预测参数存储器307、预测图像生成部(预测图像生成装置)308、逆量化/逆变换部311以及加法部312。需要说明的是,根据后文所述的运动图像编码装置11,也存在运动图像解码装置31中不包括环路滤波器305的构成。
此外,预测参数解码部302构成为包括帧间预测参数解码部303和帧内预测参数解码部304。预测图像生成部308构成为包括帧间预测图像生成部309和帧内预测图像生成部310。
此外,在下文中对将CTU、CU、PU、TU用作处理单位的示例进行了记载,但不限于此,也可以以CU为单位代替TU或PU单位进行处理。或者,也可以将CTU、CU、PU、TU替换为块,采用以块为单位的处理。
熵解码部301对从外部输入的编码流Te进行熵解码,分离各个编码(语法要素)并进行解码。在分离后的编码中存在用于生成预测图像的预测参数和用于生成差分图像的残差信息等。
熵解码部301将分离后的编码的一部分输出至预测参数解码部302。分离后的编码的一部分例如是预测模式predMode、PU分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引ref_idx_1X、预测矢量索引mvp_1X_idx以及差分矢量mvdLX。基于预测参数解码部302的指示来进行对哪一个编码进行解码的控制。熵解码部301将量化变换系数输出至逆量化/逆变换部311。该量化变换系数是在编码处理中对残差信号进行DCT(Discrete Cosine Transform,离散余弦变换)、DST(Discrete Sine Transform,离散正弦变换)、KLT(Karyhnen Loeve Transform,卡胡南列夫变换)等频率变换并量化而得到的系数。
帧间预测参数解码部303基于从熵解码部301输入的编码,参照存储于预测参数存储器307的预测参数来对帧间预测参数进行解码。此外,帧间预测参数解码部303将解码后的帧间预测参数输出至预测图像生成部308,再存储于预测参数存储器307。在下文对帧间预测参数解码部303的详细内容加以叙述。
帧内预测参数解码部304基于从熵解码部301输入的编码,参照存储于预测参数存储器307的预测参数来对帧内预测参数进行解码。帧内预测参数是指在一张图片内对CU进行预测的处理中所使用的参数,例如是帧内预测模式IntraPredMode。帧内预测参数解码部304将解码后的帧内预测参数输出至预测图像生成部308,再存储于预测参数存储器307。
环路滤波器305对加法部312所生成的CU的解码图像实施去块滤波、取样自适应偏移(SAO)、自适应环路滤波(ALF)等滤波。需要说明的是,如果环路滤波器305与运动图像符号装置11成对,则不一定包括上述三种滤波器,例如也可以是仅包括去块滤波器的构成。
参照图片存储器306按每个编码对象的图片和CTU或CU将加法部312所生成的CU解码图像存储于预定的位置。
预测参数存储器307将预测参数按每个解码对象的图片和预测单元(或子块、固定大小块、像素)存储于预定的位置。具体而言,预测参数存储器307存储由帧间预测参数解码部303解码后的帧间预测参数、由帧内预测参数解码部304解码后的帧内预测参数以及由熵解码部301分离后的预测模式predMode。在所存储的帧间预测参数中,例如有预测列表利用标志predFlagLX(帧间预测标识符inter_pred_idc)、参照图片索引refIdxLX以及运动矢量mvLX。
预测图像生成部308被输入从熵解码部301输入的预测模式predMode,再被从预测参数解码部302输入预测参数。此外,预测图像生成部308从参照图片存储器306中读出参照图片。预测图像生成部308在预测模式predMode所指示的预测模式下,使用被输入的预测参数和读出的参照图片(参照图片块)来生成PU(块)或子块的预测图像。
在此,在预测模式predMode指示帧间预测模式的情况下,帧间预测图像生成部309使用从帧间预测参数解码部303输入的帧间预测参数和读出的参照图片(参照图片块),通过帧间预测来生成块或子块的预测图像。
帧间预测图像生成部309针对预测列表利用标志predFlagLX为1的参照图片列表(L0列表或者L1列表),根据参照图片索引refIdxLX所指示的参照图片,从参照图片存储器306中读出位于以解码对象块为基准的运动矢量mvLX所示的位置的参照图片块。帧间预测图像生成部309基于读出的参照图片进行插补,生成块的预测图像(插补图像、运动补偿图像)。帧间预测图像生成部309将生成的块的预测图像输出至加法部312。在此,参照图片块是指参照图片上的像素的集合(通常为矩形因此称为块),是为了生成块或子块的预测图像而参照的区域。
在预测模式predMode指示帧内预测模式的情况下,帧内预测图像生成部310使用从帧内预测参数解码部304输入的帧内预测参数和读出的参照像素来进行帧内预测。
帧内预测图像生成部310参照帧内预测模式IntraPredMode所指示的预测模式,针对读出的邻接块生成块的预测图像。帧内预测图像生成部310将生成的块的预测图像输出至加法部312。
逆量化/逆变换部311将从熵解码部301输入的量化变换系数逆量化来求出变换系数。逆量化/逆变换部311对求出的变换系数进行逆DCT、逆DST、逆KLT等逆频率变换,计算出预测残差信号。逆量化/逆变换部311将计算出的残差信号输出至加法部312。
加法部312将从帧间预测图像生成部309或预测图像生成部308输入的块的预测图像和从逆量化/逆变换部311输入的残差信号按每个像素相加,生成块的解码图像。加法部312将生成的块的解码图像输出至去块滤波器、SAO部或ALF中的至少任一个。
(帧间预测参数解码部的构成)
接着,对帧间预测参数解码部303的构成进行说明。
图5是表示本实施方式的帧间预测参数解码部303的构成的概略图。帧间预测参数解码部303构成为包括:帧间预测参数解码控制部3031、AMVP预测参数推导部3032、加法部3035、合并预测参数推导部3036、子块预测参数推导部3037以及BTM预测部3038。也可以将AMVP预测参数推导部3032、合并预测参数推导部3036、子块预测参数推导部3037、BTM预测部3038统称为运动矢量推导部(运动矢量推导装置)。
帧间预测参数解码控制部3031向熵解码部301指示解码与帧间预测关联的编码(语法要素),提取编码数据中所包括的编码(语法要素),例如,PU分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引ref_idx_1X、预测矢量索引mvp_1X_idx以及差分矢量mvdLX。
帧间预测参数解码控制部3031首先提取合并标志merge_flag。帧间预测参数解码控制部3031表示为提取某个语法要素的情况是指向熵解码部301指示某个语法要素的解码,从编码数据中读出符合的语法要素。
在合并标志merge_flag为0、即指示AMVP预测模式的情况下,帧间预测参数解码控制部3031使用熵解码部301从编码数据中提取AMVP预测参数。作为AMVP预测参数,例如有帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_1X_idx以及差分矢量mvdLX。AMVP预测参数推导部3032根据预测矢量索引mvp_1X_idx推导出预测矢量mvpLX。在后文对详细内容加以叙述。帧间预测参数解码控制部3031将差分矢量mvdLX输出至加法部3035。在加法部3035中,将预测矢量mvpLX和差分矢量mvdLX相加,推导出运动矢量。
在合并标志merge_flag为1、即指示合并预测模式的情况下,帧间预测参数解码控制部3031提取合并索引merge_idx作为合并预测的预测参数。帧间预测参数解码控制部3031将提取出的合并索引merge_idx输出至合并预测参数推导部3036(详细内容如后文所述),将子块预测模式标志subPbMotionFlag输出至子块预测参数推导部3037。子块预测参数推导部3037根据子块预测模式标志subPbMotionFlag的值将块分割成多个子块,以子块为单位推导出运动矢量。即,在子块预测模式下,预测块以4x4或8x8这样小的块为单位进行预测。相对于将CU分割成多个分区(2NxN、Nx2N、NxN等块),以分区为单位对预测参数的语法进行编码、解码的方法,在子块预测模式下将多个子块集中在集合(set)中,按每个该集合对预测参数的语法进行编码、解码,因此能以较少的编码量对较多的子块的运动信息进行编码。子块预测参数推导部3037(子块预测单元)将对象块分割成多个子块,推导出以子块为单位的运动矢量。
若详细进行说明,则子块预测参数推导部3037(子块预测单元)具备在子块预测模式下进行子块预测的时空子块预测部30371(ATMVP预测单元、STMVP预测单元)、仿射预测部30372(仿射预测单元)、匹配运动推导部30373(匹配预测单元)、OBMC预测部30374中的至少一个。
仿射预测部30372(仿射预测单元)使用两个以上的基准运动矢量推导出上述子块的运动矢量。
时空子块预测部30371(ATMVP预测单元)使用分割与对象块对应的位置的参照图片上的块而得到的点的运动矢量推导出上述子块的运动矢量。
时空子块预测部30371(STMVP预测单元)使用与对象块邻接的邻接运动矢量和分割处于与对象块对应的位置的参照图片上的块而得到的点的运动矢量推导出上述子块的运动矢量。
匹配运动推导部30373(匹配预测单元)的特征在于,是一种以对象块为单位通过匹配推导出块单位的运动矢量,进而以上述子块为单位将上述块单位的运动矢量作为初始运动矢量,推导出基于匹配的运动矢量的匹配预测单元。
(子块预测模式标志)
在此,对表示运动图像解码装置31、运动图像编码装置11(详细内容如后文所述)中的某个块的预测模式是否为子块预测模式的子块预测模式标志subPbMotionFlag的推导方法进行说明。运动图像解码装置31、运动图像编码装置11基于是否使用后文所述的空间子块预测SSUB、时间子块预测TSUB、仿射预测AFFINE、匹配运动推导MAT中的某一种推导出子块预测模式标志subPbMotionFlag。例如,在将在某个块中选出的预测模式设为N(例如N是表示所选出的合并候选的标签)的情况下,可以通过以下的算式推导出子块预测模式标志subPbMotionFlag。
subPbMotionFlag=(N==TSUB)||(N==SSUB)||(N==AFFINE)||(N==MAT)
在运动图像解码装置31、运动图像解码装置11为进行一部分的预测,例如空间子块预测SSUB、仿射预测AFFINE的构成的情况下,可以如下所述地推导出子块预测模式标志subPbMotionFlag。
subPbMotionFlag=(N==SSUB)||(N==AFFINE)
图6的(a)是表示本实施方式的合并预测参数推导部3036的构成的概略图。合并预测参数推导部3036具备:合并候选推导部30361、合并候选选择部30362以及合并候选储存部30363。合并候选储存部30363储存从合并候选推导部30361输入的合并候选。需要说明的是,合并候选构成为包括:预测列表利用标志predFlagLX、运动矢量mvLX以及参照图片索引refIdxLX。在合并候选储存部30363中,索引按照规定的规则被分配至所储存的合并候选。
合并候选推导部30361直接使用已经进行了解码处理的邻接块的运动矢量和参照图片索引refIdxLX来推导出合并候选。除此之外,也可以使用仿射预测来推导出合并候选。就是说,合并候选推导部30361可以将仿射预测用于后述的空间合并候选推导处理、时间合并候选推导处理、组合合并候选推导处理以及零合并候选推导处理。需要说明的是,仿射预测以子块为单元进行,预测参数按每个子块储存于预测参数存储器307。或者,仿射预测也可以以像素为单元进行。
(空间合并候选推导处理)
作为空间合并候选推导处理,合并候选推导部30361按照规定的规则,读出预测参数存储器307所存储的预测参数(预测列表利用标志predFlagLX、运动矢量mvLX、参照图片索引refIdxLX),将读出的预测参数推导为合并候选,并储存于合并候选列表mergeCandList[](预测矢量候选列表mvpListLX[])。读出的预测参数是处于距离解码对象块预定的范围内的各块(例如,图7(b)所示的分别与解码对象块的左下端L、BL、左上端AL、右上端A、AR相接的块的全部或一部分)的预测参数。
(时间合并候选推导处理)
作为时间合并推导处理,合并候选推导部30361从预测参数存储器307读出参照图片中的图7(c)所示的同位块的右下块BR或包括解码对象块的中心坐标的块C的预测参数作为合并候选,储存于合并候选列表mergeCandList[]。一般优先将块BR加入合并候选列表mergeCandList[],在块BR不具有运动矢量的(例如帧内预测块)情况、块BR位于图片外的情况下,将块C的运动矢量加入预测矢量候选。通过加入运动不同的可能性高的同位块的运动矢量作为预测候选,增加预测矢量的选项,提高编码效率。参照图片的指定方法例如可以使用在图8的切片报头中指定的参照图片索引collocated_ref_idx(SYN01),也可以使用与解码对象块邻接的块的参照图片索引refIdxLX中最小的参照图片索引来指定。
例如合并候选推导部30361可以通过以下的算式推导出块C的位置(xColCtr,yColCtr)和块BR的位置(xColBr,yColBr)。
xColCtr=xPb+(W>>1)
yColCtr=yPb+(H>>1)
xColBr=xPb+W
yColBr=yPb+H
在此,(xPb,yPb)为对象块的左上坐标,(W,H)为对象块的宽度和高度。
(组合合并候选推导处理)
作为组合合并推导处理,合并候选推导部30361将已推导出且储存于合并候选储存部30363的两个不同的完成推导的合并候选的运动矢量与参照图片索引分别组合为L0、L1的运动矢量,由此推导出组合合并候选并储存于合并候选列表mergeCandList[]。
(零合并候选推导处理)
作为零合并候选推导处理,合并候选推导部30361推导出参照图片索引refIdxLX为0且运动矢量mvLX的X成分、Y成分均为0的合并候选,并储存于合并候选列表mergeCandList[]。
由合并候选推导部30361推导出的上述合并候选储存于合并候选储存部30363。可以向合并候选列表储存合并候选名的标签,也可以储存合并候选的运动矢量和参照图片索引。储存于合并候选列表mergeCandList[]的顺序为图7(b)、(c)所示的块、加入了结合合并候选、零合并候选的{L,A,AR,BL,AL,BR/C,结合合并候选,零合并候选}。BR/C是如果块BR不可以利用,则使用块C的意思。需要说明的是,运动矢量不可利用的(块为帧内预测等)参照块不储存于合并候选列表。
合并候选选择部30362选择储存于合并候选储存部30363的合并候选列表mergeCandList[]中分配有与从帧间预测参数解码控制部3031输入的合并索引merge_idx对应的索引的合并候选作为对象块的帧间预测参数。合并候选选择部30362将所选出的合并候选存储于预测参数存储器307,并且输出至预测图像生成部308。
(子块预测部)
接着,对子块预测部进行说明。
(时空子块预测部30371)
时空子块预测部30371根据时间上与对象块邻接的参照图片上(例如紧前的图片)的块的运动矢量或空间上与对象块邻接的块的运动矢量推导出分割对象块而得到的子块的运动矢量。具体而言,根据对象块所参照的参照图片而缩放参照图片上的运动矢量,由此推导出对象块中的各子块的运动矢量spMvLX[xi][yi](xi=xPb+BW*i,yj=yPb+BH*j,i=0,1,2……W/BW-1,j=0,1,2……H/BH-1)(时间子块预测)。在此,(xPb,yPb)为对象块的左上坐标,W、H为对象块的大小,BW、BH为子块的大小。
需要说明的是,在本说明书中,有时利用使用作为表示子块的索引(整数值)的k、j的下标[k][l],代替使用作为坐标值的xi、yi的下标[xi][yi]进行说明,但处理是相同的。在该情况下,使用作为水平和垂直方向的子块的个数的NBW、NBH推导出spMvLX[k][l](k=0..NBW-1,l=0..NBH-1)。在此,NBW=W/BW,NBH=H/BH
此外,也可以根据与分割对象块而得到的子块的距离计算邻接块的运动矢量的加权平均,由此推导出对象块中的各子块的运动矢量spMvLX[xi][yi](xi=xPb+BW*i,yj=yPb+BH*j,i=0,1,2……W/BW-1,j=0,1,2……H/BH-1)(空间子块预测)。
选择上述的时间子块预测的候选TSUB、空间子块预测的候选SSUB作为合并模式中的一个模式(合并候选)。
(运动矢量缩放)
对运动矢量的缩放的推导方法进行说明。当发定为运动矢量Mv、包括具有运动矢量Mv的块的图片Pic1(colPic)、运动矢量Mv的参照图片Ric2(refPicCol)、缩放后的运动矢量sMv、包括具有缩放后的运动矢量sMv的块的图片Pic3(currPic)、缩放后的运动矢量sMv所参照的参照图片Pic4(refPic)时,sMv的推导函数MvScale(Mv,Pic1,Pic2,Pic3,Pic4)如以下算式所示。
sMv=MvScale(Mv,Pic1,Pic2,Pic3,Pic4)
=Clip3(-R1,R1-1,sign(distScaleFactor*Mv)*((abs(distScaleFactor*Mv)+round1-1)>>shift1)) (算式MVSCALE-1)
distScaleFactor=Clip3(-R2,R2-1,(tb*tx+round2)>>shift2)
tx=(16384+abs(td)>>1)/td
td=DiffPicOrderCnt(Pic1,Pic2)//e.g POC diff of col pics
tb=DiffPicOrderCnt(Pic3,Pic4)//e.g.POC diff of curr pics
在此,round1、round2、shift1、shift2是用于使用倒数进行除法的轮次值和移位值,例如,round1=1<<(shift1-1),round2=1<<(shift2-1),shift1=8,shift2=6等。DiffPicOrderCnt(Pic1,Pic2)是返回Pic1与Pic2的时间信息(例如POC)之差的函数。为了以有限的精度进行处理,R1、R2、R3对值域进行限制,例如,R1=32768,R2=4096,R3=128等。
此外,缩放函数MvScale(Mv,Pic1,Pic2,Pic3,Pic4)也可以是以下的算式。
MvScale(Mv,Pic1,Pic2,Pic3,Pic4)=Mv*DiffPicOrderCnt(Pic3,Pic4)/DiffPicOrderCnt(Pic1,Pic2)(算式MVSCALE-2)
即,可以根据Pic1与Pic2的时间信息之差和Pic3与Pic4的时间信息之差的比对Mv进行缩放。
作为具体的时空子块预测方法,对ATMVP(Adaptive Temporal Motion VectorPrediction:自适应时间运动矢量预测)和STMVP(Spatial-Temporal Motion VectorPrediction:时空运动矢量预测)进行说明。
(ATMVP)
ATMVP是如下方式:基于图7(b)所示的对象图片PCur的对象块的空间邻接块(L、A、AR、BL、AL)的运动矢量,按每个对象块的子块推导出运动矢量,以子块为单位生成预测图像,按下述的过程进行处理。
步骤1)块级运动矢量推导
按对象块的周围的空间邻接块L、A、AR、BL、AL的顺序进行扫描,求出具有可利用(available)的运动矢量的最初的邻接块。在发现了具有可利用的运动矢量的邻接块的情况下,将该块所具有的运动矢量和参照图片设定为对象块的块级运动矢量BMV(bmv[0]、bmv[1])和参照图片BRef,进入步骤2。在所有的邻接块的运动矢量不可利用的(nonavailable)情况下,关闭ATMVP,结束处理。“关闭ATMVP”的意思是不在合并候选列表中储存ATMVP候选。
步骤2)子块级运动矢量推导
如图9的(a)所示,在参照图片BRef上,将移位了运动矢量BMV的位置的块(同位块)分割成子块,获取各子块所具有的运动矢量SpRefMvLX[k][l](k=0..NBW-1,l=0..NBH-1)和参照图片SpRef[k][l]的信息。
需要说明的是,也可以将对象块分割成子块,推导出将各子块移位了运动矢量BMV的位置的运动矢量SpRefMvLX[k][l](k=0..NBW-1,1=0..NBH-1)。在此,NBW、NBH分别为水平和垂直方向的子块的个数。在没有某个子块M(kM,lM)的运动矢量的情况下,将块级运动矢量BMV和参照图片BRef设定为子块(kM,lM)的运动矢量SpRefMvLX[kM][lM]和参照图片SpRef[kM][lM]。
步骤3)运动矢量缩放
由参照图片上的各子块的运动矢量SpRefMvLX[k][l]和参照图片SpRef[k][l]通过缩放函数MvScale()推导出对象块上的各子块的运动矢量SpMvLX[k][l]。
SpMvLX[k][l]=MvScale(SpRefMvLX[k][l],Bref,SpRef[k][l],PCur,RefPicListX[refIdxATMVP])(算式ATMVP-1)
在此,RefPicListX[refIdxATMVP]是对象块的参照图片,例如设定为refIdxATMVP=0。
需要说明的是,对象块的子块级参照图片可以是在索引(collocated_ref_idx)中指定的参照图片,用于图8所示的通过切片报头进行通知的时间方向的预测运动矢量推导。在该情况下,对象块的子块级参照图片是RefPicListX[collocated_ref_idx],对象块的子块级运动矢量SpMvLX[k][l]的计算式如下所述。
SpMvLX[k][l]=MvScale(SpRefMvLX[k][l],Bref,SpRef[k][l],PCur,RefPicListX[collocated_ref_idx])) (算式ATMVP-2)
步骤4)缩放后的子块级运动矢量的限幅
帧间预测图像生成部309在基于缩放后的子块级运动矢量生成预测图像时,从参照图片存储器306传输参照图片的图像数据。在参照图像RefPicListX[refIdxATMVP]上通过缩放,如图9的(b)所示地使各子块间的运动矢量(移位量)之差放大。在如图的9(c)所示各运动矢量之差变大时,整个块的图像数据的传输量(存储器带宽)增加。为了不增加来自参照图片存储器306的传输量(存储器带宽),优选限制子块的运动矢量之差的构成。
(子块运动矢量的限幅,ATMVP、STMVP、Affine通用)
对于子块级运动矢量的代表运动矢量repMV(repMV[0]、repMV[1]),时空子块预测部30371以将大于±THCLIP的范围的运动矢量加入规定的范围内的方式对运动矢量进行限制(限幅)。
spMvLX[k][l][0]=C1ip3(repMV[0]-THCLIP,repMV[0]+THCLIP-1,spMvLX[k][l][0]) (算式ATMVP-3)
spMvLX[k][l][1]=Clip3(repMV[1]-THCLIP,repMV[1]+THCLIP-1,spMvLX[k][l][1])
此外,也可以使用计算所有的子块级运动矢量spMvLX[][]后更新各子块的运动矢量的以下的构成。
时空子块预测部30371计算对象块中所包括的子块级的运动矢量spMvLX[k][l]的范围。将水平和垂直方向的spMvLX[k][l]的最大值推导为maxspMvLXx、maxspMvLXy,将水平和垂直方向的spMvLX[k][l]的最小值推导为minspMvLXx、minspMvLXy。
maxspMvLXx=max(spMvLX[k][l][0])k=0..NBW-1,l=0..NBH-1 (算式CLIP1)
maxspMvLXy=max(spMvLX[k][l][1])k=0..NBW-1,1=0..NBH-1
minspMvLXx=min(spMvLX[k][l][0])k=0..NBW-1,1=0..NBH-1
minspMvLXy=min(spMvLX[k][l][1])k=0..NBW-1,1=0..NBH-1
rangeX=maxSpMvLxx-minspMvLXx
rangeY=maxSpMvLxy-minspMvLXy
在此,NBW、NBH分别为水平和垂直方向的子块的个数。
在spMvLX[k][l]的最大值和最小值的差分值大于规定值THCLIP*2的情况下,时空子块预测部30371如图9(d)所示,对于块级运动矢量BMV(bmv[0],bmv[1]),以将大于±THCLIP的范围的运动矢量加入范围内的方式对运动矢量进行限制(限幅)。
if(rangeX>THCLIP*2) (算式CLIP2)
spMvLX[k][l][0]=Clip3 (bmv[0]-THCLIP,bmv[0]+THCLIP-1,spMvLX[k][l][0])
if(rangeY>THCLIP*2)
spMvLX[k][l][1]=Clip3 (bmv[1]-THCLIP,bmv[1]+THCLIP-1,spMvLX[k][l][1])
需要说明的是,在上述过程中,对于块级运动矢量BMV(bmv[0],bmv[1]),将大于±THCLIP的范围的运动矢量设为限幅的对象,但也可以是对于非块级运动矢量BMV(bmv[0],bmv[1])的子块级的运动矢量的代表值(例如平均值),将大于±THCLIP的范围的运动矢量设为限幅的对象。
if(rangeX>THCLIP*2) (算式CLIP3)
spMvLX[k][l][0]=C1ip3 (repMV[0]-THCLIP,repMV[0]+THCLIP-1,spMvLX[k][l][0])
if(rangeY>THCLIP*2)
spMvLX[k][l][1]=C1ip3 (repMV[1]-THCLIP,repMV[1]+THCLIP-1,spMvLX[k][l][1])
(代表运动矢量)
在此,代表运动矢量repMV[0]、repMV[1]例如可以通过子块的运动矢量spMvLX[k][l]的水平、垂直分量的平均值进行推导。代表运动矢量repMV例如可以是对象块的中心位置的子块的运动矢量spMvLX[(NBW-1)/2][(NBH-1)/2]、对象块的左上位置的子块的运动矢量spMvLX[0][0]。此外,在对象块的中心位置的子块的运动矢量spMvLX[(NBW-1)/2][(NBH-1)/2]不可利用的情况下,可以使用左上位置的子块的运动矢量spMvLX[0][0]。此外,也可以使用使代表运动矢量repMV位于对象块的四角的子块的运动矢量的平均值。
repMV[0]=(spMvLX[0][0][0]+spMvLX[NBW-1][0][0]+spMvLX[0][NBH-1][0]+spMvLX[NBW-1][NBH-1][0]+2)>>2
repMV[1]=(spMvLX[0][0][1]+spMvLX[NBW-1][0][1]+spMvLX[0][NBH-1][1]+spMvLX[NBW-1][NBH-1][1]+2)>>2
步骤5)将ATMVP储存于合并候选列表
在图7(a)中示出存储于合并候选列表的合并候选的顺序的示例。使用通过帧间预测参数解码控制部3031推导出的merge_idx从该列表中选择对象块的合并候选。
在选择了ATMVP作为合并候选的情况下,如图9的(a)所示,基于对象块的各子块SpMvLX[k][l],对参照图片RefPicListX[refIdxATMVP]上的图像进行读出、插补,推导出预测图像。
在图10的流程图中对以上在步骤1)~步骤5)中所说明的与ATMVP有关的合并候选列表推导处理进行说明。
时空子块预测部30371对对象块的五个邻接块进行搜索(S2301)。
时空子块预测部30371判定有无可利用的第一个邻接块,如果有可利用的邻接块,则进入S2303,如果没有可利用的邻接块,则进入S2309(S2302)。
时空子块预测部30371将可利用的邻接块所具有的运动矢量和参照图片设定为对象块的块级运动矢量BMV和参照图片BRef(S2303)。
时空子块预测部30371使用基于对象块的块的运动矢量BMV和参照图片BRef,获取基于同位块的子块的运动矢量SpRefMvLX[k][1]和参照图片SpRef[k][1](S2304)。
时空子块预测部30371使用运动矢量SpRefMvLX[k][1]和参照图片SpRef,通过缩放推导出将对象图片的参照图片设定为RefPicListX[refIdxATMVP]时的基于对象块的子块的运动矢量spMvLX[k][1](S2305)。
时空子块预测部30371判定通过缩放推导出的基于子块的运动矢量spMvLX[k][1]是否在规定值内。如果spMvLX[k][1]在规定值内,则进入S2308,否则进入S2307(S2306)。
在运动矢量spMvLX[k][1]在规定值以外的情况下,时空子块预测部30371通过子块运动矢量的限幅所示的方法对spMvLX[k][1]进行限幅(S2307)。
时空子块预测部30371在图7(a)所示的合并候选列表mergeCandList[]中储存ATMVP的运动矢量或ATMVP这一标签(S2308)。
时空子块预测部30371不在合并候选列表mergeCandList[]中储存ATMVP的运动矢量或ATMVP这一标签(S2309)。
通过以上的处理,推导出与ATMVP有关的合并候选列表。
如此,能在ATMVP中通过将缩放后的子块的运动矢量的范围限制在规定值以内来防止存储器带宽的增加。
(STMVP)
STMVP是如下方式:基于图11的(a)所示的对象图片PCur的对象块的空间邻接块(a、b、c、d……)和图11的(b)所示的对象块的同位块(A’、B’、C’、D’……)的运动矢量,按每个对象块的子块推导出运动矢量,以子块为单位生成预测图像。图11的(a)的A、B、C、D是分割对象块而得到的子块的示例。图11的(b)的A’、B’、C’、D’是图11的(a)的子块A、B、C、D的同位块。图11的(b)的A’c、B’c、C’c、D’c是位于A’、B’、C’、D’的中心的区域,A’br、B’br、C’br、D’br是位于A’、B’、C’、D’的右下的区域。需要说明的是,A’br、B’br、C’br、D’br也可以不是图11的(b)所示的A’、B’、C’、D’以外的右下位置,而是图11的(g)所示的A’、B’、C’、D’内的右下位置。STMVP以下述的过程进行处理。将对象块分割成子块,按顺序对各子块进行下述过程。
步骤1)求出从对象子块(称为子块A)的上侧邻接块起在右方向上可利用的(available)最初的块。在发现可利用的邻接块的情况下,将该第一个块所具有的运动矢量和参照图片设为STMVP的上侧矢量mvA_above和参照图片RefA_above,设定为计数cnt=1。在没有可利用的邻接块的情况下,设定为计数cnt=0。
步骤2)求出从对象子块(子块A)的左侧邻接块b起在下方向上可利用的最初的块。在发现可利用的邻接块的情况下,将该第一个块所具有的运动矢量和参照图片设为左侧矢量mvA_left和参照图片RefA_left,将计数cnt递增一个。在没有可利用的邻接块的情况下,不更新计数cnt。
步骤3)在作为对象子块(子块A)的时间方向邻接块的同位块A’中,检查能否按右下位置A’br和中心位置A’c的顺序来利用。在发现可利用的区域的情况下,将该块所具有的最初的运动矢量和参照图片设为同位矢量mvA_col和参照图片RefA_col,将计数递增一个。在没有可利用的块的情况下,不更新计数cnt。
步骤4)在cnt=0(没有可利用的运动矢量)的情况下,将零矢量设定为对象子块(子块A)的运动矢量。
步骤5)在ctn不为0的情况下,使用对象图片PCur和对象块的参照图片RefPicListX[collocated_ref_idx]的时间信息,对在步骤1)~步骤3)中求出的可利用的运动矢量进行缩放。将缩放后的运动矢量设定为smvA_above、smvA_left、smvA_col。
smvA_above=MvScale(mvA_above,PCur,RefA_above,PCur,RefPicListX[collocated_ref_idx])) (算式STMVP-1)
smvA_left=MvScale(mvA_left,PCur,RefA_left,PCur,RefPicListX[collocated_ref_idx]))
smvA_col=MvScale(mvA_col,PCur,RefA_col,PCur,RefPicListX[collocated_ref_idx]))
将不可利用的运动矢量设定为0。
步骤6)计算周边块的运动矢量smvA_above、smvA_left、smvA_col的平均,设定为对象子块(子块A)的运动矢量spMvLX[A]。对象块(子块A)的参照图片为RefPicListX[collocated_ref_idx]。
spMvLX[A]=(smvA_above+smvA_left+smvA_col)/cnt(算式STMVP-2)
例如可以如下进行推导用于进行整数运算。在推导出的运动矢量数的计数cnt为2的情况下,在将两个运动矢量按顺序记载为mvA_0、mvA_1时,可以通过以下的算式推导出对象块的运动矢量spMvLX。
spMvLX[A]=(smvA_0+smvA_1)>>1
在cnt为3的情况下,可以通过以下的算式进行推导。
spMvLX[A]=(5*smvA_above+5*smvA_1eft+6*smvA_col)>>4
对子块B、C、D等对象块中的各子块执行上述步骤1)~步骤6)的处理,如图11的(d)、(e)、(f)所示地求出各子块的运动矢量。其中,在子块B中,上侧邻接块从d向右方向进行搜索。在子块C中,上侧邻接块为A,左侧邻接块从a向下方向进行搜索。在子块D中,上侧邻接块为B,左侧邻接块为C。
步骤7)子块级运动矢量的限幅
与ATMVP的步骤4)相同,为了不增加存储器带宽,可以在各子块的运动矢量推导(步骤6)后,对子块级运动矢量spMvLX[]进行限制。
具体而言,对于子块级运动矢量的代表运动矢量repMV(repMV[0]、repMV[1]),时空子块预测部30371以将大于±THCLIP的范围的运动矢量加入范围内的方式对运动矢量进行限制(限幅)。
spMvLX[k][0]=Clip3(repMV[0]-THCLIP,repMV[0]+THCLIP-1,spMvLX[k][0])
spMvLX[k][1]=Clip3(repMV[1]-THCLIP,repMV[1]+THCLIP-1,spMvLX[k][1])
时空子块预测部30371可以以在ATVMP中已通过(算式CLIP1)、(算式CLIP2)、(算式CLIP3)说明过的方式对STMVP的各子块的运动矢量进行限制。
步骤8)在合并候选列表中储存STMVP的运动矢量(或STMVP这一标签)。在图7(a)中示出储存于合并候选列表的合并候选的顺序。从该列表中,使用通过帧间预测参数解码控制部3031推导出的merge_idx选择对象块的合并候选。
在选择了STMVP作为合并候选的情况下,从对象块的各子块基于运动矢量对参照图片RefPicListX[collocated_ref_idx]上的图像进行读出、插补,推导出预测图像。
在图12的流程图中对以上在步骤1)~步骤8)中说明过的与STMVP有关的合并候选列表推导处理进行说明。
时空子块预测部30371将对象块分割成子块(S2601)。
时空子块预测部30371对子块的上侧、左侧、时间方向的邻接块进行搜索(S2602)。
时空子块预测部30371判定有无可利用的邻接块,如果有可利用的邻接块,则进入S2604,如果没有可利用的邻接块,则进入S2610(S2603)。
时空子块预测部30371根据对象图片和多个邻接块的参照图片间的时间上的距离,对可利用的邻接块所具有的运动矢量进行缩放(S2604)。
时空子块预测部30371计算缩放后的运动矢量的平均值,设定为对象子块的运动矢量spMvLX[](S2605)。
时空子块预测部30371检查处理中的子块是否为对象块的最后的子块(S2606),如果是最后的子块,则进入S2607,否则,将处理对象转换为下一个子块,进入S2602(S2611),重复S2602~S2605的处理。
时空子块预测部30371判定推导出的基于子块的运动矢量spMvLX[]是否在规定值内。如果spMvLX[]在规定值内,则进入S2609,否则,进入S2608(S2607)。
在运动矢量spMvLX[]在规定值以外的情况下,时空子块预测部30371通过子块运动矢量的限幅的方法对运动矢量spMvLX[]进行限幅(S2608)。
时空子块预测部30371在图7(a)所示的合并候选列表mergeCandList[]中储存STMVP的运动矢量或STMVP这一标签(S2609)。
时空子块预测部30371在没有可利用的运动矢量的情况下,不在合并候选列表mergeCandList[]中储存STMVP的运动矢量,结束处理(S2610)。
通过以上的处理,推导出与STMVP有关的合并候选列表。
如此,能在STMVP中通过将缩放后的子块的运动矢量的范围限制在规定值以内来防止存储器带宽的增加。
(仿射预测部)
仿射预测部30372、30321推导出对象块的仿射预测参数。在本实施方式中,推导出对象块的两个控制点(V0、V1)的运动矢量(mv0_x,mv0_y)(mv1_x,mv1_y)作为仿射预测参数。具体而言,可以通过根据邻接块的运动矢量进行预测来推导出各控制点的运动矢量(仿射预测部30372),也可以通过被推导为控制点的运动矢量的预测矢量与由编码数据推导出的差分矢量之和推导出各控制点的运动矢量(仿射预测部30321)。
(子块的运动矢量推导处理)
以下,作为具体的实施构成的示例,分步骤对仿射预测部30372、30321使用仿射预测推导出各子块的运动矢量mvLX的处理流程进行说明。仿射预测部30372、30321使用仿射预测推导出对象子块的运动矢量mvLX的处理包括下述(STEP1)~(STEP3)的三个工序。
(STEP1)控制点矢量的推导
仿射预测部30372、30321推导出对象块的代表点(在此为块的左上的点V0和块的右上的点V1)各自的运动矢量作为在用于推导出候选的仿射预测中使用的两个控制点。需要说明的是,块的代表点使用对象块上的点。在本说明书中,将用于仿射预测的控制点的块的代表点记载为“块控制点”。
首先,使用图13,分别对AMVP模式和合并模式的(STEP1)的处理进行说明。图13是表示为了进行AMVP模式和合并模式下的控制点的运动矢量的推导而利用的参照块的位置的示例的图。
(AMVP模式下的控制点的运动矢量的推导)
仿射预测部30321将图13的(a)所示的两个控制点(V0、V1)或图13的(b)所示的两个控制点(V0、V2)的预测矢量mvpVNLX与差分矢量相加,推导出各自的运动矢量mvN=(mvN_x,mvN_y)。N表示控制点。(合并模式下的控制点的运动矢量的推导)
仿射预测部30372参照预测参数存储器307,对如图13的(c)所示的包括L、A、AR、LB、AL的块检查是否利用了仿射预测。按块L、A、AR、LB、AL的顺序进行搜索,选择最初发现的利用仿射预测的块(在此为图13的(c)中的L)作为参照块(合并参照块),推导出运动矢量。
仿射预测部30372由包括所选出的合并参照块的三点(图13的(d)的点v0、点v1、点v2)的块的运动矢量(mvvN_x,mvvN_y)(N=0..2)推导出控制点(例如V0、V1)的运动矢量(mvN_x,mvN_y)(N=0..1)。(STEP2)子块矢量的推导
仿射预测部30372、30321由在(STEP1)中推导出的作为对象块的代表点的块控制点(控制点V0和V1或V0和V2)的运动矢量推导出对象块中所包括的各子块的运动矢量。通过(STEP1)和(STEP2)推导出各子块的运动矢量spMvLX。需要说明的是,以下对控制点V0和V1的示例进行说明,但如果将V1的运动矢量替换成V2的运动矢量,也能在控制点V0和V2通过同样的处理推导出各子块的运动矢量。
图14(a)是表示由控制点V0的运动矢量mv0(mv0_x,mv0_y)和V1的运动矢量mv1(mv1_x,mv1_y)推导出构成对象块的各子块的运动矢量spMvLX的示例的图。各子块的运动矢量spMvLX如图14(a)所示地推导为位于各子块的中心的每个点的运动矢量。
仿射预测部30372,30321基于控制点V0和V1的运动矢量(mv0_x,mv0_y)、(mv1_x,mv1_y),推导出对象块中的各子块的运动矢量spMvLX[xi][yi](xi=xb+BW*i,yj=yb+BH*j,i=0,1,2......W/BW-1,j=0,1,2......H/BH-1)。
(STEP3)子块运动补偿
运动补偿部3091基于从帧间预测参数解码部303输入的预测列表利用标志predFlagLX、参照图片索引refIdxLX、通过(STEP2)推导出的子块的运动矢量spMvLX进行子块单位的运动补偿。具体而言,从参照图片存储器306读出处于在参照图片索引refIdxLX中指定的参照图片上的以对象子块的位置为起点移位了运动矢量spMvLX的位置的块,并进行滤波,由此生成运动补偿图像PredLX。
与ATMVP、STMVP相同,为了不增加存储器带宽,可以在各子块的运动矢量推导后,对子块级运动矢量spMvLX[]进行限制。
具体而言,对于子块级运动矢量的代表运动矢量repMV(repMV[0]、repMV[1]),仿射预测部30372以将大于±THCLIP的范围的运动矢量加入范围内的方式对运动矢量进行限制(限幅)。
spMvLX[k][0]=Clip3(repMV[0]-THCLIP,repMV[0]+THCLIP-1,spMvLX[k][0])
spMvLX[k][1]=Clip3(repMV[1]-THCLIP,repMV[1]+THCLIP-1,spMvLX[k][1])
仿射预测部30372可以以在ATVMP中已通过(算式CLIP1)、(算式CLIP2)、(算式CLIP3)说明过的方式对仿射预测的各子块的运动矢量进行限制。
如此,能在仿射预测中通过将推导后的子块的运动矢量的范围限制在规定值以内来防止存储器带宽的增加。
(匹配运动推导部30373)
匹配运动推导部30373通过进行双向匹配或模板匹配中的任一种的匹配处理来推导出块或子块的运动矢量spMvLX。图15是用于说明(a)双向匹配(Bilateral matching)、(b)模板匹配(Template matching)的图。匹配运动推导模式被选作合并模式中的一个合并候选(匹配候选)。
匹配运动推导部30373假定为物体进行匀速运动,通过多个参照图片中的区域的匹配推导出运动矢量。在双向匹配中,假定为某个物体以匀速运动通过参照图片A的某个区域、对象图片Cur_Pic的对象块、参照图片B的某个区域,通过参照图片A、B间的匹配推导出对象块的运动矢量。在模板匹配中,假定为对象块的邻接区域的运动矢量和对象块的运动矢量相等,通过对象块的邻接区域Temp_Cur(模板)和参照图片上的参照块的邻接区域Temp_L0的匹配推导出运动矢量。在匹配运动推导部中,通过将对象块分割成多个子块,以分割出的子块为单位进行后述的双向匹配或模板匹配,推导出子块的运动矢量spMvLX[xi][yi](xi=xPb+BW*i,yj=yPb+BH*j,i=0,1,2......W/BW-1,j=0,1,2......H/BH-1)。
如图15(a)所示,在双向匹配中,为了推导出对象图片Cur_Pic中的对象块Cur_block的运动矢量而参照两张参照图片。更具体而言,首先,在将对象块Cur_block的坐标表示为(xCur,yCur)时,设定如下Block_A和Block_B,所述Block_A是通过参照图片索引refIdxL0指定的参照图片Ref0(参照图片A)内的区域,其具有通过以下算式确定的左上坐标(xPos0,yPos0),(xPos0,yPos0)=(xCur+mv0[0],yCur+mv0[1])(算式FRUC-1)
所述Block_B是例如通过参照图片索引refIdxL1指定的参照图片Ref1(参照图片B)内的区域,其具有通过以下算式确定的左上坐标(xPos1,yPos1),(xPos1,yPos1)=(xCur+mv1[0],xCur+mv1[1])=(xCur-mv0[0]*DiffPicOrderCnt(Cur_Pic,Ref1)/DiffPicOrderCnt(Cur_Pic,Ref0),yCur-mv0[1]*DiffPicOrderCnt(Cur_Pic,Ref1)/DiffPicOrderCnt(Cur_Pic,Ref0)) (算式FRUC-2)。
在此,DiffPicOrderCnt(Cur_Pic,Ref0)和DiffPicOrderCnt(Cur_Pic,Ref1)如图15(a)所示,分别表示返回对象图片Cur_Pic和参照图片A的时间信息之差的函数和返回对象图片Cur_Pic和参照图片B的时间信息之差的函数。
接着,确定(mv0[0],mv0[1]),以使Block_A和Block_B的匹配成本C最小。如此推导出的(mv0[0],mv0[1])为附加于对象块的运动矢量。基于附加于该对象块的运动矢量推导出按分割对象块而得到的每个子块推导出运动矢量spMVL0。
作为Block_A和Block_B的匹配成本C的一个示例如下所示。首先,求出SAD(Sum ofAbsolute Difference,绝对值误差和(绝对值差分和))作为误差。
SAD=∑∑abs(Block_A[xi][yi]-Block_B[xi][yi]) (算式FRUC-3)
在此,∑∑是xi和yi之和,Block_A[][]和Block_B[][]分别为块的左上坐标由(算式FRUC-1)、(算式FRUC-2)的(xPos0,yPos0)、(xPosl,yPos1)来表示的块。按用于调整亮度像素比特长度的移位量ShiftDistortionBitDepthY对它进行校正,设为误差D。
D=SAD>>ShiftDistortionBitDepthY (算式FRUC-4)
另外,对于待定常数Lambda,如下所示以来自亮度的误差评估的比特长度和初始矢量候选(MVx,MVy)的绝对值差分和的运动矢量的成本Rate计算匹配成本C。
Lambda=4<<(decoder_side_distortion_bit_depth-8) (算式FRUC-5)
Rate=abs(mv0[0]-MVx)+abs(mv0[1]-MVy) (算式FRUC-6)
C=D+Lambda*Rate(算式FRUC-7)
匹配运动推导部30373可以使用包括如下算式的D和Lambda的像素比特长度的匹配成本C。
D=SAD (算式FRUC-8)
Lambda=4<<(BitDepthY-8) (算式FRUC-9)
特别是,在decoder_side_distortion_bit_depth的信息未明确地从编码侧传输至解码侧的情况、不使用decoder_side_distortion_bit_depth的信息的情况下使用上述的算式。
此外,匹配运动推导部30373可以使用包括如下算式的D和Lambda的像素比特长度的匹配成本C。
D=SAD>>ShiftDistortionBitDepthY (算式FRUC-10)
Lambda=4 (算式FRUC-11)
如上所述,通过取决于亮度的像素比特长度BitDepthY的待定常数ShiftDistortionBitDepthY对D进行调整,由此取得误差D和运动矢量的成本Rate的平衡,因此有提高编码效率的效果。
作为该示例以外的匹配成本C的计算方法,例如也可以使用SATD(Hadamard变换绝对值误差和)代替SAD。
D=SATD>>ShiftDistortionBitDepth (算式FRUC-12)
或者,作为匹配成本C的计算方法,例如也可以使用SSD(均方误差,Sum of SquareDifference)或MRSAD(Mean Removed Sum of Absolute Differences,减去各块的平均而得到的绝对值差分和)来代替(算式FRUC-4)、(算式FRUC-8)、(算式FRUC-10)的SAD。
SSD=∑∑(Block_A[xi][yi]-Block_B[xi][yi])2 (算式FRUC-3-2)
MRSAD=∑∑abs(Block_A[xi][yi]-Block_B[xi][yi]-AVE(A)+AVE(B) (算式FRUC-3-3)
在此,AVE为块的像素的平均值,AVE(A)=∑∑Block_A[xi][yi]/(BH*BW),AVE(B)=∑∑Block_B[xi][yi]/(BH*BW),BH为块的垂直方向的像素数,BW为块的水平方向的像素数。
除此之外,也可以不按像素比特长度计算SAD,而是如下所示在按用于调整像素比特的值的移位量ShiftDistortionBitDepthY对像素比特的值进行校正之后求出绝对值差分和。
D=∑∑abs((Block_A[xi][yi]>>ShiftDistortionBitDepthY)
-(Block_B[xi][yi]>>ShiftDistortionBitDepthY)) (算式FRUC-13)
此外,对于待定常数Lambda,也可以以与模式选择时的待定常数Lambda类似的形式,即如以下算式所示的包括量化参数QP的值的形式进行定义。需要说明的是,也可以具有对象块的QP的估计值、对象块的邻接CU的QP、包括对象块的CTU的初始QP、包括对象块的切片的初始QP来代替对象块的QP。Alpha是由编码构造、切片类型决定的常数值。
Lambda=sqrt(alpha*2(QP-12+6*(BitDepth-8-ShiftDistortionBitDepthY))/3.0) (算式FRUC-14)
在此,示出了按亮度像素计算匹配成本的示例,但在考虑色差像素的情况下,通过如下过程来实现:除了亮度像素的结果,将误差D加上按用于调整色差像素比特长度的移位量ShiftDistortionBitDepthC对色差像素的绝对值差分和进行校正而得到的值,将与色差格式对应的系数cR乘以运动矢量的成本Rate。具体而言,在4:2:0格式时,将cR的值设为1.5,在4:2:2格式时,将cR的值设为2,在4:4:4:格式时将cR的值设为3。
D=D_luma+D_chroma+Lambda*Rate*cR (算式FRUC-15)
D_luma是上述的算式中的亮度的误差,D_chroma是上述的算式中的色差的误差,cR=1.5(4:2:0),cR=2(4:2:2),cR=3(4:4:4)。此外,cR的值不限于此,也可以是cR=1(4:2:0),cR=1.5(4:2:2),cR=2(4:4:4)等。
如此,通过匹配成本C的计算来考虑像素比特长度、误差评估比特长度、量化参数,由此使通过匹配运动推导部30373推导出的运动矢量与其他预测部的运动矢量一致,谋求合并预测等的编码效率改善。
匹配运动推导部30373具备第一运动矢量搜索部303731和第二运动矢量搜索部303732。
第一运动矢量搜索部303731通过匹配处理按每个块推导出运动矢量。首先,将对象块的AMVP候选、合并候选等邻接块的运动矢量设为初始矢量候选,推导出对象块中的初始矢量。在(mv0[0],mv0[1])中代入初始矢量候选,将匹配成本C最小的运动矢量设为块级初始矢量,再次设定为(mv0[0],mv0[1])(初始矢量搜索)。
接着,第一运动矢量搜索部303731进行对象块中的块级的本地搜索(局部的搜索)。在本地搜索中,进一步对以初始矢量为中心的局部区域(例如以初始矢量为中心的±SR像素的区域)进行搜索,将匹配成本C最小的矢量推导为最终的对象块的块级运动矢量。
接着,第二运动矢量搜索部303732推导出对象块中所包括的各子块的运动矢量。首先,推导出各子块的初始矢量(初始矢量搜索)。子块的初始矢量候选是由第一运动矢量搜索部303731推导出的块级运动矢量、各子块的时空方向的邻接块的运动矢量、该子块的ATMVP或STMVP矢量等。从这些候选矢量中按每个子块求出匹配成本C最小的运动矢量,推导出各子块的初始矢量。需要说明的是,在子块的初始矢量搜索中利用的矢量候选不限于上述的矢量。
接着,第二运动矢量搜索部303732在以子块的初始矢量为中心的局部区域(例如以初始矢量为中心的±SR像素的区域)中进行本地搜索。然后,将子块的矢量候选的匹配成本C最小的矢量推导为最终的子块的运动矢量。
需要说明的是,可以使用扩展光栅扫描来代替光栅扫描。扩展光栅扫描通过以光栅扫描的方式按预先设定的扫描顺序对搜索区间内的各点进行扫描。例如,从中心朝向周边涡旋状进行扫描的螺旋扫描也是扩展光栅扫描中的一种。
在光栅搜索中,也是第一运动矢量搜索部303731对块级的运动矢量进行搜索,第二运动矢量搜索部303732对子块级的运动矢量进行搜索。
另一方面,图15(b)是用于对上述匹配处理中的模板匹配(Template matching)进行说明的图。
如图15(b)所示,在模板匹配中,为了推导出对象图片Cur_Pic中的对象块Cur_block的运动矢量而一次参照一张参照图片。
更具体而言,例如设定参照块Block_A,所述参照块Block_A是通过参照图片索引refIdxL0指定的参照图片Ref0(称为参照图片A)内的区域,其具有通过如下算式确定的左上坐标(xPos0,yPos0),
(xPos0,yPos0)=(xCur+mv0[0],yCur+mv0[1]) (算式FRUC-16)。
接着,设定在对象图片Cur_Pic中与对象块Cur_block邻接的模板区域Temp_Cur和在参照图片A中与Block_A邻接的模板区域Temp_L0。在图15(b)所示的示例中,模板区域Temp_Cur由与对象块Cur_block的上侧邻接的区域和与对象块Cur_block的左侧邻接的区域构成。此外,模板区域Temp_L0由与Block_A的上侧邻接的区域和与Block_A的左侧邻接的区域构成。
使用该模板,与双向匹配相同,第一运动矢量搜索部303731推导出对象块中的块级初始矢量。作为模板匹配的匹配成本C的一个示例如下所示。首先,求出以下的亮度的像素值的SAD(Sum of Absolute Difference,绝对值误差和)。
SAD=∑∑abs(Temp_Cur[xi][yi]-Temp_L0[xi][yi]) (算式FRUC-17)
在此,∑∑是xi和yi之和,Temp_L0[][]是图15(b)所示的对象块的模板,是与将(算式FRUC-16)所示的(xPos0,yPos0)设为左上坐标的Block_A的上侧和左侧邻接的区域。在(算式FRUC-16)的(mv0[0],mv0[1])中代入初始矢量候选。按用于调整亮度像素比特长度的移位量ShiftDistortionBitDepthY对它进行校正,设为误差D。
D=SAD>>ShiftDistortionBitDepthY (算式FRUC-18)
另外,对于待定常数Lambda,如下所示以来自亮度的误差评估的比特长度和初始矢量候选(MVx,MVy)的绝对值差分和的运动矢量的成本Rate计算匹配成本C。
Lambda=4<<(decoder_side_distortion_bit_depth-8) (算式FRUC-19)
Rate=abs(mv0[0]-MVx)+abs(mv0[1]-MVy) (算式FRUC-20)
C=D+Lambda*Rate (算式FRUC-21)
匹配运动推导部30373可以使用包括如下算式的D和Lambda的像素比特长度的匹配成本C。
D=SAD (算式FRUC-22)
Lambda=4<<(BitDepthY-8) (算式FRUC-23)
特别是,在decoder_side_distortion_bit_depth的信息未明确地从编码侧传输至解码侧的情况、不使用decoder_side_distortion_bit_depth的信息的情况下使用上述的算式。
此外,匹配运动推导部30373可以使用包括如下算式的D和Lambda的像素比特长度的匹配成本C。
D=SAD>>ShiftDistortionBitDepthY (算式FRUC-24)
Lambda=4 (算式FRUC-25)
如上所述,通过取决于亮度的像素比特长度BitDepthY的待定常数ShiftDistortionBitDepthY对D进行调整,由此取得误差D和运动矢量的成本Rate的平衡,因此有提高编码效率的效果。
作为该示例以外的匹配成本C的计算方法,例如也可以使用SATD(Hadamard变换绝对值误差和)代替SAD。
D=SATD>>ShiftDistortionBitDepthY (算式FRUC-26)
或者,作为匹配成本C的计算方法,例如也可以使用SSD(均方误差)或MRSAD(MeanRemoved Sum of Absolute Differences,减去各块的平均而得到的绝对值差分和)来代替(算式FRUC-18)、(算式FRUC-22)、(算式FRUC-24)的SAD。
SSD=∑∑(Temp_Cur[xi][yi]-Temp_L0[xi][yi])2 (算式FRUC-17-2)
MRSAD=∑∑abs(Temp_Cur[xi][yi]-Temp_L0[xi][yi]-AVE(Temp_Cur)+AVE(Temp_L0)) (算式FRUC-17-3)
在此,AVE为块的像素的平均值,AVE(Temp_Cur)=∑∑Temp_Cur[xi][yi]/(BH*BW),AVE(Temp_L0)=∑∑Temp_L0[Xi][yi]/(BH*BW),BH为块的垂直方向的像素数,BW为块的水平方向的像素数。
除此之外,也可以不按像素比特长度计算SAD,而是如下所示在按用于调整像素比特的值的移位量ShiftDistortionBitDepthY对像素比特的值进行校正之后求出绝对值差分和。
D=∑∑abs((Block_A[xi][yi]>>ShiftDistortionBitDepthY)
-(Block_B[xi][yi]>>ShifiDistortionBitDepthY)) (算式FRUC-27)
此外,对于待定常数Lambda,可以以作为与模式选择时的待定常数Lambda类似的形式的如以下算式所示的包括量化参数的值的形式进行定义。需要说明的是,也可以具有对象块的QP的估计值、对象块的邻接CU的QP、包括对象块的CTU的初始QP、包括对象块的切片的初始QP来代替对象块的QP。Alpha是由编码构造、切片类型决定的常数值。
Lambda=sqrt(alpha*2(QP-12+6*(BitDepth-8-ShiftDistortionBitDepthY))/3.0) (算式FRUC-28)
在此,示出了按亮度像素计算匹配成本C的示例,但在考虑色差像素的情况下,通过如下过程来实现:除了亮度像素的结果,将误差D加上按用于调整色差像素比特长度的移位量ShiftDistortionBitDepthC对色差像素的绝对值差分和进行校正而得到的值,再乘以与色差格式对应的运动矢量的成本。具体而言,在4:2:0格式时,将cR的值设为1.5,在4:2:2格式时,将cR的值设为2,在4:4:4:格式时将cR的值设为3。
D=D_luma+D_chroma+Lambda*Rate*cR (算式FRUC-29)
D_luma是上述的算式中的亮度的误差,D_chroma是上述的算式中的色差的误差,cR=1.5(4:2:0),cR=2(4:2:2),cR=3(4:4:4)。此外,cR的值不限于此,也可以是cR=1(4:2:0),cR=1.5(4:2:2),cR=2(4:4:4)等。
如此,通过匹配成本C的计算来考虑像素比特长度、误差评估比特长度、量化参数,由此使通过匹配运动推导部30373推导出的运动矢量与其他预测部的运动矢量一致,谋求合并预测等的编码效率改善。
第一运动矢量搜索部303731从其中将匹配成本C最小的矢量设为初始矢量,再次设定为(mv0[0],mv0[1])。接着,第一运动矢量搜索部303731进行对象块中的块级的本地搜索(局部的搜索)。在本地搜索中,进一步对以初始矢量为中心的局部区域(例如以初始矢量为中心的±SR像素的区域)进行搜索,将匹配成本C最小的矢量推导为最终的对象块的运动矢量。
如此,通过匹配成本C的计算来考虑像素比特长度、误差评估比特长度、量化参数,由此使通过匹配运动推导部30373推导出的运动矢量与其他预测部的运动矢量一致,谋求合并预测等的编码效率改善。
接着,第二运动矢量搜索部303732推导出对象块中所包括的各子块的运动矢量。如图15(d)所示,获取对象块中的子块的模板。在块级中,在仅在模板中设定了对象块的上侧或左侧区域的情况下,子块的模板也设为相同的形状。将块级运动矢量、该子块的时空方向的邻接块的运动矢量、该子块的ATMVP或STMVP矢量等设为初始矢量候选,将匹配成本C最小的运动矢量确定为各子块的初始矢量(初始矢量搜索)。需要说明的是,在子块的初始矢量搜索中利用的矢量候选不限于上述的矢量。
接着,第二运动矢量搜索部303732在以子块的初始矢量为中心的局部区域(例如以初始矢量为中心的±SR像素的区域)中进行本地搜索。然后,推导出子块的初始矢量附近的矢量候选的匹配成本C,将最小的矢量推导为子块的运动矢量spMvL0。
此外,也可以在模板匹配中也对两张参照图片Ref0、Ref1进行处理。在该情况下,按顺序进行上述说明过的参照图片Ref0的匹配和参照图片Ref1的匹配。设定参照块Block_B和模板区域Temp_L1,所述参照块Block_B是通过参照图片索引refIdxL1指定的参照图片Ref1(称为参照图片B)内的区域,其具有通过以下算式确定的左上坐标(xPos1,yPos1),
(xPos1,yPos1)=(xCur+mv1[0],yCur+mv1[1]) (算式FRUC-30),所述模板区域Temp_L1在参照图片B中与Block_B邻接。最终确定Temp_Cur和Temp_L1的匹配成本C最小的(mv1[0],mv1[1]),作为附加于对象块的运动矢量。基于附加于该对象块的运动矢量推导出按分割对象块而得到的每个子块推导出运动矢量spMvL1。
(基于匹配处理的运动矢量推导处理)
参照图16的流程图,对匹配模式下的运动矢量推导(模式匹配矢量推导)处理的流程进行说明。
图16所示的处理由匹配预测部30373执行。图16的(a)是双向匹配处理的流程图,图16的(b)是模板匹配处理的流程图。
需要说明的是,在图16的(a)所示的各步骤中,S3201~S3204是在块级中执行的块搜索。即,使用模式匹配在整个块(CU或PU)中推导出运动矢量。
此外,S3205~S3208是在子块级中执行的子块搜索。即,使用模式匹配以构成块的子块为单位推导出运动矢量。
在S3201中,匹配预测部30373(第一运动矢量搜索部303731)设定对象块中的块级的初始矢量候选。
在S3202中,匹配预测部30373(第一运动矢量搜索部303731)设定块级的搜索区间。
接着,在S3203中,匹配预测部30373(第一运动矢量搜索部303731)从在S3202中限制的初始矢量候选中搜索匹配成本最小的矢量,推导出初始矢量。
此时,如果能在初始矢量中匹配预测部30373(第一运动矢量搜索部303731)根据与参照图片Ref0内的Block_A和参照图片Ref1内的Block_B对应的指示符,例如根据通过(算式FRUC-3)求出的SAD和与对象块Cur_block的像素比特长度对应的阈值的比较结果,判断出匹配成本足够小,.则可以中止匹配预测部30373的处理。
此外,匹配预测部30373(第一运动矢量搜索部303731)也可以根据与参照图片Ref0内的Block_A和参照图片Ref1内的Block_B对应的指示符,例如根据通过(算式FRUC-3)求出的SAD和与对象块Cur_block的像素比特长度对应的阈值的比较结果,中止运动矢量(mv0[0],mv0[1])的搜索。
作为一个示例,匹配预测部30373可以在下述的条件式为真的情况下中止运动矢量的搜索,将在该时间点上匹配成本C最小的(mv0[0],mv0[1])确定为附加于对象块的矢量。
SAD<((BW*BH)<<TH) (算式FRUC-30-2)
在此,TH是用于中止搜索的阈值,例如是根据如下所示的像素比特长度BitDepth求出的值。
TH=Max(2,14-BitDepth)+(BitDepth-8)+alpha(算式FRUC-30-3)
在该示例中,考虑到在匹配预测部30373中,在运动补偿处理时的中间数据中进行误差的评估。如H.265/HEVC所示,运动补偿处理时的像素值的中间数据的像素比特长度在编码像素比特长度为8比特~12比特、14比特、大于12比特的情况下,为编码像素比特长度+2比特。因此,考虑到该阈值TH在通过编码像素比特长度进行评估时使每个像素的平均SAD相同。需要说明的是,在此,alpha为调整用的参数。
此外,运动补偿误差考虑到与量化参数Qp具有相关性,除像素比特长度BitDepth以外也可以使用量化参数Qp,还可以使用如下所示的阈值TH。
TH=Max(2,14-BitDepth)+(Qp>>3)+(BitDepth-8)+beta(算式FRUC-30-4)
能通过使用这样的阈值在量化参数Qp的值小或大时适当地进行判定。需要说明的是,在此,beta为调整用的参数。
需要说明的是,作为另一方案,也可以采用如下构成:在下述的条件式为真的情况下,匹配预测部30373中止运动矢量的搜索,设为在该时间点上的最小的SAD的运动矢量的对象块的运动矢量。
Cost<((BW*BH)<<TH) (算式FRUC-30-5)
在此,左边的Cost是通过以下的算式推导出的值。
Cost=SAD+(λ*(1<<(BitDepth-8))*dMV (算式FRUC-30-6)
此外,加权系数λ是预先设定的大于零的实数,dMV是表示运动矢量的绝对值误差abs(mv0[0]-MVx)+abs(mv0[1]-MVy)的值。
就是说,在本步骤S3203中,在满足该条件式的条件的情况下,匹配预测部30373可以跳过块级的本地搜索和推导对象块中所包括的各子块的运动矢量的处理。换言之,在满足该条件的情况下,可以将在S3203中确定的运动矢量设定为对象块的各子块的运动矢量spMvLX,并结束基于图16的(a)的流程图的处理。
在S3204中,匹配预测部30373(第一运动矢量搜索部303731)进行对象块中的块级的本地搜索,推导出最终的对象块的运动矢量。
需要说明的是,在本步骤S3204中,也与S3203相同,在满足与参照图片Ref0内的Block_A和参照图片Ref1内的Block_B对应的指示符,例如与通过(算式FRUC-3)求出的SAD和规定的阈值的比较结果对应的条件的情况下,匹配预测部30373中止块级的搜索,将满足(算式FRUC-3)的运动矢量设定为对象块的各子块的运动矢量spMvLX。而且,也可以跳过推导对象块中所包括的各子块的运动矢量的S3205之后的处理。
接着,对对象块中所包括的各子块进行以下的处理(S3205~S3208)。
在S3205中,匹配预测部30373(第二运动矢量搜索部303732)设定对象块中的各子块的初始矢量候选。
在S3206中,匹配预测部30373(第二运动矢量搜索部303732)设定子块级的搜索区间。
在S3207中,匹配预测部30373(第二运动矢量搜索部303732)从在S3206中限制的初始矢量候选中搜索匹配成本最小的矢量,设定为子块级的初始矢量。
需要说明的是,在本步骤S3207中,在满足与参照图片Ref0内的Block_A和参照图片Ref1内的Block_B对应的指示符,例如与通过(算式FRUC-3)求出的SAD和规定的阈值的比较结果对应的条件的情况下,匹配预测部30373可以将在该时间点上匹配成本最小的矢量设定为该子块的运动矢量spMvLX,开始针对下一子块的运动矢量的推导。
接着,在S3208中,匹配预测部30373(第二运动矢量搜索部303732)进行以在S3207中选出的子块的初始矢量为中心的本地搜索,将匹配成本最小的矢量推导为子块的运动矢量。
需要说明的是,在本步骤S3208中,在满足与参照图片Ref0内的Block_A和参照图片Ref1内的Block_B对应的指示符,例如与通过(算式FRUC-3)求出的SAD和规定的阈值的比较结果对应的条件的情况下,匹配预测部30373可以将在该时间点上匹配成本最小的矢量设定为该子块的运动矢量,开始针对下一子块的运动矢量的推导。
然后,在完成对对象块中所包括的所有的子块的处理时,结束双向匹配的模式匹配矢量推导处理。
如上所述,推导出为了生成用于运动图像的编码或解码的预测图像而参照的运动矢量的本实施方式的运动矢量推导装置具备匹配预测部30373,所述匹配预测部30373是通过匹配处理按每个预测单位搜索运动矢量的匹配预测部(运动矢量搜索部)30373,根据是否满足与像素比特长度对应的条件式来中止上述运动矢量的搜索。根据上述的构成,能减轻搜索运动矢量的情况下的处理的负荷。
作为一个示例,匹配预测部30373可以在(算式FRUC-30-2)或(算式FRUC-30-5)所示的条件式为真的情况下中止运动矢量的搜索,将在该时间点上匹配成本C最小的(mv0[0],mv0[1])确定为附加于对象块的各子块的矢量spMvLX。
此外,如(算式FRUC-3)、(算式FRUC-30-2)等所示,在上述条件式中可以包括与两张参照图像之间的差对应的指示符和阈值。由此,能应用在进行双向匹配的情况下中止运动矢量的搜索的构成。
此外,如(算式FRUC-3)、(算式FRUC-30-5)、(算式FRUC-30-6)所示,在上述条件式中可以包括第一项和第二项,所述第一项表示两张参照图像之间的绝对值差分和,所述第二项具有与像素比特长度对应的值。由此,能使用适当地校正后的该绝对值差分和的值中止运动矢量的搜索。
接着,使用图16的(b)对模板匹配的模式匹配矢量推导处理进行说明。在图16的(b)所示的各步骤中,S3211~S3204是在块级中执行的块搜索。此外,S3205~S3208是在子块级中执行的子块搜索。需要说明的是,在与图16的(a)相同的处理中标记相同的附图标记。
首先,匹配预测部30373(第一运动矢量搜索部303731)获取对象块的模板(S3211)。
接着,在S3201中,匹配预测部30373(第一运动矢量搜索部303731)设定对象块中的块级的初始矢量候选。
在S3202中,匹配预测部30373(第一运动矢量搜索部303731)设定块级的搜索区间。
接着,在S3203中,匹配预测部30373(第一运动矢量搜索部303731)从如上所述地设定的初始矢量候选中将匹配成本C最小的矢量设定为块级的初始矢量。
此外,匹配预测部30373(第一运动矢量搜索部303731)也可以根据与模板和参照图像之差对应的指示符,例如根据通过(算式FRUC-17)求出的SAD和与对象块Cur_block的像素比特长度对应的阈值的比较结果,中止运动矢量的搜索。
作为一个示例,匹配预测部30373可以在(算式FRUC-30-2)或(算式FRUC-30-5)所示的条件式为真的情况下中止运动矢量的搜索,将在该时间点上匹配成本C最小的(mv0[0],mv0[1])确定为附加于对象块的矢量。
此外,如(算式FRUC-17)、(算式FRUC-30-2)所示,在上述条件式中可以包括与模板和参照图像之差对应的指示符和阈值。由此,能应用在进行模板匹配的情况下中止运动矢量的搜索的构成。
此外,如(算式FRUC-17)、(算式FRUC30-5)、(算式FRUC30-6)所示,在上述条件式中可以包括第一项和第二项,所述第一项表示模板和参照图像的绝对值差分和,所述第二项具有与像素比特长度对应的值。由此,能使用适当地校正后的该绝对值差分和的值中止运动矢量的搜索。
就是说,在本步骤S3203中,在满足该条件式的条件的情况下,匹配预测部30373可以跳过块级的本地搜索和推导对象块中所包括的各子块的运动矢量的处理。换言之,在满足该条件的情况下,可以将在S3203中确定的运动矢量设定为对象块的各子块的运动矢量spMvLX,并结束基于图16的(b)的流程图的处理。
在S3204中,匹配预测部30373(第一运动矢量搜索部303731)对以在S3203中推导出的初始矢量为中心的局部区域进行搜索,将匹配成本C最小的矢量设定为最终的对象块的运动矢量。
需要说明的是,在本步骤S3204中,也与S3203相同,在满足与模板和参照图像之差对应的指示符,例如与通过(算式FRUC-17)求出的SAD和规定的阈值的比较结果对应的条件的情况下,匹配预测部30373中止块级的搜索,将满足(算式FRUC-17)的运动矢量设定为对象块的各子块的运动矢量spMvLX。而且,也可以跳过推导对象块中所包括的各子块的运动矢量的S3205之后的处理。
接着,对对象块中所包括的各子块进行以下的处理(S3205~S3208)。
在S3205中,匹配预测部30373(第二运动矢量搜索部303732)设定对象块中的各子块的初始矢量候选。
在S3206中,匹配预测部30373(第二运动矢量搜索部303732)对初始矢量候选进行限幅,以使子块的初始矢量搜索不超过块级的搜索区间。此外,对子块级的搜索区间进行限制,以使各子块的搜索不使用在块级中使用过的搜索区间以外的图像数据。
在S3212中,匹配预测部30373(第二运动矢量搜索部303732)获取对象块中的子块的模板。
在S3207中,匹配预测部30373(第二运动矢量搜索部303732)从在S3206中限制的初始矢量中将匹配成本最小的矢量设定为子块级的初始矢量。
需要说明的是,在本步骤S3207中,在满足与模板和参照图像之差对应的指示符,例如与通过(算式FRUC-17)求出的SAD和规定的阈值的比较结果对应的条件的情况下,匹配预测部30373可以将在该时间点上匹配成本最小的矢量设定为该子块的运动矢量spMvLX,开始针对下一子块的运动矢量的推导。
接着,在S3208中,匹配预测部30373(第二运动矢量搜索部303732)进行以在S3207中设定的子块的初始矢量为中心的本地搜索,将匹配成本C最小的矢量推导为子块的运动矢量。
需要说明的是,在本步骤S3208中,在满足与模板和参照图像之差对应的指示符,例如与通过(算式FRUC-17)求出的SAD和规定的阈值的比较结果对应的条件的情况下,匹配预测部30373可以将在该时间点上匹配成本最小的矢量设定为该子块的运动矢量,开始针对下一子块的运动矢量的推导。
然后,在完成对对象块中所包括的所有的子块的处理时,结束模板匹配的模式匹配矢量推导处理。
以上是参照图片为Ref0的情况,但在将参照图片设为Ref1的情况下也能在与上述相同的处理中实施模板匹配。进而,在参照图片为两张的情况下,使用推导出的两个运动矢量,在运动补偿部3091中进行双预测处理。
输出至运动补偿部3091的fruc_merge_idx通过以下算式进行推导。
fruc_merge_idx=BM_flag+(TM_flag<<1) (算式FRUC-31)
需要说明的是,在运动图像解码装置31中被通知fruc_merge_idx的情况下,可以在模式匹配矢量推导处理前推导出BM_flag和TM_flag,仅实施标志的值为真的匹配处理。
BM_flag=fruc_merge_idx&1 (算式FRUC-32)
TM_flag=(fruc_merge_idx&2)>>1 (算式FRUC-33)
(OBMC处理)
本实施方式的运动补偿部3091可以使用OBMC处理生成预测图像。在此,对OBMC(Overlapped block motion compensation:重叠块运动补偿)处理进行说明。OBMC处理是指使用插补图像PredC和第二插补图像PredRN对构成对象块的子块按每个子块生成插补图像(运动补偿图像)的处理,所述插补图像PredC使用对象块(对象子块)的帧间预测参数(以下为运动参数)而生成,所述第二插补图像PredRN使用对象子块的邻接块(邻接点)的运动参数而生成。更具体而言,在与块边界距离近的对象块内的像素(边界周边像素)中,进行使用基于邻接块的运动参数的插补图像PredRN校正对象块的插补图像PredC的处理(插补图像校正)。
图17是表示利用本实施方式的邻接块的运动参数生成预测图像的区域的一个示例的图。如图17的(a)所示,处于距离块边界规定的距离内的斜线的子块的像素为OBMC处理的应用对象。其中,在与对象块的右端或下端边界相接的情况下不是OBMC处理的应用对象。即,在构成对象块的子块内、子块的右侧处于对象块外或子块的下侧处于对象块外的情况下,不是应用对象。在进行子块预测的情况下,对象块内的子块的运动参数彼此不同,因此,如图17的(b)所示,子块的上下左右的子块边界为OBMC处理的应用对象。
需要说明的是,与对象块和邻接块的大小无关,采用统一的处理,因此,OBMC处理以分割块而得到的子块为单位(OBMC块单位)来实施。子块的大小可以设为4×4、8×8等值。
在OBMC中,生成基于对象块的帧间预测参数推导出的对象子块的插补图像(第一OBMC插补图像)和基于邻接块的帧间预测参数推导出的插补图像(第二OBMC插补图像)这两种的插补图像,并通过这些的加权相加处理生成最终用于预测的插补图像。
因此,在判定为“应用OBMC处理(打开OBMC)”的块或子块中,在对象块(对象子块)的上侧和下侧的边界(水平边界)中,从边界在垂直方向对NumOBMC个像素值,使用两种运动矢量生成两种插补图像。接着,在对象块(对象子块)的左侧和右侧的边界(垂直边界)中,从边界在水平方向对NumOBMC个像素值,使用两种运动矢量生成两个插补图像。
(OBMC处理的流程)
图18是表示本实施方式的OBMC预测部30374所实施的参数推导处理的流程图。
OBMC预测部30374针对对象子块判定与上侧、左侧、下侧、右侧的各方向邻接的邻接块(参照块)的有无和利用可能性。在图18中,采用对上、左、下、右的各方向实施了所有的子块的OBMC处理(插补图像校正)后进入下一方向的处理的方法,但也能采用在对某个子块实施了所有的方向的OBMC处理(插补图像校正)后,进入下一子块的处理的方法。在图18中,在针对对象子块的邻接块的方向中,将i=1(up)设为上侧,将i=2(left)设为左侧,将i=3(bottom)发为下侧,将i=4(fight)设为右侧。
首先,OBMC预测部30374检查OBMC处理的必要性和邻接块的有无(S3401)。在预测单位以块为单位且对象子块不与i所示的方向的块边界相接的情况或在子块与块的右或下边界相接的情况下,没有OBMC处理(插补图像校正)所需的邻接块(在S3401中为N),因此进入S3404,将标志obmc_flag[i]设为0。否则(在预测单位以块为单位且对象子块与块边界相接的情况或处理单位为子块的情况),有OBMC处理所需的邻接块(在S3401中为Y),因此进入S3402。
例如,图17的(a)的子块SCU1[3][0]在左侧、下侧、右侧不与块边界相接,因此,obmc_flag[2(left)]=0,obmc_flag[3(bottom)]=0,obmc_flag[4(right)]=0。此外,子块SCU1[0][2]在上侧、下侧、右侧不与块边界相接,因此,obmc_flag[1(up)]=0,obmc_flag[3(bottom)]=0,obmc_flag[4]=0。子块SCU2[5][3]的下侧与块的下边界相接,上侧、左侧、右侧不与块边界相接,因此,obmc_flag[1(up)]=0,obmc_flag[2(left)]=0,obmc_flag[3(bottom)]=0,obmc_flag[4(right)]=0。白色的子块是完全不与块边界相接,或仅与下侧或右侧块边界相接的子块,因此,obmc_flag[1(up)]=obmc_flag[2(left)]=obmc_flag[3(bottom)]=obmc_flag[4]=0。
接着,OBMC预测部30374作为邻接块的利用可能性,检查i所示的方向的邻接块是否是帧内预测块(S3402)。在邻接块为帧内预测块的情况下(在S3402中为Y),进入S3404,将对应的方向i的obmc_flag[i]设定为0。否则(邻接块为帧间预测块的情况)(在S3402中为N),进入S3403。
例如,在图17的(c)的情况下,对于对象块CU4的对象子块SCU4[3][0],上侧的邻接块为帧内预测,因此,对象子块SCU4[3][0]的obmc_flag[1(up)]设定为0。
接着,OBMC预测部30374作为邻接块的利用可能性,检查i所示的方向的邻接块与对象子块的运动参数是否相等(S3402)。在运动参数相等的情况下(在S3403中为Y),进入S3404,设定为obmc_flag[i]=0。否则(运动参数不同的情况)(在S3403中为N),进入S3405。
通过以下算式判定子块和该邻接块的运动参数是否相等。
((mvLX[0]!=mvLXRN[0])||(mvLX[1]!=mvLXRN[1])||(refIdxLX!=refIdxLXRN))?(算式OBMC-1)
在此,是对象子块的运动矢量(mvLX[0],mvLX[1])、参照图片索引refIdxLX、i所示的方向的邻接块的运动矢量(mvLXRN[0],mvLXRN[1])、参照图片索引refIdxLXRN。
例如,在图17的(c)中,在设为对象子块SCU4[0][0]的运动矢量(mvLX[0],mvLX[1])、参照图片索引refIdxLX、左侧邻接块的运动矢量(mvLXR2[0],mvLXR2[1])、参照图片索引refIdxLXR2时,在运动矢量与参照图片索引相同的情况,例如,在((mvLX[0]==mvLXR2[0])&&(mvLX[1]==mvLXR2[1])&&(refIdxLX==refIdxLXR2))为真的情况下,对象子块SCU4[0][0]为obmc_flag[2]=0。
需要说明的是,在以上算式中使用了运动矢量和参照图片索引,但也可以如以下算式所示使用运动矢量和POC进行判定。
((mvLX[0]!=mvLXRN[0])||(mvLX[1]!=mvLXRN[1])||(refPOC!=refPOCRN))?(算式OBMC-2)
在此,refPOC为对象子块的POC,refPOCRN为邻接块的POC。
OBMC预测部30374判定OBMC关闭条件(S3405)。在OBMC关闭条件成立的情况下(在S3405中为Y),进入S3404,设定为obmc_flag[i]=0。否则(OBMC关闭条件不成立的情况)(在S3405中为N),进入S3406。OBMC关闭条件使用如上所述说明过的OBMC关闭条件1~6中的任一个。
OBMC预测部30374设定为obmc_flag[i]=1(S3406)。
接着,OBMC预测部30374在对子块所有的方向(i=1~4)实施上述S3401~S3406的处理后结束。
OBMC预测部30374将如上所述推导出的预测参数(obmc_flag和各子块的邻接块的运动参数)输出至帧间预测图像生成部309,帧间预测图像生成部309一边参照obmc_flag判定是否进行OBMC处理,一边对对象块生成OBMC插补图像(详细内容在(运动补偿)中进行说明)。
需要说明的是,在运动图像解码装置31中,如果存在由运动图像编码装置11通知的obmc_flag,则可以设定为obmc_flag[i],也可以仅在obmc_flag[i]=1的情况下实施上述处理。
(运动矢量推导处理的示例)
如果在合并模式下推导出的两个运动矢量相对于对象块方向相反,则BTM预测部3038进行双向模板匹配(BTM)处理。
参照图19对双向模板匹配(BTM)处理进行说明。图19的(a)是表示BTM预测中的参照图片和模板的关系的图,图19的(b)是对BTM预测中的模板进行说明的图。
如图19的(a)和(b)所示,BTM预测部3038首先根据通过合并预测参数推导部3036推导出的多个运动矢量(例如mvL0和mvL1)生成对象块Cur_block的预测块,并将它设为模板。具体而言,根据由mvL0生成的运动补偿图像predL0和由mvL1生成的运动补偿图像predL1生成预测块Cur_Temp。
Cur_Temp[x][y]=Clip3(0,(1<<bitDepth)-1,(predL0[x][y]+predL1[x][y]+1)>>1) (算式BTM-1)
需要说明的是,在图片参数集PPS中所包括的标志表示加权预测的应用的情况下,BTM预测部3038可以使用与第一参照图像建立了关联的加权系数和偏移中的至少任一种和与第二参照图像建立了关联的加权系数和偏移中的至少任一种生成用于双向匹配处理的模板图像,例如可以通过以下的算式推导出预测块Cur_Temp。
Cur_Temp[x][y]=C1ip3(0,(1<<bitDepth)-1,(predL0[x][y]*w0+predL1[x][y]*w1+(o0+o1+1)<<log2Wd))>>(log2Wd+1)) (算式BTM-1-2)
在此,log2WD是表示加权预测的规定的移位量的变量。
此外,匹配预测部(运动矢量搜索部)30373也可以参照基于(算式BTM-1-2)生成的模板图像,通过双向匹配处理按每个预测单位搜索运动矢量。根据上述的构成,能在应用加权预测的情况下生成更高精度的预测块。
接着,BTM预测部3038在以mvL0、mvL1(初始矢量)为各自中心的搜索区间±SR像素的范围内设定运动矢量候选,推导出各运动矢量候选所生成的运动补偿图像PredL0’、PredL1’和模板的匹配成本C。然后,将匹配成本C最小的矢量mvL0’、mvL1’设定为对象块的更新后的运动矢量。
图6的(b)是表示本实施方式的AMVP预测参数推导部3032的构成的概略图。AMVP预测参数推导部3032具备矢量候选推导部3033、矢量候选选择部3034以及矢量候选储存部3036。矢量候选推导部3033基于参照图片索引refIdx,根据预测参数存储器307所存储的已处理的块的运动矢量mvLX推导出预测矢量候选,并储存于矢量候选储存部3036的预测矢量候选列表mvpListLX[]。
矢量候选选择部3034将预测矢量候选列表mvpListLX[]的预测矢量候选中的预测矢量索引mvp_1X_idx所示的运动矢量mvpListLX[mvp_1X_idx]选为预测矢量mvpLX。矢量候选选择部3034将所选出的预测矢量mvpLX输出至加法部3035。
需要说明的是,预测矢量候选是完成了解码处理的块,通过缩放距离解码对象块预先设定的范围的块(例如邻接块)的运动矢量来进行推导。需要说明的是,邻接块除了包括与解码对象块空间上邻接的块、例如左块、上块以外,还包括与解码对象块时间上邻接的区域,例如,在显示时刻不同的图片中根据与解码对象块包括相同位置的块的预测参数获得的区域。
加法部3035将从AMVP预测参数推导部3032输入的预测矢量mvpLX和从帧间预测参数解码控制部3031输入的差分矢量mvdLX相加,计算运动矢量mvLX。加法部3035将计算出的运动矢量mvLX输出至预测图像生成部308和预测参数存储器307。
需要说明的是,也可以不直接将在合并预测参数推导部3036中推导出的运动矢量输出至帧间预测图像生成部309,而是经由BTM预测部3038进行输出。
(帧间预测图像生成部309)
图14(b)是表示本实施方式的预测图像生成部308中所包括的帧间预测图像生成部309的构成的概略图。帧间预测图像生成部309构成为包括运动补偿部(预测图像生成装置)3091和加权预测部3094。
(运动补偿)
运动补偿部3091基于从帧间预测参数解码部303输入的帧间预测参数(预测列表利用标志predFlagLX、参照图片索引refIdxLX、运动矢量mvLX、打开关闭标志等),从参照图片存储器306中读出处于在由参照图片索引refIdxLX指定的参照图片RefX中以解码对象块的位置为起点移位了运动矢量mvLX的位置的块,由此生成插补图像(运动补偿图像)。在此,在运动矢量mvLX的精度并非整数精度的情况下,实施称为运动补偿滤波的用于生成小数位置的像素的滤波,生成运动补偿图像。
在输入至运动补偿部3091的运动矢量mvLX或运动矢量mvLXN为1/M像素精度(M为2以上的自然数)的情况下,通过内插滤波器由整数像素位置的参照图片的像素值生成插补图像。就是说,通过与相位nFrac对应的NTAP抽头的内插滤波系数mcFilter[nFrac][k](k=0..NTAP-1)和参照图片的像素的积和运算生成上述的插补图像Pred[][]。
运动补偿部3091首先通过以下的算式推导出与预测块内坐标(x,y)对应的整数位置(xInt,yInt)和相位(xFrac,yFrac)。
xInt=xb+(mvLX[0]>>(log2(M)))+x(算式INTER-1)
xFrac=mvLX[0]&(M-1)
yInt=yb+(mvLX[1]>>(log2(M)))+y
yFrac=mvLX[1]&(M-1)
在此,(xb,yb)表示块的左上坐标,x=0..W-1,y=0..H-1,M表示运动矢量mvLX的精度(1/M像素精度)。
运动补偿部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(算式INTER-2)
需要说明的是,对参照图片上的像素refImg[xInt+k-NTAP/2+1][yInt]进行参照时进行后文所述的填充。
接着,运动补偿部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 (算式INTER-3)
需要说明的是,在双预测的情况下,按每个列表L0、L1推导上述的Pred[][](称为插补图像PredL0[][]和PredL1[][]),根据插补图像PredL0[][]和插补图像PredL1[][]生成插补图像Pred[][]。
(OBMC插补图像生成)
在OBMC中,生成基于对象块的帧间预测参数推导出的对象子块的插补图像和基于邻接块的帧间预测参数推导出的插补图像这两种的插补图像,并通过这些的加权相加处理生成最终用于预测的插补图像。在此,将基于对象块的帧间预测参数推导出的对象子块的插补图像称为插补图像PredC(第一OBMC插补图像),将基于邻接块的帧间预测参数推导出的插补图像称为插补图像PredRN(第二OBMC插补图像)。需要说明的是,N表示对象子块的上侧(A)、左侧(L)、下侧(B)、右侧(R)中的任一种。在不进行OBMC处理的(OBMC关闭)情况下,插补图像PredC直接作为对象子块的运动补偿图像PredLX。在进行OBMC的(OBMC打开)情况下,根据插补图像PredC和插补图像PredRN生成对象子块的运动补偿图像PredLX。
运动补偿部3091基于从帧间预测参数解码部303输入的对象子块的帧间预测参数(预测列表利用标志predFlagLX、参照图片索引refIdxLX、运动矢量mvLX、OBMC标志obmc_flag),生成插补图像。
图18的(b)是对运动补偿部3091的OBMC预测中的插补图像生成的动作进行说明的流程图。
运动补偿部3091判定块边界是否为CTU边界(S3411)。在块边界为CTU边界的情况下(在S3411中为Y),进入S3412。否则(在S3411中为N),进入S3413。
运动补偿部3091将子块整合变更大小,通过上述的C1)~C3)和R1)~R3)中的任一个的组合设定运动矢量(S3412)。
运动补偿部3091基于默认的子块大小和运动矢量或在S3412中重新设定的子块大小和运动矢量生成子块的第一OBMC插补图像PredC[x][y](x=0..BW-1,y=0..BH-1)(S3413)。
接着,判定是否为obmc_flag[i]=1(S3414)。在obmc_flag[i]=0的情况下(在S3414中为N),进入下一方向(i=i+1)。在obmc_flag[i]=1的情况下(在S3414中为Y),进入S3415。
运动补偿部3091生成子块的第二OBMC插补图像PredRN[x][y](S3415)。就是说,仅对作为obmc_flag[i]=1的i所示的方向的子块,基于从帧间预测参数解码部303输入的邻接块的预测列表利用标志predFlagLX[xPbN][yPbN]、参照图片索引refIdxLX[xPbN][yPbN]以及在S3412中重新设定的运动矢量mvLX[xPbN][yPbN]和子块大小,生成子块的第二OBMC插补图像PredRN[x][y](x=0..BW-1,y=0..BH-1)。运动补偿部3091实施子块的第一OBMC插补图像PredC[x][y]和子块的第二OBMC插补图像PredRN[x][y]的加权平均处理(S3416)。
在进行OBMC处理的构成中,运动补偿部3091通过进行子块的第一OBMC插补图像PredC[x][y]和子块的第二OBMC插补图像PredRN[x][y]的加权平均处理来更新插补图像PredC[x][y]。若详细进行说明,则运动补偿部3091在从帧间预测参数解码部303输入的OBMC标志obmc_flag[i]=1(OBMC处理有效)的情况下,对在与i所示的方向垂直的方向的NumOBMC个的像素进行以下的加权平均处理。
PredC[x][y]=((w1*PredC[x][y]+w2*PredRN[x][y])+o)>>shift(算式INTER-4)
在此,对加权平均处理中的权重w1、w2进行说明。加权平均处理中的权重w1、w2根据距离子块边界对象像素的距离(像素数)来确定。存在w1+w2=(1<<shift),o=1<<(shift-1)的关系。移位值shift可以根据距离子块边界对象像素的距离来设定,也可以是固定的。在作为子块大小(OBMC处理大小)的BW和BH为4,且根据距离设定移位值的情况下,例如,可以设为:
{w1,w2,o,shift}={3,1,2,2}
{w1,w2,o,shift}={7,1,4,3}
{w1,w2,o,shift}={15,1,8,4},
{w1,w2,o,shift}={31,1,16,5}。
在OBMC处理中,使用多个邻接块的插补图像生成预测图像。在此,对根据多个邻接块的运动参数更新子块的第一OBMC插补图像PredC[x][y]的方法进行说明。
首先,在obmc_flag[1]=1的情况下,运动补偿部3091对对象子块的子块的第一OBMC插补图像PredC[x][y]应用使用上侧邻接块的运动参数创建的子块的第二OBMC插补图像PredRA[x][y]来更新PredC[x][y]。
PredC[x][y]=((w1*PredC[x][y]+w2*PredRA[x][y])+o)>>shift(算式INTER-5)
接着,对于作为obmc_flag[i]=1的方向i,运动补偿部3091用使用对象子块的左侧(i=2)、下侧(i=3)以及右侧(i=4)的邻接块的运动参数创建的子块的第二OBMC插补图像PredRL[x][y]、PredRL[x][y]、PredRL[x][y]按顺序对子块的第一OBMC插补图像PredC[x][y]进行更新。即,通过以下的算式进行更新。
PredC[x][y]=((w1*PredC[x][y]+w2*PredRL[x][y])+o)>>shift(算式INTER-6)
PredC[x][y]=((w1*PredC[x][y]+w2*PredRB[x][y])+o)>>shift
PredC[x][y]=((w1*PredC[x][y]+w2*PredRR[x][y])+o)>>shift
运动补偿部3091在obmc_flag[0]=0的情况或对i=1~4实施上述的处理后,将子块的第一OBMC插补图像PredC[x][y]设定为预测图像PredLX[x][y](S3417)。
PredLX[x][y]=PredC[x][y] (算式INTER-7)
运动补偿部3091能考虑对象子块的邻接块的运动参数地生成预测图像,因此能在OBMC处理中生成高预测精度的预测图像。
此外,与通过OBMC处理更新的子块边界垂直的方向的像素数NumOBMC可以是任意的(S=2~BH)。包括作为OBMC处理的对象的子块的块的分割样式也可以是2N×N、N×2N、N×N等任意的分割样式。
如此,在CTU边界将子块大小设定得较大来创建预测图像,由此能将来自参照图片存储器306的图像数据的传输量限制在规定值以下。因此,能减小存储器带宽。
(加权预测)
加权预测部3094通过将输入的运动补偿图像PredLX与加权系数相乘,生成对象块的预测图像。在预测列表利用标志的一方(predFlagL0或predFlagL1)为1的情况(单向预测的情况)下,在不使用加权预测的情况下进行使所输入的运动补偿图像PredLX(LX为L0或L1)与像素位数bitDepth一致的以下的算式的处理。
Pred[x][y]=Clip3(0,(1<<bitDepth)-1,(PredLX[x][y]+offset1)>>shift1) (算式INTER-8)
在此,shift1=Max(2,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) (算式1NTER-9)
在此,shift2=shift1+1,offset2=1<<(shift2-1)。
而且,在单向预测的情况下,在进行加权预测的情况下,加权预测部10112从编码数据推导出加权预测系数w0和偏移值(offset)o0,并进行以下的算式的处理。
Pred[x][y]=Clip3(0,(1<<bitDepth)-1,((PredLX[x][y]*w0+2^(log2WD-1))>>log2WD)+o0) (算式INTER-10)
在此,log2WD是表示规定的移位量的变量。
而且,在双预测BiPred的情况下,在进行加权预测的情况下,加权预测部3094从编码数据推导出加权预测系数w0、w1、o0、o1,进行以下的算式的处理。
Pred[x][y]=Clip3(0,(1<<bitDepth)-1,(PredL0[x][y]*w0+PredL1[x][y]*w1+((o0+o1+1)<<log2WD))>>(log2WD+1)) (算式INTER-11)
(语法的记述例)
图25是表示图24所示的语法的另一方案的图。图25所示的语法中包括refine_my_use_flag来代替decoder_side_distortion_bit_depth。在此,refine_my_use_flag是表示是否允许在其他预测单位中推导运动矢量的处理中参照通过匹配预测部30373或BTM预测部3038求出的运动矢量的标志。在该标志表示不允许参照的情况下,帧间预测参数解码部303参照通过匹配预测部30373或BTM预测部3038推导出的初始矢量,而不参照该运动矢量。
由此,帧间预测参数解码部303能避免由该运动矢量的推导所需的处理导致的延迟。
(运动图像编码装置的构成)
接着,对运动图像编码装置11的构成进行说明。以下,作为一个示例,使用图20对运动图像编码装置11的构成进行说明。运动图像编码装置11构成为包括:预测图像生成部101、减法部102、变换/量化部103、熵编码部104、逆量化/逆变换部105、加法部106、环路滤波器107、预测参数存储器(预测参数存储部、帧存储器)108、参照图片存储器(参照图像存储部、帧存储器)109、编码参数确定部110以及预测参数编码部111。预测参数编码部111构成为包括帧间预测参数编码部112和帧内预测参数编码部113。需要说明的是,运动图像编码装置11也可以是不包括环路滤波器107的构成。
预测图像生成部101针对图像T的各图片,按每个将分割此图片而成的区域即编码单元CU生成预测单元块的预测图像P。在此,预测图像生成部101基于从预测参数编码部111输入的预测参数,从参照图片存储器109中读出已解码的块。从预测参数编码部111输入的预测参数例如在帧间预测的情况下,是指运动矢量。预测图像生成部101读出处于以对象块为起点,运动矢量所示的参照图片上的位置的块。此外,在帧内预测的情况下,预测参数是指例如帧内预测模式。从参照图片存储器109中读出在帧内预测模式下使用的邻接块的像素值,生成块的预测图像P。预测图像生成部101针对读出的参照图片块,使用多种预测方式中的一种预测方式来生成块的预测图像。预测图像生成部101将生成的块的预测图像输出至减法部102。
需要说明的是,预测图像生成部101是与已说明的预测图像生成部308相同的动作。
预测图像生成部101使用从预测参数编码部输入的参数,基于从参照图片存储器中读出的参照块的像素值生成块的预测图像P。由预测图像生成部101生成的预测图像被输出至减法部102、加法部106。
预测图像生成部101中所包括的(未图示)帧内预测图像生成部是与已说明过的帧内预测图像生成部310相同的动作。
减法部102从图像T所对应的块的像素值中减去从预测图像生成部101输入的块位置的预测图像P的信号值,生成残差信号。减法部102将生成的残差信号输出至变换/量化部103。
变换/量化部103对从减法部102输入的预测残差信号进行频率变换,计算出变换系数。变换/量化部103对计算出的变换系数进行量化,求出量化变换系数。变换/量化部103将求出的量化变换系数输出至熵编码部104和逆量化/逆变换部105。
熵编码部104中,从变换/量化部103输入量化变换系数,从预测参数编码部111输入预测参数。在所输入的预测参数中,例如存在参照图片索引ref_idx_1X、预测矢量索引mvp_1X_idx、差分矢量mvdLX、预测模式pred_mode_flag以及合并索引merge_idx等编码。
熵编码部104对被输入的分割信息、预测参数、量化变换系数等进行熵编码来生成编码流Te,并将生成的编码流Te输出至外部。
逆量化/逆变换部105与运动图像解码装置31中的逆量化/逆变换部311(图4)相同,对从变换/量化部103输入的量化变换系数进行逆量化,求出变换系数。逆量化/逆变换部105对求出的变换系数进行逆变换,计算出残差信号。逆量化/逆变换部105将计算出的残差信号输出至加法部106。
加法部106将从预测图像生成部101输入的块的预测图像P的信号值和从逆量化/逆变换部105输入的残差信号的信号值与每个像素相加,生成解码图像。加法部106将生成的解码图像存储于参照图片存储器109。
环路滤波器107对加法部106所生成的解码图像施加去块滤波、取样自适应偏移(SAO)、自适应环路滤波(ALF)。需要说明的是,环路滤波器107不一定包括上述三种滤波器,例如也可以是仅包括去块滤波器的构成。
预测参数存储器108将编码参数确定部110所生成的预测参数按每个编码对象的图片和CU存储于预定的位置。
参照图片存储器109将环路滤波器107所生成的解码图像按编码对象的每个图片和CU存储于预定的位置。
编码参数确定部110选择编码参数的多个集合中的一个集合。编码参数是指上述的QT或者BT分割参数、预测参数、与它们关联生成的作为编码对象的参数。预测图像生成部101使用这些编码参数的每一个集合来生成块的预测图像。
编码参数确定部110对多个集合的每一个集合计算出表示信息量的大小和编码误差的RD成本值。RD成本值例如是编码量与平方误差乘以系数λ而得到的值之和。编码量是对量化残差和编码参数进行熵编码而得到的编码流Te的信息量。平方误差是关于在减法部102中计算出的残差信号的残差值的平方值的像素间的总和。系数λ是大于预先设定的零的实数。编码参数确定部110选择计算出的RD成本值最小的编码参数的集合。由此,熵编码部104将所选出的编码参数的集合作为编码流Te输出至外部,而不输出未被选择的编码参数的集合。编码参数确定部110将所确定的编码参数存储于预测参数存储器108。
预测参数编码部111根据从编码参数确定部110输入的参数,推导出用于编码的形式,并输出至熵编码部104。用于编码的形式的推导是指例如从运动矢量和预测矢量推导出差分矢量。此外,预测参数编码部111从由编码参数确定部110输入的参数中推导出生成预测图像所需的参数,并输出至预测图像生成部101。生成预测图像所需的参数是指例如以子块为单位的运动矢量。
帧间预测参数编码部112基于从编码参数确定部110输入的预测参数来推导出差分矢量那样的帧间预测参数。在帧间预测参数编码部112中,包括一部分与帧间预测参数解码部303推导出帧间预测参数的构成相同的构成,作为推导出生成输出至预测图像生成部101的预测图像所需的参数的构成。关于帧间预测参数编码部112的构成将在下文加以叙述。
此外,在帧内预测参数编码部113中,包括一部分与帧内预测参数解码部304推导出帧内预测参数的构成相同的构成,作为推导出生成输出至预测图像生成部101的预测图像所需的预测参数的构成。
帧内预测参数编码部113根据从编码参数确定部110输入的帧内预测模式IntraPredMode,推导出用于编码的形式(例如MPM_idx、rem_intra_luma_pred_mode等)。
(帧间预测参数编码部的构成)
接着,对帧间预测参数编码部112的构成进行说明。帧间预测参数编码部112是对应于图5的帧间预测参数解码部303的单元,在图21中示出其构成。
帧间预测参数编码部112构成为包括:帧间预测参数编码控制部1121、AMVP预测参数推导部1122、减法部1123、子块预测参数推导部1125、BTM预测部1126以及未图示的分割模式推导部、合并标志推导部、帧间预测标识符推导部、参照图片索引推导部、矢量差分推导部等,分割模式推导部、合并标志推导部、帧间预测标识符推导部、参照图片索引推导部、矢量差分推导部分别推导出PU分割模式part_mode、合并标志merge_flag、帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、差分矢量mvdLX。也可以将合并索引推导部11211、矢量候选索引推导部11212、AMVP预测参数推导部1122、子块预测参数推导部1125、BTM预测部1126统称为运动矢量推导部(运动矢量推导装置)。帧间预测参数编码部112将运动矢量(mvLX,subMvLX)、参照图片索引refIdxLX、PU分割模式part_mode、帧间预测标识符inter_pred_idc或表示这些的信息输出至预测图像生成部101。此外,帧间预测参数编码部112将PU分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_1X_idx、差分矢量mvdLX、子块预测模式标志subPbMotionFlag输出至熵编码部104。
帧间预测参数编码控制部1121包括合并索引推导部11211和矢量候选索引推导部11212。合并索引推导部11211将从编码参数确定部110输入的运动矢量和参照图片索引与从预测参数存储器108读出的合并候选的块所具有的运动矢量和参照图片索引进行比较,推导出合并索引merge_idx,输出至熵编码部104。合并候选是处于距离作为编码对象的编码对象CU预定的范围的参照块(例如,与编码对象块的左下端、左上端、右上端相接的参照块),是完成了编码处理的块。矢量候选索引推导部11212推导出预测矢量索引mvp_lX_idx。
在子块预测参数推导部1125中,在编码参数确定部110确定了子块预测模式的使用的情况下,根据subPbMotionFlag的值推导出空间子块预测、时间子块预测、仿射预测、匹配运动推导、OBMC预测中的任一种的子块预测的运动矢量和参照图片索引。运动矢量和参照图片索引如运动图像装置31的说明中所描述的那样,从预测参数存储器108中读出并推导出邻接块、参照图片块等运动矢量、参照图片索引。子块预测参数推导部1125和其中包括的时空子块预测部11251、仿射预测部11252、匹配预测部11253、OBMC预测部11254具有与帧间预测参数解码部303的子块预测参数推导部3037和其中包括的时空子块预测部30371、仿射预测部30372、匹配预测部30373、OBMC预测部30374相同的构成。
AMVP预测参数推导部1122包括仿射预测部11221,具有与上述的AMVP预测参数推导部3032(参照图5)同样的构成。
即,在预测模式predMode表示帧间预测模式的情况下,从编码参数确定部110向AMVP预测参数推导部1122输入运动矢量mvLX。AMVP预测参数推导部1122基于所输入的运动矢量mvLX推导预测矢量mvpLX。AMVP预测参数推导部1122将推导出的预测矢量mvpLX输出至减法部1123。需要说明的是,参照图片索引refIdxLX和预测矢量索引mvp_1X_idx被输出至熵编码部104。此外,仿射预测部11221具有与上述的AMVP预测参数推导部3032的仿射预测部30321(参照图5)同样的构成。
减法部1123从自编码参数确定部110输入的运动矢量mvLX中减去从AMVP预测参数推导部1122输入的预测矢量mvpLX,生成差分矢量mvdLX。差分矢量mvdLX被输出至熵编码部104。
(基于软件的实现例)
需要说明的是,可以通过计算机实现上述的实施方式中的运动图像编码装置11、运动图像解码装置31的一部分,例如,熵解码部301、预测参数解码部302、环路滤波器305、预测图像生成部308、逆量化/逆变换部311、加法部312、预测图像生成部101、减法部102、变换/量化部103、熵编码部104、逆量化/逆变换部105、环路滤波器107、编码参数确定部110以及预测参数编码部111。在该情况下,可以通过将用于实现该控制功能的程序记录于计算机可读记录介质,使计算机系统读入记录于该记录介质的程序并执行来实现。需要说明的是,在此提到的“计算机系统”是指内置于运动图像编码装置11、运动图像解码装置31中的任一个的计算机系统,采用包括OS、外围设备等硬件的计算机系统。此外,“计算机可读记录介质”是指软盘、磁光盘、ROM、CD-ROM等可移动介质、内置于计算机系统的硬盘等存储装置。而且,“计算机可读记录介质”也可以包括:像经由互联网等网络或电话线路等通信线路来发送程序的情况下的通信线那样短时间内、动态地保存程序的记录介质;以及像作为该情况下的服务器、客户端的计算机系统内部的易失性存储器那样保存程序固定时间的记录介质。此外,上述程序可以是用于实现上述功能的一部分的程序,也可以是能通过与已记录在计算机系统中的程序进行组合来实现上述功能的程序。
此外,也可以将上述的实施方式中的运动图像编码装置11、运动图像解码装置31中的一部分或全部作为LSI(Large Scale Integration:大规模集成电路)等集成电路而实现。运动图像编码装置11、运动图像解码装置31的各功能块可以单独地处理器化,也可以将一部分或全部集成来处理器化。此外,集成电路化的方法并不限于LSI,也可以通过专用电路或通用处理器来实现。此外,在随着半导体技术的进步而出现代替LSI的集成电路化的技术的情况下,也可以使用基于该技术的集成电路。
以上,参照附图对该发明的一实施方式详细地进行了说明,但具体构成并不限于上述实施方式,在不脱离该发明的主旨的范围内,可以进行各种设计变更等。
(应用例〕
上述运动图像编码装置11和运动图像解码装置31可以搭载于进行运动图像的发送、接收、记录、再现的各种装置而利用。需要说明的是,运动图像可以是通过摄像机等拍摄的自然运动图像,也可以是通过计算机等生成的人工运动图像(包括CG和GUI)。
首先,参照图22对能将上述的运动图像编码装置11和运动图像解码装置31用于运动图像的发送和接收的情况进行说明。
图22(a)是表示搭载有运动图像编码装置11的发送装置PROD_A的构成的框图。如图22(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以及生成或加工图像的图像处理部PRED_A7。在图22(a)中举例示出了发送装置PROD_A具备全部这些的构成,但也可以省略一部分。
需要说明的是,记录介质PROD_A5可以是记录有未被编码的运动图像的介质,也可以是记录有以与传输用的编码方式不同的记录用的编码方式进行编码后的运动图像的介质。在后者的情况下,使按照记录用的编码方式对从记录介质PROD_A5读出的编码数据进行解码的解码部(未图示)介于记录介质PROD_A5与编码部PROD_A1之间为好。
图22(b)是表示搭载有运动图像解码装置31的接收装置PROD_B的构成的框图。如图22(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。在图22(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这两方的功能。
接着,参照图23,对能将上述的运动图像编码装置11和运动图像解码装置31用于运动图像的记录和再现的情况进行说明。
图23(a)是表示搭载有上述的运动图像编码装置11的记录装置PROD_C的构成的框图。如图23(a)所示,记录装置PROD_C具备:通过对运动图像进行编码而得到编码数据的编码部PROD_C1和将编码部PROD_C1所得到的编码数据写入记录介质PROD_M的写入部PROD_C2。上述的运动图像编码装置11被用作该编码部PROD_C1。
需要说明的是,记录介质PROD_M可以是(1)如HDD(Hard Disk 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。在图23(a)中举例示出了记录装置PROD_C具备全部这些的构成,但也可以省略一部分。
需要说明的是,接收部PROD_C5可以接收未被编码的运动图像,也可以接收以与记录用的编码方式不同的传输用的编码方式编码后的编码数据。在后者的情况下,使对以传输用的编码方式编码后的编码数据进行解码的传输用解码部(未图示)介于接收部PROD_C5与编码部PROD_C1之间为好。
作为这种记录装置PROD_C,例如可举出:DVD记录器、BD记录器、HDD(Hard DiskDrive)记录器等(在该情况下,输入端子PROD_C4或接收部PROD_C5为运动图像的主要的供给源)。此外,便携式摄像机(在该情况下,摄像机PROD_C3为运动图像的主要的供给源)、个人计算机(在该情况下,接收部PROD_C5或图像处理部C6为运动图像的主要的供给源)、智能手机(在该情况下,摄像机PROD_C3或接收部PROD_C5为运动图像的主要的供给源)等也是这种记录装置PROD_C的一个示例。
图23(b)是表示搭载有上述的运动图像解码装置31的再现装置PROD_D的构成的框图。如图23(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。在图23(b)中举例示出了再现装置PROD_D具备全部这些的构成,但也可以省略一部分。
需要说明的是,发送部PROD_D5可以发送未被编码的运动图像,也可以发送以与记录用的编码方式不同的传输用的编码方式编码后的编码数据。在后者的情况下,使以传输用的编码方式对运动图像进行编码的编码部(未图示)介于解码部PROD_D2与发送部PROD_D5之间为好。
作为这种再现装置PROD_D,例如可列举出DVD播放器、BD播放器、HDD播放器等(在该情况下,连接有电视接收机等的输出端子PROD_D4为运动图像的主要供给目的地)。此外,电视接收机(在该情况下,显示器PROD_D3为运动图像的主要供给目的地)、数字标牌(也称为电子看板、电子公告板等,显示器PROD_D3或发送部PROD_D5为运动图像的主要供给目的地)、台式PC(在该情况下,输出端子PROD_D4或发送部PROD_D5为运动图像的主要供给目的地)、膝上型或平板型PC(在该情况下,显示器PROD_D3或发送部PROD_D5为运动图像的主要供给目的地)、智能手机(在该情况下,显示器PROD_D3或发送部PROD_D5为运动图像的主要供给目的地)等也是这种再现装置PROD_D的一个示例。
(硬件实现以及软件实现)
此外,上述的运动图像解码装置31和运动图像编码装置11的各块可以通过形成于集成电路(IC芯片)上的逻辑电路而以硬件方式实现,也可以利用CPU(Central ProcessingUnit:中央处理器)而以软件方式地实现。
在后者的情况下,上述各装置具备:执行实现各功能的程序的命令的CPU、储存上述程序的ROM(Read Only Memory:只读存储器)、展开上述程序的RAM(Random AccessMemory:随机存取存储器)以及储存上述程序和各种数据的存储器等存储装置(记录介质)等。然后,本发明的实施方案的目的在于通过以下方式也能达到:将以计算机可读取的方式记录实现前述功能的软件即上述各装置的控制程序的程序代码(执行形式程序、中间代码程序、源程序)的记录介质供给至上述各装置,该计算机(或CPU、MPU)读出记录于记录介质的程序代码并执行。
作为上述记录介质,例如能使用:磁带、盒式磁带等带类;包括软盘(注册商标)/硬盘等磁盘、CD-ROM(Compact Disc Read-Only Memory:光盘只读存储器)/MO盘(Magneto-Optical disc:磁光盘)/MD(Mini Disc:迷你磁光盘)/DVD(Digital Versatile Disc:数字通用光盘)/CD-R(CD Recordable:光盘刻录片)/蓝光光盘(Blu-ray Disc:注册商标)等光盘的盘类;IC卡(包括存储卡)/光卡等卡类;掩模ROM/EPROM(Erasable ProgrammableRead-Only Memory:可擦可编程只读存储器)/EEPROM(ElectricallyErasableandProgrammableRead-OnlyMemory:电可擦可编程只读存储器)/闪存ROM等半导体存储器类;或者PLD(Programmable logic device:可编程逻辑器件)、FPGA(Field Programmable GateArray:现场可编程门阵列)等逻辑电路类等。
此外,也可以将上述各装置构成为能与通信网络连接,并经由通信网络供给上述程序代码。该通信网络能传输程序代码即可,不被特别限定。例如,可利用互联网、内联网(intranet)、外联网(extranet)、LAN(Local Area Network:局域网)、ISDN(IntegratedServices Digital Network:综合业务数字网)、VAN(Value-Added Network:增值网络)、CATV(Community Antenna television/Cable Television:共用天线电视/有线电视)通信网、虚拟专用网(Virtual Private Network)、电话线路网、移动通信网、卫星通信网等。此外,构成该通信网络的传输介质也是为能传输程序代码的介质即可,不限定于特定的构成或种类。例如,无论在IEEE(Institute of Electrical and Electronic Engineers:电气和电子工程师协会)1394、USB、电力线输送、有线TV线路、电话线、ADSL(AsymmetricDigital Subscriber Line:非对称数字用户线路)线路等有线中,还是在如IrDA(InfraredData Association:红外线数据协会)、遥控器那样的红外线、BlueTooth(注册商标)、IEEE802.11无线、HDR(High Data Rate:高数据速率)、NFC(Near Field Communication:近场通讯)、DLNA(Digital Living Network Alliance:数字生活网络联盟,注册商标)、便携电话网、卫星线路、地面数字广播网等无线中都可利用。需要说明的是,本发明的实施方式即使以通过电子传输来将上述程序代码具体化的嵌入载波的计算机数据信号的形态也能够实现。
本发明的实施方式并不限定于上述的实施方式,能在权利要求所示的范围内进行各种变更。即,将在权利要求所示的范围内经过适当变更的技术方案组合而得到的实施方式也包括在本发明的技术范围内。
工业上的可利用性
本发明的实施方式能优选地应用于对将图像数据编码而得到的编码数据进行解码的运动图像解码装置,以及生成将图像数据编码而得到的编码数据的运动图像编码装置。此外,能优选地应用于由运动图像编码装置生成并被运动图像解码装置参照的编码数据的数据结构。
符号说明
10 CT信息解码部
20 CU解码部
41 运动图像显示装置
31 运动图像解码装置
11 运动图像编码装置
3037 子块预测参数推导部(子块预测单元)
30371 时空子块预测部(ATMVP预测单元、STMVP预测单元)
30372 仿射预测部(仿射预测单元)
30373 匹配运动推导部(匹配预测单元)
30374 OBMC预测部

Claims (6)

1.一种运动矢量推导装置,推导出针对每个子块的运动矢量,其特征在于,具备:
匹配预测处理部,从第一参照图像推导出第一预测块并从第二参照图像推导出第二预测块,
所述匹配预测处理部推导出由位置定义的所述第一预测块和由位置定义的所述第二预测块之间的绝对值差分和,
所述匹配预测处理部通过使用所述绝对值差分和来推导出初始运动矢量,并且
所述匹配预测处理部通过使用所述初始运动矢量执行本地搜索来推导出所述子块的运动矢量,其中,
通过使用(i)将像素比特的第一值右移移位值而导出的所述第一预测块、和(ii)将像素比特的第二值右移所述移位值而导出的第二预测块,来推导出所述绝对值差分和,
所述移位值是通过从比特长度值中减去预定值而算出的。
2.根据权利要求1所述的运动矢量推导装置,其特征在于,
基于所述绝对值差分和与规定阈值之间的比较来推导出所述初始运动矢量。
3.根据权利要求1所述的运动矢量推导装置,其特征在于,
所述移位值是亮度的值。
4.一种运动矢量推导方法,推导出针对每个子块的运动矢量,其特征在于包括以下步骤:
从第一参照图像推导出第一预测块并从第二参照图像推导出第二预测块;
推导出所述第一预测块和所述第二预测块之间的由位置定义的绝对值差分和;
通过使用所述绝对值差分和来推导出初始运动矢量;以及
通过使用所述初始运动矢量执行本地搜索来推导出所述子块的运动矢量,其中,
通过使用(i)将像素比特的第一值右移移位值而导出的所述第一预测块、和(ii)将像素比特的第二值右移所述移位值而导出的第二预测块,来推导出所述绝对值差分和,
所述移位值是通过从比特长度值中减去预定值而算出的。
5.一种运动图像解码装置,其特征在于,具备:
权利要求1所述的运动矢量推导装置;和
预测图像生成部,被配置为参照运动矢量生成预测图像。
6.一种运动图像编码装置,其特征在于,具备:
权利要求1所述的运动矢量推导装置;和
预测图像生成部,被配置为参照运动矢量生成预测图像。
CN201980007727.3A 2018-01-09 2019-01-08 运动矢量推导装置、运动图像解码装置以及运动图像编码装置 Active CN111886867B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202311613558.2A CN117579828A (zh) 2018-01-09 2019-01-08 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
CN202311606007.3A CN117579827A (zh) 2018-01-09 2019-01-08 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
CN202311602438.2A CN117579826A (zh) 2018-01-09 2019-01-08 运动矢量推导装置、运动图像解码装置以及运动图像编码装置

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2018-001191 2018-01-09
JP2018001191A JP2021057621A (ja) 2018-01-09 2018-01-09 動画像符号化装置、動画像復号装置および予測画像生成装置
JP2018175146 2018-09-19
JP2018-175146 2018-09-19
PCT/JP2019/000257 WO2019139013A1 (ja) 2018-01-09 2019-01-08 動きベクトル導出装置、動画像復号装置および動画像符号化装置

Related Child Applications (3)

Application Number Title Priority Date Filing Date
CN202311613558.2A Division CN117579828A (zh) 2018-01-09 2019-01-08 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
CN202311606007.3A Division CN117579827A (zh) 2018-01-09 2019-01-08 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
CN202311602438.2A Division CN117579826A (zh) 2018-01-09 2019-01-08 运动矢量推导装置、运动图像解码装置以及运动图像编码装置

Publications (2)

Publication Number Publication Date
CN111886867A CN111886867A (zh) 2020-11-03
CN111886867B true CN111886867B (zh) 2023-12-19

Family

ID=67219058

Family Applications (4)

Application Number Title Priority Date Filing Date
CN202311602438.2A Pending CN117579826A (zh) 2018-01-09 2019-01-08 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
CN201980007727.3A Active CN111886867B (zh) 2018-01-09 2019-01-08 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
CN202311613558.2A Pending CN117579828A (zh) 2018-01-09 2019-01-08 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
CN202311606007.3A Pending CN117579827A (zh) 2018-01-09 2019-01-08 运动矢量推导装置、运动图像解码装置以及运动图像编码装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202311602438.2A Pending CN117579826A (zh) 2018-01-09 2019-01-08 运动矢量推导装置、运动图像解码装置以及运动图像编码装置

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN202311613558.2A Pending CN117579828A (zh) 2018-01-09 2019-01-08 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
CN202311606007.3A Pending CN117579827A (zh) 2018-01-09 2019-01-08 运动矢量推导装置、运动图像解码装置以及运动图像编码装置

Country Status (4)

Country Link
US (3) US11212551B2 (zh)
EP (1) EP3739885A4 (zh)
CN (4) CN117579826A (zh)
WO (1) WO2019139013A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112040243B (zh) 2018-06-04 2021-06-29 华为技术有限公司 获取运动矢量的方法和装置
CN114727114B (zh) * 2018-09-21 2024-04-09 华为技术有限公司 运动矢量的确定方法和装置
US11277628B2 (en) * 2018-09-24 2022-03-15 Qualcomm Incorporated Restrictions for the worst-case bandwidth reduction in video coding
WO2020094051A1 (en) * 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Signaling of side information for inter prediction with geometric partitioning
CN113170166B (zh) 2018-12-30 2023-06-09 北京字节跳动网络技术有限公司 具有几何分割的帧间预测在视频处理中有条件的应用
KR20220025301A (ko) 2019-01-06 2022-03-03 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 양방향 광학 흐름을 위한 비트 폭 제어
CN112770113A (zh) * 2019-11-05 2021-05-07 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
US20220272375A1 (en) * 2021-02-22 2022-08-25 Beijing Dajia Internet Information Technology Co., Ltd. Overlapped block motion compensation for inter prediction
WO2023132564A1 (ko) * 2022-01-10 2023-07-13 현대자동차주식회사 인터 예측에서 디코더측 움직임벡터 리스트 수정을 위한 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007151169A (ja) * 1996-12-26 2007-06-14 United Module Corp 動ベクトル検出装置および記録媒体
CN106791833A (zh) * 2012-06-27 2017-05-31 株式会社东芝 编码方法、解码方法、编码设备以及解码设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100226722B1 (ko) * 1997-07-30 1999-10-15 구자홍 동영상 움직임 벡터 추정 방법
US7860165B2 (en) * 2005-05-20 2010-12-28 Microsoft Corporation Framework for fine-granular computational-complexity scalable motion estimation
US9419620B2 (en) * 2008-07-22 2016-08-16 Nytell Software LLC Field programmable object array and video compression processor for video data compression
US20100201870A1 (en) 2009-02-11 2010-08-12 Martin Luessi System and method for frame interpolation for a compressed video bitstream
JP2012034225A (ja) * 2010-07-30 2012-02-16 Canon Inc 動きベクトル検出装置及び動きベクトル検出方法、コンピュータプログラム
US9491460B2 (en) * 2013-03-29 2016-11-08 Qualcomm Incorporated Bandwidth reduction for video coding prediction
ES2781561T3 (es) * 2013-10-18 2020-09-03 Lg Electronics Inc Método que predice síntesis de vistas en la codificación de vídeo multi-vista y método para constituir una lista de candidatos a la fusión mediante el uso del mismo
US9807398B2 (en) * 2014-09-30 2017-10-31 Avago Technologies General Ip (Singapore) Pte. Ltd. Mode complexity based coding strategy selection
US9838662B2 (en) * 2014-10-10 2017-12-05 Qualcomm Incorporated Harmonization of cross-component prediction and adaptive color transform in video coding
US10958927B2 (en) * 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
EP3560202A4 (en) * 2016-12-27 2020-07-29 MediaTek Inc. METHOD AND DEVICE FOR BILATERAL TEMPLATE MV REFINING FOR VIDEO CODING

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007151169A (ja) * 1996-12-26 2007-06-14 United Module Corp 動ベクトル検出装置および記録媒体
CN106791833A (zh) * 2012-06-27 2017-05-31 株式会社东芝 编码方法、解码方法、编码设备以及解码设备

Also Published As

Publication number Publication date
CN117579826A (zh) 2024-02-20
WO2019139013A1 (ja) 2019-07-18
EP3739885A4 (en) 2021-10-27
US20210067798A1 (en) 2021-03-04
CN111886867A (zh) 2020-11-03
US11212551B2 (en) 2021-12-28
EP3739885A1 (en) 2020-11-18
CN117579828A (zh) 2024-02-20
US20230300365A1 (en) 2023-09-21
US20220094973A1 (en) 2022-03-24
US11671620B2 (en) 2023-06-06
CN117579827A (zh) 2024-02-20

Similar Documents

Publication Publication Date Title
CN111886867B (zh) 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
CN111989922B (zh) 用于对视频数据进行解码的方法、设备和装置
EP3596925B1 (en) Affine motion information derivation
CN110574374B (zh) 图像解码装置
CN109792535B (zh) 预测图像生成装置、运动图像解码装置以及运动图像编码装置
JP2021005741A (ja) 画像符号化装置及び画像復号装置
KR20200058445A (ko) Fruc 를 위한 저 복잡도 설계
WO2019004283A1 (ja) 動画像符号化装置及び動画像復号装置
JP2021016016A (ja) 動画像符号化装置及び動画像復号装置
US20200021837A1 (en) Video decoding apparatus and video coding apparatus
CN112740704B (zh) 图像解码装置以及图像编码装置
WO2020116456A1 (ja) 動画像復号装置
CN113557740A (zh) 运动图像解码装置
WO2018173895A1 (ja) 予測画像生成装置、動画像復号装置、および動画像符号化装置
WO2018110180A1 (ja) 動きベクトル生成装置、予測画像生成装置、動画像復号装置、および動画像符号化装置
CN112956206A (zh) 运动图像解码装置以及运动图像编码装置
JP2020043500A (ja) 動画像符号化装置及び動画像復号装置
JP2020088660A (ja) 動画像符号化装置、動画像復号装置
JP2020145650A (ja) 画像復号装置および画像符号化装置
JP2020108012A (ja) 画像復号装置および画像符号化装置
JP2020096279A (ja) 予測画像生成装置、動画像復号装置および動画像符号化装置
JP2021057621A (ja) 動画像符号化装置、動画像復号装置および予測画像生成装置
JP2021016018A (ja) 動画像符号化装置、動画像復号装置および動きベクトル導出装置
JP2020022116A (ja) 動画像符号化装置及び動画像復号装置
JP2020145486A (ja) 動画像符号化装置及び動画像復号装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240108

Address after: 1 kind of ground of Osaka, Japan urban district craftsman's raised path between farm fields

Patentee after: Sharp Corp.

Address before: 1 kind of ground of Osaka, Japan urban district craftsman's raised path between farm fields

Patentee before: Sharp Corp.

Patentee before: FG Innovation Co.,Ltd.

TR01 Transfer of patent right