用适应性次要变换信令编解码视频数据的方法以及装置与流程

文档序号:27615754发布日期:2021-11-29 13:12阅读:107来源:国知局
用适应性次要变换信令编解码视频数据的方法以及装置与流程

1.本发明涉及视频编解码系统中编码或解码视频数据的视频处理方法以及装置。具体地,本发明涉及有条件次要变换(secondary transform)信令的编码或解码方法。


背景技术:

2.高效视频编解码(hevc)标准是由来自itu

t研究小组的视频编解码专家的联合视频编解码小组(jct

vc)开发的最新视频编解码标准。hevc标准依赖于基于块的编解码结构,其将每一视频图像拆分成非重迭的正方形编码树单元(ctu)。视频图像或条带(slice)中每一单个ctu以光栅扫描次序(raster scanning order)进行处理。在hevc主规格中,ctu的最大以及最小尺寸由序列参数集(sps)中发信的语法元素指定。编解码图像可以由条带的集合表示,以及每一条带包括整数数目的ctu。双向预测(b)条带可以使用帧内预测或帧间预测预测b条带中每一块的样本值来进行解码,帧间预测使用最多两个运动向量以及参考索引。预测(p)条带使用帧内预测或帧间预测预测p条带中每一块的样本值来进行解码,帧间预测使用至多一个运动向量以及参考索引。帧内(i)条带仅使用帧内预测来进行解码。
3.每一ctu使用四叉树(quadtree,qt)拆分结构进一步被递回地拆分成一个或多个非重迭编码单元(cu)来适应各种局部特性。在qt拆分结构的每一拆分深度上,n
×
n块是单个叶cu(leaf cu)或者用于相等的n/2
×
n/2尺寸拆分成四个更小的块。尺寸m
×
m的ctu图元样本是四叉树编码树的根节点(root node),以及四个m/2
×
m/2块是从根节点拆分的子四叉树节点。每一四个m/2
×
m/2块可以成为由另一个qt拆分来分割的父节点(parent node)来生成四个子节点(child node),尺寸在每一空间维度上减少一半。如果编码树节点不被进一步拆分,其称为叶cu。叶cu尺寸被限制与大于或等于最小允许的cu尺寸,其也在sps中指定。在图1中示出了递回四叉树拆分结构的示例,其中实线指示ctu 10中的cu边界。
4.一旦ctu被拆分成多个叶cu,每一叶cu根据hevc标准的用于预测的pu拆分类型被进一步拆分成一个或多个预测单元(pu)。不像cu的递回四叉树拆分,每一叶cu可以仅被拆分一次来形成一个或多个pu。因为相同的预测进程被应用于pu中的所有图元样本,pu与相关cu语法作为共用预测资讯的基础代表块。预测资讯在pu基础上被传达给解码器。在获得由基于pu拆分类型的预测进程生成的残差后,根据残差四叉树(residual quadtree,rqt)拆分结构,属于叶cu的残差被分割成一个或多个变换单元(tu)用于将残差变换成变换系数(transform coefficient)。图1总虚线指示ctu 10中的tu边界。tu是用于将变换以及量化应用于残差数据或变换系数的基础代表块。对于每一tu,具有与tu相同尺寸的变换矩阵被应用于残差来生成变换系数,以及这些变换系数在tu的基础上被量化并被传达给解码器。
5.术语编码树块(ctb)、编码块(cb)、预测块(pb)以及变换块(tb)被定义为分别指定与ctu、cu、pu以及tu相关的一个色彩分量的二维(2

d)样本阵列。例如,tu由4:2:0格式编码的图像的一个亮度(luma)tb、两个色度(chroma)tb以及其相关的语法元素组成。类似的关系也适用于ctu、cu以及pu。在hevc系统中,除非达到色度块的最小尺寸,相同的四叉树拆分结构通常被应用于亮度以及色度分量两者。
6.itu

t sg16 wp3以及iso/iec jtc1/sc29/wg11的联合视频专家组(jvet)目前正在建立下一代视频编解码标准通用视频编解码(versatile video coding,vvc)。各种有希望的工具被开发并在即将到来的新兴vvc中被采用,例如变换跳过模式以及减少的次要变换。
7.变换跳过模式变换跳过模式(transform skip mode,tsm)是在不经过变换操作的情况下通过熵编解码来处理已量化残差讯号的编解码工具。tsm中编解码的块的已量化残差讯号在样本域(sample domain)中被直接地编码而不是被变换到频率域。tsm被发现对屏幕内容编解码(screen content coding)尤其有效,尤其是对具有锐利边缘以及简单色彩的区域。在vvc工作草案中,tsm由高层级语法控制,例如,启用旗标可以用于选择开启或关闭tsm,以及语法元素可以用于发信应用tsm的尺寸约束。例如,tsm被允许应用于宽度或高度大于或等于32亮度样本的变换块。当tsm被启用时,变换块层级旗标被发信来指示tsm是否被应用于当前变换块。当tsm被用于变换块时,依赖量化(dependent quantization)以及符号数据隐藏都被禁用。tsm中编解码的残差由单独的解析进程来处理。
8.减少的次要变换减少的次要变换(reduced secondary transform,rst)是vvc中提出的新编解码工具来进一步改善编解码效率。rst在一些提案中也被称为低频率不可分变换(low frequency non

separable transform,lfnst)。rst仅被应用于帧内编解码的块。rst的主要概念是将n维向量映射成不同空间中的r维向量,其中r小于n以及r/n是减少因数。rst矩阵tr
×
n是r
×
n矩阵,如下:
[0009][0010]
其中变换的r列(row)是n维空间的r基。rst的逆变换矩形是正向变换矩阵的转置。在图2中描绘了正向以及逆rst操作。
[0011]
有两个rst类型,包括rst 8
×
8类型以及rst 4
×
4类型,根据当前变换块的块尺寸来选择。当宽度以及高度的最小值大于或等于8时(其意味着变换块的宽度(w)以及高度(h)两者都大于4),选择rst 8
×
8类型,以及当宽度或高度小于或等于4时,选择rst 4
×
4类型。在具有减少因数4(即,1/4尺寸)的rst 8
×
8类型的示例中,在编码器侧使用16
×
64 rst矩阵,以及在解码器侧使用64
×
16逆rst矩阵。16x64 rst矩阵的输入是8
×
8左上区域的主要(primary)变换系数以及矩阵的输出是16个次要变换系数。正向rst 8
×
8类型应用16
×
64矩阵(或8
×
64矩阵用于8
×
8块)来作用在给定8
×
8左上区域,并在左上4
×
4区域中生成非0系数。换言之,在应用次要变换后,除了左上4
×
4区域之外的左上8
×
8区域将仅具有0系数。在rst 8
×
8类型的另一个示例中,在编码器侧使用16
×
48 rst矩阵,以及在解码器侧使用48
×
16逆rst矩阵。16
×
48rst矩阵的输入是8x8左上区域的首先48个变换系数,其可以是首先3个4
×
4子块,以及矩阵的输出是16个次要变换系数。正向rst 8
×
8类型应用16
×
48矩阵(或8
×
48矩阵用于8
×
8块)来作用在左上4
×
4区域(或首先8个系数,其在左上4x4区域或在整个变换块中可以是对角线扫描的顺序)生成非0系数。换言之,在应用次要变换后,除了左上4
×
4区域之外的左上8
×
8区域将仅具有0系数。对于每一块选择的rst 4
×
4类型,应用16
×
16(或8
×
16矩阵用于4
×
4块)直接矩阵乘法。如果变换块的宽度(w)以及高度(h)都大于
4,那么rst 8
×
8类型被应用于变换块的左上8
×
8区域的主要变换系数。否则,如果变换块的宽度(w)以及高度(h)的最小值等于4,rst 4
×
4类型被应用于变换块的左上4
×
4区域的主要变换系数。否则,如果变换块的宽度(w)以及高度(h)的最小值小于4,rst不被应用于变换块。
[0012]
当满足后续两个条件时,逆rst被条件地应用。当块尺寸大于或等于给定阈值时满足第一条件,例如,当宽度大于或等于4以及高度大于或等于4时。当变换跳过模式旗标等于0时满足第二条件。
[0013]
rst索引等于0指示rst不被应用于当前cu,否则rst索引指示哪一次要变换要点(knernel)被选择用于当前cu。rst被应用于帧内以及帧间条带两者中的帧内cu。在当双树(dual tree)被启用的情况下,亮度以及色度分量的rst索引被分别发信。在当双树被禁用的情况下,对于帧间条带中的每一帧内cu,单个rst索引被发信并用于亮度或色度分量。
[0014]
帧内子分割(intra sub

partition,isp)模式是vvc中提出的新的帧内预测模式。isp模式的描述如下。isp根据它们的块尺寸垂直或水准地将亮度帧内预测块拆分成2或4个子分割。对于每一子分割,通过将残差信号添加到预测信号获得重构样本。这里,通过如熵解码、逆量化以及逆变换的进程生成残差信号。因此,每一子分割的重构样本值是可用的来生成下一子分割的预测,以及每一子分割被重复地处理。此外,待处理的第一子分割是包含cu的左上样本然后继续向下(水准拆分)或者向右(垂直拆分)的子分割。结果,用于生成子分割预测信号的参考样本仅位于分割线的左边以及上侧。所有子分割共用相同的帧内预测模式。rst被禁用或者被条件地应用于isp编解码的块。当次要变换对isp模式是禁用的时,rst索引不被发信。对isp预测的残差禁用rst可以减少编码复杂度。
[0015]
rst选择根据块尺寸与/或帧内cu的帧内预测模式,首先从四个变换集合中选择用于帧内cu的次要变换集合(set)。每一变换集合由两个变换矩阵(也称为要点(kernel))组成,以及当rst索引大于0时,rst索引用于从所选变换集合中选择一个变换矩阵。当在cu层级发信的rst索引等于1时,选择所选变换集合中的要点1,以及当在cu层级发信的rst索引等于2时,选择所选变换集合中的要点2。如果色度分量的三个交错分量线性模型(cross component linear model,cclm)模式之一被指示,用于亮度分量的对应的帧内预测模式用于选择变换集合。如表1所示,基于帧内预测模式选择变换集合。
[0016]
表1变换集合选择表
[0017]
intrapredmode变换集合索引intrapredmode<010<=intrapredmode<=102<=intrapredmode<=12113<=intrapredmode<=23224<=intrapredmode<=44345<=intrapredmode<=55256<=intrapredmode1
[0018]
表1中的索引intrapredmode是当前cu的帧内预测模式编号,其具有[

14,83]的范围,包括常规(regular)帧内方向模式以及广角帧内预测(wide angle intra prediction,waip)模式。
[0019]
rst的简化简化方法限制每一样本乘法的较差情况数目为小于或等于8。例如,当所有tu由4
×
4 tu或8
×
8 tu组成时,发生rst 8
×
8和rst 4
×
4类型的乘法计数方面的较差情况。顶部8
×
64以及8
×
16矩阵,换言之,来自每一矩阵顶部的首先8个变换基础向量,被分别应于8
×
8 tu以及4
×
4 tu。在tu大于8
×
8的情况下,较差情况不发生以致一个16
×
64矩阵(即,rst 8
×
8类型)被应用于tu的左上8
×
8区域。对于8
×
4或4
×
8 tu,一个16
×
16矩阵(即,rst 4
×
4)仅被应用于左上4
×
4区域,排除其他左上8
×
8区域中的其他4
×
4区域来避免较差情况发生。在处理4
×
n或n
×
4 tu的情况下(其中n大于或等于16),rst 4
×
4类型被应用于两个相邻顶部左上4
×
4块的一个或每一个。根据前述提到的简化,乘法计数的较差情况数目变成每一样本8乘法器。
[0020]
减少维度的rst矩阵为了减少储存需求以及计算复杂度,具有减少维度的rst矩阵(如16
×
48矩阵)被应用而不是具有相同变换集合配置的16
×
64矩阵。每一16
×
48矩阵取来自左上8
×
8区域中三个4
×
4区域(排除右下4
×
4区域)的主要系数。图3示出了应用主要以及次要变换到m
×
n变换块的示例。m
×
n残差块32由2d正向主要变换处理来生成m
×
n主要系数34,其中在这一示例中,n以及m大于8。m
×
n主要系数34的左上8
×
8区域中的首先三个4
×
4区域由正向次要变换使用16
×
48要点进一步处理。除了所生成块36的左上8
×
8区域中的第一子块362,所生成块36中的系数用0填充。16
×
48要点的16个输出次要系数被存储于左上4
×
4子块362,而这一变换块中其他子块的系数在次要变换后被重设为0。根据减少的维度设计,用于存储所有rst矩阵的储存使用从10kb减少到8kb,并有一个合理的性能下降。结果,16
×
48与8
×
48变换矩阵被采用用于rst 8
×
8类型以及16
×
16与8
×
16变换矩阵被采用用于rst 4
×
4类型。因为有4个变换集合以及每一变换集合包含2个变换矩阵,8个不同的16
×
48矩阵以及8个不同的16
×
16矩阵对次要变换是可用的。每一8
×
48矩阵由对应的16
×
48矩阵来导出,以及类似地,每一8
×
16矩阵由对应的16
×
16矩阵来导出。例如,8
×
8矩阵仅是对应16
×
48矩阵的顶部8行(row)。例如,8
×
16矩阵仅是对应16
×
16矩阵的顶部8行。8
×
48矩阵用于8
×
8tb的次要变换以及8
×
16矩阵用于4
×
4tb的次要变换。在当tb尺寸等于8
×
4或4
×
8的情况下,16
×
16矩阵仅被应用于左上4
×
4子块,以致次要变换忽略其他4
×
4子块。在当tb尺寸是4
×
n或n
×
4的情况下,其中n大于或等于16,16
×
16矩阵被应用于首先一个或两个相邻4
×
4子块。对于宽度或高度都大于或等于8的其他tb,16
×
48矩阵被应用于左上8
×
8区域。
[0021]
rst信令如前述描述的,rst索引用于指示是否应用次要变换以及从对应的变换集合中选择次要变换矩阵。在发信tu语法后,在cu层级发信rst索引。在rst的示例中,具有16列变换(即,r=16)的正向rst 8
×
8使用16
×
64或16
×
48矩阵来仅在给定左上8x8区域内的左上4x4区域中生成非0系数。换言之,如果应用rst,除了左上4x8区域之外的该8x8区域仅包含0系数。结果,当在左上8
×
8块区域而不是左上4
×
4区域中检测到任何非0系数时,因为其暗示不应用rst,rst索引不被发信或被解析。如果未被发信,rst索引被推断为0。图4示出了针对非0系数扫描变换块的8
×
8区域中的第64位置到第17位置以检测rst是否被应用于该变换块。在rst的另一个示例中,具有16列变换(即,r=16)的正向rst 8
×
8使用16
×
64或16
×
48矩阵来仅在左上4x4区域中生成非0系数。换言之,如果应用rst,除了左上4
×
4区域,变换块仅包含0系数。结果,当在变换块内而不是左上4
×
4区域内检测到任何非0系数时,因为其暗示rst不被应用,rst索引不被发信或解析。如果未被发信,rst索引被推断为0。
[0022]
在发信一个cu内属于每一tu的语法后,次要变换语法(如rst索引)在cu层级被发信。每一tu的语法可以包括tu的最后有效系数(last significant coefficient)位置的信令以及tu中每一编解码组(coding group)的有效旗标(significant flag)的信令。对于最后有效系数所位于的一编解码组,用于该编解码组的有效旗标不需要被发信以及被推断为真。对于亮度分量,当isp被选择时,编解码组可以是一个tu中的4
×
4子块或者可以是更小的子块。对于色度分量,对于帧内条带,编解码组可以是4
×
4子块以及对于帧间条带,编解码组可以是2
×
4/4
×
2/4
×
4子块。
[0023]
目前,仅对亮度以及色度分量两者的帧内块执行次要变换。次要变换索引的值是从0到n,例如,n是2。次要变换索引等于0指示次要变换不被应用。rst索引用截断一元码(truncated unary code)来发信。例如,第一二进位数字(bin)是上下文编解码的以及第二二进位数字是旁路编解码的。又例如,第一以及第二二进位数字是上下文编解码的。


技术实现要素:

[0024]
视频编码系统中用于编码视频图像的视频数据的视频处理方法,包括接收与一当前图像中一当前块有关的输入数据,决定以及应用一变换操作到与该当前块的一个或多个tb相关的残差来生成最终变换系数,决定该当前块中每一tb的最终变换系数的一最后有效系数的一位置并将该最后有效系数的一个或多个位置与一预定位置进行比较。如果该最后变换系数的至少一个位置大于该预定位置,根据应用于该当前块的该变换操作,该视频编码系统进一步决定一次要变换索引的一值,在一视频比特流中发信该次要变换索引,或者如果该最后有效系数的该一个或多个位置小于或等于该预定位置,跳过发信该次要变换索引,以及根据该最后变换系数编码该当前图像中的当前块。
[0025]
例如,当前块是当前cu,以及在该当前块的所有tb后,在一cu层级发信该次要变换索引。在一个实施例中,该当前块是包含一个或多个亮度tb的亮度编解码块(cb)或者该当前块是包含一个或多个色度tb的色度cb,以及根据该一个或多个亮度tb中该最后有效系数的一个或多个位置,适应性地发信该次要变换索引用于该当前亮度cb中的一个或多个亮度tb,或者根据该一个或多个色度tb中最后有效系数的该一个或多个位置适应性地发信该次要变换索引用于该当前色度cb中的该一个或多个色度tb。在另一个实施例中,该当前块是包含一个或多个亮度tb以及一个或多个色度tb的一cu,以及根据该一个或多个亮度tb、一个或多个色度tb或者亮度以及色度tb两者中该最后有效系数的该一个或多个位置,适应性地发信该次要变换索引。对该一个或多个亮度tb、一个或多个色度tb或者亮度与色度tb两者执行该变换操作。例如,根据该当前cu的亮度与色度tb中最后有效系数的位置,发信或者不发信该次要变换索引,以及仅对一个或多个亮度tb执行该变换操作。在另一个示例中,假定在当前cu中仅有一个亮度tb,根据该当前cu中该亮度tb的该最后有效系数的该位置,发信或者不发信该次要变换索引,以及仅对该亮度tb执行该变换操作。在另一个示例中,假定在该当前cu中有多个亮度tb与/或多个色度tb,根据该当前cu中的一个或多个亮度tb中该最后有效系数的位置,发信或者不发信该次要变换索引,以及仅对一个或多个亮度tb执行该变换操作。在一些实施例中,次要变换仅被应用于帧内编解码的块,以及视频处理方法进一步包括由帧内预测预测该当前块来生成该当前tb的残差。用于每一非帧内编解码的块的该变换操作不包括次要变换。
[0026]
在一优先实施例中,该预定位置是一tb中的一第一位置以及该第一位置是包含一dc值的位置0。在另一个实施例中,该预定位置是一第一编解码组中的固定位置(x,y)。根据一处理次序,该第一编解码组是该当前块的一左上8x8区域的一第一4x4子块,以及x与y是从0到(最大编解码组尺寸

1)中选择的整数。
[0027]
在一些实施例中,该处理方法进一步包括决定次要变换是否被应用于该当前块中的该一个或多个tb,以及如果应用次要变换,该变换操作包含主要变换然后次要然后,或者如果不应用该次要变换,该变换操作仅包括主要变换。在一个实施例中,如果在对每一tb应用变换操作后在每一tb中仅有一个dc值,该视频编码系统决定次要变换不被应用于该当前块中的该一个或多个tb。在一个实施例中,该处理方法进一步包括如果该次要变换不被应用,在该当前块后,发信与残差编解码有关的一个或多个语法元素用于该一个或多个tb解析。即,如果应用次要变换,该一个或多个语法元素不被发信。语法元素的实施例是预定编解码组的有效旗标。例如,当次要变换不被应用时,仅在视频比特流中发信次要变换的归零区域的有效旗标。该次要变换的归零区域是在次要变换后所有变换系数被设置为0的区域,例如,在次要变换后,除了左上4x4子块之外,该变换块中的所有变换系数被设置为0。
[0028]
在一个实施例中,该当前块是一tb以及在发信该当前块的系数后或者在发信该当前块的该最后有效系数的位置后,发信该次要变换索引。在一些实施例中,将该最后有效系数的一个或多个位置与一预定位置的步骤仅被应用于该当前块中所考虑的tb,以及发信或跳过发信该次要变换索引的步骤仅取决于所考虑tb的该最后有效系数的位置。所考虑tb的一些示例性实施例包括:该当前块中的所有tb、仅该当前块中的亮度tb、仅该当前块中的色度tb、仅该当前块块具有有效系数的tb、该当前块中预定子集的tb以及除了不被允许次要变换之外的所有tb。例如,如果一tb宽度或一tb高度小于4样本,tb不备允许次要变换,或者如果tb有变换跳过处理,tb不被允许次要变换。在当前块中没有所考虑tb的情况下,次要变换不被应用于该当前块中的任何tb。
[0029]
视频解码方法的实施例接收携带与一当前视频图像中一当前块有关的输入数据的一视频比特流,从该视频比特流中解析与该当前块的一个或多个tb有关的一个或多个最后有效系数位置语法,从对应的最后有效位置语法决定每一tb的一最后有效系数的位置,将该最后有效系数的一个或多个位置与一预定位置进行比较,如果用于一个或多个tb的该最后有效系数的该一个或多个位置小于或等于该预定位置,通过推断一次要变换索引决定该当前块的一逆变换操作,或者如果该最后有效系数的至少一个位置大于该预定位置,通过从该视频比特流中解析一次要变换索引来决定该当前块的一逆变换操作。该视频解码方法进一步包括根据该逆变换操作,应用至少逆主要变换到该当前块的该最终变换系数来恢复该当前块的残差,以及基于该当前块的该残差解码该当前视频图像中的当前块。在该最后有效系数的至少一个位置大于该预定位置的情况下,根据该当前块的所解析的次要变换索引,在应用逆主要变换到该当前块的该最终变换系数之前应用逆次要变换。
[0030]
根据一些实施例,该当前块是当前cu以及在解析该当前块中所有tb后解析该次要变换索引。在一个实施例中,该当前块是包含一个或多个亮度tb的亮度cb或者包含一个或多个色度tb的色度cb,以及根据该一个或多个亮度或色度tb中该最后有效系数的该一个或多个位置适应性地解析次要变换索引。在另一个实施例中,该当前块是包含一个或多个亮度tb以及一个或多个色度tb的cu,以及根据该一个或多个亮度或色度中该最后有效系数的
一个或多个位置适应性地解析该次要变换索引用于该一个或多个亮度或色度tb,基于所解析的次要变换索引对该一个或多个亮度或色度tb执行变换操作。例如,如果当前cu包含一个亮度tb以及两个色度tb,根据该亮度以及色度tb中该最后有效系数的位置条件地解析该次要变换索引用于该亮度tb,以及基于所解析的次要变换索引对该亮度tb执行变换操作。在另一个示例中,根据该亮度tb中该最后有效系数的位置,条件地解析该次要变换索引用于该亮度tb,以及基于所解析的次要变换索引仅对亮度tb应用该变换操作。在另一个示例中,假定在当前cu中由多个亮度tb与/或多个色度tb,根据该当前cu的一个或多个亮度tb中该最后有效系数的位置解析或者不解析该次要变换索引,以及仅对一个或多个亮度tb执行该变换操作。
[0031]
预定位置的一实施例是该tb中的一第一位置,以及该第一位置是包含一dc值的位置0。在另一个实施例中,该预定位置是一第一编解码组中的一固定位置(x,y)。根据一处理次序,该第一编解码组是该当前块的一左上8
×
8区域的一第一4
×
4子块,以及x与y是从0到(最大编解码组尺寸

1)中选择的整数。
[0032]
如果次要变换仅被应用于帧内编解码的cu,用于任何非帧内编解码cu的该变换操作不包括逆次要变换。该处理方法进一步包括由帧内预测解码该当前cu来生成该残差。
[0033]
处理方法的实施例进一步包括如果不应用逆次要变换,在该当前块后,解析与残差编解码相关的一个或多个语法元素用于该一个或多个tb,或者如果应用了逆次要变换,推断该一个或多个语法元素。例如,该一个或多个语法元素是预定编解码组的有效旗标。以及如果应用了逆次要变换,该有效旗标被推断为假。预定编解码组的示例包括次要变换的一归零区域,其是在次要变换后所有变换系数被设置为0的一区域。当前块的一实施例是一变换块以及在解析该当前块的系数后或者在解析该当前块的最后有效系数位置语法后,解析该次要变换索引。
[0034]
在一些实施例中,将该最后有效系数的一个或多个位置与预定位置比较的步骤仅被应用于该当前块中的所考虑tb,以及决定该当前块的逆变换操作的步骤仅取决于该当前块中所考虑tb的该最后有效系数的位置。例如,所考虑tb包括该当前块中的所有tb,仅该当前块中的亮度tb、仅该当前块中的色度tb、当前块中具有有效系数的tb、该当前块中的预定子集合tb、除了不被允许次要变换之外的所有tb。不被允许次要变换的tb的示例是tb宽度或tb高度小于4样本的tb,另一个示例是由变换跳过处理的tb。在该当前块中没有所考虑tb的情况下,逆次要变换不被应用于该当前块中的任何tb。
[0035]
本发明的一方面进一步提供了视频编码系统或视频解码系统中实施的装置,以及根据最后有效系数位置与预定位置的一个或多个比较结果,该装置适应性发信或解析次要变换语法。在阅读特定实施例的后续描述后,本发明的其他方面以及特征对本领域具有通常知识者将是显而易见的。
附图说明
[0036]
以示例提出的本发明的各种实施例将参考后续附图进一步描述,其中相同的参考数字指示相同的元件,以及其中:
[0037]
图1示出了根据四叉树拆分结构的将编码树单元(ctu)拆分成多个编码单元(cu)以及将每一cu拆分成一个或多个变换单元(tu)的示例性编码树。
[0038]
图2示出了次要变换以及逆次要变换操作的简化框图。
[0039]
图3示出了应用正向主要变换以及次要变换到n
×
m变换块的残差来生成最终变换系数。
[0040]
图4示出了针对任何非0元素扫描变换块中的第64位置到第17位置的示例。
[0041]
图5示出了16
×
16 cu内的16
×
16变换块,用于说明应用次要变换到16
×
16变换块的一些实施例。
[0042]
图6是示出了根据本发明实施例的通过将最后有效系数的位置与预定位置进行比较来适应性发信次要变换语法的视频编码方法的流程图。
[0043]
图7是示出了根据本发明实施例的通过将最后有效系数的位置与预定位置进行比较来适应性解析次要变换语法的视频解码方法的流程图。
[0044]
图8示出了根据本发明实施例的合并视频处理方法的视频编码系统的示例性系统框图。
[0045]
图9示出了根据本发明实施例的合并视频处理方法的视频解码系统的示例性系统框图。
[0046]
图10示出了用于16
×
16变换块的处理次序的示例。
具体实施方式
[0047]
将容易理解,如本文图式所描述以及示出的本发明的元件可以以各种不同的配置来排列以及设计。因此,如图式所呈现的,本发明的系统以及方法的实施例的后续更详细描述不旨在限制本发明的范围,如所要求保护的,仅是本发明所选择实施例的表示。
[0048]
本发明中描述的各种方法旨在改善次要变换信令的效率或减少解码延迟。在编码器侧,由预测操作首先预测当前块(如cu)来生成预测子(predictor)。根据该预测子生成当前块的残差。变换操作(包括主要变换(如,dct

ii)以及次要变换的一个或两者)被应用来决定最终变换系数。在熵编码到视频比特流之前,量化进程然后被应用于最终变换系数。在主要变换后的残差被称为临时变换参数系数或者主要变换系数,以及临时变换系数由次要变换处理来生成当前块的最终变换系数。如果次要变换不被应用于当前块,该临时变换系数被指定为该当前块的最终变换系数。如果主要变换不被应用,由次要变换处理的残差是该当前块的最终变换参数。在解码器侧,视频比特流被解码来导出与当前块有关的系数层级(coefficient level),以及该系数层级被逆量化来生成最终变换系数。如果与当前块有关的次要变换索引大于0以及满足应用次要变换的条件(如当前变换块的宽度以及高度大于4),逆次要变换被首先应用于最终变换系数来决定临时变换系数。然后逆主要变换被应用于该临时变换系数来恢复残差。如果与该当前块相关的次要变换索引等于0,仅逆主要变换被应用于当前块。然后根据该残差以及当前块对应的预测子获得重构块。
[0049]
设置约束来应用次要变换根据最近的次要变换信令设计,视频解码器仅可以在一个cu中所有tb的系数被解析后决定次要变换索引,如rst索引或lfnst索引。开发的视频编解码标准旨在支援64
×
64管线处理,因此在处理尺寸大于64
×
64样本的cu时将发生的因为次要变换而产生的的延迟问题。本发明的各种实施例设置一约束来处理由次要变换信令造成的延迟问题。在最近的发展中,次要变换仅被应用于帧内编解码块,因此后续实施例中的当前块是帧内编解码块。然而,如果次要变换可以被启用用于非帧内预测块,后续实施例中
的当前块可以不需要是帧内编解码块。为了避免由次要变换信令造成的不期望的延迟问题,当cu的宽度或高度大于预定阈值时,次要变换不被应用于cu中的变换块。在一些实施例中,以cu内亮度cb中亮度样本的数目测量cu的宽度或高度。预定阈值的一些示例是16、32、64、128以及256亮度样本。例如,如果当前块的任一宽度或高度大于64样本,当前块的残差不由次要变换处理,因此尺寸大于64
×
64的任何块不由次要变换处理。在一个实施例中,根据视频编解码标准中指定的最大tu尺寸或最大tb尺寸(即,maxtbsizey)设置预定阈值,例如,正开发的视频编码解标准中的最大tb尺寸是64亮度样本。在又一实施例中,根据最大tu尺寸或最大tb尺寸适应性决定预定阈值,其从序列参数集(sps)、图像参数集(pps)、图块(tile)、图块组或条带层级中发信的值来导出。例如,最大tb尺寸(maxtbsizey)被设置为1<<sps_max_luma_transform_size_64_flag(在sps发信)。在一个实施例中,当当前块的宽度或高度大于预定阈值时,当前块的次要变换索引被设置为0,以及这一次要变换索引由编码器发信以及由解码器解析,或者在可选的实施例中这一次要变换索引不由编码器发信以及由解码器推断为0。例如,视频编码器发信每一帧内编解码cu的次要变换索引来指示是否应用次要变换,如果应用次要变换,次要变换索引也指示哪一矩阵是由编码器选择的矩阵。这一实施例中的对应的解码器解析每一帧内编解码cu的次要变换索引来决定逆次要变换是否需要被应用。因为当帧内编解码cu的宽度或高度大于预定阈值时,任何帧内编解码cu的次要变换索引需要为0,视频解码器可以用预定阈值检查每一帧内编解码cu的宽度或高度用于比特流一致性(bitstream conformance)。在可选的实施例中,对于cu宽度或高度大于预定阈值的任何帧内编解码的cu,次要变换索引在编码器侧不被发信,以及该次要变换索引在解码器侧被推断为0。在上述实施例中,当前块是当前cu。该当前块可以是包含一个或多个亮度tb的亮度编码块(cb)。当前块可以是包含一个或多个色度tb的色度cb。当前块可以是亮度或色度tb。该当前块可以是tu。
[0050]
在一些实施例中,基于当前cu中tu的数目,用于当前cu中一个或多个tu的变换操作或逆变换操作排除次要变换或逆次要变换。例如,当该当前cu中tu的数目大于1时,变换操作排除次要变换,以及当该当前cu中tu的数目大于1时,该逆变换操作排除逆次要变换。换言之,当当前cu中存在多个tu时(其意味着当前cu/cb的宽度或高度大于最大tu/tb尺寸),次要变换对当前cu是禁用的。当当前cu被拆分成多个tu时,当前cu的次要变换索引被强制为0或推断为0。例如,当cu可以由次要变换处理时,次要变换索引被发信而不管这一cu是否被进一步拆分成多个tu。对应的解码器解析cu的次要变换索引,但是如果这一cu被拆分成多个tu,强制该次要变换索引为0。在另一个示例中,当cu被拆分成多个tu时,次要变换索引不被发信,以及因此解码器不解析次要变换索引以及直接推断该次要变换索引为0。例外是应用isp的亮度cb(在亮度拆分树中,也称为cu)可以被拆分成多个亮度tb(在亮度拆分树中,也称为tu),即使亮度cb的宽度以及高度不大于最大tb尺寸。这种情况下,当cu中存在多个tu时,可以使用次要变换。在另一个实施例中,次要变换不可以被应用于宽度或高度大于预定阈值的任何cu或者被拆分成多个tu的任何cu。例如,当这一当前cu被拆分成多个tu时,或者当tu宽度大于最大tu宽度与/或cu高度大于最大tu高度时,当前cu的次要变换索引仍被发信或解析但强制为0。或者,当当前cu被拆分成多个tu或者当前cu宽度或cu高度大于预定阈值时,次要变换索引在编码器侧不被发信,以及这一当前cu的该次要变换索引在解码器侧被推断为0。
[0051]
例如,设置一约束,在cu被拆分成多个tu时,跳过发信次要变换索引。当以下至少一个为真时,cu被强制拆分成多个tu。cu宽度大于最大tu宽度(或最大tu或tb尺寸)、cu高度大于最大tu高度(或最大tu或tb尺寸)、或cu尺寸大于sps、pps、图块、图块组或条带层级中指定的最大tu或tb尺寸。因此,当当前cu将被拆分成多个tu时,次要变换索引不被发信或不被解析用于当前cu。当当前cu将被拆分成多个tu时,当前cu的次要变换索引被简单地推断为0。
[0052]
在本发明的一些其他实施例中,当当前cu的宽度或高度大于预定阈值时或者当当前cu包含多个tu时,一约束限制应用次要变换或逆次要变换到当前cu内仅一个所选tu。即,当当前cu包含多个tu时,当前cu内仅一个所选tu可以由次要变换处理。用于所选tu的变换操作(包括次要变换)或逆变换操作(包括逆次要变换)可以遵循当前设计。例如,在编码器侧,仅包括主要变换的变换操作被应用于当前cu中的所有其他tu,其中包括主要变换以及次要变换两者的辅助变换操作被应用于所选tu。在解码器侧,包括逆主要变换操作的逆变换操作被应用于当前cu的所有其他tu,而包含逆次要变换以及逆主要变换两者的辅助变换操作被应用于所选tu。预定阈值的一些示例根据视频编解码标准中指定的最大tu尺寸来设置或者在sps、pps、图块、图块组或条带层级中适应性决定。在实施这一约束的实施例中,根据解码次序,所选tu是当前cu内的最后一个tu。相比于应用次要变换到一个其他tu,对最后一个tu应用次要变换导致较少延迟。
[0053]
一些其他实施例设置约束来限制帧内或帧间cu的宽度、高度或尺寸。例如,为了应用次要变换到帧内编解码的cu,每一帧内编解码的cu的宽度或高度不超过预定阈值。预定阈值可以是16、32、64、128或256样本,在一个实施例中,根据对应标准中指定的最大tu尺寸设置预定阈值,如64亮度样本,以及在另一个实施例中,根据sps、pps、图块、图块组或条带层级中指定的最大tu尺寸适应性决定预定阈值。通过实施这一约束,因为所有帧内cu的宽度或高度小于或等于最大tu尺寸,每一帧内编解码的cu仅包含一个tu。
[0054]
解码器中实施的任何前述提到的方法可以根据块宽度、块高度或块面积隐式决定是否禁用次要变换,或者由cu、ctu、条带、图块、图块组、sps或pps层级发信的次要变换旗标来显式决定。
[0055]
用于次要变换的信令修正为了解决由次要变换信令的传统设计造成的延迟问题,本发明的一些实施例修正当前次要变换信令设计。在一些实施例中,在tu层级而不是在cu层级发信次要变换语法,如rst索引或者lfnst索引。例如,根据一实施例,在tu的最后发信次要变换索引。在另一个实施例中,在在tb层级发信最后有效系数后,发信tu的次要变换索引,以及然后发信这一tu的语法元素,如每一tb中每一编解码组的有效旗标被发信。换言之,在扫描次序中下一tu的语法元素之前,在tu层级发信该次要变换语法。在又一实施例中,在重构系数用于每一系数组之前,发信次要变换索引。在当前cu中有多个tu的情况下,在至少一个tu中发信该当前cu的次要变换索引。例如,在该当前cu的第一tu中发信该次要变换索引。根据一个实施例,因为次要变换在当前cu的后续tu中不被允许,次要变换可以仅被应用于当前cu的第一tu。在另一个实施例中,所发信的次要变换索引与该当前cu中的所有tu共用。例如,根据在第一tu中发信的共用的次要变换索引,变换操作或逆变换操作被应用于后续tu。在另一个示例中,每一tu中的非0系数的数目与阈值进行比较,以及如果非0系数的数目大于阈值,根据共用的次要变换索引,tu可以仅应用次要变换或者逆次要变换。在
可选的实施例中,在当前cu的首先n个tu的每一者发信次要变换索引,其中n从中1到当前cu中tu的总数目中来选择。在又一实施例中,因为相比于对任何其他tu执行次要变换,对最后的tu执行次要变换导致更少的延迟,次要变换索引在该当前cu内的最后tu中被发信。
[0056]
在次要变换索引信令的一些实施例中,在tb层级发信最后有效系数后,发信次要变换的语法元素,如次要变换索引。tb的剩余语法元素被发信,如tb中每一编解码组的有效旗标。视频编码器的一个实施例在tb层级发信最后有效系数之后,在tb层级发信次要变换索引,以及然后发信tb的剩余语法元素。在一个实施例中,在tb层级发信最后有效系数之后,在tu层级发信次要变换语法,以及然后发信tu的语法,如每一tb中每一编解码组的有效旗标。例如,编解码组包含4
×
4样本。在另一个实施例中,在tu层发信最后有效系数之后,在cu层级发信次要变换语法,以及然后发信tu的语法,如tu中每一编解码组的有效旗标的信令。
[0057]
在一实施例中,在当前cu的第一可用tu中发信当前cu的次要变换语法,如rst索引或lfnst索引。在这一实施例中,如果用于次要变换信令的约束被满足以及次要变换允许用于当前cu,当前cu具有一第一可用tu。次要变换信令的约束的示例取决于tu的最后有效系数的位置。在另一示例中,当变换系数中非dc值的数目大于预定数目时,次要变换信令的约束仅发信次要变换语法。次要变换信令的约束的一些其他示例将在后续节段中进行描述。允许次要变换的示例是当当前cu是帧内编解码的cu时。根据一个实施例,对于当前cu内的每一剩余tu而不是第一可用tu,次要变换语法不被发信以及被推断为与该第一可用tu的次要变换语法相同。即,剩余的tu与该第一可用tu共用次要变换语法。在这一实施例中,如果次要变换语法的约束在当前块的任何剩余tu中不被满足,次要变换或逆次要变换将不被应用于这一剩余tu而不管该当前块中第一可用tu的次要变换语法。在一个示例中,如果在当前cu中不能找到第一可用tu用于次要变换,次要变换将不被应用于该当前cu中的任何tu。在另一个实施例中,次要变换或逆次要变换仅被应用于当前cu内的第一可用tu以及不被应用于该当前cu内的剩余tu。
[0058]
在一些实施例中,在当前cu的每一tu检查该约束,以及满足该约束的每一tu共用相同的次要变换语法。例如,如果所有tu满足次要变换信令的约束,次要变换或逆次要变换可以被应用于当前cu中的所有tu。在另一个实施例中,约束也可以在当前cu内的每一tu中检查,但是如果所有tu满足该约束,次要变换或逆次要变换仅被应用于该当前cu中的一个或多个tu。如果当前块中的任何cu对次要变换不可用,因为次要变换信令的约束未被满足,次要变换或者逆次要变换不可用被应用于当前cu中的tu。
[0059]
基于最后有效系数的次要变换信令根据本发明的一些实施例,在各种先前所描述实施例中提到的次要变换信令的约束可以根据一个或多个变换块的一个或多个最后有效系数来设置。次要变换信令的约束的实施例与一个或多个变换块的最后有效系数的一个或多个位置有关。编码器发信与每一变换块的最后有效系数位置相关的语法,指示变换块中最后有效系数的位置。通过解析与每一变换块的最后有效系数位置有关的语法,解码器决定每一变换块中最后有效系数的位置。例如,与最后有效系数位置有关的语法包括last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix以及last_sig_coeff_y_suffix。
[0060]
在传统的rst信令设计中,编码器或解码器检查在次要变换的归零区域(zero

out)内是否有任何非0系数,其意味着系数在次要变换之后或者逆次要变换变换之前是0,以及如果在次要变换的归零区域中找到至少一个非0系数,跳过发信或解析次要变换索引。通过仅检查每一所考虑tb的tb层级语法元素,本发明的实施例简化次要变换信令的这一检查进程。图5示出了16
×
16 cu内的16
×
16 tu,用于说明根据在tb层级发信的最后有效系数的次要变换信令的各种实施例。图5示出了16
×
16 tu的亮度(luma)变换块(tb),其中出于简便未示出16
×
16 tu的两个色度(chroma)tb。在次要变换信令的一些实施例中,根据当前块中每一tb中最后有效系数的位置适应性发信次要变换索引用于当前块,如rst索引或者lfnst索引。例如,当前块是包含一个或多个亮度tb的亮度cb或者当前块是包含一个或多个色度tb的色度cb,以及根据多个亮度或色度tb中最后有效系数的一个或多个位置条件地发信次要变换索引。又例如,根据一个或多个亮度tb中最后有效系数的位置适应性地发信次要变换索引用于当前cu中的一个或多个亮度tb,以及这一次要变换索引由当前cu中的多个亮度以及色度tb共用。在另一个示例中,当前块是包括一个或多个亮度tb以及一个或多个色度tb的cu,以及根据亮度或色度tb的一个或两者中最后有效系数的一个或多个位置条件地发信次要变换索引。次要变换仅被应用于一个或多个亮度或色度tb。在后续实施例中,假定在cu层级或者在解析当前块的所有tb后发信次要变换索引,然而,这些实施例也可以用在tb层级(在解析当前tb中的系数后发信或者在解析当前tb中最后有效系数位置后发信)或tu层级(或在解析当前tu内的多个tb后)发信的次要变换索引来实施。例如在当前cu的所有tb后,在cu层级发信当前cu的次要变换索引。在当次要变换被应用于这一16
×
16 cu的情况下,使用一所选次要变换要点,16
×
48矩阵乘法被应用于16
×
16 cu内的16
×
16变换块。这些实施例中每一编解码组是变换块中的4
×
4子块。该变换块的左上8
×
8区域的第一、第二、第三以及第四编解码组被标记为cg 0、cg 1、cg 2以及cg 3。用于cg 0、cg 1、cg 2以及cg 3的对应有效旗标被分别标记为sigflagcg0、sigflagcg1、sigflagcg2以及sigflagcg3。在视频编码器中,16
×
16 tu首先由主要变换处理来生成主要变换系数,以及首先三个编解码组cg 0、cg 1、cg 2中的48个主要变换系数是次要变换的输入。该48个主要变换系数与所选的16
×
48矩阵相乘来生成16个次要变换系数。根据一个实施例,在应用次要变换后,该第一编解码组cg 0中的系数被设置为等于所生成的16个次要变换系数,而该变换块中所有剩余系数被设置为0。在次要变换未被应用的情况下,该第二、第三以及第三编解码组cg 1、cg 2、cg3与/或该变换块中的剩余区域可以包含非0系数。在次要变换后所有变换系数被设置为0的区域被称为次要变换的归零区域。
[0061]
取代搜索次要变换的归零区域内的非0系数,本发明的实施例检查每一所考虑变换块的最后有效系数的位置。根据当前cu内一个或多个所考虑tb中最后有效系数的位置,适应性地发信次要变换系数用于当前cu。所考虑tu的一些示例是当前cu中的所有tb,仅当前cu中的亮度tb、仅当前cu的色度tb、仅当前cu中具有有效系数的tb、当前块中预定子集合的tb或者除了不允许次要变换的tb之外所有tb。不允许次要变换的tb包括tb宽度或tb高度小于4样本的任何tb或者由变换跳过处理的任何tb。如果当前块中没有所考虑的tb,次要变换不被应用于当前块中的任何tb。例如,在这一实施例中,如果任何所考虑tb中最后有效数的位置在预定区域内(如,次要变换的归零区域,其中在次要变换后所有系数被设置为0),视频编码器跳过发信次要变换索引。当当前块cu内任何所考虑tb中最后有效系数的位置位于预定区域时,视频解码器推断次要变换不被应用于当前cu。在一个实施例中,该预定区域
包括当前变换块的cg 1、cg 2或cg 3。当当前cu内任何所考虑变换块中有效系数的位置在cg 1、cg 2或cg 3中时,因为cu1、cg2以及cg3中所有系数在次要变换后被设置为0,视频解码器因此推断次要变换不被应用于当前cu。在另一个实施例中,该预定区域包括除了左上4x4子块之外的整个tb,或者该预定区域包括tb中位置索引大于15的这些系数位置,假设位置索引范围从0开始并且整个tb的处理次序是对角线扫描。在另一个实施例中,预定区域包括除了首先8个系数位置之外的整个tb,或者预定区域包括tb中位置索引大于7的系数位置,假定位置索引从0开始以及整个tb的处理次序是对角线扫描。在本发明的优选实施例中,根据每一所考虑tb中最后有效系数的位置,在没有任何语法信令的情况下次要变换被推断为被禁用,其意味着次要变换索引在编码器将不被发信以及该次要变换索引在解码器将不被解析。例如,当该当前cu内任何所考虑变换块的最后有效系数的位置在该变换块中次要变换的预定区域中时,视频解码器推断当前cu的对应的次要变换索引为0而不从视频比特流中解析该次要变换索引。
[0062]
在一个实施例中,左上8
×
8区域的第二、第三以及第四编解码组cg1、cg2以及cg3中的系数在次要变换后被设置为0。在另一个实施例中,除了左上4
×
4子块之外的所有变换系数在次要变换后被设置为0。在另一个实施例中,当预定区域指次要变换的归零区域时,预定区域根据tb宽度或tb高度变化。例如,如果tb宽度等于tb高度且tb宽度等于4或8,则如所引入的将n=16、48或64的rst 8xn应用于tb,以及如果tb中的位置索引大于7,那么在次要变换之后的系数为零。在这一示例中,预定区域包括tb中位置索引大于7的这些系数位置,假定位置索引从0开始以及整个tb的处理次序是对角线扫描。在另一个示例中,如果如所引入的将n=16、48或64的rst 16
×
n应用于tb,以及如果tb中位置索引大于15,那么在次要变换后的系数为0。在这一示例中,预定区域包括tb中位置索引大于15的这些系数位置,假定位置索引从0开始以及整个tb的处理次序是对角线扫描。根据这些实施例,当任何所考虑变换块的最后有效系数的位置在该变换块的左上8
×
8区域的任何第二、第三以及第四编解码组cg 1 cg 2以及cg 3中时、或当任何所考虑变换块的最后有效系数的位置不在左上8
×
8区域的第一编解码组cg 0时,或者任何所考虑块的最后有效系数的位置在预定区域时,次要变换不被应用。在解码器中,在解析当前cu中每一所考虑变换块的最后有效系数位置后,当任何所考虑变换块的最后有效系数的位置在除了第一编解码组cg 0之外的左上8
×
8区域、除了第一编解码组cg 0之外的整个变换块或者预定区域时,次要变换索引被推断为0。在这一实施例中,编码器根据当前cu内每一所考虑tb的最后有效系数的位置以及预定位置适应性跳过发信当前cu的次要变换索引,以及根据当前cu内所考虑tb的最后有效系数的位置以及预定位置,解码器推断逆次要变换对当前cu是禁用的。例如,当任何所考虑tb的最后有效系数的位置落入预定区域(如除了tb中第一编解码组的编解码组)时,通过推断当前cu的次要变换索引为0,逆次要变换是禁用的。当所考虑变换块的最后有效系数的所有位置不在预定区域时,一个实施例的编码器仅发信次要变换索引。类似地,当所考虑变换块中最后有效系数的位置不在预定区域时,在这一实施例中,解码器可以解析次要变换索引,否则该解码器推断逆次要变换对整个块或整个cu是禁用的。通过在tb层级解析最后有效系数位置,解码器决定变换块中最后有效系数的位置。
[0063]
在上述一些实施例中,当次要变换被应用于变换块时,与变换块中一些预定编解码组的残差编解码相关的一个或多个语法元素不需要被发信。例如,当次要变换被应用于
变换块时,在当前块被解析后与一个或多个变换块中一些预定编解码组的残差编解码相关的这些语法元素总是被设置为0,因此,当次要变换索引大于0时,与残差编解码相关的这些语法元素在视频比特流不被发信或者不从视频比特流来解析。在应用次要变换后,一些编解码组中的系数都被设置为0。其暗示着与残差编解码相关的一些特定语法元素不需要被发信,如这些编解码组的有效旗标。在一个示例中,第二、第三以及第四编解码组cg 1、cg 2以及cg 3以及左上8
×
8区域外的区域的系数在次要变换后被设置为0。图5示出了16
×
16 cu内的16
×
16变换块的示例。16
×
16变换块中每一4
×
4子块是编解码组。左上8
×
8区域内编解码组被标记为cg 0、cg 1、cg 2以及cg 3,以及这些编解码组的对应的有效旗标被标记为sigflagcg0、sigflagcg1、sigflagcg2以及sigflagcg3。如果次要变换被应用,16
×
48矩阵在次要变换操作中被选择来将这一16
×
16变换块中左上8
×
8区域的首先48个变换系数变换成16个次要变换系数。根据一个实施例,在次要变换后,除了第一编解码组cg 0之外的变换块中的系数被设置为0,因此根据这一实施例,cg 1、cg 2以及cg 3的有效旗标sigflagcg1、sigflagcg2以及sigflagcg3以及左上区域外的区域的有效旗标在编码器侧不被发信以及在解码器侧被推断为假。
[0064]
次要变换信令取决于将最后有效系数位置与阈值比较在本发明的一些实施例中,根据来自cu内一个或多个变换块(tb)的一个或多个比较结果,在视频比特流中条件地发信次要变换语法。一个比较包括将tb在最后有效系数的位置与预定位置进行比较。在一些实施例中,在视频比特流中条件地发信次要变换语法仅取决于从当前cu内所考虑tb的比较结果。例如,当前cu中的所有tb是所考虑的tb。在另一个示例中,仅当前cu中的亮度tb是所考虑的tb。在另一个示例中,仅当前cu中具有有效系数的tb是所考虑的tb。在另一个示例中,所考虑的tb可以是当前cu中tb的任何子集合。在另一个示例中,在当前cu中,除了不允许次要变换的这些tb之外,tb是所考虑的tb。例如,如果tb宽度或tb高度小于4,tb不允许次要变换,或者如果tb由变换跳过处理,tb不允许次要变换。当所有所考虑tb的比较结果不满足次要变换的信令条件时,次要变换被推断为对当前cu是禁用的,以及次要变换索引在视频比特流不被发信。其中在当前cu内没有所考虑的tb,因为次要变换对当前cu是禁用的,次要变换索引不被发信。设置次要变换的信令条件的示例是当tb的最后有效系数的位置大于预定位置时。如果当前cu中所有所考虑tb的最后有效系数的位置小于或等于预定位置,当前cu的次要变换索引不被发信。图5中示出的仅包含一个16
×
16变换块的16
×
16 cu可以用于说明根据16
×
16变换块中最后有效系数的位置,决定是否发信次要变换索引的一些示例。假定这一16x16变换块是当前cu中所考虑的tb。在后续实施例中,在cu层级或者在发信当前cu中所有tb的残差编解码语法后发信次要变换索引,然而在一些其他实施例中可以在tu、tb层级或者在发信残差编解码语法后发信次要变换索引,该残差编解码语法包括当前cu中一个或多个tb的最后有效系数的位置,以及如果在tu、tb层级或者在发信包括当前cu的一个或多个tb的最后有效系数的位置的残差编解码语法后发信该次要变换,所考虑的tb在当前tu内,当前tb或tb信令在当前tb之前。在其他实施例中,当前cu的次要变换索引在当前cu的一个或多个亮度tb后被发信,或者在当前cu中的第一非0tb后被发信,或者在当前cu中第一tb后被发信。
[0065]
解码器从视频比特流解析cu的每一tb的最后有效系数位置语法,以及基于所解析的最后有效系数位置语法决定每一tb的最后有效系数的位置。例如,最后有效系数位置语
法包括last_sig_coeff_x_prefix,last_sig_coeff_y_prefix,last_sig_coeff_x_suffix以及last_sig_coeff_y_suffix。最后有效系数的位置与预定位置进行比较,如(0,0),以及如果最后有效系数的位置等于(0,0),解码器推断次要变换索引为0。
[0066]
各自的次要变换索引可以被发信用于亮度以及色度cb/cu。在这一实施例中,对于各自拆分树中编解码的一个亮度cb以及两个色度cb,一个次要变换索引被条件地发信用于亮度cb取决于亮度cb中的一个或多个亮度tb以及另一个次要变换索引被条件地发信用于色cb取决于色度cb中的一个或多个色度tb。在可选的实施例中,仅一个次要变换索引被发信用于每一cu,以及亮度以及色度tb的一个或两个使用次要变换索引,例如,根据每一亮度tb或任何亮度tb的子集中的最后有效系数的位置,次要变换系数被条件第发信用于一个或多个亮度tb,以及色度tb再用该次要变换索引。在另一个示例中,根据亮度以及色度tb中最后有效系数的位置,该次要变换索引被条件地发信用于一个或多个亮度tb。在这一实施例中,对于共用拆分树中编解码的当前cu,一个次要变换索引被条件地发信用于当前cu,以及根据该次要变换索引,该次要变换或逆次要变换被应用于亮度以及色度tb的一个或两者。例如,如果次要变换仅被应用于亮度tb,根据当前cu中的亮度以及色度tb,该当前cu的次要变换索引被条件地发信。在一个实施例中,如果次要变换被应用于16
×
16 cu内的16
×
16 tu,次要变换索引大于0,以及如果次要变换不被应用于16
×
16 tu,该次要变换索引被设置为0。在后续实施例中,根据来自cu中所考虑tb的比较结果,编码器适应性地跳过发信次要变换索引。类似地,根据来自cu中所考虑tb的比较结果,解码器适应性地推断次要变换不被应用于变换块。
[0067]
如图5所示,在16
×
16变换块的左上8
×
8区域有四个4
×
4编解码组,包括第一编解码组cg 0、第二编解码组cg 1、第三编解码组cg 2以及第三编解码组cg 3。用于cg 0、cg 1、cg 2以及cg 3的对应的有效旗标被标记为sigflagcg0,sigflagcg1,sigflagcg2以及sigflagcg3。如果次要变换被应用于这一16
×
16变换块,16
×
48矩阵被用于将该16
×
16变换块中左上8
×
8区域的48个主要变换系数变换成16个次要变换系数。该16个次要变换系数替代该16
×
16变换块中左上8
×
8区域的第一编解码组cg 0中的主要变换系数。cg 1以及cg 2中的系数或者cg 1、cg 2以及cg 3或者除了cg1(首先16个次要变换系数)之外的tb中的系数在次要变换后被设置为0。在次要变换后所有变换系数被设置为0的区域被表示为次要变换的归零区域。如果有任何有效系数位于在次要变换的归零区域,次要变换被推断为被禁用。描述中的术语系数或变换系数指在编码器被递送给量化进程的最终系数或者在解码器在去量化进程后接收的最终系数。在一些实施例中,如果当前cu的所考虑tb的最后有效系数的位置小于或等于处理次序中的预定位置,当前cu的次要变换索引在编码器不被发信以及当前cu的逆次要变换在解码器被推断为被禁用。编码器将当前cu中所考虑tb中最后有效系数的位置与处理次序中的预定位置进行比较。如果所考虑tb的最后有效系数的位置小于或等于处理次序中的预定位置,编码器跳过发信当前cu的次要变换索引,否者,该编码器基于其他现有条件发信次要变换索引。解码器也将当前cu的所考虑tb的最后有效系数的位置与处理次序中的预定位置进行比较。如果至少一个所考虑变换块中最后有效系数的位置大于该预定位置,解码器解析该次要变换索引;否则,该逆次要变换被推断为对该变换块是禁用的。在这一实施例中,处理次序可以对角线扫描次序用于变换块,在每一编解码组内,与/或跨过变换块中的所有编解码组。16
×
16变换块的处理次序的示例是从左上8
×
8区域、左
下8
×
8区域、右上8
×
8区域到右下8
×
8区域,以及在16
×
16变换块的每一8
×
8区域内,处理次序是从左上编解码组、左下编解码组、右上编解码组到右下编解码组,以及在每一编解码组内,处理次序是对角线扫描次序。16
×
16变换块的处理次序的另一个示例是从左上系数到左下系数,如图10所示。
[0068]
在上述实施例中,预定位置的示例是变换块中的第一位置,其包含变换块中的dc值,如位置0。在这一实施例中,因为如果仅由dc值在当前块的所有所考虑变换块内(其意味着所有所考虑tb的最后有效系数的位置是tb中的第一位置)次要变换不可用被应用,次要变换索引不被发信用于当前块。当前块是cu、cb或tu。仅当至少一个所考虑tb的最后有效系数的位置不等于该变换块的第一位置时发信次要变换索引,其暗示在至少一个所考虑变换块中有至少一个非dc值。对于包含一个tb的cu的示例,如图5所示,如果最后有效系数的位置在位置c,其在第一编解码组cg 0内但是大于cg 0中的第一位置,编码器发信次要变换索引用于16
×
16 cu以及解码器从视频比特流解析该次要变换索引。在另一个示例中,如图5所示,如果最后有效系数的位置是位置d,其是第一编解码组cg 0中的第一位置,编码器跳过发信16
×
16 cu的次要变换索引以及解码器推断逆次要变换不被应用于16
×
16cu内的tu。在这一示例中,在变换块中仅有一个dc值以及将这一次要变换应用于这一变换块将不会带来额外的编解码增益,因此次要变换被禁用以及次要变换索引不被发信。预定位置的另一个示例是左上8
×
8区域的第一编解码组的固定位置(x,y),其中x以及y可以是从0,1,2,3

到(最大编解码组尺寸

1)中选择的整数。例如。固定位置(x,y)是该变换块内左上8
×
8区域的第一编解码组cg 0中的(0,1)、(1,0)或(1,1)。cg 0中预定位置的另一个示例由一固定扫描次序决定,例如,根据一固定扫描次序,从第一编解码组cg 0中的第一、第二、第三、第四到(最大编解码组尺寸

1)位置。固定扫描次序的示例是对角线扫描次序。
[0069]
本发明的一些实施例也检查变换块中第一编解码组cg 0中非0系数的数目是否大于预定数目,当cg 0中非0系数的数目大于预定数目时,编码器或解码器仅发信或解析次要变换索引。如果cg 0中非0系数的数目小于或等于预定数目,根据这一实施例,次要变换不被应用于变换块。当当前cu内变换块的cg 0中非0系数的数目小于或等于预定数目时,编码器跳过发信当前cu的次要变换索引。预定数目的一些示例是1、2、3以及4。在一个实施例中,如果最后有效系数的位置大于预定位置或者左上8
×
8区域的第一编解码组中非0系数的数目大于预定数目以及该最后有效系数的位置在该第一编解码组内,编码器发信该次要变换索引,否则该编码器跳过发信该次要变换索引。预定位置的一些示例是第64位置以及第48位置,以及预定数目的示例是1。在启用次要变换用于包含多个tu的当前cu的实施例中,仅当所有tu的cg 0中的非0系数的数目大于预定数目时应用次要变换。例如,如果当前cu中每一变换块包含小于或等于一个非0系数,次要变换索引不被发信或解析。
[0070]
在一些实施例中,决定cu内所考虑变换块中非dc值的数目以及与预定数目进行比较来决定次要变换信令,例如,仅当在cu内的至少一个所考虑变换块中有至少一个非0变换值时应用次要变换。在这一实施例中,当在cu内的至少一个所考虑变换块中有至少一个非dc变换值时,次要变换索引在编码器被发信。类似地,当cu内的至少一个所考虑变换块中有至少一个非dc变换值时,解码器仅解析次要变换索引。当当前cu中所有考虑tb仅包含一个dc系数时,通过推断次要变换索引为0而不解析次要变换索引,解码器禁用逆次要变换用于当前cu内的tb。在一个实施例中,如果用于cu内至少一个所考虑变换块的最后有效系数的
位置大于预定位置或者如果cu内至少一个所考虑变换块的非dc值的数目大于预定数目与/或最后有效系数的位置在cu内每一所考虑变换块中左上8
×
8区域的第一编解码组cg 0内,该次要变换索引被发信或解析。预定数目的示例是0以及预定位置的一些示例是变换块中的第一位置。在设置预定数目为0的实施例中,非dc值的数目也从最后有效系数的位置或者所考虑tb的最后有效系数位置语法来导出,即,如果用于至少一个所考虑tb的最后有效系数的位置大于该变换块的第一位置,非dc值的数目大于预定数目(如,等于0)。这一实施例等同于当用于至少一个所考虑tb的最后有效系数的位置大于预定位置,或者当用于至少一个所考虑tb的最后有效系数的位置在出该第一编解码组的第一位置之外的第一编解码组内时,发信或解析该次要变换索引。
[0071]
说明基于位置比较的次要变换信令的实施例的示例性流程图图6示出了根据视频编码系统中实施的最后有效系数的比较结果条件地发信次要变换语法的视频编码方法的示例性实施例的流程图。这一示例性实施例中的视频编码系统由变换操作处理与一当前cu中一个或多个tb相关的残差,其中与该当前cu相关的残差被拆分成一个或多个变换单元(tu),以及每一tu由亮度以及色度变换块(tb)组成。在这一示例性实施例中,次要变换可以被应用于亮度与色度分量的一个或两者。图6中的视频编码系统的示例实施例在步骤s602中接收与一当前视频图像中一当前块相关的输入数据。该当前块的一示例是cu,包含一个亮度tb以及两个色度tb。步骤s602中的输入数据包括由应用于当前cu的预测操作生成的残差,预测的一示例是帧内预测。在步骤s604中,视频编码系统决定一变换操作以及将该变换操作应用于该当前块中的一个或多个tb来生成最终变换系数,例如,该一个或多个tb是该当前cu中的亮度tb。该变换操作包括主要与次要变换两者或者该变换操作仅包括主要变换与次要变换之一。在一些实施例中,一个或多个所考虑的tb用于决定次要变换信令。所考虑tb的一些示例包括:当前块中的所有tb、仅当前块中的亮度tb、仅当前块中的色度tb、仅当前块中具有有效系数的tb、该当前块中的预定子集合的tb,以及除了不被允许次要变换之外的所有tb。例如,如果tb宽度或tb高度小于4样本,tb不被允许次要变换,或者如果tb由转换跳过来处理,其不被允许次要变换。视频编码系统在步骤s606中决定该当前块中每一tb的最终变换系数的最后有效系数的位置,以及在步骤s608,将该一个或多个tb的最后有效系数的一个或多个位置与一预定位置进行比较,例如所考虑tb的最后有效系数的位置与预定位置进行比较。例如,因为第一位置包含一dc值,该预定位置是变换块中的第一位置。在这一示例中,如果至少一个tb的最后有效系数的位置大于该第一位置,其暗示在该tb中有至少一个非dc系数,以及该视频编码系统在一视频比特流中合并用于该当前cu的一次要变换索引。如果该一个或多个tb的最后有效系数的位置等于该第一位置,其暗示在当前块中仅有一个dc系数,以及该视频编码系统跳过发信该次要变换索引。该视频编码系统根据应用于该当前块的变换操作决定次要变换索引的值,例如,当次要变换被禁用时该次要变换索引等于0,以及当应用该次要变换时该次要变换索引等于1或2。决定次要变换索引的步骤可以在步骤s604、s606、s608以及s610中的任何步骤执行。在步骤s608中,如果至少一个tb的最后有效系数的位置大于预定位置,在步骤s610中,在视频比特流中发信次要变换索引用于该当前块,例如,在cu层级、cb层级、tu层级或tb层级发信次要变换索引。在步骤s612中,然后根据该最终变换系数编码该当前块。在步骤s608中,如果该一个或多个tb的最后有效系数的位置小于或等于该预定位置,该次要变换索引不由该视频编码系统发信,以及在
步骤s612中,根据该最终变换系数编码该当前块。
[0072]
图7是示出了根据视频解码系统中实施的最后有效系数位置的比较结果条件地解析次要变换语法的视频解码方法的示例性实施例。在步骤s702中,视频解码系统接收携带一当前视频图像中一当前块的输入数据的一视频比特流。在这一示例性实施例中当前块是一cu,例如,该当前块包含一个或多个亮度tb以及两个色度tb。在步骤s702中,从该视频比特流中解析与该当前块中每一tb相关的最后有效系数位置语法。在步骤s706中,视频解码系统从所解析的最后有效系数位置语法决定最后有效系数的位置,以及在步骤s708中,将一个或多个tb的最后有效系数的一个或多个位置与一预定位置进行比较。在一实施例中,仅该当前块中所考虑的tb用于决定次要变换信令,因此在步骤s708中,仅所考虑tb的最后有效系数的位置与一预定位置进行比较。所考虑tb的一些示例包括该当前块中的所有tb、仅该当前块中的亮度tb、仅该当前块中的色度tb、仅该当前块中具有有效系数的tb、该当前块中预定子集合的tb以及除了允许次要变换这些tb之外的所有tb。例如,如果tb宽度或tb高度小于4样本,tb不被允许次要变换,或者如果tb由变换跳过处理,tb不被允许次要变换。例如,该预定位置是该当前块的第一位置,以及如果一个或多个tb的该最后有效系数的一个或多个位置等于该第一位置,在没有解析对应的次要变换索引的情况下该视频解码系统推断逆次要变换不被应用。当tb的最后有效系数的位置落入该第一位置时,该tb仅在该第一位置包含一dc值以及tb中所有其他变换系数是0。如果用于至少一个tb的最后有效系数的位置大于预定位置,在步骤s710,视频解码系统从该视频比特流中解析一次要变换索引。该次要变换索引用于决定用于该当前块中一个或多个tb的逆变换操作,例如,如果该次要变换索引等于0,该逆变换操作跳过逆次要变换,以及如果该次要变换索引等于1或2,该逆变换操作执行逆次要变换以及逆主要变换两者。在步骤s708中,如果该一个或多个tb的最后有效系数的所有位置小于或等于预定位置,在步骤s712,通过推断逆次要变换对该当前块中的一个或多个tb是禁用的,该视频解码系统决定该逆变换操作。在决定该逆变换操作后,在步骤s714,该视频解码系统应用该逆变换操作到该当前块中的一个或多个tb来恢复残差以及在步骤s716中,基于该残差解码该当前块。例如,逆次要变换仅被应用于该当前块中的亮度tb,但是亮度以及色度tb都被检查来决定次要变换索引是否需要被解析。
[0073]
示例性系统框图先前所描述视频处理方法的实施例在视频编码器、视频解码器或视频编码器与解码器两者中实施。例如,视频处理方法在视频编码器的熵编码模组或者在视频解码器的熵解码模组中来实施。或者,视频处理方法被实施为被整合到视频编码器或视频解码器中熵编解码模组的电路。图8示出了实施视频处理方法各种实施例的视频编码器800的示例性系统框图。视频编码器800中的块结构分割模组810接收视频图像的输入数据以及决定一块拆分结构用于待编码的每一视频图像。当前视频图像中的每一叶编解码块由帧内预测模组812中的帧内预测或者帧间预测模组814中的帧间预测预测来移除空间冗余或时间冗余。帧内预测模组812基于当前视频图像的重构视频数据提供叶编解码块的帧内预测子。帧间预测模组814基于来自一个或多个其他视频图像的视频数据执行运动估计(me)以及运动补偿(mc)来提供叶编解码块的帧间预测子。开关816选择帧内预测模组812或帧间预测模组814来提供预测子到加法器818来形成预测误差,也称残差。当前视频图像中每一叶编解码块中的残差被拆分成一个或多个变换块。变换(t)模组820决定一当前cu中一个或多个变换块的变换操作,以及该变换操作包括主要变换与次要变换的一个或两者。本
发明的一些实施例检查每一所考虑变换块中最后有效系数的位置是否大于一预定位置,以及如果所有所考虑变换块的最后有效系数的位置小于或等于该预定位置,禁用次要变换用于该一个或多个变换块。在这种情况下,如果至少一个所考虑变换块的最后有效系数的位置小于或等于该预定位置,次要变换索引在视频比特流中不被发信。每一变换块的残差由变换(t)模组820紧接着量化(q)模组822处理来生成由熵编码器834待编码的变换系数层级。熵编码器834也编码预测资讯以及滤波资讯来形成视频比特流。该视频比特流然后与辅助资讯(side information)一起被打包。该当前变换块的变换系数层级由逆量化(iq)模组824以及逆变换(it)模组826处理来恢复该当前变换块的残差。如图8所示,通过在重构(rec)模组828将残差添加到所选预测子来恢复重构视频数据。重构视频数据可以被存储与参考图像缓冲器(ref.pict.buffer)832并由其他图像预测的帧间预测模组814来使用。由于编码处理,来自重构模组828的重构视频数据可能受到各种损害,因此,在存储待参考图像缓冲器832之前,环路处理滤波器830被应用于重构视频数据来进一步增强图像品质。
[0074]
图9中示出了解码由图8的视频编码器800生成的视频比特流的对应的视频解码器900。视频解码器900的输入由熵解码器910进行解码来解析以及恢复每一变换块的变换系数层级以及其他系统资讯。块结构分割模组912决定每一视频图像的块分割结构。解码器900的解码进程类似于在编码器800的重构回路,除了解码器900仅需要帧间预测模组916的运动补偿预测。视频图像中每一叶编解码块由帧内预测模组914或帧间预测模组916进行解码,以及开关918根据所解码的模式资讯选择帧内预测子或帧间预测子。与每一变换块有关的变换系数层级然后由逆量化(iq)模组922恢复来生成最终变换系数。逆变换(it)模组922对最终变换系数应用逆变换操作来恢复残差。该逆变换操作包括逆次要变换以及逆主要变换的一个或两个。本发明的一些实施例通过解析与所考虑tb有关的最后有效系数决定当前cu中每一所考虑tb的最后有效系数的位置,以及如果所有所考虑tb的最后有效系数的位置小于或等于预定阈值,推断该当前cu中一个或多个tb的逆次要变换是禁用的。如果至少一个所考虑tb的最后有效系数的位置大于该预定阈值,逆变换(it)根据从该视频比特流中解析的次要变换索引决定逆变换操作。通过在重构(rec)模组920中添加回预测子来重构所恢复的残差来生成重构视频。该重构视频进一步由环路处理滤波器(滤波器)926处理来生成最终解码视频。如果当前解码视频是参考图像,当前解码视频图像的重构视频也被存储于参考图像缓冲器928中用于解码次序中的后续图像。
[0075]
图8以及图9中视频编码器800以及视频解码器900的各种元件可以由硬体元件、用于执行存储与记忆体中程式指令的一个或多个处理器或硬体与处理器的组合来实施。例如,处理器执行程式指令来控制应用变换操作或逆变换操作。该处理器配备有单个或多个处理核心。在一些实施例中,处理器执行程式指令来执行编码器800以及解码器900中一些元件的功能,以及电性地耦合于处理器的记忆体用于存储程式指令、对应于重构数据的资讯与/或编码或解码进程中的中间数据。一些实施例中记忆体包括非暂态计算可读媒介,如半导体或固态记忆体、随机存取记忆体(ram)、唯读记忆体(rom)、硬碟、光碟或者其他合适的储存媒介。记忆体也可以是以上列出的两个或多个非暂态电脑可读媒介的组合。如图8以及图9所示,编码器800以及解码器900可以在相同的电子装置中实施,因此如果在相同的电子装置中实施,编码器800与解码器900的各种功能元件可以共用。本发明的任何实施例可以在编码器800的变换模组820、与/或解码器900的逆变换模组924中实施。或者,任何实施
例可以被实施为耦合与编码器800的变换模组820与/或解码器900的逆变换模组924的电路,以致提供变换模组820或逆变换模组924所需要的资讯。
[0076]
视频处理方法的实施例适应性地启用次要变换可以在整合到视频压缩晶片的电路或者整合到视频压缩软体的程式码中实施来执行以上描述的处理。例如,应用变换操作或逆变换操作可以在将在电脑处理器、数位讯号处理器(dsp)、微处理器或现场可程式闸阵列(fpga)上执行的程式码中实现。这些处理器可以用于执行根据本发明的具体任务,通过执行定义由本发明呈现的特定方法的机器可读软体代码或者韧体代码。
[0077]
遍及本说明中对“一实施例”、“一些实施例”或类似语言的引用意味着结合实施例描述的特定特征、结果或特性可以被包括于本发明的至少一个实施例中。因此,遍及本说明书中各个地方出现的短语“在一实施例中”或“在一些实施例中”不一定都指相同的实施例,这些实施例可以单独地或者结合一个或多个其他实施例来实施。此外,所描述的特征、机构或特性在一个或多个实施例中以任何合适的方式来组合。相关领域的通常知识者将意识到,然而,本发明可以没有一个或多个具体细节或者用其他方法、元件等来实施。在其他情况下,公知的结构或操作未被详细描述以避免混淆本发明的方面。
[0078]
本发明可以以其他具体形式呈现而不背离其精神或基本特性。所描述的示例在所有方面仅被认为是说明性的而非限制性的。因此,本发明的范围由所附申请专利范围而非前述的描述来指示。与申请专利范围的等同物的含义以及范围一致的所有变化都在其范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1