一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

解耦变换分割技术的制作方法

2022-12-03 01:43:15 来源:中国专利 TAG:

解耦变换分割技术
相关申请
1.本技术基于并要求2021年3月5日提交的申请号为63/157,516的美国临时申请和2021年12月29日提交的申请号为17/564,566的美国非临时申请的优先权,这两个申请的全部内容通过引用并入本文中。
技术领域
2.本技术涉及视频编码和/或解码技术,特别地,涉及解耦变换分割技术的改进设计和信令。


背景技术:

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


技术实现要素:

22.本技术描述了用于视频编码和/或解码的方法、装置和计算机可读存储介质的各种实施例。
23.根据一个方面,本技术的实施例提供了一种用于视频解码中的变换块分割的方法。该方法包括由设备接收针对亮度块和色度块的已编码视频码流,该亮度块与该色度块位置相同。该设备包括存储指令的存储器和与存储器通信的处理器。该方法还包括:由设备对亮度块进行分割以获得亮度编码块分割树;由设备对色度块进行分割以获得色度编码块分割树;由设备对亮度编码块分割树中的亮度编码块进行分割以获得多个亮度变换块;以及由设备对色度编码块分割树中的色度编码块进行分割以获得至少一组多个色度变换块。
24.根据另一方面,本技术的实施例提供了一种用于视频编码和/或解码的装置。该装置包括存储指令的存储器;以及与该存储器通信的处理器。当处理器执行指令时,该处理器用于使装置执行以上用于视频解码和/或编码的方法。
25.在另一方面中,本技术的实施例提供了存储指令的非易失性计算机可读介质,指令在由计算机执行以用于视频解码和/或编码时使计算机执行上述用于视频解码和/或编码的方法。
26.在附图、说明书和权利要求书中更详细地描述了上述方面、其它方面及其实现方式。
附图说明
27.根据以下具体实施方式和附图,所公开的主题的进一步的特征、性质和各种优点将更加明显。
28.图1a为帧内预测方向模式的示例性子集的示意图。
29.图1b为示例性帧内预测方向的图示。
30.图2为一个示例中用于运动矢量预测的当前块及其周围的空间合并候选的示意图。
31.图3为实施例示例的通信系统(300)的简化框图的示意图。
32.图4为实施例示例的通信系统(400)的简化框图的示意图。
33.图5为实施例示例的视频解码器的简化框图的示意图。
34.图6为实施例示例的视频编码器的简化框图的示意图。
35.图7为另一实施例示例的视频编码器的框图。
36.图8为另一实施例示例的视频解码器的框图。
37.图9为本技术实施例示例的编码块分割的方案。
38.图10为本技术实施例示例的编码块分割的另一方案。
39.图11为本技术实施例示例的编码块分割的另一方案。
40.图12为本技术实施例示例的编码块分割的另一方案。
41.图13为本技术实施例示例的用于将编码块分割成多个变换块以及变换块的编码顺序的方案。
42.图14为本技术实施例示例的用于将编码块分割成多个变换块以及变换块的编码顺序的另一方案。
43.图15为本技术实施例示例的用于将编码块分割成多个变换块的另一方案。
44.图16为本技术实施例示例的用于亮度分量和色度分量的编码树结构的一个示例。
45.图17为本技术实施例示例的方法的流程图。
46.图18为本技术实施例示例的用于亮度分量和色度分量的解耦变换分割的一个示例。
47.图19为本技术实施例示例的计算机系统的示意图。
具体实施方式
48.现在将在下文中参照附图对本技术进行详细描述。附图是本技术的一部分,通过图例的方式示出了实施例的特定示例。然而,需要注意的是,本技术可以以各种不同的形式来实施,并且因此,所覆盖的或要求保护的主题应被解释为不限于以下阐述的任何实施例。还需要注意的是,本技术可以实施为方法、设备、部件或系统。相应地,本技术的实施例可以例如采取硬件、软件、固件或其任何组合的形式。
49.在整个说明书和权利要求书中,术语在上下文中暗示或隐含的含义可以与明确声明的含义有细微差别。本文中使用的短语“一个实施例中”或“一些实施例中”不一定是指同一个实施例,并且本文中使用的短语“在另一实施例中”或“在其它实施例中”不一定是指不同的实施例。同样地,本文中使用的短语“一个实现方式中”或“一些实现方式中”不一定指同一个实现方式,并且本文中使用的短语“在另一实现方式中”或“在其它实现方式中”不一定指不同的实现方式。例如,所要求保护的主题旨在包括示例性实施例/实现方式的全部或部分的组合。
50.通常,可以至少部分地根据其在上下文中的使用来理解术语。例如,本文中使用的术语例如“和”、“或”或“和/或”可以包括多种含义,这些含义可以至少部分地取决于这些术语在上下文中的使用。通常,“或”如果用于连接列表,例如a、b或c,则旨在表示在包含性意义下的a、b和c(这里)以及排他性意义下的a、b或c。另外,本文中使用的术语“一个或多个”或“至少一个”,至少部分地根据上下文,可以用于描述单数意义上的任何特征、结构或特性的,或可以用于描述复数意义上的多个特征、多个结构或多特性的组合。类似地,例如“一”、“一个”或“该”等术语,至少部分地根据上下文,同样可以被理解为表达单数的使用方式或表达复数的使用方式。另外,术语“基于”或“由
……
确定”可以被理解为不一定旨在表示一组排他的因素,而是,仍然至少部分地根据上下文,可以允许存在附加因素,这些附加因素不一定被明确描述。
51.图3图示了根据本技术的实施例的通信系统(300)的简化框图。通信系统(300)包括多个终端设备,这些终端设备能够通过例如网络(350)彼此通信。例如,通信系统(300)包括通过网络(350)互连的第一对终端设备(310)和(320)。在图3的示例中,第一对终端设备(310)和(320)可以执行单向数据传输。例如,终端设备(310)可以对视频数据进行编码,再通过网络(350)传输到另一终端设备(320)。该视频数据可以是,例如,由终端设备(310)采
coding,vvc)标准。本技术所公开的主题可在应用vvc标准和其它视频编解码标准的环境中使用。
56.应注意,电子设备(420)和电子设备(430)可包括其它组件(未示出)。举例来说,电子设备(420)可包括视频解码器(未示出),而电子设备(430)也可包括视频编码器(未示出)。
57.图5示出了本技术以下任何实施例的视频解码器(510)的框图。视频解码器(510)可以设置在电子设备(530)中。电子设备(530)可以包括接收器(531)(例如接收电路)。视频解码器(510)可用于替代图4实施例中的视频解码器(410)。
58.接收器(531)可以接收将由视频解码器(510)解码的一个或多个已编码视频序列。在同一实施例或另一实施例中,可以一次解码一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列。每个视频序列可以与多个视频帧或图像相关联。可以从信道(501)接收已编码视频序列,该信道可以是通向存储已编码视频数据的存储设备或传输已编码视频数据的流式传输源的硬件/软件链路。接收器(531)可以接收已编码视频数据以及其他数据,例如已编码音频数据和/或辅助数据流,这些数据可被转发到它们各自的处理电路(未示出)。接收器(531)可以将已编码视频序列与其它数据分开。为了对抗网络抖动,缓冲存储器(515)可以设置在接收器(531)与熵解码器/解析器(520)(此后称为“解析器(520)”)之间。在某些应用中,缓冲存储器(515)可以被实现为视频解码器(510)的一部分。在其它应用中,缓冲存储器可以在视频解码器(510)(未示出)外部并且与其独立。在又一些应用中,在视频解码器(510)外部可以存在缓冲存储器(未示出),以例如对抗网络抖动,并且在视频解码器(510)内部可以存在另一附加缓冲存储器(515),例如用于处理播放定时。当接收器(531)从具有足够带宽和可控性的存储/转发设备或从等时同步网络接收数据时,也可能不需要缓冲存储器(515),或缓冲存储器(515)可以很小。为了在例如因特网等尽力而为分组网络上使用,可能需要足够大小的缓冲存储器(515),并且其大小可以相对较大。这样的缓冲存储器可以实现为具有自适应大小,并且可以至少部分地实现在视频解码器(510)外部的操作系统或类似元件(未示出)中。
59.视频解码器(510)可以包括解析器(520),用于根据已编码视频序列重建符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息以及可能用于控制例如显示器(512)(例如,显示屏)的呈现设备的信息,该呈现设备可以是或可以不是电子设备(530)的组成部分,但是可以耦合到电子设备(530),如图5中所示。用于一个或多个呈现设备的控制信息可以采用补充增强信息(supplementary enhancement information,sei消息)或视频可用性信息(video usability information,vui)参数集片段(未示出)的形式。解析器(520)可以对解析器(520)接收的已编码视频序列进行解析/熵解码。已编码视频序列的熵编码可以根据视频编解码技术或标准进行,并且可以按照各种原理,包括可变长度编码、霍夫曼编码、具有或不具有上下文敏感性的算术编码等。基于与子群组对应的至少一个参数,解析器(520)可以从已编码视频序列中提取针对视频解码器中的像素的子群中的至少一个子群的子群参数的集合。子群可以包括图像组(group of pictures,gop)、图像、图块、条带、宏块、编码单元(coding unit,cu)、块、变换单元(transform unit,tu)、预测单元(prediction unit,pu)等。解析器(520)还可以从已编码视频序列信息中提取信息,例如变换系数(例如,傅立叶变换系数)、量化器参数值、运动矢量等。
60.解析器(520)可对从缓冲存储器(515)接收的视频序列执行熵解码/解析操作,从而生成符号(521)。
61.取决于已编码视频图像或已编码视频图像的一部分(例如:帧间图像和帧内图像、帧间块和帧内块)的类型以及其它因素,符号(521)的重建可涉及多个不同的处理单元或功能单元。所涉及的单元以及涉及的方式可以由解析器(520)从已编码视频序列中解析出的子群控制信息控制。为了简洁起见,未描述解析器(520)和下文多个处理单元或功能单元之间的此类子群控制信息的传播。
62.除了已经提到的功能块之外,视频解码器(510)可以在概念上被细分成如下文所描述的多个功能单元。在商业约束下运行的实际实现中,这些功能单元中的许多功能单元彼此紧密交互,并且可以至少部分地彼此集成。然而,为了清楚地描述所公开的主题的各种功能,在下文中采用基于概念的功能单元的细分方式。
63.第一单元可以包括缩放器/逆变换单元(551)。缩放器/逆变换单元(551)可以从解析器(520)接收一个或多个符号(521)形式的量化变换系数以及控制信息,包括使用哪种类型的逆变换的指示信息、块尺寸、量化因子/参数、量化缩放矩阵等。缩放器/逆变换单元(551)可以输出包括样本值的块,这些样本值可以被输入到聚合器(555)中。
64.在一些情况下,缩放器/逆变换(551)的输出样本可涉及帧内编码块,即,不使用来自先前已重建的图像的预测信息、但可以使用来自当前图像的先前已重建部分的预测信息的块。此类预测信息可以由帧内预测单元(552)提供。在一些情况下,帧内预测单元(552)可以使用已重建并存储在当前图像缓冲器(558)中的周围块信息来生成大小和形状与重建中的块相同的块。例如,当前图像缓冲器(558)对部分已重建的当前图像和/或完全已重建的当前图像进行缓冲。在一些实施方式中,聚合器(555)可以基于每个样本将帧内预测单元(552)生成的预测信息添加到由缩放器/逆变换单元(551)提供的输出样本信息中。
65.在其它情况下,缩放器/逆变换单元(551)的输出样本可以涉及经帧间编码和潜在的运动补偿块。在这种情况下,运动补偿预测单元(553)可以访问参考图像存储器(557)以获取用于帧间预测的样本。在根据块相关的符号(521)对提取的样本进行运动补偿之后,这些样本可以由聚合器(555)添加到缩放器/逆变换单元(551)的输出(单元551的输出可以被称为残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(553)从参考图像存储器(557)内的地址获取预测样本,这些地址可以由运动矢量控制,该运动矢量可以以符号(521)的形式被运动补偿预测单元(553)使用,这些符号可以具有例如x、y分量(位移)和参考图像分量(时间)。运动补偿还可以包括在使用子样本精确运动矢量时从参考图像存储器(557)提取的样本值的内插,并且还可以与运动矢量预测机制等相关联。
66.聚合器(555)的输出样本会在环路滤波器单元(556)中经历各种环路滤波技术。视频压缩技术可包括环路内滤波器技术,该环路内滤波器技术受控于已编码视频序列(也称作已编码视频码流)中包括的参数,且所述参数作为来自解析器(520)的符号(521)可用于环路滤波器单元(556),但视频压缩技术还可响应于在对已编码图像或已编码视频序列的(按解码次序)先前部分进行解码的期间获得的元信息,以及响应于先前已重建且经过环路滤波的样本值。若干类型的环路滤波器可以以各种顺序被包括在环路滤波器单元556中作为其中的一部分,这将在以下进一步详细描述。
67.环路滤波器单元(556)的输出可以是样本流,所述样本流可输出到呈现设备
(512),以及存储在参考图像存储器(557)中用于后续的帧间图像预测。
68.某些已编码图像一旦被完全重建就可以用作后续帧间预测的参考图像。举例来说,一旦对应于当前图像的已编码图像被完全重建,且该已编码图像(通过例如解析器(520))被识别为参考图像,则当前图像缓冲器(558)可成为参考图像存储器(557)的一部分,且可在开始重建后续已编码图像之前重新分配新的当前图像缓冲器。
69.视频解码器(510)可根据itu-t h.265等标准中的预定视频压缩技术来执行解码操作。在已编码视频序列按照视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体地,配置文件可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为在该配置文件下可用的唯一工具。为了符合标准,已编码视频序列的复杂度可以在由视频压缩技术或标准的级所定义的范围内。在一些情况下,层级限制了最大图像尺寸、最大帧率、最大重建采样率(例如每秒以兆个样本为单位进行测量)、最大参考图像尺寸等。在一些情况下,通过假想参考解码器(hypothetical reference decoder,hrd)规范和在已编码视频序列中发送的hrd缓冲器管理元数据,可进一步限定由层级设定的限制。
70.一些实施例中,接收器(531)可接收已编码的视频和额外(冗余)数据。所述额外数据可被视为已编码视频序列的一部分。所述额外数据可由视频解码器(510)用以对数据进行正确解码,和/或较准确地重建原始视频数据。额外数据可采用例如时间、空间或信噪比(signal noise ratio,snr)增强层、冗余切片、冗余图像、前向纠错码等形式。
71.图6示出了根据本技术的示例实施例的视频编码器(603)的框图。视频编码器(603)可以设置在电子设备(620)中。电子设备(620)可以进一步包括发射器(640)(例如,发射电路)。可以使用视频编码器(603)来代替图4示例中的视频编码器(403)。
72.视频编码器(603)可以从视频源(601)(并非图6示例中的电子设备(620)的一部分)接收视频样本,该视频源可以采集将由视频编码器(603)编码的一个或多个视频图像。在另一实施例中,视频源(601)可以实现为电子设备(620)的一部分。
73.视频源(601)可以提供将由视频编码器(603)编码的数字视频样本流形式的源视频序列,该数字视频样本流可以具有任何合适的比特深度(例如:8比特、10比特、12比特
……
)、任何色彩空间(例如,bt.601ycrcb、rgb、xyz
……
)以及任何适当的采样结构(例如,ycrcb 4:2:0、ycrcb 4:4:4)。在媒体服务系统中,视频源(601)可以是能够存储先前准备的视频的存储设备。在视频会议系统中,视频源(601)可以是采集本地图像信息作为视频序列的相机。可以将视频数据提供为多个单独的图像或图片,这些图像或图片在顺序观看时呈现运动。图像自身可以构建为空间像素阵列,其中每个像素可以包括一个或多个样本,这取决于所使用的采样结构、色彩空间等。本领域普通技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。
74.根据一些实施例示例,视频编码器(603)可以实时地或在由应用所要求的任何其他时间约束下对源视频序列的图像进行编码并压缩为已编码视频序列(643)。施行适当的编码速度是控制器(650)的一个功能。在一些实施例中,控制器(650)可以在功能上耦合到以下所描述的其它功能单元,并且控制这些功能单元。为简洁起见,未示出耦合。由控制器(650)设置的参数可以包括速率控制相关的参数(图像跳过、量化器、率失真优化技术的λ值
……
)、图像尺寸、图像组(group of pictures,gop)布局、最大运动矢量搜索范围等。控
制器(650)可以具有与针对某个系统设计而优化的视频编码器(603)相关的其它适当的功能。
75.在一些实施例示例中,视频编码器(603)可以用于在编码环路中操作。作为简化的描述,一个实施例中,编码环路可以包括源编码器(630)(例如,负责基于待编码的输入图像和一个或多个参考图像来创建符号,例如符号流),以及嵌入在视频编码器(603)中的(本地)解码器(633)。解码器(633)以类似于(远程)解码器创建样本数据的方式重建符号,以创建样本数据,即使嵌入式解码器633在没有熵编码的情况下通过源编码器630处理已编码视频流(因为在所公开的主题中所考虑的视频压缩技术中,熵编码中符号与已编码视频码流之间的任何压缩可能是无损的)。将重建的样本流(样本数据)输入到参考图像存储器(634)。由于符号流的解码产生与(本地或远程)解码器位置无关的精确到比特的结果,因此参考图像存储器(634)中的内容在本地编码器与远程编码器之间也是精确到比特的。换句话说,编码器的预测部分“看到”的参考图像样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。参考图像同步性(以及如果不能保持同步性,例如由于信道错误,将导致漂移)的基本原则被用来提高编码质量。
[0076]“本地”解码器(633)的操作可与例如已在上文结合图5详细描述视频解码器(510)的“远程”解码器相同。然而,另外简要参考图5,当符号可用且熵编码器(645)和解析器(520)能够无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器(515)和解析器(520)在内的视频解码器(510)的熵解码部分可能无法完全在编码器中的本地解码器(633)中实现。
[0077]
此时可以观察到,除了可能仅存在于解码器中的解析/熵解码之外的任何解码器技术也可能必然需要以基本上相同的功能形式存在于对应的编码器中。出于此原因,所公开的主题有时可能侧重于解码器操作,这些操作与编码器中的解码部分相同。因为编码器技术是全面描述的解码器技术的反向操作,因此编码器技术的描述可以被简化。下面仅在某些区域或方面提供编码器的更详细的描述。
[0078]
在一些实现方式示例中的操作期间,源编码器(630)可以执行运动补偿预测编码。参考来自视频序列中被指定为“参考图像”的一个或多个先前已编码图像,运动补偿预测编码对输入图像进行预测编码。以这种方式,编码引擎(632)对输入图像的像素块与一个或多个参考图像的像素块之间的色彩信道中的差异(或残差)进行编码,该参考图像可以被选作输入图像的一个或多个预测参考。
[0079]
本地视频解码器(633)可基于源编码器(630)创建的符号对可指定为参考图像的图像的已编码视频数据进行解码。有利地,编码引擎(632)的操作可为有损过程。当已编码视频数据可在视频解码器(图6中未示出)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(633)重复解码过程,所述解码过程可由视频解码器对参考图像执行,且可使重建的参考图像存储在参考图像高速缓存(634)中。以此方式,视频编码器(403)可在本地存储重建的参考图像的副本,所述副本与将由远端(远程)视频解码器获得的重建参考图像具有共同内容(不存在传输误差)。
[0080]
预测器(635)可针对编码引擎(632)执行预测搜索。即,对于待编码的新图像,预测器(635)可在参考图像存储器(634)中搜索可作为新图像的合适的预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图像运动矢量、块形状等。预测器(635)可基于
样本块逐像素块而操作,以找到合适的预测参考。在一些情况下,根据预测器(635)获得的搜索结果,可确定输入图像可具有从参考图像存储器(634)中存储的多个参考图像取得的预测参考。
[0081]
控制器(650)可管理源编码器(630)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
[0082]
可在熵编码器(645)中对所有上述功能单元的输出进行熵编码。熵编码器(645)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。
[0083]
传输器(640)可缓冲由熵编码器(645)创建的已编码视频序列以为通过通信信道(660)进行传输做准备,所述通信信道可以是通向将存储已编码的视频数据的存储装置的硬件/软件链路。传输器(640)可将来自视频编码器(603)的已编码视频数据与要传输的其它数据合并,所述其它数据例如已编码音频数据和/或辅助数据流(未示出来源)。
[0084]
控制器(650)可管理视频编码器(603)的操作。在编码期间,控制器(650)可以为每个已编码图像分配某一已编码图像类型,这可能影响可应用于相应的图像的编码技术。例如,通常可将图像分配为以下一种图像类型:
[0085]
帧内图像(intra picture,i图像)可以是不将序列中的任何其它图像用作预测源就可被编码和解码的图像。一些视频编解码器容许不同类型的i图像,包括例如独立解码器刷新(independent decoder refresh,“idr”)图像。本领域普通技术人员了解i图像的那些变体及其相应的应用和特征。
[0086]
预测性图像(predictive picture,p图像)可以是可使用帧内预测或帧间预测进行编码和解码的图像,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
[0087]
双向预测性图像(bi-directionally predictive picture,b图像)可以是可使用帧内预测或帧间预测进行编码和解码的图像,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图像可使用多于两个参考图像和相关联元数据以用于重建单个块。
[0088]
源图像通常可在空间上细分成多个样本块(例如,各自4
×
4、8
×
8、4
×
8或16
×
16个样本的块)且在逐块基础上进行编码。块可参考其它(已编码)块进行预测编码,根据应用于块的相应图像的编码分配来确定所述其它块。举例来说,i图像的块可进行非预测编码,或所述块可参考同一图像的已经编码的块来进行预测编码(空间预测或帧内预测)。p图像的像素块可参考一个先前编码的参考图像通过空间预测或通过时间预测进行预测编码。b图像的块可参考一个或两个先前编码的参考图像通过空间预测或通过时间预测进行预测编码。为了其它目的,源图像或经过中间处理的图像可以被细分成其它类型的块。编码块和其它类型的块的划分可以采用或可以不采用相同的方式,如以下进一步详细描述。
[0089]
视频编码器(603)可根据例如itu-t h.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(603)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。相应地,已编码视频数据可以符合由所使用的视频编解码技术或标准指定的语法。
[0090]
在一些实施例示例中,传输器(640)可以随已编码视频传输附加数据。源编码器(630)可将此类数据作为已编码视频序列的一部分。附加数据可以包括时间/空间/snr增强层,以及其它形式的冗余数据,例如冗余图像和条带、sei消息、vui参数集片段等。
[0091]
可将采集到的视频作为呈时间序列的多个源图像(视频图像)。帧内图像预测(通常简化为帧内预测)利用给定图像中的空间相关性,而帧间预测利用图像之间的时间或其它相关性。例如,被称为当前图像的正在进行编码/解码的特定图像可以被分割成块。在当前图像中的块类似于视频中先前已编码并且仍被缓存的参考图像中的参考块时,该当前图像中的块可以由被称为运动矢量的矢量进行编码。在使用多个参考图像的情况下,运动矢量指向参考图像中的参考块,并且可以具有指示参考图像的第三维度。
[0092]
在一些实施例示例中,双向预测技术可以用于帧间预测。根据这种双向预测技术,使用两个参考图像,例如第一参考图像和第二参考图像,按照解码顺序,这两个参考图像都在视频中的当前图像之前(但是按照显示顺序可以分别在过去或将来)。当前图像中的块可以由指向第一参考图像中的第一参考块的第一运动矢量和指向第二参考图像中的第二参考块的第二运动矢量来编码。该块可以通过第一参考块和第二参考块的组合来联合预测。
[0093]
此外,合并模式技术可用于帧间预测中以改善编码效率。
[0094]
根据本技术的一些实施例示例,预测,例如帧间预测和帧内预测,以块为单位进行。例如,将视频图像序列中的图像分割成编码树单元(coding tree unit,ctu)用于压缩,图像中的ctu可以具有相同的尺寸,例如64
×
64像素、32
×
32像素或16
×
16像素。通常,ctu可以包括三个并行编码树块(coding tree block,ctb):一个亮度ctb和两个色度ctb。可以递归地利用四叉树的方式将每个ctu划分为一个或多个编码单元(coding unit,cu)。例如,可将64
×
64像素的ctu划分为一个64
×
64像素的cu,或4个32
×
32像素的cu。32
×
32块中的一个或多个块中的每个块可以进一步被划分为4个16
×
16像素的cu。在一些实施例示例中,可以在编码期间对每个cu进行分析以在各种预测类型(例如帧间预测类型或帧内预测类型)中确定该cu的预测类型。取决于时间和/或空间上的可预测性,可以将cu划分为一个或多个预测单元(prediction unit,pu)。通常,每个pu包括亮度预测块(prediction block,pb)和两个色度pb。在实施例中,编解码(编码/解码)中的预测操作以预测块为单位进行。cu到pu(或不同色彩信道的pb)的划分可以以各种空间模式来执行。例如,亮度或色度pb可以包括样本值(例如,亮度值)的矩阵,例如8
×
8像素、16
×
16像素、8
×
16像素、16
×
8样本等。
[0095]
图7示出了本技术另一实施例示例的视频编码器(703)的图。视频编码器(703)用于接收视频图像序列中的当前视频图像内的样本值的处理块(例如,预测块),并且将处理块编码到作为已编码视频序列的一部分的已编码图像中。视频编码器(703)的示例可以用于代替图4示例中的视频编码器(403)。
[0096]
例如,视频编码器(703)接收处理块的样本值矩阵,例如8
×
8样本的预测块等。然后,视频编码器(703)可以使用例如率失真优化(rate-distortion optimization,rdo)确定最好使用帧内模式、帧间模式还是的双向预测模式对该处理块进行编码。当确定以帧内模式对处理块进行编码时,视频编码器(703)可以使用帧内预测技术将处理块编码成已编码图像;当确定以帧间模式或双向预测模式对处理块进行编码时,视频编码器(703)可以分别使用帧间预测或双向预测技术来将处理块编码到已编码图像中。在一些实施例示例中,合并模式可以被用作帧间预测的子模式,其中在不借助一个或多个运动矢量预测因子以外
的已编码运动矢量分量的情况下,从该一个或多个运动矢量预测因子推导出运动矢量。在一些其它实施例示例中,可以存在适用于主题块的运动矢量分量。相应地,视频编码器(703)可以包括图7中未明确示出的部件,例如模式决策模块,用于确定处理块的预测模式。
[0097]
在图7的示例中,视频编码器(703)包括以如图7的示例方式耦合在一起的帧间编码器(730)、帧内编码器(722)、残差计算器(723)、开关(726)、残差编码器(724)、通用控制器(721)和熵编码器(725)。
[0098]
帧间编码器(730)用于接收当前块(例如,处理块)的样本,将该块与参考图像中的一个或多个参考块(例如,按显示顺序的先前图像和后来图像中的块)进行比较,生成帧间预测信息(例如,根据帧间编码技术的冗余信息描述、运动矢量、合并模式信息)以及基于帧间预测信息使用任何合适的技术来计算帧间预测结果(例如,被预测的块)。在一些示例中,参考图像是已解码的参考图像,其由嵌入在图6示例的编码器620中的解码单元633(在图7中示出为残差解码器728,如下文进一步详细描述)基于已编码视频信息进行解码。
[0099]
帧内编码器(722)用于接收当前块(例如,处理块)的样本,将该块与同一图像中已编码的块进行比较,并且在变换之后生成量化系数,并且在一些情况下(例如,根据一个或多个帧内编码技术的帧内预测方向信息)生成帧内预测信息。帧内编码器(722)可以基于帧内预测信息和相同图像中的参考块来计算帧内预测结果(例如,被预测的块)。
[0100]
通用控制器(721)可以用于确定通用控制数据并且基于该通用控制数据控制视频编码器(703)的其它部件。一个实施例中,通用控制器(721)确定块的预测模式,并且基于该预测模式向开关(726)提供控制信号。例如,当预测模式是帧内模式时,通用控制器(721)控制开关(726)选择帧内模式结果以供残差计算器(723)使用,并且控制熵编码器(725)选择帧内预测信息并且将帧内预测信息添加在码流中;当块的预测模式是帧间模式时,通用控制器(721)控制开关(726)选择帧间预测结果以供残差计算器(723)使用,并且控制熵编码器(725)选择帧间预测信息并且将帧间预测信息添加在码流中。
[0101]
残差计算器(723)可以用于计算接收到的块与选自帧内编码器(722)或帧间编码器(730)块的预测结果之间的差(残差数据)。残差编码器(724)可以用于对残差数据进行编码以生成变换系数。例如,残差编码器(724)可以用于将残差数据从空域转换到频域以生成变换系数。然后对变换系数进行量化处理以获得量化的变换系数。在各种实施例示例中,视频编码器(703)还包括残差解码器(728)。残差解码器(728)用于执行逆变换,且生成已解码残差数据。已解码残差数据可适当地由帧内编码器(722)和帧间编码器(730)使用。举例来说,帧间编码器(730)可基于已解码残差数据和帧间预测信息生成已解码块,且帧内编码器(722)可基于已解码残差数据和帧内预测信息生成已解码块。适当处理已解码块以生成已解码图片,且在一些实施例中,所述已解码图片可在存储器电路(未示出)中缓冲并用作参考图像。
[0102]
熵编码器(725)可以用于将码流格式化以包括已编码的块并且执行熵编码。熵编码器(725)用于在码流中包括各种信息。举例来说,熵编码器(725)可以用于在码流中包括通用控制数据、选择的预测信息(例如帧内预测信息或帧间预测信息)、残差信息和其它合适的信息。当在帧间模式或双向预测模式的合并子模式中对块进行编解码时,可能不存在残差信息。
[0103]
图8是本技术另一实施例的视频解码器(810)的图。视频解码器(810)用于接收作
为已编码视频序列的部分的已编码图像,且对所述已编码图像进行解码以生成重建的图像。在实施例中,视频解码器(810)用于代替图4实施例中的视频解码器(410)。
[0104]
在图8的示例中,视频解码器(810)包括以如图8示例的方式耦合在一起的熵解码器(871)、帧间解码器(880)、残差解码器(873)、重建模块(874)和帧内解码器(872)。
[0105]
熵解码器(871)可以用于根据已编码图像重建某些符号,这些符号表示构成已编码图像的语法元素。此类符号可以包括,例如,对块进行编码的模式(例如,帧内模式、帧间模式、双向预测模式、合并子模式或另一子模式)、可以识别供帧内解码器(872)或帧间解码器(880)用以进行预测的某些样本或元数据的预测信息(例如,帧内预测信息或帧间预测信息)、呈例如量化变换系数形式的残差信息等。一个实施例中,当预测模式是帧间预测模式或双向预测模式时,将帧间预测信息提供给帧间解码器(880);以及当预测类型是帧内预测类型时,将帧内预测信息提供给帧内解码器(872)。残差信息可以经过逆量化并被提供给残差解码器(873)。
[0106]
帧间解码器(680)可用于接收帧间预测信息,且基于所述帧间预测信息生成帧间预测结果。
[0107]
帧内解码器(672)可用于接收帧内预测信息,且基于所述帧内预测信息生成预测结果。
[0108]
残差解码器(873)可以用于执行逆量化以提取解量化的变换系数,并且处理该解量化的变换系数以将残差从频域转换到空域。残差解码器(873)还可以利用的某些控制信息(以包括量化器参数(qp)),这些控制信息可由熵解码器(871)提供(未示出数据路径,因为这可能仅是数据量很少的控制信息)。
[0109]
重建模块(874)可以用于在空域中组合由残差解码器(873)输出的残差和预测结果(根据情况由帧间预测模块或帧内预测模块输出)以形成重建的块,该重建的块形成重建图像的一部分,该重建图像作为重建视频的一部分。应注意,也可以执行其它适当的操作(例如去块操作等)以提高视觉质量。
[0110]
应注意,视频编码器(403)、(603)和(703)以及视频解码器(410)、(510)和(810)可以使用任何合适的技术来实现。在一些实施例示例中,视频编码器(403)、(603)和(703)以及视频解码器(410)、(510)和(810)可以使用一个或多个集成电路来实现。在另一实施例中,视频编码器(403)、(603)和(603)以及视频解码器(410)、(510)和(810)可以使用执行软件指令的一个或多个处理器来实现。
[0111]
对于编码块分割,并且在一些实现方式示例中,可以应用预定模式。如图9所示,可以采用从第一预定义级别(例如,64
×
64块的级别)开始向下到第二预定义级别(例如,4
×
4级别)的4路分割树的示例。例如,基础块可以应用从由902、904、906和908指示的四个分割选项,其中以r表示的分割被允许用于递归分割,图9所示的相同分割树可以在较低的范围内重复进行直到最低级别(例如,4
×
4的级别)。在一些实现方式中,可以对图9的分割方案应用附加的限制条件。在图9的实现中,可以允许矩形分割(例如,1:2/2:1矩形分割),但是可以不允许递归的矩形分割,但是允许递归的方形分割。如果需要,按照图9的递归分割生成最终的编码块集合。这样的方案可以应用于一个或多个色彩通道。
[0112]
图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的模式递归分割至分割树的下一级。换句话说,对于具有模式1002、1004、1006和1006的正方形分割,可以不允许递归进行。当需要时,按照图10的分割方式进行递归,以生成最终的编码块集合。这样的方案可以应用于一个或多个色彩通道。
[0113]
在按照以上任何分割过程或其它过程对基础块进行划分或分割之后,同样,可以获得最终的分割或编码块集合。这些分割中的每一个可以处于各种分割级别之一。分割中的每一个可以被称为编码块(coding block,cb)。对于以上各种分割实现方式的示例,每个得到的cb可以具有任意允许的尺寸和分割级别。它们被称为编码块,因为它们可以形成可以对其做出一些基本编码/解码决策的单元,并且可以在已编码视频码流中对其编码/解码参数进行优化、确定和用信号表示。最终分割中的最高级别表示编码块分割树的深度。编码块可以是亮度编码块或色度编码块。
[0114]
在一些其它实现方式的示例中,四叉树结构可被用于将基部亮度块和色度块递归地划分成编码单元。这样的分割结构可被称为编码树单元(coding tree unit,ctu),通过使用四叉树结构将编码树单元划分成编码单元(cu),以使分割适应于基部ctu的各种局部特性。在这样的实现方式中,可以在图像边界处执行隐式四叉树划分,使得对该块持续进行四叉树划分直到尺寸符合图像边界。术语cu是用于统称亮度(cb)和色度编码块cb的单位。
[0115]
在一些实现方式中,cb可以被进一步分割。例如,为了在编码和解码过程期间进行帧内预测或帧间预测,可以将cb进一步分割成多个预测块(prediction block,pb)。换句话说,cb可以被进一步划分成不同的子分割,其中可以进行单独的预测决策/配置。与此同时,cb可以被进一步分割成多个变换块(transform block,tb),用于描绘对视频数据执行变换或逆变换的级别。将cb分割为pb和tb的分割方案可以是相同的或不同的。例如,可以基于例如视频数据的各种特性,使用每个分割方案自身的程序来执行每个分割方案。在一些实现方式的示例中,pb和tb分割方案可以是独立的。在一些其它实现方式的示例中,pb和tb分割方案和边界可以是相关的。在一些实现方式中,例如,可以在pb分割之后执行tb的分割,并且具体地,每个pb在对编码块进行分割后被确定之后,可以被进一步分割成一个或多个tb。例如,在一些实现方式中,一个pb可以被划分成一个、两个、四个或其它数量的tb。
[0116]
在一些实现方式中,为了将基础块分割成编码块并且进一步分割成预测块和/或变换块,可以对亮度通道和色度通道进行不同的处理。例如,在一些实现方式中,对于亮度通道可以允许将编码块分割成预测块和/或变换块,而对于一个或多个色度通道可以不允许将编码块分割成预测块和/或变换块。在这样的实现方式中,亮度块的变换和/或预测因此可以仅在编码块级别进行。对于另一示例,亮度通道和一个或多个色度通道的最小变换块尺寸可以不同,例如,可以允许将亮度通道的编码块分割成比色度通道小的变换块和/或预测块。对于又一示例,将编码块分割成变换块和/或预测块的最大深度在亮度通道与色度
通道之间可以不同,例如,可以允许将亮度通道的编码块分割成比一个或多个色度通道更深的变换块和/或预测块。对于特定示例,可以将亮度编码块分割成多个尺寸的变换块,这些变换块可以由向下延伸至多2个级别的递归分割来表示,并且可以允许例如正方形、2:1/1:2和4:1/1:4的变换块形状和从4
×
4到64
×
64的变换块尺寸。然而,对于色度块,仅允许为亮度块指定的最大可能的变换块。
[0117]
在用于将编码块分割成pb的一些实现方式的示例中,pb分割的深度、形状和/或其它特性可以取决于pb是帧内编码的还是帧间编码。
[0118]
可以在各种方案示例中实施将编码块(或预测块)分割成变换块,包括但不限于递归或非递归的四叉树划分和预定义模式划分,并且对编码块或预测块的边界处的变换块有额外的考虑因素。通常,得到的变换块可以处于不同的划分级别,可以不具有相同的尺寸,并且可以不需要形状为正方形(例如,它们可以是具有一些允许的尺寸和纵横比的矩形)。
[0119]
在一些实现方式中,可以使用编码分割树方案或结构。用于亮度和色度通道的编码分割树方案可以不必相同。换句话说,亮度通道和色度通道可以具有单独的编码树结构。进一步地,亮度通道和色度通道是否使用相同或不同的编码分割树结构以及要使用的实际编码分割树结构可以取决于正被编码的条带是p条带、b条带还是i条带。例如,对于i条带,色度通道和亮度通道可以具有单独的编码分割树结构或编码分割树结构模式;而对于p或b条带,亮度通道和色度通道可以共用相同的编码分割树方案。当应用单独的编码分割树结构或模式时,亮度通道可以由一个编码分割树结构分割成cb,而色度通道可以由另一编码分割树结构分割成色度cb。
[0120]
以下描述编码块和变换块分割的实现方式的具体示例。在这样的实现方式的示例中,可以使用以上描述的递归四叉树划分,将基础编码块划分成编码块。在每个级别,是否应该继续执行特定分割的进一步四叉树划分可以由本地视频数据特性来确定。所得到的cb可以处于各种尺寸的各种四叉树划分级别。可以在cb级(或cu级,对于所有三色信道)决定是使用帧间(时间)预测还是帧内(空间)预测来对图像区域进行编码。可以根据pb划分类型将每个cb进一步划分成一个、两个、四个或其他数量的pb。在一个pb内,可以应用相同的预测过程,并且以pb为单位将相关信息传输到解码器。在通过应用基于pb划分类型的预测过程获得残差块之后,可以根据与cb的编码树类似的另一四叉树结构将cb分割成tb。在该具体实现方式中,cb或tb可以,但不必限于,是正方形形状。进一步地,在该具体示例中,pb对于帧间预测可以是正方形或矩形的形状,而对于帧内预测可以仅是正方形形状。编码块可以进一步被划分成,例如,四个正方形tb。每个tb可以被进一步递归地(使用四叉树划分)划分成更小的tb,被称为残差四叉树(residual quad-tree,rqt)。
[0121]
以下描述用于将基础编码块分割成cb和其它pb和/或tb的另一具体示例。例如,不使用例如图10中所示的多分割单元类型,而是可以使用利用二进制和三进制划分分段结构的带有嵌套多类型树的四叉树。可以放弃cb、pb和tb概念的区分(即,将cb分割为pb和/或tb,以及将pb分割为tb),除非对于最大变换长度而言尺寸过大的cb具有这种需求时,该情形下可能需要对这种cb进行进一步划分。该分割方案示例可以被设计为支持cb分割形状的更多灵活性,使得预测和变换都可以在cb级别执行而无需进一步分割。在这样的编码树结构中,cb可以具有正方形或矩形的形状。具体地,编码树块(coding tree block,ctb)可以首先被四叉树结构分割。然后,可以利用多类型树结构对四叉树叶节点进行进一步分割。多
类型树结构的示例在图11中示出。具体地,图11的多类型树结构示例包括四种划分类型,被称为垂直二进制划分(vertical binary splitting,split_bt_ver)(1102)、水平二进制划分(horizontal binary splitting,split_bt_hor)(1104)、垂直三进制划分(vertical ternary splitting,split_tt_ver)(1106)和水平三进制划分(horizontal ternary splitting,split_tt_hor)(1108)。然后,cb对应于多类型树的叶。在该实现方式的示例中,除非cb对于最大变换长度而言过大,否则该分段无需任何进一步的分割即可被用于预测和变换处理。这意味着,在大多数情况下,cb、pb和tb在具有嵌套多类型树编码块结构的四叉树中具有相同的块尺寸。当最大支持变换长度小于cb的色彩分量的宽度或高度时,会发生例外情况。
[0122]
图12示出了用于一个ctb的块分割的具有嵌套多类型树编码块结构的四叉树的一个示例。具体地,图12示出了ctb 1200被四叉树划分成四个正方形分区1202、1204、1206和1208。使用图11的多类型树结构为每个四叉树划分分区做出进行进一步划分的决策。在图12的示例中,分区1204未被进一步划分。分区1202和1208的每个分区采用另一四叉树划分。对于分区1202,第二级四叉树划分的左上分区、右上分区、左下分区和右下分区分别采用四叉树的第三级划分、图11的1104、不划分和图11的1108。分区1208采用另一个四叉树划分,并且第二级四叉树划分的左上分区、右上分区、左下分区和右下分区分别采用图11的1106的第三级划分、不划分、不划分和图11的1104。1208的第三级左上分区的子分区中的两个子分区根据1104和1108被进一步划分。分区1206采用按照图11的1102的第二级划分模式分割成两个分区,这两个分区根据图11的1108和1102被进一步三级划分。根据图11的1104,第四级划分被进一步应用于两个分区中的一个分区。
[0123]
对于以上具体示例,最大亮度变换尺寸可以是64
×
64,并且支持的最大色度变换尺寸可以与亮度不同,例如32
×
32。当亮度编码块或色度编码块的宽度或高度大于最大变换宽度或高度时,可以在水平方向和/或垂直方向上对亮度编码块或色度编码块进行自动划分以满足该方向上的变换尺寸限制。
[0124]
在用于将基础编码块分割成cb的以上具体示例中,编码树方案可以支持亮度和色度具有分别的块树结构的能力。例如,对于p条带和b条带,一个ctu中的亮度ctb和色度ctb可以共享相同的编码树结构。例如,对于i条带,亮度和色度可以具有分别的编码块树结构。当应用分别的块树模式时,亮度ctb可以由一个编码树结构被分割成亮度cb,而色度ctb由另一编码树结构被分割成色度cb。这意味着i条带中的cu可以由一个亮度分量的编码块或两个色度分量的编码块组成,而p条带或b条带中的cu始终由所有三个色彩分量的编码块组成,除非视频是单色的。
[0125]
下文进一步详细描述用于将编码块或预测块分割成变换块的实现方式的示例以及变换块的编码顺序的示例。在一些实现方式的示例中,变换分割可以支持多种形状(例如,1:1(正方形)、1:2/2:1和1:4/4:1)的变换块,变换块尺寸范围从例如4
×
4到64
×
64。在一些实现方式中,如果编码块小于或等于64
×
64,则变换块分割可以仅应用于亮度分量,使得对于色度块,变换块尺寸与编码块尺寸相同。否则,如果编码块宽度或高度大于64,则亮度编码块和色度编码块两者可以分别被隐式地划分成min(w,64)x min(h,64)和min(w,32)x min(h,32)的倍数个变换块。
[0126]
在一些实现方式的示例中,对于帧内编码块和帧间编码块两者,编码块可以被进
一步分割成具有至多预定义数量个级别(例如,2个级别)的分割深度的多个变换块。变换块分割深度和尺寸可以是相关的。从当前深度的变换尺寸到下一深度的变换尺寸的映射示例如下表1中所示。表1:变换分割大小设置
[0127]
基于表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子变换块。
[0128]
在一些实现方式的示例中,对于帧内编码块的亮度分量,可以应用附加限制条件。例如,对于变换分割的每个级别,所有子变换块可以被限制为具有相同的尺寸。例如,对于32
×
16编码块,级别1变换划分创建两个16
×
16子变换块,级别2变换划分创建八个8
×
8子变换块。换句话说,第二级划分必须应用于所有第一级子块,以保持变换单元大小相等。在图13中示出了以下表1的针对帧内编码的正方形块的变换块分割的示例以及由箭头示出的编码顺序的示例。具体地,1302示出了正方形编码块。1304示出了根据表1的第一级划分得到的4个大小相等的变换块,其中箭头指示编码顺序。1306示出了将所有第一级大小相等的块根据表1的第二级划分得到的16个大小相等的变换块,其中箭头指示编码顺序。
[0129]
在一些实现方式的示例中,对于帧间编码块的亮度分量,可以不应用以上对帧内编码的限制条件。例如,在第一级变换划分之后,子变换块中的任何一个子变换块可以进一步独立地被再次划分一级。因此,所得到的变换块可以具有或可以不具有相同的大小。图14中示出了从帧间编码块到变换块的划分示例及其编码顺序的示例。在图14的示例中,根据表1,帧间编码块1402被划分成两级的变换块。在第一级,帧间编码块被划分成四个相等大小的变换块。然后,如1404所示,四个变换块中仅一个(不是所有的)子变换块进一步被划分
成四个子变换块,生成总共7个具有两种不同尺寸的变换块。图14的1404中的箭头示出这7个变换块的编码顺序的示例。
[0130]
在一些实现方式的示例中,对于一个或多个色度分量,可以对变换块应用一些附加限制条件。例如,对于一个或多个色度分量,变换块尺寸可以与编码块尺寸一样大,但不小于预定义尺寸,例如8
×
8。
[0131]
在一些其它实现方式的示例中,对于宽度(w)或高度(h)大于64的编码块,亮度编码块和色度编码块两者可以分别被隐式划分成min(w,64)
×
min(h,64)和min(w,32)
×
min(h,32)的倍数个变换单元。
[0132]
图15进一步示出了用于将编码块或预测块分割成变换块的另一可选方案的示例。如图15中所示,不使用递归变换分割,而是可以根据编码块的变换类型将预定义的分割类型集合应用于编码块。在图15中所示的具体示例中,6种分割类型示例之一可以被应用于将编码块划分成各种数量的变换块。这样的方案可以应用于编码块或预测块。
[0133]
更详细地,图15的分割方案为图15中所示的任何给定变换类型提供至多6种分割类型。在此方案中,可以基于例如率失真成本,为每个编码块或预测块分配变换类型。一个实施例中,可以基于编码块或预测块的变换分割类型来确定为编码块或预测块分配的分割类型。特定分割类型可以对应于变换块划分尺寸和模式(或分割类型),如图15中图示的4种分割类型所示。可以预定义各种变换类型与各种分割类型之间的对应关系。以下示出了对应关系的示例,其中大写标记指示可以基于率失真成本被分配给编码块或预测块的变换类型:
[0134]
·
partition_none:分配的变换尺寸等于块尺寸。
[0135]
·
partition_split:分配的变换尺寸的宽度是块尺寸的1/2且高度是块尺寸的的1/2。
[0136]
·
partition_horz:分配的变换尺寸的宽度与块尺寸相同且高度是块尺寸的1/2。
[0137]
·
partition_vert:分配的变换尺寸的宽度是块尺寸的1/2且高度与块尺寸相同。
[0138]
·
partition_horz4:分配的变换尺寸的宽度与块尺寸相同且高度是块尺寸的1/4。
[0139]
·
partition_vert4:分配的变换尺寸的宽度是块尺寸的1/4且高度与块尺寸相同。
[0140]
在以上示例中,如图15中所示的分割类型都包含对分割后的变换块应用一致的变换尺寸。这仅仅是示例而不是限制。在一些其它实现中,在特定分割类型(或模式)中可以对分割得到的变换块应用混合的变换块尺寸。
[0141]
在各种实施例中,可以使用半解耦分割(semi decoupled partitioning,sdp)方案,其中在一个超级块(super block,sb)中的亮度块和色度块可以具有相同或不同的块分割结构。sdp方案也可以被称为半独立树(semi separate tree,sst)或用于色度分量的灵活块分割。
[0142]
在一些实现中,sdp方案可以依赖于亮度编码块的尺寸或亮度块分割树的深度。一个示例中,当亮度块的尺寸(例如,面积)大于第一阈值(t1)或亮度块的编码树划分深度小于或等于第二阈值(t2)时,色度块可以使用与亮度块相同的编码树结构。
[0143]
否则,根据另一示例,当亮度块的尺寸小于或等于t1时,或者当亮度划分深度大于
unit,lcu),例如128
×
128块。亮度块可以指与色度块位置相同的亮度块。半解耦分割(sdp)还可以被称为半解耦树(semi-decoupled tree,sdt)。块划分还可以被称为块分割。
[0155]
参考步骤1710,该设备可以是图5中的电子设备(530)或图8中的视频解码器(810)。在一些实现方式中,该设备可以是图6中的编码器(620)中的解码器(633)。在其它实现中,该设备可以是图5中的电子设备(530)的一部分、图8中的视频解码器(810)的一部分,或图6中的编码器(620)中的解码器(633)的一部分。已编码视频码流可以是图8中的已编码视频序列,或图6或7中的中间编码数据。已编码视频码流可以针对亮度块(例如,图18中的1810)和色度块(例如,图18中的1850),并且亮度块和色度块彼此位置相同。
[0156]
在一些实现方式中,单独的变换单元划分和信令可以应用于不同的色彩分量,例如亮度分量和色度分量。色度分量可以包括多于一个色彩分量,例如第一色彩分量(蓝色)和第二色彩分量(红色)。
[0157]
图18示出了当编码块分割方式不同时进行独立的变换单元划分的示例,其中实线指示编码块分割边界,而虚线指示变换单元分割边界。亮度块(1810)包括级别1上的1811、1821、1831和1841。色度块(1850)包括级别1上的1851、1861、1871和1881。图18示出了亮度分量与色度分量(例如在1811与1851、1821与1861以及1841与1881)之间采用不同的编码块分割(实线)模式,而对于亮度分量和色度分量,例如1821和1861,均启用变换块分割(虚线),但采用不同的划分模式。
[0158]
参考步骤1720,该设备可以对亮度块进行分割以获得亮度编码块的分割树。参考图18,亮度块(1810)经过分割,得到亮度编码块的分割树,如1810中的实线所示。
[0159]
参考步骤1730,该设备可以对色度块进行分割以获得色度编码块的分割树。参考图18,色度块(1850)经过分割,得到色度编码块的分割树,如1850中的实线所示。
[0160]
参考步骤1740,设备可以对亮度编码块分割树中的亮度编码块进行分割以获得多个亮度变换块。1810中的一些亮度编码块经过分割,被进一步划分成多个亮度变换块,如1810中的虚线所示。例如,亮度编码块(1811中的上半部分)经过分割,被划分成两个亮度变换块(1812和1813)。另一示例中,亮度编码块(1831)经过分割,被划分成四个亮度变换块(1832、1833、1834和1835)。
[0161]
参考步骤1750,该设备可以对色度编码块分割树中的色度编码块进行分割以获得至少一组多个色度变换块。1850中的一些亮度编码块经过分割,被进一步划分成多个亮度变换块,如1850中的虚线所图示。一个示例中,色度编码块(1861中的右半部分)经过分割,被划分成两个色度变换块(1863和1864)。另一示例中,色度编码块(1871)经过分割,被划分成四个色度变换块(1872、1873、1874和1875)。
[0162]
在各实施例中,亮度编码块的分割树与色度编码块的分割树不同;和/或已编码视频码流包括亮度参数和色度参数。亮度参数可以从已编码视频码流中提取,并且指示从亮度编码块和/或多个亮度变换块的变换分割结构。色度参数可以从已编码视频码流中提取,并且指示从色度编码块和/或多个色度变换块的变换分割结构。
[0163]
步骤1740可以包括根据亮度参数对亮度编码块进行分割,以获得多个亮度变换块;和/或步骤1750可以包括根据色度参数对色度编码块进行分割,以获得多个色度变换块。
[0164]
在一些实现中,当对亮度色彩通道和色度色彩通道应用不同的编码块分割树时,
可以允许对色度通道应用变换单元划分,并且与亮度通道相比,可以单独用信号表示对于色度通道的变换单元划分。
[0165]
各实施例中,亮度编码块的分割树与色度编码块的分割树不同;和/或已编码视频码流包括亮度参数、第一色度参数和第二色度参数。亮度参数可以从已编码视频码流中提取,并且指示从该亮度编码块和/或多个亮度变换块的变换分割结构。第一色度参数对应于色度分量中的第一色彩(例如,蓝色);而第二色度参数对应于色度分量中的第二色彩(例如,红色)。第一色度参数可以从已编码视频码流中提取,并且指示色度分量中从该色度编码块和/或多个色度变换块的对于第一色彩的变换分割结构。第二色度参数可以从已编码视频码流中提取,并且指示色度分量中从该色度编码块和/或多个色度变换块的对于第二色彩的变换分割结构。第一色彩和第二色彩可以采用不同的变换分割结构。
[0166]
步骤1740可以包括根据亮度参数对亮度编码块进行分割以获得多个亮度变换块。步骤1750可以包括根据第一色度参数对色度编码块的第一分量进行分割以获得第一组多个色度变换块,和/或根据第二色度参数对色度编码块的第二分量进行分割以获得第二组多个色度变换块。色度编码块的第一分量可以指编码块的第一色彩通道(例如,蓝色),和/或色度编码块的第二分量可以指编码块的第二色彩通道(例如,红色)。
[0167]
在一些实现方式中,当对亮度色彩通道和色度色彩通道应用不同的编码块分割树时,允许对色度进行变换单元划分,并且可以针对色度的不同色彩分量(例如,cb和cr)分别用信号表示变换单元划分。
[0168]
在一些其它实现方式中,当色彩分量应用不同的编码块分割树时,允许针对每个色彩分量进行变换单元划分,并且可以针对每个色彩分量分别用信号表示变换单元划分。
[0169]
各实施例中,色度编码块的变换深度包括0或1;和/或色度编码块包括四叉树变换划分;和/或色度编码块是非正方形的矩形块,表示二进制变换划分。
[0170]
在一些实现方式中,对于不同的色彩分量,可以应用不同的变换单元分割模式和/或深度。一个示例中,对于色度通道或色度分量,变换深度可以限于0或1。另一示例中,对于色度通道或色度分量,仅允许四叉树变换划分。另一示例中,对于色度通道或色度分量,对于非正方形的矩形块,仅允许二进制变换划分。另一示例中,应用水平二进制变换划分还是垂直二进制变换划分取决于编码块的纵横比:当编码块的纵横比大于1(例如,编码块的水平维度比垂直维度长)时,可以使用垂直二进制变换划分;当编码块的纵横比小于1(例如,编码块的水平维度比垂直维度短)时,可以对编码块使用水平二进制变换划分。
[0171]
各实施例中,步骤1750可以包括,响应于以下条件中的至少一个条件得到满足,对色度编码块进行分割以获得至少一组多个色度变换块,这些条件包括:色度编码块大于最小编码块尺寸,色度编码块小于最大编码块尺寸,色度编码块使用至少一种帧内预测模式,或色度编码块使用至少一种变换类型。一些实现方式中,最小编码块尺寸对应于最小编码宽度,最小编码宽度包括以下各项中的至少一项:4、8、16、32或64;最大编码块尺寸对应于最大编码长度,该最大编码长度包括以下中的至少一个:32、64、128或256;和/或上述至少一种帧内预测模式包括至少一种方向性帧内预测模式。
[0172]
在一些其它实现方式中,对于不同的色彩分量,允许变换划分的最小编码块尺寸可以是不同的。一个示例中,对于小于m
×
n的色度编码块,不允许变换单元划分。m和n的示例值包括但不限于4、8、16、32、64。
[0173]
在一些其它实现方式中,对于不同的色彩分量,允许变换划分的最大编码块尺寸可以是不同的。
[0174]
在一些其它实现方式中,对于尺寸大于m
×
n的色度编码块,可以不允许变换单元划分。m和n的示例值包括但不限于32、64、128、256。
[0175]
在一些其它实现方式中,对于帧内编码块,当亮度色彩通道和色度色彩通道应用不同的编码块分割树时,可以仅针对某些帧内预测模式允许在色度色彩通道中进行变换单元划分。一个示例中,可以仅针对方向性帧内预测模式允许在色度色彩通道中对色度编码块应用变换单元划分。
[0176]
在一些其它实现方式中,当允许在色度上进行变换单元划分时,仅允许某些变换类型。
[0177]
各实施例中,已编码视频码流包括亮度编码参数、亮度变换参数、色度编码参数和色度变换参数;和/或在已编码视频码流的熵解码期间,色度变换参数使用以下各项中的至少一项作为上下文:亮度编码参数、亮度变换参数或色度编码参数。
[0178]
亮度编码参数可以从已编码视频码流中提取得到,用于指示亮度分量的编码块分割结构。亮度变换参数可以从已编码视频码流中提取得到,用于指示从亮度编码块和/或多个亮度变换块的变换分割结构。色度编码参数可以从已编码视频码流中提取得到,用于指示色度分量的编码块分割结构。色度变换参数可以从已编码视频码流中提取,用于指示从色度编码块和/或多个色度变换块的变换分割结构。
[0179]
在一些其它实现中,为了用信号表示色度变换块分割模式,可以使用亮度编码块分割标志和/或变换块划分标志作为对色度变换块分割标志进行熵编码的上下文。
[0180]
在各种实施例中,当允许对色度分量中的已编码块进行变换单元划分时,编码块内的所有色度变换单元的尺寸可以是相同的。一个示例中,可以在编码块级别用信号表示一标志以指示色度分量(或每个色度通道)的变换深度。另一示例中,编码块中亮度变换单元的变换尺寸可以不相同,而编码块中所有色度变换单元的大小相同。
[0181]
本技术中的实施例可以单独使用或以任何顺序组合使用。并且,这些方法(或实施例)、编码器和解码器中的每一个都可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。一个示例中,一个或多个处理器执行存储在非易失性计算机可读介质中的程序。本技术的实施例可以被应用于亮度块或色度块;并且在色度块中,各实施例可以单独应用于多于一个色彩分量,或可以一起应用于多于一个色彩分量。
[0182]
以上描述的技术可以由物理地存储在一个或多个计算机可读介质中的使用计算机可读指令的计算机软件实现。例如,图19示出了适于实现所公开的主题的某些实施例的计算机系统(2600)。
[0183]
计算机软件可以使用任何合适的机器代码或计算机语言来进行编码,可以经过汇编、编译、链接或类似机制生成代码,该代码包括可以由一个或多个计算机中央处理单元(cpu)、图形处理单元(gpu)等直接执行或通过代码解释、微代码执行等操作来执行的指令。
[0184]
这些指令可以在各种类型的计算机或计算机组件中执行,包括,例如,个人计算机、平板电脑、服务器、智能电话、游戏设备、物联网设备等。
[0185]
图19所示的用于计算机系统(2600)的组件本质上是示例性的,而非旨在对实现本技术的实施例的计算机软件的使用范围或功能提出任何限制。也不应将组件的配置方式解
释为对计算机系统(2600)的示例性实施例中的任一部件或其组合具有任何依赖性或要求。
[0186]
计算机系统(2600)可以包括某些人机接口输入设备。这样的人机接口输入设备可以响应于一个或多个人类用户通过例如触觉输入(例如:键击、滑动、数据手套移动)、音频输入(例如:语音、拍击)、可视输入(例如:手势)、嗅觉输入(未示出)。人机接口设备还可以被用于采集不一定与人的有意识输入直接相关的某些媒体,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止图像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
[0187]
输入人机接口设备可以包括以下中的一个或多个(每种仅描绘了其中的一个):键盘(2601)、鼠标(2602)、触控板(2603)、触摸屏(2610)、数据手套(未示出)、操纵杆(2605)、麦克风(2606)、扫描仪(2607)、相机(2608)。
[0188]
计算机系统(2600)还可以包括某些人机接口输出设备。这样的人机接口输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。这样的人机接口输出设备可以包括触觉输出设备(例如通过触摸屏(2610)、数据手套(未示出)或操纵杆(2605)的触觉反馈,但是也可以存在不用作输入设备的触觉反馈设备)、音频输出设备(例如:扬声器(2609)、耳机(未示出))、视觉输出设备(例如用于包括crt屏幕、lcd屏幕、等离子屏幕、oled屏幕的屏幕(2610),每个屏幕具有或不具有触摸屏输入能力,每个屏幕具有或不具有触觉反馈能力,其中一些屏幕能够通过例如立体输出的手段输出二维视觉输出或多于三维输出;虚拟现实眼镜(未示出)、全息显示器和烟雾罐(未示出)和打印机(未示出)。
[0189]
计算机系统(2600)还可以包括人类可访问的存储设备及其相关联的介质,例如包括带有cd/dvd的cd/dvd rom/rw(2620)等介质(2621)的光学介质、拇指驱动器(2622)、可移动硬盘驱动器或固态驱动器(2623)、例如磁带和软盘(未示出)的传统磁性介质、例如安全软件狗(未示出)的基于专用rom/asic/pld的设备等。
[0190]
本领域技术人员还应该理解,结合当前公开的主题使用的术语“计算机可读介质”不包含传输介质、载波或其它易失性信号。
[0191]
计算机系统(2600)还可以包括到一个或多个通信网络(2655)的接口(2654)。网络可以例如是无线的、有线的、光学的。网络可以进一步是本地的、广域的、大城市的、车载的以及工业的、实时的、延迟容忍的等等。网络的示例包括局域网(例如以太网)、无线lan、蜂窝网络(包括gsm、3g、4g、5g、lte等)、电视有线或无线广域数字网络(包括有线电视、卫星电视和地面广播电视)、车辆和工业网络(包括can总线)等。某些网络通常需要附接到某些通用数据端口或外围总线(2649)(例如,计算机系统(2600)的usb端口)的外部网络接口适配器;其它网络通常通过附接到如下所描述的系统总线而集成到计算机系统(2600)的内核中(例如以太网接口集成到pc计算机系统中或蜂窝网络接口集成到智能电话计算机系统中)。使用这些网络中的任何一个,计算机系统(2600)可以与其它实体通信。这种通信可以是单向的、仅接收的(例如,广播tv)、仅单向发送的(例如,canbus到某些canbus设备)或双向的(例如到使用局域数字网络或广域数字网络的其它计算机系统)。可以在如以上描述的那些网络和网络接口中的每一个上使用某些协议和协议栈。
[0192]
上述人机接口设备、人可访问的存储设备和网络接口可以附接到计算机系统(2600)的内核(2640)。
[0193]
内核(2640)可以包括一个或多个中央处理单元(cpu)(2641)、图形处理单元(gpu)(2642)、现场可编程门区域(fpga)形式的专用可编程处理单元(2643)、用于某些任务的硬件加速器(2644)、图形适配器(2650)等。这些设备连同只读存储器(rom)(2645)、随机存取存储器(2646)、例如内部非用户可访问硬盘驱动器、ssd等内部大容量存储装置(2647)可以通过系统总线(2648)连接。在一些计算机系统中,系统总线(2648)可以以一个或多个物理插头的形式来访问,以实现由附加cpu、gpu等进行的扩展。外围设备可以直接附接到内核的系统总线(2648),或通过外围总线(2649)附接到系统总线(2648)。一个实施例中,屏幕(2610)可以连接到图形适配器(2650)。外围总线的架构包括pci、usb等。
[0194]
cpu(2641)、gpu(2642)、fpga(2643)和加速器(2644)可以执行某些指令,这些指令的组合可以构成前述计算机代码。该计算机代码可以存储在rom(2645)或ram(2646)中。过渡数据也可以存储在ram(2646)中,而永久数据可以存储在例如内部大容量存储装置(2647)中。可以通过使用高速缓冲存储器来启用对任何存储器设备的快速存储和检索,该高速缓冲存储器可以与一个或多个cpu(2641)、gpu(2642)、大容量存储装置(2647)、rom(2645)、ram(2646)等紧密相关联。
[0195]
计算机可读介质上可以具有用于执行各种计算机实现的操作的计算机代码。介质和计算机代码可以是为了本技术的目的而专门设计和构建的那些,或者它们可以是计算机软件领域的技术人员公知和可用的类型。
[0196]
作为非限制性示例,具有架构(2600)的计算机系统并且特别是内核(2640)可以提供作为一个或多个处理器(包括cpu、gpu、fpga、加速器等)执行包含在一个或多个有形的计算机可读介质中的软件的结果的功能。这样的计算机可读介质可以是与如上所介绍的用户可访问大容量存储装置相关联的介质,以及具有非易失性性质的内核(2640)的某些存储装置(例如内核内部大容量存储装置(2647)或rom(2645))。实现本技术的各种实施例的软件可以存储在这样的设备中并且由内核(2640)执行。根据特定需要,计算机可读介质可以包括一个或多个存储器设备或芯片。软件可以使内核(2640)并且特别是其中的处理器(包括cpu、gpu、fpga等)执行本文中描述的特定过程或特定过程的特定部分,包括定义存储在ram(2646)中的数据结构以及根据软件定义的过程修改这样的数据结构。此外或作为替代方案,该计算机系统可以提供作为逻辑硬连线或以其他方式体现在电路中的结果的功能(例如:加速器(2644)),其可以代替软件或与软件一起操作以执行本文中描述的特定过程或特定过程的特定部分。适当时,对软件的引用可以包含逻辑,反之亦然。适当时,对计算机可读介质的引用可以包含存储用于执行的软件的电路(例如集成电路(ic))、包含用于执行的逻辑的电路,或两者。本技术包含硬件和软件的任何合适的组合。
[0197]
虽然已经参考说明性实施例描述了特定发明,但是这种描述并不意味着限制。根据这种描述,本技术的说明性实施例和附加实施例的各种修改对于本领域普通技术人员将是显而易见的。本领域技术人员将容易地认识到,在不脱离本技术的精神和范围的情况下,可以对本文中图示和描述的示例性实施例进行这些和各种其他修改。因此,预期所附权利要求书将涵盖任何这样的修改和替代实施例。图示中的某些比例可能被夸大,而其它比例可能被最小化。相应地,本技术和附图被认为是说明性的而不是限制性的。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献