子分区的并行帧内编码的制作方法

文档序号:28298352发布日期:2021-12-31 23:27阅读:92来源:国知局
子分区的并行帧内编码的制作方法
子分区的并行帧内编码
1.【相关申请的交叉引用】
2.本公开要求2020年5月28日提交的标题为“parallel intra

coding of sub

partitions(子分区的并行帧内编码)”的美国非临时申请号16/886,627的优先权,该申请要求2019年5月30日提交的美国临时申请号62/854,736的优先权,此处为了所有目的以引证的方式将所有这些申请全文并入。


背景技术:

3.在视频编码中,视频内容经由一组过程来压缩,该组过程包括预测(prediction)、变换(transformation)、量化(quantization)和熵编码(entropy coding)。在帧内预测中,减少视频帧中相邻像素之间的空间冗余。例如,视频帧的原始像素可以不被编码和发送到解码器。相反,可以从原始像素减去预测像素以形成残差。残差是要编码和发送到解码器的比原始像素更少的量的信息。这减少了用于传输经编码位流的带宽。
【附图说明】
4.关于下面的讨论且特别是关于附图,强调的是,为了例示性讨论的目的,所示的细节表示示例,并且被呈现以便提供本公开的原理和概念方面的描述。在这点上,没有试图示出超出基本理解本公开所需的实施细节。结合附图的以下讨论使得本领域技术人员清楚可以如何实践根据本公开的实施例。在各个附图和支持性描述中,类似或相同的附图标记可以用于标识或以其他方式指代类似或相同的元件。在附图中:
5.图1描绘了根据一些实施例的用于执行帧内预测的简化系统。
6.图2描绘了根据一些实施例的用于帧内预测的帧的示例。
7.图3描绘了根据一些实施例的转码器的示例。
8.图4描绘了根据一些实施例的解码器的示例。
9.图5描绘了根据一些实施例的当前块中的子分区的示例。
10.图6描绘了根据一些实施例的子分区的并行帧内预测处理的示例。
11.图7描绘了根据一些实施例的块的转码的更详细的流程图。
12.图8描绘了根据一些实施例的块的解码的更详细的流程图。
13.图9描绘了根据一些实施例的编码系统的示例。
14.图10描绘了根据一些实施例的解码系统的示例。
【具体实施方式】
15.本文描述了用于视频编码系统的技术。在以下描述中,为了说明的目的,阐述了大量示例和具体细节,以便提供一些实施例的透彻理解。由权利要求限定的一些实施例可以单独地或与下面描述的其它特征组合地包括这些示例中的一些或全部特征,并且还可以包括本文所述的特征和概念的修改和等同物。
16.在帧内预测中,转码器可从视频帧的原始像素减去预测像素,以减少需要转码的
值的量。帧内预测编码模式的一种方法是将帧内编码块分成多个子分区并且分别地处理子分区。常规上,当先对一个子分区进行转码然后开始另一子分区的转码过程时,或者当先对一个子分区进行解码然后开始另一子分区的解码过程时,对子分区进行串行处理。然而,一些实施例对子分区的组进行并行处理。这与对子分区进行串行编码相比将编码过程的速度提高至少两倍。
17.系统
18.图1描绘了根据一些实施例的用于执行帧内预测的简化系统100。系统100对源视频资产进行转码,该源视频资产可以是任何类型的视频,诸如用于电视节目、影片或视频剪辑。源视频可能需要被转码成一种或多种格式,诸如一个或多个位率。在一些实施例中,服务器系统102向客户端104发送经编码位流。例如,服务器系统102可以向客户端104发送视频以供回放。
19.服务器系统102包括将视频转码成经编码位流的转码器106。转码器106可以是配置在中央处理单元(cpu)上的软件视频处理器/转码器、具有图形处理单元(gpu)的硬件加速视频处理器/转码器、现场可编程门阵列(fpga)和/或在专用集成电路(asic)中实施的硬件处理器/转码器。转码可以是从一种数字格式到另一种数字格式的转换。转码可以涉及对源格式进行解码并将源视频编码为另一数字格式,或者将源内容转换为具有特定分辨率、帧速率、位率、编解码等的视频。而且,编码可以是将模拟源内容转换为数字格式。如所使用的,术语转码可以包括编码。
20.转码器106包括执行帧内预测的转码器帧内预测块108。转码器侧和解码器侧使用帧内编码模式,以通过去除视频帧中相邻像素的空间冗余来压缩视频。传统上,帧内编码可对像素尺寸等于nxn的当前块进行帧内编码。在一些实施例中,使用来自当前块的相邻块的像素来对当前块内部的像素进行帧内编码,该相邻块诸如为当前块的顶部、左边和斜对的块。
21.客户端104包括对经编码位流进行解码的解码器112。在解码过程期间,解码器帧内预测块110执行帧内预测,以使用来自当前块的相邻块的像素来对块进行解码,该相邻块诸如为当前块的顶部、左边和斜对的块。
22.图2描绘了根据一些实施例的用于帧内预测的帧200的示例。帧200可以是被转码或解码的图像。帧200包括多个块,并且当前块202(#16)正被转码或解码。当前块202的顶部的顶部块204(#10)和当前块202的左边的左边块206(#15)已经被解码。来自左边块206和顶部块204的像素可以用于预测当前块202的内容。因为这些像素已经被解码,所以这些像素可以用于预测当前块的内容。例如,相邻像素可类似于当前块的一些像素并且提供当前块202中的当前像素的良好预测。也可以使用来自其它块的像素,诸如来自块#9、#11和#21(斜对定位)的像素,如果来自这些块的像素可用(例如,已被转码然后解码)。
23.转码器
24.图3描绘了根据一些实施例的转码器106的示例。图3包括转码器的简化版本,更详细的版本将在下面描述。转码器106接收来自被转码的当前块202的原始像素。在302,转码器106然后从原始像素中减去预测像素以产生残差,该残差包括将被转码的像素。例如,作为转码过程的一部分,变换和量化块304对残差值执行变换步骤和量化步骤(t/q),以进一步压缩要转码的数据尺寸。最后,熵编码块306通过对数据进行熵编码来处理得到的数据。
502

1进行转码,然后使用来自子分区#1 502

1的参考像素来对子分区#2 502

2进行转码,然后使用来自子分区#2 502

2的参考像素来对子分区#3 502

3进行转码,最后使用来自子分区#3 502

3的参考像素来对子分区#4 502

4进行转码。这迫使转码器串行地对子分区502进行转码。代替串行地对子分区502进行转码,转码器并行地对子分区502的组进行转码,这加快了当前块的转码时间。转码器106可以包括能够并行地执行子分区502的转码的多个转码过程,或者可以使用分立的转码器。
35.为了并行地对子分区502进行转码,用于一些子分区502的参考像素从用于串行地对子分区进行转码的参考像素改变。例如,共享用于子分区#1 502

1和子分区#3 502

3的参考像素。然后,用于子分区#2 502

2的参考像素来自子分区#1 502

1,并且用于子分区#4 502

4的参考像素来自子分区#3 502

3。这允许转码器106并行地对子分区#1 502

1和子分区#3 502

3进行转码。一旦转码器106对子分区#1 502

1和子分区#3 502

3进行转码和解码,那么转码器106可以并行地使用来自子分区#1 502

1的参考像素来对子分区#2 502

2进行转码,并使用来自子分区#3 502

3的参考像素来对子分区#4 502

4进行转码。
36.针对四个子分区502示出了三组参考像素504

1到504

3。如果存在不同数量的子分区502,那么可存在不同数量的参考像素504组。然而,至少两个子分区502可共享参考像素以允许并行处理。注意,为了清楚起见,绘制了所表示的参考像素。在一些实施例中,参考像素可包括最靠近当前块202或与其相邻的一个或多个像素行。即,参考像素504

1可包括来自最靠近当前块202的像素行——而不是与参考像素504

2和504

4相比更远的像素行——的参考像素。参考像素被分离以清楚地示出各个参考像素。然而,块中左边的重叠部分的参考像素可以包括相同的像素。例如,506处的像素可以相同,508处的像素可以相同。而且,所使用的参考像素不限于所示的参考像素。可使用额外参考像素,诸如来自顶部块或左边块的更多参考像素,或来自除顶部块和左边块以外的块(例如,与当前块斜对定位的块)的参考像素。
37.当对子分区#1 502

1和子分区#3 502

3进行转码时,转码器106使用参考像素504

1。参考像素504

1可包括来自当前块202顶部的块的参考像素以及来自当前块202左边的块的参考像素。在一些实施例中,当对子分区#3 502

3进行转码时,转码器106可以偏向于使用帧内方向,该帧内方向使用来自当前块202的左边的块的参考像素,而不是当前块202的顶部的参考像素。子分区#3 502

3左边的参考像素更近,并且可以提供更准确的预测。
38.而且,参考像素504

2可包括来自子分区#2 502

2及当前块202左边的块的参考像素。用于子分区#2 502

2的参考像素可以与常规的过程相同。
39.参考像素504

3可包括来自子分区#3 502

3及当前块202左边的块的参考像素。用于子分区#4 502

2的参考像素可以与常规的过程相同。
40.注意,如果当前块202被竖直地分割,则所使用的参考像素可能稍微不同。例如,可将当前块202旋转90度以例示竖直分割。然而,概念与共享子分区#1 502

1和子分区#3 502

3的参考像素相同。然后,用于子分区#2 502

2的参考像素来自子分区#1 502

1,并且用于子分区#4 502

4的参考像素来自子分区#3 502

3。
41.解码器112可在解码过程中以类似方式使用子分区,这将在下文更详细地描述。
42.图6描绘了根据一些实施例的子分区502的并行帧内预测处理的示例。在转码过程
或解码过程中可以使用以下处理流水线。在转码过程中,流水线生成一子分区的预测像素,然后在该子分区的转码之后,生成该子分区的经解码像素,以用作另一子分区的参考像素。如果串行地执行该过程,则串行地针对各个子分区执行以上生成子分区的预测像素并随后构建该子分区的经解码像素的过程。例如,首先,转码器106生成子分区#1 502

1的预测像素,生成残差并对残差进行转码,然后转码器106构建子分区#1 502

1的经解码像素。转码器106使用这些经解码像素作为参考像素,以生成子分区#2 502

2的预测像素。在对子分区#2 502

2进行帧内编码之后,转码器106构建子分区#2 502

2的经解码像素。转码器106使用这些经解码像素来生成子分区#3 502

3的预测像素,并且该过程串行地继续,直到转码器106对当前块进行转码为止。因此,当串行处理子分区502时,转码器106必须常规地完成对一子分区进行转码并在继续对另一子分区进行转码之前解码该子分区的像素。
43.如上所述,转码器106不需要在开始另一子分区的转码过程之前等待先前的子分区被转码然后被解码。在图6中,当开始当前块的转码时,子分区#1 502

1和子分区#3 502

3的参考像素相同,并且转码器106并行地在602开始子分区#1 502

1的转码和在610开始子分区#3 502

3的转码。例如,转码过程#1 600

1对子分区#1 502

1进行转码,转码过程#2 600

2对子分区#3 502

3进行转码。
44.在602,转码过程#1 600

1使用来自相邻块的参考像素生成子分区#1 502

1的预测像素,该相邻块诸如为当前块202顶部的块和当前块202左边的块。然后,转码过程#1 600

1执行子分区#1 502

1的转码过程。在对像素进行转码之后,在604,转码过程#1 600

1然后重建(例如,解码)子分区#1 502

1的像素。并行地,在610,转码过程#2 600

2使用与用于子分区#1 502

1的参考像素相同的参考像素来生成子分区#3 502

3的预测像素。然后,转码过程#2 600

2执行子分区#3 502

3的转码过程。在对像素进行转码之后,在612,转码过程#2 600

2然后重建(例如,解码)子分区#3 502

3的像素。
45.子分区#2 502

2使用来自子分区#1 502

1和来自诸如左边的块之类的相邻块的参考像素。在重建子分区#1 502

1的经解码像素之后,在606,转码过程#1 600

1可以从子分区#2 502

2和左边的块的参考像素生成预测像素。转码过程#1 600

1执行子分区#2 502

2的转码过程。在对像素进行转码之后,在608,转码过程#1 600

1然后重建(例如,解码)子分区#2 502

2的像素。
46.而且,子分区#4 502

4使用来自子分区#3 502

3的参考像素。在重建子分区#3 502

3的经转码像素之后,在614,转码过程#2 600

2可以从来自子分区#4 502

4和诸如左边的块之类的相邻块的参考像素来生成预测像素。转码过程#2 600

2执行子分区#4 502

4的转码过程。在对像素进行转码之后,在616,转码过程#2 600

2然后重建(例如,解码)子分区#4 502

4的像素。
47.在重建子分区#2 502

2的经转码像素并重建子分区#4 502

4的经转码像素之后,转码过程结束。因此,由于两组子分区502的并行处理,转码器106可以比串行执行处理快两倍地执行转码过程。尽管描述了两组,但是转码器可以将当前块202分为不同数量的组。例如,若使用八个子分区502,可以使用两个组;然而,转码器也可以将子分区502分成四组,以与串行相比快四倍并且与使用两组相比快两倍地执行该过程。
48.在解码过程中,子分区502也可以并行地解码。例如,当解码器112开始解码当前块202时,子分区#1 502

1和子分区#3 502

3的参考像素相同,并且解码器112开始并行地解
502

3的参考像素。在724,使用与714到724中描述的步骤类似的步骤执行

子分区#4 502

4的转码过程。然而,子分区#4使用来自子分区#2的参考像素。
56.图8描绘了根据一些实施例的块的解码的更详细的流程图800。在802,解码过程#1 601

1从前一块的参考像素生成预测像素。前一块可以是当前块202的顶部和/或当前块202的左边的块。而且,前一块可以是当前块202或另一块的子分区。
57.在804,解码过程#1 601

1接收子分区#1的经编码像素。在806,解码过程#1 601

1从经编码像素生成子分区#1的残差。例如,解码过程#1 601

1可以执行熵解码以及逆量化和变换。在808,解码过程#1 601

1从预测像素和残差生成经解码像素。例如,解码过程#1 601

1可以将经解码像素与预测像素组合。
58.在810,解码过程#1 601

1从参考像素生成子分区#1的预测像素。在812,解码过程#1 601

1执行子分区#2的预测过程。该过程可以类似于步骤802

810。然而,子分区#2使用来自子分区#1的参考像素。
59.并行地执行以下操作。注意,对应的步骤可能不是完全同时执行的。即,802和812的步骤不需要同时开始和结束。相反,802至812的步骤与814至824的步骤并行执行,其中,各个步骤可以以其自己的步调进行。在814,解码过程#2 601

2从前一块的参考像素生成预测像素。在816,解码过程#2 601

2接收子分区#3的经编码像素。在818,解码过程#2 601

2从经编码像素生成子分区#3的残差。在820,解码过程#2 601

2从预测像素和残差生成经解码像素。在822,解码过程#2 601

2从参考像素生成子分区#3的预测像素。在824,解码过程#2 601

2执行子分区#4的预测过程。该过程可以类似于步骤814

822。然而,子分区#4使用来自子分区#2的参考像素。
60.结论
61.因此,通过对块的多个子分区使用相同的参考像素,可以更高效地执行转码和解码过程。这提高了转码器和/或解码器的性能。
62.系统
63.图9描绘了根据一些实施例的转码系统的示例。一种视频编解码器框架包括一组基本部件:块分割、帧间和帧内预测、变换和量化以及熵编码。
64.转码器106接收视频帧,该视频帧首先被分成非重叠编码块以用于进一步处理。为了应对不同的视频内容特性,复杂区域将被具有较小尺寸的分区覆盖,而简单区域将被较大的分区覆盖。多个块模式和形状可以一起使用,例如四叉树模式、三叉树模式和二叉树模式可以一起使用,而正方形块和矩形块也可以一起使用。
65.预测被用于去除视频信号的冗余。通过从被处理的像素中减去预测像素值,可以显著地减小残差信号的振幅,由此可以减小所得到的位流尺寸。使用当前帧中的参考像素的帧内预测块910旨在减少帧内的空间冗余。使用来自相邻帧的参考像素的帧间预测块912试图去除帧之间的时间冗余。运动估计和补偿块916可以是在转码器侧的帧间预测的子模块,该子模块捕获相邻帧之间的对象的运动轨迹,并且生成用于帧间预测的参考像素。
66.变换和量化块904在帧内或帧间预测之后使用剩余像素。变换和量化块904执行在频域中表示残差信号的变换操作。考虑到人类视觉系统对视频信号的低频分量比高频分量更敏感,量化被设计为通过降低高频信号的精度来进一步压缩残差信号。
67.为了避免转码器106与解码器112之间的不同步问题,转码器106包含解码模块,以
确保转码器106和解码器112都使用相同的数学处理。由此,逆变换和逆量化块908类似于解码器侧的相同块。逆变换和逆量化块908使用帧内和帧间预测来重建像素。
68.环内滤波器914去除由上述过程引入的任何视觉伪影。以级联方式对重建帧应用各种滤波方法以减少不同的伪影,包括但不限于块伪影、蚊式伪影、色带效应等。
69.熵编码模块906可以进一步使用基于模型的方法压缩位流。转码器106通过网络或其它类型的介质将所得到的经编码位流发送到解码器112。
70.图10描绘了根据一些实施例的解码系统的示例。解码器112接收经编码的位流,并且将其输入到熵解码块1002中以恢复解码过程所需的信息。如上所述,可以通过以与构建解码帧相同的方式使用逆变换和逆量化块1004、帧内预测块1006或帧间预测块1008、运动补偿块1010和环内滤波块1012来对解码帧进行解码。
71.示例实施例
72.在一些实施例中,一种方法包括:由计算装置接收要编码的当前块;由计算装置将当前块分成多个子分区;由计算装置确定第一组参考像素;由计算装置并行地使用第一组参考像素处理多个子分区中的第一子分区并且使用第一组参考像素处理多个子分区中的第二子分区;以及由计算装置基于从第一子分区的处理确定的第二组参考像素来处理多个子分区中的第三子分区,并且基于从第二子分区的处理确定的第三组参考像素来处理多个子分区中的第四子分区。
73.在一些实施例中,第一组参考像素包括来自帧中的当前块的相邻块的像素。
74.在一些实施例中,第一组参考像素包括来自帧中的位于当前块的左边的左边块和位于当前块的顶部的顶部块的像素。
75.在一些实施例中,第一子分区位于沿着帧的边缘的第一位置,并且第二子分区不紧挨第一子分区。
76.在一些实施例中,第三子分区位于第一子分区与第二子分区之间。
77.在一些实施例中,第四子分区紧挨第二子分区。
78.在一些实施例中,第一组参考像素从不同于当前块的另一块的经解码像素生成。
79.在一些实施例中,第二组参考像素从第一子分区的经解码像素生成,并且第三组参考像素从第二子分区的经解码像素生成。
80.在一些实施例中,第二组参考像素从第一子分区的第一残差生成,并且第三组参考像素从第二子分区的第二残差生成。
81.在一些实施例中,并行地使用第一组参考像素处理第一子分区并且使用第一组参考像素处理第二子分区包括:从第一组参考像素生成第一预测像素;使用第一预测像素对第一子分区进行转码;从第二组参考像素生成第二预测像素;以及使用第二预测像素对第二子分区进行转码。
82.在一些实施例中,基于从第一子分区的处理确定的第二组参考像素来处理多个子分区中的第三子分区并且基于从第二子分区的处理确定的第三组参考像素来处理多个子分区中的第四子分区包括:从第二组参考像素生成第三预测像素;使用第三预测像素对第三子分区进行转码;从第三组参考像素生成第四预测像素;以及使用第四预测像素对第四子分区进行转码。
83.在一些实施例中,第二组参考像素从第一子分区的第一经解码像素和第一预测像
素生成,并且第三组参考像素从第二子分区的第二经解码像素和第二预测像素生成。
84.在一些实施例中,并行地使用第一组参考像素处理第一子分区并且使用第一组参考像素处理第二子分区包括:解码第一子分区;从第一组参考像素生成第一预测像素;从经解码第一子分区和第一预测像素生成第二组参考像素;解码第二子分区;从第二组参考像素生成第二预测像素;以及从经解码第二子分区和第二预测像素生成第三组参考像素。
85.在一些实施例中,一种非暂时性计算机可读存储介质,包含指令,这些指令在被执行时控制计算机系统可操作为:接收要编码的当前块;将当前块分成多个子分区;确定第一组参考像素;并行地使用第一组参考像素处理多个子分区中的第一子分区并且使用第一组参考像素处理多个子分区中的第二子分区;以及基于从第一子分区的处理确定的第二组参考像素来处理多个子分区中的第三子分区,并且基于从第二子分区的处理确定的第三组参考像素来处理多个子分区中的第四子分区。
86.在一些实施例中,第一组参考像素包括来自帧中的当前块的相邻块的像素。
87.在一些实施例中,并行地使用第一组参考像素处理第一子分区并且使用第一组参考像素处理第二子分区包括:从第一组参考像素生成第一预测像素;使用第一预测像素对第一子分区进行转码;从第二组参考像素生成第二预测像素;以及使用第二预测像素对第二子分区进行转码。
88.在一些实施例中,基于从第一子分区的处理确定的第二组参考像素来处理多个子分区中的第三子分区并且基于从第二子分区的处理确定的第三组参考像素来处理多个子分区中的第四子分区包括:从第二组参考像素生成第三预测像素;使用第三预测像素对第三子分区进行转码;从第三组参考像素生成第四预测像素;以及使用第四预测像素对第四子分区进行转码。
89.在一些实施例中,第二组参考像素从第一子分区的第一经解码像素和第一预测像素生成,并且第三组参考像素从第二子分区的第二经解码像素和第二预测像素生成。
90.在一些实施例中,并行地使用第一组参考像素处理第一子分区并且使用第一组参考像素处理第二子分区包括:解码第一子分区;从第一组参考像素生成第一预测像素;从经解码第一子分区和第一预测像素生成第二组参考像素;解码第二子分区;从第二组参考像素生成第二预测像素;以及从经解码第二子分区和第二预测像素生成第三组参考像素。
91.在一些实施例中,一种设备,包括:一个或多个计算机处理器;和包括指令的非暂时性计算机可读存储介质,这些指令在被执行时控制一个或多个计算机处理器可操作为:接收要编码的当前块;将当前块分成多个子分区;确定第一组参考像素;并行地使用第一组参考像素处理多个子分区中的第一子分区并且使用第一组参考像素处理多个子分区中的第二子分区;以及基于从第一子分区的处理确定的第二组参考像素处理多个子分区中的第三子分区,并且基于从第二子分区的处理确定的第三组参考像素处理多个子分区中的第四子分区。
92.一些实施例可以在非暂时性计算机可读存储介质中实施,以供指令执行系统、设备、系统或机器使用或与其结合使用。计算机可读存储介质包含用于控制计算机系统执行由一些实施例描述的方法的指令。计算机系统可以包括一个或多个计算装置。当由一个或多个计算机处理器执行时,指令可以被配置为或可操作为执行在一些实施例中描述的操作。
93.如在本文的描述中以及贯穿所附权利要求书所使用的,单数形式,“一”、“一个”和“该”包括复数引用,除非上下文明确另外规定。而且,如在本文的描述中以及贯穿所附权利要求书所使用的,“中”的含义包括“中”和“上”,除非上下文明确另外规定。
94.以上描述例示了各种实施例以及可以如何实施一些实施例的方面的示例。上述示例和实施例不应被认为是仅有的实施例,并且被呈现以例示如由所附权利要求限定的一些实施例的灵活性和优点。基于以上公开内容和所附权利要求,在不背离由权利要求限定的本发明的范围的情况下,可以采用其它布置、实施例、实施方案和等同物。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1