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

视频编解码中的变换跳过块的最小允许量化的制作方法

2022-11-22 18:20:59 来源:中国专利 TAG:

视频编解码中的变换跳过块的最小允许量化
1.相关申请的交叉引用
2.根据适用于巴黎公约的专利法和/或规则,提出本技术是为了及时要求2020年4月10日提交的国际专利申请no.pct/cn2020/084291的优先权和权益。出于法律的所有目的,上述申请的全部公开通过引用并入为本技术的公开的一部分。
3.技术邻近
4.本文档涉及视频和图像编码与解码技术。


背景技术:

5.数字视频占互联网和其它数字通信网络上最大的带宽使用。随着能够接收和显示视频的连接的用户设备的数目增加,预计对数字视频使用的带宽需求将继续增长。


技术实现要素:

6.所公开的技术可以由视频或图像解码器或编码器实施例使用,其中参考图片被用于视频编码或解码。
7.在一个示例方面,公开了一种视频处理的方法。该方法包括,对于视频的视频区域和视频区域的编解码表示之间的转换,根据定义视频区域的色度块尺寸和颜色格式之间的关系的语法规则来解析编解码表示,并且通过根据语法规则执行解析来执行转换。
8.在另一个示例方面,公开了另一种视频处理方法。该方法包括基于视频的属性和视频的色度格式来确定视频的编解码树节点的编解码模式,并且使用所确定的编解码模式来执行视频的编解码表示和编解码树节点的视频块之间的转换。
9.在又一个示例方面,公开了另一种视频处理的方法。该方法包括基于规则来确定在视频的视频区域中是否允许某个尺寸的色度块,并且基于该确定来执行视频区域和视频区域的编解码表示之间的转换。
10.在又一个示例方面,公开了另一种视频处理的方法。该方法包括基于允许针对视频条件使用编解码模式的规则来确定编解码模式被准许用于视频区域,并且基于该确定来执行视频区域中的像素的编解码表示和视频区域的像素之间的转换。
11.在又一个示例方面,公开了另一种视频处理的方法。该方法包括使用视频编解码模式来执行视频的视频块和视频块的编解码表示之间的转换,其中信令通知编解码模式的语法元素基于规则而被选择性地包括在编解码表示中。
12.在又一个示例方面,公开了另一种视频处理的方法。该方法包括,由于色度块具有小于阈值尺寸的尺寸,确定在色度块和色度块的编解码表示之间的转换期间使用的变换类型不同于用于对应亮度块转换的变换类型,并且基于该确定来执行转换。
13.在又一个示例方面,公开了另一种视频处理的方法。该方法包括,基于视频区域的编解码条件,确定是否在视频区域的编解码表示和视频区域的像素值之间的转换期间实施最小色度块规则;以及基于该确定来执行转换。
14.在又一个示例方面,公开了另一种视频处理的方法。该方法包括,对于4:2:2格式
的视频区域的编解码表示和视频区域的像素值之间的转换,基于是否对视频区域启用最小色度块规则来确定要用于转换的模式类型;以及基于该确定来执行转换。
15.在又一个示例方面,公开了另一种视频处理的方法。该方法包括,对于视频块的编解码表示和视频的视频块之间的转换,基于在转换期间使用的模式类型或者视频块的维度来确定在转换期间是否允许块分割;以及使用该确定来执行转换。
16.在又一个示例方面,公开了另一种视频处理的方法。该方法包括,对于视频的视频段的编解码表示和视频段之间的转换,确定对尺寸为mxn的色度块应用特殊处理模式,其中m乘n为整数;以及基于该确定来执行转换。
17.在另一个示例方面,公开了另一种视频处理的方法。该方法包括根据规则来执行包括视频区域的视频和视频的比特流之间的转换;并且其中该规则指定调色板模式的启用和视频区域的编解码类型之间的关系。
18.在另一个示例方面,公开了另一种视频处理的方法。该方法包括根据规则来执行包括第一视频区域和第二视频区域的视频和视频的比特流之间的转换;并且其中该规则指定,在第一块处于帧内块复制模式并且第二块处于调色板模式的情况下,视频的色度分量的去块滤波器的边界强度(bs)被设置为0。
19.在另一个示例方面,公开了另一种视频处理的方法。该方法包括根据格式规则来执行视频和视频的比特流之间的转换,并且其中格式规则指定与视频的输入比特深度有关的变量根据比特流的简表来约束。
20.在另一个示例方面,公开了另一种视频处理的方法。该方法包括根据格式规则来执行视频和视频的比特流之间的转换,并且其中格式规则指定指示最小允许量化参数的变量根据比特流的简表来约束。
21.在又一个示例方面,上述方法可以由包括处理器的视频编码器装置实现。
22.在又一个示例方面,上述方法可以由包括处理器的视频解码器装置实现。
23.在又一个示例方面,这些方法可以以处理器可执行指令的形式实施并储存在计算机可读程序介质上。
24.本文档中进一步描述的这些和其它方面。
附图说明
25.图1示出了帧内块复制编解码工具的示例。
26.图2示出了以调色板模式编解码的块的示例。
27.图3示出了使用调色板预测值来信令通知调色板条目的示例。
28.图4示出了水平和垂直遍历扫描的示例中的示例。
29.图5示出了对调色板索引进行编解码的示例。
30.图6示出了67个帧内预测模式的示例。
31.图7示出了当前块的左邻域和上邻域的示例。
32.图8示出了alf滤波器形状的示例(色度:5
×
5菱形,亮度:7
×
7菱形)。
33.图9示出了子采样的拉普拉斯计算的示例。
34.图10示出了在虚拟边界处的修改的块分类的示例。
35.图11是图示在虚拟边界处的用于亮度分量的修改的alf滤波的示例。
36.图12示出了eo中的像素分类的四个1维3像素图案的示例。
37.图13示出了四个带被分组在一起并由其起始带位置表示。
38.图14示出了在ciip权重导出中使用的顶邻近块和左邻近块。
39.图15示出了具有色度缩放架构的亮度映射。
40.图16示出了scipu的示例。
41.图17a和图17b示出了用于实现本文档中所描述的技术的硬件平台的示例的框图。
42.图18是视频处理的示例方法的流程图。
43.图19示出了空域merge候选的位置的示例。
44.图20示出了考虑用于空域merge候选的冗余检查的候选对的示例。
45.图21是示出示例视频编解码系统的框图。
46.图22是示出根据所公开的技术的一些实施例的编码器的框图。
47.图23是示出根据所公开的技术的一些实施例的解码器的框图。
48.图24a至图24d是根据所公开的技术的一些实施例的视频处理的示例方法的流程图。
具体实施方式
49.本文档提供了可由图像或视频比特流的解码器使用的各种技术,以提高解压缩或解码的数字视频或图像的质量。为了简洁起见,术语“视频”在本文中用于包括图片序列(传统上称为视频)和各个图像。此外,视频编码器还可在编码过程期间实现这些技术,以便重建用于进一步编码的解码帧。
50.在本文档中使用章节标题是为了易于理解,并且不将实施例和技术限于对应的章节。这样,一个章节的实施例可以与其它章节的实施例组合。
51.1.简要概述
52.该文档与视频编解码技术有关。具体地,它涉及在视频编解码中采用基于基色的表示的调色板编解码。它可以应用于现有的视频编解码标准(例如hevc)或要最终确定的标准(通用视频编解码)。它也可能适用于将来的视频编解码标准或视频编码器。
53.2.初步讨论
54.视频编解码标准主要通过公知的itu-t和iso/iec标准的发展而演进。itu-t制作了h.261和h.263,iso/iec制作了mpeg-1和mpeg-4visual,这两个组织联合制作了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 jtc1sc29/wg11(mpeg)之间的联合视频专家团队(jvet)创建,致力于vvc标准,目标是与hevc相比降低50%的比特率。
55.vvc草案的最新版本,即多功能视频编解码(草案4)可以在以下地方找到:
56.http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=5755
57.vvc的最新参考软件,名为vtm,可以在以下地方找到:
58.https://vcgit.hhi.fraunhofer.de/jvet/vvcsoftware_vtm/tags/vtm-5.0
59.2.1帧内块复制
60.帧内块复制(ibc),也称为当前图片参考,已在hevc屏幕内容编解码扩展(hevc-scc)和当前vvc测试模型(通过vtm-4.0)中采用。ibc将运动补偿的概念从帧间编解码扩展到了帧内编解码。如图1所示,当应用ibc时,由在相同图片中的参考块预测当前块。在对当前块进行编解码或解码之前,必须已经重建了参考块中的样点。尽管ibc对于大多数相机捕获的序列而言效率不高,但它示出了对屏幕内容的显著编解码增益。原因是屏幕内容图片中存在许多重复图案,诸如图标和文本字符。ibc可以有效地移除这些重复图案之间的冗余。在hevc-scc中,如果选择当前图片作为其参考图片,则帧间编解码单元(cu)可以应用ibc。在这种情况下,mv被重命名为块矢量(bv),并且bv始终具有整数像素精度。为了与主配置文件hevc兼容,当前图片在解码图片缓冲器(dpb)中被标记为“长期”参考图片。应当注意,类似地,在多视图/3d视频编解码标准中,视图间参考图片也被标记为“长期”参考图片。
61.在bv找到其参考块之后,可以通过复制参考块来生成预测。可以通过从原始信号中减去参考像素来获得残差。然后,可以像在其它编解码模式中一样应用变换和量化。
62.图1是帧内块复制的图示。
63.然而,当参考块在图片之外、或与当前块重叠、或在重建区域之外、或在受一些约束限制的有效区域之外时,未定义部分或所有像素值。基本上,存在两种解决方案来处理这样的问题。一种是禁止这样的情况,例如在比特流一致性中。另一种是对那些未定义的像素值应用填充。以下子章节详细描述解决方案。
64.2.2在hevc屏幕内容编解码扩展中的ibc
65.在hevc的屏幕内容编解码扩展中,当块使用当前图片作为参考时,应保证整个参考块在可用的重建区域内,如以下规范文本所指示:
66.变量offsetx和offsety导出如下:
67.offsetx=(chromaarraytype==0)?0:(mvclx[0]&0x7?2:0)
ꢀꢀꢀꢀꢀꢀꢀ
(8-104)
[0068]
offsety=(chromaarraytype==0)?0:(mvclx[1]&0x7?2:0)
ꢀꢀꢀꢀꢀꢀꢀ
(8-105)
[0069]
比特流一致性要求,当参考图片在当前图片中时,亮度运动矢量mvlx应遵循以下约束:
[0070]

当以将设置为(xcb,ycb)的(xcurr,ycurr)、将设置为等于(xpb (mvlx[0]》》2)-offsetx,ypb (mvlx[1]》》2)-offsety)的相邻亮度位置(xnby,ynby)作为输入调用第6.4.1节中指定的z扫描顺序块可用性的导出过程时,输出应当为真(true)。
[0071]

当以将设置为(xcb,ycb)的(xcurr,ycurr)、将设置为等于(xpb (mvlx[0]》》2) npbw-1 offsetx,ypb (mvlx[1]》》2) npbh-1 offsety)的相邻亮度位置(xnby,ynby)作为输入调用第6.4.1节中指定的z扫描顺序块可用性的导出过程时,输出应当为真(true)
[0072]

以下条件中的一个或两者应当为真:
[0073]

(mvlx[0]》》2) npbw xb1 offsetx的值小于或等于0。
[0074]

(mvlx[1]》》2) npbh yb1 offsety的值小于或等于0。
[0075]

以下条件应当为真:
[0076]

(xpb (mvlx[0]》》2) npbsw-1 offsetx)/ctbsizey-xcurr/ctbsizey《=ycurr/ctbsizey-(ypb (mvlx[1]》》2) npbsh-1 offsety)/ctbsizey
ꢀꢀꢀꢀꢀ
(8-106)
[0077]
因此,将不会发生参考块与当前块重叠或参考块在图片之外的情况。无需填充参考或预测块。
[0078]
2.3在vvc测试模型中的ibc
[0079]
在当前的vvc测试模型中,即vtm-4.0设计中,整个参考块应当与当前编解码树单元(ctu)在一起并且不与当前块重叠。因此,无需填充参考或预测块。ibc标志被编解码为当前cu的预测模式。因此,对于每个cu,总共存在三种预测模式:mode_intra,mode_inter和mode_ibc。
[0080]
2.3.1 ibc merge模式
[0081]
在ibc merge模式中,从比特流中解析指向ibc merge候选列表中的条目的索引。ibc merge列表的构造可以根据以下步骤序列进行总结:
[0082]

步骤1:导出空域候选
[0083]

步骤2:插入hmvp候选
[0084]

步骤3:插入成对的平均候选
[0085]
在空域merge候选的导出中,在位于图19所示位置的候选中选择最多四个merge候选。导出次序为a1、b1、b0、a0和b2。仅当位置a1、b1、b0、a0的任何pu不可用(例如,因为它属于另一个条带或片)或未使用ibc模式编解码时,才考虑位置b2。在位置a1的候选被添加之后,剩余候选的插入经历冗余检查,该冗余检查确保从列表中排除具有相同运动信息的候选,从而提高了编解码效率。为了降低计算复杂度,在提到的冗余检查中并未考虑所有可能的候选对。代替地,仅考虑图20中使用箭头链接的对,并且仅如果用于冗余检查的对应候选不具有相同的运动信息时,才将候选添加到列表中。
[0086]
在插入空域候选之后,如果ibc merge列表尺寸仍小于最大ibc merge列表尺寸,则可以插入来自hmvp表的ibc候选。当插入hmvp候选时执行冗余检查。
[0087]
最后,将成对的平均候选插入ibc merge列表。
[0088]
当由merge候选标识的参考块在图片之外、或者与当前块重叠、或者在重建区域之外、或者在受一些约束限制的有效区域之外时,merge候选被称为无效merge候选。
[0089]
注意,可以将无效merge候选插入ibc merge列表。
[0090]
2.3.2 ibc amvp模式
[0091]
在ibc amvp模式中,从比特流解析指向ibc amvp列表中的条目的amvp索引。ibc amvp列表的构造可以根据以下步骤序列进行总结:
[0092]

步骤1:导出空域候选
[0093]
ο检查a0、a1,直到找到可用候选。
[0094]
ο检查b0、b1、b2,直到找到可用候选。
[0095]

步骤2:插入hmvp候选
[0096]

步骤3:插入零候选
[0097]
在插入空域候选之后,如果ibc amvp列表尺寸仍小于最大ibc amvp列表尺寸,则可以插入来自hmvp表的ibc候选。
[0098]
最后,将零候选插入ibc amvp列表。
[0099]
2.4调色板模式
[0100]
调色板模式背后的基本思想是cu中的样点由代表性颜色值的小集合表示。此集合
称为调色板。而并且,也可能通过信令通知后跟(可能是量化的)分量值的逃逸(escape)符号来指示调色板之外的样点。这种样点称为逃逸样点。调色板模式如图2所示。
[0101]
图2示出了以调色板模式编解码的块的示例。
[0102]
2.5在hevc屏幕内容编解码扩展(hevc-scc)中的调色板模式
[0103]
在hevc-scc的调色板模式中,一种预测方法用于编解码调色板和索引图。
[0104]
2.5.1调色板条目的编解码
[0105]
为了对调色板条目进行编解码,维护调色板预测值。在sps中信令通知调色板的最大尺寸以及调色板预测值。在hevc-scc中,在pps中引入了palette_predictor_initializer_present_flag。当该标志为1时,在比特流中信令通知用于初始化调色板预测值的条目。在每个ctu行、每个条带和每个片的开始处初始化调色板预测值。取决于palette_predictor_initializer_present_flag的值,将调色板预测值重置为0或使用pps中信令通知的调色板预测值初始化器条目进行初始化。在hevc-scc中,启用尺寸为0的调色板预测值初始化器,以允许在pps级别显式禁用调色板预测值初始化。
[0106]
对于调色板预测值中的每个条目,信令通知重用标志以指示其是否是当前调色板的一部分。这如图3所示。使用零的游程长度(run-length)编解码发送重用标志。此后,使用阶数为0的指数golomb代码信令通知新调色板条目的数目。最后,信令通知新调色板条目的分量值。
[0107]
图3示出了使用调色板预测值来信令通知调色板条目的示例。
[0108]
2.5.2调色板索引编解码
[0109]
如图4所示,使用水平和垂直遍历扫描对调色板索引进行编解码。使用palette_transpose_flag在比特流中显式信令通知扫描次序。对于子章节的其余部分,假定扫描是水平的。
[0110]
图4示出了水平和垂直遍历扫描的示例。
[0111]
使用两个主要调色板样点模式对调色板索引进行编解码:“index”和“copy_above”。如前所述,逃逸符号也信令通知为“index”模式,并分配等于最大调色板尺寸的索引。使用除顶行以外的标志或当先前模式为“copy_above”时信令通知该模式。在“copy_above”模式下,复制上方行中样点的调色板索引。在“index”模式下,显式信令通知调色板索引。对于“index”和“copy_above”模式,都信令通知游程值,该值指定也使用相同模式进行编解码的后续样点的数目。当“index”或“copy_above”模式下逃逸符号是游程的一部分时,为每个逃逸符号信令通知逃逸分量值。调色板索引的编解码如图5所示。
[0112]
该语法次序如下完成。首先,信令通知cu的索引值的数目。这之后是使用截短的二进制编解码来信令通知整个cu的实际索引值。索引的数目以及索引值两者以旁路模式进行编解码。这将与索引相关的旁路二进制数(bin)分组在一起。然后以交错方式信令通知调色板样点模式(如果需要)和游程。最后,将与整个cu的逃逸样点相对应的分量逃逸值分组在一起,并以旁路模式进行编解码。
[0113]
在信令通知索引值之后信令通知附加的语法元素,last_run_type_flag。该语法元素结合索引的数目,消除了信令通知与块中最后的游程相对应的游程值的需要。
[0114]
在hevc-scc中,还对4:2:2、4:2:0和单色色度格式启用调色板模式。对于所有色度格式,调色板条目和调色板索引的信令通知几乎相同。在非单色格式的情况下,每个调色板
条目由3个分量组成。对于单色格式,每个调色板条目均由单个分量组成。对于子采样的色度方向,色度样点与可被2整除的亮度样点索引相关联。在为cu重建调色板索引之后,如果样点仅具有与其相关联的单个分量,则仅适用调色板条目的第一分量。信令通知的唯一区别在于逃逸分量值。对于每个逃逸样点,取决于与该样点相关联的分量的数目,信号通知的逃逸分量值的数目可能不同。
[0115]
在vvc,双树编解码结构用于基于对帧内条带进行编解码,因此亮度分量和两个色度分量可以具有不同的调色板和调色板索引。另外,两个色度分量共享相同的调色板和调色板索引。
[0116]
图5示出了对调色板索引进行编解码的示例。
[0117]
2.6在vvc中的帧内模式编解码
[0118]
为了捕获自然视频中呈现的任意边缘方向,vtm5中的定向帧内模式的数目从hevc中使用的33扩展到65。hevc中没有的新定向模式在图6中用红色虚线箭头描绘,并且平面和dc模式保持相同。这些较密集的定向帧内预测模式应用于所有块尺寸以及亮度和色度帧内预测。
[0119]
在vtm5中,对于非正方形块,使用广角帧内预测模式自适应地替换几种常规角度帧内预测模式。
[0120]
在hevc中,每个帧内编解码块具有正方形形状,并且其每侧的长度是2的幂。因此,使用dc模式生成帧内预测值不需要拆分操作。在vtm5中,块可以具有矩形形状,这通常情况下需要对每个块使用拆分操作。对于dc预测为了避免拆分操作,对于非正方形块仅使用较长侧来计算平均。
[0121]
图6示出了67个帧内预测模式的示例。
[0122]
为了保持最可能模式(mpm)列表生成的复杂度低,通过考虑两个可用的邻近帧内模式,使用具有6个mpm的帧内模式编解码方法。考虑以下三个方面来构建mpm列表:
[0123]-默认帧内模式
[0124]-邻近帧内模式
[0125]-导出帧内模式
[0126]
不管是否应用mrl和isp编解码工具,统一的6-mpm列表都用于帧内块。mpm列表是基于左邻近块和上邻近块的帧内模式构建的。假设左块的模式表示为left,而上块的模式表示为above,则统一的mpm列表的构建如下(左块和上块如图7所示):
[0127]
图7是当前块的左邻域和上邻域的示例。
[0128]

当邻近块不可用时,其帧内模式默认设置为平面。
[0129]

如果left和above两者是非角度模式:
[0130]

mpm列表

{平面,dc,v,h,v-4,v 4}
[0131]

如果“left”和“above”中的一个是角度模式,而另一个是非角度模式:
[0132]

设置模式max作为“left”和“above”中的最大模式
[0133]

mpm列表

{平面,max,dc,max-1,max 1,max-2}
[0134]

如果left和above都是角度并且它们是不同的:
[0135]

设置模式max作为“left”和“above”中的最大模式
[0136]

如果模式“left”和“above”的差在2至62的范围(含端值)
[0137]

mpm列表

{平面,left,above,dc,max-1,max 1}
[0138]

否则
[0139]

mpm列表

{平面,left,above,dc,max-2,max 2}
[0140]

如果left和above都是角度并且它们是相同的:
[0141]

mpm列表

{平面,left,left-1,left 1,dc,left-2}
[0142]
此外,mpm索引码字的第一二进制数是cabac上下文编解码的。使用总共三种上下文,对应于当前帧内块是启用mrl、启用isp还是正常帧内块。
[0143]
在6个mpm列表生成过程期间,使用修剪来移除重复的模式,以便仅唯一模式可以包括在mpm列表中。对于61个非mpm模式的熵编解码,使用截短的二进制码(tbc)。
[0144]
对于色度帧内模式编解码,总共允许8个帧内模式用于色度帧内模式编解码。这些模式包括5个传统帧内模式和3个跨分量线性模型模式(cclm、lm_a和lm_l)。色度模式信令通知和导出过程如表2-4所示。色度模式编解码直接取决于对应亮度块的帧内预测模式。由于在i条带中启用用于亮度和色度分量的分开的块分割结构,所以一个色度块可以对应于多个亮度块。因此,对于色度dm模式,覆盖当前色度块的中心位置的对应亮度块的帧内预测模式被直接继承。
[0145]
表2-4当启用cclm时从亮度模式导出色度预测模式
[0146][0147]
2.7量化残差块差分脉冲编解码调制(qr-bdpcm)
[0148]
在jvet-m0413中,提出了一种量化残差块差分脉冲编解码调制(qr-bdpcm)以有效地对屏幕内容进行编解码。
[0149]
在qr-bdpcm中使用的预测方向可以是垂直和水平预测模式。通过在类似于帧内预测的预测方向(水平或垂直预测)上进行样点复制来对整个块进行帧内预测。对残差进行量化,并对量化后的残差及其预测值(水平或垂直)量化后的值之间的增量进行编解码。这可以通过以下来描述:对于尺寸为m(行)
×
n(列)的块,令r
ij
,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时:
[0150][0151]
对于水平预测,适用类似的规则,并且通过以下方式获得残差量化后的样点:
[0152][0153]
残差量化后的样点被发送到解码器。
[0154]
在解码器侧,逆进行上述计算以产生q(r
i,j
),0≤i≤m-1,0≤j≤n-1。对于垂直预测情况,
[0155][0156]
对于水平情况,
[0157][0158]
逆量化后的残差q-1
(q(r
i,j
))被添加到帧内块预测值以产生重建的样点值。
[0159]
该方案的主要优点在于,可以在系数解析期间即时完成逆dpcm,也可以在解析系数时简单地添加预测值,或者在解析后执行逆dpcm。
[0160]
2.8自适应环路滤波器
[0161]
在vtm5中,应用了具有基于块的滤波器自适应的自适应环路滤波器(alf)。对于亮度分量,基于局部梯度的方向和活度,为每个4
×
4块选择25个滤波器中的一个。
[0162]
2.8.1.1滤波器形状
[0163]
在vtm5中,使用了两种菱形滤波器形状(如图8所示)。7
×
7菱形应用于亮度分量,而5
×
5菱形应用于色度分量。
[0164]
图8示出了alf滤波器形状的示例(色度:5
×
5菱形,亮度:7
×
7菱形)
[0165]
2.8.1.2块分类
[0166]
对于亮度分量,每个4
×
4块被归类为25类中的一个。分类索引c基于其方向性d和活度的量化值而导出,如下:
[0167][0168]
为了计算d和首先使用一维拉普拉斯计算计算水平、垂直和两个对角方向的梯度:
[0169]
[0170][0171][0172][0173][0174]
其中索引i和j指代4
×
4块内左上样点的坐标,而r(i,j)指示在坐标(i,j)处的重建样点。
[0175]
为了降低块分类的复杂度,应用子采样的一维拉普拉斯计算。如图9所示,相同的子采样位置用于所有方向的梯度计算。
[0176]
图9示出了子采样的拉普拉斯计算的示例。(a)垂直梯度的子采样位置(b)水平梯度的子采样位置(c)对角梯度的子采样位置(d)对角梯度的子采样位置。
[0177]
然后,将水平方向和垂直方向的梯度的d最大值和最小值设置为:
[0178][0179]
两个对角方向的梯度的最大值和最小值设置为:
[0180][0181]
为了导出方向性d的值,将这些值彼此比较,并使用两个阈值t1和t2:
[0182]
步骤1.如果和都为真,则d设置为0。
[0183]
步骤2.如果则从步骤3继续;否则,则从步骤4继续。
[0184]
步骤3.如果则d设置为2;否则,则d设置为1。
[0185]
步骤3.如果则d设置为4;否则,则d设置为3。
[0186]
活度值a计算为:
[0187][0188]
a被进一步量化到0到4的范围(含端值),并且量化后的值表示为
[0189]
对于图片中的色度分量,不应用分类方法,即,针对每个色度分量应用alf系数的单个集合。
[0190]
2.8.1.3滤波器系数和剪裁值的几何变换
[0191]
在对每个4
×
4亮度块进行滤波之前,取决于针对该块计算的梯度值,将几何变换(诸如旋转或对角和垂直翻转)应用于滤波器系数f(k,l)以及对应的滤波器剪裁值c(k,l)。这等同于将这些变换应用于在滤波器支持区域中的点。想法是通过对齐方向性来使应用了alf的不同块更加相似。
[0192]
引入了三种几何变换,包括对角、垂直翻转和旋转:
[0193]
对角:fd(k,l)=f(l,k),cd(k,l)=c(l,k)
ꢀꢀꢀꢀ
(2-9-9)
[0194]
垂直翻转:fv(k,l)=f(k,k-l-1),cv(k,l)=c(k,k-l-1)
ꢀꢀꢀ
(2-9-10)
[0195]
旋转:fr(k,l)=f(k-l-1,k),cr(k,l)=c(k-l-1,k)
ꢀꢀꢀ
(2-9-11)
[0196]
其中,k是滤波器的尺寸,并且0≤k,l≤k-1是系数坐标,使得位置(0,0)在左上角而位置(k-1,k-1)在右下角。取决于针对该块计算的梯度值,将变换应用于滤波器系数f(k,l)和剪裁值c(k,l)。下表总结了变换与四个方向的四个梯度之间的关系。
[0197]
表2-5针对一个块计算的梯度与变换的映射
[0198]
梯度值变换g
d2
<g
d1
并且gh<gv无变换g
d2
<g
d1
并且gv<gh对角g
d1
<g
d2
并且gh<gv垂直翻转g
d1
<g
d2
并且gv<gh旋转
[0199]
2.8.1.4滤波器参数信令通知
[0200]
在vtm5中,在自适应参数集(aps)中信令通知alf滤波器参数。在一个aps中,最多可以信令通知25个亮度滤波器系数和剪裁值索引的集合,以及最多一个色度滤波器系数和剪裁值索引的集合。为了减少比特开销,可以合并不同分类的滤波器系数。在条带报头中,信令通知用于当前条带的aps的索引。
[0201]
从aps解码的剪裁值索引允许使用剪裁值的亮度表和剪裁值的色度表来确定剪裁值。这些剪裁值取决于内部比特深度。更精确地,裁剪值的亮度表和裁剪值的色度表通过以下公式获得:
[0202][0203][0204]
其中b等于内部比特深度,n等于4,这是vtm5.0中允许的剪裁值的数目。
[0205]
可以在ctb级别控制滤波过程。始终信令通知标志,以指示是否将alf应用于亮度ctb。亮度ctb可以从16个固定滤波器集合和来自aps的滤波器集合中选择滤波器集合。信令通知用于亮度ctb的滤波器集合索引,以指示应用了哪个滤波器集合。16个固定滤波器集合在编码器和解码器两者中是预定义和硬编解码的。
[0206]
滤波器系数以等于128的范数进行量化。为了限制乘法复杂度,应用比特流一致性,使得非中心位置的系数值应在-27至2
7-1的范围内(含端值)。中心位置系数未在比特流中信令通知,并且被认为等于128。
[0207]
2.8.1.5滤波过程
[0208]
在解码器侧,当针对ctb启用alf时,对cu内的每个样点r(i,j)进行滤波,得到样点值r

(i,j),如下所示,
[0209]r′
(i,j)=r(i,j) ((∑
k≠0

l≠0
f(k,l)
×
k(r(i k,j l)-r(i,j),c(k,l)) 64)>>7)
ꢀꢀꢀ
(2-9-14)
[0210]
其中,f(k,l)表示解码的滤波器系数,k(x,y)是剪裁函数,并且c(k,l)表示解码的剪裁参数。变量k和l在和之间变化,其中l表示滤波器长度。裁剪函数k(x,y)=min(y,
max(-y,x))对应于函数clip3(-y,y,x)。
[0211]
2.8.1.6减少线缓冲器的虚拟边界滤波过程
[0212]
在vtm5中,为了减少alf的线缓冲器要求,对水平ctu边界附近的样点采用修改的块分类和滤波。为此,通过移位具有“n”个样点的水平ctu边界将虚拟边界定义为线,如图10所示,其中对于亮度分量n等于4,而对于色度分量n等于2。
[0213]
图10示出了在虚拟边界处的修改的块分类的示例。
[0214]
如图11所示,将修改的块分类应用于亮度分量,通过考虑在一维拉普拉斯梯度计算中使用的样点的减少的数目,来相应地缩放活度值a。
[0215]
对于滤波处理,在虚拟边界处的对称填充操作用于亮度和色度分量两者。如图11所示,当被滤波的样点位于虚拟边界下方时,填充位于虚拟边界上方的邻近样点。同时,也对称地填充另一侧处的对应样点。
[0216]
图11示出了在虚拟边界处的用于亮度分量的修改的alf滤波的示例。
[0217]
2.9样点自适应偏移(sao)
[0218]
编码器通过使用为每个ctb指定的偏移,将样点自适应偏移(sao)应用于在解块滤波器之后的重建信号。hm编码器首先决定是否将sao过程应用于当前条带。如果将sao应用于条带,则每个ctb被分类为表2-6中所示的五种sao类型中的一种。sao的概念是将像素分类到各类别,并通过向每个类别的像素添加偏移来减少失真。sao操作包括边缘偏移(edge offset,eo)和带偏移(band offset,bo),该边缘偏移(eo)对sao类型1-4中的像素分类使用边缘属性,该带偏移(bo)对sao类型5中的像素分类使用像素强度。每个适用的ctb具有sao参数,包括sao_merge_left_flag、sao_merge_up_flag、sao类型和四个偏移。如果sao_merge_left_flag等于1,则当前ctb将重用sao类型和ctb向左的偏移。如果sao_merge_up_flag等于1,则当前ctb将重用sao类型和ctb向上的偏移。
[0219]
表2

6 sao类型的规范
[0220]
sao类型要使用的样点自适应偏移类型类别号0无011维0度图案边缘偏移421维90度图案边缘偏移431维135度图案边缘偏移441维45度图案边缘偏移45带偏移4
[0221]
2.9.1每种sao类型的操作
[0222]
边缘偏移通过考虑边缘定向信息对当前像素p的分类使用四个1维3像素图案,如图12所示。从左到右,它们分别是:0度、90度、135度和45度。
[0223]
图12示出了eo中的像素分类的四个1维3像素图案的示例。
[0224]
每个ctb根据表2

7分类为五个类别中的一个。
[0225]
表2

7 eo的像素分类规则
[0226]
类别条件含义0以下都不是大部分单调1p《2邻域局部最小值
2p《1邻域&&p==1邻域边缘3p》1邻域&&p==1邻域边缘4p》2邻域局部最大值
[0227]
带偏移(bo)通过使用像素值的五个最高有效比特作为带索引,将一个ctb区域中的所有像素分类为32个均匀带。换言之,像素强度范围被拆分为从零到最大强度值(例如,对于8比特像素为255)的32个相等的段。四个相邻的带被分组在一起,每个组由其最左边的位置指示,如图13所示。编码器搜索所有位置,以通过补偿每个带的偏移来获得具有最大失真减小的组。
[0228]
图13示出了四个带被分组在一起并由其起始带位置表示的示例。
[0229]
2.10组合的帧间和帧内预测(ciip)
[0230]
在vtm5中,当以merge模式编解码cu时,如果cu包含至少64个亮度样点(即cu宽度乘以cu高度等于或大于64),并且如果cu宽度和cu高度都如果小于128个亮度样点,则信令通知附加标志以指示是否将组合的帧间/帧内预测(ciip)模式应用于当前cu。顾名思义,ciip预测将帧间预测信号与帧内预测信号进行组合。ciip模式下的帧间预测信号p
inter
是使用与应用于常规merge模式相同的帧间预测过程导出的;并且帧内预测信号p
intra
是在具有平面模式的常规帧内预测过程之后导出的。然后,使用加权平均对帧内和帧间预测信号进行组合,其中,取决于顶邻近块和左邻近块(如图14所示)的编解码模式来计算权重值,如下:
[0231]-如果顶邻近可用并且是帧内编解码的,则将isintratop设置为1,否则将isintratop设置为0;
[0232]-如果左邻近可用并且是帧内编解码的,则将isintraleft设置为1,否则将isintraleft设置为0;
[0233]-如果(isintraleft isintraleft)等于2,则将wt设置为3;
[0234]-否则,如果(isintraleft isintraleft)等于1,则将wt设置为2;
[0235]-否则,将wt设置为1。
[0236]
ciip预测被形成如下:
[0237]
p
ciip
=((4-wt)*p
inter
wt*p
intra
2)>>2
ꢀꢀꢀ
(3-2)
[0238]
图14示出了在ciip权重导出中使用的顶邻近块和左邻近块的示例。
[0239]
2.11亮度映射与色度缩放(lmcs)
[0240]
在vtm5中,在环路滤波器之前,将称为亮度映射与色度缩放(lmcs)的编解码工具添加为新的处理块。lmcs有两个主要组成部分:1)基于自适应分段线性模型的亮度分量的环路映射;2)对于色度分量,应用取决于亮度的色度残差缩放。图15从解码器的角度示出了lmcs架构。图15中的虚线块指示在映射的域中应用处理的位置,并且这些包括逆量化、逆变换、亮度帧内预测以及将亮度预测与亮度残差相加。图15中无阴影的块指示在原始(即,非映射)域中应用处理的位置;并且这些包括诸如去块、alf和sao的环路滤波器,运动补偿预测,色度帧内预测,将色度预测与色度残差相加,以及将解码的图片存储为参考图片。图15中的方格块示出了新的lmcs功能块,包括亮度信号以及取决于亮度的色度缩放过程的前向映射和逆映射。像vvc中的大多数其它工具一样,可以使用sps标志在序列级别启用/禁用lmcs。
[0241]
图15示出了亮度映射与色度缩放架构的示例。
[0242]
2.12双树分割
[0243]
在当前的vvc设计中,对于i条带,可以使用隐式四叉树划分将每个ctu划分为具有64x64亮度样点的编解码单元,并且这些编解码单元是用于亮度和色度的两个分开的coding_tree语法结构的根。
[0244]
由于与亮度编解码树相比,帧内图片中的双树允许在色度编解码树中应用不同的分割,因此双树引入了更长的编解码管线,并且色度树中的qtbt minqtsizec值范围以及minbtsizey和minttsizey允许较小的色度块,诸如2x2、4x2和2x4。这给实际的解码器设计带来了困难。此外,若干预测模式(诸如cclm、平面和角度模式)需要乘法。为了减轻上述问题,在双树中限制小的色度块尺寸(2
×
2/2
×
4/4
×
2)作为分割限制。
[0245]
2.13 jvet-o0050中的最小色度帧内预测单元(scipu)
[0246]
小色度尺寸对硬件实现方式不友好。在双树情况下,禁止具有过小尺寸的色度块。但是,在单树情况下,vvc草案5仍允许2x2、2x4、4x2色度块。为了限制色度块的尺寸,在单个编解码树中,scipu在jvet-o0050中定义为编解码树节点,该编解码树节点的色度块尺寸大于或等于th色度样点并且具有至少一个小于4th亮度样点的子亮度块,其中在此稿中th设置为16。要求在每个scipu中,所有cb都是帧间的,或者所有cb是非帧间,即帧内或ibc。在非帧间scipu的情况下,进一步要求非帧间scipu的色度不应该被进一步划分并且scipu的亮度被允许进一步划分。这样,最小的色度帧内cb尺寸为16个色度样点,并移除2x2、2x4和4x2的色度cb。另外,在非帧间scipu的情况下,不应用色度缩放。
[0247]
图16示出了两个scipu示例。在图16(a)中,一个8x4色度样点的色度cb和三个亮度cb(4x8、8x8、4x8亮度cb)形成一个scipu,因为从8x4色度样点中划分的三叉树(tt)将导致色度cb小于16个色度样点。在图16(b)中,一个4x4色度样点的色度cb(8x4色度样点的左侧)和三个亮度cb(8x4、4x4、4x4亮度cb)形成一个scipu,并且另一个4x4样点的色度cb(8x4色度样点的右侧)和两个亮度cb(8x4、8x4亮度cb)形成一个scipu,因为从4x4色度样点中划分的二叉树(bt)将导致色度cb小于16个色度样点。
[0248]
图16示出了scipu示例。
[0249]
如果当前条带是i条带或当前scipu在进一步划分一次之后其中具有4x4亮度分割,则将scipu的类型推断为非帧间的(因为在vvc中禁止帧间4x4);否则,在解析scipu中的cu之前,通过一个信令通知的标志来指示scipu的类型(帧间或非帧间)。
[0250]
2.14 vvc草案6中的小色度块约束
[0251]
在vvc草案6(jvet-o2001-ve.docx)中,对小色度块的约束实现如下(有关的部分被标记为粗体斜体)。
[0252]
[0253]
[0254][0255]
2.14.1.1编解码单元语法
[0256][0257][0258][0259]
[0260]
此过程的输入是:
[0261]

亮度样点中的编解码块尺寸cbsize,
[0262]

多种类型的树深度mttdepth,
[0263]

变量treetype,其指定是使用单树(single_tree)还是双树对ctu进行分割,并且在使用双树时,指定当前正在处理亮度(dual_tree_luma)还是色度分量(dual_tree_chroma),
[0264][0265]
此过程的输出是变量allowsplitqt。
[0266]
变量allowsplitqt导出如下:
[0267]

如果以下条件中的一个或多个为真,则将allowsplitqt设置为等于假:
[0268]

treetype等于single_tree或dual_tree_luma,并且cbsize小于或等于minqtsizey
[0269]

treetype等于dual_tree_chroma,并且cbsize/subwidthc小于或等于minqtsizec
[0270]

mttdepth不等于0
[0271]

treetype等于dual_tree_chroma,并且(cbsize/subwidthc)小于或等于4
[0272][0273]

否则,将allowsplitqt设置为等于真。
[0274][0275]
此过程的输入是:
[0276]

二进制划分模式btsplit,
[0277]

亮度样点中的编解码块宽度cbwidth,
[0278]

亮度样点中的编解码块高度cbheight,
[0279]

所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0),
[0280]

多种类型的树深度mttdepth,
[0281]

具有偏移的最大多种类型的树深度maxmttdepth,
[0282]

最大二叉树尺寸maxbtsize,
[0283]

最小四叉树尺寸minqtsize,
[0284]

分割索引partidx,
[0285]

变量treetype,其指定是使用单树(single_tree)还是双树对ctu进行分割,并且在使用双树时,指定当前正在处理亮度(dual_tree_luma)还是色度分量(dual_tree_chroma),
[0286][0287]
此过程的输出是变量allowbtsplit。
[0288]
表6

2基于btsplit的parallelttsplit和cbsize的规范
[0289][0290]
变量parallelttsplit和cbsize如表6

2中指定的被导出。
[0291]
变量allowbtsplit导出如下:
[0292]

如果以下条件中一个或多个为真,则将allowbtsplit设置为等于假:
[0293]

cbsize小于或等于minbtsizey
[0294]

cbwidth大于maxbtsize
[0295]

cbheight大于maxbtsize
[0296]

mttdepth大于或等于maxmttdepth
[0297]

treetype等于dual_tree_chroma,并且(cbwidth/subwidthc)*(cbheight/subheightc)小于或等于16
[0298][0299]

否则,如果以下所有条件为真,则将allowbtsplit设置为等于假
[0300]

btsplit等于split_bt_ver
[0301]

y0 cbheight大于pic_height_in_luma_samples
[0302]

否则,如果以下所有条件为真,则将allowbtsplit设置为等于假
[0303]

btsplit等于split_bt_ver
[0304]

cbheight大于maxtbsizey
[0305]

x0 cbwidth大于pic_width_in_luma_samples
[0306]

否则,如果以下所有条件为真,则将allowbtsplit设置为等于假
[0307]

btsplit等于split_bt_hor
[0308]

cbwidth大于maxtbsizey
[0309]

y0 cbheight大于pic_height_in_luma_samples
[0310]

否则,如果以下所有条件为真,则将allowbtsplit设置为等于假
[0311]

x0 cbwidth大于pic_width_in_luma_samples
[0312]

y0 cbheight大于pic_height_in_luma_samples
[0313]

cbwidth大于minqtsize
[0314]

否则,如果以下所有条件为真,则将allowbtsplit设置为等于假
[0315]

btsplit等于split_bt_hor
[0316]

x0 cbwidth大于pic_width_in_luma_samples
[0317]

y0 cbheight小于或等于pic_height_in_luma_samples
[0318]

否则,如果以下所有条件为真,则将allowbtsplit设置为等于假:
[0319]

mttdepth大于0
[0320]

partidx等于1
[0321]-mttsplitmode[x0][y0][mttdepth-1]等于parallelttsplit
[0322]

否则,如果以下所有条件为真,则将allowbtsplit设置为等于假
[0323]

btsplit等于split_bt_ver
[0324]

cbwidth小于或等于maxtbsizey
[0325]

cbheight大于maxtbsizey
[0326]

否则,如果以下所有条件为真,则将allowbtsplit设置为等于假
[0327]

btsplit等于split_bt_hor
[0328]

cbwidth大于maxtbsizey
[0329]

cbheight小于或等于maxtbsizey
[0330]

否则,将allowbtsplit设置为等于真。
[0331][0332]
此过程的输入是:
[0333]

三进制划分模式ttsplit,
[0334]

亮度样点中的编解码块宽度cbwidth,
[0335]

亮度样点中的编解码块高度cbheight,
[0336]

所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0),
[0337]

多种类型的树深度mttdepth
[0338]

具有偏移的最大多种类型的树深度maxmttdepth,
[0339]

最大三叉树尺寸maxttsize,
[0340]

变量treetype,其指定是使用单树(single_tree)还是双树对ctu进行分割,并且在使用双树时,指定当前正在处理亮度(dual_tree_luma)还是色度分量(dual_tree_chroma),
[0341][0342]
此过程的输出是变量allowttsplit。
[0343]
表6

3基于ttsplit的cbsize的规范
[0344][0345]
变量cbsize如表6

3中指定的被导出。
[0346]
变量allowttsplit导出如下:
[0347]

如果以下条件中一个或多个为真,则将allowttsplit设置为等于假:
[0348]

cbsize小于或等于2*minttsizey
[0349]

cbwidth大于min(maxtbsizey,maxttsize)
[0350]

cbheight大于min(maxtbsizey,maxttsize)
[0351]

mttdepth大于或等于maxmttdepth
[0352]

x0 cbwidth大于pic_width_in_luma_samples
[0353]

y0 cbheight大于pic_height_in_luma_samples
[0354]

treetype等于dual_tree_chroma,并且(cbwidth/subwidthc)*(cbheight/subheightc)小于或等于32
[0355][0356]

否则,将allowttsplit设置为等于真。
[0357]
等于0指定当前编解码单元是以帧间预测模式编解码的。pred_mode_flag等于1指定当前编解码单元是以帧内预测模式编解码的。
[0358]
当不存在pred_mode_flag时,推断如下:
[0359]-如果cbwidth等于4和cbheight等于4,则推断pred_mode_flag等于1。
[0360][0361]

否则,分别在解码i条带时推断pred_mode_flag等于1,在解码p或b条带时推断pred_mode_flag等于0。
[0362]
对于x=x0..x0 cbwidth-1并且y=y0..y0 cbheight-1,变量cupredmode[chtype][x][y]导出如下:
[0363]

如果pred_mode_flag等于0,则将cupredmode[chtype][x][y]设置为等于mode_inter。
[0364]

否则(pred_mode_flag等于1),将cupredmode[chtype][x][y]设置为等于mode_intra。
[0365]
等于1指定当前编解码单元是以ibc预测模式编解码的。pred_mode_ibc_flag等于0指定当前编解码单元不是以ibc预测模式编解码的。
[0366]
当不存在pred_mode_ibc_flag时,推断如下:
[0367]

如果cu_skip_flag[x0][y0]等于1,并且cbwidth等于4,并且cbheight等于4,则推断pred_mode_ibc_flag等于1。
[0368]

否则,如果cbwidth和cbheight都等于128,则推断pred_mode_ibc_flag等于0。
[0369][0370]

否则,分别在解码i条带时推断pred_mode_ibc_flag等于sps_ibc_enabled_flag的值,在解码p或b条带时推断pred_mode_ibc_flag等于0。
[0371]
当pred_mode_ibc_flag等于1时,对于x=x0..x0 cbwidth

1并且y=y0..y0 cbheight-1,将变量cupredmode[chtype][x][y]设置为等于mode_ibc。
[0372]
3.问题
[0373]
1.当前,ibc被视为mode_type_intra,并且因此禁止小色度块,这导致不必要的编解码效率损失。
[0374]
2.当前,调色板被视为mode_type_intra,并且因此禁止小色度块,这导致不必要的编解码效率损失。
[0375]
3.当前,小色度块约束不考虑颜色子采样格式。
[0376]
4.当前,对小块的相同分割和预测模式约束被应用于所有色度格式。然而,可能期望在4:2:0和4:2:2色度格式中对小块设计不同的约束机制。
[0377]
5.当前,调色板模式标志信令通知取决于modetype,这是不期望的,因为调色板可能不应用小块约束。
[0378]
6.当前,在cu_skip_flag等于1但mode_type等于mode_type_intra的情况下,对于p/b条带,推断ibc模式标志为0,这在语法解析中是不合法的。
[0379]
7.当前,对于scipu亮度块不允许非4x4亮度ibc模式,这可能是不期望的,并且可能导致编解码效率损失。
[0380]
8.仍然允许2x h色度块,这对硬件实现方式不友好。
[0381]
9.尽管ciip使用帧内预测,但ciip被视为mode_inter,这在一些情况下打破了约束。
[0382]
10.当应用scipu时,取决于亮度划分,可以信令通知色度的增量qp。例如,当在亮度样点中当前块维度是16
×
8并使用垂直tt划分时,可以应用局部双树。指定qgonc=qgonc&&(cbsubdiv 2《=cu_chroma_qp_offset_subdiv),因此,如果cbsubdiv 2《=cu_chroma_qp_offset_subdiv,则将qgonc设置为零。此条件设置假设色度分量也由tt划分。在局部双树的情况下,色度分量可能不会被划分,因此cbsubdiv可能大于cu_chroma_qp_offset_subdiv。应当将iscuchromaqpoffsetcoded设置为0以允许信令通知色度的qp。然而,因为将qgonc设置为0,所以不将iscuchromaqpoffsetcoded设置为0。
[0383]
11.无损编解码的最大变换尺寸可以与有损编解码的最大变换尺寸不同地设置。
[0384]
4.技术方案和实施例的示例
[0385]
以下列出的应被视为示例。这些技术不应狭义地解释。此外,可以以任何方式组合
这些技术。
[0386]
在本文档中,“mxn编解码树节点”指示m
×
n块,在亮度样点中m是块宽度,n是块高度,其可以被进一步分割,诸如通过qt/bt/tt。例如,块可以是qt节点或bt节点或tt节点。编解码树节点可以是编解码单元(例如,对于单树具有三个颜色分量,对于双树色度编解码具有两个色度颜色分量,而对于双树亮度编解码仅具有亮度颜色分量),或亮度编解码块,或色度编解码块。“小编解码树节点单元”可以指示在亮度样点中块尺寸mxn等于32/64/128的编解码树节点。
[0387]
如果没有特别提及,则在亮度样点中测量编解码块的宽度w和高度h。例如,mxn编解码块是指mxn亮度块,和/或两个(m/subwidthc)x(n/subheightc)色度块,其中subwidthc和subheightc由色度格式导出如下。
[0388][0389][0390]
1.是否和/或如何分割为小块可以取决于颜色格式。
[0391]
a.在一个示例中,对于4:4:4颜色格式,对色度块尺寸的约束可以遵循对亮度块的那些约束。
[0392]
b.在一个示例中,对于4:2:2颜色格式,对色度块尺寸的约束可以遵循对于4:2:0颜色格式的那些约束。
[0393]
c.在一个示例中,对于4:0:0和/或4:4:4色度格式,可以不应用对小块分割和/或预测模式的约束。
[0394]
d.在一个示例中,对于不同的色度格式可以不同地应用对小块分割和/或预测模式的约束。
[0395]
i.在一个示例中,对于具有水平bt划分的mxn(诸如8x8)编解码树节点,在4:2:2色度格式中,可以对于色度块和亮度块两者允许水平bt划分,而在4:2:0色度格式中,可以对于亮度块允许但对于色度块禁用水平bt划分。
[0396]
ii.在一个示例中,对于具有垂直bt划分的mxn(诸如16x4)编解码树节点,在4:2:2色度格式中,可以对于色度块和亮度块两者允许垂直bt划分,而在4:2:0色度格式中,可以对于亮度块允许但对于色度块禁用垂直bt划分。
[0397]
iii.在一个示例中,对于具有水平tt划分的mxn(诸如8x16)编解码树节点,在4:2:2色度格式中,可以对于色度块和亮度块两者允许水平tt划分,而在4:2:0色度格式中,可以对于亮度块允许但对于色度块禁用水平tt划分。
[0398]
iv.在一个示例中,对于具有垂直tt划分的mxn(诸如32x4)编解码树节点,在4:2:2
色度格式中,可以对于色度块和亮度块两者允许垂直tt划分,而在4:2:0色度格式中,可以对于亮度块允许但对于色度块禁用垂直tt划分。
[0399]
v.在一个示例中,对于4:0:0和/或4:4:4颜色格式,可以不应用小块约束。
[0400]
e.在一个示例中,是否启用scipu取决于颜色格式。
[0401]
i.在一个示例中,对于4:2:0和4:2:2颜色格式,启用scipu。
[0402]
ii.在一个示例中,对于4:0:0和/或4:4:4颜色格式,禁用scipu。
[0403]
1.在一个示例中,对于4:0:0和/或4:4:4颜色格式,modetype可以始终等于mode_type_all。
[0404]
2.在一个示例中,对于4:0:0和/或4:4:4颜色格式,modetypecondition可以始终等于0。
[0405]
2.如何确定用于编解码树节点的(子)块的预测模式(和/或modetype)可以取决于色度格式。
[0406]
a.在一个示例中,如果以下条件中的一个为真,则对于4:2:2色度格式,由此编解码树节点分割的(子)块的modetype可以等于mode_type_all,而对于4:2:0色度格式,modetype可以等于mode_type_intra或mode_type_inter。
[0407]
i.具有水平bt划分的mxn(诸如8x8)编解码树节点
[0408]
ii.具有垂直bt划分的mxn(诸如16x4)编解码树节点
[0409]
iii.具有水平tt划分的mxn(诸如8x16)编解码树节点
[0410]
iv.具有垂直tt划分的mxn(诸如32x4)编解码树节点
[0411]
3.提出将mode_type_intra重命名为mode_type_no_inter,并限制mode_inter的使用。
[0412]
a.在一个示例中,当编解码单元的modetype等于mode_type_no_inter时,可以禁止mode_inter。
[0413]
4.提出将mode_type_inter重命名为mode_type_no_intra,并限制mode_intra的使用。
[0414]
a.在一个示例中,当编解码单元的modetype等于mode_type_no_intra时,可以禁止mode_intra。
[0415]
5.可能永远不会以4:2:2和/或4:0:0和/或4:4:4色度格式信令通知模式约束标志。
[0416]
a.在一个示例中,当不存在模式约束标志时,可以将其推断为等于1。
[0417]
i.可替代地,当不存在模式约束标志时,可以将其推断为等于0。
[0418]
6.是否和/或如何在块宽度为m且块高度为n的mxn编解码块上应用scipu可以取决于颜色格式是4:2:0还是4:2:2。
[0419]
a.在一个示例中,在4:2:2颜色格式中,对于块宽度为m且块高度为n的mxn编解码块,仅如果m乘以n(表示为m*n)等于64或32,才可以启用scipu。
[0420]
b.在一个示例中,具有m*n=128的编解码树节点可能永远不会被视为4:2:2颜色格式的scipu块。
[0421]
c.在一个示例中,具有bt划分并且m*n=64的编解码树节点可能永远不会被视为4:2:2颜色格式的scipu块。
[0422]
d.在一个示例中,具有split_qt_flag等于1并且m*n=64的编解码树节点可以是4:2:2颜色格式的scipu块。
[0423]
e.在一个示例中,具有tt划分并且m*n=64的编解码树节点可以被视为4:2:2颜色格式的scipu块。
[0424]
f.在一个示例中,具有bt划分并且m*n=32的编解码树节点可以被视为4:2:2颜色格式的scipu块。
[0425]
g.在以上描述中,对于4:2:2颜色格式的scipu块,modetypecondition可以始终等于1。
[0426]
h.在以上描述中,对于4:2:2颜色格式的scipu块,父节点中的当前块和子叶节点下的所有子块均仅可以允许mode_type_intra。
[0427]
7.在4:2:2颜色格式中,scipu块的modetypecondition可以始终等于1。
[0428]
a.在一个示例中,对于4:2:2颜色格式,modetypecondition可以等于0或1。
[0429]
b.在一个示例中,对于4:2:2颜色格式的scipu块,modetypecondition可能永远不等于2。
[0430]
8.在4:2:2颜色格式中,scipu块的modetype可以始终等于mode_type_intra。
[0431]
a.在一个示例中,在4:2:2颜色格式中,modetype可以等于mode_type_all或mode_type_intra。
[0432]
b.在一个示例中,对于4:2:2颜色格式的scipu块,可以禁用mode_type_inter。
[0433]
9.是否允许块分割可以取决于modetype和/或块尺寸。
[0434]
a.在一个示例中,对于块是否允许bt和/或tt划分可以取决于modetype。
[0435]
i.在一个示例中,如果modetype等于mode_type_inter,则对于当前编解码块可以禁止bt划分(例如,将allowbtsplit设置为等于假)。
[0436]
ii.在一个示例中,如果modetype等于mode_type_inter,则对于当前编解码块可以禁止tt划分(例如,将allowttsplit设置为等于假)。
[0437]
b.在一个示例中,对于块是否允许bt和/或tt划分可以取决于modetype和块尺寸。
[0438]
i.在一个示例中,对于块宽度为m且块高度为n的mxn编解码块,当m*n小于或等于32并且modetype等于mode_type_inter时,可以禁止bt划分(例如,将allowbtsplit设置为假)。
[0439]
ii.在一个示例中,对于块宽度为m且块高度为n的mxn编解码块,当m*n小于或等于64并且modetype等于mode_type_inter时,可以禁止tt划分(例如,将allowttsplit设置为假)。
[0440]
10.当编解码树的modetypecurr等于mode_type_inter时,编解码树的划分可能受限制
[0441]
a.在一个示例中,当编解码树的modetypecurr等于mode_type_inter时,可以禁止bt划分。
[0442]
b.在一个示例中,当编解码树的modetypecurr等于mode_type_inter时,可以禁止tt划分。
[0443]
c.在一个示例中,当编解码树的modetypecurr等于mode_type_inter时,可以禁止qt划分。
[0444]
d.在一个示例中,当编解码树的modetypecurr等于mode_type_inter并且亮度块尺寸小于或等于32时,可以禁止bt划分。
[0445]
e.在一个示例中,当编解码树的modetypecurr等于mode_type_inter并且亮度块尺寸小于或等于64时,可以禁止tt划分。
[0446]
11.可以以帧间模式对treetype为dual_tree_luma的编解码单元进行编解码。
[0447]
a.在一个示例中,即使对于具有多个颜色分量的颜色格式,以帧间编解码模式(即,mode_inter)编解码的编解码单元也可以仅包含亮度分量。
[0448]
b.在一个示例中,对于dual_tree_luma块可能需要解析pred_mode_flag。
[0449]
c.在一个示例中,对于以帧间模式编解码的dual_tree_luma块,也可以应用对于single_tree的帧间模式的相同约束。
[0450]
i.在一个示例中,可以禁止4x4 dual_tree_luma帧间块。
[0451]
12.可以不允许块宽度等于m(诸如,m=2)色度样点的色度帧内(和/或ibc)块。
[0452]
a.在一个示例中,在双树中可以不允许2
×
n(诸如n≤64)色度帧内块。
[0453]
i.在一个示例中,当treetype等于dual_tree_chroma并且块宽度等于4个色度样点时,可以禁用垂直bt划分。
[0454]
ii.在一个示例中,当treetype等于dual_tree_chroma并且块宽度等于8个色度样点时,可以禁用垂直tt划分。
[0455]
b.在一个示例中,在单树中可以不允许2xn(诸如n《=64)色度帧内(和/或ibc)块。
[0456]
i.在一个示例中,对于具有垂直bt划分的m
×
n(诸如m=8和n《=64)编解码树节点,可以应用以下过程中的一个。
[0457]
1.对于4xn或4x(n/2)色度块,可以禁止垂直bt划分,但对于8xn亮度块,可以允许垂直bt划分。
[0458]
2.4xn或4x(n/2)色度块可以不是垂直bt划分,并且它可以由mode_intra或mode_ibc编解码。
[0459]
3.对于8xn亮度块和4xn或4x(n/2)色度块两者可以允许垂直bt划分,但是亮度块和色度块两者不以mode_intra编解码(例如,可以以mode_inter或mode_ibc编解码)。
[0460]
ii.在一个示例中,对于具有垂直tt划分的m
×
n(诸如m=16和n《=64)编解码树节点,可以应用以下过程中的一个。
[0461]
1.对于8xn或8x(n/2)色度块,可以禁止垂直tt划分,但对于16xn亮度块,可以允许垂直tt划分。
[0462]
2.8xn或8
×
(n/2)色度块可以不是垂直tt划分,并且以mode_intra或mode_ibc编解码。
[0463]
3.对于16xn亮度块和8xn或8
×
(n/2)色度块两者可以允许垂直tt划分,但是亮度块和色度块两者可以不以mode_intra编解码(例如,可以以mode_inter或mode_ibc编解码)。
[0464]
13.无论亮度块和/或色度块是否为小块尺寸,对于亮度块和/或色度块都可以允许ibc模式。
[0465]
a.在一个示例中,对于亮度块——包括8
×
4/8
×
8/16
×
4和4xn(诸如n《=64)亮度块——可以允许ibc模式,即使modetype等于mode_type_intra。
[0466]
b.在一个示例中,对于色度块可以允许ibc模式,即使modetype等于mode_type_intra。
[0467]
14.ibc预测模式标志的信令通知可以取决于预测模式类型(例如,mode_type_intra)。
[0468]
a.在一个示例中,当treetype不等于dual_tree_chroma并且modetype等于mode_type_intra时,可以在比特流中显式信令通知用于非skip块(例如,不以跳过模式编解码的编解码块)的ibc预测模式标志。
[0469]
15.可以取决于cu skip标志和模式类型(例如,modetype)来推断ibc预测模式标志。
[0470]
a.在一个示例中,如果当前块以跳过模式编解码(诸如cu_skip_flag等于1),并且modetype等于mode_type_intra,则ibc预测模式标志(诸如pred_mode_ibc_flag)可以推断为等于1。
[0471]
16.调色板模式标志的显式信令通知可以不取决于modetype。
[0472]
a.在一个示例中,无论modetype是什么,调色板模式标志(诸如pred_mode_plt_flag)信令通知都可以取决于条带类型、块尺寸、预测模式等。
[0473]
b.在一个示例中,当modetype等于mode_type_inter或mode_type_intra时,将调色板模式标志(诸如pred_mode_plt_flag)推断为0。
[0474]
17.当modetype等于mode_type_inter时可以允许使用ibc模式
[0475]
a.在一个示例中,当modetype等于mode_type_intra时,可以禁止色度ibc。
[0476]
b.在一个示例中,当modetype等于mode_type_intra或mode_type_inter时,可以允许使用ibc模式。
[0477]
c.在一个示例中,无论modetype是什么,都可以允许使用ibc模式。
[0478]
d.在一个示例中,在一个scipu内,可以允许ibc和帧间模式两者。
[0479]
e.在一个示例中,ibc色度块的尺寸可以总是对应于对应的亮度块的尺寸。
[0480]
f.在一个示例中,当modetype等于mode_type_inter并且亮度中编解码单元尺寸为4x4时,可以跳过pred_mode_ibc_flag的信令通知并且可以推断pred_mode_ibc_flag等于1。
[0481]
18.当modetype为mode_type_inter时,可以允许使用调色板模式
[0482]
a.在一个示例中,当modetype为mode_type_intra时,可以禁止色度调色板。
[0483]
b.在一个示例中,当modetype等于mode_type_intra或mode_type_inter时,可以允许使用ibc模式。
[0484]
c.在一个示例中,不管modetype是什么,可以允许使用ibc模式。
[0485]
d.在一个示例中,当modetype等于mode_type_intra或mode_type_inter时,可以允许使用调色板模式。
[0486]
e.在一个示例中,不管modetype是什么,可以允许使用调色板模式。
[0487]
f.在一个示例中,在一个scipu内,可以允许调色板和帧间模式二者。
[0488]
g.在一个示例中,在一个scipu内,可以允许调色板、ibc和帧间模式全部。
[0489]
h.在一个示例中,调色板色度块的尺寸可以总是对应于对应的亮度块的尺寸。
[0490]
i.在一个示例中,当modetype等于mode_type_inter并且在亮度中编解码单元尺
寸为4x4时,可以跳过pred_mode_plt_flag的信令通知并且可以推断pred_mode_plt_flag等于1。
[0491]
j.在一个示例中,当modetype等于mode_type_inter并且亮度中编解码单元尺寸为4
×
4时,可以发送一条消息来指示当前预测模式是ibc还是调色板。
[0492]
k.在一个示例中,是否启用/禁用调色板模式可以取决于条带类型和modetype。
[0493]
i.在一个示例中,对于具有mode_type_intra的i条带,可以启用调色板模式。
[0494]
ii.在一个示例中,对于具有mode_type_inter的p/b条带,可以启用调色板模式。
[0495]
19.当启用调色板模式时,可以禁止局部双树。
[0496]
i.在一个示例中,当启用调色板模式时,modetypecondition可以始终设置为等于0。
[0497]
20.对于宽度等于m(例如,m=2)或高度等于n(例如,n=2)的小色度块,被允许的帧内预测模式可以被限制为与大色度块所允许的帧内预测模式不同。
[0498]
a.在一个示例中,可以仅使用可用色度帧内预测模式的帧内预测模式的子集。
[0499]
b.在一个示例中,可以仅使用intra_dc模式。
[0500]
c.在一个示例中,可以仅使用intra_planar模式。
[0501]
d.在一个示例中,可以仅使用intra_angular18模式。
[0502]
e.在一个示例中,可以仅使用intra_angular50模式。
[0503]
f.在一个示例中,可以禁止cclm模式。
[0504]
21.对于宽度等于m(例如,m=2)或高度等于n(例如,n=2)的小色度块,变换类型可以被限制为与大色度块所允许的变换类型不同。
[0505]
a.在一个示例中,可以仅使用变换跳过。
[0506]
b.在一个示例中,可以仅使用一维变换。
[0507]
c.在一个示例中,禁止支持多种类型变换的编解码工具。
[0508]
i.可替代地,省略支持多种类型变换的编解码工具的信令通知。
[0509]
22.ciip可以被视为mode_type_intra。
[0510]
a.在一个示例中,当使用双树分割时,可以允许ciip模式。
[0511]
i.在一个示例中,当cu类型为dual_treee_chroma时,可以允许ciip模式。
[0512]
b.可替代地,ciip可以被视为mode_type_inter
[0513]
i.在一个示例中,当色度块宽度等于m(例如,m=2)时,可以禁止ciip模式。
[0514]
ii.在一个示例中,当色度块宽度等于m(例如,m=2)时,ciip中用于色度的帧内预测模式可以被限制为简单帧内预测模式。
[0515]
1.在一个示例中,当色度块宽度等于m(例如,m=2)时,可以将intra_dc用于色度帧内预测。
[0516]
2.在一个示例中,当色度块宽度等于m(例如,m=2)时,可以将intra_angular18用于色度帧内预测。
[0517]
3.在一个示例中,当色度块宽度等于m(例如,m=2)时,可以将intra_angular50用于色度帧内预测。
[0518]
iii.在一个示例中,ciip中用于色度的帧内预测模式可以被限制为简单的帧内预测模式。
[0519]
1.在一个示例中,可以将intra_dc用于色度帧内预测。
[0520]
2.在一个示例中,可以将intra_angular18模式用于色度帧内预测。
[0521]
3.在一个示例中,可以将intra_angular50模式用于色度帧内预测。
[0522]
23.对于以上项目符号,变量m和/或n可以是预定义的或信令通知的。
[0523]
a.在一个示例中,m和/或n可以进一步取决于颜色格式(例如4:2:0、4:2:2、4:4:4)。
[0524]
24.modetype可以扩展为覆盖更多类型。
[0525]
a.在一个示例中,modetype可以为mode_type_ibc。当modetype等于mode_type_ibc时,将预测模式推断为ibc。
[0526]
i.在一个示例中,在这种情况下,不信令通知pred_mode_flag。
[0527]
ii.在一个示例中,在这种情况下,不信令通知pred_mode_ibc_flag。
[0528]
iii.在一个示例中,在这种情况下,不信令通知pred_mode_plt_flag。
[0529]
b.在一个示例中,modetype可以为mode_type_palette。当modetype等于mode_type_palette时,将预测模式推断为调色板模式。
[0530]
i.在一个示例中,在这种情况下,不信令通知pred_mode_flag。
[0531]
ii.在一个示例中,在这种情况下,不信令通知pred_mode_ibc_flag。
[0532]
iii.在一个示例中,在这种情况下,不信令通知pred_mode_plt_flag。
[0533]
c.在一个示例中,可以由索引来替换mode_constraint_flag以表明使用哪一个允许的modetype。
[0534]
25.在一个示例中,对于维度为w
×
h的块是否允许qt划分可以取决于modetype连同维度。
[0535]
a.例如,如果modetype等于mode_type_inter并且w等于8且h等于8,则禁止qt划分。
[0536]
26.在一个示例中,对于维度为w
×
h的块是否允许垂直tt划分可以取决于modetype连同维度。
[0537]
a.例如,如果modetype等于mode_type_inter并且w等于16且h等于4,则禁止垂直tt划分。
[0538]
27.在一个示例中,对于维度为w
×
h的块是否允许水平tt划分可以取决于modetype连同维度。
[0539]
a.例如,如果modetype等于mode_type_inter并且w等于4且h等于16,则禁止水平tt划分。
[0540]
28.在一个示例中,对于维度为w
×
h的块是否允许垂直bt划分可以取决于modetype连同维度。
[0541]
a.例如,如果modetype等于mode_type_inter并且w等于8且h等于4,则禁止垂直bt划分。
[0542]
29.在一个示例中,对于维度为w
×
h的块是否允许水平tt划分可以取决于modetype连同维度。
[0543]
a.例如,如果modetype等于mode_type_inter并且w等于4且h等于8,则禁止水平bt划分。
[0544]
30.在一个示例中,是否由modetype推断cu的预测模式可以取决于颜色分量和/或块维度w
×
h。
[0545]
a.例如,由modetype推断色度cu的预测模式;但是信令通知而不是由modetype推断亮度cu的预测模式。
[0546]
i.例如,如果w》4或h》4,则信令通知而不是由modetype推断亮度cu的预测模式。
[0547]
31.当应用scipu时,是否和/或如何信令通知与第一分量的增量qp有关的信息可以取决于第一分量的划分方式。
[0548]
a.在一个示例中,当应用scipu时,是否和/或如何信令通知与第一分量的增量qp有关的信息可以取决于第一分量的划分方式并且与第二分量的划分方式解耦。
[0549]
b.在一个示例中,第一分量是亮度,第二分量是色度。
[0550]
c.在一个示例中,第一分量是色度,第二分量是亮度。
[0551]
32.当应用双树和/或局部双树编解码结构时,在第二分量的解码或解析过程期间不能修改与第一分量的增量qp有关的任何变量。
[0552]
a.在一个示例中,可以根据scipu来使用局部双树编解码结构。
[0553]
b.在一个示例中,第一分量是亮度,第二分量是色度。
[0554]
i.变量可以是iscuqpdeltacoded。
[0555]
c.在一个示例中,第一分量是色度,第二分量是亮度。
[0556]
i.变量可以是iscuchromaqpoffsetcoded。
[0557]
33.当应用scipu时,在具体区域中与分量(诸如亮度或色度)的增量qp有关的信息最多信令通知一次,在该具体区域中亮度分量和色度分量必须共享相同的模式类型(诸如mode_type_inter或mode_type_intra)。
[0558]
a.在一个示例中,具体区域被视为量化组。
[0559]
34.可以不允许块宽度为m且块高度为n的mxn色度帧内块。
[0560]
a)在一个示例中,dc预测可以用于m
×
n色度帧内预测,例如,m=2个色度样点,n=8和/或16和/或32个色度样点。
[0561]
i.在一个示例中,重建的邻近像素可以不用于dc预测。
[0562]
ii.在一个示例中,可以将邻近参考像素设置为等于1《《(bitdepth-1)以用于dc预测。
[0563]
iii.在一个示例中,pdpc可以不应用于dc预测。
[0564]
iv.在一个示例中,dc模式信息可以不针对mxn色度帧内块进行编解码而是被导出。
[0565]
b)在一个示例中,cclm预测可以用于m
×
n色度帧内预测,例如,m=2个色度样点,n=8和/或16和/或32个色度样点。
[0566]
i.在一个示例中,重建的邻近像素可以不用于cclm预测。
[0567]
ii.在一个示例中,对于从色度重建值rec
l
导出色度预测值predc的cclm预测predc=a*rec
l
b,在诸如sps/vps/pps/图片/子图片/条带/片/砖块/ctu行/ctu/vpdu/cu/pu/tu的视频单元的开始,可以将参数a和b初始化为默认固定值(诸如a=0,b=512)。
[0568]
1.在一个示例中,可以即时维护先进先出表以更新cclm参数a和b。
[0569]
iii.在一个示例中,pdpc可以不应用于cclm预测。
[0570]
iv.在一个示例中,cclm模式信息可以不针对mxn色度帧内块进行编解码而是被导出。
[0571]
v.可替代地,所提出的方法可以应用于宽度不等于m或高度不等于n的其它种类的cclm编解码的色度块。
[0572]
1.在一个示例中,先前编解码的块的cclm参数可以用于当前块,而不是基于当前块的邻近块的重建信息来导出。
[0573]
2.在一个示例中,cclm参数可以存储在表中并且诸如使用fifo来即时更新。
[0574]
c)在一个示例中,在双树中可以不允许mxn色度帧内块,例如,m=2个色度样点,n=8和/或16和/或32个色度样点。
[0575]
i.在一个示例中,当treetype等于dual_tree_chroma时,对于维度等于(m*a)x(n*b)的编解码树节点,可以禁用x划分,其中m*a为色度样点中的编解码树节点的宽度,n*
[0576]
b为色度样点中的编解码树节点的高度。
[0577]
1.在一个示例中,x是垂直bt划分,a=2,b=1
[0578]
2.在一个示例中,x是水平bt划分,a=1,b=2
[0579]
3.在一个示例中,x是垂直tt划分,a=4,b=1
[0580]
4.在一个示例中,x是水平tt划分,a=1,b=4
[0581]
d)在一个示例中,在单树中可以不允许mxn色度帧内块,例如m=2个色度样点,n=8个和/或16个和/或32个色度样点。
[0582]
i.在一个示例中,在单树中,对于维度等于(m*a*subwidthc)x(n*b*subheightc)的编解码树节点的色度分量,可以禁用x划分,其中m*a为亮度样点中的编解码树节点的宽度,n*b为亮度样点中的编解码树节点的高度,subwidthc和subheightc为宽度和高度维度上的色度子采样率,例如,对于4:2:0色度格式,subwidthc和subheightc等于2。
[0583]
1.在一个示例中,x=垂直bt划分,a=2,b=1
[0584]
2.在一个示例中,x=垂直tt划分,a=4,b=1
[0585]
3.在一个示例中,x=水平bt划分,a=1,b=2
[0586]
4.在一个示例中,x=水平tt划分,a=1,b=2
[0587]
5.在一个示例中,x=水平tt划分,a=1,b=4
[0588]
6.在一个示例中,非划分色度块的维度可以等于(m*a)
×
(n*d)。
[0589]
7.在一个示例中,可以将非划分色度块确定为mode_type_intra,并且可以仅对于该色度块允许帧内预测(和/或ibc和/或plt模式)。
[0590]
8.在一个示例中,对于该编解码树节点的亮度分量可以允许x划分,例如,可以将亮度编解码树节点进一步划分为多个亮度子节点,并且可以将每个亮度子节点确定为mode_type_inter,同时可以仅允许帧间预测(和/或ibc模式)。
[0591]
9.可替代地,色度分量可以与并置的亮度分量一起被进一步划分,但是模式类型可以等于mode_type_inter,并且可以仅允许帧间预测(和/或ibc模式)。
[0592]
ii.在一个示例中,ciip中可以不允许m
×
n色度帧内块。
[0593]
1.在一个示例中,对于亮度样点中维度等于(m*subwidthc)x(n*subheightc)的编解码块,可以不允许ciip。
[0594]
a)当不允许ciip时,相关联的语法元素(诸如ciip标志)可能未编解码在比特流
中。
[0595]
2.在一个示例中,ciip中的色度混合过程可以仅填充有来自帧间部分的预测。
[0596]
a)在一个示例中,仅亮度帧内预测可以应用于ciip编解码的块,而色度帧内预测可以不应用于在亮度样点中维度等于(m*subwidthc)x(n*subheightc)的ciip编解码的块。
[0597]
3.在一个示例中,dc预测可以用于ciip块的m
×
n色度帧内预测,如项目符号34(a)中所述。
[0598]
4.在一个示例中,cclm预测可以用于ciip块的m
×
n色度帧内预测,如项目符号34(b)中所述。
[0599]
lesslesssizey和maxctb/maxtbsize/maxts尺寸之间的关系35.对于无损(和/或接近无损编解码)和有损编解码,可以以不同的方式信令通知和/或推断最大变换尺寸。
[0600]
a.在一个示例中,由于不涉及变换,因此无损和/或接近无损编解码的最大变换尺寸可以称为其它术语,诸如“最大残差尺寸”或“最大表示尺寸”。在本公开中,可以称为“maxlosslesstbsizey”。
[0601]
b.在一个示例中,块的无损编解码可以称为对于块等于1的cu_transquant_bypass_flag。
[0602]
c.在一个示例中,块的接近无损编解码可以称为具有小于给定阈值的qp的编解码。
[0603]
i.在一个示例中,可以在dps/vps/sps/pps/片/条带/砖块报头中指示阈值。
[0604]
d.在一个示例中,块的接近无损编解码可以称为具有小于给定阈值的qp的编解码,并且对个该块transform_skip_flag等于1。
[0605]
i.在一个示例中,可以在dps/vps/sps/pps/片/条带/砖块报头中指示阈值。
[0606]
e.可以以可用于有损编解码的第二最大变换尺寸和/或最大编解码树单元尺寸和/或最大变换跳过尺寸为条件,设置无损和/或接近无损编解码的第一最大变换尺寸(例如,maxlosslesstbsizey)。
[0607]
f.可以在诸如sps/vps/pps/子图片/条带/片/砖块/ctu/vpdu的语法元素(se)的视频单元级别信令通知无损和/或接近无损编解码的最大变换尺寸。
[0608]
i.在一个示例中,可以取决于最大ctb尺寸(例如,log2_ctu_size_minus5、ctbsizey等)来信令通知se。
[0609]
1.例如,当log2_ctu_size_minus5大于n(诸如,n=0)时,可以信令通知标志。
[0610]
ii.在一个示例中,可以取决于最大变换尺寸(例如,sps_max_luma_transform_size_64_flag、maxtbsize等)来信令通知se。
[0611]
1.例如,当sps_max_luma_transform_size_64_flag等于m(诸如m=1)时,可以信令通知se。
[0612]
iii.在一个示例中,可以取决于最大变换跳过尺寸(例如,log2_transform_skip_max_size_minus2、maxtssize等)来信令通知se。
[0613]
1.例如,当log2_transform_skip_max_size_minus2大于k(诸如k=3)时,可以信令通知se。
[0614]
iv.在一个示例中,可以信令通知log(maxlosslesstbsizey)和x之间的增量值。
[0615]
1.例如,x可以等于log2_ctu_size_minus5
[0616]
2.例如,x可以等于sps_max_luma_transform_size_64_flag
[0617]
3.例如,x可以等于log2_transform_skip_max_size_minus2
[0618]
4.例如,x可以等于固定整数。
[0619]
5.在一个示例中,可以信令通知delta

k,其中k是整数,诸如1。
[0620]
v.在一个示例中,可以信令通知maxlosslesstbsizey和x之间的增量值。
[0621]
1.例如,x可以等于ctbsizey
[0622]
2.例如,x可以等于maxtbsize
[0623]
3.例如,x可以等于maxtssize
[0624]
4.例如,x可以等于固定整数。
[0625]
5.在一个示例中,可以信令通知delta

k,其中k是整数,诸如1。
[0626]
vi.在一个示例中,可以从se导出视频单元(诸如序列/图片/子图片/条带/片/ctu/vpdu/cu/pu/tu)的maxlosslesstbsizey。
[0627]
vii.se可以是标志。
[0628]
viii.当标志不存在时,可以推断它等于正整数n。
[0629]
g.在一个示例中,如果将无损和/或接近无损编解码应用于视频单元(诸如cu_transquant_bypass_flag等于1),则可以将视频单元的最大变换尺寸设置为等于maxlosslesstbsizey,而不是maxtbsizey。
[0630]
h.可替代地,可以导出而不是信令通知视频单元(诸如,序列/图片/子图片/条带/片/ctu/vpdu/cu/pu/tu)的无损和/或接近无损编解码的最大变换尺寸。
[0631]
i.例如,可以将其设置为等于固定整数值m(诸如在亮度样点中m=32)。
[0632]
ii.例如,可以将其设置为等于可用于有损编解码的第二最大变换尺寸
[0633]
iii.例如,可以将其设置为等于最大编解码树单元尺寸,
[0634]
iv.例如,可以将其设置为等于vpdu尺寸,
[0635]
v.例如,可以将其设置为等于最大变换跳过块尺寸。
[0636]
vi.例如,可以将其设置为等于最大残差编解码块尺寸。
[0637]
36.对于通过无损编解码(和/或接近无损编解码)的mxn残差块,取决于maxlosslesstbsizey,可以拆分为多于一个较小残差子块。
[0638]
a.拆分之后,所有子块的宽度和高度不大于maxlosslesstbsizey。
[0639]
b.在一个示例中,可以以递归的方式将它拆分为子块,直到所有子块的宽度和高度不大于maxlosslesstbsizey。
[0640]
去块相关
[0641]
37.调色板模式可以在mode_type_all或mode_type_intra中被启用,但是在mode_type_inter中总是不允许。
[0642]
38.当一侧是ibc模式并且另一侧是调色板模式时,色度分量的去块边界强度(bs)可以被设置为0。
[0643]
a.在一个示例中,当一侧是ibc模式并且另一侧是调色板模式时,色度分量的bs在chromaarraytype不等于0时被设置为0。
[0644]
变换跳过块的最小允许qp相关
[0645]
39.可以从其推断输入比特深度的语法元素(例如,在jvet-r0045中示出的
internal_minus_input_bit_depth)可以根据某个简表来约束。
[0646]
a.在一个示例中,在10比特简表中,(qpprimetsmin

4)/6可以被约束在[0,2]的范围内。
[0647]
b.在一个示例中,在8比特简表中,(qpprimetsmin

4)/6可以被约束为0。
[0648]
c.在一个示例中,在(k 8)比特简表中,(qpprimetsmin

4)/6可以被约束在[0,k]内。
[0649]
d.在一个示例中,在(k 8)比特简表中,(qpprimetsmin

4)/6可以被约束在[0,k]内。
[0650]
40.最小允许qp(例如,qpprimetsmin)可以根据某个简表来约束。
[0651]
a.在一个示例中,在10比特简表中,(qpprimetsmin

4)/6可以被约束在[0,2]的范围内。
[0652]
b.在一个示例中,在8比特简表中,(qpprimetsmin

4)/6可以被约束为0。
[0653]
c.在一个示例中,在(k 8)比特简表中,(qpprimetsmin

4)/6可以被约束在[0,k]内。
[0654]
d.在一个示例中,在(k 8)比特简表中,(qpprimetsmin

4)/6可以被约束在[0,k]内。
[0655]
5.实施例
[0656]
新添加的部分以标记,并且从vvc工作草案中删除的部分使用双括号标记(例如,表示删除字符“a”)。修改基于最新的vvc工作草案(jvet-o2001-v11)
[0657]
5.1示例实施例#1
[0658][0659]
7.4.9.4编解码树语义
[0660]
变量modetypecondition导出如下:
[0661]

如果以下条件中的一个为真,则将modetypecondition设置为等于0
[0662]

slice_type==i,并且qtbtt_dual_tree_intra_flag等于1
[0663]

modetypecurr不等于mode_type_all
[0664][0665]

否则,如果以下条件中的一个为真,则将modetypecondition设置为等于1
[0666]

cbwidth*cbheight等于64,并且split_qt_flag等于1
[0667]

cbwidth*cbheight等于64,并且mttsplitmode[x0][y0][mttdepth]等于split_tt_hor或split_tt_ver
[0668]

cbwidth*cbheight等于32,并且mttsplitmode[x0][y0][mttdepth]等于split_bt_hor或split_bt_ver
[0669]

否则,如果以下条件中的一个为真,则将modetypecondition设置为等于1 (slice_type!=i?1:0)
[0670]

cbwidth*cbheight等于64,并且mttsplitmode[x0][y0][mttdepth]等于split_bt_hor或split_bt_ver
[0671]

cbwidth*cbheight等于128,并且mttsplitmode[x0][y0][mttdepth]等于split_tt_hor或split_tt_ver
[0672]

否则,将modetypecondition设置为等于0
[0673]
5.2示例实施例#2
[0674]
以下实施例关于:调色板模式标志的信令通知不取决于modetype。
[0675]
7.3.8.5编解码单元语法
[0676][0677][0678]
5.3示例实施例#3
[0679][0680]
pred_mode_ibc_flag等于1指定当前编解码单元是以ibc预测模式下编解码的。pred_mode_ibc_flag等于0指定当前编解码单元不是以ibc预测模式编解码的。
[0681]
当不存在pred_mode_ibc_flag时,推断如下:
[0682]

如果cu_skip_flag[x0][y0]等于1,并且cbwidth等于4,并且cbheight等于4,则推断pred_mode_ibc_flag等于1。
[0683]

否则,如果cbwidth和cbheight都等于128,则推断pred_mode_ibc_flag等于0。
[0684]

[[否则,如果cu_skip_flag[x0][y0]等于1,并且modetype等于mode_type_
intra,则推断pred_mode_ibc_flag等于1。]]
[0685]

否则,如果modetype等于mode_type_inter,则推断pred_mode_ibc_flag等于0。
[0686]

否则,如果treetype等于dual_tree_chroma,则推断pred_mode_ibc_flag等于0。
[0687]

否则,分别在解码i条带时推断pred_mode_ibc_flag等于sps_ibc_enabled_flag的值,在解码p或b条带时推断pred_mode_ibc_flag等于0。
[0688]
当pred_mode_ibc_flag等于1时,对于x=x0..x0 cbwidth

1并且y=y0..y0 cbheight-1,将变量cupredmode[chtype][x][y]设置为等于mode_ibc。
[0689]
5.4示例实施例#4
[0690][0691]
7.3.8.5编解码单元语法
[0692][0693]
5.5示例实施例#5
[0694][0695]
7.4.9.4编解码树语义
[0696]
变量modetypecondition导出如下:
[0697]

如果以下条件中的一个为真,则将modetypecondition设置为等于0
[0698]

slice_type==i,并且qtbtt_dual_tree_intra_flag等于1
[0699]

modetypecurr不等于mode_type_all
[0700]

否则,如果以下条件中的一个为真,则将modetypecondition设置为等于1
[0701]

cbwidth*cbheight等于64,并且split_qt_flag等于1
[0702]

cbwidth*cbheight等于64,并且mttsplitmode[x0][y0][mttdepth]等于split_tt_hor或split_tt_ver
[0703]

cbwidth*cbheight等于32,并且mttsplitmode[x0][y0][mttdepth]等于split_
bt_hor或split_bt_ver
[0704]

否则,如果以下条件中的一个为真,则将modetypecondition设置为等于1 (slice_type!=i?1:0)
[0705]

cbwidth*cbheight等于64,并且mttsplitmode[x0][y0][mttdepth]等于split_bt_hor或split_bt_ver,
[0706]

cbwidth*cbheight等于128,并且mttsplitmode[x0][y0][mttdepth]等于split_tt_hor或split_tt_ver,tt_hor或split_tt_ver,
[0707]

否则,将modetypecondition设置为等于0
[0708]
5.6示例实施例#6
[0709]
以下实施方式关于:在单树中禁止2
×
n色度帧内块。
[0710]
7.4.9.4编解码树语义
[0711]
变量modetypecondition导出如下:
[0712]

如果以下条件中的一个为真,则将modetypecondition设置为等于0
[0713]

slice_type==i,并且qtbtt_dual_tree_intra_flag等于1
[0714]

modetypecurr不等于mode_type_all
[0715]

否则,如果以下条件中的一个为真,则将modetypecondition设置为等于1
[0716]

cbwidth*cbheight等于64,并且split_qt_flag等于1
[0717]

cbwidth*cbheight等于64,并且mttsplitmode[x0][y0][mttdepth]等于split_tt_hor或split_tt_ver
[0718]

cbwidth*cbheight等于32,并且mttsplitmode[x0][y0][mttdepth]等于split_bt_hor或split_bt_ver
[0719]

否则,如果以下条件中的一个为真,则将modetypecondition设置为等于1 (slice_type!=i?1:0)
[0720]

cbwidth*cbheight等于64,并且mttsplitmode[x0][y0][mttdepth]等于split_
bt_hor或split_bt_ver
[0721]

cbwidth*cbheight等于128,并且mttsplitmode[x0][y0][mttdepth]等于split_tt_hor或split_tt_ver
[0722][0723]

否则,将modetypecondition设置为等于0
[0724]
5.7示例实施例#7
[0725]
以下实施例关于:在双树中禁止2
×
n色度帧内块。
[0726]
6.4.2允许的二进制划分过程
[0727]
变量allowbtsplit导出如下:
[0728]

如果以下条件中一个或多个为真,则将allowbtsplit设置为等于假:
[0729]

cbsize小于或等于minbtsizey
[0730]

cbwidth大于maxbtsize
[0731]

cbheight大于maxbtsize
[0732]

mttdepth大于或等于maxmttdepth
[0733]

treetype等于dual_tree_chroma,并且(cbwidth/subwidthc)*(cbheight/subheightc)小于或等于16
[0734][0735][0736]

treetype等于dual_tree_chroma,并且modetype等于mode_type_intra
[0737]

[0738]
6.4.3允许的三进制划分过程
[0739]
变量allowttsplit导出如下:
[0740]

如果以下条件中的一个或多个为真,则将allowttsplit设置为等于假:
[0741]

cbsize小于或等于2*minttsizey
[0742]

cbwidth大于min(maxtbsizey,maxttsize)
[0743]

cbheight大于min(maxtbsizey,maxttsize)
[0744]

mttdepth大于或等于maxmttdepth
[0745]

x0 cbwidth大于pic_width_in_luma_samples
[0746]

y0 cbheight大于pic_height_in_luma_samples
[0747]

treetype等于dual_tree_chroma,并且(cbwidth/subwidthc)*(cbheight/subheightc)小于或等于32
[0748][0749]

treetype等于dual_tree_chroma,并且modetype等于mode_type_intra
[0750]

否则,将allowttsplit设置为等于真。
[0751]
5.8示例实施例#8
[0752]
以下实施例关于:对于scipu色度块启用mode_ibc。
[0753]
7.3.8.5编解码单元语法
[0754][0755][0756]
5.9示例实施例#9,当modetype为mode_type_inter时禁止块分割(解决方案1)
[0757]
6.4.2允许的二进制划分过程
[0758]
变量allowbtsplit导出如下:
[0759]

如果以下条件中一个或多个为真,则将allowbtsplit设置为等于假:
[0760]

cbsize小于或等于minbtsizey
[0761]

cbwidth大于maxbtsize
[0762]

cbheight大于maxbtsize
[0763]

mttdepth大于或等于maxmttdepth
[0764]

treetype等于dual_tree_chroma,并且(cbwidth/subwidthc)*(cbheight/subheightc)小于或等于16
[0765][0766]

treetype等于dual_tree_chroma,并且modetype等于mode_type_intra
[0767]

[0768]
6.4.3允许的三进制划分过程
[0769]
变量allowttsplit导出如下:
[0770]

如果以下条件中的一个或多个为真,则将allowttsplit设置为等于假:
[0771]

cbsize小于或等于2*minttsizey
[0772]

cbwidth大于min(maxtbsizey,maxttsize)
[0773]

cbheight大于min(maxtbsizey,maxttsize)
[0774]

mttdepth大于或等于maxmttdepth
[0775]

x0 cbwidth大于pic_width_in_luma_samples
[0776]

y0 cbheight大于pic_height_in_luma_samples
[0777]

treetype等于dual_tree_chroma,并且(cbwidth/subwidthc)*(cbheight/subheightc)小于或等于32
[0778][0779]

treetype等于dual_tree_chroma,并且modetype等于mode_type_intra
[0780]

否则,将allowttsplit设置为等于真。
[0781]
5.10示例实施例#10,当modetype为mode_type_inter时禁止块分割(解决方案2)
[0782]
6.4.2允许的二进制划分过程
[0783]
变量allowbtsplit导出如下:
[0784]

如果以下条件中一个或多个为真,则将allowbtsplit设置为等于假:
[0785]

cbsize小于或等于minbtsizey
[0786]

cbwidth大于maxbtsize
[0787]

cbheight大于maxbtsize
[0788]

mttdepth大于或等于maxmttdepth
[0789]

treetype等于dual_tree_chroma,并且(cbwidth/subwidthc)*(cbheight/subheightc)小于或等于16
[0790][0791]

treetype等于dual_tree_chroma,并且modetype等于mode_type_intra
[0792]

[0793]
6.4.3允许的三进制划分过程
[0794]
变量allowttsplit导出如下:
[0795]

如果以下条件中的一个或多个为真,则将allowttsplit设置为等于假:
[0796]

cbsize小于或等于2*minttsizey
[0797]

cbwidth大于min(maxtbsizey,maxttsize)
[0798]

cbheight大于min(maxtbsizey,maxttsize)
[0799]

mttdepth大于或等于maxmttdepth
[0800]

x0 cbwidth大于pic_width_in_luma_samples
[0801]

y0 cbheight大于pic_height_in_luma_samples
[0802]

treetype等于dual_tree_chroma,并且(cbwidth/subwidthc)*(cbheight/subheightc)小于或等于32
[0803][0804]

treetype等于dual_tree_chroma,并且modetype等于mode_type_intra
[0805]

否则,将allowttsplit设置为等于真。
[0806]
5.11示例实施例#11
[0807]
以下实施例是关于当导出mode_type_inter时对编解码树的进一步分割的约束。
[0808]
7.3.8.4编解码树语法
[0809][0810]
5.12示例实施例#12
[0811]
以下实施例是关于小块分割的约束,并且当启用调色板模式时不应用预测模式。
[0812]
7.4.9.4编解码树语义
[0813]
变量modetypecondition导出如下:
[0814]

如果以下条件中的一个为真,则将modetypecondition设置为等于0
[0815]

slice_type==i,并且qtbtt_dual_tree_intra_flag等于1
[0816]

modetypecurr不等于mode_type_all
[0817][0818]

否则,如果以下条件中的一个为真,则将modetypecondition设置为等于1
[0819]

cbwidth*cbheight等于64,并且split_qt_flag等于1
[0820]

cbwidth*cbheight等于64,并且mttsplitmode[x0][y0][mttdepth]等于split_tt_hor或split_tt_ver
[0821]

cbwidth*cbheight等于32,并且mttsplitmode[x0][y0][mttdepth]等于split_bt_hor或split_bt_ver
[0822]

否则,如果以下条件中的一个为真,则将modetypecondition设置为等于1 (slice_type!=i?1:0)
[0823]

cbwidth*cbheight等于64,并且mttsplitmode[x0][y0][mttdepth]等于split_bt_hor或split_bt_ver
[0824]

cbwidth*cbheight等于128,并且mttsplitmode[x0][y0][mttdepth]等于split_tt_hor或split_tt_ver
[0825]

否则,将modetypecondition设置为等于0
[0826]
5.13示例实施例#13
[0827]
以下实施例是关于4:2:2颜色格式的小色度帧内块约束。
[0828]
7.4.9.4编解码树语义
[0829]
变量modetypecondition导出如下:
[0830]

如果以下条件中的一个为真,则将modetypecondition设置为等于0
[0831]

slice_type==i,并且qtbtt_dual_tree_intra_flag等于1
[0832]

modetypecurr不等于mode_type_all
[0833]

否则,如果以下条件中的一个为真,则将modetypecondition设置为等于1
[0834]

cbwidth*cbheight等于64,并且split_qt_flag等于1
[0835]

cbwidth*cbheight等于64,并且mttsplitmode[x0][y0][mttdepth]等于split_
tt_hor或split_tt_ver
[0836]

cbwidth*cbheight等于32,并且mttsplitmode[x0][y0][mttdepth]等于split_bt_hor或split_bt_ver
[0837]

否则,如果并且以下条件中的一个为真,则将modetypecondition设置为等于1 (slice_type!=i?1:0)
[0838]

cbwidth*cbheight等于64,并且mttsplitmode[x0][y0][mttdepth]等于split_bt_hor或split_bt_ver
[0839]

cbwidth*cbheight等于128,并且mttsplitmode[x0][y0][mttdepth]等于split_tt_hor或split_tt_ver
[0840]

否则,将modetypecondition设置为等于0
[0841]
5.14 scipu中的增量qp信令通知的示例#1
[0842]
[0843][0844][0845]
5.15 scipu中的增量qp信令通知的示例#2
[0846]
[0847]
[0848][0849]
5.16 scipu中的增量qp信令通知的示例#3
[0850]
[0851]
[0852][0853]
5.17 scipu中的增量qp信令通知的示例#4
[0854]
[0855]
[0856][0857]
5.18禁用2x8色度帧内块的示例#14
[0858]
6.4.2允许的二进制划分过程
[0859]
变量allowbtsplit导出如下:
[0860]

如果以下条件中一个或多个为真,则将allowbtsplit设置为等于假:
[0861]

cbsize小于或等于minbtsizey
[0862]

cbwidth大于maxbtsize
[0863]

cbheight大于maxbtsize
[0864]

mttdepth大于或等于maxmttdepth
[0865]

treetype等于dual_tree_chroma,并且(cbwidth/subwidthc)*(cbheight/subheightc)小于或等于16
[0866][0867]

treetype等于dual_tree_chroma,并且modetype等于mode_type_intra
[0868]

[0869]
6.4.3允许的三进制划分过程
[0870]
变量allowttsplit导出如下:
[0871]

如果以下条件中的一个或多个为真,则将allowttsplit设置为等于假:
[0872]

cbsize小于或等于2*minttsizey
[0873]

cbwidth大于min(maxtbsizey,maxttsize)
[0874]

cbheight大于min(maxtbsizey,maxttsize)
[0875]

mttdepth大于或等于maxmttdepth
[0876]

x0 cbwidth大于pic_width_in_luma_samples
[0877]

y0 cbheight大于pic_height_in_luma_samples
[0878]

treetype等于dual_tree_chroma,并且(cbwidth/subwidthc)*(cbheight/subheightc)小于或等于32
[0879][0880]

treetype等于dual_tree_chroma,并且modetype等于mode_type_intra
[0881]

否则,将allowttsplit设置为等于真。
[0882]
7.4.9.4编解码树语义
[0883]
变量modetypecondition导出如下:
[0884]

如果以下条件中的一个为真,则将modetypecondition设置为等于0
[0885]

slice_type==i,并且qtbtt_dual_tree_intra_flag等于1
[0886]

modetypecurr不等于mode_type_all
[0887]

否则,如果以下条件中的一个为真,则将modetypecondition设置为等于1
[0888]

cbwidth*cbheight等于64,并且split_qt_flag等于1
[0889]

cbwidth*cbheight等于64,并且mttsplitmode[x0][y0][mttdepth]等于split_tt_hor或split_tt_ver
[0890]

cbwidth*cbheight等于32,并且mttsplitmode[x0][y0][mttdepth]等于split_bt_hor或split_bt_ver
[0891]

否则,如果以下条件中的一个为真,则将modetypecondition设置为等于1 (slice_type!=i?1:0)
[0892]

cbwidth*cbheight等于64,并且mttsplitmode[x0][y0][mttdepth]等于split_bt_hor或split_bt_ver
[0893]

cbwidth*cbheight等于128,并且mttsplitmode[x0][y0][mttdepth]等于split_tt_hor或split_tt_ver
[0894][0895]

否则,将modetypecondition设置为等于0
[0896]
7.4.9.7 merge数据语义
[0897]
ciip_flag[x0][y0]指定是否将组合的帧间图片merge和帧内图片预测应用于当前编解码单元。数组索引x0、y0指定所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
[0898]
当不存在ciip_flag[x0][y0]时,推断如下:
[0899]

如果以下所有条件为真,则推断ciip_flag[x0][y0]等于1:
[0900]

sps_ciip_enabled_flag等于1。
[0901]

general_merge_flag[x0][y0]等于1。
[0902]

merge_subblock_flag[x0][y0]等于0。
[0903]

regular_merge_flag[x0][y0]等于0。
[0904]

cbwidth小于128。
[0905]

cbheight小于128。
[0906][0907]

cbwidth*cbheight大于或等于64。
[0908]

否则,推断ciip_flag[x0][y0]等于0。
[0909]
7.3.8.7 merge数据语法
[0910][0911]
5.18将色度去块边界强度设置为0的示例
[0912]
以下改变、新添加的部分以粗体和斜体标记,并且删除的部分用双括号标记(例如,[[a]]表示删除字符“a”)。修改基于jvet-q2001-ve。
[0913]
8.8.3.5边界滤波强度的导出过程
[0914]
……
[0915]
对于xdi(其中,i=0..xn)和ydj(其中,j=0..yn),以下适用:
[0916]

如果edgeflags[xdi][ydj]等于0,则变量bs[xdi][ydj]被设置为等于0。
[0917]

否则,以下适用:
[0918]

样点值p0和q0导出如下:
[0919]

如果edgetype等于edge_ver,则p0被设置为等于recpicture[xcb xd
i-1][ycb ydj],并且q0被设置为等于recpicture[xcb xdi][ycb ydj]。
[0920]

否则(edgetype等于edge_hor),p0被设置为等于recpicture[xcb xdi][ycb yd
j-1],并且q0被设置为等于recpicture[xcb xdi][ycb ydj]。
[0921]

变量bs[xdi][ydj]导出如下:
[0922]

如果cidx等于0,并且样点p0和q0都在intra_bdpcm_luma_flag等于1的编解码块中,则bs[xdi][ydj]被设置为等于0。
[0923]

否则,如果cidx大于0,并且样点p0和q0都在intra_bdpcm_chroma_flag等于1的编解码块中,则bs[xdi][ydj]被设置为等于0。
[0924]

否则,如果样点p0或q0在以帧内预测模式编解码的编解码单元的编解码块中,则bs[xdi][ydj]被设置为等于2。
[0925]

否则,如果块边缘也是编解码块边缘,并且样点p0或q0在ciip_flag等于1的编解码块中,则bs[xdi][ydj]被设置为等于2。
[0926]

否则,如果块边缘也是变换块边缘,并且样点p0或q0在包含一个或多个非零变换系数级别的变换块中,则bs[xdi][ydj]被设置为等于1。
[0927]

[[否则,如果包含样点p0的编解码子块的预测模式不同于包含样点q0的编解码子块的预测模式(即,一个编解码子块在ibc预测模式下被编解码,并且另一个在帧间预测模式下被编解码),则bs[xdi][ydj]被设置为等于1。]]
[0928]

否则,如果cidx等于0,edgeflags[xdi][ydj]被设置为等于2,并且以下条件中的一个或多个为真,则bs[xdi][ydj]被设置为等于1:
[0929][0930]

包含样点p0的编解码子块和包含样点q0的编解码子块都在ibc预测模式下被编解码,并且在两个编解码子块的预测中使用的块矢量的水平或垂直分量之间的绝对差以1/16亮度样点为单位大于或等于8。
[0931]

对于包含样点p0的编解码子块的预测,与包含样点q0的编解码子块的预测相比,使用不同的参考图片或不同数量的运动矢量。
[0932]
注1

确定用于两个编解码子块的参考图片是相同还是不同仅基于参考了哪些图片,而不考虑是使用参考图片列表0的索引还是参考图片列表1的索引来形成预测,也不考虑参考图片列表内的索引位置是否不同。
[0933]
注2

用于左上样点覆盖(xsb,ysb)的编解码子块的预测的运动矢量的数量等于predflagl0[xsb][ysb] predflagl1[xsb][ysb]。
[0934]

一个运动矢量用于预测包含样点p0的编解码子块,并且一个运动矢量用于预测包含样点q0的编解码子块,并且使用的运动矢量的水平或垂直分量之间的绝对差以1/16亮度样点为单位大于或等于8。
[0935]

两个运动矢量和两个不同的参考图片用于预测包含样点p0的编解码子块,相同的两个参考图片的两个运动矢量用于预测包含样点q0的编解码子块,并且相同参考图片的两个编解码子块的预测中使用的两个运动矢量的水平或垂直分量之间的绝对差以1/16亮度样点为单位大于或等于8。
[0936]

相同参考图片的两个运动矢量用于预测包含样点p0的编解码子块,相同参考图片的两个运动矢量用于预测包含样点q0的编解码子块,并且以下两个条件都为真:
[0937]

在两个编解码子块的预测中使用的列表0运动矢量的水平或垂直分量之间的绝对差以1/16亮度样点大于或等于8,或者在两个编解码子块的预测中使用的列表1运动矢量的水平或垂直分量之间的绝对差以1/16亮度样点为单位大于或等于8。
[0938]

在包含样点p0的编解码子块的预测中使用的列表0运动矢量和在包含样点q0的编解码子块的预测中使用的列表1运动矢量的水平或垂直分量之间的绝对差以1/16亮度样点为单位大于或等于8,或者在包含样点p0的编解码子块的预测中使用的列表1运动矢量和在包含样点q0的编解码子块的预测中使用的列表0运动矢量的水平或垂直分量之间的绝对差以1/16亮度样点为单位大于或等于8。
[0939]

否则,变量bs[xdi][ydj]被设置为等于0。
[0940]
图17a是视频处理装置1700的框图。装置1700可以用于实现一个或多个本文所述的方法。装置1700可以实施在智能电话、平板计算机、计算机、物联网(iot)接收器等中。装置1700可以包括一个或多个处理器1702,一个或多个存储器1704和视频处理硬件1706。(一个或多个)处理器1702可以被配置为实现本文档中描述的一个或多个方法。(一个或多个)存储器1704可以用于储存用于实现本文描述的方法和技术的数据和代码。视频处理硬件1706可以用于以硬件电路实现本文档中描述的一些技术。
[0941]
图17b是可以实现所公开的技术的视频处理系统的框图的另一示例。图17b是示出可以实现本文中所公开的各种技术的示例视频处理系统1710的框图。各种实现方式可以包括系统1710的一些或所有组件。系统1710可以包括用于接收视频内容的输入1712。视频内容可以以原始或未压缩的格式(例如8或10比特多分量像素值)接收,或者可以以压缩或编码的格式接收。输入1712可以表示网络接口、外围总线接口或储存接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(pon)等)和无线接口(诸如wi-fi或蜂窝接口)。
[0942]
系统1710可以包括编解码组件1714,其可以实现本文档中描述的各种编解码或编码方法。编解码组件1714可以将来自输入1712的视频的平均比特率降低到编解码组件1714的输出,以产生视频的编解码表示。因此,编解码技术有时称为视频压缩或视频转码技术。如组件1716所表示的,编解码组件1714的输出可以被储存或经由所连接的通信来发射。在输入1712处接收的视频的储存或传送的比特流(或编解码)表示可以由组件1718使用,以生成像素值或可显示视频,该像素值或可显示视频被发送到显示接口1720。从比特流表示中生成用户可见视频的过程有时称为视频解压缩。此外,虽然某些视频处理操作称为“编解码”操作或工具,但是应当理解,在编码器处使用编解码工具或操作,并且将使编解码结果相反的对应解码工具或操作将由解码器执行。
[0943]
外围总线接口或显示接口的示例可以包括通用串行总线(usb)或高清多媒体接口(hdmi)或显示端口(displayport)等。储存接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以实施在各种电子设备中,诸如移动电话、膝上型计算机、智能电话或其它能够执行数字数据处理和/或视频显示的设备。
[0944]
图21是图示可以利用本公开的技术的示例视频编解码系统100的框图。
[0945]
如图21所示,视频编解码系统100可以包括源设备110和目标设备120。源设备110生成编码视频数据,该源设备110可以称为视频编码设备。目标设备120可以对由源设备110生成的编码视频数据进行解码,该目标设备120可以称为视频解码设备。
[0946]
源设备110可以包括视频源112、视频编码器114和输入/输出(i/o)接口116。
[0947]
视频源112可以包括诸如视频捕获设备的源,从视频内容提供商接收视频数据的接口和/或用于生成视频数据的计算机图形系统,或者这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特
流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关联的数据。编解码图片是图片的编解码表示。相关联的数据可以包括序列参数集合、图片参数集合和其它语法结构。i/o接口116可以包括调制器/解调器(调制解调器)和/或发射机。编码的视频数据可以通过网络130a经由i/o接口116直接发射到目标设备120。编码视频数据也可以储存在储存介质/服务器130b上,以供目标设备120访问。
[0948]
目标设备120可以包括i/o接口126、视频解码器124和显示设备122。
[0949]
i/o接口126可以包括接收机和/或调制解调器。i/o接口126可以从源设备110或储存介质/服务器130b获得编码视频数据。视频解码器124可以对编码视频数据进行解码。显示设备122可以将解码视频数据显示给用户。显示设备122可以与目标设备120集成在一起,或者可以在被配置为与外部显示设备接口的目标设备120外部。
[0950]
视频编码器114和视频解码器124可以根据诸如高效视频编解码(hevc)标准、通用视频编解码(vvc)标准和其它当前和/或将来标准的视频压缩标准来操作。
[0951]
图22是图示视频编码器200的示例的框图,视频编码器200可以是图21所示的系统100中的视频编码器114。
[0952]
视频编码器200可以被配置为执行本公开的任何或所有技术。在图22的示例中,视频编码器200包括多个功能组件。本公开中描述的技术可以在视频编码器200的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
[0953]
视频编码器200的功能组件可以包括分割单元201,可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206的预测单元202,残差生成单元207,变换单元208,量化单元209,逆量化单元210,逆变换单元211,重建单元212,缓冲器213和熵编码单元214。
[0954]
在其它示例中,视频编码器200可以包括更多、更少或不同的功能组件。在一个示例中,预测单元202可以包括帧内块复制(ibc)单元。ibc单元可以在ibc模式下执行预测,其中至少一个参考图片是当前视频块位于的图片。
[0955]
此外,诸如运动估计单元204和运动补偿单元205的一些组件可以高度集成,但是为了解释的目的,在图22的示例中分开表示。
[0956]
分割单元201可以将图片分割为一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。
[0957]
模式选择单元203可以例如基于错误结果而选择帧内或帧间编解码模式之一,并将所得到的帧内或帧间编解码块提供给残差生成单元207以生成残差块数据,并且将所得到的帧内或帧间编解码块提供给重建单元212以重建编码块从而用作参考图片。在一些示例中,模式选择单元203可以选择帧间和帧间预测(ciip)模式的组合,其中,预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元203还可为该块选择运动矢量的分辨率(例如,子像素或整数像素精度)。
[0958]
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于运动信息和来自缓冲器213的除与当前视频块相关联的图片之外的图片的解码样点来确定当前视频块的预测视频块。
[0959]
运动估计单元204和运动补偿单元205可以例如取决于当前视频块是i条带、p条带
还是b条带来对当前视频块执行不同的操作。
[0960]
在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。然后,运动估计单元204可以生成指示列表0或列表1中的参考图片的参考索引,该列表0或列表1包含参考视频块以及指示当前视频块和参考视频块之间的空域位移的运动矢量。运动估计单元204可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
[0961]
在其它示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1的参考图片中搜索当前视频块的另一参考视频块。然后,运动估计单元204可以生成指示列表0和列表1中的参考图片的参考索引,该列表0和列表1包含参考视频块以及指示参考视频块和当前视频块之间的空域位移的运动矢量。运动估计单元204可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
[0962]
在一些示例中,运动估计单元204可以输出运动信息的完整集合以用于解码器的解码过程。
[0963]
在一些实例中,运动估计单元204可以不输出当前视频的运动信息的完整集合。而是,运动估计单元204可以参考另一视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与邻近视频块的运动信息充分相似。
[0964]
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示向视频解码器300指示当前视频块具有与另一视频块相同的运动信息的值。
[0965]
在另一示例中,运动估计单元204可以在与当前视频块相关联的语法结构中识别另一视频块和运动矢量差(mvd)。运动矢量差指示当前视频块的运动矢量和指示的视频块的运动矢量之间的差。视频解码器300可以使用指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
[0966]
如上所述,视频编码器200可以预测性地信令通知运动矢量。可以由视频编码器200实现的预测性信令通知技术的两个示例包括高级运动矢量预测(amvp)和merge模式信令通知。
[0967]
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于相同图片中其它视频块的解码样点来生成针对当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
[0968]
残差生成单元207可以通过从当前视频块中减去(例如,由负号指示)当前视频块的(一个或多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中的样点的不同样点分量的残差视频块。
[0969]
在其它示例中,对于当前视频块,例如在跳过模式下,可能不存在当前视频块的残差数据,并且残差生成单元207可以不执行减去操作。
[0970]
变换处理单元208可以通过将一个或多个变换应用于与当前视频块相关联的残差
视频块来为当前视频块生成一个或多个变换系数视频块。
[0971]
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(qp)值来量化与当前视频块相关联的变换系数视频块。
[0972]
逆量化单元210和逆变换单元211可以分别将逆量化和逆变换应用于变换系数视频块,以从变换系数视频块重建残差视频块。重建单元212可以将重建的残差视频块添加到由预测单元202生成的一个或多个预测视频块的对应样点中,以产生与当前块相关联的重建的视频块,以储存在缓冲器213中。
[0973]
在重建单元212重建视频块之后,可以执行环路滤波操作以减少视频块中的视频块伪影。
[0974]
熵编码单元214可以从视频编码器200的其它功能组件接收数据。当熵编码单元214接收数据时,熵编码单元214可以执行一个或多个熵编码操作以生成熵编码的数据并输出包括熵编解码的数据的比特流。
[0975]
图23是图示视频解码器300的示例的框图,视频解码器300可以是图21所示的系统100中的视频解码器114。
[0976]
视频解码器300可以被配置为执行本公开的任何或所有技术。在图23的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
[0977]
在图23的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305以及重建单元306和缓冲器307。在一些示例中,视频解码器300可以执行一般与相对于视频编码器200(例如,图22)描述的编解码遍历相反的解码遍历。
[0978]
熵解码单元301可以检索编码的比特流。编码的比特流可以包括熵编解码的视频数据(例如,视频数据的编码的块)。熵解码单元301可以对熵编解码的视频数据进行解码,并且运动补偿单元302可以从熵解码的视频数据中确定包括运动矢量、运动矢量精度、参考图片列表索引和其它运动信息的运动信息。运动补偿单元302可以例如通过执行amvp和merge模式来确定这样的信息。
[0979]
运动补偿单元302可以产生运动补偿块,可能基于插值滤波器执行插值。语法元素中可以包括要与子像素精度一起使用的插值滤波器的标识符。
[0980]
运动补偿单元302可以使用在视频块的编码期间由视频编码器20使用的插值滤波器,以计算参考块的子整数像素的插值。运动补偿单元302可根据接收到的语法信息确定由视频编码器200使用的插值滤波器,并使用插值滤波器来产生预测块。
[0981]
运动补偿单元302可以使用一些语法信息来确定用于对编码的视频序列的(一个或多个)帧和/或(一个或多个)条带进行编码的块的尺寸,描述如何对编码视频序列的图片的每个宏块进行分割的分割信息,指示如何对每个分割进行编码的模式,每个帧间编码块的一个或多个参考帧(和参考帧列表),以及用于解码编码的视频序列的其它信息。
[0982]
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式,以从空域上相邻的块形成预测块。逆量化单元303对在比特流中提供并由熵解码单元301解码的量化的视频块系数进行逆量化,即,去量化。逆变换单元303应用逆变换。
[0983]
重建单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的对应预测块加和,以形成解码的块。如果需要,还可以应用去块滤波器来对解码的块进行滤波,以移除块状伪影。然后,将解码的视频块储存在缓冲器307中,该缓冲器307为后续的运动补偿提供参考块。
[0984]
图18是用于处理视频的方法1800的流程图。方法1800包括:1802,对于视频的视频区域与视频区域的编解码表示之间的转换,根据语法规则解析编解码表示,该语法规则定义色度块尺寸和视频区域的颜色格式之间的关系;1804,通过根据语法规则执行解析来进行转换。
[0985]
接下来提供一些实施例优选的示例的列表。在本文档中,视频区域可以是编解码块或条带或编解码树单元或预测块或变换块。
[0986]
条款的第一集合示出了在先前章节中讨论的技术的示例实施例。以下条款可以与在先前章节的项目1中所描述的附加技术一起实现。
[0987]
1.一种视频处理的方法,包括:对于视频的视频区域与所述视频区域的编解码表示之间的转换,根据语法规则解析所述编解码表示,所述语法规则定义色度块尺寸与所述视频区域的颜色格式之间的关系;以及通过根据所述语法规则执行所述解析来执行所述转换。
[0988]
2.根据条款1所述的方法,其中,所述颜色格式为4:4:4,并且其中所述语法规则指定,所述色度块受到与亮度块的尺寸约束相同的尺寸约束。
[0989]
3.根据条款1所述的方法,其中,所述颜色格式为4:2:2,并且其中所述语法规则指定,所述色度块受到与4:2:0颜色格式的尺寸约束相同的尺寸约束。
[0990]
4.根据条款1-3中任一项所述的方法,其中,所述语法指定以取决于色度格式的方式使用预测模式和小块分割。
[0991]
5.根据条款1所述的方法,其中,所述语法规则定义基于所述视频区域的颜色格式对于所述视频区域的转换启用最小允许尺寸特征。
[0992]
以下条款可以与在先前章节的项目2中所描述的附加技术一起实现。
[0993]
6.一种视频处理的方法,包括:基于视频的属性和所述视频的色度格式,确定所述视频的编解码树节点的编解码模式;以及使用所确定的编解码模式执行在所述视频的编解码表示与所述编解码树节点的视频块之间的转换。
[0994]
7.根据条款6所述的方法,其中,在所述属性为以下的情况下,对于所述色度格式为4:2:2,所述编解码模式被确定为mode_type_all,对于所述色度格式为4:2:0,所述编解码模式被确定为mode_type_intra或mode_type_inter:
[0995]
i.所述编解码节点是具有水平二叉树划分的mxn编解码树节点;
[0996]
ii.所述编解码节点是具有垂直二叉树划分的mxn编解码树节点;
[0997]
iii.所述编解码节点是具有水平三叉树划分的mxn编解码树节点;或者
[0998]
iv.所述编解码节点是具有垂直三叉树划分的mxn编解码树节点。
[0999]
8.根据条款7所述的方法,其中,m=8或16或32,并且n=4或8或16。
[1000]
以下条款可以与先前章节的项目12中所描述的附加技术一起实现。
[1001]
9.一种视频处理的方法,包括:基于规则确定在视频的视频区域中是否允许特定尺寸的色度块;以及基于所述确定来执行在所述视频区域与所述视频区域的编解码表示之
间的转换。
[1002]
10.根据条款9所述的方法,其中,所述规则指定,由于所述视频区域包括双树分割而禁止2xn色度块。
[1003]
11.根据条款9所述的方法,其中,所述规则指定,由于所述视频区域包括单树分割而禁止2n色度块。
[1004]
12.根据条款10或11所述的方法,其中,n≤64。
[1005]
以下条款可以与先前章节的项目13、14和15中所描述的附加技术一起实现。
[1006]
13.一种视频处理的方法,包括:基于规则确定对于视频区域准许编解码模式,所述规则允许对于视频条件使用编解码模式;以及基于所述确定来执行在所述视频区域中的像素的编解码表示与所述视频区域的像素之间的转换。
[1007]
14.根据条款13所述的方法,其中,所述视频条件是块尺寸,并且其中所述规则允许对于小块尺寸亮度块使用帧内块复制模式。
[1008]
15.根据条款14所述的方法,其中,所述小块尺寸包括8x4、8x8、16x4或4xn亮度块尺寸。
[1009]
16.根据条款13所述的方法,其中,所述规则允许对于使用mode_type_inter模式进行编解码的所述视频区域的转换使用帧内块复制模式。
[1010]
17.根据条款13所述的方法,其中,所述规则允许对于使用mode_type_inter模式进行编解码的所述视频区域的转换使用调色板编解码模式。
[1011]
以下条款可以与先前章节的项目16、17和18中所描述的附加技术一起实现。
[1012]
18.一种视频处理的方法,包括:使用视频编解码模式执行在视频的视频块与所述视频块的编解码表示之间的转换,其中,基于规则将信令通知所述编解码模式的语法元素选择性地包括在所述编解码表示中。
[1013]
19.根据条款18所述的方法,其中,所述视频编解码模式是帧内块编解码模式,并且其中所述规则指定,使用所述视频编解码模式的类型来控制所述语法元素包括在所述编解码表示中。
[1014]
20.根据条款19所述的方法,其中,所述规则指定,显式信令通知非skip块。
[1015]
21.根据条款18所述的方法,其中,所述规则指定,基于跳过标志和所述视频块的模式类型隐式信令通知帧内块复制标志。
[1016]
22.根据条款18所述的方法,其中,所述编解码模式是调色板编解码模式,并且其中所述规则指定,基于所述视频块的模式类型选择性地包括调色板编解码指示符。
[1017]
以下条款可以与先前章节的项目21中所描述的附加技术一起实现。
[1018]
23.一种视频处理的方法,包括:由于色度块具有小于阈值尺寸的尺寸,确定在所述色度块与所述色度块的编解码表示之间的转换期间使用的变换类型与用于对应的亮度块转换的变换类型不同;以及基于所述确定来执行所述转换。
[1019]
24.根据条款23所述的方法,其中,所述阈值尺寸为mxn,其中m是2。
[1020]
以下条款可以与先前章节的项目22中所描述的附加技术一起实现。
[1021]
25.根据条款1至24中任一项所述的方法,其中,所述转换使用组合的帧间和帧内预测模式作为mode_type_intra模式。
[1022]
26.根据条款18至22中任一项所述的方法,其中,所述转换使用组合的帧间和帧内
预测模式作为mode_type_inter模式。例如,当将ciip视为mode_type_inter时,可以应用先前章节的项目14-17中所描述的方法。或者,当应用项目14-16中所描述的方法时,ciip可以被视为mode_type_inter。
[1023]
以下条款可以与先前章节的项目3-6中所描述的附加技术一起实现。
[1024]
27.一种视频处理的方法,包括:基于视频区域的编解码条件,确定在所述视频区域的编解码表示与所述视频区域的像素值之间的转换期间是否实行最小色度块规则;以及基于所述确定来执行所述转换。
[1025]
28.根据条款17所述的方法,其中,所述编解码条件包括所述视频区域的颜色格式。
[1026]
29.根据条款18所述的方法,其中,所述视频区域具有m个像素的宽度和n个像素的高度,并且其中所述编解码条件还取决于m和/或n的值。
[1027]
30.根据条款29所述的方法,其中,由于所述视频区域具有4:2:2的颜色格式并且m*n=32或m*n=64,启用所述最小色度块规则。
[1028]
以下条款可以与先前章节的项目7-11中所描述的附加技术一起实现。
[1029]
31.一种视频处理的方法,包括:对于4:2:2格式的视频区域的编解码表示与所述视频区域的像素值之间的转换,基于对于所述视频区域是否启用最小色度块规则,确定将用于所述转换的模式类型;以及基于所述确定来执行所述转换。
[1030]
32.根据条款31所述的方法,其中,由于所述视频区域具有4:2:2格式并且启用所述最小色度块规则,将所述视频区域的模式类型设置为1。
[1031]
33.根据条款31所述的方法,其中,确定所述模式类型包括:由于对于所述视频区域启用所述最小色度块规则,将所述模式类型确定为intra类型。
[1032]
34.根据条款31所述的方法,其中,确定所述模式类型包括:由于对于所述视频区域启用所述最小色度块规则,确定禁用所述模式类型inter。
[1033]
以下条款可以与先前章节的项目7-11中所描述的附加技术一起实现。
[1034]
35.一种视频处理的方法,包括:对于视频块的编解码表示与视频的视频块之间的转换,基于在所述转换期间使用的模式类型或所述视频块的维度,确定在所述转换期间是否允许块分割;以及使用所述确定来执行所述转换。
[1035]
36.根据条款35所述的方法,其中,所述块分割包括二叉树分割或三叉树分割。
[1036]
37.根据条款35-36中的任一项所述的方法,其中,如果所述模式类型是inter模式,则所述块分割基于允许或禁止分割类型的限制规则。
[1037]
以下条款可以与先前章节的项目34中所描述的附加技术一起实现。
[1038]
38.一种视频处理的方法,包括:对于视频的视频段的编解码表示与所述视频段之间的转换,确定对于尺寸为mxn的色度块应用特殊处理模式,其中m乘n是整数;以及基于所述确定来执行所述转换。
[1039]
39.根据条款38所述的方法,其中,所述特殊处理模式在所述转换期间禁用色度块的使用。
[1040]
40.根据条款38所述的方法,其中,所述特殊处理模式将dc预测用于所述色度块的帧内预测。
[1041]
41.根据条款38所述的方法,其中,所述特殊处理模式包括使用跨分量线性模型,
用于从对应的下采样亮度系数中预测所述色度块的帧内系数。
[1042]
42.根据条款38-41中任一项所述的方法,其中,由于所述视频段使用双树分割,所述特殊处理模式禁用所述色度块的使用。
[1043]
43.根据条款38-41中任一项所述的方法,其中,由于所述视频段使用单树分割,所述特殊处理模式禁用所述色度块的使用。
[1044]
44.根据条款1至43中任一项所述的方法,其中,所述转换包括将所述视频编码为所述编解码表示。
[1045]
45.根据条款1至43中任一项所述的方法,其中,所述转换包括解码所述编解码表示以生成所述视频的像素值。
[1046]
46.一种视频解码装置,包括处理器,所述处理器被配置为实现条款1至45中的一项或多项所述的方法。
[1047]
47.一种视频编码装置,包括处理器,所述处理器被配置为实现条款1至45中的一项或多项所述的方法。
[1048]
48.一种其上存储有计算机代码的计算机程序产品,所述代码在由处理器执行时使得所述处理器实现条款1至45中任一项所述的方法。
[1049]
49.本文档中描述的方法、装置或系统。
[1050]
条款的第二集合示出了在先前章节(例如,项目37-40)中讨论的技术的示例实施例。
[1051]
1.一种视频处理的方法(例如,如图24a所示的方法2400),包括:根据规则来执行包括视频区域的视频和视频的比特流之间的转换2402;并且其中该规则指定调色板模式的启用和视频区域的编解码类型之间的关系。
[1052]
2.根据条款1所述的方法,其中,所述规则指定,在所述编解码类型是允许用于转换的帧内模式、调色板模式和帧内块复制模式的mode_type all或者允许将帧内模式用于转换的mode_type_intra的情况下,所述调色板模式被启用。
[1053]
3.根据条款2所述的方法,其中,所述规则指定,在所述编解码类型是仅允许帧间编解码模式的mode_type_inter的情况下,所述调色板模式总是被禁用。
[1054]
4.一种视频处理的方法(例如,如图24b所示的方法2410),包括:根据规则来执行包括第一视频区域和第二视频区域的视频和视频的比特流之间的转换2412;并且其中该规则指定,在第一块处于帧内块复制模式并且第二块处于调色板模式的情况下,视频的色度分量的去块滤波器的边界强度(bs)被设置为0。
[1055]
5.根据条款4所述的方法,其中,所述规则还指定,在与所述视频中的色度分量有关的变量具有某个值的情况下,所述边界强度被设置为0。
[1056]
6.根据条款5所述的方法,其中,所述某个值不等于0。
[1057]
7.一种视频处理的方法(例如,如图24c所示的方法2420),包括:根据格式规则来执行视频和视频的比特流之间的转换2422,并且其中格式规则指定与视频的输入比特深度有关的变量根据比特流的简表来约束。
[1058]
8.根据条款7所述的方法,其中,所述变量为internal_minus_input_bit_depth。
[1059]
9.根据条款7所述的方法,其中,所述格式规则指定,在10比特简表的情况下,所述变量被约束在[0,2]的范围内。
[1060]
10.根据条款7所述的方法,其中,所述格式规则指定,在8比特简表的情况下,所述变量被约束为0。
[1061]
11.根据条款7所述的方法,其中,所述格式规则指定,在(k 8)比特简表的情况下,所述变量被约束在[0,k]的范围内,其中k是大于0的整数。
[1062]
12.一种视频处理的方法(例如,如图24d所示的方法2430),包括:根据格式规则来执行视频和视频的比特流之间的转换2432,并且其中格式规则指定指示最小允许量化参数的变量根据比特流的简表来约束。
[1063]
13.根据条款12所述的方法,其中,所述变量为qpprimetsmin。
[1064]
14.根据条款13所述的方法,其中,所述格式规则指定,在10比特简表的情况下,(qpprimetsmin

4)/6被约束在[0,2]的范围内。
[1065]
15.根据条款13所述的方法,其中,所述格式规则指定,在8比特简表的情况下,(qpprimetsmin

4)/6被约束为0。
[1066]
16.根据条款12所述的方法,其中,所述格式规则指定,在(k 8)比特简表的情况下,(qpprimetsmin

4)/6被约束在[0,k]的范围内,其中k是大于0的整数。
[1067]
17.根据条款1至16中任一项所述的方法,其中,所述转换包括将所述视频编码为所述比特流。
[1068]
18.根据条款1至16中任一项所述的方法,其中,所述转换包括从所述比特流解码所述视频。
[1069]
19.根据条款1至16中任一项所述的方法,其中,所述转换包括从所述视频生成所述比特流,并且所述方法还包括:将所述比特流存储在非暂时性计算机可读记录介质中。
[1070]
20.一种视频处理装置,包括被配置为实现根据条款1至19中任一项或多项所述的方法的处理器。
[1071]
21.一种存储视频的比特流的方法,包括根据条款1至19中任一项所述的方法,并且还包括将所述比特流存储到非暂时性计算机可读记录介质。
[1072]
22.一种存储程序代码的计算机可读介质,所述程序代码在被执行时使得处理器实现根据条款1至19中任一项或多项所述的方法。
[1073]
23.一种计算机可读介质,存储根据上述方法中的任一项而生成的比特流。
[1074]
24.一种用于存储比特流表示的视频处理装置,其中所述视频处理装置被配置为实现根据条款1至19中任一项或多项所述的方法。
[1075]
本文档中描述的公开的和其它的解决方案、示例、实施例、模块和功能操作可以在数字电子电路中或者在计算机软件、固件或硬件(包括本文档中公开的结构以及其结构的等同)中,或者在其一个或多个的组合中实现。所公开的和其它的实施例可以实现为一个或多个计算机程序产品,即,在计算机可读介质上编码的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。该计算机可读介质可以是机器可读储存设备、机器可读储存基板、存储器设备、影响机器可读可传播信号的物质组分、或其一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者其一个或多个的组合的代码。传播信号是人工生成的信号,例如机器生成的电信
号、光信号或电磁信号,其被生成以对信息进行编码以便传输到合适的接收机装置。
[1076]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言来编写,包括编译或解释语言,并且计算机程序可以以任何形式来部署,包括作为独立程序或作为模块、组件、子例程或其它适合在计算环境中使用的单元。计算机程序不一定对应于文件系统中的文件。程序可以储存在文件的保存其它程序或数据的一部分中(例如,储存在标记语言文档中的一个或多个脚本)、在专用于所讨论的程序的单个文件中、或在多个协同文件中(例如储存一个或多个模块、子程序或代码的一部分的文件)。计算机程序可以部署为在一个计算机上或者在多个计算机上执行,该多个计算机位于一个站点处或者分布跨越多个站点并由通信网络互连。
[1077]
可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行在本文档中所描述的过程和逻辑流,以通过对输入数据进行操作并且生成输出来执行功能。也可以由专用逻辑电路(例如fpga(现场可编程门阵列)或asic(专用集成电路))执行过程和逻辑流,并且装置可以实现为专用逻辑电路(例如fpga(现场可编程门阵列)或asic(专用集成电路))。
[1078]
适合于计算机程序的执行的处理器包括例如通用和专用微处理器两者,以及任何种类的数字计算机的任何一个或多个处理器。一般,处理器将从只读存储器或随机存取存储器或者该两者接收指令和数据。计算机的必要元件是用于执行指令的处理器和用于储存指令和数据的一个或多个存储器设备。一般,计算机还将包括用于储存数据的一个或多个大容量储存设备(例如磁、磁光盘或光盘),或者可操作地耦接以从一个或多个大容量储存设备(例如磁、磁光盘或光盘)接收数据或者将数据传输到一个或多个大容量储存设备(例如磁、磁光盘或光盘),或者以上两者。然而,计算机不需要具有这样的设备。适用于储存计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备(例如eprom、eeprom和闪速存储器设备)、磁盘(例如内置硬盘或可移除磁盘)、磁光盘,以及cd rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充,或者并入专用逻辑电路。
[1079]
虽然本专利文档包含许多细节,但这些细节不应被解释为对任何主题或可要求保护的范围的限制,而是作为特定于特定技术的特定实施例的特征的描述。在本专利文档中,在分开的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反地,在单个实施例的上下文中所描述的各种特征还可以分别在多个实施例中实现或者以各种合适的子组合实现。此外,尽管特征可以如上文描述为以某些组合起作用并且甚至最初这样要求,但是在某些情况下来自所要求保护的组合的一个或多个特征可以从组合中去除,并且所要求保护的组合可以针对子组合或子组合的变型。
[1080]
类似地,尽管在附图中以特定次序描绘了操作,但这不应当理解为要求按所示的特定次序或顺序次序执行这样的操作或者执行所有示出的操作,以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分开不应被理解为在所有实施例中都要求这种分开。
[1081]
仅描述了几个实现方式和示例,并且可以基于本专利文档中描述和图示的内容来作出其它实现方式、增强和变型。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献