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

仿射运动的双边匹配

文献发布时间:2024-04-18 19:58:30


仿射运动的双边匹配

相关申请的交叉引用

本申请要求于2022年9月23日提交的、题为“BILATERAL MATCHING WITH AFFINEMOTION(仿射运动的双边匹配)”的美国专利申请第17/951,900号的优先权权益,该美国专利申请要求于2022年4月11日提交的、题为“Bilateral Matching with Affine Motion(仿射运动的双边匹配)”的美国临时专利申请第63/329,835号的优先权权益,这些在先申请的公开内容通过引用整体并入本文中。

技术领域

本公开描述了总体上涉及与视频编解码相关的实施例。

背景技术

本文所提供的背景描述是出于总体上呈现本公开内容的目的。在背景技术部分以及本说明书的各个方面中所描述的目前已署名的发明人的工作所进行的程度,并不表明其在本申请提交时作为现有技术,且从未明示或暗示其被承认为本公开的现有技术。

未压缩的数字图像和/或视频可以包括一系列图像,每个图像的空间维度例如为1920×1080的亮度样本和相关的色度样本。该一系列图像可以具有固定的或可变的图像速率(非正式地,也称为帧率),例如每秒60幅图像或60Hz。未压缩的图像和/或视频具有特定的比特率要求。例如,每样本8位的1080p60 4:2:0的视频(60Hz帧率的1920×1080亮度样本分辨率)需要接近1.5Gbit/s的带宽。一小时的此类视频需要600GB以上的存储空间。

图像和/或视频编码和解码的一个目的可以是通过压缩来减少输入图像和/或视频信号中的冗余。压缩有助于减小上述带宽和/或存储空间需求,在一些情况下可以减少两个数量级或更多。尽管本文的描述使用视频编码/解码作为说明性示例,但相同的技术可以以类似的方式应用于图像编码/解码,而不脱离本公开的精神。可以采用无损压缩和有损压缩,以及它们的组合。无损压缩是指可以从已压缩的原始信号中重建原始信号的精确副本的技术。当使用有损压缩时,已重建的信号可能与原始信号不完全相同,但是原始信号和已重建的信号之间的失真足够小,以使得已重建的信号可用于预期的应用。在视频的情况下,有损压缩被广泛使用。可容忍的失真量取决于应用,例如某些消费者流媒体应用的用户相比电视广播应用的用户来说可以容忍更高的失真。可实现的压缩比可以反映:允许/可容忍的失真越高,压缩比就越高。

视频编码器和解码器可以利用来自几大类别的技术,例如,包括:运动补偿、变换处理、量化和熵编码。

视频编解码器技术可以包括称为帧内编码的技术。在帧内编码中,在不参考来自先前重建的参考图像的样本或其他数据的情况下表示样本值。在一些视频编解码器中,图像在空间上细分为样本块。当所有样本块都以帧内模式编码时,该图像可以是帧内图像。帧内图像及其派生物(例如独立的解码器刷新图像)可用于重置解码器状态,因此可用作已编码视频比特流和视频会话中的第一图像,或用作静止图像。可以使帧内块的样本进行变换,并且可以在熵编码之前对变换系数进行量化。帧内预测可以是一种使预变换域中的样本值最小化的技术。在一些情况下,变换后的DC值越小,AC系数越小,则在给定的量化步长大小下就需要越少的比特来表示熵编码后的块。

例如,MPEG-2代编码技术中使用的传统帧内编码不使用帧内预测。然而,一些较新的视频压缩技术包括尝试基于例如在数据块的编码和/或解码期间获得的周围样本数据和/或元数据来执行预测的技术。此类技术下文被称为“帧内预测”技术。应注意,至少在一些情况下,帧内预测仅使用来自正在重建的当前图像的参考数据,而不使用来自参考图像的参考数据。

帧内预测可以有许多不同的形式。当在给定的视频编码技术中可以使用一种以上这样的技术时,可以将使用中的特定技术编码为使用该特定技术的特定帧内预测模式。在一些情况下,帧内预测模式可以具有子模式和/或参数,其中,子模式和/或参数可以单独编码或包括在模式码字中,模式码字定义了所使用的预测模式。对于给定模式、子模式和/或参数组合使用哪种码字会对通过帧内预测获得的编码效率产生影响,因此用于将码字转换为比特流的熵编码技术也会对通过帧内预测获得的编码效率产生影响。

H.264引入了特定的帧内预测模式,并在H.265中对其进行了改进,并在诸如联合探索模型(Joint Exploration Model,JEM)、多功能视频编码(Versatile Video Coding,VVC)、基准集(Benchmark Set,BMS)等更新的编码技术中进一步进行了改进。可以使用已经可用的样本的相邻样本值来形成预测器块。根据方向将相邻样本的样本值复制到预测器块中。可以将使用的方向参考编码在比特流中,或者可以对其本身进行预测。

参考图1A,右下方描绘的是H.265中定义的33个可能的预测器方向(对应于35个帧内模式中的33个角度模式)中得知的9个预测器方向的子集。箭头收敛的点(101)表示正在被预测的样本。箭头表示预测样本的方向。例如,箭头(102)表示从与水平方向成45度角的右上方的一个或多个样本中预测样本(101)。类似地,箭头(103)表示从与水平方向成22.5度角的左下方的一个或多个样本中预测样本(101)。

仍参考图1A,在左上角描绘了4×4个样本的正方形块(104)(由粗体虚线表示)。正方形块(104)包含16个样本,每个样本使用“S”以及其在Y维度上的位置(例如,行索引)和其在X维度上的位置(例如,列索引)来标记。例如,样本S21是Y维度上(从顶部开始)的第二个样本,以及X维度上(从左侧开始)的第一个样本。类似地,样本S44在Y维度和X维度上都是块(104)中的第四个样本。由于块的大小为4×4个样本,因此S44位于右下角。图1A进一步示出了参考样本,它们遵循类似的编号方案。参考样本用R及其相对于块(104)的Y位置(例如,行索引)和X位置(列索引)来标记。在H.264和H.265二者中,预测样本均与正在重建的块相邻,因此,不需要使用负值。

帧内图片预测可以通过从发信号通知的预测方向所指示的相邻样本复制参考样本值来工作。例如,假设已编码视频比特流包括信令(signaling),该信令针对该块指示与箭头(102)一致的预测方向,即,样本是根据与水平方向成45度角的右上方的样本进行预测的。在这种情况下,从同一个参考样本R05预测样本S41、S32、S23和S14。然后,根据参考样本R08预测样本S44。

在一些情况下,尤其是当方向不能被45度整除时,可以例如通过插值来组合多个参考样本的值,以便计算参考样本。

随着视频编码技术的发展,可能的方向的数量已经增加。在H.264(2003年)中,可以表示九个不同的方向。这一数字在H.265(2013年)中增加到33个。目前,JEM/VVC/BMS可以支持多达65个方向。已经进行了实验以识别最可能的方向,并且熵编码中的某些技术被用于以少量比特来表示那些可能的方向,对一些较少可能的方向,接受一定的代价。此外,有时可以根据在已经解码的相邻块中使用的相邻方向来预测方向本身。

图1B示出了根据JEM的65个帧内预测方向的示意图(110),从而示出了预测方向的数量随着时间的推移而增加。

表示方向的帧内预测方向比特在已编码视频比特流中的映射可以随视频编码技术的不同而不同。例如,这种映射的范围可以从简单直接映射到码字,再到涉及最可能模式和类似技术的复杂自适应方案。然而,在大多数情况下,可能存在某些方向,与某些其他方向相比,在视频内容中统计出现的可能性较小。由于视频压缩的目标是减少冗余,在运作良好的视频编解码技术中,那些不太可能出现的方向相比可能出现的方向将由更多数量的比特表示。

可以使用具有运动补偿的帧间图片预测来执行图像和/或视频编码和解码。运动补偿可以是有损压缩技术,并且可以涉及下述技术:来自先前重建的图像或其部分(参考图像)的样本数据的块在沿由运动矢量(motion vector,此后称为MV)指示的方向上进行空间偏移之后,被用于预测新重建的图像或图像的一部分。在一些情况下,参考图像可以与当前正在重建的图像相同。MV可以具有X和Y两个维度,或者具有三个维度,第三个维度指示正在使用的参考图像(后者间接地可以是时间维度)。

在一些视频压缩技术中,可以根据其它MV来预测适用于样本数据的某一区域的MV,例如根据样本数据的、在空间上与正在重建的区域相邻的另一区域相关的、且解码顺序在该MV之前的那些MV来预测。这样做可以大大减少编码MV所需的数据量,从而消除冗余并增加压缩。MV预测可以有效地工作,例如,由于在对从相机获得的输入视频信号(称为自然视频)进行编码时,存在以下统计可能性:比适用单个MV的区域更大的区域在相似方向上移动,因此,在一些情况下,可以使用从相邻区域的MV推导出的相似运动矢量来预测该更大的区域。这使得为给定区域找到的MV与根据周围MV所预测的MV相似或相同,进而在熵编码之后,该给定区域的MV可以用比直接编码MV时使用的比特数更少的比特数来表示。在一些情况下,MV预测可以是从原始信号(即,样本流)中派生出的信号(即MV)的无损压缩的示例。在其他情况下,例如由于根据多个周围MV计算预测值时出现舍入误差,MV预测本身可以是有损的。

H.265/HEVC(ITU-T H.265建议书,“High Efficiency Video Coding(高效视频编解码)”,2016年12月)中描述了各种MV预测机制,在H.265提供的多种MV预测机制中,参照图2描述的是下文称为“空间合并”的技术。

参考图2,当前块(201)包括在运动搜索过程中已由编码器发现的样本,这些样本可以根据已产生空间偏移的相同大小的先前块来预测。可从与一个或多个参考图像相关联的元数据中推导出MV,而非对MV直接编码。例如,使用关联于A0、A1和B0、B1、B2(分别对应202到206)五个周围样本中的任一样本的MV,(按解码次序)从最近的参考图像的元数据中推导出该MV。在H.265中,MV预测可以使用来自相邻块也正在使用的相同参考图像的预测器。

发明内容

本公开的方面提供了用于视频编码/解码的方法和装置。在一些示例中,用于视频解码的设备包括处理电路。

根据本公开的一方面,提供了一种在视频解码器中执行的视频解码的方法。在所述方法中,从已编码视频比特流中解码出当前图像中的当前块的预测信息,其中,所述预测信息指示将基于仿射模型对所述当前块进行预测。通过仿射双边匹配推导出所述仿射模型的多个仿射运动参数,在仿射双边匹配中,可基于所述当前图像的第一参考图像和第二参考图像中的参考块推导出所述仿射模型。所述多个仿射运动参数可未包括在所述已编码视频比特流中。基于推导出的所述多个仿射运动参数确定所述仿射模型的控制点运动矢量。基于推导出的所述仿射模型重建所述当前块。

基于来自所述第一参考图像和所述第二参考图像中的所述参考块的多个候选参考块对中的参考块对,可推导出所述仿射模型的所述多个仿射运动参数。基于所述仿射模型的约束和成本值,所述参考块对包括所述第一参考图像中的第一参考块和所述第二参考图像中的第二参考块,所述约束与基于以下二者的时间距离比率相关联:(i)所述当前图像和所述第一参考图像之间的第一时间距离;以及(ii)所述当前图像和所述第二参考图像之间的第二时间距离。所述成本值基于所述第一参考块和所述第二参考块之间的差。

在一些实施例中,所述时间距离比率可等于权重因子与以下二者的比率的乘积:(i)所述当前图像和所述第一参考图像之间的所述第一时间距离;以及(ii)所述当前图像和所述第二参考图像之间的所述第二时间距离,其中,所述权重因子是正整数。

在一些实施例中,仿射模型的约束可以指示从所述当前块到所述第一参考块的第一仿射运动矢量的第一平移因子与所述时间距离比率成比例。仿射模型的约束可以指示从所述当前块到所述第二参考块的第二仿射运动矢量的第二平移因子与所述时间距离比率成比例。

在一些实施例中,所述仿射模型的所述约束还可以指示从所述当前块到所述第二参考块的第二仿射运动矢量的第二缩放因子等于从所述当前块到所述第一参考块的第一仿射运动矢量的第一缩放因子的所述时间距离比率次幂。

在一些实施例中,所述仿射模型的所述约束可以指示以下二者的比率等于所述时间距离比率:(i)从所述当前块到所述第一参考块的第一仿射运动矢量的第一增量缩放因子;以及(ii)从所述当前块到所述第二参考块的第二仿射运动矢量的第二增量缩放因子。所述第一增量缩放因子可以等于第一缩放因子减1,以及所述第二增量缩放因子可以等于第二缩放因子减1。

在一些实施例中,所述仿射模型的所述约束还可以指示以下二者的比率等于所述时间距离比率:(i)从所述当前块到所述第一参考块的第一仿射运动矢量的第一旋转角;以及(ii)从所述当前块到所述第二参考块的第二仿射运动矢量的第二旋转角。

为了确定所述参考块对,可以根据所述仿射模型的所述约束确定所述多个候选参考块对。所述多个候选参考块对中的每个候选参考块对可以包括所述第一参考图像中的相应候选参考块和所述第二参考图像中的相应候选参考块。可以确定所述多个候选参考块对中的每个候选参考块对的相应成本值。可以将所述参考块对确定为所述多个候选参考块对中的与最小成本值相关联的候选参考块对。

在一些实施例中,所述多个候选参考块对可以包括第一候选参考块对,所述第一候选参考块对可以包括所述第一参考图像中的第一候选参考块和所述第二参考图像中的第一候选参考块。为了确定所述参考块对,可以基于所述第一参考图像中的初始参考块,确定与所述当前块的所述第一参考图像相关联的初始预测值。可以基于所述第二参考图像中的初始参考块,确定与所述当前块的所述第二参考图像相关联的初始预测值。可以基于与所述当前块的所述第一参考图像相关联的所述初始预测值,确定与所述当前块的所述第一参考图像相关联的第一预测值,与所述当前块的所述第一参考图像相关联的所述第一预测值与所述第一参考图像中的所述第一候选参考块相关联。可以基于与所述当前块的所述第二参考图像相关联的所述初始预测值,确定与所述当前块的所述第二参考图像相关联的第一预测值,与所述当前块的所述第二参考图像相关联的所述第一预测值与所述第二参考图像中的所述第一候选参考块相关联。可以基于与所述当前块的所述第一参考图像相关联的所述第一预测值和与所述当前块的所述第二参考图像相关联的所述第一预测值之间的差来确定第一成本值。

在所述方法中,与所述当前块的所述第一参考图像相关联的所述初始预测值由以下之一指示:合并索引、高级运动矢量预测(advanced motion vector prediction,AMVP)预测值索引和仿射合并索引。

为了确定与当前块的第一参考图像相关联的第一预测值,可以确定与所述当前块的所述第一参考图像相关联的所述初始预测值的梯度值在第一方向上的第一分量。可以确定与所述当前块的所述第一参考图像相关联的所述初始预测值的梯度值在第二方向上的第二分量。所述第二方向可以垂直于所述第一方向。可以确定所述第一参考图像中的所述初始参考块与所述第一参考图像中的所述第一候选参考块之间的位移在所述第一方向上的第一分量。可以确定所述第一参考图像中的所述初始参考块与所述第一参考图像中的所述第一候选参考块之间的所述位移在所述第二方向上的第二分量。可以确定与所述当前块的所述第一参考图像相关联的所述第一预测值等于以下三者之和:(i)与所述当前块的所述第一参考图像相关联的所述初始预测值;(ii)所述初始预测值的所述梯度值的所述第一分量和所述位移的所述第一分量的乘积;以及(iii)所述初始预测值的所述梯度值的所述第二分量和所述位移的所述第二分量的乘积。

所述多个候选参考块对可以包括第N个候选参考块对,所述第N个候选参考块对可以包括所述第一参考图像中的第N个候选参考块和所述第二参考图像中的第N个候选参考块。为了确定所述参考块对,可以基于与所述当前块的所述第一参考图像中的第(N-1)个候选参考块相关联的第(N-1)个预测值,确定与所述当前块的所述第一参考图像中的所述第N个候选参考块相关联的第N个预测值。可以基于与所述当前块的所述第二参考图像中的第(N-1)个候选参考块相关联的第(N-1)个预测值,确定与所述当前块的所述第二参考图像中的所述第N个候选参考块相关联的第N个预测值。可以基于与所述当前块的所述第一参考图像相关联的所述第N个预测值和与所述当前块的所述第二参考图像相关联的所述第N个预测值之间的差来确定第N个成本值。

为了确定与所述当前块的所述第一参考图像相关联的所述第N个预测值,可以确定与所述当前块的所述第一参考图像相关联的所述第(N-1)个预测值的梯度值在第一方向上的第一分量。可以确定与所述当前块的所述第一参考图像相关联的所述第(N-1)个预测值的所述梯度值在第二方向上的第二分量。所述第二方向可以垂直于所述第一方向。可以确定位移的第一分量。所述位移的所述第一分量可以是所述第一参考图像中的所述第N个候选参考块与所述第一参考图像中的所述第(N-1)个候选参考块之间在第一方向上的差。可以确定位移的第二分量。所述位移的所述第二分量可以是所述第一参考图像中的所述第N个候选参考块与所述第一参考图像中的所述第(N-1)个候选参考块在第二方向上的差。可以确定基于所述当前块的所述第一参考图像的所述第N个预测值等于以下三者之和:(i)与所述当前块的所述第一参考图像相关联的所述第(N-1)个预测值;(ii)所述第(N-1)个预测值的所述梯度值的所述第一分量和所述位移的所述第一分量的乘积;以及(iii)所述第(N-1)个预测值的所述梯度值的所述第二分量和所述位移的所述第二分量的乘积。

在一些实施例中,基于以下之一,所述多个候选参考块对可以包括N个候选参考块对:(i)N等于上限值;以及(ii)所述第一参考图像中的所述第N个候选参考块与所述第一参考图像中的第(N+1)个候选参考块之间的位移为零。

在一些实施例中,所述当前块中的每个子块的增量运动矢量等于或小于阈值。

所述预测信息包括标志,所述标志指示是否基于使用所述仿射模型的所述仿射双边匹配对所述当前块进行预测。

在所述方法中,确定与所述当前块相关联的所述仿射模型的候选运动矢量列表。所述候选运动矢量列表包括与所述参考块对相关联的所述控制点运动矢量。

根据本公开的另一方面,提供了一种装置。所述装置包括处理电路。所述处理电路可以用于执行用于视频编码/解码的方法中的任一项方法。

本公开的方面还提供了一种存储指令的非暂时性计算机可读介质,所述指令在由用于视频解码的计算机执行时,使得所述计算机执行用于视频编码/解码的方法中的任一项方法。

附图说明

通过下文的详细描述和附图,所公开主题的进一步特征、性质和各种优点将变得更加明显,在附图中:

图1A是帧内预测模式的示例性子集的示意图。

图1B是示例性帧内预测方向的图示。

图2是一个示例中的当前块及其周围空间合并候选的示意图。

图3是根据一实施例的通信系统(300)的简化框图的示意图。

图4是根据一实施例的通信系统(400)的简化框图的示意图。

图5是根据一实施例的解码器的简化框图的示意图。

图6是根据一实施例的编码器的简化框图的示意图。

图7示出了根据另一实施例的编码器的框图。

图8示出了根据另一实施例的解码器的框图。

图9A示出了根据另一实施例的4参数仿射模型的示意图。

图9B示出了根据另一实施例的6参数仿射模型的示意图。

图10示出了根据另一实施例的与块中的子块相关联的仿射运动矢量场的示意图。

图11示出了根据另一实施例的空间合并候选的示例性位置的示意图。

图12示出了根据另一实施例的控制点运动矢量继承的示意图。

图13示出了根据另一实施例的用于构建仿射合并模式的候选的位置的示意图。

图14示出了根据另一实施例的利用光流的预测修正(prediction refinementwith optical flow,PROF)的示意图。

图15示出了具有另一实施例的仿射运动估计过程的示意图。

图16示出了根据另一实施例的仿射运动估计搜索的流程图。

图17示出了根据另一实施例的用于双向光流(bi-directional optical flow,BDOF)的扩展编码单元(coding unit,CU)区域的示意图。

图18示出了根据另一实施例的解码侧运动矢量修正的示意图。

图19示出了概述根据本公开的一些实施例的示例性解码过程的流程图。

图20示出了概述根据本公开的一些实施例的示例性编码过程的流程图。

图21是根据一实施例的计算机系统的示意图。

具体实施例

图3示出了通信系统(300)的示例性框图。通信系统(300)包括多个终端设备,该终端设备能够经由例如网络(350)彼此通信。例如,通信系统(300)包括经由网络(350)互连的第一对终端设备(310)和(320)。在图3的示例中,第一对终端设备(310)和(320)执行单向数据传输。例如,终端设备(310)可以对视频数据(例如,由终端设备(310)采集的视频图像流)进行编码,以经由网络(350)传输到另一个终端设备(320)。已编码的视频数据可以以一个或多个已编码视频比特流的形式传输。终端设备(320)可以从网络(350)接收已编码视频数据,对已编码视频数据进行解码以恢复视频图像,并根据恢复的视频数据显示视频图像。单向数据传输在媒体服务应用等中可能是常见的。

在另一示例中,通信系统(300)包括第二对终端设备(330)和终端设备(340),用于例如在视频会议期间执行已编码视频数据的双向传输。对于双向数据传输,在一个示例中,终端设备(330)和终端设备(340)中的每个终端设备可以对视频数据(例如,由终端设备采集的视频图像流)进行编码,以经由网络(350)传输到终端设备(330)和终端设备(340)中的另一个终端设备。终端设备(330)和终端设备(340)中的每个终端设备还可以接收由终端设备(330)和终端设备(340)中的另一个终端设备发送的已编码视频数据,并且可以对已编码视频数据进行解码以恢复视频图像,并且可以根据恢复的视频数据在可访问的显示设备上显示视频图像。

在图3的示例中,终端设备(310)、终端设备(320)、终端设备(330)和终端设备(340)分别示出为服务器、个人计算机和智能电话,但是本公开的原理可以不限于此。本公开的实施例适用于膝上型计算机、平板计算机、媒体播放器和/或专用视频会议设备。网络(350)表示在终端设备(310)、终端设备(320)、终端设备(330)和终端设备(340)之间传送已编码视频数据的任意数量的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(350)可以在电路交换信道和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或因特网。出于本申请讨论的目的,除非在下文中有所解释,否则网络(350)的架构和拓扑对于本公开的操作来说可能是无关紧要的。

作为所公开主题的应用的示例的,图4示出了流式传输环境中的视频编码器和视频解码器。所公开的主题可以同等地适用于其他支持视频的应用,包括例如视频会议、数字电视、流媒体服务、在包括CD、DVD、记忆棒等的数字媒体上存储压缩视频等。

流式传输系统可以包括采集子系统(413),该采集子系统可以包括例如数码相机的视频源(401),该视频源用于创建例如未压缩的视频图像流(402)。在一个示例中,视频图像流(402)包括由数码相机拍摄的样本。相较于已编码的视频数据(404)(或已编码视频比特流),视频图像流(402)被描绘为粗线以强调高数据量且可由电子设备(420)处理,该电子设备包括耦接到视频源(401)的视频编码器(403)。视频编码器(403)可以包括硬件、软件或软硬件组合,以实现或实施如下文更详细描述的所公开主题的方面。相较于视频图像流(402),已编码的视频数据(404)(或已编码视频比特流(404))被描绘为细线以强调较低数据量且可存储在流式传输服务器(405)上以供将来使用。一个或多个流式传输客户端子系统,例如图4中的客户端子系统(406)和客户端子系统(408)可以访问流式传输服务器(405)以检索已编码的视频数据(404)的副本(407)和(409)。客户端子系统(406)可以包括例如电子设备(430)中的视频解码器(410)。视频解码器(410)对已编码的视频数据的传入副本(407)进行解码,并创建可在显示器(412)(例如,显示屏)或其他渲染设备(未示出)上渲染的输出视频图像流(411)。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频数据(404)、视频数据(407)和视频数据(409)(例如视频比特流)进行编码。这些标准的示例包括ITU-T H.265建议书。在一个示例中,正在开发的视频编码标准非正式地称为多功能视频编码(Versatile Video Coding,VVC)。所公开的主题可以在VVC的上下文中使用。

应注意,电子设备(420)和电子设备(430)可以包括其他组件(未示出)。例如,电子设备(420)可以包括视频解码器(未示出),并且电子设备(430)也可以包括视频编码器(未示出)。

图5示出了视频解码器(510)的示例性框图。视频解码器(510)可以包括在电子设备(530)中。电子设备(530)可以包括接收器(531)(例如,接收电路)。可以使用视频解码器(510)代替在图4的示例中的视频解码器(410)。

接收器(531)可以接收将由视频解码器(510)解码的一个或多个已编码视频序列。在一个实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其他已编码视频序列的解码。可以从信道(501)接收已编码视频序列,该信道可以是通向存储已编码的视频数据的存储设备的硬件/软件链路。接收器(531)可以接收已编码的视频数据和其他数据,例如,可转发到它们各自的使用实体(未标示)的已编码音频数据和/或辅助数据流。接收器(531)可以将已编码视频序列与其它数据分离。为了防止网络抖动,缓冲存储器(515)可耦接在接收器(531)与熵解码器/解析器(520)(此后称为“解析器(520)”)之间。在某些应用中,缓冲存储器(515)是视频解码器(510)的一部分。在其他情况下,该缓冲存储器(515)可设置在视频解码器(510)外部。在其他情况下,视频解码器(510)的外部设置缓冲存储器(未标示)以例如防止网络抖动,且在视频解码器(510)的内部可配置另一缓冲存储器(515)以例如处理播出定时。而当接收器(531)从具有足够带宽和可控性的存储/转发设备或从等时同步网络接收数据时,也可能不需要配置缓冲存储器(515),或可以将该缓冲存储器做得较小。为了在例如互联网等尽力而为服务网络上使用,也可能需要缓冲存储器(515),该缓冲存储器可相对较大,可有利地具有自适应大小,且可以至少部分地在操作系统或视频解码器(510)外部的类似元件(未示出)中实现。

视频解码器(510)可以包括解析器(520)以根据已编码视频序列重建符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息,以及用于控制诸如渲染设备(512)(例如显示屏)等渲染设备的潜在信息,所述渲染设备不是电子设备(530)的整体部分,但是可以耦接到电子设备(530),如图5所示。用于(一个或多个)渲染设备的控制信息可以是辅助增强信息(Supplemental Enhancement Information,SEI)消息或视频可用性信息(Video Usability Information,VUI)的参数集片段(未标示)。解析器(520)可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可以根据视频编码技术或标准进行,并且可以遵循各种原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器(520)可基于对应于群组的至少一个参数,从已编码视频序列中提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可以包括图像群组(Group of Pictures,GOP)、图像、图块(tiles)、切片(slices)、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。解析器(520)还可以从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等。

解析器(520)可以对从缓冲存储器(515)接收的视频序列执行熵解码/解析操作,从而创建符号(521)。

取决于已编码视频图像或一部分已编码视频图像(例如:帧间图像和帧内图像、帧间块和帧内块)的类型以及其它因素,符号(521)的重建可以涉及多个不同的单元。涉及哪些单元以及涉及方式可由解析器(520)从已编码视频序列解析的子群控制信息来控制。为了简洁起见,未描述解析器(520)与下文的多个单元之间的此类子群控制信息流。

除已经提及的功能块以外,视频解码器(510)可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实现方式中,这些单元中的许多单元彼此密切交互,并且至少可以部分地相互集成。然而,为了描述所公开的主题,在概念上细分为以下功能单元是合适的。

第一单元是缩放器/逆变换单元(551)。缩放器/逆变换单元(551)从解析器(520)接收作为(一个或多个)符号(521)的量化变换系数以及控制信息,包括指示使用哪种变换方式、块大小、量化因子、量化缩放矩阵等的信息。缩放器/逆变换单元(551)可以输出包括样本值的块,该样本值可输入到聚合器(555)中。

在一些情况下,缩放器/逆变换单元(551)的输出样本可属于帧内编码块。帧内编码块不使用来自先前重建的图像的预测信息,但是可以使用来自当前图像的先前重建部分的预测信息的块。此类预测信息可以由帧内图像预测单元(552)提供。在一些情况下,帧内图像预测单元(552)使用从当前图像缓冲器(558)提取的周围已经重建的信息,生成与正在重建的块具有相同大小和形状的块。例如,当前图像缓冲器(558)缓冲部分重建的当前图像和/或完全重建的当前图像。在一些情况下,聚合器(555)可基于每个样本,将帧内预测单元(552)生成的预测信息添加到由缩放器/逆变换单元(551)提供的输出样本信息中。

在其它情况下,缩放器/逆变换单元(551)的输出样本可属于帧间编码和潜在运动补偿的块。在此情况下,运动补偿预测单元(553)可以访问参考图像存储器(557)以提取用于预测的样本。在根据属于块的符号(521)对所提取的样本进行运动补偿之后,这些样本可以由聚合器(555)添加到缩放器/逆变换单元(551)的输出(在这种情况下称为残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(553)从参考图像存储器(557)内的地址获取预测样本可受到运动矢量控制,且该运动矢量以该符号(521)的形式而供运动补偿预测单元(553)使用,该符号(521)可以具有例如X、Y分量和参考图像分量。运动补偿还可以包括当使用子样本精确运动矢量时,从参考图像存储器(557)提取的样本值的插值、运动矢量预测机制等等。

聚合器(555)的输出样本可以在环路滤波器单元(556)中被各种环路滤波技术采用。视频压缩技术可以包括环路内滤波器技术,该环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频比特流)中的参数,且该参数作为来自解析器(520)的符号(521)可用于环路滤波器单元(556)。视频压缩还可以响应于在解码已编码图像或已编码视频序列的先前(按解码顺序)部分期间获得的元信息,以及响应于先前重建和循环滤波的样本值。

环路滤波器单元(556)的输出可以是样本流,该样本流可以输出到渲染设备(512)并且存储在参考图像存储器(557)中,以用于后续的图像间预测。

一旦完全重建,某些已编码图像就可以用作参考图像以用于将来的预测。例如,一旦对应于当前图像的已编码图像被完全重建,并且已编码图像(例如由解析器(520))被识别为参考图像,则当前图像缓冲器(558)可以成为参考图像存储器(557)的一部分,且可在开始重建下一个已编码图像之前重新分配新的当前图像缓冲器。

视频解码器(510)可根据例如ITU-T H.265建议书的标准或预定视频压缩技术来执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体来说,配置文件可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为在该配置文件下可供使用的唯一工具。为了符合标准,还要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图像大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图像大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(HypotheticalReference Decoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。

在一个实施例中,接收器(531)可连同已编码视频一起接收附加(冗余)数据。该附加数据可以被包括作为(一个或多个)已编码视频序列的一部分。该附加数据可由视频解码器(510)用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余切片、冗余图像、前向纠错码等形式。

图6示出了视频编码器(603)的示例性框图。视频编码器(603)设置在电子设备(620)中。电子设备(620)包括传输器(640)(例如,传输电路)。视频编码器(603)可用于代替图4示例中的视频编码器(403)。

视频编码器(603)可以从视频源(601)(并非图6示例中的电子设备(620)的一部分)接收视频样本,该视频源可以采集将由视频编码器(603)编码的视频图像。在另一示例中,视频源(601)是电子设备(620)的一部分。

视频源(601)可提供将由视频编码器(603)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可具有任何合适位深度(例如:8位、10位、12位……)、任何色彩空间(例如,BT.601YCrCB、RGB……)和任何合适的采样结构(例如,Y CrCb 4:2:0、Y CrCb4:4:4)。在媒体服务系统中,视频源(601)可以是存储先前已准备的视频的存储设备。在视频会议系统中,视频源(601)可以是采集本地图片信息作为视频序列的相机。可将视频数据提供为多个单独的图像,当按顺序观看时,这些图像被赋予运动。图像自身可构建为空间像素阵列,其中取决于所用的采样结构、色彩空间等,每个像素可包括一个或多个样本。本领域技术人员可以容易地理解像素和样本之间的关系。下文侧重于描述样本。

根据一个实施例,视频编码器(603)可以实时地或在所需的任何其他时间约束下,将源视频序列的图像编码并压缩成已编码视频序列(643)。实施适当的编码速度是控制器(650)的一个功能。在一些实施例中,控制器(650)控制如下所述的其他功能单元,并且在功能上耦接到这些功能单元。为了简洁起见,图中未标示耦接。由控制器(650)设置的参数可以包括速率控制相关参数(图像跳过、量化器、速率失真优化技术的λ值……)、图像大小、图像群组(GOP)布局、最大运动矢量搜索范围等。控制器(650)可用于具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(603)。

在一些实施例中,视频编码器(603)用于在编码环路中进行操作。作为简单的描述,在一个示例中,编码环路可以包括源编码器(630)(例如,负责基于待编码的输入图像和(一个或多个)参考图像来创建符号,例如符号流)和嵌入于视频编码器(603)中的(本地)解码器(633)。解码器(633)以与(远程)解码器也将创建的方式类似的方式重建符号以创建样本数据。将重建的样本流(样本数据)输入到参考图像存储器(634)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图像存储器(634)中的内容在本地编码器与远程编码器之间也是按比特精确对应的。换句话说,编码器的预测部分“看到”的参考图像样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图像同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)也被用于一些现有技术中。

“本地”解码器(633)的操作可以与例如已在上文结合图5详细描述的视频解码器(510)的“远程”解码器的操作相同。然而,另外简要参考图5,当符号可用并且熵编码器(645)和解析器(520)能够无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器(515)和解析器(520)在内的视频解码器(510)的熵解码部分可能无法完全在本地解码器(633)中实施。

在一个实施例中,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以相同或基本上相同的功能形式存在于对应的编码器中。因此,所公开的主题侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。下文提供了在某些领域的更详细的描述。

在操作期间,在一些示例中,源编码器(630)可以执行运动补偿预测编码。参考来自视频序列中被指定为“参考图像”的一个或多个先前已编码图像,该运动补偿预测编码对输入图像进行预测性编码。以此方式,编码引擎(632)对输入图像的像素块与(一个或多个)参考图像的像素块之间的差进行编码,参考图像可被选作该输入图像的(一个或多个)预测参考。

本地视频解码器(633)可基于由源编码器(630)创建的符号,对可指定为参考图像的图像的已编码视频数据进行解码。编码引擎(632)的操作可为有损过程。当已编码视频数据可在视频解码器(图6中未示出)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(633)复制解码过程,该解码过程可由视频解码器对参考图像执行,且可使重建的参考图像存储在参考图像高速存储器(634)中。以此方式,视频编码器(603)可在本地存储已重建的参考图像的副本,该副本与将由远端(远程)视频解码器获得的已重建参考图像具有共同内容(不存在传输误差)。

预测器(635)可以执行对编码引擎(632)的预测搜索。即,对于要编码的新图像,预测器(635)可在参考图像存储器(634)中搜索可作为该新图像的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图像运动矢量、块形状等。预测器(635)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,如由预测器(635)获得的搜索结果所确定的那样,输入图像可具有从参考图像存储器(634)中存储的多个参考图像取得的预测参考。

控制器(650)可以管理源编码器(630)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。

可在熵编码器(645)中对所有上述功能单元的输出进行熵编码。熵编码器(645)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将各种功能单元生成的符号转换成已编码视频序列。

传输器(640)可缓冲由熵编码器(645)创建的已编码视频序列,从而为通过通信信道(660)进行传输做准备,该通信信道可以是通向将存储已编码的视频数据的存储设备的硬件/软件链路。传输器(640)可将来自视频编码器(603)的已编码视频数据与待传输的其它数据合并,该其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。

控制器(650)可管理视频编码器(603)的操作。在编码期间,控制器(650)可以为每个已编码图像分配某一已编码图像类型,但这可能影响可应用于相应的图像的编码技术。例如,通常可将图像分配为以下任一种图像类型:

帧内图像(I图像),其可以是不将序列中的任何其它图像用作预测源就可被编码和解码的图像。一些视频编解码器容许不同类型的帧内图像,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图像。本领域的技术人员了解I图像的变体及其相应的应用和特征。

预测性图像(P图像),其可以是可使用帧内预测或帧间预测进行编码和解码的图像,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。

双向预测性图像(B图像),其可以是可使用帧内预测或帧间预测进行编码和解码的图像,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图像可使用多于两个参考图像和相关联元数据以用于重建单个块。

源图像通常可在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图像的编码分配来确定该其它块。例如,I图像的块可进行非预测编码,或该块可参考同一图像的已经编码的块来进行预测编码(空间预测或帧内预测)。P图像的像素块可参考一个先前编码的参考图像通过空间预测或通过时域预测进行预测编码。B图像的块可参考一个或两个先前编码的参考图像通过空间预测或通过时域预测进行预测编码。

视频编码器(603)可根据例如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(603)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。

在一个实施例中,传输器(640)可在传输已编码的视频时传输附加数据。源编码器(630)可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、冗余图像和切片等其它形式的冗余数据、SEI消息、VUI参数集片段等。

采集到的视频可作为呈时间序列的多个源图像(视频图像)。帧内图像预测(常常简化为帧内预测)利用给定图像中的空间相关性,而帧间图像预测则利用图像之间的(时间或其它)相关性。在一个示例中,将正在编码/解码的特定图像划分成块,正在编码/解码的特定图像被称作当前图像。在当前图像中的块类似于视频中先前已编码且仍被缓冲的参考图像中的参考块时,可通过称作运动矢量的矢量对当前图像中的块进行编码。该运动矢量指向参考图像中的参考块,且在使用多个参考图像的情况下,该运动矢量可具有识别参考图像的第三维度。

在一些实施例中,双向预测技术可用于帧间图像预测中。根据双向预测技术,使用两个参考图像,例如按解码次序都在视频中的当前图像之前(但按显示次序可能分别是过去和将来)第一参考图像和第二参考图像。可通过指向第一参考图像中的第一参考块的第一运动矢量和指向第二参考图像中的第二参考块的第二运动矢量对当前图像中的块进行编码。可通过第一参考块和第二参考块的组合来预测该块。

此外,合并模式技术可用于帧间图像预测中以改善编码效率。

根据本公开的一些实施例,帧间图像预测和帧内图像预测等预测的执行以块为单位。例如,根据HEVC标准,将视频图像序列中的图像划分成编码树单元(coding tree unit,CTU)以用于压缩,图像中的CTU可具有相同大小,例如64×64像素、32×32像素或16×16像素。一般来说,CTU包括三个编码树块(coding tree block,CTB),该三个编码树块是一个亮度CTB和两个色度CTB。还可将每个CTU递归地以四叉树分割为一个或多个编码单元(codingunit,CU)。例如,可将64×64像素的CTU分割为一个64×64像素的CU,或4个32×32像素的CU,或者16个16×16像素的CU。在一个示例中,分析每个CU以确定用于CU的预测类型,例如帧间预测类型或帧内预测类型。取决于时间和/或空间可预测性,可将CU分割为一个或多个预测单元(prediction unit,PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在一个实施例中,以预测块为单位执行编解码(编码/解码)中的预测操作。以亮度预测块作为预测块的示例,预测块包括针对像素值(例如,亮度值)的矩阵,例如8×8像素、16×16像素、8×16像素、16×8像素等等。

图7示出了视频编码器(703)的示例性示图。视频编码器(703)用于接收视频图像序列中的当前视频图像内的样本值的处理块(例如预测块),且将该处理块编码到作为已编码视频序列的一部分的已编码图像中。在一个示例中,视频编码器(703)用于代替图4示例中的视频编码器(403)。

在HEVC示例中,视频编码器(703)接收用于处理块的样本值的矩阵,该处理块为例如8×8个样本的预测块等。视频编码器(703)使用例如率失真优化(rate-distortionoptimization,RDO)来确定是否使用帧内模式、帧间模式还是双向预测模式来对处理块进行最佳编码。当要以帧内模式编码处理块时,视频编码器(703)可以使用帧内预测技术以将处理块编码到已编码图像中;并且当要以帧间模式或双向预测模式编码处理块时,视频编码器(703)可以分别使用帧间预测或双向预测技术将处理块编码到已编码图像中。在某些视频编码技术中,合并模式可以是帧间预测子模式,其中在不借助预测器外部的已编码运动矢量分量的情况下,从一个或多个运动矢量预测器推导出运动矢量。在某些其它视频编码技术中,可以存在适用于主题块的运动矢量分量。在一个示例中,视频编码器(703)包括其它组件,例如用于确定处理块的模式的模式决策模块(未示出)。

在图7的示例中,视频编码器(703)包括如图7所示的、耦接在一起的帧间编码器(730)、帧内编码器(722)、残差计算器(723)、开关(726)、残差编码器(724)、通用控制器(721)和熵编码器(725)。

帧间编码器(730)用于接收当前块(例如,处理块)的样本,比较该块与参考图像中的一个或多个参考块(例如,先前图像和后来图像中的块)、生成帧间预测信息(例如根据帧间编码技术的冗余信息描述、运动矢量、合并模式信息)、以及基于帧间预测信息使用任何合适的技术计算帧间预测结果(例如已预测块)。在一些示例中,参考图像是基于已编码的视频信息解码的已解码参考图像。

帧内编码器(722)用于接收当前块(例如,处理块)的样本,在一些情况下比较该块与同一图像中已编码的块、在变换之后生成量化系数、以及在一些情况下还(例如根据一个或多个帧内编码技术的帧内预测方向信息)生成帧内预测信息。在一个示例中,帧内编码器(722)还基于帧内预测信息和同一图像中的参考块来计算帧内预测结果(例如,已预测块)。

通用控制器(721)用于确定通用控制数据,且基于该通用控制数据控制视频编码器(703)的其它组件。在一个示例中,通用控制器(721)确定块的模式,且基于该模式将控制信号提供到开关(726)。例如,当该模式是帧内模式时,通用控制器(721)控制开关(726)以选择供残差计算器(723)使用的帧内模式结果,且控制熵编码器(725)以选择帧内预测信息且将该帧内预测信息包括在比特流中;以及当该模式是帧间模式时,通用控制器(721)控制开关(726)以选择供残差计算器(723)使用的帧间预测结果,且控制熵编码器(725)以选择帧间预测信息且将该帧间预测信息包括在比特流中。

残差计算器(723)用于计算所接收的块与选自帧内编码器(722)或帧间编码器(730)的预测结果之间的差(残差数据)。残差编码器(724)用于基于残差数据操作,以对残差数据进行编码以生成变换系数。在一个示例中,残差编码器(724)用于将残差数据从空间域转换到频域,并生成变换系数。变换系数接着经由量化处理以获得量化的变换系数。在各种实施例中,视频编码器(703)还包括残差解码器(728)。残差解码器(728)用于执行逆变换,并生成已解码残差数据。已解码残差数据可适当地由帧内编码器(722)和帧间编码器(730)使用。例如,帧间编码器(730)可基于已解码残差数据和帧间预测信息生成已解码块,且帧内编码器(722)可基于已解码残差数据和帧内预测信息生成已解码块。适当处理已解码块以生成已解码图像,且在一些示例中,该已解码图像可在存储器电路(未示出)中缓冲并用作参考图像。

熵编码器(725)用于将比特流格式化以包括已编码块。熵编码器(725)用于根据诸如HEVC标准之类的适当标准在比特流中包括各种信息。在一个示例中,熵编码器(725)用于在比特流中包括通用控制数据、所选择的预测信息(例如,帧内预测信息或帧间预测信息)、残差信息和其他合适的信息。应注意,根据所公开的主题,当以帧间模式或双向预测模式的合并子模式对块进行编码时,不存在残差信息。

图8示出了视频解码器(810)的示例性图。视频解码器(810)用于接收作为已编码视频序列的一部分的已编码图像,且对该已编码图像进行解码以生成重建的图像。在一个示例中,视频解码器(810)用于代替图4示例中的视频解码器(410)。

在图8的示例中,视频解码器(810)包括如图8所示的、耦接到一起的熵解码器(871)、帧间解码器(880)、残差解码器(873)、重建模块(874)和帧内解码器(872)。

熵解码器(871)可用于根据已编码图像来重建某些符号,这些符号表示构成该已编码图像的语法元素。此类符号可包括例如用于对该块进行编码的模式(例如帧内模式、帧间模式、双向预测模式、后两者的合并子模式或另一子模式)、可分别识别供帧内解码器(872)或帧间解码器(880)用以进行预测的某些样本或元数据的预测信息(诸如,例如帧内预测信息或帧间预测信息)。符号还可以包括呈例如量化的变换系数形式的残差信息等等。在一个示例中,当预测模式是帧间或双向预测模式时,将帧间预测信息提供到帧间解码器(880);以及当预测类型是帧内预测类型时,将帧内预测信息提供到帧内解码器(872)。残差信息可经由逆量化并提供到残差解码器(873)。

帧间解码器(880)用于接收帧间预测信息,且基于该帧间预测信息生成帧间预测结果。

帧内解码器(872)用于接收帧内预测信息,且基于该帧内预测信息生成预测结果。

残差解码器(873)用于执行逆量化以提取解量化的变换系数,且处理该解量化的变换系数,以将残差信息从频域转换到空间域。残差解码器(873)还可以需要某些控制信息(用以包括量化器参数(Quantizer Parameter,QP)),并且该信息可以由熵解码器(871)提供(未标示数据路径,因为这仅仅是低量控制信息)。

重建模块(874)用于在空间域中组合由残差解码器(873)输出的残差信息和预测结果(可由帧间预测模块或帧内预测模块输出,视情况而定)以形成重建的块,该重建的块可以是重建的图像的一部分,该重建的图像继而可以是重建的视频的一部分。应注意,可执行解块操作等其它合适的操作来改善视觉质量。

应注意,可使用任何合适的技术来实施视频编码器(403)、视频编码器(603)和视频编码器(703)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。在一个实施例中,可使用一个或多个集成电路来实施视频编码器(403)、视频编码器(603)和视频编码器(703)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。在另一实施例中,可使用执行软件指令的一个或多个处理器来实施视频编码器(403)、视频编码器(603)和视频编码器(603)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。

本公开包括与仿射编码模式相关的实施例,其中仿射编码模式的仿射运动参数可以基于双边匹配而不是信令来推导出。

ITU-T(International Telegraph Union-Telecommunication StandardizationSector,国际电信联盟电信标准化部门)的VCEG(Video Coding Experts Group,视频编码专家组)(Q6/16)和ISO(International Organization for Standardization,国际标准化组织)/IEC(International Electrotechnical Commission,国际电工委员会)的MPEG(Moving Picture Expert Group,运动图像编码专家组)(JTC 1/SC 29/WG 11)(联合技术委员会1的第29分委员会的第11工作组)分别于2013年(版本1)、2014年(版本2)、2015年(版本3)和2016年(版本4)发布了H.265/HEVC(高效视频编解码)标准。在2015年,这两个标准组织联合成立了JVET(联合视频探索小组),以探索开发超越HEVC的下一个视频编码标准的潜力。在2017年10月,这两个标准组织发布了关于超越HEVC能力的视频压缩提案的联合征集(Call for Proposals on Video Compression with Capability beyond HEVC,CfP)。截至2018年2月15日,分别提交了22份关于标准动态范围(Standard Dynamic Range,SDR)的CfP回复、12份关于高动态范围(High Dynamic Range,HDR)的CfP回复和12份关于360个视频类别的CfP回复。在2018年4月,在第122次MPEG/第10届JVET会议上对所有收到的CfP回复都进行了评估。这次会议的结果是,JVET正式启动了超越HEVC的下一代视频编码标准化过程。新标准被命名为多功能视频编码(VVC),JVET被更名为联合视频专家小组。在2020年,ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)发布了VVC视频编码标准(版本1)。

在帧间预测中,对于每个帧间预测编码单元(CU),运动参数需要用于例如用于帧间预测样本生成的VVC的编码特征。运动参数可以包括运动矢量、参考图像索引、参考图像列表使用索引和/或附加信息。可以以显式或隐式方式通过发信号通知运动参数。当采用跳过模式对CU进行编码时,CU可以与一个PU相关联,并且可以不需要显著的残差系数、已编码的运动矢量增量(delta)和/或参考图像索引。当采用合并模式对CU进行编码时,可以从相邻的CU获得CU的运动参数。相邻的CU可以包括空间候选和时间候选,以及诸如在VVC中引入的附加调度(或附加候选)。合并模式可以应用于任何帧间预测的CU,而不仅仅是用于跳过模式。合并模式的替代方案是运动参数的显式传输,其中,可以通过每个CU显式地通过发信号通知运动矢量、每个参考图像列表的对应参考图像索引、参考图像列表使用标志、和/或其他需要的信息。

在VVC中,VVC测试模型(VVC Test model,VTM)参考软件可以包括许多新的和改进的帧间预测编码工具,这些工具可以包括以下一个或多个:

(1)扩展的合并预测

(2)合并运动矢量差(Merge Motion Vector Difference,MMVD)

(3)具有对称运动矢量差(MVD)信令的高级运动矢量预测(Advanced MotionVector Prediction,AMVP)模式

(4)仿射运动补偿预测

(5)基于子块的时间运动矢量预测(Subblock-based Temporal Motion VectorPrediction,SbTMVP)

(6)自适应运动矢量分辨率(Adaptive Motion Vector Resolution,AMVR)

(7)运动场存储:1/16亮度样本MV存储和8×8运动场压缩

(8)基于CU级别权重的双向预测(Bi-prediction with CU-level Weights,BCW)

(9)双向光流(Bi-directional Optical Flow,BDOF)

(10)解码器侧运动矢量修正(Decoder-side Motion Vector Refinement,DMVR)

(11)帧间和帧内联合预测(Combined Inter and Intra Prediction,CIIP)

(12)几何划分模式(Geometric Partitioning Mode,GPM)

在HEVC中,采用平移运动模型进行运动补偿预测(Motion CompensationPrediction,MCP)。而在现实世界中,可以存在多种运动,如放大/缩小、旋转、透视运动和其他不规则运动。例如在VTM中,可以应用基于块的仿射变换运动补偿预测。图9A示出了由两个控制点的运动信息(4参数)描述的块(902)的仿射运动场。图9B示出了由三个控制点运动矢量(6参数)描述的块(904)的仿射运动场。

如图9A所示,对于4参数仿射运动模型,可以在如下等式(1)中推导出块(902)中的样本位置(x,y)处的运动矢量:

其中,mv

如图9B所示,对于6参数仿射运动模型,可以在如下等式(3)中推导出块(904)中的样本位置(x,y)处的运动矢量:

还可以在如下等式(4)中描述6参数仿射运动模型:

如等式(1)和等式(3)所示,(mv

如图10所示,为了简化运动补偿预测,可以应用基于块的仿射变换预测。为了推导出每个4×4亮度子块的运动矢量,可以根据等式(1)至等式(4)计算当前块(1000)中每个子块(例如,(1004))的中心样本(例如,(1002))的运动矢量,并将其四舍五入到1/16分数精度。然后,可以应用运动补偿插值滤波器,以利用推导出的运动矢量生成每个子块的预测。色度分量的子块大小也可以设置为4×4。可以将4×4色度子块的MV计算为四个对应的4×4亮度子块的MV的平均值。

在仿射合并预测中,可以将仿射合并(AF_MERGE)模式应用于宽度和高度都大于或等于8的CU。可以基于空间相邻CU的运动信息来生成当前CU的控制点运动矢量(ControlPoint Motion Vector,CPMV)。最多可以有五个控制点运动矢量预测值(Control PointMotion Vector Predictor,CPMVP)候选应用于仿射合并预测,并且通过发信号通知索引,以指示五个CPMVP候选中的哪一个可用于当前CU。在仿射合并预测中,三种类型的CPMV候选可用于形成仿射合并候选列表:(1)从相邻CU的CPMV推断出的继承的仿射合并候选,(2)使用相邻CU的平移MV推导出的构建的仿射合并候选,以及(3)零MV。

在VTM3中,最多可以应用两个继承的仿射候选。这两个继承的仿射候选可以是从相邻块的仿射运动模型中推导出的。例如,其中一个继承的仿射候选可以是从左侧相邻的CU推导出的,而另一个继承的仿射候选可以是从上侧相邻的CU推导出的。示例性候选块可以在图11中示出。如图11所示,对于左侧预测值(或左侧继承的仿射候选),扫描顺序可以是A0->A1,并且对于上侧预测值(或上侧继承的仿射候选),扫描顺序可以是B0->B1->B2。因此,从每一侧仅选择第一个可用的继承的候选。在两个继承的候选之间不执行修剪检查。当识别出相邻仿射CU时,该识别出的相邻仿射CU的控制点运动矢量可用于推导出当前CU的仿射合并列表中的CPMVP候选。如图12所示,当以仿射模式对当前块(1204)的相邻左下块A进行编码时,可以获得包含块A的CU(1202)的左上角、右上角和左下角的运动矢量v

所构建的当前块的仿射候选可以是通过组合当前块的每个控制点的相邻平移运动信息而构建的候选。可以从图13中示出的指定的空间相邻块和时间相邻块推导出控制点的运动信息。如图13所示,CPMV

在获得四个控制点的MV之后,可以基于四个控制点的运动信息为当前块(1302)构建仿射合并候选。例如,可以基于四个控制点的MV的以下组合顺序地构建仿射合并候选:{CPMV

3个CPMV的组合可以构造6参数仿射合并候选,而2个CPMV的组合可以构造4参数仿射合并候选。为了避免运动缩放过程,如果控制点的参考索引不同,则可以丢弃控制点MV的相关组合。

在检查继承的仿射合并候选和构造的仿射合并候选之后,如果列表仍然未满,则可以将零MV插入到列表的末尾。

在仿射AMVP预测中,仿射AMVP模式可以应用于宽度和高度都大于或等于16的CU。在比特流中通过发信号通知CU级别的仿射标志,以指示是否使用仿射AMVP模式,然后通过发信号通知另一标志,以指示是使用4参数仿射还是6参数仿射。在仿射AMVP预测中,可以在比特流中通过发信号通知当前CU的CPMV和当前CU的CPMVP的预测值的差。仿射AMVP候选列表的大小可以是2,并且可以通过依次使用以下四种类型的CPMV候选来生成仿射AMVP候选列表:

(1)从相邻CU的CPMV推断出的继承的仿射AMVP候选;

(2)使用相邻CU的平移MV推导出的具有CPMVP的构建的仿射AMVP候选;

(3)来自相邻CU的平移MV;以及

(40零MV。

继承的仿射AMVP候选的检查顺序与继承的仿射合并候选的检查顺序相同。为了确定AVMP候选,只能考虑与当前块具有相同参考图像的仿射CU。当继承的仿射运动预测值插入到候选列表中时,可以不应用修剪过程。

可以从指定的空间相邻块推导出构建的AMVP候选。如图13所示,可以应用与仿射合并候选构造中的检查顺序相同的检查顺序。此外,还可以检查相邻块的参考图像索引。检查顺序中的第一块可以是帧间编码的,并且具有与当前CU(1302)中相同的参考图像。当使用4参数仿射模式对当前CU(1302)进行编码时,可以确定一个构建的AMVP候选,并且mv

如果在检查继承的仿射AMVP候选和构建的AMVP候选后,仿射AMVP列表中的候选仍然小于2,则可以按顺序添加mv

与基于像素的运动补偿相比,基于子块的仿射运动补偿可以节省存储器访问带宽并降低计算复杂度,但代价是预测精度损失。为了实现更细粒度的运动补偿,可以使用具有光流的预测修正(Prediction Refinement with Optical Flow,PROF)来修正基于子块的仿射运动补偿预测,而不会增加用于运动补偿的存储器访问带宽。在VVC中,在执行基于子块的仿射运动补偿之后,可以通过添加由光流等式推导出的差来修正亮度预测样本。PROF可分为以下四个步骤:

步骤(1):可以执行基于子块的仿射运动补偿,以生成子块预测I(i,j)。

步骤(2):可以使用3抽头滤波器[-1,0,1]计算每个样本位置处的子块预测的空间梯度g

g

g

如等式(5)和等式(6)所示,shift1可用于控制梯度的精度。子块(例如,4×4)预测可以在每一侧上扩展一个样本以用于梯度计算。为了避免附加的存储器带宽和附加的插值计算,可以从参考图像中最近的整数像素位置复制扩展边界上的扩展样本。

步骤(3):可以通过等式(7)所示的光流等式来计算亮度预测修正。

ΔI(i,j)=g

其中,ΔI(i,j)可以是针对样本位置(i,j)所计算的样本MV与样本位置(i,j)所属的子块的子块MV之间的差,所述样本位置(i,j)由v(i,j)表示,并且所述子块MV由v

由于仿射模型参数和相对于子块中心的样本位置可能不会从一个子块改变到另一个子块,因此,可以针对第一子块(例如,(1402))计算Δv(i,j),并针对同一CU(例如(1400))中的其他子块(如(1410))重用Δv(i,j)。令dx(i,j)为从样本位置(i,j)到子块的中心(x

为了保持精度,可以将子块的中心(x

一旦获得Δv(x,y),就可以获得仿射模型的参数。例如,对于4参数仿射模型,仿射模型的参数可以在等式(10)中示出。

对于6参数仿射模型,仿射模型的参数可以在等式(11)中示出。

其中,(v

步骤(4):最后,可以将亮度预测修正ΔI(i,j)添加到子块预测I(i,j)中。如等式(12)中所示,可以生成最终预测I′。

I′(i,j)=I(i,j)+ΔI(i,j) 等式(12)

对于仿射编码的CU,PROF可能不适用于两种情况:(1)所有控制点MV都相同,这表明CU仅具有平移运动,以及(2)仿射运动参数大于指定的极限,因为基于子块的仿射MC被降级为基于CU的MC,以避免大的存储器访问带宽需求。

仿射运动估计(Motion Estimation,ME),例如在VVC参考软件VTM中,可以用于单向预测和双向预测。可以对参考列表L0和参考列表L1中的一个执行单向预测,并且可以对参考列表L0和参考列表L1两者执行双向预测。

图15示出仿射ME(1500)的示意图。如图15所示,在仿射ME(1500)中,可以对参考列表L0执行仿射单向预测(S1502),以基于参考列表L0中的初始参考块获得当前块的预测P0。还可以对参考列表L1执行仿射单向预测(S1504),以基于参考列表L1中的初始参考块来获得当前块的预测P1。在(S1506),可以执行仿射双向预测。仿射双向预测(S1506)可以从初始预测残差(2I-P0)-P1开始,其中,I可以是当前块的初始值。仿射双向预测(S1506)可以在参考列表L1中的初始参考块周围搜索参考列表L1中的候选,以找到具有最小预测残差(2I-P0)-Px的最佳(或选择的)参考块,其中,Px是基于所选择的参考块对当前块的预测。

利用参考图像,对于当前编码块,仿射ME过程可以首先选择一组控制点运动矢量(CPMV)作为基础。迭代方法可用于生成对应于该组CPMV的当前仿射模型的预测输出,计算预测样本的梯度,然后求解线性等式以确定增量(delta)CPMV以优化仿射预测。当所有增量CPMV都为0时,或者达到最大迭代次数时,迭代可以停止。从迭代中获得的CPMV可以是参考图像的最终CPMV。

在为仿射单向预测确定了参考列表L0和参考列表L1上的最佳仿射CPVM之后,可以使用一侧的参考列表和最佳单向预测CPMV来执行仿射双向预测搜索,并且搜索另一侧参考列表上的最佳CPMV,以优化仿射双向预测输出。仿射双向预测搜索可以在两个参考列表上迭代执行,以获得最优结果。

图16示出了其中可以计算与参考图像相关联的最终CPMV的示例性仿射ME过程(1600)。仿射ME过程(1600)可以从(S1602)开始。在(S1602)处,可以确定当前块的基础CPMV。可以基于合并索引、高级运动矢量预测(AMVP)预测值索引、仿射合并索引等中的一个来确定基础CPMV。

在(S1604)处,可以基于基础CPMV获得当前块的初始仿射预测。例如,根据基础CPMV,可以应用6参数仿射运动模型的4参数仿射运动模型来生成初始仿射预测。

在(S1606)处,可以获得初始仿射预测的梯度。例如,可以基于等式(5)和等式(6)获得初始仿射预测的梯度。

在(S1608)处,可以确定增量CPMV。在一些实施例中,增量CPMV可以与初始仿射预测与后续仿射预测(例如,第一仿射预测)之间的位移相关联。基于初始仿射预测的梯度和增量CPMV,可以获得第一仿射预测。第一仿射预测可以对应于第一CPMV。

在(S1610)处,可以确定检查增量CPMV是否为零或者迭代次数是否等于或大于阈值。当增量CPMV为零或迭代次数等于或大于阈值时,可以在(S1612)处确定最终(或选择的)CPMV。最终(或选择的)CPMV可以是基于初始仿射预测的梯度和增量CPMV确定的第一CPMV。

仍然参照(S1610),当增量CPMV不为零或者迭代次数小于阈值时,可以开始新的迭代。在新的迭代中,可以将更新的CPMV(例如,第一CPMV)提供给(S1604)以生成更新的仿射预测。然后,仿射ME过程(1600)可以进行到(S1606),在(S1606)中,可以计算更新的仿射预测的梯度。仿射ME过程(1600)然后可以进行到(S1608)以继续新的迭代。

在仿射运动模型中,4参数仿射运动模型可以进一步由包括旋转和缩放运动的公式来描述。例如,可以按照如下等式(13)改写4参数仿射运动模型:

其中,r和θ可以分别是缩放因子和旋转角度。当当前帧在时间上处于两个参考帧的中间时,并且如果运动是恒定和连续的,则缩放因子可以是指数的,而旋转角度可以是恒定的。因此,可以应用等式(13)来表示对一个参考的仿射运动,例如对参考列表0的仿射运动。可以在等式(14)中描述到在时间上位于当前帧的另一侧的另一参考帧(例如参考列表1)的仿射运动。

/>

可以将等式(13)和(14)称为对称仿射运动模型。利用对称仿射运动模型可以进一步提高编码效率。应当注意,可以在如下等式(15)中描述a、b、r和θ之间的关系:

VVC中的双向光流(BDOF),此前在JEM中被称为BIO(Bi-directional Opticalflow,双向光流)。与JEM版本相比,VVC中的BDOF可以是一个更简单的版本,需要更少的计算,特别是在乘法次数和乘数大小方面需要更少的计算。

BDOF可用于在4×4子块级别上修正CU的双向预测信号。如果CU满足以下条件,则可以将BDOF应用于CU:

(1)使用“真”双向预测模式对CU进行编码,即,两个参考图像中的一个在显示顺序上位于当前图像之前,而另一个在显示顺序上位于当前图像之后;

(2)从两个参考图像到当前图像的距离(例如,POC差)是相同的;

(3)两个参考图像均为短期参考图像;

(4)不使用仿射模式或SbTMVP合并模式对CU进行编码;

(5)CU具有超过64个亮度样本;

(6)CU高度和CU宽度均大于或等于8个亮度样本;

(7)BCW权重索引指示权重相等;

(8)未为当前CU启用加权位置(Weighted position,WP);以及

(9)CIIP模式不用于当前CU。

BDOF可以仅应用于亮度分量。正如BDOF的名称所示,BDOF模式可以基于光流概念,该光流概念假设物体的运动是平滑的。对于每个4×4子块,可以通过最小化L0和L1预测样本之间的差来计算运动修正(v

首先,可以通过直接计算两个相邻样本之间的差来计算来自参考列表L0和参考列表L1的两个预测信号的水平梯度

其中,I

然后,可以根据如下等式(18)至等式(22)计算梯度的自相关和互相关S

S

S

S

S

S

其中,可以分别在等式(23)至等式(25)中提供ψ

θ(i,j)=(I

其中,Ω是4×4子块周围的6×6窗口,并且n

然后,通过使用如下等式(26)和等式(27),使用互相关项和自相关项推导出运动修正(v

其中,

最后,通过调整如下等式(29)中的双向预测样本来计算CU的BDOF样本:

pred

选择这些值,以使得BDOF过程中的乘数不超过15位,并且BDOF过程中的中间参数的最大位宽可以保持在32位以内。

为了推导出梯度值,需要生成当前CU边界外的列表k(k=0,1)中的一些预测样本I

当CU的宽度和/或高度大于16个亮度样本时,CU可以被分割成宽度和/或高度等于16个亮度样本的子块,并且子块边界可以在BDOF过程中被处理为CU边界。BDOF过程的最大单元大小可以限制为16×16。对于每个子块,可以跳过BDOF过程。当初始L0和L1预测样本之间的绝对差值(SAD)之和小于阈值时,BDOF过程可以不应用于子块。阈值可以设置为等于(8*W*(H>>1),其中,W可以指示子块的宽度,H可以指示子块的高度。为了避免SAD计算的额外复杂性,在DMVR过程中计算的初始L0和L1预测样本之间的SAD可以在BBOF过程中重用。

如果对当前块启用了BCW,即BCW权重索引指示不相等的权重,则可以禁用双向光流。类似地,如果对当前块启用了WP,即,对于两个参考图像中的任一个,亮度权重标志(例如,luma_weight_lx_flag)为1,则也可以禁用BDOF。当采用对称MVD模式或CIIP模式对CU进行编码时,也可以禁用BDOF。

为了增加合并模式的MV的精度,例如可以在VVC中应用基于双边匹配(bilateral-matching,BM)的解码器侧运动矢量修正。在双向预测操作中,可以在参考图像列表L0和参考图像列表L1中的初始MV周围搜索修正的MV。BM方法可以计算参考图像列表L0和列表L1中的两个候选块之间的失真。

图18示出了基于BM的解码器侧运动矢量修正的示例性示意图。如图18所示,当前图像(1802)可以包括当前块(1808)。当前图像可以包括参考图像列表L0(1804)和参考图像列表L1(1806)。当前块(1808)可以包括参考图像列表L0(1804)中根据初始运动矢量MV0的初始参考块(1812)和参考图像列表L1(1806)中根据初始运动矢量MV1的初始参考块(1814)。可以在参考图像列表L0(1804)中的初始MV0和参考图像列表L1(1806)中的初始MV1周围执行搜索过程。例如,可以在参考图像列表L0(1804)中识别第一候选参考块(1810),并且可以在参考图像列表L1(1806)中识别第一候选参考块(1816)。基于初始MV(例如,MV0和MV1)周围的每个MV候选(例如MV0’和MV1’),可以计算候选参考块(例如,(1810)和(1816))之间的SAD。具有最低SAD的MV候选可以成为修正的MV,并用于生成双向预测信号以预测当前块(1808)。

DMVR的应用可以受到限制,并且只能应用于基于模式和特征编码的CU,例如在VVC中,如下所示:

(1)具有双向预测MV的CU级别合并模式;

(2)相对于当前图像,一个参考图像是过去的,而另一个参考图像是未来的;

(3)从两个参考图像到当前图像的距离(例如,POC差)是相同的;

(4)两个参考图像均为短期参考图像;

(5)CU具有超过64个亮度样本;

(6)CU高度和CU宽度均大于或等于8个亮度样本;

(7)BCW权重索引指示权重相等;

(8)未为当前块启用WP;以及

(9)CIIP模式不用于当前块。

由DMVR过程推导出的修正MV可以用于生成帧间预测样本,并用于未来图像编码的时间运动矢量预测。而原始MV可以用于解块过程,并用于未来CU编码的空间运动矢量预测。

在DVMR中,搜索点可以在初始MV周围,并且MV偏移可以遵守MV差异镜像规则。换言之,由候选MV对(MV0,MV1)表示的由DMVR检查的任何点都可以遵守等式(30)和等式(31)所示出的MV差异镜像规则:

MV0′=MV0+MV_offset 等式(30)

MV1′=MV1-MV_offset 等式(31)

其中,MV_offset中可以表示初始MV和参考图像之一中的修正MV之间的修正偏移。修正搜索范围可以是初始MV的两个整数亮度样本。搜索可以包括整数样本偏移搜索阶段和分数样本修正阶段。

例如,可以将25点全搜索应用于整数样本偏移搜索。可以首先计算初始MV对的SAD。如果初始MV对的SAD小于阈值,则可以终止DMVR的整数采样阶段。否则,可以按扫描顺序(例如光栅扫描顺序)计算和检查剩余24个点的SAD。可以选择具有最小SAD的点作为整数样本偏移搜索阶段的输出。为了减少DMVR修正的不确定性带来的损失,可以优先选择DMVR过程中的原始MV。由初始MV候选所引用的参考块之间的SAD可以减少SAD值的1/4。

整数样本搜索之后可以进行分数样本修正。为了节省计算复杂度,可以通过使用参数误差曲面等式(parametric error surface equation)来推导出分数样本修正,而不是通过SAD比较来进行额外搜索。可以基于整数样本搜索阶段的输出有条件地调用分数样本修正。当整数样本搜索阶段以在第一迭代搜索或第二迭代搜索中具有最小SAD的中心终止时,可以进一步应用分数样本修正。

在基于参数误差曲面的子像素偏移估计中,中心位置成本和在离中心四个相邻位置处的成本可用于拟合基于等式(32)的二维抛物线误差曲面等式:

E(x,y)=A(x-x

其中,(x

x

y

其中,x

例如在VVC中,可以应用双线性插值和样本填充。例如,MV的分辨率可以是1/16个亮度样本。分数位置处的样本可以使用8抽头插值滤波器进行插值。在DMVR中,搜索点可以使用整数样本偏移包围初始分数像元MV,因此,需要对分数位置的样本进行插值以用于DMVR搜索。为了降低计算复杂度,可以使用双线性插值滤波器来生成用于DMVR搜索过程的分数样本。在另一个重要的效果中,通过使用具有2样本搜索范围的双线性滤波器,与正常运动补偿过程相比,DVMR不会获取更多的参考样本。在通过DMVR搜索过程获得修正的MV之后,可以应用正常的8抽头插值滤波器来生成最终预测。为了避免比正常MC过程获取更多的参考样本,可以根据可用的样本填充该样本,这些可用的样本在基于原始MV的插值过程中可能不需要,但是基于修正MV的插值过程中可能需要。

当CU的宽度和/或高度大于16个亮度样本时,可以将CU进一步分割成宽度和/或高度等于16个亮度样本的子块。用于DMVR搜索过程的最大单元大小可以限制为16×16。

在相关的双边匹配过程中,如BDOF和DMVR,仅应用平移运动模型,这可能无法采集复杂的运动信息。

在本公开中,可以提供双边匹配来推导/修正仿射运动参数,而不是发信号。仿射参数可以包括平移运动、旋转、缩放和/或其他运动。可以执行双边匹配以根据最小匹配误差(例如SAD、差值的平方和(Sum of squared Error,SSE)等)在参考帧(例如,第一参考帧和第二参考帧)中的两个块(例如,第一参考块和第二参考块)之间找到最佳(或选择的)匹配。参考帧中的两个块可以由仿射运动模型来约束。

在一些实施例中,仿射运动模型可以是4参数仿射运动模型或6参数仿射运动模型。在一些实施例中,应用于参考帧中的两个块的约束可以与仿射运动模型的参数相关联。参数可以包括缩放因子、旋转角度、平移部分等。

令仿射运动0(或affMv0)和仿射运动1(或affMv1)分别为从当前块到第一参考块和第二参考块的仿射运动,则在本公开的约束下,这两个块(或参考块)可以由affMv0和affMv1定位(或确定)。在一个实施例中,affMV0或affMV1可以由等式(1)中所示的4参数仿射运动模型来描述。在另一实施例中,affMV0或affMV1可以由等式(3)中所示的6参数仿射运动模型来描述。在另一实施例中,affMv0和affMv1可以表示相对于两个参考块的初始运动的增量(delta)仿射运动,例如由合并索引或预测值索引指示。在一个示例中,时间距离0(或dPoc0)和时间距离1(或dPoc1)分别是当前帧和两个参考帧之间的时间距离。

当Poc_Cur表示当前帧的图像顺序计数(POC),RefPoc_L0表示列表L0(或第一参考帧)上的参考帧的POC,并且RefPoc_L1表示列表L1(或第二参考帧)上的参考帧的POC时,可以在如下等式(35)和等式(36)中描述dPoc0和dPoc1:

dPoc0=Poc_Cur–RefPoc_L0 等式(35)

dPoc1=Poc_Cur–RefPoc_L1 等式(36)

dPoc0和dPoc1可以具有不同的符号(例如,正符号和负符号)。不同的符号可以表示两个参考帧在时间上位于当前帧的不同侧。

在本公开中,基于时间距离的约束可以应用于仿射运动(例如,affMV0和affMV1)。在一个实施方案中,affMv0和affMv1的平移部分可以与dPoc0/dPoc1相关联。例如,affMv0和affMv1的平移部分可以与dPoc0/dPoc1成比例。如等式(13)所示,平移部分可以由第一方向(例如,X方向)上的c和第二方向(例如,Y方向)上的f表示。

在一个实施例中,affMv0和affMv1的缩放因子部分可以与dPoc0/dPoc1相关联。affMv0和affMv1的缩放因子部分可以与dPoc0/dPoc1成比例,例如成指数比例。缩放因子可以是在等式(13)中示出的r。例如,对于第一参考块,如果affMv0的缩放因子是r0,affMv1的缩放因子r1可以在等式(37)中示出:

在一个实施例中,α

在一个实施例中,(例如,在等式(13)中)affMv0和affMv1的旋转角度θ

在一个实施例中,当不同的加权因子应用于仿射双向预测(例如,BCW或图像级别加权双向预测)的两个参考列表(例如,参考列表L0和参考列表L1)时,附加的加权因子可以应用于基于时间距离的约束。在一个示例中,使得w表示从双向预测权重推导出的加权因子,在上述等式(37)至等式(39)中使用的线性比率dPoc1/dPoc0可以替换为:

在本公开中,可以应用双边匹配过程来预测当前帧中的当前块。

在一个实施例中,可以通过在某个搜索范围内搜索最小匹配误差来执行双边匹配过程。在一个示例中,搜索可以以与DMVR类似的方式执行。与DMVR不同的是,搜索范围不仅包括平移部分,还包括旋转因子和缩放因子。可以在比特流中通过发信号通知搜索范围,或者搜索范围可以是预定义的。此外,不同的搜索范围可以用于不同的情况,例如基于当前帧和参考帧之间的时间距离、帧类型和/或时间级别。

根据双边匹配过程,根据在等式(37)至等式(39)中的至少一个中提供的仿射运动模型的一个或多个约束,可以基于搜索范围来确定多个候选参考块对。多个候选参考块对中的每个候选参考块对可以包括第一参考帧中的相应候选参考块和第二参考帧中的相应候选参考块。可以为多个候选参考块对中的每个候选参考块对确定相应的成本值。成本值可以指示第一参考帧中的候选参考块与第二参考帧中的候选参考块之间的差。成本值可以基于均方误差(Mean Square Error,MSE)、平均绝对差(Mean Absolute Difference,MAD)、SAD、绝对变换差和(Sum of Absolute Transformed Difference,SATD)等中的一个来确定。可以选择多个候选参考块对中与最小成本值相关联的参考块对来预测当前块。例如,基于与所选参考块对相关联的CPMV,可以确定仿射运动模型。还可以基于所确定的仿射运动模型来执行当前块的块级别预测、子块级别预测或像素级别预测。

在一个实施例中,可以通过使当前块的两个参考块的失真模型最小化来操作双边匹配过程。失真模型可以基于一阶泰勒展开,其可以类似于等式(7)中的BDOF或图15至图16中提供的VTM软件中的仿射ME。

在双边匹配过程的第一次迭代中的两个参考块之间的失真模型(或失真值)可以在如下等式(40)至等式(42)中提供:

D

P

P

如等式(40)所示,P

可以根据图16所示的仿射ME搜索过程来确定P

类似地,如等式(42)所示,P

响应于Δv

P

P

如等式(43)所示,g

可以通过从当前块到参考列表L0中第二参考块的仿射运动0’(例如,affMV0’)来指示参考列表L0中的第二参考块。可以通过从当前块到参考列表L1中第二参考块的仿射运动1’(例如,affMV1’)来指示参考列表L1中的第二参考块。仿射运动0’和仿射运动1’可以由等式(37)至等式(39)中的至少一个来约束。

此外,可以根据如下等式(45)计算P

D

当迭代次数N等于或大于阈值,或者参考列表L0中的第N个参考块与参考列表L0中的第(N+1)个参考块之间的位移Δv

根据N个参考块对的失真值(或成本值),可以基于具有最小失真值的最佳(或选择的)参考块对来预测当前块。例如,基于与所选参考块对相关联的CPMV,可以确定仿射运动模型。还可以基于所确定的仿射运动模型来执行当前块的块级别预测、子块级别预测或像素级别预测。

应当注意,N个参考块对中的每一个可以包括第一参考列表L0中的相应参考块和第二参考列表L1中的相应参考块。第一参考列表L0和第二参考列表L1中的每个参考块可以具有规则形状或不规则形状。规则形状可以是一种所有边都相等且所有内角都相等的形状。例如,参考块可以具有正方形。不规则的形状可能没有等边或等角。

可以在比特流中通过发信号通知双边匹配过程的迭代次数,或者基于一个或多个条件预定义双边匹配过程的迭代次数。在双边匹配过程中可以应用一个或多个附加约束。例如,可以进一步要求增量仿射运动在某个范围内,例如在2个像素内。在一个实施例中,这样的范围可以在比特流中通过发信号通知或预定义。在双边匹配过程期间,增量仿射运动可以是当前运动矢量和先前运动矢量之间的差。增量仿射运动可以在子块级别、控制点级别或像素级别中。

在本公开中,双边匹配过程的起点(例如,P

在一些实施例中,在双边匹配之后,推导出的仿射运动可以直接用作当前块的运动。替代地,仿射运动可以用作当前块的运动预测值。

在本公开中,双边匹配过程可以与现有的编码模式(例如合并、仿射/子块合并、MMVD或GPM)相结合。

在一个实施例中,可以在比特流中通过发信号通知附加标志,以指示是否使用双边匹配过程。

在一个实施例中,每当对块(或当前块)进行双向预测时,双边匹配过程可以总是开启的。

在一个实施例中,每当对块(或当前块)进行双向预测,并用仿射模式对块(或当前块)进行编码时,双边匹配过程总是开启的。

在一个实施例中,双边匹配过程可以添加到候选列表并由索引标识。当双边匹配过程添加到候选列表(例如仿射候选列表)时,与N个参考块对和起始点相关联的CPMV可以用作仿射候选列表的候选。例如,候选可以插入到SbTmvp之后、继承的仿射候选之后、构造的仿射候选之后或基于历史的候选之后。

在一些实施例中,双边匹配过程可以用作另一双边过程(例如BDOF)的替代或通用形式。

在本公开中,在仿射双边匹配过程中,可以应用3参数仿射模型或4参数仿射模型。在一个示例中,可以在仿射双边匹配过程中应用3参数缩放(scaling/zooming)模型。可以在等式(46)中简化与参考列表L0相关联的3参数缩放模型,其中,(1+α)可以是缩放因子,并且参数(c,f)可以表示平移运动。

可以在如下等式(47)中描述与参考列表L1相关联的3参数缩放模型的对称形式:

在一个示例中,4参数仿射模型可以包括旋转变换和平移运动(例如,比例因子r=1)。因此,可以在如下等式(48)中简化与参考列表L0相关联的4参数仿射模型。

其中,θ可以表示旋转角度,可以用(c,f)表示平移运动。可以在等式(49)中示出与参考列表L1相关联的4参数旋转模型的对称形式,其中,相反的符号(例如,负符号)可以应用于θ、c和f。

基于等式(46)至等式(49)中提供的上述仿射模型,可以实现仿射双边匹配。

例如,可以在等式(50)和等式(51)中示出仿射双边匹配的当前迭代。如等式(50)和(51)所示,p

p′

p′

可以执行仿射双边匹配过程以使修正的预测p′

如图16所示,仿射双边匹配过程可以从仿射候选的初始CPMV(或基础CPMV)开始。可以在第一次迭代中修正初始CPMV,以生成更新的CPMV值。在每次迭代中,可以基于更新的CPMV值生成仿射预测。类似于VTM软件中提供的仿射运动估计方法,基于梯度的仿射等式求解方法可以应用于每次迭代中。在仿射参数推导中,可以使用相应的仿射模型。在每次迭代中生成的新增量仿射参数(例如,增量CPMV)可以基于对称模型(例如,等式(46)至等式(49)中的对称模型)应用于每个参考列表,以生成两个参考列表的更新的CPMV。更新的CPMV可以对应于参考列表(例如,参考列表L0或L1)中的更新的参考块。

在一些实施例中,当增量CPMV(例如,ΔMV

图19示出了概述根据本公开的一些实施例的示例性解码过程(1900)的流程图。图20示出了概述根据本公开的一些实施例的示例性编码过程(2000)的流程图。建议的过程可以单独使用,也可以以任何顺序组合使用。此外,过程(或实施例)、编码器和解码器中的每一个都可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一个示例中,一个或多个处理器执行存储在非暂时性计算机可读介质中的程序。

可以根据需要以任何数量或顺序组合或安排多个过程的操作(例如,(1900)和(2000))。在多个实施例中,可以并行执行过程的两个或更多个操作(例如(1900)和(2000))。

过程(例如(1900)和(2000))可以用于块的重建和/或编码,以便为正在重建的块生成预测块。在各种实施例中,过程(例如(1900)和(2000))由处理电路执行,处理电路例如为终端设备(310)、终端设备(320)、终端设备(330)和终端设备(340)中的处理电路、执行视频编码器(403)功能的处理电路、执行视频解码器(410)功能的处理电路、执行视频解码器(510)功能的处理电路、执行视频编码器(603)功能的处理电路等。在一些实施例中,过程(例如(1900)和(2000))以软件指令实现,因此当处理电路执行软件指令时,处理电路执行过程(例如(1900)和(2000))。

如图19所示,过程(1900)可以从(S1901)开始并前进到(S1910)。在(S1910)处,从已编码视频比特流中解码出当前图像中的当前块的预测信息,预测信息可指示将基于仿射模型对所述当前块进行预测。

在(S1920)处,通过仿射双边匹配推导出仿射模型的多个仿射运动参数,在仿射双边匹配中、基于当前图像的第一参考图像和第二参考图像中的参考块推导出仿射模型,其中,多个仿射运动参数未包括在已编码视频比特流中。

在(S1930)处,可基于推导出的多个仿射运动参数确定仿射模型的控制点运动矢量。

在(S1940)处,可基于推导出的仿射模型重建当前块。

可以基于来自第一参考图像和第二参考图像中的参考块的多个候选参考块对中的参考块对推导出仿射模型的多个仿射运动参数。基于仿射模型的约束和成本值,参考块对可以包括第一参考图像中的第一参考块和第二参考图像中的第二参考块。该约束可以与基于以下二者的比率相关联:(i)当前图像和第一参考图像之间的第一时间距离;以及(ii)当前图像和第二参考图像之间的第二时间距离。成本值可以基于第一参考块和第二参考块之间的差。

在一些实施例中,时间距离比率可以等于权重因子和以下二者的比率的乘积:(i)当前图像和第一参考图像之间的第一时间距离;以及(ii)当前图像和第二参考图像之间的第二时间距离的比率,其中,权重因子可以是正整数。

在一些实施例中,仿射模型的约束可以指示从当前块到第一参考块的第一仿射运动矢量的第一平移因子与时间距离比率成比例。仿射模型的约束可以指示从当前块到第二参考块的第二仿射运动矢量的第二平移因子与时间距离比率成比例。

在一些实施例中,仿射模型的约束还可以指示从当前块到第二参考块的第二仿射运动矢量的第二缩放因子等于从当前块到第一参考块的第一仿射运动矢量的第一缩放因子的时间距离比率次幂。

在一些实施例中,仿射模型的约束可以指示以下二者的比率等于时间距离比率:(i)从当前块到第一参考块的第一仿射运动矢量的第一增量缩放因子;以及(ii)从当前块到第二参考块的第二仿射运动矢量的第二增量缩放因子。第一增量缩放因子可以等于第一缩放因子减1,并且第二增量缩放因子可以等于第二缩放因子减1。

在一些实施例中,仿射模型的约束可以进一步指示以下二者的比率等于时间距离比率:(i)从当前块到第一参考块的第一仿射运动矢量的第一旋转角;以及(ii)从当前块到第二参考块的第二仿射运动矢量的第二旋转角。

为了确定参考块对,可以根据仿射模型的约束来确定多个候选参考块对。多个候选参考块对中的每个候选参考块对可以包括第一参考图像中的相应候选参考块和第二参考图像中的相应候选参考块。可以为多个候选参考块对中的每个候选参考块对确定相应的成本值。可以将与最小成本值相关联的参考块对确定为多个候选参考块对中的候选参考块对。

在一些实施例中,多个候选参考块对可以包括第一候选参考块对,其中,第一候选参考块对可以包括第一参考图像中的第一个候选参考块和第二参考图像中的第一个候选参考块。为了确定参考块对,可以基于第一参考图像中的初始参考块来确定与当前块的第一参考图像相关联的初始预测值。可以基于第二参考图像中的初始参考块来确定与当前块的第二参考图像相关联的初始预测值。可以基于与当前块的第一参考图像相关联的初始预测值来确定与当前块的第一参考图像相关联的第一预测值,其中,与当前块的第一参考图像相关联的第一预测值可以与第一参考图像中的第一个候选参考块相关联。可以基于与当前块的第二参考图像相关联的初始预测值来确定与当前块的第二参考图像相关联的第一预测值,其中,与当前块的第二参考图像相关联的第一预测值可以与第二参考图像中的第一个候选参考块相关联。可以基于与当前块的第一参考图像相关联的第一预测值和与当前块的第二参考图像相关联的第一预测值之间的差来确定第一成本值。

在过程(1900)中,与当前块的第一参考图像相关联的初始预测值可以由以下之一来指示:合并索引、高级运动矢量预测(AMVP)预测值索引和仿射合并索引。

为了确定与当前块的第一参考图像相关联的第一预测值,可以确定与当前块的第一参考图像相关联的初始预测值的梯度值在第一方向上的第一分量。可以确定与当前块的第一参考图像相关联的初始预测值的梯度值在第二方向上的第二分量。第二方向可以垂直于第一方向。可以确定第一参考图像中的初始参考块与第一参考图像中的第一个候选参考块之间的位移在第一方向上的第一分量。可以确定第一参考图像中的初始参考块与第一参考图像中的第一个候选参考块之间的位移在第二方向上的第二分量。可以将与当前块的第一参考图像相关联的第一预测值确定为等于以下三者之和:(i)与当前块的第一参考图像相关联的初始预测值;(ii)初始预测值的梯度值的第一分量和位移的第一分量的乘积;以及(iii)初始预测值的梯度值的第二分量和位移的第二分量的乘积。

多个候选参考块对可以包括第N个候选参考块对,其中,第N个候选参考块对可以包括第一参考图像中的第N个候选参考块和第二参考图像中的第N个候选参考块。为了确定参考块对,可以基于与当前块的第一参考图像中的第(N-1)个候选参考块相关联的第(N-1)个预测值来确定与当前块的第一参考图像中的第N个候选参考块相关联的第N个预测值。可以基于与当前块的第二参考图像中的第(N-1)个候选参考块相关联的第(N-1)个预测值来确定与当前块的第二参考图像中的第N个候选参考块相关联的第N个预测值。可以基于与当前块的第一参考图像相关联的第N个预测值和与当前块的第二参考图像相关联的第N个预测值之间的差来确定第N个成本值。

为了确定与当前块的第一参考图像相关联的第N个预测值,可以确定与当前块的第一参考图像相关联的第(N-1)个预测值的梯度值在第一方向上的第一分量。可以确定与当前块的第一参考图像相关联的第(N-1)个预测值的梯度值在第二方向上的第二分量。第二方向可以垂直于第一方向。可以确定位移的第一分量。位移的第一分量可以是第一参考图像中的第N个候选参考块和第一参考图像中的第(N-1)个候选参考块在第一方向上的差。可以确定位移的第二分量。位移的第二分量可以是第一参考图像中的第N个候选参考块和第一参考图像中的第(N-1)个候选参考块在第二方向上的差。可以确定基于当前块的第一参考图像的第N个预测值,该第N个预测值等于以下三者之和:(i)与当前块的第一参考图像相关联的第(N-1)个预测值;(ii)第(N-1)个预测值的梯度值的第一分量和位移的第一分量的乘积;以及(iii)第(N-1)个预测值的梯度值的第二分量和位移的第二分量的乘积。

在一些实施例中,基于以下之一,多个候选参考块对可以包括N个候选参考块对:(i)N等于上限值,以及(ii)第一参考图像中的第N个候选参考块与第一参考图像中的第(N+1)个候选参考块之间的位移为零。

在一些实施例中,当前块中的每个子块的增量运动矢量可以等于或小于阈值。

预测信息可以包括标志,该标志指示是否基于使用仿射模型的仿射双边匹配而预测当前块。

在过程(1900)中,可以确定与当前块相关联的仿射模型的候选运动矢量列表。候选运动矢量列表可以包括与参考块对相关联的控制点运动矢量。

在(S1950)之后,过程前进到(S1999)并终止。

可以适当地修改过程(1900)。可以修改和/或省略过程(1900)中的(一个或多个)步骤。可以添加(一个或多个)附加的步骤。可以使用任何合适的实施顺序。

如图20所示,过程(2000)可以从(S2001)开始并前进到(S2010)。在(S2010)处,可以确定当前图像中的当前块的仿射模型的约束。所述约束可以与基于以下二者的时间距离比率相关联:(i)当前图像和当前图像的第一参考图像之间的第一时间距离;以及(ii)当前图像和当前图像的第二参考图像之间的第二时间距离。

在(S2020)处,可以基于来自第一参考图像和第二参考图像中的多个候选参考块对中的参考块对来确定仿射模型的多个仿射运动参数。参考块对可以包括第一参考图像中的第一参考块和第二参考图像中的第二参考块。可以基于仿射模型的约束和成本值从多个候选参考块对中确定参考块对。成本值可以与第一参考块和第二参考块之间的差相关联。

在(S2030)处,可以基于所确定的多个仿射运动参数来确定仿射模型的控制点运动矢量。

在(S2040)处,可以基于所确定的仿射模型来生成当前块的预测信息。

然后,过程前进到(S2099)并终止。

可以适当地修改过程(2000)。可以修改和/或省略过程(2000)中的(一个或多个)步骤。可以添加(一个或多个)附加的步骤。可以使用任何合适的实施顺序。

上述技术可以通过使用计算机可读指令而实现为计算机软件,并且该计算机软件物理地存储在一个或多个计算机可读介质中。例如,图21示出了适用于实现所公开的主题的某些实施例的计算机系统(2100)。

可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,任何合适的机器代码或计算机语言可以经受汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可以由一个或多个计算机中央处理单元(Central Processing Unit,CPU)、图形处理单元(Graphics Processing Unit,GPU)等直接执行或通过译码、微码等执行。

这些指令可以在各种类型的计算机或其组件上执行,例如包括个人计算机、平板计算机、服务器、智能手机、游戏设备、物联网设备等。

图21中示出的用于计算机系统(2100)的组件本质上是示例性的,并且不旨在对实现本公开的实施例的计算机软件的用途或功能的范围提出任何限制。组件的配置也不应被解释为具有与计算机系统(2100)的示例性实施例中所示的任何一个组件或组件组合相关的任何依赖性或要求。

计算机系统(2100)可以包括某些人机接口输入设备。此类人机接口输入设备可以响应于一个或多个人类用户通过例如下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘出)。人机接口设备还可以用于采集不一定与人的意识输入直接相关的某些媒介,例如音频(例如:语音、音乐、环境声音)、图片(例如:扫描的图片、从静止图片相机获取摄影图片)、视频(例如二维视频、包括立体视频的三维视频)等。

输入人机接口设备可以包括下述中的一项或多项(每种中仅示出一个):键盘(2101)、鼠标(2102)、触控板(2103)、触摸屏(2110)、数据手套(未示出)、操纵杆(2105)、麦克风(2106)、扫描仪(2107)、相机(2108)。

计算机系统(2100)还可以包括某些人机接口输出设备。这样的人机接口输出设备可以例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出设备可包括触觉输出设备(例如通过触摸屏(2110)、数据手套(未示出)或操纵杆(2105)的触觉反馈,但也可以是不作为输入设备的触觉反馈设备)、音频输出设备(例如:扬声器(2109)、耳机(未示出))、视觉输出设备(例如包括阴极射线管(cathode-ray tube,CRT)屏幕、液晶显示器(liquid crystal display,LCD)屏幕、等离子屏幕、有机发光二极管(organic light-emitting diode,OLED)屏幕之类的屏幕(2110),每种屏幕有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能,其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未描绘出)、全息显示器和烟箱(未描绘出)以及打印机(未描绘出)来输出二维视觉输出或超过三维的输出)。

计算机系统(2100)还可以包括人类可访问的存储设备及其相关联的介质,例如包括具有光盘(compact disc,CD)/数字视频光盘(digital video disc,DVD)等介质(2121)的CD/DVD ROM/RW(2120)的光学介质、指状驱动器(2122)、可拆卸硬盘驱动器或固态驱动器(2123)、诸如磁带和软盘之类的传统磁性介质(未示出)、诸如安全软件狗之类的基于专用ROM/ASIC/PLD的设备(未示出)等。

本领域技术人员还应理解,结合本公开的主题使用的术语“计算机可读介质”不涵盖传输介质、载波或其他暂时性信号。

计算机系统(2100)还可以包括到一个或多个通信网络(2155)的接口(2154)。网络可以例如是无线网络、有线网络、光网络。网络可以进一步地是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。网络的示例包括诸如以太网之类的局域网、无线局域网(local area network,LAN)、包括(global system for mobile,GSM)、第三代(3

上述人机接口设备、人机可访问的存储设备和网络接口可以附接到计算机系统(2100)的内核(2140)。

内核(2140)可包括一个或多个中央处理单元(CPU)(2141)、图形处理单元(GPU)(2142)、现场可编程门区域(field programmable gate areas,FPGA)(2143)形式的专用可编程处理单元、用于某些任务的硬件加速器(2144)、图形适配器(2150)等。这些设备以及只读存储器(ROM)(2145)、随机存取存储器(2146)、诸如内部非用户可访问的硬盘驱动器、固态驱动器(solid state drive,SSD)等之类的内部大容量存储器(2147)可以通过系统总线(2148)连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(2148),以能够通过附加的CPU、GPU等进行扩展。外围设备可以直接连接到内核的系统总线(2148)或通过外围总线(2149)连接到内核的系统总线(2148)。在一个示例中,屏幕(2110)可以连接到图形适配器(2150)。外围总线的体系结构包括外围组件互联(peripheralcomponent interconnection,PCI)、USB等。

CPU(2141)、GPU(2142)、FPGA(2143)和加速器(2144)可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在ROM(2145)或随机存取存储器(random-access memory,RAM)(2146)中。过渡数据也可以存储在RAM(2146)中,而永久数据可以存储在例如内部大容量存储器(2147)中。可以通过使用高速缓冲存储器来实现对任何存储器设备的快速存储和检索,高速缓冲存储器可以与下述紧密关联:一个或多个CPU(2141)、GPU(2142)、大容量存储器(2147)、ROM(2145)、RAM(2146)等。

计算机可读介质可以在其上具有执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构建的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。

作为非限制示例,可以由于一个或多个处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构(2100),特别是内核(2140)的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储相关联的介质,以及某些非暂时性内核(2140)的存储器,例如内核内部大容量存储器(2147)或ROM(2145)。可以将实施本申请的各种实施例的软件存储在此类设备中并由内核(2140)执行。根据特定需要,计算机可读介质可以包括一个或多个存储装置或芯片。软件可以使得内核(2140),特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在RAM(2146)中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可以由于硬连线或以其他方式体现在电路(例如,加速器(2144))中的逻辑而使得计算机系统提供功能,该电路可以替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可以包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可以包括存储用于执行的软件的电路(例如集成电路(IC))、体现用于执行的逻辑的电路或包括两者。本申请包括硬件和软件的任何合适的组合。

附录A:缩略语

JEM:联合探索模型

VVC:多功能视频编码

BMS:基准集

MV:运动矢量

HEVC:高效视频编码

SEI:辅助增强信息

VUI:视频可用性信息

GOPs:多个图像群组

TUs:多个变换单位

PUs:多个预测单位

CTU:编码树单位

CTBs:多个编码树块

PBs:多个预测块

HRD:假想参考解码器

SNR:信噪比

CPUs:多个中央处理器

GPUs:多个图形处理单元

CRT:阴极射线管

LCD:液晶显示器

OLED:有机发光二极管

CD:压缩光盘

DVD:数字视频光盘

ROM:只读存储器

RAM:随机存取存储器

ASIC:专用集成电路

PLD:可编程逻辑器件

LAN:局域网

GSM:全球移动通信系统

LTE:长期演进

CANBus:控制器局域网总线

USB:通用串行总线

PCI:外围组件互连

FPGA:现场可编程门区域

SSD:固态驱动器

IC:集成电路

CU:编码单位

尽管本公开已经描述了多个示例性实施例,但是存在落入本公开范围内的修改、置换和各种替换等效物。因此,应当理解,本领域技术人员将能够设计出许多虽然未在本文中明确示出或描述,但体现了本公开的原理,因此落入本公开的精神和范围内的系统和方法。

相关技术
  • 用于双向预测和仿射模式的基于模板匹配的自适应运动矢量分辨率(AMVR)
  • 基于快速鲁棒特征匹配的仿射运动目标跟踪算法
技术分类

06120116502738