一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于视频编码的方法和装置与流程

2022-12-03 12:33:20 来源:中国专利 TAG:

用于视频编码的方法和装置
引用并入
1.本技术要求2021年9月29日提交的美国专利申请第17/489,258号“method and apparatus for video coding”的优先权权益,该美国专利申请要求2021年1月15日提交的美国临时申请第63/138,201号“bi-prediction with context adaptive weights”的优先权的权益。在先申请的全部公开内容在此通过引用整体并入本文。
技术领域
2.本公开内容描述了总体与视频编码有关的实施方式。


背景技术:

3.本文中提供的背景描述是为了总体上呈现本公开内容的背景的目的。就本背景技术部分中描述的工作的程度而言,目前署名的发明人的工作以及在提交时可以不另外被限定作为现有技术的描述的方面既没有明确地也没有隐含地被承认为针对本公开内容的现有技术。
4.可使用具有运动补偿的帧间图片预测来进行视频编码和解码。未压缩的数字视频可以包括一系列图片,每个图片在空间维度为例如1920
×
1080个亮度样本以及相关联的色度样本。该一系列图片可以具有固定的或可变的图片速率(也被非正式地称为帧速率),例如每秒60幅图片或60hz。未压缩的视频对码率的要求较高。例如,每样本8比特的1080p60 4:2:0视频(60hz帧速率下1920
×
1080亮度样本分辨率)要求接近1.5gbit/s的带宽。一小时的这样的视频需要大于600千兆字节的存储空间。
5.视频编码和视频解码的一个目的可以是通过压缩来降低输入视频信号的冗余度。压缩可以有助于降低上述带宽需求或存储空间需求,在一些情况下可以降低两个或更多个数量级。可以采用无损压缩、有损压缩及其组合。无损压缩是指可以根据经压缩的原始信号重建原始信号的精确副本的技术。当使用有损压缩时,重建的信号可能与原始信号不同,但是原始信号与重建的信号之间的失真足够小,使得重建的信号能够用于目标应用。在视频的情况下,广泛地采用有损压缩。可被容许的失真量取决于应用;例如,与电视发行应用的用户相比,某些消费者流式传输应用的用户可能容许较高的失真。可实现的压缩比可以反映出:越高的可允许/可容许的失真可以产生越高的压缩比。
6.运动补偿可以是有损压缩技术,并且可以涉及下述技术:在由运动矢量(此后被称为mv)指示的方向上进行空间移位之后,使用来自先前重建的图片或其部分(参考图片)的样本数据的块来预测新重建的图片或图片部分。在一些情况下,参考图片可以与当前重建中的图片相同。mv可以具有两个维度x和y,也可以具有三个维度,第三维度是使用中的参考图片的指示(后者间接地可以是时间维度)。
7.在一些视频压缩技术中,可以根据其他mv预测适用于样本数据的特定区域的mv,例如根据与在空间上邻近正在重建的区域的样本数据的另一区域有关并且在解码顺序上先于该mv的mv。这样做可以大幅减少编码mv所需的数据量,从而消除冗余并提高压缩。例
如,由于在对从摄像装置得到的输入视频信号(被称为自然视频)进行编码时存在比单个mv所适用的区域大的区域沿相似的方向移的统计可能性,并且因此在一些情况下可以使用根据相邻区域的mv得到的相似运动矢量进行预测,因此,mv预测可以有效地发挥作用。这使得针对给定区域找到的mv与根据周围mv预测的mv相似或相同,并且进而可以在熵编码之后以比直接对mv进行编码的情况下将使用的比特数小的比特数进行表示。在一些情况下,mv预测可以是对从原始信号(即样本流)得出的信号(即mv)进行无损压缩的示例。在其他情况下,mv预测本身可以是有损的,例如由于根据若干周围mv计算预测值时的舍入误差。
8.在h.265/hevc(itu-t h.265建议书,“高效视频编解码(high efficiency video coding)”,2016年12月)中描述了各种mv预测机制。在h.265提供的多种mv预测机制中,本文描述的是此后被称为“空间合并”的技术。
9.参照图1,当前块(101)包括在运动搜索过程期间已经由编码器发现的可以根据已经经空间移位的相同大小的先前块预测的样本。可以根据与一个或更多个参考图片相关联的元数据得出该mv,而非对mv直接编码,例如,使用与被表示为a0、a1和b0、b1、b2(分别对应102到106)五个周围样本中的任一样本相关联的mv,根据(按解码次序)最近的参考图片的元数据得出该mv。在h.265中,mv预测可以使用来自相邻块也正在使用的同一参考图片的预测值。


技术实现要素:

10.本公开内容的各方面提供用于视频编码和解码的方法和装置。在一些示例中,用于视频解码的装置包括处理电路。处理电路可以从已编码视频比特流解码当前块的已编码信息。已编码信息可以指示当前块的双向预测运动补偿模式。处理电路可以基于当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本来确定在双向预测运动补偿模式中使用的权重。处理电路可以使用所确定的权重、基于第一预测块和第二预测块中的对应样本的加权平均来重建当前块中的样本。
11.在实施方式中,权重是存储在解码器中的预定义权重之一。
12.在示例中,处理电路解码已编码信息中的索引值。处理电路可以基于当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本对预定义权重进行排序。经排序的预定义权重中的每一个可以与唯一的排序索引相关联。所解码的索引值对应于排序索引中的一个排序索引。处理电路可以将权重确定为经排序的预定义权重中的与排序索引中的该一个排序索引相关联的预定义权重。
13.在示例中,处理电路基于预定义成本测量来选择预定义权重之一作为权重,所述预定义成本测量使用当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本执行。
14.在示例中,处理电路基于当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本来计算权重。
15.在实施方式中,当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本分别是当前块、第一预测块和第二预测块的空间相邻重建样本。
16.在示例中,第一预测块在第一参考图片中,并且第二预测块在与第一参考图片不
同的第二参考图片中。
17.在一些示例中,一种用于视频编码的装置,包括处理电路。用于编码的处理电路确定用于对当前块进行编码的双向预测运动补偿模式。此外,用于编码的处理电路基于当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本来确定在双向预测运动补偿模式中使用的权重。处理电路进一步将当前块的信息编码在视频比特流中。已编码信息指示当前块的双向预测运动补偿模式。
18.在实施方式中,权重是存储在解码器中的预定义权重之一。
19.在示例中,用于编码的处理电路基于当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本对预定义权重进行排序。经排序的预定义权重中的每一个与唯一的排序索引相关联。用于编码的处理电路将权重确定为经排序的预定义权重中的一个预定义权重,并且将索引值编码在已编码信息中。索引值是排序索引中的与权重相关联的排序索引。
20.在示例中,用于编码的处理电路基于预定义成本测量来选择预定义权重之一作为权重,所述预定义成本测量使用当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本来执行。
21.在示例中,用于编码的处理电路基于当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本来计算权重。
22.本公开内容的各方面还提供存储有指令的非暂态计算机可读介质,所述指令在由计算机执行以进行视频解码和/或编码时使计算机执行用于视频解码和/或编码的方法。
附图说明
23.根据以下详细描述和附图,所公开的主题的进一步的特征、性质和各种优点将变得更加明显,在附图中:
24.图1是在一个示例中当前块及其周围的空间合并候选的示意图。
25.图2是根据实施方式的通信系统(200)的简化框图的示意图。
26.图3是根据实施方式的通信系统(300)的简化框图的示意图。
27.图4是根据实施方式的解码器的简化框图的示意图。
28.图5是根据实施方式的编码器的简化框图的示意图。
29.图6示出了根据另一实施方式的编码器的框图。
30.图7示出了根据另一实施方式的解码器的框图。
31.图8示出了根据本公开内容的实施方式的视频编码中使用的分割技术的示例。
32.图9示出了根据本公开内容的实施方式的视频编码中使用的分割技术的示例。
33.图10a至图10b示出了根据本公开内容的实施方式的四叉树加二叉树(quad tree plus binary tree,qtbt)块分割技术的示例。
34.图11a至图11b示出了根据本公开内容的实施方式的竖直中心侧三叉树分割和水平中心侧三叉树分割的示例。
35.图12示出了根据本公开内容的实施方式的当前cu的相邻样本和当前cu的参考块的图。
36.图13示出了根据本公开内容的实施方式的当前块和预测块的模板的示例。
37.图14示出了概述根据本公开内容的实施方式的处理的流程图。
38.图15示出了概述根据本公开内容的实施方式的处理的流程图。
39.图16是根据实施方式的计算机系统的示意图。
具体实施方式
40.图2示出了根据本公开内容的实施方式的通信系统(200)的简化框图。通信系统(200)包括可以经由例如网络(250)相互通信的多个终端设备。例如,通信系统(200)包括通过网络(250)互连的第一对终端设备(210)和(220)。在图2示例中,第一对终端设备(210)和(220)执行单向数据传输。例如,终端设备(210)可以对视频数据(例如,由终端设备(210)捕获的视频图片流)进行编码,以经由网络(250)传输到另一终端设备(220)。已编码视频数据可以以一个或更多个已编码视频比特流的形式传输。终端设备(220)可以从网络(250)接收已编码视频数据,对该已编码视频数据进行解码以恢复视频图片,并且根据恢复的视频数据显示视频图片。在媒体服务应用等中,单向数据传输可能是常见的。
41.在另一示例中,通信系统(200)包括执行已编码视频数据的双向传输的第二对终端设备(230)和(240),该双向传输可以例如在视频会议期间发生。对于双向数据传输,在示例中,终端设备(230)和(240)中的每个终端设备可以对视频数据(例如,由终端设备捕获的视频图片流)进行编码,以经由网络(250)传输到终端设备(230)和(240)中的另一终端设备。终端设备(230)和(240)中的每个终端设备还可以接收由终端设备(230)和(240)中的另一终端设备传输的已编码视频数据,并且可以对该已编码视频数据进行解码以恢复视频图片,并且可以根据恢复的视频数据在可访问的显示设备处显示视频图片。
42.在图2示例中,终端设备(210)、(220)、(230)和(240)可以被示为服务器、个人计算机和智能电话,但是本公开内容的原理可以不限于此。本公开内容的实施方式适用于膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络(250)表示在终端设备(210)、(220)、(230)和(240)之间传送已编码视频数据的任何数目的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(250)可以在电路交换信道和/或分组交换信道中交换数据。代表性网络包括电信网络、局域网、广域网和/或互联网。出于当下论述的目的,除非在下文中有所解释,否则网络(250)的架构和拓扑对于本公开内容的操作来说可能是无关紧要的。
43.作为所公开的主题的应用的示例,图3示出了视频编码器和视频解码器在流式传输环境中的布置。所公开的主题可以同等地适用于其他支持视频的应用,包括例如:视频会议,数字电视,在包括cd、dvd、记忆棒等的数字介质上存储压缩视频等。
44.流式传输系统可以包括捕获子系统(313),捕获子系统可以包括视频源(301)例如数字摄像装置,视频源创建例如未压缩的视频图片流(302)。在示例中,视频图片流(302)包括由数字摄像装置拍摄的样本。被描绘为粗线以强调与已编码视频数据(304)(或已编码视频比特流)相比时的高数据量的视频图片流(302)可以由包括耦接至视频源(301)的视频编码器(303)的电子设备(320)处理。视频编码器(303)可以包括硬件、软件或其组合,以实现或实施如下更详细地描述的所公开的主题的各方面。被描绘为细线以强调与视频图片流(302)进行比较时的较低数据量的已编码视频数据(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的上下文中。
45.注意,电子设备(320)和(330)可以包括其他部件(未示出)。例如,电子设备(320)可以包括视频解码器(未示出),并且电子设备(330)也可以包括视频编码器(未示出)。
46.图4示出了根据本公开内容的实施方式的视频解码器(410)的框图。视频解码器(410)可以被包括在电子设备(430)中。电子设备(430)可以包括接收器(431)(例如,接收电路)。视频解码器(410)可以被用来代替图3示例中的视频解码器(310)。
47.接收器(431)可以接收要由视频解码器(410)解码的一个或更多个经编码视频序列;在相同或另一实施方式中,每次解码一个经编码视频序列,其中每个经编码视频序列的解码独立于其他经编码视频序列。可以从信道(401)接收已编码视频序列,该信道可以是至存储已编码视频数据的存储设备的硬件/软件链路。接收器(431)可以接收已编码的视频数据以及其他数据,例如,可转发到它们各自的使用实体(未标示)的已编码音频数据和/或辅助数据流。接收器(431)可以将已编码视频序列与其他数据分开。为了防止网络抖动,可以在接收器(431)与熵解码器/解析器(420)(此后称为“解析器(420)”)之间耦接缓冲存储器(415)。在某些应用中,缓冲存储器(415)是视频解码器(410)的一部分。在其他应用中,缓冲存储器(415)可以在视频解码器(410)外部(未描绘)。在又一些其他应用中,在视频解码器(410)外部可以存在缓冲存储器(未描绘)以例如防止网络抖动,并且此外在视频解码器(410)内部可以存在另一缓冲存储器(415)以例如处理播出定时。当接收器(431)从具有足够带宽和可控性的存储/转发设备或从等时同步网络接收数据时,可以不需要缓冲存储器(415),或者缓冲存储器(415)可以较小。为了在互联网等业务分组网络上使用,可能需要缓冲存储器(415),该缓冲存储器(415)可以相对较大并且可以有利地具有自适应性大小,并且可以至少部分地实现在操作系统或视频解码器(410)外部的类似元件(未描绘)中。
48.视频解码器(410)可以包括解析器(420)以根据已编码视频序列重建符号(421)。这些符号的类别包括用于管理视频解码器(410)的操作的信息,以及可能包括用以控制诸如呈现设备(412)(例如,显示屏)的呈现设备的信息,该呈现设备不是电子设备(430)的组成部分,但是可以耦合至电子设备(430),如图4所示。用于呈现设备的控制信息可以是补充增强信息(supplemental enhancement information,sei消息)或视频可用性信息(video usability information,vui)参数集片段(未描绘)的形式。解析器(420)可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或视频编码标准进行,并且可以遵循各种原理,包括可变长度编码、霍夫曼编码(huffman coding)、具有或不具有上下文灵敏度的算术编码等。解析器(420)可以基于与群组对应的至少一个参数,从已编码视频序列中提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可以包括:图片群组(group of pictures,gop)、图片、图块、切片、宏块、编码单
元(coding unit,cu)、块、变换单元(transform unit,tu)、预测单元(prediction unit,pu)等。解析器(420)还可以从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等。
49.解析器(420)可以对从缓冲存储器(415)接收的视频序列执行熵解码/解析操作,从而创建符号(421)。
50.取决于已编码视频图片或已编码视频图片的部分的类型(诸如:帧间图片和帧内图片、帧间块和帧内块)以及其他因素,符号(421)的重建可能涉及多个不同单元。涉及哪些单元以及涉及方式可由解析器(420)从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描述解析器(420)与下文的多个单元之间的此类子群控制信息流。
51.除已经提及的功能块以外,视频解码器(410)可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施方式中,这些单元中的许多单元彼此紧密交互并且可以至少部分地彼此集成。然而,出于描述所公开主题的目的,概念上细分成下文的功能单元是适当的。
52.第一单元是缩放器/逆变换单元(451)。缩放器/逆变换单元(451)从解析器(420)接收作为符号(421)的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(451)可以输出包括样本值的块,所述样本值可以输入到聚合器(455)中。
53.在一些情况下,缩放器/逆变换(451)的输出样本可以属于帧内编码的块;即:不使用来自先前重建的图片的预测性信息,但是可以使用来自当前图片的先前重建的部分的预测性信息的块。这样的预测性信息可由帧内图片预测单元(452)提供。在一些情况下,帧内图片预测单元(452)使用从当前图片缓冲器(458)获取的周围已经重建的信息来生成与重建中的块相同大小和形状的块。例如,当前图片缓冲器(458)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些情况下,聚合器(455)基于每个样本,将帧内预测单元(452)已经生成的预测信息添加到由缩放器/逆变换单元(451)提供的输出样本信息。
54.在其他情况下,缩放器/逆变换单元(451)的输出样本可以属于已帧间编码并且可能经运动补偿的块。在这种情况下,运动补偿预测单元(453)可以访问参考图片存储器(457)以取得用于预测的样本。在根据属于块的符号(421)对取得的样本进行运动补偿之后,这些样本可以由聚合器(455)添加到缩放器/逆变换单元(451)的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(453)从中取得预测样本的参考图片存储器(457)内的地址可以由运动矢量控制,运动矢量能够以符号(421)的形式供运动补偿预测单元(453)使用,符号(421)可以具有例如x、y和参考图片分量。运动补偿还可以包括在使用子样本精确运动矢量时从参考图片存储器(457)取得的样本值的内插、运动矢量预测机制等。
55.聚合器(455)的输出样本可以在环路滤波器单元(456)中经受各种环路滤波技术。视频压缩技术可以包括环路内滤波器技术,所述环路内滤波器技术由包括在已编码视频序列(也被称为已编码视频比特流)中的且作为来自解析器(420)的符号(421)可用于环路滤波器单元(456)的参数来控制,但是也可以响应于在对已编码图片或已编码视频序列的先前(按解码顺序)部分进行解码期间获得的元信息,以及响应于经先前重建和环路滤波的样本值。
56.环路滤波器单元(456)的输出可以是样本流,其可以被输出至呈现器设备(412)以及被存储在参考图片存储器(457)中以用于将来的帧间图片预测。
57.一旦完全重建,某些已编码图片就可以被用作参考图片以用于将来预测。例如,一旦与当前图片对应的已编码图片被完全重建,并且该已编码图片(通过例如解析器(420))被识别为参考图片,则当前图片缓冲器(458)可以变为参考图片存储器(457)的一部分,并且可以在开始重建后续的已编码图片之前重新分配新的当前图片缓冲器。
58.视频解码器(410)可以根据诸如itu-t h.265建议书的预定的视频压缩技术或标准执行解码操作。在编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件二者的意义上,编码视频序列可以符合由所使用的视频压缩技术或标准指定的语法。具体地,配置文件可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为仅在所述配置文件下可使用的工具。对于合规性,还要求已编码视频序列的复杂度处于由视频压缩技术或标准的层级限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建采样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设置的限制可以通过假设参考解码器(hypothetical reference decoder,hrd)规范以及在编码视频序列中用信号表示的hrd缓冲器管理的元数据来进一步限定。
59.在实施方式中,接收器(431)可以连同已编码视频一起接收附加(冗余)数据。附加数据可以被包括为已编码视频序列的一部分。视频解码器(410)可以使用附加数据对数据进行适当解码以及/或者更准确地重建原始视频数据。附加数据可以是例如时间、空间或信噪比(signal noise ratio,snr)增强层、冗余切片、冗余图片、前向纠错码等形式。
60.图5示出了根据本公开内容的实施方式的视频编码器(503)的框图。视频编码器(503)被包括在电子设备(520)中。电子设备(520)包括传输器(540)(例如,传输电路)。视频编码器(503)可以用于代替图3的示例中的视频编码器(303)。
61.视频编码器(503)可以从可以捕获要由视频编码器(503)编码的视频图像的视频源(501)(并非图5的示例中的电子设备(520)的一部分)接收视频样本。在另一示例中,视频源(501)是电子设备(520)的一部分。
62.视频源(501)可以提供要由视频编码器(503)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可以具有任何合适的位深度(例如:8位、10位、12位
……
)、任何色彩空间(例如,bt.601y crcb、rgb
……
)和任何合适的采样结构(例如y crcb 4:2:0、y crcb 4:4:4)。在媒体服务系统中,视频源(501)可以是存储先前已准备的视频的存储设备。在视频会议系统中,视频源(501)可以是捕获本地图像信息作为视频序列的摄像装置。可以将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片本身可以被构组织为空间像素阵列,其中,取决于所用的采样结构、色彩空间等,每个像素可以包括一个或更多个样本。本领域技术人员可以很容易理解像素与样本之间的关系。以下描述侧重于样本。
63.根据实施方式,视频编码器(503)可以实时地或者在由应用要求的任何其他时间约束下将源视频序列的图片编码并压缩成已编码视频序列(543)。施行适当的编码速度是控制器(550)的一个功能。在一些实施方式中,控制器(550)控制如下所述的其他功能单元并且在功能上耦接至所述其他功能单元。为简洁起见未描绘耦接。由控制器(550)设置的参
数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值
……
)、图片大小、图片群组(gop)布局、最大运动矢量搜索范围等。控制器(550)可以被配置成具有其他合适的功能,这些功能涉及针对特定系统设计而优化的视频编码器(503)。
64.在一些实施方式中,视频编码器(503)被配置成在编码环路中进行操作。作为简单的描述,在实施方式中,编码环路可包括源编码器(530)(例如,负责基于待编码的输入图片和参考图片创建符号,例如符号流)和嵌入于视频编码器(503)中的(本地)解码器(533)。解码器(533)以类似于(远程)解码器创建样本数据的方式重建符号以创建样本数据(因为在本技术所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(534)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(534)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如由于信道误差而无法维持同步性的情况下产生的漂移)也用在一些相关技术中。
[0065]“本地”解码器(533)的操作可以与“远程”解码器例如已经在上面结合图4详细描述的视频解码器(410)的操作相同。然而,仍简要地参照图4,当符号可用而且熵编码器(545)和解析器(420)能够无损地将符号编码/解码为已编码视频序列时,在本地解码器(533)中可以不完全实现包括缓冲存储器(415)和解析器(420)在内的视频解码器(410)的熵解码部分。
[0066]
此时可以观察到,除了存在于解码器中的解析/熵解码之外的任何解码器技术也必然需要以基本上相同的功能形式存在于对应的编码器中。出于该原因,所公开的主题侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。
[0067]
在一些示例中,在操作期间,源编码器(530)可以执行运动补偿预测编码,运动补偿预测编码参考来自视频序列的被指定为“参考图片”的一个或更多个先前已编码图片对输入图片进行预测性编码。以这种方式,编码引擎(532)对输入图片的像素块与可以被选作输入图片的预测参考的参考图片的像素块之间的差异进行编码。
[0068]
本地视频解码器(533)可以基于由源编码器(530)创建的符号对可以指定为参考图片的图片的已编码视频数据进行解码。编码引擎(532)的操作可以有利地是有损过程。当已编码的视频数据可以在视频解码器(图5中未示出)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(533)复制解码过程,所述解码过程可由视频解码器对参考图片执行,且可使重建的参考图片存储在参考图片高速缓存(534)中。以此方式,视频编码器(503)可在本地存储重建的参考图片的副本,所述副本与将由远端视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。
[0069]
预测器(535)可以针对编码引擎(532)执行预测搜索。即,对于要编码的新图片,预测器(535)可以在参考图片存储器(534)中搜索可以用作新图片的合适预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(535)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器(535)获得的搜索结果,可确定输入图片可具有从参考图片存储器(534)中存储的多个参考图片取
得的预测参考。
[0070]
控制器(550)可管理源编码器(530)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
[0071]
可以在熵编码器(545)中对所有上述功能单元的输出进行熵编码。熵编码器(545)通过根据诸如霍夫曼编码、可变长度编码、算术编码等的技术对由各种功能单元生成的符号进行无损压缩来将这些符号转换为已编码视频序列。
[0072]
传输器(540)可以缓冲由熵编码器(545)创建的已编码视频序列,从而为经由通信信道(560)进行传输做准备,该通信信道可以是通向将存储已编码视频数据的存储设备的硬件/软件链路。传输器(540)可以将来自视频编码器(503)的已编码视频数据与要传输的其他数据合并,所述其他数据例如已编码音频数据和/或辅助数据流(未示出源)。
[0073]
控制器(550)可以管理视频编码器(503)的操作。在编码期间,控制器(550)可以为每个编码图片分配可能影响可以应用于相应的图片的编码技术的某一已编码图片类型。例如,通常可以将图片分配为以下任一种图片类型:
[0074]
帧内图片(i图片),其可以是在不将序列中的任何其他图片用作预测源的情况下就可以被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(independent decoder refresh,“idr”)图片。本领域技术人员了解i图片的那些变型及其相应的应用和特征。
[0075]
预测性图片(p图片),其可以是可以使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
[0076]
双向预测性图片(b图片),其可以是可以使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可以使用多于两个参考图片和相关联元数据以用于重建单个块。
[0077]
源图片通常可以在空间上细分成多个样本块(例如,分别为4
×
4、8
×
8、4
×
8或16
×
16个样本的块),并且逐块进行编码。这些块可以参考其他(已编码的)块进行预测性编码,所述其他块是通过应用于块的相应图片的编码分配而确定的。例如,可以对i图片的块进行非预测性编码,或者可以参考同一图片的已编码块对i图片的块进行预测性编码(空间预测或帧内预测)。可以参考一个先前已编码的参考图片经由空间预测或经由时域预测对p图片的像素块进行预测编码。可以参考一个或两个先前已编码的参考图片经由空间预测或经由时域预测对b图片的块进行预测编码。
[0078]
视频编码器(503)可以根据诸如itu-t h.265建议书的预定的视频编码技术或标准执行编码操作。在视频编码器(503)的操作中,视频编码器(503)可以执行各种压缩操作,包括利用输入视频序列中的时间冗余和空间冗余的预测性编码操作。因此,已编码视频数据可以符合由所使用的视频编码技术或标准指定的语法。
[0079]
在实施方式中,传输器(540)可以在传输已编码的视频时传输附加数据。源编码器(530)可以包括这样的数据作为已编码视频序列的一部分。附加数据可以包括时间/空间/snr增强层、其他形式的冗余数据如冗余图片和切片、sei消息、vui参数集片段等。
[0080]
采集到的视频可以作为呈时间序列的多个源图片(视频图片)。帧内图片预测(通
常被简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测利用图片之间的(时间或其他)相关性。在示例中,将正在被编码/解码的特定图片(其被称为当前图片)分割成块。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可以通过被称作运动矢量的矢量对当前图片中的块进行编码。运动矢量指向参考图片中的参考块,并且在使用多个参考图片的情况下,该运动矢量可以具有识别参考图片的第三维度。
[0081]
在一些实施方式中,可以将双向预测技术用在帧间图片预测中。根据双向预测技术,使用两个参考图片,例如按解码次序均在视频中的当前图片之前(但按显示次序可能分别是过去和将来)第一参考图片和第二参考图片。可以通过指向第一参考图片中的第一参考块的第一运动矢量以及指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。可以通过第一参考块和第二参考块的组合来预测该块。
[0082]
此外,可以在帧间图片预测中使用合并模式技术以提高编码效率。
[0083]
根据本公开内容的一些示例,以块为单位执行诸如帧间图片预测和帧内图片预测等预测。例如,根据hevc标准,将视频图片序列中的图片分割成编码树单元(coding tree 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像素等。
[0084]
图6示出了根据本公开内容的另一实施方式的视频编码器(603)的图。视频编码器(603)被配置成接收视频图片序列中的当前视频图片内的样本值的处理块(例如,预测块),并且将处理块编码到作为已编码视频序列的一部分的已编码图片中。在示例中,视频编码器(603)用于代替图3示例中的视频编码器(303)。
[0085]
在hevc示例中,视频编码器(603)接收用于处理块的样本值的矩阵,例如8
×
8样本的预测块等。视频编码器(603)使用例如率失真优化来确定使用帧内模式、帧间模式还是双向预测模式能最佳地编码处理块。在将以帧内模式对处理块进行编码的情况下,视频编码器(603)可以使用帧内预测技术将处理块编码到已编码图片中;而在将以帧间模式或双向预测模式对处理块进行编码的情况下,视频编码器(603)可以分别使用帧间预测或双向预测技术将处理块编码到已编码图片中。在某些视频编码技术中,合并模式可以是帧间图片预测子模式,其中,在不借助预测值外部的已编码运动矢量分量的情况下,根据这一个或更多个运动矢量预测值得出运动矢量。在某些其他视频编码技术中,可以存在适用于主题块的运动矢量分量。在示例中,视频编码器(603)包括其他部件,例如,确定处理块的模式的模式决策模块(未示出)。
[0086]
在图6的示例中,视频编码器(603)包括如图6所示的耦接到一起的帧间编码器(630)、帧内编码器(622)、残差计算器(623)、开关(626)、残差编码器(624)、通用控制器
(621)和熵编码器(625)。
[0087]
帧间编码器(630)被配置成接收当前块(例如,处理块)的样本、将该块与参考图片中的一个或更多个参考块(例如,先前图片的块和之后图片中的块)进行比较、生成帧间预测信息(例如,运动矢量、合并模式信息、根据帧间编码技术的冗余信息的描述)、以及基于帧间预测信息使用任何合适的技术来计算帧间预测结果(例如,已预测块)。在一些示例中,参考图片是基于已编码的视频信息解码的已解码参考图片。
[0088]
帧内编码器(622)被配置成:接收当前块(例如,处理块)的样本;在一些情况下将该块与同一图片中已经编码的块进行比较;在变换之后生成量化系数;以及在一些情况下还生成帧内预测信息(例如,根据一个或更多个帧内编码技术的帧内预测方向信息)。在示例中,帧内编码器(622)还基于帧内预测信息和同一图片中的参考块计算帧内预测结果(例如,已预测块)。
[0089]
通用控制器(621)被配置成确定通用控制数据,并且基于通用控制数据控制视频编码器(603)的其他部件。在示例中,通用控制器(621)确定块的模式,并且基于该模式向开关(626)提供控制信号。例如,当模式是帧内模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧内模式结果,并且控制熵编码器(625)以选择帧内预测信息并且将该帧内预测信息包括在比特流中;而当模式是帧间模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧间预测结果,并且控制熵编码器(625)以选择帧间预测信息并且将该帧间预测信息包括在比特流中。
[0090]
残差计算器(623)被配置成计算所接收的块与选自帧内编码器(622)或帧间编码器(630)的预测结果之间的差(残差数据)。残差编码器(624)被配置成基于残差数据进行操作以对残差数据进行编码从而生成变换系数。在示例中,残差编码器(624)被配置成将残差数据从空间域转换到频域,并且生成变换系数。然后,对变换系数进行量化处理以获得经量化的变换系数。在各种实施方式中,视频编码器(603)还包括残差解码器(628)。残差解码器(628)被配置成执行逆变换并生成已解码残差数据。已解码残差数据可以适当地由帧内编码器(622)和帧间编码器(630)使用。例如,帧间编码器(630)可以基于已解码残差数据和帧间预测信息生成解码块,并且帧内编码器(622)可以基于已解码残差数据和帧内预测信息生成已解码块。在一些示例中,适当处理已解码块以生成已解码图片,并且这些已解码图片可以在存储器电路(未示出)中缓冲并用作参考图片。
[0091]
熵编码器(625)被配置成将比特流格式化以包括已编码的块。熵编码器(625)被配置成根据诸如hevc标准之类的合适的标准在比特流中包括各种信息。在示例中,熵编码器(625)被配置成包括通用控制数据、选择的预测信息(例如,帧内预测信息或帧间预测信息)、残差信息和比特流中的其他合适的信息。注意,根据所公开的主题,当在帧间模式或双向预测模式的合并子模式下对块进行编码时,不存在残差信息。
[0092]
图7示出了根据本公开内容的另一实施方式的视频解码器(710)的图。视频解码器(710)被配置成接收作为已编码视频序列的一部分的已编码图片,并且对已编码图片进行解码以生成重建的图片。在示例中,视频解码器(710)用于代替图3示例中的视频解码器(310)。
[0093]
在图7示例中,视频解码器(710)包括如图7所示的耦接在一起的熵解码器(771)、帧间解码器(780)、残差解码器(773)、重建模块(774)以及帧内解码器(772)。
[0094]
熵解码器(771)可以被配置成根据已编码图片来重建某些符号,这些符号表示构成已编码图片的语法元素。这样的符号可以包括例如对块进行编码的模式(例如,帧内模式、帧间模式、双向预测模式、后二者的合并子模式或另一子模式)、可以识别分别供帧内解码器(772)或帧间解码器(780)用以进行预测的某些样本或元数据的预测信息(例如,帧内预测信息或帧间预测信息)、呈例如量化的变换系数的形式的残差信息等。在示例中,当预测模式是帧间或双向预测模式时,将帧间预测信息提供给帧间解码器(780);以及当预测类型是帧内预测类型时,将帧内预测信息提供给帧内解码器(772)。残差信息可以经受逆量化并且被提供给残差解码器(773)。
[0095]
帧间解码器(780)被配置成接收帧间预测信息,并且基于帧间预测信息生成帧间预测结果。
[0096]
帧内解码器(772)被配制成接收帧内预测信息,并且基于帧内预测信息生成预测结果。
[0097]
残差解码器(773)被配制成执行逆量化以提取解量化的变换系数,并且处理解量化的变换系数,以将残差从频域转换到空间域。残差解码器(773)还可能需要某些控制信息(用以获得量化器参数(quantizer parameter,qp)),并且所述信息可以由熵解码器(771)提供(未标示数据路径,因为这仅仅是低量控制信息)。
[0098]
重建模块(774)被配置成在空间域中组合由残差解码器(773)输出的残差与预测结果(可由帧间预测模块或帧内预测模块输出)以形成重建的块,所述重建的块可以是重建的图片的一部分,所述重建的图片继而可以是重建的视频的一部分。注意,可以执行其他合适的操作例如解块操作来改善视觉质量。
[0099]
注意,可以使用任何合适的技术来实现视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。在实施方式中,可以使用一个或更多个集成电路来实现视频编码器(303)、视频编码器(503)和视频编码器(603),以及视频解码器(310)、视频解码器(410)和视频解码器(710)。在另一实施方式中,可以使用执行软件指令的一个或更多个处理器来实现视频编码器(303)、视频编码器(503)和视频编码器(603),以及视频解码器(310)、视频解码器(410)和视频解码器(710)。
[0100]
本公开内容的各方面公开了图像和视频编码技术,例如具有上下文自适应权重的双向预测。例如,可以在帧间编码中使用具有上下文自适应权重的双向预测方法。
[0101]
视频编码格式可以包括任何合适的视频编码格式,例如,为互联网上的视频传输而设计的开放视频编码格式,例如开放媒体联盟(alliance for open media,aomedia)视频1(video 1,av1)的视频编码格式或超越av1的下一代aomedia视频格式。视频编码标准可以包括高效视频编码(high efficiency video coding,hevc)标准、超越hevc的下一代视频编码(例如,通用视频编码(versatiie video coding,vvc))等。
[0102]
通常,图片被分割成块,并且块可以是用于各种处理(例如编码、预测、变换等)的单元。可以使用各种块分割技术。
[0103]
图8示出了aomedia在视频编码格式vp9中使用的分割技术的示例。例如,图片(810)被分割成大小为64
×
64(例如,64个样本
×
64个样本)的多个块(820)。此外,4路分割树可以从64
×
64级别开始向下到更小的块,并且最低级别可以是4
×
4级别(例如,4个样本
×
4个样本的块大小)。在一些示例中,可以对块8
×
8及以下应用附加限制。在图8的示例中,
可以使用第一路(821)、第二路(822)、第三路(823)和第四路(824)中的一个将64
×
64块(820)分割成更小的块。指定为r的分割(在第四路(824)中示出)称为递归分割,因为可以在较低的等级下重复相同的分割树,直到最低的4
×
4级别。
[0104]
图9示出了为互联网上的视频传输设计的av1中使用的分割技术的示例。av1是作为vp9的继承者而开发的。例如,图片(910)被分割成大小为128
×
128(例如,128个样本
×
128个样本)的多个块(920)。此外,10路分割结构可以从128
×
128开始到更小的块。在图9的示例中,128
×
128块可以使用十种方式(921)至(930)中的一种分割成更小的块。av1不仅将分割树扩展到10路结构,而且增大最大尺寸(在vp9/av1用语中被称为超级块)以从128
×
128开始。指定为r的分割(在方式(929)中示出)被称为递归分割,因为可以在较低的等级下重复相同的分割树。10路结构可以包括4:1和1:4的矩形分割,如(921)和(928)所示。在示例中,没有一个矩形分割可以进一步细分。此外,av1为使用8
×
8级别以下的分割增加了更多的灵活性。例如,对于某些情况,2
×
2色度帧间预测是可能的。
[0105]
在一些示例中,块分割结构被称为编码树。在示例(例如,hevc)中,编码树可以具有四叉树结构,每个拆分将较大的正方形块拆分成四个较小的正方形块。在一些示例中,图片被拆分成编码树单元(coding tree unit,ctu),然后使用四叉树结构将ctu拆分成更小的块。根据四叉树结构,将编码树单元(cod
í
ng tree unit,ctu)拆分为编码单元(coding unit,cu)以适应各种局部特征。可以在cu级别作出关于是使用帧间图片预测(或帧间预测)(时间)还是使用图片内预测(或帧内预测)(空间)来对图片区域进行编码的决定。每个cu可以根据pu拆分类型进一步拆分为一个、两个或四个预测单元(prediction unit,pu)。在一个pu内,应用相同的预测处理,并且基于pu将相关信息(例如,预测信息)发送到解码器。
[0106]
在通过基于pu拆分类型应用预测处理获得残差块之后,可以根据另一四叉树结构将cu分割成变换单元(transform unit,tu)。在hevc的示例中,存在多个分割概念,包括cu、pu和tu。在一些实施方式中,cu或tu只能具有正方形,而pu可以具有正方形或矩形。在一些实施方式中,一个编码块可以进一步拆分成四个正方形子块,并且对每个子块即tu执行变换。每个tu可以使用被称为残差四叉树(residual quad tree,rqt)的四叉树结构进一步递归地拆分为更小的tu。
[0107]
在图片边界处,在一些示例(例如,hevc)中,可以采用隐式四叉树拆分,使得块保持四叉树拆分,直到尺寸适合图片边界。
[0108]
在一些示例(例如,vvc)中,块分割结构可以使用四叉树加二叉树(quad tree plus binary tree,qtbt)块分割结构。qtbt结构可以去除多种分割类型的概念(cu、pu和tu概念),并支持cu分割形状的更大灵活性。在qtbt块分割结构中,cu可以具有正方形或矩形形状。
[0109]
图10a示出了通过使用图10b所示的qtbt块分割结构(1020)来分割的ctu(1010)。ctu(1010)首先通过四叉树结构进行分割。四叉树叶节点通过二叉树结构或四叉树结构进一步分割。在二叉树拆分中,可以存在两种拆分类型,即对称水平拆分(例如,在qtbt块分割结构(1020)中标记为“0”)和对称竖直拆分(例如,在qtbt块分割结构(1020)中标记为“1”)。没有被进一步拆分的叶节点被称为cu,cu可以用于预测和变换处理而无需进一步分割。因此,cu、pu和tu在qtbt块分割结构中具有相同的块大小。
[0110]
在一些示例(例如,jem)中,cu可以包括不同颜色分量的编码块(coding block,
cb)。例如,在4:2:0色度格式的p切片和b切片的情况下,一个cu包含一个亮度cb和两个色度cb。cu可以包括单一颜色分量的cb。例如,在i切片的情况下,一个cu仅包含一个亮度cb或仅包含两个色度cb。
[0111]
在一些实施方式中,为qtbt块分割方案定义了以下参数:

ctu大小:四叉树的根节点大小,例如与hevc中的概念相同。

minqtsize:允许的最小四叉树叶节点大小。

maxbtsize:允许的最大二叉树根节点大小。

maxbtdepth:允许的最大二叉树深度。

minbtsize:允许的最小二叉树叶节点大小。
[0112]
在qtbt块分割结构的一个示例中,ctu大小设置为128
×
128个亮度样本,具有两个对应的64
×
64色度样本块,minqtsize设置为16
×
16,maxbtsize设置为64
×
64,minbtsize(针对宽度和高度二者)设置为4
×
4,maxbtdepth被设置为4。首先对ctu应用四叉树分割以生成四叉树叶节点。四叉树叶节点可以具有从16
×
16(即,minqtsize)到128
×
128(即,ctu大小)的大小。如果叶四叉树节点为128
×
128,则叶四叉树节点将不会通过二叉树进一步拆分,因为大小超过了maxbtsize(即64
×
64)。否则,叶四叉树节点可以通过二叉树进一步分割。因此,四叉树叶节点也是二叉树的根节点并且其具有为0的二叉树深度。
[0113]
当二叉树深度达到maxbtdepth(即,4)时,不考虑进一步拆分。当二叉树节点的宽度等于minbtsize(即4)时,不再考虑进一步的水平拆分。类似地,当二叉树节点的高度等于minbtsize时,不再考虑进一步的竖直拆分。在不需要任何进一步分割的情况下,通过预测和变换处理来进一步处理二叉树的叶节点。在实施方式中,最大ctu大小是256
×
256个亮度样本。
[0114]
在图10a和图10b中,实线指示四叉树拆分并且虚线指示二叉树拆分。在二叉树的每个拆分(即非叶)节点中,用信号表示一个标志以指示使用哪种拆分类型(即水平或竖直)。例如,0指示水平拆分,1指示竖直拆分。对于四叉树拆分,不需要指示拆分类型,因为四叉树拆分可以将块既水平又竖直地进行拆分,以产生大小相等的4个子块。
[0115]
在一些实施方式中,qtbt块分割方案支持亮度和色度具有分开的qtbt块分割结构的灵活性。例如,对于p切片和b切片,一个ctu中的亮度块和色度块共享相同的qtbt块分割结构。然而,对于i切片,亮度ctb通过qtbt块分割结构分割成cu,色度块通过另一个qtbt块分割结构分割成色度cu。因此,i切片中的cu由亮度分量的编码块或两个色度分量的编码块组成,并且p切片或b切片中的cu由所有三个颜色分量的编码块组成。
[0116]
在一些示例(例如,hevc)中,小块的帧间预测受到限制以减少运动补偿的存储器访问。例如,对于4
×
8块和8
×
4块不支持双向预测,对于4
×
4块不支持帧间预测。
[0117]
此外,在一些示例(例如,vcc)中,使用了多类型树(multi-type tree,mtt)块分割结构。在一些示例中,mtt块分割结构是比qtbt块分割结构更灵活的树结构。在mtt中,除了四叉树分割和二叉树分割之外,还可以使用三叉树(ternary tree,tt)分割。tt可以包括水平中心侧三叉树分割和竖直中心侧三叉树分割。
[0118]
图11a示出了竖直中心侧三叉树分割的示例,图11b示出了水平中心侧三叉树分割的示例。tt分割可以补充四叉树分割和二叉树分割。例如,三叉树分割可以捕获位于块中心的对象,而四叉树拆分和二叉树拆分穿过块中心。在示例中,三棵树分割的宽度和高度是2
的幂,因此不需要附加的变换分割。
[0119]
块分割的设计,例如两级树,主要是为了降低复杂性。树的遍历复杂度可以是td,其中t表示拆分类型的数目,d是树的深度。
[0120]
具有cu级权重的双向预测(bi-prediction with cu-level weighting,bcw)可以用于帧间预测。在实施方式中,例如在hevc中,双向预测模式指的是帧间预测模式,其中通过对从两个不同参考图片获得的两个预测信号求平均和/或使用两个不同运动矢量来生成双向预测信号。在实施方式中,例如在vvc中,将双向预测模式扩展为超过求平均(对于两个预测信号具有相等权重)以允许对两个预测信号进行加权平均,例如在式1中所示。p
bi-pred
=((8-w)*p0 w*p1 4)>>3
ꢀꢀ
(1)
[0121]
参考式1,通过对例如来自两个不同参考图片的两个预测信号p0和p1求平均来生成双向预测信号p
bi-pred
。权重w可以用于指示两个预测信号p0和p1的相应权重(8-w)和w。
[0122]
一组预定义的权重可以用于权重w。在示例中,加权平均双向预测中允许五个权重,并且权重w可以是值-2、3、4、5和10之一(例如,w∈{-2,3,4,5,10})。具体地,当权重w为4时式1中使用相等权重,并且当权重为-2、3、5和10之一时式1中使用不等权重。
[0123]
对于每个双向预测的cu,权重w可以通过以下两种方式之一确定:1)对于非合并cu,可以在运动矢量差(motion vector difference,mvd)之后用信号表示权重索引(例如bcw权重索引);2)对于合并cu,可以基于合并候选索引从一个或更多个相邻块推断(例如,继承)权重索引。
[0124]
在示例中,bcw模式仅应用于具有256或更多个亮度样本的cu(例如,cu宽度乘以cu高度大于或等于256)。在示例中,对于低延迟图片,使用所有五个权重(例如,-2、3、4、5和10)。在示例中,对于非低延迟图片,仅使用五个权重的子集,例如使用三个权重(例如,3、4、5或w∈{3,4,5})。
[0125]
在编码器处,可以应用快速搜索算法来确定权重索引,而不显著增加编码器复杂度。快速搜索算法的实施方式可以描述如下。
[0126]
当与自适应运动矢量分辨率(adaptive motion vector resolution,amvr)模式结合时,如果当前图片是低延迟图片,则仅针对1像素运动矢量精度和4像素运动矢量精度有条件地检查不等权重(例如,w是式1中的-2、3、5和10之一)。例如,当使用amvr模式且当前图片为低延迟图片时,不等权重仅适用于1像素运动矢量精度和4像素运动矢量精度,因此可以针对1像素运动矢量精度和4像素运动矢量精度检查不等权重。如果使用另一个运动矢量精度(例如,1/2、1/4或1/8),则使用相等权重(例如,w=4)并且编码器不检查不等权重。
[0127]
在示例中,当bcw模式与仿射模式组合时,当且仅当仿射模式被选为当前最佳模式时,可以针对不等权重执行仿射运动估计(affine motion estimation,me)。
[0128]
在示例中,当双向预测中的两个参考图片相同(p0和p1来自同一参考图片)时,仅有条件地检查不等权重。
[0129]
在示例中,当满足某些条件时不搜索不等权重,这取决于当前图片与对应的参考图片之间的图片顺序计数(picture order count,poc)距离、编码量化参数(quantization parameter,qp)以及时间级别(例如,当前图片和对应的参考图片的时域层)。
[0130]
权重索引可以使用一个上下文编码位元(bin)(也称为第一上下文编码位元)来编码,其中,上下文编码位元后面跟着附加位元(也称为旁路编码位元)。第一上下文编码位元
可以指示是否使用了相等权重(例如w=4)。如果使用了不等权重,则可以使用旁路编码来用信号表示附加位元以指示使用了哪个不等权重。
[0131]
在诸如avc、hevc、vvc等的一些示例中,使用加权预测(weighted prediction,wp)作为编码工具。wp可以用于有效地对具有衰落(fading)的视频内容进行编码。可以针对参考图片列表l0和l1中的每一个中的每个参考图片用信号表示包括在wp中使用的权重和偏移在内的加权参数。在运动补偿期间,可以应用对应参考图片的权重和偏移。
[0132]
在一些示例中,根据wp,将帧间预测信号p例如根据用于单向预测的式2来以线性加权预测信号p’(具有权重w’和偏移量o)替换:单向预测:p’=w
’×
p o
ꢀꢀ
式2
[0133]
在示例中,对于双向预测,帧间预测信号p0用于参考l0,权重w0和偏移o0用于参考l0,帧间预测信号p1用于参考l1,权重w1和偏移量o1用于参考l0,则线性加权预测信号p’可以根据式3计算:双向预测:p’=(w0
×
p0 o0 w1
×
p1 o1)/2
ꢀꢀ
式3
[0134]
在一些示例中,wp和bcw被设计用于不同类型的视频内容。为了避免wp与bcw之间的相互影响——这可能会使某些解码器设计(例如vvc解码器设计)复杂化——如果cu使用wp,则不用信号表示bcw中使用的权重索引,并且可以推断权重w为4(即应用相等权重)。在示例中,如果将wp和bcw之一应用于块,则不将wp和bcw中的另一个应用于块。
[0135]
对于例如使用正常合并模式或继承仿射合并模式预测的合并cu,可以基于合并候选索引从相邻块推断bcw权重索引。对于使用构建仿射合并模式预测的cu,可以基于多达三个块的运动信息来构建仿射运动信息。使用构建仿射合并模式的cu的bcw权重索引可以设置为等于第一控制点mv的bcw权重索引。
[0136]
在示例中,例如在vvc中,组合帧内-帧间预测(combined intra-inter prediction,ciip)模式和bcw模式不能联合应用于cu。当cu采用ciip模式编码时,可以将当前cu的bcw权重索引设置为指示相等权重的值(例如2)。
[0137]
在一些实施方式中,被称为局部照明补偿(local illumination compensation,lic)的技术可以用于视频编码。lic基于照明变化的线性模型,其使用诸如用“a”表示的比例因子和用“b”表示的偏移之类的参数。可以针对每个帧间模式编码的编码单元(coding unit,cu)自适应地启用或禁用lic。
[0138]
在实施方式中,当将lic应用于cu时,可以基于当前cu的相邻样本和对应的参考样本使用最小二乘误差方法来得出缩放因子“a”和偏移“b”。
[0139]
图12示出了当前cu(1200)的相邻样本和当前cu(1200)的参考块(1210)的图。在图12的示例中,对当前cu(1200)和参考块(1210)的相邻样本进行子采样,例如,使用2:1子采样。在示例中,使用当前cu(1200)的子采样(例如,2:1子采样)相邻样本和参考图片中由当前cu(1200)或子cu的运动信息标识的对应样本。
[0140]
照明补偿(illumination compensation,ic)参数(例如,比例因子“a”和偏移“b”)可以被得出并分别应用于每个预测方向。
[0141]
在示例中,当使用合并模式对当前cu进行编码时,以类似于在合并模式下复制运动信息的方式从相邻块复制lic标志。在另一示例中,针对cu用信号表示lic标志以指示是否应用lic。
[0142]
在一些实施方式中,当针对图片启用lic时,执行附加的cu级别率失真(rate distortion,rd)检查以确定是否将lic应用于cu。当针对cu启用lic时,对于基于整数像素的运动搜索和基于分数像素的运动搜索,可以分别使用去均值绝对差之和(mean-removed sum of absolute difference,mr-sad)和去均值绝对哈达玛变换差之和(mean-removed sum of absolute hadamard-transformed difference,mr-satd),而不是绝对差之和(sum of absolute difference,sad)和绝对哈达玛变换差之和(sum of absolute hadamard-transformed difference,satd)。
[0143]
为了降低编码复杂度,在示例中,例如在jem中,应用以下编码方案。当在当前图片与对应的参考图片之间没有明显的照明变化时,可以对整个图片禁用lic。为了识别上述情况,可以在编码器处计算当前图片的直方图和当前图片的每个参考图片。如果当前图片与当前图片的每个参考图片之间的相应直方图差异小于阈值(例如,预定义阈值),则针对当前图片禁用lic。否则,针对当前图片启用lic。
[0144]
在一些示例中,例如在bcw模式中,应用于两个预测块的权重(也被称为权重值)(例如,式1中的w和/或(8-w))被明确地用信号表示或者从相邻块(例如,空间相邻块和/或时间相邻块)继承。另一方面,由于权重(例如,式1中的w和/或(8-w))反映了当前块与预测块(例如,前向预测块和后向预测块)之间的线性关系,因此当前块和预测块的相邻已重建样本(也称为重建样本)可以与相似的权重相关。因此,当前块和预测块的相邻重建样本可以用于确定(例如,估计)权重,例如,以节省信令开销。
[0145]
在本公开内容中,预测块也可以称为参考块,并且重建中的当前块的预测块(或参考块)可以包括第一参考图片中的第一预测块(或第一参考块)和第二参考图片中的第二预测块(或第二参考块)。当前块在当前图片中。当前图片不同于第一参考图片并且当前图片不同于第二参考图片。第一参考图片可以与第二参考图片不同或相同。在一些示例中,第一预测块和第二预测块中的一个是前向预测块,并且第一预测块和第二预测块中的另一个是后向预测块。在一些示例中,第一预测块和第二预测块是前向预测块。在一些示例中,第一预测块和第二预测块是后向预测块。
[0146]
当前块的相邻重建样本、当前块的第一预测块(例如,前向或后向预测块)和当前块的第二预测块(例如,前向或后向预测块)块可以分别被称为当前块的模板(或当前模板)、第一预测块的模板(或第一模板)、第二预测块的模板(或第二模板))。
[0147]
图13示出了根据本公开内容的实施方式的当前块(1300)和预测块(或参考块)(1301)至(1302)的模板的示例。当前块(1300)的模板(1323)包括当前块(1300)的相邻重建样本,例如分别位于当前块(1300)的上方和左侧的在当前块(1300)的顶行(1313)和左列(1314)中的相邻重建样本。第一参考块(1301)的模板(1321)和第二参考块(1302)的模板(1325)对应于当前块(1300)的模板(1323)。具体地,在图13所示的示例中,模板(1321)包括第一参考块(1301)的相邻重建样本,例如分别位于第一参考块(1301)的上方和左侧的第一参考块(1301)的顶行(1311)和左列(1312)中的相邻重建样本。模板(1325)包括第二参考块(1302)的相邻重建样本,例如分别位于第二参考块(1302)的上方和左侧的第二参考块(1302)的顶行(1315)和左列(1316)中的相邻重建样本。第一运动矢量(motion vector,mv)(mv0)指向第一参考图片中的第一参考块(1301),第二mv(mv1)指向第二参考图片中的第二参考块(1302)。如果第一参考图片是前向参考图片并且第一参考块(1301)是前向预测块,
则mv0可以被称为前向mv。如果第一参考图片是后向参考图片并且第一参考块(1301)是后向预测块,则mv0可以被称为后向mv。mv1可以取决于第二预测块(1302)或第二参考图片而是前向mv或后向mv,类似于参考mv0所描述的那样。
[0148]
图13示出了包括当前块和预测块的顶行和左列的模板。诸如当前块或预测块之一的块的模板可以包括该块的任何合适的相邻重建样本。根据本公开内容的各方面,块的模板可以包括块的任何合适的空间相邻重建样本。块的模板可以包括位于块上方和左侧的左上样本、块上方的顶行、块左侧的左列和/或相对于块的其他合适位置的相邻重建样本。块的模板可以包括与块相邻的相邻重建样本和/或不与块相邻的相邻重建样本。
[0149]
根据本公开内容的各方面,当前块(1300)、第一参考块(1301)和第二参考块(1302)各自的模板(1323)、模板(1321)和模板(1325)的形状可以相同。模板(1323)、模板(1321)和模板(1325)相对于对应的当前块(1300)、第一参考块(1301)和第二参考块(1302)的相对位置可以相同。模板(1321)、模板(1323)和模板(1325)中的每一个相邻重建样本的数目可以相同。例如,模板(1323)包括与当前块(1300)相邻的顶行(1313)和左列(1314),模板(1321)包括与第一参考块(1301)相邻的顶行(1311)和左列(1312),并且模板(1325)包括与第二参考块(1302)相邻的顶行(1315)和左列(1316)。
[0150]
当应用双向预测运动补偿模式来预测当前块时,如式1中所述,当前块中的样本(例如,样本值由双向预测信号p
bi-pred
表示)可以基于第一预测块(例如,样本值由预测信号p0表示)和第二预测块(例如,样本值由预测信号p1表示)中的对应样本的加权平均值来预测。根据本公开内容的各方面,在双向预测运动补偿模式中使用的权重(例如,式1中的权重w)可以基于当前块的当前相邻重建样本(或当前模板)、第一预测块的第一相邻重建样本(或第一模板)和/或第二预测块的第二相邻重建样本(或第二模板)来确定。参照图13,在双向预测运动补偿模式中使用的权重可以基于当前块的当前相邻重建样本(例如,模板(1323))、第一预测块的第一相邻重建样本(例如,第一参考块(1301)的模板(1321))和/或第二预测块的第二相邻重建样本(例如,第二参考块(1302)的模板(1325))来确定。
[0151]
在示例中,当前块的整个当前模板、第一预测块的整个第一模板和/或第二预测块的整个第二模板用于确定权重。在示例中,当前块的当前模板中的样本子集、第一预测块的第一模板中的样本子集和/或第二预测块的第二模板中的样本子集用于确定权重。
[0152]
根据本公开内容的各方面,用于第一预测块的第一权重(例如,式1中的(8-w))和用于第二预测块的第二权重(例如,式1中的w)用于双向预测运动补偿模式以预测当前块(例如,使用式1)。一般来说,在确定双向预测运动补偿模式中使用的权重时,可以基于权重与第一权重之间的关系和/或权重与第二权重之间的关系来确定第一权重和第二权重。第一权重和第二权重可以相互依赖,例如,第一权重和第二权重之和为常数。因此,当确定了第一权重或第二权重时,基于第一权重和第二权重之间的关系同样确定了另一权重。在示例中,双向预测运动补偿模式中使用的权重为第一权重。因此,当确定了权重时,也确定了第二权重。在示例中,双向预测运动补偿模式中使用的权重为第二权重。因此,当确定了权重时,也确定了第一权重。
[0153]
根据本公开内容的各方面,在双向预测运动补偿模式中使用的权重(例如,式1中的权重w)可以基于当前块的当前相邻重建样本、第一预测块的第一相邻重建样本以及第二预测块的第二相邻重建样本来确定。
[0154]
此外,可以使用所确定的权重基于第一预测块和第二预测块中的对应样本的加权平均来重建当前块中的样本。
[0155]
在双向预测运动补偿模式中应用于预测块(例如,前向预测块和/或后向预测块)的权重(或加权值)可以取决于(包括但不限于)当前块、第一预测块和/或第二预测块的相邻重建样本。
[0156]
在实施方式中,当前块的相邻重建样本(或当前模板)和预测块(例如,前向和/或后向预测块)的相邻重建样本(或第一模板和/或第二模板)用于得出与例如存储在编码器和/或解码器中的每个预定义权重(或加权值)相关联的索引值。
[0157]
在实施方式中,在编码器和解码器处,可以预定义一组权重(或加权值)并且该组权重被称为预定义权重。可以基于当前块的当前模板、第一预测块的第一模板和/或第二预测块的第二模板对该组权重进行排序。在示例中,基于当前块的当前模板、第一预测块的第一模板和第二预测块的第二模板对该组权重进行排序。编码器侧的排序索引(例如,索引值)可以基于排序而与每个权重相关联,因此编码器侧的排序索引可以与已排序预定义权重中的每一个相关联。可以基于排序来选择要在双向预测运动补偿模式中使用的权重。然后在编码器处,可以在视频比特流中用信号表示与所选权重相关联的对应排序索引(例如,索引值)。例如,预定义的权重包括五个不同的权重a0、b0、c0、d0和e0。基于当前模板、第一模板和第二模板,可以将预定义权重排序为与排序索引0、1、2、3和4相关联的已排序预定义权重d0、a0、b0、e0和c0。编码器可以例如基于排序来确定与排序索引0相关联的权重d0将用于双向预测运动补偿模式。然后在编码器处,在视频比特流中用信号表示排序索引0。
[0158]
在解码器处,可以对预定义权重执行与编码器中的排序处理相同的排序处理。具体地,可以基于当前块的当前模板、第一预测块的第一模板和/或第二预测块的第二模板对解码器中存储的预定义权重进行排序。解码器侧的排序索引(例如,索引值)可以基于排序而与每个权重相关联,因此解码器侧的排序索引可以与已排序预定义权重中的每一个相关联。视频比特流中的已编码索引值可以被解码。与已解码索引值相关联的权重可以基于解码器侧的排序索引和相关联的已排序预定义权重来确定或得出。随后,所确定的权重可以用于双向预测运动补偿模式。例如,预定义的权重包括五个不同的权重a0、b0、c0、d0和e0。基于当前模板、第一模板和第二模板,可以将预定义权重排序为与排序索引0、1、2、3和4相关联的已排序预定义权重d0、a0、b0、e0和c0。解码索引值0与权重d0相关联。解码器可以确定与排序索引0相关联的权重d0将用于双向预测运动补偿模式。然后在解码器处,所确定的权重d0用于双向预测运动补偿模式。在示例中,第一权重和/或第二权重是基于所确定的权重d0来确定的,并进一步用于预测当前块。
[0159]
通常,用于第一预测块和第二预测块的一组权重(例如在式1中使用的用于第一预测块的第一权重(8-w)和用于第二预测块的第二权重w)相互依赖。因此,该组权重可以基于第一权重或第二权重来确定。在实施方式中,在编码器和解码器二者处,第一权重和/或第二权重可以基于预定义的成本测量从该组预定义的权重中选择。可以使用当前块的当前模板、第一预测块的第一模板和/或第二预测块的第二模板来执行(例如,计算)预定义成本测量。在实施方式中,所选权重(例如,第一权重和/或第二权重)未在视频比特流中用信号表示。所选权重可以用于双向预测运动补偿模式。参照式1,当基于预定义的成本测量确定或选择了第一权重或第二权重时,基于第一权重与第二权重之间的关系同样确定了另一权
重。因此,可以确定用于第一预测块和第二预测块的权重集合,例如用于第一预测块的权重(8-w)和用于第二预测块的权重w。
[0160]
在实施方式中,在编码器和解码器二者处,第一权重和/或第二权重可以使用当前块的当前模板、第一预测块的第一模板和/或第二预测块的第二模板来直接计算。在示例中,使用当前块的当前模板、第一预测块的第一模板和第二预测块的第二模板直接计算第一权重和/或第二权重。
[0161]
在示例中,第一权重和/或第二权重是基于当前块的当前模板、第一预测块的第一模板和/或第二预测块的第二模板使用最小均方误差得出的。具体地,使用矢量和来分别表示第一模板、第二模板和当前模板中的相邻重建样本。为了找到应用于第一参考块和第二参考块以生成当前块的预测块的最佳权重a和(1-a),使以下成本最小化:其中n是第一模板、第二模板和当前模板中的每个模板中的样本总数。给出解:因此,第一权重a和第二权重(1-a)可以基于式5来获得。
[0162]
在示例中,第一权重和/或第二权重是基于当前块的当前模板、第一预测块的第一模板和/或第二预测块的第二模板使用最小均方误差得出的。使用矢量和来分别表示第一模板、第二模板和当前模板中的相邻重建样本。为了找到应用于第一参考块和第二参考块以生成当前块的预测块的最佳权重a和(1-a),使以下成本最小化:给出如下解:其中并且参数b是指示偏移的常数。因此,第一权重a和第二权重(1-a)可以基于式6至式7来获得。
[0163]
在实施方式中,如果参考块之一的mv指向参考图片中的分数位置,则可以使用具有不同的mv分辨率(或精度)例如整数mv分辨率的另一mv(被称为模板生成mv)来生成参考块的相邻重建样本。参照图13,如果第一参考块(1301)的第一mv(mv0)指向第一参考图片中的分数位置,则使用第一模板生成mv来生成模板(1321)中的相邻重建样本,该第一模板生成mv具有与第一mv的分辨率不同的mv分辨率。如果第二参考块(1302)的第二mv(mv1)指向第二参考图片中的分数位置,则使用第二模板生成mv来生成模板(1325)中的相邻重建样本,该第二模板生成mv具有与第二mv的分辨率不同的mv分辨率。
[0164]
在实施方式中,指定用于得出在双向预测运动补偿模式中使用的权重的对应模板的模板生成mv可以具有下述mv分辨率,该mv分辨率低于或等于从当前块指向对应参考块的
mv的mv分辨率。例如,指定第一模板的第一模板生成mv可以具有低于或等于从当前块指向第一预测块的第一mv的mv分辨率的mv分辨率。指定第二模板的第二模板生成mv可以具有低于或等于从当前块指向第二预测块的第二mv的mv分辨率的mv分辨率。在示例中,第一mv(或第二mv)的mv分辨率为1/8像素精度或1/16像素精度,与第一模板相关联的第一模板生成mv(或者与第二模板相关联的第二模板生成mv)的mv分辨率是1/4像素精度、1/2像素精度或整数像素(1-pel)精度。
[0165]
在实施方式中,指定用于得出在双向预测运动补偿模式中使用的权重的相邻样本的mv(例如与第一模板相关联的第一模板生成mv以及与第二模板相关联的第二模板生成mv)具有整数像素分辨率。
[0166]
在实施方式中,指定用于得出在双向预测运动补偿模式中使用的权重的相邻样本的mv(例如与第一模板相关联的第一模板生成mv以及与第二模板相关联的第二模板生成mv)可以具有整数像素(1像素)分辨率或半像素(1/2)分辨率。
[0167]
在实施方式中,指定用于得出在双向预测运动补偿模式中使用的权重的相邻样本的mv(例如与第一模板相关联的第一模板生成mv以及与第二模板相关联的第二模板生成mv)可以具有整数像素、半像素或四分之一像素分辨率。
[0168]
在实施方式中,指定用于得出在双向预测运动补偿模式中使用的权重的相邻样本的mv(例如与第一模板相关联的第一模板生成mv以及与第二模板相关联的第二模板生成mv)可以通过将第一mv和/或第二mv舍入为预定义的mv分辨率来得出。预定义的mv分辨率的示例可以包括但不限于四像素mv分辨率、两像素mv分辨率、整数像素mv分辨率、半像素mv分辨率、四分之一像素mv分辨率和1/8像素mv分辨率。
[0169]
根据本公开内容的各方面,对于使用双向预测运动补偿模式预测的当前块,在双向预测运动补偿模式中使用的权重集合可以:(i)使用当前块、第一参考块和/或第二参考块的相邻重建样本来得出,例如在本公开内容中描述的那样;(ii)显式地用信号表示,例如,如在用于未通过合并模式编码的块的bcw模式中使用的那样,或者(iii)从当前块的相邻块继承,例如,如在用于通过合并模式编码的块的bcw模式中使用的那样。可以针对当前块用信号表示在上面三种方法(i)至(iii)中的选择。
[0170]
在示例中,针对当前块用信号表示在方法(i)与方法(ii)之间的选择。
[0171]
在示例中,针对未通过合并模式编码的当前块用信号表示在方法(i)与方法(ii)之间的选择。
[0172]
在示例中,针对当前块用信号表示在方法(i)与方法(iii)之间的选择。
[0173]
在示例中,针对通过合并模式编码的当前块用信号表示在方法(i)与(iii)之间的选择。
[0174]
图14示出了概述根据本公开内容的实施方式的处理(1400)的流程图。处理(1400)可以用于块的重建,以生成重建中的块的预测块。该块可以是任何合适的块,例如cb、cu、pb、tb、tu、亮度块、色度块等。在各种实施方式中,处理(1400)由处理电路执行,所述处理电路例如:终端设备(210)、终端设备(220)、终端设备(230)和终端设备(240)中的处理电路,执行视频编码器(303)的功能的处理电路,执行视频解码器(310)的功能的处理电路,执行视频解码器(410)的功能的处理电路,执行视频编码器(503)的功能的处理电路等。在一些实施方式中,处理(1400)以软件指令来实现,因此,当处理电路执行软件指令时,处理电路
执行处理(1400)。处理从(s1401)处开始并进行至(s1410)。
[0175]
在(s1410)处,可以从已编码视频比特流解码当前块的已编码信息。已编码信息可以指示当前块的双向预测运动补偿模式。基于双向预测运动补偿模式,可以基于当前块的两个预测块中的样本的加权平均来预测当前块中的样本。两个预测块可以包括具有第一权重的第一预测块和具有第二权重的第二预测块。
[0176]
在示例中,当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本分别是当前块、第一预测块和第二预测块的空间相邻重建样本。
[0177]
第一预测块可以在第一参考图片中,并且第二预测块可以在第二参考图片中。在示例中,第二参考图片不同于第一参考图片。在示例中,第一参考图片与第二参考图片相同。
[0178]
在示例中,解码已编码信息中的索引值。
[0179]
在(s1420)处,基于当前块的当前相邻重建样本(或当前模板)、第一预测块的第一相邻重建样本(或第一模板)和第二预测块的第二相邻重建样本(或第二模板),可以确定在双向预测运动补偿模式中使用的权重(例如,第一权重、第二权重或者可以指示第一权重和第二权重的参数)。
[0180]
在实施方式中,权重是存储在解码器中的预定义权重之一。
[0181]
在示例中,可以基于当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本对预定义权重进行排序。经排序的预定义权重中的每一个可以与唯一的排序索引相关联。已解码索引值可以对应于排序索引中的一个排序索引。此外,权重可以被确定为经排序的预定义权重中的与排序索引中的该一个排序索引相关联的的预定义权重。
[0182]
在示例中,可以基于预定义成本测量来选择预定义权重之一作为权重,其中,使用当前块的当前相邻重建样本、第一预测块的第一相邻重建样本以及第二预测块的第二相邻重建样本执行预定义成本测量。
[0183]
在示例中,基于当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本来计算权重,例如使用式4至式7描述的那样。
[0184]
在(s1430)处,可以使用所确定的权重、基于第一预测块和第二预测块中的对应样本的加权平均来重建当前块中的样本。处理(1400)进行至(s1499),并且终止。
[0185]
图15示出了概述根据本公开内容的实施方式的处理(1500)的流程图。处理(1500)可以用于对块进行编码。该块可以是任何合适的块,例如cb、cu、pb、tb、tu、亮度块、色度块等。在各个实施方式中,处理(1500)由处理电路执行,处理电路例如:终端设备(210)、终端设备(220)、终端设备(230)和终端设备(240)中的处理电路,执行视频编码器(303)的功能的处理电路,执行视频编码器(503)的功能的处理电路等。在一些实施方式中,处理(1500)以软件指令实现,因此,当处理电路执行软件指令时,处理电路执行处理(1500)。处理在(s1501)处开始,并且进行至(s1510)。
[0186]
在(s1510)处,可以通过编码器确定用于对当前块进行编码的双向预测运动补偿模式。
[0187]
在(s1520)处,可以基于当前块的当前相邻重建样本、第一预测块的第一相邻重建
样本和第二预测块的第二相邻重建样本来确定在双向预测运动补偿模式中使用的权重。
[0188]
在示例中,当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本分别是当前块、第一预测块和第二预测块的空间相邻重建样本。
[0189]
第一预测块可以在第一参考图片中,并且第二预测块可以在第二参考图片中。在示例中,第二参考图片与第一参考图片不同。在示例中,第一参考图片与第二参考图片相同。
[0190]
在示例中,基于当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本来计算权重。
[0191]
在实施方式中,权重是存储在编码器中的预定义权重之一。
[0192]
在示例中,基于当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本对预定义权重进行排序。经排序的预定义权重中的每一个可以与唯一的排序索引相关联。可以将权重确定为经排序的预定义权重之一。
[0193]
在示例中,可以基于预定义成本测量来选择预定义权重之一作为权重,其中,使用当前块的当前相邻重建样本、第一预测块的第一相邻重建样本和第二预测块的第二相邻重建样本来执行预定义成本测量。
[0194]
在(s1530)处,可以将当前块的信息编码在视频比特流中。已编码信息可以指示当前块的双向预测运动补偿模式。
[0195]
在示例中,将索引值编码在已编码信息中,其中索引值可以是排序索引中与权重相关联的一个排序索引。处理(1500)进行至(s1599)并且终止。
[0196]
可以适当地调整处理(1400)和/或处理(1500)。可以修改和/或省略处理(1400)和/或处理(1500)中的步骤。可以添加附加步骤。可以使用任何合适的实现次序。在示例中,实施方式扩展到包括多于两个预测块的加权预测。例如,可以基于当前块的m个预测块中的样本的加权平均来预测当前块中的样本,其中m是大于2的整数。m个预测块中的每一个可以具有权重。m个预测块的权重可以使用本公开内容中描述的任何合适的方法来确定。
[0197]
本公开内容中的实施方式可以单独使用或以任何顺序组合使用。此外,方法(或实施方式)、编码器和解码器中的每一个均可以通过处理电路(例如,一个或更多个处理器或一个或更多个集成电路)来实现。在一个示例中,一个或更多个处理器执行存储在非暂态计算机可读介质中的程序。本公开内容的实施方式可以应用于亮度块或色度块。
[0198]
上述技术可以实现为使用计算机可读指令的计算机软件,并物理存储在一个或更多个计算机可读介质中。例如,图16示出了适于实现所公开的主题的某些实施方式的计算机系统(1600)。
[0199]
可以使用任何合适的机器代码或计算机语言来编码计算机软件,机器代码或计算机语言可以经受汇编、编译、链接等机制以创建包括指令的代码,所述指令可以由一个或更多个计算机中央处理单元(central processing unit,cpu)、图形处理单元(graphics processing unit,gpu)等直接执行或者通过解译、微代码执行等执行。
[0200]
指令可以在各种类型的计算机或其部件上执行,包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等。
[0201]
图16中示出的用于计算机系统(1600)的部件本质上是示例性的,并且不旨在对实
现本公开内容的实施方式的计算机软件的使用范围或功能提出任何限制。部件的配置不应当被解释为具有与计算机系统(1600)的示例性实施方式中示出的部件中的任何一个部件或部件的组合有关的任何相关性或要求。
[0202]
计算机系统(1600)可以包括某些人机接口输入设备。这样的人机接口输入设备可以响应于由一个或更多个人类用户通过例如触觉输入(例如:击键、滑动、数据手套移动)、音频输入(例如:语音、拍打)、视觉输入(例如:姿势)、嗅觉输入(未示出)进行的输入。人机接口设备还可以用于捕获不一定与人的有意识输入直接有关的某些媒体,例如,音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静态图像摄像装置获得的摄影图像)、视频(例如二维视频、包括立体视频在内的三维视频)。
[0203]
输入人机接口设备可以包括以下各项中的一个或更多个(每项仅绘出一个):键盘(1601)、鼠标(1602)、触控板(1603)、触摸屏(1610)、数据手套(未示出)、操纵杆(1605)、麦克风(1606)、扫描仪(1607)、摄像装置(1608)。
[0204]
计算机系统(1600)还可以包括某些人机接口输出设备。这样的人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道来刺激一个或更多个人类用户的感官。这样的人机接口输出设备可以包括:触觉输出设备(例如,通过触摸屏(1610)、数据手套(未示出)或操纵杆(1605)进行的触觉反馈,但是也可以存在不用作输入设备的触觉反馈设备);音频输出设备(例如:扬声器(1609)、头戴式耳机(未描绘));视觉输出设备(例如,屏幕(1610),包括crt屏幕、lcd屏幕、等离子屏幕、oled屏幕,每个均具有或不具有触摸屏输入能力,每个均具有或不具有触觉反馈能力——其中的一些可能能够通过诸如立体图像输出的方式输出二维视觉输出或多于三维输出;虚拟现实眼镜(未描绘);全息显示器和烟罐(未描绘));以及打印机(未描绘)。
[0205]
计算机系统(1600)还可以包括人类可访问存储设备及其相关联的介质,例如包括具有cd/dvd等介质(1621)的cd/dvd rom/rw(1620)的光学介质、拇指驱动器(1622)、可移除硬盘驱动器或固态驱动器(1623)、传统磁介质(例如磁带和软盘(未描绘))、基于专用rom/asic/pld的设备(例如安全加密狗(未描绘))等。
[0206]
本领域技术人员还应当理解,结合当前公开的主题使用的术语“计算机可读介质”不包含传输介质、载波或其他瞬时信号。
[0207]
计算机系统(1600)还可以包括至一个或更多个通信网络(1655)的接口(1654)。网络可以是例如无线网络、有线网络、光网络。网络还可以是局域网、广域网、城域网、车载和工业网络、实时网络、延迟容忍网络等。网络的示例包括:局域网(例如以太网、无线lan),包括gsm、3g、4g、5g、lte等的蜂窝网络,包括有线电视、卫星电视和地面广播电视的电视有线连接或无线广域数字网络,包括can总线的车辆和工业网络等。某些网络通常需要附接至某些通用数据端口或外围总线(1649)(例如,计算机系统(1600)的usb端口)的外部网络接口适配器;其他网络通常通过如下所述附接至系统总线(例如,至pc计算机系统的以太网接口或至智能电话计算机系统的蜂窝网络接口)而集成到计算机系统(1600)的核中。使用这些网络中的任何网络,计算机系统(1600)可以与其他实体进行通信。这样的通信可以是单向仅接收的(例如,广播电视)、单向仅发送的(例如,至某些canbus设备的canbus)、或双向的(例如,使用局域数字网络或广域数字网络至其他计算机系统)。可以在如上面所描述的那些网络和网络接口中的每一个上使用某些协议和协议栈。
[0208]
上述人机接口设备、人类可访问存储设备和网络接口可以附接至计算机系统(1600)的核(1640)。
[0209]
核(1640)可以包括一个或更多个中央处理单元(central processing unit,cpu)(1641)、图形处理单元(graphics processing unit,gpu)(1642)、呈现场可编程门区域(field programmable gate area,fpga)(1643)形式的专用可编程处理单元、用于某些任务的硬件加速器(1644)、图形适配器(1650)等。这些设备以及只读存储器(rom)(1645)、随机存取存储器(1646)、内部大容量存储设备(例如,内部非用户可访问硬盘驱动器、ssd等)可以通过系统总线(1648)连接。在一些计算机系统中,可以以一个或更多个物理插头的形式访问系统总线(1648),以使得能够通过附加的cpu、gpu等进行扩展。外围设备可以直接地或通过外围总线(1649)附接至核的系统总线(1648)。在示例中,屏幕(1610)可以连接至图形适配器(1650)。外围总线的架构包括pci、usb等。
[0210]
cpu(1641)、gpu(1642)、fpga(1643)和加速器(1644)可以执行某些指令,这些指令组合起来可以构成以上提及的计算机代码。所述计算机代码可以存储在rom(1645)或ram(1646)中。过渡数据也可以存储在ram(1646)中,而永久数据可以存储在例如内部大容量存储设备(1647)中。可以通过使用缓存存储器来实现针对存储设备中的任何存储设备的快速存储和检索,该缓存存储器可以与一个或更多个cpu(1641)、gpu(1642)、大容量存储设备(1647)、rom(1645)、ram(1646)等紧密关联。
[0211]
计算机可读介质上可以具有计算机代码,该计算机代码用于执行各种由计算机实现的操作。介质和计算机代码可以是出于本公开内容的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以具有计算机软件领域的技术人员公知且可用的类型。
[0212]
作为示例而非限制的方式,具有架构(1600)特别是核(1640)的计算机系统可以通过处理器(包括cpu、gpu、fpga、加速器等)执行包含在一个或更多个有形计算机可读介质中的软件来提供功能。这样的计算机可读介质可以是与以下存储设备相关联的介质:如以上所介绍的用户可访问大容量存储设备,以及具有非暂态性质的核(1640)的某些存储设备,例如核内大容量存储设备(1647)或rom(1645)。可以将实现本公开内容的各种实施方式的软件存储在这样的设备中并且由核(1640)执行。根据特定需求,计算机可读介质可以包括一个或更多个存储器设备或芯片。软件可以使核(1640)——并且特别是其中的处理器(包括cpu、gpu、fpga等)——执行本文中描述的特定处理或特定处理的特定部分,包括限定存储在ram(1646)中的数据结构以及根据由软件限定的处理修改这样的数据结构。另外地或可替选地,计算机系统可以提供作为逻辑硬连线的结果而提供或以其他方式体现在电路(例如:加速器(1644))中的功能,所述电路可以代替软件或与软件一起操作以执行本文中描述的特定处理或特定处理的特定部分。在适当的情况下,提及的软件可以包含逻辑,并且反之亦然。在适当的情况下,提及的计算机可读介质可以包含存储用于执行的软件的电路(例如,集成电路(integrated circuit,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:编码单元
[0213]
虽然本公开内容已描述了若干示例性实施例,但存在落入本公开的范围内的改变、置换和各种替代等效物。因此,将理解的是,本领域技术人员能够设想出多种系统和方法,这些系统和方法虽然在本文中没有明确示出或描述,但体现本技术公开的原理并且因此落入其精神和范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献