空间运动压缩

文档序号:1617288 发布日期:2020-01-10 浏览:18次 >En<

阅读说明:本技术 空间运动压缩 (Spatial motion compression ) 是由 张莉 张凯 刘鸿彬 王悦 于 2019-07-01 设计创作,主要内容包括:本公开涉及空间运动压缩。公开了用于视频编码的设备、系统和方法。一个示例方法包括解析比特流以恢复视频的第一部分中的一个或多个当前块的运动信息;利用视频的第一部分中的块的运动信息来生成代表性运动信息集;以及使用代表性运动信息集重建视频的第二部分中的块。(The present disclosure relates to spatial motion compression. Devices, systems, and methods for video encoding are disclosed. One example method includes parsing a bitstream to recover motion information for one or more current blocks in a first portion of a video; generating a representative set of motion information using motion information for blocks in a first portion of a video; and reconstructing a block in the second portion of the video using the representative set of motion information.)

空间运动压缩

相关申请的交叉引用

根据适用的《专利法》和/或《巴黎公约》的规定,本申请及时要求于2018年7月1日提交的国际专利申请号PCT/CN2018/093944优先权和利益。根据美国法律,将国际专利申请号PCT/CN2018/093944的全部公开以引用方式并入本文,作为本申请公开的一部分。

技术领域

本申请文件一般直接涉及图片和视频编码技术。

背景技术

数字视频在互联网和其它数字通信网络上使用的带宽最大。随着能够接收和显示视频的连接用户设备数量的增加,预计数字视频使用的带宽需求将继续增长。

发明内容

描述了与识别非相邻Merge候选以降低存储器和复杂度需求并且提高编码效率相关的设备、系统和方法。用于降低非相邻Merge设计的复杂度的装置、系统和方法。例如,当前公开的技术公开了用于选择非相邻Merge候选以将行缓冲器的尺寸保持在阈值之下的规则。所描述的方法可以应用于现有视频编码标准(例如,高效视频编码(HEVC))和未来视频编码标准或视频编解码器。

在一个代表性方面,所公开的技术可以用于提供用于视频编码和解码的方法。该方法包括解析比特流以恢复视频的第一部分中的一个或多个当前块的运动信息;利用视频的第一部分中的块的运动信息来生成代表性运动信息集;以及使用代表性运动信息集重建视频的第二部分中的块。在文档中进一步提供了一些实施例优选的一些解决方案的列表。

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

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

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

附图说明

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

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

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

图4A和4B分别示出了将编码树块(CTB)细分为CB和转换块(TB)以及相应的四叉树的示例。

图5A和5B示出了用于最大编码单元(LCU)的细分和对应的QTBT(四叉树加二叉树)的示例。

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

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

图8A-8I示出了支持多树类型(MTT)的CB的划分的示例,其是QTBT的概括。

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

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

图11示出了经受空间Merge候选的冗余校验的候选对的示例。

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

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

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

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

图16示出了构建运动矢量预测候选的示例。

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

图18示出了使用用于编码单元(CU)的可选时域运动矢量预测(ATMVP)算法的运动预测的示例。

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

图20示出了具有由空间-时域运动矢量预测(STMVP)算法使用的子块和相邻块的编码单元(CU)的示例。

图21示出了模式匹配运动矢量推导(PMMVD)模式中的双边匹配的示例,其是基于帧速率上转换(FRUC)算法的特殊Merge模式。

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

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

图24示出了基于双边模板匹配的解码器侧运动矢量细化(DMVR)算法的示例。

图25示出了用于推导空间Merge候选的空间相邻块的示例。

图26示出了用于添加非相邻Merge候选的示例性伪代码。

图27示出了非相邻块的受限区域的示例。

图28示出了根据当前公开的技术的用于视频编码的另一示例方法的流程图。

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

具体实施方式

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

所公开的技术的实施例可以应用于现有视频编码标准(例如,HEVC、H.265)和未来标准以改进压缩性能。在本文档中使用章节标题以提高描述的可读性,并且不以任何方式将讨论或实施例(和/或实现)限制于仅相应的部分。虽然使用HEVC、H.265和VVC标准的某些术语来解释,但是这些技术不仅限于这些编解码器,并且可以扩展到其他视频编码或解码协议。

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

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

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

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

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

1.1H.264/AVC中的划分树结构的示例

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

内部编码块使用空间预测来探索像素之间的空间相关性。定义了两种划分:16x16和4x4。

帧间编码块通过估计图片之间的运动来使用时域预测,而不是空间预测。可以单独估计16x16宏块或其任何子宏块划分的运动:16x8、8x16、8x8、8x4、4x8、4x4,如图2所示。每个子宏块划分只允许一个运动矢量(MV)。

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

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

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

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

(2)编码单元(CU)和编码块(CB):CTU的四叉树语法规定了其亮度和色度CB的尺寸和位置。四叉树的根与CTU相关联。因此,亮度CTB的尺寸是亮度CB支持的最大尺寸。CTU的亮度和色度CB的划分是联合发信令的。一个亮度CB和通常两个色度CB以及相关的语法一起形成编码单元(CU)。CTB可以只包含一个CU,也可以划分形成多个CU,并且每个CU都有一个相关的划分,划分成预测单元(PU)和转换单元树(TU)。

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

(4)变换单元(TU)和变换块(TB):使用块变换对预测残差进行编码。TU树结构的根位于CU级。亮度CB残差可能与亮度TB相同,或者也可能进一步划分成更小的亮度TB。同样适用于色度TB。对于4×4、8×8、16×16和32×32的方形TB定义了与离散余弦变换(DCT)相似的整数基函数。对于亮度图片内预测残差的4×4变换,也可以指定从离散正弦变换(DST)形式推导的整数变换。

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

对于残差编码,CB可以递归地划分为转换块(TB)。划分由残差四叉树发信令。只指定了方形CB和TB划分,其中块可以递归地划分为四象限,如图4A和4B所示。对于尺寸为M×M的给定的亮度CB,标志指示它是否被划分成四个尺寸为M/2×M/2的块。如果可以进一步划分,如序列参数集(SPS)中指示的残差四叉树的最大深度所指示的那样,每个象限都会分配一个标志,指示是否将其划分为四个象限。由残差四叉树生成的叶节点块是由变换编码进一步处理的变换块。编码器指示它将使用的最大和最小亮度TB尺寸。当CB尺寸大于最大TB尺寸时,则暗示划分。当划分将导致比指示的最小值更小的亮度TB尺寸时,则暗示不划分。色度TB尺寸在每个维度上是亮度TB尺寸的一半,但当亮度TB尺寸为4×4时除外,在这种情况下,被四个4×4亮度TB覆盖的区域使用单个4×4色度TB。在图片内预测的CU的情况下,最近相邻TB(CB内或CB外)的解码样点用作图片内预测的参考数据。

与以前的标准不同,对于图片间预测的CU,HEVC设计允许TB跨越多个PB,以最大化得益于四叉树结构的TB划分的潜在编码效率。

1.2.2父节点和子节点

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

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

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

1.3.1 QTBT块划分结构的示例

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

为QTBT划分方案定义了以下参数。

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

–MiNQTSize:最小允许的四叉树叶节点尺寸

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

–MaxBTDePTh:最大允许的二叉树深度

–MiNBTSize:最小允许的二叉树叶节点尺寸

在QTBT划分结构的一个示例中,CTU尺寸被设置为具有两个对应的64×64色度样点块的128×128个亮度样点,MiNQTSize被设置为16×16,MaxBTSize被设置为64×64,MiNBTSize(宽度和高度)被设置为4×4,MaxBTSize被设置为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共享相同的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所示)。

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

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

在一些实施例中,支持被称为多树型(MTT)的树结构,其是QTBT的广义化。在QTBT中,如图7所示,首先用四叉树结构对编码树单元(CTU)进行划分。然后用二叉树结构对四叉树叶节点进行进一步划分。

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

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

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

2.1预测模式的示例

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

当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)时,生成附加的候选。由于候选数是恒定的,所以最佳Merge候选的索引使用截断的一元二值化进(TU)行编码。如果CU的尺寸等于8,则当前CU的所有PU都共享一个Merge候选列表,这与2N×2N预测单元的Merge候选列表相同。

2.1.2构建空间Merge候选

在空间Merge候选的推导中,在位于图10所示位置的候选中最多选择四个Merge候选。推导顺序为A1、B1、B0、A0和B2。只有当位置A1、B1、B0、A0的任何PU不可用(例如,因为它属于另一个条带或片)或是内部编码时,才考虑位置B2。在增加A1位置的候选后,对其余候选的增加进行冗余校验,其确保具有相同运动信息的候选被排除在列表之外,从而提高编码效率。为了降低计算的复杂度,在所提到的冗余校验中并不考虑所有可能的候选对。相反,只有与图11中的箭头链接的对才会被考虑,并且只有当用于冗余校验的对应候选没有相同的运动信息时,才将候选添加到列表中。复制运动信息的另一个来源是与2N×2N不同的分区相关的“第二PU”。例如,图12A和12B分别描述了N×2N和2N×N情况下的第二PU。当当前的PU被划分为N×2N时,对于列表构建不考虑A1位置的候选。在一些实施例中,添加此候选可能导致两个具有相同运动信息的预测单元,这对于在编码单元中仅具有一个PU是冗余的。同样地,当当前PU被划分为2N×N时,不考虑位置B1。

2.1.3构建时域Merge候选

在此步骤中,只有一个候选添加到列表中。特别地,在这个时域Merge候选的推导中,基于与给定参考图片列表中当前图片具有最小POC差异的并置PU推导了缩放运动矢量。用于推导并置PU的参考图片列表在条带报头中显式地发信令。

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

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

2.1.4构建Merge候选的附加类型

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

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

***零运动候选以填充Merge候选列表中的其余条目,从而达到MaxNumMergeCand的容量。这些候选具有零空间位移和从零开始并且每次将新的零运动候选添加到列表中时都会增加的参考图片索引。这些候选使用的参考帧的数目对于单向预测和双向预测分别是1帧和2帧。在一些实施例中,对这些候选不执行冗余校验。

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

为了加快编码处理,可以并行执行运动估计,从而同时推导给定区域内所有预测单元的运动矢量。从空间邻域推导Merge候选可能会干扰并行处理,因为一个预测单元在完成相关运动估计之前无法从相邻的PU推导运动参数。为了缓和编码效率和处理延迟之间的平衡,可定义运动估计区域(MER)。可使用语法元素“log2_parallel_merge_level_minus2”在图片参数集(PPS)中对MER的尺寸发信令。当定义MER时,落入同一区域的Merge候选标记为不可用,并且因此在列表构建中不考虑。

在表1中示出了图片参数集(PPS)初始字节序列有效载荷(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语法

Figure BDA0002114656800000131

2.2运动矢量预测的实施例

运动矢量预测利用运动矢量与相邻的PU的空时相关性,其用于运动参数的显式传输。首先通过校验左上方的时域相邻的PU位置的可用性、去掉多余的候选位置并且加上零矢量以使候选列表长度恒定来构建运动矢量候选列表。然后,编码器可以从候选列表中选择最佳的预测值,并发送指示所选候选的对应索引。与Merge索引信令类似,最佳运动矢量候选的索引使用截断的一元进行编码。

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

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

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

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

2.2.2构建空间运动矢量候选

在推导空间运动矢量候选时,在五个潜在候选中最多考虑两个候选,这五个候选来自图10先前所示位置上的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候选的平行推导。否则,不允许对上述运动矢量进行空间缩放。

如在图17中的示例所示,对于空间缩放情况,相邻PU的运动矢量以与时域缩放相似的方式缩放。一个区别在于,给出了当前PU的参考图片列表和索引作为输入,实际缩放处理与时域缩放处理相同。

2.2.3构建时域运动矢量候选

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

2.2.4 AMVP信息的信令

对于AMVP模式,可以在比特流对四个部分发信令,包括预测方向、参考索引、MVD和MV预测候选索引,其在表2和表3中所示的语法的上下文中描述。

表2:运动矢量差语法

Figure BDA0002114656800000151

表3:运动矢量差语义

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

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

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

在具有四叉树加二叉树(QTBT)的JEM中,每个CU对于每个预测方向最多可以具有一组运动参数。在一些实施例中,通过将大的CU分割成子CU并推导该大CU的所有子CU的运动信息,编码器中考虑了两种子CU级的运动矢量预测方法。可选时域运动矢量预测(ATMVP)方法允许每个CU从多个小于并置参考图片中当前CU的块中获取多组运动信息。在空时运动矢量预测(STMVP)方法中,通过利用时域运动矢量预测值和空间邻接运动矢量递归地推导子CU的运动矢量。

在一些实施例中,为了为子CU运动预测的保持更精确的运动场,当前禁用参考帧的运动压缩。

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

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

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

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

在一个示例中,如果第一个Merge候选来自左相邻块(即,图19中的A1),则使用相关的MV和参考图片来识别源块和源图片。

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

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

在STMVP方法中,子CU的运动矢量是按照光栅扫描顺序递归推导的。

图20示出了一个具有四个子块及相邻块的CU的示例。考虑一个8×8的CU2000,它包含四个4×4的子CU A(2001)、B(2002)、C(2003)和D(2004)。当前帧中相邻的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中规定的与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,Merge索引的所有二进制文件(bin)都由CABAC(基于上下文的自适应二进制算数编码)进行上下文编码。在其他实施例中,例如HEVC,只有第一个二进制文件是上下文编码的,并且其余的二进制文件是上下文旁路编码的

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

在一些实施例中,当在条带报头中use_integer_mv_flag等于0时,运动矢量差(MVD)(在PU的运动矢量和预测运动矢量之间)以四分之一亮度样点为单位发信令。在JEM中,引入了局部自适应运动矢量分辨率(LAMVR)。在JEM中,MVD可以用四分之一亮度样点、整数亮度样点或四亮度样点的单位进行编码。MVD分辨率控制在编码单元(CU)级别,并且MVD分辨率标志有条件地为每个至少有一个非零MVD分量的CU发信令。

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

当CU的第一个MVD分辨率标志为零或没有为CU编码(意味着CU中的所有MVD都为零)时,CU使用四分之一亮度样点MV分辨率。当一个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.3模式匹配运动矢量推导(PMMVD)的示例

PMMVD模式是基于帧速率上转换(FRUC)方法的特殊Merge模式。在这种模式下,块的运动信息不会被发信令,而是在解码器侧推导。

对于CU,当其Merge标志为真时,可以对FRUC标志发信令。当FRUC标志为假时,可以对Merge索引发信令并且使用常规Merge模式。当FRUC标志为真时,可以对另一个FRUC模式标志发信令来指示将使用哪种模式(例如,双边匹配或模板匹配)来推导该块的运动信息。

在编码器侧,基于对正常Merge候选所做的RD成本选择决定是否对CU使用FRUCMerge模式。例如,通过使用RD成本选择来校验CU的多个匹配模式(例如,双边匹配和模板匹配)。导致最低成本的模式进一步与其它CU模式相比较。如果FRUC匹配模式是最有效的模式,那么对于CU,FRUC标志设置为真,并且使用相关的匹配模式。

典型地,FRUC Merge模式中的运动推导过程有两个步骤:首先执行CU级运动搜索,然后执行子CU级运动优化。在CU级,基于双边匹配或模板匹配,推导整个CU的初始运动矢量。首先,生成一个MV候选列表,并且选择导致最低匹配成本的候选作为进一步优化CU级的起点。然后在起始点附近执行基于双边匹配或模板匹配的局部搜索。将最小匹配成本的MV结果作为整个CU的MV值。接着,以推导的CU运动矢量为起点,进一步在子CU级细化运动信息。

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

Figure BDA0002114656800000201

图21示出了在帧速率上转换(FRUC)方法中使用的双边匹配的示例。通过沿当前CU的运动轨迹在两个不同的参考图片(2110、2111)中找到两个块之间最接近的匹配,使用双边匹配来推导当前CU(2100)的运动信息。在连续运动轨迹假设下,指向两个参考块的运动矢量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候选列表的最开始处,并且然后将列表尺寸设置为2(例如,通过移除第二个现有AMVP候选)。当应用于AMVP模式时,仅应用CU级搜索。

CU级的MV候选集可以包括以下:(1)初始AMVP候选,如果当前CU处于AMVP模式,(2)所有Merge候选,(3)插值MV场(稍后描述)中的几个MV,以及顶部和左侧相邻运动矢量。

当使用双边匹配时,Merge候选的每个有效MV可以用作输入,以生成假设为双边匹配的MV对。例如,Merge候选在参考列表A处的一个有效MV为(MVa,refa)。然后在另一个参考列表B中找到其配对的双边MV的参考图片refb,以便refa和refb在时间上位于当前图片的不同侧。如果参考列表B中的参考refb不可用,则将参考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。当在AMVP模式下应用FRUC时,初始的AMVP候选也添加到CU级的MV候选集。在一些实现中,在CU级,可以将AMVP CU的15个MV和Merge CU的13个MV添加到候选列表中。

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

插值MV场的生成。在对帧进行编码之前,基于单向ME生成整个图片的内插运动场(motion field)。然后,该运动场可以随后用作CU级或子CU级的MV候选。

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

插值和匹配成本。当运动矢量指向分数采样位置时,需要运动补偿插值。为了降低复杂度,对双边匹配和模板匹配都可以使用双线性插值而不是常规的8抽头HEVC插值。

匹配成本的计算在不同的步骤处有点不同。当从CU级的候选集中选择候选时,匹配成本可以是双边匹配或模板匹配的绝对和差(SAD)。在确定起始MV后,双边匹配在子CU级搜索的匹配成本C计算如下:

这里,w是权重系数。在一些实施例中,w被经验地设置为4。MV和MVs分别指示当前MV和起始MV。仍然可以将SAD用作模式匹配在子CU级搜索的匹配成本。

在FRUC模式下,MV通过仅使用亮度样点推导。推导的运动将用于亮度和色度的MC帧间预测。确定MV后,对亮度使用8抽头(8-taps)插值滤波器并且对色度使用4抽头(4-taps)插值滤波器执行最终MC。

MV细化是基于模式的MV搜索,以双边成本或模板匹配成本为标准。在JEM中,支持两种搜索模式—无限制中心偏置菱形搜索(UCBDS)和自适应交叉搜索,分别在CU级别和子CU级别进行MV细化。对于CU级和子CU级的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是列表2模板匹配的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所示的两个新的MV(即MV0′和MV1′)生成最终的双向预测结果。绝对差异之和(SAD)被用作成本度量。

在不传输附加语法元素的情况下,将DMVR应用于双向预测的Merge模式,其中一个MV来自过去的参考图片,并且另一个MV来自未来的参考图片。在JEM中,当为CU启用LIC、仿射运动、FRUC或子CU Merge候选时,不应用DMVR。

3.5具有双边匹配细化的合并/跳过模式的示例

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

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

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

(3)ATMVP

(4)STMVP

(5)虚拟仿射候选

(6)空间候选(块5)(仅在可用候选数小于6时使用)

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

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

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

(10)组合候选

(11)零候选

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

3.5.1非相邻Merge候选

如果可用Merge候选的总数尚未达到最大允许Merge候选,则可以将非相邻Merge候选添加到Merge候选列表。在现有实现中,可以在TMVP Merge候选之后将非相邻Merge候选***到Merge候选列表中。添加非相邻Merge候选的过程可以通过图26中所示的伪代码来执行。

4现有实现的示例

在现有实现中,使用从非相邻块获得运动信息的非相邻Merge候选可能导致次优性能。

在一个示例中,根据位于CTU行上方的非相邻块的运动信息的预测可以显著增加行缓冲器尺寸。

在另一示例中,来自非相邻块的运动信息的预测可带来额外的编码增益,其中将所有运动信息(通常在4×4级上)存储到高速缓存中,这显著增加了硬件实现的复杂度。

5用于构建非相邻Merge候选的方法的示例

当前公开的技术的实施例克服了现有实现的缺点,从而提供具有较低存储器和复杂度要求以及较高编码效率的视频编码。基于所公开的技术选择非相邻Merge候选,其可以增强现有和未来的视频编码标准,在以下针对各种实现所描述的示例中阐明非相邻Merge候选的选择。以下提供的所公开技术的示例解释了一般概念,并不意味着被解释为限制。在示例中,除非明确地相反指示,否则可以组合这些示例中描述的各种特征。

所公开的技术的实施例降低了非相邻Merge候选所需的高速缓存/行缓冲器尺寸以及用于进一步改进非相邻Merge候选的编码性能的方法。

对于下面讨论的示例,使当前块的左上样点坐标为(Cx,Cy),并且使一个非相邻块中的左上样点的坐标为(NAx,NAy),原点(0,0)是图片/条带/片/LCU行/LCU的左上角。坐标差(即,与当前块的偏移)由(offsetX,offsetY)表示,其中offsetX=Cx-NAx和offsetY=Cy-NAy。

示例1和2有利地至少提供对一些实施例的存储器和缓冲器占用的降低。

示例1。在一个示例中,在构建Merge候选时,仅访问位于特定位置的非相邻块。

(a)在一个示例中,x和y应该满足NAx%M=0和NAy%N=0,其中M和N是两个非零整数,诸如M=N=8或16。

(b)在一个示例中,如果一个非相邻块中的左上样点不满足给定条件,则跳过与该块相关联的运动信息的检测。因此,不能将相关联的运动信息添加到Merge候选列表。

(c)可替代地,如果一个非相邻块中的左上样点不满足给定条件,则可以移位、截断或取整该块的位置以确保满足条件。例如,(NAx,NAy)可以被修改为((NAx/M)*M、(NAy/N)*N),其中“/”是整数除法。

(d)可以预定义/发信号通知覆盖所有非相邻块的受限区域尺寸。在这种情况下,当由给定偏移(OffsetX,OffsetY)计算的非相邻块在该区域之外时,它被标记为不可用或被视为帧内编码模式。可以将相应的运动信息添加到候选列表中作为候选。图27中描绘示例。

(i)在一个示例中,区域尺寸被定义为一个或多个CTB。

(ii)可替代地,覆盖当前块的LCU行上方的所有块被标记为不可用或被视为帧内码模式。可以将相应的运动信息添加到候选列表中作为候选。

(iii)可替代地,假设覆盖当前块的LCU的左上样点坐标为(LX,LY)。(LX-NAx)、和/或abs(LX-NAx)、和/或(LY-NAy)、和/或abs(LY-NAy)应在阈值内。

(iv)可以预定义一个或多个阈值。它们可以进一步取决于CU高度的最小尺寸/宽度的最小尺寸/LCU尺寸等。例如,(LY-NAy)应小于CU高度的最小尺寸,或(LY-NAy)应小于CU高度的最小尺寸的两倍。

(v)可以在序列参数集(SPS)、图片参数集(PPS)、视频参数集(VPS)、条带报头、片报头等中用信号通知区域尺寸或阈值。

(vi)在一个示例中,用于并行编码的当前条带/片/其他种类单元之外的所有非相邻块被标记为不可用,并且不应将对应的运动信息添加到候选列表作为候选。

示例2。可以在编码/解码一个区域(例如,CTU、多个CTU)之后应用空间运动压缩。

(a)当对区域应用运动压缩时,意味着该区域内的所有块被迫共享代表性运动信息集。

(b)在对区域进行编码/解码之后,可以应用空间运动压缩。

(c)可替代地,此外,利用代表性运动信息集来预测以下块。

(d)可替代地,此外,在滤波处理之前应用空间运动压缩,例如,去块滤波、采样自适应偏移(SAO)滤波。

(e)可替代地,此外,在滤波过程中使用压缩的运动信息。

(f)在一个示例中,选择来自该区域的特定(例如,中心或右下)位置的运动信息集作为代表性集。

(g)可替代地,可以按顺序校验多个位置,一旦识别出用于位置的帧间编码块,则终止校验过程并且将相关联的运动信息用作代表集。

(h)在一个示例中,可以从与该区域相关联的运动信息推导运动信息集,并将其用作代表性集。

示例3有利地至少提供了降低的计算复杂度。

示例3.当***新的非相邻Merge候选时,可以将修剪应用于部分可用Merge候选。

(a)在一个示例中,新的非相邻Merge候选不被修剪为其他***的非相邻Merge候选。

(b)在一个示例中,新的非相邻Merge候选不被修剪为时域Merge候选,诸如TMVP或ATMVP。

(c)在一个示例中,利用来自某些特定相邻块的一些Merge候选来修剪新的非相邻Merge候选,但不利用来自一些其它特定相邻块的一些其他Merge候选来修剪新的非相邻Merge候选。

示例4-7有利地至少提供编码性能增益。

示例4。在Merge候选列表中并不考虑非相邻块的所有种类的运动信息。

(a)在一个示例中,仅考虑AMVP编码的非相邻块的运动信息。

(b)在一个示例中,仅考虑Merge编码的非相邻块的运动信息。

(c)在一个示例中,仅考虑不来自空间Merge候选的Merge编码的非相邻块的运动信息。

(d)在一个示例中,仅考虑调用了运动细化处理的Merge编码的非相邻块的运动信息。

(e)在一个示例中,不考虑用任何种类的解码器侧MV细化(诸如FRUC、模板匹配或PMVR)编码的非相邻块的运动信息。

(f)在一个示例中,不考虑具有低MVD/MV精度(如4像素精度)的运动信息。

示例5。对于非相邻空间邻居,与以第二模式编码的那些相比,给予以第一模式编码的那些更高的优先级(例如,在用第二模式编码的所有非相邻空间邻居之前校验)。

(a)可替代地,对于每个距离,与用第二模式编码的那些相比,给予用第一模式编码的非相邻空间邻居更高的优先级。而对于不同的距离,给予具有较小距离的非相邻空间邻居较高的优先级。

(b)在一个示例中,将第一模式定义为AMVP模式,并且将第二模式定义为Merge模式,反之亦然。

(c)可替代地,将第一模式定义为双向预测模式,并且将第二模式定义为单向预测模式,反之亦然。

(d)可替代地,将第一模式定义为AMVP模式,并且将第二模式定义为Merge模式而不是空间Merge候选。

(e)可替代地,将第一模式定义为仿射模式,并且将第二模式定义为非仿射模式,反之亦然。

(f)可替代地,将第一模式定义为高MV精度模式,并且将第二模式定义为低MV精度模式。

示例6。替代于在某种Merge候选(例如,TMVP)之后校验非相邻空间邻居,可以推导非相邻Merge候选的多个阶段并将其添加到Merge候选列表。

(a)在一个示例中,对于第一阶段,可以在第一给定种类的Merge候选之后添加用第一模式编码的那些非相邻空间邻居。而对于第二阶段,可以在第二给定种类的Merge候选之后添加用第二模式编码的那些非相邻空间邻居,等等。

(b)在一个示例中,第一给定种类的Merge候选可以是上一空间Merge候选,而第二给定种类的Merge候选可以是TMVP Merge候选。

(c)可替代地,此外,多个阶段可以涉及非相邻块的不同位置。

(d)第一和第二模式可以如示例5中所定义。

示例7。非相邻块的运动信息可以用作AMVP模式中的预测值。

(a)在一个实例中,可以将从一个或多个非相邻块推导(例如,缩放到目标参考图片)/继承的一个或多个MV候选添加到AMVP候选列表。

(b)可替代地,可以将从一个或多个非相邻块继承的一个或多个运动候选添加到AMVP候选列表。在这种情况下,跳过用信号通知的参考图像索引以及预测方向,并且它们从运动候选中继承。

(c)与非相邻块相关联的运动信息的使用可以在某些条件下应用,例如,AMVP候选的总数未达到最大允许的尺寸,和/或当用信号通知使用的指示时,和/或块尺寸(W,H),其中W>th0且H>th1(th0和th1是两个阈值,例如,两者都等于8)。

以上描述的示例可以并入下面描述的方法的上下文中,例如,方法2800,其可以在视频解码器和/或视频编码器处实现。

本文档的一些实施例可以优选地提供以下解决方案。这些实施例包括示例2中描述的技术的进一步变化和方面,其指定用于构建非相邻Merge候选的方法。

1.一种视频编码方法(例如,图28所示的方法2800),包括:

解析(2810)比特流以恢复视频的第一部分中的一个或多个当前块的运动信息;

利用(2820)视频的第一部分中的块的运动信息来生成代表性运动信息集;以及

使用代表性运动信息集重建(2830)视频的第二部分中的块。

2.如解决方案1的方法,其中视频的第一部分中的块包括不同的运动信息集。

3.如解决方案1的方法,其中视频的第一部分是编码树单元。

4.如解决方案1的方法,其中视频的第一部分对应于多个编码树单元。

5.如解决方案1-2中任一个或多个的方法,还包括:

将视频的第一部分中的块的运动信息重置为代表性运动信息集。

6.如解决方案5的方法,其中重置在应用滤波过程之前。

7.如解决方案6的方法,其中滤波过程包括去块滤波器或样点自适应偏移(SAO)滤波器。

8.如解决方案1-7中任一个或多个的方法,其中在滤波过程中使用代表性运动信息集。

9.如解决方案1-8中任一个或多个的方法,其中代表性运动信息集与视频的第一部分中所选择的块的代表性区域相关联。

10.如解决方案9的方法,其中代表性区域是中心或右下区域。

11.如解决方案9-10中任一个或多个的方法,其中通过根据顺序校验视频的第一部分中的块来确定代表性区域。

12.如解决方案11的方法,其中当在视频的第一部分中识别出帧间编码块时,终止校验块。

13.如解决方案12的方法,其中代表性运动信息集与帧间编码块相关联。

14.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时使处理器实现解决方案1至13中的一个或多个的方法。

15.一种存储在非暂时性计算机可读介质上的计算机程序产品,计算机程序产品包括用于进行如解决方案1至13中的一个或多个的方法的程序代码。

在一些实施例中,上面列出的解决方案可以优选地用在视频编码操作中。在一些实施例中,上面列出的解决方案可以优选地用在视频解码操作中。在一些实施例中,上面列出的解决方案可以优选地用在视频转码操作中。

6所公开的技术的示例实现

图29是视频处理装置2900的框图。装置2900可用于实施本文所述的一种或多种方法。装置2900可实施在智能手机、平板电脑、计算机、物联网(IoT)接收器等之中。装置2900可包括一个或多个处理器2902、一个或多个存储器2904和视频处理硬件2906。处理器2902可以配置为实现本文中描述的一个或多个方法(包括但不限于方法2800)。存储器(多个存储器)2904可用于存储用于实现本文所述方法和技术的数据和代码。视频处理硬件2906可用于在硬件电路中实现本文中描述的一些技术。

在一些实施例中,视频解码器装置可实现使用如本文中所描述的零单元的方法,以用于视频解码。该方法的各种特征可以类似于上述方法2800。

在一些实施例中,视频解码方法可以使用解码装置来实现,该解码装置在硬件平台上实现,如关于图29所描述的。

从上述来看,应当理解的是,为了便于说明,本发明公开的技术的具体实施例已经在本文中进行了描述,但是可以在不偏离本发明范围的情况下进行各种修改。因此,除了的之外,本发明公开的技术不限于条款的限定。

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

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

本说明书中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

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

旨在将说明书与附图一起仅视为示例性的,其中示例性意味着示例。如这里所使用的,除非上下文另有明确说明,单数形式“一”、“一个”和“该”旨在也包括复数形式。另外,除非上下文另有明确说明,否则“或”的使用旨在包括“和/或”。

虽然本专利文件包含许多细节,但不应将其解释为对任何发明或权利要求范围的限制,而应解释为对特定发明的特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中删除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。

同样,尽管图纸中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件所述实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。

仅描述了一些实现和示例,其他实现、增强和变体可以基于本专利文件中描述和说明的内容做出。

56页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:具有LIC的LUT

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类