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

光流预测细化(PROF)的方法和装置与流程

2022-04-27 09:12:04 来源:中国专利 TAG:

光流预测细化(prof)的方法和装置
1.相关申请的交叉引用
2.本技术基于并要求2019年9月17日提交的第62/901,774号和2019年9月23日提交的第62/904,330号美国临时申请的优先权,出于全部目的,其全部内容通过引用整体并入本文中。
技术领域
3.本技术涉及视频编解码和压缩。更具体地,本技术涉及关于在通用视频编码(vvc)标准中研究的两种帧间预测工具的方法和装置,即光流预测细化(prof)和双向光流(bdof)。


背景技术:

4.可以使用各种视频编码技术来压缩视频数据。根据一种或多种视频编码标准来进行视频编码。例如,视频编解码标准包括通用视频编解码(vvc)、联合探索测试模型(jem)、高效视频编解码(hevc/h.265)、高级视频编解码(avc/h.264)、移动图像专家组(mpeg)编解码等。视频编解码通常采用利用了视频图像或序列中存在的冗余的预测方法(例如,帧间预测、帧内预测等)。视频编解码技术的一个重要目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的下降。


技术实现要素:

5.本技术的实施例提供了在视频编解码中光流预测细化(prof)和双向光流(bdof)的方法和装置。
6.根据本技术的第一方面,提供了一种prof的方法。该方法可包括解码器获得与视频信号内通过仿射模式编码的视频块相关联的第一参考图片i
(0)
和第二参考图片i
(1)
。该解码器还可基于与该视频块的第一参考图片i
(0)
和第二参考图片i
(1)
关联的第一预测样本i
(0)
(i,j)和第二预测样本i
(1)
(i,j)获得第一水平梯度值、第二水平梯度值、第一垂直梯度值以及第二垂直梯度值。该解码器还可基于与该视频块的第一参考图片i
(0)
和第二参考图片i
(1)
关联的控制点运动向量(cpmv)获得第一水平运动细化、第二水平运动细化、第一垂直运动细化以及第二垂直运动细化。该解码器还可基于该第一水平梯度值、第二水平梯度值、第一垂直梯度值以及第二垂直梯度值以及该第一水平运动细化、第二水平运动细化、第一垂直运动细化以及第二垂直运动细化获得第一预测细化δi
(0)
(i,j)和第二预测细化δi
(1)
(i,j)。该解码器还可基于第一预测样本i
(0)
(i,j)、第二预测样本i
(1)
(i,j)、第一预测细化δi
(0)
(i,j)、第二预测细化δi
(1)
(i,j)以及预测参数获得该视频块的最终预测样本。这些预测参数可包括用于加权预测(wp)和在编码单元(cu)级加权的双向预测(bcw)的加权参数和偏移参数。
7.根据本技术的第二方面,提供了一种prof的方法。该方法可包括解码器接收两个通用约束信息(gci)级别控制标志。这两个gci级别控制标志由编码器通过信号发送并且可
包括第一gci级别控制标志和第二gci级别控制标志。该第一gci级别控制标志表示是否允许该bdof进行该解码过程。该第二gci级别控制标志表示是否允许该prof进行该解码过程。该解码器还可以接收两个序列参数集(sps)级别控制标志。这两个sps级别控制标志由sps的编码器通过信号发送,并且表示是否为在当前视频序列中的当前视频块启用该bdof和该prof。在第一sps级别控制标志被启用时,该解码器应用该bdof,以在该视频块没有被以仿射模式编码时基于第一预测样本i
(0)
(i,j)和第二预测样本i
(1)
(i,j)导出该视频块的运动细化。在第二sps级别控制标志被启用时,该解码器还可应用该prof来基于在该视频块被以仿射模式编码时的该第一预测样本i
(0)
(i,j)和该第二预测样本i
(1)
(i,j)导出该视频块的运动细化。该所述解码器还可以基于这些运动细化获得该视频块的预测样本。
8.根据本技术的第三方面,提供了一种计算设备。该计算设备可包括一个或多个处理器以及存储可由该一个或多个处理器执行的指令的非暂时性计算机可读存储介质。该一个或多个处理器可以被配置为获得与视频信号内通过仿射模式编码的视频块相关联的第一参考图片i
(0)
和第二参考图片i
(1)
。该一个或多个处理器还可以被配置为基于与该第一参考图片i
(0)
和第二参考图片i
(1)
关联的第一预测样本i
(0)
(i,j)和第二预测样本i
(1)
(i,j)获得第一水平梯度值、第二水平梯度值、第一垂直梯度值以及第二垂直梯度值。该一个或多个处理器还可以被配置为基于与该第一参考图片i
(0)
和第二参考图片i
(1)
关联的控制点运动矢量(cpmv)获得第一水平运动细化、第二水平运动细化、第一垂直运动细化以及第二垂直运动细化。该一个或多个处理器还可以被配置为基于该第一水平梯度值、第二水平梯度值、第一垂直梯度值以及第二垂直梯度值以及该第一水平运动细化、第二水平运动细化、第一垂直运动细化以及第二垂直运动细化获得第一预测细化δi
(0)
(i,j)和第二预测细化δi
(1)
(i,j)。该一个或多个处理器还可以被配置为基于该第一预测样本i
(0)
(i,j)、该第二预测样本i
(1)
(i,j)、该第一预测细化δi
(0)
(i,j)、该第二预测细化δi
(1)
(i,j)以及预测参数获得该视频块的最终预测样本,其中,该预测参数包括用于加权预测(wp)和在编码单元(cu)级加权的双向预测(bcw)的加权参数和偏移参数。
9.根据本技术的第四方面,提供了一种在其中存储有多个指令的非暂时性计算机可读存储介质。在由设备的一个或多个处理器执行时,这些指令可使得该设备接收两个通用约束信息(gci)级别控制标志。这两个gci级别控制标志由编码器通过信号发送并且包括第一gci级别控制标志和第二gci级别控制标志。该第一gci级别控制标志表示是否允许该bdof对当前视频序列进行解码。该第二gci级别控制标志表示是否允许该prof对当前视频序列进行解码。这些指令还可使得该设备接收两个sps级别控制标志。这两个sps级别控制标志由sps的编码器通过信号发送,并且表示是否为当前视频块启用该bdof和该prof。这些指令还可使得该设备在第一sps级别控制标志被启用时在该解码器处应用bdof来基于在该视频块没有被以仿射模式编码时的第一预测样本i
(0)
(i,j)和第二预测样本i
(1)
(i,j)导出该视频块的运动细化。这些指令还可使得该设备在第二sps级别控制标志被启用时应用prof来基于在该视频块被以仿射模式编码时的该第一预测样本i
(0)
(i,j)和该第二预测样本i
(1)
(i,j)导出该视频块的运动细化。这些指令还可使得该设备基于这些运动细化获得该视频块的预测样本。
10.需要理解的是,以上一般描述和以下详细描述二者仅仅是示例,而不旨在限制本发明。
附图说明
11.被并入说明书中并且构成说明书的一部分的附图示出了根据本技术的示例,并且与本描述一起用于解释本技术的原理。
12.图1是根据本技术的示例的编码器的框图。
13.图2是根据本技术的示例的解码器的框图。
14.图3a是示出了根据本技术的示例的多类型树结构中的块分割的示图。
15.图3b是示出了根据本技术的示例的多类型树结构中的块分割的示图。
16.图3c是示出了根据本技术的示例的多类型树结构中的块分割的示图。
17.图3d是示出了根据本技术的示例的多类型树结构中的块分割的示图。
18.图3e是示出了根据本技术的示例的多类型树结构中的块分割的示图。
19.图4是根据本技术的示例的双向光流(bdof)模型的示例图。
20.图5a是根据本技术的示例的仿射模型的示例图。
21.图5b是根据本技术的示例的仿射模型的示例图。
22.图6是根据本技术的示例的仿射模型的示例图。
23.图7是根据本技术的示例的光流预测细化(prof)的示例图。
24.图8是根据本技术的示例的bdof的工作流程。
25.图9是根据本技术的示例的prof的工作流程。
26.图10是根据本技术的示例的bdof的方法。
27.图11是根据本技术的示例的bdof和prof的方法。
28.图12是根据本技术的示例的用于双向预测的prof的工作流程的示例图。
29.图13是根据本技术的bdof和prof过程的流水线级的示例图。
30.图14是根据本技术的bdof的梯度推导方法的示例图。
31.图15是根据本技术的prof的梯度推导方法的示例图。
32.图16a是根据本技术的示例的用于仿射模式的推导模板样本的示例图。
33.图16b是根据本技术的示例的用于仿射模式的推导模板样本的示例图。
34.图17a是根据本技术的示例的排它地启用用于仿射模式的prof和lic的示例图。
35.图17b是根据本技术的示例的联合启用用于仿射模式的prof和lic的示例图。
36.图18a是示出了根据本技术的示例的应用于16
×
16bdof cu的提出的填充方法的示图。
37.图18b是示出了根据本技术的示例的应用于16
×
16bdof cu的提出的填充方法的示图。
38.图18c是示出了根据本技术的示例的应用于16
×
16bdof cu的提出的填充方法的示图。
39.图18d是示出了根据本技术的示例的应用于16
×
16bdof cu的提出的填充方法的示图。
40.图19是示出了根据本技术的示例的与用户接口耦合的计算环境的示图。
具体实施方式
41.现在将详细参照具体实施方式,在附图中示出了具体实施方式的示例。以下描述
参考附图,其中不同附图中相同的数字表示相同或相似的元素,除非另有说明。以下示例性实施例的描述中阐述的实施方式并不代表与本技术一致的所有实施方式。相反,它们仅仅是与本技术相关的方面一致的装置和方法的示例,如所附的权利要求书中所述。
42.本技术中使用的术语仅出于描述特定实施例的目的,并不旨在限制本技术。如在本技术和所附权利要求中使用的,单数形式“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还应理解,本文使用的术语“和/或”旨在表示并包括一个或多个相关列出的项目的任何或所有可能的组合。
43.应当理解,尽管在本文中可以使用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应受这些术语的限制。这些术语仅用于将一类信息与另一类信息区分开来。例如,在不脱离本技术的范围的情况下,第一信息可以称为第二信息。同理,第二信息也可以称为第一信息。如本文所用,根据上下文,术语“如果”可以理解为表示“何时”或“在”或“响应于判断”。
44.hevc标准的第一版本于2013年10月完成,与上一代视频编解码标准h.264/mpeg avc相比,它提供了大约50%的比特率节省或等效的感知质量。尽管hevc标准比其前身提供了显著的编解码改进,但有证据表明,与hevc相比,使用额外的编解码工具可以实现更高的编码效率。在此基础上,vceg和mpeg都开始了用于未来视频编解码标准化的新编解码技术的探索工作。itu-tvecg和iso/iecmpeg于2015年10月成立了一个联合视频探索团队(jvet),开始对可以显著提高编码效率的先进技术进行重大研究。jvet通过在hevc测试模型(hm)之上集成几个额外的编码工具来维护一种称为联合探索模型(jem)的参考软件。
45.2017年10月,itu-t和iso/iec发布了关于具有超越hevc能力的视频压缩的联合征集提案(cfp)。2018年4月,在第10次jvet会议上收到并评估了23份cfp回复,表明压缩效率比hevc提高了约40%。基于这样的评估结果,jvet启动了一个新项目来开发新一代视频编解码标准,称为多功能视频编解码(vvc)。同月,建立了一个名为vvc测试模型(vtm)的参考软件代码库,用于演示vvc标准的参考实现。
46.与hevc一样,vvc建立在基于块的混合视频编解码框架之上。
47.图1示出了用于vvc的基于块的视频编码器的总体示图。具体来讲,图1示出了典型的编码器100。编码器100具有视频输入110、运动补偿112、运动估计114、帧内/帧间模式决策116、块预测器140、加法器128、变换130、量化132、预测相关信息142、帧内预测118、图片缓存器120、逆量化134、逆变换136、加法器126、存储器124、环内滤波器122、熵编码138和比特流144。
48.在编码器100中,视频帧被分割成多个视频块以进行处理。对于每个给定的视频块,基于帧间预测方法或帧内预测方法形成预测。
49.表示当前视频块(视频输入110的一部分)与其预测器(块预测器140的一部分)之间的差异的预测残差被从加法器128发送到变换130。然后变换系数被从变换130发送到量化132以用于熵降。然后量化系数被馈送到熵编码138以生成压缩视频比特流。如图1所示,来自帧内/帧间模式决策116的预测相关信息142,如视频块分割信息、运动矢量(mv)、参考图片索引和帧内预测模式,也通过熵编码138被馈送并保存到压缩比特流144中。压缩比特流144包括视频比特流。
50.在编码器100中,还需要与解码器相关的电路以重构用于预测目的的像素。首先,
通过逆量化134和逆变换136重构预测残差。将这种重构的预测残差与块预测器140组合以生成用于当前视频块的未滤波的重构像素。
51.空间预测(或“帧内预测”)使用来自与当前视频块相同的视频帧中的已编码相邻块的样本(称为参考样本)的像素来预测当前视频块。
52.时间预测(也称为“帧间预测”)使用来自已编码视频图片的重构像素来预测该当前视频块。时间预测减少了视频信号中固有的时间冗余。用于给定编码单元(cu)或编码块的时间预测信号通常由一个或多个运动矢量(mv)表示,这些运动矢量指示当前cu与其时间参考之间的运动量和运动方向。此外,如果支持多个参考图片,则额外发送一个参考图片索引,该参考图片索引用于标识时间预测信号来自参考图片库中的哪个参考图片。
53.运动估计114接收视频输入110和来自图片缓存器120的信号并且将运动估计信号输出到运动补偿112。运动补偿112接收视频输入110、来自图片缓存器120的信号和来自运动估计114的运动估计信号,并将运动补偿信号输出到帧内/帧间模式决策116。
54.在执行空间和/或时间预测之后,编码器100中的帧内/帧间模式决策116基于如率失真优化方法选择最佳预测模式。然后从当前视频块中减去块预测器140,并且使用变换130和量化132将得到的预测残差去相关。得到的量化残差系数由逆量化134逆量化并由逆变换136逆变换以形成该重构的残差,然后将该重构的残差加回该预测块以形成该cu的重构信号。进一步地,可在该重构的cu被放入图片缓存器120的参考图片存储器并用于对未来的视频块进行编解码之前将环内滤波122(如去块滤波器、样本自适应偏移(sao),和/或自适应环内滤波器(alf))应用于重构的cu。为了形成输出视频比特流144,编码模式(帧间或帧内)、预测模式信息、运动信息和量化的残差系数都被发送到熵编码138以被进一步压缩和打包以形成该比特流。
55.图1给出了通用的基于块的混合视频编码系统的框图。输入视频信号被逐块处理(称为cu)。在vtm-1.0中,一个cu可达128
×
128像素。然而,与仅基于四叉树对块进行划分的hevc不同,在vvc中,将一个编码树单元(ctu)拆分为多个cu,以适应基于四叉树/二叉树/三叉树的不同局部特征。此外,去除了hevc中多分割单元类型的概念,即vvc中不再存在cu、预测单元(pu)和变换单元(tu)的分离;相反,每个cu始终用作预测和变换的基本单元,而无需进一步分割。在多类型树结构中,一个ctu首先被四叉树结构分割。然后,每个四叉树的叶子节点可以通过二叉树和三叉树结构被进一步划分。如图3a、3b、3c、3d和3e所示,存在五种分割类型,即四元分割、水平二元分割、垂直二元分割、水平三元分割和垂直三元分割。
56.图3a是示出了根据本技术的多类型树结构中的块四元分割的示图。
57.图3b是示出了根据本技术的多类型树结构中的块垂直二元分割的示图。
58.图3c是示出了根据本技术的多类型树结构中的块水平二元分割的示图。
59.图3d是示出了根据本技术的多类型树结构中的块垂直三元分割的示图。
60.图3e是示出了根据本技术的多类型树结构中的块水平三元分割的示图。
61.在图1中,可以执行空间预测和/或时间预测。空间预测(或“帧内预测”)使用来自同一视频图片/切片中已编码相邻块的样本(称为参考样本)的像素来预测当前视频块。空间预测减少了视频信号中固有的空间冗余。时间预测(也称为“帧间预测”或“运动补偿预测”)使用来自已编码视频图片的重构的像素来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。用于给定cu的时间预测信号通常由一个或多个运动矢量(mv)表示,这
些mv指示当前cu与其时间参考之间的运动量和运动方向。此外,如果支持多个参考图片,则额外发送一个参考图片索引,该参考图片索引用于识别该时间预测信号来自参考图片存储器中的哪个参考图片。在空间和/或时间预测之后,该编码器中的模式决策块基于如率失真优化方法选择最佳预测模式。然后从该当前视频块中减去该预测块,使用变换将该预测残差去相关并且对其进行量化。对量化后的残差系数进行逆量化和逆变换,以形成该重构的残差,然后将其加回到该预测块以形成该cu的重构信号。进一步地,可在该重构的cu被放入参考图片存储器并用于对未来的视频块进行编解码之前将环内滤波(如去块滤波器、样本自适应偏移(sao),和/或自适应环内滤波器(alf))应用于该重构的cu。为了形成该输出视频比特流,编码模式(帧间或帧内)、预测模式信息、运动信息和量化的残差系数都被发送到熵编码单元以被进一步压缩和打包来形成该比特流。
62.图2示出了用于vvc的视频解码器的总体框图。具体来讲,图2示出了典型的解码器200的框图。解码器200具有比特流210、熵解码212、逆量化214、逆变换216、加法器218、帧内/帧间模式选择220、帧内预测222、存储器230、环内滤波器228、运动补偿224、图片缓存器226、预测相关信息234和视频输出232。
63.解码器200类似于驻留在图1的编码器100中的重建相关部分。在解码器200中,输入的视频比特流210首先通过熵解码212进行解码,以导出量化的系数水平和预测相关信息。然后通过逆量化214和逆变换216对这些量化的系数级别进行处理以获得重构的预测残差。在帧内/帧间模式选择器220中实现的块预测器机制被配置为基于解码的预测信息执行帧内预测222或运动补偿224。通过使用加法器218将来自逆变换216的重构的预测残差与该块预测器机制生成的预测输出相加来获得未滤波的重构像素集合。
64.在该重构块被存储在用作参考图片存储器的图片缓存器226中之前,该重构块还可以经过环内滤波器228。图片缓存器226中的重构视频可以被发送以驱动显示设备,并且该重构视频可用于预测未来的视频块。在环内滤波器228开启的情况下,对这些重构像素执行滤波操作以导出最终的重构视频输出232。
65.图2给出了基于块的视频解码器的总体框图。首先在该熵解码单元对该视频比特流进行熵解码。该编解码模式和预测信息被发送到空间预测单元(如果帧内编码)或时间预测单元(如果帧间编码)以形成该预测块。残差变换系数被发送到该逆量化单元和逆变换单元以重构该残差块。然后将该预测块和残差块相加。该重构块在被存储在参考图片存储器中之前还可以经过环内滤波。然后将参考图片存储器中的重构视频发送出去以驱动显示设备,并用于预测未来的视频块。
66.一般来讲,除了将若干模块进一步扩展和/或增强之外,在vvc中应用的基本帧间预测技术保持与hevc中的相同。具体来讲,对于以前所有的视频标准,当编码块被单向预测时,该编码块只能与一个单一的mv相关联,或者当编码块为双向预测时,该编码块只能与两个mv相关联。由于对传统的基于块的运动补偿的这种限制,在运动补偿后的预测样本中仍然会留有小的运动,从而对运动补偿的整体效率产生负面影响。为了提高这些mv的粒度和精度,目前针对vvc标准研究了两种基于光流的逐样本细化方法,即双向光流(bdof)和用于仿射模式的光流预测细化(prof)。下面简要回顾这两种帧间编解码工具的主要技术方面。
67.双向光流
68.在vvc中,bdof被应用于细化双向预测的编码块的预测样本。具体地,如图4所示,
当使用双向预测时,bdof是在基于块的运动补偿预测的基础上执行的逐样本的运动细化。
69.图4示出了根据本技术的bdof模型的示例图。
70.每个4
×
4子块的运动细化(v
x
,vy)是通过在该子块周围的一个6
×
6窗口ω内应用该bdof之后将l0和l1预测样本之间的差异最小化来计算得到的。具体地,(v
x
,vy)的值推导为:
[0071][0072]
其中,是向下取整函数;clip3(min,max,x)是将给定值x限幅到[min,max]范围内的函数;符号》》表示逐比特右移运算;符号《《表示逐比特左移运算;th
bdof
是用于防止由于不规律的局部运动导致的传播误差的运动细化阈值,其等于1《《max(5,bit-depth-7),其中,bit-depth是内部位深。
[0073]
在(1)中,
[0074]
s1、s2、s3、s5和s6的值计算为:
[0075][0076]
其中,
[0077][0078][0079]
θ(i,j)=(i
(1)
(i,j)>>max(4,bit-depth-8))-(i
(0)
(i,j)>>max(4,bit-depth-8))(3);
[0080]
其中,i
(k)
(i,j)是列表k(k=0,1)中预测信号在坐标(i,j)处的样本值,这些样本值以中高精度(即,16比特)生成;和是通过直接计算样本的两个相邻样
本之间的差而获得的该样本的水平梯度和垂直梯度,即,
[0081][0082][0083]
基于在(1)中推导的运动细化,通过基于光流模型沿运动轨迹对l0/l1预测样本进行内插来计算该cu的最终双向预测样本,如下式所示:
[0084]
pred
bdof
(x,y)=(i
(0)
(x,y) i
(1)
(x,y) b o
offset
)>>shift
[0085][0086][0087]
其中,shift和o
offset
是被用于合并双向预测的l0和l1预测信号的右移位值和偏移值,分别等于15-bit-depth和1<<(14-bit-depth) 2
·
(1<<13)。基于上述位深控制方法,确保整个bdof过程的中间参数的最大位深不超过32位,并且乘法的最大输入在15位以内,即,一个15比特乘法器足够用于bdof的实现。
[0088]
仿射模式
[0089]
在hevc中,仅将平移运动模型应用于运动补偿预测。然而在现实世界中,存在很多种运动,例如,放大/缩小、旋转、透视运动和其他不规则运动。在vvc中,通过针对每个帧间编码块用信号发送一个标志来指示是平移运动还是仿射运动模型被应用于帧间预测,由此应用仿射运动补偿预测。在当前vvc设计中,一个仿射编码块支持两种仿射模式,包括4参数仿射模式和6参数仿射模式。
[0090]
4参数仿射模型具有以下参数:分别用于水平方向和垂直方向上的平移运动的两个参数,用于缩放运动的一个参数,以及用于这两个方向的旋转运动的一个参数。水平缩放参数等于垂直缩放参数。水平旋转参数等于垂直旋转参数。为了更好地适应mv和仿射参数,在vvc中,这些仿射参数被转换成位于当前块的左上角和右上角的两个mv(也被称为控制点运动矢量(cpmv))。如图5a和图5b所示,该块的仿射运动场由两个控制点mv(v0,v1)来描述。
[0091]
图5a示出了根据本技术的4参数仿射模型的示图。
[0092]
图5b示出了根据本技术的4参数仿射模型的示图。
[0093]
基于该控制点运动,一个仿射编码块的运动场(v
x
,vy)被描述为:
[0094][0095]
6参数仿射模式具有以下参数:分别用于水平方向和垂直方向上的平移运动的两个参数、在水平方向上用于缩放运动的一个参数和用于旋转运动的一个参数,在垂直方向上用于缩放运动的一个参数和用于旋转运动的一个参数。6参数仿射运动模型是用在三个cpmv处的三个mv来编解码的。
[0096]
图6示出了根据本技术的6参数仿射模型的示图。
[0097]
如图6所示,一个6参数仿射块的三个控制点位于该块的左上角、右上角和左下角。
左上控制点处的运动与平移运动相关,右上控制点处的运动与水平方向的旋转和缩放运动有关,并且左下控制点处的运动与垂直方向的旋转和缩放运动相关。与4参数仿射运动模型相比,该6参数的在水平方向上的旋转和缩放运动可能与在垂直方向上的那些运动不同。假设(v0,v1,v2)是图6中的当前块的左上角、右上角和左下角的mv,则使用控制点处的三个mv将每个子块的mv(v
x
,vy)推导为:
[0098][0099][0100]
用于仿射模式的光流预测细化
[0101]
为了提高仿射运动补偿精度,目前在vvc中正在研究prof,其基于光流模型细化了基于子块的仿射运动补偿。具体地,在执行基于子块的仿射运动补偿之后,通过基于光流等式推导的一个样本细化值来修改一个仿射块的亮度预测样本。具体来讲,prof的操作可以总结为以下四个步骤:
[0102]
步骤1:执行基于子块的仿射运动补偿,以使用在(6)中针对4参数仿射模型和(7)中针对6参数仿射模型推导的子块mv来生成子块预测i(i,j)。
[0103]
步骤2:每个预测样本的空间梯度g
x
(i,j)和gy(i,j)计算如下:
[0104]gx
(i,j)=(i(i 1,j)-i(i-1,j))>>(max(2,14-bit-depth)-4)
[0105]gy
(i,j)=(i(i,j 1)-i(i,j-1))>>(max(2,14-bit-depth)-4)
ꢀꢀ
(8);
[0106]
为了计算这些梯度,需要在一个子块的每一侧生成附加的一行/一列的预测样本。为了降低存储器带宽和复杂度,从参考图片中最近的整数像素位置复制扩展的边界上的样本,以避免额外的内插过程。
[0107]
步骤3:该亮度预测细化值通过下式计算:
[0108]
δi(i,j)=g
x
(i,j)*δv
x
(i,j) gy(i,j)*δvy(i,j)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9);
[0109]
其中,δv(i,j)是针对样本位置(i,j)计算的像素mv(用v(i,j)表示)与像素(i,j)所在的子块的子块mv之间的差。另外,在当前的prof设计中,在将该预测细化添加到该原始预测样本之后,进行一次裁剪操作,以将细化后的预测样本的值裁剪到15位以内,即
[0110]
ir(i,j)=i(i,j) δi(i,j)
[0111]
ir(i,j)=clip3(-2
14
,2
14-1,ir(i,j))
[0112]
其中,i(i,j)和ir(i,j)分别是位置(i,j)处的原始预测样本和细化预测样本。
[0113]
图7示出了根据本技术的用于仿射模式的prof过程的示图。
[0114]
由于这些仿射模型参数和相对于子块中心的像素位置不会逐子块变化,所以可以针对第一子块计算δv(i,j),并且将其复用于同一cu中的其他子块。令δx和δy是从样本位置(i,j)到该样本所属子块的中心的水平偏移和垂直偏移,则可将δv(i,j)推导为:
[0115][0116]
基于仿射子块mv推导等式(6)和(7),可以推导mv差δv(i,j)。具体地,对于4参数仿射模型,
[0117][0118]
对于6参数仿射模型,
[0119][0120]
其中,(v
0x
,v
0y
)、(v
1x
,v
1y
)、(v
2x
,v
2y
)是当前编码块的左上、右上和左下控制点mv,w和h是该块的宽度和高度。在现有prof设计中,始终以1/32像素的精度推导mv差δv
x
和δvy。
[0121]
局部光亮度补偿
[0122]
局部光亮度补偿(lic)是一种编解码工具,这种工具用于解决时间相邻图片之间存在的局部光亮度变化问题。将一对权重参数和偏移参数应用于这些参考样本以获得一个当前块的预测样本。总体数学模型如下:
[0123]
p[x]=α*pr[x v] β
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11);
[0124]
其中,pr[x v]是由运动向量v指示的参考块,[α,β]是用于该参考块的相应的权重参数和偏移参数对,p[x]是最终预测块。基于当前块的模板(即,相邻的重建样本)和该模板的参考块(使用当前块的运动向量推导出该参考块)通过使用最小线性均方误差(llmse)算法来估计这对权重参数和偏移参数。通过将这些模板样本与该模板的参考样本之间的均方差最小化,可以将α和β的数学表示推导如下:
[0125][0126]
其中,i表示该模板中的样本数,pc[xi]是当前块的模板的第i个样本,pr[xi]是基于运动向量v的第i个模板样本的参考样本。
[0127]
除了应用于每个预测方向(l0或l1)最多包含一个运动向量的常规帧间块外,lic还应用于仿射模式编码块,其中,一个编码块被进一步分裂为多个更小的子块,每个子块可与不同的运动信息关联。为了导出用于仿射模式编码块的lic的参考样本,如在(如下所述的)图16a和16b所示,通过使用顶部子块行中的每个子块的运动向量来获取一个仿射编码块的顶部模板中的参考样本,而使用左侧子块列中的子块的运动向量来获取左侧模板中的参考样本。之后,应用同一llmse推导方法,以基于复合模板推导这些lic参数,如(12)所示。
[0128]
图16a示出了根据本技术的用于为仿射模式导出模板样本的示图。该示图包含cur frame 1620和cur cu 1622。cur frame 1620是该当前帧,cur cu 1622是该当前编码单元。
[0129]
图16b示出了用于为仿射模式导出模板样本的示图。该示图包含ref frame 1640,col cu 1642,a ref 1643,b ref 1644,c ref 1645,d ref 1646,e ref 1647,f ref1648和g ref 1649。ref frame 1640是该参考帧,col cu 1642是共址的编码单元,a ref 1643,b ref 1644,c ref 1645,d ref 1646,e ref 1647,f ref 1648和g ref 1649是参考样本。
[0130]
用于仿射模式的光流预测细化的不足
[0131]
虽然prof能够提高仿射模式的编解码效率,但其设计仍有待进一步改进。特别是考虑到prof和bdof都是建立在光流概念之上的,因此非常希望尽可能协调prof和bdof的设计,以使prof能够最大限度地利用bdof的现有逻辑来促进硬件实现。基于这种考虑,在本技术中指出了当前prof与bdof设计之间的交互的以下不足之处。
[0132]
第一,如在“用于仿射模式的光流预测细化”部分中所述的那样,在等式(8)中,梯度的精度是基于内部位深确定的。另一方面,总是以1/32像素的精度导出mv差异,即,δv
x
和δvy。相应地,基于等式(9),导出的prof细化的精度取决于该内部位深。然而,与bdof类似,prof应用于中高位深度(即16位)的预测样本值之上,以保持更高的prof推导精度。因此,无论内部编码位深如何,prof导出的预测细化精度都应与中间预测样本的精度相匹配,即16位。换言之,现有prof设计中mv差异和梯度的表示位深并未完全匹配,无法得出相对于预测样本精度(即16位)的准确预测细化。同时,基于等式(1)、(4)和(8)的比较,现有的prof和bdof使用不同的精度来表示样本梯度和mv差异。如前面所指出的那样,这种不统一的设计对于硬件来说并不是所希望的,因为现有的bdof逻辑不能被复用。
[0133]
第二,如在“用于仿射模式的光流预测细化”部分中讨论的那样,当对一个当前仿射块进行双向预测时,prof分别应用于列表l0和l1中的预测样本;然后,对增强后的l0和l1预测信号进行平均,以生成最终的双向预测信号。相反,bdof不是为每个预测方向单独导出prof细化,而是导出一次预测细化,然后将其应用于增强合并的l0和l1预测信号。(如下所述的)图8和图9比较了当前bdof和prof用于双向预测的工作流程。在实际的编解码器硬件流水线设计中,通常为每个流水线阶段分配不同的主要编码/解码模块,以能够并行处理更多的编码块。然而,由于bdof和prof工作流之间的差异,这可能会导致难以拥有一个可以由bdof和prof共享的同一管道设计,这对于实际编解码器的实现并不友好。
[0134]
图8示出了根据本技术的bdof的工作流程。工作流程800包括l0运动补偿810、l1运动补偿820和bdof 830。l0运动补偿810例如可以是来自在先参考图片的运动补偿样本的列表。该在先参考图片是先于该视频块中的当前图片的参考图片。l1运动补偿820例如可以是来自下一个参考图片的运动补偿样本的列表。该下一个参考图片是该视频块中当前图片之后的参考图片。bdof 830从l0运动补偿810和l1运动补偿820中获取运动补偿样本并输出预测样本,如前面在图4中所描述的那样。
[0135]
图9示出了根据本技术的现有prof的工作流程。工作流程900包括l0运动补偿910、l1运动补偿920、l0 prof 930、l1 prof 940和平均960。l0运动补偿910例如可以是来自在先参考图片的运动补偿样本的列表。该在先参考图片是先于该视频块中的当前图片的参考图片。l1运动补偿920例如可以是来自下一个参考图片的运动补偿样本的列表。该下一个参考图片是该视频块中当前图片之后的参考图片。l0prof 930从l0运动补偿910中获取l0运动补偿样本并输出运动细化值,如前面在图7中所描述的那样。l1 prof 940从l1运动补偿920获取l1运动补偿样本并输出运动细化值,如前面在图7中所描述的那样。平均960对l0 prof 930和l1 prof 940输出的运动细化值进行平均。
[0136]
第三,对于bdof和prof,需要为该当前编码块内的每个样本计算梯度,这需要在该块的每一侧生成一个额外的预测样本行/列。为了避免样本插值的额外计算复杂性,该块周围扩展区域中的预测样本直接从整数位置的参考样本中复制(即,没有插值)。然而,根据现
有的设计,选择不同位置的整数样本来生成bdof和prof的梯度值。具体来讲,对于bdof,使用位于预测样本左侧(水平梯度)和预测样本上方(垂直梯度)的整数参考样本;对于prof,最接近预测样本的整数参考样本用于梯度计算。与位深表示问题类似,这种非统一梯度计算方法对于硬件编解码器实现来讲也是不希望的。
[0137]
第四,如前面所指出的那样,prof的动机是补偿每个样本的mv与在该样本所属的子块的中心导出的子块mv之间的小的mv差异。根据目前的prof设计,prof总是在仿射模式预测一个编码块时被调用。然而,如等式(6)和(7)所示,一个仿射块的子块mv是从控制点mv导出的。因此,当控制点mv之间的差异较小时,每个样本位置的mv应该是一致的。在这种情况下,由于应用prof的好处可能非常有限,因此在考虑性能/复杂度权衡时可能不值得执行prof。
[0138]
用于仿射模式的光流预测细化的改进
[0139]
在本技术中,提供了改进和简化现有prof设计以促进硬件编解码器实现的方法。具体地,特别关注了协调bdof和prof的设计,以最大限度地与prof共享现有的bdof逻辑。一般而言,本技术中提出的技术的主要方面总结如下。
[0140]
第一,为了提高prof的编码效率,同时实现更统一的设计,提出了一种统一bdof和prof使用的样本梯度和mv差异的表示位深的方法。
[0141]
第二,为了便于硬件流水线设计,提出了协调prof的工作流程与bdof的工作流程以进行双向预测。具体来讲,与现有的prof分别为l0和l1导出预测细化不同,本技术所提出的方法导出一次预测细化,该预测细化应用于合并的l0和l1预测信号。
[0142]
第三,提出了两种方法来协调整数参考样本的推导,以计算bdof和prof使用的梯度值。
[0143]
第四,为了降低计算复杂度,提出了提前终止方法,以在满足某些条件时自适应地禁用用于仿射编码块的prof过程。
[0144]
改进的prof梯度和mv差异的位深表示设计
[0145]
正如在“问题陈述”一节中所分析的那样,mv差异和样本梯度在当前prof中的表示位深并未对齐以获得准确的预测细化。此外,bdof与prof之间的样本梯度和mv差异的表示位深不一致,这对硬件并不友好。在本节中,通过将bdof的位深表示方法扩展到prof,提出了一种改进的位深表示方法。具体来讲,在所提出的方法中,在每个样本位置的水平和垂直梯度计算为:
[0146]gx
(i,j)=(i(i 1,j)-i(i-1,j))>>max(6,bit-depth-6)
[0147]gy
(i,j)=(i(i,j 1)-i(i,j-1))>>max(6,bit-depth-6)
ꢀꢀꢀꢀ
(13);
[0148]
此外,假设δx和δy是从一个样本位置到该样本所属的子块中心的以1/4像素精度表示的水平和垂直偏移,则将在该样本位置的对应的prof mv差异δv(x,y)推导为:
[0149]
δv
x
(i,j)=(c*δx d*δy)>>(13-dmvbits)
[0150]
δvy(i,j)=(e*δx f*δy)>>(13-dmvbits)
[0151]
(14);
[0152]
其中,dmvbits是bdof过程使用的梯度值的位深,即,dmvbits=max(5,(bit-depth-7)) 1。在等式(13)和(14)中,c、d、e和f是基于仿射控制点mv导出的仿射参数。具体来讲,对于4参数仿射模型,
[0153][0154]
对于6参数仿射模型,
[0155][0156]
其中,((v
0x
,v
0y
)、(v
1x
,v
1y
)和(v
2x
,v
2y
)是当前编码块的左上、右上和左下控制点mv,用1/16像素精度表示,w和h是该块的宽度和高度。
[0157]
在前面的讨论中,如等式(13)和(14)所示,应用了一对固定的右移来计算这些梯度值和mv差值。在实践中,对于中间计算精度与内部prof推导过程的位宽之间的不同折衷,可对(13)和(14)应用不同的逐位右移,以实现这些梯度和mv差异的不同表示精度,。例如,当输入视频包含大量噪声时,所导出的这些梯度可能无法可靠地表示每个样本处的真实局部水平/垂直梯度值。在这种情况下,使用更多位来表示mv差异比梯度更有意义。另一方面,当输入视频显示稳定运动时,由仿射模型得出的mv差异应该非常小。如果是这样,则使用高精度mv差异不能提供额外的好处来提高所导出的prof细化的精度。换言之,在这种情况下,使用更多的比特来表示梯度值更有利。基于上述考虑,在本技术的一个或多个实施例中,以下提出一种计算用于prof的梯度和mv差异的通用方法。具体来讲,假设每个样本位置处的水平和垂直梯度是通过对相邻预测样本的差异进行na个右移来计算的,即
[0158]gx
(i,j)=(i(i 1,j)-i(i-1,j))>>na[0159]gy
(i,j)=(i(i,j 1)-i(i,j-1))>>naꢀꢀꢀꢀꢀ
(15);
[0160]
在该样本位置的对应的prof mv差异δv(x,y)应计算为:
[0161]
δv
x
(i,j)=(c*δx d*δy)>>(13-na)
[0162]
δvy(i,j)=(e*δx f*δy)>>(13-na)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(16);
[0163]
其中,δx和δy是从一个样本位置到该样本所属的子块中心的以1/4像素精度表示的水平和垂直偏移,c、d、e和f是基于1/16像素仿射控制点mv导出的参数。最后,将该样本的最终prof细化计算为:
[0164]
δi(i,j)=(g
x
(i,j)*δv
x
(i,j) gy(i,j)*δvy(i,j) 1)>>1
ꢀꢀꢀ
(17);
[0165]
在本技术的一些实施例中,提出了如下所述的另一种prof位深控制方法。在该方法中,仍通过对相邻预测样本的差值进行na位右移来计算每个样本位置处的水平和垂直梯度,如在(15)中那样。在该样本位置的对应的prof mv差异δv(x,y)应计算为:
[0166]
δv
x
(i,j)=(c*δx d*δy)>>(14-na),
[0167]
δvy(i,j)=(e*δx f*δy)>>(14-na)。
[0168]
此外,为了将整个prof推导保持在适当的内部位深,对推导出的mv差异进行裁剪,如下所示:
[0169]
δv
x
(i,j)=clip3(-limit,limit,δv
x
(i,j)),
[0170]
δvy(i,j)=clip3(-limit,limit,δvy(i,j));
[0171]
其中,limit是等于的阈值,clip3(min,max,x)是将给定值x裁剪到[min,max]范围内的函数。在一个示例中,nb的值被设置为2
max(5,bit-depth-7)
。最后,将该样本的最终prof细化计算为:
[0172]
δi(i,j)=g
x
(i,j)*δv
x
(i,j) gy(i,h)*δvy(i,j)。
[0173]
此外,在本技术的一个或多个实施例中,提出了一种prof位深控制方案。在该方法中,每个样本位置(i,j)处的水平和垂直prof运动细化推导为:
[0174]
δv
x
(i,j)=(c*δx d*δy)>>(13-max(5,bit-depth-7)),
[0175]
δvy(i,j)=(e*δx f*δy)>>(13-max(5,bit-depth-7))。
[0176]
此外,将导出的水平和垂直运动细化裁剪为:
[0177]
δv
x
(i,j)=clip3(-max(5,bit-depth-7),max(5,bit-depth-7)-1,δv
x
(i,j))
[0178]
δvy(i,j)=
[0179]
clip3(-max(5,bit-depth-7),max(5,bit-depth-7)-1,δvy(i,j))。
[0180]
在这里,在给定如上导出的运动细化时,将位置(i,j)处的最终prof样本细化计算为:
[0181]
δi(i,j)=g
x
(i,j)*δv
x
(i,j) gy(i,j)*δvy(i,j)。
[0182]
在另一个实施例中,提出了另一种prof位深控制方案。在第二种方法中,将样本位置(i,j)处的水平和垂直prof运动细化推导为:
[0183]
δv
x
(i,j)=(c*δx d*δy)>>(13-max(6,bit-depth-6))
[0184]
δvy(i,j)=(e*δx f*δy)>>(13-max(6,bit-depth-6))。
[0185]
然后,将这些导出的运动细化裁剪为:
[0186]
δv
x
(i,j)=clip3(-max(5,bit-depth-7),max(5,bit-depth-7)-1,δv
x
(i,j))
[0187]
δvy(i,j)=clip3(-max(5,bit-depth-7),max(5,bit-depth-7)-1,δvy(i,j))。
[0188]
因此,在给定如上导出的运动细化时,将位置(i,j)处的最终prof样本细化计算为:
[0189]
δi(i,j)=(g
x
(i,j)*δv
x
(i,j) gy(i,j)*δvy(i,j) 1)>>1
[0190]
在本技术的一个或多个实施例中,提出了将方案中的运动细化精度控制方法与方案二中的prof样本细化推导方法相结合。具体来讲,通过这种方法,将样本位置(i,j)处的水平和垂直prof运动细化推导为:
[0191]
δv
x
(i,j)=(c*δx d*δy)>>(13-max(5,bit-depth-7)),
[0192]
δvy(i,j)=(e*δx f*δy)>>(13-max(5,bit-depth-7))。
[0193]
此外,将这些导出的水平和垂直运动细化裁剪为:
[0194]
δv
x
(i,j)=clip3(-max(5,bit-depth-7),max(5,bit-depth-7)-1,δv
x
(i,j))
[0195]
δvy(i,j)=
[0196]
clip3(-max(5,bit-depth-7),max(5,bit-depth-7)-1,δvy(i,j))。
[0197]
最后,在给定如上导出的运动细化时,将位置(i,j)处的最终prof样本细化计算为:
[0198]
δi(i,j)=(g
x
(i,j)*δv
x
(i,j) gy(i,j)*δvy(i,j) 1)>>1。
[0199]
用于双向预测的bdof和prof协调工作流程
[0200]
如前面所讨论的那样,当一个仿射编码块被双向预测时,以单边方式应用该当前
的prof。更具体地讲,这些prof样本细化分别导出并应用于列表l0和l1中的预测样本。之后,分别对来自列表l0和l1的细化预测信号进行平均以生成该块的最终双向预测信号。这与bdof设计形成对比,在bdof设计中,这些样本细化被导出并应用于该双向预测信号。bdof和prof的双向预测工作流程之间的这种差异可能对实际的编解码器流水线设计并不友好。
[0201]
为了便于硬件流水线设计,根据本技术,一种简化方法是修改prof的双向预测过程,以使两种预测细化方法的工作流程协调一致。具体来讲,所提出的prof方法不是对每个预测方向分别应用细化,而是基于列表l0和l1的控制点mv导出一次预测细化;然后将导出的这些预测细化应用于合并的l0和l1预测信号以提高质量。具体而言,基于等式(14)中导出的mv差异,通过所提出的方法将一个仿射编码块的最终双向预测样本计算为:
[0202]
pred
prof
(i,j)=(i
(0)
(i,j) i
(1)
(i,j) δi(i,j) o
offset
)>>shift,
[0203]
δi(i,j)=(g
x
(i,j)*δv
x
(i,j) gy(i,j)*δvy(i,j) 1)>>1
[0204]
ir(i,h)=i(i,j) δi(i,j)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(18);
[0205]
其中,shift和o
offset
是用于合并l0和l1预测信号进行双向预测的右移值和偏移值,它们分别等于(15-bit-depth)和1<<(14-bit-depth) (2<<13)。此外,如(18)所示,在所提出的方法中去除了现有prof设计(如(9)所示)中的裁剪操作。
[0206]
图12示出了当应用所提出的双向预测prof方法时对应的prof过程。prof过程1200包括l0运动补偿1210、l1运动补偿1220和双向预测prof 1230。l0运动补偿1210例如可以是来自在先参考图片的运动补偿样本的列表。该在先参考图片是先于该视频块中的当前图片的参考图片。l1运动补偿1220例如可以是来自下一个参考图片的运动补偿样本的列表。该下一个参考图片是该视频块中当前图片之后的参考图片。如上所述,双向预测prof 1230从l0运动补偿1210和l1运动补偿1220接收运动补偿样本并输出双向预测样本。
[0207]
为了展示所提出方法对硬件流水线设计的潜在益处,图13示出了一个示例来说明同时应用bdof和所提出的prof时的流水线阶段。在图13中,一个帧间块的解码过程主要包含三个步骤:
[0208]
第一,解析/解码该编码块的mv并获取参考样本。
[0209]
第二,生成该编码块的l0和/或l1预测信号。
[0210]
第三,基于该编码块通过一种非仿射模式预测时的bdof或该编码块通过仿射模式预测时的prof,对生成的双向预测样本执行逐样本细化。
[0211]
图13示出了根据本技术的应用bdof和所提出的prof时的示例性流水线级的示图。图13展示了所提出方法对硬件流水线设计的潜在好处。流水线级1300包括解析/解码mv和获取参考样本1310、运动补偿1320、bdof/prof 1330。流水线级1300将对视频块blk0、bkl1、bkl2、bkl3和blk4进行编码。每个视频块将从解析/解码mv开始并获取参考样本1310并依次移动到运动补偿1320、运动补偿1320、bdof/prof1330。这意味着在blk0移动到运动补偿1320之前,blk0不会在流水线级1300过程中开始。随着时间从t0到t1、t2、t3和t4,所有级和视频块都是如此。
[0212]
图13中,一个帧间块的解码过程主要包括三个步骤:
[0213]
第一,解析/解码该编码块的mv并获取参考样本。
[0214]
第二,生成该编码块的l0和/或l1预测信号。
[0215]
第三,基于该编码块通过一种非仿射模式预测时的bdof或该编码块通过仿射模式
预测时的prof,对生成的双向预测样本执行逐样本细化。
[0216]
如图13所示,在应用所提出的协调方法后,将bdof和prof都直接应用于双向预测样本。鉴于bdof和prof应用于不同类型的编码块(即,bdof应用于非仿射块,prof应用于仿射块),不能同时调用这两种编码工具。因此,它们的对应解码过程可通过共享同一流水线级来进行。这比现有的prof设计更高效,在现有的prof设计中,由于bdof和prof的双向预测工作流程不同,很难为它们分配同一流水线级。
[0217]
在上面的讨论中,所提出的方法仅考虑bdof和prof的工作流的协调。然而,根据现有的设计,用于这两种编码工具的基本操作单元也是在不同的大小来执行的。例如,对于bdof,一个编码块被分割成多个大小为ws×hs
的子块,其中,ws=min(w,16),hs=min(h,16),其中w和h分别是该编码块的宽度和高度。诸如梯度计算和样本细化推导的bodf操作是针对每个子块独立执行的。另一方面,如前所述,仿射编码块被划分为4
×
4个子块,并且为每个子块分配一个基于4参数或6参数仿射模型导出的单独mv。由于prof仅被应用于该仿射块,所以它的基本运算单元是4
×
4子块。与双向预测工作流问题类似,从bdof对prof使用不同的基本操作单元大小对硬件实现也并不友好,并且使得bdof和prof难以共享整个解码过程的同一流水线级。为了解决这样的问题,在一个或多个实施例中,提出将仿射模式的子块大小对齐为与bdof的子块大小相同。
[0218]
这里,根据所提出的方法,如果一个编码块被仿射模式编码,则它将被分裂成大小为ws×hs
的子块,其中,ws=min(w,16),hs=min(h,16),其中,w和h是编码块的宽度和高度。每个子块被分配一个单独的mv,并被视为一个独立的prof操作单元。值得一提的是,独立的prof操作单元可确保在其上执行的prof操作无需参考来自相邻prof操作单元的信息。具体来讲,将一个样本位置处的prof mv差异计算为该样本位置处的mv与该样本所在的prof操作单元的中心处的mv之间的差异;prof推导所使用的梯度是通过沿每个prof操作单元填充样本来计算的。所提出的方法好处主要包括以下方面:1)简化的流水线架构,具有用于运动补偿和bdof/prof细化的统一的基本操作单元大小;2)由于用于仿射运动补偿的子块大小增大,减少了内存带宽的使用;3)降低了分数样本插值的每样本计算的复杂度。
[0219]
还应提到的是,由于使用所提出的方法降低了计算复杂度(即,第3项),因此,可以去除现有的对仿射编码块的6抽头插值滤波器约束。相反,用于非仿射编码块的默认8抽头插值也用于仿射编码块。在这种情况下,总体计算复杂度仍比现有的prof设计(即,基于具有6抽头插值滤波器的4
×
4子块)有优势。
[0220]
用于bdof和prof的梯度推导的协调
[0221]
如前所述,bdof和prof都计算该当前编码块内的每个样本的梯度,其访问该块的每一侧上的一个附加行/列的预测样本。为了避免额外的插值复杂性,直接从整数参考样本中复制块边界周围扩展区域中所需的预测样本。然而,正如“问题陈述”一节中所指出的,在不同位置的整数样本用于计算bdof和prof的梯度值。
[0222]
为了实现更统一的设计,下面提出了两种方法来统一bdof和prof使用的梯度推导方法。在第一种方法中,提出将prof的梯度推导方法与bdof的梯度推导方法对齐。具体来讲,通过第一种方法,用于在扩展区域中生成这些预测样本的整数位置是通过对分数样本进行向下取整来确定的,即选择的整数样本位置位于分数样本位置的左侧(对于水平梯度)并且分数样本位置上方(对于垂直梯度)。在第二种方法中,提出将bdof的梯度推导方法与
prof的梯度推导方法对齐。更详细地来讲,当应用第二种方法时,最接近该预测样本的整数参考样本用于梯度计算。
[0223]
图14示出了根据本技术的使用bdof的梯度推导方法的示例。在图14中,空白圆圈表示整数位置处的参考样本,三角形表示该当前块的分数预测样本,黑色圆圈表示用于填充该当前块的扩展区域的整数参考样本。
[0224]
图15示出了根据本技术的使用prof的梯度推导方法的示例。在图15中,空白圆圈表示整数位置处的参考样本,三角形表示该当前块的分数预测样本,黑色圆圈表示用于填充该当前块的扩展区域的整数参考样本。
[0225]
图14和图15分别示出了当应用第一种方法(图14)和第二种方法(图15)时用于bdof和prof的梯度的推导的对应整数样本位置。在图14和图15中,空白圆圈表示整数位置处的参考样本,三角形表示该当前块的分数预测样本,带图案的圆圈表示用于填充该当前块的扩展区域以进行梯度推导的整数参考样本。
[0226]
另外,根据现有的bdof和prof设计,预测样本填充是在不同的编解码级别进行的。具体来讲,对于bdof,沿每个sbwidth
×
sbheight子块的边界应用填充,其中,sbwidth=min(cuwidth,16),sbheight=min(cuheight,16)。cuwidth和cuheight是一个cu的宽度和高度。另一方面,始终以4
×
4子块级别应用prof的填充。在上面的讨论中,bdof和prof之间只有填充方法是统一的,而填充子块大小仍然不同。这对于实际的硬件实现也不友好,因为需要实现不同的模块以用于bdof和prof的填充过程。为了实现更统一的设计,提出了统一bdof和prof的子块填充大小。在本技术的一个或多个实施例中,提出以4
×
4级别应用bdof的预测样本填充。具体来讲,通过这种方法,首先将该cu划分为多个4
×
4的子块;在对每个4
×
4子块进行运动补偿之后,通过复制相应的整数样本位置来填充沿上/下和左/右边界的扩展样本。图18a、18b、18c和18d示出了将所提出的填充方法应用于一个16
×
16的bdof cu的一个示例,其中,虚线表示4
×
4子块边界,黑色带表示每个4
×
4子块的填充的样本。
[0227]
图18a示出了根据本技术的应用于16
×
16的bdof cu的提出的填充方法,其中,虚线表示左上4
×
4子块边界1820。
[0228]
图18b示出了根据本技术的应用于16
×
16bdof cu的提出的填充方法,其中,虚线表示右上4
×
4子块边界1840。
[0229]
图18c示出了根据本技术的应用于16
×
16bdof cu的提出的填充方法,其中,虚线表示左下4
×
4子块边界1860。
[0230]
图18d示出了根据本技术的应用于16
×
16bdof cu的提出的填充方法,其中,虚线表示右下4
×
4子块边界1880。
[0231]
启用/禁用bdof、prof和dmvr的高级信令语义
[0232]
在现有的bdof和prof设计中,在序列参数集(sps)中有两个不同的标志,以分别控制两个编码工具的启用/禁用。然而,由于bdof和prof之间的相似性,更希望通过一个相同的控制标志从高级别启用和/或禁用bdof和prof。基于这样的考虑,在sps引入了一个新的标志,称为sps_bdof_prof_enabled_flag,如表1所示。如表1所示,bdof的启用和禁用仅依赖于sps_bdof_prof_enabled_flag。当该标志等于1时,启用bdof以对该序列中的视频内容进行编解码。否则,当sps_bdof_prof_enabled_flag等于0时,将不应用bdof。另一方面,除了sps_bdof_prof_enabled_flag之外,sps级别仿射控制标志,即sps_affine_enabled_
flag,也用于有条件地启用和禁用prof。当标志sps_bdof_prof_enabled_flag和sps_affine_enabled_flag都等于1时,为仿射模式编码的所有编码块启用prof。当标志sps_bdof_prof_enabled_flag等于1且sps_affine_enabled_flag等于0时,禁用prof。
[0233]
表1具有所提出的bdof/prof启用/禁用标志的修改后的sps语义表
[0234][0235]
sps_bdof_prof_enabled_flag指示是否启用双向光流和光流预测细化。当sps_bdof_prof_enabled_flag等于0时,双向光流和光流预测细化都被禁用。当sps_bdof_prof_enabled_flag等于1且sps_affine_enabled_flag等于1时,双向光流和光流预测细化都被启用。否则(sps_bdof_prof_enabled_flag等于1,sps_affine_enabled_flag等于0),启用双向光流,禁用光流预测细化。
[0236]
sps_bdof_prof_dmvr_slice_preset_flag指示何时以切片级别通过信号发送标志slice_disable_bdof_prof_dmvr_flag。当该标志等于1时,为每个引用当前序列参数集的切片通过信号发送语义slice_disable_bdof_prof_dmvr_flag。否则(当sps_bdof_prof_dmvr_slice_present_flag等于0时),不会以切片级别通过信号发送syntax slice_disabled_bdof_prof_dmvr_flag。当该标志没有被通过信号发送时,被推断为0。
[0237]
此外,当使用建议的sps级别bdof和prof控制标志时,一般约束信息语义中对应的控制标志no_bdof_constraint_flag也应通过下表进行修改:
[0238][0239]
no_bdof_prof_constraint_flag等于1指示sps_bdof_prof_enabled_flag将会等于0。no_bdof_constraint_flag等于0不施加约束。
[0240]
除了上述spsbdof/prof语义之外,提出了以切片级别引入另一种控制标志,即,引入slice_disable_bdof_prof_dmvr_flag以禁用bdof、prof和dmvr。sps标志sps_bdof_prof_dmvr_slice_present_flag用于指示slice_disable_bdof_prof_dmvr_flag的存在,该标志在dmvr或bdof/prof sps级别控制标志中的任一个为真时在sps中被通过信号发送。若存在的话,则通过信号发送slice_disable_bdof_dmvr_flag。表2说明了在应用所提出的语义之后修改后的切片头语义表。在另一个实施例中,提出在切片头仍然使用这两个控制标志来分别控制bdof和dmvr的启用/禁用以及prof的启用/禁用。具体来讲,该方法在切片头中使用了两个标志:一个标志slice_disable_bdof_dmvr_slice_flag用于控制bdof的打开/关闭,dmvr和另一个标志disable_prof_slice_flag用于单独控制prof的打开/关闭。
[0241]
表2具有所提出的bdof/prof启用/禁用标志的修改后的sps语义表
[0242][0243]
在另一个实施例中,提出通过两个不同的sps标志分别控制bdof和prof。具体来讲,引入了两个单独的sps标志sps_bdof_enable_flag和sps_prof_enable标志来分别启用/禁用这两个工具。另外,需要在general_constrain_info()语义表中增加一个高级别控制标志no_prof_constraint_flag来强制禁用该prof工具。
[0244][0245]
sps_bdof_enabled_flag指示是否启用双向光流。当sps_bdof_enabled_flag等于0时,双向光流被禁用。当sps_bdof_enabled_flag等于1时,启用双向光流。
[0246]
sps_prof_enabled_flag指示是否启用光流预测细化。当sps_prof_enabled_flag等于0时,禁用光流预测细化。当sps_prof_enabled_flag等于1时,启用光流预测细化。
[0247][0248]
no_prof_constraint_flag等于1指示sps_prof_enabled_flag应等于0。no_prof_constraint_flag等于0不施加约束。
[0249]
在切片级别,在本技术的一个或多个实施例中,提出了引入在切片级别的另一个控制标志,即引入slice_disable_bdof_prof_dmvr_flag用于一起禁用bdof、prof和dmvr。在另一个实施例中,提出了添加两个在切片级别的单独的标志,即slice_disable_bdof_dmvr_flag和slice_disable_prof_flag。第一个标志(即slice_disable_bdof_dmvr_flag)用于自适应地打开/关闭用于一个切片的bdof和dmvr,第二个标志(即slice_disable_prof_flag)用于以切片级别控制prof工具的启用和禁用。此外,当应用第二种方法时,仅在启用spsbdof或spsdmvr标志时才需要通过信号发送标志slice_disable_bdof_dmvr_flag,并且仅在启用sps prof标志时才需要通过信号发送该标志。
[0250]
图11示出了bdof和prof的方法。例如,该方法可以应用于解码器。
[0251]
在步骤1110中,该解码器可以接收两个通用约束信息(gci)级别控制标志。这两个gci级别控制标志由该编码器通过信号发送并且可包括第一gci级别控制标志和第二gci级别控制标志。第一gci级别控制标志表示是否允许该bdof对当前视频序列进行解码。第二gci级别控制标志表示是否允许该prof对当前视频序列进行解码。
[0252]
在步骤1112中,该解码器可以接收两个sps级别控制标志。这两个sps级别控制标志由sps的编码器通过信号发送,并表示是否为该当前视频块启用bdof和prof。
[0253]
在步骤1114中,当第一sps级别控制标志被启用时,该解码器可以应用bdof以基于在该视频块未被以仿射模式编码时的第一预测样本i
(0)
(i,j)和第二预测样本i
(1)
(i,j)导出该视频块的运动细化。
[0254]
在步骤1116中,当第二sps级别控制标志被启用时,该解码器可以应用prof以基于在该视频块被以仿射模式编码时的第一预测样本i
(0)
(i,j)和第二预测样本i
(1)
(i,j)导出该视频块的运动细化。
[0255]
在步骤1118中,该解码器可以基于这些运动细化获得该视频块的预测样本。
[0256]
基于控制点mv差异的prof提前终止
[0257]
根据目前的prof设计,prof总是在用仿射模式预测一个编码块时被调用。然而,如等式(6)和(7)所示,一个仿射块的子块mv是从这些控制点mv导出的。因此,当控制点mv之间的差异较小时,在每个样本位置的mv应该是一致的。在这种情况下,应用prof的好处可能非常有限。因此,为了进一步降低prof的平均计算复杂度,提出了基于一个4
×
4子块内的逐样本mv与逐子块mv之间的最大mv差异来自适应地跳过基于prof的样本细化。由于一个4
×
4子块内的样本的prof mv差值相对于子块中心对称,所以可基于等式(10)将最大水平和垂直prof mv差值计算为:
[0258][0259][0260]
根据本技术,可以使用不同的度量来确定该mv差异是否小到足以跳过该prof过程。
[0261]
在一个示例中,基于等式(19),当绝对最大水平mv差异与绝对最大垂直mv差异之和小于一个预定义的阈值时,可以跳过该prof过程,即,
[0262][0263]
在另一个示例中,若和的最大值不大于一个阈值,则可以跳过该prof过程。
[0264][0265]
其中,max(a,b)是返回输入值a与b之间的较大值的函数。
[0266]
除上述两个示例之外,本技术的构思还适用于使用其他度量来确定mv差异是否足够小以跳过prof过程的情况。在上述方法中,基于mv差异的幅度而跳过prof。另一方面,除了该mv差异之外,还根据一个运动补偿后的块中每个样本位置的局部梯度信息来计算该prof样本细化。对于包含较少高频细节(如平坦区域)的预测块,梯度值往往很小,因此所导出的样本细化值应该很小。考虑到这一点,根据另一个实施例,提出仅将prof应用于包含足
够高频信息的块的预测样本。
[0267]
在确定块是否包含足够的高频信息以使得值得为该块调用该prof过程时,可以使用不同的度量。在一个示例中,基于预测块内样本的梯度的平均幅度(即绝对值)做出决定。如果平均大小小于一个阈值,则将该预测块分类为平坦区域,并且不应应用该prof;否则,认为该预测块包含足够的高频细节,prof仍然适用。在另一个示例中,可以使用该预测块内的样本的梯度的最大大小。如果最大大小小于一个阈值,则为该块跳过该prof。在又一示例中,该预测块的最大样本值与最小样本值之间的差i
max-i
min
可以用于确定是否将该prof应用于该块。如果这种差值小于阈值,则为该块跳过该prof。值得注意的是,本技术的构思也适用于使用其他一些度量来确定给定块是否包含足够的高频信息的情况。
[0268]
处理用于仿射模式的prof与lic之间的交互
[0269]
由于当前块的相邻重构样本(即,模板)被lic用于导出线性模型参数,所以一个lic编码块的解码取决于其相邻样本的完全重构。由于这种相互依赖性,对于实际的硬件实现,需要在重建阶段执行lic,其中相邻的重建样本可用于lic参数推导。因为块重构必须按顺序(即,一个接一个)执行,因此,在将其他编码方法联合应用于lic编码块时,吞吐量(即单位时间内可以并行完成的工作量)是一个需要考虑的重要问题。在本节中,提出了两种方法来处理当prof和lic都启用以用于仿射模式时的交互。
[0270]
在本技术的第一实施例中,提出了将prof模式和lic模式排他地应用于一个仿射编码块。如前所述,在现有设计中,prof隐式应用于所有仿射块而无需信令,而在编码块级别标记或继承一个lic标志,以表示是否将lic模式应用于一个仿射块。根据本技术的方法,提出了基于一个仿射块的lic标志的值有条件地应用prof。当该标志等于1时,通过基于lic权重和偏移量调整整个编码块的预测样本来仅应用lic。否则(即lic标志等于0),将prof应用于该仿射编码块,以基于光流模型细化每个子块的预测样本。
[0271]
图17a示出了基于所提出的方法的解码过程的一个示例性流程图,其中不允许同时应用prof和lic。
[0272]
图17a示出了根据本技术的基于所提出的方法的解码过程的图示,其中prof和lic被禁止。解码过程1720包括lic标志是否开启的步骤1722、lic 1724和prof1726。lic标志是否开启的步骤1722是判断是否设置了lic标志并根据该判断采取下一步的步骤。lic 1724是在设置了该lic标识时,lic的应用是设置了该lic标志。prof 1726是在未设置lic标志时prof的应用。
[0273]
在本技术的第二实施例中,提出了在prof之后应用lic来生成一个仿射块的预测样本。具体来讲,在完成基于子块的仿射运动补偿后,基于prof样本细化对这些预测样本进行细化;然后,通过将一对权重和偏移量(从该模板及其参考样本导出)应用于经过prof调整的预测样本来进行lic,以获得该块的最终预测样本,如下所示:
[0274]
p[x]=α*(pr[x v] δi[x]) β
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(22);
[0275]
其中,pr[x v]是运动向量v所指示的当前块的参考块;α和β是lic权重和偏移量;p[x]是最终的预测块;δi[x]是在(15)中导出的prof细化。
[0276]
图17b示出了根据本技术的其中应用prof和lic的解码过程的图示。解码过程1760包括仿射运动补偿1762、lic参数推导1764、prof 1766和lic样本调整1768。仿射运动补偿1762应用仿射运动并且是lic参数推导1764和prof 1766的输入。lic参数推导1764用于导
出lic参数。prof 1766正在应用prof。lic样本调整1768是与prof相结合的lic权重参数和偏移参数。
[0277]
图17b示出了当应用第二方法时的示例性解码工作流程。如图17b所示,因为该lic使用该模板(即相邻的重建样本)来计算lic线性模型,所以只要相邻的重建样本可用,就可以立即导出lic参数。这意味着可以同时进行prof细化和lic参数推导。
[0278]
lic权重和偏移量(即α和β)和prof细化(即δi[x])通常是浮点数。对于友好的硬件实现,这些浮点数运算通常被实现为一个整数值的乘法,然后是多个位的右移运算。在现有的lic和prof设计中,由于这两个工具是单独设计的,因此在两个阶段分别应用了n
lic
比特和n
prof
比特的两种不同的右移。
[0279]
根据第三实施例,为了提高在将prof和lic联合应用于仿射编码块的情况下的编码增益,提出了以高精度应用基于lic和基于prof的样本调整。这是通过将它们的两个右移操作合二为一并在最后应用它来导出当前块的最终预测样本(如(12)所示)来完成的。
[0280]
解决将prof与加权预测和cu级加权双向预测(bcw)相结合时的乘法溢出问题
[0281]
根据目前vvc工作草案中的prof设计,prof可以与加权预测(wp)联合应用。具体来讲,当它们结合时,一个仿射cu的预测信号将通过以下过程产生:
[0282]
第一,对于位置(x,y)处的每个样本,基于该prof计算l0预测细化δi0(x,y)并将该细化添加到原始l0预测样本i0(x,y),即,
[0283]
δi0(x,y)=(g
h0
(x,y)
·
δv
x0
(x,y) g
v0
(x,y)
·
δv
y0
(x,y) 1)>>1
[0284]
i0′
(x,y)=i0(x,y) δi0(x,y)
ꢀꢀꢀꢀꢀ
(23);
[0285]
其中,i0′
(x,y)是细化的样本;g
h0
(x,y)和g
v0
(x,y)是位置(x,y)处的l0水平/垂直梯度和l0水平/垂直运动细化。
[0286]
第二,对于位置(x,y)处的每个样本,基于该prof计算l1预测细化δi1(x,y)并将该细化添加到原始l1预测样本i1(x,y),即,
[0287]
δi1(x,y)=(g
h1
(x,y)
·
δv
x1
(x,y) g
v1
(x,y)
·
δv
y1
(x,y) 1)>>1
[0288]
i1′
(x,y)=i1(x,y) δi1(x,y)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(24);
[0289]
其中,i1′
(x,y)是细化的样本;g
h1
(x,y)和g
v1
(x,y)以及δv
x1
(x,y)和δv
y1
(x,y)是位置(x,y)处的l1水平/垂直梯度和l1水平/垂直运动细化。
[0290]
第三,将细化的l0与l1预测样本结合起来,即,
[0291]ibi
(x,y)=(w0·
i0′
(x,y) w1·
i1′
(x,y) offset)>>shift
ꢀꢀꢀꢀ
(25);
[0292]
其中,w0和w1是wp和bcw权重;shift和offset是应用于用于wp和bcw的双向预测的l0和l1预测信号的加权平均的偏移和右移。这里,用于wp的参数包括w0和w1和offset,而用于bcw的参数包括w0和w1和shift。
[0293]
从上面的等式可以看出,由于逐样本的细化,即δi0(x,y)和δi1(x,y),所以prof之后的预测样本(即i0′
(x,y)和i1′
(x,y))将比原始预测样本(即i0(x,y)和i1(x,y))增加一个动态范围。鉴于这些细化的预测样本将与wp和bcw加权因子相乘,这将增加所需乘数的长度。例如,基于目前的设计,当内部编码位深为8-12比特时,预测信号i0(x,y)和i1(x,y)的动态范围为16比特。但是,在该prof之后,预测信号i0′
(x,y)和i1′
(x,y)的动态范围是17比特。因此,在应用该prof时,可能会导致16比特乘法溢出问题。为了解决此类溢出问题,以下提出了多种方法:
[0294]
第一,在第一种方法中,提出了在将该prof应用于一个仿射cu时禁用wp和bcw。
[0295]
第二,在第二种方法中,提出了在将导出的样本细化添加到原始预测样本之前对导出的样本细化应用一次裁剪操作,以使这些细化的预测样本的动态范围i0′
(x,y)和i1′
(x,y)具有与原始预测样本i0(x,y)和i1(x,y)相同的动态位深。具体来讲,通过这种方法,通过引入一个裁剪操作来修改(23)和(24)中的样本细化δi0(x,y)和δi1(x,y),如下所示:
[0296]
δi0(x,y)=clip3(-2
di-1
,2
di-1-1,δi0(x,y)),
[0297]
δi1(x,y)=clip3(-2
di-1
,2
di-1-1,δi1(x,y));
[0298]
其中,di=di
base
max(0,bd-12),其中bd是内部编码位深;di
base
是基本位深值。在一个或多个实施例中,提出了将di
base
的值设置为14。在另一个实施例中,提出了将该值设置为13。在一个或多个实施例中,提出了直接设置di的值为固定值。在一个示例中,提出了将di的值设置为13,即,将该样本细化裁剪在[-4096,4095]范围内。在另一个示例中,提出了将di的值设置为14,即,将该样本细化裁剪到范围[-8192,8191]。
[0299]
图10示出了prof的方法。例如,该方法可以应用于解码器。
[0300]
在步骤1010中,该解码器可以获得与视频信号内通过仿射模式编码的视频块相关联的第一参考图片i
(0)
和第二参考图片i
(1)

[0301]
在步骤1012中,该解码器可以基于与第一参考图片i
(0)
和第二参考图片i
(1)
关联的第一预测样本i
(0)
(i,j)和第二预测样本i
(1)
(i,j)获得第一水平梯度值、第二水平梯度值、第一垂直梯度值以及第二垂直梯度值。
[0302]
在步骤1014中,该解码器可以基于与第一参考图片i
(0)
和第二参考图片i
(1)
关联的cpmv获得第一水平运动细化、第二水平运动细化、第一垂直运动细化以及第二垂直运动细化。
[0303]
在步骤1016中,该解码器可以基于第一水平梯度值、第二水平梯度值、第一垂直梯度值、第二垂直梯度值、第一水平运动细化、第二水平运动细化、第一垂直运动细化以及第二垂直运动细化获得第一预测细化δi
(0)
(i,j)和第二预测细化δi
(1)
(i,j)。
[0304]
在步骤1018中,该解码器可以基于第一预测样本i
(0)
(i,j)、第二预测样本i
(1)
(i,j)、第一预测细化δi
(0)
(i,j)、第二预测细化δi
(1)
(i,j)和预测参数获得该视频块的最终预测样本。这些预测参数可包括用于wp和bcw的加权参数和偏移参数。
[0305]
第一,在第三种方法中,提出了直接裁剪这些细化的预测样本,而不是裁剪这些样本细化,以使这些细化的样本具有与原始预测样本相同的动态范围。具体来讲,通过第三种方法,这些细化的l0和l1样本将会是:
[0306]
i0′
(x,y)=clip3(-2
dr
,2
dr-1,i0(x,y) δi0(x,y)),
[0307]
i1′
(x,y)=clip3(-2
dr
,2
dr-1,i1(x,y) δi1(x,y));
[0308]
其中,dr=16 max(0,bd-12)(或等效地为max(16,bd 4)),其中,bd是内部编解码位深。在一个或多个实施例中,提出了将这些细化的prof预测样本硬裁剪为16位,即,将dr的值设置为15。在另一实施例中,提出了将这些细化的prof样本值裁剪为prof之前的初始预测样本i0和i1的相同的动态范围[na,nb],其中,na和nb是这些初始预测样本可以达到的最小和最大极值。
[0309]
第二,在第四种方法中,提出了在wp和bcw之前将某些右移应用于这些细化的l0和l1预测样本;然后通过额外的左移将最终的预测样本调整到原始精度。具体来讲,将最终的
预测样推导为:
[0310]ibi
(x,y)=(w0·
(i0′
(x,y)>>nb) w1·
(i1′
(x,y)>>nb) offset)>>(shift-nb);
[0311]
其中,nb是应用的附加位移的数量,可以基于这些prof样本细化的相应动态范围来确定该数量。
[0312]
第三,在第五种方法中,提出了将l0/l1预测样本与式(25)中对应的wp/bcw权重的每次相乘分成两次相乘,这两次相乘均不超过16位,将其描述为:
[0313]ibi
(x,y)=(w0·
i0(x,y) w0·
δi0(x,y) w1·
i1(x,y) w1·
δi1(x,y) offset)>>shift。
[0314]
可以使用包括一个或多个电路的装置来实现上述的这些方法,这些电路包括专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子部件。该装置可以将这些电路与其他硬件或软件组件结合起来使用以执行上述的这些方法。前面所公开的每个模块、子模块、单元或子单元可以至少部分地使用一个或多个电路来实现。
[0315]
图19是示出了根据本技术的示例的与用户接口耦合的计算环境的示图。计算环境1910可以是数据处理服务器的一部分。计算环境1910包括处理器1920、存储器1940和输入/输出(i/o)接口1950。
[0316]
处理器1920通常控制计算环境1910的整体操作,例如与显示、数据采集、数据通信和图像处理相关联的操作。处理器1920可以包括用于执行指令以执行上述方法中的全部或一些步骤的一个或更多个处理器。此外,处理器1920可以包括促进处理器1920与其他组件之间的交互的一个或更多个模块。处理器可以是中央处理单元(cpu)、微处理器、单片机、gpu等。
[0317]
存储器1940被配置为存储各种类型的数据以支持计算环境1910的操作。存储器1940可以包括预定软件1932。这种数据的示例包括用于在计算环境1910上操作的任何应用或方法的指令、视频数据集、图像数据等。存储器1940可以通过使用任何类型的易失性或非易失性存储器设备或其组合来实现,例如静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、闪存存储器、磁盘或光盘。
[0318]
i/o接口1950提供处理器1920与外围接口模块(例如键盘、点击轮、按钮等)之间的接口。按钮可以包括但不限于主页按钮、开始扫描按钮和停止扫描按钮。i/o接口1950可以与编码器和解码器耦合。
[0319]
在一些实施例中,还提供了一种包括例如存储器1940中的多个程序的非暂态计算机可读存储介质,所述多个程序可以由计算环境1910中的处理器1920执行以用于执行上述方法。例如,非暂态计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘、光学数据存储设备等。
[0320]
该非暂态计算机可读存储介质中存储有用于由具有一个或多个处理器的计算设备执行的多个程序,其中,该多个程序在由该一个或多个处理器执行时,使该计算设备执行上述运动预测方法。
[0321]
在实施例中,计算环境1910可以用一个或多个专用集成电路(asic)、数字信号处
理器(dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、图形处理单元(gpu)、控制器、微控制器、微处理器、或其他电子部件来实施,用于执行上述方法。
[0322]
本技术的描述已经出于说明的目的被呈现,并且不旨在穷举或限于本技术。受益于在以上描述和相关联的附图中呈现的教导,许多修改、变化和备选实施方式对于本领域普通技术人员将是显而易见的。
[0323]
选择和描述示例是为了解释本技术的原理,并且使本领域的其他技术人员能够理解本技术的各种实施方式,并且最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实施方式。因此,将理解,本技术的范围不限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在被包括在本技术的范围内。
再多了解一些

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

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

相关文献