掌桥专利:专业的专利平台
掌桥专利
首页

图像编码/解码方法和装置

文献发布时间:2023-06-19 10:58:46


图像编码/解码方法和装置

技术领域

本发明涉及图像编码/解码方法和设备。

背景技术

随着因特网和便携式终端的广泛使用以及信息和通信技术的发展,多媒体数据被越来越多地使用。因此,为了通过各种系统中的图像预测提供各种服务或执行各种任务,迫切需要提高图像处理系统的性能和效率。然而,研究和开发成果尚未跟得上这种趋势。

因此,用于对图像进行编码/解码的现有方法和设备需要在图像处理、特别是在图像编码或图像解码中的性能改进。

发明内容

技术问题

用于解决以上问题的本发明的目的是提供图像编码/解码设备,其使用调整偏移来修改运动矢量预测值。

技术解决方案

根据本发明的实施方式的用于实现以上目的的对图像进行解码的方法包括:构造目标块的运动信息预测候选列表,选择预测候选索引,得出预测运动矢量调整偏移,以及重构目标块的运动信息。

此处,构造运动信息预测候选列表还可以包括:当已经包括的候选、基于偏移信息获得的候选、新候选和基于偏移信息获得的候选不交叠时,在候选组中包括新候选。

此处,得出预测运动矢量调整偏移还可以包括:基于偏移应用标志和/或偏移选择信息来得出预测运动矢量调整偏移。

有益效果

在如上所述使用根据本发明的帧间预测的情况下,可以通过有效地获得预测运动矢量来提高编码性能。

附图说明

图1是示出根据本发明的实施方式的图像编码和解码系统的框图。

图2是示出根据本发明的示例性实施方式的图像编码设备的框图。

图3示出了根据应用本发明的实施方式的图像解码设备。

图4示出了作为应用本发明的实施方式的基于树结构的块划分(division)方法。

图5是示出根据本发明通过帧间预测获得预测块的各种情况的示例图。

图6是根据本发明的实施方式构造参考图片列表的示例图。

图7是示出根据本发明的实施方式的非平移运动模型的概念图。

图8是示出根据本发明的实施方式的以子块为单位的运动估计的示例图。

图9是示出根据本发明的实施方式的运动信息的编码的流程图。

图10是根据本发明的实施方式的目标块和与其相邻的块的布局图。

图11示出了根据本发明的实施方式的统计候选的示例图。

图12是根据本发明的实施方式的根据非平移运动模型的统计候选的概念图。

图13是根据本发明的实施方式的作为统计候选而存储的每个控制点的位置的运动信息构造的示例图。

图14是示出根据本发明的实施方式的运动信息编码的流程图。

图15是根据本发明的实施方式的目标块的运动矢量预测候选和运动矢量的示例图。

图16是根据本发明的实施方式的目标块的运动矢量预测候选和运动矢量的示例图。

图17是根据本发明的实施方式的目标块的运动矢量预测候选和运动矢量的示例图。

图18是示出根据本发明的实施方式的多个运动矢量预测值的布置的示例图。

图19是示出根据本发明的实施方式的合并模式下的运动信息编码的流程图。

本发明的最佳模式

本发明的图像编码/解码方法和设备可以构造目标块的预测运动候选列表,基于预测候选索引从运动候选列表中得出预测运动矢量,重构预测运动矢量调整偏移信息,以及基于预测运动矢量和预测运动矢量调整偏移信息来重构目标块的运动矢量。

在本发明的图像编码/解码方法和设备中,运动候选列表可以包括空间候选、时间候选、统计候选或组合候选中的至少一个。

在本发明的图像编码/解码方法和设备中,预测运动矢量调整偏移可以基于偏移应用标志或偏移选择信息中的至少一个来确定。

在本发明的图像编码/解码方法和设备中,关于预测运动矢量调整偏移信息是否被支持的信息可以被包括在序列、图片、子图片、切片、图块或区块中的至少一个中。

在本发明的图像编码/解码方法和设备中,当以合并模式对目标块进行编码时,可以通过使用零矢量来重构目标块的运动矢量,并且当以竞争模式对目标块进行编码时,可以通过使用运动矢量差来重构目标块的运动矢量。

本发明的模式

本公开内容可以进行各种修改并且具有各种实施方式。将参照附图描述本公开内容的特定实施方式。然而,该实施方式并不旨在限制本公开内容的技术范围,并且应当理解,本公开内容涵盖了在本公开内容的范围和构思内的各种修改、等同形式和替选形式。

在本公开内容中使用的术语第一、第二、A和B可以用于描述各种部件,而不是限制部件。这些表述仅用于将一个部件与另一部件区分开。例如,在不脱离本公开内容的范围的情况下,第一部件可以被称为第二部件,并且,第二部件可以被称为第一部件。该术语和/或涵盖多个相关项的组合或多个相关项中的任何一个。

当提到一个部件“连接至”另一部件或“与另一部件耦接/耦接至”另一部件时,应当理解为一个部件直接或通过任何其他部件连接至其他部件。另一方面,当提到一个部件“直接连接至”或“直接耦接至”另一部件时,应当理解为在部件之间不存在其他部件。

提供在本公开内容中使用的术语仅用于描述特定实施方式,而不旨在限制本公开内容。除非上下文另有明确规定,否则单数形式包括复数指代。在本公开内容中,术语“包括”或“具有”表明特征、数字、步骤、操作、部件、零件或其组合的存在,但不排除存在或添加一个或更多个其他特征、数字、步骤、操作、部件、零件或其组合。

除非另有定义,否则本公开内容中使用的包括技术或科学术语的术语可以具有与本领域技术人员通常理解的含义相同的含义。字典中通常定义的术语可以被解释为与相关技术的上下文含义具有相同或类似的含义。除非另有定义,否则这些术语不应被解释为理想或过度形式的含义。

通常,图像可以根据其颜色格式包括一个或更多个颜色空间。该图像可以包括相同尺寸的一个或更多个图片或者不同尺寸的一个或更多个图片。例如,YCbCr颜色配置可以支持例如4:4:4、4:2:2、4:2:0和单色(仅由Y组成)的颜色格式。例如,YCbCr 4:2:0可以由一个亮度分量(在该示例中的Y)和两个色度分量(在该示例中的Cb/Cr)组成。在这种情况下,色度分量和亮度分量的配置比可以具有1:2的宽度-高度。例如,在4:4:4的情况下,其在宽度和高度方面可以具有相同的配置比。如以上示例中那样,当图片包括一个或更多个颜色空间时,可以将图片划分成颜色空间。

可以根据图像的图像类型(例如,图片类型、子图片类型、切片类型、图块类型、区块类型等)将图像分类为I、P和B。I图片可以是在没有参考图片的情况下被编码的图像。P图片可以是使用参考图片进行编码、仅允许前向预测的图像。B图片可以是使用参考图片进行编码、允许双向预测的图像。然而,根据编码设置,可以组合一些类型(P和B)或者可以支持不同组成的图像类型。

在本公开内容中生成的各种编码/解码信息片段可以被显式地或隐式地处理。显式处理可以被理解为以下处理:通过编码器生成序列、图片、子图片、切片、图块、区块、块或子块中的编码/解码信息,并且将选择信息包括在比特流中,并且通过解码器在与编码器中相同的单元级别解析相关信息来将相关信息重构为解码信息。隐式处理可以被理解为在编码器和解码器两者处以相同的过程、规则等处理编码/解码信息。

图1是示出根据本公开内容的实施方式的图像编码和解码系统的概念图。

参照图1,图像编码设备(105)和图像解码设备(100)中的每一个可以是用户终端,例如,个人计算机(PC)、膝上型计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、便携式游戏机(PSP)、无线通信终端、智能电话或电视(TV)、或者诸如应用服务器或服务服务器的服务器终端。图像编码设备105和图像解码设备100中的每一个可以是各种装置中的任何一种,每个装置包括:与各种装置或有线/无线通信网络通信的诸如通信调制解调器的通信装置;存储用于帧间预测或帧内预测的各种程序和数据以对图像进行编码或解码的存储器(120或125);或者通过执行程序来执行计算和控制操作的处理器(110或115)。

此外,图像编码设备(105)可以通过诸如因特网、短距离无线通信网、无线局域网(WLAN)、无线宽带(Wi-Bro)网或移动通信网的有线/无线通信网或者经由诸如电缆或通用串行总线(USB)的各种通信接口实时地或非实时地将编码为比特流的图像发送至图像解码设备(100),并且图像解码设备(100)可以通过解码比特流将接收到的比特流重构为图像,并且再现该图像。此外,图像编码设备(105)可以通过计算机可读记录介质将编码为比特流的图像发送至图像解码设备(100)。

虽然上述图像编码设备和图像解码设备可以是单独的设备,但是根据实现方式,它们可以被并入单个图像编码/解码设备中。在这种情况下,图像编码设备的一些部件可以与图像解码设备的它们的对应部件基本相同。因此,这些部件可以被配置成包括相同的结构或执行至少相同的功能。

因此,在以下对技术部件及其操作原理的详细描述中,将取消对相应技术部件的多余描述。此外,由于图像解码设备是将在图像编码设备中执行的图像编码方法应用于解码的计算装置,因此以下描述将集中于图像编码设备。

计算装置可以包括:存储器,其存储执行图像编码方法和/或图像解码方法的程序或软件模块;以及处理器,其连接至存储器并且执行程序。图像编码设备可以被称为编码器,并且图像解码设备可以被称为解码器。

图2是示出根据本公开内容的实施方式的图像编码设备的框图。

参照图2,图像编码设备(20)可以包括预测单元(200)、减法单元(205)、变换单元(210)、量化单元(215)、逆量化单元(220)、逆变换单元(225)、加法单元(230)、滤波器单元(235)、编码图片缓冲器(240)和熵编码单元(245)。

预测单元(200)可以使用作为软件模块的预测模块来实现,并且针对要被编码的块通过帧内预测或帧间预测来生成预测块。预测单元(200)可以通过预测在图像中要被编码的目标块来生成预测块。换言之,预测单元(200)可以通过根据帧间预测或帧内预测来预测目标块中像素的像素值来生成具有每个像素的预测像素值的预测块。此外,预测单元(200)可以将生成预测块所需的信息——例如关于如帧内预测模式或帧间预测模式的预测模式的信息——提供给编码单元,使得编码单元可以对关于预测模式的信息进行编码。可以根据编码设置来确定经受预测的处理单元、预测方法和关于处理单元的具体细节。例如,可以基于预测单元来确定预测方法和预测模式,并且可以基于变换单元执行预测。另外,当使用特定编码模式时,可以对原始块进行原样编码,并且将其发送至解码器,而无需通过预测单元生成预测块。

帧内预测单元可以具有:定向预测模式,例如根据预测方向使用的水平模式、垂直模式等;以及非定向预测模式,例如使用诸如对参考像素进行求平均和内插的方法的DC、平面等。帧内预测模式候选组可以通过定向和非定向模式来构造,并且诸如35个预测模式(33个定向+2个非定向)、67个预测模式(65个定向+2个非定向)、131个预测模式(129个定向+2个非定向)的各种候选之一可以用作候选组。

帧内预测单元可以包括参考像素构造单元、参考像素滤波器单元、参考像素内插单元、预测模式确定单元、预测块生成单元和预测模式编码单元。参考像素构造单元可以将属于与目标块相邻且与目标块相邻的块的像素构造为用于帧内预测的参考像素。根据编码设置,一个相邻的参考像素线可以被构造为参考像素,或者另一相邻的参考像素线可以被构造为参考像素,或者多个参考像素线可以被构造为参考像素。当参考像素中的一些不可用时,可以使用可用的参考像素来生成参考像素。当所有参考像素都不可用时,预定值(例如,由位深度表示的像素值范围的中值等)可以用于生成参考像素。

出于减少通过编码处理而剩余的劣化的目的,帧内预测单元的参考像素滤波器单元可以对参考像素执行滤波。在这种情况下,使用的滤波器可以是低通滤波器,例如3抽头滤波器[1/4,1/2,1/4]、5抽头滤波器[2/16,3/16,6/16,3/16,2/16]等。是否应用滤波和滤波类型可以根据编码信息(例如,块大小、形状、预测模式等)来确定。

帧内预测单元的参考像素内插单元可以根据预测模式通过参考像素的线性内插处理来生成分数单位的像素,并且可以确定根据编码信息应用的内插滤波器。在这种情况下,所使用的内插滤波器可以包括4抽头立方滤波器、4抽头高斯滤波器、6抽头维纳滤波器、8抽头卡尔曼滤波器等。通常,内插与执行低通滤波器的处理分开执行,但是滤波处理可以通过将应用于两个处理的滤波器集成为一个来执行。

帧内预测单元的预测模式确定单元可以考虑编码成本从预测模式候选之中选择至少一个最佳预测模式,并且预测块生成单元可以使用对应的预测模式来生成预测块。预测模式编码单元可以基于预测值对最佳预测模式进行编码。在这种情况下,可以根据预测值正确与否的情况自适应地编码预测信息。

在帧内预测单元中,预测值被称为最可能模式即MPM,并且属于预测模式候选组的模式中的一些可以被构造为MPM候选组。MPM候选组可以包括预定的预测模式(例如,DC模式、平面模式、垂直模式、水平模式、对角模式等)或者空间上相邻的块(例如,左块、上块、左上块、右上块、左下块等)的预测模式。另外,从先前包括在MPM候选组中的模式得出的模式(在定向模式的情况下的+1与-1之间的差)可以被构造为MPM候选组。

可能存在用于构造MPM候选组的预测模式的优先级。可以根据优先级来确定被包括在MPM候选组中的顺序,并且当根据优先级来填充MPM候选组的数目(根据预测模式候选组的数目来确定)时,可以完成MPM候选组构造。在这种情况下,可以按照空间上相邻的块的预测模式、预定的预测模式以及从先前包括在MPM候选组中的预测模式得出的模式的顺序来确定优先级,但是其他修改也是可行的。

例如,空间上相邻的块可以按照左块、上块、左下块、右上块、左上块等的顺序被包括在候选组中,并且预定的预测模式可以按照DC模式、平面模式、垂直模式、水平模式的顺序被包括在候选组中。总共六个模式可以通过包括如下模式而被构造为候选组,该模式通过从已经包括的模式向候选组添加+1、-1等而获得。替选地,总共7个模式可以通过包括诸如左、上、DC、平面、左下、右上、左上、(左+1)、(左-1)、(上+1)的一个优先级来被构造为候选组。

减法单元(205)可以通过从目标块减去预测块来生成残差块。换言之,减法单元(205)可以计算要编码的目标块中的每个像素的像素值与由预测单元生成的预测块中的对应像素的预测像素值之间的差,以生成块的形式的残差信号即残差块。此外,减法单元(205)可以以除了通过稍后描述的块划分单元获得的块之外的单元生成残差块。

变换单元(210)可以将空间信号变换为频率信号。通过变换处理获得的信号被称为变换系数。例如,具有从减法单元接收的残差信号的残差块可以被变换为具有变换系数的变换块,并且根据编码配置来确定输入信号,该输入信号不限于残差信号。

变换单元可以通过但是不限于诸如哈达玛变换、基于离散正弦变换(DST)的变换或基于DCT的变换的变换方案来变换残差块。这些变换方案可以以各种方式改变和修改。

可以支持所述变换方案中的至少一个,并且可以支持每个变换方案的至少一个子变换方案。可以通过修改变换方案中的基本矢量的一部分来获得子变换方案。

例如,在DCT的情况下,可以支持子变换方案DCT-1至DCT-8中的一个或更多个,并且在DST的情况下,可以支持子变换方案DST-1至DST-8中的一个或更多个。变换方案候选组可以被配置有子变换方案的一部分。例如,DCT-2、DCT-8和DST-7可以被分组为用于变换的候选组。

可以在水平方向/垂直方向上执行变换。例如,通过DCT-2可以在水平方向上执行一维变换,并且通过DST-7可以在垂直方向上执行一维变换。利用二维变换,可以将像素值从空间域变换至频域。

可以采用一个固定变换方案,或者可以根据编码配置自适应地选择变换方案。在后一种情况下,可以显式地或隐式地选择变换方案。当显式地选择变换方案时,可以例如在块级别生成关于在水平方向和垂直方向中的每一个上应用的变换方案或变换方案集的信息。当隐式地选择变换方案时,可以根据图像类型(I/P/B)、颜色分量、块尺寸、块形状、块位置、帧内预测模式等来限定编码配置,并且可以根据编码设置来选择预定的变换方案。

此外,可以根据编码设置跳过一些变换。也就是说,可以显式地或隐式地省略水平单元和垂直单元中的一个或更多个。

此外,变换单元可以将生成变换块所需的信息发送至编码单元,使得编码单元对信息进行编码,将经编码信息包括在比特流中,并且将比特流发送至解码器。因此,解码器的解码单元可以对来自比特流的信息进行解析,以用于逆变换。

量化单元(215)可以对输入信号进行量化。从量化获得的信号被称为量化系数。例如,量化单元215可以通过对具有从变换单元接收的残差变换系数的残差块进行量化来获得具有量化系数的量化块,并且可以根据编码设置确定输入信号,该编码设置不限于残差变换系数。

量化单元可以通过但不限于诸如死区均匀边界值量化、量化加权矩阵等的量化方案对变换的残差块进行量化。可以以各种方式改变和修改以上量化方案。

可以根据编码设置跳过量化。例如,可以根据编码设置(例如,量化参数为0,即无损压缩环境)来跳过量化(和逆量化)。在另一示例中,当考虑到图像的特性而没有执行基于量化的压缩性能时,可以省略量化处理。在量化块(M×N)的整个或部分区域(M/2×N/2、M×N/2或M/2×N)中可以跳过量化,并且可以显式地或隐式地设置量化跳过选择信息。

量化单元可以将生成量化块所需的信息发送至编码单元,使得编码单元对该信息进行编码,将经编码信息包括在比特流上,并且将比特流发送至解码器。因此,解码器的解码单元可以对来自比特流的信息进行解析,以用于逆量化。

尽管在假设通过变换单元和量化单元对残差块进行变换和量化的情况下描述了以上示例,但是可以通过对残差信号进行变换来生成具有变换系数的残差块,并且可以不对其进行量化。残差块可以仅经受量化而不经受变换。此外,残差块可以经受变换和量化两者。这些操作可以根据编码设置来确定。

逆量化单元(220)对由量化单元(215)量化的残差块进行逆量化。也就是说,逆量化单元(220)通过对量化频率系数序列进行逆量化来生成具有频率系数的残差块。

逆变换单元(225)对由逆量化单元(220)逆量化的残差块进行逆变换。也就是说,逆变换单元(225)对逆量化的残差块的频率系数进行逆变换,以生成具有像素值的残差块,即重构的残差块。逆变换单元(225)可以通过相反地执行由变换单元(210)使用的变换方案来执行逆变换。

加法单元(230)通过将由预测单元(200)预测的预测块与由逆变换单元(225)恢复的残差块相加来重构目标块。重构的目标块作为参考图片(或参考块)被存储在编码图片缓冲器(240)中,以在稍后对目标块的下一块、另一块或另一图片进行编码时用作参考图片。

滤波器单元(235)可以包括一个或更多个后处理滤波器,例如解块滤波器、样本自适应偏移SAO和自适应环路滤波器ALF。解块滤波器可以去除在重构图片中的块之间的边界处发生的块失真。ALF可以基于通过对在通过解块滤波器对块进行滤波之后的重构图像与原始图像进行比较而获得的值来执行滤波。SAO可以对在原始图像与应用解块滤波器的残差块之间的像素级别的偏移差进行重构。这些后处理滤波器可以应用于重构的图片或块。

编码图片缓冲器(240)可以存储由滤波器单元(235)重构的块或图片。存储在编码图片缓冲器(240)中的重构块或图片可以被提供给执行帧内预测或帧间预测的预测单元(200)。

熵编码单元(245)可以通过根据至少一个扫描顺序(例如,之字形扫描、垂直扫描、水平扫描等)扫描所生成的残差块的量化系数、变换系数或残差信号来生成量化系数序列、变换系数序列或信号序列。熵编码单元245可以通过使用至少一种熵编码技术来编码量化系数序列、变换系数序列或信号序列。在这种情况下,可以根据编码设置(例如,图像类型、编码模式、预测模式、变换类型等)来确定关于扫描顺序的信息,并且可以隐式地确定或显式地生成相关信息。

另外,可以生成包括从每个部件发送的编码信息的编码数据,并且作为比特流输出,这可以由多路复用器(MUX)实现。在这种情况下,可以通过使用诸如指数Golomb、上下文自适应可变长度编码(CAVLC)和上下文自适应二进制算术编码(CABAC)的方法作为编码技术来执行编码,但是不限于此,并且可以使用从中提炼和修改的各种编码技术。

当对诸如编码/解码处理中生成的残留块数据和信息的语法元素执行熵编码(在该示例中假设CABAC)时,熵编码设备可以包括二值化单元(二值化器)、上下文建模器、二进制算术编码单元(二进制算术编码器)。在这种情况下,二进制算术编码单元可以包括常规编码引擎和旁路编码引擎。

由于输入至熵编码设备的语法元素可以不是二进制值,如果语法元素不是二进制值,则二值化单元可以将语法元素二值化并且输出由0或1组成的二进制串(bin string)。在这种情况下,二进制(bin)可以代表由0或1组成的位,并且可以通过二进制算术编码单元进行编码。在这种情况下,可以基于0和1的出现概率来选择常规编码单元或旁路编码单元之一,并且这可以根据编码/解码设置来确定。如果语法元素是具有0和1的相同频率的数据,则可以使用旁路编码单元,否则,可以使用常规编码单元。

当对语法元素执行二值化时,可以使用各种方法。例如,可以使用固定长度二值化、一元二值化、截断莱斯二值化、K阶指数哥伦布二值化等。另外,可以根据语法元素的值的范围来执行带符号二值化或无符号二值化。可以执行本发明中出现的语法元素的二值化处理,不仅包括以上示例中提到的二值化,而且还包括其他附加的二值化方法。

图3是示出根据本公开内容的实施方式的图像解码设备的框图。

参照图3,图像解码设备(30)可以被配置成包括熵解码器(305)、预测单元(310)、逆量化单元(315)、逆变换单元(320)、加法单元/减法单元(325)、滤波器(330)和解码图片缓冲器(335)。

此外,预测单元(310)可以被配置成包括帧内预测模块和帧间预测模块。

当从图像编码设备(20)接收到图像比特流时,可以将图像比特流发送至熵解码器(305)。

熵解码器(305)可以将比特流解码为包括量化系数的解码数据和要被发送至每个部件的解码信息。

预测单元(310)可以基于从熵解码器(305)接收的数据生成预测块。基于存储在解码图片缓冲器(335)中的参考图像,可以使用默认配置方案来产生参考图片列表。

帧内预测单元可以包括参考样本构造单元、参考样本滤波器单元、参考样本内插单元、预测块生成单元、预测模式解码单元。部件中的一些可以执行与编码器中相同的处理,并且其他部件可以相反地执行编码器的处理。

逆量化单元(315)可以对在比特流中提供并且由熵解码器(305)解码的经量化的变换系数进行逆量化。

逆变换单元(320)可以通过对变换系数应用逆DCT、逆整数变换或类似的逆变换技术来生成残差块。

逆量化单元(315)和逆变换单元(320)可以反向地执行上述图像编码设备(20)的变换单元(210)和量化单元(215)的处理,并且可以以各种方式实现。例如,逆量化单元315和逆变换单元320可以使用与变换单元(210)和量化单元(215)共享的相同处理和逆变换,并且可以使用从图像编码设备(20)接收的关于变换和量化处理的信息(例如,变换尺寸、变换形状、量化类型等)来反向地执行变换和量化。

可以将已经被逆量化和逆变换的残差块添加至由预测单元(310)得出的预测块,从而产生重构的图像块。该加法可以由加法单元/减法单元(325)执行。

关于滤波器(330),当需要时,可以应用解块滤波器以从重构的图像块中去除块现象。为了改善解码处理之前和之后的视频质量,可以另外使用其他环路滤波器。

经重构和滤波的图像块可以被存储在解码图片缓冲器(335)中。

尽管在附图中未示出,但是图像编码/解码设备还可以包括图片划分单元和块划分单元。

图片划分单元可以基于预定的划分单元将图片划分或分区(partition)成至少一个区域。此处,划分单元可以包括子图片、切片、图块、区块、块(例如,最大编码单元)等。

图片可以被划分成一个或更多个图块行或者一个或更多个图块列。在这种情况下,图块可以是基于块的单元,其包括图片的预定非方形区域。在这种情况下,图块可以被划分成一个或更多个区块,并且区块可以由以图块的行或列为单位的块组成。

切片可以利用一个或更多个配置来设置,其中一个配置可以根据扫描顺序由束(例如,块、区块、图块等)组成,并且它们中的一个可以由包括非方形区域的形状组成,并且其他附加定义也是可行的。

关于切片配置的定义,可以显式地生成相关信息或者可以隐式地确定相关信息。可以设置每个划分单元以及切片的配置的多个定义,并且可以生成关于此的选择信息。

切片可以以诸如块、区块和图块的非方形形状为单位来配置,并且切片位置和尺寸信息可以基于针对划分单元的位置信息(例如,左上位置、右下位置等)来表示。

在本发明中,在假设图片可以由一个或更多个子图片组成,子图片可以由一个或更多个切片、图块或区块组成,切片可以由一个或更多个图块或区块组成,并且图块可以由一个或更多个区块组成的情况下进行描述。但是本发明不限于此。

划分单元可以由整数个块组成,但是不限于此,并且可以由小数(decimalnumber)而不是整数组成。也就是说,当不是由整数个块组成时,至少一个划分单元可以由子块组成。

除了非方形切片之外,还可以存在诸如子图片或图块的划分单元,并且可以基于各种方法来表示单元的位置信息、尺寸信息。

例如,非方形单元的位置和尺寸信息可以基于关于非方形单元的数目的信息、关于非方形单元的列或行的数目的信息、关于是否在非方形单元中被均匀地划分成列或行的信息、关于非方形单元中的列或行单元的宽度或高度的信息、非方形单元的索引信息来表示。

在子图片和图块的情况下,每个单元的位置和尺寸信息可以基于全部或部分信息来表示,并且基于此,可以被划分或分区成一个或更多个单元。

同时,可以通过块划分单元划分成各种单位和尺寸的块。基本编码单元(或最大编码单元、编码树单元CTU)可以意指在图像编码处理中用于预测、变换、量化等的基本(或初始)单元。在这种情况下,基本编码单元可以根据颜色格式(在该示例中为YCbCr)由一个亮度基本编码块(最大编码块或CTB)和两个基本色度编码块组成,并且可以根据颜色格式来确定每个块的尺寸。根据分区过程可以获得编码块(CB)。CB可以被理解为由于某些限制而不再进一步细分的单元,并且可以被设置为用于分区成子单元的起始单元。在本公开内容中,块概念性地包含诸如三角形、圆形等的各种形状,而不限于方形。

虽然在一个颜色分量的上下文中给出以下描述,但是其也以与根据颜色格式的比率成比例地可适用于具有一些修改的其他颜色分量(例如,在YCbCr 4:2:0的情况下,亮度分量与色度分量的宽-高长度比为2:1)。此外,尽管取决于其他颜色分量(例如,取决于Cb/Cr中的Y的块分区结果)的块分区是可行的,但是应当理解,每个颜色分量的块独立分区也是可行的。此外,尽管可以使用一种共同块分区配置(考虑到与长度比成比例),但是还需要考虑和理解根据颜色分量使用单独的块分区配置。

在块划分单元中,块可以被表示为M×N,并且每个块的最大值和最小值可以在该范围内获得。例如,如果块的最大值和最小值分别是256×256和4×4,则可以获得尺寸为2

例如,可以生成关于块的最大尺寸和最小尺寸的信息,并且在一些分区配置中可以生成关于块的最大尺寸和最小尺寸的信息。在前一种情况下,信息可以是关于可以在图像中产生的最大尺寸和最小尺寸的范围信息,而在后一种情况下,信息可以是关于可以根据一些分区配置产生的最大尺寸和最小尺寸的信息。分区配置可以由图像类型(I/P/B)、颜色分量(YCbCr等)、块类型(编码/预测/变换/量化)、分区类型(索引或类型)和分区方案(作为树方法的四叉树QT、二叉树BT和三叉树TT,以及作为类型方法的SI2、SI3和SI4)来限定。

此外,可以存在对可用于块的宽高比(块形状)的约束,并且在这点上,可以设置边界值。仅小于或等于/小于边界值(k)的块可以被支持,其中k可以根据宽高比A/B(A是宽度与高度之间的较长或相等的值,而B是另一个值)来限定。k可以是等于或大于1的实数,例如,1.5、2、3、4等。如在以上示例中,可以支持对图像中的一个块的形状的约束,或者可以根据分区配置支持一个或更多个约束。

总之,可以基于上述范围和约束以及稍后描述的分区配置来确定块分区是否被支持。例如,当从块(父块)分割的候选(子块)满足支持块条件时,可以支持分区,否则,可以不支持分区。

块划分单元可以关于图像编码设备和图像解码设备的每个部件来配置,并且在该处理中可以确定块的尺寸和形状。可以根据部件来配置不同的块。所述块可以包括用于预测单元的预测块、用于变换单元的变换块和用于量化单元的量化块。然而,本公开内容不限于此,并且可以针对其他部件另外定义块单元。虽然在本公开内容中在每个部件中输入和输出中的每一个的形状被描述为非方形,但是一些部件的输入和输出可以具有任何其他形状(例如,非方形的三角形)。

可以从较高的单元确定块划分单元中的初始(或起始)块的尺寸和形状。初始块可以被分割成更小的块。一旦根据块分区确定了最佳尺寸和形状,则可以将该块确定为较低单元的初始块。较高单元可以是编码块,并且较低单元可以是预测块或变换块,本公开内容不限于此。相反,各种修改例是可行的。一旦如以上示例中那样确定了较低单元的初始块,就可以执行分区过程以检测像较高单元那样的最佳尺寸和形状的块。

总之,块划分单元可以将基本编码块(或最大编码块)分割成至少一个编码块,并且编码块可以被分割成至少一个预测块/变换块/量化块。此外,预测块可以被分割成至少一个变换块/量化块,并且变换块可以被分割成至少一个量化块。一些块可以与其他块具有依赖关系(即,由较高单元和较低单元限定),或者可以与其他块具有独立关系。例如,预测块可以是变换块上方的较高单元,或者可以是独立于变换块的单元。可以根据块的类型建立各种关系。

根据编码设置,可以确定是否将较高单元和较低单元进行组合。单元之间的组合意味着较高单元的块经受较低单元(例如,在预测单元、变换单元、逆变换单元等中)的编码处理,而不被分割成较低单元。也就是说,这可能意味着在多个单元之间共享分区过程,并且在单元中的一个(例如,较高单元)中生成分区信息。

例如,(当编码块与预测块或变换块组合时),编码块可以经受预测、变换和逆变换。

例如,(当编码块与预测块组合时),编码块可以经受预测,并且在尺寸上等于或小于编码块的变换块可以经受变换和逆变换。

例如,(当编码块与变换块组合时),在尺寸上等于或小于编码块的预测块可以经受预测,并且编码块可以经受变换和逆变换。

例如,(当预测块与变换块组合时),在尺寸上等于或小于编码块的预测块可以经受预测、变换和逆变换。

例如,(当不存在块组合时),在尺寸上等于或小于编码块的预测块可以经受预测,并且在尺寸上等于或小于编码块的变换块可以经受变换和逆变换。

尽管在以上示例中已经描述了编码块、预测块和变换块的各种情况,但是本公开内容不限于此。

对于单元之间的组合,在图像中可以支持固定配置,或者考虑各种编码因素可以支持自适应配置。编码因素包括图像类型、颜色分量、编码模式(帧内/帧间)、分区配置、块尺寸/形状/位置、宽高比、预测相关信息(例如,帧内预测模式、帧间预测模式等)、变换相关信息(例如,变换方案选择信息等)、量化相关信息(例如,量化区域选择信息和量化变换系数编码信息)等。

当如上所述已经检测到最佳尺寸和形状的块时,可以生成该块的模式信息(例如,分区信息)。模式信息可以连同从块所属的部件生成的信息(例如,预测相关信息和变换相关信息)一起被包括在比特流中并且被发送至解码器,并且可以由解码器以相同单元级别解析以用于视频解码过程中。

现在,将描述分区方案。尽管为了便于描述,假设初始块被成形为方形,但是本公开内容不限于此,并且该描述可以以相同的方式或类似的方式应用于其中初始块为非方形的情况。

块划分单元可以支持各种类型的分区。例如,可以支持基于树的分区或基于索引的分区,并且还可以支持其他方法。在基于树的分区中,可以基于各种类型的信息(例如,指示是否执行分区的信息、树类型、分区方向等)来确定分区类型,而在基于索引的分区中,可以使用特定索引信息来确定分区类型。

图4是示出可以在本公开内容的块划分单元中获得的各种分区类型的示例图。

在该示例中,假设图4中所示出的分区类型是通过一个分区操作(或过程)获得的,其不应被理解为限制本公开内容。分区类型也可以在多个分区操作中获得。此外,图4中未示出的其他分区类型也可能是可用的。

(基于树的分区)

在本公开内容的基于树的分区中,可以支持QT、BT和TT。如果支持一种树方法,则这可以被称为单树分区,而如果支持两种或更多种树方法,则这可以被称为多树分区。

在QT中,块在水平方向和垂直方向中的每一个上均被分割成两个分区(即4个分区)(n),而在BT中,块在水平方向或垂直方向上被分割成两个分区(b至g)。在TT中,块在水平方向或垂直方向上被分割成三个分区(h至m)。

在QT中,可以通过将分区方向限制到水平方向和垂直方向中的一个而将块分割成四个分区(o和p)。此外,在BT中,可以支持仅将块分割成相等尺寸的分区(b和c)、仅将块分割成不同尺寸的分区(d至g)、或者这两种分区类型。此外,在TT中,可以支持将块分割成仅集中在特定方向(左->右或上->下方向上的1:1:2或2:1:1)上的分区(h、j、k和m)、将块分割成集中在中心(1:2:1)的分区(i和l)、或者这两种分区类型。此外,可以支持在水平方向和垂直方向中的每一个上将块分割成四个分区(即,总共16个分区)(q)。

在树方法之中,可以支持将块仅在水平方向上分割成z个分区(b、d、e、h、i、j、o)、将块仅在垂直方向上分割成z个分区(c、f、g、k、l、m、p)、或者支持两种分区类型。在本文中,z可以是等于或大于2的整数,例如,2、3或4。

在本公开内容中,假设分区类型n被支持为QT,分区类型b和c被支持为BT,并且分区类型i和l被支持为TT。

根据编码设置,可以支持树分区方案中的一个或更多个。例如,可以支持QT、QT/BT或QT/BT/TT。

在以上示例中,基本树分区方案是QT,并且根据是否支持其他树,BT和TT被包括作为附加分区方案。然而,可以进行各种修改。指示是否支持其他树的信息(bt_enabled_flag、tt_enabled_flag和bt_tt_enabled_flag,其中0指示不支持且1指示支持)可以根据编码设置而隐式地确定或者以例如序列、图片、子图片、切片、图块、区块等单位显式地确定。

分区信息可以包括指示是否执行分区的信息(tree_part_flag或qt_part_flag、bt_part_flag、tt_part_flag和bt_tt_part_flag,其可以具有值0或1,其中0指示不分区,并且1指示分区)。此外,根据分区方案(BT和TT),可以添加关于分区方向的信息(dir_part_flag,或bt_dir_part_flag、tt_dir_part_flag和bt_tt_dir_part_flag,其具有值0或1,其中0指示<宽度/水平的>并且1指示<高度/垂直的>)。这可以是在执行分区时生成的信息。

当支持多树分区时,可以配置各种分区信息片段。为了便于描述,以下描述给出如何在一个深度级别配置分区信息的示例(也就是说,但是可以通过设置一个或更多个支持的分区深度进行递归分区)。

在示例(1)中,检查指示是否执行分区的信息。如果没有执行分区,则分区结束。

如果执行分区,则检查关于分区类型的选择信息(例如,tree_idx。对于QT为0,对于BT为1,以及对于TT为2)。根据所选择的分区类型来附加地检查分区方向信息,并且过程进行到下一步骤(如果由于诸如当分区深度还没有达到最大值时产生的原因而进行附加的分区是可行的,则过程从起始再次开始,并且如果附加的分区是不可能的,则分区过程结束)。

在示例(2)中,检查指示是否以某个树方案(QT)执行分区的信息,并且过程进行到下一步骤。如果不是以树方案(QT)执行分区,则检查指示是否以另一树方案(BT)执行分区的信息。在这种情况下,如果不是以该树方案执行分区,则检查指示是否以第三树方案(TT)执行分区的信息。如果不是以第三树方案(TT)执行分区,则分区过程结束。

如果以树方案(QT)执行分区,则过程进行到下一步骤。此外,以第二树方案(BT)执行分区,检查分区方向信息,并且过程进行到下一步骤。如果以第三树方案(TT)执行分区,则检查分区方向信息,并且过程进行到下一步骤。

在示例(3)中,检查指示是否以树方案(QT)执行分区的信息。如果不以树方案(QT)执行分区,则检查指示是否以其他树方案(BT和TT)执行分区的信息。如果不执行分区,则分区过程结束。

如果以树方案(QT)执行分区,则过程进行到下一步骤。此外,以其他树方案(BT和TT)执行分区,检查分区方向信息,并且过程进行到下一步骤。

虽然在以上示例中,对树分区方案进行优先级(示例2和示例3)或者不对树分区方案进行优先级(示例1),但是各种修改例也是可用的。此外,在以上示例中,当前步骤中的分区与前一步骤的分区结果无关。然而,还可以将当前步骤中的分区配置成依赖于前一步骤的分区结果。

在示例1至示例3中,如果在先前步骤中执行了一些树分区方案(QT),并且因此该过程进行到当前步骤,则在当前步骤中也可以支持相同的树分区方案(QT)。

另一方面,如果在先前步骤中未执行某个树分区方案(QT)并且因此执行了另一树分区方案(BT或TT),并且然后该过程进行到当前步骤,则可以将其配置成在当前步骤和后续步骤中支持除某个树分区方案(QT)之外的其他树分区方案(BT和TT)。

在以上情况下,支持块分区的树配置可以是自适应的,并且因此上述分区信息也可以被不同地配置。(假设后面将描述的示例为示例3)。也就是说,如果在先前步骤中没有以某个树方案(QT)执行分区,则在当前步骤中可以不考虑树方案(QT)来执行分区过程。另外,可以去除与某个树方案相关的分区信息(例如,指示是否执行分区的信息、关于分区方向的信息等。在该示例中,指示是否执行分区的信息)。

以上示例涉及针对允许块分区的情况的自适应分区信息配置(例如,块尺寸在最大值与最小值之间的范围内,每个树方案的分区深度未达到最大深度(允许深度)等)。即使当块分区受到限制时(例如,块尺寸不存在于最大值与最小值之间的范围中,每个树方案的分区深度已经达到最大深度等),也可以自适应地配置分区信息。

如已经提到的,在本公开内容中,可以以递归方式执行基于树的分区。例如,如果具有分区深度k的编码块的分区标志被设置为0,则在具有分区深度k的编码块中执行编码块编码。如果具有分区深度k的编码块的分区标志被设置为1,则根据分区方案在具有分区深度k+1的N个子编码块中执行编码块编码(其中N是等于或大于2的整数,例如2、3和4)。

在以上过程中,子编码块可以被设置为编码块(k+1)并且被分区为子编码块(k+2)。该分层分区方案可以根据诸如分区范围和允许的分区深度的分区配置来确定。

在这种情况下,可以从一个或更多个扫描方法之中选择代表分区信息的比特流结构。例如,可以基于分区深度的顺序或者基于是否执行分区来配置分区信息的比特流。

例如,在基于分区深度顺序的情况下,基于初始块在当前深度级获得分区信息,并且然后在下一深度级获得分区信息。在基于是否执行分区的情况下,首先在从初始块分割的块中获得附加分区信息,并且可以考虑其他附加扫描方法。

不管树类型如何(或所有树),最大块尺寸和最小块尺寸可以具有共同的设置,或者针对每个树可以具有单独的设置,或者针对两个或更多个树可以具有共同的设置。在这种情况下,最大块的尺寸可以被设置为等于或小于最大编码块。如果根据预定的第一树的最大块的尺寸与最大块尺寸不相同,则使用预定的第二树方法隐式地执行分区,直到达到第一树的最大块尺寸为止。

另外,不管树类型如何,可以支持共同的分割深度,可以根据每个树支持单独的分割深度,或者可以支持两个或更多个树的共同的分割深度。替选地,针对一些树可以支持分割深度,而针对一些树可以不支持分割深度。

可以支持针对设置信息的显式语法元素,并且可以隐式地确定一些设置信息。

(基于索引的分区)

在本公开内容的基于索引的分区中,可以支持恒定分割索引(CSI)方案和可变分割索引(VSI)方案。

在CSI方案中,可以通过在预定方向上的分区来获得k个子块,并且k可以是等于或大于2的整数,例如2、3或4。具体地,可以基于k来确定子块的尺寸和形状,而与块的尺寸和形状无关。预定方向可以是水平方向、垂直方向和对角线方向(左上->右下方向或左下->右上方向)中的一个或者两个或更多个的组合。

在本公开内容的基于索引的CSI分区方案中,可以通过在水平方向或垂直方向上进行分区来获得z个候选。在这种情况下,z可以是等于或大于2的整数,例如2、3或4,并且子块在宽度和高度中的一者上可以是相等的,并且在宽度和高度中的另一者上可以是相等的或不同的。子块的宽度或高度长度比为A

此外,可以通过分别沿着水平方向和垂直方向分区为x个分区和y个分区来获得候选。x和y中的每一个可以是等于或大于1的整数,例如1、2、3或4。然而,其中x和y两者都是1的候选可能是受限的(因为a已经存在)。尽管图4示出了其中子块具有相同的宽度比或高度比的情况,但是也可以包括具有不同的宽度比或高度比的候选。

此外,候选可以在对角线方向——左上->右下和左下->右上——中的一者上被分割成w个分区。在本文中,w可以是等于或大于2的整数,例如2或3。

参照图4,根据每个子块的长度比,可以将分区类型分类为对称分区类型(b)和非对称分区类型(d和e)。此外,分区类型可以被分类为集中在特定方向上的分区类型(k和m)和中心分区类型(k)。分区类型可以由包括子块形状以及子块长度比率的各种编码因素来定义,并且所支持的分区类型可以根据编码设置隐式地或显式地确定。因此,可以基于在基于索引的分区方案中支持的分区类型来确定候选组。

在VSI方案中,在每个子块的宽度(w)或高度(h)固定的情况下,可以通过在预定方向上的分区来获得一个或更多个子块。在本文中,w和h中的每一个可以是等于或大于1的整数,例如,1、2、4或8。具体地,可以基于块的尺寸和形状以及w或h值来确定子块的数目。

在本公开内容的基于索引的VSI分区方案中,可以将候选分区成子块,每个子块在宽度和长度中的一者上是固定的。替选地,候选可以被分区成子块,每个子块在宽度和长度两者上都是固定的。由于子块的宽度或高度是固定的,因此可以允许在水平方向或垂直方向上的相等分区。然而,本公开内容不限于此。

在其中分区前的块的尺寸为M×N的情况下,如果每个子块的宽度(w)固定、每个子块的高度(h)固定、或者每个子块的宽度(w)和高度(h)两者都固定,则获得的子块的数目可以是(M*N)/w、(M*N)/h、或(M*N)/w/h。

根据编码设置,可以仅支持CSI方案和VSI方案中的一者或两者,并且可以隐式地或显式地确定关于所支持的方案的信息。

将在所支持的CSI方案的上下文中描述本公开内容。

候选组可以被配置成根据编码设置包括基于索引的分区方案中的两个或更多个候选。

例如,可以形成诸如{a,b,c}、{a,b,c,n}或{a至g和n}的候选组。候选组可以是包括基于一般统计特征预测为出现多次的块类型的示例,例如在水平方向或垂直方向上或者在水平方向和垂直方向中的每一个上被划分成两个分区的块。

替选地,可以配置诸如{a,b}、{a,o}或{a,b,o}的候选组,或者诸如{a,c}、{a,p}或{a,c,p}的候选组。候选组可以是包括以下候选的示例:每个候选分别在水平方向和垂直方向上被分区为两个分区和四个分区。这可以是以下示例:将预测为主要在特定方向上分区的块类型配置为候选组。

替选地,可以配置诸如{a,o,p}或{a,n,q}的候选组。这可以是以下示例:将候选组配置成包括被预测为要被分区成比分区之前的块小的许多分区的块类型。

替选地,可以配置诸如{a,r,s}的候选组,并且其可以是以下示例:确定可以通过其他方法(树方法)从分割之前的块获得的非方形形状的最佳分区结果,并且将非方形形状配置为候选组。

如从以上示例中注意到的,各种候选组配置可以是可用的,并且考虑到各种编码/解码因素,可以支持一个或更多个候选组配置。

一旦候选组被完全配置,各种分区信息配置就可以是可用的。

例如,关于包括未被分区的候选(a)和被分区的候选(b至s)的候选组,可以生成索引选择信息。

替选地,可以生成指示是否执行分区的信息(指示分区类型是否为a的信息)。如果执行分区(如果分区类型不是a),则可以生成关于包括被分区的候选(b至s)的候选组的索引选择信息。

可以以不同于上述的许多其他方式来配置分区信息。除了指示是否执行分区的信息之外,可以以诸如固定长度二值化、可变长度二值化等各种方式将二进制位分配给候选组中的每个候选的索引。如果候选的数目是2,则可以将1位分配给索引选择信息,并且如果候选的数目是3,则可以将一个或更多个位分配给索引选择信息。

与基于树的分区方案相比,被预测要出现多次的分区类型可以被包括在基于索引的分区方案中的候选组中。

由于用于代表索引信息的位的数目可以根据所支持的候选组的数目而增加,因此该方案可以适合于单层分区(例如,分区深度被限制为0),而不是基于树的分层分区(递归分区)。也就是说,可以支持单个分区操作,并且可以不进一步分割通过基于索引的分区获得的子块。

这可能意味着进一步分区成相同类型的较小块是不可能的(例如,通过基于索引的分区获得的编码块不能进一步分割成编码块),并且还意味着可能进一步分区成不同类型的块也是不可能的(例如,不可能将编码块分区成预测块以及编码块)。显然,本公开内容不限于以上示例,并且其他修改例也是可用的。

现在,将给出主要基于编码因素之中的块类型来确定块分区配置的描述。

首先,可以在分区过程中获得编码块。可以采用基于树的分区方案用于分区过程,并且可以根据树类型产生诸如图4的a(无分割)、n(QT)、b、c(BT)、i或l(TT)的分区类型。根据编码配置,树类型的各种组合例如QT/QT+BT/QT+BT+TT可能是可用的。

以下示例是将在以上过程中获得的编码块最终划分成预测块和变换块的处理。假设基于每个分区的尺寸执行预测、变换和逆变换。

在示例(1)中,可以通过将预测块的尺寸设置为等于编码块的尺寸来执行预测,并且可以通过将变换块的尺寸设置为等于编码块(或预测块)的尺寸来执行变换和逆变换。

在示例(2)中,可以通过将预测块的尺寸设置为等于编码块的尺寸来执行预测。变换块可以通过分区编码块(或预测块)来获得,并且可以基于所获得的变换块的尺寸来执行变换和逆变换。

此处,可以采用基于树的分区方案用于分区过程,并且可以根据树类型得到诸如图4的a(无分割)、n(QT)、b、c(BT)、i或l(TT)的分区类型。根据编码配置,树类型的各种组合例如QT/QT+BT/QT+BT+TT可能是可用的。

此处,分区过程可以是基于索引的分区方案。可以根据索引类型获得分区类型,例如,图4的a(无分割)、b、c或d。根据编码配置,可以配置诸如{a,b,c}和{a,b,c,d}的各种候选组。

在示例(3)中,可以通过分区编码块来获得预测块,并且该预测块基于所获得的预测块的尺寸经受预测。对于变换块,其尺寸被设置为编码块的尺寸,并且可以对变换块执行变换和逆变换。在该示例中,预测块与变换块可以呈独立关系。

基于索引的分区方案可以用于分区过程,并且可以根据索引类型获得分区类型,例如,图4的a(无分割)、b至g、n、r或s。可以根据编码配置来配置各种候选组,例如,{a,b,c,n}、{a至g,n}和{a,r,s}。

在示例(4)中,可以通过对编码块进行分区来获得预测块,并且该预测块基于所获得的预测块的尺寸经受预测。对于变换块,其尺寸被设置为预测块的尺寸,并且可以对变换块执行变换和逆变换。在该示例中,变换块可以具有等于所获得的预测块的尺寸的尺寸,或者所获得的预测块可以具有等于变换块的尺寸的尺寸(将变换块的尺寸设置为预测块的尺寸)。

基于树的分区方案可以用于分区过程,并且可以根据树类型来生成分区类型,例如,图4的a(无分割)、b、c(BT)或n(QT)。根据编码配置,树类型的各种组合例如QT/BT/QT+BT可能是可用的。

此处,基于索引的分区方案可以用于分区过程,并且可以根据索引类型得到分区类型例如图4的a(无分割)、b、c、n、o或p。可以根据编码配置来配置各种候选组,例如{a,b}、{a,c}、{a,n}、{a,o}、{a,p}、{a,b,c}、{a,o,p}、{a,b,c,n}和{a,b,c,n,p}。此外,可以在单独的VSI方案或者组合CSI方案和VSI方案作为基于索引的分区方案中配置候选组。

在示例(5)中,可以通过对编码块进行分区来获得预测块,并且该预测块基于所获得的预测块的尺寸经受预测。也可以通过对编码块进行分区来获得变换块并且该变换块基于所获得的变换块的尺寸经受变换和逆变换。在该示例中,预测块和变换块中的每一个可以由对编码块进行分区而得到。

此处,可以将基于树的分区方案和基于索引的分区方案用于分区过程,并且可以以与示例4相同的方式或类似的方式来配置候选组。

在这种情况下,以上示例是根据是否共享对每个块类型进行分区的过程而可能发生的情况,这不应被理解为限制本公开内容。各种修改例也可以是可用的。此外,可以考虑各种编码因素以及块类型来确定块分区配置。

编码因素可以包括图像类型(I/P/B)、颜色分量(YCbCr)、块尺寸/形状/位置、块宽高比、块类型(编码块、预测块、变换块或量化块)、分区状态、编码模式(帧内/帧间)、与预测有关的信息(帧内预测模式或帧间预测模式)、与变换有关的信息(变换方案选择信息)、与量化有关的信息(量化区域选择信息和量化变换系数编码信息)。

在根据本发明的实施方式的图像编码方法中,帧间预测可以如下配置。预测单元的帧间预测可以包括参考图片构造步骤、运动估计步骤、运动补偿步骤、运动信息确定步骤和运动信息编码步骤。另外,视频编码设备可以包括实现参考图片构造步骤、运动估计步骤、运动补偿步骤、运动信息确定步骤和运动信息编码步骤的参考图片构造单元、运动估计单元、运动补偿单元、运动信息确定单元和运动信息编码单元。可以省略上述过程中的一些,或者可以添加其他过程,并且可以以不同于上述顺序的顺序进行改变。

在根据本发明的实施方式的视频解码方法中,帧间预测可以如下配置。预测单元的帧间预测可以包括运动信息解码步骤、参考图片构造步骤和运动补偿步骤。此外,图像解码设备可以包括实现运动信息解码步骤、参考图片构造步骤和运动补偿步骤的运动信息解码单元、参考图片构造单元和运动补偿单元。可以省略上述过程中的一些,或者可以添加其他过程,并且可以以不同于上述顺序的顺序进行改变。

由于图像解码设备的参考图片构造单元和运动补偿单元执行与图像编码设备的相应配置相同的作用,因此省略了详细描述,并且运动信息解码单元可以使用在运动信息编码单元中使用的方法来反向执行。此处,由运动补偿单元生成的预测块可以被发送至加法单元。

图5是示出根据本发明通过帧间预测获得预测块的各种情况的示例图。

参考图5,在单向预测中,可以从先前编码的参考图片(T-1,T-2)获得预测块A(前向预测),或者可以从稍后编码的参考图片(T+1,T+2)获得预测块B(后向预测)。在双向预测中,预测块(C和D)可以从多个先前编码的参考图片(T-2至T+2)中生成。通常,P图片类型可以支持单向预测,并且B图片类型可以支持双向预测。

如在以上示例中,可以从存储器获得针对当前图片的编码而参考的图片,并且可以通过基于当前图片(T)以时间或显示顺序包括当前图片之前的参考图片和当前图片之后的参考图片来构造参考图片列表。

可以对当前图像以及基于当前图像的先前或后续图像执行帧间预测(E)。对当前图像执行帧间预测可以被称为非方向性预测。这可以由I图像类型或P/B图像类型支持,并且所支持的图像类型可以根据编码设置来确定。在当前图像中执行帧间预测是使用空间相关性来生成预测块。出于使用时间相关性的目的,在其他图像中执行帧间预测是不同的,但是预测方法(例如,参考图像、运动矢量等)可能是相同的。

此处,假设P图片和B图片是能够执行帧间预测的图像类型,但是也可以适用于添加或替代的各种图像类型。例如,特定图像类型可能不支持帧内预测,而是可能仅支持帧间预测,或者可能仅支持预定方向(后向方向)上的帧间预测,或者可能仅支持预定方向上的帧间预测。

参考图片构造单元可以通过参考图片列表来构造和管理用于编码当前图片的参考图片。可以根据编码设置(例如,图像类型、预测方向等)来构造至少一个参考图片列表,并且可以从包括在参考图片列表中的参考图片生成预测块。

在单向预测的情况下,可以对包括在参考图片列表0(L0)或参考图片列表1(L1)中的至少一个参考图片执行帧间预测。另外,在双向预测的情况下,可以对包括在通过组合L0和L1而生成的组合列表(LC)中的至少一个参考图片执行帧间预测。

例如,单向预测可以被分类为使用前向参考图片列表(L0)的前向预测(Pred_L0)和使用后向参考图片列表(L1)的后向预测(Pred_L1)。双向预测(Pred_BI)可以使用前向参考图片列表(L0)和后向参考图片列表(L1)两者。

替选地,通过将前向参考图片列表(L0)复制到后向参考图片列表(L1)来执行两个或更多个前向预测可以被包括在双向预测中,并且通过将后向参考图片列表(L0)复制到前向参考图片列表(L1)的两个或更多个后向预测也可以被包括在双向预测中。

预测方向可以由指示相应方向的标志信息来指示(例如,inter_pred_idc,假设该值可由predFlagL0、predFlagL1、predFlagBI调整)。predFlagL0指示是否执行前向预测,并且predFlagL1指示是否执行后向预测。双向预测可以通过指示预测是通过predFlagBI还是通过同时激活predFlagL0和predFlagL1(例如,当每个标志为1时)进行来指示。

在本发明中,主要描述了使用全向参考图片列表的全向预测的情况,但是相同或修改的应用可以应用于其他情况。

通常,可以使用以下方法:针对要由编码器编码的图片确定最佳参考图片,并且将关于参考图片的信息显式地发送至解码器。为此,参考图片构造单元可以管理针对当前图片的帧间预测而参考的图片列表,并且可以考虑有限的存储器大小来设置用于参考图片管理的规则。

发送的信息可以被定义为参考图片集即RPS,并且在RPS中选择的图片被分类为参考图片并且被存储在存储器(或DPB)中,并且RPS中未选择的图片被分类为非参考图片。一小时后可能会从存储器中删除。预定数目的图片(例如,14、15、16个图片或更多个图片)可以被存储在存储器中,并且存储器的大小可以根据图像的级别和分辨率来设置。

图6是根据本发明的实施方式构造参考图片列表的示例图。

参照图6,通常,在当前图片之前存在的参考图片(T-1,T-2)可以被分配给L0并被管理,并且在当前图片之后存在的参考图片(T+1,T+2)可以被分配给L1并被管理。当构造L0时,如果L0的参考图片的数目不足,则可以分配L1的参考图片。类似地,当构造L1时,当L1的参考图片的数目不足时,可以分配L0的参考图片。

此外,当前图片可以包括在至少一个参考图片列表中。例如,L0或L1可以包括当前图片,并且L0可以通过将时间顺序为T的参考图片(或当前图片)添加至当前图片之前的参考图片来构造,而L1可以通过将时间顺序为T的参考图片添加至当前图片之后的参考图片来构造。

参考图片列表的构造可以根据编码设置来确定。

当前图片可以不包括在参考图片列表中,但是可以通过与参考图片列表分离的单独的存储器来管理,或者当前图片可以包括在至少一个参考图片列表中并被管理。

例如,可以通过对参考图片列表是否包括当前图片进行指示的信号(curr_pic_ref_enabled_flag)来确定。此处,信号可以是隐式地确定的信息或显式地生成的信息。

具体地,当信号被去激活(例如,curr_pic_ref_enabled_flag=0)时,当前图片可以不被包括在任何参考图片列表中作为参考图片,并且当信号被激活(例如,curr_pic_ref_enabled_flag=1)时,是否将当前图片包括在预定参考图片列表中可以被隐式地确定(例如,仅被添加至L0,仅被添加至L1,以及可以同时被添加至L0和L1)或者可以显式地生成并且确定相关的信号(例如,curr_pic_ref_from_l0_flag,curr_pic_ref_from_l1_flag)。该信号可以以诸如序列、图片、子图片、切片、图块和区块的单位来支持。

此处,当前图片可以被定位在如图6所示的参考图片列表的首先或最后顺序,并且列表中的布置顺序可以根据编码设置(例如,图像类型信息)来确定。例如,I类型可以被首先定位,并且P/B类型可以被最后定位,但是本发明不限于此,并且修改的其他示例也是可行的。

替选地,可以根据指示当前图片中是否支持块匹配(或模板匹配)的信号(ibc_enabled_flag)来支持单独的参考图片存储器。此处,信号可以是隐式地确定的信息或显式地生成的信息。

详细地,当信号被去激活(例如,ibc_enabled_flag=0)时,这可能意味着在当前图片中不支持块匹配,并且当信号被激活(例如,ibc_enabled_flag=1)时,在当前图片中可以支持块匹配,并且可以支持用于此的参考图片存储器。在该示例中,假设提供了附加的存储器,但是也可以设置为直接从当前图片所支持的现有存储器支持块匹配,而不用提供附加的存储器。

参考图片构造单元可以包括参考图片内插单元,并且可以根据帧间预测的内插精度来确定是否对分数单位的像素执行内插处理。例如,当内插精度是整数单位时,可以省略参考图片内插处理,并且当内插精度是分数单位时,可以执行参考图片内插处理。

在参考图片内插处理中使用的内插滤波器可以根据编码设置隐式地确定,或者可以根据多个内插滤波器之中显式地确定。根据编码设置,多个内插滤波器的配置可以支持固定候选或自适应候选,并且候选的数目可以是2、3、4或更多的整数。显式地确定的单位可以从序列、图片、子图片、切片、图块、区块或块中确定。

此处,可以根据图像类型、颜色分量、目标块的状态信息(例如,块尺寸、形状、水平/垂直长度比等)、帧间预测设置(例如,运动信息编码模式、运动模型选择信息、运动矢量精度选择信息、参考图片、参考方向等)来确定编码设置。运动矢量精度可以意味着运动矢量的精度(即,pmv+mvd),但是可以用运动矢量预测值的精度(pmv)或运动矢量差(mvd)来代替。

此处,内插滤波器可以具有k抽头的滤波器长度,并且k可以是2、3、4、5、6、7、8或更多的整数。滤波器系数可以从具有各种系数特性的等式中得出,例如维纳滤波器和卡尔曼滤波器。用于内插的滤波器信息(例如,滤波器系数、抽头信息等)可以隐式地确定或得出,或者可以显式地生成相关信息。在这种情况下,滤波器系数可以被配置为包括0。

内插滤波器可以被应用于预定像素单位,并且预定像素单位可以被限制为整数或分数单位,或者可以被应用于整数和分数单位。

例如,内插滤波器可以被应用于在水平方向或垂直方向上与内插目标像素(即,分数单位像素)相邻的k个整数单位像素。

替选地,内插滤波器可以被应用于在水平方向或垂直方向上与内插目标像素相邻的p个整数单位像素和q个分数单位像素(p+q=k)。在这种情况下,被称为用于内插的分数单位的精度(例如,以1/4为单位)可以用与内插目标像素相同或比内插目标像素更低的精度(例如,2/4->1/2)来表示。

当内插目标像素的x分量和y分量中仅一种位于分数单位中时,可以基于与分数分量方向相邻的k个像素来执行内插(例如,x轴是水平的,并且y轴是垂直的)。当内插目标像素的x分量和y分量两者都位于分数单位中时,可以基于在水平方向或垂直方向上相邻的x个像素来执行第一内插,并且基于在另一方向上相邻的y个像素来执行内插。在这种情况下,将描述其中x和y与k相同的情况,但是该情况不限于此,并且还可能出现其中x和y不同的情况。

内插目标像素可以通过内插精度(1/m)获得,并且m可以是1、2、4、8、16、32或更高的整数。内插精度可以根据编码设置隐式地确定,或者相关信息可以显式地生成。编码设置可以基于图像类型、颜色分量、参考图片、运动信息编码模式、运动模型选择信息等来限定。显式地确定的单位可以从序列、子图片、切片、图块或区块中确定。

通过以上处理,可以获得目标块的内插滤波器设置,并且可以基于此执行参考图片内插。另外,可以获得基于内插滤波器设置的详细的内插滤波器设置,并且可以基于此执行参考图片内插。也就是说,假设所获得的目标块的内插滤波器设置可以通过获得一个固定候选来获得,但是也可以获得使用多个候选的可能性。在稍后描述的示例中,假设内插精度是1/16(例如,15个像素要被内插)。

作为设置详细内插滤波器的示例,多个候选中的一个可以自适应地用于预定位置处的第一像素单位,并且一个预定内插滤波器可以用于预定位置处的第二像素单位。

第一像素单位可以在由内插精度支持的所有分数单位(在该示例中为1/16至15/16)的像素之中确定,并且包括在第一像素单位中的像素的数目可以是a,并且a可以在0、1、2、……、(m-1)之间确定。

第二像素单位可以包括从全部分数单位的像素中排除第一像素单位的像素,并且包括在第二像素单位中的像素的数目可以通过从要内插的像素的总数中减去第一像素单位中的像素的数目来得出。在该示例中,将描述将像素单位划分成两个的示例,但是本发明不限于此,并且可以划分成三个或更多个。

例如,第一像素单位可以是以多单位例如1/2、1/4、1/8表示的单位。例如,在1/2单位的情况下,它可以是位于8/16处的像素,并且在1/4单位的情况下,它可以是位于{4/16,8/16,12/16}处的像素,并且在1/8单位的情况下,它可以是位于{2/16,4/16,6/16,8/16,10/16,12/16,14/16}处的像素。

详细的内插滤波器设置可以根据编码设置来确定,并且编码设置可以由图像类型、颜色分量、目标块的状态信息、帧间预测设置等来限定。下面将查看根据各种编码元素设置详细的内插滤波器的示例。为了便于说明,假设a为0以及c或更大(c为大于或等于1的整数)。

例如,在颜色分量(亮度、色度)的情况下,a可以是(1,0)、(0,1)、(1,1)。替选地,在运动信息编码模式(合并模式、竞争模式)的情况下,a可以是(1,0)、(0,1)、(1,1)、(1,3)。或者,在运动模型选择信息(平移运动、非平移运动A、非平移运动B)的情况下,a可以是(0,1,1)、(1,0,0)、(1,1,1)、(1,3,7)。替选地,在运动矢量精度(1/2,1/4,1/8)的情况下,a可以是(0,0,1)、(0,1,0)、(1,0,0)、(0,1,1)、(1,0,1)、(1,1,0)、(1,1,1)。替选地,在参考图片(当前图片、其他图片)的情况下,a可以是(0,1)、(1,0)、(1,1)。

如上所述,可以通过选择多个内插精度之一来执行内插处理,并且当支持根据自适应内插精度的内插处理(例如,adaptive_ref_resolution_enabled_flag。如果为0,则使用预定的内插精度,并且如果为1,则使用多个内插精度之一)时,可以生成精度选择信息(例如,ref_resolution_idx)。

可以根据内插精度来执行运动估计和补偿处理,并且还可以基于内插精度来确定用于运动矢量的表示单位和存储单位。

例如,当内插精度为1/2单位时,运动估计和补偿处理可以由1/2单位来执行,并且运动矢量可以由1/2单位来表示并且可以在编码处理中使用。此外,运动矢量可以以1/2为单位存储,并且可以在另一块的运动信息的编码处理中被参考。

替选地,当内插精度为1/8时,运动估计和补偿处理可以以1/8单位执行,并且运动矢量可以以1/8单位表示,并且可以在编码处理中使用并且以1/8单位存储。

另外,可以以不同于内插精度的单位例如整数、1/2单位和1/4单位来执行、表示和存储运动估计和补偿处理以及运动矢量,这些单位可以根据帧间预测方法/设置(例如,运动估计/补偿方法、运动模型选择信息、运动信息编码模式等)自适应地确定。

作为示例,假设内插精度为1/8,在平移运动模型的情况下,运动估计和补偿可以以1/4单位来执行,并且运动矢量可以以1/4单位来表示(在该示例中,假设编码处理中的单位),并且可以以1/8单位来存储。在非平移运动模型的情况下,运动估计和补偿处理可以以1/8单位来执行,并且运动矢量可以以1/4单位来表示,并且可以以1/8单位来存储。

例如,假设内插精度为1/8单位,在块匹配的情况下,运动估计和补偿可以以1/4单位来执行,并且运动矢量可以以1/4单位来表示,并且可以以1/8单位来存储。在模板匹配的情况下,运动估计和补偿处理可以以1/8单位来执行,并且运动矢量可以以1/8单位来表示,并且可以以1/8单位来存储。

例如,假设内插精度为1/16,在竞争模式的情况下,运动估计和补偿处理可以以1/4单位来执行,并且运动矢量可以以1/4单位来表示并且可以以1/16单位来存储。在合并模式的情况下,运动估计和补偿处理可以以1/8为单位来执行,并且运动矢量可以以1/4为单位来表示,并且可以以1/16为单位来存储。在跳过模式的情况下,运动估计和补偿可以以1/16为单位来执行,并且运动矢量可以以1/4为单位来表示,并且可以以1/16为单位来存储。

总之,可以基于帧间预测方法或设置以及内插精度来自适应地确定运动估计、运动补偿、运动矢量表示和存储的单位。详细地,运动估计、运动补偿和运动矢量表示的单位可以根据帧间预测方法或设置自适应地确定,并且运动矢量的存储单位通常可以根据内插精度来确定,但是不限于此,并且各种修改的示例是可行的。另外,在以上示例中,已经例示了根据一个类别(例如,运动模型选择信息、运动估计/补偿方法等)的示例,但是当两个或更多个类别被混合时也可以确定设置。

另外,如上所述,内插精度信息可以具有预定值或者可以被选择为多个精度之一,并且根据基于帧间预测方法或设置支持的运动估计和补偿设置来确定参考图片内插精度。例如,当平移运动模型支持高达1/8单位,并且非平移运动模型支持高达1/16单位时,可以根据具有最高精度的非平移运动模型的精度单位来执行内插处理。

也就是说,可以根据用于支持的精度信息的设置——例如平移运动模型、非平移运动模型、竞争模式、合并模式和跳过模式——来执行参考图片内插。在这种情况下,精度信息可以被隐式或显式地确定,并且当相关信息被显式地生成时,它可以被包括在诸如序列、图片、子图片、切片、图块和区块的单元中。

运动估计单元意指估计(或搜索)目标块是否与预定参考图片的预定块具有高相关性的过程。可以从块划分单元获得目标块——对该目标块执行预测——的尺寸和形状(M×N)。作为示例,目标块可以在4×4至128×128的范围内确定。通常,帧间预测可以以预测块为单位来执行,但是可以根据块划分单元的设置以诸如编码块或变换块为单位来执行。可以在参考区域的可估计范围内执行估计,并且可以使用至少一种运动估计方法。在运动估计方法中,可以限定针对每个像素的估计顺序和条件。

可以基于运动估计方法来执行运动估计。例如,在块匹配的情况下,为运动估计处理而要比较的区域可以是目标块,并且在模板匹配的情况下,可以是围绕目标块设置的预定区域(模板)。在前一种情况下,可以在目标块和参考区域的可估计范围内找到具有最高相关性的块,并且在后一种情况下,可以在根据编码设置和参考区域限定的模板的可估计范围内找到具有最高相关性的区域。

可以基于运动模型来执行运动估计。可以使用除了仅考虑平行运动的平移运动模型之外的附加运动模型来执行运动估计和补偿。例如,可以使用考虑诸如旋转、透视、放大/缩小以及平行运动的运动的运动模型来执行运动估计和补偿。这可以被支持以通过生成预测块来提高编码性能,该预测块通过反映根据图像的区域特征发生的以上各种类型的运动来生成。

图7是示出根据本发明的实施方式的非平移运动模型的概念图。

参照图7,作为仿射模型的示例,示出了基于预定位置处的运动矢量V

如在以上示例中,基于预定义的运动模型来执行帧间预测,但是也可以支持基于附加运动模型的帧间预测。此处,假设预定义运动模型是平移运动模型,并且附加运动模型是仿射模型,但是本发明不限于此,并且各种修改是可行的。

在平移运动模型的情况下,运动信息(假设单向预测)可以基于一个运动矢量来表示,并且用于指示运动信息的控制点(参考点)被假设为左上坐标,但是不限于此。

在非平移运动模型的情况下,它可以被表示为各种配置的运动信息。在该示例中,假设该配置被表示为一个运动矢量中的附加信息(相对于左上角坐标)。通过稍后要描述的示例提到的一些运动估计和补偿可以不以块为单位来执行,但是可以以预定子块为单位来执行。在这种情况下,可以基于每个运动模型来确定预定子块的尺寸和位置。

图8是示出根据本发明的实施方式的以子块为单位的运动估计的示例图。详细地,它示出了根据仿射模型(两个运动矢量)以子块为单位的运动估计。

在平移运动模型的情况下,目标块中包括的像素单位的运动矢量可以是相同的。也就是说,可以将运动矢量共同地应用于像素单位,并且可以使用一个运动矢量(V

在非平移运动模型(仿射模型)的情况下,目标块中包括的像素单位的运动矢量可能不是相同的,并且可能需要针对每个像素的单独运动矢量。在这种情况下,可以基于目标块的预定控制点的位置处的运动矢量(V

例如,目标块内的子块或像素单位的运动矢量(例如,(V

此处,子块(M×N)的尺寸可以根据编码设置来确定,并且可以具有固定尺寸或者可以被设置为自适应尺寸。此处,M和N可以是2、4、8、16或更多的整数,并且M和N可以是相同的或者可以不是相同的。子块的尺寸可以以诸如序列、图片、子图片、切片、图块和区块的单位来显式地生成。替选地,它可以由编码器与解码器之间的共同承诺隐式地确定,或者可以由编码设置来确定。

此处,编码设置可以由状态信息、图像类型、颜色分量、目标块的帧间预测设置信息(运动信息编码模式、参考图片信息、内插精度、运动模型选择信息等)中的一个或更多个元素来限定。

在以上示例中,已经描述了根据预定的非平移运动模型得出子块的尺寸并且基于此执行运动估计和补偿的过程。如在以上示例中,可以根据运动模型以子块或像素为单位执行运动估计和补偿,并且将省略其详细描述。

以下示出了根据运动模型构造的运动信息的各种示例。

例如,在表示旋转运动的运动模型的情况下,块的平移运动可以用一个运动矢量来表示,并且旋转运动可以用旋转角度信息来表示。旋转角度信息可以相对于(0度)预定位置(例如,左上坐标)测量,并且可以被表示为在预定的角度范围(例如,在-90度与90度之间)内具有预定间隔(例如,具有0度、11.25度、22.25度等的角度差值)的k个候选(k是1、2、3或更多的整数)。

此处,旋转角度信息可以在运动信息编码处理期间按原样进行编码,或者可以基于相邻块的运动信息(例如,运动矢量、旋转角度信息)进行编码(例如,预测+差信息)。

替选地,块的平移运动可以用一个运动矢量来表示,并且块的旋转运动可以用一个或更多个附加运动矢量来表示。在这种情况下,附加运动矢量的数目可以是1、2或更多的整数,并且附加运动矢量的控制点可以从右上坐标、左下坐标和右下坐标之中确定,或者块内的其他坐标可以被设置为控制点。

此处,附加运动矢量可以在运动信息编码处理期间按原样进行编码,或者基于相邻块的运动信息(例如,根据平移运动模型或非平移运动模型的运动矢量)进行编码(例如,预测+差信息),或者可以基于代表旋转运动的块中的另一运动矢量进行编码(例如,预测+差信息)。

例如,在表示诸如放大/缩小情形的尺寸调整或缩放运动的运动模型的情况下,块的平移运动可以用单个运动矢量来表示,并且缩放运动可以用缩放信息来表示。缩放信息可以被表示为基于预定位置(例如,左上坐标)指示水平方向或垂直方向上的扩展或减小的缩放信息。

此处,缩放可以被应用于水平方向或垂直方向中的至少一个。另外,可以支持在水平方向或垂直方向上应用的单独缩放信息,或者可以支持在共同方向上应用的缩放信息。缩放块的宽度和高度可以被添加至预定位置(左上坐标),以确定用于运动估计和补偿的位置。

此处,缩放信息可以在运动信息编码处理期间按原样进行编码,或者可以基于相邻块的运动信息(例如,运动矢量、缩放信息)进行编码(例如,预测+差信息)。

替选地,块的平移运动可以用一个运动矢量来表示,并且块的尺寸调整可以用一个或更多个附加运动矢量来表示。在这种情况下,附加运动矢量的数目可以是1、2或更多的整数,并且附加运动矢量的控制点可以从右上坐标、左下坐标和右下坐标之中确定,或者块内的其他坐标可以被设置为控制点。

此处,附加运动矢量可以在运动信息编码处理期间按原样进行编码,或者可以基于相邻块的运动信息(例如,根据平移运动模型或非平移运动模型的运动矢量)进行编码(例如,预测+差信息),或者可以基于块内的预定坐标(例如,右下坐标)进行编码(例如,预测+差)。

在以上示例中,用于代表一些运动的表示的情况已被描述,并且可以被表示为用于表示多个运动的运动信息。

例如,在表示各种或复杂运动的运动模型的情况下,块的平移运动可以用一个运动矢量来表示,旋转运动可以用旋转角度信息来表示,并且尺寸调整可以用缩放信息来表示。由于每个运动的描述可以通过上述示例得出,因此将省略详细描述。

替选地,块的平移运动可以用一个运动矢量来表示,并且块的其他运动可以用一个或更多个附加运动矢量来表示。在这种情况下,附加运动矢量的数目可以是1、2或更多的整数,并且附加运动矢量的控制点可以从右上坐标、左下坐标和右下坐标之中确定,或者块内的其他坐标可以被设置为控制点。

此处,附加运动矢量可以在运动信息编码处理期间按原样进行编码,或者可以基于相邻块的运动信息(例如,根据平移运动模型或非平移模型的运动矢量)进行编码(例如,预测+差信息),或者可以基于代表各种运动的块内的其他运动矢量进行编码(例如,预测+差信息)。

以上描述可以是关于仿射模型的,并且将基于存在一个或两个附加运动矢量的情况来描述。总之,假设根据运动模型所使用的运动矢量的数目可以是1、2或3,并且可以根据用于表示运动信息的运动矢量的数目被视为单独的运动模型。另外,当存在一个运动矢量时,假设它是预定义的运动模型。

可以支持用于帧间预测的多个运动模型,并且可以由指示对附加运动模型的支持的信号(例如,adaptive_motion_mode_enabled_flag)来确定。此处,如果信号为0,则支持预定义的运动模型,并且如果信号为1,则可以支持多个运动模型。该信号可以以诸如序列、图片、子图片、切片、图块、区块、块等为单位生成,但是如果不可能单独检查,则信号的值可以根据预定义的设置来分配。替选地,是否隐式地支持可以基于编码设置来确定。替选地,可以根据编码设置来确定隐式情况或显式情况。此处,编码设置可以由图像类型、图像种类(例如,如果为0则为正常图像,如果为1则为360度图像)或颜色分量中的一个或更多个元素来限定。

是否支持多个运动模型可以通过以上过程来确定。以下假设存在支持两个或更多个附加运动模型,并且假设以诸如序列、图片、子图片、切片、图块、区块等为单位支持多个运动模型,但是可以排除配置中的一些。在稍后描述的示例中,假设可以支持运动模型A、B和C,A是基本支持的运动模型,并且B和C是附加支持的运动模型。

可以在单元中生成关于支持的运动模型的配置信息。也就是说,诸如{A,B}、{A,C}、{A,B,C}的支持的运动模型配置是可行的。

例如,可以将索引(0至2)分配给以上配置的候选并且进行选择。如果选择了索引2,则可以确定支持{A,C}的运动模型配置,并且如果选择了索引3,则可以确定支持{A,B,C}的运动模型配置。

替选地,指示是否支持预定运动模型的信息可以单独被支持。也就是说,可以生成指示是否支持B的标志或者指示是否支持C的标志。如果两个标志都为0,则可以支持仅A。该示例可以是其中不生成和处理指示是否支持多个运动模型的信息的示例。

当支持的运动模型的候选组如以上示例中那样被配置时,候选组之一的运动模型可以以块为单位显式地确定和使用,或者可以隐式地使用。

通常,运动估计单元可以是编码设备中存在的部件,但是可以是根据预测方法(例如,模板匹配等)可以包括在解码设备中的部件。例如,在模板匹配的情况下,解码器可以通过经由与目标块相邻的模板执行运动估计来获得目标块的运动信息。在这种情况下,运动估计相关信息(例如,运动估计范围、运动估计方法<扫描顺序>等)可以被隐式地确定或显式地生成为包括在诸如序列、图片、子图片、切片、图块、区块等单位中。

运动补偿单元指的是如下处理:获得通过运动估计处理确定的预定参考图片的一些块的数据作为目标块的预测块。详细地,目标块的预测块可以基于通过运动估计处理获得的运动信息(例如,参考图片信息、运动矢量信息等)从至少一个参考图片的至少一个区域(或块)生成。

运动补偿可以基于如下的运动补偿方法来执行。

在块匹配的情况下,目标块的预测块可以用与相对于(P

在模板匹配的情况下,目标块的预测块可以用与相对于(P

另外,可以基于如下的运动模型来执行运动补偿。

在平移运动模型的情况下,目标块的预测块可以用与相对于(P

在非平移运动模型的情况下,子块的预测块可以用与相对于(P

运动信息确定单元可以执行用于选择目标块的最佳运动信息的处理。通常,最佳运动信息可以根据使用块的失真(例如,目标块和重构块的失真。SAD(绝对差之和)、SSD(平方差之和)等)的编码成本和速率失真技术来确定,该速率失真技术考虑根据相应的运动信息生成的位量(bit amount)来确定。基于通过以上处理确定的运动信息生成的预测块可以被发送至减法单元和加法单元。另外,它可以是根据一些预测方法(例如,模板匹配等)可以被包括在解码设备中的配置,并且在这种情况下,它可以基于块的失真来确定。

在运动信息确定单元中,可以考虑与帧间预测相关的设置信息,例如运动补偿方法和运动模型。例如,当支持多个运动补偿方法时,运动补偿方法选择信息、对应的运动矢量、参考图片信息等可以是最佳运动信息。替选地,当支持多个运动模型时,运动模型选择信息、与其对应的运动矢量和参考图片信息可以是最佳运动信息。

运动信息编码单元可以对通过运动信息确定处理获得的目标块的运动信息进行编码。在这种情况下,运动信息可以由关于针对目标块的预测而参考的区域和图像的信息组成。详细地,它可以由关于参考图像的信息(例如,参考图像信息)和关于参考区域的信息(例如,运动矢量信息)组成。

另外,与帧间预测相关的设置信息(或选择信息,例如运动估计/补偿方法、运动模型的选择信息等)可以包括在目标块的运动信息中。关于参考图像和参考区域的信息(例如,运动矢量的数目等)可以基于与帧间预测相关的设置来配置。

可以通过将参考图像和关于参考区域的信息配置为一个组合来编码运动信息,并且可以将参考图像和关于参考区域的信息的组合配置为运动信息编码模式。

此处,关于参考图像和参考区域的信息可以基于相邻块或预定信息(例如,在当前图片之前或之后编码的图像、零运动矢量等)来获得。

相邻块可以被分类为属于与目标块相同的空间且最接近目标块的块、属于相同空间且远邻目标块的块、以及属于与目标块不相同的空间的块,并且可以基于属于类别中至少之一的相邻块(候选块)来获得关于参考图像和参考区域的信息。

例如,可以基于候选块的运动信息或参考图片信息来编码目标块的运动信息,并且可以基于从候选块的运动信息或参考图片信息(或信息中值、变换处理等)得出的信息来编码目标块的运动信息。也就是说,可以从候选块预测目标块的运动信息,并且可以对关于运动信息的信息进行编码。

在本发明中,可以基于一个或更多个运动信息编码模式来对目标块的运动信息进行编码。此处,运动信息编码模式可以以各种方式进行限定,并且可以包括跳过模式、合并模式和竞争模式中的一个或更多个。

基于上述模板匹配(tmp),它可以与运动信息编码模式组合,或者可以被支持为单独的运动信息编码模式,或者可以被包括在全部或一些运动信息编码模式的详细配置中。这预设如下情况——确定以较高单位(例如,图片、子图片、切片等)支持模板匹配,但是关于是否支持的标志可以被视为帧间预测设置的一部分。

基于用于在当前图片内执行块匹配(ibc)的上述方法,它可以与运动信息编码模式组合,或者可以被支持为单独的运动信息编码模式,或者可以被包括在全部或一些运动信息编码模式的详细配置中。这预设如下情况——确定在当前图片中以较高单位支持块匹配,但是关于是否支持的标志可以被视为帧间预测设置的一部分。

基于上述运动模型(仿射(affine)),运动信息编码模式可以与运动信息编码模式组合,或者可以被支持为单独的运动信息编码模式,或者可以被包括在全部或一些运动信息编码模式的详细配置中。这预设如下情况——确定较高单位支持非平移运动模型,但是关于是否支持的标志可以被视为帧间预测设置的一部分。

例如,可以支持单个运动信息编码模式例如temp_inter、temp_tmp、temp_ibc、temp_affine。可替选地,可以支持组合的运动信息编码模式例如temp_inter_tmp、temp_inter_ibc、temp_inter_affine、temp_inter_tmp_ibc等。可替选地,可以包括构造temp的运动信息预测候选组之中的基于模板的候选、基于用于在当前图片中执行块匹配的方法的候选、以及基于仿射的候选。

此处,temp可以意指跳过模式(skip)、合并模式(merge)和竞争模式(comp)。例如,它与支持运动信息编码模式例如跳过模式中的skip_inter、skip_tmp、skip_ibc、skip_affine;和合并模式中的merge_inter、merge_tmp、merge_ibc、merge_affine;竞争模式中的comp_inter、comp_tmp、comp_ibc、comp_affine相同。

当支持跳过模式、合并模式和竞争模式,并且考虑以上因素的候选被包括在每个模式的运动信息预测候选组中时,可以通过区分跳过模式、合并模式和竞争模式的标志来选择一个模式。作为示例,指示是否支持跳过模式的标志,并且如果该值为1,则选择跳过模式。而如果该值为0,则指示是否支持合并模式的标志。如果值为1,则选择合并模式,而如果该值为0,则可以选择竞争模式。另外,基于inter、tmp、ibc和affine的候选可以被包括在每个模式的运动信息预测候选组中。

可替选地,当在一个共同模式下支持多个运动信息编码模式时,除了用于选择跳过模式、合并模式和竞争模式之一的标志之外,还可以支持用于区分所选择的模式的详细模式的附加标志。例如,在选择了合并模式时,这意味着另外地支持在merge_inter、merge_tmp、merge_ibc、merge_affine等——其是与合并模式相关的详细模式——之中选择详细模式的标志。可替选地,可以支持指示其是否为merge_inter的标志,并且如果不是merge_inter,则可以另外地支持在merge_tmp、merge_ibc、merge_affine等之中进行选择的标志。

可以根据编码设置来支持全部或部分运动信息编码模式候选。此处,编码设置可以由目标块的状态信息、图像类型、图像种类、颜色分量和帧间预测支持设置(例如,在当前图片、非平移运动模型支持元素等中是否支持模板匹配、是否支持块匹配)之中多于一个的元素来限定。

例如,可以根据块的大小来确定支持的运动信息编码模式。在这种情况下,可以通过第一阈值大小(最小值)或第二阈值大小(最大值)来确定块的大小,并且每个阈值大小可以表示为块的宽度(W)和高度(H)的W、H、W x H和W*H。在第一阈值大小的情况下,W和H可以是4、8、16或更大的整数,并且W*H可以是16、32、64或更大的整数。在第二阈值大小的情况下,W和H可以是16、32、64或更大的整数,并且W*H可以是64、128、256或更大的整数。该范围可以由第一阈值大小或第二阈值大小之一来确定,或者可以使用它们两者来确定。

在这种情况下,阈值大小可以是固定的,或者可以根据图像(例如,图像类型等)自适应。在这种情况下,可以基于最小编码块、最小预测块和最小变换块的大小来设置第一阈值大小,并且可以基于最大编码块、最大预测块和最大变换块的大小来设置第二阈值大小。

例如,可以根据图像类型来确定支持的运动信息编码模式。在这种情况下,I图片类型可以包括跳过模式、合并模式和竞争模式中的至少一个。在这种情况下,可以支持在当前图片中执行块匹配(或模板匹配)的方法、用于仿射模型(在下文中,称为元素)的单个运动信息编码模式,或者可以通过组合两个或更多个元素来支持运动信息编码模式。可替选地,可以将除了预定运动信息编码模式以外的元素配置为运动信息预测候选组。

P/B图像类型可以包括跳过模式、合并模式和竞争模式中的至少一个。在这种情况下,可以支持在当前图片上执行一般帧间预测、模板匹配、块匹配的方法,用于仿射模型(在下文中,称为元素)的单个运动信息编码模式,或者可以通过组合两个或更多个元素来支持运动信息编码模式。可替选地,可以将除了预定运动信息编码模式以外的元素配置为运动信息预测候选组。

图9是示出根据本发明的实施方式的运动信息的编码的流程图。

参照图9,可以检查目标块的运动信息编码模式(S900)。

可以通过组合和设置用于帧间预测的预定信息(例如,运动信息等)来限定运动信息编码模式。预定信息可以包括预测运动矢量、运动矢量差、运动矢量差精度、参考图像信息、参考方向、运动模型信息、关于残余分量的存在或不存在的信息等中的一个或更多个。运动信息编码模式可以包括跳过模式、合并模式和竞争模式中的至少一个,并且可以包括其他附加模式。

可以根据运动信息编码模式来确定显式地生成的信息和隐式地确定的信息的配置和设置。在这种情况下,在显式的情况下,每个信息可以单独地生成或者可以以组合形式(例如,以索引的形式)生成。

例如,在跳过模式或合并模式下,可以基于(一个)预定索引信息来限定预测运动矢量、参考图像信息和/或参考方向。在这种情况下,索引可以包括一个或更多个候选,并且可以基于预定块的运动信息(例如,对应块的预测运动矢量、参考图像信息和参考方向由一种组合组成)来设置每个候选。另外,可以隐式地处理运动矢量差(例如,零矢量)。

例如,在竞争模式下,可以基于(一个或更多个)预定索引信息来限定预测运动矢量、参考图像信息和/或参考方向。在这种情况下,该索引可以单独地支持每个信息片段,或者两个或更多个信息片段的组合可以被支持。在这种情况下,索引可以包括一个或更多个候选,并且每个候选可以基于预定块的运动信息(例如,预测运动矢量等)来设置,或者可以用预定值(例如,当前图片之间的间隔被1、2、3等处理,并且参考方向信息被L0、L1等处理)(例如,参考图像信息、参考方向信息等)进行配置。另外,可以显示地生成运动矢量差,并且可以根据运动矢量差(例如,如果它不是零矢量)另外地生成运动矢量差精度信息。

作为示例,在跳过模式下,可以隐式地处理(例如,处理为)关于残余分量的存在或不存在的信息,并且可以将运动模型隐式地处理为预定值(例如,支持平行运动模型)。

例如,在合并模式或竞争模式中,可以显式地生成关于残差分量的存在或不存在的信息,并且可以显式地选择运动模型。在这种情况下,可以在一个运动信息编码模式下生成用于对运动模型进行分类的信息,或者可以支持单独的运动信息编码模式。

在以上描述中,在支持一个索引时,可以不生成索引选择信息,而在支持两个或更多个索引时,可以生成索引选择信息。

在本发明中,包括两个或更多个索引的候选组被称为运动信息预测候选组。另外,可以通过各种预定信息和设置来改变现有的运动信息编码模式或可以支持新的运动信息编码模式。

参照图9,可以得出目标块的预测运动矢量(S910)。

预测运动矢量可以被确定为预定值,或者可以构造预测运动矢量候选组并从预测运动矢量候选组之中进行选择。在预测运动矢量可以被确定为预定值的情况下,意味着隐式地确定的情况,并且在可以构造预测运动矢量候选组并从预测运动矢量候选组中进行选择的情况下,可以显式地生成用于选择预测运动矢量的索引信息。

此处,预定值可以基于预定位置处的一个块(例如,左、上、左上、右上、左下方向块等)的运动矢量来设置,或者可以基于两个或更多个块的运动矢量来设置,或者可以设置为默认值(例如零矢量)。

根据运动信息编码模式,预测运动矢量可以具有相同或不同的候选组构造设置。例如,跳过模式/合并模式/竞争模式可以分别地支持a、b和c个预测候选,并且每个候选的数目可以相同的或不同的。在这种情况下,a、b和c可以包括大于或等于1的整数,例如2、3、5、6、7等。构造候选组的顺序、设置等将通过其他实施方式来描述。在稍后描述的示例中,将基于与合并模式相同的假设来描述跳过模式候选组的构造,但是不限于此,并且一些可以具有不同的构造。

基于索引信息获得的预测运动矢量可以原样用于重构目标块的运动矢量,或者可以基于参考图像之间的距离和参考方向进行调整。

例如,在竞争模式的情况下,参考图像信息可以被单独地生成。在目标块的当前图片与参考图片之间的距离和包括预测运动矢量候选块的图片与对应块的参考图片之间的距离不同时,可以根据目标块的当前图片与参考图片之间的距离进行调整。

另外,根据运动模型得出的运动矢量的数目可以不同。即,除了左上控制点位置的运动矢量之外,还可以根据运动模型另外地得出右上和左下控制点的运动矢量。

参照图9,可以重构目标块的运动矢量差(S920)。

在跳过模式和合并模式下,运动矢量差可以被得出为零矢量值,并且在竞争模式下可以重构每个分量的差信息。

可以根据预定精度(例如,基于插值精度设置或基于运动模型选择信息设置)来表示运动矢量。可替选地,可以基于多个精度之一来表示它,并且可以生成针对此的预定信息。在这种情况下,预定信息可以与关于运动矢量精度的选择有关。

例如,在运动矢量的一个分量是32/16时,可以基于以1/16像素为单位的隐式精度设置获得针对32的运动分量数据。可替选地,可以基于以2个像素为单位的显式精度设置将运动分量转换为2/1,并且可以获得针对2的运动分量数据。

上述配置可以是用于对运动矢量进行精确处理的方法,该运动矢量具有相同精度,或者是通过将运动矢量差和通过相同精度转换处理获得的预测运动矢量相加而获得的。

另外,可以根据预定精度来表示运动矢量差,或者可以以多个精度之一来表示运动矢量差。在这种情况下,在可以以多个精度之一来表示运动矢量差的情况下,可以生成精度选择信息。

精度可以包括1/16、1/8、1/4、1/2、1、2、4像素单位中的至少一个,并且候选数可以是大于或等于1、2、3、4、5的整数。此处,支持的精度候选组配置(例如,除以数字、候选等)可以以诸如序列、图片、子图片、切片、图块和区块的单位来显式地确定。可替选地,可以根据编码设置隐式地确定,其中,编码设置可以由图像类型、参考图像、颜色分量和运动模型选择信息中的至少一个或更多个元素来限定。

下面描述了其中根据各种编码元素形成精度候选并通过假设运动矢量差的描述来描述精度的情况,而这可以与运动矢量相似或适用于运动矢量。

例如,在平移运动模型的情况下,可以配置诸如{1/4,1}、{1/4,1/2}、{1/4,1/2,1}、{1/4,1,4}、{1/4,1/2,1,4}的候选组,并且在非平移运动模型的情况下,可以配置精度候选组例如{1/16,1/4,1}、{1/16,1/8,1}、{1/16,1,4}、{1/16,1/4,1,2}、{1/16,1/4,1,4}。这假设在平移运动模型的情况下支持的最小精度是1/4像素单位,而在非平移运动模型的情况下支持的最小精度是1/16像素单位,并且除了最小精度之外的附加精度可以包括在候选组中。

可替选地,在参考图像是不同图片时,可以配置诸如{1/4,1/2,1}、{1/4,1,4}、{1/4,1/2,1,4}的候选组。另外,在参考图像是当前图片时,可以配置诸如{1,2}、{1,4}、{1,2,4}的候选组。在这种情况下,参考图像是当前图片的情况可以是以下配置:针对块匹配,不以分数单位执行内插,并且如果以分数单位执行内插,则可以配置成包括分数单位的精度候选。

可替选地,在颜色分量是亮度分量时,诸如{1/4,1/2,1}、{1/4,1,4}、{1/4,1/2,1,4}的候选组是可行的。并且在颜色分量是色度分量时,诸如{1/8,1/4}、{1/8,1/2}、{1/8,1}、{1/8,1/4,1/2}、{1/8,1/2,2}、{1/8,1/4,1/2,2}的候选组是可行的。在这种情况下,在颜色分量是色度分量的情况下,可以根据颜色分量组成比(例如,4:2:0、4:2:2、4:4:4等)形成与亮度分量成比例的候选组,或者可以配置单个候选组。

尽管以上示例描述了根据每个编码元素存在多个精度候选的情况,但是存在一个候选配置(即,以预定的最小精度表示)的情况是可行的。

总之,可以基于竞争模式中的运动矢量差精度来重构具有最小精度的运动矢量差,并且可以在跳过模式和合并模式中得出具有零矢量值的运动矢量差。

此处,根据运动模型重构的运动矢量差的数目可以不同。即,除了左上控制点的位置的运动矢量差之外,可以根据运动模型另外地得出右上和左下控制点的位置的运动矢量差。

另外,可以将一个运动矢量差精度应用于多个运动矢量差,或者可以将单个运动矢量差精度应用于每个运动矢量差,这可以根据编码设置来确定。

另外,在至少一个运动矢量差不为0时,可以生成关于运动矢量差精度的信息,并且否则,可以将其省略,但不限于此。

参照图9,可以重构目标块的运动矢量(S930)。

可以通过获得预测运动矢量和运动矢量差——其通过该步骤之前的处理而获得——并将它们相加来重构目标块的运动矢量。在这种情况下,当通过选择多个精度之一来重构时,可以执行精度统一处理。

例如,可以基于精度选择信息来重构通过将预测运动矢量(与运动矢量精度相关)和运动矢量差相加而获得的运动矢量。可替选地,可以基于精度选择信息来重构运动矢量差(与差分运动矢量精度相关),并且可以通过将重构的运动矢量差与预测运动矢量相加来获得运动矢量。

参照图9,可以基于目标块的运动信息来执行运动补偿(S940)。

除了上述预测运动矢量和运动矢量差之外,运动信息还可以包括参考图像信息、参考方向、运动模型信息等。在跳过模式和合并模式的情况下,可以隐式地确定一些信息(例如,参考图像信息、参考方向等),并且在竞争模式的情况下,可以显式地处理相关信息。

可以基于通过以上处理获得的运动信息通过执行运动补偿来获得预测块。

参照图9,可以对目标块的残余分量执行解码(S950)。

可以通过将通过以上处理获得的残差分量与预测块相加来重构目标块。在这种情况下,可以根据运动信息编码模式对关于残差分量的存在或不存在的信息执行显式或隐式处理。

图10是根据本发明实施方式的目标块和与其相邻的块的布局图。

参照图10,可以配置在左、上、左上、右上、左下方向等上与目标块相邻的块以及在中心、左、右、上、下、左上、右上、左下、右下方向等上在时间上不相同的空间(Col_Pic)中与对应于目标块的块相邻的块作为用于预测目标块的运动信息(例如,运动矢量)的候选块。

在inter_blk_A的情况下,可以基于诸如光栅扫描或z扫描的编码顺序来确定相邻块的方向,并且可以去除现有方向,或者在右、下、右下方向上的相邻块可以另外地包括候选块。

参考图10,Col_Pic可以是当前图像之前或之后的相邻图像(例如,在图像之间的间隔为1时),并且在图像中对应块可以具有与目标块相同的位置。

可替选地,Col_Pic可以是其中图像之间的间隔相对于当前图像被预先限定(例如,图像之间的间隔是z。z是1、2、3的整数)的图像,并且对应的块可以被设置为从目标块的预定坐标(例如,左上)移动了预定视差矢量的位置,并且可以将视差矢量设置为预定义值。

可替选地,可以基于相邻块的运动信息(例如,参考图像)来设置Col_Pic,并且可以基于相邻块的运动信息(例如,运动矢量)来设置视差矢量,以确定对应块的位置。

在这种情况下,可以参考k个相邻块,并且k可以是1、2或更大的整数。如果k为2或更大,则可以基于相邻块的运动信息(例如,参考图像或运动矢量)的诸如最大值、最小值、中值、加权平均值的计算来获得Col_Pic和视差矢量。例如,视差矢量可以被设置为左块或上块的运动矢量,并且可以被设置为左块和下块的运动矢量的中值或平均值。

可以基于运动信息配置设置等来确定时间候选的设置。例如,可以根据是以块为单位还是以子块为单位配置运动信息来确定Col_Pic的位置、对应块的位置等,针对该运动信息,以块为单位的运动信息或以子块为单位的运动信息要被包括在运动信息预测候选组中。例如,在获取以子块为单位的运动信息时,可以将移动了预定视差矢量的位置处的块设置为对应块的位置。

以上示例示出了以下情况:其中隐式地确定关于与Col_Pic对应的块的位置的信息,并且还可以以诸如序列、图片、切片、图块组、图块和区块为单位显式地生成相关信息。

另一方面,当诸如子图片、切片、图块等的划分单元分区不限于一个图片(例如,当前图片)并且在图像之间共享时,并且如果对应于Col_Pic的块的位置与目标块所属的划分单元不同(即,如果其相对于目标块所属的划分单元的边界延伸或偏离),则它可以基于后续候选的运动信息根据预定优先级来确定。可替选地,可以将其设置为图像中与目标块相同的位置。

上述在空间上相邻的块和在时间上相邻的块的运动信息可以被包括在目标块的运动信息预测候选组中,其被称为空间候选和时间候选。可以支持a个空间候选和b个时间候选,并且a和b可以是1到6或更大的整数。在这种情况下,a可以大于或等于b。

根据先前的运动信息预测候选的配置,可以支持固定数目的空间候选和时间候选,或者可以支持可变数目(例如,包括0)。

另外,可以在候选组构造中考虑与目标块不紧邻的块

例如,相对于目标块(例如,左上坐标)以预定间隔差定位的块的运动信息可以是要被包括在候选组中的目标。间隔可以是p和q(取决于运动矢量的每个分量),p和q可以是2或更大的整数,例如0、2、4、8、16、32,并且p和q可以是相同或不同的。即,假设目标块的左上坐标是(m,n),则包括(m±p,n±q)位置的块的运动信息可以被包括在候选组中。

例如,可以将在目标块之前已完成对其的编码的块的运动信息作为要包括在候选组中的目标。在这种情况下,基于相对于目标块的预定编码顺序(例如,光栅扫描、Z扫描等),可以将预定数目的最近编码的块视为候选,并且由于编码以先进先出方法例如FIFO进行,因此可以从候选中移除具有旧编码顺序的块。

由于以上示例涉及其中已经相对于目标块进行了编码的非最相邻块的运动信息被包括在候选组中的情况,因此这被称为统计候选。

在这种情况下,可以将用于获得统计候选的参考块设置为目标块,但是可以设置目标块的较高块(例如,如果目标块是编码块<1>/预测块<2>中,较高块为最大编码块<1>/编码块<2>,等等)。可以支持k个统计候选,并且k可以是1至6或更大的整数。

通过组合空间候选、时间候选、统计候选等的运动信息而获得的运动信息可以被包括在候选组中。例如,可以获得通过将加权平均应用于先前包括在候选组中的多个(2、3或更多)运动信息的每个分量而获得的候选,并且可以获得针对多个运动信息中的每个分量通过中值、最大值、最小值等的处理而获得的候选。这被称为组合候选,并且可以支持r个组合候选,并且r可以是1、2、3或更大的整数。

当用于组合的候选不具有相同的关于参考图像的信息时,可以基于关于候选之一的参考图像信息将其设置为组合候选的参考图像信息,或者可以将其设置为预定义的值。

根据先前的运动信息预测候选的配置,可以支持固定数目的统计候选或组合候选,或者可以支持可变数目。

另外,具有预定值例如(s,t)的默认候选还可以包括在候选组中,并且根据先前的运动信息预测候选的配置,可以支持可变数目(0,1或更大的整数)。在这种情况下,可以将s和t设置为包括0,并且可以基于各种块大小(例如,最大编码/预测/变换块、最小编码/预测/变换块的水平或竖直长度等)进行设置。

取决于运动信息编码模式,可以在候选之中构造运动信息预测候选组,并且可以包括其他附加候选。此外,根据运动信息编码模式,候选组配置设置可以相同或不同。

例如,跳过模式和合并模式可以共同构造候选组,而竞争模式可以构造单个候选组。

此处,候选组配置设置可以由以下来限定:候选块的类别和位置(例如,在左/上/左上/右上/左下方向之中从用于获得所确定的方向之中的运动信息的子块位置确定的)、候选的数目(例如,总数、每个类别的最大数目)、候选构造方法(例如,每个类别的优先级、类别内的优先级等)。

运动信息预测候选组的数目(总数)可以是k,并且k可以是1至6或更大的整数。在这种情况下,当候选的数目为一个时,这可能意味着不生成候选组选择信息,并且将预定义候选块的运动信息设置为预测运动信息,并且当存在两个或更多个候选组时,可以生成候选组选择信息。

候选块的类别可以是inter_blk_A、inter_blk_B和inter_blk_C中的一个或更多个。在这种情况下,inter_blk_A可以是默认包括的类别,并且另一类别可以是附加支持的类别,但是不限于此。

上面的描述可以与用于平移运动模型的运动信息预测候选构造相关,并且在非平移运动模型(仿射模型)的候选组构造中可以使用/参考相同或相似的候选块。另一方面,仿射模型可以与平移运动模型的候选组构造不同,这是因为运动特征以及运动矢量的数目与平移运动模型不同。

例如,当候选块的运动模型是仿射模型时,候选块的运动矢量集配置可以原样包括在候选组中。例如,当使用左上和右上坐标作为控制点时,候选块的左上和右上坐标的运动矢量组可以被包括在候选组中作为一个候选。

可替选地,当候选块的运动模型是平移运动模型时,基于控制点的位置设置的候选块的运动矢量组合可以被构造为集合并且被包括在候选组。例如,当将左上、右上和左下坐标用作控制点时,可以基于目标块的左、上和左上的运动矢量来预测左上控制点的运动矢量(例如,在平移运动模型的情况下),并且可以基于目标块的上块和右上块的运动矢量来预测右上控制点的运动矢量(例如,在平移运动模型的情况下),并且可以基于目标块的左右的运动模型来预测左下控制点的运动矢量。在以上示例中,已经描述了基于控制点的位置而设置的候选块的运动模型是平移运动模型的情况,但是即使在仿射模型的情况下,也可以通过获取或得出它来仅获得控制点位置的运动矢量。也就是说,针对目标块的左上、右上和左下控制点的运动矢量,可以从候选块的左上、右上、左下、右下控制点之中获得或得出运动矢量。

总之,当候选块的运动模型是仿射模型时,对应块的运动矢量集可以被包括在候选组(A)中,并且当候选块的运动模型是平移运动模型时,根据考虑目标块的预定控制点的运动矢量的控制点的组合而获得的运动矢量集可以被包括在候选组(B)中。

在这种情况下,可以仅使用A或B方法之一来构造候选组,或者可以使用A和B方法两者来构造候选组。另外,方法A可以首先用于构造,并且方法B可以随后用于构造,但是不限于此。

图11示出了根据本发明的实施方式的统计候选的示例图。

参考图11,与图11的A至L对应的块是指与目标块以预定间隔分开的已对其完成编码的块。

当用于目标块的运动信息的候选块限于与目标块相邻的块时,可以不反映图像的各种特性。为此,在当前图片之前已经被编码的块也可以被视为候选块。针对此的类别已被称为inter_blk_B,并且这被称为统计候选。

由于包括在运动信息预测候选组中的候选块的数目是有限的,为此可能需要有效的统计候选管理。

(1)可以将与目标块具有预定距离间隔的预定位置处的块视为候选块。

作为示例,通过对相对于目标块的预定坐标(例如,左上坐标等)的x分量进行限制,可以将具有预定间隔的块视为候选块,并且诸如(-4,0)、(-8,0)、(-16,0)、(-32,0)等的示例是可行的。

作为示例,通过对相对于目标块的预定坐标的y分量进行限制,可以将具有预定间隔的块视为候选块,并且诸如(0,-4)、(0,-8)、(0,-16)、(0,-32)等的示例是可行的。

作为示例,可以将相对于目标块的预定坐标具有除0外的预定间隔为x和y分量的块视为候选块,诸如(-4,-4)、(-4,-8)、(-8,-4)、(-16、16)、(16,-16)等的示例是可行的。在该示例中,x分量可以取决于y分量具有正号。

可以根据编码设置来有限地确定被视为统计候选的候选块。对于稍后描述的示例,参考图11。

可以根据候选块是否属于预定单位来将其分类为统计候选。此处,可以根据最大编码块、区块、图块、切片、子图片、图片等来确定预定单位。

例如,在通过对属于与目标块相同的最大编码块的块进行限制来选择候选块时,A至C可以是目标。

可替选地,在通过对属于目标块所属的最大编码块的块和左最大编码块进行限制来选择候选块时,A至C、H、I可以是目标。

可替选地,在通过对属于目标块所属的最大编码块的块和上最大编码块进行限制来选择候选块时,A至C、E、F可以是目标。

可替选地,在通过对与目标块属于同一切片的块进行限制来选择候选块时,A至I可以是目标。

根据候选块是否位于相对于目标块的预定方向上,可以将候选块分类为统计候选。此处,可以从左、上、左上、右上方向等确定预定方向。

例如,在通过对位于相对于目标块的左和上方向上的块进行限制来选择候选块时,B、C、F、I、L可以是目标。

可替选地,在通过对位于相对于目标块的左、上、左上或右上方向上的块进行限制来选择候选块时,A至L可以是目标。

如以上示例中那样,即使选择了被视为统计候选的候选块,也可以存在用于包括在运动信息预测候选组中的优先级顺序。也就是说,可以按照优先级来选择与支持的统计候选的数目一样多的统计候选。

可以支持预定顺序作为优先级,或者可以由各种编码元素确定优先级。可以基于候选块与目标块之间的距离(例如,是否是短距离、可以基于x和y分量来检查块之间的距离)以及相对于目标块的候选块的相对方向(例如,左、上、左上、右上方向,左->上->右上->左等的顺序)来限定编码元素。

(2)可以将根据相对于目标块的预定编码顺序已经被编码的块视为候选块。

以下示例假设遵循光栅扫描(例如,最大编码块)和Z扫描(例如,编码块、预测块等),但是应当理解,稍后描述的内容可以根据扫描顺序而改变。

在上述示例(1)的情况下,可以支持用于构造运动信息预测候选组的优先级,并且同样地,在本实施方式中可以支持预定的优先级。可以通过各种编码元素来确定优先级,但是为了便于描述,假设优先级是根据编码顺序来确定的。在稍后描述的示例中,将一起考虑候选块和优先级。

可以根据编码设置来有限地确定被视为统计候选的候选块。

可以根据候选块是否属于预定单位来将其分类为统计候选。此处,可以根据最大编码块、区块、图块、切片、子图片、图片等来确定预定单位。

例如,在与目标块属于同一图片的块被选择作为候选块时,候选块和优先级例如J-D-E-F-G-K-L-H-I-A-B-C可以是目标。

可替选地,在与目标块属于同一切片的块被选择作为候选块时,候选块和优先级例如D-E-F-G-H-I-A-B-C可以是目标。

根据候选块是否位于相对于目标块的预定方向上,可以将候选块分类为统计候选。此处,可以根据左或上方向确定预定方向。

例如,在通过对位于相对于目标块的左方向上的块进行限制来选择候选块时,候选块和优先级例如K-L-H-I-A-B-C可以是目标。

可替选地,在通过对位于相对于目标块的上方向上的块进行限制来选择候选块时,候选块和优先级例如E-F-A-B-C可以是目标。

以上描述基于以下假设:组合了候选块和优先级,但是不限于此,并且可以设置各种候选块和优先级。

已经提到,可以通过以上(1)和(2)的描述来支持运动信息预测候选组中包括的优先级。可以支持一个或更多个优先级,并且可以支持针对整个候选块的一个优先级。或者,可以将候选块分类为两个或更多个类别,并且可以支持根据类别的各个优先级。在前一种情况下,可以是根据一个优先级选择k个候选块的示例,而在后一种情况下,可以是根据每个优先级(例如,两个类别)选择p和q(p+q=k)个候选块的示例。在这种情况下,可以基于预定编码元素对类别进行分类,并且编码元素可以包括其是否属于预定单位、候选块是否位于相对于目标块的预定方向上等。

已经描述了基于候选块是否属于通过(1)和(2)描述的预定单位(例如,划分单元)来选择候选块的示例。除了划分单元之外,可以通过对相对于目标块在预定范围内的块进行限制来选择候选块。例如,它可以通过限定(x1,y1)、(x2,y2)、(x3,y3)等的范围的边界点以及x或y分量的最小值、最大值来标识。诸如x1至y3的值可以是诸如0、4和8的整数(基于绝对值)。

可以基于上述(1)或(2)之一的设置来支持统计候选,或者可以以混合(1)和(2)的形式支持统计候选。通过以上描述,已经描述了如何选择用于统计候选的候选块,并且稍后将描述对统计候选的管理和更新以及被包括在运动信息预测候选组中的情况。

运动信息预测候选组的构造通常可以以块为单位执行,因为与目标块相邻的块的运动信息可能是相同或相似的。即,可以基于目标块来构造空间候选或时间候选。

同时,可以基于预定单位来构造统计候选,这是因为候选块的位置不与目标块相邻。预定单位可以是包括目标块的较高块。

例如,在目标块是预测块时,可以以预测块为单位构造统计候选,或者可以以编码块为单位构造统计候选。

可替选地,当目标块是编码块时,可以以编码块为单位构造统计候选,或者可以以先辈块为单位构造统计候选(例如,深度信息是与目标块的至少一个差)。在这种情况下,先辈块可以包括最大编码块,或者可以是基于最大编码块(例如,最大编码块的整数倍)获取的单位。

如在以上示例中,可以基于目标块或较高单位来构造统计候选,并且在稍后描述的示例中,假设基于目标块来构造统计候选。

此外,可以基于预定单位来执行针对统计候选的存储器初始化。可以根据图片、子图片、切片、图块、区块或块来确定预定单位,并且在该块的情况下,可以基于最大编码块来设置它。例如,可以基于最大编码块的整数(1、2或更大)、最大编码块的行或列单位等来执行针对统计候选的存储器初始化。

下面描述统计候选的管理和更新。可以准备用于管理统计候选的存储器,并且可以存储多达k个块的运动信息。在这种情况下,k可以是1至6或更大的整数。可以根据运动矢量、参考图片和参考方向确定存储在存储器中的运动信息。此处,可以基于运动模型选择信息来确定运动矢量的数目(例如1至3等)。为了便于说明,稍后将描述其中基于目标块根据预定编码顺序完成了其编码的块被视为候选块的情况。

(情况1)可以将根据编码顺序预先编码的块的运动信息作为候选包括在先前的排名中。另外,在最大数目由另外的候选填充和更新时,先前排名中的候选可以被移除,并且顺序可以被逐一向前移动。在以下示例中,x意指尚未构造的空白。

(示例)

1顺序-[a,x,x,x,x,x,x,x,x,x]

2顺序-[a,b,x,x,x,x,x,x,x,x]

...

9顺序-[a,b,c,d,e,f,g,h,i,x]

10顺序-[a,b,c,d,e,f,g,h,i,j]->添加j。满

11顺序-[b,c,d,e,f,g,h,i,j,k]->添加k。移除前导a。移位顺序

(情况2)当存在重复的运动信息时,移除预先存在的候选,并且可以调整现有候选的顺序以进行转发。

在这种情况下,复制意味着运动信息相同,其可以由运动信息编码模式限定。作为示例,在合并模式的情况下,可以基于运动矢量、参考图片和参考方向来确定重复,并且在竞争模式的情况下,可以基于运动矢量和参考图片来确定重复。在这种情况下,在竞争模式的情况下,如果每个候选的参考图片相同,则可以通过运动矢量的比较来确定重复,并且如果每个候选的参考图片不同,则可以通过比较基于每个候选的参考图片缩放的运动矢量来确定重复,然而不限于此。

(示例)

1顺序-[a,b,c,d,e,f,g,x,x,x]

2顺序-[a,b,c,d,e,f,g,d,x,x]->d交叠

-[a,b,c,e,f,g,d,x,x,x]->移除现有的d,移位顺序

(情况3)当存在重复的运动信息时,可以根据预定条件将对应的候选标记并管理为长期存储的候选(长期候选)。

可以支持用于长期候选的单独的存储器,并且可以附加地存储和更新除了运动信息之外的诸如出现频率的信息。在下面的示例中,用于长期存储候选的存储器可以表示为()。

(示例)

1顺序-[(),b,c,d,e,f,g,h,i,j,k]

2顺序-[(),b,c,d,e,f,g,h,i,j,k]->e是下一顺序。交叠-[(e),b,c,d,f,g,h,i,j,k]->移至前面。长期标记

3顺序-[(e),c,d,f,g,h,i,j,k,l]->添加l。移除b

...

10顺序-[(e),l,m,n,o,p,q,r,s,t]->l是下一顺序。交叠

-[(e,l),m,n,o,p,q,r,s,t]->长期标记

11顺序-[(e,l),m,n,o,p,q,r,s,t]->l是下一顺序。3交叠-[(l,e),m,n,o,p,q,r,s,t]->改变长期候选顺序

以上示例示出了以下情况:现有统计候选(短期候选)以集成方式管理,但是可以与短期候选分开管理,并且长期候选的数目可以是0、1、2或更大的整数。

可以基于编码顺序以先进先出的方式管理短期候选,但是可以基于短期候选之中具有冗余的候选根据频率来管理长期候选。在长期候选的情况下,可以在更新存储器的过程中根据频率来改变候选的顺序,但是不限于此。

以上示例可以是将候选块分类为两个或更多个类别并且支持根据该类别的优先级的情况。当构造运动信息预测候选组以包括统计候选时,可以根据每个候选内的优先级分别地构造短期和长期候选的a和b。此处,a和b可以是0、1、2或更大的整数。

以上情况1至3是根据统计候选的示例,并且(情况1+情况2)或(情况1+情况3)的配置是可行的,并且统计候选可以以各种修改和增加的形式进行管理。

图12是根据本发明的实施方式的根据非平移运动模型的统计候选的概念图。

统计候选可以是不仅用于平移运动模型而且用于非平移运动模型支持的候选。在平移运动模型的情况下,由于发生频率高,因此可能存在很多可以从空间或时间候选等中参考的块,但是在非平移运动模型的情况下,因为发生频率小,所以可能需要除空间或时间候选之外的统计候选。

参照图12,基于属于与目标块相同的空间的且与目标块远邻的块的运动信息{PV

与上述平移运动模型的统计候选相比,可以增加存储在存储器中的运动信息之中的运动矢量的数目。因此,统计候选的基本概念可以与平移运动模型相同或相似,并且可以通过其中运动矢量的数目不同的配置来得出相关的说明。稍后将描述关注根据非平移运动模型的差异的以下内容。在稍后描述的示例中,假设仿射模型具有三个控制点(例如,v0、v1和v2)。

在仿射模型的情况下,可以根据参考图片、参考方向以及运动矢量v0、v1和v2确定存储在存储器中的运动信息。此处,可以以各种形式存储所存储的运动矢量。例如,可以原样存储运动矢量,或者可以存储预定的差信息。

图13是根据本发明的实施方式的用于存储为统计候选的每个控制点的位置的运动信息构造的示例图。

参照图13,(a)将候选块的运动矢量v0、v1和v2表示为v0、v1和v2,而在图13中,(b)将候选块的运动矢量v0表示为v0,并且将运动矢量v1和v2表示为v*1和v*2,这与运动矢量v0不同。

也就是说,每个控制点位置的运动矢量可以原样存储,或者可以存储与另一控制点位置的运动矢量的差,这可以是在存储器管理方面考虑的配置的示例,并且各种修改示例是可行的。

是否支持统计候选可以以诸如序列、图片、切片、图块和区块的单位显式地生成,或者可以根据编码设置隐式地确定。由于可以通过上述各种编码元素来限定编码设置,因此省略详细描述。

此处,可以根据运动信息编码模式来确定是否支持统计候选。可替选地,可以根据运动模型选择信息来确定是否支持它。例如,可以在merge_inter、merge_ibc、merge_affine、comp_inter、comp_ibc、comp_affine之中支持统计候选。

如果针对平移运动模型和非平移运动模型支持统计候选,则可以支持用于多个统计候选的存储器。

接下来,将描述根据运动信息编码模式构造运动信息预测候选组的方法。

用于竞争模式的运动信息预测候选组(在下文中,竞争模式候选组)可以包括k个候选,并且k可以是2、3、4或更大的整数。竞争模式候选组可以包括空间候选或时间候选中的至少一个。

空间候选可以从在左、上、左上、右上和左下方向上与参考块相邻的块中的至少一个中得出。可替选地,至少一个候选可以从与左相邻的块(左块、左下块)和与上方向相邻的块(左上块、上块、右上块)中得出,在此设置的假设下,这将后面描述。

可以存在用于构造候选组的两个或更多个优先级。在与左方向相邻的区域中,可以设置优先级顺序为左下-左,并且在与上方向相邻的区域中,可以设置优先级顺序为右上-上-左上顺序。

在以上示例中,可以仅从目标块的参考图片为相同的块中得出空间候选,并且可以基于目标块的参考图片通过缩放处理(以下标记为*)来得出空间候选。在这种情况下,在与左方向相邻的区域中,可以设置优先级顺序为左-左下-左*-左下*或左-左下-左下*-左*,并且在与上方向相邻的区域中,可以设置优先级顺序为右上-上-左上-右上*-上*-左上*或右上-上-左上-左上*-上*-右上*。

时间候选可以基于与参考块对应的块从与中心、左、右、上、下、左上、右上、左下、右下等相邻的块中的至少一个得出。可以存在用于配置候选组的优先级,并且可以设置诸如中心-左下-右-下-左下-中心-左上等的优先级。

在空间候选的最大可允许数和时间候选的最大可允许数之和小于竞争模式候选的数目时,可以将时间候选包括在候选组中,而与空间候选的候选组的构造无关。

可以基于优先级、每个候选块的可用性以及时间候选的最大可允许数(q的数目,1与竞争模式候选的数目之间的整数),将全部或部分候选包括在候选组中。

此处,当空间候选的最大可允许数被设置为等于合并模式候选的数目时,时间候选可以不包括在候选组中,并且当未填充空间候选的最大可允许数时,时间候选可以被包括在候选组中。本示例假设后一种情况。

此处,可以基于候选块的运动矢量和当前图像与目标块的参考图像之间的距离间隔来获得时间候选的运动矢量,并且可以基于当前图像与目标块的参考图像之间的距离间隔来获得时间候选的参考图像,或者可以将时间候选的参考图像获得为预定义的参考图像(例如,参考图片索引为0)。

如果竞争模式候选组没有用空间候选、时间候选等填充,则可以通过包括零矢量的默认候选来完成候选组构造。

竞争模式关注comp_inter的描述,并且在comp_ibc或comp_affine的情况下,可以为相似或不同的候选构造候选组。

例如,在comp_ibc的情况下,可以基于选自空间候选、统计候选、组合候选和默认候选的预定候选来构造候选组。在这种情况下,可以通过对空间候选进行优先级排序来构造候选组,并且然后可以按照统计候选-组合候选-默认候选等的顺序来构造候选组,但是顺序不限于此。

可替选地,在comp_affine的情况下,可以基于从空间候选、统计候选、组合候选和默认候选中选择的预定候选来构造候选组。详细地,可以在候选组<1>中构造候选(例如,一个块)的运动矢量集候选,或者可以在候选组<2>中构造其中基于控制点位置组合了候选(例如,两个或更多个块)的运动矢量的候选。首先将针对<1>的候选包括在候选组中然后将针对<2>的候选包括在候选组中的顺序是可行的,但不限于此。

由于各种竞争模式候选组的上述构造的详细描述可以从comp_inter得出,因此省略详细描述。

在构造竞争模式候选组的过程中,当首先包括的候选之中存在重复的运动信息时,可以维持首先包括的候选,并且可以将具有下一优先级的候选包括在候选组中。

此处,在构造候选组之前,可以基于目标块的参考图片与当前图片之间的距离来缩放候选组的运动矢量。例如,当目标块的参考图片与当前图片之间的距离以及候选块的参考图片与候选块所属的图片之间的距离相同时,可以将运动矢量包括在候选组中,否则,根据目标块的参考图片与当前图片之间的距离所缩放的运动矢量可以被包括在候选组中。

在这种情况下,冗余可以意味着运动信息相同,其可以由运动信息编码模式限定。在竞争模式的情况下,可以基于运动矢量、参考图片和参考方向来确定重复。例如,当至少一个运动矢量的分量不同时,可以确定不存在重复。当候选组中包括新的候选时,通常可以执行冗余检查处理,但是可以将其修改为省略。

用于合并模式的运动信息预测候选组(在下文中,合并模式候选组)可以包括k个候选,并且k可以是2、3、4、5、6或更大的整数。合并模式候选组可以包括空间候选或时间候选中的至少一个。

空间候选可以从在左、上、左上、右上和左下方向上与参考块相邻的块中的至少一个得出。可以存在用于构造候选组的优先级,并且可以设置优先级例如左-上-左下-右上-左上、左-上-右上-左下-左上、上-左-左下-左上-右上。

可以基于优先级、每个候选块的可用性(例如,基于编码模式、块位置等确定)以及空间候选的最大可允许数(p的数目,1与合并模式候选组的数目之间的整数),将所有或一些候选包括在候选组中。根据最大可允许数和可用性,候选可以不按tl-tr-bl-t3-13的顺序包括在候选组中。如果最大可允许数为4并且所有候选块的可用性为真,则tl的运动信息可以不包括在候选组中,并且如果一些候选块的可用性为假,则可以将tl的运动信息包括在候选组中。

时间候选可以基于与参考块对应的块从与中心、左、右、上、下、左上、右上、左下、右下等相邻的块中的至少一个得出。可以存在用于构造候选组的优先级,并且可以设置诸如中心-左下-右-下、左下-中心-左上等优先级。

可以基于优先级、每个候选块的可用性以及时间候选的最大可允许数(q,1与合并模式候选的数目之间的整数),将全部或部分候选包括在候选组中。

此处,时间候选的运动矢量可以基于候选块的运动矢量来获得,并且时间候选的参考图像可以基于候选块的参考图像来获得,或者可以获得为预定义的参考图像(例如,参考图片索引为0)。

对于包括在合并模式候选组中的优先级,可以设置空间候选-时间候选,或者反之亦然,并且可以支持其中空间候选和时间候选混合的优先级。在该示例中,假设空间候选-时间候选。

另外,统计候选或组合候选还可以包括在合并模式候选组中。可以在空间候选和时间候选之后构造统计候选和组合候选,但是不限于此,并且可以设置各种优先级。

对于统计候选,可以管理高达n个运动信息片段,并且在这之中,可以将z个运动信息片段包括在合并模式候选组中作为统计候选。z可以根据已经包括在合并模式候选组中的候选构造而变化,可以是0、1、2或更大的整数,并且可以小于或等于n。

可以通过合并已经包括在合并模式候选组中的n个候选来得出组合候选,并且n可以是2、3、4或更大的整数。组合候选的数目(n)可以是以诸如序列、图片、子图片、切片、图块、区块或块的单位显式地生成的信息。可替选地,可以根据编码设置隐式地确定它。在这种情况下,编码设置可以基于参考块的大小、形状、位置、图像类型和颜色分量中的一个或更多个因素来限定。

此外,可以基于合并模式候选组中未填充的候选的数目来确定组合候选的数目。在这种情况下,合并模式候选组中未填充的候选的数目可以是合并模式候选的数目与已经填充的候选的数目之间的差值。即,如果合并模式候选组构造已经完成,则可以不添加组合候选。如果合并模式候选组构造未完成,则可以添加组合候选,但是当在合并模式候选组中填充的候选少于或等于一个候选时,不添加组合候选。

如果合并模式候选组没有用空间候选、时间候选、统计候选、组合候选等填充,则可以通过包括零矢量的默认候选来完成候选组构造。

合并模式关注merge_inter的描述,并且在merge_ibc或merge_affine的情况下,可以为相似或不同的候选构造候选组。

例如,在merge_ibc的情况下,可以基于选自空间候选、统计候选、组合候选和默认候选的预定候选来构造候选组。在这种情况下,可以通过对空间候选进行优先级排序来构造候选组,并且然后可以按照统计候选-组合候选-默认候选等的顺序来构造候选组,但是顺序不是限于此。

可替选地,在merge_affine的情况下,可以基于从空间候选、时间候选、统计候选、组合候选和默认候选中选择的预定候选来构造候选组。详细地,可以在候选组<1>中构造候选(例如,一个块)的运动矢量集候选,或者可以在候选组<2>中构造其中基于控制点位置组合了候选(例如,两个或更多个块)的运动矢量的候选。其中首先将针对<1>的候选包括在候选组中然后包括针对<2>的候选是可行的,但不限于此。

由于各种合并模式候选组的上述构造的详细描述可以从merge_inter得出,因此将省略详细描述。

在构造合并模式候选组的过程中,如果在首先包括的候选之中存在交叠的运动信息,则可以维持首先包括的候选,并且可以将具有下一优先级的候选包括在候选组中。

在这种情况下,冗余意味着运动信息相同,其可以由运动信息编码模式限定。在合并模式的情况下,可以基于运动矢量、参考图片和参考方向来确定交叠。例如,如果至少一个运动矢量的分量不同,则可以确定不存在交叠。当候选组中包括新的候选时,通常可以执行冗余检查处理,但是可以将其修改为省略。

图14是示出根据本发明的实施方式的运动信息编码的流程图。

可以生成目标块的运动矢量预测候选列表(S1400)。前述竞争模式候选组可以意味着运动矢量候选列表,并且将省略其详细描述。

可以重构目标块的运动矢量差(S1410)。可以分别地重构运动矢量的x和y分量的差,并且每个分量的差可以具有0或更大的值。

目标块的预测候选索引可以选自运动矢量预测候选列表(S1420)。目标块的运动矢量预测值可以基于根据候选列表中的候选索引获得的运动矢量来得出。如果可以得出一个预定的运动矢量预测值,则可以省略选择预测候选索引和索引信息的过程。

可以得出运动矢量差的精度信息(S1430)。可以得出通常应用于运动矢量的x和y分量的精度信息,或者可以得出应用于每个分量的精度信息。如果运动矢量差为0,则可以省略精度信息,并且也可以省略该处理。

可以得出针对运动矢量预测值的调整偏移(S1440)。偏移可以是与运动矢量预测值的x或y分量相加或相减的值。偏移可以仅支持x和y分量之一,或者可以支持x和y分量两者。

假设运动矢量预测值为(pmv_x,pmv_y),并且调整偏移为offset_x和offset_y,则可以调整(或获得)运动矢量预测值为(pmv_x+offset_x,pmv_y+offset_y)。

此处,offset_x和offset_y的绝对值可以分别是0、1、2或更大的整数,并且可以具有值(+1、-1、+2、-2等),其中符号信息被一起考虑。此外,offset_x和offset_y可以基于预定精度来确定。预定精度可以以1/16、1/8、1/4、1/2和1像素为单位确定,并且可以基于插值精度、运动矢量精度等来确定。

例如,如果插值精度以1/4像素为单位,则可以得出插值精度为组合有绝对值和符号信息的0、1/4、-1/4、2/4、-2/4、3/4、-3/4。

此处,offset_x和offset_y可以分别由a和b支持,并且a和b可以是0、1、2或更大的整数。a和b可以具有固定值,或者可以具有可变值。此外,a和b可以具有相同或不相等的值。

是否支持针对运动矢量预测值的调整偏移可以以诸如序列、图片、子图片、切片、图块、区块等的单位显式地支持,或者可以根据编码设置隐式地确定。另外,可以根据编码设置来确定调整偏移的设置(例如,值的范围、数目等)。

考虑到编码元素例如图像类型、颜色分量、目标块的状态信息、运动模型选择信息(例如,是否为平移运动模型)、参考图片(例如,是否为当前图片)以及运动矢量精度差选择信息(例如,是否为1/4、1/2、1、2、4单位之中的预定单位)中的至少一个,可以确定编码设置。

例如,可以根据块的大小来确定是否支持调整偏移和偏移设置。在这种情况下,可以通过第一阈值大小(最小值)或第二阈值大小(最大值)来确定块的大小,并且每个阈值大小可以表示为具有块的宽度(W)和高度(H)的W、H、W x H和W*H。在第一阈值大小的情况下,W和H可以是4、8、16或更大的整数,并且W*H可以是16、32、64或更大的整数。在第二阈值大小的情况下,W和H可以是16、32、64或更大的整数,并且W*H可以是64、128、256或更大的整数。该范围可以由第一阈值大小或第二阈值大小之一来确定,或者可以使用它们两者来确定。

在这种情况下,阈值大小可以是固定的,或者可以根据图像(例如,图像类型等)自适应。在这种情况下,可以基于最小编码块、最小预测块、最小变换块的大小来设置第一阈值大小,并且可以基于最大编码块、最大预测块、最大变换块的大小来设置第二阈值大小。

此外,调整偏移可以应用于运动信息预测候选组中包括的所有候选,或者可以仅应用于某些候选。在稍后描述的示例中,假设可以应用候选组中包括的所有候选,但是可以从0、1、2至最大候选数目中选择要应用调整偏移的候选。

如果不支持调整偏移,则可以省略该处理和调整偏移信息。

目标块的运动矢量可以通过将运动矢量预测值和运动矢量差相加来重构(S1450)。在这种情况下,可以优先利用运动矢量精度来统一运动矢量预测值或运动矢量差的处理,并且上述运动矢量缩放处理可以优先进行或者可以在该处理期间执行。

配置和顺序不限于此,而是可以进行各种改变。

图15是根据本发明的实施方式的用于目标块的运动矢量预测候选和运动矢量的示例图。

为了便于说明,支持两个运动矢量预测候选,并且假设要比较一个分量(x或y分量)。另外,假设插值精度或运动矢量精度为1/4像素单位。另外,假设对于运动矢量差精度支持1/4、1和4像素单元(例如,如果1/4,则假设被二进制化为<0>,如果1,则假设被二进制化为<10>,以及如果4,则假设被二值化为<11>)。另外,假设对于运动矢量差省略符号信息,并且通过一元二值化处理运动矢量差(例如,0:<0>、1:<10>、2:<110>等)。

参照图15,实际运动矢量(X)的值为2,候选1(A)的值为0,而候选2(B)的值为1/4。

(在不支持差分运动矢量精度的情况下)

由于A与X之间的距离(da)为8/4(9位),并且B与X之间的距离(db)为7/4(8位),因此就位量生成而言,预测候选可以选择为B。

(在支持运动矢量差精度的情况下)

由于da是8/4,可以生成1个像素单位精度(2位)和2/1差信息(3位),因此总共可以生成5位。另一方面,由于db是7/4,可以生成1/4像素单位精度(1位)和7/4差信息(8位),因此总共可以生成9位。就位量生成而言,预测候选可以选择为A。

如以上示例中那样,如果不支持运动矢量差精度,则从目标块的运动矢量选择具有短距离间隔的候选作为预测候选可能是有利的。如果支持,则除了距目标块的运动矢量的距离间隔之外,基于根据精度信息生成的信息量,选择为预测候选可能是重要的。

图16是根据本发明的实施方式的用于目标块的运动矢量预测候选和运动矢量的示例图。在下文中,假设支持运动矢量差精度。

由于da为33/4,可以生成1/4像素单位精度(1位)和33/4差信息(34位),因此总共可以生成35位。另一方面,由于db是21/4,可以生成1/4像素单位精度(1位)和21/4差信息(22位),因此总共可以生成23位。就位量生成而言,预测候选可以选择为B。

图17是根据本发明的实施方式的用于目标块的运动矢量预测候选和运动矢量的示例图。在下文中,假设支持运动矢量差精度并且支持调整偏移信息。

在该示例中,假设调整偏移具有0和+1候选,并且指示调整偏移是否已被应用的标志(1位)和偏移选择信息(1位)被生成。

参照图17,A1和B1可以是基于预测候选索引而获得的运动矢量预测值,而A2和B2可以是通过用调整偏移对A1和B1进行修改而获得的新的运动矢量预测值。假设A1、A2、B1、B2与X之间的距离分别为da1、da2、db1、db2。

(1)由于da1是33/4,可以生成1/4像素单位精度(1位)、偏移应用标志(1位)、偏移选择信息(1位)和33/4差信息(34位),因此总共可以生成37位。

(2)由于da2是32/4,可以生成4像素单位精度(2位)、偏移应用标志(1位)、偏移选择信息(1位)和2/1差信息(3位),因此总共可以生成7位。

(3)由于db1是21/4,可以生成1/4像素单位精度(1位)、偏移应用标志(1位)、偏移选择信息(1位)和21/4差信息(22位),因此总共可以生成25位。

(4)由于db2是20/4,可以生成1像素单位精度(2位)、偏移应用标志(1位)、偏移选择信息(1位)和5/1差信息(6位),因此总共可以生成10位。

就位量生成而言,预测候选可以选择为A,并且偏移选择信息可以选择为索引1(在该示例中为+1)。

在以上示例中,当基于现有的运动矢量预测值得出运动矢量差时,可能存在由于矢量值的差值小而生成许多位的情况。以上问题可以通过调整运动矢量预测值来解决。

可以支持预定标志,以将调整偏移应用于运动矢量预测值。预定标志可以通过偏移应用标志、偏移选择信息等来配置。

(如果仅支持偏移量应用标志)

当偏移应用标志为0时,不将偏移应用于运动矢量预测值,并且当偏移应用标志为1时,可以将预定偏移与运动矢量预测值相加或相减。

(如果仅支持偏移选择信息)

基于偏移选择信息的偏移集可以与运动矢量预测值相加或相减。

(如果支持偏移应用标志和偏移选择信息)

当偏移应用标志为0时,不将偏移应用于运动矢量预测值,并且当偏移应用标志为1时,基于偏移选择信息设置的偏移可以与运动矢量预测值相加或相减。在稍后描述的示例中假设该设置。

同时,偏移应用标志和偏移选择信息可以用作在某些情况下不必要地生成的信息。即,即使不应用偏移,但如果信息已经为零或基于最大精度信息来减少信息量,则与偏移相关的信息可能相当低效。因此,有必要支持根据预定条件隐式地生成的设置,而不是在与偏移相关的信息总是显式地生成时。

接下来,假设与运动相关的编码序列(运动矢量差重构->运动矢量差精度获取)。在该示例中,假设在x和y分量中的至少一个不为零时,支持运动矢量差精度。

在运动矢量差不为0时,可以选择{1/4,1/2,1,4}像素单位之一以用于运动矢量差精度。

如果选择信息属于预定类别,则可以隐式地省略关于调整偏移的信息,如果不是,则可以显式地生成关于调整偏移的信息。

此处,类别可以包括差分运动矢量精度候选之一,可以用各种类别例如{1/4}、{1/4,1/2}、{1/4,1/2,1}进行配置。此处,最小精度可以包括在类别中。

例如,如果运动矢量差精度为1/4像素单位(例如,最小精度),则将偏移应用标志隐式地设置为0(即,不应用),并且如果运动矢量差精度不为1/4像素,则显式地生成偏移应用标志,并且如果偏移应用标志为1(即,偏移),则可以生成偏移选择信息。

可替选地,当运动矢量差精度为4像素单位(例如,最大精度)时,显式地生成偏移应用标志,并且当偏移应用标志为1时,可以生成偏移选择信息。可替选地,当运动矢量差精度不是4像素单位时,可以将偏移信息隐式地设置为0。

以上示例假设:当运动矢量差指示最小精度时隐式地省略与偏移相关的信息,并且当运动矢量差指示最大精度时显式地生成与偏移相关的信息,但不限于此。

图18是示出根据本发明的实施方式的多个运动矢量预测值的布置的示例图。

通过上述示例,已经描述了关于在构造运动信息预测候选组时的冗余检查的部分。此处,冗余意味着运动信息是相同的,并且上面已经描述了如果至少一个运动矢量的分量不同,则可以确定不存在冗余。

通过冗余检查处理,针对运动矢量预测值的多个候选可以彼此不交叠。然而,当多个候选分量元素非常相似(即,每个候选的x或y分量存在于预定范围内,并且该预定范围的宽度或高度是1、2或更大的整数。或者可以基于偏移信息来设置范围)时,运动矢量预测值和经偏移修改的运动矢量预测值可以交叠。为此各种设置是可行的。

作为示例(C1),在构造运动信息预测候选组的步骤中,当新候选不与已经包括的候选交叠时,可以将新候选包括在候选组中。也就是说,如果仅通过与先前描述相同的候选本身的比较而不交叠,则可以是可以包括在候选组中的配置。

作为示例(C2),如果新候选和通过在此基础上加上偏移而获得的候选(group_A)和已经包括的候选和通过在此基础上加上偏移而获得的候选(group_B)无预定数目交叠,它可以包括在候选组中。预定数目可以是0、1或更大的整数。如果预定数目是0,即使一个被交叠,可以不将对应的新候选包括在候选组中。可替选地,(C3),可以将预定偏移(这是与调整偏移不同的概念)添加至要包括在候选组中的新候选,并且该偏移可以是使得group_A能够被配置为不与group_B交叠的值。

参照图18,可以是属于类别A、B、C、D的多个运动矢量(在该示例中,AX、BX、CX、DX。X是1和2。例如,A1是A2之前的候选组中包括的候选)满足非交叠条件(如果候选运动矢量的任何一个分量不同)的情况。

在该示例中,假设分别对x和y分量支持-1、0、1,并且经偏移修改的运动矢量预测值在图中可以表示为*。此外,虚线(矩形)表示如下范围(例如,group_A、group_B等),其可以通过在预定运动矢量预测值的基础上加上偏移而获得。

在类别A的情况下,它可以对应于A1和A2不交叠且group_A1和group_A2不交叠的情况。

在类别B、C、D的情况下,它可以对应于其中B1/C1/D1和B2/C2/D2不交叠并且group_B1/C1/D1和group_B2/C2/D2部分交叠的情况。

此处,在类别B的情况下,它可以是在不采取任何特殊动作的情况下构造候选组的示例(C1)。

此处,在类别C的情况下,可以是以下配置:在该配置中,在冗余检查步骤中确定C2具有冗余,并且将下一优先级的C3包括在候选组中(C2)。

此处,在类别D的情况下,可以是以下情况:其中,在冗余检查步骤中确定D2具有冗余,并且修改D2使得group_D2不与group_D1(即D3。D3不是在候选组构造优先级中存在的运动矢量)交叠(C3)。

在各种类别之中,可以将其应用于构造预测模式候选组的设置,或者可以应用除以上这些提及的方法之外的各种方法。

图19是示出根据本发明的实施方式的在合并模式下的运动信息编码的流程图。

可以生成目标块的运动信息预测候选列表(S1900)。上述合并模式候选组可以意味着运动信息预测候选列表,并且将省略其详细描述。

可以从运动信息预测候选列表中选择目标块的预测候选索引(S1910)。可以基于根据从候选列表中的候选索引获得的运动信息来得出目标块的运动矢量预测值。如果可以得出一个预定运动信息预测值,则可以省略选择预测候选索引和索引信息的过程。

可以得出针对运动矢量预测值的调整偏移(S1920)。偏移可以是与运动矢量预测值的x或y分量相加或相减的值。偏移可以仅支持x或y分量之一,或者可以支持x和y分量两者。

由于该处理中的调整偏移可以与以上调整偏移相同或相似,因此省略详细描述,并且稍后将描述差异的一部分。

假设运动矢量预测值为(pmv_x,pmv_y),并且调整偏移为offset_x和offset_y,则运动矢量预测值可以被调整(或获得)为(pmv_x+offset_x,pmv_y+offset_y)。

此处,offset_x和offset_y的绝对值可以分别是诸如0、1、2、4、8、16、32、64、128等的整数,并且可以具有符号信息被一起考虑的值。此外,offset_x和offset_y可以基于预定精度来确定。预定精度可以以1/16、1/8、1/4、1/2、1像素为单位确定。

例如,如果运动矢量精度为1/4像素单位,则可以得出运动矢量精度为组合有绝对值和符号信息的0、1/4、-1/4、1/2、-1/2、1、-1、2,-2等。

此处,offset_x和offset_y可以分别是a和b资源(resource),并且a和b可以是诸如0、1、2、4、8、16、32等的整数。a和b可以具有固定值或可以具有可变值。此外,a和b可以具有相同或不相等的值。

是否支持针对运动矢量预测值的调整偏移可以以诸如序列、图片、子图片、切片、图块、区块等的单位显式地支持,或者可以根据编码设置隐式地确定。另外,可以根据编码设置来确定调整偏移的设置(例如,值的范围、数目等)。

考虑到编码元素例如图像类型、颜色分量、目标块的状态信息、运动模型选择信息(例如,是否为平移运动模型)、参考图片(例如,是否为当前图片)等中的至少一个,可以确定编码设置。

例如,可以根据块的大小来确定是否支持调整偏移和偏移设置。在这种情况下,可以通过第一阈值大小(最小值)或第二阈值大小(最大值)来确定块的大小,并且每个阈值大小可以表示为具有块的宽度(W)和高度(H)的W、H、W x H和W*H。在第一阈值大小的情况下,W和H可以是4、8、16或更大的整数,并且W*H可以是16、32、64或更大的整数。在第二阈值大小的情况下,W和H可以是16、32、64或更大的整数,并且W*H可以是64、128、256或更大的整数。该范围可以由第一阈值大小或第二阈值大小之一来确定,或者可以使用它们两者来确定。

在这种情况下,阈值大小可以是固定的,或者可以根据图像(例如,图像类型等)自适应。在这种情况下,可以基于最小编码块、最小预测块、最小变换块的大小来设置第一阈值大小,并且可以基于最大编码块、最大预测块、最大变换块的大小来设置第二阈值大小。

此外,调整偏移可以应用于运动信息预测候选组中包括的所有候选,或者可以仅应用于某些候选。在稍后描述的示例中,假设可以应用候选组中包括的所有候选,但是可以从0、1、或2至最大候选数之间的数中选择要应用调整偏移的候选。

可以支持用于将调整偏移应用于运动矢量预测值的预定标志。可以通过偏移应用标志、偏移绝对值信息、偏移符号信息等来配置预定标志。

如果不支持调整偏移,则可以省略该处理和调整偏移信息。

可以通过运动矢量预测值来重构目标块的运动矢量(S1930)。可以基于预测候选索引来获得除了运动矢量之外的运动信息(例如,参考图片、参考方向等)。

配置和顺序不限于此,而是可以进行各种改变。上面已经通过竞争模式的各种示例描述了在合并模式下用于支持调整偏移的背景描述,并且因此将省略其详细描述。

本公开内容的方法可以被实现为可由各种计算机装置执行并且被存储在计算机可读介质中的程序指令。该计算机可读介质可以单独地或组合地包括程序指令、数据文件和数据结构。记录在计算机可读介质上的程序指令可以针对本公开内容而专门设计,或者对于计算机软件领域的技术人员是已知的,并且因此是可用的。

该计算机可读介质可以包括特别适于存储和执行程序指令的硬件装置,例如只读存储器(ROM)、随机存取存储器(RAM)、闪存等。程序指令可以包括由编译器产生的机器语言代码或可以在计算机中由解释器执行的高级语言代码。上述硬件装置可以被配置成作为一个或更多个软件模块进行操作,以执行根据本公开内容的操作,并且反之亦然。

此外,可以以其配置或功能的全部或部分组合或分离来实现上述方法或设备。

尽管以上已经参考本公开内容的优选实施方式描述了本公开内容,但是本领域技术人员将理解,可以在不脱离本公开内容的范围和精神的情况下对本公开内容进行各种修改和变型。

工业适用性

本发明可以用于对视频信号进行编码/解码。

相关技术
  • 动态图像编码装置、动态图像解码装置、动态图像编码方法、动态图像解码方法、动态图像编码程序、动态图像解码程序、以及动态图像编码解码系统
  • 图像编码装置、图像解码装置、图像编码方法、图像解码方法、图像编码程序、图像解码程序、记录图像编码程序的记录媒体、记录图像解码程序的记录媒体
技术分类

06120112752665