一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用次要变换编解码视讯数据的方法以及装置与流程

2022-03-23 01:55:03 来源:中国专利 TAG:

quadtree,rqt)拆分结构,属于叶cu的残差被分割成一个或多个变换单元(tu)用于将残差变换成变换系数(transform coefficient)。图1总虚线指示ctu 10中的tu边界。tu是用于将变换以及量化应用于残差数据或变换系数的基础代表块。对于每一tu,具有与tu相同尺寸的变换矩阵被应用于残差来生成变换系数,以及这些变换系数在tu的基础上被量化并被传达给解码器。
6.术语编码树块(coding tree block,ctb)、编码块(coding block,cb)、预测块(prediction block,pb)以及变换块(transform block,tb)被定义为分别指定与ctu、cu、pu以及tu相关的一个色彩分量的二维(2-d)样本数组。例如,tu由4:2:0格式编码的图像的一个亮度(luma)tb、两个色度(chroma)tb以及其相关的语法元素组成。类似的关系也适用于ctu、cu以及pu。在hevc系统中,除非达到色度块的最小尺寸,相同的四叉树拆分结构通常被应用于亮度以及色度分量两者。
7.itu-t sg16 wp3以及iso/iec jtc1/sc29/wg11的联合视讯专家组(jvet)目前正在建立下一代视讯编解码标准通用视讯编解码(versatile video coding,vvc)。各种有希望的工具被开发并在即将到来的新兴vvc中被采用,例如变换跳过模式以及减少的次要变换。
8.变换跳过模式变换跳过模式(transform skip mode,tsm)是在不经过变换操作的情况下藉由熵编解码来处理已量化残差讯号的编解码工具。tsm中编解码的块的已量化残差讯号在样本域(sample domain)中被直接地编码而不是被变换到频率域。tsm被发现对屏幕内容编解码(screen content coding)尤其有效,尤其是对具有锐利边缘以及简单色彩的区域。在vvc工作草案中,tsm由高层级语法控制,例如,启用旗标可以用于选择开启或关闭tsm,以及语法元素可以用于发信应用tsm的尺寸约束。例如,tsm被允许应用于宽度或高度大于或等于32亮度样本的变换块。当tsm被启用时,变换块层级旗标被发信来指示tsm是否被应用于当前变换块。当tsm被用于变换块时,依赖量化(dependent quantization)以及符号数据隐藏都被禁用。tsm中编解码的残差由单独的解析进程来处理。
9.减少的次要变换减少的次要变换(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矩阵,如下:
[0010][0011]
其中变换的r行(row)是n维空间的r基。rst的逆变换矩形是正向变换矩阵的转置。在图2中描绘了正向以及逆rst操作。
[0012]
有两个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
×
64rst矩
阵,以及在解码器侧使用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
×
48rst矩阵,以及在解码器侧使用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矩阵用于4x4块)直接矩阵乘法。如果变换块的宽度(w)以及高度(h)都大于4,那么rst 8
×
8类型被应用于变换块的左上8
×
8区域的主要变换系数。否则,如果变换块的宽度(w)以及高度(h)的最小值等于4,rst 4
×
4类型被应用于变换块的左上4
×
4区域的主要变换系数。否则,如果变换块的宽度(w)以及高度(h)的最小值小于4,rst不被应用于变换块。
[0013]
当满足后续两个条件时,逆rst被条件地应用。当块尺寸大于或等于给定阈值时满足第一条件,例如,当宽度大于或等于4以及高度大于或等于4时。当变换跳过模式旗标等于0时满足第二条件。
[0014]
rst索引等于0指示rst不被应用于当前cu,否则rst索引指示哪一个次要变换要点(kernel)被选择用于当前cu。rst被应用于帧内以及帧间条带两者中的帧内cu。在当双树(dual tree)被启用的情况下,亮度以及色度分量的rst索引被分别发信。在当双树被禁用的情况下,对于帧间条带中的每一帧内cu,单个rst索引被发信并用于亮度或色度分量。
[0015]
帧内子分割(intra sub-partition,isp)模式是vvc中提出的新的帧内预测模式。isp模式的描述如下。isp根据它们的块尺寸垂直或水平地将亮度帧内预测块拆分成2或4个子分割。对于每一子分割,藉由将残差信号添加到预测信号获得重构样本。这里,藉由如熵解码、逆量化以及逆变换的进程生成残差信号。因此,每一子分割的重构样本值是可用的来生成下一子分割的预测,以及每一子分割被重复地处理。此外,待处理的第一子分割是包含cu的左上样本然后继续向下(水平拆分)或者向右(垂直拆分)的子分割。结果,用于生成子分割预测信号的参考样本仅位于分割线的左边以及上侧。所有子分割共享相同的帧内预测模式。rst被禁用或者被条件地应用于isp编解码的块。当次要变换对isp模式是禁用的时,rst索引不被发信。对isp预测的残差禁用rst可以减少编码复杂度。
[0016]
rst选择根据块尺寸与/或帧内cu的帧内预测模式,首先从四个变换集合中选择用于帧内cu的次要变换集合(set)。每一变换集合由两个变换矩阵(也称为要点(kernel))所组成,当rst索引大于0时,rst索引用于从所选变换集合中选择一个变换矩阵。当在cu层级发信的rst索引等于1时,选择所选变换集合中的要点1,以及当在cu层级发信的rst索引等于2时,选择所选变换集合中的要点2。如果色度分量的三个交错分量线性模型(cross component linear model,cclm)模式之一被指示,用于亮度分量的对应的帧内预测模式被用于选择变换集合。如表1所示,基于帧内预测模式选择变换集合。
[0017]
表1变换集合选择表
[0018]
intrapredmode变换集合索引intrapredmode《010《=intrapredmode《=102《=intrapredmode《=12113《=intrapredmode《=23224《=intrapredmode《=44345《=intrapredmode《=55256=intrapredmode1
[0019]
表1中的索引intrapredmode是当前cu的帧内预测模式编号,其具有[-14,83]的范围,表1中包括常规(regular)帧内方向模式以及广角帧内预测(wide angle intra prediction,waip)模式。
[0020]
rst的简化简化方法限制每一样本乘法的较差情况数目为小于或等于8。例如,当所有tu由4
×
4tu或8
×
8tu组成时,发生rst 8
×
8和rst 4
×
4类型的乘法计数方面的较差情况。顶部8
×
64以及8
×
16矩阵,换言之,来自每一矩阵顶部的首先8个变换基础向量,被分别应于8
×
8tu以及4
×
4tu。在tu大于8
×
8的情况下,较差情况不发生以致一个16
×
64矩阵(即,rst 8
×
8类型)被应用于tu的左上8
×
8区域。对于8
×
4或4
×
8tu,一个16
×
16矩阵(即,rst 4
×
4)仅被应用于左上4
×
4区域,排除其他左上8
×
8区域中的其他4
×
4区域来避免较差情况发生。在处理4
×
n或n
×
4tu的情况下(其中n大于或等于16),rst 4
×
4类型被应用于两个相邻顶部左上4
×
4块的其中的一个或每一个。根据前述提到的简化,乘法计数的较差情况数目变成每一样本8乘法器。
[0021]
减少维度的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区域。
[0022]
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。
[0023]
在发信一个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子块。
[0024]
目前,仅对亮度以及色度分量两者的帧内块执行次要变换。次要变换索引的值是从0到n,例如,n是2。次要变换索引等于0指示次要变换不被应用。rst索引用截断一元码(truncated unary code)来发信。例如,第一二进制数(bin)是上下文编解码的以及第二二进制数是旁路(bypass)编解码的。又例如,第一以及第二二进制数是上下文编解码的。


技术实现要素:

[0025]
用于编码视讯图像中视讯数据的视讯编码系统中的视讯处理方法以及装置,包括接收与一当前视讯图像中一当前块相关的输入数据,藉由预测该当前块生成该当前块的残差,决定该当前块的一宽度或高度大于一预定阈值,决定以及应用一变换操作用于该当前块来生成最终变换系数,以及编码该当前块。该变换操作不包括次要变换。在当该当前块的宽度以及高度小于或等于该预定阈值的情况下,该视讯编码系统决定是否应用次要变换到该块,以及相应地应用主要变换或主要与次要变换两者到该块的残差来生成最终变换系数。在生成该最终变换系数后,根据该当前块的该最终变换系数编码每一块。根据一些实施例,该当前块由帧内预测来预测,因为次要变换对非帧内编解码的块是禁用的。视讯编码系统的一些实施例仅应用次要变换到帧内编解码块中的tu,因为次要变换对非帧内编解码的块是禁用的。
[0026]
根据一实施例,一索引被发信用于该当前块,指示次要变换是否被应用于该当前块,用于该当前块的该索引被强制为0。在本发明的一些实施例中,该当前块是cu,在本发明的一些实施例中,该视讯编码系统基于该当前块中的tu的数目进一步决定该变换操作不包括次要变换,例如,当该当前块中tu的数目大于1,指示该当前块中有多个tu时,该变换操作不包括次要变换。
[0027]
在一些特定的实施例中,该视讯编码系统仅应用次要变换到该当前块内的一个所选tu,当该当前块的宽度或高度大于预定阈值或者当该当前块中有多个tu时,跳过该当前块内所有其他tu的次要变换。例如,该视讯编码系统决定一变换操作用于其他tu以及一辅助变换操作用于一个所选的tu。其中该变换操作仅包括主要变换以及该辅助变换操作包含主要与次要变换两者。根据一实施例,该所选tu是该当前块内的一最后tu。
[0028]
预定阈值的一些示例包括16、32、64、128以及256亮度样本。该当前块是cu、cb、tu或tb,以及一些实施例的预定阈值根据一最大tu尺寸或最大tb尺寸来设置,该最大tu尺寸或最大tb尺寸由一编解码标准来指定,如64亮度样本,或者该最大tu尺寸在序列参数集(sps)、图像参数集(picture parameter set,pps)、图块、图块组或条带层级中指定。
[0029]
在视讯编码系统的一实施例中,发信一次要变换索引指示是否将次要变换应用于该当前块。换言之,因为当前块的宽度或高度大于该预定阈值,这一次要变换索引不被发信用于该当前块。当该次要变换索引未被发信时,该次要变换被隐式地推断为禁用的(即,次要变换索引被设置为0)。在一可选实施例中,该视讯编码系统发信一次要变换索引用于该当前块,然而,该次要变换索引被强制为0。
[0030]
在另一个实施例中,一约束被设置来限制该帧内或帧间cu的尺寸,因此该cu的宽度以及高度都不大于该预定阈值。例如,cu的宽度以及高度被限制为小于或等于该预定阈值,为了使该cu由次要变换处理。如果块的宽度以及高度大于该预定阈值,该块被强制拆分成宽度以及高度小于或等于该预定阈值的多个cu。该视讯编码系统决定对从该块拆分而来的每一cu内的tu执行变换操作以及编码从该当前块拆分的每一cu。
[0031]
视讯解码系统的实施例包括接收与一当前视讯图像中一当前块相关的输入数据,解码该输入数据来决定该当前块的最终变换系数,决定该当前块的一宽度或高度大于一预定阈值,决定以及应用一逆变换操作到该最终变换系数来恢复该当前块的残差,以及基于该残差解码该当前块。用于该当前块的该逆变换操作不包括逆次要变换。
[0032]
根据一些实施例,因为次要变换对非帧内编解码的块总是禁用的,该当前块由帧内预测来编解码。因为该当前块的宽度或高度大于该预定阈值,该当前块的一次要变换索引被隐式地推断为0。在一些实施例中,该当前块是一cu,以及基于该当前块中的tu的数目,该逆变换操作排除逆次要变换。例如,当该当前块中tu的数目大于1时,指示在该当前块中有多个tu,该变换操作不包括次要变换。在一个实施例中,该视讯解码系统解析与该当前块有关的一次要变换索引,然而,该次要变换索引被强制为0。
[0033]
在一个实施例中,该视讯解码系统应用逆次要变换以及逆主要变换到该当前块内的一个所选tu以及仅应用逆主要变换到该当前块内的所有其他tu。例如,该视讯解码系统为所有其他tu决定一逆变换操作以及为一个所选tu决定一辅助逆变换操作,其中该逆变换操作仅包括逆主要变换以及该辅助变换操作包括逆次要变换以及逆主要变换两者。根据一实施例,该所选tu是解码次序中该当前块内的一最后tu。
[0034]
预定阈值的一些示例包括16,32,64,128以及256亮度样本。在一些实施例中,根据一最大tu尺寸或一最大tb尺寸设置该预定阈值,例如,由一编解码标准指定该最大tu尺寸或最大tb尺寸,或者在一sps、pps、图块、图块组或条带层级中指定该最大tu尺寸。
[0035]
在一个实施例中,该视讯解码系统仅解析一次要变换索引,指示如果块的宽度以及高度小于或等于该预定阈值,是否需要应用逆次要变换。因为该当前块的宽度或高度大
于该预定阈值,该当前块的该次要变换索引被推断为0。在另一个实施例中,该视讯解码系统解析一次要变换索引而不管块的宽度以及高度,然而,如果块的宽度或高度大于该预定阈值,所解析的该次要变换索引等于0。
[0036]
在另一个实施例中,如果次要变换被应用于每一cu中的tu,一约束被设置来限制每一cu的尺寸。在这一实施例中,如果块的宽度或高度大于预定阈值,该块被拆分成宽度以及高度小于或等于该预定阈值的多个cu。该视讯解码系统解析一次要变换索引,决定以及应用一逆变换操作用于每一cu中的tu来恢复残差,以及然后基于所恢复的残差解码每一cu。
[0037]
本发明的一方面进一步提供了实施视讯编码系统或视讯解码系统的一装置,以及如果一当前块的一宽度或高度大于一预定阈值,该装置禁用次要变换或逆次要变换。在一些实施例中,如果该当前块的该宽度或高度大于该预定阈值,该当前块的一次要变换索引不由该视讯编码系统发信以及由该视讯解码系统推断为0。在一可选实施例中,即使该宽度或高度大于该预定阈值,该当前块的该次要变换索引仍被发信于视讯比特流或者从该视讯比特流中解析。在阅读特定实施例的后续描述后,本发明的其他方面以及特征对本领域具有通常知识者将是显而易见的。
附图说明
[0038]
以示例提出的本发明的各种实施例将参考后续附图进一步描述,其中相同的参考数字指示相同的组件,以及其中:
[0039]
图1示出了根据四叉树拆分将编码树单元(ctu)拆分成编码单元(cu)以及将每一cu拆分成一个或多个变换单元的示例性编码树。
[0040]
图2示出了次要变换以及逆次要变换操作的简化框图
[0041]
图3示出了应用正向主要变换以及次要变换到m
×
n变换块的残差来生成最终变换系数。
[0042]
图4标出了针对任何非0元素扫描变换块第64位置到第17位置的示例。
[0043]
图5示出了根据本发明实施例的设置一约束用于应用次要变换来编码当前块的视讯编码方法的流程图。
[0044]
图6示出了根据本发明实施例的设置一约束用于应用逆次要变换用于解码当前块的视讯解码方法的流程图。
[0045]
图7示出了16
×
16cu内的16
×
16变换块,用于说明应用次要变换到16
×
16变换块的一些实施例。
[0046]
图8示出了根据本发明实施例的合并视讯处理方法的视讯编码系统的示例性系统框图。
[0047]
图9示出了根据本发明实施例的合并视讯处理方法的视讯解码系统的示例性系统框图。
[0048]
图10示出了16x16变换块的处理次序的示例。
具体实施方式
[0049]
将容易理解,如本文图式所描述以及示出的本发明的组件可以以各种不同的配置
来排列以及设计。因此,如图式所呈现的,本发明的系统以及方法的实施例的后续更详细描述不旨在限制本发明的范围,如所要求保护的,仅是本发明所选择实施例的表示。
[0050]
本发明中描述的各种方法旨在改善次要变换信令的效率或减少解码延迟。在编码器侧,由预测操作首先预测当前块(如cu)来生成预测器(predictor)。根据该预测器生成当前块的残差。变换操作(包括主要变换(如,dct-ii)以及次要变换的一个或两者)被应用来决定最终变换系数。在熵编码到视讯比特流之前,量化进程然后被应用于最终变换系数。在主要变换后的残差被称为临时变换参数系数或者主要变换系数,以及临时变换系数由次要变换处理来生成当前块的最终变换系数。如果次要变换不被应用于当前块,该临时变换系数被指定为该当前块的最终变换系数。如果主要变换不被应用,由次要变换处理的残差是该当前块的最终变换参数。在解码器侧,视讯比特流被解码来导出与当前块有关的系数层级(coefficient level),以及该系数层级被逆量化来生成最终变换系数。如果与当前块有关的次要变换索引大于0以及满足应用次要变换的条件(如当前变换块的宽度以及高度大于4),逆次要变换被首先应用于最终变换系数来决定临时变换系数。然后逆主要变换被应用于该临时变换系数来恢复残差。如果与该当前块有关的次要变换索引等于0,仅逆主要变换被应用于当前块。然后根据该残差以及当前块对应的预测器获得重构块。
[0051]
设置约束来应用次要变换根据最近的次要变换信令设计,视讯解码器仅可以在一个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。
[0052]
在一些实施例中,基于当前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。
[0053]
例如,设置一约束,在cu被拆分成多个tu时,跳过发信次要变换索引。当以下至少一个为真时,cu被强制拆分成多个tu。cu宽度大于最大tu宽度(或最大tu或tb尺寸)、cu高度大于最大tu高度(或最大tu或tb尺寸)、或cu尺寸大于sps、pps、图块、图块组或条带层级中指定的最大tu或tb尺寸。因此,当当前cu将被拆分成多个tu时,次要变换索引不被发信或不被解析用于当前cu。当当前cu将被拆分成多个tu时,当前cu的次要变换索引被简单地推断为0。
[0054]
在本发明的一些其他实施例中,当当前cu的宽度或高度大于预定阈值时或者当当前cu包含多个tu时,一约束限制应用次要变换或逆次要变换到当前cu内仅一个所选tu。即,当当前cu包含多个tu时,当前cu内仅一个所选tu可以由次要变换处理。用于所选tu的变换操作(包括次要变换)或逆变换操作(包括逆次要变换)可以遵循当前设计。例如,在编码器侧,仅包括主要变换的变换操作被应用于当前cu中的所有其他tu,其中包括主要变换以及次要变换两者的辅助变换操作被应用于所选tu。在解码器侧,包括逆主要变换操作的逆变换操作被应用于当前cu的所有其他tu,而包含逆次要变换以及逆主要变换两者的辅助变换操作被应用于所选tu。预定阈值的一些示例根据视讯编解码标准中指定的最大tu尺寸来设置或者在sps、pps、图块、图块组或条带层级中适应性决定。在实施这一约束的实施例中,根据解码次序,所选tu是当前cu内的最后一个tu。相比于应用次要变换到一个其他tu,对最后一个tu应用次要变换导致较少延迟。
[0055]
一些其他实施例设置约束来限制帧内或帧间cu的宽度、高度或尺寸。例如,为了应
用次要变换到帧内编解码的cu,每一帧内编解码的cu的宽度或高度不超过预定阈值。预定阈值可以是16、32、64、128或256样本,在一个实施例中,根据对应标准中指定的最大tu尺寸设置预定阈值,如64亮度样本,以及在另一个实施例中,根据sps、pps、图块、图块组或条带层级中指定的最大tu尺寸适应性决定预定阈值。藉由实施这一约束,因为所有帧内cu的宽度或高度小于或等于最大tu尺寸,每一帧内编解码的cu仅包含一个tu。
[0056]
解码器中实施的任何前述提到的方法可以根据块宽度、块高度或块面积隐式决定是否禁用次要变换,或者由cu、ctu、条带、图块、图块组、sps或pps层级发信的次要变换旗标来显式决定。
[0057]
约束次要变换的实施例的示例性流程图图5是实施一约束用于在视讯编码系统中应用次要变换的视讯编码方法的示例性实施例。这一示例性实施例中视讯编码系统由变换操作处理与当前块相关的残差,其中与该当前块相关的该残差被拆分成一个或多个变换单元(tu),以及每一tu由亮度以及色度变换(tb)块组成。在这一示例性实施例中,次要变换块被应用于帧内块的亮度与/或色度分量。在步骤s502,视讯编码系统的示例性实施例首先接收与当前视讯图像中当前块有关的输入数据,以及在步骤s504决定该当前块是否由帧内预测来编码。如果在步骤s504中该当前块被决定为由帧内预测来编码,在步骤s506,该视讯编码系统在应用帧内预测后生成该当前块的残差。如果该当前块在步骤s504被决定为由非帧内预测来编码,在步骤s508,该视讯编码系统在应用非帧内预测后生成该当前块的残差。非帧内预测的一些示例包括合并预测、跳过预测、仿射运动补偿预测以及基于子块的时间运动向量预测。在该当前块由跳过模式编码的情况下,没有与该当前块有关的残差需要被进一步处理。在这一实施例中,次要变换可以仅对由帧内预测编解码的当前块启用;然而,如果次要变换可以被应用于由其他预测方法编解码的块,步骤s504、s506以及508可以被跳过或者修正。在步骤s508后,因为次要变换对非帧内预测的块不启用,在步骤s512中,当前块的残差由主要变换处理来生成最终变换系数。在步骤s506中获得当前块的残差后,在步骤s510中,将该当前块的宽度以及高度的一个或两者与预定阈值进行比较,以及如果当前块的宽度或高度大于预定阈值,在步骤s512中,该视讯编码系统应用主要变换到该当前块的残差来生成最终变换系数。如果该当前块的宽度以及高度小于或等于预定阈值,在步骤s514,该视讯编码系统进一步决定次要变换是否需要用于该当前块,如果应用了次要变换,在步骤s516,该视讯编码系统对该当前块的残差执行包括主要变换以及次要变换的变换操作来生成最终变换系数,否则,在步骤s512,该视讯编码系统对该当前块的残差执行仅包括主要变换的变换操作。在本发明的一些实施例中,预定阈值被设置为等于最大tu尺寸,如64亮度样本。在步骤s510的一个实施例中,视讯编码系统也检查当前块中是否有多个tu,以及如果宽度或高度大于预定阈值或者当前块具有多个tu,前进到s512。在一些其他实施例中,藉由检查当前块中是否由多个tu,替换步骤s510。在步骤s512或s516中获得最终变换系数后,在步骤s518,视讯编码系统根据该最终变换系数编码该当前块。在当前变换跳过模式(tsm)被启用以及被当前块选择的情况下,主要变换以及次要变换都被禁用,因为在步骤s518中当前块的残差在样本域中被直接编码而不变换到频率域中,因此步骤s510、s512、s514以及s516被跳过。
[0058]
图6是视讯解码系统中实施的对应的视讯解码方法的示例性实施例的流程图。在步骤s602,接收与当前视讯图像中当前块相关的输入数据。在步骤s604,该视讯解码器系统
决定该当前块的预测模式是否是帧内预测,以及如果是,在步骤s606,解码该当前块的最终变换系数;否则,在步骤s608解析并解码该当前块的最终变换系数。在这一实施例中,因为次要变换对以非帧内预测编解码的cu是禁用的,在步骤s612,视讯解码系统对最终变换系数执行仅包括逆主要变换的逆变换操作来恢复该当前块的残差。在步骤s606之后,在步骤s610,视讯解码系统将该当前块的宽度与高度的一个或两者与预定阈值进行比较,以及如果该当前块的宽度或高度大于预定阈值前进到步骤s612,或者如果该宽度与高度小于或等于预定阈值,前进到步骤s614。在另一个实施例中,视讯解码系统在步骤s610中检查该当前块中是否有多个tu而不是比较宽度与高度。在一个实施例中,视讯解码系统检查两者,以及如果宽度或高度大于预定阈值或者该当前块具有多个tu,前进到步骤s612。在步骤s612,对该最终变换系数执行包括逆主要变换的逆变换操作来恢复该当前块的残差。在该宽度与高度小于或等于预定阈值的情况下,该视讯解码系统解析与该当前块有关的次要变换索引以及在步骤s614中检查这一次要变换索引是否等于0。如果该次要变换索引不等于0,例如,该次要变换索引等于1或2,指示次要变换在编码器侧被应用于该当前块,在步骤s616中,该视讯解码系统对该最终变换系数应用逆次要变换然后是逆主要变换来恢复该当前块的残差。如果该次要变换索引等于0,指示次要变换在编码器侧不被应用于该当前块,在步骤s612该视讯解码系统对该最终变换系数仅应用逆主要变换来恢复残差。在步骤s612或者步骤s616中恢复残差后,基于该当前块的残差解码该当前视讯图像中的当前块。当步骤s610的检查结果为真时,图6中示出的示例性实施例推断次要变换索引为0。根据各种实施例,当当前cu的宽度或高度大于预定阈值或者当该当前cu中有多个tu时,在对应的视讯编码器中,与当前cu有关的次要变换索引可以在视讯比特流中被发信或不被发信。如果次要变换索引总是被发信用于所有帧内编解码的cu,视讯解码器可以总是解析该次要变换索引来决定应用哪一变换进程,以及步骤s610可以再次检测所解析次要变换索引的有效性。
[0059]
用于次要变换的信令修正为了解决由次要变换信令的传统设计造成的延迟问题,本发明的一些实施例修正当前次要变换信令设计。在一些实施例中,在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中被发信。
[0060]
在次要变换索引信令的一些实施例中,在tb层级发信最后有效系数后,发信次要
变换的语法元素,如次要变换索引。tb的剩余语法元素被发信,如tb中每一编解码组的有效旗标。视讯编码器的一个实施例在tb层级发信最后有效系数之后,在tb层级发信次要变换索引,以及然后发信tb的剩余语法元素。在一个实施例中,在tb层级发信最后有效系数之后,在tu层级发信次要变换语法,以及然后发信tu的语法,如每一tb中每一编解码组的有效旗标。例如,编解码组包含4
×
4样本。在另一个实施例中,在tu层发信最后有效系数之后,在cu层级发信次要变换语法,以及然后发信tu的语法,如tu中每一编解码组的有效旗目标信令。
[0061]
在一实施例中,在当前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。
[0062]
在一些实施例中,在当前cu的每一tu检查该约束,以及满足该约束的每一tu共享相同的次要变换语法。例如,如果所有tu满足次要变换信令的约束,次要变换或逆次要变换可以被应用于当前cu中的所有tu。在另一个实施例中,约束也可以在当前cu内的每一tu中检查,但是如果所有tu满足该约束,次要变换或逆次要变换仅被应用于该当前cu中的一个或多个tu。如果当前块中的任何cu对次要变换不可用,因为次要变换信令的约束未被满足,次要变换或者逆次要变换不可用被应用于当前cu中的tu。
[0063]
基于最后有效系数的次要变换信令根据本发明的一些实施例,在各种先前所描述实施例中提到的次要变换信令的约束可以根据一个或多个变换块的一个或多个最后有效系数来设置。次要变换信令的约束的实施例与一个或多个变换块的最后有效系数的一个或多个位置有关。编码器发信与每一变换块的最后有效系数位置相关的语法,指示变换块中最后有效系数的位置。藉由解析与每一变换块的最后有效系数位置有关的语法,解码器决定每一变换块中最后有效系数的位置。例如,与最后有效系数位置有关的语法包括last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix以及last_sig_coeff_y_suffix。
[0064]
在传统的rst信令设计中,编码器或解码器检查在次要变换的归零区域(zero-out)内是否有任何非0系数,其意味着系数在次要变换之后或者逆次要变换变换之前是0,以及如果在次要变换的归零区域中找到至少一个非0系数,跳过发信或解析次要变换索引。藉由仅检查每一所考虑tb的tb层级语法元素,本发明的实施例简化次要变换信令的这一检查进程。图7示出了16
×
16cu内的16
×
16tu,用于说明根据在tb层级发信的最后有效系数的
次要变换信令的各种实施例。图7示出了16
×
16tu的亮度(luma)变换块(tb),其中出于简便未示出16
×
16tu的两个色度(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
×
16cu的情况下,使用一所选次要变换要点,16
×
48矩阵乘法被应用于16
×
16cu内的16
×
16变换块。这些实施例中每一编解码组是变换块中的4
×
4子块。该变换块的左上8
×
8区域的第一、第二、第三以及第四编解码组被标记为cg 0、cg 1、cg 2以及cg 3。用于cg 0、cg 1、cg 2以及cg 3的对应有效旗标被分别标记为sigflag
cg0
、sigflag
cg1
、sigflag
cg2
以及sigflag
cg3
。在视讯编码器中,16
×
16tu首先由主要变换处理来生成主要变换系数,以及首先三个编解码组cg 0、cg 1、cg 2中的48个主要变换系数是次要变换的输入。该48个主要变换系数与所选的16
×
48矩阵相乘来生成16个次要变换系数。根据一个实施例,在应用次要变换后,该第一编解码组cg 0中的系数被设置为等于所生成的16个次要变换系数,而该变换块中所有剩余系数被设置为0。在次要变换未被应用的情况下,该第二、第三以及第三编解码组cg 1、cg 2、cg3与/或该变换块中的剩余区域可以包含非0系数。在次要变换后所有变换系数被设置为0的区域被称为次要变换的归零区域。
[0065]
取代搜索次要变换的归零区域内的非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而不从视讯比特流中解析该次要变换索引。
[0066]
在一个实施例中,左上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 1cg 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层级解析最后有效系数位置,解码器决定变换块中最后有效系数的位置。
[0067]
在上述一些实施例中,当次要变换被应用于变换块时,与变换块中一些预定编解码组的残差编解码相关的一个或多个语法元素不需要被发信。例如,当次要变换被应用于变换块时,在当前块被解析后与一个或多个变换块中一些预定编解码组的残差编解码相关的这些语法元素总是被设置为0,因此,当次要变换索引大于0时,与残差编解码相关的这些语法元素在视讯比特流不被发信或者不从视讯比特流来解析。在应用次要变换后,一些编解码组中的系数都被设置为0。其暗示着与残差编解码相关的一些特定语法元素不需要被
发信,如这些编解码组的有效旗标。在一个示例中,第二、第三以及第四编解码组cg 1、cg 2以及cg 3以及左上8
×
8区域外的区域的系数在次要变换后被设置为0。图5示出了16
×
16cu内的16
×
16变换块的示例。16
×
16变换块中每一4
×
4子块是编解码组。左上8
×
8区域内编解码组被标记为cg 0、cg 1、cg 2以及cg 3,以及这些编解码组的对应的有效旗标被标记为sigflag
cg0
、sigflag
cg1
、sigflag
cg2
以及sigflag
cg3
。如果次要变换被应用,16
×
48矩阵在次要变换操作中被选择来将这一16
×
16变换块中左上8
×
8区域的首先48个变换系数变换成16个次要变换系数。根据一个实施例,在次要变换后,除了第一编解码组cg 0之外的变换块中的系数被设置为0,因此根据这一实施例,cg 1、cg 2以及cg 3的有效旗标sigflag
cg1
、sigflag
cg2
以及sigflag
cg3
以及左上区域外的区域的有效旗标在编码器侧不被发信以及在解码器侧被推断为假。
[0068]
次要变换信令取决于将最后有效系数位置与阈值比较在本发明的一些实施例中,根据来自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的次要变换索引不被发信。图7中示出的仅包含一个16
×
16变换块的16
×
16cu可以用于说明根据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后被发信。
[0069]
解码器从视讯比特流解析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。
[0070]
各自的次要变换索引可以被发信用于亮度以及色度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
×
16cu内的16
×
16tu,次要变换索引大于0,以及如果次要变换不被应用于16
×
16tu,该次要变换索引被设置为0。在后续实施例中,根据来自cu中所考虑tb的比较结果,编码器适应性地跳过发信次要变换索引。类似地,根据来自cu中所考虑tb的比较结果,解码器适应性地推断次要变换不被应用于变换块。
[0071]
如图7所示,在16
×
16变换块的左上8
×
8区域有四个4
×
4编解码组,包括第一编解码组cg 0、第二编解码组cg 1、第三编解码组cg 2以及第三编解码组cg 3。用于cg 0、cg 1、cg 2以及cg 3的对应的有效旗标被标记为sigflag
cg0
,sigflag
cg1
,sigflag
cg2
以及sigflag
cg3
。如果次要变换被应用于这一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或者除了cg 1(首先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所示。
[0072]
在上述实施例中,预定位置的示例是变换块中的第一位置,其包含变换块中的dc值,如位置0。在这一实施例中,因为如果仅由dc值在当前块的所有所考虑变换块内(其意味着所有所考虑tb的最后有效系数的位置是tb中的第一位置)次要变换不可用被应用,次要变换索引不被发信用于当前块。当前块是cu、cb或tu。仅当至少一个所考虑tb的最后有效系数的位置不等于该变换块的第一位置时发信次要变换索引,其暗示在至少一个所考虑变换块中有至少一个非dc值。对于包含一个tb的cu的示例,如图7所示,如果最后有效系数的位置在位置c,其在第一编解码组cg 0内但是大于cg 0中的第一位置,编码器发信次要变换索引用于16
×
16cu以及解码器从视讯比特流解析该次要变换索引。在另一个示例中,如图7所示,如果最后有效系数的位置是位置d,其是第一编解码组cg 0中的第一位置,编码器跳过发信16
×
16cu的次要变换索引以及解码器推断逆次要变换不被应用于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)位置。固定扫描次序的示例是对角线扫描次序。
[0073]
本发明的一些实施例也检查变换块中第一编解码组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系数,次要变换索引不被发信或解析。
[0074]
在一些实施例中,决定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的最后有效系数的位置在出该第一编解码组的第一位置之外的第一编解码组内时,发信或解析该次要变换索引。
[0075]
示例性系统框图先前所描述视讯处理方法的实施例在视讯编码器、视讯解码器或视讯编码器与解码器两者中实施。例如,视讯处理方法在视讯编码器的熵编码模块或者在视讯解码器的熵解码模块中来实施。或者,视讯处理方法被实施为被整合到视讯编码器或视讯解码器中熵编解码模块的电路。图8标出了实施视讯处理方法各种实施例的视讯编码器800的示例性系统框图。视讯编码器800中的块结构分割模块810接收视讯图像的输入数据以及决定一块封结构用于待编码的每一视讯图像。当前视讯图像中的每一叶编解码块由帧内预测模块812中的帧内预测或者帧间预测模块814中的帧间预测预测来移除空间冗余或时间冗余。帧内预测模块812基于当前视讯图像的重构视讯数据提供叶编解码块的帧内预测器。帧间预测模块814基于来自一个或多个其他视讯图像的视讯数据执行运动估计(motion estimation,me)以及运动补偿(motion compensation,mc)来提供叶编解码块的帧间预测器。开关816选择帧内预测模块812或帧间预测模块814来提供预测器到加法器818来形成预测误差,也称残差。当前视讯图像中每一叶编解码块中的残差被拆分成一个或多个变换块。变换(transform,t)模块820决定每一变换块的变换操作,以及该变换操作包括主要变换与次要变换的一个或两者。如果变换块的宽度或高度大于预定阈值,本发明的一些实施例禁用次要变换用于变换块。每一变换块的残差由变换(t)模块820紧接着量化(quantization,q)模块822处理来生成由熵编码器834待编码的变换系数层级。熵编码器834也编码预测信息以及滤波信息来形成视讯比特流。该视讯比特流然后与辅助信息(side information)一起被打包。该当前变换块的变换系数层级由逆量化(inverse quantization,iq)模块824以及逆变换(inverse transform,it)模块826处理来恢复该当前变换块的残差。如图8所示,藉由在重构(reconstruction,rec)模块828将残差添加到所选预测器来恢复视讯数据。重构视讯数据可以被存储与参考图像缓冲器(ref.pict.buffer)832并由其他图像预测的帧间预测模块814来使用。由于编码处理,来自重构模块828的重构视讯数据可能受到各种损害,因此,在存储待参考图像缓冲器832之前,环路处理滤波器830被应用于重构视讯数据来进一步增强图像质量。
[0076]
图9中示出了解码由图8的视讯编码器800生成的视讯比特流的对应的视讯解码器900。视讯解码器900的输入由熵解码器910进行解码来解析以及恢复每一变换块的变换系数层级以及其他系统信息。块结构分割模块912决定每一视讯图像的块分割结果。解码器900的解码进程类似于在编码器800的重构回路,除了解码器900仅需要帧间预测模块916的运动补偿预测。视讯图像中每一叶编解码块由帧内预测模块914或帧间预测模块916进行解码,以及开关918根据所解码的模式信息选择帧内预测器或帧间预测器。与每一变换块有关的变换系数层级然后由逆量化(iq)模块922恢复来生成最终变换系数。逆变换(it)模块922对最终变换系数应用变换操作来恢复残差。该逆变换操作包括逆次要变换以及逆主要变换的一个或两个。如果当前cu的宽度或高度大于预定阈值,本发明的一些实施例跳过当前cu中变换块的逆次要变换。如果变换块的宽度以及高度小于或等于预定阈值,根据从视讯比
特流中解析的次要变换索引,逆变换(it)模块执行一逆变换操作。藉由在重构(rec)模块920中添加回预测器来重构所恢复的残差来生成重构视讯。该重构视讯进一步由环路处理滤波器(滤波器)926处理来生成最终解码视讯。如果当前解码视讯是参考图像,当前解码视讯图像的重构视讯也被存储与参考图像缓冲器928中用于解码次序中的后续图像。
[0077]
图8以及图9中视讯编码器800以及视讯解码器900的各种组件可以由硬件组件、用于执行存储与内存中程序指令的一个或多个处理器或硬件与处理器的组合来实施。例如,处理器执行程序指令来控制应用变换操作或逆变换操作。该处理器配备有单个或多个处理核心。在一些实施例中,处理器执行程序指令来执行编码器800以及解码器900中一些组件的功能,以及电性地耦合于处理器的内存用于存储程序指令、对应于重构数据的信息与/或编码或解码进程中的中间数据。一些实施例中内存包括非瞬时计算可读媒介,如半导体或固态内存、随机存取内存(ram)、只读存储器(rom)、硬盘、光盘或者其他合适的储存媒介。内存也可以是以上列出的两个或多个非瞬时计算机可读媒介的组合。如图8以及图9所示,编码器800以及解码器900可以在相同的电子装置中实施,因此如果在相同的电子装置中实施,编码器800与解码器900的各种功能组件可以共享。本发明的任何实施例可以在编码器800的变换模块820、与/或解码器900的逆变换模块924中实施。或者,任何实施例可以被实施为耦合与编码器800的变换模块820与/或解码器900的逆变换模块924的电路,以致提供变换模块820或逆变换模块924所需要的信息。
[0078]
视讯处理方法的实施例适应性地启用次要变换可以在整合到视频压缩芯片的电路或者整合到视频压缩软件的程序代码中实施来执行以上描述的处理。例如,应用变换操作或逆变换操作可以在将在计算机处理器、数字信号处理器(dsp)、微处理器或现场可程序门阵列(fpga)上执行的程序代码中实现。这些处理器可以用于执行根据本发明的具体任务,藉由执行定义由本发明呈现的特定方法的机器可读软件代码或者韧体代码。
[0079]
遍及本说明中对“一实施例”、“一些实施例”或类似语言的引用意味着结合实施例描述的特定特征、结果或特性可以被包括于本发明的至少一个实施例中。因此,遍及本说明书中各个地方出现的短语“在一实施例中”或“在一些实施例中”不一定都指相同的实施例,这些实施例可以单独地或者结合一个或多个其他实施例来实施。此外,所描述的特征、机构或特性在一个或多个实施例中以任何合适的方式来组合。相关领域的通常知识者将意识到,然而,本发明可以没有一个或多个具体细节或者用其他方法、组件等来实施。在其他情况下,公知的结构或操作未被详细描述以避免混淆本发明的方面。
[0080]
本发明可以以其他具体形式呈现而不背离其精神或基本特性。所描述的示例在所有方面仅被认为是说明性的而非限制性的。因此,本发明的范围由所附申请专利范围而非前述的描述来指示。与申请专利范围的等同物的含义以及范围一致的所有变化都在其范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献