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

视频编码方法、装置、计算机设备及存储介质

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



引用并入

本申请要求于2019年8月28日提交的美国申请第16/554,391号、发明名称为“视频编解码方法及装置”的优先权,于2018年10月5日提交的、申请号为62/742,040、发明名称为"在帧内块复制中具有发信号标识的偏移的块矢量预测"的美国临时申请的优先权,于2018年12月26日提交的、申请号为62/785,047、发明名称为"帧内块复制中块矢量裁剪"的美国临时申请的优先权,以及其全部内容通过引用并入本申请中。

技术领域

本申请涉及视频编解码技术,尤其涉及一种视频编码、装置、计算机设备及存储介质。

背景技术

本文所提供的背景描述旨在整体呈现本申请的背景。在背景技术部分以及本说明书的各个方面中所描述的目前已署名的发明人的工作所进行的程度,并不表明其在本申请提交时作为现有技术,且从未明示或暗示其被承认为本申请的现有技术。

使用带有运动补偿的帧内预测,可以执行视频编码和解码。未压缩的数字视频可包括一系列图片,每个图片具有例如1920×1080亮度样本及相关色度样本的空间维度。所述系列图片具有固定的或可变的图片速率(也非正式地称为帧率),例如每秒60个图片或60Hz。未压缩的视频具有非常大的比特率要求。例如,每个样本8比特的1080p604:2:0的视频(1920x1080亮度样本分辨率,60Hz帧率)要求接近1.5Gbit/s带宽。一小时这样的视频就需要超过600GB的存储空间。

视频编码和解码的一个目的,是通过压缩减少输入视频信号的冗余信息。视频压缩可以帮助降低对上述带宽或存储空间的要求,在某些情况下可降低两个或更多数量级。无损和有损压缩,以及两者的组合均可采用。无损压缩是指从压缩的原始信号中重建原始信号精确副本的技术。当使用有损压缩时,重建信号可能与原始信号不完全相同,但是原始信号和重建信号之间的失真足够小,使得重建信号可用于预期应用。有损压缩广泛应用于视频。容许的失真量取决于应用。例如,相比于电视应用的用户,某些消费流媒体应用的用户可以容忍更高的失真。可实现的压缩比反映出:较高的允许/容许失真可产生较高的压缩比。

运动补偿可以是一种有损压缩技术,且可涉及如下技术:来自先前重建的图片或重建图片一部分(参考图片)的样本数据块在空间上按运动矢量(下文称为MV)指示的方向移位后,用于新重建的图片或图片部分的预测。在某些情况下,参考图片可与当前正在重建的图片相同。MV可具有两个维度X和Y,或者三个维度,其中第三个维度表示使用中的参考图片(后者间接地可为时间维度)。

在一些视频压缩技术中,应用于某个样本数据区域的MV可根据其它MV来预测,例如根据与正在重建的区域空间相邻的另一个样本数据区域相关的、且按解码顺序在该MV前面的那些MV。这样做可以大大减少编码MV所需的数据量,从而消除冗余信息并增加压缩量。MV预测可以有效地进行,例如,当对从相机导出的输入视频信号(称为自然视频)进行编码时,存在一种统计上的可能性,即面积大于单个MV适用区域的区域,会朝着类似的方向移动,因此,在某些情况下,可以用邻近区域的MV导出的相似运动矢量进行预测。这导致针对给定区域发现的MV与根据周围MV预测的MV相似或相同,并且在熵编码之后,又可以用比直接编码MV时使用的比特数更少的比特数来表示。在某些情况下,MV预测可以是对从原始信号(即样本流)导出的信号(即MV)进行无损压缩的示例。在其它情况下,MV预测本身可能是有损的,例如由于根据几个周围MV计算预测值时产生的取整误差。

但是,在进行图片块内补偿时,由于存储器的存储空间有限,需要对参考区域进行某些约束,来保证参考块是可用的并且已重建,这样会减少可用参考块的数量,从而降低了补偿的效率。

发明内容

本申请的各实施例提供了视频编码方法、装置、计算机设备及存储介质。

本申请实施例提供了一种视频编码方法,包括:

确定当前图片中当前块的预测信息,所述预测信息指示用于重建所述当前块的预测模式,所述预测模式为帧间预测模式或者帧内块复制IBC模式;

从候选列表中确定基矢量,所述候选列表包括用于所述帧间预测模式的运动矢量预测候选和用于所述IBC模式的块矢量候选,对于所述帧间预测模式,当确定第N个候选基矢量时,排除对应所述IBC模式的至少一个块矢量候选,使得所述候选列表中仅包括对应于所述帧间预测模式的至少一个运动矢量预测候选,其中,N为正整数;

基于偏移信息确定偏移矢量;

基于所述基矢量和所述偏移矢量,确定所述当前块的矢量,所述当前块的所述矢量用于指示所述当前块的参考块,当所述预测模式为所述IBC模式时,所述参考块位于当前图片中并且所述当前块的所述矢量为块矢量,当所述预测模式为所述帧间预测模式时,所述参考块位于参考图片中,并且所述当前块的所述矢量为运动矢量;

根据所述当前块的所述矢量,重建所述当前块中的至少一个样本。

本申请实施例还提供了一种视频编码方法,包括:

基于源编码器,对输入图片进行编码,生成已编码的视频比特流;

基于本地解码器,执行以下处理:

从所述已编码的视频比特流中解码得到当前图片中当前块的预测信息,所述预测信息指示用于重建所述当前块的预测模式,所述预测模式为帧间预测模式或者帧内块复制IBC模式;

从候选列表中确定基矢量,所述候选列表包括用于所述帧间预测模式的运动矢量预测候选和用于所述IBC模式的块矢量候选,对于所述帧间预测模式,当确定第N个候选基矢量时,排除对应所述IBC模式的至少一个块矢量候选,使得所述候选列表中仅包括对应于所述帧间预测模式的至少一个运动矢量预测候选,其中,N为正整数;

基于偏移信息确定偏移矢量;

基于所述基矢量和所述偏移矢量,确定所述当前块的矢量,所述当前块的所述矢量用于指示所述当前块的参考块,当所述预测模式为所述IBC模式时,所述参考块位于当前图片中并且所述当前块的所述矢量为块矢量,当所述预测模式为所述帧间预测模式时,所述参考块位于参考图片中,并且所述当前块的所述矢量为运动矢量;

根据所述当前块的所述矢量,重建所述当前块中的至少一个样本,并将重建的样本流输入到参考图片存储器;

基于预测器,从所述参考图片存储器中确定所述输入图片的参考图片;

基于编码引擎,对所述输入图片的像素块与所确定的参考图片的像素块之间的差异进行编码;及,

基于熵编码器,将编码后的符号转换成已编码视频序列。

本申请实施例还提供了一种视频编码装置,包括:

第一确定模块,用于确定当前图片中当前块的预测信息,所述预测信息指示用于重建所述当前块的预测模式,所述预测模式为帧间预测模式或者帧内块复制IBC模式;

第二确定模块,用于从候选列表中确定基矢量,所述候选列表包括用于所述帧间预测模式的运动矢量预测候选和用于所述IBC模式的块矢量候选,对于所述帧间预测模式,当确定第N个候选基矢量时,排除对应所述IBC模式的至少一个块矢量候选,使得所述候选列表中仅包括对应于所述帧间预测模式的至少一个运动矢量预测候选,其中,N为正整数;

第三确定模块,用于基于偏移信息确定偏移矢量;

第四确定模块,用于基于所述基矢量和所述偏移矢量,确定所述当前块的矢量,所述当前块的所述矢量用于指示所述当前块的参考块,当所述预测模式为所述IBC模式时,所述参考块位于当前图片中并且所述当前块的所述矢量为块矢量,当所述预测模式为所述帧间预测模式时,所述参考块位于参考图片中,并且所述当前块的所述矢量为运动矢量;及,

重建模块,用于根据所述当前块的所述矢量,重建所述当前块中的至少一个样本。

本申请实施例还提供一种计算机设备,包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现如上所述的视频编码方法。

本申请实施例还提供一种非暂时性计算机可读介质,其上存储有指令,当所述指令由计算机执行视频编码时,使得所述计算机执行如上所述的视频编码方法。

本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如上所述的视频编码方法。

由上述技术方案可见,本发明实施例提供的方法,通过偏移信息来确定偏移矢量,基于基矢量和偏移矢量确定当前块的矢量,来指示当前块的参考块,避开了对参考区域的约束所产生的限制,使得预测模式可以在帧内块复制模式和帧间预测模式之间进行变换,因此,提高了视频编码算法的计算效率。

附图说明

根据以下详细描述和附图,所公开的主题的其他特征、性质和各种优点将进一步明确,其中:

图1示出了一个示例中的当前块及其周围的空间合并候选的示意图;

图2示出了根据本申请一实施例的通信系统的简化框图的示意图;

图3示出了根据本申请另一实施例的通信系统的简化框图的示意图;

图4示出了根据本申请一实施例的解码器的简化框图的示意图;

图5示出了根据本申请一实施例的编码器的简化框图的示意图;

图6示出了根据本申请另一实施例的编码器的框图;

图7示出了根据本申请另一实施例的解码器的框图;

图8示出了根据本申请一实施例的帧内块复制的示例;

图9示出了根据本申请一实施例的UMVE示例;

图10示出了根据本申请另一实施例的UMVE示例;

图11A-11F示出了根据本申请一实施例的应用于基础预测值的多组偏移方向的示例;

图12示出了根据本申请一实施例的概述示例性过程的流程图;

图13示出了根据本申请另一实施例的概述示例性过程的流程图;以及

图14示出了根据实施例的计算机设备的示意图。

具体实施方式

H.265/HEVC(ITU-T H.265建议书,“高效视频编解码(High Efficiency VideoCoding)”,2016年12月)中描述了各种MV预测机制。在H.265提供的多种MV预测机制中,本申请描述的是下文称作“空间合并”的技术。

请参考图1,当前块(101)包括在运动搜索过程期间已由编码器发现的样本,根据已产生空间偏移的相同大小的先前块,可预测所述样本。另外,可从一个或至少两个参考图片相关联的元数据中导出所述MV,而非对MV直接编码。例如,使用关联于A0、A1和B0、B1、B2(分别对应102到106)五个周围样本中的任一样本的MV,(按解码次序)从最近的参考图片的元数据中导出所述MV。在H.265中,MV预测可使用相邻块也正在使用的相同参考图片的预测值。

图2是根据本申请公开的实施例的通信系统(200)的简化框图。通信系统(200)包括至少两个终端装置,所述终端装置可通过例如网络(250)彼此通信。举例来说,通信系统(200)包括通过网络(250)互连的第一终端装置(210)和第二终端装置(220)。在图2的实施例中,第一终端装置(210)和第二终端装置(220)执行单向数据传输。举例来说,第一终端装置(210)可对视频数据(例如由终端装置(210)采集的视频图片流)进行编码以通过网络(250)传输到第二端装置(220)。已编码的视频数据以一个或至少两个已编码视频码流形式传输。第二终端装置(220)可从网络(250)接收已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。单向数据传输在媒体服务等应用中是较常见的。

在另一实施例中,通信系统(200)包括执行已编码视频数据的双向传输的第三终端装置(230)和第四终端装置(240),所述双向传输可例如在视频会议期间发生。对于双向数据传输,第三终端装置(230)和第四终端装置(240)中的每个终端装置可对视频数据(例如由终端装置采集的视频图片流)进行编码,以通过网络(250)传输到第三终端装置(230)和第四终端装置(240)中的另一终端装置。第三终端装置(230)和第四终端装置(240)中的每个终端装置还可接收由第三终端装置(230)和第四终端装置(240)中的另一终端装置传输的已编码视频数据,且可对所述已编码视频数据进行解码以恢复视频数据,且可根据恢复的视频数据在可访问的显示装置上显示视频图片。

在图2的实施例中,第一终端装置(210)、第二终端装置(220)、第三终端装置(230)和第四终端装置(240)可为服务器、个人计算机和智能电话,但本申请公开的原理可不限于此。本申请公开的实施例适用于膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络(250)表示在第一终端装置(210)、第二终端装置(220)、第三终端装置(230)和第四终端装置(240)之间传送已编码视频数据的任何数目的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(250)可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本申请的目的,除非在下文中有所解释,否则网络(250)的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。

作为实施例,图3示出视频编码器和视频解码器在流式传输环境中的放置方式。本申请所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。

流式传输系统可包括采集子系统(313),所述采集子系统可包括数码相机等视频源(301),所述视频源创建未压缩的视频图片流(302)。在实施例中,视频图片流(302)包括由数码相机拍摄的样本。相较于已编码的视频数据(304)(或已编码的视频码流),视频图片流(302)被描绘为粗线以强调高数据量的视频图片流,视频图片流(302)可由电子装置(320)处理,所述电子装置(320)包括耦接到视频源(301)的视频编码器(303)。视频编码器(303)可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于视频图片流(302),已编码的视频数据(304)(或已编码的视频码流(304))被描绘为细线以强调较低数据量的已编码的视频数据(304)(或已编码的视频码流(304)),其可存储在流式传输服务器(305)上以供将来使用。一个或至少两个流式传输客户端子系统,例如图3中的客户端子系统(306)和客户端子系统(308),可访问流式传输服务器(305)以检索已编码的视频数据(304)的副本(307)和副本(309)。客户端子系统(306)可包括例如电子装置(330)中的视频解码器(310)。视频解码器(310)对已编码的视频数据的传入副本(307)进行解码,且产生可在显示器(312)(例如显示屏)或另一呈现装置(未描绘)上呈现的输出视频图片流(311)。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频数据(304)、视频数据(307)和视频数据(309)(例如视频码流)进行编码。该些标准的实施例包括ITU-T H.265。在实施例中,正在开发的视频编码标准非正式地称为下一代视频编码(Versatile Video Coding,VVC),本申请可用于VVC标准的上下文中。

应注意,电子装置(320)和电子装置(330)可包括其它组件(未示出)。举例来说,电子装置(320)可包括视频解码器(未示出),且电子装置(330)还可包括视频编码器(未示出)。

图4是根据本申请公开的实施例的视频解码器(410)的框图。视频解码器(410)可设置在电子装置(430)中。电子装置(430)可包括接收器(431)(例如接收电路)。视频解码器(410)可用于代替图3实施例中的视频解码器(310)。

接收器(431)可接收将由视频解码器(410)解码的一个或至少两个已编码视频序列;在同一实施例或另一实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列。可从信道(401)接收已编码视频序列,所述信道可以是通向存储已编码的视频数据的存储装置的硬件/软件链路。接收器(431)可接收已编码的视频数据以及其它数据,例如,可转发到它们各自的使用实体(未标示)的已编码音频数据和/或辅助数据流。接收器(431)可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器(415)可耦接在接收器(431)与熵解码器/解析器(420)(此后称为“解析器(420)”)之间。在某些应用中,缓冲存储器(415)是视频解码器(410)的一部分。在其它情况下,所述缓冲存储器(415)可设置在视频解码器(410)外部(未标示)。而在其它情况下,视频解码器(410)的外部设置缓冲存储器(未标示)以例如防止网络抖动,且在视频解码器(410)的内部可配置另一缓冲存储器(415)以例如处理播出定时。而当接收器(431)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,也可能不需要配置缓冲存储器(415),或可以将所述缓冲存储器做得较小。当然,为了在互联网等业务分组网络上使用,也可能需要缓冲存储器(415),所述缓冲存储器可相对较大且可具有自适应性大小,且可至少部分地实施于操作系统或视频解码器(410)外部的类似元件(未标示)中。

视频解码器(410)可包括解析器(420)以根据已编码视频序列重建符号(421)。这些符号的类别包括用于管理视频解码器(410)的操作的信息,以及用以控制显示装置(412)(例如,显示屏)等显示装置的潜在信息,所述显示装置不是电子装置(430)的组成部分,但可耦接到电子装置(430),如图4中所示。用于显示装置的控制信息可以是辅助增强信息(Supplemental Enhancement Information,SEI消息)或视频可用性信息(VideoUsability Information,VUI)的参数集片段(未标示)。解析器(420)可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器(420)可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(Group of Pictures,GOP)、图片、图块、分片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。解析器(420)还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。

解析器(420)可对从缓冲存储器(415)接收的视频序列执行熵解码/解析操作,从而创建符号(421)。

取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号(421)的重建可涉及至少两个不同单元。涉及哪些单元以及涉及方式可由解析器(420)从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描述解析器(420)与下文的至少两个单元之间的此类子群控制信息流。

除已经提及的功能块以外,视频解码器(410)可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互并且可以彼此集成。然而,出于描述所公开主题的目的,概念上细分成下文的功能单元是适当的。

第一单元是缩放器/逆变换单元(451)。缩放器/逆变换单元(451)从解析器(420)接收作为符号(421)的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(451)可输出包括样本值的块,所述样本值可输入到聚合器(455)中。

在一些情况下,缩放器/逆变换单元(451)的输出样本可属于帧内编码块;即:不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元(452)提供。在一些情况下,帧内图片预测单元(452)采用从当前图片缓冲器(458)提取的已重建信息生成大小和形状与正在重建的块相同的周围块。举例来说,当前图片缓冲器(458)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些情况下,聚合器(455)基于每个样本,将帧内预测单元(452)生成的预测信息添加到由缩放器/逆变换单元(451)提供的输出样本信息中。

在其它情况下,缩放器/逆变换单元(451)的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元(453)可访问参考图片存储器(457)以提取用于预测的样本。在根据符号(421)对提取的样本进行运动补偿之后,这些样本可由聚合器(455)添加到缩放器/逆变换单元(451)的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(453)从参考图片存储器(457)内的地址获取预测样本可受到运动矢量控制,且所述运动矢量以所述符号(421)的形式而供运动补偿预测单元(453)使用,所述符号(421)例如是包括X、Y和参考图片分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器(457)提取的样本值的内插、运动矢量预测机制等等。

聚合器(455)的输出样本可在环路滤波器单元(456)中被各种环路滤波技术采用。视频压缩技术可包括环路内滤波器技术,所述环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频码流)中的参数,且所述参数作为来自解析器(420)的符号(421)可用于环路滤波器单元(456)。然而,在其他实施例中,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。

环路滤波器单元(456)的输出可以是样本流,所述样本流可输出到显示装置(412)以及存储在参考图片存储器(457),以用于后续的帧间图片预测。

一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。举例来说,一旦对应于当前图片的已编码图片被完全重建,且已编码图片(通过例如解析器(420))被识别为参考图片,则当前图片缓冲器(458)可变为参考图片存储器(457)的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。

视频解码器(410)可根据例如ITU-T H.265标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体地说,配置文件可从视频压缩技术或标准中可用的所有工具中选择某些工具作为在所述配置文件下可供使用的仅有工具。对于合规性,还要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(Hypothetical ReferenceDecoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。

在实施例中,接收器(431)可连同已编码视频一起接收附加(冗余)数据。所述附加数据可以是已编码视频序列的一部分。所述附加数据可由视频解码器(410)用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余分片、冗余图片、前向纠错码等形式。

图5是根据本申请公开的实施例的视频编码器(503)的框图。视频编码器(503)设置于电子装置(520)中。电子装置(520)包括传输器(540)(例如传输电路)。视频编码器(503)可用于代替图3实施例中的视频编码器(303)。

视频编码器(503)可从视频源(501)(并非图5实施例中的电子装置(520)的一部分)接收视频样本,所述视频源可采集将由视频编码器(503)编码的视频图像。在另一实施例中,视频源(501)是电子装置(520)的一部分。

视频源(501)可提供将由视频编码器(503)编码的呈数字视频样本流形式的源视频序列,所述数字视频样本流可具有任何合适位深度(例如:8位、10位、12位……)、任何色彩空间(例如BT.601Y CrCB、RGB……)和任何合适取样结构(例如Y CrCb 4:2:0、Y CrCb 4:4:4)。在媒体服务系统中,视频源(501)可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源(501)可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为至少两个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括一个或至少两个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。

根据实施例,视频编码器(503)可实时或在由应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列(543)。施行适当的编码速度是控制器(550)的一个功能。在一些实施例中,控制器(550)控制如下文所描述的其它功能单元且在功能上耦接到这些单元。为了简洁起见,图中未标示耦接。由控制器(550)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group of pictures,GOP)布局,最大运动矢量搜索范围等。控制器(550)可用于具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(503)。

在一些实施例中,视频编码器(503)在编码环路中进行操作。作为简单的描述,在实施例中,编码环路可包括源编码器(530)(例如,负责基于待编码的输入图片和参考图片创建符号,例如符号流)和嵌入于视频编码器(503)中的(本地)解码器(533)。解码器(533)以类似于(远程)解码器创建样本数据的方式重建符号以创建样本数据(因为在本申请所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(534)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(534)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)也用于一些相关技术。

“本地”解码器(533)的操作可与例如已在上文结合图4详细描述视频解码器(410)的“远程”解码器相同。然而,另外简要参考图4,当符号可用且熵编码器(545)和解析器(420)能够无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器(415)和解析器(420)在内的视频解码器(410)的熵解码部分,可能无法完全在本地解码器(533)中实施。

此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于此原因,本申请侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。

在操作期间,在一些实施例中,源编码器(530)可执行运动补偿预测编码。参考来自视频序列中被指定为“参考图片”的一个或至少两个先前已编码图片,所述运动补偿预测编码对输入图片进行预测性编码。以此方式,编码引擎(532)对输入图片的像素块与参考图片的像素块之间的差异进行编码,所述参考图片可被选作所述输入图片的预测参考。

本地视频解码器(533)可基于源编码器(530)创建的符号,对可指定为参考图片的图片的已编码视频数据进行解码。编码引擎(532)的操作可为有损过程。当已编码视频数据可在视频解码器(图5中未示)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(533)复制解码过程,所述解码过程可由视频解码器对参考图片执行,且可使重建的参考图片存储在参考图片高速缓存(534)中。以此方式,视频编码器(503)可在本地存储重建的参考图片的副本,所述副本与将由远端视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。

预测器(535)可针对编码引擎(532)执行预测搜索。即,对于将要编码的新图片,预测器(535)可在参考图片存储器(534)中搜索可作为所述新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(535)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器(535)获得的搜索结果,可确定输入图片可具有从参考图片存储器(534)中存储的至少两个参考图片取得的预测参考。

控制器(550)可管理源编码器(530)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。

可在熵编码器(545)中对所有上述功能单元的输出进行熵编码。熵编码器(545)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。

传输器(540)可缓冲由熵编码器(545)创建的已编码视频序列,从而为通过通信信道(560)进行传输做准备,所述通信信道可以是通向将存储已编码的视频数据的存储设备的硬件/软件链路。传输器(540)可将来自视频编码器(503)的已编码视频数据与要传输的其它数据合并,所述其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。

控制器(550)可管理视频编码器(503)的操作。在编码期间,控制器(550)可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种图片类型:

帧内图片(I图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。所属领域的技术人员了解I图片的变体及其相应的应用和特征。

预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。

双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,至少两个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。

源图片通常可在空间上细分成至少两个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定所述其它块。举例来说,I图片的块可进行非预测编码,或所述块可参考同一图片的已编码的块来进行预测编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。

视频编码器(503)可根据例如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(503)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。

在实施例中,传输器(540)可在传输已编码的视频时传输附加数据。源编码器(530)可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、冗余图片和分片等其它形式的冗余数据、SEI消息、VUI参数集片段等。

采集到的视频可作为呈时间序列的至少两个源图片(视频图片)。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在实施例中,将正在编码/解码的特定图片分割成块,正在编码/解码的特定图片被称作当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称作运动矢量的矢量对当前图片中的块进行编码。所述运动矢量指向参考图片中的参考块,且在使用至少两个参考图片的情况下,所述运动矢量可具有识别参考图片的第三维度。

在一些实施例中,双向预测技术可用于帧间图片预测中。根据双向预测技术,使用两个参考图片,例如按解码次序都在视频中的当前图片之前(但按显示次序可能分别是过去和将来)第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。具体来说,可通过第一参考块和第二参考块的组合来预测所述块。

此外,合并模式技术可用于帧间图片预测中以改善编码效率。

根据本申请公开的一些实施例,帧间图片预测和帧内图片预测等预测的执行以块为单位。举例来说,根据HEVC标准,将视频图片序列中的图片分割成编码树单元(codingtree unit,CTU)以用于压缩,图片中的CTU具有相同大小,例如64×64像素、32×32像素或16×16像素。一般来说,CTU包括三个编码树块(coding tree block,CTB),所述三个编码树块是一个亮度CTB和两个色度CTB。更进一步的,还可将每个CTU以四叉树拆分为一个或至少两个编码单元(coding unit,CU)。举例来说,可将64×64像素的CTU拆分为一个64×64像素的CU,或4个32×32像素的CU,或16个16×16像素的CU。在实施例中,分析每个CU以确定用于CU的预测类型,例如帧间预测类型或帧内预测类型。此外,取决于时间和/或空间可预测性,将CU拆分为一个或至少两个预测单元(prediction unit,PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。以亮度预测块作为预测块为例,预测块包括像素值(例如,亮度值)的矩阵,例如8×8像素、16×16像素、8×16像素、16×8像素等等。

图6是根据本申请公开的另一实施例的视频编码器(603)的图。视频编码器(603)用于接收视频图片序列中的当前视频图片内的样本值的处理块(例如预测块),且将所述处理块编码到作为已编码视频序列的一部分的已编码图片中。在本实施例中,视频编码器(603)用于代替图3实施例中的视频编码器(303)。

在HEVC实施例中,视频编码器(603)接收用于处理块的样本值的矩阵,所述处理块为例如8×8样本的预测块等。视频编码器(603)使用例如率失真(rate-distortion,RD)优化来确定是否使用帧内模式、帧间模式或双向预测模式来编码所述处理块。当在帧内模式中编码处理块时,视频编码器(603)可使用帧内预测技术以将处理块编码到已编码图片中;且当在帧间模式或双向预测模式中编码处理块时,视频编码器(603)可分别使用帧间预测或双向预测技术将处理块编码到已编码图片中。在某些视频编码技术中,合并模式可以是帧间图片预测子模式,其中,在不借助预测值外部的已编码运动矢量分量的情况下,从一个或至少两个运动矢量预测值导出运动矢量。在某些其它视频编码技术中,可存在适用于主题块的运动矢量分量。在实施例中,视频编码器(603)包括其它组件,例如用于确定处理块模式的模式决策模块(未示出)。

在图6的实施例中,视频编码器(603)包括如图6所示的耦接到一起的帧间编码器(630)、帧内编码器(622)、残差计算器(623)、开关(626)、残差编码器(624)、通用控制器(621)和熵编码器(625)。

帧间编码器(630)用于接收当前块(例如处理块)的样本、比较所述块与参考图片中的一个或至少两个参考块(例如先前图片和后来图片中的块)、生成帧间预测信息(例如根据帧间编码技术的冗余信息描述、运动矢量、合并模式信息)、以及基于帧间预测信息使用任何合适的技术计算帧间预测结果(例如已预测块)。在一些实施例中,参考图片是基于已编码的视频信息解码的已解码参考图片。

帧内编码器(622)用于接收当前块(例如处理块)的样本、在一些情况下比较所述块与同一图片中已编码的块、在变换之后生成量化系数、以及在一些情况下还(例如根据一个或至少两个帧内编码技术的帧内预测方向信息)生成帧内预测信息。在实施例中,帧内编码器(622)还基于帧内预测信息和同一图片中的参考块计算帧内预测结果(例如已预测块)。

通用控制器(621)用于确定通用控制数据,且基于所述通用控制数据控制视频编码器(603)的其它组件。在实施例中,通用控制器(621)确定块的模式,且基于所述模式将控制信号提供到开关(626)。举例来说,当所述模式是帧内模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧内模式结果,且控制熵编码器(625)以选择帧内预测信息且将所述帧内预测信息添加在码流中;以及当所述模式是帧间模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧间预测结果,且控制熵编码器(625)以选择帧间预测信息且将所述帧间预测信息添加在码流中。

残差计算器(623)用于计算所接收的块与选自帧内编码器(622)或帧间编码器(630)的预测结果之间的差(残差数据)。残差编码器(624)用于基于残差数据操作,以对残差数据进行编码以生成变换系数。在实施例中,残差编码器(624)用于将残差数据从时域转换到频域,且生成变换系数。变换系数接着经由量化处理以获得量化的变换系数。在各种实施例中,视频编码器(603)还包括残差解码器(628)。残差解码器(628)用于执行逆变换,且生成已解码残差数据。已解码残差数据可适当地由帧内编码器(622)和帧间编码器(630)使用。举例来说,帧间编码器(630)可基于已解码残差数据和帧间预测信息生成已解码块,且帧内编码器(622)可基于已解码残差数据和帧内预测信息生成已解码块。适当处理已解码块以生成已解码图片,且在一些实施例中,所述已解码图片可在存储器电路(未示出)中缓冲并用作参考图片。

熵编码器(625)用于将码流格式化以产生已编码的块。熵编码器(625)根据HEVC标准等合适标准产生各种信息。在实施例中,熵编码器(625)用于获得通用控制数据、所选预测信息(例如帧内预测信息或帧间预测信息)、残差信息和码流中的其它合适的信息。应注意,根据所公开的主题,当在帧间模式或双向预测模式的合并子模式中对块进行编码时,不存在残差信息。

图7是根据本申请公开的另一实施例的视频解码器(710)的图。视频解码器(710)用于接收作为已编码视频序列的一部分的已编码图像,且对所述已编码图像进行解码以生成重建的图片。在实施例中,视频解码器(710)用于代替图3实施例中的视频解码器(310)。

在图7实施例中,视频解码器(710)包括如图7中所示耦接到一起的熵解码器(771)、帧间解码器(780)、残差解码器(773)、重建模块(774)和帧内解码器(772)。

熵解码器(771)可用于根据已编码图片来重建某些符号,这些符号表示构成所述已编码图片的语法元素。此类符号可包括例如用于对所述块进行编码的模式(例如帧内模式、帧间模式、双向预测模式、后两者的合并子模式或另一子模式)、可分别识别供帧内解码器(772)或帧间解码器(780)用以进行预测的某些样本或元数据的预测信息(例如帧内预测信息或帧间预测信息)、呈例如量化的变换系数形式的残差信息等等。在实施例中,当预测模式是帧间或双向预测模式时,将帧间预测信息提供到帧间解码器(780);以及当预测类型是帧内预测类型时,将帧内预测信息提供到帧内解码器(772)。残差信息可经由逆量化并提供到残差解码器(773)。

帧间解码器(780)用于接收帧间预测信息,且基于所述帧间预测信息生成帧间预测结果。

帧内解码器(772)用于接收帧内预测信息,且基于所述帧内预测信息生成预测结果。

残差解码器(773)用于执行逆量化以提取解量化的变换系数,且处理所述解量化的变换系数,以将残差从频域转换到空间域。残差解码器(773)还可能需要某些控制信息(用以获得量化器参数QP),且所述信息可由熵解码器(771)提供(未标示数据路径,因为这仅仅是低量控制信息)。

重建模块(774)用于在空间域中组合由残差解码器(773)输出的残差与预测结果(可由帧间预测模块或帧内预测模块输出)以形成重建的块,所述重建的块可以是重建的图片的一部分,所述重建的图片继而可以是重建的视频的一部分。应注意,可执行解块操作等其它合适的操作来改善视觉质量。

应注意,可使用任何合适的技术来实施视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。在实施例中,可使用一个或至少两个集成电路来实施视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。在另一实施例中,可使用执行软件指令的一个或至少两个处理器来实施视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。

本申请实施例提供了如下的技术:使用发信号通知的偏移进行块矢量预测,以及针对图片块内补偿的块矢量剪裁。

基于块的补偿可以用于帧间预测和帧内预测。对于帧间预测,来自不同图片的基于块的补偿,被称为运动补偿。基于块的补偿,也可以从同一图片中之前已重建的区域中执行,例如,帧内预测。来自同一图片中已重建区域的基于块的补偿,被称为图片块内补偿、当前图片参考(CPR)、或者帧内块复制(IBC)。用于指示当前块和参考块(也称为预测块)之间偏移的位移矢量,被称为块矢量(BV),其中,基于参考块对当前块进行编码/解码。不同于运动补偿中运动矢量可以具有任何值(正或负,在x方向或y方向上),BV具备一些约束,来保证参考块是可用的,并且已经被重建。而且,出于并行处理的考虑,在一些示例中,排除一些参考区域,例如,条带边界,切片边界,或者波前梯形边界。

对BV进行编解码,可以是显式的或隐式的。在显式模式中,发信号通知BV与BV预测值之间的BV差,这类似于帧间预测中的高级运动矢量预测(AMVP)。在隐式模式中,不使用BV差,从BV预测值中恢复BV,类似于合并模式中的运动矢量。在一些示例中,BV分辨率被限于整数分辨率,并且BV只指向整数位置。在一些示例中,BV具有分数分辨率,并且BV指向分数位置。

使用以块级别进行的帧内块复制,可以使用块级别标识来进行通知,例如IBC标识。在本申请实施例中,当没有使用合并模式对当前块进行编解码时,发信号通知块级别标识。使用参考索引方法,来发信号通知使用了以块级别进行的帧内块复制。然后,正在进行解码的当前图片被认为是参考图片或特殊的参考图片。在一个示例中,这种参考图片被放置在参考图片列表中的最后位置上。在缓冲器中可以将特殊的参考图片和其他时间参考图片一并进行管理,例如,解码图片缓冲器(DPB)。

当帧内块复制的实施例用作本申请的一个示例时,本申请的实施例可以应用于帧内块复制的各种变形。帧内块复制的变形包括,例如,翻转的帧内块复制。其中,参考块在用于预测当前块之前进行水平翻转或者垂直翻转,或者,基于线的帧内块复制,其中,MxN编码块内的每个补偿单元是Mx1线或者1xN线。

图8示出了根据本申请实施例的帧内块复制的示例。将在解码期间重建当前图片(800)。当前图片(800)包括已重建区域(810)(灰色区域)和待解码区域(820)(白色区域)。当前块(830)正由解码器重建。可以从已重建区域(810)中的参考块(840)重建当前块(830)。参考块(840)和当前块(830)之间的位置偏移被称为BV(850)。

当前图片中正在重建的当前块的BV可以具有某些约束,那么,当前块的参考块在当前图片中的参考区域或参考区内。参考区域是指可以从中选择参考块的一部分当前图片。可以约束BV和/或参考区域。在一个示例中,BV是包括x分量和y分量的二维矢量,并且x分量和y分量中的至少一个被约束。当某些约束是相对于BV指定的时,可以相应地约束参考区域和参考块的位置。

在一些示例中,当前图片的已重建样本存储在存储器中,例如专用存储器。为了降低实现成本,参考区域小于当前图片,并且在某些情况下可以由存储器的大小来限制参考区域。在一个示例中,参考块可以仅位于当前图片中的一部分,例如参考区域,因为不是当前图片中的所有位置都包含参考块。例如,当存储器大小是一个CTU时,IBC模式的使用可以限于仅当参考块与当前块位于同一CTU内时。当存储器大小为两个CTU时,IBC模式的使用可以限于当参考块在当前CTU内或在先前CTU(例如,当前CTU左侧的CTU)内时。当由BV参考的块在参考区域之外时,即使该块被重建并且位于当前图片中的重建区域中,由于存储器大小的约束,该块中的样本不可以用于IBC补偿,因此该块不能用作参考块。

当约束参考区域或BV时,可以限制IBC模式的效率。本申请实施例可以提高具有受约束的参考区域或受约束的BV的IBC的效率。在一些实施例中,可以执行方法使得BV被约束为在X和/或Y方向上具有至少一个负分量。

帧间预测技术,被称为最终运动矢量表达式(UMVE)或具有运动矢量差的合并模式(MMVD),使用特殊合并模式,其中,除了合并候选之外,还用信号通知包括幅度和方向的偏移矢量(也称为偏移)。在UMVE模式中,可以用信号通知语法元素,诸如预测方向索引(或预测方向IDX)、基础候选索引(或基础候选IDX,也称为基础索引或基础IDX)、距离索引(或距离IDX)、偏移方向索引(或偏移方向IDX,也称为搜索方向索引或搜索方向IDX),和/或语法元素的其它组合,以描述合并候选及其相应的偏移。例如,预测方向IDX用于指示用于UMVE模式的至少一个预测方向(至少一个时间预测方向,例如,L0参考方向、L1参考方向,或L0和L1参考方向)。基础候选IDX用于指示用作起始点MV(也称为起始点矢量、基础候选、基础预测值或基础矢量)的合并候选以应用偏移。距离IDX用于指示偏移的幅度。在本申请实施例中,幅度可以由沿X方向或Y方向的移位大小(或步长)来表示,但不是从起始点MV沿x方向以及y方向。步长可以从固定数量的选项中选择,例如固定数量的步长。步长和/或选项的数量可以在编码器和/或解码器中预先定义。偏移方向IDX用于指示偏移的偏移方向,例如-X、+X、-Y或+Y方向。偏移方向可以从一组偏移方向中选择。偏移方向和/或偏移方向的数量,可以在编码器和/或解码器中预先定义。

例如,当起始点MV是MV_S并且偏移是MV_offset时,最终MV(MV_final)可以如下获得:MV_final=MV_S+MV_offset。在该示例中,MV_S、MV_offset,和MV_final是矢量,并且MV_S和MV_offset的总和是矢量总和。在本申请实施例中,距离IDX和偏移方向IDX指示偏移MV_offset的步长和偏移方向。当偏移方向IDX指示偏移MV_offset仅沿单个轴(例如,x轴或y轴)时,MV_offset的幅度与步长相同。当偏移方向IDX指示偏移MV_offset沿例如x轴和y轴之间对角线的方向时,可以基于偏移方向和步长来确定MV_offset的幅度。例如,可以通过分别沿x轴和y轴移动步长来确定最终MV(MV_final)。

图9示出了根据本申请实施例的UMVE的示例。在图9中,起始点MV(911)(例如,由第一预测方向IDX和基础候选IDX指示)、偏移(912)(例如,由第一距离IDX和搜索方向IDX指示)和最终MV,对应于一个示例。此外,起始点MV(921)(例如,由第二预测方向IDX和基础候选IDX指示)、偏移(922)(例如,由第二距离IDX和搜索方向IDX指示)和最终MV(923),对应于另一示例。

图10示出了根据本申请实施例的UMVE的示例。例如,示出了起始点MV(1011)(例如,由预测方向IDX和基础候选IDX指示)。在图10的示例中,使用了4个偏移方向,即+Y、-Y、+X和-X,并且这四个偏移方向可以例如分别由偏移方向索引00、01、10和11来表示。偏移的步长可以由距离索引来表示。例如,距离索引可以包括00(距起始点MV的距离为0或没有移位)、01(距起始点MV1个样本距离)、10(距起始点MV2个样本距离)、11(距起始点MV3个样本距离)等。因此,10的偏移方向IDX和10的距离IDX对应于最终MV(1015)。以上描述是针对L0参考给出的,并且可以适当地适用于L1参考。当然,可以使用任何合适的方法来表示偏移方向和幅度(或步长)。

表1示出了距离索引和偏移的相应步长之间的关系示例。步长可以预先定义。预先定义的步长可以指基础候选和最终MV之间沿X方向或Y方向(例如+Y、-Y、+X或-X)的移位大小。在一个示例中,预先定义的步长可以具有分数样本大小,例如样本大小的1/4。

表1:示例性距离索引及相应步长

特殊合并模式被称为成对平均合并模式,可以用来生成合并候选。可以通过对候选列表中的两个现有合并候选求平均值来生成合并候选。例如,当候选列表具有N个现有合并候选时,则可以对

当从同一当前图片中的参考块预测当前图片中的当前块时,可以显式地(例如,用信号通知BV预测值与BV之间的BV差,类似于用信号通知MV的AMVP模式)或隐式地(例如,仅用信号通知BV预测值而不用信号通知BV差,类似于用信号通知MV的合并模式)用信号通知当前块的BV。在一些示例中,BV非常接近BV预测值,但不与BV预测值完全相同,那么BV差很小。用信号通知小的BV差,将会是低效的,并且增加信令开销。

因此,本申请实施例用于改进用信号通知BV信息的效率,例如在IBC模式中用信号通知BV预测值与BV之间的BV差。在本申请实施例中,为了代替用信号通知实际BV差,可以用信号通知至少一个索引(例如,组合的距离/偏移方向索引,或单独的距离IDX和单独的偏移方向IDX),并且可以基于至少一个索引、一组步长、一组偏移方向等来确定偏移。偏移可以近似于BV差,那么就不等于BV差。因此,至少一个索引的信令成本可以显著小于BV差的信令成本。一组步长和一组偏移方向可以在解码器中预先定义,或者预先提供给解码器,因此,对于一组步长和一组偏移方向不需要信令。可见,用信号通知偏移矢量的索引的IBC模式可以比用信号通知实际BV差的IBC模式更有效。

根据本申请实施例,用信号通知当前块的BV的BV信息。例如,比如从候选列表中选择BV预测值(也称为基础预测值)。例如当候选列表包括多个候选时,可以用信号通知BV预测值的基础候选索引,并且可基于基础候选索引和候选列表来确定所选择的BV预测值。可以确定偏移(或偏移矢量),接着将其应用于基础预测值以确定最终BV。在一个示例中,基于偏移信息(例如在BV信息中用信号通知的指示偏移的方向和幅度的索引)来确定偏移。可以基于索引和预先定义的偏移方向和/或步长来确定偏移。对基础预测值和偏移求和来确定最终BV。

如上所述,可以用信号通知偏移信息和基础预测值的信息,来确定用于帧间预测的最终MV或用于IBC模式的最终BV。基础预测值可以用于MV预测(或常规MV预测)或BV预测。因此,用信号通知除基础预测值之外的偏移信息的方法,可以统一用于针对IBC模式中的帧间预测和BV预测中的MV预测。

在本申请实施例中,候选列表既包括至少一个BV候选,又包括至少一个MV预测候选或至少一个MVP候选。至少一个BV候选可以被称为至少一个IBC已编码候选。在一个示例中,IBC已编码候选是指来自先前已编码块的BV。至少一个MVP候选可以被称为至少一个帧间编码候选或至少一个常规帧间编码候选。在一个示例中,MVP候选可以是在合并模式中使用的合并候选。候选列表中的第N个候选可以被确定为基础预测值,该基础预测值可以包括至少一个BV候选或者排除至少一个BV候选。在一个示例中,在确定第N个候选时,包括至少一个BV候选。当第N个候选是至少一个BV候选中的一个时,确定使用IBC模式,并且将用信号通知的偏移应用于所选择的基础预测值(即,第N个候选)。在一个示例中,当确定第N个候选时,排除至少一个BV候选,因此仅包括至少一个MVP候选。那么,至少一个BV候选中没有一个可以被应用为基础预测值。例如,候选列表是:{MVP 1,BV 1,BV 2,MVP 2,MVP 3,…},其中候选列表中的前5个候选包括2个BV候选,BV 1-2和3个MVP候选,MVP 1-3。当N是2时,可以如下从候选列表中确定第2候选。在一个示例中,在确定所述第2候选时包括2个BV候选。因此,第2候选是BV 1,因此使用IBC模式且将用信号通知的偏移应用于所选择的BV预测值,即BV1。可选地,在确定所述第2候选时排除2个BV候选。因此,第2候选(即,第2非BV候选或第2MVP候选)是MVP 2,那么,使用帧间预测模式,并且将用信号通知的偏移应用于所选择的MV预测(即,MVP2)。

当在IBC模式中使用偏移矢量并用信号通知时,IBC模式中的偏移矢量的语义可以与帧间预测模式(例如常规帧间MV预测)中使用的语义相同或不同。

在解码器侧,可以对指示用于重建当前图片中当前块的预测模式的预测信息进行解码。例如当参考块与当前图片位于不同的参考图片中时,预测模式可以是帧间预测模式,或者当参考块在当前图片中时,预测模式可以是IBC模式。可以从例如包括至少一个BV候选和/或MVP候选的候选列表中,确定基矢量或基础预测值。可以基于偏移信息来确定偏移矢量。偏移信息可以指示偏移矢量的偏移方向和步长。在一个示例中,偏移信息可以包括可用于构建偏移矢量的偏移方向和步长。可以基于基矢量和偏移矢量来确定当前块的矢量(或最终矢量)。当前块的矢量可以指示当前块的参考块。当预测模式是IBC模式时,参考块在当前图片中且当前块的矢量是BV;当预测模式是帧间预测模式时,参考块与当前图片位于不同的参考图片中,且当前块的矢量是MV。此外,可以基于当前块的矢量来重建当前块中的至少一个样本。

在IBC模式中,可以如下选择基矢量或基础预测值。当存在多于一个的基础预测值候选时,例如,当候选列表包括多个候选时,可以用信号通知基础预测值的索引(也称为基础候选索引)。因此,可以基于基础候选索引从候选列表中选择基础预测值。候选列表可以包括,来自例如IBC模式中已编解码的空间或时间相邻位置(例如,空间或时间相邻块)的候选、来自至少一个先前已解码块(例如,以解码顺序)的至少一个BV等。在一个示例中,当候选列表仅包括一个候选时,不用信号通知基础候选索引。

在本申请实施例中,偏移信息可以包括,例如包括在预测信息中的,偏移方向IDX和距离IDX。当有一组偏移方向和一组步长应用于基础预测值时,这组偏移方向和这组步长可以在编码器和解码器中预先定义,或者对于编码器和解码器是可用的。可以基于偏移方向IDX和一组偏移方向来确定偏移方向,并且可以基于距离IDX和一组步长来确定步长。

根据本申请实施例,当有一组偏移方向应用于基础预测值时,这组偏移方向可以是未偏置的,因此,在该组偏移方向中可以不包括至少一个优选方向。可选地,可以对用于基础预测值的一组偏移方向进行偏置。因此,在该组偏移方向中可以包括至少一个优选方向(例如,至少一个负方向)。

如上所述,在一些示例中,BV可以具有约束,以确保参考块可用并且已经被重建。BV可以是包括x分量和y分量的二维矢量,并且x分量和y分量中的至少一个被约束。例如,BV可以被约束为在X轴和/或Y轴的负方向(即,-X和/或-Y)上具有分量,因此该组偏移方向可以偏向-X和/或-Y。针对用于指示偏移方向的索引,可以设置相应的二进制化分配,使得方向更可能具有更短的码字(即,具有更短长度的码字)。下文描述的实施例示出未偏置或已偏置的各组偏移方向。

图11A示出了可以应用于基础预测值的一组四个未偏置偏移方向的示例。表2分别示出偏移方向IDX和偏移方向。在下面的表2和其它表中,-1是指在轴的负方向(负X轴-X或负Y轴-Y)上的移位,+1是指在轴的正方向(正X轴+X或正Y轴+Y)上的移位,0是指没有沿轴(X轴或Y轴)的移位,并且x轴和y轴中的非零值是指X轴和Y轴中的移位,那么,偏移矢量沿X轴和Y轴之间的方向(例如,图11A中的对角方向A1)移动。

通常,方向和+X方向之间的角度可以是任何合适的值,例如45°、22.25°等,并且不限于对角线方向。换言之,沿X轴的-1指示偏移具有-X方向上的分量,沿X轴的+1指示偏移具有+X方向上的分量,沿Y轴的-1指示偏移具有-Y方向上的分量,并且沿Y轴的+1指示偏移具有+Y方向上的分量。因此,在下面的表2和其它表中,可以使用矢量(n1,n2)来表示偏移方向,其中n1或n2可以是合适的整数,诸如-1、0、+1(即,1)等。因此,(-1,0)表示沿负x轴(-X)的偏移方向,(+1,0)表示沿正x轴(+X)的偏移方向,(0,-1)表示沿负y轴(-Y)的偏移方向,并且(0,+1)表示沿正Y轴(+Y)的偏移方向。

在图11A和表2所示的示例中,偏移方向包括由偏移方向IDX 00指示的-x或(-1,0)、由偏移方向IDX 11指示的+x或(+1,0)、由偏移方向IDX 10指示的+y或(0,+1),以及由偏移方向IDX 01指示的-y或(0,-1),那么,BV与基础预测值之间的偏移沿x或y方向。例如,偏移不能在对角线方向A1上。可以用具有相同长度(例如2比特)的码字(例如00、01、10和11)对偏移方向进行编解码,如表2所示。因此,信令成本对于偏移方向是相同的,并且对于选择比其它偏移方向优选的偏移方向,并没有给定这种倾向。偏移方向IDX,诸如00、01、10或11,可以是用信号通知给解码器侧的语法元素。

表2:偏移方向IDX和偏移方向

图11B示出了可以应用于基础预测值的一组八个未偏置偏移方向的示例。表3分别示出偏移方向IDX和偏移方向。参考图11B和表3,偏移方向可以包括沿x轴和y轴的方向以及x轴和y轴之间的方向。更具体地,偏移方向包括由偏移方向IDX 001指示的-x或(-1,0)、由偏移方向IDX 000指示的+x或(+1,0)、由偏移方向IDX 010指示的+y或(0,+1),以及由偏移方向IDX 011指示的-y或(0,-1),以及由偏移方向IDX 100、101、110和111指示的对角线方向(+1,+1)、(-1,-1)、(+1,-1)和(-1,+1)。因此,偏移可以在对角线方向上,例如对角线方向IDX 100。可以用具有相同长度(例如3比特)的码字(例如000、001、010、011等)对偏移方向进行编解码,如表3所示。因此,信令成本对于偏移方向是相同的,并且没有给定如何相对于其它偏移方向优先选择偏移方向。偏移方向IDX,诸如000、001等,可以是用信号通知给解码器侧的语法元素。

表3:偏移方向IDX和偏移方向

图11C示出了可以应用于基础预测值的一组四个偏置偏移方向的示例。表4分别示出偏移方向IDX和偏移方向。类似于图11A和表2中所示的示例,偏移方向在x方向或y方向上,并且不能在x轴与y轴之间的方向(例如方向C1)上。然而,可以优先选择负方向,包括-x和-y,那么,针对这些负方向,可以为偏移方向IDX分配具有较短长度的码字。例如,偏移方向包括由偏移方向IDX 0指示的-x或(-1,0)、由偏移方向IDX 111指示的+x或(+1,0)、由偏移方向IDX 110指示的+y或(0,+1),以及由偏移方向IDX 10指示的-y或(0,-1)。因此,信令成本对于偏移方向可以是不同的,其中信令成本对于-X是最低的(即,1比特),随后是-Y(即,2比特),并且对于+X和+Y是最高的(即,对于+X和+Y是3比特)。因此,可以优选由偏移方向IDX 0和IDX 10索引的-X和-Y。偏移方向IDX,诸如0、10等,可以是用信号通知给解码器侧的语法元素。

表4:偏移方向IDX和偏移方向

图11D示出了可以应用于基础预测值的一组八个偏置偏移方向的示例。表5分别示出偏移方向IDX和偏移方向。类似于图11B和表3所示的示例,偏移方向可以是x方向、y方向或x轴和y轴之间的方向。然而,可以优先选择包括-x和-y的负方向,针对这些负方向,可以为偏移方向IDX分配具有较短长度的码字。例如,偏移方向包括由偏移方向IDX 00指示的-x或(-1,0)、由偏移方向IDX 01指示的-y或(0,-1)、由偏移方向IDX 10指示的对角线方向(-1,-1)、由偏移方向IDX 11111指示的+x或(+1,0)、由偏移方向IDX 1101指示的+y或(0,+1),以及由偏移方向IDX 1100、1110和11110指示的其它对角线方向(-1,+1)、(+1,-1)、(+1,+1)。因此,信令成本对于偏移方向可以是不同的,其中信令成本对于-X、-Y和(-1,-1)是最低的(即,2比特),随后是+Y、(-1,+1)和(+1,-1)(即,4比特),并且对于+X和(+1,+1)是最高的(即,5比特)。因此,可以优选-X、-Y或(-1,-1)。偏移方向IDX,诸如00、10等,可以是用信号通知给解码器侧的语法元素。

表5:偏移方向IDX和偏移方向

图11E示出了可以应用于基础预测值的一组两个偏置偏移方向的示例。表6分别示出偏移方向IDX和偏移方向。偏移方向可以是由偏移方向IDX 0指示的-X(即,(-1,0))或由偏移方向IDX 1指示的-Y(即,(0,-1))。因此,只能从负方向-x或-y中选择偏移方向,因为没有码字被分配给其它方向,诸如+x、+y等。偏移方向IDX,0或1,可以是用信号通知给解码器侧的语法元素。

表6:偏移方向IDX和偏移方向

图11F示出了可以应用于基础预测值的一组五个偏置偏移方向的示例。表7分别示出偏移方向IDX和偏移方向。参考图11F和表7,偏移方向偏向-X,并且偏移在+X上没有分量。例如,偏移方向可以包括由偏移方向IDX 00指示的-x、由偏移方向IDX 01指示的-y、由偏移方向IDX 10指示的+y,以及由偏移方向IDX 110和111指示的对角线方向。优先选择-x、-y或+Y,并且为-x、-y和+Y的偏移方向IDX分配较短的码字(即,2比特)。对于偏移方向,信令成本可以不同。没有码字被分配给诸如+x的方向。偏移方向IDX,诸如00、10等,可以是用信号通知给解码器侧的语法元素。

表7:偏移方向IDX和偏移方向

当然,可以使用其它组合适的偏移方向,并且对一组偏移方向的偏移方向IDX进行编解码,可以使用任何合适的二进制化方法或码字分配。例如,也可以使用其它二进制化,即对于至少一个方向,例如负方向,通过用较短码字对该至少一个方向进行编解码,来反映优选哪个方向。

根据本申请实施例,可以将偏移的一组步长(或移位大小)应用于基础预测值。偏移的一组步长可以是未偏置的,在这种情况中,没有在这组步长中指定优选。因此,用于指示步长的距离索引的二进制化,可以使用具有固定长度的码字。可选地,偏移的一组步长可以是偏置的,那么,距离索引的二进制化可以使用具有可变长度的码字。例如,距离索引的二进制化分配可以是偏置的,使得步长(即,优选步长)更可能对应更短的码字。此外,在一个示例中,BV被约束为具有整数分辨率,那么,步长等于样本大小或多个样本大小。样本大小可以是亮度样本大小。下文各实施例示出未偏置或偏置的各组步长。

表8示出了可以应用于基础预测值的偏移矢量的一组四个未偏置步长示例。例如,就亮度样本而言,步长是1个样本、2个样本、4个样本和8个样本,并且步长由距离索引00、01、10和11来表示。距离索引的二进制化使用具有固定长度,即2比特,的码字,那么是未偏置的。距离索引,例如00指示1个样本的步长,可以是用信号通知给解码器侧的语法元素。

表8:距离索引和相应的步长

表9示出了可以应用于基础预测值的偏移矢量的一组四个未偏置步长示例。例如,就亮度样本而言,步长是1个样本、2个样本、3个样本和4个样本,并且步长由距离索引00、01、10和11来表示。距离索引的二进制化使用具有固定长度,即2比特,的码字,那么是未偏置的。距离索引,例如00指示1个样本的步长,可以是用信号通知给解码器侧的语法元素。

表9:距离索引和相应的步长

表10示出了可以应用于基础预测值的偏移矢量的一组四个偏置步长示例。例如,就亮度样本而言,步长是1个样本、2个样本、4个样本和8个样本,并且步长由距离索引0、10、110和111来表示。距离索引的二进制化使用具有可变长度,诸如从1到3比特,的码字,那么,可以偏向1个样本的步长,对应于具有最短码字长度“0”的距离IDX。距离索引,例如0指示1个样本的步长,可以是用信号通知给解码器侧的语法元素。

表10:距离索引和相应的步长

表11示出了可以应用于基础预测值的偏移矢量的一组四个偏置步长示例。例如,就亮度样本而言,步长是1个样本、2个样本、3个样本和4个样本,并且步长由距离索引0、10、100和1000来表示。距离索引的二进制化使用可变长度,诸如从1到4比特,的码字,那么,可以偏向1个样本的步长,对应于具有最短码字长度“0”的距离IDX。距离索引,例如0指示1个样本的步长,可以是用信号通知给解码器侧的语法元素。

表11:距离索引和相应的步长

可以基于距离IDX、偏移方向IDX、一组偏移方向和一组可应用于基础预测值的步长来确定偏移或偏移矢量。例如,距离IDX“10”和偏移方向IDX“0”可以用信号通知给解码器,并由解码器进行解码。在表4和图11C中示出了该组偏移方向的示例,并且在表8中示出了该组步长的示例。在一个示例中,该组偏移方向和/或该组步长在解码器中预先定义,或者由解码器获取。因此,在该示例中,偏移可以被确定为在负X方向上,并且幅度为4个样本,由索引指示。因此,可以通过对偏移矢量和基础预测值执行矢量求和,例如在负X方向上将基础预测值移动4个样本,来获得BV。

此外,在一些实施例中,当所选择的方向是对角线方向时(例如,当八个方向可以用时),步长可以指示x轴和y轴具有相同的步长。例如,当偏移方向是沿对角线方向时,例如,图11B中对角线方向(-1,+1),其偏移方向IDX为111,步长指示-x和+y轴都应用该步长。当偏移是在对角线方向(-1,+1)上并且步长是2个样本时,可以通过将基础预测值在负X方向上移动2个样本并且在正Y方向上移动2个样本来获得BV。

当然,可以使用其它组合适的步长,并且可以使用任何合适的二进制化方法或码字分配来对距离IDX进行编解码。例如,解码器可以将一组偏移方向与任何合适的一组步长一起使用。

如上所述,除了诸如MV预测值或BV预测值的基础预测值之外,用信号通知偏移信息,诸如偏移方向IDX和/或距离IDX,可以被统一用于帧间预测中的MV预和IBC模式中的BV预测。例如,与用信号通知偏移信息相关联的统一语法结构,可以用于帧间预测模式中的MV预测和IBC模式中的BV预测。如下所述,在MV预测和BV预测之间可以共享两个语法元素的多个偏移方向、多个步长和二进制化。

在本申请实施例中,可以共享一组步长(或偏移的幅度)和/或一组偏移方向的语义。当由距离IDX和偏移方向IDX的组合生成的偏移不是IBC模式的有效偏移时(例如,所确定的偏移和基础预测值产生最终矢量,该最终矢量是具有分数分辨率的分数矢量,或者该最终矢量指向无效参考区域中的参考块),该偏移是不允许的并且不能被选择。例如,为编码器和解码器设置的比特流一致性要求,确保已解码的BV是有效矢量,可以保证不选择偏移。

表12示出了可以由MV预测和BV预测共享的距离索引和偏移的一组步长示例。1个像素(pel)是指1个像素或样本大小。距离索引0至7是指8个步长:偏移的1/4个像素、1/2个像素、1个像素、2个像素、4个像素、8个像素、16个像素和32个像素。对于由基础预测值和偏移进行预测得到的MV,可以选择8个步长中的一个作为偏移的步长。然而,在一些示例中,对于由基础预测值和偏移进行预测得到的BV,当BV被约束为具有整数分辨率时,如下6个步长:1个像素、2个像素、4个像素、8个像素、16个像素和32个像素中,只有一个步长可以被选择作为偏移的步长。因此,使用相应偏移的MV预测和BV预测都可以使用同组步长和距离IDX。然而,在一些示例中,从BV预测中排除某些步长。

表12:距离索引和相应的步长

在本申请实施例中,用于BV预测的一组步长和一组偏移方向的语义可以不同于用于MV预测的语义。例如,距离索引对应的步长,与用于预测BV的偏移之间有1个像素的间隔。因此,可以从用于预测BV的一组步长中,移除用于预测MV的分数步长,例如表12中的1/4个像素和1/2个像素。例如,表12示出了用于预测MV的一组步长。表13示出了用于预测BV的一组步长,其中移除了表12中的分数步长(即1/4个像素和1/2个像素),并且剩余的整数步长:1个像素、2个像素、4个像素、8个像素、16个像素和32个像素,被移动到表13的开头。在一个示例中,添加2个额外整数步长来生成表14,这样,表14中的步长数目与表12中的步长数目相同。

表13:距离索引和相应的步长

表14:距离索引和相应的步长

在本申请实施例中,共享语法结构,然而,索引(例如距离索引、偏移方向索引等)的二进制化以及索引的语义,对于MV预测和BV预测可以不同。例如,4个偏移方向:-X、+X、-Y和+Y,可以用于MV预测和BV预测,然而,MV预测中使用的偏移方向是未偏置的,而BV预测中使用的偏移方向是偏置的。因此,MV预测的偏移方向索引的二进制化,可以不同于BV预测的二进制化,并且偏移方向索引的语义可以不同。在一个示例中,表4示出了偏移方向IDX和用于BV预测的相应的偏移方向。-X、+X、-Y和+Y的偏移方向索引,分别是0、111、10和110。因此,优选被分配有较短码字的-X和-Y。另一方面,表15示出了用于MV预测的示例性偏移方向IDX和相应的偏移方向。-X、+X、-Y和+Y的偏移方向索引,分别是00、10、01和11。因此,没有优选特定方向,因为码字具有相同的长度。

表15:偏移方向IDX和偏移方向

MV预测和BV预测中的基础预测值的信令,可以统一在同一候选列表中。如上所述,候选列表可以包括BV和MVP候选的组合。在一个示例中,通过包括至少一个BV候选,将候选列表中的第N个候选确定为基础预测值。当第N候选是BV候选时,确定使用IBC模式,并且将用信号通知的偏移应用于所选择的基础预测值(即,第N个候选),来确定BV。例如,候选列表是:{MVP 1,BV 1,BV 2,MVP 2,MVP 3,…},其中候选列表中的前5个候选包括2个BV候选,BV1-2和3个MVP候选,MVP 1-3。当基础索引例如为2时,从候选列表中确定第二候选。因此,第二候选是BV 1,那么使用IBC模式,且将用信号通知的偏移应用于所选择的BV预测值,即BV1。当基础索引例如为4时,从候选列表中确定第4候选。因此,第4候选是MVP2,那么使用常规帧间预测模式,且将用信号通知的偏移应用于所选择的MV预测值(即,MVP2),来预测MV。当前编解码块以常规帧间模式进行编解码。

MV预测和BV预测中的基础预测值的信令,可以在使用同一候选列表时单独实现。如上所述,候选列表可以包括BV和MVP候选的组合。在MV预测的示例中,可以通过排除至少一个BV候选,将候选列表中的第N个候选确定为基础预测值。使用上述候选列表{MVP 1,BV1,BV 2,MVP 2,MVP 3,…},当基础索引为2时,从排除2个BV候选的候选列表中确定第二候选。因此,第二候选(即,第二非BV候选或第二MVP候选)是MVP 2,那么使用帧间预测模式,且将用信号通知的偏移应用于所选择的MV预测值(即,MVP2)。当前编解码块以常规帧间模式进行编解码。在BV预测的示例中,可以通过排除至少一个MV候选,将候选列表中的第N个候选确定为基础预测值。使用上述候选列表{MVP 1,BV 1,BV 2,MVP 2,MVP 3,…},当基础索引为2时,从排除3个MV候选的候选列表中确定第二候选。因此,第二候选(即,第二非MV候选或第二BV候选)是BV 2,那么,使用IBC模式,且将用信号通知的偏移应用于所选择的BV预测值(即,BV 2)。当前编解码块以IBC模式进行编解码。

在一些实施例中,可以对BV进行裁剪或舍入。例如,可以对BV进行裁剪,使得BV满足BV具有整数分辨率的约束。为了提高BV预测的效率,当BV预测值、用于预测BV的偏移、或BV具有分数分辨率或分数像素(fractional-pel)部分时,可以在BV预测中执行裁剪操作。在以下描述中,裁剪操作可以包括从BV中移除分数像素部分、将BV舍入到最接近的整数等。裁剪操作可以单独执行或可以与任何合适的方法组合。例如,当(i)基于基础预测值和偏移矢量来预测BV,(ii)使用成对平均方法,对候选列表中的两个现有候选求平均值,来生成BV候选,(iii)使用一种与用于预测MV的AMVP相类似的方法(即,基于BV预测值和BV差预测BV,其中用信号通知BV预测值和BV之间的BV差)来预测BV时,可以使用裁剪操作,等等。

如上所述,可以基于BV预测中的基础预测值和偏移矢量(或偏移)来预测BV。此外,在本申请实施例中,当偏移和/或基础预测值具有分数分辨率时,所得BV(即,基础预测值和偏移的总和),在沿着所选则的偏移方向上,处于分数像素位置。例如,当偏移从基础预测值处转移分数像素的距离或者移动分数移位大小时,偏移可以具有分数分辨率。当例如基础预测值对应于候选列表中用于预测MV的合并候选时,基础预测值可以具有分数分辨率。为了清楚起见,当描述各种裁剪操作时,所得BV也被称为初始BV。当最终BV被约束为仅具有整数分辨率或仅指向整数位置时,可以对所得BV(或初始BV)执行裁剪操作,如下所述。

在本申请实施例中,最终BV的分数部分被裁剪为零。在一个示例中,如等式(1)执行裁剪操作。

BV_clipped=(BV_pred>>(N))<<(N) (1)

其中BV_clipped是裁剪操作之后的最终BV(也称为裁剪BV),BV_pred是初始BV,即基础预测值和偏移的总和。N指示初始BV的精度,并且初始BV具有1/(2

在本申请实施例中,裁剪操作类似于上面的等式(1)中描述的,然而,裁剪操作在等式(2)中描述如下。

BV_clipped=((BV_pred+2(N-1)>>(N))<<(N) (2)

其中最终BV被舍入到最接近的整数。类似地,可以对初始BV的一个分量或每个分量,执行如等式(2)所示的裁剪操作。如上所述,N指示具有1/(2

等式(1)和(2)所示的裁剪操作,可以就在生成初始BV之后执行,那么在后续操作中使用裁剪后的BV。例如,当前块的裁剪后的BV,可以用作预测当前块之后解码的块的另一BV的候选。

或者,如等式(1)和(2)所示的裁剪操作,可以就在运动补偿内插之前执行。因此,分数像素初始BV可以用于其它块的BV预测中,例如,预测当前块之后解码的块的另一BV。类似于用于MV预测的UMVE,可以通过用信号通知偏移来执行BV预测,或,类似于用于MV预测的AMVP模式,通过用信号通知BV差来执行BV预测。

在本申请实施例中,可以基于BV预测值和BV差来预测BV,其中BV差是BV预测值与BV之间的差,类似于MV预测的AMVP模式。BV预测值和/或BV差,可以具有分数分辨率。因此,可以对所得BV或初始BV执行裁剪操作。在本申请实施例中,可以使用等式(1),将最终BV的分数部分裁剪为零,其中,BV_pred是指具有1/(2

在本申请实施例中,例如在成对合并模式中,可以对候选列表中的BV候选与候选列表中的另一候选求平均值,来生成新的BV候选,上述裁剪操作也可以应用于新的BV候选。例如,可以应用等式(1)至(2),其中新的BV候选是等式(1)或等式(2)中的BV_pred,使用上述方法可以将新的BV候选裁剪为裁剪后的BV,即,等式(1)或等式(2)中的BV_clipped。

在本申请实施例中,可以在不检查BV是否具有非零分数部分(或BV具有分数分辨率)的情况下,执行上述裁剪操作中的至少一个。可选地,例如由解码器确定BV是否具有非零分数部分。随后,当确定BV具有非零分数部分时,可以执行上述裁剪操作中的至少一个,来对BV进行裁剪或舍入,使得裁剪后的BV仅具有整数分辨率。在一个示例中,可以基于如何存储BV来确定BV是否具有非零分数部分。

图12示出了概述根据本申请实施例的方法(1200)的流程图。在对已经以IBC模式、帧间预测模式等编解码的当前块进行重建时,可以使用方法(1200),以便为重建中的当前块生成预测块。当前块在当前图片中。在各个实施例中,方法(1200)由处理电路执行,诸如终端设备(210)、(220)、(230)和(240)中的处理电路、执行视频编码器(303)的功能的处理电路、执行视频解码器(310)的功能的处理电路、执行视频解码器(410)的功能的处理电路、执行视频编码器(503)的功能的处理电路、执行视频编码器(603)的功能的处理电路、执行视频编码器(710)的功能的处理电路等等。在一些实施例中,方法(1200)用软件指令实现,因此当执行这些软件指令时,处理电路执行该方法(1200)。该方法开始于(S1201)并进行到(S1210)。

在(S1210)处,从已编码的视频比特流中解码得到当前图片中当前块的预测信息。预测信息指示用于重建当前块的预测模式。预测模式可以是IBC模式、帧间预测模式等。

在(S1220),从候选列表中确定基矢量。可以例如从候选列表中选择基矢量或基础预测值。当候选列表仅包括一个候选时,基矢量可以是该候选,并且不用信号通知索引。当候选列表包括多个候选时,可以用信号通知索引,例如基础候选IDX。在该示例中,预测信息包括基础候选IDX。可以基于基础候选IDX和候选列表来选择基矢量。

在一个示例中,候选列表包括BV候选。候选列表还可以包括MV候选。例如,候选列表可以是如上所述的{MVP 1,BV 1,BV 2,MVP 2,MVP 3,…}。如上所述,可以通过在候选列表中包括至少一个BV候选或排除至少一个BV候选来选择基矢量。在一个示例中,选择BV候选作为基矢量。在一个示例中,选择MV候选作为基矢量。

在(S1230),基于偏移信息确定偏移矢量,偏移信息指示用于构建多个偏移矢量的方向和/或大小。偏移信息可以包括索引,例如距离IDX、偏移方向IDX。偏移信息可以进一步包括一组步长、一组偏移方向等。一组步长和/或一组偏移方向可以在解码器中预先定义,并且包括可以用于例如在IBC模式中预测BV的步长和/或偏移方向。参考图11A至图11F描述各组偏移方向的示例。一组步长和/或一组偏移方向可以是偏置的或未偏置的。在一个示例中,预测信息包括偏移信息,诸如距离IDX、偏移方向IDX等。

在一个示例中,可以基于偏移方向IDX和一组偏移方向,确定偏移矢量的偏移方向。此外,可以基于距离IDX和一组步长,确定偏移矢量的幅度或步长。

在(S1240),基于基矢量和偏移矢量,确定当前块的矢量。在一个示例中,矢量是基矢量和偏移矢量的矢量总和。矢量可以是BV、MV等。例如,当矢量是BV时,矢量可以进一步被裁剪或舍入,使得矢量具有整数分辨率。

在(S1250),根据当前块的矢量,重建当前块的至少一个样本。在一个示例中,使用矢量获得预测块,并且从预测块获得至少一个样本。在一个示例中,矢量是BV,并且预测块是在同一当前图片中。在一个示例中,矢量是MV,并且预测块是在不同于当前图片的参考图片中。然后,方法(1200)进行到(S1299)并结束。

方法(1200)可以适当地适用于各种场景,诸如是否统一使用偏移矢量的BV预测和使用偏移矢量的MV预测、在确定基础预测值时是否在候选列表中包括或排除BV候选等。

图13示出了概述根据本申请实施例的方法(1300)的流程图。方法(1300)可以用于对IBC模式中使用的BV进行裁剪或舍入。在各个实施例中,方法(1300)由处理电路执行,诸如终端设备(210)、(220)、(230)和(240)中的处理电路、执行视频编码器(303)的功能的处理电路、执行视频解码器(310)的功能的处理电路、执行视频解码器(410)的功能的处理电路、执行视频编码器(503)的功能的处理电路、执行视频编码器(603)的功能的处理电路、执行视频编码器(710)的功能的处理电路等等。在一些实施例中,方法(1200)用软件指令实现,因此当执行这些软件指令时,处理电路执行该方法(1300)。该方法开始于(S1301)并进行到(S1310)。

在(S1310),确定当前块的初始BV。初始BV可以使用例如上述任何合适的方法获得。

在(S1320),确定初始BV是否具有非零分数部分。当确定初始BV具有非零分数部分,即初始BV具有分数分辨率时,方法(1300)进行到(S1330)。方法(1300)进行到(S1399)并结束。

在(S1330),执行裁剪操作,获得不具有分数部分的最终BV。在一个示例中,裁剪操作可以移除非零分数部分,如等式(1)中所述。在一个示例中,裁剪操作可以将初始BV的每个分量舍入到最近的整数,如等式(2)中所述。然后,方法(1300)进行到(S1399)并结束。

方法(1300)可以适当地适用于各种场景,并且可以相应地调整方法(1300)中的步骤。例如,可以省略(S1320),那么对初始BV执行裁剪操作,而不检查初始BV是否具有非零分数部分。可以添加至少一个附加的步骤。在一个示例中,当有多个裁剪操作可用时,可以添加步骤以确定多个裁剪操作中的哪一个将用于初始BV。在一个示例中,可以在(S1310)和(S1320)之间添加基于初始BV来预测另一块的BV的步骤,那么可以将未裁剪的初始BV用作另一块的BV候选。

方法(1200)和(1300)可以以任何合适的顺序组合或单独使用。

以上描述图示了可以基于距离IDX、偏移方向IDX、一组偏移方向和一组步长来确定偏移矢量的实施例和示例。该描述可以适当地适用于其它场景。例如,可以基于单个IDX和一组选项来确定偏移矢量,其中每个选项可以是偏移方向和步长的组合。在一个示例中,可以基于距离IDX、偏移方向IDX、一组偏移方向和一组偏移矢量幅度来确定偏移矢量。在一个示例中,可以基于第一IDX、第二IDX、一组x分量和一组y分量来确定偏移矢量,其中基于第一IDX和一组x分量来确定偏移矢量的x分量,并且基于第二IDX和一组y分量来确定偏移矢量的y分量。

可以使用任何合适的方法和二进制化来表示一组偏移方向、一组步长、一组幅度、一组x分量、一组y分量等。一组偏移方向、一组步长、一组幅度、一组x分量、一组y分量等可以是偏置的或未偏置的。一组偏移方向、一组步长、一组幅度、一组x分量、一组y分量等可在编码器和解码器中预先定义,或者可以用于编码器和解码器。

本申请实施例和示例可以分别使用,或者以任何顺序进行组合。此外,所述方法、实施例和示例,可以通过处理电路(例如,至少一个处理器,IC,电路等)来实施。在一个示例中,执行程序的至少一个处理器被存储在非易失性计算机可读介质中。术语块被解释为预测块,CB,或CU等。

上述技术可以通过计算机可读指令实现为计算机软件,并且物理地存储在一个或至少两个计算机可读介质中。例如,图14示出了计算机设备(1400),其适于实现所公开主题的某些实施例。

所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由一个或至少两个计算机中央处理单元(CPU),图形处理单元(GPU)等直接执行或通过译码、微代码等方式执行。

所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。

图14所示的用于计算机设备(1400)的组件本质上是示例性的,并不用于对实现本申请实施例的计算机软件的使用范围或功能进行任何限制。也不应将组件的配置解释为与计算机设备(1400)的示例性实施例中所示的任一组件或其组合具有任何依赖性或要求。

计算机设备(1400)可以包括某些人机界面输入设备。这种人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出),对一个或至少两个人类用户的输入做出响应。所述人机界面设备还可用于捕获某些媒体,气与人类有意识的输入不必直接相关,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。

人机界面输入设备可包括以下中的一个或至少两个(仅绘出其中一个):键盘(1401)、鼠标(1402)、触控板(1403)、触摸屏(1410)、数据手套(未示出)、操纵杆(1405)、麦克风(1406)、扫描仪(1407)、照相机(1408)。

计算机设备(1400)还可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或至少两个人类用户的感觉。这样的人机界面输出设备可包括触觉输出设备(例如通过触摸屏(1410)、数据手套(未示出)或操纵杆(1405)的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如,扬声器(1409)、耳机(未示出))、视觉输出设备(例如,包括阴极射线管屏幕、液晶屏幕、等离子屏幕、有机发光二极管屏的屏幕(1410),其中每一个都具有或没有触摸屏输入功能、每一个都具有或没有触觉反馈功能——其中一些可通过诸如立体画面输出的手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱(未示出))以及打印机(未示出)。

计算机设备(1400)还可以包括人可访问的存储设备及其相关介质,如包括具有CD/DVD的高密度只读/可重写式光盘(CD/DVD ROM/RW)(1420)或类似介质(1421)的光学介质、拇指驱动器(1422)、可移动硬盘驱动器或固体状态驱动器(1423),诸如磁带和软盘(未示出)的传统磁介质,诸如安全软件保护器(未示出)等的基于ROM/ASIC/PLD的专用设备,等等。

本领域技术人员还应当理解,结合所公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它瞬时信号。

计算机设备(1400)还可以包括通往一个或至少两个通信网络的接口。例如,网络可以是无线的、有线的、光学的。网络还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。网络还包括以太网、无线局域网、蜂窝网络(GSM、3G、4G、5G、LTE等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括CANBus)等等。某些网络通常需要外部网络接口适配器,用于连接到某些通用数据端口或外围总线(1449)(例如,计算机设备(1400)的USB端口);其它系统通常通过连接到如下所述的系统总线集成到计算机设备(1400)的核心(例如,以太网接口集成到PC计算机设备或蜂窝网络接口集成到智能电话计算机设备)。通过使用这些网络中的任何一个,计算机设备(1400)可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如CAN总线到某些CAN总线设备),或双向的,例如通过局域或广域数字网络到其它计算机设备。上述的每个网络和网络接口可使用某些协议和协议栈。

上述的人机界面设备、人可访问的存储设备以及网络接口可以连接到计算机设备(1400)的核心(1440)。

核心(1440)可包括一个或至少两个中央处理单元(CPU)(1441)、图形处理单元(GPU)(1442)、以现场可编程门阵列(FPGA)(1443)形式的专用可编程处理单元、用于特定任务的硬件加速器(1444)等。这些设备以及只读存储器(ROM)(1445)、随机存取存储器(1446)、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘等)(1447)等可通过系统总线(1448)进行连接。在某些计算机设备中,可以以一个或至少两个物理插头的形式访问系统总线(1448),以便可通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线(1448),或通过外围总线(1449)进行连接。外围总线的体系结构包括外部控制器接口PCI、通用串行总线USB等。

CPU(1441)、GPU(1442)、FPGA(1443)和加速器(1444)可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在ROM(1445)或RAM(1446)中。过渡数据也可以存储在RAM(1446)中,而永久数据可以存储在例如内部大容量存储器(1447)中。通过使用高速缓冲存储器可实现对任何存储器设备的快速存储和检索,高速缓冲存储器可与一个或至少两个CPU(1441)、GPU(1442)、大容量存储器(1447)、ROM(1445)、RAM(1446)等紧密关联。

所述计算机可读介质上可具有计算机代码,用于执行各种计算机实现的操作。介质和计算机代码可以是为本申请的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。

作为实施例而非限制,具有体系结构(1400)的计算机设备,特别是核心(1440),可以作为处理器(包括CPU、GPU、FPGA、加速器等)提供执行包含在一个或至少两个有形的计算机可读介质中的软件的功能。这种计算机可读介质可以是与上述的用户可访问的大容量存储器相关联的介质,以及具有非易失性的核心(1440)的特定存储器,例如核心内部大容量存储器(1447)或ROM(1445)。实现本申请的各种实施例的软件可以存储在这种设备中并且由核心(1440)执行。根据特定需要,计算机可读介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心(1440)特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在RAM(1446)中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机设备可以提供逻辑硬连线或以其它方式包含在电路(例如,加速器(1444))中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(IC)),包含执行逻辑的电路,或两者兼备。本申请包括任何合适的硬件和软件组合。

附录A:首字母缩略词

JEM:联合开发模式

VVC:通用视频编码

BMS:基准集合

MV:运动向量

HEVC:高效视频编码

SEI:补充增强信息

VUI:视频可用性信息

GOP:图片组

TU:变换单元

PU:预测单元

CTU:编码树单元

CTB:编码树块

PB:预测块

HRD:假设参考解码器

SNR:信噪比

CPU:中央处理单元

GPU:图形处理单元

CRT:阴极射线管

LCD:液晶显示

OLED:有机发光二极管

CD:光盘

DVD:数字化视频光盘

ROM:只读存储器

RAM:随机存取存储器

ASIC:专用集成电路

PLD:可编程逻辑设备

LAN:局域网

GSM:全球移动通信系统

LTE:长期演进

CANBus:控制器局域网络总线

USB:通用串行总线

PCI:外围设备互连

FPGA:现场可编程门阵列

SSD:固态驱动器

IC:集成电路

CU:编码单元

虽然本申请已对至少两个示例性实施例进行了描述,但实施例的各种变更、排列和各种等同替换均属于本申请的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确示出或描述,但其体现了本申请的原则,因此属于本申请的精神和范围之内。

技术分类

06120114742622