用于帧间帧内联合预测模式的二次变换的制作方法

未命名 08-07 阅读:142 评论:0

用于帧间帧内联合预测模式的二次变换
1.引用并入
2.本技术要求于2022年9月21日提交的、申请号为17/949,429、发明名称为"用于帧间帧内联合预测模式的二次变换"的美国非临时申请的优先权,以及于2021年10月1日提交的、申请号为63/251,473、发明名称为“用于帧间帧内联合预测模式的二次变换”的美国临时申请的优先权,其全部内容通过引用并入本技术中。
技术领域
3.本技术实施例涉及先进的视频编/解码技术集合,尤其涉及用于帧间帧内联合预测模式的变换技术和配置。


背景技术:

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


技术实现要素:

23.本技术实施例涉及先进的视频编/解码技术集合,尤其涉及用于帧间帧内联合预测模式的变换技术和配置。
24.在示例性实施方式中,公开了一种对视频码流中的视频块进行解码的方法。所述方法包括:确定所述当前块是在ciip模式下预测的;针对所述视频码流中的所述当前块,生成二次变换系数集合;通过以下方式,应用组合的帧间帧内二次变换:对所述二次变换系数集合执行反向可分离二次变换或反向不可分离二次变换,以获得所述当前块的主变换系数集合;对所述主变换系数集合执行反向主变换,以获得所述当前块的残差块;及,在所述ciip模式下,基于所述残差块对所述当前块进行解码。
25.在上述实施方式中,所述方法进一步包括:在ciip子模式候选集合中,确定用于所述视频码流中的所述当前块的所述ciip模式的ciip子模式,所述ciip子模式指示在帧内预测模式集合中在所述当前块的所述ciip模式下使用的帧内预测模式;基于所述帧内预测模式,确定用于所述反向可分离二次变换或所述反向不可分离二次变换的变换核。
26.在上述任一实施方式中,所述方法进一步包括:基于所述帧内预测模式,从多个变换核集合中确定变换核集合;从所述视频码流中抽取出与所述当前块相关联的核选择指标;基于所述核选择指标,从所述变换核集合中选择出所述变换核。
27.在一些实施方式中,公开了视频设备。所述视频设备包括用于存储计算机指令的存储器以及处理电路,所述处理电路被配置为执行所述计算机指令以实现上述任一方法。
28.本技术实施例还提供了一种非暂时性计算机可读存储介质,其上存储有指令,当所述指令由用于视频解码和/或编码的计算机执行时,使得所述计算机实现上述任一用于视频解码和/或编码的方法。
附图说明
29.根据以下详细描述和附图,所公开的主题的其他特征、性质和各种优点将进一步明确,其中:
30.图1a是帧内预测模式的示例性子集的示意图;
31.图1b是示例性帧内预测方向的示意图;
32.图2示出了根据一实施例的当前块及其周围用于运动矢量预测的空间合并候选的示意图;
33.图3是根据一实施例的通信系统(300)的简化框图的示意图;
34.图4是根据另一实施例的通信系统(400)的简化框图的示意图;
35.图5是根据一实施例的解码器的简化框图的示意图;
36.图6是根据一实施例的编码器的简化框图的示意图;
37.图7示出了根据另一实施例的编码器的框图;
38.图8示出了根据另一实施例的解码器的框图;
39.图9示出了根据本技术实施例的编码块分区的示例;
40.图10示出了根据本技术另一实施例的编码块分区的示例;
41.图11示出了根据本技术另一实施例的编码块分区的示例;
42.图12示出了根据本技术另一实施例的编码块分区的示例;
43.图13示出了根据本技术实施例的将编码块分区成多个变换块以及变换块的编码顺序的示例;
44.图14示出了根据本技术另一实施例的将编码块分区成多个变换块以及变换块的
编码顺序的示例;
45.图15示出了根据本技术另一实施例的将编码块分区成多个变换块的示例;
46.图16示出了根据本技术实施例的基于各个参考线的帧内预测方案的示例;
47.图17示出了根据本技术实施例的对于块的paeth模式的上、左、上左位置;
48.图18示出了根据本技术实施例的递归帧内滤波模式的示例;
49.图19示出了根据本技术实施例的平面旋转变换的示例;
50.图20示出了根据本技术实施例的各种dct-2、dct-4部分蝴蝶查找表;
51.图21示出了根据本技术实施例的dst-7部分蝴蝶查找表;
52.图22示出了根据本技术实施例的低频非分离变换过程;
53.图23示出了根据本技术实施例的方法流程图;
54.图24是根据一实施例的计算机系统的示意图。
具体实施方式
55.图3示出了根据本技术一实施例的通信系统(300)的简化框图。通信系统(300)包括可以经由例如网络(350)彼此通信的多个终端设备。例如,通信系统(300)包括经由网络(350)互连的第一对终端设备(310)和(320)。在图3的示例中,第一对终端设备(310)和(320)执行数据的单向传输。例如,终端设备(310)可以对视频数据(例如,由终端设备(310)捕获的视频图片流)进行编码,以经由网络(350)传输到另一个终端设备(320)。已编码视频数据可以以至少一个已编码视频码流的形式传输。终端设备(320)可以从网络(350)接收已编码视频数据,对已编码视频数据进行解码以恢复视频图片,并且根据恢复的视频数据显示视频图片。在媒体服务应用等中,单向数据传输可能很常见。
56.在另一个示例中,通信系统(300)包括第二对终端设备(330)和(340),其执行例如在视频会议期间可能发生的已编码视频数据的双向传输。对于数据的双向传输,在示例中,终端设备(330)和(340)中的每个终端设备可以对视频数据(例如,由终端设备捕获的视频图片流)进行编码,以经由网络(350)传输到终端设备(330)和(340)中的另一个终端设备。终端设备(330)和(340)中的每个终端设备还可以接收由终端设备(330)和(340)中的另一个终端设备传输的已编码视频数据,并且可以对已编码视频数据进行解码以恢复视频图片,并且可以根据恢复的视频数据在可访问的显示设备上显示视频图片。
57.在图3的示例中,终端设备(310)、(320)、(330)和(340)可以被示为服务器、个人计算机和智能电话,但是本技术的原理可以不限于此。本技术的实施例可以应用于膝上型计算机、平板计算机、媒体播放器和/或专用视频会议设备。网络(350)表示在终端设备(310)、(320)、(330)和(340)之间传送已编码视频数据的任何数量的网络,包括例如有线(wireline/wired)和/或无线通信网络。通信网络(350)可以在电路交换和/或分组交换信道中交换数据。代表性网络包括电信网络、局域网、广域网和/或因特网。为了本讨论的目的,网络(350)的架构和拓扑对于本技术的操作可能无关紧要,除非下文中所解释的。
58.作为实施例,图4示出视频编码器和视频解码器在流式传输环境中的放置方式。本技术所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字tv、在包括cd、dvd、存储棒等的数字介质上存储压缩视频等等。
59.流式传输系统可包括采集子系统(413),所述采集子系统可包括视频源(401),例
如数码相机,用于创建未压缩的视频图片流(402)。在实施例中,视频图片流(402)包括由视频源(401)的数码相机拍摄的样本。相较于已编码的视频数据(404)(或已编码的视频码流),视频图片流(402)被描绘为粗线以强调高数据量的视频图片流,视频图片流(402)可由电子装置(420)处理,所述电子装置(420)包括耦接到视频源(401)的视频编码器(403)。视频编码器(403)可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于视频图片流(402),已编码的视频数据(404)(或已编码的视频码流(404))被描绘为细线以强调较低数据量的已编码的视频数据(404)(或已编码的视频码流(404)),其可存储在流式传输服务器(405)上以供将来使用。至少一个流式传输客户端子系统,例如图3中的客户端子系统(406)和客户端子系统(408),可访问流式传输服务器(405)以检索已编码的视频数据(404)的副本(407)和副本(409)。客户端子系统(406)可包括例如电子装置(330)中的视频解码器(410)。视频解码器(410)对已编码的视频数据的传入副本(407)进行解码,且产生可在显示器(412)(例如显示屏)或另一呈现装置(未描绘)上呈现的输出视频图片流(411)。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频数据(404)、视频数据(407)和视频数据(409)(例如视频码流)进行编码。该些标准的实施例包括itu-t h.265。在实施例中,正在开发的视频编码标准非正式地称为下一代视频编码(versatile video coding,vvc),本技术可用于vvc标准的上下文中。
60.应注意,电子装置(420)和电子装置(430)可包括其它组件(未示出)。举例来说,电子装置(420)可包括视频解码器(未示出),且电子装置(430)还可包括视频编码器(未示出)。
61.图5是根据本技术公开的实施例的视频解码器(510)的框图。视频解码器(510)可设置在电子装置(530)中。电子装置(530)可包括接收器(531)(例如接收电路)。视频解码器(510)可用于代替图4实施例中的视频解码器(410)。
62.接收器(531)可接收将由视频解码器(510)解码的至少一个已编码视频序列;在同一实施例或另一实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列。可从信道(501)接收已编码视频序列,所述信道可以是通向存储已编码的视频数据的存储装置的硬件/软件链路。接收器(531)可接收已编码的视频数据以及其它数据,例如,可转发到它们各自的使用实体(未标示)的已编码音频数据和/或辅助数据流。接收器(531)可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器(515)可耦接在接收器(531)与熵解码器/解析器(520)(此后称为“解析器(520)”)之间。在某些应用中,缓冲存储器(515)是视频解码器(510)的一部分。在其它情况下,所述缓冲存储器(515)可设置在视频解码器(510)外部(未标示)。而在其它情况下,视频解码器(510)的外部设置缓冲存储器(未标示)以例如防止网络抖动,且在视频解码器(510)的内部可配置另一缓冲存储器(515)以例如处理播出定时。而当接收器(531)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,也可能不需要配置缓冲存储器(515),或可以将所述缓冲存储器做得较小。当然,为了在互联网等业务分组网络上使用,也可能需要缓冲存储器(515),所述缓冲存储器可相对较大且可具有自适应性大小,且可至少部分地实施于操作系统或视频解码器(510)外部的类似元件(未标示)中。
63.视频解码器(510)可包括解析器(520)以根据已编码视频序列重建符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息,以及用以控制显示装置(512)
(例如,显示屏)等显示装置的潜在信息,所述显示装置不是电子装置(530)的组成部分,但可耦接到电子装置(530),如图5中所示。用于显示装置的控制信息可以是辅助增强信息(supplemental enhancement information,sei消息)或视频可用性信息(video usability information,vui)的参数集片段(未标示)。解析器(520)可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼编码(huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器(520)可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(group of pictures,gop)、图片、图块、切片、宏块、编码单元(coding unit,cu)、块、变换单元(transform unit,tu)、预测单元(prediction unit,pu)等等。解析器(520)还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。
64.解析器(520)可对从缓冲存储器(515)接收的视频序列执行熵解码/解析操作,从而创建符号(521)。
65.取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号(521)的重建可涉及多个不同单元。涉及哪些单元以及涉及方式可由解析器(520)从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描述解析器(520)与下文的多个单元之间的此类子群控制信息流。
66.除已经提及的功能块以外,视频解码器(510)可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互并且可以彼此集成。然而,出于描述所公开主题的目的,概念上细分成下文的功能单元是适当的。
67.第一单元是缩放器/反向变换单元(551)。缩放器/反向变换单元(551)从解析器(520)接收作为符号(521)的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/反向变换单元(551)可输出包括样本值的块,所述样本值可输入到聚合器(555)中。
68.在一些情况下,缩放器/反向变换单元(551)的输出样本可属于帧内编码块;即:不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元(552)提供。在一些情况下,帧内图片预测单元(552)采用从当前图片缓冲器(558)提取的已重建信息生成大小和形状与正在重建的块相同的周围块。举例来说,当前图片缓冲器(558)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些情况下,聚合器(555)基于每个样本,将帧内预测单元(552)生成的预测信息添加到由缩放器/反向变换单元(551)提供的输出样本信息中。
69.在其它情况下,缩放器/反向变换单元(551)的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元(553)可访问参考图片存储器(557)以提取用于预测的样本。在根据符号(521)对提取的样本进行运动补偿之后,这些样本可由聚合器(555)添加到缩放器/反向变换单元(551)的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(553)从参考图片存储器(557)内的地址获取预测样本可受到运动矢量控制,且所述运动矢量以所述符号(521)的形式而供运动补偿预测单元(553)使用,所述符号(521)例如是包括x、y和参考图片分量。运动补偿还可包括在
使用子样本精确运动矢量时,从参考图片存储器(557)提取的样本值的内插、运动矢量预测机制等等。
70.聚合器(555)的输出样本可在环路滤波器单元(556)中被各种环路滤波技术采用。视频压缩技术可包括环路内滤波器技术,所述环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频码流)中的参数,且所述参数作为来自解析器(520)的符号(521)可用于环路滤波器单元(556)。然而,在其他实施例中,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。
71.环路滤波器单元(556)的输出可以是样本流,所述样本流可输出到显示装置(512)以及存储在参考图片存储器(557),以用于后续的帧间图片预测。
72.一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。举例来说,一旦对应于当前图片的已编码图片被完全重建,且已编码图片(通过例如解析器(520))被识别为参考图片,则当前图片缓冲器(558)可变为参考图片存储器(557)的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。
73.视频解码器(510)可根据例如itu-t h.265标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体地说,配置文件可从视频压缩技术或标准中可用的所有工具中选择某些工具作为在所述配置文件下可供使用的仅有工具。对于合规性,还要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(hypothetical reference decoder,hrd)规范和在已编码视频序列中用信号表示的hrd缓冲器管理的元数据来进一步限定。
74.在实施例中,接收器(531)可连同已编码视频一起接收附加(冗余)数据。所述附加数据可以是已编码视频序列的一部分。所述附加数据可由视频解码器(510)用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,snr)增强层、冗余切片、冗余图片、正向纠错码等形式。
75.图6是根据本技术公开的实施例的视频编码器(603)的框图。视频编码器(603)设置于电子装置(620)中。电子装置(620)包括传输器(640)(例如传输电路)。视频编码器(603)可用于代替图4实施例中的视频编码器(403)。
76.视频编码器(603)可从视频源(601)(并非图6实施例中的电子装置(620)的一部分)接收视频样本,所述视频源可采集将由视频编码器(603)编码的视频图像。在另一实施例中,视频源(601)是电子装置(620)的一部分。
77.视频源(601)可提供将由视频编码器(603)编码的呈数字视频样本流形式的源视频序列,所述数字视频样本流可具有任何合适位深度(例如:8位、10位、12位
……
)、任何色彩空间(例如bt.601y crcb、rgb
……
)和任何合适取样结构(例如y crcb 4:2:0、y crcb 4:4:4)。在媒体服务系统中,视频源(601)可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源(601)可以是采集本地图像信息作为视频序列的相机。可将视频数据提
供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括至少一个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。
78.根据实施例,视频编码器(603)可实时或在由应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列(643)。施行适当的编码速度是控制器(650)的一个功能。在一些实施例中,控制器(650)控制如下文所描述的其它功能单元且在功能上耦接到这些单元。为了简洁起见,图中未标示耦接。由控制器(650)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group of pictures,gop)布局,最大运动矢量搜索范围等。控制器(650)可用于具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(603)。
79.在一些实施例中,视频编码器(603)在编码环路中进行操作。作为简单的描述,在实施例中,编码环路可包括源编码器(630)(例如,负责基于待编码的输入图片和参考图片创建符号,例如符号流)和嵌入于视频编码器(603)中的(本地)解码器(633)。解码器(633)以类似于(远程)解码器创建样本数据的方式重建符号以创建样本数据(因为在本技术所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(634)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(634)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)也用于一些相关技术。
[0080]“本地”解码器(633)的操作可与例如已在上文结合图5详细描述视频解码器(510)的“远程”解码器相同。然而,另外简要参考图5,当符号可用且熵编码器(645)和解析器(520)能够无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器(515)和解析器(520)在内的视频解码器(510)的熵解码部分,可能无法完全在本地解码器(633)中实施。
[0081]
此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于此原因,本技术侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互反向。仅在某些区域中需要更详细的描述,并且在下文提供。
[0082]
在操作期间,在一些实施例中,源编码器(630)可执行运动补偿预测编码。参考来自视频序列中被指定为“参考图片”的至少一个先前已编码图片,所述运动补偿预测编码对输入图片进行预测性编码。以此方式,编码引擎(632)对输入图片的像素块与参考图片的像素块之间的差异进行编码,所述参考图片可被选作所述输入图片的预测参考。
[0083]
本地视频解码器(633)可基于源编码器(630)创建的符号,对可指定为参考图片的已编码视频数据进行解码。编码引擎(632)的操作可为有损过程。当已编码视频数据可在视频解码器(图6中未示)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(633)复制解码过程,所述解码过程可由视频解码器对参考图片执行,且可使重建的参考图片存储在参考图片高速缓存(634)中。以此方式,视频编码器(603)可在本地存储重建的参考图片的副本,所述副本与将由远端视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。
[0084]
预测器(635)可针对编码引擎(632)执行预测搜索。即,对于将要编码的新图片,预测器(635)可在参考图片存储器(634)中搜索可作为所述新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(635)可基于样本块-逐像素块的方式执行操作,以找到合适的预测参考。在一些情况下,根据预测器(635)获得的搜索结果可确定,输入图片可具有从参考图片存储器(634)中存储的多个参考图片取得的预测参考。
[0085]
控制器(650)可管理源编码器(630)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
[0086]
可在熵编码器(645)中对所有上述功能单元的输出进行熵编码。熵编码器(645)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。
[0087]
传输器(640)可缓冲由熵编码器(645)创建的已编码视频序列,从而为通过通信信道(660)进行传输做准备,所述通信信道可以是通向将存储已编码的视频数据的存储装置的硬件/软件链路。传输器(640)可将来自视频编码器(603)的已编码视频数据与要传输的其它数据合并,所述其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。
[0088]
控制器(650)可管理视频编码器(603)的操作。在编码期间,控制器(650)可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种图片类型:
[0089]
帧内图片(i图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(independent decoder refresh,“idr”)图片。所属领域的技术人员了解i图片的变体及其相应的应用和特征。
[0090]
预测性图片(p图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
[0091]
双向预测性图片(b图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。
[0092]
源图片通常可在空间上细分成多个样本块(例如,4
×
4、8
×
8、4
×
8或16
×
16个样本的块),且逐块(block-wise)进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定所述其它块。举例来说,i图片的块可进行非预测编码,或所述块可参考同一图片的已已编码块来进行预测编码(空间预测或帧内预测)。p图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。b图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。
[0093]
视频编码器(603)可根据例如itu-t h.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(603)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。
[0094]
在实施例中,传输器(640)可在传输已编码的视频时传输附加数据。源编码器
(630)可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/snr增强层、冗余图片和切片等其它形式的冗余数据、sei消息、vui参数集片段等。
[0095]
采集到的视频可作为呈时间序列的多个源图片(视频图片)。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在实施例中,将正在编码/解码的特定图片分割成块,正在编码/解码的特定图片被称作当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称作运动矢量的矢量对当前图片中的块进行编码。所述运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,所述运动矢量可具有识别参考图片的第三维度。
[0096]
在一些实施例中,双向预测技术可用于帧间图片预测中。根据双向预测技术,使用两个参考图片,例如按解码次序都在视频中的当前图片之前(但按显示次序可能分别是过去和将来)第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。具体来说,可通过第一参考块和第二参考块的组合来预测所述块。
[0097]
此外,合并模式技术可用于帧间图片预测中以改善编解码效率。
[0098]
根据本技术公开的一些实施例,帧间图片预测和帧内图片预测等预测的执行以块为单位。举例来说,根据hevc标准,将视频图片序列中的图片分割成编码树单元(coding tree unit,ctu)以用于压缩,图片中的ctu具有相同大小,例如64
×
64像素、32
×
32像素或16
×
16像素。一般来说,ctu包括三个编码树块(coding tree block,ctb),所述三个编码树块是一个亮度ctb和两个色度ctb。更进一步的,还可将每个ctu以四叉树拆分为至少一个编码单元(coding unit,cu)。举例来说,可将64
×
64像素的ctu拆分为一个64
×
64像素的cu,或4个32
×
32像素的cu,或16个16
×
16像素的cu。在实施例中,分析每个cu以确定用于cu的预测类型,例如帧间预测类型或帧内预测类型。此外,取决于时间和/或空间可预测性,将cu拆分为至少一个预测单元(prediction unit,pu)。通常,每个pu包括亮度预测块(prediction block,pb)和两个色度pb。在实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。以亮度预测块作为预测块为例,预测块包括像素值(例如,亮度值)的矩阵,例如8
×
8像素、16
×
16像素、8
×
16像素、16
×
8像素等等。
[0099]
图7是根据本技术公开的另一实施例的视频编码器(703)的图。视频编码器(703)用于接收视频图片序列中的当前视频图片内的样本值的处理块(例如预测块),且将所述处理块编码到作为已编码视频序列的一部分的已编码图片中。在本实施例中,视频编码器(703)用于代替图4实施例中的视频编码器(403)。
[0100]
在hevc实施例中,视频编码器(703)接收用于处理块的样本值的矩阵,所述处理块为例如8
×
8样本的预测块等。视频编码器(703)使用例如率失真(rate-distortion,rd)优化来确定是否使用帧内模式、帧间模式或双向预测模式来编码所述处理块。当在帧内模式中编码处理块时,视频编码器(703)可使用帧内预测技术以将处理块编码到已编码图片中;且当在帧间模式或双向预测模式中编码处理块时,视频编码器(703)可分别使用帧间预测或双向预测技术将处理块编码到已编码图片中。在某些视频编码技术中,合并模式可以是帧间图片预测子模式,其中,在不借助预测值外部的已编码运动矢量分量的情况下,从至少一个运动矢量预测值导出运动矢量。在某些其它视频编码技术中,可存在适用于主题块的
运动矢量分量。在实施例中,视频编码器(703)包括其它组件,例如用于确定处理块模式的模式决策模块(未示出)。
[0101]
在图7的实施例中,视频编码器(703)包括如图7所示的耦接到一起的帧间编码器(730)、帧内编码器(722)、残差计算器(723)、开关(726)、残差编码器(724)、通用控制器(721)和熵编码器(725)。
[0102]
帧间编码器(730)用于接收当前块(例如处理块)的样本、比较所述块与参考图片中的至少一个参考块(例如先前图片和后来图片中的块)、生成帧间预测信息(例如根据帧间编码技术的冗余信息描述、运动矢量、合并模式信息)、以及基于帧间预测信息使用任何合适的技术计算帧间预测结果(例如已预测块)。在一些实施例中,参考图片是基于已编码的视频信息解码的已解码参考图片。
[0103]
帧内编码器(722)用于接收当前块(例如处理块)的样本、在一些情况下比较所述块与同一图片中已编码的块、在变换之后生成量化系数、以及在一些情况下还(例如根据至少一个帧内编码技术的帧内预测方向信息)生成帧内预测信息。在实施例中,帧内编码器(722)还基于帧内预测信息和同一图片中的参考块计算帧内预测结果(例如已预测块)。
[0104]
通用控制器(721)用于确定通用控制数据,且基于所述通用控制数据控制视频编码器(703)的其它组件。在实施例中,通用控制器(721)确定块的模式,且基于所述模式将控制信号提供到开关(726)。举例来说,当所述模式是帧内模式时,通用控制器(721)控制开关(726)以选择供残差计算器(723)使用的帧内模式结果,且控制熵编码器(725)以选择帧内预测信息且将所述帧内预测信息添加在码流中;以及当所述模式是帧间模式时,通用控制器(721)控制开关(726)以选择供残差计算器(723)使用的帧间预测结果,且控制熵编码器(725)以选择帧间预测信息且将所述帧间预测信息添加在码流中。
[0105]
残差计算器(723)用于计算所接收的块与选自帧内编码器(722)或帧间编码器(730)的预测结果之间的差(残差数据)。残差编码器(724)用于基于残差数据操作,以对残差数据进行编码以生成变换系数。在实施例中,残差编码器(724)用于将残差数据从时域转换到频域,且生成变换系数。变换系数接着经由量化处理以获得量化的变换系数。在各种实施例中,视频编码器(703)还包括残差解码器(728)。残差解码器(728)用于执行反向变换,且生成已解码残差数据。已解码残差数据可适当地由帧内编码器(722)和帧间编码器(730)使用。举例来说,帧间编码器(730)可基于已解码残差数据和帧间预测信息生成已解码块,且帧内编码器(722)可基于已解码残差数据和帧内预测信息生成已解码块。适当处理已解码块以生成已解码图片,且在一些实施例中,所述已解码图片可在存储器电路(未示出)中缓冲并用作参考图片。
[0106]
熵编码器(725)用于将码流格式化以产生已编码的块。熵编码器(725)根据hevc标准等合适标准产生各种信息。在实施例中,熵编码器(725)用于获得通用控制数据、所选预测信息(例如帧内预测信息或帧间预测信息)、残差信息和码流中的其它合适的信息。应注意,根据所公开的主题,当在帧间模式或双向预测模式的合并子模式中对块进行编码时,不存在残差信息。
[0107]
图8是根据本技术公开的另一实施例的视频解码器(810)的图。视频解码器(810)用于接收作为已编码视频序列的一部分的已编码图像,且对所述已编码图像进行解码以生成重建的图片。在实施例中,视频解码器(810)用于代替图3实施例中的视频解码器(410)。
[0108]
在图8实施例中,视频解码器(810)包括如图8中所示耦接到一起的熵解码器(871)、帧间解码器(880)、残差解码器(873)、重建模块(874)和帧内解码器(872)。
[0109]
熵解码器(871)可用于根据已编码图片来重建某些符号,这些符号表示构成所述已编码图片的语法元素。此类符号可包括例如用于对所述块进行编码的模式(例如帧内模式、帧间模式、双向预测模式、后两者的合并子模式或另一子模式)、可分别识别供帧内解码器(872)或帧间解码器(880)用以进行预测的某些样本或元数据的预测信息(例如帧内预测信息或帧间预测信息)、呈例如量化的变换系数形式的残差信息等等。在实施例中,当预测模式是帧间或双向预测模式时,将帧间预测信息提供到帧间解码器(880);以及当预测类型是帧内预测类型时,将帧内预测信息提供到帧内解码器(872)。残差信息可经由反向量化并提供到残差解码器(873)。
[0110]
帧间解码器(880)用于接收帧间预测信息,且基于所述帧间预测信息生成帧间预测结果。
[0111]
帧内解码器(872)用于接收帧内预测信息,且基于所述帧内预测信息生成预测结果。
[0112]
残差解码器(873)用于执行反向量化以提取解量化的变换系数,且处理所述解量化的变换系数,以将残差从频域转换到空间域。残差解码器(873)还可能需要某些控制信息(用以获得量化器参数qp),且所述信息可由熵解码器(871)提供(未标示数据路径,因为这仅仅是低量控制信息)。
[0113]
重建模块(874)用于在空间域中组合由残差解码器(873)输出的残差与预测结果(可由帧间预测模块或帧内预测模块输出)以形成重建的块,所述重建的块可以是重建的图片的一部分,所述重建的图片继而可以是重建的视频的一部分。应注意,可执行解块操作等其它合适的操作来改善视觉质量。
[0114]
应注意,可使用任何合适的技术来实施视频编码器(403)、视频编码器(603)和视频编码器(703)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。在实施例中,可使用至少一个集成电路来实施视频编码器(403)、视频编码器(603)和视频编码器(703)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。在另一实施例中,可使用执行软件指令的至少一个处理器来实施视频编码器(403)、视频编码器(603)和视频编码器(703)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。
[0115]
转向对块分区进行编码,并且在一些示例实现中,可以应用预定模式。如图9所示,可以采用一种示例的4路分区树,从第一预定义级(例如,64
×
64块级)开始,降低到第二预定义级(例如,4
×
4级)。例如,基本块可以有四个分区选项,如902、904、906和908所示,其中被指定为r的分区被允许用于递归分区,这是因为如图9所指示的同一分区树,可以以较低的比例(scale)进行重复,直到最低级(例如,4
×
4级)。在一些实现中,可以对图9的分区方案应用附加的限制。在图9的实现中,可以允许矩形分区(例如,1:2/2:1矩形分区),但是可能不允许它们是递归的,而允许正方形分区是递归的。如果需要,按照图9的递归分区生成编码块的最终集。可以对颜色信道中的一个或多个应用这样的方案。
[0116]
图10示出了允许递归分区以形成分区树的另一示例预定义分区模式。如图10所示,可以预定义示例10路分区结构或模式。根块可以从预定义级(例如,从128
×
128级,或64
×
64级)开始。图10的示例分区结构包括各种2:1/1:2和4:1/1:4矩形分区。在图10的第二行
中具有3个子分区的分区类型1002、1004、1006和1008可以被称为“t型”分区。“t型”分区1002、1004、1006和1008可以被称为左t型、顶t型、右t型和底t型。在一些实现中,不允许进一步地细分图10的矩形分区。可以进一步地界定编码树深度,以指示来自根节点或根块的分割深度。例如,诸如128
×
128块的根节点或根黑(root black)的编码树深度可以被设置为0,并且在按照图10进一步地分割一次根块之后,编码树深度增加1。在一些实现中,在图10的模式之后,仅1010中的所有的正方形分区可以被允许用于递归分区到分区树的下一级。换句话说,对于具有模式1002、1004、1006和1008的正方形分区可能不允许递归分区。如果需要,按照图10的递归分区生成编码块的最终集。可以对颜色信道中的一个或多个应用这样的方案。
[0117]
在按照上述任何分区程序或其它程序对基本块进行划分或分区之后,同样可以获得分区或编码块的最终集。这些分区中的每一个可以位于各种分区级中的一级。这些分区中的每一个可以被称为编码块(cb)。对于上述各种示例分区实现,每个得到的cb可以具有任何允许的大小并且在任何允许的分区级。它们被称为编码块是因为它们可以形成单元,对于这些单元,可以做出一些基本编码/解码决定,并且编码/解码参数可以被优化、确定以及在已编码视频码流中用信号通知。最终分区中的最高级表示编码块分区树的深度。编码块可以是亮度编码块或色度编码块。
[0118]
在一些其它示例实现中,四叉树结构可以用于将基本亮度块和色度块递归地分割成编码单元。这样的分区结构可以被称为编码树单元(ctu),通过使用四叉树结构将其分割成编码单元(cu),以使分区适应于基本(base)ctu的各种局部特性。在这样的实现中,可以在图片边界处执行隐式四叉树分割,使得块将保持四叉树分割直到大小适合图片边界。术语cu用于统称亮度编码块(cb)和色度cb的单元。
[0119]
在一些实现中,可以进一步地对cb进行分区。例如,为了在编码和解码过程期间进行帧内预测或帧间预测,cb可以被进一步地分区成多个预测块(pb)。换句话说,cb可以进一步地被划分成不同的子分区,其中可以进行单独的预测决定/配置。并行地,为了解释执行视频数据的变换或反向变换所在的级,cb可以被进一步地分区成多个变换块(tb)。cb到pb和tb的分区方案可以相同或可以不相同。例如,基于例如视频数据的各种特性,可以使用其自己的程序来执行每个分区方案。在一些示例实现中,pb分区方案和tb分区方案可以是独立的。在一些其它示例实现中,pb分区方案和tb分区方案和边界可以是相关的。在一些实现中,例如,可以在pb分区之后对tb进行分区,并且具体地,在对编码块进行分区后确定每个pb之后,然后每个pb可以被进一步地分区成一个或多个tb。例如,在一些实现中,pb可以被分割成一个、两个、四个或其它数目的tb。
[0120]
在一些实现中,为了将基本块分区成编码块并进一步地分区成预测块和/或变换块,可以不同地处理亮度信道和色度信道。例如,在一些实现中,对于亮度信道,可以允许将编码块分区成预测块和/或变换块,而对于一个或多个色度信道,可能不允许这样将编码块分区成预测块和/或变换块。在这样的实现中,因此仅可以在编码块级执行亮度块的变换和/或预测。对于另一示例,用于亮度信道和一个或多个色度信道的最小变换块大小可以不同,例如与色度信道相比,可以允许用于亮度信道的编码块被分区成更小的变换块和/或预测块。对于又一示例,将编码块分区成变换块和/或预测块的最大深度,在亮度信道与色度信道之间,可以不同,例如与一个或多个色度信道相比,可以允许用于亮度信道的编码块被
分区成更深的变换块和/或预测块。对于特定示例,亮度编码块可以被分区成具有多个大小的变换块,多个大小可以表示为递归分区,直到2级,并且可以允许变换块形状为正方形、2:1/1:2和4:1/1:4,变换块大小从4
×
4到64
×
64。然而,对于色度块,仅允许为亮度块指定的最大可能变换块。
[0121]
在用于将编码块分区成pb的一些示例实现中,pb分区的深度、形状和/或其它特性可以取决于pb是帧内编码还是帧间编码。
[0122]
将编码块(或预测块)分区成变换块可以在各种示例方案中实现,示例方案包括但不限于递归或非递归的四叉树分割和预定义模式(pattern)分割,并且额外考虑编码块或预测块的边界处的变换块。通常,所得到的变换块可以在不同的分割级,可以不具有相同的大小,并且可以不需要正方形的形状(例如,它们可以是具有一些允许的大小和宽高比aspect ratio的矩形)。
[0123]
在一些实现中,可以使用编码分区树方案或结构。用于亮度信道和色度信道的编码分区树方案可以不需要相同。换句话说,亮度信道和色度信道可以具有分离的编码树结构。此外,亮度信道和色度信道是使用相同还是不同的编码分区树结构以及要使用的实际编码分区树结构,可以取决于正被编码的条带是p条带、b条带还是i条带。例如,对于i条带,色度信道和亮度信道可以具有分离的编码分区树结构或编码分区树结构模式,而对于p条带或b条带,亮度信道和色度信道可以共享相同的编码分区树方案。在应用分离的编码分区树结构或模式时,通过一个编码分区树结构,亮度信道可以被分区成cb,并且通过另一编码分区树结构,色度信道可以被分区成色度cb。
[0124]
下面描述编码块和变换块分区的具体示例实现。在这样的示例实现中,通过使用上述递归四叉树分割,基本编码块可以被分割成编码块。在每一级,特定分区的进一步四叉树分割是否应该继续,可以由局部视频数据特性确定。所得到的cb可以在具有各种大小的各种四叉树分割级。可以在cb级(或cu级,对于所有三色信道)做出关于是使用帧间(时间)预测还是帧内(空间)预测来对图片区域进行编码的决定。根据pb分割类型,每个cb可以进一步地被分割成一个、两个、四个或其它数目的pb。在一个pb内,可以应用相同的预测过程,并且在pb的基础上将相关信息传输到解码器。在通过应用基于pb分割类型的预测过程获得残差块之后,根据与用于cb的编码树相似的另一四叉树结构,cb可以被分区成tb。在该特定实现中,cb或tb可以但不必限于正方形。进一步地,在该特定示例中,对于帧间预测,pb可以是正方形或矩形,而对于帧内预测,pb仅可以是正方形。编码块可以进一步地被分割成例如四个正方形tb。每个tb可以进一步递归地被分割(使用四叉树分割)成更小的tb,其被称为残差四叉树(rqt)。
[0125]
下面描述了用于将基本编码块分区成cb和其它pb和/或tb的另一具体示例。例如,可以不使用如图10所示的多个分区单元类型,而是使用具有嵌套多类型树的四叉树,其使用二进制和三进制分割分段结构。可以放弃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的颜色分量的宽度或高度时,会出现例外。
[0126]
图12示出了具有用于一个ctb的块分区的嵌套多类型树编码块结构的四叉树的一个示例。更详细地,图12示出了ctb 1200被四叉树分割成四个正方形分区1202、1204、1206和1208。为四叉树分割分区中的每一个分区,可以决定进一步地使用图11的多类型树结构来分割。在图12的示例中,没有进一步地对分区1204进行分割。分区1202和1208各自采用另一四叉树分割。对于分区1202,第二级四叉树分割的左上、右上、左下和右下分区分别采用四叉树的第三级分割、图11的1104、非分割和图11的1108。分区1208采用另一四叉树分割,并且第二级四叉树分割的左上、右上、左下和右下分区分别采用图11的1106的第三级分割、非分割、非分割和图11的1104。根据1104和1108,进一步地对1208的第三级左上分区的子分区中的两个进行分割。分区1206采用按照图11的1102的第二级分割模式分成两个分区,根据图11的1108和1102,进一步地对这两个分区进行第三级分割。根据图11的1104,第四级分割进一步地应用于它们中的一个。
[0127]
对于以上特定示例,最大亮度变换大小可以是64
×
64,并且所支持的最大色度变换大小可以不同于例如亮度的32
×
32。当亮度编码块或色度编码块的宽度或高度大于最大变换宽度或高度时,可以在水平和/或垂直方向上自动地对亮度编码块或色度编码块进行分割,以满足该方向上的变换大小限制。
[0128]
在用于将基本编码块分区成cb的上述特定示例中,编码树方案可以支持亮度和色度具有分离的块树结构的能力。例如,对于p条带和b条带,一个ctu中的亮度ctb和色度ctb可以共享相同的编码树结构。例如,对于i条带,亮度和色度可以具有分离的编码块树结构。当应用分离的块树模式时,通过一个编码树结构,亮度ctb可以被分区成亮度cb,并且通过另一编码树结构,色度ctb被分区成色度cb。这意味着i条带中的cu可以由亮度分量的编码块或两个色度分量的编码块组成,并且p条带或b条带中的cu总是由所有三个颜色分量的编码块组成,除非视频是单色的。
[0129]
下面进一步地详细描述了将编码块或预测块分区成变换块的示例实现和变换块的编码顺序。在一些示例实现中,变换分区可以支持多个形状的变换块,诸如1:1(正方形)、1:2/2:1和1:4/4:1,变换块大小范围从例如4
×
4到64
×
64。在一些实现中,如果编码块小于或等于64
×
64,则变换块仅可以应用于亮度分量,使得对于色度块,变换块大小等同于编码块大小。否则,如果编码块宽度或高度大于64,则亮度编码块和色度编码块两者可以分别被隐式地分割成多个变换块:最小值(w,64)
×
最小值(h,64)和最小值(w,32)
×
最小值(h,32)。
[0130]
在一些示例实现中,对于帧内编码块和帧间编码块两者,编码块可以进一步地被分区成多个变换块,其分区深度达到预定义数目的级(例如,2级)。变换块分区深度和大小可以是相关的。从当前深度的变换大小到下一深度的变换大小的示例映射如表1所示。
[0131]
表1:变换分区大小设置
[0132][0133]
基于表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子变换块。
[0134]
在一些示例实现中,对于经帧内编码的块的亮度分量,可以应用附加的限制。例如,对于变换分区的每一级,所有子变换块可以被限制为具有相等的大小。例如,对于32
×
16编码块,1级变换分割创建两个16
×
16子变换块,2级变换分割创建八个8
×
8子变换块。换句话说,第二级分割必须应用于所有第一级子块,以保持变换单元大小相等。图13示出了基于表1的用于经帧内编码的正方形块的变换块分区的示例,与编码顺序一起由箭头图示。具体地,1302示出了正方形编码块。1304示出了根据表1的分割成4个大小相等的变换块的第一级分割,编码顺序由箭头指示。1306示出了根据表1的将所有第一级大小相等的块第二级分割成16个大小相等的变换块,编码顺序由箭头指示。
[0135]
在一些示例实现中,对于经帧间编码的块的亮度分量,可以不应用上述对帧内编码的限制。例如,在第一级变换分割之后,子变换块中的任何一个可以进一步独立地再被分离一个级。因此,所得到的变换块可以具有或可以不具有相同的大小。图14示出了将经帧间编码的块分割成具有其编码顺序的变换块的示例。在图14的示例中,根据表1,经帧间编码
的块1402被分割成在两个级的变换块。在第一级,帧间编码块被分割成四个大小相等的变换块。然后,仅四个变换块中的一个(不是全部)被进一步地分割成四个子变换块,导致共7个变换块具有两个不同的大小,如1404所示。这7个变换块的示例编码顺序由图14的1404中的箭头示出。
[0136]
在一些示例实现中,对于一个或多个色度分量,可以对变换块应用一些附加的限制。例如,对于一个或多个色度分量,变换块大小可以与编码块大小一样大,但不小于预定义大小,例如8
×
8。
[0137]
在一些其它示例实现中,对于宽度(w)或高度(h)大于64的编码块,亮度编码块和色度编码块两者可以分别被隐式地分割成多个变换单元:最小值(w,64)
×
最小值(h,64)和最小值(w,32)
×
最小值(h,32)。
[0138]
图15进一步示出了将编码块或预测块分区成变换块的另一可选示例方案。如图15所示,代替使用递归变换分区,根据编码块的变换类型,分区类型的预定义集可以应用于编码块。在图15所示的特定示例中,可以应用6个示例分区类型中的一个来将编码块分割成各种数目的变换块。这样的方案可以应用于编码块或预测块。
[0139]
更详细地,图15的分区方案为如图15所示的任何给定变换类型提供高达6个分区类型。在该方案中,可以基于(例如)速率失真代价向每一编码块或预测块分配变换类型。在示例中,可以基于编码块或预测块的变换分区类型来确定分配给编码块或预测块的分区类型。特定分区类型可以对应于变换块分割大小和模式(或分区类型),如图15所图示的4个分区类型所示。可以预定义各种变换类型与各种分区类型之间的对应关系。下面示出了示例对应,其中大写标记指示可以基于速率失真代价分配给编码块或预测块的变换类型:
[0140]
·
partition_none:分配变换大小等于块大小。
[0141]
·
partition_split:分配变换大小,宽度是块大小宽度的1/2,高度是块大小高度的1/2。
[0142]
·
partition_horz:分配变换大小,宽度与块大小的宽度相同,高度是块大小高度的1/2。
[0143]
·
partition_vert:分配变换大小,宽度是块大小宽度的1/2,高度与块大小的高度相同。
[0144]
·
partition_horz4:分配变换大小,宽度与块大小的宽度相同,,高度是块大小高度的1/4。
[0145]
·
partition_vert4:分配变换大小,宽度是块大小宽度的1/4,高度与块大小的高度相同。
[0146]
在上述示例中,如图15所示的分区类型都包含统一的变换大小用于已分区的变换块。这仅仅是示例,而非限制。在一些其它实现中,混合的变换块大小可以用于特定分区类型(或模式)中的已分区的变换块。
[0147]
从以上任何分区方案获得的pb(或cb,在未被进一步地分区成预测块时也被称为pb)将可以成为单独的块用于帧内预测编码或帧间预测编码。对于当前pb的帧间预测,当前块和预测块之间的残差可以被生成、编码并包括在已编码码流中。
[0148]
回到帧内预测过程,其中块(例如,亮度预测块或色度预测块,或者如果没有被进一步地分割成预测块的编码块)中的样本,由相邻线、下一相邻线、或其它一条或多条线、或
者其组合的样本,进行预测,以生成预测块。然后可以通过变换,之后通过量化来处理正被编码的实际块与预测块之间的残差。可以使用各种帧内预测模式,并且可以在码流中用信号通知与帧内模式选择相关的参数和其它参数。例如,各种帧内预测模式可以涉及用于预测样本的一个或多个线位置、沿其从一条或多条预测线选择预测样本的方向、以及其它特殊的帧内预测模式。
[0149]
例如,帧内预测模式(可互换地被称为“帧内模式”)集合可以包括预定义数目的方向帧内预测模式。如以上关于图1的示例实现所述,这些帧内预测模式可以对应于预定义数目的方向,沿着这些方向的块外样本被选为用于特定块中正被预测的样本的预测。在另一特定示例实现中,可以支持和预定义八(8)种主方向模式,对应于与水平轴成45至207度的角度。
[0150]
在帧内预测的一些其它实现中,为了进一步地利用方向纹理中更多种类的空间冗余,方向帧内模式可以进一步地扩展到具有较精细粒度的角度集。例如,以上8个角度实现可以被配置为提供八个标称角度,如图16图示,其被称为v_pred、h_pred、d45_pred、d135_pred、d113_pred、d157_pred、d203_pred和d67_pred,并且对于每个标称角度,可以添加预定数目(例如,7)的较精细的角度。用这样的扩展,对应于相同数目的预定义方向帧内模式,较大总数目(例如,在该示例中为56)的方向角度对于帧内预测可用。预测角度可以由标称帧内角度加角度δ表示。对于以上特定示例中用于每个标称角度的7个较精细的角方向,角度δ可以是3度步长的-3至3倍。
[0151]
在一些实现中,可选以上方向帧内模式,或除了以上方向帧内模式之外,也可以预定义预定义数目的非方向帧内预测模式,并且使其可用。例如,可以指定5种被称为平滑帧内预测模式的非方向帧内模式。这些非方向帧内模式预测模式可以被具体地称为dc、paeth、smooth、smooth_v和smooth_h帧内模式。在图17中,图示了在这些示例非方向模式下对特定块的样本的预测。作为示例,图17示出了4
×
4块2002,由来自上方相邻线和/或左侧相邻线的样本进行预测。块1702中的特定样本1710可以对应于块1702的上方相邻线中样本1710的正上方样本1704、作为上方和左侧相邻线的交叉点的样本1710的左上方样本1706,以及块1702的左相邻线中样本1710的正左侧样本1708。对于示例dc帧内预测模式,左侧和上方相邻样本1708和1704的平均值可以用作样本2010的预测值。对于示例paeth帧内预测模式,可以提取上方、左侧和左上方参考样本1704、1708和1706,然后这三个参考样本中最接近(top+left

topleft)的任一值可以被设置为样本1710的预测值。对于示例smooth_v帧内预测模式,样本1710可以由在左上方相邻样本1706和左侧相邻样本1708的垂直方向上的二次插值进行预测。对于示例smooth_h帧内预测模式,样本1710可以由在左上方相邻样本1706和上方相邻样本1704的水平方向上的二次插值进行预测。对于示例smooth帧内预测模式,样本1710可以由在垂直和水平方向上的二次插值的平均值进行预测。以上非方向帧内模式实现仅作为非限制性示例图示。还可以考虑其它相邻线和样本的其它非方向选择,以及用于预测预测块中的特定样本的预测样本的组合方式。
[0152]
编码器在各种编码级(图片、条带、块、单元等)处从以上方向或非方向模式中对特定帧内预测模式作出的选择,可以在码流中用信号通知。在一些示例实现中,可以首先用信号通知示例性8种标称方向模式以及5种非角度平滑模式(总共13个选项)。然后,如果用信号通知的模式是8种标称角度帧内模式中的一种,则进一步地用信号通知索引,以为对应的
用信号通知的标称角度指示所选的角度δ。在一些其它示例实现中,可以将所有帧内预测模式一起编入索引(例如,56种方向模式加5种非方向模式以产生61种帧内预测模式)以用于信令传输。
[0153]
在一些示例实现中,示例56种或其它数目的方向帧内预测模式可以用统一的方向预测器来实现,该统一的方向预测器将块的每个样本投影到参考子样本位置,并且通过2抽头双线性滤波器来对参考样本进行插值。
[0154]
在一些实现中,为了捕获与边缘上的参考相关的衰减空间,可以设计附加滤波器模式,被称为滤波器帧内(filter intra)模式。对于这些模式,除了块外样本之外的块内预测样本,可以用作帧内预测参考样本。用于块内一些补丁(patch)。例如,可以预定义这些模式,并且使其对用于至少亮度块(或仅亮度块)的帧内预测。可以预设计预定义数目(例如,5)的滤波器帧内模式,每种滤波器帧内模式由n抽头滤波器(例如,7抽头滤波器)集合表示,其反映例如4
×
2补丁中的样本与邻近该样本的n个相邻样本之间的相关性。换句话说,用于n抽头滤波器的权重因子可以是位置相关的。以8
×
8块、4
×
2补丁和7抽头滤波为例,如图18所示,8
×
8块1802可以被分割成八个4
×
2补丁。在图18中,这些补丁由b0、b1、b2、b3、b4、b5、b6和b7表示。对于每个补丁,其7个相邻补丁(在图18中由r0至r7表示)可以用于预测当前补丁中的样本。对于补丁b0,所有相邻补丁可能已经被重建。但是对于其它补丁,一些相邻补丁在当前块中,因此可能没有被重建,然后紧紧相邻的补丁的预测值用作参考。例如,图18中所示的补丁b7的所有相邻补丁都没有被重建,所以替代地使用相邻补丁的预测样本。
[0155]
在帧内预测的一些实现中,可以通过使用一个或多个其它颜色分量来预测一个颜色分量。颜色分量可以是ycrcb、rgb、xyz等颜色空间中的分量中的任何一个。例如,可以实现对来自亮度分量(例如,亮度参考样本)的色度分量(例如,色度块)(被称为来自亮度的色度,或者cfl)的预测。在一些示例实现中,交叉颜色预测仅可以允许从亮度到色度。例如,色度块中的色度样本可以被建模为符合重建的亮度样本的线性函数。cfl预测可以如下实现:
[0156]
cfl(α)=α
×
l
ac
+dc
ꢀꢀꢀꢀꢀꢀ
(1)
[0157]
其中l
ac
表示亮度分量的ac贡献,α表示线性模型的参数,以及dc表示色度分量的dc贡献。例如,为块的每个样本获得ac分量,而为整个块获得dc分量。具体而言,可以将重建的亮度样本子采样(subsample)至色度分辨率,然后可以从每个亮度值中减去平均亮度值(亮度的dc),以形成亮度中的ac贡献。然后亮度的ac贡献用于等式(1)的线性模式,以预测色度分量的ac值。为了近似或预测来自亮度ac贡献的色度ac分量,代替要求解码器计算缩放参数,示例cfl实现可以基于原始的色度样本来确定参数α,并且在码流中用信号通知它们。这降低了解码器复杂度,并且产生了更精确的预测。至于色度分量的dc贡献,在一些示例实现中,可以通过使用色度分量内的帧内dc模式来计算该dc贡献。
[0158]
作为帧内预测的可选方案,可以在单个参考帧间预测模式或联合参考帧间预测模式中,对pb进行帧间预测。具体地,在帧间预测模式中,可以通过单个参考帧间预测或联合参考帧间预测,由一个或多个其它参考块或来自一个或多个其它帧的帧间预测块来预测视频块。为了实现帧间预测,参考块可以由它的帧标识符(参考块的时间位置)和指示正被编码或解码的当前块与参考块之间的空间偏移的运动矢量(参考块的空间位置)来指定。可以在码流中用信号通知参考帧标识和运动矢量。作为空间块偏移的运动矢量可以直接用信号通知,或者可以通过另一参考运动矢量或预测器运动矢量来自动预测。例如,可以通过(例
如候选相邻块的)参考运动矢量直接地预测,或通过参考运动矢量以及当前运动矢量与参考运动矢量之间的合并运动矢量差(mvd)的组合来预测当前运动矢量。后者可以被称为具有运动矢量差的合并模式(mmvd)。参考运动矢量可以在码流中被识别为指针,例如指向当前块的空间上相邻的块或时间上相邻但空间上同位的块。
[0159]
在一些实现中,可以实现帧间帧内联合预测(ciip)模式。在ciip模式中,预测块被导出为帧内预测(或帧内预测器)块与帧间预测(帧内预测器)块的组合。可以使用具有对应于运动矢量的平移运动的单个参考帧间预测来导出用于ciip的帧间预测块,而可以基于上述帧内预测模式的子集,从相邻样本中确定用于ciip的帧内预测块。在一些示例实现中,可以根据包括上述dc_pred、v_pred、h_pred和smooth模式的帧内预测模式子集中的一个模式,从帧内参考行样本中导出帧内预测块中的空间样本,用于以ciip模式进行预测的当前块。如表2所示,使用该帧内预测模式子集中的每一个模式来导出帧内预测块,可以对应于ciip子模式索引。
[0160]
表2:帧间帧内子模式
[0161][0162][0163]
将根据以上描述导出的在样本级的帧内预测块和帧间预测块进行样本级加权求和,来生成当前块的帧间帧内联合预测(或预测器)块。那么,帧内预测块与帧间预测块之间的相对权重可以由权重矩阵来表示。对应于ciip的各种帧间帧内权重模式,可以实现确定权重矩阵的各种示例方式。
[0164]
在一个示例实现中,ciip的权重模式,被称为常规的ciip,与当前块中的样本相对应的帧间帧内权重矩阵的元素,将遵循与样本的位置之间的确定性关系。这样的确定性关系可以取决于正使用的帧内预测模式。在一个特定示例中,应用于帧内预测样本p0(x,y)(其中x和y表示块中的样本位置)的权重可以如下导出:
[0165][0166]
其中,通过使用块宽度(w)和块高度(h)导出sizescale,如下所示
[0167]
sizescale=128/max(w,h),
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0168]
并且weightlut表示一维查找表。weightlut[index]的值是通过在查找表中由index指示的位置处的条目来确定。下表3中示出了示例一维权重查找表。
[0169]
表3:用于常规的帧间帧内运动联合预测模式的查找表
[0170]
6058565452504847454442413938373534333231302928272625242322222120191918181716161515141413131212121111101010999888877776666655555444444443333333332222222222222221111111111111111111111
ꢀꢀꢀꢀꢀ
[0171]
在以上常规的ciip示例中,用于帧内预测的权重通常随着样本远离块的左上角(或远离帧内预测参考样本)而减小,除了dc_pred模式之外,在dc_pred模式中帧间预测权重独立于样本位置。换句话说,表3中例示的实现反映了这样的方案:帧间预测权重随着样本位置远离帧内参考样本而增加。
[0172]
在一些其它示例性ciip的帧间帧内权重实现中,被称为楔形(wedge)ciip,可以定义权重模式集合,可以由编码器为当前块选择权重模式集合中的一个模式。可以在码流中用信号通知权重模式集合内所选模式的索引。这样的模式可以应用于当前块,以确定特定的权重矩阵,用于对块的每个样本的帧内预测块和帧间预测块进行组合/求和。例如,可以预定义16个不同的模式(可选地被称为楔形模式),并且其由索引0到15表示。在楔形ciip中,一旦指定了模式的索引,就可以导出块的整个权重矩阵,而不是使用表3的预定义查找表在常规的ciip方法中逐个样本地用信号通知。
[0173]
在任何ciip中,一旦获得了上述权重矩阵并将其应用于组合帧内预测块和帧间预测块,则这样组合的块可以用作当前块的实际预测块以获得残差块。然后,从编码器的角度来看,残差块可以进行主变换和可选的二次变换,以及其余的量化和熵编码过程。对于解码器,将对码流将进行解析/解码、反向变换以获得残差块。如果解码器从码流中确定ciip用于当前块,则可以进一步地基于从码流中提取的信息(如上所述用信号通知的查找索引或如上所述用信号通知的楔形模式索引)来获得用于ciip的权重矩阵。然后可以从权重矩阵和对应的帧内预测块导出预测块,并且从用于当前帧或参考帧的已重建的样本,导出帧间预测。然后可以从残差块和预测块恢复原始块。
[0174]
回到主变换,示例2-d变换过程,除了涉及对这两维使用相同的变换核,还可以涉及使用混合变换核(例如,其可以由用于已编码残差块的每一维的不同的1-d变换组成)。示例主1-d变换核可以包括但不限于:a)4点(4p)、8点(8p)、16点(16p)、32点(32p)和64点(64p)dct-2;b)4点、8点、16点非对称dst的以及它们的翻转版本;c)4点、8点、16点或32点恒等变换(dst表示离散正弦变换)。因此,2-d变换过程可以涉及使用混合变换或变换核(用于已编码残差块的每一维的不同的变换),其中,待用于每一维的变换或变换核的选择可以基于速率失真(rd)标准。术语变换核可以被称为变换基函数。例如,在表4中列出了1-d dct-2、dst-4和dst-7(对于2-d变换,可以实施为混合)的基函数(其中,dct表示离散余弦变换)。
[0175]
表4示例主变换基函数(用于n点输入的dct-2、dst-4和dst-7)
[0176][0177]
例如,dct-2(4p-64p)、dst-4(8p,16p)和dst-7(4p)变换示出了对称/非对称特性,因此在一些示例实现中可以支持“部分蝶形”实现,以减少操作计数(乘法、加法/减法、移位)的数目。部分蝶形可以涉及使用三角余弦和正弦函数的平面旋转,如图19所示,在各个角度。在图20和图21中示出示例12位查找表,并且可以用于生成三角函数的值。
[0178]
在一些实现中,可以对主变换系数执行二次变换。例如,如图22所示,lfnst(低频不可分离变换),其被称为缩减(reduced)的二次变换,可以在正向主变换与量化(在编码器)之间以及在去量化与反向主变换(在解码端)之间应用,以进一步地对主变换系数去相关。本质上,lfnst可以去掉主变换系数的一部分,例如低频部分(因此从变换块的一整套主变换系数中“减少”),以进行到二次变换。在示例lfnst中,可以根据变换块大小来应用4
×
4不可分离变换或8
×
8不可分离变换。例如,4
×
4lfnst可以应用于小变换块(例如,最小值(宽度,高度)《8),而8
×
8lfnst可以应用于较大变换块(例如,最小值(宽度,高度)》8)。例如,如果8
×
8变换块进行4
×
4lfnst,则只有8
×
8主变换系数的低频4
×
4部分,将进一步进行二次变换。
[0179]
如图22具体所示,变换块可以是8
×
8(或16
×
16)。因此,变换块的正向主变换2202产生8
×
8(或16
×
16)主变换系数矩阵2204,其中每个正方形单元表示2
×
2(或4
×
4)部分。正向lfnst的输入例如可以不是整个8
×
8(或16
×
16)主变换系数。例如,4
×
4(或8
×
8)lfnst可以用于二次变换。这样,如阴影部分(左上)2206所示,仅主变换系数矩阵2204的4
×
4(或8
×
8)低频主变换系数可以用作lfnst的输入。主变换系数矩阵的剩余部分可以不进行二次变换。这样,在二次变换之后,进行lfnst的部分主变换系数变成二次变换系数,而不进行lfnst的剩余部分(例如,矩阵2204的未加阴影的部分)则维持对应的主变换系数。在一些示例实现中,不进行二次变换的剩余部分可以全部被设置为零系数。
[0180]
下面描述了在lfnst中使用的不可分离变换的应用的示例。为了应用示例4
×
4lfnst,4
×
4输入块x(表示诸如图22的主变换矩阵2204的阴影部分2206的主变换系数块的4
×
4低频部分)可以表示为:
[0181][0182]
可以首先将该2-d输入矩阵线性化,或扫描为示例顺序的矢量
[0183][0184]
然后4
×
4lfnst的不可分离变换可以计算为其中表示输出变换系数矢量,并且t是16
×
16变换矩阵。随后使用块的扫描顺序(例如,水平、垂直或对角线)将所得到的16
×
1系数矢量反向扫描为4
×
4块。具有较小索引的系数可以与较小扫描索引一起被放置在4
×
4系数块中。以这样的方式,可以经由二次变换t进一步地利用主变换系数x中的冗余,从而提供附加的压缩增强。
[0185]
上述示例lfnst是基于应用不可分离变换的直接矩阵乘法方法,使得它在单程中实现而无需多次迭代。在一些进一步的示例实现中,可以进一步地减少示例4
×
4lfnst的不可分离变换矩阵(t)的维度,以将计算复杂度和用于存储变换系数的存储空间要求最小化。这样的实现可以被称为缩减的不可分离变换(rst)。更详细地,rst的主要想法是将n(在上述示例中n是4
×
4=16,但是对于8
×
8块可以等于64)维矢量映射到不同空间中的r维矢量,其中n/r(r《n)表示维度减少因子。因此,代替n
×
n变换矩阵,rst矩阵如下变成r
×
n矩阵:
[0186][0187]
其中变换矩阵的r行是n维空间的缩减的r基。因此,该变换将输入矢量或n维转换成缩减的r维的输出矢量。这样,如图22所示,从主系数2206变换的二次变换系数2208通过维度中的因子或n/r而减少。图22中2208周围的三个正方形可以是零填充的。
[0188]
rts的反向变换矩阵可以是其正向变换的转置。对于示例8
×
8lfnst(与上述4
×
4lfnst相比,这里有更加不同的描述),可以应用示例减少因子4,因此64
×
64直接不可分离变换矩阵相应地减少为16
×
64直接矩阵。进一步地,在一些实现中,可以将输入主系数的一部分而不是全部,线性化为lfnst的输入矢量。例如,可以仅将示例8
×
8输入主变换系数的一部分,线性化为上述x矢量。对于特定示例,在8
×
8主变换系数矩阵的四个4
×
4象限中,可以省略右下(高频系数),并且仅使用预定义扫描顺序将其它三个象限线性化为48
×
1矢量,而不是64
×
1矢量。在这样的实现中,不可分离变换矩阵可以进一步从16
×
64减少到16
×
48。
[0189]
因此,作为示例,可以在解码端使用缩减的48
×
16反向rst矩阵来生成8
×
8核(主)变换系数的左上、右上和左下4
×
4象限。具体地,当应用进一步缩减的16
×
48rst矩阵,而不是具有相同的变换集配置的16
×
64rst时,不可分离的二次变换,将从8
×
8主系数块中除右下4
×
4块之外的三个4
×
4象限块中的矢量化的48个矩阵元素,作为输入。在这样的实现中,省略的右下4
×
4主变换系数,将在二次变换中被忽略。该进一步缩减的变换,将48
×
1的矢
量转换成16
×
1的输出矢量,将其反向扫描成4
×
4矩阵,以填充图22的2208。2208周围的二次变换系数的三个正方形可以是零填充的。
[0190]
这样,借助于rst中维度的缩减,减少了用于存储所有lfnst矩阵的存储器使用。在上述示例中,与没有减少维度的实现相比,存储器使用例如可以从10kb减少到8kb,而性能下降相当不显著。
[0191]
在一些实现中,为了降低复杂度,可以将lfnst进一步限制为仅适用于要进行lfnst的主变换系数部分之外(例如,在图22中的2204的2206部分之外)的所有系数不显著的情况。因此,当应用lfnst时,所有的仅主(primary-only)变换系数(例如,图22的主系数矩阵2204的未加阴影的部分)可以接近零。这样的限制允许在最后有效位置上对lfnst索引信令进行调节,因此避免了一些额外的系数扫描,当不应用该限制时,可能需要这些额外的系数扫描来检查特定位置处的有效系数。在一些实现中,lfnst的最坏情况处理(就每像素的乘法而言)可以将4
×
4和8
×
8块的不可分离变换分别限制为8
×
16和8
×
48变换。在这些情况下,对于小于16的其它大小,当应用lfnst时,最后有效扫描位置必须小于8。对于形状为4
×
n和n
×
4以及n》8的块,上述限制意味着lfnst现在仅对左上4
×
4区域应用一次。由于当应用lfnst时,所有的仅主系数都为零,所以在这种情况下主变换所需的操作数目减少。从编码器的角度来看,当测试lfnst变换时,可以简化系数的量化。对于前16个系数(按扫描顺序),必须以最大值进行速率失真优化量化(rdo),可以强制剩余的系数为零。
[0192]
在一些示例实现中,可用的rst核可以被指定为多个变换集,其中每个变换集包括多个不可分离变换矩阵。例如,lfnst中使用的每个变换集总共可以有4个变换集和2个不可分离变换矩阵(核)。这些核可以离线预训练,因此它们是数据驱动的。离线训练的变换核可以存储在存储器中,或者在编码或解码设备中进行硬编码,以在编码/解码过程中使用。可以通过帧内预测模式来确定在编码或解码过程期间对变换集的选择。可以预定义从帧内预测模式到变换集的映射。这样的预定义映射的示例,在表4中示出。例如,如表4中所示,如果三个交叉分量线性模型(cclm)模式(intra_lt_cclm、intra_t_cclm或intra_l_cclm)中的一个用于当前块(即,81《=predmodeintra《=83),那么可以为当前色度块选择变换集0。对于每个变换集,所选不可分离二次变换候选可以进一步由显式发信号通知的lfnst索引指定。例如,对于变换系数之后的每一帧内cu,可以在码流中用信号通知索引一次。
[0193]
表4:变换选择表
[0194]
intrapredmode变换集索引intrapredmode《010《=intrapredmode《=102《=intrapredmode《=12113《=intrapredmode《=23224《=intrapredmode《=44345《=intrapredmode《=55256《=intrapredmode《=80181《=intrapredmode《=830
[0195]
因为在上述示例实现中lfnst被限制为仅在第一系数子组或部分之外的所有系数是非显著的情况下适用,所以lfnst索引编码取决于最后显著系数的位置。此外,lfnst索引
可以是上下文编码的,但不取决于帧内预测模式,并且仅第一二进制数可以是上下文编码的。此外,lfnst可以应用于帧内和帧间条带中的帧内cu,以及亮度和色度。如果启用双树,则可以分别用信号通知亮度和色度的lfnst索引。对于帧间条带(禁用双树),可以用信号通知单个lfnst索引,并且单个lfnst索引可以用于亮度和色度。
[0196]
在一些示例实现中,当选择帧内子分区(isp)模式时,可以禁用lfnst并且可以不用信号通知rst索引,这是因为即使rst应用于每一可行的分区块,性能改进也可能是微不足道的。此外,对isp预测的残差,禁用rst,可以降低编码复杂度。在一些进一步的实现中,当选择多线性回归帧内预测(mip)模式时,也可以禁用lfnst,并且可以不用信号通知rst索引。
[0197]
考虑到由于现有的最大变换大小限制(例如,64
×
64),大于64
×
64(或表示最大变换块大小的任何其它预定义大小)的大cu被隐式地分割(例如,tu平铺),lfnst索引搜索,可以针对特定数目的解码管线阶段(pipeline stages),将数据缓冲增加四倍。因此,在一些实现中,lfnst所允许的最大大小可以被限制为例如64
×
64。在一些实现中,可以仅将dct2作为主变换来启用lfnst。
[0198]
在ciip模式中,需要执行帧间预测和帧内预测,并且涉及主变换和二次变换。当对以ciip模式进行编码的块执行主变换时,主变换(或主变换核)必须从可用的三角变换和恒等变换中选择,例如,如表4中所列出的变换。可以在dc_pred、v_pred、h_pred和smooth模式中的一个模式下,执行ciip模式中的帧内预测,并且当使用ciip模式执行帧内预测时,若对相关残差信号有效地解相关,上述这些可用的选择可能并不理想。由于在ciip中存在各种子模式,并且ciip模式可以包括常规的ciip和楔形ciip,所以有必要确定一种机制来选择出适合于特定ciip配置(例如,ciip子模式、诸如常规的ciip和楔形ciip的ciip权重模式)的二次变换核。在本技术中,描述了旨在至少实现该任务的各种实现。
[0199]
在本技术中,二次变换集合指一组变换核(或候选)选项。变换集合可以包括一个或多个变换核(或候选)选项。
[0200]
在本技术中,主变换可以指dct、adst、翻转adst(flipadst)、lgt和行列变换(rct)的组合。例如,可以在块上水平地应用dct,垂直地应用adst。
[0201]
在一些实现中,在ciip模式下,二次变换可以是不可分离的。此外,选择不可分离二次变换,可以根据ciip的帧内预测部分的帧内预测模式。
[0202]
在一些实现中,ciip模式可以与ciip的帧内预测部分相关。因此,不可分离二次变换的选择可以直接或间接地取决于ciip模式。
[0203]
在一些实现中,当使用ciip模式来预测块时,可以使用可分离/不可分离主变换来对残差(或残差块、残差矩阵)进行编码。然后,可以进一步地应用不可分离二次变换,即组合的帧间帧内二次变换(ciist)。
[0204]
在一些实现中,二次变换可以仅是不可分离的。
[0205]
在一些实现中,二次变换可以仅是可分离的。
[0206]
在一些实现中,二次变换可以是可分离或不可分离的。
[0207]
在一些实现中,可以将每一帧内预测模式映射到或对应于包括多个变换核的变换核集。当使用ciip模式来执行预测时,可以基于ciip子模式来确定(ciip的帧内预测部分的)帧内预测模式。可以在前面部分的表2中找到示例ciip子模式。例如,可以将每个ciip子
模式映射到帧内预测模式。一旦确定了帧内预测模式,就可以基于帧内预测模式来导出二次变换核集。可以通过信令来确定用于二次变换的变换核,例如通过用信号通知的核索引来确定。还可以基于块本身,例如块的模式,来导出变换核。
[0208]
在一些实现中,可以将ciip子模式映射到dc_pred、v_pred、h_pred或smooth_pred模式中的任何一个。
[0209]
在一些实现中,可以将ii_dc_pred ciip子模式映射到dc_pred帧内预测模式。可以选择对应于dc_pred帧内预测模式(或与其预关联)的二次变换核集。
[0210]
在一些实现中,当ciip子模式是ii_dc_pred时,则二次变换核可以与dc_pred帧内预测模式预关联。
[0211]
在一些实现中,可以将ii_smooth_pred ciip子模式映射到smooth_pred帧内预测模式。可以选择对应于smooth_pred帧内预测模式(或与其预关联)的二次变换核集。
[0212]
在一些实现中,当ciip子模式是ii_smooth_pred时,则二次变换核可以与smooth_pred帧内预测模式预关联。
[0213]
在一些实现中,可以将ii_v_pred ciip子模式映射到v_pred帧内预测模式。可以选择对应于v_pred帧内预测模式(或与其预关联)的二次变换核集。
[0214]
在一些实现中,当ciip子模式是ii_v_pred时,则二次变换核可以与v_pred帧内预测模式预关联。
[0215]
在一些实现中,可以将ii_h_predciip子模式映射到h_pred帧内预测模式。可以选择对应于h_pred帧内预测模式(或与其预关联)的二次变换核集。
[0216]
在一些实现中,当ciip子模式是ii_h_pred时,则二次变换核可以与h_pred帧内预测模式预关联。
[0217]
在一些实现中,当将ciip子模式映射到帧内预测模式时,可以强加进一步的限制或前提条件。例如,可能需要ciip的特定权重模式(例如,常规的ciip、楔形ciip)。在一个实现中,可以仅在ciip是常规的ciip时,应用用于将ciip子模式映射到帧内预测模式的方案。作为示例性常规的ciip,与视频块相关联的帧内预测权重取决于帧内预测模式,并且沿帧内预测的预测方向而减小。
[0218]
在一些实现中,可以在ciip是楔形ciip时,应用用于将ciip子模式映射到帧内预测模式的方案。
[0219]
在一些实现中,在ciip是楔形ciip时,则可以基于楔形模式(关于楔形模式的细节参见前面部分)从二次变换核集中选择用于二次变换的核。例如,与在ciip模式下的视频块相关联的帧内预测权重可以由空间权重模式(其为楔形模式)表征。
[0220]
在一些实现中,当ciip是楔形ciip时,可以基于楔形模式直接地确定二次变换核。
[0221]
图23示出了遵循构成上述实现的原理的示例视频解码方法的流程图2300。方法2300可以包括以下步骤的一部分或全部:步骤2310,确定当前块是在ciip模式下预测的;步骤2320,针对所述视频码流中的所述当前块,生成二次变换系数集合;步骤2330,通过以下方式,应用组合的帧间帧内二次变换:对所述二次变换系数集合执行反向可分离二次变换或反向不可分离二次变换,以获得所述当前块的主变换系数集合;对所述主变换系数集合执行反向主变换,以获得所述当前块的残差块;以及步骤2340,在所述ciip模式下,基于所述残差块对所述当前块进行解码。
[0222]
在本技术的实施例和实现中,任何步骤和/或操作可以根据需要以任何数量或顺序组合或布置。可以并行地执行两个或更多个步骤和/或操作。本技术的实施例和实现可以被单独地使用或以任何顺序组合使用。此外,方法(或实施例)、编码器和解码器中的每一者可以通过处理电路系统(例如,一个或多个处理器或者一个或多个集成电路)来实现。在一个示例中,一个或多个处理器执行存储在非易失性计算机可读介质中的程序。本技术中的实施例可以应用于亮度块或色度块。术语“块”可以被解释为预测块、编码块或编码单元,即cu。术语“块”在本文也可以用来指变换块。在以下各项中,当说块大小时,它可以指块宽度或高度,或宽度和高度的最大值,或宽度和高度的最小值,或面积大小(宽度*高度),或块的宽高比(宽度:高度或高度:宽度)。
[0223]
上述技术可以通过计算机可读指令实现为计算机软件,并且物理地存储在至少一个计算机可读存储介质中。例如,图24示出了计算机系统(2500),其适于实现所公开主题的某些实施例。
[0224]
所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由至少一个计算机中央处理单元(cpu),图形处理单元(gpu)等直接执行或通过译码、微代码等方式执行。
[0225]
所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。
[0226]
图24所示的用于计算机系统(2500)的组件本质上是示例性的,并不用于对实现本技术实施例的计算机软件的使用范围或功能进行任何限制。也不应将组件的配置解释为与计算机系统(2500)的示例性实施例中所示的任一组件或其组合具有任何依赖性或要求。
[0227]
计算机系统(2500)可以包括某些人机界面输入设备。这种人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出),对至少一个人类用户的输入做出响应。所述人机界面设备还可用于捕获某些媒体,气与人类有意识的输入不必直接相关,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
[0228]
人机界面输入设备可包括以下中的至少一个(仅绘出其中一个):键盘(2501)、鼠标(2502)、触控板(2503)、触摸屏(2510)、数据手套(未示出)、操纵杆(2505)、麦克风(2506)、扫描仪(2507)、照相机(2508)。
[0229]
计算机系统(2500)还可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激至少一个人类用户的感觉。这样的人机界面输出设备可包括触觉输出设备(例如通过触摸屏(2510)、数据手套(未示出)或操纵杆(2505)的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如,扬声器(2509)、耳机(未示出))、视觉输出设备(例如,包括阴极射线管屏幕、液晶屏幕、等离子屏幕、有机发光二极管屏的屏幕(2510),其中每一个都具有或没有触摸屏输入功能、每一个都具有或没有触觉反馈功能——其中一些可通过诸如立体画面输出的手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱(未示出))以及打印机(未示出)。
[0230]
计算机系统(2500)还可以包括人可访问的存储设备及其相关介质,如包括具有
cd/dvd的高密度只读/可重写式光盘(cd/dvd rom/rw)(2520)或类似介质(2521)的光学介质、拇指驱动器(2522)、可移动硬盘驱动器或固体状态驱动器(2523),诸如磁带和软盘(未示出)的传统磁介质,诸如安全软件保护器(未示出)等的基于rom/asic/pld的专用设备,等等。
[0231]
本领域技术人员还应当理解,结合所公开的主题使用的术语“计算机可读存储介质”不包括传输介质、载波或其它瞬时信号。
[0232]
计算机系统(2500)还可以包括通往至少一个通信网络(2555)的接口(2554)。例如,网络可以是无线的、有线的、光学的。网络还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。网络还包括以太网、无线局域网、蜂窝网络(gsm、3g、4g、5g、lte等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括canbus)等等。某些网络通常需要外部网络接口适配器,用于连接到某些通用数据端口或外围总线(2549)(例如,计算机系统(2500)的usb端口);其它系统通常通过连接到如下所述的系统总线集成到计算机系统(2500)的核心(例如,以太网接口集成到pc计算机系统或蜂窝网络接口集成到智能电话计算机系统)。通过使用这些网络中的任何一个,计算机系统(2500)可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如can总线到某些can总线设备),或双向的,例如通过局域或广域数字网络到其它计算机系统。上述的每个网络和网络接口可使用某些协议和协议栈。
[0233]
上述的人机界面设备、人可访问的存储设备以及网络接口可以连接到计算机系统(2500)的核心(2540)。
[0234]
核心(2540)可包括至少一个中央处理单元(cpu)(2541)、图形处理单元(gpu)(2542)、以现场可编程门阵列(fpga)(2543)形式的专用可编程处理单元、用于特定任务的硬件加速器(2544)、图形适配器(2550)等。这些设备以及只读存储器(rom)(2545)、随机存取存储器(2546)、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘等)(2547)等可通过系统总线(2548)进行连接。在某些计算机系统中,可以以至少一个物理插头的形式访问系统总线(2548),以便可通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线(2548),或通过外围总线(2549)进行连接。在一示例中,屏幕(2510)可以连接到图形适配器(2550)。外围总线的体系结构包括外部控制器接口pci、通用串行总线usb等。
[0235]
cpu(2541)、gpu(2542)、fpga(2543)和加速器(2544)可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在rom(2545)或ram(2546)中。过渡数据也可以存储在ram(2546)中,而永久数据可以存储在例如内部大容量存储器(2547)中。通过使用高速缓冲存储器可实现对任何存储器设备的快速存储和检索,高速缓冲存储器可与至少一个cpu(2541)、gpu(2542)、大容量存储器(2547)、rom(2545)、ram(2546)等紧密关联。
[0236]
所述计算机可读存储介质上可具有计算机代码,用于执行各种计算机实现的操作。介质和计算机代码可以是为本技术的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。
[0237]
作为实施例而非限制,具有体系结构(2500)的计算机系统,特别是核心(2540),可
以作为处理器(包括cpu、gpu、fpga、加速器等)提供执行包含在至少一个有形的计算机可读存储介质中的软件的功能。这种计算机可读存储介质可以是与上述的用户可访问的大容量存储器相关联的介质,以及具有非易失性的核心(2540)的特定存储器,例如核心内部大容量存储器(2547)或rom(2545)。实现本技术的各种实施例的软件可以存储在这种设备中并且由核心(2540)执行。根据特定需要,计算机可读存储介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心(2540)特别是其中的处理器(包括cpu、gpu、fpga等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在ram(2546)中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机系统可以提供逻辑硬连线或以其它方式包含在电路(例如,加速器(2544))中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读存储介质的引用可包括存储执行软件的电路(如集成电路(ic)),包含执行逻辑的电路,或两者兼备。本技术包括任何合适的硬件和软件组合。
[0238]
虽然本技术已对多个示例性实施例进行了描述,但实施例的各种变更、排列和各种等同替换均属于本技术的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确示出或描述,但其体现了本技术的原则,因此属于本技术的精神和范围之内。
[0239]
附录a:首字母缩略词
[0240]
jem:联合开发模式
[0241]
vvc:通用视频编码
[0242]
bms:基准集合
[0243]
mv:运动向量
[0244]
hevc:高效视频编码
[0245]
sei:补充增强信息
[0246]
vui:视频可用性信息
[0247]
gop:图片组
[0248]
tu:变换单元
[0249]
pu:预测单元
[0250]
ctu:编码树单元
[0251]
ctb:编码树块
[0252]
pb:预测块
[0253]
hrd:假设参考解码器
[0254]
snr:信噪比
[0255]
cpu:中央处理单元
[0256]
gpu:图形处理单元
[0257]
crt:阴极射线管
[0258]
lcd:液晶显示
[0259]
oled:有机发光二极管
[0260]
cd:光盘
[0261]
dvd:数字化视频光盘
[0262]
rom:只读存储器
[0263]
ram:随机存取存储器
[0264]
asic:专用集成电路
[0265]
pld:可编程逻辑设备
[0266]
lan:局域网
[0267]
gsm:全球移动通信系统
[0268]
lte:长期演进
[0269]
canbus:控制器局域网络总线
[0270]
usb:通用串行总线
[0271]
pci:外围设备互连
[0272]
fpga:现场可编程门阵列
[0273]
ssd:固态驱动器
[0274]
ic:集成电路
[0275]
hdr:高动态范围
[0276]
sdr:标准动态范围
[0277]
jvet:联合视频开发组
[0278]
mpm:最可能模式
[0279]
waip:宽角帧内预测
[0280]
cu:编码单元
[0281]
pu:预测单元
[0282]
tu:变换单元
[0283]
ctu:编码树单元
[0284]
pdpc:位置相关预测组合
[0285]
isp:帧内子分区
[0286]
sps:序列参数集
[0287]
pps:图片参数集
[0288]
aps:自适应参数集
[0289]
vps:视频参数集
[0290]
dps:解码参数集
[0291]
alf:自适应环路滤波器
[0292]
sao:样本自适应偏差
[0293]
cc-alf:交叉分量自适应环路滤波器
[0294]
cdef:受限的方向增强滤波器
[0295]
ccso:交叉分量样本偏差
[0296]
lso:本地样本偏差
[0297]
lr:环路恢复滤波器
[0298]
av1:aom视频1
[0299]
av2:aom视频2。

技术特征:
1.一种对视频码流中的当前块进行解码的方法,其特征在于,所述方法包括:确定所述当前块是在帧间帧内联合预测ciip模式下预测的;针对所述视频码流中的所述当前块,生成二次变换系数集合;通过以下方式,应用组合的帧间帧内二次变换:对所述二次变换系数集合执行反向可分离二次变换或反向不可分离二次变换,以获得所述当前块的主变换系数集合;对所述主变换系数集合执行反向主变换,以获得所述当前块的残差块;及,在所述ciip模式下,基于所述残差块对所述当前块进行解码。2.根据权利要求1所述的方法,其特征在于,进一步包括:在ciip子模式候选集合中,确定用于所述视频码流中的所述当前块的所述ciip模式的ciip子模式,所述ciip子模式指示在帧内预测模式集合中在所述当前块的所述ciip模式下使用的帧内预测模式;基于所述帧内预测模式,确定用于所述反向可分离二次变换或所述反向不可分离二次变换的变换核。3.根据权利要求2所述的方法,其特征在于,所述确定变换核包括:基于所述帧内预测模式,从多个变换核集合中确定变换核集合;从所述视频码流中抽取出与所述当前块相关联的核选择指标;基于所述核选择指标,从所述变换核集合中选择出所述变换核。4.根据权利要求2所述的方法,其特征在于,所述帧内预测模式集合包括如下中的至少一个:dc_pred模式;v_pred模式;h_pred模式;或smooth_pred模式。5.根据权利要求2-4中任一项所述的方法,其特征在于,所述ciip子模式候选集合包括如下中的至少一个:ii_dc_pred模式;ii_v_pred模式;ii_h_pred模式;或ii_smooth_pred模式。6.根据权利要求5所述的方法,其特征在于,响应于所述ciip子模式为所述ii_dc_pred模式,确定所述变换核与dc_pred帧内预测模式预关联;响应于所述ciip子模式为所述ii_v_pred模式,确定所述变换核与v_pred帧内预测模式预关联;响应于所述ciip子模式为所述ii_h_pred模式,确定所述变换核与h_pred帧内预测模式预关联;响应于所述ciip子模式为所述ii_smooth_pred模式,确定所述变换核与smooth_pred帧内预测模式预关联。
7.根据权利要求2-4中任一项所述的方法,其特征在于,基于所述帧内预测模式,从多个变换核集合中确定变换核集合,仅响应于确定出在所述当前块的样本的ciip模式下的帧内预测权重是基于所述样本的位置进行公式化推导得到的。8.根据权利要求7所述的方法,其特征在于,所述当前块的所述样本的所述帧内预测权重,取决于所述帧内预测模式,并且沿所述帧内预测的预测方向而减小。9.根据权利要求1所述的方法,其特征在于,所述ciip模式下与所述当前块相关联的帧内预测权重,包括预定空间权重模式集合中的空间权重模式。10.根据权利要求9所述的方法,进一步包括:基于所述空间权重模式,确定在所述反向不可分离二次变换中使用的变换核。11.根据权利要求9所述的方法,进一步包括:从所述视频码流中抽取出空间权重模式指标,所述空间权重模式指标指示所述预定空间权重模式集合中的所述空间权重模式;根据所述空间权重模式指标,确定所述空间权重模式。12.一种对视频码流中的当前块进行解码的设备,其特征在于,所述设备包括用于存储计算机指令的存储器以及与所述存储器通信的处理器,其中,当所述处理器执行所述计算机指令时,所述处理器被配置为使得所述设备执行:确定所述当前块是在帧间帧内联合预测ciip模式下预测的;针对所述视频码流中的所述当前块,生成二次变换系数集合;通过以下方式,应用组合的帧间帧内二次变换:对所述二次变换系数集合执行反向可分离二次变换或反向不可分离二次变换,以获得所述当前块的主变换系数集合;对所述主变换系数集合执行反向主变换,以获得所述当前块的残差块;及,在所述ciip模式下,基于所述残差块对所述当前块进行解码。13.根据权利要求12所述的设备,其特征在于,所述处理器执行所述计算机指令,所述处理器被配置为使得所述设备执行:在ciip子模式候选集合中,确定用于所述视频码流中的所述当前块的所述ciip模式的ciip子模式,所述ciip子模式指示在帧内预测模式集合中在所述当前块的所述ciip模式下使用的帧内预测模式;基于所述帧内预测模式,确定用于所述反向可分离二次变换或所述反向不可分离二次变换的变换核。14.根据权利要求13所述的设备,其特征在于,所述处理器被配置为使得所述设备确定变换核包括:基于所述帧内预测模式,从多个变换核集合中确定变换核集合;从所述视频码流中抽取出与所述当前块相关联的核选择指标;基于所述核选择指标,从所述变换核集合中选择出所述变换核。15.根据权利要求13所述的设备,其特征在于,所述帧内预测模式集合包括如下中的至少一个:dc_pred模式;v_pred模式;
h_pred模式;或smooth_pred模式。16.根据权利要求13-15中任一项所述的设备,其特征在于,所述ciip子模式候选集合包括如下中的至少一个:ii_dc_pred模式;ii_v_pred模式;ii_h_pred模式;或ii_smooth_pred模式。17.根据权利要求16所述的设备,其特征在于,响应于所述ciip子模式为所述ii_dc_pred模式,确定所述变换核与dc_pred帧内预测模式预关联;响应于所述ciip子模式为所述ii_v_pred模式,确定所述变换核与v_pred帧内预测模式预关联;响应于所述ciip子模式为所述ii_h_pred模式,确定所述变换核与h_pred帧内预测模式预关联;响应于所述ciip子模式为所述ii_smooth_pred模式,确定所述变换核与smooth_pred帧内预测模式预关联。18.一种非暂时性存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令由处理器执行时,使得所述处理器实现:确定所述当前块是在帧间帧内联合预测ciip模式下预测的;针对所述视频码流中的所述当前块,生成二次变换系数集合;通过以下方式,应用组合的帧间帧内二次变换:对所述二次变换系数集合执行反向可分离二次变换或反向不可分离二次变换,以获得所述当前块的主变换系数集合;对所述主变换系数集合执行反向主变换,以获得所述当前块的残差块;及,在所述ciip模式下,基于所述残差块对所述当前块进行解码。19.根据权利要求18所述的非暂时性存储介质,其特征在于,所述计算机可读指令进一步使得所述处理器实现:在ciip子模式候选集合中,确定用于所述视频码流中的所述当前块的所述ciip模式的ciip子模式,所述ciip子模式指示在帧内预测模式集合中在所述当前块的所述ciip模式下使用的帧内预测模式;基于所述帧内预测模式,确定用于所述反向可分离二次变换或所述反向不可分离二次变换的变换核。20.根据权利要求19所述的非暂时性存储介质,其特征在于,所述计算机可读指令使得所述处理器确定所述变换核,所述计算机可读指令使得所述处理器实现:基于所述帧内预测模式,从多个变换核集合中确定变换核集合;从所述视频码流中抽取出与所述当前块相关联的核选择指标;基于所述核选择指标,从所述变换核集合中选择出所述变换核。

技术总结
本申请关于用于帧间帧内联合预测模式的变换配置和信令。在一个示例中公开了一种对视频码流中的视频块进行解码的方法。所述方法包括:确定所述当前块是在CIIP模式下预测的;针对所述视频码流中的所述当前块,生成二次变换系数集合;通过以下方式,应用组合的帧间帧内二次变换:对所述二次变换系数集合执行反向可分离二次变换或反向不可分离二次变换,以获得所述当前块的主变换系数集合;对所述主变换系数集合执行反向主变换,以获得所述当前块的残差块;及,在所述CIIP模式下,基于所述残差块对所述当前块进行解码。所述当前块进行解码。所述当前块进行解码。


技术研发人员:马杜
受保护的技术使用者:腾讯美国有限责任公司
技术研发日:2022.09.29
技术公布日:2023/8/5
版权声明

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

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

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

相关推荐