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

视频比特流中的简化二次变换的有条件信令的制作方法

2022-02-20 19:57:36 来源:中国专利 TAG:

视频比特流中的简化二次变换的有条件信令
1.相关申请的交叉引用
2.根据适用的专利法和/或依据巴黎公约的规则,本技术旨在及时要求2019年6月7日提交的国际专利申请no.pct/cn2019/090446的优先权和利益。出于根据法律的所有目的,前述申请的整个公开通过引用并入本文作为本技术的公开的一部分。
技术领域
3.本专利文档涉及视频处理技术、设备和系统。


背景技术:

4.尽管在视频压缩方面取得了进步,但数字视频仍然占互联网和其他数字通信网络上的最大带宽使用。随着能够接收和显示视频的连接用户设备的数量增加,预计数字视频使用的带宽需求将继续增长。


技术实现要素:

5.涉及数字视频处理的设备、系统和方法。所描述的方法可以被应用于现有的视频编解码标准(例如,高效视频编解码(hevc))和未来的视频编解码标准或视频编解码器。
6.在一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括执行视频的当前视频块和视频的编解码表示之间的转换,其中执行转换包括基于当前视频块的宽度(w)和/或高度(h)来确定二次变换工具对当前视频块的应用性,并且其中二次变换工具包括,在编码期间,在量化之前对应用于视频块的残差的正一次变换的输出应用正二次变换,或者在解码期间,在应用逆一次变换之前对视频块的解量化的输出应用逆二次变换。
7.在另一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括根据规则做出关于视频的编解码单元的当前视频块是否满足条件的确定,以及根据该确定,执行当前视频块和视频的编解码表示之间的转换,其中该条件与视频的一个或多个色彩分量的特性、当前视频块的尺寸或当前视频块的残差块的一部分中的系数有关;并且其中该规则指定该条件控制编解码表示中关于二次变换工具的边信息的存在;其中二次变换工具包括,在编码期间,在量化之前对应用于视频块的残差的正一次变换的输出应用正二次变换,或者在解码期间,在应用逆一次变换之前对视频块的解量化的输出应用逆二次变换。
8.在又一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括执行视频的当前视频块和视频的编解码表示之间的转换,其中执行转换包括根据独立于应用于当前视频块的分割树类型的规则来确定二次变换工具的使用和/或与二次变换工具有关的信息的信令通知,并且其中二次变换工具包括,在编码期间,在量化之前对应用于视频块的残差的正一次变换的输出应用正二次变换,或者在解码期间,在应用逆一次变换之前对视频块的解量化的输出应用逆二次变换。
9.在又一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括为视频的编解码单元的当前视频块确定二次变换工具对当前视频块的应用性,其中编解码单元包括多个变换单元,其中该确定基于编解码单元的单个变换单元;以及基于该确定,执行当前视频块和视频的编解码表示之间的转换;其中二次变换工具包括,在编码期间,在量化之前对应用于视频块的残差的正一次变换的输出应用正二次变换,或者在解码期间,在应用逆一次变换之前对视频块的解量化的输出应用逆二次变换。
10.在又一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括为视频的编解码单元的当前视频块确定二次变换工具的应用性和/或与二次变换工具有关的边信息的存在,其中编解码单元包括多个变换单元,并且该确定在变换单元级别或预测单元级别进行;以及基于该确定,执行视频的编解码表示的当前视频块之间的转换,其中二次变换工具包括,在编码期间,在量化之前对应用于视频块的残差的正一次变换的输出应用正二次变换,或者在解码期间,在应用逆一次变换之前对视频块的解量化的输出应用逆二次变换。
11.在又一个代表性方面,上述方法以处理器可执行代码的形式体现并被存储在计算机可读程序介质中。
12.在又一个代表性方面,公开了一种被配置为或可操作来执行上述方法的设备。该设备可以包括被编程为实施该方法的处理器。
13.在又一个代表性方面,视频解码器装置可以实施本文描述的方法。
14.在附图、说明书和权利要求书中更详细地描述了所公开的技术的以上以及其他方面和特征。
附图说明
15.图1示出了示例编码器的框图。
16.图2示出了67种帧内预测模式的示例。
17.图3示出了用于4
×
4块的alwip的示例。
18.图4示出了用于8
×
8块的alwip的示例。
19.图5示出了用于8
×
4块的alwip的示例。
20.图6示出了用于16
×
16块的alwip的示例。
21.图7示出了与预测块邻近的四个参考线的示例。
22.图8示出了4
×
8和8
×
4块的划分的示例。
23.图9示出了除了4
×
8、8
×
4和4
×
4之外的所有块的划分的示例。
24.图10示出了jem的二次变换的示例。
25.图11示出了所提出的简化二次变换(rst)的示例。
26.图12示出了正简化变换和逆简化变换的示例。
27.图13示出了利用16
×
48矩阵的正rst 8
×
8过程的示例。
28.图14示出了8
×
8矩阵的归零(zero-out)区域的示例。
29.图15示出了子块变换模式sbt-v和sbt-h的示例
30.图16示出了4
×
4编解码组的对角线右上扫描顺序的示例。
31.图17示出了具有尺寸为4
×
4的编解码组的8
×
8块的对角线右上扫描顺序的示例。
32.图18示出了用于选择概率模型的模板的示例。
33.图19示出了用于依赖量化的两个标量量化器的示例。
34.图20示出了所提出的依赖量化过程的状态转变和量化器选择的示例。
35.图21是具有4个编解码组的8
×
8块的示例。
36.图22a至图22d示出了用于视频处理的示例方法的流程图。
37.图23和图24是用于实施本文档中描述的可视媒体解码或可视媒体编码技术的硬件平台的示例的框图。
具体实施方式
38.所公开的技术的实施例可以应用于现有的视频编解码标准(例如,hevc,h.265)和未来的标准,以提高压缩性能。在本文档中使用章节标题来提高描述的可读性,并且不以任何方式将讨论或实施例(和/或实施方式)仅限制于相应的章节。
39.1.视频编解码介绍
40.由于对更高分辨率视频的需求日益增长,视频编解码方法和技术在现代技术中无处不在。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且不断被改进以提供更高的编解码效率。视频编解码器将未压缩的视频转换为压缩格式,反之亦然。视频质量、用于表示视频的数据量(由比特率决定)、编码和解码算法的复杂性、对数据丢失和错误的敏感性、编辑的便利性、随机访问和端到端延迟(等待时间)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如高效视频编解码(hevc)标准(也称为h.265或mpeg-h part 2)、待最终确定的多功能视频编解码标准或其他当前和/或未来的视频编解码标准。
41.视频编解码标准主要是通过熟知的itu-t和iso/iec标准的发展而演变的。itu-t制定了h.261和h.263,iso/iec制定了mpeg-1和mpeg-4可视化,并且这两个组织联合制定了h.262/mpeg-2视频和h.264/mpeg-4高级视频编解码(advanced video coding,avc)和h.265/hevc标准。自h.262以来,视频编解码标准基于混合视频编解码结构,其中利用了时域预测加变换编解码。为了探索hevc以外的未来视频编解码技术,vceg和mpeg于2015年联合成立了联合视频探索组(joint video exploration team,jvet)。此后,jvet采用了许多新方法,并将其放入名为联合探索模型(joint exploration model,jem)[3][4]的参考软件中。2018年4月,vceg(q6/16)和iso/iec jtc1 sc29/wg11(mpeg)之间的联合视频专家组(jvet)成立,以致力于vvc(versatile video coding,多功能视频编解码)标准,目标是与hevc相比比特率降低50%。
[0042]
2.1典型视频编解码器的编解码流程
[0043]
图1示出了vvc的编码器框图的示例,其包含三个环内滤波块:去方块滤波器(df)、样点自适应偏移(sao)和alf。与使用预定义滤波器的df不同,sao和alf利用当前图片的原始样点,用信令通知偏移和滤波器系数的编解码边信息,分别通过添加偏移并且通过应用有限脉冲响应(fir)滤波器来减少原始样点和重构样点之间的均方误差。alf位于每个图片的最后一个处理阶段,并且可以被视为试图捕捉和修复先前阶段创建的伪像(artifact)的工具。
[0044]
2.2.vvc中的帧内编解码
[0045]
2.2.1.具有67种帧内预测模式的帧内模式编解码
[0046]
为了捕获自然视频中呈现的任意边缘方向,方向帧内模式的数量从hevc中使用的33个扩展到65个。附加的方向模式如图2中的虚线箭头描绘,并且平面模式和dc模式保持不变。这些密集的方向帧内预测模式适用于所有块尺寸以及亮度和色度帧内预测。
[0047]
传统的角度帧内预测方向被定义为在顺时针方向上从45度到-135度,如图2所示。在vtm2中,对于非正方形块,几个传统的角度帧内预测模式被自适应地替换为宽角度帧内预测模式。替换的模式使用原始方法来信令通知,并在解析之后重新映射到宽角度模式的索引。帧内预测模式的总数不变,即67,并且帧内模式编解码不变。
[0048]
在hevc中,每个帧内编解码块具有正方形形状,其每边的长度为2的幂。因此,不需要除法运算来使用dc模式生成帧内预测值。在vvv2中,块可以具有矩形形状,这在一般情况下需要对每个块使用除法运算。为了避免dc预测的除法运算,仅使用较长的边来计算非正方形块的平均值。
[0049]
除了67种帧内预测模式之外,还对特定块启用非方形块的宽角度帧内预测(waip)和位置依赖帧内预测组合(pdpc)方法。pdpc在没有信令通知的情况下被应用于以下帧内模式:平面、dc、水平、垂直、左底部角度模式及其八个相邻角度模式、以及右顶部角度模式及其八个相邻角度模式。
[0050]
2.2.2.仿射线性加权帧内预测(alwip或基于矩阵的帧内预测)
[0051]
jvet-n0217中提出了仿射线性加权帧内预测(alwip,又名基于矩阵的帧内预测(mip))。
[0052]
2.2.2.1.通过矩阵矢量乘法生成简化的预测信号
[0053]
邻近参考样点首先经由平均进行下采样,以生成简化的参考信号bdry
red
。然后,简化的预测信号pred
red
通过计算矩阵矢量积并添加偏移来计算:
[0054]
pred
red
=a
·
bdry
red
b
[0055]
这里,a是矩阵,如果w=h=4,则具有w
red
·hred
行和4列,并且在所有其他情况下,具有8列。b是尺寸为w
red
·hred
的矢量。
[0056]
2.2.2.2.整个alwip过程的说明
[0057]
在图3-图6中针对不同形状示出了平均、矩阵矢量乘法和线性插值的整个过程。请注意,剩余形状被视为所描述的情况之一。
[0058]
1.给出4
×
4块,alwip沿着边界的每个轴取两个平均值。得到的四个输入样点进入矩阵矢量乘法。矩阵取自集合s0。在添加偏移之后,这产生16个最终预测样点。线性插值对于生成预测信号不是必需的。因此,执行每个样点总共(4
·
16)/(4
·
4)=4次乘法。
[0059]
2.给出8
×
8块,alwip沿着边界的每个轴取四个平均值。得到的八个输入样点进入矩阵矢量乘法。矩阵取自集合s1。这在预测块的奇数位置产生16个样点。因此,执行每个样点总共(8
·
16)/(8
·
8)=2次乘法。在添加偏移之后,通过使用简化的顶部边界对这些样点进行垂直插值。使用原始的左边界进行水平插值。
[0060]
3.给出8
×
4块,alwip沿着边界的水平轴取四个平均值,并且在左边界上取四个原始边界值。得到的八个输入样点进入矩阵矢量乘法。矩阵取自集合s1。这在预测块的奇数水平和每个垂直位置上产生16个样点。因此,执行每个样点总共(8
·
16)/(8
·
4)=4次乘法。在添加偏移之后,通过使用原始左边界对这些样点进行水平插值。
[0061]
4.给出16
×
16块,alwip沿着边界的每个轴取四个平均值。得到的八个输入样点进入矩阵矢量乘法。矩阵取自集合s2。这在预测块的奇数位置产生64个样点。因此,执行每个样点总共(8
·
64)/(16
·
16)=2次乘法。在添加偏移之后,通过使用顶部边界的八个平均值对这些样点进行垂直插值。使用原始的左边界进行水平插值。在这种情况下,插值过程不添加任何乘法。因此,计算alwip预测总共需要每个样点两次乘法。
[0062]
对于较大的形状,过程基本相同,并且容易检查每个样点的乘法次数少于四次。
[0063]
对于w
×
8块(其中w》8),只需要水平插值,因为样点是在奇数水平和每个垂直位置给出的。
[0064]
最终,对于w
×
4块(其中w》8),设a_kbe是这样出现的矩阵,即沿着下采样块的水平轴省去对应于奇数条目的每一行。因此,输出尺寸为32,并且再次,仅水平插值保持执行。
[0065]
转置后的情况被相应地对待。
[0066]
2.2.2.3.语法和语义
[0067]
7.3.6.5编解码单元语法
[0068][0069][0070]
2.2.3.多参考线(mrl)
[0071]
多参考线(mrl)帧内预测使用更多参考线进行帧内预测。在图7中,描绘了4个参考线的示例,其中段a和f的样点不是从重构的邻近样点中提取的,而是分别用来自段b和e的
最接近的样点填充的。hevc帧内图片预测使用最近的参考线(即,参考线0)。在mrl中,使用2个附加线(参考线1和参考线3)。
[0072]
所选择的参考线的索引(mrl_idx)被信令通知并用于生成帧内预测值。对于大于0的参考线索引,仅在mpm列表中包括附加参考线模式,并且仅信令通知mpm索引,而没有剩余模式。参考线索引在帧内预测模式之前被信令通知,并且在非零参考线索引被信令通知的情况下,平面模式和dc模式从帧内预测模式排除。
[0073]
对ctu内的第一线的块禁用mrl,以防止使用当前ctu线之外的扩展参考样点。此外,当使用附加线时,pdpc被禁用。
[0074]
2.2.4.帧内子块分割(isp)
[0075]
在jvet-m0102中,提出了isp,其根据块尺寸维度,将亮度帧内预测块垂直或水平划分为2个或4个子分割,如表1所示。图8和图9示出了两种可能性的示例。所有子分割都满足至少具有16个样点的条件。对于块尺寸,4xn或nx4(其中n》8),如果允许,可以存在1xn或nx1子分割。
[0076]
表1:根据块尺寸的子分割的数量(通过maxtbsize的表示的最大变换尺寸)
[0077][0078]
对于这些子分割中的每一个,通过对由编码器传送的系数进行熵解码,然后对其进行逆量化和逆变换,来生成残差信号。然后,子分割被帧内预测,并且最终通过将残差信号添加到预测信号来获得对应的重构样点。因此,每个子分割的重构值将可用于生成下一个的预测,这将重复该过程等等。所有子分割共享相同的帧内模式。
[0079]
表2:根据predmodeintra的trtypehor和trtypever的规范
[0080][0081]
2.2.4.1.语法和语义
[0082]
7.3.7.5编解码单元语法
[0083][0084][0085]
等于1的intra_subpartitions_mode_flag[x0][y0]指定将当前帧内编解码单元分割为numintrasubpartitions[x0][y0]个矩形变换块子分割。等于0的intra_subpartitions_mode_flag[x0][y0]指定当前帧内编解码单元没有被分割为矩形变换块子分割。
[0086]
当intra_subpartitions_mode_flag[x0][y0]不存在时,其被推断为等于0。
[0087]
intra_subpartitions_split_flag[x0][y0]指定帧内子分割划分类型是水平还是垂直。当intra_subpartitions_split_flag[x0][y0]不存在时,其被推断如下:
[0088]

如果cbheight大于maxtbsizey,则intra_subpartitions_split_flag[x0][y0]
被推断为等于0。
[0089]

否则(cbwidth大于maxtbsizey),intra_subpartitions_split_flag[x0][y0]被推断为等于1。
[0090]
变量intrasubpartitionssplittype指定用于当前亮度编解码块的划分的类型,如表7-9所示。intrasubpartitionssplittype被推导如下:
[0091]

如果intra_subpartitions_mode_flag[x0][y0]等于0,则intrasubpartitionssplittype被设置为等于0。
[0092]

否则,intrasubpartitionssplittype被设置为等于1 intra_subpartitions_split_flag[x0][y0]。
[0093]
表7-9

intrasubpartitionssplittype的名称关联
[0094]
intrasubpartitionssplittypeintrasubpartitionssplittype的名称0isp_no_split1isp_hor_split2isp_ver_split
[0095]
变量numintrasubpartitions指定帧内亮度编解码块被划分为的变换块子分割的数量。numintrasubpartitions被推导如下:
[0096]

如果intrasubpartitionssplittype等于isp_no_split,则numintrasubpartitions被设置为等于1。
[0097]

否则,如果以下条件之一为真,则numintrasubpartitions被设置为等于2:
[0098]

cbwidth等于4,并且cbheight等于8,
[0099]

cbwidth等于8,并且cbheight等于4。
[0100]

否则,numintrasubpartitions被设置为等于4。
[0101]
2.3.色度帧内模式编解码
[0102]
对于色度帧内模式编解码,根据跨分量线性模型(cclm)是否被启用,允许总共8种或5种帧内模式用于色度帧内模式编解码。这些模式包括五种传统的帧内模式和三种跨分量线性模型模式。色度dm模式使用对应的亮度帧内预测模式。由于在i条带中启用亮度和色度分量的单独块分割结构,因此一个色度块可以对应于多个亮度块。因此,对于色度dm模式,直接继承覆盖当前色度块的中心位置的对应亮度块的帧内预测模式。
[0103]
表8-2

当sps_cclm_enabled_flag等于0时根据
[0104]
intra_chroma_pred_mode[xcb][ycb]和intrapredmodey[xcb cbwidth/2][ycb cbheight/2]的intrapredmodec[xcb][ycb]的规范
[0105][0106]
表8-3

当sps_cclm_enabled_flag等于1时根据
[0107]
intra_chroma_pred_mode[xcb][ycb]和intrapredmodey[xcb cbwidth/2][ycb cbheight/2]的intrapredmodec[xcb][ycb]的规范
[0108][0109]
2.4.vvc中的变换编解码
[0110]
2.4.1.vvc中的多变换集(mts)
[0111]
2.4.1.1.显式多变换集(mts)
[0112]
在vtm4中,其中尺寸最大64
×
64的大块尺寸变换,这主要用于更高分辨率视频,例如1080p和4k序列。对于尺寸(宽度或高度,或宽度和高度两者)等于64的变换块,高频变换系数被归零,以便仅保留低频系数。例如,对于m
×
n变换块,以m为块宽度,并且n为块高度,当m等于64时,仅保留变换系数的左边32列。类似地,当n等于64时,仅保留变换系数的顶部32行。当变换跳过模式用于大块时,将使用整个块而不归零任何值。
[0113]
除了已经在hevc中采用的dct-ii之外,多变换选择(mts)方案用于对帧间和帧内编解码块进行残差编解码。它使用来自dct8/dst7的多个所选择的变换。新引入的变换矩阵是dst-vii和dct-viii。下表4示出了所选择的dst/dct的基函数。
[0114]
表4:vvc中使用的变换矩阵的基函数
[0115][0116]
为了保持变换矩阵的正交性,变换矩阵比hevc中的变换矩阵更精确地量化。为了将变换系数的中间值保持在16比特范围内,在水平和垂直变换之后,所有系数都要有10比特。
[0117]
为了控制mts方案,在sps级别分别为帧内和帧间指定单独启用标志。当在sps启用mts时,信令通知cu级别标志,以指示是否应用mts。这里,mts仅适用于亮度。当满足以下条件时,mts cu级别标志被信令通知。
[0118]

宽度和高度都小于或等于32
[0119]

cbf标志等于1
[0120]
如果mts cu标志等于零,则在两个方向上应用dct2。然而,如果mts cu标志等于1,则附加信令通知两个其它标志,以分别指示水平和垂直方向的变换类型。变换和信令映射
表如表5所示。当涉及变换矩阵精度时,使用8比特一次变换核心。因此,在hevc中使用的所有变换核心保持相同,包括4点dct-2和dst-7、8点、16点和32点dct-2。此外,包括64点dct-2、4点dct-8、8点、16点、32点dst-7和dct-8的其他变换核心使用8比特一次变换核心。
[0121]
表5:tu_mts_idx的解码值与水平和垂直方向的对应变换矩阵的映射
[0122][0123]
为了降低大尺寸dst-7和dct-8的复杂性,对于尺寸(宽度或高度,或宽度和高度两者)等于32的dst-7和dct-8块,高频变换系数被归零。仅保留16x16低频区域内的系数。
[0124]
除了应用不同变换的情况之外,vvc还支持称为变换跳过(ts)的模式,类似于hevc中的ts的概念。ts被视为mts的特例。
[0125]
2.4.2.jvet-n 0193中提出的简化二次变换(rst)
[0126]
2.4.2.1.jem中的不可分二次变换(nsst)
[0127]
在jem中,在正一次变换和量化之间(在编码器处)以及在解量化和逆一次变换之间(在解码器侧)应用二次变换。如图10所示,根据块尺寸执行4x4(或8x8)二次变换。例如,对于每个8x8块,4x4二次变换被应用于小块(即,min(width,height)《8),并且8x8二次变换被应用于较大块(即,min(width,height)》4)。
[0128]
下面使用输入作为示例描述不可分变换的应用。为了应用不可分变换,4x4输入块x
[0129][0130]
被首先表示为矢量
[0131][0132]
不可分变换被计算为其中指示变换系数矢量,并且t是16x16变换矩阵。随后使用该块的扫描顺序(水平、垂直或对角线)将16x1系数矢量重新组织为4x4块。具有较小索引的系数将与较小扫描索引一起放置在4x4系数块中。总共有35个变换集,并且每个变换集使用3个不可分变换矩阵(核)。从帧内预测模式到变换集的映射是预定义的。对于每个变换集,所选择的不可分二次变换(nsst)候选进一步由显式信令通知的二次变换索引来指定。在变换系数之后,该索引在比特流中每帧内cu一次进行信令通知。
[0133]
2.4.2.2.jvet-n0193中的简化二次变换(rst)
[0134]
在jvet-k0099中引入了rst(又名低频不可分变换(lfnst)),并且在jvet-l0133中引入了4个变换集(而不是35个变换集)映射。在这个jvet-n0193中,利用16x64(进一步简化为16x48)和16x16矩阵。为了便于标注,16x64(简化为16x48)转换被表示为rst 8x8,并且16x16转换被表示为rst 4x4。图11示出了rst的示例。
[0135]
2.4.2.2.1.rst计算
[0136]
简化变换(rt)的主要思想是将n维矢量映射到不同空间中的r维矢量,其中r/n(r《n)是简化因子。
[0137]
rt矩阵是r
×
n矩阵,如下:
[0138][0139]
其中变换的r行是n维空间的r个基。rt的逆变换矩阵是其正变换的转置。正rt和逆rt如图12所描绘。
[0140]
在该稿中,应用简化因子为4(1/4尺寸)的rst 8x8。因此,代替64x64,使用16x64直接矩阵,其是传统的8x8不可分变换矩阵尺寸。换句话说,在解码器侧使用64
×
16逆rst矩阵来生成8
×
8左顶部区域中的核心(一次)变换系数。正rst 8x8使用16
×
64(或8x64,对于8x8块)矩阵,使得它仅在给定8
×
8区域内的左顶部4
×
4区域中产生非零系数。换句话说,如果应用rst,则除了左顶部4
×
4区域之外的8
×
8区域将仅具有零系数。对于rst 4x4,应用16x16(或8x16,对于4x4块)直接矩阵乘法。
[0141]
当满足以下两个条件时,有条件地应用逆rst:
[0142]

块尺寸大于或等于给定阈值(w》=4&&h》=4)
[0143]

变换跳过模式标志等于零
[0144]
如果变换系数块的宽度(w)和高度(h)都大于4,则rst 8x8被应用于变换系数块的左顶部8
×
8区域。否则,将rst 4x4应用于变换系数块的左顶部min(8,w)
×
min(8,h)区域。
[0145]
如果rst索引等于0,则不应用rst。否则,应用rst,其核与rst索引一起选择。rst选择方法和rst索引的编解码将在后面解释。
[0146]
此外,rst被应用于帧内和帧间条带中的帧内cu,以及亮度和色度。如果启用了双树,亮度和色度的rst索引被单独信令通知。对于帧间条带(双树被禁用),单个rst索引被信令通知并用于亮度和色度。
[0147]
2.4.2.2.2.rst的限制
[0148]
当选择isp模式时,禁用rst,并且不信令通知rst索引,因为即使将rst应用于每个可行的分割块,性能改进也是微乎其微的。此外,对isp预测残差禁用rst可以降低编码复杂性。
[0149]
2.4.2.2.3.rst选择
[0150]
从四个变换集中选择rst矩阵,每个变换集由两个变换组成。应用哪个变换集从帧内预测模式确定,如下:
[0151]
(1)如果指示三种cclm模式之一,则选择变换集0。
[0152]
(2)否则,根据下表执行变换集选择:
[0153]
变换集选择表
[0154]
intrapredmode变换集索引intrapredmode《010《=intrapredmode《=102《=intrapredmode《=12113《=intrapredmode《=23224《=intrapredmode《=44345《=intrapredmode《=55256《=intrapredmode1
[0155]
访问上表的索引,表示为intrapredmode,范围为[-14,83],这是用于宽角度帧内预测的变换模式索引。
[0156]
2.4.2.2.4.简化维度的rst矩阵
[0157]
作为进一步简略化,应用16x48矩阵代替具有相同变换集配置的16x64,每个矩阵从左顶部8x8块中排除右底部4x4块的三个4x4块中获取48个输入数据(如图13所示)。
[0158]
2.4.2.2.5.rst信令通知
[0159]
正rst 8x8使用16
×
48矩阵,使得它只在前3个3
×
4区域的左顶部4
×
4区域中产生非零系数。换句话说,如果应用rst 8x8,则仅左顶部4
×
4(由于rst 8x8)和右底部4x4区域(由于一次变换)可以具有非零系数。结果,当在右顶部4x4和左底部4x4块区域(如图14所示,称为“归零”区域)内检测到任何非零元素时,rst索引不被编解码,因为这暗示没有应用rst。在这种情况下,rst索引被推断为零。
[0160]
2.4.2.2.6.一个cg内的归零区域
[0161]
通常,在对4
×
4子块应用逆rst之前,4
×
4子块中的任何系数都可以为非零。然而,在一些情况下受到约束,在将逆rst应用于子块之前,4
×
4子块中的一些系数必须为零。
[0162]
设nonzerosize为变量。要求在逆rst之前将具有不小于nonzerosize的索引的任何系数重新排列到1-d阵列中时,该任何系数必须为零。
[0163]
当nonzerosize等于16时,左顶部4
×
4子块中的系数没有归零约束。
[0164]
在jvet-n0193中,当当前块尺寸为4
×
4或8
×
8时,nonzerosize被设置为等于8(即,扫描索引在[8,15]范围内的系数,如图14所示,应当为0)。对于其他块维度,nonzerosize被设置为等于16。
[0165]
2.4.2.2.7.工作草案中对rst的描述
[0166]
7.3.2.3序列参数集rbsp语法
[0167][0168]
7.3.7.11残差编解码语法
[0169][0170][0171]
7.3.7.5编解码单元语法
[0172][0173][0174]
等于1的sps_st_enabled_flag指定st_idx可以存在于帧内编解码单元的残差编解码语法中。等于0的sps_st_enabled_flag指定st_idx不存在于帧内编解码单元的残差编解码语法中。
[0175]
st_idx[x0][y0]指定在所选择的变换集中的两个候选核之间应用哪个二次变换核。等于0的st_idx[x0][y0]指定不应用二次变换。阵列索引x0、y0指定所考虑的变换块相对于图片的左顶部样点的左顶部样点的位置(x0,y0)。
[0176]
当st_idx[x0][y0]不存在时,st_idx[x0][y0]被推断为等于0。
[0177]
注意,是否发送st_idx取决于cu内的所有tu中的非零系数的数量(例如,对于单树,3个块(即,y、cb、cr)中的非零系数的数量);对于双树和亮度编解码,亮度块中的非零系
数的数量;对于双树和色度编解码,两个色度块中的非零系数的数量)。另外,阈值取决于分割结构,(treetype==single_tree)?2:1)。
[0178]
st_idx的二进制位是上下文编解码的。更具体地,以下适用:
[0179]
表9-9

语法元素和相关联的二值化
[0180][0181]
表9-15

将ctxinc分配给具有上下文编解码二进制位的语法元素
[0182][0183]
9.5.4.2.8语法元素st_idx的ctxinc的推导过程
[0184]
该过程的输入是色彩分量索引cidx、根据cidx指定当前亮度或色度编解码块相对于当前图片的左顶部样点的左顶部样点的亮度或色度位置(x0,y0)、树类型treetype、第8.4.2条中指定的亮度帧内预测模式intrapredmodey[x0][y0]、第7.4.7.5条中指定的指定色度样点的帧内预测模式的语法元素intra_chroma_pred_mode[x0][y0]、以及多变换选择索引tu_mts_idx[x0][y0]。
[0185]
该过程的输出是变量ctxinc。
[0186]
变量intramodectx被推导如下:
[0187]
如果cidx等于0,则intramodectx被推导如下:
[0188]
intramodectx=(intrapredmodey[x0][y0]《=1)(1:0
[0189]
否则(cidx大于0),intramodectx被推导如下:
[0190]
intramodectx=(intra_chroma_pred_mode[x0][y0]》=4)?1:0
[0191]
变量mtsctx被推导如下:
[0192]
mtsctx=(tu_mts_idx[x0][y0]==0&&treetype!=single_tree)?
[0193]
1:0
[0194]
变量ctxinc被推导如下:
[0195]
ctxinc=(binidx《《1) intramodectx (mtsctx《《2)
[0196]
2.4.2.2.8.rst使用的概述
[0197]
只有当一个块中的非零系数的数量分别对于单个树和单独树大于2和1时,才能启用rst。此外,当启用rst时,还需要对rst应用的编解码组(cg)的非零系数的位置的以下限制。
[0198]
表1:rst的使用
[0199][0200][0201]
2.4.3.子块变换
[0202]
对于具有等于1的cu_cbf的帧间预测cu,可以信令通知cu_sbt_flag以指示解码整个残差块还是残差块的子部分。在前一种情况下,进一步解析帧间mts信息以确定cu的变换类型。在后一种情况下,残差块的一部分用推断的自适应变换进行编解码,并且残差块的另一部分归零。sbt不应用于组合帧间-帧内模式。
[0203]
在子块变换中,位置依赖变换被应用于sbt-v和sbt-h中的亮度变换块(色度tb总是使用dct-2)。sbt-h和sbt-v的两个位置与不同的核心变换相关联。更具体地,每个sbt位置的水平和垂直变换在图3中指定。例如,sbt-v位置0的水平和垂直变换分别是dct-8和dst-7。当残差tu的一侧大于32时,对应的变换被设置为dct-2。因此,子块变换联合指定tu平铺(tiling)、cbf以及残差块的水平和垂直变换,这可以被认为是块的主要残差在块的一侧的情况的语法快捷方式。
[0204]
2.4.3.1.语法元素
[0205]
7.3.7.5编解码单元语法
[0206][0207][0208]
等于1的cu_sbt_flag指定对于当前编解码单元,使用子块变换。等于0的cu_sbt_flag指示对于当前编解码单元,不使用子块变换。
[0209]
当cu_sbt_flag不存在时,其值被推断为等于0。
[0210]
注意

:当使用子块变换时,编解码单元被划分为两个变换单元;一个变换单元具有残差数据,另一个不具有残差数据。
[0211]
等于1的cu_sbt_quad_flag指定对于当前编解码单元,子块变换包括当前编解码单元的1/4尺寸的变换单元。等于0的cu_sbt_quad_flag指定对于当前编解码单元,子块变换包括当前编解码单元的1/2尺寸的变换单元。
[0212]
当cu_sbt_quad_flag不存在时,其值被推断为等于0。
[0213]
等于1的cu_sbt_horizontal_flag指定当前编解码单元被水平划分为2个变换单元。等于0的cu_sbt_horizontal_flag[x0][y0]指定当前编解码单元被垂直划分为2个变换单元。
[0214]
当cu_sbt_horizontal_flag不存在时,其值被推导如下:
[0215]

如果cu_sbt_quad_flag等于1,则cu_sbt_horizontal_flag被设置为等于allowsbthorq。
[0216]

否则(cu_sbt_quad_flag等于0),cu_sbt_horizontal_flag被设置为等于allowsbthorh。
[0217]
等于1的cu_sbt_pos_flag指定当前编解码单元中的第一变换单元的tu_cbf_luma、tu_cbf_cb和tu_cbf_cr不存在于比特流中。等于0的cu_sbt_pos_flag指定当前编解码单元中的第二变换单元的tu_cbf_luma、tu_cbf_cb和tu_cbf_cr不存在于比特流中。
[0218]
变量sbtnumfourthstb0被推导如下:
[0219]
sbtminnumfourths=cu_sbt_quad_flag?1:2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7-117)
[0220]
sbtnumfourthstb0=cu_sbt_pos_flag?(4-sbtminnumfourths):sbtminnumfourths
ꢀꢀꢀ
(7-118)
[0221][0222][0223]
等于0的sps_sbt_max_size_64_flag指定允许子块变换的最大cu宽度和高度为32个亮度样点。等于1的sps_sbt_max_size_64_flag指定允许子块变换的最大cu宽度和高度为64个亮度样点。
[0224]
maxsbtsize=sps_sbt_max_size_64_flag?64:32
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7-33)
[0225]
2.4.4.量化残差域块差分脉码调制编解码(qr-bdpcm)
[0226]
在jvet-n0413中,提出了量化残差域bdpcm(以下表示为rbdpcm)。通过在类似于帧内预测的预测方向(水平或垂直预测)上的样点复制,对整个块进行帧内预测。残差被量化,并且量化残差与其预测值(水平或垂直)量化值之间的增量被编解码。
[0227]
对于尺寸为m(行)
×
n(列)的块,设r
i,j
,0≤i≤m-1,0≤j≤n-1,是在使用来自上方或左边块边界样点的未滤波样点水平地(跨预测块逐行复制左边邻居像素值)或垂直地(在预测块中将顶部邻居线复制到每个线)执行帧内预测之后的预测残差。设q(r
i,j
),0≤i≤m-1,0≤j≤n-1表示残差r
i,j
的量化版本,其中残差是原始块和预测块值之间的差。然后将块dpcm应用于量化残差样点,得到具有元素的修改的m
×
n阵列当信令通知垂直bdpcm时:
[0228][0229]
对于水平预测,类似的规则适用,通过以下获得残差量化样点
[0230][0231]
残差量化样点被传送到解码器。
[0232]
在解码器侧,以上计算相反,以产生q(r
i,j
),0≤i≤m-1,0≤j≤n-1。对于垂直预测情况,
[0233][0234]
对于水平情况,
[0235][0236]
逆量化残差q-1
(q(r
i,j
))被添加到帧内块预测值,以产生重构的样点值。
[0237]
当选择qr-bdpcm时,不应用任何变换。
[0238]
2.5.系数的熵编解码
[0239]
2.5.1.变换应用块的系数编解码
[0240]
在hevc中,使用非重叠的系数组(或子块)对编解码块的变换系数进行编解码,并且每个cg包含编解码块的4x4块的系数。编解码块内的cg和cg内的变换系数根据预定义的扫描顺序进行编解码。
[0241]
编解码块内的cg和cg内的变换系数根据预定义的扫描顺序进行编解码。cg和cg内的系数都遵循对角线右上扫描顺序。4x4块和8x8扫描顺序的示例分别在图16和图17中描绘。
[0242]
注意,编解码顺序是相反的扫描顺序(即,在图17中从cg3到cg0的解码),当解码一个块时,首先解码最后一个非零系数的坐标。
[0243]
具有至少一个非零变换系数的cg的变换系数级别的编解码可以分开为多个扫描遍次(pass)。在第一遍次中,第一二进制位(由bin0表示,也称为significant_coeff_flag,其指示系数的幅度大于0)被编解码。接下来,可以应用对第二/第三二进制位(分别由bin1和bin2表示,也称为coeff_abs_greater1_flag和coeff_abs_greater2_flag)进行上下文编解码的两个扫描遍次。最终,如果需要,调用对符号信息和系数级别的剩余值(也称为coeff_abs_level_remaining)进行编解码的两个更多扫描遍次。注意,仅前三个扫描遍次中的二进制位在常规模式下进行编解码,并且这些二进制位在下面的描述中被称为常规二进制位。
[0244]
在vvc3中,对于每个cg,常规编解码二进制位和旁路编解码二进制位按照编解码顺序分开;首先,发送子块的所有常规编解码二进制位,此后,发送旁路编解码二进制位。子块的变换系数级别在扫描位置上在五个遍次中进行编解码,如下:
[0245]

遍次1:按照编解码顺序处理重要性(sig_flag)、大于1标志(gt1_flag)、奇偶校验(par_level_flag)和大于2标志(gt2_flag)的编解码。如果sig_flag等于1,首先对gt1_flag进行编解码(指定绝对级别是否大于1)。如果gt1_flag等于1,对par_flag进行附加编解码(它指定绝对级别减2的奇偶性)。
[0246]

遍次2:对具有等于1的gt2_flag或等于1的gt1_flag的所有扫描位置处理剩余绝对级别(余数)的编解码。用golomb-rice码对非二进制语法元素进行二值化,并在算术编解码引擎的旁路模式下对产生的二进制位进行编解码。
[0247]

遍次3:在第一遍次中没有sig_flag被编解码的系数的绝对级别(abslevel)(由于达到了常规编解码二进制位的限制)在算术编解码引擎的旁路模式下使用golomb-rice码进行完全编解码。
[0248]

遍次4:具有等于1的sig_coeff_flag的所有扫描位置的符号(sign_flag)的编解码
[0249]
对于4x4子块,保证不超过32个常规编解码二进制位(sig_flag、par_flag、gt1_flag和gt2_flag)被编码或解码。对于2x2色度子块,常规编解码二进制位的数量被限制为8。
[0250]
用于非二进制语法元素余数(在遍次3中)进行编解码的rice参数(ricepar)类似于hevc来推导。在每个子块的开始,ricepar被设置为等于0。在对语法元素余数进行编解码之后,rice参数根据预定义的等式进行修改。对于对非二进制语法元素abslevel进行编解码(在遍次4中),确定局部模板中的绝对值之和sumabs。变量ricepar和poszero是通过查表基于依赖量化和sumabs确定的。中间变量codevalue被推导如下:
[0251]

如果abslevel[k]等于0,则codevalue被设置为等于poszero;
[0252]

否则,如果abslevel[k]小于或等于poszero,则codevalue被设置为等于abslevel[k]

1;
[0253]

否则(abslevel[k]大于poszero),codevalue被设置为等于abslevel[k]。
[0254]
codevalue的值是使用具有rice参数ricepar的golomb-rice码进行编解码的。
[0255]
2.5.1.1.用于系数编解码的上下文建模
[0256]
与变换系数级别的绝对值相关的语法元素的概率模型的选择取决于局部邻域中的绝对级别或部分重构的绝对级别的值。使用的模板如图18所示。
[0257]
所选择的概率模型取决于局部邻域中的绝对级别(或部分重构的绝对级别)之和以及局部邻域中大于0的绝对级别的数量(由等于1的sig_coeff_flags的数量给出)。上下文建模和二值化取决于局部邻域的以下测量:
[0258]

numsig:局部邻域中的非零级别的数量;
[0259]

sumabs1:局部邻域中的第一遍次之后的部分重构的绝对级别(abslevel1)之和;
[0260]

sumab:局部邻域中的重构的绝对级别之和
[0261]

对角线位置(d):变换块内的当前扫描位置的水平和垂直坐标之和
[0262]
基于numsig、sumabs1和d的值,选择用于对sig_flag、par_flag、gt1_flag和gt2_flag进行编解码的概率模型。用于对abs_remainder进行二值化的rice参数是基于sumabs和numsig的值来选择的。
[0263]
2.5.1.2.依赖量化(dq)
[0264]
此外,相同的hevc标量量化与新的概念一起使用,称为依赖标量量化。依赖标量量化是指这样的方法,其中变换系数的容许重构值集合取决于按照重构顺序在当前变换系数级别之前的变换系数级别的值。这种方法的主要效果是,与在hevc中使用的传统独立标量量化相比,容许重构矢量在n维矢量空间中被更密集地封装(n表示变换块中的变换系数的数量)。这意味着,对于每n维单位体积的给定平均数量的容许重构矢量,输入矢量和最接近的重构矢量之间的平均失真减小。依赖标量量化的方法通过以下实现:(a)定义具有不同重
构级别的两个标量量化器,以及(b)定义两个标量量化器之间的切换过程。
[0265]
使用的两个标量量化器,由q0和q1表示,如图19所示。可用重构级别的位置由量化步长δ唯一指定。使用的标量量化器(q0或q1)不在比特流中显式信令通知。相反,用于当前变换系数的量化器由按照编解码/重构顺序在当前变换系数之前的变换系数级别的奇偶性确定。
[0266]
如图20所示,两个标量量化器(q0和q1)之间的切换经由具有四种状态的状态机来实现。状态可以取四个不同的值:0、1、2、3。它由按照编解码/重构顺序在当前变换系数之前的变换系数级别的奇偶性唯一确定。在变换块的逆量化的开始,状态被设置为等于0。变换系数按照扫描顺序重构(即,按照与它们被熵解码相同的顺序)。在当前变换系数被重构之后,状态被更新,如图20所示,其中k表示变换系数级别的值。
[0267]
2.5.1.3.语法和语义
[0268]
7.3.7.11残差编解码语法
[0269]
[0270]
[0271]
[0272][0273]
2.5.2.ts编解码块和qr-bdpcm编解码块的系数编解码
[0274]
qr-bdpcm遵循ts编解码块的上下文建模方法。
[0275]
ts残差的修改的变换系数级别编解码。相对于常规残差编解码情况,ts的残差编解码包括以下改变:
[0276]
(1)没有最后x/y位置的信令通知
[0277]
(2)当所有先前标志等于0时,为除了最后一个子块之外的每个子块编解码的coded_sub_block_flag
[0278]
(3)用简化模板的sig_coeff_flag上下文建模,
[0279]
(4)abs_level_gt1_flag和par_level_flag的单个上下文模型,
[0280]
(5)符号标志的上下文建模,附加大于5、7、9的标志,
[0281]
(6)余数二值化的修改的rice参数推导
[0282]
(7)对每个样点的上下文编解码二进制位的数量的限制,一个块内每个样点2个二进制位。
[0283]
2.5.2.1.语法和语义
[0284]
7.3.6.10变换单元语法
[0285][0286]
[0287]
[0288][0289]
对于每个cg,上下文编解码二进制位的数量被限制为不大于每个样点2个二进制位。
[0290]
表9 15

将ctxinc分配给具有上下文编解码二进制位的语法元素
[0291][0292]
3.现有实施方式的缺点
[0293]
当前设计有以下问题:
[0294]
(1)色度分量的四个预定义变换集与亮度分量的相同。此外,具有相同帧内预测模式的亮度和色度块使用相同的变换集。然而,与亮度分量相比,色度信号通常更平滑。使用相同的集可能是次优的。
[0295]
(2)rst仅被应用于特定cg,而不是所有cg。然而,关于信令通知rst索引的决定取决于整个块中的非零系数的数量。当应用rst的cg中的所有系数都为零时,没有必要信令通知rst索引。然而,当前设计仍然可能信令通知浪费不必要比特的索引。
[0296]
(3)rst索引是在残差编解码之后信令通知的,因为它需要记录有多少非零系数,在特定位置是否存在非零系数(例如,第2.3.2.2.7节中的numzerooutsigcoeff、numsigcoeff)。这样的设计使得解析过程更加复杂。
[0297]
(4)rst索引是上下文编解码的,并且上下文建模取决于编解码的亮度/色度帧内预测模式和mts索引。这样的设计在帧内预测模式的重构方面引入了解析延迟。并且引入了8个上下文,这可能是硬件实施的负担。
[0298]
(a)dm和cclm共享相同的上下文索引偏移,这没有意义,因为它们是两种不同的色度帧内预测方法。
[0299]
(5)非ts残差编解码的当前设计首先对系数信息进行编解码,然后是rst索引(即,使用或不使用rst,如果使用,则选择哪个矩阵)。在这样的设计的情况下,残差的熵编解码中不能考虑rst开/关的信息。
[0300]
(6)rst始终被应用于应用了一次变换的变换块的左顶部区域。然而,对于不同的一次变换基,能量并不总是集中在变换块的左顶部区域中。
[0301]
(7)对于双树和单树编解码结构,是否信令通知rst相关信息的确定以不同的方式进行。
[0302]
(8)当cu中有多于一个tu时(例如,cu尺寸为128
×
128),是否解析rst相关信息只能在解码所有tu之后才能确定。例如,对于128x128cu,在不等待最后一个pb之后的lfnst索引的情况下,就无法处理第一个pb。尽管这不一定破坏整个基于64x64的解码器流水线(如果cabac可以被解耦),但对于特定数量的解码器流水线阶段,它会将数据缓冲增加4倍。成本很高。
[0303]
4.用于残差编解码的上下文建模的示例方法
[0304]
当前公开的技术的实施例克服了现有实施方式的缺点,从而提供了具有更高编解码效率的视频编解码。基于所公开的技术,用于残差编解码的上下文建模的方法可以增强现有和未来的视频编解码标准,这在针对各种实施方式描述的以下示例中进行了阐述。下面提供的所公开的技术的示例解释了一般概念,并且不意味着被解释为限制。在示例中,除非明确指示相反的情况,否则这些示例中描述的各种特征可以被组合。
[0305]
在以下描述中,“块”可以指视频数据的编解码单元(cu)或变换单元(tu)或任何矩形区域。“当前块”可以指视频数据的当前正被解码/编码的编解码单元(cu)或当前正被解码/编码的变换单元(tu)或任何正被解码/编码的编解码矩形区域。“cu”或“tu”也可以称为“编解码块”和“变换块”。
[0306]
在这些示例中,rst可以是jvet-n0193中的设计的任何变体。rst可以是可以对一个块应用二次变换或者对变换跳过(ts)编解码块应用变换的任何技术(例如,在jvet-n0193中提出的应用于ts编解码块的rst)。
[0307]
此外,“归零区域”或“归零cg”可以指示由于二次变换过程中使用的减小的变换尺寸而总是具有零系数的那些区域/cg。例如,如果二次变换尺寸为16x32,并且cg尺寸为4x4,它将被应用于前两个cg,但仅第一cg可以具有非零系数,第二4x4 cg也被称为归零cg。
[0308]
rst中的变换矩阵的选择
[0309]
1.rst被应用于的子区域可以为不是块的左顶部部分的子区域。
[0310]
a.在一个示例中,rst可以被应用于块的右顶部或右底部或左底部或中心子区域。
[0311]
b.rst被应用于的哪个子区域可以取决于帧内预测模式和/或一次变换矩阵(例如,dct-ii、dst-vii、恒等变换)。
[0312]
2.在rst中使用的变换集和/或变换矩阵的选择可以取决于色彩分量。
[0313]
a.在一个示例中,变换矩阵的一个集合可以用于亮度(或g)分量,并且一个集合用于色度分量(或b/r)。
[0314]
b.在一个示例中,每个色彩分量可以对应于一个集合。
[0315]
c.在一个示例中,对于不同的色彩分量,至少一个矩阵在两个或多个集合中的任何集合中是不同的。
[0316]
3.在rst中使用的变换集和/或变换矩阵的选择可以取决于帧内预测方法(例如,cclm、基于多参考线的帧内预测方法、基于矩阵的帧内预测方法)。
[0317]
a.在一个示例中,变换矩阵的一个集合可以用于cclm编解码块,并且另一个集合用于非cclm编解码块。
[0318]
b.在一个示例中,变换矩阵的一个集合可以用于正常的帧内预测编解码块,并且另一个集合用于多参考线启用块(即,其不使用相邻线进行帧内预测)。
[0319]
c.在一个示例中,变换矩阵的一个集合可以用于利用联合色度残差编解码的块,并且另一个集合用于没有应用联合色度残差编解码的块。
[0320]
d.在一个示例中,对于不同的帧内预测方法,至少一个矩阵在两个或多个集合中的任何集合中是不同的。
[0321]
e.可替代地,可以对利用特定帧内预测方向和/或特定编解码工具(例如,cclm、和/或联合色度残差编解码)和/或特定色彩分量(例如,色度)编解码的块禁用rst。
[0322]
4.在rst中使用的变换集和/或变换矩阵的选择可以取决于一次变换。
[0323]
a.在一个示例中,如果应用于一个块的一次变换是恒等变换(例如,ts模式被应用于一个块),则在rst中使用的变换集和/或变换矩阵可以不同于其他种类的一次变换。
[0324]
b.在一个示例中,如果应用于一个块的水平和垂直1-d一次变换是相同的基(例如,都为dct-ii),则在rst中使用的变换集和/或变换矩阵可以不同于来自不同方向(垂直或水平)的不同基的一次变换。
[0325]
rst边信息的信令通知和残差编解码
[0326]
5.是否和/或如何信令通知rst的边信息(例如,st_idx)可以取决于块中的最后一个非零系数(按照扫描顺序)。
[0327]
a.在一个示例中,仅当最后一个非零系数位于rst被应用于的cg中时,rst才可以被启用,并且rst的索引可以被信令通知。
[0328]
b.在一个示例中,如果最后一个非零系数不位于rst被应用于的cg中,则rst被禁用,并且rst的信令通知被跳过。
[0329]
6.是否和/如何信令通知rst的边信息(例如,st_idx)可以取决于特定色彩分量而不是cu中的所有可用色彩分量的系数。
[0330]
a.在一个示例中,仅亮度信息可以用于确定是否和/如何信令通知rst的边信息。
[0331]
i.此外,可替代地,仅当块的维度满足特定条件时,才应用以上方法。
[0332]
1)条件是w《t1或h《t2。
[0333]
2)例如,t1=t2=4。因此,对于4x4 cu,亮度块尺寸为4x4,4:2:0格式的两个色度
块为2x2,在这种情况下,可以仅利用亮度信息。
[0334]
ii.此外,可替代地,仅当当前分割类型树为单树时,才应用以上方法。
[0335]
b.使用一个色彩分量的信息还是所有色彩分量的信息可以取决于块维度/编解码信息。
[0336]
7.是否和/或如何信令通知rst的边信息(例如,st_idx)可以取决于一个块的部分区域而不是整个块内的系数。
[0337]
a.在一个示例中,部分区域可以被定义为rst被应用于的cg。
[0338]
b.在一个示例中,部分区域可以被定义为块的按照扫描顺序或逆扫描顺序的前或后m(例如,m=1或2)个cg。
[0339]
i.在一个示例中,m可以取决于块维度。
[0340]
ii.在一个示例中,如果块尺寸为4xn和/或nx4(n》8),则m被设置为2。
[0341]
iii.在一个示例中,如果块尺寸为4x8和/或8x4和/或wxh(w》=8,h》=8),则m被设置为1。
[0342]
c.在一个示例中,可以不允许考虑维度为w
×
h的块的信息(例如,块的非零系数的数量)来确定rst的使用和/或rst相关信息的信令通知。
[0343]
i.例如,如果w《t1或h《t2,则可以不对块的非零系数的数量进行计数。例如,t1=t2=4。
[0344]
d.在一个示例中,部分区域可以被定义为维度为w
×
h的当前块的左顶部m
×
n区域。
[0345]
i.在一个示例中,m可以小于w和/或n可以小于h。
[0346]
ii.在一个示例中,m和n可以是固定数。例如,m=n=4。
[0347]
iii.在一个示例中,m和/或n可以取决于w和/或h。
[0348]
iv.在一个示例中,m和/或n可以取决于最大允许变换尺寸。
[0349]
1)例如,如果w大于8,并且h等于4,则m=8,并且n=4。
[0350]
2)例如,如果h大于8,并且w等于4,则m=4,并且n=8。
[0351]
3)例如,如果以上两个条件都不满足,则m=4,并且n=4。
[0352]
v.此外,可替代地,这些方法可以仅被应用于特定块维度,诸如不满足7.c中的条件。
[0353]
e.在一个示例中,部分区域对于所有块可以是相同的。
[0354]
i.可替代地,它可以基于块维度和/或编解码信息来改变。
[0355]
f.在一个示例中,部分区域可以取决于扫描顺序索引的给定范围。
[0356]
i.在一个示例中,部分区域可以是基于维度为w
×
h的当前块的系数扫描顺序(例如,逆解码顺序)覆盖位于特定范围内的系数的区域,其扫描顺序索引在[dxs,idxe](含)内。
[0357]
1)在一个示例中,idxs等于0。
[0358]
2)在一个示例中,idxe可以小于w
×
h-1。
[0359]
3)在一个示例中,idxe可以是固定数。例如,idxe=15。
[0360]
4)在一个示例中,idxe可以取决于w和/或h。
[0361]
a.例如,如果w大于8,并且h等于4,则idxe=31。
[0362]
b.例如,如果h大于8,并且w等于4,则idxe=31。
[0363]
c.例如,如果w等于8,并且h等于8,则idxe=7。
[0364]
d.例如,如果w等于4,并且h等于4,则idxe=7。
[0365]
e.例如,如果以上两个条件a)和b)都不满足,则idxe=15。
[0366]
f.例如,如果以上两个条件a)、b)、c)和d)都不满足,则idxe=15。
[0367]
g.例如,如果以上两个条件c)和d)都不满足,则idxe=15。
[0368]
ii.此外,可替代地,这些方法可以仅被应用于特定块维度,诸如不满足7.c中的条件。
[0369]
g.在一个示例中,它可以取决于部分区域内的非零系数的位置。
[0370]
h.在一个示例中,它可以取决于部分区域内的非零系数的能量(诸如平方和或绝对值之和)。
[0371]
i.在一个示例中,它可以取决于一个块的部分区域而不是整个块内的非零系数的数量。
[0372]
i.可替代地,它可以取决于cu中的一个或多个块的部分区域内的非零系数的数量。
[0373]
ii.当一个块的部分区域内的非零系数的数量小于阈值时,可以跳过rst的边信息的信令通知。
[0374]
iii.在一个示例中,阈值被固定为n(例如,n=1或2)。
[0375]
iv.在一个示例中,阈值可以取决于条带类型/图片类型/分割树类型(双或单个)/视频内容(屏幕内容或相机捕获内容)。
[0376]
v.在一个示例中,阈值可以取决于色彩格式(诸如4:2:0或4:4:4)和/或色彩分量(诸如y或cb/cr)。
[0377]
8.当rst可以被应用于的cg中没有非零系数时,应当禁用rst。
[0378]
a.在一个示例中,当rst被应用于一个块时,rst被应用于的至少一个cg必须包含至少一个非零系数。
[0379]
b.在一个示例中,对于4xn和/或nx4(n》8),如果应用rst,则前两个4x4 cg必须包含至少一个非零系数。
[0380]
c.在一个示例中,对于4x8和/或8x4,如果应用rst,左顶部4x4必须包含至少一个非零系数。
[0381]
d.在一个示例中,对于wxh(w》=8,h》=8),如果应用rst,则左顶部4x4必须包含至少一个非零系数。
[0382]
e.一致性比特流必须满足以上条件中的一个或多个。
[0383]
9.可以在对残差(例如,变换系数/直接量化)进行编解码之前信令通知rst相关语法元素。
[0384]
a.在一个示例中,在系数的解析过程中移除对归零区域中非零系数的数量(例如,numzerooutsigcoeff)和整个块中的非零系数的数量(例如,numsigcoeff)的计数。
[0385]
b.在一个示例中,可以在residual_coding之前对rst相关语法元素(例如,st_idx)进行编解码。
[0386]
c.可以(例如,根据编解码块标志、ts模式使用)有条件地信令通知rst相关语法元
素。
[0387]
i.在一个示例中,可以在编解码块标志的信令通知之后或者在ts/mts相关语法元素的信令通知之后对rst相关语法元素(例如,st_idx)进行编解码。
[0388]
ii.在一个示例中,当启用ts模式时(例如,解码的transform_skip_flag等于1),跳过rst相关语法元素的信令通知。
[0389]
d.可以不针对归零cg信令通知残差相关语法。
[0390]
e.如何对残差进行编解码(例如,扫描顺序、二值化、要解码的语法、上下文建模)可以取决于rst。
[0391]
i.在一个示例中,可以应用光栅扫描顺序,而不是对角线右上扫描顺序。
[0392]
5)光栅扫描顺序是从左到右并且从上到下,或者按照逆序。
[0393]
6)可替换地,可以应用垂直扫描顺序(从上到下并且从左到右,或者按照逆序),而不是对角线右上扫描顺序。
[0394]
7)此外,可替代地,可以修改上下文建模。
[0395]
a.在一个示例中,上下文建模可以取决于模板中的先前编解码信息,其是按照扫描顺序的最近n个邻居,而不是使用右边、底部、右底部邻居。
[0396]
b.在一个示例中,上下文建模可以根据扫描的索引(例如,-1、-2、...,假设当前索引等于0)取决于模板中的先前编解码信息。
[0397]
ii.在一个示例中,可以应用不同的二值化方法(例如,莱斯参数推导)来对与rst编解码块和非rst编解码块相关联的残差进行编解码。
[0398]
iii.在一个示例中,可以针对rst编解码块跳过特定语法元素的信令通知。
[0399]
1)可以跳过rst被应用于的cg的cg编解码块标志(coded_sub_block_flag)的信令通知。
[0400]
a.在一个示例中,当rst 8x8应用于按照对角线扫描顺序的前三个cg时,针对第二和第三cg(例如,块的左顶部8x8区域中的右顶部4x4 cg和左下方4x4 cg)跳过cg编解码块标志的信令通知。
[0401]
i.此外,可替代地,对应的cg编解码块标志被推断为0,即,所有系数都为零。
[0402]
b.在一个示例中,当rst被应用于一个块时,针对按照扫描顺序的第一个cg(或按照逆扫描顺序的最后一个cg)跳过cg编解码块标志的信令通知。
[0403]
ii.此外,可替代地,块中的左顶部cg的cg编解码块标志被推断为1,即,它包含至少一个非零系数。
[0404]
c.在图21中描绘了8x8块的示例。当rst8x8或rst 4x4被应用于8x8块时,cg0的coded_sub_block_flag被推断为1,cg1和cg2的coded_sub_block_flag被推断为0。
[0405]
2)可以跳过系数的幅度和/或特定坐标的符号标志的信令通知。
[0406]
a.在一个示例中,如果相对于按照扫描顺序的一个cg的索引不小于非零系数可以存在的最大允许索引(例如,第0节中的nonzerosize),则可以跳过系数的信令通知。
[0407]
b.在一个示例中,可以跳过语法元素(诸如sig_coeff_flag、abs_level_gtx_flag、par_level_flag、abs_remainder、coeff_sign_flag、dec_abs_level)的信令通知。
[0408]
3)可替代地,可以保持残差(例如,cg编解码块标志、系数的幅度和/或特定坐标的符号标志)的信令通知,然而,上下文建模可以被修改为不同于其他cg。
[0409]
iv.在一个示例中,rst应用的cg和其他cg中的残差的编解码可以不同。
[0410]
1)对于以上子项目符号,它们可以仅被应用于rst被应用的cg。
[0411]
10.rst相关语法元素可以在其他变换指示(诸如变换跳过和/或mts索引)之前被信令通知。
[0412]
a.在一个示例中,变换跳过的信令通知可以取决于rst信息。
[0413]
i.在一个示例中,如果在块中应用rst,则对于该块,变换跳过指示不被信令通知并且被推断为0。
[0414]
b.在一个示例中,mts索引的信令通知可以取决于rst信息。
[0415]
i.在一个示例中,如果在块中应用rst,则对于该块,一个或多个mts变换指示不被信令通知并且被推断为不使用。
[0416]
11.提出使用算术编解码中的不同上下文建模方法用于一个块内的不同部分。
[0417]
a.在一个示例中,块被视为两个部分,按照扫描顺序的前m个cg、以及剩余cg。
[0418]
i.在一个示例中,m被设置为1。
[0419]
ii.在一个示例中,对于4xn和nx4(n》8)块,m被设置为2;对于所有其他情况,m被设置为1。
[0420]
b.在一个示例中,块被视为两个部分,rst被应用的子区域和rst不应用的子区域。
[0421]
i.如果应用rst 4x4,则应用rst的子区域是当前块的前一个或两个cg。
[0422]
ii.如果应用rst 4x4,则应用rst的子区域是当前块的前三个cg。
[0423]
c.在一个示例中,提出在一个块内的第一部分的上下文建模过程中禁用先前编解码信息的使用,而对第二部分启用它。
[0424]
d.在一个示例中,当对第一cg进行解码时,可以不允许使用剩余的一个或多个cg的信息。
[0425]
i.在一个示例中,当对第一cg的cg编解码块标志进行编解码时,不考虑第二cg(例如,右边或下方)的值。
[0426]
ii.在一个示例中,当对第一cg的cg编解码块标志进行编解码时,不考虑第二和第三cg(例如,wxh(w》=8并且h》=8)的右边和下方cg)的值。
[0427]
iii.在一个示例中,当对当前系数进行编解码时,如果其在上下文模板中的邻居在不同的cg中,则不允许使用来自该邻居的信息。
[0428]
e.在一个示例中,当对应用rst的区域中的系数进行解码时,可以不允许使用rst没有被应用于的其余区域的信息。
[0429]
f.此外,可替代地,以上方法可以在特定条件下应用。
[0430]
i.条件可以包括是否启用rst。
[0431]
ii.条件可以包括块维度。
[0432]
rst边信息的算术编解码中的上下文建模
[0433]
12.当对rst索引进行编解码时,上下文建模可以取决于启用显式还是隐式多变换选择(mts)。
[0434]
a.在一个示例中,当启用隐式mts时,可以针对以相同帧内预测模式编解码的块选择不同的上下文。
[0435]
i.在一个示例中,块维度(诸如形状(正方形或非正方形))用于选择上下文。
[0436]
b.在一个示例中,代替检查针对显式mts编解码的变换索引(例如,tu_mts_idx),反而可以使用变换矩阵基。
[0437]
i.在一个示例中,对于具有水平和垂直1-d变换的dct-ii的变换矩阵基,对应的上下文可以不同于其他种类的变换矩阵。
[0438]
13.当对rst索引进行编解码时,上下文建模可以取决于cclm是否被启用(例如,sps_cclm_enabled_flag)。
[0439]
a.可替代地,是否启用或如何选择rst索引编解码的上下文可以取决于cclm是否被应用于一个块。
[0440]
b.在一个示例中,上下文建模可以取决于是否对当前块启用cclm。
[0441]
i.在一个示例中,intramodectx=sps_cclm_enabled_flag?(intra_chroma_pred_mode[x0][y0]是cclm:intra_chroma_pred_mode[x0][y0]是dm)?1:0。
[0442]
c.可替代地,是否启用或如何选择rst索引编解码的上下文可以取决于当前色度块是否以dm模式进行编解码。
[0443]
i.在一个示例中,intramodectx=(intra_chroma_pred_mode[x0][y0]==(sps_cclm_enabled_flag?7:4))?1:0.
[0444]
14.当对rst索引进行编解码时,上下文建模可以取决于块维度/划分深度(例如,四叉树深度和/或bt/tt深度)。
[0445]
15.当对rst索引进行编解码时,上下文建模可以取决于色彩格式和/或色彩分量。
[0446]
16.当对rst索引进行编解码时,上下文建模可以独立于帧内预测模式和/或mts索引。
[0447]
17.当对rst索引进行编解码时,第一和/或第二二进制位可以仅用一个上下文进行上下文编解码;或者旁路编解码。
[0448]
在条件下调用rst过程
[0449]
18.是否调用逆rst过程可以取决于cg编解码块标志。
[0450]
a.在一个示例中,如果左顶部cg编解码块标志为零,则不需要调用该过程。
[0451]
i.在一个示例中,如果左顶部cg编解码块标志为零,并且块尺寸不等于4xn/nx4(n》8),则不需要调用该过程。
[0452]
b.在一个示例中,如果按照扫描顺序的前两个cg编解码块标志都等于零,则不需要调用该过程。
[0453]
i.在一个示例中,如果按照扫描顺序的前两个cg编解码块标志都等于零,并且块尺寸等于4xn/nx4(n》8),则不需要调用该过程。
[0454]
19.是否调用逆rst过程可以取决于块维度。
[0455]
a.在一个示例中,对于特定块维度,诸如4x8/8x4,可以禁用rst。此外,可替代地,可以跳过rst相关语法元素的信令通知。
[0456]
双树和单树编解码的统一
[0457]
20.rst的使用和/或rst相关信息的信令通知可以在双树和单树编解码中以相同的方式确定。
[0458]
a.例如,当计数的非零系数的数量(例如,jvet-n0193中指定的numsigcoeff)在双树编解码的情况下不大于t1或在单树编解码的情况下不大于t2时,不应该应用rst,并且不
信令通知相关信息,其中t1等于t2。
[0459]
b.在一个示例中,t1和t2都被设置为n,例如n=1或2。
[0460]
考虑cu中的多个tu。
[0461]
21.是否和/或如何应用rst可以取决于块维度w
×
h。
[0462]
a.在一个示例中,当可以不应用rst时,如果w》t1或h》t2。
[0463]
b.在一个示例中,当可以不应用rst时,如果w》t1并且h》t2。
[0464]
c.在一个示例中,当可以不应用rst时,如果w*h》=t。
[0465]
d.对于以上示例,以下适用:
[0466]
i.在一个示例中,块是cu。
[0467]
ii.在一个示例中,t1=t2=64。
[0468]
iii.在一个示例中,t1和/或t2可以取决于允许的最大变换尺寸。例如,t1=t2=允许的最大变换尺寸。
[0469]
iv.在一个示例中,t被设置为4096。
[0470]
e.此外,可替代地,如果确定不应用rst,则可以不信令通知相关信息。
[0471]
22.当cu中有n(n》1)个tu时,仅n个tu中的一个的编解码信息用于确定rst的使用和/或rst相关信息的信令通知。
[0472]
a.在一个示例中,按解码顺序的cu的第一个tu可以用于进行确定。
[0473]
b.在一个示例中,按解码顺序的cu的左顶部tu可以用于进行确定。
[0474]
c.在一个示例中,可以以与当在cu中仅有一个tu时的情况相同的方式来做出利用特定tu的确定。
[0475]
23.rst的使用和/或rst相关信息的信令通知可以在tu级别或pu级别而不是cu级别被执行。
[0476]
a.此外,可替代地,cu内的不同tu/pu可以选择不同的二次变换矩阵或启用/禁用控制标志。
[0477]
b.此外,可替代地,对于双树情况和色度块被编解码,不同的色彩分量可以选择不同的二次变换矩阵或启用/禁用控制标志。
[0478]
c.可替代地,是否在视频单元级别信令通知rst相关信息可以取决于分割树类型(双或单)。
[0479]
d.可替代地,是否在视频单元级别信令通知rst相关信息可以取决于cu/pu/tu和最大允许变换块尺寸之间的关系(诸如更大或更小)。
[0480]
5.所公开的技术的示例实施方式
[0481]
在以下示例性实施例中,在jvet-n0193上的改变以灰色突出显示。删除的文本用双括号标记(例如,[[a]]表示删除字符“a”)。
[0482]
5.1.实施例#1
[0483]
rst索引的信令通知取决于块的子区域而不是整个块内的非零系数的数量。
[0484]
7.3.6.11残差编解码语法
[0485]
[0486]
[0487][0488]
可替代地,该条件可以由以下替换:
[0489]
if(i=0[[||(i==1&&(log2tbwidth log2tbheight==5))]]) [0490]
5.2.实施例#2
[0491]
根据特定cg的编解码块标志,可以不调用rst。
[0492]
8.7.4.缩放变换系数的变换过程
[0493]
8.7.4.1通用
[0494]
该过程的输入是:
[0495]

亮度位置(xtby,ytby),指定当前亮度变换块相对于当前图片的左顶部亮度样点的左顶部样点,
[0496]

变量ntbw,指定当前变换块的宽度,
[0497]

变量ntbh,指定当前变换块的高度,
[0498]

变量cidx,指定当前块的色彩分量,
[0499]

缩放变换系数的(ntbw)x(ntbh)阵列d[x][y],其中x=0..ntbw-1,y=0..ntbh-1。
[0500]
该过程的输出是残差样点的(ntbw)x(ntbh)阵列r[x][y],其中x=0..ntbw-1,y=0..ntbh-1。
[0501]
变量binvokest被设置为0,并且如果以下条件之一为真,则被进一步修改为1:
[0502]

如果coded_sub_block_flag[0][0]等于1并且ntbw x ntbh!=32
[0503]

如果coded_sub_block_flag[0][0]和coded_sub_block_flag[0][1]等于1,并且ntbw等于4且ntbh大于8
[0504]

如果coded_sub_block_flag[0][0]和coded_sub_block_flag[1][0]等于1,并且ntbw大于8且ntbh等于4
[0505]
如果binvokest等于1并且st_idx[xtby][ytby]不等于0,则以下适用:
[0506]
1.变量nstsize、log2stsize、numstx、numsty和nonzerosize被推导如下:
[0507]

如果ntbw和ntbh都大于或等于8,则log2stsize被设置为3,并且nstoutsize被设置为48。
[0508]

否则,log2stsize被设置为2,并且nstoutsize被设置为16。
[0509]

nstsize被设置为(1《《log2stsize)。
[0510]

如果ntbh等于4并且ntbw大于8,则numstx被设置为等于2。
[0511]

否则,numstx被设置为等于1。
[0512]

如果ntbw等于4并且ntbh大于8,则numsty被设置为等于2。
[0513]

否则,numsty被设置为等于1。
[0514]

如果ntbw和ntbh都等于4或者ntbw和ntbh都等于8,则nonzerosize被设置为等于8。
[0515]

否则,nonzerosize被设置为等于16。
[0516]
2.对于xsbidx=0..numstx

1并且ysbidx=0..numsty

1,以下适用:
[0517]

变量阵列u[x](其中x=0..nonzerosize

1)被推导如下:xc=(xsbidx《《log2stsize) diagscanorder[log2stsize][log2stsize][x][0]yc=(ysbidx《《log2stsize) diagscanorder[log2stsize][log2stsize][x][1]u[x]=d[xc][yc]
[0518]

u[x](其中x=0..nonzerosize

1)被变换为变量阵列v[x](其中x=0..nstoutsize

1),这通过以缩放变换系数的变换输入长度nonzerosize、列表u[x](其中x=0..nonzerosize

1)的变换输出长度nstoutsize、变换集选择的索引stpredmodeintra和变换集中的变换选择的索引st_idx[xtby][ytby]作为输入调用第8.7.4.4条中指定的一维变换过程,并且输出是列表v[x](其中x=0..nstoutsize

1)。变量stpredmodeintra被设置为第8.4.4.2.1条中指定的predmodeintra。
[0519]

阵列d[(xsbidx《《log2stsize) x][(ysbidx《《log2stsize) y](其中x=0..nstsize

1,y=0..nstsize

1)被推导如下:
[0520]

如果stpredmodeintra小于或等于34,或者等于intra_lt_cclm、intra_t_cclm或intra_l_cclm,则以下适用:
[0521]
d[(xsbidx《《log2stsize) x][(ysbidx《《log2stsize) y]=(y《4)?v[x (y《《log2stsize)]:((x《4)?v[32 x ((y

4)《《2)]:d[(xsbidx《《log2stsize) x][(ysbidx《《log2stsize) y])
[0522]

否则,以下适用:
[0523]
d[(xsbidx《《log2stsize) x][(ysbidx《《log2stsize) y]=(y《4)?v[y (x《《log2stsize)]:((x《4)?v[32 (y

4) (x《《2)]:d[(xsbidx《《log2stsize) x][(ysbidx《《log2stsize) y])
[0524]
变量implicitmtsenabled被推导如下:
[0525]

如果sps_mts_enabled_flag等于1,并且以下条件之一为真,则implicitmtsenabled被设置为1:
[0526]

intrasubpartitionssplittype不等于isp_no_split
[0527]

cu_sbt_flag等于1,并且max(ntbw,ntbh)小于或等于32
[0528]

sps_explicit_mts_intra_enabled_flag和sps_explicit_mts_inter_enabled_flag都等于0,并且cupredmode[xtby][ytby]等于mode_intra
[0529]

否则,implicitmtsenabled被设置为等于0。
[0530]
指定水平变换核的变量trtypehor和指定垂直变换核的变量trtypever被推导如下:
[0531]

如果cidx大于0,则trtypehor和trtypever被设置为等于0。
[0532]

否则,如果implicitmtsenabled等于1,则以下适用:
[0533]

如果intrasubpartitionssplittype不等于isp_no_split,则根据intrapredmode在表8-15中指定trtypehor和trtypever。
[0534]

否则,如果cu_sbt_flag等于1,则根据cu_sbt_horizontal_flag和cu_sbt_pos_flag在表8-14中指定trtypehor和trtypever。
[0535]

否则(sps_explicit_mts_intra_enabled_flag和sps_explicit_mts_inter_enabled_flag等于0),trtypehor和trtypever被推导如下:
[0536]
trtypehor=(ntbw》=4&&ntbw《=16&&ntbw《=ntbh)?1:0
ꢀꢀ
(8-1029)
[0537]
trtypever=(ntbh》=4&&ntbh《=16&&ntbh《=ntbw)?1:0
ꢀꢀ
(8-1030)
[0538]

否则,根据tu_mts_idx[xtby][ytby]在表8-13中指定trtypehor和trtypever。
[0539]
变量nonzerow和nonzeroh被推导如下:
[0540]
nonzerow=min(ntbw,(trtypehor》0)?16:32)
ꢀꢀꢀꢀꢀ
(8-1031)
[0541]
nonzeroh=min(ntbh,(trtypever》0)?16:32)
ꢀꢀꢀꢀꢀꢀ
(8-1032)残差样点的(ntbw)x(ntbh)阵列r被推导如下:
[0542]
1.当ntbh大于1时,缩放变换系数d[x][y](其中x=0..nonzerow-1,y=0..nonzeroh-1)的每个(垂直)列被变换为e[x][y](其中x=0..nonzerow-1,y=0..ntbh-1),这通过以变换块的高度ntbh、缩放变换系数的非零高度nonzeroh、列表d[x][y](其中y
=0..nonzeroh-1)和设置为等于trtypever的变换类型变量trtype作为输入针对每列x=0..nonzerow-1调用第8.7.4.2条中指定的一维变换过程,并且输出是列表list e[x][y](其中y=0..ntbh-1)。
[0543]
2.当ntbh和ntbw都大于1时,中间样点值g[x][y](其中x=0..nonzerow-1,y=0..ntbh-1)被推导如下:
[0544]
g[x][y]=clip3(coeffmin,coeffmax,(e[x][y] 64)》》7)
ꢀꢀꢀ
(8-1033)
[0545][0546]
当ntbw大于1时,结果阵列g[x][y](其中x=0..nonzerow-1,y=0..ntbh-1)的每个(水平)行被变换为r[x][y](其中x=0..ntbw-1,y=0..ntbh-1),这通过以变换块的宽度ntbw、结果阵列g[x][y]的非零宽度nonzerow、列表g[x][y](其中x=0..nonzerow-1)和设置为等于trtypehor的变换类型变量trtype作为输入针对每行y=0..ntbh-1调用第8.7.4.2条中指定的一维变换过程,并且输出是列表r[x][y](其中x=0..ntbw-1)。
[0547]
5.3实施例#3
[0548]
修正rst索引的上下文建模。
[0549]
5.3.1替代方案#1
[0550]
9.5.4.2.8语法元素st_idx的ctxinc的推导过程
[0551]
该过程的输入是色彩分量索引cidx、根据cidx指定当前亮度或色度编解码块相对于当前图片的左顶部样点的左顶部样点的亮度或色度位置(x0,y0)、树类型treetype、第8.4.2条中指定的亮度帧内预测模式intrapredmodey[x0][y0]、第7.4.7.5条中指定的指定色度样点的帧内预测模式的语法元素intra_chroma_pred_mode[x0][y0]、块宽度ntbw和高度ntbh以及多变换选择索引tu_mts_idx[x0][y0]。
[0552]
该过程的输出是变量ctxinc。
[0553]
变量intramodectx被推导如下:
[0554]
如果cidx等于0,则intramodectx被推导如下:
[0555]
intramodectx=(intrapredmodey[x0][y0]《=1)?1:0
[0556]
否则(cidx大于0),intramodectx被推导如下:
[0557]
intramodectx=(intra_chroma_pred_mode[x0][y0]》=4)?1:0
[0558]
变量mtsctx被推导如下:
[0559]
mtsctx=((sps_explicit_mts_intra_enabled_flag?tu_mts_idx[x0][y0]
[0560]
==0:ntbw==ntbh)&&treetype!=single_tree)?1:0
[0561]
变量ctxinc被推导如下:
[0562]
ctxinc=(binidx《《1) intramodectx (mtsctx《《2)
[0563]
5.3.2替代方案#2
[0564][0565]
表9-15

将ctxinc分配给具有上下文编解码二进制位的语法元素
[0566][0567]
[[9.5.4.2.8语法元素st_idx的ctxinc的推导过程
[0568]
该过程的输入是色彩分量索引cidx、根据cidx指定当前亮度或色度编解码块相对于当前图片的左顶部样点的左顶部样点的亮度或色度位置(x0,y0)、树类型treetype、第8.4.2条中指定的亮度帧内预测模式intrapredmodey[x0][y0]、第7.4.7.5条中指定的指定色度样点的帧内预测模式的语法元素intra_chroma_pred_mode[x0][y0]、以及多变换选择索引tu_mts_idx[x0][y0]。
[0569]
该过程的输出是变量ctxinc。
[0570]
变量intramodectx被推导如下:
[0571]
如果cidx等于0,则intramodectx被推导如下:
[0572]
intramodectx=(intrapredmodey[x0][y0]《=1)?1:0
[0573]
否则(cidx大于0),intramodectx被推导如下:
[0574]
intramodectx=(intra_chroma_pred_mode[x0][y0]》=4)?1:0
[0575]
变量mtsctx被推导如下:
[0576]
mtsctx=(tu_mts_idx[x0][y0]==0&&treetype!=single_tree)?1:0
[0577]
变量ctxinc被推导如下:
[0578]
ctxinc=(binidx《《1) intramodectx (mtsctx《《2)]]
[0579]
5.4实施例#4
[0580]
对应于项目符号7.c和7.d。
[0581]
7.3.7.11残差编解码语法
[0582][0583]
在替代示例中,以下可以适用:
[0584][0585]
在一个示例中,以下可以适用:
[0586]
如果log2tbwidth》3&&log2tbheight==2,则sigrangex等于8。否则,它等于4。如果log2tbheight》3&&log2tbwidth==2,则sigrangey等于8。否则,它等于4。
[0587]
5.5实施例#5
[0588]
对应于项目符号19。
[0589]
7.3.6.5编解码单元语法
[0590][0591][0592]
5.6实施例#6
[0593]
对应于项目符号20。
[0594]
7.3.6.5编解码单元语法
[0595][0596][0597]
5.7实施例#7
[0598]
对应于项目符号21。
[0599]
7.3.7.11残差编解码语法
[0600][0601]
(cbx[x0][y0],cby[x0][y0])指定覆盖位置(x0,y0)的编解码单元的左顶部位置。
[0602]
上面描述的示例可以并入下面描述的方法的上下文,例如方法2200、2210、2220、2230、2240和2250,其可以在视频解码器或视频编码器处实施。
[0603]
图22a示出了用于视频处理的示例性方法的流程图。方法2210包括,在步骤2212,执行视频的当前视频块和视频的编解码表示之间的转换。在一些实施方式中,执行转换包括基于当前视频块的宽度(w)和/或高度(h)来确定二次变换工具对当前视频块的应用性。在一些实施方式中,执行转换包括根据独立于应用于当前视频块的分割树类型的规则来确定二次变换工具的使用和/或与二次变换工具有关的信息的信令通知。
[0604]
图22b示出了用于视频处理的示例性方法的流程图。方法2220包括,在步骤2222,根据规则做出关于视频的编解码单元的当前视频块是否满足条件的确定。方法2220还包括,在步骤2224,根据该确定,执行当前视频块和视频的编解码表示之间的转换。在一些实施方式中,该条件与视频的一个或多个色彩分量的特性、当前视频块的尺寸或当前视频块的残差块的一部分中的系数有关。在一些实施方式中,该规则指定该条件控制编解码表示中关于二次变换工具的边信息的存在。
[0605]
图22c示出了用于视频处理的示例性方法的流程图。方法2230包括,在步骤2232,为视频的编解码单元的当前视频块确定二次变换工具对当前视频块的应用性,其中编解码单元包括多个变换单元,其中该确定基于编解码单元的单个变换单元。方法2230还包括,在步骤2234,基于该确定,执行当前视频块和视频的编解码表示之间的转换。
[0606]
在如图22a至22c所示的操作中,二次变换工具包括,在编码期间,在量化之前对应用于视频块的残差的正一次变换的输出应用正二次变换,或者在解码期间,在应用逆一次变换之前对视频块的解量化的输出应用逆二次变换。
[0607]
在又一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该
方法包括为视频的编解码单元的当前视频块确定二次变换工具的应用性和/或与二次变换工具有关的边信息的存在,其中编解码单元包括多个变换单元,并且该确定在变换单元级别或预测单元级别进行;以及基于该确定,执行视频的编解码表示的当前视频块之间的转换,其中二次变换工具包括,在编码期间,在量化之前对应用于视频块的残差的正一次变换的输出应用正二次变换,或者在解码期间,在应用逆一次变换之前对视频块的解量化的输出应用逆二次变换。
[0608]
在一些实施例中,视频编解码方法可以使用如参考图23或图24所述的在硬件平台上实施的装置来实施。
[0609]
图23是视频处理装置2300的框图。装置2300可以用于实施本文描述的一个或多个方法。装置2300可以体现在智能手机、平板电脑、计算机、物联网(iot)接收器等中。装置2300可以包括一个或多个处理器2302、一个或多个存储器2304和视频处理硬件2306。(多个)处理器2302可以被配置为实施本文档中描述的一种或多种方法(包括但不限于方法2200、2210、2220、2230、2240和2250)。存储器(多个存储器)2304可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件2306可以用于在硬件电路系统中实施本文档中描述的一些技术。
[0610]
图24是所公开的技术可以被实施的视频处理系统的框图的另一示例。图24是示出本文公开的各种技术可以被实施的示例视频处理系统2400的框图。各种实施方式可以包括系统4100的一些或所有组件。系统2400可以包括用于接收视频内容的输入2402。视频内容可以以例如8或10比特多分量像素值的原始或未压缩格式而接收,或者可以是压缩或编码格式。输入2402可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(pon)等的有线接口和诸如wi-fi或蜂窝接口的无线接口。
[0611]
系统2400可以包括可以实施本文档中描述的各种编解码或编码方法的编解码组件2404。编解码组件2404可以将来自输入2402的视频的平均比特率减小到编解码组件2404的输出,以产生视频的编解码表示。编解码技术因此有时被称为视频压缩或视频转码技术。编解码组件2404的输出可以被存储,或者经由如由组件2406表示的通信连接而发送。在输入2402处接收的视频的存储或通信传送的比特流(或编解码)表示可以由组件2408用于生成像素值或传送到显示接口2410的可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然特定视频处理操作被称为“编解码”操作或工具,但是将理解,编解码工具或操作在编码器处被使用,并且反转编解码结果的对应的解码工具或操作将由解码器执行。
[0612]
外围总线接口或显示接口的示例可以包括通用串行总线(usb)、或高清晰度多媒体接口(hdmi)、或显示端口(displayport)等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能电话、或能够执行数字数据处理和/或视频显示的其他设备。
[0613]
所公开的技术的一些实施例包括做出启用视频处理工具或模式的决定或确定。在示例中,当启用视频处理工具或模式时,编码器将在视频的块的处理中使用或实施工具或模式,但是不一定基于工具或模式的使用来修改产生的比特流。也就是说,当基于决定或确定启用视频处理工具或模式时,从视频的块到视频的比特流表示的转换将使用视频处理工具或模式。在另一示例中,当启用视频处理工具或模式时,解码器将在知道比特流已经基于
视频处理工具或模式进行修改的情况下处理比特流。也就是说,从视频的比特流表示到视频的块的转换将使用基于决定或确定而启用的视频处理工具或模式来执行。
[0614]
所公开的技术的一些实施例包括做出禁用视频处理工具或模式的决定或确定。在示例中,当禁用视频处理工具或模式时,编码器将不会在视频的块到视频的比特流表示的转换中使用工具或模式。在另一示例中,当禁用视频处理工具或模式时,解码器将在知道比特流没有使用基于决定或确定而禁用的视频处理工具或模式进行修改的情况下处理比特流。
[0615]
在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,视频压缩算法可以在从视频的像素表示到对应的比特流表示的转换期间被应用,反之亦然。当前视频块的比特流表示可以例如对应于比特流内并置的或分散在不同地方的比特,如通过语法定义的。例如,微块可以根据变换和编解码误差残差值并且也使用比特流中的头和其它字段中的比特进行编码。
[0616]
可以使用以下基于条款的格式描述各种技术和实施例。第一条款集合描述了先前章节中的所公开的技术的特定特征和方面。
[0617]
1.一种用于视频处理的方法,包括:基于当前视频块的特性,选择用于简化二次变换对当前视频块的应用的变换集或变换矩阵;以及作为当前视频块和包括当前视频块的视频的比特流表示之间的转换的部分,将所选择的变换集或变换矩阵应用于当前视频块的部分。
[0618]
2.根据条款1所述的方法,其中,当前视频块的部分是当前视频块的右顶部子区域、右底部子区域、左底部子区域或中心子区域。
[0619]
3.根据条款1或2所述的方法,其中,当前视频块的特性是当前视频块的帧内预测模式或一次变换矩阵。
[0620]
4.根据条款1所述的方法,其中,特性是当前视频块的色彩分量。
[0621]
5.根据条款4所述的方法,其中,为当前视频块的亮度分量选择第一变换集,并且其中为当前视频块的一个或多个色度分量选择不同于第一变换集的第二变换集。
[0622]
6.根据条款1所述的方法,其中,特性是当前视频块的帧内预测模式或帧内编解码方法。
[0623]
7.根据条款6所述的方法,其中,帧内预测方法包括基于多参考线(mrl)的预测方法或基于矩阵的帧内预测方法。
[0624]
8.根据条款6所述的方法,其中,当当前视频块是跨分量线性模型(cclm)编解码块时,第一变换集被选择,并且其中当当前视频块是非cclm编解码块时,不同于第一变换集的第二变换集被选择。
[0625]
9.根据条款6所述的方法,其中,当当前视频块用联合色度残差编解码方法进行编解码时,第一变换集被选择,并且其中当当前视频块不用联合色度残差编解码方法进行编解码时,不同于第一变换集的第二变换集被选择。
[0626]
10.根据条款1所述的方法,其中,特性是当前视频块的一次变换。
[0627]
11.一种用于视频处理的方法,包括:基于与当前视频块相关联的一个或多个系数,做出关于在当前视频块的比特流表示中选择性地包括用于简化二次变换(rst)的应用的边信息的信令通知的决定;以及基于该决定,执行当前视频块和包括当前视频块的比特
流表示的视频之间的转换。
[0628]
12.根据条款11所述的方法,其中,一个或多个系数包括按照当前视频块的扫描顺序的最后一个非零系数。
[0629]
13.根据条款11所述的方法,其中,一个或多个系数包括当前视频块的部分区域内的多个系数。
[0630]
14.根据条款13所述的方法,其中,部分区域包括rst能够被应用于的一个或多个编解码组。
[0631]
15.根据条款13所述的方法,其中,部分区域包括按照当前视频块的扫描顺序的前m个编解码组或后m个编解码组。
[0632]
16.根据条款13所述的方法,其中,部分区域包括按照当前视频块的逆扫描顺序的前m个编解码组或后m个编解码组。
[0633]
17.根据条款13所述的方法,其中,做出该决定还基于多个系数中的一个或多个非零系数的能量。
[0634]
18.一种用于视频处理的方法,包括:为简化二次变换(rst)对当前视频块的应用配置当前视频块的比特流表示,其中在编解码残差信息之前,与rst有关的语法元素在比特流表示中被信令通知;以及基于该配置,执行当前视频块和当前视频块的比特流表示之间的转换。
[0635]
19.根据条款18所述的方法,其中,信令通知与rst有关的语法元素基于至少一个编解码块标志或者变换选择模式的使用。
[0636]
20.根据条款18所述的方法,其中,比特流表示排除对应于具有所有零系数的编解码组的编解码残差信息。
[0637]
21.根据条款18所述的方法,其中,编解码残差信息基于rst的应用。
[0638]
22.一种用于视频处理的方法,包括:为简化二次变换(rst)对当前视频块的应用配置当前视频块的比特流表示,其中在变换跳过指示或多变换集(mts)索引之前,与rst有关的语法元素在比特流表示中被信令通知;以及基于该配置,执行当前视频块和当前视频块的比特流表示之间的转换。
[0639]
23.根据条款22所述的方法,其中,变换跳过指示或mts索引基于与rst有关的语法元素。
[0640]
24.一种用于视频处理的方法,包括:基于当前视频块的特性,配置用于对简化二次变换(rst)的索引进行编解码的上下文模型;以及基于该配置,执行当前视频块和包括当前视频块的视频的比特流表示之间的转换。
[0641]
25.根据条款24所述的方法,其中,特性是多变换选择(mts)过程的显式或隐式启用。
[0642]
26.根据条款24所述的方法,其中,特性是当前视频块中的跨分量线性模型(cclm)编解码模式的启用。
[0643]
27.根据条款24所述的方法,其中,特性是当前视频块的尺寸。
[0644]
28.根据条款24所述的方法,其中,特性是应用于当前视频块的分割过程的划分深度。
[0645]
29.根据条款28所述的方法,其中,分割过程是四叉树(qt)分割过程、二叉树(bt)
分割过程或三叉树(tt)分割过程。
[0646]
30.根据条款24所述的方法,其中,特性是当前视频块的色彩格式或色彩分量。
[0647]
31.根据条款24所述的方法,其中,特性排除当前视频块的帧内预测模式和多变换选择(mts)过程的索引。
[0648]
32.一种用于视频处理的方法,包括:基于当前视频块的特性,做出关于逆简化二次变换(rst)过程对当前视频块的选择性应用的决定;以及基于该决定,执行当前视频块和包括当前视频块的视频的比特流表示之间的转换。
[0649]
33.根据条款32所述的方法,其中,特性是当前视频块的编解码组的编解码块标志。
[0650]
34.根据条款33所述的方法,其中,逆rst过程没有被应用,并且其中左顶部编解码组的编解码块标志为零。
[0651]
35.根据条款33所述的方法,其中,逆rst过程没有被应用,并且其中按照当前视频块的扫描顺序的第一编解码组和第二编解码组的编解码块标志为零。
[0652]
36.根据条款32所述的方法,其中,特性是当前视频块的高度(m)或宽度(n)。
[0653]
37.根据条款36所述的方法,其中,逆rst过程没有被应用,并且其中(i)m=8并且n=4,或者(ii)m=4并且n=8。
[0654]
38.一种用于视频处理的方法,包括:基于当前视频块的特性,做出关于逆简化二次变换(rst)过程对当前视频块的选择性应用的决定;以及基于该决定,执行当前视频块和包括当前视频块的视频的比特流表示之间的转换;其中比特流表示包括关于rst的边信息,其中边信息基于当前视频块的单个色彩或亮度分量的系数而被包括。
[0655]
39.根据条款38所述的方法,其中,边信息进一步基于当前视频块的维度而被包括。
[0656]
40.根据条款38或39中任一项所述的方法,其中,边信息在不考虑当前视频块的块信息的情况下被包括。
[0657]
41.根据条款1至40中任一项所述的方法,其中,该转换包括从当前视频块生成比特流表示。
[0658]
42.根据条款1至40中任一项所述的方法,其中,该转换包括从比特流表示生成当前视频块。
[0659]
43.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中该指令在由该处理器执行时使得该处理器实施条款1至42中任一项中的方法。
[0660]
44.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行条款1至42中任一项中的方法的程序代码。
[0661]
第二条款集合描述了先前章节中的所公开的技术的特定特征和方面,例如示例实施方式6、7和20-23。
[0662]
1.一种视频处理方法,包括:执行视频的当前视频块和视频的编解码表示之间的转换,其中执行转换包括基于当前视频块的宽度(w)和/或高度(h)来确定二次变换工具对当前视频块的应用性,并且其中二次变换工具包括,在编码期间,在量化之前对应用于视频块的残差的正一次变换的输出应用正二次变换,或者在解码期间,在应用逆一次变换之前对视频块的解量化的输出应用逆二次变换。
[0663]
2.根据条款1所述的方法,其中,二次变换工具对应于低频不可分变换(lfnst)工具。
[0664]
3.根据条款1所述的方法,其中,在w》t1或h》t2的情况下,不应用二次变换工具,其中t1和t2是整数。
[0665]
4.根据条款1所述的方法,其中,在w》t1并且h》t2的情况下,不应用二次变换工具,其中t1和t2是整数。
[0666]
5.根据条款1所述的方法,其中,如果w*h》=t,则不应用二次变换工具,其中t是整数。
[0667]
6.根据条款1至5中任一项所述的方法,其中,块是编解码单元。
[0668]
7.根据条款3或4所述的方法,其中,t1=t2=64。
[0669]
8.根据条款3或4所述的方法,其中,t1和/或t2取决于最大允许变换尺寸。
[0670]
9.根据条款5所述的方法,其中,t为4096。
[0671]
10.根据条款1所述的方法,其中,该确定确定不应用二次变换工具,并且其中与二次变换工具有关的信息不被信令通知。
[0672]
11.一种视频处理方法,包括:根据规则做出关于视频的编解码单元的当前视频块是否满足条件的确定,以及根据该确定,执行当前视频块和视频的编解码表示之间的转换,其中该条件与视频的一个或多个色彩分量的特性、当前视频块的尺寸或当前视频块的残差块的一部分中的系数有关;并且其中该规则指定该条件控制编解码表示中关于二次变换工具的边信息的存在;其中二次变换工具包括,在编码期间,在量化之前对应用于视频块的残差的正一次变换的输出应用正二次变换,或者在解码期间,在应用逆一次变换之前对视频块的解量化的输出应用逆二次变换。
[0673]
12.根据条款11所述的方法,其中,二次变换工具对应于低频不可分变换(lfnst)工具。
[0674]
13.根据条款11或12所述的方法,其中,一个或多个色彩分量的特性仅对应于包括当前视频块的编解码单元的亮度信息。
[0675]
14.根据条款13所述的方法,其中,仅在视频的编解码单元具有小于t1的高度(h)和小于t2的宽度(w)的情况下满足条件,其中t1和t2是整数。
[0676]
15.根据条款14所述的方法,其中,t1=t2=4。
[0677]
16.根据条款12所述的方法,其中,仅在应用于编解码单元的分割类型树是单树的情况下满足条件。
[0678]
17.根据条款11所述的方法,其中,该规则基于当前视频块的维度和/或编解码信息,使用一个色彩分量或所有色彩分量进行该确定。
[0679]
18.根据条款11所述的方法,其中,该确定根据规则来做出,而不使用具有宽度(w)和高度(h)的当前视频块的信息。
[0680]
19.根据条款18所述的方法,其中,在w《t1或h《t2的情况下,当前视频块的信息包括当前视频块的非零系数的数量,其中t1和t2是整数。
[0681]
20.根据条款11所述的方法,其中,该确定基于当前视频块的该部分内的系数,根据规则来做出,该部分被定义为具有宽度(w)和高度(h)的当前视频块的左顶部m
×
n区域,其中m、n、w、h是整数。
[0682]
21.根据条款20所述的方法,其中,m小于w和/或n小于h。
[0683]
22.根据条款20所述的方法,其中,m和n是固定数。
[0684]
23.根据条款20所述的方法,其中,m和/或n取决于w和/或h。
[0685]
24.根据条款20所述的方法,其中,m和/或n取决于最大变换尺寸。
[0686]
25.根据条款11所述的方法,其中,该确定基于当前视频块的该部分内的系数,根据规则来做出,该部分被定义为对于视频的所有视频块是相同的。
[0687]
26.根据条款11所述的方法,其中,该确定基于当前视频块的该部分内的系数,根据规则来做出,该部分根据当前视频块的维度和/或编解码信息来定义。
[0688]
27.根据条款11所述的方法,其中,该确定基于当前视频块的该部分内的系数,根据规则来做出,该部分根据当前视频块的扫描顺序索引的给定范围来定义。
[0689]
28.根据条款27所述的方法,其中,该规则利用[idxs,idxe]的范围内的扫描顺序索引定义该部分,其中该范围包含idxs和idxe,并且满足以下中的至少一个:1)idxs等于0,2)idxe小于w和(h-1)的乘积,3)idxe是固定数,或者4)idxe取决于w和/或h,其中w和h分别对应于当前视频块的宽度和高度。
[0690]
29.根据条款11所述的方法,其中,在当前视频块具有特定维度的情况下满足条件。
[0691]
30.根据条款11所述的方法,其中,该确定基于当前视频块的该部分内的非零系数,根据规则来做出,该部分根据当前视频块的该部分和/或编解码单元中的其他块内的非零系数的数量来定义。
[0692]
31.一种视频处理方法,包括:执行视频的当前视频块和视频的编解码表示之间的转换,其中执行转换包括根据独立于应用于当前视频块的分割树类型的规则来确定二次变换工具的使用和/或与二次变换工具有关的信息的信令通知,并且其中二次变换工具包括,在编码期间,在量化之前对应用于视频块的残差的正一次变换的输出应用正二次变换,或者在解码期间,在应用逆一次变换之前对视频块的解量化的输出应用逆二次变换。
[0693]
32.根据条款31所述的方法,其中,二次变换工具对应于低频不可分变换(lfnst)工具。
[0694]
33.根据条款31所述的方法,其中,应用于当前视频块的分割树类型是双树类型或单树类型。
[0695]
34.根据条款31所述的方法,其中,该规则指定在计数的非零系数的数量不大于t的情况下不使用二次变换工具,并且其中t的值独立于分割树类型来确定。
[0696]
35.根据条款34所述的方法,其中,t等于1或2。
[0697]
36.一种视频处理方法,包括:为视频的编解码单元的当前视频块确定二次变换工具对当前视频块的应用性,其中编解码单元包括多个变换单元,其中该确定基于编解码单元的单个变换单元;以及基于该确定,执行当前视频块和视频的编解码表示之间的转换;其中二次变换工具包括,在编码期间,在量化之前对应用于视频块的残差的正一次变换的输出应用正二次变换,或者在解码期间,在应用逆一次变换之前对视频块的解量化的输出应用逆二次变换。
[0698]
37.根据条款36所述的方法,其中二次变换工具对应于低频不可分变换(lfnst)工具。
[0699]
38.根据条款37所述的方法,其中,单个变换单元对应于按解码顺序的编解码单元的第一个变换单元。
[0700]
39.根据条款37所述的方法,其中,单个变换单元对应于按解码顺序的编解码单元的左顶部变换单元。
[0701]
40.根据条款36至39中任一项所述的方法,其中,单个变换单元使用应用于编解码单元中仅有一个变换单元的情况的类似规则来确定。
[0702]
41.一种视频处理方法,包括:为视频的编解码单元的当前视频块确定二次变换工具的应用性和/或与二次变换工具有关的边信息的存在,其中编解码单元包括多个变换单元,并且该确定在变换单元级别或预测单元级别进行;以及基于该确定,执行视频的编解码表示的当前视频块之间的转换,其中二次变换工具包括,在编码期间,在量化之前对应用于视频块的残差的正一次变换的输出应用正二次变换,或者在解码期间,在应用逆一次变换之前对视频块的解量化的输出应用逆二次变换。
[0703]
42.根据条款41所述的方法,其中,二次变换工具对应于低频不可分变换(lfnst)工具。
[0704]
43.根据条款41所述的方法,其中,编解码单元包括使用指示二次变换工具的应用性的不同的二次变换矩阵或标志的不同变换单元或不同预测单元。
[0705]
44.根据条款41所述的方法,其中,在双树被启用并且色度块被编解码的情况下,不同的色彩分量使用指示二次变换工具的应用性的不同的二次变换矩阵或标志。
[0706]
45.根据条款41所述的方法,其中,该确定基于应用于当前视频块的分割树类型来确定边信息的存在。
[0707]
46.根据条款41所述的方法,其中,该确定基于编解码单元、预测单元或变换单元是大于还是小于最大允许变换块尺寸来确定边信息的存在。
[0708]
47.根据条款1至46中任一项所述的方法,其中,执行转换包括从视频生成编解码表示或从编解码表示生成视频。
[0709]
48.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中该指令在由该处理器执行时使得该处理器实施条款1至47中任一项中的方法。
[0710]
49.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行条款1至47中任一项中的方法的程序代码。
[0711]
从前面可以理解,为了说明的目的,本文已经描述了当前公开的技术的特定实施例,但是在不脱离本发明的范围的情况下,可以进行各种修改。因此,当前公开的技术不受除了所附权利要求之外的限制。
[0712]
本专利文档中描述的主题和功能操作的实施方式可以在各种系统、数字电子电路中被实施,或者在计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)中被实施,或者在它们中的一个或多个的组合中被实施。本说明书中描述的主题的实施方式可以被实施为一个或多个计算机程序产品,即编码在有形和非暂时性计算机可读介质上的计算机程序指令的一个或多个模块,该计算机程序指令用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合、或它们中的一个或多个的组合。术语“数据处理单元”或“数据处理装置”包含用于处理数据的所有装置、设备和机器,包括例如可编程
处理器、计算机、或多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合的代码。
[0713]
计算机程序(也已知为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且其可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署以在一个计算机上或在位于一个站点上或跨多个站点分布并通过通信网络互连的多个计算机上执行。
[0714]
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实施为专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0715]
适合于执行计算机程序的处理器包括例如通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或可操作地耦合以从该一个或多个大容量存储设备接收数据或向该一个或多个大容量存储设备传递数据、或者从其接收数据并向其传递数据。然而,计算机不需要这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
[0716]
本说明书以及附图旨在被认为仅是示例性的,其中示例性意味着示例。如本文所使用的,“或”的使用旨在包括“和/或”,除非上下文另外清楚地指示。
[0717]
虽然本专利文档包含许多细节,但这些细节不应被解释为对任何发明或可能要求保护的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在本专利文档中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合实施。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
[0718]
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为需要以所示的特定顺序或以先后顺序执行这样的操作或者执行所有示出的操作以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离。
[0719]
仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容来进行其他实施方式、增强和变化。
再多了解一些

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

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

相关文献