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

实现高效率的基于分区的帧内编码构思的制作方法

2021-11-27 04:55:00 来源:中国专利 TAG:


1.本技术涉及用于基于块的编解码器(例如混合视频编解码器)中的帧内编码构思。


背景技术:

2.给定某个块,遵循某些模式(即33个角度模式以及dc和平面模式[1]),通过对相邻块的经解码的边界样本进行外插来在hevc中执行帧内预测。然后将最小化率失真成本的一个帧内预测模式以信号通知给解码器。尽管已知的编解码器支持许多帧内预测模式(ipm),但是由此实现的帧内预测仍然是开发的主题,以找到引起更高编码效率的更好的帧内预测子。这不仅适用于hevc,还适用于其他使用帧内预测的基于块的编解码器。找到适合对块的内部进行有效编码的帧内预测模式的集合需要考虑以信号通知帧内预测模式在信令开销方面的开销以及通过这些帧内预测模式获得的预测子的所得质量,这是由于更准确的预测子减少了预测残差的事实,由此减少了与对预测残差进行编码相关联的信令开销。为了将与帧内预测模式相关联的信令开销保持较低,帧内预测块应当较大,即以信号通知帧内预测模式的粒度应当保持粗糙,但另一方面,较大块的空间预测由于帧内预测块的内部的样本(即要预测的样本)与相邻于该块的已解码/编码样本(即参考样本)的平均样本距离较高,而趋于不太准确。hevc通过允许变换残差块继承其对应编码单元的帧内预测模式来稍微减轻这种两难境地(catch

22),变换残差块相对于对应编码单元形成叶块,通过多树细分将编码单元细分为这些叶块。然而,这仍然需要用于从编码器向解码器信号通知将各个帧内编码的编码单元细划分为变换块的信令开销。
[0003]
在新开发的多功能视频编码(vvc)标准中,帧内子分区(isp)编码模式提出了一种新开发的帧内编码构思,但是这里需要提高实现效率。
[0004]
因此,目前有利的构思是,以可比的编码效率进一步提高帧内编码的实现效率。


技术实现要素:

[0005]
因此,本发明的目的是提供一种更有效的用于帧内编码的构思。
[0006]
该目的是通过本技术的独立权利要求的主题来实现的。
[0007]
本发明的有利方面是从属权利要求的主题。
[0008]
根据本发明的第一方面,本技术的发明人认识到,在结合帧内编码使用细划分时遇到的一个问题是,考虑到所得子分区大小、所需的(例如每循环16个样本的)最小吞吐量和/或每编码循环的最小编码宽度提前(例如每个预测最少4个样本宽度提前),针对其单独进行预测的每个块的子分区的数量应当是有限的。这些想法导致了为帧内编码(预定)块构建标志控制的帧内预测模式/决策的构想,这导致在预测残差变换方面对该预定块进行划分,而在帧内预测方面进行细划分,即,预定块是否以整体方式(一次全部)进行帧内预测,或者变换分区是否用于中间使用预测残差的顺序和分区方式的帧内预测,以及刚刚帧内预测的子分区的校正也同样用于对下一子分区进行帧内预测,或者是否可以根据需要自由实现这样的预测子分区的变换分区组,例如根据目标块大小呈现后一种选择,例如,以避免帧
内预测导致每个执行的帧内预测的样本太少或帧内预测宽度提前太少。请注意,变换分区的编码和解码可以在变换分区之间独立完成,即变换分区可以并行编码/解码,由此不会引起每循环的任何最小样本或每循环的宽度提前问题。这使得能够将帧内预测块划分为具有例如少于16个样本的分区,这是因为可以在同一循环中对多于一个分区进行帧内预测和重构。如果在同一循环中编码或解码的所有子分区一起包括至少16个样本,则是有利的。同样,根据本文描述的变型,编码的编码支持许多块大小,并且取决于预定的帧内预测块的大小和/或取决于其宽度和/或高度,解码器和编码器在预测方面设置划分,以产生以下选项之一:
[0009]
1)全局帧内预测块,即全部(一次)或作为一个整体(换言之,例如一次预测整个预定块,或甚至换言之,基于排他地位于预定块之外的相邻样本来预测该预定块内的所有样本,并且独立地处理预定块的变换分区(即在每个变换分区内按区域执行变换)),和/或
[0010]
2)以变换分区为单位的顺序帧内预测,这些变换分区然后还充当预测子分区(换言之,例如预测变换分区,编码/解码该变换分区的预测残差,同时获得该变换分区内的重构样本,然后使用针对在前变换分区获得的重构样本来预测预定块中的下一变换分区,编码/解码该下一变换分区的预测残差,等等),和/或
[0011]
3)以变换分区组为单位的顺序帧内预测(每个变换分区恰好属于一个分区组)(换言之,例如基于排他地位于预测子分区之外的相邻样本来预测变换分区组(即预测子分区),编码/解码该预测子分区的预测残差,同时以该预测子分区内的变换分区为单位获得该预测子分区内的重构样本(即在每个变换分区内按区域执行变换),然后使用重构样本来预测预定块中的下一变换分区组(即下一预测子分区),重构样本包括针对在前预测子分区获得的样本但不包括位于该下一预测子分区内部的样本,以变换分区为单位编码/解码该下一预测子分区的预测残差,等等)。
[0012]
因此,根据本技术的第一方面,一种用于从数据流中基于块地解码图片的解码器,被配置为从数据流中解码图片的预定块的帧内编码模式。解码器被配置为从数据流中解码图片的预定块的划分维度标志,并且根据划分维度标志将划分维度设置为水平或垂直。换言之,划分维度标志指示划分维度为水平还是垂直。解码器被配置为沿着预定维度(即沿着划分维度)将预定块划分为变换分区,变换分区在垂直于预定维度的方向上与预定块一样宽。如果划分维度为垂直,则变换分区可以与垂直堆叠的水平块相关联,并且如果划分维度为水平,则变换分区可以与水平并排布置的垂直块相关联。对于每个变换分区,解码器被配置为从数据流中解码预测残差的变换。此外,解码器被配置为以取决于帧内编码模式的方式,根据与预定块相邻的一个或多个已重构样本对预定块进行帧内预测,以获得预定块的预测子,并且通过使用针对相应变换分区解码的预测残差的变换来校正每个变换分区内的预测子,以重构预定块。
[0013]
根据第一选项,解码器被配置为针对变换分区,逐一地顺序进行预测子的帧内预测,并且通过使用针对相应变换分区解码的预测残差的变换来校正每个变换分区内的预测子,以重构变换分区。
[0014]
根据第二备选选项,解码器被配置为针对每个变换分区,进行预测子的帧内预测,并且针对每个变换分区,从数据流中解码预测残差的变换。然后,解码器被配置为通过使用针对相应变换分区解码的预测残差的变换来校正预测子,以重构预定块。因此,首先对所有
预测子进行帧内预测并且对预测残差的所有变换进行解码,然后通过使用针对相应变换分区解码的预测残差的变换来校正每个变换分区内的预测子,以重构所有变换分区。因此,例如,在一个步骤中,校正了所有预测子。
[0015]
相反,根据第一选项,逐一地重构变换分区。换言之,根据第一选项,对于当前变换分区,对预测子进行帧内预测和校正,然后对于后续变换分区,对新的预测子进行帧内预测和校正。
[0016]
根据第三备选选项,解码器被配置为在一个步骤中对整个预定块进行帧内预测,以获得预测信号(即预测子),并且将该预测信号分为例如用于预定块的变换分区的预测子。根据实施例,每个预测子与不同的变换分区相关联。例如,变换分区由解码器独立处理。因此,例如,解码器被配置为针对每个变换分区,从数据流中解码预测残差的变换,并且通过使用针对相应变换分区解码的预测残差的变换来校正预测子,以重构预定块。备选地,这不针对整个块一次执行,而是对可以进一步划分为变换分区的预定块的子分区执行。在这种情况下,例如,解码器被配置为在一个步骤中对预定块的子分区进行帧内预测,以获得预测信号(即,预测子),并且将该预测信号分为例如用于预定块的子分区的变换分区的预测子。
[0017]
根据实施例,解码器被配置为根据块大小将预定块分为子分区,其中建立最小预测宽度4以降低硬件实现复杂度。本发明不受解码器执行的不同划分的以下示例的限制。清楚的是,其他子分区和/或变换分区也能够由解码器实现。
[0018]
·4×
4块(示例1)
[0019]
ο水平分割:一个4
×
4 pu(预测单元)和四个独立的4
×
1 tu(变换单元)。
[0020]
ο垂直分割:一个4
×
4 pu和四个独立的1
×
4 tu。
[0021]
换言之,一次预测整个4
×
4块,然后将其分为四个变换分区,以独立处理。
[0022]
·8×
4块(示例2)
[0023]
ο水平分割:两个8
×
2 pu和四个8
×
1 tu。使用第二tu的重构样本来预测第二pu。
[0024]
ο垂直分割:两个4
×
4 pu和四个2
×
4 tu。使用第二tu的重构样本来预测第二pu。
[0025]
换言之,将8
×
4块分为两个子分区(即pu),将每个子分区分为两个变换分区,以独立处理。
[0026]
·4×
8块(示例3)
[0027]
ο水平分割:两个4
×
4 pu和四个4
×
2 tu。使用第二tu的重构样本来预测第二pu。
[0028]
ο垂直分割:一个4
×
8 pu和四个独立的1
×
8 tu。
[0029]
换言之,在水平分割时,将4
×
8块分为两个子分区(即pu),将每个子分区分为两个变换分区,以独立处理,在垂直分割时,一次预测整个4
×
8块,然后将其分为四个变换分区,以独立处理。
[0030]
·4×
8块(示例3’;示例3的备选方案)
[0031]
ο水平分割(在预测以及变换残差编码/解码方面与子分区的处理相比没有修改):使用两个4
×
4 pu,它们同时形成两个4
×
4 tu。使用第一pu的重构样本来预测第二pu。
[0032]
ο垂直分割(修改):一个4
×
8 pu和两个独立的2
×
8 tu。
[0033]
换言之,在水平分割时,将4
×
8块分为两个子分区(即pu),每个子分区最终成为一个变换分区,在垂直分割时,一次预测整个4
×
8块,然后将其分为两个变换分区,以独立处
理。
[0034]
·4×
m块(示例4)
[0035]
一次预测整个4
×
m块,然后将其分为四个1
×
m变换分区,以独立处理。
[0036]
·4×
m块(示例4’;其中m>8)
[0037]
ο水平分割(在预测以及变换残差编码/解码方面与子分区的处理相比没有修改):以四个4
×
(m/4)pu预测4
×
m块,每个pu同时是四个变换分区之一
[0038]
ο垂直分割:一次预测整个4
×
m块,然后将其分为四个1
×
m变换分区,以独立处理。
[0039]
·8×
n块(示例5)
[0040]
将8
×
n块分为两个4
×
n子分区,这两个子分区可以进一步被分为四个1
×
n变换分区。
[0041]
·8×
n块(示例5’;其中n>4)
[0042]
ο水平分割(在预测以及变换残差编码/解码方面与子分区的处理相比没有修改):将8
×
n块分为四个8
×
(n/4)子分区(为了预测以及变换残差编码/解码)。
[0043]
ο垂直分割:将8
×
n块分为两个4
×
n分区(为了预测),这两个子分区可以进一步被分为两个2
×
n变换分区。
[0044]
上面概述的示例涉及不同的块大小并且可以单独地、完全地或者它们中的两个或更多个组合地应用于根据对应实施例的编解码器(即分别应用于解码器和编码器)。可以看出,根据实施例,对于至少一个预定块大小(例如比较示例3至5),根据分割方向,如何在上述选项1至3(1至3中的两个)中进行选择的判定可以有所不同:虽然为水平分割选择了一个选项,例如选项2,其中每个tu也是pu,pu的数量和tu的数量因此相同,但是对于垂直分割可以选择不同的选项,例如选项1,其中整个块充当pu,但被分为若干tu,pu的数量和tu的数量因此不同,或者选项3,其中预定块被分为pu,每个pu又被分为tu,pu的数量和tu的数量因此不同。附加地或备选地,对于另一块大小(比较示例2),无论分割方向如何,该判定都可以最终是相同的选项。因此,刚刚提到的选项之中选择对分割方向的相关性因此可以避免已经提到的块大小方向,但是自然,它可以在没有后者的情况下适用。
[0045]
根据本发明的实施例涉及一种用于将图片基于块地编码到数据流中的编码器,被配置为将图片的预定块的帧内编码模式编码到数据流中。编码器被配置为将图片的预定块的划分维度标志编码到数据流中,划分维度标志以信号通知要将划分维度将被设置为水平或垂直。换言之,划分维度标志指示划分维度为水平还是垂直。编码器被配置为沿着预定维度(即沿着划分维度),将预定块划分为变换分区,变换分区在垂直于预定维度的方向上与预定块一样宽。如果划分维度为垂直,则变换分区可以与垂直堆叠的水平块相关联,并且如果划分维度为水平,则变换分区可以与水平并排布置的垂直块相关联。此外,编码器被配置为以取决于帧内编码模式的方式,根据与预定块相邻的一个或多个已重构样本对预定块进行帧内预测,以获得预定块的预测子。对于每个变换分区,编码器被配置为将预测残差的变换编码到数据流中,使得能够通过使用针对相应变换分区编码的预测残差的变换来校正每个变换分区内的预测子,以重构预定块。
[0046]
如上所述的编码器以及由本文描述的任何编码器和解码器执行的方法以及由本文描述的任何编码器执行的方法生成的数据流基于与如上所述解码器相同的考虑。顺便说一下,这些方法可以用所有特征和功能来完成,这些特征和功能也关于解码器和/或编码器
进行了描述。
附图说明
[0047]
以下参照附图描述本技术的优选实施例,其中:
[0048]
图1示出了用于对图片进行预测编码的装置的框图,作为能够实现isp构思的编码器的示例;
[0049]
图2示出了用于对图片进行预测解码的装置的框图,适于图1的装置,作为能够实现isp构思的解码器的示例;
[0050]
图3示出了说明预测残差信号、预测信号和重构信号之间的关系的示例的示意图,以便说明针对编码模式选择、变换选择和变换性能分别设置细分的可能性;
[0051]
图4示出了说明根据isp变型对帧内编码快进行划分处理的示意图,isp变型允许在不同划分维度(即水平分割和垂直分割)之间进行选择;
[0052]
图5示出了说明isp编码块的分区的顺序处理的示意图;
[0053]
图6示出了说明分区的填充过程的预测导出的示意图;
[0054]
图7说明了分别根据水平分割模式和垂直分割模式分割且分别具有与其相关联的两个不同的帧内预测模式的isp块的示例,以便说明在与帧内预测块相关联的帧内预测模式上呈现分区顺序的相关确定的可能性;
[0055]
图8示出了说明使用划分选项处理的帧内预测块80所花费的可能信号化的示意图;
[0056]
图9示出了说明发送分区的预测残差的可能方式的示意图;
[0057]
图10示出了说明与帧内预测模式的分区有关的编码成本的部分总和确定的示意图,以便为了能够在显然不会变得比任何正常的帧内预测模式更好时中止测试;以及
[0058]
图11示出了为了执行划分模式测试的编码器的模式或操作的流程图;以及
[0059]
图12示出了说明实现了本发明的isp构思的用于图片的基于块的解码的解码器的示意图;
[0060]
图13示出了说明最后位置语法元素的使用的示意图;
[0061]
图14示出了说明实现了本发明的isp构思的用于图片的基于块的解码的编码器的示意图;
[0062]
图15a至图15d示出了说明垂直分割的4
×
4块的各个变换分区的帧内预测的示意图;
[0063]
图16a至图16d示出了说明水平分割的4
×
4块的各个变换分区的帧内预测的示意图;
[0064]
图17示出了说明垂直分割的4
×
8块的各个变换分区的帧内预测的示意图;
[0065]
图18示出了说明水平分割的8
×
4块的各个变换分区的帧内预测的示意图;
[0066]
图19a示出了vvc草案5(左)和提案版本(右)中的isp设计中的4
×
m块(m>8)的垂直分割;以及
[0067]
图19b示出了vvc草案5(左)和提案版本(右)中的isp设计中的8
×
n块(n>4)的垂直分割;
[0068]
附图不一定按比例绘制,而是一般侧重于说明本发明的原理。
具体实施方式
[0069]
附图的以下描述从用于对视频的图片进行编码的基于块的预测编解码器的编码器和解码器的描述的呈现开始,以便形成对可以内置帧内预测编解码器的实施例的编码框架的示例。参考图1至图3描述前述编码器和解码器。在下文中,将isp构思的变型的描述与关于如何将这些构思分别构建到图1的编码器和图2的解码器中的描述一起呈现,尽管利用图4和图4之后的图描述的构思也可以用于形成不根据图1的编码器和图2的解码器下的编码框架进行操作的编码器和解码器。稍后,将描述利用isp,但在实现效率方面得到提高的实施例。此外,描述了利用基于分区的帧内编码的变型的实施例。
[0070]
图1示出了一种装置,用于示例性地使用基于变换的残差编码将图片12预测编码到数据流14中。使用附图标记10指示该装置或编码器。图2示出了对应的解码器20,即被配置为也使用基于变换的残差解码从数据流14中预测解码图片12’的装置20,其中,撇号已被用于指示由解码器20重构的图片12’在通过预测残差信号的量化引入的编码损失方面偏离了由装置10进行原始编码的图片12。图1和图2示例性地使用基于变换的预测残差编码,尽管本技术的实施例不限于这种预测残差编码。对于参照图1和图2描述的其他细节也是如此,这将在下文中概述。
[0071]
编码器10被配置为对预测残差信号进行空间到频谱变换,并将由此获得的预测残差信号编码到数据流14中。同样,解码器20被配置为从数据流14中解码预测残差信号,并对由此获得的预测残差信号进行频谱到空间变换。
[0072]
在内部,编码器10可以包括预测残差信号形成器22,预测残差信号形成器22生成预测残差24,以便测量预测信号26与原始信号(即图片12)的偏差。预测残差信号形成器22可以例如是减法器,其从原始信号(即图片12)中减去预测信号。然后,编码器10还包括变换器28,变换器28对预测残差信号24进行空间到频谱变换,以获得频谱域预测残差信号24’,然后由也包括在编码器10中的量化器32对频谱域预测残差信号24’进行量化。由此量化的预测残差信号24”被编码到比特流14中。为此,编码器10可以可选地包括熵编码器34,熵编码器34将经变换和量化的预测残差信号熵编码到数据流14中。预测残差24由编码器10的预测级36基于编码到数据流14中并可从数据流14解码的预测残差信号24”生成。为此,如图1所示,预测级36可以在内部包括反量化器38,反量化器38对预测残差信号24”进行反量化,以便获得除了量化损失之外与信号24’相对应的频谱域预测残差信号24
”’
,预测级36随后包括逆变换器40,逆变换器40对后一预测残差信号24
”’
进行逆变换,即频谱到空间变换,以获得除了量化损失之外与原始预测残差信号24相对应的预测残差信号24
””
。然后,预测级36的组合器42例如通过加法来将预测信号26和预测残差信号24
””
重新组合,以便获得经重构的信号46,即原始信号12的重构。经重构的信号46可以与信号12’相对应。然后,预测级36的预测模块44通过使用例如空间预测(即帧内预测)和/或时间预测(即帧间预测)来基于信号46生成预测信号26。
[0073]
同样,解码器20可以在内部由与预测级36相对应的组件组成,并以与预测级36相对应的方式互连。具体地,解码器20的熵解码器50可以从数据流中熵解码经量化的频谱域预测残差信号24”,于是以上述参考预测阶段36的模块描述的方式互连和协作的反量化器52、逆变换器54、组合器56和预测模块58基于预测残差信号24”恢复经重构的信号,使得如图2所示,组合器56的输出产生经重构的信号,即图片12’。
[0074]
尽管上面没有具体描述,但是容易清楚,编码器10可以根据诸如以优化一些率失真标准的方式的一些优化方案来设置一些编码参数,包括例如预测模式、运动参数等。例如,编码器10和解码器20以及对应的模块44、58分别可以支持不同的预测模式,例如帧内编码模式和帧间编码模式。编码器和解码器在这些预测模式类型之间切换的粒度可以分别与将图片12和12’细分为编码片段或编码块相对应。例如,以这些编码片段为单位,可以将图片细分为帧内编码块和帧间编码块。如下文更详细概述的,帧内编码块是基于各个块的空间上的已经编码/解码的邻域进行预测的。可以存在包括方向性或角度帧内编码模式在内的若干帧内编码模式,并为各个帧内编码的片段选择帧内编码模式,根据该帧内编码模式,通过沿着特定于各个方向性帧内编码模式的某个方向,将邻域的样本值外插到相应的帧内编码的片段中来填充各个片段。帧内编码模式还可以例如包括一种或多种其他模式,例如dc编码模式和/或平面帧内编码模式,根据dc编码模式,对各个帧内编码块的预测将dc值分配给各个帧内编码片段内的所有样本,根据平面帧内编码模式,各个块的预测被近似或确定为由二维线性函数描述的在各个帧内编码块的样本位置上的样本值的空间分布,其中基于相邻样本来导出由二维线性函数定义的平面的斜率和偏移。与此相比,可以例如在时间上预测帧间编码块。对于帧间编码块,可以在数据流中以信号通知运动矢量,运动矢量指示图片12所属的视频的先前编码的图片中的部分的空间偏移,在该位置对先前编码/解码的图片进行采样,以便获得各个帧间编码块的预测信号。这意味着,除了由数据流14包括的残差信号编码,如表示经量化的频谱域预测残差信号24”的经熵编码的变换系数水平之外,数据流14可以在其中编码用于将编码模式分配给各个块的编码模式参数、用于一些块的预测参数(例如用于帧间编码片段的运动参数)、以及可选的其他参数(例如用于控制和以信号通知将图片12和12’分别细分为片段的参数)。解码器20使用这些参数以与编码器相同的方式细分图片,将相同的预测模式分配给片段,并且执行相同的预测以产生相同的预测信号。
[0075]
图3说明了一方面的经重构的信号,即经重构的图片12’,与另一方面的在数据流中以信号通知的预测残差信号24
””
和预测信号26的组合之间的关系。如上所述,该组合可以是加法。预测信号26在图3中被示为将图片区域细分为用阴影线示意性地指示的帧内编码块和未用阴影线示意性地指示的帧间编码块。细分可以是任何细分,例如将图片区域规则地细分为多行和多列块或者块,或者将图片12多树细分为不同大小的叶块,例如四叉树细分为块等,其中在图3中示出了它们的混合,其中首先将图片区域细分为多行和多列树根块,然后根据递归多树细分进一步细分多行和多列树根块。同样,数据流14中可以编码有用于帧内编码块80的帧内编码模式,将若干支持的帧内编码模式之一分配给相应的帧内编码块80。下面描述进一步的细节。对于帧间编码块82,数据流14中可以编码有一个或多个运动参数。一般而言,帧间编码块82不限于在时间上编码。备选地,帧间编码块82可以是从除了当前图片12本身之外的先前编码部分(例如图片12所属的视频的先前编码图片,或者在编码器和解码器分别为可缩放编码器和解码器的情况下,为另一视图或层级较低的层的图片)预测的任何块。图3中的预测残差信号24
””
也被示为将图片区域细分为块84。这些块可以被称为变换块,以便将其与编码块80和82区分开。实际上,图3示出了编码器10和解码器20可以分别使用两种不同的细分将图片12和图片12’细分为块,即一种分别细分为编码块80和82,而另一种细分为块84。两种细分可能是相同的,即每个编码块80和82可以同时形成变换块84,但是图3示出了如下情况,其中例如到变换块84的细分形成到编码块80、82的细
分的扩展,使得块80和82的两个块之间的任何边框覆盖两个块84之间的边框,或者换句话说,每个块80/82或者与变换块84之一重合,或者与变换块84的集群重合。然而,也可以彼此独立地确定或选择细分,使得变换块84可以备选地跨越块80/82之间的块边框。就到变换块84的细分而言,类似的说法因而与关于到块80、82的细分所提出的一样是正确的,即块84可以是将图片区域规则细分为块/多个块(按行和列排列)的结果,图片区域的递归多树细分的结果,或其组合或任何其他类型的分块方式(blockation)。顺便说一句,要注意的是,块80、82和84不限于正方形、矩形或任何其他形状。
[0076]
图3说明了预测信号26和预测残差信号24
””
的组合直接产生经重构的信号12’。然而,应当注意,根据备选实施例,可以将多于一个的预测信号26与预测残差信号24
””
组合以产生图片12’。
[0077]
在图3中,变换片段84应具有以下含义。变换器28和逆变换器54以这些变换片段84为单位执行它们的变换。例如,许多编解码器对所有变换块84使用某种dst或dct。一些编解码器允许跳过变换,使得对于一些变换片段84,直接在空间域中对预测残差信号进行编码。然而,根据以下描述的实施例,编码器10和解码器20以它们支持若干种变换的方式配置。例如,编码器10和解码器20支持的变换可以包括:
[0078]
οdct

ii(或dct

iii),其中dct代表离散余弦变换
[0079]
οdst

iv,其中dst代表离散正弦变换
[0080]
οdct

iv
[0081]
οdst

vii
[0082]
ο恒等变换(it)
[0083]
自然地,变换器28应支持这些变换的所有正向变换版本,同时解码器20或逆变换器54应支持其对应的后向或逆向版本:
[0084]
ο逆dct

ii(或逆dct

iii)
[0085]
ο逆dst

iv
[0086]
ο逆dct

iv
[0087]
ο逆dst

vii
[0088]
ο恒等变换(it)
[0089]
后续描述提供了关于编码器10和解码器20可以支持哪些变换的更多细节。在任何情况下,应当注意,所支持的变换的集合可以仅包括诸如一个频谱到空间变换或空间到频谱变换的变换。
[0090]
如上所述,已经呈现了图1至图3作为示例,其中可以实现下面进一步描述的帧内预测构思。就此而言,图1的编码器和图2的解码器分别表示下文描述的编码器和解码器的可能实现。如下文将更详细地概述,在将随后解释的根据本技术的用于帧内预测的实施例内置在图1的编码器和图2的解码器中时,图1的编码器和图2的解码器支持至少一个选项来以下面更详细概述的方式处理帧内预测块80。因此,下文描述的实施例是指与图1的编码器10等同的编码器,图1的编码器10以下面更详细概述的方式处理帧内编码块80,并且同样适用于图2的解码器,图2的解码器因此表示根据实施例的解码器的示例,其中以下面更详细地概述的方式处理帧内编码块。然而,图1和图2仅是具体示例。然而,根据本技术的实施例的编码器可以使用下面更详细概述的构思来执行图片12的基于块的编码,并且在例如以下
方面与图1的编码器不同:不是视频编码器,不支持帧间预测,或者以与图3示例的方式不同的方式执行到块80的细分,或者取决于实施例,即使该编码器在对预测残差进行编码时不使用变换预测残差编码,例如代替地,直接在空间域中编码。同样地,根据本技术的实施例的解码器可以使用下面进一步概述的帧内预测编码构思执行从数据流14中基于块地解码图片12’,但是可以例如在以下方面与图2的解码器20不同:不是视频解码器而是静止图片解码器,不支持帧内预测,或者以与参考图3描述的方式不同的方式将图片12’细分为块,和/或不在变换域中而是在空间域中从数据流14中导出预测残差。
[0091]
已经表示,下面的描述首先专注于对基于isp的帧内预测的描述。根据isp帧内预测,允许将帧内预测块(例如图4中的块80)分割为一维水平分区或一维垂直分区。以这种方式处理块的可用性可以提供给任何大小的帧内预测块80,或者仅限于预定义范围内的块大小的块80,例如大于某一大小的块。“一维”是指以下事实:当与作为划分结果的分区有关时,分区沿着划分维度仅为一个样本宽度。然而,本文讨论的划分模式的一维性是指以下事实:划分沿某个维度发生,所得分区类似于在块中沿着与横向于划分方向的方向上完全延伸的条带。例如参见图4,图4在左侧示出了帧内预测块80,即要解码的块或要编码的块。它的尺寸为w
×
h。也就是说,它是w
×
h尺寸的块,其中h和w分别为块80以样本测量的高度和宽度。根据图4,存在两种可用的分割或划分选项,即水平分割100,根据水平分割100,沿着垂直轴(即划分维度104)将块80分割或划分为多个分区1021、1022、1023和1024。根据图4的示例,该示例是在以下描述中应用的示例,如双头箭头106所示,每个分区1021到1024是一个样本宽,使得从块80所得的分区1021到1024的数量等于h,即块80以块80的样本108为单位的高度,但是应该清楚的是,编码器和解码器也可以根据编码器和解码器之间约定的不同方式来执行划分,例如,可以以导致预定义数量的分区102
i
的方式完成沿着维度104划分块80,预定义数量例如大于两个,或者是它们的混合,将块80的大小沿着划分维度均匀地分布到预定义数量的分区上。
[0092]
图4中描绘并由附图标记110指示的另一编码选项对应于将块80分割为垂直分区1121、1122、
……
1128。也就是说,根据选项110,沿着水平轴(即水平划分维度104)将块80划分为分区112
i
。在选项100的情况下,每个分区102
i
与块80一样宽,即具有块的宽度w,而分区112
i
采用块80的高度h,即具有高度h。总结来说,以类似于选项100的描述的方式,垂直分割110可以将块80分割为数量w个分区112
i
,w表示块80以样本108为单位测量的水平宽度,使得每个分区112
i
在水平方向上为一个样本宽度,然而,其中根据选项110的划分也可以以在编码器和解码器之间约定的另一方式执行。
[0093]
因此,根据图4,编码器自由地根据水平分割选项100将块80划分为h个w
×
1分区102
i
,或者根据垂直分割选项110将块80划分为w个h
×
1分区112
i
,并且可以针对块80在数据流14中以信号通知由编码器为块80选择的分割选项,例如通过数据流14中的对应划分维度标志114。然而,应当清楚,本技术的实施例还涵盖了如下编码器和解码器:在缺省情况下仅使用选项100和110之一而无需数据流中的标志114。更进一步,在其他示例中,可以取决于针对块80,在数据流14中从编码器信号通知给解码器的帧内编码模式116,来在数据流80中传送标志114。如上所概述的,帧内编码模式可以指示可用/支持的帧内编码模式的集合中的一个,该集合包括例如角度模式以及可选地一个或多个非角度模式,例如dc模式或平面模式。也就是说,根据下文中未进一步讨论的备选实施例,可以取决于帧内编码模式116以
有条件的方式在数据流14中传送标志114。根据下文描述的实施例,针对块80,标志114与数据流14中针对块80以信号通知的帧内编码模式116无关地存在于数据流14中。然而,可以相对于刚刚讨论的帧内编码块80的划分处理与下面将概述的处理块80的帧内编码的不同方式之间的标志切换而存在相关性。
[0094]
根据isp,分区102/112中的每一个被单独地预测、变换、量化和编码,以这种方式顺序地处理分区。因此,某个分区的重构样本将能够用于预测块80已被划分为的分区中按照分区顺序的任何后续分区102/112,并且以这种方式,帧内预测的过程在块80已被划分为的分区102/112上循环。图5示例性地示出了根据选项100分割的帧内预测块80。对块80的每个分区1021至1024进行预测,即导出相应分区102
i
的预测子,以及预测残差相关任务,即使用预测残差来校正预测子。后一任务可以通过组合预测残差和预测子来执行。这在解码器中完成以用于重构。编码器执行作为预测残差相关任务的预测残差的确定,包括例如变换和量化,以及使用预测残差来校正预测子,即以便通过用图片的重构来填充编码器中的解码图片缓冲器,来保持预测环路与解码器同步。针对分区1021至1024单独、并在分区1021至1024之间顺序地执行刚刚提到的任务,即预测和残差处理。在用于当前处理的分区的这两个步骤之后,以相同的方式处理根据分区顺序的下一分区102
i
。在图5中使用三个箭头126示例性地示出了分区顺序。
[0095]
图5示出了在继续处理紧接在下的相邻分区1022等之前,应首先处理包括块80的最左上像素的分区,对应于图5中分区1021至1024的索引分配,但该顺序仅是示例,并且如下面的描述将变得清楚,可以以取决于其他设置(如帧内编码模式和/或块80的大小,前一种相关性将在下文中讨论)的方式选择该分区顺序。
[0096]
在下面进一步讨论的示例中,分区顺序126以仅在遍历分区102/112的那些顺序之间变化的方式,使得紧接在后的分区彼此紧邻,使得在分割类型100的情况下,分区顺序分别为从上到下或从下到上,并在划分类型110的情况下,分区顺序分别为从左到右或从右到左。然而,应该提到的是,其他示例也是可以想象的。例如,可以以这样的方式选择分区顺序,使得在两次扫描中以刚刚概述的相邻顺序扫描分区,在第一次扫描中,从上到下、从下到上、从左到右或从右到左(只要适用),每隔一个分区处理一次,然后以相同的顺序方向或相反的顺序方向处理它们之间的剩余分区。
[0097]
在任何情况下,图5示出了第一分区1021要首先被处理,并且是当前处理的分区。对于第一分区,这里示例为1021,可以仅基于位于块80的边框之外的样本来选择用于形成分区1021的预测子的相邻样本的集合1181,因为在处理块80的第一分区时,尚未处理块80的样本,即重构或编码。也就是说,已经使用数据流中发送的预测残差对相应预测子进行任何预测和校正,来在编码器中重构集合1181中的样本。它们属于先前编码/解码的图片块,并且可以是帧间编码或帧内编码或任何其他编码块。关于用于形成第一分区1021的预测子的相邻样本的集合1181的样本的数量和确切位置,同样取决于分配给块80的帧内编码模式。该帧内编码模式共同地,或者同样地用于处理块80的每个分区,如下面将讨论的。为了完成第一分区1021的处理,通过根据集合1181中的一个或多个已重构/编码样本填充该分区1021,在解码器和编码器中导出该分区1021的预测子,就编码器而言即通过如上所述的变换和量化确定其预测残差,然后该预测残差(数据流中发送的版本中,即包括量化损失)用于通过使用数据流14中的预测残差来校正预测子,以重构该分区1021。例如,图5示出了分区
1021的预测残差,示例在1201处。也就是说,1201包括与分区1021的预测残差的变换相对应的变换系数,其中数据1201的描述将在下面更详细地讨论。
[0098]
现在转到按照分区顺序的下一分区,即图5的示例中的分区1022。情况已经改变,因为用于导出分区1022的预测子的相邻已重构/编码的样本的集合现在可以由位于块80之外的样本和/或块80内的样本组成,即位于任何已经处理的分区中的那些样本,这里是图5的示例中的当前分区1021,因为对于这些样本,预测残差已经确定并且已经在数据流14中可用。也就是说,编码器和解码器分别导出该分区1022的预测子,然后进行编码器中的预测残差确定,并在编码器和解码器中使用预测残差来校正预测子。然后,该过程逐一继续下一分区,即按照分区顺序的下一分区,由此顺序处理块80的所有分区。
[0099]
如上面已经提到的,可以以不同于遍历分区的另一方式选择分区顺序126,使得直接连续的分区是紧邻的分区邻域。也就是说,分区顺序可以从一个分区跳到下一个分区。这意味着用于通过填充相应分区102
i
来导出相应预测子的相邻样本集合118
i
不限于如图5所示的相应分区的紧接的样本邻域。这也涉及对分区顺序126的开始的选择。例如,假设分区1024是按照分区顺序的第一分区。然后,可以通过根据相邻样本的集合1184(图5中未示出)填充分区1024来导出它的预测子,该集合1184收集沿着块80的外周定位、位于块80的左侧和顶部的样本。集合1184中的一些样本不会紧邻分区1024。顺便说一下,这将与在块80整体的通常帧内预测填充中填充最后一个样本行的情况相对应。刚刚提到的可能性对于任何后续处理的分区也是如此,即按照分区顺序的第二分区和另外的分区。也就是说,它们的相邻样本集合118
i
也可以包含不与相应分区102
i
紧邻的某些样本。并且更进一步,在不限制分区顺序以使得连续分区彼此紧邻的方式遍历分区的情况下,则任何第二分区或随后处理的分区102
i
的参考样本的集合118
i
可以不仅收集位于相应分区102
i
的左侧和顶部的样本,还可以收集位于相应分区1021下方的样本,这取决于根据分区顺序是否比分区1021更早地处理了块80的任何分区。也就是说,集合180
i
可以包括位于分区102
i
的多于两侧上的样本。
[0100]
简言之,图5在这里示例性地相对于水平分区示出了块80的分区102/112的顺序处理,但是相同的描述也适用于相对于垂直分区112
i
的垂直模式110。对于每个分区102
i
,将对应的预测残差102
i
包含在数据流14中。数据1201至1204一起形成了块80的预测残差,即120。应当注意,根据本技术的备选实施例,可以不使用变换残差编码,即可以直接在数据流14中(例如在空间域中)以信号通知块80的预测残差120。在这种情况下,各个分区1021至1024的数据1201至1204可以不包含图5中所示的数据流14中的分区单独字段,其中每个数据部分120
i
表示用于相应分区102
i
的某个变换的信令。相反,在那种情况下,块80的预测残差120可以形成数据14的一个字段。在该备选实施例中,解码器将在处理某个分区102
i
时从字段120收集关于该分区102
i
的预测残差的信息。当使用变换的完全可逆版本时也可以应用该过程,使得可以在空间域中完成量化。
[0101]
因此,图5示出了在编码器和解码器中,针对每个分区102
i
执行两个任务,即:1)预测导出任务122,产生相应分区1021的预测或预测子,即针对相应分区102
i
的每个样本的预测样本值,以及2)之后执行的预测残差相关任务,即编码器处的预测残差导出,包括为了将预测残差编码到数据流14中而对它进行量化,以及通过组合或校正预测残差和预测子而进行的相应分区102
i
的样本的重构,以便获得该分区102
i
的重构样本。为了预测导出任务,后面的重构样本可以用作遵循分区顺序126的后续处理分区102
j
的相邻样本集合118
j
的储备。
[0102]
在继续对isp构思可能性的细节进行进一步描述之前,图6示出了通过填充当前处理的分区102
i
来进行预测导出122的过程,其中应当注意,仅是说明性地选择了关于水平划分102的说明,并且相同的描述还涉及垂直划分112。图6示出了当前处理的分区102
i
及其对应的已重构/编码的相邻样本的集合118
i
。如上文关于图5已经指出的,集合118
i
可以不限于与分区102
i
直接相邻或邻近的样本128。然而,由于划分,当对块80的所有样本求平均时,分区102
i
的样本与集合118
i
的样本128之间的平均距离130与执行块80的帧内预测相比较低,例如从h.264或hevc所知的。如关于图5所描述的,使用与块80相关联的帧内预测模式,针对每个分区102
i
执行预测子导出或填充122,该模式指示可用帧内预测模式的集合中的一个。该集合可以包括在角度或方向132上彼此不同的角度或方向性模式,沿着角度或方向132,将相邻样本集合118
i
的样本内容拷贝到分区102
i
的样本134中。为了执行该拷贝,可以基于集合118
i
中相对于样本134以与方向132相反的方向定位的相邻样本134的数量来导出分区102
i
的每个样本134的预测。该数量例如由用于导出样本集合118
i
的样本128之间的像素间位置的插值滤波器的核来定义。例如,图6示出了使用集合118
i
中的三个样本128来计算当前处理的分区102
i
中的一个样本134的预测。由于相对较小的平均距离130,分区102
i
的每个样本134的参考样本134的数量可以保持较低。更多细节将在下文介绍。然而,为了完整起见,应当注意,可用帧内预测模式的集合还可以包括dc模式,根据该dc模式,将一个dc值分配给分区102
i
的所有样本134,通过执行对相邻样本的集合118
i
求平均来导出该dc值。此外,可以存在平面模式,根据平面模式,通过分区102
i
内的样本位置上的线性函数来定义样本134的预测值,基于相邻样本118
i
来导出该线性函数的斜率和偏移。此外,应当注意相邻集合118
i
可以取决于针对块80选择的帧内预测模式而不同,并且可以例如在角度模式与非角度模式(dc/平面)之间尤其不同。
[0103]
例如,在最先进的jem解码器中,存在67种可用的帧内预测模式:其中65种是角度模式,两种是模型无方向性纹理,即dc和平面。1d划分(简称为1d划分模式)模式(即针对上文和下文概述的分区102/112执行的预测子导出122)可以与它们中的任何一个组合,或者换言之,可以使用它们中的任何一个来实现,根据该1d划分模式,沿着维度104将块80划分/分割为分区,所得分区在块横向与维度104的完整宽度上延伸,并且沿着方向104为一个样本宽或多于一个样本宽。如关于图5已经描述的,一个块80的所有分区102/112(例如编码单元cu)使用块80的相同关联帧内预测模式,由此避免了信号化的过多开销,因为针对块80,仅需要在数据流14中发送一次帧内预测模式116。
[0104]
也就是说,可以以与jem解码器中概述的二维情况相同的方式执行预测122。然而,针对当前处理的分区102/112,仅计算一条线(无论水平还是垂直),从而与jem相比,预测过程122会相应地调整。在选择用于以使得连续分区彼此紧邻的方式遍历分区的分区顺序的情况下,预测过程122可以与jem的二维情况相对应,但是仅对第一行如此,即最接近已重构/编码邻域的一行。在一些情况下,hevc和jem都允许对参考样本128或对所得预测子应用某些滤波器。这在二维情况下对于更好地预测预测块80内远离参考样本128的样本以减少边界不连续性是有用的。然而,通过使用到分区102/112的划分,利用附近像素之间的高相关性是可能的并且应当是目标。
[0105]
也就是说,应当利用减小的平均距离130。过度平滑会降低该质量。因此,假如编码器或解码器能够执行两种类型的帧内预测,即使用关于图4至图6及以下概述的划分的帧内
预测,则帧内滤波器(即预测子导出122中涉及的滤波器)或者被禁用,或者至少每个分区样本134的贡献样本134的数量相对于在二维情况下对一个样本有贡献的样本数量减少,在二维情况下块80的帧内预测是在块上执行或根据hevc执行的,即分解为分层四叉树的叶块,将块80细分为矩形块。
[0106]
从上面提出的讨论中可以清楚地看出,为了执行预测残差相关任务124,解码器例如从数据流14中解码当前处理的分区的相应预测残差的变换,并对该变换执行逆变换(例如频谱到空间变换),以便产生预测残差,然后该预测残差用于通过组合/加法来校正122处获得的预测子。在编码器中也是如此,以便保持与解码器同步的预测环路。另外,针对当前处理的分区,编码器对使用122确定的预测子的预测误差执行变换,对该预测误差进行变换(例如空间到频谱变换),随后对变换系数进行量化,然后将变换编码到数据流14中,以获得当前处理的分区102
i
的对应数据120
i
。关于变换,可以使用该相同的变换来处理块80内的所有分区102/112。除了平面模式的情况,变换可以是dct

ii,在平面模式的情况下,例如可以使用dst

vii。为此,如果块80是以到目前为止关于图4到图7以及下面进一步概述的划分方式、使用帧内预测模式编码的,则可以禁用编码器和解码器可用于其他块的与变换和逆变换有关的所有工具,例如变换跳过(即在空间域中编码)、emt(emt=显式多核变换)、nsst(nsst=模式相关不可分离的二次变换)或其他,以避免不必要的开销比特。甚至备选地,变换可以是线性变换,线性变换的类型基于帧内预测模式、专用语法元素和预定分区顺序中的一个或多个来选择。
[0107]
关于分区顺序126已经花费了一些笔墨,使用该分区顺序顺序地处理当前处理块80的分区102/112。应当强调的是,该实施例仅仅是示例,并且根据备选实施例,分区顺序可以是静态的,或者可以根据下面阐述的示例以不同方式变化。图7通过使用图5中的箭头126所示意的内接编号指示可能的分区/处理顺序。这里,该顺序以升序遵循内接编号。图5表示顺序126以包含块80的左上像素/样本140的分区开始向下到最低分区的示例。类似地,如果分割类型为垂直,则处理顺序将从包含左上角像素/样本的最左分区开始再次向右。然而,这不是对所有现有帧内预测模式的最佳情况。这在图7中示例出,图7也示出了针对对角线模式,块80的垂直和水平划分,即拷贝角度/方向132以45
°
从左下侧指向右上侧,而34,即拷贝角度/方向132以

45
°
从左上指向右下。在前一种情况下,如果分割是水平的,则从块80的左上角开始会产生其重构样本对后续分区的预测不会产生任何影响的分区。因此,从块的左下角开始更合理,使得每个分区的重构样本可用于预测按照分区顺序的下一分区。然而,正如在上述图中可以观察到的,在垂直分割中,这不是必需的。另一方面,在给定样本从两侧以水平和垂直分割的情况下,模式34没有任何这些问题。因此,可以在两种分割中采用正常的处理顺序。
[0108]
表1示出了根据帧内预测模式和分割类型的处理顺序的完整列表。
[0109][0110]
表1:根据帧内模式和分割类型的处理顺序。hor_dir和ver_dir分别是水平和垂直模式,vdia_dir是垂直对角线模式
[0111]
参考图8,总结到目前为止关于信号化开销描述的isp构思。图8示出了根据本技术实施例的针对块80传输的内容。具体地,存在帧内预测模式信号化116,以信号通知要对块80应用哪个帧内预测模式。因此,信号化116指示例如角度模式之一,或包括角度模式和非角度模式(例如dc和平面)的可用模式之一。除了该信号化116之外,还存在针对块80,由编码器编码到数据流14中并由解码器从数据流14中解码的划分标志160,其指示是否将根据图4至图7的划分处理应用于块80,或者是否“正常”处理块80,例如整块或单件或二维地,即仅使用块80之外的样本来形成参考样本储备118,以预测块80内的每个样本。备选地,标志160可以在一方面关于图4至图7讨论的划分处理与使用四叉树细分将块80分解为变换块之间进行切换,然后顺序地处理这些变换块,然而缺点是必须在数据流14中以信号通知该分解。如果分割标志160指示根据图4进行划分,则数据流14针对块80包含划分维度标志114,其在关于图4讨论的划分类型100和110之间切换。然后,对于块80的每个分区(由块80细分/划分为的分区),如果划分标志160指示该划分选项,则数据流14包括信令/数据1201,信令/数据1201具有编码到例如如上所指示的变换域中的相应分区的预测残差。
[0112]
关于图8,应当注意,预测残差数据1201、1202……
可以按照与分区/编码顺序126相对应的顺序编码到数据流14中。如上所述,后者可以由信号化116指示的帧内预测模式唯一地确定。然而,备选方案是分区顺序126至少部分地基于数据流14中的可选附加信号化来确定。
[0113]
本文提出的描述的另一备选方案是可以备选地使用信号化116,以便指示是否使用划分选项的事实。换言之,一个语法元素可以共同承担116和160的信号化的责任。这样的语法元素将采取值范围中的一个值,每个值与帧内预测模式和是否使用块划分的指示的组合相对应。在这种情况下,发明人也能够仅为帧内预测模式的子集提供划分选项。最后,应当注意,仅在由信号化116指示的帧内预测模式采取可用帧内预测模式中的某个子集的情况下,也可以有条件地在数据流14中传送划分标志160。
[0114]
图9示例性地示出了具有某个分区102/112
i
的预测残差的数据120
i
看起来应当如何。根据图9,在变换域中将预测残差编码到数据流14中。也就是说,编码器通过变换180生成预测残差的变换182,解码器通过逆变换184在空间域中导出预测残差。图9示出了例如变换182与不同的频谱频率f相对应的变换系数186。数据120
i
可以包括编码块标志cbf,数据120
i
可以包括编码块标志cbf 188,cbf 188指示变换182是否包括任何显著变换系数186,
即变换182是否完全为零。如果设置了cbf 188,则变换182不为零,并且数据120
i
可以包括最后位置(lp)语法元素190,其指示192从最低或dc系数196开始,显著变换系数(即非零变换系数186)沿着增加的频谱频率(参见轴194)的最后位置192。然后,数据120
i
包括信令198,以信号通知从196到192的变换系数。
[0115]
也就是说,图9示出了每个分区102
i
/112
i
可以通过cbf 188、lp 190和变换系数数据198将其预测残差编码到数据流14中。也就是说,对于具有n个分区102/112的块80,存在n个cbf 188,针对具有非零cbf 188的每个分区存在一个lp 190,并且仅针对具有与其相关联的非零cbf 188的这些分区存在变换系数数据198。可以以与对正常处理的帧内预测块(即划分标志160指示非划分选项的块80)所完成的相同方式对系数数据198进行编码,以下除外:如果分区为一个样本宽,则每个lp 190仅需要一个坐标(否则像往常一样需要2个坐标),即对于水平分割100为x,对于垂直分割110为y。然而,在二维分区的情况下,lp 190指示沿着扫描方向或路径、使用顺序指示或使用x和y坐标的最后位置。可以将每个cbf 188的上下文选择为先前编码的cbf的值,即,按照分区顺序126的先前分区的cbf。此外,由于划分,变换系数数据198与不同的形状有关。也就是说,变换182也具有不同的形状。在分区是关于图4讨论的一维分区的情况下,变换182是一维变换。也就是说,取决于分割类型100或110,变换182可以是变换系数186的w/h长的向量。
[0116]
关于图8的标志160和114以及它们的编码,注意以下内容。指示是否将块80分为分区102/112的标志160定义了要针对块80检查在数据流14中是否传送标志114的条件。具体地,如果标志160指示到分区102/112的划分,则标志114存在于数据流14中并被发送到解码器,以便以信号通知要执行哪种类型的分割100/110,即,水平还是垂直。正如标志cbf一样,标志114也可以使用上下文相关熵编码/解码来编码。根据块80的帧内预测模式,标志114的上下文可以具有三种可能性:0用于非角度模式、1用于水平模式、以及2用于垂直模式。
[0117]
虽然图9示出了cbf 188可能在当前块80的每个分区i中出现一次,但是附加地或备选地,当前块的分区120i的变换182可以各自被划分为一个或多个子块,针对数据120i内的每个子块以信号通知编码子块标志,指示该子块内的变换系数186是全为零还是其至少一个系数非零。因此,仅编码子块标志以信号通知存在非零系数的子块内的系数186会被编码。编码子块标志以信号通知不存在任何非零系数的子块内的其他系数在解码器侧会被推断为零。注意,由于每个分区120i被单独地变换,因此属于一个分区的子块在该分区的变换182的频谱分量方面不同,并且在它们所包括的该变换中的变换系数186方面不同。例如,子块可以被设置为使得只要相应分区102
i
/112
i
的x维度(分区宽度)和y维度(分区高度)都等于或大于四个样本140,则它们是4
×
4系数块,因此只要相应分区102
i
/112
i
的变换180的x和y维度均等于或大于4个系数186。在4
×
n分区的情况下,子块形成m个4
×
4子块的列,其中m*4=n并且m是整数。在n
×
4分区的情况下,子块形成m个4
×
4子块的行,其中m*4=n且m是整数。对于更宽泛的分区,可以产生按行和列排列的4
×
4子块阵列。然而,根据实施例,可能不会出现这种宽于4个样本和/或宽至4个样本的分区。无论是否出现,对于较窄的分区,即其尺寸之一小于4个样本,即在至少一个维度x或y中小于4个样本宽,可以完成将其变换180到子块的子块划分,每个子块收集该变换180的不同系数组,使得在针对当前块的大小的所有可能情况下,子块具有系数的最小数量m。也就是说,分区可以被设置为沿着一个维度与块宽度n一样大,而沿着另一维度104进行划分。因此,每个分区的变换180的大小可以是1
×
n、
2
×
n、n
×
1或n
×
2。事实上,某个分区的变换180可以具有与该分区中的样本数量相等的系数数量。在1
×
n分区/变换的情况下,子块然后可以形成m个1
×
m子块的列,其中m*m=n并且m是整数。在n
×
1分区的情况下,子块形成m个m
×
1子块的行,其中m*m=n并且m是整数。在2
×
n分区/变换的情况下,子块然后可以形成m个2
×
(m/2)子块的列,其中m*(m/2)=n并且m是整数。在n
×
2分区的情况下,子块可以形成m个(m/2)
×
2子块的行,其中m*(m/2)=n并且m是整数。对于系数的最小数量m=16的示例性情况,这在表2中示例性地示出。
[0118]
表2:熵编码系数组大小
[0119][0120]
虽然图9示出了cbf 188可能对当前块80的每个分区i存在一次,但是解码器与编码器之间可能约定当前块80的分区中的n个分区中的至少一个具有非零cbf 188。因此,如果n是子分区的数量且按编码顺序的前n

1个子分区已产生零cbf,则第n个分区的cbf将被推断为1。因此,不需要对其进行解码,也不对其进行编码。因此,数据120n的cbf中将丢失,数据1201到120
n
‑1中的cbf以信号通知非零性,并且解码器会推断该cbf以信号通知该分区的变换中存在至少一个非零系数。
[0121]
关于帧内编码模式信号化116而言,以下可以成立。能够将编码模式信号化116作为指向最可能模式(mpm)列表中的一个的指针或索引来发送。后面的mpm列表进而能够由编码器和解码器基于用于先前编码/解码的帧内预测块的帧内预测模式(例如空间和/或时间上相邻的帧内预测模式),以相同方式确定。因此,mpm列表可以表示可用/支持帧内预测模式的适当子集,即前述角度模式和/或dc和平面模式中的一种或多种。如上所述,除了经典帧内预测的块以外,可能存在使用lip或isp方案的帧内预测块,例如图中的块80(即整体块)或使用递归四叉树划分将这种帧内预测块划分为以变换块为单位的块。两种类型的帧内预测块可能支持相同的可用/支持帧内预测模式的集合。而对于后续正常/经典的帧内预测块,可以在数据流中以信号通知mpm标志(解码器对该标志进行解码,编码器对该标志进行编码),其指示该块的模式是否从mpm列表中选择,在这种情况下,发送指向该mpm列表中的指针/索引(解码器对该指针/索引进行解码,编码器对该指针/索引进行编码),在使用lip或isp方案的帧内预测块(例如块80)的情况下,应当推断mpm标志以信号通知mpm列表限制。如果对于某个正常/经典的帧内预测块,mpm标志以信号通知没有使用任何mpm模式,则数据流中不存在针对该块的索引/指针,相反,在数据流中针对该块发送指向帧内预测模式的剩余列表的替代指针/索引。剩余列表也可以是可用/支持帧内预测模式的集合的适当子集,并且具体地可以是mpm列表与可用/支持帧内预测模式的集合相比较的补充集合,即可用/支持帧内预测模式的集合的每个成员要么是mpm列表的成员,要么是剩余集合的成员。指向mpm列表的指针/索引可能是vlc编码的,而指向剩余集合中的指针/索引可能使用定长
码编码。自然地,即使对于lip或isp方案的帧内预测块,也发送mpm标志,并且编码器将自由地从可用/支持帧内预测模式的集合中选择任何模式,其中取决于所选择的模式在mpm列表中还是在剩余集合中来设置mpm标志。
[0122]
对于正常/经典的帧内预测块以及对于isp/lip帧内预测块,mpm列表可能相同,即可能由编码器和编码器以相同方式确定。然而,无论是否应用对mpm列表进行限制和推断mpm标志以信号通知isp/lip帧内预测块的mpm列表使用情况,备选地,可以针对isp/lip帧内预测块不同地确定mpm列表,以便适应isp/lip模式的统计。例如,可以改变以从mpm列表中排除dc帧内模式,并为isp水平分割(即水平方向104)优先考虑水平帧内模式,以及为垂直分割(即垂直方向104)优先考虑垂直帧内模式。也就是说,对于正常/经典的帧内预测块,mpm列表可以形成可用/支持帧内预测模式的集合的适当子集,根据某个构思对模式进行选择和排序。对于isp/lip帧内预测块80,mpm索引可以指向mpm列表,该列表取决于由标志114以信号通知的划分方向104和/或形成可用/支持帧内预测模式的集合的没有dc模式或没有dc和平面模式的适当子集,即可用/支持帧内预测模式的集合中的角度模式的适当子集。基于先前编码/解码的先前使用的帧内预测模式的mpm列表构建在标志114指示划分方向104为水平的情况下,可能偏好角度帧内预测方向中更接近水平维度的角度模式,并且在标志114指示分区方向104为垂直的情况下,偏好角度帧内预测方向中更接近垂直维度的角度模式。
[0123]
关于刚刚提出的描述,再次注意,正常处理的帧内预测模式和使用本文概述的划分处理的帧内预测模式之间的并置不必如此。也就是说,编码器和解码器可以不可避免地使用本文提出的划分来处理帧内预测块80,然后,相应地,划分标志160例如变得过时。然而,如果由标志160以信号通知的划分选项可用作编码器的一个判定,则以下描述揭示了编码器如何执行判定或找出划分模式是否应用于某个块80,以及哪种分割类型(即水平还是垂直)为最佳的可能性。为了执行该操作,编码器应针对每个块,对不同的帧内预测模式测试两个选项。与编码器仅具有一个选项(例如正常选项)的情况相比,编码器将因此由于必须测试更多选项而更慢。为了减少这种影响,可以通过根据以下策略进行编码来测试标志160以信号通知的划分模式,其中参考了图10和图11。
[0124]
1)1d分区模式是要测试的最后帧内模式。
[0125]
2)在要测试1d分区模式时,设c
min
为目前为止的最小成本。
[0126]
3)选择要测试的帧内模式和分割类型的组合。
[0127]
4)将块分割为n个1d分区,并且设i表示这些分区中的每一个的索引,其中i=[1,n]。
[0128]
5)在对每个分区进行编码之后,计算其子成本j
i
。因此,发明人可以知道分区i已被编码后可用的所有子成本之和,即该过程在图10中描述,因此图10示出了1d分区子成本的累积,以获得整个块的最终成本。
[0129]
6)在处理每个分区之后,评估表达式s
i
<c
min
。如果为真,则继续对分区进行编码直到结束。否则,可以保证该测试模式不会产生比c
min
更低的rd成本,因此该过程被中断,我们将继续进行帧内模式和分割类型的下一组合。
[0130]
7)如果所有1d分区都被编码,则测试模式是最佳模式,并且相应地更新c
min

[0131]
这个过程的优点在于避免了处理不必要的1d分区,因为众所周知,1d分区模式不
会比已经存在的最小成本产生更好的成本。此外,它在rd损失方面没有任何缺点。整个过程如图11中的流程图所示。
[0132]
再次注意,所有以上isp示例将划分示意为在横向于方向104的一个样本宽条带中进行,备选地,划分可以以引起更宽分区的方式进行,从而引起二维分区。下面列出了关于分区的进一步备选方案。
[0133]
在特定的isp示例中,基于以下来定义沿着分割方向104的宽度:1)帧内预测模式是角度模式还是非角度模式,以及2)帧内预测块沿着该方向104的宽度。
[0134]
1)可以将w
×
h(其中假设w和h是2的幂)的块80水平或垂直地分为(例如,用发送到解码器的语法元素114指示)尺寸为w
×
h的k个相等的分区102/112,其中w和h的值在表3中描述。根据表3,使用非角度帧内模式进行预测并被垂直分割(即方向104为垂直)的w=16、h=8的块例如会被分割为4个分区102,所有分区的尺寸为w=16和h=2。如果使用角度帧内模式预测同一块80,则该块80会被分割为8个分区102,每个分区的尺寸为w=16和h=1。
[0135][0136]
表3:针对额外布局示例1的w、h和k的值
[0137]
2)备选地,可以将w
×
h(其中假设w和h是2的幂)的块80水平或垂直地分为(例如,用发送到解码器的语法元素114指示)尺寸为w
×
h的k个相等的分区,其中k的值不固定(因此利用语法元素发送到解码器),其范围可以是2和s之间的任何2的幂,其中s是被分割的维度的值(对于垂直分割为宽度,对于水平分割为高度)。w和h的值如表4中所述而获得。
[0138]
变量垂直分割水平分割ww/kwhhh/k
[0139]
表4:针对额外布局示例2的w和h的值
[0140]
替代地,能够针对块80,直接以信号通知分区沿着维度104的宽度。
[0141]
3)备选地,可以将w
×
h(其中假设w和h是2的幂)的块80水平或垂直地分为(例如用发送到解码器的语法元素114指示)尺寸为w
i
×
h
i
的k个分区(其中k取决于w和h),其中i=1,2,

,k。如果分割是水平的,则设s=h,s
i
=h
i
,如果是垂直的,则设s=w,s
i
=w
i
。对于测量块80沿着维度104的宽度的s和测量分区i沿着维度104的宽度的s
i
的不同值,表5中描述了s
i
的值的各种选项。
[0142][0143]
表5:针对不同划分布局的s
i
的值
[0144]
解码器使用的选项是固定的,也可以根据解码器侧现有参数的值隐式地确定。
[0145]
4)备选地,可以将w
×
h(其中假设w和h是2的幂)的块80水平或垂直地分为(例如用发送到解码器的语法元素114指示)尺寸为w
i
×
h
i
的k个分区(其中k取决于w和h),其中i=1,2,

,k。如果分割是水平的,则设s=h,s
i
=h
i
,如果是垂直的,则设s=w,s
i
=w
i
。s
i
的值将通过语法元素确定,该语法元素指示示例3)中提出的三个选项中的哪一个要用于将块分为子分区。
[0146]
因此,如以上示例1至4中所例示的,可以沿着一个维度104完成划分,使得分区在垂直于预定维度的方向上与预定块一样宽,而沿着预定维度104测量的分区的宽度是从至少两个不同的宽度设置或选项中选择的。可以使用显式或隐式信令构思来保持编码器和解码器之间的选择同步。因此,该选择使得虽然划分可以在相同大小和形状的块之间变化,但与这种变化相关联的开销保持在相当低的水平。例如,可以根据预定块的帧内编码模式,例如取决于预定块的帧内编码模式是否是角度模式来完成选择。还可以根据针对预定块在数据流中的索引来进行选择,该索引用于对第4示例所示的至少两个不同宽度设置中的一个进行索引。分区可以是沿着划分维度的一个或多个样本宽。在一个块内,沿着划分/预定方向的分区宽度可以变化。一个可以是一个样本宽,即是一维条带,而另一个是多于一个样本宽,是二维样本域。
[0147]
就残差编码而言,如上所述,可以使用变换编码来完成残差编码。每个子分区102/112可以在数据流中具有其自己的编码块标志(cbf)188、最后位置(lp)语法元素190和变换系数198,它们将被发送到解码器。因此,对于具有k个子分区102/112的块80(例如cu),将有k个cbf 188以及对于具有非零cbf的每个分区102/112,具有一个lp 190。用于对每个cbf 188进行编码的上下文可以取决于同一块内的(例如沿着顺序126)先前编码的子分区的cbf的值。另外,还可以在数据流中向解码器发送另一尚未提及的语法元素,以指示是否对每个块使用isp构思,或者指示在与整个数据流或某个图片相对应的范围处或者对于某个图片的切片,例如,是否在该范围内的每个帧内预测块80上使用本文描述的经划分的帧内预测构思,或者是否以信号通知将一些帧内预测块处理为一片,即就像仅被划分为一个分区。
[0148]
同样,上面已经描述了每个子分区可以使用一个变换单独地变换,由此获得每个分区102/112的一个变换,其没有被量化为全零。作为某个分区102/112的变换,可以使用2

d变换,除非在该分区102/112的维度之一是1的情况下,在这种情况下将应用1

d变换。变换核可以是dct

ii或由解码器侧在将要对子分区进行解码时的现有参数确定的任何其他变换。例如,可以根据帧内模式、子分区索引和子分区维度或后面的参数的一些子集的组合来
选择变换。也可以将变换直接以信号通知给解码器,或者换言之,采用例如针对块80内的所有分区或单独针对一个块80的每个分区102/112发送的额外语法元素的形式。
[0149]
上面也已经讨论过的一个方面在于以下事实:可以通过在对每个分区的预测残差进行分区个别的变换,并然后对变换系数进行量化,以实现空间或一些中间变换域中的量化之后,对块80的分区102/112的残差进行无损或(尽管)可逆的进一步变换。因此,解码器将能够获得整个块80的变换的变换系数水平,对变换系数水平进行逆无损变换,以针对每个分区102/112获得空间域或中间变换域中的预测残差,空域中的预测残差是通过对每个分区102/112重新变换获得的。
[0150]
此外,上面已经讨论了块80的各个分区的预测残差以相对于这些分区的各个帧内预测的备选方式被顺序地、逐个分区地量化和编码到数据流中。这已经关于图5以及关于图10和图11进行了描述。然而,解码器不需要通过以下二方面之间进行交替来执行解码:一方面的残差解码与通过组合一方面的帧内预测和另一方面的预测残差来重构各个分区。也就是说,在对某个块80进行解码时,解码器可以将各个分区的预测残差120的解码与包括各个分区的各个帧内预测的实际重构过程分离。参见图5:解码器可以根据一个处理任务从数据流14中解码所有分区的预测残差120,即块80的预测残差1201至1204,并且解码器可以根据另一任务,使用分区102
i
的预测残差120
i
,以便根据分区顺序126逐个分区地重构块80的内部。为此,解码器在第二任务中使用块80的帧内预测模式对每个分区120
i
执行帧内预测,然后加上从第一任务获得的预测残差120
i
,然后通过按分区顺序126进行到下一分区120
i 1
来继续块80的重构,以便执行空间预测,随后使用该分区的预测残差进行重构,以便校正帧内预测结果。解码器可以在开始执行预测和使用预测残差进行预测校正的第二任务之前完全地执行从数据流14中导出预测残差120的第一任务,或者解码器可以并行执行这两个任务,同时提供措施以保证某个分区102
i
的预测残差120
i
在需要时准备好,即在针对该分区102
i
的预测结果已经使用块的帧内预测模式获得并且需要校正时。具体地,在第一任务或阶段期间,解码器可以并行地对所有非零分区(即,以信号通知预测残差120
i
为非零的所有分区102)执行所有逆变换。
[0151]
一方面,注意当分区i的残差120
i
在变换域中被量化时,会发生这些分区的重构样本可能偏离(即超出或继承)某个允许的样本值范围。如上所述,它们可以用作参考样本118j的成员,用于按照顺序126的后续分区j。根据isp变型,为了预测按照顺序126的后续分区j,这些样本保留原样,同时执行对块80的这些样本进行裁剪,作为整个块80的最终裁剪步骤,由此例如在解码器侧增加实现友好性。因此,在导出分区102
i
的预测子时,可以使用根据分区顺序126在该分区102
i
之前的分区的、用作当前分区的参考的一个或个多已经重构样本118
i
中的尚未裁剪状态下的重构样本,其中,在执行顺序的重构之后,最后进行将重构样本从尚未裁剪状态裁剪到允许的样本值范围的状态,以最终重构预定块。在编码器侧,仅为了获得这样的样本的重构版本以用作后续编码块的预测参考而执行裁剪,以便保持与解码器的参考同步。然而,这种最终清理类型的裁剪仅是示例,备选地,可以立即执行裁剪,即在分区i的重构样本用作随后处理的分区j的参考样本118j之前。
[0152]
下面具体示意一个isp示例。具体地,根据该示例,针对帧内编码块80,数据流14通过分割模式标志160以信号通知其是否使用isp方案来编码。数据流14中的对应语法元素可以命名为intra_subpartitions_mode_flag。例如,如果该标志为1,则可以使用lip或isp方
案对帧内编码块80进行编码,否则使用正常帧内预测对块80进行编码。例如,仅在满足某个或某些条件的前提下,lip或isp方案可用于当前的帧内编码块80。例如,一个或多个条件可以包括:在例如块80的样本数量方面,帧内编码块80需要大于一些最小大小,和/或可以不允许帧内编码块80超过某个尺寸(至少在水平和垂直方向上都不允许),以便例如不引起太大的变换大小。更准确地说,lsp或isp模式可能仅在块80在至少一个方向(即水平或垂直方向)上小于或等于刚刚提到的最大变换相关大小的情况下才可用。因此,intra_subpartitions_mode_flag可以仅在块80满足刚才提到的条件的情况下存在于数据流中。否则,解码器可以推断帧内编码块80是正常帧内编码的。在分割模式标志intra_subpartitions_mode_flag指示帧内编码块80是lsp或isp编码的块的情况下,可以针对帧内编码块80,进一步以信号通知划分维度标志114。然而,可能并非不可避免地以信号显式通知该intra_subpartitions_mode_flag,而是在某些情况下被推断为指示某个划分维度104。例如,在帧内编码块80的宽度超过上述最大变换大小(但高度没有超过)的情况下,则划分维度104可能必须是水平的,并且在块80的高度超过了刚刚提到的最大变换大小(但宽度没有超过)的情况下,则维度104可能必须是垂直的。在这两种情况下,不会在数据流中显式地以信号通知intra_subpartitions_split_flag,而是由解码器相应地推断。可以如上所述在数据流中以信号通知帧内编码模式116,即通过使用在编码器和解码器侧构造的最可能帧内预测模式列表。而对于lip或isp帧内编码块80,数据流14可以通过mpm列表指针来以信号通知帧内编码模式,该指针,例如称为intra_luma_mpm_idx,不可避免地指向可能的帧内预测模式列表,在帧内编码块不是以isp方案编码的情况下,在数据流14中,该指针之前可能是mpm标志。如果该mpm标志(例如称为intra_luma_mpm_flag)具有某个标志状态,而不是指向最可能帧内预测模式列表的指针,则会在数据流中以信号通知指向帧内预测模式的剩余列表的指针。然而,如上所述,这仅仅是示例,对于正常编码的帧内预测块和isp帧内预测块二者,可以信号通知的帧内预测模式的集合可能是相同的,即覆盖所有支持的帧内预测模式。例如,可以针对两种类型的帧内编码块发送intra_luma_mpm_flag。备选地,针对两种类型的帧内预测块发送的指针能够直接指向支持的帧内预测模式的完整列表,而无需针对两种类型的帧内编码块的任何mpm标志。如果使用isp方案对帧内编码块80进行编码,则分区102/112的数量可以定义如下。具体地,编码器和解码器可以根据块80的大小来确定分区的数量。不会在数据流中消耗任何信号。对于较小的块大小,数量可以是2,否则分区102/112的数量是4。执行分区的帧内预测和数据流中的预测残差的编码的分区顺序可以在水平方向n14的情况下,沿着划分方向104从最左分区顺序指向最远分区,在垂直分区方向的情况下,从最上分区顺序指向最远分区。也不会为此消耗信令。如上所述,可以对每个分区102/112完成残差变换。也就是说,每个分区可以单独变换。与之相比,在正常帧内编码块80的情况下,变换的数量可以如下取决于帧内编码块80的大小:如果帧内编码块在水平和垂直方向上小于上述最大变换大小,则使用一个变换对帧内编码块80的残差进行编码,即对块80的残差完全进行一个变换。在水平方向上超过最大变换大小的情况下,在水平方向上将帧内编码块80分割为两半或对应数量的变换块,使得所述两半或变换块满足最大变换大小,并且对块80的残差每一半/变换块地进行一个变换。这同样适用于块80在垂直方向上超过最大变换大小的情况。如果在垂直和水平方向上均超过最大变换大小,则使用四个或对应数量的变换,在该块80的四个象限或块80的规则二维细分中,将块80的残差变换为对
应数量的变换块。此外,正常帧内编码块80的处理可以在以下方面偏离lip或isp编码的帧内编码块80:正常帧内编码块是整块进行帧内预测的。也就是说,正常帧内编码块不被细划分。进一步的差异可以涉及变换中用于对块80的预测残差进行编码的编码。对于每个变换,可以发送编码块标志188,例如tu_cbf_luma,但是对于正常的帧内编码块80,可能不可避免地针对块80内的每个变换编码该标志,在对块80进行isb编码并且先前变换的所有先前cbf为零的情况下,对于该块80的最后变换,可以推断该标志为1。此外,对每个变换内的子块的尺寸的选择在一方面的正常帧内编码块80和另一方面的isp编码块80之间可以不同。详情如上。然而,备选地,对于正常帧内编码块和isp编码块可以同样地完成将变换182细分为子块。例如,设log2sbw和log2sbh分别是子块宽度和高度的对数对偶,log2tbwidth和log2tbheight分别是变换的宽度和高度。然后,子块尺寸可以如下确定:
[0153][0154][0155]
上面的伪代码获得大小在表2中列出的子块。由于帧内编码块80的固有最小大小和正常帧内编码块的非细分,针对正常帧内编码块80仅产生4
×
4个系数的子块。最后应当注意的是,刚刚概述的示例可以引起不同大小的isp帧内预测块,包括仅划分为两个分区102/112的块,但是不管是否存在这样的isp帧内预测块,存在被划分为多于两个分区的isp帧内预测块。
[0156]
这是下面提出的实施效率改进实施例描述的出发点。注意,提出其描述作为处理如上所述的较大isp块的同时,处理某些大小的isp块(例如4
×
4、8
×
4、4
×
8块)的备选方式,但是甚至可以通过将以下基于分区的帧内编码构思转移到基于块的编解码器,而不进行迄今为止概述的块的isp处理,来实现更进一步的备选实施例。
[0157]
图12示出了根据实施例的用于从数据流14中基于块地解码图片的解码器20。因此,可以对预定块80进行解码,由此可以将预定块划分为子块,子块可以被理解为变换分区300。数据流14可以包括经编码的帧内编码模式116、经编码的划分维度标志114和预测残差的若干经编码的变换120。针对预定块80,例如以信号通知帧内编码模式116和划分维度标志114。相反,例如针对预定块80的各个变换分区,以信号通知预测残差的变换120。
[0158]
解码器20被配置为从数据流14中解码图片的预定块80的划分维度标志114,并且根据划分维度标志114将划分维度104设置为水平1041或垂直1042。例如,划分维度104指示解码器20要沿着对预定块80进行划分105的方向。
[0159]
根据实施例,解码器20被配置为通过使用上下文相关熵解码对划分维度标志114进行解码,上下文相关熵解码使用取决于帧内编码模式116的上下文。根据实施例,解码器20被配置为通过使用上下文相关熵解码对划分维度标志114进行解码,上下文相关熵解码使用包括以下的三个上下文之一:以信号通知非角度模式的帧内编码模式、以信号通知水平模式的帧内编码模式和以信号通知垂直模式的帧内编码模式。
[0160]
如果划分维度1041为水平,则预定块80例如被划分或分为垂直变换分区300
1b
至300
6b
,其跨越预定块801的整个垂直高度。备选地,如果划分维度1042为垂直,则预定块例如被划分或分为水平变换分区300
1a
至300
4a
,其跨越预定块802的整个水平宽度。换言之,解码器被配置为沿着预定维度1041或1042将预定块80划分为变换分区300,变换分区与在垂直于预定维度1041或1042的方向1031或1032上与预定块80一样宽。预定维度例如是划分维度104。
[0161]
变换分区300的数量例如大于2和/或变换分区300沿着预定维度1041或1042为一个样本宽1011或1012。备选地,变换分区300可以沿着预定维度1041或1042为两个或更多个样本宽。
[0162]
根据实施例,解码器20被配置为取决于以下内容设置变换分区300沿着预定维度104测量的宽度101:预定块80沿着预定维度104的大小101a、和/或预定块80的帧内编码模式116、和/或预定块80的帧内编码模式116是否是角度模式。
[0163]
根据实施例,宽度为w、高度为h的预定块80,即w
×
h尺寸,例如被水平或垂直分为相同大小的k个变换分区,对于水平分割(沿着垂直划分维度),每个变换分区的尺寸为w
×
h/k,对于垂直分割(沿着水平划分维度),每个变换分区的尺寸为w/k
×
h。
[0164]
解码器20被配置为基于以下内容来重构123预定块80:与预定块80相邻的已重构样本118、帧内编码模式116和预测残差的变换120。
[0165]
因此,解码器被配置为针对每个变换分区,从数据流中解码预测残差的变换120。根据实施例,解码器20被配置为针对每个分区,通过从数据流中解码编码变换划分标志188来从数据流中解码变换120。如果编码变换划分标志188未被设置,则解码器20被配置为将相应变换分区300的预测残差设置为零,并且如果编码变换划分标志被设置,则解码器20被配置为从数据流中解码相应变换分区的预测残差的变换120的变换系数。例如,如果编码变换划分标志188为零,则编码变换划分标志188未被设置。
[0166]
根据图12所示的实施例,针对每个变换分区300,可选地将编码变换划分标志188编码在数据流14中,基于编码变换划分标志188,解码器20被配置为针对变换分区300,或者解码预测残差的变换120,或者推断预测残差为零并且解码器20不必针对该变换分区解码变换120。备选地,解码器不对编码变换划分标志188进行解码,相反,解码器被配置为针对每个变换分区300,直接解码预测残差的变换120或解码整个预定块80的一个变换。
[0167]
根据实施例,解码器20被配置为从数据流14中顺序地解码变换分区300的编码变换划分标志188,并且如果所有先前的编码变换划分标志188都未被设置,则推断按照分区顺序210的最后变换分区(例如,变换分区300
4a
或变换分区300
6b
)的编码变换划分标志188被设置。
[0168]
根据实施例,解码器20被配置为通过使用上下文相关熵解码从数据流14中解码相应变换分区(例如,第二变换分区300
2a
或300
2b
)的编码变换划分标志1882,上下文相关熵解
码使用上下文,该上下文取决于针对按照预定变换分区顺序210在相应变换分区之前的先前变换分区(例如,第一变换分区300
1a
或300
1b
)解码的编码变换划分标志1881。
[0169]
此外,解码器20被配置为从数据流14中解码图片的预定块80的帧内编码模式116。
[0170]
解码器20被配置为以取决于帧内编码模式116的方式,根据与预定块80相邻的一个或多个已重构样本118对预定块80进行帧内预测122,以获得预定块80的预测子。根据实施例,解码器20被配置为针对每个变换分区300帧内预测122预测子。
[0171]
根据第一选项,变换分区300由解码器20顺序地重构。因此,解码器被配置为对第一变换分区300
1a
或300
1b
的预测子进行帧内预测1221,并使用针对第一变换分区300
1a
或300
1b
解码的预测残差的变换1201来校正该预测子,然后对第二变换分区300
2a
或3002
b
的预测子进行帧内预测1222,并使用针对第二变换分区300
2a
或300
2b
解码的预测残差的变换1202来校正该预测子。根据图12所示的经划分的预定块801和802,块802的后续变换分区300
3a
和300
4a
以及块801的后续变换分区300
3b
、300
4b
、300
5b
和300
6b
被相应地帧内预测和校正。
[0172]
根据第二选项,在一个步骤中重构变换分区300。因此,解码器20被配置为针对每个变换分区300,从数据流14中解码预测残差的变换120,并且针对每个变换分区300,帧内预测122预测子。例如,变换120的解码独立于帧内预测执行。根据实施例,在预定块80的重构123处,预测残差的所有变换120由解码器20解码并且所有预测子由解码器20帧内预测。换言之,在预定块80的重构123处,对于每个变换分区300,针对相应变换分区300解码的预测残差的变换120和与相应变换分区300相关联的预测子是可用的。
[0173]
根据实施例,解码器20被配置为针对每个变换分区300,将变换120重新变换到空间域中,以用于校正相应变换分区300内的预测子。换言之,可以对预测残差的变换120的变换系数应用逆变换,以获得空间域中的预测残差。
[0174]
根据实施例,在帧内预测模式(即帧内编码模式116)不是平面模式的情况下,变换120为dct变换,并且在帧内预测模式是平面模式的情况下,变换120为dst变换,或者变换为线性变换,线性变换的类型基于帧内预测模式、预定块80的块大小和/或专用语法元素来选择。因此,解码器例如被配置为基于帧内编码模式来确定预测残差的变换120的变换类型。对于上述重新变换,解码器使用例如逆变换类型。
[0175]
根据实施例,解码器20被配置为从数据流14中解码图片的预定块80的分割模式标志160。如果分割模式标志160指示第一分割模式,则解码器20被配置为针对每个变换分区,执行划分维度标志114的解码、划分105、和变换120的解码。如果分割模式标志160指示第二分割模式,则解码器20被配置为对预定块80内的预测残差的一个变换120进行解码,而不是针对每个变换分区300执行划分维度标志114的解码、划分105和变换120的解码。换言之,第一分割模式指示基于变换分区对预定块80进行解码,而第二分割模式表示在没有划分105的情况下对整个预定块80进行解码。因此在第二分割模式中,解码器20不使用任何变换分区,并且例如,针对预定块80,不在数据流14中编码与变换分区相关联的划分维度标志114、编码变换划分标志188和预测残差的单独变换120。
[0176]
图13示出了能够由图12所示的解码器执行的从数据流14中解码变换分区300的预测残差的变换120的实施例。根据实施例,解码器20是被配置为针对预定变换分区300
3a
或300
3b
(该实施例示出为,针对预定块802,沿着垂直划分维度1042划分的,针对预定块801,沿着水平划分维度1041划分的),通过从数据流14中解码最后位置指示1903来从数据流14中解
码预定变换分区300
3a
或300
3b
的预测残差的变换1203,最后位置指示1903指示变换1203沿着预定扫描顺序193的最后变换系数位置191,预定扫描顺序193扫描一维变换1203的变换系数120
31
至120
36
(与变换分区300
3a
相关联)或120
31
到120
34
(与变换分区300
3b
相关联)。另外,解码器20被配置为针对预定变换分区300
3a
或300
3b
,通过以下操作从数据流14中解码预定变换分区300
3a
或300
3b
的预测残差的变换1203:从数据流14中解码变换1203中沿着预定扫描顺序193直到最后变换系数位置191的变换系数120
31
至120
33
(与变换分区300
3b
相关联)或120
31
至120
33
(与变换分区300
3b
相关联),并且推断该变换120中沿着预定扫描顺序193超出最后变换系数位置191的变换系数120
34
至120
36
(与变换分区300
3a
相关联)或120
34
(与变换分区300
3b
相关联)为零。
[0177]
根据实施例,除了编码变换划分标志188之外,可以将最后位置指示190编码在数据流14中,例如关于图9所描述的。备选地,仅将最后位置指示190编码在数据流14中,而不对编码变换划分标志188进行编码。
[0178]
根据实施例,变换分区300沿着预定维度104为一个样本宽,并且变换120是一维变换。
[0179]
图14示出了用于将图片基于块地编码到数据流14中的编码器10的实施例,编码器10被配置为将图片的预定块80的划分维度标志114编码到数据流14中,划分维度标志114以信号通知要将划分维度104设置为水平1041或垂直1042。编码器10判断200,是否应对预定块80进行划分,以及如果要对预定块80进行划分,则例如根据预定块80的块大小和/或编码器对图片的一个或多个先前编码块的一个或多个划分判定200来决定应选择哪个划分维度104。
[0180]
编码器10被配置为沿着预定维度104将预定块80划分105为变换分区300,变换分区300在垂直于预定维度的方向上与预定块一样宽103。预定维度例如是划分维度104。因此,编码器10被配置为如果划分维度1041为水平,则执行垂直分割,并且如果划分维度1042为垂直,则执行水平分割。在解码器的上下文中,可选地,在解码器的上下文中如图12和图13所描述的和/或如关于图15至图18所描述的执行划分。
[0181]
编码器10被配置为以取决于帧内编码模式116的方式,根据与预定块80相邻的一个或多个已重构样本118对预定块80进行帧内预测,以获得预定块80的预测子。例如,这由预测级36的预测模块44执行,预测级36通过使用帧内预测模式116来生成预测信号26。根据实施例,编码器10被配置为对预定块的每个变换分区单独地执行帧内预测300。变换分区300例如被顺序地帧内预测、变换28、量化32和编码34到数据流14中。
[0182]
根据实施例,编码器10被配置为将图片的预定块80的帧内编码模式116编码到数据流14中。编码器10被配置为将例如相同的帧内编码模式116用于完整的预定块80,以获得预定块80的每个变换分区的预测残差24,该预测残差24可以被变换28、量化32和编码34到数据流14中。
[0183]
编码器10被配置为针对每个变换分区300,将预测残差的变换120编码到数据流14中,使得通过使用针对相应变换分区300编码的预测残差的变换120来校正每个变换分区300内的预测子,以重构预定块80。换言之,编码器10例如被配置为针对每个变换分区300,将相应变换分区300中的预测残差24变换28到频谱域中,以用于校正相应变换分区300内的预测子。
[0184]
根据实施例,变换分区的数量大于2和/或变换分区沿着预定维度为一个样本宽。
[0185]
根据实施例,编码器10被配置为通过将编码变换划分标志188编码到数据流14中,来针对每个分区300,将变换120编码到数据流14中。如果未设置编码变换划分标志188,择编码变换划分标志188以信号通知相应变换分区300的预测残差24为零,并且如果设置了编码变换划分标志188,则编码器被配置为将相应变换分区300的预测残差24的变换120的变换系数编码到数据流14中。例如,如果编码变换划分标志188为零,则未设置编码变换划分标志188。
[0186]
根据实施例,编码器10被配置为除了按照变换分区顺序210的最后变换分区(例如,对于垂直分割,变换分区300
8b
,或者对于水平分割,变换分区300
4b
)的编码变换划分标志(例如对于垂直分割,编码变换划分标志1888,或者对于水平分割,编码变换划分标志1884)之外,将变换分区300的编码变换划分标志188顺序地编码到数据流14中,如果所有先前编码变换划分标志(例如,对于垂直分割,所有先前编码变换划分标志1881至1887,或者对于水平分割,所有先前编码变换划分标志1881至1883)都未设置,则推断最后变换分区的编码变换划分标志被设置。
[0187]
根据实施例,编码器10被配置为通过使用上下文相关熵编码将相应变换分区300的编码变换划分标志188编码到数据流14中,上下文相关熵编码使用上下文,该上下文取决于针对按预定变换分区顺序210在相应变换分区300之前的先前变换分区300编码的编码变换划分标志188。
[0188]
根据实施例,编码器10被配置为针对预定变换分区300,通过将最后位置指示190编码到数据流14中,来将预定分区300的预测残差的变换120编码到数据流14中,最后位置指示190指示变换沿着预定扫描顺序的最后变换系数位置,预定扫描顺序扫描一维变换的变换系数。此外,编码器被配置为针对预定变换分区300,通过将变换中沿着预定扫描顺序直到最后变换系数位置的变换系数编码到数据流中,来将预定分区300的预测残差的变换120编码到数据流14中,其中变换中沿着预定扫描顺序超出最后变换系数位置的变换系数被推断为零。这可以与解码器类似地执行,如图13所述。
[0189]
例如,变换分区沿着预定维度104为一个样本宽,并且变换是一维变换。
[0190]
例如,在帧内预测模式116不是平面模式的情况下,变换为dct变换,并且在帧内预测模式116是平面模式的情况下,变换为dst变换。备选地,变换是线性变换,线性变换的类型基于帧内预测模式116、预定块80的块大小和/或专用语法元素来选择。
[0191]
根据实施例,编码器10被配置为将图片的预定块80的分割模式标志160编码到数据流14中。如果分割模式标志指示第一分割模式,则编码器被配置为执行划分维度标志114的编码、划分和每个变换分区300的变换120的编码。如果分割模式标志指示第二分割模式,则编码器被配置为对预定块内的预测残差的一个变换120进行编码,而不执行划分维度标志114的编码、划分和每个变换分区300的变换120的编码。
[0192]
根据实施例,编码器被配置为通过使用上下文相关熵编码来对划分维度标志114进行编码,上下文取决于帧内编码模式。
[0193]
根据实施例,编码器被配置为通过使用上下文相关熵编码对划分维度标志114进行编码,上下文相关熵编码使用包括以下三个上下文之一的上下文:以信号通知非角度模式的帧内编码模式116、以信号通知水平模式的帧内编码模式116、以信号通知垂直模式的
帧内编码模式116。
[0194]
根据实施例,编码器被配置为取决于以下内容来设置变换块300沿着预定维度104测量的宽度:预定块80沿着预定维度104的大小、和/或预定块80的帧内编码模式116、和/或预定块80的帧内编码模式116是否是角度模式。
[0195]
下面描述了帧内子分区(isp)编码模式扩展到4
×
4以及4
×
8和8
×
4块的子分区数量的修改,并且该扩展是有动机的。为了保持最坏情况下16个样本/循环的吞吐量,存在彼此独立的子分区。实验结果示出,对于ai配置,ctc和f类的增益分别为0.1%和0.47%,而在ra情况下,ctc和f类的增益分别为0.01%和0.25%。在ai情况下对编码运行时间的影响为102%,在ra情况下为100%。
[0196]
提供了关于将isp构思扩展到产生宽度小于4的子分区的所有isp块的影响的附加测试结果。实验结果示出了针对ai配置的ctc和f类,增益分别为0.05%和0.44%,在ra的情况下,f类的增益为0.24%(ctc没有改变)。
[0197]
另一方面,已经测试了的完全去除当前isp设计的宽度小于4的子分区的影响。该附加信息示出了,对于ai配置,ctc和f类的损失分别为0.14%和0.31%,而在ra情况下,ctc和f类的损失分别为0.04%和0.23%。
[0198]
1简介
[0199]
如[1]中所提出的,帧内子分区(isp)编码模式根据cu尺寸,将亮度帧内预测块垂直或水平地分为2或4个等大小的子分区。表6示出了不同的可能性。
[0200]
表6:根据当前vvc草案中的cu尺寸,由isp创建的子分区的数量
[0201][0202]
每个子分区都经过预测、变换、量化,并将经熵编码的系数发送给解码器。然后,子分区的重构样本用于生成下一子分区的预测,但是在所有子分区之间共享所使用的帧内模式。
[0203]
由于该过程位于帧内预测关键路径中(一般情况下,在获得先前子分区重构样本之前,无法解码子分区),因此需要强制每个子分区中最少16个样本,这保证了最坏情况下16个样本/循环的吞吐量。这其实就是4
×
8和8
×
4块具有两个子分区(而不是四个),而4
×
4块不能被细分的原因。
[0204]
下面的描述提出了isp的扩展,允许在4
×
4块上使用,并在4
×
8和8
×
4块的情况下修改了子分区的数量,同时保持16个样本/循环的吞吐量限制。这个目标可以通过产生彼此独立的子分区来实现,即不使用子分区的重构样本来预测下一子分区。
[0205]
如下所述的预定块80的划分和重构,例如,关于图15至图18,针对4
×
8和8
×
4块,可以由如关于图12和图13所描述的解码器或通过关于图14所描述的编码器来执行。
[0206]
注意,对isp的特定修改的后续呈现仅表示可能的实施例的提出,因此其变型是容易获得的。例如,在下文第6节中列出不太复杂或更直接的变型。
[0207]
2 isp扩展到新的块大小
[0208]
此贡献中引入的isp修改影响4
×
4、8
×
4和4
×
8块。
[0209]
2.1 4
×
4块
[0210]
根据图15和图16所示的实施例,预定块80被分为四个4
×
1(水平分割)或1
×
4(垂直分割)分区。然而,它们中的每一个的预测信号122是使用cu边界的相邻样本118作为参考样本生成的。因此,每个子分区(即变换分区300)彼此独立,并且可以在单个步骤中并行处理所有子分区。换言之,并且重复使用上面应用的术语,块80没有被划分或被保留为一个分区112,并且用于帧内预测或预测导出的参考样本118都位于块80之外。相反,如下所述将划分应用于基于变换的残差编码。这里,将一个分区112(即块)被划分为变换分区300,对每个变换分区单独进行变换,引起以上面关于数据结构120描述的方式编码的相应变换182。
[0211]
图15a至图15d示出了4
×
4块的垂直分割的实施例,即沿着水平划分维度进行划分。用于生成每个1
×
4预测的参考样本118仅是cu边界样本。请注意,预测与非isp情况相同。
[0212]
注意所有变换分区300的预测样本与针对不使用isp的块生成的预测样本(不包括对所有isp块禁用的参考样本和pdpc滤波操作)相同。使用isp的4
×
4块和不使用isp的4
×
4块之间的区别在于变换(在isp情况下存在四个1

d变换,在非isp情况下存在单个4
×
4变换)和系数的熵编码。
[0213]
2.2 8
×
4和4
×
8块
[0214]
根据如图17或图18所示的实施例,改变isp设计,使得变换分区300的数量为4,其中子分区1121和1122的数量为2。将每个子分区1121和1122细分为两个变换分区300。变换分区2和4的预测信号122不能分别使用变换分区1和3的重构样本来生成,如图17或18的实施例所示。因此,变换分区2独立于变换分区1,类似地,变换分区4独立于变换分区3。因此,可以在2个循环内处理4
×
8或8
×
4块,这相当于16个样本/循环的吞吐量。图中示出了用于该水平和垂直划分的情况。
[0215]
图17示出了预定块80的垂直分割的实施例。预定块80例如是被分为四个1
×
m变换分区300的4
×
m块,其中m≥8,被分为四个2
×
n变换分区300的8
×
n块,其中n≥4,或者被分为四个4
×
o变换分区300的16
×
o块,其中o≥1。来自变换分区2的重构样本可用于预测变换分区3,但是来自变换分区1和3的重构样本不能分别用于预测变换分区2和4。垂直分割与沿着水平划分维度进行划分相对应。
[0216]
图18示出了预定块80的水平分割的实施例。预定块80例如是被分为四个m
×
1变换块的m
×
4块,其中m≥8,被分为四个n
×
2变换分区300的n
×
8块,其中n≥4,或者被分为四个o
×
4变换分区300的o
×
16块,其中o≥4。来自变换分区2的重构样本可用于预测变换分区3,但是来自变换分区1和3的重构样本不能分别用于预测变换分区2和4。水平分割与沿着垂直划分维度进行划分相对应。
[0217]
如图17和图18所示,本文描述的解码器可以被配置为通过以下操作来执行以取决于帧内编码模式的方式,根据与预定块80相邻的一个或多个已重构样本1181执行对预定块80的帧内预测122,以获得预定块的预测子,以及通过使用针对相应变换分区300解码的预测残差的变换来校正每个变换分区300内的预测子,以重构预定块80:通过针对当前子分区(例如,图17中所示的子分区1121或图18中所示的子分区1021)并在继续处理后续子分区(例如,图17中所示的子分区1122或图18中所示的子分区1022)之前执行以下操作,来根据预定
子分区顺序126顺序地重构变换分区300组,预定块80的变换分区300被分组到变换分区组中,以形成针对每个变换分区300组的子分区(例如,图17中所示的1121和1122,以及如图18所示的1021和1022),预定子分区顺序126沿着预定维度104顺序地遍历子分区102/112。解码器被配置为通过以取决于帧内编码模式的方式,根据与当前子分区相邻的一个或多个已重构样本1181填充当前子分区,来导出122当前子分区的预测子。此外,解码器被配置为通过使用相应变换分区300的变换来校正由形成当前子分区的变换分区组所包括的每个变换分区300内的预测子,来重构当前子分区。
[0218]
如图17和图18所示,本文描述的编码器类似于解码器,例如,被配置为通过以下操作来执行以取决于帧内编码模式的方式,根据与预定块80相邻的一个或多个已重构样本1181,对预定块80进行帧内预测122,以获得预定块80的预测子,并且确定预定块80的预测残差,以用于使用要针对相应变换分区300编码的预测残差的变换来校正每个变换分区300内的预测子:通过以取决于所述帧内编码模式的方式,根据与当前子分区相邻的一个或多个已重构样本1181填充当前子分区,根据预定子分区顺序126顺序地对变换分区300组进行预测,以便导出当前子分区(例如,图17所示的1121,或图18所示的1021)的预测子,预定块80的变换分区300被分组到变换分区300组中,以形成针对每个变换分区组的子分区(例如,图17所示的1121和1122,或图18所示的1021和1022),预定子分区顺序126沿着预定维度104顺序地遍历子分区102/112,在继续后续子分区(例如,图17所示的1122,或图18所示的1022)之前,确定由形成当前子分区102/112的变换分区组所包括的每个变换分区300内的预测残差的变换,以便用于通过使用相应变换分区的变换来校正由形成当前子分区102/112的变换分区组所包括的每个变换分区300内的预测子,以重构当前子分区。
[0219]
根据图17和图18,解码器和/或编码器例如被配置为使用与预定块80相邻的已重构样本1181来预测122分组在一起以形成第一子分区(例如,图17所示的子分区1121或图18所示的子分区1021)的第一和第二变换分区300的预测子。为了预测122分组在一起以形成第二子分区(例如,图17所示的子分区1122或图18所示的子分区1022)的第三和第四变换分区300的预测子,解码器使用例如与预定块80相邻的已重构样本1182和/或与第三变换分区300相邻的第二变换分区300的已重构样本1182。换言之,为了预测122第二子分区1122/1022的变换分区300的预测子,解码器例如被配置为使用与第二子分区1122/1022相邻的已重构样本1182,其中至少一些已重构样本可以与先前子分区的已重构样本相关联,例如图17所示的子分区1121或图18所示的子分区1021。
[0220]
根据实施例,预定块80的子分区被顺序地重构或编码。换言之,第一子分区(例如根据图17的子分区1121或根据图18的子分区1021)在第一循环中被重构或编码,然后第二子分区(例如根据图17的子分区1122或根据图18的子分区1022)在第二循环中被重构或编码。因此,相同子分区的所有变换分区在相同循环中被重构或编码。换言之,与相同子分区相关联的变换分区可以并行地被重构或编码。因此,根据实施例,图15或图16中的完整预定块80可以被理解为一个分区(即子分区),这是因为所有变换分区300都是并行重构的。
[0221]
根据实施例,解码器和/或编码器被配置为使得每个子分区102/112的变换分区300的数量取决于预定块80的尺寸。
[0222]
根据实施例,解码器和/或编码器被配置为使得每个子分区102/112的变换分区300的数量在预定块80的尺寸超过预定阈值的情况下为1,并且在预定块80的尺寸不超过预
定阈值的情况下大于1。如果预定块超过某个尺寸,则避免进一步划分子分区以提高解码运行时间或编码运行时间是有利的。预定阈值例如为64
×
64个样本的块尺寸。换言之,isp的使用限于预定块80的尺寸不超过预定阈值的情况。
[0223]
根据实施例,解码器和/或编码器被配置为使得预定块中的子分区102/112的数量取决于预定块的尺寸和/或预定维度。
[0224]
根据实施例,解码器和/或编码器被配置为使得预定块80中的子分区102/112的数量在预定块80的尺寸低于另一预定阈值的情况下为1,并且在预定块80的尺寸不低于另一预定阈值的情况下大于1。另一预定阈值例如被确定为使得预定块80包括至少16个样本。另一预定阈值例如是预定块80的尺寸大于4
×
4样本、8
×
2样本、2
×
8样本、1
×
16样本或16
×
1样本的情况。在4
×
4样本的情况下,如图15或图16所示,预定块80包括例如具有四个1
×
4变换分区或四个4
×
1变换分区的一个子分区。在2
×
8样本的情况下,预定块80包括例如具有两个1
×
8变换分区的一个子分区,并且在8
×
2样本的情况下,预定块80包括例如具有两个8
×
1变换分区的一个子分区。在预定块的尺寸为1
×
16或16
×
1样本的情况下,整个块同时是子分区和变换分区。如果预定块80仅包括一个子分区,则该子分区例如等于整个预定块80。备选地,如图17和图18所示,预定块80的较大尺寸可以获得2个或更多个子分区,其包括2个或更多个变换分区。
[0225]
根据实施例,解码器和/或编码器被配置为使得预定块中的子分区的数量在以下方面取决于预定块的尺寸:在预定块的维度采用第一宽度和第一高度的情况下,该数量等于第一数量,在预定块的维度采用等于第一高度的第二宽度和等于第一宽度的第二高度的情况下,该数量等于不同于该第一数量的第二数量。如图15至18所示,宽度和高度相同的块与宽度相同但高度不同的块相比,子分区的数量不同。例如,不划分4
×
4尺寸的预定块80,即整个块表示具有四个变换分区的一个分区(即子分区)。相反,将具有4
×
8尺寸或8
×
4尺寸的预定块分为两个子分区。这也适用于较大的块。例如,不划分具有128
×
128尺寸的预定块80,但是可以将具有128
×
64尺寸的预定块80垂直(沿着水平划分维度)分为四个子分区。
[0226]
3实验结果
[0227]
根据常见的测试条件[2],利用vtm

4.0.1软件针对仅帧内(ai)、随机访问(ra)和低延迟b(ldb)配置评估所提出的方法。对应的仿真是在具有linux操作系统和gcc 7.2.1编译器的intel xeon集群(e5

2697a v4,avx2开启,turbo boost关闭)上进行的。
[0228]
表7:ai配置的结果
[0229][0230]
表8:ra配置的结果
[0231][0232]
表9:ldb配置的结果
[0233][0234]
[0235]
4附加信息
[0236]
4.1宽度小于4的子分区的使用
[0237]
考虑到样本通常以光栅扫描方式分配,并且某些实现将重构样本的输出写入4
×
1组,在jvet反映上已经提到使用宽度小于4的子分区作为潜在的硬件问题。因此,例如,1
×
n或2
×
n子分区可能会引起问题。来自1
×
n子分区的预测不是大问题,写出1
×
n子分区数据成为问题,这是因为数据通常每个循环水平地写出4或8个样本。为了使它工作,有必要保留4
×
n的中间缓冲器(寄存器)来存储这些数据,然后例如一次向存储器写入4个样本(例如用于去块)。读取用于重构的1
×
n逆变换输出也会出现同样的问题。这会增加时延,并且还会需要双缓冲。为此,下面提供附加的信息来评估使用这些子分区的影响。
[0238]
4.1.1移除宽度小于4的子分区
[0239]
该修改如下地影响4
×
n和8
×
n块的垂直分割:
[0240]
·4×
n:不再有垂直分割,即沿着水平划分维度。因此,每当在这些块之一上使用isp时,解码器或编码器推断使用了水平分割,因此不必解析分割标志语法元素。因此,例如使用4
×
1变换分区而不是1
×
n变换分区。
[0241]
·8×
n:垂直分割产生两个子分区而不是四个。因此预定块80例如被分为4
×
n子分区而不是1
×
n或2
×
n子分区。
[0242]
请注意,这种修改后的isp方法在2019年1月马拉喀什会议的ce3中作为测试1.1.2在[1]中提出。这种方法在vtm

4.0.1之上的结果在表10、表11和表12中呈现。
[0243]
表10:针对ai配置不具有宽度小于4的子分区的结果
[0244][0245][0246]
表11:针对ra配置不具有宽度小于4的子分区的结果
[0247][0248]
表12:针对ldb配置不具有宽度小于4的子分区的结果
[0249][0250]
4.1.2将独立子分区的isp扩展到宽度小于4的子分区
[0251]
在这种情况下,宽度小于4的子分区不会从isp结构中移除。代替地,对它们应用了与第2节中介绍的4
×
4、8
×
4和4
×
8相同的设计。将两种不同的情况区分为:
[0252]
·4×
n块的垂直分割与2.1节中解释的4
×
4的垂直分割的处理方式相同。例如,4
×
32块可以被垂直分为四个独立的1
×
32变换分区300,它们形成一个分区112。
[0253]
·8×
n块的垂直分割与2.2节中解释的8
×
4块的垂直分割的处理方式相同。例如,8
×
16块可以被分为四个2
×
16变换分区300,其中变换分区1和2形成分区1121,变换分区3和4形成分区1122,变换分区2和4不能分别使用变换分区1和3的重构样本来生成其对应的预测信号。
[0254]
该方法允许在所有垂直分割情况下(在水平分割的情况下,最小值仍为16
×
1)以至少4
×
4样本为一组写入重构样本。该方法(使用4
×
4、4
×
8、8
×
4上的独立变换分区以及4
×
n和8
×
n块的垂直分割)在vtm

4.0.1之上的结果在表13、表14和表15中呈现。
[0255]
因此,根据实施例,解码器被配置为将预定块分为16
×
m子块,其中m≥1,或者备选地分为4
×
n子块或n
×
4子块,其中n≥4。如上所述,该子块可选地被划分为两个或更多个较
小的变换分区。
[0256]
表13:针对ai配置在4
×
4、4
×
8、8
×
4上使用独立子分区以及4
×
n和8
×
n块的垂直分割的结果
[0257][0258]
表14:针对ra配置在4
×
4、4
×
8、8
×
4上使用独立子分区以及4
×
n和8
×
n块的垂直分割的结果
[0259][0260]
表15:针对ldb配置在4
×
4、4
×
8、8
×
4和8
×
4上使用独立子分区以及4
×
n和8
×
n块的垂直分割的结果
[0261][0262]
5结论
[0263]
报告的结果示出了ctc和f类的增益,对编码运行时的影响很小(ai)或没有影响(ra和ldb)。
[0264]
关于提出的附加信息,实验结果示出,移除宽度小于4的子分区会产生明显的损失,尤其是在ai中的c类和e类以及所有配置中的f类的情况下。此外,这种损失对编码运行时间的减少可以忽略不计。另一方面,新的isp设计扩展到产生宽度小于4的子分区的块在bd

rate增益方面比完全移除这些子分区具有更好的性能,因为它没有产生任何损失,它在f类中产生显著增益,对编码运行时间的影响非常小。
[0265]
6 isp划分结构复杂度降低方面
[0266]
如上所述,存在以上概述构思的变型,这里呈现一个变型。如上所述,在典型的解码器硬件实现中,影响顶层系统流水线的最关键方面之一是处理相关性。在isp的情况下,最小16个样本约束确保帧内预测中存在的环路相关性在吞吐量方面不是问题,这是因为vvc中最小的亮度块具有4
×
4尺寸,即16个样本。
[0267]
然而,isp在vvc设计中引入了新的非常窄的形状,即1
×
n、2
×
n、m
×
2和m
×
1。在1
×
n和2
×
n子分区的情况下,处理相关性可能会成为一个问题,因为像素通常以光栅扫描方式分配在内部线缓冲存储器中,以4
×
1为一组访问样本。为此,填充该缓冲区对于宽度小于4的所有子分区来说效率很低。这个问题的影响可以通过不同的硬件实现来减少(例如修改像素的分配方式或使用转置存储器),但是无论如何,它仍然意味着硬件实现复杂性的增加。
[0268]
图19a和图19b示出了针对预定块80的不同块大小的不同子分区112/p和变换分区300/t的示例,其中左侧示例示出了常规划分,右侧示例示出了根据本文描述的发明的所提出的划分。图19a右侧的预定块80的解码和/或编码可以类似于或如在图15a至图15d中描述的那样执行,并且图19a右侧的预定块80的解码和/或编码可以类似于或如图17中描述的那样执行。
[0269]
为了降低硬件实现的复杂度,建立了最小预测宽度4(变换大小保持不变)。这会通过以下方式影响4
×
m(m>4)和8
×
n(n>4)块的垂直分割:
[0270]
·4×
m:如图1a所示,像非isp块一样一次性预测整个块,并计算4
×
m残差信号。然
后,将残差分为四个独立处理的1
×
m(或两个2
×
8,对于m=8)变换子分区。
[0271]
·8×
n:如图1b所示,将块分为两个4
×
n预测子分区p1和p2。在计算出对p1的预测之后,生成4
×
n残差信号,并将其分为两个2
×
n变换子分区t1和t2,这些子分区单独进行处理。然后,对p2、t3和t4类似地重复相同的过程。然而,在这种情况下,预测信号可以使用p1区域的重构样本。
[0272]
7参考文献
[0273]
[1]s.de

lux
á
n

hern
á
ndez,v.george,j.ma,t.nguyen,h.schwarz,d.marpe and t.wiegand,"ce3:intra sub

partitions coding mode(tests 1.1.1 and 1.1.2),"文档jvet

m0102,marrakech,ma,2019。
[0274]
[2]f.bossen,j.boyce,x.li,v.seregin and k.s
ü
hring,"jvet common test conditions and software reference configurations for sdr video,"文档jvet

m1010,marrakech,ma,2019。
[0275]
虽然已经在装置的上下文中描述了一些方面,但是将清楚的是,这些方面还表示对应方法的描述,其中块或设备对应于方法步骤或方法步骤的特征。类似地,在方法步骤上下文中描述的方面也表示对相应块或项或者相应装置的特征的描述。可以由(或使用)硬件设备(诸如,微处理器、可编程计算机或电子电路)来执行一些或全部方法步骤。在一些实施例中,可以由这种装置来执行最重要方法步骤中的一个或多个方法步骤。
[0276]
本发明的数据流可以存储在数字存储介质上,或者可以在诸如无线传输介质或有线传输介质(例如,互联网)等的传输介质上传输。
[0277]
取决于某些实现要求,可以在硬件中或在软件中实现本发明的实施例。可以使用其上存储有电子可读控制信号的数字存储介质(例如,软盘、dvd、蓝光、cd、rom、prom、eprom、eeprom或闪存)来执行实现,该电子可读控制信号与可编程计算机系统协作(或者能够与之协作)从而执行相应方法。因此,数字存储介质可以是计算机可读的。
[0278]
根据本发明的一些实施例包括具有电子可读控制信号的数据载体,其能够与可编程计算机系统协作以便执行本文所述的方法之一。
[0279]
通常,本发明的实施例可以实现为具有程序代码的计算机程序产品,程序代码可操作以在计算机程序产品在计算机上运行时执行方法之一。程序代码可以例如存储在机器可读载体上。
[0280]
其他实施例包括存储在机器可读载体上的计算机程序,该计算机程序用于执行本文所述的方法之一。
[0281]
换言之,本发明方法的实施例因此是具有程序代码的计算机程序,该程序代码用于在计算机程序在计算机上运行时执行本文所述的方法之一。
[0282]
因此,本发明方法的另一实施例是其上记录有计算机程序的数据载体(或者数字存储介质或计算机可读介质),该计算机程序用于执行本文所述的方法之一。数据载体、数字存储介质或记录介质通常是有形的和/或非暂时性的。
[0283]
因此,本发明方法的另一实施例是表示计算机程序的数据流或信号序列,所述计算机程序用于执行本文所述的方法之一。数据流或信号序列可以例如被配置为经由数据通信连接(例如,经由互联网)传送。
[0284]
另一实施例包括处理装置,例如,计算机或可编程逻辑器件,所述处理装置被配置
为或适于执行本文所述的方法之一。
[0285]
另一实施例包括其上安装有计算机程序的计算机,该计算机程序用于执行本文所述的方法之一。
[0286]
根据本发明的另一实施例包括被配置为向接收机(例如,以电子方式或以光学方式)传送计算机程序的装置或系统,该计算机程序用于执行本文所述的方法之一。接收器可以是例如计算机、移动设备、存储设备等。装置或系统可以例如包括用于向接收器传送计算机程序的文件服务器。
[0287]
在一些实施例中,可编程逻辑器件(例如,现场可编程门阵列)可以用于执行本文所述的方法的功能中的一些或全部。在一些实施例中,现场可编程门阵列可以与微处理器协作以执行本文所述的方法之一。通常,方法优选地由任意硬件装置来执行。
[0288]
本文描述的装置可以使用硬件装置、或者使用计算机、或者使用硬件装置和计算机的组合来实现。
[0289]
本文描述的装置或本文描述的装置的任何组件可以至少部分地在硬件和/或软件中实现。
[0290]
本文描述的方法可以使用硬件装置、或者使用计算机、或者使用硬件装置和计算机的组合来执行。
[0291]
本文描述的方法或本文描述的装置的任何组件可以至少部分地由硬件和/或由软件执行。
[0292]
上述实施例对于本发明的原理仅是说明性的。应当理解的是,本文所述的布置和细节的修改和变形对于本领域其他技术人员将是显而易见的。因此,旨在仅由所附专利权利要求的范围来限制而不是由借助对本文的实施例的描述和解释所给出的具体细节来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献