掌桥专利:专业的专利平台
掌桥专利
首页

对视频信号解码的双向光流方法、计算设备和存储介质

文献发布时间:2023-06-19 19:30:30


对视频信号解码的双向光流方法、计算设备和存储介质

本申请是申请号为202080031089.1、发明名称为“用于利用光流的预测细化的方法和装置”的发明专利申请的分案申请,该发明专利申请为2020年4月27日提交的国际专利申请PCT/US2020/030155的中国国家阶段申请,该国际专利申请基于2019年4月25日提交的临时申请号62/838,939并要求其优先权,该临时申请的全部内容通过引用以其全文并入本文。

技术领域

本公开涉及视频编解码和压缩。更具体地,本公开涉及关于在通用视频编解码(VVC)标准中研究的两种帧间预测工具,即,利用光流的预测细化(PROF)和双向光流(BDOF),的方法和装置。

背景技术

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

发明内容

本公开的示例提供了用于利用光流的预测细化的比特深度表示的方法和装置。

根据本公开的第一方面,提供了一种用于对视频信号进行解码的利用光流的预测细化(PROF)的比特深度表示方法。该方法可以包括获得与视频信号内的视频块相关联的第一参考图片以及从当前图片中的视频块到第一参考图片中的参考块的第一运动矢量(MV)。第一参考图片可以包括多个非重叠的视频块,并且至少一个视频块可以与至少一个MV相关联。该方法还可以包括获得从第一参考图片中的参考块生成的视频块的第一预测样点I(i,j)。i和j可以表示视频块的一个样点的坐标。该方法可以包括控制内部PROF参数的内部比特深度。该内部PROF参数可以包括针对预测样点I(i,j)推导的水平梯度值、垂直梯度值、水平运动差和垂直运动差。该方法可以附加地包括基于水平梯度值、垂直梯度值、水平运动差和垂直运动差获得第一预测样点I(i,j)的预测细化值。该方法可以包括当视频块可以包含第二MV时,获得与第二MV相关联的第二预测样点I′(i,j)以及该第二预测样点I′(i,j)的对应的预测细化值。该方法可以包括基于第一预测样点I(i,j)、第二预测样点I′(i,j)和预测细化值的组合,获得视频块的最终的预测样点。

根据本公开的第二方面,提供了一种用于对视频信号进行解码的双向光流(BDOF)的比特深度表示方法。该方法可以包括获得与视频块相关联的第一参考图片I

根据本公开的第三方面,提供了一种计算设备。该计算设备可以包括一个或多个处理器、存储能够由该一个或多个处理器执行的指令的非暂态计算机可读存储器。该一个或多个处理器可以被配置为获得与视频信号内的视频块相关联的第一参考图片以及从当前图片中的视频块到第一参考图片中的参考块的第一MV。第一参考图片可以包括多个非重叠的视频块,并且至少一个视频块可以与至少一个MV相关联。该一个或多个处理器还可以被配置为获得从第一参考图片中的参考块生成的视频块的第一预测样点I(i,j)。i和j表示视频块的一个样点的坐标。该一个或多个处理器可以被配置为控制内部PROF参数的内部比特深度。该内部PROF参数可以包括针对预测样点I(i,j)推导的水平梯度值、垂直梯度值、水平运动差和垂直运动差。该一个或多个处理器可以附加地被配置为基于水平梯度值、垂直梯度值、水平运动差和垂直运动差获得第一预测样点I(i,j)的预测细化值。该一个或多个处理器可以附加地被配置为当视频块可以包含第二MV时,获得与第二MV相关联的第二预测样点I′(i,j)以及第二预测样点I′(i,j)的对应的预测细化值。该一个或多个处理器可以被配置为基于第一预测样点I(i,j)、第二预测样点I′(i,j)和预测细化值的组合,获得视频块的最终的预测样点。

根据本公开的第四方面,提供了一种计算设备。该计算设备可以包括一个或多个处理器、存储能够由一个或多个处理器执行的指令的非暂态计算机可读存储器。该一个或多个处理器可以被配置为获得与视频块相关联的第一参考图片I

应当理解的是,前述概括描述和以下详细描述均仅是示例而不是对本公开的限制。

附图说明

结合在说明书中并构成本说明书的一部分的附图图示了与本公开一致的示例,并与所述描述一起用于解释本公开的原理。

图1是根据本公开的示例的编码器的框图。

图2是根据本公开的示例的解码器的框图。

图3A是图示根据本公开的示例的多类型树结构中的块分割的图。

图3B是图示根据本公开的示例的多类型树结构中的块分割的图。

图3C是图示根据本公开的示例的多类型树结构中的块分割的图。

图3D是图示根据本公开的示例的多类型树结构中的块分割的图。

图3E是图示根据本公开的示例的多类型树结构中的块分割的图。

图4是根据本公开的示例的双向光流(BDOF)模型的图解图示。

图5A是根据本公开的示例的仿射模型的图示。

图5B是根据本公开的示例的仿射模型的图示。

图6是根据本公开的示例的仿射模型的图示。

图7是根据本公开的示例的利用光流的预测细化(PROF)的图示。

图8是根据本公开的示例的BDOF的工作流程。

图9是根据本公开的示例的PROF的工作流程。

图10是根据本公开的PROF的比特深度表示方法。

图11是根据本公开的BDOF的比特深度表示方法。

图12是根据本公开的示例的用于双向预测的PROF的工作流程的图示。

图13是根据本公开的BDOF和PROF过程的流水线级(pipeline stage)的图示。

图14是根据本公开的BDOF的梯度推导方法的图示。

图15是根据本公开的PROF的梯度推导方法的图示。

图16是图示根据本公开的示例的与用户界面耦接的计算环境的图。

具体实施方式

现在将详细参考示例实施例,附图中图示了这些实施例的示例。以下描述均参考附图,在附图中,除非另有说明,否则不同附图中的相同参考标记表示相同或相似的要素。以下实施例描述中阐述的实施方式并不表示与本公开一致的所有实施方式。而是,它们仅仅是与所附权利要求中叙述的与本公开相关的方面一致的装置和方法的示例。

本公开中使用的术语仅出于描述特定实施例的目的,而不旨在限制本公开。如在本公开和所附权利要求中使用的,单数形式“一个(a)”、“一种(an)”和“所述(the)”旨在也包括复数形式,除非上下文另有明确指示。还应当理解,本文中使用的术语“和/或”旨在表示并包括相关联列举项目中的一个或多个项目的任何或所有可能组合。

应该理解的是,尽管本文可以使用术语“第一”、“第二”、“第三”等来描述各种信息,但是这些信息不应受这些术语的限制。这些术语仅仅是用来将一类信息与另一类信息进行区分。例如,在不脱离本公开的范围的情况下,第一信息也可以被称为第二信息;并且类似地,第二信息也可以被称为第一信息。如本文所使用的,根据上下文,术语“如果”可以被理解为意指“当……时”或“在……时”或“响应于判断”。

HEVC标准的第一版本于2013年10月完成,其与上一代视频编解码标准H.264/MPEGAVC相比,提供了大约50%的比特率节省或同等的感知质量。尽管HEVC标准提供了优于其前身的显著编解码改进,但有证据表明,可以使用附加的编解码工具实现优于HEVC的编解码效率。在此基础上,为了未来的视频编解码标准化,VCEG和MPEG两者都开始了新编解码技术的探索工作。ITU-T VECG和ISO/IEC MPEG于2015年10月成立了联合视频探索小组(JVET),开始对能够大幅提高编解码效率的先进技术进行重大研究。JVET通过在HEVC测试模型(HM)的基础上整合多个附加编解码工具来维护一种称为联合探索模型(JEM)的参考软件。

2017年10月,ITU-T和ISO/IEC发布了关于具有超越HEVC的能力的视频压缩的联合提案邀请(CfP)。2018年4月,第10届JVET会议上接收并评估了23份CfP回复,论证了压缩效率比HEVC提高约40%。基于这样的评估结果,JVET启动了开发名为通用视频编解码(VVC)的新一代视频编解码标准的新项目。同月,建立了一个称为VVC测试模型(VTM)的参考软件代码库,用于演示VVC标准的参考实施。

与HEVC一样,VVC在基于块的混合视频编解码框架上构建。图1示出了用于VVC的基于块的视频编码器的总图。具体地,图1示出了典型的编码器100。编码器100具有视频输入110、运动补偿112、运动估计114、帧内/帧间模式决策116、块预测值140、加法器128、变换130、量化132、预测相关信息142、帧内预测118、图片缓冲器120、反量化134、逆变换136、加法器126、存储器124、环路滤波器122、熵编码138以及比特流144。

在编码器100中,视频帧被分割成多个视频块以进行处理。对于每个给定的视频块,基于帧间预测方法或帧内预测方法来形成预测。

从加法器128将表示当前视频块(视频输入110的一部分)与其预测值(块预测值140的一部分)之间的差的预测残差发送到变换130。然后,将变换系数从变换130发送到量化132,以进行熵减小。然后,将量化系数馈送到熵编码138,以生成压缩视频比特流。如图1所示,来自帧内/帧间模式决策116的预测相关信息142(比如视频块分割信息、运动矢量(MV)、参考图片索引和帧内预测模式)也通过熵编码138被馈送并且被保存到压缩比特流144中。压缩比特流144包括视频比特流。

在编码器100中,还需要解码器相关电路,以重建像素用于预测目的。首先,通过反量化134和逆变换136来重建预测残差。将该重建预测残差与块预测值140组合,以生成当前视频块的未滤波的重建像素。

空间预测(或“帧内预测”)使用来自与当前视频块相同的视频帧中的已经编解码的相邻块的样点(被称为参考样点)的像素来预测当前视频块。

时间预测(也被称为“帧间预测”)使用来自已经编解码的视频图片的重建像素来预测当前视频块。时间预测减少了在视频信号中固有的时间冗余。给定编码单元(CU)或编码块的时间预测信号通常由指示当前CU与其时间参考之间的运动量和运动方向的一个或多个MV用信号发送。进一步地,如果支持多个参考图片,则另外发送一个参考图片索引,该参考图片索引用于标识时间预测信号来自参考图片存储中的哪个参考图片。

运动估计114获取视频输入110和来自图片缓冲器120的信号,并且将运动估计信号输出到运动补偿112。运动补偿112获取视频输入110、来自图片缓冲器120的信号以及来自运动估计114的运动估计信号,并且将运动补偿信号输出到帧内/帧间模式决策116。

在进行空间预测和/或时间预测之后,编码器100中的帧内/帧间模式决策116例如基于率失真优化方法来选择最佳预测模式。然后,从当前视频块减去块预测值140,并且使用变换130和量化132对所产生的预测残差进行解相关。通过反量化134对所产生的量化残差系数进行反量化,并通过逆变换136对量化残差系数进行逆变换,以形成重建残差,然后将重建残差加回到预测块以形成CU的重建信号。在将重建的CU置于图片缓冲器120的参考图片存储中并用于对未来的视频块编解码之前,可以对重建的CU应用比如去块滤波器、样点自适应偏移(SAO)和/或自适应环路滤波器(ALF)等进一步的环路滤波122。为了形成输出视频比特流144,将编解码模式(帧间或帧内)、预测模式信息、运动信息、以及量化残差系数都发送至熵编码单元138,以进行进一步压缩和打包来形成比特流。

例如,去块滤波器在VVC的当前版本以及AVC、HEVC中是可用的。在HEVC中,定义了称为SAO(样点自适应偏移)的附加环路滤波器以进一步提高编解码效率。在VVC标准的当前版本中,正在积极研究称为ALF(自适应环路滤波器)的又另一种环路滤波器并且将其包括在最终的标准中。

这些环路滤波器操作是可选的。执行这些操作有助于提高编解码效率和视觉质量。这些操作也可以按照编码器100做出的决策而被取消,以节省计算复杂度。

应该注意的是,帧内预测通常基于未滤波的重建像素,而帧间预测基于滤波的重建像素,如果这些滤波器选项被编码器100开启。

输入视频信号被逐块(被称为编码单元(CU))处理。在VTM-1.0中,CU可以高达128×128像素。然而,不同于仅仅基于四叉树来分割块的HEVC,在VVC中,一个编码树单元(CTU)被划分成多个CU,以适应基于四/二/三叉树而不同的局部特性。另外,去除了HEVC中的多种分割单元类型的构思,即,CU、预测单元(PU)和变换单元(TU)的拆分不再存在于VVC中;相反,每个CU始终用作预测和变换两者的基本单元,而不进行进一步分割。在多类型树结构中,一个CTU首先被四叉树结构分割。然后,每个四叉树叶节点可以进一步被二叉树结构和三叉树结构分割。

如图3A、图3B、图3C、图3D和图3E所示(如下所述),有五种划分类型,四元分割、水平二元分割、垂直二元分割、水平三元分割以及垂直三元分割。

图3A示出了图示根据本公开的多类型树结构中的块四元分割的图。

图3B示出了图示根据本公开的多类型树结构中的块垂直二元分割的图。

图3C示出了图示根据本公开的多类型树结构中的块水平二元分割的图。

图3D示出了图示根据本公开的多类型树结构中的块垂直三元分割的图。

图3E示出了图示根据本公开的多类型树结构中的块水平三元分割的图。

在图1中,可以执行空间预测和/或时间预测。空间预测(或“帧内预测”)使用来自同一视频图片/条带中的已经编解码的相邻块的样点(被称为参考样点)的像素来预测当前视频块。空间预测减少了视频信号中固有的空间冗余。时间预测(也被称为“帧间预测”或“运动补偿预测”)使用来自已经编解码的视频图像的重建像素来预测当前视频块。时间预测减少了在视频信号中固有的时间冗余。给定CU的时间预测信号通常由指示当前CU与其时间参考之间的运动量和运动方向的一个或多个MV用信号发送。同样,如果支持多个参考图片,则另外发送一个参考图片索引,该参考图片索引用于标识时间预测信号来自参考图片存储中的哪个参考图片。在进行空间和/或时间预测之后,编码器中的模式决策块例如基于率失真优化方法来选择最佳预测模式。然后,从当前视频块减去预测块,并且使用变换对预测残差进行解相关并进行量化。对经量化的残差系数进行反量化和逆变换以形成重建残差,然后将该重建残差加回预测块以形成CU的重建信号。进一步地,在将重建的CU置于参考图片存储中并用于对未来的视频块进行编解码之前,可以对重建的CU应用比如去块滤波器、样点自适应偏移(SAO)和自适应环路滤波器(ALF)等环路滤波。为了形成输出视频比特流,将编解码模式(帧间或帧内)、预测模式信息、运动信息、以及量化残差系数都发送至熵编码单元,以进行进一步压缩和打包来形成比特流。

图2示出了用于VVC的视频解码器的总框图。具体地,图2示出了典型的解码器200的框图。解码器200具有比特流210、熵解码212、反量化214、逆变换216、加法器218、帧内/帧间模式选择220、帧内预测222、存储器230、环路滤波器228、运动补偿224、图片缓冲器226、预测相关信息234以及视频输出232。

解码器200类似于驻留在图1的编码器100中的重建相关部分。在解码器200中,首先通过熵解码212对输入视频比特流210进行解码以推导量化系数级别和预测相关信息。然后,通过反量化214和逆变换216来处理量化系数级别,以获得重建预测残差。在帧内/帧间模式选择器220中实施的块预测值机制被配置为基于已解码的预测信息来执行帧内预测222或运动补偿224。通过使用求和器218对来自逆变换216的重建预测残差与由块预测值机制生成的预测输出进行求和来获得一组未滤波的重建像素。

重建块在被存储在用作参考图片存储的图片缓冲器226中之前,可以进一步通过环路滤波器228。可以发送图片缓冲器226中的重建视频以驱动显示设备,并用于预测未来的视频块。在环路滤波器228被开启的情况下,对这些重建像素执行滤波操作,从而推导最终的重建视频输出232。

在图2中,首先在熵解码单元处对视频比特流进行熵解码。将编解码模式和预测信息发送到空间预测单元(在帧内编解码的情况下)或时间预测单元(在帧间编解码的情况下)以形成预测块。将残差变换系数发送到反量化单元和逆变换单元以重建残差块。然后,将预测块和残差块相加。重建块在被存储在参考图片存储中之前,可以进一步通过环路滤波。然后,将参考图片存储中的重建视频发送出去以驱动显示设备,并用于预测未来的视频块。

通常,在VVC中应用的基本帧间预测技术保持与在HEVC中所应用的相同,不同之处在于若干模块被进一步扩展和/或增强。特别地,对于所有前述视频标准,当对编码块进行单向预测时,一个编码块仅能与单个MV相关联,或者当对编码块进行双向预测时,一个编码块仅能与两个MV相关联。由于传统的基于块的运动补偿的这种限制,在运动补偿之后,预测样点内可能仍然存留小运动,因此负面地影响了运动补偿的整体效率。为了提高MV的粒度(granularity)和精度,目前针对VVC标准研究了两种基于光流的样点级别(sample-wise)的细化方法,即,双向光流(BDOF)和仿射模式的利用光流的预测细化(PROF)。下面,简要回顾两种帧间编解码工具的主要技术方面。

双向光流

在VVC中,BDOF被应用于细化双向预测的编码块的预测样点。具体地,如示出了BDOF的图示的图4所示,当使用双向预测时,BDOF是在基于块的运动补偿预测的基础上执行的样点级别的运动细化。在每个4×4子块周围的一个6×6窗口Ω内部应用BDOF之后,通过最小化L0与L1预测样点之间的差来计算该子块的运动细化(v

其中,

S

其中,

其中,I

基于在(1)中推导的运动细化,通过基于光流模型沿运动轨迹对L0/L1预测样点进行内插来计算CU的最终双向预测样点,如下式所示

其中,shift和o

仿射模式

在HEVC中,仅将平移运动模型应用于运动补偿预测。然而在现实世界中,存在很多种运动,例如,放大/缩小、旋转、透视运动和其他不规则运动。在VVC中,通过针对每个帧间编码块用信号发送一个标志来指示是平移运动还是仿射运动模型被应用于帧间预测,以此应用仿射运动补偿预测。在当前VVC设计中,一个仿射编码块支持两种仿射模式,包括4参数仿射模式和6参数仿射模式。

4参数仿射模型具有以下参数:分别用于水平方向和垂直方向上的平移运动的两个参数,用于缩放运动的一个参数,以及用于这两个方向的旋转运动的一个参数。水平缩放参数等于垂直缩放参数。水平旋转参数等于垂直旋转参数。为了更好地适应MV和仿射参数,在VVC中,这些仿射参数被转换成位于当前块的左上角和右上角的两个MV(也被称为控制点运动矢量(CPMV))。如图5A和图5B所示,块的仿射运动场由两个控制点MV(V

图5A示出了4参数仿射模型的图示。图5B示出了4参数仿射模型的图示。基于控制点运动,一个仿射编码块的运动场(v

6参数仿射模式具有以下参数:分别用于水平方向和垂直方向上的平移运动的两个参数,在水平方向上用于缩放运动的一个参数和用于旋转运动的一个参数,在垂直方向上用于缩放运动的一个参数和用于旋转运动的一个参数。6参数仿射运动模型是用在三个CPMV处的三个MV来编解码的。

图6示出了6参数仿射模型的图示。如图6所示,一个6参数仿射块的三个控制点位于该块的左上角、右上角和左下角。左上控制点处的运动与平移运动相关,并且右上控制点处的运动与水平方向的旋转和缩放运动有关,并且左下控制点处的运动与垂直方向的旋转和缩放运动相关。与4参数仿射运动模型相比,6参数在水平方向上的旋转和缩放运动可能与在垂直方向上的那些运动不同。假设(V

仿射模式的PROF

为了提高仿射运动补偿精度,目前在当前的VVC中研究PROF,其基于光流模型细化了基于子块的仿射运动补偿。具体地,在执行基于子块的仿射运动补偿之后,通过基于光流方程推导的一个样点细化值来修改一个仿射块的亮度预测样点。详细而言,PROF的操作可以总结为以下四个步骤:

步骤一:执行基于子块的仿射运动补偿,以使用在(6)中针对4参数仿射模型和(7)中针对6参数仿射模型推导的子块MV来生成子块预测I(i,j)。

步骤二:每个预测样点的空间梯度g

为了计算梯度,需要在一个子块的每一侧生成附加的一行/列的预测样点。为了降低存储器带宽和复杂度,从参考图片中最近的整数像素位置复制扩展的边界上的样点,以避免额外的内插过程。

步骤三:亮度预测细化值的通过下式计算:

ΔI(i,j)=g

其中,Δv(i,j)是针对样点位置(i,j)计算的像素MV(由v(i,j)表示)与像素(i,j)所在的子块的子块MV之间的差。

步骤四:在当前PROF设计中,在将预测细化添加到原始预测样点之后,执行一次限幅操作以将细化预测样点的值限幅到15比特内,即,

I

I

其中,I(i,j)和I

图7示出了仿射模式的PROF过程的图示。

因为仿射模型参数和相对于子块中心的像素位置不会逐子块变化,所以可以针对第一子块计算Δv(i,j),并且将其重复用于相同CU中的其他子块。

令Δx和Δy是从样点位置(i,j)到样点所属子块的中心的水平偏移和垂直偏移,Δv(i,j)可以被推导为

基于仿射子块MV推导方程(6)和(7),可以推导MV差Δv(i,j)。具体地,对于4参数仿射模型,

对于6参数仿射模型,

其中,(v

仿射模式的编解码效率

尽管PROF可以提高仿射模式的编解码效率,但其设计仍可以被进一步改进。特别地,考虑到PROF和BDOF都建立在光流概念上的事实,非常期望尽最大可能协调PROF和BDOF的设计,使得PROF可以最大限度地利用BDOF的现有逻辑,从而促进硬件实施。基于这种考虑,在本公开中确定了当前PROF与BDOF设计之间的交互的以下问题。

如在“仿射模式的PROF”部分的方程(8)所述,基于内部比特深度来确定梯度的精度。另一方面,MV差,即,Δv

如“仿射模式的PROF”部分所述,当对一个当前仿射块进行双向预测时,PROF被分别应用于列表L0和L1中的预测样点;然后,对增强的L0和L1预测信号进行平均,以生成最终的双向预测信号。相反,代替针对每个预测方向分别推导PROF细化,BDOF推导预测细化一次,然后将该预测细化应用于对组合的L0和L1预测信号进行增强。

图8和图9(如下所述)比较了用于双向预测的当前BDOF和PROF的工作流程。在实际的编解码器硬件流水线设计中,通常为每个流水线级分配不同的主要编码/解码模块,以便可以并行处理更多的编码块。然而,由于BDOF和PROF工作流程之间的差异,这可能导致难以具有一个相同的可以由BDOF和PROF共享的流水线设计,这对实际的编解码器实施来说很不友好。

图8示出了BDOF的工作流程。工作流程800包括L0运动补偿810、L1运动补偿820和BDOF 830。例如,L0运动补偿810可以是来自前一参考图片的运动补偿样点的列表。前一参考图片是视频块中的当前图片之前的参考图片。例如,L1运动补偿820可以是来自下一参考图片的运动补偿样点的列表。下一参考图片是视频块中的当前图片之后的参考图片。BDOF830从L1运动补偿810和L1运动补偿820获取运动补偿样点,并且输出预测样点,如以上关于图4所述。

图9示出了现有PROF的工作流程。工作流程900包括L0运动补偿910、L1运动补偿920、L0 PROF 930、L1 PROF 940和平均960。例如,L0运动补偿910可以是来自前一参考图片的运动补偿样点的列表。前一参考图片是视频块中的当前图片之前的参考图片。例如,L1运动补偿920可以是来自下一参考图片的运动补偿样点的列表。下一参考图片是视频块中的当前图片之后的参考图片。L0 PROF 930从L0运动补偿910获取L0运动补偿样点,并且输出运动细化值,如以上关于图7所述。L1 PROF 940从L1运动补偿920获取L1运动补偿样点,并且输出运动细化值,如以上关于图7所述。平均960对L0 PROF 930和L1 PROF 940的运动细化值输出进行平均。

对于BDOF和PROF两者而言,需要针对当前编码块内部的每个样点计算梯度,这需要在该块的每一侧生成附加的一行/列预测样点。为了避免样点内插的额外的计算复杂度,直接从整数位置处的参考样点复制块周围的扩展区域中的预测样点(即,不进行内插)。然而,根据现有设计,不同位置处的整数样点被选择用于生成BDOF和PROF的梯度值。具体地,对于BDOF,使用位于预测样点左侧(对于水平梯度)和预测样点上方(对于垂直梯度)的整数参考样点;对于PROF,使用最接近预测样点的整数参考样点来进行梯度计算。类似于比特深度表示问题,这种不统一的梯度计算方法对于硬件编解码器实施也是不期望的。

如前所述,PROF的动机是补偿每个样点的MV与在样点所属子块的中心处推导的子块MV之间的小MV差。根据当前PROF设计,PROF总是会在通过仿射模式预测一个编码块时被调用。然而,如方程(6)和(7)所指示的,一个仿射块的子块MV是从控制点MV推导的。因此,当控制点MV之间的差相对较小时,每个样点位置处的MV应该一致。在这种情况下,由于应用PROF的益处可能非常有限,因此在考虑性能/复杂度折衷的情况下,执行PROF可能不值得。

使用PROF提高仿射模式的效率

在本公开中,提供了改进和简化现有PROF设计的方法,以促进硬件编解码器实施。特别地,要特别注意协调BDOF和PROF的设计,以便最大限度地使现有的BDOF逻辑与PROF共享。通常,本公开中提出的技术的主要方面总结如下。

图10示出了根据本公开的用于解码视频信号的PROF的比特深度表示方法。

在步骤1010中,获得与视频信号内的视频块相关联的第一参考图片以及从当前图片中的视频块到第一参考图片中的参考块的第一MV。第一参考图片包括多个非重叠的视频块,并且至少一个视频块与至少一个MV相关联。例如,参考图片可以是与被编码的当前图片相邻的视频图片。

在步骤1012中,获得从第一参考图片中的参考块生成的视频块的第一预测样点I(i,j)。i和j可以表示视频块的一个样点的坐标。例如,预测样点I(i,j)可以是按显示顺序使用前一参考图片的L0列表中的MV的预测样点。

在步骤1014中,控制内部PROF参数的内部比特深度。内部PROF参数包括针对预测样点I(i,j)推导的水平梯度值、垂直梯度值、水平运动差和垂直运动差。

在步骤1016中,基于水平梯度值、垂直梯度值、水平运动差和垂直运动差,获得第一预测样点I(i,j)的预测细化值。

在步骤1018中,当视频块包含第二MV时,获得与第二MV相关联的第二预测样点I′(i,j)以及第二预测样点I′(i,j)的对应的预测细化值。

在步骤1020中,基于第一预测样点I(i,j)、第二预测样点I′(i,j)和预测细化值的组合,获得视频块的最终的预测样点。

首先,为了在实现一个更统一的设计的同时提高PROF的编解码效率,提出了一种方法以统一BDOF和PROF所使用的样点梯度和MV差的表示比特深度。

第二,为了促进硬件流水线设计,提出了对用于双向预测的PROF和BDOF的工作流程进行协调。具体地,与分别针对L0和L1推导预测细化的现有PROF不同,所提出的方法推导预测细化一次,该操作被应用于组合的L0和L1预测信号。

第三,提出了两种方法来协调整数参考样点的推导,以计算BDOF和PROF使用的梯度值。

第四,为了降低计算复杂度,提出了提前终止方法,以在满足一定条件时自适应地禁用仿射编码块的PROF过程。

PROF梯度和MV差的改进的比特深度表示设计

如在“使用PROF提高仿射模式的效率”部分中所分析的,当前PROF中的MV差和样点梯度的表示比特深度不对齐因而不能推导精确的预测细化。而且,样点梯度和MV差的表示比特深度在BDOF与PROF之间是不一致的,这对硬件而言很不友好。在此部分中,通过将BDOF的比特深度表示方法扩展到PROF,提出了一种改进的比特深度表示方法。具体地,在所提出的方法中,每个样点位置的水平梯度和垂直梯度计算为

另外,假设Δx和Δy是以1/4像素精度表示的从一个样点位置到该样点所属子块的中心的水平偏移和垂直偏移,则该样点位置的对应的PROF MV差Δv(x,y)被推导为

其中,dMvBits是BDOF过程使用的梯度值的比特深度,即,dMvBits=max(5,(bit-depth-7))+1。在方程(11)和(12)中,c、d、e和f是基于仿射控制点MV推导的仿射参数。具体地,对于4参数仿射模型,

对于6参数仿射模型,

其中,(v

用于双向预测的BDOF和PROF的协调工作流程

如前所述,当对一个仿射编码块进行双向预测时,当前PROF被以单侧方式应用。更具体地,PROF样点细化被分别推导并应用于列表L0和L1中的预测样点。在这之后,分别来自列表L0和L1的细化预测信号被平均以生成块的最终的双向预测信号。这与BDOF设计形成对比,在BDOF设计中,样点细化被推导并应用于双向预测信号。这样,BDOF和PROF的双向预测工作流程之间的差异可能对实际的编解码器流水线设计不友好。

图11示出了根据本公开的用于解码视频信号的BDOF的比特深度表示方法。

在步骤1110中,获得与视频块相关联的第一参考图片I

在步骤1112中,从第一参考图片I

在步骤1114中,从第二参考图片I

在步骤1116中,基于第一预测样点I

在步骤1118中,基于填充的预测样点获得第一预测样点I

在步骤1120中,基于被应用于视频块的BDOF以及水平梯度值和垂直梯度值,获得视频块中的样点的运动细化。

在步骤1122中,基于运动细化获得视频块的双向预测样点。

为了促进硬件流水线设计,根据当前公开的一种简化方法是修改PROF的双向预测过程,使得两种预测细化方法的工作流程相协调。具体地,代替针对每个预测方向分别应用细化,所提出的PROF方法基于列表L0和L1的控制点MV推导预测细化一次;然后,将推导的预测细化应用于组合的L0和L1预测信号,以提高质量。具体地,基于如方程(12)中推导的MV差,所提出的方法将一个仿射编码块的最终的双向预测样点计算为

其中,shift和o

图12示出了当应用所提出的双向预测PROF方法时的PROF过程的图示。PROF过程1200包括L0运动补偿1210、L1运动补偿1220和双向预测PROF过程1230。例如,L0运动补偿1210可以是来自前一参考图片的运动补偿样点的列表。前一参考图片是视频块中的当前图片之前的参考图片。例如,L1运动补偿1220可以是来自下一参考图片的运动补偿样点的列表。下一参考图片是视频块中的当前图片之后的参考图片。如上所述,双向预测PROF 1230从L1运动补偿1210和L1运动补偿1220获取运动补偿样点,并且输出双向预测样点。

图13示出了当应用BDOF和所提出的PROF两者时的示例流水线级的图示。图13展示了所提出的方法对于硬件流水线设计的潜在益处。流水线级1300包括解析/解码MV并获取参考样点1310、运动补偿1320、BDOF/PROF 1330。流水线级1300将编码视频块BLK0、BKL1、BKL2、BKL3和BLK4。每个视频块将开始于解析/解码MV并获取参考样点1310,并且然后顺序地移动到运动补偿1320和运动补偿1320、BDOF/PROF 1330。这意味着BLK0将不会在流水线级1300过程中开始,直到BLK0移动到运动补偿1320上为止。随着时间从T0到T1、T2、T3和T4,所有级和视频块都是如此。

在图13中,一个帧间块的解码过程主要包括三个步骤:

首先,解析/解码编码块的MV并获取参考样点。

第二,生成编码块的L0和/或L1预测信号。

第三,当通过一个非仿射模式来预测编码块时基于BDOF对所生成的双向预测样点执行样点级别的细化,或者当通过仿射模式来预测编码块时基于PROF对所生成的双向预测样点执行样点级别的细化。

如图13所示,在应用了所提出的协调方法之后,BDOF和PROF两者都被直接应用于双向预测样点。考虑到BDOF和PROF被应用于不同类型的编码块(即,BDOF被应用于非仿射块,而PROF被应用于仿射块),这两个编解码工具不会被同时调用。因此,它们的对应的解码过程可以通过共享相同的流水线级来进行。这比现有PROF设计更高效,在现有PROF设计中,由于BDOF和PROF的双向预测工作流程不同,很难为它们分配同一流水线级。

在上述讨论中,所提出的方法仅考虑了BDOF和PROF的工作流程的协调。然而,根据现有设计,这两个编解码工具的基本操作单元还以不同的尺寸执行。具体地,对于BDOF,一个编码块被划分成尺寸为W

由于降低了计算复杂度(即,第3项),因此利用所提出的方法可以去除仿射编码块的现有6抽头(6-tap)内插滤波器约束。替代地,非仿射编码块的默认8抽头内插也用于仿射编码块。在这种情况下,整体计算复杂度仍然可以与基于4×4子块和6抽头内插滤波器的现有PROF设计比肩。

BDOF和PROF的梯度推导的协调

如前所述,BDOF和PROF两者都计算当前编码块内部的每个样点的梯度,这会访问该块每一侧的附加的一行/列的预测样点。为了避免额外的内插复杂度,直接从整数参考样点复制块边界周围的扩展区域中所需的预测样点。然而,正如“问题说明”部分所指出的,不同位置处的整数样点被用于计算BDOF和PROF的梯度值。

为了实现一个更统一的设计,以下公开了两种方法来统一BDOF和PROF使用的梯度推导方法。在第一种方法中,提出了将PROF的梯度推导方法对齐为与BDOF的梯度推导方法相同。具体地,通过第一种方法,通过将分数样点位置向下取整来确定用于生成扩展区域中的预测样点的整数位置,即,所选择的整数样点位置位于分数样点位置(对于水平梯度)左侧和位于分数样点位置(对于垂直梯度)上方。

在第二种方法中,提出了将BDOF的梯度推导方法对齐为与PROF的梯度推导方法相同。更详细地,当应用第二种方法时,将最接近预测样点的整数参考样点用于梯度计算。

图14示出了使用BDOF的梯度推导方法的示例,其中,空白圆圈表示整数位置处的参考样点1410,三角形表示当前块的分数预测样点1430,并且灰色圆圈表示用于填充当前块的扩展区域的整数参考样点1420。

图15示出了使用PROF的梯度推导方法的示例,其中,空白圆圈表示整数位置处的参考样点1510,三角形表示当前块的分数预测样点1530,并且灰色圆圈表示用于填充当前块的扩展区域的整数参考样点1520。

图14和图15图示了当分别应用第一方法(图14)和第二方法(图15)时用于推导BDOF和PROF的梯度的对应的整数样点位置。在图14和图15中,空白圆圈表示整数位置处的参考样点,三角形表示当前块的分数预测样点,并且灰色圆圈表示用于填充当前块的扩展区域以进行梯度推导的整数参考样点。

基于控制点MV差的提前终止PROF

根据当前PROF设计,PROF总是会在通过仿射模式预测一个编码块时被调用。然而,如方程(6)和(7)所示,一个仿射块的子块MV是从控制点MV推导的。因此,当控制点MV之间的差相对较小时,每个样点位置处的MV应该一致。在这种情况下,应用PROF的益处可能非常有限。因此,为了进一步降低PROF的平均计算复杂度,提出了基于一个4×4子块内的样点级别的MV与子块级别的MV之间的最大MV差来自适应地跳过基于PROF的样点细化。因为一个4×4子块内部的样点的PROF MV差值关于子块的中心对称,所以最大水平和垂直PROF MV差可以基于方程(10)计算为

根据当前公开,可以使用不同的度量来确定MV差是否小到足以跳过PROF过程。

在一个示例中,基于方程(14),当绝对最大水平MV差和绝对最大垂直MV差的总和小于一个预定义阈值时可以跳过PROF过程,即,

在另一示例中,如果

MAX(a,b)是返回输入值a与b之中的较大值的函数。

除了上述两个示例之外,当前公开的精神还适用于在确定MV差是否小到足以跳过PROF过程时使用其他度量的情况。

在上述方法中,基于MV差的幅值跳过PROF。另一方面,除了MV差之外,还基于一个运动补偿块中每个样点位置处的局部梯度信息来计算PROF样点细化。对于包含较少高频细节(例如,平坦区域)的预测块,梯度值倾向于较小,使得推导的样点细化的值应该较小。考虑到这一点,根据当前公开的另一方面,提出了仅将PROF应用于包含足够高频信息的块的预测样点。

可以使用不同的度量来确定块是否包含足够的高频信息以使得值得为该块调用PROF过程。在一个示例中,基于预测块内的样点的梯度的平均幅值(即,绝对值)做出决策。如果平均幅值小于一个阈值,则预测块被分类为平坦区域,并且不应该应用PROF;否则,预测块被认为包含足够的高频细节,PROF仍然适用。在另一示例中,可以使用预测块内样点的梯度的最大幅值。如果最大幅值小于一个阈值,则对于该块跳过PROF。在又另一示例中,可以使用预测块的最大样点值与最小样点值之间的差I

图16示出了与用户界面1660耦接的计算环境1610。计算环境1610可以是数据处理服务器的一部分。计算环境1610包括处理器1620、存储器1640以及I/O接口1650。

处理器1620通常控制计算环境1610的整体操作,比如与显示、数据获取、数据通信以及图像处理相关联的操作。处理器1620可以包括一个或多个处理器以执行指令以执行上述方法中的所有或一些步骤。而且,处理器1620可以包括促进处理器1620与其他部件之间的交互的一个或多个模块。处理器可以是中央处理单元(CPU)、微处理器、单片机、GPU等。

存储器1640被配置为存储各种类型的数据以支持计算环境1610的操作。存储器1640可以包括预定软件1642。这种数据的示例包括在计算环境1610上操作的任何应用或方法的指令、视频数据集、图像数据等。存储器1640可以通过使用任何类型的易失性或非易失性存储器设备或其组合来实施,比如静态随机存取存储器(SRAM)、电可擦可编程只读存储器(EEPROM)、可擦可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、闪速存储器、磁盘或光盘。

I/O接口1650提供处理器1620与外围接口模块(比如键盘、点击轮、按钮等)之间的接口。按钮可以包括但不限于主页按钮、开始扫描按钮和停止扫描按钮。I/O接口1650可以与编码器和解码器耦接。

在实施例中,还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质包括多个程序,这些程序比如包含在存储器1640中,能够由计算环境1610中的处理器1620执行,用于执行上述方法。例如,该非暂态计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘、光学数据存储设备等。

该非暂态计算机可读存储介质中存储有用于由具有一个或多个处理器的计算设备执行的多个程序,其中,该多个程序在由该一个或多个处理器执行时,使该计算设备执行上述运动预测方法。

在实施例中,计算环境1610可以用一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、控制器、微控制器、微处理器、或其他电子部件来实施,用于执行上述方法。

已经出于说明目的呈现了对本公开的描述,并且该描述不旨在是穷举的、或限于本公开。受益于前述描述和相关联附图中呈现的教导,许多修改、变体和替代性实施方式对于本领域普通技术人员将是显而易见的。

选择并描述示例以便解释本公开的原理,并且使本领域其他技术人员能够理解本公开的各种实施方式并且最好地利用基本原理以及具有适合于预期的特定用途的各种修改的各种实施方式。因此,应当理解,本公开的范围不应受限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在包括在本公开的范围内。

技术分类

06120115936923