比特流解码器的制作方法

文档序号:24728814发布日期:2021-04-16 21:59阅读:174来源:国知局
比特流解码器的制作方法

1.本发明涉及图像编码和解码,并且特别地,本发明涉及一种解码代表图像的比特流的方法。


背景技术:

2.在图像或视频编解码器内,对空间冗余的利用使得可以对图像进行更有效的编码。最成功的帧内预测(intra

prediction)方案之一在于执行所谓的定向帧内预测。每个预测均被形成为一个或更多个参考样本的加权平均值;使用哪些参考样本的选择以及用于计算平均值的权重取决于特定的帧内预测方向。也存在帧内预测的非定向模式。本公开涉及帧内预测,并且应当相应地理解术语“预测”等的后续使用。
3.发明概述
4.根据本公开的至少一个方面,本文描述了一种在解码器中对代表图像的比特流进行解码的方法,其中,该比特流包括多个残差样本块,其中,通过将残差样本块添加到预测块来获得重构图像样本块,通过将所选预测过程应用于重构图像中的参考样本来形成预测,该方法包括以下步骤:接收比特流;对于每个块:形成预测;以及向每个残差样本添加相应的预测以形成重构图像样本;从重构图像样本中提供重构图像;以及输出重构图像;其中,形成当前块的预测的步骤包括:将第一定向或非定向预测模式应用于参考样本以形成当前块的至少第一组一个或更多个预测;将一个或更多个后续不同的定向或非定向预测模式应用于相同的参考样本,以形成当前块的至少一个后续组的一个或更多个预测,其中任何后续定向预测模式均与任何第一定向预测模式在预测的空间方向中不同;其中,以下预测参数中的至少一个是在解码器中针对当前块确定的,并且未在比特流中显式发信号通知:第一非定向预测模式;第一定向预测模式的方向;后续非定向预测模式;后续定向预测模式的方向;第一组预测在块中的位置;后续组预测在块中的位置。该方法允许使用不同的帧内预测模式和/或方向对块的不同部分中的样本进行解码,这使得能够进行更准确的预测,并且从而减少了所需的残差并减少了定义图像所需的比特数。该方法可以用于对视频流内的图像进行解码,使得可以以较低的比特率来发送图像。
5.优选地,比特流包括与预测有关的数据,例如,最终帧内预测模式和/或最终定向预测模式的方向的指示。
6.可选地,后续非定向预测模式是最终非定向预测模式和/或其中后续定向预测模式的方向是最终定向预测模式的方向。
7.优选地,基于相邻块内的对应参数来确定预测参数中的至少一个。优选地,该参数是在相邻块中使用的最终对应参数。这使得可以将第一方向和/或预测模式推断为先前块的方向和/或预测模式,使得不需要在比特流内发信号通知该第一方向和/或预测模式。
8.优选地,通过在一个方向和/或预测模式与另一不同方向和/或预测模式之间进行插值来确定预测参数中的至少一个。
9.优选地,通过在初始方向和/或预测模式与最终方向和/或预测模式之间进行插值
来确定预测参数中的至少一个。优选地,插值包括线性插值。
10.优选地,通过从查找表获得值来确定预测参数中的至少一个。查找表可以包括用于在以下至少一项之间进行插值的函数的指示:初始非定向预测模式和后续非定向预测模式;和/或初始定向预测模式的方向和后续定向预测模式的方向。
11.优选地,在给定不同的定向或非定向预测模式的情况下,比特流定义一种过程以得出一个或更多个后续的定向或非定向预测模式。
12.优选地,比特流包括与第一定向预测模式的方向和后续定向预测模式的方向之间的差有关的增量(delta)。
13.优选地,比特流包括与以下至少一项之间的差有关的增量:第一非定向预测模式和后续非定向预测模式;和/或初始定向预测模式的方向和后续定向预测模式的方向。
14.优选地,比特流包括非定向预测模式和定向预测模式之间的变化的指示,优选地,其中该指示识别发生变化的位置。
15.本文还公开了一种计算机程序产品,其适于使可编程设备实现根据前述权利要求中任一项的方法。
16.根据本文公开的另一方面,描述了一种用于解码代表图像的比特流的设备,其中,该比特流包括多个残差样本块,该设备包括:接收器,其被布置为接收比特流;处理器,其被布置为:对于每个块,形成预测;将相应的预测添加到残差样本以形成重构图像样本;从重构图像样本中提供重构图像;以及输出重构图像;其中被布置为形成预测包括被布置为:将第一定向或非定向预测模式应用于参考样本,以形成当前块的至少第一组一个或更多个预测;将一个或更多个后续不同的定向或非定向的预测模式应用于相同的参考样本,以形成当前块的至少一个后续组的一个或更多个预测,其中任何后续定向预测模式均与任何第一定向预测模式在预测的空间方向中不同;确定以下预测参数中的未在比特流中显式发信号通知的至少一个参数:第一非定向预测模式;第一定向预测模式的方向;后续非定向预测模式;后续定向预测模式的方向;第一组预测在块中的位置;后续组的预测在块中的位置。
17.可以提供一种计算机程序产品,其适于使可编程设备实现这些方法中的任何方法。
18.可以提供一种设备,其被配置为实现根据这些方法中的任何方法的方法。
19.通常,本公开至少涉及一种在视频帧的块内使用不同的帧内预测模式的方法,其中,该方法可用于利用块内的空间冗余并且导致比特流的大小减小。在示例中,使用不同的方向对块的每个样本进行帧内预测,其中可以基于例如在块的边界处使用的方向来推断方向的变化。
20.本文还描述了一种解码视频比特流的方法,该方法包括以下步骤:接收与视频帧有关的比特流;其中,比特流涉及多个像素块;确定与多个块中的一个块有关的初始帧内预测特征;确定块内的多个像素之间的帧内预测特征的变化;取决于所识别的初始帧内预测特征和所识别的帧内预测特征的变化,确定块内至少一个像素的帧内预测矩阵;其中,帧内预测矩阵可用于取决于参考像素组的参考值来预测至少一个像素的值。与像素的多个块有关可以包括包含与像素的值有关的残差。
附图说明
21.现在将参考附图通过示例的方式描述本发明,在附图中:
22.图1示出视频比特流解码器;
23.图2(a)

(b)示出使用传统定向帧内预测的示例性块预测;
24.图3(a)

(b)示出使用多定向帧内预测的示例性块预测;
25.图4示出推断初始方向的多定向帧内预测;
26.图5是用于执行多定向帧内预测的方法的流程图;
27.图6是用于推断帧内预测的方向的详细示例性方法的流程图;
28.图7是用于进一步推断将用于帧内预测的预测模式的方法的示例性流程图;以及
29.图8示出视频编码器。
具体实施方式
30.在图1中示出了典型的解码器,其中代表视频图像的比特流被接收和处理以获得视频流。解码器包括熵解码级102、逆量化级104和逆变换级106,经由它们通常顺序地处理接收到的比特流以获得残差。
31.将残差添加到相应的预测以获得形成输出视频流的输出图像。
32.在帧间预测的情况下,使用在比特流中指定的运动矢量,在解码图片缓冲区110中可用的一个或多个先前图像经历运动补偿112。
33.本公开涉及帧内预测块108,其通常使用在比特流内指定的帧内预测模式,如参考图2a和2b进一步详细描述的。
34.图2a示出传统的定向帧内预测的方法。将块内每个样本的值预测为从参考样本缓冲区中提取的参考样本的加权平均值。使用哪些参考样本的选择以及应用于每个参考样本的权重取决于指定的帧内预测方向。图2中使用的方向是“垂直向左”预测模式。也可以使用一系列其它定向模式,例如水平或“水平向下”和/或非定向帧内预测模式,诸如高效视频编码(hevc)标准的dc和平面模式。在与每个块相关的比特流中发信号通知要使用的模式。
35.例如,使用参考样本r1和r2的加权平均值来预测图中当前块的左上样本,在本示例中,参考样本r1和r2取自当前块上方的块。根据帧内预测模式指定的方向,样本r1将对预测具有更大的影响,这意味着其权重将高于计算平均值时应用于r2的权重。
36.dc帧内预测模式,其中一组参考样本的平均值(例如,图2a的r1

r4和对应垂直值)用于每个预测样本,并且平面帧内预测模式在本领域中是已知的。
37.这里的参考样本被示为从当前块上方的单行和左侧的单列获取。在一些实施例中,参考样本的组可以更大,例如,可以存在两个或更多个参考行或列。参考样本通常是从已经在解码器中重构的块中获得的,并且因此可用于预测当前块。传统上将此类块描绘为在当前块的上方或左侧。这并不排除其它块扫描方案中的操作或并行操作的程度。
38.图2b示出参考图2a描述的帧内预测方法,该帧内预测方法用于预测包含弯曲对象的块内的值。传统的帧内预测利用应用于参考样本的单一定向模式来预测当前块,从而导致在图2b的右侧所示的定向帧内预测。该预测与块的实际内容实质上不同,从而在压缩关联的比特流时会导致较高的残差并因此导致较高的比特率。
39.图3a示出如本文所描述的多定向帧内预测方法,其由利用不同的帧内预测模式
和/或不同的帧内预测方向来预测块的不同区域中的样本构成。该方法可用于获得更接近实际块内容的帧内预测块。
40.多定向帧内预测不需要将任何附加样本加载到帧内预测缓冲区中(因此具有与传统定向预测相同的内存要求),并且可以针对块中的每个样本使用传统帧内预测中使用的相同插值滤波器。此外,该过程不会在解码器侧引入任何附加相关性,因此不会影响解码器的吞吐量。该过程对解码器复杂度的影响非常有限,因为执行多定向帧内预测需要与传统定向预测相同数量的插值。
41.使用执行多定向帧内预测的示例性方法获得的预测如图3b中所示,该图考虑了基于图2b内所示的当前块和参考样本的预测。这里说明了如何使用不同的预测方向来实现比图2b的传统帧内预测更接近的预测以及相应地更低的残差。
42.在一些实施例中,可以通过定义“开始帧内预测模式”和“最终帧内预测模式”来使用多定向帧内预测,这可以用于减少与多定向帧内预测相关联的比特率。在不失一般性的前提下,参考图3a描述了涉及垂直方向的实施例。该方法通过逐渐改变预测块中每行中的预测方向来工作。更一般地,可以将相同的过程应用于水平方向,以将预测块中的行替换为列。
43.在该实施例中,以垂直帧内预测模式来预测当前块;也使用垂直帧内预测模式预测当前块顶部的块。上方块中的对象可能会以一定曲率继续在当前块中传播。通过使用从顶部的块中提取的帧内预测模式来定义当前块的“开始帧内预测模式”,并适当地发信号通知“最终帧内预测模式”(例如,遵循传统帧内预测模式信令),可以执行预测以紧密跟随块中对象的曲率。更具体地,可以定义方向的矢量d,其中矢量的长度对应于块中的行数h。矢量中的每个元素都包含用于预测给定行的方向。矢量中的第一元素设定为上方块的方向,即d(1)=d
above
。矢量中的最后一个元素设定为在比特流中发信号通知的帧内预测模式,或d(h

1)=d
signalled
。可以使用通过加上或减去一个步长(step)而获得的增大或减小的方向来计算介于两者之间的元素,该步长是通过开始和最终模式之间的差异以及当前块的高度h而获得的。不同的技术可用于计算d的元素。
44.所描述方法的该实施例可以以单个附加二进制标志为代价提供准确的预测,该标志用于发信号通知是否在给定块上使用了该技术。在考虑水平预测的情况下可以应用相同的方法,在这种情况下,可以在使用水平模式来预测当前块紧密左侧上的块的情况下应用该方法。在图4中示出了示例性方法。应当注意,解码器已经要求了计算矢量d所需的信息,即相邻块的帧内预测模式,来计算从比特流解析帧内预测模式时使用的最可能模式的列表,并且因此使用该信息不会给解码器增加任何附加依赖性。
45.在相邻块不可用或使用不能用作“开始帧内预测模式”的模式进行预测的情况下,可以使用附加参考来启用多定向帧内预测。在一些实施例中,查找表用于识别“开始帧内预测模式”的集合,在其它实施例中,默认的“开始帧内预测模式”由解码器1和/或在比特流内定义。
46.在各种实施例中,针对各种情况(例如,不同的块大小或不同的最终帧内预测模式)的块构造特定的查找表。在这些情况下,除了用于发信号通知是否使用多定向帧内预测的标志之外,还会发信号通知索引以选择表中的正确元素。
47.一些实施例考虑从“最终帧内预测模式”加上或减去的固定增量,以获得“开始帧
内预测模式”。在这种情况下,除了用于发信号通知是否使用多定向帧内预测的标志外,还应在比特流中发送附加标志,以发信号通知要使用哪个开始帧内预测(“最终+增量”还是“最终

增量”)。信令应该考虑到所获得的“开始帧内预测模式”不是有效方向的情况,在这种情况下,不需要附加信令。可以取决于块的特定特性(诸如例如宽度和高度)或当前使用的“最终预测模式”来定义值“增量”。值“增量”也可以在比特流内定义。
48.多个实施例的特征可以组合在一起以定义解析执行多定向帧内预测所需的信息的方法。在比特流的解析期间,与相邻块有关的信息在解码器侧可用,并且因此解码器可以利用该信息来确定与多定向帧内预测有关的要解码的比特数。
49.所描述的方法不同于通过将当前块划分为较小的块,并且然后在每个分区中使用不同的帧内预测模式而获得的方法,不仅仅因为使用单个块并改变块内的方向允许解码器在描述方向性所需的信令方面以非常小的开销来执行预测。在所描述的一些实施例中,推断出在块的许多行中应用的方向,并且因此不需要从比特流中解析任何附加的信令。此外,将块划分为较小的块将要求编解码器执行附加操作(以便重构子块中的每个子块)。相反,使用所提出的方法不会在重构方面增加任何开销,相对于应用于整个块的传统帧内预测,保持解码器复杂度几乎不变。最后,所提出方法的一些变型利用从相邻块中提取的信息来改变当前块内预测的方向性,这在传统的帧内预测中不使用,在传统的帧内预测中,预测的方向在整个预测块内保持不变。
50.图5示出用于计算帧内预测样本的方法的流程图。
51.在第一步骤502中,检测初始帧内预测模式。在一些实施例中,这包括检测所接收的比特流内的识别帧内预测模式的部分。在该实施例中,检测初始帧内预测模式包括检测用于前一块的帧内预测模式。
52.在第二步骤504中,检测增量值。在一些实施例中,这包括检测所接收的比特流内的包括增量值的部分。在一些实施例中,这包括例如通过接收到的比特流的一部分检测最终帧内预测模式。增量值指定要在样本之间使用的帧内预测模式的变化,例如,增量值可以指定应用于参考样本和/或预测方向的权重的变化。
53.在第三步骤506中,使用初始帧内预测模式和检测到的增量值来预测当前块的样本值。
54.图6呈现用于在解码器1处解析执行多定向帧内预测所需的信息的示例性流程图。
55.在第一步骤602中,解码器1解析当前块d
curr
的当前帧内预测模式。如果检测到的模式对应于禁用多定向帧内预测的模式之一,则解码器不解析任何附加比特,并执行传统帧内预测612。
56.如果当前帧内预测模式对应于启用多定向帧内预测的模式之一,则在第二步骤604中,解码器1解析标志b
mip
以选择是否执行多定向帧内预测。如果b
mip
==假,则解码器执行传统帧内预测612。
57.如果设定了多定向帧内预测标志,则在第三步骤606中,将要在多定向帧内预测中使用的“最终帧内预测模式”d
final
设定为等于针对当前块所解析的帧内预测模式:d
final
=d
curr

58.如果d
curr
被分类为“垂直帧内预测模式”,则解码器访问关于在当前块顶部的相邻块中使用的帧内预测模式的信息。如果该信息可作为d
top
获得并且如果d
top
被分类为“垂直
帧内预测模式”,则解码器1将“开始帧内预测模式”设定为该模式,或者d
start
=d
top

59.如果d
curr
被分类为“水平帧内预测模式”,则解码器1访问关于在当前块左侧的相邻块中使用的帧内预测模式的信息。如果该信息可作为d
left
获得,并且如果d
left
被分类为“水平帧内预测模式”,则解码器1将“开始帧内预测模式”设定为该模式,或者d
start
=d
left

60.在第四步骤608中,解码器1推断出取决于当前块大小和d
final
的值增量(δ)。
61.在一些实施例中,解码器1考虑两个可能的“开始帧内预测模式”候选d
start,1
=(d
final
+δ)和d
start,2
=(d
final

δ)。如果d
start,1
不是有效的定向帧内预测模式,则解码器1将“开始帧内预测模式”设定为d
start
=d
start,2
。如果d
start,2
不是有效的定向帧内预测模式,则解码器1将“开始帧内预测模式”设定为d
start
=d
start,1
。在一些实施例中,解码器1解析附加标志b
mip_dir
。如果b
mip_dir
==0,则d
start
=d
start,1
,否则d
start
=d
start,2

62.在一些实施例中,将值δ推断为开始和最终帧内预测模式之间的差或其因数,即δ=d
final

d
start

63.在第五步骤610中,解码器1利用d
final
、d
start
以及块的宽度和高度来计算方向的矢量d,该矢量d针对每个样本指定帧内预测方向。解码器1使用d执行多定向帧内预测并退出该循环。
64.在一些实施例中,推断增量值608可以包括推断帧内预测模式,参考图7描述了其方法。更一般地,推断帧内预测模式可以包括在初始帧内预测模式和最终帧内预测模式之间的插值。
65.图7示出用于推断帧内预测模式的方法的示例性流程图。
66.在第一步骤702中,解码器1检测先前的帧内预测模式。例如,这可以是已应用于当前块左侧的块或当前块顶部的块的模式。
67.在第二步骤704中,检测最终的帧内预测模式。在该实施例中,在由解码器1接收的比特流中发信号通知最终帧内预测模式。
68.在第三步骤706中,检测距离参数。在该实施例中,该距离参数被编码在比特流中。在一些实施例中,从初始帧内预测模式和最终帧内预测模式推断出距离参数。
69.距离参数指示第k个样本,该第k个样本是预测模式从初始预测模式变化为最终预测模式的样本。通常,该距离参数是块的比例或样本的数量(例如行或列)。
70.在第四步骤708中,针对块的第一部分推断第一增量值,该第一部分包括在第k个样本之前的样本。如参考图6的第四步骤608所描述的,该推断继续进行。推断增量值通常包括在初始帧内预测模式和最终帧内预测模式之间进行插值。
71.在第五步骤710中,解码器推断第二增量值。如参考图6的第四步骤608所描述的,该推断继续进行。
72.通常,第一增量值和第二增量值的推断取决于所指定的帧内预测模式。作为示例,在初始帧内预测模式是dc模式并且最终帧内预测模式是定向模式的情况下,第一增量值等于零,即,第k个样本之前的每个样本是参考样本的平均值。通过在dc模式和最终方向模式之间进行插值来推断第二增量值。
73.类似地,在最终帧内预测模式是dc模式并且初始帧内预测模式是定向模式的情况下,第二增量值等于零,并且通过在初始定向模式和dc模式之间进行插值来推断第一增量值。
74.在一些实施例中,定义了第k个样本,在该样本处推断方法发生变化。可以检测初始定向帧内预测模式和最终定向帧内预测模式以及距离参数,该距离参数指示第k个样本,在该样本处增量推断方法从例如线性插值变化为指数插值。
75.在一些实施例中,在解码器1接收的比特流内指定每个增量值。
76.图8示出编码器8,其可用于获得参考图1描述的解码器1可读的比特流。
77.输入视频流具有执行的帧内预测估计802和/或运动估计806,其识别空间和/或时间冗余。这些导致帧内预测804和运动预测808,该运动预测取决于来自图片缓冲区810的图片,该图片缓冲区810保存与由编码器8编码的先前帧等效的图片。
78.帧内预测804和/或运动预测808与输入视频组合,并且然后进行变换812、量化814和熵编码816以获得比特流。变换的812和量化的814数据流经历逆量化818和逆变换820以获得参考帧,该参考帧被图片缓冲区810用于后续帧。
79.在各种实施例中,帧内预测阶段包括以下一项或更多项:指定是否正在使用多定向帧内预测的比特;指定要使用的初始预测模式和最终预测模式中的至少一种的部分;定义要使用的推断/插值方法的部分;指示帧内预测模式发生变化的第k个样本的部分。
80.替代和修改
81.在各种实施例中,如本文所使用的块指代预测单元(pu)、编码单元(cu)和/或变换单元(tu),例如,如2018年2月13日的hevc/h.265第5版标准中所定义的。更一般地,块可以指任何像素组。优选地,块是指一组连接的像素,其中这些像素可以在空间上连接。
82.在一些实施例中,块涉及出于帧内预测的目的共享公共参考样本的一组像素。这不需要直接从参考样本中预测块内的每个像素值;在一些实施例中,可以使用同一块内的其它像素值来预测块内的像素值,而使用公共参考样本来预测那些其它像素值。在这些实施例中,预测像素值可各自被认为是从参考样本得出的。
83.详细描述主要考虑了本文所描述的用于确定针对块执行的帧内预测的方向的变化的方法,并且该方法在本文中已被描述为多定向帧内预测。更一般地,该方法可用于指定帧内预测模式内的变化。作为示例,可以使用“垂直左”预测模式来预测块中的初始样本,并且可以使用dc帧内预测模式来预测最终样本。在块内,这些模式之间可能会平滑过渡,或者可以使用查找表定义模式之间的过渡。这样,对于多定向帧内预测,方向中可能没有变化,例如,模式中可能存在变化。
84.在使用查找表的实施例中,可以以各种方式来寻址该表,例如,所接收的比特流内的第一比特串可以指代最终帧内预测模式,而第二比特串可以指代过渡方法(例如线性、指数)。初始帧内预测模式可以被包括在该比特流内或例如从相邻的块被推断出。
85.尽管已经参考用于视频流内的帧描述了该方法,但是该方法可以类似地用于静止图像,诸如那些符合联合图像专家组(jpeg)标准的图像。
86.在已经参考预测模式的方向描述了该方法的情况下,应当理解,这可以是任何方向,并且不限于传统定向预测模式的方向。例如,尽管2018年2月13日的hevc/h.265第5版本标准考虑了33种角度模式,并且这些可能是传统编码器/解码器指定的模式,但应理解,本文所使用的方法可以与不在此标准或其它标准内的预测定义一起使用。在确定帧内预测的初始和/或最终方向对应于这些标准模式之一的情况下,帧内预测的中间方向不必限于标准模式(在一些实施例中,这些中间非标准方向也可以被视为帧内预测模式的方向)。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1