几何分割模式的制作方法

文档序号:31694413发布日期:2022-10-01 02:28阅读:157来源:国知局
几何分割模式的制作方法
几何分割模式
1.相关申请的交叉引用
2.根据适用的专利法和/或依据巴黎公约的规则,本技术适时要求于2020年2月7日提交的国际专利申请no.pct/cn2020/074499的优先权和权益。国际专利申请no.pct/cn2020/074499的全部公开通过参考而并入作为本技术的公开的一部分。
技术领域
3.本文档涉及视频编解码技术、系统和设备。


背景技术:

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


技术实现要素:

5.本发明涉及视频编解码技术。具体地,本发明关于视频编解码中的帧间预测和相关技术。本发明可以被应用于现有的视频编解码标准,如hevc,也可以被应用于待定的标准(多功能视频编解码)。本发明也可以适用于未来的视频编解码标准或视频编解码器。
6.在一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括执行视频的当前块和该视频的比特流表示之间的转换,其中,当前块的编解码模式将当前块分割为包括至少一个非矩形或非正方形子区域的两个或更多个子区域,其中,比特流表示包括与编解码模式相关联的信令,并且其中,信令对应于具有视频的当前块的第一值集合和后续块的第二值集合的参数集合。
7.在另一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括执行视频的当前块和该视频的比特流表示之间的转换,其中,当前块的编解码模式将当前块分割为包括至少一个非矩形或非正方形子区域的两个或更多个子区域,其中,编解码模式能够使用多个参数集来配置,并且其中,比特流表示包括用于多个参数集的子集的信令,并且其中,参数集包括与至少一个非矩形或非正方形子区域相关联的角度、位移和距离。
8.在又一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:对于视频的当前块和该视频的比特流表示之间的转换,做出关于第一编解码模式和不同于第一编解码模式的第二编解码模式的启用的确定,其中,第一编解码模式将当前块分割为包括至少一个非矩形或非正方形子区域的两个或更多个子区域;以及基于该确定来执行转换。
9.在又一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:对于视频的当前视频块和该视频的比特流之间的转换,确定当前视频块以几何分割模式进行编解码,其中,几何分割模式包括整个分割模式集合;基于比特流中包括的分割模式索引来确定当前视频块的一个或多个分割模式,其中,分割模式索引从一个视频块
到另一个视频块对应于不同的分割模式;以及基于一个或多个分割模式来执行转换。
10.在又一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:对于视频的当前视频块和该当前视频块的比特流之间的转换,确定视频块以几何分割模式进行编解码,其中,几何分割模式包括整个分割模式集合,并且每个分割模式与包括角度、距离和/或位移中的至少一个的参数集合相关联;从整个分割模式或参数集合推导分割模式或参数的子集;以及基于分割模式或参数的子集来执行转换。
11.在又一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:对于视频的视频块和该视频块的比特流之间的转换,确定几何分割模式和不同于几何分割模式的第二编解码模式对视频块的启用;以及基于该确定来执行转换。
12.在又一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:对于视频的视频块和该视频块的比特流之间的转换,基于当前视频块是否以当前视频块的几何分割模式和/或颜色格式进行编解码,来确定与视频块相关联的去方块过程;以及基于去方块过程来执行转换。
13.在又一个代表性方面,公开了一种用于存储视频的比特流的方法。该方法包括:对于视频的当前视频块和该视频的比特流之间的转换,确定当前视频块以几何分割模式进行编解码,其中,几何分割模式包括整个分割模式集合;基于比特流中包括的分割模式索引来确定当前视频块的一个或多个分割模式,其中,分割模式索引从一个视频块到另一个视频块对应于不同的分割模式;以一个或多个分割模式从视频块生成比特流;以及将比特流存储在非暂时性计算机可读记录介质中。
14.在又一示例方面,公开了一种包括被配置为实施上述方法的处理器的视频编码器装置。
15.在又一示例方面,公开了一种包括被配置为实施上述方法的处理器的视频解码器装置。
16.在又一示例方面,公开了一种计算机可读介质。该计算机可读介质上存储有代码。该代码在由处理器执行时使得处理器实施上述方法。
17.本文档中描述了这些和其他方面。
附图说明
18.图1示出了三角形预测模式(tpm)的示例。
19.图2示出了几何编解码模式(geo)划分边界描述的示例。
20.图3a示出了geo中支持的边缘的示例。
21.图3b示出了给定像素位置和两个边缘之间的几何关系。
22.图4示出了geo的不同角度以及它们对应的宽高比的示例。
23.图5示出了64个geo模式的角度分布的示例。
24.图6示出了以逆时针方向的angleidx 0到31的geo/tpm划分边界的示例。
25.图7示出了以顺时针方向的angleidx 0到31的geo/tpm划分边界的另一示例。
26.图8示出了视频处理的示例方法的流程图。
27.图9是视频处理装置的示例的框图。
28.图10是示出示例视频编解码系统的框图。
29.图11是示出示例编码器的框图。
30.图12是示出示例解码器的框图。
31.图13是其中可以实施所公开的技术的示例视频处理系统的框图。
32.图14示出了视频处理的示例方法的流程图。
33.图15示出了视频处理的示例方法的流程图。
34.图16示出了视频处理的示例方法的流程图。
35.图17示出了视频处理的示例方法的流程图。
36.图18示出了视频处理的示例方法的流程图。
具体实施方式
37.由于对更高分辨率视频的需求不断增加,视频编解码方法和技术在现代技术中无处不在。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且不断得到改进以提供更高的编解码效率。视频编解码器将未压缩视频转换为压缩格式,反之亦然。视频质量、用于表示视频的数据量(由比特率确定)、编码和解码算法的复杂性、对数据丢失和错误的敏感性、编辑的容易程度、随机访问和端到端延迟(时延)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如,高效视频编解码(hevc)标准(也称为h.265或mpeg-h part 2)、待定的多功能视频编解码标准或者其他当前和/或未来的视频编解码标准。
38.所公开的技术的实施例可以被应用于现有的视频编解码标准(例如,hevc、h.265)和未来的标准,以提高运行时性能。它具体涉及视频编解码中的merge模式。在本文档中使用章节标题来提高描述的可读性,并且不以任何方式将讨论或实施例(和/或实施方式)仅限于相应的章节。
39.1.背景
40.视频编解码标准主要是通过开发公知的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采纳了许多新方法并将其引入到名为联合探索模型(joint exploration model,jem)的参考软件中。jvet会议每季度同时举行一次,新编解码标准的目标是与hevc相比降低50%的比特率。新视频编解码标准在2018年4月的jvet会议上被正式命名为多功能视频编解码(vvc),第一版vvc测试模型(vtm)也在当时发布。由于对vvc标准化的持续努力,新的编解码技术在每次jvet会议上都被采用到vvc标准中。vvc的工作草案和测试模型vtm在每次会议后都会更新。vvc项目现在的目标是在2020年7月的会议上技术上完成(fdis)。
41.1.1.用于帧间预测的几何分割(geo)
42.以下描述摘自jvet-p0884、jvet-p0107、jvet-p0304、jvet-p0264、jvet-q0079、jvetq0059、jevt-q0077和jvet-q0309。
43.几何merge模式(geo)是在第15届哥德堡jvet会议上提出的,是现有三角形预测模式(tpm)的扩展。在第16届日内瓦jvet会议上,jvet-p0884中的一个更简单设计的geo模式
p0107基于斜率的版本2、jvet-p0304和jvet-p0264测试1的简化。
54.a)在联合贡献中,geo角度是与jvet-p0107和jvet-p0264中相同的定义斜率(2的纠缠幂)。本提案中使用的斜率为(1,1/2,1/4,4,2)。在这种情况下,如果即时计算混合掩模,乘法将被移位运算替换。
55.b)rho计算由偏移x和偏移y替换,如jvet-p304中所述。在这种情况下,在不即时计算混合掩码的情况下,仅需要存储24个混合掩模。
56.1.1.2.jvet-p0107
57.基于该基于斜率的geo版本2,表1中图示了dis[.]查找表
[0058]
表1.基于斜率的geo的2比特dis[.]查找表
[0059][0060][0061]
利用基于斜率的geo版本2,geo混合掩模推导的计算复杂度被认为是乘法(多达2比特移位)和加法。与tpm相比,没有不同的分区。此外,移除了distfromline的取整运算,以便更容易地存储混合掩模。该错误修复保证了样点权重以移位的方式在每行或每列中重复。
[0062]
1.1.3.jvet-p0264
[0063]
在jvet-p0264中,geo中的角度被替换为具有2的幂为正切的角度。因为所提出的角度的正切为2的幂,所以大多数乘法可以由移位来替换。此外,这些角度的权重值可以通过逐行或逐列重复相移来实施。利用所提出的角度,每个块尺寸和每个分割模式需要一行或一列来存储。
[0064]
1.1.4.jvet-p0304
[0065]
在jvet-p0304中,提出了从两个预定义掩模集合推导用于所有块和分割模式的运动场存储的权重和掩模掩码,一个集合用于混合权重推导,另一个集合用于运动场存储的掩模。每个集合中总共有16个掩模。使用geo中的相同等式计算每个角度的每个掩模,块宽度和块高度设置为256,位移设置为0。对于具有角度和距离ρ的尺寸为w
×
h的块,亮度样点的混合权重直接从预定义的掩模裁剪,偏移被计算如下:
[0066]-变量offsetx和offsety被计算如下:
[0067][0068][0069]-[0070]
其中g_sampleweight
l
[]是混合权重的预定义掩模。
[0071]
1.1.5.jvet-q0079
[0072]
在jvet-p会议上,在jvet-p0884/jvet-p0885中提出了简化的geo模式,并建议作
为ce4核心实验的公共基础。在此公共基础中,geo模式被应用于宽度和高度都大于或等于8的merge块。当使用geo模式对块进行编解码时,信令通知索引以指示使用82个分割模式中的哪一个来将块划分为两个分区。每个分区利用其自身的运动矢量进行帧间预测。在预测每个分区之后,使用利用权重的混合处理来调整沿着分割边缘的样点值。这是整个块的预测信号,并且变换和量化过程将被应用于整个块,如同在其他预测模式中一样。
[0073]
在混合过程中使用的亮度样点的权重被计算如下:
[0074]
weightidx=(((x+offsetx)《《1)+1)*dis[displacementx]+(((y+offsety)《《1)+1))*dis[displacementy]-rho.
[0075]
weightidxabs=clip3(0,26,abs(weightidx)).
[0076]
sampleweight=weightidx《=0?geofilter[weightidxabs]:8-geofilter[weightidxabs]
[0077]
dis[.]是具有24个条目的查找表,并且可能的输出值为{0,1,2,4}。geofilter[.]是具有27个条目的查找表。变量rho、offsetx和offsety是基于以下预被先计算的:
[0078]
rho=(dis[displacementx]《《8)+(dis[displacementy]《《8)
[0079][0080][0081]
和ρ表示使用信令通知的索引从查找表推导的角度和距离。
[0082]
色度样点的权重是从亮度权重子采样的。使用相同的权重推导方法独立地推导运动存储掩模。关于该公共基础的更多详细说明,可以在jvet-p0884/jvet-p0885中找到。
[0083]
1.1.6.jvet-q0059
[0084]
在jvet-q会议中,采用了64个模式的几何帧间预测(即,jvet-q0059)。
[0085]
因为在自然视频序列中,运动对象大多是垂直布局的,所以不太经常使用接近水平的划分模式。在提出的64个模式的geo中,我们移除了角度{5,7,17,19}。图5示出了64个模式的geo的角度分布。
[0086]
此外,在82个模式的geo中,水平角度{0,12}和垂直角度{6,18}的距离索引为2的距离与三叉树划分边界重叠。在提出的64个模式的geo中也移除了它们。
[0087]
所提出的方法的总模式能够被计算为10*4+10*3
–2–
4=64个模式
[0088]
此外,由于通过使用截断二进制来信令通知geo划分模式,因此64个模式将以6比特tb最有效地信令通知。
[0089]
1.1.7.jvet-q0077和jvet-q0309
[0090]
对大于64x64的块禁用geo,并且对64x8和8x64的块禁用geo。
[0091]
1.1.8.geo/gpm角度索引和角度尺寸
[0092]
在最新的vvc工作草案8中,geo模式被重命名为几何分割模式(gpm)。geo/gpm角度索引用于表示将geo/gpm块划分为两个子区域的划分边界,如图6所示。如jvet-p0264所介绍的,根据块的宽高比,geo/gpm角度的正切是2的幂。在jvet-q2001-vb中,geo/gpm角度的尺寸范围从0
°
到352.87
°
,相关联的geo/gpm角度索引范围从0到31,如图6所示。垂直方向(例如,与等于0的angleidx的划分边界重叠)和指定的geo划分边界之间的角度被定义为
geo/gpm模式的geo/gpm角度的尺寸。geo/gpm角度的尺寸(角度尺寸)和geo/gpm角度索引(angleidx)之间的对应关系可以在表2中找到。
[0093]
表2:角度索引和角度尺寸之间的关系的示例(逆时针)
[0094][0095]
1.2.jvet-q2001-vb中的geo/gpm的规范
[0096]
以下规范摘自jvet-q2001-vb中所提供的工作草案。
[0097]
7.3.10.5编解码单元语法
[0098]
[0099]
[0100]
[0101][0102]
7.3.10.7 merge数据语法
[0103][0104]
sps_gpm_enabled_flag指定基于几何分割的运动补偿是否能够被用于帧间预测。sps_gpm_enabled_flag等于0指定语法应当被约束,使得在clvs中不使用基于几何分割的运动补偿,并且merge_gpm_partition_idx、merge_gpm_idx0和merge_gpm_idx1不存在于clvs的编解码单元语法中。sps_gpm_enabled_flag等于1指定能够在clvs中使用基于几何分割的运动补偿。当不存在时,sps_gpm_enabled_flag的值被推断为等于0。
[0105]
max_num_merge_cand_minus_max_num_gpm_cand指定从maxnummergecand中减去的sps中支持的几何分割merge模式候选的最大数量。
[0106]
如果sps_gpm_enabled_flag等于1且maxnummergecand大于或等于3,则几何分割
merge模式候选的最大数量maxnumgeomergecand被推导如下:
[0107]
if(sps_gpm_enabled_flag&&maxnummergecand》=3)
[0108]
maxnumgpmmergecand=maxnummergecand-max_num_merge_cand_minus_max_num_gpm_cand
[0109]
else if(sps_gpm_enabled_flag&&maxnummergecand==2)
[0110]
maxnummergecand=2
[0111]
else maxnumgeomergecand=0
[0112]
maxnumgeomergecand的值应当在2到maxnummergecand的范围内,包括端值。
[0113]
变量mergegpmflag[x0][y0],指定当解码b条带时,是否使用基于几何分割的运动补偿来生成当前编解码单元的预测样点,其被推导如下:
[0114]-如果所有以下条件都为真,mergegpmflag[x0][y0]被设置为等于1:
[0115]-sps_gpm_enabled_flag等于1。
[0116]-slice_type等于b。
[0117]-general_merge_flag[x0][y0]等于1。
[0118]-cbwidth大于或等于8。
[0119]-cbheight大于或等于8。
[0120]-cbwidth小于8*cbheight。
[0121]-cbheight小于8*cbwidth。
[0122]-regular_merge_flag[x0][y0]等于0。
[0123]-merge_subblock_flag[x0][y0]等于0。
[0124]-ciip_flag[x0][y0]等于0。
[0125]-否则,mergegpmflag[x0][y0]被设置为等于0。
[0126]
merge_gpm_partition_idx[x0][y0]指定几何分割merge模式的分割形状。数组索引x0、y0指定所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
[0127]
当merge_gpm_partition_idx[x0][y0]不存在时,其被推断为等于0。
[0128]
merge_gpm_idx0[x0][y0]指定基于几何分割的运动补偿候选列表的第一merge候选索引,其中x0、y0指定所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
[0129]
当merge_gpm_idx0[x0][y0]不存在时,其被推断为等于0。
[0130]
merge_gpm_idx1[x0][y0]指定基于几何分割的运动补偿候选列表的第二merge候选索引,其中x0、y0指定所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
[0131]
当merge_gpm_idx1[x0][y0]不存在时,其被推断为等于0。
[0132]
8.5.7几何分割模式帧间块的解码过程
[0133]
8.5.7.1概述
[0134]
当对mergegpmflag[xcb][ycb]等于1的编解码单元进行解码时,调用该过程。
[0135]
该过程的输入为:
[0136]-亮度位置(xcb,ycb),指定当前编解码块相对于当前图片的左上亮度样点的左上
样点,
[0137]-变量cbwidth,指定亮度样点中的当前编解码块的宽度,
[0138]-变量cbheight,指定亮度样点中的当前编解码块的高度,
[0139]-1/16分数样点精度的亮度运动矢量mva和mvb,
[0140]-色度运动矢量mvca和mvcb,
[0141]-参考索引refidxa和refidxb,
[0142]-预测列表标志predlistflaga和predlistflagb。
[0143]
该过程的输出为:
[0144]-亮度预测样点的(cbwidth)x(cbheight)的数组predsamples
l

[0145]-当chromaarraytype不等于0时,分量cb的色度预测样点的(cbwidth/subwidthc)x(cbheight/subheightc)的数组predsamples
cb

[0146]-当chromaarraytype不等于0时,分量cr的色度预测样点的(cbwidth/subwidthc)x(cbheight/subheightc)的数组predsamples
cr

[0147]
设predsamplesla
l
和predsampleslb
l
为预测亮度样点值的(cbwidth)x(cbheight)的数组,并且当chromaarraytype不等于0时,设predsamplesla
cb
、predsampleslb
cb
、predsamplesla
cr
和predsampleslb
cr
为预测色度样点值的(cbwidth/subwidthc)x(cbheight/subheightc)的数组。
[0148]
predsamples
l
、predsamples
cb
和predsamples
cr
通过以下有序步骤来推导:
[0149]
1.对于n是a和b中的每一个,以下适用:
[0150]-由亮度样点的有序二维数组refpicln
l
和色度样点的两个有序二维数组refpicln
cb
和refpicln
cr
组成的参考图片通过调用条款8.5.6.2中指定的过程来推导,其中以设置为等于predlistflagn的x和设置为等于refidxn的refidxx作为输入。
[0151]-数组predsamplesln
l
通过调用条款8.5.6.3中指定的分数样点插值过程来推导,其中以亮度位置(xcb,ycb)、设置为等于cbwidth的亮度编解码块宽度sbwidth、设置为等于cbheight的亮度编解码块高度sbheight、设置为等于(0,0)的运动矢量偏移mvoffset、设置为等于mvn的运动矢量mvlx、设置为等于refpicln
l
的参考数组refpiclx
l
、设置为等于false的变量bdofflag、设置为等于0的变量cidx、rprconstraintsactive[x][refidxlx]以及refpicscale[predlistflagn][refidxn]作为输入。
[0152]-当chromaarraytype不等于0时,数组predsamplesln
cb
通过调用条款8.5.6.3中指定的分数样点插值过程来推导,其中以亮度位置(xcb,ycb)、设置为等于cbwidth/subwidthc的编解码块宽度sbwidth、设置为等于cbheight/subheightc的编解码块高度sbheight、设置为等于(0,0)的运动矢量偏移mvoffset、设置为等于mvcn的运动矢量mvlx、设置为等于refpicln
cb
的参考数组refpiclx
cb
、设置为等于false的变量bdofflag、设置为等于1的变量cidx、rprconstraintsactive[x][refidxlx]以及refpicscale[predlistflagn][refidxn]作为输入。
[0153]-当chromaarraytype不等于0时,数组predsamplesln
cr
通过调用条款8.5.6.3中指定的分数样点插值过程来推导,其中以亮度位置(xcb,ycb)、设置为等于cbwidth/subwidthc的编解码块宽度sbwidth、设置为等于cbheight/subheightc的编解码块高度sbheight、设置为等于(0,0)的运动矢量偏移mvoffset、设置为等于mvcn的运动矢量mvlx、
设置为等于refpicln
cr
的参考数组refpiclx
cr
、设置为等于false的变量bdofflag、设置为等于2的变量cidx、rprconstraintsactive[x][refidxlx]以及refpicscale[predlistflagn][refidxn]作为输入。
[0154]
2.几何分割模式的分割角度变量angleidx和距离变量distanceidx根据merge_gpm_partition_idx[xcb][ycb]的值来设置,如表36所指定的。
[0155]
3.当前亮度编解码块内部的预测样点predsamples
l
[x
l
][y
l
](其中,x
l
=0..cbwidth-1,并且y
l
=0..cbheight-1)通过调用条款8.5.7.2中指定的几何分割模式的加权样点预测过程来推导,其中以设置为等于cbwidth的编解码块宽度ncbw、设置为等于cbheight的编解码块高度ncbh、样点数组predsamplesla
l
和predsampleslb
l
、以及变量angleidx、distanceidx和等于0的cidx作为输入。
[0156]
4.当chromaarraytype不等于0时,当前色度分量cb编解码块内部的预测样点predsamples
cb
[xc][yc](其中,xc=0..cbwidth/subwidthc-1,并且yc=0..cbheight/subheightc-1)通过调用条款8.5.7.2中指定的几何分割模式的加权样点预测过程来推导,其中以设置为等于cbwidth/subwidthc的编解码块宽度ncbw、设置为等于cbheight/subheightc的编解码块高度ncbh、样点数组predsamplesla
cb
和predsampleslb
cb
、以及变量angleidx、distanceidx和等于1的cidx作为输入。
[0157]
5.当chromaarraytype不等于0时,当前色度分量cr编解码块内的预测样点predsamplescr[xc][yc](其中xc=0..cbwidth/subwidthc-1并且yc=0..cbheight/subheightc-1)通过调用条款8.5.7.2中指定的几何分割模式的加权样点预测过程来推导,其中以设置为等于cbwidth/subwidthc的编解码块宽度ncbw、设置为等于cbheight/subheightc的编解码块高度ncbh、样点数组predsamplesla
cr
和predsampleslb
cr
、以及变量angleidx、distanceidx和等于2的cidx作为输入。
[0158]
6.调用条款8.5.7.3中指定的merge几何分割模式的运动矢量存储过程,其中以亮度编解码块位置(xcb,ycb)、亮度编解码块宽度cbwidth、亮度编解码块高度cbheight、分割角度angleidx和距离distanceidx、亮度运动矢量mva和mvb、参考索引refidxa和refidxb、以及预测列表标志predlistflaga和predlistflagb作为输入。
[0159]
表36

基于merge_gpm_partition_idx的angleidx和distanceidx的规范
[0160]
merge_gpm_partition_idx0123456789101112131415angleidx0022223333444455distanceidx1301230123012301merge_gpm_partition_idx16171819202122232425262728293031angleidx5588111111111212121213131313distanceidx2313012301230123merge_gpm_partition_idx32333435363738394041424344454647angleidx14141414161618181819191920202021distanceidx0123131231231231merge_gpm_partition_idx48495051525354555657585960616263angleidx21212424272727282828292929303030distanceidx2313123123123123
[0161]
8.5.7.2几何分割模式的加权样点预测过程
[0162]
该过程的输入为:
[0163]-两个变量ncbw和ncbh,指定当前编解码块的宽度和高度,
[0164]-两个(ncbw)x(ncbh)的数组predsamplesla和predsampleslb,
[0165]-变量angleidx,指定几何分割的角度索引,
[0166]-变量distanceidx,指定几何分割的距离索引,
[0167]-变量cidx,指定颜色分量索引。
[0168]
该过程的输出为预测样点值的(ncbw)x(ncbh)的数组pbsamples。
[0169]
变量nw、nh、shift1、offset1、hwratio、displacementx、displacementy、partflip和shifthor被推导如下:
[0170]
nw=(cidx==0)?ncbw:ncbw*subwidthc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1030)
[0171]
nh=(cidx==0)?ncbh:ncbh*subheightc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1031)
[0172]
shift1=max(5,17-bitdepth)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1032)
[0173]
offset1=1《《(shift1-1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1033)
[0174]
hwratio=nh/nw
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1034)
[0175]
displacementx=angleidx
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1035)
[0176]
displacementy=(angleidx+8)%32
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1036)
[0177]
partflip=(angleidx》=13&&angleidx《=27)?0:1
ꢀꢀꢀꢀꢀꢀ
(1037)
[0178]
shifthor=(angleidx%16==8||(angleidx%16!=0&&hwratio》0))?0:1 (1038)
[0179]
变量offsetx和offsety被推导如下:
[0180]-如果shifthor等于0,则以下适用:
[0181]
offsetx=(-nw)》》1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1039)
[0182]
offsety=((-nh)》》1)+(angleidx《16?(distanceidx*nh)》》3:-((distanceidx*nh)》》3))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1040)
[0183]-否则(shifthor等于1),以下适用:
[0184]
offsetx=((-nw)》》1)+(angleidx《16?(distanceidx*nw)》》3:-((distanceidx*nw)》》3))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1041)
[0185]
offsety=(-nh)》》1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1042)
[0186]
预测样点pbsamples[x][y](其中,x=0..ncbw-1,并且y=0..ncbh-1)被推导如下:
[0187]-变量xl和yl被推导如下:
[0188]
xl=(cidx==0)?x:x*subwidthc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1043)
[0189]
yl=(cidx==0)?y:y*subheightc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1044)
[0190]-指定预测样点的权重的变量wvalue基于表37中指定的数组dislut被推导如下:
[0191]
weightidx=(((xl+offsetx)《《1)+1)*dislut[displacementx]+(((yl+offsety)《《1)+1))*dislut[displacementy]
ꢀꢀꢀ
(1045)
[0192]
weightidxl=partflip?32+weightidx:32-weightidx
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1046)
[0193]
wvalue=clip3(0,8,(weightidxl+4)》》3)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1047)
[0194]-预测样点值被推导如下:
[0195]
pbsamples[x][y]=clip3(0,(1《《bitdepth)-1,(predsamplesla[x][y]*wvalue+(1048)
[0196]
predsampleslb[x][y]*(8-wvalue)+offset1)》》shift1)
[0197]
表37-几何分割距离数组dislut的规范
[0198]
idx02345681011121314dislut[idx]8884420-2-4-4-8-8idx161819202122242627282930dislut[idx]-8-8-8-4-4-2024488
[0199]
8.5.7.3几何分割模式的运动矢量存储过程
[0200]
当对mergegpmflag[xcb][ycb]等于1的编解码单元进行解码时,调用该过程。
[0201]
该过程的输入为:
[0202]-亮度位置(xcb,ycb),指定当前编解码块相对于当前图片的左上亮度样点的左上样点,
[0203]-变量cbwidth,指定亮度样点中的当前编解码块的宽度,
[0204]-变量cbheight,指定亮度样点中的当前编解码块的高度,
[0205]-变量angleidx,指定几何分割的角度索引,
[0206]-变量distanceidx,指定几何分割的距离索引,
[0207]-1/16分数样点精度的亮度运动矢量mva和mvb,
[0208]-参考索引refidxa和refidxb,
[0209]-预测列表标志predlistflaga和predlistflagb。
[0210]
分别指定当前编解码块在水平和垂直方向上的4
×
4块的数量的变量numsbx和numsby分别被设置为等于cbwidth》》2以及cbheight》》2。
[0211]
变量hwratio、displacementx、displacementy、partidx和shifthor被推导如下:
[0212]
hwratio=cbheight/cbwidth
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1049)
[0213]
displacementx=angleidx
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1050)
[0214]
displacementy=(angleidx+8)%32
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1051)
[0215]
partidx=(angleidx》=13&&angleidx《=27)?0:1
ꢀꢀꢀ
(1052)
[0216]
shifthor=(angleidx%16==8||(angleidx%16!=0&&hwratio》0)?0:1(1053)
[0217]
变量offsetx和offsety被推导如下:
[0218]-如果shifthor等于0,则以下适用:
[0219]
offsetx=(-cbwidth)》》1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1054)
[0220]
offsety=((-cbheight)》》1)+(angleidx《16?(distanceidx*cbheight)》》3:-((distanceidx*cbheight)》》3))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1055)
[0221]-否则(shifthor等于1),以下适用:
[0222]
offsetx=((-cbwidth)》》1)+(angleidx《16?(distanceidx*cbwidth)》》3:-((distanceidx*cbwidth)》》3))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1056)
[0223]
offsety=(-cbheight)》》1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1057)
[0224]
对于子块索引(xsbidx,ysbidx)(其中,xsbidx=0..numsbx-1并且ysbidx=0..numsby-1)处的每个4
×
4子块,以下适用:
[0225]-变量motionidx基于表37中指定的数组dislut被计算如下:
[0226]
motionidx=(((4*xsbidx+offsetx)《《1)+5)*dislut[displacementx]+(((4*
ysbidx+offsety《《1)+5))*dislut[displacementy]
ꢀꢀ
(1058)
[0227]-变量stype被推导如下:
[0228]
stype=abs(motionidx)《32?2:(motionidx《=0?(1-partidx):partidx) (1059)
[0230]-取决于stype的值,进行以下赋值:
[0231]-如果stype等于0,则以下适用:
[0232]
predflagl0=(predlistflaga==0)?1:0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1060)
[0233]
predflagl1=(predlistflaga==0)?0:1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1061)
[0234]
refidxl0=(predlistflaga==0)?refidxa:-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1062)
[0235]
refidxl1=(predlistflaga==0)?-1:refidxa
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1063)
[0236]
mvl0[0]=(predlistflaga==0)?mva[0]:0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1064)
[0237]
mvl0[1]=(predlistflaga==0)?mva[1]:0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1065)
[0238]
mvl1[0]=(predlistflaga==0)?0:mva[0]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1066)
[0239]
mvl1[1]=(predlistflaga==0)?0:mva[1]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1067)
[0240]-否则,如果stype等于1或者(stype等于2且predlistflaga+predlistflagb不等于1),则以下适用:
[0241]
predflagl0=(predlistflagb==0)?1:0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1068)
[0242]
predflagl1=(predlistflagb==0)?0:1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1069)
[0243]
refidxl0=(predlistflagb==0)?refidxb:-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1070)
[0244]
refidxl1=(predlistflagb==0)?-1:refidxb
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1071)
[0245]
mvl0[0]=(predlistflagb==0)?mvb[0]:0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1072)
[0246]
mvl0[1]=(predlistflagb==0)?mvb[1]:0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1073)
[0247]
mvl1[0]=(predlistflagb==0)?0:mvb[0]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1074)
[0248]
mvl1[1]=(predlistflagb==0)?0:mvb[1]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1075)
[0249]-否则(stype等于2且predlistflaga+predlistflagb等于1),以下适用:
[0250]
predflagl0=1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1076)
[0251]
predflagl1=1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1077)
[0252]
refidxl0=(predlistflaga==0)?refidxa:refidxb
ꢀꢀꢀꢀꢀꢀ
(1078)
[0253]
refidxl1=(predlistflaga==0)?refidxb:refidxa
ꢀꢀꢀꢀꢀꢀ
(1079)
[0254]
mvl0[0]=(predlistflaga==0)?mva[0]:mvb[0]
ꢀꢀꢀ
(1080)
[0255]
mvl0[1]=(predlistflaga==0)?mva[1]:mvb[1]
ꢀꢀꢀ
(1081)
[0256]
mvl1[0]=(predlistflaga==0)?mvb[0]:mva[0]
ꢀꢀꢀ
(1082)
[0257]
mvl1[1]=(predlistflaga==0)?mvb[1]:mva[1]
ꢀꢀꢀ
(1083)
[0258]-对于x=0..3并且y=0..3,进行以下赋值:
[0259]
mvl0[(xsbidx《《2)+x][(ysbidx《《2)+y]=mvl0
ꢀꢀꢀꢀꢀꢀꢀꢀ
(1084)
[0260]
mvl1[(xsbidx《《2)+x][(ysbidx《《2)+y]=mvl1
ꢀꢀꢀꢀꢀꢀꢀꢀ
(1085)
[0261]
mvdmvrl0[(xsbidx《《2)+x][(ysbidx《《2)+y]=mvl0
ꢀꢀꢀ
(1086)
[0262]
mvdmvrl1[(xsbidx《《2)+x][(ysbidx《《2)+y]=mvl1
ꢀꢀꢀ
(1087)
[0263]
refidxl0[(xsbidx《《2)+x][(ysbidx《《2)+y]=refidxl0
ꢀꢀꢀ
(1088)
[0264]
redidxl1[(xsbidx《《2)+x][(ysbidx《《2)+y]=refidxl1
ꢀꢀꢀ
(1089)
[0265]
predflagl0[(xsbidx《《2)+x][(ysbidx《《2)+y]=predflagl0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1090)
[0267]
predflagl1[(xsbidx《《2)+x][(ysbidx《《2)+y]=predflagl1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1091)
[0269]
bcwidx[(xsbidx《《2)+x][(ysbidx《《2)+y]=0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1092)
[0270]
2.现有解决方案的缺点
[0271]
在geo的当前设计中有几个潜在的问题,如下所述。
[0272]
(1)当前geo模式被分布为对称geo角度和对称geo距离/位移,这对于自然视频编解码可能是无效的。
[0273]
(2)当前geo模式能够用加权预测来呈现,这可能导致视觉伪影。
[0274]
3.所公开的技术的实施例
[0275]
下面的详细发明应该被认为是解释一般概念的示例。这些发明不应该以狭隘的方式来解释。此外,这些发明能够以任何方式组合。
[0276]
术语“geo”可以表示将一个块划分为两个或更多个子区域的编解码方法,其中,至少一个子区域是非矩形的,或者它不能通过将一个块划分为多个矩形子区域的任何现有分割结构(例如,qt/bt/tt)生成。在一个示例中,对于geo编解码块,基于子区域如何被划分来为编解码块推导一个或多个加权掩模,并且编解码块的最终预测信号通过与子区域相关联的两个或更多个辅助预测信号的加权和来生成。术语“geo”可以指示几何merge模式(geo)、和/或几何分割模式(gpm)、和/或楔形预测模式、和/或三角形预测模式(tpm)。
[0277]
术语“块”可以表示编解码块(cb)、cu、pu、tu、pb、tb。
[0278]
1.信令通知的geo模式索引的解释可以从一个视频单元到另一个视频单元自适应地改变。也就是说,对于相同的信令通知值,它可以被解释为不同的角度和/或不同的距离。
[0279]
a)在一个示例中,信令通知的geo模式索引和其对应的geo角度/距离之间的映射可以取决于块维度(例如,块宽度与高度之比)。
[0280]
b)此外,可替代地,用于geo模式索引编解码的二值化可以是非固定长度编解码,其中,对于两个不同模式,要被编解码的二进制位/比特的数量可以不同。
[0281]
c)在一个示例中,可以在不同视频单元中使用不相等数量的geo模式/角度/位移/距离。
[0282]
i.在一个示例中,在视频单元中使用多少geo模式/角度/位移/距离可以取决于块维度(例如,宽度、高度、宽高比等)。
[0283]
ii.在一个示例中,可以在块a中使用比在块b中使用的更多的geo角度,其中,a和b可以具有不同的维度(例如,a可以指示高度大于宽度的块,b可以指示高度小于或等于宽度的块)。
[0284]
iii.在一个示例中,视频单元的允许geo角度可以是不对称的。
[0285]
iv.在一个示例中,视频单元的允许geo角度可以不是旋转对称的。
[0286]
v.在一个示例中,视频单元的允许geo角度可以不是双边对称的。
[0287]
vi.在一个示例中,视频单元的允许geo角度可以不是四分对称的。
[0288]
d)在一个示例中,视频单元可以是块、vpdu、片/条带/图片/子图片/图块/视频。
[0289]
2.如何在比特流中表示geo模式可以取决于模式的优先级,例如,优先级通过相关联的geo角度和/或距离来确定。
[0290]
a)在一个示例中,面向更小的geo角度尺寸(即,如2.1.8节的表2所描述的小于x度
的geo角度尺寸,诸如x=90或45)的geo模式比面向更大的geo角度尺寸(即,大于x度的geo角度尺寸)的geo模式具有更高的优先级。
[0291]
b)在一个示例中,与更小的geo角度索引(即,小于y(诸如y=4或8或16)的geo角度索引)相关联的geo模式比与更大的geo角度索引(即,大于y的geo角度索引)相关联的geo模式具有更高的优先级。
[0292]
c)在一个示例中,在信令通知时,以上权利要求中具有更高优先级的geo模式可以比具有更低优先级的geo模式需要更少的二进制位或比特。
[0293]
3.geo模式可以被分类为两个或更多个类别。可以在与geo模式有关的其他信息之前信令通知geo属于哪个类别的指示。
[0294]
a)例如,可以首先针对geo编解码块信令通知以顺时针方向还是以逆时针方向信令通知角度索引。
[0295]
i.顺时针geo角度索引信令的定义:
[0296]
1.例如,以逆时针信令通知的geo角度索引可以意味着更小的geo角度索引表示更小的geo角度尺寸。
[0297]
a)在一个示例中,如图6和表2所示,其中,geo角度索引以逆时针被信令通知,假设angleidx=0意味着geo角度尺寸等于0度,则angleidx=8意味着geo角度尺寸等于90度;angleidx=16意味着geo角度尺寸等于180度,而angleidx=24意味着geo角度尺寸等于270度。
[0298]
ii.顺时针geo角度索引信令的定义:
[0299]
1.例如,以顺时针信令通知的geo角度索引可以意味着更小的geo角度索引表示更大的geo角度尺寸。
[0300]
a)在一个示例中,与图6和表2相反,其中,geo角度索引以逆时针被信令通知,图7和表3中图示了顺时针geo角度信令,假设angleidx=0意味着geo角度尺寸等于0度(相当于360度),则angleidx=8可以意味着geo角度尺寸等于270度;angleidx=16可以意味着geo角度尺寸等于180度,而angleidx=24可以意味着geo角度尺寸等于90度。
[0301]
iii.在一个示例中,它可以在视频单元级别(诸如sps/vps/pps/图片标头/子图片/条带/条带标头/片/图块/ctu/vpdu/cu/块级别)被信令通知。
[0302]
1.在一个示例中,可以信令通知高级别标志(高于块级别),以指示与信令通知的geo模式相关联的角度是顺时针方向还是逆时针方向。
[0303]
2.在一个示例中,可以信令通知块级别标志,以指示与信令通知的geo模式相关联的角度是顺时针方向还是逆时针方向。
[0304]
表3:角度索引和角度尺寸之间的关系的示例(顺时针)
[0305][0306]
[0307]
4.geo模式/角度/位移/距离的子集可以从整个geo模式/角度/位移/距离集合被推导。
[0308]
a)在一个示例中,仅geo模式的子集被用于块。
[0309]
b)在一个示例中,仅与geo角度/位移/距离的子集相关联的geo模式被用于块。
[0310]
c)此外,可替代地,可以在比特流中进一步信令通知所选择的模式/角度/位移/距离是否在子集内的指示。
[0311]
d)在一个示例中,geo模式/角度/位移/距离的子集还是geo模式/角度/位移/距离的全集被用于视频单元可以取决于当前视频单元或(多个)先前解码的视频单元的解码信息(例如,语法元素和/或块维度)。
[0312]
e)在一个示例中,什么geo模式在子集中可以取决于对应的geo角度。
[0313]
i.在一个示例中,子集可以仅包含与等于0的距离/位移相关联的geo模式。
[0314]
ii.在一个示例中,子集可以仅包含与指定的geo角度相关联的geo模式(例如,与geo角度的预定义子集相关联的geo模式,其可以与对应于这些预定义geo角度的所有位移组合)。
[0315]
f)在一个示例中,什么geo模式在子集中可以取决于是否检查ldb(即,低延迟b帧)编解码。
[0316]
i.在一个示例中,geo模式的不同子集可以被用于ldb(即,低延迟b帧)和ra(即,随机访问)编解码。
[0317]
g)在一个示例中,什么geo模式在子集中可以取决于当前图片的参考图片列表中的参考图片。例如,参考图片列表中的参考图片的状态可以被标识为两种情况:情况1:所有参考图片在显示顺序中在当前图片之前;情况2:至少一个参考图片在显示顺序中在当前图片之后。
[0318]
i.在一个示例中,不同的子集可以被用于情况1和情况2。
[0319]
h)在一个示例中,什么geo模式在子集中可以取决于如何推导运动候选。
[0320]
i.在一个示例中,可以使用geo模式的不同子集,取决于运动候选是从时域运动候选(例如,tmvp)、空域运动候选、基于历史的运动矢量预测(hmvp)还是哪些空域运动候选(例如,左,或上,或右上)被推导。
[0321]
i)在一个示例中,geo的子集可以仅包含以与tpm模式相同的方式划分块的geo模式。
[0322]
i.在一个示例中,geo的子集可以仅包含通过连接块的左上角和右下角的线或者通过连接块的右上角和左下角的线来划分块的geo模式。
[0323]
j)在一个示例中,geo的子集可以仅包含对应于具有一个或多个距离/位移索引的对角角度的geo模式。
[0324]
i.在一个示例中,对角角度可以指示对应于划分边界的geo模式,该划分边界通过连接块的左上角和右下角的线或者通过连接块的右上角和左下角的线来划分块。
[0325]
ii.在一个示例中,geo的子集可以仅包含与等于0的距离/位移相关联的geo模式。
[0326]
1.在一个示例中,geo的子集可以仅包含对应于与等于0的距离/位移相关联的任何角度的geo模式。
[0327]
2.在一个示例中,geo的子集可以仅包含对应于与等于0的距离/位移相关联的对
角角度(即,块的从左上到右下和/或从右上到左下的划分边界)的geo模式。
[0328]
iii.在一个示例中,geo的子集可以仅包含对应于与对应于这些geo角度的所有距离/位移索引相关联的对角角度(即,块的从左上到右下和/或从右上到左下的划分边界)的geo模式。
[0329]
1.例如,对于宽高比(即,2与log2(宽度)-log2(高度)的幂之比)等于x的块,geo的子集可以仅包含与等于arctan(x)和/或π-arctan(x)、和/或π+arctan(x)和/或2π-arctan(x)的geo角度尺寸、以及对应于这些geo角度的所有距离索引(例如,如jvet-q2001-vb所定义的从0到3的distanceidx)相对应的geo模式。
[0330]
k)例如,对于宽高比等于1的块,geo的子集可以仅包含与等于45
°
和/或135
°
和/或225
°
和/或315
°
的geo角度尺寸(例如,如jvet-q2001-vb所定义的角度索引=4和/或12和/或20和/或28)、以及对应于这些geo角度的所有距离索引(例如,如jvet-q2001-vb所定义的从0到3的距离索引)相对应的geo模式。在一个示例中,水平和/或垂直角度可以被包括在geo角度的子集中。
[0331]
i.例如,水平角度可以意味着如2.1.8节的表2所描述的对应于90
°
和/或270
°
的角度索引(即,jvet-q2001-vb的表36中等于8和/或24的geo角度索引)。
[0332]
ii.例如,垂直角度可以意味着如2.1.8节的表2所描述的对应于0
°
和/或180
°
的角度索引(即,jvet-q2001-vb的表36中等于0和/或6的geo角度索引)。
[0333]
iii.在一个示例中,与和等于0的距离/位移组合的水平和/或垂直角度相关联的geo模式可以被包括在允许的geo角度的子集中。
[0334]
1.可替代地,与和等于0的距离/位移组合的水平和/或垂直角度相关联的geo模式可以不包括在允许的geo角度的子集中。
[0335]
iv.在一个示例中,与和所有距离/位移索引组合的水平和/或垂直角度相关联的geo模式可以被包括在允许的geo角度的子集中。
[0336]
1.可替代地,与和所有距离/位移索引组合的水平和/或垂直角度相关联的geo模式可以不包括在允许的geo角度的子集中。
[0337]
l)它可以被信令通知(诸如sps/vps/pps/图片标头/子图片/条带/条带标头/片/图块/ctu/vpdu/cu/块级别)以指示是否使用geo模式/角度/位移/距离的子集。
[0338]
i.它可以进一步被信令通知(诸如sps/vps/pps/图片标头/子图片/条带/条带标头/片/图块/ctu/vpdu/cu/块级别)以指示使用geo模式/角度/位移/距离的哪个子集。
[0339]
5.geo模式可以不与x共存(诸如x是不同于geo的另一个编解码工具)。
[0340]
a)在一个示例中,x可以指示加权预测。
[0341]
i.在一个示例中,当(例如,在条带级别)加权预测被启用时,geo可以在视频单元级别(诸如条带/pps/sps/片/子图片/cu/pu/tu级别)被禁用。
[0342]
ii.在一个示例中,geo是否与加权预测一起使用可以取决于加权因子。
[0343]
1.在一个示例中,如果加权预测的加权因子大于t(例如,t是常数值),则geo可以被禁用。
[0344]
b)在一个示例中,x可以指示bcw。
[0345]
c)在一个示例中,x可以指示prof
[0346]
d)在一个示例中,x可以指示bdof。
[0347]
e)在一个示例中,x可以指示dmvr。
[0348]
f)在一个示例中,x可以指示sbt。
[0349]
g)在一个示例中,当geo被启用时,编解码工具x可以被禁用。
[0350]
i.在一个示例中,如果geo被启用,则可以不信令通知编解码工具x的指示。
[0351]
h)在另一个示例中,当编解码工具x被启用时,geo可以被禁用。
[0352]
i.在一个示例中,如果编解码工具x被启用,则可以不信令通知geo的指示。
[0353]
i)在另一个示例中,当(例如,在条带级别)加权预测被启用时,编解码工具x可以被禁用。
[0354]
j)可替代地,去方块过程(诸如去方块强度、去方块边缘检测、去方块边缘的类型等)可以取决于geo是否与编解码工具x共存。
[0355]
6.去方块过程(诸如去方块强度、去方块边缘检测、去方块边缘的类型等)可以取决于是否应用geo。对于用geo编解码的编解码单元,为第一分量(诸如亮度分量)生成的加权值可以用于为第二分量(诸如cb或cr分量)推导加权值。
[0356]
a)该推导可以取决于颜色格式(诸如4:2:0或4:2:2或4:4:4)。
[0357]
b)第二分量的加权值可以通过对第一分量的加权值应用上采样或下采样来推导。
[0358]
7.为分量(诸如cb或cr分量)生成的加权值可以取决于颜色格式(诸如4:2:0或4:2:2或4:4:4)。
[0359]
a)例如,当颜色格式为4:2:2时,可以调整与geo模式相关联的geo角度/位移/距离,以为分量(诸如cb或cr分量)生成加权值。
[0360]
以上描述的示例可以被并入以下描述的方法(例如,方法800)的上下文,该方法可以在视频解码器或视频编码器处实施。
[0361]
图8示出了用于视频处理的示例方法800的流程图。该方法包括,在操作810,对于视频的当前块和该视频的比特流表示之间的转换,做出关于第一编解码模式和不同于第一编解码模式的第二编解码模式的启用的确定,其中,第一编解码模式将当前块分割为包括至少一个非矩形或非正方形子区域的两个或更多个子区域。
[0362]
该方法包括,在操作820,基于该确定来执行转换。
[0363]
在一些实施例中,可以实施以下技术解决方案:
[0364]
a1.一种用于视频处理的方法,包括:执行视频的当前块和该视频的比特流表示之间的转换,其中,当前块的编解码模式将当前块分割为包括至少一个非矩形或非正方形子区域的两个或更多个子区域,其中,比特流表示包括与编解码模式相关联的信令,并且其中,信令对应于具有视频的当前块的第一值集合和后续块的第二值集合的参数集合。
[0365]
a2.根据解决方案a1所述的方法,其中,信令包括索引,并且其中,索引的二值化包括使用第一数量的二进制位用于索引的第一值并使用第二数量的二进制位用于索引的第二值的可变长度编解码。
[0366]
a3.根据解决方案a1所述的方法,其中,信令包括索引,并且其中,索引基于当前块的高度或宽度。
[0367]
a4.根据解决方案a1所述的方法,其中,参数集合包括至少一个非矩形或非正方形子区域的多个角度和多个距离。
[0368]
a5.根据解决方案a4所述的方法,其中,多个角度是不对称的。
[0369]
a6.根据解决方案a4所述的方法,其中,多个角度不是旋转对称的。
[0370]
a7.根据解决方案a4所述的方法,其中,多个角度不是双边对称的。
[0371]
a8.根据解决方案a1所述的方法,其中,比特流表示中信令的位置基于编解码模式的优先级。
[0372]
a9.根据解决方案a1所述的方法,其中,信令包括编解码模式的类别和与编解码模式有关的其他信息的指示。
[0373]
a10.根据解决方案a9所述的方法,其中,其他信息包括角度,并且其中,该指示包括角度的顺时针方向或逆时针方向的指示。
[0374]
a11.一种用于视频处理的方法,包括:执行视频的当前块和该视频的比特流表示之间的转换,其中,当前块的编解码模式将当前块分割为包括至少一个非矩形或非正方形子区域的两个或更多个子区域,其中,编解码模式可以使用多个参数集来配置,并且其中,比特流表示包括用于多个参数集的子集的信令,并且其中,参数集包括与至少一个非矩形或非正方形子区域相关联的角度、位移和距离。
[0375]
a12.根据解决方案a11所述的方法,其中,编解码模式仅使用多个参数集的子集。
[0376]
a13.根据解决方案a11所述的方法,其中,对多个参数集的子集中的参数集的选择基于比特流表示中的语法元素或者当前块的一个或多个维度。
[0377]
a14.根据解决方案a11所述的方法,其中,对多个参数集的子集中的参数集的选择基于低延迟b(ldb)帧编解码工具的启用。
[0378]
a15.根据解决方案a11所述的方法,其中,对多个参数集的子集中的参数集的选择基于运动矢量候选的推导。
[0379]
a16.根据解决方案a15所述的方法,其中,运动矢量候选是从时域运动矢量预测(tmvp)候选、空域运动候选或基于历史的运动矢量预测(hmvp)候选推导的。
[0380]
a17.根据解决方案a11所述的方法,其中,在确定当前块的高度与当前块的宽度之比为1时,多个参数集的子集包括对应于45
°
、135
°
、225
°
和/或315
°
的角度的编解码模式。
[0381]
a18.根据解决方案a11所述的方法,其中,多个参数集的子集包括对应于通过(a)连接当前块的左上角和右下角的线或(b)连接当前块的右上角和左下角的线来划分的当前块的编解码模式。
[0382]
a19.一种用于视频处理的方法,包括:对于视频的当前块和该视频的比特流表示之间的转换,做出关于第一编解码模式和不同于第一编解码模式的第二编解码模式的启用的确定,其中,第一编解码模式将当前块分割为包括至少一个非矩形或非正方形子区域的两个或更多个子区域;以及基于该确定来执行转换。
[0383]
a20.根据解决方案a19所述的方法,其中,第二编解码模式包括加权预测,并且其中,第一编解码模式在视频单元级别被禁用,并且第二编解码模式在条带级别被启用。
[0384]
a21.根据解决方案a20所述的方法,其中,视频单元级别是条带级别、图片参数集(pps)级别、序列参数集(sps)级别、片级别、子图片级别、编解码单元(cu)级别、预测单元(pu)级别或变换单元(tu)级别。
[0385]
a22.根据解决方案a19所述的方法,其中,第二编解码模式是利用编解码单元(cu)权重的双向预测(bcw)、利用光流的预测细化(prof)模式、双向光流(bdof)模式、解码器侧运动矢量细化(dmvr)模式或子块变换(sbt)模式。
[0386]
a23.根据解决方案a19所述的方法,其中,第二编解码模式包括去方块过程,并且其中,启用第二编解码模式基于第一编解码模式的启用。
[0387]
a24.根据解决方案a19所述的方法,其中,第二编解码模式包括加权预测,并且其中,分量的加权预测的加权值基于当前块的颜色格式。
[0388]
a25.根据解决方案a24所述的方法,其中,分量是cb分量或cr分量,并且其中颜色格式为4:2:0、4:2:2或4:4:4:4。
[0389]
a26.根据解决方案a1至a25中任一项所述的方法,其中,转换从比特流表示生成当前块。
[0390]
a27.根据解决方案a1至a25中任一项所述的方法,其中,转换从当前块生成比特流表示。
[0391]
a28.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中,在由处理器执行时,该指令使得处理器实施根据解决方案a1至a27中任一项所述的方法。
[0392]
a29.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行根据解决方案a1至a27中任一项所述的方法的程序代码。
[0393]
图9是视频处理装置900的框图。装置900可以用于实施本文描述的一种或多种方法。装置900可以体现在智能手机、平板电脑、计算机、物联网(iot)接收器等中。装置900可以包括一个或多个处理器902、一个或多个存储器904和视频处理硬件906。处理器902可以被配置为实施本文档中描述的一种或多种方法。存储器904可以用于存储用于实施本文所描述的方法和技术的数据和代码。视频处理硬件906可以用于在硬件电路系统中实施本文档中描述的一些技术。
[0394]
图10是示出可以利用本公开的技术的示例视频编解码系统300的框图。
[0395]
如图10所示,视频编解码系统300可以包括源设备310和目的设备320。源设备310生成编码的视频数据,其中该源设备310可以被称为视频编码设备。目的设备320可以解码由源设备310生成的编码视频数据,其中该目的设备320可以被称为视频解码设备。
[0396]
源设备310可以包括视频源312、视频编码器314和输入/输出(i/o)接口316。
[0397]
视频源312可以包括诸如视频捕捉设备、从视频内容提供器接收视频数据的接口和/或用于生成视频数据的计算机图形系统的源,或这些源的组合。视频数据可以包括一个或多个图片。视频编码器314对来自视频源312的视频数据进行编码,以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关数据。编解码图片是图片的编解码表示。相关数据可以包括序列参数集、图片参数集和其他语法结构。i/o接口316可以包括调制器/解调器(调制解调器)和/或发射器。编码的视频数据可以经由i/o接口316通过网络330a直接发送到目的设备320。编码的视频数据也可以存储在存储介质/服务器330b上,以供目的设备320访问。
[0398]
目的设备320可以包括i/o接口326、视频解码器324和显示设备322。
[0399]
i/o接口326可以包括接收器和/或调制解调器。i/o接口326可以从源设备310或存储介质/服务器330b获取编码的视频数据。视频解码器324可以对编码的视频数据进行解码。显示设备322可以向用户显示解码的视频数据。显示设备322可以与目的设备320集成,或者可以在目的设备320的外部,目的设备320被配置为与外部显示设备接口。
[0400]
视频编码器314和视频解码器324可以根据视频压缩标准进行操作,诸如高效视频编解码(hevc)标准、通用视频编解码(vvm)标准和其他当前和/或进一步的标准。
[0401]
图11是示出视频编码器400的示例的框图,该视频编码器400可以是图10所示的系统300中的视频编码器314。
[0402]
视频编码器400可以被配置为执行本公开的任何或所有技术。在图11的示例中,视频编码器400包括多个功能组件。本公开中描述的技术可以在视频编码器400的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
[0403]
视频编码器400的功能组件可以包括分割单元401、预测单元402(其可以包括模式选择单元403、运动估计单元404、运动补偿单元405和帧内预测单元406)、残差生成单元407、变换单元408、量化单元409、逆量化单元410、逆变换单元411、重建单元412、缓冲器413和熵编码单元414。
[0404]
在其他示例中,视频编码器400可以包括更多、更少或不同的功能组件。在示例中,预测单元402可以包括帧内块复制(ibc)单元。ibc单元可以执行ibc模式下的预测,其中至少一个参考图片是当前视频块所在的图片。
[0405]
此外,诸如运动估计单元404和运动补偿单元405的一些组件可以高度集成,但是处于解释的目的,在图11的示例中分开表示。
[0406]
分割单元401可以将图片分割为一个或多个视频块。视频编码器400和视频解码器500可以支持各种视频块尺寸。
[0407]
模式选择单元403可以基于误差结果选择编解码模式(例如,帧内或帧间)之一,并且将作为结果的帧内编解码块或帧间编解码块提供给残差生成单元407以生成残差块数据,以及提供给重建单元412以重建编码块以用作参考图片。在一些示例中,模式选择单元403可以选择帧内和帧间预测模式的组合(ciip),其中预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元403还可以选择块的运动矢量的分辨率(例如,子像素或整数像素精度)。
[0408]
为了对当前视频块执行帧间预测,运动估计单元404可以通过将来自缓冲区413的一个或多个参考帧与当前视频块进行比较,来生成当前视频块的运动信息。运动补偿单元405可以基于运动信息和来自缓冲区413的除了与当前视频块相关联的图片之外的图片的解码样点,来确定当前视频块的预测视频块。
[0409]
运动估计单元404和运动补偿单元405可以对当前视频块执行不同的操作,例如,取决于当前视频块是在i条带、p条带还是b条带中。
[0410]
在一些示例中,运动估计单元404可以对当前视频块执行单向预测,并且运动估计单元404可以为当前视频块的参考视频块搜索列表0或列表1的参考图片。运动估计单元404然后可以生成指示列表0或列表1中的参考图片的参考索引,该参考索引包含参考视频块和指示当前视频块和参考视频块之间的空域位移的运动矢量。运动估计单元404可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元405可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
[0411]
在其他示例中,运动估计单元404可以对当前视频块执行双向预测,运动估计单元404可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1中搜索当前视频块的另一个参考视频块。运动估计单元404然后可以生成参考索引,该参考索引
指示包含参考视频块的列表0和列表1中的参考图片以及指示参考视频块和当前视频块之间的空域位移的运动矢量。运动估计单元404可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元405可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
[0412]
在一些示例中,运动估计单元404可以输出完整的运动信息集,以用于解码器的解码处理。
[0413]
在一些示例中,运动估计单元404可以不输出当前视频的完整的运动信息集。而是运动估计单元404可以参考另一个视频块的运动信息信令通知当前视频块的运动信息。例如,运动估计单元404可以确定当前视频块的运动信息与邻近视频块的运动信息足够相似。
[0414]
在一个示例中,运动估计单元404可以在与当前视频块相关联的语法结构中指示值,该值向视频解码器500指示当前视频块具有与另一个视频块相同的运动信息。
[0415]
在另一个示例中,运动估计单元404可以在与当前视频块相关联的语法结构中标识另一视频块和运动矢量差(mvd)。运动矢量差指示当前视频块的运动矢量和所指示的视频块的运动矢量之间的差。视频解码器500可以使用所指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
[0416]
如上所述,视频编码器400可以预测性地信令通知运动矢量。可以由视频编码器400实施的预测信令通知技术的两个示例包括高级运动矢量预测(amvp)和merge模式信令通知。
[0417]
帧内预测单元406可以对当前视频块执行帧内预测。当帧内预测单元406对当前视频块执行帧内预测时,帧内预测单元406可以基于同一图片中的其他视频块的解码样点来生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
[0418]
残差生成单元407可以通过从当前视频块中减去(例如,由减号指示)当前视频块的(多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括与当前视频块中样点的不同样点分量相对应的残差视频块。
[0419]
在其他示例中,例如在跳过模式下,对于当前视频块可能没有残差数据,并且残差生成单元407可能不执行减去操作。
[0420]
变换处理单元408可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块来为当前视频块生成一个或多个变换系数视频块。
[0421]
在变换处理单元408生成与当前视频块相关联的变换系数视频块之后,量化单元409可以基于与当前视频块相关联的一个或多个量化参数(qp)值来量化与当前视频块相关联的变换系数视频块。
[0422]
逆量化单元410和逆变换单元411可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重建残差视频块。重建单元412可以将重建后的残差视频块添加到来自预测单元402生成的一个或多个预测视频块的对应样点,以产生与当前块相关联的重建视频块,用于存储在缓冲区413中。
[0423]
在重建单元412重建视频块之后,可以执行环路滤波操作,以减少视频块中的视频块效应。
[0424]
熵编码单元414可以从视频编码器400的其他功能组件接收数据。当熵编码单元
414接收到数据时,熵编码单元414可以执行一个或多个熵编码操作,以生成熵编码数据,并输出包括该熵编码数据的比特流。
[0425]
图12是示出视频解码器500的示例的框图,视频解码器500可以是图10所示的系统300中的视频解码器314。
[0426]
视频解码器500可以被配置为执行本公开的任何或所有技术。在图12的示例中,视频解码器500包括多个功能组件。本公开中描述的技术可以在视频解码器500的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
[0427]
在图12的示例中,视频解码器500包括熵解码单元501、运动补偿单元502、帧内预测单元503、逆量化单元504、逆变换单元505、重建单元506和缓冲区507。在一些示例中,视频解码器500可以执行通常与针对视频编码器400(图11)描述的编码过程相反的解码过程。
[0428]
熵解码单元501可以检索编码比特流。编码比特流可以包括熵编解码的视频数据(例如,视频数据的编码块)。熵解码单元501可以解码熵编解码的视频数据,并且根据熵解码的视频数据,运动补偿单元502可以确定包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息的运动信息。运动补偿单元502可以例如通过执行amvp和merge模式来确定这样的信息。
[0429]
运动补偿单元502可以产生运动补偿块,可以基于插值滤波器执行插值。要以子像素精度使用的插值滤波器的标识符可以包括在语法元素中。
[0430]
运动补偿单元502可以使用如视频编码器400在视频块的编码期间使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元502可以根据所接收的语法信息确定视频编码器400使用的插值滤波器,并使用该插值滤波器来产生预测块。
[0431]
运动补偿单元502可以使用一些语法信息来确定用于对编码视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸、描述编码视频序列的图片的每个宏块如何被分割的分割信息、指示每个分割如何被编码的模式、每个帧间编码块的一个或多个参考帧(和参考帧列表)以及用于对编码视频序列进行解码的其他信息。
[0432]
帧内预测单元503可以使用例如在比特流中接收的帧内预测模式来从空域上相邻的块形成预测块。逆量化单元503对在比特流中提供并由熵解码单元501解码的量化后的视频块系数进行逆量化,即,解量化。逆变换单元503应用逆变换。
[0433]
重建单元506可以将残差块与由运动补偿单元502或帧内预测单元503生成的对应预测块相加,以形成解码块。如果需要,还可以应用去方块滤波器来滤波解码块,以便移除块效应。解码的视频块然后被存储在缓冲区507中,为随后的运动补偿/帧内预测提供参考块,并且还产生解码的视频以在显示设备上呈现。
[0434]
图13是示出可以在其中实施本文公开的各种技术的示例视频处理系统1300的框图。各种实施方式可以包括系统1300的一些或所有组件。系统1300可以包括用于接收视频内容的输入1302。视频内容可以以例如8或10比特多分量像素值的原始或未压缩格式而接收,或者可以是压缩或编码格式。输入1302可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(pon)等的有线接口和诸如wi-fi或蜂窝接口的无线接口。
[0435]
系统1300可以包括可以实施本文档中描述的各种编解码或编码方法的编解码组件1304。编解码组件1304可以将来自输入1302的视频的平均比特率减小到编解码组件1304
的输出,以产生视频的编解码表示。编解码技术因此有时被称为视频压缩或视频转码技术。编解码组件1304的输出可以被存储,或者经由如由组件1306表示的通信连接而发送。在输入1302处接收的视频的存储或通信传送的比特流(或编解码)表示可以由组件1308用于生成像素值或传送到显示接口1310的可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是将理解,编解码工具或操作在编码器处被使用,并且反转编解码结果的对应的解码工具或操作将由解码器执行。
[0436]
外围总线接口或显示接口的示例可以包括通用串行总线(usb)、或高清晰度多媒体接口(hdmi)、或显示端口等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能电话、或能够执行数字数据处理和/或视频显示的其他设备。
[0437]
图14示出了用于视频处理的示例方法的流程图。该方法包括:对于视频的当前视频块和该视频的比特流之间的转换,确定当前视频块以几何分割模式进行编解码(1402),其中,几何分割模式包括整个分割模式集合;基于比特流中包括的分割模式索引来确定当前视频块的一个或多个分割模式(1404),其中,分割模式索引从一个视频块到另一个视频块对应于不同的分割模式;以及基于一个或多个分割模式来执行转换(1406)。
[0438]
在一些示例中,整个分割模式集合中的每个分割模式将当前视频块分割为两个或更多个分区,并且对应于至少一个分割模式的两个或更多个分区是非正方形和非矩形的。
[0439]
在一些示例中,每个分割模式索引与包括角度、距离和/或位移中的至少一个的参数集合相关联。
[0440]
在一些示例中,分割模式索引和分割模式的对应关系取决于视频块的维度,其中,视频块的维度包括视频块的高度、宽度以及宽度和高度之比中的至少一个。
[0441]
在一些示例中,分割模式索引的二值化包括可变长度编解码,所述可变长度编解码为第一分割模式使用第一数量的二进制位,并且为第二分割模式使用第二数量的二进制位。
[0442]
在一些示例中,不同数量的分割模式或不同数量的参数用于不同的视频块中。
[0443]
在一些示例中,在视频块中使用的分割模式的数量或参数的数量取决于视频块的维度。
[0444]
在一些示例中,在当前视频块中使用的角度的数量多于在第二视频块中使用的角度的数量,其中,当前视频块是高度大于宽度的视频块,并且第二视频块是高度小于宽度的视频块。
[0445]
在一些示例中,角度是不对称的。
[0446]
在一些示例中,角度不是旋转对称的。
[0447]
在一些示例中,角度不是双边对称的。
[0448]
在一些示例中,角度不是四分对称的。
[0449]
在一些示例中,视频块包括编解码块、编解码单元、虚拟流水线数据单元(vpdu)、片、条带、图片、子图片、图块或视频中的至少一个。
[0450]
在一些示例中,比特流中分割模式的表示取决于分割模式的优先级。
[0451]
在一些示例中,优先级由与分割模式相关联的角度和/或距离确定。
[0452]
在一些示例中,面向小于预定值的角度的分割模式比面向大于预定值的角度的分割模式具有更高的优先级。
[0453]
在一些示例中,预定值为45或90。
[0454]
在一些示例中,与小于预定值的角度索引相关联的分割模式比与大于预定值的角度索引相关联的分割模式具有更高的优先级。
[0455]
在一些示例中,预定值为4或8或16。
[0456]
在一些示例中,在信令通知时,具有更高优先级的分割模式比具有更低优先级的分割模式需要更少的二进制位或比特。
[0457]
在一些示例中,分割模式被分类为两个或更多个类别,并且分割模式属于哪个类别的指示在与分割模式有关的其他信息之前被信令通知。
[0458]
在一些示例中,首先针对视频块信令通知以顺时针方向还是逆时针方向信令通知角度索引。
[0459]
在一些示例中,当以逆时针方向信令通知角度索引时,以逆时针信令通知的角度索引意味着更小的角度索引,更小的角度索引表示更小的角度尺寸。
[0460]
在一些示例中,如果angleidx=0意味着角度尺寸等于0度,则angleidx=8意味着角度尺寸等于90度;angleidx=16意味着角度尺寸等于180度,而angleidx=24意味着角度尺寸等于270度。
[0461]
在一些示例中,当以顺时针方向信令通知角度索引时,以顺时针信令通知的角度索引意味着更大的角度索引,更大的角度索引表示更大的角度尺寸。
[0462]
在一些示例中,如果angleidx=0意味着角度尺寸等于0度,则angleidx=8意味着角度尺寸等于270度;angleidx=16意味着角度尺寸等于180度,而angleidx=24意味着角度尺寸等于90度。
[0463]
在一些示例中,该指示在视频块级别被信令通知。
[0464]
在一些示例中,该指示在sps、vps、pps、图片标头、子图片、条带、条带标头、片、图块、ctu、vpdu、cu和块级别中的至少一个处被信令通知。
[0465]
在一些示例中,高于块级别的高级别标志被信令通知,以指示与信令通知的分割模式相关联的角度是顺时针方向还是逆时针方向。
[0466]
在一些示例中,块级别标志被信令通知,以指示与信令通知的分割模式相关联的角度是顺时针方向还是逆时针方向。
[0467]
图15示出了用于视频处理的示例方法的流程图。该方法包括:对于视频的当前视频块和该当前视频块的比特流之间的转换,确定视频块以几何分割模式进行编解码(1502),其中,几何分割模式包括整个分割模式集合,并且每个分割模式与包括角度、距离和/或位移中的至少一个的参数集合相关联;从整个分割模式或参数集合推导分割模式或参数的子集(1504);以及基于分割模式或参数的子集来执行转换(1506)。
[0468]
在一些示例中,整个分割模式集合中的每个分割模式将当前视频块分割为两个或更多个分区,该两个或更多个分区中的至少一个是非正方形和非矩形的。
[0469]
在一些示例中,仅分割模式的子集用于视频块。
[0470]
在一些示例中,仅与参数的子集相关联的分割模式用于视频块。
[0471]
在一些示例中,所选择的分割模式或参数是否在子集内的指示还被包括在比特流
中。
[0472]
在一些示例中,分割模式或参数的子集还是整个分割模式或参数集合用于视频块取决于当前视频块或者一个或多个先前解码的视频块的解码信息。
[0473]
在一些示例中,解码信息包括语法元素和/或视频块的块维度。
[0474]
在一些示例中,对分割模式的子集中的分割模式的选择取决于对应的角度。
[0475]
在一些示例中,分割模式的子集仅包含与等于0的距离或位移相关联的分割模式。
[0476]
在一些示例中,分割模式的子集仅包含与指定角度相关联的分割模式。
[0477]
在一些示例中,与指定角度相关联的分割模式包括与角度的预定义子集相关联的分割模式,该角度的预定义子集与对应于这些预定义角度的所有位移组合。
[0478]
在一些示例中,对分割模式的子集中的分割模式的选择取决于是否检查低延迟b帧(ldb)编解码。
[0479]
在一些示例中,分割模式的不同子集用于ldb编解码和随机访问(ra)编解码。
[0480]
在一些示例中,对分割模式的子集中的分割模式的选择取决于当前图片的参考图片列表中的参考图片。
[0481]
在一些示例中,在所有参考图片在显示顺序中在当前图片之前的第一情况下并且在至少一个参考图片在显示顺序中在当前图片之后的第二情况下使用分割模式的不同子集。
[0482]
在一些示例中,对分割模式的子集中的分割模式的选择取决于运动矢量候选的推导。
[0483]
在一些示例中,当从时域运动矢量预测(tmvp)候选、空域运动候选或基于历史的运动矢量预测(hmvp)候选推导运动矢量候选时,使用分割模式的不同子集。
[0484]
在一些示例中,分割模式的子集仅包含以与tpm模式相同的方式划分块的分割模式。
[0485]
在一些示例中,分割模式的子集仅包含通过连接块的左上角和右下角的线或者通过连接块的右上角和左下角的线来划分块的分割模式。
[0486]
在一些示例中,分割模式的子集仅包含对应于具有一个或多个距离或位移索引的对角角度的分割模式。
[0487]
在一些示例中,对角角度指示对应于通过连接块的左上角和右下角的线或者通过连接块的右上角和左下角的线来划分块的划分边界的分割模式。
[0488]
在一些示例中,分割模式的子集仅包含与等于0的距离或位移相关联的分割模式。
[0489]
在一些示例中,分割模式的子集仅包含对应于与等于0的距离或位移相关联的任何角度的分割模式。
[0490]
在一些示例中,分割模式的子集仅包含对应于与等于0的距离或位移相关联的对角角度的分割模式。
[0491]
在一些示例中,分割模式的子集仅包含对应于对角角度的分割模式,该对角角度与对应于这些角度的所有距离或位移索引相关联。
[0492]
在一些示例中,对于宽高比等于x的块,分割模式的子集仅包含与等于arctan(x)和/或π-arctan(x)和/或π+arctan(x)和/或2π-arctan(x)的角度尺寸以及对应于这些角度的所有距离索引相对应的分割模式,x是整数。
[0493]
在一些示例中,x=1。
[0494]
在一些示例中,水平角度和/或垂直角度被包括在角度的子集中。
[0495]
在一些示例中,水平角度指示对应于90
°
和/或270
°
的角度索引。
[0496]
在一些示例中,垂直角度指示对应于0
°
和/或180
°
的角度索引。
[0497]
在一些示例中,与和等于0的距离/位移组合的水平角度和/或垂直角度相关联的分割模式被包括在允许角度的子集中。
[0498]
在一些示例中,与和等于0的距离或位移组合的水平角度和/或垂直角度相关联的分割模式没有被包括在允许角度的子集中。
[0499]
在一些示例中,与和所有距离或位移索引组合的水平角度和/或垂直角度相关联的分割模式被包括在允许角度的子集中。
[0500]
在一些示例中,与和所有距离或位移索引组合的水平角度和/或垂直角度相关联的分割模式没有被包括在允许角度的子集中。
[0501]
在一些示例中,是否使用分割模式或参数的子集的指示在sps、vps、pps、图片标头、子图片、条带、条带标头、片、图块、ctu、vpdu、cu和块级别中的至少一个处被信令通知。
[0502]
在一些示例中,使用分割模式或参数的哪个子集的指示在sps、vps、pps、图片标头、子图片、条带、条带标头、片、图块、ctu、vpdu、cu和块级别中的至少一个处进一步被信令通知。
[0503]
图16示出了用于视频处理的示例方法的流程图。该方法包括:对于视频的视频块和该视频块的比特流之间的转换,确定几何分割模式和不同于几何分割模式的第二编解码模式对视频块的启用(1602);以及基于该确定来执行转换(1604)。
[0504]
在一些示例中,几何分割模式包括整个分割模式集合,整个分割模式集合中的每个分割模式将当前视频块分割为两个或更多个分区,并且对应于至少一个分割模式的两个或更多个分区是非正方形和非矩形的。
[0505]
在一些示例中,第二编解码模式包括加权预测。
[0506]
在一些示例中,当启用加权预测时,几何分割模式在视频块级别被禁用。
[0507]
在一些示例中,当在条带级别启用加权预测时,几何分割模式在条带、pps、sps、片、子图片、cu、pu或tu级别中的至少一个处被禁用。
[0508]
在一些示例中,几何分割模式是否与加权预测一起使用取决于加权预测的加权因子。
[0509]
在一些示例中,如果加权预测的加权因子大于t,则几何分割模式被禁用,其中t是常数值。
[0510]
在一些示例中,第二编解码模式包括利用编解码单元(cu)权重的双向预测(bcw)、利用光流的预测细化(prof)模式、双向光流(bdof)模式、解码器侧运动矢量细化(dmvr)模式或子块变换(sbt)模式。
[0511]
在一些示例中,当几何分割模式被启用时,第二编解码模式被禁用。
[0512]
在一些示例中,当几何分割模式被启用时,不信令通知第二编解码模式的指示。
[0513]
在一些示例中,当第二编解码模式被启用时,几何分割模式被禁用。
[0514]
在一些示例中,当第二编解码模式被启用时,不信令通知几何分割模式的指示。
[0515]
在一些示例中,当加权预测被启用时,第二编解码模式被禁用。
[0516]
在一些示例中,与视频块相关联的去方块过程取决于几何分割模式和第二编解码模式是否都被启用。
[0517]
图17示出了用于视频处理的示例方法的流程图。该方法包括:对于视频的视频块和该视频块的比特流之间的转换,基于当前视频块是否以当前视频块的几何分割模式和/或颜色格式进行编解码,确定与视频块相关联的去方块过程(1702);以及基于去方块参数来执行转换(1704)。
[0518]
在一些示例中,几何分割模式包括整个分割模式集合,整个分割模式集合中的每个分割模式将当前视频块分割为两个或更多个分区,并且对应于至少一个分割模式的两个或更多个分区是非正方形和非矩形的。
[0519]
在一些示例中,当以几何分割模式对视频块进行编解码时,为视频块的第一分量生成的加权预测的加权值用于为视频块的第二分量推导加权值。
[0520]
在一些示例中,第一分量是亮度分量,并且第二分量是cb或cr分量。
[0521]
在一些示例中,该推导取决于视频块的颜色格式。
[0522]
在一些示例中,颜色格式为4:2:0、4:2:2或4:4:4。
[0523]
在一些示例中,第二分量的加权值通过对第一分量的加权值应用上采样或下采样来推导。
[0524]
在一些示例中,分量的加权预测的加权值基于视频块的颜色格式。
[0525]
在一些示例中,分量是cb分量或cr分量,并且其中颜色格式为4:2:0、4:2:2或4:4:4。
[0526]
在一些示例中,当颜色格式为4:2:2时,与分割模式相关联的参数被调整以生成分量的加权值。
[0527]
在一些示例中,几何分割模式包括几何merge模式、几何分区模式、楔形预测模式和三角形预测模式中的一个或多个。
[0528]
在一些示例中,转换包括将视频块编码为比特流。
[0529]
在一些示例中,转换包括从比特流解码视频块。
[0530]
在一些示例中,转换包括从视频块生成比特流;该方法还包括:将比特流存储在非暂时性计算机可读记录介质中。
[0531]
图17示出了用于视频处理的示例方法的流程图。该方法包括:对于视频的当前视频块和该视频的比特流之间的转换,确定当前视频块以几何分割模式进行编解码(1702),其中,几何分割模式包括整个分割模式集合;基于比特流中包括的分割模式索引来确定当前视频块的一个或多个分割模式(1704),其中,分割模式索引从一个视频块到另一个视频块对应于不同的分割模式;以一个或多个分割模式从视频块生成比特流(1706);以及将比特流存储在非暂时性计算机可读记录介质中(1708)。
[0532]
从前述内容中可以理解,为了说明的目的,本文已经描述了目前公开的技术的特定实施例,但是在不脱离本发明的范围的情况下,可以做出各种修改。因此,除了所附权利要求之外,目前公开的技术不受限制。
[0533]
本主题的实施方式和本专利文档中描述的功能操作可以在各种系统、数字电子电路、或计算机软件、固件或硬件中实现,包括本说明书中所公开的结构及其结构等效体,或其中一个或多个的组合。所公开的和其他实施例能够实现为一个或多个计算机程序产品,
即编码在有形的且非易失的计算机可读介质上的计算机程序指令的一个或多个模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或其中一个或其中多个的组合。术语“数据处理单元”或“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或其中一个或多个的组合。传播的信号是人为生成的信号,例如,机器生成的电、光或电磁信号,其被生成以编码信息以传输到合适的接收器设备。
[0534]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
[0535]
本技术文件中描述的过程和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0536]
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动硬盘;磁光盘;以及cd rom和dvd rom盘。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
[0537]
虽然本专利文件包含许多细节,但不应将其解释为对任何发明或权利要求范围的限制,而应解释为对特定发明的特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中移除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
[0538]
同样,尽管附图中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件所述实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
[0539]
仅描述了一些实现和示例,可以基于本专利文件中描述和说明的内容做出其他实现、增强和变体。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1