用于视频编解码的优化分割结构的方法和装置与流程

文档序号:22627511发布日期:2020-10-23 19:36阅读:182来源:国知局
用于视频编解码的优化分割结构的方法和装置与流程

【交叉引用】

本申请要求2018.3.14提交的美国临时专利申请(申请号62/642661)、2018.3.26提交的美国临时专利申请(申请号62/647910)、2018.3.26提交的美国临时专利申请(申请号62/647914)、2018.3.26提交的美国临时专利申请(申请号62/647917)、2018.3.30提交的美国临时专利申请(申请号62/664382)的优先权。上述美国临时专利申请的全部内容也一并引用于此。

【技术领域】

本发明是有关于使用灵活块分割类型和/或帧间模式的视频编解码,特别是有关于一种透过在满足特定测试条件时限制编码树分割来降低复杂性的方法。在另一方面,如果满足某个测试条件,则减少了帧间(inter)工具的复杂性。



背景技术:

高效视频编码(highefficiencyvideocoding,hevc)标准是在itu-t视频编码专家组(vceg)和iso/iec运动图像专家组(mpeg)标准化组织的联合视频项目下开发的,并且高效视频编码与视频编码联合协作组(jct-vc)具有合作关系。在hevc中,一个切片被分割为多个编码树单元(codingtreeunits,ctu)。在主配置文件中,ctu的最小和最大尺寸由序列参数集(sequenceparameterset,sps)中的语法元素指定。允许的ctu尺寸可以是8x8、16x16、32x32或64x64。对于每个切片,依据光栅扫描顺序处理切帧内切片的ctu。

ctu被进一步分割为多个编码单元(codingunit,cu)以适应各种局部特性。表示为编码树的四叉树,用于将ctu分割为多个cu。令ctu尺寸为mxm,其中m是64、32或16的值中的一个。ctu可以是单个cu(即,没有分割)或者可以分成四个相同尺寸的较小单元(即,每个的尺寸为m/2xm/2),对应于编码树的节点。如果单元是编码树的叶节点,则单元变为cu。否则,可以迭代四叉树分割过程,直到节点的尺寸达到序列参数集(sequenceparameterset,sps)中指定的最小允许cu尺寸。该表示导致由图1中的编码树(也称为分割树结构)120指定的递归结构。图1中示出了ctu分割110,其中实线指示cu边界。使用帧间(时间)或帧内(空间)预测来编码图像区域的决策是在cu层进行的。由于最小cu尺寸可以是8x8,因此用于在不同基本预测类型之间切换的最小间隔尺寸是8x8。

此外,依据hevc,可以将每个cu分割为一个或多个预测单元(predictionunit,pu)。与cu耦合,pu用作共享预测信息的基本代表块。在每个pu内部,应用相同的预测过程,并且基于pu将相关信息发送到解码器。可以依据pu分割类型,将cu分成一个,两个或四个pu。hevc定义了用于将cu分成pu的八种形状,如图2所示,包括2nx2n,2nxn,nx2n,nxn,2nxnu,2nxnd,nlx2n和nrx2n分割类型。与cu不同,pu可以仅依据hevc分割一次。第二行中所示的分割对应于不对称分割,其中两个分割部分具有不同的尺寸。

在透过基于pu分割类型的预测过程获得残余块之后,可以依据另一种四叉树结构将cu的预测残差分割为变换单元(tu),该四叉树结构类似于如图1所示的cu的编码树。实线表示cu边界,虚线表示tu边界。tu是具有用于应用整数变换和量化的残差或变换系数的基本代表性块。对于每个tu,应用具有与tu相同尺寸的一个整数变换以获得残差系数。在以tu为基础量化之后,将这些系数发送到解码器。

术语编码树块(codingtreeblock,ctb)、编码块(codingblock,cb)、预测块(predictionblock,pb)和变换块(ttansformblock,tb)被定义为指定与ctu、cu、pu和tu分别相关联的一个颜色分量的2-d样本阵列。因此,ctu由一个亮度ctb、两个色度ctb和相关的语法元素组成。类似的关系同样适应于cu、pu和tu。树分割通常同时应用于亮度和色度,但是当达到色度的某些最小尺寸时,存在例外。

或者,在jctvc-p1005(d.flynn等人,“hevcrangeextensionsdraft6”,itu-tsg16wp3和iso/iecjtc1/sc29/wg11视频编码联合合作团队(jct-vc),第16次会议:sanjose,us,2014.1.9-17,文档:jctvc-p1005)中所提出的二叉树分割结构中,如图3所示,可以使用各种二元分割类型将块递归地分割成两个较小的块。如图3的前两个分割所示,最有效和最简单的是对称水平分割和对称垂直分割。对于尺寸为m×n的给定块,发送一个标志以指示给定块是否被分成两个较小的块。如果是,则发送另一语法元素以指示使用哪种分割类型。如果使用水平分割,则将给定块分成两个尺寸为m×n/2的块。如果使用垂直分割,则将给定块分成两个尺寸为m/2×n的块。可以迭代二叉树分割过程,直到分割块的尺寸(宽度或高度)达到最小允许块尺寸(宽度或高度)为止。可以在诸如sps的高级语法中定义最小允许块尺寸。由于二叉树具有两种分割类型(即水平和垂直),因此应指示最小允许块宽度和高度。当分割将导致块高度小于指示的最小值时,隐含地暗示非水平分割。当分割将导致块宽度小于指示的最小值时,隐含地暗示非垂直分割。图4示出了块分割410及其对应的二进制树420的示例。在二叉树的每个分割节点(即,非叶节点)中,使用一个标志来指示使用哪种分割类型(水平或垂直),其中0表示水平分割,1表示垂直分割。

二进制树结构可用于将图像区域分割为多个较小的块,诸如将切片分割为ctu,将ctu分割为cu,将cu分割为pu,或将cu分割为tu,等等。二叉树可以用于将ctu分割为cu,其中二叉树的根节点是ctu,二叉树的叶节点是cu。可以透过预测和变换编解码来进一步处理叶节点。为了简化,不存在从cu到pu或从cu到tu的进一步分割,这意味着cu等于pu并且pu等于tu。因此,换句话说,二叉树的叶节点是用于预测和变换编解码的基本单元。

二叉树结构比四叉树结构更灵活,因为可以支持更多的分割形状,这也是编解码效率改进的来源。但是,编解码复杂度也会增加,以便选择最佳的分割形状。为了平衡复杂性和编解码效率,已经公开了一种组合四叉树和二叉树结构的方法,也称为四叉树加二叉树(quadtreeplusbinarytree,qtbt)结构。依据qtbt结构,首先透过四叉树结构分割块,并且可以迭代四叉树分割,直到分割块的尺寸达到最小允许四叉树叶节点尺寸。如果叶四叉树块不大于最大允许二叉树根节点尺寸,则可以透过二叉树结构进一步分割,并且可以迭代二叉树分割,直到分割块的尺寸(宽度或高度)达到最小允许二叉树叶节点尺寸(宽度或高度)或二叉树深度达到最大允许二叉树深度。在qtbt结构中,允许的最小四叉树叶节点尺寸,最大允许二叉树根节点尺寸,最小允许二叉树叶节点宽度和高度以及最大允许二叉树深度可以在高级语法中指示,例如在sps。图5示出了块分割510及其对应的qtbt520的示例。实线表示四叉树分割,虚线表示二叉树分割。在二叉树的每个分割节点(即,非叶节点)中,一个标志指示使用哪种分割类型(水平或垂直),0可以指示水平分割,1可以指示垂直分割。

上述qtbt结构可用于将图像区域(例如,切片、ctu或cu)分割成多个较小的块,例如将切片分割为ctu,将ctu分割为cu,将cu分割为pu,或将cu分割为多个较小的tu等。例如,qtbt可以用于将ctu分割为cu,其中qtbt的根节点是ctu,其透过qtbt结构分割为多个cu,并且cu透过预测和变换编解码进一步处理。为了简化,不存在从cu到pu或从cu到tu的进一步分割。这意味着cu等于pu并且pu等于tu。因此,换句话说,qtbt结构的叶节点是用于预测和变换的基本单元。

对于i切片,qtbt树结构通常应用亮度/色度单独编码。例如,qtbt树结构分别应用于切片i(i-slice)的亮度和色度分量,并且同时应用于p-和b-切片的亮度和色度(除非达到色度的某些最小尺寸)。换句话说,在切片i中,亮度ctb具有其qtbt结构的块分割,并且两个色度ctb具有另一个qtbt结构的块分割。在另一示例中,两个色度ctb还可以具有它们自己的qtbt结构块分割。

对于基于块的编解码,总是需要将图像分割成块(例如,cu,pu和tu)以用于编解码目的。如本领域所知,在应用块分割之前,可以将图像分割为较小的图像区域,例如切片、方块(tiles)、ctu行或ctu。将图像分割为块用于编解码目的的过程称为使用编码单元(cu)结构分割图像。用于生成hevc采用的cu、pu和tu的特定分割方法是采用编码单元(cu)结构的示例。qtbt树结构是编码单元(cu)结构的另一示例。

为了进一步支持更多分割形状以实现更灵活的分割,三叉树分割方法被设计为捕获位于块中心的对象,而四叉树和二叉树分割方法总是沿块中心分割。图6示出了垂直三叉树分割(610)和水平三叉树分割(620)。透过允许垂直或水平四分之一分割,三叉树分割方法可以提供沿块边界更快地定位小对象的能力。

多类型树(multi-type-tree,mtt)块分割透过在mtt的第二级中允许二叉树和三叉树(或也称为三叉树)分割方法来扩展qtbt中的两层树结构的概念。mtt中的两级树分别称为区域树(regiontree,rt)和预测树(predictiontree,pt)。第一层rt始终是四叉树(quad-tree,qt)分割,第二级pt可以是二叉树(binarytree,bt)分割或三叉树(tripletree,tt)分割。例如,首先透过rt对ctu进行分割,这是qt分割,并且每个rt叶节点可以进一步由pt分割,其是bt或tt分割。由pt分割的块可以进一步用pt分割,直到达到最大pt深度。例如,可以首先透过垂直bt分割来分割块以生成左子块和右子块,并且透过水平tt分割进一步分割左子块,同时透过水平bt分割进一步分割右子块。pt叶节点是用于预测和变换的基本编码单元,并且不会被进一步分割。

图7示出了mtt中的树型信令的示例。如图7所示,在节点710处检查rt分割是否用于分割块。发信号通知(signal)“1”以指示rt分割应用于当前块,如节点720所示。“0”被发信号通知表示rt分割未应用于当前块。在这种情况下,如节点730所示,检查bt分割或tt分割是否应用于当前块。如果bt分割和tt分割都不应用于当前块(即,“0”分支),则分割进程到达叶节点(如,没有分割),如节点740所示。如果bt分割或tt分割应用于块(即,“1”分支),则如节点750所示,系统将进一步发信号以指示它是否是水平分割或垂直分割。如节点760所示,用信号通知“0”以指示bt/tt分割是水平的。如节点770所示,用信号通知“1”以指示bt/tt分割是垂直的。在这种情况下,附加比特被发送以指示它是由节点780指示的bt分割(即,“0”分支)还是由节点790指示的tt分割(即,“1”分支)。类似的信令也应用于节点760处的水平bt/tt分割的情况。

在构建mtt块分割之后,mtt叶节点是cu,其用于预测和变换而无需任何进一步的分割。在mtt中,所提出的树结构在切片i中针对亮度和色度单独编码,并且同时应用于切片p和切片b中的亮度和色度(除了在达到色度的某些最小尺寸时)。也就是说,在切片i中,亮度ctb具有一个qtbt结构的块分割,并且两个色度ctb具有另一个qtbt结构的块分割。

虽然mtt能够透过自适应地分割块用于预测和变换,来改善性能,但是希望在可能的情况下进一步改善性能以便提升整体效率。

合并模式

为了提高hevc中的运动矢量(motionvector,mv)编码的编码效率,hevc具有跳过和合并模式。跳过模式和合并模式从空间相邻块(空间候选)或时间同位块(时间候选)获得运动信息。当pu是跳过模式和合并模式时,不编码运动信息。相反,仅编码所选候选的索引。对于跳过模式,残差信号被强制为零而不进行编码。在hevc中,如果特定块被编码为跳过模式或合并模式,则候选索引被发送以指示候选集中的哪个候选用于合并。每个合并的pu重用所选候选的mv,预测方向和参考图像索引。

对于hevc参考软件hm-4.0中的合并模式,如图8所示,从a0、a1、b0和b1导出多达四个空间mv候选,并且从tbr或tctr导出一个时间mv候选(首先使用tbr,如果tbr不可用,则使用tctr代替)。注意,如果四个空间mv候选中的任何一个不可用,则位置b2然后用于导出mv候选作为替代。在四个空间mv候选和一个时间mv候选的推导过程之后,应用去除冗余(修剪(pruning))以移除冗余mv候选。如果在去除冗余(修剪)之后,可用mv候选的数量小于5,则三种类型的附加候选被推导并将其添加到候选集合(即,候选列表)。编码器基于速率-失真优化(rdo)策略选择候选集合中的一个最终候选用于跳过或合并模式,并将索引发送到解码器。

在下文中,为方便起见,跳过模式和合并模式都可以称为“合并模式”。换句话说,此后的本公开中的“合并模式”可以表示跳过和合并模式。

合并模式和amvp模式

为了实现hevc中的混合编解码架构的最佳编解码效率,对于每个pu帧间存在两种预测模式(即,帧内预测和帧间预测)。对于帧内预测模式,空间相邻重建像素可用于生成方向预测。hevc最多有35个方向。对于帧间预测模式,时间重建参考帧可用于生成运动补偿预测。有三种不同的模式,包括跳过模式,合并模式和帧间高级运动矢量预测(advancedmotionvectorprediction,amvp)模式。

当以帧间amvp模式编码pu时,利用可与运动矢量预测(mvp)一起使用的传输运动矢量差(mvd)来执行运动补偿预测,以用于导出运动矢量(mv)。为了在帧间amvp模式中确定mvp,使用高级运动矢量预测(amvp)方案来选择包括两个空间mvp和一个时间mvp的amvp候选集中的运动矢量预测。因此,在amvp模式中,需要对mvp的mvp索引和相应的mvd进行编码和传输。另外,用于指定双向预测中的预测方向的间预测方向,以及列表0(即,l0)和列表1(即,l1)的单向预测,以及每个列表的参考帧索引也应当被编码和传输。

当以跳过或合并模式编码pu时,除了所选候选的合并索引之外,不发送运动信息,因为跳过模式和合并模式利用运动推断方法。由于跳过模式和合并模式的运动矢量差(mvd)为零,因此跳过模式或合并模式编码的块的mv与运动矢量预测(mvp)相同(即,mv=mvp+mvd=mvp)。因此,跳过模式或合并模式编码的块从同位图像中的空间相邻块(空间候选)或时间块(时间候选)获得运动信息。同位图像是列表0或列表1中的第一参考图像,其在切片报头中被发送。在跳过pu的情况下,也省略残差信号。为了确定跳过模式和合并模式的合并索引,合并方案用于在包含四个空间mvp和一个时间mvp的合并候选集中选择运动矢量预测。

图8示出了用于导出amvp和合并方案的空间和时间mvp的相邻pu。在amvp中,左侧mvp是来自a0,a1的第一个可用的mvp,顶级(top)mvp是来自b0、b1、b2的第一个可用的mvp,并且时间mvp是来自tbr或tctr的第一个可用的mvp(首先使用tbr,如果tbr不可用,则使用tctr代替)。如果左侧mvp不可用且顶部mvp未缩放mvp,如果在b0、b1和b2中存在缩放的mvp,则可以导出第二顶部mvp。在hevc中,amvp的mvp的列表尺寸是2。因此,在两个空间mvp和一个时间mvp的推导过程之后,仅前两个mvp可以包括在mvp列表中。如果在去除冗余之后,可用mvp的数量小于2,则将零矢量候选添加到候选列表中。

对于跳过模式和合并模式,如图8所示,从a0、a1、b0和b1导出多达四个空间合并索引,并且从tbr或tctr导出一个时间合并索引(首先使用tbr,如果tbr不可用,则使用tctr代替)。请注意,如果四个空间合并索引中的任何一个不可用,则使用位置b2来导出合并索引作为替代。在四个空间合并索引和一个时间合并索引的推导过程之后,应用删除冗余来删除冗余的合并索引。如果在删除冗余之后,可用的合并索引的数量小于5,则导出三种类型的附加候选并将其添加到候选列表中。

透过使用原始合并候选来创建附加的双向预测合并候选。附加的候选分为三种候选类型:

1.组合双向预测合并候选(候选类型1)

2.比例双向预测合并候选(候选类型2)

3.零矢量合并/amvp候选(候选类型3)

在候选类型1中,透过组合原始合并候选来创建组合的双向预测合并候选。特别地,原始候选中的两个候选俱有mvl0(列表0中的运动矢量)和refidxl0(列表0中的参考图像索引)或mvl1(列表1中的运动矢量)和refidxl1(列表1中的参考图像索引),用于创建双向预测合并候选。图9示出了组合的双向预测合并候选的推导过程的示例。候选组910对应于原始候选列表,其包括l0中的mvl0_a,ref0(931)和l1中的mvl1_b,ref(932)。可以透过组合l0和l1中的候选来形成双向预测mvp933。

在候选类型2中,透过缩放原始合并候选来创建缩放的双向预测合并候选。具体地,原始候选具有mvlx(列表x中的运动矢量)和refidxlx(列表x中的参考图像索引),x可以是0或1。原始候选中的一个候选用于创建双向预测合并候选。例如,一个候选a是具有mvl0_a和ref0的列表0单向预测,首先将ref0复制到列表1中的参考索引ref0′。之后,透过用ref0和ref0′缩放mvl0_a来计算mvl0′_a。然后,创建在列表0中具有mvl0_a和ref0以及在列表1中具有mvl0′_a和ref0′的双向预测合并候选,并将其添加到合并候选列表中。在图10中示出了缩放的双向预测合并候选的导出过程的示例,其中候选列表1010对应于原始候选列表,并且候选列表1020对应于包括两个生成的双向预测mvp的扩展候选列表。

在候选类型3中,透过组合可以被参考的零矢量和参考索引来创建零矢量合并/amvp候选。图11a示出了用于添加零矢量合并候选的示例,其中候选列表1110对应于原始合并候选列表,并且候选列表1120对应于透过添加零矢量候选的扩展合并候选列表。图11b示出了用于添加零矢量amvp候选的示例,其中透过添加零矢量候选,候选列表1130(l0)和候选列表1132(l1)对应于原始amvp候选列表,并且候选列表1140(l0)和1142(l1)对应于扩展的amvp候选。如果零矢量候选不重复,则将其添加到合并/amvp候选列表中。

pmvd模式或fruc模式

基于模式的运动矢量推导(pattern-basedmotionvectorderivation,pmvd)模式(或称为模式匹配运动矢量推导(patternmatchedmotionvectorderivation,pmmvd)或帧速率上转换(frame-rateup-conversion,fruc)模式)是jvet测试模型3(联合)中公开的编码工具(jointvideoexplorationteam(jvet)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11:3rdmeeting:geneva,ch,26may-1june2016.documenttitle:algorithmdescriptionofjointexplorationtestmodel3),可以使用l形模板或双侧模板来细化合并模式的mv并保存mvd的比特。



技术实现要素:

依据本发明的实施方式,提出了一种用于视频编码系统或视频解码系统的视频编码的方法和装置。依据该方法,使用包括三叉树分割和至少一个其他类型分割的子树分割的一个或多个阶段将当前块分割为多个最终子块,其中如果与当前子块相关联的当前树深度大于第一阈值,并且该第一阈值是大于或等于1的整数,则从子树分割中排除该三叉树分割。

至少一个其他类型分割包括四叉树分割、二叉树分割,或其组合。当前块可以对应于一个编码树单元(ctb),并且多个最终子块中的每个对应于一个编码单元(codingunit,cu)、预测单元(predictionunit,pu)或变换单元(predictionunit,tu)。可以在解码器侧预先确定或推断第一阈值。

如果与当前子块相关联的当前子树深度大于第一阈值,则用于指示是否为当前子块选择该三叉树分割的指示符被选择。

第一阈值对应于最大允许子树分割深度减去第二阈值,其中,该第二阈值小于该最大允许子树分割深度且大于或等于的0。第二阈值的值取决于当前图像是在帧内图像内还是帧间图像内。在视频参数集(videoparameterset,vps)、序列参数集(sequenceparameterset,sps)、图像参数集(pictureparameterset,pps)、切片头、编码单元,或其组合中,该第二阈值被发送。

依据本发明的实施方式,提出了一种使用帧间模式的视频编码的方法和装置。如果满足该测试条件,则使用从修改的帧间工具组中选择的当前帧间模式对该当前块进行编码或在解码器侧对当前块进行解码,其中,透过自初始的帧间工具组移除一个或多个第一帧间工具、用一个或多个复杂性降低的帧间工具来代替一个或多个第二帧间工具,或其组合,而自该初始的帧间工具组导出修改的帧间工具组。

一个或多个第一帧间工具选自一个组合,该组合包括高级运动矢量预测(advancedmotionvectorprediction,amvp)、合并、模式匹配运动矢量推导(pattemmatchedmotionvectorderivation,pmvd)、局部照明补偿(lic)、仿射编码、邻近导出的预测偏移(npo)、重迭块运动补偿(overlapblockmotioncompensation,obmc),或其组合。

是否满足测试条件取决于与当前块相关联的编码树深度。是否满足测试条件取决于当前块的块尺寸。是否满足测试条件也可取决于与当前块相关联的编码树深度和当前块的块尺寸。

在一个实施例中,如果与当前块相关联的编码树深度等于预定义值并且当前块的块尺寸大于或等于阈值,则测试条件被满足。

在一个实施例中,当从初始的帧间工具组移除目标第一帧间工具时,与目标第一帧间工具相关联的语法元素未在编码器侧被发送或未在解码器侧被解析以用于当前块。在另一实施例中,当从初始的帧间工具组中移除该一个或多个第一帧间工具时,当前块透过自候选列表排除一个或多个第一帧间工具,而使用具有在该候选列表中候选数量减少的候选列表。

依据本发明的实施方式,提出了一种使用帧间模式的视频编码的方法和装置。当满足测试条件时,使用包括一个或多个多类型分割的受限编码树结构,将当前块分割为多个最终子块,其中受限编码树结构终止具有编码树分割深度等于阈值的目标子块的编码树分割。

是否满足测试条件取决于当前块的块尺寸。是否满足测试条件取决于当前切片的时间层,其中当前切片包括当前块。

时间层指的是与图像的时间结构相关联的层(例如,图像i、图像b和图像p)。是否满足测试条件可取决于当前块的最佳预测模式。是否满足测试条件可取决于当前块的宽度和高度的比率。是否满足测试条件可取决于在小于阈值的第二编码树分割深度处对目标子块的先前子块的分割决策。是否满足测试条件还可以取决于当前切片的量化参数,其中当前切片包括当前块。

如果编码树分割深度等于阈值,则用于指示目标子块的分割决策的语法元素。

【附图说明】

图1示出了使用四叉树结构将编码树单元(codingtreeunit,ctu)分割为编码单元(codingunits,cu)的块分割的示例。

图2示出了依据高效视频编码(hevc)的非对称运动分割(asymmetricmotionpartition,amp),其中amp定义了用于将cu分成pu的八种形状。

图3示出了二叉树分割结构使用的各种二进制分割类型的示例,其中可以使用分割类型将块递归地分割成两个较小的块。

图4示出了块分割及其对应的二叉树的示例,其中在二叉树的每个分割节点(即,非叶节点)中,一种语法用于指示哪种分割类型(水平或垂直)被使用,其中0表示水平分割,1表示垂直分割。

图5示出了块分割及其对应的四叉树加二叉树结构(quad-treeplusbinarytreestructure,qtbt)的示例,其中实线指示四叉树分割,虚线指示二叉树分割。

图6示出了垂直三叉树分割和水平三叉树分割。

图7示出了多类型树(mtt)块分割中的树型信令的示例。

图8示出了用于导出amvp和合并方案的空间和时间mvp的相邻pu。

图9示出了组合的双向预测合并候选的推导过程的示例。

图10示出了缩放的双向预测合并候选的导出过程的示例,其中左侧的候选列表对应于原始候选列表,右侧的候选列表对应于包括两个生成双向预测mvp的扩展候选列表。

图11a示出了添加零矢量合并候选的示例,其中左侧的候选列表对应于原始合并候选列表,右侧的候选列表对应于透过添加零矢量候选得到的扩展的合并候选列表。

图11b示出了用于添加零矢量amvp候选的示例,其中顶部的候选列表对应于原始amvp候选列表(左侧的l0和右侧的l1),并且底部的候选列表对应于透过添加零矢量候选得到的扩展amvp候选列表(左侧为l0,右侧为l1)。

图12示出了mtt的分层分割决策树的一个示例,其中最大pt深度等于3。

图13示出了mtt的分层分割决策树的一个示例,其具有基于图12中所示的mtt的分层分割决策树的所提出的禁止分割。

图14示出了mtt的分层分割决策树的一个示例,其具有基于图12中所示的mtt的分层分割决策树的所提出的禁止分割。

图15示出了基于图12中所示的mtt的分层分割决策树的具有禁止分割的mtt的分层分割决策树的一个示例。

图16a示出了禁止分割的示例,其中实线指示在先前分割层(例如,级别i)处的垂直bt分割,并且虚线指示在当前分割层(例如,等级i+1)的第一子块的垂直bt分割。

图16b示出了禁止分割的示例,其中实线指示在先前分割层(例如,级别i)处的水平bt分割,并且虚线指示在当前分割层(例如,等级i+1)的第一子块的水平bt分割。

图17示出了依据本发明实施例的自适应块分割的示例,其中当前cu由斜线填充区域标记,并且八个4×4相邻子cu由点填充区域标记。

图18a至图18e示出了与基于先前编码块的成本的累积成本和当前编码的子块的成本的当前分割类型相关联的分割成本评估的示例,其中图18a示出了仍在编码过程中的ctu,图18b至图18e分别示出了在深度3、2、1和0处的累积成本计算。

图19示出了依据本发明实施例的计算当前子cu的加权平均区域的示例,其中每个子cu尺寸是4×4。

图20示出了依据本发明实施例的具有对编码树分割的约束的示例性编码系统的流程图。

图21示出了依据本发明实施例的具有复杂度降低的帧间模式的示例性编码系统的流程图。

图22示出了依据本发明实施例的具有编码树分割约束的另一种示例性编解码系统的流程图。

【具体实施方式】

以下描述是实现本发明的最佳方案。进行该描述是为了说明本发明的一般原理,而不应被视为具有限制意义。透过参考所附权利要求较佳地确定本发明的范围。

在基于多类型树(mtt)块分割结构的视频编码中,由于更灵活的分割变得可用,因此编码效率已经显示出显著的改进。但是,mtt块分割会增加计算复杂性。期望开发用于在使用mtt时降低计算复杂度的方法。因此,公开了各种降低与mtt相关的计算复杂度的方法。

多类型树(mtt)块分割约束

为了减少发信号(signalling)的开销并改善多类型树(mtt)分割方法的性能,提出了约束块分割方法以避免冗余或降低复杂性。依据先前分割的分割类型或分割方向,所提出的约束块分割方法涉及透过禁止特定分割类型和分割方向来分割当前子块,从而修改编码或解码处理。

mtt块分割约束-方法1

在一个实施例中,如果当前分割是三叉树(ternarytree,tt)分割,则仅允许二叉树(binarytree,bt)分割用于分割子块(即,第一子块,中间子块或第三个子块)来自tt分割。以图6为例,将第一子块610a,中间子块610b和第三子块610c分别为自垂直tt分割610得到的子块,以及第一子块620a。中间子块620b和第三子块620c分别作为自水平tt分割620得到的。图12示出了mtt的分层分割决策树的示例,其中最大预测树(predictiontree,pt)深度等于3。图13示出了mtt的分层分割决策树的一个示例,其中提出的禁止分割是基于图12所示的mtt分层分割决策树作出的。如图13所示,当当前分割是tt1310时,仅允许bt1312(即,禁止或排除tt用于1312)。当当前分割是tt1320时,仅允许bt1322(即,禁止或排除tt用于1322)。

在另一实施例中,如果当前分割是tt分割,并且仅允许bt分割用于分割第一子块,则中间子块或第三子块由tt分割产生,由tt分割产生的第一子块,中间子块或第三子块的分割类型(bt或tt分割)可以不被发送,并且可以推断为bt分割。

mtt块分割约束-方法2

在一个实施例中,如果透过tt分割来分割当前分割,则仅允许bt分割用于分割来自tt分割的第一子块,中间子块或第三子块内的所有子块。图14示出了mtt的分层分割决策树,其中基于图12所示的mtt的分层分割决策树,提出了禁止分割。如图14所示,当当前分割是tt1410时,只有bt1412是允许(即,对于1412,禁止或排除tt)。对于bt1412,仅允许bt1414(即,对于1414,禁止或排除tt),因为bt1412是tt1410的子块,并且bt1414是bt1412的子块。换句话说,仅允许bt分割来分割由tt分割1410产生的子块1412内的所有子块1412和1414。当当前分割是tt1420时,仅允许bt1422(即,对于1422,禁止或排除tt)。

在另一实施例中,如果当前分割是tt分割,并且仅允许bt分割用于分割自tt分割产生的第一子块、中间子块或第三子块内的所有子块,则由tt分割产生的第一子块、中间子块或第三子块的分割类型(bt或tt分割)可以不被发送,并且可以推断为bt分割。

mtt块分割约束-方法3

在一个实施例中,如果当前分割是tt分割,则仅允许单层bt分割用于分割由tt分割产生的第一子块,中间子块或第三子块。图15示出了mtt的分层分割决策树的一个示例,其中提出的禁止分割是基于图12所示的mtt分层分割决策树作出的。如图15所示,当当前分割是tt1510时,仅允许bt1512(即,仅单层分割1512,此处的分割仅允许bt分割而非tt分割)。当当前分割是tt1520时,仅允许bt1522。

在另一个实施例中,如果当前分割是tt分割并且仅允许单层bt分割用于分割由tt分割产生的第一子块,则中间子块或第三子块,由tt分割产生的第一子块、中间子块或第三子块的分割类型(bt或tt分割)可以不被发送并且可以推断为bt分割。此外,可以不发送由bt分割产生的第一子块或第二块的分割决策(分割或非分割),并且可以推断为非分割情况。

mtt块分割约束-方法4

用于分割当前子块的禁止分割类型和分割方向不仅取决于先前分割层的分割类型和分割方向,还取决于分割类型、分割方向和当前子块的位置。

在一个实施例中,如果透过与母分割类型相关的第一分割类型和于母分割方向相同的第一分割方向,由bt分割的自母块分割得到的第一子块被进一步分割,则透过禁止第二子块被第一子块的第一分割类型和第一分割方向分割,而确定用于分割第二子块的第二子块分割类型和第二子块分割方向。

图16a示出了禁止分割的示例。图16a中的实线表示在先前分割层(例如层i)的垂直bt分割,虚线表示在当前分割层(例如层i+1)的第一子块的垂直bt分割。点划线表示在当前分割层(例如,层i+1)处的第二子块的垂直bt分割,其被禁止用于分割第二子块。禁止bt分割以进一步分割由母块中的bt分割得到的第二子块,因为得到的子块将与先前在先前分割层应用垂直tt分割,然后应用垂直bt分割以用于自当前分割层的tt分割得到的中间子块的结果完全相同。类似地,如图16b所示,禁用水平bt分割以进一步分割透过水平bt分割的第二子块。图16b中的实线表示在先前分割层(例如层i)的水平bt分割,以及虚线表示在当前分割层(例如层i+1)的第一子块的水平bt分割。点划线表示在当前分割层(例如,层i+1)处的第二子块的水平bt分割,其被禁止用于分割第二子块。

在一个实施例中,在发送当前分割类型的语法之前发送当前分割方向的语法的情况下,如果第二子块分割方向是水平分割,可以不发送第二子块分割类型,并且第二子块分割类型可以被推断为tt分割。透过水平bt分割来分割母块,并且透过水平bt分割进一步分割第一子块。类似地,如果当前分割方向是垂直分割,则不发送第二子块分割类型,并且第二子块分割类型可以被推断为tt分割。透过垂直bt分割来分割母块,并且透过垂直bt分割进一步分割第一子块。

在另一实施例中,在发送当前分割方向的语法之前发送当前分割类型的语法的情况下,如果第二子块分割方向是bt分割,可以不发送第二子块分割类型,并且第二子块分割类型可以被推断为垂直。透过水平bt分割来分割母块,并且透过水平bt分割进一步分割第一子块。类似地,如果第二子块分割类型是bt分割,则可以不发送第二子块分割方向,并且可以推断第二子块分割方向是水平分割。透过垂直bt分割来分割母块,并且透过垂直bt分割进一步分割第一子块。

mtt块分割约束-方法5

在子树分割期间,当当前子树深度等于或小于最大允许子树分割深度减去阈值n时,允许三叉树分割用于分割当前块。此外,阈值n是预定的并且可以在解码器侧推断。当当前子树分割深度大于最大允许子树分割深度减去阈值n时,不存在用于选择三叉树分割类型的指示符。

例如,当前子树分割深度为s且最大允许子树分割深度为m,则当s≤(m-n)时,允许三叉树分割分割当前块,其中m>n≥0。此外,如果当前子树分割深度大于(m-n),则不存在用于选择三叉树分割的指示符。

mtt块分割约束-方法6

在子树分割期间,当当前子树深度等于或小于最大允许子树分割深度减去阈值n时,允许三叉树分割用于分割当前块。此外,阈值n的设置可以依据切片类型、当前切片的颜色分量,或当前切片的时间层id或任何其他测试条件而变化(例如,这种变化可以透过依据切片类型,当前切片的颜色分量或当前切片的时间层id确定设置阈值n来实现)。此外,在解码器侧预先确定并推断出所有阈值,并且当当前子树分割深度大于最大允许子树分割深度减去相应阈值n时,不存在用于选择三叉树分割类型的指示符。

在另一示例中,阈值对于帧内切片(intra-slice)是n1,对于帧间切片(inter-slice)是n2。然后,假设当前子树分割深度为s,并且最大允许子树分割深度为m。如果当前切片是帧内切片,则当s≤(m-n1)时,允许三叉树分割用于分割当前块,并且如果s>(m-n1),则省略或不存在用于选择三叉树分割的指示符(例如,透过不发信号或不解析这样的指示符而省略或不存在)。类似地,如果当前切片是切帧间切片,则当s≤(m-n2)时,允许三叉树分割用于分割当前块,并且如果s>(m-n1),则省略或不存在用于选择三叉树分割的指示符(例如,透过不发信号或不解析这样的指示符而被省略或不存在)。

mtt块分割约束-方法7

在子树分割期间,当当前子树深度等于或小于最大允许子树分割深度减去阈值n时,允许三叉树分割用于分割当前块,并且n>0。可以在视频参数集(videoparameterset,vps)、序列参数集(sequenceparametersetm,sps)、图像参数集(pictureparameterset,pps)、切片报头、编码单元或其任何组合中,发送阈值n。例如,在sps中发送0表示n是1,在sps中发送1表示n是2,以此类推。此外,当当前子树分割深度大于最大允许子树分割深度减去阈值n时,可以省略或不存在用于选择三叉树分割类型的指示符(例如,透过不发信号或不解析这样的指示符而省略或不存在)。

在又一示例中,当前子树分割深度为s且最大允许子树分割深度为m,则当s≤(m-n)时,允许三叉树分割用于分割当前块其中,其中m>n>0。此外,如果当前子树分割深度大于(m-n),则可以省略或不存在用于选择三叉树分割的指示符(例如,透过不发信号或不解析这样的指示符而省略或不存在)。

mtt块分割约束-方法8

在子树分割期间,当当前子树深度等于或小于最大允许三叉树分割深度(maxttdepth)时,允许三叉树分割用于分割当前块。maxttdepth只能等于或小于子树分割深度。此外,可以在视频参数集(vps)、序列参数集(sps)、图像参数集(pps)、切片报头、编码单元或其任何组合发送maxttdepth。此外,当当前子树分割深度大于maxttdepth时,可以省略或不存在用于选择三叉树分割类型的指示符(例如,透过不发信号或不解析这样的指示符而省略或不存在)。

在又一示例中,当前子树分割深度为s,最大允许子树分割深度为m,并且maxttdepth为n。然后,当s≤(m-n)时,允许三叉树分割用于分割当前块,其中m≤n。此外,如果当前子树分割深度大于m,则可以省略或不存在用于选择三叉树分割的指示符(例如,透过不发信号或不解析这样的指示符而省略或不存在)。

可以在编码器和/或解码器中实现任何前述提出的方法。例如,任何所提出的方法可以在编码器的帧间/帧内/预测/变换模组中实现,和/或在解码器的逆变换/帧间/帧内/预测模组中实现。或者,任何所提出的方法可以实现为耦合到编码器的逆变换/帧间/帧内/预测模组和/或解码器的帧间/帧内/预测/变换模组的电路,以便提供帧间/帧内/预测/变换模组需要的信息。

与帧间模式相关联的复杂性降低

在本公开中,qt深度被定义为四叉树的深度。bt深度定义为二叉树(bt)的分割深度。tt深度定义为三叉树或三重树(tripletree)的分割深度。

ct深度被定义为二叉树(bt)或三叉树(tt)的分割深度。它是二叉树(bt)或三叉树(tt)分割的总数。换句话说,如果bt分割的总数是3,则编码树结构被bt分割3次。ct深度也可以是仅二叉树(bt)分割的数量。ct深度可以是仅三叉树(tt)分割的数量。视频编码器中的最大ct深度越大,编码复杂度开销越大。因此,希望降低计算复杂度。

方法1:跳过一些帧间模式

帧间模式包括amvp、合并(merge)模式、fruc模式或其他帧间预测模式或工具。有许多帧间编码工具,例如amvp、合并、fruc/pmvd、lic(局部光照补偿)、仿射编码、邻域导出预测偏移(neighboring-derivedpredictionoffset,npo)、重迭块运动补偿(overlapblockmotioncompensation,obmc)等。最初的帧间工具组可以从这些帧间编码工具中确定。

在所提出的方法中,如果满足某个条件(或被称为测试条件),则可以跳过或消除编码器侧(或编码器侧和解码器侧)上的一个或多个帧间模式(或工具)或某些帧间模式的一部分。这里“特定帧间模式的一部分”表示编码器侧的某个帧间模式的简化版本。例如,如果满足某个条件,则可以在编码器中跳过合并模式的部分过程。在这个例子中,不是在传统的rdo过程中检查max候选(max是合并候选的最大数量),简化的合并模式可以只有3个候选(合并候选0、1和2),而不是合并候选0,1,2,...,(max-1))。在另一示例中,如果满足特定条件,则可以在编码器中跳过fruc模式的部分过程。在这种情况下,代替包括双侧fruc和模板匹配fruc的常规fruc模式,简化的fruc模式可以仅具有双侧fruc。在又一个示例中,简化的fruc模式可以仅具有模板匹配fruc。

在所提出的方法中,如果满足某个条件(表示为cond_reduoff),则可以在编码器侧(或在编码器侧和解码器侧)跳过或消除一个或多个帧间模式(或工具)或某个帧间模式的一部分。在以下实施例中,术语“深度”可以表示ct深度或qt深度或bt深度或tt深度。

实施例1:当当前cu的深度等于n时,满足条件,其中n是预定值。

实施例2:当当前cu的深度大于阈值时,满足条件。

实施例3:当当前cu的深度小于阈值时,满足条件。

实施例4:当当前cu尺寸(cu尺寸=cu宽度*cu高度)大于阈值时,满足条件。

实施例5:当当前cu尺寸小于阈值时,满足条件。

实施例6:当当前cu尺寸的qp(量化控制信号)值大于阈值时,满足条件。

实施例7:当当前cu尺寸的qp(量化控制信号)值小于阈值时,满足条件。

实施例8:当当前cu的深度等于n并且当前cu尺寸大于阈值时,满足条件。

实施例9:当当前cu的深度等于n并且当前cu尺寸小于阈值时,满足条件。

实施例10:当当前cu的深度等于n并且当前cuqp大于阈值时,满足条件。

实施例11:当当前cu的深度等于n并且当前cuqp小于阈值时,满足条件。

实施例12:当当前cu的深度等于n并且当前cu时间层大于阈值时,满足条件。

实施例13:当当前cu的深度等于n并且当前cu时间层小于阈值时,满足条件。

实施例14:当当前cu的深度等于n并且当前cu纵横比(宽度/高度或高度/宽度)大于阈值时,满足条件。

实施例15:当当前cu的深度等于n并且当前cu纵横比小于阈值时,满足条件。

实施例16:当当前cu的母块模式(即,编码树分割的母块的模式)是跳过模式时,满足条件。

实施例17:当当前cu的母块模式(即,编码树分割的母块的模式)是某种特定模式时,满足条件。

实施例18:当当前cu纵横比(宽度/高度或高度/宽度)大于阈值时,满足条件。

实施例19:当当前cu纵横比小于阈值时,满足条件。

除了上面列出的实施例之外,用于关闭一些帧间工具的特定条件可以是所列实施例的组合。例如,可以组合实施例2和实施例4,并且组合条件是“当当前cu的深度大于阈值时”和/或“当当前cu尺寸(cu尺寸=cu宽度*cu高度)大于门槛“。

如果满足关闭某些帧间工具的特定条件,则可以关闭一些帧间工具和/或降低一些其他帧间工具的复杂性。例如,如果满足实施例14的条件,则可以关闭fruc模式,并且可以修改合并模式以仅具有2个候选,以透过减少合并模式的候选数量来降低合并模式的复杂度。在这种情况下,降低复杂度的合并模式被称为低复杂度合并模式。为方便起见,降低复杂度的帧间工具被称为低复杂度的帧间工具。在另一示例中,如果满足实施例15的条件,则可以将fruc模式简化为仅包括双边模式,并且可以修改合并模式以仅具有2个候选以降低合并模式的复杂度。在这种情况下,fruc被称为低复杂度furc。

在另一实施例中,如果满足用于关闭一些帧间工具的特定条件(cond_reduoff被断言),则可以依据编码器中的帧间工具b的rd成本来关闭帧间工具a。例如,如果amvprd成本低于阈值,则可以关闭fruc模式。在另一示例中,如果低复杂度fruc的rdo成本低于低复杂度amvp的rdo成本,则可以关闭fruc模式。

在另一实施例中,如果满足用于关闭一些帧间工具的特定条件,则除了关闭一些帧间工具和/或减少一些其他帧间工具之外,可以消除(或保存)相关语法元素,用于改善编码增益。例如,对于ct深度==3且cu尺寸>=4096的条件,关闭fruc模式和amvp模式。因此,对于具有“ct深度==3,并且cu尺寸>=4096”的条件的任何cu,可以完全消除合并模式和fruc模式的语法元素。在另一示例中,对于ct深度==3且cu尺寸>=4096的条件,合并模式被修改为仅具有2个候选。在这种情况下,可以修改传统方法中的合并索引的一元代码编码以减少合并索引的比特。

可以扩展所提出的方法以关闭一些帧内工具。如果满足某个条件,则可以关闭一些帧内工具(例如,帧内预测或其他帧内工具)和/或可以减少一些其他帧内工具,使得消除用于cu的模式标志(例如,仿射合并标志、lic标志),或者用于一元代码的模式索引(例如合并索引)可以减少。

方法2:依据周围条件或当前cu跳过一些帧间模式

这里,术语“周围”表示当前cu的左侧和/或顶部相邻块。该方法首先检查空间周围的帧间模式。为了检查空间周围cu的帧间模式,依据一个实施例,它可以计算当前cu周围(即,左侧和/或顶部相邻)的cu的帧间模式的直方图。在另一实施例中,它计算当前cu周围(即,左侧和/或顶部相邻)最小块(例如,最小块4×4,或不同系统或不同实施例的其他尺寸)的帧间模式的直方图,其围绕当前cu(即,左和/或顶部相邻)。在又一个实施例中,它计算周围cu或块或像素的帧间模式的直方图。

在计数(或形成直方图)之后,如果某个帧间模式(例如,fruc模式)具有所有帧间模式(诸如合并模式、amvp模式、fruc模式或其他帧间工具)中的最大出现次数,此帧间模式可以指定为most_freq_inter_mode。因此,可以依据most_freq_inter_mode关闭一些帧间模式。存在如下的一些实施例。

实施例1:对于当前cu,可以关闭对应于most_freq_inter_mode的帧间模式。

实施例2:对于当前cu,可以关闭不是most_freq_inter_mode的模式的帧间模式。

该方法不限于实施例1和2.在其他实施例中,可以依据most_freq_inter_mode关闭和/或减少一些帧间工具。

可以添加该方法在尺寸条件中,其中当前cu尺寸(cu宽度*cu高度)大于预定阈值或小于预定阈值。

方法3:依据母块模式条件跳过一些帧间模式

在编码器中,对于当前子块(例如cu),在编码树分割期间检查其母子块(例如cu)的帧间模式。如果其母子块(例如cu)是特定帧间模式(表示为inter_mode_parent),则依据实施例1在当前cu中关闭等于inter_mode_parent的帧间模式。在实施例2中,在当前cu中关闭不等于inter_mode_parent的帧间模式。该方法不限于实施例1和2。依据该方法,可以依据inter_mode_parent关闭和/或减少一些帧间工具。

可以在编码器和/或解码器中实现前面提出的用于与帧间模式相关联的编码树分割结构的复杂度降低的方法。例如,所提出的方法可以在编码器的帧间预测模组和/或解码器的帧间预测模组中实现。

编码树(ct)结构的简化

在现有实现中,二叉树(bt)分割或三叉树(tt)分割的最大ct深度高达3。允许tt分割将显著增加编码器侧的复杂性。提出了一些方法来降低计算复杂度,特别是对于某些特定的ct深度等于x,其中x是大于或等于0的整数。在下文中,x等于3用作示例目的和ct分割的示例在有条件地等于3的ct深度处终止(或被称为跳过)。换句话说,在某些情况下,bt分割或tt分割的最大cu深度将达到2。在一个实施例中,如果cu尺寸大于mxn,其中m和n可以是任何整数,例如64、128、256等,则ct分割在ct深度等于3时终止。m和n的值可以在序列级别、图像级别或切片级别预定义或被发送。或者,m和n的值与视频分辨率或标准配置文件有关。在另一实施例中,终止或跳过ct深度等于3的ct分割的条件基于编码切片的时间层id。时间层指的是与图片的时间结构相关联的层(例如,图像i,图像b和图像p)。例如,可以将i图像分配给temporallayer=0,因为i图像不参考任何其他图像,并且b图像可以将直接和/或间接参考更多图像,且b图像能被分配给具有更大值的时间层。如果当前切片的时间层等于k,大于l或小于p,则ct分割在等于3的ct深度处终止。k,l和p可以是任何整数,例如2、4、6等等。在另一实施例中,允许ct深度等于3的条件基于当前cu的最佳预测模式。如果当前cu的最佳模式是跳过模式,则ct分割在等于3的ct深度处终止。在另一实施例中,对于大四叉树(qt)叶或具有大尺寸的cu(例如64x64,128x128),决定允许ct深度等于3是基于cu的宽度和高度的比率。例如,如果cu的宽度和高度的比率小于t,则在ct深度等于3时终止ct分割。t可以是任何整数,例如,2、4、8等等。可以在序列级别、图像级别或切片级别预定义或发送t的值。或者t的值与视频分辨率或标准配置文件有关。在另一实施例中,执行ct深度等于3的条件基于ct深度等于1或等于2的决策。例如,如果在先前的ct深度中没有使用tt分割或者在ct深度中的分割等于1,则允许ct深度等于3。在另一实施例中,终止ct深度3处的ct分割的条件基于当前切片qp。如果当前切片qp大于预定阈值,则跳过等于3的ct深度。

此外,可以组合所提出的方法以使终止ct深度等于3的决定。例如,仅当cu尺寸大于mxn并且cu的最佳模式是跳过模式时,ct分割在ct深度等于3处终止。这些方法可以仅作为编码器应用,也可以作为标准的更改。如果将这些方法应用为标准的更改,我们还可以从一些语法保存中受益,以便在ct深度等于3时有条件地编码分割标记。

此外,在ct深度等于3处终止ct分割的决策可以仅应用于tt分割或仅应用于bt分割。换句话说,仅在ct深度等于3处仅终止tt分割或仅终止bt分割,并且仍然可以在等于3的ct深度处应用剩余的分割类型。

可以在编码器和/或解码器中实现前面提出的方法。例如,所提出的方法可以在编码器中的cu分割处理中实现,和/或在解码器中的cu分割处理中实现。

快速ct/cu分割

在本发明的另一方面,公开了若干快速cu分割决策方法,用于降低视频编码器复杂度并且还维持编码效率。这些方法可以设计为仅编码器的快速cu分割方法,或者用于保存信号传输开销的规范性更改。这些实施例的细节描述如下。

实施例1:依据加权相邻子cu区域允许/跳过cu分割方法

用于当前cu的cu分割方法的使用基于加权的相邻子cu区域。相邻子cu可以是上方相邻子cu或/和左侧相邻子cu。此外,仅发送分割方法或/和所使用的cu分割方法的分割方向。

在一个示例中,如果当前cu区域等于或大于加权的相邻子cu区域,则仅使用无分割(nopartition)和qt分割方法,并且不使用bt/tt分割方法。在图17中示出了依据本发明的实施例的自适应块分割1700的示例。如图17所示,当前cu1710由斜线填充区域标记,并且八个4×4相邻子cu1720a和1720b由点填充区域标记。上方四个4×4相邻子cu1720a全部属于16×8cu,左侧四个4×4相邻子cu1720b属于8×8,8×4和8×4cu。然后,加权的相邻cu区域y被计算为:

y=k×x,

x=(4×(16×8)+2×(8×8)+(8×4)+(8×4))/8=88,

=>y=k×88,

在上面的等式中,k属于实数,x是相邻子cu的平均面积。因此,如果当前cu区域被表示为a并且a≥y,则可以仅选择无分割或qt分割来将当前cu分成更小的cu(即,子cu)。

在另一实施例中,如果当前cu区域等于或大于加权的左子cu区域,则仅使用无分割(nopartition)和qt分割方法,并且不使用bt/tt分割方法。例如,如图17所示,加权的左侧子cu区域y被计算为

y=k×x,

x=(2×(8×8)+(8×4)+(8×4))/8=24,

=>y=k×24,

在上面的等式中,k是实数,x是左侧相邻子cu的平均面积。因此,如果当前cu区域被表示为a并且a≥y,则可以仅选择无分割或qt分割来将当前cu分成更小的cu。

在又一个实施例中,如果当前cu区域等于或大于加权的上方子cu区域,则仅使用无分割或qt分割,并且不使用bt/tt分割方法。例如,如图17所示,加权的上方子cu区域y被计算为

y=k×x,

x=(4×(16×8))/8=64,

=>y=k×64,

在上面的等式中,k是实数,x是上方相邻子cu的平均面积。因此,如果当前cu区域被表示为a并且a≥y,则可以仅选择无分割或qt分割来将当前cu分成更小的cu。

在又一个实施例中,如果当前cu区域等于或小于加权的相邻子cu区域,则仅使用无分割的分割方法。例如,如图3所示,加权相邻cu区域y被计算为

y=k×x,

x=(4×(16×8)+2×(8×8)+(8×4)+(8×4))/8=88,

=>y=k×88,

在上面的等式中,k是实数,x是相邻子cu的平均面积。如果当前cu区域表示为a并a≤y,则仅使用无分割的分割方法。

在又一个实施例中,如果当前cu区域等于或小于加权的左侧子cu区域,则仅使用无分割的分割方法。例如,如图17所示,加权相邻cu区域y被计算为

y=k×x,

x=(2×(8×8)+(8×4)+(8×4))/8=24,

=>y=k×24,

在上面的等式中,k是实数,x是左侧相邻子cu的平均面积。如果当前cu区域表示为a并且a≤y,则仅使用cu分割方法。

在又一个实施例中,如果当前cu区域等于或小于加权的上子cu区域,则仅使用无分割的分割方法。例如,如图17所示,加权相邻cu区域y被计算为

y=k×x,

x=(4×(16×8))/8=64,

=>y=k×64,

在上面的等式中,k是实数,x是上方相邻子cu的平均面积。如果当前cu区域表示为a并且a≤y,则仅使用cu分割方法。

实施例2:依据加权边长比率跳过cu分割方法

所有可用的cu分割方法被分类为两组,并且如果加权的边长比在给定范围内,则仅使用一个cu分割集来将当前cu分成较小的cu。边长比可以是当前cu高度上的左侧相邻cu的加权平均高度,或当前cu宽度上的上方相邻cu的加权平均宽度。此外,如果当前cu满足边长比约束,则仅发送所选cu分割集的分割方法或/和分割方向。

在一个实施例中,如图17所示,边长比是在当前cu宽度上的上方相邻cu的平均宽度a,其被计算为

如果a≥n,则仅使用水平bt/ttcu分割方法将当前cu分成较小的cu,其中n是实数。

在另一个实施例中,如图17所示,边长比是左侧相邻cu相对于当前cu宽度的平均高度b,其被计算如下:

如果b≥q,则仅使用垂直bt/ttcu分割方法将当前cu分成较小的cu,其中q是实数。

实施例3:依据当前最佳子cu/cu分割方向跳过cu分割方法

在测试cu分割方法(表示为p)之前,如果当前最佳cu分割方向与p的分割方向不同,并且其子cu不在p方向上进一步分割,则p的测试被跳过了。

在一个实施例中,如果当前最佳cu分割方法是水平bt或tt分割,并且其左侧上子cu和右下方子cu都透过水平bt或tt分割方法进一步分割,则跳过垂直bt/tt分割方法的测试。

在另一个实施例中,如果当前最佳cu分割方法是垂直bt或tt分割,并且其左侧上子cu和右下方子cu都透过垂直bt或tt分割方法进一步分割,则跳过水平bt/tt分割方法的测试。

实施例4:依据早期测试其他分割方向中的cu分割方法来跳过cu分割方法

在测试cu分割方法(表示为p)之前,如果当前最佳cu分割方向与p不同,则具有与当前最佳cu分割方法相同的分割方向的其他cu分割方法比p先测试。即,如果当前最佳cu分割方向仍然不与p相同并且一定比例的当前最佳cu的子cu不被进一步分割,则跳过p的测试。

在一个实施例中,如果当前最佳cu分割方法是垂直bt分割,则比水平tt分割方法更早地测试垂直tt分割方法。之后,如果当前最佳值改变为垂直tt并且中间子cu不再进一步分割,则跳过水平tt分割方法的测试。

在另一实施例中,如果当前最佳cu分割方法是水平bt分割,则比垂直tt分割方法更早地测试水平tt分割方法。之后,如果当前最佳值改变为水平tt并且中间子cu不再进一步被分割,则跳过垂直tt分割方法的测试。

实施例5:依据每个分割集中的临时最佳分割成本跳过cu分割方法

所有可用的cu分割方法分为两组,这两组是p1=和p2。分割方法的分类可以基于分割方向或分割类型。假设仅测试了p1和p2中的部分分割方法,并且p1和p2中测试分割方法的最佳分割成本是cp1和cp2。如果cp1≥w×cp2,则跳过p1中的剩余cu分割模式。或者,如果cp2≥w×cp1,则跳过p2中剩余的cu分割模式。

在一个实施例中,分割方法按分割方向分类,并且这两个分割集是{水平bt,水平abt,水平tt}和{垂直bt,垂直abt,垂直tt}。abt是不对称bt的缩写。如果已经测试{水平bt,水平abt}和{垂直bt,垂直abt},则这两组的最佳分割成本是cp1和cp2。如果cp1≥w×cp2,则跳过水平tt分割方法的分割测试。

在另一个实施例中,分割方法按分割类型分类,并且这两个分割组是{水平tt,垂直tt,水平abt,垂直abt}和{水平bt,垂直bt}。如果{水平bt,垂直bt}和{水平tt,垂直tt}已经过测试,这两组的最佳分割成本是cp1和cp2。如果cp1≥w×cp2,则跳过水平/垂直abt分割方法的分割测试。

实施例6:依据早期分割方法中的临时最佳分割成本跳过cu分割方法

假设当前cu的总可用cu分割方法的数量是m,并且已经测试了m个分割方法中的n个,并且这些n个分割方法的分割成本被表示为{c1,c2,c3,...,cn}。假设当前最佳cu分割成本是cbest且cbest=minj(c1,c2,c3,...,cn)。如果ci>w×cbest,(其中i=1,...,n并且i≠j,)并且当前最佳cu分割方法未被分割,则跳过剩余(m-n)个cu分割方法的分割测试。

例如,假设可用的cu分割方法是{无分割,水平bt,垂直bt,qt,水平tt和垂直tt}。假设测试无分割,水平bt,垂直bt和qt,并且当前最佳cu分割方法是无分割分割类型。如果无分割方法的加权成本小于水平bt,垂直bt和qt的成本,则跳过水平tt和垂直tt的分割测试。

实施例7:透过比较上方深度cu的成本来跳过cu分割方法

依据该实施例,一旦累积的分割成本等于或大于每个分割深度的任何最佳分割成本,就提前跳过cu分割方法。累积分割成本被定义为当前已编码子cu与上分割深度中的母编码cu的总和。例如,图18a示出了仍在编码过程下的ctu。当前编码的cu1810由斜线填充的区域标记,并且完全编码的cu由粗虚线包围的区域表示。对于当前编码的cu,存在来自分割深度0,1,2,3的4个母块,其由图18b-第118e图中的相应粗实线表示(即,分别为1836,1834,1832和1830)。假设当前测试方法是水平bt分割方法,并且标记为“a”的第一子cu已经被编码。在对标记为“b”的第二子cu进行编码之前,如果“a”的分割成本加上由反斜杠线标记的其他编码cu的成本等于或大于每个分割深度的母块的加权分割成本,然后早期跳过cu分割方法。例如,在图18b中,其他编码的cu对应于零(即,没有使用其他编码的cu)用于分割深度为3的块1830,如粗线方块所示。在图18c中,其他编码的cu对应于填充有区域a上方反斜划线填充区域,用于分割深度为2的块1832,如粗线矩形所示。在图18d中,其他编码的cu对应于在区域a上方反斜划线填充区域,用于分割如粗线方块所示的深度为1的块1834。在图18e中,其他编码的cu对应于反斜划线填充区域,有用于分割如粗线方块所示深度为0的块1836。

实施例8:重用先前相同位置和相同尺寸的cu分割决策

可以透过不同的cu分割方法或在不同的cu分割深度中对cu进行多次编码。由于空间位置,cu尺寸或甚至cu的相邻不改变,一旦重新访问cu,可以重用cu分割决策。

在一个示例中,当重新访问cu时,仅分割方法具有比将加权的最佳分割成本更少的分割成本。

在另一个实施例中,当重新访问cu时,将始终测试具有最佳分割成本的分割方法,并且分割方法具有小于加权最佳分割成本的第二最佳分割成本也将被测试。将跳过其他测试的分割方法。注意,可以在重新访问时测试在第一次未被编码cu的测试的分割方法。

实施例9:依据当前子cu的加权平均区域跳过cu分割方法

当当前子cu的加权平均面积等于或小于th1并且当前cu面积/尺寸也等于或大于th2时,跳过cu分割方法。例如,如图19所示,如果当前最佳cu被分割,并且每个子cu尺寸是4×4。然后,当前子cu的加权平均面积a被计算为,

如果a≤th1并且当前cu区域/尺寸等于或大于th2,则跳过以下未测试的cu分割方法。

实施例10:依据qt分割结果跳过cu分割方法

当最佳cu的qt深度比当前cu更深并且当前cu区域等于或大于阈值时,跳过cu分割方法。在一个示例中,当最佳cu的qt深度比当前cu更深并且当前cu区域等于或大于16384时,跳过tt分割方法。

图20示出了依据本发明实施例的具有对编码树分割的约束的示例性编码系统的流程图。流程图中示出的步骤以及本公开中的其他后续流程图可以实现为在编码器侧和/或解码器侧的一个或多个处理器(例如,一个或多个cpu)上可执行的程序代码。流程图中示出的步骤还可以基于诸如被布置为执行流程图中的步骤的一个或多个电子设备或处理器的硬件来实现。依据该方法,在步骤2010中接收与来自视频序列的当前图像中的当前块相关联的输入数据。在步骤2020中,使用包括三叉树分割和至少一个其他类型分割的子树分割的一个或多个阶段,将当前块分割为多个最终子块,其中如果与当前子块相关联的当前子树深度大于第一阈值并且第一阈值是大于或等于1的整数,则从子树分割中排除三叉树分割。在步骤2030,对所述多个最终子块进行编码以生成压缩比特以包括在编码器侧的视频比特流中,或者从编码器侧的所述视频比特流中解码所述多个最终子块。

图21示出了依据本发明实施例的具有复杂度降低的帧间模式的示例性编码系统的流程图。依据该方法,在步骤2110中接收与来自视频序列的当前图像中的当前块相关联的输入数据。在步骤2120中确定初始的帧间工具组。然后在步骤2130中确定当前块的测试条件。在步骤2140中,当满足测试条件时,使用从修改的帧间工具组中选择的当前帧间模式对当前块进行编码或解码,其中,透过从初始的帧间工具组中删除一个或多个第一个帧间工具,用一个或多个复杂性减少的帧间工具替换一个或多个第二个帧间工具,或者其组合,自初始的帧间工具组推导修改的帧间工具组。

图22示出了依据本发明实施例的具有对编码树分割约束的另一示例性编码系统的流程图。依据该方法,在步骤2210中,接收与来自视频序列的当前图像中的当前块相关联的输入数据。在步骤2220中,确定当前块的测试条件。在步骤2230中,当满足测试条件时,使用包括一个或多个多类型分割的受限编码树结构,将当前块分割为多个最终子块,其中受限编码树结构终止具有编码树分割深度等于阈值的目标子块的编码树分割。在步骤2240中,对所述多个最终子块进行编码以生成压缩比特以包括在编码器侧的视频比特流中,或者在解码器侧从视频比特流中解码所述多个最终子块。

所示的流程图旨在示出依据本发明的视频编码的示例。在不脱离本发明的精神的情况下,本领域技术人员可以修改每个步骤,重新安排步骤,分割步骤,或组合步骤以实施本发明。在本公开中,已经使用特定语法和语义来说明用于实现本发明的实施例的示例。本领域技术人员可以透过用等同的语法和语义替换语法和语义来实践本发明而不脱离本发明的精神。

呈现以上描述是为了使得本领域技术人员能够实践在特定应用及其要求的背景下提供的本发明。对所描述的实施例的各种修改对于本领域技术人员来说是显而易见的,并且这里定义的一般原理可以应用于其他实施例。因此,本发明不限于所示出和描述的特定实施例,而是与符合本文所公开的原理和新颖特征的最宽范围相一致。在以上详细描述中,示出了各种具体细节以便提供对本发明的透彻理解。然而,本领域技术人员将理解,可以实施本发明。

如上所述的本发明的实施例可以以各种硬件、软件代码或两者的组合来实现。例如,本发明的实施例可以是集成到视频压缩芯片中的一个或多个电路电路或集成到视频压缩软件中的程序代码,以执行这里描述的处理。本发明的实施例还可以是要在数字信号处理器(dsp)上执行的程序代码,以执行这里描述的处理。本发明还可以涉及由计算机处理器、数字信号处理器、微处理器或现场可编程门阵列(fpga)执行的许多功能。这些处理器可以被配置为透过执行定义本发明所体现的特定方法的机器可读软件代码或韧体代码来执行依据本发明的特定任务。软件代码或韧体代码可以用不同的编程语言和不同的格式或样式开发。还可以针对不同的目标平台编译软件代码。然而,软件代码的不同代码格式、样式和语言以及配置代码以执行依据本发明的任务的其他装置将不脱离本发明的精神和范围。

在不脱离本发明的精神或基本特征的情况下,本发明可以以其他特定形式实施。所描述的示例在所有方面都应被视为仅是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是前面的描述表示。在权利要求的含义和等同范围内的所有变化都包含在其范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1