带有约束的亮度-色度单独的编码树编解码的方法和设备与流程

文档序号:25543503发布日期:2021-06-18 20:40
带有约束的亮度-色度单独的编码树编解码的方法和设备与流程

交叉引用

本发明要求于2018年11月16日提交的序号为62/768,203、以及于2018年11月16日提交的序号为62/768,205的美国临时专利申请的优先权。上述美国临时专利申请的全部内容通过引用合并于本文。

本发明涉及在视频编解码中使用单独的划分树进行的亮度块和色度块的块划分。尤其是,本发明公开了相关的跨分量编解码的控制方案,以减少复杂性或所需的系统资源。



背景技术:

高效视频编码(hevc)标准是在itu-t视频编码专家组(vceg)和iso/iec运动图像专家组(mpeg)标准化组织(并且特别是与被称为视频编码联合协作小组(jct-vc)的合作伙伴)的联合视频项目下开发的。在hevc中,一个切片(slice)被划分成多个编码树单元(ctu)。在主配置文件(profile)中,ctu的最小和最大大小由序列参数集(sps)中的语法元素指定。所允许的ctu大小可以是8×8、16×16、32×32或64×64。对于各个切片,根据光栅扫描连续处理切片内的ctu。

ctu进一步被划分成多个编码单元(cu),以适应多个本地特征。表示成编码树的四叉树被用于将ctu划分成多个cu。令ctu大小为m×m,其中,m为64、32或16的值中的一个。ctu可以是单个cu(即,不分割),或者可以被分割成相等大小的四个较小单元(即,各个m/2×m/2),所述四个较小单元对应于编码树的节点。如果单元是编码树的叶节点,则单元变成cu。否则,可以重复四叉树分割处理,直到节点的大小达到sps(序列参数集)中指定的允许的最小cu大小为止。该代表导致了由图1中的编码树120(也称为划分树结构)指定的递归结构。在图1中示出ctu划分110,其中,实线指示cu边界。在cu级处做出使用图片间(inter-picture)(时间)还是图片内(intra-picture)(空间)预测对图片区域进行编码的决策。由于最小cu大小可以是8×8,所以在不同的基本预测类型之间进行切换的最小粒度为8×8。

此外,根据hevc,可将各个cu划分成一个或更多个预测单元(pu)。与cu结合,pu用作共享预测信息的基本代表块。在各个pu内部,应用相同的预测处理,并且基于pu将相关信息发送到解码器。可以根据pu分割类型将cu分割成一个、两个或四个pu。如图2所示,hevc定义了用于将cu分割成pu的八个形状,包括2n×2n、2n×n、n×2n、n×n、2n×nu、2n×nd、nl×2n和nr×2n划分类型。与cu不同,pu仅能根据hevc分割一次。第二行所示的划分对应于非对称划分,其中,两个划分的部分具有不同的大小。

在通过基于pu划分类型的预测处理来获得残差块后,可以根据如图1所示的类似于针对cu的编码树的另一四叉树结构将cu的预测残差划分成变换单元(tu)。实线指示cu边界,而虚线指示tu边界。tu是具有残差或变换系数的基本代表块,用于应用整数变换和量化。对于各个tu,应用具有与tu相同大小的一个整数变换以获得残差系数。这些系数在基于tu的量化后被发送到解码器。

术语编码树块(ctb)、编码块(cb)、预测块(pb)和变换块(tb)被定义成指定分别与ctu、cu、pu和tu相关联的一个颜色分量的2d样本数组。因此,ctu由一个亮度ctb、两个色度ctb和相关联的语法元素组成。类似的关系对于cu、pu和tu也有效。树划分通常被同时应用于亮度和色度二者,但是当达到色度的某些最小大小时例外。

另选地,在jctvc-p1005(d.flynn等人,“hevcrangeextensionsdraft6”,jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,16thmeeting:sanjose,us,9–17january2014,document: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。因此,换句话说,二叉树的叶节点是用于预测和变换编码的基本单元。

qtbt结构

由于能够支持更多划分形状,所以二叉树结构比四叉树结构更灵活,这也是提高编码效率的源泉。然而,为了选择最佳划分形状,编码复杂度也将增加。为了平衡复杂度和编码效率,已经公开了将四叉树结构和二叉树结构组合的方法,这也称为四叉树加二叉树(qtbt)结构。根据qtbt结构,ctu(或i切片的ctb)是四叉树的根节点,并且ctu首先通过四叉树进行划分,其中,可以重复一个节点的四叉树分割,直到该节点达到允许的最小四叉树叶节点大小(即,minqtsize)为止。如果四叉树叶节点大小不大于允许的最大二叉树根节点大小(即,maxbtsize),则可以通过二叉树对其进行进一步划分。可以重复一个节点的二叉树分割,直到该节点达到允许的最小二叉树叶节点大小(即,minbtsize)或允许的最大二叉树深度(即,maxbtdepth)为止。二叉树叶节点(即,cu,或i切片的cb)将用于在没有任何进一步划分的情况下进行预测(例如,图片内预测或图片间预测)和变换。二叉树分割中有两种分割类型:对称水平分割和对称垂直分割。在qtbt结构中,可以在高级语法(诸如,在sps中)中指示允许的最小四叉树叶节点大小、允许的最大二叉树根节点大小、允许的最小二叉树叶节点宽度和高度以及允许的最大二叉树深度。图5例示了块划分510及其对应的qtbt520的示例。实线指示四叉树分割,而虚线指示二叉树分割。在二叉树的各个分割节点(即,非叶节点)中,一个标志指示使用哪种分割类型(水平或垂直),0可以指示水平分割,而1可以指示垂直分割。

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

qtbt结构的示例如下所示。对于大小为128×128的ctu,将允许的最小四叉树叶节点大小设置成16×16,将允许的最大二叉树根节点大小设置成64×64,将允许的最小二叉树叶节点宽度和高度二者设置成4,并且将允许的最大二叉树深度设置成4。首先,通过四叉树结构划分ctu,并且叶四叉树单元的大小可以从16×16(即,允许的最小四叉树叶节点大小)到128×128(等于ctu大小,即,无分割)。如果叶四叉树单元为128×128,则由于该大小超出了允许的最大二叉树根节点大小64×64,所以无法通过二叉树进行进一步分割。否则,叶四叉树单元能够通过二叉树进行进一步分割。该叶四叉树单元(其也是根二叉树单元)的二叉树深度为0。当二叉树深度达到4(即,所指示的允许的最大二叉树)时,没有隐含地暗示分割。当对应的二叉树节点的块的宽度等于4时,隐含地暗示非水平分割。当对应的二叉树节点的块的高度等于4时,隐含地暗示非垂直分割。通过预测(图片内或图片间)和变换编码来进一步处理qtbt的叶节点。

对于i-切片,通常将qtbt树结构与亮度/色度单独编码一起应用。例如,将qtbt树结构单独地应用于i-切片的亮度和色度分量,并且同时应用于p-切片和b-切片的亮度和色度二者(当达到色度的某些最小大小时除外)。换句话说,在i-切片中,亮度ctb具有其qtbt结构块划分,而两个色度ctb具有另一qtbt结构块划分。在另一示例中,两个色度ctb也可以具有其自己的qtbt结构块划分。

lm色度模式

通常将帧内预测器设计成利用图片中的空间特征,诸如,平滑区域(dc模式)、垂直线或边缘、水平线或边缘以及对角线或边缘。此外,亮度(luma)与色度(chroma)分量之间通常存在空间相关度。因此,可以使用重构的亮度像素来得出帧内色度预测。在新兴的高效视频编码(hevc)中,已经考虑了基于重构的亮度信号的色度帧内预测模式。该类型的色度帧内预测称为线性模型(lm)预测。图6例示了针对lm模式的帧内预测推导。首先,使用图6中并置的亮度块(即,y块)的相邻重构像素(由圆圈指示)和色度块(即,u或v块)的相邻重构像素(由圆圈指示)来得出块之间的线性模型参数。色度块的预测像素是使用所述参数和亮度块的重构像素生成的。在参数推导中,使用与当前亮度块的顶部块边界相邻的顶部重构像素行以及与当前亮度块的左块边界相邻的左重构像素列。注意的是,为了匹配色度像素的采样位置,使用了从左边界起的第二左重构像素列而不是紧邻左边界的左列。使用亮度块的特定行和列以便匹配色度分量的4:2:0采样格式。尽管图6例示了用于4:2:0采样格式的lm色度模式的示例,但是也可以类似地得出用于其它色度采样格式的lm色度模式。

根据lm预测模式,从并置的块的重构亮度值来预测色度值。与亮度分量相比,色度分量可能具有更低的空间分辨率。为了将亮度信号用于色度帧内预测,可能必须降低亮度信号的分辨率以与色度分量的分辨率匹配。例如,对于4:2:0采样格式,u和v分量在垂直和水平方向上仅具有亮度分量的一半数量的样本。因此,必须将垂直和水平方向上的2:1分辨率降低应用于重构亮度样本。分辨率降低可以通过下采样处理或子采样处理来实现。

在lm色度模式下,对于具有并置的重构亮度样本vcol的待预测色度样本v,生成lm预测因子p的线性模型被如下公式化:

p=a·vcol+b

在上式中,a和b被称为lm参数。lm参数可以从当前块周围的相邻重构亮度样本和色度样本中得出,因此不需要在比特流中对参数进行编码。在得到lm参数之后,可以根据线性模型从当前块中并置的重构亮度样本来生成色度预测值。例如,如图6所示,如果视频格式为yuv420,则对于各个8×8编码单元,存在一个8×8亮度块(610)和两个4×4色度块(620和630)。在图6中,各个小方块对应于要编码的当前编码单元(针对亮度为2n×2n,针对色度为n×n)中的一个像素。首先基于当前编码单元的相邻重构样本(其在图6中以圆圈代表)得出lm参数。由于yuv420采样格式,并置的色度位置位于两个对应的垂直亮度样本之间。使用两个对应的垂直亮度样本之间的平均值来得出lm参数。对于顶部块边界上方的相邻像素,平均值被垂直方向上最接近的样本替换,以便减少线缓冲区的要求。如图6所示,使用当前亮度(y)和色度(u或v)编码单元的相邻像素(如圆圈所示)来得出相应色度分量的lm参数。在得出lm参数之后,基于线性模型和并置的亮度重构样本来生成色度预测值。根据视频格式,可以使用平均亮度值来代替对应的亮度样本。

由于亮度分量和色度分量的树结构是单独的,并且在亮度分量与色度分量之间存在数据相关性,所以色度分量不能被处理,直到对应的亮度分量的处理完成为止。例如,在lm色度模式下,色度预测值取决于亮度重构的样本。只有在完成亮度重构处理并且准备好亮度重构样本时,才能生成色度预测值。在最坏情况下,时延将变成一个ctu或具有交错的亮度和色度分量的一个单元。例如,如果亮度和色度分量的树结构以一个64×64单元×一个64×64单元交错组织,则色度分量不能被处理,直到对应的亮度64×64块的处理完成为止。这介绍了流水线视频编解码系统中的缓冲区使用。本发明公开了减少缓冲区需求以及时延问题的各种方法。



技术实现要素:

公开了用于视频编码和解码中的块划分的方法和设备。根据本发明的一种方法,接收与当前图片中的当前块相关联的输入数据,其中,该输入数据包括要在编码器侧编码的像素数据或在解码器侧解码的压缩数据,并且其中,该当前块包括亮度块和色度块。使用亮度划分树将亮度块划分成一个或更多个亮度叶块,并且使用色度划分树将色度块划分成一个或更多个色度叶块。如果目标色度叶块不包括所述一个或更多个完整的亮度叶块,并且目标色度叶块不被完全包括在一个亮度叶块中,则目标色度叶块与所述一个或更多个对应亮度叶块之间的数据相关性是不允许的。

在一个实施方式中,当目标色度叶块包括所述一个或更多个完整的亮度叶块时,目标色度叶块与所述一个或更多个对应亮度叶块之间的数据相关性是允许的。在处理了目标色度叶块和所述一个或更多个完整的亮度叶块之后,可以丢弃用于处理目标色度叶块和所述一个或更多个完整的亮度叶块的缓冲样本。在另一实施方式中,当目标色度叶块被完全包括在一个亮度叶块中时,目标色度叶块与所述一个或更多个对应亮度叶块之间的数据相关性是允许的。

在一个实施方式中,当目标色度叶块与所述一个或更多个对应亮度叶块之间的数据相关性是允许的时,使用与一个或更多个对应亮度叶块相关联的信息来对目标色度叶块进行编码或解码。可以使用lm色度模式对目标色度叶块进行编码或解码。

根据另一方法,使用亮度划分树将亮度块划分成一个或更多个亮度叶块,并且使用色度划分树将色度块划分成一个或更多个色度叶块。对于亮度划分树中的第一节点和色度划分树种的第二节点,如果对第一节点和第二节点中的一个没有应用分割,或者如果第一节点和第二节点中的一个使用第一分割,并且第一节点和第二节点中的另一个使用与第一分割相同或等效的第二分割或不使用分割,则与第一节点相关联的一个或更多个亮度叶块和与第二节点相关联的一个或更多个色度叶块之间的数据相关性是允许的,其中,色度划分树中的第二节点是亮度划分树中的第一节点的对应节点。在一些实施方式中,如果将不同的分割应用于第一节点和第二节点,则与第一节点相关联的所述一个或更多个亮度叶块和与第二节点相关联的所述一个或更多个色度叶块之间的数据相关性是不允许的。

在一个实施方式中,当对第一节点和第二节点中的一个没有应用分割时,与第一节点相关联的所述一个或更多个亮度叶块和与第二节点相关联的所述一个或更多个色度叶块之间的数据相关性是允许的。在另一实施方式中,当第一节点和第二节点中的一个使用第一分割并且第一节点和第二节点中的另一个使用与该第一分割相同或等效的第二分割或不使用分割时,与第一节点相关联的所述一个或更多个亮度叶块和与第二节点相关联的所述一个或更多个色度叶块之间的数据相关性是允许的。

在一个实施方式中,在对应于所述亮度划分树中的第一节点或色度划分树中的第二节点的指定级处用信号通知或推断标志,其中,该标志指示与第一节点相关联的所述一个或更多个亮度叶块和与第二节点相关联的所述一个或更多个色度叶块之间的数据相关性是否是允许的。该指定级可能对应于ctu(编码树单元)级或块级。例如,可以将块级定义成最大变换大小或预定值。可以在序列级、图片级、切片级、图块(tile)组级或图块级处用信号通知该预定值。

在一个实施方式中,当与第一节点相关联的所述一个或更多个亮度叶块和与第二节点相关联的所述一个或更多个色度叶块之间的数据相关性是允许的时,使用来自与第一节点相关联的所述一个或多个亮度叶块的信息来对与第二节点相关联的所述一个或更多个色度叶块进行编码或解码。例如,使用lm色度模式对与第二节点相关联的所述一个或更多个色度叶块进行编码或解码。

附图说明

图1例示了使用四叉树结构将编码树单元(ctu)划分成编码单元(cu)的块划分的示例。

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

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

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

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

图6例示了色度帧内预测(即,线性模型(lm)预测)的示例,其中,使用并置的亮度块(即,y块)的相邻重构像素(由圆圈指示)和色度块(即,u或v块)的相邻重构像素(由圆圈指示)来得出块之间的线性模型参数。

图7例示了受约束的亮度-色度单独的编码树编码的示例,其中,左块是亮度分量的树结构,而右块是色度分量的树结构。

图8例示了根据本发明实施方式的具有从第一划分树划分的一个或更多个叶块与从第二划分树划分的一个或更多个叶块之间的自适应数据相关性的示例性编解码系统的流程图。

图9例示了根据本发明实施方式的具有从第一划分树划分的一个或更多个叶块与从第二划分树划分的一个或更多个叶块之间的自适应数据相关性的另一示例性编解码系统的流程图。

具体实施方式

以下描述是执行本发明的最佳构想模式。进行该描述是出于例示本发明的一般原理的目的,而不应被认为是限制性意义。本发明的范围最好通过参照所附的权利要求书来确定。

时延(latency)是由不同树结构之间的数据相关性引入的。为了减少时延,公开了一种发明来约束不同树结构之间的数据相关性。这个想法是仅在树结构相互包含时允许不同树结构之间的数据相关性。换句话说,当在一个树中不使用分割时,或者当在一个树中使用分割而另一个树中使用相同分割或不使用分割时,不同树结构之间的数据相关性是允许的。当不同树结构中的分割不同时,则不同树结构之间的数据相关性是不允许的。这里的“分割”是指在一个树结构中的一个节点处或在另一个树结构中的另一节点处进行分割。“分割一个树”和“在另一个树中……分割……”是指“分割一个树结构中的一个节点”和“分割另一个树结构中的另一节点”,其中,“一个树结构中的一个节点”和“另一个树结构中的另一节点”是两个树结构中的两个对应节点。

换句话说,当在不同树结构之间的数据相关性是允许的时,在色度树中的各个叶cu应包括一个或更多个完整的亮度叶cu,或者其被完全包括在一个亮度叶cu中。否则,不同树结构之间的数据相关性是不允许的。在一个实施方式中,不同树结构之间的数据相关性是lm色度模式和/或rm模式。换句话说,如果不同树结构之间的数据相关性是允许的,则具有不同树结构之间的数据相关性的至少一个模式(例如,lm色度模式和/或rm模式)可以是被应用的候选模式;否则(即,不同树结构之间的数据相关性是不允许的),则不能应用具有不同树结构之间的数据相关性的这种模式(例如,lm色度模式和/或rm模式)。rm模式对应于残差预测,诸如,从亮度残差数据来预测色度残差数据。

图7例示了受约束的亮度-色度单独的编码树编码的示例,其中,左块710是亮度分量的树结构,而右块720是色度分量的树结构。对于不能被完全包括在一个亮度叶cu中或不包括一个或更多个完整的亮度叶cu的一个色度叶cu(即,a、b、m、n或o),不同树结构之间的数据相关性(即,lm色度模式)是不允许的。对于包括一个或更多个完整的亮度叶cu的一个色度叶cu(即,c或i),不同树结构之间的数据相关性(即,lm色度模式)是允许的。对于完全被包括在一个亮度叶cu中的一个色度叶cu(即,d、e、f、g、h、j或k),不同树结构之间的数据相关性(即,lm色度模式)也是允许的。通过使用此约束,可以减少处理色度帧内模式的时延。例如,对于色度叶cuc,当重构亮度叶cud时,可以在处理亮度叶cui之前处理色度叶cuc中的左上块。在一些实施方式中,由于在色度叶cua与亮度叶cub之间存在数据相关性,所以色度叶cua的重构处理需要在不考虑亮度叶cua和b的重构处理的情况下独立地进行处理。

图7对应于从相应划分树得到的亮度叶cu和色度叶cu,其中,整个块对应于相应划分树中的根节点。各个叶cu对应于划分树中的一个叶节点。如图7所示,第一级划分将根节点分割成四个子节点。用于根节点的划分可以是四叉树(qt)分割。然而,划分还可以对应于水平二叉树(h.bt)划分,然后是垂直二叉树划分(v.bt),或者对应于垂直二叉树划分(v.bt),然后是水平二叉树(h.bt)划分。在本公开中,当两个划分结构导致相同的划分时,所述两个划分结构被称为等效划分或等效分割。在图7中,色度树720的叶cuc(722)覆盖由亮度树710的叶cud、e、f、g、h和i组成的相同区域712。色度树中与叶cuc相关联的色度节点对应于亮度树中与叶cud、e、f、g、h和i相关联的亮度节点。在该示例中,与叶cuc相关联的色度节点未被分割。另一方面,亮度树中与叶cud、e、f、g、h和i相关联的亮度节点通过分割结构被分割以产生叶cud、e、f、g、h和i。在本公开中,与叶cuc相关联的色度节点和亮度树中与叶cud、e、f、g、h和i相关联的亮度节点被称为两个树中的对应节点。

不同树结构之间的数据相关性是指从一个树中的一个节点产生的一个或更多个叶cu与从另一个树中的对应节点产生的一个或更多个叶cu之间的数据相关性。例如,在色度叶cuc与亮度叶cud、e、f、g、h和i之间,可以应用数据相关性。

在另一实施方式中,对于色度树中的各个叶cu,仅当该叶cu包括一个或更多个完整的亮度叶cu时,不同树结构之间的数据相关性才是允许的。否则,不同树结构之间的数据相关性是不允许的。

在另一实施方式中,对于色度树中的各个叶cu,仅当该叶cu被完全包括在一个亮度叶cu中时,不同树结构之间的数据相关性才是允许的。否则,不同树结构之间的数据相关性是不允许的。

在另一实施方式中,对于色度树中的各个叶cu,仅当该叶cu被完全包括在一个亮度叶cu中,并且对应亮度叶cu包括一个或更多个完整的色度叶cu时,不同树结构之间的数据相关性才是允许的。否则,不同树结构之间的数据相关性是不允许的。

在另一实施方式中,当在一个树中不使用分割时或当在一个树中使用分割并且在另一个树中使用相同分割或不使用分割时,不同树结构之间的数据相关性是允许的。

在另一实施方式中,仅当在不同树中使用相同的分割结构时,不同树结构之间的数据相关性才是允许的。在一个实施方式中,在ctu级或块级处用信号通知或推断一个标志,以指示在不同的树中是否使用相同的分割结构。如果在不同的树中使用相同的分割结构,则可以保存树结构中的一个,并且不用信号通知。可以根据一个视频编码标准中的配置文件或级,将块级定义成最大变换大小或某个预定值。根据另一实施方式,可以在序列级、图片级、切片级、图块组级或图块级处用信号通知该值。

在另一实施方式中,当在一个树中使用分割并且在另一个树中使用相同分割或不使用分割时,不同树结构之间的数据相关性是允许的。

在另一实施方式中,当不同的分割划分用于不同的树结构时,对于由不同的分割划分生成的那些叶cu,不同树结构之间的数据相关性是不允许的。

在一个实施方式中,可以组合以上实施方式中的一个或更多个以允许在不同树结构之间的数据相关性,然而除了在不同条件下的这种组合外,不同树结构之间的数据相关性可能是不允许的。

在一个实施方式中,当不同树结构之间的数据相关性是不允许的时,指示是否使用不同树结构之间的数据相关性的语法被强制成对应于在编码器处不使用数据相关性的预定值,其中,解码器可以对应地应用这种功能(例如,当不同树结构之间的数据相关性是不允许的时,指示是否使用不同树结构之间的数据相关性的语法被强制成对应于在解码器处不使用数据相关性的预定值)。

在另一实施方式中,当不同树结构之间的数据相关性是不允许的时,指示是否使用不同树结构之间的数据相关性的语法被推断成对应于在编码器处不使用数据相关性的一个预定值,其中,解码器可以对应地应用这种功能(例如,当不同树结构之间的数据相关性是不允许的时,指示是否使用不同树结构之间的数据相关性的语法被推断成对应于在解码器处不使用数据相关性的一个预定值)。

在另一实施方式中,当不同树结构之间的数据相关性是不允许的时,由没有数据相关性的预定模式来代替具有不同树结构之间的数据相关性的模式。

在对亮度和色度分量进行单独划分的原始设计中,亮度和色度块的形状可以不同,并且因此亮度块可以跨不同的色度块延伸,反之亦然。一个结果是亮度和色度块必须被单独地进行处理,并且用于预测和重构的缓冲样本可能需要保留在内存中直到已经处理整个单元为止。另一方面,例如,如果亮度块中没有一个跨不同的色度块延伸(即,各个亮度块完全在色度块内部),则在处理了特定的色度块和在内的亮度块后,可以丢弃用于处理该块的缓冲样本。为了实现这种情况,我们可以对亮度和色度块二者多次应用相同的划分,并且然后禁用分量中的一个的进一步分割。可以基于当前块的大小或深度来明确地用信号通知,或者隐含地得出是否禁用进一步的分割。

在一个实施方式中,在各个亮度分割标志或语法之前或之后用信号通知被称为chroma_split_end的标志,该标志指示色度划分是否在该点处终止,并且后续分割将仅应用于亮度分量。在chroma_split_end为真之前,色度划分与亮度划分相同。可以使用chroma_split_end标志来指示对应的分割标志代表应用于色度分量的最后一个划分,或者对应的分割标志和后续分割标志不适用于色度分量。在一个示例中,当达到亮度叶cu并且色度划分没有终止(例如,chroma_split_end全部为假)时,chroma_split_end被推断成真,这意味着色度分量不再分割。在另一示例中,当达到亮度叶cu并且色度划分没有终止时,应用用于色度分量的chroma_split语法或cu分割语法。色度分量可以被进一步划分成较小的cu。在一个示例中,当不分割亮度划分时,用信号通知chroma_split_end。如果该标志为真,则用信号通知qt/bt/tt分割语法。在另一示例中,当不分割亮度划分时,用信号通知色度cu分割语法。如果选择不分割,则色度cu也将停止分割。否则,色度cu可以被进一步分割。色度分量分割语法可以遵循cu分割的规则。例如,当使用二叉树(bt)或三叉树(tt)分割时,qt分割是不允许的。也可以应用色度qt/bt/tt大小/形状/深度约束。例如,如果达到最大色度qt/bt/tt深度或最小色度qt/bt/tt大小/形状,则将chroma_split_end推断成假,并且不用信号通知。当亮度分量正在进行编码四叉树分割、二叉树分割或三叉树分割时,可以用信号通知或推断chroma_split_end。在一个示例中,当亮度分量正在进行编码四叉树分割时,可以用信号通知或推断chroma_split_end。如果qt分割在bt分割和/或tt分割之前,则意味着当亮度分量正在进行qt分割时,色度分量需要遵循qt分割或停止分割。当亮度分量正在进行bt/tt分割时,色度可自由使用bt/tt分割。在另一示例中,可以在亮度qt叶cu之前停止色度qt分割,并且可以通过使用bt/tt分割来进一步分割色度qt叶cu。

在另一实施方式中,使用被称为chroma_follow_luma_split_flag的标志来确定色度是否遵循亮度分割。如果该标志为真,则亮度和色度使用相同的分割划分。当亮度cu使用qt/bt/tt分割时,色度cu也使用qt/bt/tt分割。当亮度cu停止分割时,色度cu也停止分割。如果标志为假,则亮度和色度使用不同的分割决策。当亮度cu使用qt/bt/tt分割时,色度cu停止分割。当亮度cu停止分割时,色度cu被进一步分割。进一步用信号通知色度分割语法。在一个示例中,当亮度cu停止分割时,将chroma_follow_luma_split_flag推断成真。在另一示例中,当达到最大色度qt/bt/tt深度或最小色度qt/bt/tt大小/形状时,也可以推断出chroma_follow_luma_split_flag。

在另一实施方式中,在各个分割标志之前或之后用信号通知被称为luma_split_end的标志,并且后续分割将仅应用于色度分量。luma_split_end标志指示亮度划分是否在该点处终止。可以使用luma_split_end标志来指示对应的分割标志代表应用于亮度分量的最后一个划分,或者对应的分割标志和后续分割标志不适用于亮度分量。在一个示例中,当达到色度叶cu并且亮度划分没有终止(例如,luma_split_end全部为假)时,luma_split_end被推断成真,这意味着亮度分量不再分割。在另一示例中,当达到色度叶cu并且亮度划分没有终止时,应用luma_split语法。亮度分量可以被进一步划分成较小的cu。

在一个实施方式中,ctu被分割或被推断分割(例如,推断的qt分割)成预定的大小/形状。预定的大小/形状可以是与最大变换单元大小相同、m×n块或等于1024、2048、4096或8192的面积。m×n块可以是预定的(例如,64×64)、得出的块大小、最大tu大小、与最大/最小tu大小相关的大小、或面积等于预定的或得出的块面积的自我调整形状块(例如,块面积等于4096,或虚拟流水线数据单元(vpdu)的面积/大小)。在分割成预定的大小/形状之后,应用所提出的cu分割方法。在一个示例中,所提出的方法仅应用于切片内或图块内或图块组内或当启用双树(dual-tree)时应用。

在另一实施方式中,当cu大小大于预定的大小/形状时,使用共享树划分方法。当cu不进行分割且大小大于预定的大小/形状时,亮度和色度分量二者不进行分割。不用信号通知chroma_split_end语法。预定的大小/形状可以是与最大变换单元大小相同、m×n块或等于1024、2048、4096或8192的面积。m×n块可以是预定的(例如,64×64)、导出的块大小、最大tu大小、或与最大/最小tu大小相关的大小、或面积等于预定的或得出的块面积的自我调整形状块(例如,块面积等于4096,或虚拟流水线数据单元(vpdu)的面积/大小)。当cu大小小于或等于预定的尺寸/形状时,应用所提出的方法。例如,可以用信号通知chroma_split_end或色度cu分割语法。

对于亮度和色度cu语法信令,可以应用两种方法。在第一种方法中,对于预定的大小/形状,以交错方式用信号通知亮度分量和色度分量语法。预定的大小/形状可以是与最大变换单元大小相同、m×n块或等于1024、2048、4096或8192的面积。m×n块可以是预定的(例如,64×64)或得出的块大小、最大tu大小、与最大/最小tu大小相关的大小、面积等于预定的或得出的块面积的自我调整形状块(例如,块面积等于4096或虚拟流水线数据单元(vpdu)的面积/大小)。首先用信号通知预定的大小/形状的亮度分量语法,然后用信号通知预定的大小/形状的色度分量语法。在一个示例中,推断出ctu被分割成预定的大小/形状。对于具有预定的大小/形状的各个块,在色度分量语法之前用信号通知亮度分量语法。在另一示例中,叶cu大小可以大于预定的大小/形状。当叶cu大小可以大于预定的大小/形状时,亮度和色度共享相同的划分。应用tu平铺(tiling)语法信令。叶cu可以被分成多个tu。对于各个tu,在色度系数之前用信号通知亮度系数。在第二种方法中,当未分割亮度cu或未分割色度cu时,以交错方式用信号通知亮度分量和色度分量语法。例如,当chroma_split_end为真时,可以进一步分割亮度cu。在该cu级,首先用信号通知亮度cu(包括在该级的所有子cu)语法,然后用信号通知色度cu语法。当chroma_split_end为假并且亮度cu停止分割时,色度cu可以被进一步分割。在该cu级,首先用信号通知亮度cu语法,然后用信号通知色度cu(包括在该级的所有子色度cu)语法。如果亮度和色度cu停止在相同的级,则在色度语法之前用信号通知亮度语法。

在熵编码中,当亮度cu停止分割时,可以使用上下文编码的bin或旁路bin(bypassbin)来用信号通知色度cu分割语法(例如,chroma_split_end或色度cu分割语法)。当使用上下文编码的bin时,可以将相邻色度cu信息用于上下文建模。chroma_split_end可以使用相同的上下文建模或者与单独的树色度分割语法相同的上下文建模和相同的上下文。例如,当亮度进行qt分割或当前色度cu需要确定是否使用qt分割时,chroma_split_end可以重用上下文建模或者上下文建模和qt分割或色度qt分割的上下文。为了确定色度bt或tt分割,bt/tt不分割标志上下文建模或者上下文建模和上下文用于确定chroma_split_end标志值。

在一个实施方式中,当亮度cu经历qt分割时,用信号通知色度qt分割标志以确定色度cu是否遵循亮度cu分割。当亮度cu经历bt或tt分割时,使用色度不分割标志或mtt分割标志(例如,mtt_split_cu_flag)来确定色度cu是否遵循亮度cu分割。如果色度cu遵循亮度cu分割,则分割类型(例如qt/hor.bt/ver.bt/hor.tt/ver.tt)也遵循亮度分割类型。可以跳过和推断分割方向和bt/tt选择的语法(例如,mtt_split_cu_vertical_flag和mtt_split_cu_binary_flag)。在一个示例中,当亮度cu经历bt或tt分割时,不用信号通知色度qt分割标志。在这种情况下,色度qt分割标志被推断成假。当亮度块停止分割时,可以用信号通知色度块分割语法(例如,qt_split_cu_flag、mtt_split_cu_flag、mtt_split_cu_vertical_flag和mtt_split_cu_binary_flag)。

在所提出的方法中,可以在亮度分割语法之前或之后用信号通知色度分割语法(例如,色度qt_split_cu_flag、色度mtt_split_cu_flag、色度mtt_split_cu_vertical_flag、色度mtt_split_cu_binary_flag、chroma_split_end和/或chroma_follow_luma_split_flag)。在一个实施方式中,在亮度分割语法之前用信号通知chroma_split_end或chroma_follow_luma_split_flag。在另一实施方式中,在亮度分割语法之后用信号通知chroma_split_end或chroma_follow_luma_split_flag。在另一实施方式中,在亮度分割语法之后用信号通知色度qt_split_cu_flag、色度mtt_split_cu_flag、色度mtt_split_cu_vertical_flag和/或色度mtt_split_cu_binary_flag、chroma_split_end。在另一实施方式中,在亮度分割语法之后并且在亮度cu数据语法之前,用信号通知chroma_split_end或chroma_follow_luma_split_flag。在另一实施方式中,在亮度分割语法之后并且在亮度cu数据语法之前,用信号通知色度qt_split_cu_flag、色度mtt_split_cu_flag、色度mtt_split_cu_vertical_flag和/或色度mtt_split_cu_binary_flag、chroma_split_end。在另一实施方式中,在亮度cu数据语法之后用信号通知色度分割语法(例如,色度qt_split_cu_flag、色度mtt_split_cu_flag、色度mtt_split_cu_vertical_flag、色度mtt_split_cu_binary_flag、chroma_split_end和/或chroma_follow_luma_split_flag)。在另一实施方式中,当亮度cu被分割时,在亮度分割语法之后并且在亮度cu数据语法之前,用信号通知色度分割语法(例如,色度qt_split_cu_flag、色度mtt_split_cu_flag、色度mtt_split_cu_vertical_flag、色度mtt_split_cu_binary_flag、chroma_split_end和/或chroma_follow_luma_split_flag)。当亮度cu不被分割时,在亮度cu数据语法之后用信号通知色度分割语法。

在一个实施方式中,色度cu分割的上下文可以与亮度cu分割不同。另外的上下文集用于色度cu分割。在另一实施方式中,亮度色度可以共享用于cu分割语法的相同的上下文集。在另一实施方式中,单独的上下文集用于亮度分量和色度分量的qt分割和/或mtt分割(例如,qt_split_cu_flag和/或mtt_split_cu_flag),共享上下文集用于分割方向和bt/tt选择的语法(例如,mtt_split_cu_vertical_flag和mtt_split_cu_binary_flag)。

在另一实施方式中,可以通过使用另一语法设计来实现使用chroma_split_end的语法的类似概念。例如,亮度编码树首先被编码或解码。当对亮度叶cu进行编码时或在对亮度叶cu进行编码之后,对语法进行编码/解析以指示色度叶cu大小。语法可以与划分深度(例如,qt深度、bt深度、tt深度、ct深度和/或总深度)相关。例如,这种语法可以被称为chroma_depth_above。如果chroma_depth_above等于0,则意味着色度cu和亮度cu使用相同的划分,并且具有相同的cu大小(在亮度分量单元中)。在4:2:0格式的情况下,实际色度cu大小是实际亮度cu大小的1/4。如果chroma_depth_above大于0(例如,等于k),则意味着色度cu划分在以上k深度处停止。例如,如果亮度叶cu具有等于3的qt深度和等于0的ct深度,则最大ctu大小为128,并且该亮度叶cu的大小为16×16。如果chroma_depth_above等于1,则意味着色度cu大小为32×32。色度cu的qt深度为2。在该示例中,如果在该32×32区域中用信号通知chroma_depth_above,则不针对随后的亮度叶cu用信号通知chroma_depth_above语法。例如,对于以下大小等于16×16(无需是叶cu)的3个亮度qtcu,不用信号通知chroma_depth_above语法。对于在下一32×32区域中的第一亮度叶cu,用信号通知chroma_depth_above语法。可以在第一亮度叶cu之后或在32×32区域之后用信号通知色度cu语法。基于以上示例中描述的chroma_depth_above值,将32×32区域用作示例。

在另一实施方式中,考虑了色度lm模式。由于lm模式是压缩色度分量数据的强大编码工具,所以可以利用以上公开的方法来应用lm模式语法快捷方式。例如,当chroma_split_end等于1时或当用信号通知chroma_depth_above时,可以应用lm语法。在一个实施方式中,当色度cu大小(在亮度采样大小中)大于或等于对应亮度cu大小时,lm模式有机会被启用(或也被称为允许)。在另一实施方式中,当chroma_split_end等于1时或当用信号通知chroma_depth_above时或当亮度和色度cu停止在相同级时(例如,亮度和色度共享在该以上的级中的相同的划分树,并且亮度不被分割,且色度在该相同的级不被分割),lm模式有机会被启用(或也被称为允许)。如果亮度划分停止并且色度被进一步分割,则lm模式被禁用。

在另一实施方式中,提出了自适应色度模式语法。色度模式语法可以是与帧内预测模式相关的语法、运动信息或与变换/残差相关的语法。当色度cu大小或深度小于、等于或大于对应亮度cu大小或深度时,色度语法顺序/码字可以不同。例如,如果色度cu大小小于对应亮度cu大小,或者如果色度cu深度大于对应亮度cu深度,则将dm模式语法或lm模式语法向后移动。例如,我们可以在最可能的模式列表中向后移动dm模式或lm模式候选,或者将dm模式语法或lm模式语法移动到正常语法位置之后。

在另一实施方式中,可以指定允许亮度和色度的统一划分的最大划分深度或最小块大小。可以在序列/图片/切片/图块组/图块级的高级语法中(例如,sps/pps/vps/切片头/图块组头/图块头)用信号通知最大划分深度或最小块大小。一旦划分深度超出最大深度,或者块大小变得小于最小大小,则仅允许进一步分割亮度分量和色度分量中的一个。在另一实施方式中,如果划分深度小于最大划分深度或块大小大于最小块大小,则应用亮度和色度的统一划分。一旦划分深度超出最大深度,或者块大小变得小于最小大小,则应用单独的亮度/色度编码树。

在另一实施方式中,就编码单元分割而言,亮度cu结构和色度cu结构应该具有一些相关度。为了减少编码运行时间并提高编码效率,色度cu分割应遵循亮度cu分割,但是色度cu分割可以提前终止或可以被进一步分割。例如,如果对应亮度cu正在使用qt分割/bt垂直分割/bt水平分割,则色度cu具有两个选项。一个是遵循亮度分割类型,而另一个是不进行分割。如果对应亮度cu不被分割,则色度cu可以被进一步分割。在另一实施方式中,色度cu不能被分割。可以在某些约束下推断提前终止标志或后续分割标志。例如,色度cu分割在前k层中始终遵循亮度cu分割。在另一示例中,当cu大小大于m×n时,色度cu分割始终遵循亮度cu分割。在另一示例中,色度qt分割始终遵循亮度qt分割。提前停止标志仅用于bt分割。

该约束可以是自我调整的。例如,k、m和n可以通过解碼的cu或相邻的cu得出。

在另一实施方式中,仅当色度cu和亮度cu具有相同的qt深度时才应用所提出的引导cu分割,这意味着如果它们的qt叶cu具有相同的大小,则色度bt分割遵循亮度bt分割。

在另一示例中,色度qt分割始终遵循亮度qt分割(即,共享相同的qt分割),但是对于bt分割没有约束。

在一个实施方式中,ctu可以被分割成子cu。当cu大小/形状大于预定的大小/形状时,应用共享的树划分。如果cu大小/形状等于或小于预定的大小/形状,则应用单独的树划分。预定的大小/形状可以是与最大变换单元大小相同,或者可以是m×n块或等于1024、2048、4096或8192的面积。m×n块可以是预定的(例如,64×64或32×32)、得出的块大小、最大tu大小、与最大/最小tu大小相关的大小、或面积等于预定的或得出的块面积的自我调整形状块(例如,块面积等于4096,或等于虚拟流水线数据单元(vpdu)的面积/大小)。在一个示例中,推断出ctu被分割成具有预定的大小/形状的多个第二块,然后将上述提到的所提出的方法应用于具有预定的大小/形状的多个第二块。第二预定的大小/形状可以与最大变换单元大小相同,或者可以是m×n块或等于1024、2048、4096或8192的面积。m×n块可以是预定的(例如,64×64或32×32)、得出的块大小、最大tu大小、与最大/最小tu大小相关的大小、或面积等于预定的或得出的块面积的自我调整形状块(例如,块面积等于4096,或等于虚拟流水线数据单元(vpdu)的面积/大小)。例如,首先能够推断出ctu被分割成多个64×64块或不能推断出被分割成多个64×64块。对于各个64×64块,如果cu大小大于32×32,则应用共享的树划分。如果cu大小等于或小于32×32,则应用单独的树划分。

可以在编码器和/或解码器中实现上述所提出的方法中的任一个。例如,所提出的方法中的任一个可以在编码器侧的熵编码模块、预测生成器或划分控制模块中实现。所提出的方法中的任一个也可以在编码器侧的熵解析模块、预测生成器或划分控制模块中实现。另选地,所提出的方法中的任一个可以被实现成联接到编码器侧的熵编码模块、预测生成器或划分控制模块的电路。所提出的方法中的任一个都可以被实现成联接到解码器的熵解析器模块、预测生成器或划分控制模块的电路,从而提供熵解析模块或划分控制模块所需的信息。

视频编解码器必须遵循上述语法设计,从而生成合法的比特流,并且视频解码器仅在如果解析处理符合上述语法设计的情况下才能够正确地对比特流进行解码。当在比特流中跳过语法时,编码器和解码器应该将语法值设置成推断值,以保证编码和解码结果匹配。

图8例示了根据本发明实施方式的具有从第一划分树划分的一个或更多个叶块与从第二划分树划分的一个或更多个叶块之间的自适应数据相关性的示例性编解码系统的流程图。流程图中所示的步骤以及本公开中的其它随后的流程图可以被实现成能够在编码器侧和/或解码器侧的一个或更多个处理器(例如,一个或更多个cpu)上执行的程序代码。流程图中所示的步骤也可以基于硬件(诸如,被布置成执行流程图中的步骤的一个或更多个电子装置或处理器)来实现。根据该方法,在步骤810中,接收与当前图片中的当前数据单元相关联的输入数据,其中,与当前数据单元相关联的输入数据包括亮度分量和色度分量。使用亮度划分树将亮度块划分成一个或更多个亮度叶块,并且使用色度划分树将色度块划分成一个或更多个色度叶块。在步骤830中,如果目标色度叶块不包括所述一个或更多个完整的亮度叶块,并且如果目标色度叶块不被完全包括在一个亮度叶块中,则目标色度叶块与所述一个或更多个对应亮度叶块之间的数据相关性是不允许的。

图9例示了根据本发明实施方式的具有从第一划分树划分的一个或更多个叶块与从第二划分树划分的一个或更多个叶块之间的自适应数据相关性的另一示例性编解码系统的流程图。根据该方法,在步骤910中,接收与当前图片中的当前数据单元相关联的输入数据,其中,与当前数据单元相关联的输入数据包括亮度分量和色度分量。在步骤920中,使用亮度划分树将亮度块划分成一个或更多个亮度叶块。在步骤930中,使用色度划分树将色度块划分成一个或更多个色度叶块。对亮度划分树中的第一节点和色度划分树中的第二节点执行步骤940。在步骤940中,如果对第一节点和第二节点中的一个没有应用分割,或者如果第一节点和第二节点中的一个使用第一分割,并且第一节点和第二节点中的另一个使用与第一分割相同或等效的第二分割或不使用分割,则与第一节点相关联的一个或更多个亮度叶块和与第二节点相关联的一个或更多个色度叶块之间的数据相关性是允许的,其中,色度划分树中的第二节点是亮度划分树中的第一节点的对应节点。

所示的流程图旨在例示根据本发明的视频编码的示例。本领域技术人员可以在不脱离本发明的精神的情况下修改各个步骤、重新布置步骤、拆分步骤或组合步骤以实践本发明。在本公开中,已经使用特定的语法和语义来例示实现本发明的实施方式的示例。技术人员可以在不脱离本发明的精神的情况下通过利用等效的语法和语义替换所述语法和语义来实践本发明。

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

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

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

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