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

用于图像编码和解码的方法和设备

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


用于图像编码和解码的方法和设备

技术领域

本实施例中的至少一个通常涉及用于图像编码和解码的方法和设备,并且更具体地,涉及用于编码和解码表示图像中的运动的信息的方法和设备。

背景技术

为了达到高压缩效率,视频编解码(coding)方案通常采用预测和变换来利用视频内容中的空间和时间冗余。在编码期间,视频内容的图像被划分为像素块,然后这些块被分割为一个或多个子块(以下称为原始子块)。然后对每个子块应用帧内或帧间预测,以利用帧内或帧间图像相关性。无论使用哪种预测方法(帧内或帧间),都会针对每个原始子块确定预测器子块。然后,表示原始子块和预测器子块之间的差的子块(通常被表示为预测误差子块、预测残差子块或简称为残差块)被变换、量化和熵编码以生成编码的视频流。为了重构视频,压缩的数据通过对应于变换、量化和熵编码的逆过程而被解码。

基本上,使用帧间预测所编码的子块(即使用帧间模式所编码的块)由残差块和指示在哪里找到预测器子块的运动信息来表示。在视频压缩标准的最后几代中(例如,在由ITU-T和ISO/IEC专家的联合协作小组(称为联合视频专家小组(JVET))开发的名为“多功能视频编解码(VVC)”的国际标准中,或者在标准HEVC(ISO/IEC 23008-2-MPEG-H第2部分,高效视频编解码/ITU-T H.265)中),通过不仅预测子块的纹理,而且预测运动信息,获得了压缩增益。

运动信息预测主要基于子块的运动通常与位于其邻域的其他子块的运动相关的假设。因此,子块的邻域的定义是运动信息预测的关键点。实际上,此邻域应足够大,以确保最佳可能的运动信息预测器在此邻域中,但是不会太大而限制发信号通知所述运动信息预测器的成本。

希望提出允许改进运动信息预测的解决方案,即确保所使用的邻域包括运动信息预测的最佳候选。

发明内容

在第一方面,本实施例中的一个或多个提供了一种用于解码的方法,该方法包括:识别第一参考图像中的与当前图像中要解码的当前块同位的被称为同位区域的区域;从所述同位区域中或所述同位区域的邻域中的位置获得指向第二参考图像的第一运动矢量;通过基于第一运动矢量对当前块中的位置应用位移,获得第二参考图像中被称为移位位置的位置;确定第二运动矢量在该移位位置处是否可用,并且如果可用,则基于第二运动矢量获得第三运动矢量,该第三运动矢量旨在被插入用于重构当前块的运动矢量的运动矢量预测器候选的列表中。

在第二方面,本实施例中的一个或多个提供了一种用于编码的方法,该方法包括:识别第一参考图像中的与当前图像中要解码的当前块同位的被称为同位区域的区域;从所述同位区域中或所述同位区域的邻域中的位置获得指向第二参考图像的第一运动矢量;通过基于第一运动矢量对当前块中的位置应用位移,获得第二参考图像中被称为移位位置的位置;确定第二运动矢量在该移位位置处是否可用,并且如果可用,则基于第二运动矢量获得第三运动矢量,该第三运动矢量旨在被插入用于重构当前块的运动矢量的运动矢量预测器候选的列表中。

在根据第一或第二方面的方法的实施例中,第一运动矢量在用于获得移位位置之前被重新缩放,以确保第一运动矢量指向第二参考图像。

在根据第一或第二方面的方法的实施例中,当移位位置在约束区域之外时,移位位置被裁剪(clip)到移位区域中。

在根据第一或第二方面的方法的实施例中,当移位位置在约束区域之外时,第三运动矢量是基于第一运动矢量的。

在根据第一或第二方面的方法的实施例中,当不能从所述同位区域中或所述同位区域的邻域中的位置获得指向第二参考图像的第一运动矢量时,该方法包括确定空间运动矢量在用于对当前块的运动矢量进行解码的运动矢量预测器候选的列表中是否可用,并且如果空间运动矢量可用,则将第一运动矢量固定为取决于可用的空间运动矢量的值。

在根据第一或第二方面的方法的实施例中,当不能从所述同位区域中或所述同位区域的邻域中的位置获得指向第二参考图像的第一运动矢量时,该方法包括将第一运动矢量固定为空间运动矢量。

在根据第一或第二方面的方法的实施例中,第一运动矢量是从所述同位区域的邻域中的位置获得的,并且该方法还包括:从所述同位区域中的位置获得指向第二参考图像的第四运动矢量;通过基于第四运动矢量对当前块中的位置应用位移,获得第二参考图像中被称为第二移位位置的位置;确定第五运动矢量在第二移位位置处是否可用,并且如果可用,则基于第五运动矢量获得第六运动矢量,该第六运动矢量旨在被插入用于重构当前块的运动矢量的运动矢量预测器候选的列表中;以及,在要插入该列表的运动矢量的有序集合中选择第一可用的运动矢量,当这些运动矢量可用时,所述有序集合至少包括第三运动矢量、第六运动矢量、第一运动矢量和第四运动矢量。

在根据第一或第二方面的方法的实施例中,有序集合还包括,当可用时,从所述同位区域中的位置推导的运动矢量。

在根据第一或第二方面的方法的实施例中,当前块被划分为子块;移位位置的获得包括通过基于第一运动矢量对子块中的位置应用位移来获得每个子块的移位位置;如果第二运动矢量在与所述子块对应的移位位置处可用,则为每个子块获得第三运动矢量。

在第三方面,本实施例中的一个或多个提供了一种用于解码的设备,该设备包括电子电路,该电子电路适于:识别第一参考图像中的与当前图像中要解码的当前块同位的被称为同位区域的区域;从所述同位区域中或所述同位区域的邻域中的位置获得指向第二参考图像的第一运动矢量;通过基于第一运动矢量对当前块中的位置应用位移,获得第二参考图像中被称为移位位置的位置;确定第二运动矢量在该移位位置处是否可用,并且如果可用,则基于第二运动矢量获得第三运动矢量,该第三运动矢量旨在被插入用于重构当前块的运动矢量的运动矢量预测器候选的列表中。

在第四方面,本实施例中的一个或多个提供了一种用于编码的设备,该设备包括电子电路,该电子电路适于:识别第一参考图像中的与当前图像中要解码的当前块同位的被称为同位区域的区域;从所述同位区域中或所述同位区域的邻域中的位置获得指向第二参考图像的第一运动矢量;通过基于第一运动矢量对当前块中的位置应用位移,获得第二参考图像中被称为移位位置的位置;确定第二运动矢量在该移位位置处是否可用,并且如果可用,则基于第二运动矢量获得第三运动矢量,该第三运动矢量旨在被插入用于重构当前块的运动矢量的运动矢量预测器候选的列表中。

在根据第三或第四方面的设备的实施例中,第一运动矢量在用于获得移位位置之前被重新缩放,以确保第一运动矢量指向第二参考图像。

在根据第三或第四方面的设备的实施例中,当移位位置在约束区域之外时,移位位置被裁剪到移位区域中。

在根据第三或第四方面的设备的实施例中,当移位位置在约束区域之外时,第三运动矢量是基于第一运动矢量的。

在根据第三或第四方面的设备的实施例中,当不能根据所述同位区域中或所述同位区域的邻域中的位置获得指向第二参考图像的第一运动矢量时,该设备包括适于以下的电子电路:确定空间运动矢量在用于对当前块的运动矢量进行解码的运动矢量预测器候选的列表中是否可用,并且如果空间运动矢量可用,则将第一运动矢量固定为取决于可用的空间运动矢量的值。

在根据第三或第四方面的设备的实施例中,当不能根据所述同位区域中或所述同位区域的邻域中的位置获得指向第二参考图像的第一运动矢量时,该设备包括适于将第一运动矢量固定为空间运动矢量的电子电路。

在根据第三或第四方面的设备的实施例中,第一运动矢量是从所述同位区域的邻域中的位置获得的,并且该设备还包括适于以下操作的电子电路:从所述同位区域中的位置获得指向第二参考图像的第四运动矢量;通过基于第四运动矢量对当前块中的位置应用位移,获得第二参考图像中被称为第二移位位置的位置;确定第五运动矢量在第二移位位置处是否可用,并且如果可用,则基于第五运动矢量获得第六运动矢量,该第六运动矢量旨在被插入用于重构当前块的运动矢量的运动矢量预测器候选的列表中;以及,在要插入该列表的运动矢量的有序集合中选择第一可用的运动矢量,当这些运动矢量可用时,所述有序集合至少包括第三运动矢量、第六运动矢量、第一运动矢量和第四运动矢量。

在根据第三或第四方面的设备的实施例中,有序集合还包括,当可用时,从所述同位区域中的位置推导的运动矢量。

在根据第三或第四方面的设备的实施例中,当前块被划分为子块;移位位置的获得包括通过基于第一运动矢量对子块中的位置应用位移来获得每个子块的移位位置;如果第二运动矢量在与所述子块对应的移位位置处可用,则为每个子块获得第三运动矢量。

在第五方面,本实施例中的一个或多个提供了包括根据根据第二方面的用于编码的方法所生成的或由根据第四方面的用于编码的设备所生成的数据的信号。

在第六方面,本实施例中的一个或多个提供了一种包括用于实现根据第一或第二方面的方法的程序代码指令的计算机程序。

在第七方面,本实施例中的一个或多个提供了存储用于实现根据第一或第二方面的方法的程序代码指令的信息存储装置。

附图说明

图1示出了原始视频的像素的图像所经历的分割的示例;

图2示意性地描绘了由编码模块执行的用于对视频流进行编码的方法;

图3示意性地描绘了用于对编码的视频流(即比特流)进行解码的方法;

图4A示意性地示出了能够实现编码模块或解码模块的处理模块的硬件架构的示例,在该编码模块或解码模块中实现了各种方面和实施例;

图4B示出了其中实现了各种方面和实施例的系统的示例的框图;

图5表示常规合并模式的候选的列表的时间运动矢量预测器的位置;

图6表示常规合并模式的候选的列表的时间运动矢量预测器的运动矢量缩放;

图7表示在子块时间运动矢量预测过程中考虑的空间邻近块;

图8示出了允许推导子块时间运动矢量预测器的过程的示例;

图9示意性地描绘了整体改进的TMVP推导过程;

图10示意性地描绘了整体改进的TMVP推导过程的第一变型;

图11示意性地描绘了整体改进的TMVP推导过程的第二变型;

图12示意性地描绘了裁剪(clip)过程的示例;

图13示意性地描绘了整体改进的TMVP推导过程的第三变型;

图14示意性地描绘了整体改进的TMVP推导过程的第四变型;以及,

图15示意性地描绘了整体改进的TMVP推导过程的第五变型。

具体实施方式

在以下描述中,一些实施例使用在VVC的上下文中或在HEVC的上下文中开发的工具。然而,这些实施例不限于对应于VVC或HEVC的视频编码/解码方法,和适用于其他视频编码/解码方法,而且也适用于从另一图像预测图像的任何方法。

图1示出了原始视频10的像素的图像11所经历的分割的示例。这里认为像素由三个分量组成:一个亮度分量和两个色度分量。然而,以下实施例适于由包括另一数量的分量的像素构成的图像,例如其中像素包括一个分量的灰度级图像,或者由包括三个颜色分量和透明度分量和/或深度分量的像素构成的图像。

图像被划分为多个编解码实体。首先,如图1中的附图标记13所示,图像被划分为称为编解码树单元(CTU)的块网格。CTU由N×N的亮度样本块和两个对应的色度样本块组成。N通常是二的幂,具有例如最大值为“128”。其次,图像被划分为一组或多组CTU。例如,其可以被划分为一个或多个图块(tile)行和图块列,图块是覆盖图像的矩形区域的CTU序列。在一些情况下,图块可以被划分为一个或多个砖块(brick),每个砖块由图块内的至少一行CTU组成。在图块和砖块的概念之上,存在称为条带(slice)的另一编码实体,其可以包含图像的至少一个图块或图块的至少一个砖块。

在图1的示例中,如由附图标记12所示,图像11被划分为三个条带S1、S2和S3,每个条带包括多个图块(未示出)。

如图1中的附图标记14所示,CTU可以以一个或多个子块(被称为编解码单元(CU))的分层树的形式来被分割。CTU是分层树的根(即父节点),并且可以被分割为多个CU(即子节点)。每个CU在其未被进一步分割为更小的CU的情况下成为分层树的叶,或者在被进一步分割的情况下成为更小的CU(即子节点)的父节点。可以应用几种类型的分层树,包括例如四叉树、二叉树和三叉树。在四叉树中,CTU(相应地,CU)可以被分割为相等大小的“4”个正方形CU(即可以是该“4”个正方形CU的父节点)。在二叉树中,CTU(相应地,CU)可以被水平或竖直地分割为相等大小的“2”个矩形CU。在三叉树中,CTU(相应地,CU)可以被水平或竖直地分割为“3”个矩形CU。例如,高度为N且宽度为M的CU被竖直(相应地,水平)地分割为高度为N(相应地,N/4)且宽度为M/4(相应地,M)的第一CU、高度为N(相应地,N/2)且宽度为M/2(相应地,M)的第二CU、以及高度为N(相应地,N/4)且宽度为M/4(相应地,M)的第三CU。

在图1的示例中,CTU 14首先被使用四叉树类型分割而分割为“4”个正方形CU。左上CU是分层树的叶,因为其未被进一步分割,也就是说,其不是任何其他CU的父节点。右上CU被再次使用四叉树类型分割而进一步分割为“4”个更小的正方形CU。右下CU被使用二叉树类型分割而竖直地分割为“2”个矩形CU。左下CU被使用三叉树类型分割而竖直地分割为“3”个矩形CU。

在图像的编解码期间,分割是自适应的,每个CTU被分割以便优化CTU标准的压缩效率。

在一些压缩方法中出现了预测单元(PU)和变换单元(TU)的概念。在这种情况下,用于预测(即PU)和变换(即TU)的编解码实体可以是对CU的细分。例如,如图1所示,大小为2N×2N的CU可以被划分为大小为N×2N或大小为2N×N的PU 1411。此外,所述CU可以被划分为“4”个大小为N×N的TU 1412或“16”个大小为(N/2)×(N/2)的TU。

在本申请中,术语“块”或“图像块”或“子块”可以用于指代CTU、CU、PU和TU中的任何一个。此外,术语“块”或“图像块”可以用于指代在H.264/AVC或其他视频编解码标准中规定的宏块、分割和子块,并且更一般地指代多种大小的样本的阵列。

在本申请中,术语“重构”和“解码”可以互换使用,术语“像素”和“样本”可以互换使用,术语“图像”、“画面”、“子画面”、“条带”和“帧”可以互换使用。

图2示意性地描绘了由编码模块执行的用于对视频流进行编码的方法。预期了这种用于编码的方法的变型,但是为了清楚起见,下面描述图2的用于编码的方法,而没有描述所有预期的变型。

当前原始图像201的编码始于在步骤202期间对当前原始图像201的分割,如关于图1所述。当前图像201因此被分割为CTU、CU、PU、TU等。对于每个块,编码模块确定帧内预测和帧间预测之间的编解码模式。

由步骤203表示的帧内预测包括根据帧内预测方法,从预测块预测当前块的像素,该预测块是从位于要编解码的当前块的因果邻域(causal vicinity)中的重构的块的像素推导的。帧内预测的结果是指示要使用邻域中的块的哪些像素的预测方向,以及通过计算当前块和预测块之间的差而得到的残差块。

帧间预测包括从当前图像之前或之后的图像的像素块(被称为参考块)中预测当前块的像素,该图像被称为参考图像。在根据帧间预测方法对当前块进行编解码期间,根据相似性标准,通过运动估计步骤204确定参考图像中最接近当前块的块。在步骤204期间,确定指示参考块在参考图像中的位置的运动矢量。在运动补偿步骤205期间使用所述运动矢量,在该步骤期间,以当前块和参考块之间的差的形式计算残差块。

在第一视频压缩标准中,上述单向帧间预测模式是唯一可用的帧间模式。随着视频压缩标准的发展,帧间模式家族已经显著增长,并且现在包括许多不同的帧间模式。

在选择步骤206期间,编码模块选择在测试的预测模式(帧内预测模式、帧间预测模式)中根据速率/失真标准(即RDO标准)优化压缩性能的预测模式。

当选择了预测模式时,在步骤207期间对残差块进行变换,并在步骤209期间对残差块进行量化。注意,编码模块可以跳过变换,并直接对未变换的残差信号应用量化。

当根据帧内预测模式对当前块进行编解码时,在步骤210期间,由熵编码器对预测方向以及变换的和量化的残差块进行编码。

当根据帧间预测模式对当前块进行编码时,在步骤208中,对与该帧间预测模式相关联的运动数据进行编解码。

通常,可以使用两种模式对运动数据进行编码,分别称为AMVP(自适应运动矢量预测)和合并。

AMVP基本上包括发信号通知用于预测当前块的参考图像、运动矢量预测器索引和运动矢量差(也称为运动矢量残差)。

合并模式包括发信号通知在运动数据预测器的列表中收集的一些运动数据的索引。该列表由“5”或“7”个候选项组成,并且在解码器侧和编码器侧以相同的方式构建。因此,合并模式旨在推导从合并列表中获取的一些运动数据。合并列表通常包含与一些空间上和时间上邻近的块相关联的运动数据,在当前块被处理时,这些块在其重构状态下可用。合并模式可以采取几种形式,包括常规合并模式和子块合并模式。这两种合并模式中的每一种的候选的列表包括时间运动矢量预测器(TMVP)。

在下文中,我们无差别第使用术语运动数据、运动信息或运动矢量。因此,术语运动矢量覆盖表示块的运动的所有信息,包括表示一个参考图像的至少一个索引和由表示运动矢量预测器的索引表示的运动向量以及运动矢量预测器和预测的运动矢量之间的差,或者仅覆盖运动矢量。

图5表示时间运动矢量预测器在常规合并模式的候选的列表中的位置,该时间运动矢量预测器在下文中被称为常规时间运动矢量预测器(RTMVP)。RTMVP是从与位于与当前块50同位的块51的右下角的位置H对应的运动矢量推导的。如果在位置H处没有可用的运动数据,则从同位块51的中心位置C处的运动数据推导RTMVP。块51属于在称为同位图像的条带报头中用信号通知的特定参考图像。然后,通过重新缩放所获得的运动矢量来获得RTMVP,使得重新缩放的运动矢量指向参考图像缓冲器(在下文中也被称为解码的画面缓冲器,其具有附图标记219)中第一位置的参考图像。

图6表示常规合并模式的候选的列表的时间运动矢量预测器的运动矢量缩放。

在图6中,当前图像62包括要编码的当前块64。当前块64的运动数据被使用同位图像63中的同位块65的运动数据以常规合并模式进行编码。同位块65的运动数据包括指向参考图像60中的区域的运动矢量650。通过重新缩放运动矢量650获得与运动矢量640对应的RTMVP。可以注意到,RTMVP 640具有与运动矢量650相同的方向,但是指向图像61中的参考区域。图像61是解码的画面缓冲器219中的第一个图像。

子块合并模式使用子块时间运动矢量预测来生成子块时间运动预测器(SbTMVP)。SbTMVP在以下两个主要方面不同于RTMVP:

·RTMVP预测块级别的运动,而SbTMVP预测子块级别的运动。

·尽管RTMVP是从同位图像中的同位块推导的,但是在从与同位图像的当前块的移位位置同位的块推导SbTMVP之前,当前块的位置首先被移位。该移位(在下文中被称为运动移位)是从空间上与当前块邻近的块的运动矢量获得的。

图8示出了允许推导子块时间运动矢量预测器的过程的示例。

子块运动矢量预测按照两步预测当前图像81的当前块810内的子块的运动矢量:

·在第一步中,检查空间上与当前块810邻近的块。图7表示在子块时间运动矢量预测过程中考虑的空间邻近块。从图7中可以看出,考虑了四个块,两个块A1和A0位于块810的左下角,并且两个块B1、B0位于块810的右上角。按照顺序A1、B1、B0和A0检查空间邻近块。按照这个顺序,一旦识别出具有指向同位图像80的运动矢量的空间邻近块,就选择该运动矢量作为要应用的运动移位。如果没有从空间邻近块A1、B1、B0和A0中识别出这样的运动矢量,则运动移位被设置为(0,0),即没有运动。

·在第二步中,将第一步中识别的运动移位应用于当前块810的位置(即,添加到当前块810的坐标)。然后,从与当前块810的移位位置同位的同位图像80的块800中推导子块级运动数据(运动矢量和参考索引)。在图8的示例中,假设运动移位被设置为块A1的运动。对于当前块810的每个子块,块800中其对应子块(覆盖中心样本的最小运动网格)的运动数据被用于推导当前块810的所述子块的运动数据。然后,通过对为每个子块推导的运动矢量应用时间运动矢量缩放,将这些推导的运动矢量的参考图像与当前块810的参考图像对齐,来完成SbTMVP推导。

SbTMVP中使用的子块大小一般为8x8。在这种情况下,SbTMVP模式仅适用于所述块的宽度和高度都大于或等于“8”的块。

从上面可以看出,当常规合并模式被应用于当前图像的当前块时,RTMVP是与当前块同位的同位图像的块的重新缩放的运动矢量。因此,RTMVP的推导没有考虑当前图像和同位图像之间的块的位移。

另一方面,SbTMVP是从同位图像的与通过移位当前块获得的移位块同位的块中推导的。当前块的移位由空间上与当前块邻近的块来确定。这种方法的缺点是空间上与当前块邻近的块可能不包括运动数据(例如,因为它们是以帧内模式编码的)或者可能不可用(例如,当当前块位于当前图像的边缘时)。

下面描述的实施例旨在克服以上缺点。

具体地,下面描述的至少一个实施例旨在创建新的时间运动矢量预测器。

此外,下面描述的至少一个实施例利用了TMVP和SbTMVP特征两者。

至少一个实施例使用位移的运动矢量预测器,使用类似于常规合并模式中的子块合并模式的过程,但是使用时间运动矢量预测来位移运动矢量。

当不能推导以上运动矢量时,至少一个实施例使用回退解决方案作为默认TMVP。

至少一个实施例在子块合并模式下使用非子块运动矢量推导来限制运动矢量推导过程的复杂性。

至少一个实施例改变运动矢量位移推导约束的条件以使用回退解决方案。

至少一个实施例使用更多的初始矢量用于当前块中心位移,除了时间合并候选之外,还使用空间合并候选。

至少一个实施例使用时间合并候选作为标准SbTMVP子块过程的替代初始矢量。

一旦被预测,运动信息随后在步骤210期间连同变换的和量化的残差块被熵编码器编码。注意,编码模块可以绕过变换和量化,即对残差应用熵编码,而不应用变换或量化过程。熵编码的结果被插入到编码的视频流(即比特流)211中。

注意,熵编码器可以以上下文自适应二进制算术编解码器(CABAC)的形式实现。CABAC对二进制符号进行编码,这使得复杂度保持较低,并允许对任何符号的更频繁使用的比特进行概率建模。

在量化步骤209之后,重构当前块,使得对应于该块的像素可以用于未来的预测。这个重构阶段也被称为预测循环。因此,在步骤212期间,逆量化被应用于变换的和量化的残差块,并且在步骤213期间,应用逆变换。根据在步骤214期间获得的用于当前块的预测模式,重构当前块的预测块。如果根据帧间预测模式对当前块进行编码,则在步骤216期间,编码模块在适当时使用当前块的运动信息对参考块应用运动补偿。如果当前块根据帧内预测模式被编码,则在步骤215期间,对应于当前块的预测方向被用于重构当前块的参考块。将参考块和重构的残差块相加,以便获得重构的当前块。

在重构之后,在步骤217期间,旨在减少编码伪像的环内后滤波被应用于重构的块。这种后滤波被称为环内后滤波,因为这种后滤波发生在预测环路中,以在编码器处获得与解码器相同的参考图像,从而避免编码和解码过程之间的漂移。例如,环内后滤波包括去块滤波和SAO(采样自适应偏移)滤波。在熵编解码步骤210期间,在编码的视频流211中引入表示环内去块滤波器的激活或去激活以及当被激活时所述环内去块滤波器的特性的参数。

当块被重构时,其在步骤218期间被插入到存储在解码的画面缓冲器(DPB)219中的重构的图像中。如此存储的重构的图像然后可以用作要编解码的其他图像的参考图像。

图3示意性地描绘了用于对根据关于图2描述的方法编码的编码的视频流(即比特流)211进行解码的方法。所述用于解码的方法由解码模块执行。预期了这种用于解码的方法的变型,但是为了清楚起见,下面描述图3的用于解码的方法,而不描述所有预期的变型。

解码是逐块完成的。对于当前块,它在步骤310期间从当前块的熵解码开始。熵解码允许获得当前块的预测模式。

如果当前块已经根据帧内预测模式被编码,则熵解码允许获得表示帧内预测方向和残差块的信息。

如果当前块已经根据帧间预测模式被编码,熵解码允许获得表示运动数据和残差块的信息。当适当时,在步骤308期间,根据AMVP或合并模式为当前块重构运动数据。在合并模式中,通过熵解码获得的运动数据包括运动矢量预测器候选的列表中的索引。解码模块应用与编码模块相同的过程来构建常规合并模式和子块合并模式的候选的列表。利用重构的列表和索引,解码模块能够检索用于预测块的运动矢量的运动矢量。

用于解码的方法包括步骤312、313、315、316和317,它们在所有方面分别与用于编码的方法的步骤212、213、215、216和217相同。而在编码模块级别,步骤214包括模式选择过程,该过程根据速率失真标准评估每个模式并选择最佳模式,步骤314仅包括读取比特流211中表示所选模式的信息。在步骤318中,解码的块被保存在解码的图像中,并且解码的图像被存储在DPB 319中。当解码模块解码给定图像时,在所述给定图像的编码期间,编码模块存储在DPB 319中的图像与存储在DPB 219中的图像相同。解码的图像也可以由解码模块输出,以例如显示。

图4A示意性地示出了能够实现编码模块或解码模块的处理模块40的硬件架构的示例,该编码模块或解码模块能够分别实现根据不同方面和实施例修改的图2的用于编码的方法和图3的用于解码的方法。处理模块40包括通过通信总线405连接的:处理器或CPU(中央处理单元)400,作为非限制性示例,其涵盖一个或多个微处理器、通用计算机、专用计算机和基于多核架构的处理器;随机存取存储器(RAM)401;只读存储器(ROM)402;存储单元403,其可以包括非易失性存储器和/或易失性存储器,包括但不限于电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、可编程只读存储器(PROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、磁盘驱动器和/或光盘驱动器、或者存储介质读取器,诸如SD(安全数字)卡读取器和/或硬盘驱动器(HDD)和/或网络可访问存储设备;至少一个通信接口404,用于与其他模块、设备或装备交换数据。通信接口404可以包括但不限于被配置为通过通信信道发送和接收数据的收发器。通信接口404可以包括但不限于调制解调器或网卡。

如果处理模块40实现解码模块,则通信接口404使得例如处理模块40能够接收编码的视频流并提供解码的视频流。如果处理模块40实现编码模块,则通信接口404使得例如处理模块40能够接收原始图像数据以进行编码并提供编码的视频流。

处理器400能够执行从ROM 402、外部存储器(未示出)、存储介质或通信网络加载到RAM 401中的指令。当处理模块40上电时,处理器400能够从RAM 401读取指令并执行它们。这些指令形成计算机程序,导致例如由处理器400实现关于图3描述的解码方法或关于图2描述的编码方法,解码和编码方法包括本文档中下面描述的各个方面和实施例。

所述编码或解码方法的所有或一些算法和步骤可以通过由可编程机器(诸如DSP(数字信号处理器)或微控制器)执行指令集而以软件形式实现,或者通过机器或专用组件(诸如FPGA(现场可编程门阵列)或ASIC(专用集成电路))以硬件形式实现。

图4B示出了其中实现了各种方面和实施例的系统4的示例的框图。系统4可以体现为包括以下描述的各种组件的设备,并且被配置为执行本文档中描述的各方面和实施例中的一个或多个。这种设备的示例包括但不限于各种电子设备,诸如个人计算机、膝上型计算机、智能电话、平板计算机、数字多媒体机顶盒、数字电视接收机、个人视频记录系统、连接的家用电器、以及服务器。系统4的元件可以单独或组合地体现在单个集成电路(IC)、多个IC和/或分立元件中。例如,在至少一个实施例中,系统4包括实现解码模块或编码模块的一个处理模块40。但是,在另一实施例中,系统4可以包括实现解码模块的第一处理模块40和实现编码模块的第二处理模块40或者实现解码模块和编码模块的一个处理模块40。在各种实施例中,系统40经由例如通信总线或者通过专用输入和/或输出端口通信地耦接到一个或多个其他系统或其他电子设备。在各种实施例中,系统4被配置为实现本文档中描述的各方面中的一个或多个。

系统4包括能够实现编码模块或解码模块中的一个或两者的至少一个处理模块40。

可以通过如框42所示的各种输入模块向处理模块40提供输入。这种输入模块包括但不限于:(i)接收例如由广播器通过空中发送的射频(RF)信号的RF模块,(ii)组件(COMP)输入模块(或COMP输入模块的集合),(iii)通用串行总线(USB)输入模块,和/或(iv)高清晰度多媒体接口(HDMI)输入模块。图4B中未示出的其他示例包括复合视频。

在各种实施例中,框42的输入模块具有相关联的相应的本领域已知的输入处理元件。例如,RF模块可以与适用于以下操作的元件相关联:(i)选择期望的频率(也称为选择信号,或者将信号频带限制到频带),(ii)下变换所选择的信号,(iii)再次频带限制到较窄的频带,以选择(例如)信号频带(在某些实施例中可以被称为信道),(iv)解调下变换的和频带限制的信号,(v)执行纠错,以及(vi)解复用以选择期望的数据分组的流。各种实施例的RF模块包括执行这些功能的一个或多个元件,例如频率选择器、信号选择器、频带限制器、信道选择器、滤波器、下变换器、解调器、纠错器、和解复用器。RF部分可以包括执行这些功能中的各种功能的调谐器,这些功能包括例如将接收的信号下变换至较低频率(例如,中频或近基带频率)或基带。在一个机顶盒实施例中,RF模块及其相关联的输入处理元件接收通过有线(例如,电缆)介质发送的RF信号,并通过滤波、下变换和再次滤波至期望的频带来执行频率选择。各种实施例重新排列上述(和其他)元件的顺序,移除这些元件中的一些,和/或添加执行类似或不同的功能的其他元件。添加元件可以包括在现有元件之间插入元件,诸如,例如,插入放大器和模数转换器。在各种实施例中,RF模块包括天线。

此外,USB和/或HDMI模块可以包括相应的接口处理器,用于通过USB和/或HDMI连接将系统4连接至其他电子设备。应当理解,可以根据需要在例如单独的输入处理IC内或处理模块40内实现输入处理的各个方面,例如里德-所罗门纠错。类似地,可以根据需要在单独的接口IC内或处理模块40内实现USB或HDMI接口处理的各方面。将解调的、纠错的和解复用的流提供至处理模块40。

系统4的各种元件可以被设置在集成外壳内。在集成外壳内,各种元件可以使用合适的连接布置(例如,本领域已知的内部总线,包括IC间(I2C)总线、布线、和印刷电路板)互连并在其间发送数据。例如,在系统4中,处理模块40通过总线405与所述系统4的其他元件互连。

处理模块40的通信接口404允许系统4在通信信道41上通信。通信信道41可以例如在有线和/或无线介质中实现。

在各种实施例中,使用诸如Wi-Fi网络的无线网络(例如IEEE 802.11(IEEE指电气和电子工程师协会)),将数据流式传输或以其他方式提供至系统4。这些实施例的Wi-Fi信号是通过适于Wi-Fi通信的通信信道41和通信接口404来接收的。这些实施例的通信信道41通常被连接至提供对包括互联网的外部网络的接入的接入点或路由器,用于允许流式传输的应用和其他过顶通信(over-the-top communication)。其他实施例使用机顶盒向系统4提供流式传输的数据,机顶盒通过输入框42的HDMI连接传送数据。还有其他实施例使用输入框42的RF连接向系统4提供流式传输的数据。如上所述,各种实施例以非流式传输的方式提供数据。此外,各种实施例使用除Wi-Fi外的无线网络,例如蜂窝网络或蓝牙网络。

系统4可以向各种输出设备提供输出信号,输出设备包括显示器46、扬声器47和其他外围设备48。各种实施例的显示器46包括例如触摸屏显示器、有机发光二极管(OLED)显示器、弯曲显示器、和/或可折叠显示器中的一个或多个。显示器46可以用于电视机、平板电脑、膝上型计算机、蜂窝电话(移动电话)、或其他设备。显示器46也可以与其他组件集成(例如,如在智能电话中),或者分离(例如,用于膝上型计算机的外部监视器)。在实施例的各种示例中,其他外围设备46包括独立运行的数字视频盘(或数字多功能盘)(对于两个术语均为DVR)、盘播放器、立体声系统、和/或照明系统中的一个或多个。各种实施例使用基于系统4的输出提供功能的一个或多个外围设备48。例如,盘播放器执行播放系统4的输出的功能。

在各种实施例中,使用诸如AV.Link、消费电子控制(CEC)、或在有或没有用户干预的情况下使能设备到设备控制的其他通信协议的信令来在系统4和显示器46、扬声器47、或其他外围设备48之间通信控制信号。输出设备可以通过相应的接口43、44和45经由专用的连接通信地耦接至系统4。可替代地,输出设备可以经由通信接口404使用通信信道41连接至系统4。在电子设备(诸如,例如,电视机)中,显示器46和扬声器47可以与系统4的其他组件集成在单一单元中。在各种实施例中,显示接口43包括显示驱动器,诸如,例如,时序控制器(T Con)芯片。

显示器46和扬声器47可以可替代地与其他组件中的一个或多个分离,例如如果输入42的RF模块是单独的机顶盒的部分。在显示器46和扬声器47是外部组件的各种实施例中,可以经由包括例如HDMI端口、USB端口、或COMP输出的专用输出连接来提供输出信号。

各种实现方式涉及解码。如本申请中使用的“解码”可以涵盖例如对接收的编码的视频流执行的全部或部分处理,以便产生适于显示的最终输出。在各种实施例中,这种处理包括通常由解码器执行的处理中的一个或多个,例如熵解码、逆量化、逆变换和预测。在各种实施例中,这种处理也包括或者可替代地包括由本申请中描述的各种实现方式或实施例的解码器执行的处理,例如,用于确定根据合并模式进行编码的编解码单元的时间运动矢量预测器。

作为进一步的示例,在一个实施例中,“解码”仅指代熵解码(图3中的步骤310)。基于具体描述的上下文,短语“解码处理”旨在具体指代操作的子集还是一般地指代更广泛的解码处理将会是清楚的,并且被认为是由本领域技术人员很好理解的。

各种实现方式涉及编码。以类似于上面关于“解码”的讨论的方式,本申请中使用的“编码”可以涵盖例如对输入视频序列执行的全部或部分处理,以便产生编码的视频流。在各种实施例中,这种处理包括通常由编码器执行的处理中的一个或多个,例如分割、预测、变换、量化和熵编码。在各种实施例中,这种处理也包括或者可替代地包括由本申请中描述的各种实现方式或实施例的编码器执行的处理,例如,用于确定根据合并模式进行编码的编解码单元的时间运动矢量预测器。

作为进一步的示例,在一个实施例中,“编码”指代编码模式选择(图2中的步骤206)和熵编码(图2中的步骤210)。基于具体描述的上下文,短语“编码过程”旨在具体指代操作的子集还是一般地指代更广泛的编码处理将会是清楚的,并且被认为是由本领域技术人员很好理解的。

注意,如本文使用的语法元素名称、预测模式名称、工具名称是描述性术语。因此,它们不排除对其他语法元素、预测模式或工具名称的使用。

当附图被呈现为流程图时,应当理解其也提供了对应装置的框图。类似地,当附图被呈现为框图时,应当理解其也提供了对应的方法/处理的流程图。

各种实施例涉及速率失真优化。具体地,在编码处理期间,通常考虑速率和失真之间的平衡或权衡。速率失真优化通常被表述为最小化速率失真函数,其是速率和失真的加权和。存在不同的方法来解决速率失真优化问题。例如,这些方法可以基于对所有编码选项(包括所有考虑的模式或编解码参数值)的广泛测试,以及对其编解码成本和编码与解码后重构的信号的相关失真的完整评估。还可以使用更快的方法来节省编码复杂度,具体是基于预测或预测残差信号而不是重构的信号来计算近似失真。也可以使用这两种方法的混合,诸如通过仅对可能的编码选项中的一些使用近似失真,而对其他编码选项使用完全失真。其他方法仅评估可能编码选项的子集。更一般地,多个方法采用多种技术中的任何一种来执行优化,但是优化不一定是对编解码成本和相关失真两者的完整评估。

本文描述的实现方式和各方面可以例如以方法或处理、装置、软件程序、数据流、或信号来实现。即使仅在单一形式的实现方式的上下文中进行讨论(例如,仅作为方法讨论),所讨论的特征的实现方式也可以其他形式(例如,设备或程序)来实现。装置可以例如以适当的硬件、软件和固件来实现。方法可以例如在处理器中实现,该处理器一般指代处理设备,包括例如计算机、微处理器、集成电路、或可编程逻辑器件。处理器还包括通信设备,诸如,例如计算机、手机、便携式/个人数字助理(“PDA”)、和有助于终端用户之间的信息通信的其他设备。

对“一个实施例”或“实施例”或“一种实现方式”或“实现方式”、及其其他变型的引用意味着结合实施例所描述的特定特征、结构、特性等等被包括在至少一个实施例中。因此,贯穿本申请在各个地方出现的短语“在一个实施例中”或“在实施例中”或“在一种实现方式中”或“在实现方式中”、以及任何其他变型的出现并不一定全都指代相同的实施例。

此外,本申请可以涉及“确定”各条信息。确定信息可以包括以下中的一项或多项:例如估计信息、计算信息、预测信息、从其他信息推断信息、从存储器检索信息或者例如从另一设备、模块或用户获得信息。

此外,本申请可以涉及“访问”各条信息。访问信息可以包括以下中的一项或多项:例如接收信息、检索信息(例如,从存储器)、存储信息、移动信息、复制信息、计算信息、确定信息、预测信息、推断信息或估计信息。

此外,本申请可以涉及“接收”各条信息。与“访问”一样,接收旨在是广义的术语。接收信息可以包括以下中的一项或多项:例如访问信息、或检索信息(例如,从存储器)。此外,通常在诸如例如存储信息、处理信息、发送信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息、推断信息或估计信息的操作期间,以一种方式或另一方式涉及“接收”。

应当理解,例如在“A/B”、“A和/或B”和“A和B中的至少一个”、“A和B中的一个或多个”的情况下,对以下“/”、“和/或”和“…中的至少一个”、“…中的一个或多个”中的任何一个的使用旨在涵盖仅选择第一个列出的选项(A),或仅选择第二个列出的选项(B),或选择两个选项(A和B)。作为另一示例,在“A、B、和/或C”和“A、B、和C中的至少一个”、“A、B、和C中的一个或多个”的情况下,这种措辞旨在涵盖仅选择第一个列出的选项(A),或仅选择第二个列出的选项(B),或仅选择第三个列出的选项(C),或仅选择第一和第二个列出的选项(A和B),或仅选择第一和第三个列出的选项(A和C),或仅选择第二和第三个列出的选项(B和C),或者选择所有三个选项(A和B和C)。正如本领域和相关领域的普通技术人员所清楚的那样,这可以扩展到所列出的尽可能多的项目。

此外,如本文所使用的,词语“信号(signal)”尤其是指向对应解码器指示某物。例如,在某些实施例中,编码器发信号通知与运动矢量预测器相关的语法元素或参数,该运动矢量预测器是在以合并模式编码的编解码单元的运动矢量的列表中选择的。以这种方式,在实施例中,在编码器侧和解码器侧均使用相同的参数。因此,例如,编码器可以向解码器发送(显式信令)特定参数,使得解码器可以使用相同的特定参数。相反,如果解码器已经具有特定参数以及其他参数,则可以使用信令而不发送(隐式信令)来简单地允许解码器知道并选择特定参数。通过避免任何实际功能的传输,在各种实施例中实现了比特节省。应当理解,信令可以以多种方式实现。例如,在各种实施例中,一个或多个语法元素、标志等被用于向对应的解码器发信号通知信息。虽然前面涉及词语“信号”的动词形式,但是词语“信号”在本文也可以用作名词。

对于本领域普通技术人员来说将显而易见的是,各实现方式可以产生各种信号,这些信号被格式化以携带可被例如存储或发送的信息。该信息可以包括,例如用于执行方法的指令、或由所述实现方式中的一种产生的数据。例如,信号可以被格式化以携带所述实施例的编码的视频流。这种信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括例如对编码的视频流进行编码并用编码的视频流来调制载波。信号携带的信息可以是例如模拟或数字信息。如已知的,可以通过各种不同的有线或无线链路来发送信号。信号可以被存储在处理器可读介质上。

图9示意性地描绘了整体改进的TMVP推导过程。当处理模块40实现编码器或解码器时,处理模块40对当前块执行图9的过程。具体地,在步骤208和308期间执行TMVP推导过程。根据图9的过程推导的新TMVP可以例如用作常规合并模式的TMVP。

在开始TMVP推导过程之前,处理模块40已经识别出与当前块同位的同位图像中的块。

在步骤300中,处理模块40确定是否可以从如关于图5所定义的同位图像中与当前块同位的块的位置H获得运动矢量mv。如果可以从位置H推导运动矢量mv,则该运动矢量mv被处理模块40存储为时间运动矢量,并且步骤300之后是步骤302。

否则,步骤300之后是步骤301,在步骤301期间,处理模块40确定运动矢量mv是否可以从如关于图5所定义的同位图像中与当前块同位的块的中心位置C推导。如果可以从中心位置C推导运动矢量mv,则该运动矢量mv被处理模块40存储为时间运动矢量,并且步骤301之后是步骤302。步骤300和301允许从同位图像中与当前块同位的块中或与当前块同位的块的邻域中的位置获得时间运动矢量。

如果在步骤300或301中不能确定时间运动矢量,则处理模块40在步骤311停止TMVP推导过程。在这种情况下,通过TMVP推导过程无法推导TMVP。

在步骤302中,由于时间运动矢量mv可以指向参考图像缓冲器中的任何图像,所以处理模块40重新缩放推导的时间运动矢量mv,以确保该时间运动矢量mv指向当前参考图像(即,指向参考图像缓冲器中的第一位置中的参考图像)。

在步骤303中,处理模块40使用重新缩放的时间运动矢量mv来位移位置P=mv+C处的当前块的中心(由位置C表示)。

在步骤304中,处理模块40对位置P应用裁剪,以避免指向预定义区域之外(即,例如,避免指向包括位置C的CTU之外)。步骤303和304允许通过基于时间运动矢量mv对当前块的中心位置C应用位移来获得当前参考图像中的位置P。

在步骤305中,处理模块40确定运动矢量在位置p处是否可用。该运动矢量被称为“mv’”。

如果运动矢量mv’可用,则步骤305之后是步骤307。在步骤307期间,运动矢量mv’被重新缩放为运动矢量mv”以指向当前参考图像,并且被保持为用于TMVP推导过程的最终运动矢量(即TMVP)。

如果没有运动矢量mv’可用,则在步骤306中,运动矢量mv被保持为最终运动矢量(即TMVP)。

步骤306和308之后是步骤311。在步骤311中,从TMVP推导过程推导的TMVP被插入用于对当前块的运动矢量进行编码或解码(即重构)的运动矢量预测器候选的列表中。

可以看出,给定矢量的可用性,mv或mv”被用作TMVP。

注意,重新缩放过程与前面描述的HEVC中的相同。

在实施例中,位置H处的运动矢量的可用性(在步骤300测试)取决于包含当前块的CTU的限制(边界)。当对应于位置H的右下子块在当前CTU之外时,则认为运动矢量不可用,并且在同位图像中获取位置C处的运动矢量。

在变型中,可以使用当前CTU中位于当前CTU右下角的子块,以避免检查不必要的CTU限制约束。

在另一变型中,首先检查位置C。

在所有情况下,如果运动矢量不存在于同位图像中(例如,对应的子块处于帧内模式),则检查下一个候选(例如,当H是第一个检查位置时,在位置C处)。

例如在步骤304中应用的裁剪过程包括对在给定的约束区域中的裁剪位置P进行裁剪。在实施例中,约束区域对应于包括当前块的CTU,在该CTU的右侧向该CTU添加了一列子块(见图12)。位置P处的位移中心C被裁剪以保持在约束区域内,从而给出位置P’。然后,从同位图像中的位置P’处的子块中提取最终运动矢量(即TMVP)。

图10示意性地描绘了整体改进的TMVP推导过程的第一变型。当处理模块40实现编码器或解码器时,处理模块40对当前块执行图10的过程。具体地,在步骤208和308期间执行TMVP推导过程。

当在步骤300和301中找不到时间运动时,图10的变型修改了图9的过程。与图8的框图相比,在步骤301和307之间增加了两个附加步骤309和310。再次,从图10的过程推导的新TMVP可以例如用作常规合并模式的TMVP。

在步骤309中,处理模块40将中心位置C作为位置P。

在步骤310中,处理模块40检查同位图像中位置P处的运动矢量mv’的可用性。

如果其可用,则在步骤307中,运动矢量mv’被缩放为运动矢量mv”。否则,从TMVP推导过程中没有获得运动矢量,并且该过程在步骤311结束。

图11示意性地描绘了整体改进的TMVP推导过程的第二变型。当处理模块40实现编码器或解码器时,处理模块40对当前块执行图11的过程。具体地,在步骤208和308期间执行图11的TMVP推导过程。

当在步骤300和301中找不到时间运动时,图11的变型再次修改图9的过程。在这种情况下,在该变型中,合并过程的第一可用空间运动矢量(或者合并过程的第一候选(如果存在))被用来位移当前块中心。如果在最后没有找到运动矢量,则从TMVP推导过程中没有获得时间运动矢量。再次,从图11的过程推导的新TMVP可以例如用作常规合并模式的TMVP。

如下所述,图11的过程不同于图9的过程。

当在步骤300和301中没有找到时间运动矢量时,步骤301之后是步骤4000。

在步骤4000中,处理模块40确定第一合并运动矢量候选在常规合并模式的运动矢量候选的列表中是否可用。常规合并模式的候选的列表中的第一合并运动矢量是空间运动矢量。在实施例中,不是确定第一合并运动矢量候选是否可用,而是处理模块40确定在常规合并列表中是否有至少一个空间候选可用,并且如果有至少一个运动矢量候选可用,则处理模块40在所述列表的第一位置中选择运动矢量候选。

如果第一合并运动矢量不可用,则在步骤4005中,处理模块40将当前块的中心C用于位置P。

在步骤4006中,处理模块40确定位置P处的运动矢量mv’是否可用。

如果mv’可用,则在步骤4007中,处理模块40使用mv’位移当前块的中心。

然后,在步骤307中,处理模块40重新缩放运动矢量mv’以获得运动矢量mv”。

如果在步骤4006期间mv’不可用,则从TMVP推导过程中没有获得运动矢量,并且该过程在步骤311停止。

如果在步骤4000中第一合并运动矢量可用,则处理模块40在步骤4001期间重新缩放该运动矢量。

在步骤4002中,处理模块40使用重新缩放的运动矢量将当前块中心位置位移到位置P。

在步骤4003中,处理模块40裁剪位移的位置P。

在步骤4004期间,处理模块40检查同位图像中位置P处的运动矢量mv’的可用性。如果运动矢量mv’可用,则在步骤307中将其重新缩放为运动矢量mv”。如果运动矢量mv’不可用,则从TMVP推导过程中没有获得运动矢量,并且该过程在步骤311结束。

图13示意性地描绘了整体改进的TMVP推导过程的第三变型。当处理模块40实现编码器或解码器时,处理模块40对当前块执行图13的过程。具体地,在步骤208和308期间执行图13的TMVP推导过程。

再次,从图13的过程推导的新TMVP可以例如用作常规合并模式的TMVP。

裁剪过程的替代过程包括如果位移的子块在约束区域之外,则使用回退运动矢量预测器。

图13示出了避免裁剪过程的TMVP推导过程的变型。在图13的这个过程中,当位移的中心位于约束区域之外时,使用回退到原始运动矢量mv(当其被选择时)。与图11相比,插入了两个步骤(500和501),并且包括检查位置P是否在约束区域内。步骤500被插入步骤303和305/306之间。如果在步骤500中位置P在约束区域内,则处理模块执行步骤305。否则,处理模块执行步骤306。

步骤501被插入步骤4002和步骤4004之间。如果在步骤501中位置P在约束区域内,则处理模块执行步骤4004。否则,步骤501之后是步骤311,并且从TMVP推导过程中没有获得运动矢量。

图14示意性地描绘了整体改进的TMVP推导过程的第四变型。当处理模块40实现编码器或解码器时,处理模块40对当前块执行图14的过程。具体地,在步骤208和308期间执行图14的TMVP推导过程。

再次,从图14的过程推导的新TMVP可以用作例如常规合并模式的TMVP。

在步骤1401中,处理模块40确定在同位图像中的位置H处的运动矢量mv0是否可用。

如果运动矢量mv0在位置H处可用,则处理模块40在步骤1403中重新缩放运动矢量mv0,使得重新缩放的运动矢量mv0指向当前参考图像(即,指向参考图像缓冲器中的第一位置中的参考图像)。

在步骤1404中,处理模块40在位置P=C+mv0处位移当前块的中心。

在步骤1405中,如果位置P在约束区域之外,则处理模块40裁剪位置P。

在步骤1406中,处理模块40确定运动矢量mv0’在同位图像中的位置P处是否可用。

如果运动矢量mv0’在位置P处可用,则在步骤1408中处理模块重新缩放运动矢量mv0’以获得运动矢量mv0”。步骤1408之后是步骤1421。

如果在步骤1401,在位置H处没有运动矢量可用,则处理模块40在步骤1402期间确定没有运动矢量mv0和mv0”可用。步骤1402之后是步骤1421。

如果在步骤1406,在位置P处没有运动矢量mv0’可用,则处理模块40在步骤1407期间确定没有运动矢量mv0”可用。步骤1407之后是步骤1421。

与步骤1401至1408并行或在步骤1401至1408之后,处理模块执行步骤1409至1416。

在步骤1409中,处理模块40确定在同位图像中的位置C处的运动矢量mv1是否可用。

如果运动矢量mv1在位置C处可用,则处理模块40在步骤1411中重新缩放运动矢量mv1,使得重新缩放的运动矢量mv1指向当前参考图像(即,指向参考图像缓冲器中的第一位置中的参考图像)。

在步骤1412中,处理模块40在位置P=C+mv1处位移当前块的中心。

在步骤1413中,如果位置P在约束区域之外,则处理模块40裁剪位置P。

在步骤1414中,处理模块40确定在同位图像中的位置P处的运动矢量mv1’是否可用。

如果运动矢量mv1’在位置P处可用,则在步骤1416中处理模块重新缩放运动矢量mv1’以获得运动矢量mv1”。步骤1416之后是步骤1421。

如果在步骤1409,在位置C处没有运动矢量可用,则处理模块40在步骤1410期间确定没有运动矢量mv1和mv1”可用。步骤1410之后是步骤1421。

如果在步骤1414,在位置P处没有运动矢量mv1’可用,则处理模块40在步骤1415期间确定没有运动矢量mv1”可用。步骤1415之后是步骤1421。

与步骤1401至1408和/或步骤1409至1416并行或在步骤1401至1408和/或步骤1409至1416之后,处理模块40执行步骤1417至1420。

在步骤1417中,处理模块40确定当前块的中心处的位置P(P=C)。

在步骤1418中,处理模块确定运动矢量mv3”在同位图像中的位置P处是否可用。如果运动矢量在位置P可用,则在步骤1420期间,处理模块40重新缩放运动矢量mv3”。

否则,在步骤1419期间,处理模块40确定没有运动矢量mv3”可用。步骤1419和1420之后是步骤1421。

在步骤1421期间,处理模块40选择有序集合{mv0”、mv1”、mv3”、mv0、mv1、无}中的第一可用运动作为TMVP。如果mv0”可用,则处理模块40选择mv0”作为TMVP。否则,如果mv1”可用,则处理模块40选择mv1”作为TMVP。否则,如果mv3”可用,则处理模块40选择mv3”作为TMVP。否则,如果mv0可用,则处理模块40选择mv0作为TMVP。否则,如果mv1可用,则处理模块40选择mv1作为TMVP。否则,不选择TMVP,即,从TMVP推导过程中没有获得运动矢量。

当合并过程的第一可用空间运动矢量(或者合并过程的第一候选(如果存在))被用作初始运动矢量时,可以应用相同的过程,如前面关于图11所述(步骤4000)。

图15示意性地描绘了整体改进的TMVP推导过程的第五变型。当处理模块40实现编码器或解码器时,处理模块40对当前块执行图15的过程。具体地,在步骤208和308期间执行图15的TMVP推导过程。

从图15的过程推导的新TMVP具体适于子块合并模式。

在步骤1501中,处理模块40确定运动矢量mv在同位图像中的位置H处是否可用。如果运动矢量mv可用,则步骤1501之后是步骤1503。否则,处理模块40执行步骤1502,在该步骤1502期间,处理模块40确定运动矢量mv在同位图像中的位置C处是否可用。如果运动矢量mv可用,则步骤1502之后是步骤1503。

如果在步骤1502处没有运动矢量mv可用,则步骤1502之后是步骤1508。

在步骤1503中,处理模块40对运动矢量mv进行重新缩放。步骤1503与步骤302相同。

在步骤1504中,处理模块40为当前块的每个子块i计算位置P

在步骤1505中,处理模块40将每个位置P

在步骤1506中,处理模块40为每个子块i确定在位置P

在步骤1507中,每个可用运动矢量mv′

在步骤1508中,与步骤4000相同,处理模块40确定第一合并运动矢量mv是否可用。如果第一合并运动矢量mv可用,则在步骤1509中,处理模块40重新缩放该第一合并运动矢量mv。

在步骤1510中,处理模块40为当前块的每个子块i计算位置P

在步骤1511中,处理模块40将每个位置P

在步骤1512中,处理模块40为每个子块i确定在位置P

在步骤1513中,每个可用运动矢量mv′

如果在步骤1508,处理模块40确定没有第一合并运动矢量mv可用,则步骤1508之后是步骤1514。

在步骤1514中,处理模块40为当前块的每个子块i计算位置P

在步骤1515中,处理模块40为每个子块i确定在位置P

本申请描述了各种方面,包括工具、特征、实施例、模型、方法等。这些方面中的多个方面被具体地描述,并且至少为了示出各自特性,通常被以听起来可能是限制性的方式进行描述。然而,这是出于描述清楚的目的,并且不限制那些方面的应用或范围。事实上,所有不同的方面都可以被组合和互换以提供进一步的方面。此外,这些方面也可以与更早的文件中描述的各方面相结合和互换。

本申请中描述和预期的方面可以以多种不同的形式实现。图2、3、4A和4B提供了一些实施例,但是可以预期其他实施例,并且图2、3、4A和4B的讨论并不限制实现方式的广度。这些方面中的至少一个通常涉及视频编码和解码,并且至少一个其他方面通常涉及发送生成的或编码的比特流。这些和其他方面可以被实现为方法、装置、其上存储有用于根据所述方法中的任何一个来对视频数据进行编码或解码的指令的计算机可读存储介质、和/或其上存储有根据所述方法中的任何一个生成的比特流的计算机可读存储介质。

本文描述了各种方法,并且这些方法中的每一种都包括用于实现所述方法的一个或多个步骤或动作。除非该方法的正确操作需要步骤或动作的特定顺序,否则特定步骤和/或动作的顺序和/或使用可以被修改或组合。

本申请中描述的各种方法和其他方面可以用于修改模块,例如,视频编码器的运动矢量编解码步骤208和/或解码器的运动矢量解码步骤308。此外,本方面不限于VVC或HEVC,并且可以应用于例如其他标准和推荐(无论是现有的还是未来开发的),以及任何这种标准和推荐(包括VVC和HEVC)的扩展。除非另有说明,或者技术上被排除,否则本申请中描述的各方面可以单独使用或者组合使用。

在本申请中使用了各种数值、各种位置和/或各种约束区域。具体的值、位置、约束区域是出于示例的目的,并且所描述的方面不限于这些具体的值、位置和约束区域。

此外,实施例可以跨越各种权利要求类别和类型单独地或者以任何组合包括以下特征、设备或方面中的一个或多个:

·提供新的时间运动矢量预测器;

·通过使用同位图像中的块的运动矢量来获得新的时间运动矢量预测器,其中该块被来自原始TMVP过程的运动矢量MV0位移(相对于当前块的空间位置);

·新的时间运动矢量预测器可能会经受一些时间重新缩放;

·将块的位移裁剪到约束区域内;

·在时间运动矢量预测器不满足一些约束(例如,点在约束区域之外)的情况下应用原始TMVP过程;

·通过使用同位图像中的块的运动矢量而不是空间邻近块的运动矢量作为初始运动矢量来获得新的子块时间运动矢量预测器;

·通过对每个子块应用初始运动矢量来获得新的子块时间运动矢量预测器;

·在信令中插入使解码器能够识别要使用的运动矢量预测方法的语法元素;

·包括传达根据所描述的实施例中的任何一个所生成的信息的语法的比特流或信号;

·在信令中插入语法元素,该语法元素使解码器能够以与编码器使用的方式相对应的方式来调整运动矢量预测;

·创建和/或发送和/或接收和/或解码包括所描述的语法元素中的一个或多个或其变型的比特流或信号;

·根据所描述的任何实施例创建和/或发送和/或接收和/或解码;

·根据所描述的任何实施例的方法、过程、装置、存储指令的介质、存储数据的介质、或信号;

·TV、机顶盒、手机、平板计算机或其他电子设备,其执行根据所描述的任何实施例的对运动矢量预测的调整;

·TV、机顶盒、手机、平板计算机或其他电子设备,其执行根据所描述的任何实施例的对运动矢量预测的调整,并显示(例如,使用显示屏、屏幕或其他类型的显示器)结果图像;

·TV、机顶盒、手机、平板计算机或其他电子设备,其选择(例如使用调谐器)用于接收包括编码的图像的信号的通道,并执行根据所描述的任何实施例的对运动矢量预测的调整;

·TV、机顶盒、手机、平板计算机或其他电子设备,其通过空中接收(例如使用天线)包括编码的图像的信号,并执行根据所描述的任何实施例的对运动矢量预测的调整。

技术分类

06120113803042