视频编解码中的重要系数信令的制作方法

文档序号:28595399发布日期:2022-01-22 10:15阅读:121来源:国知局
视频编解码中的重要系数信令的制作方法
视频编解码中的重要系数信令
1.相关申请的交叉引用
2.根据适用的《专利法》和/或《巴黎公约》的规定,本技术及时要求于2019年6月9日提交的国际专利申请号no.pct/cn2019/090455的优先权和利益。根据法律规定的目的,将上述申请的全部公开以参考方式并入本文,作为本技术公开的一部分。
技术领域
3.本专利文件涉及图像和视频编码/解码技术、设备和系统。


背景技术:

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


技术实现要素:

5.描述了涉及数字视频编解码的设备、系统和方法,特别是涉及视频编解码的重要系数的信令的设备、系统和方法。所述方法可应用于现有视频编解码标准(例如,高效视频编解码(hevc))和未来视频编解码标准(例如,多功能视频编解码(vvc))或编解码器。
6.在一个代表性方面,所公开的技术可用于提供一种用于视觉媒体处理的方法。所述方法包括:根据条件信令规则执行视觉媒体数据的当前视频块和视觉媒体数据的比特流表示之间的转换,其中,禁止当前视频块使用帧内子块分割(isp)划分模式,isp划分模式取决于当前视频块的维度将当前视频块垂直或水平地划分为多个子块,其中,在转换与禁用isp划分模式相关联的情况下,条件信令规则指定在比特流表示中选择性地包括第一语法元素,第一语法元素指示当前视频块的子块的亮度分量包括非零系数值,并且进一步地,其中选择性地包括至少基于比特流表示中包括的一个或多个先前子块的具有非零系数值的一个或多个其他语法元素。
7.在又一代表性方面,上述方法以处理器可执行代码的形式实施,并且存储在计算机可读的程序介质中。
8.在又一代表性方面,公开了一种设备,其被配置为或可操作以执行上述方法。该设备可以包括被编程以实现该方法的处理器。
9.在又一代表性方面,一种视频解码器装置,其可以实现如本文所述的方法。
10.在又一代表性方面,一种视频编码器装置,其可以实现如本文所述的方法。
11.在附图、说明书和权利要求书中更详细地描述了所公开技术的上述方面、以及其他方面和特征。
附图说明
12.图1示出了示例编码器的框图。
13.图2示出了67个帧内预测模式的示例。
14.图3示出了4
×
8和8
×
4块的划分的示例。
15.图4示出了除4
×
8、8
×
4和4
×
4以外的所有块的划分的示例。
16.图5示出了子块变换模式sbt-v和sbt-h的示例。
17.图6示出了用于4
×
4编解码组的对角线右上扫描顺序的示例。
18.图7示出了编解码组的尺寸为4
×
4的8
×
8块的对角线右上扫描顺序的示例。
19.图8示出了用于选择概率模型的模板的示例。
20.图9示出了用于相关量化的两个标量量化器的示例。
21.图10示出了用于所提出的相关量化处理的状态转换和量化器选择的示例。
22.图11示出了用于视频处理的示例方法的流程图。
23.图12是用于实现本文中描述的视觉媒体解码或视觉媒体编码技术的硬件平台的示例的框图。
24.图13是其中可以实现所公开的技术的示例性视频处理系统的框图。
25.图14示出了用于视觉媒体处理的示例方法的流程图。
具体实施方式
26.所公开技术的实施例可以应用于现有的视频编解码标准(例如,hevc,h.265)和未来的标准,以提高压缩性能。为了提高描述的可读性,在本文中使用了章节标题,并且不以任何方式将讨论或实施例(和/或实现)仅限于各个章节。
27.1.概述
28.本文涉及视频编解码技术。具体而言,其涉及视频编解码中的变换跳过模式中的系数编解码。它可以应用于现有的视频编解码标准,例如hevc,或者待定的标准(多功能视频编解码)。它也可适用于未来的视频编解码标准或视频编解码器。
29.2.视频编解码介绍
30.由于对高分辨率视频的需求持续增长,视频编解码方法和技术在现代技术中无处不在。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且正在不断改进以提供更高的编解码效率。视频编解码器将未压缩的视频转换为压缩格式,反之亦然。视频质量、用于表示视频的数据量(由比特率决定)、编码和解码算法的复杂度、对数据丢失和错误的敏感度、易于编辑、随机访问和端到端延迟(时延)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如,高效视频编解码(hevc)标准(也称为h.265或mpeg-h第2部分)、待定的多功能视频编解码(vvc)标准,或其他当前和/或未来的视频编解码标准。
31.视频编解码标准主要通过开发众所周知的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)[3][4]的参考软件中。2018年4月,vceg(q6/16)和iso/iec jtc1 sc29/wg11(mpeg)之间的联合视频专家团队(jvet)成立,以致力于目标是与hevc相比其降低50%比特率的多功能视频编
解码(vvc)标准。
[0032]
2.1典型视频编解码器的编解码流程
[0033]
图1示出了vvc的编码器框图的示例,其包含三个环内滤波块:去方块滤波器(df)、采样自适应偏移(sao)和alf。与使用预定义滤波器的df不同,sao和alf通过分别添加偏移量和应用有限脉冲响应(fir)滤波器,利用编码侧信息来信令通知偏移量和滤波器系数,利用当前图片的原始样点来减少原始样点和重构样点之间的均方差。alf位于每个图片的最后处理阶段,并且可以看作是试图捕获和修复由先前阶段创建的成果的工具。
[0034]
2.2vvc中的帧内编解码
[0035]
2.2.1具有67种帧内预测模式的帧内模式编解码
[0036]
为了捕获自然视频中呈现的任意边缘方向,将方向帧内模式的数量从hevc中使用的33个扩展到65个。在图2中,附加的方向模式被描绘为红色虚线箭头,并且平面(planar)模式和dc模式保持相同。这些更密集的方向帧内预测模式适用于所有块尺寸以及亮度和色度帧内预测。
[0037]
如图2所示,传统的角度帧内预测方向被定义为在顺时针方向上从45度到-135度。在vtm 2中,对于非正方形块,自适应地用广角度帧内预测模式替代传统的角度帧内预测模式。使用原始方法信令通知替代的模式,并且在解析之后将其重新重新映射到广角模式的索引。帧内预测模式的总数不变,即67,并且帧内模式编解码不变。
[0038]
在hevc中,每个帧内编解码块都是正方形的,并且其每个边的长度是2的幂。因此,使用dc模式生成帧内预测器不需要划分操作。在vvv2中,块可以是矩形,在一般情况下需要对每个块使用划分操作。为了避免dc预测的划分操作,只使用较长的边来计算非正方形块的平均值。
[0039]
除了67种帧内预测模式之外,还针对某些块启用了非方形块的广角帧内预测(waip)和位置相关的帧内预测组合(pdpc)方法。在没有信令的情况下将pdpc应用于以下帧内模式:平面、dc、水平、垂直、左下角模式及其八个相邻角模式、以及右上角模式及其八个相邻角模式。
[0040]
2.2.2帧内子块分割(isp)
[0041]
在jvet-m0102中提出了isp,其取决于块尺寸维度将亮度帧内预测块垂直或水平划分为2个或4个子分割,如表1所示。图3和图4示出了这两种可能性的示例。所有子分割满足具有至少16个样点的条件。对于块尺寸4xn或nx4(n》8),如果允许,可以存在1xn或nx1的子分割。
[0042]
表1:取决于块尺寸的子分割的数目(用maxtbsize表示最大变换尺寸)
[0043][0044]
对于这些子分割中的每一个子分割,通过对编码器发送的系数进行熵解码,然后
对其进行逆量化和逆变换,来生成残差信号。然后,对子分割进行帧内预测,并且最后通过将残差信号添加到预测信号中来得到相应的重构样点。因此,每个子分割的重构值将可用于生成下一个子分割的预测,将重复该处理等。所有子分割共享相同的帧内模式。
[0045]
表2:取决于predmodeintra的trtypehor和trtypever的规范
[0046][0047]
2.2.2.1语法和语义
[0048]
7.3.7.5编解码单元语法
[0049]
[0050][0051]
intra_subpartitions_mode_flag[x0][y0]等于1指定当前帧内编解码单元被分割为numintrasubpartitions[x0][y0]个矩形变换块子分割。intra_subpartitions_mode_flag[x0][y0]等于0指定当前帧内编解码单元未被分割为矩形变换块子分割。
[0052]
当intra_subpartitions_mode_flag[x0][y0]不存在时,它被推断为等于0。
[0053]
intra_subpartitions_split_flag[x0][y0]指定帧内子分割划分类型是水平还是垂直。当intra_subpartitions_split_flag[x0][y0]不存在时,推断如下:
[0054]-如果cbheight大于maxtbsizey,则推断intra_subpartitions_split_flag[x0][y0]等于0。
[0055]-否则(cbwidth大于maxtbsizey),则推断intra_subpartitions_split_flag[x0][y0]等于1。
[0056]
变量intrasubpartitionssplittype指定用于当前亮度编解码块的划分类型,如表7-9所示。intrasubpartitionssplittype推导如下:
[0057]-如果intra_subpartitions_mode_flag[x0][y0]等于0,则将intrasubpartitionssplittype设置为等于0。
[0058]-否则,将intrasubpartitionssplittype设置为等于1+intra_subpartitions_split_flag[x0][y0]。
[0059]
表7-9:与intrasubpartitionssplittype的名称关联
[0060]
intrasubpartitionssplittypeintrasubpartitionssplittype的名称0isp_no_split1isp_hor_split2isp_ver_split
[0061]
变量numintrasubpartitions指定帧内亮度编解码块被划分的变换块子分割的数量。numintrasubpartitions推导如下:
[0062]-如果intrasubpartitionssplittype等于isp_no_split,则将numintrasubpartitions设置为等于1。
[0063]-否则,如果以下条件之一为真,则将numintrasubpartitions设置为等于2:
[0064]-cbwidth等于4,并且cbheight等于8,
[0065]-cbwidth等于8,并且cbheight等于4。
[0066]-否则,将numintrasubpartitions设置为等于4。
[0067]
2.3色度帧内模式编解码
[0068]
对于色度帧内模式编解码,取决于是否启用跨分量线性模型(cclm),色度帧内模式编解码总共允许8个或5个帧内模式。这些模式包括五种传统的帧内模式和三种跨分量线性模型模式。色度dm模式使用相应的亮度帧内预测模式。由于在i条带中为亮度和色度分量启用了单独的块分割结构,一个色度块可以对应于多个亮度块。因此,对于色度dm模式,直接继承覆盖当前色度块的中心位置的对应亮度块的帧内预测模式。
[0069]
表8-2:当sps_cclm_enabled_flag等于0时,取决于intra_chroma_pred_mode[xcb][ycb]和intrapredmodey[xcb+cbwidth/2][ycb+cbheight/2]的intrapredmodec[xcb][ycb]的规范
[0070][0071]
表8-3:当sps_cclm_enabled_flag等于1时,取决于intra_chroma_pred_mode[xcb][ycb]和intrapredmodey[xcb+cbwidth/2][ycb+cbheight/2]的intrapredmodec[xcb][ycb]的规范
[0072][0073]
2.4 vvc中的变换编解码
[0074]
2.4.1子块变换
[0075]
对于cu_cbf等于1的帧间预测cu,可以信令通知cu_sbt_flag,以指示是否解码整个残差块或残差块的子部分。在前一种情况下,进一步解析帧间mts信息以确定cu的变换类型。在后一种情况下,用推断出的自适应变换对残差块的部分进行编解码,并将残差块的其
它部分归零。不将sbt应用于组合帧间帧内模式。
[0076]
在子块变换中,将位置相关变换应用于sbt-v和sbt-h中的亮度变换块(色度tb始终使用dct-2)。sbt-h和sbt-v的两个位置与不同的核心变换相关联。更具体地,图3指定了每个sbt位置的水平和垂直变换。例如,sbt-v位置0的水平和垂直变换分别为dct-8和dst-7。当其余tu的一侧大于32时,将相应的变换设置为dct-2。因此,子块变换共同指定残差块的tu片、cbf以及水平和垂直变换,对于块的主要残差在块的一侧的情况,这可以被视为语法快捷方式。
[0077]
2.4.1.1语法元素
[0078]
7.3.7.5编解码单元语法
[0079]
[0080]
[0081][0082]
cu_sbt_flag等于1指定对于当前编解码单元使用子块变换。cu_sbt_flag等于0指定对于当前编解码单元不使用子块变换。
[0083]
当cu_sbt_flag不存在时,它的值被推断为等于0。
[0084]
注:当使用子块变换时,编解码单元被划分成两个变换单元;一个变换单元有残差数据,另一个单元没有残差数据。
[0085]
cu_sbt_quad_flag等于1指定对于当前编解码单元,子块变换包括当前编解码单元的1/4尺寸的变换单元。cu_sbt_quad_flag等于0指定对于当前编解码单元,子块变换包括当前编解码单元的1/2尺寸的变换单元。
[0086]
当cu_sbt_quad_flag不存在时,它的值被推断为等于0。
[0087]
cu_sbt_horizontal_flag等于1指定将当前编解码单元水平划分为2个变换单元。cu_sbt_horizontal_flag[x0][y0]等于0指定将当前编解码单元垂直划分为2个变换单元。
[0088]
当cu_sbt_horizontal_flag不存在时,其值推导如下:
[0089]-如果cu_sbt_quad_flag等于1,则将cu_sbt_horizontal_flag设置为等于allowsbthorq。
[0090]-否则(cu_sbt_quad_flag等于0),将cu_sbt_horizontal_flag设置为等于allowsbthorh。
[0091]
cu_sbt_pos_flag等于1指定当前编解码单元中的第一个变换单元的tu_cbf_luma、tu_cbf_cb和tu_cbf_cr不在比特流中。cu_sbt_pos_flag等于0指定当前编解码单元中的第二个变换单元的tu_cbf_luma、tu_cbf_cb和tu_cbf_cr不在比特流中。
[0092]
变量sbtnumfourthstb0推导如下:
[0093]
sbtminnumfourths=cu_sbt_quad_flag?1:2(7-117)
[0094]
sbtnumfourthstb0=cu_sbt_pos_flag?(4-sbtminnumfourths):sbtminnumfourths(7-118)
[0095]
sps_sbt_max_size_64_flag等于0指定允许子块变换的最大cu宽度和高度为32个亮度样点。sps_sbt_max_size_64_flag等于1指定允许子块变换的最大cu宽度和高度为64个亮度样点。
[0096]
maxsbtsize=sps_sbt_max_size_64_flag?64:32(7-33)
[0097]
2.5系数的熵编解码
[0098]
2.5.1变换应用块的系数编解码
[0099]
在hevc中,使用非重叠系数组(或子块)对编解码块的变换系数进行编解码,并且每个系数组(cg)包含编解码块的4x4块的系数。根据预先定义的扫描顺序对编解码块中的
cg和cg内的变换系数进行编解码。
[0100]
根据预先定义的扫描顺序对编解码块中的cg和cg内的变换系数进行编解码。cg和cg内的系数都遵循右上角扫描顺序。图6和图7分别示出了4x4块和8x8扫描顺序的示例。
[0101]
应当注意的是,编解码顺序是反向扫描顺序(即图7中从cg3到cg0解码),当解码一个块时,首先解码最后一个非零系数的坐标。
[0102]
具有至少一个非零变换系数的cg的变换系数水平的编解码可以被分成多遍扫描。在第一遍中,对第一个二进制数(用bin0表示,也被称为significant_coeff_flag,其指示表示系数的大小大于0)进行编解码。接下来,可以应用两遍扫描来对第二/第三个二进制数(分别由bin1和bin2表示,也被称为coeff_abs_greater1_flag和coeff_abs_greater2_flag)进行上下文编解码。最后,如有必要,再调用两遍扫描来编解码系数水平的符号信息和剩余值(也称为coeff_abs_level_remaining)。注意,只有前三遍扫描中的二进制数以常规模式编解码,并且在以下描述中,这些二进制数被称为常规二进制数。
[0103]
在vvc 3中,对于每个cg,按编解码顺序将常规编解码的二进制数和旁路编解码的二进制数分开;首先传输子块的所有常规编解码的二进制数,然后再传输旁路编解码的二进制数。在扫描位置上在以下五遍中对子块的变换系数水平进行编解码:
[0104]

第1遍:按编解码顺序处理重要性(sig_flag)、大于1标志(gt1_flag)、奇偶性(par_level_flag)和大于2标志(gt2_flag)的编解码。如果sig_flag等于1,则首先对gt1_flag进行编解码(它指定绝对水平是否大于1)。如果gt1_flag等于1,则另外对par_flag进行编解码(它指定绝对水平减去2的奇偶性)。
[0105]

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

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

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

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

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

1;
[0112]

否则(abslevel[k]大于poszero),则将codevalue设置为等于abslevel[k]。
[0113]
使用golomb-rice码和rice参数ricepar对codevalue的值进行编解码。
[0114]
2.5.1.1用于系数编解码的上下文建模
[0115]
与变换系数水平的绝对值相关的语法元素的概率模型的选择取决于局部邻域中绝对水平或部分重构的绝对水平的值。使用的模板如图8所示。
[0116]
所选择的概率模型取决于局部邻域中的绝对水平(或部分重构的绝对水平)之和、以及局部邻域中大于0的绝对水平数量(由等于1的sig_coeff_flag的数量给出)。上下文建模和二值化取决于以下局部邻域的以下度量:
[0117]

numsig:局部邻域中非零水平的数量;
[0118]

sumabs1:局部邻域中第一遍后部分重构的绝对水平(abslevel1)之和;
[0119]

sumabs:局部邻域中重构的绝对水平之和;
[0120]

对角线位置(d):变换块内当前扫描位置的水平和垂直坐标的之和。
[0121]
基于numsig、sumabs1和d的值,选择用于对sig_flag、par_flag、gt1_flag、和gt2_flag进行编解码的概率模型。基于sumabs和numsig的值,选择用于将abs_remainder进行二进制化的rice参数。
[0122]
2.5.1.2相关量化(dq)
[0123]
此外,将相同的hevc标量量化与称为相关标量量化的新概念一起使用。相关标量量化是指一种方法,其中变换系数的可容许重构值的集合取决于在重构顺序中位于当前变换系数水平之前的变换系数水平的值。这种方法的主要效果是,与hevc中使用的传统独立标量量化相比,可容许的重构矢量在n维矢量空间中被打包得更密集(n表示变换块中变换系数的数量)。这意味着,对于给定的每n维单位体积的可容许重构矢量的平均数量,输入矢量和最近的重构矢量之间的平均失真减小。相关标量量化的方法通过以下实现:(a)定义两个具有不同重构水平的标量量化器;并且(b)定义用于在两个标量量化器之间的切换的处理。
[0124]
所使用的两个标量量化器(用q0和q1表示)如图9所示。可用重构水平的位置由量化步长δ唯一地指定。在比特流中不显式地信令通知所使用的标量量化器(q0或q1)。相反,用于当前变换系数的量化器由在编码/重构顺序中位于当前变换系数之前的变换系数水平的奇偶性来确定。
[0125]
如图10所示,通过具有四个状态的状态机来实现两个标量量化器(q0和q1)之间的切换。状态可以采用四个不同的值:0、1、2、3。它由在编码/重构顺序中位于当前变换系数之前的变换系数水平的奇偶性唯一地确定。在变换块的逆量化开始时,将状态设置为等于0。变换系数按扫描顺序重构(即,按其被熵解码的相同顺序)。在重构当前变换系数之后,如图10所示更新状态,其中k表示变换系数水平的值。
[0126]
2.5.1.3语法和语义
[0127]
7.3.7.11残差编解码语法
[0128]
[0129]
[0130]
[0131]
[0132][0133]
2.5.2 jvet-n0492
[0134]
本贡献提出了对vvc4规范和vtm 4.0.1软件的修改,旨在部分消除它们之间cbf标志信令的不一致性。本贡献包括两个方面。第一方面提出了基于变换单元深度从vtm软件中移除分层色度cbf信令,这没有在规范中呈现;并且在规范中包括基于色度cbf标志为正常tu和sbt tu推导缺失亮度cbf标志的方法,这呈现在软件中。第二个方面是在第一方面的基础上提出的,并且假设了所有现有的亮度cbf标志推导方法的统一设计。与vtm 4.0.1相比,这两个方面都提供了可忽略的编解码性能差异。
[0135]
这一贡献包括两个方面。
[0136]
在第一方面,提出了软件和规范二者的修改。在软件方面,提出了基于变换单元深度移除分层色度cbf信令,该信令是从next/jem数次继承到vtm的。在规范方面,提出了包括基于两个色度cbf标志推导亮度cbf标志的方法。
[0137]
2.6方面1
[0138]
vvc 4中呈现的tu存在四种可能性:
[0139]
1.等于cu尺寸的正常tu(无划分);
[0140]
2.sbt tu分割;
[0141]
3.isp tu分割;
[0142]
4.由最大变换尺寸限制引起的tu分割。
[0143]
下表展示了这些可能性。
[0144]
表3:vvc 4变换树语法表
[0145][0146][0147]
表3:vvc 4变换单元语法表
[0148][0149]
可以注意到,根据表3和表4,亮度和色度cbf信令都独立于彼此执行,并且色度cbf标志不存在分层相关性。
[0150]
从软件的角度来看,vtm 4.0.1包括上述两个方面。
[0151]
在vtm 4.0.1中测试了分层色度cbf信令方法,并且结果表明对编解码效率的影响可以忽略不计。另一方面,对这个特征的支持需要在软件和规范中附加非平凡的逻辑。提出从软件中移除分层色度cbf信令方法,并将亮度cbf推导包括在规范中。
[0152]
下表展示了修改后的语法表。
[0153]
表5:提出的的转换单元语法表(方面1)
[0154][0155]
2.7方面2
[0156]
可以注意到,当前版本的软件对除了由最大变换尺寸限制引起的分割之外的所有可能的变换单元分割方法使用亮度cbf推导。为了设计统一,方面2提出了为划分的tu应用相似的亮度cbf推导方法,以满足最大tu限制。这种统一可以共享为isp推导的最后亮度cbf的现有机制。下表展示了所提出的修改。
[0157]
表6:提出的变换单元语法表(方面2)
[0158][0159]
2.8 jvet-n0054:色度残差的联合编解码
[0160]
如果cb和cr的编解码块标志(cbf)均为真,则在比特流中用标志指示联合残差模式。如果该模式被激活,则对单个残差块进行解码。联合残差块的比特流语法和解码处理遵循vtm-4中cb残差的比特流流语法和解码处理。通过对解码的联合残差求反来生成cr块的残差。由于单个残差被用来表示两个块的残差,因此,对于该模式来说,通常需要使用低于用于对色度残差进行单独编解码的qp的qp。在ce测试中,联合模式使用的色度qp偏移量为-1,并且单独色度编解码使用+1(如jvet通用测试条件所规定的)。
[0161]
该模式的解码器侧功能可以在vtm decoderlib中如下实现:
[0162]
新函数:
[0163][0164]
如果色度整形器处于活动状态,则与在单独编解码模式下所做的一样,对接收到的残差应用整形(即,对联合残差信号进行整形)。在编码器侧,在测试此模式时,将正cb残差和负cr残差的平均值用作联合残差:
[0165]
resjoint=(rescb

rescr)/2
[0166]
还应注意到,当联合残差不太可能是最佳编码替代方案时,通过检查残差之间的相互关系并且通过避免进入变换和rdoq阶段来提高编码器的速度是有可能的。
[0167]
3.现有实现的缺点
[0168]
目前的设计存在以下问题:
[0169]
对于单树情况,根编解码块标志(root cbf)(例如,jvet-n1001-v7中的cu_cbf)用于指示编解码单元(cu)中是否存在至少一个非零系数(即,在非单色情况下,包括对应于3个颜色分量的块)。
[0170]
对于双树情况,亮度颜色分量的根cbf(表示为luma-root cbf)(例如,在jvet-n1001-v7中,在用双树编解码结构编解码亮度分量时的cu_cbf)用于指示亮度块中是否存在至少一个非零系数。色度颜色分量的根cbf(表示为chroma-root cbf)(例如,在jvet-n1001-v7中,在用双树编解码结构编解码色度分量时的cu_cbf)用于指示色度块中是否存在至少一个非零系数。
[0171]
当root cbf为1时,对cu的一个或多个变换块进行编解码。并且为变换块信令通知或推断cbf,以指示变换块中是否存在至少一个非零系数。具体地,luma-cbf(例如,jvet-n1001-v7中的tu_cbf_luma)指示亮度变换块中是否存在至少一个非零系数。cb-cbf(例如,jvet-n1001-v7中的tu_cbf_cb)指示cb变换块中是否至少存在一个非零系数。cr-cbf(例如,jvet-n1001-v7中的tu_cbf_cr)指示cr变换块中是否存在至少一个非零系数。
[0172]
1.在双树结构中,可以信令通知luma-root cbf和chroma-root cbf二者。然而,就编解码效率而言,它可能是次优的。
[0173]
2.当应用联合cb-cr编解码时,只能对一个色度块的残差信息进行编解码。然而,在当前的设计中,cb和cr的cbf都被信令通知,这导致了较低的效率。
[0174]
3.当cu被划分成超过一个变换块时,存在两种情形。如果应用isp,则当root cbf等于1时,变换块的至少一个cbf必须为1。在其他情况下,当root cbf等于1时,变换块的所有cbf都可以等于0。
[0175]
4.在双树情况下,当cu_cbf等于0且tu_cbf_cb等于0时,tu_cbf_cr应为非零。然而,在这种情况下,仍然信令通知tu_cbf_cr。
[0176]
4.信令通知重要系数的示例方法
[0177]
本公开技术的实施例克服了现有实现的缺点,从而提供具有更高编解码效率的视频编解码。在以下针对各种实现方式描述的示例中,阐述了基于所公开的技术的可以增强现有和未来的视频编解码标准的用于信令通知重要系数的方法。
[0178]
下面提供的公开技术的示例解释了一般概念,并不意味着被解释为限制性的。在示例中,除非明确表示相反,否则可以组合这些示例中描述的各种特征。
[0179]
在下面的讨论中,cu可以包括将单树编解码结构与所有三个颜色分量相关联的信息。或者cu可以包括仅将单色编解码与亮度颜色分量相关联的信息。或者,cu可以包括仅将双树编解码结构与亮度颜色分量(例如,ycbcr格式的y分量或gbr格式的g分量)相关联的信息。或者cu可以包含仅将双树编解码结构与两个色度分量(例如,ycbcr格式的cb和cr分量、或gbr格式的b和r分量)相关联的信息。
[0180]
在下面的描述中,“块”可以指编解码单元(cu)或变换单元(tu)或视频数据的任何矩形区域。“当前块”可以是指当前正在被解码/编码的编解码单元(cu)、或者当前正在被解码/编码的变换单元(tu)、或者任何正在被解码/编码的视频数据的编解码矩形区域。“cu”或“tu”也可以称为“编解码块”和“变换块”。
[0181]
关于root cbf
[0182]
1.指示cu中是否存在非零系数的(root cbf)的信令(诸如jvet-n1001-v7中的cu_cbf)可取决于是使用单树还是双树。
[0183]
a.在一个示例中,当应用双树时,不信令通知luma-root cbf。
[0184]
i.可选地,此外,不管luma-root cbf的值如何,都信令通知luma-cbf。
[0185]
b.在一个示例中,当应用双树时,不信令通知chroma-root cbf。
[0186]
i.可选地,此外,无论chroma-root cbf的值如何,都信令通知cb-cbf。
[0187]
ii.可选地,此外,不管chroma-root cbf的值如何,都信令通知cr-cbf。
[0188]
2.双树下cu的root cbf或luma-root cbf/chroma-root cbf的信令可取决于是否应用帧内块复制(ibc)。
[0189]
a.双树下cu的root cbf或luma-root cbf/chroma-root cbf的信令可取决于是否应用了排除ibc的帧间预测。
[0190]
b.当对cu使用ibc时,不信令通知cu的root cbf。
[0191]
i.可选地,此外,它被推断为等于luma-cbf或(cb-cbf或cr-cbf)。
[0192]
ii.可选地,此外,仅当启用双树时,可以应用上述方法。
[0193]
c.可选地,仅当cu以帧间模式编解码时,才会信令通知向cu的root cbf。
[0194]
3.如果chroma-root cbf为1且当前cu为双树结构中的色度cu,则可以有条件地信令通知cb-cbf(诸如jvet-n1001-v7中的tu_cbf_cb)和cr-cbf(诸如jvet-n1001-v7中的tu_cbf_cr)。
[0195]
a.在一个示例中,cr-cbf的信令取决于cb-cbf。
[0196]
i.在一个示例中,如果cb-cbf为0,则不信令通知cr-cbf。
[0197]
1)例如,cr-cbf被推断为1。
[0198]
b.在一个示例中,cbf-cb的信令取决于cr-cbf。
[0199]
i.在一个示例中,如果cr-cbf为0,则不信令通知cb-cbf。
[0200]
1)例如,cb-cbf被推断为1。
[0201]
c.cb-cbf和/或cr-cbf的信令还可取决于块维度。
[0202]
i.只有当当前cu/tu的宽度和高度都不大于最大变换尺寸时,才可以应用第3.a和/或3.b项。
[0203]
4.当luma-root cbf为1时,可以基于当前cu是否为双树结构中的亮度cu,有条件地信令通知luma-cbf(诸如jvet-n1001-v7中的tu_cbf_luma)。
[0204]
a.当当前cu为双树结构中的亮度cu且luma-root cbf为1时,不信令通知luma-cbf。
[0205]
i.例如,luma-cbf被推断为1。
[0206]
b.luma-cbf的信令还可取决于块维度。
[0207]
i.仅当当前cu的宽度和高度都不大于最大变换尺寸时,才应用第4.a项。
[0208]
5.对于上述示例,语法的信令可以指示是否信令通知该语法。可选地,语法的信令可以包括用于编解码该语法的上下文。
[0209]
关于色度cbf和联合色度残差编解码
[0210]
6.可以在信令通知cb-cbf和cr-cbf之前信令通知与联合色度残差编解码相关的语法元素(例如,该工具的使用)。
[0211]
a.在一个示例中,可以取决于联合色度残差编解码的指示信令通知cb-cbf和cr-cbf。
[0212]
i.在一个示例中,当应用联合色度残差编解码时,可以不信令通知cb-cbf和cr-cbf。
[0213]
1)例如,当应用联合色度残差编解码时,cb-cbf和cr-cbf被推断为1。
[0214]
b.在一个示例中,这种方法只适用于双树的情况。
[0215]
7.可以在cx-cbf之后但在cy-cbf之前信令通知联合色度残差编解码相关语法元素的指示(例如,该工具的使用)。在一个示例中,cx=cb,cy=cr。在第二个示例中,cx=cr,cy=cb。
[0216]
a.在一个示例中,可以取决于cx-cbf来信令通知联合色度残差编解码的指示。
[0217]
i.在一个示例中,当cx-cbf为0时,可以不信令通知联合色度残差编解码的指示。
[0218]
1)例如,当cx-cbf为0时,可以推断为不应用联合色度残差编解码。
[0219]
b.在一个示例中,可以取决于联合色度残差编解码的指示来信令通知cy-cbf。
[0220]
i.在一个示例中,当应用联合色度残差编解码时,可以不信令通知cy-cbf。
[0221]
1)例如,当应用联合色度残差编解码时,cy-cbf被推断为1。
[0222]
c.可选地,此外,可以跳过root cbf或chroma-root cbf的信令。
[0223]
8.可以根据编解码信息有条件地信令通知与联合色度残差编解码相关的语法元素(例如,该工具的使用)。
[0224]
a.可以在编解码模式的条件下信令通知与联合色度残差编解码相关的语法元素。
[0225]
i.在一个示例中,如果用ibc对块进行编解码,则可不信令通知与联合色度残差编解码相关的语法元素。
[0226]
1)可选地,此外,对于ibc编解码的块,可以推断联合色度残差编解码被禁用。
[0227]
ii.在一个示例中,如果块用帧间编解码,则可不信令通知与联合色度残差编解码相关的语法元素。
[0228]
1)可选地,此外,对于帧间编解码块,可以推断联合色度残差编解码被禁用。
[0229]
iii.在一个示例中,只有当色度块用cclm模式编解码时,才可以信令通知与联合色度残差编解码相关的语法元素。
[0230]
iv.在一个示例中,如果色度块用cclm模式编解码,则可不信令通知与联合色度残差编解码相关的语法元素。
[0231]
1)可选地,此外,可以将联合色度残差编解码推导为被启用。
[0232]
2)可选地,此外,可以从为cb和cr导出的cclm参数推导在联合色度残差编解码中使用的参数。
[0233]
b.是否信令通知与联合色度残差编解码相关的语法元素可取决于无损编解码的条件。
[0234]
i.在一个示例中,如果用无损编解码对块进行编解码,则可不信令通知与联合色度残差编解码相关的语法元素。
[0235]
1)联合色度残差编解码被推断为禁用。
[0236]
c.联合色度残差编解码和无损编解码被互斥地用于块。
[0237]
i.可选地,此外,可以在联合色度残差编解码的使用为假(false)的条件下信令通知与无损编解码相关语法元素。
[0238]
1)在一个示例中,如果联合色度残差编解码被启用,则不信令通知与无损编解码相关的语法元素并且将其推断为被禁用。
[0239]
d.可以在序列/图片/条带/片组/片级别(诸如dps/vps/sps/pps/aps/图片标头/条带标头/片组标头中)信令通知是否应用联合色度残差编解码。
[0240]
i.在一个示例中,如果在序列/图片/条带/片组/片级别禁用了联合色度残差编解码,则可以不在块级别信令通知与联合色度残差编解码相关的语法元素(例如,jvet-n1001-v7中的tu_joint_cbcr_residual)。
[0241]
超过一个变换块的编解码
[0242]
9.当当前cu未使用isp模式编解码时,是否信令通知luma-cbf可取决于cu中先前信令通知的luma-cbf。
[0243]
a.在一个示例中,如果与cu中的其他子块相关联的所有先前信令通知的luma-cbf都为零,则可不信令通知与cu中的最后一个子块相关联的luma-cbf。
[0244]
i.在一个示例中,最后一个luma-cbf可以被推断为1。
[0245]
ii.在一个示例中,仅当luma-root cbf被信令通知为1时,才应用第9项。
[0246]
iii.在一个示例中,仅当应用双树结构时才应用第9项。
[0247]
10.是否信令通知cx-cbf可取决于cu当当前cu中先前信令通知的cb-cbf和cr-cbf,其中cx可以是cb或cr。
[0248]
a.在一个示例中,如果cu中先前信令通知的所有cb-cbf和cr-cbf都为零,则可以不信令通知cu中的最后一个cx-cbf。
[0249]
i.在一个示例中,最后一个cx-cbf可以被推断为1。
[0250]
ii.在一个示例中,仅当chroma-root cbf被信令通知为1时,才应用第10项。
[0251]
iii.在一个示例中,仅当应用双树结构时才应用第10项。
[0252]
11.当当前cu未使用isp模式编解码时,允许cu中的所有luma-cbf都等于0。
[0253]
a.在一个示例中,当当前cu用isp模式编解码时,从cu中先前信令通知的luma-cbf分离出luma-cbf的信令。
[0254]
12.可以不信令通知sbt编解码的cu中的luma-cbf并将其推断为1,例如,只有当cu具有非零亮度残差时,才允许sbt。
[0255]
a.在一个示例中,这种约束可以应用于某些特定的块尺寸。
[0256]
i.可选地,此外,可以针对不同的sbt模式设计不同的块尺寸。
[0257]
增量qp更改
[0258]
13.提出在用isp模式编解码的cu中,可以为每个子块信令通知单独的增量qp信息。
[0259]
a.例如,当子块中的至少一个系数不等于0时,为用isp模式编解码的cu中的子块信令通知单独的增量qp信息。
[0260]
14.提出在isp模式编解码的cu中,无论第一个子块(或tu)中是否存在非零系数,都可以仅为第一子块(或tu)信令通知增量qp信息。
[0261]
15.提出无论第一个tu中是否存在非零系数,都可以仅为具有超过一个tu的cu中的第一个tu信令通知增量qp信息。
[0262]
a.是否应用第15项可取决于当前cu的维度w
×
h。例如,如果w大于t1或h大于t2,则可以应用第15项。例如,t1=t2=64。在另一个示例中,t1和t2等于允许的最大变换尺寸。
[0263]
16.当在一个cu内有多个tu时,可以多次信令通知增量qp。
[0264]
a.在一个示例中,可以按照编解码顺序为第一个tu信令通知增量qp。
[0265]
b.在一个示例中,如果root cbf等于1,则可以为其余tu信令通知增量qp。
[0266]
c.在一个示例中,如果tu_cbf_luma等于1,则可以为其余tu信令通知增量qp。
[0267]
17.当在一个cu内有多个tu,并且为tu信令通知一次增量qp时,其余tu的增量qp的设置可采用以下方法:
[0268]
a.在一个示例中,可将其余tu的增量qp设置为等于信令通知的增量qp。
[0269]
b.可选地,可将其余tu的增量qp设置为等于0。
[0270]
较大块的处理
[0271]
18.当ctu尺寸大于最大变换块尺寸时,当应用单树结构时,不同颜色分量的划分模式可以不同。假设允许的最大变换尺寸为t,并且所考虑的cu(或ctu)的维度为m
×
n(亮度样点单位)。
[0272]
a.例如,如果m大于t或n大于t,则可以进一步划分亮度块,但是对应的色度块可以不被划分。
[0273]
i.在一个示例中,假设从色度样点到亮度样点的水平和垂直缩放因子是p和q(例如,当颜色格式为4:2:0时,p=q=2),如果m/p大于t或n/q大于t,则可以进一步划分色度块。否则,它们不会被进一步划分。
[0274]
ii.在一个示例中,如果ctu尺寸是128
×
128,最大变换块尺寸是64x64,则亮度块可以被划分成4个块,而色度块可以不被划分。
[0275]
图11示出用于视频处理的示例性方法的流程图。方法1100包括:基于当前块对分割结构的应用,做出(1102)关于在当前块的比特流表示中选择性地信令通知编解码块标志(cbf)决定;以及基于该决定执行(1104)当前块与当前块的比特流表示之间的转换。
[0276]
下面的示例列表提供了可以解决本文中描述的技术问题以及其他问题的实施例。
[0277]
1.一种用于视频处理的方法(例如,方法1100),包括:基于当前块对分割结构的应用,做出关于在当前块的比特流表示中选择性地信令通知编解码块标志(cbf)决定;以及基于该决定执行当前块与当前块的比特流表示之间的转换。
[0278]
2.根据示例1所述的方法,其中cbf包括亮度颜色分量的根cbf(luma-root cbf),当分割结构包括双树时,不信令通知luma-root cbf。
[0279]
3.根据示例1所述的方法,其中cbf包括色度颜色分量的根cbf(chroma-root cbf),当分割结构包括双树时,不信令通知chroma-root cbf。
[0280]
4.根据示例1所述的方法,其中分割结构包括双树,并且其中,所述决定还基于当前块对帧内块复制(ibc)模式的选择性应用。
[0281]
5.根据示例4所述的方法,其中cbf是当前块的根cbf(root cbf),当将ibc模式应用于当前块时,不信令通知root cbf。
[0282]
6.根据示例4所述的方法,其中cbf是当前块的root cbf,当当前块使用帧间模式编解码时,信令通知root cbf。
[0283]
7.根据示例1所述的方法,其中当前块是色度块,其中分割结构包括双树,其中当前块的chroma-root cbf是1,并且其中cbf包括cb-cbf和cr-cbf。
[0284]
8.根据示例7所述的方法,其中cb-cbf和cr-cbf的选择性信令还基于当前块的维度。
[0285]
9.根据示例1所述的方法,其中当前块是亮度块,其中分割结构包括双树,其中当前块的luma-root cbf是1,其中cbf包括luma-cbf。
[0286]
10.根据示例9所述的方法,其中luma-cbf的选择性信令还基于当前块的维度。
[0287]
11.根据示例8或10所述的方法,其中当前块的宽度和高度分别不大于最大变换尺寸的宽度和高度。
[0288]
12.根据示例1至11中任一项所述的方法,其中cbf的信令包括用于编解码cbf的上
下文。
[0289]
13.一种用于视频处理的方法,包括:为当前块和当前块的比特流表示之间的转换配置比特流表示,其中,所述配置包括在选择性地信令通知色度分量的编解码块标志(cbf)之前,在比特流表示中信令通知与联合色度残差编解码处理相关的一个或多个语法元素;以及基于所述配置执行转换。
[0290]
14.根据示例13所述的方法,其中色度分量的cbf包括cb-cbf和cr-cbf。
[0291]
15.根据示例13或14所述的方法,其中当对当前块应用联合色度残差编解码处理时,不信令通知色度分量的cbf。
[0292]
16.根据示例13或14所述的方法,其中当将联合色度残差编解码处理应用于当前块时,推断色度分量的cbf为1。
[0293]
17.根据示例13到16中任一项所述的方法,其中基于双树分割结构对当前块进行分割。
[0294]
18.根据示例13所述的方法,其中色度分量的cbf包括cx-cbf和cy-cbf,并且其中,在cy-cbf之前并且在cx-cbf之后信令通知一个或多个语法元素。
[0295]
19.根据示例18所述的方法,其中cx-cbf是cb-cbf,并且cy-cbf是cr-cbf。
[0296]
20.根据示例18所述的方法,其中cx-cbf是cr-cbf,并且cy-cbf是cb-cbf。
[0297]
21.根据示例13所述的方法,其中信令通知一个或多个语法元素基于当前块的编解码模式。
[0298]
22.根据示例21所述的方法,其中当使用跨分量线性模式(cclm)模式对当前块进行编解码时,信令通知一个或多个语法元素。
[0299]
23.根据示例21所述的方法,当使用无损编解码技术对当前块进行编解码时,不信令通知一个或多个语法元素。
[0300]
24.一种用于视频处理的方法,包括:基于当前块的编解码模式和一个或多个先前信令通知的cbf,做出关于选择性地信令通知编解码块标志(cbf)的的决定;以及基于该决定执行当前块与当前块的比特流表示之间的转换。
[0301]
25.根据示例24所述的方法,其中编解码模式是帧内子块分割(isp)模式,其中当前块包括(k+1)个子块,其中一个或多个先前信令通知的cbf包括前k个子块的cbf,并且其中,当前k个子块的cbf中的每一个都为零时,cbf是未信令通知的最后一个子块的cbf。
[0302]
26.根据示例24或25所述的方法,其中基于双树分割结构对当前块进行分割。
[0303]
27.根据示例24至26中任一项所述的方法,其中cbf是luma-cbf。
[0304]
28.根据示例24至26中任一项所述的方法,其中cbr是cr-cbf或cb-cbf。
[0305]
29.一种用于视频处理的方法,包括:确定使用帧内子块分割(isp)模式对当前块进行编解码;基于所述确定,配置当前块的比特流表示以包括当前块的一个或多个子块的各个增量量化参数(qp)信息;以及基于所述配置,执行当前块和当前块的比特流表示之间的转换。
[0306]
30.根据示例29所述的方法,其中比特流表示包括当前块的一个或多个块中的每一个的各个增量qp信息。
[0307]
31.根据示例29所述的方法,其中比特流表示包括当前块的一个或多个块的仅第一个子块的个别增量qp信息。
[0308]
32.根据示例1到31中任一项所述的方法,其中当前块是编解码单元(cu)、变换单元(tu)、或视频数据的矩形区域。
[0309]
33.一种视频系统中的装置,其包括处理器和其上具有指令的非暂时性存储器,其中,当指令由处理器执行时,使处理器实现示例1至32中任一项所述的方法。
[0310]
34.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于实现示例1至32中任一项所述的方法的程序代码。
[0311]
5.公开技术的示例实现
[0312]
所有工作草案的修改均基于jvet-n1001-v7。
[0313]
在以下示例性实施例中,以粗体、下划线、斜体字体突出显示了在jvet-n1001-v2上的更改。删除的文本用双括号标记(例如,[[a]]表示删除字符“a”)。
[0314]
5.1.实施例1
[0315]
本小节示出了第4节中第3项的示例。
[0316]
7.3.7.10变换单元语法
[0317][0318]
tu_cbf_cr[x0][y0]等于1指定cr变换块包含一个或多个不等于0的变换系数水平。数组索引x0,y0指定所考虑的变换块的左上位置(x0,y0)。
[0319]
当当前cu中不存在tu_cbf_cr[x0][y0]时,推断其值等于c。
[0320]
如果满足以下所有条件,则c等于1。否则等于0。
[0321]

cu_cbf=1
[0322]

treetype==dual_tree_chroma
[0323]

cupredmode[x0][y0]!=mode_intra
[0324]

tu_cbf_cb[x0][y0]==0;
[0325]

cbwidth[x0][y0]《=maxtbsizey
[0326]

cbheight[x0][y0]《=maxtbsizey
[0327]
可选地,以下适用,例如,假设maxtbsizey等于64。
[0328]
7.3.7.11变换单元语法
[0329][0330]
当当前cu中不存在tu_cbf_cr[x0][y0]时,推断其值等于c。
[0331]
如果满足以下所有条件,则c等于1。否则等于0。
[0332]

cu_cbf=1
[0333]

treetype==dual_tree_chroma
[0334]

cupredmode[x0][y0]!=mode_intra
[0335]
tu_cbf_cb[x0][y0]==0;
[0336]
5.2实施例2
[0337]
本小节示出了第4节中第2项的示例。
[0338]
7.3.7.5编解码单元语法
[0339][0340]
可选地,以下可适用:
[0341]
[0342][0343]
可选地,以下可适用:
[0344][0345]
5.3实施例3
[0346]
7.3.7.6变换单元语法
[0347][0348]
5.4实施例4
[0349]
本小节示出了第4节中第6项的示例。
[0350]
7.3.7.11变换单元语法
[0351]
[0352][0353]
当当前cu中不存在tu_cbf_cb[x0][y0]时,如果tu_joint_cbcr_residual[x0][y0]等于1,则将其推断为1。否则,将其推断为0。
[0354]
当当前cu中不存在tu_cbf_cr[x0][y0]时,如果tu_joint_cbcr_residual[x0][y0]等于1,则将其推断为1。否则,将其推断为0。
[0355]
替代示例是:
[0356]
[0357][0358]
当当前cu中不存在tu_cbf_cr[x0][y0]时,如果tu_joint_cbcr_residual[x0][y0]等于1,则将其推断为1。否则,将其推断为0。
[0359]
5.5实施例5
[0360]
本小节示出了第14和第15项的示例。
[0361]
变换单元语法
[0362][0363]
[0364]
(cbx[x0][y0],cby[x0][y0])指定覆盖位置(x0,y0)的编解码单元的左上位置。
[0365]
在替代实施例中
[0366][0367]
(cbx[x0][y0],cby[x0][y0])指定覆盖位置(x0,y0)的编解码单元的左上位置。
[0368]
在替代实施例中
[0369][0370][0371]
(cbx[x0][y0],cby[x0][y0])指定覆盖位置(x0,y0)的编解码单元的左上位置。
[0372]
图12是视频处理装置1200的框图。装置1200可用于实现本文所述的一种或多种方法。装置1200可以实施在智能手机、平板电脑、计算机、物联网(iot)接收器等中。装置1200可以包括一个或多个处理器1202、一个或多个存储器1204和视频处理硬件1206。处理器1202可以被配置成实现本文档中描述的一个或多个方法。存储器(多个存储器)1204可用于存储用于实现本文所述的方法和技术的数据和代码。视频处理硬件1206可用于在硬件电路中实现本文档中描述的一些技术。
[0373]
在一些实施例中,视频编解码方法可以使用如关于图12所述的在硬件平台上实现的装置来实现。
[0374]
在本文中,术语“视频处理”或“视觉媒体处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,视频压缩算法可以在从视频的像素表示转换为相应的比特流表示期间应用,或反之亦然。例如,如由语法定义的那样,当前视频块的比特流表示可以对应于在比特流内的不同位置处并置或传播的比特。例如,可以根据经过变换和编解码的误差残值来编解码宏块,并且还可以使用比特流中的标头和其他字段中的比特。此外,如上述解决方案中所述,在转换期间,解码器可以基于上述确定,在知晓某些字段可能存在或不存在的情况下来解析比特流。类似地,编码器可以确定是否包括某些语法字段,并通过从编解码表示中包括或排除语法字段来相应地生成编解码表示。
[0375]
图13是示出其中可以实现本文公开的各种技术的示例视频处理系统1300的框图。各种实现可以包括系统1300的部分或全部组件。系统1300可以包括用于接收视频内容的输入1302。视频内容可以原始或未压缩格式(例如,8或10位多分量像素值)接收,或者可以压缩或编解码格式接收。输入1302可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(pon)等有线接口和诸如wi-fi或蜂窝接口的无线接口。
[0376]
系统1300可以包括编码组件1304,其可以实现本文中描述的各种编码或编码方法。编码组件1304可以降低从输入1302到编码组件1304的输出的视频的平均比特率,以产生视频的编码表示。因此,编码技术有时被称为视频压缩或视频转码技术。编码组件1304的输出可以存储,或者通过由组件1306表示的所连接的通信来信令通知。组件1308可以使用在输入1302处接收的视频的存储或通信比特流(或编码的)表示来生成信令通知到显示接口1310的像素值或可显示视频。从比特流表示生成用户可视视频的处理有时称为视频解压缩。此外,虽然某些视频处理操作被称为“编码”操作或工具,但是应当理解,在编码器处使用编码工具或操作,并且将由解码器执行对应的解码工具或反转编码结果的操作。
[0377]
外围总线接口或显示接口的示例可以包括通用串行总线(usb)或高清晰度多媒体接口(hdmi)或显示端口等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文中描述的技术可以实施在各种电子设备中,例如能够执行数字数据处理和/或视频显示的移动电话、膝上型计算机、智能手机或其他设备。
[0378]
图14示出了用于视觉媒体处理的示例方法的流程图。本流程图的步骤在本文第4节的示例9中进行了讨论。在步骤1402处,该处理根据条件信令规则执行视觉媒体数据的当前视频块和视觉媒体数据的比特流表示之间的转换,其中,禁止当前视频块使用帧内子块分割(isp)划分模式,isp划分模式取决于当前视频块的维度将当前视频块垂直或水平地划分为多个子块,其中,在转换与禁用isp划分模式相关联的情况下,条件信令规则指定在比特流表示中选择性地包括指示当前视频块的子块的亮度分量包括非零系数值的第一语法元素,并且进一步地,其中选择性地包括至少基于比特流表示中包括的一个或多个先前子块的具有非零系数值的一个或多个其他语法元素。
[0379]
现在以基于条款的格式讨论本文的一些实施例。
[0380]
1.一种视觉媒体处理方法,包括:
[0381]
根据条件信令规则执行视觉媒体数据的当前视频块和视觉媒体数据的比特流表示之间的转换,其中,禁止当前视频块使用帧内子块分割(isp)划分模式,isp划分模式取决于当前视频块的维度将当前视频块垂直或水平地划分为多个子块,其中,在转换与禁用isp划分模式相关联的情况下,条件信令规则指定在比特流表示中选择性地包括第一语法元
素,第一语法元素指示当前视频块的子块的亮度分量包括非零系数值,并且进一步地,其中选择性地包括至少基于比特流表示中包括的一个或多个先前子块的具有非零系数值的一个或多个其他语法元素。
[0382]
在一些实施例中,可选地,使当前视频块能够使用帧内子块分割(isp)划分模式,isp划分模式取决于当前视频块的维度将当前视频块垂直或水平地划分为多个子块,其中,在转换与启用isp划分模式相关联的情况下,条件信令规则指定在比特流表示中选择性地包括第一语法元素,第一语法元素指示当前视频块的子块的亮度分量包括非零系数值,并且进一步地,其中选择性地包括至少基于比特流表示中包括的一个或多个先前子块的具有非零系数值的一个或多个其他语法元素。
[0383]
2.根据条款1所述的方法,其中第一语法元素是值为1的亮度颜色分量的根cbf(luma-root cbf),还包括:
[0384]
响应于确定比特流表示中包括的一个或多个其他语法元素中的每一个为零,从比特流表示中排除第一语法元素,其中第一语法元素与当前视频块的最后一个子块相关联。
[0385]
3.根据条款1-2中任一项或多项所述的方法,其中,在从比特流表示中排除第一语法元素的情况下,推断第一语法元素的值。
[0386]
4.根据条款3所述的方法,其中第一语法元素的值被推断为1。
[0387]
5.根据条款1-4中任一项或多项所述的方法,其中第一语法元素是具有固定值的luma-root cbf。
[0388]
6.根据条款5所述的方法,其中固定值为1。
[0389]
7.根据条款1-6中任一项或多项所述的方法,还包括:
[0390]
做出将双树分割结构应用于当前视频块的确定。
[0391]
8.根据条款1-7中任一项或多项所述的方法,其中在比特流表示中选择性地包括第一语法元素还基于当前视频块的维度。
[0392]
9.根据条款8所述的方法,其中当前视频块经受用于编解码当前视频块的部分的子块变换(sbt),并且其中,当前块的宽度和高度不大于与sbt相关联的最大变换尺寸的宽度和高度。
[0393]
10.根据条款1-9中任一项或多项所述的方法,其中第一语法元素是亮度编解码的块标志(luma-cbf),并且一个或多个其他语法元素是一个或多个先前子块的luma-cbf。
[0394]
11.根据条款1-10中任一项或多项所述的方法,其中isp划分模式导致将当前视频块划分成2个或4个子块。
[0395]
12.根据条款1所述的方法,其中多个第一语法元素与当前视频块相关联,并且其中,在禁用isp模式的情况下,与当前视频块相关联的多个语法元素中的所有语法元素都为零。
[0396]
13.根据条款1所述的方法,其中,在启用isp模式的情况下,选择性地包括第一语法元素不取决于比特流表示中包括的一个或多个先前子块的一个或多个其他语法元素。
[0397]
14.根据条款1-13中任一项或多项所述的方法,其中在比特流表示中排除第一语法元素情况下,当前视频块满足一个或多个尺寸约束。
[0398]
15.根据条款1-14中任一项或多项所述的方法,其中第一语法元素是与当前视频块的色度分量相关联的编解码块标志(cbf),并且一个或多个其他语法元素是一个或多个
先前子块的色度cbf。
[0399]
16.根据条款15所述的方法,其中cbf包括cx-cbf和cy-cbf。
[0400]
17.根据条款16所述的方法,其中cx-cbf是cb-cbf,并且cy-cbf是cr-cbf。
[0401]
18.根据条款16所述的方法,其中cx-cbf是cr-cbf,并且cy-cbf是cb-cbf。
[0402]
19.根据条款15所述的方法,其中cbf与当前视频块的最后一个子块相关联。
[0403]
20.根据条款15-19中任一项或多项所述的方法,其中在从比特流表示中排除cbf的情况下,推断cbf的值。
[0404]
21.根据条款20所述的方法,其中cbf的值被推断为1。
[0405]
22.根据条款15-21中任一项或多项所述的方法,其中cbf是具有固定值的色度颜色分量的根cbf(chroma-root cbf)。
[0406]
23.根据条款22所述的方法,其中固定值为1。
[0407]
24.根据条款15-23中任一项或多项所述的方法,还包括:
[0408]
做出将双树分割结构应用于当前视频块的确定。
[0409]
25.根据条款15-24中任一项或多项所述的方法,其中在比特流表示中选择性地包括第一语法元素还基于当前视频块的维度。
[0410]
26.根据条款25所述的方法,其中当前视频块经受用于编解码当前视频块的部分的子块变换(sbt),并且其中,当前块的宽度和高度不大于与sbt相关联的最大变换尺寸的宽度和高度。
[0411]
27.根据条款1-26中任一项所述的方法,其中转换包括从当前视频块生成比特流表示。
[0412]
28.根据条款1-26中任一项所述的方法,其中所述转换包括从比特流表示生成当前视频块的像素值。
[0413]
29.根据条款1-26中任一项所述的方法,其中当前视频块是编解码单元(cu)、或变换单元(tu)、或视频数据的矩形区域。
[0414]
30.一种视频处理装置,其包括处理器,所述处理器被配置成实现条款1-26中任一项或多项所述的方法。
[0415]
31.一种视频编码装置,其包括处理器,所述处理器被配置成实现条款1-26中任一项或多项所述的方法。
[0416]
32.一种视频解码装置,其包括处理器,所述处理器被配置成实现条款1-26中任一项或多项所述的方法。
[0417]
33.一种其上存储有代码的计算机可读介质,该代码在执行时使处理器实现条款1-26中任一项或多项所述的方法。
[0418]
综上所述,应当理解的是,为了说明的目的,本文描述了本公开技术的具体实施例,但是可以在不偏离本公开的范围的情况下进行各种修改。因此,除了受所附权利要求限制外,本公开的技术不受限制。
[0419]
本专利文件中描述的主题的实现和功能操作可以在各种系统、数字电子电路、或计算机软件、固件或硬件中实现,包括本说明书中所公开的结构及其结构等效体,或其中一个或多个的组合。本说明说中描述的主题的实现可以实现为一个或多个计算机程序产品,即一个或多个编码在有形的且非易失的计算机可读介质上的计算机程序指令的模块,以供
数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或其中一个或其中多个的组合。术语“数据处理单元”或“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或其中一个或多个的组合。
[0420]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
[0421]
本说明书中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0422]
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
[0423]
本说明书和附图仅被视为示例性的,其中示例性是指示例。如本文所用,“或”的使用意欲包括“和/或”,除非上下文另有明确指示。
[0424]
虽然本专利文件包含许多细节,但不应将其解释为对任何发明或权利要求范围的限制,而应解释为对特定发明的特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中移除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
[0425]
同样,尽管附图中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件所述实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
[0426]
仅描述了一些实现和示例,其他实现、增强和变体可以基于本专利文件中描述和
说明的内容做出。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1