视频编码方法、计算设备和介质与流程

未命名 09-02 阅读:134 评论:0

视频编码方法、计算设备和介质
1.相关申请的交叉引用
2.本技术要求于2019年1月06日提交的美国临时申请号62/788,898的权益。前述申请的全部公开内容通过援引以其全文并入本文。本技术是发明名称为“双向光流的比特宽度控制”、国际申请日为2020年1月6日、国家申请号为202080008094.0(国际申请号为pct/us2020/012338)的发明专利申请的分案申请。
技术领域
3.本公开总体上涉及对视频数据进行编解码(例如,编码和解码)。更具体地,本公开涉及用于改进用于视频编解码的双向光流(bdof)处理方法的方法和装置。在特定的示例实施例中,描述了以下方法:使用bdof从相对于当前图片的相反方向出现的多个参考图片(例如,显示顺序在当前图片之前的第一参考图片、以及显示顺序在当前图片之后的第二参考图片)双向地预测块。


背景技术:

4.本节提供与本公开相关的背景技术信息。本节内包含的信息不一定被解释为现有技术。
5.可以使用各种视频编码技术来压缩视频数据。视频编码是根据一个或多个视频编码标准来执行的。例如,视频编码标准包括通用视频编码(vvc)、联合探索测试模型编码(jem)、高效视频编码(h.265/hevc)、高级视频编码(h.264/avc)、运动图片专家组编码(mpeg)等。视频编码通常使用利用存在于视频图像或序列中的冗余的预测方法(例如,帧间预测、帧内预测等)进行。视频编码技术的一个重要目标在于,将视频数据压缩成在避免或最小化视频质量降级的同时使用较低比特率的形式。
6.hevc标准的第一版本于2013年10月完成,其与上一代视频编码标准h.264/mpeg avc相比,提供了大约50%的比特率节省或同等的感知质量。尽管hevc标准提供了优于其前身的显著编码改进,但有证据表明,可以使用额外的编码工具实现优于hevc的编码效率。基于此,vceg和mpeg都开始了对未来视频编码标准化的新编码技术的探索工作。由itu-t vecg和iso/iec mpeg于2015年10月形成了一个联合视频探索小组(jvet),开始对可能能够显著提高编码效率的先进技术进行大量研究。jvet通过在hevc测试模型(hm)的顶上整合多个附加编码工具而开发出被称为联合探索模型(jem)的参考软件。
7.2017年10月,itu-t和iso/iec发布了关于具有超越hevc的能力的视频压缩的联合提案征集(cfp)。2018年4月,第10届jvet会议上接收并评估了23份cfp回复,论证了压缩效率比hevc提高约40%。基于这样的评估结果,jvet启动了开发名为通用视频编码(vvc)的新一代视频编码标准的新项目。同月,建立了一个称为vvc测试模型(vtm)的参考软件代码库,用于演示vvc标准的参考实施。


技术实现要素:

8.本节提供本公开的概述,而并非对其全部范围或所有特征的全面公开。根据本公开的第一方面,一种用于控制用于视频编解码的双向光流(bdof)的比特宽度的方法,该方法在具有一个或多个处理器和存储器的计算设备处执行,所述存储器存储有待由所述一个或多个处理器执行的多个程序,该方法包括:对第一参考图片和第二参考图片进行编码。第二参考图片不同于第一参考图片,其中,第一参考图片在当前图片之前显示,并且第二参考图片在当前参考图片之后显示。确定从当前图片的当前块到第一参考图片的第一预测l0的第一运动向量(mv0)。确定从当前块到第二参考图片的第二预测l1的第二运动向量(mv1)。确定从当前图片到第一参考图片的第一时间距离(τ0),以及从当前图片到第二参考图片的第二时间距离(τ1)。通过最小化第一预测l0与第二预测l1之间的差来计算运动修正。计算第一梯度值和第二梯度值,其中,引入附加的右移以降低第一梯度值和第二梯度值的内部比特宽度。计算第一梯度值与第二梯度值之和,其中,将附加的右移引入该求和以降低其比特宽度。计算第一预测样本l0与第二预测样本l1之间的差,其中,将附加的右移引入到第一预测样本l0和第二预测样本l1以降低该差的内部比特宽度。
9.根据本公开的第二方面,一种计算设备包括一个或多个处理器、耦接到该一个或多个处理器的非暂态存储器、以及存储在该非暂态存储器中的多个程序。当该多个程序由该一个或多个处理器执行时,该计算设备对第一参考图片和第二参考图片进行编码。第二参考图片不同于第一参考图片,其中,第一参考图片在当前图片之前显示,并且第二参考图片在当前参考图片之后显示。确定从当前图片的当前块到第一参考图片的第一预测l0的第一运动向量(mv0)。确定从当前块到第二参考图片的第二预测l1的第二运动向量(mv1)。确定从当前图片到第一参考图片的第一时间距离(τ0),以及从当前图片到第二参考图片的第二时间距离(τ1)。通过最小化第一预测l0与第二预测l1之间的差来计算运动修正。计算第一梯度值和第二梯度值,其中,引入附加的右移以降低第一梯度值和第二梯度值的内部比特宽度。计算第一梯度值与第二梯度值之和,其中,将附加的右移引入该求和以降低其比特宽度。计算第一预测样本l0与第二预测样本l1之间的差,其中,将附加的右移引入到第一预测样本l0和第二预测样本l1以降低该差的内部比特宽度。
10.根据本公开的第三方面,一种非暂态计算机可读存储介质存储用于由具有一个或多个处理器的计算设备执行的多个程序。当该多个程序由该一个或多个处理器执行时,使该计算设备对第一参考图片和第二参考图片进行编码。第二参考图片不同于第一参考图片,其中,第一参考图片在当前图片之前显示,并且第二参考图片在当前参考图片之后显示。确定从当前图片的当前块到第一参考图片的第一预测l0的第一运动向量(mv0)。确定从当前块到第二参考图片的第二预测l1的第二运动向量(mv1)。确定从当前图片到第一参考图片的第一时间距离(τ0),以及从当前图片到第二参考图片的第二时间距离(τ1)。通过最小化第一预测l0与第二预测l1之间的差来计算运动修正。计算第一梯度值和第二梯度值,其中,引入附加的右移以降低第一梯度值和第二梯度值的内部比特宽度。计算第一梯度值与第二梯度值之和,其中,将附加的右移引入该求和以降低其比特宽度。计算第一预测样本l0与第二预测样本l1之间的差,其中,将附加的右移引入到第一预测样本l0和第二预测样本l1以降低该差的内部比特宽度。
附图说明
11.在下文中,将结合附图描述本公开的多组说明性的非限制性实施例。相关领域的普通技术人员可以基于本文呈现的示例来实施结构、方法或功能的变型,并且这样的变型都包含在本公开的范围内。在不存在冲突的情况下,不同实施例的教导可以但不必相互组合。
12.图1是根据示例实施例的示例基于块的混合视频编码系统的框图,该系统包括适合于与双向光流(bdof)方法一起使用的示例编码器;
13.图2是根据示例实施例的示例解码器的框图设置,该解码器适合于与双向光流(bdof)方法一起使用;
14.图3a至图3e示出了根据示例实施例的示例划分类型,即四元分割(图3a)、水平二元分割(图3b)、垂直二元分割(图3c)、水平三元分割(图3d)、和垂直三元分割(图3e);
15.图4示出了示例双向光流(bdof)模型;以及
16.图5是根据示例实施例的用于预测视频数据块的示例方法的流程图。
具体实施方式
17.本公开中使用的术语旨在说明特定的示例,而不是限制本公开。本公开内容和所附权利要求中所使用的单数形式“一个”、“一种”和“所述”也指代复数形式,除非上下文中明确包含其他意义。应该理解的是,如本文所使用的术语“和/或”是指一个或多个相关联列举项目的任何或所有可能组合。
18.应该理解的是,尽管本文可以使用术语“第一”、“第二”、“第三”等来描述各种信息,但是这些信息不应受这些术语的限制。这些术语仅仅是用来将一类信息与另一类信息进行区分。例如,在不脱离本公开的范围的情况下,第一信息也可以被称为第二信息;并且类似地,第二信息也可以被称为第一信息。如本文所使用的,根据上下文,术语“如果”可以被理解为意指“当
……
时”或“在
……
时”或“响应于”。
19.在整个说明书中,以单数或复数形式对“一个实施例”、“实施例”、“另一个实施例”等的引用意味着结合实施例描述的一个或多个特定特征、结构、或特性被包括在本公开的至少一个实施例中。因此,在整个该说明书中的各个地方以单数或复数形式出现的短语“在一个实施例中”或“在实施例中”、“在另一个实施例中”等不一定都是指同一个实施例。此外,可以以任何合适的方式将一个或多个实施例中的特定的特征、结构、或特性进行组合。
20.本公开总体上涉及对视频数据进行编解码(例如,编码和解码)。更具体地,本公开涉及用于改进用于视频编解码的双向光流(bdof)处理方法的方法和装置。在特定的示例实施例中,描述了以下方法:使用bdof从相对于当前图片的相反方向出现的多个参考图片(例如,显示顺序在当前图片之前的第一参考图片、以及显示顺序在当前图片之后的第二参考图片)双向地预测块。
21.如本文所描述的方法涉及改进或增强bdof。bdof可以在运动补偿期间应用,并且可以用于针对当前块在每个像素基础上修改运动向量,从而使用应用于运动向量的对应的偏移值来预测当前块的像素。在示例实施例中,当运动向量用于在相对于当前块的相反预测方向上,相对于参考图片中的参考块来帧间预测当前图片的视频数据块时,使用bdof。视频编码方法包括空间(帧内图片)预测和/或时间(帧间图片)预测,以减少或消除视频序列
中固有的冗余。对于基于块的视频编码,视频条带(例如,视频帧或视频帧的一部分)可以被分割成视频块,这些视频块还可以被称为树块、编码单元(cu)、和/或编码节点。相对于同一图片内的相邻块中的参考样点,可以使用空间预测对图片的帧内编码(i)条带中的视频块进行编码。图片的帧间编码(p或b)条带中的视频块可以相对于同一图片内的相邻块中的参考样点使用空间预测,或相对于其他参考图片中的参考样点使用时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。
22.空间预测或时间预测产生待编码的块的预测块。残差数据表示待编码的原始块与预测块之间的像素差。根据指向形成预测块的参考样点的块的运动向量、以及指示编码块与预测块之间的差的残差数据对帧间编码块进行编码。根据帧内编码模式和残差数据对帧内编码块进行编码。为了进一步压缩,可以将残差数据从像素域变换到变换域,从而产生残差变换系数,然后可以对残差变换系数进行量化。可以扫描最初布置为二维阵列的经量化的变换系数,以产生变换系数的一维向量,并且可以应用熵编码以实现甚至更多的压缩。
23.针对每个帧间预测块,可以获得一组运动信息。一组运动信息可以包含前向预测方向和后向预测方向的运动信息。如本文所使用的,前向或第一预测方向以及后向或第二预测方向是双向预测模式的两个预测方向,并且术语“前向”、“第一”、“后向”和“第二”不一定具有几何意义。相反,这些术语通常对应于参考图片是在当前图片之前(“后向”)显示还是在当前图片之后(“前向”)显示。在示例实施例中,前向预测方向可以对应于当前图片的参考图片列表0(refpiclist0),并且后向预测方向可以对应于当前图片的参考图片列表1(refpiclist1)。
24.针对每个预测方向,运动信息包含参考索引和运动向量。在示例实施例中,参考索引可以用于标识当前参考图片列表(refpiclist0或refpiclist1)中的参考图片。运动向量具有水平(x)分量和垂直(y)分量。通常,水平分量指示相对于当前图片中的当前块的位置,在参考图片内的水平位移,以用于定位参考块的x坐标;而垂直分量指示相对于当前块的位置,在参考图片内的垂直位移,以用于定位参考块的y坐标。
25.图片顺序计数(poc)值在用于识别图片的显示顺序的视频编码标准中广泛使用。尽管在一些情况中一个编码视频序列内的两个图片可以具有同一poc值,但是这通常不会在编码视频序列内发生。因此,图片的poc值通常是唯一的,并且因此可以唯一地标识对应的图片。当比特流中存在多个编码视频序列时,就解码顺序而言,具有同一poc值的图片可能更靠近彼此。图片的poc值通常用于参考图片列表的构造、如hevc中的参考图片组的推导、以及运动向量缩放。
26.在概念上,许多视频编码标准是类似的,包括先前在背景技术部分所提及的那些。例如,几乎所有的视频编码标准都使用基于块的处理并且共享类似的视频编码框图来实现视频压缩。
27.与hevc一样,vvc在基于块的混合视频编码框架上构建。图1是根据示例实施例的基于块的混合视频编码系统的框图,该系统包括可以使用用于双向光流的方法的示例编码器100。输入视频信号被逐块(cu)处理。在vtm-1.0中,cu可以高达128
×
128像素。然而,不同于仅仅基于四叉树来分割块的hevc,在vvc中,一个编码树单元(ctu)被划分成多个cu,以适应基于四/二/三叉树而不同的局部特性。另外,hevc中的多种分割单元类型的概念被移除了,即,cu、预测单元(pu)和变换单元(tu)的区分不再存在于vvc中;相反,每个cu一直用作
预测和变换两者的基本单元,而不进行进一步分割。在多类型树结构中,一个ctu被四叉树结构分割,然后每个四叉树叶节点可以进一步被二叉树结构或三叉树结构分割。
28.参考图1,编码器100,视频帧被分割成多个视频块以进行处理。针对每个给定的视频块,基于帧间预测方法或帧内预测方法来形成预测。在帧间预测中,基于来自先前重构的帧的像素,通过运动估计和运动补偿来形成一个或多个预测值(predictor)。在帧内预测中,基于当前帧中的重构像素来形成预测值。通过模式决策,可以选择最佳预测值来预测当前块。
29.将表示当前视频块与其预测值之间的差的预测残差发送至变换电路102。如本文所使用的术语“电路”包括硬件和用于操作硬件的软件。变换电路102向残差块应用如离散余弦变换(dct)或概念上类似的变换等的变换,从而产生包括变换系数值的视频块。可以使用小波变换、整数变换、子带变换、离散正弦变换(dst)、或其他类型的变换来代替dct。变换电路102将变换应用于残差块,从而产生变换系数的块。该变换可以将残差信息从像素域转换到如频域等变换域。
30.然后,将所产生的变换系数从变换电路102发送至量化电路104,以进行熵减小。量化电路104对变换系数进行量化以进一步降低比特率。量化过程可以减小与一些或所有系数相关联的比特深度。量化程度可以通过调整量化参数来修改。然后,将经量化的系数馈送至熵编码电路106,以生成经压缩的视频比特流。熵编码电路106对经量化的变换系数进行熵编码。例如,熵编码电路106可以执行上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)、基于语义的上下文自适应二进制算术编码(sbac)、概率区间分割熵(pipe)编码或其他熵编码技术。在基于上下文的熵编码中,上下文可以基于相邻块。在由熵编码电路106进行熵编码之后,已编码的比特流可以被传输至其他设备(例如,视频解码器)或被存档以供稍后传输或取得。如图1所示,来自帧间预测电路和/或帧内预测电路112的预测相关信息110(如视频块分割信息、运动向量、参考图片索引和帧内预测模式)也通过熵编码电路106被馈送并且被保存到经压缩的视频比特流114中。
31.在编码器100中,还需要解码器相关电路来重构用于预测目的的像素。首先,通过逆量化电路116和逆变换电路118来重构预测残差。将该重构预测残差与块预测值120组合,以生成当前视频块的未经滤波的重构像素。逆量化电路116和逆变换电路118分别应用逆量化和逆变换,以在像素域中重构残差块。在某些实施例中,加法器将重构残差块与由运动补偿电路122或帧内预测电路112早前产生的经运动补偿的视频块相加,以产生重构视频块,该重构视频块被存储到参考图片存储器中。运动估计电路124和运动补偿电路122可以将重构视频块作为参考块用来对后一视频帧中的块进行帧间编码。
32.为了提高编码效率和视觉质量,常常使用环路滤波器。例如,在avc、hevc、以及vvc的当前版本中可用去块滤波器。在hevc中,定义了称为sao(样本自适应偏移)的附加环路滤波器以进一步提高编码效率。在vvc标准的当前版本中,正在积极研究称为alf(自适应环路滤波器)的又另一种环路滤波器以结合在最终的标准中。这些环路滤波器操作是可选的。执行这些操作有助于提高编码效率和视觉质量。这些操作也可以按照编码器100作出决策而被取消,以节省计算复杂度。应该注意的是,如果这些滤波器选项被编码器100开启,则帧内预测通常基于未经滤波的重构像素,而帧间预测基于经滤波的重构像素。
33.图2是示例解码器200的框图,该解码器可以使用用于双向光流的方法。在示例实
施例中,解码器200与位于图1的编码器100中的重构相关的部分类似。参考图2,在解码器200中,首先通过熵解码电路202对传入视频比特流201进行解码,以得到经量化的系数等级和预测相关信息。然后,通过逆量化电路204和逆变换电路206处理经量化的系数等级,以获得重构预测残差。逆量化电路204对比特流中提供并由熵解码电路202解码的经量化的变换系数进行逆量化(即,去量化)。逆量化过程可以包括使用由解码器200计算出的针对视频条带中的每个视频块的量化参数qpy来确定量化程度以及同样地应该应用的逆量化的程度。逆变换电路206将逆变换(例如,逆dct、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中产生残差块。
34.可以在帧内/帧间模式选择器电路208中实施的块预测值机制包括:被配置为执行帧内预测过程的帧内预测电路210、和/或被配置为基于已解码的预测信息来执行运动补偿过程的运动补偿电路212。通过使用加法器214对来自逆变换电路206的重构预测残差与由块预测值机制生成的预测输出进行求和,来获得一组未经滤波的重构像素。在环路滤波器216被开启的情况下,对这些重构像素执行滤波操作,从而得到最终的重构视频以供输出。
35.当视频条带被编码为帧内编码(i)条带时,帧内预测电路210可以基于用信号发送的帧内预测模式和来自当前帧或图片之前解码的块的数据,生成当前视频条带的视频块的预测数据。当视频帧被编码为帧间编码(即,b、p或gpb)条带时,运动补偿电路212基于从熵解码电路202接收到的运动向量和其他语义元素来产生当前视频条带的视频块的预测块。预测块可以从参考图片列表之一内的参考图片之一中产生。解码器200可以基于存储在参考图片存储器中的参考图片,使用默认构造技术来构造参考帧列表:列表0和列表1。
36.运动补偿电路212通过解析运动向量和其他语义元素来确定用于当前视频条带的视频块的预测信息,并且使用预测信息来产生用于被解码的当前视频块的预测块。例如,运动补偿电路212使用接收到的语义元素中的一些来确定用于对视频条带的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测条带类型(例如,b条带、p条带或gpb条带)、条带的参考图片列表中的一个或多个参考图片列表的构造信息、条带的每个帧间编码视频块的运动向量、条带的每个帧间编码视频块的帧间预测状态以及用于对当前视频条带中的视频块进行解码的其他信息。
37.运动补偿电路212还可以基于内插滤波器来执行内插,以实现亚像素(sub-pixel)精度。运动补偿电路212可以使用如编码器100在对视频块进行编码期间使用的内插滤波器来计算参考块的亚整数像素(sub-integer pixel)的内插值。在示例实施例中,运动补偿电路212根据接收到的语义元素来确定由编码器100使用的内插滤波器,并且使用内插滤波器来产生预测块。运动补偿电路212可以被配置为执行本公开中描述的方法中的任何一种或全部(单独地或以任何组合)。例如,运动补偿电路212可以被配置为执行本文讨论的示例bdof方法。
38.在示例实施例中,运动补偿电路212被配置为将bdof应用于这样的块,这些块具有时间上在当前图片之前(例如,在参考图片列表0中)的第一参考图片和时间上在当前图片之后(例如,在参考图片列表1中)的第二参考图片。响应于确定将bdof应用于该块,运动补偿电路212可以应用本文所讨论的方法(例如,关于本文所讨论的公式),以根据bdof来预测该块。
39.图3a至图3e示出了五个示例划分类型,即,四元分割(图3a)、水平二元分割(图
3b)、垂直二元分割(图3c)、水平三元分割(图3d)、和垂直三元分割(图3e)。
40.再此参考图1,可以执行空间预测和/或时间预测。空间预测(或“帧内预测”)使用来自同一视频图片或条带中的已编码的相邻块中的样点(被称为参考样点)的像素来预测当前视频块。空间预测减少了视频信号中固有的空间冗余。时间预测(也被称为“帧间预测”或“运动补偿预测”)使用来自已编码的视频图片的重构像素来预测当前视频块。时间预测减少了在视频信号中固有的时间冗余。给定cu的时间预测信号通常由指示当前cu与当前cu的时间参考之间的运动量和运动方向的一个或多个运动向量(mv)用信号发送。同样,如果支持多个参考图片,则另外发送一个参考图片索引,该参考图片索引用于标识时间预测信号来自参考图片存储中的哪个参考图片。在进行空间和/或时间预测之后,编码器中的模式决策块,例如基于率失真优化方法,来选择最佳预测模式。然后,从当前视频块减去预测块,并且使用变换对预测残差进行解相关并进行量化。对经量化的残差系数进行逆量化和逆变换以形成重构残差,然后将该重构残差加回预测块以形成cu的重构信号。将重构的cu置于参考图片存储中并用于对未来的视频块进行编码之前,可以使用如样本自适应偏移(sao)和自适应环路滤波器(alf)等的去块滤波器向该重构的cu应用进一步的环路滤波。为了形成输出视频比特流,将编码模式(帧间或帧内)、预测模式信息、运动信息、以及经量化的残差系数都发送至熵编码电路106,以进行进一步压缩和打包来形成比特流。
41.图4示出了示例双向光流(bdof)模型。如图4所示,第一参考块i0中的第一预测l0定位在距被执行预测的当前块curblk第一时间距离τ0处。具有运动向量分量(v
x
,vy)的第一运动向量a位于第一参考块i0中。类似地,第二参考块i1中的第二预测l1定位在距当前块以第二时间距离τ1处。具有运动向量分量(-v
x
,-vy)的第二运动向量b位于第二参考块i1中。
42.双向光流:视频编解码中传统的双向预测是从已经被重构的参考图片获得的两个时间预测块的简单组合。然而,由于基于块的运动补偿的限制,可能仍有可以在两个预测块的样点之间观察到的剩余的小运动,因此降低了运动补偿预测的效率。为了解决该问题,在vvc中应用双向光流(bdof)来降低对一个块内部的每个样点的这样的运动的影响。更具体地,如图4所示,当使用双向预测时,bdof是在基于块的运动补偿预测之上执行的样点级别的运动修正。在将bdof应用到每个4
×
4子块周围的一个6
×
6窗口ω内部后,通过最小化l0与l1预测样本之间的差来计算该子块的运动修正(v
x
,vy)。更具体地,(v
x
,vy)的值推导为:
[0043][0044][0045]
其中,是取整函数;clip3(min,max,x)是将给定值x限幅到[min,max]范围内部的函数;符号>>表示逐比特右移运算;符号<<表示逐比特左移运算;th
bdof
是用于防止由于不规律的局部运动导致的传播误差的运动修正阈值,其等于2
13-bd
,其中,bd是输入视频的比特深度。在等式(1)中,
[0046]
s1、s2、s3、s5和s6的值计算为:
[0047]
s1=∑
(i,j)∈ω
ψ
x
(i,j)
·
ψ
x
(i,j),s3=∑
(i,j)∈ω
θ(i,j)
·
ψ
x
(i,j)
[0048]
s2=∑
(i,j)∈ω
ψ
x
(i,j)
·
ψy(i,j)
[0049]
s5=∑
(i,j)∈ω
ψy(i,j)
·
ψy(i,j) s6=∑
(i,j)∈ω
θ(i,j)
·
ψy(i,j),
ꢀꢀꢀ
等式(2)
[0050]
其中,ω是预测l0和预测l1的一个子块周围的一组相邻预测样点,其中,
[0051][0052][0053]
θ(i,j)=(i
(1)
(i,j)>>6)-(i
(0)
(i,j)>>6)
ꢀꢀꢀ
等式(3)
[0054]
其中,i
(k)
(i,j)是在列表k(k=0,1)中的预测信号的样点位置(i,j)处的预测样点,这些预测样点以中高精度(即,16比特)生成;和分别是通过直接计算样点的两个相邻样点之间的差而获得的该样点的水平梯度和垂直梯度,即,
[0055][0056][0057]
基于在等式(1)中推导出的运动修正,通过基于光流模型沿运动轨迹对l0预测和l1预测进行内插来计算cu的最终双向预测样点,如下所示:
[0058]
pred
bdof
(x,y)=(i
(0)
(x,y)+i
(1)
(x,y)+b+o
offset
)>>shift
[0059][0060]
其中,shift和o
offset
是被应用以组合双向预测的l0预测信号和l1预测信号的右移位值和偏移值,分别等于15-bd和1<<(14-bd)+2
·
(1<<13)。表1展示了在bdof过程中涉及的中间参数的具体比特宽度。如表1所示,整个bdof过程的内部比特宽度不超过32比特。另外,具有最差可能输入的乘法发生在等式(1)中的v
xs2,m
的乘积处,其中,s
2,m
和v
x
的输入比特宽度分别为15比特和4比特。因此,15比特乘法器对于bdof足够了。
[0061]
表1:vvc中bdof的中间参数的比特宽度
[0062]
[0063][0064]
尽管bdof可以提高双向预测的效率,但是仍然有机会进一步改进bdof的设计。更具体地,本公开找到了vvc中用于控制中间参数的比特宽度的现有bdof设计中的以下问题。
[0065]
首先,如表1中所示,参数θ(i,j)(即,l0预测与l1预测之间的差)以及参数ψ
x
(i,j)和ψy(i,j)(即,l0和l1的水平梯度值之和,以及垂直梯度值之和)都以相同的11比特宽度表示。尽管这种方法可以促进对bdof的内部比特宽度的总体控制,但是该方法在得到的运动修正的精度方面可能是次优的。这是因为如等式(4)中所示,梯度值被计算为相邻预测之间的差。由于这种过程的高通本质,在存在噪声(例如,在原始视频中捕获的噪声和在编码过程期间生成的编码噪声)的情况下,得到的梯度的可靠性会降低。这意味着以高比特宽度表示梯度值可能并不总是有益的。
和s6的比特宽度,这可以潜在地将内部bdof过程的最大比特宽度增大到大于32比特。因此,为了确保32比特的实施方式,将两个附加的限幅操作引入到对s2和s6的值的计算中。更具体地,在示例方法中,这两个参数的值计算为:
[0077][0078][0079]
其中,b2和b6分别是用于控制s2和s6的输出动态范围的参数。应该注意的是,不同于梯度计算,在等式(8)中,限幅操作仅为计算一个bdof cu内部的每个4
×
4子块的运动修正而被应用一次,即,基于4
×
4单元而被调用。因此,由于所提出的方法中的限幅操作而导致的对应复杂度增加是十分微不足道的。
[0080]
在示例实施例中,基于第一预测l0和第二预测l1、运动修正(v
x
,vy)、第一梯度值和以及第二梯度值和来计算cu的最终双向预测。实际上,可以应用n
grad
、n
adj
、b2和b6的不同值,以实现在中间比特宽度与内部bdof推导的精度之间的不同折衷。在一个示例实施例中,n
grad
和n
adj
被设置为2,b2被设置为25,并且b6被设置为27。例如,在某些示例实施例中,nc的值被设置为等于2,和/或th
bdof
被设置为等于2(参见等式(1))。
[0081]
表2:示例方法的中间参数的比特宽度
[0082]
[0083][0084][0085]
图5是根据示例实施例的用于预测视频数据块的示例方法300的流程图。关于图1
的编码器100和/或图2的解码器200来解释图5中示出的方法。然而,在其他示例中,其他设备也可以被配置为执行图5中示出的方法。
[0086]
在示例实施例中,编码器100最初对存储在参考图片存储器中的用作参考图片的图片进行编码,然后进行解码,尽管这些步骤并未在图5的示例方法中图示。编码器100然后接收视频数据块。块可以是例如视频数据的当前图片(或图片的条带)的编码单元(cu)的预测单元(pu)。编码器100可以确定使用各种预测模式中的哪种预测模式来预测块,如帧内预测或帧间预测,并且如果确定使用帧间预测,则确定使用单向帧间预测还是双向帧间预测。在图5的示例方法中,编码器100确定使用双向预测来预测块。例如,编码器100可以计算各种可能的预测模式(例如,一个或多个帧内预测模式和根据存储在参考图片存储器中的各种已解码的参考图片的单向或双向预测)的率失真度量,并且确定双向预测能产生对于块而言最佳的率失真度量。
[0087]
编码器100(例如,运动估计电路124)可以根据双向预测来进一步计算块的运动向量。这样的运动向量可以指在当前图片之前显示的第一参考图片和在当前图片之后显示的第二参考图片。例如,第一参考图片可以出现在参考图片列表0(refpiclist0)中,并且第二参考图片可以出现在参考图片列表1(refpiclist1)中。
[0088]
在一个实施例中,编码器100确定在第一时间距离τ0处的、第一运动向量(mv0)所参考的第一参考图片的poc值与当前图片的poc值之间的第一poc差,以及在第二时间距离τ1处的、第二运动向量(mv1)所参考的第二参考图片的poc值与当前图片的poc值之间的第二poc差。mv0和mv1可以包括相应的x分量和y分量。例如,mv0可以包括mv
x0
分量和mv
y0
分量,其中,mv
x0
描述相对于当前图片中的块的位置的水平偏移,并且mv
y0
描述垂直偏移,用于确定参考块在第一参考图片中的位置。类似地,mv1可以包括mv
x1
分量和mv
y1
分量,其中,mv
x1
描述相对于当前图片中的块的位置的水平偏移,并且mv
y1
描述垂直偏移,用于确定参考块在第二参考图片中的位置。
[0089]
在示例实施例中,对第一参考图片和第二参考图片进行解码302。第二参考图片不同于第一参考图片,其中,第一参考图片在当前图片之前显示,并且第二参考图片在当前参考图片之后显示。在示例实施例中,确定304从当前图片的当前块到第一参考图片的第一预测l0的第一运动向量(mv0),并且确定306从当前块到第二参考图片的第二预测l1的第二运动向量(mv1)。在某些示例实施例中,确定从当前图片的当前块到第一参考图片的第一预测l0的第一运动向量(mv0),从当前图片到第一参考图片相距第一时间距离(τ0),并且确定从当前块到第二参考图片的第二预测l1的第二运动向量(mv1),从当前图片到第二参考图片相距第二时间距离(τ1)。
[0090]
编码器100然后使用这些值,通过最小化第一预测l0与第二预测l1之间的差来计算308编码单元(cu)的运动修正(v
x
,vy)。在示例实施例中,计算310第一预测l0的第一梯度值和以及第二预测l1的第二梯度值和在示例实施例中,然后可以通过引入附加的右移n
grad
来计算第一梯度值和第二梯度值,以降低第一梯度值和第二梯度值的内部比特宽度,如在等式(6)中所示。在示例实施例中,计算310第一梯度值和第二梯度值包括计算第一预测的第一预测位置和第二预测的第二预测位置中的每个位置的水平梯度和垂直梯度。参考等式(6),计算第一预测位置和第二预测位置中的每个位
置的水平梯度,并且在第一预测位置和第二预测位置中的每个位置计算垂直梯度。
[0091]
在示例实施例中,使用等式(1)来计算(v
x
,vy)的值,其中,将附加的比特移位n
adj
引入到对多个变量ψ
x
(i,j)、ψy(i,j)和θ(i,j)的计算中,如等式(7)中所示,以便计算s1、s2、s3、s5和s6的值。例如,使用等式(8)来计算s2和s6的值。在示例实施例中,通过引入第一限幅操作和第二限幅操作来计算s2和s6的值(如等式(8)中所示),其中,b2是用于控制s2的输出动态范围的参数,并且b6是用于控制s6的输出动态范围的参数。然后,可以基于第一预测l0和第二预测l1、运动修正(v
x
,vy)、第一梯度值和以及第二梯度值和来计算312cu的最终双向预测。在某些示例实施例中,然后可以基于运动修正通过沿着运动轨迹对第一预测l0和/或第二预测l1进行内插来计算cu的最终双向预测样点,如等式(5)中所示。在示例实施例中,计算第一梯度值与第二梯度值之和,其中,将附加的右移引入该求和以降低其比特宽度。计算第一预测样本l0与第二预测样本l1之间的差,其中,将附加的右移引入到第一预测样本l0和第二预测样本l1以降低该差的内部比特宽度。
[0092]
图5中示出的示例方法表示用于对视频数据进行编码的方法的示例,该方法包括:对第一参考图片和第二参考图片进行解码,第二参考图片不同于第一参考图片,其中,第一参考图片在当前图片之前显示,并且第二参考图片在当前图片之后显示;确定从当前图片的当前块到第一参考图片的第一参考块的第一运动向量(mv0);确定从当前块到第二参考图片的第二参考块的第二运动向量(mv1);以及根据双向光流(bdof)对当前块进行编码。
[0093]
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实施。如果在软件中实施,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质进行传输并且由基于硬件的处理单元执行。计算机可读介质可以包括对应于如数据存储介质等有形介质的计算机可读存储介质或有助于例如根据通信协议将计算机程序从一个地方转移到另一个地方的任何介质的通信介质。以此方式,计算机可读介质通常可以对应于(1)非暂态的有形计算机可读存储介质或者(2)如信号或载波等通信介质。数据存储介质可以是可以被一个或多个计算机或者一个或多个处理器访问以取得用于实施本技术中描述的实施方式的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
[0094]
进一步地,可以使用包括一个或多个电路的装置来实施上述方法,该一个或多个电路包括专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器、或其他电子部件。该装置可以将这些电路与用于执行上述方法的其他硬件或软件部件结合使用。上文公开的每个模块、子模块、单元、或子单元都可以使用这一个或多个电路来至少部分地实施。
[0095]
考虑在此公开的发明的说明书和实践,本发明的其他实施例对于本领域技术人员而言将是显而易见的。本技术旨在涵盖遵循其一般原则对发明进行的任何改变、使用或改编,包括在本领域中已知或惯用实践内与本公开内容的偏离。说明书和实施例旨在被认为仅是示例性的,本发明的真正范围和精神由所附权利要求指示。
[0096]
应该理解的是,本发明不限于上文描述和附图中所示的确切示例,并且可以在不
脱离其范围的情况下进行各种修改和变化。本发明的范围旨在仅由所附权利要求来限制。

技术特征:
1.一种视频编码方法,包括:将当前图片分区为多个块;确定用于所述多个块中的当前块的对应于第一参考图片的第一预测l0,其中,所述第一参考图片在所述当前图片之前显示;确定用于所述当前块的对应于第二参考图片的第二预测l1,其中,所述第二参考图片在所述当前图片之后显示;计算所述第一预测l0的第一预测位置的第一水平梯度和第一垂直梯度,以及所述第二预测l1的第二预测位置的第二水平梯度和第二垂直梯度,其中,在所述第一水平梯度、所述第一垂直梯度、所述第二水平梯度以及所述第二垂直梯度的计算中引入第一右移位值以分别降低所述第一水平梯度、所述第一垂直梯度、所述第二水平梯度以及所述第二垂直梯度的比特宽度;通过获取所述第一预测l0与所述第二预测l1之间的差来计算所述当前块中的每个子块的相应运动修正(v
x
,v
y
),其中,在所述第一预测l0与所述第二预测l1之间的差的计算中引入第二右移位值以降低所述差的比特宽度,所述第二右移位值被设置为4;以及基于所述第一预测l0、所述第二预测l1、相应的运动修正(v
x
,v
y
)、所述第一水平梯度、所述第一垂直梯度、所述第二水平梯度以及所述第二垂直梯度,计算所述当前块的最终双向预测。2.如权利要求1所述的方法,其中,所述第一右移位值被设置为6。3.如权利要求1所述的方法,其中,所述通过获取所述第一预测l0与所述第二预测l1之间的差来计算所述当前块中的每个子块的相应运动修正(v
x
,v
y
)包括:获取所述第一预测l0与所述第二预测l1之间的所述差;将所述第一水平梯度与所述第二水平梯度相加,以得到水平方向的和,并且将所述第一垂直梯度与所述第二垂直梯度相加,以得到垂直方向的和,其中,将第三右移位值引入所述水平方向的和以及所述垂直方向的和,以分别降低所述水平方向的和以及所述垂直方向的和的比特宽度;以及基于所述水平方向的和、所述垂直方向的和以及所述第一预测l0与所述第二预测l1之间的所述差,计算所述当前块中的每个子块的相应运动修正(v
x
,v
y
)。4.如权利要求3所述的方法,其中,所述第三右移位值被设置为1。5.如权利要求1所述的方法,其中,所述通过获取所述第一预测l0与所述第二预测l1之间的差来计算所述当前块中的每个子块的相应运动修正(v
x
,v
y
)包括:将计算得到的所述相应运动修正(v
x
,v
y
)中的v
x
和v
y
均限幅到[-th
bdof
,th
bdof
]范围内,其中,th
bdof
为运动修正阈值。6.如权利要求1所述的方法,其中,所述计算所述当前块的最终双向预测包括:进一步基于用于组合所述第一预测l0和所述第二预测l1的第四右移位值来计算所述当前块的最终双向预测。7.如权利要求6所述的方法,其中,所述第四右移位值被设置为基础右移值与附加右移值之差,所述基础右移值为15,所述附加右移值为当前所解码的所述视频的比特深度。8.一种计算设备,包括:一个或多个处理器;
非暂态存储器,所述非暂态存储器耦接到所述一个或多个处理器;以及多个程序,所述多个程序存储在所述非暂态存储器中,所述多个程序当由所述一个或多个处理器执行时使所述计算设备执行如权利要求1-7中任一项所述的方法以生成视频比特流。9.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储用于由具有一个或多个处理器的计算设备执行的多个程序,其中,所述多个程序在由所述一个或多个处理器执行时,使所述计算设备执行如权利要求1-7中任一项所述的方法以生成视频比特流并将所生成的视频比特流存储于所述非暂态计算机可读存储介质中。10.一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现权利要求1-7中任一项所述的方法以生成视频比特流。

技术总结
一种视频编码方法,包括:对第一参考图片和第二参考图片进行编码,该第二参考图片不同于该第一参考图片,其中,该第一参考图片在当前图片之前显示,并且该第二参考图片在当前图片之后显示。通过最小化第一预测L0与第二预测L1之间的差来计算编码单元(CU)的运动修正。计算第一预测L0的第一梯度值以及第二预测L1的第二梯度值。计算该CU的最终双向预测。还公开了一种相关联的装置和一种相关联的非暂态计算机可读存储介质。算机可读存储介质。算机可读存储介质。


技术研发人员:修晓宇 陈漪纹 王祥林
受保护的技术使用者:北京达佳互联信息技术有限公司
技术研发日:2020.01.06
技术公布日:2023/8/31
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐