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

去块滤波的改进的制作方法

2022-06-01 21:16:26 来源:中国专利 TAG:

去块滤波的改进
1.相关申请的交叉引用
2.根据适用的专利法和/或依据巴黎公约的规则,本技术及时要求于2019年10月10日提交的国际专利申请第pct/cn2019/110490号的优先权和权益。出于根据法律的所有目的,上述申请的全部公开内容通过引用并入作为本技术的公开内容的一部分。
技术领域
3.本专利文档涉及视频编码和解码。


背景技术:

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


技术实现要素:

5.在与数字视频编解码、特别是与视频和图像编码和解码有关的设备、系统和方法中,帧间预测与视频块的三角形或任意几何分割一起使用。
6.在一个示例方面,公开了一种视频处理的方法。该方法包括根据规则执行在视频的当前视频块和视频的比特流表示之间的转换,其中,分割预测模式用于对当前视频块进行编解码,其中将当前视频的最终预测确定为当前视频块的两个或更多个预测的加权和;其中,分割预测模式是基于多个第一分割方案的第一模式或基于多个第二分割方案的第二模式;并且其中,该规则指定用于使用第一模式或第二模式进行编解码的编解码操作。
7.在另一示例方面,公开了另一种视频处理的方法。该方法包括执行在视频的当前视频块和视频的比特流表示之间的转换,其中,在转换期间,将当前视频块的预测确定为当前视频块的两个或更多个预测的加权和,并且根据规则确定当前视频块的运动矢量存储过程,其中当前视频块使用分割预测模式,该分割预测模式是基于多个第一分割方案的第一模式,或者是基于多个第二分割方案的第二模式,并且其中该规则指定对于第一模式或第二模式的用于确定存储哪个运动矢量和多少个运动矢量的过程是相同的。
8.在一个示例方面,公开了一种视频处理的方法。该方法包括执行在视频的当前块和视频的比特流表示之间的转换,其中,在转换期间,使用4x4单元的运动信息来确定用于当前块的预测块,并且其中使用分割模式编解码当前块。
9.在一个示例方面,公开了一种视频处理的方法。该方法包括执行在视频的当前块和视频的比特流表示之间的转换,其中使用分割模式对当前块进行编解码,其中,在转换期间,根据规则通过将当前视频块的混合区域中的两个或更多个预测进行混合来确定用于当前块的预测块,并且其中该规则指定针对属于当前视频块的混合区域的子块存储l0运动矢量和l1运动矢量。
10.在一个示例方面,公开了一种视频处理的方法。该方法包括:对于视频的当前视频
块和视频的比特流表示之间的转换,根据由于使用当前视频块的分割预测模式而产生的规则,做出用于将去块过程应用于当前视频块内的边界的确定;以及根据确定执行转换,其中,使用分割预测模式包括,将当前视频块的最终预测确定为当前视频块的两个或更多个预测的加权和。
11.在一个示例方面,公开了一种视频处理的方法。该方法包括:对于视频的当前视频块和视频的比特流表示之间的转换,基于当前视频块的分割预测模式的类型,确定是否和/或如何将去块过程应用于当前视频块;以及根据确定执行转换,并且其中使用分割预测模式包括,将当前视频块的最终预测确定为当前视频块的两个或更多个预测的加权和。
12.在一个示例方面,公开了一种视频处理的方法。该方法包括:对于视频的当前视频块和视频的比特流表示之间的转换,根据与当前视频块的最大和/或最小变换尺寸无关的规则,确定帧内子分割(isp)模式的应用性;并基于确定执行转换。
13.在一个示例方面,公开了一种视频处理的方法。该方法包括:对于视频的当前视频块和视频的比特流表示之间的转换,由于当前视频块的尺寸大于适用于当前视频块的最大变换尺寸,确定应用帧内子分割(isp)模式;并基于确定执行转换。
14.在一个示例方面,公开了一种视频处理的方法。所述方法包括:对于视频的当前视频块和视频的比特流表示之间的转换,由于当前视频块的尺寸大于或等于128,确定将组合帧间和帧内预测(ciip)模式或分割模式应用于当前视频块;并基于确定执行转换。
15.在一个示例方面,公开了一种视频处理的方法。该方法包括执行在当前视频块和视频的比特流表示之间的转换,其中,比特流表示符合格式规则,该格式规则基于当前视频块的尺寸来指定包括在比特流表示中的信息。
16.在一个示例方面,公开了一种视频处理的方法。该方法包括执行在当前视频块和视频的比特流表示之间的转换,其中比特流表示符合格式规则,该格式规则指定,在当前视频块的宽度和/或高度等于或大于x,其中x是整数的情况下,从比特流表示中省略指示使用帧内块复制(ibc)预测模式的语法元素。
17.在一个示例方面,公开了一种视频处理的方法。该方法包括:对于包括多个色彩分量的视频与视频的比特流表示之间的转换,根据规则确定在用于每个分量的去块过程中使用的去块参数偏移;以及基于确定执行转换,其中规则指定对于视频的每个分量,在图片级别和/或条带级别的去块参数偏移是不同的。
18.在一个示例方面,公开了一种视频处理的方法。该方法包括:对于视频的色度视频块和视频的比特流表示之间的转换,基于根据规则确定的色度量化参数(qp)来导出色度去块参数,其中色度视频块属于编解码单元和条带;并且基于色度去块参数执行转换,并且其中规则指定色度qp是基于色度视频块的图片级别色度qp偏移和编解码单元级别色度qp偏移,但与条带级别色度qp偏移无关。
19.在又一代表性方面,上述方法以处理器可执行代码的形式实施并存储在计算机可读程序介质中。
20.在又一代表性方面,公开了一种配置为或可操作为执行上述方法的设备。该设备可以包括被编程为实现该方法的处理器。
21.在又一代表性方面,视频解码器装置可以实现如本文中所述的方法。
22.在附图、说明书和权利要求书中更详细地描述了所公开技术的上述和其他方面以
及特征。
附图说明
23.图1示出了空域merge候选的示例位置。
24.图2示出了考虑空域merge候选的冗余检验的候选对的示例。
25.图3是时域merge候选的运动矢量缩放的图示。
26.图4示出了时域merge候选(c0和c1)的候选位置的示例。
27.图5示出了基于三角形分割的帧间预测的示例。
28.图6示出了三角形分割模式的单向预测mv选择的示例。
29.图7示出了在混合过程中使用的权重的示例。
30.图8示出了在8
×
16tpm块(wd6)的混合过程中使用的权重的示例。
31.图9示出了用于8
×
16tpm预测块的示例权重设置。
32.图10是可以实现所公开的技术的示例视频处理系统的框图。
33.图11是用于视频处理的硬件平台的示例实现方式的框图。
34.图12是视频处理的示例方法的流程图。
35.图13a示出了vtm6.0中tpm设计的示例。
36.图13b示出了tpm设计的提议的示例。
37.图14示出了geo划分边界描述的示例。
38.图15a示出了几何merge模式的角度量化的32个角度方案的示例。
39.图15b示出了几何merge模式的角度量化的24个角度方案的示例。
40.图16是图示了示例视频编解码系统的框图。
41.图17是图示了根据所公开技术的一些实施例的编码器的框图。
42.图18是图示了根据所公开技术的一些实施例的解码器的框图。
43.图19示出了基于所公开技术的一些实现方式的视频处理的示例方法的流程图。
44.图20a和20b示出了基于所公开技术的一些实现方式的视频处理的示例方法的流程图。
45.图21a至图21e示出了基于所公开技术的一些实现方式的视频处理的示例方法的流程图。
具体实施方式
46.所公开技术的实施例可以应用于现有的视频编解码标准(例如,hevc、h.265)和未来标准以改善压缩性能。在本文档中使用节标题来提高描述的可读性,并且不以任何方式将讨论或实施例(和/或实现方式)仅限于各个节。
47.1.总结
48.本文档与视频编解码技术相关。具体地,它关于视频编解码中的帧间预测和相关技术。它可以应用于现有的视频编解码标准(例如hevc)或要最终确定的标准(通用视频编解码)。它也可以适用于未来的视频编解码标准或视频编解码器。
49.2.初步讨论
50.视频编解码标准主要是通过众所周知的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)的参考软件中。jvet会议每季度同时举行一次,与hevc相比,新的编解码标准旨在将比特率降低50%。新的视频编解码标准在2018年4月的jvet会议上正式命名为多功能视频编解码(vvc),并在那时发布了第一版的vvc测试模型(vtm)。由于不断努力促进vvc标准化,因此在每次jvet会议中,vvc标准都采用了新的编解码技术。每次会议后,vvc工作草案和测试模型vtm都会更新。vvc项目现在的目标是在2020年7月的会议上完成技术(fdis)。
51.2.1扩展merge预测
52.在vtm中,通过按顺序包括以下五种类型的候选来构造merge候选列表:
53.1)来自空域邻近cu的空域mvp
54.2)来自共位cu的时域mvp
55.3)来自fifo表的基于历史的mvp
56.4)成对平均mvp
57.5)零mv。
58.在条带头中信令通知merge列表的尺寸,并且在vtm中merge列表的最大允许尺寸为6。对于merge模式下的每个cu代码,使用截断的一元二进制化(tu)对最佳merge候选的索引进行编码。merge索引的第一二进制码(bin)使用上下文进行编解码,而旁路编解码则用于其他二进制码。
59.在该会话中提供了merge候选的每个类别的生成过程。
60.2.1.1空域候选的导出
61.vvc中的空域merge候选的导出与hevc中的导出相同。位于图1中所示位置的候选中最多选择四个merge候选。导出顺序为a0、b0、b1、a1和b2。仅当位置a0、b0、b1、a1的任何cu不可用(例如,因为它属于另一个条带或片)或进行帧内编解码时,才考虑位置b2。在添加位置a1处的候选之后,对剩余候选的添加经受冗余检验,以确保将具有相同运动信息的候选从列表中排除,从而提高了编解码效率。为了降低计算复杂度,在提到的冗余检验中并未考虑所有可能的候选对。而是仅考虑在图2中用箭头链接的对,并且仅在用于冗余检验的对应候选不具有相同运动信息的情况下才将候选添加到列表中。
62.2.1.2时域候选的导出
63.在这一步骤中,仅一个候选被添加到列表中。特别地,在该时域merge候选的导出中,基于属于共位参考图片的共位cu来导出缩放运动矢量。在条带头中明确地信令通知要用于共位cu导出的参考图片列表。如由图3中的虚线所示,获得用于时域merge候选的缩放运动矢量,该缩放运动矢量是使用poc距离、tb和td从共位cu的运动矢量进行缩放的,其中tb定义为当前图片的参考图片与当前图片之间的poc差,并且td定义为共位图片的参考图片与共位图片之间的poc差。时域merge候选的参考图片索引被设置等于为零。
64.图3是时域merge候选的运动矢量缩放的图示。
65.如图4中所示,在候选c0和c1之间选择时域候选的位置。如果位置c0处的cu不可
用、被帧内编解码或在ctu的当前行之外,则使用位置c1。否则,在时域merge候选的导出中使用位置c0。
66.图4示出了时域merge候选(c0和c1)的候选位置的示例。
67.2.1.3基于历史的merge候选导出
68.在空域mvp和tmvp之后,将基于历史的mvp(hmvp)merge候选添加到merge列表。在该方法中,先前编解码的块的运动信息被存储在表中,并且用作当前cu的mvp。在编码/解码过程期间将维护具有多个hmvp候选的表。当遇到新的ctu行时,将重置(清空)该表。每当有非子块帧间编解码的cu,相关联的运动信息就会作为新的hmvp候选添加到表的最后一个条目中。
69.在vtm中,将hmvp表尺寸s设置为6,这表示最多可以将6个基于历史的mvp(hmvp)候选添加到表中。当将新的运动候选插入到表中时,利用约束的先进先出(fifo)规则,其中首先应用冗余检验以发现表中是否存在相同的hmvp。如果找到,则从表中移除相同的hmvp,然后将之后所有hmvp候选都向前移动。
70.hmvp候选可以在merge候选列表构造过程中使用。按顺序检验表中的最新的几个hmvp候选,并将这几个hmvp候选插入到tmvp候选之后的候选列表中。将冗余检验应用于空域或时域merge候选的hmvp候选上。
71.为了减少冗余检验操作的数量,引入以下简化:
72.1.将用于merge列表生成的hmvp候选的数量设置为(n《=4)?m:(8

n),其中n指示merge列表中现有候选的数量,并且m指示表中可用的hmvp候选的数量。
73.2.一旦可用merge候选总数达到最大允许的merge候选减去1,则hmvp的merge候选列表构造过程终止。
74.2.1.4成对平均merge候选导出
75.通过平均现有merge候选列表中的预定义候选对来生成成对平均候选,并且将预定义对定义为{(0,1),(0,2),(1,2),(0,3),(1,3),(2,3)},其中数字表示merge候选列表的merge索引。对于每个参考列表分别计算平均运动矢量。如果两个运动矢量在一个列表中均可用,则即使这两个运动矢量指向不同的参考图片,也要对它们进行平均。如果只有一个运动矢量可用,则直接使用这一个;如果没有运动矢量可用,则使该列表无效。
76.当在添加成对平均merge候选之后merge列表不完整时,最后插入零mvp,直到遇到最大merge候选数量为止。
77.2.2用于帧间预测的三角形分割
78.在vtm中,支持三角形分割模式(tpm)用于帧间预测。三角形分割模式仅应用于64个样点或更大的cu,并且以跳过或merge模式而不是以常规merge模式、mmvd模式、ciip模式或子块merge模式进行编解码。cu级别标志用于指示是否应用了三角形分割模式。
79.当使用该模式时,使用对角线划分或反对角线划分(图5)将cu均匀地划分成两个三角形分割。cu中的每个三角形分割都使用其自身的运动进行帧间预测。每个分割仅允许单向预测,即每个分割具有一个运动矢量和一个参考索引。应用单向预测运动约束以确保与常规双向预测相同,每个cu仅需要两个运动补偿的预测。在2.1中从扩展merge预测而构造的merge候选列表中直接导出每个分割的单向预测运动,并根据2.2.1中的过程从列表中的给定merge候选中选择单向预测运动。
80.图5示出了基于三角形分割的帧间预测的示例。
81.如果三角形分割模式用于当前cu,则进一步信令通知指示三角形分割(对角线或反对角线)的标志以及两个merge索引(每个分割一个)。在预测每个三角形分割之后,使用具有自适应权重的混合处理来调整沿对角线或反对角线边缘的样点值。这是整个cu的预测信令,并且如其他预测模式,变换和量化过程将应用于整个cu。最终,使用三角形分割模式预测的cu的运动场以4x4单元存储,如2.2.3中那样。
82.2.2.1单向预测候选列表构造
83.给定merge候选索引,使用2.1中的过程从为扩展merge预测而构造的merge候选列表中导出单向预测运动矢量,如图6所示。对于列表中的候选,候选的lx运动矢量用作三角形分割模式的单向预测运动矢量,其中x等于merge候选索引值的奇偶性。这些运动矢量在图6中用“x”标记。在不存在对应的lx运动矢量的情况下,将扩展merge预测候选列表中的相同候选的l(1-x)运动矢量用作三角形分割模式的单向预测运动矢量。
84.2.2.2沿三角形分割边缘混合
85.在使用自身的运动来预测每个三角形分割之后,将混合应用于两个预测信令,以导出围绕对角线或反对角线边缘的样点。在混合过程中使用以下权重:
86.·
如图7所示,亮度为{7/8,6/8,5/8,4/8,3/8,2/8,1/8},以及色度为{6/8,4/8,2/8}。
87.图7示出了在混合过程中使用的权重的示例。
88.2.2.3运动字段存储
89.以三角形分割模式编解码的cu的运动矢量以4x4单元存储。取决于每个4x4单元的位置,存储单向预测或双向预测运动矢量。分别将mv1和mv2表示为分割1和分割2的单向预测运动矢量。如果4
×
4单元位于图7的示例中所示的非加权区域中,则为该4
×
4单元存储mv1或mv2。否则,如果4x4单元位于加权区域中,则存储双向预测运动矢量。根据以下过程,从mv1和mv2导出双向预测运动矢量:
90.1)如果mv1和mv2来自不同的参考图片列表(一个来自l0,并且另一个来自l1),则简单地将mv1和mv2组合以形成双向预测运动矢量。
91.2)否则,如果mv1和mv2来自同一列表,并且不失一般性,则假定它们都来自l0。在这种情况下,
92.2.a)如果mv2(或mv1)的参考图片出现在l1中,则使用l1中的参考图片将该mv2(或mv1)转换为l1运动矢量。然后,将两个运动矢量组合以形成双向预测运动矢量。
93.否则,代替双向预测运动,仅存储单向预测运动mv1。
94.2.3 vvc wd6中三角形分割的规范
95.以下去块滤波过程的规范是从最新的vvc工作草案jvet-o2001-ve中提取的。
96.2.3.1 merge数据语法
[0097][0098]
2.3.2 merge数据语义
[0099]
ciip_flag[x0][y0]指定是否将组合帧间图片merge和帧内图片预测应用于当前编解码单元。数组索引x0、y0指定所考虑的编解码块的左上亮度样点相对于图片的左上亮
度样点的位置(x0,y0)。
[0100]
当不存在ciip_flag[x0][y0]时,推断如下:
[0101]

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

sps_ciip_enabled_flag等于1。
[0103]

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

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

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

cbwidth小于128。
[0107]

cbheight小于128。
[0108]

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

否则,推断ciip_flag[x0][y0]等于0。
[0110]
当ciip_flag[x0][y0]等于1时,将变量intrapredmodey[x][y]设置为等于intra_planar,其中x=x0..x0 cbwidth-1且y=y0..y0 cbheight

1。
[0111]
变量mergetriangleflag[x0][y0]指定是否使用基于三角形形状的运动补偿来生成当前编解码单元的预测样点,当解码b条带时,变量mergetriangleflag[x0][y0]的导出如下:
[0112]

如果以下所有条件为真,则将mergetriangleflag[x0][y0]设置为等于1:
[0113]

sps_triangle_enabled_flag等于1。
[0114]

slice_type等于b。
[0115]

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

maxnumtrianglemergecand大于或等于2。
[0117]

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

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

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

ciip_flag[x0][y0]等于0。
[0121]

否则,将mergetriangleflag[x0][y0]设置为等于0。
[0122]
merge_triangle_split_dir[x0][y0]指定merge三角形模式的划分方向。数组索引x0、y0指定所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
[0123]
当不存在merge_triangle_split_dir[x0][y0]时,将其推断为等于0。
[0124]
merge_triangle_idx0[x0][y0]指定基于三角形形状的运动补偿候选列表的第一merge候选索引,其中x0,y0指定所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
[0125]
当不存在merge_triangle_idx0[x0][y0]时,将其推断为等于0。
[0126]
merge_triangle_idx1[x0][y0]指定基于三角形形状的运动补偿候选列表的第二merge候选索引,其中x0、y0指定所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
[0127]
当不存在merge_triangle_idx1[x0][y0]时,将其推断为等于0。
[0128]
2.3.3三角形运动矢量分量和参考索引的导出过程
[0129]
2.3.3.1概述
[0130]
该过程的输入是:
[0131]

当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xcb,ycb),
[0132]

变量cbwidth,指定亮度样点中当前编解码块的宽度,
[0133]

变量cbheight,指定亮度样点中当前编解码块的高度。
[0134]
该过程的输出是:
[0135]

以1/16分数样点为准确度的亮度运动矢量mva和mvb,
[0136]

以1/32分数样点为准确度的色度运动矢量mvca和mvcb,
[0137]

参考索引refidxa和refidxb,
[0138]

预测列表标志predlistflaga和predlistflagb。
[0139]
调用条款2.3.3.2中指定的三角形merge模式的亮度运动矢量的导出过程,其中亮度位置(xcb,ycb)、变量cbwidth和cbheight作为输入,并且输出为亮度运动矢量mva、mvb、参考索引refidxa、refidxb和预测列表标志predlistflaga和predlistflagb。
[0140]
调用条款2.3.3.3中的色度运动矢量的导出过程,其中mva和refidxa作为输入,并且输出为mvca。
[0141]
调用条款2.3.3.3中的色度运动矢量的导出过程,其中mvb和refidxb作为输入,并且输出为mvcb。
[0142]
2.3.3.2 merge三角形模式的亮度运动矢量的导出过程
[0143]
仅当mergetriangleflag[xcb][ycb]等于1时才调用该过程,其中(xcb,ycb)指定相对于当前图片的左上亮度样点的当前亮度编解码块的左上样点。
[0144]
该过程的输入是:
[0145]

当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xcb,ycb),
[0146]

变量cbwidth,指定亮度样点中当前编解码块的宽度,
[0147]

变量cbheight,指定亮度样点中当前编解码块的高度。
[0148]
该过程的输出是:
[0149]

以1/16分数样点为准确度的亮度运动矢量mva和mvb,
[0150]

参考索引refidxa和refidxb,
[0151]

预测列表标志predlistflaga和predlistflagb。
[0152]
运动矢量mva和mvb、参考索引refidxa和refidxb以及预测列表标志predlistflaga和predlistflagb通过以下有序步骤导出:
[0153]

调用如条款8.5.2.2中指定的merge模式的亮度运动矢量的导出过程,其中亮度位置(xcb,ycb)、变量cbwidth和cbheight作为输入,并且输出为亮度运动矢量mvl0[0][0]、mvl1[0][0]、参考索引refidxl0、refidxl1、预测列表利用标志predflagl0[0][0]和predflagl1[0][0]、双向预测权重索引bcwidx和merge候选列表mergecandlist。
[0154]

变量m和n分别作为三角形分割0和1的merge索引,使用merge_triangle_idx0[xcb][ycb]和merge_triangle_idx1[xcb][ycb]导出变量m和n,如下:
[0155]
m=merge_triangle_idx0[xcb][ycb]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-475)
[0156]
n=merge_triangle_idx1[xcb][ycb] (merge_triangle_idx1[xcb][ycb]》=m)?1:0
[0157]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-476)
[0158]

假设refidxl0m和refidxl1m、predflagl0m和predflagl1m以及mvl0m和mvl1m是merge候选列表mergecandlist(m=mergecandlist[m])中的位置m处的merge候选m的参考索引、预测列表利用标志以及运动矢量。
[0159]

变量x设置为等于(m&0x01)。
[0160]

当predflaglxm等于0时,将x设置为等于(1-x)。
[0161]

以下适用:
[0162]
mva[0]=mvlxm[0]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-477)
[0163]
mva[1]=mvlxm[1]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-478)
[0164]
refidxa=refidxlxm
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-479)
[0165]
predlistflaga=x
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-480)
[0166]

假设refidxl0n和refidxl1n、predflagl0n和predflagl1n以及mvl0n和mvl1n是merge候选列表mergecandlist(n=mergecandlist[n])中的位置m处的merge候选n的参考索引、预测列表利用标志以及运动矢量。
[0167]

变量x设置为等于(n&0x01)。
[0168]

当predflaglxn等于0时,将x设置为等于(1-x)。
[0169]

以下适用:
[0170]
mvb[0]=mvlxn[0]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-481)
[0171]
mvb[1]=mvlxn[1]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-482)
[0172]
refidxb=refidxlxn
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-483)
[0173]
predlistflagb=x
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-484)
[0174]
2.3.3.3色度运动矢量的导出过程
[0175]
该过程的输入是:
[0176]

以1/16分数样点为准确度的亮度运动矢量mvlx,,
[0177]

参考索引refidxlx。
[0178]
该过程的输出是以1/32分数样点为准确度的色度运动矢量mvclx。
[0179]
从对应的亮度运动矢量导出色度运动矢量。
[0180]
色度运动矢量mvclx的导出如下:
[0181]
mvclx[0]=mvlx[0]*2/subwidthc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-435)
[0182]
mvclx[1]=mvlx[1]*2/subheightc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-436)
[0183]
2.3.4三角形帧间块的解码过程
[0184]
2.3.4.1概述
[0185]
当对具有等于1的mergetriangleflag[xcb][ycb]的编解码单元进行解码时,调用该过程。
[0186]
该过程的输入是:
[0187]

指定当前编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xcb,ycb),
[0188]

变量cbwidth,指定亮度样点中当前编解码块的宽度,
[0189]

变量cbheight,指定亮度样点中当前编解码块的高度,
[0190]

以1/16分数样点为准确度的亮度运动矢量mva和mvb,
[0191]

色度运动矢量mvca和mvcb,
[0192]

参考索引refidxa和refidxb,
[0193]

预测列表标志predlistflaga和predlistflagb。
[0194]
该过程的输出是:
[0195]

亮度预测样点的(cbwidth)x(cbheight)数组predsamples
l

[0196]

分量cb的色度预测样点的(cbwidth/subwidthc)x(cbheight/
[0197]
subheightc)数组predsamples
cb

[0198]

分量cr的色度预测样点的(cbwidth/subwidthc)x(cbheight/
[0199]
subheightc)数组predsamples
cr

[0200]
假设predsamplesla
l
和predsampleslb
l
为预测亮度样点值的(cbwidth)x(cbheight)数组,并且假设predsamplesla
cb
、predsampleslb
cb
、predsamplesla
cr
和predsampleslb
cr
为预测色度样点值的(cbwidth/subwidthc)x(cbheight/subheightc)数组。
[0201]
predsamples
l
、predsamples
cb
和predsamples
cr
是通过以下有序步骤来导出的:
[0202]
1.对于n分别为a和b,以下适用:
[0203]

由亮度样点的有序二维数组refpicln
l
和色度样点的两个有序二维数组refpicln
cb
和refpicln
cr
构成的参考图片是通过调用vvc wd6中的条款8.5.6.2中指定的过程来导出的,其中将x设置为predlistflagn以及refidxx设置为refidxn作为输入。
[0204]

数组predsamplesln
l
是通过调用vvc wd6中条款8.5.6.3中指定的分数样点插值过程而导出的,其中亮度位置(xcb,ycb)、设置为等于cbwidth的亮度编解码块宽度sbwidth、设置为等于cbheight的亮度编解码块高度sbheight、设置为等于(0,0)的运动矢量偏移mvoffset、设置为等于mvn的运动矢量mvlx和设置为等于refpicln
l
的参考数组refpiclx
l
、设置为等于假(false)的变量bdofflag以及设置为等于0的变量cidx作为输入。
[0205]

数组predsamplesln
cb
是通过调用vvc wd6中条款8.5.6.3中指定的分数样点插值过程而导出的,其中亮度位置(xcb,ycb)、设置为等于cbwidth/subwidthc的编解码块宽度sbwidth、设置为等于cbheight/subheightc的编解码块高度sbheight、设置为等于(0,0)的运动矢量偏移mvoffset、设置为等于mvcn的运动矢量mvlx和设置为等于refpicln
cb
的参考数组refpiclx
cb
、设置为等于假的变量bdofflag以及设置为等于1的变量cidx作为输入。
[0206]

数组predsamplesln
cr
是通过调用vvc wd6中条款8.5.6.3中指定的分数样点插值过程而导出的,其中亮度位置(xcb,ycb)、设置为等于cbwidth/subwidthc的编解码块宽度sbwidth、设置为等于cbheight/subheightc的编解码块高度sbheight、设置为等于(0,0)的运动矢量偏移mvoffset、设置为等于mvcn的运动矢量mvlx和设置为等于refpicln
cr
的参考数组refpiclx
cr
、设置为等于假的变量bdofflag以及设置为等于2的变量cidx作为输入。
[0207]
2.将merge三角形模式变量triangledir的分割方向设置为等于merge_triangle_split_dir[xcb][ycb]。
[0208]
3.通过将设置为等于cbwidth的编解码块宽度ncbw、设置为等于cbheight的编解
码块高度ncbh、样点数组predsamplesla
l
和predsampleslb
l
、以及变量triangledir和等于0的变量cidx作为输入调用条款2.3.4.2中指定的三角形merge模式的加权样点预测过程来导出当前亮度编解码块内的预测样点predsamples
l
[x
l
][y
l
],其中x
l
=0..cbwidth

1并且y
l
=0..cbheight-1。
[0209]
4.通过将设置为等于cbwidth/subwidthc的编解码块宽度ncbw、设置为等于cbheight/subheightc的编解码块高度ncbh、样点数组predsamplesla
cb
和predsampleslb
cb
以及变量triangledir和等于1的变量cidx作为输入调用条款2.3.4.2中指定的三角形merge模式的加权样点预测过程来导出当前色度分量cb编解码块内的预测样点predsamples
cb
[xc][yc],其中xc=0..cbwidth/subwidthc

1并且yc=0..cbheight/subheightc-1。
[0210]
5.通过将设置为等于cbwidth/subwidthc的编解码块宽度ncbw、设置为等于cbheight/subheightc的编解码块高度ncbh、样点数组predsamplesla
cr
和predsampleslb
cr
以及变量triangledir和等于2的变量cidx作为输入调用条款2.3.4.2中指定的三角形merge模式的加权样点预测过程来导出当前色度分量cr编解码块内的预测样点predsamples
cr
[xc][yc],其中xc=0..cbwidth/subwidthc

1并且yc=0..cbheight/subheightc-1。
[0211]
6.调用条款2.3.4.3中指定的merge三角形模式的运动矢量存储过程,其中亮度编解码块位置(xcb,ycb)、亮度编解码块宽度cbwidth、亮度编解码块高度cbheight、分割方向triangledir、亮度运动矢量mva和mvb、参考索引refidxa和refidxb以及预测列表标志predlistflaga和predlistflagb作为输入。
[0212]
2.3.4.2三角形merge模式的加权样点预测过程
[0213]
该过程的输入是:
[0214]

两个变量ncbw和ncbh,指定当前编解码块的宽度和高度,
[0215]

两个(ncbw)x(ncbh)数组predsamplesla和predsampleslb,
[0216]

变量triangledir,指定分割方向,
[0217]

变量cidx,指定色彩分量索引。
[0218]
该过程的输出是预测样点值的(ncbw)x(ncbh)数组pbsamples。
[0219]
变量ncbr的导出如下:
[0220]
ncbr=(ncbw》ncbh)?(ncbw/ncbh):(ncbh/ncbw)
[0221]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-841)
[0222]
变量bitdepth导出如下:
[0223]

如果cidx等于0,则将bitdepth设置为等于bitdepthy。
[0224]

否则,将bitdepth设置为等于bitdepthc。
[0225]
变量shift1和offset1导出如下:
[0226]

将变量shift1设置为等于max(5,17-bitdepth)。
[0227]

将变量offset1设置为等于1《《(shift1-1)。
[0228]
取决于triangledir、ws和cidx的值,预测样点pbsamples[x][y]导出如下,其中x=0..ncbw-1和y=0..ncbh-1:
[0229]

变量widx的导出如下:
[0230]

如果cidx等于0且triangledir等于0,则以下适用:
[0231]
widx=(ncbw》ncbh)?(clip3(0,8,(x/ncbr-y) 4)):(clip3(0,8,(x-y/ncbr) 4))
ꢀꢀ
(8-842)
[0232]

否则,如果cidx等于0且triangledir等于1,则以下适用:
[0233]
widx=(ncbw》ncbh)?(clip3(0,8,(ncbh-1-x/ncbr-y) 4)):(clip3(0,8,(ncbw-1-x-y/ncbr) 4))
ꢀꢀꢀꢀꢀꢀꢀ
(8-843)
[0234]

否则,如果cidx大于0且triangledir等于0,则以下适用:
[0235]
widx=(ncbw》ncbh)?(clip3(0,4,(x/ncbr-y) 2)):(clip3(0,4,(x-y/ncbr) 2)) (8-844)
[0236]

否则(如果cidx大于0且triangledir等于1),则以下适用:
[0237]
widx=(ncbw》ncbh)?(clip3(0,4,(ncbh-1-x/ncbr-y) 2)):(clip3(0,4,(ncbw-1-x-y/ncbr) 2))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-845)
[0238]

使用widx和cidx导出指定预测样点权重的变量wvalue,如下所示:
[0239]
wvalue=(cidx==0)?clip3(0,8,widx):clip3(0,8,widx*2)
[0240]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-846)
[0241]

预测样点值导出如下:
[0242]
pbsamples[x][y]=clip3(0,(1《《bitdepth)-1,(predsamplesla[x][y]*wvalue predsampleslb[x][y]*(8-wvalue) offset1)》》shift1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8 847)
[0243]
2.3.4.3三角形merge模式的运动矢量存储过程
[0244]
当解码mergetriangleflag[xcb][ycb]等于1的编解码单元时,调用该过程。
[0245]
该过程的输入是:
[0246]

亮度位置(xcb,ycb),指定相对于当前图片的左上亮度样点的当前编解码块的左上样点,
[0247]

变量cbwidth,指定亮度样点中当前编解码块的宽度,
[0248]

变量cbheight,指定亮度样点中当前编解码块的高度,
[0249]

变量triangledir,指定分割方向,
[0250]

以1/16分数样点为准确度的亮度运动矢量mva和mvb,
[0251]

参考索引refidxa和refidxb,
[0252]

预测列表标志predlistflaga和predlistflagb。
[0253]
指定在水平和垂直方向上的当前编解码块中的4x4块的数量的变量numsbx和numsby设置为等于numsbx=cbwidth》》2和numsby=cbheight》》2。
[0254]
变量minsb设置为等于min(numsbx,numsby)-1。
[0255]
变量cbratio导出如下:
[0256]
cbratio=(cbwidth》cbheight)?(cbwidth/cbheight):(cbheight/cbwidth)
[0257]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-848)
[0258]
对于子块索引(xsbidx,ysbidx)处的每个4x4子块,其中xsbidx=0..numsbx-1和ysbidx=0..numsby-1的,以下适用:
[0259]

变量xidx和yidx导出如下:
[0260]
xidx=(cbwidth》cbheight)?(xsbidx/cbratio):xsbidx
ꢀꢀꢀ
(8-849)
[0261]
yidx=(cbwidth》cbheight)?ysbidx:(ysbidx/cbratio)(8-850)
[0262]

变量stype导出如下:
[0263]

如果triangledir等于0,则以下适用:
[0264]
stype=(xidx==yidx)?2:((xidx》yidx)?0:1)
ꢀꢀ
(8-851)
[0265]

否则(triangledir等于1),以下适用:
[0266]
stype=(xidx yidx==minsb)?2:((xidx yidx《minsb)?0:1)
ꢀꢀ
(8-852)
[0267]

取决于stype的值,进行以下分配:
[0268]

如果stype等于0,则以下适用:
[0269]
predflagl0=(predlistflaga==0)?1:0
ꢀꢀꢀꢀꢀꢀ
(8-853)
[0270]
predflagl1=(predlistflaga==0)?0:1
ꢀꢀꢀꢀꢀꢀ
(8-854)
[0271]
refidxl0=(predlistflaga==0)?refidxa:-1
ꢀꢀꢀꢀꢀ
(8-855)
[0272]
refidxl1=(predlistflaga==0)?-1:refidxa
ꢀꢀ
(8-856)
[0273]
mvl0[0]=(predlistflaga==0)?mva[0]:0
ꢀꢀ
(8-857)
[0274]
mvl0[1]=(predlistflaga==0)?mva[1]:0
ꢀꢀ
(8-858)
[0275]
mvl1[0]=(predlistflaga==0)?0:mva[0]
ꢀꢀ
(8-859)
[0276]
mvl1[1]=(predlistflaga==0)?0:mva[1]
ꢀꢀ
(8-860)
[0277]

否则,如果stype等于1或(stype等于2并且predlistflaga
[0278]
predlistflagb不等于1),则以下适用:
[0279]
predflagl0=(predlistflagb==0)?1:0
ꢀꢀꢀꢀꢀ
(8-861)
[0280]
predflagl1=(predlistflagb==0)?0:1
ꢀꢀꢀꢀꢀ
(8-862)
[0281]
refidxl0=(predlistflagb==0)?refidxb:-1
ꢀꢀꢀꢀ
(8-863)
[0282]
refidxl1=(predlistflagb==0)?-1:refidxb
ꢀꢀ
(8-864)
[0283]
mvl0[0]=(predlistflagb==0)?mvb[0]:0
ꢀꢀ
(8-865)
[0284]
mvl0[1]=(predlistflagb==0)?mvb[1]:0
ꢀꢀ
(8-866)
[0285]
mvl1[0]=(predlistflagb==0)?0:mvb[0]
ꢀꢀ
(8-867)
[0286]
mvl1[1]=(predlistflagb==0)?0:mvb[1]
ꢀꢀ
(8-868)
[0287]

否则(stype等于2且predlistflaga predlistflagb等于1),则以下适用:
[0288]
predflagl0=1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-869)
[0289]
predflagl1=1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-870)
[0290]
refidxl0=(predlistflaga==0)?refidxa:refidxb
ꢀꢀꢀꢀꢀꢀ
(8-871)
[0291]
refidxl1=(predlistflaga==0)?refidxb:refidxa
ꢀꢀꢀꢀꢀꢀ
(8-872)
[0292]
mvl0[0]=(predlistflaga==0)?mva[0]:mvb[0]
ꢀꢀ
(8-873)
[0293]
mvl0[1]=(predlistflaga==0)?mva[1]:mvb[1]
ꢀꢀ
(8-874)
[0294]
mvl1[0]=(predlistflaga==0)?mvb[0]:mva[0]
ꢀꢀ
(8-875)
[0295]
mvl1[1]=(predlistflaga==0)?mvb[1]:mva[1]
ꢀꢀ
(8-876)
[0296]

为x=0..3和y=0..3进行了以下分配:
[0297]
mvl0[(xsbidx《《2) x][(ysbidx《《2) y]=mvl0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-877)
[0298]
mvl1[(xsbidx《《2) x][(ysbidx《《2) y]=mvl1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-878)
[0299]
refidxl0[(xsbidx《《2) x][(ysbidx《《2) y]=refidxl0
ꢀꢀꢀ
(8-879)
[0300]
redidxl1[(xsbidx《《2) x][(ysbidx《《2) y]=refidxl1
ꢀꢀꢀ
(8-880)
[0301]
predflagl0[(xsbidx《《2) x][(ysbidx《《2) y]=predflagl0
ꢀꢀ
(8-881)
[0302]
predflagl1[(xsbidx《《2) x][(ysbidx《《2) y]=predflagl1
ꢀꢀ
(8-882)
[0303]
2.4几何merge模式(geo)
[0304]
在jvet-p0068中,正在研究geo merge模式作为vvc中现有tpm的扩展。geo使用与tpm相同的预测混合概念,但是将混合掩码扩展到具有32个角度和5个距离偏移的140个不同模式。geo模式的混合掩码是使用三个查找表从样点位置的距离和划分边界导出的。
[0305]
2.4.1概念描述
[0306]
图13a和图13b示出了vtm-6.0中的tpm以及为非矩形帧间块提出的附加形状。
[0307]
与tpm相似,对于不小于8
×
8的单向预测块,允许提出的用于帧间的geo分割,以便在解码器侧具有与双向预测块相同的存储器带宽。用于geo分割的运动矢量预测与tpm对准。以及在tpm中,将2个预测之间的混合应用于内部边界。
[0308]
几何merge模式的划分边界由如图14中所示的角度和距离偏移ρi来描述。角度表示在0和360度之间的量化角度,并且距离偏移ρi代表最大距离ρ
max
的量化偏移。与二叉树划分和tpm划分重叠的划分方向将被排除。
[0309]
2.4.2角度和距离量化。
[0310]
用固定步长在0到360度之间将角度量化。
[0311]
在ce4-1.1、具有108种模式的ce4-1.2a和ce4-1.14中,用步长11.25度在0到360度之间对角度进行量化,如图15a中所示,总共32个角度。
[0312]
在具有80个模式的ce4-1.2b中,角度仍用11.25度的步长进行量化,但是由于在自然值中,目标和运动大部分是水平的,因此移除了接近垂直方向的角度(接近水平划分边界)。图15b示出了减小到24个角度的方案。
[0313]
从最大可能距离ρ
max
用固定步长量化距离ρi。ρ
max
的值可以通过等式(1)进行几何导出,其中w或h等于8,并且ρ
max
的值用log2缩放的短边长度进行缩放。对于等于0度的情况,ρ
max
等于w/2,并且对于等于90度的情况,ρ
max
等于h/2。向后移位的“1.0”样点是为了避免划分边界太靠近角。
[0314][0315]
在ce4-1.1和ce4-1.14中,用5个步长对距离ρi进行量化,考虑到32个角度,总共有140个划分模式,不包括二叉树和tpm划分。
[0316]
在具有108个模式的ce4-1.2a中,用4个步长对距离ρi进行量化,考虑到32个角度,总共有108个划分模式,不包括二叉树和tpm划分。
[0317]
在具有80个模式的ce4-1.2b中,用4个步长对距离ρi进行量化,考虑到24个角度,总共有80个划分模式,不包括二叉树和tpm划分。
[0318]
表1中总结了用于ce测试的角度、距离和模式的数量:
[0319]
表1角度数量、距离数量、划分模式数量
[0320]
[0321][0322]
2.4.3亮度块的混合操作
[0323]
在几何merge模式中,与tpm模式相同,具有3位混合掩码w0和w1的最终预测符pb,如等式(2)中所示。
[0324]
pb=(w0p0 w1p1 4)>>3
ꢀꢀꢀꢀꢀ
(2)
[0325]
使用带有等式(3)、(4)和(5)的查找表从划分边界和样点位置的距离导出几何merge模式的混合掩码。
[0326]
distfromline=((x《《1) 1)*dis[displacementx] ((y《《1) 1))*dis[displacementy]

rho
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0327]
distscaled=clip3(0,26,(abs(distfromline) 4)》》3)
ꢀꢀꢀꢀꢀꢀ
(4)
[0328]
sampleweightl[x][y]=distfromline《=0?geofilter[distscaled]:8-geofilter[distscaled]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0329]
其中涉及3个查找表、具有32个条目的dis[.]、具有36个条目的stepdis[.]和具有26个条目的geofilter[.]。
[0330]
确保从p0预测当前块的左下样点。换句话说,当左下样点的distfromline为负时,w0等于sampleweightl[x][y],并且w1等于8-w0。否则(左下样点的distfromline为正),w1等于sampleweightl[x][y],并且w0等于8-w1。
[0331]
由于所有剩余操作都使用查找表,所以从等式(3)导出几何混合掩码的实际计算复杂度。
[0332]
在vtm软件实现方式中,等式(3)需要每个样点1个加法且每个样点行1个加法,例如,在8x8cu中,每个样点需要1.125个加法和0.015625个乘法。
[0333]
为了并行处理每个4x4单元(例如在8x8cu中),每个样点需要1.25个加法和0.0625个乘法。
[0334]
为了并行处理每条线(例如8x8cu),每个样点需要1个加法和0.125个乘法。
[0335]
为了并行处理cu中的所有样点,对于每个样本,需要2个乘法和1个加法。
[0336]
表2中总结了每个样点计算复杂度的最坏情况(8x8):
[0337]
表2最坏情况下的复杂度分析
[0338][0339]
对于关于混合操作的更多详细信息,请参考随附的草案规范修改文档“8.5.7.3几何merge模式的加权样点预测过程”节。
[0340]
2.4.4色度块的混合操作
[0341]
为亮度样点计算的样点权重被子采样并用于色度混合而无需任何计算。坐标(x,y)处的色度样点权重设置为等于相对于亮度块的左上样点的坐标(2x,2y)处的亮度样点权
重。
[0342]
2.4.5运动矢量导出
[0343]
用于tpm的相同merge列表导出过程用于导出geo块的每个分割的运动矢量。每个分割仅通过单向预测进行预测。
[0344]
2.4.6运动矢量存储
[0345]
在ce4-1.1和ce4-1.2中,4x4运动存储单元的四个角处的亮度样点权重相加。然后,将总和与2个阈值进行比较,以决定是否存储两个单向预测运动信息或双向预测运动信息之一。使用与tpm相同的过程导出双向预测运动信息。
[0346]
在ce4-1.14中,运动矢量存储过程被进一步简化。计算4
×
4运动存储单元的中心位置与划分边界之间的距离,并将该距离与固定阈值进行比较,以决定是否为该4
×
4运动存储单元存储单向或双向预测运动信息。距离的符号指示在单向预测存储的情况下,哪些单向预测运动信息应被存储。在ce4-1.14中,移除了混合掩码和运动存储的依赖关系。
[0347]
2.4.7模式信令通知
[0348]
根据所提出的方法,geo模式与tpm模式一起被信令通知为附加merge模式。
[0349]
表3该提议引入的语法元素
[0350][0351][0352]
使用4个cabac上下文模型来信令通知merge_geo_flag[][],取决于上方和左侧邻近块的模式导出前3个cabac上下文模式,取决于当前块的纵横比导出第4个cabac上下文模式。merge_geo_flag[][]指示当前块是使用geo模式还是使用tpm模式,这类似于“最可能的模式”标志。
[0353]
geo_partition_idx[][]用作查找表的索引,该查找表存储角度和距离ρi对。geo_partition_idx编解码截断二进制,并使用旁路进行二进制化。
[0354]
3.通过本文中描述的技术解决方案解决的技术问题的示例
[0355]
在最新的vvc工作草案wd6(jvet-o2001-v14)中存在几个问题,如下所述。
[0356]
(1)在wd6中,对于两个三角形分割的混合过程,如图8中所示,色度权重与亮度权重不对准,可能引起视觉伪影。
[0357]
(2)在wd6中,用于三角形预测的权重的设置未考虑多个色度格式,诸如4:2:2和4:4:4,如图8中所示。
[0358]
(3)在wd6中,色度仅允许偶数权重,这与亮度不一致,因为亮度分量允许偶数和奇数整数,如图8中所示。
[0359]
(4)在wd6中,tpm允许用于4xn和nx4块,其中要求所有像素执行加权混合,这可能是不期望的。
[0360]
(5)在wd6中,tpm允许用于具有纵横比大于2的块,这可能是不期望的。
[0361]
(6)geo和tpm分别应用于独立的信令通知和混合权重掩码和运动存储掩码的独立计算。
[0362]
图8示出了在用于8x16tpm块(wd6)的混合过程中使用的权重的示例。
[0363]
4.实施例和技术的示例
[0364]
下面列出的项目应被视为示例,以解释一般概念。这些项目不应被狭义地解释。此外,可以以任何方式组合这些项目。
[0365]
术语“tpm”可以表示一种编解码方法,该方法将一个块划分为两个或更多个子区域,并且将变换应用于整个块。术语“tpm”可以指示三角形预测模式和/或几何merge模式,这是三角形预测模式的扩展。
[0366]
tpm混合过程中的加权样点
[0367]
1.tpm色度预测样点的权重可以与共位的亮度预测样点的权重对准。
[0368]
a)在一个示例中,可以根据共位的亮度块的权重来设置tpm编解码的色度块(例如,cb块和/或cr块)的权重。
[0369]
b)在一个示例中,tpm编解码的色度块的权重可以是共位的亮度块的权重的子集。
[0370]
c)在一个示例中,对于块内部的每个位置,可以为具有维度m
×
n的色度块分配与具有维度为m
×
n的亮度块相同的权重。
[0371]
2.tpm色度预测样点的权重可以取决于共位的亮度块的宽度和高度,和/或色彩格式,包括色度子采样率。
[0372]
a)在一个示例中,对于4:4:4色度格式,tpm色度预测样点的权重可以与块内每个位置的共位亮度预测样点的权重相同。
[0373]
b)在一个示例中,对于4:2:0和4:2:2色度格式,可以从tpm亮度预测样点的权重中对tpm色度预测样点的权重进行子采样。
[0374]
i.对于w
×
h tpm预测块,其中w为块宽度并且h为块高度,subwidthc和subheightc分别表示宽度和高度方向上的色度子采样率。假设亮度预测块的权重由二维数组weighty[x][y]表示,其中x=0

(w-1),y=0

(h-1),则共位的色度预测块的权重weightc[x][y]可以通过weighty[f(x)][g(y)]来计算,其中x=0

(w/subwidthc-1),y=0

(h/subheightc-1)。
[0375]
1)在一个示例中,f(x)=x*subwidthc offsetx,g(y)=y*subheightc offsety,例如offsetx=offsety=0。
[0376]
ii.假设wxh tpm亮度块中的位置(x,y)的权重由w(x,y)计算,例如w(x,y)=a*x b*y c,其中x=0

w-1和y=0

h-1是亮度样点的坐标,并且a、b、c是取决于w和/或h的整数在一个示例中,在共位的tpm色度块中的位置(x',y')的权重可以被计算为w(f(x'),g(y')),例如w(f(x'),g(y'))=a*(subwidthc*x') b*(subheightc*y') c,其中x'=0

w/subwidthc-1和y'=0

h/subheightc-1是色度样点的坐标。
[0377]
c)在一个示例中,tpm中使用的权重可以仅取决于块的维度(宽度或/和高度),并且tpm中使用的权重对于不同的色彩分量可以相同。
[0378]
i.例如,具有尺寸为w*h的色度分量可以使用与具有尺寸为w*h的亮度分量相同的权重。
[0379]
ii.在一个示例中,当未对于亮度块尺寸定义权重时,可以对于这种尺寸的色度块禁用tpm。
[0380]
d)在一个示例中,在tpm中使用的权重可以取决于块的维度(宽度或/和高度)和块的色彩分量两者。
[0381]
i.在一个示例中,对于不同的颜色分量的权重可以是不同的。
[0382]
ii.在一个示例中,对于两个色度分量的权重可以是相同的。
[0383]
1)替代地,此外,用于亮度分量和色度分量的权重可以不同。
[0384]
3.tpm预测样点的权重可以等于整数x。
[0385]
a)在一个示例中,可以将奇数整数或偶数整数分配为tpm色度预测样点的权重x(诸如x=0

8)。
[0386]
b)tpm亮度/色度预测样点的权重可以限幅至[m,n]范围,诸如m=0,n=8。
[0387]
c)在一个示例中,tpm权重可以小于零。
[0388]
4.在一个示例中,tpm/geo块的混合权重掩码可以被预定义为n个表(例如,n》0)。
[0389]
5.在一个示例中,可以从计算等式中计算tpm/geo块的混合权重掩码。
[0390]
tpm的一般问题
[0391]
将块宽度表示为w,并且将块高度表示为h。
[0392]
6.是启用还是禁用tpm可能取决于块宽度和块高度的比率,例如max(h,w)/min(h,w)。
[0393]
a)替代地,是启用还是禁用tpm可能取决于块宽度和块高度之间的差,例如abs(log2(cbwidth)-log2(cbheight)),其中abs(x)返回x的绝对值并且log2(x)返回数字x的对数底数2。
[0394]
b)对于具有宽高比或高宽比大于x(例如x=2)的块,可能不允许tpm。
[0395]
i.在一个示例中,对于w
×
h预测块,如果w/h>2,则可能禁用tpm。
[0396]
ii.在一个示例中,对于w
×
h预测块,如果h/w>2,则可能禁用tpm。
[0397]
7.是否允许使用tpm可能取决于最大变换尺寸。
[0398]
a)在一个示例中,对于具有宽度或/和高度大于最大变换尺寸的块,可能不允许tpm。
[0399]
8.是否允许使用tpm可能取决于最大cu尺寸。
[0400]
a)在一个示例中,对于具有块宽度或/和块高度等于最大cu尺寸的块,可能不允许tpm。
[0401]
9.对于具有块宽度大于n或/和块高度大于m的块可能不允许tpm。
[0402]
a)在一个示例中,n=m=64。
[0403]
10.对于具有块宽度等于n或/和块高度等于m的块,可能不允许tpm。
[0404]
a)在一个示例中,n=m=4
[0405]
11.对于某些色度格式,可能不允许tpm。
[0406]
a)在一个示例中,对于4:0:0色度格式,可能不允许tpm。
[0407]
b)在一个示例中,对于4:4:4色度格式,可能不允许tpm。
[0408]
c)在一个示例中,对于4:2:2色度格式,可能不允许tpm。
[0409]
12.如果tpm中使用的两个参考图片的分辨率不同,则可能不允许tpm。a)替代地,
如果在tpm中使用的一个参考图片的分辨率与当前图片的分辨率不同,则可能不允许tpm。
[0410]
13.当禁用或不允许tpm时,可能不会信令通知tpm语法元素(诸如merge_triangle_split_dir、merge_triangle_idx0和merge_triangle_idx1)。
[0411]
a)当未信令通知语法元素时,可以将其推断为0。
[0412]
b)当禁用或不允许tpm时,可以将tpm相关的语义变量(诸如mergetriangleflag)推断为0。
[0413]
14.以上项目符号可以应用于三角形预测模式(tpm)和/或几何merge模式(geo)。换句话说,tpm可以指geo。
[0414]
tpm和geo的统一
[0415]
15.tpm和geo可以统一。
[0416]
a)在一个示例中,tpm可被视为geo的子集。
[0417]
i.替代地,geo可以被视为tpm的子集。
[0418]
ii.例如,如果将编解码工具a(或等效地称为“模式a”,或简称为“a”)(诸如tpm)视为编解码工具b的子集(或等效地称为“模式b”,或简称为“b”)(诸如geo),则可以应用下面公开的方法。
[0419]
1)可以将a和b信令通知为一种模式。
[0420]
a)在一个示例中,模式a和模式b可以在sps/vps/aps/pps/条带/子图片/片/砖/vpdu/ctu/tu/cu/pu/图片头/条带头级别处共享(多个)相同的控制标志。
[0421]
b)在一个示例中,可以将模式a信令通知为b的子集。
[0422]
i.例如,将b定义为包含n个(诸如n》1)子模式的预测模式,这些n个子模式表示为{m0,m1,m2…
,m
n-1
},并且可以将a定义为包含x个子模式(诸如x《n)的预测模式,这些x个子模式表示为{m0,m
k0
,m
k1

,m
kx-1
},其中{m0,m
k0
,m
k1

,m
kx-1
}是{m0,m1,m2…
,m
n-1
}的子集。
[0423]
ii.在一个示例中,信令通知第一语法元素以指示是否应用模式b。取决于是否应用模式b来信令通知指示是否应用模式a的第二语法元素。
[0424]
1.在一个示例中,仅当应用模式b时才信令通知第二语法元素。
[0425]
2)a和b可以共享至少一个计算逻辑以生成混合权重掩码。
[0426]
a)在一个示例中,用于a和b的混合权重掩码可以从同一查找表中导出。
[0427]
3)a和b可以共享至少一个计算逻辑以生成运动存储掩码。
[0428]
a)在一个示例中,用于a和b的运动存储掩码可以从同一查找表中导出。
[0429]
b)在一个示例中,至少一种计算逻辑可以用于计算用于tpm模式和geo模式两者的混合权重。
[0430]
i.在一示例中,用于tpm的计算逻辑可以用于geo。
[0431]
1)替代地,用于geo的计算逻辑可以用于tpm。
[0432]
c)在一个示例中,至少一个计算逻辑可以用于计算用于tpm模式和geo模式两者的运动存储掩码。
[0433]
i.在一示例中,用于tpm的计算逻辑可以用于geo。
[0434]
1)替代地,用于geo的计算逻辑可以用于tpm。
[0435]
tpm/geo的运动存储掩码生成
[0436]
16.可以以与geo相同的方式生成tpm的运动矢量存储掩码。
[0437]
a)替代地,可以以与tpm相同的方式生成geo的运动矢量存储掩码。
[0438]
b)在一个示例中,可以生成和/或存储指示针对块宽度和块高度的特定组合的帧间预测方向(诸如单向预测或双向预测)的运动矢量存储掩码。
[0439]
i.在一个示例中,可以仅针对块宽度和块高度的允许组合来生成运动矢量存储掩码。
[0440]
c)在一个示例中,运动矢量存储掩码的每个元素指示存储两个子分割中的哪个运动矢量,和/或针对4
×
4子块存储了多少运动矢量(诸如一个运动矢量或两个运动矢量)和/或帧间预测方向(诸如单向预测或双向预测)。
[0441]
d)在一个示例中,tpm/geo块的运动矢量存储掩码可以被预定义为n个表(诸如,n>0)。
[0442]
e)在一个示例中,可以从计算等式中计算tpm/geo块的运动矢量存储掩码。
[0443]
17.tpm/geo的运动矢量可以以4
×
4为单元存储。
[0444]
a)在一个示例中,tpm/geo的两个子分割中的每个子分割都有其自身的运动矢量以进行运动补偿,但是,为空域/时域运动矢量候选存储的运动矢量是以4x4为单元。
[0445]
i.在一个实例中,tpm/geo的每个4
×
4子块可以具有存储在缓冲器中的不同运动矢量。
[0446]
18.l0运动矢量和l1运动矢量两者都可以被存储用于属于tpm/geo的混合区域的子块。
[0447]
a)在一个示例中,混合区域可以指示被两个子分割重叠的区域。
[0448]
b)在一个示例中,对于tpm/geo块的混合区域之外的那些4
×
4子块,可以存储子分割的单向预测(诸如l0或l1)运动矢量。
[0449]
c)在一个示例中,对于属于tpm/geo块的混合区域的那些4
×
4子块,可以存储两个子分割的双向预测运动矢量。
[0450]
d)在一个示例中,对于属于tpm/geo块的混合区域的那些4x4子块,如果两个子分割都具有来自同一方向的运动矢量,则两个运动矢量中的最小/最大/平均/加权运动矢量可以被存储。
[0451]
tpm和geo的去块
[0452]
19.是否和/或如何将去块过程应用编解码块可以取决于编解码块是使用tpm还是geo模式来编解码的。
[0453]
a)在一个示例中,可以在去块滤波器阶段中对两个不同分割中的两个子块之间的边界进行滤波。
[0454]
i.在一个示例中,在这种情况下,边界强度(bs)等于1。
[0455]
ii.在一个示例中,在这种情况下,边界强度(bs)等于2。
[0456]
20.可以针对tpm编解码/geo编解码的块中的两个子块之间的边界来触发去块。
[0457]
a)在一个示例中,如果除了tpm/geo模式的内部tu边缘之外的两个子块之一具有非零系数,则可以触发去块,无论两个子块之间是否存在运动差。
[0458]
b)在两个子块中可能没有非零系数。
[0459]
i.在一个示例中,如果除了tpm/geo模式的内部tu边缘以外的两个子块具有全零系数,但是两个子块的运动差足够大,则仍然可以触发去块。
[0460]
ii.替代地,如果除了tpm/geo模式的内部tu边缘以外的两个子块具有全零系数,但是两个子块的运动差足够大,则可以不触发去块。
[0461]
c)是否针对以tpm/geo模式编解码的两个子块的边缘触发去块可以取决于这是两个子块的tu边缘还是mv边缘。
[0462]
i.如果运动差对于tpm/geo模式的mv边缘足够大,则可以触发去块。
[0463]
ii.如果在子块中除了tpm/geo模式的tu边缘以外还存在非零系数,则可以触发去块。
[0464]
iii.当滤波边缘既是tu边缘又是mv边缘时,如果满足以下任一条件,则可以触发去块。
[0465]
1)如果运动差足够大。
[0466]
2)在两个子块中的任何一个中存在非零系数。
[0467]
d)上述“tu边缘”指示实际的变换单元边缘,并且上述“mv边缘”[0468]
指示与滤波网格对准的pu边缘或子块边缘。
[0469]
e)上述“运动差”可以指示以下情况。
[0470]
i.两个子块的运动矢量差大于t(诸如t=1像素或1/2像素或以1/16亮度样点为单位的8)
[0471]
ii.不同的参考帧索引
[0472]
iii.不同的参考poc
[0473]
iv.不同数量的参考帧。
[0474]
关于可配置的ctu尺寸和最大变换尺寸
[0475]
21.是否应用isp可以不取决于最大变换尺寸和/或最小变换尺寸。
[0476]
a)在一个示例中,isp标志(诸如intra_subpartitions_mode_flag)的信令通知可以“不”取决于当前块的宽度是否小于或等于最大变换尺寸,和/或可以“不”取决于当前块的高度是否小于或等于最大变换尺寸。
[0477]
b)在一个示例中,isp标志(诸如intra_subpartitions_mode_flag)的信令通知可以“不”取决于宽度乘以当前块的高度是否大于最小变换尺寸的平方。
[0478]
c)在一个示例中,isp标志(诸如intra_subpartitions_mode_flag)的信令通知可以取决于宽度乘以当前块的高度是否大于16。
[0479]
d)在一个示例中,isp标志(诸如intra_subpartitions_mode_flag)的信令通知可以取决于当前块的宽度是否小于或等于64,和/或取决于当前块的高度是否小于或等于64。
[0480]
22.当编解码块的维度大于最大变换尺寸时,可以应用isp。
[0481]
a)在一个示例中,当isp编解码块大于最大变换尺寸时,可以通过递归方式隐式划分isp块,直到子分割的尺寸达到64。
[0482]
b)在一个示例中,当isp编解码块大于最大变换尺寸时,可以通过递归方式隐式划分isp块,直到子分割的尺寸达到最大变换尺寸。
[0483]
23.当编解码块的维度大于或等于128时,可以应用ciip和/或tpm和/或geo。
[0484]
a)在一个示例中,最大ctu尺寸可以设置为大于128。
[0485]
b)在一个示例中,ciip可以用于具有块维度大于或等于128的块。
[0486]
c)在一个示例中,tpm和/或geo可以应用于具有块维度大于128的块。
[0487]
24.当编解码块的维度大于128时,可以信令通知merge数据。
[0488]
a)在一个示例中,merge标志(诸如regular_merge_flag、mmvd_merge_flag、mmvd_cand_flag、mmvd_distance_idx、mmvd_direction_idx、merge_idx、ciip_flag、merge_triangle_split_dir、merge_triangle_idx0、merge_triangle_idx1)可以取决于编解码块的维度是否小于最大ctu尺寸。
[0489]
25.如果块宽度和/或块高度等于或大于x(诸如x=64或128),则pred_mode_ibc_flag的值可以推断为0。
[0490]
a)在一个示例中,如果块宽度和块高度大于64,则pred_mode_ibc_flag的值可以推断为0。
[0491]
b)在一个示例中,如果块宽度或块高度大于64,则pred_mode_ibc_flag的值可以推断为0。
[0492]
26.当编解码块的维度大于128时,可以信令通知cu_skip_flag和/或
[0493]
pred_mode_flag。
[0494]
常规去块
[0495]
27.对于每个分量,β和tc的图片级别去块参数偏移可以不同。
[0496]
a)在一个示例中,用于亮度、cb和cr的图片级别去块参数偏移可以是不同的并且由不同的语法元素指示。
[0497]
b)替代地,此外,用于joint_cb_cr编解码模式的图片级别去块参数偏移可以是不同的并且由不同的语法元素指示。
[0498]
28.对于每个分量,β和tc的条带级别去块参数偏移可以不同。
[0499]
a)在一个示例中,用于亮度、cb和cr的条带级别去块参数偏移可以是不同的并且由不同的语法元素指示。
[0500]
b)替代地,此外,用于joint_cb_cr编解码模式的图片级别去块参数偏移可以是不同的并且由不同的语法元素指示。
[0501]
29.用于导出色度去块参数的色度qp可以基于图片级别色度qp偏移和cu级别色度qp偏移,但与条带级别色度qp偏移无关。
[0502]
a)在一个示例中,用于导出色度去块参数的色度qp可以取决于pps_cb_qp_offset、pps_cr_qp_offset、pps_cbcr_qp_offset、cuqpoffset
cb
、cuqpoffset
cr
和cuqpoffset
cbcr
,但与slice_cb_qp_offset、slice_cr_qp_offset和slice_cbcr_qp_offset无关。
[0503]
5.实施例
[0504]
下面是示例实施例,其可以应用于vvc规范。这些修改基于最新的vvc工作草案(jvet-o2001-v14)。新添加的部分以粗体和斜体突出显示,并且从vvc工作草案中删除的部分用双括号标记(例如[[a]]表示字符“a”的删除)。
[0505]
5.1 tpm亮度和色度权重图示的实施例#1
[0506]
根据块宽度、块高度和色度子采样率,将tpm色度权重与亮度权重对准。图9示出了用于8
×
16tpm预测块的示例权重设置。
[0507]
5.2将tpm色度权重与tpm亮度权重对准的实施例#2
[0508]
8.5.7三角形帧间块的解码过程
[0509]
8.5.7.1概述
[0510]
当对mergetriangleflag[xcb][ycb]等于1的编解码单元进行解码时,调用该过程。
[0511]
该过程的输入是:
[0512]

亮度位置(xcb,ycb),指定相对于当前图片的左上亮度样点的当前编解码块的左上样点,
[0513]

变量cbwidth,指定亮度样点中当前编解码块的宽度,
[0514]

变量cbheight,指定亮度样点中当前编解码块的高度,
[0515]

以1/16分数样点为准确度的亮度运动矢量mva和mvb,
[0516]

色度运动矢量mvca和mvcb,
[0517]

参考索引refidxa和refidxb,
[0518]

预测列表标志predlistflaga和predlistflagb。
[0519]
该过程的输出是:
[0520]

亮度预测样点的(cbwidth)x(cbheight)数组predsamples
l

[0521]

分量cb的色度预测样点的(cbwidth/subwidthc)x(cbheight/subheightc)数组predsamples
cb

[0522]

分量cr的色度预测样点的(cbwidth/subwidthc)x(cbheight/subheightc)数组predsamples
cr

[0523]
假设predsamplesla
l
和predsampleslb
l
为预测亮度样点值的(cbwidth)x(cbheight)数组,并且predsamplesla
cb
、predsampleslb
cb
、predsamplesla
cr
和predsampleslb
cr
为预测色度样点值的(cbwidth/subwidthc)x(cbheight/subheightc)数组。
[0524]
predsamples
l
、predsamples
cb
和predsamples
cr
是通过以下有序步骤来导出的:
[0525]
1.对于n为a和b中的每一个,以下适用:
[0526]

由亮度样点的有序二维数组refpicln
l
和色度样点的两个有序二维数组refpicln
cb
和refpicln
cr
构成的参考图片是通过调用vvc wd6中的条款中指定的过程来导出的,其中x设置为等于predlistflagn以及refidxx设置为等于refidxn作为输入。
[0527]

数组predsamplesln
l
是通过调用条款中指定的分数样点插值过程来导出的,其中亮度位置(xcb,ycb)、设置为等于cbwidth的亮度编解码块宽度sbwidth、设置为等于cbheight的亮度编解码块高度sbheight、设置为等于(0,0)的运动矢量偏移mvoffset、设置为等于mvn的运动矢量mvlx和设置为等于refpicln
l
的参考数组refpiclx
l
、设置为等于假的变量bdofflag以及设置为等于0的变量cidx作为输入。
[0528]

数组predsamplesln
cb
是通过调用vvc wd6中条款中指定的分数样点插值过程而导出的,其中亮度位置(xcb,ycb)、设置为等于cbwidth/subwidthc的编解码块宽度sbwidth、设置为等于cbheight/subheightc的编解码块高度sbheight、设置为等于(0,0)的运动矢量偏移mvoffset、设置为等于mvcn的运动矢量mvlx和设置为等于refpicln
cb
的参考数组refpiclx
cb
、设置为等于假的变量bdofflag以及设置为等于1的变量cidx作为输入。
[0529]

数组predsamplesln
cr
是通过调用vvc wd6中条款中指定的分数样点插值
过程而导出的,其中亮度位置(xcb,ycb)、设置为等于cbwidth/subwidthc的编解码块宽度sbwidth、设置为等于cbheight/subheightc的编解码块高度sbheight、设置为等于(0,0)的运动矢量偏移mvoffset、设置为等于mvcn的运动矢量mvlx和设置为等于refpicln
cr
的参考数组refpiclx
cr
、设置为等于假的变量bdofflag以及设置为等于2的变量cidx作为输入。
[0530]
2.将merge三角形模式变量triangledir的分割方向设置为等于merge_triangle_split_dir[xcb][ycb]。
[0531]
3.通过将设置为等于cbwidth的编解码块宽度ncbw、设置为等于cbheight的编解码块高度ncbh、样点数组predsamplesla
l
和predsampleslb
l
、以及变量triangledir和等于0的变量cidx作为输入调用条款中指定的三角形merge模式的加权样点预测过程来导出当前亮度编解码块内的预测样点predsamples
l
[x
l
][y
l
],其中
[0532]
x
l
=0..cbwidth

1并且y
l
=0..cbheight-1。
[0533]
4.通过将设置为等于cbwidth[[/subwidthc]]的编解码块宽度ncbw、设置为等于cbheight[[/subheightc]]的编解码块高度ncbh、样点数组predsamplesla
cb
和predsampleslb
cb
以及变量triangledir和等于1的变量cidx作为输入调用条款中指定的三角形merge模式的加权样点预测过程来导出当前色度分量cb编解码块内的预测样点predsamples
cb
[xc][yc],其中xc=0..cbwidth/subwidthc

1并且yc=0..cbheight/subheightc-1。
[0534]
5.通过将设置为等于cbwidth[[/subwidthc]]的编解码块宽度ncbw、设置为等于cbheight[[/subheightc]]的编解码块高度ncbh、样点数组predsamplesla
cr
和predsampleslb
cr
以及变量triangledir和等于2的变量cidx作为输入调用条款中指定的三角形merge模式的加权样点预测过程来导出当前色度分量cr编解码块内的预测样点predsamples
cr
[xc][yc],其中xc=0..cbwidth/subwidthc

1并且yc=0..cbheight/subheightc-1。
[0535]
6.调用条款中指定的merge三角形模式的运动矢量存储过程,其中亮度编解码块位置(xcb,ycb)、亮度编解码块宽度cbwidth、亮度编解码块高度cbheight、分割方向triangledir、亮度运动矢量mva和mvb、参考索引refidxa和refidxb以及预测列表标志predlistflaga和predlistflagb作为输入。
[0536]
8.5.7.2三角形merge模式的加权样点预测过程
[0537]
该过程的输入是:
[0538]

两个变量ncbw和ncbh,指定当前亮度编解码块的宽度和高度,
[0539]

两个数组predsamplesla
[0540]
和predsampleslb,
[0541]

变量triangledir,指定分割方向,
[0542]

变量cidx,指定色彩分量索引。
[0543]
该过程的输出是预测样点值的数组pbsamples。
[0544]
变量ncbr导出如下:
[0545][0546]
变量bitdepth导出如下:
[0547]

如果cidx等于0,则bitdepth设置为等于bitdepthy。
[0548]

否则,bitdepth设置为等于bitdepthc。
[0549]
变量shift1和offset1导出如下:
[0550]

变量shift1设置为等于max(5,17-bitdepth)。
[0551]

变量offset1设置为等于1《《(shift1-1)。
[0552]
取决于triangledir[[、ws和cidx]]的值,预测样点pbsamples[x][y]导出如下,其中和和
[0553]
的变量[[widx]]导出如下:
[0554]

如果[[cidx等于0并且]]triangledir等于0,则以下适用:
[0555][0556]

否则[[,如果cidx等于0且]](triangledir等于1),则以下适用:
[0557]

[[否则,如果cidx大于0且triangledir等于0,则以下适用:widx=(ncbw》ncbh)?(clip3(0,4,(x/ncbr-y) 2)):(clip3(0,4,(x-y/ncbr) 2))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-844)
[0558]

否则(如果cidx大于0且triangledir等于1),则以下适用:
[0559]
widx=(ncbw》ncbh)?(clip3(0,4,(ncbh-1-x/ncbr-y) 2)):(clip3(0,4,(ncbw-1-x-y/ncbr) 2))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-845)
[0560]

使用widx和cidx导出指定预测样点权重的变量wvalue,如下所示:
[0561]
wvalue=(cidx==0)?clip3(0,8,widx):clip3(0,8,widx*2) (8-846)]]
[0562]

预测样点值导出如下:
[0563]
pbsamples[x][y]=clip3(0,(1《《bitdepth)-1,(predsamplesla[x][y]*wvalue predsampleslb[x][y]*(8-wvalue) offset1)》》shift1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-847)
[0564]
5.3以块宽高比为条件的tpm的实施例#3
[0565]
7.3.8.7 merge数据语法
[0566][0567]
7.4.9.7 merge数据语义
[0568]
变量mergetriangleflag[x0][y0]指定当解码b条带时基于三角形形状的运动补偿是否用来生成当前编解码单元的预测样点,该变量mergetriangleflag[x0][y0]导出如下:
[0569]

如果以下所有条件为真,则将mergetriangleflag[x0][y0]设置为1:
[0570]

sps_triangle_enabled_flag等于1。
[0571]

slice_type等于b。
[0572]

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

maxnumtrianglemergecand大于或等于2。
[0574]

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

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

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

ciip_flag[x0][y0]等于0。
[0578][0579]

否则,将mergetriangleflag[x0][y0]设置为等于0。
[0580]
5.4以块宽度《128和块高度《128为条件的tpm的实施例#4
[0581]
7.3.8.7 merge数据语法
[0582][0583]
7.4.9.7 merge数据语义
[0584]
变量mergetriangleflag[x0][y0]指定当解码b条带时基于三角形形状的运动补偿是否用来生成当前编解码单元的预测样点,变量mergetriangleflag[x0][y0]导出如下:
[0585]

如果以下所有条件为真,则将mergetriangleflag[x0][y0]设置为等于1:
[0586]

sps_triangle_enabled_flag等于1。
[0587]

slice_type等于b。
[0588]

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

maxnumtrianglemergecand大于或等于2。
[0590]

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

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

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

ciip_flag[x0][y0]等于0。
[0594][0595]

否则,将mergetriangleflag[x0][y0]设置为0。
[0596]
5.5以块宽度》4和块高度》4为条件的tpm的实施例#5
[0597]
7.3.8.7 merge数据语法
[0598][0599]
7.4.9.7 merge数据语义
[0600]
变量mergetriangleflag[x0][y0]指定当解码b条带时基于三角形形状的运动补偿是否用来生成当前编解码单元的预测样点,变量mergetriangleflag[x0][y0]导出如下:
[0601]

如果以下所有条件为真,则将mergetriangleflag[x0][y0]设置为等于1:
[0602]

sps_triangle_enabled_flag等于1。
[0603]

slice_type等于b。
[0604]

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

maxnumtrianglemergecand大于或等于2。
[0606]

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

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

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

ciip_flag[x0][y0]等于0。
[0610][0611]

否则,将mergetriangleflag[x0][y0]设置为等于0。
[0612]
5.6独立于最小变换尺寸和最大变换尺寸的isp信令通知的实施例#6
[0613]
7.3.8.5编解码单元语法
[0614][0615]
5.7适用于大于最大变换尺寸的块的isp的实施例#7
[0616]
7.3.8.6编解码单元语法
[0617][0618]
[0619]
5.8适用于大于16个像素的块尺寸的isp的实施例#8
[0620]
7.3.8.7编解码单元语法
[0621][0622]
5.9 mv取整的示例。
[0623]
工作草案的更改
[0624]
jvet-o2001-v14中指定的工作草案如下进行更改。新添加的部分以粗体和斜体突出显示。移除的部分用双方括号标记。
[0625]
8.5.5.3基于子块的时域merge候选的导出过程
[0626]
该过程的输入是:
[0627]
‑…
[0628]
该过程的输出是:
[0629]
‑…

[0630]

[0631][0632]

对于xsbidx=0..numsbx-1和ysbidx=0..numsby-1,运动矢量mvlxsbcol[xsbidx][ysbidx]和预测列表利用标志predflaglxsbcol[xsbidx][ysbidx]导出如下:
[0633]

指定相对于当前图片的左上亮度样点的当前编解码子块的左上样点的亮度位置(xsb,ysb)导出如下:
[0634]
xsb=xcb xsbidx*sbwidth sbwidth/2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-551)
[0635]
ysb=ycb ysbidx*sbheight sbheight/2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-552)
[0636]

colpic内的共位子块的位置(xcolsb,ycolsb)导出如下。
560)
[0665]

如果subpic_treated_as_pic_flag[subpicidx]等于1,则以下适用:
[0666]
xcolcb=clip3(xctb,min(subpicrightboundarypos,xctb (1《《ctblog2sizey) 3),xcolctrcb [[(]]tempmv[0][[》》4)]])
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-561)
[0667]

否则(subpic_treated_as_pic_flag[subpicidx]等于o,以下适用:
[0668]
xcolcb=clip3(xctb,min(curpicwidthinsamplesy-1,xctb (1《《ctblog2sizey) 3),xcolctrcb [[(]]tempmv[0][[》》4)]])
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-562)
[0669]
5.10子tmvp的示例
[0670]
8.5.5.2子块merge模式下运动矢量和参考索引的导出过程
[0671]
该过程的输入是:
[0672]

相对于当前图片的左上亮度样点的当前亮度编解码块的左上样点的亮度位置(xcb,ycb),
[0673]

两个变量cbwidth和cbheight,指定亮度编解码块的宽度和高度。
[0674]
该过程的输出是:
[0675]

水平方向numsbx和垂直方向numsby的亮度编解码子块的数量,
[0676]

参考索引refidxl0和refidxl1,
[0677]

预测列表利用标志数组predflagl0[xsbidx][ysbidx]和predflagl1[xsbidx][ysbidx],
[0678]

以1/16分数样点为准确度的亮度子块运动矢量数组mvl0[xsbidx][ysbidx]和mvl1[xsbidx][ysbidx],其中xsbidx=0..numsbx-1,ysbidx=0..numsby-1,
[0679]

以1/32分数样点为准确度的色度子块运动矢量数组mvcl0[xsbidx][ysbidx]和mvcl1[xsbidx][ysbidx],其中xsbidx=0..numsbx-1,ysbidx=0..numsby-1,
[0680]

双向预测权重索引bcwidx。
[0681][0682]
变量numsbx、numsby和子块merge候选列表subblockmergecandlist是通过以下有序步骤来导出的:
[0683]
1.当sps_sbtmvp_enabled_flag等于1时,以下适用:
[0684]

对于availableflaga1、refidxlxa1、predflaglxa1和mvlxa1的导出,
[0685]
以下适用:
[0686]

邻近亮度编解码块内的亮度位置(xnba1,ynba1)设置为等于(xcb-1,ycb cbheight-1)。
[0687]

调用如条款6.4.4中指定的邻近块可用性的导出过程,其中将当前亮度位置(xcurr,ycurr)设置为等于(xcb,ycb)、邻近亮度位置(xnba1,ynba1)、checkpredmodey设置为等于真以及cidx设置为等于0作为输入,并且将输出分配给块可用性标志availablea1。
[0688]

变量availableflaga1、refidxlxa1、predflaglxa1和mvlxa1导出如下:
[0689]

如果availablea1等于假,则availableflaga1设置为等于0,mvlxa1的两个分量都
设置为等于0,refidxlxa1设置为等于-1以及predflaglxa1设置为等于0,其中x为0或1并且bcwidxa1设置为等于0。
[0690]

否则,availableflaga1设置为等于1,并进行以下分配:
[0691]
mvlxa1=mvlx[xnba1][ynba1]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-498)
[0692]
refidxlxa1=refidxlx[xnba1][ynba1]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-499)
[0693]
predflaglxa1=predflaglx[xnba1][ynba1]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-500)
[0694]

调用如条款8.5.5.3中指定的基于子块的时域merge候选的导出过程,其中亮度位置(xcb,ycb)、亮度编解码块宽度cbwidth、亮度编解码块高度cbheight、可用性标志availableflaga1、参考索引refidxlxa1、预测列表利用标志predflaglxa1和运动矢量mvlxa1作为输入,并且输出为可用性标志availableflagsbcol、水平方向和垂直方向的亮度编解码子块的数量、参考索引refidxlxsbcol、亮度运动矢量mvlxsbcol[xsbidx][ysbidx]和预测列表利用标志predflaglxsbcol[xsbidx][ysbidx],其中中并且x为0或1。
[0695]
2.当sps_affine_enabled_flag等于1时,样点位置(xnba0,ynba0)、(xnba1,ynba1)、(xnba2,ynba2)、(xnbb0,ynbb0)、(xnbb1,ynbb1)、(xnbb2,ynbb2)、(xnbb3,ynbb3)和变量和导出如下:
[0696]
(xa0,ya0)=(xcb-1,ycb cbheight)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-501)
[0697]
(xa1,ya1)=(xcb-1,ycb cbheight-1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-502)
[0698]
(xa2,ya2)=(xcb-1,ycb)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-503)
[0699]
(xb0,yb0)=(xcb cbwidth,ycb-1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-504)
[0700]
(xb1,yb1)=(xcb cbwidth-1,ycb-1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-505)
[0701]
(xb2,yb2)=(xcb-1,ycb-1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-506)
[0702]
(xb3,yb3)=(xcb,ycb-1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-507)
[0703]
[[numsbxaff=cbwidth》》2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-508)
[0704]
numsbyaff=cbheight》》2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-509)]]
[0705]
3.当sps_affine_enabled_flag等于1时,将变量availableflaga设置为等于假,并且以下适用于(xnbak,ynbak)从(xnba0,ynba0)到(xnba1,ynba1):
[0706]

[0707]
8.当numcurrmergecand小于maxnumsubblockmergecand时,将重复以下操作,直到numcurrmergecand等于maxnumsubblockmergecand,其中mvzero[0]和mvzero[1]两者都等于0:
[0708]

参考索引、预测列表利用标志和zerocandm的运动矢量导出如下,其中m等于(numcurrmergecand-numorigmergecand):
[0709]
refidxl0zerocandm=0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-515)
[0710]
predflagl0zerocandm=1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-516)
[0711]
cpmvl0zerocandm[0]=mvzero
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-517)
[0712]
cpmvl0zerocandm[1]=mvzero
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-518)
[0713]
cpmvl0zerocandm[2]=mvzero
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-519)
[0714]
refidxl1zerocandm=(slice_type==b)?0:-1
ꢀꢀꢀꢀ
(8-520)
[0715]
predflagl1zerocandm=(slice_type==b)?1:0
ꢀꢀꢀꢀꢀ
(8-521)
[0716]
cpmvl1zerocandm[0]=mvzero
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-522)
[0717]
cpmvl1zerocandm[1]=mvzero
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-523)
[0718]
cpmvl1zerocandm[2]=mvzero
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-524)
[0719]
motionmodelidczerocandm=1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-525)
[0720]
bcwidxzerocandm=0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-526)
[0721]

在subblockmergecandlist的末尾处添加具有m等于(numcurrmergecand-numorigmergecand)的候选zerocandm,并将numcurrmergecand增加1,如下所示:
[0722]
subblockmergecandlist[numcurrmergecand ]=zerocandmꢀꢀꢀꢀꢀ
(8-527)
[0723]
变量refidxl0、refidxl1、predflagl0[xsbidx][ysbidx]、predflagl1[xsbidx][ysbidx]、mvl0[xsbidx][ysbidx]、mvl1[xsbidx][ysbidx]、mvcl0[xsbidx][ysbidx]以及mvcl1[xsbidx][ysbidx]的导出如下,其中xsbidx=0..numsbx-1,ysbidx=0..numsby-1:
[0724]

如果subblockmergecandlist[merge_subblock_idx[xcb][ycb]]等于sbcol,如果subblockmergecandlist[merge_subblock_idx[xcb][ycb]]等于sbcol,将双向预测权重索引bcwidx设置为0,并且以下适用,其中x为0或1:
[0725]
refidxlx=refidxlxsbcol
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-528)
[0726]

对于xsbidx=0..numsbx-1,ysbidx=0..numsby-1,以下适用:
[0727]
predflaglx[xsbidx][ysbidx]=predflaglxsbcol[xsbidx][ysbidx] (8-529)
[0728]
mvlx[xsbidx][ysbidx][0]=mvlxsbcol[xsbidx][ysbidx][0]
ꢀꢀꢀ
(8-530)
[0729]
mvlx[xsbidx][ysbidx][1]=mvlxsbcol[xsbidx][ysbidx][1]
ꢀꢀꢀ
(8-531)
[0730]

当predflaglx[xsbidx][ysbidx]等于1时,调用条款8.5.2.13中的色度运动矢量的导出过程,其中mvlx[xsbidx][ysbidx]和refidxlx作为输入并且输出为mvclx[xsbidx][ysbidx]。
[0731]

对x=xcb..xcb cbwidth

1以及y=ycb..ycb cbheight

1,进行以下分配:
[0732]
motionmodelidc[x][y]=0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-532)
[0733]

否则(subblockmergecandlist[merge_subblock_idx[xcb][ycb]]不等于sbcol),sbcol),sbcol),以下适用,其中x为0或1:
[0734]

进行以下分配,其中n为子块merge候选列表
[0735]
subblockmergecandlist(n=subblockmergecandlist[merge_subblock_idx[xcb][ycb]])中的位置merge_subblock_idx[xcb][ycb]处的候选:
[0736]
图10是示出了可实现本文中所公开的各种技术的示例视频处理系统1000的框图。各种实现方式可以包括系统1000的一些或全部组件。系统1000可以包括用于接收视频内容的输入1002。视频内容可以以原始或未压缩的格式(例如,8或10位多分量像素值)接收,或者可以以压缩或编码的格式接收。输入1002可以代表网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(pon)等)和无线接口(诸如wi-fi或蜂窝接口)。
[0737]
系统1000可以包括可以实现本文档中描述的各种编解码或编码方法的编解码组件1004。该编解码组件1004可以将视频的平均比特率从编解码组件1004的输入1002降低到编解码组件1004的输出,以产生视频的编解码表示。因此,编解码技术有时称为视频压缩或视频转码技术。编解码组件1004的输出可以被存储或经由如组件1006所表示的所连接的通信来发送。在输入1002处接收到的视频的存储或通信的比特流(或编解码)表示可以由用于生成像素值或可显示视频的组件1008来使用,该像素值或可显示视频被发送到显示接口1010。从比特流表示中生成用户可见视频的过程有时称为视频解压缩。此外,尽管某些视频处理操作被称为“编解码”操作或工具,但是将理解的是,编码工具或操作在编码器处使用,并且与编码结果相反的对应解码工具或操作将由解码器执行。
[0738]
外围总线接口或显示接口的示例可以包括通用串行总线(usb)或高清多媒体接口(hdmi)或显示端口等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以实施在各种电子设备中,诸如移动电话、膝上型计算机、智能电话或其他能够执行数字数据处理和/或视频显示的设备。
[0739]
图11是视频处理装置1100的框图。装置1100可以用于实现本文中描述的一种或多种方法。装置1100可以实施在智能手机、平板电脑、计算机、物联网(iot)接收器等中。装置1100可以包括一个或多个处理器1102、一个或多个存储器1104和视频处理硬件1106。(多个)处理器1102可以被配置为实现本文档中描述的一种或多种方法。存储器(多个存储器)1104可以用于存储用于实现本文中描述的方法和技术的数据和代码。视频处理硬件1106可以用于在硬件电路中实现本文档中描述的一些技术。在一些实施例中,硬件1106可以全部或部分在处理器1101中,例如作为图形处理器。
[0740]
图16是图示了可以利用本公开的技术的示例视频编解码系统100的框图。
[0741]
如图16中所示,视频编解码系统100可以包括源设备110和目的地设备120。源设备110生成可以被称为视频编码设备的编码视频数据。目的地设备120可以对由源设备110生成的编码视频数据进行解码,该源设备110可以被称为视频解码设备。
[0742]
源设备110可以包括视频源112、视频编码器114和输入/输出(i/o)接口116。
[0743]
视频源112可以包括源(诸如视频捕获设备、从视频内容提供商接收视频数据的接口、和/或用于生成视频数据的计算机图形系统、或这些源的组合)。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。该比特流可以包括形成视频数据的编解码表示的比特序列。该比特流可以包括编解码图片和相关联的数据。编解码图片是图片的编解码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法结构。i/o接口116可以包括调制器/解调器(调制解调器)和/或发送器。编码视频数据可以经由i/o接口116通过网络130a直接发送到目的地设备120。编码视频数据还可以储存到存储介质/服务器130b上,以供目的地设备120接入。
[0744]
目的地设备120可以包括i/o接口126、视频解码器124和显示设备122。
[0745]
i/o接口126可以包含接收器和/或调制解调器。i/o接口126可以从源设备110或存储介质/服务器130b获取编码的视频数据。视频解码器124可以对编码视频数据进行解码。显示设备122可以将解码的视频数据显示给用户。显示设备122可以与目的地设备120集成在一起,或者可以在目的地设备120外部,该目的地设备120被配置为与外部显示设备接口连接。
[0746]
视频编码器114和视频解码器124可以根据视频压缩标准(诸如高效视频编解码(hevc)标准、通用视频编解码(vvc)标准和其他当前和/或进一步标准)进行操作。
[0747]
图17是图示了视频编码器200的示例的框图,该视频编码器可以是图16中所示的系统100中的视频编码器114。
[0748]
视频编码器200可以被配置为执行本公开的任何或全部技术。在图17的示例中,视频编码器200包括多个功能组件。本公开中描述的技术可以在视频编码器200的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
[0749]
视频编码器200的功能组件可以包括分割单元201、预测单元202(其可以包含模式选择单元203的预测单元202、运动估计单元204、运动补偿单元205和帧内预测单元206)、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重构单元212、缓冲器213和熵编码单元214。
[0750]
在其他示例中,视频编码器200可包含更多、更少或不同的功能组件。在一个示例中,预测单元202可以包含帧内块复制(ibc)单元。该ibc单元可以在ibc模式下执行预测,在该ibc模式中至少一个参考图片是当前视频块所在的图片。
[0751]
此外,诸如运动估计单元204和运动补偿单元205的一些组件可以高度集成,但是为了解释的目的在图17的示例中分别表示。
[0752]
分割单元201可以将图片分割为一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。
[0753]
模式选择单元203可以例如基于错误结果来选择帧内或帧间编解码模式中的一种,并且将得到的帧内或帧间编解码块提供给残差生成单元207以生成残差块数据,并且将得到的帧内或帧间编解码块提供给重构单元212来重构编码块以用作参考图片。在一些示例中,模式选择单元203可以选择帧内预测和帧间预测的组合(ciip)模式,在该组合模式中,该预测是基于帧间预测信令和帧内预测信令。在帧间预测的情况下,模式选择单元203还可以为该块选择运动矢量(例如,子像素或整数像素精度)的分辨率。
[0754]
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于来自缓冲器213的除与当前视频块相关联的图片以外的图片的解码样点和运动信息来确定当前视频块的预测视频块。
[0755]
例如,取决于当前视频块是在i条带,p条带还是b条带中,运动估计单元204和运动补偿单元205可以对当前视频块执行不同的操作。
[0756]
在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以搜索用于当前视频块的参考视频块的列表0或列表1的参考图片。然后,运动估计单元204可以生成指示包含参考视频块的列表0或列表1中的参考图片的参考索引、以及指示当前视频块和参考视频块之间的空间位移的运动矢量。运动估计单元204可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
[0757]
在其他示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以搜索用于当前视频块的参考视频块的列表0中的参考图片,并且还可以搜索用于当前视频块的另一参考视频块的列表1中的参考图片。然后运动估计单元204可以生成指示包
含参考视频块的列表0和列表1中的参考图片的参考索引、和指示参考视频块与当前视频块之间的空间位移的运动矢量。运动估计单元204可以输出作为当前视频块的运动信息的当前视频块的运动矢量和参考索引。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
[0758]
在一些示例中,运动估计单元204可以输出运动信息的全集合以用于解码器的解码处理。
[0759]
在一些示例中,运动估计单元204可以不输出当前视频的运动信息的全集合。而是,运动估计单元204可以参考另一视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与相邻视频块的运动信息充分相似。
[0760]
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示一个值,该值向视频解码器300指示当前视频块具有与另一视频块相同的运动信息。
[0761]
在另一示例中,运动估计单元204可以在与当前视频块相关联的语法结构中标识另一个视频块和运动矢量差(mvd)。该运动矢量差指示当前视频块的运动矢量与指示的视频块的运动矢量之间的差。视频解码器300可以使用所指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
[0762]
如上所讨论的,视频编码器200可以预测性地信令通知运动矢量。可由视频编码器200实现的预测信令通知技术的两个示例包含高级运动矢量预测(amvp)和merge模式信令通知。
[0763]
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于相同图片中的其他视频块的解码样点来生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
[0764]
残差生成单元207可以通过从当前视频块中减去(例如,由负号指示)当前视频块的(多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中的样点的不同样点分量的残差视频块。
[0765]
在其他示例中,例如在跳过模式下,对于当前视频块可以没有当前视频块的残差数据,并且残差生成单元207可以不执行减法操作。
[0766]
变换处理单元208可通过将一个或多个变换应用于与当前视频块相关联的残差视频块来生成当前视频块的一个或多个变换系数视频块。
[0767]
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(qp)值来量化与当前视频块相关联的变换系数视频块。
[0768]
逆量化单元210和逆变换单元211可以分别将逆量化和逆变换应用于变换系数视频块,以从变换系数视频块重构残差视频块。重构单元212可将重构的残差视频块添加到由预测单元202生成的一个或多个预测视频块的对应样点,以产生与当前块相关联的重构视频块,用于存储在缓冲器213中。
[0769]
在重构单元212重构视频块之后,可以执行环路滤波操作以减少视频块中的视频成块化伪影。
[0770]
熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收数据时,熵编码单元214可以执行一个或多个熵编码操作以生成熵编码数据并且输出包括熵编码数据的比特流。
[0771]
图18是图示了视频解码器300的示例的框图,该视频解码器300可以是图16中所示的系统100中的视频解码器114。
[0772]
视频解码器300可以被配置为执行本公开的任何或所有技术。在图18的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各个组件中进行共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
[0773]
在图18的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305以及重构单元306和缓冲器307。在一些示例中,视频解码器300可以执行通常与关于视频编码器200(例如,图17)描述的编码过程反演的解码过程。
[0774]
熵解码单元301可以撷取编码比特流。该编码比特流可以包括熵编码视频数据(例如,视频数据的编码块)。熵解码单元301可以对熵编码的视频数据进行解码,并且运动补偿单元302可以从熵解码的视频数据中确定包含运动矢量、运动矢量精度、参考图片列表索引和其他运动信息的运动信息。运动补偿单元302可以例如通过执行amvp和merge模式来确定这样的信息。
[0775]
运动补偿单元302可以产生运动补偿块,可能基于插值滤波器执行插值。语法元素中可以包含要与子像素精度一起使用的插值滤波器的标识符。
[0776]
运动补偿单元302可以在视频块的编码期间使用如由视频编码器20使用的插值滤波器,以计算参考块的子整数像素的插值的值。运动补偿单元302可根据接收到的语法信息来确定由视频编码器200使用的插值滤波器,并使用插值滤波器来产生预测块。
[0777]
运动补偿单元302可以使用一些语法信息来确定用于对编码视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸、描述如何分割编码的视频序列的图片的每个宏块的分割信息、指示如何编码每个分割的模式、每个帧间编码块的一个或多个参考帧(和参考帧列表)以及用于对编码视频序列进行解码的其他信息。
[0778]
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式,以从空间上相邻的块形成预测块。逆量化单元303对在比特流中提供的且由熵解码单元301解码的量化视频块系数进行逆量化(即,反量化)。逆变换单元303应用逆变换。
[0779]
重构单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的对应预测块相加以形成解码块。如果需要的话,还可以应用去块滤波器来对解码块进行滤波,以移除块状伪影。然后将解码的视频块储存在缓冲器307中,该缓冲器为随后的运动补偿提供参考块。
[0780]
所公开的技术的一些实施例包括做出决定或确定以启用视频处理工具或模式。在示例中,当启用视频处理工具或模式时,编码器将在视频的块的处理中使用或实现该工具或模式,但不一定基于该工具或模式的使用来修改得到的比特流。也就是说,当基于该决定或确定来启用视频处理工作或模式时,从视频的块到视频的比特流表示的转换将使用该视频处理工具或模式。在另一示例中,当启用视频处理工具或模式时,解码器将在知道比特流已经基于视频处理工具或模式被修改的情况下处理比特流。也就是说,将使用基于该决定
或确定而启用的视频处理工具或模式来执行从视频的比特流表示到视频的块的转换。
[0781]
所公开的技术的一些实施例包括作出决定或确定以禁用视频处理工具或模式。在示例中,当禁用视频处理工具或模式时,编码器将在视频的块到视频的比特流表示的转换中不使用该工具或模式。在另一示例中,当禁用视频处理工具或模式时,解码器将在知道比特流已经使用基于该决定或确定而启用的视频处理工具或模式来修改的情况下处理比特流。
[0782]
在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示到对应的比特流表示的转换期间应用视频压缩算法,反之亦然。如由语法所定义,当前视频块的比特流表示可以例如对应于在比特流内共位的或在不同地方散布的位。例如,可以根据变换和编解码的错误残差值并且还使用比特流中的头和其他字段中的位来对宏块进行编码。
[0783]
在一些实施例中,可以实现以下第一组条款。
[0784]
可以将以下条款与在上一节中列出的项目(例如,项目1)中描述的附加技术一起实现。
[0785]
1.一种视频处理的方法(例如,图12中所示的方法1200),包括:对于在包括亮度块和与所述亮度块共位的色度块的视频单元与所述视频单元的编解码表示之间的转换,确定(1202)用于通过将色度权重与用于所述亮度块的转换的亮度权重对准,使用三角形分割模式(tpm)的所述色度块的转换的所述色度权重;以及基于所述确定的结果执行(1204)所述转换。
[0786]
2.根据条款1所述的方法,其中,所述色度权重被确定为所述亮度权重的函数。
[0787]
3.根据条款1-2中任一项所述的方法,其中,所述色度权重是所述亮度权重的子集。
[0788]
4.根据条款1-3中任一项所述的方法,其中,对于与所述色度块重合的所述亮度块的相等尺寸的部分,色度权重等于亮度权重。
[0789]
以下条款可以与在上一节中列出的项目(例如,项目2)中描述的附加技术一起实现。
[0790]
5.一种视频处理的方法,包括:对于在包括亮度块和与所述亮度块共位的色度块的视频单元与所述视频单元的编解码表示之间的转换,基于所述亮度块的特征或所述视频单元的特征来确定用于使用三角形分割模式(tpm)的所述色度块的转换的色度权重;以及基于所述确定的结果执行所述转换。
[0791]
6.根据条款5所述的方法,其中,所述亮度块的特征包括所述亮度块的高度或宽度。
[0792]
7.根据条款5-6中任一项所述的方法,其中,所述视频单元的特征包括所述视频单元的色彩格式或所述视频单元的色度子采样率。
[0793]
8.根据条款5-7中的任一项所述的方法,其中,所述色度权重还取决于所述色度块的色彩分量标识。
[0794]
以下条款可以与在上一节中列出的项目(例如,项目3)中描述的附加技术一起实现。
[0795]
9.根据条款1-8中的任一项所述的方法,其中,所述色度权重和/或所述亮度权重
等于整数。
[0796]
以下条款可以与在上一节中列出的项目(例如,项目4)中描述的附加技术一起实现。
[0797]
10.一种视频处理的方法,包括:对于包括亮度块和与所述亮度块共位的色度块的视频的视频单元与所述视频单元的编解码表示之间的转换,基于所述视频单元的特征确定三角形分割模式(tpm)是否用于所述转换;以及基于所述确定的结果执行所述转换。
[0798]
11.根据条款10所述的方法,其中,所述特征是维度比等于max(h,w)/min(h,w),其中max和min是最大函数和最小函数,并且h和w是所述视频单元的以像素为单位的高度和宽度。
[0799]
12.根据条款10所述的方法,其中,所述特征是维度比等于abs(log2(cbwidth)-log2(cbheight)),其中abs是绝对函数,cbwidth和cbheight是所述色度块的像素宽度和像素高度。
[0800]
13.根据条款10所述的方法,其中,所述确定的结果是由于所述维度比大于2而禁用了所述tpm。
[0801]
以下条款可以与在上一节中列出的项目(例如,项目5)中描述的附加技术一起实现。
[0802]
14.根据条款10所述的方法,其中,所述视频单元的特征包括用于所述视频的转换的最大变换尺寸。
[0803]
15.根据条款14所述的方法,其中,由于所述视频单元的高度或宽度大于所述最大变换尺寸,因此所述确定禁用所述tpm的使用。
[0804]
以下条款可以与在上一节中列出的项目(例如,项目6)中描述的附加技术一起实现。
[0805]
16.根据条款10所述的方法,其中,所述视频单元的特征包括在所述视频的转换期间使用的最大编解码单元尺寸。
[0806]
17.根据条款16所述的方法,其中,由于所述视频单元的高度或宽度等于所述最大编解码单元尺寸,因此所述确定禁用所述tmp的使用。
[0807]
以下条款可以与在上一节中列出的项目(例如,项目7)中描述的附加技术一起实现。
[0808]
18.根据条款10所述的方法,其中,所述视频单元的特征包括所述视频单元的高度或宽度,并且其中,由于所述高度大于n或所述宽度大于m,因此所述确定禁用tmp的使用。
[0809]
以下条款可以与在上一节中列出的项目(例如,项目8)中描述的附加技术一起实现。
[0810]
19.根据条款10所述的方法,其中,所述视频单元的特征包括所述视频单元的高度或宽度,并且其中,由于所述高度为n或所述宽度为m,因此所述确定禁用tmp的使用。
[0811]
以下条款可以与在上一节中列出的项目(例如,项目9)中描述的附加技术一起实现。
[0812]
20.根据条款10所述的方法,其中,所述视频单元的特征包括所述视频单元的色度格式,并且其中,由于所述色度格式是特定格式,因此所述确定禁用tmp的使用。
[0813]
21.根据条款20所述的方法,其中,所述特定格式是4:0:0。
[0814]
以下条款可以与在上一节中列出的项目(例如,项目10)中描述的附加技术一起实现。
[0815]
22.根据条款1所述的方法,其中,所述视频单元的特征包括在所述视频单元的转换中使用的参考图片的分辨率,并且其中,由于所述分辨率彼此不同,因此所述确定禁用tmp的使用。
[0816]
以下条款可以与在上一节中列出的项目(例如,项目11)中描述的附加技术一起实现。
[0817]
23.根据以上条款中的任一项所述的方法,其中,在确定禁用所述tpm模式的情况下,所述编解码表示省略用于tmp语法元素的语法元素。
[0818]
24.根据条款1至23中的任一项所述的方法,其中,所述转换包括将所述视频编码为所述编解码表示。
[0819]
25.根据条款1至23中的任一项所述的方法,其中,所述转换包括对所述编解码表示进行解码以生成所述视频的像素值。
[0820]
26.一种视频解码装置,包括被配置为实现条款1至25中的一项或多项所述的方法的处理器。
[0821]
27.一种视频编码装置,包括被配置为实现条款1至25中的一项或多项所述的方法的处理器。
[0822]
28.一种其上存储有计算机代码的计算机程序产品,所述代码在由处理器执行时使所述处理器实现条款1至25中任一项所述的方法。
[0823]
29.本文档中描述的方法、装置或系统。
[0824]
第二组条款描述了在上一节中公开的技术的某些特征和方面(例如,项目15)。
[0825]
1.一种视频处理的方法(例如,在图19中所示的方法1900),包括:根据规则执行(1910)在视频的当前视频块和所述视频的比特流表示之间的转换,其中分割预测模式用于对所述当前视频块进行编解码,其中将所述当前视频块的最终预测确定为所述当前视频块的两个或更多个预测的加权和;其中所述分割预测模式是基于多个第一分割方案的第一模式或基于多个第二分割方案的第二模式;以及其中所述规则指定用于使用所述第一模式或所述第二模式进行编解码的编解码操作。
[0826]
2.根据条款1所述的方法,其中,所述第一模式是三角形分割模式,并且所述第二模式是几何分割模式。
[0827]
3.根据条款1或2所述的方法,其中,所述多个第一分割方案是所述多个第二分割方案的子集。
[0828]
4.根据条款2所述的方法,其中,所述几何分割模式包括所述多个第二分割方案,并且其中,所述多个第二分割方案中的至少一个将所述当前视频块分为两个子分割,使得所述两个子分割中的至少一个是非正方形的和非矩形的。
[0829]
5.根据条款2所述的方法,其中,所述几何分割模式包括三角形分割模式。
[0830]
6.根据条款1所述的方法,其中,所述第一模式是三角形分割模式,并且所述第二模式是非三角形分割模式。
[0831]
7.根据条款1所述的方法,其中,所述分割预测模式是几何分割模式,所述几何分割模式将作为矩形块的所述当前视频块划分为两个三角形子分割或两个非三角形子分割。
[0832]
8.根据条款1所述的方法,其中,所述规则指定将所述第一模式和所述第二模式信令通知为单个模式。
[0833]
9.根据条款8所述的方法,其中,所述第一模式和所述第二模式以序列参数集(sps)、视频参数集(vps)、活动参数集(aps)、图片参数集(pps)、条带、子图片、片、砖、虚拟流水线数据单元(vpdu)、编解码树单元(ctu)、变换单元(tu)、编解码单元(cu)、预测单元(pu)、图片头或条带头级别来共享相同的控制标志。
[0834]
10.根据条款8所述的方法,其中,将所述第一模式信令通知为所述第二模式的子集。
[0835]
11.根据条款10所述的方法,其中,所述第二模式定义为包含n个子模式并表示为{m0,m1,m2,

,m
n-1
}的预测模式,并且所述第一模式定义为包含x个子模式并表示为{m0,m
k0
,m
k1
,

,m
kx-1
}的另一预测模式,其中{m0,m
k0
,m
k1
,

,m
kx-1
}是{m0,m1,m2,

,m
n-1
}的子集,其中n是大于1且大于x的整数。
[0836]
12.根据条款5所述的方法,其中,信令通知第一语法元素以指示是否应用所述第二模式和/或信令通知第二语法元素以指示是否应用所述第一模式。
[0837]
13.根据条款1所述的方法,其中,所述规则指定所述第一模式和所述第二模式共享用于计算用于确定所述最终预测的混合权重掩码的逻辑。
[0838]
14.根据条款1所述的方法,其中,所述规则指定所述第一模式和所述第二模式共享用于计算用于存储运动的运动存储掩码的逻辑。
[0839]
15.根据条款13或14所述的方法,其中,对于所述第一模式和所述第二模式,使用相同的表来导出所述混合权重掩码或所述运动存储掩码。
[0840]
16.根据条款1至15中的任一项所述的方法,其中,所述转换包括将所述视频编码为所述比特流表示。
[0841]
17.根据条款1至15中的任一项所述的方法,其中,所述转换包括将所述比特流表示解码以生成所述视频。
[0842]
18.一种视频处理装置,包括:处理器,被配置为实现条款1至17中的任意一项或多项所述的方法。
[0843]
19.一种存储程序代码的计算机可读介质,所述程序代码在被执行时使处理器实现条款1至17中的任意一项或多项所述的方法。
[0844]
20.一种计算机可读介质,所述计算机可读介质存储根据上述方法中的任意方法生成的编解码表示或比特流表示。
[0845]
第三组条款描述了在上一节中公开的技术的某些特征和方面(例如,项目16至项目18)。
[0846]
1.一种视频处理的方法,包括:执行在视频的当前视频块和所述视频的比特流表示之间的转换,其中,在所述转换期间,将所述当前视频块的预测确定为所述当前视频块的两个或更多个预测的加权和,并且根据规则确定所述当前视频块的运动矢量存储过程,其中所述当前视频块使用分割预测模式,所述分割预测模式是基于多个第一分割方案的第一模式,或者是基于多个第二分割方案的第二模式,并且其中所述规则指定对于所述第一模式或所述第二模式的用于确定存储哪个运动矢量和多少个运动矢量的过程是相同的。
[0847]
2.根据条款1所述的方法,其中,所述分割预测模式是几何分割模式,所述几何分
割模式将作为矩形块的所述当前视频块划分为两个三角形子分割或两个非三角形子分割。
[0848]
3.根据条款1所述的方法,其中,所述第一模式和所述第二模式包括将所述当前视频块分割为两个或更多个分割。
[0849]
4.根据条款3所述的方法,其中,由所述当前视频块的分割而导致的至少一个分割具有带角度的边缘。
[0850]
5.根据条款1所述的方法,其中,所述第一模式是三角形分割模式,并且所述第二模式是几何分割模式。
[0851]
6.根据条款1所述的方法,其中,所述第一模式是三角形分割模式,并且所述第二模式是非三角形分割模式。
[0852]
7.根据条款5所述的方法,其中,所述几何分割模式包括所述多个第二分割方案,并且其中所述多个第二分割方案中的至少一个将所述当前视频块分为两个子分割,使得所述两个子分割中的至少一个是非正方形的和非矩形的。
[0853]
8.根据条款5所述的方法,其中,所述几何分割模式包括三角形分割模式。
[0854]
9.根据条款1所述的方法,其中,所述规则指定对于所述当前视频块存储两个帧间预测的分割中的哪个运动矢量。
[0855]
10.根据条款1所述的方法,其中,所述规则指定对于所述当前视频块是否存储l0运动矢量或l1运动矢量中的至少一者。
[0856]
11.根据条款1所述的方法,其中,所述规则指定仅存储所述当前视频块的宽度和高度的可允许组合的所述运动矢量。
[0857]
12.根据条款1所述的方法,其中,所述规则指定所存储的运动矢量的每个元素指示i)两个或更多个分割之一的一个或多个运动矢量,ii)多个运动矢量,和/或iii)为所述当前视频块的n
×
n个子块存储帧间预测方向,其中n是大于0的整数。
[0858]
13.根据条款12所述的方法,其中,n等于4。
[0859]
14.根据条款1所述的方法,其中,所述规则指定基于n个预定义表计算存储逻辑、规则和/或过程的所述运动矢量,其中n是大于0的整数。
[0860]
15.根据条款1所述的方法,其中,所述规则指定使用计算等式来计算存储逻辑、规则和/或过程的所述运动矢量。
[0861]
16.一种视频处理的方法,包括:执行在视频的当前块与所述视频的比特流表示之间的转换,其中,在所述转换期间,使用4
×
4单元中的运动信息来确定用于当前块的预测块,并且其中使用分割模式对所述当前块进行编解码。
[0862]
17.根据条款16所述的方法,其中,通过使用所述分割模式将所述当前视频块分割为两个或更多个分割。
[0863]
18.根据条款16所述的方法,其中,所述分割模式是几何分割模式,其包括多个分割方案,并且其中所述多个分割方案中的至少一个将所述当前视频块分为两个子分割,使得所述两个子分割中的至少一个是非正方形的和非矩形的。
[0864]
19.根据条款18所述的方法,其中,所述几何分割模式包括三角形分割模式。
[0865]
20.根据条款16所述的方法,其中,所述分割模式为几何分割模式,所述几何分割模式将作为矩形块的所述当前视频块划分为两个三角形子分割或两个非三角形子分割。
[0866]
21.根据条款16所述的方法,其中,由所述分割模式得到的至少一个分割具有带角
度的边缘。
[0867]
22.根据条款16所述的方法,其中,所述分割模式是三角形分割模式或几何分割模式。
[0868]
23.根据条款17所述的方法,其中,所述两个或更多个分割中的至少一个具有用于运动补偿的对应运动矢量。
[0869]
24.根据条款16所述的方法,其中,所述4
×
4单元包括为空域或时域运动矢量候选而存储的所述当前视频块的运动矢量。
[0870]
25.根据条款16所述的方法,其中,所述当前视频块的4x4子块中的每一个具有其自身的运动矢量,所述运动矢量存储在缓冲器中。
[0871]
26.一种视频处理的方法,包括:执行在视频的当前块和所述视频的比特流表示之间的转换,其中,使用分割模式编解码所述当前块,其中,在所述转换期间,根据规则通过在所述当前视频块的混合区域中混合两个或更多个预测来确定所述当前块的预测块,并且其中所述规则指定为属于所述当前视频块的混合区域的子块来存储l0运动矢量和l1运动矢量。
[0872]
27.根据条款26所述的方法,其中,通过使用所述分割模式将所述当前视频块分割为两个或更多个分割。
[0873]
28.根据条款26所述的方法,其中,所述分割模式是几何分割模式,所述几何分割模式包括多个分割方案,并且其中至少一个分割方案将所述当前视频块分为两个子分割,使得所述两个子分割中的至少一个是非正方形的和非矩形的。
[0874]
29.根据条款28所述的方法,其中,所述几何分割模式包括三角形分割模式。
[0875]
30.根据条款26所述的方法,其中,由所述分割模式得到的至少一个分割具有带角度的边缘。
[0876]
31.根据条款26所述的方法,其中,所述分割模式是三角形分割模式或几何分割模式。
[0877]
32.根据条款27所述的方法,其中,所述混合区域指示被所述两个或更多个分割重叠的区域。
[0878]
33.根据条款26所述的方法,其中,在被应用于生成所述混合区域内的4x4子块的最终预测作为预测样点的加权和的加权过程中,在所述混合区域内的所述4x4子块的预测样点的权重均不等于0。
[0879]
34.根据条款26所述的方法,其中,所述规则指定对于所述当前视频块的混合区域之外的4x4子块,存储分割的单向预测运动矢量。
[0880]
35.根据条款27所述的方法,其中,所述规则指定对于属于所述当前视频块的混合区域的4x4子块,存储所述两个或更多个分割的双向预测运动矢量。
[0881]
36.根据条款35所述的方法,其中,所述规则指定在两个分割具有来自同一方向的运动矢量的情况下,为所述子块存储两个运动矢量中的最小、最大、平均或加权运动矢量之一。
[0882]
37.根据条款35所述的方法,其中,所述规则指定在两个分割具有来自同一方向的运动矢量的情况下,为所述子块存储所述两个分割的预定义运动矢量。
[0883]
38.根据条款1至37中的任一项所述的方法,其中,执行所述转换包括从所述当前
视频块生成所述编解码表示。
[0884]
39.根据条款1至37中的任一项所述的方法,其中,执行所述转换包括从所述编解码表示生成所述当前视频块。
[0885]
40.一种视频处理装置,包括被配置为实现条款1至39中的任一项或多项所述的方法的处理器。
[0886]
41.一种存储程序代码的计算机可读介质,所述程序代码在被执行时使处理器实现条款1至39中任意一项或多项所述的方法。
[0887]
42.一种计算机可读介质,所述计算机可读介质存储根据上述方法中的任一种而生成的编解码表示或比特流表示。
[0888]
第四组条款描述了在上一节中公开的技术的某些特征和方面(例如,项目19和项目20)。
[0889]
1.一种视频处理的方法(例如,图20a中所示的方法2010),包括:对于视频的当前视频块与所述视频的比特流表示之间的转换,根据由于使用所述当前视频块的分割预测模式而产生的规则,作出(2012)确定以将去块过程应用于所述当前视频块内的边界;以及根据所述确定执行(2014)所述转换,其中,使用所述分割预测模式包括,将所述当前视频块的最终预测确定为所述当前视频块的两个或更多个预测的加权和。
[0890]
2.根据条款1所述的方法,其中,所述当前视频块被划分两个或更多个分割。
[0891]
3.根据条款1所述的方法,其中,所述分割预测模式是第一模式或第二模式,在所述第一模式中所述两个或更多个预测基于多个第一分割方案,在所述第二模式中所述两个或更多个预测基于多个第二分割方案。
[0892]
4.根据条款1所述的方法,其中,所述分割预测模式是基于多个第一分割方案的第一模式或基于多个第二分割方案的第二模式。
[0893]
5.根据条款1所述的方法,其中,所述第一模式是三角形分割模式,并且所述第二模式是几何分割模式。
[0894]
6.根据条款5所述的方法,其中,所述几何分割模式包括多个第二分割方案,并且所述多个第二分割方案中的至少一个将所述当前视频块分为两个子分割,使得所述两个子分割中的至少一个是非正方形的和非矩形的。
[0895]
7.根据条款5所述的方法,其中,所述几何分割模式包括三角形分割模式。
[0896]
8.根据条款1所述的方法,其中,所述规则指定在边缘为变换单元(tu)边缘并且所述两个子块之一具有非零系数的情况下,在所述当前视频块的两个子块上的边缘上应用所述去块过程,而无论所述两个子块之间是否存在运动差。
[0897]
9.根据条款8所述的方法,其中,在所述两个子块中不存在非零系数。
[0898]
10.根据条款9所述的方法,其中,所述规则指定在所述两个子块具有全零系数但所述两个子块的运动差大于某个值的情况下应用所述去块过程,应用所述去块过程。
[0899]
11.根据条款9所述的方法,其中,所述规则指定在所述两个子块具有全零系数但所述两个子块的运动差大于某个值的情况下应用所述去块过程,不应用所述去块过程。
[0900]
12.根据条款1所述的方法,其中,所述规则指定对于以所述分割预测模式编解码的所述当前视频块的两个子块的边缘是否触发所述去块过程取决于所述边缘是否对应于所述两个子块的变换单元(tu)边缘或运动矢量(mv)边缘。
[0901]
13.根据条款12所述的方法,其中,所述规则指定在所述两个子块的运动差大于所述mv边缘的某个值的情况下触发所述去块过程。
[0902]
14.根据条款12所述的方法,其中,所述规则指定在位于所述tu边缘的一侧的子块中存在非零系数的情况下触发所述去块过程。
[0903]
15.根据条款1所述的方法,其中,所述规则指定在以下情况下,对于所述tu边缘和所述mv边缘两者的所述边缘触发所述去块过程:1)所述当前视频块的两个子块的运动差大于所述mv边缘的某个值,或者2)子块中存在非零系数。
[0904]
16.根据条款8或12所述的方法,其中,所述变换单元(tu)边缘指示实际的变换单元边缘。
[0905]
17.根据条款12所述的方法,其中,所述运动矢量(mv)边缘指示与滤波网格对准的预测单元(pu)边缘或子块边缘。
[0906]
18.根据条款8、10、11、13、15中任一项所述的方法,其中,所述运动差包括:i)大于t的所述两个子块的运动矢量差,和/或ii)不同参考帧索引,和/或iii)不同参考poc(图片顺序计数),和/或iv)不同数量的参考帧。
[0907]
19.一种视频处理的方法(例如,图20b中所示的方法2020),包括:对于视频的当前视频块和所述视频的比特流表示之间的转换,基于所述当前视频块的分割预测模式的类型,确定(2022)是否和/或如何将去块过程应用于所述当前视频块;以及根据所述确定执行(2024)所述转换,并且其中使用所述分割预测模式包括:将所述当前视频块的最终预测确定为所述当前视频块的两个或更多个预测的加权和。
[0908]
20.根据条款19所述的方法,其中,所述分割预测模式的类型包括第一模式或第二模式,在所述第一模式中所述两个或更多个预测基于第一分割方案,在所述第二模式中所述两个或更多个预测基于第二分割方案。
[0909]
21.根据条款19所述的方法,其中,所述第一模式是三角形分割模式,并且所述第二模式是几何分割模式。
[0910]
22.根据条款19所述的方法,其中,在所述去块过程中对所述当前视频块的两个子块之间的边界进行滤波。
[0911]
23.根据条款19所述的方法,其中,在所述去块过程中对跨所述当前视频块的两个分割的垂直或水平边界进行滤波。
[0912]
24.根据条款19所述的方法,其中,边界强度等于1或2。
[0913]
25.根据条款1至24中的任一项所述的方法,其中,执行所述转换包括从所述当前视频块生成所述编解码表示。
[0914]
26.根据条款1至24中的任一项所述的方法,其中,执行所述转换包括从所述编解码表示生成所述当前视频块。
[0915]
27.一种视频处理装置,包括:被配置为实现条款1至26中的任一项或多项所述的方法的处理器。
[0916]
28.一种存储程序代码的计算机可读介质,所述程序代码在被执行时使处理器实现条款1至26中任一项或多项所述的方法。
[0917]
29.一种计算机可读介质,所述计算机可读介质存储根据上述方法中的任一种生成的编解码表示或比特流表示。
[0918]
第五组条款描述了在上一节中公开的技术的某些特征和方面(例如,项目21至项目29)。
[0919]
1.一种视频处理的方法(例如,图21a中所示的方法2110),包括:对于视频的当前视频块和所述视频的比特流表示之间的转换,根据与所述当前视频块的最大和/或最小变换尺寸无关的规则,确定(2112)帧内子分割(isp)模式的应用性;以及基于所述确定执行(2114)所述转换。
[0920]
2.根据条款1所述的方法,其中,所述isp模式包括将所述当前视频块分割为子块。
[0921]
3.根据条款1所述的方法,其中,所述规则指定isp标志的信令通知不取决于所述当前视频块的宽度是否小于或等于所述最大变换尺寸,和/或不取决于所述当前视频块的高度是否小于或等于所述最大变换尺寸。
[0922]
4.根据条款1所述的方法,其中,所述规则指定isp标志的信令通知不取决于所述当前视频块的宽度和高度的乘积是否大于所述最小变换尺寸的平方。
[0923]
5.根据条款1所述的方法,其中,所述规则指定isp标志的信令通知取决于所述当前视频块的宽度和高度的乘积是否大于n,其中n是大于0的整数。
[0924]
6.根据条款5所述的方法,其中,n是固定值。
[0925]
7.根据条款6所述的方法,其中,n为16。
[0926]
8.根据条款5所述的方法,其中,n取决于视频单元的最小允许变换尺寸。
[0927]
9.根据条款1所述的方法,其中,所述规则指定isp标志的信令通知取决于所述当前视频块的宽度是否小于或等于n,和/或取决于所述当前视频块的高度是否小于或等于n。
[0928]
10.根据条款9所述的方法,其中,n是固定值。
[0929]
11.根据条款10所述的方法,其中,n为64。
[0930]
12.根据条款9所述的方法,其中,n取决于视频单元的最大允许变换尺寸。
[0931]
13.一种视频处理的方法(例如,图21b中所示的方法2120),包括:对于视频的当前视频块和所述视频的比特流表示之间的转换,由于所述当前视频块的尺寸大于适用于所述当前视频块的最大变换尺寸,确定(2122)要应用帧内子分割(isp)模式;以及基于所述确定执行(2124)所述转换。
[0932]
14.根据条款13所述的方法,其中,所述isp模式包括将所述当前视频块分割为子块。
[0933]
15.根据条款13所述的方法,其中,在使用所述isp模式编解码的所述当前视频块大于所述最大变换尺寸的情况下,通过递归方式隐式划分所述当前视频块,直到子块的尺寸为64。
[0934]
16.根据条款13所述的方法,其中,在使用所述isp模式编解码的所述当前视频块大于所述最大变换尺寸的情况下,通过递归方式隐式划分所述当前视频块,直到子块的尺寸为所述最大变换尺寸。
[0935]
17.一种视频处理的方法(例如,图21c中所示的方法2130),包括:对于视频的当前视频块和所述视频的比特流表示之间的转换,由于所述当前视频块的尺寸大于或等于128,确定(2132)将组合帧间和帧内预测(ciip)模式或分割模式应用于所述当前视频块;以及基于所述确定执行(2134)所述转换。
[0936]
18.根据条款17所述的方法,其中,所述尺寸是指所述当前视频块的宽度或高度。
[0937]
19.根据条款17所述的方法,其中,所述尺寸是指所述当前视频块中的像素的总数。
[0938]
20.根据条款17所述的方法,其中,所述ciip模式包括使用加权系数来组合帧内预测信令和帧间预测信令,并且其中所述分割模式包括将所述当前视频块分割为两个或更多个分割,其中至少一个分割具有带角度的边缘。
[0939]
21.根据条款17所述的方法,其中,所述分割模式包括三角形分割模式或几何分割模式。
[0940]
22.根据条款21所述的方法,其中,所述几何分割模式包括多个分割方案,并且所述多个分割方案中的至少一个将所述当前视频块分为两个分割,使得所述两个分割中的至少一个是非正方形的和非矩形的。
[0941]
23.根据条款21所述的方法,其中,所述几何分割模式包括三角形分割模式。
[0942]
24.根据条款17所述的方法,其中,最大编解码树单元(ctu)尺寸被设置为大于128。
[0943]
25.一种视频处理的方法,包括:执行在当前视频块和所述视频的比特流表示之间的转换,其中,所述比特流表示符合格式规则,所述格式规则基于所述当前视频块的尺寸来指定包括在所述比特流表示中的信息。
[0944]
26.根据条款25所述的方法,其中,所述格式规则指定由于所述当前视频块的尺寸大于128,所以在所述比特流表示中包括merge数据。
[0945]
27.根据条款26所述的方法,其中,指示所述merge数据的merge标志取决于所述当前视频块的尺寸是否小于最大编解码树单元(ctu)尺寸。
[0946]
28.根据条款25所述的方法,其中,所述格式规则指定由于所述当前视频块的维度大于128,而在所述比特流表示中包括cu_skip_flag或pred_mode_ibc_flag中的至少一个。
[0947]
29.一种视频处理的方法,包括:执行在当前视频块和视频的比特流表示之间的转换,其中,所述比特流表示符合格式规则,所述格式规则指定,在所述当前视频块的宽度和/或高度等于或大于x的情况下,从所述比特流表示中省略指示使用帧内块复制(ibc)预测模式的语法元素,其中x是整数。
[0948]
30.根据条款29所述的方法,其中,所述格式规则指定将所述语法元素的值推断为0。
[0949]
31.根据条款29所述的方法,其中,所述格式规则指定所述ibc预测模式不用于所述当前视频块。
[0950]
32.根据条款29所述的方法,其中,所述语法元素对应于pred_mode_ibc_flag。
[0951]
33.根据条款29所述的方法,其中,x为64或128。
[0952]
34.根据条款29所述的方法,其中,所述格式规则指定,在所述当前视频块的宽度和高度大于64的情况下,将所述语法元素的值推断为0。
[0953]
35.根据条款29所述的方法,其中,所述格式规则指定,在所述当前视频块的宽度或高度大于64的情况下,将所述语法元素的值推断为0。
[0954]
36.一种视频处理的方法(例如,图21d中所示的方法2140),包括:对于包括多个色彩分量的视频与所述视频的比特流表示之间的转换,根据规则确定(2142)在用于每个分量的去块过程中使用的去块参数偏移;以及基于所述确定执行(2144)所述转换,其中所述规
则指定对于所述视频的每个分量,在图片级别和/或条带级别处的所述去块参数偏移是不同的。
[0955]
37.根据条款36所述的方法,其中,所述规则进一步指定亮度分量、cb分量和cr分量的所述图片级别处的所述去块参数偏移是不同的,并且由不同的语法元素指示。
[0956]
38.根据条款36所述的方法,其中,所述规则进一步指定联合编解码模式的所述图片级别处的所述去块参数偏移与非联合模式的所述去块参数偏移不同,并且由不同的语法元素指示,其中所述联合编解码模式共同为cb分量和cr分量生成所述当前视频块的预测残差块。
[0957]
39.根据条款36所述的方法,其中,所述规则进一步指定亮度分量、cb分量和cr分量的所述条带级别处的所述去块参数偏移是不同的,并且由不同的语法元素指示。
[0958]
40.根据条款36所述的方法,其中,所述规则进一步指定联合编解码模式的所述图片级别处的所述去块参数偏移与非联合模式的所述去块参数偏移不同,并由不同的语法元素指示,其中所述联合编解码模式共同为cb分量和cr分量生成所述当前视频块的预测残差块。
[0959]
41.一种视频处理的方法(例如,图21e中所示的方法2150),包括:对于视频的色度视频块和所述视频的比特流表示之间的转换,基于根据规则确定的色度量化参数(qp)来导出(2152)色度去块参数,其中所述色度视频块属于编解码单元和条带;以及基于所述色度去块参数执行(2154)所述转换,并且其中所述规则指定所述色度qp是基于所述色度视频块的图片级别色度qp偏移和编解码单元级别色度qp偏移,但与条带级别色度qp偏移无关。
[0960]
42.根据条款41所述的方法,其中所述规则进一步指定所述色度qp取决于pps_cb_qp_offset、pps_cr_qp_offset、pps_cbcr_qp_offset、cuqpoffset
cb
、cuqpoffset
cr
和cuqpoffset
cbcr
,但与slice_cb_qp_offset、slice_cr_qp_offset和slice_cbcr_qp_offset无关,其中pps_cb_qp_offset、pps_cr_qp_offset、pps_cbcr_qp_offset指定分别在qp

cb
、qp

cr
和qp

cbcr
的导出中使用的所述图片级别上的偏移,并且cuqpoffset
cb
、cuqpoffset
cr
和cuqpoffset
cbcr
指定当确定分别用于所述色度视频块的所述qp

cb
、qp

cr
和qp

cbcr
量化参数的相应值时要使用的值。
[0961]
43.根据条款1至42中的任一项所述的方法,其中,执行所述转换包括从所述当前视频块生成所述编解码表示。
[0962]
44.根据条款1至42中的任一项所述的方法,其中,执行所述转换包括从所述编解码表示生成所述当前视频块。
[0963]
45.一种视频处理装置,包括被配置为实现条款1至44中的任一项或多项所述的方法的处理器。
[0964]
46.一种存储程序代码的计算机可读介质,所述程序代码在被执行时使处理器实现条款1至44中的任意一项或多项所述的方法。
[0965]
47.一种计算机可读介质,所述计算机可读介质存储根据上述方法中的任意方法生成的编解码表示或比特流表示。
[0966]
本文档中描述的公开和其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路、或计算机软件、固件或硬件中实现,包括本文档中所公开的结构及其结构等同物,或其中一个或多个的组合。公开的和其他实施例可以实现为一个或多个计算机程序产
品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质组成、或它们中一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机。除硬件外,该装置还可以包括为讨论中的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中一个或多个的组合的代码。传播信号是人为生成的信号,例如机器生成的电信号、光学信号或电磁信号,生成这些信号以对信息进行编码,以便传输到适当的接收器装置。
[0967]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于讨论中的程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
[0968]
本文档中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并且生成输出来执行功能。处理和逻辑流还可以通过特殊用途的逻辑电路来执行,并且装置还可以实现为特殊用途的逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0969]
作为示例,适用于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或被操作地耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括作为示例半导体存储器设备,例如eprom、eeprom和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cd rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
[0970]
虽然本专利文档包含许多细节,但不应将其解释为对任何主体的范围或可以主张的范围的限制,而应解释为可特定于特定技术的特定实施例的特征的描述。本专利文档在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能还可以在多个实施例中单独实现,或在任何合适的子组合中实现。此外,尽管特征可以描述为在某些组合中起作用,并且甚至最初要求是这样,但在某些情况下,可以从组合中删除主张的组合中的一个或多个特征,并且主张的组合可以指向子组合或子组合的变化。
[0971]
类似地,尽管图纸中以特定顺序描述了操作,但这不应理解为要获得期望的结果需要以所示的特定次序或顺序次序执行此类操作,或执行所有说明的操作。此外,本专利文档中描述的实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
[0972]
仅描述了一些实现方式和示例,并且其他实现方式、增强和变型可以基于本专利文档中描述和说明的内容做出。
再多了解一些

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

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

相关文献