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

帧间预测方法及装置

文献发布时间:2024-01-17 01:23:59


帧间预测方法及装置

相关申请案交叉申请

本申请要求于2018年10月10日提交的第62/744,106号美国临时申请的权益,其公开内容通过引用的方式并入本文。

技术领域

本发明涉及视频编解码领域,尤其涉及一种视频图像帧间预测方法、装置以及对应的编码器和解码器。

背景技术

数字视频功能可以应用到各种装置中,包括数字电视、数字直播系统、无线广播系统、个人数字助理(personal digital assistant,PDA)、笔记本电脑或台式计算机、平板电脑、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝或卫星无线电电话(称为“智能手机”)、视频会议装置、视频流装置等。数字视频装置实现视频压缩技术,例如MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频译码(advanced video coding,AVC),视频译码标准H.265/高效视频译码(highefficiency video coding,HEVC)标准,以及这些标准的扩展标准中所描述的视频压缩技术。视频装置可以通过实现此类视频压缩技术更有效地发送、接收、编码、解码和/或存储数字视频信息。

在视频压缩技术中,执行空间(帧内)预测和/或时间(帧间)预测以减少或去除视频序列中的固有冗余。对于基于块的视频译码,可以将视频条带(即视频帧或视频帧的一部分)分割为图像块,图像块也可以称为树块、译码单元(coding unit,CU)和/或译码节点。图像的待帧内译码(I)条带中的图像块是通过同一图像中相邻块中的参考像素点的空间预测进行译码的。对于图像的待帧间译码(P或B)条带中的图像块,可以使用同一图像中相邻块中的参考像素点的空间预测,或者使用其它参考图像中的参考像素点的时间预测。图像可以称为帧,参考图像可以称为参考帧。

发明内容

结合下文讨论的细节描述本发明的各种实施例和方面,附图示出了各种实施例。本发明的描述和附图是说明性的而非限制性的。描述的许多具体细节有助于透彻理解本发明的各种实施例。但是,在某些情况下,为了简明地讨论本发明的实施例,不再描述公知的或常规的细节。

在说明书中引用“一个实施例”或“实施例”意味着结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中各个地方出现的短语“在一个实施例中”不一定都指同一实施例。

本发明实施例提供一种视频图像帧间预测方法、装置以及对应的编码器和解码器,能够在一定程度上提高图像块的运动信息的预测准确性,从而提高编解码性能。

第一方面,描述了一种用于视频译码中的帧间预测的计算机实现的方法。在一个实施例中,该方法根据译码图像块的运动信息构建融合候选列表。运动信息定义了融合候选列表中的运动矢量预测值(motion vector predictor,MVP)候选。该方法包括当融合候选列表中的MVP候选的数量小于最大候选数量时,将新的运动信息作为新的MVP候选添加到融合候选列表中。该方法包括获取最优运动信息在融合候选列表中的位置的融合索引。该方法包括根据融合索引获取最优运动信息。该方法包括根据最优运动信息确定预测的当前图像块。

在一个实施例中,译码图像块在空间上或时间上与当前译码块相邻。

在一个实施例中,最优运动信息作为当前译码块的运动信息。

在一个实施例中,该方法还包括使用率失真成本从融合候选列表中确定最优运动信息。

在一个实施例中,当融合候选列表中的MVP候选的数量达到最大候选数量时,该方法还包括将成对平均候选运动信息添加到融合候选列表中。

在一个实施例中,成对平均候选运动信息定义成对平均候选,该成对平均候选是通过对融合候选列表中的预定义的一对MVP候选求平均值生成的。

在一个实施例中,最大候选数量为融合候选列表的最大候选数量减N,其中,N为正整数。

在一个实施例中,以预定候选扫描顺序将新运动信息添加到融合候选列表中。

在一个实施例中,译码图像块的时间候选运动信息是根据参考帧和当前帧的图像顺序计数对参考帧中对应的位置块的运动矢量进行缩放后获得的。

在一个实施例中,运动信息包括参考图像信息和运动矢量中的至少一个。

在一个实施例中,参考图像信息包括单向或双向预测信息、参考图像列表和与参考图像列表对应的参考图像索引中的至少一种。

在一个实施例中,在将新的运动信息作为新的MVP候选添加到融合候选列表中之前,该方法包括冗余度检查融合候选列表,以发现在融合候选列表中是否存在相同的MVP候选。在融合候选列表中发现相同的MVP候选之后,该方法包括从融合候选列表中删除相同的MVP候选,并向前移动融合候选列表中的剩余MVP候选。

第二方面,本申请实施例提供了一种帧间预测(计算机实现的)方法,包括:构建当前图像块的融合候选列表;当融合候选列表中的候选运动信息的数量小于融合候选列表的最大候选数量减N时,将HMVP候选运动信息添加到融合候选列表中,以获得新的融合候选列表,其中,N为正整数;获取当前图像块的融合索引;根据融合候选列表和融合索引获取当前图像块的运动信息;根据当前图像块的运动信息确定当前图像块的预测块。

预测块(predicted block)可以称为预测块(prediction block)。

当前图像块可以为译码块、译码单元或预测单元。

融合候选列表的最大候选数量可以称为融合运动矢量预测值(motion vectorpredictor,MVP)候选的最大数量。

HMVP候选运动信息可以称为基于历史的融合候选。

根据第二方面,在一些可能的实施例中,该方法还包括:当融合候选列表中的候选运动信息的数量大于或等于融合候选列表的最大候选数量减N时,将成对平均候选运动信息添加到融合候选列表中,以获得新的融合候选列表。

根据第二方面,在一些可能的实施例中,当融合候选列表中的候选运动信息的数量小于融合候选列表的最大候选数量减N时,将HMVP候选运动信息添加到融合候选列表中,以获得新的融合候选列表,包括:当融合候选列表中的候选运动信息的数量小于融合候选列表的最大候选数量时,将HMVP候选运动信息添加到融合候选列表中,以获得第一融合候选列表;当第一融合候选列表中的候选运动信息的数量小于融合候选列表的最大候选数量减N时,将新HMVP候选运动信息添加到第一融合候选列表中,以获得新的融合候选列表。

根据第二方面,在一些可能的实施例中,该方法还包括:当第一融合候选列表中的候选运动信息的数量大于或等于融合候选列表的最大候选数量减N时,将成对平均候选运动信息添加到第一融合候选列表中,以获得新的融合候选列表。

第三方面,本申请实施例提供了一种帧间预测装置,该帧间预测装置包括实现上述第一方面中任一种方法的功能单元。例如,帧间预测装置可以包括:构建单元,用于构建当前图像块的融合候选列表,当融合候选列表中的候选运动信息的数量小于融合候选列表的最大候选数量减N时,将HMVP候选运动信息添加到融合候选列表中,以获得新的融合候选列表,其中,N为正整数;预测块确定单元,用于获取当前图像块的融合索引;根据融合候选列表和融合索引获取当前图像块的运动信息;根据当前图像块的运动信息确定当前图像块的预测块。

第四方面,本申请实施例提供了一种帧间预测(计算机实现的)方法,包括:构建当前图像块的融合候选列表;在融合候选列表中的候选运动信息的数量小于融合候选列表的最大候选数量减N的情况下,将HMVP候选运动信息添加到融合候选列表中,其中,N为正整数;根据融合候选列表获取当前图像块的运动信息;根据当前图像块的运动信息确定当前图像块的预测块。

其中,N可以为1、2或3。

根据融合候选列表获取当前图像块的运动信息可以包括:获取当前图像块的融合索引或所述融合候选列表的融合索引;根据融合候选列表和融合索引获取当前图像块的运动信息。获取当前图像块的融合索引或所述融合候选列表的融合索引可以包括:通过解析码流获取融合索引。根据融合候选列表和融合索引获取当前图像块的运动信息可以包括:通过融合索引从融合候选列表中获取运动信息。融合索引可以用于指示运动信息在融合候选列表中的位置。

运动信息可以包括一个或两个运动矢量。

运动信息还可以包括一个或两个参考图像列表中与一个或多个运动矢量相关的参考图像索引、单向或双向预测信息,或与一个或多个运动矢量相关的一个或多个MVD(motion vector difference,运动矢量差值)。

根据融合候选列表获取当前图像块的运动信息可以包括:使用率失真成本从融合候选列表中确定运动信息。该方法还可以包括:将融合索引编码到码流中的融合候选列表。

预测块(predicted block)可以称为预测块(prediction block)。

当前图像块可以为译码块、译码单元或预测单元。

融合候选列表的最大候选数量可以称为融合运动矢量预测值(motion vectorpredictor,MVP)候选的最大数量。

HMVP候选运动信息可以称为基于历史的融合候选或基于历史的MVP(history-based MVP,HMVP)融合候选。

根据第四方面,在该方法的一个可能的实施例中,该方法还包括:在融合候选列表中的候选运动信息的数量等于融合候选列表的最大候选数量减N的情况下,将成对平均的候选运动信息添加到融合候选列表中。

成对平均候选运动信息是通过对融合候选列表中预定义的一对MVP候选求平均值生成的。

成对平均候选运动信息可以称为成对平均候选。

第五方面,描述了一种帧间预测装置。该帧间预测装置包括实现上述第一方面中任一种方法的功能单元。例如,帧间预测装置可以包括构建单元,构建单元用于:根据译码图像块的运动信息构建融合候选列表,其中,运动信息定义了融合候选列表中的MVP候选;当融合候选列表中的MVP候选的数量小于最大候选数量时,将新的运动信息作为新的MVP候选添加到融合候选列表中。该帧间预测装置还可以包括预测块确定单元,预测块确定单元用于:获取最优运动信息在融合候选列表中的位置的融合索引;根据融合索引获取最优运动信息;根据最优运动信息确定预测的当前图像块。

在一些实施例中,例如,图像预测装置应用于视频编码装置(例如,视频编码器)或视频解码装置(例如,视频解码器)。

本发明第一方面的方法可以由本申请第五方面的装置执行。本申请第五方面的装置的其它特征和实施例对应本申请第一方面的装置的特征和实施例。

第六方面,描述了一种帧间预测装置。该帧间预测装置包括实现上述第四方面中任一种方法的功能单元。例如,帧间预测装置可以包括:构建单元,构建单元用于:构建当前图像块的融合候选列表;在融合候选列表中的候选运动信息的数量小于融合候选列表的最大候选数量减N的情况下,将HMVP候选运动信息添加到融合候选列表中,其中,N为正整数;预测单元,预测单元用于:获取当前图像块的融合索引;根据融合候选列表和融合索引获取当前图像块的运动信息;根据当前图像块的运动信息确定当前图像块的预测块。

根据第六方面,在该装置的一个可能的实施例中,该构建单元还用于:在融合候选列表中的候选运动信息的数量等于融合候选列表的最大候选数量减N的情况下,将成对平均的候选运动信息添加到融合候选列表中。

成对平均候选运动信息是通过对融合候选列表中预定义的一对MVP候选求平均值生成的。

在第六方面或第六方面的任一前述实施例的装置的可能的实施例中,预测单元用于:通过融合索引从融合候选列表中获取运动信息。

在第六方面或第六方面的任一前述实施例的装置的可能的实施例中,预测单元用于:通过使用融合索引从融合候选列表中获取运动信息。

在一些实施例中,例如,图像预测装置应用于视频编码装置(例如,视频编码器)或视频解码装置(例如,视频解码器)。

本发明第四方面的方法可以由本申请第六方面的装置执行。本申请第六方面的装置的其它特征和实施例对应本申请第四方面的装置的特征和实施例。

第七方面,描述了一种图像预测装置。该装置包括处理器和耦合到处理器的存储器,处理器用于执行第一方面至第四方面或第一方面至第四方面的任一实施例中的方法。

第八方面,描述了一种视频解码设备。该视频解码设备包括非易失性存储介质和处理器,非易失性存储介质存储有可执行程序,处理器与非易失性存储介质耦合,处理器执行可执行程序,以实现上述第一方面至第四方面或第一方面至第四方面的任一实施例中的方法。

第九方面,描述了一种计算机可读存储介质。该计算机可读存储介质中存储有编程指令,当该指令在计算机上运行时,使得计算机执行第一方面至第四方面或第一方面至第四方面的实施例中的方法。

第十方面,描述了一种包含编程指令的计算机程序产品。当该计算机程序产品在计算机上运行时,使得计算机执行第一方面至第四方面或第一方面至第四方面的实施例中的方法。

第十一方面,本申请实施例提供了一种包括程序代码的计算机程序,当该计算机程序在计算机上执行时,使得计算机执行第一方面至第四方面或第一方面至第四方面的任一可能的实施例中的方法。

根据第七方面,描述一种用于视频译码中的帧间预测的计算机实现的方法。在一个实施例中,该方法根据译码图像块的运动信息构建融合候选列表。运动信息定义了融合候选列表中的运动矢量预测值(motion vector predictor,MVP)候选。当融合候选列表中的MVP候选的数量小于第一最大候选数量时,该方法包括将基于历史的运动矢量预测值(history-based motion vector predictor,HMVP)候选运动信息添加到融合候选列表中,以获得第一融合候选列表。当第一融合候选列表中的MVP候选的数量小于第二最大候选数量时,该方法包括将新HMVP候选运动信息添加到第一融合候选列表中,以获得新的融合候选列表。该方法包括获取最优运动信息在新的融合候选列表中的位置的融合索引。该方法包括根据融合索引获取最优运动信息。该方法包括根据最优运动信息确定预测的当前图像块。

应理解,各个方面以及对应的可实现的设计方式所获得的有益效果是相似的,本文不再赘述。

附图说明

为了更清楚地描述本发明实施例或背景技术中的技术方案,下文对本发明实施例或背景技术描述中需要使用的附图进行描述。

图1A为一个实施例提供的视频编解码系统的示例的框图。

图1B为一个实施例提供的视频译码系统的示例的框图。

图2为一个实施例提供的编码器的示例性结构的框图。

图3为一个实施例提供的解码器的示例性结构的框图。

图4为一个实施例提供的视频译码设备的示例的框图。

图5为一个实施例提供的编码装置或解码装置的另一示例的框图。

图6为一个实施例提供的空间和时间候选运动信息的示意性框图。

图7为一个实施例提供的基于历史的运动矢量预测值(history-based motionvector predictor,HMVP)方法流程的示意性框图。

图8为一个实施例提供的表更新的示意性框图。

图9为一个实施例提供的帧间预测方法的示意性流程图。

图10为实现内容分发服务的内容供应系统3100的示例性结构的框图。

图11为终端设备的示例的结构的框图。

具体实施方式

下文结合本发明实施例中的附图对本发明实施例进行描述。在以下描述中,参考构成本发明的一部分的附图,这些附图通过说明的方式示出本发明的实施例的特定方面或可以使用本发明的实施例的具体方面。应理解,本发明实施例可以用于其它方面,并且可以包括附图中未描绘的结构上或逻辑上的变化。因此,以下详细描述不应理解为限制,并且本发明的范围是由所附权利要求限定的。例如,应理解,参考所描述的方法公开的内容对于用于执行该方法的对应的设备或系统也可以成立,反之亦然。例如,如果描述了一个或多个特定的方法步骤,则对应的设备可以包括一个或多个单元,例如用于执行所描述的一个或多个方法步骤的功能单元(例如,执行一个或多个步骤的一个单元;或者多个单元,每个单元执行多个步骤中的一个或多个),即使一个或多个单元在附图中未明确描述或示出时也是如此。对应地,例如,如果根据功能单元等一个或多个单元来描述特定装置,则对应的方法可以包括用于执行一个或多个单元的功能的一个或多个步骤(例如,执行一个或多个单元的功能的一个步骤;或多个步骤,每个步骤执行多个单元中的一个或多个的功能),即使一个或多个步骤在附图中未明确描述或示出时也是如此。此外,应理解,除非特别指出,否则本文描述的各种示例性实施例和/或方面的特征可以彼此组合。

本发明实施例中的技术方案不仅可以应用于现有的视频译码标准(例如H.264标准、HEVC标准),而且可以应用于未来的视频译码标准(例如H.266标准)。本发明实现方式部分中使用的术语仅用于解释本发明的具体实施例,而不是用于限制本发明。下文首先对本发明实施例中可能使用到的一些概念进行简单描述。

视频译码通常是指对构成视频或视频序列的图像序列进行处理。在视频译码领域,术语“帧(frame)”或“图像(image/picture)”可以用作同义词。本文使用的视频译码是指视频编码或视频解码。视频编码在源端执行,并且通常包括处理(例如,通过压缩)原始视频图像,以减少表示视频图像所需的数据量,以获得更高效的存储和/或传输。视频解码在目的端执行,并且通常包括相对于编码器的逆处理以重建视频图像。本实施例中的视频图像“译码”可以理解为视频序列的“编码”或“解码”。编码部分和解码部分的组合也称为编解码器(编码和解码)。

视频序列由一系列图像组成。图像进一步分割成条带,并且每个条带进一步分割成块。在视频译码中,对每个块进行译码处理。在一些新的视频译码标准中,块的概念进一步扩展。例如,在H.264标准中,存在宏块(macroblock,MB),该宏块还可以分割成多个可以用于预测译码的预测块(或分区)。在高效视频译码(high efficiency video coding,HEVC)标准中,使用译码单元(coding unit,CU)、预测单元(prediction unit,PU)、变换单元(transform unit,TU)等基本概念,使得通过功能划分获得多种类型的块单元,并且结合新的基于树的结构来描述这些单元。例如,CU可以根据四叉树分割成更小的CU,每个更小的CU可以继续分割,从而形成四叉树结构。CU是译码图像的分区和译码的基本单元。PU和TU也具有类似的树形结构,PU可以对应一个预测块,并且是预测译码的基本单位。CU进一步根据分割方式分割成多个PU。TU可以对应变换块,并且是预测残差变换的基本单元。本质上,所有CU、PU和TU都是块(或图像块)的概念。

例如,在HEVC中,CTU通过表示为译码树的四叉树结构分割成多个CU。在CU级别上决定是通过帧间(时间)预测还是通过帧内(空间)预测对图像区域进行译码。每个CU还可以根据PU分割类型分割成1个、2个或4个PU。在一个PU内,进行相同的预测过程,并且以PU为单位将相关信息发送到解码器。在通过进行预测过程而获得残差块后,根据PU分割类型,可以根据与CU采用的译码树类似的其它四叉树结构将CU分割成TU。在视频压缩技术的最新发展中,使用四叉树和二叉树(quadtree and binary tree,QTBT)分割帧对译码块进行分割。在QTBT块结构中,CU可以具有正方形或矩形形状。

在本文中,为了便于描述和理解,可以将当前译码图像中待译码的图像块称为当前块。例如,在编码中,当前块为当前正在编码的块,在解码中,当前块为当前正在解码的块。参考图像中用于预测当前块的解码图像块称为参考块。换句话说,参考块是为当前块提供参考信号的块,参考信号表示图像块内的像素值。参考图像中为当前块提供预测信号的块可以称为预测块,预测信号表示预测块内的像素值、像素点值或采样信号。例如,遍历多个参考块后,发现最优参考块,该最优参考块为当前块提供预测,该块称为预测块。

在无损视频译码的情况下,可以对原始视频图像进行重建,这意味着重建的视频图像与原始视频图像具有相同的质量(假设在存储或传输期间没有发生传输损失或其它数据损失)。在有损视频译码的情况下,通过量化等方式进行进一步压缩,以减少表示视频图像所需的数据量,在解码端无法完全重建视频图像,这意味着重建的视频图像的质量比原始视频图像的质量低或差。

从H.261开始的若干视频译码标准属于“有损混合视频编解码”(即,将像素点域中的空间和时间预测与2D变换译码相结合,以在变换域中进行量化)。视频序列的每个图像通常分割成一组不重叠的块,并且通常在块级进行译码。换句话说,在编码端,视频通常以块(或视频块)级进行处理,即编码。例如,为了通过空间(帧内)预测和时间(帧间)预测生成预测块,将当前块(当前处理或待处理块)减去预测块,以获得残差块,并且在变换域中对残差块进行变换和量化以减少待发送(压缩)的数据量,而在解码端,对编码或压缩块进行相对于编码器的部分逆处理,以重建当前块用于表示。此外,编码器按照解码器处理循环来处理,使得编码器和解码器生成相同的预测(例如,帧内预测和帧间预测)和/或重建用于处理,即用于译码后续块。

下文对本发明各实施例中应用的系统架构进行描述。图1A为一个实施例提供的视频编解码系统的示例的示意性框图。如图1A所示,视频编解码系统10可以包括源设备12和目的设备14。源设备12生成编码视频数据,因此,源设备12可以称为视频编码装置。目的设备14可以对源设备12生成的编码视频数据进行解码,因此目的设备14可以称为视频解码装置。源设备12、目的设备14,或源设备12和目的设备14两者的实施例可以包括一个或多个处理器和耦合到处理器的存储器。存储器可以包括但不限于随机存储器(random accessmemory,RAM)、只读存储器(read-only memory,ROM)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、闪存,或可以用于存储呈编程指令或计算机可访问的数据结构形式的期望的程序代码的任何其它介质,如本文所述。源设备12和目的设备14可以包括各种装置,包括台式计算机、移动计算装置、笔记本电脑(例如,膝上型计算机)、平板电脑、机顶盒、电话手机(“智能”电话等)、电视、照相机、显示装置、数字媒体播放器、视频游戏机、车载计算机、无线通信设备等。

尽管图1A将源设备12和目的设备14描绘为单独的设备,但是,一个实施例也可以同时包括源设备12和目的设备14,或同时包括源设备12和目的设备14的功能,即,同时包括源设备12或对应的功能与目的设备14或对应的功能。在此类实施例中,源设备12或对应的功能与目的设备14或对应的功能可以通过相同的硬件和/或软件、单独的硬件和/或软件或其任何组合来实现。

源设备12与目的设备14之间可以通过链路13进行通信连接,目的设备14可以通过链路13从源设备12接收编码视频数据。链路13可以包括能够将编码视频数据从源设备12移动到目的设备14的一个或多个介质或装置。在一个示例中,链路13可以包括使源设备12能够实时地将编码视频数据直接发送到目的设备14的一个或多个通信介质。在本示例中,源设备12可以根据通信标准(例如无线通信协议)对编码视频数据进行调制,并且可以将调制视频数据发送到目的设备14。一个或多个通信介质可以包括无线通信介质和/或有线通信介质,例如射频(radio frequency,RF)频谱或一条或多条物理传输线路。一个或多个通信介质可以构成基于分组的网络的一部分,例如,基于分组的网络为局域网、广域网或全球网络(例如互联网)。一个或多个通信介质可以包括路由器、交换机、基站或便于从源设备12到目的设备14进行通信的其它设备。

源设备12包括编码器20,在一个实施例中,源设备12还可以包括图像源16、图像预处理器18和通信接口22。在一个实施例中,编码器20、图像源16、图像预处理器18和通信接口22可以是源设备12中的硬件组件,也可以是源设备12中的软件程序。单独描述如下:

图像源16可以包括或是用于例如捕获真实世界图像的任何类型的图像捕获设备,和/或用于生成图像或评论的任何类型的设备(对于屏幕内容编码,屏幕上的部分文本也被认为是待编码的图像的一部分),例如用于生成计算机动画图像的计算机图形处理器,或用于获取和/或提供真实世界图像或计算机动画图像(例如屏幕内容或虚拟现实(virtualreality,VR)图像)的任何类型的设备,和/或其任何组合(例如增强现实(augmentedreality,AR)图像)。图像源16可以是用于捕获图像的摄像头,或者用于存储图像的存储器。图像源16还可以包括用于存储之前捕获或生成的图像和/或用于获取或接收图像的任何类型的(内部或外部)接口。例如,当图像源16为摄像头时,图像源16可以是本地摄像头或集成在源设备中的集成摄像头。当图像源16为存储器时,图像源16可以是本地存储器,例如集成在源设备中的集成存储器。例如,当图像源16包括接口时,该接口可以是用于接收来自外部视频源的图像的外部接口。例如,外部视频源为摄像头等外部图像捕获设备、外部存储器、外部图像生成设备。例如,外部图像生成设备为外部计算机图形处理器、计算机或服务器。接口可以是任何类型的接口,例如,根据任何私有或标准化的接口协议的有线或无线接口或光接口。

图像可以看作二维像素(图像元素)阵列或矩阵。阵列中的像素也可以称为像素点(sample)。阵列或图像的水平和垂直方向(或轴线)上的像素点的数量定义图像的大小和/或分辨率。通常使用三种颜色分量来表示颜色。图像可以表示为或包含三个像素点阵列。例如,在RBG格式或色彩空间中,图像包括对应的红、绿、蓝像素点阵列。但是,在视频译码中,每个像素通常用亮度/色度格式或颜色空间表示,例如YUV格式的图像包括Y(或者有时用L表示)表示的亮度分量以及U和V表示的两个色度分量。亮度(luma)分量Y表示亮度或灰度强度(例如,在灰度图像中两者相同),两个色度(chroma)分量U和V表示色度颜色信息分量或颜色信息分量。对应地,YUV格式的图像包括亮度像素点值的亮度像素点阵列(Y)和色度值的两个色度像素点阵列(U和V)。RGB格式的图像可以变换或转换为YUV格式,反之亦然。这个过程也称为颜色转换或变换。如果图像是单色的,则该图像可以只包括亮度像素点阵列。在一个实施例中,由图像源16发送到图像处理器的图像也可以称为原始图像数据17。

图像预处理器18用于接收原始图像数据17,并对原始图像数据17进行处理,以获得预处理图像19或预处理图像数据19。例如,图像预处理器18执行的预处理可以包括修剪、颜色格式转换(例如,从RGB格式转换为YUV格式)、颜色校正或去噪。

编码器20(也称为视频编码器20)用于接收预处理图像数据19,并通过相关的预测模式(例如本发明各实施例中的预测模式)处理预处理图像数据19,以提供编码图像数据21(下文根据图2、图4或图5进一步详细描述编码器20的结构)。在一些实施例中,编码器20可以用于执行下文描述的各种实施例,以实现本发明中描述的色度块预测方法的编码器侧应用程序。

通信接口22可以用于接收编码图像数据21,并通过链路13将编码图像数据21发送到目的设备14或任何其它设备(例如存储器)进行存储或直接重建。其它设备可以是用于解码或存储的任何设备。例如,通信接口22可以用于将编码图像数据21封装成合适的格式,例如数据包,以便在链路13上发送。

目的设备14包括解码器30,在一个实施例中,目的设备14还可以包括通信接口28、图像后处理器32和显示设备34。单独描述如下:

通信接口28可以用于从源设备12或任何其它源接收编码图像数据21。任何其它源为存储设备等,存储设备为编码图像数据存储设备等。通信接口28可以用于通过源设备12与目的设备14之间的链路13或通过任何类型的网络发送或接收编码图像数据21。链路13为直接有线或无线连接等,任何类型的网络为有线或无线网络或其任何组合,或任何类型的私有或公网或其任何组合。例如,通信接口28可以用于对通过通信接口22发送的数据包进行解封装,以获得编码图像数据21。

通信接口28和通信接口22都可以用作单向通信接口或双向通信接口,例如可以用于发送和接收消息,以建立连接以及确认和交换与通信链路和/或数据传输(例如编码图像数据传输)相关的任何其它信息。

解码器30(也称为视频解码器30)用于接收编码图像数据21,并提供解码图像数据31或解码图像31(下文根据图3、图4或图5进一步详细描述解码器30的结构)。在一些实施例中,解码器30可以用于执行下文描述的各种实施例,以实现本发明中描述的色度块预测方法的解码器侧应用程序。

图像后处理器32用于对解码图像数据31(也称为重建图像数据)进行后处理,以获得后处理图像数据33。图像后处理器32执行的后处理可以包括颜色格式转换(例如,从YUV格式到RGB格式)、颜色校正、修剪、重采样或任何其它处理。图像后处理器32还可以用于向显示设备34发送后处理图像数据33。

显示设备34用于接收后处理图像数据33,以为用户或观看者等显示图像。显示设备34可以是或包括用于呈现重建图像的任何类型的显示器,例如集成的或外部的显示器或监控器。例如,显示器可以包括液晶显示器(liquid crystal display,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微LED显示器,硅上液晶(liquid crystal on silicon,LCOS)、数字光处理器(digital lightprocessor,DLP)或任何类型的其它显示器。

尽管图1A将源设备12和目的设备14描绘为单独的设备,但是,一个实施例也可以同时包括源设备12和目的设备14,或同时包括源设备12和目的设备14的功能,即,同时包括源设备12或对应的功能与目的设备14或对应的功能。在此类实施例中,源设备12或对应的功能与目的设备14或对应的功能可以通过相同的硬件和/或软件、单独的硬件和/或软件或其任何组合来实现。

根据以上描述,对于本领域技术人员来说显而易见的是,图1A中所示的源设备12和/或目的设备14的不同单元或功能的存在和(精确)功能划分可以随着实际设备和应用而变化。源设备12和目的设备14可以包括多种设备中的任一种,包括任何类型的手持式或固定式设备,例如笔记本电脑或膝上型计算机、手机、智能手机、平板电脑、照相机、台式计算机、机顶盒、电视机、照相机、车载设备、显示设备、数字媒体播放器、视频游戏机、视频流设备(例如内容服务服务器或内容分发服务器)、广播接收器设备,或广播发送器设备,并且可以不使用或使用任何类型的操作系统。

编码器20和解码器30可以各自实现为各种合适的电路中的任一种,例如,一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件,或其任何组合。如果这些技术部分地在软件中实现,则设备可以将软件指令存储在合适的非瞬时性计算机可读存储介质中,并且可以通过一个或多个处理器在硬件中执行这些指令,以执行本发明的技术。上述任一种(包括硬件、软件、硬件和软件的组合等)可以看作一个或多个处理器。

在一些情况下,图1A所示的视频编解码系统10仅是示例,本发明的技术可以应用于视频译码设置(例如,视频编码或视频解码),不一定包括编码设备与解码设备之间的任何数据通信。在其它示例中,数据可以从本地存储器检索、通过网络流式传输等。视频编码设备可以编码数据并将数据存储到存储器中,和/或视频解码设备可以从存储器检索数据并解码数据。在一些示例中,编码和解码由不彼此通信但简单地将数据编码到存储器和/或从存储器检索数据并解码数据的设备执行。

图1B是根据一个实施例的视频译码系统的示例的说明性图。参考图1B,根据一个实施例,视频译码系统40包括图2的编码器20和/或图3的解码器30。视频译码系统40可以实现本发明各实施例中的各种技术的组合。在图1B中,视频译码系统40可以包括成像设备41、编码器20、解码器30(和/或处理单元46的逻辑电路47实现的视频编码器/解码器)、天线42、一个或多个处理器43、一个或多个存储器44,和/或显示设备45。

如图1B所示,成像设备41、天线42、处理单元46、逻辑电路47、编码器20、解码器30、处理器43、存储器44和/或显示设备45可以相互通信。如上所述,尽管视频译码系统40以编码器20和解码器30示出,但在不同的示例中,视频译码系统40可以仅包括编码器20或仅包括解码器30。

在一些实施例中,天线42可以用于发送或接收视频数据的编码码流。此外,在一些实施例中,显示设备45可以用于呈现视频数据。在一些示例中,逻辑电路47可以由处理单元46实现。处理单元46可以包括ASIC逻辑、图形处理器或通用处理器等。视频译码系统40还可以包括可选的处理器43。类似地,可选的处理器43可以包括ASIC逻辑、图形处理器或通用处理器等。在一些实施例中,逻辑电路47可以通过硬件实现,例如视频译码专用硬件,处理器43可以通过通用软件、操作系统等实现。此外,存储器44可以是任何类型的存储器,例如易失性存储器(例如,静态随机存取存储器(static random access memory,SRAM)或动态随机存取存储器(dynamic random access memory,DRAM))或非易失性存储器(例如,闪存)。在非限制性示例中,存储器44可以通过高速缓存存储器实现。在一些实施例中,逻辑电路47可以访问存储器44(例如,用于实现图像缓冲器)。在其它实施例中,逻辑电路47和/或处理单元46可以包括用于实现图像缓冲器等的存储器(例如,高速缓存)。

在一些实施例中,由逻辑电路实现的编码器20可以包括图像缓冲器(例如,由处理单元46或存储器44实现)和图形处理单元(例如,由处理单元46实现)。图形处理单元可以通信地耦合到图像缓冲器。图形处理单元可以包括由逻辑电路47实现的编码器20,以实现结合图2所描述的各种模块和/或本文所描述的任何其它编码器系统或子系统。逻辑电路可以用于执行本文所描述的各种操作。

在一些实施例中,解码器30可以由逻辑电路47以类似的方式实现,以实现结合图3中的解码器30所描述的各种模块和/或本文中所描述的任何其它解码器系统或子系统。在一些实施例中,由逻辑电路实现的解码器30可以包括图像缓冲器(例如,由处理单元2820或存储器44实现)和图形处理单元(例如,由处理单元46实现)。图形处理单元可以通信地耦合到图像缓冲器。图形处理单元可以包括由逻辑电路47实现的解码器30,以实现结合图3所描述的各种模块和/或本文所描述的任何其它解码器系统或子系统。

在一些实施例中,天线42可以用于接收视频数据的编码码流。如上所述,编码码流可以包括本文所描述的与视频帧编码相关的数据、指示符、索引值、模式选择数据等,例如,与译码分区相关的数据(例如,变换系数或量化变换系数、可选指示符(如上所述)和/或定义译码分区的数据。视频译码系统40还可以包括耦合到天线42的解码器30,解码器30用于对编码码流进行解码。显示设备45用于呈现视频帧。

应理解,在本发明实施例中,针对编码器20所描述的示例,解码器30可以用于执行逆过程。关于指示(signaling)语法元素,解码器30可以用于接收和解析此类语法元素,并相应地解码相关视频数据。在一些实施例中,编码器20可以将语法元素熵编码到编码视频码流中。在此类示例中,解码器30可以解析此类语法元素并相应地解码相关的视频数据。

需要说明的是,本发明实施例中所描述的方法主要用于帧间预测过程,该过程同时存在于编码器20和解码器30中。本发明实施例中的编码器20和解码器30可以是与H.263、H.264、HEVV、MPEG-2、MPEG-4、VP8、VP9等视频标准协议或下一代视频标准协议(例如H.266)对应的编码器和解码器。

图2为一个实施例提供的编码器的示例的示意性/概念框图。在图2中,编码器20包括残差计算单元204、变换处理单元206、量化单元208、反量化单元210、逆变换处理单元212、重建单元214、缓冲器216、环路滤波单元220、解码图像缓冲器(decoded picturebuffer,DPB)230、预测处理单元260和熵编码单元270。预测处理单元260可包括帧间预测单元244、帧内预测单元254和模式选择单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(图中未示出)。根据混合视频编解码器,图2所示的编码器20也可以称为混合视频编码器或视频编码器。

例如,残差计算单元204、变换处理单元206、量化单元208、预测处理单元260和熵编码单元270构成编码器20的前向信号路径,而例如反量化单元210、逆变换处理单元212、重建单元214、缓冲器216、环路滤波器220、DPB 230和预测处理单元260构成编码器的反向信号路径,其中编码器的反向信号路径对应解码器(例如,图3的解码器30)的信号路径。

例如,编码器20通过输入端202接收图像201或图像201的图像块203,图像201例如是组成视频或视频序列的图像序列中的图像。图像块203也可以称为当前图像块或待编码图像块,图像201可以称为当前图像或待编码图像(特别是在视频译码中,用来区分当前图像与其它图像,其它图像例如是同一视频序列(即,也包括当前图像的视频序列)中之前编码和/或解码的图像)。

在一个实施例中,编码器20可以包括分割单元(图2中未示出),用于将图像201分割成多个块,例如图像块203。图像201通常分割成多个不重叠的块。分割单元可以用于对视频序列中的所有图像和定义块大小的对应的栅格使用相同的块大小,或者改变图像或子集或图像组之间的块大小,并将每个图像分割成对应的块。

在一个实施例中,编码器20的预测处理单元260可以用于执行上述分割技术的任何组合。

尽管图像块203的大小小于图像201,但是与图像201一样,图像块203也是或也可以被认为是具有像素点值的二维阵列或矩阵。换句话说,图像块203例如可以包括一个像素点阵列(例如,在黑白图像201的情况下,亮度阵列)、三个像素点阵列(例如,在彩色图像的情况下,一个亮度阵列和两个色度阵列),或任何其它数量和/或类型的阵列,这取决于应用的颜色格式。图像块203在水平和垂直方向(或轴线)上的像素点的数量限定了图像块203的大小。

图2所示的编码器20用于对图像201逐块地进行编码,例如对每个图像块203进行编码和预测。

残差计算单元204用于根据图像块203和预测块265计算残差块205(下文对预测块265进行进一步详细描述),例如,通过逐个像素点(逐个像素)地将图像块203的像素点值减去预测块265的像素点值,获得像素点域中的残差块205。

变换处理单元206用于对残差块205的像素点值进行变换,例如离散余弦变换(discrete cosine transform,DCT)或离散正弦变换(discrete sine transform,DST),以获得变换域中的变换系数207。变换系数207也可以称为变换残差系数,并且表示变换域中的残差块205。

变换处理单元206可以用于应用DCT/DST的整数近似,例如针对HEVC/H.265指定的变换。与正交DCT变换相比,此类整数近似通常通过一个因子进行缩放。使用其它缩放因子作为变换过程的一部分,以维持经过前向变换和逆变换处理的残差块的范数。缩放因子的选择通常基于一些约束,例如缩放因子为移位运算的2的幂、变换系数的位深、精度与实现成本之间的权衡等。例如,逆变换处理单元212在解码端30为逆变换指定特定的缩放因子(并且例如逆变换处理单元212在编码端20为对应的逆变换指定缩放因子),对应地,变换处理单元206可以在编码端20为正变换指定对应的缩放因子。

量化单元208用于对变换系数207进行量化(例如进行标量量化或矢量量化),以获得量化变换系数209。量化变换系数209也可以称为量化残差系数209。量化过程可以减小与部分或全部变换系数207相关的位深。例如,在量化期间,可以将n位变换系数向下取整为m位变换系数,其中n大于m。可以通过调整量化参数(quantization parameter,QP)来修改量化程度。例如,对于标量量化,可以进行不同的缩放来实现更精细或更粗略的量化。量化步长越小,量化越精细;量化步长越大,量化越粗略。合适的量化步长可以通过QP来指示。例如,量化参数可以是预定义的一组合适的量化步长的索引。例如,较小的量化参数可以对应更精细的量化(例如,较小的量化步长),而较大的量化参数可以对应更粗略的量化(例如,较大的量化步长),反之亦然。量化可以包括除以量化步长和对应的量化或解量化(例如,通过反量化单元210),或者可以包括乘以量化步长。根据HEVC等标准,实施例中可以使用量化参数来确定量化步长。通常,可以通过包含除法的方程的定点近似、根据量化参数计算量化步长。可以将其它缩放因子引入量化和解量化,用于恢复残差块的范数,因为量化步长和量化参数的方程的定点近似中使用缩放,所以可以修改该范数。在一个示例性实施例中,逆变换的缩放可以与解量化的缩放组合。或者,可以使用自定义量化表,并且例如在码流中将该自定义量化表从编码器发送到解码器。量化为有损操作,量化步长越大,损耗越大。

反量化单元210用于对量化单元208的量化系数进行反量化,以获得解量化系数211,例如根据或通过与量化单元208相同的量化步长,应用量化单元208所应用的量化方案的逆。解量化系数211也可以称为解量化残差系数211,尽管由于量化造成的损耗通常与变换系数不同,但对应变换系数207。

逆变换处理单元212用于对变换处理单元206所进行的变换进行逆变换(例如逆DCT或逆DST),以在像素点域中获得逆变换块213。逆变换块213也可以称为逆变换解量化块213或逆变换残差块213。

重建单元214(例如,求和器214)用于将逆变换块213(即重建残差块213)添加到预测块265,以获得像素点域中的重建块215,例如,通过将重建残差块213的像素点值添加到预测块265的像素点值。

在一个实施例中,例如行缓冲器216的缓冲单元(或缓冲器)216用于缓冲或存储重建块215和对应的像素点值,以例如用于帧内预测。在其它实施例中,编码器可以使用未滤波的重建块和/或存储在缓冲单元216中的对应的像素点值用于任何类型的估计和/或预测,例如帧内预测。

例如,编码器20的一个实施例可以使缓存单元216不仅用于存储用于帧内预测254的重建块215,而且也用于环路滤波器单元220(图2中未示出),和/或使例如缓冲单元216和解码图像缓冲单元230构成一个缓冲器。其它实施例可以使用解码图像缓冲器230的滤波块221和/或块或像素点(块或像素点在图2中未示出)作为帧内预测254的输入或基础。

环路滤波器单元(或环路滤波器)220用于对重建块215进行滤波,以获得滤波块221,以平滑像素过渡或提高视频质量。环路滤波器单元220表示一个或多个环路滤波器,环路滤波器包括去块滤波器、采样自适应偏移(sample-adaptive offset,SAO)滤波器和其它滤波器,例如双边滤波器,自适应环路滤波器(adaptive loop filter,ALF)、锐化或平滑滤波器或协作滤波器。尽管在图2中环路滤波器单元220示出为环内滤波器,但在其它配置中,环路滤波器单元220可以实现为后环路滤波器。滤波块221也可以称为滤波重建块221。解码图像缓冲器230可以在环路滤波单元220对重建编码块进行滤波操作之后存储重建编码块。

例如,编码器20(对应地,环路滤波器单元220)的一个实施例可以直接输出环路滤波器参数(例如采样自适应偏移信息)或在熵编码单元270或任何其它熵编码单元执行熵编码之后输出环路滤波器参数,使得例如解码器30可以接收相同的环路滤波器参数并将相同的环路滤波器参数应用于解码。

DPB 230可以是参考图像存储器,其存储参考图像数据,该参考图像数据由编码器20用来对视频数据进行编码。DPB 230可以由各种存储器设备中的任一种构成,例如DRAM(包括同步DRAM(synchronous DRAM,SDRAM))、磁阻RAM(magnetoresistive RAM,MRAM)和电阻RAM(resistive RAM,RRAM),或其它类型的存储器设备。DPB 230和缓冲器216可以由同一存储器设备提供,也可以由不同的存储器设备提供。在一个实施例中,DPB 230用于存储滤波块221。DPB 230还可以用于存储相同的当前图像或不同图像(例如之前重建的图像)的其它之前滤波的块(例如之前重建的和滤波的块221),并且可以提供完整的之前重建的(即解码的)图像(以及对应的参考块和像素点)和/或部分重建的当前图像(以及对应的参考块和像素点),以例如用于帧间预测。在一个实施例中,如果重建了重建块215,但是没有进行环内滤波,则DPB 230用于存储重建块215。

预测处理单元260也称为块预测处理单元260,用于:接收或获取图像块203(例如,当前图像201的当前图像块203)和重建图像数据,例如,来自缓冲器216的相同(或当前)图像的参考像素点和/或来自解码图像缓冲器230的一个或多个之前解码的图像的参考图像数据231;并且用于处理此类数据以进行预测,即,提供预测块265,预测块265可以是帧间预测块245或帧内预测块255。

模式选择单元262可以用于选择预测模式(例如,帧内或帧间预测模式)和/或选择对应的预测块245或255作为预测块265,以用于残差块205的计算和重建块215的重建。

在一个实施例中,模式选择单元262可以用于选择预测模式(例如,从预测处理单元260支持的预测模式中)。预测模式提供最佳匹配,即,最小残差(最小残差更有利于压缩,以便传输或存储),或者提供最小的信令开销(最小信令开销更有利于压缩,以便传输或存储),或者考虑或平衡两者。模式选择单元262可以用于根据率失真优化(rate-distortionoptimization,RDO)确定预测模式,即,选择提供最小率失真优化的预测模式,或选择相关率失真至少满足预测模式选择标准的预测模式。

下文更详细描述编码器20的示例执行的预测处理(例如,通过预测处理单元260)和模式选择(例如,通过模式选择单元262)。

如上所述,编码器20用于从一组预测模式(可以是预定的)中确定或选择最优预测模式。该组预测模式可以包括例如帧内预测模式和/或帧间预测模式。

一组帧内预测模式可以包括35种不同的帧内预测模式,例如DC(或均值)模式和平面模式等非定向模式,或H.265中定义的定向模式等,也可以包括67种不同的帧内预测模式,例如DC(或均值)模式、平面模式等非定向模式,或正在开发的H.266中定义的定向模式等。

在一个实施例中,一组帧间预测模式取决于可用的参考图像(即,例如,如上所述,存储在DPB 230中的至少部分解码的图像)和其它帧间预测参数,例如,取决于是整个参考图像还是仅参考图像的一部分,例如,当前块区域周围的搜索窗口区域用于搜索最优匹配参考块,和/或,例如,取决于是否应用了像素插值,例如半像素和/或四分之一像素插值。例如,该组帧间预测模式可以包括高级运动矢量预测值(advanced motion vectorpredictor,AMVP)模式和融合模式。在一个实施例中,该组帧间预测模式可以包括在本发明实施例中改进的基于控制点的AMVP模式和基于控制点的融合模式。在一个示例中,帧内预测单元254可以用于执行下文描述的帧内预测技术的任何组合。

除了上述预测模式外,本发明实施例中还可以应用跳过模式和/或直接模式。

预测处理单元260还可以用于例如通过迭代地使用四叉树(quadtree,QT)分割、二叉树(binary-tree,BT)分割、三叉树(triple-tree,TT)分区或其任何组合,将图像块203分割成较小的块分区或子块,以及用于例如对块分区或子块中的每一个执行预测,其中模式选择包括选择分割的图像块203的树形结构以及应用于每个块分区或子块的预测模式。

帧间预测单元244可以包括运动估计(motion estimation,ME)单元(图2中未示出)和运动补偿(motion compensation,MC)单元(图2中未示出)。运动估计单元用于接收或获取图像块203(例如,当前图像201的当前图像块203)和解码图像231,或至少一个或多个之前重建的块(例如,一个或多个其它/不同的之前解码的图像231的重建块),以用于运动估计。例如,视频序列可以包括当前图像和之前解码的图像31,或者,换句话说,当前图像和之前解码的图像31可以是构成视频序列的图像序列的一部分或可以构成该序列。

例如,编码器20可以用于从同一图像的多个参考块或多个其它图像的不同图像中选择参考块,并将参考图像提供给运动估计单元(图2中未示出)和/或提供参考块的位置(坐标X和Y)与当前块的位置之间的偏移量(空间偏移量)作为帧间预测参数。这个偏移量也称为运动矢量(motion vector,MV)。

运动补偿单元用于获取帧间预测参数,并根据或通过帧间预测参数进行帧间预测,以获得帧间预测块245。运动补偿单元(图2中未示出)所执行的运动补偿可以包括根据通过运动估计确定的运动/块矢量提取或生成预测块(可能执行插值以提高子像素精度)。插值滤波可以通过已知像素点生成其它像素点,从而潜在地增加可以用于译码图像块的候选预测块的数量。在接收到当前图像块的PU的运动矢量时,运动补偿单元246可以定位运动矢量在一个参考图像列表中指向的预测块。运动补偿单元246还可生成与块和视频条带相关联的语法元素,该语法元素由解码器30用来解码视频条带的图像块。

在一个实施例中,帧间预测单元244可以向熵编码单元270发送语法元素,语法元素包括帧间预测参数(例如在遍历多个帧间预测模式之后选择用于预测当前块的帧间预测模式的指示信息)。在一个实施例中,如果只有一个帧间预测模式,则帧间预测参数也可以不携带在语法元素中。在这种情况下,解码端30可以直接以默认预测模式进行解码。可以理解的是,帧间预测单元244可以用于执行帧间预测技术的任何组合。

帧内预测单元254用于获取(例如接收)图像块203(当前图像块)和同一图像的一个或多个之前重建的块(例如重建相邻块),以用于进行帧内估计。例如,编码器20可以用于从多个帧内预测模式(可以是预定的)中选择帧内预测模式。

在一个实施例中,编码器20可以用于根据优化准则,例如根据最小残差(例如,提供与当前图像块203最相似的预测块255的帧内预测模式)或最小率失真来选择帧内预测模式。

帧内预测单元254还用于根据帧内预测参数(例如,选择的帧内预测模式)确定帧内预测块255。在任何情况下,在为块选择帧内预测模式之后,帧内预测单元254还用于向熵编码单元270提供帧内预测参数,即指示为块选择的帧内预测模式的信息。在一个示例中,帧内预测单元254可以用于执行帧内预测技术的任何组合。

在一个实施例中,帧内预测单元254可以向熵编码单元270发送语法元素,语法元素包括帧内预测参数(例如,例如在遍历多个帧内预测模式之后选择用于预测当前块的帧内预测模式的指示信息)。在一个实施例中,如果只有一个帧内预测模式,则帧内预测参数也可以不携带在语法元素中。在这种情况下,解码端30可以直接以默认预测模式进行解码。

熵编码单元270用于单独地或联合地(或根本不)对量化残差系数209、帧间预测参数、帧内预测参数和/或环路滤波器参数应用熵编码算法或方案(例如,可变长度译码(variable length coding,VLC)方案,上下文自适应VLC(context adaptive VLC,CAVLC)方案、算术译码方案、上下文自适应二进制算术译码(context adaptive binaryarithmetic coding,CABAC)方案、基于语法的上下文自适应二进制算术译码(syntax-based context-adaptive binary arithmetic coding,SBAC)方案、概率区间分割熵(probability interval partitioning entropy,PIPE)译码,或者其它熵编码方法或技术),以获得可由输出端272输出的编码图像数据21,例如以编码码流21的形式输出。编码码流可以发送到视频解码器30,或者进行存档,以便随后由视频解码器30发送或检索。熵编码单元270还可以用于对正在编码的当前视频条带的其它语法元素进行熵编码。

视频编码器20的其它结构变化可以用于编码视频流。例如,对于一些块或帧,基于非变换的编码器20可以在没有变换处理单元206的情况下直接量化残差信号。在另一个实施例中,编码器20可以将量化单元208和反量化单元210组合成单个单元。

在一个实施例中,编码器20可以用于实现以下实施例中描述的帧间预测方法。

应理解,视频编码器20的其它结构变型可以用于编码视频流。例如,对于一些图像块或图像帧,视频编码器20可以直接量化残差信号,而无需变换处理单元206处理,对应地,无需经过逆变换处理单元212处理。或者,对于一些图像块或图像帧,视频编码器20不生成残差数据,对应地,不需要变换处理单元206、量化单元208、反量化单元210和逆变换处理单元212进行处理。或者,视频编码器20可以直接将重建图像块存储为参考块,而无需经过滤波器220处理。或者,视频编码器20中的量化单元208和反量化单元210可以组合在一起。环路滤波器220是可选的,在无损压缩译码的情况下,变换处理单元206、量化单元208、反量化单元210和逆变换处理单元212是可选的。应理解,在不同的应用场景中,帧间预测单元244和帧内预测单元254可以选择性地启用。

图3为一个实施例提供的解码器的示例的示意性/概念框图。参考图3,视频解码器30用于接收例如由编码器20编码的编码图像数据(例如,编码码流)21,以获得解码图像231。在解码过程中,视频解码器30从视频编码器20接收视频数据,例如表示编码视频条带的图像块和相关联的语法元素的编码视频码流。

在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如,求和器314)、缓冲器316、环路滤波器320、解码图像缓冲器330和预测处理单元360。预测处理单元360可包括帧间预测单元344、帧内预测单元354和模式选择单元362。在一些示例中,视频解码器30可以执行与参考图2中的视频编码器20描述的编码通道大体上互逆的解码通道。

熵解码单元304用于对经编码的图像数据21进行熵解码,以例如获得量化系数309和/或经解码的编码参数(图3中未示出),例如,帧间预测参数、帧内预测参数、环路滤波器参数和/或其它语法元素(已解码)中的任一种或全部。熵解码单元304还用于将帧间预测参数、帧内预测参数和/或其它语法元素转发至预测处理单元360。视频解码器30可以在视频条带级和/或视频块级接收语法元素。

反量化单元310可以与反量化单元110具有相同的功能,逆变换处理单元312可以与逆变换处理单元212具有相同的功能,重建单元314可以与重建单元214具有相同的功能,缓冲器316可以与缓冲器216具有相同的功能,环路滤波器320可以与环路滤波器220具有相同的功能,解码图像缓冲器330可以与解码图像缓冲器230具有相同的功能。

预测处理单元360可以包括帧间预测单元344和帧内预测单元354,其中帧间预测单元344在功能上类似于帧间预测单元244,帧内预测单元354在功能上类似于帧内预测单元254。预测处理单元360通常用于进行块预测和/或从编码数据21中获取预测块365,并例如从熵解码单元304接收或获取(显式地或隐式地)预测相关参数和/或所选择的预测模式的信息。

当视频条带编码为帧内编码(I)条带时,预测处理单元360的帧内预测单元354用于:根据所指示的帧内预测模式和来自当前帧或图像的之前解码的块的数据来为当前视频条带的图像块生成预测块365。当视频帧编码为帧间编码(即,B或P)条带时,预测处理单元360的帧间预测单元344(例如,运动补偿单元)用于根据从熵解码单元304接收的运动矢量和其它语法元素生成当前视频条带的视频块的预测块365。对于帧间预测,预测块可以从一个参考图像列表中的参考图像中的一个生成。视频解码器30可以根据DPB 330中存储的参考图像通过默认构建技术构建参考帧列表,列表0和列表1。

预测处理单元360用于通过解析运动矢量和其它语法元素确定当前视频条带的视频块的预测信息,并使用预测信息来生成正在解码的当前视频块的预测块。在本发明的一个示例中,预测处理单元360使用接收到的一些语法元素来确定用于对视频条带的视频块进行编码的预测模式(例如,帧内或帧间预测)、帧间预测条带类型(例如,B条带,P条带或GPB条带)、条带的参考图像列表中的一个或多个的构建信息、条带的每个帧间编码视频块的运动矢量、条带的每个帧间编码视频块的帧间预测状态,以及其它信息,以对当前视频条带中的视频块进行解码。在另一个实施例中,视频解码器30从码流接收的语法元素包括自适应参数集合(adaptive parameter set,APS)、序列参数集合(sequence parameter set,SPS)、图像参数集合(picture parameter set,PPS)或条带头中的一个或多个中的语法元素。

反量化单元310可以用于对码流中提供的并由熵解码单元304解码的量化变换系数进行反量化(即,解量化(de-quantize))。反量化过程可以包括:使用视频编码器20计算的视频条带中的每个视频块的量化参数,以确定应应用的量化程度以及应应用的反量化程度。

逆变换处理单元312用于对变换系数应用逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)以在像素域中生成残差块。

重建单元314(例如,求和器314)用于将逆变换块313(即重建残差块313)添加到预测块365加,以获得像素点域中的重建块315,例如,通过将重建残差块313的像素点值添加到预测块365的像素点值。

环路滤波单元320(在译码环路中或译码环路之后)用于对重建块315进行滤波,以获得滤波块321,以平滑像素过渡或提高视频质量。在一个示例中,环路滤波单元320可以用于执行以下描述的滤波技术的任何组合。环路滤波器单元320表示一个或多个环路滤波器,环路滤波器包括去块滤波器、采样自适应偏移(sample-adaptive offset,SAO)滤波器和其它滤波器,例如双边滤波器,自适应环路滤波器(adaptive loop filter,ALF)、锐化或平滑滤波器或协作滤波器。尽管在图3中环路滤波器单元320示出为环内滤波器,但在其它配置中,环路滤波器单元320可以实现为后环路滤波器。

然后,给定帧或图像中的解码视频块321存储在解码图像缓冲器330中,解码图像缓冲器330存储用于后续运动补偿的参考图像。

解码器30用于例如通过输出端332输出解码图像31,以呈现给用户或由用户观看。

视频解码器30的其它变型可以用于解码压缩码流。例如,解码器30可以在没有环路滤波单元320的情况下生成输出视频流。例如,对于一些块或帧,基于非变换的解码器30可以在没有逆变换处理单元312的情况下直接对残差信号进行反量化。在另一个实施例中,视频解码器30可以将反量化单元310和逆变换处理单元312组合成单个单元。

在一个实施例中,解码器30用于实现以下实施例中描述的帧间预测方法。

应理解,视频解码器30的其它结构变型可以用于解码经编码的视频码流。例如,视频解码器30可以生成输出视频流,而无需经过滤波器320进行处理。或者,对于某些图像块或图像帧,视频解码器30的熵解码单元304不通过解码获得量化系数,对应地,不需要反量化单元310和逆变换处理单元312来进行处理。环路滤波器320是可选的,在无损压缩的情况下,反量化单元310和逆变换处理单元312是可选的。应理解,在不同的应用场景中,帧间预测单元和帧内预测单元可以选择性地启用。

应理解,在编码器20和解码器30上,可以在对某个流程的处理结果进一步处理后输出到下一个过程。例如,在插值滤波、运动矢量推导、环路滤波等过程之后,对对应过程的处理结果进一步进行修正(clip)、移位(shift)等操作。

例如,可以进一步处理从相邻仿射译码块的运动矢量导出的当前图像块的控制点的运动矢量。本文不做限定。例如,将运动矢量的取值范围限定在特定的位深内。假设运动矢量的允许位深为bitDepth,则运动矢量范围为–2^(bitDepth–1)至2^(bitDepth–1)–1,符号“^”表示幂。当bitDepth为16时,取值范围为-32768至32767。当bitDepth为18时,取值范围为-131072至131071。可以通过以下两种方式限制取值范围:

方式1:去除运动矢量的溢出高位:

ux=(vx+2

vx=(ux>=2

uy=(vy+2

vy=(uy>=2

例如,vx的值为–32769,则通过上述公式得到32767。值以2的补码形式存储在计算机中,–32769的二进制补充码为1,01111,1111,1111,1111(17位),计算机通过丢弃高位来处理溢出。因此,vx的值为0111,1111,1111,1111,即32767,与通过公式处理得到的结果一致。

方式2:对运动矢量进行修正,如以下公式所示:

vx=Clip3(-2

vy=Clip3(-2

其中,Clip3定义为表示将z的值修正到[x,y]范围内:

图4为一个实施例提供的视频译码设备的结构示意图。在图4中,视频译码设备400(例如,视频编码设备或视频解码设备)适合于实现本文所描述的实施例。在一个实施例中,视频译码设备400可以是视频解码器(例如,图1A中的解码器30)或视频编码器(例如,图1A中的编码器20)。在另一个实施例中,视频译码设备400可以是图1A中的解码器30或图1A中的编码器20的一个或多个组件。

视频译码设备400包括:用于接收数据的入端口410和接收单元(Rx)420;用于处理数据的处理器、逻辑单元或中央处理器(central processing unit,CPU)430;用于发送数据的发送器单元(Tx)440和出端口450;以及用于存储数据的存储器460。视频译码设备400还可以包括耦合到入端口410、接收器单元420、发送器单元440和出端口450的光电组件和电光(electrical-to-optical,EO)组件,以用于光或电信号的出或入。

处理器430通过硬件和软件实现。处理器430可以实现为一个或多个CPU芯片、核(例如,多核处理器)、FPGA、ASIC和DSP。处理器430与入端口410、接收单元420、发送器单元440、出端口450和存储器460通信。处理器430包括译码模块470(例如,编码模块或解码模块)。译码模块470实现本文所公开的实施例,实现本发明实施例提供的色度块预测方法。例如,译码模块470实现、处理或提供各种译码操作。因此,包括译码模块470大大提高了视频译码设备400的功能,并影响视频译码设备400到不同状态的转换。或者,译码模块470实现为存储在存储器460中并由处理器430执行的指令。

存储器460包括一个或多个磁盘、磁带机和固态硬盘,并且可以用作溢出数据存储设备,以在有选择地执行此类程序时存储程序,以及存储在程序执行期间读取的指令和数据。存储器460可以是易失性和/或非易失性的,并且可以是ROM、RAM、三元内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(staticrandom access memory,SRAM)。

图5是一个实施例提供的装置的简化框图。在图5中,一个实施例提供的装置500可以用作图1A中的源设备12和目的设备14中的任一个或两个。装置500可以实现本发明的技术。换句话说,图5是根据一个实施例的编码设备或解码设备(称为译码设备)的一个实施例的示意性框图。继续参考图5,译码设备500可以包括处理器510、存储器530和总线系统550。处理器与存储器通过总线系统连接,存储器用于存储指令,处理器用于执行存储器中存储的指令。译码设备的存储器存储程序代码。处理器可以调用存储器中存储的程序代码,以执行本文所描述的视频编码或解码方法,特别是各种新的帧间预测方法。为避免重复,本文不再赘述。

在一个实施例中,处理器510可以是中央处理器(central processing unit,CPU),或者处理器510可以是其它通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器,或者处理器可以是任何常规的处理器等。

存储器530可以包括只读存储器(read-only memory,ROM)设备或随机存取存储器(random access memory,RAM)设备。也可以使用任何其它合适类型的存储设备作为存储器530。存储器530可以包括由处理器510通过总线550访问的代码和数据531。存储器530还可以包括操作系统533和应用程序535。应用程序535包括使处理器510执行本文描述的视频编码或解码方法(特别是本文描述的帧间预测方法)的至少一个程序。例如,应用程序535可以包括应用程序1至应用程序N,还包括执行本文所描述的视频编码或解码方法的视频编码或解码应用程序(称为视频译码应用程序)。

总线系统550除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是,为了清楚描述起见,在图中将各种总线都标为总线系统550。

在一个实施例中,译码设备500还可以包括一个或多个输出设备,例如显示器570。在一个示例中,显示器570可以是结合显示器和触摸单元的触摸显示器,该触摸单元可操作地感测触摸输入。显示器570可以通过总线550与处理器510连接。

前向预测是指从前向参考图像集合中为当前译码块选择参考图像,以获得参考块。后向预测是指从后向参考图像集合中为当前译码块选择参考图像,以获得参考块。双向预测是指从前向和后向参考图像集合中分别选择参考图像,以获得参考块。当使用双向预测方法时,当前译码块有两个参考块。每个参考块都需要运动矢量和参考帧索引来指示。然后,根据两个参考块中像素的像素值确定当前块中像素的像素值的预测值。

帧间预测模式可以包括但不限于高级运动矢量预测值(advanced motion vectorpredictor,AMVP)模式和融合模式。

在AMVP模式中,首先通过与当前译码块在空间上或时间上相邻的译码块的运动信息构建候选运动矢量列表,然后,从候选运动矢量列表中确定最优运动矢量作为当前译码块的运动矢量预测值(motion vector predictor,MVP)。率失真成本通过公式(1)计算,其中,J为率失真成本RD Cost,SAD为通过候选运动矢量预测值进行运动估计得到的、预测像素值与原始像素值的绝对差值(sum of absolute difference,SAD)之和,R为码率,λ为拉格朗日乘数。编码端获取候选运动矢量列表中的选定运动矢量预测值的索引值和参考帧索引值,并发送到解码端。此外,在以MVP为中心的邻域中进行运动搜索,以获得当前译码块的实际运动矢量。编码端将MVP与实际运动矢量之间的差值(例如,运动矢量差值)发送到解码端。

J=SAD+λR (1)

在融合模式中,首先通过与当前译码块在空间上或时间上相邻的译码块的运动信息构建候选运动信息列表,然后通过率失真成本从候选运动信息列表中确定最优运动信息,该最优运动信息用作当前译码块的运动信息,然后获得候选运动信息列表中最优运动信息的位置的索引值(表示为融合索引),并将其发送到解码端。可以使用融合索引来获得最优运动信息。当前译码块的时空候选运动信息如图6所示,图6为一个实施例提供的时空候选运动信息的示意性框图。空间候选运动信息来自五个空间相邻的块(A0、A1、B0、B1和B2)。如果相邻块不可用或处于帧内译码模式,则不将该相邻块添加到候选运动信息列表中。当前译码块的时间候选运动信息是根据参考帧和当前帧的图像顺序编号(pictureorder count,POC)对参考帧中对应的位置块的MV进行缩放后获得的。首先确定参考帧中位置为T的块是否可用。如果块不可用,则选择位置为C的块。

运动信息包括参考图像信息和运动矢量中的至少一种。参考图像信息可以包括以下至少一种:单向/双向预测信息、参考图像列表和/或参考图像列表对应的参考图像索引。运动矢量是指水平方向和垂直方向上的位置偏移。

在融合候选列表中,引入了基于历史的基于历史的矢量预测值(History-basedmotion vector predictor(MVP),HMVP)候选集合。HMVP的介绍如下:

一种用于帧间译码的基于历史的矢量预测值(History-based MVP,HMVP)方法:在HMVP中,维护并即时更新HMVP候选表。在对非仿射帧间译码块进行解码之后,通过将相关联的新运动信息作为新的HMVP候选添加到表的最后一个条目中来更新表。约束的FIFO规则用于删除条目和将条目添加到表中。HMVP候选既可以应用于融合候选列表,也可以应用于AMVP候选列表。

在通用视频译码(versatile video coding,VVC)中,非仿射帧间译码块的运动矢量可以通过两种方式进行指示:高级运动矢量预测值(advanced motion vectorpredictor,AMVP)模式或融合模式。对于AMVP模式,指示(signaled)实际运动矢量与运动矢量预测值(MVP)之间的差值、参考索引和参考AMVP候选列表的MVP索引。对于融合模式,指示参考融合候选列表的融合索引,并继承与融合候选相关联的所有运动信息。

AMVP候选列表和融合候选列表都源自时间或空间相邻的译码块。在常规测试条件下,运动矢量预测值的候选列表中最多可以添加六个融合候选和两个AMVP候选。

HMVP候选定义为之前译码块的运动信息。在编码/解码期间维护包含多个HMVP候选的表。当遇到新的条带时,清空该表。每当有帧间译码的非仿射块时,就会将相关联的运动信息作为新的HMVP候选添加到表的最后一个条目中。图7描绘了整个译码流程。

在此基础上,参考图8(图8为一个实施例提供的表更新的示意性框图),表大小S设置为6,表示最多可以在表中添加6个HMVP候选。当在表中插入新的运动候选时,当首先进行冗余检查以发现表中是否存在相同的HMVP时,使用约束的FIFO规则。如果发现表中存在相同的运动矢量,则从表中删除相同的HMVP,然后将所有HMVP候选前移,即索引减1。

HMVP候选可以用于融合候选列表的构建过程。按顺序检查表中最新的几个HMVP候选,并将这几个HMVP候选插入到候选列表中,排在TMVP候选后面。修剪(pruning)应用于HMVP候选的空间或时间融合候选(不包括子块运动候选(即ATMVP))。

为了减少修剪操作的数量,引入了三种简化方式:

(1)L表示待检查的HMPV候选的数量,设置如下:

L = (N <=4) ? M: (8 - N) (1),

其中,N表示表中可用的非子块融合候选的数量,M表示表中可用的HMVP候选的数量。

(2)此外,一旦可用融合候选的总数量达到所指示的最大允许融合候选的数量减1,则终止从HMVP列表构建融合候选列表的过程。

(3)此外,组合双预测融合候选推导的对数量从12个减少到6个。

类似地,HMVP候选也可以用于AMVP候选列表构建过程。在表中插入最后K个HMVP候选的运动矢量,排在TMVP候选后面。仅使用具有与AMVP目标参考图像相同的参考图像的HMVP候选来构建AMVP候选列表。修剪应用于HMVP候选。在此基础上,将K设置为4,AMVP列表大小保持不变,即等于2。

将HMVP候选集合中的HMVP候选填充到融合候选列表中,直到融合候选列表中的候选的数量达到最大候选数量。

将基于历史的MVP(history-based MVP,HMVP)融合候选添加到融合列表中,排在空间MVP和TMVP后面。在该方法中,将之前经译码的块的运动信息存储在表中,用作当前CU的MVP。在编码/解码过程期间维护包含多个HMVP候选的表。当遇到新的CTU行时,重置(清空)该表。每当存在非子块间译码CU时,相关联的运动信息作为新的HMVP候选添加到表的最后一个条目中。

将HMVP表大小S设置为6,表示最多可以在表中添加6个基于历史的MVP(History-based MVP,HMVP)候选。当在表中插入新的运动候选时,使用约束的先进先出(first-in-first-out,FIFO)规则,其中首先应用冗余检查以发现表中是否存在相同的HMVP。如果发现表中存在相同的HMVP,则从表中删除相同的HMVP,然后将所有HMVP候选前移。

HMVP候选可以用于融合候选列表的构建过程。按顺序检查表中最新的几个HMVP候选,并将这几个HMVP候选插入到候选列表中,排在TMVP候选后面。冗余检查应用于HMVP候选的空间或时间融合候选。

为了减少冗余校验操作,引入如下简化方式:

用于生成融合列表的HMPV候选的数量设置为(N<=4)?M:(8–N),其中,N表示融合列表中已有的候选数量,M表示表中可用HMVP候选的数量。

一旦可用融合候选总数量达到最大允许融合候选减1,则终止从HMVP构建融合候选列表的过程。

但是,在融合候选列表中,还引入了成对平均候选。成对平均候选介绍如下:

将当前融合候选列表中的预定义候选对求平均值来生成成对平均候选,预定义对为{(0,1),(0,2),(1,2),(0,3),(1,3),(2,3)},其中,数字表示融合候选列表的融合索引。分别计算每个参考列表的平均运动矢量。在一个列表中,如果两个运动矢量都可用,则即使这两个运动矢量指向不同的参考图像,也对这两个运动矢量求平均值;如果只有一个运动矢量可用,则直接使用该运动矢量;如果没有运动矢量可用,则此列表无效。在HEVC标准中,成对平均候选替代组合候选。表1总结了成对平均候选的复杂度分析。对于其它平均值计算的最坏情况(表1的最后一列),每对需要4次添加和4次移位(L0和L1中的MVx和MVy),每对都需要进行4次参考索引比较(refIdx0有效,refIdx1在L0和L1中有效)。共有6对,需要24次添加、24次移位和24次参考索引比较。HEVC标准中的组合候选针对每对使用2次参考索引比较(refIdx0在L0中有效,refIdx1在L1中有效),共有12对,需要24次参考索引比较。

表1成对平均候选的操作分析

将当前融合候选列表中的预定义候选对求平均值来生成成对平均候选,预定义对为{(0,1),(0,2),(1,2),(0,3),(1,3),(2,3)},其中,数字表示融合候选列表的融合索引。分别计算每个参考列表的平均运动矢量。在一个列表中,如果两个运动矢量都可用,则即使这两个运动矢量指向不同的参考图像,也对这两个运动矢量求平均值;如果只有一个运动矢量可用,则直接使用该运动矢量;如果没有运动矢量可用,则此列表无效。

当添加成对平均融合候选后融合列表未满时,在末尾插入零MVP,直到遇到最大融合候选数。

图9为一个实施例提供的帧间预测方法的示意性流程图。图9的方法使得译码器能够处理大小大于与译码器相关联的预设大小(例如缓冲器大小)的图像块。该方法可以通过硬件、软件或其任何组合来实现。该方法可以由帧间预测单元244或344实现。该方法可以是解码方法,也可以是编码方法。如图9所示,该方法包括以下操作。

操作S901。(译码器(如图1的编码器20或解码器30)或视频译码系统)构建当前图像块的融合候选列表。当前图像块可以是译码块、CU、PU或TU等。当前图像块可以是任何大小和尺寸。

操作S902。(系统)在融合候选列表中的候选运动信息的数量小于融合候选列表的最大候选数量减N的情况下,将HMVP候选运动信息添加到融合候选列表中,其中,N为正整数;

操作S903。(系统)根据融合候选列表获取当前图像块的运动信息可以包括:

操作S904。(系统)根据当前图像块的运动信息确定当前图像块的预测块。

在一个实施例中,N可以为1、2或3。

在一个实施例中,根据融合候选列表获取当前图像块的运动信息可以包括:获取当前图像块的融合索引或所述融合候选列表的融合索引;根据融合候选列表和融合索引获取当前图像块的运动信息。获取当前图像块的融合索引或所述融合候选列表的融合索引可以包括:通过解析码流获取融合索引。根据融合候选列表和融合索引获取当前图像块的运动信息可以包括:通过融合索引从融合候选列表中获取运动信息。融合索引可以用于指示运动信息在融合候选列表中的位置。

在一个实施例中,根据融合候选列表获取当前图像块的运动信息可以包括:使用率失真成本从融合候选列表中确定运动信息。该方法还可以包括:将融合索引编码到码流中的融合候选列表。

在一个实施例中,预测块(predicted block)可以称为预测块(predictionblock)。

在一个实施例中,当前图像块可以为译码块、译码单元或预测单元。

在一个实施例中,融合候选列表的最大候选数量可以称为融合运动矢量预测值(motion vector predictor,MVP)候选的最大数量。

在一个实施例中,HMVP候选运动信息可以称为基于历史的融合候选或基于历史的MVP(history-based MVP,HMVP)融合候选。

在一个实施例中,该方法还包括:在融合候选列表中的候选运动信息的数量等于融合候选列表的最大候选数量减N的情况下,将成对平均的候选运动信息添加到融合候选列表中。

在一个实施例中,成对平均候选运动信息是通过对融合候选列表中预定义的一对MVP候选求平均值生成的。

在一个实施例中,成对平均候选运动信息可以称为成对平均候选。

在一个实施例中,在融合候选列表中,可用候选以预定候选扫描顺序导入到列表中。在将HMVP候选集合中的一个HMVP候选导入到融合列表中之后,当融合候选列表未达到融合列表的最大候选数量减N(N≥1)时,继续将HMVP候选集合中的HMVP候选导入融合列表中。

在另一个实施例中,在融合候选列表中,可用候选以预定候选扫描顺序导入到列表中。在将HMVP候选集合中的一个HMVP候选导入到融合列表中之后,当融合候选列表未达到融合列表的最大候选数量减N(N≥1)时,继续将HMVP候选集合中的HMVP候选导入融合列表中。当融合列表中的候选数量为最大候选数量减N(N≥1)时,将成对平均候选导入融合列表中。

根据与上述方法相同的发明构思,本发明实施例还提供一种帧间预测装置,该帧间预测装置包括构建单元和预测块确定单元。需要说明的是,构建单元和预测块确定单元可以应用于编码端或解码端的帧间预测过程。具体地,在编码端,这些单元可以应用于上述编码器20的预测处理单元260中的帧间预测单元244;在解码端,这些单元可以应用于上述解码器30的预测处理单元360中的帧间预测单元344。

还需要说明的是,运动信息确定单元和预测块确定单元的具体内容可以参考上述包含发明内容的内容的描述。为了使本发明简洁,本文不再赘述。

在一个实施例中,构建单元和预测单元可以通过硬件、软件或其任何组合来实现。

在一个实施例中,构建单元用于:构建当前图像块的融合候选列表;在融合候选列表中的候选运动信息的数量小于融合候选列表的最大候选数量减N的情况下,将HMVP候选运动信息添加到融合候选列表中,其中,N为正整数;预测单元用于:获取当前图像块的融合索引;根据融合候选列表和融合索引获取当前图像块的运动信息;根据当前图像块的运动信息确定当前图像块的预测块。

还需要说明的是,运动信息确定单元和预测块确定单元的具体内容可以参考上述包含发明内容的内容的描述。为了使本说明书简洁,本文不再赘述。

下文对上述实施例中所示的编码方法和解码方法的应用以及使用这些方法的系统进行说明。

图10为用于实现内容分发服务的内容供应系统3100的框图。该内容供应系统3100包括捕获设备3102、终端设备3106,并且可选地包括显示器3126。捕获设备3102与终端设备3106通过通信链路3104进行通信。该通信链路可以包括上述通信信道13。通信链路3104包括但不限于WIFI、以太网、电缆、无线(3G/4G/5G)、USB或者其任何组合等。

捕获设备3102生成数据,并且可以通过如上述实施例所示的编码方法对数据进行编码。或者,捕获设备3102可以将数据分发给流服务器(图中未示出),服务器对数据进行编码并将经编码的数据发送给终端设备3106。捕获设备3102包括但不限于摄像头、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、PDA、车载设备,或它们的任何组合等。例如,捕获设备3102可以包括如上所述的源设备12。当数据包括视频时,捕获设备3102中包括的视频编码器20实际上可以执行视频编码处理。当数据包括音频(即,语音)时,捕获设备3102中包括的音频编码器实际上可以执行音频编码处理。对于一些实际场景,捕获设备3102通过将经编码的视频和音频数据复用在一起来进行分发。对于其它实用场景,例如在视频会议系统中,不复用经编码的音频数据和经编码的视频数据。捕获设备3102将编码音频数据和编码视频数据分别分发给终端设备3106。

在内容提供系统3100中,终端设备310接收并再现编码数据。终端设备3106可以是具有数据接收和恢复能力的设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络录像机(network video recorder,NVR)/数字录像机(digital videorecorder,DVR)3112、TV 3114、机顶盒(set top box,STB)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personal digital assistant,PDA)3122、车载设备3124或其任何组合,或者能够解码上述编码数据的设备。例如,终端设备3106可以包括如上所述的目的设备14。当经编码的数据包括视频时,终端设备中包括的视频解码器30优先进行视频解码。当经编码的数据包括音频时,终端设备中包括的音频解码器优先进行音频解码处理。

对于带有显示器的终端设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络录像机(network video recorder,NVR)/数字录像机(digital videorecorder,DVR)3112、TV 3114、个人数字助理(personal digital assistant,PDA)3122或车载设备3124,终端设备可以将经解码的数据馈送到该终端设备的显示器。对于没有显示器的终端设备(例如STB 3116、视频会议系统3118或视频监控系统3120),连接外部显示器3126以接收并显示解码数据。

该系统中的每个设备在进行编码或解码时,可以使用如上述实施例中所示的图像编码设备或图像解码设备。

图11为终端设备3106的一个示例的结构的图。在终端设备3106从捕获设备3102接收流之后,协议处理单元(protocol proceeding unit)3202分析流的传输协议。协议包括但不限于实时流协议(Real Time Streaming Protocol,RTSP)、超文本传输协议(HyperText Transfer Protocol,HTTP)、HTTP直播协议(HTTP Live streaming protocol,HLS)、MPEG-DASH、实时传输协议(Real-time Transport protocol,RTP)、实时消息协议(RealTime Messaging Protocol,RTMP)或其任何组合等。

协议处理单元3202对流进行处理后,生成流文件。将文件输出到解复用单元3204。解复用单元3204可以将复用数据分离为经编码的音频数据和经编码的视频数据。如上所述,对于一些实际场景,例如在视频会议系统中,不复用经编码的音频数据和经编码的视频数据。在这种情况下,将经编码的数据发送到视频解码器3206和音频解码器3208,无需经过解复用单元3204。

通过解复用处理,生成视频基本流(elementary stream,ES)、音频ES和可选的字幕。视频解码器3206包括如上述实施例中所说明的视频解码器30,通过如上述实施例中所示的解码方法对视频ES进行解码以生成视频帧,并将该数据馈送到同步单元3212。音频解码器3208,解码音频ES以生成音频帧,并将该数据馈送到同步单元3212。或者,在将视频帧馈送到同步单元3212之前,可以将该视频帧存储在缓冲器(图11中未示出)中。类似地,在将音频帧馈送到同步单元3212之前,可以将该音频帧存储在缓冲器(图11中未示出)中。

同步单元3212同步视频帧和音频帧,并将视频/音频提供给视频/音频显示器3214。例如,同步单元3212同步视频和音频信息的呈现。可以使用关于经译码的音频和视频数据的表示的时间戳和关于数据流本身的传递的时间戳在语法中对信息进行译码。

如果流中包括字幕,则字幕解码器3210解码字幕,并使字幕与视频帧和音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。

本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以结合到其它系统,例如汽车系统。

本领域技术人员可以理解,结合本文所公开和描述的各种说明性逻辑块、模块和算法步骤所描述的功能可以通过硬件、软件、固件或其任何组合实现。如果通过软件实现,则结合各种说明性逻辑块、模块和步骤所描述的功能可以作为一个或多个指令或代码存储在计算机可读介质中或通过计算机可读介质发送,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,对应数据存储介质等有形介质,或包括便于将计算机程序从一个地方传输到另一个地方的任何介质的通信介质(例如通信协议)。在这种方式中,计算机可读介质通常可以对应(1)非瞬时性的有形计算机可读存储介质或(2)通信介质,如信号或载波。数据存储介质可以是任何可用介质,可由一个或多个计算机或一个或多个处理器访问以检索用于实现本文所描述的技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。

作为示例而非限制,此类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、闪存,或可以用于存储以指令或数据结构形式的所需程序代码并且可由计算机访问的任何其它介质。此外,任何连接都可以称为计算机可读介质。例如,如果指令是从网站、服务器或其它远程源通过同轴电缆、光纤电缆、双绞线、数字用户线(digital subscriber line,DSL)或无线技术(例如红外、无线电、微波等)发送的,则介质的定义包括同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如红外、无线电和微波等)。但是,应理解,计算机可读存储介质和数据存储介质实际上是指非瞬时有形存储介质,不包括连接、载波、信号或其它瞬时介质。本文使用的磁盘和光盘包括压缩光盘(compact disc,CD)、激光光盘、光盘、数字通用光盘(digital versatile disc,DVD)和蓝光光盘。磁盘通常磁性地再现数据,而光盘则用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。

指令可以由一个或多个处理器执行,例如一个或多个数字信号处理器(digitalsignal processor,DSP)、通用微处理器、专用集成电路(application-specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或其它等效的集成或分立逻辑电路。因此,本文使用的术语“处理器”可以指任何上述结构或适于实现本文所描述的技术的任何其它结构。此外,在一些方面中,结合本文描述的各种说明性逻辑块、模块和步骤描述的功能可以在用于编码和解码的专用硬件和/或软件模块中提供,或者可以结合到组合编解码器中。此外,这些技术可以在一个或多个电路或逻辑元件中完全实现。

本发明的技术可以在多种装置或设备中实现,包括无线手持电话、集成电路(integrated circuit,IC)或一组IC(例如芯片组)。本文描述各种组件、模块或单元以强调用于执行所公开技术的装置的功能方面,但这些组件、模块或单元不一定通过不同的硬件单元实现。实际上,如上所述,各种单元可以结合合适的软件和/或固件而组合成编解码器硬件单元,或者由互操作硬件单元(包括如上所述的一个或多个处理器)提供。

在上述实施例中,对各个实施例的描述的重点不同。实施例中未详细描述的部分可以参考其它实施例中的相关描述。

以上描述仅为本发明具体实现方式的示例,并不用于限制本发明的保护范围。在本文所公开的技术范围内,本领域技术人员可以想到的变化或替换都应涵盖在本发明的保护范围内。因此,本发明的保护范围应以权利要求的保护范围为准。

技术分类

06120116186888