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

用于双向光流和解码器侧运动矢量细化的简化的方法和装置与流程

2022-11-09 23:00:35 来源:中国专利 TAG:

用于双向光流和解码器侧运动矢量细化的简化的方法和装置
1.相关申请的交叉引用
2.本技术基于并要求于2020年3月2日提交的申请号为62/992,893的临时申请的优先权,该临时申请的全部内容通过引用完整地并入本文以用于所有目的。
技术领域
3.本公开涉及视频编解码和压缩。更具体地,本公开涉及用于双向光流(bio)工具(也被缩写为bdof)和解码器侧运动矢量细化(dmvr)的简化的方法和装置。


背景技术:

4.各种视频编解码技术可被用于压缩视频数据。根据一个或更多个视频编解码标准执行视频编解码。例如,如今,一些众所周知的视频编解码标准包括由iso/iec mpeg和itu-t vecg联合开发的通用视频编解码(vvc)、高效视频编解码(hevc,也称为h265或mpeg-h部分2)和高级视频编解码(avc,也称为h264或mpeg-4部分1)。aomedia video1(avi)由开放媒体联盟(aom)开发,作为其先前标准vp9的后继者。作为数字音频和数字视频压缩标准的音视频编解码(avs)是由中国的音视频编解码标准工作组开发的另一视频压缩系列。大多数现有的视频编解码标准建立在著名的混合视频编解码框架上,即,使用基于块的预测方法(例如,帧间预测、帧内预测)来减少视频图像或序列中存在的冗余并使用变换编解码来压缩预测误差的能量。视频编解码技术的重要目标是将视频数据压缩为使用较低比特率的形式,同时避免或最小化视频质量的劣化。


技术实现要素:

5.本公开的示例提供了用于双向光流(bio)和解码器侧运动矢量细化(dmvr)的简化的方法和装置。
6.根据本公开的第一方面,提供了一种用于对视频信号进行解码的方法。该方法可包括解码器获得与编码单元(cu)相关联的前向参考图片l
(0)
和后向参考图片l
(1)
。按显示顺序,前向参考图片l
(0)
可在当前图片之前并且后向参考图片l
(1)
可在当前图片之后。解码器可从前向参考图片l
(0)
中的参考块获得cu的前向参考样点l
(0)
(x,y)。x和y可表示前向参考图片l
(0)
中的一个样点的整数坐标。解码器可从后向参考图片l
(1)
中的参考块获得cu的后向参考样点l
(1)
(x’,y’)。x’和y’可表示后向参考图片l
(1)
中的一个样点的整数坐标。解码器可基于整数参考样点之间的失真测量跳过双向光流(bio)处理。整数参考样点之间的失真测量可指示前向参考样点l
(0)
(x,y)与后向参考样点l
(1)
(x’,y’)之间的差。当跳过bio处理时,解码器可获得cu的预测样点。
7.根据本公开的第二方面,提供了一种用于对视频信号进行解码的方法。该方法可包括解码器获得与编码单元(cu)相关联的第一参考图片i
(0)
和第二参考图片i
(1)
。按显示顺序,第一参考图片i
(0)
可在当前图片之前,并且第二参考图片i
(1)
可在当前图片之后。解码器可从第一参考图片i
(0)
中的参考块获得cu的第一预测样点i
(0)
(i,j)。i和j可表示当前图片
的一个样点的坐标。解码器可从第二参考图片i
(1)
中的参考块获得cu的第二预测样点i
(1)
(i,j)。解码器可基于双向光流bio处理获得针对cu中的样点的运动细化,其中,bio处理基于第一预测样点i
(0)
(i,j)、第二预测样点i
(1)
(i,j)、水平梯度值和垂直梯度值而被应用于cu。水平梯度值和垂直梯度值可以是使用具有更少系数的梯度滤波器而计算出的。解码器可基于运动细化获得cu的双向预测样点。
8.根据本公开的第三方面,提供了一种计算设备。该计算设备可包括一个或更多个处理器、存储由一个或更多个处理器可执行的指令的非暂态计算机可读存储器。一个或更多个处理器可被配置为获得与编码单元(cu)相关联的前向参考图片l
(0)
和后向参考图片l
(1)
。按显示顺序,前向参考图片l
(0)
可在当前图片之前并且后向参考图片l
(1)
可在当前图片之后。一个或更多个处理器可被配置为从前向参考图片l
(0)
中的参考块获得cu的前向参考样点l
(0)
(x,y)。x和y可表示前向参考图片l
(0)
中的一个样点的整数坐标。一个或更多个处理器可被配置为从后向参考图片l
(1)
中的参考块获得cu的后向参考样点l
(1)
(x’,y’)。x’和y’可表示后向参考图片l
(1)
中的一个样点的整数坐标。一个或更多个处理器可被配置为基于整数参考样点之间的失真测量跳过双向光流(bio)处理。整数参考样点之间的失真测量可指示前向参考样点l
(0)
(x,y)与后向参考样点l
(1)
(x’,y’)之间的差。当跳过bio处理时,一个或更多个处理器可被配置为获得所述cu的预测样点。
9.根据本公开的第四方面,提供了一种存储有指令的非暂态计算机可读存储介质。当指令由装置的一个或更多个处理器执行时,该指令可使该装置在解码器处获得与编码单元(cu)相关联的第一参考图片i
(0)
和第二参考图片i
(1)
。按显示顺序,第一参考图片i
(0)
可在当前图片之前并且第二参考图片i
(1)
可在当前图片之后。该指令还可使该装置在解码器处从第一参考图片i
(0)
中的参考块获得cu的第一预测样点i
(0)
(i,j)。i和j可表示当前图片的一个样点的坐标。该指令还可使该装置在解码器处从第二参考图片i
(1)
中的参考块获得cu的第二预测样点i
(1)
(i,j)。该指令还可使该装置在解码器处基于双向光流(bio)处理来获得针对cu中的样点的运动细化,其中,bio处理基于第一预测样点i
(0)
(i,j)、第二预测样点i
(1)
(i,j)、水平梯度值和垂直梯度值而被应用。水平梯度值和垂直梯度值可以是使用具有更少系数的梯度滤波器而计算出的。该指令还可使该装置在解码器处基于运动细化获得cu的双向预测样点。
10.应理解,上面的总体描述和下面的详细描述仅是示例和解释性的,并不旨在限制本公开。
附图说明
11.包含在本说明书中并构成本说明书的一部分的附图示出了与本公开一致的示例,并且与说明书一起用于解释本公开的原理。
12.图1是根据本公开的示例的编码器的框图。
13.图2是根据本公开的示例的解码器的框图。
14.图3a是示出根据本公开的示例的avs3的树分割结构中的块分割的示图。
15.图3b是示出根据本公开的示例的avs3的树分割结构中的块分割的示图。
16.图3c是示出根据本公开的示例的avs3的树分割结构中的块分割的示图。
17.图3d是示出根据本公开的示例的avs3的树分割结构中的块分割的示图。
18.图3e是示出根据本公开的示例的avs3的树分割结构中的块分割的示图。
19.图4是根据本公开的示例的双向光流(bdof或bio)模型的图解。
20.图5是根据本公开的示例的dmvr模型的图解。
21.图6是根据本公开的示例的用于dmvr的整数搜索候选的图解。
22.图7是根据本公开的示例的利用dmvr和bio的运动补偿过程的流程图。
23.图8是根据本公开的示例的提出的用于bio和dmvr的多阶提前终止方案的流程图。
24.图9是根据本公开的示例的用于对视频信号进行解码的方法。
25.图10是根据本公开的示例的用于对视频信号进行解码的方法。
26.图11是示出根据本公开的示例的与用户界面连接的计算环境的示图。
具体实施方式
27.现在将详细参照实施例,所述实施例的示例在附图中被示出。以下描述参照附图,其中不同附图中的相同数字表示相同或相似的元件,除非另有表示。在实施例的以下描述中阐述的实施方式不表示与本公开一致的所有实施方式。而是,如所附权利要求中所述,它们仅仅是与和本公开相关的方面一致的装置和方法的示例。
28.本公开中使用的术语仅用于描述特定实施例的目的,并不旨在限制本公开。如在本公开和所附权利要求中所使用的,除非上下文另有明确指示,否则单数形式“一”、“一个”和“该”旨在也包括复数形式。还应理解,这里使用的术语“和/或”旨在表示和包括一个或更多个相关联的所列项中的任意一个或所有可能组合。
29.应理解,尽管这里可以使用术语“第一”、“第二”、“第三”等来描述各种信息,但是该信息不应受这些术语的限制。这些术语仅被用于将一类信息与另一类信息区分开。例如,在不脱离本公开的范围的情况下,第一信息可被称为第二信息;并且类似地,第二信息也可被称为第一信息。如这里使用的,根据上下文,术语“如果”可被理解为表示“当
……
时”或“在
……
后”或“响应于判断”。
30.第一代avs标准包括中国国家标准“信息技术,高级音视频编解码,部分2:视频”(称为avs1)和“信息技术,高级音视频编解码,部分16:广播电视视频”(称为avs )。与mpeg-2标准相比,在相同的感知质量下它可提供大约50%的比特率节省。avs1标准视频部分于2006年2月被颁布为中国国家标准。第二代avs标准包括中国国家标准的系列“信息技术,高效多媒体编解码”(称为avs2),avs2主要针对超hd tv节目的传输。avs2的编解码效率是avs 的编解码效率的两倍。在2016年5月,avs2被发布为中国国家标准。同时,avs2标准视频部分由电气和电子工程师协会(ieee)提交作为应用的一个国际标准。avs3标准是用于uhd视频应用的新一代视频编解码标准,旨在超越最新国际标准hevc的编解码效率。在2019年3月,在第68次avs会议上,完成了avs3-p2基线,这提供了在hevc标准之上的大约30%的比特率节省。目前,存在一种称为高性能模型(hpm)的参考软件,由avs组维护以演示avs3标准的参考实现。
31.与hevc一样,avs3标准建立在基于块的混合视频编解码框架上。
32.图1示出用于vvc的基于块的视频编码器的总示图。具体地,图1示出了典型的编码器100。编码器100具有视频输入110、运动补偿112、运动估计114、帧内/帧间模式决策116、块预测值140、加法器128、变换130、量化132、预测相关信息142、帧内预测118、图片缓冲器
120、反量化134、逆变换136、加法器126、存储器124、环路滤波器122、熵编码138和比特流144。
33.在编码器100中,视频帧被分割为多个视频块以进行处理。对于每个给定视频块,基于帧间预测方法或帧内预测方法形成预测。
34.将表示当前视频块(视频输入110的一部分)与其预测值(块预测值140的一部分)之间的差的预测残差从加法器128发送到变换130。然后将变换系数从变换130发送到量化132以进行熵减少。然后将量化的系数馈送到熵编码138以生成压缩的视频比特流。如图1中所示,来自帧内/帧间模式决策116的预测相关信息142(诸如视频块分割信息、运动矢量(mv)、参考图片索引和帧内预测模式)也通过熵编码138被馈送并被保存到压缩的比特流144中。压缩的比特流144包括视频比特流。
35.在编码器100中,还需要解码器相关电路,以便为了预测的目的重建像素。首先,通过反量化134和逆变换136重建预测残差。将该重建的预测残差与块预测值140进行组合以生成针对当前视频块的未滤波的重建像素。
36.空间预测(或“帧内预测”)使用来自与当前视频块相同的视频帧中的已经编解码的邻近块的样点(被称为参考样点)的像素来预测当前视频块。
37.时间预测(也称为“帧间预测”)使用来自已经编解码的视频图片的重建像素来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。针对给定编码单元(cu)或编码块的时间预测信号通常根据一个或更多个mv被用信号发送,一个或更多个mv指示当前cu与其时间参考之间的运动的量和方向。此外,如果支持多个参考图片,则另外发送一个参考图片索引,该参考图片索引被用于标识时间预测信号来自参考图片存储器中的哪个参考图片。
38.运动估计114接收视频输入110和来自图片缓冲器120的信号,并将运动估计信号输出到运动补偿112。运动补偿112接收视频输入110、来自图片缓冲器120的信号和来自运动估计114的运动估计信号,并将运动补偿信号输出到帧内/帧间模式决策116。
39.在执行了空间和/或时间预测之后,编码器100中的帧内/帧间模式决策116例如基于率失真优化方法来选择最佳预测模式。然后从当前视频块减去块预测值140,并且使用变换130和量化132对得到的预测残差进行去相关。得到的量化的残差系数通过反量化134而被反量化并且通过逆变换136而被逆变换以形成重建残差,随后将该重建残差加回到预测块以形成cu的重建信号。在将重建cu放入图片缓冲器120的参考图片存储器中并用于编解码未来的视频块之前,可对重建cu应用进一步的环路滤波122,诸如去块滤波器、样点自适应偏移(sao)和/或自适应环路滤波器(alf)。为了形成输出的视频比特流144,编解码模式(帧间或帧内)、预测模式信息、运动信息和量化的残差系数都被发送到熵编码单元138以被进一步压缩和打包,以形成比特流。
40.图1给出了通用的基于块的混合视频编码系统的框图。输入视频信号被逐块(称为编码单元(cu))地处理。与仅基于四叉树对块进行分割的hevc不同,在avs3中,一个编码树单元(ctu)被划分为cu以适应于基于四叉树/二叉树/扩展四叉树改变局部特性。此外,去除了hevc中的多个分割单元类型的概念,即,在avs3中不存在对cu、预测单元(pu)和变换单元(tu)的区分;而是,每个cu在没有进一步的分割的情况下总是被用作用于预测和变换两者的基本单元。在avs3的树分割结构中,首先基于四叉树结构分割一个ctu。然后,可基于二叉
树和扩展四叉树结构进一步分割每个四叉树叶节点。如图3a、图3b、图3c、图3d和图3e中所示,存在五种划分类型:四元分割、水平二元分割、垂直二元分割、水平扩展四叉树分割和垂直扩展四叉树分割。
41.图3a显示的是示出根据本公开的avs3的树分割结构中的块四元分割的示图。
42.图3b显示的是示出根据本公开的avs3的树分割结构中的块垂直二元分割的示图。
43.图3c显示的是示出根据本公开的avs3的树分割结构中的块水平二元分割的示图。
44.图3d显示的是示出根据本公开的avs3的树分割结构中的块垂直扩展四元分割的示图。
45.图3e显示的是示出根据本公开的avs3的树分割结构中的块水平三元分割的示图。
46.在图1中,可执行空间预测和/或时间预测。空间预测(或“帧内预测”)使用来自相同视频图片/条带中的已经编解码的相邻块的样点(被称为参考样点)的像素来预测当前视频块。空间预测减少了视频信号中固有的空间冗余。时间预测(也称为“帧间预测”或“运动补偿预测”)使用来自已经编解码的视频图片的重建像素来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。针对给定cu的时间预测信号通常根据一个或更多个运动矢量(mv)被用信号发送,一个或更多个运动矢量指示当前cu与其时间参考之间的运动的量和方向。此外,如果支持多个参考图片,则另外发送一个参考图片索引,该参考图片索引被用于标识时间预测信号来自参考图片存储器中的哪个参考图片。在空间预测和/或时间预测之后,编码器中的模式决策块例如基于率失真优化方法来选择最佳预测模式。然后从当前视频块减去预测块,并且使用变换对预测残差进行去相关,并且随后进行量化。量化的残差系数被反量化并被反变换以形成重建残差,随后将该重建残差加回到预测块以形成cu的重建信号。在将重建cu放入参考图片存储器中并用作针对未来的视频块的参考编解码之前,可对重建cu应用进一步的环路滤波,诸如去块滤波器、样点自适应偏移(sao)和自适应环路滤波器(alf)。为了形成输出的视频比特流,编解码模式(帧间或帧内)、预测模式信息、运动信息和量化的残差系数都被发送到熵编码单元以被进一步压缩和打包。
47.图2示出了用于vvc的视频解码器的通用框图。具体地,图2示出了典型的解码器200框图。解码器200具有比特流210、熵解码212、反量化214、逆变换216、加法器218、帧内/帧间模式选择220、帧内预测222、存储器230、环路滤波器228、运动补偿224、图片缓冲器226、预测相关信息234和视频输出232。
48.解码器200类似于图1的编码器100中存在的重建相关部分。在解码器200中,首先通过熵解码212对输入的视频比特流210进行解码,以得到量化的系数等级和预测相关信息。然后通过反量化214和逆变换216对量化的系数等级进行处理,以获得重建的预测残差。在帧内/帧间模式选择器220中实现的块预测值机制被配置为基于解码得到的预测信息执行帧内预测222或运动补偿224。通过使用求和器218将来自逆变换216的重建的预测残差和根据块预测值机制生成的预测输出相加来获得一组未滤波的重建像素。
49.在将重建块存储在用作参考图片存储器的图片缓冲器226中之前,重建块可进一步经历环路滤波器228。图片缓冲器226中的重建视频可被发送以驱动显示设备,并且被用于预测未来的视频块。在接通环路滤波器228的情况下,对这些重建像素执行滤波操作以得到最终重建的视频输出232。
50.图2给出了基于块的视频解码器的通用框图。视频比特流首先在熵解码单元处被
熵解码。编解码模式和预测信息被发送到空间预测单元(如果是帧内编码的)或时间预测单元(如果是帧间编码的)以形成预测块。残差变换系数被发送到反量化单元和逆变换单元以重建残差块。然后将预测块和残差块加在一起。在重建块被存储在参考图片存储器中之前,重建块可进一步经历环路滤波。参考图片存储器中的重建视频随后被送出以进行显示,并且被用于预测未来的视频块。
51.本公开的关注点在于降低在vvc标准和avs3标准两者中使用的双向光流(bio)工具和解码器侧运动矢量细化(dmvr)工具的复杂度。在vvc中,bio工具也被缩写为bdof。为了方便本公开的描述,在下面,avs3标准中的现有bio和dmvr设计被用作用于解释两个编解码工具的主要设计方面的示例。之后,讨论对现有bio和dmvr设计的可能改进。最后,提出一些方法以在保持两个编解码工具的大部分增益的同时降低复杂度。请注意,尽管avs3标准中的现有bio和dmvr设计在以下描述中被用作基础,但对于视频编解码领域的技术人员来说,本公开中描述的所提出的方法还可被应用于其他bio和dmvr设计或者具有相同或类似设计风格的其他编解码工具。
52.双向光流
53.视频编解码中的常规双向预测是从参考图片获得的两个时间预测块的简单组合。然而,由于运动矢量的信令成本和准确度权衡,在解码器端接收的运动矢量可能不那么准确。结果,可能仍然存在可以在两个预测块之间观察到的剩余小运动,这可能降低运动补偿预测的效率。为了对此进行改进,在vvc标准和avs3标准中都采用bio工具来补偿针对一个块内的每个样点的这种运动。具体地,bio是在使用双向预测时在基于块的运动补偿预测之上执行的逐样点的运动细化。在现有bio设计中,基于传统的光流模型得到针对一个块中的每个样点的细化运动矢量。设i
(k)
(x,y)为从参考图片列表k(k=0,1)得到的预测块的坐标(x,y)处的样点值,并且和是样点的水平梯度和垂直梯度。假设光流模型有效,则可通过下式得到(x,y)处的运动细化(v
x
,vy):
[0054][0055]
利用光流等式()和沿着运动轨迹的预测块的内插的组合(如下面描述的图4中所示),我们可以获得如下的bio预测:
[0056][0057]
图4示出了根据本公开的bdof模型的图示。
[0058]
在图4中,(mv
x0
,mv
y0
)和(mv
x1
,mv
y1
)指示被用于生成两个预测块i
(0)
和i
(1)
的块级运动矢量。此外,如下所示,通过使运动细化补偿之后的样点(即,图4中的a和b)的值之间的差δ最小化来计算样点位置(x,y)处的运动细化(v
x
,vy):
[0059]
[0060]
此外,为了确保得到的运动细化的规律性,假设运动细化在以(x,y)为中心的局部周围区域内是一致的;因此,在avs3中的当前bio设计中,通过使在(x,y)处的当前样点周围的4
×
4窗口ω内的δ最小化来得到(v
x
,vy)的值如下:
[0061][0062]
如(2)和(4)中所示,除了块级mc之外,还需要在bio中针对每个运动补偿块(即,i
(0)
和i
(1)
)的每个样点得到梯度,以便得到局部运动细化并生成该样点位置处的最终预测。在avs3中,通过2d可分离有限脉冲响应(fir)滤波处理来计算梯度,2d可分离有限脉冲响应(fir)滤波处理定义了一组8抽头滤波器并应用不同的滤波器以根据块级运动矢量(例如,图4中的(mv
x0
,mv
y0
)和(mv
x1
,mv
y1
))的精度得到水平梯度和垂直梯度。表1示出了由bio使用的梯度滤波器的系数。
[0063]
表1在bio中使用的梯度滤波器
[0064]
分数位置梯度滤波器0{-4,11,-39,-1,41,-14,8,-2}1/4{-2,6,-19,-31,53,-12,7,-2}1/2{0,-1,0,-50,50,0,1,0}3/4{2,-7,12,-53,31,19,-6,2}
[0065]
最后,bio仅被应用于双向预测块,双向预测块根据来自时间相邻图片的两个参考块被预测。此外,在不将附加信息从编码器发送到解码器的情况下启用bio。具体地,bio被应用于具有前向预测信号和后向预测信号两者的所有双向预测块。
[0066]
解码器侧运动矢量导出(dmvr)
[0067]
类似于vvc标准,为了提高常规合并模式的mv的准确性,在avs3中应用基于双边匹配的解码器侧运动矢量细化(dmvr)。在双向预测操作中,在参考图片列表l0和参考图片列表l1中的初始mv周围搜索细化mv。该方法计算参考图片列表l0和参考图片列表l1中的两个候选块之间的失真。如图5中所示(下面描述的),计算基于初始mv周围的每个mv候选的红色块之间的sad。具有最低sad的mv候选成为细化mv并且被用于生成双向预测信号。
[0068]
图5示出了解码侧运动矢量细化。
[0069]
图5包括列表l0中的520 refpic、540当前图片和列表l1中的560 refpic。列表l0中的520 refpic为第一列表的参考图片并且包括522当前cu、524参考块、526 mvdiff、528 mv0和530 mv0’。526 mvdiff是522当前cu与524参考块之间的运动矢量差。528 mv0是块522当前cu与块542当前cu之间的运动矢量。530 mv0’是块522当前cu与块542当前cu之间的运动矢量。540当前图片是视频的当前图片并且包括542当前cu、544 mv1’和546 mv1。544 mv1’是块542当前cu与562参考块之间的运动矢量。546 mv1是块542当前cu与564当前cu之间的运动矢量。列表l1中的560refpic是第二列表中的参考图片并且包括562参考块、564当前cu和566-mvdiff。566-mvdiff是562参考块与564当前cu之间的运动矢量差。
[0070]
在dvmr中,搜索点围绕由初始mv和被认为符合镜像规则的mv偏移指向的整数样点。换言之,由dmvr检查的任何mv细化应满足以下两个等式:
[0071]
mv0

=mv0 mv_offset
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0072]
mv1

=mv1-mv_offset
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0073]
其中mv_offset表示多个参考图片中的一个参考图片中的初始mv与细化mv之间的细化偏移。细化搜索范围是来自初始mv的两个整数亮度样点。搜索包括整数样点搜索阶段和分数样点细化阶段。
[0074]
在整数搜索的阶段,检查如图6中所示(如下所述的)的21个整数样点位置(包括与初始mv对应的整数样点位置)的绝对差之和(sad)。首先计算初始mv对的sad。选择使sad值最小化的整数偏移作为整数搜索阶段的整数样点偏移。
[0075]
图6示出了用于dmvr的整数搜索候选。黑色三角形是与初始mv相关联的整数样点位置,而空白或白色三角形是相邻的整数样点位置。
[0076]
整数样点搜索之后是分数样点细化。为了节省计算复杂度,通过使用参数误差面方法而不是利用sad比较的附加搜索来得到分数样点细化。在基于参数误差面的子像素偏移估计中,如下使用中心位置成本和距中心四个相邻位置的成本来拟合2-d抛物线误差面等式:
[0077]
e(x,y)=a(x-x
min
)2 b(y-y
min
)2 c
ꢀꢀꢀꢀ
(7)
[0078]
其中(x
min
,y
min
)对应于具有最小成本的分数位置,并且c对应于最小成本值。通过使用五个搜索点的成本值求解上述等式,如下计算(x
min
,y
min
):
[0079]
x
min
=(e(-1,0)-e(1,0))/(2(e(-1,0) e(1,0)-2e(0,0)))
ꢀꢀꢀꢀ
(8)
[0080]ymin
=(e(0,-1)-e(0,1))/(2((e(0,-1) e(0,1)-2e(0,0)))
ꢀꢀꢀꢀ
(9)
[0081]
由于所有成本值都是正的并且最小值是e(0,0),因此x
min
和y
min
的值被自动约束在-8与8之间。将计算出的分数(x
min
,y
min
)与整数距离细化mv相加以获得子像素精度细化增量mv。
[0082]
对bio和dmvr的改进
[0083]
尽管bio和dmvr可以有效地增强运动补偿的效率,但是它们也会在硬件和软件两方面给编码器和解码设计带来显著的复杂度增加。具体地,在本公开中,提出了现有bio和dmvr设计中的以下复杂度问题:
[0084]
首先,如上面所讨论的,在常规运动补偿阶段,针对具有前向预测信号和后向预测信号两者的双向预测块,总是启用dmvr和bio。这种设计对于由于其有限的功率而不能负担太重的计算的特定视频应用(例如,移动设备上的视频流)可能是不实际的。例如,bio需要得到每个样点位置处的梯度值,这由于2d fir滤波操作而需要多次乘法和加法,并且dmvr需要在双边匹配处理期间计算多个sad值。所有这些操作都需要密集的计算。当将bio与dmvr联合应用于一个双向预测的cu时,这种复杂度增加可能变得更甚。如图7中所示(下面描述的),在这种情况下,cu需要被进一步划分为用于dmvr的多个子块,并且每个子块可呈现一个唯一的运动矢量。因此,当进一步应用bio时,需要针对每个子块单独地执行所有bio相关操作。这可能导致相当大的计算复杂度和存储器带宽,并且可能在硬件和软件方面潜在地使流水线设计和/或并行处理复杂化。
[0085]
图7示出了利用dmvr和bio的运动补偿过程的流程图。
[0086]
在步骤701,过程开始。
[0087]
在步骤702,将cu划分为尺寸等于min(16,cuwidth)
×
min(16,cuheight)的多个子块。
[0088]
在步骤703,将变量i设置为0。
[0089]
在步骤704,将dmvr应用于第i子块。
[0090]
在步骤705,将运动补偿应用于具有细化运动的第i子块。
[0091]
在步骤706,将bio应用于第i子块。
[0092]
在步骤707,确定当前子块是否是最后子块。如果是,则过程继续到步骤709。如果否,则过程继续到步骤708。
[0093]
在步骤708,变量i增加1,并且过程继续到步骤704。
[0094]
在步骤709,过程结束。
[0095]
第二,如前所述,当前bio使用2d可分离fir滤波器来计算水平梯度值和垂直梯度值。具体地,应用低通8抽头内插滤波器(被用于在常规运动补偿进行内插)和高通8抽头梯度滤波器(如表1中所示),并且滤波器选择是基于对应运动矢量的分数位置。假设l0 mv和l1 mv都指向水平方向和垂直方向两者上的分数样点位置处的参考样点,则用于计算l0和l1中的水平梯度和垂直梯度的乘法和加法的次数将为(w
×
(h 7) w
×
h)
×2×
2。然而,由于梯度计算的高通性质,使用具有更多滤波器系数的梯度滤波器可能并不总是有益于从相邻样点准确地提取有用的梯度信息。因此,非常希望进一步减小用于bio的梯度滤波器的滤波器长度,这不仅可以潜在地提高梯度导出的精度,而且还可以降低bio的计算复杂度。
[0096]
提出的方法
[0097]
为了降低运动补偿的复杂度,首先提出在常规运动补偿下有条件地绕过dmvr和/或bio处理的方法。具体地,在提出的方法中,bio和dmvr的主要方面与其现有设计保持相同。然而,当满足如在下面提出的特定条件时,将在cu级或子块级完全跳过bio和dmvr。其次,为了降低bio的计算复杂度,提出了具有更少系数的梯度滤波器来代替现有bio设计中的现有8抽头梯度滤波器。
[0098]
基于参考样点的相似性跳过bio和dmvr
[0099]
如上所述,bio和dmvr都利用l0预测样点和l1预测样点来得到不同粒度等级的局部运动细化(例如,bio得到针对每个样点的运动细化,而针对每个子块计算dmvr的运动细化)。当l0预测信号与l1预测信号之间的差小时,两个预测块是高度相关的,从而可以安全地跳过dmvr和bio处理而不招致大量的编解码损失。然而,因为初始运动矢量可能指向分数样点位置处的参考样点,所以l0预测样点和l1预测样点的生成可能调用插值处理,这需要不可忽略的复杂度且导致一些延迟以做出决定。另一方面,作为直接比较预测样点的替代,测量两个预测块之间的相关性的另一方式是计算参考图片(两个预测块是从该参考图片生成的)中的它们的整数参考样点之间的差,即,
[0100][0101]
其中l
(0)
(x,y)和l
(1)
(x’,y’)是前向参考图片和后向参考图片处的整数样点坐标(x,y)和(x’,y’)处的样点值;b和b’是被用于生成当前块的l0预测样点和l1预测样点的整数样点坐标的集合;n是当前块中的样点的数量;d是可应用不同度量(诸如平方误差总和(sse)、绝对差总和(sad)以及绝对变换差总和(satd))的失真测量。给定等式(10),当差测量不大于一个预定义阈值(即,diff≤d
thres
)时,可在运动补偿阶段跳过bio和/或dmvr;否则,仍然需要应用bio和/或dmvr。
[0102]
提出的用于dmvr和bio的提前终止方法可在cu级或子块级被执行,这可潜在地提供在编码性能与复杂度降低之间的各种权衡。一方面,由于bio和dmvr的更细的控制粒度,子块级提前终止可以更好地维持bio和dmvr的编解码增益。考虑到需要单独针对每个子块执行失真测量和提前终止决策,这在复杂度降低方面可能不是最佳的。另一方面,尽管cu级提前终止可以潜在地导致更显著的复杂度降低,但其可能无法对于具有不均匀特性的块进行编解码实现性能与复杂度之间的可接受的权衡。此外,如上所述,当应用dmvr时,在子块级得到当前cu的运动场。因此,在应用dmvr之后,当前cu内的各种子块的预测样点极有可能变得更加多样化。在这种情况下,解码器可在子块的基础上确定是否将绕过dmvr和bio处理。否则(即,当不应用dmvr时),依靠cu级失真测量来确定是否将绕过针对整个cu的bio处理是可接受的。基于这种考虑,提出一种多阶段提前终止方法以取决于对一个当前cu是否允许dmvr而在cu级或子块级自适应地跳过bio和dmvr处理。图8(下面描述的)示出了提出的多阶段提前终止方法被应用于bio和dmvr的修改后的运动补偿过程。
[0103]
图8示出了用于bio和dmvr的提出的多阶段提前终止方案的流程图。
[0104]
在步骤801,过程开始。
[0105]
在步骤802,确定dmvr是否被应用于cu。如果否,则过程继续到步骤811。如果是,则过程继续到步骤803。
[0106]
在步骤803,cu被划分为尺寸等于min(16,cuwidth)
×
min(16,cuheight)的多个子块。
[0107]
在步骤804,将变量i设置为0。
[0108]
在步骤805,确定如等式10中所计算的子块的l0整数参考样点与l1整数参考样点之间的差是否小于或等于阈值thresdmvr。如果是,则过程继续到步骤807。如果否,则过程继续到步骤806。
[0109]
在步骤806,将dmvr应用于第i子块。
[0110]
在步骤807,确定如等式10中所计算的子块的l0整数参考样点与l1整数参考样点之间的差是否小于阈值thresbio。如果是,则过程继续到步骤809。如果否,则过程继续到步骤808。
[0111]
在步骤808,将bio应用于第i子块。
[0112]
在步骤809,确定当前子块是否是最后块。如果是,则过程继续到步骤813。如果否,则过程继续到步骤810。
[0113]
在步骤810,变量i增加1,并且过程继续到步骤805。
[0114]
在步骤811,确定如等式10中计算的差是否小于阈值thresbio。如果是,则过程继续到步骤813。如果否,则过程继续到步骤812。
[0115]
在步骤812,将bio应用于cu。
[0116]
在步骤813,过程结束。
[0117]
如图8中所示,提出的方法可概括如下。
[0118]
首先,当对当前cu禁用dmvr时,在cu级做出关于是否绕过bio处理的决定。具体地,如果cu的参考样点的失真测量(如(10)中所示)不大于预定义阈值thresbio,则对于整个cu完全禁用bio处理;否则,bio仍被应用于cu。
[0119]
第二,当对当前cu启用(即,允许)dmvr时,在子块级作出关于是否绕过bio和dmvr
的决定。此外,分别针对每个子块,两个阈值thresbio和thresdmvr被用于绕过bio和dmvr。
[0120]
图9示出了用于对视频信号进行解码的方法。该方法可例如被应用于解码器。
[0121]
在步骤910,解码器可获得与编码单元(cu)相关联的前向参考图片l
(0)
和后向参考图片l
(1)
。按显示顺序,前向参考图片l
(0)
在当前图片之前,并且后向参考图片l
(1)
在当前图片之后。
[0122]
在步骤912,解码器可从前向参考图片l
(0)
中的参考块获得cu的前向参考样点l
(0)
(x,y)。x和y表示前向参考图片l
(0)
中的一个样点的整数坐标。
[0123]
在步骤914,解码器可从后向参考图片l
(1)
中的参考块获得cu的后向参考样点l
(1)
(x

,y

)。x

和y

表示后向参考图片l
(1)
中的一个样点的整数坐标。
[0124]
在步骤916,解码器可基于整数参考样点之间的失真测量来跳过双向光流(bio)处理。整数参考样点之间的失真测量指示前向参考样点l
(0)
(x,y)与后向参考样点l
(1)
(x

,y

)之间的差。
[0125]
在步骤918,当跳过bio处理时,解码器可获得cu的预测样点。
[0126]
基于梯度信息跳过bio
[0127]
如上面所讨论的,bio被设计为通过提供逐样点运动细化来提高运动补偿预测的准确度,逐样点运动细化是基于在一个运动补偿块中的每个样点位置处计算的局部梯度来计算的。对于包括较少高频细节的一个区域(例如,平坦区域)内的块,错误!未找到参考源如使用梯度滤波器得到的梯度值往往较小。因此,bio不能提供对那些块的预测样点的有效细化。这可以通过等式(2)证明,当局部梯度(即,和)接近于零时,从bio获得的最终预测信号近似等于由常规双向预测生成的预测信号(即,)。考虑到这一点,在本公开的一个实施例中,提出仅将bio应用于包括足够的高频信息的编码块的预测样点。可基于各种标准做出关于一个视频块的预测信号是否包括足够的高频信息的决定。在一个示例中,可使用针对块内的样点的梯度的平均值。如果平均梯度值小于一个阈值,则将块分类为平坦区域并且不应应用bio;否则,在bio仍然适用的情况下,该块被认为包括足够的高频细节。
[0128]
类似于在“基于参考样点的相似性跳过bio和dmvr”部分中提出的提前终止方法,提出的基于梯度的bio提前终止方法也可被应用于cu级或子块级。当在cu级应用该方法时,cu内的所有预测样点的梯度值被用于确定是否绕过bio。否则,当在子块级应用该方法时,通过比较对应子块内的预测样点的平均梯度值来分别针对每个子块做出关于是否跳过bio处理的决定。
[0129]
在另一实施例中,提出了检查参考样点差(根据等式10)和梯度信息两者的混合条件。注意,在这种条件下,可以联合地或单独地检查参考样点差和梯度信息。在联合情况下,样点差和梯度信息都应该是重要的,以便应用bio。否则,跳过bio。在单独情况下,当样点差或梯度信息小时(例如,通过阈值比较),跳过bio。
[0130]
用于bio的简化的梯度滤波器
[0131]
在当前bio设计中,它使用2d可分离8抽头fir滤波器(即,8抽头内插滤波器和8抽头梯度滤波器)来计算水平梯度值和垂直梯度值。如前面所讨论的,使用8抽头梯度滤波器可能并不总是有效地从参考样点准确地提取梯度信息,同时导致不可忽略的计算复杂度增
加。为了对此进行改进,在本部分中,提出具有更少系数的梯度滤波器以用于计算由bio使用的梯度信息。
[0132]
具体地,梯度导出过程的输入可包括与用于运动补偿的参考样点相同的参考样点和当前块的输入运动(mv
x
,mvy)的分数分量(fracx,fracy)。此外,取决于得到的梯度的方向,应用梯度滤波器hg和内插滤波器h
l
的顺序是不同的。具体地,在导出水平梯度的情况下,首先在水平方向上应用梯度滤波器hg以得到水平分数样点位置fracx处的水平梯度值;然后,垂直地应用内插滤波器h
l
以在垂直分数样点位置fracy处对梯度值进行内插。反之,当导出垂直梯度时,首先水平地应用内插滤波器h
l
以在水平样点位置fracx处对中间内插样点进行内插,随后在垂直方向上应用梯度滤波器hg以从中间内插样点得到垂直分数样点位置fracy处的垂直梯度。在一个实施例中,如表2中所示的4抽头梯度滤波器被提出用于bio的梯度计算。
[0133]
表2在bio中使用的所提出的4抽头梯度滤波器
[0134][0135]
在另一实施例中,提出表3中的6抽头梯度滤波器以得到用于bio的梯度。
[0136]
表3在bio中使用的提出的6抽头梯度滤波器
[0137][0138]
图10示出了用于对视频信号进行解码的方法。该方法可例如被应用于解码器。
[0139]
在步骤1010,解码器可获得与编码单元(cu)相关联的第一参考图片i
(0)
和第二参考图片i
(1)
。按显示顺序,第一参考图片i
(0)
在当前图片之前,并且第二参考图片i
(1)
在当前图片之后。
[0140]
在步骤1012,解码器可从第一参考图片i
(0)
中的参考块获得cu的第一预测样点i
(0)
(i,j)。i和j表示当前图片的一个样点的坐标。
[0141]
在步骤1014,解码器可从第二参考图片i
(1)
中的参考块获得cu的第二预测样点i
(1)
(i,j)。
[0142]
在步骤1016,解码器可基于双向光流(bio)处理来获得针对cu中的样点的运动细化,其中,bio处理基于第一预测样点i
(0)
(i,j)、第二预测样点i
(1)
(i,j)、水平梯度值和垂直
梯度值而被应用于cu。使用具有更少系数的梯度滤波器来计算水平梯度值和垂直梯度值。
[0143]
在步骤1018,解码器可基于运动细化来获得cu的双向预测样点。
[0144]
图11示出了与用户界面1160连接的计算环境1110。计算环境1110可以是数据处理服务器的一部分。计算环境1110包括处理器1120、存储器1140和i/o接口1150。
[0145]
处理器1120通常控制计算环境1110的整体操作,诸如与显示、数据获取、数据通信和图像处理相关联的操作。处理器1120可包括用于执行指令以执行上述方法中的全部或一些步骤的一个或更多个处理器。此外,处理器1120可包括促进处理器1120与其他组件之间的交互的一个或更多个模块。处理器可以是中央处理器(cpu)、微处理器、单片机、gpu等。
[0146]
存储器1140被配置为存储各种类型的数据以支持计算环境1110的操作。存储器1140可包括预定软件1142。此类数据的示例包括用于在计算环境1110上操作的任何应用或方法的指令、视频数据集、图像数据等。存储器1140可通过使用任何类型的易失性或非易失性存储器设备(诸如静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁性存储器、闪存、磁盘或光盘)或其组合而被实施。
[0147]
i/o接口1150提供处理器1120与外围接口模块(诸如键盘、点击轮、按钮等)之间的接口。按钮可包括但不限于主页按钮、开始扫描按钮和停止扫描按钮。i/o接口1150可与编码器和解码器连接。
[0148]
在一些实施例中,还提供了一种包括多个程序的非暂态计算机可读存储介质,多个程序诸如被包括在存储器114中,可由计算环境1110中的处理器1120执行,以执行上述方法。例如,非暂态计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘、光学数据存储设备等。
[0149]
在非暂态计算机可读存储介质中存储有由具有一个或更多个处理器的计算设备执行的多个程序,其中多个程序在由一个或更多个处理器执行时使计算设备执行上述用于运动预测的方法。
[0150]
在一些实施例中,计算环境1110可用一个或更多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、图形处理单元(gpu)、控制器、微控制器、微处理器或其他电子组件来实现,以执行上述方法。
[0151]
本公开的描述是为了说明的目的而给出的,并不旨在穷举或限制本公开。许多修改、变化和替代实施方式对于受益于前面的描述和相关联的附图中呈现的教导的本领域普通技术人员将是显而易见的。
[0152]
选择和描述实施例是为了解释本公开的原理,并且使本领域的其他技术人员针对各种实施方式能够理解本公开并最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实施方式。因此,应理解,本公开的范围不限于所公开的实施方式的特定示例,并且修改和其他实施方式旨在被包括在本公开的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献