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

运动候选推导

文献发布时间:2023-06-19 12:19:35


运动候选推导

相关申请的交叉引用

根据适用的专利法和/或依据巴黎公约的规则,本申请是为了及时要求于2019年1月16日提交的国际专利申请No.PCT/CN2019/072058的优先权和利益。对于根据美国法律的所有目的,前述申请的全部公开通过引用而并入作为本申请的公开的一部分。

技术领域

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

背景技术

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

发明内容

描述了与使用包含编码候选的查找表(Look-Up Table,LUT)集合来编码和解码数字视频相关的设备、系统和方法。所描述的方法可以应用于现有的视频编解码标准(例如,高效视频编解码(High Efficiency Video Coding,HEVC))和未来的视频编解码标准或视频编解码器。

在一个代表性方面,所公开的技术可以用于提供一种视频处理的方法。该方法包括:维护一个或多个表,其中,一个或多个表中的至少一个表与一个或多个条目相关联;基于至少一个表中的第一运动候选集合来推导第二运动候选集合;以及基于第二运动候选集合来执行视频的当前块和视频的比特流表示之间的转换。

在另一个代表性方面,所公开的技术可以用于提供一种视频处理的方法。该方法包括:维护一个或多个表,其中,一个或多个表中的每一个表与一个或多个条目相关联;自适应地将运动候选的插入顺序从一个或多个表中的至少一个表改变为候选列表;以及基于候选列表来执行视频的当前块和视频的比特流表示之间的转换。

在又一个代表性方面,上述方法以处理器可执行代码的形式而体现并且被存储在计算机可读程序介质中。

在又一个代表性方面,公开了一种被配置为或可操作来执行上述方法的设备。该设备可以包括被编程为实施该方法的处理器。

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

在附图、说明书和权利要求中更详细地描述了所公开的技术的以上以及其他方面和特征。

附图说明

图1示出了通常的高效视频编解码(HEVC)视频编码器和解码器的示例框图。

图2示出了H.264/AVC中的宏块(MacroBlock,MB)分割的示例。

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

图4A和图4B分别示出了将编解码树块(Coding Tree Block,CTB)细分为CB和变换块(Transform Block,TB)、以及对应的四叉树的示例。

图5A和图5B示出了最大编解码单元(Largest Coding Unit,LCU)的细分和对应的QTBT(QuadTree plus Binary Tree,四叉树加二叉树)的示例。

图6A-图6E示出了分割编解码块的示例。

图7示出了基于QTBT的CB的示例细分。

图8A-图8I示出了支持作为QTBT的一般化的多树类型(Multi-Tree Type,MTT)的CB的分割的示例。

图9示出了构建Merge候选列表的示例。

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

图11示出了对其进行空域Merge候选的冗余检查的候选对的示例。

图12A和图12B示出了基于当前块的尺寸和形状的第二预测单元(PredictionUnit,PU)的位置的示例。

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

图14示出了并置图片中的时域Merge候选的候选位置的示例。

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

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

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

图18示出了针对编解码单元(Coding Unit,CU)的使用可选时域运动矢量预测(Alternative Temporal Motion Vector Prediction,ATMVP)算法的运动预测的示例。

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

图20示出了通过空时运动矢量预测(Spatial-Temporal Motion VectorPrediction,STMVP)算法使用的具有子块和临近块的编解码单元(CU)的示例。

图21示出了作为基于帧速率上转换(Frame-Rate Up Conversion,FRUC)算法的特殊Merge模式的模式匹配的运动矢量推导(Pattern Matched Motion Vector Derivation,PMMVD)模式下的双向匹配的示例。

图22示出了FRUC算法中的模板匹配的示例。

图23示出了FRUC算法中的单向运动估计的示例。

图24示出了基于双向模板匹配的解码器侧运动矢量细化(Decoder-side MotionVector Refinement,DMVR)算法的示例。

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

图26示出了类型1定义和类型2定义之间的差异的示例。

图27示出了选择代表性位置以用于LUT更新的示例。

图28A和图28B示出了用新的运动信息集合更新LUT的示例。

图29示出了所提出的基于历史的运动矢量预测(History-based Motion VectorPrediction,HMVP)方法的解码流程图的示例。

图30示出了在所提出的HMVP方法中更新表的示例。

图31A和图31B示出了基于冗余移除的LUT更新方法的示例。

图32A和图32B示出了基于冗余移除的LUT更新方法的附加示例。

图33示出了用于视频处理的示例方法的流程图。

图34示出了用于视频处理的另一示例方法的流程图。

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

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

具体实施方式

由于对更高分辨率视频的日益增长的需求,视频编解码方法和技术在现代技术中无处不在。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且不断被改进以提供更高的编解码效率。视频编解码器将未压缩的视频转换为压缩格式,反之亦然。视频质量、用于表示视频的数据量(由比特率确定)、编码和解码算法的复杂性、对数据丢失和错误的敏感性、编辑的简易性、随机访问和端到端延迟(时延)。压缩格式通常符合标准视频压缩规范,例如,高效视频编解码(HEVC)标准(也已知为H.265或MPEG-H部分2)、要完成的通用视频编解码标准、或其他当前和/或未来的视频编码标准。

所公开的技术的实施例可以应用于现有的视频编解码标准(例如,HEVC、H.265)和未来的标准以改进压缩性能。在本文档中使用章节标题以提高描述的可读性,并且不以任何方式将讨论或实施例(和/或实施方式)限制于仅相应的章节。

1.视频编解码的示例实施例

图1示出了典型HEVC视频编码器和解码器的示例框图。产生符合HEVC的比特流的编码算法通常如下进行。每个图片被划分为块状区域,其中精确的块分割被传递到解码器。视频序列的第一图片(以及到视频序列中的每个完全随机访问点(clean random accesspoint)处的第一图片)仅使用(在相同图片内从区域到区域空域地使用一些数据预测,但不取决于其他图片的)帧内图片预测而编解码。对于序列的或随机访问点之间的所有剩余图片,帧间图片时域预测编解码模式通常用于大多数块。用于帧间图片预测的编码过程包括选择包括所选择的参考图片和要应用于预测每个块的样点的运动矢量(MV)的运动数据。编码器和解码器通过应用使用MV和模式决定数据的运动补偿(Motion Compensation,MC)来生成相同的帧间图片预测信号,其作为边信息(side information)而发送。

通过线性空域变换来变换帧内图片预测或帧间图片预测的残差信号,其是原始块与其预测之间的差异。变换系数然后被缩放、量化、熵编解码,并与预测信息一起被发送。

编码器复制解码器处理环路(参见图1中的灰色阴影框),使得两者都将生成后续数据的相同预测。因此,量化的变换系数通过逆缩放而构建并且然后被逆变换以复制残差信号的解码的近似。残差然后被添加到预测,添加的结果然后可以被馈送到一个或两个环路滤波器中以平滑由分块处理和量化引起的伪影。最终图片表示(即解码器的输出的副本)存储在解码图片缓冲器中以用于后续图片的预测。通常,图片的编码或解码处理的顺序通常不同于它们从源到达的顺序;需要区分解码器的解码顺序(即比特流顺序)和输出顺序(即显示顺序)。

一般期望通过HEVC编码的视频材料作为逐行扫描影像输入(由于源视频源自该格式或者由编码之前的去交错产生)。HEVC设计中不存在显式的编解码特征以支持交错扫描的使用,因为交错扫描不再用于显示器并且对于分发而言变得基本上不常见。然而,在HEVC中已经提供了元数据语法(syntax),以允许编码器指示已经通过将交错视频的每个场(即每个视频帧的偶数或奇数行)编码为单独的图片来传送交错扫描视频或已经通过将每个交错帧编码为HEVC编码的图片来传送交错扫描视频。这提供了一种对交错视频进行编码而无需使解码器需要支持针对其的特殊解码过程的有效方法。

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所示。仅允许每一子宏块分割一个运动矢量(MV)。

1.2HEVC中的分割树结构的示例

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

使用HEVC的混合视频编解码中涉及的特定特征包括:

(1)

(2)

(3)

(4)

1.2.1.树结构分割为TB和TU的示例

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

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

1.2.2.父节点和子节点

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

1.3.JEM中具有更大CTU的四叉树加二叉树块结构的示例

在一些实施例中,使用已知为联合探索模型(Joint Exploration Model,JEM)的参考软件来探索未来的视频编解码技术。除二叉树结构外,JEM还描述了四叉树加二叉树(QTBT)和三叉树(Ternary Tree,TT)结构。

1.3.1.QTBT块分割结构的示例

与HEVC相反,QTBT结构移除了多个分割类型的概念,即,它移除了CU、PU和TU概念的分离,并且支持CU分割形状的更多灵活性。在QTBT块结构中,CU可以具有正方形或矩形形状。如图5A所示,首先通过四叉树结构分割编解码树单元(CTU)。通过二叉树结构进一步分割四叉树叶节点。在二叉树划分中有两种划分类型,对称水平划分和对称垂直划分。二叉树叶节点被称为编解码单元(CU),并且该分段用于预测和变换处理而无需任何进一步的分割。这意味着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个亮度样点。

图5A示出了通过使用QTBT进行块分割的示例,并且图5B示出了对应的树表示。实线指示四叉树划分,并且虚线指示二叉树划分。在二叉树的每个划分(即非叶)节点中,信令通知一个标志以指示使用哪种划分类型(即水平或垂直),其中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中,这些限制被移除。

1.4.多功能视频编解码(VVC)的三叉树(TT)

图6A示出了四叉树(QT)分割的示例,并且图6B和图6C分别示出了垂直和水平二叉树(BT)分割的示例。在一些实施例中,除了四叉树和二叉树之外,还支持三叉树(TT)分割,例如水平和垂直中心侧三叉树(如图6D和图6E所示)。

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

1.5.可选视频编解码技术中的分割结构的示例

在一些实施例中,支持作为QTBT的一般化的称为多树类型(MTT)的树结构。在QTBT中,如图7所示,首先通过四叉树结构分割编解码树单元(CTU)。通过二叉树结构进一步分割四叉树叶节点。

MTT的结构由两种类型的树节点构成:区域树(RT)和预测树(PT),支持九种类型的分割,如图8所示。区域树可以递归地将CTU划分为方块,直到4×4尺寸的区域树叶节点。在区域树中的每个节点处,可以从三种树类型(二叉树、三叉树和非对称二叉树)中的一种形成预测树。在PT划分中,禁止在预测树的分支中具有四叉树分割。如在JEM中地,亮度树和色度树在I条带中被分离。

2HEVC/H.265中的帧间预测的示例

多年来,视频编解码标准已经显著改进,并且现在部分地提供高编解码效率和对更高分辨率的支持。诸如HEVC和H.265的最新标准基于其中利用时域预测加变换编解码的混合视频编解码结构。

2.1预测模式的示例

每个帧间预测的PU(预测单元)具有针对一个或两个参考图片列表的运动参数。在一些实施例中,运动参数包括运动矢量和参考图片索引。在其他实施例中,还可以使用inter_pred_idc信令通知两个参考图片列表中的一个的使用。在其他实施例中,运动矢量可以被显式地编解码为相对于预测值的增量(delta)。

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

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

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

2.1.1构建Merge模式的候选的实施例

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

步骤1:初始候选推导

步骤1.1:空域候选推导

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

步骤1.3:时域候选推导

步骤2:附加候选插入

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

步骤2.2:插入零运动候选

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

2.1.2构建空域Merge候选

在对空域Merge候选的推导中,在位于图10中描绘的位置的候选当中选择最多四个Merge候选。推导的顺序是A

为了降低计算复杂性,在所提到的冗余检查中不考虑所有可能的候选对。相反,只考虑与图11中的箭头链接的对,并且仅当用于冗余检查的对应候选没有相同的运动信息,则候选才被添加到列表中。重复运动信息的另一个源是与不同于2N×2N的分割相关联的“第二PU”。作为示例,图12A和图12B分别描绘了N×2N和2N×N的情况下的第二PU。当当前PU被分割为N×2N时,位置A

2.1.3构建时域Merge候选

在该步骤中,仅一个候选被添加到列表。具体地,在对该时域Merge候选的推导中,基于属于与给定参考图片列表内的当前图片具有最小POC(Picture Order Count,图片顺序计数)差的图片的并置PU来推导缩放运动矢量。在条带头中显式地信令通知要用于推导并置PU的参考图片列表。

图13示出了对时域Merge候选(如虚线)的缩放运动矢量的推导的示例,该缩放运动矢量使用POC距离tb和td从并置PU的运动矢量缩放,其中tb被定义为当前图片的参考图片与当前图片之间的POC差,并且td被定义为并置图片的参考图片与并置图片之间的POC差。时域Merge候选的参考图片索引被设置为等于零。对于B条带,两个运动矢量(一个用于参考图片列表0,并且另一个用于参考图片列表1)被获得并组合,以产生双向预测Merge候选。

在属于参考帧的并置PU(Y)中,在候选C

2.1.4构建附加类型的Merge候选

除了空时Merge候选之外,存在两种附加类型的Merge候选:组合的双向预测Merge候选和零Merge候选。通过利用空时Merge候选来生成组合的双向预测Merge候选。组合的双向预测Merge候选仅用于B条带。通过将初始候选的第一参考图片列表运动参数与另一个初始候选的第二参考图片列表运动参数组合来生成组合的双向预测候选。如果这两个元组提供不同的运动假设,它们将形成新的双向预测候选。

图15示出了该过程的示例,其中具有mvL0和refIdxL0或mvL1和refIdxL1的原始列表(左边的710)中的两个候选用于创建被添加到最终列表(右边的720)的组合的双向预测Merge候选。

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

2.1.5用于并行处理的运动估计区域的示例

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

表1中示出了图片参数集(PPS)原始字节序列有效载荷(Raw Byte SequencePayload,RBSP)语法,其中log2_parallel_merge_level_minus2加2指定变量Log2ParMrgLevel的值,其用于Merge模式的亮度运动矢量的推导过程以及如现有的视频编解码标准所指定的空域Merge候选的推导过程中。log2_parallel_merge_level_minus2的值必须在0到CtbLog2SizeY-2的范围内,包括0和CtbLog2SizeY-2。

变量Log2ParMrgLevel被推导如下:

Log2ParMrgLevel=log2_parallel_merge_level_minus2+2

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

表1:一般图片参数集RBSP语法

2.2AMVP模式中的运动矢量预测的实施例

运动矢量预测利用运动矢量与临近PU的空时相关性,其用于运动参数的显式传输。它通过首先检查左边、上边时域上临近的PU位置的可用性,移除冗余候选并添加零矢量以使候选列表为恒定长度来构建运动矢量候选列表。然后,编码器可以从候选列表中选择最佳预测值,并发送指示所选择的候选的对应索引。与Merge索引信令类似,使用截断一元来编码最佳运动矢量候选的索引。

2.2.1构建运动矢量预测候选的示例

图16概述了运动矢量预测候选的推导过程,并且可以针对以refidx作为输入的每个参考图片列表而实施。

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

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

2.2.2构建空域运动矢量候选

在对空域运动矢量候选的推导中,在从位于如先前在图10中所示的位置的PU推导的五个潜在候选当中考虑最多两个候选。那些位置与运动Merge的位置相同。当前PU的左侧的推导顺序被定义为A

--没有空域缩放

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

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

--空域缩放

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

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

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

如图17中的示例所示,对于空域缩放情况,以与时域缩放类似的方式缩放临近PU的运动矢量。一个差异是参考图片列表和当前PU的索引被给出作为输入;实际缩放过程与时域缩放的过程相同。

2.2.3构建时域运动矢量候选

除了参考图片索引推导之外,用于推导时域Merge候选的所有过程与用于推导空域运动矢量候选的所有过程相同(如图14中的示例所示)。在一些实施例中,向解码器信令通知参考图片索引。

2.2.4Merge/AMVP信息的信令

对于AMVP模式,可以在比特流中信令通知四个部分,例如,预测方向、参考索引、MVD和mv预测值候选索引,其在表2-4中所示的语法的上下文中描述。而对于Merge模式,可能只需要信令通知Merge索引。

表2:一般条带分段头语法

表3:预测单元语法

表4:运动矢量差语法

对应语义包括:

five_minus_max_num_merge_cand指定从5减去的条带中支持的Merge MVP候选的最大数量。Merge MVP候选的最大数量MaxNumMergeCand被推导如下:

MaxNumMergeCand=5-five_minus_max_num_merge_cand

MaxNumMergeCand的值必须在1到5的范围内(包含1和5)。

merge_flag[x0][y0]指定是否从临近的帧间预测分割推断出当前预测单元的帧间预测参数。阵列索引x0、y0指定所考虑的预测块的左上方亮度样点相对于图片的左上方亮度样点的位置(x0,y0)。

当merge_flag[x0][y0]不存在时,它被推断如下:

--如果CuPredMode[x0][y0]等于MODE_SKIP,则merge_flag[x0][y0]被推断为等于1。

--否则,merge_flag[x0][y0]被推断为等于0。

merge_idx[x0][y0]指定Merge候选列表的Merge候选索引,其中x0、y0指定所考虑的预测块的左上方亮度样点相对于图片的左上方亮度样点的位置(x0,y0)。

3.联合探索模型(JEM)中的帧间预测方法的示例

在一些实施例中,使用已知为联合探索模型(JEM)的参考软件来探索未来的视频编解码技术。在JEM中,在若干编解码工具中采用基于子块的预测,诸如仿射预测、可选时域运动矢量预测(ATMVP)、空时运动矢量预测(STMVP)、双向光流(Bi-directional Opticalflow,BIO)、帧速率上转换(FRUC)、局部自适应运动矢量分辨率(Locally Adaptive MotionVector Resolution,LAMVR)、重叠块运动补偿(Overlapped Block Motion Compensation,OBMC)、局部光照补偿(Local Illumination Compensation,LIC)和解码器侧运动矢量细化(DMVR)。

3.1基于子CU的运动矢量预测的示例

在具有四叉树加二叉树(QTBT)的JEM中,每个CU可以针对每个预测方向具有至多一个运动参数集合。在一些实施例中,通过将大CU划分为子CU并且推导大CU的所有子CU的运动信息,在编码器中考虑两个子CU级别运动矢量预测方法。可选时域运动矢量预测(ATMVP)方法允许每个CU从比并置参考图片中的当前CU小的多个块提取运动信息的多个集合。在空时运动矢量预测(STMVP)方法中,通过使用时域运动矢量预测值和空域临近运动矢量来递归地推导子CU的运动矢量。在一些实施例中,并且为了保留子CU运动预测的更准确的运动场,可以禁用参考帧的运动压缩。

3.1.1可选时域运动矢量预测(ATMVP)的示例

在ATMVP方法中,通过从比当前CU小的块提取运动信息(包括运动矢量和参考索引)的多个集合来修改时域运动矢量预测(TMVP)方法。

图18示出了用于CU 1800的ATMVP运动预测过程的示例。ATMVP方法分两个步骤来预测CU 1800内的子CU 1801的运动矢量。第一步骤是用时域矢量来识别参考图片1850中的对应块1851。参考图片1850也称为运动源图片。第二步骤是将当前CU 1800划分为子CU1801,并从对应于每个子CU的块获得运动矢量以及每个子CU的参考索引。

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

在一个示例中,如果第一Merge候选来自左边临近块(即图19中的A

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

3.1.2空时运动矢量预测(STMVP)的示例

在STMVP方法中,按照光栅扫描顺序递归地推导子CU的运动矢量。图20示出了具有四个子块和临近块的一个CU的示例。考虑包括四个4×4子CU A(2001)、子CU B(2002)、子CUC(2003)和子CU D(2004)的8×8CU2000。当前帧中的临近4×4块被标记为a(2011)、b(2012)、c(2013)和d(2014)。

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

3.1.3子CU运动预测模式信令的示例

在一些实施例中,子CU模式被启用作为附加Merge候选,并且不需要附加语法元素来信令通知模式。两个附加Merge候选被添加到每个CU的Merge候选列表以表示ATMVP模式和STMVP模式。在其他实施例中,如果序列参数集指示启用了ATMVP和STMVP,则可以使用多达七个Merge候选。附加Merge候选的编码逻辑与HM中的Merge候选的编码逻辑相同,这意味着,对于P条带或B条带中的每个CU,针对两个附加Merge候选可能还需要两次RD检查。在一些实施例中,例如,JEM,通过CABAC(Context-based Adaptive Binary ArithmeticCoding,基于上下文的自适应二进制算术编解码)对Merge索引的所有二进制位进行上下文编解码。在其他实施例中,例如,HEVC,仅对第一二进制位进行上下文编解码,并且对剩余的二进制位进行上下文旁路编解码。

3.2自适应运动矢量差分辨率的示例

在一些实施例中,当条带头中的use_integer_mv_flag等于0时,以四分之一亮度样点为单位信令通知(在PU的运动矢量和预测运动矢量之间的)运动矢量差(MVD)。在JEM中,引入了局部自适应运动矢量分辨率(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检查。

3.2.1AMVP候选列表构建的示例

在JEM中,该过程类似于HEVC设计。然而,当当前块选择更低精度的MV(例如,整数精度)时,可以应用取整操作。在当前实施方式中,在从空域位置选择2个候选之后,如果两者都可用,则将这两个候选取整,然后进行修剪。

3.3模式匹配的运动矢量推导(PMMVD)的示例

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×H CU运动信息推导执行以下推导过程。在第一阶段,推导整个W×HCU的MV。在第二阶段,CU被进一步划分为M×M个子CU。M的值按公式(3)计算。D是预定义的划分深度,在JEM中默认设置为3。然后推导每个子CU的MV。

图21示出了在帧速率上转换(FRUC)方法中使用的双向匹配的示例。双向匹配用于通过沿着两个不同参考图片(2110、2111)中的当前CU(2100)的运动轨迹找到两个块之间的最接近匹配来推导当前CU的运动信息。在连续运动轨迹的假设下,指向两个参考块的运动矢量MV0(2101)和MV1(2102)和当前图片与两个参考图片之间的时域距离(例如,TD0(2103)和TD1(2104))成比例。在一些实施例中,当当前图片2100在时域上在两个参考图片(2110、2111)之间并且从当前图片到两个参考图片的时域距离相同时,双向匹配变为基于镜像的双向MV。

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

以CU级别设置的MV候选可以包括以下:(1)如果当前CU处于AMVP模式的原始AMVP候选,(2)所有Merge候选,(3)插值MV场中的若干MV(稍后描述),以及顶部和左边临近运动矢量。

当使用双向匹配时,Merge候选的每个有效MV可以用作输入,以在假设双向匹配的情况下生成MV对。例如,在参考列表A处,Merge候选的一个有效MV是(MVa、ref

在一些实施方式中,还可以将来自插值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添加到候选列表。

以子CU级别设置的MV候选包括从CU级别搜索确定的MV,(2)顶部、左边、左上方和右上方临近MV,(3)来自参考图片的并置MV的缩放版本,(4)一个或多个ATMVP候选(例如,多达四个),以及(5)一个或多个STMVP候选(例如,多达四个)。来自参考图片的缩放MV被推导如下。遍历两个列表中的参考图片。参考图片中的子CU的并置位置处的MV被缩放为起始CU级别MV的参考。ATMVP和STMVP候选可以是前四个。在子CU级别,将一个或多个MV(例如,多达17个)添加到候选列表。

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

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

这里,w是加权因子。在一些实施例中,w可以根据经验设置为4。MV和MV

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

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

在双向匹配Merge模式中,应用双向预测,因为CU的运动信息是基于沿着两个不同参考图片中的当前CU的运动轨迹的两个块之间的最接近匹配而推导的。在模板匹配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级别模板匹配过程。

3.4解码器侧运动矢量细化(DMVR)的示例

在双向预测操作中,为了预测一个块区域,分别使用列表0的运动矢量(MV)和列表1的MV形成的两个预测块被组合以形成单个预测信号。在解码器侧运动矢量细化(DMVR)方法中,通过双向模板匹配过程进一步细化双向预测的两个运动矢量。双向模板匹配在解码器中应用,以在双向模板和参考图片中的重构样点之间执行基于失真的搜索,以便在不发送附加运动信息的情况下获得细化的MV。

在DMVR中,分别从列表0的初始MV0和列表1的MV1生成双向模板作为两个预测块的加权组合(即平均),如图24所示。模板匹配操作包括计算所生成的模板与参考图片中的(初始预测块周围的)样点区域之间的成本度量。对于两个参考图片中的每一个,产生最小模板成本的MV被视为该列表的更新后MV以替换原始MV。在JEM中,针对每个列表搜索九个MV候选。九个MV候选包括原始MV和8个周围MV,其中一个亮度样点在水平或垂直方向上或两个方向上偏移到原始MV。最终,两个新的MV(即如图24所示的MV0'和MV1')用于生成最终的双向预测结果。绝对误差和(SAD)用作成本度量。

DMVR被应用于双向预测的Merge模式,其中一个MV来自过去的参考图片,并且另一个MV来自未来的参考图片,而无需发送附加语法元素。在JEM中,当对CU启用LIC、仿射运动、FRUC或子CU Merge候选时,不应用DMVR。

3.5具有双向匹配细化的Merge/跳过模式的示例

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

(1)块1-4的空域候选

(2)块1-4的外推(extrapolated)仿射候选

(3)ATMVP

(4)STMVP

(5)虚拟仿射候选

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

(7)外推仿射候选(块5)

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

(9)非相邻空域候选,其后是外推仿射候选(块6至块49)

(10)组合的候选

(11)零候选

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

3.6共享Merge列表的示例实施例

提出了共享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共享节点。

图26示出了类型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模式的周期预算问题。

3.7片组的示例

已经采用了现有的实施方式,其中条带被移除以有利于片组,并且HEVC语法元素slice_address被tile_group_header中的tile_group_address替换(如果图片中有多于一个片)作为片组中的第一个片的地址。

4.现有实施方式的缺点

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

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

5.所公开技术的示例实施例

当前公开的技术的实施例克服了现有实施方式的缺点,从而提供具有更高编解码效率的视频编解码。可以增强现有和未来的视频编解码标准的基于所公开的技术的基于LUT的运动矢量预测在针对各种实施方式描述的以下示例中阐明。以下提供的所公开的技术的示例解释了一般概念,并且不意味着被解释为限制。在示例中,除非明确地相反指示,否则可以组合在这些示例中描述的各种特征。

1.一个查找表可以包含一个或多个运动候选,其中每个候选与其运动信息相关联。

a.这里的运动候选的运动信息可以包括预测方向、参考索引/图片、运动矢量、LIC标志、仿射标志、MVD精度、MVD值中的部分或全部。

b.运动信息还可以包括块位置信息或/和块形状,以指示运动信息来自哪里。

c.还可以为每个查找表分配计数器。

i.在开始对图片/条带/LCU(CTU)行/片进行编码/解码时,计数器被初始化为零。

ii.在一个示例中,在对CTU/CTB/CU/CB/PU/特定区域尺寸(例如,8×8或16×16)进行编码/解码之后,计数器被更新。

iii.在一个示例中,每当一个候选被添加到查找表中时,计数器就增加一。

iv.在一个示例中,计数器应该不大于表尺寸(允许的运动候选的数量)。

v.可替代地,计数器可以用于指示已经尝试将多少运动候选添加到查找表(它们中的一些在查找表中,但是稍后可以从表中被移除)。在这种情况下,计数器可以大于表尺寸。

d.表尺寸(允许的运动候选的数量)和/或表的数量可以是固定的或自适应的。对于所有表,表尺寸可以相同,或者对于不同表,表尺寸可以不同。

i.可替代地,不同的尺寸可以用于不同的查找表(例如,1或2)。

ii.在一个示例中,表尺寸和/或表的数量可以被预定义。

iii.在一个示例中,表尺寸和/或表的数量可以在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、条带头、片头、编解码树单元(CTU)、编解码树块(CTB)、编解码单元(CU)或预测单元(PU)、覆盖多个CTU/CTB/CU/PU的区域中被信令通知。

iv.表尺寸和/或表的数量还可以取决于条带类型、图片的时域层索引、一个条带和最靠近的帧内条带之间的图片顺序计数(Picture Order Count,POC)距离。

e.假定有N个表用于编解码线程,可能需要N*P个表来编解码条带,其中,P指示LCU行的数量或片的数量。

i.可替代地,可能仅需要P个表来编解码条带,其中,P指示LCU行的数量,其中,每个LCU行仅使用一个查找表,甚至当片被禁用时,N可以大于1。

2.为了对块进行编解码,可以按顺序检查来自一个查找表的运动候选的部分或全部。

a.可替代地,可以按顺序检查来自多个查找表的运动候选。

b.查找表索引可以在CTU、CTB、CU或PU、或覆盖多个CTU/CTB/CU/PU的区域中被信令通知。

3.对查找表的选择可以取决于块的位置。

a.可以取决于覆盖块的CTU地址。这里,我们以两个查找表(双查找表,DLUT)为例来说明该思想:

i.如果块位于CTU行中的前M个CTU中的一个处,则第一查找表可以用于对块进行编解码,而对于位于CTU行中的剩余CTU中的块,可以利用第二查找表。

ii.如果块位于CTU行中的前M个CTU中的一个处,则可以首先检查第一查找表的运动候选以用于对块进行编解码,如果在第一表中没有足够的候选,则还可以利用第二查找表。而对于位于CTU行中的剩余CTU中的块,可以利用第二查找表。

iii.可替代地,对于位于CTU行中的剩余CTU中的块,可以首先检查第二查找表的运动候选以用于对块进行编解码,如果在第二表中没有足够的候选,则还可以利用第一查找表。

b.可以取决于块的位置和与一个或多个查找表中的一个运动候选相关联的位置之间的距离。

i.在一个示例中,如果一个运动候选与到要被编解码的块的更小距离相关联,则与另一个运动候选相比,可以更早地检查该运动候选。

4.可以预定义要被检查的查找表中的运动候选的总数。

a.还可以取决于编解码信息、块尺寸、块形状等等。例如,对于AMVP模式,可以仅检查m个运动候选,而对于Merge模式,可以检查n个运动候选(例如,m=2,n=44)。

b.在一个示例中,要被检查的运动候选的总数可以在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、条带头、片头、编解码树单元(CTU)、编解码树块(CTB)、编解码单元(CU)或预测单元(PU)、覆盖多个CTU/CTB/CU/PU的区域中被信令通知。

5.被包括在查找表中的(多个)运动候选可以由块直接继承。

a.它们可以用于Merge模式编解码,即,运动候选可以在Merge候选列表推导过程中被检查。

b.它们可以用于仿射Merge模式编解码。

i.如果查找表中的运动候选的仿射标志为1,则其可以被添加作为仿射Merge候选。

c.它们可以用于其他种类的Merge模式,诸如子块Merge模式、仿射Merge模式、三角形Merge模式、帧间-帧内Merge模式、具有MVD的Merge(MMVD)模式。

d.当在以下情况下时,可以启用对查找表中的运动候选的检查:

i.在插入TMVP候选之后,Merge候选列表未满;

ii.在针对空域Merge候选推导检查特定空域临近块之后,Merge候选列表未满;

iii.在所有空域Merge候选之后,Merge候选列表未满;

iv.在组合的双向预测Merge候选之后,Merge候选列表未满;

v.当来自其他编解码方法(例如,HEVC设计或JEM设计的Merge推导过程)的已经被放到Merge候选列表中的空域或时域(例如,包括相邻空域和非相邻空域、TMVP、STMVP、ATMVP等等)Merge候选的数量小于最大允许的Merge候选减去给定阈值时。

(a)在一个示例中,阈值被设置为1或0。

(b)可替代地,阈值可以在SPS/PPS/序列、图片、条带头/片中被信令通知或预定义。

(c)可替代地,阈值可以从块到块自适应地改变。例如,它可以取决于编解码块信息,如块尺寸/块形状/条带类型,和/或取决于可用空域或时域Merge候选的数量。

(d)在另一个示例中,当已经被放到Merge候选列表中的特定种类的Merge候选的数量小于最大允许的Merge候选减去给定阈值时。“特定种类的Merge候选”可以是如HEVC中的空域候选、或者非相邻Merge候选。

vi.在将运动候选添加到Merge候选列表之前,可以应用修剪。

(a)在一个示例中,可以将运动候选与Merge候选列表中的来自其他编解码方法的可用空域或时域(例如,包括相邻空域和非相邻空域、TMVP、STMVP、ATMVP等等)Merge候选的全部或部分进行修剪。

(b)可以不将运动候选与基于子块的运动候选进行修剪,例如,ATMVP、STMVP。

(c)在一个示例中,可以将当前运动候选与Merge候选列表中的(在当前运动候选之前被插入的)可用运动候选的全部或部分进行修剪。

(d)与运动候选相关的修剪操作的次数(即需要将运动候选与Merge列表中的其他候选进行比较多少次)可以取决于可用空域或时域Merge候选的数量。例如,当检查新的运动候选时,如果在Merge列表中有M个候选可用,则可以仅将新的运动候选与前K个(K<=M)候选进行比较。如果修剪函数返回假(例如,与前K个候选中的任何一个都不相同),则新的运动候选被认为不同于M个候选的全部,并且它可以被添加到Merge候选列表。在一个示例中,K被设置为min(K,2)。

(e)在一个示例中,仅将新附加的运动候选与Merge候选列表中的前N个候选进行比较。例如,N=3、4或5。可以从编码器向解码器信令通知N。

(f)在一个示例中,仅将要被检查的新的运动候选与Merge候选列表中的最后N个候选进行比较。例如,N=3、4或5。可以从编码器向解码器信令通知N。

(g)在一个示例中,如何从表选择要与新的运动候选进行比较的先前添加在列表中的候选可以取决于从哪里推导先前添加的候选。

a.在一个示例中,可以将查找表中的运动候选与从给定的时域和/或空域临近块推导的运动候选进行比较。

b.在一个示例中,可以将查找表中的运动候选的不同条目与不同的(即从不同位置推导的)先前添加的候选进行比较。

e.在检查诸如从相邻/非相邻空域或时域块推导的其他Merge(或仿射Merge或其他帧间编解码方法)候选之前,可以启用对查找表中的运动候选的检查。

f.当查找表中有至少一个运动候选时,可以启用对查找表中的运动候选的检查。

6.被包括在查找表中的(多个)运动候选可以用作用于对块的运动信息进行编解码的预测值。

a.它们可以用于AMVP模式编解码,即,可以在AMVP候选列表推导过程中检查运动候选。

b.它们可以用于对称运动矢量差(Symmetric Motion Vector Difference,SMVD)编解码,其中,仅(诸如仅针对一个参考图片列表的信令通知的MVD并从另一个参考图片列表推导的)部分MVD。

c.它们可以用于对称运动矢量(SMV)编解码,其中,仅(诸如仅针对一个参考图片列表而信令通知的并从另一个参考图片列表推导的)部分MV。

d.当在以下情况下时,可以启用对查找表中的运动候选的检查:

i.在插入TMVP候选之后,AMVP候选列表未满;

ii.在从空域邻居选择并刚好在插入TMVP候选之前进行修剪之后,AMVP候选列表未满;

iii.当不存在来自没有进行缩放的上方临近块的AMVP候选和/或当不存在来自没有进行缩放的左边临近块的AMVP候选时

iv.在插入特定AMVP候选之后,AMVP候选列表未满;

v.在将运动候选添加到AMVP候选列表之前,可以应用修剪。

vi.如项目符号5.(c)(d)中提到的类似规则可以被应用于AMVP模式。

e.在检查诸如从相邻/非相邻空域或时域块推导出的其他AMVP(或SMVD/SMV/仿射帧间或其他帧间编解码方法)候选之前,可以启用对运动候选的检查。

f.当查找表中有至少一个运动候选时,可以启用对运动候选的检查。

g.检查具有与当前参考图片相同的参考图片的运动候选。

i.此外,可替代地,还检查具有与当前参考图片不同的参考图片的运动候选(缩放了MV)。

ii.可替代地,首先检查具有与当前参考图片相同的参考图片的所有运动候选,然后检查具有与当前参考图片不同的参考图片的运动候选。

iii.可替代地,在Merge中按照相同方式检查运动候选。

iv.当一个运动候选是双向预测候选时,如果当前目标参考图片列表是X,则可以首先检查参考图片列表X的参考图片(诸如参考图片的参考图片索引或图片顺序计数器),随后检查参考图片列表Y(Y!=X,例如,Y=1-X)的参考图片。

v.可替代地,当一个运动候选是双向预测候选时,如果当前目标参考图片列表是X,则可以首先检查参考图片列表Y(Y!=X,例如,Y=1-X)的参考图片,随后检查参考图片列表X的参考图片。

vi.可替代地,在与要被检查的所有运动候选相关联的参考图片列表Y(Y!=X,例如,Y=1-X)的参考图片之前,可以检查与要被检查的所有运动候选相关联的参考图片列表X的参考图片。

7.查找表中的运动候选可以用于推导其他候选,并且推导出的候选可以用于对块进行编解码。

a.在一个示例中,偏移被添加到查找表中的运动候选的运动矢量,以推导新的候选。

b.在一个示例中,查找表中的单向预测运动候选可以用于诸如经由将运动矢量缩放到相同参考图片列表中的另一参考图片来推导具有相同参考图片列表索引的另一单向预测运动候选。

c.在一个示例中,查找表中的单向预测运动候选可以用于诸如经由将运动矢量缩放到另一个参考图片列表的一个参考图片来推导具有不同参考图片列表索引的另一单向预测运动候选。

d.在一个示例中,查找表中的单向预测运动候选可以用于经由将运动矢量缩放到另一个参考图片列表的一个参考图片来推导一个双向预测运动候选。

e.在一个示例中,来自查找表的不同运动候选可以用于计算新的运动候选。例如,两个或更多个运动候选的平均值可以被推导作为新的运动候选。

8.查找表中的运动候选的检查顺序被定义如下(假定允许检查K

(K>=1)个运动候选):

a.查找表中的最后K个运动候选。

b.当K>=L时,前K%L个候选,其中,L是查找表尺寸

c.当K>=1时,查找表中的所有候选(L个候选)。

d.此外,可替代地,基于运动候选索引的降序。

e.此外,可替代地,基于运动候选索引的升序。

f.可替代地,基于诸如与运动候选和当前块相关联的位置的距离的候选信息来选择K个运动候选。

i.在一个示例中,选择K个最近的运动候选。

ii.在一个示例中,当计算距离时,候选信息还可以考虑块形状。

g.在一个示例中,来自包括L个候选的表的运动候选中的K个的检查顺序可以被定义为:按顺序选择索引等于a

i.在一个示例中,a

1.可替代地,a

ii.在一个示例中,所有间隔T

iii.在一个示例中,(K,L,a

iv.当K小于L时,可以仅应用这样的方法。

v.此外,可替代地,当K大于或等于阈值时,可以应用项目符号7.c.。阈值可以被定义为L,或者它可以取决于K或者从块到块自适应地改变。在一个示例中,阈值可以取决于在添加来自查找表的新的运动候选之前列表中的可用运动候选的数量。

h.在一个示例中,来自包括L个候选的表的运动候选中的K个的检查顺序可以被定义为:按顺序选择索引等于a

i.在一个示例中,a

ii.在一个示例中,所有间隔T

iii.在一个示例中,(K,L,a

iv.当K小于L时,可以仅应用这样的方法。

v.此外,可替代地,当K大于或等于阈值时,可以应用项目符号7.c.。阈值可以被定义为L,或者它可以取决于K或者从块到块自适应地改变。在一个示例中,阈值可以取决于在添加来自查找表的新的运动候选之前列表中的可用运动候选的数量。

i.从查找表选择多少和/或如何选择运动候选可以取决于编解码信息,诸如块尺寸/块形状。

i.在一个示例中,对于更小的块尺寸,代替选择最后K个运动候选,可以选择其他K个运动候选(不是从最后一个开始)。

ii.在一个示例中,编解码信息可以是AMVP或Merge模式。

iii.在一个示例中,编解码信息可以是仿射模式或非仿射AMVP模式或非仿射Merge模式。

iv.在一个示例中,编解码信息可以是仿射AMVP(帧间)模式仿射Merge模式或非仿射AMVP模式或非仿射Merge模式。

v.在一个示例中,编解码信息可以是当前图片参考(Current PictureReference,CPR)模式或者不是CPR模式。在一些示例中,CPR模式也被称为帧内块复制(Intra Block Copy,IBC)模式。

vi.可替代地,如何从查找表选择运动候选还可以取决于查找表中的运动候选的数量,和/或在添加来自查找表的新的运动候选之前列表中的可用运动候选的数量。

j.在一个示例中,要被检查的查找表中的运动候选的最大数量(即,其可以被添加到Merge/AMVP候选列表)可以取决于查找表中的可用运动候选的数量(由N

i.在一个示例中,要被检查的查找表中的运动候选的最大数量被设置为(N

ii.可替代地,要被检查的查找表中的运动候选的最大数量被设置为(N

iii.在一个示例中,N

iv.NUM

v.可替代地,NUM

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

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

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

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

o.可以在SPS、PPS、条带头、片头中信令通知用以指示表尺寸以及允许被检查的运动候选的数量(即K=L)的一个语法元素。

9.当来自查找表的运动候选用于对块进行编解码时(例如,Merge/AMVP模式),运动候选的插入顺序可以自适应地改变。

a.在一个示例中,运动候选的插入顺序可以取决于一个块的编解码信息,例如,对于不同的模式是不同的。

i.在一个示例中,对于Merge模式,它们可以在TMVP候选之后被添加。

ii.在一个示例中,运动候选的插入顺序可以在空域候选之前被添加。

iii.在一个示例中,对于当前图片参考(CPR)模式,它们可以在空域候选之后被添加。

b.在一个示例中,运动候选的插入顺序可以从块到块或者从片到片或者从片组到片组或从一个视频数据处理单元到另一个视频数据处理单元自适应地改变。

c.在一个示例中,对于不同的块维度,运动候选的插入顺序可以不同。

d.在一个示例中,对于不同的分割深度,运动候选的插入顺序可以不同。

e.在一个示例中,运动候选的插入顺序可以取决于片/片组/条带/图片类型。

f.在一个示例中,运动候选的插入顺序可以取决于低延迟检查标志。

g.在一个示例中,运动候选的插入顺序可以取决于低延迟检查标志。

h.如何应用修剪和/或在候选列表构建过程中有多少要被检查的查找表中的运动候选和/或有多少查找表和/或可以利用的查找表中的运动候选的最大数量可以自适应地改变。

10.可以在SPS、PPS、条带头、片头、CTU、CTB、CU或PU、覆盖多个CTU/CTB/CU/PU的区域中信令通知启用/禁用对用于块的运动信息编解码的查找表的使用。

11.是否应用来自查找表的预测还可以取决于编解码信息。当推断不应用于块时,跳过预测的指示的附加信令通知。可替代地,当推断不应用于块时,不需要访问查找表的运动候选,并且对相关运动候选的检查被省略。

a.是否应用来自查找表的预测可以取决于块尺寸/块形状。在一个示例中,对于更小的块,诸如4×4、8×4或4×8块,不允许执行来自查找表的预测。

b.是否应用来自查找表的预测可以取决于块是以AMVP模式还是Merge模式而编解码的。在一个示例中,对于AMVP模式,不允许执行来自查找表的预测。

c.是否应用来自查找表的预测可以取决于块是以仿射运动或其他种类的运动(诸如平移运动)而编解码的。在一个示例中,对于仿射模式,不允许执行来自查找表的预测。

12.先前编码或解码的帧/条带/片中的查找表的运动候选可以用于预测不同帧/条带/片中的块的运动信息。

a.在一个示例中,仅与当前块的参考图片相关联的查找表可以用于对当前块进行编解码。

b.在一个示例中,仅与具有当前块的相同条带类型和/或相同量化参数的图片相关联的查找表可以用于对当前块进行编解码。

13.在用运动信息(即帧内BC模式、帧间编解码模式)对块进行编解码之后,可以更新一个或多个查找表。

a.在一个示例中,是否更新查找表可以重用用于选择查找表的规则,例如,当可以选择查找表以用于对当前块进行编解码时,在对块进行编码/解码之后,可以进一步更新所选择的查找表。

b.可以基于块/LCU的编解码信息和/或位置来选择要被更新的查找表。

c.如果用直接信令通知的运动信息(诸如AMVP模式、正常/仿射帧间模式的MMVD模式、正常/仿射帧间模式的AMVR模式)对块进行编解码,则块的运动信息可以被添加到查找表。

i.可替代地,如果块是用从没有进行任何细化的空域临近块(例如,没有进行细化的空域Merge候选)直接继承的运动信息编解码的,则块的运动信息不应该被添加到查找表。

ii.可替代地,如果块是用从进行了细化(诸如DMVR、FRUC)的空域临近块直接继承的运动信息编解码的,则块的运动信息不应该被添加到任何查找表。

iii.可替代地,如果块是用从存储在查找表中的运动候选直接继承的运动信息编解码的,则块的运动信息不应该被添加到任何查找表。

iv.在一个示例中,这样的运动信息可以被直接添加到查找表,诸如添加到表的最后一个条目或者添加到用于存储下一个可用运动候选的条目。

v.可替代地,这样的运动信息可以被直接添加到查找表而无需修剪,例如,无需任何修剪。

vi.可替代地,这样的运动信息可以用于对查找表进行重新排序。

vii.可替代地,这样的运动信息可以在用于以有限的修剪(例如,与查找表中的最新一个相比的)更新查找表。

d.选择块内的M(M>=1)个代表性位置,并且与代表性位置相关联的运动信息用于更新查找表。

i.在一个示例中,代表性位置被定义为块内的四个角位置(例如,图27中的C0-C3)中的一个。

ii.在一个示例中,代表性位置被定义为块内的中心位置(例如,图27中的Ca-Cd)。

iii.当针对块不允许子块预测时,M被设置为1。

iv.当针对块允许子块预测时,M可以被设置为1或子块的总数或[1,子块的数量](不包含端点)之间的任何其他值。

v.可替代地,当针对块允许子块预测时,M可以被设置为1,并且对代表性子块的选择基于

1.利用的运动信息的频率,

2.它是否是双向预测块

3.基于参考图片索引/参考图片

4.与其他运动矢量相比的运动矢量差(例如,选择最大MV差)

5.其他编解码信息。

e.当选择M(M>=1)个代表性位置集合以更新查找表时,在将它们作为附加运动候选添加到查找表之前,可以检查进一步的条件。

i.修剪可以被应用于查找表中的现有运动候选的新的运动信息集合。

ii.在一个示例中,新的运动信息集合不应该与查找表中的任何或部分现有运动候选相同。

iii.可替代地,对于来自新的运动信息集合和一个现有运动候选的相同参考图片,MV差应该不小于一个/多个阈值。例如,MV差的水平和/或垂直分量应该大于1像素距离。

iv.可替代地,当K>L时,新的运动信息集合仅与最后K个候选或前K%L个现有运动候选进行修剪,以允许重新激活旧的运动候选。

v.可替代地,没有应用修剪。

f.如果M个运动信息集合用于更新查找表,则对应的计数器应该增加M。

g.假定要被更新的查找表的计数器在对当前块进行编解码之前由K表示,在对块进行编解码之后,对于一个选择的运动信息集合(用上述方法),它被添加作为索引等于K%L的附加运动候选(其中,L是查找表尺寸)。在图28A和图28B中示出了示例。

i.可替代地,它被添加作为索引等于min(K+1,L-1)的附加运动候选。此外,可替代地,如果K>=L,则从查找表移除第一个运动候选(索引等于0),并且将随后的K个候选索引减小1。

ii.对于以上两种方法(将新的运动候选添加到索引等于K%L的条目,或者将其添加到索引等于min(K+1,L-1)的条目),它们都尝试保留来自先前编码或解码的块的最新的几个运动信息集合,而不管是否有相同/类似的运动候选。

iii.可替代地,当将新的运动信息集合作为运动候选添加到LUT时,首先应用冗余检查。在这种情况下,LUT将保留来自先前编码或解码的块的最新的几个运动信息集合,然而,冗余的运动信息集合可以从LUT移除。这样的方法被称为基于冗余移除的LUT更新方法。

1.如果LUT中有冗余运动候选,则可能不增大或减小与LUT相关联的计数器。

2.冗余检查可以被定义为Merge候选列表构建过程中的修剪过程,例如,检查参考图片/参考图片索引是否相同以及运动矢量差是否在范围内或相同。

3.如果在LUT中找到冗余运动候选,则将冗余运动候选从其当前位置移动到LUT的最后一个位置。

a.类似地,如果在LUT中找到冗余运动候选,则从LUT移除该冗余运动候选。此外,在冗余运动候选之后插入到LUT的所有运动候选向前移动,以重新填充冗余运动候选的移除条目。在移位之后,新的运动候选被添加到LUT。

b.在这种情况下,计数器保持不变。

c.一旦在LUT中识别出冗余运动候选,冗余检查过程就被终止。

4.可以识别多个冗余运动候选。在这种情况下,从LUT移除它们中的全部。此外,剩余运动候选中的全部可以按顺序向前移动。

a.在这种情况下,计数器减小(冗余运动候选的数量减1)。

b.在识别出maxR个冗余运动候选(maxR是正整数变量)之后,冗余检查过程被终止。

5.冗余检查过程可以从第一个运动候选开始到最后一个运动候选(即,按照添加到LUT的顺序,按照运动信息所来自的块的解码过程的顺序)。

6.可替代地,当LUT中有冗余运动候选时,代替从LUT移除冗余运动候选中的一个或多个,可以从冗余运动候选推导虚拟运动候选,并且虚拟运动候选可以用于替换冗余运动候选。

a.通过将(多个)偏移添加到一个或多个运动矢量的水平和/或垂直分量,可以从冗余运动候选推导虚拟运动候选;或者如果指向相同的参考图片,则两个运动矢量的平均值。可替代地,可以从以查找表中的运动矢量作为输入的任何函数推导虚拟运动候选。示例性功能是:将两个或更多个运动矢量相加;对两个或更多个运动矢量进行平均。运动矢量可以在被输入到函数中之前被缩放。

b.虚拟运动候选可以被添加到与冗余运动候选相同的位置。

c.虚拟运动候选可以在所有其他运动候选之前被添加(例如,从最小的条目索引(如零)开始)。

d.在一个示例中,它仅在特定条件(例如,当当前LUT未满时)下被应用。

7.基于冗余移除的LUT更新方法可以在特定条件下被调用,诸如

a.当前块是以Merge模式编解码的,

b.当前块是以AMVP模式编解码的,但是MV差的至少一个分量是非零的;

c.当前块是或不是用基于子块的运动预测/运动补偿方法编解码的(例如,不是以仿射模式编码的)

d.当前块是以Merge模式编解码的,并且运动信息与特定类型相关联(例如,来自空域临近块、来自左边临近块、来自时域块)。

h.在对一个块进行编码/解码之后,可以通过仅将M个运动信息集合插入到表的末尾(即在所有现有候选之后)来更新一个或多个查找表。

i.此外,可替代地,可以移除表中的一些现有运动候选。

1.在一个示例中,如果在插入M个运动信息集合之后表已满,则可以从表移除运动候选的前几个条目。

2.在一个示例中,如果在插入M个运动信息集合之前表已满,则可以从表移除运动候选的前几个条目。

ii.此外,可替代地,如果块是用来自表的运动候选编解码的,则可以对表中的运动候选进行重新排序,以便所选择的运动候选被放到表的最后一个条目。

1.在一个示例中,在对块进行编码/解码之前,查找表可以包括由HMVP

i.在对一个帧内约束块进行编解码之后,可以清空查找表。

j.如果运动信息的条目被添加到查找表中,则也可以通过从运动信息进行推导将运动信息的更多条目添加到表中。在这种情况下,与查找表相关联的计数器可以被增加超过1。

i.在一个示例中,运动信息的条目的MV被缩放并且放到表中;

ii.在一个示例中,运动信息的条目的MV被添加(dx,dy)并且放到表中;

iii.在一个示例中,运动信息的两个或更多个条目的MV的平均值被计算并且放到表中。

14.如果一个块位于图片/条带/片边界处,则总是不允许对查找表的更新。

15.以上LCU行的运动信息可以被禁用,以对当前LCU行进行编解码。

a.在这种情况下,在新的条带/片/LCU行的开始处,可用运动候选的数量可以被重置为0。

16.在开始对具有新的时域层索引的条带/片进行编解码时,可用运动候选的数量可以被重置为0。

17.可以用具有相同的时域层索引的一个条带/片/LCU行/多个条带来连续更新查找表。

a.可替代地,可以仅在对每S(S>=1)个CTU/CTB/CU/CB进行编码/解码之后或在对特定区域(例如,尺寸等于8×8或16×16)进行编码/解码之后更新查找表。

b.可替代地,可以仅在以特定模式对每S(S>=1)个块(例如,CU/CB)进行编码/解码之后(例如,S个帧间编解码块)更新查找表。可替代地,可以仅在对不是用基于子块的运动预测/运动补偿方法编解码的(例如,不是以仿射和/或ATMVP模式编解码的)每S(S>=1)个帧间编解码块(例如,CU/CB)进行编码/解码之后更新查找表。

c.可替代地,可以仅在编码/解码块的左上方坐标满足某些条件时更新查找表。例如,仅在(x&M==0)&&(y&M==0)时更新查找表,其中(x,y)是编码/解码块的左上方坐标。M是整数,诸如2、4、8、16、32或64。

d.可替代地,一旦一个查找表达到最大允许的计数器,其就可以停止更新。

e.在一个示例中,计数器可以是预定义的。可替代地,计数器可以在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、条带头、片头、编解码树单元(CTU)、编解码树块(CTB)、编解码单元(CU)或预测单元(PU)、覆盖多个CTU/CTB/CU/PU的区域中被信令通知。

18.查找表更新过程可以在不同过程内被调用。

a.在一个示例中,对于以Merge模式编解码的块,可以在对Merge候选进行解码之后或在构建Merge列表之后或在对进行了和/或没有进行细化的运动信息进行解码之后调用查找表更新过程。

b.在一个示例中,对于以AMVP模式编解码的块,可以在对进行了和/或没有进行细化的运动信息进行解码之后调用查找表更新过程。

c.何时和/或如何更新查找表可以取决于编解码模式、块维度、视频处理数据单元、低延迟检查等等。

i.在一个示例中,当一个块是以AMVP模式编解码的时,可以直接更新查找表而无需修剪。

ii.可替代地,当一个块是以Merge模式编解码的时,可以在修剪的情况下更新查找表。

iii.可替代地,当一个块是以Merge模式编解码的并且其运动信息是从空域和/或时域块推导出的时,可以在修剪的情况下更新查找表。

iv.可替代地,当一个块是以Merge模式编解码的并且其运动信息是从查找表中的运动候选推导出的时,可以对查找表进行重新排序,而无需修剪。

v.可替代地,当一个块以Merge模式编解码并的且其运动信息是从查找表中的虚拟候选(例如,组合的双向、成对、零运动矢量候选)推导出的时,查找表可能不被更新。

vi.可替代地,当一个块是以子块Merge模式和/或三角形Merge模式编解码的时,查找表可能不被更新。

vii.可替代地,当一个块是以具有运动矢量差的Merge(MMVD)模式编解码的并且其运动信息是从空域和/或时域块推导出的时,可以直接更新查找表。

viii.在一个示例中,当一个块是以照明补偿(IC)模式和/或重叠块运动补偿(OBMC)模式和/或解码侧运动矢量推导(DMVD)模式编解码的时,查找表可能不会被更新。可替代地,当一个块是以这样的模式编解码时,可以更新查找表。

19.是否重置查找表还可以取决于启用(或禁用)预测交叉(crossing)片的指示。

a.在一个示例中,如果这样的指示指示不允许预测交叉片,则在对新的片进行编解码之前必须重置(例如,清空)查找表。

b.在一个示例中,这样的指示指示允许预测交叉片,在对新的片进行编解码之前不需要重置查找表(例如,清空)。也就是说,用于对第二片进行编码的查找表可以取决于用于对第一片进行编解码的那些表。

20.是否启用自适应环路滤波器(Adaptive Loop Filter,ALF)时域预测(或ALF滤波器从不同片的预测/继承)还可以取决于启用(或禁用)预测交叉片的指示。

a.在一个示例中,如果这样的指示指示不允许预测交叉片,则ALF时域预测不被允许。

b.在一个示例中,这样的指示指示允许预测交叉片,可以启用ALF时域预测。

21.当对于Merge共享节点启用共享Merge列表(或其他种类的共享运动候选列表/或共享帧内模式信息或其他共享信息)时,可以通过以下方式执行对查找表的更新:

a.可以选择代表性编解码块(例如,叶编解码单元)中的一个以更新查找表。

i.在一个示例中,它被定义为以解码顺序的最后一个编解码块。

ii.可替代地,它被定义为满足用于查找表更新的条件的最后一个编码块(诸如具有非仿射和非ATMVP帧间模式的最后一个编解码块)。

iii.在一个示例中,它被定义为父节点下以解码顺序的第一个编解码块。

iv.可替代地,它被定义为在父节点下满足用于查找表更新的条件的第一个编解码块(诸如具有非仿射和非ATMVP、非三角形帧间模式的最后一个编解码块)。

b.可以选择多于一个代表性编解码块(例如,叶编解码单元)以更新查找表。

i.在一个示例中,与那些代表性编解码块相关联的多个编解码信息集合可以用于更新查找表,其中,查找表的多个条目可以相应地被更新。

ii.在一个示例中,与那些代表性编解码块相关联的多个编解码信息集合可以用于更新查找表,其中,多个查找表可以相应地被更新。

iii.在一个示例中,可以以特定顺序检查那些代表性编解码块,以确定是否用于更新一个或多个查找表。

iv.在一个示例中,那些代表性编解码块可以被定义为父节点下的第一个编解码块和最后一个编解码块。

c.可以总是禁用对查找表的更新。

22.对于所有以上项目符号,查找表指示编解码信息或以解码顺序从来自先前编码或解码的块的编解码信息推导出的信息。

a.查找表可以包括平移运动信息、或仿射运动信息、或仿射模型参数、或帧内模式信息、或照明补偿信息等等。

b.可替代地,查找表可以包括至少两个种类的信息,诸如平移运动信息、或仿射运动信息、或仿射模型参数、或帧内模式信息、或照明补偿信息等。

6.基于LUT的运动矢量预测的附加实施例

提出了一种基于历史的MVP(HMVP)方法,其中,HMVP候选被定义为先前编码或解码的块的运动信息。在编码/解码过程期间维护具有多个HMVP候选的表。当遇到新的条带时,表被清空。每当存在帧间编解码块时,相关联的运动信息被添加到表的最后一个条目,作为新的HMVP候选。图29中描绘了整个编码流程。

在一个示例中,表尺寸被设置为L(例如,L=16或6、或44),这指示多达L个HMVP候选可以被添加到表。

(1)在一个实施例中(对应于发明11.g.i),如果有来自先前编码或解码的块的多于L个HMVP候选,则应用先进先出(First-In-First-Out,FIFO)规则,以便表总是包含最新的先前编码或解码的L个运动候选。图30描绘了其中应用FIFO规则来移除HMVP候选并将新的HMVP候选添加到在所提出的方法中使用的表的示例。

(2)在另一个实施例中(对应于发明11.g.iii),每当添加新的运动候选(诸如当前块是帧间编解码的和非仿射模式)时,首先应用冗余检查过程来识别在LUT中是否有相同或类似的运动候选。

一些示例被描绘如下:

图31A和图31B示出了移除了一个冗余运动候选的基于冗余移除的LUT更新方法的示例。图31A示出了当在添加新的运动候选之前LUT已满的情况,并且图31B示出了当在添加新的运动候选之前LUT未满时的情况。

图32A和图32B示出了移除了多个冗余运动候选的基于冗余移除的LUT更新方法的附加另一示例。图32A示出了当在添加新的运动候选之前LUT已满时的情况,并且图32B示出了当在添加新的运动候选之前LUT未满时的情况。

HMVP候选可以用于Merge候选列表构建过程。表中从最后一个条目到第一个条目的所有HMVP候选(或最后K0个HMVP,例如,K0等于16或6)在TMVP候选之后被插入。修剪被应用于HMVP候选。一旦可用Merge候选的总数达到信令通知的最大允许的Merge候选,Merge候选列表构建过程就被终止。可替代地,一旦添加的运动候选的总数达到给定值,就终止从LUT提取运动候选。

类似地,HMVP候选也可以用于AMVP候选列表构建过程。表中最后K1个HMVP候选的运动矢量在TMVP候选之后被插入。仅具有与AMVP目标参考图片相同的参考图片的HMVP候选被用于构建AMVP候选列表。修剪被应用于HMVP候选。在一个示例中,K1被设置为4。

上述示例和实施例可以并入在下面描述的、可以在视频解码器或视频编码器处实施的方法(例如,方法3300)的上下文。

图33是用于视频处理的方法的流程图。方法3300包括,在操作3310,维护一个或多个表,一个或多个表中的至少一个表与一个或多个条目相关联。

方法3300包括,在操作3320,基于至少一个表中的第一运动候选集合来推导第二运动候选集合。

方法3300包括,在操作3330,基于第二运动候选集合来执行视频的当前块和视频的比特流表示之间的转换。

图34是用于视频处理的方法的流程图。方法3400包括,在操作3410,维护一个或多个表,其中,一个或多个表中的每一个表与一个或多个条目相关联。

方法3400包括,在操作3420,自适应地将运动候选的插入顺序从一个或多个表中的至少一个表改变为候选列表。

方法3400包括,在操作3430,基于候选列表来执行视频的当前块和视频的比特流表示之间的转换。

7.所公开的技术的示例仿真结果

在下面的复杂性分析和仿真结果中总结了所公开的技术的效果。

7.1复杂性分析

在复杂性分析方面,考虑了两个方面,包括内存需求和计算复杂性增加。对于HMVP所需的附加内存,需要存储多达6个运动候选。也就是说,6*(一个MV的32位+一个参考索引的4位)*2=每一条带54字节。

对于计算复杂性,它主要来自附加修剪操作。HVMP所需的修剪操作的两个过程。

·一个过程是当插入新的HMVP候选时,在表更新过程中调用的,其中,需要多达6次的修剪操作。

·另一个过程是在Merge列表构建过程中调用的。由于表更新过程中的修剪过程,表中的所有HMVP候选总是彼此不同。因此,在Merge列表构建过程中,如果第二个HMVP候选已经被标记为与第一个HMVP候选相同,则不需要将第二个HMVP候选与空域或时域候选进行比较。附加修剪操作的次数可以被定义为C(N

ο当N

ο当N

表5示出了最坏情况下由N

表5.最坏情况下由HMVP引入的附加修剪操作

应该注意的是,上表仅列出了修剪操作的次数的最坏情况。在硬件实施过程中,吞吐量可能会更高,因为HMVP候选在对一个块进行解码之前已经就绪。因此,可以将每个HMVP与任何可用Merge候选并行比较。

此外,由于减少的组合的双向预测Merge候选生成过程的对(pair)的数量,即从12个到6个,可以认为修剪操作的次数减少了3个,因为每一组合的双向预测Merge候选生成过程的对有2次检查,并且每一修剪过程有5次检查。因此,最坏情况下整个建议的附加修剪操作的次数被列出如下:

表6.整个建议的附加修剪操作(对于最坏情况)

7.2模拟结果

下表示出了所提出的方法的BD率增益和处理时间影响。按照参考软件VTM-2.0.1的顶部上的通用测试条件来进行了两个模拟集合。

·仅对于Merge模式启用HMVP(测试4.4.7.a)

ο锚定:VTM(通过禁用BMS-1.0中的所有BMS工具)

ο测试:具有HMVP的锚定仅应用于Merge模式

·对于AMVP和Merge模式两者启用HMVP(测试4.4.7.b)

ο锚定:BMS

ο测试:具有建议的锚定

对于每个测试集,根据CE4描述执行了根据设置为6、8和10的Merge列表尺寸N

7.2.1测试4.4.7.a的模拟结果

该小节报告仅在N

表7.随机访问Main 10下的测试4.4.7.a的性能

表8.低延迟B Main 10下的测试4.4.7.a的性能

7.2.2具有相同Merge列表尺寸的模拟结果

该小节报告仅在N

表9.随机访问Main 10下的测试4.4.7.c的性能

表10.低延迟B Main 10下的测试4.4.7.c的性能

8.所公开的技术的示例实施方式

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

在一些实施例中,视频编解码方法可以使用如参考图35所述的在硬件平台上实施的装置而实施。

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

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

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

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

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

应当理解,已经公开了将通过允许在视频或图像的编码或解码中使用帧内编解码工具有益于并入诸如智能手机、膝上型电脑、台式电脑和类似设备的视频处理设备内的视频编码器和解码器实施例的几种技术。

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

A1.一种视频处理的方法,包括:维护一个或多个表,其中,一个或多个表中的至少一个表与一个或多个条目相关联;基于至少一个表中的第一运动候选集合来推导第二运动候选集合;以及基于第二运动候选集合来执行视频的当前块和视频的比特流表示之间的转换。

A2.根据解决方案A1所述的方法,其中,第二运动候选集合中的至少一个运动候选是基于将偏移添加到第一运动候选集合中的至少一个运动候选的运动矢量而推导出的。

A3.根据解决方案A2所述的方法,其中,偏移被添加到运动矢量的水平分量或垂直分量。

A4.根据解决方案A2所述的方法,其中,偏移被添加到运动矢量的水平分量和垂直分量两者。

A5.根据解决方案A1所述的方法,其中,将第一运动候选集合的第一单向预测候选缩放到参考图片列表中的参考图片被用于推导第二运动候选集合的第二单向预测候选,并且其中,第一单向预测候选和第二单向预测候选具有相同的参考图片列表索引并且共享参考图片列表。

A6.根据解决方案A1所述的方法,其中,将第一运动候选集合的第一单向预测候选缩放到参考图片列表中的参考图片被用于推导第二运动候选集合的第二单向预测候选,其中,第一单向预测候选和第二单向预测候选具有不同的参考图片列表索引,并且其中,参考图片列表与第二单向预测候选相关联。

A7.根据解决方案A1所述的方法,其中,将第一运动候选集合的单向预测候选缩放到参考图片列表中的参考图片被用于推导第二运动候选集合的双向预测候选,其中,参考图片列表与双向预测候选相关联。

A8.根据解决方案A1所述的方法,第二运动候选集合中的至少一个运动候选是基于对来自第一运动候选集合的两个或更多个不同的运动候选进行平均而推导出的。

A9.根据解决方案A1至A8中任一项所述的方法,其中,第二运动候选集合中的至少一个运动候选被添加到运动候选列表,并且其中,执行该转换是基于运动候选列表的。

A10.根据解决方案A9所述的方法,其中,运动候选列表包括Merge模式的运动候选列表或高级运动矢量预测(AMVP)模式的运动候选列表中的至少一个。

A11.根据解决方案A1至A10中任一项所述的方法,还包括:在执行该转换之后,基于当前块的运动信息来更新至少一个表。

A12.根据解决方案A1至A11中任一项所述的方法,其中,至少一个表中的条目包括第一运动候选集合中的一个运动候选及其相关联的运动信息,相关联的运动信息包括预测方向、一个或多个参考图片和/或索引、一个或多个运动矢量、局部照明补偿(LIC)标志、仿射标志、运动矢量差(MVD)值或MVD精度。

A13.根据解决方案A12所述的方法,其中,相关联的运动信息还包括与当前块相关联的位置信息。

A14.根据解决方案A1至A13中任一项所述的方法,该转换从比特流表示生成当前块。

A15.根据解决方案A1至A13中任一项所述的方法,其中,该转换从当前块生成比特流表示。

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

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

B1.一种视频处理的方法,包括:维护一个或多个表,其中,一个或多个表中的每一个表与一个或多个条目相关联;自适应地将运动候选的插入顺序从一个或多个表中的至少一个表改变为候选列表;以及基于候选列表来执行视频的当前块和视频的比特流表示之间的转换。

B2.根据解决方案B1所述的方法,该更新是基于当前块的编解码模式的。

B3.根据解决方案B2所述的方法,其中,插入顺序包括在确定编解码模式是Merge模式时,在时域运动矢量预测(TMVP)候选之后插入新的运动候选。

B4.根据解决方案B2所述的方法,其中,插入顺序包括在空域候选之前插入新的运动候选。

B5.根据解决方案B2所述的方法,其中,插入顺序包括在确定编解码模式是帧内块复制(IBC)模式时,在空域候选之后插入新的运动候选。

B6.根据解决方案B1所述的方法,其中,插入顺序从块到块、从片到片、从片组到片组或从一个视频处理单元到另一个视频处理单元自适应地改变。

B7.根据解决方案B1所述的方法,其中,更新或插入顺序是基于当前块的高度或宽度的。

B8.根据解决方案B1所述的方法,其中,更新或插入顺序是基于当前块的分割深度的。

B9.根据解决方案B1所述的方法,其中,更新或插入顺序是基于与当前块相关联的片类型、片组类型、条带类型或图片类型的。

B10.根据解决方案B1所述的方法,其中,更新或插入顺序是基于比特流表示中的低延迟检查标志的。

B11.根据解决方案B1至B10中任一项所述的方法,还包括:在候选列表的构建期间,自适应地改变以下中的至少一个:当将运动候选添加到候选列表时的修剪过程、或一个或多个表中的表中要被检查的运动候选的数量、或要被检查的LUT中的运动候选的最大数量、或要被检查的一个或多个表中的表的数量。

B12.根据解决方案B1至B11中任一项所述的方法,其中,表包括基于历史的运动矢量预测(HMVP)表。

B13.根据解决方案B12所述的方法,其中,HMVP表中的条目包括运动候选及其相关联的运动信息,相关联的运动信息包括预测方向、一个或多个参考图片和/或索引、一个或多个运动矢量、局部照明补偿(LIC)标志、仿射标志、运动矢量差(MVD)值或MVD精度。

B14.根据解决方案B1至B11中任一项所述的方法,还包括:在执行该转换之后,基于当前块的运动信息来更新一个或多个表。

B15.根据解决方案B1到B14中任一项所述的方法,该转换从比特流表示生成当前块。

B16.根据解决方案B1至B14中任一项所述的方法,其中,该转换从当前块生成比特流表示。

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

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

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

本专利文档中描述的主题和功能操作的实施方式可以在各种系统、数字电子电路中被实施,或者在计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)中被实施,或者在它们中的一个或多个的组合中被实施。本说明书中描述的主题的实施方式可以被实施为一个或多个计算机程序产品,即编码在有形和非暂时性计算机可读介质上的计算机程序指令的一个或多个模块,该计算机程序指令用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合、或它们中的一个或多个的组合。术语“数据处理单元”或“数据处理装置”包含用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机、或多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合的代码。

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

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

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

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

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

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

相关技术
  • 子块运动矢量预测中基于多个信息的运动候选推导
  • 用于子块运动矢量预测的基于搜索的运动候选推导
技术分类

06120113250063