块矢量的上下文自适应编解码的制作方法

文档序号:29511738发布日期:2022-04-06 19:55阅读:107来源:国知局
块矢量的上下文自适应编解码的制作方法
块矢量的上下文自适应编解码
1.相关申请的交叉引用
2.根据适用的《专利法》和/或《巴黎公约》的规定,本技术及时要求2019年8月24日提交的国际专利申请no.pct/cn2019/102411的优先权和权益。出于法律的所有目的,将上述申请的全部公开以参考方式并入本文,作为本技术公开的一部分。
技术领域
3.本专利文件涉及视频编码和解码。


背景技术:

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


技术实现要素:

5.与数字视频处理有关的设备、系统和方法,特别是与使用块矢量编解码的视频和图像编码和解码有关的设备、系统和方法。
6.在一个示例方面,公开了一种视频处理方法。该方法包括:对于视频的当前图片的当前视频块和所述视频的编解码表示之间的转换,根据规则构建基于历史的运动矢量预测器(hmvp)表,以及使用所述hmvp表执行所述转换,其中,使用表示所述当前视频块和所述当前图片中用于预测所述当前视频块的区域之间的位移的块矢量,以编解码表示对所述当前视频块进行编解码;其中,所述规则指定所述构建使用所述hmvp表中先前处理的视频块的块矢量信息。
7.在另一个示例方面,公开了另一种视频处理方法。该方法包括:对于视频的当前图片的当前视频块和所述视频的编解码表示之间的转换,根据基于历史的运动矢量预测(hmvp)表中的一个或多个条目,确定块矢量预测器,所述一个或多个条目对应于来自一个或多个先前处理的块的一个或多个块矢量候选;以及基于所述确定执行所述转换,其中,使用表示在所述当前视频块和所述当前图片中用于预测所述当前视频块的区域之间的位移的块矢量,以编解码表示对所述当前视频块进行编解码。
8.在另一个示例方面,公开了另一种视频处理方法。该方法包括:对于视频的当前视频块和所述视频的编解码表示之间的转换,确定要剪切使用基于历史的运动矢量预测(hmvp)表导出的块矢量或运动时会亮,所述基于历史的运动矢量预测(hmvp)表包括对应于来自一个或多个先前处理的块的运动信息的一个或多个条目;以及基于所述确定执行所述转换。
9.在另一个示例方面,公开了另一种视频处理方法。该方法包括:对于视频的当前图片的当前视频块和所述视频的编解码表示之间的转换,做出所述当前视频块的基于历史的运动矢量预测器(hmvp)表不包括用于预测块矢量的任何条目的第一确定,所述块矢量表示
所述当前视频块和所述当前图片中用于预测所述当前视频块的区域之间的位移;基于所述第一确定和规则,做出关于将所述块矢量用于所述当前视频块的转换的第二确定;以及根据所述第一确定和所述第二确定执行所述转换。
10.在另一个示例方面,公开了另一种视频处理方法。该方法包括:对于视频的当前图片的当前视频块和所述视频的编解码表示之间的转换,确定用于块矢量预测的块运动矢量预测器;通过修改所述块运动矢量预测器来生成修改的块运动矢量预测器;和使用所述修改的块运动矢量预测器来执行所述转换,其中,所述块矢量预测预测表示所述当前视频块和所述当前图片中用于预测所述当前视频块的区域之间的位移的块矢量。
11.在另一个示例方面,公开了另一种视频处理方法。该方法包括:对于视频的当前图片的当前视频块和所述当前视频块的编解码表示之间的转换,确定用于根据基于历史的运动矢量预测(hmvp)表来预测块矢量的块运动矢量预测器,所述基于历史的运动矢量预测(hmvp)表包括先前处理的视频块的运动矢量信息;以及使用所述块运动矢量预测器来执行所述转换,其中,使用表示所述当前视频块和所述当前图片中用于预测所述当前视频块的区域之间的位移的所述块矢量,以编解码表示对所述当前视频块进行编解码。
12.在另一个示例方面,公开了另一种视频处理方法。该方法包括:在包括视频块的视频和视频的编解码表示之间执行转换;其中,编解码表示符合格式规则,其中,格式规则指定通过共享相同的上下文来执行使用块矢量(bv)预测模式编解码的第一视频块的块矢量预测器(bvp)索引的上下文自适应编解码和用于编解码第二视频块的帧间模式编解码的索引;其中,bvp索引指向基于历史的运动矢量预测器列表中的条目,该基于历史的运动矢量预测器列表用于为第一视频块生成块矢量预测器。
13.在另一个示例方面,公开了另一种视频处理方法。该方法包括:在包括视频块的视频和视频的编解码表示之间执行转换;其中,所述编解码表示符合格式规则,其中,所述格式规则指定:独立于用于对在第二视频块中使用的帧间模式编解码的索引进行编解码的上下文,执行使用块矢量(bv)预测模式编解码的第一视频块的块矢量预测器(bvp)索引的上下文自适应编解码;其中,bvp索引指向基于历史的运动矢量预测器列表中的条目,该基于历史的运动矢量预测器列表用于为第一视频块生成块矢量预测器。
14.在另一个示例方面,公开了另一种视频处理方法。该方法包括:在视频的当前图片的当前视频块和视频的编解码表示之间执行转换,其中,使用块矢量在编解码表示中对当前视频块进行编解码,该块矢量表示当前视频块和当前图片中用于预测当前视频块的区域之间的位移,其中,使用基于历史的运动矢量预测(hmvp)表执行转换,该基于历史的运动矢量预测(hmvp)表包含一个或多个先前使用的块矢量;其中,编解码表示包括语法元素,该语法元素表示应用于当前视频块的hmvp表中条目的索引,其中,根据规则确定索引的二值化的最大值。
15.在另一个示例方面,公开了另一种视频处理方法。该方法包括:对于在视频的当前视频区域和视频的编解码表示之间的转换,重置基于历史的运动矢量预测(hmvp)表,基于历史的运动矢量预测(hmvp)表包括一个或多个先前使用的块矢量,其中,重置包括将hmvp表的可用条目的指示设置为k,其中,k是不等于零的整数;并使用hmvp表执行转换。
16.在另一个示例方面,公开了另一种视频处理方法。该方法包括:对于视频的当前视频块和视频的编解码表示之间的转换,将多个恒定块矢量应用于表来初始化表,该表包括
先前处理的视频块的运动矢量信息;并使用该表执行转换。
17.在另一个示例方面,公开了另一种视频处理方法。该方法包括:根据规则执行在视频的当前图片的当前视频块与视频的编解码表示之间的转换,其中使用块矢量以编解码表示对当前视频块进行编解码,该块矢量表示当前视频块和当前图片中用于预测当前视频块的区域之间的位移;其中,编解码表示中包括语法元素,该语法元素指示到用于转换的基于历史的运动矢量预测器(hmvp)列表的索引,并且其中,该规则指定在由语法元素指示的索引不小于hmvp列表中的条目数时,将默认处理用于确定块矢量的预测。
18.在又一个代表性方面,上述方法以处理器可执行代码的形式体现并存储在计算机可读程序介质中。
19.在又一个代表性方面,公开了一种被配置为或可操作以执行上述方法的设备。该设备可以包括被编程为实现该方法的处理器。
20.在又一个代表性方面,视频解码器装置可以实现如本文所述的方法。
21.在附图、说明书和权利要求书中更详细地描述了所公开技术的上述和其他方面以及特征。
附图说明
22.图1示出了空域merge候选的示例位置。
23.图2示出了考虑用于空域merge候选的冗余检查的示例候选对。
24.图3是针对时域merge候选的运动矢量缩放的说明。
25.图4示出了时域merge候选的候选位置c0和c1的示例。
26.图5示出了mmvd搜索点的示例。
27.图6是对称mvd模式的示例说明。
28.图7a和7b示出了基于控制点的仿射运动模型的示例。
29.图8示出了每个子块的仿射mvf的示例。
30.图9示出了继承的仿射运动预测器的位置。
31.图10示出了控制点运动矢量继承的示例。
32.图11示出了用于构建仿射merge模式的候选位置的位置的示例。
33.图12是所提出的组合方法的运动矢量用法的图示。
34.图13a和13b示出了vvc中的sbtmvp处理的示例。
35.图14是帧内块复制编解码模式的图示。
36.图15是用于视频处理的硬件平台的示例实施方式的框图。
37.图16是用于视频处理的示例方法的流程图。
38.图17是其中实现视频处理的系统的框图。
39.图18a至图18f是用于视频处理的示例方法的流程图。
40.图19a和19b是用于视频处理的示例方法的流程图。
41.图20是用于视频处理的示例方法的流程图。
具体实施方式
42.所公开技术的实施例可应用于现有视频编解码标准(例如,hevc,h.265)和将来的
标准以改善压缩性能。在本文档中使用节标题来提高描述的可读性,并且不以任何方式将讨论或实施例(和/或实施方式)仅限于相应节。
43.1.概述
44.本文档与视频编解码技术有关。具体地,它涉及视频编解码中的运动/块矢量编解码。可以将其应用于现有的视频编解码标准,例如hevc,或将要最终确定的标准,例如,通用视频编解码和音频视频编解码标准版本3。它也可能适用于将来的视频编解码标准或视频编解码器。
45.2.背景
46.视频编解码标准主要是通过开发众所周知的itu-t和iso/iec标准而发展起来的。itu-t制作了h.261和h.263,iso/iec制作了mpeg-1和mpeg-4视频,并且这两个组织共同制作了h.262/mpeg-2视频和h.264/mpeg-4高级视频编解码(avc)和h.265/hevc标准。自h.262开始,视频编解码标准基于混合视频编解码结构,其中利用了时域预测加变换编解码。为探索hevc之外的未来视频编解码技术,vceg和mpeg于2015年共同成立了联合视频探索团队(jvet)。从那时起,jvet采用了许多新的方法,并将其应用到了名为联合探索模型(jem)的参考软件中[3][4]。2018年4月,vceg(q6/16)和iso/iec jtc1 sc29/wg11(mpeg)之间的联合视频专家团队(jvet)成立,以致力于目标是与hevc相比其降低50%比特率的vvc标准。
[0047]
2.1帧间预测
[0048]
对于每个帧间预测的cu,由运动矢量、参考图片索引和参考图片列表使用索引组成的运动参数,以及要用于帧间预测的样点生成的vvc的新编解码特征所需的附加信息。可以以显式或隐式方式信令通知运动参数。当以跳过模式对cu进行编解码时,cu与一个pu相关联,并且没有显著的残差系数、没有编解码的运动矢量增量或参考图片索引。指定merge模式,从而可从临近cu(包括空域和时域候选)以及vvc中引入的其他方案中获取当前cu的运动参数。merge模式可以应用于任何帧间预测的cu,不仅适用于跳过模式。merge模式的替代方案是运动参数的显式传输,其中对每个cu显式地信令通知运动矢量、每个参考图片列表的对应参考图片索引和参考图片列表使用标志以及其他所需信息。
[0049]
除了hevc中的帧间编解码功能外,vtm5还包括许多新的和细化的帧间预测编解码工具,如下所示:
[0050]

扩展的merge预测
[0051]

具有mvd(mmvd)的merge模式
[0052]

具有对称mvd信令的amvp模式
[0053]

仿射运动补偿预测
[0054]

基于子块的时域运动矢量预测(sbtmvp)
[0055]

自适应运动矢量分辨率(amvr)
[0056]

运动场存储:1/16亮度样点mv存储和8x8运动场压缩
[0057]

具有cu级别权重(bcw)的双向预测
[0058]

双向光流(bdof)
[0059]

解码器侧向运动矢量细化(dmvr)
[0060]

三角分割预测
[0061]

组合的帧间和帧内预测(ciip)
[0062]
下文提供了有关vvc中指定的帧间预测方法的详细信息。
[0063]
2.1.1扩展的merge预测
[0064]
在vtm5中,通过按顺序包括以下五种类型的候选来构建merge候选列表:
[0065]
1)来自空域邻居cu的空域mvp
[0066]
2)来自并置cu的临时mvp
[0067]
3)fifo表中基于历史的mvp
[0068]
4)成对平均mvp
[0069]
5)零mv。
[0070]
在条带标头中信令通知merge列表的尺寸,并且在vtm5中,merge列表的最大允许尺寸为6。对于merge模式下的每个cu代码,使用截断的一元二值化(tu)对最佳merge候选的索引进行编解码。merge索引的第一个块(bin)使用上下文进行编解码,而其他bin则使用旁路编解码进行编解码。
[0071]
在该会话中提供了merge候选的每个类别的生成处理。
[0072]
2.1.1.1空域候选推导
[0073]
vvc中空域merge候选的推导与hevc相同。在位于图1所示位置的候选中最多选择四个merge候选。推导顺序为a0、b0、b1、a1和b2。只有当位置a0、b0、b1、a1的任何cu不可用(例如,因为它属于另一个条带或片)或是帧内编解码时,才考虑位置b2。在增加位置a1的候选后,对剩余候选的增加进行冗余检查,其确保具有相同运动信息的候选被排除在列表之外,从而提高编解码效率。为了降低计算的复杂度,在所提到的冗余检查中并不考虑所有可能的候选对。相反,只有与图2中的箭头链接的对才会被考虑,并且只有当用于冗余检查的对应候选没有相同的运动信息时,才将候选添加到列表中。
[0074]
图1示出了空域merge候选的示例位置。
[0075]
图2示出了考虑用于空域merge候选的冗余检查的示例候选对。
[0076]
2.1.1.2时域候选推导
[0077]
在此步骤中,只有一个候选添加到列表中。特别地,在这个时域merge候选的推导中,基于属于并置参考图片的并置cu导出了缩放运动矢量。用于推导并置cu的参考图片列表在条带标头中显式地信令通知。获取时域merge候选的缩放运动矢量(如图3中虚线所示),其使用poc距离tb和td从并置cu的运动矢量进行缩放,其中tb定义为当前图片的参考图片和当前图片之间的poc差,并且td定义为并置图片的参考图片与并置图片之间的poc差。时域merge候选的参考图片索引设置为零。
[0078]
图3是针对时域merge候选的运动矢量缩放的说明。
[0079]
如图4所示,在候选c0和c1之间选择时域候选的位置。如果位置c0处的cu不可用、是帧内编解码的或在ctu的当前行之外,则使用位置c0。否则,在时域merge候选的推导中使用位置c0。
[0080]
图4示出了时域merge候选c0和c1的候选位置的示例。
[0081]
基于历史的merge候选推导
[0082]
在空域mvp和tmvp之后,将基于历史的mvp(hmvp)merge候选添加到merge列表。在该方法中,先前编解码的块的运动信息被存储在表中,并且用作当前cu的mvp。在编码/解码处理期间,将维护具有多个hmvp候选的表。遇到新的ctu行时,将重置(清空)表。只要有非子
块帧间编解码的cu,相关联的运动信息就会作为新的hmvp候选添加到表的最后一个条目。
[0083]
在vtm5中,将hmvp表尺寸s设置为6,这表示最多可以将6个基于历史的mvp(hmvp)候选添加到表中。当将新的运动候选插入到表中时,利用约束的先进先出(fifo)规则,其中首先应用冗余检查以发现表中是否存在相同的hmvp。如果找到,则从表格中删除相同的hmvp,然后将所有hmvp候选向前移动,
[0084]
hmvp候选可以在merge候选列表构建处理中使用。按顺序检查表中最新的几个hmvp候选,并将其插入到tmvp候选之后的候选列表中。将冗余检查应用于hmvp候选到空域或时域merge候选。
[0085]
为了减少冗余检查操作的数量,引入了以下简化:
[0086]
1)将用于merge列表生成的hmpv候选的数量设置为(n《=4)?m:(8

n),其中n表示merge列表中现有候选的数量,m表示表中可用hmvp候选的数量。
[0087]
2)一旦可用merge候选的总数达到最大允许的merge候选减去1,则终止来自hmvp的merge候选列表构建处理。
[0088]
2.1.1.3成对平均merge候选的推导
[0089]
通过对现有merge候选列表中的预定义候选对进行平均来生成成对平均候选,并且将预定义对定义为{(0,1),(0、2),(1、2),(0,3),(1、3),(2、3)},其中数字表示merge候选列表的merge索引。为每个参考列表分别计算平均运动矢量。如果两个运动矢量在一个列表中均可用,则即使这两个运动矢量指向不同的参考图片,也要对其进行平均;如果只有一个运动矢量可用,则直接使用它;如果没有运动矢量可用,则使该列表无效。
[0090]
当在添加成对平均merge候选之后merge列表不完整时,将零mvp插入到最后,直到遇到最大merge候选数。
[0091]
2.1.2具有mvd(mmvd)的merge模式
[0092]
除了merge模式(其中隐式导出的运动信息直接用于当前cu的预测样点生成)外,在vvc中还引入了具有运动矢量差(mmvd)的merge模式。发送跳过标志和merge标志后立即信令通知mmvd标志,以指定是否将mmvd模式用于cu。
[0093]
在mmvd中,选择了merge候选之后,通过信令通知的mvd信息对其进行进一步细化。进一步的信息包括merge候选标志、用于指定运动幅度的索引以及用于指示运动方向的索引。在mmvd模式下,选择merge列表中前两个候选之一作为mv基础。信令通知merge候选标志以指定使用哪个。
[0094]
图5示出了mmvd搜索点的示例。
[0095]
距离索引指定运动幅度信息,并指示距起点的预定义偏移。如图5所示,偏移被添加到起始mv的水平分量或垂直分量。在表1中指定了距离索引与预定义偏移的关系。
[0096]
表1

距离索引与预定义偏移的关系
[0097][0098]
方向索引表示mvd相对于起点的方向。方向索引可以表示四个方向,如表3-8所示。请注意,mvd符号的含义可能会根据起始mv的信息而有所不同。当起始mv为非预测mv或双向
预测mv且两个列表都指向当前图片的同一侧时(即,两个参考的poc均大于当前图片的poc,或均小于当前图片的poc)。当前图片的poc),表2中的符号指定添加到起始mv的mv偏移的符号。当起始mv是双向预测mv时,两个mv指向当前图片的不同侧(即,一个参考的poc大于当前图片的poc,而另一个参考的poc小于当前图片的poc),表2中的符号指定添加到起始mv的列表0mv分量的mv偏移的符号,而列表1mv的符号具有相反的值。
[0099]
表2

方向索引指定的mv偏移的符号
[0100][0101]
2.1.3对称mvd编解码
[0102]
在vtm5中,除了常规的单向预测和双向预测模式mvd信令外,还应用了双向mvd信令的对称mvd模式。在对称mvd模式中,不信令通知而是导出包括列表0和列表1的参考图片索引以及列表1的mvd的运动信息。
[0103]
对称mvd模式的解码处理如下:
[0104]
1.在条带级别,变量bidirpredflag、refidxsyml0和refidxsyml1的导出如下:
[0105]

如果mvd_l1_zero_flag为1,则bidirpredflag设置为等于0。
[0106]

否则,如果列表0中最接近的参考图片和列表1中最接近的参考图片形成正(forward)反(backward)参考图片对或反(backward)正(forward)参考图片对,则将bidirpredflag设置为1。否则,将bidirpredflag设置为0。
[0107]
2.在cu级别,如果cu是双向预测编解码的且bidirpredflag等于1,则显式地信令通知是否使用对称模式的对称模式标志。
[0108]
当对称模式标志为真时,仅显式地信令通知mvp_l0_flag、mvp_l1_flag和mvd0。将列表0和列表1的参考索引分别设置为等于参考图片对。mvd1设置为等于(

mvd0)。最终运动矢量显示在下式中。
[0109][0110]
图6是对称mvd模式的示例说明。
[0111]
在编码器中,对称mvd运动估计从初始mv评估开始。初始mv候选组包括从单向预测搜索中获得的mv、从双向预测搜索中获得的mv,和amvp列表中的mv。选择速率失真成本最低的一个作为对称mvd运动搜索的初始mv。
[0112]
2.1.4仿射运动补偿预测
[0113]
在hevc中,仅将平移运动模型应用于运动补偿预测(mcp)。在现实世界中,有许多种运动,例如放大/缩小、旋转、透视运动和其他不规则运动。在vtm5中,应用了基于块的仿射变换运动补偿预测。如图7a-7b所示,通过两个控制点(4参数)或三个控制点运动矢量(6参数)的运动信息来描述块的仿射运动场。
[0114]
图7a-7b示出了用于4参数仿射模型(图7a)和6参数仿射模型(图7b)的基于控制点的仿射运动模型。
[0115]
对于4参数仿射运动模型,在块中的样点位置(x,y)处的运动矢量导出为:
[0116][0117]
对于6参数仿射运动模型,在块中的样点位置(x,y)处的运动矢量导出为:
[0118][0119]
其中,(mv
0x
,mv
0y
)是左上角控制点的运动矢量,(mv
1x
,mv
1y
)是右上角控制点的运动矢量,且(mv
2x
,mv
2y
)是左下角控制点的运动矢量-左角控制点。
[0120]
为了简化运动补偿预测,应用了基于块的仿射变换预测。为了导出每个4
×
4亮度子块的运动矢量,如图8所示,根据以上等式计算每个子块的中心样点的运动矢量,并将其舍入到1/16分数精度。然后,将运动补偿插值滤波器应用于生成具有导出的运动矢量的每个子块的预测。色度分量的子块尺寸也设置为4
×
4。将4
×
4色度子块的mv计算为四个对应的4
×
4亮度子块的mv的平均。
[0121]
图8示出了每个子块的仿射mvf的示例。
[0122]
如对平移运动帧间预测所做的那样,还存在两种仿射运动帧间预测模式:仿射merge模式和仿射amvp模式。
[0123]
2.1.4.1仿射merge预测
[0124]
af_merge模式可以应用于宽度和高度均大于或等于8的cu。在这种模式下,基于空域临近cu的运动信息生成当前cu的cpmv。最多可以有五个cpmvp候选,并且信令通知索引以指示要用于当前cu的那个cpmvp候选。以下三种类型的cpvm候选用于形成仿射merge候选列表:
[0125]
1)从邻居cu的cpmv推断的继承的仿射merge候选
[0126]
2)使用邻居cu的平移(translational)mv导出的构建仿射merge候选cpmvp
[0127]
3)零mv
[0128]
在vtm5中,最多有两个继承的仿射候选,它们是从临近块的仿射运动模型导出的,一个来自左临近cu,一个来自上方的临近cu。候选块在图9中示出。对于左预测器,扫描顺序为a0-》a1,对于上方的预测器,扫描顺序为b0-》b1-》b2。仅选择来自两侧的第一个继承的候选。在两个继承的候选之间不执行修剪检查。当识别到临近仿射cu时,其控制点运动矢量被用于导出当前cu的仿射merge列表中的cpmvp候选。如图所示,如果以仿射模式对临近左下块a进行编解码,则获得包含块a的cu的左上角、右上角和左下角的运动矢量v2、v3和v4。当使用4参数仿射模型对块a进行编解码时,根据v2和v3和计算当前cu的两个cpmv。在块a用6参数仿射模型进行编解码的情况下,根据v2、v3和v4计算当前cu的三个cpmv。
[0129]
图9示出了继承的仿射运动预测器的位置。
[0130]
图10示出了控制点运动矢量继承的示例。
[0131]
构建仿射候选是指通过组合每个控制点的邻居平移运动信息来构建候选。控制点的运动信息是从图11所示的指定的空域邻居和时域邻居导出的。cpmvk(k=1,2,3,4)表示第k个控制点。对于cpmv1,检查b2-》b3-》a2块,并使用第一个可用块的mv。对于cpmv2,检查b1-》b0块,对于cpmv3,检查a1-》a0块。对于tmvp(如果可用)用作cpmv4。
[0132]
在获得四个控制点的mv之后,基于那些运动信息构建仿射merge候选。控制点mv的以下组合用于按顺序构建:
[0133]
{cpmv1,cpmv2,cpmv3},{cpmv1,cpmv2,cpmv4},{cpmv1,cpmv3,cpmv4},{cpmv2,cpmv3,cpmv4},{cpmv1,cpmv2},{cpmv1,cpmv3}。
[0134]
3个cpmv的组合构成6参数的仿射merge候选,而2个cpmv的组合构成4参数的仿射merge候选。为了避免运动缩放处理,如果控制点的参考索引不同,则丢弃控制点mv的相关组合。
[0135]
图11示出了用于构建仿射merge模式的候选位置的位置的示例。
[0136]
在检查了继承的仿射merge候选和构建的仿射merge候选之后,如果列表仍然不完整,则将零mv插入到列表的末尾。
[0137]
2.1.4.2仿射amvp预测
[0138]
仿射amvp模式可应用于宽度和高度均大于或等于16的cu。在比特流中信令通知cu级别的仿射标志以指示是否使用仿射amvp模式,然后信令通知另一个标志以指示是使用4参数仿射还是6参数仿射。在这种模式下,在比特流中信令通知当前cu的cpmv和其预测器cpmvp的差异。仿射avmp候选列表尺寸为2,并且其通过使用以下四种类型的cpvm候选顺序来生成:
[0139]
1)从邻居cu的cpmv推断的继承的仿射amvp候选
[0140]
2)使用邻居cu的平移mv导出的构建仿射amvp候选cpmvp
[0141]
3)来自临近cu的平移mv
[0142]
4)零mv
[0143]
继承的仿射amvp候选的检查顺序与继承的仿射merge候选的检查顺序相同。唯一的区别是,对于avmp候选,仅考虑具有与当前块中相同的参考图片的仿射cu。在将继承的仿射运动预测器插入候选列表时,不应用修剪处理。
[0144]
构建的amvp候选是从图11中所示的指定的空域邻居中导出的。使用与仿射merge候选构建中相同的检查顺序。另外,还检查临近块的参考图片索引。使用检查顺序中的第一个块,该块进行了帧间编解码并具有与当前cu中相同的参考图片。只有一个当前cu,当使用4参数仿射模式对当前cu进行编解码并且mv0和mv1都可用时,会将它们添加到仿射amvp列表中作为一个候选。当使用6参数仿射模式对当前cu进行编解码,并且所有三个cpmv均可用时,会将它们添加到仿射amvp列表中作为一个候选。否则,构建的amvp候选将被设置为不可用。
[0145]
如果在检查继承的仿射amvp候选和构建的amvp候选之后,仿射amvp列表候选仍小于2,则将依次添加mv0、mv1和mv2,作为作为平移mv来预测当前cu的所有控制点mv(如果可用)。最后,如果仿射amvp列表仍未满,则使用零mv来填充。
[0146]
2.1.4.3仿射运动信息存储
[0147]
在vtm5中,仿射cu的cpmv存储在单独的缓冲区中。存储的cpmv仅用于为最近编解码的cu以仿射merge模式和仿射amvp模式生成继承的cpmvp。从cpmv导出的子块mv用于运动补偿、平移mv的merge/amvp列表的mv导出以及去方块。
[0148]
为了避免用于附加cpmv的画面行缓冲区,将来自ctu上方的cu的仿射运动数据继承与来自常规临近cu的继承进行区别对待。如果用于仿射运动数据继承的候选cu在ctu行
的上方,则将行缓冲区中的左下和右下子块mv代替cpmv用于仿射mvp推导。这样,cpmv仅存储在本地缓冲区中。如果候选cu是6参数仿射编解码的,则仿射模型降级为4参数模型。如图12所示,沿着顶部ctu边界,cu的左下和右下子块运动矢量被用于底部ctu中的cu的仿射继承。
[0149]
图12是所提出的组合方法的运动矢量用法的说明。
[0150]
2.1.5基于子块的时域运动矢量预测(sbtmvp)
[0151]
vtm支持基于子块的时域运动矢量预测(sbtmvp)方法。类似于hevc中的时域运动矢量预测(tmvp),sbtmvp使用并置图片中的运动场来改进当前图片中cu的运动矢量预测和merge模式。tmvp使用的相同的并置图片用于sbtvmp。sbtmvp在以下两个主要方面与tmvp不同:
[0152]
1.tmvp预测cu级别的运动,而sbtmvp预测子cu级别的运动;
[0153]
2.鉴于tmvp从并置图片中的并置块中获取时域运动矢量(并置块是相对于当前cu的右下角或中心块),而sbtmvp在从并置图片中获取时域运动信息之前应用了运动偏移,其中从当前cu的空域临近块之一的运动矢量获得运动偏移。
[0154]
在图13a和13b中示出了sbtvmp处理。sbtmvp分两步预测当前cu内子cu的运动矢量。在第一步中,检查图13a-13b中的空域邻居a1。如果a1具有将并置图片用作其参考图片的运动矢量,则将该运动矢量选择为要应用的运动偏移。如果未识别到此类运动,则将运动偏移设置为(0,0)。
[0155]
在第二步中,如图13b所示,应用步骤1中识别的运动偏移(即,将其添加到当前块的坐标中)以从并置图片中获得子cu级别运动信息(运动矢量和参考索引)。图13b中的示例假设将运动偏移设置为块a1的运动。然后,对于每个子cu,在并置图片中其对应块(覆盖中心样点的最小运动网格)的运动信息被用于导出子cu的运动信息。在识别并置子cu的运动信息之后,以与hevc的tmvp处理类似的方式,将其转换为当前子cu的运动矢量和参考索引,其中应用时域运动缩放来将时域运动矢量的参考图片对齐到当前cu的参考图片。
[0156]
通过应用来自空域邻居的运动偏移并缩放来自对应的并置子cu的运动信息来导出子cu运动场
[0157]
图13a和13b示出了vvc中的sbtmvp处理的示例。
[0158]
在vtm5中,包含sbtvmp候选和仿射merge候选两者的组合的基于子块的merge列表用于基于子块的merge模式的信令。通过序列参数集(sps)标志启用/禁用sbtvmp模式。如果启用了sbtmvp模式,则将sbtmvp预测器添加为基于子块的merge候选列表的第一条目,然后添加仿射merge候选。基于子块的merge列表的尺寸在sps中信令通知,并且基于子块的merge列表的最大允许尺寸在vtm5中为5。
[0159]
在sbtmvp中使用的子cu尺寸固定为8x8,并且与仿射merge模式一样,sbtmvp模式仅适用于宽度和高度都大于或等于8的cu。
[0160]
附加sbtmvp merge候选的编解码逻辑与其他merge候选的编解码逻辑相同,即,对于p或b条带中的每个cu,执行附加的rd检查以决定是否使用sbtmvp候选。
[0161]
2.1.6自适应运动矢量分辨率(amvr)
[0162]
在hevc中,当条带标头中的use_integer_mv_flag等于0时,以四分之一亮度样点为单位信令通知(cu的运动矢量与预测的运动矢量之间的)运动矢量差(mvd)。在vvc中,引
scc中,如果帧间编解码单元(cu)选择当前图片作为其参考图片,则它可以应用ibc。在这种情况下,mv被重命名为块矢量(bv),并且bv始终具有整数像素精度。为了与主配置文件hevc兼容,当前图片在解码图片缓冲区(dpb)中被标记为“长期”参考图片。应当注意,类似地,在多视图/3d视频编解码标准中,视图间参考图片也被标志为“长期”参考图片。
[0173]
在bv找到其参考块之后,可以通过复制参考块来生成预测。可以通过从原始信号中减去参考像素来获得残差。然后可以像在其他编解码模式中一样应用变换和量化。
[0174]
图14是帧内块复制编解码模式的说明。
[0175]
然而,当参考块在图片之外、或与当前块重叠、或在重构的区域之外、或在受某些约束限制的有效区域之外时,则不定义部分或全部像素值。基本上,应对此种问题有两种解决方案。一种是禁止这种情形,例如在比特流一致性方面。另一种是对那些未定义的像素值应用填充。以下子章节详细描述了解决方案。
[0176]
2.3hevc屏幕内容编解码扩展中的ibc
[0177]
在hevc的屏幕内容编解码扩展中,当块使用当前图片作为参考时,应确保整个参考块在可用的重构区域内,如说明书中的以下文本所示:
[0178]
变量offsetx和offsety的推导如下:
[0179]
offsetx=(chromaarraytype==0)?0:(mvclx[0]&0x7?2:0)
[0180]
(8-104)
[0181]
offsety=(chromaarraytype==0)?0:(mvclx[1]&0x7?2:0)
[0182]
(8-105)
[0183]
这是比特流一致性的要求,即当参考图片是当前图片时,亮度运动矢量mvlx应当遵循以下限制:
[0184]-当第6.4.1节中规定的z扫描顺序块可用性的推导过程为将设置为(xcb,ycb)的(xcuee,ycurr)、将设置为等于(xpb+(mvlx[0]》》2)-offsetx,ypb+(mvlx[1]》》2)-offsety)的临近亮度位置(xnby,ynby)作为输入时,输出应当为真(true)。
[0185]-当第6.4.1节中规定的z扫描顺序块可用性的推导过程为将设置为(xcb,ycb)的(xcuee,ycurr)、将设置为等于(xpb+(mvlx[0]》》2)+npbw-1+offsetx,ypb+(mvlx[1]》》2)+npbh-1+offsety)的临近亮度位置(xnby,ynby)作为输入时,输出应当为真(true)
[0186]-以下条件中的一个或两者应当为真:
[0187]-(mvlx[0]》》2)+npbw+xb1+offsetx的值小于或等于0。
[0188]-(mvlx[1]》》2)+npbh+yb1+offsety的值小于或等于0。
[0189]-以下条件应当为真:
[0190]
(xpb+(mvlx[0]》》2)+npbsw-1+offsetx)/ctbsizey-xcurr/ctbsizey《=ycurr/ctbsizey-(ypb+(mvlx[1]》》2)+npbsh-1+offsety)/ctbsizey
ꢀꢀ
(8-106)
[0191]
因此,将不会发生参考块与当前块重叠或参考块在图片之外的情况。无需填充参考或预测块。
[0192]
2.4.vvc测试模型中的ibc
[0193]
在当前的vvc测试模型(即vtm-4.0设计)中,整个参考块应与当前的编解码树单元(ctu)重叠,且不与当前块重叠。因此,不需要填充参考或预测块。ibc标志被编解码为当前cu的预测模式。因此,每个cu总共存在三种预测模式:mode_intra\mode_inter和mode_ibc。
[0194]
2.4.1.ibc merge模式
[0195]
在ibc merge模式中,从比特流中解析指向ibc merge候选列表中的条目的索引。ibc merge列表的构造可以根据以下步骤顺序进行总结:
[0196]
·
步骤1:推导空域候选
[0197]
·
步骤2:插入hmvp候选
[0198]
·
步骤3.插入成对平均候选
[0199]
在空域merge候选的推导中,在位于附图1描绘的位置的候选当中选择最多四个merge候选。推导的顺序是a1、b1、b0、a0和b2。仅当位置a1、b1、b0、a0的任何预测单元(pu)不可用(例如,因为它属于另一条带或区块)或者没有用ibc模式进被编解码时,才考虑位置b2。在添加位置a1处的候选之后,对剩余候选的插入进行冗余校验,其确保具有相同运动信息的候选被排除在列表之外,使得编解码效率提高。为了降低计算复杂度,在所提到的冗余校验中并未考虑所有可能的候选对。相反,仅考虑附图2中描绘的用箭头连接的对,并且仅在用于冗余校验的对应候选具有不一样的运动信息时,才将候选添加到列表。
[0200]
在插入空域候选之后,如果ibc merge列表尺寸仍小于最大ibc merge列表尺寸,则可以插入来自hmvp表的ibc候选。插入hmvp候选时执行冗余检查。
[0201]
最后,将成对平均候选插入ibc merge列表。
[0202]
当由merge候选标识的参考块在图片之外、或者与当前块重叠、或者在重构区域之外、或者在受某些约束限制的有效区域之外时,merge候选被称为无效merge候选。
[0203]
注意,可以将无效的merge候选插入到ibc merge列表中。
[0204]
2.4.2ibc amvp模式
[0205]
在ibc amvp模式下,指向ibc amvp列表中条目的amvp索引是从比特流中解析出来的。ibc amvp列表的构造可以根据以下步骤顺序进行总结:
[0206]
·
步骤1:推导空域候选
[0207]
ο检查a0、a1,直到找到可用的候选。
[0208]
ο检查b0、b1、b2,直到找到可用的候选。
[0209]
·
步骤2:插入hmvp候选
[0210]
·
步骤3:插入零候选
[0211]
在插入空域候选之后,如果ibc amvp列表尺寸仍然小于最大ibc amvp列表尺寸,则可以插入来自hmvp表的ibc候选。
[0212]
最后,将零候选插入到ibc amvp列表中。
[0213]
3.通过本文档中描述的实施例和技术解决的技术问题的示例
[0214]
1)对于ibc块矢量预测,使用hmvp可能比merge和amvp更简单。
[0215]
2)仅用于块矢量的hmvp设计可以简化和优化。
[0216]
4.实施例和技术列表
[0217]
术语“ibc”不应狭义地解释。使用指向覆盖当前块的同一图片的运动矢量的任何技术都可以被视为“ibc”。此外,它不应该局限于单向预测。
[0218]
下面的详细发明应被认为是示例以解释一般概念。这些发明不应狭义地解释。此外,这些发明可以以任何方式组合。
[0219]
将函数clip3(min,max,x)定义为clip3(min,max,x)=x《min?min:(x》max?max:
x)。在下文中,ctbsize表示ctu/ctb的宽度和/或高度,而(xcb,ycb)表示相对于图片的左上角的块的左上角。
[0220]
块矢量可以缩写为“bv”。
[0221]
1.hmvp表可以包含多个(例如n个,n》=0并且n是整数)块矢量预测器。
[0222]
a.在一个示例中,hmvp中的每个条目可能仅包含一对整数,例如bvx和bvy。
[0223]
b.在一个示例中,hmvp中的每个条目可以以整数精度表示块矢量。
[0224]
c.例如n=1、2、3、4、5、6或8。
[0225]
d.在一个示例中,可以基于其他解码信息(诸如,为帧间模式允许多少个hmvp候选)信令通知或导出n。
[0226]
e.在一个示例中,可以有多个hmvp表,并且它们中的至少一个特定的hmvp表仅包括bv(除了表中的当前图片之外,没有mv参考参考图片)。
[0227]
i.在一个示例中,独立地操作多个hmvp表。
[0228]
2.hmvp表中的一个或多个条目可用于预测当前块的bv。
[0229]
a.在一个示例中,对于hmvp中的块矢量(bvx和bvy)和块矢量预测(bvpx和bvpy),可以在比特流中信令通知(bvx-bvpx,bvy-bvpy)。
[0230]
b.在一个示例中,可以信令通知hmvp表中的块矢量预测(bvpx和bvpy)的索引。
[0231]
3.用于编解码bvp的hmvp索引的cabac上下文可以与用于帧间模式编解码的merge索引共享。
[0232]
a.在一个示例中,用于对bvp的hmvp索引进行编解码的上下文可以使用第一k(例如,k=1至8)个上下文来对merge索引进行编解码。
[0233]
b.在一个示例中,用于对bvp的hmvp索引进行编解码的上下文可以使用最后的k(例如,k=1至8)个上下文来对merge索引进行编解码。
[0234]
c.可替代地,用于对bvp的hmvp索引进行编解码的上下文可以与用于对merge索引进行编解码的上下文无关。
[0235]
4.可以剪切从hmvp预测导出的运动矢量/块矢量。
[0236]
a.在一个示例中,可以将从hmvp预测导出的运动矢量,即运动矢量差加上hmvp预测,剪切到允许的运动矢量范围,例如,[-32768,32767]。
[0237]
5.当hmvp表不包含任何条目时,可能不允许使用块矢量预测。
[0238]
a.在一个示例中,可以跳过hmvp索引的信令通知。
[0239]
b.可替代地,此外,可以在比特流中直接信令通知块矢量。
[0240]
c.可替代地,此外,可以使用默认块矢量来预测该块矢量。
[0241]
i.在一个示例中,(0,0)可用于预测块矢量。
[0242]
ii.在一个示例中,(-m,0)可用于预测块矢量,其中m是正整数。例如,m可以等于当前块的宽度。
[0243]
iii.在一个示例中,(0,-n)可用于预测块矢量,其中n是正整数。例如。n可以等于当前块的高度。
[0244]
iv.是否使用默认bv来预测当前块的bv可能取决于hmvp表中条目的数量。
[0245]
1)例如,当hmvp表中的条目数小于k时,将默认bv用于预测当前块的bv,例如k=1或2。
[0246]
6.hmvp表可以使用多个常量块矢量(也称为默认bv)来初始化。
[0247]
a.在一个示例中,(-m*idx,0)可以被设置为hmvp中索引等于idx的条目的初始值,其中m是整数值。
[0248]
b.在一个示例中,(m*idx,0)可以被设置为hmvp中索引等于idx的条目的初始值,其中m是整数值。
[0249]
c.在一个示例中,(0,-n*idx)可以被设置为hmvp中索引等于idx的条目的初始值,其中n是整数值。
[0250]
d.在一个示例中,上述m和/或n可以被预定义或从一个视频单元自适应地改变为另一视频单元。
[0251]
i.在一个示例中,m和/或n可以取决于编解码信息。
[0252]
e.在一个示例中,默认bv可以定义为(0,-16)、(0,-12)、(0,-8)、(0,-4)、(-16,0)、(-12,0)、(-8,0)、(-4,0)。
[0253]
f.在一个示例中,对于某个索引,可以使用上述方法之一来初始化条目。
[0254]
g.在一个示例中,hmvp表可以在编码或解码序列/图片/条带/片组/片/砖块/子图片/ctu行/ctu之前被初始化。
[0255]
7.当解码的hmvp索引不小于hmvp列表的长度,即列表中可用mv的数量时,可以调用默认处理。
[0256]
a.在一个示例中,当解码的索引不小于hmvp列表的长度时,可以将块矢量预测设置为(0,0)。
[0257]
b.在一个示例中,当解码的索引不小于hmvp列表的长度时,可以将块矢量预测设置为(-m,0),其中m是正整数,例如,m可以等于当前块的宽度。
[0258]
c.在一个示例中,当解码的索引不小于hmvp列表的长度时,可以将块矢量预测设置为(0,-n),其中n是正整数,例如,m可以等于当前块的高度。
[0259]
d.在一个示例中,当解码的索引不小于hmvp列表的长度时,可以将块矢量预测设置为(m,0),其中,m是正整数,例如,m可以等于当前块的宽度。
[0260]
e.在一个示例中,例如当解码的索引不小于hmvp列表的长度时,可以使用默认的预测模式(例如可以使用中间灰色值来预测整个块)。
[0261]
8.比特流中hmvp索引的二值化最大值可能取决于已被视为hmvp条目的块矢量的数量。
[0262]
a.在一个示例中,可以将已经被视为hmvp条目的块矢量的数量设置为等于在对当前块进行解码/编码之前更新了hmvp表的次数。
[0263]
b.在一个示例中,二值化方法,例如,截断的一元/截断的二元,可以取决于已经被视为是hmvp条目的块矢量的数量。
[0264]
c.替代地,用于比特流中的hmvp索引的二值化的最大值可以取决于hmvp表中的可用条目的数量。
[0265]
i.可替代地,用于比特流中的hmvp索引的二值化的最大值可以是固定数(例如,hmvp表尺寸),而与hmvp表中的可用条目的数量无关。
[0266]
d.在一个示例中,该数量可以是计数器(由cnt表示),用于对已经被视为hmvp条目的块矢量进行计数。
[0267]
i.在一个示例中,在解码ibc编解码块之后,可以将cnt增加k(例如,1或0)。
[0268]
1)在一个示例中,当发送块矢量时,cnt将增加1。
[0269]
2)在一个示例中,当检测到以ibc amvp模式编解码的块时,cnt可以增加1。
[0270]
3)在一个示例中,当检测到非零块矢量差时,cnt可以增加1。
[0271]
4)在一个示例中,如果cnt等于hmvp表尺寸/表中允许的hmvp候选最大数,则cnt可以增加0。
[0272]
ii.在一个示例中,当hmvp不包含任何条目时,计数器被重置为0。
[0273]
iii.在一个示例中,可以在编解码新的视频单元之前重置计数器。
[0274]
1)在一个示例中,新的视频单元是新的ctu行。
[0275]
2)在一个示例中,新的视频单元是新的条带/片/砖块/子图片/vpdu/ctu/图片的子区域。
[0276]
e.在一个示例中,用于hmvp索引的二值化的最大值可以是min(counter,len),其中counter是上述数量,并且len表示hmvp表的最大尺寸。
[0277]
9.在用于预测块矢量之前,可以修改块矢量预测(预测器)。
[0278]
a.在一个示例中,可以将块矢量修改为当前块的有效块矢量。
[0279]
b.在一个示例中,无效的块矢量可以不被用作块矢量预测。
[0280]
c.在一个示例中,当参考区域是一个ctu/ctb时,可以将块矢量修改为在当前ctu/ctb内。
[0281]
i.在一个示例中,对于块(xcb,ycb)和块矢量预测(bvpx,bvpy),可以生成修改的块矢量预测(bvpmx,bvpmy),其中bvpmx=clip3(xcb/ctbsize*ctbsize,xcb/ctbsize*ctbsize+ctbsize,xcb+bvpx)

xcb且bvpmy=clip3(ycb/ctbsize*ctbsize,ycb/ctbsize*ctbsize+ctbsize,ycb+bvpy)

ycb。
[0282]
d.在一个示例中,bvt=f(bv1,bv2,

,bvn)可用作bv预测,其中bv1,bv2,

,bvn是hmvp表中的条目,f是诸如average()、max()、min()、middle()等之类的函数,,并且n是大于0的整数。
[0283]
10.hmvp表中的块矢量预测(预测器)可用于表示当前块的块矢量。
[0284]
a.在一个示例中,可以在比特流中信令通知索引,以指示hmvp中的哪个块矢量预测(预测器)被用作当前块的块矢量。
[0285]
i.在一个示例中,一个索引必须对应于hmvp表中的一个且只有一个条目。
[0286]
1)在一个示例中,最大索引等于n-1,其中n是hmvp表的可用条目数。
[0287]
2)在一个示例中,如果索引大于n-1,其中n是hmvp表的可用条目数,则将bv预测设置为默认bv,诸如项目符号4中定义的那些。
[0288]
3)在一个示例中,解码的索引k可以对应于hmvp表中的第(m-1-k)个条目。
[0289]
a.可替代地,解码索引k可以对应于hmvp表中的第k个条目。
[0290]
b.在一个示例中,当使用hmvp预测块矢量时,可以应用恒定的块矢量差。
[0291]
i.在一个示例中,块矢量差为(0,0)可以总是应用于hmvp条目。
[0292]
c.在一个示例中,可针对cu/pu/块信令通知是否存在非零块矢量差的指示。
[0293]
i.可替代地,此外,仅当块矢量差指示存在非零的块矢量差时,才可以信令通知块矢量差。
[0294]
d.在一个示例中,可以使用来自hmvp表的哪个块矢量预测可以取决于可以针对cu/pu/块信令通知是否存在非零块矢量差的指示。
[0295]
11.是否以及如何应用建议的方法可能取决于编解码信息,诸如块维度。
[0296]
12.可以从编码器向解码器信令通知是否应用建议的方法以及如何应用建议的方法,诸如在序列级别(例如sps或序列标头)、图片级别(例如图片标头或pps)、条带级别(例如条带标头)、片组级别、片级别、ctu行级别、ctu级别等。
[0297]
hmvp通常用于帧内/ibc或其他编解码方法
[0298]
13.重置hmvp表时(例如,在解码新的条带/片/砖块/子图片/ctu行/ctu之前),表示可用条目的数量(表中可用的hmvp候选)的、与hmvp表相关联的计数器可以重置为k,其中k不等于0。
[0299]
a.在一个示例中,k取决于重置期间要添加到hmvp表(例如,等于)的默认hmvp候选数。
[0300]
b.在一个示例中,k取决于hmvp表中的hmvp候选的最大数量(例如,等于)。
[0301]
5实施例
[0302]
5.1实施例1
[0303]
该实施例指示如何设计语法以将hmvp用于bv编解码。它基于最新的vvc草案,即jvet-o2001-ve。更改以粗体和斜体突出显示。删除的文本用双括号标志(例如[[a]]表示字符“a”的删除)。
[0304][0305]
bvp_idx使用截断的rice(tr)二值化处理,其中,其中
[0306]
8.6.2.1概述
[0307]
此处理的输入是:
[0308]

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

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

变量cbheight,用于指定亮度样点中当前编解码块的高度。
[0311]
该处理的输出是:
[0312]

[[1/16分数]]整数样点精度bvl中的亮度块矢量。
[0313]
亮度块矢量mvl的导出如下:
[0314]

[[[以用亮度位置(xcb,ycb)、变量cbwidth和cbheight作为输入,调用8.6.2.2节中指定的ibc亮度块矢量预测的推导处理,并且输出亮度块矢量bvl。]]
[0315][0316]

当general_merge_flag[xcb][ycb]等于0时,适用以下条件:
[0317]
1.变量bvd的导出如下:
[0318]
bvd[0]=mvdl0[xcb][ycb][0]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-900)
[0319]
bvd[1]=mvdl0[xcb][ycb][1]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-901)
[0320]
2.以设置为等于bvl的mvx、设置为等于amvrshift的rightshift、设置为等于amvrshift的leftshift作为输入,并以舍入的bvl作为输出,调用8.5.2.14节中指定的运动矢量舍入处理。
[0321]
3.亮度块矢量bvl修改如下:
[0322]
u[0]=(bvl[0]+bvd[0]+2
18
)%2
18
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-902)
[0323]
bvl[0]=(u[0]》=2
17
)?(u[0]-2
18
):u[0]
ꢀꢀꢀꢀꢀ
(8-903)
[0324]
u[1]=(bvl[1]+bvd[1]+2
18
)%2
18
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-904)
[0325]
bvl[1]=(u[1]》=2
17
)?(u[1]-2
18
):u[1]
ꢀꢀꢀꢀꢀ
(8-905)
[0326]
注意1

上面指定的bvl[0]和bvl[1]的结果值将始终在-2
17
到2
17-1的范围内(包括-2
17
和2
17-1)。
[0327]
当isinsmr[xcb][ycb]等于假(false)时,将使用亮度块矢量bvl调用第8.8.6.6节中指定的基于历史的块矢量预测器列表的更新处理。
[0328]
8.6.2.6基于历史的块矢量预测器候选列表的更新处理
[0329]
此处理的输入是:
[0330]

[[1/16分数]]整数样点精度中的亮度块矢量bvl。
[0331]
候选列表hmvpibccandlist通过以下有序步骤进行修改:
[0332]
1.将变量samecandexist设置为假,将变量removeidx设置为0。
[0333]
2.当numhmvpibccand大于0时,对于每个索引为hmvpidx=0..numhmvpibccand-1的索引hmvpidx,将应用以下步骤,直到identicalcandexist等于真:
[0334]

当hmvpcand等于hmvpibccandlist[hmvpidx]时,将identicalcandexist设置为真,removeidx设置为hmvpidx。
[0335]
3.候选列表hmvpibccandlist更新如下:
[0336]

如果identicalcandexist等于真或numhmvpibccand等于[[5]]则适用以下条件:
[0337]

对于具有i=(removeidx+1)..(numhmvpibccand-1)的每个索引i,将hmvpibccandlist[i-1]设置为等于hmvpibccandlist[i]。
[0338]

hmvpibccandlist[numhmvpibccand-1]设置为等于bvl。
[0339]

否则identicalcandexist等于假且numhmvpibccand小于[[5]]),则适用以下条件:
[0340]

将hmvpibccandlist[numhmvpibccand++]设置为等于bvl。
[0341]
5.2实施例2
[0342]
该实施例基于avs3草案,文档号n2686。更改以粗体标志。
[0343]
7.1.2.2
[0344][0345]
7.1.6
[0346][0347][0348]
7.2.2视频序列的语义描述
[0349]
7.2.2.1视频序列的语义描述
[0350][0351]
4比特无符号整数。
[0352]
numofhmvpcandibc的值等于num_of_hbvp_cand的值,并且值范围为0到15。numofhmvpcandibc的值为0表示不应使用基于历史信息的块矢量预测。
[0353]
7.2.6编解码单位
[0354]
块矢量预测索引bvp_idx
[0355]
块矢量预测的索引值。
[0356]
bvpidx的值等于bvp_idx的值,并且bvpidx的值小于num_of_hbvp_cands的值。
[0357]
8.3.4逆二值化方法
[0358]
8.3.4.1概述
[0359][0360]
9.4最大编解码单位解码
[0361]
根据条带内的光栅扫描顺序对最大解码单元进行顺序解码,解码处理如下:
[0362]
如果当前最大编解码单元是条带中当前行的第一最大编解码单元,则将历史运动信息表中的候选编号cnthmvp的值初始化为0,并将历史块矢量信息表中的候选编号cnthmvpibc的值初始化为0。
[0363]
9.5.6帧内预测模式
[0364]
9.5.6.1概述
[0365]
当编解码单元的帧内预测类型为常规帧内预测模式时,按xxx键可导出当前编解码单元的亮度预测模式和色度预测模式;当编解码单元的帧内预测类型为块复制帧内预测时,按9.5.6.3导出当前编解码单元的块矢量。
[0366]
9.5.6.3块复制帧内预测模式
[0367]
块复制帧内预测模式的块矢量预测推导处理如下:根据历史块矢量预测表hmvpcandidatelistibc和块矢量预测索引bvpidx,按照以下步骤导出历史块矢量预测值mvepredbv:
[0368]
a)如果块矢量预测索引bvpidx小于cnthmvpibc,则当前预测单元的块矢量预测mvepredbv等于hmvpcandidatelistibc[bvpidx]。
[0369]
b)否则,当前预测单元的块矢量预测mvepredbv是零矢量。
[0370][0371]
块复制帧内预测模式的块矢量差导出处理如下:
[0372][0373]
可替代地,可能适用以下条件:
[0374][0375]
块复制帧内预测模式的块矢量推导处理如下:
[0376][0377]
bve是当前预测单元的块矢量,并且bve等于bve。
[0378]
9.16确定块矢量信息的异同
[0379]
如果两个块矢量满足以下条件,则两个块矢量是不同的。否则,两个块矢量相同:
[0380]
l0运动矢量不相等。
[0381]
9.18更新历史块矢量预测信息表
[0382]
在当前预测单元的解码完成后,如果当前预测单元为块复制预测单元,则当numofhmvpcand大于0时,根据当前预测块的块矢量信息更新历史块矢量预测信息表
hmvpcandidatelistibc;否则,将不执行本节中定义的操作。
[0383]
a)将hmvpibcidx初始化为0。
[0384]
a)如果cnthmvpibc等于0,则hmvpcandidatelistibc[cnthmvpibc]等于当前预测单元的块矢量信息,并且cnthmvpibc增加1。
[0385]
b)否则,根据9.16中定义的方法,判断当前预测块的块矢量和hmvpcandidatelistibc[hmvpidxibc]是否相同:
[0386]
1)如果块矢量信息相同,则执行步骤d),否则,hmvpidxibc增加1。
[0387]
2)如果hmvpidxibc小于cnthmvpibc,则转到步骤c);否则,请转到步骤d)。
[0388]
c)如果hmvpidxibc小于cnthmvpibc,则:
[0389]
1)i是从hmvpidxibc到cnthmvpibc-1,
[0390]
·
令hmvpcandidatelistibc[i]等于hmvpcandidatelistibc[i+1];
[0391]
2)hmvpcandidatelistibc[cnthmvpibc-1]等于当前预测单元的块矢量信息。否则,如果hmvpidxibc等于cnthmvpibc,而cnthmvpibc等于numofhmvpcandibc,则:
[0392]
1)i从0到cnthmvpibc-1,使hmvpcandidatelistibc[i]等于hmvpcandidatelistibc[i+1];
[0393]
2)hmvpcandidatelistibc[cnthmvpibc-1]等于当前预测单元的块矢量信息。
[0394]
否则,如果hmvpidxibc等于cnthmvpibc,并且cnthmvpibc小于numofhmvpcandibc,则hmvpcandidatelistibc[cnthmvpibc]等于当前预测单元的块矢量信息,并且cnthmvpibc增加1。
[0395]
表53语法元素对应的ctxidxstart和ctxidxinc
[0396][0397]
图15是视频处理装置1500的框图。装置1500可用于实现本文所述的一种或多种方法。装置1500可以被实现在智能手机、平板电脑、计算机、物联网(iot)接收器等中。装置1500可以包括一个或多个处理器1502、一个或多个存储器1504和视频处理硬件1506。处理器1502可以被配置成实现本文档中描述的一个或多个方法。存储器1504可用于存储用于实现本文所述的方法和技术的数据和代码。视频处理硬件1506可用于在硬件电路中实现本文中描述的一些技术。在一些实施例中,硬件1506可以至少部分位于处理器1502中,例如图形协处理器。
[0398]
图17是示出了可在其中实现本文公开的各种技术的示例视频处理系统1700的框图。各种实现可以包括系统1700的部分或全部组件。系统1700可以包括用于接收视频内容的输入1702。视频内容可以原始或未压缩格式(例如,8或10比特多分量像素值)接收,或者可以压缩或编解码格式接收。输入1702可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(pon)等有线接口和诸如wi-fi或蜂窝接口的无线接口。
[0399]
系统1700可以包括编解码组件1704,其可以实现本文中描述的各种编码或译码方
法。编解码组件1704可以降低从输入1702到编解码组件1704的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件1704的输出可以存储,或者通过由组件1706表示的连接的通信来发送。组件1708可以使用在输入1702处接收的视频的存储或通信比特流(或编解码)表示来生成发送到显示接口1710的像素值或可显示视频。从比特流表示生成用户可视视频的处理有时称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是应当理解,在编码器处使用编码工具或操作,并且将由解码器执行相应的解码工具或反转编码结果的操作。
[0400]
外围总线接口或显示接口的示例可以包括通用串行总线(usb)或高清晰度多媒体接口(hdmi)或显示端口等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文中描述的技术可以实施在各种电子设备中,例如能够执行数字数据处理和/或视频显示的移动电话、膝上型计算机、智能手机或其他设备。
[0401]
所公开技术的一些实施例包括:作出启用视频处理工具或模式的决策或确定。在一个示例中,当视频处理工具或模式被启用时,编解码器将在视频块的处理中使用或实现该工具或模式,但不一定基于该工具或模式的使用来修改产生的比特流。也就是说,当基于决策或确定启用视频处理工具或模式时,从视频块到视频的比特流表示的转换将使用该视频处理工具或模式。在另一示例中,当视频处理工具或模式被启用时,解码器将在知晓已经基于视频处理工具或模式修改了比特流的情况下处理比特流。也就是说,将使用基于决策或确定而启用的视频处理工具或模式来执行从视频的比特流表示到视频块的转换。
[0402]
所公开技术的一些实施例包括:作出禁用视频处理工具或模式的决策或确定。在一个示例中,当视频处理工具或模式被禁用时,编解码器将不在将视频块转换到视频的比特流表示的转换中使用该工具或模式。在另一示例中,当视频处理工具或模式被禁用时,解码器将在知晓未使用基于所述决策或确定而启用的视频处理工具或模式修改比特流的情况下来处理比特流。
[0403]
在本文中,术语“视频处理”可指视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示到对应的比特流表示的转换期间应用视频压缩算法,反之亦然。例如,当前视频块的比特流表示可以对应于由语法定义的比特流中的并置位置或在不同位置传播的比特。例如,可以根据经过转换和编解码的误差残差来编解码宏块,并且也可以使用比特流中的标头和其他字段中的比特来编解码宏块。
[0404]
在一些实施例中,以下解决方案可以被实现为优选解决方案。
[0405]
可以使用以下基于条款的格式来描述各种技术和实施例。第一组条款在先前章节中描述了所公开技术的某些特征和方面。
[0406]
以下条款可以与在先前章节中列出的项目(例如,项目1)中描述的其他技术一起实施。
[0407]
1.一种视频处理的方法(例如,图16中所示的方法1600)包括:对于视频的视频区域和视频区域的编解码表示之间的转换,确定(1602)表是否保存任何块矢量候选;以及基于确定该表保存了至少一些块矢量候选,使用(1604)多个候选块矢量来执行转换。
[0408]
2.根据条款1的方法,还包括:基于确定表保存了零块矢量候选,通过在转换中省略块矢量预测的使用来执行转换。
[0409]
3.根据条款1-2的方法,还包括:基于用于视频区域的转换的编解码模式,选择性
地更新转换后的表。
[0410]
4.根据条款1-3中任一项的方法,其中每个候选块矢量包括一对整数,分别表示x方向上的块矢量和y方向上的块矢量。
[0411]
5.根据条款1-4中任一项的方法,其中该表被配置为保存多达n个块矢量,其中n是在编解码表示中预先指定或信令通知的整数。
[0412]
以下条款可以与在先前章节中列出的项目(例如,项目2)中描述的其他技术一起实施。
[0413]
6.根据条款1的方法,其中执行转换包括根据表中的候选块矢量确定预测块矢量。
[0414]
7.根据条款6的方法,其中编解码表示信令通知块矢量预测器和块矢量之间的差。
[0415]
8.根据条款6的方法,其中编解码表示信令通知索引到所述表中的、与所述块矢量预测器相对应的条目。
[0416]
以下条款可以与在先前章节中列出的项目(例如,项目3)中描述的其他技术一起实施。
[0417]
9.根据条款2的方法,其中在编解码表示中信令通知视频区域的块矢量的值。
[0418]
10.根据条款1的方法,还包括:基于确定表包含零块矢量候选,通过使用默认块矢量在转换中执行块矢量预测来执行转换。
[0419]
11.根据条款10的方法,其中默认块矢量是(0,0)。
[0420]
12.根据条款10的方法,其中默认块矢量是(-m,0),其中m是视频区域的宽度。
[0421]
以下条款可以与在先前章节中列出的项目(例如,项目4)中描述的其他技术一起实施。
[0422]
13.一种视频处理的方法,包括:对于视频的视频区域和视频区域的编解码表示之间的转换,通过将多个恒定块矢量添加到表中来初始化表;并使用某些块矢量执行转换。
[0423]
14.根据条款13的方法,其中索引为idx的恒定块矢量的值为(-m*idx,0),其中m为正整数。
[0424]
15.根据条款13的方法,其中索引为idx的恒定块矢量的值为(m*idx,0),其中m为正整数。
[0425]
16.根据条款13的方法,其中索引为idx的恒定块矢量的值为(0,-n*idx),其中n为正整数。
[0426]
以下条款可以与在先前章节中列出的项目(例如,项目5)中描述的其他技术一起实施。
[0427]
17.一种视频处理的方法,包括:对于视频的视频区域和视频的编解码表示之间的转换,确定到保存有n个块矢量候选的表的索引idx是idx≥n;以及基于确定,通过使用默认块矢量预测处理来执行转换。
[0428]
18.根据条款17的方法,其中默认块矢量预测处理将块矢量预测器设置为(0,0)值。
[0429]
19.根据条款17的方法,其中默认块矢量预测处理将块矢量预测器设置为(-m,0)值,其中m为正整数。
[0430]
20.根据条款17的方法,其中默认块矢量预测处理将块矢量预测器设置为(0,n)值,其中n为正整数
[0431]
以下条款可以与在先前章节中列出的项目(例如,项目6)中描述的其他技术一起实施。
[0432]
21.一种视频处理的方法,包括:使用指示先前使用的块矢量的块矢量值的表,在视频的视频区域的编解码表示与视频区域的像素值之间执行转换;其中编解码表示包括表示表中被考虑用于视频区域转换的索引的语法元素,其中用于语法元素的索引的二值化的最大值是先前考虑的用于添加到表或多个条目的多个块矢量的函数。
[0433]
22.根据条款21的方法,其中先前考虑用于添加到表的块矢量的数量等于在视频转换期间通过添加或删除条目来更新表的次数。
[0434]
23.根据条款21的方法,其中二值化的最大值是可用条目数的函数。
[0435]
24.根据条款23所述的方法,其中,可用条目数是以k为步长变化的计数器,其中,k是整数。
[0436]
以下条款可以与在先前章节中列出的项目(例如,项目7)中描述的其他技术一起实施。
[0437]
25.一种视频处理的方法,包括:对于视频的视频区域和视频区域的编解码表示之间的转换,确定块运动矢量预测器;以及通过修改块运动矢量预测器,生成修改的块运动矢量预测器;使用修改的块运动矢量预测器执行转换。
[0438]
26.根据条款25的方法,其中,通过将所述块矢量预测器修改为有效值来生成所述修改的块运动矢量预测器。
[0439]
27.根据条款25的方法,其中,通过将所述块矢量预测器修改为落入所述视频区域的编解码树单元内来生成所述修改的块运动矢量预测器。
[0440]
以下条款可以与在先前章节中列出的项目(例如,项目8)中描述的其他技术一起实施。
[0441]
28.一种视频处理的方法,包括:对于从视频的视频区域和视频区域的编解码表示之间的转换,从先前使用的块运动矢量表中选择块运动矢量预测器;以及使用所述块运动矢量预测器执行转换,其中,块运动矢量预测器是使用索引在编解码表示中信令通知的。
[0442]
29.根据条款28的方法,其中所述索引恰好对应于所述表中的一个条目。
[0443]
30.根据条款28-29中的任一项的方法,其中,使用所述块运动矢量预测器包括通过应用恒定差来使用所述块矢量预测器。
[0444]
31.根据条款30的方法,其中,所述编解码表示信令通知值不为零的恒定差。
[0445]
以下条款可以与在先前章节中列出的项目(例如,项目11)中描述的其他技术一起实施。
[0446]
32.一种视频处理的方法,包括:对于在视频的视频区域和视频区域的编解码表示之间的转换,在转换开始时重置表格;以及将该表的可用条目的指示设置为k,其中,k为整数;并在重置后使用该表执行转换。
[0447]
33.根据条款32的方法,其中k不等于零。
[0448]
34.根据条款32-33中的任一项的方法,其中,k基于在重置期间添加到所述表的多个默认候选。
[0449]
35.根据以上条款中任一项的方法,其中视频区域是视频的编解码单元。
[0450]
36.根据以上条款中任一项的方法,其中视频区域是视频的编解码树单元。
[0451]
37.根据条款1至36中任一项的方法,其中转换包括将视频编码为编解码表示。
[0452]
38.根据条款1至36中任一项的方法,其中,所述转换包括对所述编解码表示进行解码以生成所述视频的像素值。
[0453]
39.一种视频解码装置,包括处理器,该处理器被配置为实现条款1至38中一个或多个所述的方法。
[0454]
40.一种视频编解码装置,包括处理器,该处理器被配置为实施条款1至38中的一项或多项所述的方法。
[0455]
41.一种其上存储有计算机代码的计算机程序产品,该代码在由处理器执行时使处理器实现条款1至38中任一条款的方法。
[0456]
42.本文档中描述的方法、装置或系统。
[0457]
第二组条款描述了先前部分中所公开技术的某些特征和方面,例如,项目1、2、4、5和9-12。
[0458]
1.一种视频处理方法(例如,图18a所示的方法1810),包括:对于视频的当前图片的当前视频块和视频的编解码表示之间的转换,根据规则构建(1812)基于历史的运动矢量预测器(hmvp)表,以及使用hmvp表执行(1814)转换,其中,使用表示当前视频块和当前图片中用于预测当前视频块的区域之间的位移的块矢量,以编解码表示对当前视频块进行编解码;其中,规则指定构建使用hmvp表中先前处理的视频块的块矢量信息。
[0459]
2.根据条款1的方法,其中,规则指定hmvp表的每个条目仅包含一对整数bvx和bvy,其分别表示沿x方向和y方向的块矢量。
[0460]
3.根据条款1的方法,其中,规则指定hmvp表的每个条目表示具有整数精度的块矢量。
[0461]
4.根据条款1的方法,其中,规则指定hmvp表包括n个块矢量候选,其中,n为1、2、3、4、5、6或8。
[0462]
5.根据条款4的方法,其中,规则指定n是在编解码表示中信令通知的、或基于解码信息导出的整数。
[0463]
6.根据条款1的方法,还包括:维护附加的基于历史的运动矢量预测器(hmvp)表,其中hmvp表或附加的hmvp表中的至少一个仅包括块矢量,而不包括参考所述当前图片以外的参考图片的运动矢量。
[0464]
7.一种视频处理方法(例如,图18b所示的方法1820),包括:对于视频的当前图片的当前视频块和视频的编解码表示之间的转换,根据基于历史的运动矢量预测(hmvp)表中的一个或多个条目,确定(1822)块矢量预测器,一个或多个条目对应于来自一个或多个先前处理的块的一个或多个块矢量候选;以及基于确定执行(1824)转换,其中,使用表示在当前视频块和当前图片中用于预测当前视频块的区域之间的位移的块矢量,以编解码表示对当前视频块进行编解码。
[0465]
8.根据条款7的方法,其中,编解码表示包括:(bvx-bvpx,bvy-bvpy),其中,bvx和bvy分别表示沿x方向和y方向的块矢量,并且bvpx和bvpy分别表示沿x方向和y方向的块矢量预测。
[0466]
9.根据条款7的方法,其中,编解码表示包括与对应于块矢量预测器的hmvp表中的条目的索引。
[0467]
10.一种视频处理方法(例如,图18c所示的方法1830),包括:对于视频的当前视频块和视频的编解码表示之间的转换,确定(1832)要剪切使用基于历史的运动矢量预测(hmvp)表导出的块矢量或运动时会亮,基于历史的运动矢量预测(hmvp)表包括对应于来自一个或多个先前处理的块的运动信息的一个或多个条目;以及基于确定执行(1834)转换。
[0468]
11.根据条款10的方法,其中,运动矢量被剪切到可允许的运动矢量范围。
[0469]
12.根据条款11的方法,其中,可允许的运动矢量范围是[-32768,32767]。
[0470]
13.一种视频处理方法(例如,图18d所示的方法1840),包括:对于视频的当前图片的当前视频块和视频的编解码表示之间的转换,做出(1842)当前视频块的基于历史的运动矢量预测器(hmvp)表不包括用于预测块矢量的任何条目的第一确定,块矢量表示当前视频块和当前图片中用于预测当前视频块的区域之间的位移;基于第一确定和规则,做出(1844)关于将块矢量用于当前视频块的转换的第二确定;以及根据第一确定和第二确定执行(1846)转换。
[0471]
14.根据条款13的方法,其中,规则指定省略块矢量的预测。
[0472]
15.根据条款14的方法,其中,编解码表示不包括hmvp表的索引。
[0473]
16.根据条款13的方法,其中,规则指定在编解码表示中直接信令通知块矢量。
[0474]
17.根据条款13的方法,其中,规则指定使用默认块矢量来预测块矢量。
[0475]
18.根据条款17的方法,其中,默认块矢量具有与(0,0),(-m,0)或(0,-n)相对应的值,其中,m是正整数,且n是正整数。
[0476]
19.根据条款17的方法,其中,规则基于hmvp表中的条目的数量来指定对默认块矢量的使用。
[0477]
20.一种视频处理方法(例如,图18e所示的方法1850),包括:对于视频的当前图片的当前视频块和视频的编解码表示之间的转换,确定(1852)用于块矢量预测的块运动矢量预测器;通过修改块运动矢量预测器来生成(1854)修改的块运动矢量预测器;和使用修改的块运动矢量预测器来执行(1856)转换,其中,块矢量预测预测表示当前视频块和当前图片中用于预测当前视频块的区域之间的位移的块矢量。
[0478]
21.根据条款20的方法,其中,通过将块矢量预测器修改为有效值来生成修改的块运动矢量预测器。
[0479]
22.根据条款21的方法,其中,在所生成的块运动矢量预测器具有无效值的情况下,所生成的块运动矢量预测器不用于块矢量预测。
[0480]
23.根据条款20的方法,其中,通过将块矢量预测器修改为落入当前视频块的编解码树单元内来生成修改的块运动矢量预测器。
[0481]
24.根据条款23的方法,其中,生成修改的块矢量预测器(bvpmx,bvpmy),使得bvpmx=clip3(xcb/ctbsize*ctbsize,xcb/ctbsize*ctbsize+ctbsize,xcb+bvpx)-xcb,并且bvpmy=clip3(ycb/ctbsize*ctbsize,ycb/ctbsize*ctbsize+ctbsize,ycb+bvpy)

ycb,其中xcb和ycb分别表示当前视频块在x方向和y方向上的样点位置,bvpx和bvpy表示分别在x方向和y方向上块矢量预测器,将clip3(min,max,x)定义为clip3(min,max,x)=x《min?min:(x》max?max:x),且ctbsize表示视频的编解码树单元或编解码树块的宽度和/或高度。
[0482]
25.根据条款20的方法,其中,将bvt=f(bv1,bv2,

,bvn)用作块矢量预测,其中,bv1,bv2,

,bvn是基于历史的运动矢量预测(hmvp)表中的条目,f是函数,n是大于0的整
数。
[0483]
26.一种视频处理方法(例如,图18f所示的方法1860),包括:对于视频的当前图片的当前视频块和当前视频块的编解码表示之间的转换,确定(1862)用于根据基于历史的运动矢量预测(hmvp)表来预测块矢量的块运动矢量预测器,基于历史的运动矢量预测(hmvp)表包括先前处理的视频块的运动矢量信息;以及使用块运动矢量预测器来执行(1864)转换,其中,使用表示当前视频块和当前图片中用于预测当前视频块的区域之间的位移的块矢量,以编解码表示对当前视频块进行编解码。
[0484]
27.根据条款26的方法,其中,编解码表示包括指示块运动矢量预测器的索引。
[0485]
28.根据条款27的方法,其中,索引恰好对应于hmvp表中的一个条目。
[0486]
29.根据条款27的方法,其中,索引具有等于n-1的最大值,其中,n是指示hmvp表的可用条目的数量的整数。
[0487]
30.根据条款29的方法,还包括,在索引大于n-1的情况下确定使用默认块矢量进行转换。
[0488]
31.根据条款26的方法,其中,将恒定块矢量差应用于hmvp表的条目。
[0489]
32.根据条款26的方法,其中,编解码表示包括指示是否存在非零块矢量差的指示。
[0490]
33.根据条款26的方法,其中,编解码表示包括值非零的块矢量差。
[0491]
34.根据条款32的方法,其中,确定块运动矢量取决于表示是否存在非零的块矢量差的指示。
[0492]
35.根据条款1至34中任一项的方法,其中,方法还取决于视频的编解码信息来执行。
[0493]
36.根据条款1至35中任一项的方法,其中,转换是根据在序列级别、图片级别、条带级别、片组级别、片级别、编解码树单元行级别、编解码树单元级别信令通知的信息来执行的。
[0494]
37.根据条款1至36中任一项的方法,其中,执行转换包括从当前视频块生成编解码表示。
[0495]
38.根据条款1至36中任一项的方法,其中,执行转换包括从编解码表示生成当前视频块。
[0496]
39.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中,指令在由处理器执行时使处理器实现条款1至38中的任一项的方法。
[0497]
40.一种存储在非暂时性计算机可读介质上的计算机程序产品,计算机程序产品包括用于执行条款1至38中的任一项的方法的程序代码。
[0498]
第三组条款描述了在先前部分中所公开技术的某些特征和方面,例如,项目3、8和13。
[0499]
1.一种视频处理方法(例如,图19a中所示的方法1910),包括:在包括视频块的视频和视频的编解码表示之间执行(1912)转换;其中,编解码表示符合格式规则,其中,格式规则指定通过共享相同的上下文来执行使用块矢量(bv)预测模式编解码的第一视频块的块矢量预测器(bvp)索引的上下文自适应编解码和用于编解码第二视频块的帧间模式编解码的索引;其中,bvp索引指向基于历史的运动矢量预测器列表中的条目,该基于历史的运
动矢量预测器列表用于为第一视频块生成块矢量预测器。
[0500]
2.根据条款1的方法,其中格式规则还指定上下文自适应编解码使用前k个上下文对merge索引进行编解码。
[0501]
3.根据条款1的方法,其中格式规则还指定上下文自适应编解码使用最后的k个上下文对merge索引进行编解码。
[0502]
4.一种视频处理方法(例如,图19a中所示的方法1910),包括:在包括视频块的视频和视频的编解码表示之间执行(1912)转换;其中,所述编解码表示符合格式规则,其中,所述格式规则指定:独立于用于对在第二视频块中使用的帧间模式编解码的索引进行编解码的上下文,执行使用块矢量(bv)预测模式编解码的第一视频块的块矢量预测器(bvp)索引的上下文自适应编解码;其中,bvp索引指向基于历史的运动矢量预测器列表中的条目,该基于历史的运动矢量预测器列表用于为第一视频块生成块矢量预测器。
[0503]
5.一种视频处理的方法(例如,图19a中所示的方法1910),包括:在视频的当前图片的当前视频块和视频的编解码表示之间执行(1912)转换,其中,使用块矢量在编解码表示中对当前视频块进行编解码,该块矢量表示当前视频块和当前图片中用于预测当前视频块的区域之间的位移,其中,使用基于历史的运动矢量预测(hmvp)表执行转换,该基于历史的运动矢量预测(hmvp)表包含一个或多个先前使用的块矢量;其中,编解码表示包括语法元素,该语法元素表示应用于当前视频块的hmvp表中条目的索引,其中,根据规则确定索引的二值化的最大值。
[0504]
6.根据条款5的方法,其中,该规则指定将索引的二值化的最大值确定为:i)先前考虑用于添加到hmvp表的块矢量的数量的函数,ii)hmvp表中的可用条目的数量,或iii)固定数量。
[0505]
7.根据条款6的方法,其中先前考虑用于添加到hmvp表的块矢量的数量等于在视频转换期间通过添加或删除条目来更新hmvp表的次数。
[0506]
8.根据条款6的方法,其中索引的二值化取决于先前考虑用于添加到hmvp表的块矢量的数量。
[0507]
9.根据条款6的方法,其中先前考虑用于添加到hmvp表的块矢量的数量对应于计数器值cnt,该计数器值是通过对已经考虑将块矢量添加到hmvp表的次数进行计数而获得的。
[0508]
10.根据条款9的方法,其中在对视频的ibc(帧间块复制)编解码块进行解码之后,计数器值改变k,其中k为整数。
[0509]
11.根据条款9的方法,其中在hmvp表不包含任何条目的情况下,将计数器值重置为0。
[0510]
12.根据条款9的方法,其中在编解码新的视频单元之前重置计数器值。
[0511]
13.根据条款6的方法,其中索引的二值化的最大值是min(计数器,len),其中计数器对应于计数器值cnt,该计数器值是通过对已经考虑将块矢量添加到hmvp表的次数进行计数而获得的,len表示hmvp表的最大尺寸。
[0512]
14.一种视频处理的方法(例如,图19b中所示的方法1920),包括:对于在视频的当前视频区域和视频的编解码表示之间的转换,重置(1922)基于历史的运动矢量预测(hmvp)表,基于历史的运动矢量预测(hmvp)表包括一个或多个先前使用的块矢量,其中,重置包括
将hmvp表的可用条目的指示设置为k,其中,k是不等于零的整数;并使用hmvp表执行(1924)转换。
[0513]
15.根据条款14的方法,其中k基于重置期间添加到表中的默认候选数。
[0514]
16.根据条款14的方法,其中k基于hmvp表中候选的最大数量。
[0515]
17.根据条款1至16中任一项的方法,其中执行转换包括从视频生成编解码表示。
[0516]
18.根据条款1至16中任一项的方法,其中执行转换包括从编解码表示生成视频。
[0517]
19.一种视频处理装置,包括处理器,该处理器被配置为实现条款1至18中的任一个或多个所述的方法。
[0518]
20.一种存储程序代码的计算机可读介质,该程序代码在执行时使处理器执行条款1至18中任一项或多项所述的方法。
[0519]
第四组条款描述了在先前章节中公开的技术的某些特征和方面,例如,项目6和7。
[0520]
1.一种视频处理的方法(例如,图20中所示的方法2000),包括:对于视频的当前视频块和视频的编解码表示之间的转换,将多个恒定块矢量应用于表来初始化表,该表包括先前处理的视频块的运动矢量信息;并使用该表执行转换。
[0521]
2.根据条款1的方法,其中该表是基于历史的运动矢量预测器(hmvp)表。
[0522]
3.根据条款1的方法,其中索引为idx的恒定块矢量的值为(-m*idx,0),其中m为正整数。
[0523]
4.根据条款1的方法,其中索引为idx的恒定块矢量的值为(m*idx,0),其中m为正整数。
[0524]
5.根据条款1的方法,其中索引为idx的恒定块矢量的值为(0,-n*idx),其中n为正整数。
[0525]
6.根据条款3-5中的任一项的方法,其中m和/或n是预定义的或在视频的视频单元之间自适应改变的。
[0526]
7.根据条款3-5中任一项的方法,其中m和/或n取决于视频的编解码信息。
[0527]
8.根据条款1的方法,其中多个恒定块矢量为(0,-16)、(0,-12)、(0,-8)、(0,-4)、(-16,0)、(-12,0)、(-8,0)、(-4,0)。
[0528]
9.根据条款1的方法,其中,进一步包括:针对某个索引将表的条目初始化为恒定块矢量。
[0529]
10.根据条款1的方法,其中在对序列、图片、条带、片组、片、砖块、子图片、编解码树单元行、编解码树单元进行编码或解码之前执行表的初始化。
[0530]
11.一种视频处理的方法(例如,图19a中所示的方法1910),包括:根据规则执行(1912)在视频的当前图片的当前视频块与视频的编解码表示之间的转换,其中使用块矢量以编解码表示对当前视频块进行编解码,该块矢量表示当前视频块和当前图片中用于预测当前视频块的区域之间的位移;其中,编解码表示中包括语法元素,该语法元素指示到用于转换的基于历史的运动矢量预测器(hmvp)列表的索引,并且其中,该规则指定在由语法元素指示的索引不小于hmvp列表中的条目数时,将默认处理用于确定块矢量的预测。
[0531]
12.根据条款11的方法,其中在由语法元素指示的索引不小于hmvp列表中的条目数的情况下,该规则指定将块矢量的预测确定为(0,0)。
[0532]
13.根据条款11的方法,其中在由语法元素指示的索引不小于hmvp列表中的条目
数的情况下,该规则指定将块矢量的预测确定为(-m,0),其中m是指示当前块的宽度的正整数。
[0533]
14.根据条款11的方法,其中在由语法元素指示的索引不小于hmvp列表中的条目数的情况下,该规则指定将块矢量的预测确定为(m,0),其中m是指示当前块宽度的正整数。
[0534]
15.根据条款11的方法,其中在由语法元素指示的索引不小于hmvp列表中的条目数的情况下,该规则指定将块矢量的预测确定为(0,-n),其中n是指示当前块的高度的正整数。
[0535]
16.根据条款11的方法,其中默认处理使用默认的预测模式。
[0536]
17.根据条款1至16中任一项的方法,其中执行转换包括从当前视频块生成编解码表示。
[0537]
18.根据条款1至16中任一项的方法,其中执行转换包括从编解码表示生成当前视频块。
[0538]
19.一种视频处理装置,包括处理器,该处理器被配置为实现条款1至18中的任一个或多个的方法。
[0539]
20.一种存储程序代码的计算机可读介质,该程序代码在被执行时使处理器实现条款1至18中任一项或多项所述的方法。
[0540]
本文中描述的所公开的和其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路或计算机软件、固件或硬件中实现,包括本文中公开的结构及其结构等效物,或者一个或多个的组合。所公开的实施例和其他实施例可以实现为一个或多个计算机程序产品,即在计算机可读介质上编码以供数据处理设备执行或控制其操作的计算机程序指令的一个或多个模块。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质的组合,或者一个或多个它们的组合。术语“数据处理设备”包括用于处理数据的所有设备、装置和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除硬件外,设备还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或其中一个或多个的组合的代码。传播的信号是人为生成的信号,例如,机器生成的电、光或电磁信号,其被生成以编码信息以传输到合适的接收器设备。
[0541]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标志语言文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
[0542]
本说明书中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0543]
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数
字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动硬盘;磁光盘;以及cd rom和dvd rom盘。处理器和存储器可以由专用逻辑电路来补充,或merge到专用逻辑电路中。
[0544]
虽然本专利文件包含许多细节,但不应将其解释为对任何主题或权利要求范围的限制,而应解释为对某些技术的某些实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中移除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
[0545]
同样,尽管附图中以某些顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的某些顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
[0546]
仅描述了一些实现和示例,其他实现、增强和变体可以基于本专利文件中描述和说明的内容做出。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1