基于块尺寸的变换限制的制作方法

文档序号:18978082发布日期:2019-10-29 03:27阅读:105来源:国知局
基于块尺寸的变换限制的制作方法

本原理涉及视频压缩领域。



背景技术:

在hevc视频压缩标准中,图像被分割为所谓的编码树单元(ctu),其尺寸通常是64×64,128×128或256×256像素。

每个ctu由压缩域中的编码树表示。这是ctu的四叉树分割,其中每个叶子称为编码单元(cu),如图1所示。

然后给每个cu某些帧内或帧间预测参数,也称为预测信息(predictioninformation或predictioninfo)。为此,将其在空间上划分为一个或多个预测单元(pu),每个pu被分配某些预测信息。在cu级别上分配帧内或帧间编码模式,如图2的示例中所示。

编码单元到预测单元的划分是根据划分类型完成的,在比特流中用信号通知。对于帧内编码单元,如图3所示,仅使用2n×2n和n×n的划分类型。这意味着在帧内编码单元中仅使用方形预测单元。

相反,帧间编码单元可以使用图3所示的所有划分类型。

根据hevc标准,编码单元按照“变换树”以递归方式也被分割为所谓的变换单元。因此,变换树是编码单元的四叉树分割,并且变换单元是变换树的叶子。变换单元封装对应于所考虑的方形空间区域的每个图片分量的方形变换块。变换块是单个分量中的方形样本块,其中应用相同的变换。

新兴的视频压缩工具包括压缩域中的编码树单元表示,作为在压缩域中以更灵活的方式表示图像数据的提议方式。编码树的这种灵活表示的优点在于,与hevc标准的cu/pu/tu布置相比,它提供了增加的压缩效率。

四叉树加二叉树(qtbt)编码工具提供了这种增加的灵活性。它包含在编码树中,其中编码单元可以以四叉树和二叉树方式分割。图4中图示了编码树单元的这种编码树表示。

可以通过速率失真优化过程在编码器侧决定编码单元的分割,该速率失真优化过程包括确定具有最小的速率失真成本的ctu的qtbt表示。

在qtbt技术中,cu具有方形或矩形形状。编码单元的尺寸总是2的幂,并且典型地从4到128。

除了用于编码单元的各种矩形形状之外,与hevc相比,这种新的ctu表示具有以下不同的特征:

·ctu的qtbt分解由两个阶段组成:首先以四叉树方式分割ctu,然后可以以二进制方式进一步分割每个四叉树叶子。这在图4的右侧图示了,其中实线表示四叉树分解阶段,而虚线表示在空间上嵌入四叉树叶子中的二进制分解。

·在帧内条带中,亮度和色度块划分结构是分开的,并且是独立决定的。

·不再采用将cu划分为预测单元或变换单元。换句话说,每个编码单元系统地由单个预测单元(先前的2n×2n预测单元划分类型)和单个变换单元(不分割为变换树)组成。

然而,与qtbt技术相比,需要进一步提高的压缩效率。



技术实现要素:

现有技术的这些和其它缺点和劣势由所描述的实施例中的至少一个来解决,这些实施例针对用于对视频数据块进行编码或解码的方法和装置。在至少一个实施例中,将视频数据块分割为子块,其中至少一个子块具有不是二的幂的高度或宽度的尺寸。

根据本文描述的至少一个一般实施例,提供了一种用于对视频数据块进行编码的方法。该方法包括将所述块分割为至少两个矩形子块;使用使得不需要不是二的幂的变换的处理来对具有在宽度或高度上不是二的幂的尺寸的子块进行编码。

根据本文描述的另一个一般实施例,提供了一种用于对视频数据块进行编码的装置,包括:存储器,以及处理器,其被配置为:将所述块分割为至少两个矩形子块,并且使用使得不需要不是二的幂的变换的处理来对具有在宽度或高度上不是二的幂的尺寸的子块进行编码。

根据本文描述的另一个一般方面,提供了上述两个实施例中的任一个,其中,所述处理包括,或者所述处理器还被配置用于:使用至少两个对应的预测器子块获得对于所述至少两个子块的残差;将所述至少两个子块的一个子块分割为至少两个较小的子块;对于所述至少两个子块的所述一个子块,计算单个dc系数;使用尺寸为二的幂的变换对每个所述较小子块进行变换,以在从每个所述较小子块中减去所述单个dc系数的重建版本之后生成变换系数,其中所述单个dc系数被包括在所述较小的子块中的一个的变换系数中。

根据本文描述的另一个实施例,提供了一种用于对视频数据块进行解码的方法,包括:使用使得不需要不是二的幂的逆变换的处理来对具有在宽度或高度上不是二的幂的尺寸的子块进行解码,其中所述子块从所述块分割为至少两个矩形子块。

根据本文描述的另一个实施例,提供了一种用于对视频数据块进行解码的装置,包括:存储器,以及处理器,其被配置为:使用使得不需要不是二的幂的逆变换的处理来对具有在宽度或高度上不是二的幂的尺寸的子块进行解码,其中所述子块从所述块分割为至少两个矩形子块。

根据本文描述的另一个一般方面,提供了前述两个实施例中的任一个,其中,所述处理包括,或者所述处理器还被配置用于:通过对与包括所述子块的第一较小子块相关联的变换系数进行熵解码,获得具有在宽度或高度上不是二的幂的尺寸的子块的dc系数;使用应用于所述dc系数的逆变换来重建所述子块的低通分量;通过对所述第一较小子块的ac系数应用逆变换并考虑dc系数等于零,应用所述第一较小子块的部分逆变换;对与所述子块的第二较小子块相关联的ac系数进行熵解码;通过对所述第二较小子块的ac系数应用逆变换并考虑dc系数等于零,对所述第二较小子块进行部分逆变换。

根据本文描述的另一个方面,提供了一种非暂时性计算机可读存储介质,其包含根据前述方法实施例中的任一个的方法或者由前述装置实施例中的任一个的装置生成的数据内容,用于使用处理器进行回放。

根据本文描述的另一个方面,提供了一种信号,其包括根据用于对视频数据块进行编码的前述方法实施例中的任一个的方法或者由用于对视频数据块进行编码的前述装置实施例中的任一个的装置生成的视频数据,用于使用处理器进行回放。

根据本文描述的另一个方面,提供了一种计算机程序产品,包括指令,当程序由计算机运行时,该指令使计算机进行前述方法实施例中的任一个的方法。

从以下结合附图阅读的示例性实施例的详细描述中,本原理的这些和其他方面、特征和优势将变得显而易见。

附图说明

图1示出了表示压缩图片的编码树单元和编码树概念的一个示例。

图2示出了编码树单元到编码单元、预测单元和变换单元的分割的示例。

图3示出了编码单元到预测单元的划分的示例。

图4示出了示例四叉树加二叉树编码树单元表示。

图5示出了qtbt+acu中的附加编码单元二进制非对称分割模式的示例。

图6示出了被选择用于对示例性图片进行编码的编码结构的示例。

图7示出了通用视频压缩方案。

图8示出了通用视频解压缩方案。

图9示出了所描述技术的一个方面的示例性实施例。

图10示出了所描述技术的一个方面的第二示例性实施例。

图11示出了所描述技术的一个方面的第三示例性实施例的第一变型。

图12示出了所描述技术的一个方面的第三示例性实施例的第二变型。

图13示出了所描述技术的一个方面的第四示例性实施例。

图14示出了所描述技术的一个方面的第四示例性实施例的第二变型。

图15示出了使用本文描述的一个一般方面对视频块进行编码的方法的一个实施例。

图16示出了使用本文描述的一个一般方面对视频块进行编码的方法的另一实施例。

图17示出了使用本文描述的一个一般方面对视频块进行解码的方法的一个实施例。

图18示出了使用本文描述的一个一般方面对视频块进行解码的方法的另一实施例。

图19示出了使用本文描述的至少一个一般方面的装置的一个实施例。

具体实施方式

描述了一种用于在视频压缩中提高压缩效率并降低复杂度的方案。

在本说明书中,针对在水平或垂直方向上具有3的倍数的尺寸的编码单元,提出了一种对编码单元进行编码的方式,使得不需要应用尺寸为3的倍数的变换。

因此,至少一个实施例允许使用非对称编码单元,同时避免在现有技术的编解码器设计中引入新的变换尺寸。

在hevc视频压缩标准中,图片被分割为所谓的编码树单元(ctu),其尺寸通常为64×64、128×128或256×256像素。

每个ctu由压缩域中的编码树表示。这是ctu的四叉树分割,其中每个叶子称为编码单元(cu),参见图1。

然后给每个cu某些帧内或帧间预测参数(预测信息)。为此,将其在空间上划分为一个或多个预测单元(pu),每个pu被分配某些预测信息。在cu级别上分配帧内或帧间编码模式,参见图2。

编码单元到预测单元的划分是根据划分类型完成的,在比特流中用信号通知。对于帧内编码单元,如图3所示,仅使用2n×2n和n×n的划分类型。这意味着在帧内编码单元中仅使用方形预测单元。

相反,帧间编码单元可以使用图3所示的所有划分类型。

根据hevc标准,编码单元按照“变换树”以递归方式也被分割为所谓的变换单元。因此,变换树是编码单元的四叉树分割,并且变换单元是变换树的叶子。变换单元封装对应于所考虑的方形空间区域的每个图片分量的方形变换块。变换块是单个分量中的方形样本块,其中应用相同的变换。

新兴的视频压缩工具包括压缩域中的编码树单元表示,作为在压缩域中以更灵活的方式表示图像数据的提议。编码树的这种灵活表示的优点在于,与hevc标准的cu/pu/tu布置相比,它提供了增加的压缩效率。

四叉树加二叉树(qtbt)编码工具提供了这种增加的灵活性。它包含在编码树中,其中编码单元可以以四叉树和二叉树方式分割。图4中图示了编码树单元的这种编码树表示。

可以通过速率失真优化过程在编码器侧决定编码单元的分割,该速率失真优化过程包括确定具有最小的速率失真成本的ctu的qtbt表示。

在qtbt技术中,cu具有方形或矩形形状。编码单元的尺寸总是2的幂,并且典型地从4到128。

除了用于编码单元的各种矩形形状之外,与hevc相比,这种新的ctu表示具有以下不同的特征:

·ctu的qtbt分解由两个阶段组成:首先以四叉树方式分割ctu,然后可以以二进制方式进一步分割每个四叉树叶子。这在图4的右侧图示了,其中实线表示四叉树分解阶段,而虚线表示在空间上嵌入四叉树叶子中的二进制分解。

·在帧内条带中,亮度和色度块划分结构是分开的,并且是独立决定的。

·不再采用将cu划分为预测单元或变换单元。换句话说,每个编码单元系统地由单个预测单元(先前的2n×2n预测单元划分类型)和单个变换单元(不分割为变换树)组成。

所描述的实施例涉及压缩中图像编码单元表示的域,并且旨在与qtbt技术相比进一步提高压缩效率。

在另一应用中,(非对称编码单元编解码器体系结构,ep-ipa16306308.4),提出引入具有由称为非对称分割模式的新二进制分割模式产生的新矩形形状的编码单元。

这意味着添加了新的矩形cu形状。这些新形状具有在宽度和/或高度上等于3·2n的尺寸。此外,具有在宽度或高度上为3的倍数的尺寸的cu可以进一步水平或垂直地以二进制方式分割。

因此,具有尺寸(w,h)(宽度和高度)的将通过所提出的非对称二进制分割模式中的一个(例如hor_up(水平向上))分割的方形编码单元,将导致具有各自矩形尺寸的2个子编码单元。

图6图示了由另一种方案修改的编码器选择的编码单元。可以看出,在该示例性图片中经常使用非对称编码单元。还注意到,这些附加编码单元拓扑有助于具有在空间上与原始信号中包含的结构和不连续性匹配的编码结构。

至少一个实施例提出了修改的编码框架,其中不涉及尺寸为3的倍数的变换。这允许限制编解码器中所支持的可分离变换的数量。

至少一个实施例的一个优点是它在编码器和解码器侧减少了存储与3的倍数的块尺寸相关联的变换基函数值所需要的存储量。

这些实施例解决的一个问题是如何支持具有在宽度和/或高度上等于3·2n的尺寸的编码单元的编码/解码,而无需计算具有这种尺寸的变换(例如,离散余弦变换、离散正弦变换等)。

在编解码器中引入了新的变换,以支持新块尺寸3×2n的变换编码。这导致存储新变换基函数值需要更大的存储量。

在另一应用(用于视频编码的多个帧内划分,ep-ipa16305160.0)中,提出通过将矩形块细分为称为变换单元的较小块来对矩形块进行编码,使得每个变换单元在空间上嵌入在矩形块中。

关于非对称cu,可以采用类似的方案。这将包括将矩形块分割为具有在宽度或高度上等于2的幂的尺寸的变换子块。与使用等于矩形块的尺寸的变换尺寸相比,这种方案的缺点在于将块分割为若干变换子块会降低编码效率。

在本文的以下部分中提供了若干实施例以支持具有在宽度和/或高度上等于3·2n的尺寸的块的编码/解码,这与所述的现有技术相比是新的,并且不涉及具有尺寸3×2n的变换。

由所描述的实施例解决的标准视频编码模块涉及图片分割为编码单元(105)、变换(125)和逆变换(150/250)。

第一实施例包括在具有希望避免执行变换的尺寸的块中迫零残差。这在图9中图示了。

这采用帧内编码cu的形式,其cbf语法元素等于0,这表明对于所考虑的块没有对非零变换系数进行编码。

在优选变型中,对于这些块尺寸,cbf_luma,cbf_cb和/或cbf_cr语法元素没有被编码到比特流中。相反,解码器推断它们的值对于这些块尺寸等于零。

在inter编码单元的情况下,该实施例采用以下形式中的一个:

-对于想要避免支持专用变换集的cu尺寸,将与cu相关联的cu_skip_flag语法元素系统地设置为真。在变型中,cu_skip_flag语法元素未被编码,并且在解码器侧被推断为等于假。

-将与cu相关联的rqt_root_cbf标志在编码器侧设置为0,并发送到解码器。根据变型,不发送rqt_root_cbf标志,并且在解码器侧被推断为0。

-将cbf_luma、cbf_cb和/或cbf_cr标志设置为0,并编码到比特流中。根据变型,它们不被发送并且在解码器侧被推断为0。

根据变型,允许所有上述三种配置,并且通过速率失真优化过程由编码器选择最佳配置。解码器解析jem语法的hevc以确定这些配置中的哪个配置用于当前cu。

本节介绍第二个提出的实施例,该实施例对具有不希望支持专用变换的尺寸的块进行编码/解码。该块尺寸是3×2n,因为它是从具有等于2的幂的尺寸的父cu的非对称分割产生的。

对于在水平方向上非对称地分割的示例性编码单元(hor_up分割模式),该实施例在图10中示出。示出了在编码器侧发生的主块划分、预测和变换步骤。可以看出,残差0子块被正常处理,因为它在垂直和水平方向上具有等于2的幂的尺寸。因此,它导致变换块tb0,其通过尺寸在宽度和高度上为的2的幂的2d可分离变换以常规的方式进行处理。

相反,关于与具有至多一个变换系数(其是dc系数)的尺寸3×2n的块相关联的残差。

因此,在该实施例中,将具有尺寸3x2n的一个块编码为具有零残差,或者具有由单个dc变换系数构成的残差。

与第一实施例相比的优点是改进的速率失真性能,因为由于部分编码的残差,可以减少所考虑的块的失真。另一优点是不必为块尺寸3x2n计算完整的dct变换。实际上,在正向变换过程中计算dc系数仅包括计算块的平均值,因此不需要对所考虑的块尺寸进行特定处理。关于逆变换,逆变换和逆量化仅包括缩放操作,因为变换块仅由dc系数构成。

因此,该实施例解决了上面介绍的一个问题。

在图11中示出了处理具有尺寸3x2n的块而不执行具有这种尺寸的变换的第三实施例。该实施例包括第二实施例的更高级版本。它包括为图11中标记为“残差1”的整个块计算单个dc变换系数。

该单个dc系数在图11的左下部分以深灰色示出。此外,块“残差1”被分成2个子块,称为变换块,标记为tb1a和tb1b。这种分割使得两个得到的变换块具有在宽度和尺寸上等于的2的幂的尺寸。如图11的底部中间所示,如果父编码单元在所考虑的方向上具有尺寸2n,则“残差1”子cu在该方向上具有尺寸因此,两个变换块具有分别等于和2n-1的尺寸。这使得可以通过具有大小2n-2和2n-1的现有变换来计算与每个变换块tb1a和tb1b相关联的ac系数。为此,在空域中重建公共dc系数。然后从块“残差1”中减去该部分重建的块,然后在每个块tb1a和tb1b上应用两个部分变换,以分别产生与这两个变换块相关联的ac系数。

在解码器侧,纹理块“残差1”的重建过程包括以下步骤:

-通过对与变换块tb1a相关联的变换系数进行熵解码来获得整个子cu的dc系数。

-通过对该单个dc系数应用的逆量化和逆变换,重建“残差1”块的低通分量。

-通过对其ac系数应用逆变换并考虑零dc系数,应用块tb1a的部分逆变换。

-对与变换块tb1b相关联的ac系数进行熵解码。

-通过对其ac系数应用适当的逆变换,并考虑dc系数等于零,对变换块tb1b进行部分逆变换。

图12是第三实施例的第二变型,其中“残余1”块到变换块tb1a和tb1b的空间分割不同于图11的空间分割。这里,在垂直方向上,tb1a具有尺寸2n-1,并且子块tb1b在垂直方向上具有尺寸2n-2

第三实施例的优点在于,与实施例2相比,它进一步提高了编解码器的压缩效率,因为它允许对在一个方向上具有尺寸3x2n的块以所需质量水平进行编码。

因此,它是对实施例1和2的进一步改进,其中除了skip模式和用于块尺寸3x2n的单个dc系数配置之外,还可以对这种块尺寸的ac系数进行编码。

与使用变换树生成小于所考虑的cu的变换单元的现有技术相比,实施例2还通过“分解”dc系数来提高编码效率。实际上,它仅对两个变换块集的一个dc系数进行编码。

第四也是最后实施例在本节中介绍。基本思想是利用所采用的二维(2d)变换的可分离属性。实际上,通过在一个方向上连续应用一维(1d)变换,然后在另一个方向上应用另一个1d变换来计算2d变换。

因此,在块在一个方向上具有尺寸3x2n但是在另一个方向上具有尺寸2m的情况下,则可以将残差块分割为2个变换子块,但是仅计算一个方向上的1d变换。在另一个方向(具有尺寸2m)上,可以在整个块“残差1”上应用具有尺寸2m的变换,而不将其分割为两个空间子部分。

这在图13中图示了。可以看出,在该示例中,水平变换在整个残差块上执行,因为其尺寸在该方向上等于2m。因此,可以在该方向上使用具有尺寸2m的经典变换。

相反,示例性块在垂直方向上的尺寸为因此,对于该方向,提出采用分别具有尺寸2n-2和2n-1的两个1d子变换。这在图13的左下部分图示了,其中形成2个子块(tb_ver_a和tb_ver_b),仅执行整个非对称块“残差1”的垂直变换。

图14示出了实施例4的变形。除了在两个变换子块tb_ver_a和tb_ver_b之间共享单个dc系数之外,这是与图13的实施例相同的实施例。

图15示出了用于对视频数据块进行编码的方法1500的一个实施例。该方法在开始框1501处开始并前进到框1510,用于将块分割为至少两个矩形子块。控制从框1510前进到框1520,用于使用使得不需要不是二的幂的变换的处理来对具有在宽度或高度上不是二的幂的尺寸的子块进行编码。

图16示出了用于对视频数据块进行编码的方法1600的另一实施例。该方法在开始框1601处开始并且前进到框1610,用于使用至少两个对应的预测器子块来获得至少两个子块的残差。控制从框1610前进到框1620,用于将至少两个子块中的一个子块分割为至少两个较小的子块。然后,控制从框1620前进到框1630,用于计算至少两个子块的一个子块的单个dc系数。然后,控制从框1630前进到框1640,用于使用尺寸为二的幂的变换来对每个较小的子块进行变换,以在从每个较小的子块减去单个dc系数的重构版本之后生成变换系数,其中,单个dc系数包括在较小子块中的一个的变换系数中。

图17示出了用于对视频数据块进行解码的方法1700的一个实施例。该方法在开始框1701处开始并且前进到框1710,用于使用使得不需要不是二的幂的逆变换的处理来对具有在宽度或高度上不是2的幂的尺寸的子块进行解码。然后,控制从框1710前进到框1720,其中将至少两个矩形子块合并为块。

图18示出了用于对视频数据块进行解码的方法1800的另一实施例。该方法在开始框1801处开始并且前进到框1810,用于通过对与包括子块的第一较小子块相关联的变换系数进行熵解码,获得具有在宽度或高度上不是二的幂的尺寸的子块的dc系数。然后,控制从框1810前进到框1820,用于使用应用于dc系数的逆变换来重建子块的低通分量。然后,控制从框1820前进到框1830,用于通过对第一较小子块的ac系数应用逆变换并考虑dc系数等于零,应用第一较小子块的部分逆变换。然后,控制从框1830前进到框1840,用于对与子块的第二较小子块相关联的ac系数进行熵解码。然后,控制从框1840前进到框1850,用于通过对第二较小子块的ac系数应用逆变换并考虑dc系数等于零,对第二较小子块进行部分逆变换。

图19示出了用于对视频数据块进行编码或解码的装置1900的一个实施例。该装置包括处理器1910,其具有输入和输出端口并且与同样具有输入和输出端口的存储器1920信号连接。装置可以运行任何上述方法实施例或变型。

可以通过使用专用硬件以及能够运行与适当软件相关联的软件的硬件来提供图中所示的各种元件的功能。当由处理器提供时,功能可以由单个专用处理器、单个共享处理器或其中某些可以共享的多个单独的处理器提供。此外,术语“处理器”或“控制器”的明确使用不应被解释为专指能够运行软件的硬件,并且可以隐含地包括但不限于数字信号处理器(“dsp”)硬件,用于存储软件的只读存储器(“rom”),随机存取存储器(“ram”)和非易失性存储器。

也可以包括其他常规和/或定制的硬件。类似地,图中所示的任何开关仅是概念性的。它们的功能可以通过程序逻辑的操作、通过专用逻辑、通过程序控制和专用逻辑的交互来进行,或甚至手动地进行,特定技术可由实施者选择,如从上下文中更具体地理解的。

本说明书说明了本发明的想法。因此,应当理解,本领域技术人员将能够设计各种体现本发明的想法的布置,这些布置虽然未在本文中明确描述或示出,但包括在本发明的范围内。

本文所述的所有示例和条件语言旨在用于教学目的以帮助读者理解本原理和发明人提供的概念,以促进本领域,并且应被解释为不限于这些具体所述的示例和条件。

此外,这里所述本原理的原理、方面和实施例的所有陈述以及其具体示例旨在包含其结构和功能等同物。另外,这些等同物旨在包括当前已知的等同物以及将来开发的等同物,即,开发的执行相同功能的任何元件,而不管结构如何。

因此,例如,本领域技术人员将理解,本文呈现的框图表示体现本原理的说明性电路的概念图。类似地,应当理解,任何流程图、流程示意图、状态转换图、伪代码等表示可以基本上在计算机可读介质中表示并因此由计算机或处理器运行的各种过程,无论这样的计算机或处理器是否已明确示出。

在本发明的权利要求中,表示为用于执行指定功能的部件的任何元件旨在包含执行该功能的任何方式,包括例如a)执行该功能的电路元件的组合或b)任何形式的软件,因此,包括固件,微代码等,与用于运行该软件以执行该功能的适当电路相结合。由这些权利要求限定的本原理在于,由各种所述部件提供的功能以权利要求所要求的方式组合并结合在一起。因此认为可以提供这些功能的任何部件都等同于本文所示的部件。

说明书中对本原理的“一个实施例”或“实施例”及其其他变型的引用意味着结合实施例描述的特定特征、结构、特性等至少包括在本原理的一个实施例中。因此,短语“在一个实施例中”或“在实施例中”的出现,以及在整个说明书中的各个地方出现任何其他变型的,不一定都指代相同的实施例。

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