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

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

运动矢量差的联合编码
1.交叉引用
2.本技术基于并要求2021年9月15日递交的美国临时专利申请号no.63/261,252的优先权的权益,该美国临时专利申请通过引用以其全文结合到本文。本技术还基于并要求2021年11月22日递交的美国临时专利申请号no.63/281,825的优先权的权益,该美国临时专利申请通过引用以其全文结合到本文。本技术还基于并要求2022年9月1日递交的美国非临时专利申请号no.17/901,043的优先权的权益,该美国临时专利申请通过引用以其全文结合到本文。
技术领域
3.本公开总体上涉及视频编码,具体地,涉及用于提供用于利用运动矢量差的自适应分辨率进行运动矢量差的联合编码的信令方案的方法和系统。


背景技术:

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


技术实现要素:

23.本公开描述了用于视频编码和/或解码的方法、装置和计算机可读存储介质的各种实施例。
24.根据一方面,本公开的实施例提供了一种用于对视频比特流的当前视频块进行解码的方法。方法包括由设备接收已编码视频比特流。设备包括存储指令的存储器和与所述存储器通信的处理器。方法还包括:从已编码视频比特流确定当前视频块的标志,其中,标志指示是否将联合运动矢量差mvd编码应用于当前视频块;以及响应于标志指示联合mvd编码应用于当前视频块:由设备从已编码视频比特流获取当前视频块的联合mvd,由设备基于联合mvd导出当前视频块的mvd,以及由设备基于联合mvd和所导出的mvd对当前视频块进行解码。
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.一般来说,术语可以至少部分地从上下文中的用法来理解。例如,本文使用的如“和”、“或”或“和/或”的术语可以包括各种含义,这些含义可以至少部分取决于使用这些术语的上下文。通常,“或”如果用于关联如a、b或c之类的列表,则意在表示a、b和c(此处用于包含意义)以及a、b或c(此处用于排斥意义)。此外,本文使用的术语“一个或多个”或“至少一个”,至少部分取决于上下文,可用于以单数意义描述任何特征、结构或特征,或可用于以复数意义描述特征、结构或特征的组合。类似地,如“一”、“一个”或“该”的术语也可以被理解为传达单数用法或传达复数用法,这至少部分取决于上下文。此外,术语“基于”或“由
……
确定”可理解为不一定意在传达排他性的因素集,而是可以允许存在不一定明确描述的其他因素,这也至少部分地取决于上下文。图3示出了根据本公开的实施例的通信系统(300)的简化框图。通信系统(300)包括能够例如通过网络(350)彼此通信的多个终端装置。例如,通信系统(300)包括通过网络(350)互连的终端装置对(310)和(320)。在图3的示例中,第一终端装置对(310)和(320)可以执行数据的单向传输。例如,终端装置(310)可以对(例如,由终端装置(310)捕获的视频图片流的)视频数据进行编码,以通过网络(350)传输到另一终端装置(320)。已编码视频数据可以以一个或多个已编码视频比特流的形式进行传输。终端装置(320)可以从网络(350)接收已编码视频数据,对已编码视频数据进行解码以恢复视频图片,并根据恢复的视频数据显示视频图片。可以在媒体服务应用等中实施单向数据传输。
51.在另一示例中,通信系统(300)包括执行已编码视频数据的双向传输的第二终端装置对(330)和(340),该双向传输可例如在视频会议期间实施。对于双向数据传输,在一示
例中,终端装置(330)和终端装置(340)中的每个终端装置可对(例如由终端装置采集的视频图片流的)视频数据进行编码,以通过网络(350)传输到终端装置(330)和终端装置(340)中的另一终端装置。终端装置(330)和终端装置(340)中的每个终端装置还可接收由终端装置(330)和终端装置(340)中的另一终端装置传输的已编码视频数据,且可对该已编码视频数据进行解码以恢复视频图片,且可根据恢复的视频数据在可访问的显示装置上显示视频图片。
52.在图3的示例中,终端装置(310)、(320)(330)和(340)可被实现为服务器、个人计算机和智能电话,但本公开的基本原理的适用性可不限于此。本公开的实施例可以在台式计算机、膝上型计算机、平板计算机、媒体播放器、可穿戴计算机、专用视频会议设备和/或类似设备中实现。网络(350)表示在终端装置(310)、(320)、(330)和(340)之间传送已编码视频数据的任何数量或类型的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(350)可以在电路交换、分组交换和/或其他类型的信道中交换数据。代表性网络包括电信网络、局域网、广域网和/或因特网。出于本讨论的目的,除非在本文中明确解释,否则网络(350)的体系结构和拓扑对于本公开的操作可能是不重要的,
53.作为所公开的主题的应用的示例,图4示出了视频编码器和视频解码器在流式传输环境中的放置方式。所公开的主题可同等地适用于其它视频应用,包括例如视频会议、数字tv广播、游戏、虚拟现实、在包括cd、dvd、存储棒等的数字介质上存储压缩视频等等。
54.视频流系统可以包括视频采集子系统(413),该视频采集子系统(413)可包括如数码相机的视频源(401),该视频源(401)用于创建未压缩的视频图片或图像流(402)。在示例中,视频图片流(402)包括由视频源401的数码相机录制的样本。相较于已编码视频数据(404)(或已编码视频比特流),被描绘为粗线以强调高数据量的视频图片流(402)可由电子装置(420)处理,该电子装置(420)包括耦接到视频源(401)的视频编码器(403)。视频编码器(403)可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开的主题的各方面。相较于未压缩的视频图片流(402),被描绘为细线以强调较低数据量的已编码视频数据(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的上下文中以及其他视频编码标准。
55.可以理解的是,电子设备(420)和电子设备(430)可以包括其他组件(未示出)。例如,电子装置(420)可以包括视频解码器(未示出),以及电子装置(430)可以包括视频编码器(未示出)。
56.图5示出了根据以下本公开的任意实施例的视频解码器(510)的框图。视频解码器(510)可包括在电子装置(530)中。电子装置(530)可包括接收器(531)(例如接收电路)。视频解码器(510)可用于代替图4的示例中的视频解码器(410)。
57.接收机(531)可以接收要由视频解码器(510)解码的一个或多个编码视频序列。在相同或另一实施例中,可以一次解码一个已编码视频序列,其中每个已编码视频序列的解码独立于其他已编码视频序列。每个视频序列可以与多个视频帧或图像相关联。可从信道(501)接收已编码视频序列,该信道可以是通向存储已编码视频数据的存储装置的硬件/软件链路或发送已编码视频数据的流源(streaming source)。接收器(531)可接收可转发到它们各自的处理电路(未描绘)的已编码视频数据以及其它数据,例如,已编码音频数据和/或辅助数据流。接收器(531)可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器(515)可设置在接收器(531)与熵解码器/解析器(520)(此后称为“解析器(520)”)之间。在某些应用中,缓冲存储器(515)可实施为视频解码器(510)的一部分。在其他应用中,该缓冲存储器(515)可设置在视频解码器(510)(未描绘)外部且与之分离。依然在其他应用中,在视频解码器(510)的外部可设置缓冲存储器(未描绘)以为了例如防止网络抖动的目的,且在视频解码器(510)的内部可以有另一缓冲存储器(515)以例如处理播放定时。当接收器(531)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,可能不需要缓冲存储器(515),或可以将该缓冲存储器做得较小。为了在尽力分组网络(例如,因特网)上使用,可能需要足够大小的缓冲存储器(515),并且其大小可以相对较大。这种缓冲存储器可以用自适应大小来实现,并且可以至少部分地在视频解码器(510)之外的操作系统或类似元件(未示出)中实现。
58.视频解码器(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)还可从已编码视频序列提取信息,例如,变换系数(例如,傅里叶变换系数)、量化器参数值、运动矢量等等。
59.解析器(520)可以对从缓冲存储器(515)接收的视频序列执行熵解码/解析操作,从而创建符号(521)。
60.取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号(521)的重建可以涉及多个不同的处理或功能单元。涉及的单元以及涉及方式可由解析器(520)从已编码视频序列解析的子群控制信息来
控制。为了简洁起见,未描绘解析器(520)与下文的多个处理或功能单元之间的此类子群控制信息流。
61.除已经提及的功能块以外,视频解码器(510)可以在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施方式中,这些功能单元中的许多功能单元彼此紧密交互并且可以至少部分地彼此集成。然而,出于清楚地描述所公开的主题的各种功能的目的,概念上细分成功能单元在下面的公开中采用。
62.第一单元可以包括缩放器/逆变换单元(551)。缩放器/逆变换单元(551)可以从解析器(520)接收作为符号(521)的量化变换系数以及控制信息,包括指示使用哪种逆变换类型、块大小、量化因子/参数、量化缩放矩阵等的信息作为符号(521)。缩放器/逆变换单元(551)可输出包括样本值的块,该样本值可输入到聚合器(555)中。
63.在一些情况下,缩放器/逆变换(551)的输出样本可以属于帧内编码块;即:不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测信息可以由帧内图片预测单元(552)提供。在一些情况下,帧内图片预测单元(552)可以使用已重建的周围块信息以及存储在当前图片缓冲器(558)的块信息生成大小和形状与正在重建的块相同的块。例如,当前图片缓冲器(558)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些实施方式中,聚合器(555)可以基于每个样本,将帧内预测单元(552)生成的预测信息添加到由缩放器/逆变换单元(551)提供的输出样本信息中。
64.在其他情况下,缩放器/逆变换单元(551)的输出样本可以属于帧间编码的和潜在运动补偿块。在这种情况下,运动补偿预测单元(553)可以访问参考图片存储器(557)以提取用于图片帧间预测的样本。在根据属于块的符号(521)对所提取的样本进行运动补偿之后,这些样本可以由聚合器(555)添加到缩放器/逆变换单元(551)的输出(单元551的输出可以称为残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(553)从参考图片存储器(557)内的地址获取预测样本可受到运动矢量控制,且该运动矢量以符号(521)的形式而供运动补偿预测单元(553)使用,符号(521)可以具有例如x、y分量(移位)和参考图片分量(时间)。运动补偿还可以包括当使用子样本精确运动矢量时,从参考图片存储器(557)提取的样本值的内插,以及还可以与运动矢量预测机制相关联等。
65.聚合器(555)的输出样本可经受环路滤波器单元(556)中的各种环路滤波技术。视频压缩技术可包括环路内滤波器技术,该环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频码比特流)中并且作为来自解析器(520)的符号(521)可用于环路滤波器单元(556)的参数,然而,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。几种类型的环路滤波器可以以各种顺序被包括作为环路滤波器单元556的一部分,这将在下面进一步详细描述。
66.环路滤波器单元(556)的输出可以是样本流,该样本流可输出到渲染装置(512)以及存储在参考图片存储器(557)中,以用于后续的帧间图片预测。
67.一旦完全重建,某些已编码图片就可用作参考图片以用于将来的图片帧间预测。举例来说,一旦对应于当前图片的已编码图片被完全重建,且已编码图片(通过例如解析器(520))被识别为参考图片,则当前图片缓冲器(558)可变为参考图片存储器(557)的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。
68.视频解码器(510)可根据例如itu-t h.265建议书标准中采用的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体来说,配置文件可以从视频压缩技术或标准中的所有可用工具中选择某些工具,作为在该配置文件下可用的唯一工具。对于符合标准,已编码视频序列的复杂度可以处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(hypothetical reference decoder,hrd)规范和在已编码视频序列中用信号表示的hrd缓冲器管理的元数据来进一步限定。
69.在一些示例实施例中,接收器(531)可连同已编码视频一起接收附加(冗余)数据。该附加数据可以被包括作为已编码视频序列的一部分。该附加数据可由视频解码器(510)使用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,snr)增强层、冗余条带、冗余图片、前向纠错码等形式。
70.图6示出了根据本公开的示例实施例的视频编码器(603)的框图。视频编码器(603)可包括在电子装置(620)中。电子装置(620)可进一步包括传输器(640)(例如传输电路)。视频编码器(603)可用于代替图4的示例中的视频编码器(403)。
71.视频编码器(603)可从视频源(601)(并非图6的示例中的电子装置(620)的一部分)接收视频样本,该视频源可采集将由视频编码器(603)编码的视频图像。在另一示例中,视频源(601)可实施为电子装置(620)的一部分。
72.视频源(601)可提供将由视频编码器(603)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可具有任何合适位深度(例如:8位、10位、12位
……
)、任何色彩空间(例如,bt.601ycrcb、rgb、xyz
……
)和任何合适采样结构(例如ycrcb 4:2:0、ycrcb 4:4:4)。在媒体服务系统中,视频源(601)可以是能够存储先前已准备的视频的存储装置。在视频会议系统中,视频源(601)可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片或图像,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的采样结构、色彩空间等,每个像素可包括一个或多个样本。本领域的普通技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。
73.根据一些示例实施例,视频编码器(603)可实时或在由应用所要求的任何其它时间约束下,对源视频序列的图片进行编码并压缩成已编码视频序列(643)。施行适当的编码速度构成控制器(650)的一个功能。在一些实施例中,如下所述,控制器(650)可以在功能性地耦合到其他功能单元并控制其他功能单元。为了简洁起见,图中未描绘耦接。由控制器(650)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值
……
)、图片大小、图片群组(group of pictures,gop)布局、最大运动矢量搜索范围等。控制器(650)可被配置为具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(603)。
74.在一些示例实施例中,视频编码器(603)可以被配置为在编码环路中进行操作。作为简单的描述,在示例中,编码环路可包括源编码器(630)(例如,负责基于待编码的输入图片和一个(或多个)参考图片创建符号,例如符号流)和嵌入于视频编码器(603)中的(本地)
解码器(633)。即使嵌入式解码器633在没有熵编码的情况下处理由源编码器630编码的视频流,解码器(633)也以与(远程)解码器将创建的方式类似的方式重建符号以创建样本数据(因为在所公开主题中考虑的视频压缩技术中,熵编码中的符号和已编码视频比特流之间的任何压缩可以是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(634)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(634)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性的基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)用于提高编码质量。
[0075]“本地”解码器(633)的操作可与例如已在上文结合图5详细描述的视频解码器(510)的“远程”解码器的操作相同。然而,另外简要参考图5,当符号可用且熵编码器(645)和解析器(520)可能够无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器(515)和解析器(520)在内的视频解码器(510)的熵解码部分,可能无法完全在编码器的本地解码器(633)中实施。
[0076]
此时可以观察到,除可仅存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于这个原因,所公开的主题有时可侧重于解码器操作,其与编码器的解码部分有关。由于编码器技术与全面地描述的解码器技术互逆,因此可简化编码器技术的描述。在下文提供仅在某些区域或方面中更详细的描述。
[0077]
在操作期间,在一些示例实施方式中,源编码器(630)可执行运动补偿预测编码,参考来自视频序列中被指定为“参考图片”的一个或多个先前已编码图片,该运动补偿预测编码对输入图片进行预测性编码。以此方式,编码引擎(632)对输入图片的像素块与一个(或多个)参考图片的像素块之间颜色信道的差异(或残差(residue))进行编码,该参考图片可被选作该输入图片的预测参考。术语“残差”及其形容词形式“残差的”可以互换使用。
[0078]
本地视频解码器(633)可以基于源编码器(630)创建的符号,对可指定为参考图片的图片的已编码视频数据进行解码。编码引擎(632)的操作可有利地为有损过程。当已编码视频数据可在视频解码器(图6中未示)处被解码时,已重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(633)复制解码过程,该解码过程可由视频解码器对参考图片执行,且可使重建的参考图片存储在参考图片高速缓存(634)中。以此方式,视频编码器(603)可在本地存储重建参考图片的副本,该副本与将由远端(远程)视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。
[0079]
预测器(635)可针对编码引擎(632)执行预测搜索。也就是说,对于要编码的新图片,预测器(635)可在参考图片存储器(634)中搜索可作为该新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(635)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,如由预测器(635)获得的搜索结果所确定的那样,输入图片可具有从参考图片存储器(634)中存储的多个参考图片取得的预测参考。
[0080]
控制器(650)可以管理源编码器(630)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
[0081]
可以在熵编码器(645)中对所有上述功能单元的输出进行熵编码。熵编码器(645)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将该符号变换成已编码视频序列。
[0082]
传输器(640)可缓冲由熵编码器(645)创建的已编码视频序列,从而为通过通信信道(660)进行传输做准备,该通信信道可以是通向将存储已编码视频数据的存储装置的硬件/软件链路。传输器(640)可将来自视频编码器(603)的已编码视频数据与要传输的其它数据合并,该其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。
[0083]
控制器(650)可以管理视频编码器(603)的操作。在编码期间,控制器(650)可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种图片类型:
[0084]
帧内图片(i图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(independent decoder refresh,“idr”)图片。本领域的普通技术人员了解i图片的变体及其相应的应用和特征。
[0085]
预测性图片(p图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
[0086]
双向预测性图片(b图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。
[0087]
源图片通常可在空间上细分成多个样本编码块(例如,4
×
4、8
×
8、4
×
8或16
×
16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测性编码,该其它块由应用于块的相应图片的编码分配来确定。例如,i图片的块可进行非预测性编码,或该块可参考同一图片的已编码块来进行预测性编码(空间预测或帧内预测)。p图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时间域预测进行预测性编码。b图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时间预测进行预测性编码。为了其他目的,源图片或中间处理的图片可以被细分成其他类型的块。如下面进一步详细描述的,编码块和其他类型的块的划分可以遵循或不遵循相同的方式。
[0088]
视频编码器(603)可根据例如itu-t h.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(603)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所使用的视频编码技术或标准指定的语法。
[0089]
在一些示例实施例中,传输器(640)可在传输已编码的视频时传输附加数据。源编码器(630)可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/snr增强层、冗余图片和条带等其它形式的冗余数据、sei消息、vui参数集片段等。
[0090]
采集到的视频可作为呈时间序列的多个源图片(视频图片)。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的时间或其它相关性。例如,可以将正在编码/解码的特定图片分割成块,正在编码/解码的特定图片被称作当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称作运动矢量的矢量对当前图片中的块进行编码。该运动矢量指向参
考图片中的参考块,且在使用多个参考图片的情况下,该运动矢量可具有识别参考图片的第三维度。
[0091]
在一些示例实施例中,双向预测技术可用于帧间图片预测。根据这种双向预测技术,使用两个参考图片,例如按解码次序都在视频中的当前图片之前(但按显示次序可能分别是过去和将来)的第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。可通过第一参考块和第二参考块的组合来联合预测该块。
[0092]
此外,合并模式技术可用于帧间图片预测中以改善编码效率。
[0093]
根据本公开的一些示例实施例,例如帧间图片预测和帧内图片预测的预测以块为单位执行。例如,将视频图片序列中的图片分割成编码树单元(coding tree unit,ctu)以用于压缩,图片中的ctu具有相同大小,例如64
×
64像素、32
×
32像素或16
×
16像素。一般来说,ctu可包括三个编码树块(coding tree block,ctb):一个亮度ctb和两个色度ctb。可将每个ctu递归地以四叉树拆分为一个或多个编码单元(cu)。例如,可将64
×
64像素的ctu拆分为一个64
×
64像素的cu,或4个32
×
32像素的cu。32
×
32块中的一个或多个中每一个可以被进一步分割成4个16
×
16像素的cu。在一些示例实施例中,在编码期间可以分析每个cu以在各自预测类型中确定用于cu的预测类型,例如帧间预测类型或帧内预测类型。取决于时间和/或空间可预测性,可将cu分割为一个或多个预测单元(pu)。通常,每个pu包括亮度预测块(prediction block,pb)和两个色度pb。在实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。可以以各种空间图案执行将cu分割成pu(或不同颜色通道的pb)。例如,亮度或色度pb可以包括如8
×
8像素、16
×
16像素、8
×
16像素、16
×
8样本等的样本的值(例如,亮度值)的矩阵。
[0094]
图7示出了根据本公开的另一示例实施例的视频编码器(703)的图。视频编码器(703)被配置为接收视频图片序列中的当前视频图片内的样本值的处理块(例如预测块),且将该处理块编码到作为已编码视频序列的一部分的已编码图片中。示例视频编码器(703)可用于代替图4的示例中的视频编码器(403)。
[0095]
例如,视频编码器(703)接收用于处理块的样本值的矩阵,该处理块为例如8
×
8样本的预测块等。然后,视频编码器(703)使用例如率失真优化(rate-distortion optimization,rdo)来确定是否使用帧内模式、帧间模式或双向预测模式来最佳地编码该处理块。当在帧内模式中确定待编码的处理块时,视频编码器(703)可使用帧内预测技术以将处理块编码到已编码图片中;且当在帧间模式或双向预测模式中确定待编码的处理块时,视频编码器(703)可分别使用帧间预测或双向预测技术将处理块编码到已编码图片中。在一些示例实施例中,合并模式可用作帧间图片预测的子模式,其中,在不借助预测器外部的已编码运动矢量分量的情况下,从一个或多个运动矢量预测器导出运动矢量。在一些其它示例实施例中,可存在适用于主题块的运动矢量分量。因此,视频编码器(703)可以包括图7中未明确示出的组件(例如模式决定模块)以确定处理块的预测模式。
[0096]
在图7的示例中,视频编码器(703)包括如图7中的示例设置所示的耦接到一起的帧间编码器(730)、帧内编码器(722)、残差计算器(723)、开关(726)、残差编码器(724)、通用控制器(721)和熵编码器(725)。
[0097]
帧间编码器(730)被配置为接收当前块(例如处理块)的样本、比较该块与参考图
片中的一个或多个参考块(例如,以显示顺序的先前图片和后来图片中的块)、生成帧间预测信息(例如,根据帧间编码技术的冗余信息描述、运动矢量、合并模式信息)、以及基于帧间预测信息使用任何合适的技术计算帧间预测结果(例如已预测块)。在一些示例中,参考图片是使用嵌入在图6的示例编码器620中的解码单元633(如下详细描述的,示出为图7的残差解码器728)基于已编码视频信息解码的已解码参考图片。
[0098]
帧内编码器(722)被配置为接收当前块(例如处理块)的样本、比较该块与同一图片中已编码的块、在变换之后生成量化系数、以及在一些情况下还生成帧内预测信息(例如根据一个或多个帧内编码技术的帧内预测方向信息)。帧内编码器(722)可以基于帧内预测信息和同一图片中的参考块计算帧内预测结果(例如已预测块)。
[0099]
通用控制器(721)可被配置为确定通用控制数据,且基于该通用控制数据控制视频编码器(703)的其他组件。在示例中,通用控制器(721)确定块的预测模式,且基于该预测模式将控制信号提供到开关(726)。例如,当该预测模式是帧内模式时,通用控制器(721)控制开关(726)以选择供残差计算器(723)使用的帧内模式结果,且控制熵编码器(725)以选择帧内预测信息且将该帧内预测信息包括添加在比特流中;以及当块的预测模式是帧间模式时,通用控制器(721)控制开关(726)以选择供残差计算器(723)使用的帧间预测结果,且控制熵编码器(725)以选择帧间预测信息且将该帧间预测信息添加在比特流中。
[0100]
残差计算器(723)可被配置为计算所接收的块与选自帧内编码器(722)或帧间编码器(730)的块的预测结果之间的差(残差数据)。残差编码器(724)可被配置为对残差数据进行编码以生成变换系数。例如,残差编码器(724)可被配置为将残差数据从空间域转换至频域以生成变换系数。变换系数接着经受量化处理以获得量化的变换系数。在各种示例实施例中,视频编码器(703)还包括残差解码器(728)。残差解码器(728)被配置为执行逆变换,且生成已解码残差数据。已解码残差数据可适当地由帧内编码器(722)和帧间编码器(730)使用。例如,帧间编码器(730)可基于已解码残差数据和帧间预测信息生成已解码块,且帧内编码器(722)可基于已解码残差数据和帧内预测信息生成已解码块。适当处理已解码块以生成已解码图片,且该已解码图片可在存储器电路(未示出)中缓冲并用作参考图片。
[0101]
熵编码器(725)可被配置为将比特流格式化以产生已编码的块。熵编码器(725)被配置为在比特流中包括各种信息。例如,熵编码器(725)可被配置为将通用控制数据、所选预测信息(例如帧内预测信息或帧间预测信息)、残差信息和其它合适的信息包括在比特流中。当在帧间模式或双向预测模式的合并子模式中对块进行编码时,可不存在残差信息。
[0102]
图8示出了根据本公开的另一实施例的示例视频解码器(810)的图。视频解码器(810)被配置为接收作为已编码视频序列的一部分的已编码的图片,且对该已编码的图片进行解码以生成重建的图片。在示例中,视频解码器(810)可用于代替图4的示例中的视频解码器(410)。
[0103]
在图8的示例中,视频解码器(810)包括如图8的示例设置所示的耦接到一起的熵解码器(871)、帧间解码器(880)、残差解码器(873)、重建模块(874)和帧内解码器(872)。
[0104]
熵解码器(871)可被配置为根据已编码图片来重建某些符号,这些符号表示构成该已编码图片的语法元素。此类符号可包括例如用于对该块进行编码的模式(例如,帧内模式、帧间模式、双向预测模式、合并子模式或另一子模式)、可识别供帧内解码器(872)或帧
间解码器(880)用以进行预测的某些样本或元数据的预测信息(例如,帧内预测信息或帧间预测信息)、呈例如量化的变换系数形式的残差信息等等。在示例中,当预测模式是帧间或双向预测模式时,将帧间预测信息提供到帧间解码器(880);以及当预测类型是帧内预测类型时,将帧内预测信息提供到帧内解码器(872)。残差信息可经受逆量化并提供到残差解码器(873)。
[0105]
帧间解码器(880)可被配置为接收帧间预测信息,且基于该帧间预测信息生成帧间预测结果。
[0106]
帧内解码器(872)可被配置为接收帧内预测信息,且基于该帧内预测信息生成预测结果。
[0107]
残差解码器(873)可被配置为执行逆量化以提取解量化的变换系数,且处理该解量化的变换系数,以将残差从频域变换到空间域。残差解码器(873)还可以利用某些控制信息(用以包括量化器参数(qp)),该信息可由熵解码器(871)提供(未描绘数据路径,因为这仅仅是低数据量控制信息)。
[0108]
重建模块(874)可被配置为在空间域中组合由残差解码器(873)输出的残差与预测结果(根据具体情况可由帧间预测模块或帧内预测模块输出)以形成重建的块,该重建的块形成重建的图片的一部分作为重建的视频的一部分。可以注意的是,还可执行例如解块操作等其它合适的操作来改善视觉质量。
[0109]
可以注意的是,可使用任何合适的技术来实施视频编码器(403)、视频编码器(603)和视频编码器(703)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。在一些示例实施例中,可使用一个或多个集成电路来实施视频编码器(403)、视频编码器(603)和视频编码器(703)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。在另一实施例中,可使用执行软件指令的一个或多个处理器来实施视频编码器(403)、视频编码器(603)和视频编码器(603)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。
[0110]
回到用于编码和解码的块分割,一般分割可以从基块(base block)开始,并且可以遵循预定义的规则集、特定模式、分割树或任何分割结构或方案。分割可以是分层的和递归的。在按照下面描述的任何示例分割过程或其他过程或其组合划分或分割基块之后,可以获得最终的分区或编码块组。这些分区中的每个分区可以处于分割层次结构中的各种分区级别之一,且可以是各种形状。每个分区可以称为编码块(cb)。对于下面进一步描述的各种示例分割实施方式,每个结果cb可以是任意允许的大小和分区级别。因为这样的分区可以形成单元,对于这些单元,可以做出一些基本的编码/解码决策,并且可以优化、确定和在已编码视频比特流中用信号表示编码/解码参数,因此这样的分区被称为编码块。最终分区中的最高或最深级别代表树的编码块分区结构的深度。编码块可以是亮度编码块或色度编码块。每种颜色的cb树结构可以称为编码块树(cbt)。
[0111]
所有颜色通道的编码块可以统称为编码单元(cu)。所有颜色通道的分层结构可以统称为编码树单元(ctu)。ctu中各种颜色通道的划分模式或结构可以相同,也可以不同。
[0112]
在一些实施方式中,用于亮度和色度通道的分区树方案或结构可不需要相同。换句话说,亮度和色度通道可以具有单独的编码树结构或模式。此外,亮度和色度通道是否使用相同或不同的编码分区树结构以及要使用的实际编码分区树结构可以取决于被编码的
条带是p、b还是i条带。例如,对于i条带,色度通道和亮度通道可以具有单独的编码分区树结构或编码分区树结构模式,而对于p或b条带,亮度和色度通道可以共享相同的编码分区树方案。当应用单独的编码分区树结构或模式时,亮度信道可以通过一个编码分割树结构被分割成cb,色度通道可以通过另一个编码分区树结构被分割成色度cb。
[0113]
在一些示例实施方式中,预定的分割模式可以应用于基块。如图9所示,示例性4路分区树可以从第一预定义级别(例如,64
×
64块级别或其他大小,作为基块大小)开始,且基块可以分层地向下分割到预定义的最低级别(例如,4
×
4级别)。例如,基本块可受制于到由902、904、906和908指示的四个预定义的分区选项或模式,其中指定为r的分区被允许进行递归分割,即如图9中指示的相同分区选项可以以较低的规模重复直到最低级别(例如,4
×
4级别)。在一些实施方式中,额外的限制可应用于图9的分割方案。在图9的实施方式中,可以允许矩形分区(例如,1:2/2:1矩形分区),但是可以不允许他们是递归的,而正方形分区则允许是递归的。如果需要的话,按照图9的分割以及递归生成最终的编码块组。可以进一步定义编码树深度以指示来自根节点或根块的分割深度。例如,根节点或根块(例如,64
×
64块)的编码树深度可以设置为0,并且在根块根据图9被进一步分割一次之后,编码树深度增加1。对于上述方案,从64x64基块到4x4的最小分区的最大或最深级别将是4(从级别0开始)。这种分割方案可以应用于一个或多个颜色通道。每个颜色通道可以按照图9的方案独立进行分割(例如,对于每个分层级别的每个颜色通道,可以独立地确定预定义图案中的分割图案或选项)。可选地,两个或更多个颜色通道可以共享图9的相同分层图案树(例如,可以为每个分层级别的两个或多个颜色通道选择预定义图案中的相同分割图案或选项)。
[0114]
图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的分割以及递归生成最终的编码块组。这种分割方案可以应用于一个或多个颜色通道。在一些实施方式中,在使用低于8
×
8级别的分区时可以增加更多的灵活性。例如,在某些情况下可以使用2
×
2色度帧间预测。
[0115]
在针对编码块分割的一些其它示例实施方式中,四叉树结构可用于将基块或中间块分割成四叉树分区。这种四叉树分割可以分层地以及递归地应用于任何方形分区。是否进一步对基块或中间块或分区进行四叉树分割可根据基块或中间块/分区的各种局部特征进行调整。可以进一步调整在图片边界处的四叉树分割。例如,可以在图片边界处执行隐式四叉树分割,使得块将保持四叉树分割直到大小适合图片边界。
[0116]
在一些其他示例实施方式中,可以使用来自基块的分层二进制分割。对于这样的方案,基本块或中间级块可以被分割成两个分区。二进制分割可以是水平或垂直的。例如,
水平二进制分割可以将基块或中间块分割成相等的右分区和左分区。同样,垂直二进制分割可以将基块或中间块分割成相等的上分区和下分区。这种二进制分割可以是分层的和递归的。可以在基块或中间块中的每一个处作出是否应该继续二进制分割方案的决定,以及如果进一步继续该方案,作出应该使用水平还是垂直二进制分割的决定。在一些实施方式中,进一步的分割可以在预定义的最低分区大小(一个维度或两个维度)处停止。可选地,一旦达到来自基块的预定义分区级别或深度,则可以停止进一步的分割。在一些实施方式中,可以限制分区的纵横比。例如,分区的纵横比可以不小于1:4(或大于4:1)。因此,具有垂直与水平纵横比为4:1的垂直条形分区可以仅进一步被垂直地二元分割成垂直与水平纵横比为2:1的上分区和下分区。
[0117]
在其他一些示例中,如图13所示,三元分割方案可以用于分割基块或任何中间块。三元图案可以垂直实现,如图13的1302所示,或水平实现,如图13的1304所示。尽管图13中的示例分割比垂直地或水平地示出为1:2:1,但是可以预定义其它比率。在一些实施方式中,可以预定义两个或更多个不同的比率。由于三叉树分割能够在一个连续分区中捕获位于块中心的对象,而四叉树和二叉树总是沿着块中心进行分割,从而会将对象划分成不同的分区,因此这种三元分割方案可以用于补充四叉树或二叉分割结构。在一些实施方式中,示例三叉树的分区的宽度和高度总是2的幂,以避免额外的变换。
[0118]
上述分割方案可以在不同的分割级别上以任何方式组合。作为一个示例,可以组合上述四叉树和二叉分割方案以将基块分割为四叉树-二叉树(quadtree-binary-tree,qtbt)结构。在这样的方案中,基块或中间块/分区可以是四叉树分割或二叉分割,如果指定的话,要符合预定义条件集。特定示例如图14所示,在图14的示例中,如1402、1404、1406和1408所示,基块是被分割成四个分区的第一四叉树。此后,所得到的分区中的每一分区要么被四叉树分割成四个进一步的分区(例如,1408),要么在下一级被二进制分割成两个进一步的分区(水平地或垂直地,例如1402或1406,两者都是对称的),要么是非分割的(例如,1404)。对于方形分区,可以递归地使得能够二叉树或四叉树分割,如1410的整体示例分区图案和1420中的相应树结构/表示所示,其中实线表示四叉树分割,虚线表示二叉树分割。可以为每个二叉分割节点(非叶二叉划分(non-leaf binary partition))使用标志来指示二叉分割是水平的还是垂直的。例如,如1420所示,与1410的分割结构一致,标志“0”可以表示水平二元分割,标志“1”可以表示垂直二元分割。由于四叉树分割总是水平和垂直地分割块或分区以产生大小相等的4个子块/分区,因此对于四叉树分割分区,不需要指示分割类型。在一些实施方式中,标志“1”可以表示水平二叉分割,以及标志“0”可以表示垂直二叉分割。
[0119]
在qtbt的一些示例实施方式中,四叉树和二叉分割规则集可以由以下预定义参数及其相关联的相应函数来表示:
[0120]-ctu大小(ctu size):四叉树的根节点大小(基块的大小)
[0121]-minqtsize:允许的最小四叉树叶节点大小
[0122]-maxbtsize:允许的最大二叉树根节点大小
[0123]-maxbtdepth:允许的最大二叉树深度
[0124]-minbtsize:允许的最小二叉树叶节点大小
[0125]
在qtbt分割结构的一些示例实施方式中,ctu size可以设置为(当考虑并使用示
例色度子样本时)具有两个对应的64
×
64色度样本块的128
×
128亮度样本,minqtsize可以设置为16
×
16,maxbtsize可以设置为64
×
64,以及minbtsize(对于宽度和高度)可以设置为4
×
4,以及maxbtdepth可以设置为4。四叉树分割可以首先应用于ctu以生成四叉树叶节点。四叉树叶节点的大小可以从其最小允许大小16
×
16(即,minqtsize)到128
×
128(即ctu size)。如果节点是128
×
128,由于它的大小超过了maxbtsize(即64
×
64),因此该节点将不会首先通过二叉树进行分割。否则,不超过maxbtsize的节点可以通过二叉树来分割。在图14的示例中,基块为128
×
128。根据预定义的规则集,基块只能进行四叉树分割。基块的分割深度为0。得到的四个分区中的每个分区都是64x64,不超过maxbtsize,可以进一步在级别1处进行四叉树或二叉树分割。继续流程。当二叉树深度达到maxbtdepth(即4)时,可以不考虑进一步的分割。当二叉树节点的宽度等于minbtsize(即4),可以不考虑进一步的水平分割。类似地,当二叉树节点的高度等于minbtsize,不考虑进一步的垂直分割。
[0126]
在一些示例实施方式中,上述qtbt方案可以被配置为支持亮度和色度具有相同qtbt结构或独立qtbt结构的灵活性。例如,对于p和b条带,一个ctu中的亮度和色度ctb可以具有相同的qtbt结构。然而,对于i条带,亮度ctb可以通过qtbt结构分割成cb,色度ctb可以通过另一qtbt结构分割成色度cb。这意味着cu可以用于指代i条带中的不同颜色通道,例如,i条带可以包括亮度分量的编码块或两个色度分量的编码块,并且p或b条带中的cu可以包括所有三个颜色分量的编码块。
[0127]
在一些其他实施方式中,qtbt方案可以用上述三叉方案来进行补充。这种实施方式可以称为多类型树(multi-type-tree,mtt)结构。例如,除了节点的二叉分割之外,可以选择图13的三叉分割图案中的一个。在一些实施方式中,只有方形节点可以进行三叉分割。可以使用附加标志来指示三叉分割是水平的还是垂直的。
[0128]
两级或多级树的设计,例如qtbt实施方式和由三叉分割补充的qtbt实施方式,可主要由降低复杂性来驱动。理论上,遍历树的复杂度是t^d,其中,t表示分割类型的数目,以及d是树的深度。在减小深度(d)的情况下可以通过使用多种类型(t)来进行全权衡。
[0129]
在一些实施方式中,cb可以被进一步进行分割。例如,为了在编码和解码过程期间进行帧内或帧间预测,可将cb进一步分割成多个预测块。换句话说,cb可以进一步划分为不同的子分区,在不同的子分区中可以做出单独的预测决策/配置。并行地,为了描述执行视频数据的变换或逆变换的级别,可将cb进一步分割成多个变换块(transform block,tb)。将cb分割为pb和tb的方案可以是相同的,也可以不是相同的。例如,每个分割方案可以基于例如视频数据的各种特征使用其自己的过程来执行。在一些示例实施方式中,pb和tb分割方案可以是独立的。在一些其他示例实施方式中,pb和tb分割方案和边界可以是相关的。在一些实施方式中,例如,tb可以在pb分割之后被分割,并且具体地,每个pb在分割编码块之后被确定,然后可以被进一步分割成一个或多个tb。例如,在一些实施方式中,pb可以被分割成一个、两个、四个或其他数量的tb。
[0130]
在一些实施方式中,为了将基块分割为编码块并进一步分割为预测块和/或变换块,可以不同地处理亮度通道和色度通道。例如,在一些实施方式中,对于亮度通道,可以允许将编码块分割为预测块和/或变换块,而对于色度通道,可以不允许将编码块分割为预测块和/或变换块。在这样的实施方式中,因此可以仅在编码块级别执行亮度块的变换和/或预测。再例如,亮度通道和一个(或多个)色度通道的最小变换块大小可以不同,例如,亮度
通道的编码块可以分割成比色度通道更小的变换和/或预测块。再例如,将编码块分割为变换块和/或预测块的最大深度在亮度通道和色度通道之间可以不同,例如,可以将针对亮度通道的编码块分割为比一个(或多个)色度通道更深的变换块和/或预测块。对于特定示例,亮度编码块可以被分割成多个大小的变换块,这些变换块可以通过的递归分割来表示,并且可以有如正方形、2:1/1:2和4:1/1:4的变换块形状以及从4
×
4到64
×
64的变换块大小。然而,对于色度块,只允许为亮度块指定的最大可能的变换块。
[0131]
在一些示例实施方式中,对于将编码块分割为pb,pb分割的深度、形状和/或其他特征可取决于pb是帧内编码还是帧间编码。
[0132]
将编码块(或预测块)分割为变换块可以在各种示例方案中实施,包括但不限于递归地或非递归地四叉树分割和预定图案分割,并额外考虑在编码块或预测块的边界处的变换块。通常,得到的变换块可以处于不同的分割级别,可以具有不同的大小,并不需要是正方形的(例如,可以是一些可能的大小和纵横比的矩形)。下面结合图15、16、17更详细地描述进一步的示例。
[0133]
然而,在一些其它实施方式中,通过上述任何分割方案获得的cb可用作预测和/或变换的基本或最小编码块。换句话说,针对执行帧间预测/帧内预测目的和/或变换目的,不执行进一步分割。例如,从上述qtbt方案获得的cb可直接用作用于执行预测的单元。具体地,这样的qtbt结构消除了多个分区类型的概念,即,消除了cu、pu和tu的分离,并且支持如上所述的cu/cb分区形状的更大灵活性。在这种qtbt块结构中,cu/cb可以是正方形或矩形形状。这种qtbt的叶节点用作用于预测和变换处理的单元,而无需任何进一步的分割。这意味着在这种示例性qtbt编码块结构中,cu、pu和tu具有相同的块大小。
[0134]
可以以任何方式将上述各种cb分割方案和将cb进一步分割为pb和/或tb(包括无pb/tb分割)进行组合。提供以下特定实施方式作为非限制性示例。
[0135]
下面描述编码块和变换块分割的具体示例实施方式。在这样的示例实施方式中,可以使用上述递归四叉树分割或(如图9和图10中的那些)预定义的分割图案将基本块分割成编码块。在每个级别处,是否应该继续对特定分区进行进一步的四叉树分割可以通过本地视频数据特征来确定。所产生的cb可以处于各种四叉树分割级别,并具有各种大小。关于是否使用帧间图片(时间)或帧内图片(空间)预测来对图片区域进行编码的决策可以在cb级别(或cu级别,对于所有三色通道)处做出。可以根据预定义的pb分割类型将每个cb进一步分割成一个、两个、四个或其他数量的pb。在一个pb内,可以应用相同的预测处理,并可以基于pb将相关信息发送到解码器。在通过应用基于pb分割类型的预测过程获得残差块之后,可以根据类似于cb的编码树的另一四叉树结构将cb分割成tb。在该特定实施方式中,cb或tb可以是但不限于是正方形。此外,在该特定示例中,对于帧间预测,pb可以是正方形或矩形,以及对于帧内预测,pb可以仅是正方形。编码块可以被分割成例如四个正方形tb。每个tb可以被进一步递归地分割(使用四叉树分割)成更小的tb,称为残差四叉树(residual quadtree,rqt)。
[0136]
下面进一步描述将基块分割为cb、pb和/或tb的另一示例性实施方式。例如,不使用如图9或图10所示的多个分区单元类型,而是可以使用具有嵌套多类型树(使用二叉和三叉分割的分割结构(例如,如上所述的qtbt或具有三叉分割的qtbt))的四叉树。可放弃cb、pb和tb的分离(即,将cb分割成pb和/或tb,以及将pb分割成tb),除非在需要时,cb的大小对
于最大变换长度来说太大,这样的cb可能需要进一步分割。该示例分割方案可以被设计成支持cb分割形状的更大灵活性,以便预测和变换都可以在cb级上执行,而无需进一步分割。在这种编码树结构中,cb可以是正方形或矩形形状。具体地,编码树块(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的嵌套图案还可以包括四叉树分割。
[0137]
图12示出了具有针对一个基块的块分割(包括四叉树、二叉和三叉分割选项)的嵌套的多类型树编码块结构的四叉树的一个具体示例。更详细地,图12示出了基块1200被四叉树分割成四个正方形分区1202、1204、1206和1208。对于每个四叉树分割分区,作出进一步使用图11的多类型树结构和用于进一步分割的四叉树的决定。在图12的示例中,分区1204不被进一步分割。分区1202和1208各自采用另一四叉树分割。对于分区1202,第二级四叉树分割左上、右上、左下和右下分区分别采用图11的四叉树的第三级分割、水平二叉分割1104、不分割和图11的水平三叉分割1108。分区1208采用另一四叉树分割,第二级四叉树分割的左上、右上、左下和右下分割分别采用图11的垂直三叉分割1106的第三级分割、不分割、不分割和图11的水平二叉分割1104。分别根据图11的水平二叉分割1104和水平三叉分割1108进一步分割1208的第三级左上分区的两个子分区。继图11的垂直二叉分割1102之后分区1206采用第二级分割模式分成两个分区,这两个分区根据图11的水平三叉分割1108和垂直二叉分割1102进一步以第三级进行分割。根据图11的水平二叉分割1104,第四级分割进一步应用于这两个分区中的一个分区。
[0138]
对于上面的特定示例,最大亮度变换大小可以是64
×
64,以及支持的最大色度变换大小可以与亮度不同,例如,32
×
32。即使图12中的上述示例cb通常不被进一步分割成更小的pb和/或tb,当亮度编码块或色度编码块的宽度或高度大于最大变换宽度或高度时,亮度编码块或色度编码块可以在水平和/或垂直方向上自动进行分割,以符合该方向上的变换尺寸限制。
[0139]
如上所述,对于将基块分割为cb的具体示例中,编码树方案可以支持亮度和色度具有单独的块树结构的能力。例如,对于p和b条带,一个ctu中的亮度和色度ctb可以具有相同的编码树结构。例如,对于i切片,亮度和色度可以具有单独的编码块树结构。当应用单独的块树结构时,亮度ctb通过一个编码树结构被分割成亮度cb,色度ctb通过另一个编码树结构被分割成色度cb。这意味着i条带中的cu可以包括亮度分量的编码块或两个色度分量的编码块,并且p或b条带中的cu总是包括所有三个颜色分量的编码块,除非视频是单色的。
[0140]
当编码块被进一步分割为多个变换块时,其中的变换块可以按照各种顺序或扫描方式在比特流中进行排序。下面进一步详细描述将编码块或预测块分割成变换块以及变换块的编码顺序的示例实施方式。在一些示例实施方式中,如上所述,变换分割可以支持多个
形状的变换块,例如,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)变换块的倍数。
[0141]
在变换块划分的一些示例实施方式中,对于帧内和帧间编码块,编码块可以进一步被分割成多个变换块,划分深度高达预定级别数(例如,2级)。变换块分割深度和大小可以相关联。对于一些示例实施方式,从当前深度的变换大小到下一深度的变换大小的映射如下表1所示。
[0142]
表1变换分割大小设置
[0143][0144]
基于表1的示例映射,对于1:1正方形块,下一级变换分割可以创建四个1:1正方形子变换块。例如,变换分割可以在4x4处停止。如此,当前深度为4
×
4的变换大小对应于下一深度的相同大小4
×
4。在表1的示例中,对于1:2/2:1的非正方形块,下一级变换分割可以创建两个1:1的正方形子变换块,而对于1:4/4:1的非正方形块,下一级变换分割可以创建两个1:2/2:1的子变换块。
[0145]
在一些示例实施方式中,对于帧内编码块的亮度分量,可以相对于变换块分割应用附加限制。例如,对于变换分割的每一级,所有子变换块可以被限制为具有相等的大小。例如,对于32x16编码块,1级变换分割创建两个16x16子变换块,2级变换分割创建八个8x8
子变换块。换句话说,第二级分割必须应用于所有第一级子块,以保持变换单元大小相等。图15示出了根据表1的帧内已编码正方形块的变换块分割的示例,以及通过箭头示出的编码顺序。具体地,1502示出了正方形编码块。在1504中示出了根据表1分成4个大小相等的变换块的第一级分割,其中编码顺序通过箭头指示。在1506中示出了根据表1将所有第一级等大小块分成16个等大小变换块的第二级分割,其中编码顺序通过箭头指示。
[0146]
在一些示例实施方式中,对于帧间已编码块的亮度分量,可以不应用上述帧内编码的限制。例如,在第一级变换分割之后,子变换块中的任一子变换块可以进一步独立地进行一级以上的分割。因此,产生的变换块可以具有相同的大小,也可以不具有相同的大小。图16示出了将帧间已编码块分割成变换块及其编码顺序的示例。在图16的示例中,帧间已编码块1602根据表1被分割成两级的变换块。在第一级,帧间已编码块被分割成大小相等的四个变换块。然后,如1604所示,仅四个变换块中的一个(不是全部)被进一步分割成四个子变换块,导致具有两种不同大小的总共7个变换块。这7个变换块的示例编码顺序由图16的1604中的箭头示出。
[0147]
在一些示例实施方式中,对于一个(或多个)色度分量,可以应用针对变换块的一些额外限制。例如,对于一个(或多个)色度分量,变换块大小可以与编码块大小一样,但不小于预定义的大小,例如8
×
8。
[0148]
在一些其他示例实施方式中,对于宽度(w)或高度(h)大于64的编码块,亮度和色度编码块可分别被隐式地分割成min(w,64)
×
min(h,64)和min(w,32)
×
min(h,32)倍数的变换单元。这里,在本公开中,“min(a,b)”可以返回a和b之间的较小值。
[0149]
图17进一步示出了用于将编码块或预测块分割成变换块的另一可选示例方案。如图17所示,可以根据编码块的变换类型将预定义的分割类型集应用于编码块,而不使用递归变换分割。在图17所示的具体示例中,可以应用6个示例分割类型中的一个来将编码块分割成各种数目的变换块。这种生成变换块分割的方案可以应用于编码块或预测块。
[0150]
更详细地,图17的分割方案为任何给定的变换类型提供多达6个示例分割类型(变换类型是指例如主变换的类型,例如adst等)。在该方案中,可以基于如率失真成本为每个编码块或预测块分配变换分割类型。在示例中,可基于编码块或预测块的变换类型来确定分配给编码块或预测块的变换分割类型。特定的变换分割类型可以对应于变换块分割大小和模式,如图17所示的6种变换分割类型所示。可以预定义各种变换类型和各种变换分割类型之间的对应关系。以下示出的示例,大写标签指示可基于率失真成本分配给编码块或预测块的变换分区类型:
[0151]
·
partition_none:分配等于块大小的变换大小。
[0152]
·
partition_split:分配变换大小为块大小的1/2宽度和块大小的1/2高度。
[0153]
·
partition_horz:分配变换大小为与块大小相同的宽度以及块大小的1/2高度。
[0154]
·
partition_vert:分配变换大小为块大小的1/2宽度和与块大小相同的高度。
[0155]
·
partition_horz4:分配变换大小为与块大小相同的宽度以及块大小的1/4高度。
[0156]
·
partition_vert4:分配变换大小为块大小的1/4宽度和与块大小相同的高度。
[0157]
在上面的示例中,如图17所示的转换分割类型都包含用于所分割的变换块的统一变换大小。这仅是示例,而不是限制。在一些其他实施方式中,混合变换块大小可以用于特
定分割类型(或模式)中的分割的变换块。
[0158]
然后从上述任何分割方案获得的pb(或cb,当没有被进一步分割成预测块时也称为pb)可以成为用于通过帧内或帧间预测进行编码的单个块。对于当前pb的帧间预测,可以生成、编码当前块和预测块之间的残差,并将其包括在已编码比特流中。
[0159]
可以例如在单参考模式或复合参考模式中实现帧间预测。在一些实施方式中,跳过标志可以首先包括在当前块(或者在更高的级别)的比特流中,以指示当前块是否被帧间编码并不被跳过。如果当前块被帧间编码,那么另一个标志还可以包括在比特流中作为信号,以指示单参考模式还是复合参考模式用于当前块的预测。对于单参考模式,可以使用一个参考块来生成当前块的预测块。对于复合参考模式,可以使用两个或更多个参考块通过例如加权平均来生成预测块。复合参考模式可以称为多于一个参考模式、两个参考模式或多个参考模式。可以使用一个或多个参考帧索引以及另外使用一个或多个对应的运动矢量来识别一个或多个参考块,该一个或多个对应的运动矢量指示一个(或多个)参考块和当前块在位置上(例如,在水平和垂直像素中)的一个(或多个)偏移。例如,当前块的帧间预测块可以从由参考帧中的一个运动矢量识别为单参考模式中的预测块的单参考块生成,而对于复合参考模式,预测块可以通过由两个参考帧索引和两个对应运动矢量指示的两个参考帧中的两个参考块的加权平均值生成。一个(或多个)运动矢量可以以各种方式被编码并包括在比特流中。
[0160]
在一些实施方式中,编码或解码系统可以维护解码图片缓冲器(dpb)。一些图像/图片可以被维护在dpb中等待被显示(在解码系统中),并且dpb中的一些图像/图片可以被用作参考帧以实现帧间预测(在解码系统或编码系统中)。在一些实施方式中,dpb中的参考帧可以被标记为针对正在编码或解码的当前图像的短期参考或长期参考。例如,短期参考帧可以包括用于当前帧中或在解码顺序中离当前帧最近的预定数量(例如,2)的后续视频帧中的块进行帧间预测的帧。长期参考帧可以包括dpb中的帧,可以用于预测在解码顺序中距离当前帧超过预定数量的帧中的图像块。对于短期和长期参考帧的这种标签(tag)的信息可以被称为参考图片集(rps),并且可以被添加到已编码比特流中的每个帧的报头。已编码视频比特流中的每一帧可以由图片顺序计数器(poc)来识别,poc以绝对方式根据播放顺序进行编号,或者与例如从i帧开始的图片组相关。
[0161]
在一些示例实施方式中,可以基于rps中的信息形成包含用于帧间预测的短期和长期参考帧的标识的一个或多个参考图片列表。例如,对于单向帧间预测可以形成单个图片参考列表,表示为l0参考(或参考列表0),而对于双向帧间预测,可以形成两个图片参考列表,对于两个预测方向中的每个方向可以表示为l0(或参考列表0)和l1(或参考列表1)。包括在l0和l1列表中的参考帧可以以各种预定方式排序。l0和l1列表的长度可以写入视频比特流。单向间预测可以是单参考模式,或者当用于在复合预测模式中通过加权平均生成预测块的多个参考在待预测的块的同一侧时,是复合参考模式。由于双向帧间预测涉及至少两个参考块,因此双向帧间预测可以仅是复合模式。
[0162]
在一些实施方式中,可以实现用于帧间预测的合并模式(mm)。通常,对于合并模式,对于当前pb,单个参考预测中的运动矢量或复合参考预测中的一个或多个运动矢量可以从一个(或多个)其他运动矢量导出,而不是单独地计算和用信号表示。例如,在编码系统中,当前pb的一个(或多个)当前运动矢量可以由一个(或多个)当前运动矢量和其他一个或
多个已经编码的运动矢量(称为参考运动矢量)之间的一个(或多个)差来表示。一个(或多个)运动矢量中的这种一个(或多个)差而不是一个(或多个)当前运动矢量的全部可以被编码并包括在比特流中,并且可以链接到一个(或多个)参考运动矢量。相应地,在解码系统中,对应于当前pb的一个(或多个)运动矢量可以基于一个(或多个)已解码运动矢量差和与其链接的一个(或多个)已解码参考运动矢量来导出。作为一般合并模式(mm)帧间预测的特定形式,这种基于一个(或多个)运动矢量差的帧间预测可以被称为具有运动矢量差的合并模式(mmvd)。因此,通常的mm或具体的mmvd可以被实现以利用与不同pb相关联的运动矢量之间的相关性来提高编码效率。例如,相邻的pb可以具有相似的运动矢量,因此mvd可以很小并且可以被有效地编码。再例如,对于空间中类似同位/同位置块,运动矢量可以在时间上(帧之间)相关。
[0163]
在一些示例实施方式中,在编码过程期间,mm标志可以包括在比特流中,用于指示当前pb是否处于合并模式。另外地或可选地,在编码过程期间可以包括mmvd标志,并写入比特流中以指示当前pb是否处于mmvd模式。可以在pb级别、cb级别、cu级别、ctb级别、ctu级别、条带级别、图片级别等处提供mm和/或mmvd标志或指示符。对于特定示例,对于当前cu可以包括mm标志和mmvd标志,以及mmvd标志可以紧接在跳过标志和mm标志之后用信号发送以指定mmvd模式是否用于当前cu。
[0164]
在mmvd的一些示例实施方式中,可以针对正被预测的块形成用于运动矢量预测的参考运动矢量(rmv)或mv预测器候选的列表。rmv候选列表可以包含预定数量(例如,2)的mv预测器候选块,其运动矢量可以用于预测当前运动矢量。rmv候选块可以包括从同一帧中的相邻块和/或时间块(例如,当前帧的前一帧或后一帧中相同同位块)中选择的块。这些选项表示与当前块相关的空间或时间位置上的块,这些块可能具有与当前块相似或相同的运动矢量。可以预先确定mv预测器候选列表的大小。例如,列表可包含两个或更多候选。为了在rmv候选列表上,候选块,例如可以要求候选块具有与当前块相同的参考帧(或多个帧),必须存在(例如,当当前块靠近帧的边缘时,需要执行边界检查),并必须在编码过程中已经被编码,和/或在解码过程中已经被解码。在一些实施方式中,如果可用且满足上述条件,可以首先用空间相邻的块(以特定预定义顺序扫描)填充合并候选列表,然后如果列表中空间仍然可用,则填充时间块。例如,相邻的rmv候选块可以从当前块的左侧块和顶部块中选择。rmv预测器候选列表可以在不同级别(序列、图片、帧、条带、超级块等)处动态形成为动态参考列表(drl)。drl可以写入比特流中。
[0165]
在一些实施方式中,可以用信号发送用作用于预测当前块的运动矢量的参考运动矢量的实际mv预测器候选。在rmv候选列表包含两个候选的情况下,可以使用称为合并候选标志的一比特标志来指示参考合并候选的选择。对于以复合模式预测的当前块,使用mv预测器预测的多个运动矢量中的每个运动矢量可以与来自合并候选列表的参考运动矢量相关联。编码器可以确定哪个rmv候选更接近地预测当前编码块,并将该选择作为索引发送到drl中。
[0166]
在mmvd的一些示例实施方式中,在选择rmv候选并用作待预测的运动矢量的基础运动矢量预测器之后,可以在编码系统中计算运动矢量差(mvd或增量(delta)mv,表示待预测的运动矢量和参考候选运动矢量之间的差)。这种mvd可以包括表示mv差的幅度和mv差的方向的信息,这两个信息都可以在比特流中用信号发送。运动差幅度和运动差方向可以以
各种方式用信号发送。
[0167]
在mmvd的一些示例实施方式中,距离索引可用于指定运动矢量差的幅度信息,并指示表示相对于起点(参考运动矢量)的预定义运动矢量差的预定义偏移集中的一个。然后,可以将根据用信号发送的索引的mv偏移添加到起始(参考)运动矢量的水平分量或垂直分量。参考运动矢量的水平分量或垂直分量是否应该偏移可以通过mvd的方向信息来确定。表2中指定了距离索引和预定义偏移量之间的预定义关系示例。
[0168]
表2-距离索引和预定义mv偏移的示例关系
[0169][0170]
在mmvd的一些示例实施方式中,方向索引还可以用信号发送并用于表示mvd相对于参考运动矢量的方向。在一些实施方式中,方向可以被限制为水平方向和垂直方向中的任一个。2比特方向索引的示例如表3所示。在表3的示例中,mvd的解释可以根据起始/参考mv的信息而变化。例如,当起始/参考mv对应于单预测块或对应于双预测块,其中,两个参考帧列表都指向当前图片的同一侧时(即,两个参考图片的poc都大于当前图片的poc,或者都小于当前图片的poc),表3中的符号可以指定添加到起始/参考mv的mv偏移的符号(方向)。当起始/参考mv对应于双预测块,其中两个参考图片位于当前图片的不同侧(即,一个参考图片的poc大于当前图片的poc,而另一个参考图片的poc小于当前图片的poc),并且图片参考列表0中的参考poc与当前帧之间的差大于图片参考列表1中的参考poc与当前帧之间的差时,表3中的符号可以指定添加到与图片参考列表0中的参考图片相对应的参考mv的mv偏移的符号,并且与图片参考列表1中的参考图片相对应的mv的偏移的符号可以具有相反的值(偏移的相反符号)。否则,如果图片参考列表1中的参考poc与当前帧之间的差大于图片参考列表0中的参考poc与当前帧之间的差,则表3中的符号可以指定添加到与图片参考列表1相关联的参考mv的mv偏移的符号,并且与图片参考列表0相关联的参考mv的偏移的符号具有相反的值。
[0171]
表3-通过方向索引指定的mv偏移的符号的示例实施方式
[0172]
方向idx00011011x轴(水平)+-nny轴(垂直)nn+-[0173]
在一些示例实施方式中,可以根据poc在每个方向上的差来缩放mvd。如果两个列表中poc的差相同,则不需要缩放。否则,如果参考列表0中的poc的差大于参考列表1中的poc的差,则缩放参考列表1的mvd。如果参考列表1的poc差大于列表0,则可以以相同的方式缩放列表0的mvd。如果起始mv是单预测的,则mvd被添加到可用或参考mv。
[0174]
在双向复合预测的mvd编码和信令的一些示例实施方式中,除了单独编码和用信号发送两个mvd之外或可选地,还可以实现对称mvd编码,使得只有一个mvd需要用信号发送,而另一个mvd可以从用信号发送的mvd导出。在这样的实施方式中,包括list-0和list-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编码模式的使用,并且只有list-0和list-1(称为“mvp_l0_flag”和“mvp_l1_flag”)两者的参考图片索引及其与list-0相关联的mvd(称为“mvd0”)用信号发送,并且另一个运动矢量差“mvd1”将被导出而不是用信号发送。例如,mvd1可以导出为-mvd0。因此,在示例性对称mvd模式中仅有一个mvd用信号发送。在用于mv预测的一些其它示例实施方式中,协调方案可用于实现通常合并模式、mmvd、以及一些其它类型的mv预测,用于单参考模式和复合参考模式mv预测。可以使用各种语法元素来用信号发送预测当前块的mv的方式。
[0175]
例如,对于单参考模式,可以用信号发送以下mv预测模式:
[0176]
nearmv-直接使用drl(动态参考列表)索引指示的列表中的运动矢量预测器(mvp)中的一个,而不使用任何mvd。
[0177]
newmv-使用通过drl索引用信号发送的列表中的运动矢量预测器(mvp)中的一个mvp作为参考,并对mvp应用增量(例如,使用mvd)。globalmv-基于帧级全局运动参数使用运动矢量。
[0178]
同样地,对于使用对应于待预测的两个mv的两个参考帧的复合参考帧间预测模式,可以用信号发送以下mv预测模式:
[0179]
near_nearmv-使用通过drl索引用信号发送的列表中的运动矢量预测器(mvp)中的一个mvp作为参考,而不对待预测的两个mv中的每一个使用mvd。
[0180]
near_newmv-为了预测两个运动矢量中的第一个运动矢量,使用通过drl索引用信号发送的列表中的运动矢量预测器(mvp)中的一个mvp作为参考mv,而不使用mvd;为了预测两个运动矢量中的第二个运动矢量,结合另外用信号发送的增量mv(mvd),使用通过drl索引用信号发送的列表中的运动矢量预测器(mvp)中的一个mvp作为参考mv。
[0181]
new_nearmv-为了预测两个运动矢量中的第二个运动矢量,使用通过drl索引用信号发送的列表中的运动矢量预测器(mvp)中的一个mvp作为参考mv,而不使用mvd;为了预测两个运动矢量中的第一个运动矢量,结合另外用信号发送的增量mv(mvd),使用由drl索引用信号发送的列表中的运动矢量预测器(mvp)中的一个mvp作为参考mv。
[0182]
new_newmv-使用通过drl索引用信号发送的列表中的运动矢量预测器(mvp)中的一个mvp作为参考mv,并将其与另外用信号发送的增量mv结合使用,以预测两个mv中的每一个。
[0183]
global_globalmv-基于帧级全局运动参数使用来自每个参考的mv。
[0184]
因此,上面的术语“near”是指使用没有mvd的参考mv作为一般合并模式的mv预测,
而术语“new”是指涉及使用参考mv并如在mmvd模式中那样用信号发送的mvd进行抵消的mv预测。对于复合帧间预测,上述参考基本运动矢量和运动矢量增量两者在两个参考之间可以通常不同或独立,即使它们可以相关,并且可以利用这种相关性来减少用信号发送两个运动矢量增量所需的信息量。在这种情况下,两个mvd的联合信令可以在比特流中实现和指示。
[0185]
上面的动态参考列表(drl)可以用于保存被动态维护并被认为是候选运动矢量预测器的索引运动矢集量。
[0186]
在一些示例实施方式中,可以允许mvd的预定义分辨率。例如,可以允许1/8像素的运动矢量精度(或准确度)。可以以各种方式构造和用信号发送上述各种mv预测模式中的mvd。在一些实施方式中,可以使用各种语法元素来用信号发送参考帧列表0或列表1中的上述一个(或多个)运动矢量差。
[0187]
例如,称为“mv_joint”的语法元素可以指定与其相关联的运动矢量差的哪些分量是非零的。对于mvd,这是针对所有非零分量的联合用信号发送。例如,mv_joint的值为:
[0188]
0可以指示沿着水平或垂直方向不存在非零mvd;
[0189]
1可以指示仅沿水平方向存在非零mvd;
[0190]
2可以指示仅沿垂直方向存在非零mvd;
[0191]
3可以指示沿着水平和垂直方向均不存在非零mvd。
[0192]
当mvd的“mv_joint”语法元素用信号发送不存在非零mvd分量时,则可以不再进一步用信号发送mvd信息。然而,如果“mv_joint”语法发出信号表示存在一个或两个非零分量,那么可以进一步用信号发送针对每个非零mvd分量的附加语法元素,如下所述。
[0193]
例如,称为“mv_sign”的语法元素可用于额外地指定对应的运动矢量差分量是正还是负。
[0194]
再例如,称为“mv_class”的语法元素可用于指定针对对应非零mvd分量的预定义类别集中的运动矢量差的类别。例如,运动矢量差的预定义等级可用于将运动矢量差的连续幅度空间划分成不重叠的范围,每个范围对应于mvd等级。因此,用信号发送的mvd等级指示相应mvd分量的幅度范围。在下面表4所示的示例性实施方式中,较高的等级对应于具有较大幅度范围的运动矢量差。在表4中,符号(n,m]用于表示大于n个像素且小于或等于m个像素的运动矢量差的范围。
[0195]
表4运动矢量差的幅度类别
[0196]
[0197][0198]
在一些其它示例中,称为“mv_bit”的语法元素可进一步用于指定非零运动矢量差分量与相应地用信号发送的mv等级幅度范围的起始幅度之间的偏移的整数部分。因此,mv_bit可以指示mvd的幅度或振幅。“my_bit”中用于用信号发送每个mvd等级的全范围所需的比特数可以作为mv等级的函数而变化。例如,在表4的实施方式中,mv_class 0和mv_class 1可仅需要单个比特来指示从起始mvd 0起1或2的整数像素偏移;表4的示例性实施方式中的每个更高的mv_class可需要比先前的mv_class逐渐多一个比特的“mv_bit”。
[0199]
在一些其它示例中,称为“mv_fr”的语法元素可进一步用于指定对应非零mvd分量的运动矢量差的前2个小数位,而称为“mv_hp”的语法元素可用于指定对应非零mvd分量的运动矢量差的第三个小数位(高分辨率位)。两比特“mv_fr”基本上提供了1/4像素mvd分辨率,而“mv_hp”位可以进一步提供1/8像素分辨率。在一些其它实施方式中,可以使用多于一个“mv_hp”比特来提供比1/8像素更精细的mvd像素分辨率。在一些示例实施方式中,可以在各种级别中的一个或多个级别上用信号发送附加标志,以指示是否支持1/8像素或更高的mvd分辨率。如果mvd分辨率没有应用于特定的编码单元,那么上述对应的不支持的mvd分辨率的语法元素可不用信号发送。
[0200]
在上面的一些示例实现中,分数分辨率可以独立于不同等级的mvd。换句话说,不管运动矢量差的大小如何,可以使用预定义数量的“mv_fr”和“mv_hp”比特来提供针对运动矢量分辨率的类似选项,用于用信号发送非零mvd分量的分数mvd。
[0201]
然而,在一些其他示例实施方式中,可以区分各种mvd幅度级别中的运动矢量差的分辨率。具体地,对于较高mvd等级的大mvd幅度的高分辨率mvd可能不会在压缩效率方面提供统计上显著的改善。因此,对于更大的mvd幅度范围,对应于更高的mvd幅度类别,可以用递减的分辨率(整数像素分辨率或分数像素分辨率)对mvd进行编码。同样地,对于一般较大的mvd值,可以用递减的分辨率(整数像素分辨率或分数像素分辨率)来对mvd进行编码。这种依赖于mvd等级或依赖于mvd幅度的mvd分辨率通常可称为自适应mvd分辨率、依赖于幅度的自适应mvd分辨率或依赖于幅度的mvd分辨率。术语“分辨率”还可以称为“像素分辨率”,自适应mvd分辨率可按如下示例实施方式所描述的各种方式实施,以实现总体上更好的压缩效率。特别地,由于统计观察,以非适应的方式以与低幅度或低等级mvd相似的水平处理大幅度或高等级mvd的mvd分辨率可能不会显著增加具有大幅度或高等级mvd的块的帧间预测残差编码效率,因此,通过瞄准较低精度mvd而减少的信号比特数量可能大于由于这种较低精度mvd引起的对帧间预测残差进行编码所需的额外比特。换句话说,对于大幅度或高等级mvd使用较高的mvd分辨率可能不会比使用较低的mvd分辨率产生太多的编码增益。
[0202]
在一些一般示例实施方式中,mvd的像素分辨率或精度可以随着mvd等级的增加而降低或不增加。降低mvd的像素分辨率对应于更粗的mvd(或从一个mvd级别到下一个mvd级
别的更大步长)。在一些实施方式中,mvd像素分辨率和mvd等级之间的对应关系可以被指定、预定义或预配置,因此可以不需要在编码比特流中用信号发送。
[0203]
在一些示例实施方式中,表3中的mv等级可以分别与不同的mvd像素分辨率相关联。
[0204]
在一些示例实施方式中,每个mvd等级可以与单个允许的分辨率相关联。在一些其他实施方式中,一个或多个mvd等级可以与两个或更多个可选mvd像素分辨率相关联。因此,在具有这种mvd等级的当前mvd分量的比特流中的信号之后可以跟随用于指示为当前mvd分量选择的可选像素分辨率的附加信号。
[0205]
在一些示例实施方式中,允许自适应的mvd像素分辨率可以包括但不限于1/64像素(1/64-pel)、1/32-pel、1/16-pel、1/8-pel、1-4-pel、1/2-pel、1-pel、2-pel、4-pel
……
(按照分辨率的降序)。因此,每个升序mvd等级可以以非升序方式与这些mvd像素分辨率中的一个相关联。在一些实施方式中,mvd等级可以与两个或更多以上的分辨率相关联,并且较高的分辨率可以低于或等于先前mvd等级的较低分辨率。例如,如果表4中的mv_class_3与可选的1-pel和2-pel分辨率相关联,那么表4中的mv_class_4可以相关联的最高分辨率是2-pel。在一些其他实施方式中,mv等级的最高允许分辨率可以高于在前(更低)mv等级的最低允许分辨率。然而,升序的mv等级允许分辨率的平均值可以只是非升序的。
[0206]
在一些实施方式中,当允许分数像素分辨率高于1/8-pel时,“mv_fr”和“mv_hp”信令可以相应地扩展到总共大于3个分数比特。
[0207]
在一些示例实施方式中,分数像素分辨率可仅被允许用于低于或等于阈值mvd等级的mvd等级。例如,在表4中,分数像素分辨率可以只允许mvd-class 0,而不允许所有其他mv等级。同样,对于低于或等于表4中的任何一个其他mv等级的mvd等级,才可以允许分数像素分辨率。对于高于阈值mvd等级的其他mvd等级,仅允许mvd的整数像素分辨率。以这种方式,对于用高于或等于阈值mvd等级的mvd用信号发送的mvd,可以不需要用信号发送分数分辨率信令,例如,“mv-fr”和/或“mv-hp”比特中的一个或多个。对于分辨率低于1像素的mvd等级,可以进一步减少“mv-bit”信令中的比特数。例如,对于表4中的mv_class_5,mvd像素偏移的范围是(32,64],因此需要5比特以1-pel分辨率来用信号发送整个范围。然而,如果mv_class_5与2-pel mvd分辨率(低于1-pel分辨率)相关联,则“mv-bit”可以需要4比特而不是5比特,并且在用信号发送“mv_class”之后不需要用信号发送“mv-fr”和“mv-hp”中的任一个作为mv-class_5。
[0208]
在一些示例实施方式中,分数像素分辨率可仅被允许用于整数值低于阈值整数像素值的mvd。例如,分数像素分辨率可仅允许用于小于5像素的mvd。对应于该示例,对于表4的mv_class_0和mv_class_1,可以允许分数分辨率,对于所有其它mv等级,则不允许分数分辨率。再例如,分数像素分辨率可仅被允许用于小于7像素的mvd。对应于该示例,对于表4的mv_class_0和mv_class_1(具有低于5像素的范围),可以允许分数分辨率,而对于mv_class_3和更高的(具有高于5像素的范围),则不允许分数分辨率。对于属于mv_class_2的mvd,其像素范围包含5像素,根据“mv-bit”值,可以允许针对mvd的分数像素分辨率。如果“m-bit”值用信号发送为1或2(使得用信号发送的mvd的整数部分是5或6,计算为从mv_class_2的像素范围的开始,具有由“m-bit”指示的偏移1或2),那么可以允许分数像素分辨率。否则,如果“mv-bit”值用信号发送为3或4(使得用信号发送的mvd的整数部分是7或8),
那么分数像素分辨率可不被允许。
[0209]
在一些其它实施方式中,对于等于或高于阈值mv等级的mv等级,可以仅允许单个mvd值。例如,这样的阈值mv等级可以是mv_class 2。因此,mv_class_2及以上可仅被允许具有单个mvd值并且没有分数像素分辨率。这些mv等级的单个允许的mvd值可以是预定义的。在一些示例中,允许的单个值可以是表4中这些mv等级的相应范围的较高端值。例如,mv_class_2到mv_class_10可以高于或等于mv_class 2的阈值类别,并且这些类别的单个允许的mvd值可以分别预定义为8、16、32、64、128、256、512、1024和2048。在一些其他示例中,允许的单个值可以是表4中这些mv等级的相应范围的中间值。例如,mv_class_2到mv_class_10可以高于类别阈值,并且这些类别的单个允许的mvd值可以分别预定义为3、6、12、24、48、96、192、384、768和1536。范围内的任何其他值也可以被定义为各个mvd等级的单个允许的分辨率。
[0210]
在上述实施方式中,只有“mv_class”信令足以在所发信号的“mv_class”等于或高于预定义的mvd等级阈值时确定mvd值。然后使用“mv_class”和“mv_sign”来确定mvd的幅度和方向。
[0211]
因此,当仅针对一个参考帧(或者来自参考帧列表0或列表1,但不是来自两者)用信号发送mvd时,或者针对两个参考帧联合用信号发送mvd时,mvd的精度(或分辨率)可取决于表3中相关联的运动矢量差的类别和/或mvd的幅度。
[0212]
在一些其他示例实施方式中,mvd的像素分辨率或精度可以随着mvd幅度的增加而降低或不增加。例如,像素分辨率可以取决于mvd幅度的整数部分。在一些实施方式中,可以仅对于小于或等于幅度阈值的mvd幅度允许分数像素分辨率。对于解码器,可以首先从比特流中提取mvd幅度的整数部分。然后可以确定像素分辨率,并且然后可以做出关于比特流中是否存在任何分数mvd并且需要被解析的判定(例如,如果对于特定提取的mvd整数幅度不允许分数像素分辨率,则没有分数mvd比特包括在需要提取的比特流中)。上述涉及mvd等级相关的自适应mvd像素分辨率的示例实施方式应用于mvd幅度相关的自适应mvd像素分辨率。对于特定示例,可以允许高于或包含幅度阈值的mvd等级仅具有一个预定义值。
[0213]
如上详细描述的,对于复合参考帧间预测模式,当前编码块可以由两个或更多个参考块来预测。每个参考块可以与参考帧相关联(相对于与当前编码块相关联的当前帧,单向或双向的)。每个参考块可以与相对于当前编码块的运动矢量相关联。当前编码块的参考块的运动矢量通常可以不同(尽管在某些情况下可以相同)。如上所述,这些运动矢量中的每个运动矢量可以通过例如从drl中的候选运动矢量中选择的参考运动矢量结合相应的mvd来预测。
[0214]
在一些实施方式中,对于与当前编码块的对应的两个或更多个参考块相关联的任何两个或更多个运动矢量的预测,可以联合用信号发送单个mvd(而不是两个或更多个mvd),并且可以从用信号发送的mvd导出与两个或更多个预测运动矢量相关联的实际两个或更多个mvd。换句话说,对于编码器,可以首先识别对应于两个或更多个参考帧的两个或更多个参考块,用于预测当前帧中的当前编码块。所述两个或更多个参考块的对应的两个或更多个运动矢量可由编码器确定。用于预测两个或更多个运动矢量的预测器/参考运动矢量可以从drl中选择(例如,预测器/参考运动矢量可以被识别为与待预测的至少两个运动矢量最相似的运动矢量)。在一些其他实施方式中,可以识别两个或更多个预测器/参考
运动矢量(换句话说,不同的运动矢量可以与drl中的不同候选预测器/参考运动矢量相关联)。然后,编码器可以通过获取待预测的两个或更多个运动矢量和一个(或多个)相应的预测器/参考运动矢量(公共预测器/参考运动矢量或单独的预测器/参考运动矢量)之间的差,获得与两个或更多个运动矢量对应的两个或更多个mvd。在一些示例实施方式中,两个或更多个mvd可以以各种方式联合编码为一个mvd,并且具有可用于对所联合编码的mvd进行解码的信息项,使得可以在解码器处导出两个或更多个mvd的单个mvd。在一些实施方式中,给定一个单个参考帧,可以基于给定的参考帧和当前帧导出另一参考帧。
[0215]
相应地,解码器可以首先从比特流中提取所联合编码的mvd和其他信息项。然后,解码器可以基于所联合编码/用信号发送的mvd和其他信息项来导出两个或更多个mvd的单个mvd。然后,解码器可以基于导出的单个mvd以及来自写入比特流的drl的单个预测器/参考运动矢量或单独的预测器/参考运动矢量导出两个或更多个运动矢量。
[0216]
图18示出了遵循上述联合mvd分辨率实现的基本原则的示例方法的流程图1800。示例性解码方法流程从1801开始,并可以包括以下步骤的一部分或全部:在s1810中,接收已编码视频比特流;在s1820中,从已编码视频比特流确定当前视频块的标志,其中,标志指示是否将联合运动矢量差(mvd)编码应用于当前视频块;和/或在s1830中,响应于标志指示联合mvd编码应用于当前视频块:由设备从已编码视频比特流获取当前视频块的联合mvd,由设备基于联合mvd导出当前视频块的mvd,以及由设备基于联合mvd和所导出的mvd对当前视频块进行解码。示例方法在s1899处停止。
[0217]
在一些实施方式中,可以在复合参考模式中使用两个参考帧。当一个运动矢量对的两个参考帧的poc大于或小于当前帧的poc时,可以将两个参考帧的方向视为相同。否则,当一个参考帧的poc大于当前帧的poc,而另一个参考帧的poc小于当前帧的poc时,可以认为两个参考帧的方向不同。
[0218]
在一些实施方式中,图18中的方法还可以包括:以复合参考模式获取针对所述当前视频块的第一参考帧和第二参考帧;响应于所述标志指示所述联合mvd编码应用于所述当前视频块以及所述复合参考模式包括new_nearmv:将所述联合mvd应用于所述当前视频块的所述第一参考帧,以及将所导出的mvd应用于所述当前视频块的所述第二参考帧;和/或响应于所述标志指示所述联合mvd编码应用于所述当前视频块以及所述复合参考模式包括near_newmv:将所述联合mvd应用于所述当前视频块的所述第二参考帧,以及将所导出的mvd应用于所述当前视频块的所述第一参考帧。
[0219]
在一些实施方式中,在复合参考模式中,当针对多个参考帧仅用信号发送一个mvd时,例如被命名为advanced_mvd_flag(或joint_mvd_flag)的一个标志(或语法)可以被发送到解码器,以指示参考列表0和参考列表1的mvd是否被联合用信号发送。当advanced_mvd_flag的值指示参考列表0和参考列表1的mvd被联合用信号发送时,仅一个联合mvd(例如被命名为joint_delta_mv)用信号发送并发送到解码器,以及参考列表0和参考列表1的mvd是从joint_delta_mv导出的。在一些实施方式中,当编码的帧间预测模式为near_newmv或new_nearmv时,可以用信号发送该标志(或语法)advanced_mvd_flag。
[0220]
在一些实施方式中,响应于所述标志指示所述联合mvd编码应用于所述当前视频块,确定自适应mvd像素分辨率应用于编码mvd。在一些实施方式中,获取当前视频块的联合mvd可以包括:提取联合mvd的mvd等级;基于所述mvd等级确定所述联合mvd的当前mvd像素
分辨率;和/或基于当前mvd像素分辨率从视频比特流中提取联合mvd。
[0221]
在一些实施方式中,当发送标志(或语法)advanced_mvd_flag以指示参考列表0和参考列表1的mvd被联合用信号发送时,还应用针对运动矢量差方法的自适应分辨率。
[0222]
在一些实施方式中,标志包括以下值之一:指示将一个mvd用信号发送至一个参考帧的第一值,指示将一个mvd用信号发送至一个参考帧以及自适应mvd像素分辨率应用于编码mvd的第二值,和/或指示将一个mvd用信号联合发送至两个参考帧的第三值。对于非限制性示例,第一值可以是0,第二值可以是1,第三值可以是2。
[0223]
在一些实施方式中,advanced_mvd_flag的值可以是0、1或2中的一个。当advanced_mvd_flag等于0时,针对列表0或列表1用信号发送一个mvd。当advanced_mvd_flag等于1时,针对列表0或列表1用信号发送一个mvd,并且应用针对运动矢量差方法的自适应分辨率。当advanced_mvd_flag等于2时,参考列表0和参考列表1的mvd联合用信号发送。
[0224]
在一些实施方式中,标志包括以下值之一:指示将一个mvd用信号发送至一个参考帧的第一值,指示将一个mvd用信号发送至一个参考帧以及自适应mvd像素分辨率应用于编码mvd的第二值,和/或指示将一个mvd用信号联合发送至两个参考帧以及自适应mvd像素分辨率应用于编码mvd的第三值。
[0225]
在一些实施方式中,advanced_mvd_flag的值可以是0、1或2中的一个。当advanced_mvd_flag等于0时,针对列表0或列表1用信号发送一个mvd。当advanced_mvd_flag等于1时,针对列表0或列表1用信号发送一个mvd,并且应用针对运动矢量差方法的自适应分辨率。当advanced_mvd_flag等于2时,参考列表0和参考列表1的mvd联合用信号发送,还应用针对运动矢量差方法的自适应分辨率。
[0226]
在一些实施方式中,标志包括以下值之一:指示将一个mvd用信号发送至一个参考帧的第一值,指示将一个mvd用信号发送至一个参考帧以及自适应mvd像素分辨率应用于编码mvd的第二值,指示将一个mvd用信号联合发送至两个参考帧的第三值,和/或指示将一个mvd用信号联合发送至两个参考帧以及自适应mvd像素分辨率应用于编码mvd的第四值。对于非限制性示例,第一值可以是0,第二值可以是1,第三值可以是2,和/或第四值可以是3。
[0227]
在一些实施方式中,从高级语法获取第二标志,所述高级语法包括以下至少之一:视频参数集vps、图片参数集pps、序列参数集sps、图片头、帧头、条带头、瓦片头或编码树单元ctu头;以及第二标志指示是否以编码块级用信号发送所述标志。
[0228]
在一些实施方式中,以高级语法(包括但不限于sps、vps、pps、图片头、瓦片头、条带头、帧头、ctu(或超级块)头)用信号发送另一个标志,以指示是否可以在已编码块级用信号发送advanced_mvd_flag语法。
[0229]
在一些实施方式中,标志指示是否在单参考模式下将联合mvd应用于所述当前视频块以及导出所述当前视频块的参考帧。图18中的方法还可以包括:响应于所述标志指示所述联合mvd应用于所述当前视频块以及导出到所述当前视频块的参考帧:获取所述当前视频块的第一参考帧,基于所述第一参考帧导出第二参考帧,将所述联合mvd应用于所述当前视频块的所述第一参考帧,和/或将所导出的mvd应用于所述当前视频块的所导出的第二参考帧。
[0230]
对于非限制性示例,在单个参考模式中,一个标志/语法(例如被命名为advanced_
mvd_flag(或joint_mvd_flag))可以被发送到解码器,以指示针对当前用信号发送的参考图片的用信号发送的mvd是否可以用于导出应用于针对运动补偿的另一导出的参考帧的另一mvd。当advanced_mvd_flag的值指示针对当前参考图片的用信号发送的mvd可用于导出针对运动补偿的另一mvd时,仅一个联合mvd(命名为joint_delta_mv)用信号发送并发送到解码器。另一个参考帧可以基于用信号发送的参考帧和/或当前帧导出。从joint_delta_mv导出用于用信号发送的参考帧和另一导出的参考帧的mvd。
[0231]
在一些实施方式中,标志指示是否在单参考模式下导出mv以及导出当前视频块的参考帧。对于非限制性示例,在单个参考模式中,一个标志/语法(例如被命名为advanced_mvd_flag(或joint_mvd_flag))可以被发送到解码器,以指示针对当前用信号发送的参考帧/图片的运动矢量预测器(mvp)是否可以用于导出应用于针对运动补偿的另一导出的参考帧的另一mv。mv可以基于mvp和mvd导出,例如,mv=mvp+mvd。
[0232]
在本公开的实施例和实施方式中,可以根据需要以任何数量或顺序组合或设置任意步骤和/或操作。步骤和/或操作中的两个或更多个可以并行执行。本公开的实施例和实施方式可以单独使用或以任何顺序组合使用。此外,每个方法(或实施方式)、编码器和解码器可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一个示例中,一个或多个处理器执行存储在非瞬态计算机可读介质中的程序。本公开中的实施例可以应用于亮度块或色度块。术语块可以被解释为预测块、编码块或编码单元,即cu。本文的术语块也可以用来指代变换块。在以下项目中,当说到块大小时,可以指块的宽度或高度,或宽度和高度的最大值,或宽度和高度的最小值,或块的面积大小(宽度*高度),或纵横比(宽度:高度,或高度:宽度)。
[0233]
可以将上述技术实现为计算机软件,该计算机软件使用计算机可读指令,且物理地存储在一个或多个计算机可读介质中。例如,图19示出了适于实施所公开主题的某些实施例的计算机系统(1900)。
[0234]
可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,任何合适的机器代码或计算机语言可以经受汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可以由一个或多个计算机中央处理单元(cpu)、图形处理单元(gpu)等直接执行或通过解释、微代码等执行。
[0235]
指令可以在各种类型的计算机或其组件上执行,例如包括个人计算机、平板计算机、服务器、智能电话、游戏装置、物联网装置等。
[0236]
图19中所示的计算机系统(1900)的组件本质上是示例性的,并且不旨在对实施本公开的实施例的计算机软件的用途或功能的范围提出任何限制。组件的配置也不应被解释为具有与计算机系统(1900)的示例性实施例中所示的组件中的任何一个组件或组件的组合有关的任何依赖或要求。
[0237]
计算机系统(1900)可以包括某些人机接口输入装置。此类人机接口输入装置可以响应于一个或多个人类用户通过例如下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘)。人机接口装置还可以用于捕获不一定与人的意识输入直接相关的某些媒介,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像相机获取摄影图像)、视频(例如二维视频、包括立体视频的三维视频)等。
[0238]
输入人机接口设备可以包括下述中的一项或多项(每种中仅示出一个):键盘(1901)、鼠标(1902)、触控板(1903)、触摸屏(1910)、数据手套(未示出)、操纵杆(1905)、麦克风(1906)、扫描仪(1907)、相机(1908)。
[0239]
计算机系统(1900)可以包括某些人机接口输出装置。这样的人机接口输出装置可以例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出装置可以包括触觉输出装置(例如触摸屏(1910)的触觉反馈、数据手套(未示出)或操纵杆(1905),但也可以是不作为输入装置的触觉反馈装置)、音频输出装置(例如:扬声器(1909)、耳机(未描绘))、视觉输出装置(例如包括crt屏幕、lcd屏幕、等离子屏幕、oled屏幕的屏幕(1910),每种屏幕都有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能-其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未描绘)、全息显示器和烟箱(未描绘)以及打印机(未描绘)来输出二维视觉输出或超过三维的输出。
[0240]
计算机系统(1900)还可以包括人类可访问存储装置及其关联介质,例如,包括具有cd/dvd等介质(1921)的cd/dvd rom/rw(1920)的光学介质、指状驱动器(1922),可拆卸硬盘驱动器或固态驱动器(1923)、诸如磁带和软盘之类的传统磁性介质(未描绘)、诸如安全软件狗之类的基于专用rom/asic/pld的装置(未描绘)等。
[0241]
本领域技术人员还应该理解,结合当前公开的主题使用的术语“计算机可读介质”不涵盖传输介质、载波或其它暂时性信号。
[0242]
计算机系统(1900)还可以包括到一个或多个通信网络(1955)的接口(1954)。网络可以例如是无线网络、有线网络、光网络。网络还可以是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。网络的示例包括诸如以太网之类的局域网、无线lan、包括gsm、3g、4g、5g、lte等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括can总线的车辆和工业用电视等等。某些网络通常需要连接到某些通用数据端口或外围总线(1949)的外部网络接口适配器(例如,计算机系统(1900)的usb端口);如下所述,其它网络接口通常通过连接到系统总线而集成到计算机系统(1900)的内核中(例如,连接到pc计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统(1900)可以使用这些网络中的任何一个网络与其它实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些canbus装置的canbus)或双向的,例如,使用局域网或广域网数字网络连接到其它计算机系统。如上所述,可以在那些网络和网络接口中的每个上使用某些协议和协议栈。
[0243]
上述人机接口装置、人机可访问的存储装置和网络接口可以附接到计算机系统(1900)的内核(1940)。
[0244]
内核(1940)可以包括一个或多个中央处理单元(cpu)(1941),图形处理单元(gpu)(1942),现场可编程门区域(fpga)(1943)形式的专用可编程处理单元、用于某些任务的硬件加速器(1944),图形适配器(1950)等。这些装置以及只读存储器(rom)(1945)、随机存取存储器(1946)、诸如内部非用户可访问的硬盘驱动器、ssd等之类的内部大容量存储器(1947)可以通过系统总线(1948)连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(1948),以能够通过附加的cpu、gpu等进行扩展。外围装置可以直接连接到内核的系统总线(1948)或通过外围总线(1949)连接到内核的系统总线(1848)。在一个示例中,屏幕(1910)可以连接到图形适配器(1950)。外围总线的体系结构包括pci、usb等。
[0245]
cpu(1941)、gpu(1942)、fpga(1943)和加速器(1944)可以执行某些指令,这些指令可以组合来构成上述计算机代码。该计算机代码可以存储在rom(1945)或ram(1946)中。过渡数据也可以存储在ram(1946),而永久数据可以例如存储在内部大容量存储器(1947)中。可以通过使用高速缓存来进行到任何存储装置的快速存储及检索,该高速缓存可以与下述紧密关联:一个或多个cpu(1941)、gpu(1942)、大容量存储器(1947)、rom(1945)、ram(1946)等。
[0246]
计算机可读介质可以在其上具有用于执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。
[0247]
作为非限制性示例,可以由于一个或多个处理器(包括cpu、gpu、fpga、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构(1900),特别是内核(1940)的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储相关联的介质,以及某些非暂时性的内核(1940)的存储器,例如内核内部大容量存储器(1947)或rom(1945)。可以将实施本公开的各实施例的软件存储在此类装置中并由内核(1940)执行。根据特定需要,计算机可读介质可以包括一个或多个存储器装置或芯片。软件可以使得内核(1940),特别是其中的处理器(包括cpu、gpu、fpga等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在ram(1946)中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可以由于硬连线或以其它方式体现在电路(例如,加速器(1944))中的逻辑而使得计算机系统提供功能,该电路可以替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可以包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可以包括存储用于执行的软件的电路(例如集成电路(ic))、体现用于执行的逻辑的电路或包括两者。本公开包括硬件和软件的任何合适的组合。
[0248]
尽管本公开已经描述了多个示例性实施例,但是存在落入本公开的范围内的修改、置换和各种替换等效物。因此,应当理解,本领域技术人员将能够设计出许多虽然未在本文中明确示出或描述,但是体现了本公开的原理,因此落入本公开的精神和范围内的系统和方法。
[0249]
附录a:首字母缩略语
[0250]
jem:联合探索模型
[0251]
vvc:通用视频编码
[0252]
bms:基准集
[0253]
mv:运动矢量
[0254]
hevc:高效视频编码
[0255]
sei:补充增强信息
[0256]
vui:视频可用性信息
[0257]
gop:图片群组
[0258]
tu:变换单元
[0259]
pu:预测单元
[0260]
ctu:编码树单元
[0261]
ctb:编码树块
[0262]
pb:预测块
[0263]
hrd:假想参考解码器
[0264]
snr:信噪比
[0265]
cpu:中央处理单元
[0266]
gpu:图形处理单元
[0267]
crt:阴极射线管
[0268]
lcd:液晶显示器
[0269]
oled:有机发光二极管
[0270]
cd:光盘
[0271]
dvd:数字视频光盘
[0272]
rom:只读存储器
[0273]
ram:随机存取存储器
[0274]
asic:专用集成电路
[0275]
pld:可编程逻辑器件
[0276]
lan:局域网
[0277]
gsm:全球移动通信系统
[0278]
lte:长期演进
[0279]
canbus:控制器局域网总线
[0280]
usb:通用串行总线
[0281]
pci:互连外围设备
[0282]
fpga:现场可编程门区域
[0283]
ssd:固态硬盘
[0284]
ic:集成电路
[0285]
hdr:高动态范围
[0286]
sdr:标准动态范围
[0287]
jvet:联合视频探索委员会
[0288]
mpm:最可能模式
[0289]
waip:广角帧内预测
[0290]
cu:编码单元
[0291]
pu:预测单元
[0292]
tu:变换单元
[0293]
ctu:编码树单元
[0294]
pdpc:位置相关预测组合
[0295]
isp:帧内子分区
[0296]
sps:序列参数设置
[0297]
pps:图片参数集
[0298]
aps:自适应参数集
[0299]
vps:视频参数集
[0300]
dps:解码参数集
[0301]
alf:自适应环路滤波器
[0302]
sao:采样自适应偏移
[0303]
cc-alf:交叉分量自适应环路滤波器
[0304]
cdef:约束方向增强滤波器
[0305]
ccso:交叉分量样本偏移
[0306]
lso:局部采样偏移
[0307]
lr:环路恢复滤波器
[0308]
av1:开放媒体联盟视频1(aomedia video 2)
[0309]
av2:开放媒体联盟视频2(aomedia video 2)
[0310]
mvd:运动矢量差
[0311]
cfl:从亮度预测色度
[0312]
sdt:半解耦树
[0313]
sdp:半解耦分割
[0314]
sst(semi separate tree):半分块树
[0315]
sb:超级块
[0316]
ibc(或intrabc):帧内块拷贝
[0317]
cdf:累积密度函数
[0318]
scc:屏幕内容编码
[0319]
gbi:广义双预测
[0320]
bcw:基于cu级权重的双预测
[0321]
ciip:组合帧内帧间预测
[0322]
poc:图片顺序计数
[0323]
rps:参考图片集
[0324]
dpb:解码图片缓冲器
[0325]
mmvd:具有运动矢量差的合并模式
[0326]
mv:运动矢量
[0327]
mvp:运动矢量预测器

技术特征:
1.一种用于对视频比特流中的当前视频块进行解码的方法,包括:由设备接收已编码视频比特流,所述设备包括存储指令的存储器和与所述存储器通信的处理器;由所述设备从所述已编码视频比特流确定当前视频块的标志,其中,所述标志指示是否联合运动矢量差mvd编码应用于所述当前视频块;以及响应于所述标志指示所述联合mvd编码应用于所述当前视频块:由所述设备从所述已编码视频比特流获取所述当前视频块的联合mvd,由所述设备基于所述联合mvd导出所述当前视频块的mvd,以及由所述设备基于所述联合mvd和所导出的mvd对所述当前视频块进行解码。2.根据权利要求1所述的方法,还包括:以复合参考模式获取所述当前视频块的第一参考帧和第二参考帧;响应于所述标志指示所述联合mvd编码应用于所述当前视频块以及所述复合参考模式包括new_nearmv:将所述联合mvd应用于所述当前视频块的所述第一参考帧,以及将所导出的mvd应用于所述当前视频块的所述第二参考帧;以及响应于所述标志指示所述联合mvd编码应用于所述当前视频块以及所述复合参考模式包括near_newmv:将所述联合mvd应用于所述当前视频块的所述第二参考帧,以及将所导出的mvd应用于所述当前视频块的所述第一参考帧。3.根据权利要求1所述的方法,还包括:响应于所述标志指示所述联合mvd编码应用于所述当前视频块,确定自适应mvd像素分辨率应用于编码mvd。4.根据权利要求3所述的方法,其中,所述获取所述当前视频块的联合mvd包括:提取所述联合mvd的mvd等级;基于所述mvd等级确定所述联合mvd的当前mvd像素分辨率;以及从与所述当前mvd像素分辨率对应的视频比特流中提取所述联合mvd。5.根据权利要求1所述的方法,其中:所述标志包括以下值中的一个:第一值,所述第一值指示将一个mvd用信号发送至一个参考帧,第二值,所述第二值指示将一个mvd用信号发送至一个参考帧以及自适应mvd像素分辨率应用于编码mvd,或者第三值,所述第三值指示将一个mvd用信号联合发送至两个参考帧。6.根据权利要求1所述的方法,其中:所述标志包括以下值中的一个:第一值,所述第一值指示将一个mvd用信号发送至一个参考帧,第二值,所述第二值指示将一个mvd用信号发送至一个参考帧以及自适应mvd像素分辨率应用于编码mvd,或者第三值,所述第三值指示将一个mvd用信号联合发送至两个参考帧以及自适应mvd像素分辨率应用于编码mvd。7.根据权利要求1所述的方法,其中:
所述标志包括以下值之一:第一值,所述第一值指示将一个mvd用信号发送至一个参考帧,第二值,所述第二值指示将一个mvd用信号发送至一个参考帧以及自适应mvd像素分辨率应用于编码mvd,第三值,所述第三值指示将一个mvd用信号联合发送至两个参考帧,或者第四值,所述第四值指示将一个mvd用信号联合发送至两个参考帧以及自适应mvd像素分辨率应用于编码mvd。8.根据权利要求1所述的方法,其中,从高级语法获取第二标志,所述高级语法包括以下至少之一:视频参数集vps、图片参数集pps、序列参数集sps、图片头、帧头、条带头、瓦片头或编码树单元ctu头;以及所述第二标志指示是否以编码块级用信号发送所述标志。9.根据权利要求1所述的方法,其中:所述标志指示是否在单参考模式下应用联合mvd并导出所述当前视频块的参考帧。10.根据权利要求9所述的方法,还包括:响应于所述标志指示应用所述联合mvd并导出所述当前视频块的参考帧:获取所述当前视频块的第一参考帧,基于所述第一参考帧导出第二参考帧,将所述联合mvd应用于所述当前视频块的所述第一参考帧,以及将所导出的mvd应用于所述当前视频块的所导出的第二参考帧。11.根据权利要求1所述的方法,其中:所述标志指示是否在单参考模式下导出运动向量mv并导出所述当前视频块的参考帧。12.一种用于对视频比特流中的当前视频块进行解码的装置,所述装置包括:存储指令的存储器;以及与所述存储器通信的处理器,其中,当所述处理器执行所述指令时,所述处理器被配置为使所述装置执行权利要求1至11中任一项所述的方法。13.一种存储指令的非暂时性计算机可读存储介质,其中,当所述指令由处理器执行时,所述指令被配置为使所述处理器执行权利要求1到11中任一项所述的方法。

技术总结
本公开总体上涉及视频编码,具体地,涉及用于提供用于运动矢量差的联合编码的信令方案的方法和系统。公开了一种用于对视频比特流中的当前视频块进行解码的示例性方法。方法包括:接收已编码视频比特流;从已编码视频比特流确定当前视频块的标志,其中,标志指示是否将联合运动矢量差(MVD)编码应用于当前视频块;以及响应于标志指示联合MVD编码应用于当前视频块:由设备从已编码视频比特流获取当前视频块的联合MVD,由设备基于联合MVD导出当前视频块的MVD,以及由设备基于联合MVD和所导出的MVD对当前视频块进行解码。的MVD对当前视频块进行解码。的MVD对当前视频块进行解码。


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

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

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

分享:

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

相关推荐