Merge列表构建和其他工具之间的交互

文档序号:214972 发布日期:2021-11-05 浏览:23次 >En<

阅读说明:本技术 Merge列表构建和其他工具之间的交互 (Merge list construction and interaction between other tools ) 是由 张莉 张凯 刘鸿彬 王悦 于 2020-03-23 设计创作,主要内容包括:描述了在视频编解码中实现Merge列表构建与其他工具和方法的交互的设备、方法和系统。一种用于视频处理的示例性方法包括:基于第一阈值来确定表中要检查的基于历史的运动矢量预测(HMVP)候选的最大数量;做出关于按顺序选择性检查多个HMVP候选的决定,所检查的HMVP候选的数量不超过HMVP候选的最大数量;基于该决定来构建运动候选列表;以及基于运动候选列表来执行当前块和当前块的比特流表示之间的转换。(Devices, methods, and systems are described that implement Merge list construction interactions with other tools and methods in video codecs. An exemplary method for video processing comprises: determining a maximum number of history-based motion vector prediction (HMVP) candidates to be checked in a table based on a first threshold; making a decision regarding selectively examining a plurality of HMVP candidates in an order, the number of examined HMVP candidates not exceeding a maximum number of HMVP candidates; constructing a motion candidate list based on the decision; and performing a conversion between the current block and a bitstream representation of the current block based on the motion candidate list.)

Merge列表构建和其他工具之间的交互

相关应用的交叉引用

本专利文档要求于2019年3月22日提交的美国临时申请号US 62/822,438的优先权和权益,该临时申请题为“DUAL LOOK-UP TABLES FOR MOTION VECTOR CODING”。前述专利申请的全部内容作为本专利文档公开的一部分通过引用结合于此。

技术领域

本专利文档涉及视频编解码技术、设备和系统。

背景技术

尽管在视频压缩方面有所进步,但是数字视频仍然在互联网和其他数字通信网络上占用最多的带宽。随着能够接收和显示视频的联网用户设备数量的增加,预计数字视频使用的带宽需求将继续增长。

发明内容

本文档公开了基于Merge列表构建和其他视频编解码工具和方法之间的交互对数字视频进行编码和解码的方法、系统和设备。

在一个示例方面,公开了一种用于视频处理的方法。该方法包括:基于第一阈值(T1)确定表中要检查的基于历史的运动矢量预测(history-based motion vectorprediction,HMVP)候选的最大数量;做出关于按顺序选择性检查多个HMVP候选的决定,所检查的HMVP候选的数量不超过HMVP候选的最大数量;基于该决定来构建运动候选列表;以及基于运动候选列表来执行当前块和当前块的比特流表示之间的转换。

在另一示例方面,公开了一种用于视频处理的方法。该方法包括:构建包括多个允许的Merge候选的Merge列表,其中,当前块的多个允许的Merge候选的数量小于或等于最大列表尺寸;以及基于Merge列表来执行当前块和当前块的比特流表示之间的转换。

在又一示例方面,公开了一种用于视频处理的方法。该方法包括:基于对Merge列表构建过程和虚拟候选推导过程的选择性调用,构建三角形Merge列表;以及基于三角形Merge列表,执行当前块和当前块的比特流表示之间的转换,其中,Merge列表构建过程包括构建空域候选、时域候选、基于历史的运动矢量预测(HMVP)候选或成对平均候选中的至少一个,并且其中,虚拟候选推导过程包括直接复制一个或多个Merge候选的运动信息。

在又一示例方面,公开了一种实施本文描述的视频编码方法的视频编码器设备。

在又一代表性方面,本文描述的各种技术可以体现为存储在非暂时性计算机可读介质上的计算机程序产品。该计算机程序产品包括用于执行本文描述的方法的程序代码。

在又一代表性方面,一种视频解码器装置可以实施本文描述的方法。

一个或多个实施方式的细节在下面的附件、附图和描述中阐述。从说明书和附图以及权利要求书中,其他特征将是显而易见的。

附图说明

图1是示出视频编码器实施方式的示例的框图。

图2示出了H.264视频编解码标准中的宏块分割。

图3示出了将编解码块(Coding Block,CB)划分成预测块的示例。

图4示出了用于将CTB细分为CB和变换块(Transform Block,TB)的示例实施方式。实线指示CB边界,并且虚线指示TB边界,包括示例CTB及其分割、以及对应的四叉树。

图5示出了用于分割视频数据的四叉树二叉树(Quad Tree Binary Tree,QTBT)结构的示例。

图6示出了视频块分割的示例。

图7示出了四叉树分割的示例。

图8示出了树型信令通知的示例。

图9示出了用于Merge候选列表构建的推导过程的示例。

图10示出了空域Merge候选的示例位置。

图11示出了空域Merge候选的冗余检查所考虑的候选对的示例。

图12示出了N×2N和2N×N分割的第二PU的位置的示例。

图13示出了用于时域Merge候选的运动矢量缩放。

图14示出了时域Merge候选的候选位置、以及它们的并置图片。

图15示出了组合的双向预测Merge候选的示例。

图16示出了运动矢量预测候选的推导过程的示例。

图17示出了用于空域运动矢量候选的运动矢量缩放的示例。

图18示出了用于CU的运动预测的示例可选时域运动矢量预测(AlternativeTemporal Motion Vector Prediction,ATMVP)。

图19绘画地描绘了识别源块和源图片的示例。

图20示出了具有四个子块的一个CU以及临近块的示例。

图21示出了双边匹配的示例。

图22示出了模板匹配的示例。

图23描绘了帧率上转换(Frame Rate Up Conversion,FRUC)中的单边运动估计(Motion Estimation,ME)的示例。

图24示出了用于推导空域Merge候选的空域临近块的示例。

图25是用于实施本文档中描述的可视媒体解码或可视媒体编码技术的硬件平台的示例的框图。

图26是其中可以实施所公开的技术的示例视频处理系统的框图。

图27是用于视频处理的示例方法的流程图。

图28是用于视频处理的另一示例方法的流程图。

图29是用于视频处理的又一示例方法的流程图。

具体实施方式

为了改善视频的压缩率,研究人员在持续寻找通过其对视频进行编码的新技术。

1.介绍

本文档涉及视频编解码技术。具体地,它设计视频编解码中的运动信息编解码(诸如Merge模式、AMVP模式)。它可以被应用于现有的视频编解码标准(如HEVC)或者待完成的标准(多功能视频编解码)。它也可以适用于未来的视频编解码标准或视频编解码器。

简要讨论

视频编解码标准主要是通过众所周知的ITU-T和ISO/IEC标准的发展进行演进。ITU-T产生了H.261和H.263视频编解码标准,ISO/IEC产生了MPEG-1和MPEG-4可视,并且这两个组织联合产生了H.262/MPEG-2视频和H.264/MPEG-4高级视频编解码(Advanced VideoCoding,AVC)和H.265/HEVC标准。自H.262以来,视频编解码标准基于混合视频编解码结构,其中利用了时域预测加变换编解码。在图1中描绘了通常的HEVC编码器框架的示例。

2.1分割结构

2.1.1 H.264/AVC中的分割树结构

先前标准中的编解码层的核心是宏块,其包含16×16亮度样点块,并且在4:2:0颜色采样的通常情况下,包含两个对应的8×8色度样点块。

帧内编解码块使用空域预测来利用像素当中的空域相关性。定义了两个分区:16×16和4×4。

帧间编解码块通过估计图片当中的运动来使用时域预测而不是空域预测。可以针对16×16宏块或其任何子宏块分区(16×8、8×16、8×8、8×4、4×8、4×4)独立地估计运动(参见图2)。每个子宏块分区仅允许一个运动矢量(Motion Vector,MV)。

2.1.2 HEVC中的分割树结构

在HEVC中,通过使用表示为编解码树的四叉树结构将CTU划分成CU以适应各种局部特性。使用帧间(时域)还是帧内(空域)预测来编解码图片区域的决定是在CU级别进行的。可以根据PU划分类型将每个CU进一步划分成一个、两个或四个PU。在一个PU内部,应用相同的预测过程,并且基于PU将相关信息发送到解码器。在通过应用基于PU划分类型的预测过程来获得残差块之后,可以根据类似于CU的编解码树的另一个四叉树结构将CU分割为变换单元(Transform Unit,TU)。HEVC结构的关键特征之一是它具有多个分割概念,包括CU、PU和TU。

在以下内容中,使用HEVC的混合视频编解码中涉及的各种特征强调如下:

1)编解码树单元和编解码树块(Coding Tree Block,CTB)结构:HEVC中的类似结构是编解码树单元(Coding Tree Unit,CTU),其具有由编码器选择的尺寸并且可以大于传统宏块。CTU由亮度CTB和对应的色度CTB以及语法元素组成。亮度CTB的尺寸L×L可以选择为L=16、32或64个样点,其中更大的尺寸通常能够实现更好的压缩。HEVC然后支持使用树结构和类四叉树的信令将CTB分割为更小的块。

2)编解码单元(Coding Unit,CU)和编解码块(CB):CTU的四叉树语法指定其亮度CB和色度CB的尺寸和位置。四叉树的根与CTU相关联。因此,亮度CTB的尺寸是亮度CB的最大支持尺寸。将CTU划分成亮度CB和色度CB是联合信令通知的。一个亮度CB和通常两个色度CB与相关联的语法一起形成编解码单元(CU)。CTB可以仅包含一个CU或者可以被划分以形成多个CU,并且每个CU具有成为预测单元(Prediction Unit,PU)的相关联分割和变换单元(TU)的树。

3)预测单元和预测块(Prediction Block,PB):使用帧间还是帧内预测来编解码图片区域的决定是在CU级别进行的。PU分割结构的根在CU级别。取决于基本预测类型决定,亮度CB和色度CB然后可以进一步在尺寸上被划分,并且根据亮度和色度预测块(PB)预测。HEVC支持从64×64下至4×4个样点的可变PB尺寸。图3示出了M×M CU的允许的PB的示例。

4)TU和变换块:使用块变换对预测残差进行编解码。TU树结构的根在CU级别。亮度CB残差可以与亮度变换块(TB)相同,或者可以进一步划分成更小的亮度TB。这同样适用于色度TB。针对正方形TB尺寸4×4、8×8、16×16和32×32定义类似于离散余弦变换(Discrete Cosine Transform,DCT)的整数基函数的整数基函数。对于亮度帧内预测残差的4×4变换,可替代地指定从离散正弦变换(Discrete Sine Transform,DST)的形式推导的整数变换。

图4示出了将CTB细分为CB[和变换块(TB)]的示例。实线指示CB边界,并且虚线指示TB边界。(a)CTB及其分割。(b)对应的四叉树。

2.1.2.1树结构分割为变换块和变换单元

对于残差编解码,CB可以被递归地分割为变换块(TB)。分割由残差四叉树信令通知。仅指定了正方形CB和TB分割,其中块可以被递归地划分成象限,如图4所示。对于尺寸为M×M的给定亮度CB,标志信令通知其是否被划分成四个尺寸为M/2×M/2的块。如果可以进一步划分,如通过SPS中指示的残差四叉树的最大深度信令通知的,则为每个象限(quadrant)分配指示其是否被划分成四个象限的标志。由残差四叉树产生的叶节点块是通过变换编解码进一步处理的变换块。编码器指示其将使用的最大和最小亮度TB尺寸。当CB尺寸大于最大TB尺寸时,划分是隐式的。当划分将引起亮度TB尺寸小于指示的最小值时,不划分是隐式的。除了当亮度TB尺寸为4×4时(在这种情况下,单个4×4色度TB用于由四个4×4亮度TB覆盖的区域),色度TB尺寸在每个维度中是亮度TB尺寸的一半。在帧内预测的CU的情况下,(在CB内或外部的)最近的临近TB的解码样点被用作帧内预测的参考数据。

与先前标准相比,HEVC设计允许TB跨越帧间预测的CU的多个PB,以最大化四叉树结构TB分割的潜在编解码效率益处。

2.1.2.2父节点和子节点

根据四叉树结构划分CTB,四叉树结构的节点是编解码单元。四叉树结构中的多个节点包括叶节点和非叶节点。叶节点在树结构中没有子节点(即,叶节点不被进一步划分)。非叶节点包括树结构的根节点。根节点对应于视频数据的初始视频块(例如,CTB)。对于多个节点中的每个相应的非根节点,相应的非根节点对应于视频块,该视频块是与相应的非根节点的树结构中的父节点相对应的视频块的子块。多个非叶节点中的每个相应的非叶节点在树结构中具有一个或多个子节点。

2.1.3 JEM中具有更大CTU的四叉树加二叉树块结构

为了探索超HEVC的未来的视频编解码技术,由VCEG和MPEG于2015年联合成立了联合视频探索组(Joint Video Exploration Team,JVET)。此后,许多新方法被JVET采用,并被放到名为联合探索模型(Joint Exploration Model,JEM)的参考软件中。

2.1.3.1 QTBT块分割结构

不同于HEVC,QTBT结构移除了多个分割类型的概念,即,它移除了CU、PU和TU概念的分离,并且支持CU分割形状的更多灵活性。在QTBT块结构中,CU可以具有正方形或矩形形状。如图5所示,首先通过四叉树结构分割编解码树单元(CTU)。通过二叉树结构进一步分割四叉树叶节点。在二叉树划分中有两种划分类型,对称水平划分和对称垂直划分。二叉树叶节点被称为编解码单元(CU),并且该分段(segmentation)用于预测和变换处理而无需任何进一步的分割。这意味着CU、PU和TU在QTBT编解码块结构中具有相同的块尺寸。在JEM中,CU有时由不同颜色分量的编解码块(CB)组成,例如,一个CU在4:2:0色度格式的P条带和B条带的情况下包含一个亮度CB和两个色度CB,并且有时由单个分量的CB组成,例如,一个CU在I条带的情况下仅包含一个亮度CB或只包含两个色度CB。

为QTBT分割方案定义以下参数:

--CTU尺寸:四叉树的根节点尺寸,与HEVC中的概念相同

--MinQTSize:最小允许的四叉树叶节点尺寸

--MaxBTSize:最大允许的二叉树根节点尺寸

--MaxBTDepth:最大允许的二叉树深度

--MinBTSize:最小允许的二叉树叶节点尺寸

在QTBT分割结构的一个示例中,CTU尺寸被设置为128×128个亮度样点以及两个对应的64×64色度样点块,MinQTSize被设置为16×16,MaxBTSize被设置为64×64,MinBTSize(针对宽度和高度两者)被设置为4×4,并且MaxBTDepth被设置为4。四叉树分割首先应用于CTU以生成四叉树叶节点。四叉树叶节点可以具有从16×16(即,MinQTSize)至128×128(即,CTU尺寸)的尺寸。如果叶四叉树节点为128×128,则由于尺寸超过MaxBTSize(即,64×64),所以它不会通过二叉树被进一步划分。否则,叶四叉树节点可以通过二叉树被进一步分割。因此,四叉树叶节点也是二叉树的根节点,并且其二叉树深度为0。当二叉树深度达到MaxBTDepth(即,4)时,不考虑进一步的划分。当二叉树节点的宽度等于MinBTSize(即,4)时,不考虑进一步的水平划分。类似地,当二叉树节点的高度等于MinBTSize时,不考虑进一步的垂直划分。通过预测和变换处理进一步处理二叉树的叶节点,而无需任何进一步的分割。在JEM中,最大CTU尺寸为256×256个亮度样点。

图5(左边)示出了通过使用QTBT进行块分割的示例,并且图5(右边)示出了对应的树表示。实线指示四叉树划分,并且虚线指示二叉树划分。在二叉树的每个划分(即,非叶)节点中,信令通知一个标志以指示使用哪种划分类型(即,水平或垂直),其中0指示水平划分,并且1指示垂直划分。对于四叉树划分,不需要指示划分类型,因为四叉树划分总是水平和垂直地划分块以产生具有相同尺寸的4个子块。

另外,QTBT方案支持亮度和色度具有单独的QTBT结构的能力。目前,对于P条带和B条带,一个CTU中的亮度CTB和色度CTB共享相同的QTBT结构。然而,对于I条带,通过QTBT结构将亮度CTB分割为CU,并且通过另一个QTBT结构将色度CTB分割为色度CU。这意味着I条带中的CU由亮度分量的编解码块或两个色度分量的编解码块组成,并且P条带或B条带中的CU由所有三个颜色分量的编解码块组成。

在HEVC中,小块的帧间预测被限制,以减少运动补偿的存储器访问,使得对于4×8块和8×4块不支持双向预测,并且对于4×4块不支持帧间预测。在JEM的QTBT中,这些限制被移除。

2.1.4 VVC的三叉树

如先前的实施方式中所提出的,支持除了四叉树和二叉树之外的树类型。在实施方式中,还引入了两种三叉树(Ternary-Tree,TT)分割,即水平和垂直中心侧三叉树,如图6(d)和(e)所示。

图6示出了:(a)四叉树分割(b)垂直二叉树分割(c)水平二叉树分割(d)垂直中心侧三叉树分割(e)水平中心侧三叉树分割。

在先前的实施方式中,有两个级别的树,区域树(四叉树)和预测树(二叉树或三叉树)。首先通过区域树(Region Tree,RT)对CTU进行分割。可以用预测树(Prediction Tree,PT)进一步划分RT叶。还可以用PT进一步划分PT叶,直到达到最大PT深度。PT叶是基本编解码单元。为方便起见,它仍被称为CU。CU无法被进一步划分。预测和变换都以与JEM相同的方式应用于CU。整个分割结构被命名为“多类型树”。

2.1.5分割结构的示例

在该响应中使用的树结构(称为多树类型(Multi-Tree Type,MTT))是QTBT的一般化。在QTBT中,如图5所示,首先通过四叉树结构分割编解码树单元(CTU)。通过二叉树结构进一步分割四叉树叶节点。

MTT的基本结构由两种类型的树节点构成:区域树(RT)和预测树(PT),支持九种类型的分割,如图7所示。

图7示出了:(a)四叉树分割(b)垂直二叉树分割(c)水平二叉树分割(d)垂直三叉树分割(e)水平三叉树分割(f)水平向上非对称二叉树分割(g)水平向下非对称二叉树分割(h)垂直向左非对称二叉树分割(i)垂直向右非对称二叉树分割。

区域树可以递归地将CTU划分成方块,直到4×4尺寸的区域树叶节点。在区域树中的每个节点处,可以从以下三种树类型中的一种形成预测树:二叉树(BT)、三叉树(TT)和非对称二叉树(Asymmetric Binary Tree,ABT)。在PT划分中,禁止在预测树的分支中具有四叉树分割。如在JEM中一样,亮度树和色度树在I条带中被分离。用于RT和PT的信令通知方法如图8所示。

2.2 HEVC/H.265中的帧间预测

每个帧间预测的PU具有针对一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。还可以使用inter_pred_idc信令通知两个参考图片列表中的一个的使用。运动矢量可以被显式地编解码为相对于预测值的偏差(delta),这样的编解码模式被称为AMVP模式。

当以跳过模式对CU进行编解码时,一个PU与CU相关联,并且不存在显著的残差系数、没有编解码的运动矢量偏差或参考图片索引。指定Merge模式,由此从临近PU获得当前PU的运动参数,包括空域和时域候选。Merge模式可以应用于任何帧间预测的PU,而不仅应用于跳过模式。Merge模式的可选方案是运动参数的显式传输,其中每个PU显式地信令通知运动矢量、每个参考图片列表的对应参考图片索引、以及参考图片列表使用。

当信令指示要使用两个参考图片列表中的一个时,从一个样点块产生PU。这被称为“单向预测”。单向预测可用于P条带和B条带两者。

当信令指示要使用参考图片列表中的两者时,从两个样点块产生PU。这被称为“双向预测”。双向预测仅可用于B条带。

下文提供了关于在HEVC中指定的帧间预测模式的细节。描述将以Merge模式开始。

2.2.1 Merge模式

2.2.1.1 Merge模式的候选的推导

当使用Merge模式预测PU时,从比特流解析指向Merge候选列表中的条目的索引并将其用于检索运动信息。在HEVC标准中指定了该列表的构建,并且可以根据以下步骤序列进行概述:

·步骤1:初始候选推导

ο步骤1.1:空域候选推导

ο步骤1.2:空域候选的冗余检查

ο步骤1.3:时域候选推导

·步骤2:附加候选插入

ο步骤2.1:创建双向预测候选

ο步骤2.2:插入零运动候选

这些步骤还在图9中示意性地描绘了。对于空域Merge候选推导,在位于五个不同位置的候选当中选择最多四个Merge候选。对于时域Merge候选推导,在两个候选当中选择最多一个Merge候选。由于在解码器处假设每个PU的恒定数量的候选,因此当候选的数量未达到在条带头中信令通知的Merge候选的最大数量(MaxNumMergeCand)时,生成附加候选。由于候选的数量是恒定的,因此使用截断一元二值化(Unary Binarization,TU)来编码最佳Merge候选的索引。如果CU的尺寸等于8,则当前CU的所有PU共享单个Merge候选列表,其与2N×2N预测单元的Merge候选列表相同。

在以下内容中,详细描述了与前述步骤相关联的操作。

2.2.1.2空域候选推导

在对空域Merge候选的推导中,在位于图10中描绘的位置的候选当中选择最多四个Merge候选。推导的顺序是A1、B1、B0、A0和B2。仅当位置A1、B1、B0、A0的任何PU不可用(例如,因为它属于另一个条带或片)或者是帧内编解码的时,才考虑位置B2。在添加位置A1处的候选之后,对剩余候选的添加进行冗余检查,其确保具有相同运动信息的候选被排除在列表之外,从而改进编解码效率。为了降低计算复杂性,不是所有可能的候选对都在所提到的冗余检查被考虑。相反,只考虑用图11中的箭头链接的对,并且仅当用于冗余检查的对应候选没有相同的运动信息时,候选才被添加到列表。重复运动信息的另一个源是与不同于2N×2N的分割相关联的“第二PU”。作为示例,图12分别描绘了N×2N和2N×N的情况下的第二PU。当当前PU被分割为N×2N时,位置A1处的候选不被考虑用于列表构建。事实上,通过添加该候选将导致两个预测单元具有相同的运动信息,这对于在编解码单元中只具有一个PU是冗余的。类似地,当当前PU被分割为2N×N时,不考虑位置B1

2.2.1.3时域候选推导

在该步骤中,仅一个候选被添加到列表。具体地,在对该时域Merge候选的推导中,基于属于给定参考图片列表内的与当前图片具有最小POC差的图片的并置PU来推导缩放的运动矢量。在条带头中显式地信令通知要用于推导并置PU的参考图片列表。时域Merge候选的缩放的运动矢量如图13中的虚线所示而获得,该缩放的运动矢量是使用POC距离tb和td从并置PU的运动矢量缩放的,其中tb被定义为当前图片的参考图片与当前图片之间的POC差,并且td被定义为并置图片的参考图片与并置图片之间的POC差。时域Merge候选的参考图片索引被设置为等于零。在HEVC规范中描述了缩放过程的实际实现。对于B条带,获得并组合两个运动矢量(一个用于参考图片列表0,并且另一个用于参考图片列表1),以产生双向预测Merge候选。示出了用于时域Merge候选的运动矢量缩放。

在属于参考帧的并置PU(Y)中,在候选C0和C1之间选择时域候选的位置,如图14中所描绘的。如果位置C0处的PU不可用、是帧内编解码的、或者在当前CTU外部,则使用位置C1。否则,在时域Merge候选的推导中使用位置C0

2.2.1.4附加候选插入

除了空时Merge候选之外,存在两种附加类型的Merge候选:组合的双向预测Merge候选和零Merge候选。通过利用空时Merge候选来生成组合的双向预测Merge候选。组合的双向预测Merge候选仅用于B条带。通过将初始候选的第一参考图片列表运动参数与另一个初始候选的第二参考图片列表运动参数组合来生成组合的双向预测候选。如果这两个元组提供不同的运动假设,它们将形成新的双向预测候选。作为示例,图15描绘了当具有mvL0和refIdxL0或mvL1和refIdxL1的原始列表(在左边)中的两个候选用于创建添加到最终列表(在右边)的组合的双向预测Merge候选时的情况。有关于组合的许多规则,考虑这些规则以生成这些附加Merge候选。

插入零运动候选以填充Merge候选列表中的剩余条目,并因此达到MaxNumMergeCand容量。这些候选具有零空域位移和从零开始并且每当新的零运动候选添加到列表时增加的参考图片索引。由这些候选使用的参考帧的数量对于单向预测和双向预测分别是1和2。最终,不对这些候选执行冗余检查。

2.2.1.5用于并行处理的运动估计区域

为了加速编码过程,可以并行执行运动估计,从而同时推导给定区域内部的所有预测单元的运动矢量。从空域邻域推导Merge候选可能干扰并行处理,因为一个预测单元在其相关联的运动估计被完成之前不能从相邻PU推导运动参数。为了缓和编解码效率和处理时延之间的折衷,HEVC定义了使用“log2_parallel_merge_level_minus2”语法元素以图片参数集信令通知其尺寸的运动估计区域(Motion Estimation Region,MER)。当定义了MER时,落入相同区域的Merge候选被标记为不可用,并且因此在列表构建中不考虑。

7.3.2.3图片参数集RBSP语法

7.3.2.3.1一般图片参数集RBSP语法

log2_parallel_merge_level_minus2加2指定变量Log2ParMrgLevel的值,其用于如条款8.5.3.2.2所指定的Merge模式的亮度运动矢量的推导过程以及如条款8.5.3.2.3所指定的空域Merge候选的推导过程。log2_parallel_merge_level_minus2的值必须在0到CtbLog2SizeY-2的范围内,包括0和CtbLog2SizeY-2。

变量Log2ParMrgLevel如下推导:

Log2ParMrgLevel=log2_parallel_merge_level_minus2+2 (7-37)

注3-Log2ParMrgLevel的值指示Merge候选列表的并行推导的内置能力。例如,当Log2ParMrgLevel等于6时,被包含在64×64的块中的所有预测单元(PU)和编解码单元(CU)的Merge候选列表可以被并行地推导。

2.2.2 AMVP模式中的运动矢量预测

运动矢量预测利用运动矢量与临近PU的空时相关性,其用于运动参数的显式传输。它通过首先检查左边、上边时域上临近的PU位置的可用性,移除冗余候选并添加零矢量以使候选列表为恒定长度来构建运动矢量候选列表。然后,编码器可以从候选列表选择最佳预测值,并发送指示所选择的候选的对应索引。与Merge索引信令类似,使用截断一元来编码最佳运动矢量候选的索引。在这种情况下要被编码的最大值是2(例如,图2至图8)。在以下章节中,提供了关于运动矢量预测候选的推导过程的细节。

2.2.2.1运动矢量预测候选的推导

图16概述了运动矢量预测候选的推导过程。

在运动矢量预测中,考虑两种类型的运动矢量候选:空域运动矢量候选和时域运动矢量候选。对于空域运动矢量候选推导,最终基于位于如图11所描绘的五个不同位置的每个PU的运动矢量推导两个运动矢量候选。

对于时域运动矢量候选推导,从基于两个不同的并置位置而推导的两个候选选择一个运动矢量候选。在产生第一空时候选列表之后,移除列表中的重复的运动矢量候选。如果潜在候选的数量大于二,则从列表移除在相关联的参考图片列表内其参考图片索引大于1的运动矢量候选。如果空时运动矢量候选的数量小于二,则将附加的零运动矢量候选添加到列表。

2.2.2.2空域运动矢量候选

在空域运动矢量候选的推导中,在从位于如图11所描绘的位置的PU推导的五个潜在候选当中考虑最多两个候选,那些位置与运动Merge的位置相同。当前PU的左侧的推导顺序被定义为A0、A1、以及缩放的A0、缩放的A1。当前PU的上侧的推导顺序被定义为B0、B1、B2、缩放的B0、缩放的B1、缩放的B2。对于每一侧,因此存在可用作运动矢量候选的四种情况,其中两种情况不需要使用空域缩放,并且两种情况使用空域缩放。四种不同的情况概述如下:

·无空域缩放

-(1)相同的参考图片列表,以及相同的参考图片索引(相同的POC)

-(2)不同的参考图片列表,但是相同的参考图片(相同的POC)

·空域缩放

-(3)相同的参考图片列表,但是不同的参考图片(不同的POC)

-(4)不同的参考图片列表,以及不同的参考图片(不同的POC)

首先检查无空域缩放的情况,然后是空域缩放的情况。当POC在临近PU的参考图片与当前PU的参考图片之间不同时,考虑空域缩放,而不管参考图片列表如何。如果左边候选的所有PU都不可用或者是帧内编解码的,则允许针对上边运动矢量的缩放以帮助对左边和上边MV候选的并行推导。否则,对于上边运动矢量不允许空域缩放。

在空域缩放过程中,以与时域缩放类似的方式缩放临近PU的运动矢量,如图17所描绘。主要差异是参考图片列表和当前PU的索引作为输入给出;实际缩放过程与时域缩放的过程相同。

2.2.2.3时域运动矢量候选

除了参考图片索引推导,时域Merge候选的推导的所有过程与空域运动矢量候选的推导的所有过程相同(参见例如图6)。向解码器信令通知参考图片索引。

2.2.2.4 AMVP信息的信令

对于AMVP模式,可以在比特流中信令通知四个部分,即预测方向、参考索引、MVD和mv预测值候选索引。

语法表

7.3.8.9运动矢量差语法

2.3 JEM(联合探索模型)中的新的帧间预测方法

2.3.1基于子CU的运动矢量预测

在具有QTBT的JEM中,每个CU可以针对每个预测方向具有至多一个运动参数集合。通过将大CU划分成子CU并且推导大CU的所有子CU的运动信息,在编码器中考虑两个子CU级别运动矢量预测方法。可选时域运动矢量预测(ATMVP)方法允许每个CU从比并置参考图片中的当前CU小的多个块提取运动信息的多个集合。在空时运动矢量预测(STMVP)方法中,通过使用时域运动矢量预测值和空域临近运动矢量来递归地推导子CU的运动矢量。

为了保留子CU运动预测的更准确的运动场,参考帧的运动压缩当前被禁用。

2.3.1.1可选时域运动矢量预测

在可选时域运动矢量预测(ATMVP)方法中,通过从比当前CU小的块提取多个运动信息(包括运动矢量和参考索引)集合来修改运动矢量时域运动矢量预测(TMVP)方法。如图18所示,子CU是正方形N×N块(N默认被设置为4)。

ATMVP以两个步骤预测CU内的子CU的运动矢量。第一步骤是用所谓的时域矢量来识别参考图片中的对应块。参考图片被称为运动源图片。第二步骤是将当前CU划分成子CU,并从对应于每个子CU的块获得运动矢量以及每个子CU的参考索引,如图18所示。

在第一步骤中,参考图片和对应块由当前CU的空域临近块的运动信息确定。为了避免临近块的重复扫描过程,使用当前CU的Merge候选列表中的第一Merge候选。第一可用运动矢量以及其相关联的参考索引被设置为时域矢量和运动源图片的索引。这样,在ATMVP中,与TMVP相比,可以更准确地识别对应块,其中对应块(有时称为并置块)总是相对于当前CU处于右下方或中心位置。在一个示例中,如果第一Merge候选来自左边临近块(即,图19中的A1),则相关联的MV和参考图片用于识别源块和源图片。

图19示出了识别源块和源图片的示例。

在第二步骤中,通过向当前CU的坐标添加时域矢量,通过运动源图片中的时域矢量识别子CU的对应块。对于每个子CU,其对应块(覆盖中心样点的最小运动网格)的运动信息用于推导子CU的运动信息。在识别出对应的N×N块的运动信息之后,以与HEVC的TMVP相同的方式将其转换为当前子CU的运动矢量和参考索引,其中运动缩放和其他过程适用。例如,解码器检查是否满足低延迟条件(即,当前图片的所有参考图片的POC小于当前图片的POC),并且可能使用运动矢量MVx(对应于参考图片列表X的运动矢量)来预测每个子CU的运动矢量MVy(其中X等于0或1,并且Y等于1-X)。

2.3.1.2空时运动矢量预测

在该方法中,按照光栅扫描顺序递归地推导子CU的运动矢量。图20示出了该概念。我们考虑包含四个4×4子CU A、子CU B、子CU C和子CU D的8×8CU。当前帧中的临近4×4块被标记为a、b、c和d。

子CU A的运动推导通过识别其两个空域邻居开始。第一邻居是子CU A上边的N×N块(块c)。如果该块c不可用或是帧内编解码的,则检查子CU A上边的其他N×N块(在块c处开始,从左到右)。第二邻居是子CU A的左边的块(块b)。如果块b不可用或是帧内编解码的,则检查子CU A的左边的其他块(在块b处开始,从上到下)。从每个列表的临近块获得的运动信息被缩放为给定列表的第一参考帧。接下来,通过按照与HEVC中指定的相同的时域运动矢量预测值(Temporal Motion Vector Predictor,TMVP)推导过程来推导子块A的TMVP。在位置D处的并置块的运动信息被提取并相应地缩放。最后,在检索和缩放运动信息之后,针对每个参考列表分别对所有可用运动矢量(最多3个)进行平均。平均运动矢量被指定为当前子CU的运动矢量。

图20示出了具有四个子块(A-D)的一个CU及其临近块(a-d)的示例。

2.3.1.3子CU运动预测模式信令通知

子CU模式被启用作为附加Merge候选,并且不需要附加语法元素来信令通知该模式。两个附加Merge候选被添加到每个CU的Merge候选列表以表示ATMVP模式和STMVP模式。如果序列参数集指示启用了ATMVP和STMVP,则可以使用最多七个Merge候选。附加Merge候选的编码逻辑与HM中的Merge候选的编码逻辑相同,这意味着,对于P条带或B条带中的每个CU,针对两个附加Merge候选还需要两次RD检查。

在JEM中,Merge索引的所有二进制位都通过CABAC进行上下文编解码。而在HEVC中,仅第一个二进制位被上下文编解码,并且剩余的二进制位被上下文旁路编解码。

2.3.2自适应运动矢量差分辨率

在HEVC中,当条带头中的use_integer_mv_flag等于0时,以四分之一亮度样点为单位信令通知(在PU的运动矢量和预测运动矢量之间的)运动矢量差(MVD)。在JEM中,引入了局部自适应运动矢量分辨率(locally adaptive motion vector resolution,LAMVR)。在JEM中,可以以四分之一亮度样点、整数亮度样点或四亮度样点为单位编解码MVD。在编解码单元(CU)级别控制MVD分辨率,并且对于具有至少一个非零MVD分量的每个CU,有条件地信令通知MVD分辨率标志。

对于具有至少一个非零MVD分量的CU,信令通知第一标志以指示在CU中是否使用四分之一亮度样点MV精度。当第一标志(等于1)指示不使用四分之一亮度样点MV精度时,信令通知另一个标志以指示使用整数亮度样点MV精度还是四亮度样点MV精度。

当CU的第一MVD分辨率标志为零或未针对CU编解码(意味着CU中的所有MVD均为零)时,四分之一亮度样点MV分辨率用于CU。当CU使用整数亮度样点MV精度或四亮度样点MV精度时,CU的AMVP候选列表中的MVP被取整为对应精度。

在编码器中,CU级别RD检查用于确定哪个MVD分辨率要被用于CU。也就是说,对于每个MVD分辨率,执行三次CU级别RD检查。为了加快编码器速度,在JEM中应用以下编码方案:

在具有正常四分之一亮度样点MVD分辨率的CU的RD检查期间,存储当前CU(整数亮度样点精度)的运动信息。存储的运动信息(取整之后)被用作针对具有整数亮度样点和4亮度样点MVD分辨率的相同CU的RD检查期间的进一步小范围运动矢量细化的起始点,使得耗时的运动估计过程不会重复三次。

有条件地调用具有4亮度样点MVD分辨率的CU的RD检查。对于CU,当整数亮度样点MVD分辨率的RD代价远大于四分之一亮度样点MVD分辨率的RD代价时,跳过CU的4亮度样点MVD分辨率的RD检查。

2.3.3模式匹配的运动矢量推导

模式匹配的运动矢量推导(Pattern Matched Motion Vector Derivation,PMMVD)模式是基于帧速率上转换(FRUC)技术的特殊Merge模式。利用该模式,不信令通知块的运动信息,而是在解码器侧推导块的运动信息。

当CU的Merge标志为真时,对CU信令通知FRUC标志。当FRUC标志为假时,信令通知Merge索引并且使用常规Merge模式。当FRUC标志为真时,信令通知附加FRUC模式标志以指示要使用哪个方法(双边匹配或模板匹配)来推导块的运动信息。

在编码器侧,关于是否对CU使用FRUC Merge模式的决定是基于对正常Merge候选所做的RD代价选择。也就是说,通过使用RD代价选择对CU检查两种匹配模式(双边匹配和模板匹配)。引起最小代价的一个匹配模式进一步与其他CU模式比较。如果FRUC匹配模式是最有效的模式,则对于CU将FRUC标志设置为真,并且使用相关匹配模式。

FRUC Merge模式中的运动推导过程具有两个步骤。首先执行CU级别运动搜索,然后执行子CU级别运动细化。在CU级别,基于双边匹配或模板匹配针对整个CU推导初始运动矢量。首先,生成MV候选列表,并且选择引起最小匹配代价的候选作为进一步CU级别细化的起始点。然后,执行起始点周围的基于双边匹配或模板匹配的局部搜索,并且将引起最小匹配代价的MV作为整个CU的MV。随后,以推导的CU运动矢量作为起始点,以子CU级别进一步细化运动信息。

例如,针对W×HCU运动信息推导执行以下推导过程。在第一阶段,推导整个W×HCU的MV。在第二阶段,CU被进一步划分成M×M个子CU。如在(16)中计算M的值。D是预定义划分深度,在JEM中默认设置为3。然后推导每个子CU的MV。

如图21所示,双边匹配用于通过在两个不同参考图片中沿着当前CU的运动轨迹找到两个块之间的最接近匹配来推导当前CU的运动信息。在连续运动轨迹的假设下,指向两个参考块的运动矢量MV0和MV1应该与当前图片和两个参考图片之间的时域距离(即,TD0和TD1)成比例。作为特殊情况,当当前图片在时域上在两个参考图片之间并且从当前图片到两个参考图片的时域距离相同时,双边匹配变为基于镜像的双向MV。

如图22所示,模板匹配用于通过找到当前图片中的模板(当前CU的顶部和/或左边临近块)和参考图片中的块(与模板尺寸相同)之间的最接近匹配来推导当前CU的运动信息。除了前述FRUC Merge模式之外,模板匹配也被应用于AMVP模式。在JEM中,如在HEVC中所做的,AMVP具有两个候选。利用模板匹配方法,新的候选被推导。如果通过模板匹配新推导的候选与第一现有AMVP候选不同,则将其插入AMVP候选列表的最开始处,然后将列表尺寸设置为二(意味着移除第二现有AMVP候选)。当应用于AMVP模式时,仅应用CU级别搜索。

2.3.3.1 CU级别MV候选集

CU级别的MV候选集由以下组成:

(i)原始AMVP候选(如果当前CU处于AMVP模式)

(ii)所有Merge候选

(iii)插值MV场中的几个MV

(iv)顶部和左边临近运动矢量

当使用双边匹配时,Merge候选的每个有效MV用作输入以在假设双边匹配的情况下生成MV对。例如,在参考列表A处,Merge候选的一个有效MV是(MVa、refa)。然后,在其他参考列表B中找到其配对双边MV的参考图片refb,使得refa和refb在时域上位于当前图片的不同侧。如果这样的refb在参考列表B中不可用,则refb被确定为与refa不同的参考,并且其到当前图片的时域距离是列表B中的最小一个。在确定refb之后,基于当前图片和refa、refb之间的时域距离通过缩放MVa来推导MVb。

来自插值MV场的四个MV也被添加到CU级别候选列表。更具体地,添加当前CU的位置(0,0)、(W/2,0)、(0,H/2)和(W/2,H/2)处的插值MV。

当FRUC被应用于AMVP模式中时,原始AMVP候选也被添加到CU级别MV候选集。

在CU级别,对于AMVP CU,最多15个MV被添加到候选列表;对于Merge CU,最多13个MV被添加到候选列表。

2.3.3.2子CU级别MV候选集

子CU级别的MV候选集由以下组成:

(i)从CU级别搜索确定的MV,

(ii)顶部、左边、左上方和右上方临近MV,

(iii)来自参考图片的并置MV的缩放版本,

(iv)最多4个ATMVP候选,

(v)最多4个STMVP候选

来自参考图片的缩放的MV如下推导。遍历两个列表中的所有参考图片。参考图片中的子CU的并置位置处的MV被缩放为起始CU级别MV的参考。

ATMVP和STMVP候选被限制为前四个。

在子CU级别,最多17个MV被添加到候选列表。

2.3.3.3插值MV场的生成

在对帧进行编解码之前,基于单向ME为整个图片生成插值运动场。然后,运动场可以稍后用作CU级别或子CU级MV候选。

首先,两个参考列表中的每个参考图片的运动场以4×4块级别遍历。对于每个4×4块,如果运动与通过当前图片(如图23所示)中的4×4块的块相关联并且块未被分配任何插值运动,则参考块的运动根据时域距离TD0和TD1缩放到当前图片(其缩放方式与HEVC中的TMVP的MV缩放的方式相同),并且缩放的运动被分配给当前帧中的块。如果没有缩放的MV被分配给4×4块,则在插值运动场中将块的运动标记为不可用。

2.3.3.4插值和匹配代价

当运动矢量指向分数样点位置时,需要运动补偿插值。为了降低复杂性,双线性插值代替常规8抽头HEVC插值用于双边匹配和模板匹配。

匹配代价的计算在不同步骤处略微不同。当从CU级别的候选集选择候选时,匹配代价是双边匹配或模板匹配的绝对和差(Absolute Sum Difference,SAD)。在确定起始MV之后,子CU级别搜索的双边匹配的匹配代价C如下计算:

其中w是加权因子,其可以经验地设置为4,MV和MVs分别指示当前MV和起始MV。SAD仍然用作子CU级别搜索的模板匹配的匹配代价。

在FRUC模式中,通过仅使用亮度样点来推导MV。推导的运动将用于MC帧间预测的亮度和色度两者。在决定MV之后,对于亮度,使用8抽头插值滤波器来执行最终MC;对于色度,使用4抽头插值滤波器来执行最终MC。

2.3.3.5 MV细化

MV细化是基于模式的MV搜索,以双边匹配代价或模板匹配代价为标准。在JEM中,支持两个搜索模式—无限制的中心偏置菱形搜索(Unrestricted Center-Biased DiamondSearch,UCBDS)和自适应交叉搜索,其分别用于CU级别和子CU级别MV细化。对于CU级别和子CU级别MV细化,以四分之一亮度样点MV精度直接搜索MV,并且接着是八分之一亮度样点MV细化。CU步骤和子CU步骤的MV细化的搜索范围被设置为等于8个亮度样点。

2.3.3.6模板匹配FRUC Merge模式中的预测方向的选择

在双边匹配Merge模式中,总是应用双向预测,因为CU的运动信息是基于两个不同参考图片中沿着当前CU的运动轨迹的两个块之间的最接近匹配而推导的。对于模板匹配Merge模式没有这样的限制。在模板匹配Merge模式中,编码器可以在根据列表0的单向预测、根据列表1的单向预测、或者CU的双向预测当中进行选择。选择基于模板匹配代价,如下所示:

如果costBi<=factor*min(cost0,cost1)

使用双向预测;

否则,如果cost0<=cost1

使用根据列表0的单向预测;

否则,

使用根据列表1的单向预测;

其中,cost0是列表0模板匹配的SAD,cost1是列表1模板匹配的SAD,并且costBi是双向预测模板匹配的SAD。factor的值等于1.25时,这意味着选择过程偏向于双向预测。

帧间预测方向选择仅被应用于CU级别模板匹配过程。

2.3.4具有双边匹配细化的Merge/跳过模式[8]

首先通过利用冗余检查将空域临近和时域临近块的运动矢量和参考索引插入到候选列表中,直到可用候选的数量达到最大候选尺寸19来构建Merge候选列表。通过根据预定义的插入顺序插入空域候选(图11)、时域候选、仿射候选、高级时域MVP(ATMVP)候选、空时MVP(STMVP)候选和如HEVC所使用的附加候选(组合的候选和零候选)来构建Merge/跳过模式的Merge候选列表:

-块1-块4的空域候选。

-块1-块4的外插(extrapolated)仿射候选。

-ATMVP。

-STMVP。

-虚拟仿射候选。

-空域候选(块5)(仅当可用候选的数量小于6时使用)。

-外插仿射候选(块5)。

-时域候选(如在HEVC中推导的)。

-非相邻空域候选,其后是外插仿射候选(块6至块49,如图24所描绘的)。

-组合的候选。

-零候选。

注意,除了STMVP和仿射之外,IC标志也从Merge候选继承。此外,对于前四个空域候选,在具有单向预测的候选之前插入双向预测候选。

在[8]中,可以访问与当前块不连接的块。如果以非帧内模式对非相邻块进行编解码,则相关联的运动信息可以被添加作为附加Merge候选。

2.3.5共享Merge列表JVET-M0170

提出对于CU划分树中的一个祖先节点的所有叶编解码单元(CU)共享相同Merge候选列表,以便使得能够并行处理小的跳过/Merge编解码CU。祖先节点被命名为Merge共享节点。假设Merge共享节点是叶CU,在Merge共享节点处生成共享Merge候选列表。

对于类型2定义,在解码的解析阶段期间,将针对CTU内部的每个CU决定Merge共享节点;此外,Merge共享节点是叶CU的祖先节点,其必须满足以下2个准则:

Merge共享节点尺寸等于或大于尺寸阈值

在Merge共享节点中,子CU尺寸中的一个小于尺寸阈值

此外,必须保证没有Merge共享节点的样点在图片边界外部。在解析阶段期间,如果祖先节点满足准则(1)和(2),但是在图片边界外部具有一些样点,则该祖先节点将不是Merge共享节点,并且它继续为其子CU寻找Merge共享节点。

图35示出了类型1定义和类型2定义的差异的示例。在该示例中,父节点被三叉划分成3个子节点。父节点的尺寸是128。对于类型1定义,3个子节点将分别是Merge共享节点。但是对于类型2定义,父节点是Merge共享节点。

所提出的共享Merge候选列表算法支持平移Merge(包括Merge模式和三角形Merge模式,也支持基于历史的候选)和基于子块的Merge模式。对于所有种类的Merge模式,共享Merge候选列表算法的行为看起来基本相同,并且它只在假设Merge共享节点是叶CU的Merge共享节点处生成候选。它具有2个主要益处。第一个益处是实现Merge模式的并行处理,第二个益处是将所有叶CU的所有计算共享到Merge共享节点。因此,它显著降低了硬件编解码器的所有Merge模式的硬件成本。通过所提出的共享Merge候选列表算法,编码器和解码器可以容易地支持Merge模式的并行编码,并且它减轻了Merge模式的周期预算问题。

2.3.6片组

采用JVET-L0686,其中条带被移除以有利于片组,并且HEVC语法元素slice_address被tile_group_header中的tile_group_address替换(如果图片中有多于一个片),作为片组中的第一个片的地址。

3.通过本文公开的实施例解决的问题的示例

当前HEVC设计可以采用当前块与其临近块(紧邻当前块)的相关性来更好地编解码运动信息。然而,临近块可能对应于具有不同运动轨迹的不同对象。在这种情况下,根据当前块的临近块进行预测效率不高。

根据非相邻块的运动信息的预测可以带来附加编解码增益,其代价是将所有运动信息(通常在4×4级别)存储到高速缓存中,这显著增加了硬件实施的复杂性。

4.一些示例

为了克服现有实施方式的缺点,在各种实施例中,可以实施基于LUT的运动矢量预测技术,该技术使用存储有至少一个运动候选的一个或多个查找表来预测块的运动信息,以提供具有更高编解码效率的视频编解码。每个LUT可以包括一个或多个运动候选,每个运动候选与对应的运动信息相关联。运动候选的运动信息可以包括预测方向、参考索引/图片、运动矢量、LIC标志、仿射标志、运动矢量推导(MVD)精度和/或MVD值的部分或全部。运动信息还可以包括块位置信息,以指示运动信息来自哪里。

基于所公开的技术的基于LUT的运动矢量预测可以增强现有和未来的视频编解码标准,在以下针对各种实施方式描述的示例中对其进行阐述。因为LUT允许基于历史数据(例如,已经被处理的块)来执行编码/解码过程,所以基于LUT的运动矢量预测也可以被称为基于历史的运动矢量预测(HMVP)方法。在基于LUT的运动矢量预测方法中,在编码/解码过程期间,维护具有来自先前编解码的块的运动信息的一个或多个表。存储在LUT中的这些运动候选被命名为HMVP运动候选。在一个块的编码/解码期间,可以将LUT中的相关联的运动信息添加到运动候选列表,并且在对一个块进行编码/解码之后,可以更新LUT。更新后的LUT然后被用于对后续块进行编解码。以下示例应该被视为解释一般概念的示例。不应该狭隘地解释这些示例。此外,可以以任何方式组合这些示例。

一些实施例可以使用存储有至少一个运动候选的一个或多个查找表来预测块的运动信息。实施例可以使用运动候选来指示存储在查找表中的运动信息集合。对于传统的AMVP或Merge模式,实施例可以使用AMVP或Merge候选来存储运动信息。

下面的示例解释了一般概念。

查找表的使用

1.查找表中运动候选的检查顺序(例如,HMVP中的HMVP候选)定义如下(假设允许检查K(K≥1)个运动候选):

a.在一个示例中,查找表中要检查的运动候选(例如,查找表中的HMVP候选)的最大数量(即,可以被添加到Merge/AMVP候选列表中的运动候选的最大数量)可以取决于变量。

i.在一个示例中,变量是预定义的,诸如5。

ii.在一个示例中,当从LUT中检查HMVP候选之前,可用运动候选的数量(诸如在修剪之后)小于变量值时,可以按顺序检查查找表中的一个或多个运动候选(例如,HMVP候选)。

iii.在一个示例中,当可用运动候选的数量(诸如在修剪之后)不小于变量值时,不按顺序检查查找表中的运动候选(例如,HMVP候选)。

b.不同查找表的检查顺序在下一小节的查找表的使用中定义。

c.一旦Merge/AMVP候选列表达到列表的最大允许候选数量,HMVP候选的检查过程就终止。

d.一旦Merge/AMVP候选列表达到列表的最大允许候选数量减去阈值(Th),HMVP候选的检查过程就终止。在一个示例中,Th可以被预定义为正整数值,例如,1、2或3。可替代地,Th可以从块到块自适应地改变。可替代地,Th可以以SPS/PPS/条带头等信令通知。可替代地,Th还可以取决于块形状/块尺寸/编解码模式等。可替代地,Th可以取决于在从LUT添加运动候选之前有多少可用候选。

e.可替代地,一旦添加的运动候选的数量达到最大允许运动候选数量,HMVP候选的检查过程就终止。可以信令通知或预定义运动候选列表的最大允许运动候选数量。可替代地,最大允许运动候选数量还可以取决于块形状/块尺寸/编解码模式等。

查找表的更新

2.提出Merge列表可以一直被构建,直到给定数量的允许值(由MaxNumConstructedListSize表示),而允许的Merge候选的数量可以小于MaxNumConstructedListSize。

a.在一个示例中,MaxNumConstructedListSize被设置为6。

b.在一个示例中,可以向解码器信令通知对允许的Merge候选的数量的指示,诸如以SPS/条带头/图片头/片组头/视频数据单元。

c.可替代地,此外,允许的Merge候选的数量(例如,VVC规范中的MaxNumMergeCand)控制Merge索引的解析,但是它与应该在Merge列表中构建多少Merge候选解耦。

i.例如,无论允许的Merge候选的数量是多少,Merge候选列表总是用固定的尺寸(诸如MaxNumConstructedListSize)来构建。

d.在一个示例中,是否调用HMVP候选推导过程取决于可用Merge候选的数量和给定阈值,诸如5。

i.例如,如果可用Merge候选的数量不小于给定阈值,则不调用HMVP候选推导过程。

e.在一个示例中,是否调用成对平均候选推导过程可以取决于给定阈值,诸如6。

i.例如,如果可用Merge候选的数量不小于给定阈值,则不调用成对平均候选推导过程。

f.在一个示例中,是否停止零运动候选推导过程可以取决于给定阈值,诸如6。

i.例如,如果可用Merge候选的数量不小于给定阈值,则不调用零候选推导过程。

g.在一个示例中,Merge列表可以指常规Merge列表、子块Merge列表、IBC Merge列表、三角形Merge列表。

3.三角形Merge列表构建过程可以包括两个步骤:1)调用常规Merge列表构建过程和2)虚拟候选推导过程。

a.在一个示例中,可以调用整个常规Merge列表构建过程。

b.可替代地,可以调用常规Merge列表构建过程的一部分(诸如仅仅调用空域/时域/HMVP/成对平均候选的过程)。

c.在一个示例中,当可用常规Merge候选的数量小于最大允许的TPM(三角形分割模式,triangular partitioning mode)候选时,可以调用虚拟候选推导过程。

d.在一个示例中,可以使用在PCT/CN2018/115183、PCT/CN2019/075856和PCT/CN2019/079061中描述的技术来推导虚拟候选,所有这些都通过引用结合于此。

附加示例实施例

示例实施例#1

在该实施例中,是否调用HMVP候选推导过程可以取决于可用Merge候选的数量和给定阈值(例如,在下面的示例中将阈值设置为5)。

此外,是否停止零运动候选推导过程可以取决于给定阈值(例如,在下面的示例中将阈值设置为5)。

该示例实施例涉及在VVC编解码器的背景下实施一些所公开的技术。本小节示出了针对示例实施方式如何修改当前版本的编解码器标准。在本小节中,章节和等式编号是指VVC视频编解码标准的当前版本中对应的章节和等式编号。

还要注意,删除是用粗体双方括号表示的,例如,[[a]]表示“a”将要被删除,并且新添加的文本是带下划线的粗体文本。

8.5.2.2 Merge模式的亮度运动矢量的推导过程

该过程仅在merge_flag[xCb][yPb]等于1时调用,其中(xCb,yCb)表示当前亮度编解码块相对于当前图片的左上角亮度样点的左上角样点。

该过程的输入是:

-当前亮度编解码块相对于当前图片的左上角亮度样点的左上角样点的亮度位置(xCb,yCb),

-变量cbWidth表示当前编解码块的亮度样点的宽度,

-变量cbHeight表示当前编解码块的亮度样点的高度。

该过程的输出是:

-1/16分数样点精度的亮度运动矢量,mvL0[0][0]和mvL1[0][0],

-参考索引refIdxL0和refIdxL1,

-预测列表利用标志predFlagL0[0][0]和predFlagL1[0][0],

-双向预测权重指数gbiIdx。

双向预测权重指数gbiIdx被设置为等于0。

变量xSmr、ySmr、smrWidth、smrHeight和smrNumHmvpCand如下推导:

xSmr=IsInSmr[xCb][yCb]?SmrX[xCb][yCb]:xCb (8-276)

ySmr=IsInSmr[xCb][yCb]?SmrY[xCb][yCb]:yCb (8-277)

smrWidth=IsInSmr[xCb][yCb]?SmrW[xCb][yCb]:cbWidth

(8-278)

smrHeight=IsInSmr[xCb][yCb]?SmrH[xCb][yCb]:cbHeight

(8-279)

smrNumHmvpCand=IsInSmr[xCb][yCb]?NumHmvpSmrCand:NumHmvpCand(8-280)

运动矢量mvL0[0][0]和mvL1[0][0]、参考索引refIdxL0和refIdxL1以及预测利用标志predFlagL0[0][0]和predFlagL1[0][0]通过以下有序步骤进行推导:

1.以被设置为等于(xSmr,ySmr)的亮度编解码块位置(xCb,yCb)、被设置为等于smrWidth和smrHeight的亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight作为输入来调用条款8.5.2.3中指定的用于合并来自临近编解码单元的候选的推导过程,并且输出是可用性标志availableFlagA0、availableFlagA1、availableFlagB0、availableFlagB1和availableFlagB2,参考索引refIdxLXA0、refIdxLXA1、refIdxLXB0、refIdxLXB1和refIdxLXB2,预测列表利用标志predFlagLXA0、predFlagLXA1、predFlagLXB0、predFlagLXB1和predFlagLXB2,以及运动矢量mvLXA0、mvLXA1、mvLXB0、mvLXB1和mvLXB2(其中X是0或1),以及双向预测权重指数gbiIdxA0、gbiIdxA1、gbiIdxB0、gbiIdxB1、gbiIdxB2

2.参考索引refIdxLXCol(其中X是0或1)和时域Merge候选Col的双向预测权重指数gbiIdxCol被设置为等于0。

3.以被设置为等于(xSmr,ySmr)的亮度位置(xCb,yCb)、被设置为等于smrWidth和smrHeight的亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight以及变量refIdxL0Col作为输入来调用条款8.5.2.11中指定的时域亮度运动矢量预测的推导过程,并且输出是可用性标志availableFlagL0Col和时域运动矢量mvL0Col。变量availableFlagCol、predFlagL0Col和predFlagL1Col如下推导:

availableFlagCol=availableFlagL0Col (8-281)

predFlagL0Col=availableFlagL0Col (8-282)

predFlagL1Col=0 (8-283)

4.当tile_group_type等于B时,以被设置为等于(xSmr,ySmr)的亮度位置(xCb,yCb)、被设置为等于smrWidth和smrHeight的亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight以及变量refIdxL1Col作为输入来调用条款8.5.2.11中指定的时域亮度运动矢量预测的推导过程,并且输出是可用性标志availableFlagL1Col和时域运动矢量mvL1Col。变量availableFlagCol和predFlagL1Col如下推导:

availableFlagCol=availableFlagL0Col||availableFlagL1Col (8-284)

predFlagL1Col=availableFlagL1Col (8-285)

5.Merge候选列表mergeCandList如下构建:

6.变量numCurrMergeCand和numOrigMergeCand被设置为等于mergeCandList中的Merge候选的数量。

7.当numCurrMergeCand小于5[[(MaxNumMergeCand-1)]]并且smrNumHmvpCand大于0时,适用以下过程:

-以mergeCandList、被设置为等于IsInSmr[xCb][yCb]的isInSmr、以及numCurrMergeCand作为输入来调用在8.5.2.6中指定的基于历史的Merge候选的推导过程,并且修改的mergeCandList和numCurrMergeCand作为输出。

-numOrigMergeCand被设置为等于numCurrMergeCand。

8.当numCurrMergeCand小于MaxNumMergeCand且大于1时,适用以下过程:

-以mergeCandList、参考索引refIdxL0N和refIdxL1N、预测列表利用标志predFlagL0N和predFlagL1N、mergeCandList中每个候选N的运动矢量mvL0N和mvL1N、numCurrMergeCand和numOrigMergeCand作为输入来调用条款8.5.2.4中指定的成对平均Merge候选的推导过程,并且输出被分配给mergeCandList、numCurrMergeCand、参考索引refIdxL0avgCand和refIdxL1avgCand、预测列表利用标志predFlagL0avgCand和predFlagL1avgCand、以及被添加到mergeCandList中的候选avgCand的运动矢量mvL0avgCand和mvL1avgCand。被添加到mergeCandList中的候选avgCand的双向预测权重指数gbiIdx被设置为等于0。

-numOrigMergeCand被设置为等于numCurrMergeCand。

9.以mergeCandList、参考索引refIdxL0N和refIdxL1N、预测列表利用标志predFlagL0N和predFlagL1N、mergeCandList中每个候选N的运动矢量mvL0N和mvL1N、以及numOrigMergeCand作为输入来调用条款8.5.2.5中指定的零运动矢量Merge候选的推导过程,并且输出被分配给mergeCandList、numCurrMergeCand、参考索引refIdxL0zeroCandm和refIdxL1zeroCandm、预测列表利用标志predFlagL0zeroCandm和predFlagL1zeroCandm、以及被添加到mergeCandList中的每个新候选zeroCandm的运动矢量mvL0zeroCandm和mvL1zeroCandm。被添加到mergeCandList中的每个新候选zeroCandm的双向预测权重指数gbiIdx被设置为0。被添加的候选的数量numZeroMergeCand被设置为等于(numCurrMergeCand-numOrigMergeCand)。当numZeroMergeCand大于0时,m的范围从0至numZeroMergeCand–1(包含0和numZeroMergeCand–1)。

10.进行以下分配,其中,N是Merge候选列表mergeCandList中的位置merge_idx[xCb][yCb]处的候选(N=mergeCandList[merge_idx[xCb][yCb]]),并且X被替换为0或1:

refIdxLX=refIdxLXN (8-287)

predFlagLX[0][0]=predFlagLXN (8-288)

mvLX[0][0][0]=mvLXN[0] (8-289)

mvLX[0][0][1]=mvLXN[1] (8-290)

gbiIdx=gbiIdxN (8-291)

11.当mmvd_flag[xCb][yCb]等于1时,适用以下过程:

-以亮度位置(xCb,yCb)、亮度运动矢量mvL0[0][0]、mvL1[0][0]、参考索引refIdxL0、refIdxL1、以及预测列表利用标志predFlagL0[0][0]和predFlagL1[0][0]作为输入来调用8.5.2.7中指定的Merge运动矢量差的推导过程,并且运动矢量差mMvdL0和mMvdL1作为输出。

-对于X为0和1,运动矢量差mMvdLX被添加到Merge运动矢量mvLX,如下:

mvLX[0][0][0]+=mMvdLX[0] (8-292)

mvLX[0][0][1]+=mMvdLX[1] (8-293)

8.5.2.5零运动矢量Merge候选的推导过程

该过程的输入是:

-Merge候选列表mergeCandList,

-mergeCandList中的每个候选N的参考索引refIdxL0N和refIdxL1N,

-mergeCandList中的每个候选N的预测列表利用标志predFlagL0N和predFlagL1N,

-mergeCandList中的每个候选N的运动矢量mvL0N和mvL1N,

-mergeCandList内元素numCurrMergeCand的数量。

该过程的结果是:

-Merge候选列表mergeCandList,

-mergeCandList内元素numCurrMergeCand的数量,

-在该过程的调用期间被添加到mergeCandList中的每个新候选zeroCandm的参考索引refIdxL0zeroCandm和refIdxL1zeroCandm

-在该过程的调用期间被添加到mergeCandList中的每个新候选zeroCandm的预测列表利用标志predFlagL0zeroCandm和predFlagL1zeroCandm

-在该过程的调用期间被添加到mergeCandList中的每个新候选zeroCandm的运动矢量mvL0zeroCandm和mvL1zeroCandm

变量numRefIdx如下推导:

-如果tile_group_type等于P,则将numRefIdx设置为等于NumRefIdxActive[0]。

-否则(tile_group_type等于B),将numRefIdx设置为等于Min(NumRefIdxActive[0],NumRefIdxActive[1])。

当numCurrMergeCand小于MaxNumMergeCand时,变量numInputMergeCand被设置为等于numCurrMergeCand,变量zeroIdx被设置为等于0,并且重复以下有序步骤,直到numCurrMergeCand等于6[[MaxNumMergeCand]]:

1.对于零运动矢量Merge候选的参考索引、预测列表利用标志和运动矢量的推导,应用以下过程:

-如果tile_group_type等于P,则在mergeCandList的末尾添加m等于(numCurrMergeCand-numInputMergeCand)的候选zeroCandm,即mergeCandList[numCurrMergeCand]被设置为等于zeroCandm,并且zeroCandm的参考索引、预测列表利用标志和运动矢量如下推导,并且numCurrMergeCand递增1:

refIdxL0zeroCandm=(zeroIdx<numRefIdx)?zeroIdx:0 (8-335)

refIdxL1zeroCandm=-1 (8-336)

predFlagL0zeroCandm=1 (8-337)

predFlagL1zeroCandm=0 (8-338)

mvL0zeroCandm[0]=0 (8-339)

mvL0zeroCandm[1]=0 (8-340)

mvL1zeroCandm[0]=0 (8-341)

mvL1zeroCandm[1]=0 (8-342)

numCurrMergeCand=numCurrMergeCand+1 (8-343)

-否则(tile_group_type等于B),在mergeCandList的末尾添加m等于(numCurrMergeCand-numInputMergeCand)的候选zeroCandm,即mergeCandList[numCurrMergeCand]被设置为等于zeroCandm,并且zeroCandm的参考索引、预测列表利用标志和运动矢量如下推导,并且numCurrMergeCand递增1:

refIdxL0zeroCandm=(zeroIdx<numRefIdx)?zeroIdx:0 (8-344)

refIdxL1zeroCandm=(zeroIdx<numRefIdx)?zeroIdx:0 (8-345)

predFlagL0zeroCandm=1 (8-346)

predFlagL1zeroCandm=1 (8-347)

mvL0zeroCandm[0]=0 (8-348)

mvL0zeroCandm[1]=0 (8-349)

mvL1zeroCandm[0]=0 (8-350)

mvL1zeroCandm[1]=0 (8-351)

numCurrMergeCand=numCurrMergeCand+1 (8-352)

2.变量zeroIdx递增1。

图25是视频处理装置2500的框图。装置2500可以用来实施本文描述的方法中的一种或多种。装置2500可以体现在智能电话、平板电脑、计算机、物联网(Internet ofThings,IoT)接收器等中。装置2500可以包括一个或多个处理器2502、一个或多个存储器2504、以及视频处理硬件2506。(多个)处理器2502可以被配置为实施本文档中描述的一种或多种方法。存储器(多个存储器)2504可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件2506可以用来以硬件电路实施本文档中描述的一些技术。

图26是示出可以在其中实施本文公开的各种技术的示例视频处理系统2600的框图。各种实施方式可以包括系统2600的一些或所有组件。系统2600可以包括用于接收视频内容的输入2602。视频内容可以以例如8或10比特多分量像素值的原始或未压缩格式接收,或者可以是压缩或编码格式。输入2602可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(Passive Optical Network,PON)等的有线接口和诸如Wi-Fi或蜂窝接口的无线接口。

系统2600可以包括可以实施本文档中描述的各种编码或解码方法的编解码组件2604。编解码组件2604可以将来自输入2602的视频的平均比特率减小到编解码组件2604的输出,以产生视频的编解码表示。编解码技术因此有时被称为视频压缩或视频转码技术。编解码组件2604的输出可以被存储,或者经由如由组件2606表示的通信连接发送。在输入2602处接收的视频的存储或通信传送的比特流(或编解码)表示可以由组件2608用来生成像素值或传送到显示接口2610的可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是将理解,编解码工具或操作在编码器处被使用,并且反转编解码结果的对应的解码工具或操作将由解码器执行。

外围总线接口或显示接口的示例可以包括通用串行总线(Universal SerialBus,USB)、或高清晰度多媒体接口(High Definition Multimedia Interface,HDMI)、或显示端口(Displayport)等。存储接口的示例包括SATA(Serial Advanced TechnologyAttachment,串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能电话、或能够执行数字数据处理和/或视频显示的其他设备。

图27是视频处理方法的示例的流程图。方法2700包括,在操作2710处,基于第一阈值(T1)来确定表中要检查的基于历史的运动矢量预测(HMVP)候选的最大数量。

方法2700还包括,在操作2720处,做出关于按顺序选择性检查多个HMVP候选的决定,所检查的HMVP候选的数量不超过HMVP候选的最大数量。

方法2700还包括,在操作2730处,基于该决定来构建运动候选列表。

方法2700还包括,在操作2740处,基于运动候选列表来执行当前块和当前块的比特流表示之间的转换。

图28是视频处理方法的另一示例的流程图。方法2800包括,在操作2810处,构建包括多个允许的Merge候选的Merge列表。在一些实施例中,当前块的多个允许的Merge候选的数量小于或等于最大列表尺寸。

方法2800还包括,在操作2820处,基于Merge列表来执行当前块和当前块的比特流表示之间的转换。

图29是视频处理方法的又一示例的流程图。方法2900包括,在操作2910处,基于对Merge列表构建过程和虚拟候选推导过程的选择性调用,构建三角形Merge列表。

方法2900还包括,在操作2920处,基于三角形Merge列表来执行当前块和当前块的比特流表示之间的转换。

在一些实施例中,Merge列表构建过程包括构建空域候选、时域候选、基于历史的运动矢量预测(HMVP)候选或成对平均候选中的至少一个,并且虚拟候选推导过程包括直接复制一个或多个Merge候选的运动信息。

在一些实施例中,可以实施以下技术方案:

1.一种用于视频处理的方法,包括:基于第一阈值(T1)来确定表中要检查的基于历史的运动矢量预测(HMVP)候选的最大数量;做出关于按顺序选择性检查多个HMVP候选的决定,所检查的HMVP候选的数量不超过HMVP候选的最大数量;基于该决定来构建运动候选列表;以及基于运动候选列表来执行当前块和当前块的比特流表示之间的转换。

2.根据方案1所述的方法,其中,要检查的HMVP候选的最大数量等于第一阈值。

3.根据方案1或2所述的方法,其中,第一阈值是可变阈值。

4.根据方案1或2所述的方法,其中,第一阈值是预定的。

5.根据方案2至4中任一项所述的方法,其中,T1=5。

6.根据方案1所述的方法,其中,当确定运动候选列表中的可用运动候选的数量在检查HMVP候选之前小于第一阈值时,按该顺序检查该表中的一个或多个HMVP候选。

7.根据方案1所述的方法,其中,当确定运动候选列表中的可用运动候选的数量在检查HMVP候选之前大于或等于第一阈值时,不检查该表中的HMVP候选。

8.根据方案6或7所述的方法,其中,在至少对从空域或时域临近块推导的运动候选应用修剪操作之后,确定可用运动候选的数量。

9.根据方案1所述的方法,其中,当确定运动候选列表中包括添加的HMVP候选的可用运动候选的数量已经达到运动候选的最大允许数量时,终止检查该表中的HMVP候选。

10.根据方案1所述的方法,其中,当确定运动候选列表中包括添加的HMVP候选的可用运动候选的数量已经达到运动候选的最大允许数量减去第二阈值(T2)时,终止检查该表中的HMVP候选。

11.根据方案10所述的方法,其中,T2是预定义的正整数。

12.根据方案11所述的方法,其中,T2=1、2或3。

13.根据方案11所述的方法,其中,T2被配置为在当前块和后续块之间自适应地改变。

14.根据方案11所述的方法,其中,以序列参数集(SPS)、图像参数集(PPS)或条带头信令通知T2。

15.根据方案11所述的方法,其中,T2基于当前块的形状、尺寸或编解码模式。

16.根据方案1所述的方法,其中,当确定添加的运动候选的数量已经达到运动候选的最大允许数量时,终止检查该表中的HMVP候选。

17.根据方案16所述的方法,其中,预定义或者在比特流表示中信令通知运动候选的最大允许数量。

18.根据方案16所述的方法,其中,运动候选的最大允许数量基于当前块的形状、尺寸或编解码模式。

19.根据方案1至18中任一项所述的方法,其中,运动候选列表包括Merge候选列表或高级运动矢量预测(AMVP)候选列表中的至少一个。

20.一种用于视频处理的方法,包括:构建包括多个允许的Merge候选的Merge列表,其中,当前块的多个允许的Merge候选的数量小于或等于最大列表尺寸;以及基于Merge列表来执行当前块和当前块的比特流表示之间的转换。

21.根据方案20所述的方法,其中,最大列表尺寸是6。

22.根据方案20所述的方法,其中,以序列参数集(SPS)、条带头、图片头、片组头或视频数据单元信令通知对多个允许的Merge候选的数量的指示。

23.根据方案20所述的方法,其中,解析Merge索引基于多个允许的Merge候选的数量,并且与最大列表尺寸解耦。

24.根据方案23所述的方法,其中,当前块的经解析的Merge索引不大于多个允许的Merge候选的数量。

25.根据方案23所述的方法,其中,Merge列表是基于最大列表尺寸而构建的,并且与多个允许的Merge候选的数量解耦。

26.根据方案20所述的方法,还包括:在检查基于历史的运动矢量预测(HMVP)候选之前,基于阈值和Merge列表中的可用Merge候选的数量,做出关于选择性应用HMVP候选推导过程的决定。

27.根据方案26所述的方法,其中,阈值等于5。

28.根据方案26或27所述的方法,其中,当多个允许的Merge候选的数量不小于阈值时,不应用HMVP候选推导过程。

29.根据方案20所述的方法,还包括:在调用成对平均候选推导过程之前,基于阈值和Merge列表中的可用Merge候选的数量,做出关于选择性应用成对平均候选推导过程的决定。

30.根据方案29所述的方法,其中,阈值等于6。

31.根据方案29或30所述的方法,其中,当多个允许的Merge候选的数量不小于阈值时,不应用成对平均候选推导过程。

32.根据方案20所述的方法,还包括:基于阈值和可用Merge候选的数量,做出关于选择性应用零运动候选推导过程的决定。

33.根据方案32所述的方法,其中,阈值等于6。

34.根据方案32或33所述的方法,其中,当多个允许的Merge候选的数量不小于阈值时,不应用零运动候选推导过程。

35.根据方案20至34中任一项所述的方法,其中,Merge列表包括常规Merge列表、子块Merge列表、帧内块复制(IBC)或三角形Merge列表。

36.一种用于视频处理的方法,包括:基于对Merge列表构建过程和虚拟候选推导过程的选择性调用,构建三角形Merge列表;以及基于三角形Merge列表,执行当前块和当前块的比特流表示之间的转换,其中,Merge列表构建过程包括构建空域候选、时域候选、基于历史的运动矢量预测(HMVP)候选或成对平均候选中的至少一个,并且其中,虚拟候选推导过程包括直接复制一个或多个Merge候选的运动信息。

37.根据方案36所述的方法,其中,Merge列表构建过程包括构建空域候选、时域候选、HMVP候选和成对平均候选中的每一个。

38.根据方案36所述的方法,其中,当来自Merge列表构建过程的Merge候选的数量小于允许的三角形分割模式(TPM)候选的最大数量时,调用虚拟候选推导过程。

39.根据方案1至38中任一项所述的方法,其中,转换从比特流表示生成当前块。

40.根据方案1至38中任一项所述的方法,其中,转换从当前块生成比特流表示。

41.一种视频系统中的装置,装置包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时,使得处理器实施根据方案1至40中的任一项所述的方法。

42.一种存储在非暂时性计算机可读介质上的计算机程序产品,计算机程序产品包括用于执行根据方案1至40中的任一项所述的方法的程序代码。

所公开的技术的一些实施例包括做出启用视频处理工具或模式的决定或确定。在一个示例中,当启用视频处理工具或模式时,编码器将在处理视频块时使用或实施该工具或模式,但是不一定基于该工具或模式的使用来修改所得比特流。也就是说,当基于该决定或确定启用视频处理工具或模式时,从视频的块到视频的比特流表示的转换将使用该视频处理工具或模式。在另一示例中,当启用视频处理工具或模式时,解码器将在知道比特流已经基于视频处理工具或模式被修改的情况下处理比特流。也就是说,将使用基于该决定或确定而启用的视频处理工具或模式来执行从视频的比特流表示到视频的块的转换。

所公开的技术的一些实施例包括做出禁用视频处理工具或模式的决定或确定。在一个示例中,当禁用视频处理工具或模式时,编码器将不会在视频的块到视频的比特流表示的转换中使用该工具或模式。在另一示例中,当禁用视频处理工具或模式时,解码器将在知道没有使用基于该决定或确定而启用的视频处理工具或模式来修改比特流的情况下处理比特流。

从前面可以理解,为了说明的目的,本文已经描述了当前公开的技术的特定实施例,但是在不脱离本发明的范围的情况下,可以进行各种修改。因此,当前公开的技术不受除了所附权利要求之外的限制。

本文档中描述的所公开的以及其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路中、或者在计算机软件、固件或硬件(包括本文档中公开的结构及其结构等同物)中、或者在它们中的一个或多个的组合中被实施。所公开的以及其他实施例可以被实施为一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,该计算机程序指令用于由数据处理装置运行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合、或它们中的一个或多个的组合。术语“数据处理装置”包含用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机、或多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合的代码。传播信号是被生成以对信息进行编码以用于发送到合适的接收器装置的人工生成的信号,例如机器生成的电信号、光学信号或电磁信号。

计算机程序(也已知为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且其可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署以在一个计算机上或在位于一个站点上或跨多个站点分布并通过通信网络互连的多个计算机上运行。

本文档中描述的过程和逻辑流程可以由运行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实施为专用逻辑电路,例如,FPGA(FieldProgrammable Gate Array,现场可编程门阵列)或ASIC(Application SpecificIntegrated Circuit,专用集成电路)。

适合于运行计算机程序的处理器包括例如通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或可操作地耦合以从该一个或多个大容量存储设备接收数据或向该一个或多个大容量存储设备传递数据、或者从其接收数据并向其传递数据。然而,计算机不需要这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可换式磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。

虽然本专利文档包含许多细节,但这些细节不应被解释为对任何发明或可能要求保护的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在本专利文档中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合实施。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为需要以所示的特定顺序或以先后顺序执行这样的操作或者执行所有示出的操作以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离。

仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容来进行其他实施方式、增强和变化。

62页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:使用抽取预测块的DMVR

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类