CN109792535A - 预测图像生成装置、运动图像解码装置以及运动图像编码装置 - Google Patents
预测图像生成装置、运动图像解码装置以及运动图像编码装置 Download PDFInfo
- Publication number
- CN109792535A CN109792535A CN201780029409.8A CN201780029409A CN109792535A CN 109792535 A CN109792535 A CN 109792535A CN 201780029409 A CN201780029409 A CN 201780029409A CN 109792535 A CN109792535 A CN 109792535A
- Authority
- CN
- China
- Prior art keywords
- image
- block
- mentioned
- sub
- prediction
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/583—Motion compensation with overlapping blocks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
在生成预测图像时的运动补偿处理中,利用使用附加于对象PU的帧间预测参数而生成的PU插补图像和使用对象PU的邻接PU的运动参数而生成的OBMC插补图像,来改善生成对象PU的插补图像的OBMC(Overlapped block motion compensation)处理。在本发明中,具备:插补图像生成部,通过将对象PU的运动信息和滤波处理应用于与对象子块对应的参照图像上的子块来生成插补图像;以及追加插补图像生成部,通过将与上述对象子块邻接的邻接子块的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块来生成追加插补图像,插补图像生成部以及追加插补图像生成部在开启OBMC处理的情况(S11)下,与关闭OBMC处理的情况相比减少插补图像生成部以及追加插补图像生成部中的滤波处理的滤波器的抽头数(S12)。
Description
技术领域
本发明涉及一种预测图像生成装置、运动图像解码装置、以及运动图像编码装置。
背景技术
为了高效地传输或记录运动图像,使用通过对运动图像进行编码而生成编码数据的运动图像编码装置、以及通过对该编码数据进行解码而生成解码图像的运动图像解码装置。
作为具体的运动图像编码方式,例如能列举出H.264/MPEG-4.AVC、HEVC(High-Efficiency Video Coding:高效视频编码)中提出的方式等。
在这种运动图像编码方式中,由分级结构来管理构成运动图像的图像(图片),并按CU来进行编码/解码,所述分级结构包括通过对图像进行分割而得到的切片(slice)、通过对切片进行分割而得到的编码单位(有时也称为编码单元(Coding Unit:CU))、以及作为通过对编码单元进行分割而得到的块的预测单元(PU)、转换单元(TU)。
此外,在这种运动图像编码方式中,通常,基于通过对输入图像进行编码/解码而获得的局部解码图像而生成预测图像,对从输入图像(原图像)中减去该预测图像而得到的预测残差(有时也称为“差分图像”或“残差图像”)进行编码。作为预测图像的生成方法,可列举出画面间预测(帧间预测)以及画面内预测(帧内预测)。
此外,作为近年来的运动图像编码以及解码的技术,可列举非专利文献1。
现有技术文献
[非专利文献]
非专利文献1:Video/JVET,“Algorithm Description of Joint ExplorationTestModel 1(JEM 1)”,INTERNATIONAL ORGANIZATION FOR STANDARDIZATIONORGANISATION INTERNATIONALE DE NORMALISATION ISO/IEC JTC1/SC29/WG11 CODING OFMOVING PICTURES AND AUDIO,ISO/IEC JTC1/SC29/WG11/N15790,October 2015,Geneva,CH.
发明内容
本发明所要解决的技术问题
在近年来的运动图像编码以及解码技术中,使用以下处理(OBMC处理)来进行:生成预测图像时的运动补偿处理中,利用使用附加于对象PU的帧间预测参数而生成的插补图像和使用对象PU的邻接PU的运动参数而生成的插补图像来生成对象PU的插补图像。另一方面,OBMC处理产生用于接入图像数据的存储带区变大的第一问题。
此外,在进行OBMC处理的情况下,产生处理量增加的第二问题。
此外,在进行OBMC处理的情况下,在OBMC处理的过程中,产生预测图像的精度降低的第三问题。本发明提供能谋求解决上述的第一、第二以及第三问题的至少任一问题的图像解码装置、图像编码装置以及预测图像生成装置。
解决问题的手段
为了解决上述问题,本发明的一个方案的预测图像生成装置,参照参照图像来生成预测图像,其具备:运动补偿部,生成对象子块中的预测图像,上述运动补偿部具备:插补图像生成部,通过将对象预测单元(PU)的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块来生成插补图像;追加插补图像生成部,通过将与上述对象子块邻接的邻接子块的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块来生成追加插补图像;以及预测部,在由上述插补图像和上述追加插补图像生成预测图像的第一模式下,生成预测图像,上述插补图像生成部以及追加插补图像生成部在选择了上述第一模式的情况下,进行滤波处理,所述滤波处理使用抽头数与选择仅使用上述插补图像来生成预测图像的第二模式的情况相比少的滤波器。
此外,为了解决上述问题,本发明的一个方案的预测图像生成装置参照参照图像来生成预测图像,其具备:运动补偿部,生成对象子块中的预测图像,上述运动补偿部具备:插补图像生成部,通过将对象预测单元(PU)的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块来生成插补图像;追加插补图像生成部,通过将与上述对象子块邻接的邻接子块的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块来生成追加插补图像;以及预测部,在由上述插补图像和上述追加插补图像来生成预测图像的第一模式下,生成预测图像,上述追加插补图像生成部在选择了上述第一模式的情况下,将用于上述追加插补图像的生成的滤波器的抽头数设定得比用于上述插补图像的生成的滤波器的抽头数少。
此外,为了解决上述问题,本发明的一个方案的预测图像生成装置,参照参照图像来生成预测图像,其具备:预测图像生成部,通过进行单预测以及双预测中的任一帧间预测来生成预测图像,上述预测图像生成部具备:图像生成部,生成插补图像和追加插补图像,所述插补图像通过将对象预测单元(PU)的运动信息和滤波处理应用于与对象PU对应的上述参照图像上的PU而得到,以及所述追加插补图像,通过将邻接PU的运动信息和滤波处理应用于与对象PU对应的上述参照图像上的PU的边界区域的像素而得到;以及预测部,在上述边界区域中参照上述插补图像和上述追加插补图像来生成预测图像,上述图像生成部在通过双预测生成预测图像的情况下,将上述边界区域设定得比通过单预测生成预测图像的情况窄。
此外,为了解决上述问题,本发明的一个方案的预测图像生成装置,参照参照图像来生成预测图像,其具备:预测图像生成部,通过进行单预测以及双预测中的任一帧间预测来生成预测图像,上述预测图像生成部具备:插补图像生成部,通过将对象预测单元(PU)的运动信息和滤波处理应用于与对象PU对应的上述参照图像上的PU来生成插补图像;可利用性确认部,对对象PU按邻接方向确认与该邻接方向邻接的PU中的运动信息的可利用性;追加插补图像生成部,通过将由可利用性确认部判断为可利用的运动信息和滤波处理应用于与对象PU对应的上述参照图像上的PU来生成追加插补图像;以及预测部,参照上述插补图像和上述追加插补图像来生成预测图像,上述可利用性确认部在通过双预测生成预测图像的情况下,将上述邻接方向的数量设定得比通过单预测生成预测图像的情况少。
此外,为了解决上述问题,本发明的一个方案的预测图像生成装置,参照参照图像来生成预测图像,其具备:运动补偿部,生成对象子块中的预测图像,上述运动补偿部具备:插补图像生成部,通过将对象预测单元(PU)的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块来生成插补图像;追加插补图像生成部,通过将与上述对象子块邻接的邻接子块的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块的编码单元(CU)以及PU中至少一方的边界区域的像素,生成追加插补图像;以及预测部,由上述插补图像和上述追加插补图像来生成预测图像生成预测图像,上述追加插补图像生成部进行滤波处理,所述滤波处理使用抽头数在编码单元(CU)的边界区域比在预测单元(PU)的边界区域小的滤波器。
此外,为了解决上述问题,本发明的一个方案的预测图像生成装置,参照参照图像来生成预测图像,其具备:运动补偿部,生成对象子块中的预测图像,上述运动补偿部具备:插补图像生成部,通过将对象预测单元(PU)的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块来生成插补图像;追加插补图像生成部,通过将与上述对象子块邻接的邻接子块的运动信息和滤波处理仅应用于与对象子块对应的上述参照图像上的PU的边界区域的像素来生成追加插补图像;以及预测部,由上述插补图像和上述追加插补图像来生成预测图像生成预测图像。
此外,为了解决上述问题,本发明的一个方案的预测图像生成装置,参照参照图像来生成预测图像,其具备:图像生成部,生成插补图像和追加插补图像,所述插补图像将对象预测单元(PU)的运动信息和滤波处理应用于与对象子块对应的上述参照图像上的子块而得到,所述追加插补图像,将邻接子块的运动信息和滤波处理应用于与对象子块对应的上述参照图像上的子块的边界区域的像素而得到;以及预测部,参照上述插补图像和上述追加插补图像来生成预测图像,上述图像生成部将与对象子块对应的上述参照图像上的子块中的编码单元(CU)的边界区域设定得比PU的边界区域窄。
此外,为了解决上述问题,本发明的一个方案的预测图像生成装置,参照参照图像来生成预测图像,其具备:插补图像生成部,通过将对象单元(PU)的运动信息和滤波处理应用于与对象子块对应的上述参照图像上的子块来生成插补图像;可利用性确认部,对对象子块按包括多个邻接方向的邻接方向组所包括的邻接方向确认对于与该邻接方向邻接的子块的运动信息的可利用性,通过将判断为可利用的运动信息和滤波处理应用于对象子块来生成追加插补图像;以及图像更新部,通过使用了上述插补图像与上述追加插补图像的整数精度的系数的线性和来对更新用图像进行更新,上述图像更新部在上述邻接方向组所包括的所有邻接方向上结束更新用图像的更新之后,通过加上更新后的上述插补图像以及更新后的上述追加插补图像并进行右位移位来生成预测图像。
发明效果
根据以上的构成,能谋求解决上述的第一、第二以及第三问题的至少任一问题。
附图说明
图1是表示本实施方式的编码流的数据的分级结构的图。
图2是表示PU分割模式的图案的图。图2(a)~图2(h)分别表示PU分割模式在2N×2N、2N×N、2N×nU、2N×nD、N×2N、nL×2N、nR×2N、以及N×N的情况下的分区形状。
图3是表示参照图片列表的一个示例的概念图。
图4是表示参照图片的示例的概念图。
图5是表示本实施方式的图像解码装置的构成的概略图。
图6是表示本实施方式的帧间预测参数解码部的构成的概略图。
图7是表示本实施方式的合并预测参数导出部的构成的概略图。
图8是表示本实施方式的AMVP预测参数导出部的构成的概略图。
图9是表示矢量候选的一个示例的概念图。
图10是表示本实施方式的帧间预测参数解码控制部的构成的概略图。
图11是表示本实施方式的帧间预测图像生成部的构成的概略图。
图12(a)是用于说明双向匹配(Bilateral matching)的图。图12(b)是用于说明模板匹配(Template matching)的图。图12是表示本实施方式的图像编码装置的构成的框图。
图13是表示导出构成作为预测运动矢量的对象的PU(横宽nPbW)的各子块的运动矢量mvLX的示例的图。
图14是表示利用本实施方式的邻接PU的运动参数进行预测图像生成的区域的一个示例的图。
图15是表示进行本实施方式的OBMC处理的运动补偿部的主要部分构成的框图。
图16是表示实施方式的运动补偿部的处理的流程的一个示例的流程图。
图17是表示本实施方式的OBMC处理的伪代码。
图18是对邻接子块的运动参数是否未知进行说明的图。
图19(a)以及图19(b)是表示本实施方式的运动补偿部所进行的滤波处理的概要的图。
图20是表示本实施方式的帧间预测图像生成部的处理的流程的一个示例的流程图。
图21是表示本实施方式的帧间预测图像生成部的处理的伪代码。
图22(a)以及图22(b)是表示本实施方式的运动补偿部所进行的滤波处理的一个示例的概要的图。
图23是表示本实施方式的运动补偿部的处理的流程的一个示例的流程图。
图24是表示本实施方式的运动补偿部的处理的一个示例的伪代码。
图25(a)~图25(c)是表示本实施方式的运动补偿部的处理一个示例的概要的图。
图26是表示本实施方式的运动补偿部的处理的流程的一个示例的流程图。
图27是表示本实施方式的运动补偿部的处理的一个示例的伪代码。
图28是表示本实施方式的运动补偿部的处理的流程的一个示例的流程图。
图29是表示本实施方式的运动补偿部的处理的一个示例的伪代码。
图30(a)以及图30(b)是表示本实施方式的补运动补偿部所进行的滤波处理的一个示例的概要的图。
图31是表示本实施方式的运动补偿部的处理的流程的又一个示例的流程图。
图32(a)~图32(c)是表示本实施方式的运动补偿部所进行的滤波处理的一个示例的概要的图。
图33(a)以及图33(b)是表示本实施方式的运动补偿部的处理的一个示例的概要的图。
图34是表示本实施方式的运动补偿部的处理的流程的一个示例的流程图。
图35(a)以及图35(b)是表示本实施方式的运动补偿部的处理的一个示例的概要的图。
图36是表示本实施方式的运动补偿部的处理的流程的一个示例的流程图。
图37(a)~图37(c)是表示本实施方式的运动补偿部所进行的处理的一个示例的概要的图。
图38是表示本实施方式的图像编码装置的构成的框图。
图39是表示本实施方式的图像编码装置的帧间预测图像生成部的构成的概略图。
图40是表示本实施方式的进行图像编码装置的OBMC处理的情况下的运动补偿部的主要部分构成的框图。
图41是表示本实施方式的图像编码装置的帧间预测参数编码部的构成的概略图。
图42是表示搭载有本实施方式的图像编码装置的发送装置以及搭载有图像解码装置的接收装置的构成的图。图42(a)示出搭载有图像编码装置的发送装置,图42(b)示出搭载有图像解码装置的接收装置。
图43是表示搭载有本实施方式的图像编码装置的记录装置以及搭载有图像解码装置的再现装置的构成的图。图43(a)示出搭载有图像编码装置的记录装置,图43(b)示出搭载有图像解码装置的再现装置。
图44是表示本发明的实施方式的图像传输系统的构成的概略图。
具体实施方式
(第一实施方式)
以下,参照附图对本发明的实施方式进行说明。
图44是表示本实施方式的图像传输系统1的构成的概略图。
图像传输系统1是传输对编码对象图像进行编码而得到的编码并显示对所传输的编码进行解码而得到的图像的系统。图像传输系统1包括图像编码装置(运动图像编码装置)11、网络21、图像解码装置(运动图像解码装置)31以及图像显示装置41而构成。
图像编码装置11中输入指示单层或者多层的图像的信号T。层是在构成某一时间的图片存在一个以上的情况下用于区分多个图片的概念。例如,当将相同图片在图像质量、分辨率不同的多个层进行编码时则为可分级编码(scalable coding),当将不同视点的图片在多个层进行编码时则为视点可分级编码(view scalable coding)。当在多个层的图片间进行预测(层间预测、视点间预测)的情况下,编码效率大幅度提高。此外,即使在不进行预测的情况(同时联播(simulcast))的情况下,也能汇总编码数据。
网络21将图像编码装置11所生成的编码流Te传输至图像解码装置31。网络21是互联网(internet)、广域网(WAN:Wide Area Network)、小型网络(LAN:Local Area Network,局域网)或这些的组合。网络21不一定限定于双向的通信网,也可以是传输地面波数字广播、卫星广播等广播波的单向或双向的通信网。此外,网络21也可以用DVD(DigitalVersatile Disc:数字通用光盘)、BD(Blue-ray Disc:蓝光光盘)等记录了编码流Te的存储介质来代替。
图像解码装置31分别对网络21所传输的编码流Te进行解码,分别生成解码后的一个或多个解码图像Td。
图像显示装置41显示图像解码装置31所生成的一个或多个解码图像Td的全部或一部分。图像显示装置41例如具备液晶显示器、有机EL(Electro-luminescence:电致发光)显示器等显示设备。此外,在空间可伸缩编码、SNR可伸缩编码中,在图像解码装置31、图像表示装置41具有高处理能力的情况下显示画质高的扩展层图像,在仅具有低处理能力的情况下显示无需增强层程度的高处理能力、显示能力的基本层图像(base layer image)。
<编码流Te的结构>
在对本实施方式的图像编码装置11以及图像解码装置31进行详细说明之前,对由图像编码装置11生成并被图像解码装置31解码的编码流Te的数据结构进行说明。
图1是表示编码流Te中的数据的分级结构的图。编码流Te示例性地包括序列以及构成序列的多个图片。图1(a)~图1(f)是分别表示既定序列SEQ的序列层、规定图片PICT的图片层、规定切片S的切片层、规定切片数据的切片数据层、规定切片数据所包括的编码树单元的编码树层、规定编码树所包括的编码单元(CU:Coding Unit)的编码单元层的图。
(序列层)
在序列层中,规定有图像解码装置31为了对处理对象的序列SEQ进行解码而参照的数据的集合。序列SEQ如图1(a)所示,包括视频参数集(Video Parameter Set)、序列参数集SPS(Sequence Parameter Set)、图片参数集PPS(Picture Parameter Set)、图片PICT以及补充增强信息SEI(Supplemental Enhancement Information)。在此,#后所示的值表示层ID。在图1中示出存在#0和#1即层0和层1的编码数据的示例,但层的种类以及层数并不取决于此。
视频参数集VPS在由多个层构成的运动图像中,规定多个运动图像通用的编码参数的集合、以及运动图像所包括的多个层和与各层关联的编码参数的集合。
在序列参数集SPS中,规定有图像解码装置31为了对对象序列进行解码而参照的编码参数的集合。例如,规定了图片的宽度、高度。需要说明的是,可以存在多个SPS。在该情况下,从PPS中选择多个SPS中的任一个。
在图片参数集PPS中,规定有图像解码装置31为了对对象序列内的各图片进行解码而参照的编码参数的集合。例如包括用于图片的解码的量化宽度的基准值(pic_init_qp_minus26)、表示加权预测的应用的标志(weighted_pred_flag)。需要说明的是,可以存在多个PPS。在此情况下,从对象序列内的各图片中选择多个PPS中的任一个。
(图片层)
在图片层中,规定有图像解码装置31为了对处理对象的图片PICT进行解码而参照的数据的集合。图片PICT如图1(b)所示,包括切片S0~SNS-1(NS为图片PICT所包括的切片的总数)。
需要说明的是,以下,在无需对各切片S0~SNS-1进行区分的情况下,有时会省略代码的后缀来进行记述。此外,以下所说明的包括于编码流Te且带有后缀的其他数据也是相同的。
(切片层)
在切片层中,规定有图像解码装置31为了对处理对象的切片S进行解码而参照的数据的集合。切片S如图1(c)所示,包括切片标头(slice header)SH以及切片数据SDATA。
切片标头SH中包括图像解码装置31为了确定对象切片的解码方法而参照的编码参数群。指定切片类型的切片类型指定信息(slice_type)是切片标头SH所包括的编码参数的一个示例。
作为可由切片类型指定信息指定的切片类型,能列举出:(1)在进行编码时仅使用帧内预测的I切片、(2)在进行编码时使用单向预测或帧内预测的P切片、以及(3)在进行编码时使用单向预测、双向预测、或帧内预测的B切片等。
需要说明的是,切片标头SH中也可以包括上述序列层中所包括的对图片参数集PPS的参照(pic_parameter_set_id)。
(切片数据层)
在切片数据层中,规定有图像解码装置31为了对处理对象的切片数据SDATA进行解码而参照的数据的集合。如图1(d)所示,切片数据SDATA包括编码树单元(CTU:Coding TreeUnit)。CTU是构成切片的固定尺寸(例如64×64)的块,有时也被称为最大编码单位(LCU:Largest Coding Unit)。
(编码树层)
如图1(e)所示,编码树层规定有图像解码装置31为了对处理对象的编码树单元进行解码而参照的数据的集合。编码树单元通过递归的四叉树分割来进行分割。将通过递归的四叉树分割而得到的树形结构的节点称为编码树(CT:Coding Tree)。四叉树的中间节点是编码树,编码树单元自身也被规定为最高位的CT。CTU包括分割标志(split_flag),在split_flag为1的情况下,分割为四个编码树CT。在split_flag为0的情况下,编码树CT不被分割,而是具有一个编码单元(CU:Coding Unit)作为节点。编码单元CU为编码树层的末端节点,在该层中不会被进一步分割。编码单元CU为编码处理的基本单位。
此外,在编码树单元CTU的尺寸为64×64像素的情况下,编码单元的尺寸可以取64×64像素、32×32像素、16×16像素以及8×8像素中的任一像素。
(编码单元层)
如图1(f)所示,编码单元层规定有图像解码装置31为了对处理对象的编码单元进行解码而参照的数据的集合。具体而言,编码单元由预测树、转换树以及CU标头CUH构成。在CU标头中规定有预测模式、分割方法(PU分割模式)等。
预测树中,规定有将编码单元分割为一个或多个而得的各预测单元(PU)的预测信息(参照图片索引、运动矢量等)。如果换为其他表述,预测单元是构成编码单元的一个或多个不重复的区域。此外,预测树包括通过上述分割而得到的一个或多个预测单元。需要说明的是,以下将进一步分割预测单元而得到的预测单位称为“子块(sub block)”。子块由多个像素构成。在预测单元与子块的尺寸相等的情况下,预测单元中的子块为一个。在预测单元的尺寸大更大的情况下,预测单元会被分割为子块。例如在预测单元为8×8、子块为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×nU表示将2N×2N的编码单元从上到下依次分割为2N×0.5N和2N×1.5N的两个区域。2N×nD表示将2N×2N的编码单元从上到下依次分割为2N×1.5N和2N×0.5N的两个区域。nL×2N表示将2N×2N的编码单元从左到右依次分割为0.5N×2N和1.5N×2N的两个区域。nR×2N表示将2N×2N的编码单元从左到右依次分割为1.5N×2N和0.5N×1.5N的两个区域。分割数为一、二、四中的任一个,因此包括于CU的PU为一至四个。将这些PU依次表示为PU0、PU1、PU2、PU3。
图2(a)~图2(h)中,针对各分割类型具体地图示出了CU中的PU分割的边界的位置。
需要说明的是,图2(a)表示不进行CU的分割的2N×2N的PU分割模式。
此外,图2(b)、图2(c)以及图2(d)分别表示PU分割模式分别为2N×N、2N×nU以及2N×nD的情况下的分区的形状。以下,将PU分割模式为2N×N、2N×nU以及2N×nD的情况下的分区统称为横长分区。
此外,图2(e)、图2(f)以及图2(g)分别表示PU分割模式为N×2N、nL×2N以及nR×2N的情况下的分区的形状。以下,将PU分割类型为N×2N、nL×2N以及nR×2N的情况下的分区统称为纵长分区。
此外,将横长分区以及纵长分区统称为长方形分区。
此外,图2(h)表示PU分割模式为N×N的情况下的分区的形状。基于其分区的形状,也将图2(a)以及图2(h)的PU分割模式称为正方形分割。此外,也将图2(b)~图2(g)的PU分割模式称为非正方形分割。
此外,在图2(a)~图2(h)中,标注于各分区的编号表示识别编号,按该识别编号的顺序对分区进行处理。即,该识别编号表示分区的扫描顺序。
此外,在图2(a)~图2(h)中,将左上设为CU的基准点(原点)。
此外,在转换树中,编码单元被分割为一个或多个转换单元,并规定了各转换块的位置和尺寸。如果换为其他表述,转换单元是构成编码单元的一个或多个不重复的区域。此外,转换树包括通过上述分割而得到的一个或多个转换单元。
转换树的分割中具有将与编码单元相同的尺寸的区域分配为转换单元的分割和与上述CU的分割相同地通过递归的四叉树分割来进行的分割。
按该转换单元来进行转换处理。
(预测参数)
通过PU所随附的预测参数来导出预测单元(PU)的预测图像。预测参数中具有帧内预测的预测参数或者帧间预测的预测参数。以下,对帧间预测的预测参数(帧间预测参数)进行说明。帧间预测参数由预测列表使用标志predFlagL0、predFlagL1、参照图片索引refIdxL0、refIdxL1以及矢量mvL0、mvL1构成。预测列表使用标志predFlagL0、predFlagL1是表示是否使用各个被称为L0列表、L1列表的参照图片列表的标志,在值为1的情况下使用对应的参照图片列表。需要说明的是,在本说明书中记为“表示是否为××的标志”的情况下,在将1设为是××的情况下而不将0设为××的情况下,在逻辑非、逻辑乘等中将1视为真,将0视为假(以下相同)。但是,在实际的装置、方法中也能使用其他值作为真值、假值。使用两个参照图片列表的情况,就是说,predFlagL0=1、predFlagL1=1的情况与双预测BiPred对应,且使用一个参照图片列表的情况,即(predFlagL0,predFlagL1)=(1,0)或者(predFlagL0,predFlagL1)=(0,1)的情况与单预测UniPred对应。需要说明的是,预测列表使用标志的信息也可以通过后述的帧间预测标识符inter_pred_idc来表示。
是否为双预测BiPred的标志biPred能通过两个预测列表使用标志是否均为1来导出。例如能通过下式导出。
biPred=(predFlagL0==1&&predFlagL1==1)
用于导出编码数据中所包括的帧间预测参数的语法元素中,例如具有分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_LX_idx、差分矢量mvdLX以及OBMC标志obmc_flag。
(参照图片列表的一个示例)
接着,对参照图片列表的一个示例进行说明。参照图片列表是指由存储于参照图片存储器306的参照图片组成的列。图3是表示参照图片列表的一个示例的概念图。在参照图片列表601中,左右排列成一列的五个长方形分别指示参照图片。从左端向右依次示出的代码P1、P2、P3、P4、P5是表示各参照图片的代码。后缀表示图片顺序编号POC。refIdxLX的正下的向下的箭头表示参照图片索引refIdxLX是在参照图片存储器306中参照参照图片P3的索引。
(参照图片的示例)
接着,对在导出矢量时所使用的参照图片的示例进行说明。图4是表示参照图片的示例的概念图。在图4中,横轴表示显示时刻。图4所示的四个长方形分别表示图片。四个长方形中,左起第二个长方形表示解码对象的图片(对象图片),其余的三个长方形分别指示参照图片。以从对象图片起向左的箭头所示的参照图片P1是过去的图片。以从对象图片起向右的箭头所示的参照图片P2是未来的图片。在图4中以对象图片作为基准的运动预测中,使用参照图片P1或P2。
(帧间预测标识符和预测列表使用标志)
帧间预测标识符inter_pred_idc与预测列表使用标志predFlagL0、predFlagL1的关系能如下相互转换。因此,作为帧间预测参数,既可以使用预测列表使用标志,也可以使用帧间预测标识符。此外,以下使用了预测列表使用标志的判定也可以替换为帧间预测标识符。反之,使用了帧间预测标识符的判定也可以替换为预测列表使用标志。
inter_pred_idc=(predFlagL1<<1)+predFlagL0
predFlagL0=inter_pred_idc&1
predFlagL1=inter_pred_idc>>1
在此,>>为右位移位,<<为左位移位,&为逐位AND。
指示是否为双预测BiPred的标志biPred也可以通过帧间预测标识符是否为表示使用两个预测列表(参照图片)的值来导出。例如能通过下式导出。
biPred=(inter_pred_idc==3)?1:0
上述算式也可以以下式表示。
biPred=(inter_pred_idc==3)
(合并预测和AMVP预测)
预测参数的解码(编码)方法中具有合并预测(merge)模式和AMVP(Adaptive MotionVector Prediction:自适应运动矢量预测)模式,合并标志merge_flag是用于识别它们的标志。无论是合并预测模式还是AMVP模式,都使用已经处理完的PU的预测参数来导出对象PU的预测参数。合并预测模式是在编码数据中不包括预测列表使用标志predFlagLX(或帧间预测标识符inter_pred_idc)、参照图片索引refIdxLX以及运动矢量mvLX,而直接使用已导出的附近PU的预测参数的模式,AMVP模式是在编码数据中包括帧间预测标识符inter_pred_idc、参照图片索引refIdxLX以及运动矢量mvLX的模式。需要说明的是,运动矢量mvLX被编码为标识预测矢量mvpLX的预测矢量索引mvp_LX_idx和差分矢量mvdLX。
帧间预测标识符inter_pred_idc是表示参照图片的种类以及数量的数据,取Pred_L0、Pred_L1、Pred_Bi中的任一值。Pred_L0、Pred_L1表示使用分别存储于被称为L0列表、L1列表的参照图片列表的参照图片,表示共同使用一张参照图片(单预测)。将使用了L0列表、L1列表的预测分别称为L0预测、L1预测。Pred_Bi表示使用两张参照图片(双预测BiPred),并表示使用存储于L0列表和L1列表的两张参照图片。预测矢量索引mvp_LX_idx是表示预测矢量的索引,参照图片索引refIdxLX是表示存储于参照图片列表的参照图片的索引。需要说明的是,LX是在不对L0预测与L1预测进行区分的情况下使用的记述方法,通过将LX替换为L0、L1,来区分针对L0列表的参数和针对L1列表的参数。例如,refIdxL0是用于L0预测的参照图片索引,refIdxL1是用于L1预测的参照图片索引,refIdxLX是在不对refIdxL0与refIdxL1进行区分的情况下使用的标记。
合并索引merge_idx是表示是否将从处理已完成的PU导出的预测参数候选(合并候选)中的任一个预测参数用作解码对象CU的预测参数的索引。
(运动矢量)
运动矢量mvLX表示不同时间的两个图片上的块间的偏移量。将与运动矢量mvLX相关的预测矢量、差分矢量分别称为预测矢量mvpLX、差分矢量mvdLX。
(图像解码装置的构成)
接着,对本实施方式的图像解码装置31的构成进行说明。图5是表示本实施方式的图像解码装置31的构成的概略图。图像解码装置31包括熵解码部301、预测参数解码部(预测图像生成装置)302、参照图片存储器306、预测参数存储器307、预测图像生成部(预测图像生成装置)308、逆量化/逆DCT部311以及加法部312而构成。
此外,预测参数解码部302构成为包括帧间预测参数解码部303以及帧内预测参数解码部304。预测图像生成部308构成为包括帧间预测图像生成部309以及帧内预测图像生成部310。
熵解码部301对从外部输入的编码流Te进行熵解码,并分离各个代码(语法元素)而进行解码。经分离的代码中,具有用于生成预测图像的预测信息以及用于生成差分图像的残差信息等。
熵解码部301将分离后的代码的一部分输出至预测参数解码部302。分离后的代码的一部分例如是预测模式PredMode、分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_LX_idx以及差分矢量mvdLX。基于预测参数解码部302的指示来进行是否对哪一个代码进行解码的控制。熵解码部301将量化系数输出至逆量化/逆DCT部311。该量化系数是在编码处理中对残差信号进行DCT(Discrete Cosine Transform:离散余弦转换)并进行量化而得到的系数。
帧间预测参数解码部303基于从熵解码部301输入的代码,参照存储于预测参数存储器307的预测参数,对帧间预测参数进行解码。
帧间预测参数解码部303将解码后的帧间预测参数输出至预测图像生成部308,并存储于预测参数存储器307。对帧间预测参数解码部303的详细内容将在下文加以记述。
帧内预测参数解码部304基于从熵解码部301输入的代码,参照存储于预测参数存储器307的预测参数,对帧内预测参数进行解码。帧内预测参数是指在一个图片内对CU进行预测的处理中所使用的参数,例如,帧内预测模式IntraPredMode。帧内预测参数解码部304将解码后的帧内预测参数输出至预测图像生成部308,此外,存储于预测参数存储器307。
帧内预测参数解码部304也可以导出在亮度和色差上不同的帧内预测模式。在该情况下,帧内预测参数解码部304将亮度预测模式IntraPredModeY解码为亮度的预测参数,将色差预测模式IntraPredModeC解码为色差的预测参数。亮度预测模式IntraPredModeY为35模式,平面预测(0)、DC预测(1)、方向预测(2~34)与其对应。色差预测模式IntraPredModeC使用平面预测(0)、DC预测(1)、方向预测(2~34)、LM模式(35)中的任一个。帧内预测参数解码部304对指示IntraPredModeC是否是与亮度模式相同的模式的标志进行解码,如果标志指示是与亮度模式相同的模式,则将IntraPredModeY分配给IntraPredModeC,如果标志指示是与亮度模式不同的模式,则也可以将平面预测(0)、DC预测(1)、方向预测(2~34)、LM模式(35)解码为IntraPredModeC。
参照图片存储器306按编码对象的图片以及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输入的帧间预测参数和读出的参照图片,并通过帧间预测来生成PU的预测图像。
帧间预测图像生成部309对预测列表使用标志predFlagLX为1的参照图片列表(L0列表或者L1列表),根据参照图片索引refIdxLX所指示的参照图片,从参照图片存储器306中读出位于以解码对象PU为基准的运动矢量mvLX所指示的位置的参照图片块。帧间预测图像生成部309以所读出的参照图片块为基础进行预测,并生成PU的预测图像。帧间预测图像生成部309将生成的PU的预测图像输出至加法部312。
在预测模式predMode表示帧内预测模式的情况下,帧内预测图像生成部310使用从帧内预测参数解码部304输入的帧内预测参数和读出的参照图片来进行帧内预测。具体而言,帧内预测图像生成部310从参照图片存储器306读出解码对象的图片中已经解码的PU中位于从解码对象PU起预定的范围的邻接PU。预定的范围是指在解码对象PU以所谓的光栅扫描的顺序依次移动的情况下,例如左、左上、上、右上的邻接PU中的任一个,其根据帧内预测模式而不同。光栅扫描的顺序是指在各图片中对从上端至下端各行依次从左端移动至右端的顺序。
帧内预测图像生成部310在帧内预测模式IntraPredMode所指示的预测模式下对读出的邻接PU进行预测,并生成PU的预测图像。帧内预测图像生成部310将生成的PU的预测图像输出至加法部312。
在帧内预测参数解码部304中,在导出亮度和色差上不同的帧内预测模式的情况下,帧内预测图像生成部310根据亮度预测模式IntraPredModeY,通过平面预测(0)、DC预测(1)、方向预测(2~34)中的任一个,生成亮度的PU的预测图像,根据色差预测模式IntraPredModeC,通过平面预测(0)、DC预测(1)、方向预测(2~344)、LM模式(35)中的任一个,生成色差的PU的预测图像。
逆量化/逆DCT部311将从熵解码部301输入的量化系数逆量化来求出DCT系数。逆量化/逆DCT部311对求出的DCT系数进行逆DCT(Inverse Discrete Cosine Transform:离散余弦逆变换),计算出解码残差信号。逆量化/逆DCT部311将计算出的解码残差信号输出至加法部312。
加法部312按像素将从帧间预测图像生成部309以及帧内预测图像生成部310输入的PU的预测图像和从逆量化/逆DCT部311输入的解码残差信号相加,并生成PU的解码图像。加法部312将生成的PU的解码图像存储于参照图片存储器306,将按图片整合生成的PU的解码图像的解码图像Td输出至外部。
(帧间预测参数解码部的构成)
接着,对帧间预测参数解码部303的构成进行说明。
图6是表示本实施方式的帧间预测参数解码部303的构成的概略图。帧间预测参数解码部303包括帧间预测参数解码控制部3031、AMVP预测参数导出部3032、加法部3035、合并预测参数导出部3036以及子块预测参数导出部3037而构成。
帧间预测参数解码控制部3031将与帧间预测关联的代码(语法元素)的解码指示给熵解码部301,来提取编码数据所包括的代码(语法元素),例如分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_LX_idx、差分矢量mvdLX、OBMC标志obmc_flag、子块预测模式标志subPbMotionFlag。
帧间预测参数解码控制部3031首先提取合并标志。帧间预测参数解码控制部3031表现为提取某语法元素的情况是指向熵解码部301指示某语法元素的解码,并从编码数据中读出符合的语法元素。在此,在合并标志所指示的值为1、即指示合并预测模式的情况下,帧间预测参数解码控制部3031提取合并索引merge_idx作为合并预测的预测参数。帧间预测参数解码控制部3031将提取到的合并索引merge_idx输出至合并预测参数导出部3036。
在合并标志merge_flag为0、即指示AMVP预测模式的情况下,帧间预测参数解码控制部3031使用熵解码部301来从编码数据中提取AMVP预测参数。作为AMVP预测参数,例如存在帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_LX_idx以及差分矢量mvdLX。帧间预测参数解码控制部3031将从提取到的帧间预测标识符inter_pred_idc导出的预测列表使用标志predFlagLX和参照图片索引refIdxLX输出至AMVP预测参数导出部3032以及预测图像生成部308(图5),此外,存储于预测参数存储器307。帧间预测参数解码控制部3031将提取到的预测矢量索引mvp_LX_idx输出至AMVP预测参数导出部3032。帧间预测参数解码控制部3031将提取到的差分矢量mvdLX输出至加法部3035。
子块预测参数导出部3037根据从帧间预测参数解码控制部3031供给的子块预测模式标志subPbMotionFlag的值,进行任一的子块预测,由此导出运动矢量mvLX。在此,作为帧间预测参数,列举出运动矢量mvLX等。
子块预测参数导出部3037在子块预测模式中,将PU分割为多个子块,通过分割的子块单位导出运动矢量。即,在子块预测模式下,预测块以4×4或者8×8的小块单位被预测。此外,在后文所述的图像编码装置11中,将CU分割为多个分区(2N×N、N×2N、N×N等PU),对于以分区单位对预测参数的语法进行编码的方法,在子块预测模式下将多个分区汇总于集合(set),按该集合对预测参数的语法进行编码。因此,能通过较少的符号量对较多的分区的运动信息进行编码。
详细而言,子块预测参数导出部3037具备通过子块预测模式进行子块预测的时间-空间子块预测部30371、仿射预测部30372、匹配预测部30373中的至少一个。
(子块预测模式标志)
在此,对图像编码装置11(详细内容在后文叙述)中的,表示某PU的预测模式是否为子块预测模式的子块预测模式标志subPbMotionFlag的导出方法进行说明。图像编码装置11基于是否使用了后文叙述的空间子块预测SSUB、时间子块预测TSUB、仿射预测AFFINE、匹配预测MAT中的任一个,导出子块预测模式标志subPbMotionFlag。例如,也可以在将由某PU选出的预测模式设为N(例如N是表示选出的合并候选的标签)的情况下,通过以下算式导出子块预测模式标志subPbMotionFlag。
subPbMotionFlag=(N==TSUB)||(N==SSUB)||(N==AFFINE)||(N==MAT)
在此||表示逻辑和(以下相同)。
此外,如下所述,也可以根据图像编码装置11所进行的子块预测的模式的种类,适当地变更上述算式。即,也可以在图像编码装置11是进行空间子块预测SSUB、仿射预测AFFINE的构成的情况下,如下所述导出子块预测模式标志subPbMotionFlag。
subPbMotionFlag=(N==SSUB)||(N==AFFINE)
此外,也可以在通过子块预测所包括的各预测模式(例如,时间-空间子块预测、仿射预测、匹配预测)进行预测时,在与各子块预测对应的预测模式的处理中,采用将subPbMotionFlag设定为1的构成。
此外,例如,在CU尺寸为8x8(对数CU尺寸log2CbSize==3)且分割类型为2N×2N以外的这种PU较小的尺寸的情况下,能将PU设为分割数为1的子块。在该情况下,也可以如下导出子块预测模式subPbMotionFlag。
subPbMotionFlag|=(log2CbSize==3&&PartMode!=2N×2N)
需要说明的是,|=是指也可以通过与其他条件的和运算(OR)导出subPbMotionFlag。即,subPbMotionFlag也可以如下通过预测模式N的判定与小PU尺寸判定的和运算来导出(以下相同)。
subPbMotionFlag=(N==TSUB)||(N==SSUB)||(N==AFFINE)||(N==MAT)||(log2CbSize==3&&PartMode!=2N×2N)
而且,例如,也可以在子块预测中包括CU尺寸为8x8(log2CbSize==3)且分割类型为2N×N、N×2N、N×N的情况。即,subPbMotionFlag也可以如下进行导出。
subPbMotionFlag|=(log2CbSize==3&&(PartMode==2N×N||PartMode==N×2N||PartMode==N×N))
而且,例如,也可以在子块预测中包括CU尺寸为8x8(log2CbSize==3)且分割类型为N×N的情况。即,subPbMotionFlag也可以如下进行导出。
subPbMotionFlag|=(log2CbSize==3&&PartMode==N×N)
此外,作为判定为子块预测的情况,也可以包括PU的宽度或者高度为4的情况。即,子块预测模式标志subPbMotionFla也可以如下进行导出。
subPbMotionFlag|=(nPbW==4||nPbH==4)
(子块预测部)
接着,对子块预测部进行说明。
(时间-空间子块预测部30371)
时间-空间子块预测部30371根据时间上与对象PU邻接的参照图像上(例如紧前的图片)的PU的运动矢量,或者空间上与对象PU邻接的PU的运动矢量,导出对对象PU进行分割而得到的子块的运动矢量。具体而言,通过使参照图像上的PU的运动矢量以与对象PU所参照的参照图片一致的方式缩放,导出对象PU中的各子块的运动矢量spMvLX[xi][yi](xi=xPb+nSbW*i、yj=yPb+nSbH*j、i=0,1,2,……、nPbW/nSbW-1、j=0,1,2,……、nPbH/nSbH-1)(时间子块预测)。在此,(xPb,yPb)是对象PU的左上坐标,nPbW、nPbH是对象PU的尺寸,nSbW、nSbH是子块的尺寸。
此外,也可以通过根据与对象PU邻接的PU的运动矢量与对对象PU进行分割而得到的子块的距离,来计算加权平均,导出对象PU中的各子块的运动矢量spMvLX[xi][yi](xi=xPb+nSbW*i、yj=yPb+nSbH*j、i=0,1,2,……、nPbW/nSbW-1、j=0,1,2,……、nPbH/nSbH-1)(空间子块预测)。
以上,选择时间子块预测的候选TSUB、空间子块预测的候选SSUB作为合并模式的一个模式(合并候选)。
(仿射预测部)
仿射预测部30372导出对象PU的仿射预测参数。在本实施方式中,作为仿射预测参数,导出对象PU的两个控制点(V0,V1)的运动矢量(mv0_x,mv0_y)(mv1_x,mv1_y)。具体而言,可以通过根据对象PU的邻接PU的运动矢量进行预测,来导出各控制点的运动矢量,而且,也可以通过作为控制点的运动矢量而被导出的预测矢量与根据编码数据而被导出的差分矢量的和,来导出各控制点的运动矢量。
图13是表示根据控制点V0的运动矢量(mv0_x,mv0_y)以及V1的运动矢量(mv1_x,mv1_y)而导出构成对象PU(nPbW×nPbH)的各子块的运动矢量spMvLX的示例的图。如图所示,各子块的运动矢量spMvLX如图13所示,作为按位于各子块的中心的点的运动矢量导出。
仿射预测部30372基于对象PU的仿射预测参数,使用下式,导出对象PU中的各子块的运动矢量spMvLX[xi][yi](xi=xPb+nSbW*i、yj=yPb+nSbH*j、i=0,1,2,……、nPbW/nSbW-1、j=0,1,2,……、nPbH/nSbH-1)。
spMvLX[xi][yi][0]=mv0_x+(mv1_x-mv0_x)/nPbW*(xi+nSbW/2)-(mv1_y-mv0_y)/nPbH*(yi+nSbH/2)
spMvLX[xi][yi][1]=mv0_y+(mv1_y-mv0_y)/nPbW*(xi+nSbW/2)+(mv1_x-mv0_x)/nPbH*(yi+nSbH/2)
在此,xPb、yPb是对象PU的左上坐标,nPbW、nPbH是对象PU的宽度和高度,nSbW、nSbH是子块的宽度和高度。
(匹配预测部30373)
匹配预测部30373通过进行双向匹配(Bilateral matching)以及模板匹配(Templatematching)中的任一个匹配处理,来导出构成PU的子块的运动矢量spMvLX。图12是用于说明图12(a)双向匹配(Bilateral matching)、图12(b)模板匹配(Template matching)的图。选择匹配预测模式作为合并模式的一个合并候选(匹配候选)。
匹配预测部30373假定物体设为匀速运动,通过多个参照图像中的区域的匹配来导出运动矢量。在双向匹配中,假定某物体以匀速运动从参照图像A的区域、对象图片CurPic的对象PU、参照图像B的区域通过,通过参照图像A、B间的匹配,来导出对象PU的运动矢量。在模板匹配中,假定对象PU的邻接区域与对象PU的运动矢量相等,通过对象PU的邻接区域与参照块的邻接区域的匹配,来导出运动矢量。在匹配预测部中,通过将对象PU分割为多个子块,以分割出的子块单位进行后文所述的双向匹配或者模板匹配,并导出子块的运动矢量spMvLX[xi][yi](xi=xPb+nSbW*i、yj=yPb+nSbH*j、i=0,1,2,……、nPbW/nSbW-1、j=0,1,2,……、nPbH/nSbH-1)。
如图12(a)所示,为了在双向匹配中导出对象图片Cur_Pic中的子块Cur_block的运动矢量,参照两张参照图像。更具体而言,首先,在将子块Cur_block的坐标表示为(xCur,yCur)时,设定:Block_A,由参照图片索引Ref0指定的参照图像(称为参照图片A)内的区域中,
具有由(xPos,yPos)=(xCur+MV0_x,yCur+Mv0_y)
确定的左上坐标(xPos,yPos);以及Block_B,由参照图片索引Ref1指定的参照图像(称为参照图片B)内的区域中,
具有由(xPos,yPos)=(xCur-MV0_x*TD1/TD0,yCur-MV0_y*TD1/TD0)
确定的左上坐标(xPos,yPos)。在此,如图12(a)所示,TD0以及TD1分别表示对象图片Cur_Pic与参照图片A的图片间距离以及对象图片Cur_Pic与参照图片B的图片间距离。
接着,以Block_A与Block_B的匹配成本为最小的方式确定(MV0_x,MV0_y)。如此导出的(MV0_x,MV0_y)为被赋予至子块的运动矢量。
另一方面,图12(b)是用于对上述匹配处理中的模板匹配(Template matching)进行说明的图。
如图12(b)所示,为了在模板匹配中导出对象图片(Cur_Pic)中的子块Cur_block的运动矢量,参照一张参照图片。
更具体而言,首先,确定由参照图片索引Ref0指定的参照图像(称为参照图片A)内的区域中,
具有由(xPos,yPos)=(xCur+MV0_x,yCur+Mv0_y)
确定的左上坐标(xPos,yPos)的Block_A。在此,(xCur,yCur)是子块Cur_block的左上坐标。
接着,设定在对象图片Cur_Pic中与子块Cur_block邻接的模板区域Temp_Cur和在参照图片A中与Block_A邻接的模板区域Temp_L0。在图12(b)所示的示例中,模板区域Temp_Cur由与子块Cur_block的上侧邻接的区域以及与子块Cur_block的左侧邻接的区域构成。此外,模板区域Temp_L0由与Block_A的上侧邻接的区域以及与Block_A的左侧邻接的区域构成。
接着确定Temp_Cur与TempL0的匹配成本为最小的(MV0_x,MV0_y),成为被赋予至子块的运动矢量spMvLX。
图7是表示本实施方式的合并预测参数导出部3036的构成的概略图。合并预测参数导出部3036具备合并候选导出部30361和合并候选选择部30362。合并候选储存部303611储存从合并候选导出部30361输入的合并候选。需要说明的是,合并候选包括预测列表使用标志predFlagLX、运动矢量mvLX、以及参照图片索引refIdxLX而构成。在合并候选储存部303611中,索引按照规定的规则被分配至所储存的合并候选。
合并候选导出部30361直接使用已经进行了解码处理的邻接PU的运动矢量和参照图片索引refIdxLX来导出合并候选。除此之外,也可以使用仿射预测来导出合并候选。以下,对该方法进行详细说明。合并候选导出部30361也可以将仿射预测用于后述的空间合并候选导出处理、时间合并候选导出处理、组合合并候选导出处理以及零合并候选导出处理。需要说明的是,仿射预测以子块单元进行,预测参数按子块储存于预测参数存储器307。或者,仿射预测也可以以像素单元进行。
(空间合并候选导出处理)
作为空间合并候选导出处理,合并候选导出部30361按照规定的规则,读出预测参数存储器307所存储的预测参数(预测列表使用标志predFlagLX、运动矢量mvLX、参照图片索引refIdxLX),并将读出的预测参数导出为合并候选。所读出的预测参数是位于从解码对象PU起预定的范围内的各PU(例如,分别与解码对象PU的左下端、左上端、右上端相接的PU的全部或一部分)的预测参数。由合并候选导出部30361导出的合并候选储存于合并候选储存部303611。
(时间合并候选导出处理)
作为时间合并导出处理,合并候选导出部30361从预测参数存储器307读出包括解码对象PU的右下的坐标的参照图像中的PU的预测参数,来做为合并候选。参照图像的指定方法例如可以使用在切片标头中指定的参照图片索引refIdxLX,也可以使用与解码对象PU邻接的PU的参照图片索引refIdxLX之中最小的参照图片索引来进行指定。由合并候选导出部30361导出的合并候选储存于合并候选储存部303611。
(组合合并候选导出处理)
作为组合合并导出处理,合并候选导出部30361通过将已经导出且储存于合并候选储存部303611的两个不同的完成导出的合并候选的矢量和参照图片索引分别作为L0、L1的矢量进行组合,来导出组合合并候选。由合并候选导出部30361导出的合并候选储存于合并候选储存部303611。
(零合并候选导出处理)
作为零合并候选导出处理,合并候选导出部30361导出参照图片索引refIdxLX为0且运动矢量mvLX的X成分、Y成分均为0的合并候选。由合并候选导出部30361导出的合并候选储存于合并候选储存部303611。
合并候选选择部30362选择储存于合并候选储存部303611的合并候选中分配有与从帧间预测参数解码控制部3031输入的合并索引merge_idx对应的索引的合并候选作为对象PU的帧间预测参数。合并候选选择部30362将所选择的合并候选存储于预测参数存储器307,并且输出至预测图像生成部308(图5)。
图8是表示本实施方式的AMVP预测参数导出部3032的构成的概略图。AMVP预测参数导出部3032具备矢量候选导出部3033和矢量候选选择部3034。矢量候选导出部3033读出预测参数存储器307基于参照图片索引refIdx而存储的矢量,来做为预测矢量候选mvpLX。读出的矢量是位于从解码对象PU起预定的范围内的各PU(例如,分别与解码对象PU的左下端、左上端、右上端相接的PU的全部或一部分)的矢量。
矢量候选选择部3034选择矢量候选导出部3033所读出的矢量候选中从帧间预测参数解码控制部3031输入的预测矢量索引mvp_LX_idx所指示的矢量候选,作为预测矢量mvpLX。矢量候选选择部3034将所选择的预测矢量mvpLX输出至加法部3035。
矢量候选储存部30331储存从矢量候选导出部3033输入的矢量候选。需要说明的是,矢量候选包括预测矢量mvpLX而构成。在矢量候选储存部30331中,索引按照规定的规则被分配至所储存的矢量候选。
图9是表示矢量候选的一个示例的概念图。图9所示的预测矢量列表602是由在矢量候选导出部3033中导出的多个矢量候选形成的列表。在预测矢量列表602中,左右排列成一列的五个长方形分别指示预测矢量。从左端起的第二个mvp_LX_idx的正下方的向下的箭头和其下方的mvpLX表示预测矢量索引mvp_LX_idx是在预测参数存储器307中参照矢量mvpLX的索引。
矢量候选基于矢量候选选择部3034所参照的PU的矢量而生成。矢量候选选择部3034所参照的PU可以是解码处理完成的PU,也可以是解码对象PU起预定的范围内的PU(例如,邻接PU)。需要说明的是,邻接PU除了包括与解码对象PU在空间上邻接的PU,例如,左PU、上PU以外,还包括与解码对象PU在时间上邻接的区域,例如,与解码对象PU相同的位置,并包括由显示时刻不同的PU的预测参数而得到的区域。
加法部3035将从AMVP预测参数导出部3032输入的预测矢量mvpLX和从帧间预测参数解码控制部3031输入的差分矢量mvdLX相加,计算出运动矢量mvLX。加法部3035将计算出的运动矢量mvLX输出至预测图像生成部308(图5)。
图10是表示本实施方式的帧间预测参数解码控制部3031的构成的概略图。帧间预测参数解码控制部3031包括合并索引解码部30312、矢量候选索引解码部30313以及未图示的分割模式解码部、合并标志解码部、帧间预测标识符解码部、参照图片索引解码部、矢量差分解码部等而构成。分割模式解码部、合并标志解码部、合并索引解码部、帧间预测标识符解码部、参照图片索引解码部、矢量候选索引解码部30313、矢量差分解码部分别对分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_LX_idx、差分矢量mvdLX进行解码。
(帧间预测图像生成部309)
图11是表示本实施方式的帧间预测图像生成部309的构成的概略图。帧间预测图像生成部309包括运动补偿部(预测图像生成装置)3091和加权预测部3094而构成。
(运动补偿)
运动补偿部3091基于从帧间预测参数解码部303输入的帧间预测参数(预测列表使用标志predFlagLX、参照图片索引refIdxLX、运动矢量mvLX),从参照图片存储器306读出位于在由参照图片索引refIdxLX指定的参照图片中以解码对象PU的位置作为起点而偏移运动矢量mvLX的位置的块,由此生成补偿图像(运动补偿图像)。在此,在运动矢量mvLX的精度并非整数精度的情况下,实施被称为运动补偿滤波的用于生成小数位置的像素的滤波,生成运动补偿图像。
以下,将基于帧间预测参数而导出的PU的插补图像称为PU插补图像,将基于OBMC用的帧间预测参数而导出插补图像称为OBMC插补图像。在不进行OBMC处理的情况下,PU插补图像直接成为PU的运动补偿图像在进行OBMC处理的情况下,由PU插补图像和OBMC插补图像,导出PU的运动补偿图像。
(加权预测)
加权预测部3094通过对所输入的运动补偿图像predSamplesLX乘以加权系数,来生成PU的预测图像。所输入的运动补偿图像predSamplesLX是在进行残差预测的情况下,加上残差预测的图像。在参照列表使用标志的一方(predFlagL0或predFlagL1)为1的情况(单预测的情况)下,在不使用加权预测的情况下,进行使所输入的运动补偿图像predSamplesLX(LX为L0或L1)与像素位数bitDepth一致的以下的算式的处理。
predSamples[X][Y]=Clip3(0,(1<<bitDepth)-1,(predSamplesLX[X][Y]+offset1)>>shift1)
在此,shift1=14-bitDepth,offset1=1<<(shift1-1)。
此外,在参照列表使用标志的两者(predFlagL0或predFlagL1)为1的情况(双预测BiPred的情况)下,且不使用加权预测的情况下,进行将所输入的运动补偿图像predSamplesL0、predSamplesL1平均,并使其平均数与像素位数一致的以下的算式的处理。
predSamples[X][Y]=Clip3(0,(1<<bitDepth)-1,(predSamplesL0[X][Y]+predSamplesL1[X][Y]+offset2)>>shift2)
在此,shift2=15-bitDepth,offset2=1<<(shift2-1)。Clip3(a,b,c)是对c取a以上b以下的值的函数,是在c<a的情况下返回a,在c>b的情况返回b,在其他情况返回c的函数(其中,a<=b)。
而且,在单预测的情况下,在进行加权预测的情况下,加权预测部3094从编码数据导出加权预测系数w0和偏移值(offset)o0,并进行以下算式的处理。
predSamples[X][Y]=Clip3(0,(1<<bitDepth)-1,((predSamplesLX[X][Y]*w0+2^(log2WD-1))>>log2WD)+o0)
在此,log2WD是表示规定的移位量的变量。
而且,在双预测BiPred的情况下且进行加权预测的情况下,加权预测部3094从编码数据导出加权预测系数w0、w1、o0、o1,并进行以下算式的处理。
predSamples[x][y]=Clip3(0,(1<<bitDepth)-1,(predSamplesL0[x][y]*w0+predSamplesL1[x][y]*w1+((o0+o1+1)<<log2WD))>>(log2WD+1))
(OBMC处理)
(OBMC处理概要)
本实施方式的运动补偿部3091也可以使用OBMC处理来生成预测图像。在此,对OBMC(Overlapped block motion compensation:重叠块运动补偿)处理进行说明。OBMC处理是指,利用使用附加于对象PU的帧间预测参数(以下为运动参数)而生成的插补图像(PU插补图像)和使用对象PU的邻接PU的运动参数而生成的插补图像(OBMC插补图像),生成对象PU的插补图像(运动补偿图像)的处理。特别是,在PU间与边界的距离较近的对象PU内的像素(边界像素)中,通过基于邻接PU的运动参数的OBMC插补图像,来进行校正对象PU的插补图像的处理。
图14是表示利用本实施方式的邻接PU的运动参数来进行预测图像生成的区域的一个示例的图。如图14所示,在将OBMC处理应用于预测图像生成的情况下,位于从用黑色填充的PU边界起规定的距离内的像素为OBMC处理的应用对象。
需要说明的是,对象PU与邻接PU的形状不必一定相同,因此理想的是:以对PU进行分割的子块单位实施OBMC处理。子块的尺寸能取4x4、8x8至PU尺寸的各种值。此时,在子块的边界像素中,将利用了邻接子块的运动参数的OBMC插补图像生成以及校正处理称为OBMC处理。
(插补图像生成)
图15是表示进行本实施方式的OBMC处理的帧间预测图像生成部309所具备的运动补偿部3091的主要部分构成的框图。如图15所示,运动补偿部3091具备插补图像生成部3092(PU插补图像生成部30911以及OBMC插补图像生成部30912)和OBMC校正部3093。
插补图像生成部3092基于帧间预测参数(预测列表使用标志predFlagLX、参照图片索引refIdxLX、运动矢量mvLX、OBMC标志obmc_flag),导出插补图像。
PU插补图像生成部30911基于从帧间预测参数解码部303输入的预测列表使用标志predFlagLX[xPb][yPb]、参照图片索引refIdxLX[xPb][yPb]、运动矢量mvLX[xPb][yPb],来生成PU插补图像Pred_C[x][y](x=0…nPbW-1,y=0..nPbH-1)。PU插补图像生成部30911将所生成的PU插补图像Pred_C[x][y]发送给OBMC校正部3093。需要说明的是,(xPb,yPb)是PU的左上坐标,nPbW、nPbH是PU的宽度以及高度。需要说明的是,在此,后缀的C是指current(当前)。
换言之,通过将对象预测单元(PU)的运动信息应用于与对象子块对应的参照图像上的子块来生成插补图像。
此外,OBMC插补图像生成部30912基于从帧间预测参数解码部303输入的obmc_flag、预测列表使用标志predFlagLX[xNb][yNb]、邻接块的参照图片索引refIdxLXN[xNb][yNb]、邻接块的运动矢量mvLXN[xNb][yNb],来生成OBMC插补图像Pred_N[x][y](x=0…nPbW-1,y=0…nPbH-1)。换言之,通过将与对象子块邻接的邻接子块的运动信息应用于与对象子块对应的参照图像上的子块来生成追加插补图像。OBMC插补图像生成部30912将所生成的OBMC插补图像Pred_N[x][y]发送给OBMC校正部3093。需要说明的是,(xNb,yNb)是PU的邻接子块的位置。需要说明的是,在此,后缀的N是指neighbour(相邻)。
需要说明的是,在以上的说明中,对PU插补图像生成部30911、OBMC插补图像生成部30912进行了区分,但两者都进行根据运动参数来生成插补图像的处理,因此也可以准备进行两个处理的方案中的一个方案,并通过该方案来执行。
在输入至值插补图像生成部3092的运动矢量mvLX或运动矢量mvLXN不是整数精度而是1/M像素精度(M是2以上的自然数)的情况下,插补图像生成部3092(PU插补图像生成部30911、OBMC插补图像生成部30912)通过插补滤波器,根据整数像素位置的参照图像的像素值来生成插补图像。
在运动矢量mvLX不是整数精度的情况下,插补图像生成部3092根据与相位nFrac对应的NTAP抽头的滤波器系数mcFilter[nFrac][k](k=0…NTAP-1)与参照图像的像素的积和运算,生成上述的PU插补图像Pred_C[x][y]或OBMC插补图像Pred_N[x][y]。
具体而言,插补图像生成部3092将预测块(PU或者子块)的左上坐标(xb,yb)、尺寸(nW,nH)、运动矢量mvLX、参照图像refImg(参照图片索引refIdxLXP所指示的参照图片)、插补滤波器系数mcFilter[]、插补滤波器的抽头数NTAP作为输入参数,生成插补图像。
在PU插补图像Pred_C[x][y]的导出中,插补图像生成部3092使用(xb,yb)=(xPb,yPb)、(nW,nH)=(nPbW,nPbH)、mvLX=对象PU(对象子块)的运动矢量mvLXC、参照图像refImg、运动矢量精度M、抽头数NTAP作为输入参数。需要说明的是,在将PU分割为子块来进行处理的情况下,使用(xb,yb)=(xPb+nSbW*i,yPb+nSbH*j)(在此i=0,1,2,…nPbW/nSbW-1、j=0,1,2,…nPbH/nSbH-1)、(nW,nH)=(nSbW,nSbH)、mvLXP=mvLX=邻接子块的运动矢量mvLXN、参照图像refImg=邻接子块的参照图片索引refIdxLXN所指示的参照图片、运动矢量精度M、抽头数NTAP作为输入参数。在OBMC插补图像Pred_N[x][y]的导出中,插补图像生成部3092使用(xb,yb)=(xPb+nSbW*i,yPb+nSbH*j)(在此i=0,1,2,…nPbW/nSbW-1、j=0,1,2,…nPbH/nSbH-1)、(nW,nH)=(nSbW,nSbH)、mvLXP=mvLXN、参照图像refImg、运动矢量精度M、抽头数NTAP作为输入参数。
插补图像生成部3092首先通过以下算式导出与预测块内坐标(x,y)对应的整数位置(xInt,yInt)以及相位(xFrac,yFrac)。
xInt=xb+(mvLX[0]>>(log2(M)))+x
xFrac=mvLX[0]&(M-1)
yInt=yb+(mvLX[1]>>(log2(M)))+y
yFrac=mvLX[1]&(M-1)
在此,x=0…nW-1、y=0…nH-1、M表示运动矢量mvLX的精度(1/M像素精度)。
即,如上述算式所示,插补图像生成部3092将对象预测单元(PU)的运动信息应用于与对象子块对应的上述参照图像上的子块。
插补图像生成部3092通过对参照图像refImg使用插补滤波器来进行垂直插补处理,导出临时图像temp[][](以下的Σ是与k=0…NTAP-1的k相关的和,shift1是调整值的范围的正规化参数)。
temp[x][y]=(ΣmcFilter[yFrac][k]*refImg[xInt][yInt+k-NTAP/2+1]+offset1)>>shift1
接着,插补图像生成部3092通过对临时图像temp[][]进行水平插补处理,导出插补图像Pred[][](以下的Σ是与k=0..NTAP-1的k相关的和,shift2是调整值的范围的正规化参数)。
Pred[x][y]=(ΣmcFilter[xFrac][k]*temp[xInt+k-NTAP/2+1][yInt]+offset2)>>shift2
(滤波器系数的示例)
接着,在运动矢量精度M=4中,示出与NTAP=2、4、6、8的各抽头数对应的插补滤波器mcFilterN2、mcFilterN4、mcFilterN6、mcFilterN8的示例。需要说明的是,滤波器系数并不限定于此。
mcFilterN8[]={
{0,0,0,64,0,0,0,0}、
{-1,4,-10,58,17,-5,1,0}、
{-1,4,-11,40,40,-11,4,-1}、
{0,1,-5,17,58,-10,4,-1}
}
mcFilterN6[]={
{0,0,64,0,0,0}、
{2,-8,56,18,-6,2}、
{2,-10,40,40,-10,2}、
{2,-6,18,56,-8,2}、
}
mcFilterN4[]={
{0,64,0,0}、
{-4,54,16,-2}、
{-4,36,36,-4}、
{-2,16,54,-4}
}
mcFilterN2[]={
{64,0}、
{48,16}、
{32,32}、
{16,48}
}
需要说明的是,在未进行OBMC处理的情况下,也可以采用仅PU插补图像生成部30911执行处理的构成。
(加权平均)
在进行OBMC处理的构成中,上述的OBMC校正部3093通过对接收到的OBMC插补图像Pred_N[x][y]以及PU插补图像Pred_C[x][y]进行加权平均处理,来生成或更新预测图像Pred_[x][y]。详细而言,OBMC校正部3093在从帧间预测参数解码部303输入的OBMC标志obmc_flag为1(OBMC处理为有效)的情况下,进行由以下算式所示的加权平均处理。
预测图像Pred_[x][y]=((w1*PU插补图像Pred_C[x][y]+w2*OBMC插补图像Pred_N[x][y])+o)>>shift
在此,对加权平均处理中的加权w1、w2进行说明。
加权平均处理中的加权w1、w2根据PU边界距对象像素的距离(像素数)来确定。
移位值shift既可以根据距离而变更,也可以固定。
以下,对作为OBMC处理尺寸的nObmcW以及nObmcH为4像素的情况下的预测图像Pred_[x][y]的生成进行说明。
在根据距离变更移位值的情况下,例如,也可以设为{w1,w2,o,shift}={3,1,2,2}、{7,1,4,3}、{15,1,8,4}、{31,1,16,5}。在该情况下,通过下式来生成预测图像Pred_[x][y]。
Pred_[x][y]=(3*Pred_C[x][y]+1*Pred_N[x][y]+2)>>2距离=0像素
Pred_[x][y]=(7*Pred_C[x][y]+1*Pred_N[x][y]+4)>>3距离=1像素
Pred_[x][y]=(15*Pred_C[x][y]+1*Pred_N[x][y]+8)>>4距离=2像素
Pred_[x][y]=(31*Pred_C[x][y]+1*Pred_N[x][y]+16)>>5距离=3像素
此外,在不根据距离来固定移位值的情况下,例如,也可以设为{w1,w2}={24,8}、{28,4}、{30,2}、{31,1}、o=16、shift=5。在该情况下,通过下式来生成预测图像Pred_[x][y]。
Pred_[x][y]=(24*Pred_C[x][y]+8*Pred_N[x][y]+16)>>5距离=0像素
Pred_[x][y]=(28*Pred_C[x][y]+4*Pred_N[x][y]+16)>>5距离=1像素
Pred_[x][y]=(30*Pred_C[x][y]+2*Pred_N[x][y]+16)>>5距离=2像素
Pred_[x][y]=(31*Pred_C[x][y]+1*Pred_N[x][y]+16)>>5距离=3像素
需要说明的是,基于根据距离来变更移位值的情况下的上述算式而生成的Pred_[x][y]和基于不根据距离来固定移位值的情况下的上述算式来生成的Pred_[x][y]是等价的。
此外,作为OBMC处理尺寸的nObmcW以及nObmcH为2像素的情况下的预测图像Pred_[x][y]的生成如下所述。
在根据距离变更移位值的情况下,例如,也可以设为{w1,w2,o,shift}={3,1,2,2}、{7,1,4,3}。在该情况下,通过下式来生成预测图像Pred_[x][y]。
Pred_[x][y]=(3*Pred_C[x][y]+1*Pred_N[x][y]+2)>>2距离=0像素
Pred_[x][y]=(7*Pred_C[x][y]+1*Pred_N[x][y]+4)>>3距离=1像素
此外,在不根据距离来固定移位值的情况下,例如,也可以设为{w1,w2}={24,8}、{28,4}、o=16、shift=5。在该情况下,通过下式来生成预测图像Pred_[X][Y]。
Pred_[x][y]=(24*Pred_C[x][y]+8*Pred_N[x][y]+16)>>5距离=0像素
Pred_[x][y]=(28*Pred_C[x][y]+4*Pred_N[x][y]+16)>>5距离=1像素
在OBMC处理中,使用多个邻接PU(与对象PU的上左下右邻接的PU)的运动参数来生成预测图像。在此,对由多个邻接PU的运动参数来生成Pred_[x][y]的方法的概要进行说明。
首先,OBMC校正部3093将PU插补图像Pred_C[x][y]以及使用与对象PU的上邻接的PU的运动参数而作成的OBMC插补图像Pred_N[x][y]应用于上述算式,来生成预测图像Pred_[x][y]。
预测图像Pred_[x][y]=((w1*预测图像Pred_C[x][y]+w2*OBMC插补图像Pred_N[x][y])+o)>>shift
接着,OBMC校正部3093使用与对象PU的左邻接的PU的运动参数而作成的OBMC插补图像Pred_N[x][y]以及先前生成的预测图像Pred[x][y]来更新预测图像Pred_[x][y]。即,通过以下的算式进行更新。
预测图像Pred_[x][y]=((w1*预测图像Pred_[x][y]+w2*OBMC插补图像Pred_N[x][y])+o)>>shift
同样地,OBMC校正部3093使用与对象PU的下以及右邻接的PU的运动参数而作成的OBMC插补图像Pred_N[x][y],来更新预测图像Pred_[x][y]。
OBMC校正部3093将Pred_N[x][y]设为使用与对象PU的下邻接的PU的运动参数而作成的OBMC插补图像,通过以下的算式来更新预测图像Pred_[x][y]。
预测图像Pred_[x][y]=((w1*预测图像Pred_[x][y]+w2*OBMC插补图像Pred_N[x][y])+o)>>shift
OBMC校正部3093将Pred_N[x][y]设为使用与对象PU的右邻接的PU的运动参数而作成的OBMC插补图像,通过以下的算式来更新预测图像Pred_[x][y]。
预测图像Pred_[x][y]=((w1*预测图像Pred_[x][y]+w2*OBMC插补图像Pred_N[x][y])+o)>>shift
根据上述的构成,运动补偿部3091使用与对象PU邻接的PU的运动参数来生成追加的插补图像。而且,运动补偿部3091能使用生成的插补图像来生成预测图像。因此,能生成预测精度较高的预测图像。
此外,作为OBMC处理的对象的子块的尺寸为任意的尺寸为好(4×4~PU尺寸)。此外,包括作为OBMC处理的对象的子块的PU的分割样式可以是2N×N、N×2N、N×N等任意的分割样式。
(OBMC处理的流程)
接着,对本实施方式的OBMC处理的流程进行说明。
图16是表示本实施方式的运动补偿部3091的处理的流程的流程图。此外,图17是表示OBMC处理的伪代码。
插补图像生成部3092导出PU插补图像Pred_C[x][y](S1)。此外,插补图像生成部3092接收obmc_flag,当obmc_flag指示1时,进入至导出OBMC插补图像Pred_N[x][y]的工序。
需要说明的是,在OBMC标志obmc_flag为0的情况下,插补图像生成部3092不进行OBMC处理,PU插补图像Pred_C[x][y]为预测图像Pred_[x][y]。
需要说明的是,在对象CU被分割成2N×2N的分区,且预测模式为合并模式(包括跳跃模式)的情况下,熵解码部301不根据编码数据对OBMC标志obmc_flag进行解码,而导出表示OBMC为有效的值(1)。即,在对象CU为2N×2N且合并模式的情况下,将OBMC处理始终设为开启。
运动补偿部3091接收OBMC标志obmc_flag,判断OBMC标志obmc_flag是否为1(S11)。在obmc_flag为1,即,OBMC为开启的情况(S11中为是)下,插补图像生成部3092以及OBMC校正部3093对上above、左left、下bottom、右right的各方向dir进行环处理(S2)。通过依次对方向环的环变数dir设定方向集合dirSet(dirSet={above,left,bottom,right})所包括的方向的值,来进行环处理(环的终端为S8)。需要说明的是,也可以对above、left、bottom、right分配0、1、2、3的值,对dirSet={0,1,2,3}进行处理。而且,插补图像生成部3092以及OBMC校正部3093对构成PU的各子块,进行环处理(S9)。即,在S9中,确定进行OBMC处理的子块。将子块环的环变数设为坐标(xSb,ySb),插补图像生成部3092以及OBMC校正部3093通过依次设定PU内的子块的坐标来进行环处理(环的终端为S7)。需要说明的是,在OBMC未开启的情况(S11中为否)下,处理结束。
以下,在环中,对于由S2确定的邻接子块的方向dir以及由S9确定的坐标的子块,在满足S3、S4的条件的情况下,插补图像生成部3092生成用于预测图像Pred_[x][y]的生成以及更新的OBMC插补图像Pred_N[x][y](S5),并在OBMC校正部3093中校正预测图像(S6)。
对子块环处理进行详细说明。OBMC插补图像生成部30912判断位于对象子块的方向dir的邻接子块的预测参数是否为vaild(S3)。需要说明的是,将参照方向dir为上、左、下、右的情况下的运动参数的邻接子块的位置(xNb,yNb)分别设为(xSb,ySb-1)、(xSb-1,ySb)、(xSb,ySb+nSbH)、(xSb+nSbW,ySb)。在此,(xSb,ySb)是子块的左上坐标,nSbW、nSbH是子块的宽度和高度。
对S3进行详细说明,OBMC插补图像生成部30912判断该方向的邻接子块的运动参数是否为可利用(valid)。例如,在邻接子块的预测模式为帧内预测的情况下、在邻接子块为画面外的情况下、或者邻接子块的运动参数为未知的情况下,OBMC插补图像生成部30912判断邻接子块的运动参数无法利用。换言之,邻接子块(xNb,yNb)的预测模式为帧内预测以外的模式,且邻接子块的位置(xNb,yNb)为画面内,且邻接子块(xNb,yNb)的运动参数为表示已知的参数(例如,参照图片索引为-1以外)的情况下,OBMC插补图像生成部30912判断为能利用邻接子块的运动参数。此外,在邻接子块为帧内块复制PU的情况下,邻接子块保持运动参数,但OBMC插补图像生成部30912也可以判断为无法利用运动参数。在此,“valid”是指,判断为运动参数可利用的情况。
使用图18对邻接子块的运动参数为未知的情况进行详细的说明。图18是说明邻接子块的运动参数是否为未知的图。如图18所示,例如当按CU单位通过Z扫描命令导出各CU的运动参数时,已经处理过的邻接CU(上以及左的邻接CU)所包括的PU的运动参数为已知。但是,处理前CU(下以及右的邻接CU)所包括的PU的运动参数为未知。需要说明的是,同一CU内的PU的运动参数同时被导出。因此,在同一CU内,左、上、右、下的邻接的PU的运动参数为已知。换言之,在CU边界上,有时仅使用与左以及上邻接的PU的运动参数来执行OBMC处理。另一方面,在PU边界上,使用与左、上、右、下邻接的PU的运动参数来执行OBMC处理。
以下,在本发明中,如下将子块(PU)的边界区分为CU边界和PU边界。
CU边界:在对象子块与邻接子块的边界上,在包括对象子块的CU和包括邻接子块的CU属于不同的CU时,将该边界称为CU边界。例如在图18中,对象PU与上邻接CU的边界、对象PU与左邻接CU的边界为CU边界。
PU边界:在对象子块与邻接子块的边界上,将CU边界以外的边界(包括对象子块的CU和包括邻接子块的CU属于同一CU)称为PU边界。例如在图18中,对象PU与对象PU的右侧的PU的边界为PU边界。
在邻接子块为可利用的情况(S3中为是)下,OBMC插补图像生成部30912对邻接子块(xNb,yNb)的运动参数与对象子块的运动参数是否相等进行判定(S4)。
在此,在运动参数不同的情况下,将DiffMotionAvail设定为1,在相等情况下,将DiffMotionAvail设定为0。
反之,在邻接子块不可利用的情况(S3中为否的情况)下,省略统一性判定处理(S4)、OBMC插补图像生成(S5)以及预测图像的校正(S6),并转移至下一子块的处理(S7)。
对S4进行详细说明,例如OBMC插补图像生成部30912也可以使用运动矢量作为用于统一性判定的运动参数。
在该情况下,判定邻接子块(xNb,yNb)的运动矢量mvLXN是否与对象子块的运动矢量mvLX相等。
OBMC插补图像生成部30912除了运动矢量以外,还可以基于参照图片索引来进行判断,作为用于统一性判定的运动参数。
在对象子块的运动矢量为(mvLX[0]、mvLX[1]),参照图片索引为(refIdxLX)、邻接子块的运动矢量为(mvLXN[0]、mvLXN[1])、参照图片索引为(refIdxLXN)的情况下,当运动矢量或参照图片索引在对象子块以及在邻接子块上不同时,OBMC插补图像生成部30912设定为DiffMotionAvail=1,OBMC插补图像生成部30912判断出运动参数不同(S4中为否)。
当通过算式表示运动参数的统一性的判断时,
DiffMotionAvail=(mvLX[0]!=mvLXN[0])||(mvLX[1]!=mvLXN[1])||(refIdxLX!=refIdxLXN),在运动参数不同的情况下,DiffMotionAvail=1。
此外,运动矢量以及参照图片索引在对象子块以及邻接子块上相等的情况下,DiffMotionAvail=0。在该情况下,OBMC插补图像生成部30912判断出运动参数相等(S4中为是)。
作为用于统一性判定的运动参数,也可以使用POC(Picture Order Count:图片序列号)来代替参照图片索引。在该情况下,运动矢量或POC在对象子块以及在邻接子块上不同的情况下,OBMC插补图像生成部30912设定为DiffMotionAvail=1,OBMC插补图像生成部30912判断出运动参数不同(S4中为否)
当通过算式表示运动参数的统一性的判断时,
DiffMotionAvail=(mvLX[0]!=mvLXN[0])||(mvLX[1]!=mvLXN[1])||(refPOC!=refPOCN)
在此,refPOC以及refPOCN是对象子块以及邻接子块的参照图像的POC。
在邻接子块的运动参数与对象子块的运动参数不相等的情况(S4中为否)下,OBMC插补图像生成部30912生成(导出)对象子块的OBMC插补图像Pred_N[x][y](S5),OBMC校正部3093使用对象子块的OBMC插补图像Pred_N[x][y]以及PU插补图像Pred_C[x][y]来生成或更新预测图像Pred_[x][y](S6)。反之,在运动参数相等(S4中为是)的情况下,省略对象子块的OBMC插补图像Pred_N生成和使用了OBMC插补图像Pred_N的预测图像的校正,转移至下一子块的处理(S7)。
对S5进行详细说明,OBMC插补图像生成部30912使用邻接子块的运动参数来生成(导出)OBMC插补图像Pred_N[x][y]。
例如,将对象子块的左上坐标设为(xSb,ySb),将子块尺寸设为nSbW、nSbH。
在此,在预测模式不为子块预测的(未对PU进行分割就进行处理)情况下,OBMC插补图像生成部30912将表示OBMC处理尺寸的宽度的nObmcW以及表示高度的nObmcH设定为4个像素。
此外,在预测模式为子块预测的情况下,OBMC插补图像生成部30912将作为OBMC处理尺寸的nObmcW以及nObmcH设定为2个像素。
OBMC插补图像生成部30912在dir==above时,参照与对象子块的上邻接的子块(xNb,yNb)=(xSb,ySb-1)的运动参数,导出将(xSb,ySb)作为左上坐标的尺寸(nSbW,nObmcH)的块的插补图像。
此外,OBMC插补图像生成部30912在dir==left时,参照与对象子块的左邻接的子块(xNb,yNb)=(xSb-1,ySb)的运动参数,导出将(xSb,ySb)作为左上坐标的尺寸(nObmcW,nSbH)的块的插补图像。
此外,OBMC插补图像生成部30912在dir==bottom时,参照与对象子块的下邻接的子块(xNb,yNb)=(xSb,ySb+nSbH)的运动参数,导出将(xSb,ySb+nSbH-nObmcH)作为左上坐标的尺寸(nSbW,nObmcH)的块的插补图像。
此外,OBMC插补图像生成部30912在dir==right时,参照与对象子块的右邻接的子块(xNb,yNb)=(xSb+nSbW,ySb)的运动参数,导出将(xSb+nSbW-nObmcW,ySb)作为左上坐标的尺寸(nObmcW,nSbH)的块的插补图像。
上述的处理按伪代码可以如下所示。在伪代码中,通过Interpolation(refPic,xb,yb,nW,nH,mvRef)表示参照图像refPic、坐标(xb,yb)、尺寸nW、nH、运动矢量mvRef的插补图像生成处理。在此,通过mvLX[x][y]、refIdxLX[x][y]参照坐标(x,y)的运动参数。
nObmcW=nObmcH=(PU不是子块)?4:2
if(dir==above)
mvRef=mvLX[xSb][ySb-1],refPic=refIdxLX[xSb][ySb-1]
predN=Interpolation(refPic,xSb,ySb,nSbW,nObmcH,mvRef)else if(dir==left)
mvRef=mvLX[xSb-1][ySb],refPic=refIdxLX[xSb-1][ySb]
predN=Interpolation(refPic,xSb,ySb,nObmcW,nSbH,mvRef)else if(dir==bottom)
mvRef=mvLX[xSb][ySb+nSbH],refPic=refIdxLX[xSb][ySb+nSbH]
predN=Interpolation(refPic,xSb,ySb+nSbH-nObmcH,nSbW,nObmcH,mvRef)else if(dir==right)
mvRef=mvLX[xSb+nSbW][ySb],refPic=refIdxLX[xSb+nSbW][ySb]
predN=Interpolation(refPic,xSb+nSbW-nObmcW,ySb,nObmcW,nSbH,mvRef)
接着,OBMC校正部3093参照对象子块OBMC插补图像Pred_N[x][y]以及PU插补图像Pred_C[x][y]来进行加权平均处理,生成或更新预测图像Pred_[x][y](S6)。
对S6进行详细说明,OBMC校正部3093根据距与邻接子块的边界的距离,参照OBMC插补图像Pred_N[x][y]以及PU插补图像Pred_C[x][y]进行加权平均处理。加权平均处理如下所述。
Pred_[x][y]=Pred_C[x][y]
dir==above时,设i=0…nSbW-1、j=0…nObmcH-1,OBMC校正部3093根据下式导出预测图像Pred_[x][y]。
x=xSb+i、y=ySb+j
Pred_[x][y]=(w1*Pred_[x][y]+w2*Pred_N[i][j]+o)>>shift
w1=weightObmc[j]、w2=(1<<shift)-w1,o=(1<<(shift-1))
此外,dir==left时,设i=0…nObmcW-1、j=0…nSbH-1,由下式导出预测图像Pred_[x][y]。
x=xSb+i、y=ySb+j
Pred_[x][y]=(w1*Pred_[x][y]+w2*Pred_N[i][j]+o)>>shift
w1=weightObmc[i]、w2=(1<<shift)-w1,o=(1<<(shift-1))
此外,dir==bottom时,OBMC校正部3093设i=0…nSbW-1、j=0…nObmcH-1,由下式导出预测图像Pred_[x][y]。
x=xSb+i、y=ySb+nSbH-nObmcH+j
Pred_[x][y]=(w1*Pred_[x][y]+w2*Pred_N[i][j]+o)>>shift
w1=weightObmc[nObmcH-1-j]、w2=(1<<shift)-w1,o=(1<<(shift-1))
此外,dir==right时,OBMC校正部3093设i=0…nObmcW-1、j=0…nSbH-1,根据下式导出预测图像Pred_[x][y]。
x=xSb+nSbW-nObmcW+i、y=ySbH+j
Pred_[x][y]=(w1*Pred_[x][y]+w2*Pred_N[i][j]+o)>>shift
w1=weightObmc[nObmcW-1-i]、w2=(1<<shift)-w1,o=(1<<(shift-1))
如上所述,加权根据距边界的距离(像素数)而设定,加权表weightObmc也可以如下所示。
weightObmc[]={24,28,30,31}、shift=5
w1[i]=weightObmc[i]、w2=(1<<shift)-w1
Pred_[x][y]=(w1*Pred_[x][y]+w2*Pred_N[i][j]+o)>>shift
weightObmc[]={8,4,2,1}、shift=5
w1[i]=weightObmc[i]、w2=(1<<shift)-w1
Pred_[x][y]=(w2*Pred_[x][y]]+w1*Pred_N[i][j]+o)>>shift
接着,运动补偿部3091判断在OBMC处理对象的子块中是否存在未处理的子块(S7)。
在PU内不存在未处理的子块的情况(S7中为否)下,运动补偿部3091使用对象PU的所有方向的邻接子块的运动参数,判断是否进行了S3~S6的OBMC处理(S8)。就是说,判断是否对方向集合dirSet所包括的所有方向进行了处理。
在使用所有方向的邻接子块的运动参数进行了OBMC处理的情况(S8中为否)下,处理结束。
需要说明的是,在PU内存在未处理的子块的情况(S7中为是)下,转移至S9,继续下一子块的处理。此外,在未使用所有方向的邻接子块的运动参数来进行OBMC处理的情况(S8中为是)下,转移至S2,进行下一方向的处理。
需要说明的是,在obmc_flag=0的情况下,PRED_[][]=PRED_C[][]。
以下,参照图19~图37,对本实施方式的图像解码装置31进行具体说明。
OBMC处理除了进行各PU的运动插补(PU插补图像生成)以外,还需要在与PU的边界邻接的区域内利用邻接PU的运动信息来进行OBMC插补(OBMC插补图像生成)。因此,用于接入图像数据的存储带区变大。根据如下所示的本实施方式的图像解码装置31的构成(OBMC处理的简化),能减小存储带区。
(OBMC处理的简化)
(小抽头滤波器的OBMC处理1)
对本实施方式的图像解码装置31进行说明。
本实施方式的运动补偿部3091(预测图像生成装置)参照参照图像来生成预测图像。运动补偿部3091生成对象子块中的预测图像。运动补偿部3091具备:PU插补图像生成部(插补图像生成部)30911,通过将对象PU的运动参数(运动信息)和滤波处理应用于与对象子块对应的上述参照图像上的子块来生成PU插补图像(插补图像)。
此外,运动补偿部3091具备:OBMC插补图像生成部(追加插补图像生成部)30912,通过将与对象子块邻接的邻接子块的运动参数和滤波处理应用于与对象子块对应的参照图像上的子块来生成OBMC插补图像(追加插补图像)。
此外,具备:OBMC校正部(预测部)3093,在开启由PU插补图像和OBMC插补图像生成预测图像的OBMC处理(第一模式)下生成预测图像。
在PU插补图像生成部30911以及OBMC插补图像生成部30912选择了上述第一模式的情况下,使用抽头数比选择关闭仅使用PU插补图像来生成预测图像的OBMC处理(第二模式)的情况少的滤波器进行处理。
根据上述的构成,在PU插补图像生成部30911以及OBMC插补图像生成部30912选择了第一模式的情况下,进行抽头数比选择了第二模式的情况少的滤波处理。因此,能减小向图像数据接入用的存储带区。
使用图19至图21说明本实施方式的运动补偿部3091的处理的一个示例。
图19是表示本实施方式的运动补偿部3091(PU插补图像生成部30911以及OBMC插补图像生成部30912)所进行的滤波处理的概要的图。
图19(a)示出关闭OBMC处理的情况下的针对PU的滤波处理,图19(b)示出开启OBMC处理的情况下的针对PU的滤波处理。如图19(a)所示,在关闭OBMC处理的情况下,PU插补图像生成部30911使用通常的抽头数N,例如N=8的滤波器来生成PU插补图像。此外,不生成OBMC插补图像。即,仅使用PU插补图像不生成预测图像。
此外,如图19(b)所示,在开启OBMC处理的情况下,PU插补图像生成部30911使用比关闭OBMC处理的情况下的抽头数少的抽头数Nobmc,例如Nobmc=6的滤波器来生成PU插补图像,此外,OBMC插补图像生成部30912使用比关闭OBMC处理的情况下的抽头数(通常的抽头数)少的抽头数M。例如使用M=6的滤波器,来生成OBMC插补图像。
需要说明的是,在开启OBMC处理的情况下,运动补偿部3091将与在关闭OBMC处理的情况下所使用的PU插补图像生成的滤波器的抽头数N相比,抽头数少的抽头数Nobmc以及抽头数M的滤波器用于PU插补图像生成以及OBMC插补图像生成即可(Nobmc<N、M<N),用于开启以及关闭OBMC处理时的滤波器的抽头数并不特别限定于上述的例示。
图20是表示本实施方式的帧间预测图像生成部309的处理的流程的流程图。此外,图21是表示本实施方式的帧间预测图像生成部309的处理的伪代码。
在图20所示的处理的流程中,对与在图16所说明的运动补偿部3091的处理的流程不同的步骤标注与图16不同的编号来示出。在此,仅对与在图16所说明的运动补偿部3091的处理的流程不同的步骤进行说明。
运动补偿部3091接收OBMC标志obmc_flag,判断OBMC标志obmc_flag是否为1(S11)。在obmc_flag为1,即,开启OBMC的情况(S11中为是)下,PU插补图像生成部30911使用抽头数为Nobmc(例如,6)的滤波器进行插补,导出PU插补图像Pred_C[x][y](S12)。接着,进行S2~S4的处理。在邻接子块的运动矢量mvLXN与对象子块的运动矢量mvLX不相等的情况(S4中为否)下,OBMC插补图像生成部30912使用抽头数为M(例如,6)的滤波器来进行插补,导出OBMC插补图像Pred_N[x][y](S15)。接着,继续S6。
此外,在obmc_flag为0,即,关闭OBMC的情况(S11中为否)下,PU插补图像生成部30911使用抽头数为N(例如,8)的滤波器来进行插补,导出PU插补图像Pred_C[x][y](S1)。在该情况下,PU插补图像Pred_C[x][y]为预测图像Pred_[x][y]。
(小抽头滤波器的OBMC处理2)
接着,对本实施方式的图像解码装置31进行说明。
本实施方式的运动补偿部3091(预测图像生成装置)参照参照图像来生成预测图像。运动补偿部3091生成对象子块中的预测图像。运动补偿部3091具备:PU插补图像生成部(插补图像生成部)30911,通过将对象PU的运动参数(运动信息)和滤波处理应用于与对象子块对应的参照图像上的子块,来生成PU插补图像(插补图像)。
此外,运动补偿部3091具备:OBMC插补图像生成部(追加插补图像生成部)30912,通过将与对象子块邻接的邻接子块的运动参数和滤波处理应用于与对象子块对应的上述参照图像上的子块,来生成OBMC插补图像(追加插补图像)。
此外,运动补偿部3091具备:OBMC校正部(预测部)3093,在开启由PU插补图像和OBMC插补图像来生成预测图像的OBMC处理(第一模式)下,生成预测图像。
在选择开启上述OBMC处理(第一模式)的情况下,OBMC插补图像生成部30912将用于OBMC插补图像的生成的滤波器的抽头数设定得比用于PU插补图像的生成的滤波器的抽头数少。
根据上述的构成,在选择第一模式的情况下,OBMC插补图像生成部30912将用于OBMC插补处理的滤波器的抽头数M设定得比用于PU插补处理的滤波器的抽头数N少。因此,能减小向图像数据接入用的存储带区。
使用图22至图24说明本实施方式的运动补偿部3091的处理的一个示例。
图22是表示本实施方式的运动补偿部3091(PU插补图像生成部30911以及OBMC插补图像生成部30912)所进行的滤波处理的概要的图。
图22(a)示出关闭OBMC处理的情况下的针对PU的滤波处理,图22(b)示出开启OBMC处理的情况下的针对PU的滤波处理。如图22(a)所示,在关闭OBMC处理的情况下,PU插补图像生成部30911使用PU插补图像的抽头数N,例如,N=8的滤波器来生成PU插补图像。此外,如图22(b)所示,在开启OBMC处理的情况下,PU插补图像生成部30911使用PU插补图像的抽头数N的滤波器来生成PU插补图像。
此外,OBMC插补图像生成部30912使用满足M<N的OBMC插补图像的抽头数M,例如M=6的滤波器来生成OBMC插补图像。
需要说明的是,在开启OBMC处理的情况下,OBMC插补图像生成部30912将用于OBMC插补处理的滤波器的抽头数M设定得比用于PU插补处理的滤波器的抽头数N小即可,用于PU插补处理的滤波器的抽头数以及用于OBMC插补处理的滤波器的抽头数并不限定于上述的例示。图23是表示本实施方式的运动补偿部3091的处理的流程的流程图。此外,图24是表示本实施方式的运动补偿部3091的处理的伪代码。
在图23所示的处理的流程中,对与在图16所说明的运动补偿部3091的处理的流程不同的步骤标注与图16不同的编号而示出。在此,仅对与在图16所说明的运动补偿部3091的处理的流程不同的步骤进行说明。
与图16不同的是,在邻接子块的运动矢量mvLXN与对象子块的运动矢量mvLX不相等,或参照图像不同的情况(S4中为否)下,OBMC插补图像生成部30912导出OBMC插补图像Pred_N[x][y]。此时,将用于OBMC插补图像生成的滤波器的抽头数设定为M(例如,6)(S22)。
(小尺寸OBMC处理)
接着,对本实施方式的其他图像解码装置31进行说明。
本实施方式的运动补偿部3091(预测图像生成装置)参照参照图像来生成预测图像。运动补偿部3091通过进行单预测以及双预测中的任一中帧间预测来生成预测图像。
运动补偿部3091具备:插补图像生成部(图像生成部)3092,生成PU插补图像(插补图像)以及obmc插补图像(追加插补图像),所述PU插补图像(插补图像)将对象PU内的运动信息和滤波处理应用于与对象PU对应的上述参照图像上的PU而得到,所述obmc插补图像(追加插补图像)通过将邻接PU的运动信息和滤波处理应用于与对象PU对应的上述参照图像上的PU的边界区域的像素而得到。
此外,运动补偿部3091具备:OBMC校正部(预测部)3093,在上述边界区域中参照PU插补图像和OMBC插补图像来生成预测图像。
插补图像生成部3092在通过双预测(Bipred)来生成预测图像的情况下,将边界区域设定得比通过单预测来生成预测图像的情况更窄。
需要说明的是,在本例示中,举例示出将双预测作为高负载处理,但是高负载处理并不限定于双预测。因此,上述构成能解释如下。插补图像生成部3092在进行其他高负载的处理的环境下通过OBMC处理而生成预测图像的情况下,边界区域设定得比在不进行高负载的处理的环境下通过OBMC处理而生成预测图像的情况更窄。
根据上述的构成,插补图像生成部3092通过双预测(Bipred)生成预测图像的情况与通过单预测生成预测图像的情况相比,将边界区域设定得更窄。因此,能减小向图像数据接入用的存储带区。
使用图25至图27说明本实施方式的运动补偿部3091的处理的一个示例。
图25是表示本实施方式的运动补偿部3091的处理的概要的图。图25(a)示出关闭OBMC处理的情况下的PU中进行OBMC处理的区域的尺寸。图25(b)示出开启OBMC处理且关闭Bipred的情况下的PU中进行OBMC处理的区域的尺寸。图25(c)示出开启OBMC处理且开启Bipred的情况下的PU中进行OBMC处理的区域的尺寸(边界区域的尺寸)。
如图25(a)所示,在关闭OBMC处理的情况下,运动补偿部3091(OBMC插补图像生成部30912)对OBMC处理尺寸nObmcW、nObmcH0像素进行设定。
即,不进行OBMC处理。此外,如图25(b)所示,在开启OBMC处理且关闭Bipred(Bipred=0)的情况下,OBMC插补图像生成部30912将OBMC处理尺寸nObmcW、nObmcH设定为nObmcW0、nObmcH0。在此,将nObmcW0、nObmcH0设定为除了0像素以外,例如,4个像素。此外,在开启OBMC处理且开启Bipred的情况下,OBMC插补图像生成部30912将OBMC处理尺寸nObmcW、nObmcH设定为nObmcW1、nObmcH1。例如,将nObmcW1、nObmcH1设定为2个像素。
需要说明的是,通过双预测(Bipred)来生成预测图像的情况与通过单预测来生成预测图像的情况相比,将OBMC处理区域设定得更窄即可,并不特别限定双预测时以及单预测时设定的OBMC处理尺寸。就是说,开启Bipred的情况下的OBMC处理尺寸nObmcW1、nObmcH1、关闭Bipred的情况下的OBMC处理尺寸nObmcW0、nObmcH0并不限定于上述的例示,设定为满足nObmcW1<nObmcW0、nObmcH1<nObmcH0即可。
图26是表示本实施方式的运动补偿部3091的处理的流程的流程图。此外,图27是表示本实施方式的运动补偿部3091的处理的伪代码。
在图26所示的处理的流程中,对与在图16所说明的帧间预测图像生成部309的处理的流程不同的步骤标注与图16不同的编号而示出。在此,仅对与在图16所说明的运动补偿部3091的处理的流程不同的步骤进行说明。
在邻接子块的运动矢量mvLXN与对象子块的运动矢量mvLX不相等、或邻接子块的参照图像与对象子块的参照图像不同的情况(S4中为否)下,OBMC插补图像生成部30912判断是否关闭双预测(S31)。
在关闭双预测的情况(S31中为是)下,OBMC插补图像生成部30912将OBMC处理的对象区域设定得较宽(例如,为nObmcW0=nObmcH0=4个像素)(S32)。此外,在开启双预测的情况(S31中为否)下,OBMC插补图像生成部30912将OBMC处理的对象区域设定得较窄(例如,为nObmcW1=nObmcH1=2个像素)(S33)。
需要说明的是,也可以包括使用三个以上的参照图像来进行预测的情况。在此情况下,使用多个参照预测Pred来代替双预测BiPred。
(一维OBMC处理)
接着,对本实施方式的其他运动补偿部3091进行说明。
本实施方式的运动补偿部3091(预测图像生成装置)具备:帧间预测图像生成部(预测图像生成部)309,通过进行单预测以及双预测中的任一帧间预测来生成预测图像。
运动补偿部3091具备:PU插补图像生成部(插补图像生成部)30911,通过将对象PU的运动信息和滤波处理应用于与对象PU对应的上述参照图像上的PU,来生成PU插补图像(插补图像)。
此外,运动补偿部3091具备:OBMC插补图像生成部(可利用性确认部)30912,对对象PU按邻接方向确认与该邻接方向邻接的PU中的运动信息的可利用性。
OBMC插补图像生成部30912通过将判断为可利用的运动信息和滤波处理应用于与对象PU对应的上述参照图像上的PU来生成OBMC插补图像(追加插补图像)。
此外,帧间预测图像生成部309具备:OBMC校正部(预测部)3093,参照PU插补图像和OBMC插补图像来生成预测图像。
OBMC插补图像生成部30912在通过双预测来生成预测图像的情况下,将邻接方向的数量设定得比通过单预测生成预测图像的情况更小。即,OBMC插补图像生成部30912限定参照的邻接子块。
根据上述的构成,OBMC插补图像生成部30912在通过双预测生成预测图像的情况下,与通过单预测生成预测图像的情况相比,将OBMC处理的次数设定得更小。因此,能减小向图像数据接入用的存储带区。
在本实施方式(一维的OBMC处理)中,OBMC插补图像生成部30912不参照一个PU内所有方向的邻接块。换言之,OBMC插补图像生成部30912仅参照在一个PU内限定的一部分的方向的邻接块。
图28是表示本实施方式的运动补偿部3091的处理的流程的流程图。此外,图29是表示本实施方式的运动补偿部3091的处理的伪代码。
在图28所示的处理的流程中,对与在图16所说明的运动补偿部3091的处理的流程不同的步骤标注与图16不同的编号而示出。在此,仅对与在图16所说明的运动补偿部3091的处理的流程不同的步骤进行说明。
继续S1,OBMC插补图像生成部30912对双预测(Bipred)是否关闭进行判断(S41)。在开启Bipred的情况(S41中为否)下,OBMC插补图像生成部30912设定为参照两个方向的邻接块(S42)。可以将该两个方向设为左以及右,也可以设为上以及下。
继续S42,插补图像生成部3092以及OBMC校正部3093对上above、下bottom的各方向或左left、右right的各方向dir进行环处理(S44)。
在关闭Bipred的情况(S41中为是)下,OBMC插补图像生成部30912设定为参照四个方向的邻接块设定(S43)。接着,继续S2。
在本处理中,参照Bipred的开启/关闭,对设定由OBMC插补图像生成部30912参照的邻接子块的方向的构成进行了说明,但也可以使由OBMC插补图像生成部30912参照的邻接子块的方向集合dirSet与任意的条件A、条件B、条件C对应,根据dirSetH={left,right}、dirSetV={above,botom}、dirSetF={above,left,bottom,right}进行选择。
根据上述的构成,与参照四个方向的邻接子块的情况相比,能通过限定所参照的邻接子块的方向,来减少预测图像的生成的过程中的OBMC处理的次数。因此,能减少图像数据的接入用的存储带区。
此外,如下所述,也可以采用进行一维的OBMC处理的构成。
OBMC插补图像生成部30912参照邻接子块的运动矢量,选择在一维的OBMC处理中参照的方向。例如,OBMC插补图像生成部30912导出第一代表子块(左、上子块)的运动矢量与第二代表子块(右、下子块)的运动矢量的差分矢量(左子块以及右子块的运动矢量的差分矢量diffMvHor、上子块以及下子块的运动矢量的差分矢量diffMvVer)。
在将PU分割为多个子块的情况下,当垂直差分矢量diffMvVer比水平差分矢量diffMvHor大时(diffMvVer>diffMvHor),OBMC插补图像生成部30912将OBMC处理的方向设为上和下(dirSet={above,bottom})。此外,在垂直差分矢量diffMvVer为水平差分矢量diffMvHor以下的情况下,OBMC插补图像生成部30912将OBMC处理的方向设为左和右(dirSet={left,right})。
在PU为一个子块的情况下,将OBMC处理的方向设为上、左、下、右(dirSet={above、left、bottom、right})。
上述的方向设定能通过下式来表示。
(OBMC处理的简化的汇总)
在此,对上述的OBMC处理的简化的处理进行汇总并记载。
A:在上述“由小抽头滤波器进行的OBMC处理1”中说明的开启OBMC处理的情况下,使用由抽头数比关闭OBMC处理的情况少的滤波器的PU插补图像生成部30911以及OBMC插补图像生成部30912进行的处理(Nobmc<N、M<N)。
B:在上述“由小抽头滤波器进行的OBMC处理2”中说明的开启OBMC处理的情况下,由补偿滤波器部309112将用于OBMC插补图像生成的滤波器的抽头数M设定得比用于PU插补图像生成的滤波器的抽头数N少的OBMC插补图像生成部30912进行的处理(M<N)。
C:与除此以外的情况(低负载时)下通过OBMC处理而生成预测图像的情况下的OBMC处理的尺寸nObmcW0、nObmcH0相比,将上述“小尺寸OBMC处理”中说明的,高负载时通过OBMC处理而生成预测图像的情况下的OBMC处理区域的尺寸nObmcW1、nObmcH1设定得更窄的由OBMC插补图像生成部30912进行的处理(nObmcW1<nObmcW0、nObmcH1<nObmcH0)。
D:上述“一维OBMC处理”中说明的限定参照的邻接子块的方向的由OBMC插补图像生成部30912进行的处理(dirSet=dirSetH or dirSetV or dirSetF)。
在上述的例示中,将开启OBMC作为条件,说明了由A以及B进行的简化处理。也可以将进行由A以及B进行的简化处理的条件设为进行例如a:子块单位的预测、b:双预测、c:匹配预测、d:非整数矢量等情况。
例如,也可以通过以下的处理。
aA:在开启子块单位的预测且OBMC处理的情况下,由使用抽头数比除此以外的情况少的滤波器的PU插补图像生成部30911以及OBMC插补图像生成部30912进行的处理。
aB:在开启子块单位的预测且OBMC处理的情况下,由补偿滤波器部309112将用于OBMC插补图像生成的滤波器的抽头数M设定得比用于PU插补图像生成的滤波器的抽头数N少的OBMC插补图像生成部30912进行的处理。
bA:在开启双预测且OBMC处理的情况下,由使用抽头数比除此以外的情况小的滤波器的PU插补图像生成部30911以及OBMC插补图像生成部30912进行的处理。
bB:在开启双预测且OBMC处理的情况下,由补偿滤波器部309112将用于OBMC插补图像生成的滤波器的抽头数M设定得比用于PU插补图像生成的滤波器的抽头数N少的OBMC插补图像生成部30912进行的处理。
cA:在开启匹配预测且OBMC处理的情况下,由使用抽头数比除此以外的情况少的滤波器的PU插补图像生成部30911以及OBMC插补图像生成部30912进行的处理。
cB:在开启匹配预测且OBMC处理的情况下,由补偿滤波器部309112将用于OBMC插补图像生成的滤波器的抽头数M设定得比用于PU插补图像生成的滤波器的抽头数N少的OBMC插补图像生成部30912进行的处理。
此外,也可以将进行子块单位的预测且双预测(a&&b)、双预测且匹配预测(b&&c)的情况,或子块单位的预测且匹配预测(c&&a)作为由A以及B进行的简化处理的条件。
此外,在上述的例示中,b:将进行双预测的情况作为由C进行的简化处理的条件来说明。也可以将进行由C进行的简化处理的条件设为c:进行匹配预测的情况。此外,也可以将其他条件设为b&&c:双预测且匹配预测的情况。
此外,例如,也可以将OBMC插补图像生成部30912所进行的处理设为以下的处理。
cC:由高负载(匹配预测)的情况下通过OBMC处理而生成预测图像的情况下的OBMC处理区域的尺寸nObmcW1、nObmcH1与除此以外的情况下通过OBMC处理而生成预测图像的情况下的OBMC处理区域的尺寸nObmcW0、nObmcH0相比,将OBMC处理区域设定得更窄的OBMC插补图像生成部30912进行的处理(nObmcW1<nObmcW0、nObmcH1<nObmcH0)。
b&&cC:由高负载(双预测且匹配预测)的情况下通过OBMC处理而生成预测图像的情况下的OBMC处理区域的尺寸nObmcW1、nObmcH1与除此以外的情况下的OBMC处理区域的尺寸nObmcW0、nObmcH0相比,将OBMC处理区域设定得更窄的OBMC插补图像生成部30912进行的处理(nObmcW1<nObmcW0,nObmcH1<nObmcH0)。
此外,在上述的例示中,对在进行子块单位的预测的情况下进行由D进行的简化处理的构成进行了说明。也可以将进行由D进行的简化处理的条件设为进行b:双预测、c:匹配预测等的情况。此外,也可以将进行由D进行的简化处理的情况下的其他条件设为进行子块单位的预测且双预测(a&&b)的情况、进行双预测且匹配预测的情况(b&&c)、进行子块单位的预测且匹配预测的情况(c&&a)。
此外,例如,也可以将OBMC插补图像生成部30912所进行的处理设为以下的处理。
bD:由将高负载(双预测)的情况下参照的邻接子块的方向的集合dirSet1设为方向的数量比除此以外的情况下所参照的邻接子块的方向的集合dirSet1少的OBMC插补图像生成部30912进行的处理(dirSet1=dirSetH or dirSetV、dirSet0=dirSetF)。
cD:将高负载(匹配预测)的情况下参照的邻接子块的方向的集合dirSet1设为方向的数量比除此以外的情况下所参照的邻接子块的方向的集合dirSet1少的OBMC插补图像生成部30912进行的处理(dirSet1=dirSetH or dirSetV、dirSet0=dirSetF)。
(CU边界上的OBMC处理的简化)
在OBMC处理中,使各PU的运动插补比实PU尺寸大地进行处理,能在生成各PU的PU插补图像的同时,生成邻接PU的OBMC插补图像。在该情况下,需要将在邻接的PU的PU插补图像生成时间点生成的OBMC插补图像保存至在后续的PU中的OBMC处理中直至进行利用为止。因此,需要保存生成的OBMC插补图像的存储器。此外,保存图像的存储器管理较复杂。因此,难以将在某CU的处理时生成的OBMC插补图像用于后续的CU中的OBMC处理。反之,针对同一CU内的PU,能在生成PU插补图像的同时,生成同一CU内的后续的PU的OBMC插补图像。因此,在不同的CU间邻接的PU的OBMC插补图像生成(CU边界的OBMC插补图像生成)的处理量比同一CU内的PU的OBMC插补图像生成(PU边界的OBMC插补图像生成)的处理量大。
下述所示的本实施方式的图像解码装置31的构成(CU边界的OBMC处理的简化)的目的在于降低图像解码装置31的处理量。
(CU边界上的小抽头插补)
对本实施方式的图像解码装置31进行说明。
本实施方式的运动补偿部3091(预测图像生成装置)参照参照图像来生成预测图像。运动补偿部3091具备:PU插补图像生成部(插补图像生成部)30911,通过将对象PU的运动信息和滤波处理应用于与对象子块对应的上述参照图像上的子块来生成PU插补图像(插补图像)。此外,运动补偿部3091具备:OBMC插补图像生成部(追加插补图像生成部)30912,通过将与对象子块邻接的邻接子块的运动信息和滤波处理应用于与对象子块对应的上述参照图像上的子块的CU以及PU中至少一方的边界区域的像素来生成OBMC插补图像(追加插补图像)。
此外,运动补偿部3091具备:OBMC校正部(预测部)3093,由PU插补图像和滤波处理后的OBMC插补图像来生成预测图像。
OBMC插补图像生成部30912使用抽头数在CU的边界区域比在PU的边界区域少的滤波器。
根据上述的构成,OBMC插补图像生成部30912进行滤波处理,所述滤波处理其抽头数在编码单元(CU)的边界区域比在预测单元(PU)的边界区域少。因此,能降低OBMC处理的处理量。
使用图30至图32说明本实施方式的运动补偿部3091的处理的一个示例。
图30是表示本实施方式的运动补偿部3091(PU插补图像生成部30911以及OBMC插补图像生成部30912)所进行的滤波处理的概要的图。
图30(a)示出关闭OBMC处理的情况下的针对PU的滤波处理,图30(b)示出开启OBMC处理的情况下的针对PU的滤波处理。如图30(a)所示,在关闭OBMC处理的情况下,PU插补图像生成部30911使用抽头数N=8的滤波器来生成PU插补图像。此外,如图30(b)所示,在开启OBMC处理的情况下,PU插补图像生成部30911使用抽头数N=8的滤波器来进行PU插补图像生成。此外,OBMC插补图像生成部30912在PU边界上使用抽头数M=8的滤波器来生成OBMC插补图像,在CU边界上使用抽头数Mcu(Mcu=2、4或6)的滤波器来生成OBMC插补图像。在此,设Mcu<M。
图31是表示本实施方式的运动补偿部3091的处理的流程的流程图。在图31所示的处理的流程中,对与在图16所说明的运动补偿部3091的处理的流程不同的步骤标注与图16不同的编号而示出。在此,仅对与在图16所说明的运动补偿部3091的处理的流程不同的步骤进行说明。
在邻接子块的运动矢量mvLXN与对象子块的运动矢量mvLX不相等、或参照图像不同的情况(S4中为否)下,OBMC插补图像生成部30912对边界是否为CU边界进行判断(S52)。在此,OBMC插补图像生成部30912也可以通过PU的分区的形状来判断对象边界是CU边界还是PU边界。OBMC插补图像生成部30912在对象边界为CU边界的情况(S52中为是)下,使用抽头数为Mcu(例如,2、4或6)的滤波器,来导出OBMC插补图像Pred_N[x][y](S53)。此外,OBMC插补图像生成部30912在边界为PU边界的情况(S52中为否)下,使用抽头数为M(例如,8)的滤波器,来导出OBMC插补图像Pred_N[x][y]。
对于对象子块(xSb,ySb)与邻接子块(xNb,yNb)之间的边界,CU边界以及PU边界的判定方法能使用以下的方法等。
puBoundFlag=((xSb>>log2(CUW))==(xNb>>log2(CUH)))&&((ySb>>log2(CUW))==(yNb>>log2(CUH)))
在此,CUW和CUH是CU的宽度和高度。通过上述的算式,在以CUW的对数值进行右移位而导出的对象子块的CU坐标(xSb>>log2(CUW),ySb>>log2(CUH))与邻接子块的CU坐标(xNb>>log2(CUW),yNb>>log2(CUH))相等的情况下,将表示为同一CU内的边界(PU边界)的标志puBoundFlag设定为1。在puBoundFlag为1的情况下是指PU边界,在puBoundFlag为0的情况下是指CU边界。
在此,对本实施方式的运动补偿部3091所进行的其他滤波处理进行说明。图32是表示本实施方式的运动补偿部3091所进行的其他滤波处理的概要的图。
图32(a)示出关闭OBMC处理的情况下的针对PU的滤波处理。图32(b)示出在开启OBMC处理且关闭Bipred的情况下的针对PU的滤波处理。
图32(c)示出开启OBMC处理且开启Bipred的情况下的针对PU的滤波处理。
如图32(a)所示,PU插补图像生成部30911在关闭OBMC处理的情况下,使用抽头数N=8的滤波器来生成PU插补图像。此外,如图32(b)所示,PU插补图像生成部30911在开启OBMC处理且关闭Bipred的情况下,使用抽头数N=8的滤波器来生成PU插补图像。
此外,OBMC插补图像生成部30912在PU边界以及CU边界中的任一边界,使用抽头数M=8的滤波器来生成OBMC插补图像。此外,如图32(c)所示,在开启OBMC处理且开启Bipred的情况下,PU插补图像生成部30911使用抽头数N=8的滤波器来生成PU插补图像。此外,OBMC插补图像生成部30912PU边界上使用抽头数M=8的滤波器来生成OBMC插补图像,在CU边界上使用抽头数Mcu=2、4或6的滤波器来生成OBMC插补图像。在此,设Mcu<M。
(CU边界上的小尺寸OBMC处理1)
而且,使用图33至图36对本实施方式的运动补偿部3091的处理的其他的一个示例进行说明。
本实施方式的图像解码装置31具备:PU插补图像生成部(插补图像生成部)30911,通过将对象PU的运动信息应用于对象子块来生成插补图像。此外,图像解码装置31具备:OBMC插补图像生成部(追加插补图像生成部)30912,通过将与对象子块邻接的邻接子块的运动信息仅应用于PU的边界区域来生成OBMC插补图像(追加插补图像)。此外,图像解码装置31具备:OBMC校正部3093,由PU插补图像和OBMC插补图像来生成预测图像。
根据上述的构成,OBMC插补图像生成部30912仅在PU的边界区域内生成OBMC插补图像。因此,能降低OBMC处理的处理量。
图33是表示本实施方式的运动补偿部3091的处理的概要的图。图33(a)示出关闭OBMC处理的情况下进行PU中的OBMC处理的区域的尺寸。图33(b)示出开启OBMC处理的情况下进行PU中的OBMC处理的区域的尺寸。
如图33(a)所示,在关闭OBMC处理的情况下,OBMC插补图像生成部30912将OBMC处理尺寸nObmcW、nObmcH设定为0像素。即,不进行OBMC处理。此外,如图33(b)所示,在开启OBMC处理的情况下,OBMC插补图像生成部30912将CU边界的OBMC处理尺寸nObmcW,nObmcH设定为0像素。此外,OBMC插补图像生成部30912将PU边界的OBMC处理尺寸nObmcW、nObmcH设定为4个像素。换言之,边界区域的大小由OBMC插补图像生成部30912来设定。例如,边界区域设定为距PU边界的距离为0~4个像素的区域。
即,在开启OBMC处理的情况下,运动补偿部3091仅对PU边界的像素进行OBMC处理。
图34是表示本实施方式的运动补偿部3091的处理的流程的流程图。在图34所示的处理的流程中,对与在图16所说明的帧间预测图像生成部309的处理的流程不同的步骤标注与图16不同的编号而示出。在此,仅对与在图16所说明的运动补偿部3091的处理的流程不同的步骤进行说明。
在邻接子块的运动矢量mvLXN与对象子块的运动矢量mvLX不相等,或者参照图像不同的情况(S4中为否)下,OBMC插补图像生成部30912对边界是否是CU边界进行判断(S62)。S62与上述的S52相同,因此在此省略详细的说明。在对象边界不是CU边界的情况(S62中为否)下,即,边界为PU边界的情况下,转移至S5,OBMC插补图像生成部30912导出OBMC插补图像。此外,在是PU边界的情况(S62中为是)下,OBMC插补图像生成部30912转移至S7而不导出OBMC插补图像。
(CU边界上的小尺寸OBMC处理2)
而且,使用图35至图37对本实施方式的运动补偿部3091的处理的其他的一个示例进行说明。
本实施方式的运动补偿部3091(预测图像生成装置)参照参照图像来生成预测图像。运动补偿部3091具备:插补图像生成部(图像生成部)3092,生成PU插补图像和OBMC插补图像,所述PU插补图像将对象PU的运动信息和滤波处理应用于与对象子块对应的上述参照图像上的子块而得到,所述OBMC插补图像,将邻接子块的运动信息和滤波处理应用于与对象子块对应的上述参照图像上的子块的边界区域的像素而得到。此外,运动补偿部3091具备:OBMC校正部(预测部)3093,参照PU插补图像和OBMC插补图像来生成预测图像。插补图像生成部3092将与对象子块对应的上述参照图像上的子块中的CU的边界区域设得比PU的边界区域窄。
根据上述的构成,插补图像生成部3092在边界区域为CU的边界区域的情况下,将边界区域设定得比边界区域为PU的边界区域的情况更窄。因此,能降低OBMC处理的处理量。
图35是表示本实施方式的运动补偿部3091的处理的概要的图。图35(a)示出关闭OBMC处理的情况下进行PU中的OBMC处理的区域的尺寸。图35(b)示出开启OBMC处理的情况下进行PU中的OBMC处理的区域的尺寸。
如图35(a)所示,在关闭OBMC处理的情况下,OBMC插补图像生成部30912将OBMC处理尺寸nObmcW、nObmcH设定为0像素。即,不进行OBMC处理。此外,如图35(b)所示,在开启OBMC处理的情况下,OBMC插补图像生成部30912将CU边界的OBMC处理尺寸nObmcWcu、nObmcHcu设定为2个像素。此外,OBMC插补图像生成部30912将PU边界的OBMC处理尺寸nObmcWpu、nObmcHpu设定为4个像素。
需要说明的是,插补图像生成部3092在边界区域为CU的边界区域的情况下,将边界区域设定得比边界区域为PU的边界区域的情况更窄即可,CU边界的OBMC处理尺寸nObmcWcu、nObmcHcu以及PU边界的OBMC处理尺寸nObmcWpu、nObmcHpu并不限定于上述的例示,满足nObmcWcu<nObmcWpu、nObmcHcu<nObmcHpu即可。
图36是表示本实施方式的运动补偿部3091的处理的流程的流程图。在图36所示的处理的流程中,对与在图16所说明的帧间预测图像生成部309的处理的流程不同的步骤标注与图16不同的编号而示出。在此,仅对与在图16所说明的运动补偿部3091的处理的流程不同的步骤进行说明。
在邻接子块的运动矢量mvLXN与对象子块的运动矢量mvLX不相等,或参照图像不同的情况(S4中为否)下,OBMC插补图像生成部30912对边界是否是CU边界进行判断(S71)。S71与上述的S52相同,因此在此省略详细的说明。OBMC插补图像生成部30912在对象边界不是CU边界的情况(S71中为否)下,即在边界是PU边界的情况下,将OBMC处理的对象区域设定为从边界至nObmcWcu、nObmcHcu像素(例如,4个像素)(S72)。另一方面,OBMC插补图像生成部30912在对象边界为CU边界的情况(S71中为是)下,将OBMC处理的对象区域设定为从边界至nObmcWpu、nObmcHpu像素(例如,2个像素)(S73)。
在此,对本实施方式的运动补偿部3091所进行的其他处理进行说明。图37是表示本实施方式的运动补偿部3091的处理的概要的图。图37(a)示出关闭OBMC处理的情况下进行CU中的OBMC处理的区域的尺寸。图37(b)示出开启OBMC处理且关闭Bipred的情况下进行CU中的OBMC处理的区域的尺寸。图37(c)示出开启OBMC处理且开启Bipred的情况下进行CU中的OBMC处理的区域的尺寸。如图37(a)所示,在关闭OBMC处理的情况下,OBMC插补图像生成部30912将OBMC处理尺寸nObmcW设定为0像素。即,不进行OBMC处理。此外,如图37(b)所示,在开启OBMC处理且关闭Bipred的情况下,OBMC插补图像生成部30912将CU边界以及PU边界的OBMC处理尺寸nObmcW设定为4个像素。此外,如图37(c)所示,在开启OBMC处理且开启Bipred的情况下,OBMC插补图像生成部30912将CU边界的OBMC处理尺寸nObmcWcu设定为2个像素。此外,OBMC插补图像生成部30912将PU边界的OBMC处理尺寸nObmcWpu设定为4个像素。
(CU边界上的OBMC处理的简化的汇总)
在此,对上述的CU边界上的OBMC处理的简化中的处理进行汇总并记载。
A1:上述“CU边界上的小抽头插补”中说明的,PU边界区域中抽头数比CU边界区域少的滤波处理。
C1:上述“CU边界上的小尺寸OBMC处理1”中说明的,仅向OBMC处理的PU的边界区域的应用。
C2:上述“CU边界上的小尺寸OBMC处理2”中说明的,将为OBMC处理的对象的CU的边界区域设定得比为OBMC处理的对象的PU边界区域更窄的处理。
这些处理也可以在下述所列举的条件成立的情况下进行。该条件如下所述。边界为cu:CU边界且a:子块预测模式(cu&a)。cu:CU边界且开启bb:Bipred(cu&b)。cu:CU边界,且d:运动矢量为非整数(cu&d)。cu:CU边界,且a:子块预测模式,且开启b:Bipred(cu&a&b)。cu:CU边界,且开启b:Bipred,且运动矢量为非整数(cu&a&e)。cu:CU边界,且d:运动矢量为非整数,且a:子块预测模式(cu&d&a)。此外,在上述条件不成立的情况下,也可以采用在CU边界上进行OBMC处理而不进行OBMC处理的简化的构成。
此外,例如,也可以将OBMC插补图像生成部30912所进行的处理设为以下的处理(并限定于以下的例示)。
cu&aA1:在高负载(子块预测模式)的子块的OBMC插补图像导出中,将用于CU边界的OBMC插补图像导出的抽头数Mcu设定得比用于除此以外(PU边界)的OBMC插补图像导出的抽头数M少的处理。
cu&aC1:在高负载(子块预测模式)的子块中,不进行CU边界的OBMC处理,而在除此以外(PU边界)的边界进行OBMC处理的处理。
cu&aC2:在高负载(子块预测模式)的子块中,将CU边界的OBMC处理尺寸nObmcWcu、nObmcHcu设定得比除此以外(PU边界)的OBMC处理尺寸nObmcWpu、nObmcHpu更小,将为OBMC处理的对象的CU的边界区域设定得较窄的处理。
cu&bA1:在高负载(双预测)的子块的OBMC插补图像导出中,将用于CU边界的OBMC插补图像导出的抽头数Mcu设定得比用于除此以外(PU边界)的OBMC插补图像导出的抽头数M少的处理。
cu&bC1:在高负载(双预测)的子块中,不进行CU边界的OBMC处理,而在除此以外(PU边界)的边界进行OBMC处理的处理。
cu&bC2:在高负载(双预测)的子块中,将CU边界的OBMC处理尺寸nObmcWcu、nObmcHcu设定得比除此以外(PU边界)的OBMC处理尺寸nObmcWpu、nObmcHpu更小,将为OBMC处理的对象的CU的边界区域设定得较窄的处理。
(高精度加权平均处理)
在OBMC处理中,以往,按above(上)、left(左)、bottom(下)、right(右)的方向的顺序,使用邻接PU的运动参数来导出OBMC插补图像,对各方向进行加权平均处理。在OBMC处理中使用与对象PU的左以及上邻接的子块这种情况下,当在多个方向(在此为above和left)重复并进行加权平均处理时,存在由于运算精度的不足导致预测图像的精度降低的问题。
而且,存在由于方向的应用顺序而导致结果不同的问题。此外,通过重复并进行加权平均处理,存在预测图像的精度降低的问题。
这些问题由下述的理由产生。在使用了整数运算的加权平均处理中,用加权系数的积和除以加权系数的和(进行移位)。通过上述除法(移位)处理,失去低位比特。因此,预测图像的精度降低。
下述所示的本实施方式的图像解码装置31的构成(高精度加权平均处理)的目的在于抑制预测图像的精度的降低。
(CU边界上的小抽头插补)
对本实施方式的图像解码装置31进行说明。
本实施方式的运动补偿部3091具备:PU插补图像生成部(插补图像生成部)30911,通过将对象子块的运动信息和滤波处理应用于与对象子块对应的上述参照图像上的子块来生成插补图像。
运动补偿部3091具备:OBMC插补图像生成部(可利用性确认部)30912,对对象子块按包括多个邻接方向的邻接方向组所包括的邻接方向确认对于与该邻接方向邻接的子块运动信息的可利用性,通过将判断为可利用的运动信息和滤波处理应用于对象子块来生成OBMC插补图像(追加插补图像)。
此外,运动补偿部3091具备:OBMC校正部(图像更新部)3093,通过使用PU插补图像与上述OBMC插补图像的整数精度的系数的线性和来对更新用图像进行更新。OBMC校正部(图像更新部)3093在上述邻接方向组所包括的所有邻接方向上的更新用图像的更新结束之后,通过加上更新后的上述插补图像以及更新后的上述追加插补图像的上述两种更新用图像并进行右位移位来生成预测图像。
根据上述的构成,OBMC校正部3093在邻接方向组所包括的所有邻接方向上的更新用图像的更新完成之后,加上上述两种更新用图像并进行位移位。因此,能抑制生成的预测图像的精度的降低。
例如,每当各邻接方向上更新预测图像时,下式所示的“加权平均处理”对像素值进行右位移位。需要说明的是,预测图像的初始值为PU插补图像。
Pred[x][y]=Pred_C[x][y]
Pred[x][y]=(w1a*Pred[x][y]+w2a*Pred_above[i][j]+o)>>shift
Pred[x][y]=(w1l*Pred[x][y]+w2l*Pred_left[i][j]+o)>>shift
Pred[x][y]=(w1b*Pred[x][y]+w2b*Pred_bottom[i][j]+o)>>shift
Pred[x][y]=(w1r*Pred[x][y]+w2r*Pred_right[i][j]+o)>>shift
需要说明的是,Pred_above[i][j]、Pred_left[i][j]、Pred_bottom[i][j]、Pred_right[i][j]示出各邻接方向上的OBMC插补图像。其他与上述的(加权平均)中说明的内容相同,因此在此省略说明。
另一方面,也可以如下述对本实施方式的加权平均处理进行说明。OBMC校正部3093对通过PU插补图像以及各方向的邻接子块的运动参数而导出的OBMC插补图像进行加权。
然后,OBMC校正部3093计算出加权后的PU插补图像以及OBMC插补图像的加权和。
在该阶段,不对计算出的加权和进行基于右位移位的正规化。
即,OBMC校正部3093仅计算出加权修改项。然后,使用所有方向的邻接子块的运动参数,仅计算出加权修改项之后,OBMC校正部3093对加权预测图像与加权修改项的和进行正规化。
(高精度加权平均处理的例1)
对本实施方式的OBMC校正部3093所进行的加权平均处理的流程进行详细的说明。
当对象子块的上邻接子块的运动参数为可利用,且对象子块的上邻接子块的运动参数与对象子块的运动参数不同时,OBMC校正部3093进行下式所示的处理,更新PU插补图像Pred_C[x][y]以及OBMC插补图像Pred_N[x][y],并更新表示处理的次数的cnt[x][y]。需要说明的是,Pred_C[x][y]、Pred_N[x][y]以及cnt[x][y]的初始值为0。此外,下述算式的左边的Pred_C[x][y]以及Pred_N[x][y]表示更新后的PU插补图像Pred_C[x][y]以及Pred_N[x][y],右边的Pred_C[x][y]以及Pred_N[x][y]表示更新前的PU插补图像Pred_C[x][y]。此外,Pred_curr[x][y]表示从PU校正图像生成部30911接收到的PU插补图像Pred_C[x][y],Pred_curr[x][y]表示未通过OBMC校正部3093进行更新。
Pred_C[x][y]=Pred_C[x][y]+w1a*Pred_curr[x][y]
Pred_N[x][y]=Pred_N[x][y]+w2a*Pred_above[x][y]
cnt[x][y]=cnt[x][y]+1
接着,当对象子块的左邻接子块的运动参数为可利用,且对象子块的左邻接子块的运动参数与对象子块的运动参数不同时,OBMC校正部3093进行下式所示的处理,更新PU插补图像Pred_C[x][y]以及OBMC插补图像Pred_N[x][y],并更新表示处理的次数的cnt[x][y]。
Pred_C[x][y]=Pred_C[x][y]+w1l*Pred_curr[x][y]
Pred_N[x][y]=Pred_N[x][y]+w2l*Pred_left[x][y]
cnt[x][y]=cnt[x][y]+1
接着,当对象子块的下邻接子块的运动参数为可利用,且对象子块的下邻接子块的运动参数与对象子块的运动参数不同时,OBMC校正部3093进行下式所示的处理,更新PU插补图像Pred_C[x][y]以及OBMC插补图像Pred_N[x][y],并更新表示处理的次数的cnt[x][y]。
Pred_C[x][y]=Pred_C[x][y]+w1b*Pred_curr[x][y]
Pred_N[x][y]=Pred_N[x][y]+w2b*Pred_bottom[x][y]
cnt[x][y]=cnt[x][y]+1
接着,当对象子块的右邻接子块的运动参数为可利用,且对象子块的右邻接子块的运动参数与对象子块的运动参数不同时,OBMC校正部3093进行下式所示的处理,更新PU插补图像Pred_C[x][y]以及OBMC插补图像Pred_N[x][y],并更新表示处理的次数的cnt[x][y]。
Pred_C[x][y]=Pred_C[x][y]+w1r*Pred_curr[x][y]
Pred_N[x][y]=Pred_N[x][y]+w2r*Pred_right[x][y]
cnt[x][y]=cnt[x][y]+1
最后,OBMC校正部3093进行下式所示的处理,计算出预测图像Pred[x][y]。
在cnt[x][y]!=4时
Pred[x][y]=(Pred_C[x][y]+Pred_N[x][y]+o)/cnt[x][y]、o=(cnt[x][y]+1)>>1
或者cnt[x][y]!=3时,下述的移位运算也是等价的。
Pred[x][y]=(Pred_C[x][y]+Pred_N[x][y]+o)>>shift,o=1<<(shift-1)、shift=log2(cnt[x][y])+shiftW
在cnt[x][y]==4时
Pred[x][y]=Pred_curr[x][y]
需要说明的是,shiftW是用于加权平均时的正规化的值。
在加权平均的加权系数的精度为1/N的情况下,shiftW=log2(N)。就是说,在加权系数为8/32、4/32、2/32、1/32的情况下N=32,因此shiftW=5。
(高精度加权平均处理的例2)
对本实施方式的OBMC校正部3093所进行的其他加权平均处理的流程进行详细的说明。
如下所述地设定Pred_sum[x][y]以及cnt[x][y](初始设定)
Pred_sum[x][y]=0、cnt[x][y]=0
当对象子块的上邻接子块的运动参数为可利用,且上邻接子块的运动参数与对象子块的运动参数不同时,OBMC校正部3093进行下式所示的处理,更新Pred_sum[x][y]。此外,OBMC校正部3093更新cnt[x][y]。
Pred_sum[x][y]=Pred_sum[x][y]+w1a*Pred_curr[x][y]+w2a*Pred_above[x][y]
cnt[x][y]=cnt[x][y]+1
接着,当对象子块的左邻接子块的运动参数为可利用,且左邻接子块的运动参数与对象子块的运动参数不同时,OBMC校正部3093进行下式所示的处理,更新Pred_sum[x][y]。此外,OBMC校正部3093更新cnt[x][y]。
Pred_sum[x][y]=Pred_sum[x][y]+w1l*Pred_curr[x][y]+w2l*Pred_left[x][y]
cnt[x][y]=cnt[x][y]+1
接着,当对象子块的下邻接子块的运动参数为可利用,且下邻接子块的运动参数与对象子块的运动参数不同时,OBMC校正部3093进行下式所示的处理,并更新Pred_sum[x][y]。
Pred_sum[x][y]=Pred_sum[x][y]+w1b*Pred_curr[x][y]+w2b*Pred_bottom[x][y]
cnt[x][y]=cnt[x][y]+1
接着,当对象子块的右邻接子块的运动参数为可利用,且右邻接子块的运动参数与对象子块的运动参数不同时,OBMC校正部3093进行下式所示的处理,并更新Pred_sum[x][y]。
Pred_sum[x][y]=Pred_sum[x][y]+w1r*Pred_curr[x][y]+w2r*Pred_right[x][y]
cnt[x][y]=cnt[x][y]+1
最后,OBMC校正部3093进行下式所示的处理,计算出预测图像Pred[x][y]。
在cnt[x][y]=0时
Pred[x][y]=Pred_curr[x][y]
在cnt[x][y]!=0时
Pred[x][y]=((Pred_c[x][y]+Pred_n[x][y])/cnt[x][y])>>shiftW
此外,OBMC校正部3093也可以通过下式导出预测图像Pred[x][y]。
Pred[x][y]=(Pred_c[x][y]+Pred_n[x][y]+o)>>shift、o=1<<(shift-1)、shift=log2(cnt[x][y])+shiftW
shift的值的具体例如下所述。在OBMC更新处理的次数为一次的情况下,cnt=1、shift=shiftW。在OBMC更新处理的次数为两次的情况下,cnt=2,shift=shiftW+2。此外,shiftW是用于加权平均时的正规化的值。在加权平均的加权系数的精度为1/N的情况下,shiftW=log2(N)。就是说,在加权系数为8/32、4/32、2/32、1/32的情况下N=32,因此shiftW=5。
(高精度加权平均处理的例3)
对本实施方式的OBMC校正部3093所进行的其他加权平均处理的流程进行详细的说明。
在本加权平均处理中,在上述的“高精度加权平均处理的例1”的“Pred_C[x][y]=Pred_C[x][y]+w1X*Pred_curr[x][y]”(w1X为w1a、w1l、w1b以及w1r)中的加上w1X,最后计算出加上的w1X与pred_curr的积,并进行右位移位。具体而言,如下所述。
初始设定
weight_c[x][y]=0
Pred_N[x][y]=0、cnt[x][y]=0
当对象子块的上邻接子块的运动参数为可利用,且上邻接子块的运动参数与对象子块的运动参数不同时,OBMC校正部3093进行下式所示的处理,对加上w1X的值的weight_c[x][y]、Pred_N[x][y]以及cnt[x][y]进行更新。
weight_c[x][y]=weight_c[x][y]+w1a
Pred_N[x][y]=Pred_N[x][y]+w2a*Pred_above[x][y]
cnt[x][y]=cnt[x][y]+1
接着,当对象子块的左邻接子块的运动参数为可利用,且左邻接子块的运动参数与对象子块的运动参数不同时,OBMC校正部3093进行下式所示的处理,对更新作为加上w1X的值的weight_c[x][y]、Pred_N[x][y]以及cnt[x][y]。
weight_c[x][y]=weight_c[x][y]+w1l
Pred_N[x][y]=Pred_N[x][y]+w2l*Pred_left[x][y]
cnt[x][y]=cnt[x][y]+1
接着,当对象子块的下邻接子块的运动参数为可利用,且下邻接子块的运动参数与对象子块的运动参数不同时,OBMC校正部3093进行下式所示的处理,更新作为加上w1X的值的weight_c[x][y]、Pred_N[x][y]以及cnt[x][y]。
weight_c[x][y]=weight_c[x][y]+w1b
Pred_N[x][y]=Pred_N[x][y]+w2b*Pred_bottom[x][y]
cnt[x][y]=cnt[x][y]+1
接着,当对象子块的右邻接子块的运动参数为可利用,且右邻接子块的运动参数与对象子块的运动参数不同时,OBMC校正部3093进行下式所示的处理,更新作为加上w1X的值的weight_c[x][y]、Pred_N[x][y]以及cnt[x][y]。
weight_c[x][y]=weight_c[x][y]+w1r
Pred_N[x][y]=Pred_N[x][y]+w2r*Pred_right[x][y]
cnt[x][y]=cnt[x][y]+1
最后,OBMC校正部3093进行下式所示的处理,计算出预测图像Pred[x][y]。
在cnt[x][y]=0时
Pred[x][y]=Pred_curr[x][y]
在cnt[x][y]!=0时Pred[x][y]=((weight_c[x][y]*Pred_curr[x][y]+Pred_N[x][y])/cnt[x][y])
此外,OBMC校正部3093也可以通过下式导出Pred[x][y]。
Pred[x][y]=(weight_c[x][y]*Pred_curr[x][y]+Pred_N[x][y]+o)>>shift,o=1<<(shift-1)、shift=log2(cnt[x][y])+shiftW
需要说明的是,shiftW是用于加权平均时的正规化的值。在加权平均的加权系数的精度为1/N的情况下,shiftW=log2(N)。就是说,在加权系数为8/32、4/32、2/32、1/32的情况下N=32,因此shiftW=5。
(高精度加权平均处理的汇总)
在此,对上述的高精度加权平均处理进行汇总并记载。
上述“高精度加权平均处理的例1”中说明的,更新PU插补图像Pred_C[x][y]以及OBMC插补图像Pred_N[x][y],并通过对更新后的图像进行右位移位,来生成预测图像的处理。
上述“高精度加权平均处理的例2”中说明的,更新作为Pred_C[x][y]以及Pred_N[x][y]的合计值的Pred_sum[x][y],通过对更新后的更新用图像进行右位移位,来生成预测图像的处理。
上述“高精度加权平均处理的例3”中说明的,在“高精度加权平均处理的例1”的“Pred_C[x][y]=Pred_C[x][y]+w1X*Pred_curr[x][y]”(w1X为w1a、w1l、w1b以及w1r)中的加上w1X,最后计算出加上的w1X与pred_curr的积,并进行右位移位的处理。
通过对更新后的更新用图像进行右位移位来生成预测图像的处理。
这些处理也可以在下述所列举的条件成立的情况下进行。该条件如下所述。开启OBMC。开启OBMC,且为子块预测模式。开启OBMC,且开启Bipred。开启OBMC,且运动矢量为非整数。开启OBMC,且为子块预测模式,且开启Bipred。开启OBMC,且开启Bipred,且运动矢量为非整数。开启OBMC,且运动矢量为非整数,且为子块预测模式。
此外,在预测模式不是子块预测模式的情况下,也可以采用进行OBMC处理而不进行上述的高精度加权平均处理的构成。
(图像编码装置的构成)
接着,对本实施方式的图像编码装置11的构成进行说明。图38是表示本实施方式的图像编码装置11的构成的框图。图像编码装置11包括预测图像生成部101、减法部102、DCT/量化部103、熵编码部104、逆量化/逆DCT部105、加法部106、预测参数存储器(预测参数存储部、帧存储器)108、参照图片存储器(参照图像存储部、帧存储器)109、编码参数确定部110以及预测参数编码部111而构成。预测参数编码部111构成为包括帧间预测参数编码部112以及帧内预测参数编码部113。
预测图像生成部101对图像T的各图片,按作为将此图片分割而成的区域的编码单元(CU)生成预测单元PU的预测图像P。在此,预测图像生成部101基于从预测参数编码部111输入的预测参数,来从参照图片存储器109中读出参照图片块。从预测参数编码部111输入的预测参数例如是运动矢量。预测图像生成部101读出以编码对象CU为起点位于运动矢量所示的位置的块。预测图像生成部101对读出的参照图片块,使用多个预测方式中的一个预测方式来生成PU的预测图像P。预测图像生成部101将所生成的PU的预测图像P输出至减法部102。
需要说明的是,预测图像生成部101是与已经说明了的预测图像生成部308相同的动作。例如,图39是表示本实施方式的帧间预测图像生成部1011的构成的概略图。帧间预测图像生成部1011包括运动补偿部10111和加权预测部10112而构成。运动补偿部10111以及加权预测部10112是分别与上述的运动补偿部3091、加权预测部3094相同的构成,因此在此省略说明。帧间预测图像生成部1011也可以采用进行OBMC处理的构成。图40是表示进行OBMC处理的情况下的运动补偿部10111的主要部分构成的框图。如图40所示,运动补偿部10111具备:插补图像生成部101110(PU插补图像生成部101111以及OBMC插补图像生成部101112)以及OBMC校正部101113。PU插补图像生成部101111、OBMC插补图像生成部101112以及OBMC校正部101113是分别与上述的PU插补图像生成部30911、OBMC插补图像生成部30912以及OBMC校正部3093相同的构成,因此在此省略说明。
预测图像生成部101为了选择预测方式,例如选择使误差值为最小的预测方式,所述误差值基于图像所包括的PU的像素值与按PU的预测图像P的对应的像素值的差分。选择预测方式的方法并不限定于此。
多个预测方式是指帧内预测、运动预测(包括上述的子块预测)以及合并预测。运动预测是指上述的帧间预测中时刻方向的预测。合并预测是指使用已经编码的块中与位于从编码对象CU起预定的范围内的PU相同的预测参数的预测。
预测图像生成部101在选择了帧内预测的情况下,将表示生成PU的预测图像P时使用的帧内预测模式的预测模式IntraPredMode输出至预测参数编码部111。
预测图像生成部101在选择出运动预测的情况下,将生成PU的预测图像P时使用的运动矢量mvLX存储于预测参数存储器108,并输出至帧间预测参数编码部112。运动矢量mvLX表示从编码对象CU的位置至生成PU的预测图像P时的参照图片块的位置的矢量。表示运动矢量mvLX的信息中,包括表示参照图片的信息(例如,参照图片索引refIdxLX、图片顺序编号POC),也可以是表示预测参数的信息。此外,预测图像生成部101将表示帧间预测模式的预测模式predMode输出至预测参数编码部111。
预测图像生成部101在选择了合并预测的情况下,将表示所选择的PU的合并索引merge_idx输出至帧间预测参数编码部112。此外,预测图像生成部101将表示合并预测模式的预测模式predMode输出至预测参数编码部111。
减法部102从图像T的对应的PU的像素值减去从预测图像生成部101输入的PU的预测图像P的信号值,并生成残差信号。减法部102将生成的残差信号输出至DCT/量化部103和编码参数确定部110。
DCT/量化部103对从减法部102输入的残差信号进行DCT,计算出DCT系数。DCT/量化部103对计算出的DCT系数进行量化,求出量化系数。DCT/量化部103将求出的量化系数输出至熵编码部104以及逆量化/逆DCT部105。
熵编码部104中,从DCT/量化部103输入量化系数,从编码参数确定部110输入编码参数。所输入的编码参数中,例如有参照图片索引refIdxLX、预测矢量索引mvp_LX_idx、差分矢量mvdLX、预测模式predMode、以及合并索引merge_idx等代码。
熵编码部104对输入的量化系数和编码参数进行熵编码从而生成编码流Te,并将生成的编码流Te输出至外部。
逆量化/逆DCT部105对从DCT/量化部103输入的量化系数进行逆量化,求出DCT系数。逆量化/逆DCT部105对求出的DCT系数进行逆DCT,计算出解码残差信号。逆量化/逆DCT部105将计算出的解码残差信号输出至加法部106。
加法部106按像素将从预测图像生成部101输入的PU的预测图像P与从逆量化/逆DCT部105输入的解码残差信号的信号值相加,生成解码图像。加法部106将生成的解码图像存储于参照图片存储器109。
预测参数存储器108将预测参数编码部111所生成的预测参数按编码对象的图片以及CU存储于预定的位置。
参照图片存储器109按编码对象的图片以及CU,将加法部106所生成的解码图像存储于预定的位置。
编码参数确定部110选择编码参数的多个集合中的一个集合。编码参数是上述的预测参数、与该预测参数关联而生成的成为编码的对象的参数。预测图像生成部101分别使用这些编码参数的集合,来生成PU的预测图像P。
编码参数确定部110对多个集合的每一个集合计算出信息量的大小和指示编码误差的成本值。成本值例如是代码量与方差乘以系数λ而得的值之和。代码量是对量化误差和编码参数进行熵编码而得到的编码流Te的信息量。方差是关于在减法部102中计算出的残差信号的残差值的平方值的像素间的总和。系数λ是大于预先设定的零的实数。编码参数确定部110选择计算出的成本值成为最小的编码参数的集合。由此,熵编码部104将所选择的编码参数的集合作为编码流Te输出至外部,而不输出未被选择的编码参数的集合。
预测参数编码部111导出基于从预测图像生成部101输入的参数生成预测图片时所使用的预测参数,并对导出的预测参数进行编码,生成编码参数的集合。预测参数编码部111将所生成的编码参数的集合输出至熵编码部104。
预测参数编码部111将所生成的编码参数的集合中与编码参数确定部110所选择的参数对应的预测参数存储于预测参数存储器108。
预测参数编码部111在从预测图像生成部101输入的预测模式predMode表示帧间预测模式的情况下,使帧间预测参数编码部112进行动作。预测参数编码部111在预测模式predMode表示帧内预测模式的情况下,使帧内预测参数编码部113进行动作。
帧间预测参数编码部112基于从编码参数确定部110输入的预测参数而导出帧间预测参数。帧间预测参数编码部112中,作为导出帧间预测参数的构成,包括与帧间预测参数解码部303(参照图5等)导出帧间预测参数的构成相同的构成。帧间预测参数编码部112的构成将在下文叙述。
帧内预测参数编码部113将从编码参数确定部110输入的预测模式predMode所指示的帧内预测模式IntraPredMode确定为帧间预测参数的集合。
(帧间预测参数编码部的构成)
接着,对帧间预测参数编码部112的构成进行说明。帧间预测参数编码部112是对应于帧间预测参数解码部303的部分。
图41是表示本实施方式的帧间预测参数编码部112的构成的概略图。
帧间预测参数编码部112包括合并预测参数导出部1121、AMVP预测参数导出部1122、减法部1123、子块预测参数导出部1125以及预测参数整合部1126而构成。
合并预测参数导出部1121具有与上述的合并预测参数导出部3036(参照图6)相同的构成,AMVP预测参数导出部1122具有与上述的AMVP预测参数导出部3032(参照图6)相同的构成。
合并预测参数导出部1121中,在从预测图像生成部101输入的预测模式predMode指示合并预测模式的情况下,从编码参数确定部110输入合并索引merge_idx。合并索引merge_idx被输出至预测参数整合部1126。合并预测参数导出部1121从预测参数存储器108读出合并候选中合并索引merge_idx所指示的合并候选的参照图片索引refIdxLX、运动矢量mvLX。合并候选是指位于从为编码对象的编码对象CU起预定的范围内的参照PU(例如,与编码对象块的左下端、左上端、右上端相接的参照PU),是完成了编码处理的参照PU。
在子块预测参数导出部1125,在从预测图像生成部101输入的预测模式predMode表示匹配预测模式的情况下,从编码参数确定部110输入作为表示匹配模式的种类的语法的ptn_match_mode。匹配预测参数导出部1125从存储器108读出匹配候选中ptn_match_mode所示的参照PU的参照图片索引refIdxLX。匹配候选是指位于从为编码对象的编码对象CU起预定的范围内的参照PU(例如,与编码对象CU的左下端、左上端、右上端相接的参照PU)中完成编码处理的PU。
AMVP预测参数导出部1122具有与上述的AMVP预测参数导出部3032(参照图6)相同的构成。
即,AMVP预测参数导出部1122中,在从预测图像生成部101输入的预测模式predMode表示帧间预测模式的情况下,从编码参数确定部110输入运动矢量mvLX。AMVP预测参数导出部1122基于所输入的运动矢量mvLX来导出预测矢量mvpLX。AMVP预测参数导出部1122将导出的预测矢量mvpLX输出至减法部1123。需要说明的是,参照图片索引refIdx以及预测矢量索引mvp_LX_idx被输出至预测参数整合部1126。
减法部1123从自编码参数确定部110输入的运动矢量mvLX中减去从AMVP预测参数导出部1122输入的预测矢量mvpLX,生成差分矢量mvdLX。差分矢量mvdLX输出至预测参数整合部1126。
在从预测图像生成部101输入的预测模式predMode表示合并预测模式的情况下,预测参数整合部1126将从编码参数确定部110输入的合并索引merge_idx输出至熵编码部104。
在从预测图像生成部101输入的预测模式predMode表示帧间预测模式的情况下,预测参数整合部1126进行接下来的处理。
预测参数整合部1126对从编码参数确定部110输入的参照图片索引refIdxLX以及预测矢量索引mvp_LX_idx、从减法部1123输入的差分矢量mvdLX进行整合。预测参数整合部1126将所整合的代码输出至熵编码部104。
需要说明的是,帧间预测参数编码部112也可以包括帧间预测参数编码控制部(未图示),所述帧间预测参数编码控制部对熵编码部104指示与帧间预测关联的代码(语法元素)的解码,并对编码数据所包括的代码(语法元素),例如分割模式part_mode、合并标志merge_flag、合并索引merge_idx、帧间预测标识符inter_pred_idc、参照图片索引refIdxLX、预测矢量索引mvp_LX_idx、差分矢量mvdLX、OBMC标志obmc_flag、子块预测模式标志subPbMotionFlag进行编码。
需要说明的是,可以通过计算机实现上述的实施方式中的图像编码装置11、图像解码装置31的一部分、例如熵解码部301、预测参数解码部302、预测图像生成部101、DCT/量化部103、熵编码部104、逆量化/逆DCT部105、编码参数确定部110、预测参数编码部111、熵解码部301、预测参数解码部302、预测图像生成部308、逆量化/逆DCT部311。在该情况下,可以通过将用于实现该控制功能的程序记录于计算机可读记录介质,并使计算机系统读入记录于该记录介质的程序并执行来实现。需要说明的是,在此提到的“计算机系统”是指内置于图像编码装置11-11h、图像解码装置31-31h的任一个中的计算机系统,采用包括OS、外围设备等硬件的计算机系统。此外,“计算机可读记录介质”是指软盘、磁光盘、ROM、CD-ROM等可移动介质、内置于计算机系统的硬盘等存储装置。而且,“计算机可读记录介质”也可以包括:如经由互联网等网络或电话线路等通信线路来发送程序的情况下的通信线那样短时间内、动态地保存程序的记录介质;以及如作为此情况下的服务器、客户端的计算机系统内部的易失性存储器那样保存程序固定时间的记录介质。此外,上述程序可以是用于实现上述功能的一部分的程序,进而也可以是能通过与已记录在计算机系统中的程序进行组合来实现上述功能的程序。
此外,也可以将上述的实施方式中的图像编码装置11、图像解码装置31的一部分或全部作为LSI(Large Scale Integration:大规模集成电路)等集成电路而实现。图像编码装置11、图像解码装置31的各功能块可以单独地处理器化,也可以集成一部分或全部来处理器化。此外,集成电路化的方法并不限于LSI,也可以通过专用电路或通用处理器来实现。此外,在通过半导体技术的进步出现代替LSI的集成电路化的技术的情况下,也可以使用基于该技术的集成电路。
以上,参照附图对该发明的一实施方式进行了详细的说明,但具体构成并不限定于上述,在不脱离该发明的主旨的范围内,可以进行各种设计变更等。
〔应用例〕
上述图像编码装置11以及图像解码装置31可以搭载于进行运动图像的发送、接收、记录、再现的各种装置来使用。需要说明的是,运动图像可以是通过摄像机等拍摄的自然运动图像,也可以是通过计算机等生成的人工运动图像(包括CG以及GUI)。
首先,参照图42,对能将上述的图像编码装置11以及图像解码装置31利用于运动图像的发送以及接收的情况进行说明。
图42(a)是表示搭载有图像编码装置11的发送装置PROD_A的构成的框图。如图42(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。在图42(a)中举例示出了发送装置PROD_A全部具备它们的构成,但也可以省略一部分。
需要说明的是,记录介质PROD_A5可以是记录有未被编码的运动图像的介质,也可以是记录有以与传输用的编码方式不同的记录用的编码方式编码后的运动图像的介质。在后者的情况下,使按照记录用的编码方式对从记录介质PROD_A5读出的编码数据进行解码的解码部(未图示)介于记录介质PROD_A5与编码部PROD_A1之间为好。
图42(b)是表示搭载有图像解码装置31的接收装置PROD_B的构成的框图。如图42(b)所示,接收装置PROD_B具备:接收部PROD_B1,接收调制信号;解调部PROD_B2,通过对接收部PROD_B1所接收的调制信号进行解调而得到编码数据;以及解码部PROD_B3,通过对解调部PROD_B2得到的编码数据进行解码而得到运动图像。上述的图像解码装置31被作为该解码部PROD_B3来使用。
接收装置PROD_B也可以进一步具备显示运动图像的显示器PROD_B4、用于记录运动图像的记录介质PROD_B5、以及用于将运动图像输出至外部的输出端子PROD_B6,来做为解码部PROD_B3所输出的运动图像的供给目的地。图42(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的两方功能。
接着,参照图43,对能将上述的图像编码装置11以及图像解码装置31用于运动图像的记录以及再现的情况进行说明。
图43(a)是表示搭载有上述的图像编码装置11的记录装置PROD_C的构成的框图。如图43(a)所示,记录装置PROD_C具备:编码部PROD_C1,通过对运动图像进行编码而得到编码数据;以及写入部PROD_C2,将编码部PROD_C1得到的编码数据写入记录介质PROD_M。上述的图像编码装置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,用于接收运动图像;以及图像处理部C6,生成或加工图像。图43(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的一个示例。
图43(b)是表示搭载有上述的图像解码装置31的再现装置PROD_D的构成的框图。如图43(b)所示,再现装置PROD_D具备:读出部PROD_D1,读出已写入记录介质PROD_M的编码数据;以及解码部PROD_D2,通过对读出部PROD_D1所读出的编码数据进行解码来得到运动图像。上述的图像解码装置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,发送运动图像。图43(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 Processing Unit:中央处理器)而软件上地实现。
在后者的情况下,上述各装置具备:执行实现各功能的程序的命令的CPU、储存上述程序的ROM(Read Only Memory:只读存储器)、展开上述程序的RAM(Random AccessMemory:随机存取存储器)、以及储存上述程序和各种数据的存储器等存储装置(记录介质)等。然后,本发明的目的通过以下方式也能达成:将实现上述的功能的软件、即计算机可读取地记录有上述各装置的控制程序的程序代码(执行形式程序、中间代码程序、源程序)的记录介质供给至上述各装置,此计算机(或CPU、MPU)读出记录于记录介质的程序代码并执行。
作为上述记录介质,例如可使用磁带、盒式磁带等带类,包括软盘(注册商标)/硬盘等磁盘、CD-ROM(Compact DiscRead-Only Memory:光盘只读存储器)/MO盘(Magneto-Opticaldisc:磁光盘)/MD(Mini Disc:小型磁盘)/DVD(Digital Versatile Disc:数字化通用磁盘)/CD-R(CD Recordable:光盘刻录片)/蓝光盘(Blu-rayDisc:注册商标)等光盘的盘类,IC卡(包括存储卡)/光卡等卡类,掩膜ROM/EPROM(Erasable Programmable Read-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:数字生活网络联盟,注册商标)、便携电话网、卫星线路、地面波数字网等无线中都可利用。需要说明的是,本发明即使以通过电子传输将上述程序代码具体化的嵌入载波的计算机数据信号的形态也能实现。
本发明并不限定于上述的实施方式,在权利要求所示的范围内可进行各种变更。即,将在权利要求所示的范围内经过适当变更的技术方案组合而获得的实施方式也包括于本发明的技术范围内。
工业上的可利用性
本发明能优选地应用于对将图像数据编码而得到的编码数据进行解码的图像解码装置、以及生成将图像数据编码而得到的编码数据的图像编码装置。此外,能优选地应用于由图像编码装置生成并被图像解码装置参照的编码数据的数据结构。
附图标记说明
11...图像编码装置(运动图像编码装置)
31...图像解码装置(运动图像解码装置)
302...预测参数解码部(预测图像生成装置)
308...预测图像生成部(预测图像生成装置)
309...帧间预测图像生成部(预测图像生成部、预测图像生成装置)
3091...运动补偿部(预测图像生成装置)
30911...PU插补图像生成部(插补图像生成部)
30912...OBMC插补图像生成部(追加插补图像生成部、可利用性确认部)
3092...插补图像生成部(图像生成部)
3093...OBMC校正部(预测部、图像更新部)
Claims (10)
1.一种预测图像生成装置,参照参照图像来生成预测图像,其特征在于,
具备:运动补偿部,生成对象子块中的预测图像,
上述运动补偿部具备:
插补图像生成部,通过将对象预测单元(PU)的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块来生成插补图像;
追加插补图像生成部,通过将与上述对象子块邻接的邻接子块的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块来生成追加插补图像;以及
预测部,在由上述插补图像和上述追加插补图像生成预测图像的第一模式下,生成预测图像,
上述插补图像生成部以及追加插补图像生成部在选择了上述第一模式的情况下,进行滤波处理,所述滤波处理使用抽头数与选择仅使用上述插补图像来生成预测图像的第二模式的情况相比少的滤波器。
2.一种预测图像生成装置,参照参照图像来生成预测图像,其特征在于,
具备:运动补偿部,生成对象子块中的预测图像,
上述运动补偿部具备:
插补图像生成部,通过将对象预测单元(PU)的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块来生成插补图像;
追加插补图像生成部,通过将与上述对象子块邻接的邻接子块的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块来生成追加插补图像;以及
预测部,在由上述插补图像和上述追加插补图像来生成预测图像的第一模式下,生成预测图像,
上述追加插补图像生成部在选择了上述第一模式的情况下,将用于上述追加插补图像的生成的滤波器的抽头数设定得比用于上述插补图像的生成的滤波器的抽头数少。
3.一种预测图像生成装置,参照参照图像来生成预测图像,其特征在于,
具备:预测图像生成部,通过进行单预测以及双预测中的任一帧间预测来生成预测图像,
上述预测图像生成部具备:
图像生成部,生成插补图像和追加插补图像,所述插补图像通过将对象预测单元(PU)的运动信息和滤波处理应用于与对象PU对应的上述参照图像上的PU而得到,所述追加插补图像通过将邻接PU的运动信息和滤波处理应用于与对象PU对应的上述参照图像上的PU的边界区域的像素而得到;以及
预测部,在上述边界区域中参照上述插补图像和上述追加插补图像来生成预测图像,
上述图像生成部在通过双预测生成预测图像的情况下,将上述边界区域设定得比通过单预测生成预测图像的情况窄。
4.一种预测图像生成装置,参照参照图像来生成预测图像,其特征在于,
具备:预测图像生成部,通过进行单预测以及双预测中的任一帧间预测来生成预测图像,
上述预测图像生成部具备:
插补图像生成部,通过将对象预测单元(PU)的运动信息和滤波处理应用于与对象PU对应的上述参照图像上的PU来生成插补图像;
可利用性确认部,对对象PU按邻接方向确认与所述邻接方向邻接的PU中的运动信息的可利用性;
追加插补图像生成部,通过将由可利用性确认部判断为可利用的运动信息和滤波处理应用于与对象PU对应的上述参照图像上的PU来生成追加插补图像;以及
预测部,参照上述插补图像和上述追加插补图像来生成预测图像,
上述可利用性确认部在通过双预测生成预测图像的情况下,将上述邻接方向的数量设定得比通过单预测生成预测图像的情况少。
5.一种预测图像生成装置,参照参照图像来生成预测图像,其特征在于,
具备:运动补偿部,生成对象子块中的预测图像,
上述运动补偿部具备:
插补图像生成部,通过将对象预测单元(PU)的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块来生成插补图像;
追加插补图像生成部,通过将与上述对象子块邻接的邻接子块的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块的编码单元(CU)以及PU中至少一方的边界区域的像素,生成追加插补图像;以及
预测部,由上述插补图像和上述追加插补图像来生成预测图像生成预测图像,
上述追加插补图像生成部进行滤波处理,所述滤波处理使用抽头数在编码单元(CU)的边界区域比在预测单元(PU)的边界区域小的滤波器。
6.一种预测图像生成装置,参照参照图像来生成预测图像,其特征在于,
具备:运动补偿部,生成对象子块中的预测图像,
上述运动补偿部具备:
插补图像生成部,通过将对象预测单元(PU)的运动信息和滤波处理应用于与上述对象子块对应的上述参照图像上的子块来生成插补图像;
追加插补图像生成部,通过将与上述对象子块邻接的邻接子块的运动信息和滤波处理仅应用于与对象子块对应的上述参照图像上的PU的边界区域的像素来生成追加插补图像;以及
预测部,由上述插补图像和上述追加插补图像来生成预测图像生成预测图像。
7.一种预测图像生成装置,参照参照图像来生成预测图像,其特征在于,
具备:图像生成部,生成插补图像和追加插补图像,所述插补图像将对象预测单元(PU)的运动信息和滤波处理应用于与对象子块对应的上述参照图像上的子块而得到,所述追加插补图像将邻接子块的运动信息和滤波处理应用于与对象子块对应的上述参照图像上的子块的边界区域的像素而得到;以及
预测部,参照上述插补图像和上述追加插补图像来生成预测图像,
上述图像生成部将与对象子块对应的上述参照图像上的子块中的编码单元(CU)的边界区域设定得比PU的边界区域窄。
8.一种预测图像生成装置,参照参照图像来生成预测图像,其特征在于,具备:
插补图像生成部,通过将对象单元(PU)的运动信息和滤波处理应用于与对象子块对应的上述参照图像上的子块来生成插补图像;
可利用性确认部,对对象子块按包括多个邻接方向的邻接方向组所包括的邻接方向确认对于与所述邻接方向邻接的子块的运动信息的可利用性,通过将判断为可利用的运动信息和滤波处理应用于对象子块来生成追加插补图像;以及
图像更新部,通过使用了上述插补图像与上述追加插补图像的整数精度的系数的线性和来对更新用图像进行更新,
上述图像更新部在上述邻接方向组所包括的所有邻接方向上结束更新用图像的更新之后,通过加上更新后的上述插补图像以及更新后的上述追加插补图像并进行右位移位,来生成预测图像。
9.一种运动图像解码装置,其特征在于,
具备:权利要求1~8中任一项所述的预测图像生成装置,
通过对上述预测图像加上或减去残差图像来复原编码对象图像。
10.一种运动图像编码装置,其特征在于,
具备:权利要求1~8中任一项所述的预测图像生成装置,
对所述预测图像与编码对象图像的残差进行编码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016-097478 | 2016-05-13 | ||
JP2016097478 | 2016-05-13 | ||
PCT/JP2017/015784 WO2017195554A1 (ja) | 2016-05-13 | 2017-04-19 | 予測画像生成装置、動画像復号装置、および動画像符号化装置。 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109792535A true CN109792535A (zh) | 2019-05-21 |
CN109792535B CN109792535B (zh) | 2023-03-28 |
Family
ID=60266462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780029409.8A Active CN109792535B (zh) | 2016-05-13 | 2017-04-19 | 预测图像生成装置、运动图像解码装置以及运动图像编码装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20190191171A1 (zh) |
EP (1) | EP3457696A4 (zh) |
CN (1) | CN109792535B (zh) |
WO (1) | WO2017195554A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112616059A (zh) * | 2019-10-04 | 2021-04-06 | 夏普株式会社 | 运动图像变换装置以及方法、编码数据生成装置 |
CN113596474A (zh) * | 2021-06-23 | 2021-11-02 | 浙江大华技术股份有限公司 | 图像/视频编码方法、装置、系统及计算机可读存储介质 |
CN114762348A (zh) * | 2019-12-03 | 2022-07-15 | 夏普株式会社 | 运动图像解码装置 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106331722B (zh) | 2015-07-03 | 2019-04-26 | 华为技术有限公司 | 图像预测方法和相关设备 |
JP6854716B2 (ja) | 2017-07-05 | 2021-04-07 | キヤノン株式会社 | 画像処理装置、画像処理方法 |
JP6936641B2 (ja) * | 2017-07-05 | 2021-09-22 | キヤノン株式会社 | 画像処理装置、画像処理方法 |
US10841610B2 (en) * | 2017-10-23 | 2020-11-17 | Avago Technologies International Sales Pte. Limited | Block size dependent interpolation filter selection and mapping |
KR102694426B1 (ko) | 2017-12-08 | 2024-08-13 | 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 | 이미지 인코딩 장치, 이미지 디코딩 장치, 이미지 인코딩 방법 및 이미지 디코딩 방법 |
US20190222834A1 (en) * | 2018-01-18 | 2019-07-18 | Mediatek Inc. | Variable affine merge candidates for video coding |
EP4221201A1 (en) | 2018-01-29 | 2023-08-02 | InterDigital VC Holdings, Inc. | Encoding and decoding with refinement of the reconstructed picture |
WO2019165162A1 (en) | 2018-02-26 | 2019-08-29 | Interdigital Vc Holdings, Inc. | Method and apparatus for generalized obmc |
WO2019188464A1 (ja) * | 2018-03-30 | 2019-10-03 | ソニー株式会社 | 画像符号化装置、画像符号化方法、画像復号装置、および画像復号方法 |
US11109057B2 (en) * | 2018-04-16 | 2021-08-31 | Mediatek Inc. | Overlapped block motion compensation based on blended predictors |
US20190373292A1 (en) * | 2018-06-01 | 2019-12-05 | Qualcomm Incorporated | In-loop bilateral filter type decision based on block information |
WO2019234606A1 (en) | 2018-06-05 | 2019-12-12 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between ibc and atmvp |
US20190387251A1 (en) * | 2018-06-19 | 2019-12-19 | Mediatek Inc. | Methods and Apparatuses of Video Processing with Overlapped Block Motion Compensation in Video Coding Systems |
CN110636298B (zh) | 2018-06-21 | 2022-09-13 | 北京字节跳动网络技术有限公司 | 对于Merge仿射模式和非Merge仿射模式的统一约束 |
WO2019244118A1 (en) | 2018-06-21 | 2019-12-26 | Beijing Bytedance Network Technology Co., Ltd. | Component-dependent sub-block dividing |
US10798394B2 (en) * | 2018-06-27 | 2020-10-06 | Avago Technologies International Sales Pte. Limited | Low complexity affine merge mode for versatile video coding |
US11051036B2 (en) * | 2018-07-14 | 2021-06-29 | Mediatek Inc. | Method and apparatus of constrained overlapped block motion compensation in video coding |
CN116647696A (zh) * | 2018-09-06 | 2023-08-25 | Lg电子株式会社 | 图像解码方法、图像编码方法、存储介质和发送方法 |
CN117768651A (zh) | 2018-09-24 | 2024-03-26 | 北京字节跳动网络技术有限公司 | 处理视频数据的方法、装置、介质、以及比特流存储方法 |
CN111083487B (zh) * | 2018-10-22 | 2024-05-14 | 北京字节跳动网络技术有限公司 | 仿射模式的运动信息的存储 |
CN113056917B (zh) | 2018-11-06 | 2024-02-06 | 北京字节跳动网络技术有限公司 | 为视频处理使用具有几何分割的帧间预测 |
US11212521B2 (en) * | 2018-11-07 | 2021-12-28 | Avago Technologies International Sales Pte. Limited | Control of memory bandwidth consumption of affine mode in versatile video coding |
WO2020094150A1 (en) | 2018-11-10 | 2020-05-14 | Beijing Bytedance Network Technology Co., Ltd. | Rounding in current picture referencing |
EP4325849A3 (en) | 2018-11-22 | 2024-04-17 | Beijing Bytedance Network Technology Co., Ltd. | Coordination method for sub-block based inter prediction |
WO2020140862A1 (en) | 2018-12-30 | 2020-07-09 | Beijing Bytedance Network Technology Co., Ltd. | Conditional application of inter prediction with geometric partitioning in video processing |
EP3942823A4 (en) * | 2019-03-18 | 2023-04-05 | Tencent America LLC | VIDEO CODING METHOD AND APPARATUS |
EP3713235B1 (en) | 2019-03-19 | 2023-08-02 | Axis AB | Methods and devices for encoding a video stream using a first and a second encoder |
WO2021027862A1 (en) * | 2019-08-13 | 2021-02-18 | Beijing Bytedance Network Technology Co., Ltd. | Motion precision in sub-block based inter prediction |
KR20220043109A (ko) | 2019-08-13 | 2022-04-05 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 서브 블록 기반 인터 예측의 모션 정밀도 |
ES2967663T3 (es) | 2019-08-26 | 2024-05-03 | Huawei Tech Co Ltd | Método y aparato para el almacenamiento de información de movimiento |
CN114424553A (zh) | 2019-09-22 | 2022-04-29 | 北京字节跳动网络技术有限公司 | 基于子块的帧间预测的缩放方法 |
CN118540473A (zh) * | 2021-02-22 | 2024-08-23 | 北京达佳互联信息技术有限公司 | 用于帧间预测的改进重叠块运动补偿 |
US20230094825A1 (en) * | 2021-09-28 | 2023-03-30 | Qualcomm Incorporated | Motion vector difference sign prediction for video coding |
JP7549088B2 (ja) | 2022-01-14 | 2024-09-10 | Kddi株式会社 | 画像復号装置、画像符号化装置、画像復号方法及びプログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120300850A1 (en) * | 2010-02-02 | 2012-11-29 | Alex Chungku Yie | Image encoding/decoding apparatus and method |
CN104041043A (zh) * | 2012-01-18 | 2014-09-10 | Jvc建伍株式会社 | 动图像编码装置、动图像编码方法及动图像编码程序,以及动图像解码装置、动图像解码方法及动图像解码程序 |
WO2015081888A1 (en) * | 2013-12-06 | 2015-06-11 | Mediatek Inc. | Method and apparatus for motion boundary processing |
WO2015149699A1 (en) * | 2014-04-01 | 2015-10-08 | Mediatek Inc. | Method of adaptive interpolation filtering in video coding |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4295227B2 (ja) * | 2005-01-04 | 2009-07-15 | 日本電信電話株式会社 | 動画像符号化方法,動画像符号化装置,動画像符号化プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2012070277A (ja) * | 2010-09-24 | 2012-04-05 | Jvc Kenwood Corp | 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム |
US9883203B2 (en) * | 2011-11-18 | 2018-01-30 | Qualcomm Incorporated | Adaptive overlapped block motion compensation |
-
2017
- 2017-04-19 US US16/301,430 patent/US20190191171A1/en not_active Abandoned
- 2017-04-19 CN CN201780029409.8A patent/CN109792535B/zh active Active
- 2017-04-19 WO PCT/JP2017/015784 patent/WO2017195554A1/ja unknown
- 2017-04-19 EP EP17795915.2A patent/EP3457696A4/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120300850A1 (en) * | 2010-02-02 | 2012-11-29 | Alex Chungku Yie | Image encoding/decoding apparatus and method |
CN104041043A (zh) * | 2012-01-18 | 2014-09-10 | Jvc建伍株式会社 | 动图像编码装置、动图像编码方法及动图像编码程序,以及动图像解码装置、动图像解码方法及动图像解码程序 |
WO2015081888A1 (en) * | 2013-12-06 | 2015-06-11 | Mediatek Inc. | Method and apparatus for motion boundary processing |
WO2015149699A1 (en) * | 2014-04-01 | 2015-10-08 | Mediatek Inc. | Method of adaptive interpolation filtering in video coding |
Non-Patent Citations (2)
Title |
---|
GUO L ET AL: "CE2: overlapped block motion compesation", 《 7. JCT-VC MEETING》 * |
JIANLE CHEN ET AL: "Algorithm description of joint exploration test model 1", 《JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG.16 WP3 AND ISO/IEC JTC1/SC29/WG11;》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112616059A (zh) * | 2019-10-04 | 2021-04-06 | 夏普株式会社 | 运动图像变换装置以及方法、编码数据生成装置 |
CN114762348A (zh) * | 2019-12-03 | 2022-07-15 | 夏普株式会社 | 运动图像解码装置 |
CN113596474A (zh) * | 2021-06-23 | 2021-11-02 | 浙江大华技术股份有限公司 | 图像/视频编码方法、装置、系统及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3457696A4 (en) | 2019-12-18 |
EP3457696A1 (en) | 2019-03-20 |
WO2017195554A1 (ja) | 2017-11-16 |
US20190191171A1 (en) | 2019-06-20 |
CN109792535B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109792535A (zh) | 预测图像生成装置、运动图像解码装置以及运动图像编码装置 | |
US11631199B2 (en) | Image filtering apparatus, image decoding apparatus, and image coding apparatus | |
US11463701B2 (en) | Coding device predicting chrominance based on down-sampled luminance | |
US11979602B2 (en) | Motion vector generation device, a prediction image generation device, a video decoding device and a video coding device | |
US20200021837A1 (en) | Video decoding apparatus and video coding apparatus | |
CN108293136A (zh) | 用于编码360度全景视频的方法、装置和计算机程序产品 | |
CN103891291A (zh) | 用于视频编码和解码的设备、方法和计算机程序 | |
CN112740704B (zh) | 图像解码装置以及图像编码装置 | |
US11770555B2 (en) | Prediction image generation device, moving image decoding device, and moving image coding device | |
US12126819B2 (en) | Video encoding device and video decoding device | |
CN109076219A (zh) | 图像解码装置以及图像编码装置 | |
CN113228682A (zh) | 预测图像生成装置、运动图像解码装置、运动图像编码装置以及预测图像生成方法 | |
JP2019201254A (ja) | 画像復号装置、および画像符号化装置 | |
JP2022007319A (ja) | 動画像符号化装置、復号装置 | |
US10778976B2 (en) | Image decoding apparatus and image coding apparatus | |
JP2021027429A (ja) | 動画像符号化装置、動画像復号装置 | |
US11044490B2 (en) | Motion compensation filter apparatus, image decoding apparatus, and video coding apparatus | |
TW202139699A (zh) | 動態圖像解碼裝置及動態圖像解碼方法 | |
JP2020195014A (ja) | 動画像復号装置および動画像符号化装置 | |
JP2021153253A (ja) | 動画像符号化装置及び動画像復号装置 | |
JP2024149704A (ja) | 動画像復号装置及び画像符号化装置 | |
JP2022085475A (ja) | 動画像符号化装置、復号装置 | |
JP2021027458A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200820 Address after: No.1, Takumicho, Sakai Ward, Sakai City, Osaka Prefecture, Japan Applicant after: Sharp Corp. Applicant after: FG Innovation Co.,Ltd. Address before: No. 1, no Japanese country Applicant before: Sharp Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |