用于小子块仿射帧间预测的方法和装置
相关文件
1.本技术要求2019年3月13日提交的第62/818,068号美国临时申请案“使用小子块的仿射帧间预测(affine inter prediction with small subblocks)”的优先权、2020年3月12日递交的第16/816,562号美国申请案“使用小子块的仿射帧间预测方法及装置(method and apparatus for affine inter prediction with small subblocks)”的优先权,所述申请以全文引用方式并入本技术。
技术领域
2.本技术实施例涉及视频编解码领域。
背景技术:3.本文提供的背景描述是为了呈现本技术的背景。记名的发明人的工作,在该背景部分描述的工作以及本说明书各实施例的范围内的内容,在递交时可能并不算作现有技术,均未被明示或暗示地承认作为不利于本技术的现有技术。
4.目前,可使用帧间图像预测结合运动补偿来执行视频编码和解码。未压缩的数字视频通常包括一系列图像。例如,每个图像具有1920
×
1080分辨率的亮度采样和相关的色度采样。所述一系列图像可具有例如每秒60个图像或60hz的固定或可变图像速率(也被称作帧率)。因此,未压缩视频具有显著的位速率要求。举例来说,每采样8位的1080p60 4:2:0视频(60hz帧率下的1920
×
1080亮度采样分辨率)需要接近1.5gbit/s的带宽。长度为一小时的此类视频需要超过600gb的存储空间。
5.视频编码和解码的一个目的可以是通过压缩来减少输入视频信号中的冗余。压缩有助于降低上述带宽或存储空间要求,在一些情况下可降低两个数量级或更多。通常情况下,可使用无损压缩和有损压缩以及其组合。无损压缩是指可从压缩的原始信号重建原始信号的精确副本的技术。当使用有损压缩时,重建的信号可能与原始信号不同,但原始信号与重建的信号之间的失真很小,因而重建的信号能够实现所期望的用途。视频领域中广泛采用有损压缩。容许的失真量因不同应用而异。例如,消费型直播应用的用户比电视节目应用的用户能容忍更高的失真。可实现的压缩比可反映出:可允许的/可容许的失真越高,可产生的压缩比越高。
6.运动补偿可以是有损压缩技术,且可关联以下技术:对于来自先前已重建的图像或其中一部分(参考图像)的样本数据块,在由运动矢量(motion vector,mv)指示的方向上发生空间偏移之后,可用于预测新重建的图像或图像的一部分。在一些情况下,参考图像可与当前正在重建的图像相同。各个mv可具有两个维度x和y,或三个维度,第三维度指示正在使用的参考图像(间接地,第三维度还可以是时间维度)。
7.在一些视频压缩技术中,可根据其它mv预测适用于某一样本数据区域的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.本技术各方面提供了用于视频编码/解码的方法和装置。一些示例中,视频解码的装置包括处理电路。一个实施例中,从已编码的视频码流中解码当前图像中的块的预测信息。预测信息指示帧间预测模式中的仿射模型。根据仿射模型确定块的控制点的运动矢量。根据确定的控制点的运动矢量确定该块的子块的运动矢量。子块的宽度和高度之一小于4。此外,根据确定的运动矢量来重建子块的至少一个样本。
11.一个实施例中,根据所确定的块的控制点的运动矢量来确定块中的4x4块的运动矢量,该4x4块包括该子块。
12.一个实施例中,将所确定的4x4块的运动矢量存储在存储器中。
13.一个实施例中,当子块在块中4x4块的左上区域时,将确定的子块的运动矢量存储在存储器中。
14.一个实施例中,当子块在块中的4x4块的右下区域时,将确定的子块的运动矢量存储在存储器中。
15.一个实施例中,当子块包括块中的4
×
4块的中心样本时,将确定的子块的运动矢量存储在存储器中。
16.一个实施例中,当子块是色度块时,该色度块具有固定的尺寸,与相应的亮度块的尺寸无关。
17.一个实施例中,帧间预测模式是单向预测。
18.一个实施例中,当帧间预测模式是单向预测、且包括子块的8
×
8块的运动补偿的存储器带宽小于或等于阈值时,根据控制点的运动矢量来确定块的子块的运动矢量。
19.一个实施例中,接收指示符,该指示符指示小子块仿射模式是用于当前图像还是
用于当前图像中的图块组。此外,当接收到的指示符指示使用小子块仿射模式时,执行上述解码、确定控制点的运动矢量、确定子块的运动矢量以及重建的步骤。
20.本技术各方面还提供了一种非易失性计算机可读介质,存储有指令,在由计算机执行时,该指令用于使计算机执行视频解码方法中的任何一种或多种方法的组合。
附图说明
21.为使所公开主题的特征、原理和各种优势更清楚,以下对说明书和附图进行详细描述。附图中:
22.图1是一个实施例的当前块及其周围的空间合并候选项的示意图。
23.图2是一个实施例的通信系统(200)的简化示意框图。
24.图3是一个实施例的通信系统(300)的简化示意框图。
25.图4是一个实施例的解码器的简化示意框图。
26.图5是一个实施例的编码器的简化示意框图。
27.图6是另一实施例的编码器的示意框图。
28.图7是另一实施例的解码器的示意框图。
29.图8是一个实施例的空间合并候选项的位置的示意图。
30.图9是一个实施例的冗余检查过程使用的扩展的合并列表中的候选项对的示意图。
31.图10是一个实施例的在当前图像中从扩展的合并列表中得到时间合并候选项的示意图。
32.图11是一个实施例的候选位置的示意图,可以从这些候选位置选出扩展的合并列表中的时间合并候选项。
33.图12是一个实施例的预测位置的示意图,可以从这些预测位置中选出在带有运动矢量差的合并(merge with motion vector difference,mmvd)模式下的预测。
34.图13是一个实施例的用于表示两参数仿射模型的两个控制点运动矢量(control point motion vectors,cpmv)的示意图。
35.图14示出表示三参数仿射模型的三个cpmv。
36.图15示出为用仿射预测模式编码的当前块中划分出的子块得到的运动矢量。
37.图16示出用于得到继承的仿射合并候选项的当前块的相邻块。
38.图17示出用于得到构建的仿射合并候选项的候选块位置。
39.图18是一个实施例的可用于利用基于子块的时间运动矢量预测(sub
‑
block based temporal motion vector prediction,sbtmvp)方法确定当前块的预测运动信息的空间相邻块的示意图。
40.图19是一个实施例的为sbtmvp方法所选择的空间相邻块的示意图。
41.图20示出一个实施例的将编码单元分割为两个三角预测单元的例子。
42.图21是一个实施例用于创建三角预测模式的单向预测候选列表的空间相邻块和时间相邻块的示意图。
43.图22是一个实施例的用于基于三角分割索引得到分割方向和分割运动信息的查找表的示意图。
44.图23示出一个实施例的在自适应混合过程中对编码单元使用的权重因子。
45.图24是一个实施例的交织仿射预测过程的示意图。
46.图25示出一个实施例的在交织仿射预测过程中加权平均操作的权重的样式。
47.图26是一个实施例的小子块仿射帧间预测的示意图。
48.图27是一个实施例的解码过程的示意图。
49.图28是一个实施例的计算机系统的示意图。
具体实施方式
50.i.用于视频编解码的编码器和解码器
51.图2是根据本技术公开的实施例的通信系统(200)的简化框图。通信系统(200)包括多个终端装置,所述终端装置可通过例如网络(250)彼此通信。举例来说,通信系统(200)包括通过网络(250)互连的第一终端装置(210)和第二终端装置(220)。在图2的实施例中,第一终端装置(210)和第二终端装置(220)执行单向数据传输。举例来说,第一终端装置(210)可对视频数据(例如由终端装置(210)采集的视频图像流)进行编码以通过网络(250)传输到第二端装置(220)。已编码的视频数据以一个或多个已编码视频码流形式传输。第二终端装置(220)可从网络(250)接收已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图像。单向数据传输在媒体服务等应用中是较常见的。
52.在另一实施例中,通信系统(200)包括执行已编码视频数据的双向传输的第三终端装置(230)和第四终端装置(240),所述双向传输可例如在视频会议期间发生。对于双向数据传输,第三终端装置(230)和第四终端装置(240)中的每个终端装置可对视频数据(例如由终端装置采集的视频图像流)进行编码,以通过网络(250)传输到第三终端装置(230)和第四终端装置(240)中的另一终端装置。第三终端装置(230)和第四终端装置(240)中的每个终端装置还可接收由第三终端装置(230)和第四终端装置(240)中的另一终端装置传输的已编码视频数据,且可对所述已编码视频数据进行解码以恢复视频数据,且可根据恢复的视频数据在可访问的显示装置上显示视频图像。
53.在图2的实施例中,第一终端装置(210)、第二终端装置(220)、第三终端装置(230)和第四终端装置(240)可为服务器、个人计算机和智能电话,但本技术公开的原理可不限于此。本技术公开的实施例适用于膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络(250)表示在第一终端装置(210)、第二终端装置(220)、第三终端装置(230)和第四终端装置(240)之间传送已编码视频数据的任何数目的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(250)可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本技术的目的,除非在下文中有所解释,否则网络(250)的架构和拓扑对于本技术公开的操作来说可能是无关紧要的。
54.作为实施例,图3示出视频编码器和视频解码器在流式传输环境中的放置方式。本技术所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字tv、在包括cd、dvd、存储棒等的数字介质上存储压缩视频等等。
55.流式传输系统可包括采集子系统(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标准的上下文中。
56.应注意,电子装置(320)和电子装置(330)可包括其它组件(未示出)。举例来说,电子装置(320)可包括视频解码器(未示出),且电子装置(330)还可包括视频编码器(未示出)。
57.图4是根据本技术公开的实施例的视频解码器(410)的框图。视频解码器(410)可设置在电子装置(430)中。电子装置(430)可包括接收器(431)(例如接收电路)。视频解码器(410)可用于代替图3实施例中的视频解码器(310)。
58.接收器(431)可接收将由视频解码器(410)解码的一个或多个已编码视频序列;在同一实施例或另一实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列。可从信道(401)接收已编码视频序列,所述信道可以是通向存储已编码的视频数据的存储装置的硬件/软件链路。接收器(431)可接收已编码的视频数据以及其它数据,例如,可转发到它们各自的使用实体(未标示)的已编码音频数据和/或辅助数据流。接收器(431)可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器(415)可耦接在接收器(431)与熵解码器/解析器(420)(此后称为“解析器(420)”)之间。在某些应用中,缓冲存储器(415)是视频解码器(410)的一部分。在其它情况下,所述缓冲存储器(415)可设置在视频解码器(410)外部(未标示)。而在其它情况下,视频解码器(410)的外部设置缓冲存储器(未标示)以例如防止网络抖动,且在视频解码器(410)的内部可配置另一缓冲存储器(415)以例如处理播出定时。而当接收器(431)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,也可能不需要配置缓冲存储器(415),或可以将所述缓冲存储器做得较小。当然,为了在互联网等业务分组网络上使用,也可能需要缓冲存储器(415),所述缓冲存储器可相对较大且可具有自适应性大小,且可至少部分地实施于操作系统或视频解码器(410)外部的类似元件(未标示)中。
59.视频解码器(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)还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。
60.解析器(420)可对从缓冲存储器(415)接收的视频序列执行熵解码/解析操作,从而创建符号(421)。
61.取决于已编码视频图像或一部分已编码视频图像(例如:帧间图像和帧内图像、帧间块和帧内块)的类型以及其它因素,符号(421)的重建可涉及多个不同单元。涉及哪些单元以及涉及方式可由解析器(420)从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描述解析器(420)与下文的多个单元之间的此类子群控制信息流。
62.除已经提及的功能块以外,视频解码器(410)可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互并且可以彼此集成。然而,出于描述所公开主题的目的,概念上细分成下文的功能单元是适当的。
63.第一单元是缩放器/逆变换单元(451)。缩放器/逆变换单元(451)从解析器(420)接收作为符号(421)的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(451)可输出包括样本值的块,所述样本值可输入到聚合器(455)中。
64.在一些情况下,缩放器/逆变换单元(451)的输出样本可属于帧内编码块;即:不使用来自先前重建的图像的预测性信息,但可使用来自当前图像的先前重建部分的预测性信息的块。此类预测性信息可由帧内图像预测单元(452)提供。在一些情况下,帧内图像预测单元(452)采用从当前图像缓冲区(458)提取的已重建信息生成大小和形状与正在重建的块相同的周围块。举例来说,当前图像缓冲区(458)缓冲部分重建的当前图像和/或完全重建的当前图像。在一些情况下,聚合器(455)基于每个样本,将帧内预测单元(452)生成的预测信息添加到由缩放器/逆变换单元(451)提供的输出样本信息中。
65.在其它情况下,缩放器/逆变换单元(451)的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元(453)可访问参考图像存储器(457)以提取用于预测的样本。在根据符号(421)对提取的样本进行运动补偿之后,这些样本可由聚合器(455)添加到缩放器/逆变换单元(451)的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(453)从参考图像存储器(457)内的地址获取预测样本可受到运动矢量控制,且所述运动矢量以所述符号(421)的形式而供运动补偿预测单元(453)使用,所述符号(421)例如是包括x、y和参考图像分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图像存储器(457)提取的样本值的内插、运动矢量预测机制等
等。
66.聚合器(455)的输出样本可在环路滤波器单元(456)中被各种环路滤波技术采用。视频压缩技术可包括环路内滤波器技术,所述环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频码流)中的参数,且所述参数作为来自解析器(420)的符号(421)可用于环路滤波器单元(456)。然而,在其他实施例中,视频压缩技术还可响应于在解码已编码图像或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。
67.环路滤波器单元(456)的输出可以是样本流,所述样本流可输出到显示装置(412)以及存储在参考图像存储器(457),以用于后续的帧间图像预测。
68.一旦完全重建,某些已编码图像就可用作参考图像以用于将来预测。举例来说,一旦对应于当前图像的已编码图像被完全重建,且已编码图像(通过例如解析器(420))被识别为参考图像,则当前图像缓冲区(458)可变为参考图像存储器(457)的一部分,且可在开始重建后续已编码图像之前重新分配新的当前图像缓冲区。
69.视频解码器(410)可根据例如itu
‑
t h.265标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指示的语法。具体地说,配置文件可从视频压缩技术或标准中可用的所有工具中选择某些工具作为在所述配置文件下可供使用的仅有工具。对于合规性,还要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图像大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图像大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(hypothetical reference decoder,hrd)规范和在已编码视频序列中用信号表示的hrd缓冲区管理的元数据来进一步限定。
70.在实施例中,接收器(431)可连同已编码视频一起接收附加(冗余)数据。所述附加数据可以是已编码视频序列的一部分。所述附加数据可由视频解码器(410)用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,snr)增强层、冗余切片、冗余图像、前向纠错码等形式。
71.图5是根据本技术公开的实施例的视频编码器(503)的框图。视频编码器(503)设置于电子装置(520)中。电子装置(520)包括传输器(540)(例如传输电路)。视频编码器(503)可用于代替图3实施例中的视频编码器(303)。
72.视频编码器(503)可从视频源(501)(并非图5实施例中的电子装置(520)的一部分)接收视频样本,所述视频源可采集将由视频编码器(503)编码的视频图像。在另一实施例中,视频源(501)是电子装置(520)的一部分。
73.视频源(501)可提供将由视频编码器(503)编码的呈数字视频样本流形式的源视频序列,所述数字视频样本流可具有任何合适位深度(例如:8位、10位、12位
……
)、任何色彩空间(例如bt.601y crcb、rgb
……
)和任何合适取样结构(例如y crcb 4:2:0、y crcb 4:4:4)。在媒体服务系统中,视频源(501)可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源(501)可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图像,当按顺序观看时,这些图像被赋予运动。图像自身可构建为空间像素
阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括一个或多个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。
74.根据实施例,视频编码器(503)可实时或在由应用所要求的任何其它时间约束下,将源视频序列的图像编码且压缩成已编码视频序列(543)。施行适当的编码速度是控制器(550)的一个功能。在一些实施例中,控制器(550)控制如下文所描述的其它功能单元且在功能上耦接到这些单元。为了简洁起见,图中未标示耦接。由控制器(550)设置的参数可包括速率控制相关参数(图像跳过、量化器、率失真优化技术的λ值等)、图像大小、图像群组(group of pictures,gop)布局,最大运动矢量搜索范围等。控制器(550)可用于具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(503)。
75.在一些实施例中,视频编码器(503)在编码环路中进行操作。作为简单的描述,在实施例中,编码环路可包括源编码器(530)(例如,负责基于待编码的输入图像和参考图像创建符号,例如符号流)和嵌入于视频编码器(503)中的(本地)解码器(533)。解码器(533)以类似于(远程)解码器创建样本数据的方式重建符号以创建样本数据(因为在本技术所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入到参考图像存储器(534)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图像存储器(534)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图像样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图像同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)也用于一些相关技术。
[0076]“本地”解码器(533)的操作可与例如已在上文结合图4详细描述视频解码器(410)的“远程”解码器相同。然而,另外简要参考图4,当符号可用且熵编码器(545)和解析器(420)能够无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器(415)和解析器(420)在内的视频解码器(410)的熵解码部分,可能无法完全在本地解码器(533)中实施。
[0077]
此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于此原因,本技术侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。
[0078]
在操作期间,在一些实施例中,源编码器(530)可执行运动补偿预测编码。参考来自视频序列中被指示为“参考图像”的一个或多个先前已编码图像,所述运动补偿预测编码对输入图像进行预测性编码。以此方式,编码引擎(532)对输入图像的像素块与参考图像的像素块之间的差异进行编码,所述参考图像可被选作所述输入图像的预测参考。
[0079]
本地视频解码器(533)可基于源编码器(530)创建的符号,对可指示为参考图像的图像的已编码视频数据进行解码。编码引擎(532)的操作可为有损过程。当已编码视频数据可在视频解码器(图5中未示)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(533)复制解码过程,所述解码过程可由视频解码器对参考图像执行,且可使重建的参考图像存储在参考图像高速缓存(534)中。以此方式,视频编码器(503)可在本地存储重建的参考图像的副本,所述副本与将由远端视频解码器获得的重建参考图像具有共同内容(不存在传输误差)。
[0080]
预测器(535)可针对编码引擎(532)执行预测搜索。即,对于将要编码的新图像,预
测器(535)可在参考图像存储器(534)中搜索可作为所述新图像的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图像运动矢量、块形状等。预测器(535)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器(535)获得的搜索结果,可确定输入图像可具有从参考图像存储器(534)中存储的多个参考图像取得的预测参考。
[0081]
控制器(550)可管理源编码器(530)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
[0082]
可在熵编码器(545)中对所有上述功能单元的输出进行熵编码。熵编码器(545)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。
[0083]
传输器(540)可缓冲由熵编码器(545)创建的已编码视频序列,从而为通过通信信道(560)进行传输做准备,所述通信信道可以是通向将存储已编码的视频数据的存储装置的硬件/软件链路。传输器(540)可将来自视频编码器(503)的已编码视频数据与要传输的其它数据合并,所述其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。
[0084]
控制器(550)可管理视频编码器(503)的操作。在编码期间,控制器(550)可以为每个已编码图像分配某一已编码图像类型,但这可能影响可应用于相应的图像的编码技术。例如,通常可将图像分配为以下任一种图像类型:
[0085]
帧内图像(i图像),其可以是不将序列中的任何其它图像用作预测源就可被编码和解码的图像。一些视频编解码器容许不同类型的帧内图像,包括例如独立解码器刷新(independent decoder refresh,“idr”)图像。所属领域的技术人员了解i图像的变体及其相应的应用和特征。
[0086]
预测性图像(p图像),其可以是可使用帧内预测或帧间预测进行编码和解码的图像,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
[0087]
双向预测性图像(b图像),其可以是可使用帧内预测或帧间预测进行编码和解码的图像,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图像可使用多于两个参考图像和相关联元数据以用于重建单个块。
[0088]
源图像通常可在空间上细分成多个样本块(例如,4
×
4、8
×
8、4
×
8或16
×
16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图像的编码分配来确定所述其它块。举例来说,i图像的块可进行非预测编码,或所述块可参考同一图像的已经编码的块来进行预测编码(空间预测或帧内预测)。p图像的像素块可参考一个先前编码的参考图像通过空间预测或通过时域预测进行预测编码。b图像的块可参考一个或两个先前编码的参考图像通过空间预测或通过时域预测进行预测编码。
[0089]
视频编码器(503)可根据例如itu
‑
t h.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(503)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指示的语法。
[0090]
在实施例中,传输器(540)可在传输已编码的视频时传输附加数据。源编码器(530)可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/snr增强层、冗余图像和切片等其它形式的冗余数据、sei消息、vui参数集片段等。
[0091]
采集到的视频可作为呈时间序列的多个源图像(视频图像)。帧内图像预测(常常简化为帧内预测)利用给定图像中的空间相关性,而帧间图像预测则利用图像之间的(时间或其它)相关性。在实施例中,将正在编码/解码的特定图像分割成块,正在编码/解码的特定图像被称作当前图像。在当前图像中的块类似于视频中先前已编码且仍被缓冲的参考图像中的参考块时,可通过称作运动矢量的矢量对当前图像中的块进行编码。所述运动矢量指向参考图像中的参考块,且在使用多个参考图像的情况下,所述运动矢量可具有识别参考图像的第三维度。
[0092]
在一些实施例中,双向预测技术可用于帧间图像预测中。根据双向预测技术,使用两个参考图像,例如按解码次序都在视频中的当前图像之前(但按显示次序可能分别是过去和将来)第一参考图像和第二参考图像。可通过指向第一参考图像中的第一参考块的第一运动矢量和指向第二参考图像中的第二参考块的第二运动矢量对当前图像中的块进行编码。具体来说,可通过第一参考块和第二参考块的组合来预测所述块。
[0093]
此外,合并模式技术可用于帧间图像预测中以改善编码效率。
[0094]
根据本技术公开的一些实施例,帧间图像预测和帧内图像预测等预测的执行以块为单位。举例来说,根据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像素等等。
[0095]
图6是根据本技术公开的另一实施例的视频编码器(603)的图。视频编码器(603)用于接收视频图像序列中的当前视频图像内的样本值的处理块(例如预测块),且将所述处理块编码到作为已编码视频序列的一部分的已编码图像中。在本实施例中,视频编码器(603)用于代替图3实施例中的视频编码器(303)。
[0096]
在hevc实施例中,视频编码器(603)接收用于处理块的样本值的矩阵,所述处理块为例如8
×
8样本的预测块等。视频编码器(603)使用例如率失真(rate
‑
distortion,rd)优化来确定是否使用帧内模式、帧间模式或双向预测模式来编码所述处理块。当在帧内模式中编码处理块时,视频编码器(603)可使用帧内预测技术以将处理块编码到已编码图像中;且当在帧间模式或双向预测模式中编码处理块时,视频编码器(603)可分别使用帧间预测或双向预测技术将处理块编码到已编码图像中。在某些视频编码技术中,合并模式可以是帧间图像预测子模式,其中,在不借助预测因子外部的已编码运动矢量分量的情况下,从一个或多个运动矢量预测因子得出运动矢量。在某些其它视频编码技术中,可存在适用于主题块的运动矢量分量。在实施例中,视频编码器(603)包括其它组件,例如用于确定处理块模式的模式决策模块(未示出)。
[0097]
在图6的实施例中,视频编码器(603)包括如图6所示的耦接到一起的帧间编码器(630)、帧内编码器(622)、残差计算器(623)、开关(626)、残差编码器(624)、通用控制器(621)和熵编码器(625)。
[0098]
帧间编码器(630)用于接收当前块(例如处理块)的样本、比较所述块与参考图像中的一个或多个参考块(例如先前图像和后来图像中的块)、生成帧间预测信息(例如根据帧间编码技术的冗余信息描述、运动矢量、合并模式信息)、以及基于帧间预测信息使用任何合适的技术计算帧间预测结果(例如已预测块)。在一些实施例中,参考图像是基于已编码的视频信息解码的已解码参考图像。
[0099]
帧内编码器(622)用于接收当前块(例如处理块)的样本、在一些情况下比较所述块与同一图像中已编码的块、在变换之后生成量化系数、以及在一些情况下还(例如根据一个或多个帧内编码技术的帧内预测方向信息)生成帧内预测信息。在实施例中,帧内编码器(622)还基于帧内预测信息和同一图像中的参考块计算帧内预测结果(例如已预测块)。
[0100]
通用控制器(621)用于确定通用控制数据,且基于所述通用控制数据控制视频编码器(603)的其它组件。在实施例中,通用控制器(621)确定块的模式,且基于所述模式将控制信号提供到开关(626)。举例来说,当所述模式是帧内模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧内模式结果,且控制熵编码器(625)以选择帧内预测信息且将所述帧内预测信息添加在码流中;以及当所述模式是帧间模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧间预测结果,且控制熵编码器(625)以选择帧间预测信息且将所述帧间预测信息添加在码流中。
[0101]
残差计算器(623)用于计算所接收的块与选自帧内编码器(622)或帧间编码器(630)的预测结果之间的差(残差数据)。残差编码器(624)用于基于残差数据操作,以对残差数据进行编码以生成变换系数。在实施例中,残差编码器(624)用于将残差数据从时域转换到频域,且生成变换系数。变换系数接着经由量化处理以获得量化的变换系数。在各种实施例中,视频编码器(603)还包括残差解码器(628)。残差解码器(628)用于执行逆变换,且生成已解码残差数据。已解码残差数据可适当地由帧内编码器(622)和帧间编码器(630)使用。举例来说,帧间编码器(630)可基于已解码残差数据和帧间预测信息生成已解码块,且帧内编码器(622)可基于已解码残差数据和帧内预测信息生成已解码块。适当处理已解码块以生成已解码图像,且在一些实施例中,所述已解码图像可在存储器电路(未示出)中缓冲并用作参考图像。
[0102]
熵编码器(625)用于将码流格式化以产生已编码的块。熵编码器(625)根据hevc标准等合适标准产生各种信息。在实施例中,熵编码器(625)用于获得通用控制数据、所选预测信息(例如帧内预测信息或帧间预测信息)、残差信息和码流中的其它合适的信息。应注意,根据所公开的主题,当在帧间模式或双向预测模式的合并子模式中对块进行编码时,不存在残差信息。
[0103]
图7是根据本技术公开的另一实施例的视频解码器(710)的图。视频解码器(710)用于接收作为已编码视频序列的一部分的已编码图像,且对所述已编码图像进行解码以生成重建的图像。在实施例中,视频解码器(710)用于代替图3实施例中的视频解码器(310)。
[0104]
在图7实施例中,视频解码器(710)包括如图7中所示耦接到一起的熵解码器(771)、帧间解码器(780)、残差解码器(773)、重建模块(774)和帧内解码器(772)。
[0105]
熵解码器(771)可用于根据已编码图像来重建某些符号,这些符号表示构成所述已编码图像的语法元素。此类符号可包括例如用于对所述块进行编码的模式(例如帧内模式、帧间模式、双向预测模式、后两者的合并子模式或另一子模式)、可分别识别供帧内解码器(772)或帧间解码器(780)用以进行预测的某些样本或元数据的预测信息(例如帧内预测信息或帧间预测信息)、呈例如量化的变换系数形式的残差信息等等。在实施例中,当预测模式是帧间或双向预测模式时,将帧间预测信息提供到帧间解码器(780);以及当预测类型是帧内预测类型时,将帧内预测信息提供到帧内解码器(772)。残差信息可经由逆量化并提供到残差解码器(773)。
[0106]
帧间解码器(780)用于接收帧间预测信息,且基于所述帧间预测信息生成帧间预测结果。
[0107]
帧内解码器(772)用于接收帧内预测信息,且基于所述帧内预测信息生成预测结果。
[0108]
残差解码器(773)用于执行逆量化以提取解量化的变换系数,且处理所述解量化的变换系数,以将残差从频域转换到空间域。残差解码器(773)还可能需要某些控制信息(用以获得量化器参数qp),且所述信息可由熵解码器(771)提供(未标示数据路径,因为这仅仅是低量控制信息)。
[0109]
重建模块(774)用于在空间域中组合由残差解码器(773)输出的残差与预测结果(可由帧间预测模块或帧内预测模块输出)以形成重建的块,所述重建的块可以是重建的图像的一部分,所述重建的图像继而可以是重建的视频的一部分。应注意,可执行解块操作等其它合适的操作来改善视觉质量。
[0110]
应注意,可使用任何合适的技术来实施视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。在实施例中,可使用一个或多个集成电路来实施视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。在另一实施例中,可使用执行软件指令的一个或多个处理器来实施视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。
[0111]
ii.帧间预测技术
[0112]
对于每个帧间预测的cu,运动参数(包括运动矢量、参考图像索引、参考图像列表使用索引和vvc的新编解码特征需要的附加信息)被用于生成帧间预测样本。可以以显式方式或隐式方式用信号表示这些运动参数。当cu以跳过模式编码时,cu与一个pu相关联并且不具有显著的残差系数、已编码的运动矢量δ或参考图像索引。当cu以合并模式编码时,从相邻cu(包括空间候选cu和时间候选cu)以及在vvc中引入的附加时间表获得当前cu的运动参数。合并模式可以应用于任何帧间预测的cu,包括以跳过模式编码的cu。合并模式的替代方案是运动参数的显式传输,其中对于每个cu,显式地用信号表示运动矢量、每个参考图像列表相应的参考图像索引、参考图像列表使用标志以及其它所需的信息。
[0113]
除了hevc中的帧间编码特征之外,vtm3包括下面列出的一些修正的帧间预测编码工具:1)扩展的合并预测;2)具有mvd的合并模式(merge mode with mvd,mmvd);
3)仿射运动补偿预测;4)基于子块的时间运动矢量预测(sub
‑
block
‑
based temporal motion vector prediction,sbtmvp);5)三角分割预测;及6)组合的帧间和帧内预测(combined inter and intra prediction,ciip)。
[0114]
本技术的以下说明描述了vvc中指示的每个帧间预测编码工具。
[0115]
1、扩展的合并预测模式
[0116]
一些实施例中,可以对上述合并候选列表进行扩展,并且可以在合并模式中使用扩展的合并候选列表。例如,扩展的合并候选列表可以通过以下方式构建,即顺序地加入以下五种类型的合并候选项,直到列表中的合并候选项达到最大允许的大小:1)来自空间相邻编解码单元(cu)的空间运动矢量预测因子(mvp);2)来自同位cu的时间mvp;3)来自历史缓冲器的基于历史的mvp;4)成对平均mvp;以及5)零mv。
[0117]
术语“编码单元(cu)”可以指预测块或从图像分割出的编码块。
[0118]
各实施例中,可在条带头、图块组头等中用信号表示扩展的合并列表的大小。例如,扩展的合并列表的最大允许大小是6。一些实施例中,对于以合并模式编码的cu,可以使用截断一元二进制化(truncated unary binarization,tu)对最佳合并候选项的索引进行编码。合并索引的第一个二进制数可以进行上下文编码,而其它二进制数可以用旁路编解码进行编码。
[0119]
下面描述扩展的合并候选列表中不同类型的合并候选项的生成过程的实施例。
[0120]
1.1空间候选项的获得
[0121]
一个实施例中,扩展的合并列表中的空间合并候选项的得出方式类似于hevc中的空间合并候选项的得出方式。图8为一个实施例的当前块(810)的空间合并候选位置。可以在图8所示的候选位置中选择和得出最多四个合并候选项。一个例子中,得出的顺序可以是a1、b1、b0、a0和b2。一个例子中,只有当a1、b1、b0、a0中任一位置上的cu不可用或者由帧内编码时,才考虑位置b2。一个例子中,一个位置的cu可能因为属于另一条带或图块而不可用。
[0122]
在将位置a1处的候选项添加到扩展的候选列表之后,可以对其它候选项的添加进行冗余检查。通过冗余检查,从扩展的合并列表中排除具有相同运动信息的合并候选项,从而可以提高编码效率。为了降低计算复杂度,一个例子中,在冗余检查中不是所有可能的成对候选项都会被考虑。而是,仅考虑图9中用箭头连接的对。一些示例中,如果一个候选项在合并列表中具有图9中指示的对应项并且该对应项与要添加的候选项具有相同或相似的运动信息,则不将该候选项添加到合并列表中。
[0123]
1.2时间候选项的得出
[0124]
一个实施例中,只有一个时间候选项被添加到扩展的合并列表中。图10为一个实施例的在当前图像(1001)中得出的当前块(1011)的时间合并候选项(1031)的示例。时间合并候选项(1031)是通过缩放当前块(1011)在图像(1002)(称为同位图像)中的同位块
(1012)的运动矢量(1032)而得出的。一个例子中,显式地用信号表示同位图像的参考图像索引,例如在条带头中表示。一个例子中,时间合并候选项(1031)的参考图像索引被设置为0。一个实施例中,基于图像顺序计数(picture order count,poc)的距离,tb(1041)和td(1042),来执行缩放操作。例如,tb(1041)被定义为当前块(1011)的参考图像(1003)与当前图像(1001)之间的poc距离,而td(1042)被定义为同位块(1012)的参考图像(1004)与同位图像(1002)之间的poc距离。
[0125]
图11为一个实施例的可以从中选择当前块(1110)的时间合并候选项的候选位置c1和c0。一个实施例中,首先简称位置c0以得出时间合并候选项。当位置c0处的合并候选项不可用、或被帧内编码、或在ctu的当前行之外时,则使用位置c1。
[0126]
1.3基于历史的合并候选项的得出
[0127]
一些实施例中,基于历史的运动矢量预测(history
‑
based motion vector prediction,hmvp)合并候选项在空间候选mvp和时间候选mvp之后被添加到当前cu的扩展合并列表中。在hmvp中,先前已编码的块的运动信息可被存储在一个表(或历史缓冲器)中作为当前cu的mvp候选项。这种运动信息被称为hmvp候选项。在编码/解码过程期间可以维护具有多个hmvp候选项的表。在一个示例中,当遇到新的一行ctu时,可以重置(清空)该表。一个实施例中,每当存在非子块帧间编码的cu时,可以将相关联的运动信息添加到表的最后一项作为新的hmvp候选项。
[0128]
一个实施例中,hmvp表的大小,由s表示,被设置为6。相应地,可将至多6个hmvp候选项添加到该表中。当向该表插入新的运动候选项时,一个实施例中可以使用受约束的先进先出(fifo)规则。此外,当添加新的hmvp候选项时可以进行冗余检查,以发现表中是否存在相同的hmvp。如果在表中找到相同的hmvp,则可以从表中去除相同的hmvp候选项,并且将去除的hmvp候选项之后的所有hmvp候选项向前移动。然后,可以将新的hmvp候选项添加在表的末尾处。
[0129]
一个实施例中,在扩展的合并候选项列表构建过程中使用hmvp候选项。一个实施例中,表中几个新添加的hmvp候选项被依次检查并且被插入到候选列表中tmvp候选项之后的位置上。可以进行冗余检查来确定hmvp候选项是否与先前添加到扩展的合并列表中的空间候选项或时间合并候选项相似或相同。
[0130]
为了减少冗余检查操作的次数,一个实施例中引入以下简化:(i)用于生成扩展的合并列表的hmpv候选项的数目被设置为(n<=4)?m:(8
–
n),其中,n指示扩展的合并列表中现有候选项的数目,m指示历史表中可用的hmvp候选项的数目。(ii)一旦扩展的合并列表中的可用合并候选项的总数目达到最大允许的合并候选项的数目减1,就终止使用hmvp构建合并候选项列表的过程。
[0131]
1.4成对平均合并候选项(pairwise average merge candidate)的得出
[0132]
一些实施例中,成对平均候选项(pairwise average candidate)可以通过对当前合并候选列表中的预定义的候选项对进行平均来生成。例如,一个实施例中,预定义的对可以定义为{(0,1),(0,2),(1,2),(0,3),(1,3),(2,3)},其中数字表示合并候选列表的合并索引。例如,可以为每个参考图像列表分别计算平均运动矢量。如果两个待平均的运动矢量在一个列表中都可用,则即使当这两个运动矢量指向不同的参考图像时,也可以对它们进行平均。如果仅一个运动矢量可用,则可以直接使用这一个运动矢量。如果没有可用的运动
motion vector predictor,cpmvp)候选项,并且用信号表示一个索引,以指示用于当前cu的cpmvp。
[0152]
一些实施例中,使用以下三种类型的cpmv候选项来构成仿射合并候选列表:(i)从相邻cu的cpmv外推的继承仿射合并候选项,(ii)使用相邻cu的平移mv得出的构建的仿射合并候选项cpmvp,以及(iii)零mv。
[0153]
根据一些实施例,vtm3中可以存在最多两个继承的仿射候选项,这些继承的仿射候选项可以从相邻块的仿射运动模型得出。这两个继承的候选项可以包括来自左侧相邻cu的一个候选项和来自上方相邻cu的一个候选项。一个例子中,候选块可以是图8所示的候选块。对于左侧预测因子,扫描顺序可以是a0
→
a1,而对于上方预测因子,扫描顺序可以是b0
→
b1
→
b2。在一些实施例中,仅选择来自每一侧的第一个继承的候选项,并且在两个继承的候选项之间不执行剪枝检查。在确定相邻的仿射cu时,该cu的控制点运动矢量可以被用于得出当前cu的仿射合并列表中的cpmvp候选项。如图16所示,其中示出当前块1600,如果以仿射模式对相邻的左下块a进行编码时,得到了包含块a的cu 1602的左上角、右上角和左下角的运动矢量v2、v3和v4。当块a由4参数仿射模型进行编码时,可以根据v2和v3来计算当前cu的两个cpmv。当块a是用6参数仿射模型进行编码时,可以根据v2、v3和v4来计算当前cu的三个cpmv。
[0154]
根据一些实施例,构建的仿射候选项可以通过对每个控制点的相邻的平移运动信息进行组合来构建。控制点的运动信息可以从图17所示的当前块1700的特定空间相邻块和时间相邻块(即,“t”)得出。cpmv
k
(k=1,2,3,4)可以表示第k个控制点。对于cpmv1,可以检查b2
→
b3
→
a2块,并且可以使用第一个可用块的mv。对于cpmv2,可以检查b1
→
b0块,而对于cpmv3,可以检查a1
→
a0块。如果tmvp可用,则可以用作cpmv4。
[0155]
一些实施例中,在获得四个控制点的mv之后,可以基于这些控制点的运动信息来构建仿射合并候选项。控制点mv的以下组合示例可以用于构建块:{cpmv1,cpmv2,cpmv3},{cpmv1,cpmv2,cpmv4},{cpmv1,cpmv3,cpmv4},{cpmv2,cpmv3,cpmv4},{cpmv1,cpmv2},and{cpmv1,cpmv3}
[0156]
三个cpmv的组合构建6参数仿射合并候选项,而两个cpmv的组合构建4参数仿射合并候选项。一些实施例中,为了避免运动缩放过程,如果控制点的参考索引不同,则丢弃控制点mv的相关组合。
[0157]
在对继承的仿射合并候选项和构建的仿射合并候选项进行检查之后,如果列表仍然未满,则可以将零mv插入到列表的末尾。
[0158]
3.2仿射amvp预测
[0159]
一些实施例中,仿射amvp模式可以应用于宽度和高度均大于或等于16的cu。可以在码流中用信号表示cu级的仿射标志,以指示是否使用仿射amvp模式,并且接着可以用信号表示另一标志,以指示使用4参数仿射还是6参数仿射。可以在码流中用信号表示当前cu的cpmv与其预测因子的差。仿射avmp候选列表大小可以是2,并且可以通过依次使用以下四种类型的cpvm候选项来生成:(i)从相邻cu的cpmv外推的继承的仿射amvp候选项;(ii)使用相邻cu的平移mv得出的构建的仿射amvp候选项;
(iii)来自相邻cu的平移mv;以及(iv)零mv。
[0160]
一个例子中,继承的仿射amvp候选项的检查顺序类似于继承的仿射合并候选项的检查顺序。区别在于,对于avmp候选项,考虑具有与当前块中相同的参考图像的仿射cu。一些实施例中,当将继承的仿射运动预测因子插入到候选列表中时,不进行剪枝过程。
[0161]
构建的amvp候选项可以从图17所示的指定空间相邻块得出。可以使用与在仿射合并候选项的构建过程中相同的检查顺序。此外,还可以检查相邻块的参考图像索引。使用检查顺序中的第一个由帧间编码且与当前cu具有相同的参考图像的块。当当前cu以4参数仿射模型编码,并且cpmv0和cpmv1两者均可用时,这两个可用的cpmv作为一个候选项被添加到仿射amvp列表中。当当前cu以6参数仿射模式编码,并且所有三个cpmv(cpmv0、cpmv1和cpmv2)均可用时,这些可用的cpmv作为一个候选项被添加到仿射amvp列表中。否则,将构建的amvp候选项设置为不可用。
[0162]
如果在对继承的仿射amvp候选项和构建的仿射amvp候选项进行检查之后,仿射amvp列表中的候选项仍然少于2个,则添加与控制点相邻的平移运动矢量(当可用时)来预测当前cu的所有控制点mv。最后,如果仿射amvp列表仍然未满,则可以用零mv来填充仿射amvp列表。
[0163]
4、基于子块的时间运动矢量预测因子(sbtmvp)
[0164]
一些实施例中,类似于hevc中的时间运动矢量预测(temporal motion vector prediction,tmvp),vtm支持的基于子块的时间运动矢量预测(sub
‑
block based temporal motion vector prediction,sbtmvp)方法可以使用同位图像中的运动场来改进当前图像中的cu的运动矢量预测和合并模式。sbtvmp可以使用与tmvp中相同的同位图像。sbtmvp与tmvp的区别主要在于以下两个方面:(1)tmvp预测cu级的运动,而sbtmvp预测子cu级的运动;及(2)尽管tmvp从同位图像中的同位块(该同位块是相对于当前cu的右下方的块或中心的块)中提取时间运动矢量,但sbtmvp在从同位图像中提取时间运动信息之前进行运动移位,其中该运动移位是从当前cu的空间相邻块之一的运动矢量中获得的。
[0165]
sbtvmp过程如图18和图19所示。一些实施例中,sbtmvp分两个步骤预测当前cu内的子cu的运动矢量。在第一步骤中,如图18所示,以a1、b1、b0和a0的顺序检查当前块(1800)的空间相邻块。一旦识别出具有使用同位图像作为其参考图像的运动矢量的第一个可用的空间相邻块,则选择该运动矢量作为使用的运动移位。如果没有从空间相邻块中识别出这样的运动矢量,则将运动移位设置为(0,0)。
[0166]
在第二步骤中,进行在第一步骤中识别的运动移位(即,将其加到当前块的坐标上),以从如图19所示的同位图像中获得子cu级的运动信息(例如,运动矢量和参考索引)。图19中的示例假设运动移位(1949)被设置为空间相邻块a1(1943)的运动矢量。然后,对于当前图像(1941)的当前块(1942)中的当前子cu(例如,子cu(1944)),同位图像(1951)的同位块(1952)中的对应的同位子cu(例如,同位子cu(1954))的运动信息被用于得出当前子cu的运动信息。以hevc中的tmvp过程类似的方式,将对应的同位子cu(例如,同位子cu(1954))的运动信息转换为当前子cu(例如,子cu(1944))的运动矢量和参考索引,其中进行时间运动缩放以将时间运动矢量的参考图像与当前cu的参考图像对齐。
[0167]
根据一些实施例,可以在基于子块的合并模式中使用组合的基于子块的合并列
表,该合并列表包括sbtvmp候选项和仿射合并候选项两者。sbtvmp模式可以由序列参数集(sequence parameter set,sps)标志启用或禁用。当启用sbtmvp模式时,将sbtmvp预测因子添加为基于子块的合并列表的第一个条目,其后是仿射合并候选项。在某些应用中,基于子块的合并列表的最大允许大小是5。例如,sbtmvp中使用的子cu大小固定为8
×
8。与仿射合并模式一样,sbtmvp模式仅适用于宽度和高度均大于或等于8的cu。
[0168]
额外的sbtmvp合并候选项的编码逻辑与其它合并候选项的编码逻辑相同。即,对于p条带或b条带中的每个cu,可以执行额外的速率失真(rd)检查以确定是否使用该sbtmvp候选项。
[0169]
5、三角预测
[0170]
一些实施例中,三角预测模式(triangular prediction mode,tpm)可以用于帧间预测。一个实施例中,进行tpm的cu为尺寸大于或等于8
×
8个样本、且使用跳过或合并模式编码的cu。一个实施例中,对于满足这些条件(尺寸大于或等于8
×
8样本并且采用跳过或合并模式编码)的cu,用信号表示一个cu级的标志以指示是否使用tpm。
[0171]
一些实施例中,当使用tpm时,可以以对角线分割方式或反对角线分割方式,将cu均匀地分割成两个三角分区,如图20所示。在图20中,可以从左上角到右下角对第一cu(2010)进行分割,从而产生两个三角预测单元,pu1和pu2。可以从右上角到左下角对第二cu(2020)进行分割,从而产生两个三角预测单元,pu1和pu2。cu(2010)和cu(2020)中的每个三角预测单元pu1或pu2可以使用其自身的运动信息的帧间预测。一些实施例中,仅允许对每个三角预测单元进行单向预测。因此,每个三角预测单元具有一个运动矢量和一个参考图像索引。可以应用单向预测运动约束以确保,像常规的双向预测方法中那样,对每个cu执行不超过两次运动补偿预测。这样,可以降低处理复杂度。可以从单向预测合并候选列表得出每个三角预测单元的单向预测运动信息。一些其它实施例中,允许对每个三角预测单元进行双向预测。因此,可以从双向预测合并候选列表得出每个三角预测单元的双向预测运动信息。
[0172]
一些实施例中,当cu级标志指示当前cu使用tpm进行编码时,进一步用信号表示一个索引,称为三角分区索引。例如,三角分区索引可具有在[0,39]范围内的值。使用该三角分区索引,可以通过在解码器侧查表来获得三角分区的方向(对角线或反对角线)以及每个分区的运动信息(例如,相应的单向预测候选列表的合并索引(或称为tpm索引))。一个实施例中,在基于所获得的运动信息预测每个三角预测单元之后,通过执行具有自适应权重的混合过程来调整沿着当前cu的对角线或反对角线边线的样本值。混合过程的结果是可以获得整个cu的预测信号。随后,可以利用类似于其它预测模式的方式对整个cu应用变换和量化过程。最后,可以为利用三角分区模式预测的cu创建运动场,例如,可以通过将运动信息存储在从cu分割得到的一组4
×
4单元中进行创建。运动场可以用于,例如,在后续的运动矢量预测过程中用于构建合并候选项列表。
[0173]
8.1单向预测候选列表的构建
[0174]
一些实施例中,可以基于一个编码块的一组空间相邻块和时间相邻块来构建用于对经过tpm处理的该编码块的两个三角预测单元进行预测的合并候选列表。这种合并候选列表可被称为tpm候选列表,其中具有本文中列出的tpm候选项。一个实施例中,合并候选列表是单向预测候选列表。单向预测候选列表包括五个单向预测候选运动矢量。例如,五个单
向预测候选运动矢量可从七个相邻块得出,其中包括五个空间相邻块(在图21中标号为1到5)和两个时间相邻块(在图21中标号为6到7)。
[0175]
一个实施例中,按照以下顺序收集该七个相邻块的运动矢量并将其放入单向预测候选列表中:首先,单向预测相邻块的运动矢量;然后,对于双向预测相邻块,l0运动矢量(即,双向预测mv的l0运动矢量部分)、l1运动矢量(即,双向预测mv的l1运动矢量部分),以及双向预测mv的l0和l1运动矢量的平均运动矢量。一个实施例中,如果候选项的数目小于五,则将零运动矢量添加到列表的末尾。一些其它实施例中,合并候选项列表可以包括少于5个或多于5个单向预测候选项或双向预测合并候选项项,这些候选项可从与图15b中所示的候选位置相同或不同的候选位置中选出。
[0176]
5.2查找表和表索引
[0177]
一个实施例中,用具有五个tpm候选项的tpm(或合并)候选列表的三角分区模式对cu进行编码。相应地,当每个三角形pu使用5个合并候选项项时,存在40种可能的方式来预测cu。换言之,可以有40种不同的分割方向和合并(或tpm)索引的组合:2(个可能的分割方向)
×
(5(个第一三角预测单元的可能的合并索引)
×
5(个第二三角预测单元的可能的合并索引)
‑
5(当第一和第二预测单元对共享相同合并索引时相同合并索引的可能的数目))。例如,当为两个三角预测单元确定一个相同合并索引时,可以使用常规合并模式而非三角预测模式来处理cu。
[0178]
因此,一个实施例中,基于查找表,值域为[0,39]的三角分区索引可以用于表示使用40个组合中的哪一个组合。图22为用于根据一个三角分割索引获得分割方向和合并索引的查找表(2200)的示例。如查找表(2200)所示,第一行(2201)包括范围从0到39的三角分区索引;第二行(2202)包括由0或1表示的可能分割方向;第三行(2203)包括对应于第一三角预测单元的可能的第一合并索引,其范围从0到4;第四行(2204)包括对应于第二三角预测单元可能的第二合并索引,其范围从0到4。
[0179]
例如,当在解码器处接收到值为1的三角分区索引时,基于查找表(2200)的列(2220),可以确定分割方向是由值1表示的分区方向,并且第一合并索引和第二合并索引分别是0和1。由于三角分区索引与查找表相关联,因此三角分区索引在本技术中也称为表索引。
[0180]
5.3沿三角分区边线的混合
[0181]
一个实施例中,在对每个三角预测单元使用相应的运动信息进行预测之后,对两个三角预测单元的两个预测信号执行混合过程以得出对角线或反对角线边线周围的样本。混合过程根据两个三角预测单元之间的运动矢量差在两组加权因子之间自适应地选择。一个实施例中,两个加权因子组如下:(1)第一加权因子组:用于样本的亮度分量的{7/8,6/8,4/8,2/8,1/8},及用于样本的色度分量的{7/8,4/8,1/8};以及(2)第二加权因子组:用于样本的亮度分量的{7/8,6/8,5/8,4/8,3/8,2/8,1/8},及用于样本的色度分量的{6/8,4/8,2/8}。第二加权因子组具有更多的亮度加权因子并沿着分区边线混合更多的亮度样本。
[0182]
一个实施例中,以下条件用于从两个加权因子组中选择一个。当两个三角分区的参考图像不同、或者当两个三角分区之间的运动矢量差大于阈值(例如,16个亮度样本)时,
可以选择第二加权因子组。否则,可以选择第一加权因子组。
[0183]
图23为使用第一个加权因子组的cu的示意图。如图所示,第一编码块(2301)包括亮度样本,而第二编码块(2302)包括色度样本。编码块(2301)或(2302)中沿着对角线边线的像素的集合分别用加权因子1/8、2/8、4/8、6/8和7/8对应的数字1、2、4、6和7来标记。例如,对于标记为2的像素,混合操作后的该像素的样本值可根据下式获得:混合后的样本值=2/8 x p1+6/8 x p2,其中,p1和p2表示相应像素处的样本值,但分别属于第一三角预测单元和第二三角预测单元的预测因子。
[0184]
6、组合的帧间和帧内预测(ciip)
[0185]
在vtm3中,当以合并模式对cu进行编码、且如果该cu含有至少64个亮度样本(即,cu的宽度乘以cu的高度等于或大于64),那么用信号表示一个附加标志以指示是否对当前cu使用组合的帧间/帧内预测(combined inter/intra prediction,ciip)模式。
[0186]
为了形成ciip预测,首先从两个附加语法元素得出帧内预测模式。可以使用至多四种可能的帧内预测模式:dc模式、平面模式、水平模式或垂直模式。然后,可以使用常规的帧内和帧间解码过程来得出帧间预测信号和帧内预测信号。最后,可以对帧间预测信号和帧内预测信号进行加权平均以获得ciip预测。
[0187]
6.1帧内预测模式的得出
[0188]
一个实施例中,可以使用至多4种帧内预测模式(包含dc模式、平面模式、水平模式和垂直模式)来预测ciip模式中的亮度分量。如果cu形状非常宽(即,宽度大于高度的两倍),则不允许水平模式。如果cu形状非常窄(即,高度大于宽度的两倍),则不允许垂直模式。在这些情况下,仅允许3种帧内预测模式。
[0189]
ciip模式使用3种最可能模式(most probable mode,mpm)用于帧内预测。ciip mpm候选列表按如下方式形成:(i)左侧相邻块和上方相邻块分别设置为a和b;(ii)块a和块b的帧内预测模式(分别由intramodea和intramodeb表示)以如下方式得出:a.设x为a或b,b.如果1)块x不可用;或2)块x的预测不使用ciip模式或帧内模式;或3)块x位于当前ctu之外,则将intramodex设置为dc,及c.否则,将intramodex设置为:1)dc或平面(如果块x的帧内预测模式是dc或平面);或者2)垂直(如果块x的帧内预测模式是“类似垂直的”角度模式(例如,大于34)),或者3)水平(如果块x的帧内预测模式是“类似水平的”角度模式(例如,小于或等于34));(iii)如果intramodea和intramodeb相同:a.如果intramodea是平面或dc,则三个mpm按顺序设置为{平面,dc,垂直};b.否则,三个mpm按顺序被设置为{intramodea,平面,dc};及(iv)否则(即intramodea和intramodeb不同):a.前两个mpm按顺序设置为{intramodea,intramodeb};且b.针对前两个mpm候选模式按顺序检查平面、dc和垂直的唯一性;一旦找到唯一模式,就将其添加为第三mpm。
[0190]
如上所述,如果cu形状非常宽或非常窄,则mpm标志被推断为1而无需信令。否则,用信号表示mpm标志以指示ciip帧内预测模式是否是ciip mpm候选模式之一。
[0191]
如果mpm标志是1,则进一步用信号表示mpm索引以指示在ciip帧内预测中使用哪一个mpm候选模式。否则,如果mpm标志为0,则在mpm候选列表中将帧内预测模式设置为“缺失”模式。例如,如果平面模式不在mpm候选列表中,则平面模式是缺失模式,并将帧内预测模式设置为平面模式。由于在ciip中允许4种可能的帧内预测模式,并且mpm候选列表仅包含3种帧内预测模式,所以4种可能模式之一可以是缺失模式。
[0192]
对于色度分量,应用dm模式而无需额外信令。例如,色度使用与亮度相同的预测模式。
[0193]
使用ciip编码的cu的帧内预测模式将被保存并用于后续相邻cu的帧内模式编解码。
[0194]
6.2帧间和帧内预测信号的合并
[0195]
可以使用与常规合并模式中相同的帧间预测过程来得出ciip模式中的帧间预测信号p
inter
;并且可以在常规帧内预测过程之后使用ciip帧内预测模式来得出帧内预测信号p
intra
。接着,可以使用加权平均来对帧内预测信号和帧间预测信号进行合并,其中,权重值取决于帧内预测模式,样本位于编码块中。
[0196]
例如,如果帧内预测模式是dc模式或平面模式,或者如果块宽度或高度小于4,则对帧内预测信号和帧间预测信号施加相等的权重。
[0197]
否则,基于帧内预测模式(在此情况下为水平模式或垂直模式)和块中的样本位置来确定权重。在水平预测模式中(垂直模式的权重以类似方式得出,但仅限正交方向上),w是块的宽度,h是块的高度。编码块首先被分割成四个面积相等的部分,每个部分的尺寸为(w/4)
×
h。从最接近帧内预测参考样本的部分开始并在最远离帧内预测参考样本的部分结束,将4个区域的每个区域的权重wt分别设置为6、5、3和2。最终的ciip预测信号可以使用以下公式得出:p
ciip
=((8
‑
wt)*p
inter
+wt*p
intra
+4)>>3
ꢀꢀꢀꢀꢀꢀꢀꢀ
(等式3)
[0198]
7、交织仿射预测
[0199]
一些实施例中,使用交织仿射预测。例如,如图24所示,尺寸为16
×
16样本的当前块(2410)被分割成具有两种不同分割样式的子块,样式0(2420)和样式1(2430)。关于样式0(2420),当前块(2410)被划分成大小相等的4
×
4的子块(2421)。相反,样式1(2430)相对于样式0(2420)向当前块(2410)的右下角移动2
×
2的偏移量。关于样式1(2430),当前块(2410)被划分成完整子块(2431)和部分子块(2432),每个完整子块的大小为4
×
4,每个部分子块的大小小于4
×
4。在图24中,部分子块(2432)组成阴影区域,围绕由完整子块(2431)形成的非阴影区域。
[0200]
随后,通过仿射运动补偿(affine motion compensation,amc)生成对应于两种划分样式(2420)和(2430)的两个辅助预测p0(2440)和p1(2450)。例如,可以根据基于子块的合并候选列表中的仿射合并候选项来确定仿射模型。可以基于仿射模型来得出从样式0(2420)和(2430)划分出的每个子块的mv。例如,mv可以各自从相应子块的中心位置开始。
[0201]
此后,通过合并两个预测p0(2440)和p1(2450)来计算最终的预测(2470)。例如,可以执行加权平均操作(2461)以根据下式逐像素地计算两个预测p0(2440)和p1(2450)中的
两个相应样本(由p0和p1表示)的加权平均:其中ω0和ω1是分别对应于两个预测p0(2240)和p1(2250)中的一对同位样本的权重。
[0202]
一个实施例中,加权平均操作(2461)中每个样本的权重可以根据图25所示的模式(2500)来确定。模式(2500)包括子块2510(例如,完整子块(2421)或(2431))中的16个样本。位于子块(2510)中心的预测样本与加权值3相关联,而位于子块(2510)边界的预测样本与加权值1相关联。根据样本在子块(2421)或(2431)内的位置,可以基于模式(2500)确定该样本对应的权重。
[0203]
一个实施例中,为了避免细微的块运动补偿,如图24所示,对于两种划分样式,交织预测仅应用于子块尺寸为4
×
4的区域。例如,在样式1的阴影区域(2430)中,不采用交织预测,而在模式1的非阴影区域(2430)中,采用交织预测。
[0204]
一个实施例中,交织预测可以应用于色度分量和亮度分量。此外,由于用于所有子块的amc的参考图像的区域作为整体被一起提取,因此存储器访问带宽不会因交织预测而增加。因此,不需要额外的读取操作。
[0205]
此外,为了灵活性,在条带头中用信号表示一个标志,指示是否使用交织预测。一个例子中,该标志总是用信号表示为1。在各种实施例中,交织仿射预测可以应用于单向预测仿射块,或应用于单向预测仿射块和双向预测仿射块两者。
[0206]
8.vvc中帧间预测相关的信令
[0207]
8.1帧间预测相关的语法元素
[0208]
表4示出了vvc中cu级的帧间预测相关的语法元素的示例。数组索引x0、y0指示当前编码块的左上亮度样本相对于图像的左上亮度样本的位置(x0,y0)。
[0209]
在表4中,cbwidth和cbheight分别表示当前编码块的亮度样本的宽度和高度。表4
–
帧间预测相关的语法元素
[0210]
8.2 cu级的帧间预测相关的语义
[0211]
表5示出了cu级的帧间预测相关的语义。具体地,根据表5,inter_pred_idc[x0][y0]指示是否将list0,list1或双向预测用于当前编码单元。表4中的数组索引x0,y0指示当前编码块的左上亮度样本相对于图像的左上亮度样本的位置(x0,y0)。表5
–
帧间预测相关的语义当inter_pred_idc[x0][y0]不存在,则推断它等于pred_l0。
[0212]
下面的表6给出语法元素inter_pred_idc的二值化。表6
–
inter_pred_idc的二值化
[0213]
在表4中,ref_idx_l0[x0][y0]指示用于当前编解码单元的列表0参考图像索引。数组索引x0、y0指示当前编码块的左上亮度样本相对于图像的左上亮度样本的位置(x0,y0)。当ref_idx_l0[x0][y0]不存在时,推断其等于0。一个实施例中,码流一致性可以要求当当前已解码图像是当前编码块的参考图像时,inter_pred_idc[x0][y0]等于0。
[0214]
9、小子块尺寸的仿射预测
[0215]
如上所述,可以对每个4
×
4的子块进行仿射帧间预测,且每个子块具有其自身的从cpmv得出的mv。当使用仿射帧间预测来预测一个块时,可以使用从cpmv得出的子块mv对子块应用常规帧间预测。通过使用减小的子块尺寸可以进一步提高编解码效率。本技术描述改变视频编解码器的仿射帧间预测过程的子块尺寸。
[0216]
一个实施例中,仿射帧间预测中的子块的大小被设置为4
×
4样本。然而,用于运动补偿的子块尺寸可以被设置为较小的矩形,其中子块的宽度大于子块的高度,例如4
×
2,如图26所示。在图26中,当前块(2600)被划分成十六个4
×
4子块,包括左上子块(2610)。可以
仿射块的存储器带宽的阈值可以设置为15
×
15样本的存储器带宽。
[0226]
一个示例中,当使用小子块仿射帧间预测时,将常规的8抽头插值滤波器用于水平方向,并将较短抽头的滤波器用于垂直方向。一个示例中,6抽头滤波器可以用于垂直方向。另一示例中,4抽头滤波器可以用于垂直方向。
[0227]
在本技术实施例中,标志(例如,small_subblock_affine_flag)可在高级别(例如,条带、图块、图块组、图像、序列)处用信号表示,以指示是否使用小子块仿射帧间预测。
[0228]
一个实施例中,可以用信号表示sps标志(例如,sps_small_subblock_affine_flag)。如果此标志为真,那么可以用信号表示图像级或图块组级标志(例如,picture_small_subblock_affine_flag),以指示用于仿射帧间预测的小子块尺寸是否可以用于当前已解码的图像或图块组。
[0229]
一个实施例中,可以在低于序列级的级别(例如,图像级、图块组级、图块级、块级等)用信号表示用于仿射帧间预测标志(例如,small_subblock_affine_flag)的小子块尺寸。在此情况下,仅在序列级别用信号表示的仿射预测启用标志为真时,才可以用信号表示用于仿射帧间预测标志的小子块尺寸。否则,当序列级的仿射预测启用标志用信号表示为假时,用于仿射帧间预测标志的小子块尺寸被推断为假。
[0230]
另一实施例中,用于仿射预测的小子块尺寸可以通过其它方法(例如通过预定义的默认设置)来启用,并且可以不用信号表示。
[0231]
图27为本技术一些实施例的小子块仿射预测方法(2700)的概述流程图。各实施例中,方法(2700)可由处理电路执行,例如终端设备(210)、(220)、(230)和(240)中的处理电路、执行视频解码器(310)的功能的处理电路、执行视频解码器(410)的功能的处理电路等。一些实施例中,方法(2700)由软件指令实现,因此当处理电路执行这些软件指令时,处理电路执行该方法(2700)。该方法开始于(s2701)并进行到(s2710)。
[0232]
在(s2710),对已编码视频码流中当前图像中的块的预测信息进行解码。预测信息指示帧间预测模式中的仿射模型。
[0233]
在(s2720),根据仿射模型确定该块的控制点的运动矢量。仿射模型包括由两个控制点的运动矢量描述的4参数模型,以及由三个控制点的运动矢量描述的6参数模型。可以使用仿射合并模式或仿射amvp模式来确定控制点的运动矢量。
[0234]
在(s2730),根据所确定的运动矢量来确定该块的子块的运动矢量。例如,该子块是该块的多个子块之一,并为多个子块中的每个子块确定运动矢量。子块的宽度和高度之一小于4(例如,4个亮度样本)。一个实施例中,为了得出从该块划分出的每个子块的运动矢量,每个子块的中心样本的运动矢量可以根据等式1和等式2来计算,并且舍入到1/16分数精度。子块的尺寸可以小于4
×
4样本。即,子块的宽度和高度之一小于4。例如,子块的大小可以是4
×
2样本。
[0235]
在(s2740),根据所确定的运动矢量,重建子块的至少一个样本。方法(2700)进行到并终止于(s2799)。
[0236]
上述技术可以使用计算机可读指令实现为计算机软件,并且以物理方式存储在一个或多个计算机可读介质中。例如,图28示出适于实现本技术一些实施例的计算机系统(2800)。
[0237]
上述计算机软件可利用任何合适的机器代码或计算机语言来编码,可采用汇编、
编译、链接或类似机制生成指令代码。这些指令代码可由一个或多个计算机中央处理单元(cpu)、图形处理单元(gpu)等直接执行或通过代码解释、微代码执行等操作来执行。
[0238]
这些指令可在多种类型的计算机或计算机组件中执行,包括,例如,个人计算机、平板电脑、服务器、智能电话、游戏设备、物联网设备等。
[0239]
图28所示的用于计算机系统(2800)的组件本质上是示例性的,而非旨在对实现本技术实施例的计算机软件的使用或功能范围做任何限制。也不应将组件的配置方式解释为对计算机系统(2800)的示例性实施例中的任一部件或其组合具有任何的依赖性或要求。
[0240]
计算机系统(2800)可以包括某些人机界面输入设备。这样的人机界面输入设备可以响应于一个或多个人类用户通过例如触觉输入(诸如键击、挥动、数据手套移动)、音频输入(诸如语音、拍击)、视觉输入(诸如姿势)、嗅觉输入(未示出)的输入。人机界面设备还可用于捕捉不必直接与人类有意识输入相关的某些介质,例如音频(诸如语音、音乐、环境声音)、图像(诸如扫描的图像、从静止图像相机获得的摄影图像)、视频(诸如二维视频,包括立体视频的三维视频)。
[0241]
人机界面输入设备可包括以下项中的一种或多种(每一种仅描绘一个):键盘(2801)、鼠标(2802)、触控板(2803)、触摸屏(2810)、数据手套(未示出)、操纵杆(2805)、麦克风(2806)、扫描仪(2807)、照相机(2808)。
[0242]
计算机系统(2800)还可以包括某些人机界面输出设备。这样的人机界面输出设备可以通过例如触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感觉。这种人机界面输出设备可以包括触觉输出设备(例如通过触摸屏(2810)、数据手套(未示出)或操纵杆(2805)的触觉反馈,但是也可以有不用作输入设备的触觉反馈设备)、音频输出设备(诸如扬声器(2809)、耳机(未示出))、可视输出设备以及打印机(未示出),其中可视输出设备诸如屏幕(2810)、虚拟现实眼镜(未示出)、全息显示器和烟雾箱(未示出),屏幕(2810)包括阴极射线管(crt)屏幕、液晶显示器(lcd)屏幕、等离子屏幕、有机发光二极管(oled)屏幕,每一种都具有或不具有触摸屏输入能力,每一种都具有或不具有触觉反馈能力,这些屏幕中的一些能够通过手段(诸如立体图像输出)输出二维可视输出或多于三维的输出。
[0243]
计算机系统(2800)还可以包括人类可访问的存储设备及其相关联的介质,诸如光学介质(包括具有cd/dvd的cd/dvdrom/rw(2820))或类似介质(2821)、拇指驱动器(2822)、可移动硬盘驱动器或固态驱动器(2823)、传统磁介质(诸如磁带和软盘(未示出))、基于专用rom/asic/pld的设备(诸如安全道尔芯片(未示出)),等等。
[0244]
本领域技术人员还应当理解,结合当前公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它瞬时信号。
[0245]
计算机系统(2800)还可以包括连接一个或多个通信网络的接口。网络可以是,例如,无线网络、有线网络、光网络。网络还可以是本地网、广域网、城域网、车联网的和工业网络、实时网络、延迟容忍网络等等。网络的实施例包括局域网(诸如以太网、无线lan)、蜂窝网络(包括全球移动通信系统(gsm)、第三代移动通信系统(3g)、第四代移动通信系统(4g)、第五代移动通信系统(5g)、长期演进(lte)等)、电视有线或无线广域数字网络(包括有线电视、卫星电视和地面广播电视)、车辆和工业网络(包括canbus),等等。某些网络通常需要外部网络接口适配器,该外部网络接口适配器连接到某些通用数据端口或外围总线(2849)(诸如计算机系统(2800)的通用串行总线(usb)端口);其他的通常通过如下所述连接到系
统总线而集成到计算机系统(2800)的内核中(例如,进入个人计算机系统的以太网接口或进入智能手机计算机系统的蜂窝网络接口)。通过使用这些网络中的任何一个,计算机系统(2800)可以与其它实体通信。这种通信可以是使用局域或广域数字网络的到其它计算机系统的单向的、仅接收的(例如广播tv)、单向仅发送的(例如到某些can总线设备的can总线)或双向的通信。可以在如上所述的那些网络和网络接口中的每一个上使用某些协议和协议栈。
[0246]
上述人机界面设备、人类可访问存储设备和网络接口可以连接到计算机系统(2800)的内核(2840)。
[0247]
内核(2840)可以包括一个或多个中央处理单元(cpu)(2841)、图形处理单元(gpu)(2842)、以现场可编程门阵列(fpga)(2843)形式存在的专用可编程处理单元、用于特定任务的硬件加速器(2844)等。这些设备,以及只读存储器(rom)(2845),随机存取存储器(2846),内部大容量存储器(如内部非用户可访问硬盘驱动器,ssd)(2847)等,可以通过系统总线(2848)相互连接。在一些计算机系统中,系统总线(2848)可以以一个或多个物理插头的形式访问,从而通过附加的cpu,gpu等实现扩展。外围设备可以直接,或者通过外围总线(2849),连接到内核的系统总线(2848)。外围总线的架构包括pci,usb等。
[0248]
cpu(2841)、gpu(2842)、fpga(2843)和加速器(2844)可以执行某些指令,这些指令组合起来可以构成前述的计算机代码。该计算机代码可以存储在rom(2845)或ram(2846)中。中间数据也可以存储在ram(2846)中,而永久数据可以存储在,例如,内部大容量存储器(2847)中。可以通过使用高速缓冲存储器来实现到任何存储器设备的快速存储和读取,高速缓存存储器可以与一个或多个cpu(2841)、gpu(2842)、大容量存储器(2847)、rom(2845)、ram(2846)等紧密关联。
[0249]
计算机可读介质上可以具有计算机代码,在计算机代码上执行各种计算机执行的操作。介质和计算机代码可以是为本技术的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。
[0250]
作为实施例而非限制,具有体系结构(2800)的计算机系统,特别是内核(2840),可以提供处理器(包括cpu、gpu、fpga、加速器等)执行在一个或多个有形的计算机可读介质中的软件而实现的功能。这样的计算机可读介质可以是与如上所述的用户可访问大容量存储器相关联的介质,以及非易失性的内核(2840)的某些存储,诸如内核内部大容量存储器(2847)或rom(2845)。实现本技术各实施例的软件可以存储在这样的设备中并由内核(2840)执行。根据特定需要,计算机可读介质可包括一个或多个存储器设备或芯片。该软件可以使内核(2840),特别是其中的处理器(包括cpu,gpu,fpga等),执行本文描述的特定过程或特定过程的特定部分,包括定义存储在ram(2846)中的数据结构,以及根据软件定义的过程修改这些数据结构。作为补充或作为替代,计算机系统可提供与电路(例如加速器2844)中的逻辑硬连线或其它组件相同的功能,可代替软件或与软件一起操作以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(ic)),包括执行逻辑的电路,或两者兼备。本技术包括硬件和软件的任何适当组合。附录a:缩略语amvp:advanced motion vector prediction高级运动向量预测
asic:application
‑
specific integrated circuit专用集成电路bms:benchmark set基准集合canbus:controller area network bus控制器区域网络总线cd:compact disc压缩盘cpus:central processing units中央处理单元crt:cathode ray tube阴极射线管ctbs:coding tree blocks编码树块ctus:coding tree units编码树单元cu:coding unit编码单元dvd:digital video disc数字视频盘fpga:field programmable gate array现场可编程门阵列gops:groups of pictures图像组gpus:graphics processing units图形处理单元gsm:global system for mobile communications全球移动通信系统hevc:high efficiency video coding高效视频编码hmvp:history
‑
based motion vector prediction基于历史的运动向量预测hrd:hypothetical reference decoder假想参考解码器ic:integrated circuit集成电路jem:joint exploration model联合勘探模型lan:local area network局域网lcd:liquid
‑
crystal display液晶显示器lte:long
‑
term evolution长期演进mmvd:merge with motion vector difference具有运动矢量差的合并模式mv:motion vector运动向量mvd:motion vector difference运动矢量差mvp:motion vector predictor运动矢量预测因子oled:organic light
‑
emitting diode有机发光二极管pbs:prediction blocks预测块pci:peripheral component interconnect外围设备组件互联pld:programmable logic device可编程逻辑设备pus:prediction units预测单元ram:random access memory随机存取存储器rom:read
‑
only memory只读存储器sei:supplementary enhancement information补充增强信息snr:signal noise ratio信噪比ssd:solid
‑
state drive固态硬盘sbtmvp:subblock
‑
based temporal motion vector prediction基于子块的时间运动矢量预测tus:transform units,变换单元
tmvp:temporal motion vector prediction时间运动矢量预测usb:universal serial bus通用串行总线vtm:versatile test model多功能测试模型vui:video usability information视频可用性信息vvc:versatile video coding多功能视频编码
[0251]
虽然本技术已对多个实施例性实施例进行了描述,但实施例的各种变更、置换和各种替代属于本技术的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确展示或描述,但其体现了本技术的原则,因此属于本技术的精神和范围之内。