掌桥专利:专业的专利平台
掌桥专利
首页

使用邻近亮度样本的根据亮度的色度预测

文献发布时间:2024-04-18 19:58:53


使用邻近亮度样本的根据亮度的色度预测

交叉引用

本申请基于并且要求于2022年9月23日提交的题为“CHROMA FROM LUMAPREDICTION USING NEIGHBOR LUMA SAMPLES”的美国非临时申请第17/951,911号以及于2022年4月13日提交的题为“IMPROVED CHROMAFROM LUMA INTRA PREDICTION MODE”的美国临时申请第63/330,706号的优先权的权益,上述美国非临时申请和美国临时申请中的每一个通过引用其整体并入本文中。

技术领域

本公开内容描述了一组高级视频编码技术。更具体地,所公开的技术涉及根据亮度的色度预测。

背景技术

本文中提供的该背景技术描述是出于总体上呈现本公开内容的上下文的目的。就该背景技术部分中描述的工作的程度而言,目前署名的发明人的工作以及在提交本申请时可以不被另外限定为现有技术的描述的各方面既没有明确地也没有隐含地承认为针对本公开内容的现有技术。

可以使用具有运动补偿的帧间图片预测来执行视频编码和解码。未压缩的数字视频可以包括一系列图片,其中每个图片具有例如1920×1080亮度样本以及相关联的全采样或子采样色度样本的空间维度。这一系列图片可以具有例如每秒60个图片或每秒60帧的固定的或可变的图片速率(可替选地称为帧速率)。未压缩的视频对于流式传输或数据处理具有特定的比特率要求。例如,具有1920×1080的像素分辨率、60帧/秒的帧速率、以及每颜色通道每像素8比特下4:2:0的色度子采样的视频需要接近1.5Gbit/s的带宽。一小时这样的视频需要超过600千兆字节的存储空间。

视频编码和解码的一个目的可以是通过压缩来减少未压缩输入视频信号的冗余。压缩可以帮助减少以上提及的带宽和/或存储空间要求,在一些情况下减少两个数量级或更多。可以采用无损压缩和有损压缩两者,以及其组合。无损压缩是指可以经由解码处理根据压缩的原始信号重建原始信号的精确副本的技术。有损压缩是指原始视频信息在编码期间未完全保留并且在解码期间未完全恢复的编码/解码处理。当使用有损压缩时,重建的信号可能与原始信号不同,但是原始信号与重建的信号之间的失真足够小,而使得尽管有一些信息丢失,重建的信号对于预期应用也是有用的。在视频的情况下,有损压缩被广泛应用于许多应用中。可容忍的失真量取决于应用。例如,某些消费者视频流式传输应用的用户可能比电影或电视广播应用的用户容忍更高的失真。可以选择或调整可由特定编码算法实现的压缩比以反映各种失真容限:更高的可容忍失真通常允许产生更高损失和更高压缩比的编码算法。

视频编码器和解码器可以利用来自若干广泛类别和步骤的技术,包括例如运动补偿、傅里叶变换、量化和熵编码。

视频编解码器技术可以包括称为帧内编码的技术。在帧内编码中,在不参考来自先前重建的参考图片的样本或其他数据的情况下表示样本值。在一些视频编解码器中,图片在空间上被细分为样本块。当所有样本块以帧内模式进行编码时,该图片可以称为帧内图片。帧内图片及其派生(例如独立解码器刷新图片)可以用于重置解码器状态,并且因此可以用作编码视频比特流和视频会话中的第一图片或者用作静止图像。然后,可以将帧内预测之后的块的样本变换到频域,并且可以在熵编码之前对这样生成的变换系数进行量化。帧内预测表示使预变换域中的样本值最小化的技术。在一些情况下,变换之后的DC值越小并且AC系数越小,则在给定量化步长下表示熵编码之后的块所需的比特就越少。

诸如从例如MPEG-2代编码技术中已知的传统帧内编码不使用帧内预测。然而,一些较新的视频压缩技术包括如下技术,其尝试基于例如在空间上邻近并且在解码顺序中先于正在进行帧内编码或解码的数据块的编码和/或解码期间获得的元数据和/或周围样本数据对块进行编码/解码。这样的技术在下文中称为“帧内预测”技术。注意,在至少一些情况下,帧内预测仅使用来自正在重建的当前图片的参考数据,而不使用来自其他参考图片的参考数据。

可以存在许多不同形式的帧内预测。当在给定的视频编码技术中可能够使用多于一种这样的技术时,所使用的技术可以称为帧内预测模式。可以在特定编解码器中提供一种或更多种帧内预测模式。在某些情况下,模式可以具有子模式和/或可以与各种参数相关联,并且针对视频块的模式/子模式信息和帧内编码参数可以单独编码或共同包括在模式码字中。针对给定模式、子模式和/或参数组合使用哪个码字可以对通过帧内预测获得的编码效率增益产生影响,并且对用于将码字转换成比特流的熵编码技术也可以产生影响。

特定模式的帧内预测由H.264引入,在H.265中被细化,并且在诸如联合开发模型(joint exploration model,JEM)、多功能视频编码(versatile video coding,VVC)和基准集(benchmark set,BMS)的较新编码技术中被进一步细化。通常,对于帧内预测,可以使用已经变得可用的邻近样本值来形成预测器块。例如,可以将沿特定方向和/或线的特定邻近样本集合的可用值复制到预测器块中。对使用的方向的参考可以被编码在比特流中,或者其本身可以被预测。

参照图1A,在右下方描绘了在H.265的33个可能的帧内预测器方向(对应于H.265中指定的35个帧内模式的33个角度模式)中指定的九个预测器方向的子集。箭头会聚的点101表示正在预测的样本。箭头表示使用邻近样本预测101处的样本的方向。例如,箭头102指示根据右上方的与水平方向成45度角的一个或多个邻近样本对样本101进行预测。类似地,箭头103指示根据样本101左下方的与水平方向成22.5度角的一个或多个邻近样本对样本101进行预测。

仍然参照图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两者中,使用与重建中的块相邻地邻近的预测样本。

块104的帧内图片预测可以通过根据用信号通知的预测方向从邻近样本复制参考样本值开始。例如,假设编码视频比特流包括信令,针对该块104,该信令指示箭头102的预测方向——也就是说,根据右上方的与水平方向成45度角的一个或多个预测样本对样本进行预测。在这样的情况下,根据同一参考样本R05对样本S41、S32、S23和S14进行预测。然后,根据参考样本R08来预测样本S44。

在某些情况下,可以例如通过插值将多个参考样本的值组合以计算参考样本;尤其是在方向不能被45度整除的情况下。

随着视频编码技术的不断发展,可能的方向的数目也在增加。例如,在H.264(2003年)中,有九个不同的方向可用于帧内预测。在H.265(2013年)中其增加到33个,并且在本公开内容的时候,JEM/VVC/BMS可以支持多至65个方向。已经进行了实验研究以帮助识别最合适的帧内预测方向,并且熵编码中的某些技术可以用于以少量的比特来编码这些最合适的方向,接受对方向的特定比特惩罚。此外,有时可以根据在已经解码的邻近块的帧内预测中使用的邻近方向来预测方向本身。

图1B示出了描绘根据JEM的65个帧内预测方向以说明预测方向的数目在随着时间发展的各种编码技术中增加的示意图180。

用于将表示帧内预测方向的比特映射至编码视频比特流中的预测方向的方式可以随着视频编码技术的不同而不同;并且该方式的范围例如可以从预测方向的简单直接映射到帧内预测模式,到码字,再到涉及最可能模式的复杂自适应方案以及类似技术。然而,在所有情况下,可能存在统计上与某些其他方向相比更不可能出现在视频内容中的某些帧内预测方向。由于视频压缩的目标是减少冗余,因此在设计良好的视频编码技术中,这些较不可能的方向相较于更可能的方向将可以由更大的比特数量来表示。

帧间图片预测或帧间预测可以基于运动补偿。在运动补偿中,来自先前重建的图片或其一部分(参考图片)的样本数据,在沿由运动矢量(此后称为MV(motion vector))指示的方向进行空间移位之后,可以用于预测新重建的图片或图片部分(例如,块)。在一些情况下,参考图片可以与当前重建中的图片相同。MV可以具有两个维度X和Y,也可以具有三个维度,其中第三维度是使用中的参考图片的指示(类似于时间维度)。

在一些视频压缩技术中,可以根据其他MV来预测适用于样本数据的特定区域的当前MV,例如根据在空间上与重建中的区域相邻的样本数据的其他区域相关并且在解码顺序中先于当前MV的那些其他MV来预测该当前MV。这样做可以通过依靠消除相关MV中的冗余来显著减少编码MV所需的数据总量,从而提高压缩效率。例如,由于在对从摄像装置得出的输入视频信号(称为自然视频)进行编码时存在比单个MV所适用的区域大的区域在视频序列中沿类似的方向移动的统计可能性,并且因此在一些情况下可以使用根据邻近区域的MV得出的类似运动矢量进行预测,因此,MV预测可以有效地发挥作用。这导致针对给定区域的实际MV与从周围MV预测的MV相似或相同。这样的MV又可以在熵编码之后以小于直接对MV进行编码而不是从邻近MV预测的情况下会使用的比特数来表示。在一些情况下,MV预测可以是根据原始信号(即:样本流)得出的信号(即:MV)的无损压缩的示例。在其他情况下,MV预测本身可以是有损的,例如由于根据若干周围MV计算预测器时的舍入误差而是有损的。

在H.265/HEVC(ITU-T H.265建议书,“高效视频编码(High Efficiency VideoCoding)”,2016年12月)中描述了各种MV预测机制。在H.265指定的多种MV预测机制中,下面描述的是此后称为“空间合并”的技术。

具体地,参照图2,当前块(201)包括由编码器在运动搜索处理期间发现能够根据已经空间移位的相同大小的先前块预测的样本。代替直接对该MV进行编码,可以根据与一个或更多个参考图片相关联的元数据,例如根据最近(按解码顺序)的参考图片,使用与用A0、A1和B0、B1、B2(分别对应202至206)表示的五个周围样本中的任一样本相关联的MV,得出MV。在H.265中,MV预测可以使用来自邻近块使用的同一参考图片的预测器。

发明内容

本公开内容的各方面提供了用于根据亮度的色度(chroma from luma,CfL)预测的方法和装置。

在一些实现方式方式中,一种用于视频处理的方法包括:确定根据亮度的色度(CfL)预测模式要被应用于接收的编码比特流中的亮度块;通过对一组重建的亮度样本求平均来生成亮度块的邻近亮度平均值,其中,该组重建的亮度样本包括与亮度块邻近的至少一个邻近亮度块中的多个重建的邻近亮度样本;基于亮度块中的多个亮度样本和邻近亮度平均值,生成与亮度块同位置的色度块的多个预测样本的交流(alternating current,AC)贡献;以及至少通过基于AC贡献应用CfL预测模式来重建色度块。

在一些其他实现方式中,公开了一种用于处理视频信息的设备。设备可以包括被配置成执行以上方法实现方式中的任一个的电路系统。

本公开内容的各方面还提供了存储指令的非暂态计算机可读介质,该指令在由用于视频解码和/或编码的计算机执行时使计算机执行用于视频解码和/或编码的方法。

附图说明

根据以下详细描述和附图,所公开的主题的另外的特征、性质和各种优点将更加明显,在附图中:

图1A示出了帧内预测方向模式的示例性子集的示意性图示。

图1B示出了示例性帧内预测方向的图示。

图2示出了在一个示例中用于运动矢量预测的当前块及其周围的空间合并候选的示意性图示。

图3示出了根据示例实施方式的通信系统300的简化框图的示意性图示。

图4示出了根据示例实施方式的通信系统400的简化框图的示意性图示。

图5示出了根据示例实施方式的视频解码器的简化框图的示意性图示。

图6示出了根据示例实施方式的视频编码器的简化框图的示意性图示。

图7示出了根据另一示例实施方式的视频编码器的框图。

图8示出了根据另一示例实施方式的视频解码器的框图。

图9示出了根据本公开内容的示例实施方式的编码块划分的方案;

图10示出了根据本公开内容的示例实施方式的编码块划分的另一方案;

图11示出了根据本公开内容的示例实施方式的编码块划分的另一方案;

图12示出了根据示例划分方案将基本块划分成编码块的示例;

图13示出了示例三元划分方案;

图14示出了示例四叉树二叉树编码块划分方案;

图15示出了根据本公开内容的示例实施方式的用于将编码块划分成多个变换块的方案和变换块的编码顺序;

图16示出了根据本公开内容的示例实施方式的用于将编码块划分成多个变换块的另一方案和变换块的编码顺序;

图17示出了根据本公开内容的示例实施方式的用于将编码块划分成多个变换块的另一方案;

图18示出了方向帧内预测中的示例精细角度。

图19示出了方向帧内预测中的标称角度。

图20示出了块的PAETH模式的顶、左和左上位置。

图21示出了示例递归帧内滤波模式。

图22A示出了被配置成基于亮度块的亮度样本生成色度块的预测样本的根据亮度的色度(CfL)预测单元的框图。

图22B示出了被配置成基于同位置的亮度块的邻近亮度样本生成色度块的预测样本的CfL预测单元的框图。

图22C示出了被配置成基于同位置的亮度块的亮度样本和邻近亮度样本生成色度块的预测样本的CfL预测单元的框图。

图23示出了示例CfL预测处理的流程图。

图24示出了图片边界内部和外部的亮度样本的框图。

图25示出了亮度块的邻近亮度样本的示意图。

图26示出了CfL预测处理的另一示例的流程图。

图27示出了另一示例CfL预测处理的流程图。

图28示出了另一示例CfL预测处理的流程图。

图29示出了用于色度块的示例四参考线帧内编码的示意图。

图30示出了根据本公开内容的实施方式的计算机系统的示意性图示。

具体实施方式

图3示出了根据本公开内容的实施方式的通信系统300的简化框图。通信系统300包括多个终端设备,所述多个终端设备可以经由例如网络350彼此通信。例如,通信系统300包括经由网络350互连的第一对终端设备310和320。在图3的示例中,第一对终端设备310和320可以执行数据的单向传输。例如,终端设备310可以对(例如,由终端设备310捕获的视频图片流的)视频数据进行编码,以用于经由网络350传输至另一终端设备320。经编码的视频数据可以以一个或更多个编码视频比特流的形式传输。终端设备320可以从网络350接收编码视频数据,对编码视频数据进行解码以恢复视频图片,并且根据恢复的视频数据显示视频图片。单向数据传输可以在媒体服务应用等中实现。

在另一示例中,通信系统300包括执行编码视频数据的双向传输的第二对终端设备330和340,该双向传输可以例如在视频会议应用期间实现。对于数据的双向传输,在示例中,终端设备330和340中的每个终端设备可以对(例如,由终端设备捕获的视频图片流的)视频数据进行编码,以用于经由网络350传输至终端设备330和340中的另一终端设备。终端设备330和340中的每个终端设备还可以接收由终端设备330和340中的另一终端设备传输的编码视频数据,并且可以对编码视频数据进行解码以恢复视频图片,并且可以根据恢复的视频数据在可访问的显示设备处显示视频图片。

在图3的示例中,终端设备310、320、330和340可以实现为服务器、个人计算机和智能电话,但是本公开内容的基本原理的适用性可以不限于此。本公开内容的实施方式可以在台式计算机、膝上型计算机、平板计算机、媒体播放器、可穿戴计算机、专用视频会议装备等中实现。网络350表示在终端设备310、320、330和340之中传送编码视频数据的任何数目或类型的网络,包括例如有线(连线的)和/或无线通信网络。通信网络350可以在电路交换信道、分组交换信道和/或其他类型的信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或因特网。出于本论述的目的,除非在本文中明确说明,否则网络350的架构和拓扑对于本公开内容的操作而言可能不重要。

作为所公开的主题的应用的示例,图4示出了视频编码器和视频解码器在视频流式传输环境中的放置。所公开的主题可以同等地适用于其他视频应用,包括例如视频会议、数字TV广播、游戏、虚拟现实、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等。

视频流式传输系统可以包括视频捕获子系统413,视频捕获子系统413可以包括例如数字摄像装置的视频源401,视频源401用于创建未压缩的视频图片或图像流402。在示例中,视频图片流402包括由视频源401的数字摄像装置记录的样本。视频图片流402被描绘为粗线以强调当与经编码的视频数据404(或编码视频比特流)进行比较时的高数据量,视频图片流402可以由耦接至视频源401的包括视频编码器403的电子设备420进行处理。视频编码器403可以包括硬件、软件或其组合以实现或实施如下文更详细地描述的所公开主题的各方面。经编码的视频数据404(或经编码的视频比特流404)被描绘为细线以强调当与未压缩的视频图片流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和其他视频编码标准的上下文中使用。

注意,电子设备420和430可以包括其他部件(未示出)。例如,电子设备420可以包括视频解码器(未示出),并且电子设备430还可以包括视频编码器(未示出)。

图5示出了根据以下本公开内容的任何实施方式的视频解码器510的框图。视频解码器510可以被包括在电子设备530中。电子设备530可以包括接收器531(例如,接收电路系统)。可以使用视频解码器510代替图4的示例中的视频解码器410。

接收器531可以接收要由视频解码器510解码的一个或更多个编码视频序列。在同一实施方式或另一实施方式中,一次可以解码一个编码视频序列,其中每个编码视频序列的解码独立于其他编码视频序列。每个视频序列可以与多个视频帧或图像相关联。可以从信道501接收编码视频序列,信道501可以是到存储经编码的视频数据的存储设备或传输经编码的视频数据的流式传输源的硬件/软件链路。接收器531可以接收经编码的视频数据以及可以被转发至其各自的处理电路系统(未描绘)的其他数据(例如编码音频数据和/或辅助数据流)。接收器531可以将编码视频序列与其他数据分开。为了防止网络抖动,可以将缓冲存储器515设置在接收器531与熵解码器/解析器520(此后称为“解析器520”)之间。在某些应用中,缓冲存储器515可以实现为视频解码器510的一部分。在其他应用中,缓冲存储器515可以在视频解码器510外部并且与视频解码器510分开(未描绘)。在又一些其他应用中,出于例如防止网络抖动的目的,在视频解码器510外部可以有缓冲存储器(未描绘),并且在视频解码器510内部可以有另一附加的缓冲存储器515例如以处理回放定时。当接收器531从具有足够带宽和可控性的存储/转发设备或从等时同步网络接收数据时,可以不需要缓冲存储器515,或者缓冲存储器515可以较小。为了在诸如因特网的最优分组网络上使用,可能需要具有足够大小的缓冲存储器515,并且其大小可以相对大。这样的缓冲存储器可以用自适应大小来实现,并且可以至少部分地在操作系统或视频解码器510外部的类似元件(未描绘)中实现。

视频解码器510可以包括解析器520以根据编码视频序列重建符号521。这些符号的类别包括:用于管理视频解码器510的操作的信息;以及用于控制诸如显示器512(例如,显示屏)的呈现设备的潜在信息,该显示器512可能是电子设备530的组成部分或如图5所示可能不是电子设备530的组成部分但是可以耦接至电子设备530。用于呈现设备的控制信息可以是辅助增强信息(SEI(Supplemental Enhancement Information,SEI)消息)或视频可用性信息(VUI(Video Usability Information,VUI))参数集片段(未描绘)的形式。解析器520可以对由解析器520接收到的编码视频序列进行解析/熵解码。编码视频序列的熵编码可以根据视频编码技术或视频编码标准进行,并且可以遵循各种原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等。解析器520可以基于与视频解码器中的像素的子群组对应的至少一个参数,从编码视频序列提取针对子群组中的至少一个的子群组参数集。子群组可以包括图片群组(Group of Picture,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等。解析器520还可以从编码视频序列提取诸如变换系数(例如,傅里叶变换系数)、量化器参数值、运动矢量等信息。

解析器520可以对从缓冲存储器515接收的视频序列执行熵解码/解析操作,以创建符号521。

取决于编码视频图片或编码视频图片的一部分的类型(例如:帧间图片和帧内图片、帧间块和帧内块)以及其他因素,符号521的重建可能涉及多个不同的处理或功能单元。所涉及的单元以及它们如何被涉及可以通过由解析器520从编码视频序列解析的子群组控制信息来控制。为了简单起见,未描绘解析器520与以下多个处理或功能单元之间的这样的子群组控制信息流。

除已经提及的功能块以外,视频解码器510可以在概念上被细分成如下所述的多个功能单元。在商业约束下操作的实际实现中,这些功能单元中的许多功能单元彼此紧密交互并且可以至少部分地相互集成。然而,出于清楚地描述所公开的主题的各种功能的目的,在下面的公开内容中采用对功能单元的概念性细分。

第一单元可以包括缩放器/逆变换单元551。缩放器/逆变换单元551可以从解析器520接收作为符号521的量化变换系数以及控制信息,包括指示要使用哪种类型的逆变换、块大小、量化因子/参数、量化缩放矩阵等的信息。缩放器/逆变换单元551可以输出包括可以输入到聚合器555中的样本值的块。

在一些情况下,缩放器/逆变换551的输出样本可以属于帧内编码块,即,不使用来自先前重建的图片的预测性信息但是可以使用来自当前图片的先前重建部分的预测性信息的块。这样的预测性信息可以由帧内图片预测单元552提供。在一些情况下,帧内图片预测单元552可以使用已经重建并存储在当前图片缓冲器558中的周围块信息来生成大小和形状与重建中的块相同的块。例如,当前图片缓冲器558对例如部分重建的当前图片和/或完全重建的当前图片进行缓冲。在一些实现方式中,聚合器555可以基于每个样本将帧内预测单元552已经生成的预测信息加至由缩放器/逆变换单元551提供的输出样本信息。

在其他情况下,缩放器/逆变换单元551的输出样本可以属于经帧间编码的且可能经运动补偿的块。在这样的情况下,运动补偿预测单元553可以访问参考图片存储器557以获取用于帧间图片预测的样本。在根据属于该块的符号521对所获取的样本进行运动补偿之后,可以由聚合器555将这些样本加至缩放器/逆变换单元551的输出(单元551的输出可以称为残差样本或残差信号)以生成输出样本信息。运动补偿预测单元553从其获取预测样本的参考图片存储器557内的地址可以由运动矢量控制,运动矢量以符号521的形式供运动补偿预测单元553使用,符号521可以具有例如X、Y分量(移位)和参考图片分量(时间)。运动补偿还可以包括在使用子样本精确运动矢量时对从参考图片存储器557获取的样本值的插值,并且还可以与运动矢量预测机制等相关联。

聚合器555的输出样本可以在环路滤波器单元556中经受各种环路滤波技术。视频压缩技术可以包括环路内滤波器技术,环路内滤波器技术受控于编码视频序列(也称为编码视频比特流)中包括的参数,所述参数作为来自解析器520的符号521可用于环路滤波器单元556,但是视频压缩技术也可以响应于在对编码图片或编码视频序列的先前(按解码顺序)部分进行解码期间获得的元信息,以及响应于先前重建并且经环路滤波的样本值。若干种类型的环路滤波器可以以各种顺序被包括为环路滤波器单元556的一部分,这将在下面更详细地描述。

环路滤波器单元556的输出可以是样本流,该样本流可以输出至呈现设备512以及存储在参考图片存储器557中,以用于将来的帧间图片预测。

一旦完全重建,某些编码图片就可以被用作参考图片以用于将来的帧间图片预测。例如,一旦与当前图片对应的编码图片被完全重建,并且编码图片(通过例如解析器520)被识别为参考图片,则当前图片缓冲器558可以变为参考图片存储器557的一部分,并且可以在开始重建随后的编码图片之前重新分配新的当前图片缓冲器。

视频解码器510可以根据诸如ITU-T H.265建议书的标准中采用的预定视频压缩技术执行解码操作。在编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件两者的意义上,编码视频序列可以符合所使用的视频压缩技术或标准指定的语法。具体地,配置文件可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为仅在所述配置文件下可使用的工具。为了符合标准,编码视频序列的复杂度可以处于由视频压缩技术或标准的级别限定的范围内。在一些情况下,级别限制最大图片大小、最大帧速率、最大重建样本速率(以例如每秒兆个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由级别设置的限制可以通过假设参考解码器(HypotheticalReference Decoder,HRD)规范以及在编码视频序列中用信号通知的HRD缓冲器管理的元数据来进一步限定。

在一些示例实施方式中,接收器531可以将经编码的视频与附加(冗余)数据一起接收。附加数据可以被包括作为编码视频序列的一部分。附加数据可以被视频解码器510用于对数据进行适当解码以及/或者更准确地重建原始视频数据。附加数据可以是例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等形式。

图6示出了根据本公开内容的示例实施方式的视频编码器603的框图。视频编码器603可以被包括在电子设备620中。电子设备620还可以包括传输器640(例如,传输电路系统)。可以使用视频编码器603代替图4的示例中的视频编码器403。

视频编码器603可以从视频源601(其并非图6的示例中的电子设备620的一部分)接收视频样本,视频源601可以捕获要由视频编码器603编码的视频图像。在另一示例中,视频源601可以实现为电子设备620的一部分。

视频源601可以提供要由视频编码器603编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可以具有任何合适的比特深度(例如:8比特、10比特、12比特、…)、任何颜色空间(例如,BT.601YCrCb、RGB、XYZ…)和任何合适的采样结构(例如,YCrCb 4:2:0、YCrCb 4:4:4)。在媒体服务系统中,视频源601可以是能够存储先前准备的视频的存储设备。在视频会议系统中,视频源601可以是捕获本地图像信息作为视频序列的摄像装置。可以将视频数据提供为当按顺序观看时被赋予运动的多个单独的图片或图像。图片自身可以被组织为空间像素阵列,其中,取决于所使用的采样结构、颜色空间等,每个像素可以包括一个或更多个样本。本领域普通技术人员可以容易地理解像素与样本之间的关系。

以下描述集中于样本进行。

根据一些示例实施方式,视频编码器603可以实时地或者在由应用要求的任何其他时间约束下将源视频序列的图片编码并压缩成编码视频序列643。施行适当的编码速度构成控制器650的一个功能。在一些实施方式中,控制器650可以在功能上耦接至如下所述的其他功能单元并且控制所述其他功能单元。为了简单起见,未描绘耦接。通过控制器650设置的参数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值…)、图片大小、图片群组(GOP)布局、最大运动矢量搜索范围等。控制器650可以被配置成具有其他合适的功能,这些功能属于针对某一系统设计优化的视频编码器603。

在一些示例实施方式中,视频编码器603可以被配置成在编码环路中操作。作为过于简化的描述,在示例中,编码环路可以包括源编码器630(例如,负责基于要编码的输入图片以及参考图片创建诸如符号流的符号)以及嵌入在视频编码器603中的(本地)解码器633。解码器633以类似于(远程)解码器将创建样本数据的方式重建符号以创建样本数据,即使嵌入式解码器633在没有熵编码的情况下处理源编码器630的编码视频流也是如此(因为在所公开的主题中考虑的视频压缩技术中,熵编码中的编码视频比特流与符号之间的任何压缩都可以是无损的)。重建的样本流(样本数据)被输入至参考图片存储器634。由于符号流的解码产生与解码器位置(本地或远程)无关的比特精确结果,因此参考图片存储器634中的内容在本地编码器与远程编码器之间也是比特精确的。换言之,编码器的预测部分“看到”的参考图片样本与解码器在解码期间使用预测时将“看到”的样本值完全相同。该参考图片同步性基本原理(以及在例如由于信道误差而无法维持同步性的情况下产生的漂移)用于提高编码质量。

“本地”解码器633的操作可以与已经在上面结合图5详细描述的“远程”解码器(例如视频解码器510)的操作相同。然而,还简要参照图5,当符号可用并且熵编码器645和解析器520将符号编码/解码为编码视频序列可以是无损的时,包括缓冲存储器515和解析器520的视频解码器510的熵解码部分可以不完全在编码器的本地解码器633中实现。

此时可以观察到,除了可能仅存在于解码器中的解析/熵解码之外的任何解码器技术,也可能必定需要以基本上相同的功能形式存在于对应的编码器中。出于该原因,所公开的主题有时可能集中于与编码器的解码部分相关的解码器操作。由于编码器技术与已全面描述的解码器技术互逆,因此可以简化对编码器技术的描述。下面仅在某些区域或方面中提供了对编码器的更详细描述。

在操作期间,在一些示例实现方式中,源编码器630可以执行运动补偿预测性编码,该运动补偿预测性编码参考来自视频序列的被指定为“参考图片”的一个或更多个先前编码图片来对输入图片进行预测性编码。以此方式,编码引擎632对输入图片的像素块与可以被选作输入图片的预测参考的参考图片的像素块之间的颜色通道中的差异(或残差)进行编码。术语“残差”及其形容词形式“残余的”可以互换使用。

本地视频解码器633可以基于由源编码器630创建的符号,对可以被指定为参考图片的图片的编码视频数据进行解码。编码引擎632的操作可以有利地为有损处理。当编码视频数据可以在视频解码器(图6中未示出)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器633复制可以由视频解码器对参考图片执行的解码处理,并且可以使重建的参考图片存储在参考图片高速缓存634中。以此方式,视频编码器603可以在本地存储重建的参考图片的副本,所述副本与将由远端(远程)视频解码器获得的重建的参考图片具有共同内容(不存在传输误差)。

预测器635可以针对编码引擎632执行预测搜索。也就是说,对于要编码的新图片,预测器635可以在参考图片存储器634中搜索可以用作新图片的适当的预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器635可以基于样本块逐像素块进行操作,以找到适当的预测参考。在一些情况下,如由通过预测器635获得的搜索结果所确定的,输入图片可以具有从参考图片存储器634中存储的多个参考图片取得的预测参考。

控制器650可以管理源编码器630的编码操作,包括例如设置用于对视频数据进行编码的参数和子群组参数。

可以在熵编码器645中对所有以上提及的功能单元的输出进行熵编码。熵编码器645通过根据诸如霍夫曼编码、可变长度编码、算术编码等的技术对由各种功能单元生成的符号进行无损压缩,将符号转换成编码视频序列。

传输器640可以缓冲由熵编码器645创建的编码视频序列,从而为经由通信信道660进行传输做准备,通信信道660可以是到存储经编码的视频数据的存储设备的硬件/软件链路。传输器640可以将来自视频编码器603的编码视频数据与要传输的其他数据合并,所述其他数据例如是编码音频数据和/或辅助数据流(未示出源)。

控制器650可以管理视频编码器603的操作。在编码期间,控制器650可以向每个编码图片分配某一编码图片类型,这可能影响可以应用于相应的图片的编码技术。例如,通常可以将图片分配为以下图片类型中的一种:

帧内图片(I图片),其可以是在不将序列中的任何其他图片用作预测源的情况下就可以被编码和解码的图片。一些视频编解码器允许不同类型的帧内图片,包括例如独立解码器刷新(“IDR(Independent Decoder Refresh)”)图片。本领域普通技术人员了解I图片的那些变型及其相应的应用和特征。

预测性图片(P图片),其可以是可以使用下述帧间预测或帧内预测进行编码和解码的图片,该帧间预测或帧内预测使用至多一个运动矢量和参考索引来预测每个块的样本值。

双向预测性图片(B图片),其可以是可以使用下述帧间预测或帧内预测进行编码和解码的图片,该帧间预测或帧内预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多预测性图片可以将多于两个参考图片和相关联元数据用于单个块的重建。

源图片通常可以在空间上细分成多个样本编码块(例如,分别为4×4、8×8、4×8或16×16样本的块),并且逐块进行编码。可以参考其他(已经编码的)块对这些块进行预测性编码,所述其他块是通过应用于块的相应图片的编码分配而确定的。例如,可以对I图片的块进行非预测性编码,或者可以参考同一图片的已经编码的块对I图片的块进行预测性编码(空间预测或帧内预测)。P图片的像素块可以参考一个先前编码的参考图片经由空间预测或经由时间预测进行预测性编码。B图片的块可以参考一个或两个先前编码的参考图片经由空间预测或经由时间预测进行预测性编码。源图片或中间处理的图片可以被细分成其他类型的块以用于其他目的。如下面进一步详细描述的,编码块和其他类型的块的划分可以遵循或可以不遵循相同的方式。

视频编码器603可以根据诸如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在视频编码器603的操作中,视频编码器603可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测性编码操作。因此,编码视频数据可以符合由所使用的视频编码技术或标准指定的语法。

在一些示例实施方式中,传输器640可以将附加数据连同经编码的视频一起传输。源编码器630可以包括这样的数据作为编码视频序列的一部分。附加数据可以包括时间/空间/SNR增强层、其他形式的冗余数据例如冗余图片以及切片、SEI消息、VUI参数集片段等。

可以按时间序列将视频捕获为多个源图片(视频图片)。帧内图片预测(通常简写为帧内预测)利用给定图片中的空间相关性,而帧间图片预测利用图片之间的时间或其他相关性。例如,编码/解码中的特定图片——其被称为当前图片——可以被划分成块。当前图片中的块在类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可以通过被称作运动矢量的矢量进行编码。运动矢量指向参考图片中的参考块,并且在使用多个参考图片的情况下,运动矢量可以具有标识参考图片的第三维度。

在一些示例实施方式中,可以将双向预测技术用于帧间图片预测。根据这样的双向预测技术,使用两个参考图片,诸如按解码顺序均继续进行视频中的当前图片(但按显示顺序可能分别是过去或将来)的第一参考图片和第二参考图片。可以通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。可以通过第一参考块和第二参考块的组合来联合预测该块。

此外,可以将合并模式技术用于帧间图片预测以提高编码效率。

根据本公开内容的一些示例实施方式,以块为单位执行诸如帧间图片预测和帧内图片预测的预测。例如,将视频图片序列中的图片划分成编码树单元(coding tree unit,CTU)以用于压缩,图片中的CTU可以具有相同大小,例如64×64像素、32×32像素或16×16像素。一般地,CTU可以包括三个并行编码树块(coding tree block,CTB):一个亮度CTB和两个色度CTB。每个CTU可以被递归地以四叉树分割成一个或多个编码单元(coding unit,CU)。例如,可以将64×64像素的CTU分割成一个64×64像素的CU、或4个32×32像素的CU。32×32块中的一个或更多个块中的每一个可以进一步分割成4个16×16像素的CU。在一些示例实施方式中,可以在编码期间分析每个CU以确定各种预测类型之中用于CU的预测类型,例如帧间预测类型或帧内预测类型。取决于时间和/或空间可预测性,可以将CU分割成一个或更多个预测单元(prediction unit,PU)。通常,每个PU包括亮度预测块(predictionblock,PB)和两个色度PB。在实施方式中,以预测块为单位执行译码(编码/解码)中的预测操作。可以以各种空间模式执行将CU分割成PU(或不同颜色通道的PB)。例如,亮度或色度PB可以包括用于样本例如8×8像素、16×16像素、8×16像素、16×8样本等的值(例如,亮度值)的矩阵。

图7示出了根据本公开内容的另一示例实施方式的视频编码器703的图。视频编码器703被配置成接收视频图片序列中的当前视频图片内的样本值的处理块(例如,预测块),并且将处理块编码到作为编码视频序列的一部分的编码图片中。可以使用示例视频编码器703代替图4示例中的视频编码器(403)。

例如,视频编码器703接收用于处理块例如8×8样本的预测块等的样本值的矩阵。然后,视频编码器703使用例如率失真优化(rate-distortion optimization,RDO)来确定是使用帧内模式、帧间模式还是双向预测模式对处理块最佳地编码。在确定以帧内模式对处理块进行编码的情况下,视频编码器703可以使用帧内预测技术将处理块编码到编码图片中;而在确定以帧间模式或双向预测模式对处理块进行编码的情况下,视频编码器703可以分别使用帧间预测或双向预测技术将处理块编码到编码图片中。在一些示例实施方式中,合并模式可以用作帧间图片预测的子模式,其中在不借助于预测器外部的编码运动矢量分量的情况下从一个或更多个运动矢量预测器得出运动矢量。在一些其他示例实施方式中,可以存在适用于主题块的运动矢量分量。因此,视频编码器703可以包括图7中未明确示出的部件,例如,用于确定处理块的预测模式的模式决策模块。

在图7的示例中,视频编码器703包括如图7中的示例布置中所示的耦接在一起的帧间编码器730、帧内编码器722、残差计算器723、开关726、残差编码器724、通用控制器721和熵编码器725。

帧间编码器730被配置成接收当前块(例如,处理块)的样本、将该块与参考图片中的一个或更多个参考块(例如,按显示顺序的先前图片和后来图片中的块)进行比较、生成帧间预测信息(例如,根据帧间编码技术的冗余信息描述、运动矢量、合并模式信息)、以及基于帧间预测信息使用任何合适的技术计算帧间预测结果(例如,已预测块)。在一些示例中,参考图片是使用嵌入在图6的示例编码器620中的解码单元633(示出为图7的残差解码器728,如下面进一步详细描述的)基于经编码的视频信息解码的解码参考图片。

帧内编码器722被配置成接收当前块(例如,处理块)的样本、将该块与同一图片中已经编码的块进行比较、以及在变换之后生成量化系数、以及在一些情况下还生成帧内预测信息(例如,根据一个或更多个帧内编码技术的帧内预测方向信息)。帧内编码器722可以基于帧内预测信息和同一图片中的参考块来计算帧内预测结果(例如,已预测块)。

通用控制器721可以被配置成确定通用控制数据,并且基于通用控制数据来控制视频编码器703的其他部件。在示例中,通用控制器721确定块的预测模式,并且基于该预测模式将控制信号提供至开关726。例如,当预测模式是帧内模式时,通用控制器721控制开关726选择帧内模式结果供残差计算器723使用,并且控制熵编码器725选择帧内预测信息并且将帧内预测信息包括在比特流中;并且当该块的预测模式是帧间模式时,通用控制器721控制开关726选择帧间预测结果供残差计算器723使用,并且控制熵编码器725选择帧间预测信息并且将帧间预测信息包括在比特流中。

残差计算器723可以被配置成计算接收到的块与选自帧内编码器722或帧间编码器730的块的预测结果之间的差(残差数据)。残差编码器724可以被配置成对残差数据进行编码以生成变换系数。例如,残差编码器724可以被配置成将残差数据从空间域转换至频域以生成变换系数。然后,变换系数经受量化处理以获得量化的变换系数。在各种示例实施方式中,视频编码器703还包括残差解码器728。残差解码器728被配置成执行逆变换并且生成解码残差数据。解码残差数据可以适当地由帧内编码器722和帧间编码器730使用。例如,帧间编码器730可以基于解码残差数据和帧间预测信息来生成解码块,以及帧内编码器722可以基于解码残差数据和帧内预测信息来生成解码块。适当处理解码块以生成解码图片,并且解码图片可以缓冲在存储器电路(未示出)中并用作参考图片。

熵编码器725可以被配置成将比特流格式化以包括经编码的块并且执行熵编码。熵编码器725被配置成在比特流中包括各种信息。例如,熵编码器725可以被配置成在比特流中包括通用控制数据、选择的预测信息(例如,帧内预测信息或帧间预测信息)、残差信息以及其他合适的信息。当在帧间模式或双向预测模式的合并子模式下对块进行编码时,可能不存在残差信息。

图8示出了根据本公开内容的另一实施方式的示例视频解码器810的图。视频解码器810被配置成接收作为编码视频序列的一部分的编码图片,并且对编码图片进行解码以生成重建的图片。在示例中,可以使用视频解码器810代替图4的示例中的视频解码器410。

在图8的示例中,视频解码器810包括如图8的示例布置中所示的耦接在一起的熵解码器871、帧间解码器880、残差解码器873、重建模块874和帧内解码器872。

熵解码器871可以被配置成根据编码图片来重建某些符号,这些符号表示构成编码图片的语法元素。这样的符号可以包括例如对块进行编码的模式(例如,帧内模式、帧间模式、双向预测模式、合并子模式或另一子模式)、可以标识供帧内解码器872或帧间解码器880进行预测所使用的某些样本或元数据的预测信息(例如,帧内预测信息或帧间预测信息)、呈例如量化的变换系数的形式的残差信息等。在示例中,当预测模式是帧间模式或双向预测模式时,将帧间预测信息提供至帧间解码器880;而当预测类型是帧内预测类型时,将帧内预测信息提供至帧内解码器872。残差信息可以经受逆量化并且被提供至残差解码器873。

帧间解码器880可以被配置成接收帧间预测信息,并且基于帧间预测信息来生成帧间预测结果。

帧内解码器872可以被配置成接收帧内预测信息,并且基于帧内预测信息来生成预测结果。

残差解码器873可以被配置成执行逆量化以提取去量化的变换系数,并且对去量化的变换系数进行处理以将残差从频域转换至空间域。残差解码器873还可以利用某些控制信息(用于包括量化器参数(Quantizer Parameter,QP)),该控制信息可以由熵解码器871提供(由于这可能仅是低数据量控制信息,因此未描绘数据路径)。

重建模块874可以被配置成在空间域中将由残差解码器873输出的残差与预测结果(由帧间预测模块或帧内预测模块输出,视情况而定)进行组合以形成重建的块,该重建的块形成重建的图片的一部分,作为重建的视频的一部分。注意,还可以执行其他合适的操作例如去块操作等来改善视觉质量。

注意,可以使用任何合适的技术来实现视频编码器403、603和703以及视频解码器410、510和810。在一些示例实施方式中,可以使用一个或更多个集成电路来实现视频编码器403、603和703以及视频解码器410、510和810。在另一实施方式中,可以使用执行软件指令的一个或更多个处理器来实现视频编码器403、603和603以及视频解码器410、510和810。

转到用于编码和解码的块划分,一般划分可以从基本块开始,并且可以遵循预定义的规则集、特定模式、划分树或任何划分结构或方案。划分可以是分层的和递归的。在遵循任何示例划分过程或以下描述的其他过程或其组合来分割或划分基本块之后,可以获得最终的一组分区或编码块。这些分区中的每一个可以在划分分层中的各种划分级别中之一处,并且可以具有各种形状。分区中的每一个可以称为编码块(coding block,CB)。对于以下进一步描述的各种示例划分实现方式,每个所得到的CB可以具有任何允许的大小和划分级别。这样的分区称为编码块,因为它们可以形成这样的单元:可以针对其作出一些基本编码/解码决策,并且可以优化、确定编码/解码参数并在经编码的视频比特流中用信号通知该编码/解码参数。最终分区中的最高或最深级别表示树的编码块划分结构的深度。编码块可以是亮度编码块或色度编码块。每种颜色的CB树结构可以称为编码块树(coding blocktree,CBT)。

所有颜色通道的编码块可以统称为编码单元(CU)。所有颜色通道的分层结构可以统称为编码树单元(CTU)。CTU中的各种颜色通道的划分模式或结构可以相同或不同。

在一些实现方式中,用于亮度和色度通道的划分树方案或结构可以不必相同。换言之,亮度和色度通道可以具有各自的编码树结构或模式。此外,亮度和色度信道是否使用相同或不同的编码划分树结构以及要使用的实际编码划分树结构可以取决于正被编码的切片是P、B还是I切片。例如,对于I切片,色度通道和亮度通道可以具有各自的编码划分树结构或编码划分树结构模式,而对于P或B切片,亮度和色度通道可以共享相同的编码划分树方案。当应用各自的编码划分树结构或模式时,可以通过一个编码划分树结构将亮度通道划分成CB,并且可以通过另一编码划分树结构将色度通道划分成色度CB。

在一些示例实现方式中,可以将预定划分模式应用于基本块。如图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。对于以上方案,从64×64基本块到4×4的最小分区的最大或最深级别将是4(从级别0开始)。这样的划分方案可以应用于颜色通道中的一个或更多个。每个颜色通道可以遵循图9的方案独立地进行划分(例如,可以在每个分层级别针对颜色通道中的每一个独立地确定预定义模式中的划分模式或选项)。替选地,颜色通道中的两个或更多个可以共享图9的相同的分层模式树(例如,可以在每个分层级别针对两个或更多个颜色通道选择预定义模式中的相同划分模式或选项)。

图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色度帧间预测。

在编码块划分的一些其他示例实现方式中,可以使用四叉树结构来将基本块或中间块分割成四叉树分区。这样的四叉树分割可以被分层地和递归地应用于任何正方形分区。基本块或中间块或分区是否被进一步四叉树分割可以根据基本块或中间块/分区的各种局部特性进行适应性调整。可以进一步对图片边界处的四叉树分割进行适应性调整。例如,可以在图片边界处执行隐式四叉树分割,使得块将保持四叉树分割直到大小适合图片边界。

在一些其他示例实现方式中,可以使用从基本块进行的分层二元划分。对于这样的方案,可以将基本块或中间级别块划分成两个分区。二元划分可以是水平的或垂直的。例如,水平二元划分可以将基本块或中间块分割成相等的右分区和左分区。同样,垂直二元划分可以将基本块或中间块分割成相等的上分区和下分区。这样的二元划分可以是分层的和递归的。可以在基本块或中间块中的每一个处作出是否应当继续二元划分方案的决策,并且如果方案进一步继续,则作出应当使用水平二元划分还是垂直二元划分的决策。在一些实现方式中,进一步的划分可以在预定义的最低分区大小(在一个或两个维度上)处停止。替选地,一旦达到距基本块的预定义划分级别或深度,就可以停止进一步的划分。在一些实现方式中,可以限制分区的长宽比。例如,分区的长宽比可以不小于1:4(或大于4:1)。这样,具有4:1的垂直与水平长宽比的垂直条分区可以仅进一步被垂直二元划分成各自具有2:1的垂直与水平长宽比的上部分区和下部分区。

在又一些其他示例中,如图13所示,可以使用三元划分方案来划分基本块或任何中间块。三元模式可以如图13的1302所示垂直实现,或者如图13的1304所示水平实现。虽然图13中的示例分割比(垂直地或水平地)被示为1:2:1,但是也可以预定义其他比率。在一些实现方式中,可以预定义两个或更多个不同的比率。这样的三元划分方案可以用于补充四叉树或二元划分结构,因为这样的三叉树划分能够在一个连续的分区中捕获位于块中心的对象,而四叉树和二叉树总是沿块中心分割,并且因此将对象分割成分离的分区。在一些实现方式中,示例三叉树的分区的宽度和高度总是2的幂以避免附加变换。

以上划分方案可以在不同的划分级别处以任何方式组合。作为一个示例,可以组合上述四叉树和二元划分方案以将基本块划分成四叉树-二叉树(quadtree-binary-tree,QTBT)结构。在这样的方案中,基本块或中间块/分区可以是四叉树分割或二叉树分割,如果指定,则服从一组预定义条件。在图14中示出了具体示例。在图14的示例中,基本块首先被四叉树分割成四个分区,如1402、1404、1406和1408所示。此后,所得到的分区中的每一个被四叉树分割成四个进一步的分区(例如1408),或者在下一级别被二元分割成两个进一步的分区(水平地或垂直地例如1402或1406,例如两者均是对称的),或者不分割(例如1404)。可以允许二元或四叉树分割递归地用于正方形形状的分区,如1410的整体示例划分模式和1420中的对应树结构/表示所示,其中实线表示四叉树分割,并且虚线表示二元分割。可以将标志用于每个二元分割节点(非叶二元分区)以指示二元分割是水平的还是垂直的。例如,如1420所示,与1410的划分结构一致,标志“0”可以表示水平二元分割,并且标志“1”可以表示垂直二元分割。对于四叉树分割划分,不需要指示分割类型,因为四叉树分割总是水平地且垂直地分割块或分区以产生具有相等大小的4个子块/分区。在一些实现方式中,标志“1”可以表示水平二元分割,并且标志“0”可以表示垂直二元分割。

在QTBT的一些示例实现方式中,四叉树和二元分割规则集可以由以下预定义参数和与其相关联的对应函数来表示:

-CTU大小:四叉树的根节点大小(基本块的大小)

-MinQTSize:允许的最小四叉树叶节点大小

-MaxBTSize:允许的最大二叉树根节点大小

-MaxBTDepth:允许的最大二叉树深度

-MinBTSize:允许的最小二叉树叶节点大小在QTBT划分结构的一些示例实现方式中,可以将CTU大小设置为具有两个对应的64×64色度样本块(当考虑并使用示例色度子采样时)的128×128亮度样本,可以将MinQTSize设置为16×16,可以将MaxBTSize设置为64×64,可以将MinBTSize(对于宽度和高度两者)设置为4×4,并且可以将MaxBTDepth设置为4。四叉树划分首先可以应用于CTU以生成四叉树叶节点。四叉树叶节点可以具有从其允许的最小大小16×16(即,MinQTSize)到128×128(即,CTU大小)的大小。如果节点为128×128,则由于大小超过MaxBTSize(即,64×64),因此不会首先通过二叉树分割。否则,不超过MaxBTSize的节点可以通过二叉树划分。在图14的示例中,基本块为128×128。根据预定义规则集,基本块仅可以是四叉树分割。基本块具有分割深度0。所得到的四个分区中的每一个为64×64——不超过MaxBTSize,在级别1处可以进一步是四叉树或二叉树分割。过程继续。当二叉树深度达到MaxBTDepth(即,4)时,可以不考虑进一步的分割。当二叉树节点的宽度等于MinBTSize(即,4)时,可以不考虑进一步的水平分割。类似地,当二叉树节点的高度等于MinBTSize时,不考虑进一步的垂直分割。

在一些示例实现方式中,以上QTBT方案可以被配置成支持亮度和色度具有相同的QTBT结构或单独的QTBT结构的灵活性。例如,对于P和B切片,一个CTU中的亮度CTB和色度CTB可以共享相同的QTBT结构。然而,对于I切片,可以将亮度CTB通过QTBT结构划分成CB,并且可以将色度CTB通过另一QTBT结构划分成色度CB。这意味着CU可以用于指代I切片中的不同颜色通道,例如,I切片可以由亮度分量的编码块或两个色度分量的编码块组成,并且P或B切片中的CU可以由所有三个颜色分量的编码块组成。

在一些其他实现方式中,QTBT方案可以用上述三元方案来补充。这样的实现方式可以称为多类型树(multi-type-tree,MTT)结构。例如,除了节点的二元分割之外,可以选择图13的三元划分模式中之一。在一些实现方式中,仅正方形节点可以经受三元分割。可以使用附加标志来指示三元划分是水平的还是垂直的。

诸如QTBT实现方式和由三元分割补充的QTBT实现方式的两级或多级树的设计主要是为了降低复杂度。理论上,遍历树的复杂度是T

在一些实现方式中,CB可以被进一步划分。例如,出于编码和解码过程期间进行帧内或帧间预测的目的,还可以将CB划分成多个预测块(PB)。换言之,可以将CB进一步分割成不同的子分区,在子分区中可以进行单独的预测决策/配置。并行地,出于描绘执行视频数据的变换或逆变换的级别的目的,可以将CB进一步划分成多个变换块(transform block,TB)。CB到PB和TB的划分方案可以相同或者可以不同。例如,每个划分方案可以基于例如视频数据的各种特性使用其自己的过程来执行。在一些示例实现方式中,PB划分方案和TB划分方案可以是独立的。在一些其他示例实现方式中,PB和TB划分方案以及边界可以是相关的。在一些实现方式中,例如,可以在PB分区之后对TB进行划分,并且特别地,在划分编码块后确定每个PB之后,然后可以将PB进一步划分成一个或更多个TB。例如,在一些实现方式中,可以将PB分割成一个、两个、四个或其他数目的TB。

在一些实现方式中,为了将基本块划分成编码块并且进一步划分成预测块和/或变换块,可以对亮度通道和色度通道进行不同处理。例如,在一些实现方式中,将编码块划分成预测块和/或变换块对于亮度通道可以是允许的,而这样的将编码块划分成预测块和/或变换块对于色度通道可能是不允许的。在这样的实现方式中,亮度块的变换和/或预测因此可以仅在编码块级别处执行。对于另一示例,亮度通道和色度通道的最小变换块大小可以不同,例如,与色度通道相比,亮度通道的编码块可以被允许划分成较小的变换块和/或预测块。对于又一示例,将编码块划分成变换块和/或预测块的最大深度在亮度通道与色度通道之间可以不同,例如,与色度通道相比,亮度通道的编码块可以被允许划分成较深的变换块和/或预测块。对于具体示例,可以将亮度编码块划分成多种大小的变换块,这些变换块可以由向下多至2个级别的递归划分来表示,并且可以允许例如正方形、2:1/1:2和4:1/1:4的变换块形状以及从4×4到64×64的变换块大小。然而,对于色度块,可能仅允许针对亮度块指定的最大可能变换块。

在用于将编码块划分成PB的一些示例实现方式中,PB划分的深度、形状和/或其他特性可以取决于PB是帧内编码还是帧间编码。

将编码块(或预测块)划分成变换块可以以各种示例方案实现,包括但不限于递归地或非递归地进行四叉树分割和预定义模式分割,并另外考虑了编码块或预测块的边界处的变换块。一般地,所得到的变换块可以在不同的分割级别处,可以不具有相同的大小,并且可以不需要形状为正方形(例如,它们可以是具有一些允许的大小和长宽比的矩形)。下面关于图15、图16和图17进一步详细描述其他示例。

然而,在一些其他实现方式中,经由以上划分方案中的任一种获得的CB可以用作用于预测和/或变换的基本或最小编码块。换言之,出于执行帧间预测/帧内预测目的和/或出于变换目的,不执行进一步的分割。例如,从以上QTBT方案获得的CB可以直接用作用于执行预测的单元。具体地,这样的QTBT结构去除了多个划分类型的概念,即,去除了CU、PU和TU的分离,并且支持如上所述的CU/CB划分形状的更多灵活性。在这样的QTBT块结构中,CU/CB可以具有正方形或矩形形状。这样的QTBT的叶节点被用作用于预测和变换处理的单元,而无需任何进一步的划分。这意味着CU、PU和TU在这样的示例QTBT编码块结构中具有相同的块大小。

可以以任何方式组合以上各种CB划分方案和CB到PB和/或TB的进一步划分(不包括PB/TB划分)。提供以下具体实现方式作为非限制性示例。

下面描述编码块和变换块划分的具体示例实现方式。在这样的示例实现方式中,可以使用递归四叉树分割或上述预定义分割模式(例如图9和图10中的那些)将基本块分割成编码块。在每个级别处,是否应当继续特定分区的进一步四叉树分割可以由本地视频数据特性来确定。所得到的CB可以在不同的四叉树分割级别处,并且可以具有不同的大小。可以在CB级别(或CU级别,对于所有三色通道)处做出关于是使用帧间图片(时间)预测还是帧内图片(空间)预测来对图片区域进行编码的决策。可以根据预定义的PB分割类型将每个CB进一步分割成一个、两个、四个或其他数目的PB。在一个PB内,可以应用相同的预测处理,并且可以基于PB将相关信息传输至解码器。在通过基于PB分割类型应用预测处理获得残差块之后,可以根据与CB的编码树类似的另一四叉树结构将CB划分成TB。在该特定实现方式中,CB或TB可以为正方形形状,但不必限于正方形形状。此外,在该特定示例中,对于帧间预测,PB可以为正方形或矩形形状,但对于帧内预测,PB可以仅为正方形。可以将编码块分割成例如四个正方形形状的TB。可以将每个TB进一步递归地(使用四叉树分割)分割成较小的TB,所述较小的TB称为残差四叉树(Residual Quadtree,RQT)。

下面进一步描述将基本块划分成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对于最大变换长度而言太大,否则该分段被用于预测和变换处理两者,而无需任何进一步的划分。这意味着,在大多数情况下,CU、PU和TB在具有嵌套的多类型树编码块结构的四叉树中具有相同的块大小。在最大支持变换长度小于CB的颜色分量的宽度或高度时,出现例外。在一些实现方式中,除了二元或三元分割之外,图11的嵌套模式还可以包括四叉树分割。

图12中示出了针对一个基本块的具有块划分的嵌套的多类型树编码块结构的四叉树(包括四叉树、二元和三元分割选项)的一个特定示例。更详细地,图12示出了基本块1200被四叉树分割成四个正方形分区1202、1204、1206和1208。针对四叉树分割分区中的每一个做出进一步使用图11的多类型树结构和四叉树进行进一步的分割的决策。在图12的示例中,分区1204未被进一步分割。分区1202和1208各自采用另一四叉树分割。对于分区1202,第二级别四叉树分割的左上、右上、左下和右下分区分别采用第三级别的四叉树分割、图11的水平二元分割1104、无分割和图11的水平三元分割1108。分区1208采用另一四叉树分割,并且第二级别四叉树分割的左上、右上、左下和右下分区分别采用图11的垂直三元分割1106的第三级别分割、无分割、无分割和图11的水平二元分割1104。1208的第三级别左上分区的子分区中的两个子分区分别根据图11的水平二元分割1104和水平三元分割1108被进一步分割。分区1206采用第二级别分割模式,遵循图11的垂直二元分割1102分成两个分区,这两个分区根据图11的水平三元分割1108和垂直二元分割1102被进一步分割成第三级别。根据图11的水平二元分割1104,对所述分区中的一个分区进一步应用第四级别分割。

对于以上具体示例,最大亮度变换大小可以为64×64,并且最大支持色度变换大小可以不同于例如32×32下的亮度。即使以上图12中的示例CB通常不被进一步分割成更小的PB和/或TB,在亮度编码块或色度编码块的宽度或高度大于最大变换宽度或高度时,也可以将亮度编码块或色度编码块在水平方向和/或垂直方向上自动分割以满足该方向上的变换大小限制。

在以上用于将基本块划分成CB的特定示例中,并且如上所述,编码树方案可以支持亮度和色度具有单独的块树结构的能力。例如,对于P和B切片,一个CTU中的亮度CTB和色度CTB可以共享相同的编码树结构。例如,对于I切片,亮度和色度可以具有单独的编码块树结构。当应用单独的块树结构时,可以通过一个编码树结构将亮度CTB划分成亮度CB,并且通过另一编码树结构将色度CTB划分成色度CB。这意味着I切片中的CU可以包括亮度分量的编码块或两个色度分量的编码块,而P或B切片中的CU总是包括所有三个颜色分量的编码块,除非视频是单色的。

当编码块进一步被划分成多个变换块时,其中的变换块可以按各种顺序或扫描方式而在比特流中排序。下面进一步详细描述用于将编码块或预测块划分成变换块以及变换块的编码顺序的示例实现方式。在一些示例实现方式中,如上所述,变换划分可以支持多种形状的变换块,例如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)变换块的倍数。

在变换块划分的一些示例实现方式中,对于帧内编码块和帧间编码块两者,可以将编码块进一步划分成具有多至预定义数目的级别(例如,2个级别)的划分深度的多个变换块。变换块划分深度和大小可以是相关的。对于一些示例实现方式,以下在表1中示出了从当前深度的变换大小到下一深度的变换大小的映射。

表1:变换划分大小设置

基于表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子变换块。

在一些示例实现方式中,对于帧内编码块的亮度分量,可以关于变换块划分应用附加限制。例如,对于变换划分的每个级别,可以将所有子变换块限制为具有相等的大小。例如,对于32×16编码块,级别1变换分割创建两个16×16子变换块,级别2变换分割创建八个8×8子变换块。换言之,第二级别分割必须应用于所有第一级别子块,以将变换单元保持为相等的大小。图15中示出了按表1进行的帧内编码正方形块的变换块划分的示例、以及由箭头指示的编码顺序。具体地,1502示出了正方形编码块。在1504中示出了根据表1的到4个大小相等的变换块的第一级别分割,其中,编码顺序由箭头指示。在1506中示出了根据表1的所有第一级别大小相等的块到16个大小相等的变换块的第二级别分割,其中,编码顺序由箭头指示。

在一些示例实现方式中,对于帧间编码块的亮度分量,以上针对帧内编码的限制可能不适用于帧间编码块的亮度分量。例如,在第一级别的变换分割之后,子变换块中的任一个可以在高一级别被进一步独立地分割。因此,所得到的变换块可以具有或可以不具有相同的大小。图16中示出了帧间编码块到变换块的示例分割以及其编码顺序。在图16的示例中,根据表1以两个级别将帧间编码块1602分割成变换块。在第一级别处,帧间编码块被分割成四个大小相等的变换块。然后,四个变换块中的仅一个变换块(而非所有的变换块)进一步被分割成四个子变换块,从而得到具有两种不同大小的总共7个变换块,如1604所示。这7个变换块的示例编码顺序由图16的1604中的箭头示出。

在一些示例实现方式中,针对变换块的一些附加限制可以适用于色度分量。例如,对于色度分量,变换块大小可以与编码块大小一样大,但是不小于例如8×8的预定义大小。

在一些其他示例实现方式中,对于其宽度(W)或高度(H)大于64的编码块,亮度编码块和色度编码块两者可以分别被隐式地分割成多个min(W,64)×min(H,64)和min(W,32)×min(H,32)变换单元。这里,在本公开内容中,“min(a,b)”可以返回a与b之间的较小值。

图17另外示出了用于将编码块或预测块划分成变换块的另一替选示例方案。如图17所示,代替使用递归变换划分,可以根据编码块的变换类型将预定义的一组划分类型应用于编码块。在图17中示出的特定示例中,可以应用6种示例划分类型中之一以将编码块分割成各种数目的变换块。这样的生成变换块划分的方案可以应用于编码块或预测块。

更详细地,图17的划分方案提供了任何给定变换类型的多至6个示例划分类型(变换类型是指例如诸如ADST等的初级变换的类型)。在该方案中,可以基于例如率失真成本向每个编码块或预测块分配变换划分类型。在示例中,可以基于编码块或预测块的变换类型来确定分配给编码块或预测块的变换划分类型。特定变换划分类型可以对应于变换块分割大小和模式,如由图17中示出的6个变换划分类型所示出的。可以预定义各种变换类型与各种变换划分类型之间的对应关系。下面示出了其中大写标记指示可以基于率失真成本分配给编码块或预测块的变换划分类型的示例:

·PARTITION_NONE:分配与块大小相等的变换大小。

·PARTITION_SPLIT:分配为块大小的1/2宽度和块大小的1/2高度的变换大小。

·PARTITION_HORZ:分配具有与块大小相同的宽度和块大小的1/2高度的变换大小。

·PARTITION_VERT:分配具有块大小的1/2宽度和与块大小相同的高度的变换大小。

·PARTITION_HORZ4:分配具有与块大小相同的宽度和块大小的1/4高度的变换大小。

·PARTITION_VERT4:分配具有块大小的1/4宽度和与块大小相同的高度的变换大小。

在上面的示例中,如图17所示的变换划分类型包含用于划分的变换块的均匀变换大小。这仅是示例,而不是限制。在一些其他实现方式中,针对特定分割类型(或模式)下的划分的变换块,可以使用混合的变换块大小。

视频块(PB或CB,当不进一步划分成多个预测块时也称为PB)可以以各种方式预测而不是直接编码,从而利用视频数据中的各种相关性和冗余来提高压缩效率。因此,可以以各种模式执行这样的预测。例如,可以经由帧内预测或帧间预测来预测视频块。特别是在帧间预测模式中,可以由来自一个或更多个其他帧的一个或更多个其他参考块或帧间预测器块经由单一参考或复合参考帧间预测来预测视频块。对于帧间预测的实现方式,参考块可以由其帧标识符(参考块的时间位置)和指示正被编码或解码的当前块与参考块(参考块的空间位置)之间的空间偏移的运动矢量指定。可以在比特流中用信号通知参考帧标识和运动矢量。作为空间块偏移的运动矢量可以直接用信号通知,或者可以由另一参考运动矢量或预测器运动矢量自身预测。例如,当前运动矢量可以直接由(例如,候选邻近块的)参考运动矢量或者由参考运动矢量和当前运动矢量与参考运动矢量之间的运动矢量差(motionvector difference,MVD)的组合来预测。后者可以称为具有运动矢量差的合并模式(mergemode with motion vector difference,MMVD)。参考运动矢量可以在比特流中被标识为指向例如当前块的空间邻近块或时间相邻但空间并置的块的指针。

返回到帧内预测处理,在帧内预测处理中,由邻近的、下一邻近的或其他一个或更多个线中的样本或其组合来预测块(例如,亮度或色度预测块、或者如果不进一步分割成预测块则为编码块)中的样本,以生成预测块。然后可以经由接着是量化的变换来处理正被编码的实际块与预测块之间的残差。可以使各种帧内预测模式可用,并且可以在比特流中用信号通知与帧内模式选择有关的参数和其他参数。各种帧内预测模式例如可以与用于预测样本的一个或更多个行位置、沿着其从一条或更多条预测行中选择预测样本的方向、以及其他特殊的帧内预测模式有关。

例如,一组帧内预测模式(可互换地称为“帧内模式”)可以包括预定义数目的方向帧内预测模式。如上面关于图1的示例实现方式所描述的,这些帧内预测模式可以对应于预定义数目的方向,沿着这些方向选择块外样本作为对特定块中正被预测的样本的预测。在另一特定示例实现方式中,可以支持和预定义对应于与水平轴成45度至207度的角度的八(8)个主方向模式。

在帧内预测的一些其他实现方式中,为了进一步利用方向纹理中的更多种类的空间冗余,可以将方向帧内模式进一步扩展到具有更精细粒度的角度集合。例如,如图19所示,以上8角度实现方式可以被配置成提供八个标称角度,称为V_PRED、H_PRED、D45_PRED、D135_PRED、D113_PRED、D157_PRED、D203_PRED和D67_PRED,并且对于每个标称角度,可以添加预定义数目(例如,7)的更精细角度。通过这样的扩展,与相同数目的预定义方向帧内模式对应,更大的总数目(例如,在该示例中为56)的方向角度可用于帧内预测。预测角度可以由标称帧内角度加上角度增量来表示。对于以上针对每个标称角度具有7个更精细角度方向的特定示例,角度增量可以是-3~3乘以3度的步长。可以使用如图18所示,具有65个不同的预测角度的一些角度方案。

在一些实现方式中,作为以上方向帧内模式的替选或除了以上方向帧内模式之外,还可以对预定义数目的非方向帧内预测模式进行预定义并使预定义数目的非方向帧内预测模式可用。例如,可以指定称为平滑帧内预测模式的5个非方向帧内模式。这些非方向帧内模式预测模式可以具体称为DC、PAETH、SMOOTH、SMOOTH_V和SMOOTH_H帧内模式。图20中示出了在这些示例非方向模式下对特定块的样本的预测。作为示例,图20示出了由来自顶邻近行和/或左邻近行的样本预测的4×4块2002。块2002中的特定样本2010可以对应于块2002的顶邻近行中的样本2010的正顶部样本2004、作为顶邻近行和左邻近行的交叉点的样本2010的左上样本2006、以及块2002的左邻近行中的样本2010的正左样本2008。对于示例DC帧内预测模式,左邻近样本2008和顶邻近样本2004的平均值可以用作样本2010的预测器。对于示例PAETH帧内预测模式,可以获取顶参考样本2004、左参考样本2008和左上参考样本2006,并且然后可以将这三个参考样本中最接近(顶+左-左上)的任何值设置为样本2010的预测器。对于示例SMOOTH_V帧内预测模式,可以通过在左上邻近样本2006和左邻近样本2008的垂直方向上的二次插值来预测样本2010。对于示例SMOOTH_H帧内预测模式,可以通过在左上邻近样本2006和顶邻近样本2004的水平方向上的二次插值来预测样本2010。对于示例SMOOTH帧内预测模式,可以通过在垂直方向和水平方向上的二次插值的平均值来预测样本2010。以上非方向帧内模式实现方式仅作为非限制性示例示出。还可以设想样本的其他非方向选择和其他邻近行、以及对预测样本进行组合以用于预测预测块中的特定样本的方式。

可以在比特流中用信号通知编码器在各种编码级别(图片、切片、块、单元等)处从以上方向模式或非方向模式中对特定帧内预测模式的选择。在一些示例实现方式中,可以首先用信号通知示例性8个标称方向模式以及5个非角度平滑模式(总共13个选项)。然后,如果用信号通知的模式是8个标称角度帧内模式之一,则进一步用信号通知索引以指示为对应的用信号通知的标称角度选择的角度增量。在一些其他示例实现方式中,所有帧内预测模式可以一起被索引(例如,56个方向模式加上5个非方向模式以产生61个帧内预测模式)以供用信号通知。

在一些示例实现方式中,示例56或其他数目的方向帧内预测模式可以使用统一的方向预测器来实现,所述统一的方向预测器将块的每个样本投影到参考子样本位置并通过2抽头双线性滤波器对参考样本进行插值。

在一些实现方式中,为了捕获与边缘上的参考的衰减空间相关性,可以设计称为FILTER INTRA模式的附加滤波器模式。对于这些模式,除了块外样本之外的块内的预测样本可以用作块内的一些面片的帧内预测参考样本。例如,可以预定义这些模式并使其可用于至少亮度块(或仅亮度块)的帧内预测。可以预先设计预定义数目(例如,五个)的滤波器帧内模式,每个滤波器帧内模式由一组n抽头滤波器(例如,7抽头滤波器)表示,n抽头滤波器反映例如4×2面片中的样本和与其邻近的n个邻居之间的相关性。换言之,n抽头滤波器的权重因子可以是位置相关的。以8×8块、4×2面片和7抽头滤波为例,如图21所示,8×8块2002可以被分割成8个4×2面片。这些面片在图21中由B0、B1、B1、B3、B4、B5、B6和B7指示。对于每个面片,图21中由R0~R6指示的其7个邻居可以用于预测当前面片中的样本。对于面片B0,所有邻居可能已经被重建。但是对于其他面片,邻居中的一些在当前块中并且因此可能尚未被重建,则使用紧接的邻居的预测值作为参考。例如,不重建如图21所指示的面片B7的所有邻居,因此替代地使用邻居的预测样本。

在帧内预测的一些实现方式中,可以使用一个或更多个其他颜色分量来预测一个颜色分量。颜色分量可以是YCrCb、RGB、XYZ颜色空间等中的分量中的任一个。

使用一个或更多个其他颜色分量预测一个颜色分量的一种类型的帧内预测是根据亮度的色度(CfL)预测。在CfL预测中,基于亮度分量来预测色度分量。预测的色度分量可以包括色度块,所述色度块可以包括样本或色度样本。预测的样本称为预测样本。此外,预测的色度块可以对应于亮度块。在本文中,除非另外指定,否则亮度块与色度块之间的对应关系是指色度块与亮度块同位置。

此外,如本文所使用且如以下进一步详细描述的,用于预测色度分量的亮度分量可以包括亮度样本。亮度样本可以包括对应的或同位置的色度块本身的亮度样本,并且/或者可以包括邻近亮度样本,所述邻近亮度样本是与对应于正被预测的色度块的同位置亮度块相邻或邻近的一或更多个邻近亮度块的亮度样本。另外,对于至少一些实现方式,CfL预测处理中使用的亮度样本是重建的亮度样本,其可以是使用解码过程从原始亮度样本的压缩版本得出或重建的原始亮度样本的副本。

在一些实现方式中,编码器(例如,编码器403、603、703中的任一个)和/或解码器(例如,解码器410、510、810中的任一个)可以被配置成经由CfL预测处理来执行CfL预测。此外,在这些实现方式中的至少一些中,编码器和/或解码器可以在CfL预测模式中被配置成执行CfL预测处理。如以下进一步详细描述的,编码器和/或解码器可以在多个不同CfL预测模式中的至少一个中操作。在不同CfL预测模式中,编码器和/或解码器可以执行不同的相应CfL过程,以生成色度预测样本。

参照图22A至图22C,编码器和/或解码器可以包括被配置成执行CfL预测处理的CfL预测单元2202。在各种实现方式中,CfL预测单元2202可以是独立单元,或者可以是编码器或解码器的另一单元的部件或子单元。例如,在各种实现方式中的任一个中,CfL预测单元2202可以是帧内预测单元552、帧内编码器722或帧内解码器872的部件或子单元。此外,CfL预测单元2202可以被配置成执行各种或多个操作或功能,以执行或实现CfL过程。为了简单起见,CfL预测单元2202被描述为执行这些操作或功能中的每一个的编码器和/或解码器的部件。然而,在各种实现方式中的任一个中,CfL预测单元2202还可以被配置或组织成多个子单元,每个子单元被配置成执行CfL预测处理的操作或功能中的一个或更多个,或者与CfL预测单元2202分开的一个或更多个单元可以被配置成执行CfL预测处理的一个或更多个操作。此外,在各种实现方式中的任一个中,CfL预测单元2202可以以硬件或组合或者硬件或软件来实现,以执行和/或实现CfL过程的操作或功能。例如,CfL预测单元可以实现为集成电路、或被配置成执行存储在存储器中的软件或固件的处理器、或其组合。此外,在各种实现方式中的任一个中,非暂态计算机可读存储介质可以存储能够由处理器执行以执行CfL预测单元2202的功能或操作的计算机指令。

对于CfL预测,编码器和/或解码器例如经由CfL预测单元2202,可以确定CfL预测模式要被应用于接收的编码比特流中的亮度块。进而,CfL预测单元2202可以根据确定要应用的CfL预测模式对亮度块执行CfL预测。因此,编码器和/或解码器例如经由CfL预测单元2202,可以至少部分地通过应用CfL预测模式来重建对应于亮度块或与亮度块同位置的色度块。

如所提及的,CfL预测单元2202可以在多个CfL预测模式中的至少一个中操作。参照图22A,在第一CfL预测模式(或第一组一个或更多个CfL预测模式)中,CfL预测单元2202可以被配置成基于亮度块的亮度样本来生成与亮度块对应的色度块的多个预测样本。如所提及的,与亮度块对应的色度块是与亮度块同位置的色度块。因此,在图22A中,在第一CfL预测模式中,CfL预测单元使用与色度块同位置的亮度块的亮度样本,该CfL预测单元将针对所述色度块生成预测样本。

图23示出了CfL预测单元2202在第一CfL预测模式中可以执行的CfL预测处理的示例方法2300的流程图。在一些实现方式中,CfL预测处理例如图23中示出的CfL预测处理基于亮度样本的交流(alternating current,AC)贡献和色度样本的直流(direct current,DC)贡献来生成多个色度预测样本。AC贡献和DC贡献中的每一个可以是色度分量的预测,并且又称为AC贡献预测和DC贡献预测。在这些实现方式中的特定实现方式中,例如根据以下数学公式将色度预测样本建模为亮度样本的线性函数:

CfL(α)=α×L

其中,L

在如图23所示的这些实现方式的特定实现方式中,在块2302处,可以将亮度块的多个亮度样本子采样(或下采样)成色度分辨率(例如,4:2:0、4:2:2或4:4:4)。在块2304处,可以对经子采样的亮度样本求平均以生成亮度平均值。在块2306处,可以从亮度样本中减去亮度平均值以生成亮度分量的AC贡献。在块2308处,亮度分量的AC贡献可以乘以缩放参数α以生成亮度分量的缩放AC贡献。亮度分量的缩放AC贡献也可以是色度分量的AC贡献预测。在块2310处,根据线性模型,可以将色度分量的DC贡献预测加至AC贡献预测以生成色度预测样本。对于至少一些实现方式,缩放参数α可以是基于原始色度样本并且在比特流中用信号通知。这可以降低解码器的复杂度并产生更精确的预测。另外或替选地,在一些示例实现方式中,可以使用色度分量内的帧内DC模式来计算色度分量的DC贡献。

另外,在方法2300或第一CfL模式的一些实现方式中,当同位置亮度块的一些亮度样本在图片边界之外时,可以填补这些亮度样本,并且可以使用所填补的亮度样本来计算亮度平均值,例如块2304。图24示出了由图片边界限定的图片内部和图片外部的亮度样本的示意图。对于至少一些实现方式,可以通过处理当前块内的最近的可用样本的值来填补外部图片亮度样本。

另外或替选地,在一些实现方式中,当执行CfL预测时,在块2302处执行的子采样可以与在块2304处执行的求平均和/或在块2306处执行的减法组合。这进而可以简化线性建模的等式,同时去除子采样除法和舍入误差。下面的等式(2)对应于两个步骤的组合,其被简化为等式(3)。等式(2)和等式(3)两者均使用整数除法。此外,M×N是亮度平面中的像素矩阵。

基于色度子采样,S

另外,如以上针对等式(1)所指示的,图23中的CfL预测处理可以在完整的编码块内的亮度样本与色度样本之间仅采用一个线性模型。然而,对于一个完整的编码块内的亮度样本与色度样本之间的一些关系,仅一个线性模型可能不是最佳的。另外或替选地,在CfL预测方法2300中,使用对应的亮度块的亮度样本来计算平均值,并且进而计算AC贡献。然而,在至少一些实施方式中,可以通过对邻近亮度样本求平均来确定或计算DC贡献。分别用于AC贡献和DC贡献的亮度样本与邻近亮度样本之间的不对准可能导致不准确或不是最佳预测。另外或替选地,在比特流中用信号通知缩放值α可能不期望地消耗一些比特。另外或替选地,在图23中的CfL预测方法2300中,从同位置的亮度块预测色度块,而不使用同位置的亮度块的邻近亮度样本。

参照图22B,除了在第一CfL预测模式中操作之外或者替代在第一CfL预测模式中操作,在一些实现方式中,CfL预测单元2202可以在第二CfL预测模式(或第二组一个或更多个CfL预测模式)中操作以基于亮度块的邻近亮度样本来生成与亮度块对应的色度块的多个预测样本。也就是说,CfL预测单元2202可以使用亮度块的邻近亮度样本而不使用亮度块的亮度样本来生成色度预测样本。参照图22C,除了操作第一CfL预测模式和/或第二CfL预测模式之外或者替代操作第一CfL预测模式和/或第二CfL预测模式,在一些实现方式中,CfL预测单元2202可以在第三CfL预测模式(或第三组一个或更多个CfL预测模式)中操作以基于亮度块的亮度样本和亮度块的邻近亮度样本来生成与亮度块对应的色度块的多个预测样本。

图25示出了示例亮度块2502和亮度块2502的邻近亮度样本的示意图。一般地,给定亮度块的邻近亮度样本是相邻或邻近亮度块的亮度样本或在相邻或邻近亮度块中,所述相邻或邻近亮度块与给定亮度块相邻和/或邻近给定亮度块。每个邻近亮度样本可以具有或有多种类型的邻近亮度样本中的特定类型。每个类型可以对应于与给定亮度块的相对空间关系。类似地,每个相邻或邻近亮度块可以具有与其中包括的特定类型的邻近亮度样本匹配的特定类型。对于至少一些实现方式,邻近亮度样本和/或块的多个类型可以包括:左、左上、上、右上、右、右下、底、左下。图25示出了邻近亮度样本可以相对于给定亮度块2502在空间上定位的位置,包括:左邻近亮度块中的左邻近亮度样本2504、左上邻近亮度块中的左上邻近亮度样本2506、上邻近亮度块中的上邻近亮度样本2508、右上邻近亮度块中的右上邻近亮度样本2510、右邻近亮度块中的右邻近亮度样本2512、右下邻近亮度块中的右下邻近亮度样本2514、底邻近亮度块中的底邻近亮度样本2516、以及左下邻近亮度块中的左下邻近亮度样本2518。此外,左上、右上、左下和右下邻近亮度样本和块可以分别被一般地和/或共同地称为拐角邻近亮度样本和块。在第二CfL模式和/或第三CfL模式中的各种实现方式中的任一个中,CfL预测单元2202可以在执行CfL预测时使用所有类型的邻近亮度样本,或至少一个但少于所有类型的邻近亮度样本。

图26示出了CfL预测单元2202当在第二CfL预测模式(图22B)和/或第三CfL预测模式(图22C)下操作时可以执行的CfL预测处理的示例方法2600的流程图。在块2602处,CfL预测单元2202可以确定亮度块的多个邻近亮度样本。在块2604处,CfL预测单元2202可以基于多个邻近亮度样本来生成与亮度块对应的色度块的多个预测样本。

图27示出了CfL预测单元2202当在第二CfL预测模式(图22B)和/或第三CFL预测模式(图22C)下操作时可以执行的CfL预测处理的另一示例方法2700的流程图。在块2702处,CfL预测单元2202可以确定亮度块的多个邻近亮度样本。在块2704处,CfL预测单元2202可以生成与亮度块对应的色度块的多个预测样本的AC贡献和DC贡献。在块2704处基于包括在块2702处确定的多个邻近亮度样本的一组亮度样本来生成AC贡献或DC贡献中的至少一个。在块2706处,CfL预测单元2202可以基于在块2704处确定的AC贡献和DC贡献来生成色度块的多个预测样本。对于至少一些实现方式,CfL预测单元2202可以根据以上式(1)中的线性模型使用AC贡献和DC贡献在块2706处确定多个色度预测样本。

在一些实现方式中,可以将示例方法2600和示例方法2700组合。例如,块2602可以包括块2702,并且块2604可以包括块2704和/或块2706。

图28示出了CfL预测单元2202当在第三CfL预测模式(图22C)下操作时可以执行的CfL预测处理的另一示例方法2800的流程图。CfL预测处理2800可以类似于图23中的CfL预测处理2300,不同之处在于:不是对亮度块的亮度样本求平均,而是CfL预测处理2800可以对邻近亮度样本求平均以生成邻近亮度平均值。因此,AC贡献是基于亮度块的亮度样本和邻近亮度样本两者。

在进一步细节中,在块2802处,可以将亮度块的多个亮度样本子采样到色度分辨率中。在块2804处,可以将亮度块的多个邻近亮度样本子采样到色度分辨率中。另外,对于至少一些实现方式,使用相同子采样(或下采样)方法来对亮度样本和邻近亮度样本进行子采样(即,在块2802和块2804两者处应用相同子采样方法)。例如,如果根据4:2:0格式执行子采样,则对上邻近区域(例如,图25中的区域2508)中的两行、左邻近区域(例如,图25中的区域2504)中的两列和/或左上区域(例如,图25中的区域2506)中的四个像素进行子采样(或下采样)。因此,当CfL预测单元2202确定AC贡献(例如,以下块2806和2808)时,可以对邻近亮度样本求平均,并且从重建的亮度样本值中减去邻近亮度样本(如图28所示并在下面进一步描述的)。

在进一步细节中,在块2806处,可以对经子采样的邻近亮度样本求平均以生成邻近亮度平均值。在块2808处,可以从经子采样的亮度样本中减去邻近亮度平均值以生成亮度分量的AC贡献。在块2808处,亮度分量的AC贡献可以乘以缩放参数α以生成亮度分量的缩放AC贡献。亮度分量的缩放AC贡献也可以是色度分量的AC贡献预测。在块2812处,可以例如根据以上在式(1)中描绘的线性模型将色度分量的DC贡献预测加至AC贡献预测以生成色度预测样本。对于至少一些实现方式,缩放参数α可以是基于原始色度样本并且在比特流中用信号通知。这可以降低解码器的复杂度并产生更精确的预测。另外或替选地,在一些示例实现方式中,可以使用色度分量内的帧内DC模式来计算色度分量的DC贡献。

在示例方法2800的其他实现方式中,多个邻近亮度样本在用于确定邻近亮度平均值之前可以不经子采样。也就是说,在这些其他实现方式中,可以跳过块2804或以其他方式不执行块2804。

此外,在一些实现方式中,可以将方法2800的块中的全部或一些与方法2600和/或方法2700组合。例如,在在块2602和/或块2702处确定邻近亮度样本之后,可以在块2804处对邻近亮度样本进行子采样以及/或者在块2806处对其求平均。另外或替选地,在块2604处基于邻近亮度样本来生成色度预测样本可以包括以下中的一项或更多项:在块2804处对邻近亮度样本进行子采样,在块2806处对(经子采样的)邻近亮度样本求平均,在块2808处生成亮度AC贡献,以及/或者在块2810处缩放亮度AC贡献。另外或替选地,在方法2700中的块2704处生成AC贡献可以包括以下中的一项或更多项:在块2804处对邻近亮度样本进行子采样,在块2806处对(经子采样的)邻近亮度样本求平均,在块2808处生成亮度AC贡献,以及/或者在块2810处缩放亮度AC贡献。另外或替选地,在方法2700的块2706处基于AC贡献和DC贡献来生成色度预测样本可以包括在块2812处将DC贡献加至AC贡献。将方法2600、方法2700和/或方法2800组合的其他方式可以是可能的。

此外,在示例方法2600、2700、2800的各种实现方式中的任一个中,CfL预测单元2202对其进行确定、子采样、求平均和/或以其他方式使用以生成多个色度预测样本的邻近亮度样本可以包括所有类型的邻近亮度样本、或至少一种且少于所有类型的邻近亮度样本,所述类型包括以下中的至少一个:左、左上、上、右上、右、右下、下、左下。例如,在一些实现方式中,至少一种类型可以包括以下中的至少一个:左、上或左上。在一些其他实现方式中,至少一种类型可以包括以下中的至少一个:左、上、右、下、左上、右上、左下或右下。在一些其他实现方式中,至少一种类型可以包括以下中的至少一个:右上或左下。此外,在包括方法2600、2700和/或2800的实现方式的各种实现方式中的任一个中,当CfL预测单元2202确定将一种类型的邻近亮度样本用于CfL预测处理时,CfL预测单元2202可以使用具有该确定的类型的一个或更多个邻近亮度样本。

另外或替选地,在示例方法2600、2700和/或2800的一些实现方式中,可以使用信令来向CfL预测单元2202明确地指出或指示关于邻近亮度样本的类型中的哪些类型用于CfL预测处理。例如,CfL预测单元2202可以接收这样的信号,该信号例如由其中实现CfL预测单元2202的电子设备(例如,编码器或解码器)的另一单元或部件内部地生成,或者例如由其中实现CfL预测单元2202的不同的或分开的电子设备(例如,编码器或解码器)的另一单元或部件外部地或远程地生成。在一些其他实现方式中,可以使用亮度块和/或已预测色度块的代码信息和/或性质来隐式地指示邻近亮度样本的类型中的哪些类型用于CfL预测处理,所述代码信息和/或性质的非限制性示例包括亮度块和/或色度块的块形状、块大小、块长宽比、或帧内预测模式。

另外或替选地,在示例方法2600、2700和/或2800的一些实现方式中,仅可用的邻近亮度样本的那些类型可以用于CfL预测处理。在一些实现方式中,如果邻近亮度样本不在图片边界或超级块边界处,则该邻近亮度样本可用。例如,CfL预测单元2202可以在仅上邻近亮度样本可用时将上邻近亮度样本用于CfL预测(例如,在块2602处确定上邻近亮度样本,和/或在块2604处基于上邻近亮度样本来生成色度预测样本)。作为另一示例,CfL预测单元可以在仅左邻近亮度样本可用时将左邻近亮度样本用于CfL预测(例如,在块2602处确定左邻近亮度样本,和/或在块2604处基于左邻近亮度样本来生成色度预测样本)。

另外或替选地,在示例方法2600、2700和/或2800的一些实现方式中,当确定特定类型的邻近亮度样本将用于CfL预测处理并且特定类型的所有邻近亮度样本不可用时,CfL预测单元2202可以填补特定类型的邻近亮度样本,并且在CfL预测处理中使用所填补的邻近亮度样本。例如,在左邻近亮度样本不可用的情况下,则填补可以包括复制当前亮度块的左列中的亮度样本作为左邻近亮度样本。作为另一示例,在上邻近亮度样本不可用的情况下,则填补可以包括复制当前亮度块的最顶行中的亮度样本作为上邻近亮度样本。对于这些实现方式中的至少一些,CfL预测单元可以根据在帧内角度预测模式中使用的相同填补方法来填补邻近亮度样本。

另外或替选地,在示例方法2600、2700和/或2800的一些实现方式中,当确定上邻近亮度样本将用于CfL预测处理时,CfL预测单元2202可以仅使用CfL预测处理中的最近上参考行中的那些上邻近亮度样本。在这些实现方式的特定实现方式中,当同位置的亮度块位于超级块边界处时,CfL预测单元2202可以使用最近上参考行中的上邻近亮度样本作为用于CfL预测处理的邻近亮度样本。通常,AoMediaVideo模型(AOMedia Video Model,AVM)使用各种大小的编码块,其中最大的编码块称为超级块。对于一些实现方式,最大的块或超级块是128×128像素或64×64像素。在序列报头中用信号通知超级块大小,并且超级块大小具有128×128像素的默认大小。最小编码块大小是4×4。

另外或替选地,在示例方法2600、2700和/或2800的一些实现方式中,CfL预测处理中使用的邻近亮度样本可以包括例如在一些实现方式中仅包括一个或更多个最近邻近参考行中的邻近亮度样本。这些实现方式中的至少一些可以与一个或更多个其他上述条件或方面组合使用。例如,当CfL预测单元2202确定使用特定类型的邻近亮度样本时,CfL预测单元2202可以使用在特定类型的最近邻近参考行中的特定类型的那些邻近亮度样本。图29示出了示出同位置的色度块上方和左侧的参考行的图。在示例中,参考行0可以是最近上邻近参考,因为它比其他上参考行1、2和3更接近或更近。

另外或替选地,在示例方法2600、2700和/或2800的一些实现方式中,CfL预测单元2202可以使用亮度块的一个或更多个边界亮度样本来执行CfL预测处理。边界亮度样本可以是限定亮度块的外边界的亮度样本。例如,给定亮度块的左边界亮度样本至少部分地限定给定亮度块的左边界。作为另一示例,顶边界至少部分地限定给定亮度块的顶边界或上边界。CfL预测单元2202可以结合邻近亮度样本使用一个或更多个边界亮度样本。例如,在方法2800的实现方式中,CfL预测单元2202可以通过结合同位置的亮度块的一个或更多个边界亮度样本对邻近亮度样本求平均来确定邻近亮度平均值。在这些实现方式的各种实现方式中,用于求平均的边界亮度样本可以在块2802处子采样之前获得,或在块2802处子采样之后从经子采样的亮度样本获得。在这些实现方式的特定实现方式中,一个或更多个边界亮度样本可以包括一个或更多个顶边界亮度样本以及/或者一个或更多个左边界亮度样本。

本公开内容中的实施方式可以单独地使用或以任何顺序组合地使用。此外,方法(或实施方式)、编码器和解码器中的每一个可以通过处理电路系统(例如,一个或更多个处理器或者一个或更多个集成电路)实现。在一个示例中,一个或更多个处理器执行被存储在非暂态计算机可读介质中的程序。本公开内容中的实施方式可以应用于亮度块或色度块。

上述技术可以使用计算机可读指令被实现为计算机软件,并且被物理地存储在一个或更多个计算机可读介质中。例如,图30示出了适合于实现所公开的主题的某些实施方式的计算机系统3000。

计算机软件可以使用任何合适的机器代码或计算机语言来编码,机器代码或计算机语言可以经过汇编、编译、链接等机制以创建包括指令的代码,指令可以由一个或更多个计算机中央处理单元(central processing unit,CPU)、图形处理单元(GraphicsProcessing Unit,GPU)等直接执行或者通过解释、微代码执行等来执行。

指令可以在各种类型的计算机或其部件(包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等)上执行。

图30中示出的用于计算机系统3000的部件本质上是示例性的,并且不旨在对实现本公开内容的实施方式的计算机软件的使用范围或功能提出任何限制。部件的配置也不应当被解释为具有与计算机系统3000的示例性实施方式中示出的任何一个部件或部件的组合有关的任何依赖性或要求。

计算机系统3000可以包括某些人机接口输入设备。这样的人机接口输入设备可以响应于由一个或更多个人类用户通过例如触觉输入(例如:击键、滑动、数据手套移动)、音频输入(例如:语音、拍打)、视觉输入(例如:姿势)、嗅觉输入(未描绘)进行的输入。人机接口设备还可以用来捕获不一定与由人类进行的有意识输入直接相关的某些媒体,例如音频(诸如:语音、音乐、环境声音)、图像(诸如:扫描图像、从静止图像摄像装置获得的摄影图像)、视频(诸如:二维视频、包括立体视频的三维视频)。

输入人机接口设备可以包括以下中的一个或更多个(描绘了每者中的仅一个):键盘3001、鼠标3002、触控板3003、触摸屏3010、数据手套(未示出)、操纵杆3005、麦克风3006、扫描仪3007、摄像装置3008。

计算机系统3000还可以包括某些人机接口输出设备。这样的人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道刺激一个或更多个人类用户的感官。这样的人机接口输出设备可以包括触觉输出设备(例如,通过触摸屏3010、数据手套(未示出)或操纵杆3005的触觉反馈,但是还可以存在不用作输入设备的触觉反馈设备)、音频输出设备(例如:扬声器3009、耳机(未描绘))、视觉输出设备(例如,包括CRT屏幕、LCD屏幕、等离子体屏幕、OLED屏幕的屏幕3010,每个屏幕具有或没有触摸屏输入能力,每个屏幕具有或没有触觉反馈能力——其中的一些可能能够通过诸如立体输出的装置、虚拟现实眼镜(未描绘)、全息显示器和烟罐(未描绘)来输出二维视觉输出或多于三维的输出)、以及打印机(未描绘)。

计算机系统3000还可以包括人类可访问存储设备及其相关联的介质,例如,包括具有CD/DVD等介质3021的CD/DVD ROM/RW 3020的光学介质、拇指驱动器3022、可移除硬盘驱动器或固态驱动器3023、诸如磁带和软盘(未描绘)的传统磁性介质、基于专用ROM/ASIC/PLD的设备例如安全加密狗(未描绘)等。

本领域技术人员还应当理解,结合当前公开的主题使用的术语“计算机可读介质”不包含传输介质、载波或其他瞬态信号。

计算机系统3000还可以包括到一个或更多个通信网络3055的接口3054。网络例如可以是无线网络、有线网络、光网络。网络还可以是局域网、广域网、城域网、车载和工业网络、实时网络、延迟容忍网络等。网络的示例包括:局域网(例如以太网、无线LAN),包括GSM、3G、4G、5G、LTE等的蜂窝网络,包括有线TV、卫星TV和地面广播TV的TV有线或无线广域数字网络,包括CAN总线的车辆和工业网络等。某些网络通常需要外部网络接口适配器,该外部网络接口适配器附接至某些通用数据端口或外围总线3049(诸如例如,计算机系统3000的USB端口);其他网络通常通过附接至如下所述的系统总线(例如,到PC计算机系统的以太网接口或到智能电话计算机系统的蜂窝网络接口)而集成到计算机系统3000的核中。使用这些网络中的任何网络,计算机系统3000可以与其他实体通信。这样的通信可以是单向的、仅接收的(例如,广播TV)、单向仅发送的(例如,到某些CANbus设备的CANbus)、或双向的(例如,使用局域数字网络或广域数字网络到其他计算机系统)。可以在如以上所述的这些网络和网络接口中的每一个上使用某些协议和协议栈。

以上提及的人机接口设备、人类可访问存储设备和网络接口可以附接至计算机系统3000的核3040。

核3040可以包括一个或更多个中央处理单元(Central Processing Unit,CPU)3041、图形处理单元(GPU)3042、现场可编程门区域(Field Programmable Gate Area,FPGA)3043形式的专用可编程处理单元、用于某些任务的硬件加速器3044、图形适配器3050等。这些设备以及只读存储器(Read-only memory,ROM)3045、随机存取存储器3046、内部大容量存储装置例如内部非用户可访问的硬盘驱动器、SSD等3047可以通过系统总线3048连接。在一些计算机系统中,可以以一个或更多个物理插头的形式访问系统总线3048,以能够通过其他CPU、GPU等进行扩展。外围设备可以直接附接至核的系统总线3048,或者可以通过外围总线3049附接至核的系统总线3048。在示例中,屏幕3010可以连接至图形适配器3050。外围总线的架构包括PCI、USB等。

CPU 3041、GPU 3042、FPGA 3043和加速器3044可以执行某些指令,这些指令组合起来可以构成以上提及的计算机代码。该计算机代码可以存储在ROM 3045或RAM 3046中。暂态数据也可以存储在RAM 3046中,而永久数据可以存储在例如内部大容量存储装置3047中。可以通过使用高速缓存存储器来实现对存储器设备中的任何存储器设备的快速存储及检索,该高速缓存存储器可以与一个或更多个CPU 3041、GPU 3042、大容量存储装置3047、ROM 3045、RAM 3046等紧密相关联。

计算机可读介质可以在其上具有用于执行各种计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开内容的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以具有对于计算机软件领域的技术人员公知且可用的类型。

作为非限制示例,具有架构的计算机系统3000——并且特别是核3040——可以由于处理器(包括CPU、GPU、FPGA、加速器等)执行体现在一个或更多个有形计算机可读介质中的软件而提供功能。这样的计算机可读介质可以是与如以上所介绍的用户可访问大容量存储装置以及具有非暂态性质的核3040的某些存储装置例如核内部大容量存储装置3047或ROM 3045相关联的介质。实现本公开内容的各种实施方式的软件可以存储在这样的设备中并且由核3040执行。根据特定需要,计算机可读介质可以包括一个或更多个存储器设备或芯片。软件可以使核3040——特别是其中的处理器(包括CPU、GPU、FPGA等)——执行本文中描述的特定处理或特定处理的特定部分,包括限定存储在RAM 3046中的数据结构以及根据由软件限定的处理修改这样的数据结构。另外地或作为替选方案,计算机系统可以由于以硬连线或以其他方式体现在电路(例如:加速器3044)中的逻辑而提供功能,该逻辑可以代替软件而操作或与软件一起操作以执行本文中描述的特定处理或特定处理的特定部分。在适当的情况下,提及软件可以包含逻辑,并且反之,提及逻辑也可以包含软件。在适当的情况下,提及计算机可读介质可以包含存储用于执行的软件的电路(例如,集成电路(integrated circuit,IC))、体现用于执行的逻辑的电路或者上述两者。本公开内容包含硬件和软件的任何合适的组合。

本公开内容的主题也可以涉及或包括以下方面等:

在第一方面,一种用于视频处理的方法,所述方法包括:确定根据亮度的色度(CfL)预测模式要被应用于所接收的编码比特流中的亮度块;通过对一组重建的亮度样本求平均来生成所述亮度块的邻近亮度平均值,其中,所述一组重建的亮度样本包括与所述亮度块邻近的至少一个邻近亮度块中的多个重建的邻近亮度样本;基于所述亮度块中的多个亮度样本和所述邻近亮度平均值,生成与所述亮度块同位置的色度块的多个预测样本的交流(AC)贡献;以及至少通过基于所述AC贡献应用所述CfL预测模式来重建所述色度块。

第二方面包括第一方面,并且还包括:在对所述重建的亮度样本集求平均之前对所述多个重建的邻近亮度样本进行子采样以生成多个经子采样的重建的邻近亮度样本,其中,所述一组重建的亮度样本包括所述多个经子采样的重建的邻近亮度样本。

第三方面包括第一方面或第二方面中的任一个,并且还包括,其中,生成所述AC贡献包括从所述多个亮度样本减去所述邻近亮度平均值。

第四方面包括第一方面至第三方面中的任一个,并且还包括,其中,重建所述色度块包括:通过将所述AC贡献乘以缩放参数来生成缩放的AC贡献;以及将所述缩放的AC贡献加至所述色度块的多个预测样本的DC贡献。

第五方面包括第一方面至第四方面中的任一个,并且还包括,其中,所述多个重建的邻近亮度样本包括以下中的至少一个:一个或更多个左重建邻近亮度样本、一个或更多个上重建邻近亮度样本、或者一个或更多个左上重建邻近亮度样本。

第六方面包括第一方面至第四方面中的任一个,并且还包括,其中,所述多个重建的邻近亮度样本仅包括一个或更多个上重建邻近亮度样本和一个或更多个左重建邻近亮度样本。

第七方面包括第一方面至第四方面中的任一个,并且还包括,其中,所述多个重建的邻近亮度样本包括以下中的至少一个:一个或更多个左重建邻近亮度样本、一个或更多个上重建邻近亮度样本、一个或更多个右重建邻近亮度样本、一个或更多个下重建邻近亮度样本、或者一个或更多个拐角重建邻近亮度样本。

第八方面包括第一方面至第四方面中的任一个,并且还包括,其中,所述多个重建的邻近亮度样本包括以下中的至少一个:一个或更多个右上重建邻近亮度样本,或者一个或更多个左下重建邻近亮度样本。

第九方面包括第一方面至第四方面中的任一个,并且还包括,其中,多个重建的邻近亮度样本包括少于所有类型的重建的邻近亮度样本。

第十方面包括第一方面至第四方面或第九方面中的任一个,并且还包括,其中,包括用于生成所述邻近亮度平均值的所述多个重建的邻近亮度样本的重建的邻近亮度样本的一种或更多种类型通过以下操作中的一个来指示:经由信令明确指示;或基于编码信息隐含地指示。

第十一方面包括第十方面,并且还包括,其中,其中所述编码信息包括以下中的至少一个:所述亮度块的帧内预测模式、块形状、块大小或块纵横比。

第十二方面包括第一方面至第四方面中的任一个,并且还包括,其中,响应于仅所述上重建邻近亮度样本可用,所述多个重建的邻近亮度样本仅包括一个或更多个上重建邻近亮度样本。

第十三方面包括第一方面至第四方面中的任一个,并且还包括,其中,响应于仅所述左重建邻近亮度样本可用,所述多个重建的邻近亮度样本仅包括一个或更多个左重建邻近亮度样本。

第十四方面包括第一方面至第四方面中的任一个,并且还包括:响应于确定将某种类型的重建邻近亮度样本用于所述邻近亮度平均值,并且所述类型的重建邻近亮度样本中没有一个可用,填补所述类型的一个或更多个重建邻近亮度样本,其中,根据在帧内角度预测模式中使用的填补方法来执行所述填补,并且其中,所述基于一个或更多个填补的重建邻近亮度样本来确定邻近亮度平均值。

第十五方面包括第一方面至第四方面中的任一个,并且还包括,其中,所述多个重建的邻近亮度样本包括一个或更多个上重建的邻近亮度样本,其中,响应于所述亮度块位于超级块边界处,所述一个或更多个上重建邻近亮度样本仅在最近上方参考行中。

第十六方面包括第一方面至第十五方面中的任一个,并且还包括,其中,所述多个重建的邻近亮度样本在最近邻近参考行中。

第十七方面包括第一方面或第三方面至第十六方面中的任一个,并且还包括,其中,所述多个重建的邻近亮度样本在被平均以生成所述邻近亮度平均值之前不被子采样。

第十八方面包括第一方面至第十七方面中的任一个,并且还包括,其中,所述一组重建的亮度样本还包括所述亮度块中的一个或更多个边界亮度样本。

第十九方面包括第十八方面,并且还包括,其中,所述一个或更多个边界亮度样本包括以下中的至少一个:一个或更多个顶边界亮度样本或者一个或更多个左边界亮度样本。

第二十方面包括视频处理装置,所述视频处理装置包括存储一组指令的存储器;以及处理器,其被配置成执行所述一组指令以实现第一方面至第十九方面中的任一个。

第二十方面包括存储计算机指令集的非暂态计算机可读介质,所述计算机指令集在由视频处理装置的处理器执行时,使所述该处理器实现第一方面至第十九方面中的任一个。

除了在以上列举的每个独立方面中提及的特征之外,一些示例可以单独地或组合地示出在从属方面中提及的和/或如以上描述中公开的和在附图中示出的可选特征。

虽然本公开内容已经描述了若干示例性实施方式,但是存在落入本公开内容的范围内的变更、置换和各种替代等效方案。因此将认识到,本领域技术人员将能够设想出许多系统和方法,这些系统和方法尽管未在本文中明确示出或描述,但是体现了本公开内容的原理并因此在本公开内容的精神和范围内。

附录A:首字母缩略词

JEM:联合开发模型

VVC:多功能视频编码

BMS:基准集

MV:运动矢量

HEVC:高效视频编解码

SEI:补充增强信息

VUI:视频可用性信息

GOP:图片群组

TU:变换单元,

PU:预测单元

CTU:编码树单元

CTB:编码树块

PB:预测块

HRD:假设参考解码器

SNR:信噪比

CPU:中央处理单元

GPU:图形处理单元

CRT:阴极射线管

LCD:液晶显示器

OLED:有机发光二极管

CD:致密盘

DVD:数字视频光盘

ROM:只读存储器

RAM:随机存取存储器

ASIC:专用集成电路

PLD:可编程逻辑器件

LAN:局域网

GSM:全球移动通信系统

LTE:长期演进

CANBus:控制器局域网总线

USB:通用串行总线

PCI:外围组件互连

FPGA:现场可编程门区域

SSD:固态驱动器

IC:集成电路

HDR:高动态范围

SDR:标准动态范围

JVET:联合视频探索组

MPM:最可能模式

WAIP:广角帧内预测

CU:编码单元

PU:预测单元

TU:变换单元

CTU:编码树单元

PDPC:位置相关预测组合

ISP:帧内子分区

SPS:序列参数设置

PPS:图片参数集

APS:自适应参数集

VPS:视频参数集

DPS:解码参数集

ALF:自适应环路滤波器

SAO:样本自适应偏移

CC-ALF:交叉分量自适应环路滤波器

CDEF:约束定向增强滤波器

CCSO:交叉分量样本偏移

LSO:局部样本偏移

LR:环路恢复滤波器

AV1:AOMedia视频1

AV2:AOMedia视频2

LFNST:低频不可分离变换

IST:帧内次级变换

相关技术
  • 参考亮度样本位置确定色度块的预测模式的图像编码/解码方法和设备及发送比特流的方法
  • 参考亮度样本位置确定色度块的预测模式的图像编码/解码方法和设备及发送比特流的方法
技术分类

06120116507031