CN113557740A - 运动图像解码装置 - Google Patents

运动图像解码装置 Download PDF

Info

Publication number
CN113557740A
CN113557740A CN202080019033.4A CN202080019033A CN113557740A CN 113557740 A CN113557740 A CN 113557740A CN 202080019033 A CN202080019033 A CN 202080019033A CN 113557740 A CN113557740 A CN 113557740A
Authority
CN
China
Prior art keywords
prediction
unit
image
dmvr
flag
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.)
Pending
Application number
CN202080019033.4A
Other languages
English (en)
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
Application filed by FG Innovation Co Ltd, Sharp Corp filed Critical FG Innovation Co Ltd
Publication of CN113557740A publication Critical patent/CN113557740A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明实现降低图像质量提高处理的复杂度的图像解码装置以及图像编码装置。该图像解码装置具有帧间预测参数解码部,该帧间预测参数解码部具有根据两个预测图像的误差修正两个运动矢量的处理,在两个预测图像均不为加权预测的情况的情况下进行修正所述两个运动矢量的处理。

Description

运动图像解码装置
技术领域
本发明的实施方式涉及运动图像解码装置。
背景技术
为了高效地传输或记录运动图像,使用通过对运动图像进行编码而生成编码数据的运动图像编码装置,以及通过对该编码数据进行解码而生成解码图像的运动图像解码装置。
作为具体的运动图像编码方式,例如可以列举出H.264/AVC、HEVC(High-Efficiency Video Coding:高效运动图像编码)方式等。
在这样的运动图像编码方式中,构成运动图像的图像(图片)通过分级结构来管理,并按每个CU进行编码/解码,所述分级结构包括通过分割图像而得到的切片、通过分割切片而得到的编码树单元(CTU:Coding Tree Unit)、通过分割编码树单元而得到的编码单位(有时也称为编码单元(Coding Unit:CU))以及通过分割编码单位而得到的变换单元(TU:Transform Unit)。
此外,在这样的运动图像编码方式中,通常,基于通过对输入图像进行编码/解码而得到的局部解码图像而生成预测图像,对从输入图像(原图像)中减去该预测图像而得到的预测误差(有时也称为“差分图像”或“残差图像”)进行编码。作为预测图像的生成方法,可列举出画面间预测(帧间预测)和画面内预测(帧内预测)。
此外,作为近年来的运动图像编码和解码的技术,可列举出非专利文献1。
现有技术文献
非专利文献
非专利文献1:“Versatile Video Coding(Draft4)”,JVET-M1001,Joint VideoExploration Team(JVET)of ITU-T SG 16 WP 3 and ISO/IEC JTC1/SC 29/WG 11,2019
发明内容
发明要解决的问题
非专利文献1的在推导双向预测图像时,使用DMVR处理、BDOF处理的预测(BDOF预测)存在处理的复杂度高这一问题,其中,DMVR处理使用两个预测图像修正运动矢量以提高预测图像的图像质量,BDOF处理利用梯度图像提高预测图像的图像质量。
本发明的实施方式的目的在于,实现降低这些图像质量提高处理的复杂度的图像解码装置以及图像编码装置。
技术方案
为了解决上述问题,本发明的一个方案的图像解码装置具有帧间预测参数解码部,其具有根据两个预测图像的误差修正两个运动矢量的处理,在两个预测图像均不为加权预测的情况的情况下进行修正所述两个运动矢量的处理。
此外,本发明的一个方案的图像编码装置具有帧间预测参数编码部,其具有根据两个预测图像的误差修正两个运动矢量的处理,在两个预测图像均不为加权预测的情况的情况下进行修正所述两个运动矢量的处理。
通过采用这样的构成,在应用加权预测的情况下,无法准确进行误差评估而得不到效果,因此能通过限制应用条件来降低整体的处理量。
此外,本发明的一个方案的图像解码装置具有:帧间预测参数解码部,具有根据两个预测图像的误差值修正两个运动矢量的处理;以及双向梯度变化处理部,使用梯度图像生成预测图像,其中,所述梯度图像根据使用通过所述帧间预测参数解码部解码的参数生成的两个插补图像推导出,使用所述两个预测图像的误差值进行是否应用由所述双向梯度变化处理部进行的处理的判定。
此外,本发明的一个方案的图像编码装置具有:帧间预测参数编码部,具有根据两个预测图像的误差值修正两个运动矢量的处理;以及双向梯度变化处理部,使用梯度图像生成预测图像,其中,所述梯度图像根据使用通过所述帧间预测参数解码部解码的参数生成的两个插补图像推导出,使用所述两个预测图像的误差值进行是否应用由所述双向梯度变化处理部进行的处理的判定。
通过采用这样的构成,为了修正运动矢量需要求出误差值,另一方面,在双向梯度变化处理部中,在误差小的情况下没有效果,因此,通过加上这样的处理,无需追加追加的误差值,就能进行应用由双向梯度变化处理部进行的处理的判定,能降低整体的处理量。
有益效果
根据以上的构成,能实现降低了图像质量提高处理的复杂性的图像解码装置以及图像编码装置。
附图说明
图1是表示本实施方式的图像传输系统的构成的概略图。
图2是表示搭载有本实施方式的运动图像编码装置的发送装置和搭载有运动图像解码装置的接收装置的构成的图。图2的(a)表示搭载有运动图像编码装置的发送装置,图2的(b)表示搭载有运动图像解码装置的接收装置。
图3是表示搭载有本实施方式的运动图像编码装置的记录装置和搭载有运动图像解码装置的再现装置的构成的图。图3的(a)表示搭载有运动图像编码装置的记录装置,图3的(b)表示搭载有运动图像解码装置的再现装置。
图4是表示编码流的数据的分级结构的图。
图5是表示CTU的分割例的图。
图6是表示参照图片和参照图片列表的一个示例的概念图。
图7是表示运动图像解码装置的构成的概略图。
图8是表示帧间预测参数解码部的构成的概略图。
图9是表示合并预测参数推导部和AMVP预测参数推导部的构成的概略图。
图10是表示DMVR部的构成的概略图。
图11是表示DMVR部中的处理的流程的流程图。
图12是说明通过DMVR进行基于误差阈值处理的BDOF的判定的处理的流程图。
图13是表示预测图像生成部中所包括的帧间预测图像生成部的构成的概略图。
图14是表示运动图像解码装置中的预测模式的选择处理的流程的一个示例的流程图。
图15是说明推导预测图像的处理的流程的流程图。
图16是表示BDOF部的构成的概略图。
图17是表示BDOF部执行填充的区域的一个示例的图。
图18是表示运动图像编码装置的构成的概略图。
图19是表示参数编码部的构成的概略图。
图20是表示运动图像编码装置中的搜索距离的候选数和推导方向的候选数的一个示例的图。
具体实施方式
(第一实施方式)
以下,参照附图对本发明的实施方式进行说明。
图1是表示本实施方式的图像传输系统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(Blue-ray Disc:蓝光光盘,注册商标)等记录有编码流Te的存储介质代替。
运动图像解码装置31对网络21所传输的编码流Te分别进行解码,生成解码后的一个或多个解码图像Td。
运动图像显示装置41显示运动图像解码装置31所生成的一个或多个解码图像Td的全部或一部分。运动图像显示装置41例如具备液晶显示器、有机EL(Electro-luminescence:电致发光)显示器等显示设备。作为显示器的形式,可列举出固定式、移动式、HMD(Head Mount Display:头戴式显示器)等。此外,运动图像显示装置41在运动图像解码装置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(舍去小数点以下)。
sign(a)是返回a的符号(sign)的函数。
a^b表示a的b次方。
<编码流Te的结构>
在对本实施方式的运动图像编码装置11和运动图像解码装置31进行详细说明之前,对由运动图像编码装置11生成并由运动图像解码装置31进行解码的编码流Te的数据结构进行说明。
图4是表示编码流Te中的数据的分级结构的图。编码流Te示例性地包括序列和构成序列的多张图片。图4的(a)~(f)分别是表示既定序列SEQ的编码视频序列、规定图片PICT的编码图片、规定切片S的编码切片、规定切片数据的编码切片数据、编码切片数据中所包括的编码树单元以及编码树单元中所包括的编码单元的图。
(编码视频序列)
在编码视频序列中,规定有供运动图像解码装置31参照以便对处理对象的序列SEQ进行解码的数据的集合。序列SEQ如图4的(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如图4的(b)所示,包括切片0~切片NS-1(NS为图片PICT中所包括的切片的总数)。
需要说明的是,以下,在无需对各切片0~切片NS-1进行区分的情况下,有时会省略附图标记的下标来进行记述。此外,以下所说明的编码流Te中包括的且带有下标的其他数据也是同样的。
(编码切片)
在编码切片中,规定有供运动图像解码装置31参照以便对处理对象的切片S进行解码的数据的集合。切片如图4的(c)所示包括切片标头和切片数据。
切片报头中包括供运动图像解码装置31参照以便确定对象切片的解码方法的编码参数组。指定切片类型的切片类型指定信息(slice_type)是切片报头中包括的编码参数的一个示例。
作为能由切片类型指定信息指定的切片类型,可列举出:(1)在进行编码时仅使用帧内预测的I切片、(2)在进行编码时使用单向预测或帧内预测的P切片以及(3)在进行编码时使用单向预测、双向预测或帧内预测的B切片等。需要说明的是,帧间预测不限于单向预测、双向预测,也可以使用更多的参照图片来生成预测图像。以下,称为P、B切片的情况是指包括能使用帧间预测的块的切片。
需要说明的是,切片报头中也可以包括对图片参数集PPS的参照(pic_parameter_set_id)。
(编码切片数据)
在编码切片数据中,规定有供运动图像解码装置31参照以便对处理对象的切片数据进行解码的数据的集合。切片数据如图4的(d)所示包括CTU。CTU是构成切片的固定大小(例如64×64)的块,也称为最大编码单位(LCU:Largest Coding Unit)。
(编码树单元)
在图4的(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分割标志(qt_split_cu_flag)、表示有无MT分割的MT分割标志(mtt_split_cu_flag)、表示MT分割的分割方向的MT分割方向(mtt_split_cu_vertical_flag)、表示MT分割的分割类型的MT分割类型(mtt_split_cu_binary_flage)。qt_split_cu_flag、mtt_split_cu_flag、mtt_split_cu_vertical_flag、mtt_split_cu_binary_flag按每个编码节点传输。
图5是表示CTU的分割例的图。在qt_split_cu_flag为1的情况下,编码节点分割成4个编码节点(图5的(b))。
在qt_split_cu_flag为0时,mtt_split_cu_flag为0的情况下,不分割编码节点,而保持1个CU作为节点(图5的(a))。CU为编码节点的末端节点,且不进行进一步分割。CU为编码处理的基本单位。
在mtt_split_cu_flag为1的情况下如下所述地对编码节点进行MT分割。在mtt_split_cu_vertical_flag为0且mtt_split_cu_binary_flag为1的情况下将编码节点水平分割成2个编码节点(图5的(d)),在mtt_split_cu_vertical_flag为1且mtt_split_cu_binary_flag为1的情况下将编码节点垂直分割成2个编码节点(图5的(c))。此外,在mtt_split_cu_vertical_flag为0且mtt_split_cu_binary_flag为0的情况下将编码节点水平分割成3个编码节点(图5的(f)),在mtt_split_cu_vertical_flag为1且mtt_split_cu_binary_flag为0的情况下将编码节点垂直分割成3个编码节点(图5的(e))。将它们在图5的(g)中示出。
此外,在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像素中的任一种。
(编码单元)
如图4的(f)所示,在CU中规定有供运动图像解码装置31参照以便对处理对象的编码单元进行解码的数据的集合。具体而言,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视为假(以下同样)。不过,在实际的装置、方法中也可以使用其他值作为真值、假值。
用于推导帧间预测参数的语法要素中,例如有仿射标志affine_flag、合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_LX_idx、差分矢量mvdLX以及运动矢量精度模式amvr_mode。
(参照图片列表)
参照图片列表是由存储于参照图片存储器306的参照图片构成的列表。图6是表示参照图片和参照图片列表的一个示例的概念图。在图6的(a)中,矩形表示图片,箭头表示图片的参照关系,横轴表示时间,矩形中的I、P、B分别表示帧内图片、单向预测图片、双向预测图片,矩形中的数字表示解码顺序。如图6的(a)所示,图片的解码顺序为I0、P1、B2、B3、B4,显示顺序为I0、B3、B2、B4、P1。图6的(b)中示出图片B3(对象图片)的参照图片列表的示例。参照图片列表是表示参照图片的候选的列表,一张图片(切片)可以具有一个以上的参照图片列表。在图6的(b)的示例中,对象图片B3具有L0列表RefPicList0和L1列表RefPicList1这两个参照图片列表。在各CU中,由参照图片索引refIdxLX指定实际上以参照图片列表RefPicListX(X=0或1)中的哪一张图片来进行参照。图6的(b)是refIdxL0=2、refIdxL1=0的示例。需要说明的是,LX是在不对L0预测和L1预测进行区分的情况下使用的记述方法,以下,通过将LX置换为L0、L1对针对L0列表的参数和针对L1列表的参数进行区分。
(合并预测和AMVP预测)
预测参数的解码(编码)方法中有合并预测(merge)模式和AMVP(Advanced MotionVector Prediction:先进运动矢量预测、自适应运动矢量预测)模式,合并标志merge_fLag是用于识别它们的标志。合并预测模式是不将预测列表利用标志predFlagLX(或帧间预测标识符inter_pred_idc)、参照图片索引refIdxLX、运动矢量mvLX包括于编码数据而从已处理的附近块的预测参数推导出的模式。AMVP模式是将帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、运动矢量mvLX包括于编码数据的模式。需要说明的是,运动矢量mvLX被编码为识别预测矢量mvpLX的预测矢量索引mvp_LX_idx、差分矢量mvdLX以及运动矢量精度模式amvr_mode。合并预测模式是选择从邻接块的运动信息等推导出的合并候选来获得运动矢量mvLX(运动矢量信息)的模式。此外,除了合并预测模式之外,还可以有通过仿射标志affine_flag识别的仿射预测模式。作为合并预测模式的一个方式,可以有通过跳过标志skip_flag识别的跳过模式。需要说明的是,跳过模式是指通过与合并模式同样的方法推导出预测参数的所使用的模式,并且是不将预测误差(残差图像、残差信息)包括在编码数据中的模式。换言之,在跳过标志skip_flag为1的情况下,关于对象CU,仅包括该跳过标志skip_flag和合并索引merge_idx等与合并模式关联的语法,运动矢量、残差信息等不包括于编码数据。
(运动矢量)
运动矢量mvLX表示不同的两张图片上的块间的移位量。将与运动矢量mvLX有关的预测矢量、差分矢量分别称为预测矢量mvpLX、差分矢量mvdLX。
(帧间预测标识符inter_pred_idc和预测列表利用标志predFlagLX)
帧间预测标识符inter_pred_idc是表示参照图片的种类和数量的值,取PRED_L0、PRED_L1、PRED_BI中的任一值。PRED_L0、PRED_L1分别表示使用在L0列表、L1列表中进行管理的一张参照图片的单向预测。PRED_BI表示使用在L0列表和L1列表中进行管理的两张参照图片的双向预测BiPred。
合并索引merge_idx是表示是否将从处理已完成的块推导出的预测参数候选(合并候选)中的任一个预测参数用作对象块的预测参数的索引。
帧间预测标识符inter_pred_idc与预测列表利用标志predFlagL0、predFlagL1的关系能如下进行相互变换。
inter_pred_idc=(predFlagL1<<1)+predFlagL0
predFlagL0=inter_pred_idc&1
predFlagL1=inter_pred_idc>>1
(双向预测biPred的判定)
是否为双向预测BiPred的标志biPred能根据两个预测列表利用标志是否均为1而推导出。例如能通过以下算式推导出。
biPred=(predFlagL0==1&&predFlagL1==1)
或者,标志biPred也能根据帧间预测标识符是否是表示使用两个预测列表(参照图片)的值而推导出。例如能通过以下算式推导出。
biPred=(inter_pred_idc==PRED_BI)?1:0
(运动图像解码装置的构成)
对本实施方式的运动图像解码装置31(图7)的构成进行说明。
运动图像解码装置31构成为包括:熵解码部301、参数解码部302、环路滤波器305、参照图片存储器306、预测参数存储器307、预测图像生成部(预测图像生成装置)308、逆量化/逆变换部311以及加法部312。需要说明的是,根据后文所述的运动图像编码装置11,也存在运动图像解码装置31中不包括环路滤波器305的构成。
参数解码部302还具备未图示的报头解码部3020、CT信息解码部3021以及CU解码部3022(预测模式解码部),CU解码部3022还具备TU解码部3024。也可以将它们统称为解码模块。报头解码部3020从编码数据解码VPS、SPS、PPS等参数集信息、切片报头(切片信息)。CT信息解码部3021从编码数据解码CT。CU解码部3022从编码数据解码CU。TU解码部3024在TU中包括预测误差的情况下,从编码数据解码QP更新信息(量化校正值)和量化预测误差(residual_coding)。
TU解码部3024在跳过模式以外(skip_mode==0)的情况下从编码数据解码QP更新信息(量化校正值)和量化预测误差(residual_coding)。更具体而言,TU解码部3024在skip_mode==0的情况下,从编码数据解码表示对象块中是否包括量化预测误差的标志cu_cbp,在cu_cbp为1的情况下对量化预测误差进行解码。在cu_cbp不存在于编码数据的情况下,TU解码部3024将cu_cbp推导为0。
此外,参数解码部302构成为包括未图示的帧间预测参数解码部303和帧内预测参数解码部304。预测图像生成部308构成为包括帧间预测图像生成部309和帧内预测图像生成部310。
此外,在下文中对将CTU、CU用作处理单位的示例进行了记载,但不限于此,也可以以子CU为单位进行处理。或者,也可以设为将CTU、CU替换为块,将子CU替换为子块,以块或者子块为单位进行的处理。
熵解码部301对从外部输入的编码流Te进行熵解码,对各个代码(语法要素)进行解码。解码后的代码中存在用于生成预测图像的预测信息和用于生成差分图像的预测误差等。
熵解码部301将解码后的代码输出至参数解码部302。解码后的代码例如是指predMode、merge_flag、merge_idx、inter_pred_idc、refIdxLX、mvp_LX_idx、mvdLX、amvr_mode等。基于参数解码部302的指示来进行对哪一个代码进行解码的控制。
(帧间预测参数解码部的构成)
帧间预测参数解码部303基于从熵解码部301输入的代码,参照存储于预测参数存储器307的预测参数来对帧间预测参数进行解码。此外,帧间预测参数解码部303将解码后的帧间预测参数输出至预测图像生成部308,存储于预测参数存储器307。
图8是表示本实施方式的帧间预测参数解码部303的构成的概略图。帧间预测参数解码部303构成为包括:合并预测部30374、DMVR部30375、子块预测部(仿射预测部)30372、MMVD预测部30376、三角形(Triangle)预测部30377、AMVP预测参数推导部3032以及加法部3038。合并预测部30374构成为包括合并预测参数推导部3036。AMVP预测参数推导部3032、合并预测参数推导部3036、仿射预测部30372是在运动图像编码装置、运动图像解码装置中通用的部,因此也可以将这些总称为运动矢量推导部(运动矢量推导装置)。
(仿射预测部)
仿射预测部30372推导出对象块的仿射预测参数。在本实施方式中,作为仿射预测参数,推导出对象块的两个控制点(V0、V1)的运动矢量(mv0_x,mv0_y)(mv1_x,mv1_y)。具体而言,可以通过根据对象块的邻接块的运动矢量进行预测来推导出各控制点的运动矢量,也可以通过被推导为控制点的运动矢量的预测矢量与从编码数据推导出的差分矢量之和推导出各控制点的运动矢量。
(合并预测)
图9的(a)是表示合并预测部30374中所包括的合并预测参数推导部3036的构成的概略图。合并预测参数推导部3036具备合并候选推导部30361、合并候选选择部30362。需要说明的是,合并候选构成为包括:预测列表利用标志predFlagLX、运动矢量mvLX以及参照图片索引refIdxLX,储存于合并候选列表。索引按照规定的规则被分配至储存于合并候选列表的合并候选。
合并候选推导部30361直接使用已解码的邻接块的运动矢量和参照图片索引refIdxLX来推导出合并候选。
储存于合并候选列表mergeCandList[]的顺序例如是空间合并候选A1、B1、B0、A0、B2、时间合并候选Col、成对合并候选avgK、零合并候选ZK。需要说明的是,不可利用的(块为帧内预测等)参照块不储存于合并候选列表。
合并候选选择部30362通过以下的算式选择合并候选列表中所包括的合并候选中的合并索引merge_idx所示的合并候选N。
N=mergeCandList[merge_idx]
在此,N是表示合并候选的标签,取A1、B1、B0、A0、B2、Col、avgK、ZK等。标签N所示的合并候选的运动信息由(mvLXN[0],mvLXN[1])、predFlagLXN、refIdxLXN表示。
合并候选选择部30362将所选出的合并候选的运动信息(mvLXN[0],mvLXN[1])、predFlagLXN、refIdxLXN选作对象块的帧间预测参数。合并候选选择部30362将所选出的合并候选的的帧间预测参数存储于预测参数存储器307,并且输出至预测图像生成部308。
(AMVP预测)
图9的(b)是表示本实施方式的AMVP预测参数推导部3032的构成的概略图。AMVP预测参数推导部3032具备矢量候选推导部3033和矢量候选选择部3034。矢量候选推导部3033基于参照图片索引refIdxLX,根据预测参数存储器307所存储的已解码的邻接块的运动矢量mvLX推导出预测矢量候选,并储存于预测矢量候选列表mvpListLX[]。
矢量候选选择部3034选择预测矢量候选列表mvpListLX[]的预测矢量候选中的预测矢量索引mvp_LX_idx所示的运动矢量mvpListLX[mvp_LX_idx]作为预测矢量mvpLX。矢量候选选择部3034将所选出的预测矢量mvpLX输出至加法部3038。
需要说明的是,预测矢量候选通过对距对象块预先设定的范围的已解码邻接块的运动矢量进行缩放来推导出。需要说明的是,邻接块除了包括与对象块空间上邻接的块,例如左块、上块以外,还包括与对象块时间上邻接的区域,例如,根据包含与对象块相同的位置,显示时刻不同的块的预测参数获得的区域。
加法部3038将从AMVP预测参数推导部3032输入的预测矢量mvpLX和已解码的差分矢量mvdLX相加,计算出运动矢量mvLX。加法部3038将计算出的运动矢量mvLX输出至预测图像生成部308和预测参数存储器307。
mvLX[0]=mvpLX[0]+mvdLX[0]
mvLX[1]=mvpLX[1]+mvdLX[1]
运动矢量精度模式amvr_mode是切换在AMVP模式下推导出的运动矢量的精度的语法。例如,在amvr_mode=0、1、2时切换1/4像素、1像素、4像素精度。
在将运动矢量的精度设为1/16精度(MVPREC=16)的情况下,参数解码部302可以如下所述地使用由amvr_mode推导出的MvShift(=1<<amvr_mode)来进行逆量化,用于将1/4、1、4像素精度的运动矢量差分变更为1/16像素精度的运动矢量差分。
mvdLX[0]=mvdLX[0]<<(MvShift+2)
mvdLX[1]=mvdLX[1]<<(MvShift+2)
需要说明的是,参数解码部302还可以对以下的语法进行解码来推导出通过上述MvShift移位前的mvdLX[]。
·abs_mvd_greater0_flag
·abs_mvd_minus2
·mvd_sign_flag
然后,参数解码部302通过使用以下的算式从语法解码差分矢量1Mvd[]。
1Mvd[compIdx]=abs_mvd_greater0_flag[compIdx]*(abs_mvd_minus2[compIdx]+2)*(1-2*mvd_sign_flag[compIdx])
而且,参数解码部302在平移MVD的情况(MotionModelIdc[x][y]==0)下将解码后的差分矢量1Mvd[]设定为MvdLX,在控制点MVD的情况(MotionModelIdc[x][y]!=0)下,将解码后的差分矢量1Mvd[]设定为MvdCpLX。
if(如果)(MotionModelIdc[x][y]==0)
mvdLX[x0][y0][compIdx]=1Mvd[compIdx]
else(否则)
mvdCpLX[x0][y0][compIdx]=1Mvd[compIdx]<<2
(运动矢量缩放)
对运动矢量的缩放的推导方法进行说明。当设为运动矢量Mv(参照运动矢量)、包括具有Mv的块的图片PicMv、Mv的参照图片PicMvRef、包括缩放后的运动矢量sMv、具有sMv的块的图片CurPic、sMv所参照的参照图片CurPicRef时,sMv的推导函数MvScale(Mv,PicMv,PicMvRef,CurPic,CurPicRef)通过以下算式表示。
sMv=MvScale(Mv,PicMv,PicMvRef,CurPic,CurPicRef)
=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进行缩放。
(DMVR部30375)
接着,对DMVR部30375所进行的DMVR(Decoder side Motion Vector Refinement:解码器侧运动矢量修正)处理进行说明。DMVR处理是指使用两张参照图片修正运动矢量mvL0和mvL1的处理。
图10是表示DMVR部30375的构成的概略图。使用图10对DMVR部30375所进行的具体的处理的内容进行说明。DMVR部30375具备:修正运动矢量搜索用预测图像生成部303751、初始误差生成部303752、运动矢量搜索部303753以及修正矢量推导部303754。
DMVR部30375参照来自合并预测部30374的
·对象块的左上位置(xCb,yCb)
·对象块的宽度bW
·对象块的高度bH
·1/16像素精度的运动矢量mvL0和mvL1
·参照图片refPicL0L和refPicL1L
推导出用于修正mvL0和mvL1的运动矢量的变化量dmvL0和dmvL1,并输出至帧间预测图像生成部309。
首先,修正运动矢量搜索用预测图像生成部303751参照
·对象子块的左上位置(xSb,ySb)
·亮度的对象子块的宽度sbW
·亮度的对象子块的高度sbH
·运动矢量mvLX(X=0,1)
·参照图片refPicLXL(X=0,1)
推导出具有(sbW)*(sbH)的大小的预测图像predSamplesLXL。
在修正运动矢量搜索用预测图像生成部303751中通过以下的算式推导出运动矢量MvLsX(X=0,1)。
MvLsX[0]=MvLX[0]-32
MvLsX[1]=MvLX[1]-32
此外,DMVR部30375将变量srRange、offsetH[0]、offseW[0]、offsetH[1]、offsetV[1]的值分别设定为2。
将与对象块中的像素位置(xL,yL)对应的以参照块的整数像素为单位的像素的位置设为(xIntL,yIntL)。此外,将以1/16像素为单位的从(xIntL,yIntL)的偏移设为(xFracL,yFracL)。这些坐标从运动矢量(mvLX[0],mvLX[1])的整数分量(mvLX[0]>>4,mvLX[1]>>4)和小数分量(mvLX[0]&15,mvLX[1]&15)推导出,表示参照图片refPicLXL中的以小数精度的像素的位置。对于predSamplesLXL中的位置为(xL,yL)(xL=0,......,sbW-1,yL=0,......,sbH-1)的像素,DMVR部30375通过以下的算式推导出xIntL、yIntL、xFracL以及yFracL。
xIntL=xSb+(mvLX[0]>>4)+xL
yIntL=ySb+(mvLX[1]>>4)+yL
xFracL=mvLX[0]&15
yFracL=mvLX[1]&15
接着,DMVR部30375参照
·(xIntL,yIntL)
·(xFracL,yFracL)
·refPicLXL
推导出predSamplesLXL。
首先,修正运动矢量搜索用预测图像生成部303751通过以下的算式推导出变量shift1、shift2、shift3以及shift4。
shift1=BitDepthY-6
offset1=1<<(shift1-1)
shift2=4
offset2=8
shift3=10-BitDepthY
offset3=1<<(shift3-1)
shift4=BitDepthY-10
需要说明的是,在上述的算式中,BitDepthY为像素比特数。
接着,修正运动矢量搜索用预测图像生成部303751将picW设定为等于图片的宽度pic_width_in_luma_samples的值。此外,修正运动矢量搜索用预测图像生成部303751设定为等于picH的图片的高度pic_height_in_luma_samples的值。
之后,在修正运动矢量搜索用预测图像生成部303751中,如下所述地推导出predSamplesLXL。在以下的说明中,fbL[p]表示用于推导出以1/16像素精度的像素值的滤波系数。fbL[p]的值依赖于以1/16像素精度的位置p(p=1,2,......,15)。位置p等于xFracL或yFracL。p的值增大,由此,fbL[p][0]单调减少,fbL[p][1]的值单调增加。
首先,在修正运动矢量搜索用预测图像生成部303751中,判定xFracL和yFracL是否分别为0。在xFracL和yFracL中的任一个为0的情况下,DMVR部30375根据BitDepthY的值,通过以下的任一算式推导出predSamplesLXL。
predSamplesLXL=(BitDepthY<=10)?(refPicLXL[xIntL][yIntL]<<shift3):((refPicLXL[xIntL][yIntL]+offset3)>>shift4)
在xFracL不为0,yFracL为0的情况下,修正运动矢量搜索用预测图像生成部303751通过以下的算式推导出predSamplesLXL。
predSamplesLXL=(fbL[xFracL][0]*refPicLXL[Clip3(0,picW-1,xIntL)][yIntL]+fbL[xFracL][1]*refPicLXL[Clip3(0,picW-1,xIntL+1)][yIntL]+offset1)>>shift1
在xFracL为0,yFracL不为0的情况下,DMVR部30375通过以下的算式推导出predSamplesLXL。
predSamplesLXL=(fbL[yFracL][0]*refPicLXL[xIntL][Clip3(0,picH-1,yIntL)]+fbL[yFracL][1]*refPicLXL[xIntL][Clip3(0,picH-1,yIntL+1)]+offset1)>>shift1
在xFracL和yFracL均不为0的情况下,修正运动矢量搜索用预测图像生成部303751如下所述地推导出predSamplesLXL。首先,DMVR部30375通过以下的算式推导出temp[n]。temp[]的推导处理变更参照位置进行n次。n=0表示第一次的推导处理,n=1表示第二次的推导处理。
yPosL=Clip3(0,PicH-1,yIntL+n-3)
temp[n]=(fbL[xFracL][0]*refPicLXL[Clip3(0,picW-1,xIntL)][yPosL]+fbL[xFracL][1]*refPicLXL[Clip3(0,picW-1,xIntL+1)][yPosL]+offset1)>>shift1
之后,DMVR部30375通过以下的算式推导出predSamplesLXL。
predSamplesLXL=(fbL[yFracL][0]*temp[0]+fbL[yFracL][1]*temp[1])>>shift2
接着,初始误差生成部303752参照
·对象块的宽度nCbW
·对象块的高度nCbH
·具有(nCbW+4)x(nCbH+4)的大小的两个预测图像predSampleLl和predSampleL2
·变量offsetH[0]、offsetH[1]、offsetV[0]以及offsetV[1]
推导出predSampleL1和predSampleL2中所包括的像素值的绝对差分和(sum ofabsolute differences)的列表Sad1和变量centerSad。
DMVR部30375如以下的算式所示地设定2×9的阵列bC的各元素的值。
bC[0][0]=-1bC[1][0]=-1
bC[0][1]=-1bC[1][1]=0
bC[0][2]=-1bC[1][2]=1
bC[0][3]=0bC[1][3]=-1
bC[0][4]=0bC[1][4]=0
bC[0][5]=0bC[1][5]=1
bC[0][6]=1bC[1][6]=-1
bC[0][7]=1bC[1][7]=0
bC[0][8]=1bC[1][8]=1
初始误差生成部303752通过以下的算式推导出Sad1的元素sadList[i](i=0,......,8)。
[数式1]
Figure BDA0003247891470000201
进而,初始误差生成部303752通过以下的算式推导出centerSad。
[数式2]
Figure BDA0003247891470000211
初始误差生成部303752判定centerSad是否为(bH>>1)*(bW)*4以上。dmvrFlag是表示在为真(TRUE)时进行DMVR处理,为假(FALSE)时不进行DMVR处理的标志。在centerSad小于(bH>>1)*(bW)*4的情况下,误差小,因此,初始误差生成部303752判断为无需进行DMVR处理而将dmvrFlag设为假,不修正运动矢量,进入帧间预测图像生成部309。
在centerSad为(bH>>1)*(bW)*4以上的情况下,初始误差生成部303752将dmvrFlag设为真,运动矢量搜索部303753参照
·搜索点数n
·搜索点的绝对差分和的列表Sad1的元素sadList
推导出索引bestIdx。n为正整数。
以下,对n=9的情况进行说明。需要说明的是,搜索点数n的值可以是9以外的值,在本实施方式说明的方法以外,例如也可以在n=25时单纯地选择sadList的值的最小值。
运动矢量搜索部303753判定是否sadList[1]<sadList[7]和是否sadList[3]<sadList[5]。
在sadList[1]<sadList[7]且sadList[3]<sadList[5]的情况下,DMVR部30375将idx的值设定为0。之后,运动矢量搜索部303753判定是否sadList[1]<sadList[3]。运动矢量搜索部303753在sadList[1]<sadList[3]的情况下将bestIdx的值设定为1,在不是sadList[1]<sadList[3]的情况下将bestIdx的值设定为3。
在不是这样的情况下,在sadList[1]>=sadList[7]且sadList[3]<sadList[5]的情况下,运动矢量搜索部303753将idx的值设定为6。之后,DMVR部30375判定是否sadList[7]<sadList[3]。运动矢量搜索部303753在sadList[7]<sadList[3]的情况下将bestIdx的值设定为7,在不是sadList[7]<sadList[3]的情况下将bestIdx的值设定为3。
在不是这样的情况下,在sadList[1]<sadList[7]且sadList[3]>=sadList[5]的情况下,运动矢量搜索部303753将idx的值设定为2。之后,DMVR部30375判定是否sadList[1]<sadList[5]。DMVR部30375在sadList[1]<sadList[5]的情况下将bestIdx的值设定为1,在不是sadList[1]<sadList[5]的情况下将bestIdx的值设定为5。
在不是这样的情况下,在sadList[1]>=sadList[7]且sadList[3]>=sadList[5]的情况下,运动矢量搜索部303753将idx的值设定为8。之后,DMVR部30375判定是否sadList[7]<sadList[5]。DMVR部30375在sadList[7]<sadList[5]的情况下将bestIdx的值设定为7,在不是sadList[7]<sadList[5]的情况下将bestIdx的值设定为5。
进而,运动矢量搜索部303753判定是否sadList[4]<=sadList[bestIdx]。在sadList[4]<=sadList[bestIdx]的情况下,DMVR部30375将bestIdx的值更新为4。另一方面,在不是sadList[4]<=sadList[bestIdx]的情况下,DMVR部30375不更新bestIdx的值。
进而,运动矢量搜索部303753判定是否sadList[idx]<sadList[bestIdx]。在sadList[idx]<sadList[bestIdx]的情况下,DMVR部30375将bestIdx设置为idx。另一方面,在不是sadList[idx]<sadList[bestIdx]的情况下,运动矢量搜索部303753不更新bestIdx的值。
运动矢量搜索部303753判定bestIdx的值是否为4。在bestIdx的值为4的情况下,运动矢量搜索部303753将halfPelAppliedflag设定为真。
在bestIdx的值不为4的情况下,运动矢量搜索部303753通过以下的算式计算出变量dmvx和dmvy的值。
dmvx=(bestIdx/3-1)
dmvy=(bestIdx%3-1)
进而,运动矢量搜索部303753通过以下的算式更新offsetH和offsetV。
offsetH[0]=offsetH[0]+dmvx,offsetV[0]=offsetV[0]+dmvy
offsetH[1]=offsetH[1]-dmvx,offsetV[1]=offsetV[1]-dmvy
运动矢量搜索部303753使用更新后的offsetH和offsetV,通过与上述的推导Sad1的处理同样的处理推导出Sad2。进而,运动矢量搜索部303753使用Sad2代替Sad1再次推导出bestIdx。
运动矢量搜索部303753判定再次推导出的bestIdx的值是否为4。在bestIdx的值为4的情况下,运动矢量搜索部303753将halfPelAppliedflag设定为真。
在bestIdx的值不为4的情况下,运动矢量搜索部303753通过以下的算式计算出dmvx和dmvy。
dmvx=(bestIdx/3-1),dmvy=(bestIdx%3-1)
进而,DMVR部30375通过以下的算式计算出dmvL0和dmvL1。
dmvL0[0]=16*dmvx,dmvL0[1]=16*dmvy
dmvL1[0]=-16*dmvx,dmvL1[1]=-16*dmvy
在halfPelAppliedflag为真的情况下,运动矢量搜索部303753如下所述地推导出修正后的dmvL0和dmvL1。需要说明的是,以下的sadList在存在Sad2的情况下为Sad2的元素,在不存在Sad2的情况下为Sad1的元素。
首先,运动矢量搜索部303753判定是否sadList[1]+sadList[7]==sadList[4]。在sadList[1]+sadList[7]==sadList[4]的情况和mrSadT+mrSadB-(mrSadC<<1)==0的情况下,运动矢量搜索部303753设为dmv[0]=0。在不是sadList[1]+sadList[7]==sadList[4]的情况下,运动矢量搜索部303753通过以下的算式计算出dmv[0]。
dmv[0]=((sadList[1]-sadList[7])<<3)/(sadList[1]+sadList[7]-(sadList[4]<<1))
接着,修正矢量推导部303754判定是否sadList[3]+sadList[5]==sadList[4]。在sadList[3]+sadList[5]==sadList[4]的情况和mrSadL+mrSadR-(mrSadC<<1)==0的情况下,修正矢量推导部303754设为dmv[1]=0。在不是sadList[3]+sadList[5]==sadList[4]的情况下,修正矢量推导部303754通过以下的算式计算出dmv[1]。
dmv[1]=((sadList[3]-sadList[5])<<3)/(sadList[3]+sadList[5]-(sadList[4]<<1))
进而,修正矢量推导部303754通过以下的算式修正运动矢量mvL0和mvL1。
dmvL0[0]=dmvL0[0]+dmv[0]
dmvL0[1]=dmvL0[1]+dmv[1]
dmvL1[0]=dmvL1[0]-dmv[0]
dmvL1[1]=dmvL1[1]-dmv[1]
DMVR部30375将从合并预测部30374输入的预测矢量mvpLX加上推导出的差分矢量dmvLX计算出运动矢量mvLX。DMVR部30375将mvLX输出至帧间预测图像生成部309。
mvLX[0]=mvpLX[0]+dmvLX[0]
mvLX[1]=mvpLX[1]+dmvLX[1]
需要说明的是,dmvLX[0]和dmvLX[1]的值与sadList的比特数无关地限制在-8到8之间。
(DMVR的判定基准)
dmvrFlag是表示在为真时进行DMVR处理,为假时不进行DMVR处理的标志。
在SPS的标志即表示能进行DMVR处理的标志开启(On)的情况下,初始误差生成部303752将dmvrFlag设为真。在不是这样的情况下,初始误差生成部303752将dmvrFlag设为假。
此外,在该块的merge_flag为真的情况下,初始误差生成部303752可以将dmvrFlag设为真。在不是这样的情况下,初始误差生成部303752将dmvrFlag设为假。
此外,在predFlagL0和predFlagL1双方均为真,就是说,双向预测的情况下,初始误差生成部303752可以将dmvrFlag设为真。在不是这样的情况下,初始误差生成部303752将dmvrFlag设为假。
在该块的mmvd_flag为假且不是MMVD模式的情况下,初始误差生成部303752可以将dmvrFlag设为真。在不是这样的情况下,MMVD模式时,初始误差生成部303752将dmvrFlag设为假。
在DiffPicOrderCnt(currPic,RefPicList[0][refIdxL0])等于DiffPicOrderCnt(RefPicList[1][refIdxL1],currPic)的情况下,就是说,当前的图片currPic处于与L0参照图片RefPicList[0][refIdxL0]和L1参照图片RefPicList[1][refIdxL1]等距离插值的位置关系的情况下,初始误差生成部303752可以将dmvrFlag设为真。在不是这样的情况下,初始误差生成部303752将dmvrFlag设为假。在此,DiffPicOrderCnt()是如下所示地推导出两张图像的POC(Picture Order Count:图片的显示顺序)的差分的函数。
DiffPicOrderCnt(picA,picB)=PicOrderCnt(picA)-PicOrderCnt(picB)
需要说明的是,在DiffPicOrderCnt(currPic,RefPicList[0][refIdxL0])*DiffPicOrderCnt(currPic,RefPicList[1][refIdxL1])<0的情况下,在仅处于插值的位置关系的情况下,初始误差生成部303752可以将dmvrFlag设为真,在不是这样的情况下,可以将dmvrFlag设为假。
此外,在处理的块的大小为特定以下的情况下,初始误差生成部303752可以将dmvrFlag设为假。例如,在bH为8以上的情况且bH*bW为64的情况下,初始误差生成部303752可以将dmvrFlag设为真。在不是这样的情况下,初始误差生成部303752将dmvrFlag设为假。
图11是表示DMVR部30375中的处理的流程的流程图。在本实施方式中,除了上述的判定基准之外,如图11所示,追加仅在未应用后述的GBI处理时应用DMVR处理这样的条件。
具体而言,首先,DMVR部30375执行如上所述说明过的dmvrFlag的判定处理(S1101)。接着,DMVR部30375进行gbiIdx是否为0的判定(S1102)。如后文所述,在gbiIdex为非零的值时基于表gbiWLut进行不均等的加权预测。在gbiIdx为0的情况下,除了将dmvrFlag设为真的条件之外,在gbiIdx为非零的情况下,将dmvrFlag设为假(S1103)。
进而,DMVR部30375判定dmvrFlag是否为真(S1104),如果为真,则执行DMVR处理(S1105),如果为假,则不执行该处理。
在应用GBI预测的情况下,应用加权预测,因此,能考虑不准确地评估误差,能通过限制应用条件来降低整体的处理量。
同样,在后述的加权预测中,应用DMVR处理的L0预测和L1预测中的任一个进行加权预测的情况下,将dmvrFlag设为假。具体而言,在luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]双方均为假的情况下,将dmvrFlag加入真的条件,在不是这样的情况下,将dmvrFlag设为假其中,luma_weight_l0_flag[refIdxL0]表示L0预测图片中是否存在亮度的权重系数w0和偏移o0,luma_weight_l1_flag[refIdxL1]表示在L1预测图片中是否存在亮度的权重系数w1和偏移o1。
(通过DMVR进行的基于误差阈值处理的BDOF的判定)
在DMVR中,进行求出L0预测图像和L1预测图像的误差的处理,但是,预先判定是否基于此时的误差的值执行在后段进行的后述的BDOF处理。
图12是说明通过DMVR进行基于误差阈值处理的BDOF的判定的处理的流程图。
首先,初始误差生成部303752预先将bdofFlag设置为真(S1201)。接着,在初始误差生成部303752中推导出centerSad(S1202),判定centerSad的值是否为阈值(bH>>1)*bW*4的值以上(S1203)。在centerSad的值小于阈值的情况下,初始误差生成部303752判定为误差小,将表示是否进行BDOF处理的bdofFlag设置为假(S1204),设为不预先进行BDOF处理。该判定是与上述的初始误差生成部30752同样的判定,因此,跳过运动矢量搜索部303753和修正矢量推导部303754,不进行DMVR处理。在centerSad的值为阈值以上的情况下,运动矢量搜索部303753进行修正运动矢量搜索(S1205),其结果是,修正矢量推导部303754判定作为最小的bestIdx的SAD的值的sadList[bestIdx]的值是否小于阈值(bH>>1)*bW*8的值(S1206)。在sadList[bestIdx]的值小于阈值的情况下,修正矢量推导部303754判定为误差小,将表示是否进行BDOF处理的bdofFlag设置为假(S1207),设为不预先进行BDOF处理。
需要说明的是,(S1206)的阈值设为与(S1203)的阈值相同或更大的值。
在DMVR处理中,为了进行修正运动矢量的搜索,需要进行求出L0预测图像和L1预测图像的误差的处理,另一方面,在BDOF处理中误差小的情况下没有效果,因此通过加上这样的处理,无需追加追加的误差计算就能进行是否进行BDOF的判定。
在后述的BDOF部中,判定bdofFlag是否为真(S1208),如果为是(Yes),则在帧间预测参数解码部303中进行BDOF处理(S1209)。如果为否(No),则在该块中判定不进行BDOF处理。
(三角形预测)
接着,对三角形预测进行说明。在三角形预测中,以对角线或相反的对角线为边界,将对象CU分割成两个三角形的预测单位。各三角形预测单位中的预测图像通过对对象CU(包括三角形预测单位的矩形块)的预测图像的各像素进行与像素的位置对应的加权并实施掩码处理来推导出。例如,能通过乘以将矩形区域内的三角形区域的像素设为1,将三角形以外的区域设为0的掩码,从矩形图像推导出三角形图像。对夹住对角线的双方的区域应用预测图像的自适应的加权处理,通过使用两个预测图像的自适应的加权处理来推导出对象CU(矩形块)的一个预测图像。将该处理称为三角形合成处理。变换(逆变换)和量化(逆量化)处理应用于整个对象CU。需要说明的是,三角形预测仅在合并预测模式或跳过模式的情况下应用。
三角形预测部30377推导出与用于三角形预测的两个三角形区域对应的预测参数,输出至帧间预测图像生成部309。在三角形预测中,为了处理的简略化,也可以是不使用双向预测的构成。在该情况下,在一个三角形区域中推导出单向预测的帧间预测参数。需要说明的是,两个预测图像的推导和使用预测图像的合成在运动补偿部3091、三角形合成部30952中进行。
(MMVD预测部30376)
MMVD预测部30376进行MMVD(Merge with Motion Vector Differece)模式下的处理。MMVD模式是通过将规定距离和规定方向的差分矢量与从合并候选推导出的运动矢量(从邻接块的运动矢量等推导出的运动矢量)相加来获得运动矢量的模式。在MMVD模式下,MMVD预测部30376通过使用合并候选,并且将差分矢量的值域限制在规定距离(例如8种)和规定方向(例如4个方向、8个方向等)来高效地推导出运动矢量。
环路滤波器305是设于编码环路内的滤波器,是去除块失真、振铃失真来改善画质的滤波器。环路滤波器305对加法部312所生成的CU的解码图像实施去块滤波、取样自适应偏移(SAO)、自适应环路滤波(ALF)等滤波。
参照图片存储器306将加法部312所生成的CU解码图像按每个对象图片和对象CU存储于预定的位置。
预测参数存储器307将预测参数按每个解码对象的CTU或CU存储于预定的位置。具体而言,预测参数存储器307存储由参数解码部302解码后的参数和由熵解码部301解码后的预测模式predMode等。
预测图像生成部308被输入预测模式predMode、预测参数等。此外,预测图像生成部308从参照图片存储器306中读出参照图片。预测图像生成部308在预测模式predMode所指示的预测模式下,使用预测参数和读出的参照图片(参照图片块)来生成块或子块的预测图像。在此,参照图片块是指参照图片上的像素的集合(通常为矩形,因此称为块),是为了生成预测图像而参照的区域。
(帧间预测图像生成部309)
在预测模式predMode指示帧间预测模式的情况下,帧间预测图像生成部309使用从帧间预测参数解码部303输入的帧间预测参数和读出的参照图片,通过帧间预测来生成块或子块的预测图像。
图13是表示本实施方式的预测图像生成部308中所包括的帧间预测图像生成部309的构成的概略图。帧间预测图像生成部309构成为包括运动补偿部(预测图像生成装置)3091和合成部3095。
(运动补偿)
运动补偿部3091(插补图像生成部)基于从帧间预测参数解码部303输入的帧间预测参数(预测列表利用标志predFlagLX、参照图片索引refIdxLX、运动矢量mvLX),从参照图片存储器306中读出处于在由参照图片索引refIdxLX指定的参照图片RefPicLX中的以对象块的位置为起点移位了运动矢量mvLX的位置的块,由此生成插补图像(运动补偿图像)。在此,在运动矢量mvLX的精度并非整数精度的情况下,实施称为运动补偿滤波的用于生成小数位置的像素的滤波,生成插补图像。
运动补偿部3091首先通过以下的算式推导出与预测块内坐标(x,y)对应的整数位置(xInt,yInt)和相位(xFrac,yFrac)。
xInt=xPb+(mvLX[0]>>(log2(MVPREC)))+x
xFrac=mvLX[0]&(MVPREC-1)
yInt=yPb+(mvLX[1]>>(log2(MVPREC)))+y
yFrac=mvLX[1]&(MVPREC-1)
在此,(xPb,yPb)为bW*bH大小的块的左上坐标,x=0,......,bW-1,y=0,......,bH-1,MVPREC表示运动矢量mvLX的精度(1/MVPREC像素精度)。例如可以是MVPREC=16。
运动补偿部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
(合成部)
合成部3095参照由运动补偿部3091输入的插补图像、由帧间预测参数解码部303输入的帧间预测参数以及由帧内预测图像生成部310输入的帧内图像来生成预测图像,将所生成的预测图像输出至加法部312。
合成部3095具备:组合的帧内/帧间(Combinedintra/inter)合成部30951、三角形合成部30952、OBMC部30953、BDOF部30956。
(组合的帧内/帧间合成处理)
组合的帧内/帧间合成部30951通过复合地使用AMVP中的单向预测、跳过模式、合并模式以及帧内预测来生成预测图像。
(三角形合成处理)
三角形合成部30952生成使用了上述的三角形预测的预测图像。
(OBMC处理)
OBMC部30953使用OBMC(Overlapped block motion compensation:重叠块运动补偿)处理生成预测图像。OBMC处理中包括以下的处理。
·利用使用附加于对象子块的帧间预测参数生成的插补图像(PU插补图像)和使用对象子块的邻接子块的运动参数生成的插补图像(OBMC插补图像)来生成对象子块的插补图像(运动补偿图像)。
·通过对OBMC插补图像和PU插补图像进行加权平均来生成预测图像。
(加权预测部30954)
加权预测部309454通过将运动补偿图像PredL0和PredL1与权重系数相乘,生成块的预测图像。在预测列表利用标志的一方(predFlagL0或predFlagL1)为1(单向预测)且不使用权重预测的情况下,进行使运动补偿图像PredLX(LX为L0或L1)与像素比特数bitDepth匹配的以下的算式的处理。
Pred[x][y]=CIip3(0,(1<<bitDepth)-1,(PredLX[x][y]+offset1)>>shift1)
在此,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)
在此,shift2=Max(3,15-bitDepth),offset2=1<<(shift2-1)。以下,也将该处理称为通常的双向预测。
而且,在单预测且表示在L0的参照图片中是否存在权重预测系数w0和偏移o0的标志(亮度的情况下为luma_weight_l0_flag,色差的情况下为chroma_weight_l0_flag)开启的情况下,在L0预测的情况下,加权预测部30954从编码数据推导出权重预测系数w0和偏移o0,进行以下的算式的处理。
Pred[x][y]=Clip3(0,(1<<bitDepth)-1,((PredL0[x][y]*w0+(1<<(log2WD-1)))>>log2WD)+o0)
在L1预测的情况下,在表示L1的参照图片中是否存在权重预测系数w1和偏移o1的标志(亮度的情况下为luma_weight_l1flag,色差的情况下为chroma_weight_l1flag)开启的情况下,加权预测部30954从编码数据推导出权重预测系数w1和偏移o1,进行以下的算式的处理。
Pred[x][y]=Clip3(0,(1<<bitDepth)-1,((PredL1[x][y]*w1+(1<<(log2WD-1)))>>log2WD)+o1)
在此,log2WD是明确地将分别按亮度和色差通过切片报头发送的Log2WeightDenom+shift1的值合计得到的变量。
(加权双向预测处理)
而且,在双预测BiPred且表示是否存在权重预测系数和偏移的标志(亮度的情况下为luma_weight_l0_flag、luma_weight_l1_flag,色差的情况下为chroma_weight_l0_flag、chroma_weight_l1flag)进行权重预测的情况下,加权预测部30954从编码数据推导出权重预测系数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))
(GBI部30955)
在上述的加权预测中,对将插补图像乘以权重系数来生成预测图像的示例进行了说明。在此,对除了将插补图像乘以权重系数来生成预测图像之外的示例进行说明。详细而言,对使用广义双向预测(Generalized bi-prediction,以下称为GBI预测)生成预测图像的处理进行说明。在GBI预测中,将双向预测中的L0预测图像PredL0和L1预测图像PredL1乘以权重系数(w0,w1)来生成预测图像Pred。
此外,在使用GBI预测生成预测图像的情况下,GBI部30955以编码单元为单位切换权重系数(w0,w1)。即,帧间预测图像生成部309的GBI部30954按每个编码单元设定权重系数。在GBI预测中,预先规定有多个权重系数候选,gbiIdx是表示表gbiWLut中所包括的多个权重系数候选中的在对象块使用的权重系数的索引。
GBI部30955对表示是否使用GBI预测的标志gbiAppliedFlag进行校验,如果为假(FALSE),则运动补偿部3091使用以下的算式生成预测图像。
Pred[x][y]=Clip3(0,(1<<bitDepth)-1,(PredL0[x][y]+PredL1[x][y]+offset2)>>shift2)
在此,gbiAppliedFlag的初始状态为假。GBI部30955在为SPS的标志且表示能进行GBI处理的标志打开(On),并为双向预测的情况下将gbiAppliedFlag设定为真(TRUE)。进而,作为追加(AND)的条件,可以在作为GBI预测的权重系数的表gbiWLut的索引的gbiIdx不为0(L0预测图像与L1预测图像的权重相等的情况下的索引的值)的情况下,将gbiAppliedFlag设为真。进而,作为追加(AND)的条件,可以在CU的块大小为一定以上的情况下,将gbiAppliedFlag设为真。
GBI部30955在gbiAppliedFlag为真的情况下,根据权重w0、w1和PredL0、PredL1,通过以下的算式推导出预测图像Pred。
Pred[x][y]=Clip3(0,(1<<bitDepth)-1,(w0*PredL0[x][y]+w1*PredL1[x][y]+offset3)>>(shift2+3))
在此,权重系数w1是从表iWLut[]={4,5,3,10,-2},通过由语法明确地指示的gbiIdx推导出的系数。权重系数w0设为(8-w1)。需要说明的是,gbiIdx=0时,w0=w1=4,与通常的双向预测等价。
shift1、shift2、offset1、offset2通过以下的算式来推导。
shift1=Max(2,14-bitDepth)
shift2=Max(3,15-bitDepth)=shift1+1
offset1=1<<(shift1-1)
offset2=1<<(shift2-1)
offset3=1<<(shift2+2)
需要说明的是,有多个具有权重系数不同的组合的表gbiWLut,GBI部30955可以根据图片结构是否为LowDelay(LB)来切换用于权重系数的选择的该表。
在AMVP预测模式下使用GBI预测的情况下,帧间预测参数解码部303对gbiIdx进行解码,发送至GBI部30955。此外,在合并预测模式下使用GBI预测的情况下,帧间预测参数解码部303对合并索引merge_idx进行解码,合并候选推导部30361推导出各合并候选的gbiIdx。具体而言,合并候选推导部30361将用于合并候选的推导的邻接块的权重系数用作用于对象块的合并候选的权重系数。就是说,在合并模式下,将过去使用过的权重系数继承为对象块的权重系数。
(使用了GBI预测的预测模式的选择)
接着,参照图14,对使用了运动图像解码装置31中的GBI预测的预测模式的选择处理进行说明。图14是表示运动图像解码装置31中的预测模式的选择处理的流程的一个示例的流程图。
如图14所示,帧间预测参数解码部303首先对跳过标志进行解码(S1401)。在指示跳过标志为跳过模式的情况下(在S1402中为是(YES)),预测模式为合并模式(S1403),帧间预测参数解码部303对合并索引进行解码(S14031),在使用GBI预测的情况下,GBI部30955将通过合并候选推导出的权重系数推导为GBI预测的权重系数。
在未指示跳过标志为跳过模式的情况下(S1402中为否(NO)),帧间预测参数解码部303对合并标志进行解码(S1407)。在指示合并标志为合并模式的情况下(在S1408中为是),预测模式为合并模式(S1403),帧间预测参数解码部303对合并索引进行解码(S14031)。在使用GBI预测的情况下,GBI部30955将通过合并候选推导出的权重系数推导为GBI预测的权重系数。
在未指示合并标志为合并模式的情况下(在1408中为否),预测模式为AMVP模式(S1409)。
在AMVP模式下,帧间预测参数解码部303对帧间预测标识符inter_pred_idc进行解码(S14090)。接着,帧间预测参数解码部303对差分矢量mvdLX进行解码(S14091)。接着,帧间预测参数解码部303对gbiIdx进行解码(S14092),在使用GBI预测的情况下,GBI部30955从gbiWLut的表的权重系数候选中选择GBI预测的权重系数w1。
(BDOF预测)
接着,对使用了BDOF部30956所进行的BDOF处理的预测(BDOF预测)的详细内容进行说明。BDOF部30956在双向预测模式下参照两个预测图像(第一预测图像和第二预测图像)和梯度校正项生成预测图像。
图15是说明推导预测图像的处理的流程的流程图。
在帧间预测参数解码部303判定为L0的单向预测的情况下(在S1501中inter_pred_idc为0),运动补偿部3091生成L0预测图像PredL0[x][y](S1502)。在帧间预测参数解码部303判定为L1的单向预测的情况下(在S1501中inter_pred_idc为1),运动补偿部3091生成L1预测图像PredLl[x][y](S1503)。另一方面,在帧间预测参数解码部303判定为双向预测模式的情况下(在S1501中inter_pred_idc为2),接着进行以下的S1504的处理。在S1504中,合成部3095参照表示是否进行BDOF处理的bioAvailableFlag来判定是否进行BDOF处理。在bioAvailableFlag表示真时,BDOF部30956执行BDOF处理来生成双向预测图像(S1506)。在bioAvailableFlag表示假时,合成部3095通过通常的双方预测图像生成来生成预测图像(S1505)。
帧间预测参数解码部303可以在L0参照图像refImgL0和L1参照图像refimgL1为不同的参照图像,并且相对于对象图片两张图片为相反方向的情况下对bioAvailableFlag推导出真。具体而言,在将对象图像设为currPic时,满足DiffPicOrderCnt(currPic,refImgL0)*DiffPicOrderCnt(currPic,refImgL1)<0的条件的情况下,bioAvailableFlag表示真。
在此,DiffPicOrderCnt()是如下所示地推导出两张图像的POC(Picture OrderCount:图片的显示顺序)的差分的函数。
DiffPicOrderCnt(picA,picB)=PicOrderCnt(picA)-PicOrderCnt(picB)
可以追加对象块的运动矢量不是以子块为单位的运动矢量这一条件作为bioAvailableFlag表示真的条件。
此外,可以追加对象图片的运动矢量不是以子块为单位的运动矢量这一条件作为bioAvailableFlag表示真的条件。
此外,也可以追加两个预测块的L0预测图像与L1预测图像的绝对差分和为规定的值以上这一条件作为bioAvailableFlag表示真的条件。
此外,也可以加上预测图像生成模式为以块为单位的预测图像生成模式这一条件作为bioAvailableFlag表示真的条件。
此外,也可以在加权预测中加上L0预测和L1预测中的任一个不进行加权预测这一条件作为bioAvailableFlag表示真的条件。具体而言,在luma_weight_l0_flag[refIdxL0]和luma_weight_l1flag[refIdxL1]双方均为假的情况下,设为bioAvailableFlag表示真的条件,其中,luma_weight_l0_flag[refIdxL0]表示L0预测图片中是否存在亮度的权重系数w0和偏移o0,luma_weight_l1_flag[refIdxL1]表示在L1预测图片中是否存在亮度的权重系数w1和偏移o1。
图16是表示BDOF部30956的构成的概略图。使用图16对BDOF部30956所进行的具体的处理的内容进行说明。BDOF处理部30956具备:L0、L1预测图像生成部309561、梯度图像生成部309562、相关参数计算部309563、运动补偿修正值推导部309564以及BDOF预测图像生成部309565。BDOF部30956根据从运动补偿部3091接收到的插补图像和从帧间预测参数解码部303接收到的帧间预测参数生成预测图像,并将所生成的预测图像输出至加法部312。需要说明的是,将从梯度图像推导出运动补偿修正值modBIO(运动补偿修正图像),修正并推导出PredL0、PredL1的预测图像的处理称为双向梯度变化处理。
图17是表示执行填充的区域的一个示例的图。首先,在L0、L1预测图像生成部309561中生成用于BDOF处理的L0、L1预测图像。在BDOF部30956中,基于图17所示的每个CU单位或子CU单位的L0、L1预测图像进行BDOF处理,但需要格外留出作为对象的CU或子CU的周围2像素的插补图像信息,用于求出梯度。该部分的插补图像信息不使用通常的插值滤波器而使用邻接的整数像素来生成,用于后述的梯度图像生成。在除此以外的情况下,该部分与图片的外侧同样地复制并使用周围的像素作为填充区域。此外,BDOF处理的单位是CU单位或子CU单位以下的NxN像素,处理本身使用加上周围1像素的(N+2)×(N+2)的像素进行处理。
在梯度图像生成部309562生成梯度图像。在梯度变化(Optical Flow)中假定各点的像素值不变,仅其位置变化。这能使用水平方向的像素值I的变化(水平梯度值lx)和其位置的变化Vx、垂直方向的像素值I的变化(垂直梯度值ly)和其位置的变化Vy以及像素值I的时间变化lt通过以下来表示。
lx*Vx+ly*Vy+lt=0
以下,将位置的变化(Vx,Vy)称为校正权重矢量(u,v)。
具体而言,梯度图像生成部309562通过以下算式推导出梯度图像lx0、ly0、lx1、ly1。lx0和lx1表示沿水平方向的梯度,ly0和ly1表示沿垂直方向的梯度。
lx0[x][y]=(PredL0[x+1][y]-PredL0[x-1][y])>>shift1
ly0[x][y]=(PredL0[x][y+1]-PredL0[x][y-1])>>shift1
lx1[x][y]=(PredL1[x+1][y]-PredL1[x-1][y])>>shift1
ly1[x][y]=(PredL1[x][y+1]-PredL1[x][y-1])>>shift1
在此,shift1=Max(2,14-bitDepth)。
接着,相关参数计算部309563使用每个CU内的NxN像素的每个块的周围1像素推导出(N+2)x(N+2)像素的梯度积和s1、s2、s3、s5、s6。
s1=sum(phiX[x][y]*phiX[x][y])
s2=sum(phiX[x][y]*phiY[x][y])
s3=sum(-theta[x][y]*phiX[x][y])
s5=sum(phiY[x][y]*phiY[x][y])
s6=sum(-theta[x][y]*phiY[x][y])
在此,sum(a)表示针对(N+2)x(N+2)像素的块内的坐标(x,v)的a的总和。此外,
theta[x][y]=-(PredL1[x][y]>>shift4)+(PredL0[x][y]>>shift4)
phiX[x][y]=(lx1[x][y]+lx0[x][y])>>shift5
phiY[x][y]=(ly1[x][y]+ly0[x][y])>>shift5
在此,设为
shift4=Min(8,bitDepth-4)
shift5=Min(5,bitDepth-7)。
接着,运动补偿修正值推导部309564使用推导出的梯度积和s1、s2、s3、s5、s6推导出以NxN像素为单位的校正权重矢量(u,v)。
u=(s3<<3)>>log2(s1)
v=((s6<<3)-((((u*s2m)<<12)+u*s2s)>>1))>>log2(s5)
在此s2m=s2>>12,s2s=s2&((1<<12)-1)。
需要说明的是,可以如下所示地进一步使用裁剪来限制u、v的范围。
u=s1>0?Clip3(-th,th,-(s3<<3)>>floor(log2(s1))):0
v=s5>0?Clip3(-th,th,((s6<<3)-((((u*s2m)<<12)+u*s2s)>>1))>>floor(log2(s5))):0
在此,设为th=Max(2,1<<(13-bitDepth))。th的值需要与shift1联动地计算,因此,考虑像素比特长度bitDepth大于12比特的情况。
运动补偿修正值推导部309564使用以NxN像素为单位的校正权重矢量(u,v)和梯度图像lx0、ly0、lx1、ly1来推导出NxN像素的运动补偿修正值的modBIO[x][y]。
可以使用modBIO[x][y]=((lx1[x][y]-lx0[x][y])*u+(ly1[x][y]-ly0[x][y])*v+1)>>1(算式A3)或舍入函数如下所示地推导出modBIO。
modBIO[x][y]=Round(((lx1[x][y]-lx0[x][y])*u)>>1)+Round(((ly1[x][y]-ly0[x][y])*v)>>1)
BDOF预测图像生成部309565使用上述的参数通过以下算式推导出NxN像素的预测图像的像素值Pred。
此时,BDOF预测图像生成部309565使用上述的参数通过以下算式推导出NxN像素的预测图像的像素值Pred。
Pred[x][y]=Clip3(0,(1<<bitDepth)-1,(PredL0[x][y]+PredL1[x][y]+modBIO[x][y]+offset2)>>shift2)
在此,shift2=Max(3,15-bitDepth),offset2=1<<(shift2-1)。
然后,BDOF预测图像生成部309565将所生成的块的预测图像输出至加法部312。
逆量化/逆变换部311将从熵解码部301输入的量化变换系数逆量化来求出变换系数。该量化变换系数是在编码处理中对预测误差进行DCT(Discrete Cosine Transform、离散余弦变换)、DST(Discrete Sine Transform、离散正弦变换)等频率变换并量化而得到的系数。逆量化/逆变换部311对求出的变换系数进行逆DCT、逆DST等逆频率变换,计算预测误差。逆量化/逆变换部311将预测误差输出至加法部312。逆量化/逆变换部311在skip_flag为1的情况或cu_cbp为0的情况下将预测误差全部设定为0。
加法部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(图7)相同,在此省略其说明。计算出的预测误差输入至加法部106。
熵编码部104中,从变换/量化部103输入量化变换系数,从参数编码部111输入编码参数。在编码参数中,例如有参照图片索引refIdxLX、预测矢量索引mvp_LX_idx、差分矢量mvdLX、运动矢量精度模式amvr_mode、预测模式predMode以及合并索引merge_idx等的代码。
熵编码部104对分割信息、预测参数、量化变换系数等进行熵编码生成编码流Te并输出。
参数编码部111具备:未图示的标头编码部1110、CT信息编码部1111、CU编码部1112(预测模式编码部)以及参数编码部112。CU编码部1112还具备TU编码部1114。
以下,对各模块的概略动作进行说明。参数编码部111进行报头信息、分割信息、预测信息、量化变换系数等参数的编码处理。
CT信息编码部1111根据编码数据对QT、MT(BT、TT)分割信息等进行编码。
CU编码部1112对CU信息、预测信息、TU分割标志split_transform_flag、CU残差标志cbf_cb、cbf_cr、cbf_luma等进行编码。
TU编码部1114在TU中包括预测误差的情况下,对QP更新信息(量化校正值)和量化预测误差(residual_coding)进行编码。
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。
(参数编码部的构成)
参数编码部112基于从编码参数确定部110输入的预测参数来推导出帧间预测参数。参数编码部112包括与由帧间预测参数解码部303推导出帧间预测参数的构成部分相同的构成。
图19是表示参数编码部112的构成的概略图。对参数编码部112的构成进行说明。如图19所示,参数编码部112构成为包括:参数编码控制部1121、合并预测部30374、子块预测部(仿射预测部)30372、DMVR部30375、MMVD预测部30376、三角形预测部30377、AMVP预测参数推导部3032、减法部1123。合并预测部30374具备合并预测参数推导部3036。参数编码控制部1121包括合并索引推导部11211和矢量候选索引推导部11212。此外,参数编码控制部1121通过合并索引推导部11211推导出merge_idx、affine_flag、base_candidate_idx、distance_idx、direction_idx等,通过矢量候选索引推导部11212推导出mvpLX等。也可以将合并预测参数推导部3036、AMVP预测参数推导部3032、仿射预测部30372、MMVD预测部30376、三角形预测部30377统称为运动矢量推导部(运动矢量推导装置)。参数编码部112将运动矢量mvLX、参照图片索引refIdxLX、帧间预测标识符inter_pred_idc或表示这些的信息输出至预测图像生成部101。此外,参数编码部112将merge_flag、skip_flag、merge_idx、inter_pred_idc、refIdxLX、mvp_lX_idx、mvdLX、amvr_mode、affine_flag输出至熵编码部104。
图20是表示运动图像编码装置11中的搜索距离的候选数和推导方向的候选数的一个示例的图。参数编码控制部1121推导出表示差分矢量的参数(base_candidate_idx、distance_idx、direction_idx等),输出至MMVD预测部30376。参照图20对参数编码控制部1121中的差分矢量推导进行说明。图20的中央的黑圆点是预测矢量mvpLX所指的位置,以该位置为中心,在4个(上、下、左、右)方向分别搜索8个搜索距离。mvpLX是合并候选列表的起点和第二个候选的运动矢量,分别对其实施搜索。有两个合并候选列表的预测矢量(列表的第一个和第二个),搜索距离为8,搜索方向为4,因此,在mvdLX中有64种候选。通过base_candidate_idx、distance_idx以及direction_idx来表示所搜索之中成本最小的mvdLX。
如此,MMVD模式是对限制为以预测矢量为中心的候选点进行搜索,推导出适当的运动矢量的模式。
合并索引推导部11211推导出合并索引merge_idx并输出至合并预测参数推导部3036(合并预测部)。在MMVD模式下,合并索引推导部11211将合并索引merge_idx的值设定为与base_candidate_idx的值相同的值。矢量候选索引推导部11212推导出预测矢量索引mvp_lX_idx。
合并预测参数推导部3036基于合并索引merge_idx推导出帧间预测参数。
AMVP预测参数推导部3032基于运动矢量mvLX推导出预测矢量mvpLX。AMVP预测参数推导部3032将预测矢量mvpLX输出至减法部1123。需要说明的是,参照图片索引refIdxLX和预测矢量索引mvp_lX_idx被输出至熵编码部104。
仿射预测部30372推导出子块的帧间预测参数(仿射预测参数)。
减法部1123从由编码参数确定部110输入的运动矢量mvLX中减去作为AMVP预测参数推导部3032的输出的预测矢量mvpLX,生成差分矢量mvdLX。差分矢量mvdLX被输出至熵编码部104。
加法部106将从预测图像生成部101输入的块预测图像的像素值和从逆量化/逆变换部105输入的预测误差按每个像素相加来生成解码图像。加法部106将生成的解码图像存储于参照图片存储器109。
环路滤波器107对加法部106所生成的解码图像,实施去块滤波、SAO、ALF。需要说明的是,环路滤波器107不一定包括上述三种滤波器,例如也可以是仅包括去块滤波器的构成。
预测参数存储器108将编码参数确定部110所生成的预测参数按每个对象图片和CU存储于预定的位置。
参照图片存储器109将环路滤波器107所生成的解码图像按每个对象图片和CU每存储于预定的位置。
编码参数确定部110选择编码参数的多个集合中的一个集合。编码参数是指上述的QT、BT或TT分割信息、预测参数或与它们关联生成的作为编码对象的参数。预测图像生成部101使用这些编码参数来生成预测图像。
编码参数确定部110对多个集合的每一个集合计算出表示信息量的大小和编码误差的RD成本值。编码参数确定部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等可移动介质、内置于计算机系统的硬盘等存储装置。而且,“计算机可读记录介质”也可以包括:像经由互联网等网络或电话线路等通信线路来发送程序的情况下的通信线那样短时间内、动态地保存程序的记录介质;以及像作为该情况下的服务器、客户端的计算机系统内部的易失性存储器那样保存程序固定时间的记录介质。此外,上述程序可以是用于实现上述功能的一部分的程序,也可以是能通过与已记录在计算机系统中的程序进行组合来实现上述功能的程序。
此外,也可以将上述的实施方式中的运动图像编码装置11、运动图像解码装置31中的一部分或全部作为LSI(Large Scale Integration:大规模集成电路)等集成电路而实现。运动图像编码装置11、运动图像解码装置31的各功能块可以单独地处理器化,也可以将一部分或全部集成来处理器化。此外,集成电路化的方法并不限于LSI,也可以通过专用电路或通用处理器来实现。此外,在随着半导体技术的进步而出现代替LSI的集成电路化的技术的情况下,也可以使用基于该技术的集成电路。
以上,参照附图对该发明的一实施方式详细地进行了说明,但具体构成并不限于上述实施方式,在不脱离该发明的主旨的范围内,可以进行各种设计变更等。
〔应用例〕
上述运动图像编码装置11和运动图像解码装置31可以搭载于进行运动图像的发送、接收、记录、再现的各种装置而利用。需要说明的是,运动图像可以是通过摄像机等拍摄的自然运动图像,也可以是通过计算机等生成的人工运动图像(包括CG和GUI)。
首先,参照图2对能将上述的运动图像编码装置11和运动图像解码装置31用于运动图像的发送和接收的情况进行说明。
图2的(a)是表示搭载有运动图像编码装置11的发送装置PROD_A的构成的框图。如图2的(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。在图2的(a)中举例示出了发送装置PROD_A具备全部这些的构成,但也可以省略一部分。
需要说明的是,记录介质PROD_A5可以是记录有未被编码的运动图像的介质,也可以是记录有以与传输用的编码方式不同的记录用的编码方式进行编码后的运动图像的介质。在后者的情况下,使按照记录用的编码方式对从记录介质PROD_A5读出的编码数据进行解码的解码部(未图示)介于记录介质PROD_A5与编码部PROD_A1之间为好。
图2的(b)是表示搭载有运动图像解码装置31的接收装置PROD_B的构成的框图。如图2的(b)所示,接收装置PROD_B具备:接收调制信号的接收部PRODB1、通过对接收部PRODB1所接收到的调制信号进行解调而得到编码数据的解调部PROD_B2以及通过对解调部PROD_B2所得到的编码数据进行解码而得到运动图像的解码部PROD_B3。上述的运动图像解码装置31被用作该解码部PROD_B3。
接收装置PROD_B作为解码部PROD_B3所输出的运动图像的输出目的地,也可以进一步具备显示运动图像的显示器PROD_B4、用于记录运动图像的记录介质PROD_B5以及用于将运动图像输出至外部的输出端子PROD_B6。在图2的(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这两方的功能。
接着,参照图3,对能将上述的运动图像编码装置11和运动图像解码装置31用于运动图像的记录和再现的情况进行说明。
图3的(a)是表示搭载有上述的运动图像编码装置11的记录装置PROD_C的构成的框图。如图3的(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。在图3的(a)中举例示出了记录装置PROD_C具备全部这些的构成,但也可以省略一部分。
需要说明的是,接收部PROD_C5可以接收未被编码的运动图像,也可以接收以与记录用的编码方式不同的传输用的编码方式编码后的编码数据。在后者的情况下,使对以传输用的编码方式编码后的编码数据进行解码的传输用解码部(未图示)介于接收部PROD_C5与编码部PROD_C1之间为好。
作为这种记录装置PROD_C,例如可举出:DVD记录器、BD记录器、HDD(HardDiskDrive)记录器等(在该情况下,输入端子PROD_C4或接收部PROD_C5为运动图像的主要的输入源)。此外,便携式摄像机(在该情况下,摄像机PROD_C3为运动图像的主要的输入源)、个人计算机(在该情况下,接收部PROD_C5或图像处理部C6为运动图像的主要的输入源)、智能手机(在该情况下,摄像机PROD_C3或接收部PROD_C5为运动图像的主要的输入源)等也是这种记录装置PROD_C的一个示例。
图3的(b)是表示搭载有上述的运动图像解码装置31的再现装置PROD_D的构成的框图。如图3的(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。在图3的(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(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-AddedNetwork:增值网络)、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:数字生活网络联盟,注册商标)、便携电话网、卫星线路、地面数字广播网等无线中都可利用。需要说明的是,本发明的实施方式即使以通过电子传输来将上述程序代码具体化的嵌入载波的计算机数据信号的形态也能够实现。
本发明的实施方式并不限定于上述的实施方式,能在权利要求所示的范围内进行各种变更。即,将在权利要求所示的范围内经过适当变更的技术方案组合而得到的实施方式也包括在本发明的技术范围内。
(关联申请的相互参照)
本申请对2018年3月8日提出申请的日本专利申请:日本特愿2019-043097主张优先权的利益,并通过对其进行参照而将其全部内容包括到本说明书中。
工业上的可利用性
本发明的实施方式能优选地应用于对将图像数据编码而得到的编码数据进行解码的运动图像解码装置,以及生成将图像数据编码而得到的编码数据的运动图像编码装置。此外,能优选地应用于由运动图像编码装置生成并被运动图像解码装置参照的编码数据的数据结构。
附图标记说明
31 图像解码装置
301 熵解码部
302 参数解码部
3020 报头解码部
303 帧间预测参数解码部
304 帧内预测参数解码部
308 预测图像生成部
309 帧间预测图像生成部
310 帧内预测图像生成部
311 逆量化/逆变换部
312 加法部
11 图像编码装置
101 预测图像生成部
102 减法部
103 变换/量化部
104 熵编码部
105 逆量化/逆变换部
107 环路滤波器
110 编码参数确定部
111 参数编码部
112 参数编码部
1110 报头编码部
1111 CT信息编码部
1112 CU编码部(预测模式编码部)
1114 TU编码部
3091 运动补偿部
3095 合成部
30951 组合的帧内/帧间合成部
30952 三角形合成部
30953 OBMC部
30954 加权预测部
30955 GBI部
30956 BDOF部
309561 L0、L1预测图像生成部
309562 梯度图像生成部
309563 相关参数计算部
309564 运动补偿修正值推导部
309565 BDOF预测图像生成部

Claims (9)

1.一种运动图像解码装置,所述运动图像解码装置进行使用两张参照图片修正运动矢量mvL0和mvL1的解码器侧运动矢量修正DMVR处理,其特征在于,
具备DMVR部,推导出判定是否进行所述DMVR处理的dmvrFlag,如果所述dmvrFlag为真,则执行所述DMVR处理。
2.根据权利要求1所述的运动图像解码装置,所述运动图像解码装置的特征在于,
所述DMVR部基于表示能进行所述DMVR处理的标志是否开启来推导所述dmvrFlag。
3.根据权利要求1或2所述的运动图像解码装置,所述运动图像解码装置的特征在于,
所述DMVR部基于merge_flag是否为真来推导所述dmvrFlag。
4.根据权利要求1~3中任一项所述的运动图像解码装置,所述运动图像解码装置的特征在于,
所述DMVR部基于预测模式是否为双向预测来推导所述dmvrFlag。
5.根据权利要求1~4中任一项所述的运动图像解码装置,所述运动图像解码装置的特征在于,
所述DMVR部基于预测模式是否为存在运动矢量差的合并MMVD模式来推导所述dmvrFlag。
6.根据权利要求1~5中任一项所述的运动图像解码装置,所述运动图像解码装置的特征在于,
所述DMVR部基于当前的图片和L0参照图片的距离与所述当前的图片和L1参照图片的距离是否相等来推导所述dmvrFlag。
7.根据权利要求1~6中任一项所述的运动图像解码装置,所述运动图像解码装置的特征在于,
所述DMVR部基于gbiIdx是否为0来推导所述dmvrFlag,所述gbiIdx表示是否基于表来进行不均等的加权预测。
8.根据权利要求1~7中任一项所述的运动图像解码装置,所述运动图像解码装置的特征在于,
所述DMVR部基于luma_weight_l0_flag[refIdxL0]和luma_weight_l1_flag[refIdxL1]双方是否为假来推导所述dmvrFlag,所述luma_weight_l0_flag[refIdxL0]表示L0预测图片中是否存在亮度的权重系数w0和偏移o0,所述luma_weight_11_flag[refIdxL1]表示L1预测图片中是否存在亮度的权重系数w1和偏移o1。
9.一种运动解码装置,所述运动解码装置具备:解码器侧运动矢量修正DMVR部,使用两张参照图片修正运动矢量mvL0和mvL1;以及双向光流BDOF部,参照第一预测图像和第二预测图像生成第三预测图像,其特征在于,
所述DMVR部使用所述运动矢量mvL0和mvL1生成第四预测图像和第五预测图像,
推导出所述第四预测图像和所述第五预测图像的绝对差分和,
在所述绝对差分和为第一阈值以上的情况下,推导出差分运动矢量和预测误差,
使用所述差分运动矢量修正所述运动矢量mvL0和mvL1,
所述BDOF部在通过所述DMVR部推导出的所述预测误差小于第二阈值的情况下不实施BDOF处理。
CN202080019033.4A 2019-03-08 2020-03-06 运动图像解码装置 Pending CN113557740A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019-043097 2019-03-08
JP2019043097 2019-03-08
PCT/JP2020/009870 WO2020184487A1 (ja) 2019-03-08 2020-03-06 動画像復号装置

Publications (1)

Publication Number Publication Date
CN113557740A true CN113557740A (zh) 2021-10-26

Family

ID=72427505

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080019033.4A Pending CN113557740A (zh) 2019-03-08 2020-03-06 运动图像解码装置

Country Status (6)

Country Link
US (2) US12069287B2 (zh)
EP (2) EP4415365A3 (zh)
JP (1) JP7555328B2 (zh)
CN (1) CN113557740A (zh)
MX (1) MX2021010770A (zh)
WO (1) WO2020184487A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7083971B1 (ja) * 2019-03-11 2022-06-13 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
JP7061737B1 (ja) 2019-03-11 2022-04-28 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
JP7034363B2 (ja) * 2019-03-11 2022-03-11 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
JP6867611B2 (ja) * 2019-03-11 2021-04-28 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
CN114143558B (zh) * 2019-03-12 2024-01-30 北京达佳互联信息技术有限公司 组合帧间和帧内预测模式的受约束和调节的应用
JP2023011955A (ja) * 2019-12-03 2023-01-25 シャープ株式会社 動画像符号化装置、動画像復号装置
US11582474B2 (en) * 2020-08-03 2023-02-14 Alibaba Group Holding Limited Systems and methods for bi-directional gradient correction

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6974078B2 (ja) 2017-09-06 2021-12-01 トッパン・フォームズ株式会社 インクジェット用記録シート
US11146810B2 (en) 2018-11-27 2021-10-12 Qualcomm Incorporated Decoder-side motion vector refinement
CN113424533B (zh) 2019-02-14 2024-09-10 北京字节跳动网络技术有限公司 复杂度降低的解码器侧运动推导
US11190797B2 (en) 2019-03-01 2021-11-30 Qualcomm Incorporated Constraints on decoder-side motion vector refinement based on weights for bi-predicted prediction

Also Published As

Publication number Publication date
WO2020184487A1 (ja) 2020-09-17
JP7555328B2 (ja) 2024-09-24
EP3937498A1 (en) 2022-01-12
MX2021010770A (es) 2021-09-28
EP3937498A4 (en) 2022-12-07
US12069287B2 (en) 2024-08-20
US20220167002A1 (en) 2022-05-26
JPWO2020184487A1 (zh) 2020-09-17
EP4415365A2 (en) 2024-08-14
US20240348819A1 (en) 2024-10-17
EP4415365A3 (en) 2024-10-02
EP3937498B1 (en) 2024-08-14

Similar Documents

Publication Publication Date Title
US11800147B2 (en) Video encoding device and video decoding device
US20200296380A1 (en) Image encoding device and image decoding device
US12034951B2 (en) Video decoding apparatus
JP7555328B2 (ja) 動画像復号装置、動画像符号化装置、および動画像復号方法
CN114762348B (zh) 运动图像解码装置
CN113228682A (zh) 预测图像生成装置、运动图像解码装置、运动图像编码装置以及预测图像生成方法
CN111886867A (zh) 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
CN112740704A (zh) 图像解码装置以及图像编码装置
JP2024063132A (ja) 動画像復号装置
JP2023181459A (ja) 動画像復号装置、動画像符号化装置、動画像復号方法および動画像符号化方法
JP2020145650A (ja) 画像復号装置および画像符号化装置
JP2020096279A (ja) 予測画像生成装置、動画像復号装置および動画像符号化装置
JP2020108012A (ja) 画像復号装置および画像符号化装置
JP2020088660A (ja) 動画像符号化装置、動画像復号装置
US11044490B2 (en) Motion compensation filter apparatus, image decoding apparatus, and video coding apparatus
TW202139699A (zh) 動態圖像解碼裝置及動態圖像解碼方法
CN113170190B (zh) 以两个预测图像生成预测图像的预测图像生成装置和方法
JP2020170901A (ja) 予測画像生成装置、動画像復号装置および動画像符号化装置
RU2812275C2 (ru) Устройство декодирования видеосигналов
JP7514611B2 (ja) 動画像復号装置、動画像符号化装置、及び、予測画像生成装置
JP7465128B2 (ja) 動画像符号化装置及び動画像復号装置
RU2799802C2 (ru) Устройство генерирования прогнозируемых изображений, устройство декодирования видеосигналов, устройство кодирования видеосигналов и способ генерирования прогнозируемых изображений
CN118828012A (zh) 运动图像解码装置以及运动图像编码装置
JP2020109919A (ja) 予測画像生成装置、動画像復号装置および動画像符号化装置
CN115699766A (zh) 动态图像编码装置以及动态图像解码装置

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240105

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

Applicant after: Sharp Corp.

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

Applicant before: Sharp Corp.

Applicant before: FG Innovation Co.,Ltd.