本文作者:kaifamei

视频编解码中的运动矢量细化的制作方法

更新时间:2024-11-15 15:36:27 0条评论

视频编解码中的运动矢量细化的制作方法


视频编解码中的运动矢量细化
1.本技术是2020年3月11日递交的中国专利申请第202080020813.0号的分案申请。
技术领域
2.本专利文档涉及视频编解码技术、设备和系统。


背景技术:



3.目前,正在努力提高当前视频编解码器技术的性能,以提供更好的压缩率或提供允许更低复杂度或并行实施的视频编解码和解码方案。行业专家最近提出了几种新的视频编解码工具,并且目前正在进行测试以用于确定它们的有效性。


技术实现要素:



4.描述了与数字视频编解码相关,并且具体地,与运动矢量的管理相关的设备、系统和方法。所描述的方法可以被应用于现有的视频编解码标准(例如,高效视频编解码(high efficiency video coding,hevc)或通用视频编解码)和未来的视频编解码标准或视频编解码器。
5.在一个代表性方面,所公开的技术可以用于执行一种可视媒体处理的方法。该方法包括:执行当前视频块和当前视频块的比特流表示之间的转换,其中,该转换包括用于细化在比特流表示中信令通知的运动信息的解码器运动矢量细化(dmvr)步骤;以及在dmvr步骤期间,使用至少一个运动矢量作为用于该细化的起始值,其中,至少一个运动矢量等于添加到候选运动矢量集合中的候选运动矢量的偏移。
6.在另一个代表性方面,所公开的技术可以用于执行另一种可视媒体处理的方法。该方法包括:执行当前视频块和当前视频块的比特流表示之间的转换,其中,该转换包括使用以下中的一个或多个:解码器运动矢量细化(dmvr)步骤、双向光流(bdof)步骤或组合帧内-帧间预测步骤,并且其中,dmvr步骤、bdof步骤和组合帧内-帧间预测步骤的共存至少基于当前视频块的大小。
7.在又一个代表性方面,所公开的技术可以用于执行另一种可视媒体处理的方法。该方法包括:执行当前视频块和当前视频块的比特流表示之间的转换,其中,该转换包括解码器运动矢量细化(dmvr)步骤,该dmvr步骤用于细化在比特流表示中信令通知的原始运动信息,从而产生可用于去方块步骤中的细化的运动信息;以及为当前视频块的至少一个子集块计算细化的运动信息和原始运动信息的差。
8.在另一个代表性方面,所公开的技术可以用于执行另一种可视媒体处理的方法。该方法包括:基于与视频的第一块相关联的merge候选的一个或多个运动矢量(mv)和一个或多个偏移,为视频的第一块和视频的第一块的比特流表示之间的转换推导要在该转换期间被应用的解码器侧运动矢量细化(dmvr)过程中的初始搜索点;以及基于初始搜索点来执行该转换。
9.在另一个代表性方面,所公开的技术可以用于执行另一种可视媒体处理的方法。
该方法包括:基于预定规则,为视频的第一块和视频的第一块的比特流表示之间的转换确定解码器运动矢量细化(dmvr)过程、双向光流(bdof)过程和组合帧内-帧间预测过程中的至少一个被禁用;以及基于该确定来执行该转换。
10.在另一个代表性方面,所公开的技术可以用于执行另一种可视媒体处理的方法。该方法包括:为视频的第一块和视频的第一块的比特流表示之间的转换推导与第一块相关联的运动矢量(mv),该mv通过应用解码器侧运动矢量细化(dmvr)过程进行细化;在去方块过程中通过使用细化的mv来执行该转换。
11.在另一个代表性方面,所公开的技术可以用于执行另一种可视媒体处理的方法。该方法包括:为视频的第一块和视频的第一块的比特流表示之间的转换计算与第一块的每个基本块相关联的、细化的运动矢量(mv)(rmv)和非细化的mv(nmv)之间的mv差(dmv),rmv是通过应用解码器侧运动矢量细化(dmvr)过程而细化的运动矢量,nmv是未通过dmvr过程细化的运动矢量;以及通过使用计算的mv差来执行该转换。
12.此外,在代表性方面,公开了一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器。指令在由处理器执行时使处理器实施所公开的方法中的任何一种或多种。
13.此外,公开了一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行所公开的方法中的任何一种或多种的程序代码。
14.在附图、说明书和权利要求书中更详细地描述了所公开的技术的以上以及其它方面和特征。
附图说明
15.图1示出了构建merge候选列表的示例。
16.图2示出了空域候选的位置的示例。
17.图3示出了对其进行空域merge候选的冗余检查的候选对的示例。
18.图4a和图4b示出了基于当前块的尺寸和形状的第二预测单元(prediction unit,pu)的位置的示例。
19.图5示出了用于时域merge候选的运动矢量缩放的示例。
20.图6示出了时域merge候选的候选位置的示例。
21.图7示出了生成组合的双向预测merge候选的示例。
22.图8示出了构建运动矢量预测候选的示例。
23.图9示出了用于空域运动矢量候选的运动矢量缩放的示例。
24.图10示出了用于推导局部照明补偿参数邻近样点的示例。
25.图11a和图11b分别示出了与4参数仿射模型和6参数仿射模型有关的图示。
26.图12示出了每个子块的仿射运动矢量场的示例。
27.图13a和图13b分别示出了4参数仿射模型和6参数仿射模型的示例。
28.图14示出了用于继承的仿射候选的仿射帧间模式的运动矢量预测的示例。
29.图15示出了用于构建的仿射候选的仿射帧间模式的运动矢量预测的示例。
30.图16a和图16b示出了与仿射merge模式有关的图示。
31.图17示出了仿射merge模式的候选位置的示例。
32.图18示出了具有运动矢量差的merge(mmvd)模式搜索过程的示例。
33.图19示出了mmvd搜索点的示例。
34.图20示出了jem7中的解码器侧运动视频细化(dmvr)的示例。
35.图21示出了与dmvr有关的运动矢量差(mvd)的示例。
36.图22示出了说明对运动矢量的检查的示例。
37.图23是用于实施在本文档中描述的可视媒体解码或可视媒体编码技术的硬件平台的示例的框图。
38.图24示出了用于视频编解码的示例方法的流程图。
39.图25示出了用于视频编解码的示例方法的流程图。
40.图26示出了用于视频编解码的示例方法的流程图。
41.图27示出了用于视频编解码的示例方法的流程图。
42.图28示出了用于视频编解码的示例方法的流程图。
具体实施方式
43.1.hevc/h.265中的视频编解码
44.视频编解码标准主要是通过众所周知的itu-t和iso/iec标准的发展而演变的。itu-t产生了h.261和h.263,iso/iec产生了mpeg-1和mpeg-4visual,并且这两个组织联合产生了h.262/mpeg-2视频和264/mpeg-4高级视频编解码(advanced video coding,avc)标准和h.265/hevc标准。自h.262以来,视频编解码标准基于混合视频编解码结构,其中利用了时域预测加变换编解码。为了探索hevc以外的未来的视频编解码技术,vceg和mpeg于2015年联合成立了联合视频探索小组(joint video exploration team,jvet)。此后,jvet采用了许多新方法,并将其放入到命名为联合探索模型(joint exploration model,jem)的参考软件中。2018年4月,建立了vceg(q6/16)和iso/iec jtc1 sc29/wg11(mpeg)之间的联合视频专家小组(joint video expert team,jvet)以致力于vvc标准,目标是与hevc相比的50%比特率降低。
45.2.1.hevc/h.265中的帧间预测
46.每个帧间预测pu具有一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。对两个参考图片列表之一的使用也可以使用inter_pred_idc进行信令通知。运动矢量可以被显示地编解码为相对于预测值的增量。
47.当以跳过模式对cu进行编解码时,一个pu与cu相关联,并且没有显著的残差系数,没有编解码的运动矢量增量或参考图片索引。指定了merge模式,由此从包括空域和时域候选的邻近pu获得当前pu的运动参数。merge模式可以被应用于任何帧间预测pu,而不仅是针对跳过模式。merge模式的替代方案是运动参数的显式传输,其中,运动矢量(更确切地说,与运动矢量预测值相比的运动矢量差(motion vector difference,mvd))、每个参考图片列表的对应参考图片索引和参考图片列表使用按每pu被显式地信令通知。这样的模式在本公开中被命名为高级运动矢量预测(advanced motion vector prediction,amvp)。
48.当信令指示要使用两个参考图片列表之一时,从一个样点块产生pu。这被称为“单向预测”。单向预测适用于p条带和b条带两者。
49.当信令指示要使用两个参考图片列表时,从两个样点块产生pu。这被称为“双向预
测”。双向预测仅适用于b条带。
50.以下文本提供了关于在hevc中指定的帧间预测模式的细节。描述将以merge模式开始。
51.2.1.1.参考图片列表
52.在hevc中,术语帧间预测用于表示从除当前解码的图片之外的参考图片的数据元素(例如,样点值或运动矢量)推导的预测。如在h.264/avc中,可以从多个参考图片预测图片。用于帧间预测的参考图片被组织在一个或多个参考图片列表中。参考索引标识列表中的哪个参考图片应该用于创建预测信号。
53.单个参考图片列表(列表0)用于p条带,并且两个参考图片列表(列表0和列表1)用于b条带。应该注意的是,列表0/1中包括的参考图片在捕捉/显示顺序方面可以根据过去和将来的图片。
54.2.1.2.merge模式
55.2.1.2.1.merge模式的候选的推导
56.当使用merge模式预测pu时,从比特流中解析指向merge候选列表中的条目的索引,并将其用于检索运动信息。该列表的构建在hevc标准中被指定,并且可以根据以下步骤序列进行总结:
57.·
步骤1:初始候选推导
58.ο步骤1.1:空域候选推导
59.ο步骤1.2:空域候选的冗余检查
60.ο步骤1.3:时域候选推导
61.·
步骤2:附加候选插入
62.ο步骤2.1:创建双向预测候选
63.ο步骤2.2:插入零运动候选
64.在图1中也示意性描绘了这些步骤。对于空域merge候选推导,从位于五个不同位置的候选当中选择最多四个merge候选。对于时域merge候选推导,在两个候选当中选择最多一个merge候选。由于在解码器处假设每个pu的候选数量是恒定的,所以在从步骤1获得的候选数量没有达到在条带头中信令通知的merge候选的最大数量(maxnummergecand)时生成附加候选。由于候选数量是恒定的,所以最佳merge候选的索引使用截断一元二值化(truncated unary,tu)进行编码。如果cu的尺寸等于8,则当前cu的所有pu共享单个merge候选列表,这与2n
×
2n预测单元的merge候选列表相同。
65.在下文中,详细描述了与前述步骤相关联的操作。
66.2.1.2.2.空域候选推导
67.在空域merge候选的推导中,从位于图2中描绘的位置的候选当中选择最多四个merge候选。推导的顺序是a1、b1、b0、a0和b2。仅当位置a1、b1、b0、a0的任一pu不可用(例如,因为它属于另一条带或片)或是帧内编解码的时,才考虑位置b2。在位置a1处的候选被添加之后,对剩余候选的添加进行冗余检查,该冗余检查确保具有相同运动信息的候选被排除在列表之外,从而提高编解码效率。为了降低计算复杂度,在提到的冗余检查中不考虑所有可能的候选对。相反,仅考虑在图3中用箭头链接的对,并且仅当用于冗余检查的候选没有相同的运动信息时,才向列表添加对应候选。重复运动信息的另一源是与不同于2n
×
2n的
分区相关联的“第二pu”。作为示例,图4描绘了n
×
2n和2n
×
n的情况的第二pu。当当前pu被分割为n
×
2n时,位置a1处的候选不被考虑用于列表构建。事实上,通过添加该候选将导致两个预测单元具有相同的运动信息,这对于在编解码单元中仅具有一个pu是冗余的。类似地,当当前pu被分割为2n
×
n时,不考虑位置b1。
68.2.1.2.3.时域候选推导
69.在该步骤中,只有一个候选被添加到列表中。具体地,在该时域merge候选的推导中,基于属于与给定参考图片列表内的当前图片具有最小poc差的图片的并置pu来推导缩放的运动矢量。在条带头中显示地信令通知将用于并置pu的推导的参考图片列表。如图5中的虚线所示获得时域merge候选的缩放运动矢量,该运动矢量是使用poc距离tb和td从并置pu的运动矢量缩放的,其中tb被定义为当前图片的参考图片和当前图片之间的poc差,td被定义为并置图片的参考图片和并置图片之间的poc差。时域merge候选的参考图片索引被设置为零。在hevc规范中描述了缩放过程的实际实现。对于b条带,获得两个运动矢量,一个用于参考图片列表0,另一个用于参考图片列表1,并将其组合以形成双向预测merge候选。
70.如图6所描绘的,在属于参考帧的并置pu(y)中,在候选c0和c1之间选择时域候选的位置。如果位置c0处的pu不可用、是帧内编解码的或在当前编解码树单元(ctu,也称为lcu,最大编解码单元)行之外,则使用位置c1。否则,在时域merge候选的推导中使用位置c0。
71.2.1.2.4.附加候选插入
72.除了空时merge候选之外,还有两种附加类型的merge候选:组合的双向预测merge候选和零merge候选。组合的双向预测merge候选通过利用空时merge候选而生成。组合的双向预测merge候选仅用于b条带。组合的双向预测候选通过将初始候选的第一参考图片列表运动参数与另一个的第二参考图片列表运动参数进行组合而生成。如果这两个元组提供不同的运动假设,它们将形成新的双向预测候选。作为示例,图7描绘了原始列表(在左侧)中的具有mvl0和refidxl0或mvl1和refidxl1的两个候选用于创建添加到最终列表(在右侧)的组合的双向预测merge候选的情况。有被考虑以生成这些附加merge候选的关于组合的许多规则。
73.零运动候选被插入以填充merge候选列表中的剩余条目,并因此达到maxnummergecand容量。这些候选具有零空域位移和参考图片索引,该参考图片索引从零开始,并且每当新的零运动候选被添加到该列表时就增加。最后,不对这些候选执行冗余检查。
74.2.1.3.amvp
75.amvp利用运动矢量与邻近pu的空时相关性,其用于运动参数的显式传输。对于每个参考图片列表,通过首先检查左侧、上侧时域邻近pu位置的可用性、移除冗余候选、以及添加零矢量以使候选列表为恒定长度,构建运动矢量候选列表。然后,编码器可以从候选列表选择最佳预测值,并发送指示所选择的候选的对应索引。类似于merge索引信令,最佳运动矢量候选的索引使用截断一元编码。在这种情况下,要编码的最大值是2(参见图8)。在以下章节中,提供了关于运动矢量预测候选的推导过程的细节。
76.2.1.3.1.amvp候选的推导
77.图8总结了运动矢量预测候选的推导过程。
78.在运动矢量预测中,考虑两种类型的运动矢量候选:空域运动矢量候选和时域运
动矢量候选。对于空域运动矢量候选推导,基于位于如图2所描绘的五个不同位置的每个pu的运动矢量来最终推导两个运动矢量候选。
79.对于时域运动矢量候选推导,从两个候选选择一个运动矢量候选,这两个候选是基于两个不同的并置位置而推导的。在生成第一个空时候选列表之后,移除列表中的重复运动矢量候选。如果潜在候选的数量大于2,则从相关联的参考图片列表移除列表内参考图片索引大于1的运动矢量候选。如果空时运动矢量候选的数量小于两个,则将附加的零运动矢量候选添加到列表中。2.1.3.2.空域运动矢量候选
80.在空域运动矢量候选的推导中,在五个潜在候选当中考虑最多两个候选,这五个潜在候选是从位于如图2所描绘的位置的pu推导的,这些位置与运动merge的位置相同。当前pu左侧的推导顺序被定义为a0、a1和缩放的a0、缩放的a1。当前pu的上侧的推导顺序被定义为b0、b1、b2、缩放的b0、缩放的b1、缩放的b2。因此,对于每一侧,有四种情况可以用作运动矢量候选,其中两种情况不需要使用空域缩放,两种情况使用空域缩放。这四种不同的情况总结如下:
81.·
无空域缩放
82.–
(1)相同的参考图片列表和相同的参考图片索引(相同的poc)
83.–
(2)不同的参考图片列表但相同的参考图片(相同的poc)
84.·
空域缩放
85.–
(3)相同的参考图片列表但不同的参考图片(不同的poc)
86.–
(4)不同的参考图片列表和不同的参考图片(不同的poc)
87.首先检查无空域缩放情况,随后检查空域缩放。不管参考图片列表如何,当邻近pu的参考图片和当前pu的参考图片之间的poc不同时,考虑空域缩放。如果左侧候选的所有pu都不可用或者是帧内编解码的,则允许对上侧运动矢量进行缩放,以帮助左侧和上侧mv候选的并行推导。否则,不允许对上侧运动矢量进行空域缩放。
88.如图9所描绘的,在空域缩放过程中,以与时域缩放类似的方式缩放邻近pu的运动矢量。主要差别在于,参考图片列表和当前pu的索引作为输入被给出;实际缩放过程与时域缩放的缩放过程相同。
89.2.1.3.3.时域运动矢量候选
90.除了参考图片索引推导之外,用于推导时域merge候选的所有过程与用于推导空域运动矢量候选的过程相同(参见图6)。参考图片索引被信令通知给解码器。
91.2.2.jem中的局部照明补偿
92.局部照明补偿(lic)基于照明变化的线性模型,使用缩放因子a和偏移b。并且其对每个帧间模式编解码的编解码单元(cu)而自适应地启用或禁用。
93.当lic应用于cu时,采用最小二乘法通过使用当前cu的邻近样点及其对应的参考样点来推导参数a和b。更具体地,如图10所示,使用参考图片中的cu的二次采样的(2:1二次采样)邻近样点和对应样点(由当前cu或子cu的运动信息标识)。
94.2.2.1预测块的推导
95.分别对每个预测方向推导和应用lic参数。对于每个预测方向,利用解码的运动信息生成第一预测块,然后经由应用lic模型获得临时预测块。之后,利用两个临时预测块来推导最终预测块。
96.当以merge模式对cu进行编解码时,以类似于merge模式中的运动信息复制的方式,从邻近块复制lic标志;否则,lic标志被信令通知给cu以指示lic是否适用。
97.当对图片启用lic时,需要附加的cu级别rd检查来确定lic是否适用于cu。当对cu启用lic时,绝对差的均值移除和(mean-removed sum of absolute difference,mr-sad)和绝对哈达玛变换差的均值移除和(mean-removed sum of absolute hadamard-transformed difference,mr-satd),而不是sad和satd,被分别用于整数像素运动搜索和分数像素运动搜索。
98.为了降低编码复杂度,在jem应用以下编码方案:
99.·
当当前图片与其参考图片之间没有明显的照明变化时,对整个图片禁用lic。为了标识这种情况,在编码器处计算当前图片和当前图片的每个参考图片的直方图。如果当前图片和当前图片的每个参考图片之间的直方图差小于给定阈值,则对当前图片禁用lic;否则,对当前图片启用lic。
100.2.3.vvc中的帧间预测方法
101.有几种用于帧间预测改进的新编解码工具,诸如用于信令通知mvd的自适应运动矢量差分辨率(adaptive motion vector difference resolution,amvr)、仿射预测模式、三角预测模式(triangular prediction mode,tpm)、高级tmvp(atmvp,也称为sbtmvp)、广义双向预测(generalized bi-prediction,gbi)、双向光流(bio)(也称为双向光流(bdof))。
102.2.3.1.vvc中的编解码块结构
103.在vvc中,采用四叉树/二叉树/多叉树(qt/bt/tt)结构将图片分成正方形或矩形块。除了qt/bt/tt之外,独立树(也称为双重编解码树)在vvc中也用于i条带/片。对于独立树,编解码块结构是针对亮度和度分量而分开信令通知的。
104.2.3.2.自适应运动矢量差分辨率
105.在hevc中,当条带头中use_integer_mv_flag等于0时,以四分之一亮度样点为单位信令通知(pu的运动矢量和预测运动矢量之间的)运动矢量差(mvd)。在vvc中,引入了局部自适应运动矢量分辨率(amvr)。在vvc中,mvd可以以四分之一亮度样点、整数亮度样点或四亮度样点(即,1/4像素、1像素、4像素)为单位进行编解码。mvd分辨率在编解码单元(cu)级别被控制,并且对于具有至少一个非零mvd分量的每个cu,有条件地信令通知mvd分辨率标志。
106.对于具有至少一个非零mvd分量的cu,信令通知第一标志以指示cu中是否使用四分之一亮度样点mv精度。当第一标志(等于1)指示没有使用四分之一亮度样点mv精度时,另一标志被信令通知以指示是使用整数亮度样点mv精度还是四亮度样点mv精度。
107.当cu的第一mvd分辨率标志为零,或未针对cu进行编解码(意味着cu中的所有mvd都为零)时,cu使用四分之一亮度样点mv分辨率。当cu使用整数亮度样点mv精度或四亮度样点mv精度时,cu的amvp候选列表中的mvp被取整到对应的精度。
108.2.3.3.仿射运动补偿预测
109.在hevc中,只有平移运动模型被应用于运动补偿预测(motion compensation prediction,mcp)。虽然在真实世界中,有许多种类的运动,例如放大/缩小、旋转、透视运动和其它不规则运动。在vvc中,使用4参数仿射模型和6参数仿射模型来应用简化的仿射变换
运动补偿预测。如图11所示,块的仿射运动场由4参数仿射模型的两个控制点运动矢量(cpmv)和6参数仿射模型的3个cpmv描述。
110.块的运动矢量场(mvf)分别用等式(1)中的4参数仿射模型(其中4参数被定义为变量a、b、e和f)和等式(2)中的6参数仿射模型(其中4参数被定义为变量a、b、c、d、e和f)通过以下等式进行描述:
[0111][0112][0113]
其中(mv
h0
,mv
h0
)是左上角控制点的运动矢量,并且(mv
h1
,mv
h1
)是右上角控制点的运动矢量,并且(mv
h2
,mv
h2
)是左下角控制点的运动矢量,所有三个运动矢量被称为控制点运动矢量(cpmv),(x,y)表示代表点相对于当前块内的左上方样点的坐标,并且(mvh(x,y),mvv(x,y))是为位于(x,y)的样点推导的运动矢量。cp运动矢量可以被信令通知(如在仿射amvp模式下)或即时推导(如在仿射merge模式下)。w和h是当前块的宽度和高度。在实践中,除法是通过右移和取整运算实施的。在vtm中,代表点被定义为子块的中心位置,例如,当子块的左上角相对于当前块内的左上方样点的坐标为(xs,ys)时,代表点的坐标被定义为(xs+2,ys+2)。对于每个子块(即,在vtm中为4
×
4),利用代表点来推导整个子块的运动矢量。
[0114]
为了进一步简化运动补偿预测,应用了基于子块的仿射变换预测。为了推导每个m
×
n(在当前vvc中,m和n都被设置为4)子块的运动矢量,每个子块的中心样点的运动矢量(如图12所示)可以根据等式(1)和(2)进行计算,并被取整到1/16分数精度。然后,可以应用1/16像素的运动补偿插值滤波器来生成具有推导的运动矢量的每个子块的预测。仿射模式引入了1/16像素的插值滤波器。
[0115]
在mcp之后,每个子块的高精度运动矢量被取整并保存为与标准运动矢量相同的精度。
[0116]
2.3.3.1.仿射预测的信令通知
[0117]
类似于平移运动模型,由于仿射预测,也有两种模式用于信令通知边信息。它们是affine_inter和affine_merge模式。
[0118]
2.3.3.2.af_inter模式
[0119]
对于宽度和高度都大于8的cu,可以应用af_inter模式。在比特流中信令通知cu级别的仿射标志,以指示是否使用af_inter模式。
[0120]
在这种模式下,对于每个参考图片列表(列表0或列表1),仿射amvp候选列表以下列顺序用三种类型的仿射运动预测值进行构建,其中每个候选包括当前块的估计的cpmv。在编码器侧发现的最佳cpmv(诸如图15中的mv
0 mv
1 mv2)和估计的cpmv的差被信令通知。此外,进一步信令通知从其推导出估计的cpmv的仿射amvp候选的索引。
[0121]
1)继承的仿射运动预测值
[0122]
检查顺序与hevc amvp列表中的空域mvp的检查顺序类似。第一,从{a1,a0}中被仿射编解码并且具有与当前块中相同的参考图片的第一块推导左侧的继承的仿射运动预测值。第二,从{b1,b0,b2}中被仿射编解码并且具有与当前块中相同的参考图片的第一块推导上侧的继承的仿射运动预测值。图14中描绘了这五个块a1、a0、b1、b0、b2。
[0123]
一旦发现邻近块以仿射模式而编解码,覆盖邻近块的编解码单元的cpmv用于推导当前块的cpmv的预测值。例如,如果a1以非仿射模式而编解码,而a0以4参数仿射模式而编解码,则左侧的继承的仿射mv预测值将从a0推导。在这种情况下,覆盖a0的cu的cpmv(如在图16b中由表示的左上方cpmv和由表示的右上方cpmv)用于推导当前块的估计的cpmv,由表示当前块的左上方(坐标为(x0,y0))、右上方(坐标为(x1,y1))和右下方位置(坐标为(x2,y2))。
[0124]
2)构建的仿射运动预测值
[0125]
如图15所示,构建的仿射运动预测值包含从具有相同参考图片的邻近帧间编解码块推导的控制点运动矢量(control-point motion vector,cpmv)。如果当前仿射运动模型是4参数仿射,则cpmv的数量是2,否则如果当前仿射运动模型是6参数仿射,则cpmv的数量是3。左上方cpmv由组{a,b,c}中被帧间编解码并且具有与当前块中相同的参考图片的第一块处的mv推导。右上方cpmv由组{d,e}中被帧间编解码并且具有与当前块中相同的参考图片的第一块处的mv推导。左下方cpmv由组{f,g}中被帧间编解码并且具有与当前块中相同的参考图片的第一块处的mv推导。
[0126]

如果当前仿射运动模型是4参数仿射,则仅当和两者都建立时,才将构建的仿射运动预测值插入到候选列表中,即,和被用作当前块的左上方(坐标为(x0,y0))、右上方(坐标为(x1,y1))位置的估计的cpmv。
[0127]

如果当前仿射运动模型是6参数仿射,则仅当和都建立时,才将构建的仿射运动预测值插入到候选列表中,即,和被用作当前块的左上方(坐标为(x0,y0))、右上方(坐标为(x1,y1))和右下方(坐标为(x2,y2))位置的估计的cpmv。
[0128]
当将构建的仿射运动预测值插入到候选列表中时,不应用修剪过程。
[0129]
3)正常amvp运动预测值
[0130]
应用以下情况,直到仿射运动预测值的数量达到最大值。
[0131]
1)如果可用,通过将所有cpmv设置为等于来推导仿射运动预测值。
[0132]
2)如果可用,通过将所有cpmv设置为等于来推导仿射运动预测值。
[0133]
3)如果可用,通过将所有cpmv设置为等于来推导仿射运动预测值。
[0134]
4)如果可用,通过将所有cpmv设置为等于hevc tmvp来推导仿射运动预测值。
[0135]
5)通过将所有cpmv设置为零mv来推导仿射运动预测值。
[0136]
请注意,已经在构建的仿射运动预测值中推导。
[0137]
在af_inter模式下,当使用4/6参数仿射模式时,使用2/3个控制点,因此需要为这些控制点编解码2/3mvd,如图13所示。提出如下推导mv,即,从mvd0预测mvd1和mvd2。
[0138][0139][0140][0141]
其中,mvdi和mv1分别是左上方像素(i=0)、右上方像素(i=1)或左下方像素(i=2)的预测运动矢量、运动矢量差和运动矢量,如图13b所示。请注意,两个运动矢量(例如,mva(xa,ya)和mvb(xb,yb))的相加等于两个分量的分开求和,即,newmv=mva+mvb,并且newmv的两个分量被分别设置为(xa+xb)和(ya+yb)。
[0142]
2.3.3.3.af_merge模式
[0143]
当cu被应用于af_merge模式时,它从有效邻近重构块得到以仿射模式编解码的第一块。并且候选块的选择顺序是从左侧、上侧、右上侧、左下方到左上侧,如图16a所示(由a、b、c、d、e按顺序表示)。例如,如果邻近左下方块如图16b中的a0所表示的在仿射模式下被编解码,则获取包含块a的邻近cu/pu的左上角、右上角和左下角的控制点(cp)运动矢量mv
0n
、mv
1n
和mv
2n
。并且基于mv
0n
、mv
1n
和mv
2n
计算当前cu/pu上的左上角/右上方/左下方的运动矢量mv
0c
、mv
1c
和mv
2c
(仅用于6参数仿射模型)。应当注意,在当前vtm中,位于左上角的子块(例如,vtm中的4
×
4块)存储mv0,如果当前块是仿射编解码的,则位于右上角的子块存储mv1。如果当前块以6参数仿射模型而编解码,则位于左下角的子块存储mv2;否则(用4参数仿射模型),lb存储mv2’。其它子模块存储用于mc的mv。
[0144]
在根据等式(1)和(2)中的简化的仿射运动模型推导当前cu的cpmv mv
0c
、mv
1c
和mv
2c
之后,生成当前cu的mvf。为了标识当前cu是否用af_merge模式编解码,当存在至少一个邻近块以仿射模式编解码时,在比特流中信令通知仿射标志。
[0145]
仿射merge候选列表用以下步骤构建:
[0146]
1)插入继承的仿射候选
[0147]
继承的仿射候选是指该候选是从其有效邻近仿射编解码块的仿射运动模型推导的。从邻近块的仿射运动模型中推导最大两个继承的仿射候选,并将其插入到候选列表中。对于左侧预测值,扫描顺序为{a0,a1};对于上侧预测值,扫描顺序为{b0,b1,b2}。
[0148]
2)插入构建的仿射候选
[0149]
如果仿射merge候选列表中的候选的数量少于maxnumaffinecand(例如,5),则构建的仿射候选被插入到候选列表中。构建的仿射候选是指通过组合每个控制点的邻近运动信息来构建候选。
[0150]
a)控制点的运动信息首先从图17所示的指定空域邻居和时域邻居进行推导。cpk(k=1,2,3,4)表示第k个控制点。a0、a1、a2、b0、b1、b2和b3是用于预测cpk(k=1,2,3)的空域位置;t是预测cp4的时域位置。
[0151]
cp1、cp2、cp3和cp4的坐标分别是(0,0)、(w,0)、(h,0)和(w,h),其中w和h是当前块的宽度和高度。
[0152]
每个控制点的运动信息根据以下优先级顺序而获得:
[0153]-对于cp1,检查优先级为b2-》b3-》a2。如果b2可用的话,则使用b2。否则,如果b2可用,则使用b3。如果b2和b3都不可用,则使用a2。如果所有三个候选都不可用,则不能获得cp1的运动信息。
[0154]-对于cp2,检查优先级为b1-》b0。
[0155]-对于cp3,检查优先级为a1-》a0。
[0156]-对于cp4,使用t。
[0157]
b)其次,使用控制点的组合来构建仿射merge候选。
[0158]
i.需要三个控制点的运动信息来构建6参数仿射候选。三个控制点可从以下四种组合之一选择({cp1,cp2,cp4}、{cp1,cp2,cp3}、{cp2,cp3,cp4}、{cp1,cp3,cp4})。组合{cp1,cp2,cp3}、{cp2,cp3,cp4}、{cp1,cp3,cp4}将被转换为由左上方、右上方和左下方控制点表示的6参数运动模型。
[0159]
ii.需要两个控制点的运动信息来构建4参数仿射候选。两个控制点可以从两个组合({cp1,cp2}、{cp1,cp3})中的一个进行选择。该两个组合将被转换为由左上方和右上方控制点表示的4参数运动模型。
[0160]
iii.构建的仿射候选的组合按以下顺序被插入到候选列表中:
[0161]
{cp1,cp2,cp3}、{cp1,cp2,cp4}、{cp1,cp3,cp4}、{cp2,cp3,cp4}、{cp1,cp2}、{cp1,cp3}
[0162]
i.对于每个组合,检查每个cp的列表x的参考索引,如果它们都相同,则该组合对于列表x具有有效的cpmv。如果该组合对于列表0和列表1都不具有有效的cpmv,则该组合被标记为无效。否则,它是有效的,并且cpmv被放到子块merge列表中。
[0163]
3)用零运动矢量填充
[0164]
如果仿射merge候选列表中的候选的数量小于5,则具有零参考索引的零运动矢量被插入到候选列表中,直到列表满为止。
[0165]
更具体地,对于子块merge候选列表,mv被设置为(0,0)并且预测方向被设置为来自列表0的单向预测(对于p条带)和双向预测(对于b条带)的4参数merge候选。
[0166]
2.3.4.具有运动矢量差的merge(mmvd)
[0167]
给出了最终运动矢量表达(ultimate motion vector expression,umve,也称为mmvd)。umve与一种提出的运动矢量表达方法用于跳过或merge模式。
[0168]
图18示出了最终矢量表达(umve)搜索过程的示例。图19示出了umve搜索点的示例。在vvc中,umve重用与被包括在常规merge候选列表中的那些相同的merge候选。在这些merge候选当中,可以选择基本候选,并通过提出的运动矢量表达方法被进一步扩展。
[0169]
umve提供了一种新的运动矢量差(mvd)表示方法,其中,用起始点、运动幅度和运动方向来表示mvd。
[0170]
这种提出的技术按原样使用merge候选列表。但是只有默认merge类型(mrg_type_default_n)的候选才被考虑用于umve的扩展。
[0171]
基本候选索引定义了起始点。基本候选索引指示列表中的候选当中的最佳候选,如下所示。
[0172]
表1.基本候选idx
[0173]
基本候选idx0123第n mvp第1mvp第2mvp第3mvp第4mvp
[0174]
如果基本候选的数量等于1,则基本候选idx不被信令通知。
[0175]
距离索引是运动幅度信息。距离索引指示距起始点信息的预定义距离。预定义距
离如下所示:
[0176]
表2.距离idx
[0177]
距离idx01234567像素距离1/4像素1/2像素1像素2像素4像素8像素16像素32像素
[0178]
方向索引表示mvd相对于起始点的方向。方向索引可以表示如下所示的四个方向。
[0179]
表3.方向idx
[0180]
方向idx00011011x轴+

n/an/ay轴n/an/a+

[0181]
在传送跳过标志或merge标志之后立即信令通知umve标志。如果跳过或merge标志为真(true),则解析umve标志。如果umve标志等于1,则解析umve语法。但如果不是1,则解析affine(仿射)标志。如果affine标志等于1,即是affine模式,但如果不是1,跳过/merge索引被解析为vtm的跳过/merge模式。
[0182]
不需要由于umve候选的附加线缓冲区。因为软件的跳过/merge候选被直接用作基本候选。使用输入的umve索引,在运动补偿之前立即决定mv的补充。没有必要为此保留长的线缓冲区。
[0183]
在当前的通用测试条件下,可以选择merge候选列表中的第一个或第二个merge候选作为基本候选。
[0184]
在vvc中,umve也被称为具有mv差的merge(mmvd)。
[0185]
2.3.5.解码器侧运动矢量细化(dmvr)
[0186]
在双向预测操作中,对于一个块区域的预测,分别使用列表0的运动矢量(mv)和列表1的mv形成的两个预测块被组合以形成单个预测信号。在解码器侧运动矢量细化(dmvr)方法中,双向预测的两个运动矢量被进一步细化。
[0187]
2.3.5.1.jem中的dmvr
[0188]
在jem设计中,通过双边模板匹配过程来细化运动矢量。双边模板匹配应用于解码器中,以在双边模板和参考图片中的重构样点之间执行基于失真的搜索,以便在没有附加运动信息的传输的情况下获得细化的mv值。图20中描绘了一个示例。双边模板被生成作为分别来自列表0的初始mv0和列表1的初始mv1的两个预测块的加权组合(即平均),如图20所示。模板匹配操作包含计算生成的模板和参考图片中的样点区域(初始预测块周围)之间的代价度量。对于两个参考图片中的每一个,产生最小模板代价的mv被认为是该列表的更新的mv,以替换原始mv。在jem中,为每个列表搜索九个mv候选。九个mv候选包括原始mv和在水平方向或垂直方向或两个方向上距原始mv一个亮度样点偏移的8个周围mv。最后,如图20所示的两个新的mv(即mv0’和mv1’)用于生成最终双向预测结果。绝对差之和(sad)被用作代价度量。请注意,当计算由一个周围mv生成的预测块的代价时,实际上使用取整的mv(到整数像素)来获得预测块,而不是实际的mv。
[0189]
2.3.5.2.vvc中的dmvr
[0190]
对于vvc中的dmvr,假设在列表0和列表1之间镜像的mvd,如图21所示,并且执行双边匹配以细化mv,即,在几个mvd候选当中到最佳mvd。以mvl0(l0x,l0y)和mvl1(l1x,l1y)表示两个参考图片列表的mv。列表0的由(mvdx,mvdy)表示的能够最小化代价函数(例如,
sad)的mvd被定义为最佳mvd。对于sad函数,它被定义为列表0的参考块和列表1的参考块之间的sad,其中列表0的参考块是用列表0参考图像中的运动矢量(l0x+mvdx,l0y+mvdy)推导的,列表1的参考块是用列表1参考图像中的运动矢量(l1x-mvdx,l1y-mvdy)推导的。
[0191]
运动矢量细化过程可以迭代两次。在每次迭代中,可以以两步检查最多6个mvd(具有整数像素精度),如图22所示。在第一步中,检查mvd(0,0)、(-1,0)、(1,0)、(0,-1)、(0,1)。在第二步中,可以选择并进一步检查mvd(-1,-1)、(-1,1)、(1,-1)或(1,1)中的一个。假设函数sad(x,y)返回mvd(x,y)的sad值。在第二步中检查的由(mvdx,mvdy)表示的mvd决定如下:
[0192]
mvdx=-1;
[0193]
mvdy=-1;
[0194]
if(sad(1,0)《sad(-1,0))
[0195]
mvdx=1;
[0196]
if(sad(0,1)《sad(0,-1))
[0197]
mvdy=1;
[0198]
在第一次迭代中,初始搜索点是常规merge候选的mv,并且在第二次迭代中,初始搜索点是常规merge候选的mv,加上第一次迭代中的所选择的最佳mvd。dmvr仅在一个参考图片是前一图片而另一个参考图片是后一图片并且两个参考图片具有到当前图片的相同的图片顺序计数距离时适用。
[0199]
为了进一步简化dmvr的过程,提出了对jem中的设计的几个改变。
[0200]
更具体地,vtm-4.0采用的dmvr设计(即将发布)具有以下主要特征:
[0201]
·
当列表0和列表1之间的(0,0)位置sad小于阈值时的提前终止。
[0202]
·
当列表0和列表1之间的sad对于某个位置为零时的提前终止。
[0203]
·
dmvr的块尺寸:w*h》=64&&h》=8,其中w和h是块的宽度和高度。
[0204]
·
将cu划分为cu尺寸》16*16的dmvr的16
×
16子块的倍数。如果仅cu的宽度或高度大于16,它仅在垂直或水平方向上被划分。
[0205]
·
参考块尺寸(w+7)*(h+7)(对于亮度)。
[0206]
·
25点基于sad的整数像素搜索(即(+-2)细化搜索范围,单阶段(stage))
[0207]
·
基于双线性插值的dmvr。
[0208]
·
基于“参数误差表面等式”的子像素细化。仅当最小sad代价不等于零,并且在最后一次mv细化迭代中最佳mvd为(0,0)时,才执行此过程。
[0209]
·
亮度/度mc w/参考块填充(如果需要)。
[0210]
·
仅用于mc和tmvp的细化的mv。
[0211]
2.3.5.2.1 dmvr的使用
[0212]
当以下条件都为真时,可以启用dmvr:
[0213]

sps中的dmvr启用标志(即,sps_dmvr_enabled_flag)等于1
[0214]

tpm标志、帧间仿射标志和子块merge标志(atmvp或仿射merge)、mmvd标志都等于0
[0215]

merge标志等于1
[0216]

当前块是双向预测的,并且当前图片和列表1中的参考图片之间的poc距离等于列表0中的参考图片和当前图片之间的poc距离
[0217]

当前cu的高度大于或等于8
[0218]

亮度样点数(cu宽度*高度)大于或等于64
[0219]
2.3.5.2.2.基于“参数误差表面等式”的子像素细化
[0220]
该方法总结如下:
[0221]
1.仅当中心位置是给定迭代中的最佳代价位置时,才计算参数误差表面拟合。
[0222]
2.中心位置代价和距中心的(-1,0)、(0,-1)、(1,0)和(0,1)位置处的代价用于拟合形状的2-d抛物线误差表面等式
[0223]
e(x,y)=a(x-x0)2+b(y-y0)2+c
[0224]
其中(x0,y0)对应于最少代价的位置,并且c对应于最小代价值。通过求解5个未知数中的5个等式,(x0,y0)被计算为:
[0225]
x0=(e(-1,0)-e(1,0))/(2(((-1,0)+e(1,0)-2e(0,0)))
[0226]
y0=(e(0,-1)-e(0,1))/(2((e(0,-1)+e(0,1)-2e(0,0)))
[0227]
(x0,y0)可以通过调整执行除法的精度(即,计算多少比特的商)而计算到任何所需的子像素精度。对于1/16
th
像素精度,仅需计算商的绝对值中的4比特,这使其适合于每个cu所需的2个除法的基于快速移位减法的实施。
[0228]
3.将计算出的(x0,y0)加到整数距离细化mv,以得到子像素精确的细化增量mv。
[0229]
2.3.6.组合的帧内和帧间预测
[0230]
提出了多假设预测,其中组合的帧内和帧间预测是生成多假设的一种方式。
[0231]
当应用多假设预测来改进帧内模式时,多假设预测组合一个帧内预测和一个merge索引的预测。在merge cu中,当标志为真时,为merge模式信令通知一个标志,以从帧内候选列表选择帧内模式。对于亮度分量,帧内候选列表从包括dc、平面、水平和垂直模式的4种帧内预测模式推导,并且取决于块形状,帧内候选列表的尺寸可以是3或4。当cu宽度大于cu高度的两倍时,水平模式不包括帧内模式列表,当cu高度大于cu宽度的两倍时,从帧内模式列表移除垂直模式。使用加权平均来组合由帧内模式索引选择的一个帧内预测模式和由merge索引选择的一个merge索引预测。对于度分量,总是应用dm而不需要额外的信令。用于组合预测的权重描述如下。当选择了dc或平面模式,或者cb宽度或高度小于4时,将应用相等权重。对于cb宽度和高度大于或等于4的那些cb,当选择水平/垂直模式时,首先将一个cb垂直/水平地划分为四个等面积区域。每个权重集(表示为(w_intrai,w_interi),其中i是从1到4并且(w_intra1,w_inter1)=(6,2)、(w_intra2,w_inter2)=(5,3)、(w_intra3,w_inter3)=(3,5)以及(w_intra4,w_inter4)=(2,6))将被应用于对应的区域。(w_intra1,w_inter1)用于最靠近参考样点的区域,而(w_intra4,w_inter4)用于最远离参考样点的区域。然后,可以通过将两个加权预测相加并右移3位来计算组合预测。此外,可以保存预测值的帧内假设的帧内预测模式,以供随后的邻近cu参考。
[0232]
3.现有实施方式的缺点
[0233]
当前的dmvr可能具有以下问题:
[0234]
1.dmvr中的初始搜索点只能是merge候选的mv。
[0235]
2.在最坏的情况下,对于双向预测,解码器可以顺序地进行dmvr、bdof和组合帧间-帧内预测。
[0236]
3.未细化的mv用于空间运动矢量预测和去方块滤波器,而细化的mv用作tmvp。需
要附加的内存来存储细化的mv。
[0237]
4.示例技术和实施例
[0238]
下面描述的详细实施例应该被认为是用以解释一般概念的示例。这些实施例不应以狭隘的方式被解释。此外,这些实施例可以以任何方式被组合。
[0239]
在以下讨论中,satshift(x,n)被定义为
[0240][0241]
shift(x,n)被定义为shift(x,n)=(x+offset0)》》n。
[0242]
在一个示例中,offset0和/或offset1被设置为(1《《n)》》1或(1《《(n-1))。在另一个示例中,offset0和/或offset1被设置为0。
[0243]
clip3(min,max,x)被定义为
[0244][0245]
在下面的讨论中,两个运动矢量之间的运算意味着该运算将被应用于运动矢量的两个分量。例如,mv3=mv1+mv2相当于mv3
x
=mv1
x
+mv2
x
以及mv3y=mv1y+mv2y。
[0246]
1.提出dmvr中的初始搜索点可以是添加偏移的常规merge候选的mv。
[0247]
a.在一个示例中,假设参考参考列表0和参考列表1的merge候选的mv被分别表示为mv0和mv1,那么dmvr中的初始搜索点可以是mv0+offset0和mv1+offset1。
[0248]
i.在一个示例中,offset0和/或offset1可以被预定义。例如,offset0=(4,0)并且offset1=(-4.0);
[0249]
ii.替代地,可以从编码器向解码器信令通知offset0和offset1。
[0250]
b.在一个示例中,可以以mmvd模式从编码器向解码器信令通知偏移。
[0251]
i.例如,当当前块被编解码为mmvd和/或mmvd跳过模式时,可以应用dmvr。
[0252]
ii.当以mmvd和/或mmvd跳过模式对当前块进行编解码时,dmvr中的初始搜索点被设置为具有mmvd模式的mv,该mv被推导为添加信令通知的距离的merge候选的mv。
[0253]
2.提出dmvr、bdof和组合帧间-帧内预测不能全部被应用。
[0254]
a.在一个示例中,当当前块的大小满足某些条件时,dmvr、bdof和组合帧间-帧内预测不能全部被应用。假设当前块的宽度和高度分别为w和h。
[0255]
i.例如,当w》=t1并且h》=t2时,dmvr、bdof和组合帧间-帧内预测不能全部被应用。例如,t1=t2=16;
[0256]
1)替代地,当w》t1并且h》t2时。
[0257]
ii.例如,当w《=t1并且h《=t2时,dmvr、bdof和组合帧间-帧内预测不能全部被应用。例如,t1=t2=16;
[0258]
1)替代地,当w《t1并且h《t2时。
[0259]
iii.例如,当w》=t1或h》=t2时,dmvr、bdof和组合帧间-帧内预测不能全部被应用。例如,t1=t2=16;
[0260]
1)替代地,当w》t1或h》t2时。
[0261]
iv.例如,当w《=t1或h《=t2时,dmvr、bdof和组合帧间-帧内预测不能全部被应用。例如,t1=t2=16;
[0262]
1)替代地,当w《t1或h《t2时。
[0263]
v.例如,当w
×
h》=t1时,dmvr、bdof和组合帧间-帧内预测不能全部被应用。例如,t1=64。
[0264]
1)替代地,当w
×
h》t1时。
[0265]
vi.例如,当w
×
h《=t1时,dmvr、bdof和组合帧间-帧内预测不能全部被应用。例如,t1=64。
[0266]
1)替代地,当w
×
h《t1时。
[0267]
b.在一个示例中,当应用bdof和帧间-帧内预测时,不能使用dmvr。
[0268]
c.在一个示例中,当应用dmvr和帧间-帧内预测时,不能使用bdof。
[0269]
d.在一个示例中,当应用dmvr和bdof时,不能使用帧间-帧内预测。
[0270]
3.提出在去方块过程中使用dmvr细化的mv。
[0271]
4.提出在对块进行解码之后,计算和存储块中大小为w
×
h的每个基本块的、细化的mv(表示为rmv)和非细化的mv(表示为nmv)的差(表示为dmv)。例如,w=h=4,或者w=h=8,或者w=h=16。
[0272]
a.dmv被推导为dmv=rmv-nmv。
[0273]
i.替代地,dmv=nmv-rmv。
[0274]
b.在一个示例中,在去方块过程之前,rmv’被计算为rmv’=dmv+nmv,并且在随后的去方块过程和时域预测过程中被用作基本块的mv。
[0275]
i.替代地,rmv’被计算为rmv’=-(dmv+nmv)。
[0276]
c.在一个示例中,dmvx和dmvy可以被定义在一致性比特流中的范围中。例如,dmvx和dmvy可以满足t1x《=dmvx《=t2x和t1y《=dmvy《=t2y。例如,t1x=t1y=-2k并且t2x=t2y=2
k-1,其中k是诸如3或4的整数。
[0277]
i.在一个示例中,在dmvr中的搜索范围可以保证dmv能够满足约束。
[0278]
ii.在一个示例中,t1x/t2x/t1y/t2y/k可以从编码器被信令通知给解码器。
[0279]
iii.在一个示例中,t1x/t2x/t1y/t2y/k可以取决于dmvr的搜索范围。
[0280]
iv.在一个示例中,t1x/t2x/t1y/t2y/k可以取决于标准简表和/或级别和/或层级。
[0281]
d.在一个示例中,dmv可以被裁剪。
[0282]
i.例如,dmvx被设置为clip3(t1x,t2x,dmvx),并且dmvy被设置为clip3(t1y,t2y,dmvx)。例如,t1x=t1y=-2k并且t2x=t2y=2
k-1,其中k是诸如3或4的整数。
[0283]
e.在一个示例中,dmv可以被量化为dmv’,并且dmv’将被存储。
[0284]
i.例如,dmvx’被设置为shift(dmvx,nx),并且dmvy’被设置为shift(dmvy,ny),例如,nx=ny=1。
[0285]
1)替代地,dmvx’被设置为satshift(dmvx,nx),并且dmvy’被设置为satshift(dmvy,ny),例如,nx=ny=1。
[0286]
2)在一个示例中,nx/ny可以从编码器被信令通知给解码器。
[0287]
3)在一个示例中,nx/ny可以取决于dmvr的搜索范围。
[0288]
4)在一个示例中,nx/ny可以取决于标准简表和/或级别和/或层级。
[0289]
ii.在一个示例中,dmv可以在推导rmv’之前从dmv’进行反量化。
[0290]
1)例如,dmvx=dmvx’《《nx并且dmvy=dmvy’《《ny。
[0291]
iii.在一个示例中,dmv可以在量化之前被裁剪。
[0292]
1)替代地,dmv’可以在量化之后被裁剪。
[0293]
f.在一个示例中,代替rmv,rmv’可以用于运动补偿过程中。
[0294]
5.所公开的技术的示例实施方式
[0295]
图23是视频处理装置2300的框图。装置2300可以用来实施本文描述的方法中的一种或多种。装置2300可以体现在智能电话、平板电脑、计算机、物联网(internet of things,iot)接收器等中。装置2300可以包括一个或多个处理器2302、一个或多个存储器2304、以及视频处理硬件2306。(多个)处理器2302可以被配置为实施本文档中描述的一种或多种方法。存储器(多个存储器)2304可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件2306可以用来以硬件电路实施本文档中描述的一些技术,并且可以部分地或完全作为处理器2302的一部分(例如,图形处理器核心gpu或其他信号处理电路)。
[0296]
在本文档中,术语“视频处理”可以指代视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示到对应比特流表示的转换期间应用视频压缩算法,反之亦然。当前视频块的比特流表示可以,例如对应于比特流内并置的或分散在不同位置的比特,如语法所定义的。例如,宏块可以按照变换和编解码误差残差值并且还使用头和比特流中的其他字段中的比特而编码。
[0297]
应当理解,通过允许使用在本文档中公开的技术,所公开的方法和技术将有益于并入视频处理设备(诸如智能电话、膝上型电脑、台式电脑和类似设备)内的视频编码器和/或解码器实施例。
[0298]
图24是视频处理的示例方法2400的流程图。方法2400包括,在2410,执行当前视频块和当前视频块的比特流表示之间的转换,其中,该转换包括用于细化在比特流表示中信令通知的运动信息的解码器运动矢量细化(dmvr)步骤。该方法包括,在步骤2420,在dmvr步骤期间,使用至少一个运动矢量作为用于该细化的起始值,其中,至少一个运动矢量等于添加到候选运动矢量集合中的候选运动矢量的偏移。
[0299]
可以使用以下基于条款的格式来描述一些实施例。
[0300]
1.一种可视媒体处理的方法,包括:
[0301]
执行当前视频块和当前视频块的比特流表示之间的转换,其中,该转换包括用于细化在比特流表示中信令通知的运动信息的解码器运动矢量细化(dmvr)步骤;以及
[0302]
在dmvr步骤期间,使用至少一个运动矢量作为用于该细化的起始值,其中,至少一个运动矢量等于添加到候选运动矢量集合中的候选运动矢量的偏移。
[0303]
2.根据条款1所述的方法,其中,候选运动矢量被包括在merge列表中。
[0304]
3.根据条款1所述的方法,其中,添加到候选运动矢量的偏移是预定义的。
[0305]
4.根据条款1所述的方法,其中,添加到候选运动矢量的偏移在比特流表示中作为参数被信令通知。
[0306]
5.根据条款1所述的方法,其中,当前视频块在具有运动矢量差的merge(mmvd)模
式下被编解码。
[0307]
6.根据条款1所述的方法,其中,当前视频块在具有运动矢量差的merge(mmvd)跳过模式下被编解码。
[0308]
7.根据条款5-6中任一项或多项所述的方法,其中,候选运动矢量被包括在merge列表中,并且添加到候选运动矢量的偏移在比特流表示中作为参数被信令通知。
[0309]
8.一种可视媒体处理的方法,包括:
[0310]
执行当前视频块和当前视频块的比特流表示之间的转换,其中,该转换包括使用以下中的一个或多个:解码器运动矢量细化(dmvr)步骤、双向光流(bdof)步骤或组合帧内-帧间预测步骤,并且其中,dmvr步骤、bdof步骤和组合帧内-帧间预测步骤的共存至少基于当前视频块的大小。
[0311]
9.根据条款8所述的方法,还包括:
[0312]
响应于确定当前视频块的宽度大于或等于第一阈值和/或当前视频块的高度大于或等于第二阈值,禁用对dmvr步骤、bdof步骤和组合帧内-帧间预测步骤的共存使用。
[0313]
10.根据条款8所述的方法,还包括:
[0314]
响应于确定当前视频块的宽度小于或等于第一阈值和/或当前视频块的高度小于或等于第二阈值,禁用对dmvr步骤、bdof步骤和组合帧内-帧间预测步骤的共存使用。
[0315]
11.根据条款9-10中任一项或多项所述的方法,其中,第一阈值和第二阈值都为十六(16)。
[0316]
12.根据条款8所述的方法,还包括:
[0317]
响应于确定当前视频块的宽度和当前视频块的高度的乘积大于或等于第一阈值,禁用对dmvr步骤、bdof步骤和组合帧内-帧间预测步骤的共存使用。
[0318]
13.根据条款8所述的方法,还包括:
[0319]
响应于确定当前视频块的宽度和当前视频块的高度的乘积小于或等于第一阈值,禁用对dmvr步骤、bdof步骤和组合帧内-帧间预测步骤的共存使用。
[0320]
14.根据条款12-13中任一项或多项所述的方法,其中,第一阈值为六十四(64)。
[0321]
15.根据条款8-14中任一项或多项所述的方法,还包括:
[0322]
启用对以下中的任何两个的共存使用:dmvr步骤、bdof步骤或组合帧内-帧间预测步骤。
[0323]
16.一种可视媒体处理的方法,包括:
[0324]
执行当前视频块和当前视频块的比特流表示之间的转换,其中,该转换包括解码器运动矢量细化(dmvr)步骤,该dmvr步骤用于细化在比特流表示中信令通知的原始运动信息,从而产生可用于去方块步骤中的细化的运动信息;以及
[0325]
为当前视频块的至少一个子集块计算细化的运动信息和原始运动信息的差。
[0326]
17.根据条款8所述的方法,其中,子集块的大小为4
×
4、8
×
8或16
×
16。
[0327]
18.根据条款16-17中任一项或多项所述的方法,其中,计算差包括从原始运动信息减去细化的运动信息。
[0328]
19.根据条款16-17中任一项或多项所述的方法,其中,计算差包括从细化的运动信息减去原始运动信息。
[0329]
20.根据条款16所述的方法,其中,在去方块步骤之前,第一运动信息被计算为(i)
细化的运动信息的差和(ii)原始运动信息的和,其中,第一运动信息可用于去方块步骤中。
[0330]
21.根据条款20所述的方法,其中,第一运动信息乘以负一。
[0331]
22.根据条款16所述的方法,其中,细化的运动信息和原始运动信息的差是差向量,其中,差向量的x分量大于x下界和/或小于x上界。
[0332]
23.根据条款16所述的方法,其中,细化的运动信息和原始运动信息的差是差向量,其中,差向量的y分量大于y下界和/或小于y上界。
[0333]
24.根据条款22-23中任一项或多项所述的方法,其中,x上界、x下界、y上界和y下界是在比特流表示中信令通知的。
[0334]
25.根据条款22-23中任一项或多项所述的方法,其中,dmvr步骤的搜索范围以这样的方式被定义:使得(i)差向量的x分量大于x下界和/或小于x上界,以及(ii)差向量的y分量大于y下界和/或小于y上界。
[0335]
26.根据条款22-23中任一项或多项所述的方法,其中,差向量以这样的方式被裁剪:使得差向量的x分量根据函数clip3(x下界、x上界、差向量的x分量)进行裁剪,并且差向量的y分量根据函数clip3(y下界、y上界、差向量的y分量)进行裁剪,其中,clip3(min,max,x)被定义为
[0336][0337]
27.根据条款22-23中任一项或多项所述的方法,其中,差向量被量化。
[0338]
28.根据条款27所述的方法,其中,差向量的x分量根据函数shift(差向量的x分量,第一值)进行量化,并且差向量的y分量根据函数shift(差向量的y分量,第二值)进行量化,其中
[0339]
shift(x,n)=(x+offset0)》》n
[0340]
其中,offset0=(1《《n)》》1,第一值和第二值是标量。
[0341]
29.根据条款27所述的方法,其中,差向量的x分量根据函数shift(差向量的x分量,第一值)进行量化,并且差向量的y分量根据函数shift(差向量的y分量,第二值)进行量化,其中
[0342]
shift(x,n)=(x+offset0)》》n
[0343]
其中,offset0=(1《《(n-1)),第一值和第二值是标量。
[0344]
30.根据条款27所述的方法,其中,差向量的x分量根据函数shift(差向量的x分量,第一值)进行量化,并且差向量的y分量根据函数shift(差向量的y分量,第二值)进行量化,其中
[0345]
shift(x,n)=(x+offset0)》》n
[0346]
其中,offset0=0,第一值和第二值是标量。
[0347]
31.根据条款27所述的方法,其中,差向量的x分量根据函数satshift(差向量的x分量,第一值)进行量化,并且差向量的y分量根据函数satshift(差向量的y分量,第二值)进行量化,其中
[0348][0349]
其中,offset0、offset1被设置为(1《《n)》》1或(1《《(n-1)),并且第一值和第二值是标量。
[0350]
32.根据条款27所述的方法,其中,差向量的x分量根据函数satshift(差向量的x分量,第一值)进行量化,并且差向量的y分量根据函数satshift(差向量的y分量,第二值)进行量化,其中
[0351][0352]
其中,offset0、offset1都被设置为0,并且第一值和第二值是标量。
[0353]
33.根据条款28-33中任一项或多项所述的方法,其中,第一值和第二值在比特流表示中被信令通知。
[0354]
34.根据条款28-33中任一项或多项所述的方法,其中,第一值和第二值与dmvr步骤的搜索范围相关联。
[0355]
35.根据条款28-33中任一项或多项所述的方法,其中,第一值和第二值与当前视频块的简表信息或层级信息相关联。
[0356]
36.根据条款1至35中任一项或多项所述的方法,其中,可视媒体处理是编码器侧实施方式。
[0357]
37.根据条款1至35中任一项或多项所述的方法,其中,可视媒体处理是解码器侧实施方式。
[0358]
38.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中,指令在由处理器执行时使处理器实施根据条款1至37中任一项或多项所述的方法。
[0359]
39.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行根据条款1至37中任一项或多项所述的方法的程序代码。
[0360]
图25是视频处理的示例方法2500的流程图。方法2500包括,在2502,基于与视频的第一块相关联的merge候选的一个或多个运动矢量(mv)和一个或多个偏移,为视频的第一块和视频的第一块的比特流表示之间的转换推导要在该转换期间被应用的解码器侧运动矢量细化(dmvr)过程中的初始搜索点;以及在2504,基于初始搜索点来执行该转换。
[0361]
在一些示例中,初始搜索点被推导为添加偏移的merge候选的一个或多个mv。
[0362]
在一些示例中,当merge候选的一个或多个mv包括参考参考列表0的第一mv(mv0)和参考参考列表1的第二mv(mv1)时,初始搜索点被推导为mv0+offset0和mv1+offset1,offset0是对应于第一mv(mv0)的偏移,并且offset1是对应于第二mv(mv1)的偏移。
[0363]
在一些示例中,offset0和/或offset1是预定义的。
[0364]
在一些示例中,offset0=(4,0)并且offset1=(-4.0)。
[0365]
在一些示例中,offset0和/或offset1是从编码器向解码器信令通知的。
[0366]
在一些示例中,偏移是以具有运动矢量差的merge(mmvd)模式从编码器向解码器信令通知的。
[0367]
在一些示例中,当第一块被编解码为mmvd和/或mmvd跳过模式时,dmvr过程被应
用。
[0368]
在一些示例中,当以mmvd和/或mmvd跳过模式对第一块进行编解码时,dmvr过程中的初始搜索点被设置为具有mmvd模式的mv,该mv被推导为添加信令通知的偏移的merge候选的mv。
[0369]
图26是视频处理的示例方法2600的流程图。方法2600包括,在2602,基于预定规则,为视频的第一块和视频的第一块的比特流表示之间的转换确定解码器运动矢量细化(dmvr)过程、双向光流(bdof)过程和组合帧内-帧间预测过程中的至少一个被禁用;以及在2604,基于该确定来执行该转换。
[0370]
在一些示例中,当第一块的大小满足一个或多个条件时,dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,第一块的大小包括宽度w、高度h或wxh中的至少一个。
[0371]
在一些示例中,当w》=t1并且h》=t2时,dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。
[0372]
在一些示例中,当w》t1并且h》t2时,dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。
[0373]
在一些示例中,当w《=t1并且h《=t2时,dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。
[0374]
在一些示例中,当w《t1并且h《t2时,dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。
[0375]
在一些示例中,当w》=t1或h》=t2时,dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。
[0376]
在一些示例中,当w》t1或h》t2时,dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。
[0377]
在一些示例中,当w《=t1或h《=t2时,dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。
[0378]
在一些示例中,当w《t1或h《t2时,dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。
[0379]
在一些示例中,t1=t2=16。
[0380]
在一些示例中,t1=t2=8。
[0381]
在一些示例中,t1=t2=128。
[0382]
在一些示例中,当w
×
h》=t1时,dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1是整数。
[0383]
在一些示例中,当w
×
h》t1时,dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1是整数。
[0384]
在一些示例中,当w
×
h《=t1时,dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1是整数。
[0385]
在一些示例中,当w
×
h《t1时,dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1是整数。
[0386]
在一些示例中,t1=64。
[0387]
在一些示例中,t1=128。
[0388]
在一些示例中,当应用bdof过程和帧间-帧内预测过程时,dmvr过程被禁用。
[0389]
在一些示例中,当应用帧间-帧内预测过程时,dmvr过程被禁用。
[0390]
在一些示例中,当应用dmvr过程和帧间-帧内预测过程时,bdof过程被禁用。
[0391]
在一些示例中,当应用帧间-帧内预测过程时,bdof过程被禁用。
[0392]
在一些示例中,当应用dmvr过程和bdof过程时,帧间-帧内预测过程被禁用。
[0393]
图27是视频处理的示例方法2700的流程图。方法2700包括,在2702,为视频的第一块和视频的第一块的比特流表示之间的转换推导与第一块相关联的运动矢量(mv),该mv通过应用解码器侧运动矢量细化(dmvr)过程进行细化;以及在2704,在去方块过程中通过使用细化的mv来执行该转换。
[0394]
图28是视频处理的示例方法2800的流程图。方法2800包括,在2802,为视频的第一块和视频的第一块的比特流表示之间的转换计算与第一块的每个基本块相关联的、细化的运动矢量(mv)(rmv)和非细化的mv(nmv)之间的mv差(dmv),rmv是通过应用解码器侧运动矢量细化(dmvr)过程而细化的运动矢量,nmv是未通过dmvr过程细化的运动矢量;以及在2804,通过使用计算的mv差来执行该转换。
[0395]
在一些示例中,基本块具有宽度w和高度h,其中w=h=4,或者w=h=8,或者w=h=16。
[0396]
在一些示例中,mv差dmv被推导为dmv=rmv-nmv或者dmv=nmv-rmv。
[0397]
在一些示例中,去方块过程之前的细化的mv(rmv’)被计算为rmv’=dmv+nmv,并且要在随后的去方块过程和时域预测过程中被用作基本块的mv。
[0398]
在一些示例中,去方块过程之前的细化的mv(rmv’)被计算为rmv’=-(dmv+nmv),并且要在随后的去方块过程和时域预测过程中被用作基本块的mv。
[0399]
在一些示例中,mv差dmv具有水平分量(dmvx)和垂直分量(dmvy),dmvx和dmvy在一致性比特流中的范围中。
[0400]
在一些示例中,dmvx和dmvy满足t1x《=dmvx《=t2x并且t1y《=dmvy《=t2y,t1x、t2x、t1y和t2y是整数。
[0401]
在一些示例中,t1x=t1y=-2k并且t2x=t2y=2
k-1,其中k是整数。
[0402]
在一些示例中,k为3或4。
[0403]
在一些示例中,dmvr过程中的搜索范围保证mv差dmv能够满足约束。
[0404]
在一些示例中,t1x、t2x、t1y、t2y和k中的一个或多个是从编码器向解码器信令通知的。
[0405]
在一些示例中,t1x、t2x、t1y、t2y和k中的一个或多个取决于dmvr过程的搜索范围。
[0406]
在一些示例中,t1x、t2x、t1y、t2y和k中的一个或多个取决于标准简表和/或级别和/或层级。
[0407]
在一些示例中,运动矢量差dmv用函数clip3(min,max,x)进行裁剪,函数clip3(min,max,x)被定义为
[0408][0409]
在一些示例中,dmv的水平分量dmvx被设置为clip3(t1x,t2x,dmvx),并且dmv的垂直分量dmvy被设置为clip3(t1y,t2y,dmvx)。
[0410]
在一些示例中,t1x=t1y=-2k并且t2x=t2y=2
k-1,其中k是整数。
[0411]
在一些示例中,k为3或4。
[0412]
在一些示例中,mv差dmv在该转换之后被存储。
[0413]
在一些示例中,mv差dmv被量化为dmv’,并且dmv’被存储。
[0414]
在一些示例中,dmv’的水平分量dmvx’被设置为shift(dmvx,nx),并且dmv’的垂直分量dmvy’被设置为shift(dmvy,ny),nx和ny是整数,其中shift(x,n)被定义为:
[0415]
shift(x,n)=(x+offset0)》》n,
[0416]
其中offset0被设置为(1《《n)》》1或(1《《(n-1)),或者offset0被设置为0。
[0417]
在一些示例中,dmv’的水平分量dmvx’被设置为satshift(dmvx,nx),并且dmv’的垂直分量dmvy’被设置为satshift(dmvy,ny),nx和ny是整数,其中satshift(x,n)被定义为:
[0418][0419]
其中offset0和/或offset1被设置为(1《《n)》》1或(1《《(n-1)),或者offset0和/或offset1被设置为0。
[0420]
在一些示例中,nx=ny=1。
[0421]
在一些示例中,nx和/或ny是从编码器向解码器信令通知的。
[0422]
在一些示例中,nx和/或ny取决于dmvr过程的搜索范围。
[0423]
在一些示例中,nx和/或ny取决于标准简表和/或级别和/或层级。
[0424]
在一些示例中,mv差dmv在推导rmv’之前从dmv’进行反量化。
[0425]
在一些示例中,dmvx=dmvx’《《nx,并且dmvy=dmvy’《《ny。
[0426]
在一些示例中,mv差dmv在量化之前被裁剪。
[0427]
在一些示例中,mv差dmv在量化之后被裁剪。
[0428]
在一些示例中,去方块过程之前的细化的mv rmv’用于运动补偿过程中。
[0429]
在一些示例中,该转换从比特流表示生成视频的第一块。
[0430]
在一些示例中,该转换从视频的第一块生成比特流表示。
[0431]
本文档中描述的所公开的以及其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路中、或者在计算机软件、固件或硬件(包括本文档中公开的结构及其结构等同物)中、或者在它们中的一个或多个的组合中被实施。所公开的以及其他实施例可以被实施为一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,该计算机程序指令用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合、或它们中的一个或多个的组合。术语“数据处理装置”包含用于处理数
据的所有装置、设备和机器,包括例如可编程处理器、计算机、或多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合的代码。传播信号是被生成以对信息进行编码以用于发送到合适的接收器装置的人工生成的信号,例如机器生成的电信号、光学信号或电磁信号。
[0432]
计算机程序(也已知为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且其可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署以在一个计算机上或在位于一个站点上或跨多个站点分布并通过通信网络互连的多个计算机上执行。
[0433]
本文档书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实施为专用逻辑电路,例如,fpga(field programmable gate array,现场可编程门阵列)或asic(专用集成电路)。
[0434]
适合于执行计算机程序的处理器包括例如通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或可操作地耦合以从该一个或多个大容量存储设备接收数据或向该一个或多个大容量存储设备传递数据、或者从其接收数据并向其传递数据。然而,计算机不需要这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可换式磁盘;磁光盘;以及cd rom和dvd-rom磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
[0435]
虽然本专利文档包含许多细节,但这些细节不应被解释为对任何主题或可能要求保护的范围的限制,而是作为特定于特定技术的特定实施例的特征的描述。在本专利文档中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合实施。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
[0436]
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为需要以所示的特定顺序或以先后顺序执行这样的操作或者执行所有示出的操作以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离。
[0437]
仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容来
进行其他实施方式、增强和变化。

技术特征:


1.一种视频处理的方法,包括:基于预定规则,为视频的第一块和所述视频的第一块的比特流之间的转换确定解码器运动矢量细化dmvr过程、双向光流bdof过程和组合帧内-帧间预测过程中的至少一个被禁用;以及基于所述确定来执行所述转换。2.根据权利要求1所述的方法,其中,当所述第一块的大小满足一个或多个条件时,所述dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,所述第一块的大小包括宽度w、高度h或wxh中的至少一个。3.根据权利要求2所述的方法,其中,当w>=t1并且h>=t2时,所述dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。4.根据权利要求2所述的方法,其中,当w>t1并且h>t2时,所述dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。5.根据权利要求2所述的方法,其中,当w<=t1并且h<=t2时,所述dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。6.根据权利要求2所述的方法,其中,当w<t1并且h<t2时,所述dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。7.根据权利要求2所述的方法,其中,当w>=t1或h>=t2时,所述dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。8.根据权利要求2所述的方法,其中,当w>t1或h>t2时,所述dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。9.根据权利要求2所述的方法,其中,当w<=t1或h<=t2时,所述dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。10.根据权利要求2所述的方法,其中,当w<t1或h<t2时,所述dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1和t2是整数。11.根据权利要求3所述的方法,其中,t1=t2=16。12.根据权利要求3所述的方法,其中,t1=t2=8。13.根据权利要求3所述的方法,其中,t1=t2=128。14.根据权利要求2所述的方法,其中,当w
×
h>=t1时,所述dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1是整数。15.根据权利要求2所述的方法,其中,当w
×
h>t1时,所述dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1是整数。16.根据权利要求2所述的方法,其中,当w
×
h<=t1时,所述dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1是整数。17.根据权利要求2所述的方法,其中,当w
×
h<t1时,所述dmvr过程、bdof过程和组合帧内-帧间预测过程中的至少一个被禁用,t1是整数。18.根据权利要求12所述的方法,其中,t1=64。19.根据权利要求12所述的方法,其中,t1=128。20.根据权利要求1所述的方法,其中,当应用所述bdof过程和所述组合帧内-帧间预测过程时,所述dmvr过程被禁用。
21.根据权利要求1所述的方法,其中,当应用所述组合帧内-帧间预测过程时,所述dmvr过程被禁用。22.根据权利要求1所述的方法,其中,当应用所述dmvr过程和所述组合帧内-帧间预测过程时,所述bdof过程被禁用。23.根据权利要求1所述的方法,其中,当应用所述组合帧内-帧间预测过程时,所述bdof过程被禁用。24.根据权利要求1所述的方法,其中,当应用所述dmvr过程和所述bdof过程时,所述组合帧内-帧间预测过程被禁用。25.根据权利要求1-24中任一项所述的方法,其中,所述转换从所述比特流生成所述视频的第一块。26.根据权利要求1-24中任一项所述的方法,其中,所述转换从所述视频的第一块生成所述比特流。27.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中,所述指令在由所述处理器执行时使所述处理器实施根据权利要求1至26中任一项所述的方法。28.一种非暂时性计算机可读介质,其上存储有计算机程序代码,所述程序代码被处理器执行时以实现权利要求1至26中任一项所述的方法。

技术总结


公开了视频编解码中的运动矢量细化。一种视频处理的方法,包括:基于与视频的第一块相关联的Merge候选的一个或多个运动矢量(MV)和一个或多个偏移,为视频的第一块和视频的第一块的比特流表示之间的转换推导要在该转换期间被应用的解码器侧运动矢量细化(DMVR)过程中的初始搜索点;以及基于初始搜索点来执行该转换。转换。转换。


技术研发人员:

张凯 张莉 刘鸿彬 许继征 王悦

受保护的技术使用者:

字节跳动有限公司

技术研发日:

2020.03.11

技术公布日:

2023/1/19


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-87504-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2023-01-29 17:43:53

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论