联合运动矢量差编解码的制作方法

未命名 08-15 阅读:91 评论:0

联合运动矢量差编解码
引用并入
1.本技术基于并要求于2021年9月17日提交的美国临时申请第63/245,655号,该申请通过引用整体并入本文。本技术还基于并要求于2022年3月22日提交的美国非临时申请第17/700,745号的优先权,该申请通过引用整体并入本文。
技术领域
2.本公开涉及视频编码和/或解码技术,并且具体涉及编码和/或解码的联合运动矢量差的改进的设计和信令。


背景技术:

3.本文所提供的背景描述旨在整体呈现本技术的背景。在背景技术部分以及本说明书的各个方面中所描述的目前已署名的发明人的工作所进行的程度,并不表明其在本技术提交时作为现有技术,且从未明示或暗示其被承认为本技术的现有技术。
4.可以使用具有运动补偿的帧间图片预测来进行视频编码和解码。未压缩的数字视频可包括一系列图片,每个图片具有例如1920
×
1080亮度样本及相关的全采样或子采样色度样本的空间维度。所述系列图片具有固定的或可变的图片速率(或者称为帧率),例如每秒60个图片或每秒60帧。未压缩的视频具有特定的比特率要求。例如,具有像素分辨率为1920
×
1080,帧速率为60帧/秒,以及色度子采样为4:2:0,以每个像素每个颜色通道8比特的视频需要接近1.5gbit/s的带宽。一小时的此类视频需要超过600gb的存储空间。
5.视频编码和解码的一个目的,是通过压缩减少未压缩输入视频信号的冗余信息。视频压缩可以帮助降低对上述带宽和/或存储空间的要求,在某些情况下可降低两个或更多数量级。无损压缩和有损压缩,以及两者的组合均可采用。无损压缩是指经由解码过程,从压缩的原始信号中重建原始信号精确副本的技术。有损压缩是指原始视频信息在编码期间未被完全保留并且在解码期间不可完全恢复的编码/解码过程。当使用有损压缩时,重建信号可能与原始信号不同,但是原始信号与重建信号之间的失真小到足以使重建信号可用于预期应用,尽管一些信息损失。就视频而言,有损压缩广泛用于许多应用中。可容许失真量取决于应用。例如,某些消费视频流应用的用户可以容许比电影或电视广播应用的用户更高的失真。可以选择或调整通过特定编码算法可实现的压缩比以反映各种失真容限:较高的可容许失真通常允许产生较高损失和较高压缩比的编码算法。
6.视频编码器和解码器可以利用来自若干广泛类别和步骤的技术,包括例如运动补偿、傅立叶变换、量化以及熵编码。
7.视频编解码器技术可包括已知的帧内编码技术。在帧内编码中,在不参考先前重建的参考图片的样本或其它数据的情况下表示样本值。在一些视频编解码器中,图片在空间上被细分为样本块。当所有的样本块都以帧内模式编码时,该图片可以被称为帧内图片。帧内图片及其衍生(例如独立解码器刷新图片)可用于复位解码器状态,并且因此可用作编码视频比特流和视频会话中的第一图片,或用作静止图像。然后,可以将帧内预测后的块的
样本变换到频域,并且可以在熵编码之前对如此生成的变换系数进行量化。帧内预测表示使预变换域中的样本值最小化的技术。在一些情况下,变换后的dc值越小,并且ac系数越小,则在给定的量化步长尺寸下需要越少的比特来表示熵编码之后的块。
8.如同从诸如mpeg-2代编码技术中所获知的,传统帧内编码不使用帧内预测。然而,一些较新的视频压缩技术包括:尝试基于例如周围样本数据和/或元数据对块进行编码/解码,该周围样本数据和/或元数据是在空间相邻的编码和/或解码期间获得的,并且在解码顺序上先于正在帧内编码或解码的数据块。此类技术此后被称为“帧内预测”技术。注意,在至少一些情况下,帧内预测仅使用来自重建中的当前图片的参考数据,而不使用来自其它参考图片的参考数据。
9.可以有许多不同形式的帧内预测。当在给定视频编码技术中可获得多于一种此类技术时,所使用的技术可以被称为帧内预测模式。可以在特定编解码器中提供一个或多个帧内预测模式。在某些情况下,模式可以具有子模式和/或可以与各种参数相关联,并且用于视频块的模式/子模式信息和帧内编码参数可以包含在模式码字中,可以单独或共同编码。对于给定模式、子模式和/或参数组合,使用哪个码字可以通过帧内预测对编码效率增益产生影响,并且用于将码字转换为码流的熵编码技术也同样如此。
10.帧内预测的某种模式与h.264一起被引入,在h.265中被修正,并且在诸如联合探测模式(jem)、通用视频编码(vvc)和基准集(bms)的较新的编码技术中被进一步修正。通常,对于帧内预测,可以使用已变得可用的相邻样本值来形成预测器块。例如,可以将沿着特定方向和/或行的特定相邻样本集的可用值,复制到预测器块中。对使用方向的参考可以在码流中编码,或者本身可以被预测。
11.参考图1a,在右下方描绘的是在h.265的33个可能的帧内预测器方向(对应于在h.265中指定的35个帧内模式的33个角度模式)中指定的9个预测器方向的子集。箭头会聚的点(101)表示正在被预测的样本。箭头表示使用相邻样本预测101处的样本所根据的方向。例如,箭头(102)指示根据与水平方向成45度角的右上方的一个或多个相邻样本,预测样本(101)。类似地,箭头(103)指示根据与水平方向成22.5度角的样本(101)左下方的一个或多个相邻样本,预测样本(101)。
12.仍然参考图1a,在左上方示出了一个包括4
×
4个样本的正方形块(104)(由粗虚线表示)。正方形块(104)由16个样本组成,每个样本用“s”、以及其在y维度(例如,行索引)上的位置和在x维度(例如,列索引)上的位置来标记。例如,样本s21是y维度上的第二个样本(从顶部开始)和x维度上的第一个(从左侧开始)样本。类似地,样本s44在y维度和x维度上都是块(104)中的第四个样本。由于该块为4
×
4尺寸的样本,因此s44位于右下角。还示出了遵循类似编号方案的示例参考样本。参考样本用"r"、以及其相对于块(104)的y位置(例如,行索引)和x位置(例如,列索引)来标记。在h.264和h.265中,使用与重建中的块邻近地相邻预测样本。
13.块104的图片内预测可以通过根据用信号通知的预测方向,从相邻样本复制参考样本值来开始。例如,假设已编码视频码流包括信令,对于该块104,该信令指示箭头(102)的预测方向——也就是说,根据与水平方向成45度角的右上方的一个或多个预测样本来预测样本。在此类情况下,根据相同的参考样本r05来预测样本s41、s32、s23和s14。然后根据参考样本r08预测样本s44。
14.在某些情况下,例如通过插值,可以合并多个参考样本的值,以便计算参考样本,尤其是当方向不能被45度整除时。
15.随着视频编码技术不断发展,可能方向的数量增加。例如,在h.264(2003年)中,9个不同的方向可用于帧内预测。这在h.265(2013年)中增加到33个,并且jem/vvc/bms在本公开时可以支持多达65个方向。已经进行了实验研究来帮助识别最适合的帧内预测方向,并且可以使用熵编码中的某些技术来以少量比特对那些最适合的方向进行编码,接受用于方向的某些比特代价。此外,方向本身有时可以根据用于已经解码的相邻块的帧内预测的相邻方向来进行预测。
16.图1b示出了根据jem描绘65个帧内预测方向的示意图(180),以说明随着时间的推移各种编码技术中预测方向的数量增加。
17.用于将表示帧内预测方向的比特映射到已编码视频码流中的预测方向的方式可以随不同的视频编码技术而变化;并且可以例如从预测方向到帧内预测模式、到码字、到涉及最可能模式的复杂自适应方案和类似技术的简单直接映射。然而,在所有情况下,在视频内容中可能存在比某些其它方向在统计上更不可能出现的用于帧内预测的某些方向。由于视频压缩的目标是减少冗余,在精心设计的视频编码技术中,那些更不可能的方向将可以由比更可能的方向更大的比特数来表示。
18.图片间预测或帧间预测可以基于运动补偿。在运动补偿中,来自先前重建的图片或其部分(参考图片)的样本数据在由运动矢量(以下为mv)指示的方向上空间移位之后可以用于新重建的图片或图片部分(例如,块)的预测。在一些情况下,参考图片可以与当前重建中的图片相同。mv可以具有二维x和y,或三维,其中第三维是使用中的参考图片的指示(近似时间维)。
19.在一些视频压缩技术中,可应用于样本数据的某一区域的当前mv可以从其它mv中预测,例如从与空间上邻近重建中区域的样本数据的其它区域相关的并且在解码顺序上先于当前mv的那些其它mv中预测。这样做可以通过依赖于去除相关mv中的冗余来显著减少编码mv所需的总数据量,从而增加压缩效率。mv预测可以有效地执行,例如,因为当对从照相机导出的输入视频信号(称为自然视频)进行编码时,存在比单个mv适用的区域大的区域在视频序列中沿类似方向移动的统计可能性。因此,在一些情况下可以使用从相邻区域的mv导出的类似运动矢量来预测。这导致给定区域的实际mv与从周围mv预测的mv类似或相同。在熵编码之后,此类mv又可以用比如果直接编码mv而不是从一个或多个相邻mv预测所使用的比特数更少的比特数来表示。在一些情况下,mv预测可以是从原始信号(即:样本流)导出的信号(即:mv)的无损压缩的示例。在其它情况下,mv预测本身可能是有损的,例如由于当从若干周围mv计算预测值时的舍入误差。
20.h.265/hevc(itu-t h.265建议书,“高效视频编解码(high efficiency video coding)”,2016年12月)中描述了各种mv预测机制。在h.265指定的多种mv预测机制中,本技术描述的是下文称作“空间合并”的技术。
21.请参考图2,当前块(201)包括在运动搜索过程期间已由编码器发现的样本,根据已产生空间偏移的相同尺寸的先前块,可预测所述样本。另外,可从一个或多个参考图片相关联的元数据中导出所述mv,而非对mv直接编码。例如,使用关联于a0、a1和b0、b1、b2(分别对应202到206)五个周围样本中的任一样本的mv,(按解码次序)从最近的参考图片的元数
据中导出所述mv。在h.265中,mv预测可使用相邻块也使用的相同参考图片的预测值。


技术实现要素:

22.本公开描述视频编码和/或解码的方法、装置和计算机可读存储介质的各种实施例。
23.根据一个方面,本公开的实施例提供一种对帧间预测视频块进行解码的方法。该方法包括由设备接收已编码视频码流,所述设备包括存储指令的存储器和与所述存储器通信的处理器。该方法还包括由所述设备从所述已编码视频码流中提取当前帧中的当前块的帧间预测模式和联合增量运动矢量(mv);由所述设备从所述已编码视频码流中提取标志,所述标志指示参考列表0中的第一参考帧的第一增量mv和参考列表1中的第二参考帧的第二增量mv是否被联合发信号通知;响应于所述标志指示所述第一增量mv和所述第二增量mv被联合发信号通知,由所述设备基于所述联合增量mv导出所述第一增量mv和所述第二增量mv;以及由所述设备基于所述第一增量mv和所述第二增量mv,对所述当前帧中的所述当前块进行解码。
24.根据另一方面,本公开的实施例提供一种视频编码和/或解码的装置。该装置包括存储指令的存储器;以及与该存储器通信的处理器。当处理器执行指令时,该处理器被配置为使该装置执行用于视频解码和/或编码的以上方法。
25.本公开的各方面还提供了一种视频编码或解码设备或装置,包括被配置为执行上述任何方法实现的电路。
26.在另一方面中,本公开的实施例提供存储指令的非易失性计算机可读介质,这些指令在由计算机执行以用于视频解码和/或编码时使计算机执行以上用于视频解码和/或编码的方法。
27.在附图、说明书和权利要求中更详细地描述了以上方面和其它方面及其实施方案。
附图说明
28.从以下详细描述和附图中,所公开的主题的其它特征、性质以及各种优点将更加明显。
29.图1a示出了帧内预测方向模式的示例性子集的示意图。
30.图1b示出了示例性帧内预测方向的图示。
31.图2示出了在一个示例中当前块及其周围用于运动矢量预测的空间合并候选的示意图。
32.图3示出了根据示例实施例的通信系统(300)的简化框图的示意图。
33.图4示出了根据示例实施例的通信系统(400)的简化框图的示意图。
34.图5示出了根据示例实施例的视频解码器的简化框图的示意图。
35.图6示出了根据示例实施例的视频编码器的简化框图的示意图。
36.图7示出了根据另一示例实施例的视频编码器的框图。
37.图8示出了根据另一示例实施例的视频解码器的框图。
38.图9示出了根据本公开的示例实施例的编码块分区的一方案。
39.图10示出了根据本公开的示例实施例的编码块分区的另一方案。
40.图11示出了根据本公开的示例实施例的编码块分区的另一方案。
41.图12示出了根据示例分区方案将基本块划分为编码块的示例。
42.图13示出了示例三元分区方案。
43.图14示出了示例四叉树二叉树编码块分区方案。
44.图15示出了根据本公开的示例实施例的用于将编码块分区成多个变换块以及变换块的编码顺序的方案。
45.图16示出了根据本公开的示例实施例的用于将编码块分区成多个变换块以及变换块的编码顺序的另一方案。
46.图17示出了根据本公开的示例实施例的用于将编码块分区成多个变换块的另一方案。
47.图18示出了根据本公开的示例实施例的方法的流程图。
48.图19示出了根据本公开的示例实施例的计算机系统的示意图。
具体实施方式
49.现在将在下文中参考附图详细描述本发明,附图形成本发明的一部分,并且该附图通过图示的方式示出了实施例的具体示例。然而,请注意,本发明可以以各种不同的形式来体现,并且因此,所覆盖的或要求保护的主题旨在被解释为不限于以下将阐述的任何实施例。还请注意,本发明可以体现为方法、设备、部件或系统。因此,本发明的实施例可以例如采取硬件、软件、固件或其任何组合的形式。
50.在整个说明书和权利要求中,术语可以具有超出明确陈述的含义的上下文中所建议或暗示的微妙含义。如本文所使用的短语“在一个实施例中”或“在一些实施例中”不一定指相同实施例,并且如本文所使用的短语“在另一实施例中”或“在其它实施例中”不一定指不同实施例。同样,如本文所使用的短语“在一个实施方案中”或“在一些实施方案中”不一定指相同实施方案,并且如本文所使用的短语“在另一实施方案中”或“在其它实施方案中”不一定指不同实施方案。例如,所要求保护的主题旨在包括示例性实施例/实施方案的全部或部分的组合。
51.一般而言,术语可以至少部分地根据上下文中的使用来理解。例如,如本文所使用的术语诸如“和”、“或”、或者“和/或”可以包括多种含义,其可以至少部分取决于使用此类术语的上下文。通常,“或”如果用于关联列表,诸如a、b或c,则旨在意指a、b和c,在此以包括性意义使用,以及a、b或c,在此以排他性意义使用。此外,本文所使用的术语“一个或多个”或“至少一个”,至少部分地取决于上下文,可以用于以单数意义描述任何特征、结构或特性,或可以用于以复数意义描述特征、结构或特性的组合。类似地,术语,诸如“一个(a)”、“一种(an)”或“该”,同样可以被理解为表达单数用法或表达复数用法,这至少部分地取决于上下文。此外,术语“基于”或“由
……
确定”可以被理解为不一定旨在表达因素的排他集,而是可以允许存在不一定再次明确描述的附加因素,这至少部分地取决于上下文。
52.图3是根据本技术公开的实施例的通信系统(300)的简化框图。通信系统(300)包括多个终端装置,所述终端装置可通过例如网络(350)彼此通信。举例来说,通信系统(300)包括通过网络(350)互连的第一对终端装置(310)和(320)。在图3的实施例中,第一对终端
装置(310)和(320)执行单向数据传输。举例来说,终端装置(310)可对视频数据(例如由终端装置(310)采集的视频图片流)进行编码以通过网络(350)传输到另一个终端装置(320)。已编码的视频数据以一个或多个已编码视频码流形式传输。终端装置(320)可从网络(350)接收已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。单向数据传输在媒体服务等应用中是较常见的。
53.在另一实施例中,通信系统(300)包括执行已编码视频数据的双向传输的第二对终端装置(330)和(340),所述双向传输可例如在视频会议期间实施。对于双向数据传输,终端装置(330)和终端装置(340)中的每个终端装置可对视频数据(例如由终端装置采集的视频图片流)进行编码,以通过网络(350)传输到终端装置(330)和终端装置(340)中的另一终端装置。终端装置(330)和终端装置(340)中的每个终端装置还可接收由终端装置(330)和终端装置(340)中的另一终端装置传输的已编码视频数据,且可对所述已编码视频数据进行解码以恢复视频数据,且可根据恢复的视频数据在可访问的显示装置上显示视频图片。
54.在图3的实施例中,终端装置(310)、终端装置(320)、终端装置(330)和终端装置(340)可为服务器、个人计算机和智能电话,但本技术公开的基本原理的适用范围不限于此。本技术公开的实施例适用于桌上型计算机、膝上型计算机、平板电脑、媒体播放器、可穿戴计算机、专用视频会议设备等。网络(350)表示在终端装置(310)、终端装置(320)、终端装置(330)和终端装置(340)之间传送已编码视频数据的任何数目或类型的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(350)可在电路交换、分组交换和/或其他类型信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本技术的目的,除非在本文中有明确解释,否则网络(350)的架构和拓扑对于本技术公开的操作来说可能是无关紧要的。
55.作为实施例,图4示出视频编码器和视频解码器在视频流式传输环境中的放置方式。本技术所公开主题可同等地适用于其它视频的应用,包括例如视频会议、数字tv广播、游戏、虚拟现实、在包括cd、dvd、存储棒等的数字介质上的压缩视频存储等等。
56.视频流式传输系统可包括采集子系统(413),所述采集子系统可包括例如数码相机等视频源(401),以创建例如未压缩的视频图片或图像流(402)。在实施例中,视频图片流(402)包括由视频源401的数码相机记录的样本。相较于已编码的视频数据(404)(或已编码的视频码流),未压缩的视频图片流(402)被描绘为粗线以强调高数据量的视频图片流,视频图片流(402)可由电子装置(420)处理,所述电子装置(420)包括耦接到视频源(401)的视频编码器(403)。视频编码器(403)可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于未压缩的视频图片流(402),已编码的视频数据(404)(或已编码的视频码流(404))被描绘为细线以强调较低数据量的已编码的视频数据(404)(或已编码的视频码流(404)),其可存储在流式传输服务器(405)上,以供将来使用或者直接用于下游视频设备(未示出)。一个或多个流式传输客户端子系统,例如图4中的客户端子系统(406)和客户端子系统(408),可访问流式传输服务器(405)以检索已编码的视频数据(404)的副本(407)和副本(409)。客户端子系统(406)可包括例如电子装置(430)中的视频解码器(410)。视频解码器(410)对已编码的视频数据的传入副本(407)进行解码,且产生可在显示器(412)(例如显示屏)或另一呈现装置(未描绘)上呈现的未压缩的输出视频图片流(411)。视频解码器410可配置为执行本公开中所述的各种功能的部分或全部功能。在
一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频数据(404)、视频数据(407)和视频数据(409)(例如视频码流)进行编码。该些标准的实施例包括itu-t h.265。在实施例中,正在开发的视频编码标准非正式地称为下一代视频编码(versatile video coding,vvc),本技术可用于vvc标准和其他视频编码标准的上下文中。
57.应注意,电子装置(420)和电子装置(430)可包括其它组件(未示出)。举例来说,电子装置(420)可包括视频解码器(未示出),且电子装置(430)还可包括视频编码器(未示出)。
58.图5是根据本技术下面公开的实施例的视频解码器(510)的框图。视频解码器(510)可设置在电子装置(530)中。电子装置(530)可包括接收器(531)(例如接收电路)。视频解码器(510)可用于代替图4实施例中的视频解码器(410)。
59.接收器(531)可接收将由视频解码器(510)解码的一个或多个已编码视频序列;在同一实施例或另一实施例中,一次解码一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列。每个视频序列可以与多个视频帧或图像相关联。可从信道(501)接收已编码视频序列,所述信道可以是通向存储已编码的视频数据的存储装置或者传输已编码视频数据的流式源的硬件/软件链路。接收器(531)可接收已编码的视频数据以及其它数据,例如,可转发到它们各自的处理电路(未标示)的已编码音频数据和/或辅助数据流。接收器(531)可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器(515)可配置在接收器(531)与熵解码器/解析器(520)(此后称为“解析器(520)”)之间。在某些应用中,缓冲存储器(515)可以实施为视频解码器(510)的一部分。在其它应用中,所述缓冲存储器(515)可设置在视频解码器(510)外部并与视频解码器(510)分离(未标示)。而在其它应用中,视频解码器(510)的外部设置缓冲存储器(未标示),以例如防止网络抖动,在视频解码器(510)的内部可以存在另一缓冲存储器(515)以例如处理播出定时。而当接收器(531)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,也可能不需要配置缓冲存储器(515),或可以将所述缓冲存储器做得较小。当然,为了在互联网等业务分组网络上使用,可能需要足够尺寸的缓冲存储器(515),所述缓冲存储器可相对较大。这种缓冲存储器可具有自适应性大小,且可至少部分地实施于操作系统或视频解码器(510)外部的类似元件(未标示)中。
60.视频解码器(510)可包括解析器(520)以根据已编码视频序列重建符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息,以及用以控制显示装置(512)(例如,显示屏)等显示装置的潜在信息,所述显示装置可能是或可能不是电子装置(530)的组成部分,但可耦接到电子装置(530),如图5中所示。用于显示装置的控制信息可以是辅助增强信息(supplemental enhancement information,sei消息)或视频可用性信息(video usability information,vui)的参数集片段(未标示)。解析器(520)可对由解析器(520)接收到的已编码视频序列进行解析/熵解码。已编码视频序列的熵编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼编码(huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器(520)可基于对应于子群的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(group of pictures,gop)、图片、图块、切片、宏块、编码单元(coding unit,cu)、块、变换单元(transform unit,tu)、预测单元(prediction unit,pu)等等。解析
器(520)还可从已编码视频序列提取信息,例如变换系数(例如变换系数)、量化器参数值、运动矢量等等。
61.解析器(520)可对从缓冲存储器(515)接收的视频序列执行熵解码/解析操作,从而创建符号(521)。
62.取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号(521)的重建可涉及多个不同处理或功能单元。涉及哪些单元以及涉及方式可由解析器(520)从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描述解析器(520)与下文的多个处理或功能单元之间的此类子群控制信息流。
63.除已经提及的功能块以外,视频解码器(510)可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多功能单元彼此紧密交互并且可以彼此集成。然而,出于清楚描述所公开主题多种功能的目的,在下面的公开中采用了对功能单元的概念细分。
64.第一单元可以包括缩放器/逆变换单元(551)。缩放器/逆变换单元(551)从解析器(520)接收作为符号(521)的量化变换系数以及控制信息,包括指示使用哪种类型的反变换、块大小、量化因子/参数、量化缩放矩阵等信息。缩放器/逆变换单元(551)可输出包括样本值的块,所述样本值可输入到聚合器(555)中。
65.在一些情况下,缩放器/逆变换单元(551)的输出样本可属于帧内编码块;例如不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元(552)提供。在一些情况下,帧内图片预测单元(552)采用存储在当前图片缓冲器(558)中的已重建周围块信息生成大小和形状与正在重建的块相同的周围块。举例来说,当前图片缓冲器(558)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些实施中,聚合器(555)基于每个样本,将帧内图片预测单元(552)生成的预测信息添加到由缩放器/逆变换单元(551)提供的输出样本信息中。
66.在其它情况下,缩放器/逆变换单元(551)的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元(553)可访问参考图片存储器(557)以提取用于帧间图片预测的样本。在根据符号(521)对提取的样本进行运动补偿之后,这些样本可由聚合器(555)添加到缩放器/逆变换单元(551)的输出(单元551的输出被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(553)从参考图片存储器(557)内的地址获取预测样本可受到运动矢量控制,且所述运动矢量以所述符号(521)的形式而供运动补偿预测单元(553)使用,所述符号(521)例如是包括x、y分量(位移)和参考图片分量(时间)。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器(557)提取的样本值的插值,运动补偿也可以与运动矢量预测机制相关联等等。
67.聚合器(555)的输出样本可在环路滤波器单元(554)中被各种环路滤波技术采用。视频压缩技术可包括环路内滤波器技术,所述环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频码流)中的参数,且所述参数作为来自解析器(520)的符号(521)可用于环路滤波器单元(556)。然而,在其他实施例中,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。一些类型的环路滤波器可按各种顺序被包括作为环路滤波器
单元556的一部分,如下文将进一步详细描述的。
68.环路滤波器单元(556)的输出可以是样本流,所述样本流可输出到显示装置(512)以及存储在参考图片存储器(557),以用于后续的帧间图片预测。
69.一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。举例来说,一旦对应于当前图片的已编码图片被完全重建,且已编码图片(通过例如解析器(520))被识别为参考图片,则当前图片缓冲器(558)可变为参考图片存储器(557)的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。
70.视频解码器(510)可根据例如itu-t h.265标准中采用的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体地说,配置文件可从视频压缩技术或标准中可用的所有工具中选择某些工具作为在所述配置文件下可供使用的仅有工具。对于合规性,已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(hypothetical reference decoder,hrd)规范和在已编码视频序列中用信号表示的hrd缓冲器管理的元数据来进一步限定。
71.在一个实施例中,接收器(531)可连同已编码视频一起接收附加(冗余)数据。所述附加数据可以是已编码视频序列的一部分。所述附加数据可由视频解码器(510)用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,snr)增强层、冗余切片、冗余图片、前向纠错码等形式。
72.图6是根据本技术公开的实施例的视频编码器(603)的框图。视频编码器(603)设置于电子装置(620)中。电子装置(620)包括传输器(640)(例如传输电路)。视频编码器(603)可用于代替图4实施例中的视频编码器(403)。
73.视频编码器(603)可从视频源(601)(并非图6实施例中的电子装置(620)的一部分)接收视频样本,所述视频源可采集将由视频编码器(603)编码的视频图像。在另一实施例中,视频源(601)可以实施为电子装置(620)的一部分。
74.视频源(601)可提供将由视频编码器(603)编码的呈数字视频样本流形式的源视频序列,所述数字视频样本流可具有任何合适位深度(例如:8位、10位、12位
……
)、任何色彩空间(例如bt.601y crcb、rgb、xyz
……
)和任何合适取样结构(例如y crcb 4:2:0、y crcb 4:4:4)。在媒体服务系统中,视频源(601)可以是能够存储先前已准备的视频的存储装置。在视频会议系统中,视频源(601)可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片或图像,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于正在使用的取样结构、色彩空间等,每个像素可包括一个或多个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。
75.根据实施例,视频编码器(603)可实时或在由应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列(643)。施行适当的编码速度是控制器(650)的一个功能。在一些实施例中,控制器(650)控制如下文所描述的其它功能单元且在
功能上耦接到这些单元。为了简洁起见,图中未标示耦接。由控制器(650)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group of pictures,gop)布局,允许的最大运动矢量搜索范围等。控制器(650)可用于具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(503)。
76.在一些实施例中,视频编码器(603)在编码环路中进行操作。作为简单的描述,在实施例中,编码环路可包括源编码器(630)(例如,负责基于待编码的输入图片和参考图片创建符号,例如符号流)和嵌入于视频编码器(603)中的(本地)解码器(633)。解码器(633)以类似于(远程)解码器创建样本数据的方式重建符号以创建样本数据,即使嵌入的解码器633在不进行熵编码的情况下通过源编码器630处理已编码视频流(因为在本技术所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(634)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(634)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)用于改进编码质量。
[0077]“本地”解码器(633)的操作可与例如已在上文结合图5详细描述视频解码器(510)的“远程”解码器相同。然而,另外简要参考图5,当符号可用且熵编码器(645)和解析器(520)能够无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器(515)和解析器(520)在内的视频解码器(510)的熵解码部分,可能无法完全在编码器的本地解码器(633)中实施。
[0078]
此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于此原因,本技术有时侧重于解码器操作,该解码器操作与编码器的解码部分有关。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。下面仅在某些区域或方面对编码器进行更详细的描述。
[0079]
在操作期间,在一些实施例中,源编码器(630)可执行运动补偿预测编码。参考来自视频序列中被指定为“参考图片”的一个或多个先前已编码图片,所述运动补偿预测编码对输入图片进行预测性编码。以此方式,编码引擎(632)对输入图片的颜色通道中像素块与参考图片的像素块之间的差异(残差)进行编码,所述参考图片可被选作所述输入图片的预测参考。“残差”一词及其形容词形式“残差的”可以互换使用。
[0080]
本地视频解码器(633)可基于源编码器(630)创建的符号,对可指定为参考图片的图片的已编码视频数据进行解码。编码引擎(632)的操作可为有损过程。当已编码视频数据可在视频解码器(图6中未示)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(633)复制解码过程,所述解码过程可由视频解码器对参考图片执行,且可使重建的参考图片存储在参考图片高速缓存(634)中。以此方式,视频编码器(603)可在本地存储重建的参考图片的副本,所述副本与将由远端(远程)视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。
[0081]
预测器(635)可针对编码引擎(632)执行预测搜索。即,对于将要编码的新图片,预测器(635)可在参考图片存储器(634)中搜索可作为所述新图片的适当预测参考的样本数
据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(635)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器(635)获得的搜索结果,可确定输入图片可具有从参考图片存储器(634)中存储的多个参考图片取得的预测参考。
[0082]
控制器(650)可管理源编码器(630)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
[0083]
可在熵编码器(645)中对所有上述功能单元的输出进行熵编码。熵编码器(645)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。
[0084]
传输器(640)可缓冲由熵编码器(645)创建的已编码视频序列,从而为通过通信信道(660)进行传输做准备,所述通信信道可以是通向将存储已编码的视频数据的存储装置的硬件/软件链路。传输器(640)可将来自视频编码器(603)的已编码视频数据与要传输的其它数据合并,所述其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。
[0085]
控制器(650)可管理视频编码器(603)的操作。在编码期间,控制器(650)可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种图片类型:
[0086]
帧内图片(i图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(independent decoder refresh,“idr”)图片。所属领域的技术人员了解i图片的变体及其相应的应用和特征。
[0087]
预测性图片(p图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
[0088]
双向预测性图片(b图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。
[0089]
源图片通常可在空间上细分成多个样本块(例如,4
×
4、8
×
8、4
×
8或16
×
16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定所述其它块。举例来说,i图片的块可进行非预测编码,或所述块可参考同一图片的已经编码的块来进行预测编码(空间预测或帧内预测)。p图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。b图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。为了其他目的,源图片或中间处理的图片可以被细分为其他类型的块。编码块和其他类型的块的划分可以遵循或可以不遵循相同的方式,如下文进一步详细描述的。
[0090]
视频编码器(603)可根据例如itu-t h.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(603)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。
[0091]
在实施例中,传输器(640)可在传输已编码的视频时传输附加数据。源编码器(630)可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/snr增强
层、冗余图片和切片等其它形式的冗余数据、sei消息、vui参数集片段等。
[0092]
采集到的视频可作为呈时间序列的多个源图片(视频图片)。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在实施例中,将正在编码/解码的特定图片分割成块,正在编码/解码的特定图片被称作当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称作运动矢量的矢量对当前图片中的块进行编码。所述运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,所述运动矢量可具有识别参考图片的第三维度。
[0093]
在一些实施例中,双向预测技术可用于帧间图片预测。根据双向预测技术,使用两个参考图片,例如按解码次序都在视频中的当前图片之前(但按显示次序可能分别是过去或将来)第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。具体来说,可通过第一参考块和第二参考块的组合来共同预测所述块。
[0094]
此外,合并模式技术可用于帧间图片预测中以改善编码效率。
[0095]
根据本技术公开的一些实施例,帧间图片预测和帧内图片预测等预测的执行以块为单位。举例来说,将视频图片序列中的图片分割成编码树单元(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。一个或多个32
×
32块中的每个可以进一步划分成4个16
×
16像素的cu。在一个实施例中,可以在编码期间分析每个cu以在各种预测类型中确定用于cu的预测类型,各种预测类型例如为帧间预测类型或帧内预测类型。此外,取决于时间和/或空间可预测性,将cu拆分为一个或多个预测单元(prediction unit,pu)。通常,每个pu包括亮度预测块(prediction block,pb)和两个色度pb。在实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。可以以各种空间模式执行将cu分割为pu(或不同颜色通道的pb)。例如,亮度或色度pb可包括样本的值矩阵(例如,亮度值),例如8x 8像素、16x 16像素、8x 16像素和16x 8样本等。
[0096]
图7是根据本技术公开的另一示意性实施例的视频编码器(703)的图。视频编码器(703)用于接收视频图片序列中的当前视频图片内的样本值的处理块(例如预测块),且将所述处理块编码到作为已编码视频序列的一部分的已编码图片中。在本实施例中,视频编码器(703)用于代替图4实施例中的视频编码器(303)。
[0097]
在一个实施例中,视频编码器(703)接收用于处理块的样本值的矩阵,所述处理块为例如8
×
8样本的预测块等。然后,视频编码器(703)使用例如率失真优化(rate-distortion optimization,rdo)来确定是否使用帧内模式、帧间模式或双向预测模式来编码所述处理块。当确定在帧内模式中编码处理块时,视频编码器(703)可使用帧内预测技术以将处理块编码到已编码图片中;且当确定在帧间模式或双向预测模式中编码处理块时,视频编码器(703)可分别使用帧间预测或双向预测技术将处理块编码到已编码图片中。在一些示意性实施例中,合并模式可以是帧间图片预测的一个子模式,其中,在不借助预测值外部的已编码运动矢量分量的情况下,从一个或多个运动矢量预测值导出运动矢量。在某
些其它示意性实施例中,可存在适用于主题块的运动矢量分量。因此,视频编码器(703)包括为在图7中明确示出的组件,例如用于确定处理块的预测模式的模式决策模块(未示出)。
[0098]
在图7的实施例中,视频编码器(703)包括如图7中示例性布置所示的耦接到一起的帧间编码器(730)、帧内编码器(722)、残差计算器(723)、开关(726)、残差编码器(724)、通用控制器(721)和熵编码器(725)。
[0099]
帧间编码器(730)用于接收当前块(例如处理块)的样本、比较所述块与参考图片中的一个或多个参考块(例如按照显示顺序,先前图片和后来图片中的块)、生成帧间预测信息(例如根据帧间编码技术的冗余信息描述、运动矢量、合并模式信息)、以及基于帧间预测信息使用任何合适的技术计算帧间预测结果(例如预测块)。在一些实施例中,参考图片是使用嵌入在图6的示例编码器620中的解码单元633(如图7的残差解码器728所示,详见下文),基于已编码的视频信息解码的已解码参考图片。
[0100]
帧内编码器(722)用于接收当前块(例如处理块)的样本、在一些情况下比较所述块与同一图片中已编码的块、在变换之后生成量化系数、以及在一些情况下还(例如根据一个或多个帧内编码技术的帧内预测方向信息)生成帧内预测信息。帧内编码器(722)基于帧内预测信息和同一图片中的参考块计算帧内预测结果(例如预测块)。
[0101]
通用控制器(721)用于确定通用控制数据,且基于所述通用控制数据控制视频编码器(703)的其它组件。在实施例中,通用控制器(721)确定块的预测模式,且基于所述预测模式将控制信号提供到开关(726)。举例来说,当所述预测模式是帧内模式时,通用控制器(721)控制开关(726)以选择供残差计算器(723)使用的帧内模式结果,且控制熵编码器(725)以选择帧内预测信息且将所述帧内预测信息添加在码流中;以及当用于块所述预测模式是帧间模式时,通用控制器(721)控制开关(726)以选择供残差计算器(723)使用的帧间预测结果,且控制熵编码器(725)以选择帧间预测信息且将所述帧间预测信息添加在码流中。
[0102]
残差计算器(723)用于计算所接收的块与选自帧内编码器(722)或帧间编码器(730)的块的预测结果之间的差(残差数据)。残差编码器(724)用于对残差数据进行编码以生成变换系数。在实施例中,残差编码器(724)用于将残差数据从时域转换到频域,以生成变换系数。变换系数接着经由量化处理以获得量化的变换系数。在各种示意性实施例中,视频编码器(703)还包括残差解码器(728)。残差解码器(728)用于执行逆变换,且生成已解码残差数据。已解码残差数据可适当地由帧内编码器(722)和帧间编码器(730)使用。举例来说,帧间编码器(730)可基于已解码残差数据和帧间预测信息生成已解码块,且帧内编码器(722)可基于已解码残差数据和帧内预测信息生成已解码块。适当处理已解码块以生成已解码图片,且所述已解码图片可在存储器电路(未示出)中缓冲并用作参考图片。
[0103]
熵编码器(725)用于将码流格式化以产生已编码的块和执行熵编码。熵编码器(725)配置为在码流中包括各种信息。在实施例中,熵编码器(725)用于获得通用控制数据、所选预测信息(例如帧内预测信息或帧间预测信息)、残差信息和码流中的其它合适的信息。应注意,当在帧间模式或双向预测模式的合并子模式中对块进行编码时,不存在残差信息。
[0104]
图8是根据本技术公开的另一实施例的视频解码器(810)的图。视频解码器(810)用于接收作为已编码视频序列的一部分的已编码图像,且对所述已编码图像进行解码以生
成重建的图片。在实施例中,视频解码器(810)用于代替图4实施例中的视频解码器(410)。
[0105]
在图8实施例中,视频解码器(810)包括如图8中示意性布置所示耦接到一起的熵解码器(871)、帧间解码器(880)、残差解码器(873)、重建模块(874)和帧内解码器(872)。
[0106]
熵解码器(871)可用于根据已编码图片来重建某些符号,这些符号表示构成所述已编码图片的语法元素。此类符号可包括例如用于对所述块进行编码的模式(例如帧内模式、帧间模式、双向预测模式、合并子模式或另一子模式)、可识别供帧内解码器(872)或帧间解码器(880)用以进行预测的某些样本或元数据的预测信息(例如帧内预测信息或帧间预测信息)、呈例如量化的变换系数形式的残差信息等等。在实施例中,当预测模式是帧间或双向预测模式时,将帧间预测信息提供到帧间解码器(880);以及当预测类型是帧内预测类型时,将帧内预测信息提供到帧内解码器(872)。残差信息可经由逆量化并提供到残差解码器(873)。
[0107]
帧间解码器(880)用于接收帧间预测信息,且基于所述帧间预测信息生成帧间预测结果。
[0108]
帧内解码器(872)用于接收帧内预测信息,且基于所述帧内预测信息生成预测结果。
[0109]
残差解码器(873)用于执行逆量化以提取解量化的变换系数,且处理所述解量化的变换系数,以将残差从频域转换到空间域。残差解码器(873)还可能使用某些控制信息(用以获得量化器参数qp),该控制信息可由熵解码器(871)提供(未标示数据路径,因为这仅仅是低数据量控制信息)。
[0110]
重建模块(874)用于在空间域中组合由残差解码器(873)输出的残差与预测结果(可由帧间预测模块或帧内预测模块输出)以形成重建的块,所述重建的块形成重建的图片的一部分,所述重建的图片可以作为重建的视频的一部分。应注意,可执行解块操作等其它合适的操作来改善视觉质量。
[0111]
应注意,可使用任何合适的技术来实施视频编码器(403)、视频编码器(603)和视频编码器(703),以及视频解码器(410)、视频解码器(510)和视频解码器(810)。在实施例中,可使用一个或多个集成电路来实施视频编码器(403)、视频编码器(603)和视频编码器(703)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。在另一实施例中,可使用执行软件指令的一个或多个处理器来实施视频编码器(403)、视频编码器(603)和视频编码器(703)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。
[0112]
转向用于编码和解码的块分区,一般分区可以从基本块开始,并且可以遵循预定义规则集、特定模式、分区树或任何分区结构或方案。分区可以是分层的和递归的。在遵循示例分区过程或下述的其它过程中的任一种或其组合来划分或分区基本块之后,可以获得最终的一组分区或编解码块。这些分区中的每一个分区可以处于分区层级中的各种分区级别中的一个处,并且可以具有各种形状。分区中的每一个可以被称为编解码块(cb)。对于下面进一步描述的各种示例分区实施方案,每个所得cb可以具有允许的大小和分区级中的任一种。此类分区被称为编解码块,因为它们可以形成单元,针对这些单元可以作出一些基本编码/解码决定,并且可以在已编码视频码流中优化、确定并发信号通知编码/解码参数。最终分区中的最高或最深级表示树的编解码块分区结构的深度。编解码块可以是亮度编解码块或色度编解码块。每种色彩的cb树结构可以被称为编解码块树(cbt)。
[0113]
所有颜色通道的编解码块可以被统称为编解码单元(cu)。所有颜色通道的分层结构可以被统称为编码树单元(ctu)。ctu中各种颜色通道的分区图型或结构可以相同或可以不相同。
[0114]
在一些实施方案中,用于亮度和色度通道的分区树方案或结构可以不必相同。换句话说,亮度和色度通道可以具有单独的编码树结构或模式。进一步地,亮度和色度通道是使用相同还是不同的编解码分区树结构以及要使用的实际编解码分区树结构,可以取决于正在被编码的切片是p、b还是i切片。例如,对于i切片,色度通道和亮度通道可以具有各自的编解码分区树结构或编解码分区树结构模式,而对于p或b切片,亮度和色度通道可以共享相同的编解码分区树方案。当应用单独的编解码分区树结构或模式时,可以通过一个编解码分区树结构将亮度通道分区成cb,并且可以通过另一编解码分区树结构将色度通道分区成色度cb。
[0115]
在一些示例实施方案中,基本块可以应用预定分区模式。如图9所示,可以采用示例4路分区树,4路分区树可以从第一预定级(例如,64
×
64块级或者其他尺寸,例如基本块尺寸)开始,基本块可以按照层次向下分区到预定义的最低级(例如,4
×
4级)。例如,基本块可以受限于由902、904、906和908指示的四个预定分区选项或模式,其中指定为r的分区允许进行递归分区,图9所示的同一分区选项可以以较低的规模重复,直到最低级别(例如,4x 4级别)。在一些实施方案中,可以将附加限制应用于图9的分区方案。在图9的实施方案中,可以允许矩形分区(例如,1:2/2:1矩形分区),但是可以不允许它们是递归的,而允许正方形分区是递归的。如果需要,按照图9的递归分区生成最终的编码块集。可以进一步定义编码树深度以指示从根节点或根块的分割深度。例如,根节点或根块(例如,64x 64块)的编码树深度可以设置为0,并且在根块按照图9被进一步分割一次之后,编码树深度增加1。对于上述方案,从64x 64基本块到4x 4的最小分区的最大或最深级别是4(从级别0开始)。这样的分区方案可以应用于一个或多个颜色通道。可以按照图9的方案独立地分区每个颜色通道(例如,可以针对每个层次级别的每个颜色通道独立地确定预定义模式中的分区模式或选项)。或者,两个或多个颜色通道可以共享图9的相同分层模式树(例如,可以在每个分层级别为两个或更多个颜色通道选择预定义模式中的相同划分模式或选项)。
[0116]
图10示出了允许递归分区以形成分区树的另一示例预定义分区模式。如图10所示,可以预定义示例10路分区结构或模式。根块可以以预定义级(例如,从128
×
128级,或64
×
64级的基本块)开始。图10的示例分区结构包括各种2:1/1:2和4:1/1:4矩形分区。图10的第二行中1002、1004、1006和1008指示具有3个子分区的分区类型,可以被称为“t型”分区。“t型”分区1002、1004、1006和1008可以被称为左侧t型、顶部t型、右侧t型和底部t型。在一些示例实施方案中,图10的矩形分区不允许进一步细分。可以进一步定义编码树深度以指示从根节点或根块的分割深度。例如,根节点或根块(例如,128
×
128块)的编码树深度可以被设置为0,并且在根块按照图10的模式被进一步分割一次之后,将编码树深度增加1。在一些实施方案中,可以仅允许1010中的所有正方形分区按照图10的模式递归分区到分区树的下一级。换句话说,对于t型模式1002、1004、1006和1008中的正方形分区,可以不允许递归分区。如果需要,按照图10的递归分区过程生成最终的编码块集。此类方案可以应用于一个或多个颜色通道。在一些实施方式中,可以在使用8x 8级别以下的分区时,增加更多的灵活性。例如,在某些情况下可以使用2x2色度帧间预测。
[0117]
在用于编解码块分区的一些其它示例实施方案中,四叉树结构可以用于将基本块或中间块分割成四叉树分区。此类四叉树分割可以分层地和递归地应用于任何正方形分区。基本块或中间块或分区是否被进一步四叉树分割可以适应于基本块或中间块/分区的各种局部特性。可以进一步调整图片边界处的四叉树分区。例如,可以在图片边界处执行隐式四叉树分割,使得块将保持四叉树分割,直到大小适合图片边界。
[0118]
在一些其它示例实施方案中,可以从基本块开始使用分层二元分区。对于此类方案,可以将基本块或中间级块分区成两个分区。二元分区可以是水平的或竖直的。例如,水平二元分区可以将基本块或中间块分割成相等的右分区和左分区。同样地,竖直二元分区可以将基本块或中间块分割成相等的上分区和下分区。此类二元分割可以是分层的和递归的。可以在基本块或中间块中的每一者处作出二元分区方案是否应当继续的决定,并且如果该方案确实进一步继续,则作出应当使用水平还是竖直二元分区的决定。在一些实施方案中,在预定义最低分区大小(在一个或两个维度上)处停止进一步的分区。可选地,一旦达到距离基本块预定义分区级或深度,就可以停止进一步的分区。在一些实施方案中,可以限制分区的纵横比。例如,分区的纵横比可以不小于1:4(或大于4:1)。照此,具有4:1的竖直与水平纵横比的竖直条形分区仅能进一步被竖直地二元分区成各自具有2:1的竖直与水平纵横比的上分区和下分区。
[0119]
在又一些其它示例中,三元分区方案可以用于分区基本块或任何中间块,如图13所示。三元图型可以如图13的1302所示竖直实施,或者如图13的1304所示水平实施。虽然图13中竖直或水平的示例分割比被示出为1:2:1,但是也可以预定义其它比例。在一些实施方案中,可以预定义两个或更多个不同的比例。此类三元分区方案可以用于补充四叉树或二元分区结构,因为此类三叉树分区能够在一个连续分区中捕获位于块中心的对象,而四叉树和二叉树总是沿着块中心分割并从而将对象分割成单独的分区。在一些实施方案中,示例三叉树的分区的宽度和高度总是2的幂以避免附加变换。
[0120]
以上分区方案可以在不同的分区级上以任何方式组合。作为一个示例,上述四叉树和二元分区方案可以被组合以将基本块分区成四叉树-二叉树(qtbt)结构。在此类方案中,如果指定的话,受制于一组预定义条件,基本块或中间块/分区可以是四叉树分割或二元分割。在图14中示出了特定示例。在图14的示例中,基本块首先被四叉树分割成四个分区,如1402、1404、1406和1408所示。此后,所得分区中的每一个要么被四叉树分区成四个进一步的分区(诸如1408),要么在下一级处被二元分割成两个进一步的分区(水平或竖直,诸如1402或1406,两者都是对称的),要么不被分割(诸如1404)。对于正方形分区,可以递归地允许二元或四叉树分区,如1410的总体示例分区图型和1420中的对应树结构/表示所示,其中实线表示四叉树分割,并且虚线表示二元分割。标志可以用于每个二元分割节点(非叶的二元分区)以指示二元分割是水平的还是竖直的。例如,如1420所示,与1410的分区结构一致,标志“0”可以表示水平二元分割,并且标志“1”可以表示竖直二元分割。对于四叉树分割分区,不需要指示分割类型,因为四叉树分割总是水平地和竖直地分割块或分区,以产生具有相等大小的4个子块/分区。在一些实施方案中,标志“1”可以表示水平二元分割,并且标志“0”可以表示竖直二元分割。
[0121]
在qtbt的一些示例实施方案中,四叉树和二元分割规则集可以由以下预定义参数和与其相关联的对应函数来表示:
—ctu size:四叉树的根节点大小(基本块的大小)—minqtsize:最小允许的四叉树叶节点大小—maxbtsize:最大允许的二叉树根节点大小—maxbtdepth:最大允许的二叉树深度—minbtsize:最小允许的二叉树叶节点大小在qtbt分区结构的一些示例实施方案中,可以将ctu大小设置为具有两个对应64
×
64色度样本块(当考虑和使用示例色度子采样时)的128
×
128亮度样本,可以将minqtsize设置为16
×
16,可以将maxbtsize设置为64
×
64,可以将minbtsize(针对宽度和高度两者)设置为4
×
4,并且可以将maxbtdepth设置为4。可以首先将四叉树分区应用于ctu以生成四叉树叶节点。四叉树叶节点可以具有从16
×
16的其最小允许的大小(即,minqtsize)到128
×
128(即,ctu大小)的大小。如果节点是128
×
128,则其不会首先被二叉树分割,因为大小超过了maxbtsize(即,64
×
64)。否则,未超过maxbtsize的节点可以被二叉树分区。在图14的示例中,基本块是128
×
128。根据预定义规则集,基本块仅能被四叉树分割。基本块的分区深度为0。所得四个分区中的每一个是64
×
64,未超过maxbtsize,可以在1级处进一步被四叉树或二叉树分割。该过程继续。当二叉树深度达到maxbtdepth(即,4)时,可以考虑不进行进一步的分割。当二叉树节点的宽度等于minbtsize(即,4)时,可以考虑不进行进一步的水平分割。类似地,当二叉树节点的高度等于minbtsize时,可以考虑不进行进一步的竖直分割。
[0122]
在一些示例实施方案中,以上qtbt方案可以被配置为支持亮度和色度的具有相同的qtbt结构或各自的qtbt结构的灵活性。例如,对于p和b切片,一个ctu中的亮度和色度ctb可以共享相同的qtbt结构。然而,对于i切片,亮度ctb可以被qtbt结构分区成cb,并且色度ctb可以被另一qtbt结构分区成色度cb。这意味着cu可以用于表示i切片中的不同颜色通道,例如,i切片可以由亮度分量的编解码块或两个色度分量的编解码块组成,并且p或b切片中的cu可以由所有三个颜色分量的编解码块组成。
[0123]
在一些其它实施方案中,可以用上述三元方案补充qtbt方案。此类实施方案可以被称为多类型树(mtt)结构。例如,除了节点的二元分割之外,还可以选择图13的三元分区模式中的一个。在一些实施方案中,仅正方形节点可以进行三元分割。可以使用附加标志来指示三元分区是水平的还是竖直的。
[0124]
两级或多级树的设计,诸如qtbt实施方案和由三元分割补充的qtbt实施方案,可以主要是为了降低复杂度。理论上,遍历树的复杂度是td,其中t表示分割类型的数量,并且d是树的深度。可以通过使用多种类型(t)同时减小深度(d)来进行折衷。
[0125]
在一些实施方案中,cb可以被进一步分区。例如,为了编码和解码过程中的帧内或帧间预测的目的,cb可以被进一步分区成多个预测块(pb)。换句话说,cb可以被进一步划分成不同的子分区,其中可以进行单独的预测决定/配置。并行地,为了描绘执行视频数据的变换或逆变换的级别的目的,cb可以被进一步分区成多个变换块(tb)。cb到pb和tb的分区方案可以相同或可以不相同。例如,可以基于例如视频数据的各种特性使用其自己的过程来执行每个分区方案。在一些示例实施方案中,pb和tb分区方案可以是独立的。在一些其它示例实施方案中,pb和tb分区方案和边界可以是相关的。在一些实施方案中,例如,tb可以在pb分区之后被分区,特别是,每个pb在按照编码块的分区被确定之后,然后被进一步分区
成一个或多个tb。例如,在一些实施方案中,pb可以被分割成一个、两个、四个或其它数量的tb。
[0126]
在一些实施方案中,为了将基本块被分区成编码块并且进一步被分区成预测块和/或变换块,可以区别处理亮度通道和色度通道。例如,在一些实施方案中,可以允许亮度通道的编码块被分区成预测块和/或变换块,而不允许色度通道的编码块被分区成预测块和/或变换块。在此类实施方案中,亮度块的变换和/或预测因此可以仅在编码块级上执行。对于另一示例,亮度通道和色度通道的最小变换块大小可以不同,例如,可以允许亮度通道的编码块被分区成比色度通道更小的变换块和/或预测块。对于又一示例,将编码块分区成变换块和/或预测块的最大深度在亮度通道与色度通道之间可以不同,例如,可以允许亮度通道的编码块被分区成比色度通道更深的变换块和/或预测块。对于特定示例,亮度编码块可以被分区成多个大小的变换块,该变换块可以由向下进行多达2级的递归分区来表示,并且可以允许诸如正方形、2:1/1:2和4:1/1:4的变换块形状和从4
×
4到64
×
64的变换块大小。然而,对于色度块,仅可以允许为亮度块指定最大可能变换块。
[0127]
在用于将编码块分区成pb的一些示例实施方案中,对pb进行分区的深度、形状和/或其它特性可以取决于pb是帧内编码还是帧间编码。
[0128]
在各种示例方案中,可以实施将编码块(或预测块)分区成变换块,该方案包括但不限于递归或非递归地四叉树分割和预定义模式分割,并且附加对编码块或预测块的边界处的变换块的考虑。一般而言,产生的变换块可以处于不同的分割级,可以不具有相同的大小,并且可以不需要形状为正方形(例如,它们可以是具有一些允许的大小和纵横比的矩形)。下面将结合图15、16和17更详细地描述进一步的示例。
[0129]
然而,在一些其它实施方案中,经由任意以上分区方案获得的cb可以用作用于预测和/或变换的基本或最小编解码块。换句话说,不出于执行帧间预测/帧内预测的目的和/或出于变换的目的而执行进一步的分割。例如,从以上qtbt方案获得的cb可以直接用作执行预测的单元。具体地,此类qtbt结构去除了多个分区类型的概念,即它去除了cu、pu和tu的分离,并且支持如上所述的cu/cb分区形状的更多灵活性。在此类qtbt块结构中,cu/cb可以具有正方形或矩形形状。此类qtbt的叶节点用作预测和变换处理的单元,而无需任何进一步的分区。这意味着,cu、pu和tu在此类示例qtbt编解码块结构中具有相同的块大小。
[0130]
以上各种cb分区方案以及将cb进一步分区成pb和/或tb(包括无pb/tb分区)可以以任何方式组合。提供以下特定实施方案作为非限制性示例。
[0131]
下面描述编码块和变换块分区的具体示例实施方案。在此类示例实施方案中,可以使用以上描述的递归四叉树分割或者预定义分割模式(例如图9和10中的那些模式)将基本块分割成编码块。在每一级,特定分区的进一步四叉树分割是否应继续可以由本地视频数据特性来确定。产生的cb可以处于各种大小的各种四叉树分割级。可以在cb级(或cu,用于所有三个颜色通道通道)作出是否使用图片间(时间)或图片内(空间)预测来编码图片区域的决定。可以根据预定义pb分割类型将每个cb进一步分割成一个、两个、四个或其他数量的pb。在一个pb内,可以应用相同的预测过程,并且在pb的基础上将相关信息发送到解码器。在通过应用基于pb分割类型的预测过程获得残差块之后,cb可以根据与cb的编码树类似的另一四叉树结构被分区成tb。在该特定实施方案中,cb或tb可以是但不必限于正方形。此外,在此特定示例中,pb对于帧间预测可以是正方形或矩形形状并且对于帧内预测可以
仅是正方形。编码块可以被分割成例如四个正方形形状的tb。每个tb可以被进一步递归地分割(使用四叉树分割)成更小的tb,被称为残差四叉树(residual quadtree,rqt)。
[0132]
下面描述用于将基本块分区成cb、pb和/或tb的另一示例实施方式。例如,可以使用嵌套多类型树的四叉树,该四叉树具有使用二元和三元分割分段结构(例如如上所述的qtbt或者具有三元分割的qtbt),而不是使用诸如图9或10中所示的多个分区单元类型。cb、pb和tb概念的分离(即,将cb分区成pb和/或tb,以及将pb分区成tb)可以被放弃,除非当需要具有对于最大变换长度而言太大的大小的cb时,其中此类cb可能需要进一步分割。该示例分区方案可以被设计为支持cb分区形状的更多灵活性,使得预测和变换都可以在cb级上执行而无需进一步分区。在此类编码树结构中,cu可以具有正方形或矩形形状。具体地,编码树块(ctb)可以首先被四叉树结构分区。然后,可以通过嵌套多类型树结构进一步分区四叉树叶节点。图11中示出了使用二元或三元分割的嵌套多类型树结构的示例。具体地,图11的示例多类型树形结构包括四种分割类型,其被称为垂直二元分割(split_bt_ver)(1102)、水平二元分割(split_bt_hor)(1104)、垂直三元分割(split_tt_ver)(1106)和水平三元分割(split_tt_hor)(1108)。然后,cb对应于多类型树的叶。在该示例实施方案中,除非cb对于最大变换长度太大,否则该分段被用于预测和变换处理,而无需任何进一步的分区。这意味着,在大多数情况下,cb、pb和tb在具有嵌套多类型树编码块结构的四叉树中具有相同的块大小。当最大支持变换长度小于cb的颜色分量的宽度或高度时,会发生例外情况。在一些实施例中,除了二元或三元分割,如图11的嵌套模式可以进行包括4叉树分割。
[0133]
图12中示出了具有用于一个基本块的块分区(包括四叉树,二元和三元分割选项)的嵌套多类型树编码块结构的四叉树的一个示例。更详细地,图12示出了基本块1200被四叉树分割成四个正方形分区1202、1204、1206和1208。决定进一步使用图11的多类型树结构和四叉树对四叉树分割分区的每一个进行进一步分割。在图12的示例中,分区1204不被进一步分割。分区1202和1208各自采用另一个四叉树分割。对于分区1202,第二级四叉树分割的左上方、右上方、左下方和右下方分区分别采用四叉树的第三级分割、图11的水平二元分割1104、不分割以及图11的水平三元分割1108。分区1208采用另一个四叉树分割,并且第二级四叉树分割的左上方、右上方、左下方和右下方分区分别采用图11的竖直三元分割1106的第三级分割、不分割、不分割以及图11的水平二元分割1104。1208的第三级左上方分区的子分区中的两个根据图11的水平二元分割1104和水平三元分割1108被进一步分别分割。分区1206采用按照图11的竖直二元分割1102的第二级分割模式分成两个分区,该两个分区根据图11的水平三元分割1108和竖直二元分割1102进一步被第三级分割。根据图11的水平二元分割1104,第四级分割被进一步应用于它们中的一个。
[0134]
对于以上特定示例,最大亮度变换大小可以是64
×
64,并且最大所支持的色度变换大小可以不同于例如32
×
32处的亮度。尽管上面图12中的示例cb通常不被进一步划分为更小的pb和/或tb,当亮度编码块或色度编码块的宽度或高度大于最大变换宽度或高度时,亮度编码块或色度编码块可以沿水平和/或垂直方向自动分割,以满足沿该方向的变换大小限制。
[0135]
在用于将基本块分区成以上cb的特定示例中,如上所述,编码树方案可以支持亮度和色度具有分离的块树结构的能力。例如,对于p和b切片,一个ctu中的亮度和色度ctb可以共享相同的编码树结构。例如,对于i切片,亮度和色度可以具有分离的编码块树结构。当
应用分离的块树结构时,亮度ctb通过一种编码树结构被分区成cb,并且色度ctb通过另一种编码树结构被分区成色度cb。这意味着i切片中的cu可以由亮度分量的编码块或两个色度分量的编码块组成,并且p或b切片中的cu总是由所有三个颜色分量的编码块组成,除非视频是单色的。
[0136]
当编码块被进一步划分为多个变换块时,其中的变换块在码流中是有序的,遵循各种顺序或扫描方式。下文进一步详细描述用于将编码块或预测块分区成变换块的示例实施方案和变换块的编码顺序。在一些示例实施方案中,如上所述,变换分区可以支持多种形状,例如,1:1(正方形)、1:2/2:1和1:4/4:1的变换块,其中变换块大小范围从例如4
×
4到64
×
64。在一些实施方案中,如果编码块小于或等于64
×
64,则变换块分区可以仅应用于亮度分量,使得对于色度块,变换块大小与编码块大小相同。否则,如果编码块宽度或高度大于64,那么亮度和色度编码块可以分别被隐式地分割成数倍的min(w,64)
×
min(h,64)和min(w,32)
×
min(h,32)变换块。
[0137]
在变换块分区的一些示例实施方案中,对于帧内编码块和帧间编码块两者,编码块可以被进一步分区成具有多达预定级数(例如,2级)的分区深度的多个变换块。变换块分区深度和大小可以是相关的。对于一些示例实施方式,从当前深度的变换大小到下一深度的变换大小的示例映射在下表1中示出。表1:变换分区大小设置
[0138]
基于表1的示例映射,对于1:1正方形块,下一级变换分割可以创建四个1:1正方形子变换块。变换分区可以例如在4
×
4处停止。这样,当前深度4
×
4的变换大小对应于下一深度的相同大小4
×
4。在表1的示例中,对于1:2/2:1非正方形块,下一级变换分割将创建两个1:1正方形子变换块,而对于1:4/4:1非正方形块,下一级变换分割将创建两个1:2/2:1子变换块。
[0139]
在一些示例实施方案中,对于帧内编码块的亮度分量,可以对变换块分区应用附加限制。例如,对于进行变换分区的每个级别,所有子变换块可以被限制为具有相同的大小。例如,对于32
×
16编码块,级1变换分割创建两个16
×
16子变换块,级2变换分割创建八个8
×
8子变换块。换句话说,第二级分割必须应用于所有第一级子块,以保持变换单元大小相等。在图15中示出了表1所示的用于帧内编码正方形块的变换块分区的示例,以及由箭头图示的编码顺序。具体地,1502示出了正方形编码块。在1504中示出了根据表1,分割成4个相等大小的变换块的第一级分割,其中编码顺序由箭头指示。在1506中,示出了根据表1将所有第一级大小相等的块分割成16个大小相等的变换块的第二级分割,其中编码顺序由箭头指示。
[0140]
在一些示例实施方案中,对于帧间编码块的亮度分量,可以不应用以上对帧内编码的限制。例如,在第一级变换分割之后,子变换块中的任何一个可以进一步独立地再分割一级。因此,产生的变换块可以具有或可以不具有相同的大小。在图16中示出了将帧间编码块分割成的变换块的示例,变换块具有编码顺序。在图16的示例中,根据表1,帧间编码块1602被分割成处于二级的变换块。在第一级,帧间编码块被分割成四个相等大小的变换块。然后,如1604所示,四个变换块中只有一个(不是所有的)被进一步分割成四个子变换块,导致总共7个变换块具有两种不同的大小。这7个变换块的示例编码顺序由图16的1604中的箭头示出。
[0141]
在一些示例实施方案中,对于一个或多个色度分量,可以应用对变换块的一些附加限制。例如,对于一个或多个色度分量,变换块大小可以与编码块大小一样大,但不小于预定义大小,例如8
×
8。
[0142]
在一些其它示例实施方案中,对于宽度(w)或高度(h)大于64的编码块,亮度和色度编码块两者可以分别被隐式地分割成数倍的min(w,64)
×
min(h,64)和min(w,32)
×
min(h,32)变换单元。这里,在本公开中,“min(a,b)”可以返回a和b之间的较小值。
[0143]
图17进一步示出了用于将编码块或预测块分区成变换块的另一可选示例方案。如图17所示,代替使用递归变换分区,可以根据编码块的变换类型将预定义的分区类型集应用于编码块。在图17中所示的特定示例中,可以应用6种示例分区类型中的一种来将编码块分割成各种数量的变换块。此类产生变换块分区的方案可以应用于编码块或预测块。
[0144]
更详细地,图17的分区方案为任何给定变换类型(变换类型指例如初步编换的类型,例如adst和其他)提供了多达6个示例分区类型。在此方案中,例如可以基于率失真代价向每一编码块或预测块分配变换分区类型。在示例中,可以基于编码块或预测块的变换类型来确定分配给编码块或预测块的变换分区类型。特定变换分区类型可以对应于变换块分割大小和模式,如图17中所图示的6种变换分区类型所示。可以预定义各种变换类型与各种变换分区类型之间的对应关系。下面示出了对应的示例,其中大写的标记指示可以基于率失真代价分配给编码块或预测块的变换分区类型:
[0145]
·
partition_none:分配等于块大小的变换大小。
[0146]
·
partition_split:分配的变换大小是块大小的宽度的1/2和块大小的高度的1/2。
[0147]
·
partition_horz:分配具有与块大小相同宽度和块大小的高度的1/2的变换大小。
[0148]
·
partition_vert:分配具有块大小的宽度的1/2和与块大小相同高度的变换大小。
[0149]
·
partition_horz4:分配具有与块大小相同宽度和块大小的高度的1/4的变换大小。
[0150]
·
partition_vert4:分配具有块大小的宽度的1/4和与块大小相同高度的变换大小。
[0151]
在上面的示例中,如图17所示的所有变换分区类型包含分区变换块的统一变换大小。这仅仅是示例而非限制。在一些其它实施方案中,混合变换块大小可以用于特定分区类型(或模式)的分区变换块。
[0152]
然后从以上分区方案中的任一种获得的pb(或cb,当未被进一步分区成预测块时也被称为pb)可以成为用于通过帧内或帧间预测进行编解码的各个块。对于当前pb的帧间预测,当前块与预测块之间的残差可以被生成、编码,并包括在已编码码流中。
[0153]
帧间预测可以例如以单参考模式或复合参考模式来实施。在一些实施方案中,跳过标志可以首先被包括在当前块(或在更高级处)的码流中,用于指示当前块是否被帧间编码并且将不被跳过。如果当前块被帧间编码,则另一标志可以被进一步包括在码流中,作为信号来指示是将单参考模式还是复合参考模式用于当前块。对于单参考模式,可以使用一个参考块来生成当前块的预测块。对于复合参考模式,可以使用两个或更多个参考块以例如通过加权平均来生成预测块。复合参考模式可以被称为多于一个参考模式、两个参考模式或多个参考模式。可以使用一个或多个参考帧索引,并且附加地使用相应的一个或多个运动矢量来标识一个或多个参考块,该相应的一个或多个运动矢量指示一个或多个参考块与当前块之间在位置(例如,在水平和竖直像素上)上的一个或多个移位。例如,当前块的帧间预测块可以从由参考帧中的一个运动矢量标识的单个参考块生成,作为单个参考模式中的预测块,而对于复合参考模式,预测块可以通过对由两个运动矢量指示的两个参考帧中的两个参考块进行加权平均来生成。可以以各种方式将一个或多个运动矢量编码并包括在码流中。
[0154]
在一些实施方案中,编码或解码系统可以保持已解码图片缓冲器(dpb)。一些图像/图片可以保持在dpb中等待显示(在解码系统中),并且dpb中的一些图像/图片可以用作参考帧以实现帧间预测。在一些实施方案中,dpb中的参考帧可以被标记为正在被编码或解码的当前图像的短期参考或长期参考。例如,短期参考帧可以包括用于对当前帧中的块进行帧间预测的帧,或者包括在解码顺序上与当前帧最接近的预定义数量(例如,2个)的后续视频帧中的块进行帧间预测的帧。长期参考帧可以包括dpb中的帧,这些帧可以用于预测在解码顺序上与当前帧超过预定帧数的帧中的图像块。关于用于短期和长期参考帧的此类标签的信息可以被称为参考图片集(rps),并且可以被添加到已编码码流中的每个帧的头中。已编码视频码流中的每个帧可以由图片顺序计数器(poc)来标识,每个帧根据回放序列以
绝对方式编号,或与从例如i帧开始的图片组相关地编号。
[0155]
在一些示例实施方案中,可以基于rps中的信息,形成一个或多个参考图片列表,该列表包含用于帧间预测的短期和长期参考帧的标识。例如,可以针对单向帧间预测形成单个图片参考列表,表示为l0参考(或参考列表0),而可以针对双向帧间预测形成两个图片参考列表,表示为l0(或参考列表0)和l1(或参考列表1),用于两个预测方向中的每一个。包括在l0和l1列表中的参考帧可以以各种预定方式排序。可以在视频码流中发信号通知l0和l1列表的长度。当用于在复合预测模式中通过加权平均来生成预测块的多个参考在待预测块的相同侧时,单向帧间预测可以处于单参考模式也可以处于复合参考模式。双向帧间预测仅能为复合模式,因为双向帧间预测涉及至少两个参考块。
[0156]
在一些实施方案中,可以实施用于帧间预测的合并模式(mm)。通常,对于合并模式,当前pb的单参考预测中的运动矢量或复合参考预测中的运动矢量中的一个或多个,可以从其它一个或多个运动矢量导出,而不是被独立地计算和发信号通知。例如,在编码系统中,可以将当前pb的一个或多个当前运动矢量简化为一个或多个当前运动矢量与其它一个或多个已编码运动矢量(被称为参考运动矢量)之间的一个或多个差。一个或多个运动矢量的一个或多个差(而不是一个或多个当前运动矢量的全部)可以被编码并包括在码流中,并且可以链接到一个或多个参考运动矢量。对应地,在解码系统中,可以基于已解码运动矢量差和与其链接的一个或多个已解码参考运动矢量,导出对应于当前pb的一个或多个运动矢量。作为一般合并模式(mm)帧间预测的特定形式,此类基于运动矢量差的帧间预测可以被称为具有运动矢量差的合并模式(merge mode with motion vector difference,mmvd)。因此,可以实施一般的mm,或者特定的mmvd,以利用与不同的pb相关联的运动矢量之间的相关性来提高编解码效率。例如,相邻pb可以具有类似的运动矢量。对于另一示例,对于空间中类似地定位/放置的块,运动矢量可以在时间上相关(在帧之间)。
[0157]
在一些示例实施方案中,mm标志可以在编码过程期间被包括在码流中,用于指示当前pb是否处于合并模式。附加地,或者可选地,mmvd标志可以在编码过程期间被包括在码流中并且在码流中发信号通知,以指示当前pb是否处于mmvd模式。mm和/或mmvd标志或指标可以在pb级、cb级、cu级、ctb级、ctu级、切片级、图片级等级别上提供。对于特定示例,对于当前cu,可以包括mm标志和mmvd标志两者,并且可以紧接在跳过标志和mm标志之后发信号通知mmvd标志,以指定mmvd模式是否用于当前cu。
[0158]
在mmvd的一些示例实施方案中,可以为正在被预测的块形成运动矢量预测的合并候选列表。合并候选列表可以包含预定数量(例如,2个)的mv预测器候选块,mv预测器候选块的运动矢量可以用于预测当前运动矢量。mvd候选块可以包括从相同帧中的相邻块和/或时域块中选择的块(例如,当前帧的先前帧或后续帧中相同定位的块)。这些选项表示在相对于当前块的空间或时间位置处的可能具有与当前块类似或相同的运动矢量的块。mv预测器候选列表的大小可以是预定的。例如,该列表可以包含两个候选。为了存在于合并候选列表上,候选块例如需要具有与当前块相同的一个参考帧(或多个参考帧),必须存在(例如,当当前块接近帧的边缘时,需要执行边界检查),并且必须在编码过程期间已编码,和/或在解码过程期间已解码。在一些实施方案中,如果空间相邻块可用并且满足以上条件,则合并候选列表可以首先填充有空间相邻块(以特定的预定义顺序扫描),并且然后如果在列表中空间仍然可用,则填充时域块。例如,可以从当前块的左块和顶块中选择相邻候选块。合并
[0163]
在一些示例实施方案中,可以根据每个方向上的poc的差缩放mvd。如果两个列表中的poc的差相同,则不需要缩放。否则,如果参考列表0中的poc的差大于参考列表1中的poc的差,则缩放参考列表1的mvd。如果参考列表1的poc差大于列表0,则可以以相同的方式缩放列表0的mvd。如果起始mv是单向预测的,则将mvd添加到可用或参考mv。
[0164]
在用于双向复合预测的mvd编解码和信令的一些示例实施方案中,除了单独编码和发信号通知两个mvd之外或作为其替代方案,还可以实施对称mvd编解码,使得仅一个mvd需要发信号通知,并且另一mvd可以从用信号通知的mvd导出。在此类实施方案中,发信号通知运动信息,该运动信息包括列表-0和列表-1两者的参考图片索引。然而,仅与例如参考列表-0相关联的mvd被发信号通知,而与参考列表-1相关联的mvd不用信号通知而是被导出。具体地,在切片级处,可以在码流中包括被称为“mvd_l1_zero_flag”的标志,用于指示参考列表-1是否未在码流中用信号通知。如果该标志为1,指示参考列表-1等于零(并且因此未用信号通知),则可以将双向预测标志(被称为“bidirpredflag”)设置为0,意味着不存在双向预测。否则,如果mvd_l1_zero_flag为零,如果list-0中的最接近参考图片和list-1中的最接近参考图片形成前后一对参考图片或后前一对参考图片,则可以将bidirpredflag设置为1,并且list-0和list-1参考图片均为短期参考图片。否则,将bidirpredflag设置为0。bidirpredflag为1指示在码流中附加地发信号通知对称模式标志。当bidirpredflag为1时,解码器可以从码流中提取对称模式标志。例如,可以在cu级处发信号通知(如果需要的话)对称模式标志,并且它指示对称mvd编解码模式是否正在被用于对应cu。当对称模式标志为1时,其指示使用对称mvd编解码模式,并且列表-0和列表-1两者的参考图片索引(被称为“mvp_l0_flag”和“mvp_l1_flag”)与列表-0相关联的mvd(被称为“mvd0”)用信号通知,并且另一运动矢量差“mvd1”将被导出而不是用信号通知。例如,mvd1可以被导出为-mvd0。照此,在示例对称mvd模式中仅发信号通知一个mvd。在mv预测的一些其它示例实施方案中,对于单参考和复合参考模式mv预测两者,可以使用协调方案来实施一般合并模式,mmvd和一些其它类型的mv预测。各种语法元素可以用于发信号通知预测当前块的mv的方式。
[0165]
例如,对于单参考模式,可以发信号通知以下mv预测模式:
[0166]
nearmv—直接使用列表中的运动矢量预测器(mvp)中的一个,而没有使用任何mvd,这个mvp由drl(dynamic reference list,动态参考列表)索引指示。
[0167]
newmv—使用列表中的运动矢量预测器(mvp)中的一个作为参考,并将增量应用于mvp(例如,使用mvd),这个mvp通过drl索引发信号通知。
[0168]
globalmv—使用基于帧级全局运动参数的运动矢量。
[0169]
同样地,对于使用对应于两个待预测mv的两个参考帧的复合参考帧间预测模式,可以发信号通知以下mv预测模式:
[0170]
near_nearmv—对于两个待预测mv中的每一个,使用列表中的运动矢量预测器(mvp)中的一个,而没有使用mvd,这个mvp通过drl索引发信号通知。
[0171]
near_newmv—为了预测两个运动矢量中的第一个,使用列表中的运动矢量预测器(mvp)中的一个作为参考mv,而没有mvd,这个mvp通过drl索引发信号通知;为了预测两个运动矢量中的第二个,使用列表中的运动矢量预测器(mvp)中的一个作为参考mv,并结合附加地用信号通知的增量mv(mvd),这个mvp通过drl索引发信号通知。
[0172]
new_nearmv—为了预测两个运动矢量中的第二个,使用列表中的运动矢量预测器
(mvp)中的一个作为参考mv,而没有mvd,这个mvp通过drl索引发信号通知;为了预测两个运动矢量中的第一个,使用列表中的运动矢量预测器(mvp)中的一个作为参考mv,并结合附加地用信号通知的增量mv(mvd),这个mvp通过drl索引发信号通知。
[0173]
new_newmv—使用列表中的运动矢量预测器(mvp)中的一个作为参考mv,并将其与附加地用信号通知的增量mv结合使用,以预测两个mv中的每一个,其中这个mvp通过drl索引发信号通知。
[0174]
global_globalmv—基于帧级全局运动参数使用来自每个参考的mv。
[0175]
因此,以上术语“near”是指使用参考mv(而没有mvd)作为一般合并模式的mv预测,而术语“new”是指涉及使用参考mv并如在mmvd模式中那样用用信号通知的mvd来对其进行偏移的mv预测。对于复合帧间预测,以上参考基本运动矢量和运动矢量增量两者在两个参考之间通常可以是不同的或独立的(即使它们可以是相关的,并且可以利用此类相关性来减少发信号通知两个运动矢量增量所需的信息量)。在此类情况下,可以在码流中实施和指示两个mvd的联合信令。
[0176]
以上动态参考列表(drl)可以用于保存被动态保持并被视为候选运动矢量预测器的一组索引运动矢量。
[0177]
在一些示例实施方案中,对于复合预测,可以使用基于光流的途径来按子块修正运动矢量(mv)。具体地,可以应用光流方程来公式化最小二乘问题,由此可以从复合帧间预测样本的梯度导出精细运动。利用这些精细运动,可以在预测块内修正每个子块的mv,这可以增强帧间预测质量。一些编解码特征可以是双向光流(bdof)的概念的扩展,因为它在两个参考块具有到当前块的任意时间距离时支持mv修正。
[0178]
在一些实施方案中,可以添加以下列出的四种附加复合帧间模式:near_nearmv_optflow、near_newmv_optflow、new_nearmv_optflow,和/或new_newmv_optflow。
[0179]
这些模式可以被称为光流模式,并且参考mv类型可以被定义为常规复合模式(例如,near_newmv_optflow具有与near_newmv中相同的参考mv类型)。可以基于按子块修正的mv而不是原始mv来执行复合预测。
[0180]
在本公开中描述的各种实施例和/或实施方案可以单独使用或以任何顺序组合使用。进一步地,这些实施例和/或实施方案的一部分、全部或任何部分或全部组合可以被体现为编码器和/或解码器的一部分,并且可以以硬件和/或软件来实施。例如,它们可以被硬编码在专用处理电路(例如,一个或多个集成电路)中。在一个其它示例中,它们可以通过一个或多个处理器执行存储在非易失性计算机可读介质中的程序来实施。
[0181]
可能存在与用于运动矢量差的信令方法的一些实施方案相关联的一些担忧/难题,例如,如何以new_nearmv模式、near_newmv模式或new_newmv模式发信号通知一个或多个增量mv。一个担忧/难题是没有利用两个参考列表中的运动矢量差的相关性,因此降低了编码/解码的效率和性能。
[0182]
本公开描述了发信号通知帧间预测模式编码和/或解码的运动矢量差(mvd或增量mv)的各种实施例,解决了上述担忧/难题中的至少一个,实现了用于改进的帧间预测模式编码/解码的有效软件/硬件实施方案。
[0183]
在各种实施例中,参考图18,提供了一种用于对帧间预测视频块进行解码的方法1800。方法1800可以包括以下步骤的一部分或全部:步骤1810,由设备接收已编码视频码
流,所述设备包括存储指令的存储器和与所述存储器通信的处理器;步骤1820,由设备从已编码视频码流中提取当前帧中的当前块的帧间预测模式和联合增量运动矢量mv;步骤1830,由设备从已编码视频码流中提取指示第一参考帧的第一增量mv和第二参考帧的第二增量mv是否被联合发信号通知的标志;步骤1840,响应于标志指示第一增量mv和第二增量mv被联合发信号通知,由设备基于联合增量mv导出第一增量mv和第二增量mv;和/或步骤1850,由设备基于第一增量mv和第二增量mv对当前帧中的当前块进行解码。
[0184]
在一些实施方案中,联合增量mv可以表示为joint_delta_mv,其可以是指示联合增量mv的元素。在一些实施方案中,指示第一参考帧的第一增量mv和第二参考帧的第二增量mv是否被联合发信号通知的标志可以表示为joint_mvd_flag。在一些实施方案中,第一参考帧可以是参考列表(参考列表0)中的帧;和/或第二参考帧可以是另一参考列表(参考列表1)中的帧。
[0185]
在一些实施方案中,步骤1830可以包括由设备从已编码视频码流中提取标志(joint_mvd_flag)标志(joint_mvd_flag)指示参考列表0中的第一参考帧的第一增量mv和参考列表1中的第二参考帧的第二增量mv是否被联合发信号通知。
[0186]
在本公开的各种实施例中,块的大小(例如但不限于编码块、预测块或变换块)可以指块的宽度或高度。块的宽度或高度可以是以像素为单位的整数。在本公开的各种实施例中,块的大小可以指块的面积大小。块的面积大小可以是以像素为单位由块的宽度乘以块的高度计算的整数。在本公开的一些不同实施例中,块的大小可以指块的宽度或高度的最大值、块的宽度和高度的最小值或块的纵横比。块的纵横比可以计算为块的宽度除以块的高度,或者可以计算为高度除以块的宽度。
[0187]
这里,在本公开的一些实施例中,“第一”参考帧可以不仅指“一个”参考帧,而且指多个参考帧中的“第一”参考帧(例如,具有最小索引,或者在序列中最早出现),“第二”参考帧可以不仅指“另一”参考帧,而且指多个参考帧中的“第二”参考帧(例如,具有第二最小索引,或者在序列中第二早出现)。
[0188]
这里,在本公开的各种实施例中,“发信号通知xyz”可以指在编码过程期间将xyz编码到已编码码流中;和/或,在将已编码码流从一个设备发送到另一设备之后,“发信号通知xyz”可以指在解码过程期间从已编码码流中对xyz进行解码/提取。
[0189]
这里,在本公开的各种实施例中,参考帧的方向可以通过参考帧是在显示顺序上的当前帧之前还是在显示顺序上的当前帧之后来确定。在复合参考模式的一些实施方案中,当一个运动矢量对的两个参考帧的图片顺序计数(poc)均大于或小于当前帧的poc时,两个参考帧的方向相同。否则,当一个参考帧的poc大于当前帧的poc而另一参考帧的poc小于当前帧的poc时,两个参考帧的方向不同。
[0190]
这里,在本公开的各种实施例中,“块”可以指预测块、编解码块、变换块或编解码单元(cu)。
[0191]
参考步骤1810,该设备可以是图5中的电子设备(530)或者图8中的视频解码器(810)。在一些实施方案中,该设备可以是图6中的编码器(620)中的解码器(633)。在其它实施方案中,该设备可以是图5中的电子设备(530)的一部分、图8中的视频解码器(810)的一部分,或者图6中的编码器(620)中的解码器(633)的一部分。已编码视频码流可以是图8中的已编码视频序列,或者图6或图7中的中间已编码数据。
[0192]
参考步骤1820,设备可以从已编码视频码流中提取当前帧中的当前块的帧间预测模式和联合增量运动矢量(mv)。当前块可以处于复合参考模式。帧间预测模式可以包括以下各项中的一个:near_near模式、new_nearmv模式、near_newmv模式或new_newmv模式。联合增量mv可以被称为mv差(mvd)。
[0193]
参考步骤1830,设备可以从已编码视频码流中提取指示第一参考帧的第一增量mv和第二参考帧的第二增量mv是否被联合发信号通知的标志。
[0194]
在一些一个或多个帧间预测模式的一些实施方案中,将标志编码在已编码视频码流中,并且设备可以从已编码视频码流中提取标志。
[0195]
在某些一个或多个帧间预测模式的一些实施方案中,不将标志编码在已编码视频码流中,并且设备可以基于默认值根据一个或多个帧间预测模型来导出标志。例如,当前块的帧间预测模式是near_nearmv;并且步骤1830可以包括将标志确定为默认值。在一些实施方案中,默认值为0,指示第一参考帧的第一增量mv和第二参考帧的第二增量mv未被联合发信号通知。
[0196]
在复合参考模式的一些实施方案中,可以将标志(可以被命名为joint_mvd_flag)发送到设备,以指示第一参考列表(参考列表0)和第二参考列表(参考列表1)的增量mv是否被联合发信号通知。
[0197]
在一些其它实施方案中,响应于标志(joint_mvd_flag)的值指示参考列表0和参考列表1的增量mv被联合发信号通知,仅一个联合增量mv(可以被命名为joint_delta_mv)被发信号通知并发送到解码器,并且可以从联合增量mv(joint_delta_mv)导出参考列表0的增量mv和参考列表1的增量mv。响应于标志(joint_mvd_flag)的值指示参考列表0的增量mv和参考列表1的增量mv未被联合发信号通知,可以基于帧间预测模式单独地发信号通知参考列表0和/或参考列表1的零个或一个或两个增量mv。
[0198]
在一些实施方案中,标志的值为0可以指示参考列表0和参考列表1的增量mv被联合发信号通知,并且仅发信号通知和发送一个联合增量mv;并且标志的值为1可以指示参考列表0和参考列表1的增量mv未被联合发信号通知,并且可以发信号通知和发送零个(或一个或两个)联合增量mv。反之亦然,在一些其它实施方案中,标志的值为1可以指示参考列表0和参考列表1的增量mv被联合发信号通知,并且仅发信号通知和发送一个联合增量mv;并且标志的值为0可以指示参考列表0和参考列表1的增量mv未被联合发信号通知,并且可以发信号通知和发送零个(或一个或两个)联合增量mv。
[0199]
参考步骤1840,响应于标志指示第一增量mv和第二增量mv被联合发信号通知,设备可以基于联合增量mv导出第一增量mv和第二增量mv。
[0200]
在一些实施方案中,当当前块的帧间预测模式是new_newmv并且标志(例如,joint_mvd_flag)指示参考列表0和参考列表1的增量mv被联合发信号通知时,可以基于第一参考帧和第二参考帧到当前帧的poc距离以及两个参考帧的方向从joint_delta_mv导出参考列表0和/或参考列表1的增量mv。
[0201]
在一些其它实施方案中,当前块的帧间预测模式是new_newmv;步骤1840可以包括将第一增量mv确定为联合增量mv,并且通过根据以下各项中的至少一者缩放联合增量mv来确定第二增量mv:第一参考帧与当前帧之间的第一图片顺序计数(poc)距离、第二参考帧与当前帧之间的第二poc距离,或第一参考帧和第二参考帧相对于当前帧的方向关系。
[0202]
在一些其它实施方案中,当前块的帧间预测模式是new_newmv;步骤1840可以包括确定第二增量mv为联合增量mv,并且通过根据以下各项中的至少一者缩放联合增量mv来确定第一增量mv:第一参考帧与当前帧之间的第一图片顺序计数(poc)距离、第二参考帧与当前帧之间的第二poc距离,或第一参考帧和第二参考帧相对于当前帧的方向关系。
[0203]
在一些实施例中,参考列表0(或列表1)中的增量mv可以总是被设置为等于joint_delta_mv,并且参考列表1(或列表0)中的增量mv可以根据参考帧到当前帧的poc距离和/或两个参考帧的方向从joint_delta_mv进行缩放。
[0204]
在一些其它实施方案中,当前块的帧间预测模式是new_newmv;步骤1840可以包括,响应于第一参考帧与当前帧之间的第一绝对poc距离大于第二参考帧与当前帧之间的第二绝对poc距离:确定第一增量mv为联合增量mv,并且通过根据以下各项中的至少一者缩放联合增量mv来确定第二增量mv:第一参考帧与当前帧之间的第一poc距离、第二参考帧与当前帧之间的第二poc距离,或第一参考帧和第二参考帧相对于当前帧的方向关系。
[0205]
在一些其它实施方案中,当前块的帧间预测模式是new_newmv;步骤1840可以包括,响应于第一参考帧与当前帧之间的第一绝对poc距离小于第二参考帧与当前帧之间的第二绝对poc距离:确定第二增量mv为联合增量mv,并且通过根据以下各项中的至少一者缩放联合增量mv来确定第一增量mv:第一参考帧与当前帧之间的第一poc距离、第二参考帧与当前帧之间的第二poc距离,或第一参考帧和第二参考帧相对于当前帧的方向关系。
[0206]
在一些实施例中,当参考列表0(或列表1)与当前帧之间的绝对poc距离大于参考列表1(或列表0)与当前帧之间的绝对poc距离时,参考列表0(或列表1)(其为具有较大绝对poc距离的一个)中的增量mv可以被设置为等于joint_delta_mv。参考列表1(或列表0)(其为具有较小绝对poc距离的另一个)中的增量mv可以根据参考帧到当前帧的poc距离和/或两个参考帧的方向从joint_delta_mv缩放。
[0207]
在一些其它实施方案中,当前块的帧间预测模式是new_newmv;并且步骤1840可以包括,响应于第一参考帧与当前帧之间的第一绝对poc距离等于第二参考帧与当前帧之间的第二绝对poc距离:确定第一增量mv为联合增量mv,响应于第一参考帧和第二参考帧相对于当前帧的方向关系相同:确定第二增量mv为联合增量mv,并且响应于第一参考帧和第二参考帧相对于当前帧的方向关系为相反:将第二增量mv确定为联合增量mv乘以-1。
[0208]
在一些实施例中,当参考列表1与当前帧之间的绝对poc距离与参考列表0与当前帧之间的绝对poc距离相同时,参考列表0中的增量mv可以被设置为等于joint_delta_mv。当两个参考帧的方向相同时,参考列表1中的增量mv也可以被设置为等于joint_delta_mv。否则,当两个参考帧的方向不同时,参考列表1的增量mv被设置为joint_delta_mv乘以-1。
[0209]
在本公开的各种实施例/实施方案中,根据以下各项中的至少一者缩放联合增量mv来获得第二增量mv:第一参考帧与当前帧之间的第一poc距离、第二参考帧与当前帧之间的第二poc距离,或第一参考帧和第二参考帧相对于当前帧的方向关系,该缩放可以包括线性缩放方法,即,缩放的增量mv的绝对值可以与第二poc距离除以第一poc距离的比值成比例,并且可以根据方向关系确定缩放的增量mv的符号。对于一个示例,当第一poc距离为4并且第二poc距离为8并且第一和第二参考帧相对于当前帧的方向关系是相同的方向时,通过将联合增量mv缩放/乘以因子2(=8/4)来获得第二增量mv;并且第二增量mv具有与联合增量mv相同的符号,因为方向关系是相同的方向。对于另一示例,当第一poc距离为3并且第二
poc距离为-9并且第一和第二参考帧相对于当前帧的方向关系是相反的方向时,通过将联合增量mv缩放/乘以因子-3(=-9/3)来获得第二增量mv;并且第二增量mv具有与联合增量mv相反的符号,因为方向关系是相反的方向。
[0210]
在一些其它实施方案中,当前块的帧间预测模式是new_nearmv;并且第二增量mv可以通过预定义权重来稍微调整。步骤1840可以包括:将第一增量mv确定为联合增量mv,并且通过根据以下各项中的至少一者缩放联合增量mv来确定第二增量mv:第一参考帧与当前帧之间的第一poc距离、第二参考帧与当前帧之间的第二poc距离、第一参考帧和第二参考帧相对于当前帧的方向关系,或预定义加权因子。
[0211]
在一些其它实施方案中,当前块的帧间预测模式是near_newmv;并且第一增量mv可以通过预定义权重来稍微调整。步骤1840可以包括:将第二增量mv确定为联合增量mv,并且通过根据以下各项中的至少一者缩放联合增量mv来确定第一增量mv:第一参考帧与当前帧之间的第一poc距离、第二参考帧与当前帧之间的第二poc距离、第一参考帧和第二参考帧相对于当前帧的方向关系,或预定义加权因子。
[0212]
在一些其它实施方案中,预定义加权因子是-1与1之间的分数。
[0213]
在一些其它实施方案中,以高级语法发信号通知预定义加权因子,该高级语法包括以下各项中的至少一者:序列参数集(sps)、视频参数集(vps)、图片参数集(pps)、图片头、图块头、切片头、帧头、编码树单元(ctu)头或超级块头。
[0214]
在一些实施例中,当当前块是new_near模式(或near_new模式),并且joint_mvd_flag指示参考列表0和参考列表1的增量mv被联合发信号通知时,可以将参考列表0(或列表1)的增量mv设置为等于joint_delta_mv,并且基于一个或多个已编码信息从joint_delta_mv缩放列表1(或列表0)的增量mv,该一个或多个已编码信息包括但不限于参考帧到当前帧的poc距离、两个参考帧的方向、两个mv的mv预测器之间的差和/或预定义加权因子w。在一些实施方案中,该预定义加权因子可以是-1与1之间的一个数字,例如1/2。在一些其它实施方案中,可以以高级语法发信号通知该预定义加权因子,该高级语法包括但不限于sps、vps、pps、图片头、图块头、切片头、帧头、ctu(或超级块)头。
[0215]
在本公开的各种实施例/实施方案中,根据以下各项中的至少一者缩放联合增量mv来获得经权重调整的增量mv:第一参考帧与当前帧之间的第一poc距离、第二参考帧与当前帧之间的第二poc距离、第一参考帧和第二参考帧相对于当前帧的方向关系,或预定义加权因子,该缩放可以包括线性缩放方法,即,缩放的增量mv的绝对值可以与第二poc距离除以第一poc距离的比值(并且然后乘以预定义加权因子)成比例。可以根据方向关系来确定缩放的增量mv的符号。对于一个示例,当第一poc距离为4并且第二poc距离为8并且第一和第二参考帧相对于当前帧的方向关系是相同的方向并且预定义加权因子为1/2时,通过将联合增量mv缩放/乘以总因子1来获得经权重调整的增量mv,该总因子1是根据因子2(=8/4)乘以权重因子1/2来计算的;并且经权重调整的增量mv具有与联合增量mv相同的符号,因为方向关系是相同的方向。对于另一示例,当第一poc距离为3并且第二poc距离为-9并且第一和第二参考帧相对于当前帧的方向关系是相反的方向并且预定义加权因子为1/2时,通过将联合增量mv缩放/乘以总因子-3/2来获得经权重调整的增量mv,该总因子-3/2是根据因子-3(=-9/3)乘以权重因子1/2来计算的。经权重调整的增量mv具有与联合增量mv相反的符号,因为方向关系是相反的方向。
[0216]
本公开中的实施例可以单独使用或以任何顺序组合使用。根据需要,本公开中的任何实施例中的任何步骤和/或操作可以以任何数量或顺序进行组合或布置。本公开的任何实施例中的两个或多个步骤和/或操作可以并行执行。此外,方法(或实施例)、编码器和解码器中的每一者可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)实施。在一个示例中,一个或多个处理器执行存储在非易失性计算机可读介质中的程序。本公开的实施例可以应用于亮度块或色度块。
[0217]
以上所描述的技术可以被实施为使用计算机可读指令并且物理地存储在一个或多个计算机可读介质中的计算机软件。例如,图19示出了适于实施所公开的主题的某些实施例的计算机系统(2000)。
[0218]
计算机软件可以使用任何合适的机器代码或计算机语言进行编码,机器代码或计算机语言可以通过汇编、编译、链接或类似机制来创建包括可以由一个或多个计算机中央处理单元(cpu)、图形处理单元(gpu)等直接或通过解释、微代码执行等执行的指令的代码。
[0219]
指令可以在各种类型的计算机或其部件上执行,包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等。
[0220]
图19所示的用于计算机系统(2000)的部件本质上是示例性的,并且不旨在对实施本公开的实施例的计算机软件的使用范围或功能性提出任何限制。部件的配置也不应被解释为对计算机系统(2000)的示例性实施例中所图示的任何一个部件或其组合具有任何依赖性或要求。
[0221]
计算机系统(2000)可以包括某些人机接口输入设备。此类人机接口输入设备可以响应于一个或多个人类用户通过例如触觉输入(诸如:击键、滑动、数据手套移动)、音频输入(诸如:语音、拍打)、视觉输入(诸如:手势)、嗅觉输入(未示出)的输入。人机接口设备还可以用于捕获不一定与人的有意识输入直接相关的某些介质,诸如音频(诸如:语音、音乐、环境声音)、图像(诸如:扫描图像、从静止图像照相机获得的摄影图像)、视频(诸如二维视频、包括立体视频的三维视频)。
[0222]
输入人机接口设备可以包括以下中的一个或多个(每种仅描绘了一个):键盘(2001)、鼠标(2002)、触控板(2003)、触摸屏(2010)、数据手套(未示出)、操纵杆(2005)、麦克风(2006)、扫描仪(2007)、照相机(2008)。
[0223]
计算机系统(2000)还可以包括某些人机接口输出设备。此类人机接口输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。此类人机接口输出设备可以包括触觉输出设备(例如触摸屏(2010)、数据手套(未示出)或操纵杆(2005)的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(诸如:扬声器(2009)、耳机(未描绘))、视觉输出设备(诸如屏幕(2010),包括crt屏幕、lcd屏幕、等离子屏幕、oled屏幕,其各自具有或不具有触摸屏输入能力,各自具有或不具有触觉反馈能力—其中一些能够通过诸如立体输出的方式输出二维视觉输出或多于三维输出;虚拟现实眼镜(未描绘)、全息显示器和烟雾罐(未描绘)),以及打印机(未描绘)。
[0224]
计算机系统(2000)还可以包括人类可访问的存储设备及其相关联的介质,诸如包括具有cd/dvd的cd/dvd rom/rw(2020)等介质(2021)的光学介质、拇指驱动器(2022)、可移动硬盘驱动器或固态驱动器(2023)、诸如磁带和软盘(未描绘)的传统磁性介质、诸如安全软件狗(未描绘)的基于专用rom/asic/pld的设备等。
[0225]
本领域技术人员还应当理解,结合当前公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它易失性信号。
[0226]
计算机系统(2000)还可以包括到一个或多个通信网络(2055)的接口(2054)。网络例如可以是无线的、有线的、光学的。网络还可以是本地的、广域的、城域的、车辆的和工业的、实时的、延迟容许型的等等。网络的示例包括诸如以太网的局域网、无线lan、包括gsm、3g、4g、5g、lte等的蜂窝网络、包括有线tv、卫星tv和地面广播tv的tv有线或无线广域数字网络、包括can总线的车辆的和工业的网络等。某些网络通常需要附接到某些通用数据端口或外围总线(2049)的外部网络接口适配器(诸如例如,计算机系统(2000)的usb端口);其它网络通常通过附接到如下所描述的系统总线而集成到计算机系统(2000)的核心中(例如以太网接口到pc计算机系统中或蜂窝网络接口到智能电话计算机系统中)。使用这些网络中的任何一个,计算机系统(2000)可以与其它实体进行通信。此类通信可以是单向的仅接收(例如,广播tv)、单向的仅发送(例如,canbus到某些canbus设备),或双向的,例如到使用局域数字网络或广域数字网络的其它计算机系统。可以在如上所描述的那些网络和网络接口中的每一个上使用某些协议和协议栈。
[0227]
上述人机接口设备、人类可访问的存储设备和网络接口可以附接到计算机系统(2000)的核心(2040)。
[0228]
核心(2040)可以包括一个或多个中央处理单元(cpu)(2041)、图形处理单元(gpu)(2042)、现场可编程门阵列(fpga)(2043)形式的专用可编程处理单元、用于某些任务的硬件加速器(2044)、图形适配器(2050)等。这些设备连同只读存储器(rom)(2045)、随机存取存储器(2046)、诸如内部非用户可访问硬盘驱动器、ssd等的内部大容量存储器(2047)可以通过系统总线(2048)连接。在一些计算机系统中,系统总线(2048)可以以一个或多个物理插头的形式访问,以使得能够通过附加cpu、gpu等进行扩展。外围设备可以直接或通过外围总线(2049)附接到核心的系统总线(2048)。在一个示例中,屏幕(2010)可以连接到图形适配器(2050)。外围总线的体系结构包括pci、usb等。
[0229]
cpu(2041)、gpu(2042)、fpga(2043)和加速器(2044)可以执行某些指令,这些指令的组合可以构成上述计算机代码。该计算机代码可以存储在rom(2045)或ram(2046)中。过渡数据也可以存储在ram(2046)中,而永久数据可以存储在例如内部大容量存储器(2047)中。可以通过使用高速缓存存储器来启用对任何存储器设备的快速存储和检索,高速缓存存储器可以与一个或多个cpu(2041)、gpu(2042)、大容量存储器(2047)、rom(2045)、ram(2046)等紧密相关联。
[0230]
计算机可读介质可以在其上具有用于执行各种计算机实施的操作的计算机代码。介质和计算机代码可以是为了本公开的目的而专门设计和构建的那些,或者它们可以是计算机软件领域的技术人员公知和可用的类型。
[0231]
作为非限制性示例,具有体系结构的计算机系统(2000),并且特别是核(2040)可以提供作为一个或多个处理器(包括cpu、gpu、fpga、加速器等)执行体现在一个或多个有形的计算机可读介质中的软件的结果的功能性。此类计算机可读介质可以是与如上所介绍的用户可访问的大容量存储器相关联的介质,以及具有非易失性性质的核心(2040)的某些存储器,诸如核心内部大容量存储器(2047)或rom(2045)。实施本公开的各种实施例的软件可以存储在此类设备中并由核(2040)执行。根据特定需要,计算机可读介质可以包括一个或
多个存储器设备或芯片。软件可以使核心(2040)并且特别是其中的处理器(包括cpu、gpu、fpga等)执行本文描述的特定过程或特定过程的特定部分,包括定义存储在ram(2046)中的数据结构并且根据由软件定义的过程修改此类数据结构。另外或作为替代,计算机系统可以提供作为逻辑硬连线的结果或以其它方式体现在电路(例如:加速器(2044))中的功能性,其可以代替软件或与软件一起操作以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可以包括存储用于执行的软件的电路(诸如集成电路(ic))、体现用于执行的逻辑的电路,或两者。本公开包括硬件和软件的任何合适的组合。
[0232]
虽然已经参考说明性实施例描述了特定发明,但是该描述并不意味着限制。根据该描述,本发明的说明性实施例和附加实施例的各种修改对于本领域普通技术人员将是显而易见的。本领域技术人员将容易地认识到,在不脱离本发明的精神和范围的情况下,可以对在本文中图示和描述的示例性实施例进行这些和各种其它修改。因此,设想所附权利要求书将涵盖任何此类修改和替代实施例。图示中的某些比例可能被夸大,而其它比例可能被最小化。因此,本公开和附图被认为是说明性的而非限制性的。
[0233]
以下是缩写词列表,其中一些可能出现在本公开中:
[0234]
jem:联合开发模型(joint exploration model)
[0235]
vvc:通用视频编码(versatile video coding)
[0236]
bms:基准集合(benchmark set)
[0237]
mv:运动矢量(motion vector)
[0238]
hevc:高效视频编码(high efficiency video coding)
[0239]
sei:辅助增强信息(supplementary enhancement information)
[0240]
vui:视频可用性信息(video usability information)
[0241]
gops:图片群组(groups of pictures)
[0242]
tus:变换单元(transform units)
[0243]
pus:预测单元(prediction units)
[0244]
ctus:编码树单元(coding tree units)
[0245]
ctbs:编码树块(coding tree blocks)
[0246]
pbs:预测块(prediction blocks)
[0247]
hrd:假想参考解码器(hypothetical reference decoder)
[0248]
snr:信噪比(signal noise ratio)
[0249]
cpus:中央处理单元(central processing units)
[0250]
gpus:图形处理单元(graphics processing units)
[0251]
crt:阴极射线管(cathode ray tube)
[0252]
lcd:液晶显示(liquid-crystal display)
[0253]
oled:有机发光二极管(organic light-emitting diode)
[0254]
cd:光盘(compact disc)
[0255]
dvd:数字化视频光盘(digital video disc)
[0256]
rom:只读存储器(read-only memory)
[0257]
ram:随机存取存储器(random access memory)
[0258]
asic:专用集成电路(application-specific integrated circuit)
[0259]
pld:可编程逻辑设备(programmable logic device)
[0260]
lan:局域网(local area network)
[0261]
gsm:全球移动通信系统(global system for mobile communications)
[0262]
lte:长期演进(long-term evolution)
[0263]
canbus:控制器局域网络总线(controller area network bus)
[0264]
usb:通用串行总线(universal serial bus)
[0265]
pci:外围设备互连(peripheral component interconnect)
[0266]
fpga:现场可编程门阵列(field programmable gate areas)
[0267]
ssd:固态驱动器(solid-state drive)
[0268]
ic:集成电路(integrated circuit)
[0269]
hdr:高动态范围(high dynamic range)
[0270]
sdr:标准动态范围(standard dynamic range)
[0271]
jvet:联合视频开发组(joint video exploration team)
[0272]
mpm:最可能模式(most probable mode)
[0273]
waip:宽角度帧内预测(wide-angle intra prediction)
[0274]
cu:编码单元(coding unit)
[0275]
pu:预测单元(prediction unit)
[0276]
tu:变换单元(transform unit)
[0277]
ctu:编码树单元(coding tree unit)
[0278]
pdpc:位置相关预测组合(position dependent prediction combination)
[0279]
isp:帧内子分区(intra sub-partitions)
[0280]
sps:序列参数设置(sequence parameter setting)
[0281]
pps:图片参数集(picture parameter set)
[0282]
aps:自适应参数集(adaptation parameter set)
[0283]
vps:视频参数集(video parameter set)
[0284]
dps:解码参数集(decoding parameter set)
[0285]
alf:自适应环路滤波器(adaptive loop filter)
[0286]
sao:取样自适应偏移(sample adaptive offset)
[0287]
cc-alf:交叉分量自适应环路滤波器(cross-component adaptive loop filter)
[0288]
cdef:约束方向增强滤波器(constrained directional enhancement filter)
[0289]
ccso:交叉分量取样偏移(cross-component sample offset)
[0290]
lso:局部取样偏移(local sample offset)
[0291]
lr:环路恢复滤波器(loop restoration filter)
[0292]
av1:aom媒体视频1(aomedia video 1)
[0293]
av2:aom媒体视频2(aomedia video 2)
[0294]
mvd:运动矢量差(motion vector difference)
[0295]
cfl:从亮度预测色度(chroma from luma)
[0296]
sdt:半解耦树(semi decoupled tree)
[0297]
sdp:半解耦分区(semi decoupled partitioning)
[0298]
sst:半分离树(semi separate tree)
[0299]
sb:超级块(super block)
[0300]
ibc(or intrabc):帧内块复制(intra block copy)
[0301]
cdf:累积密度函数(cumulative density function)
[0302]
scc:屏幕内容编码(screen content coding)
[0303]
gbi:广义双向预测(generalized bi-prediction)
[0304]
bcw:具有编码单元级别权重的双向预测(bi-prediction with cu-level weights)
[0305]
ciip:帧内帧间联合预测(combined intra-inter prediction)
[0306]
poc:图片顺序计数(picture order count)
[0307]
rps:参考图片集(reference picture set)
[0308]
dpb:已解码图片缓冲器(decoded picture buffer)
[0309]
mmvd:具有运动矢量差的合并模式(merge mode with motion vector difference)

技术特征:
1.一种对帧间预测视频块进行解码的方法,其特征在于,所述方法包括:由设备接收已编码视频码流,所述设备包括存储指令的存储器和与所述存储器通信的处理器;由所述设备从所述已编码视频码流中提取当前帧中的当前块的帧间预测模式和联合增量运动矢量(mv)(joint_delta_mv);由所述设备从所述已编码视频码流中提取标志(joint_mvd_flag),所述标志(joint_mvd_flag)指示参考列表0中的第一参考帧的第一增量mv和参考列表1中的第二参考帧的第二增量mv是否被联合发信号通知;响应于所述标志指示所述第一增量mv和所述第二增量mv被联合发信号通知,由所述设备基于所述联合增量mv导出所述第一增量mv和所述第二增量mv;以及由所述设备基于所述第一增量mv和所述第二增量mv,对所述当前帧中的所述当前块进行解码。2.根据权利要求1所述的方法,其特征在于:所述当前块的所述帧间预测模式是new_newmv;并且所述基于所述联合增量mv导出所述第一增量mv和所述第二增量mv包括:确定所述第一增量mv为所述联合增量mv,以及通过根据以下各项中的至少一者缩放所述联合增量mv来确定所述第二增量mv:所述第一参考帧与所述当前帧之间的第一图片顺序计数(poc)距离,所述第二参考帧与所述当前帧之间的第二poc距离,或所述第一参考帧和所述第二参考帧相对于所述当前帧的方向关系。3.根据权利要求1所述的方法,其特征在于:所述当前块的所述帧间预测模式是new_newmv;并且所述基于所述联合增量mv导出所述第一增量mv和所述第二增量mv包括:确定所述第二增量mv为所述联合增量mv,以及通过根据以下各项中的至少一者缩放所述联合增量mv来确定所述第一增量mv:所述第一参考帧与所述当前帧之间的第一图片顺序计数(poc)距离,所述第二参考帧与所述当前帧之间的第二poc距离,或所述第一参考帧和所述第二参考帧相对于所述当前帧的方向关系。4.根据权利要求1所述的方法,其特征在于:所述当前块的所述帧间预测模式是new_newmv;并且所述基于所述联合增量mv导出所述第一增量mv和所述第二增量mv包括:响应于所述第一参考帧与所述当前帧之间的第一绝对poc距离大于所述第二参考帧与所述当前帧之间的第二绝对poc距离:确定所述第一增量mv为所述联合增量mv,并且通过根据以下各项中的至少一者缩放所述联合增量mv来确定所述第二增量mv:所述第一参考帧与所述当前帧之间的第一poc距离,所述第二参考帧与所述当前帧之间的第二poc距离,或所述第一参考帧和所述第二参考帧相对于所述当前帧的方向关系。5.根据权利要求1所述的方法,其特征在于:
所述当前块的所述帧间预测模式是new_newmv;并且所述基于所述联合增量mv导出所述第一增量mv和所述第二增量mv包括:响应于所述第一参考帧与所述当前帧之间的第一绝对poc距离小于所述第二参考帧与所述当前帧之间的第二绝对poc距离:确定所述第二增量mv为所述联合增量mv,并且通过根据以下各项中的至少一者缩放所述联合增量mv来确定所述第一增量mv:所述第一参考帧与所述当前帧之间的第一poc距离,所述第二参考帧与所述当前帧之间的第二poc距离,或所述第一参考帧和所述第二参考帧相对于所述当前帧的方向关系。6.根据权利要求1所述的方法,其特征在于:所述当前块的所述帧间预测模式是new_newmv;并且所述基于所述联合增量mv导出所述第一增量mv和所述第二增量mv包括:响应于所述第一参考帧与所述当前帧之间的第一绝对poc距离等于所述第二参考帧与所述当前帧之间的第二绝对poc距离:确定所述第一增量mv为所述联合增量mv,响应于所述第一参考帧和所述第二参考帧相对于所述当前帧的方向关系相同:确定所述第二增量mv为所述联合增量mv,并且响应于所述第一参考帧和所述第二参考帧相对于所述当前帧的所述方向关系相反:确定所述第二增量mv为所述联合增量mv乘以-1。7.根据权利要求1所述的方法,其特征在于:所述当前块的所述帧间预测模式是new_nearmv;并且所述基于所述联合增量mv导出所述第一增量mv和所述第二增量mv包括:确定所述第一增量mv为所述联合增量mv,以及通过根据以下各项中的至少一者缩放所述联合增量mv来确定所述第二增量mv:所述第一参考帧与所述当前帧之间的第一poc距离,所述第二参考帧与所述当前帧之间的第二poc距离,所述第一参考帧和所述第二参考帧相对于所述当前帧的方向关系,或预定义加权因子。8.根据权利要求1所述的方法,其特征在于:所述当前块的所述帧间预测模式是near_newmv;并且所述基于所述联合增量mv导出所述第一增量mv和所述第二增量mv包括:确定所述第二增量mv为所述联合增量mv,以及通过根据以下各项中的至少一者缩放所述联合增量mv来确定所述第一增量mv:所述第一参考帧与所述当前帧之间的第一poc距离,所述第二参考帧与所述当前帧之间的第二poc距离,所述第一参考帧和所述第二参考帧相对于所述当前帧的方向关系,或预定义加权因子。9.根据权利要求8所述的方法,其特征在于:所述预定义加权因子是-1与1之间的分数。
10.根据权利要求8所述的方法,其特征在于:以高级语法发信号通知所述预定义加权因子,所述高级语法包括以下各项中的至少一者:序列参数集(sps)、视频参数集(vps)、图片参数集(pps)、图片头、图块头、切片头、帧头、编码树单元(ctu)头或超级块头。11.根据权利要求1所述的方法,其特征在于:所述当前块的所述帧间预测模式是near_nearmv;并且所述提取所述标志,所述标志指示所述第一参考帧的所述第一增量mv和所述第二参考帧的所述第二增量mv是否被联合发信号通知,包括:将所述标志确定为默认值。12.根据权利要求11所述的方法,其特征在于:所述默认值为0,指示所述第一参考帧的所述第一增量mv和所述第二参考帧的所述第二增量mv未被联合发信号通知。13.一种用于对帧间预测视频块进行解码的装置,其特征在于,所述装置包括:存储器,存储有指令;以及处理器,与所述存储器通信,其中当所述处理器执行所述指令时,所述处理器被配置为使所述装置执行根据权利要求1至12中任一项所述的方法。14.一种非易失性计算机可读存储介质,存储有指令,其特征在于,当所述指令由处理器执行时,所述指令被配置为使所述处理器执行根据权利要求1至12中任一项所述的方法。

技术总结
本公开涉及用于帧间预测视频块的运动矢量差的编码和解码。公开了用于对视频流的帧间预测视频块进行解码的示例。该方法包括从所述已编码视频码流中,提取当前帧中的当前块的帧间预测模式和联合增量运动矢量(MV);从所述已编码视频码流中提取标志,所述标志指示参考列表0中的第一参考帧的第一增量MV和参考列表1中的第二参考帧的第二增量MV是否被联合发信号通知;响应于所述标志指示所述第一增量MV和所述第二增量MV被联合发信号通知,基于所述联合增量MV导出所述第一增量MV和所述第二增量MV;以及基于所述第一增量MV和所述第二增量MV,对所述当前帧中的所述当前块进行解码。对所述当前帧中的所述当前块进行解码。对所述当前帧中的所述当前块进行解码。


技术研发人员:赵亮 赵欣 刘杉
受保护的技术使用者:腾讯美国有限责任公司
技术研发日:2022.04.15
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐