关于上下文编解码二进制位的数量的限制的制作方法

文档序号:28682617发布日期:2022-01-29 08:22阅读:112来源:国知局
关于上下文编解码二进制位的数量的限制的制作方法
关于上下文编解码二进制位的数量的限制
1.相关申请的交叉引用
2.根据适用的《专利法》和/或《巴黎公约》的规定,本技术及时要求于2019年6月21日提交的国际专利申请号pct/cn2019/092365以及于2019年7月9日提交的国际专利申请号pct/cn2019/095329的优先权和利益。将国际专利申请号pct/cn2019/092365和pct/cn2019/095329的全部公开以引用方式并入本文,作为本技术公开的一部分。
技术领域
3.本专利文件总体上涉及视频编解码和解码技术。


背景技术:

4.目前,正在努力提高当前视频编解码器技术的性能,以提供更好的压缩比或提供允许较低复杂度或并行实施的视频编解码和解码方案。业内专家最近提出了一些新的视频编解码工具,并且目前正在进行测试以确定其有效性。


技术实现要素:

5.描述了涉及数字视频编解码,尤其涉及运动矢量管理的设备、系统和方法。可以将所述方法应用于现有的视频编解码标准(例如,高效率视频编解码(hevc)或多功能视频编解码)以及将来的视频编解码标准或视频编解码器。
6.在一个代表性方面中,可以使用所公开的技术提供一种用于视频处理的方法。这种方法包括执行视频单元和视频单元的比特流表示之间的转换,其中,该转换包括在可对与该视频单元相关联的第一处理单元的上下文编解码二进制位的最大数量应用的限制的基础上对该视频单元进行上下文建模,其中,将上下文建模的信息包含到该视频单元的比特流表示当中。
7.在另一代表性方面中,可以使用所公开的技术提供另一种用于视频处理的方法。这种方法包括执行视频单元和视频单元的比特流表示之间的转换,其中,该转换包括在可对与该视频单元相关联的第一处理单元的上下文编解码二进制位的最大数量应用的限制的基础上对该视频单元进行上下文建模,其中,该转换包括根据上下文对处理单元分组的步骤,使得第一处理单元与第一上下文相关联,并且第二处理单元与第二上下文相关联。
8.在另一代表性方面中,可以使用所公开的技术提供另一种用于视频处理的方法。这种方法包括执行视频单元和视频单元的比特流表示之间的转换,其中,该转换包括在可对与该视频单元相关联的第一处理单元的上下文编解码二进制位的最大数量应用的限制的基础上对该视频单元进行上下文建模,其中,采用计数器记录第一处理单元中的上下文编解码二进制位的数量,并且其中,该计数器可在满足一个或多个条件时重置。
9.在另一代表性方面中,可以使用所公开的技术提供另一种用于视频处理的方法。这种方法包括:针对视频和视频的比特流表示之间的转换,对与该视频相关联的每预定单元的上下文编解码二进制位的最大数量应用控制;以及基于该控制执行该转换。
10.在另一代表性方面中,可以使用所公开的技术提供另一种用于视频处理的方法。这种方法包括:针对视频的块和该块的比特流表示之间的转换,将与该块相关联的语法元素划分成不同群组;对语法元素的不同群组应用单独控制;以及基于这些控制执行转换。
11.在另一代表性方面中,可以使用所公开的技术提供另一种用于视频处理的方法。这种方法包括:针对视频的块和该块的比特流表示之间的转换,将与该块相关联的用于残差编解码的上下文划分成不同群组;对上下文的不同群组应用单独控制;以及基于这些控制执行转换。
12.在另一代表性方面中,可以使用所公开的技术提供另一种用于视频处理的方法。这种方法包括:针对视频和该视频的比特流表示之间的转换,通过使用一个或多个计数器对与该视频相关联的每预定单元上下文编解码二进制位的数量应用控制,其中,按照预定义方式重置计数器;以及基于计数器执行转换。
13.此外,在代表性方面中,公开了一种视频系统中的装置,该装置包括处理器和其上具有指令的非暂态存储器。这些指令在由处理器执行时,使处理器实施所公开方法中的任何一种或多种。
14.而且,公开了一种存储在非暂态计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行所公开方法中的任一种或多种的程序代码。
15.在附图、说明书和权利要求中更详细地描述了所公开技术的以上和其他方面和特征。
附图说明
16.图1示出了编码器框图的示例。
17.图2示出了帧内方向性模式的示例。
18.图3示出了针对4
×
4块的仿射线性加权帧内预测(alwip)的示例。
19.图4示出了针对8
×
8块的仿射线性加权帧内预测(alwip)的示例。
20.图5示出了针对8
×
4块的仿射线性加权帧内预测(alwip)的示例。
21.图6示出了针对16
×
16块的仿射线性加权帧内预测(alwip)的示例。
22.图7示出了与预测块相邻的参考线的示例。
23.图8示出了块的划分的示例。
24.图9示出了块的划分的示例连同例外。
25.图10示出了二次变换的示例。
26.图11示出了缩减二次变换(rst)的示例。
27.图12示出了正向缩减变换和逆缩减变换的示例。
28.图13示出了正向rst的示例。
29.图14示出了rst扫描的示例。
30.图15示出了子块变换模式的示例。
31.图16示出了扫描顺序的示例。
32.图17示出了扫描顺序的另一示例。
33.图18示出了用于选择概率模型的示例性模板。
34.图19示出了标量量化器的示例。
35.图20示出了与标量量化器相关联的状态变换机的示例。
36.图21是用于实施本文件中描述的视觉媒体解码或视觉媒体编码技术的硬件平台的示例的框图。
37.图22是用于视频编解码的示例性方法的流程图。
38.图23是用于视频编解码的示例性方法的流程图。
39.图24是用于视频编解码的示例性方法的流程图。
40.图25是用于视频编解码的示例性方法的流程图。
41.图26是用于视频编解码的示例性方法的流程图。
具体实施方式
42.1.hevc/h.265中的视频编解码
43.视频编解码标准主要是通过开发公知的itu-t和iso/iec标准而发展起来的。itu-t开发了h.261和h.263,iso/iec开发了mpeg-1和mpeg-4视觉,并且两个组织联合开发了h.262/mpeg-2视频、h.264/mpeg-4高级视频编解码(avc)和h.265/hevc标准。自h.262以来,视频编解码标准基于混合视频编解码结构,其中采用了时域预测加变换编解码。为探索hevc之外的未来视频编解码技术,vceg和mpeg于2015年共同成立了联合视频探索团队(jvet)。从那时起,jvet采用了许多新的方法,并将其应用到了名为联合探索模型(jem)的参考软件中。2018年4月,在vceg(q6/16)和iso/iec jtc1 sc29/wg11(mpeg)之间创建了联合视频专家团队(jvet),其致力于研究以相较于hevc有50%的比特率下降为目标的vvc标准。
44.2.1.典型视频编解码器的编解码流程
45.图1示出了vvc的编码器框图的示例,其含有三个环路滤波框:去方块滤波器(df)、样点自适应偏移(sao)和alf。与使用预定义滤波器的df不同,sao和alf借助于信令通知偏移和滤波器系数的编解码边信息分别通过添加偏移以及应用有限脉冲响应(fir)滤波器而利用当前图片的原始样点来减少原始样点和重建样点之间的均方误差。alf位于每一图片的最后处理阶段上,并且可以被视为尝试捕捉并且修复先前阶段建立的伪像的工具。
46.2.2.vvc中的帧内编解码
47.2.2.1.具有67种帧内预测模式的帧内模式编解码
48.为了俘获自然视频中存在的任意边缘方向,将方向性帧内模式的数量从33(如hevc中使用的)扩展到65。在图2中将附加的方向性模式绘示为虚线箭头,并且平面模式和dc模式保持相同。这些更密集的方向性帧内预测模式适用于所有块尺寸以及亮度帧内预测和色度帧内预测两者。
49.常规的有角度帧内预测方向是沿顺时针方向从45度到-135度定义的,如图2所示。在vtm2中,针对非方形块,几个常规的角度帧内预测模式被宽角度帧内预测模式自适应地替代。采用原始方法信令通知被替代的模式,并且在解析之后将被替代的模式重新映射至宽角度模式的索引。帧内预测模式的总数是不变的,即67个,并且帧内模式编解码是不变的。
50.在hevc中,每一帧内编解码块具有方形形状,并且其每条边的长度均为2的幂。因而,在使用dc模式的情况下,不需要划分操作来生成帧内预测子。在vvv2中,块可以具有矩
形形状,其在一般情况下必须使用针对每一块的划分操作。为了避免用于dc预测的划分操作,仅采用较长边来计算非方形块的均值。
51.除了这67个帧内预测模式之外,对某些块进一步启用针对非方形块的宽角度帧内预测(waip)方法以及位置相关帧内预测组合(pdpc)方法。pdpc被应用于下述帧内模式而无需信令通知:平面、dc、水平、垂直、左下角度模式及其八个相邻角度模式以及右上角度模式及其八个相邻角度模式。
52.2.2.2.仿射线性加权帧内预测(alwip,又名基于矩阵的帧内预测)
53.提出了仿射线性加权帧内预测(alwip,又名基于矩阵的帧内预测(mip))。
54.2.2.2.1.通过矩阵矢量乘法生成缩减预测信号
55.首先通过求均值对相邻参考样点进行降采样,以生成缩减参考信号bdry
red
。之后,通过计算矩阵矢量乘积并添加偏移量而计算出缩减预测信号pred
red

56.pred
red
=a
·
bdry
red
+b。
57.这里,a为矩阵,其具有w
red
·hred
行,并且在w=h=4的情况下具有4列,而在所有其他情况下则具有8列。b为具有尺寸w
red
·hred
的矢量。
58.2.2.2.2.对整个alwip过程的举例说明
59.在图3-6中针对不同形状例示了求均值、矩阵矢量乘法和线性插值的整个过程。注意,像在所描绘的情况之一当中那样对待其他形状。
60.1.在给定4
×
4块的情况下,alwip沿边界的每一轴取两个平均值。所得到的四个输入样点参加矩阵矢量乘法。矩阵是从集合s0取得的。在添加偏移量之后,其得到了16个最终预测样点。线性插值对于生成预测信号是不必要的。因而,每样点执行总共(4
·
16)/(4
·
4)=4次乘法。
61.2.在给定8
×
8块的情况下,alwip沿边界的每一轴取四个平均值。所得到的八个输入样点参加矩阵矢量乘法。矩阵是从集合s1取得的。其获得了处于预测块的奇数位置上的16个样点。因而,每样点执行总共(8
·
16)/(8
·
8)=2次乘法。在添加偏移量之后,通过使用缩减顶部边界垂直地对这些样点插值。水平插值通过使用原始左边界而紧随其后。
62.3.在给定8
×
4块的情况下,alwip沿边界的水平轴取得四个平均值并且取得左边界上的四个原始边界值。所得到的八个输入样点参加矩阵矢量乘法。矩阵是从集合s1取得的。其获得了处于预测块的奇数水平位置上和每一垂直位置上的16个样点。因而,每样点执行总共(8
·
16)/(8
·
4)=4次乘法。在添加偏移量之后,通过使用原始左侧边界水平地对这些样点插值。
63.相应地对待转置后的情况。
64.4.在给定16
×
16块的情况下,alwip沿边界的每一轴取四个平均值。所得到的八个输入样点参加矩阵矢量乘法。矩阵是从集合s2取得的。其获得了处于预测块的奇数位置上的64个样点。因而,每样点执行总共(8
·
64)/(16
·
16)=2次乘法。在添加偏移量之后,通过使用顶部边界的八个平均值垂直地对这些样点插值。水平插值通过使用原始左边界而紧随其后。在这种情况下,插值过程不增加任何乘法。因此,每样点有两次乘法与计算alwip预测相关联。
65.对于更大形状,流程基本相同,并且易于检查每样点的乘法数量小于四。
66.对于w
×
8块(其中,w》8)而言,只有水平插值是必需的,因为样点是在奇数水平位
置上和每一垂直位置上给出的。
67.最后,对于w
×
4块(其中,w》8)而言,使a_k是通过遗漏沿降采样块的水平轴对应于奇数条目的每一行而出现的矩阵。因而,输出尺寸为32,并且仍然只需执行水平插值。
68.相应地对待转置后的情况。
69.2.2.2.3.语法和语义
70.7.3.6.5编解码单元语法
71.下文具有粗体、斜体和/或下划线的部分指示所提出的对该标准的修改。
72.[0073][0074]
2.2.3.多参考线(mrl)
[0075]
多参考线(mrl)帧内预测使用更多参考线进行帧内预测。在图7中,绘示了4条参考线的示例,其中,片段a和f的样点并非是从重建的相邻样点取出的,而是分别用来自片段b和e的最接近样点填充的。hevc帧内预测使用最近的参考线(即,参考线0)。在mrl中,使用2条附加的线(参考线1和参考线3)。
[0076]
选定参考线的索引(mrl_idx)被信令通知并用于生成帧内预测子。对于大于0的参考线索引,在mpm列表中仅包括附加的参考线模式,并且仅信令通知mpm索引而没有剩余模式。在帧内预测模式之前信令通知参考线索引,在信令通知非零参考线索引的情况下,从帧内预测模式排除平面模式和dc模式。
[0077]
对于ctu内部的块的第一条线,禁用mrl,以防止使用当前ctu线外部的扩展参考样点。而且,在使用附加线时,禁用pdpc。
[0078]
2.2.4.帧内子分割(isp)
[0079]
提出了isp,其将亮度帧内预测块垂直或者水平划分成2个或4个子分割,具体取决于块尺寸维度,如表1中所示。图8和图9示出了两种可能性的示例。所有子分割满足具有至少16个样点的条件。如果允许的话,对于块尺寸4
×
n或n
×
4(其中,n》8)而言,可以存在1
×
n或n
×
1子分割。
[0080]
表格1:取决于块尺寸(由maxtbsize表示的最大变换尺寸)的子分割数量
[0081]
[0082][0083]
对于这些子分割中的每者,通过对编码器发送的系数进行熵解码,继而对其进行逆量化和逆变换而生成残差信号。之后,对子分割进行帧内预测,最后通过将残差信号加到预测信号上而获得对应的重建样点。因此,每一子分割的重建值将可用于生成下一子分割的预测,下一子分割又重复该过程,以此类推。所有子分割共享相同的帧内模式。
[0084]
表格2:取决于predmodeintra的trtypehor和trtypever的规范
[0085]
2.2.4.1.语法和语义
[0086]
7.3.7.5coding unit syntax
[0087]
下文具有粗体和/或下划线的部分指示所提出的对该标准的修改。
[0088]
[0089][0090]
[0091]
等于1的intra_subpartitions_mode_flag[x0][y0]规定当前帧内编解码单元被分割成numintrasubpartitions[x0][y0]个矩形变换块子分割。等于0的intra_subpartitions_mode_flag[x0][y0]规定当前帧内编解码单元未被分割成矩形变换块子分割。
[0092]
当intra_subpartitions_mode_flag[x0][y0]不存在时,推断其等于0。
[0093]
intra_subpartitions_split_flag[x0][y0]规定帧内子分割划分类型是水平的还是垂直的。当intra_subpartitions_split_flag[x0][y0]不存在时,对其作如下推断:
[0094]

如果cbheight大于maxtbsizey,那么intra_subpartitions_split_flag[x0][y0]被推断为等于0。
[0095]

否则(cbwidth大于maxtbsizey),intra_subpartitions_split_flag[x0][y0]被推断为等于1。
[0096]
变量intrasubpartitionssplittype规定用于当前亮度编解码块的划分类型,如表3中所例示的。对intrasubpartitionssplittype作如下推导:
[0097]

如果intra_subpartitions_mode_flag[x0][y0]等于0,那么intrasubpartitionssplittype被设置为等于0。
[0098]

否则,intrasubpartitionssplittype被设置为等于1+intra_subpartitions_split_flag[x0][y0]。
[0099]
表格3

与intrasubpartitionssplittype的名称关联
[0100][0101]
变量numintrasubpartitions规定帧内亮度编解码块被划分成的变换块子分割的数量。对numintrasubpartitions作如下推导:
[0102]

如果intrasubpartitionssplittype等于isp_no_split,那么numintrasubpartitions被设置为等于1。
[0103]

否则,如果下述条件之一为真,那么numintrasubpartitions被设置为等于2:
[0104]

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

cbwidth等于8并且cbheight等于4。
[0106]

否则,numintrasubpartitions被设置为等于4。
[0107]
2.3.vvc中的变换编解码
[0108]
2.3.1.vvc中的多变换集(mts)
[0109]
2.3.1.1.显式多变换集(mts)
[0110]
在vtm4中,启用了在尺寸上高达64
×
64的大块尺寸变换,其主要可用于较高分辨率视频,例如,1080p序列和4k序列。对于具有等于64的尺寸(宽度或高度,或者宽度和高度两者)的变换块,使高频变换系数归零,从而只保留低频系数。例如,对于m
×
n变换块(其中,
m作为块宽度,n作为块高度),当m等于64时,仅留下左侧的32列变换系数。类似地,当n等于64时,仅保持顶部的32行变换系数。在将变换跳过模式用于大块时,使用整个块而不使任何值归零。
[0111]
除了已经在hevc中采用的dct-ii之外,还将多变换选择(mts)方案用于对帧间编解码块和帧内编解码块两者进行残差编解码。其采用来自dct8/dst7的多种选定变换。新引入的变换矩阵是dst-vii和dct-viii。下面的表格4示出了选定dst/dct的基函数。
[0112]
表格4:vvc中使用的变换矩阵的基函数
[0113][0114]
为了保持变换矩阵的正交性,要对这些变换矩阵做出比hevc中的变换矩阵更准确的量化。为了使经变换的系数的中间值保持在16比特范围内,在水平变换之后以及在垂直变换之后,所有的系数都将具有10比特。
[0115]
为了控制mts方案,分别针对帧内和帧间在sps级上规定单独的启用标志。当在sps上启用mts时,信令通知cu级标志,以指示是否应用mts。这里,仅对亮度应用mts。在满足下述条件时信令通知mts cu级标志。
[0116]-宽度和高度两者都小于或者等于32
[0117]-cbf标志等于1
[0118]
如果mts cu标志等于0,那么在两个方向内都应用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主变换核心。
[0119]
表格5:tu_mts_idx的解码值与水平和垂直方向的对应变换矩阵的映射
[0120][0121]
为了降低大尺寸dst-7和dct-8的复杂性,对于具有等于32的尺寸(宽度或高度,或者宽度和高度两者)的dst-7块和dct-8块使高频变换系数归零。仅保留处于16
×
16较低频率区域内的系数。
[0122]
除了应用不同变换的情况之外,vvc还支持被称为变换跳过(ts)的模式,其与hevc中的ts的概念类似。ts被作为mts的特例对待。
[0123]
2.3.2.缩减二次变换(rst)
[0124]
2.3.2.1.jem中的不可分二次变换(nsst)
[0125]
在jem中,在正向主变换和量化(编码器处)之间以及在逆量化和逆主变换(解码器侧)之间应用二次变换。如图10所示,4
×
4(或8
×
8)二次变换的执行取决于块尺寸。例如,对于小块(即,min(宽度,高度)《8)应用4
×
4二次变换,并且对较大块(即,min(宽度,高度)》4)按照每一8
×
8块应用8
×
8二次变换。
[0126]
下文将使用作为示例的输入描述不可分变换的应用。为了应用不可分变换,输入块x
[0127][0128]
被首先表示为矢量
[0129][0130]
计算作为该不可分变换,其中,指示变换系数矢量,并且t是16
×
16变换矩阵。接下来,使用针对该块的扫描顺序(水平、垂直或对角)将16
×
1系数矢量重新组织成4
×
4块。在4
×
4系数块中,具有较小索引的系数将被该较小扫描索引替代。总共有35个变换集,并且每变换集采用3个不可分变换矩阵(内核)。从帧内预测模式到变换集的映射是预定义的。对于每一变换集,通过显式信令通知的二次变换索引进一步指定所选的不可分二次变换(nsst)候选。在变换系数之后在比特流中对索引进行每帧内cu一次的信令通知。
[0131]
2.3.2.2.缩减二次变换(rst)
[0132]
引入了rst(又名低频不可分变换(lfnst))并且还引入了4变换集(而非35个变换集)映射。采用16x64(进一步缩减至16
×
48)矩阵和16
×
16矩阵。为了标记方便,将16
×
64(缩减至16
×
48)变换表示为rst8
×
8,将16
×
16变换表示为rst4
×
4。图11示出了rst的示例。
[0133]
2.3.2.2.1.rst计算
[0134]
缩减变换(rt)的主要思路是将n维矢量映射至不同空间内的r维矢量,其中,r/n(r《n)是缩减因子。
[0135]
rt矩阵是如下的r
×
n矩阵:
[0136][0137]
其中,该变换的r行是该n维空间的r个基。rt的逆变换矩阵是其正向变换的转置。在图12中绘示了正向rt和逆rt。
[0138]
在本文献中,应用具有缩减因子4(1/4尺寸)的rst8
×
8。因而,采用16
×
64直接矩阵,而非作为常规8
×
8不可分变换矩阵尺寸的64
×
64。换言之,在解码器侧使用64
×
16逆rst矩阵来生成8
×
8左上区域内的核心(主)变换系数。正向rst8
×
8使用16
×
64(或者针对8
×
8块的8
×
64)矩阵,使得其仅在给定8
×
8区域内的左上4
×
4区域内产生非零系数。换言之,如果应用rst,那么该8
×
8区域除了左上的4
×
4区域之外将仅具有零系数。对于rst4
×
4,应用16
×
16(或者针对4
×
4块的8
×
16)直接矩阵乘法。
[0139]
在满足下述两个条件时有条件地应用逆rst:
[0140]

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

变换跳过模式标志等于0
[0142]
如果变换系数块的宽度(w)和高度(h)两者均大于4,那么对变换系数块的左上8
×
8区域应用rst8
×
8。否则,在变换系数块的左上min(8,w)
×
min(8,h)区域上应用rst4
×
4。
[0143]
如果rst索引等于0,则不应用rst。否则,应用rst,借助于rst索引选择其内核。稍后将解释rst选择方法和rst索引的编解码。
[0144]
此外,在帧内条带和帧间条带两者内并且既针对亮度又针对色度对帧内cu应用rst。如果启用双树,那么单独信号通知亮度和色度的rst索引。对于帧间条带(禁用双树),信令通知单rst索引,并且将该索引既用于亮度,又用于色度。
[0145]
2.3.2.2.2.rst的限制
[0146]
在选择isp模式时,禁用rst,并且不对rst索引进行信令通知,因为即使对每一可行的分割块应用rst,所带来的性能提高也是微不足道的。此外,对isp预测残差禁用rst可能降低编码复杂性。
[0147]
2.3.2.2.3.rst选择
[0148]
从四个每者由两项变换构成的变换集中选择rst矩阵。如下文所述由帧内预测确定应用哪一变换集:
[0149]
1)如果指示三个cclm模式之一,那么选择变换集0。
[0150]
2)否则,根据下述表格执行变换集选择:
[0151]
变换集选择表格
[0152]
intrapredmode变换集索引intrapredmode《010《=intrapredmode《=102《=intrapredmode《=12113《=intrapredmode《=23224《=intrapredmode《=44345《=intrapredmode《=55256《=intrapredmode1
[0153]
被表示为intrapredmode的访问该表格的索引具有范围[-14,83],其为用于宽角度帧内预测的变换后模式索引。
[0154]
2.3.2.2.4.具有缩减维度的rst矩阵
[0155]
作为进一步的简化,就相同的变换集配置而言,应用16
×
48矩阵而非16
×
64矩阵,这些16
×
48矩阵的每者采取来自左上8
×
8块中的排除右下4
×
4块之外的三个4
×
4块的输入数据(图13)。
[0156]
2.3.2.2.5.rst信令通知
[0157]
正向rst8
×
8(其中,r=16)使用16
×
64矩阵,使得其仅在给定8
×
8区域内的左上4
×
4区域内产生非零系数。换言之,如果应用rst,那么该8
×
8区域除了左上的4
×
4区域之外均生成唯零系数。因此,当除了左上4
×
4区域(图14中所示)之外在8
×
8块区域内检测到任何非零元素时不对rst索引编解码,因为其暗示未应用rst。在这样的情况下,将rst索引推断为零。
[0158]
2.3.2.2.6.归零范围
[0159]
在对4
×
4子块应用逆rst之前,往往该4
×
4子块内的任何系数都可以是非零的。然而,存在这样的约束条件:在一些情况下,在对该4
×
4子块应用rst之前,该子块内的一些系数为零。
[0160]
令nonzerosize为变量。任何具有不小于nonzerosize的索引的系数,当其在逆rst之前被重新布置成1-d数组时,可以为零。
[0161]
当nonzerosize等于16时,对左上4
×
4子块中的系数不存在任何归零约束条件。
[0162]
在当前块尺寸为4
×
4或8
×
8时,将nonzerosize设置为等于8。对于其他块维度而言,将nonzerosize设置为等于16。
[0163]
2.3.2.2.7.工作草案中的rst的描述
[0164]
7.3.2.3序列参数集rbsp语法
[0165]
下文具有粗体、斜体和/或下划线的部分指示所提出的对该标准的修改。
[0166][0167]
7.3.7.11残差编解码语法
[0168]
下文具有粗体、斜体和/或下划线的部分指示所提出的对该标准的修改。
[0169]
[0170][0171]
7.3.7.5coding unit syntax
[0172]
下文具有粗体、斜体和/或下划线的部分指示所提出的对该标准的修改。
[0173]
[0174]
[0175][0176]
等于1的sps_st_enabled_flag规定st_idx可以存在于用于帧内编解码单元的残差编解码语法当中。等于0的sps_st_enabled_flag规定st_idx不存在于用于帧内编解码单元的残差编解码语法当中。
[0177]
st_idx[x0][y0]规定在选定变换集中的两个候选内核之间应用哪一二次变换内核。等于0的st_idx[x0][y0]规定不应用二次变换。数组索引x0,y0指定所考虑变换块的左上样点相对于该图片的左上样点的位置(x0,y0)。
[0178]
当st_idx[x0][y0]不存在时,推断st_idx[x0][y0]等于0。
[0179]
st_idx的二进制位受到下文编解码。更具体而言,以下适用:
[0180]
表格6-语法元素和相关联的二值化
[0181][0182]
表格7

对具有上下文编解码二进制位的语法元素的ctxinc分配
[0183][0184]
9.5.4.2.8用于语法元素st_idx的ctxinc的推导过程
[0185]
这一过程的输入为颜色分量索引、相对于取决于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]。
[0186]
这一过程的输出为变量ctxinc。
[0187]
如下推导变量intramodectx:
[0188]
如果cidx等于0,那么如下推导intramodectx:
[0189]
intramodectx=(intrapredmodey[x0][y0]《=1)?1:0
[0190]
否则(cidx大于0),如下推导intramodectx:
[0191]
intramodectx=(intra_chroma_pred_mode[x0][y0]》=4)?1:0
[0192]
如下推导变量mtsctx:
[0193]
mtsctx=(tu_mts_idx[x0][y0]==0&&treetype!=single_tree)?1:0
[0194]
如下推导变量ctxinc:
[0195]
ctxinc=(binidx《《1)+intramodectx+(mtsctx《《2)
[0196]
2.3.2.2.8.rst使用的总结
[0197]
仅当一个块内的非零系数的数量对于单一树和分离树而言分别大于2和大于1时,可以启用rst。此外,在启用rst时,可以应用如下对应用了rst的编解码群组(cg)的非零系数的位置的限制。
[0198]
表格8:rst的使用
[0199]
[0200][0201]
2.3.3.子块变换
[0202]
对于具有等于1的cu_cbf的帧间预测cu而言,可以信令通知cu_sbt_flag,以指示是对整个残差块解码,还是对残差块的子部分解码。在前一种情况下,对帧间mts信息做进一步解析,以确定cu的变换类型。在后一种情况下(即,启用sbt),采用推断出的自适应变换对残差块的部分编解码,并且使残差块的其他部分归零。不对组合帧间-帧内模式和三角形预测模式应用sbt。
[0203]
在子块变换中,对sbt-v和sbt-h中的亮度变换块应用位置相关变换(色度tb总是使用dct-2)。sbt-h和sbt-v的两个位置与不同的核心变换相关联。更具体地,在图15中指定了针对每一sbt位置的水平变换和垂直变换。例如,针对sbt-v位置0的水平变换和垂直变换分别为dct-8和dst-7。当残差tu的一侧大于32时,对应的变换被设置为dct-2。因此,子块变
换联合指定残差块的tu划片、cbf以及水平变换和垂直变换,其可以被视为块的主要残差处于块的一侧的情况的语法快捷方式。
[0204]
2.3.3.1.语法元素
[0205]
7.3.7.5编解码单元语法
[0206]
下文具有粗体、斜体和/或下划线的部分指示所提出的对该标准的修改。
[0207]
[0208]
[0209][0210]
等于1的cu_sbt_flag规定针对当前编解码单元使用子块变换。等于0的cu_sbt_flag规定针对当前编解码单元不使用子块变换。
[0211]
当cu_sbt_flag不存在时,那么推断其值等于0。
[0212]
注释:在采用子块变换时,编解码单元被划分成两个变换单元;一个变换单元具有残差数据,另一个不具有残差数据。
[0213]
等于1的cu_sbt_quad_flag规定,对于当前编解码单元,子块变换包括当前编解码单元的1/4尺寸的变换单元。等于0的cu_sbt_quad_flag规定,对于当前编解码单元,子块变换包括当前编解码单元的1/2尺寸的变换单元。
[0214]
当cu_sbt_quad_flag不存在时,那么推断其值等于0。
[0215]
等于1的cu_sbt_horizontal_flag规定当前编解码单元被水平划分成2个变换单元。等于0的cu_sbt_horizontal_flag[x0][y0]规定当前编解码单元被垂直划分成2个变换单元。
[0216]
当cu_sbt_horizontal_flag不存在时,对其值的推导如下:
[0217]

如果cu_sbt_quad_flag等于1,那么cu_sbt_horizontal_flag被设置为等于allowsbthorq。
[0218]

否则(cu_sbt_quad_flag等于0),cu_sbt_horizontal_flag被设置为等于allowsbthorh。
[0219]
等于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不存在于比特流当中。
[0220]
变量sbtnumfourthstb0的推导如下:
[0221]
sbtminnumfourths=cu_sbt_quad_flag?1:2(7-117)
[0222]
sbtnumfourthstb0=cu_sbt_pos_flag?(4-sbtminnumfourths):sbtminnumfourths(7-118)
[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.3.4.量化残差域块差分脉冲编解码调制编解码(qr-bdpcm)
[0226]
提出了量化残差域bdpcm(下文表示为qr-bdpcm)。不同于bdpcm,通过在类似于帧内预测的预测方向(水平或垂直预测)内进行样点复制来对整个块进行帧内预测。对残差进行量化,并对量化残差及其预测子(水平或垂直)量化值之间的δ进行编解码。
[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.4.系数的熵编解码
[0239]
2.4.1.应用了变换的块的系数编解码
[0240]
在hevc中,采用不重叠系数群组(cg,或子块)对编解码块的变换系数编解码,并且每一cg含有编解码块的4x4块的系数。根据预定义扫描顺序对编解码块内的cg以及cg内的变换系数编解码。
[0241]
根据预定义扫描顺序对编解码块内的cg以及cg内的变换系数编解码。cg和cg内的系数两者均遵循朝右上的对角线扫描顺序。在图16和图17中分别描绘了4
×
4块和8
×
8扫描顺序的示例。
[0242]
注意,编解码顺序是颠倒的扫描顺序(即,从图17中的cg3到cg0解码),在对一个块解码时,首先对最后的非零系数的坐标解码。
[0243]
对具有至少一个非零变换系数的cg的变换系数幅值的编解码可以被分成多趟扫描。在vvc3中,对于每一cg,按照编解码顺序划分常规编解码二进制位和旁路编解码二进制位;首先传输子块的所有常规编解码二进制位,而后传输旁路编解码二进制位。在扫描位置范围内通过五趟对子块的变换系数幅值进行编解码,具体如下:
[0244]

第1趟:按照编解码顺序处理对有效性(sig_flag)、大于1标志(gt1_flag)、奇偶性(par_level_flag)和大于2标志(gt2_flag)的编解码。如果sig_flag等于1,那么对第一gt1_flag编解码(其规定绝对幅值是否大于1)。如果gt1_flag等于1,那么附加地对par_flag编解码(其规定绝对幅值减2的奇偶性)。
[0245]

第2趟:针对所有具有等于1的gt2_flag或者等于1的gt1_flag的扫描位置处理对剩余绝对幅值(余数)。采用golomb-rice编解码使非二进制语法元素二值化,并且在算术编
解码引擎的旁路模式中对所得到的二进制位编解码。
[0246]

第3趟:使用golomb-rice编解码在算术编解码引擎的旁路模式中对在第一趟中未对其sig_flag进行编解码(由于达到了常规编解码二进制位的极限)的系数的绝对幅值(abslevel)进行完全编解码。
[0247]

第4趟:在sig_coeff_flag等于1的情况下对所有扫描位置的符号(sign_flag)编解码
[0248]
保证了对于4
×
4子块而言对不超过32个的常规编解码二进制位(sig_flag、par_flag、gt1_flag和gt2_flag)进行编码或解码。对于2
×
2色度子块而言,常规编解码二进制位的数量局限于8。
[0249]
按照与hevc类似的方式推导用于非二进制语法元素余数的编解码(第3趟中)的rice参数(ricepar)。在每一子块开始时,将ricepar设置为等于0。在对语法元素余数编解码之后,根据预定义公式修改rice参数。对于非二进制语法元素abslevel的编解码(第4趟中)而言,确定局部模板中的绝对值的和sumabs。通过表格查找在依赖性量化和sumabs的基础上确定变量ricepar和poszero。对中间变量codevalue的推导如下:
[0250]

如果abslevel[k]等于0,那么codevalue被设置为等于poszero;
[0251]

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

1;
[0252]

否则(abslevel[k]大于poszero),那么codevalue被设置为等于abslevel[k]。
[0253]
借助于rice参数ricepar,使用golomb-rice编解码对codevalue的值进行编解码。
[0254]
2.4.1.1.用于系数编解码的上下文建模
[0255]
对用于与变换系数幅值的绝对值相关的语法元素的概率模型的选择取决于局部邻域中的绝对幅值或者部分重建绝对幅值的值。在图18中示出了所使用的模板。
[0256]
所选择的概率模型取决于局部邻域中的绝对幅值(或者部分重建绝对幅值)之和以及局部邻域中的大于0的绝对幅值的数量(通过等于1的sig_coeff_flags的数量给出)。上下文建模和二值化取决于下述针对局部邻域的度量:
[0257]
·
numsig:局部邻域中的非零幅值的数量,
[0258]
·
sumabs1:局部邻域中第一趟之后部分重建绝对幅值(abslevel1)之和,
[0259]
·
sumabs:局部邻域中重建绝对幅值之和,以及
[0260]
·
对角位置(d):变换块内的当前扫描位置的水平坐标和垂直坐标之和。
[0261]
基于numsig、sumabs1和d的值,选择用于对sig_flag、par_flag、gt1_flag和gt2_flag编解码的概率模式。基于sumabs和numsig的值选择用于使abs_remainder二值化的rice参数。
[0262]
2.4.1.2.依赖性量化(dq)
[0263]
此外,还将同样的hevc标量量化与一种被称为依赖性标量量化的新的理念相结合。依赖性标量量化是指一种方案,其中,变换系数的一组可容许的重建值依赖于在重建顺序中处于当前变换系数幅值之前的变换系数幅值的值。这一方案的主要作用在于,与hevc中使用的常规独立标量量化相比,在n维矢量空间(n表示变换块中的变换系数的数量)内更致密地填充可容许重建矢量。这意味着,对于给定的每一个n维单元体积的可容许重建矢量的平均数量而言,降低了输入矢量与最接近的重建矢量之间的平均失真。该依赖性标量量
化方案是通过下述操作实现的:(a)定义两个具有不同重建幅值的标量量化器以及(b)定义用于在两个标量量化器之间切换的过程。
[0264]
在图19中示出了通过q0和q1表示的所使用的两个标量量化器。通过量化步长尺寸δ唯一地指定可用重建幅值的位置。所使用的标量量化器(q0或q1)未在比特流中显式信令通知。相反,通过按照编解码/重建顺序处于当前变换系数之前的变换系数的奇偶性确定用于当前变换系数的量化器。
[0265]
如图20所示,通过具有四个状态的状态机实现两个标量量化器(q0和q1)之间的切换。状态可以采取四个不同值:0、1、2、3。其由按照编解码/重建顺序处于当前变换系数之前的变换系数幅值的奇偶性唯一地确定。在针对变换块的反量化开始时,状态被设置为0。按照扫描顺序(即,按照它们被熵解码的相同顺序)重建变换系数。在重建当前变换系数之后,对状态进行更新,如图20所示,其中,k表示变换系数幅值的值。
[0266]
2.4.1.3.语法和语义
[0267]
7.3.7.11残差编解码语法
[0268]
下文具有粗体、斜体和/或下划线的部分指示所提出的对该标准的修改。
[0269]
[0270]
[0271]
[0272]
[0273]
[0274]
[0275][0276]
2.4.2.ts编解码块和qr-bdpcm编解码块的系数编解码
[0277]
qr-bdpcm跟随在用于ts编解码块的上下文建模方法之后。
[0278]
2.4.2.1.编解码趟
[0279]
用于ts残差的经修改的变换系数幅值编解码。如果cg含有非零系数,那么应用多趟对每一cg编解码。
[0280]
·
第一趟:如果需要的话,对大于0标志(sig_coeff_flag)、符号标志(coeff_sign_flag)、大于1标志(abs_level_gtx_flag[0])和奇偶性标志(par_level_flag)编解码
[0281]
·
第2趟到第5趟:
[0282]
ο对于第j趟,对大于(2*j)标志(abs_level_gtx_flag[j-1])编解码
[0283]
·
第6趟:对该系数的幅度的剩余部分(abs_remainder)编解码
[0284]
2.4.2.2.相较于非ts残差编解码的变化总结
[0285]
相对于常规残差编解码情况,用于ts的残差编解码包括下述改变:
[0286]
1)不对最后的x/y位置进行信令通知
[0287]
2)在所有的先前标志都等于0时针对除了最后子块的每一子块对coded_sub_block_flag编解码;
[0288]
3)采用缩减模板的sig_coeff_flag上下文建模,
[0289]
4)用于abs_level_gtx_flag[0]和par_level_flag的单个上下文模型,
[0290]
5)用于符号标志以及附加的大于5标志、大于7标志、大于9标志的上下文建模,
[0291]
6)用于余数二值化的经修改的rice参数推导
[0292]
7)每样点的上下文编解码二进制位的数量的极限,一个块内每样点2个二进制位。
[0293]
2.4.2.3.语法和语义
[0294]
7.3.6.10变换单元语法
[0295]
下文具有粗体、斜体和/或下划线的部分指示所提出的对该标准的修改。
[0296]
[0297]
[0298]
[0299]
[0300][0301]
上下文编解码二进制位的数量局限于对于每cg而言不大于每样点2个二进制位。
[0302]
表格9

对具有上下文编解码二进制位的语法元素的ctxinc分配
[0303][0304]
表格9

对具有上下文编解码二进制位的语法元素的ctxinc分配
[0305]
3.现有实施方式的缺点
[0306]
当前设计具有下述问题:
[0307]
1.为了符合上下文自适应二进制算术编解码(cabac)的吞吐量,设置每块的上下文编解码二进制位的最大数量,并且采用计数器记录在一个块内包含多少上下文编解码二进制位。在当前设计中,通过w*h表示亮度块,并且采用计数器记录已经编解码了多少二进制位。一旦计数器达到k*w*h(在当前vvc中k=2,等于在最近vvc工作草案中为2*(1《《log2tbwidth)*(1《《log2tbheight)的maxccbs),对其余二进制位全部进行旁路编解码。然而,同样的每块的上下文编解码二进制位的最大数量的设置在cabac上下文编解码二进制位的吞吐量方面带来了严重问题。
[0308]
2.如果还对色度块应用变换跳过模式(包括qr-bdpcm),那么如何设置上下文编解码二进制位的最大数量是未知的。
[0309]
3.在pct/cn2019/086814中已经描述了进一步提高cabac上下文编解码二进制位的吞吐量的几种方式,通过引用将该文献全文并入本文。
[0310]
4.示例技术和实施例
[0311]
下文描述的详细实施例应被视为解释一般概念的示例。不应狭义地解释这些实施例。此外,这些实施例可以以任何方式组合。
[0312]
在下文的讨论中,就单一树编解码结构而言,cu可以包括与所有的三色分量相关联的信息。或者,就单色编解码而言,cu可以包括仅与亮度颜色分量相关联的信息。或者,就双树编解码结构而言,cu可以包括仅与亮度颜色分量(例如,ycbcr格式中的y分量或者gbr格式中的g分量)相关联的信息。或者,就双树编解码结构而言,cu可以包括仅与两个色度分量(例如,ycbcr中的cb和cr分量或者gbr格式中的b和r分量)相关联的信息。
[0313]
在下文的描述当中,“块”可以指编解码单元(cu)或变换单元(tu)或编解码块(cb)或变换块(tb)。
[0314]
除了控制每块的上下文编解码二进制位的最大数量之外,提出了可以限制每x的上下文编解码二进制位的最大数量。x是视频单元(砖块/片/ctu行/一个或多个ctu或vpdu或视频数据的子区域)/块(tu/cu/pu/tb/cb等)/cg/块内的子区域/编解码趟/语法元素/语法元素的群组/样点/像素/上下文/上下文的群组。当存在每x(例如,编解码趟、块)的限制时,分配计数器,以记录对于每x(例如,编解码趟、块)已经对多少二进制位进行了上下文编解码。
[0315]
1.对于色度分量,上下文编解码二进制位的最大数量可以小于或者不大于亮度分量的上下文编解码二进制位的最大数量。
[0316]
a.在一个示例中,两个色度分量的上下文编解码二进制位的最大数量可以都小于或者不大于亮度分量的上下文编解码二进制位的最大数量。
[0317]
b.在一个示例中,一个色度分量的上下文编解码二进制位的最大数量可以小于或者不大于亮度分量的上下文编解码二进制位的最大数量。
[0318]
2.对于帧内编解码视频单元(例如,条带/片/砖块/图片),上下文编解码二进制位的最大数量可以大于或者不小于帧间编解码视频单元(例如,p/b条带/片/砖块/图片)的上下文编解码二进制位的最大数量。
[0319]
3.假定块宽度和高度为w和h,将不再总是使用k(k=2)*w*h作为所有块的上下文编解码二进制位的最大数量,相反上下文编解码二进制位的最大数量和/或k可以分别取决于该块的编解码特性。
[0320]
a.在一个示例中,从一个块到另一块,k可以改变。
[0321]
b.在另一个示例中,k可以取决于w和/或h。
[0322]
i.在一个示例中,对于两个块而言,具有较大块尺寸的一个块的k值不大于或者小于具有较小块尺寸的另一个块的k值。
[0323]
ii.在一个示例中,上下文编解码二进制位的最大数量和/或k可以取决于块形状(例如,方形(w=h)或者非方形(w!=h))。
[0324]
iii.在一个示例中,对于w*h》t0,k=1.75(例如,t0=64)。
[0325]
c.在一个示例中,上下文编解码二进制位的最大数量和/或k可以取决于编解码模式,诸如帧内/帧间/ibc。
[0326]
d.在一个示例中,上下文编解码二进制位的最大数量和/或k可以取决于所应用的变换矩阵类型。
[0327]
e.在一个示例中,上下文编解码二进制位的最大数量和/或k可以取决于编解码技术,例如,是否应用变换。
[0328]
f.在一个示例中,上下文编解码二进制位的最大数量和/或k可以取决于编解码模式,例如,是否启用qr-bdpcm。
[0329]
i.在一个示例中,对于w*h=t0并且应用qr-bdpcm,k=1.75(例如,t0=64)。
[0330]
ii.在一个示例中,对于w*h《=t0&&w*h》=t1并且应用qr-bdpcm,k=1.75(例如,t0=64,t1=32)。
[0331]
g.在一个示例中,上下文编解码二进制位的最大数量和/或k可以取决于一个块的位置,例如,在图片/条带/砖块/片边界内。
[0332]
h.在一个示例中,上下文编解码二进制位的最大数量和/或k可以取决于量化参数。
[0333]
i.上下文编解码二进制位的最大数量和/或k可以取决于预测信号是从何处生成的、空域邻居、当前图片中的样点、不同于当前图片的一个或多个图片中的样点。
[0334]
j.在一个示例中,上下文编解码二进制位的最大数量和/或k可以取决于块分割深度和/或分割结构。
[0335]
k.在一个示例中,每块的上下文编解码二进制位的最大数量可以取决于是否应用
无损编解码模式。
[0336]
4.一个块的每样点上下文编解码二进制位的最大数量可以取决于该块的编解码特性。
[0337]
a.在一个示例中,对于两个块而言,具有较大尺寸的一个块的每样点上下文编解码二进制位的最大数量不大于或小于具有较小块尺寸的另一块的每样点上下文编解码二进制位的最大数量
[0338]
b.在一个示例中,块的每样点上下文编解码二进制位的最大数量可以取决于块形状(方形或非方形)。
[0339]
c.在一个示例中,块的每样点上下文编解码二进制位的最大数量可以取决于编解码模式,诸如帧内/帧间/ibc。
[0340]
d.在一个示例中,块的每样点上下文编解码二进制位的最大数量可以取决于所应用的变换矩阵类型。
[0341]
e.在一个示例中,块的每样点上下文编解码二进制位的最大数量可以取决于编解码技术,例如,是否应用变换。
[0342]
f.在一个示例中,块的每样点上下文编解码二进制位的最大数量可以取决于编解码模式,例如,是否启用qr-bdpcm。
[0343]
g.在一个示例中,块的每样点上下文编解码二进制位的最大数量可以取决于一个块的位置,例如,在图片/条带/砖块/片边界内。
[0344]
h.在一个示例中,块的每样点上下文编解码二进制位的最大数量可以取决于量化参数。
[0345]
i.在一个示例中,块的每样点上下文编解码二进制位的最大数量可以取决于预测信号是从何处生成的、空域邻居、当前图片中的样点、不同于当前图片的一个或多个图片中的样点。
[0346]
j.在一个示例中,块的每样点上下文编解码二进制位的最大数量可以取决于块分割深度和/或分割结构。
[0347]
k.在一个示例中,每样点上下文编解码二进制位的最大数量可以取决于是否应用无损编解码模式。
[0348]
5.可以将语法元素(用于残差编解码的上下文编解码语法元素)划分成具有单独控制的不同群组。
[0349]
a.在一个示例中,可以将所应用的不同控制策略应用于不同群组。
[0350]
b.在一个示例中,可以将上下文编解码语法元素划分成n个群组。每一群组具有其自身的阈值,以控制是否可以应用上下文编解码方法。
[0351]
i.在一个示例中,对于群组i而言,可以保持计数器ci,以控制可以采用cabac方法对多少个二进制位编解码。在上下文编解码二进制位的数量大于阈值时,可以不允许上下文编解码方法。
[0352]
ii.该阈值可以取决于群组内的语法元素的初始上下文/概率。
[0353]
1)替代性地,可以在sps/pps/条带/图片/片组级上信令通知阈值。
[0354]
c.如何对语法元素分组可以取决于语法元素的初始上下文/概率。
[0355]
d.如何对语法元素分组可以取决于在何处对语法元素编解码,例如,在分割级内,
在cu或pu或tu级或者残差编解码级内。
[0356]
e.可以动态改变分组。
[0357]
i.在一个示例中,在将语法元素的上下文更新为处于预定义上下文集合内时,可以将该语法元素分配给某一群组。
[0358]
ii.在一个示例中,可以基于每一语法元素的上下文/概率允许重新分组。
[0359]
1)在一个示例中,在从最近一次重新分组开始已经对一定数量的样点编解码之后,可以允许重新分组。
[0360]
2)在一个示例中,在从最近一次重新分组开始已经向比特流生成了给定数量的比特之后,可以允许重新分组。
[0361]
3)在一个示例中,在从最近一次重新分组开始已经处理了给定数量的cg之后,可以允许重新分组。
[0362]
4)在一个示例中,在群组中的概率差异超过某一阈值时,可以允许重新分组。
[0363]
5)在一个示例中,在上下文编解码二进制位的数量超过某一阈值时,可以允许重新分组。
[0364]
6)在一个示例中,在重新初始化上下文/概率时,可以允许重新分组。
[0365]
6.可以将上下文(用于残差编解码的那些)划分成具有单独控制的不同群组。
[0366]
a.在一个示例中,可以将不同控制策略应用于不同群组。
[0367]
b.在一个示例中,可以将上下文划分成n个群组。每一群组具有其自身的阈值,以控制是否可以应用上下文编解码方法。
[0368]
i.在一个示例中,对于上下文群组i而言,可以保持计数器ci,以控制可以采用该群组内的上下文对多少个二进制位编解码。在上下文编解码二进制位的数量大于阈值时,可以不允许采用该群组内的上下文的上下文编解码方法。
[0369]
ii.该阈值可以取决于群组内的上下文的初始状态/概率。
[0370]
1)替代性地,可以在sps/pps/条带/图片/片组级上信令通知阈值。
[0371]
c.如何对上下文分组可以取决于上下文的初始状态/概率。
[0372]
d.可以动态改变分组。
[0373]
i.在一个示例中,在将上下文的状态更新为处于预定状态集内时,可以将该上下文分配给某一群组。
[0374]
ii.在一个示例中,可以基于每一上下文的状态/概率允许重新分组。
[0375]
1)在一个示例中,在从最近一次重新分组开始已经对一定数量的样点编解码之后,可以允许重新分组。
[0376]
2)在一个示例中,在从最近一次重新分组开始已经向比特流生成了给定数量的比特之后,可以允许重新分组。
[0377]
3)在一个示例中,在从最近一次重新分组开始已经处理了给定数量的cg之后,可以允许重新分组。
[0378]
4)在一个示例中,在群组中的上下文概率差异超过某一阈值时,可以允许重新分组。
[0379]
5)在一个示例中,在上下文编解码二进制位的数量超过某一阈值时,可以允许重新分组。
[0380]
6)在一个示例中,在重新初始化状态/概率时,可以允许重新分组。
[0381]
7.可以按照预定义方式重置控制上下文编解码二进制位的数量的计数器/阈值(例如,k*w*h)。
[0382]
a.在一个示例中,在从最近一次计数器重置开始已经对给定数量的样点编解码之后,可以重置计数器。
[0383]
b.在一个示例中,在从最近一次计数器重置开始已经向比特流生成了给定数量的比特之后,可以重置计数器。
[0384]
c.在一个示例中,在从最近一次计数器重置开始已经处理了给定数量的cg之后,可以重置计数器。
[0385]
d.在一个示例中,可以在每一ctu行处重置计数器。
[0386]
e.在一个示例中,可以在每一片组处重置计数器。
[0387]
f.在一个示例中,可以在每一片处重置计数器。
[0388]
g.在一个示例中,可以在每一ctu处重置计数器。
[0389]
h.在一个示例中,可以在接收某一标志时重置计数器。
[0390]
i.可以周期性地发送该标志,以告知是否应当重置计数器。
[0391]
ii.在一个示例中,可以在pps/sps/图片/片组/条带
[0392]
/ctu行/ctu/cu/块/视频砖块级上信令通知该标志。
[0393]
8.上述方法可以适用于每x上下文编解码二进制位的最大数量(例如,x是视频单元(砖块/片/ctu行/一个或多个ctu或者vpdu/cg/编解码趟/语法元素/语法元素群组/像素))。
[0394]
a.在一个示例中,x为cg或编解码趟或语法元素或语法元素群组。
[0395]
i.替代性地,每cg的上下文编解码二进制位的最大数量可以取决于一个cg在一个块内的位置。
[0396]
b.上述方法可以适用于每片组/每片/每ctu或每ctu行的上下文编解码二进制位的最大数量。
[0397]
c.上述方法可以适用于每vpdu上下文编解码二进制位的最大数量。
[0398]
d.对于视频编解码标准的不同简表/级别/层次而言,每图片/每条带/每片组/每片/ctu行/ctu/vpdu/块/样点的上下文编解码二进制位的最大数量可以是不同的。
[0399]
9.在一个cu具有多个tu时,可以每cu控制上下文编解码二进制位的最大数量。
[0400]
a.在一个示例中,将计数器分配给cu,以记录当前cu中多少个上下文编解码二进制位。可以在对cu编码/解码之前将该计数器重置为0。
[0401]
b.替代性地,可以每tu控制上下文编解码二进制位的最大数量。
[0402]
i.替代性地,此外,为tu分配计数器,以记录当前tu中多少个上下文编解码二进制位。可以在对tu编码/解码之前将该计数器重置为0。
[0403]
c.可以根据某些规则,例如,基于cu的维度决定是否控制cu或tu中的上下文编解码二进制位。
[0404]
10.当一个cu/tu/pu具有多个颜色分量(例如,单树中的3个颜色分量;双树色度编解码中的2个颜色分量)时,可以每颜色分量控制上下文编解码二进制位的最大数量。
[0405]
a.在一个示例中,为cu/tu/pu中的块(例如,亮度块)
[0406]
分配计数器,以记录当前块中多少个上下文编解码二进制位。可以在对块编码/解码之前将该计数器重置为0。也就是说,不同的颜色分量具有单独控制。
[0407]
b.替代性地,可以每cu/tu/pu控制上下文编解码二进制位的最大数量。
[0408]
i.替代性地,此外,为cu/tu/pu分配计数器,以记录当前cu/tu/pu中多少个上下文编解码二进制位。可以在对cu/tu/pu编码/解码之前将该计数器重置为0。
[0409]
c.可以根据某些规则(诸如分割结构(双树或单树)、是否对颜色分量应用变换)来决定是否控制一个或多个颜色分量中的上下文编解码二进制位。
[0410]
11.对于不同编解码方法,可以将每x上下文编解码二进制位的最大数量(例如,x为图片/条带/ctu行/ctu/vpdu/块/样点/语法元素群组/tb/tu/子块/cg)设置成相同值。
[0411]
a.在一个示例中,对ts或非ts编解码视频块的操纵可以遵循相同值(例如,控制上下文编解码二进制位的数量的相同阈值)来确定对剩余二进制位进行上下文编解码还是旁路编解码。
[0412]
b.在一个示例中,采用视频块(例如,tb中的变换块)的面积推导tb的上下文编解码二进制位的最大数量。对于tb,上下文编解码二进制位的最大数量等于tb_width*tb_height*k(例如,k=1.75),其中,例如,tb_width和tb_height是系数归零之后tb的宽度和高度。可以对所有种类的视频块应用阈值k,而不管其为ts模式还是非ts模式。
[0413]
i.替代性地,此外,可以在对视频块编码/解码之前将计数器设置为tb_width*tb_height*k。在对一个上下文编解码二进制位解码之后,可以使计数器减1。当在对语法元素或子块解码之后上下文编解码二进制位的数量小于第二阈值时,对所有剩余二进制位或全部进行旁路编解码。
[0414]
1)在一个示例中,第二阈值可以取决于对一个视频块应用的编解码方法(例如,ts或ts)。
[0415]
a.例如,k0(例如,4)用于非ts编解码块,并且k1(例如,8)用于ts编解码块。k0和/或k1可以取决于对该视频块编码/解码过程中的编解码趟/子块/cg。
[0416]
2)在一个示例中,第二阈值可以取决于对一个视频块应用的编解码方法(例如,ts或ts)。
[0417]
a.例如,在非ts编解码块中,语法元素可以是“abs_level_gt3_flag”[0418]
b.例如,在非ts编解码块中,语法元素可以是“par_level_flag”[0419]
12.可以在(例如)vps/sps/dps/pps/aps/图片标头/条带标头/片组标头中信令通知每x上下文编解码二进制位的最大数量(例如,x是图片/条带/ctu行/ctu/vpdu/块/样点/语法元素群组)。
[0420]
5.所公开技术的示例性实施方式
[0421]
图21是视频处理装置2100的框图。装置2100可以用于实施本文描述的方法中的一者或多者。装置2100可以被体现到智能手机、平板电脑、计算机、物联网(iot)接收器等当中。装置2100可包括一个或多个处理器2102、一个或多个存储器2104和视频处理硬件2106。(一个或多个)处理器2102可以被配置为实施本文件中描述的一种或多种方法。(一个或多个)存储器2104可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件2106可以用于在硬件电路中实施本文中描述的一些技术,并且可以部分或完全是处理器2102的部分(例如,图形处理器内核gpu或其他信号处理电路)。
[0422]
在本文中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示变换到对应比特流表示或反之期间应用视频压缩算法。当前视频块的比特流表示可以(例如)对应于比特流之内位于一处或散布在不同地方的比特,如语法所定义。例如,可以在依据变换和编解码的误差残差值并且还使用比特流中的标头和其他字段中的比特的情况下来编码宏块。
[0423]
应当理解,所公开的方法和技术将通过允许使用本文件中公开的技术而有益于结合在视频处理设备之内的视频编码器和/或解码器实施例,例如,视频处理设备可以是智能电话、膝上型电脑、台式计算机和类似设备。
[0424]
图22是视觉媒体处理的示例性方法2200的流程图。方法2200包括:在2210中执行视频单元和视频单元的比特流表示之间的转换,其中,该转换包括在可对与该视频单元相关联的第一处理单元的上下文编解码二进制位的最大数量应用的限制的基础上对该视频单元进行上下文建模,其中,将上下文建模的信息包含到该视频单元的比特流表示当中。
[0425]
可以利用以下基于条款的格式来描述一些实施例。
[0426]
1.一种视觉媒体处理的方法,包括:
[0427]
执行视频单元和视频单元的比特流表示之间的转换,其中,该转换包括在可对与该视频单元相关联的第一处理单元的上下文编解码二进制位的最大数量应用的限制的基础上对该视频单元进行上下文建模,其中,将上下文建模的信息包含到该视频单元的比特流表示当中。
[0428]
2.根据条款1所述的方法,其中,第一处理单元包括一个或多个色度分量和一个亮度分量,并且这一个或多个亮度分量的每者的上下文编解码二进制位的最大数量不大于该亮度分量的上下文编解码二进制位的最大数量。
[0429]
3.根据条款1所述的方法,其中,第一处理单元包括帧内编解码单元和帧间编解码单元,并且帧内编解码视频单元的上下文编解码二进制位的最大数量不大于帧间编解码视频单元的上下文编解码二进制位的最大数量。
[0430]
4.根据条款1所述的方法,其中,第一处理单元的上下文编解码二进制位的最大数量与该视频单元的各维度有关。
[0431]
5.根据条款1所述的方法,其中,第一处理单元的上下文编解码二进制位的最大数量与该视频单元中的qr-bdpcm编解码步骤、ts编解码步骤的使用或者变换矩阵类型有关。
[0432]
6.根据条款1所述的方法,其中,第一处理单元的上下文编解码二进制位的最大数量与和该视频单元相关联的一个或多个量化参数有关。
[0433]
7.根据条款1所述的方法,其中,第一处理单元的上下文编解码二进制位的最大数量与该视频单元的空间位置有关。
[0434]
8.根据条款1所述的方法,其中,第一处理单元的上下文编解码二进制位的最大数量与预测信号有关。
[0435]
9.根据条款9所述的方法,其中,预测信号由下述选项中的任何一者或多者生成:该视频单元的一个或多个空间相邻视频单元、该视频单元内包含的样点或者来自其他视频单元的一个或多个样点。
[0436]
10.根据条款1所述的方法,其中,第一处理单元的上下文编解码二进制位的最大数量与该视频单元的块分割深度和/或分割结构有关。
[0437]
11.根据条款1所述的方法,其中,第一处理单元包括两个块,并且具有较大块尺寸的块的每样点上下文编解码二进制位的最大数量不大于具有较小块尺寸的块的每样点上下文编解码二进制位的最大数量。
[0438]
12.根据条款1所述的方法,其中,第一处理单元的上下文编解码二进制位的最大数量与该视频单元的形状有关。
[0439]
13.一种视觉媒体处理的方法,包括:
[0440]
执行视频单元和视频单元的比特流表示之间的转换,其中,该转换包括在可对与该视频单元相关联的第一处理单元的上下文编解码二进制位的最大数量应用的限制的基础上对该视频单元进行上下文建模,其中,该转换包括根据上下文对处理单元分组的步骤,使得第一处理单元与第一上下文相关联,并且第二处理单元与第二上下文相关联。
[0441]
14.根据条款13所述的方法,其中,第一处理单元与用于选择性地启用或禁用上下文建模的阈值相关联。
[0442]
15.根据条款14所述的方法,其中,如果第一处理单元的上下文编解码二进制位的最大数量超过该阈值,对该视频单元禁用上下文建模。
[0443]
16.根据条款14所述的方法,其中,用于选择性地启用或禁用上下文建模的阈值取决于第一处理单元内的第一上下文的初始状态/概率。
[0444]
17.根据条款14所述的方法,其中,将用于选择性地启用或禁用上下文建模的阈值作为比特流表示的部分进行信令通知。
[0445]
18.根据条款14所述的方法,其中,根据上下文对处理单元的分组是可动态更改的。
[0446]
19.根据条款18所述的方法,其中,基于一个或多个条件启用或禁用根据上下文对处理单元的重新分组。
[0447]
20.根据条款19所述的方法,其中,该一个或多个条件包括下述选项中的一者或多者:(a)每一上下文的状态/概率,(b)自最近的重新分组以来编解码的样点的数量(c)自最近的重新分组以来在该转换中生成的比特的数量,(d)自最近的重新分组以来处理的编解码群组的数量,(e)群组中的上下文概率差异超过阈值,(f)群组中的上下文编解码二进制位的数量超过阈值,或者(g)上下文的状态/概率的重新初始化。
[0448]
21.一种视觉媒体处理的方法,包括:
[0449]
执行视频单元和视频单元的比特流表示之间的转换,其中,该转换包括在可对与该视频单元相关联的第一处理单元的上下文编解码二进制位的最大数量应用的限制的基础上对该视频单元进行上下文建模,其中,采用计数器记录第一处理单元中的上下文编解码二进制位的数量,并且其中,该计数器可在满足一个或多个条件时重置。
[0450]
22.根据条款21所述的方法,其中,该一个或多个条件是预定义条件。
[0451]
23.根据条款21所述的方法,其中,该一个或多个条件与自计数器的最近重置以来所编解码的样点的数量有关。
[0452]
24.根据条款21所述的方法,其中,该一个或多个条件与自计数器的最近重置以来作为比特流表示的部分生成的比特的数量有关。
[0453]
25.根据条款21所述的方法,其中,该一个或多个条件与自计数器的最近重置以来所处理的编解码群组的数量有关。
[0454]
26.根据条款21所述的方法,其中,在该视频单元的编解码树单元(ctu)的每一行处,在每一片处,在每一片组处,或者在检测到比特流表示中的标志时重置计数器。
[0455]
27.根据条款26所述的方法,其中,该标志指示是否将重置计数器。
[0456]
28.根据条款1-27中的任一项或多项所述的方法,其中,第一处理单元的上下文编解码二进制位的最大数量取决于该视频单元的颜色分量。
[0457]
29.根据条款1-28中的任一项或多项所述的方法,其中,第一处理单元包括编解码群组、编解码趟、语法元素或者语法元素的群组。
[0458]
30.根据条款1-29中的任一项或多项所述的方法,其中,第一处理单元的上下文编解码二进制位的最大数量取决于该视频单元的位置。
[0459]
31.根据条款1-30中的任一项或多项所述的方法,其中,第一处理单元的上下文编解码二进制位的最大数量取决于与该视频单元相关联的条带/片/片组/图片类型。
[0460]
32.根据条款1-31中的任一项或多项所述的方法,其中,第一处理单元的上下文编解码二进制位的最大数量取决于dps/sps/pps/aps/vps/序列标头/图片标头/条带标头/片组标头/片/编解码树单元(ctu)的群组。
[0461]
33.一种处于视频系统中的装置,包括处理器以及具有位于其上的指令的非暂态存储器,其中,指令在被处理器执行时使得处理器实施根据条款1到32中的任一项所述的方法。
[0462]
34.一种存储在非暂态计算机可读介质上的计算机程序产品,该计算机程序产品包括用于实施根据条款1到32中的任一项所述的方法的程序代码。
[0463]
图23是视觉媒体处理的示例性方法2300的流程图。方法2300包括在2302中针对视频和该视频的比特流表示之间的转换,对与该视频相关联的每预定单元的上下文编解码二进制位的最大数量应用控制;以及在2304中基于该控制执行该转换。
[0464]
在一些示例中,该预定单元包括下述选项中的至少一者:
[0465]
包括编解码单元(cu)、变换单元(tu)、预测单元(pu)、编解码块(cb)和变换块(tb)中的至少一者的块;
[0466]
包括砖块、片、编解码树单元(ctu)行、一个或多个ctu行、虚拟管线数据单元(vpdu)和视频数据的子区域的视频单元;
[0467]
编解码群组(cg);
[0468]
块内的子区域;
[0469]
编解码趟;
[0470]
语法元素或语法元素的群组;
[0471]
样点或像素;
[0472]
图片、条带、片组或片;
[0473]
上下文或者上下文的群组;以及
[0474]
包括色度分量和亮度分量的颜色分量。
[0475]
在一些示例中,对于色度分量,上下文编解码二进制位的最大数量小于或者不大于亮度分量的上下文编解码二进制位的最大数量。
[0476]
在一些示例中,两个色度分量的上下文编解码二进制位的最大数量都小于或者不大于亮度分量的上下文编解码二进制位的最大数量。
[0477]
在一些示例中,一个色度分量的上下文编解码二进制位的最大数量小于或者不大于亮度分量的上下文编解码二进制位的最大数量。
[0478]
在一些示例中,对于帧内编解码视频单元,上下文编解码二进制位的最大数量大于或者不小于帧间编解码视频单元的上下文编解码二进制位的最大数量。
[0479]
在一些示例中,该预定单元包括具有块尺寸为宽度w和高度h的块,块的上下文编解码二进制位的最大数量为k*w*h,k为变量,其中,每块的上下文编解码二进制位的最大数量和/或k分别取决于该块的编解码特性。
[0480]
在一些示例中,从一个块到另一块,k发生变化。
[0481]
在一些示例中,k取决于w和/或h。
[0482]
在一些示例中,对于两个块而言,具有较大块尺寸的一个块的k值不大于或者小于具有较小块尺寸的另一个块的k值。
[0483]
在一些示例中,每块的上下文编解码二进制位的最大数量和/或k取决于块的块形状,其中,块形状包括w=h的情况下的方形形状和w!=h的情况下的非方形形状之一。
[0484]
在一些示例中,在w*h》t0时,k=1.75,其中,t0为整数。
[0485]
在一些示例中,t0=64。
[0486]
在一些示例中,每块的上下文编解码二进制位的最大数量和/或k取决于块的编解码模式,其中,编解码模式包括帧内模式、帧间模式和帧内块复制(ibc)模式中的至少一者。
[0487]
在一些示例中,每块的上下文编解码二进制位的最大数量和/或k取决于所应用的变换矩阵类型。
[0488]
在一些示例中,每块的上下文编解码二进制位的最大数量和/或k取决于该块的编解码技术,其中,编解码技术包括是否应用变换。
[0489]
在一些示例中,每块的上下文编解码二进制位的最大数量和/或k取决于该块的编解码技术,其中,编解码技术包括是否应用量化残差域块差分脉冲编解码调制(qr-bdpcm)。
[0490]
在一些示例中,在w*h=t0并且应用qr-bdpcm时,k=1.75,其中,t0为整数。
[0491]
在一些示例中,t0=64。
[0492]
在一些示例中,在w*h《=t0&&w*h》=t1并且应用qr-bdpcm时,k=1.75,其中,t0和t1为整数。
[0493]
在一些示例中,t0=64并且t1=32。
[0494]
在一些示例中,每块的上下文编解码二进制位的最大数量和/或k取决于该块的位置。
[0495]
在一些示例中,每块的上下文编解码二进制位的最大数量和/或k取决于该块的量化参数。
[0496]
在一些示例中,每块的上下文编解码二进制位的最大数量和/或k取决于生成预测信号的来源,其中,来源包括空域邻居、当前图片中的样点、不同于当前图片的一个或多个图片中的样点中的至少一者。
[0497]
在一些示例中,每块的上下文编解码二进制位的最大数量和/或k取决于该块的块分割深度和/或分割结构。
[0498]
在一些示例中,每块的上下文编解码二进制位的最大数量取决于是否应用无损编解码模式。
[0499]
在一些示例中,在该预定单元包括样点时,块的每样点上下文编解码二进制位的最大数量取决于该块的编解码特性。
[0500]
在一些示例中,对于两个块而言,具有较大尺寸的一个块的每样点上下文编解码二进制位的最大数量不大于或小于具有较小块尺寸的另一块的每样点上下文编解码二进制位的最大数量
[0501]
在一些示例中,块的每样点上下文编解码二进制位的最大数量取决于该块的块形状,其中,块形状包括方形形状和非方形形状之一。
[0502]
在一些示例中,块的每样点上下文编解码二进制位的最大数量取决于该块的编解码模式,其中,编解码模式包括帧内模式、帧间模式和帧内块复制(ibc)模式中的至少一者。
[0503]
在一些示例中,块的每样点上下文编解码二进制位的最大数量取决于所应用的变换矩阵类型。
[0504]
在一些示例中,块的每样点上下文编解码二进制位的最大数量取决于该块的编解码技术,其中,编解码技术包括是否应用变换。
[0505]
在一些示例中,块的每样点上下文编解码二进制位的最大数量取决于该块的编解码技术,其中,编解码技术包括是否应用量化残差域块差分脉冲编解码调制(qr-bdpcm)。
[0506]
在一些示例中,块的每样点上下文编解码二进制位的最大数量取决于该块的位置。
[0507]
在一些示例中,块的每样点上下文编解码二进制位的最大数量取决于该块的量化参数。
[0508]
在一些示例中,块的每样点上下文编解码二进制位的最大数量取决于生成预测信号的来源,其中,来源包括空域邻居、当前图片中的样点、不同于当前图片的一个或多个图片中的样点中的至少一者。
[0509]
在一些示例中,块的每样点上下文编解码二进制位的最大数量取决于该块的块分割深度和/或分割结构。
[0510]
在一些示例中,块的每样点上下文编解码二进制位的最大数量取决于是否应用无损编解码模式。
[0511]
在一些示例中,该预定单元包括cg、编解码趟或语法元素或者语法元素的群组中的至少一者。
[0512]
在一些示例中,每cg的上下文编解码二进制位的最大数量取决于一个cg在一个块内的位置。
[0513]
在一些示例中,该预定单元包括片组、片、ctu或ctu行中的至少一者。
[0514]
在一些示例中,该预定单元包括vpdu。
[0515]
在一些示例中,对于视频编解码标准的不同简表、级别、层次而言,每图片、每条带、每片组、每片、每ctu行、每ctu、每vpdu、每块或者每样点的上下文编解码二进制位的最大数量是不同的。
[0516]
在一些示例中,该预定单元包括cu,并且一个cu包括多个tu。
[0517]
在一些示例中,每cu控制上下文编解码二进制位的最大数量。
[0518]
在一些示例中,为cu分配计数器,以记录当前cu中上下文编解码二进制位的数量。
[0519]
在一些示例中,在对该cu编码或解码之前,将该计数器重置为0。
[0520]
在一些示例中,每tu控制上下文编解码二进制位的最大数量。
[0521]
在一些示例中,为tu分配计数器,以记录当前tu中上下文编解码二进制位的数量。
[0522]
在一些示例中,在对该tu编码或解码之前,将该计数器重置为0。
[0523]
在一些示例中,根据某些规则确定是否在cu或tu级内控制上下文编解码二进制位,这些规则包括cu的维度。
[0524]
在一些示例中,该预定单元包括cu、tu或pu之一,并且一个cu、tu或pu包括多个颜色分量,其中,该多个颜色分量包括单树中的三个颜色分量和双树色度编解码中的两个颜色分量。
[0525]
在一些示例中,每颜色分量控制上下文编解码二进制位的最大数量。
[0526]
在一些示例中,为cu、tu或pu中的块分配计数器,以记录当前块内上下文编解码二进制位的数量。
[0527]
在一些示例中,在对该块编码或解码之前,将该计数器重置为0。
[0528]
在一些示例中,每cu、tu或pu控制上下文编解码二进制位的最大数量。
[0529]
在一些示例中,为cu、tu或pu中的块分配计数器,以记录当前当前cu、tu或pu内上下文编解码二进制位的数量。
[0530]
在一些示例中,在对该cu、tu或pu编码或解码之前,将该计数器重置为0。
[0531]
在一些示例中,根据某些规则来确定是否控制一个或多个颜色分量中的上下文编解码二进制位,其中,这些规则包括双树或单树的分割结构以及/或者是否对颜色分量应用变换。
[0532]
在一些示例中,对于不同编解码方法,将每预定单元的上下文编解码二进制位的最大数量设置为相同值。
[0533]
在一些示例中,变换跳过(ts)或非ts编解码视频块遵循相同的规则来确定对剩余二进制位进行上下文编解码还是旁路编解码,其中,这些规则包括使用相同的控制上下文编解码二进制位的数量的阈值。
[0534]
在一些示例中,采用tb中的视频块的面积推导tb的上下文编解码二进制位的最大数量。
[0535]
在一些示例中,tb的上下文编解码二进制位的最大数量等于tb_width*tb_height*k,其中,tb_width和tb_height是系数归零之后tb的宽度和高度,并且k为阈值。
[0536]
在一些示例中,对所有种类的视频块应用阈值k,而不管其为ts模式还是非ts模式。
[0537]
在一些示例中,在对该视频块编码或解码之前,将计数器设置为tb_width*tb_height*k。
[0538]
在一些示例中,在对一个上下文编解码二进制位解码之后使计数器减1。
[0539]
在一些示例中,当在对语法元素或子块解码之后上下文编解码二进制位的数量小于第二阈值时,对所有剩余二进制位或全部进行旁路编解码。
[0540]
在一些示例中,第二阈值取决于对该视频块应用的编解码方法,其中,该编解码方法包括ts或非ts模式。
[0541]
在一些示例中,对于非ts编解码块,该第二阈值为k0,对于ts编解码块,该第二阈值为k1,其中,k0和k1为整数。
[0542]
在一些示例中,k0=4并且k1=8。
[0543]
在一些示例中,k0和/或k1取决于对视频块编码或解码的过程中的编解码趟、子块或cg中的至少一者。
[0544]
在一些示例中,在非ts编解码块中,语法元素为“abs_level_gt3_flag”。
[0545]
在一些示例中,在非ts编解码块中,语法元素为“par_level_flag”。
[0546]
在一些示例中,在vps、sps、dps、pps、aps、图片标头、条带标头或片组标头中的至少一者当中信令通知每预定单元的上下文编解码二进制位的最大数量。
[0547]
图24是视觉媒体处理的示例性方法2400的流程图。方法2400包括:在2402中,针对视频的块和该块的比特流表示之间的转换,将与该块相关联的语法元素划分成不同群组;在2404中,对语法元素的不同群组应用单独控制;以及在2406中,基于这些控制执行转换。
[0548]
在一些示例中,将不同控制策略应用于不同群组。
[0549]
在一些示例中,语法元素包括用于残差编解码的上下文编解码语法元素,并且将上下文编解码语法元素分类成n个群组,其中,每一群组具有用以控制是否能够应用上下文编解码方法的阈值,n为整数。
[0550]
在一些示例中,对于这n个群组中的一个群组,保持对应的计数器,以控制能够采用基于上下文的自适应二进制算术编解码(cabac)方法进行编解码的上下文编解码二进制位的数量。
[0551]
在一些示例中,在上下文编解码二进制位的数量大于阈值时,不允许上下文编解码方法。
[0552]
在一些示例中,阈值取决于群组内的语法元素的初始上下文和/或概率。
[0553]
在一些示例中,在sps、pps、条带、图片和片组级中的至少一者当中信令通知该阈值。
[0554]
在一些示例中,基于语法元素的初始上下文和/或概率将语法元素划分成不同群组。
[0555]
在一些示例中,基于在何处对语法元素编解码而将语法元素划分成不同群组,其中,在分割级、在cu或pu或tu级或者在残差编解码级内对语法元素编解码。
[0556]
在一些示例中,该分组是动态变化的。
[0557]
在一些示例中,在将语法元素的上下文更新为处于预定义上下文集合内时,将该语法元素分配给某一群组。
[0558]
在一些示例中,基于每一语法元素的上下文和/或概率允许重新分组。
[0559]
在一些示例中,在从最近一次重新分组开始已经对一定数量的样点编解码之后,允许重新分组。
[0560]
在一些示例中,在从最近一次重新分组开始已经向比特流生成了给定数量的比特之后,允许重新分组。
[0561]
在一些示例中,在从最近一次重新分组开始已经处理了给定数量的cg之后,允许重新分组。
[0562]
在一些示例中,在群组中的概率差异超过某一阈值时,允许重新分组。
[0563]
在一些示例中,在上下文编解码二进制位的数量超过某一阈值时,允许重新分组。
[0564]
在一些示例中,在对上下文和/或概率重新初始化之后,允许重新分组。
[0565]
图25是视觉媒体处理的示例性方法2500的流程图。方法2500包括:在2502中,针对视频的块和该块的比特流表示之间的转换,将与该块相关联的用于残差编解码的上下文划分成不同群组;在2504中对上下文的不同群组应用单独控制;以及在2506中基于这些控制执行转换。
[0566]
在一些示例中,将不同控制策略应用于不同群组。
[0567]
在一些示例中,将上下文分类成n个群组,其中,每一群组具有用以控制是否能够应用上下文编解码方法的阈值,n为整数。
[0568]
在一些示例中,对于这n个群组中的一个群组,保持对应的计数器,以控制能够采用该群组中的上下文编解码的上下文进行编解码二进制位的数量。
[0569]
在一些示例中,在上下文编解码二进制位的数量大于阈值时,不允许采用该群组内的上下文的上下文编解码方法。
[0570]
在一些示例中,阈值取决于群组内的上下文的初始状态和/或概率。
[0571]
在一些示例中,在sps、pps、条带、图片和片组级中的至少一者当中信令通知该阈值。
[0572]
在一些示例中,基于上下文的初始状态和/或概率将上下文划分成不同群组。
[0573]
在一些示例中,该分组是动态变化的。
[0574]
在一些示例中,在将上下文的状态更新为处于预定状态集内时,可以将该上下文分配给某一群组。
[0575]
在一些示例中,基于每一上下文的状态和/或概率允许重新分组。
[0576]
在一些示例中,在从最近一次重新分组开始已经对一定数量的样点编解码之后,允许重新分组。
[0577]
在一些示例中,在从最近一次重新分组开始已经向比特流生成了给定数量的比特之后,允许重新分组。
[0578]
在一些示例中,在从最近一次重新分组开始已经处理了给定数量的cg之后,允许重新分组。
[0579]
在一些示例中,在群组中的概率差异超过某一阈值时,允许重新分组。
[0580]
在一些示例中,在上下文编解码二进制位的数量超过某一阈值时,允许重新分组。
[0581]
在一些示例中,在对上下文和/或概率重新初始化之后,允许重新分组。
[0582]
图26是视觉媒体处理的示例性方法2600的流程图。方法2600包括:在2602中,针对视频和该视频的比特流表示之间的转换,通过使用一个或多个计数器对与该视频相关联的每预定单元上下文编解码二进制位的数量应用控制,其中,按照预定义方式重置该计数器;以及在2604中,基于该计数器执行转换。
[0583]
在一些示例中,该预定单元包括具有块尺寸为宽度w和高度h的块,并且计数器具有阈值k*w*h,其中,k为变量。
[0584]
在一些示例中,在从最近一次计数器重置开始已经对给定数量的样点编解码之后,重置计数器。
[0585]
在一些示例中,在从最近一次计数器重置开始已经向比特流生成了给定数量的比特之后,重置计数器。
[0586]
在一些示例中,在从最近一次计数器重置开始已经处理了给定数量的cg之后,重
置计数器。
[0587]
在一些示例中,在每一ctu行处重置计数器。
[0588]
在一些示例中,在每一片组处重置计数器。
[0589]
在一些示例中,在每一片处重置计数器。
[0590]
在一些示例中,在每一ctu行处重置计数器。
[0591]
在一些示例中,在接收某一标志时重置计数器。
[0592]
在一些示例中,周期性地发送该标志,以指示是否应当重置计数器。
[0593]
在一些示例中,在pps、sps、图片、片组、条带、ctu行、ctu、cu、块或视频砖块级中的至少一者上信令通知该标志。
[0594]
在一些示例中,该转换从比特流表示生成视频。
[0595]
在一些示例中,该转换从视频生成比特流表示。
[0596]
本文件中描述的所公开的以及其他的解决方案、示例、实施例、模块和功能操作可以在数字电子电路、或计算机软件、固件或硬件中实施,其包括本文中所公开的结构及其结构等价方案或者它们当中的一者或多者的组合。所公开的实施例和其他实施例可以被实施成一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或者它们当中的一者或多者的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括(例如)可编程处理器、计算机或者多个处理器或计算机。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或者它们当中的一者或多者的组合。传播的信号是人为生成的信号,例如,机器生成的电、光或电磁信号,其被生成为对信息编码,以便传输到合适的接收器装置。
[0597]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以按照任何形式部署,包括作为独立程序或作为模块、部件、子例程或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件(例如,存储在标记语言文档中的一个或多个脚本)的部分中,专用于该程序的单个文件中,或者多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。可以将计算机程序部署为在一个或多个计算机上执行,这一个或多个计算机位于一个站点上,或者跨越多个站点分布并通过通信网络互连。
[0598]
本说明书中描述的过程和逻辑流可以通过由一个或多个可编程处理器执行一个或多个计算机程序来执行,从而通过对输入数据进行操作并生成输出来执行功能。这些过程和逻辑流也可以通过专用逻辑电路来执行,并且装置也可以被实施成专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0599]
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。一般来讲,处理器将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元件是执行指令的处理器以及存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或被操作性地耦接为从一个或多个大容量存储设备接收数
据或向其传输数据,或两者兼有。然而,计算机不一定具有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括(例如)半导体存储设备,例如eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动盘;磁光盘;以及cd rom和dvd rom盘。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
[0600]
虽然本专利文件包含许多细节,但不应将其解释为对任何主题或权利要求范围的限制,而应解释为对特定技术的特定实施例的具体特征的描述。本专利文件在各单独实施例的语境下描述的某些特征也可以在单个实施例中组合实施。相反地,在单个实施例的语境下描述的各种特征也可单独地或者以任何合适的子组合的形式在多个实施例中实现。此外,虽然某些特征可能在上面被描述为以某些组合来起作用并且甚至最初也这样地来要求对其的权利保护,但是来自要求权利保护的组合的一个或多个特征在某些情况下可从该组合中去除,并且要求权利保护的组合可涉及子组合或子组合的变型。
[0601]
类似地,虽然操作在附图中以特定次序示出,但不应将这种情况理解为需要以相继次序或所示的特定次来执行此类操作,或者需要执行所有所示的操作以实现期望的结果。此外,在本专利文件中描述的实施例当中对各种系统部件的划分不应被理解为在所有实施例中都要求这样的划分。
[0602]
仅描述了几种实施方式和示例,其他实施方式、增强和变化可以基于本专利文件中描述和说明的内容做出。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1