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

对称运动矢量差编解码的制作方法

2021-12-07 20:18:00 来源:中国专利 TAG:

对称运动矢量差编解码
1.相关申请的交叉引用
2.根据适用的《专利法》和/或《巴黎公约》的规定,本技术及时要求于2019年4月28日提交的国际专利申请号pct/cn2019/084768以及于2019年5月16日提交的国际专利申请号pct/cn2019/087201的优先权和利益。将国际专利申请号pct/cn2019/084768和pct/cn2019/087201的全部公开以引用方式并入本文,作为本技术公开的一部分。
技术领域
3.本技术文件涉及视频编解码技术、设备和系统。


背景技术:

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


技术实现要素:

5.本文件描述了各种实施例和技术,其中,使用运动矢量差编解码执行视频编码或解码,所述运动矢量差编码采用对称编码或解码技术。
6.在一个示例性方面当中,公开了一种视频处理方法。该方法包括:针对当前视频块和当前视频块的比特流表示之间的转换确定使用对称运动矢量差(smvd)模式,在该模式下,基于来自参考图片的参考列表0和参考列表1的两个目标参考图片中的参考块的对称位移生成用于该转换的两个额外运动候选;以及使用smvd模式执行该转换。对于参考列表0或参考列表1之一,该比特流表示指示禁用运动矢量差(mvd)模式。
7.在另一个示例性方面当中,公开了另一种视频处理方法。该方法包括:针对当前视频块和当前视频块的比特流表示之间的转换确定使用对称运动矢量差(smvd)模式,在该模式下,基于来自参考图片的参考列表0和参考列表1的两个目标参考图片的图片中的参考块的对称位移生成用于该转换的两个额外运动候选;以及使用smvd模式执行该转换。该比特流表示包括参考列表1的运动矢量差(mvd)信息。
8.在另一个示例性方面当中,公开了另一种视频处理方法。该方法包括:针对当前视频块和当前视频块的比特流表示之间的转换确定使用对称运动矢量差(smvd)模式,在该模式下,基于来自参考图片的参考列表0和参考列表1的图片中的参考块的对称位移生成用于该转换的两个额外运动候选;以及使用smvd模式执行该转换。smvd采用对每一参考图片列表进行解析以识别出目标参考图片的第一步骤生成这两个额外运动候选。
9.在另一个示例性方面当中,公开了另一种视频处理方法。该方法包括:基于条件确定将对称运动矢量差(smvd)模式和解码器侧运动矢量差(dmvd)编解码模式用于当前视频块和当前视频块的比特流表示之间的转换,在smvd模式中,基于来自参考图片的参考列表0和参考列表1的两个目标参考图片中的参考块的对称位移生成用于该转换的两个额外运动
候选;以及基于该确定执行该转换。
10.在另一个示例性方面当中,公开了另一种视频处理方法。该方法包括:基于条件确定是否将对称运动矢量差(smvd)模式的全零运动矢量差和解码器侧运动矢量差(dmvd)编解码模式用于当前视频块和当前视频块的比特流表示之间的转换,在smvd模式中,基于来自参考图片的参考列表0和参考列表1的两个目标参考图片中的参考块的对称位移生成用于该转换的两个额外运动候选;以及基于该确定执行该转换。
11.在另一个示例性方面当中,公开了另一种视频处理方法。该方法包括:从与当前视频块相关联的多个参考图片中选择第一参考图片和第二参考图片;以及基于所选的第一参考图片和第二参考图片执行当前视频块和当前视频块的比特流表示之间的转换,其中,第一参考图片与包括当前视频块的当前图片之间的第一距离和第二参考图片与当前图片之间的第二距离相等。
12.在另一个示例性方面当中,公开了另一种视频处理方法。该方法包括确定第一参考图片与包括当前视频块的当前图片之间的第一距离和第二参考图片与当前图片之间的第二距离不相等,并且基于该确定并针对当前视频块和当前视频块的比特流表示之间的转换对当前视频块禁用对称运动矢量差(smvd)模式。
13.在另一个示例性方面当中,公开了另一种视频处理方法。该方法包括:针对当前视频块基于第二参考图片列表的第二运动矢量差(mvd)推导第一参考图片列表的第一mvd;以及基于该推导执行当前视频块和当前视频块的比特流表示之间的转换,其中,第一mvd的范围是受限的。
14.在一个示例性方面当中,公开了一种视频处理方法。该方法包括:针对视频的当前图片的块与第一块的比特流表示之间的转换,基于该块的编解码信息确定对称运动矢量差(smvd)模式对于该块是否是允许的;以及基于该确定执行该转换。
15.在一个示例性方面当中,公开了一种视频处理方法。该方法包括:根据前述示例的方法,针对视频块和第一块的比特流表示之间的转换确定对称运动矢量(smv)模式对于该块是否是允许的;以及基于该确定执行该转换。
16.在一个示例性方面当中,公开了一种视频处理方法。该方法包括:针对视频的当前图片的块和该块的比特流表示之间的转换确定对称运动矢量差(smvd)模式对于该块是否是允许的,其中,是否允许smvd模式取决于当前图片的两个目标参考图片的推导过程,该过程包括用于在参考图片列表0中搜索前向目标参考图片并且在参考图片列表1中搜索后向目标参考图片的第一步骤以及用于在参考图片列表0中搜索后向目标参考图片并且在参考图片列表1中搜索前向目标参考图片的第二步骤,第一步骤和第二步骤的输出相互独立;以及基于该确定执行该转换。
17.在一个示例性方面当中,公开了一种视频处理方法。该方法包括:针对视频的当前图片的块和该块的比特流表示之间的转换,由与另一参考图片列表相关联的第一mvd推导一个参考图片列表的第二运动矢量差(mvd),其中,mvd既包括水平分量,又包括垂直分量;对第一mvd和第二mvd中的至少一者施加范围限制;以及基于受限的第一mvd和受限的第二mvd中的至少一者执行该转换。
18.在有一个示例性方面当中,公开了一种视频处理装置。该装置包括被配置为执行上文公开的方法的处理器。该装置可以进一步执行视频编码或视频解码。
19.在有一个示例性方面当中,公开了一种计算机可读介质。该介质具有存储于其上的用于上述方法的处理器实施的代码。
20.在本文件中描述了这些和其他方面。
附图说明
21.图1示出了用于merge候选列表构建的示例性推导过程。
22.图2示出了空域merge候选的位置的示例。
23.图3示出了针对空域merge候选的冗余检查所考虑的候选对的示例。
24.图4a

4b示出了n
×
2n分割和2n
×
n分割的第二pu的示例性位置。
25.图5是针对时域merge候选的运动矢量缩放的例示。
26.图6示出了时域merge候选的候选位置的示例c0和c1。
27.图7示出了组合双向预测merge候选的示例。
28.图8总结了运动矢量预测候选的推导过程。
29.图9示出了针对空域运动矢量候选的运动矢量缩放的例示。
30.图10示出了基于双边模板匹配的解码器侧运动矢量细化(dmvr)的示例。
31.图11示出了dmvr中在列表0和列表1之间成镜像的mvd(0,1)的示例。
32.图12示出了可以在一次迭代中检查的运动矢量(mv)的示例。
33.图13是对称模式的示例性说明。
34.图14是用于实施本文件中描述的方法的硬件平台的示例的框图。
35.图15是视频处理的示例性方法的流程图。
36.图16是视频处理的示例性方法的流程图。
37.图17是视频处理的示例性方法的流程图。
38.图18是视频处理的示例性方法的流程图。
39.图19是视频处理的示例性方法的流程图。
具体实施方式
40.本文中使用了章节标题,其目的在于促进理解的简便性,而非使在一个章节中公开的实施例仅局限于该章节。此外,尽管某些实施例是参考多功能视频编解码或其他具体视频编解码器描述的,但是所公开的技术还适用于其他视频编解码。此外,尽管一些实施例详细描述了视频编码步骤,但是应当理解,将通过解码器实施解开编码的对应解码步骤。此外,视频处理一词涵盖视频编码或压缩、视频解码或解压以及视频转码,在视频转码中视频由一种压缩格式表示变为以另一种压缩格式表示或者具有不同的压缩比特率。
41.1、概述
42.本专利文件涉及视频编解码技术。具体地,本专利文件涉及对称运动矢量差编解码。其可以应用于现有的视频编解码标准,如hevc,或待定案的标准(多功能视频编解码)。其还可能适用于未来的视频编解码标准或视频编解码器。
43.2、初步论述
44.视频编解码标准主要是通过开发公知的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)的参考软件中。2018年4月,在vceg(q6/16)和iso/iec jtc1 sc29/wg11(mpeg)之间创建了联合视频专家团队(jvet),其致力于研究以相较于hevc有50%的比特率下降为目标的vvc标准。
45.2.1hevc/h.265中的帧间预测
46.每一帧间预测pu具有针对一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。还可以使用inter_pred_idc对两个参考图片列表之一的使用进行信令通知。运动矢量可以被显式编解码成相对于预测子(predictor)的δ。
47.在采用skip模式对cu编解码时,一个pu与该cu相关联,并且没有显著的残差系数,没有编解码运动矢量δ或参考图片索引。merge模式被规定为使得当前pu的运动参数是从包括空域候选和时域候选的相邻pu获得的。merge模式可以被应用于任何帧间预测pu,而不仅针对skip模式的那些。merge模式的一种替代方案是运动参数的显式传输,其中,根据每一pu对运动矢量(更确切而言,相较于运动矢量预测子的运动矢量差(mvd))、每一参考图片列表的对应参考图片索引和参考图片列表使用进行显式信令通知。在本公开中将这样的模式称为高级运动矢量预测(amvp)。
48.在信令表明将采用这两个参考图片列表之一时,pu由一个样点块生成。这种做法被称为“单向预测”。对于p条带和b条带两者而言,单向预测都是可用的。
49.在信令表明这两个参考图片列表都要使用时,pu由两个样点块生成。这种做法被称为“双向预测”。双向预测只对b条带可用。
50.下文将提供有关在hevc中规定的这些帧间预测模式的细节。描述将开始于merge模式。
51.2.1.1参考图片列表
52.在hevc中,帧间预测一词用于表示从参考图片(而非当前解码图片)的数据元(例如,样点值或运动矢量)推导的预测。与h.264/avc中类似,一个图片可以是由多个参考图片预测的。用于帧间预测的参考图片被组织到一个或多个参考图片列表当中。参考索引识别出应当将列表中的哪个参考图片用于创建预测信号。
53.单个参考图片列表,即list 0被用于p条带,两个参考图片列表,即list 0和list 1被用于b条带。应当指出,包含在list 0/1中的参考图片可以参照俘获/显示顺序来自于过去图片和未来图片。
54.2.1.2merge模式
55.2.1.2.1merge模式的候选的推导
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)时,生成额外的候选。由于候选的数量是恒定的,因而采用截断一元二值化(tu)对最佳merge候选的索引编码。如果cu的尺寸等于8,那么当前cu的所有pu都共享单个merge候选列表,其等同于2n
×
2n预测单元的merge候选列表。
65.在下文中,将详述与前述步骤相关联的操作。
66.图1示出了用于merge候选列表构建的示例性推导过程。
67.2.1.2.2空域候选推导
68.在空域merge候选的推导当中,在位于图2所示的位置上的候选当中选择最多四个merge候选。推导的顺序为a1、b1、b0、a0和b2。只有在位置a1、b1、b0、a0的任何pu不可用(例如,因为其属于另一条带或片)或者受到帧内编解码时才考虑位置b2。在位置a1处的候选被添加之后,其余候选的添加要受到冗余检查,其确保从列表中排除具有相同运动信息的候选,从而提高编解码效率。为了降低计算复杂性,在所提及的冗余检查当中并未考虑所有可能的候选对。相反,仅考虑用图3的箭头联系起来的对,并且只有在用于冗余检查的对应候选不具有相同的运动信息时才将该候选添加至列表。重复运动信息的另一来源是与不同于2n
×
2n的分割相关联的“第二pu”。作为示例,图4a

4b分别示出了n
×
2n和2n
×
n情况的第二pu。在当前pu被分割成n
×
2n时,不考虑将处于位置a1处的候选用于列表构建。实际上,添加这一候选将引起两个预测单元具有相同的运动信息,其对于令编解码单元内只有一个pu而言是冗余的。类似地,在当前pu被分割成2n
×
n时,不考虑位置b1。
69.2.1.2.3时域候选推导
70.在这一步骤中,只有一个候选被添加至列表。尤其是,在这一时域merge候选的推导当中,在属于处在既定参考图片列表内的与当前图片之间具有最小poc差的图片的并置pu的基础上推导出缩放运动矢量。在条带标头内对将用于并置pu的推导的参考图片列表进行显式信令通知。用于时域merge候选的缩放运动矢量是如图5中的虚线所示获得的,其利用poc距离(即tb和td)由并置pu的运动矢量缩放而成,其中,tb被定义为当前图片的参考图片与当前图片之间的poc差,并且td被定义为并置图片的参考图片与并置图片之间的poc差。时域merge候选的参考图片索引被设为等于零。在hevc规约中描述了缩放过程的实际实现。对于b条带而言,获得两个运动矢量(一个针对参考图片列表0,另一个针对参考图片列表1),并且将其结合产生双向预测merge候选。
71.在属于参考帧的并置pu(y)中,在候选c0和c1之间选择时域候选的位置,如图6所示。如果位置c0处的pu不可用,是帧内编解码的,或者处于当前编解码树单元(ctu,又名lcu,最大编解码单元)行之外,则采用位置c1。否则,将位置c0用到时域merge候选的推导当中。
72.2.1.2.4额外候选插入
73.除了空域和时域merge候选之外,还有两种额外类型的merge候选:组合双向预测merge候选和零merge候选。组合双向预测merge候选是通过使用空域merge候选和时域merge候选生成的。组合双向预测merge候选仅用于b条带。组合双向预测候选是通过使初始候选的第一参考图片列表运动参数与另一个的第二参考图片列表运动参数相结合而生成的。如果这两个元组提供不同的运动假设,那么它们将形成新的双向预测候选。作为示例,图7示出了采用处于原始列表(左侧)内的两个候选(它们具有mvl0和refidxl0或者mvl1和refidxl1)来创建被添加至最终列表(右侧)的组合双向预测merge候选时的情况。关于所考虑的用以生成这些额外merge候选的组合存在很多规则。
74.零运动候选被插入以填充merge候选列表中的剩余条目,并因此命中maxnummergecand容量。这些候选具有零空域位移和开始于零并且在每次向列表添加新的零运动候选时增大的参考图片索引。最后,不对这些候选执行冗余检查。
75.2.1.3 amvp
76.amvp利用运动矢量与相邻pu的空时相关性,该空时相关性用于运动参数的显式传输。对于每一参考图片列表而言,运动矢量候选列表的构建方式是:首先检左侧、上侧时域相邻pu位置的可用性,去除冗余候选,并且添加零矢量,从而使候选列表具有恒定长度。之后,编码器可以从候选列表选择最佳预测子,并且传输指示所选候选的对应索引。与merge索引信令通知类似,采用截断一元码对最佳运动矢量候选的索引编码。在这一情况下要编码的最大值为2(参考图8)。在下文的章节中,将提供有关运动矢量预测候选的推导过程的细节。
77.2.1.3.1 amvp候选的推导
78.图8总结了运动矢量预测候选的推导过程。
79.在运动矢量预测中,考虑两种类型的运动矢量候选:空域运动矢量候选和时域运动矢量候选。对于空域运动矢量候选推导而言,最终在位于如图2所示的五个不同位置上的每一pu的运动矢量的基础上推导出两个运动矢量候选。
80.对于时域运动矢量候选推导而言,从基于两个不同并置位置推导出的两个候选中选出一个运动矢量候选。在制作空时候选的第一列表之后,去除该列表中的重复运动矢量候选。如果可能候选的数量大于二,那么从列表中去除这样的运动矢量候选:其在相关联的参考图片列表内的参考图片索引大于1。如果空时运动矢量候选的数量小于二,那么向列表添加额外的零运动矢量候选。
81.2.1.3.2空域运动矢量候选
82.在空域运动矢量候选的推导当中,在五个可能的候选当中考虑最多两个候选,这五个可能候选是从位于如图2所示的位置上的pu推导出,这些位置与运动merge的那些位置相同。针对当前pu的左侧的推导顺序被定义为a0、a1以及缩放a0、缩放a1。针对当前pu的上侧的推导顺序被定义为b0、b1、b2、缩放b0、缩放b1、缩放b2。对于每一侧,都因此存在可以被用作运动矢量候选的四种情况,其中两种情况不要求使用空域缩放,并且两种情况使用空域缩放。这四种不同情况的总结如下:
83.·
无空域缩放
84.–
(1)相同参考图片列表和相同参考图片索引(相同poc)
85.–
(2)不同参考图片列表,相同参考图片(相同poc)
86.·
空域缩放
87.–
(3)相同参考图片列表,不同参考图片索引(不同poc)
88.–
(4)不同参考图片列表和不同参考图片(不同poc)
89.首先检查无空域缩放情况,随后继之以空域缩放。当poc在相邻pu的参考图片和当前pu的参考图片之间存在不同时,不管参考图片列表如何,都考虑空域缩放。如果左侧候选的所有pu都不可用或者是帧内编解码的,那么允许针对上侧运动矢量的缩放,从而有助于左侧mv候选和上侧mv候选的并行推导。否则,不允许针对上侧运动矢量的空域缩放。
90.在空域缩放过程中,按照与时域缩放的类似的方式对相邻pu的运动矢量进行缩放,如图9所示。主要差异在于当前pu的参考图片列表和索引是作为输入给出的;实际缩放过程与时域缩放的相同。
91.2.1.3.3时域运动矢量候选
92.撇除参考图片索引推导之外,时域merge候选的推导的所有过程均与空域运动矢量候选的推导(参见图6)相同。将参考图片索引信令通知给解码器。
93.2.2 vvc中的帧间预测方法
94.有几种新的改进帧间预测的编解码工具,诸如用于信令通知mvd的自适应运动矢量差分辨率(amvr)、仿射预测模式、三角预测模式(tpm)、高级tmvp(atmvp,又称sbtmvp)、一般化双向预测(gbi)、双向光流(bio)。
95.2.2.1 vvc中的编解码块结构
96.在vvc中,采取四叉树/二叉树/多叉树(qt/bt/tt)结构将图片划分成方形或矩形块。
97.除了qt/bt/tt之外,在vvc中还对i帧采取分离(separate)树(又称双重编解码树)。借助于分离树,为亮度分量和色度分量单独地信令通知编解码块结构。
98.2.2.2解码器侧运动矢量细化(dmvr)
99.在双向预测操作中,对于一个块的区域的预测而言,结合分别使用列表0的运动矢量(mv)和列表1的mv形成的两个预测块,以形成单个预测信号。在解码器侧运动矢量细化(dmvr)方法中,进一步细化双向预测的两个运动矢量。
100.2.2.2.1 jem中的dmvr
101.在jem设计中,通过双边模板匹配处理细化运动矢量。在解码器中应用双边模板匹配来执行双边模板和参考图片中的重构样点之间的基于失真的搜索,从而在无需传输额外的运动信息的情况下获得细化的mv。在图10中示出了一个示例。双边模板被生成为两个预测块的加权组合(即,平均值),这两个预测块分别源自于列表0的初始mv0和列表1的mv1,如图10所示。模板匹配操作由计算所生成的模板和参考图片的样点区(围绕初始预测块)之间的成本度量构成。对于两个参考图片的每者而言,得到最低模板成本的mv被视为该列表的更新mv,以替代原始的那个。在jem中,对每一列表搜索九个mv候选。这九个mv候选包括原始mv和8个在水平方向内或垂直方向内或两者内相对于原始mv具有一个亮度样点的偏移量的周围mv。最后,两个新mv,即如图10所示的mv0’和mv1’被用于生成最终双向预测结果。绝对差之和(sad)被用作成本度量。请注意,在计算由一个周围mv生成的预测块的成本时,取整mv(到整像素程度)而非实际mv被实际用来获得预测块。
102.2.2.2.2 vvc中的dmvr
103.对于vvc中的dmvr,采取列表0和列表1之间的mvd镜像,如图11所示,并且执行双边匹配来细化mv,即在几个mvd候选当中找到最佳mvd。通过mvl0(l0x,l0y)和mvl1(l1x,l1y)来表示两个参考图片列表的mv。列表0的可以使成本函数(例如,sad)最小化的由(mvdx,mvdy)表示的mvd被定义为最佳mvd。对于sad函数而言,其被定义为列表0的参考块和列表1的参考块之间的sad,列表0的参考块是采用列表0参考图片中的运动矢量(l0x mvdx,l0y mvdy)推导的,列表1参考块是采用列表1参考图片内的运动矢量(l1x

mvdx,l1y

mvdy)推导的。
104.运动矢量细化过程可以迭代两次。在每次迭代中,可以按照两个步骤检查最多6个mvd(以整像素精确度),如图12所示。在第一步骤中,检查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:
105.mvdx=

1;
106.mvdy=

1;
107.if(sad(1,0)<sad(

1,0))
108.mvdx=1;
109.if(sad(0,1)<sad(0,

1))
110.mvdy=1;
111.在第一次迭代中,起始点是信令通知mv,并且在第二次迭代中,起始点是信令通知mv加第一次迭代中的选定最佳mvd。dmvr仅在一个参考图片是在先图片并且另一参考图片是随后图片并且这两个参考图片具有到当前图片相同的图片顺序计数距离时适用。
112.为了进一步简化dmvr的过程,提出了对jem中的设计的几项变化。更具体地,被vtm

4.0(将很快发布)采纳的dmvr设计具有下述主要特征:
113.·
在列表0和列表1之间的(0,0)位置sad小于阈值时提早终止。
114.·
当对于某一位置而言列表0和列表1之间的sad为零时提早终止。
115.·
dmvr的块尺寸:w*h>=64&&h>=8,其中,w和h是块的宽度和高度。
116.·
对于cu尺寸>16*16的dmvr而言,将cu划分成多个16x16子块。当只有cu的宽度或高度大于16时,仅在垂直方向或水平方向内对其进行划分。
117.·
参考块尺寸(w 7)*(h 7)(对于亮度而言)。
118.·
基于25点sad的整像素搜索(即,(

)2细化搜索范围,单阶段)。
119.·
基于双线性插值的dmvr。
120.·
基于“参数误差表面方程”的亚像素细化仅当在最后一次mv细化迭代中最低sad成本不等于零并且最佳mvd为(0,0)时执行这一过程。
121.·
亮度/色度mc w/参考块填充(如果需要的话)。
122.·
仅用于mc和tmvp的经细化mv。
123.2.2.2.2.1 dmvr的使用
124.在下述条件均为真时,可以启用dmvr:
125.–
sps中的dmvr启用标志(即,sps_dmvr_enabled_flag)等于1
126.–
tpm标志、帧间仿射标志和子块merge标志(要么atmvpmerge,要么仿射merge)标志全都等于0
127.–
merge标志等于1
128.–
对当前块进行双向预测,并且当前图片与列表1中的参考图片之间的poc距离等于列表0中的参考图片与当前图片之间的poc距离
129.–
当前cu高度大于或等于8
130.–
亮度样点的数量(cu宽度*高度)大于或等于64
131.2.2.2.2.2基于“参数误差表面方程”的亚像素细化
132.下面将总结该方法:
133.1.仅当中心位置是既定迭代中的最佳位置时才计算所拟合的参数误差表面。
134.2.中心位置成本和相距中心处于(

1,0)、(0,

1)、(1,0)和(0,1)位置上的成本用于拟合下述形式的2

d抛物线误差表面方程
135.e(x,y)=a(x

x0)2 b(y

y0)2 c
136.其中,(x0,y0)对应于具有最低成本的位置,c对应于最低成本值。通过解处于5个未知数当中的5个方程,(x0,y0)被计算为:
137.x0=(e(

1,0)

e(1,0))/(2(e(

1,0) e(1,0)

2e(0,0)))
138.y0=(e(0,

1)

e(0,1))/(2((e(0,

1) e(0,1)

2e(0,0)))
139.可以通过调整执行除法所依据的精确度(即,计算商的多少个比特)而根据所需的亚像素精确度计算(x0,y0)。对于1/16像素精度而言,只需计算商的绝对值中的4个比特,这使其适用于每cu所需的2次除法的基于快速移位减法的实施方式。
140.3.所计算的(x0,y0)被加到整像素距离细化mv上,从而得到亚像素精确细化δmv。
141.2.2.3对称运动矢量差
142.对双向预测中的运动信息编解码应用对称运动矢量差(smvd)。
143.首先,在条带级上,采用下述步骤推导出分别指示smvd模式中使用的列表0/1的参考图片索引的变量refidxsyml0和refidxsyml1。在这两个变量中的至少一者等于

1时,应当禁用smvd模式。
144.8.3.5针对对称运动矢量差参考索引的解码过程
145.这一过程的输出是指定对称运动矢量差的列表0和列表1参考图片索引的refidxsyml0和refidxsyml0,即,此时对于编解码单元而言sym_mvd_flag等于1。
146.变量refidxsymlx(其中,x为0和1)的推导如下:
147.步骤#1:针对每一参考图片列表的第一环
148.–
变量currpic指定当前图片。
149.–
refidxsyml0被设为等于

1。
150.–
对于每一索引i(其中,i=0..numrefidxactive[0]),下述内容适用:
[0151]

在所有的下述条件均为真时,refidxsyml0被设为i:
[0152]

diffpicordercnt(currpic,refpiclist[0][i])>0,
[0153]

diffpicordercnt(currpic,refpiclist[0][i])<diffpicordercnt(currpic,refpiclist[0][refidxsyml0])或者refidxsyml0等于

1。
[0154]

refidxsyml1被设为等于

1。
[0155]

对于每一索引i(其中,i=0..numrefidxactive[1]),下述内容适用:
[0156]

在所有的下述条件均为真时,refidxsyml1被设为i:
[0157]

diffpicordercnt(currpic,refpiclist[1][i])<0,
[0158]

diffpicordercnt(currpic,refpiclist[1][i])>diffpicordercnt(currpic,refpiclist[1][refidxsyml1])或者refidxsyml1等于

1。
[0159]
步骤#2:针对每一参考图片列表的第二环
[0160]

当refidxsyml1等于

1或者refidxsyml1等于

1时,下述内容适用:
[0161]

对于每一索引i(其中,i=0..numrefidxactive[0]),下述内容适用:
[0162]

在所有的下述条件均为真时,refidxsyml0被设为i:
[0163]

diffpicordercnt(currpic,refpiclist[0][i])<0,
[0164]

diffpicordercnt(currpic,refpiclist[0][i])>diffpicordercnt(currpic,refpiclist[0][refidxsyml0])或者refidxsyml0等于

1。
[0165]

对于每一索引i(其中,i=0..numrefidxactive[1]),下述内容适用:
[0166]

在所有的下述条件均为真时,refidxsyml1被设为i:
[0167]

diffpicordercnt(currpic,refpiclist[1][i])>0,
[0168]
diffpicordercnt(currpic,refpiclist[1][i])<diffpicordercnt(currpic,refpiclist[1][refidxsyml1])或者refidxsyml1等于

1。
[0169]
其次,在cu级上,如果该cu的预测方向是双向预测并且bidirpredflag等于1,那么显式信令通知表明是否采用对称模式的对称模式标志。
[0170]
在该标志为真时,仅对mvp_l0_flag、mvp_l1_flag和mvd0进行显式信令通知。对于列表0和列表1,参考索引被分别设为等于refidxsyml0、refidxsyml1。mvd1刚好被设为等于

mvd0。在下文的公式中示出了最终运动矢量。
[0171][0172]
图13是对称模式的示例性说明。
[0173]
相关语法如下:
[0174]
[0175]
[0176]
[0177][0178]
2.2.4 mvd语义
[0179]
7.4.8.8运动矢量差语义
[0180]
abs_mvd_greater0_flag[compidx]指定运动矢量分量差的绝对值是否大于0。
[0181]
abs_mvd_greater1_flag[compidx]指定运动矢量分量差的绝对值是否大于1。
[0182]
当abs_mvd_greater1_flag[compidx]不存在时,那么推断其等于0。
[0183]
abs_mvd_minus2[compidx]加2指定运动矢量分量差的绝对值。
[0184]
当abs_mvd_minus2[compidx]不存在时,那么推断其等于

1。
[0185]
mvd_sign_flag[compidx]如下指定运动矢量分量差的符号:
[0186]

如果mvd_sign_flag[compidx]等于0,那么对应的运动矢量分量差具有正值。
[0187]

否则(mvd_sign_flag[compidx]等于1),对应的运动矢量分量差具有负值。
[0188]
当mvd_sign_flag[compidx]不存在时,那么推断其等于0。
[0189]
对于compidx=0..1而言,运动矢量差lmvd[compidx]的推导如下:
[0190]
lmvd[compidx]=abs_mvd_greater0_flag[compidx]*(abs_mvd_minus2[compidx] 2)*(1

2*mvd_sign_flag[compidx])(7 126)
[0191]
lmvd[compidx]的值应当处于

215到215

1的范围内,包括

215和215

1。
[0192]
依据motionmodelidc[x0][y0]的值,运动矢量差的推导如下:
[0193]

如果motionmodelidc[x0][y0]等于0,那么变量mvdlx[x0][y0][compidx](其中x为0或1)指定所要使用的列表x矢量分量与其预测之间的差。阵列索引x0、y0指定所考虑的编解码块的左上亮度样点相对于该图片的左上亮度样点位置(x0,y0)。向水平运动矢量分量差赋值compidx=0,并且向垂直运动矢量分量赋值compidx=1。
[0194]

如果reflist等于0,那么对于compidx=0..1而言,mvdl0[x0][y0][compidx]被设为等于lmvd[compidx]。
[0195]

否则(reflist等于1),对于compidx=0..1而言,mvdl1[x0][y0][compidx]被设为等于lmvd[compidx]。
[0196]

否则(motionmodelidc[x0][y0]不等于0),变量mvdcplx[x0][y0][cpidx][compidx](其中,x为0或1)指定所要使用的列表x矢量分量与其预测之间的差。阵列索引x0、y0指定所考虑的编解码块的左上亮度样点相对于该图片的左上亮度样点位置(x0,y0),阵列索引cpidx指定控制点索引。向水平运动矢量分量差赋值compidx=0,并且向垂直运动
矢量分量赋值compidx=1。
[0197]

如果reflist等于0,那么对于compidx=0..1而言,mvdcpl0[x0][y0][cpidx][compidx]被设为等于lmvd[compidx]。
[0198]

否则(reflist等于1),对于compidx=0..1而言,mvdcpl1[x0][y0][cpidx][compidx]被设为等于lmvd[compidx]。
[0199]
3.所公开的实施例解决的问题的示例
[0200]
当前smvd可能具有下述问题:
[0201]
1.当mvd_l1_zero_flag为真时不允许smvd,这样做可能具有低效率。
[0202]
2.在当前smvd模式下,总是信令通知参考图片列表0的mvd,这样做未考虑边信息的比特率成本。
[0203]
3.smvd模式中使用的列表0和列表1的目标参考图片索引是在条带级内采用两个步骤推导的:
[0204]
a.从列表0内的所有前向参考图片找到最接近的参考图片,并且从列表1内的所有后向参考图片找到最接近的参考图片;
[0205]
b.如果未找到其中之一,那么朝相反方向搜索。
[0206]
对于下述情况要指出的是,必须针对所有下述情况调用第二步骤(即,步骤b):
[0207]
1)列表1只有前向参考图片,并且列表0只有后向参考图片;
[0208]
2)列表0和列表1两者只有前向参考图片;
[0209]
3)列表0和列表1两者只有后向参考图片;
[0210]
4)类别x既具有前向参考图片又具有后向参考图片,但是列表y(y=1

x)仅具有与项目编号a中提及的那些不同的参考图片。
[0211]
对于情况2)和情况3),启用smvd是不合理的,因为在同一方向(前向或后向)内的两个参考之间没有对称运动。
[0212]
4.此外,借助于该搜索方法,有可能找到并非最接近当前图片的参考图片,这可能限制smvd的编解码性能。当前设计具有从列表0寻找前参考图片向并且从列表1寻找后向参考图片的限制,或反之。例如,如果列表0和列表1既有前向参考图片又有后向参考图片,但是列表0内的最接近参考图片是来自后向的,并且列表1中的最接近参考图片是来自前向的。就当前设计而言,将没有机会从列表0中的后向参考图片中选择出最接近的那个。
[0213]
5.在列表0既具有前向参考图片又具有后向参考图片,并且列表1仅具有前向参考图片时,就当前设计而言,将金别处两个前向参考图片,这与smvd设计的原理相矛盾。
[0214]
6.可以调用针对每一参考图片列表的两个环来找到目标参考图片,这样做可能提高复杂性。
[0215]
4.在smvd模式下禁用dmvr,即使在dmvr和smvd两者内都采取对称mvd。
[0216]
5.有可能smvd内的所有mvd均为零,这可能与正常amvr模式的情况类似。
[0217]
6.列表1的mvd是由针对列表0信令通知的mvd推导的,即,与列表0的mvd的水平分量和垂直分量两者均相反。这样的假定是两个参考图片与当前图片具有相同距离。然而,事实并非总是如此。
[0218]
7.vvc将mvd的范围定义为使得mvd应当处于[
‑215
,2
15

1]内。在smvd中,列表1的mvd是由针对列表0信令通知的mvd导出的,其可以超出这些关于mvd的约束。
[0219]
4.示例性实施例
[0220]
下文的列举应被视为解释一般概念的示例。不应狭义地解释这些实施例。此外,这些发明可以以任何方式组合。
[0221]
在本文件当中,解码器侧运动矢量推导(dmvd)包括如dmvr和fruc的方法以及如bio的方法,dmvr和fruc执行运动估算,以推导或细化块/子块运动信息,bio执行逐样点运动细化。
[0222]
应用于预测块的不相等权重可以指在必须对预测块应用额外运算而非两个预测块的求平均等的编解码工具的gbi过程、lic过程、加权预测过程或者其他编码/解码过程中使用的那些权重。
[0223]
假设列表0和列表1内的参考图片分别为ref0和ref1,那么当前图片与ref0之间的poc距离为pocdist0(例如,(当前图片的poc减去ref0的poc)的绝对值),并且ref1与当前图片之间的poc距离为pocdist1(例如,(ref1的poc减去当前图片的poc)的绝对值)。将块的宽度和高度分别表示为w和h。假设函数abs(x)返回x的绝对值。
[0224]
全零mvd表示所有mvd(既包括x分量,又包括y分量)均被信令通知为等于零的情况。
[0225]
对于smvd模式而言,分别通过refidxl0和refidxl1表示两个目标参考图片。两个变量currpocdiffl0和currpocdiffl1被定义为表示参考图片与各当前图片之间的poc距离。例如,currpocdiffl0=poc(当前图片)

poc(refidxl0),currpocdiffl1=poc(当前图片)

poc(refidxl1),abs(x)=x>0?x:

x。
[0226]
1.即使在表明列表x(x=0,1)中的mvd被强制为零时(例如,在mvd_l1_zero_flag等于1时),也可以允许smvd。
[0227]
a.在一个示例中,在列表1的mvd编解码未通过编解码被强制为零(例如,mvd_l1_zero_flag等于1)时,仍然可以对块启用smvd模式。
[0228]
i.在一个示例中,此外,参考图片列表1的mvd未被强制为零(例如,mvd_l1_zero_flag等于1),但是其可以由参考图片列表0的关联mvd推导出。
[0229]
b.在一个示例中,在smvd模式下,可以不针对列表x信令通知mvd,并且可以针对列表y=1

x信令通知mvd,并且可以采用列表y内的信令通知mvd推导(例如,成镜像)列表x内的mvd。
[0230]
i.例如,x可以等于0。
[0231]
c.替代性地,在表明列表x内的mvd被强制为零时,可以不允许smvd。
[0232]
i.在不允许smvd时,针对smvd的所有相关语法元素都可以不做信令通知。例如,可以隐式推导出它们。
[0233]
2.建议在smvd模式下对参考图片列表1的mvd信息编解码。在这种情况下,参考图片列表0的mvd是由参考图片列表1的mvd推导的。
[0234]
a.在一个示例中,还可以在比特流中信令通知具有有待信令通知(或者有待推导)的关联mvd的参考列表。
[0235]
i.在一个示例中,可以在序列/图片/条带/片/视频单元级内,例如,在sps/pps/条带标头内信令通知需要对关联mvd进行信令通知的参考图片列表的指示。
[0236]
b.在一个示例中,可以根据参考图片列表中的参考图片推导出具有有待信令通知
的(或者有待推导的)关联mvd的参考列表。
[0237]
i.在一个示例中,可以根据两个目标参考图片推导出具有有待信令通知(或者有待推导)的关联mvd的参考列表。
[0238]
1.替代性地,此外,如果abs(currpocdiffl0)大于abs(currpocdiffl1),那么可以信令通知列表0的mvd。否则,可以信令通知列表1的mvd。
[0239]
2.替代性地,此外,如果abs(currpocdiffl0)大于abs(currpocdiffl1),那么可以信令通知列表1的mvd。否则,可以信令通知列表0的mvd。
[0240]
3.替代性地,此外,如果abs(currpocdiffl0)大于或等于abs(currpocdiffl1),那么可以信令通知列表0的mvd。否则,可以信令通知列表1的mvd。
[0241]
4.替代性地,此外,如果abs(currpocdiffl0)大于或等于abs(currpocdiffl1),那么可以信令通知列表1的mvd。否则,可以信令通知列表0的mvd。
[0242]
5.替代性地,此外,如果abs(currpocdiffl0)等于abs(currpocdiffl1),那么可以信令通知列表0的mvd。否则,可以信令通知列表1的mvd。
[0243]
6.替代性地,此外,如果abs(currpocdiffl0)等于abs(currpocdiffl1),那么可以信令通知列表1的mvd。否则,可以信令通知列表0的mvd。
[0244]
c.在一个示例中,具有有待信令通知(或者有待推导)的关联mvd的参考列表还可以从一个视频单元(例如,条带/片组/片/砖块/cu)到另一个视频单元改变。
[0245]
i.在一个示例中,具有有待信令通知的关联mvd的参考列表的选择可以取决于相邻块的参考图片信息。
[0246]
ii.在一个示例中,选择在pocdist0和pocdist1之间(其中,这两个参考图片就是在smvd中使用的那两个)具有较小绝对poc距离的参考图片列表。
[0247]
1.在一个示例中,如果pocdist0小于pocdist1,那么信令通知列表0的mvd,并且推导列表1的mvd。
[0248]
2.替代性地,选择在pocdist0和pocdist1之间(其中,这两个参考图片就是在smvd中使用的那两个)具有较大绝对poc距离的参考图片列表。
[0249]
3.如果pocdist0和pocdist1相等,那么可以选择列表x(x为0或1)。
[0250]
3.建议允许两个目标参考图片均来自同一参考图片列表的smvd。
[0251]
a.在一个示例中,两个目标参考图片之一是前向的(即,其poc小于当前poc),并且另一个是后向的(即,其poc大于当前poc)。
[0252]
b.在一个示例中,可以检查列表0和列表1内的所有参考图片,从而找到第一参考图片和第二参考图片,第一参考图片的poc在所有小于当前poc的参考图片poc中最接近当前poc,第二参考图片的poc在所有大于当前poc的参考图片poc中最接近当前poc。
[0253]
4.建议在从第一步骤找到了目标参考图片中的至少一者时跳过smvd的目标参考图片推导中的第二步骤。
[0254]
a.在一个示例中,如果在列表0中找到了一个参考图片,并且未在列表1中找到参考图片,那么跳过smvd模式的目标参考图片推导中的第二步骤。
[0255]
b.在一个示例中,如果未在列表0中找到参考图片,并且在列表1中找到了一个参考图片,那么跳过smvd模式的目标参考图片推导中的第二步骤。
[0256]
c.替代性地,此外,禁用smvd。也就是说,跳过所有smvd相关语法的信令。
[0257]
5.建议使第一步骤(例如,章节2.2.3中的步骤#1)的输出与第二步骤(例如,章节2.2.3中的步骤#2)解耦。仅支持三种情况:两个目标参考图片索引可以要么是在第一步骤(搜索列表0中的前向参考图片以获得列表0中的目标参考图片,并且搜索列表1中的后向参考图片,以获得列表1中的目标参考图片)中,要么是在第二步骤(搜索列表0中的后向参考图片以获得列表0中的目标参考图片,并且搜索列表1中的前向参考图片,以获得列表1中的目标参考图片)中找到的;否则(并未在第一步骤中,或者在第二步骤中找到所有目标参考图片)禁用smvd。
[0258]
a.在一个示例中,在目标参考图片中的至少一者未被发现时调用smvd模式的目标参考图片推导中的第二步骤,在调用之前将目标参考图片索引重置为不可用(例如,将refidxsyml0和refidxsyml1重置为

1)。
[0259]
6.建议增加这样一个约束条件:所找到的两个目标参考图片(如果可用)必须一个具有相较于当前图片的较小poc值,一个具有相较于当前图片的较大poc值。
[0260]
a.在一个示例中,在目标参考图片推导过程之后增加对poc距离的额外检查,并且可以将目标参考图片重置为不可用(例如,将refidxsyml0和refidxsyml1重置为

1)。
[0261]
b.在一个示例中,当(refidxsyml1!=

1&&refidxsyml0!=

1&&diffpicordercnt(currpic,refpiclist[0][refidxsyml1])*diffpicordercnt(currpic,refpiclist[1][refidxsyml1])>0)为真时,目标参考图片可以被重置为不可用。
[0262]
7.建议去除从列表0找到前向参考图片(其poc小于当前poc)并且从列表1找到后向参考图片(其poc大于当前poc)或反之的这一限制。
[0263]
a.在一个示例中,smvd中使用的目标参考图片可以是借助于两项相关检查(每一参考图片列表采用一个环)推导的。
[0264]
i.第一项检查是要在列表x中找到一个参考图片(x为0或1)。
[0265]
ii.第二项检查是根据第一检查的输出和列表y(y为1

x)中的参考图片找到列表y中的一个参考图片。
[0266]
b.在一个示例中,首先针对列表x(x为0或1)计算每一参考图片与当前图片之间的poc距离,而不管其根据既定顺序是前向还是后向的。
[0267]
i.在一个示例中,该既定顺序是参考图片索引的升序/将序。
[0268]
ii.在一个示例中,选择具有最小(或最大)poc距离(例如,abs(poc(参考图片)

poc(当前图片))的参考图片作为列表x的目标参考图片(通过refinlx表示)。
[0269]
iii.替代性地,此外,根据参考图片refinlx从列表y(y为1

x)选择一个参考图片。
[0270]
1.在一个示例中,如果refinlx具有相较于当前图片的较小poc值,那么列表y的目标参考图片必须具有相较于当前图片的较大poc值。
[0271]
2.在一个示例中,如果refinlx具有相较于当前图片的较大poc值,那么列表y的目标参考图片必须具有相较于当前图片的较小poc值。
[0272]
3.在一个示例中,列表y的目标参考图片必须是列表y中的所有后向(如果refinlx是前向的)或前向参考图片(如果refinlx是后向的)中具有相较于当前图片的最小poc距离的那个。
[0273]
8.是否允许smvd可以取决于块中的编解码信息。
[0274]
a.在一个示例中,编解码信息可以包括mvd精确度信息、双向预测中的预测样点的
权重。
[0275]
b.在一个示例中,在为双向预测块选择了不相等的权重时可以不允许smvd。
[0276]
i.替代性地,在smvd模式下可以不允许不相等的权重。
[0277]
ii.在不允许smvd时,所有与smvd相关的语法元素都可以不被信令通知和/或隐式推导。
[0278]
iii.在不允许不相等权重时,所有与不等权重相关的语法元素都可以不被信令通知和/或隐式推导。
[0279]
iv.
[0280]
c.在一个示例中,对于某一mvd/mv精确度可以不允许smvd。
[0281]
i.例如,对于n像素mv/mvd精确度(例如,n=1,4)不允许smvd。
[0282]
ii.替代性地,在smvd模式下不允许amvr。例如,在smvd模式下只允许n像素mv/mvd精确度,例如,n=1/4。
[0283]
iii.在不允许smvd时,与smvd相关的所有语法元素都可以不被信令通知和隐式推导。
[0284]
iv.在不允许amvr时,与amvr相关的所有语法元素都可以不被信令通知和隐式推导。
[0285]
9.在smvd模式下可以启用dmvr或/和其他dmvd方法。
[0286]
a.在一个示例中,在smvd模式下,如果mv/mvd精确度为n像素,那么可以采用dmvr或/和其他dmvd方法通过mvddmvr细化mvd。mvddmvr具有m像素精确度。n,m=1/16,1/8,1/4,1/2,1,2,4,8,16等等。
[0287]
b.在一个示例中,m可以小于或等于n。
[0288]
c.在一个示例中,在smvd模式下可以不对mvd进行信令通知,相反,可以应用dmvr或/和其他dmvd方法来生成mvd。
[0289]
i.替代性地,此外,可以不对amvr信息进行信令通知,并且可以借助于预定义值推导出mv/mvd精确度(例如,mvd具有1/4像素精确度)。
[0290]
d.在一个示例中,在smvd模式下可以对是否应用dmvr或/和其他dmvd方法的指示进行信令通知。
[0291]
i.如果应用dmvr或/和其他dmvd方法,那么可以不对mvd进行信令通知。
[0292]
ii.在一个示例中,对于某些mv/mvd精确度可以信令通知这样的指示。例如,可以对1像素或/和4像素mv/mvd精确度信令通知这样的指示。
[0293]
iii.在一个示例中,仅当pocdist0等于pocdist1并且按照显示顺序ref0是当前图片的在先图片且ref1是当前图片的随后图片时,才可以信令通知这样的指示。
[0294]
iv.在一个示例中,仅当pocdist0等于pocdist1并且按照显示顺序ref0是当前图片的随后图片且ref1是当前图片的在先图片时,才可以信令通知这样的指示。
[0295]
10.是否允许全零mvd可以取决于块的编解码信息。例如,编解码信息可以包括smvd模式信息、块的运动信息。
[0296]
a.在一个示例中,在smvd模式下可以不允许全零mvd。
[0297]
i.例如,如果在smvd模式下水平mvd为零,那么可以不对垂直mvd直接编码,而是在编码之前使垂直mvd下降1(例如,如果垂直mvd为正)或者提高1(例如,如果垂直mvd为负),
并且可以在解码之后使垂直mvd提高1(如果垂直mvd为正)或者下降1(如果垂直mvd为负)。
[0298]
ii.例如,如果在smvd模式下垂直mvd为零,那么可以不对水平mvd直接编码,而是在编码之前使水平mvd下降1(例如,如果水平mvd为正)或者提高1(例如,如果水平mvd为负),并且可以在解码之后使水平mvd提高1(如果水平mvd为正)或者下降1(如果水平mvd为负)。
[0299]
b.在一个示例中,在非smvd模式下可以不允许全零mvd。
[0300]
i.例如,在非smvd模式下,如果块的参考图片与smvd模式块使用的推导的参考图片相同,那么可以不允许全零mvd。
[0301]
1.例如,假设在非smvd模式下总共有k个mvd分量,如果前k

1个mvd分量为零的话。那么可以不直接对第k个mvd部件直接编码,而是在编码之前使其下降1(例如,如果其为正)或者使其提高1(例如,如果其为负)并且可以在解码之后使其提高1(例如,如果其为正)或者下降1(例如,如果其为负)。
[0302]
11.建议不尝试找到最接近参考图片(要么前向要么后向),而是为找到两个与当前图片之间具有相等距离的目标参考图片赋予较高优先级。
[0303]
a.假设在列表0和列表1内有n对参考图片,这n对参考图片由(refl0
i
,refl1
i
)表示,其中i为[0,n

1],那么这n对之一可以被选作smvd中使用的两个目标参考图片。
[0304]
i.替代性地,此外,对于一对而言,一个参考图片来自列表0,并且另一个来自列表1。
[0305]
ii.替代性地,此外,对于一对而言,一个参考图片是来自列表0的前向参考图片,并且另一个是来自列表1的后向参考图片。
[0306]
iii.替代性地,此外,对于一对而言,一个参考图片是来自列表0的后向参考图片,另一个是来自列表1的前向参考图片。
[0307]
iv.替代性地,此外,对于一对而言,一个参考图片是后向参考图片,并且另一个是前向参考图片,其中两者均来自同一参考图片列表。
[0308]
b.假设在列表0和列表1内有n对参考图片,这n对参考图片由(refl0
i
,refl1
i
)表示,其中i为[0,n

1],那么这n对中的具有到当前图片的最小或最大绝对poc距离的一对可以被选作smvd中使用的两个目标参考图片。
[0309]
c.当在参考图片列表中没有这样的对时,可以根据到当前图片的poc距离选择目标参考图片,例如,其利用当前方式或者上述方法。
[0310]
12.建议在两个目标参考图片具有到当前图片的不等距离时(即currpocdiffl0!=currpocdiffl1)禁用smvd。
[0311]
a.替代性地,此外,可以跳过smvd相关语法元素(例如,sym_mvd_flag)的信令通知,并且将smvd推断为不被使用。
[0312]
13.一种方法根据两个参考图片与当前图片的poc值由参考图片列表y(其中,y为1

x)的信令通知mvd推导出参考图片列表x的mvd。假设参考图片列表y的信令通知mvd是具有通过mvdly[0]和mvdly[1]表示的水平分量和垂直分量的mvdly,那么可以通过下述方法推导出通过(mvdlx[0],mvdlx[1])表示的参考图片列表x的mvd:
[0313]
a.在一个示例中,mvdlx[0]=mvdly[0]*(poc(列表x中的targetref)

poc(当前图片))/(poc(列表y中的targetref)

poc(当前图片))。
[0314]
b.在一个示例中,mvdlx[1]=mvdly[1]*(poc(列表x中的targetref)

poc(当前图片))/(poc(列表y中的targetref)

poc(当前图片))。
[0315]
c.在一个示例中,可以将上述方法应用于smvd模式,其中,建议不总是使用列表0的相反mvd作为列表1的mvd,而是在推导列表1的mvd时根据poc距离对列表0的mvd进行缩放。
[0316]
d.类似地,在smvd中,如果信令通知了列表1的mvd,那么建议在推导列表0的mvd时根据poc距离对列表1的mvd进行缩放。
[0317]
e.替代性地,上述方法可以适用于对称mv编解码模式,其中,可以不信令通知一个参考图片的mv的信息,而是通过缩放由另一参考图片列表对其进行推导。
[0318]
14.在一个参考图片列表的mvd是由与另一参考图片列表相关联的另一mvd推导出的时候,必须满足有关所推导mvd的范围的限制。
[0319]
a.在一个示例中,借助于smvd方法由第一mvd推导出的第二mvd的x分量和/或y分量应当处于预定义范围内。
[0320]
b.在一个示例中,应当根据预定义范围对第二mvd的x分量和/或y分量做出裁剪或者有条件地修改。
[0321]
i.例如,mz被裁剪成mz=clip3(
‑2n
,2
n

1,mz),其中,mz表示第二mvd的x分量或y分量。n是诸如16或18的整数。
[0322]
1.例如,n可以是15或17。
[0323]
ii.例如,mz被裁剪成mz=clip3(
‑2n
1,2
n

1,mz),其中,mz表示第二mvd的x分量或y分量。n是诸如16或18的整数。
[0324]
1.例如,n可以是15或17。
[0325]
iii.例如,mz被修改成mz=2
n

1(如果mz=2
n
),其中,mz表示第二mvd的x分量或y分量。n是诸如16或18的整数。
[0326]
1.例如,n可以是15或17。
[0327]
c.在一个示例中,在一致性比特流中,第二mvd的x分量和y分量应当处于预定义范围内。
[0328]
i.在一个示例中,在一致性比特流中,第二mvd的x分量和/或y分量应当处于[
‑2n
,2
n

1](含端点)范围内。n是诸如16或18的整数。
[0329]
1.例如,n可以是15或17。
[0330]
ii.在一个示例中,在一致性比特流中,第二mvd的x分量和/或y分量应当处于[
‑2n
1,2
n

1](含端点)范围内。n是诸如16或18的整数。
[0331]
1.例如,n可以是15或17。
[0332]
d.在一个示例中,应当根据第一预定义范围裁剪或者有条件地修改第一mvd的x分量和/或y分量,从而使借助于smvd方法由第一mvd推导的第二mvd的x分量和/或y分量可以处于第二预定义范围内。
[0333]
i.例如,mz被裁剪成mz=clip3(
‑2n
1,2
n

1,mz),其中,mz表示第一mvd的x分量或y分量。n是诸如16或18的整数。
[0334]
1.例如,n可以是15或17。
[0335]
ii.例如,mz被修改成mz=
‑2n
1(如果mz=
‑2n
),其中,mz表示第一mvd的x分量或y
分量。n是诸如16或18的整数。
[0336]
1.例如,n可以是15或17。
[0337]
e.在一个示例中,在一致性比特流中第一mvd的x分量和/或y分量应当处于第一预定义范围内,从而使借助于smvd方法由第一mvd推导的第二mvd的x分量和/或y分量可以处于第二预定义范围内。
[0338]
i.在一个示例中,在不应用smvd时,第一预定义范围可以不同于信令通知mvd的预定义范围。
[0339]
ii.在一个示例中,在一致性比特流中,第一mvd的x分量和/或y分量应当处于[
‑2n
1,2
n

1](含端点)范围内。n是诸如16或18的整数。
[0340]
1.例如,n可以是15或17。
[0341]
f.替代性地,建议不使信令通知mvd局限于处在[
‑2n
,2
n

1]内,而是使其局限于处在[
‑2n
1,2
n

1]内。
[0342]
i.在一个示例中,smvd的mvd范围(或者由另一参考图片列表推导mvd的工具)可以被设置为不同于非smvd编解码工具的那些mvd。
[0343]
1.例如,信令通知mvd将处于[
‑2n
smvdflag,2
n

1]内,其中,如果应用smvd,那么smvdflag等于1,如果不应用smvd,那么smvdflag等于0。
[0344]
g.在一个示例中,可以在根据mv分辨率修改mvd之前执行对mvd的裁剪或约束(例如,vvc中的或者如上文所公开的)。
[0345]
i.替代性地,可以在根据mv分辨率修改mvd之后执行对mvd的裁剪或约束(例如,vvc中的或者如上文所公开的)。
[0346]
h.在一个示例中,对mvd的裁剪或约束(例如,vvc中的或者如上文所公开的)可以取决于mv分辨率。
[0347]
5.实施例
[0348]
通过加粗斜体突出呈现对vvc工作草案版本5施加的修改。采用删除线标记删除文本。
[0349]
5.1在mvd_l1_zero_flag为真时关于smvd的使用的实施例#1
[0350]
[0351]
[0352]
[0353]
[0354]
[0355]
[0356]
[0357]
[0358][0359]
5.2关于选择在smvd中使用的参考图片的实施例#2
[0360]
5.2.1一个示例
[0361]
这一小节给出了对应于第4章的项目符号4的一个示例。
[0362]
8.3.5针对对称运动矢量差参考索引的解码过程
[0363]
这一过程的输出是指定对称运动矢量差的列表0和列表1参考图片索引的refidxsyml0和refidxsyml0,即,此时对于编解码单元而言sym_mvd_flag等于1。
[0364]
变量refidxsymlx(其中,x为0和1)的推导如下:
[0365]

变量currpic指定当前图片。
[0366]

refidxsyml0被设为等于

1。
[0367]

对于每一索引i(其中,i=0..numrefidxactive0.–
1),下述内容适用:
[0368]

在所有的下述条件均为真时,refidxsyml0被设为i:
[0369]

diffpicordercnt(currpic,refpiclist[0][i])>0,
[0370]

diffpicordercnt(currpic,refpiclist[0][i])<diffpicordercnt(currpic,refpiclist[0][refidxsyml0])或者refidxsyml0等于

1。
[0371]

refidxsyml1被设为等于

1。
[0372]

对于每一索引i(其中,i=0..numrefidxactive[1]

1),下述内容适用:
[0373]

在所有的下述条件均为真时,refidxsyml1被设为i:
[0374]

diffpicordercnt(currpic,refpiclist[1][i])<0,
[0375]

diffpicordercnt(currpic,refpiclist[1][i])>diffpicordercnt(currpic,refpiclist[1][refidxsyml1])或者refidxsyml1等于

1。
[0376]

当refidxsyml0等于

1并且或者refidxsyml1等于

1时,下述内容适用:
[0377]

对于每一索引i(其中,i=0..numrefidxactive0.–
1),下述内容适用:
[0378]

在所有的下述条件均为真时,refidxsyml0被设为i:
[0379]

diffpicordercnt(currpic,refpiclist[0][i])<0,
[0380]

diffpicordercnt(currpic,refpiclist[0][i])>diffpicordercnt(currpic,refpiclist[0][refidxsyml0])或者refidxsyml0等于

1。
[0381]

对于每一索引i(其中,i=0..numrefidxactive[1]

1),下述内容适用:
[0382]

在所有的下述条件均为真时,refidxsyml1被设为i:
[0383]

diffpicordercnt(currpic,refpiclist[1][i])>0,
[0384]

diffpicordercnt(currpic,refpiclist[1][i])<diffpicordercnt(currpic,refpiclist[1][refidxsyml1])或者refidxsyml1等于

1。
[0385]
5.2.2一个示例
[0386]
这一小节给出了对应于第4章的项目符号5的一个示例。
[0387]
8.3.5针对对称运动矢量差参考索引的解码过程
[0388]
这一过程的输出是指定对称运动矢量差的列表0和列表1参考图片索引的refidxsyml0和refidxsyml0,即,此时对于编解码单元而言sym_mvd_flag等于1。
[0389]
变量refidxsymlx(其中,x为0和1)的推导如下:
[0390]

变量currpic指定当前图片。
[0391]

refidxsyml0被设为等于

1。
[0392]

对于每一索引i(其中,i=0..numrefidxactive0.–
1),下述内容适用:
[0393]

在所有的下述条件均为真时,refidxsyml0被设为i:
[0394]

diffpicordercnt(currpic,refpiclist[0][i])>0,
[0395]

diffpicordercnt(currpic,refpiclist[0][i])<diffpicordercnt(currpic,refpiclist[0][refidxsyml0])或者refidxsyml0等于

1。
[0396]

refidxsyml1被设为等于

1。
[0397]

对于每一索引i(其中,i=0..numrefidxactive[1]

1),下述内容适用:
[0398]

在所有的下述条件均为真时,refidxsyml1被设为i:
[0399]

diffpicordercnt(currpic,refpiclist[1][i])<0,
[0400]

diffpicordercnt(currpic,refpiclist[1][i])>diffpicordercnt(currpic,refpiclist[1][refidxsyml1])或者refidxsyml1等于

1。
[0401]

当refidxsyml0等于

1或者refidxsyml1等于

1时,下述内容适用:
[0402]

refidxsyml0被设为等于

1并且refidxsyml1被设为等于
‑1[0403]

对于每一索引i(其中,i=0..numrefidxactive0.–
1),下述内容适用:
[0404]

在所有的下述条件均为真时,refidxsyml0被设为i:
[0405]

diffpicordercnt(currpic,refpiclist[0][i])<0,
[0406]

diffpicordercnt(currpic,refpiclist[0][i])>diffpicordercnt(currpic,refpiclist[0][refidxsyml0])或者refidxsyml0等于

1。
[0407]

对于每一索引i(其中,i=0..numrefidxactive[1]

1),下述内容适用:
[0408]

在所有的下述条件均为真时,refidxsyml1被设为i:
[0409]

diffpicordercnt(currpic,refpiclist[1][i])>0,
[0410]

diffpicordercnt(currpic,refpiclist[1][i])<diffpicordercnt(currpic,refpiclist[1][refidxsyml1])或者refidxsyml1等于

1。
[0411]
5.2.3一个示例
[0412]
这一小节给出了对应于第4章的项目符号6的一个示例。
[0413]
8.3.5针对对称运动矢量差参考索引的解码过程
[0414]
这一过程的输出是指定对称运动矢量差的列表0和列表1参考图片索引的refidxsyml0和refidxsyml0,即,此时对于编解码单元而言sym_mvd_flag等于1。
[0415]
变量refidxsymlx(其中,x为0和1)的推导如下:
[0416]

变量currpic指定当前图片。
[0417]

refidxsyml0被设为等于

1。
[0418]

对于每一索引i(其中,i=0..numrefidxactive0.–
1),下述内容适用:
[0419]

在所有的下述条件均为真时,refidxsyml0被设为i:
[0420]

diffpicordercnt(currpic,refpiclist[0][i])>0,
[0421]

diffpicordercnt(currpic,refpiclist[0][i])<diffpicordercnt(currpic,refpiclist[0][refidxsyml0])或者refidxsyml0等于

1。
[0422]

refidxsyml1被设为等于

1。
[0423]

对于每一索引i(其中,0..numrefidxactive[1]

1),下述内容适用:
[0424]

在所有的下述条件均为真时,refidxsyml1被设为i:
[0425]

diffpicordercnt(currpic,refpiclist[1][i])<0,
[0426]

diffpicordercnt(currpic,refpiclist[1][i])>diffpicordercnt(currpic,refpiclist[1][refidxsyml1])或者refidxsyml1等于

1。
[0427]

当refidxsyml0等于

1或者refidxsyml1等于

1时,下述内容适用:
[0428]

对于每一索引i(其中,i=0..numrefidxactive0.–
1),下述内容适用:
[0429]

在所有的下述条件均为真时,refidxsyml0被设为i:
[0430]

diffpicordercnt(currpic,refpiclist[0][i])<0,
[0431]

diffpicordercnt(currpic,refpiclist[0][i])>diffpicordercnt(currpic,refpiclist[0][refidxsyml0])或者refidxsyml0等于

1。
[0432]

对于每一索引i(其中,i=0..numrefidxactive[1]

1),下述内容适用:
[0433]

在所有的下述条件均为真时,refidxsyml1被设为i:
[0434]

diffpicordercnt(currpic,refpiclist[1][i])>0,
[0435]

diffpicordercnt(currpic,refpiclist[1][i])<diffpicordercnt(currpic,refpiclist[1][refidxsyml1])或者refidxsyml1等于

1。
[0436]

在所有的下述条件均为真时,refidxsyml0被设为

1并且refidxsyml1被设为

1:
[0437]

refidxsyml0!=

1,
[0438]

refidxsyml1!=

1,
[0439]

diffpicordercnt(currpic,refpiclist[0][refidxsyml0])*diffpicordercnt(currpic,refpiclist[1][refidxsyml1])>0。
[0440]
替代性地,上述条件可以被下述内容替代:
[0441]

在所有的下述条件均为真时,refidxsyml0被设为

1并且refidxsyml1被设为

1:
[0442]

refidxsyml0>=0,
[0443]

refidxsyml1>=0,
[0444]

diffpicordercnt(currpic,refpiclist[0][refidxsyml0])*diffpicordercnt(currpic,refpiclist[1][refidxsyml1])>0。
[0445]
5.3在mvd_l1_zero_flag为真时关于smvd的使用的实施例#1
[0446]
用加粗斜体标记工作草案变化。
[0447]
mvd_sign_flag[compidx]如下指定运动矢量分量差的符号:
[0448]
––
如果mvd_sign_flag[compidx]等于0,那么对应的运动矢量分量差具有正值。
[0449]
––
否则(mvd_sign_flag[compidx]等于1),对应的运动矢量分量差具有负值。
[0450]
当mvd_sign_flag[compidx]不存在时,那么推断其等于0。
[0451]
对于compidx=0..1而言,运动矢量差lmvd[compidx]的推导如下:
[0452]
lmvd[compidx]=abs_mvd_greater0_flag[compidx]*(abs_mvd_minus2[compidx] 2)*(1

2*mvd_sign_flag[compidx])(7157)
[0453]
lmvd[compidx]的值必须处于
‑215
到2
15

1的范围内,含端点。
[0454]
当sym_mvd_flag[x0][y0]等于1时,mvdl1[x0][y0][0]和mvdl1[x0][y0][1]在被做如下推导之后,它们的值必须处于

215到215

1的范围内(含端点):
[0455]
mvdl1[x0][y0][0]=

mvdl0[x0][y0][0]mvdl1[x0][y0][1]=

mvdl0[x0][y0][1]。
[0456]
图14是视频处理装置1400的框图。装置1400可以用于实施本文描述的方法中的一者或多者。装置1400可以被体现到智能电话、平板电脑、计算机、物联网(iot)接收器等当中。装置1400可以包括一个或多个处理器1402、一个或多个存储器1404和视频处理硬件1406。处理器1402可以被配置为实施本文件中描述的一种或多种方法。(一个或多个)存储器1404可以用于存储用于实施本文件描述的方法和技术的数据和代码。视频处理硬件1406可用于在硬件电路中实施本文件中描述的一些技术。
[0457]
图15是视频处理的示例性方法1500的流程图。方法1500包括:针对当前视频块和当前视频块的比特流表示之间的转换确定(1502)使用对称运动矢量差(smvd)模式,在该模式下,基于来自参考图片的参考列表0和参考列表1的两个目标参考图片中的参考块的对称位移生成用于该转换的两个额外运动候选。方法1500包括使用smvd模式执行(1504)该转换。对于参考列表0或参考列表1之一,该比特流表示指示禁用运动矢量差(mvd)模式。
[0458]
下文对示例的列举提供了能够解决本文件中描述的技术问题连同其他问题的实施例。
[0459]
1.一种视频处理器方法,其包括:针对当前视频块和当前视频块的比特流表示之间的转换确定使用对称运动矢量差(smvd)模式,在该模式下,基于来自参考图片的参考列表0和参考列表1的两个目标参考图片中的参考块的对称位移生成用于该转换的两个额外
运动候选;以及使用smvd模式执行该转换;其中,该比特流表示指示对参考列表0或参考列表1之一禁用运动矢量差(mvd)模式。
[0460]
2.示例1的方法,其中,该比特流表示指示对参考列表1禁用mvd模式,其中,该转换包括使用一定关系由对应于参考列表0的运动候选推导出对应于参考列表1的运动候选。
[0461]
3.示例2的方法,其中,该关系规定通过与对应于参考列表0的运动候选成镜像而使用对应于参考列表1的运动候选。
[0462]
在第4章的条款1中描述了示例1

3的额外实施例。
[0463]
4.一种视频处理方法,包括:
[0464]
针对当前视频块和当前视频块的比特流表示之间的转换确定使用对称运动矢量差(smvd)模式,在该模式下,基于来自参考图片的参考列表0和参考列表1的两个目标参考图片的图片中的参考块的对称位移生成用于该转换的两个额外运动候选;以及使用smvd模式执行该转换;其中,该比特流表示包括参考列表1的运动矢量差(mvd)信息。
[0465]
5.示例4的方法,其中,参考列表1的mvd信息是当前视频块所处的视频单元的函数。
[0466]
6.示例5的方法,其中,该视频单元是条带或片组或片或砖块或编解码单元。
[0467]
7.示例4的方法,其中,参考列表1的身份取决于用于当前视频块的相邻视频块的参考列表。
[0468]
8.示例4的方法,其中,选择参考列表1,因为其与参考列表0相比与当前视频块之间具有较小时域距离。
[0469]
9.示例4的方法,其中,选择参考列表1,因为其与参考列表0相比与当前视频块之间具有较大时域距离。
[0470]
在第4章的条款2中描述了示例4

9的额外实施例。
[0471]
10.示例1到9中的任何示例的方法,其中,参考列表0和参考列表1相互等同。
[0472]
11.示例10的方法,其中,参考列表0和参考列表1之一用于前向预测,另一个用于后向预测。
[0473]
在第4章的条款3中描述了示例10

11的额外实施例。
[0474]
12.一种视频处理器方法,其包括:针对当前视频块和当前视频块的比特流表示之间的转换确定使用对称运动矢量差(smvd)模式,在该模式下,基于来自参考图片的参考列表0和参考列表1的图片中的参考块的对称位移生成用于该转换的两个额外运动候选;以及使用smvd模式执行该转换;其中,smvd使用对每一参考图片列表进行解析以识别出目标参考图片的第一步骤生成这两个额外运动候选。
[0475]
13.示例12的方法,其中,smvd任选在识别目标参考图片的第一步骤之后采用第二步骤生成这两个额外运动候选。
[0476]
14.示例13的方法,其中,该第二步骤任选基于在第一步骤中找到的参考图片的数量。
[0477]
在第4章的条款4中描述了示例12

14的额外实施例。
[0478]
15.一种视频处理方法,其包括:针对当前视频块和当前视频块的比特流表示之间的转换确定使用对称运动矢量差(smvd)模式,在该模式下,基于来自参考图片的参考列表0和参考列表1的两个目标参考图片中的参考块的对称位移生成用于该转换的两个额外运动
候选;以及使用smvd模式执行该转换;其中,smvd生成这两个额外运动候选,使得:目标参考图片的两者要么是在第一步骤中找到的,要么是在第二步骤中找到的,第一步骤包括搜索列表0中的前向参考图片,以找到列表0中的目标参考图片,并且搜索列表1中的后向参考图片,以找到列表1中的目标参考图片,第二步骤包括搜索列表0中的后向参考图片,以找到列表0中的目标参考图片,并且搜索列表1中的前向参考图片,以找到列表1中的目标参考图片。
[0479]
在第4章的条款5中描述了示例的额外实施例。
[0480]
16.一种视频处理器方法,其包括:针对当前视频块和当前视频块的比特流表示之间的转换确定使用对称运动矢量差(smvd)模式,在该模式下,基于来自参考图片的参考列表0和参考列表1的两个目标参考图片中的参考块的对称位移生成用于该转换的两个额外运动候选;以及使用smvd模式执行该转换;其中,这两个目标参考图片之一具有比当前视频块的大的图片顺序计数,并且这两个目标参考图片中的另一个具有比当前视频块的小的图片顺序计数。
[0481]
17.示例16的方法,其中,smvd模式进一步包括确定当前视频块的图片顺序计数和两个目标参考图片的图片顺序计数之间的距离的步骤。
[0482]
在第4章的条款6中描述了示例16

17的额外实施例。
[0483]
18.一种视频处理方法,包括:基于条件确定是否将对称运动矢量差(smvd)模式用于当前视频块和当前视频块的比特流表示之间的转换,在smvd模式中,基于来自参考图片的参考列表0和参考列表1的两个目标参考图片中的参考块的对称位移生成用于该转换的两个额外运动候选;以及基于该确定执行该转换。
[0484]
19.示例18的方法,其中,该条件包括当前视频块的编解码信息。
[0485]
20.示例19的方法,其中,该条件包括用于当前视频块的双向预测的运动矢量差或预测权重。
[0486]
21.示例18的方法,其中,针对不等权重被用于双向预测的条件禁用smvd模式。
[0487]
22.示例18的方法,其中,针对运动矢量精确度为整数值的条件禁用smvd模式。
[0488]
在第4章的条款8中描述了示例18

22的额外实施例。
[0489]
23.一种视频处理方法,包括:基于条件确定将对称运动矢量差(smvd)模式和解码器侧运动矢量差(dmvd)编解码模式用于当前视频块和当前视频块的比特流表示之间的转换,在smvd模式中,基于来自参考图片的参考列表0和参考列表1的两个目标参考图片中的参考块的对称位移生成用于该转换的两个额外运动候选;以及基于该确定执行该转换。
[0490]
24.示例1的方法,其中,dmvd包括解码器侧运动矢量细化。
[0491]
25.示例23

24中的任何示例的方法,其中,该条件包括在该转换期间对运动矢量和运动矢量差计算使用n像素精确度,并且其中,dmvd根据m像素分辨率进行细化,其中,n和m是整数或分数。
[0492]
26.示例23到25中的任何示例的方法,其中,n,m=1/16,1/8,1/4,1/2,1,2,4,8或16。
[0493]
在第4章的条款9中描述了示例23

26的额外实施例。
[0494]
27.一种视频处理方法,包括:基于条件确定是否将对称运动矢量差(smvd)模式的全零运动矢量差和解码器侧运动矢量差(dmvd)编解码模式用于当前视频块和当前视频块
的比特流表示之间的转换,在smvd模式中,基于来自参考图片的参考列表0和参考列表1的两个目标参考图片中的参考块的对称位移生成用于该转换的两个额外运动候选;以及基于该确定执行该转换。
[0495]
28.示例27的方法,其中,该条件禁止使用全零运动矢量差。
[0496]
在第4章的条款10中描述了示例27

28的额外实施例。
[0497]
29.一种视频处理方法,包括:从与当前视频块相关联的多个参考图片中选择第一参考图片和第二参考图片;以及基于所选的第一参考图片和第二参考图片执行当前视频块和当前视频块的比特流表示之间的转换,其中,第一参考图片与包括当前视频块的当前图片之间的第一距离和第二参考图片与当前图片之间的第二距离相等。
[0498]
30.示例29的方法,其中,第一参考图片选自列表0,并且其中,第二参考图片选自列表1。
[0499]
31.示例29的方法,其中,第一参考图片是来自列表0的前向参考图片,并且其中,第二参考图片是来自列表1的后向参考图片。
[0500]
32.示例29的方法,其中,第一参考图片是来自列表0的后向参考图片,并且其中,第二参考图片是来自列表1的前向参考图片。
[0501]
33.示例29的方法,其中,第一参考图片是前向参考图片,其中,第二参考图片是后向参考图片,并且其中,第一参考图片和第二参考图片来自同一列表。
[0502]
在第4章的条款11中描述了示例29

33的额外实施例。
[0503]
34.一种视频处理方法,包括:确定第一参考图片与包括当前视频块的当前图片之间的第一距离和第二参考图片与当前图片之间的第二距离不相等,并且基于该确定并针对当前视频块和当前视频块的比特流表示之间的转换对当前视频块禁用对称运动矢量差(smvd)模式。
[0504]
35.示例34的方法,其中,该比特流表示排除对一个或多个smvd相关语法元素的信令通知。
[0505]
在第4章的条款12中描述了示例34

35的额外实施例。
[0506]
36.一种视频处理方法,包括:针对当前视频块基于第二参考图片列表的第二运动矢量差(mvd)推导第一参考图片列表的第一mvd;以及基于该推导执行当前视频块和当前视频块的比特流表示之间的转换,其中,第一mvd的范围是受限的。
[0507]
37.示例36的方法,其中,该推导基于对称运动矢量差(smvd)方法。
[0508]
38.示例36或37的方法,其中,该范围是[
‑2n
,2
n

1],并且n是正整数。
[0509]
39.示例36或37的方法,其中,该范围是[
‑2n
1,2
n

1],并且n是正整数。
[0510]
40.示例38或39的方法,其中,n=16或者n=18。
[0511]
在第4章的条款14中描述了示例36

40的额外实施例。
[0512]
41.示例1到40中的任何示例的方法,其中,该转换包括从比特流表示生成当前视频块的像素值。
[0513]
42.示例1到40中的任何示例的方法,其中,该转换包括从当前视频块的像素值生成比特流表示。
[0514]
43.一种视频处理装置,其包括被配置为实施示例1到42中的一者或多者的处理器。
[0515]
44.一种具有存储于其上的代码的计算机可读介质,所述代码在由处理器执行时使处理器实施示例1到42中的一者或多者当中陈述的方法。
[0516]
图16是视频处理的示例性方法1600的流程图。方法1600包括:在1602中针对视频的当前图片的块与第一块的比特流表示之间的转换,基于该块的编解码信息确定对称运动矢量差(smvd)模式对于该块是否是允许的;以及在1604中基于该确定执行该转换。
[0517]
在一些示例中,在smvd模式下,仅针对包括参考列表x和参考列表y在内的两个参考列表中的参考列表y信令通知运动矢量差(mvd),其中,y=1

x,并且参考列表y中的信令通知mvd用于推导参考列表x中的mvd,其中,x=0或1。
[0518]
在一些示例中,x=0。
[0519]
在一些示例中,编解码信息包括指示参考列表x中的mvd是否被强制为零的标志,x=0或1。
[0520]
在一些示例中,即使在该标志指示参考列表x中的mvd被强制为零时,对于该块仍然允许smvd模式。
[0521]
在一些示例中,当该标志指示参考列表1中的mvd被强制为零时,参考列表1中的mvd被强制为零,并且对于该块允许smvd模式。
[0522]
在一些示例中,当所述标志指示参考列表1中的mvd被强制为零时,参考列表1中的mvd不被强制为零,而是由参考列表0中的关联mvd推导出,并且对于该块允许smvd模式。
[0523]
在一些示例中,在该标志指示参考列表x中的mvd被强制为零时,对于该块不允许smvd模式。
[0524]
在一些示例中,在不允许smvd模式时,smvd模式的所有相关语法元素都是隐式推导的,而非信令通知的。
[0525]
在一些示例中,通过比特流中的指示对需要为其信令通知mvd的参考列表y进行信令通知。
[0526]
在一些示例中,在序列级、图片级、条带级、片级、视频单元级中的至少一者当中信令通知该指示。
[0527]
在一些示例中,在序列参数集(sps)和图片参数集(pps)、图片标头、条带标头和片组标头中的至少一者当中信令通知该指示。
[0528]
在一些示例中,根据参考列表中的参考图片推导出需要为其信令通知mvd的参考列表y。
[0529]
在一些示例中,根据两个参考列表中的两个参考图片以及对应的两个参数abs(currpocdiffl0)和abs(currpocdiffl1)推导出需要为其信令通知mvd的参考列表y,其中,abs(currpocdiffl0)指示从当前图片到参考列表0中的参考图片的poc(图片顺序计数)距离的绝对值,并且abs(currpocdiffl1)指示从当前图片到参考列表1中的参考图片的poc距离的绝对值。
[0530]
在一些示例中,如果abs(currpocdiffl0)大于abs(currpocdiffl1),那么信令通知参考列表0的mvd,否则,信令通知参考列表1的mvd。
[0531]
在一些示例中,如果abs(currpocdiffl0)大于abs(currpocdiffl1),那么信令通知参考列表1的mvd,否则,信令通知参考列表0的mvd。
[0532]
在一些示例中,如果abs(currpocdiffl0)大于或者等于abs(currpocdiffl1),那
么信令通知参考列表0的mvd,否则,信令通知参考列表1的mvd。
[0533]
在一些示例中,如果abs(currpocdiffl0)大于或者等于abs(currpocdiffl1),那么信令通知参考列表1的mvd,否则,信令通知参考列表0的mvd。
[0534]
在一些示例中,如果abs(currpocdiffl0)等于abs(currpocdiffl1),那么信令通知参考列表0的mvd,否则,信令通知参考列表1的mvd。
[0535]
在一些示例中,如果abs(currpocdiffl0)等于abs(currpocdiffl1),那么信令通知参考列表1的mvd,否则,信令通知参考列表0的mvd。
[0536]
在一些示例中,需要为其信令通知mvd的参考列表y从一个视频单元到另一视频单元改变。
[0537]
在一些示例中,视频单元包括条带、片组、片、砖块和编解码单元(cu)中的至少一者。
[0538]
在一些示例中,参考列表y的选择取决于该块的相邻块的参考图片信息。
[0539]
在一些示例中,参考列表y的选择取决于两个参考列表中的两个参考图片以及对应的两个参数pocdist0和pocdist1,其中,pocdist0是从参考列表0中的参考图片到当前图片的图片顺序计数(poc)距离的绝对值,并且pocdist1是从参考列表1中的参考图片到当前图片的poc距离的绝对值。
[0540]
在一些示例中,具有pocdist0和pocdist1之间的较小poc距离绝对值的参考列表被选作参考列表y。
[0541]
在一些示例中,具有pocdist0和pocdist1之间的较大poc距离绝对值的参考列表被选作参考列表y。
[0542]
在一些示例中,如果pocdist0和pocdist1相等,那么参考列表0或者参考列表1被选作参考列表y。
[0543]
在一些示例中,在smvd模式下,两个参考图片两者均选自同一参考列表。
[0544]
在一些示例中,这两个参考图片之一是前向参考图片,其poc小于当前poc,并且另一个参考图片是后向参考图片,其poc大于当前poc。
[0545]
在一些示例中,检查参考列表0和参考列表1内的所有参考图片,从而找到第一参考图片和第二参考图片,第一参考图片的poc在所有小于当前poc的参考图片poc中最接近当前poc,第二参考图片的poc在所有大于当前poc的参考图片poc中最接近当前poc。
[0546]
在一些示例中,smvd模式包括目标参考图片的推导过程,该推导过程包括搜索参考列表0内的前向目标参考图片并且搜索参考列表1内的后向目标参考图片的第一步骤以及搜索参考列表0内的后向目标参考图片并且搜索参考列表1内的前向目标参考图片的第二步骤。
[0547]
在一些示例中,在从第一步骤发现目标参考图片中的至少一者时,跳过smvd模式的第二步骤。
[0548]
在一些示例中,如果一个目标参考图片是在参考列表0中发现的,并且在参考列表1中没有发现目标参考图片,那么跳过smvd模式的第二步骤。
[0549]
在一些示例中,如果在参考列表0中没有发现目标参考图片,并且一个目标参考图片是在参考列表1中发现的,那么跳过smvd模式的第二步骤。
[0550]
在一些示例中,当未从第一步骤发现目标参考图片中的至少一者时,不允许smvd
模式,并且跳过所有smvd相关语法的信令。
[0551]
在一些示例中,在目标参考图片的推导过程中发现的两个目标参考图片包括前向参考图片和后向参考图片,前向参考图片的poc小于当前图片,并且后向参考图片的poc大于当前图片。
[0552]
在一些示例中,在两个目标参考图片的推导过程之后,检查两个目标参考图片的poc,并且在这两个目标参考图片两者均具有小于当前图片的poc或者均具有大于当前图片的poc时将目标参考图片重置为不可用。
[0553]
在一些示例中,可以通过将refidxsyml0和refidxsyml1重置为

1而将目标参考图片重置为不可用,其中,refidxsyml0是参考列表0中的目标参考图片的索引,并且refidxsyml1是参考列表0中的目标参考图片的索引。
[0554]
在一些示例中,当(refidxsyml1!=

1&&refidxsyml0!=

1&&diffpicordercnt(currpic,refpiclist[0][refidxsyml1])*diffpicordercnt(currpic,refpiclist[1][refidxsyml1])>0)为真时,将目标参考图片重置为不可用,其中,diffpicordercnt(pic0,pic1)返回从图片pic0到图片pic1的poc距离。
[0555]
在一些示例中,smvd模式包括目标参考图片的推导过程,其去除了从参考列表0寻找前向参考图片并且从参考列表1寻找后向参考图片或者从参考列表1寻找前向参考图片并且从参考列表0寻找后向参考图片的限制。
[0556]
在一些示例中,采用包括第一检查和第二检查在内的两项相关检查推导出smvd模式中使用的目标参考图片,每一检查用于参考列表0和参考列表1之一。
[0557]
在一些示例中,第一检查将寻找参考列表x中的一个参考图片,其中x为0或1,并且第二检查将根据第一检查的输出以及参考列表y中的参考图片寻找参考列表y中的一个参考图片,y=1

x。
[0558]
在一些示例中,针对参考列表x,计算每一参考图片与当前图片之间的poc距离,而不管其根据既定顺序是前向还是后向的。
[0559]
在一些示例中,该既定顺序是参考图片索引的升序/将序。
[0560]
在一些示例中,具有最小poc距离的参考图片被选作参考列表x的目标参考图片,并且通过refinlx表示。
[0561]
在一些示例中,具有最大poc距离的参考图片被选作参考列表x的目标参考图片,并且通过refinlx表示。
[0562]
在一些示例中,根据参考图片refinlx从参考列表y选择一个参考图片作为参考列表y的目标参考图片。
[0563]
在一些示例中,如果参考图片refinlx具有相较于当前图片的较小poc距离,那么参考列表y的目标参考图片具有相较于当前图片的较大poc距离。
[0564]
在一些示例中,如果参考图片refinlx具有相较于当前图片的较大poc距离,那么参考列表y的目标参考图片具有相较于当前图片的较小poc距离。
[0565]
在一些示例中,如果参考图片refinlx是前向参考图片,那么参考列表y的目标参考图片是所有后向参考图片中具有相较于当前图片的最小poc距离的那个参考图片。
[0566]
在一些示例中,如果参考图片refinlx是后向参考图片,那么参考列表y的目标参考图片是所有前向参考图片中具有相较于当前图片的最小poc距离的那个参考图片。
[0567]
在一些示例中,编解码信息包括运动矢量(mv)信息、该块的mvd精确度信息以及双向预测中的预测样点的权重中的至少一者。
[0568]
在一些示例中,在为双向预测块选择了不相等的权重时不允许smvd。
[0569]
在一些示例中,在不允许smvd模式时,与smvd模式相关的所有相关语法元素都不被信令通知和/或隐式推导。
[0570]
在一些示例中,在smvd模式下不允许不等权重。
[0571]
在一些示例中,在不允许不等权重时,与不等权重相关的所有语法元素都不被信令通知和/或隐式推导。
[0572]
在一些示例中,对于某一mvd精确度和/或mv精确度,不允许smvd模式。
[0573]
在一些示例中,对于n像素mvd精确度和/或mv精确度不允许smvd模式,其中,n=1或4。
[0574]
在一些示例中,在smvd模式下仅允许n像素mvd精确度和/或mv精确度,n=1/4。
[0575]
在一些示例中,在不允许smvd模式时,与smvd模式相关的所有语法元素都不被信令通知和隐式推导。
[0576]
在一些示例中,在smvd模式内不允许自适应运动矢量差分辨率(amvr)。
[0577]
在一些示例中,在不允许amvr时,与amvr相关的所有语法元素都不被信令通知和隐式推导。
[0578]
在一些示例中,在smvd模式中启用解码器侧运动矢量细化(dmvr)或/和其他解码器侧运动矢量推导(dmvd)。
[0579]
在一些示例中,在smvd模式下,如果mv和/或mvd精确度为n像素,那么采用dmvr方法或/和其他dmvd方法通过参数mvddmvr细化mvd,mvddmvr具有m像素精确度,其中,n,m=1/16,1/8,1/4,1/2,1,2,4,8或16。
[0580]
在一些示例中,m小于或等于n。
[0581]
在一些示例中,在smvd模式中,mvd是通过dmvr方法或/和其他dmvd方法推导的而非被信令通知的。
[0582]
在一些示例中,在smvd模式中,不对amvr信息进行信令通知,并且mv/mvd精确度被推导为具有预定义值,其中,该预定义值为1/4像素精确度。
[0583]
在一些示例中,在smvd模式内,对是否应用dmvr方法或/和其他dmvd方法的指示进行信令通知。
[0584]
在一些示例中,如果应用dmvr方法或/和其他dmvd方法,那么不对mvd进行信令通知。
[0585]
在一些示例中,对于某些mv和/或mvd精确度对该指示进行信令通知。
[0586]
在一些示例中,对于1像素或/和4像素mv和/或mvd精确度对该指示进行信令通知。
[0587]
在一些示例中,仅当pocdist0等于pocdist1时对该指示进行信令通知,其中,pocdist0是当前图片与ref0之间的poc距离,并且pocdist1是当前图片与ref1之间的poc距离,并且按照显示顺序,ref0是当前图片的在先图片,ref1是当前图片的随后图片。
[0588]
在一些示例中,仅当pocdist0等于pocdist1时对所述指示进行信令通知,其中,pocdist0是当前图片与ref0之间的poc距离,并且pocdist1是当前图片与ref1之间的poc距离,并且按照显示顺序,ref0是当前图片的随后图片,ref1是当前图片的在先图片。
[0589]
在一些示例中,在smvd模式下,是否允许全零mvd取决于该块的编解码信息,其包括该块的smvd模式信息和运动信息。
[0590]
在一些示例中,在smvd模式下不允许全零mvd。
[0591]
在一些示例中,如果在smvd模式内水平mvd为零,那么在编码之前,如果垂直mvd为正,则使垂直mvd下降1,或者如果垂直mvd为负,则使垂直mvd提高1,并且在解码之后,如果垂直mvd为正,则使垂直mvd提高1,或者如果mvd为负,则使垂直mvd下降1。
[0592]
在一些示例中,如果在smvd模式内垂直mvd为零,那么在编码之前,如果水平mvd为正,则使水平mvd下降1,或者如果水平mvd为负,则使水平mvd提高1,并且在编码之后,如果水平mvd为正,则使水平mvd提高1,或者如果水平mvd为负则使水平mvd下降1。
[0593]
在一些示例中,在smvd模式下,为找到到前图片具有相等距离的两个目标参考图片而非为找到最近参考图片赋予更高优先级。
[0594]
在一些示例中,当在参考列表0和参考列表1中有通过(refl0i,refl1i)表示的n对参考图片时,这n对之一被选作在smvd模式下使用的两个目标参考图片,其中i为[0,n

1],n为整数。
[0595]
在一些示例中,对于一对参考图片,一个参考图片来自参考列表0,并且另一参考图片来自参考列表1。
[0596]
在一些示例中,对于一对参考图片,一个参考图片是来自参考列表0的前向参考图片,并且另一参考图片是来自参考列表1的后向参考图片。
[0597]
在一些示例中,对于一对参考图片,一个参考图片是来自参考列表0的后向参考图片,并且另一参考图片是来自参考列表1的前向参考图片。
[0598]
在一些示例中,对于一对而言,一个参考图片是后向参考图片,并且另一个是前向参考图片,其中两者均来自同一参考图片列表。
[0599]
在一些示例中,当在参考列表0和参考列表1中有通过(refl0i,refl1i)表示的n对参考图片时,所述n对中具有到当前图片的最小或最大poc距离绝对值的一对被选作在smvd模式下使用的两个目标参考图片,其中i为[0,n

1],n为整数。
[0600]
在一些示例中,当在参考列表0和参考列表1中没有具有到当前图片的相等距离的成对参考图片时,根据到当前图片的poc距离选择目标参考图片。
[0601]
在一些示例中,当两个目标参考图片具有到当前图片的不等距离时,不允许smvd模式。
[0602]
在一些示例中,跳过包括sym_mvd_flag的smvd相关语法元素的信令,并且smvd模式被推断为不被使用。
[0603]
在一些示例中,参考图片列表x的mvd是根据两个参考图片与当前图片的poc距离由参考图片列表y的信令通知mvd推导的。
[0604]
在一些示例中,当参考列表y的信令通知mvd是具有其通过mvdly[0]和mvdly[1]表示的水平分量和垂直分量的mvdly时,通过(mvdlx[0],mvdlx[1])表示的参考列表x的mvd的推导如下:
[0605]
mvdlx[0]=mvdly[0]*(poc(列表x中的targetref)

poc(当前图片))/(poc(列表y中的targetref)

poc(当前图片)),并且
[0606]
mvdlx[1]=mvdly[1]*(poc(列表x中的targetref)

poc(当前图片))/(poc(列表y
中的targetref)

poc(当前图片)),
[0607]
其中,poc(列表x中的targetref)是参考列表x中的参考图片的poc,poc(列表y中的targetref)是参考列表y中的参考图片的poc,并且poc(当前图片)是当前图片的poc。
[0608]
在一些示例中,在smvd模式下,在推导参考列表x的mvd时,根据各poc距离对参考列表y中的mvd进行缩放,而不是使用参考列表y的相反mvd作为参考列表x的mvd,其中,x=1。
[0609]
在一些示例中,在smvd模式下,在推导参考列表x的mvd时,根据各poc距离对参考列表y中的mvd进行缩放,而不是使用参考列表y的相反mvd作为参考列表x的mvd,其中,x=0。
[0610]
图17是视频处理的示例方法1700的流程图。方法1700包括:在1702中根据前述示例的方法,针对视频的块和第一块的比特流表示之间的转换确定对称运动矢量(smv)模式对于该块是否是允许的;以及在1704中基于该确定执行该转换。
[0611]
图18是视频处理的示例性方法1800的流程图。方法1800包括:在1802中针对视频的当前图片的块和该块的比特流表示之间的转换,确定对称运动矢量差(smvd)模式对于该块是否是允许的,其中,是否允许smvd模式取决于当前图片的两个目标参考图片的推导过程,该过程包括用于在参考图片列表0中搜索前向目标参考图片并且在参考图片列表1中搜索后向目标参考图片的第一步骤以及用于在参考图片列表0中搜索后向目标参考图片并且在参考图片列表1中搜索前向目标参考图片的第二步骤,第一步骤和第二步骤的输出相互独立;以及在1804中基于该确定执行该转换。
[0612]
在一些示例中,是否允许smvd模式取决于目标参考图片两者是否是在第一步骤和第二步骤中的一个步骤中找到的。
[0613]
在一些示例中,当在第一步骤中发现了这两个目标参考图片时,允许smvd模式。
[0614]
在一些示例中,当在第二步骤中发现了这两个目标参考图片时,允许smvd模式。
[0615]
在一些示例中,当目标参考图片的两者都未在第一步骤中找到,并且目标参考图片的两者都未在第二步骤中找到时,不允许smvd模式。
[0616]
在一些示例中,当两个目标参考图片中的至少一者未在第一步骤中找到时,调用第二步骤。
[0617]
在一些示例中,在调用第二步骤之前,将两个目标参考图片索引重置为不可用。
[0618]
在一些示例中,当两个目标参考图片的索引包括变量refidxsyml0和refidxsyml1时,refidxsyml0指示参考图片列表0中的目标参考图片索引,并且refidxsyml1指示参考图片列表1中的目标参考图片索引。
[0619]
在一些示例中,将两个目标参考图片索引都重置为不可用包括将refidxsyml0和refidxsyml1两者重置为

1。
[0620]
在一些示例中,在smvd模式下,仅针对包括参考列表x和参考列表y在内的两个参考列表中的参考列表y信令通知运动矢量差(mvd),其中,y=1

x,并且参考列表y中的信令通知mvd用于推导参考列表x中的mvd,其中,x=0或1。
[0621]
图19是视频处理的示例性方法1900的流程图。方法1900包括:在1902中针对视频的当前图片的块和该块的比特流表示之间的转换,由与另一参考图片列表相关联的第一mvd推导一个参考图片列表的第二运动矢量差(mvd),其中,mvd既包括水平分量,又包括垂
直分量;在1904中对第一mvd和第二mvd中的至少一者施加范围限制;以及在1906中基于该确定执行该转换。
[0622]
在一些示例中,第一mvd被包含到该块的比特流表示当中。
[0623]
在一些示例中,第二mvd是在对称运动矢量差(smvd)模式下由第一mvd推导出的。
[0624]
在一些示例中,所推导出的第二mvd的水平分量和/或垂直分量局限在预定义范围内。
[0625]
在一些示例中,根据该预定义范围对所推导出的第二mvd的水平分量和/或垂直分量进行裁剪或有条件地修改。
[0626]
例如,mz被裁剪成mz=clip3(
‑2n
,2
n

1,mz),其中,mz表示所推导出的第二mvd的水平分量或垂直分量,n为整数,其中
[0627][0628]
在一些示例中,n=15,16,17或18。
[0629]
例如,mz被裁剪成mz=clip3(
‑2n
1,2
n

1,mz),其中,mz表示所推导出的第二mvd的水平分量或垂直分量,n为整数。
[0630]
在一些示例中,n=15,16,17或18。
[0631]
在一些示例中,mz被修改成mz=2
n

1(如果mz=2
n
),其中,mz表示所推导出的第二mvd的水平分量或垂直分量,n为整数。
[0632]
在一些示例中,n=15,16,17或18。
[0633]
在一些示例中,在一致性比特流中,所推导出的第二mvd的水平分量和/或垂直分量处于预定义范围内。
[0634]
在一些示例中,在一致性比特流中,所推导出的第二mvd的水平分量和/或垂直分量处于[
‑2n
,2
n

1](含端点)范围内。
[0635]
在一些示例中,n=15,16,17或18。
[0636]
在一个示例中,在一致性比特流中,所推导出的第二mvd的水平分量和/或垂直分量处于[
‑2n
1,2
n

1](含端点)范围内。
[0637]
在一些示例中,n=15,16,17或18。
[0638]
在一些示例中,根据第一预定义范围裁剪或者有条件地修改第一mvd的水平分量和/或垂直分量,从而使所推导出的第二mvd的水平分量和/或垂直分量处于第二预定义范围内。
[0639]
例如,mz被裁剪成mz=clip3(
‑2n
1,2
n

1,mz),其中,mz表示第一mvd的水平分量或垂直分量,n为整数,其中
[0640][0641]
在一些示例中,n=15,16,17或18。
[0642]
在一些示例中,mz被修改成mz=
‑2n
1(如果mz=
‑2n
),其中,mz表示第一mvd的水平
分量或垂直分量,n为整数。
[0643]
在一些示例中,n=15,16,17或18。
[0644]
在一些示例中,第一mvd的水平分量和/或垂直分量处于第一预定义范围内,从而使所推导出的第二mvd的水平分量和/或垂直分量在一致性比特流中处于第二预定义范围内。
[0645]
在一些示例中,第一预定义范围可以不同于信令通知mvd的预定义范围,其中,不应用smvd模式。
[0646]
在一些示例中,在一致性比特流中,第一mvd的水平分量和/或垂直分量处于[
‑2n
1,2
n

1](含端点)范围内,n为整数。
[0647]
在一些示例中,n=15,16,17或18。
[0648]
在一些示例中,在一致性比特流中,第一mvd的水平分量和/或垂直分量处于[
‑2n
1,2
n

1](含端点)范围内,n为整数。
[0649]
在一些示例中,第一mvd是信令通知mvd,对于smvd模式或其他由另一参考图片列表推导mvd的工具而言以及对于非smvd编解码工具而言,该信令通知mvd受到不同设置。
[0650]
在一些示例中,信令通知mvd处于[
‑2n
smvdflag,2
n

1]的范围内,其中,在应用smvd模式时,smvdflag等于1,在不应用smvd模式时,smvdflag等于0。
[0651]
在一些示例中,在根据与mvd相关联的mv的精确度修改mvd之前执行对mvd的裁剪或约束。
[0652]
在一些示例中,在根据与mvd相关联的mv的精确度修改mvd之后执行对mvd的裁剪或约束。
[0653]
在一些示例中,对mvd的裁剪或约束取决于与mvd相关联的mv的精确度。
[0654]
在一些示例中,该转换由比特流表示生成视频的块。
[0655]
在一些示例中,该转换由视频的块生成比特流表示。
[0656]
在本文件中的示例的列举当中,转换一词可以指为当前视频块生成比特流表示或者由比特流表示生成当前视频块。比特流表示未必表示连续的比特群组,而是可以被划分成包含到标头字段或者表示编解码像素值信息的码字当中的比特。
[0657]
在上文的示例当中,适用性规则可以是预定义的,并且是编码器和解码器已知的。
[0658]
应当认识到,所公开的技术可以被体现到视频编码器或解码器当中,从而利用包括有关帧内编解码中的差分编解码模式的使用的考虑事项的各种实施规则的使用的技术来提高压缩效率,如本文件中所述。
[0659]
本文件中描述的所公开的以及其他的解决方案、示例、实施例、模块和功能操作可以在数字电子电路、或计算机软件、固件或硬件中实施,其包括本文中所公开的结构及其结构等价方案或者它们当中的一者或多者的组合。所公开的实施例和其他实施例可以被实施成一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或者它们当中的一者或多者的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括(例如)可编程处理器、计算机或者多个处理器或计算机。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管
理系统、操作系统或者它们当中的一者或多者的组合。传播的信号是人为生成的信号,例如,机器生成的电、光或电磁信号,其被生成为对信息编码,以便传输到合适的接收器装置。
[0660]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以按照任何形式部署,包括作为独立程序或作为模块、部件、子例程或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件(例如,存储在标记语言文档中的一个或多个脚本)的部分中,专用于该程序的单个文件中,或者多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。可以将计算机程序部署为在一个或多个计算机上执行,这一个或多个计算机位于一个站点上,或者跨越多个站点分布并通过通信网络互连。
[0661]
本说明书中描述的过程和逻辑流可以通过由一个或多个可编程处理器执行一个或多个计算机程序来执行,从而通过对输入数据进行操作并生成输出来执行功能。这些过程和逻辑流也可以通过专用逻辑电路来执行,并且装置也可以被实施成专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0662]
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。一般来讲,处理器将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元件是执行指令的处理器以及存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或被操作性地耦接为从一个或多个大容量存储设备接收数据或向其传输数据,或两者兼有。然而,计算机不一定具有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括(例如)半导体存储设备,例如eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动盘;磁光盘;以及cd rom和dvd rom盘。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
[0663]
虽然本专利文件包含许多细节,但不应将其解释为对任何主题或权利要求范围的限制,而应解释为对特定技术的特定实施例的具体特征的描述。本专利文件在各单独实施例的语境下描述的某些特征也可以在单个实施例中组合实施。相反地,在单个实施例的语境下描述的各种特征也可单独地或者以任何合适的子组合的形式在多个实施例中实施。此外,虽然某些特征可能在上面被描述为以某些组合来起作用并且甚至最初也这样地来要求对其的权利保护,但是来自要求权利保护的组合的一个或多个特征在某些情况下可从该组合中去除,并且要求权利保护的组合可涉及子组合或子组合的变型。
[0664]
类似地,尽管附图中以特定顺序描述了操作,但这不应被理解为要获得想要的结果必须按照所示的特定顺序或者按照顺次排序执行此类操作,或者必须执行所有例示操作。此外,在本专利文件中描述的实施例当中对各种系统部件的划分不应被理解为在所有实施例中都要求这样的划分。
[0665]
仅描述了一些实施方式和示例,其他实施方式、增强和变化可以基于本专利文件中描述和说明的内容做出。
再多了解一些

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

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

相关文献