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

通过使用自适应颜色空间变换处理视频信号的方法和设备与流程

2022-07-11 04:52:26 来源:中国专利 TAG:


1.本发明涉及视频信号处理方法和装置,并且更具体地,涉及用于对视频信号进行编码或解码的视频信号处理方法和装置。


背景技术:

2.压缩编译指代用于通过通信线路发送数字化信息或以适合于存储介质的形式存储信息的一系列信号处理技术。压缩编码的对象包括诸如语音、视频和文本的对象,并且特别地,用于对图像执行压缩编码的技术被称为视频压缩。考虑到空间相关性、时间相关性和随机相关性,通过去除过多的信息来执行对视频信号的压缩编译。然而,随着各种媒体和数据传输媒体的最新发展,需要更有效的视频信号处理方法和装置。


技术实现要素:

3.技术问题
4.本公开的一个方面用于提高视频信号编译效率。
5.技术方案
6.根据本公开的实施例的用于对视频信号进行解码的方法包括,从比特流中获得指示变换跳过标志是否存在于变换单元语法中的变换跳过激活标志,所述变换跳过标志指示变换跳过是否被应用于包括在当前块中的变换块,从所述比特流获得指示调色板模式是否被应用的调色板激活标志,当所述变换跳过激活标志指示所述变换跳过标志存在于所述变换单元语法中时,或者当所述调色板激活标志指示所述调色板模式的应用时,从所述比特流中获得与在变换跳过模式中允许的最小量化参数相关的信息,基于与所述最小量化参数相关的信息,获得所述最小量化参数,基于所获得的最小量化参数,校正量化参数,以及基于所校正的量化参数,重构所述当前块,其中,当所述变换跳过标志指示对所述当前块的变换块应用变换跳过时,不对所述变换块应用变换。
7.根据本公开的实施例的用于对所述视频信号进行解码的方法包括:从所述比特流中获得所述变换跳过标志,当所述变换跳过标志指示不对所述变换块应用变换跳过时,基于量化参数偏移获得校正的量化参数,当所述校正的量化参数小于0时,将所述校正的量化参数限幅为0,以及基于所述校正的量化参数重构所述当前块。
8.根据本公开的实施例的用于对视频信号进行解码的方法包括:从所述比特流中获得所述变换跳过标志,当所述变换跳过标志指示对所述变换块应用变换跳过时,基于量化参数偏移获得校正的量化参数,当所述校正的量化参数小于所述最小量化参数时,将所述校正的量化参数限幅为所述最小量化参数,以及基于所述校正的量化参数重构所述当前块。
9.根据本公开的实施例的用于对所述视频信号进行解码的方法包括:从所述比特流中获得指示颜色空间变换是否应用于所述当前块的颜色空间变换激活标志,以及基于所述颜色空间变换激活标志和所述变换块的颜色分量来确定所述量化参数偏移。
10.在根据本公开的实施例的用于对所述视频信号进行解码的方法中,所述量化参数偏移的确定包括:当所述颜色空间变换激活标志指示不对所述当前块应用颜色空间变换时,确定所述量化参数偏移为0,并且当所述颜色空间变换激活标志指示对所述当前块应用颜色空间变换时,针对所述变换块的每个颜色分量,确定所述量化参数偏移为预先确定的偏移。
11.在根据本公开的实施例的用于对所述视频信号进行解码的方法中,从序列参数集(sps)、图片参数集(pps)、图片报头或切片报头当中的至少一个比特流中获得所述变换跳过激活标志、所述调色板激活标志以及所述最小量化参数相关信息。
12.根据本公开的实施例的用于对所述视频信号进行解码的方法包括:从所述比特流中获得指示除了0之外的一个或多个变换系数是否存在于第二通道变换块中的第二变换系数标志,所述第二通道变换块包括在与所述当前块对应的第二通道块中,从所述比特流中获得指示除了0之外的一个或多个变换系数是否存在于第三通道变换块中的第三变换系数标志,所述第三通道变换块包括在与所述当前块对应的第三通道块中,并且当指示当前处理的树的类型的信息为dual_tree_luma或single_tree、所述当前块的预测方法为帧内预测、并且帧内子分区模式不应用于所述当前块时,基于颜色空间变换激活标志是否指示颜色空间变换不应用于所述当前块,从所述比特流获得第一变换系数标志,所述第一变换系数标志指示除了0之外的一个或多个变换系数是否存在于所述当前块中包括的第一通道变换块中,其中所述single_tree指示在分区包括所述当前块的上位区域中使用单树,并且所述dual_tree_luma指示在分区包括所述当前块的上位区域中使用双树,并且所述当前块中包括的分量为第一通道分量。
13.在根据本公开的实施例的用于对所述视频信号进行解码的方法中,从所述比特流中获得所述第一变换系数标志包括:当所述颜色空间变换激活标志指示颜色空间变换不应用于所述当前块时,从所述比特流中获得所述第一变换系数标志。
14.在根据本公开的实施例的用于对所述视频信号进行解码的方法中,从所述比特流中获得所述第一变换系数标志包括:当满足多个条件中的一个并且所述颜色空间变换激活标志指示颜色空间变换被应用于所述当前块时,从所述比特流中获得所述第一变换系数标志,并且所述多个条件包括:与所述当前块对应的第二通道块和第三通道块存在并且所述第二变换系数标志指示除了0之外的一个或多个变换系数存在于所述第二通道变换块中的条件、与所述当前块对应的第二通道块和第三通道块存在并且所述第三变换系数标志指示除了0之外的一个或多个变换系数存在于所述第三通道变换块中的条件、所述当前块的宽度大于最大亮度变换样本数的条件、以及所述当前块的高度大于最大亮度变换样本数的条件。
15.根据本公开的实施例的用于对所述视频信号进行解码的方法进一步包括,当没有从所述比特流中获得所述第一变换系数标志时,将所述第一变换系数标志配置为指示除了0之外的一个或多个变换系数存在于所述第一通道变换块中。
16.根据本公开的实施例的用于对视频信号进行解码的设备,包括处理器和存储器,其中,基于所述存储器中存储的指令,所述处理器从比特流获得指示变换跳过标志是否存在于变换单元语法中的变换跳过激活标志,所述变换跳过标志指示变换跳过是否被应用于包括在当前块中的变换块,从所述比特流获得指示调色板模式是否被应用的调色板激活标
志,当所述变换跳过激活标志指示所述变换跳过标志存在于所述变换单元语法中时,或者当所述调色板激活标志指示所述调色板模式的应用时,从所述比特流中获得与在变换跳过模式中允许的最小量化参数相关的信息,基于与所述最小量化参数相关的信息,获得所述最小量化参数,基于所获得的最小量化参数,校正量化参数,并且基于所校正的量化参数,重构所述当前块,并且当所述变换跳过标志指示对所述当前块的变换块应用变换跳过时,不对所述变换块应用变换。
17.基于存储在所述存储器中的指令,根据本公开的实施例的用于对所述视频信号进行解码的所述设备的处理器,从所述比特流中获得所述变换跳过标志,当所述变换跳过标志指示不对所述变换块应用变换跳过时,基于量化参数偏移获得校正的量化参数,当所述校正的量化参数小于0时,将所述校正的量化参数限幅为0,并且基于所述校正的量化参数重构所述当前块。
18.基于存储在所述存储器中的指令,根据本公开的实施例的用于对视频信号进行解码的所述设备的处理器,从所述比特流中获得所述变换跳过标志,当所述变换跳过标志指示对所述变换块应用变换跳过时,基于量化参数偏移获得校正的量化参数,当所述校正的量化参数小于所述最小量化参数时,将所述校正的量化参数限幅为所述最小量化参数,并且基于所述校正的量化参数重构所述当前块。
19.基于存储在所述存储器中的指令,根据本公开的实施例的用于对所述视频信号进行解码的装置的处理器,从所述比特流中获得指示颜色空间变换是否应用于所述当前块的颜色空间变换激活标志,并且基于所述颜色空间变换激活标志和所述变换块的颜色分量来确定所述量化参数偏移。
20.基于存储在所述存储器中的指令,根据本公开的实施例的用于对所述视频信号进行解码的所述设备的处理器,当所述颜色空间变换激活标志指示不对所述当前块应用颜色空间变换时,确定所述量化参数偏移为0,并且当所述颜色空间变换激活标志指示对所述当前块应用颜色空间变换时,针对所述变换块的每个颜色分量,确定所述量化参数偏移为预先确定的偏移。
21.从序列参数集(sps)、图片参数集(pps)、图片报头或切片报头当中的至少一个比特流中获得根据本公开的实施例的用于对所述视频信号进行解码的所述设备的所述变换跳过激活标志、所述调色板激活标志以及所述最小量化参数相关信息。
22.基于存储在所述存储器中的指令,根据本公开的实施例的用于对所述视频信号进行解码的所述设备的所述处理器,从所述比特流中获得指示除了0之外的一个或多个变换系数是否存在于第二通道变换块中的第二变换系数标志,所述第二通道变换块包括在与所述当前块对应的第二通道块中,从所述比特流中获得指示除了0之外的一个或多个变换系数是否存在于第三通道变换块中的第三变换系数标志,所述第三通道变换块包括在与所述当前块对应的第三通道块中,并且当指示当前处理的树的类型的信息为dual_tree_luma或single_tree,所述当前块的预测方法为帧内预测,并且帧内子分区模式不应用于所述当前块时,基于颜色空间变换激活标志是否指示颜色空间变换不应用于所述当前块,从所述比特流中获得第一变换系数标志,所述第一变换系数标志指示除了0之外的一个或多个变换系数是否存在于所述当前块中包括的第一通道变换块中,并且所述single_tree指示在分区包括所述当前块的上位区域中使用单树,并且所述dual_tree_luma指示在分区包括所述
当前块的上位区域中使用双树,并且所述当前块中包括的分量为第一通道分量。
23.基于存储在所述存储器中的指令,当所述颜色空间变换激活标志指示颜色空间变换不应用于所述当前块时,根据本公开的实施例的用于对所述视频信号进行解码的所述设备的处理器从所述比特流中获得所述第一变换系数标志。
24.基于存储在所述存储器中的指令,当满足多个条件中的一个并且所述颜色空间变换激活标志指示颜色空间变换被应用于所述当前块时,根据本公开的实施例的用于对所述视频信号进行解码的所述设备的所述处理器从所述比特流中获得所述第一变换系数标志,并且所述多个条件包括:与所述当前块对应的第二通道块和第三通道块存在并且所述第二变换系数标志指示除了0之外的一个或多个变换系数存在于所述第二通道变换块中的条件、与所述当前块对应的第二通道块和第三通道块存在并且所述第三变换系数标志指示除了0之外的一个或多个变换系数存在于所述第三通道变换块中的条件、所述当前块的宽度大于最大亮度变换样本数的条件、以及所述当前块的高度大于最大亮度变换样本数的条件。
25.基于存储在所述存储器中的指令,根据本公开的实施例的用于对所述视频信号解码的所述设备的处理器当没有从所述比特流中获得所述第一变换系数标志时,将所述第一变换系数标志配置为指示除了0之外的一个或多个变换系数存在于所述第一通道变换块中。
26.根据本公开的实施例的用于对视频信号进行编码的方法包括生成指示变换跳过标志是否存在于变换单元语法中的变换跳过激活标志,所述变换跳过标志指示变换跳过是否被应用于包括在当前块中的变换块,生成指示调色板模式是否被应用的调色板激活标志,当所述变换跳过激活标志指示所述变换跳过标志存在于所述变换单元语法中时,或者当所述调色板激活标志指示应用所述调色板模式时,基于所述最小量化参数,生成与在变换跳过模式中允许的最小量化参数相关的信息,以及基于所述变换跳过激活标志、所述调色板激活标志和所述最小量化参数相关信息生成比特流,其中,当所述变换跳过标志指示变换跳过应用于所述当前块的变换块时,不对所述变换块应用变换。
27.根据本公开的实施例的用于对视频信号进行编码的设备包括处理器和存储器,其中,基于存储在所述存储器中的指令,所述处理器生成指示变换跳过标志是否存在于变换单元语法中的变换跳过激活标志,所述变换跳过标志指示变换跳过是否被应用于包括在当前块中的变换块,生成指示调色板模式是否被应用的调色板激活标志,当所述变换跳过激活标志指示所述变换跳过标志存在于所述变换单元语法中时,或者当所述调色板激活标志指示应用所述调色板模式时,基于所述最小量化参数,生成与在变换跳过模式中允许的最小量化参数相关的信息,并且基于所述变换跳过激活标志、所述调色板激活标志和所述最小量化参数相关信息生成比特流,并且,当所述变换跳过标志指示变换跳过应用于所述当前块的变换块时,不对所述变换块应用变换。
28.有益效果
29.根据本公开的实施例,可以提高视频信号编译效率。
附图说明
30.图1是根据本发明的实施例的视频信号编码装置的示意性框图。
31.图2是根据本发明的实施例的视频信号解码装置的示意性框图。
32.图3示出其中在图片中编译树单元被划分为编译单元的实施例。
33.图4示出用于用信号发送四叉树和多类型树的划分的方法的实施例。
34.图5和图6更具体地图示根据本发明的实施例的帧内预测方法。
35.图7是具体地图示用于通过编码器变换残差信号的方法的图。
36.图8是具体地图示用于通过编码器和解码器对变换系数进行逆变换来获取残差信号的方法的图。
37.图9图示与每个变换类型相对应的基函数。
38.图10图示用于dct-ii、dct-v、dct-viii、dst-i和dst-vii的变换类型的每个索引的信号幅度。
39.图11图示用于dst-iv、dct-iv、dst-vii和dct-viii的变换类型的每个索引的信号幅度。
40.图12图示根据当前块的预测模式配置变换候选集的方法。
41.图13图示根据集索引确定的水平变换核和垂直变换核。
42.图14是详细地图示通过执行自适应颜色变换的编码器将残差信号变换为变换系数的方法的图。
43.图15是详细地图示通过执行自适应颜色变换的解码器对变换系数进行逆变换以获得残差信号的方法的图。
44.图16图示根据本公开的第一方法的校正量化参数值并基于校正的量化参数执行缩放(解量化)的方法。
45.图17图示根据本公开的第二方法的校正量化参数值并基于校正的量化参数执行缩放(解量化)的方法。
46.图18图示根据本公开的第三方法的校正量化参数值并基于校正的量化参数来执行缩放(解量化)的方法。
47.图19图示根据本公开的第四方法的校正量化参数值并基于校正的量化参数执行缩放(解量化)的方法。
48.图20图示根据本公开的第五方法的校正量化参数值并基于校正的量化参数执行缩放(解量化)的方法。
49.图21图示用信号发送应用于变换跳过模式的最小量化参数的方法。
50.图22图示以帧内子分区(isp)模式对块进行分区的实施例。
51.图23图示子块变换(sbt)方法。
52.图24图示作为与变换树相关的语法结构的transform_tree()语法结构。
53.图25图示根据本公开的实施例的transform_unit()语法结构。
54.图26图示根据本公开的另一个实施例的transform_unit()语法结构。
具体实施方式
55.考虑到本发明中的功能,本说明书中使用的术语可以是当前广泛使用的通用术语,但是可以根据本领域的技术人员的意图、习俗或新技术的出现而改变。另外,在某些情况下,可能存在申请人任意选择的术语,并且在这种情况下,其含义在本发明的相应描述部
分中进行了描述。因此,应基于整个说明书中的术语和内容的实质含义来解释本说明书中使用的术语。
56.在本说明书中,一些术语可以解释如下。在一些情况下,编译可以解释为编码或解码。在本说明书中,通过执行视频信号的编码(编译)来生成视频信号比特流的装置被称为编码装置或编码器,并且执行视频信号比特流的解码(解码)以重构视频信号的装置被称为解码装置或解码器。另外,在本说明书中,视频信号处理装置被用作包括编码器和解码器两者的概念的术语。信息是包括所有值、参数、系数、元素等的术语。在一些情况下,含义被不同地解释,因此本发明不限于此。“单元”被用作指代图像处理的基本单位或图片的特定位置的含义,并且指代包括亮度分量和色度分量中的至少一个的图像区域。另外,“块”指代包括亮度分量和色度分量(即,cb和cr)当中的特定分量的图像区域。然而,取决于实施例,诸如“单元”、“块”、“分区(partition)”和“区域”的术语可以互换使用。另外,在本说明书中,单元可以用作包括编译单元、预测单元和变换单元的全部的概念。图片指示场或帧,并且根据实施例,这些术语可以互换使用。
57.图1是根据本发明的实施例的视频信号编码装置100的示意性框图。参考图1,本发明的编码装置100包括变换单元110、量化单元115、逆量化单元120、逆变换单元125、滤波单元130、预测单元150和熵编译单元160。
58.变换单元110通过对残差信号进行变换来获得变换系数的值,该残差信号是输入的视频信号与由预测单元150生成的预测信号之间的差。例如,可以使用离散余弦变换(dct)、离散正弦变换(dst)或小波变换。dct和dst通过将输入图片信号分割成多个块来执行变换。在变换中,编译效率可以根据变换区域中的值的分布和特性而变化。量化单元115对从变换单元110输出的变换系数值的值进行量化。
59.为了改进编译效率,代替照原样对图片信号进行编译的方法,使用一种方法,其使用通过预测单元150已经编译的区域来预测图片,并通过将在原始图片和预测的图片之间的残差值添加到预测的图片来获得重构图片。为了防止编码器和解码器中的不匹配,当在编码器中执行预测时,应该使用可以在解码器中使用的信息。为此,编码器再次执行重构编码的当前块的处理。逆量化单元120对变换系数的值进行逆量化(缩放),并且逆变换单元125使用逆量化(缩放)的变换系数值来重构残差值。同时,滤波单元130执行滤波操作以改善重构图片的质量并改善编译效率。例如,可以包括去块滤波器、样本自适应偏移(sao)和自适应环路滤波器。滤波后的图片被输出或存储在解码图片缓冲器(dpb)156中,以用作参考图片。
60.为了增加编译效率,代替照原样对图片信号进行编译,使用用于获取重构图片的方法,其中,使用已经通过预测单元150被编译的区域来预测图片,并且将原始图片和预测图片之间的残差值添加到预测图片。帧内预测单元152在当前图片内执行帧内预测,并且帧间预测单元154通过使用存储在解码图片缓冲器156中的参考图片来预测当前图片。帧内预测单元152从当前图片中的重构区域执行帧内预测,并将帧内编码信息发送到熵编译单元160。再次,帧间预测单元154可以包括运动估计单元154a和运动补偿单元154b。运动估计单元154a通过参考重构的特定区域来获得当前区域的运动向量值。运动估计单元154a可以将参考区域的位置信息(参考帧、运动向量等)发送到熵编译单元160以被包括在比特流中。运动补偿单元154b使用从运动估计单元154a发送的运动向量值执行帧间运动补偿。
61.预测单元150包括帧内预测单元152和帧间预测单元154。帧内预测单元152在当前图片中执行帧内预测,并且帧间预测单元154执行帧间预测以通过使用存储在dpb 156中的参考图片来预测当前图片。帧内预测单元152根据当前图片中的重构样本执行帧内预测,并将帧内编译信息发送到熵编译单元160。帧内编码信息可以包括帧内预测模式、最可能模式(mpm)标志和mpm索引中的至少一种。帧内编码信息可以包括关于参考样本的信息。帧间预测单元154可以包括运动估计单元154a和运动补偿单元154b。运动估计单元154a参考重构的参考图片的特定区域以获得当前区域的运动向量值。运动估计单元154a将关于参考区域的运动信息集(参考图片索引、运动向量信息等)发送到熵编译单元160。运动补偿单元154b使用从运动估计单元154a发送的运动向量值来执行运动补偿。帧间预测单元154将包括关于参考区域的运动信息集的帧间编码信息发送到熵编译单元160。
62.根据另一实施例,预测单元150可以包括帧内块复制(bc)预测单元(未图示)。帧内bc预测单元从当前图片中的重构样本执行帧内bc预测,并将帧内bc编码信息发送到熵编译单元160。帧内bc预测单元参考当前图片中的特定区域并获得块向量值,其指示将被用于当前区域的预测的参考区域。帧内bc预测单元可以使用所获得的块向量值来执行帧内bc预测。帧内bc预测单元将帧内bc编码信息发送到熵编译单元160。帧内bc编码信息可以包括块向量信息。
63.当执行上述图片预测时,变换单元110变换在原始图片和预测图片之间的残差值以获得变换系数值。在这种情况下,可以以图片内的特定块为单位执行变换,并且可以在预设范围内改变特定块的大小。量化单元115对在变换单元110中生成的变换系数值进行量化,并将其发送到熵编译单元160。
64.熵编译单元160对量化的变换系数信息、帧内编译信息和帧间编译信息进行熵编译以生成视频信号比特流。在熵编译单元160中,可以使用可变长度编译(vlc)方法、算术编译方法等。vlc方法将输入的符号变换成连续的码字,并且码字的长度可以是可变的。例如,频繁出现的符号被表达为短码字,而不太频繁出现的符号被表达为长码字。作为vlc方法,可以使用基于上下文的自适应可变长度编译(cavlc)方法。算术编译将连续的数据符号变换成单个小数,并且算术编译可以获得表示每个符号所需的最佳小数位数。作为算术编译,可以使用基于上下文的自适应算术编译(cabac)。例如,熵编译单元160可以对表示量化的变换系数的信息进行二值化。另外,熵编译单元160可以通过对二进制信息进行算术编译来生成比特流。
65.使用网络抽象层(nal)单元作为基本单位来封装所生成的比特流。nal单元包括整数个编译的编译树单元。为了在视频解码器中对比特流进行解码,首先,必须将比特流分离成nal单元,并且然后必须对每个分离的nal单元进行解码。同时,可以通过诸如图片参数集(pps)、序列参数集(sps)、视频参数集(vps)等等的高层集合的原始字节序列有效载荷(rbsp)来发送对视频信号比特流进行解码所需的信息。
66.同时,图1的框图示出根据本发明的实施例的编码装置100,并且分开显示的块在逻辑上区分并示出编码装置100的元件。因此,取决于设备的设计上述编码装置100的元件可以被安装为一个芯片或多个芯片。根据实施例,上述编码装置100的每个元件的操作可以由处理器(未示出)执行。
67.图2是根据本公开的实施例的视频信号解码装置200的示意性框图。参照图2,本公
开的解码装置200包括熵解码单元210、解量化单元220、逆变换单元225、滤波单元230和预测单元250。
68.熵解码单元210对视频信号比特流进行熵解码,以提取每个区域的变换系数信息、帧内编码信息、帧间编码信息等。例如,熵解码单元210可以从视频信号比特流获得用于特定区域的变换系数信息的二进制码。此外,熵解码单元210通过对二进制码进行逆二值化来获得量化的变换系数。解量化单元220对量化的变换系数进行解量化。逆变换单元225通过使用解量化的变换系数来重构残差值。视频信号处理设备200通过将由逆变换单元225获得的残差值与由预测单元250获得的预测值相加来重构原始像素值。
69.同时,滤波单元230对图片执行滤波以改善图像质量。这可以包括用于减少块失真的去块滤波器和/或用于去除整个图片的失真的自适应环路滤波器。滤波后的图片被输出或存储在dpb 256中,以用作下一个图片的参考图片。
70.预测单元250包括帧内预测单元252和帧间预测单元254。预测单元250通过使用通过上述熵解码单元210解码的编码类型、每个区域的变换系数和帧内/帧间编码信息来生成预测图片。为了重构其中执行解码的当前块,可以使用当前图片或包括当前块的其他图片的解码区域。仅将当前图片用于重构(即,执行帧内预测或帧内bc预测)的图片(或图块(tile)/切片(slice))称为帧内图片或i图片(或图块/切片),并且执行所有帧内预测、帧间预测以及帧内bc预测的图片(或图块/切片)被称为帧间图片(或图块/切片)。为了预测帧间图片(或图块/切片)当中的每个块的样本值,使用最多一个运动向量和参考图片索引的图片(或者图块/切片)被称为预测图片或p图片(或图块/切片),并且使用最多两个运动向量和参考图片索引的图片(或图块/切片)称为双向预测图片或b图片(或图块/切片)。换句话说,p图片(或图块/切片)使用最多一个运动信息集来预测每个块,并且b图片(或图块/切片)使用最多两个运动信息集来预测每个块。这里,运动信息集包括一个或多个运动向量和一个参考图片索引。
71.帧内预测单元252使用帧内编码信息和当前图片中的恢复的样本来生成预测块。如上所述,帧内编码信息可以包括帧内预测模式、最可能模式(mpm)标志和mpm索引中的至少一种。帧内预测单元252通过使用位于当前块的左侧和/或上侧的恢复的样本作为参考样本来预测当前块的样本值。在本公开中,恢复的样本、参考样本和当前块的样本可以表示像素。而且,样本值可以表示像素值。
72.根据实施例,参考样本可以是当前块的邻近块中包括的样本。例如,参考样本可以是与当前块的左边界相邻的样本和/或与上边界相邻的样本。另外,参考样本可以是在当前块的邻近块的样本当中的在距当前块的左边界预定距离内的线上的样本和/或位于距当前块的上边界预定距离内的线上的样本。在这种情况下,当前块的邻近块可以包括左(l)块、上(a)块、左下(bl)块、右上(ar)块或左上(al)块。
73.帧间预测单元254使用参考图片和存储在dpb 256中的帧间编码信息来生成预测块。帧间编译信息可以包括用于参考块的当前块的运动信息集(参考图片索引、运动向量信息等)。帧间预测可以包括l0预测、l1预测和双向预测。l0预测意指使用l0图片列表中包括的一个参考图片进行预测,并且l1预测意指使用l1图片列表中包括的一个参考图片进行预测。为此,可能需要一个集合的运动信息(例如,运动向量和参考图片索引)。在双向预测方法中,可以使用多达两个参考区域,并且两个参考区域可以存在于同一参考图片中或可以
存在于不同图片中。即,在双向预测方法中,可以使用多达两个集合的运动信息(例如,运动向量和参考图片索引),并且两个运动向量可以对应于相同的参考图片索引或不同的参考图片索引。在这种情况下,参考图片可以在时间方面在当前图片之前和之后显示(或输出)。根据实施例,在双向预测方案中使用的两个参考区域可以是从l0图片列表和l1图片列表中的每一个中选择的区域。
74.帧间预测单元254可以使用运动向量和参考图片索引来获得当前块的参考块。参考块在与参考图片索引相对应的参考图片中。而且,由运动向量指定的块的样本值或其内插值可以用作当前块的预测子。对于具有子像素(sub-pel)单位像素精度的运动预测,例如,可以使用用于亮度信号的8抽头内插滤波器和用于色度信号的4抽头内插滤波器。然而,以子像素为单位的用于运动预测的内插滤波器不限于此。以这种方式,帧间预测单元254执行运动补偿以根据先前使用运动信息重构的运动图片来预测当前单元的纹理。在这种情况下,帧间预测单元可以使用运动信息集。
75.根据另一实施例,预测单元250可以包括帧内bc预测单元(未被图示)。帧内bc预测单元可以通过参考包括当前图片中的重构样本的特定区域来重构当前区域。帧内bc预测单元从熵解码单元210获得关于当前区域的帧内bc编码信息。帧内bc预测单元获得指示当前图片中的特定区域的当前区域的块向量值。帧内bc预测单元可以使用所获得的块向量值来执行帧内bc预测。帧内bc编码信息可以包括块向量信息。
76.通过将从帧内预测单元252或帧间预测单元254输出的预测值与从逆变换单元225输出的残差值相加生成重构的视频图片。即,视频信号解码装置200使用由预测单元250生成的预测块和从逆变换单元225获得的残差来重构当前块。
77.同时,图2的框图示出根据本发明的实施例的解码装置200,并且分开显示的块在逻辑上区分并示出解码装置200的元件。因此,取决于设备的设计上述解码装置200的元件可以被安装为一个芯片或多个芯片。根据实施例,上述解码装置200的每个元件的操作可以由处理器(未示出)执行。
78.图3图示其中在图片中编译树单元(ctu)被分割成编译单元(cu)的实施例。在视频信号的编译过程中,可以将图片分割成一系列编译树单元(ctu)。编译树单元由亮度样本的nxn块和与其相对应的色度样本的两个块组成。编译树单元可以被分割成多个编译单元。编译树单元可以不被分割,并且可以是叶节点。在这种情况下,编译树单元本身可以是编译单元。编译单元指代在上述视频信号的处理过程中,即,帧内/帧间预测、变换、量化和/或熵编译中用于处理图片的基本单元。一个图片中编译单元的大小和形状可能不恒定。编译单元可以具有正方形或矩形形状。矩形编译单元(或矩形块)包括垂直编译单元(或垂直块)和水平编译单元(或水平块)。在本说明书中,垂直块是其高度大于宽度的块,并且水平块是其宽度大于高度的块。此外,在本说明书中,非正方形块可以指代矩形块,但是本发明不限于此。
79.参考图3,首先将编译树单元分割成四叉树(qt)结构。即,在四叉树结构中具有2nx2n大小的一个节点可以被分割成具有nxn大小的四个节点。在本说明书中,四叉树也可以称为四元树。可以递归地执行四叉树分割,并非所有节点都需要以相同的深度分割。
80.同时,上述四叉树的叶节点可以进一步被分割成多类型树(mtt)结构。根据本发明的实施例,在多类型树结构中,一个节点可以被分割成水平或垂直划分的二叉或三叉树结构。即,在多类型树结构中,存在四个分割结构,诸如垂直二元分割、水平二元分割、垂直三
元分割和水平三元分割。根据本发明的实施例,在每个树结构中,节点的宽度和高度都可以具有2的幂。例如,在二叉树(bt)结构中,2nx2n大小的节点可以通过垂直二元分割被分割成两个nx2n节点,并通过水平二元分割将其分割成两个2nxn节点。另外,在三叉树(tt)结构中,将2nx2n大小的节点通过垂直三元分割被分割成(n/2)x2n、nx2n和(n/2)x2n节点,并通过水平三元分割被分割成2nx(n/2)、2nxn和2nx(n/2)节点。可以递归地执行此多类型树分割。
81.多类型树的叶节点可以是编译单元。如果没有指示用于编译单元的分割或者编译单元与最大变换长度相比不大,则编译单元被用作预测和变换的单元而不进一步分割。另一方面,可以通过诸如pps、sps、vps等的更高级别集合的rbsp来预定义或发送上述四叉树和多类型树中的以下参数中的至少一个。1)ctu大小:四叉树的根节点大小,2)最小qt大小minqtsize:允许的最小qt叶节点大小,3)最大bt大小maxbtsize:最大允许的bt根节点大小,4)最大tt大小maxttsize:最大允许的tt根节点大小,5)最大mtt深度maxmttdepth:从qt的叶节点分割的mtt的最大允许深度,6)最小bt大小minbtsize:最小允许的bt叶节点大小,7)最小tt大小minttsize:最小允许的tt叶节点大小。
82.图4图示用于用信号发送四叉树和多类型树分割的方法的实施例。可以使用预设标志来用信号发送上述四叉树和多类型树分割。参考图4,指示节点是否被分割的标志“split_cu_flag”、指示四叉树节点是否被分割的标志“split_qt_flag”、指示多类型树节点的分割方向的标志“mtt_split_cu_vertical_flag”或者指示多类型树节点的分割形状的标志“mtt_split_cu_binary_flag”中的至少一个可以被使用。
83.根据本发明的实施例,可以首先用信号发送“split_cu_flag”,其是指示当前节点是否被分割的标志。当“split_cu_flag”的值为0时,其指示当前节点未被分割,并且当前节点成为编译单元。当当前节点是编译树单元时,编译树单元包括一个非分割编译单元。当当前节点是四叉树节点“qt节点”时,当前节点是四叉树的叶节点“qt叶节点”,并成为编译单元。当当前节点是多类型树节点“mtt节点”时,当前节点是多类型树的叶节点“mtt叶节点”,并且成为编译单元。
84.当“split_cu_flag”的值是1时,可以根据“split_qt_flag”的值将当前节点分割成四叉树或多型树的节点。编译树单元是四叉树的根节点,并且可以首先被分割成四叉树结构。在四叉树结构中,为每个节点“qt节点”用信号发送“split_qt_flag”。当“split_qt_flag”的值为1时,该节点被分割成4个正方形节点,而当“split_qt_flag”的值为0时,该节点成为四叉树“qt leaf node”的叶节点,并且该节点被分割成多类型树节点。根据本发明的实施例,可以根据当前节点的类型来限制四叉树分割。当当前节点是编译树单元(四叉树的根节点)或四叉树节点时,可以允许进行四叉树分割,而当当前节点是多类型树节点时,可能不允许四叉树分割。每个四叉树叶节点“qt叶节点”可以进一步被分割成多类型树结构。如上所述,当“split_qt_flag”为0时,当前节点可以被分割成多类型节点。为了指示分割方向和分割形状,可以用信号发送“mtt_split_cu_vertical_flag”和“mtt_split_cu_binary_flag”。当“mtt_split_cu_vertical_flag”的值是1时,指示节点“mtt节点”的垂直分割,并且当“mtt_split_cu_vertical_flag”的值是0时,指示节点“mtt节点”的水平分割。另外,当“mtt_split_cu_binary_flag”的值是1时,节点“mtt节点”被分割成两个矩形节点,并且当“mtt_split_cu_binary_flag”的值是0时,节点“mtt节点”被分割成三个矩形节点。
85.对不再分割的编译单元(即,编码单元树的叶节点)执行用于编译的图片预测(运动补偿)。在下文中将执行这种预测的基本单元称为预测单元或预测块。在下文中,在本说明书中使用的术语单元可以用作代替预测单元的术语,该预测单元是用于执行预测的基本单元。然而,本发明不限于此,并且可以更广泛地理解为包括编译单元的概念。
86.图5和图6更加具体地图示根据本发明的实施例的帧内预测方法。如上所述,帧内预测单元通过使用位于当前块的左侧和/或上侧的恢复的样本作为参考样本来预测当前块的样本值。
87.首先,图5示出在帧内预测模式中用于当前块的预测的参考样本的实施例。根据实施例,参考样本可以是与当前块的左边界相邻的样本和/或与上边界相邻的样本。如图5中所示,当当前块的大小是wxh并且与当前块相邻的单个参考线的样本被用于帧内预测时,可以使用位于当前块的左侧和上侧的最大2w 2h 1个邻近样本来配置参考样本。
88.另外,如果尚未恢复要被用作参考样本的样本中的至少一些,则帧内预测单元可以通过执行参考样本填充过程来获得参考样本。另外,帧内预测单元可以执行参考样本滤波处理以减少帧内预测中的误差。即,可以对通过参考样本填充过程获得的周围样本和/或参考样本执行滤波,以获得滤波后的参考样本。帧内预测单元使用由此获得的参考样本来预测当前块的样本。帧内预测单元通过使用尚未被滤波的参考样本或已被滤波的参考样本来预测当前块的样本。在本公开中,周围样本可以包括至少一条参考线上的样本。例如,周围样本可以包括在与当前块的边界相邻的线上的相邻样本。
89.接下来,图6示出用于帧内预测的预测模式的实施例。对于帧内预测,可以用信号发送指示帧内预测方向的帧内预测模式信息。帧内预测模式信息指示被包括在帧内预测模式集中的多个帧内预测模式中的一个。当当前块是帧内预测块时,解码器从比特流接收当前块的帧内预测模式信息。解码器的帧内预测单元基于提取的帧内预测模式信息对当前块执行帧内预测。
90.根据本发明的实施例,帧内预测模式集可以包括在帧内预测中使用的所有帧内预测模式(例如,总共67个帧内预测模式)。更具体地,帧内预测模式集可以包括平面模式、dc模式以及多个(例如,65个)角度模式(即,方向模式)。可以通过预设索引(即,帧内预测模式索引)来指示每个帧内预测模式。例如,如图6中所示,帧内预测模式索引0指示平面模式,并且帧内预测模式索引1指示dc模式。此外,帧内预测模式索引2至66可以分别指示不同的角度模式。角度模式分别指示在预设角度范围内彼此不同的角度。例如,角度模式可以指示以顺时针方向在45度和-135度之间的角度范围(即,第一角度范围)内的角度。可以基于12点钟方向定义角度模式。在这种情况下,帧内预测模式索引2指示水平对角线(hdia)模式,帧内预测模式索引18指示水平(水平,hor)模式,帧内预测模式索引34指示对角线(dia)模式,帧内预测模式索引50指示垂直(ver)模式,并且帧内预测模式索引66指示垂直对角线(vdia)模式。
91.另一方面,为了增加编译效率,代替照原样对上述残差信号进行编译,可以使用对通过对残差信号进行变换而获得的变换系数值进行量化并对量化的变换系数进行编译的方法。如上所述,变换单元可以通过对残差信号进行变换来获得变换系数值。在这种情况下,特定块的残差信号可以分布在当前块的整个区域上。因此,能够通过对残差信号进行频域变换将能量集中在低频域中,来改进编译效率。在下文中,将详细描述用于对残差信号进
行变换或逆变换的方法。
92.图7是具体地图示用于通过编码器变换残差信号的方法的图。如上所述,空间域中的残差信号可以被变换到频域。编码器可以通过对所获得的残差信号进行变换来获得变换系数。首先,编码器可以获取包括当前块的残差信号的至少一个残差块。残差块可以是当前块或当前块被划分成的块中的任何一个。在本公开中,残差块可以被称为包括当前块的残差样本的残差阵列或残差矩阵。另外,在本公开中,残差块可以表示变换单元或具有与变换块的大小相同的大小的块。
93.接下来,编码器可以使用变换核来变换残差块。用于对残差块进行变换的变换核可以是具有可分离为垂直变换和水平变换的特性的变换核。在这种情况下,对残差块的变换可以被分离成垂直变换和水平变换。例如,编码器可以通过在残差块的垂直方向上应用变换核来执行垂直变换。另外,编码器可以通过在残差块的水平方向上应用变换核来执行水平变换。在本公开中,变换核可以用作术语来指代用于变换残差信号的参数集,诸如变换矩阵、变换阵列和变换函数。根据实施例,变换核可以是多个可用核中的任何一个。此外,基于不同变换类型的变换核可以用于垂直变换和水平变换中的每一个。将参照图12至图13稍后描述用于选择多个可用变换核中的一个的方法。
94.编码器可以将从残差块变换的变换块发送到量化单元以对其进行量化。在这种情况下,变换块可以包括多个变换系数。具体地,变换块可以由以二维布置的多个变换系数组成。类似于残差块,变换块的大小可以与当前块或当前块被划分为的块中的任何一个的大小相同。传送到量化单元的变换系数可以被表达为量化值。
95.另外,编码器可以在对变换系数进行量化之前执行附加的变换。如图7中所图示,上述变换方法可以被称为初次变换,并且附加变换可以被称为二次变换。二次变换对于每个残差块可以是选择性的。根据实施例,编码器可以通过对仅通过初次变换难以将能量集中在低频域中的区域执行二次变换来改善编译效率。例如,可以将二次变换附加到其中残差值在除残差块的水平或垂直方向以外的方向上相对较大地显现的块中。与帧间预测的块的残差值相比,帧内预测的块的残差值可以具有在除水平或垂直方向之外的方向上变化的相对较高的概率。因此,编码器可以附加地对帧内预测的块的残差信号执行二次变换。另外,编码器可以省略对帧间预测的块的残差信号的二次变换。
96.对于另一示例,可以根据当前块或残差块的大小来确定是否执行二次变换。另外,可以根据当前块或残差块的大小来使用具有不同大小的变换核。例如,可以将8
×
8二次变换应用于其中宽度或高度中的较短边短于第一预设长度的块。另外,可以将4
×
4二次变换应用于其中宽度或高度中的较短边大于第二预设长度的块。在这种情况下,第一预设长度可以是大于第二预设长度的值;然而,本公开不限于此。此外,与初次变换不同,二次变换可能不能分离成垂直变换和水平变换。该二次变换可以被称为低频不可分离变换(lfnst)。
97.另外,在特定区域中的视频信号的情况下,由于亮度的突然改变,即使执行频率变换,也不会减少高频带中的能量。因此,因量化的压缩性能的性能可能劣化。另外,当对残差值很少存在的区域执行变换时,编码时间和解码时间可能不必要地增加。因此,可以省略对特定区域的残差信号的变换。可以通过与特定区域的变换有关的语法元素来确定是否对特定区域的残差信号执行变换。例如,语法元素可以包括变换跳过信息。变换跳过信息可以是变换跳过标志。当关于残差块的变换跳过信息指示变换跳过时,不执行对残差块的变换。在
这种情况下,编码器可以立即量化尚未对其进行区域变换的残差信号。参考图7描述的编码器的操作可以通过图1的变换单元来执行。
98.与变换有关的上述语法元素可以是从视频信号比特流解析的信息。解码器可以对视频信号比特流进行熵解码以获得与变换有关的语法元素。另外,编码器可以通过对与变换有关的语法元素进行熵编码来生成视频信号比特流。
99.图8是具体地图示用于通过编码器和解码器对变换系数进行逆变换来获取残差信号的方法的图。在下文中,为了便于描述,将描述通过编码器和解码器中的每一个的逆变换单元执行逆变换操作。逆变换单元可以通过对逆量化的变换系数进行逆变换来获得残差信号。首先,逆变换单元可以从特定区域的与变换有关的语法元素中检测是否执行了特定区域的逆变换。根据实施例,当特定变换块上的与变换有关的语法元素指示变换跳过时,可以省略对变换块的变换。在这种情况下,对于变换块,逆初次变换和逆二次变换两者都可以被省略。另外,逆量化变换系数可以用作残差信号。例如,解码器可以通过使用逆量化的变换系数作为残差信号来重构当前块。上述逆初次变换表示用于初次变换的逆变换,并且可以被称为初次逆变换。
100.根据另一实施例,用于特定变换块的与变换有关的语法元素可以不指示变换跳过。这里,逆变换单元可以确定是否执行用于二次变换的逆二次变换。例如,如果变换块是帧内预测的块的变换块,可以对变换块执行逆二次变换。另外,可以基于与变换块相对应的帧内预测模式来确定用于对应变换块的二次变换核。作为另一个示例,可以基于变换块的大小来确定是否执行逆二次变换。
101.逆变换单元可以执行解量化的变换系数或逆二次变换的变换系数的逆初次变换。像初次变换一样,逆初次变换可以分离成垂直变换和水平变换。例如,逆变换单元可以对变换块执行垂直逆变换和水平逆变换以获得残差块。逆变换单元可以基于用于对变换块进行变换的变换核来对变换块进行逆变换。例如,编码器可以显式地或隐式地用信号发送指示多个可用变换核中的应用于当前变换块的变换核的信息。解码器可以通过使用指示用信号发送的变换核的信息,在多个可用变换核中选择要用于变换块的逆变换的变换核。逆变换单元可以通过使用通过对变换系数进行逆变换而获得的残差信号来重构当前块。
102.另一方面,图片的残差信号的分布对于每个区域可以是不同的。例如,特定区域中的残差信号的值的分布可以根据预测方法而变化。当使用相同的变换核对多个不同的变换区域进行变换时,对每个变换区域,编译效率可以根据变换区域中的值的分布和特性而变化。因此,当从多个可用的变换核中自适应地选择用于变换特定变换块的变换核时,可以进一步改善编译效率。即,编码器和解码器可以被配置成在变换视频信号时附加地使用除了基本变换核之外的变换核。用于自适应地选择变换核的方法可以被称为自适应多核变换(amt)或多变换选择(mts)。稍后将参考相关附图描述自适应地选择变换核的方法。在本公开中,为了便于解释,变换和逆变换可以统称为变换。此外,将变换核和逆变换核统称为变换核。
103.在下文中,将参考图9描述可以用于视频信号的变换的多个变换核。根据本公开的实施例,变换核可以是基于特定基函数推导的核。可以基于不同的基函数来获得多个不同变换核中的每一个。可以基于与不同变换类型中的每一个相对应的基函数来获得多个变换核。
104.图9图示与每个变换类型相对应的基函数。根据实施例,可用于变换视频残差信号的变换核可以包括以下中的至少一个:基于离散余弦变换类型2(dct-ii)的变换核、基于离散余弦变换类型5(dct-v)的变换核、基于离散余弦变换类型8(dct-viii)的变换核、基于离散正弦变换类型1(dst-i)的变换核及基于离散正弦变换类型7(dst-vii)的变换核。
105.参照图9,与上述dct-ii、dct-v、dct-viii、dst-i和dst-vii的相应变换类型相对应的基函数可以被表示为余弦或正弦函数。例如,与相应的dct-ii、dct-v和dct-viii相对应的基函数可以是余弦型函数,并且与相应的dst-i和dst-vii相对应的基函数可以是正弦型函数。此外,可以以用于每个频率bin的基函数的形式来表达与特定变换类型相对应的基函数。例如,基函数ti(j)可以是对应于第i个频率bin的基函数。即,当由i指示的值较小时,指示与较低频率相对应的基函数。此外,当由i指示的值较大时,指示与较高频率相对应的基函数。在图9中,j可以指示从0到n-1的整数。
106.基函数ti(j)可以被表达为表示第i行第j列中的元素的二维矩阵。这里,使用基于图9的变换类型的变换核的变换在执行变换时具有可分离的特性。也就是说,可以在水平方向和垂直方向中的每一个分别变换对残差信号的变换。例如,使用关于残差块x的变换矩阵t的变换可以被表达为矩阵运算txt’。这里,t’是指变换矩阵t的转置矩阵。此外,使用关于变换块y的变换矩阵t的逆变换可以表达为t’yt。
107.由图9中所图示的基函数定义的变换矩阵的值可以呈小数形式而非整数形式。可能难以在视频编码装置和解码装置中的硬件中实现小数值。因此,从包括小数形式的值的原始变换核整数近似的变换核可以用于编码和解码视频信号。可以经由缩放和舍入原始变换核来生成包括整数值的近似变换核。近似变换核中包括的整数值可以是由预配置的位数可表示的范围内的值。预配置的位数可以是8或10。根据近似,可以不维持dct和dst的正交特性。然而,由此导致的编译效率损失不大,因此,在硬件实现方面,以整数形式近似变换核可能是有利的。
108.图10图示dct-ii、dct-v、dct-viii、dst-i和dst-vii的变换类型的每个索引的信号幅度。图10图示每个频率bin的基函数当中的与最低频率bin相对应的基函数的形式。图10图示每个频率bin的基函数中的与第0频率bin相对应的基函数。在图10中,水平轴表示基函数中的索引j(j=0,1,

,n-1),而垂直轴表示信号的幅度值。n表示要进行变换的特定区域中的样本的数量。
109.如图10所示,在dst-vii中,随着索引j增加,信号幅度趋于增加。因此,像帧内预测块的残差块,dst-vii对于其中残差信号的幅度随着水平和垂直方向上的距离相对于残差块的左上方增加而增加的残差块的变换可能是有效的。
110.另一方面,在dct-viii中,随着索引j增加,信号幅度趋向于减小。也就是说,dct-viii满足与dst-vii的二元性特征。因此,dct-viii对于其中残差信号的幅度随着水平和垂直方向上的距离相对于残差块的左上方增加而减小的残差块的变换可能是有效。
111.在dst-i中,随着基函数中的索引j增加,信号幅度增加,然后信号幅度从特定索引开始减小。因此,dst-i对于在其中心处具有大残差信号幅度的残差块的变换可能是有效的。
112.dct-ii的第0个基函数表示dc。因此,它对于在内部具有均匀信号幅度分布的残差块的变换可能是有效的。
113.dct-v类似于dct-ii。然而,在dct-v中,当索引j为0时的信号幅度具有比当索引j不为0时的信号幅度更小的值,即,当索引j为1时,dct-v具有其中直线弯曲的信号模型。
114.如上所述,如果使用具有可分离特性的变换核,则可以在残差块的水平和垂直方向中的每一个上执行变换。具体地,可以通过进行两次2d矩阵乘法运算来执行残差块的变换。矩阵乘法运算可以涉及对应于等于或高于预配置水平的水平的计算量。因此,当使用基于dct-ii的变换核来变换残差块时,可以通过使用蝶形结构来减少计算量。然而,由于相对高的实施方式复杂度,dst-vii和dct-viii的实施方式在计算量方面可能是困难的。因此,可以使用分别具有与dst-vii和dct-viii的特性类似的特性并且具有相对低的实施方式复杂度的变换类型。
115.根据实施例,离散正弦变换类型iv(dst-iv)和离散余弦变换类型iv(dct-iv)可以分别代替dst-vii和dct-viii。图11图示变换类型(例如,dst-iv、dct-iv、dst-vii和dct-viii)的每个索引的信号幅度。图11(a)图示与dst-iv相对应的基函数和与dct-iv相对应的基函数。可以从用于样本数量2n的dct-ii推导用于样本数量n的dst-iv和dct-iv。也就是说,用于样本数量2n的dct-ii部分蝶形结构包括用于样本数量n的dct-iv。可以通过从用于样本数量n的dct-iv以逆序布置符号逆运算以及对应的基函数来实现用于样本数目n的dst-iv。
116.如图11(b)所示,dst-iv指示与dst-vii类似的信号模型。因此,像帧内预测块的残差块,dst-iv对于其中残差信号幅度随着水平和垂直方向上的距离相对于残差块的左上方增加而增加的残差块的变换可能是有效的。dct-iv示出与dct-viii的信令模型类似的信令模型。因此,dct-iv对于用于变换具有在特定边界处最大且在从所述特定边界进一步朝另一边界的方向上减小的残差信号量值的残差块的变换可能是有效的。
117.如果仅基于上述变换类型之一的变换核用于变换视频信号,则难以根据原始信号的特性和根据预测模式而变化的残差信号的图样来执行自适应变换。因此,在残差信号的变换中,根据本公开的实施例的编码器和解码器可以通过使用从多个可用的变换核中针对每个区域所选择的变换核来提高编译效率。
118.在现有的高效率视频编译(hevc)标准中,使用上述多种变换类型中的基于dct-ii的变换核来变换残差信号,并且通过仅针对大小为4
×
4的帧内预测块有限地使用基于dst-vii的变换核来执行残差信号变换。如上所述,dct-ii可以适合于帧间预测块的残差信号的变换,但可能不适合于帧内预测块的残差信号的变换。也就是说,根据预测当前块的方法,残差块内的残差信号的图样可以不同。
119.因此,从多个可用变换核中选择的至少一个变换核可以用于变换特定变换块。根据实施例,编码器和解码器可以基于预测当前块的方法来选择用于当前块的至少一个变换区域的变换核。该方法可以被称为上述的自适应多核变换(amt)。如果根据用于特定区域的预测方法所确定的变换核用于变换对应区域,则与通过使用基于dct-ii的变换核来对所有区域执行变换的情况相比,可以提高编译效率。
120.图12图示根据当前块的预测模式来配置变换候选集的方法。根据本公开的实施例,编码器和解码器可以基于与当前块相对应的变换候选集来选择用于当前块的至少一个变换区域的变换核。变换候选集可以包括多个候选变换核。变换候选集可以根据所述当前块的预测模式而包括不同候选变换核。
121.根据实施例,当前块可以是基于多个帧内预测模式中的一个来预测的块。这里,当前块的残差信号的图样可以根据用于当前块的预测的帧内预测模式而不同。如上所述,帧内预测模式信息可以指示帧内预测方向。因此,当前块的残差信号的图样可以根据由当前块的帧内预测模式信息所指示的预测方向而不同。编码器和解码器可以通过根据预测方向使用多个不同的变换候选集来提高编译效率。
122.因此,编码器和解码器可以从与当前块的帧内预测模式相对应的变换候选集中确定将在当前块的变换区域中使用的变换核。例如,可以经由指示变换候选集中包括的多个候选变换核中的一个候选变换核的候选索引用信号发送要在变换区域中使用的变换核。如果对应于当前块的帧内预测模式的变换候选集包括两个候选变换核,则指示在变换区域中使用的变换核的候选索引可以被表达为1位。
123.此外,可以针对变换区域的垂直和水平方向中的每一个使用不同的变换候选集。由于基于方向性而执行的帧内预测方法的特性,预测区域的残差信号的垂直方向图样和水平方向图样可以彼此不同。因此,可以从单独的变换候选集获得用于使用特定帧内预测模式预测的块的垂直变换核和水平变换核。在本公开中,用于特定变换区域的垂直变换的变换核可以被称为垂直变换核。用于特定变换区域的水平变换的变换核可以被称为水平变换核。图12(a)图示分别与67个帧内预测模式索引相对应的变换候选集。在图12(a)中,垂直(v)表示用于垂直变换核的变换候选集。水平(h)表示用于水平变换核的变换候选集。
124.图12(b)图示根据变换候选集所定义的候选变换核。根据实施例,第一变换候选集(例如,图12b中的变换集0)可以包括基于dst-vii的候选变换核和基于dct-viii的候选变换核。第二变换候选集(例如,图12(b)中的变换集1)可以包括基于dst-vii的候选变换核和基于dst-i的候选变换核。第三变换候选集(例如,图12(b)中的变换集2)可以包括基于dst-vii的候选变换核和基于dct-v的候选变换核。图12图示变换候选集包括两个候选变换核,但本公开不限于此。
125.根据另一实施例,当前块可以是帧间预测块。这里,可以从预配置的变换候选集获得在当前块的变换区域中使用的变换核。例如,预配置的变换候选集可以是上述多个变换候选集之一。图12(c)图示如果当前块是帧间预测块则与当前块相对应的变换候选集。例如,对应于帧间预测块的预配置的变换候选集可以包括基于dct-viii的候选变换核和基于dst-vii的候选变换核。也就是说,用于帧间预测块的变换区域的变换核可以是基于dct-viii的候选变换核和基于dst-vii的候选变换核中的一个。
126.根据附加实施例,上述实施例可以有限地仅应用于亮度分量的变换块。这里,预配置的默认变换核可以用于色度分量的变换块。例如,默认变换核可以是基于dct-ii的变换核。
127.根据附加实施例,编码器可以根据变换区域中的非零变换系数的数目,不用信号发送候选索引。这里,解码器可以通过将变换区域中的非零变换系数的数目与预配置的数目进行比较来确定变换核。例如,如果非零变换系数的数目为一或二,则可以不用信号发送候选索引。这里,逆变换单元可以通过使用预配置的变换核来执行对应区域的变换。预配置的变换核可以是基于dst-vii的变换核。
128.图13图示根据集索引确定的水平变换核和垂直变换核。根据本公开的实施例,可以用信号发送指示多个可用变换核当中的用于特定区域的残差信号的变换核的信息。这
里,可以用信号发送指示多个可用变换核中的一个可用变换核的信息,而不管与对应区域相对应的预测模式如何。例如,编码器可以用信号发送指示用于特定区域的残差信号的变换核的变换核信息。解码器可以通过使用用信号发送的变换核信息来获得用于对应区域的变换核。变换核信息可以包括以下中的至少一个:指示对应区域的水平变换核的信息和指示对应区域的垂直变换核的信息。该方法可以被称为上述的多变换选择(mts)。
129.变换核可以分别由指示多个可用变换核的核索引中的一个核索引来指示。根据实施例,与核索引“0”相对应的变换核可以是基于dct-ii的变换核,与核索引“1”相对应的变换核可以是基于dst-vii的变换核,并且与核索引“2”相对应的变换核可以是基于dct-viii的变换核。
130.根据实施例,变换核信息可以指示变换核集的集索引。变换核集可以表示要用作垂直变换核的变换核与要用作水平变换核的变换核的组合。集索引可以指示指示水平变换核的核索引与指示垂直变换核的核索引的组合。参照图13(a),当特定区域的变换核信息指示表示第一变换核集的集索引(例如,在图13(a)的其中tu_mts_idx[x0][y0]为0的情况下)时,对应区域的垂直变换核可以是与核索引“0”相对应的变换核。该区域的水平变换核可以是与核索引“0”相对应的变换核。
[0131]
此外,图13(b)图示与核索引相对应的变换核。参照图13(b),与第一核索引“0”相对应的变换核可以指示基于dct-ii的变换核。参照图13(b),与第二核索引“1”相对应的变换核可以指示基于dst-vii的变换核。参照图13(b),与第三核索引“2”相对应的变换核可以指示基于dct-viii的变换核。
[0132]
根据附加实施例,上述实施例可以有限地仅应用于亮度块。这里,预配置的默认变换核可以用于色度分量。例如,默认变换核可以是基于dct-ii的变换核。可以以变换块为单位用信号发送上述集索引。
[0133]
此外,可以经由包括当前块的高级别的报头来用信号发送指示是否用信号发送集索引的信息。这里,高级别可以指示包括当前块的切片/图块、图片或序列。可以经由用于每种预测方法的单独的标志来用信号发送指示是否用信号发送集索引的信息。例如,在确定块的变换核时,可以针对帧内预测块和帧间预测块中的每一个独立地配置指示是否使用集索引的标志。
[0134]
根据实施例,如果指示是否用信号发送包括变换块的高级别的集索引的信息指示没有显式地用信号发送集索引,则可以使用不同的方法来确定关于对应变换块的变换核。例如,可以基于从除了集索引之外的信息推导出的信息来确定要应用于当前变换块的逆变换的变换核。具体地,解码器可以从关于当前变换块用信号发送的信息中推导指示用于当前变换块的变换核的信息。也就是说,可以隐式地用信号发送指示垂直变换核的信息和指示水平变换核的信息,这些信息将在变换块中使用。根据另一实施例,如果指示是否用信号发送包括变换块的高级别的集索引的信息指示显式地用信号发送集索引,则解码器可以基于用信号发送的集索引来获得用于变换块的变换核。
[0135]
根据附加实施例,可以根据变换区域中的非零变换系数的数量来确定编码器是否用信号发送集索引。这里,解码器可以通过将变换区域中的非零变换系数的数目与预配置的数目进行比较来确定变换核。例如,如果非零变换系数的数目为二或更小,则可以不用信号发送集索引。这里,逆变换单元可以通过使用预配置的变换核来执行对应区域的变换。预
配置的变换核可以是基于dst-vii的变换核。
[0136]
图像压缩系统中输入图像的像素可以具有三个值,包括红色(r)、绿色(g)和蓝色(b)(rgb颜色空间),并且r、g和b通道中的每一个可以独立编码。然而,这种编码对于数码相机获得的自然图像效率不高。这是因为rbg颜色空间中的各个通道之间具有较高的相关性,并且通常为了有效地压缩rgb图像,可以将rgb图像变换到不同的颜色空间以进行编码。如上所述的颜色空间之间的变换可以称为颜色空间变换或颜色变换,并且rgb图像压缩中最常用的颜色空间变换可以是从rgb颜色空间到ycbcr颜色空间的变换。在rgb颜色空间的情况下,r、g、b通道都表示颜色分量,而在ycbcr颜色空间中,y表示亮度分量,并且cb和cr表示色度分量。人类的视觉系统对亮度分量比对色度分量更敏感,并且因此,在对色度分量进行下采样的情况下,通过与亮度分量相比对色度分量应用更大的量化步长(step size)来量化亮度和色度分量,彩色图像可能会被有效压缩。根据色度分量的下采样程度,可以区分ycbcr 4:4:4、4:2:2和4:2:0图像。这种从rgb颜色空间到ycbcr颜色空间的变换被认为在图像压缩方面是有用的,但是在颜色变换过程中会导致信息丢失,并且因此难以用于无损图像压缩或接近无损的图像压缩应用领域。考虑到信息的丢失,对rgb图像进行编码的最佳方式是直接对rgb原始图像进行编码,而不需要对颜色空间进行变换。然而,如上所述,由于rgb颜色空间中存在冗余,这种编码不能实现高压缩效率。
[0137]
自适应颜色变换(act、自适应颜色空间变换、自适应颜色变换)根据图像信号的特性自适应地执行颜色空间变换,从而可以去除通道之间存在的冗余,并且可以提高编码效率。act可以在编码器预测之后应用于残差信号,并且可以选择性地变换残差信号的颜色空间。所选择的颜色空间信息可以被包括在比特流中并且然后被发送,并且解码器可以基于接收到的颜色空间信息对通过逆变换获得的残差信号的颜色空间进行逆变换。在下文中,参考图14和图15详细地描述act和逆act过程。
[0138]
图14是详细地图示通过执行act的编码器将残差信号变换为变换系数的方法的图。可以将空间区域的残差信号变换到频率区域,并且编码器可以对在预测之后获得的空间区域中的残差信号进行变换,使得获得变换系数。首先,编码器可以获得包括当前块的残差信号的至少一个残差块。残差块可以是当前块或通过分区当前块获得的块之一。在本公开中,可以将残差块称为包括当前块的残差样本的残差阵列或残差矩阵。此外,在本公开中,残差块可以指示具有与变换块或变换单元相同大小的块。
[0139]
接下来,编码器可以执行自适应颜色变换。可以将自适应颜色变换应用于残差信号,并且可以将第一颜色空间中的残差信号变换为第二颜色空间中的残差信号。第一颜色空间可以由包括第一通道、第二通道、第三通道等的多个颜色通道(或分量)配置,并且可以是诸如gbr或ycbcr的颜色空间。在gbr颜色空间中,第一通道指示绿色(g),第二通道指示蓝色(b),并且第三通道指示红色(r)。在ycbcr颜色空间中,第一通道指示y(亮度),第二通道指示cb(色度),并且第三通道指示cr(色度)。第二颜色空间可以由包括第一通道、第二通道、第三通道等的多个颜色通道(或分量)配置,并且可以是诸如ycgco或ycbcr的颜色空间。在ycgco颜色空间中,第一通道指示y(亮度),第二通道指示cg(色度),并且第三通道指示co(色度),并且从第一颜色空间到作为第二颜色空间的ycgco颜色空间的变换(正向变换)可以根据以下等式定义。
[0140]
[等式1]
[0141]
c'_0=(2*c_0 c_1 c_2)/4
[0142]
c'_1=(2*c_0-c_1-c_2)/4
[0143]
c'_2=(-2*c_1 2*c_2)/4
[0144]
在上面的等式中,c_0、c_1和c_2分别指示第一颜色空间的第一通道、第二通道和第三通道,并且例如可以是gbr颜色空间中的g、b和r通道或ycbcr颜色空间中的y、cb和cr通道。c'_0、c'_1和c'_2分别指示作为第二颜色空间的ycgco颜色空间中的第一通道y、第二通道cg和第三通道co。从作为第二颜色空间的ycgco颜色空间到第一颜色空间的逆变换可以根据以下等式来定义。
[0145]
[等式2]
[0146]
c_0=(c'_0 c'_1)
[0147]
c_1=(c'_0-c'_1-c'_2)
[0148]
c_2=(c'_0-c'_1 c'_2)
[0149]
图像压缩中的最佳颜色空间是具有表现其间的不相关属性的通道的颜色空间。因此,计算足够的彩色图像数据集的颜色分量之间的相关矩阵,并对其应用karhunen-loeve变换(klt),使得可以获得最小化相关性的变换等式。对ycgco颜色空间的变换可以有效地减少rgb(或gbr)颜色空间的通道之间存在的相关性,并且上述逆变换仅通过加法运算来实现。
[0150]
编码器可以在速率失真成本方面自适应地选择颜色空间,并且关于颜色空间的信息可以被包括在比特流中并且然后被发送。例如,可以在编译单元级别中应用act,并且可以用信号发送颜色空间变换激活标志(cu_act_enabled_flag)。当颜色空间变换激活标志(cu_act_enabled_flag)为1时,当前编译单元的残差已被编码在ycgco颜色空间中,并且当颜色空间变换激活标志(cu_act_enabled_flag)为0时,当前编译单元的残差已被编码在原始颜色空间,并且这可能指示尚未应用act。
[0151]
接下来,编码器可以通过使用变换核来变换残差块。在残差块的变换中使用的变换核可以是可分离为垂直变换和水平变换的变换核。在这种情况下,可以将残差块的变换划分为垂直变换和水平变换,并且然后被执行。例如,编码器可以在残差块的垂直方向上应用变换核来执行垂直变换。此外,编码器可以在残差块的水平方向上应用变换核来执行水平变换。在本公开中,变换核可以用作指示用于对残差信号进行变换的参数集的术语,诸如变换矩阵、变换阵列、变换函数和变换。根据实施例,变换核可以是多个可用核之一。此外,基于不同变换类型的变换核可以分别用于垂直变换和水平变换。根据上面参考图12和图13描述的变换核选择方法,可以选择多个可用变换核之一。
[0152]
编码器可以将通过对残差块进行变换而获得的变换块传递(transfer)到量化单元,并对其进行量化。变换块可以包括多个变换系数。具体地,变换块可以包括二维排列的多个变换系数。与残差块类似,变换块可以具有与当前块或通过分区当前块获得的块之一相同的大小。传递到量化单元的变换系数可以由量化值表示。
[0153]
此外,在变换系数被量化之前,编码器可以执行附加变换。如图14中所图示,可以将上述变换方法称为初次变换,并且可以将附加变换称为二次变换。对于每个残差块,二次变换可以是选择性的。根据实施例,编码器可以对仅通过初次变换难以集中能量在低频区域中的区域执行二次变换,从而提高编译效率。例如,可以将二次变换添加到在除了残差块
的水平或垂直方向之外的方向上具有大残差值的块。与帧间预测块的残差值相比,帧内预测块的残差值在除了水平或垂直方向之外的方向上可能具有更高的改变概率。因此,编码器可以另外执行帧内预测块的残差信号的二次变换。此外,编码器可以省略帧间预测块的残差信号的二次变换。
[0154]
作为另一示例,可以根据当前块或残差块的大小来确定是否执行二次变换。另外,可以根据当前块或残差块的大小使用不同大小的变换核。例如,8x8二次变换可以应用于宽度或高度当中较短边的长度小于第一预配置的长度的块。此外,可以对宽度或高度当中较短边的长度大于第二预配置的长度的块应用4x4二次变换。第一预配置的长度可以大于第二预配置的长度,但本公开不限于此。另外,与初次变换不同,二次变换可以不被划分为垂直变换和水平变换。这种二次变换可以称为低频不可分离变换(lfnst)。
[0155]
此外,在特定区域中的视频信号的情况下,由于快速的亮度变化,即使执行频率变换也可能不会减少高频带能量。因此,由于量化导致的压缩性能可能会退化。此外,当对残差值很少存在的区域执行变换时,可能会不必要地增加编码时间和解码时间。因此,可以省略特定区域中的残差信号的变换。是否执行特定区域中的残差信号的变换可以由与特定区域的变换相关的语法元素来确定。例如,语法元素可以包括变换跳过信息。变换跳过信息可以是变换跳过标志。当与残差块有关的变换跳过信息指示变换跳过时,不执行残差块的变换。在这种情况下,编码器可以立即量化对应区域中尚未变换的残差信号。参考图14描述的编码器的操作可以由图1的变换单元执行。
[0156]
上述的变换相关语法元素可以是从视频信号比特流中解析的信息。解码器可以通过对视频信号比特流进行熵解码来获得与变换相关的语法元素。此外,编码器可以熵编译变换相关的语法元素以生成视频信号比特流。
[0157]
图15是详细地图示通过执行自适应颜色变换的解码器对变换系数进行逆变换以获得残差信号的方法的图。在下文中,为了便于解释,将描述由编码器和解码器中的每一个的逆变换单元执行的逆变换操作。逆变换单元可以通过对逆量化的变换系数进行逆变换来获得残差信号。首先,逆变换单元可以从特定区域的变换相关语法元素中检测是否执行了相应区域的逆变换。根据实施例,当与特定变换块相关的变换相关语法元素指示变换跳过时,可以省略对应变换块的变换。在这种情况下,可以省略变换块的如上所述的初次逆变换和二次逆变换。在这种情况下,可以将逆量化变换系数用作残差信号,或者可以通过执行逆量化变换系数的逆自适应颜色变换(逆act)来获得残差信号。逆变换单元可以通过使用获得的残差信号来重构当前块。
[0158]
根据另一实施例,与特定变换块相关的变换相关语法元素可以不指示变换跳过。在这种情况下,逆变换单元可以确定是否执行与二次变换相关的逆二次变换。例如,当变换块是帧内预测块的变换块时,可以执行变换块的逆二次变换。此外,可以基于与变换块对应的帧内预测模式来确定用于变换块的二次变换核。作为另一示例,可以根据变换块的大小来确定是否执行逆二次变换。可以在逆量化过程之后在初次逆变换执行之前执行逆二次变换。
[0159]
逆变换单元可以执行逆量化变换系数或已经对其执行了逆二次变换的变换系数的逆初次变换。与初次变换类似,逆初次变换可以被划分为垂直变换和水平变换使得被执行。例如,逆变换单元可以通过执行变换块的垂直逆变换和水平逆变换来获得残差块。逆变
换单元可以基于已经用于变换块的变换的变换核对变换块进行逆变换。例如,编码器可以显式地或隐式地用信号发送指示在多个可用变换核当中的应用于当前变换块的变换核的信息。解码器可以通过使用指示变换核的用信号发送的信息在多个可用变换核当中选择要用于变换块的逆变换的变换核。逆变换单元可以执行变换系数的逆变换,或者执行通过执行逆变换而获得的信号的逆自适应颜色变换,使得获得残差信号。逆变换单元可以通过使用残差信号来重构当前块。
[0160]
逆变换单元可以基于与变换相关的语法元素来执行逆自适应颜色变换。可以将逆自适应颜色变换应用于已经对其执行了逆初次变换的信号,或者已经对其应用了变换跳过的信号,并且可以执行从第二颜色空间到第一颜色空间的变换。视频信号处理设备可以执行从比特流获得指示颜色空间变换是否应用于当前块的颜色空间变换激活标志(cu_act_enabled_flag)的操作。具体来说,当颜色空间变换激活标志(cu_act_enabled_flag)为1时,这指示当前块的残差已经被编码在ycgco颜色空间中,并且因此如等式2所示,从ycgco颜色空间(第二颜色空间)到第一颜色空间的逆变换可以被执行。当颜色空间变换激活标志(cu_act_enabled_flag)为0时,这指示当前块的残差已经被编码在原始颜色空间中,并且这可以指示不执行逆自适应颜色变换。具体地,在等式2中所示的逆自适应颜色变换可以涉及如下过程。
[0161]
[颜色空间变换过程]
[0162]-过程输入:
[0163]-ntbw:变换块的宽度
[0164]-ntbh:变换块的高度
[0165]-ry:ry可以是第二颜色空间的第一通道残差样本阵列,并且可以是具有(ntbw)x(ntbh)大小的阵列。第二颜色空间可以是ycgco颜色空间,并且第一通道可以指示亮度y。ry阵列的元素可以用ry[x][y]表达。
[0166]-rcb:rcb可以是第二颜色空间的第二通道残差样本阵列,并且可以是具有(ntbw)x(ntbh)大小的阵列。第二颜色空间可以是ycgco颜色空间,并且第二通道可以指示色度cg。rcb阵列的元素可以用rcb[x][y]表达。
[0167]-rcr:rcr可以是第二颜色空间的第三通道残差样本阵列,并且可以是具有(ntbw)x(ntbh)大小的阵列。第二颜色空间可以是ycgco颜色空间,并且第三通道可以指示色度co。rcr阵列的元素可以用rcr[x][y]表达。
[0168]-ry、rcb和rcr阵列可以指示在应用变换跳过之后的信号或在应用逆初次变换之后的信号之一。
[0169]-过程输出:
[0170]-具有修改的(ntbw)x(ntbh)大小的残差样本阵列ry:根据本过程,可以将第二颜色空间变换成第一颜色空间,并且第一颜色空间的第一通道残差样本阵列可以被指示。ry阵列的元素可以用ry[x][y]表达。
[0171]-具有修改的(ntbw)x(ntbh)大小的残差样本阵列rcb:根据本过程,可以将第二颜色空间变换成第一颜色空间,并且第一颜色空间的第二通道残差样本阵列可以被指示。rcb阵列的元素可以用rcb[x][y]表达。
[0172]-具有修改的(ntbw)x(ntbh)大小的残差样本阵列rcr:根据本过程,可以将第二颜
色空间变换成第一颜色空间,并且第一颜色空间的第三通道残差样本阵列可以被指示。rcr阵列的元素可以由rcr[x][y]表达。
[0173]-ry、rcb和rcr,它们是每个具有(ntbw)x(ntbh)大小的残差样本阵列,可以根据下面的等式3到等式6进行修改:
[0174]
[等式3]
[0175]
tmp=ry[x][y]-rcb[x][y]
[0176]
[等式4]
[0177]
ry[x][y]=ry[x][y] rcb[x][y]
[0178]
[等式5]
[0179]
rcb[x][y]=tmp-rcr[x][y]
[0180]
[等式6]
[0181]
rcr[x][y]=tmp rcr[x][y]
[0182]
根据颜色空间过程,作为第二颜色空间残差样本阵列的ry、rcb和rcr可以被修改为作为第一颜色空间残差样本阵列的ry、rcb、rcr。逆变换单元可以通过使用作为修改的残差样本阵列的ry、rcb和rcr来重构当前块。
[0183]
已经关于参考图14和图15描述的act和逆act描述了第二颜色空间是ycgco颜色空间的情况,但本公开不限于此。作为第二颜色空间的另一示例,可以使用ycgco-r颜色空间。ycgco-r颜色空间可以通过使用提升算法从ycgco颜色空间导出,使得仅通过整数运算实现完美重构。从第一颜色空间到ycgco-r颜色空间的正向变换可以根据以下等式来定义。
[0184]
[等式7]
[0185]
c'_2=c_2-c_1
[0186]
t=c_1 (c'_2》》1)
[0187]
c'_1=c_0-t
[0188]
c'_0=t (c'_1》》1)
[0189]
在上面的等式中,c_0、c_1和c_2分别指示第一颜色空间的第一通道、第二通道和第三通道,并且例如可以是gbr颜色空间中的g、b和r通道或ycbcr颜色空间中的y、cb和cr通道。c'_0、c'_1和c'_2分别指示作为第二颜色空间的ycgco-r颜色空间中的第一通道y、第二通道cg和第三通道co。从作为第二颜色空间的ycgco-r颜色空间到第一颜色空间的逆变换可以根据以下等式来定义。
[0190]
[等式8]
[0191]
t=c'_0-(c'_1》》1)
[0192]
c_0=c'_1 t
[0193]
c_1=t-(c'_2》》1)
[0194]
c_2=c_1 c'_2
[0195]
作为第二颜色空间的另一示例,可以根据当前编码模式自适应地选择ycgco和ycgco-r颜色空间之一。例如,在当前块的编码模式为无损或接近无损的压缩模式时,可以使用ycgco-r颜色空间作为第二颜色空间。同时,在当前块的编码模式为有损压缩模式时,可以使用ycgco颜色空间作为第二颜色空间。无损或接近无损的压缩模式和有损压缩模式可以通过标志在编码单元级别中用信号发送,或者可以通过使用量化参数(qp)和变换跳过
标志来指示。
[0196]
同时,对等式1中所示的ycgco颜色空间的变换未进行归一化。在y=[2/4,1/4,1/4]*[c_0,c_1,c_2]'中,[2/4,1/4,1/4]矢量的l2-范数等于sqrt(6)/4。在cg=[2/4,-1/4,-1/4]*[c_0,c_1,c_2]'中,[2/4,-1/4,-1/4]矢量的l2范数等于sqrt(6)/4。在co=[0,-2,2]*[c_0,c_1,c_2]中,[0,-2,2]矢量的l2-范数等于sqrt(8)/4。也就是说,在颜色空间变换之前和之后发生动态范围的变化,并且因此可以校正qp值以补偿该变化。该校正可以基于量化参数偏移(qpactoffset)。视频信号处理设备可以执行基于包括在当前块中的变换块的颜色分量和颜色空间变换激活标志(cu_act_enabled_flag)来确定量化参数偏移(qpactoffset)的操作。当前块的颜色分量可以包括第一通道、第二通道和第三通道中的至少一个。量化参数偏移(qpactoffset)可以包括第一qp偏移、第二qp偏移和第三qp偏移中的至少一个。
[0197]
视频信号处理设备可以基于当前块的颜色分量来确定量化参数偏移(qpactoffset)。当应用于第一颜色空间的第一通道的量化参数(qp)是qp_0时,可以由qp_0 offset_0确定作为应用于第二颜色空间的第一通道的量化参数(qp)的qp'_0,并且offset_0指示第一qp偏移。第一qp偏移可以包括在诸如sps、pps、图片报头或者切片报头的更高层的语法中,并且然后被发送,并且由编码器和解码器预定义的固定值可以被用作第一qp偏移。第一qp偏移可以是-5。
[0198]
当应用于第一颜色空间的第二通道的qp为qp_1时,可以由qp_1 offset_1确定作为应用于第二颜色空间的第二通道的qp的qp'_1,并且offset_1指示第二qp偏移。第二qp偏移可以包括在诸如sps、pps、图片报头或者切片报头的更高层的语法中,并且然后被发送,并且通过编码器和解码器预定义的固定值可以被用作第二qp偏移。第二qp偏移可以是-5。
[0199]
当应用于第一颜色空间的第三通道的qp为qp_2时,可以由qp_2 offset_2确定作为应用于第二颜色空间的第三通道的qp的qp'_2,并且offset_2指示第三qp偏移。第三qp偏移可以包括在诸如sps、pps、图片报头或者切片报头等更高层的语法中,并且然后被发送,并且通过编码器和解码器预定义的固定值可以被用作第三qp偏移。第三qp偏移可以是-3。
[0200]
此外,视频信号处理设备可以基于颜色空间变换激活标志(cu_act_enabled_flag)来确定量化参数偏移(qpactoffset)。当颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换不应用于当前块时,视频信号处理设备可以执行将量化参数偏移(qpactoffset)确定为0的操作。
[0201]
另外,当颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换被应用到当前块时,视频信号处理设备可以执行基于变换块的颜色分量将量化参数偏移确定为预先确定的偏移的操作。在下文中,将更详细地给出其描述。
[0202]
在当前块的颜色分量被指示为第一通道分量并且颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换被应用于当前块时,视频信号处理设备可以执行将量化参数偏移(qpactoffset)确定为预先确定的第一qp偏移(offset_0)的操作。此外,当应用于第一颜色空间的第一通道的量化参数(qp)是qp_0时,可以由qp_0 offset_0确定作为应用于第二颜色空间的第一通道的量化参数(qp)的qp'_0。
[0203]
当指示当前块的颜色分量不是第一通道分量,指示色度残差联合编译(jccr)模式的tucresmode指示2,并且颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变
换被应用于当前块时,视频信号处理设备可以执行将量化参数偏移(qpactoffset)确定为预先确定的第二qp偏移(offset_1)的操作。此外,当应用于第一颜色空间的第二通道的qp是qp_1时,可以由qp_1 offset_1确定作为应用于第二颜色空间的第二通道的qp的qp'_1。jccr模式可以对应于第二通道和第三通道的残差信号由一个信号表示的编码方法。
[0204]
在当前块的颜色分量被指示为第二通道分量,并且颜色空间变换激活标志(cu_act_enabled_flag)指示对当前块应用颜色空间变换时,视频信号处理设备可以执行将量化参数偏移(qpactoffset)确定为预先确定的第二qp偏移(offset_1)的操作。此外,当应用于第一颜色空间的第二通道的qp是qp_1时,可以由qp_1 offset_1确定作为应用于第二颜色空间的第二通道的qp的qp'_1。
[0205]
在当前块的颜色分量被指示为第三通道分量并且颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换被应用于当前块时,视频信号处理设备可以执行将量化参数偏移(qpactoffset)确定为预先确定的第三qp偏移(offset_2)的操作。此外,当应用于第一颜色空间的第三通道的qp是qp_2时,可以由qp_2 offset_2确定作为应用于第二颜色空间的第三通道的qp的qp'_2。
[0206]
同时,可以在预配置的整数范围内定义用于量化和解量化的qp,并且可以根据qp值确定用于量化的量化步长。例如,qp可以被定义在整数不为负的整数范围内,并且增加的qp值可以指示增加的量化步长。这因此意味着量化误差可能增加。当act应用于当前块时,qp值可以通过第一qp偏移(offset_0)、第二qp偏移(offset_1)和第三qp偏移(offset_2)来校正,并且作为在实际量化和解量化中使用的校正的qp的qp'_0、qp'_1,和qp'_2可能会偏离定义qp的预配置的整数范围。具体地,offset_0、offset_1和offset_2可以是负数,并且因此qp'_0、qp'_1和qp'_2可以是负数。qp值偏离定义的范围,并且因此在将qp值校正了偏移之后,可以对qp值执行限幅运算以使其落入定义qp值的预配置的范围内。例如,当qp定义在[0,63]范围内,并且offset_0、offset_1和offset_2分别为-5、-5和-3时,可以执行限幅过程以防止校正的qp值为负数。作为应用于第二颜色空间的第一通道的qp的qp'_0可以由max(0,qp_0 offset_0)确定。max(x,y)运算是当x》=y时返回x,并且当x《y时返回y的函数,并且因此当qp_0 offset_0的值为负数时,qp'_0可以配置为0并且然后用于量化和解量化。作为应用于第二颜色空间的第二通道的qp的qp'_1可以由max(0,qp_1 offset_1)确定。根据max运算,当qp_1 offset_1的值为负数时,可以将qp'_1配置为0并且然后用于量化和解量化。作为应用于第二颜色空间的第三通道的qp的qp'_2可以由max(0,qp_2 offset_2)确定。根据max运算,当qp_2 offset_2的值为负数时,可以将qp'_2配置为0,并且然后用于量化和解量化。
[0207]
参考下文描述的本公开的图16至图19,描述校正qp值的方法。
[0208]
图16图示根据本公开的第一方法校正qp值并基于校正的qp执行缩放(解量化)的方法。缩放过程可以接收(xtby,ytby)、ntbw、ntbh、predmode和cidx的输入,并且针对每个变量的描述如下。
[0209]-(xtby,ytby):这是亮度的位置,可以指示当前亮度变换块的左上坐标,并且可以是基于当前图片的左上亮度样本的坐标。
[0210]-ntbw:变换块的宽度
[0211]-ntbh:变换块的高度
[0212]-predmode:这是指示当前编译单元的预测方法的变量,并且当变量为mode_intra时可以指示帧内预测,当变量为mode_inter时指示帧间预测,并且当变量为mode_ibc时指示ibc预测(从当前图片中由块矢量指示的参考块生成预测块的预测方法)。
[0213]-cidx:这是指示当前变换块的颜色分量的变量,并且可以在cidx为0时指示第一通道分量,在cidx为1时指示第二通道分量,并且在cidx为2时指示第三通道分量。当act已经被应用于当前块时,当前变换系数可以指示第二颜色空间中的表达,并且第二颜色空间可以是ycgco颜色空间。同时,当act不应用于当前块时,当前变换系数指示第一颜色空间,即,原始颜色空间中的表达。
[0214]
视频信号处理设备可以基于量化参数执行重构当前块的操作。可以校正量化参数。具体地,在缩放过程中,可以对量化的变换系数执行缩放(解量化),使得获得缩放(解量化)的变换系数。可以对缩放的变换系数执行逆变换使得获得残差信号。逆变换单元可以通过使用获得的残差信号来重构当前块。作为缩放过程的输出的缩放变换系数阵列d[x][y]可以是具有(ntbw)x(ntbh)大小的阵列。
[0215]
在缩放过程中,缩放所需的量化参数(变量qp)和量化参数偏移(qpactoffset)变量可以被首先导出如下。
[0216]-变量cidx为0的情况:
[0217]-qp=qp'y:当cldx为0时,这指示第一通道分量,并且因此作为在实际缩放中使用的量化参数的qp变量可以被配置为作为应用于第一通道分量的量化参数的qp'y。qp'y可以在编码单元级别中确定,并且可以基于与变换有关的语法元素来确定。例如,在编译树块中定义矩形量化组,并且量化组中存在的编译单元可以共享相同量化参数的预测值。量化参数的预测值可以从与量化组邻近的块的量化参数中导出。例如,当矩形量化组的左上坐标为(xqg,yqg)时,位置(xqg-1,yqg)的量化参数与位置(xqg,yqg-1)的量化参数的平均值可以用作量化参数的预测值。为了减少量化参数信令所需的比特量,可以将量化参数的预测值和实际量化参数之间的差分值包括在编译单元级别的比特流中以用于传输,并且解码器可以基于量化参数的预测值和从比特流解析的差分值确定qp'y。
[0218]-qpactoffset=-5:当应用act时,动态范围改变,并且因此为了补偿改变,可以将偏移添加到量化参数以校正量化参数。应用act可以指示颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换被应用于当前块的情况。具体地,当当前块的颜色分量指示第一通道分量,并且颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换被应用于当前块时,视频信号处理设备可以执行将量化参数偏移(qpactoffset)确定为预先确定的第一qp偏移(offset_0)的操作。应用于第一通道分量的第一qp偏移可以是-5。
[0219]
当当前块的颜色分量被指示为第一通道分量,并且颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换不应用于当前块时,视频信号处理设备可以执行将量化参数偏移(qpactoffset)确定为0的操作。
[0220]-变量cidx不为0并且变量tucresmode[xtby][ytby]为2的情况:在色度残差联合编译(jccr)模式下,两个色度残差信号可以通过使用色度分量之间存在的相关性用一个残差阵列来表达。当tucresmode[xtby][ytby]为2时,这可能指示应用jccr模式之一,而当cidx不为0时,这可以指示当前变换块是表达第二通道和第三通道是一个残差信号的变换系数块。当解码器的逆变换单元获得的残差阵列为c[x][y]时,第二通道残差阵列为cb[x]
[y],并且第三通道残差阵列为cr[x][y],可以确定cb[x][y]=c[x][y]和cr[x][y]=csign*c[x][y]。变量csign是应用于第三通道的符号信息,并且可以包括在切片报头中以用于传输。
[0221]-qp=qp'cbcr:当cidx不为0并且tucresmode[xtby][ytby]为2时,作为在缩放过程中应用的量化参数的qp可以被配置为作为当tucresmode[xtby][ytby]为2时应用的量化参数的qp'cbcr。类似于qp'y,qp'cbcr可以在编码单元级别中确定,并且可以基于与变换有关的语法元素来确定。
[0222]-qpactoffset=-5:当应用act时,动态范围改变,并且因此为了补偿改变,可以将偏移添加到量化参数以校正量化参数。应用act可以指示颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换被应用于当前块的情况。更具体地说,当指示当前块的颜色分量不是第一通道分量,指示色度残差联合编译(jccr)模式的tucresmode为2,并且颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换被应用于当前块时,视频信号处理设备可以执行将量化参数偏移(qpactoffset)确定为预先确定的第二qp偏移(offset_1)的操作。当jccr模式当中的tucresmode[xtby][ytby]为2时应用的qp偏移可以是-5。
[0223]
当指示当前块的颜色分量不是第一通道分量,指示色度残差联合编译(jccr)模式的tucresmode指示2,并且颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换不被应用于当前块时,视频信号处理设备可以执行将量化参数偏移(qpactoffset)确定为0的操作。
[0224]-变量tucresmode[xtby][ytby]不为2并且变量cidx为1的情况:这种情况可以包括变量tucresmode[xtby][ytby]为0,并且变量cidx为1的情况,和变量tucresmode[xtby][ytby]为1并且变量cidx为1的情况。前一种情况可以指示第二通道和第三通道的残差阵列独立编码,并且cldx为1,并且因此这指示当前变换块是第二通道残差阵列。后一种情况可以指示当前变换块是借助jccr模式之一将第二通道和第三通道表达为一个残差信号的变换系数块。当解码器的逆变换单元获得的残差阵列为c[x][y],第二通道残差阵列为cb[x][y],并且第三通道残差阵列为cr[x][y]时,cb[x][y]=c[x][y],并且cr[x][y]=(csign*c[x][y])》》1可以被确定。变量csign是应用于第三通道的符号信息,并且可以包括在切片报头中以用于传输。
[0225]-qp=qp'cb:在这两种情况下,作为应用于缩放的量化参数的qp可以配置为作为应用于第二通道的量化参数的qp'cb。与qp'y类似,qp'cb可以在编码单元级别中确定,并且可以基于与变换有关的语法元素来确定。
[0226]-qpactoffset=-5:当应用act时,动态范围改变,并且因此为了补偿改变,可以将偏移添加到量化参数以校正量化参数。应用act可以指示颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换被应用于当前块的情况。更具体地,当当前块的颜色分量被指示为第二通道分量并且颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换被应用于当前块时,视频信号处理设备可以执行将量化参数偏移(qpactoffset)确定为预先确定的第二qp偏移(offset_1)的操作。应用于第二通道的第二qp偏移可以是-5。
[0227]
当当前块的颜色分量被指示为第二通道分量,并且颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换不应用于当前块时,视频信号处理设备可以执行将
量化参数偏移(qpactoffset)确定为0的操作。
[0228]-变量cidx为2的情况:这种情况可以包括变量tucresmode[xtby][ytby]为0,并且变量cidx为2的情况,以及变量tucresmode[xtby][ytby]为3并且变量cidx为2的情况。前一种情况可以指示第二通道和第三通道的残差阵列独立编码,并且cidx为2,并且因此这指示表示当前变换块为第三通道残差阵列。后一种情况可以指示当前变换块是借助jccr模式之一将第二通道和第三通道表达为一个残差信号的变换系数块。当解码器的逆变换单元获得的残差阵列为c[x][y],第二通道残差阵列为cb[x][y],并且第三通道残差阵列为cr[x][y]时,cb[x][y]=(csign*c[x][y])》》1,并且cr[x][y]=c[x][y]可以被确定。变量csign是应用于第二通道的符号信息,并且可以包括在切片报头中以用于传输。
[0229]-qp=qp'cr:在这两种情况下,作为应用于缩放的量化参数的qp可以配置为作为应用于第三通道的量化参数的qp'cr。与qp'y类似,qp'cr可以在编码单元级别中确定,并且可以基于与变换有关的语法元素来确定。
[0230]-qpactoffset=-3:当应用act时,动态范围改变,并且因此为了补偿改变,可以将偏移添加到量化参数以校正量化参数。应用act可以指示颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换被应用于当前块的情况。当当前块的颜色分量指示第三通道分量并且颜色空间变换激活标志(cu_act_enabled_flag)指示对当前块应用了颜色空间变换时,视频信号处理设备可以执行将量化参数偏移(qpactoffset)确定为预先确定的第三qp偏移(offset_2)的操作。应用于第三通道的第三qp偏移可以是-3。
[0231]
当当前块的颜色分量被指示为第三通道分量,并且颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换不应用于当前块时,视频信号处理设备可以执行将量化参数偏移(qpactoffset)确定为0的操作。
[0232]
可以基于上述量化参数(qp)和量化参数偏移(qpactoffset)来修改量化参数,并且可以如下配置对缩放过程所需的变量rectnontsflag和变量bdshift。
[0233]-不应用变换跳过(transform_skip_flag[xtby][ytby][cidx]为0)的情况:作为变换跳过标志的transform_skip_flag[xtby][ytby][cidx]语法元素可以指示是否将变换跳过应用于当前变换块。当前变换块可以是包括在当前块中的变换块。当transform_skip_flag[xtby][ytby][cidx]为0时,这可以指示不将变换跳过应用于当前变换块。这可能暗示通过执行缩放(解量化)的变换系数的逆变换来获得残差样本。
[0234]-qp=max(0,qp (cu_act_enabled_flag[xtby][ytby]?qpactoffset:0));根据本公开的第一方法,在将act应用于当前块的情况下,可以校正qp值以便于补偿动态范围的改变,并且校正的qp值可能偏离预配置的范围,并且因此可以执行限幅运算。在第一方法中,基于在整数不为负的整数区域中定义量化参数,可以将小于0的值限幅为0以允许校正的qp值为0或更大。在上面的公式中,x?y:z三元运算意指在x为真或不为0时返回y,并且在x为假或为0时返回z的运算。因此,当对当前块应用act时(cu_act_enabled_flag[xtby][ytby]为1),通过运算cu_act_enabled_flag[xtby][ytby]?qpactoffset:0,可以返回qpactoffset作为量化参数偏移,并且可以通过qpactoffset校正量化参数qp。同时,当没有将act应用于当前块时(cu_act_enabled_flag[xtby][ytby]为0),量化参数偏移为0,并且因此量化参数qp可以不被校正。根据本公开的第一方法,可以执行基于max算子的限幅以防止校正的qp值为负数。当应用act时,可以基于校正的量化参数执行缩放。
[0235]-rectnontsflag=(((log2(ntbw) log2(ntbh))&1)==1)?1:0;基于正弦或余弦的变换核可能不具有参考图9所描述的整数类型,并且变换核可以近似为整数类型使得减少实现的复杂度。为了以整数类型表达变换核,可以将变换核乘以2的幂(指数可以不是整数),并且然后进行舍入,使得获得近似的整数变换核。根据近似误差,变换核的正交特性可能会被削弱。但是,由此导致的编译效率退化很小,并且在硬件编码器和解码器中基于整数变换核的变换编码的实现复杂度显著低,并且因此可以使用包括近似误差的整数变换核。整数化变换核具有放大了2的幂的尺度,并且因此在变换之后,需要进行降低尺度的过程,并且此向下缩放可以在缩放过程和变换过程中执行。rectnontsflag和下面描述的变量bdshift可以被解释为用于在缩放过程中执行的向下缩放的参数。当rectnontsflag中的(log2(ntbw) log2(ntbh))&1运算的结果为1时,水平逆变换和垂直逆变换之后的变换系数可以具有增加了2^(n 0.5)的尺度。当(log2(ntbw) log2(ntbh))&1运算的结果为0时,水平逆变换和垂直逆变换后的变换系数可能具有增加了2^(m)的尺度,并且n和m是正整数。即,在执行逆变换时,为了根据变换块的宽度和高度考虑sqrt(2)缩放因子,变量rectnontsflag可以在以下情况下配置为1:在对当前变换块执行逆变换时(transform_skip_flag[xtby][ytby][cidx]为0),(log2(ntbw) log2(ntbh))&1运算的结果为1。
[0236]-bdshift=bitdepth rectnontsflag ((log2(ntbw) log2(ntbh))/2)-5 pic_dep_quant_enabled_flag:变量bitdepth指示亮度和色度阵列样本的比特深度。例如,当bitdepth为n(自然数)时,第一通道、第二通道和第三通道阵列样本可能具有[0,2^n-1]范围内的值。可以基于包括在sps、pps、图片报头、切片报头等中的语法元素来配置变量bitdepth。例如,可以用信号发送bit_depth_minus8语法元素以用信号发送sps中的比特深度信息。解码器可以基于解析的bit_depth_minus8语法元素将变量bitdepth配置为8 bit_depth_minus8。pic_dep_quant_enabled_flag是语法元素,其指示在当前切片中依赖量化是启用还是禁用,并且当pic_dep_quant_enabled_flag为1时,这可以指示在当前切片中启用依赖量化。变量bdshift是向下缩放的参数,可以根据比特深度、是否考虑sqrt(2)缩放因子、变换块的大小以及是否启用或禁用依赖量化来确定。
[0237]-bdoffset=(1《《bdshift)》》1:在下面描述的缩放过程中,可以基于参数bdshift执行位移运算,并且变量bdoffset可以指示位移运算的舍入偏移。
[0238]-应用变换跳过的情况(transform_skip_flag[xtby][ytby][cidx]为1):当作为变换跳过标志的transform_skip_flag[xtby][ytby][cidx]为1时,这指示将变换跳过应用于当前变换块,并且这可能意味着将缩放的(解量化的)变换系数用作残差。
[0239]-qp=max(0,max(qpprimetsmin,qp) (cu_act_enabled_flag[xtby][ytby]?qpactoffset:0));根据本公开的第一方法,在将act应用于当前块的情况下,可以校正qp值以便于补偿动态范围的改变,并且校正的qp值可能偏离预配置的范围,并且因此可以执行限幅运算。在第一方法中,首先,通过变量qpprimetsmin和qp值之间的比较,可以执行限幅以允许qp值等于或大于qpprimetsmin。变量qpprimetsmin定义在变换跳过模式中允许的最小量化参数,并且可以被包括并指示在诸如sps、pps、图片报头或切片报头的更高级别的语法结构中。与最小量化参数有关的信息(min_qp_prime_ts_minus4)可以对应于语法元素。例如,解码器可以从比特流中获得与sps中的最小量化参数有关的信息(min_qp_prime_ts_minus4)。然而,本公开不限于此,并且解码器可以从sps、pps、图片报头或切片报头当中的
一个比特流获得与最小量化参数相关的信息(min_qp_prime_ts_minus4)。另外,解码器可以基于与最小量化参数相关的信息(min_qp_prime_ts_minus4)执行获得最小量化参数(qpprimetsmin)的操作。例如,解码器可以基于min_qp_prime_ts_minus4语法元素将变量qpprimetsmin配置为4 min_qp_prime_ts_minus4。min_qp_prime_ts_minus4可以是与变换跳过模式中允许的最小量化参数有关的信息。视频信号处理设备可以基于最小量化参数来执行校正量化参数的操作。此外,视频信号处理设备可以基于校正的量化参数来执行重构当前块的操作。
[0240]
在本公开的第一方法中,可以通过变量qpprimetsmin将量化参数首先限幅为qpprimetsmin或更大的值,并且然后可以向其添加用于补偿由于act的动态范围的改变的量化参数偏移(qpactoffset)。
[0241]
如上面已经所描述的,qpactoffset可以基于cu_act_enabled_flag[xtby][ytby]被确定为0或第一qp偏移、第二qp偏移或第三qp偏移中的一个。然而,本公开不限于此,并且根据本公开的各种实施例,可以通过如下过程将值添加到量化参数(qp)。当act应用于当前块(cu_act_enabled_flag[xtby][ytby]为1)时,通过运算cu_act_enabled_flag[xtby][ytby]?qpactoffset:0,可以返回qpactoffset作为量化参数偏移,并且可以通过qpactoffset校正量化参数qp。同时,当没有将act应用于当前块(cu_act_enabled_flag[xtby][ytby]为0)时,量化参数偏移为0,并且因此量化参数qp可以不被校正。根据本公开的第一方法,可以执行基于max算子的限幅,以防止校正的qp值为负数。当应用act时,可以基于校正的量化参数执行缩放。根据上述的qp校正,当act应用于当前块时,qp的最小值可以配置为0,并且当act不应用于当前块时,qp的最小值可以配置为最小量化参数(qpprimetsmin)。
[0242]-rectnontsflag=0:rectnontsflag是考虑到由于变换核而增加的缩放因子的变量,并且因此在不应用变换的变换跳过模式中,变量rectnontsflag可以被配置为0。
[0243]-bdshift=10:在不应用变换和依赖量化的变换跳过模式中,变量bdshift可以被配置为作为固定值的10。
[0244]-bdoffset=(1《《bdshift)》》1:在下面描述的缩放过程中,可以基于参数bdshift执行位移运算,并且变量bdoffset可以指示位移运算的舍入偏移。
[0245]
levelscale[j][k]列表可以指示缩放的量化步长。量化步长基本上具有实数类型,可以近似为整数类型。另外,当qp增加了6时,量化步长加倍,并且因此为从0到5的qp定义量化步长,在剩余的qp部分中,可以通过qp%6运算和qp/6运算导出量化步长。
[0246]
具有(ntbw)x(ntbh)大小的阵列dz可以被配置为与作为具有(ntbw)x(ntbh)大小的阵列的transcoefflevel[xtby][ytby][cidx]相同,并且transcoefflevel[xtby][ytby][cidx]指示在系数编译(残差编译)中获得的量化变换系数。
[0247]
d[x][y]作为缩放的变换系数(x是从0到ntbw-1,并且y是从0到ntbh-1)可以通过如下过程获得。
[0248]
首先,可以执行配置作为中间缩放元素阵列的m[x][y]的过程。人类视觉系统的频率响应特性对高频段不敏感,而对低频段相对敏感,并且因此考虑到这些特性,可以根据作为频率bin索引x和y配置不同的缩放因子。这指示m[x][y]阵列元素的值根据x和y改变。例如,当将大的缩放值用于高频区域而将小的缩放值用于低频区域时,可以有效地执行量化。
这是因为人很可能无法很好地识别量化误差,该误差是由于对高频区域使用大的缩放值而发生的。同时,当应用变换跳过时,接收到的量化变换系数是空间区域中的信号而不是频率区域中的信号。因此,当m[x][y]阵列的值被配置为根据x和y变化时,部分空间区域中的失真变大,并且因此图像质量可能劣化。因此,m[x][y]阵列元素的值可以被配置为与x和y无关的固定常数。固定常数可以是16。作为另一示例,当应用二次变换时,m[x][y]阵列元素的值可以被配置为与x和y无关的固定常数。固定常数可以是16。二次变换可以解释为将初次变换的变换系数映射到另一个空间,并且二次变换系数的特性与初次变换系数的特性完全不同。例如,当不应用二次变换并且仅执行基于dct-ii核的初次变换时,d[0][0]可以指示dc系数。同时,当基于dct-ii核对初次变换的系数执行二次变换时,d[0][0]不指示dc系数。为了获得初次变换系数的dc系数,需要对二次变换的系数矢量和逆二次变换核的第一基矢量之间进行点积,并且这意味着所有二次变换的系数影响初次变换系数的低频区域。因此,根据索引x和y相对于二次变换系数考虑不同的缩放元素不仅会退化量化器的性能,还会导致图像质量的恶化。因此,当对当前块应用二次变换时,m[x][y]可以被配置成相对于所有索引x和y具有相同的值。例如,m[x][y]可能是16,而与x和y索引无关。
[0249]
作为最终缩放元素阵列的ls[x][y]可以基于m[x][y]和levelscale[j][k]被配置。具体来说,当应用依赖量化(pic_dep_quant_enabled_flag为1,transform_skip_flag[xtby[ytby][cidx]为0)时,ls[x][y]可以由(m[x][y]*levelscale[rectnontsflag][(qp 1)%6])《《((qp 1)/6)配置。与当rectnontsflag为0的情况相比,当rectnontsflag为1时,可以应用具有增加了sqrt(2)的缩放的levelscale。当通过使用(qp 1)%6作为索引对基础量化步长大小(levelscale[rectnontsflag][(qp 1)%6])执行(qp 1)/6的位左移时,可以确定最终量化步长。这反映在应用依赖量化的情况下,当(qp 1)被增加了6时,量化步长加倍的特性。同时,当不应用依赖量化(pic_dep_quant_enabled_flag为0,或transform_skip_flag[xtby][ytby][cidx]为1时),ls[x][y]可以由(m[x][y]*levelscale[rectnontsflag][qp%6])《《(qp/6)配置。当通过使用qp%6作为索引对基础量化步长(levelscale[rectnontsflag][qp%6])执行了qp/6的位左移时,可以确定最终量化步长。这反映了在不应用依赖量化的情况下,当qp增加了6时,量化步长加倍的特性。
[0250]
同时,在基于块的增量脉冲编码调制(bdpcm)预测的情况下,在预配置的模式中执行帧内预测,并且量化的变换系数可以根据预配置的模式通过在先前的位置处的样本和当前位置处的样本的总和来表达。也就是说,在bdpcm模式中,作为量化变换系数,根据预配置的模式的在先前位置的样本和在当前位置的样本之间的差被发送。预配置的模式可以是水平模式或垂直模式。当bdpcm应用于当前编译块时,bdpcmflag[xtby][ytby]可以是1,并且bdpcmdir[xtby][ytby]可以指示预配置的模式。
[0251]
当bdpcmflag[xtby][ytby]为1,并且bdpcmdir[xtby][ytby]为0时,这可能指示应用了水平模式bdpcm,并且dz[x][y]可以通过clip3(coeffmin,coeffmax,dz[x-1][y] dz[x][y])配置。clip3(x,y,z)算子是将z限幅到x和y之间的算子,并且当z《x时,clip3(x,y,z)=x,当z》y时,clip3(x,y,z)=y,并且否则,(x《=z《=y),clip3(x,y,z)=z可以被表达。可以以预配置的比特精度来表达变换系数,并且这可以是16个比特。在这种情况下,coeffmin可以配置为-2^(16),并且coeffmax可以配置为2^(16)-1。当bdpcmflag[xtby][ytby]为1,并且bdpcmdir[xtby][ytby]为1时,这可以指示应用了垂直模式bdpcm,并且dz
[x][y]可以通过clip3(coeffmin,coeffmax,dz[x][y-1] dz[x][y])配置。
[0252]
dnc[x][y]可以通过(dz[x][y]*ls[x][y] bdoffset)》》bdshift来计算,并且作为缩放变换系数的d[x][y]可以通过clip3(coeffmin,coeffmax,dnc[x][y])获得。
[0253]
图17图示根据本公开的第二方法校正qp值并基于校正的qp执行缩放(解量化)的方法。参考图17未给出的描述可以遵循参考图16给出的描述,并且在下文中,描述了根据本公开的第二方法在不应用变换跳过时和应用变换跳过时校正量化参数的方法。
[0254]
视频信号处理设备可以执行获得指示变换跳过是否应用于包括在当前块中的变换块的变换跳过标志(transform_skip_flag)的操作。视频信号处理设备可以从比特流中获得变换跳过标志。此外,当没有从比特流中获得变换跳过标志时,视频信号处理设备可以将变换跳过标志配置为预定值。
[0255]-不应用变换跳过的情况(transform_skip_flag[xtby][ytby][cidx]为0):
[0256]-qp=max(0,qp (cu_act_enabled_flag[xtby][ytby]?qpactoffset:0));根据本公开的第二方法,在将act应用于当前块的情况下,可以校正qp值以便于补偿动态范围的改变。即,当变换跳过标志指示不应用变换跳过时,视频信号处理设备可以基于量化参数偏移(qpactoffset)来执行获得校正的量化参数的操作。
[0257]
视频信号处理设备可以基于变换块的颜色分量和颜色空间变换激活标志(cu_act_enabled_flag)来执行确定量化参数偏移的操作。校正的量化参数可以是qp qpactoffset。
[0258]
如上所述,当颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换不应用于当前块时,视频信号处理设备可以执行确定量化参数偏移(qpactoffset)为0的操作。在这种情况下,量化参数偏移(qpactoffset)可以为0,并且可以保持原始的量化参数(qp)。当颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换被应用于当前块时,视频信号处理设备可以执行将量化参数偏移(qpactoffset)确定为第一qp偏移、第二qp偏移,或第三qp偏移之一的操作。已经参考图14至图16描述了将量化参数偏移(qpactoffset)确定为第一qp偏移、第二qp偏移或第三qp偏移之一的过程,并且因此省略重复的解释。此外,视频信号处理设备可以将量化参数偏移(qpactoffset)应用于量化参数(qp)以获得校正的量化参数。
[0259]
当校正的量化参数小于0时,视频信号处理设备可以执行将校正的量化参数限幅为0的操作。也就是说,视频信号处理设备可以防止量化参数(qp)小于0。更具体地说,校正的qp值可能会偏离预配置的范围,并且因此可能执行限幅运算。在第二方法中,基于在整数不为负的整数区域中定义量化参数,可以将小于0的值限幅为0以允许校正的qp值为0或更大。
[0260]
如上所述,qpactoffset可以基于cu_act_enabled_flag[xtby][ytby]被确定为0或第一qp偏移、第二qp偏移或第三qp偏移中的一个。然而,本公开不限于此,并且根据本公开的各种实施例,可以通过如下过程将值添加到量化参数(qp)。当act应用于当前块(cu_act_enabled_flag[xtby][ytby]为1)时,通过运算cu_act_enabled_flag[xtby][ytby]?qpactoffset:0,可以返回qpactoffset作为量化参数偏移,并且可以通过qpactoffset校正量化参数qp。同时,当没有将act应用于当前块(cu_act_enabled_flag[xtby][ytby]为0)时,量化参数偏移为0,并且因此量化参数qp可以不被校正。根据本公开的第二方法,可以执
行基于max算子的限幅以防止校正的qp值为负数。
[0261]
视频信号处理设备可以基于校正的量化参数来执行重构当前块的操作。校正的量化参数可以是限幅校正的量化参数。具体地,当应用act时,可以基于校正的量化参数来执行缩放。基于校正的量化参数qp的缩放方法和重构当前块的方法可以遵循参考图16描述的方法。
[0262]-应用变换跳过的情况(transform_skip_flag[xtby][ytby][cidx]为1):
[0263]-qp=max(qpprimetsmin,qp (cu_act_enabled_flag[xtby][ytby]?qpactoffset:0));根据本公开的第二方法,在将act应用于当前块的情况下,可以校正qp值以便于补偿动态范围的改变。当变换跳过标志指示应用变换跳过时,视频信号处理设备可以基于量化参数偏移(qpactoffset)执行获得校正的量化参数的操作。视频信号处理设备可以基于变换块的颜色分量和颜色空间变换激活标志(cu_act_enabled_flag)来执行确定量化参数偏移的操作。校正的量化参数可以是qp qpactoffset。然而,本公开不限于此,并且当颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换不应用于当前块时,可以不校正qp值。
[0264]
如上所述,当颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换不应用于当前块时,视频信号处理设备可以执行确定量化参数偏移(qpactoffset)为0的操作。在这种情况下,量化参数偏移(qpactoffset)可以为0,并且可以保持原始的量化参数(qp)。当颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换被应用到当前块时,视频信号处理设备可以执行将量化参数偏移(qpactoffset)确定为第一qp偏移、第二qp偏移、或第三个qp偏移之一的操作。已经参考图14至图16描述了将量化参数偏移(qpactoffset)确定为第一qp偏移、第二qp偏移或第三qp偏移之一的过程,并且因此省略重复解释。此外,视频信号处理设备可以将量化参数偏移(qpactoffset)应用于量化参数(qp)以获得校正的量化参数。
[0265]
当校正的量化参数小于最小量化参数(qpprimetsmin)时,视频信号处理设备可以执行将校正的量化参数限幅为最小量化参数(qpprimetsmin)的操作。即,视频信号处理设备可以防止量化参数(qp)小于最小量化参数(qpprimetsmin)。更具体地,校正的qp值可能会偏离预配置的范围,并且因此可以执行限幅运算。在第二方法中,基于关于在应用变换跳过时允许的量化参数的信息,可以执行限幅使得校正的量化参数值等于或大于在变换跳过模式中允许的量化参数。
[0266]
如上所述,可以基于cu_act_enabled_flag[xtby][ytby]将qpactoffset确定为0或第一qp偏移、第二qp偏移或第三qp偏移中的一个。然而,本公开不限于此,并且根据本公开的各种实施例,可以通过如下过程将值添加到量化参数(qp)。当act应用于当前块(cu_act_enabled_flag[xtby][ytby]为1)时,通过运算cu_act_enabled_flag[xtby][ytby]?qpactoffset:0,可以返回qpactoffset作为量化参数偏移,并且可以通过qpactoffset校正量化参数qp。同时,当没有将act应用于当前块(cu_act_enabled_flag[xtby][ytby]为0)时,量化参数偏移为0,并且因此量化参数qp可以不被校正。根据本公开的第二方法,可以执行限幅使得使用max算子校正的量化参数值变得等于或大于最小量化参数(qpprimetsmin)。变量qpprimetsmin定义在变换跳过模式中允许的最小量化参数,并且即使相对于应用act的块也可能需要满足量化参数需要等于或大于qpprimetsmin的条件。因
此,当校正的量化参数值小于qpprimetsmin时,该值可以被限幅为qpprimetsmin。例如,qpprimetsmin是自然数,并且因此当校正的量化参数值小于0时,该值可以被限幅为qpprimetsmin。作为另一示例,即使当校正的量化参数值等于或大于0时,如果该值小于qpprimetsmin,该值也可以被限幅为qpprimetsmin。
[0267]
视频信号处理设备可以基于校正的量化参数来执行重构当前块的操作。校正的量化参数可以是限幅校正的量化参数。具体地,当应用act时,可以基于校正的量化参数来执行缩放。基于校正的量化参数qp的缩放方法和重构当前块的方法可以遵循参考图16描述的方法。
[0268]
图18图示了根据本公开的第三方法校正qp值并基于校正的qp来执行缩放(解量化)的方法。在与图18相关的描述中省略的部分可以遵循参考图16给出的描述,并且在下文中,描述了根据本公开的第三方法在不应用变换跳过时和应用变换跳过时调整量化参数的方法。
[0269]-不应用变换跳过的情况(transform_skip_flag[xtby][ytby][cidx]为0):
[0270]-qp=max(qpbdoffset,qp (cu_act_enabled_flag[xtby][ytby]?qpactoffset:0));根据本公开的第三方法,在将act应用于当前块的情况下,可以对qp值进行校正以便于调整动态范围的改变,并且调整的qp值可能偏离预配置的范围,并且因此可以执行限幅运算。在第三方法中,基于反映图像的比特深度的量化参数偏移,可以将小于qpbdoffset的值限幅为qpbdoffset,从而使调整的量化参数等于或大于变量qpbdoffset的值。qpbdoffset是根据图像的比特深度添加的量化参数偏移,并且可以包括在诸如sps、pps、图片报头或切片报头的更高级别的语法结构中并被指示。例如,可以用信号发送bit_depth_minus8语法元素以用信号发送sps中的比特深度信息。解码器可以基于解析的bit_depth_minus8语法元素将变量qpbdoffset配置为6*bit_depth_minus8。例如,如果比特深度(bitdepth)为8,则qpbdoffset可以配置为0。作为另一示例,如果比特深度为10,则qpbdoffset可以配置为12。在缩放过程中使用的qp'y、qp'cbcr、qp'cb和qp'cr是通过添加qpbdoffset获得的,并根据比特深度以预配置的精度(例如,16个比特)表达变换系数。当act应用于当前块(cu_act_enabled_flag[xtby][ytby]为1)时,通过运算cu_act_enabled_flag[xtby][ytby]?qpactoffset:0,可以返回qpactoffset作为量化参数偏移并且可以通过qpactoffset校正量化参数qp。同时,当没有将act应用于当前块(cu_act_enabled_flag[xtby][ytby]为0)时,量化参数偏移为0,并且因此量化参数qp可以不被校正。根据本公开的第三方法,为了考虑根据比特深度的量化参数偏移,可以执行基于max算子的限幅,使得作为校正的量化参数的qp值等于或大于qpbdoffset。例如,qpbdoffset是非负的整数,并且因此当校正的量化参数值小于0时,该值可以被限幅为qpbdoffset。作为另一示例,即使当校正的量化参数值等于或大于0时,如果该值小于qpbdoffset,该值也可以被限幅为qpbdoffset。当应用act时,可以基于校正的量化参数执行缩放。基于校正的量化参数qp的缩放方法可以遵循参考图16描述的方法。
[0271]-应用变换跳过的情况(transform_skip_flag[xtby][ytby][cidx]为1):
[0272]-qp=max(qpbdoffset,max(qpprimetsmin,qp) (cu_act_enabled_flag[xtby][ytby]?qpactoffset:0));根据本公开的第三方法,在将act应用于当前块的情况下,可以对qp值进行校正以便于调整动态范围的改变,并且调整的qp值可能偏离预配置的范围,并
且因此可以执行限幅运算。在第三方法中,首先,通过变量qpprimetsmin与qp值的比较,可以执行限幅以允许qp值等于或大于qpprimetsmin。变量qpprimetsmin定义在变换跳过模式中允许的最小量化参数,量化参数可以首先被变量qpprimetsmin限幅为qpprimetsmin或更大的值,并且然后可以向其添加量化参数偏移(qpactoffset),用于补偿由于act而产生的动态范围的改变。当act应用于当前块(cu_act_enabled_flag[xtby][ytby]为1)时,通过运算cu_act_enabled_flag[xtby][ytby]?qpactoffset:0,可以返回qpactoffset作为量化参数偏移并且可以通过qpactoffset校正量化参数qp。同时,当没有将act应用于当前块(cu_act_enabled_flag[xtby][ytby]为0)时,量化参数偏移为0,并且因此量化参数qp可以不被校正。根据本公开的第三方法,为了考虑根据比特深度的量化参数偏移,可以执行基于max算子的限幅,使得作为校正的量化参数的qp值等于或大于qpbdoffset。例如,qpbdoffset是非负的整数,并且因此当校正的量化参数值小于0时,该值可以被限幅为qpbdoffset。作为另一示例,即使当校正的量化参数值等于或大于0时,如果该值小于qpbdoffset,该值也可以被限幅为qpbdoffset。当应用act时,可以基于校正的量化参数执行缩放。基于校正的量化参数qp的缩放方法可以遵循参考图16描述的方法。
[0273]
图19图示根据本公开的第四方法调整qp值并基于调整的qp执行缩放(解量化)的方法。从与图19相关的描述省略的部分可以遵循参考图16给出的描述,并且在下文中,描述了根据本公开的第四方法在不应用变换跳过时和当应用变换跳过时调整量化参数的方法。
[0274]-不应用变换跳过的情况(transform_skip_flag[xtby][ytby][cidx]为0):
[0275]-qp=max(qpbdoffset,qp (cu_act_enabled_flag[xtby][ytby]?qpactoffset:0));根据本公开的第四方法,在将act应用于当前块的情况下,可以校正qp值以便于调整动态范围的改变,并且调整的qp值可能偏离预配置的范围,并且因此可以执行限幅运算。在第四方法中,基于反映图像的比特深度的量化参数偏移,可以将小于qpbdoffset的值限幅为qpbdoffset,以使调整的量化参数等于或大于变量qpbdoffset的值。qpbdoffset是根据图像的比特深度添加的量化参数偏移,并且根据比特深度以预配置的精度(例如,16个比特)表达变换系数。当act应用于当前块(cu_act_enabled_flag[xtby][ytby]为1)时,通过运算cu_act_enabled_flag[xtby][ytby]?qpactoffset:0,可以返回qpactoffset作为量化参数偏移并且可以通过qpactoffset校正量化参数qp。同时,当没有将act应用于当前块(cu_act_enabled_flag[xtby][ytby]为0)时,量化参数偏移为0,并且因此量化参数qp可以不被校正。根据本公开的第四方法,为了考虑根据比特深度的量化参数偏移,可以执行基于max算子的限幅,使得作为校正的量化参数的qp值等于或大于qpbdoffset。例如,qpbdoffset是非负的整数,并且因此当校正的量化参数值小于0时,该值可以被限幅为qpbdoffset。作为另一示例,即使当校正的量化参数值等于或大于0时,如果该值小于qpbdoffset,该值也可以被限幅为qpbdoffset。当应用act时,可以基于校正的量化参数执行缩放。基于校正的量化参数qp的缩放方法可以遵循参考图16描述的方法。
[0276]-应用变换跳过的情况(transform_skip_flag[xtby][ytby][cidx]为1):
[0277]-qp=max(qpprimetsmin,qp (cu_act_enabled_flag[xtby][ytby][cidx]?qpactoffset:0));根据本公开的第四方法,在将act应用于当前块的情况下,可以校正qp值以便于调整动态范围的改变,并且调整的qp值可能偏离预配置的范围,并且因此可以执行限幅运算。在第四方法中,基于关于在应用变换跳过时允许的量化参数的信息,可以执行限
幅使得校正的量化参数值等于或大于在变换跳过模式中允许的量化参数。当act应用于当前块(cu_act_enabled_flag[xtby][ytby]为1)时,通过运算cu_act_enabled_flag[xtby][ytby]?qpactoffset:0,可以返回qpactoffset作为量化参数偏移并且可以通过qpactoffset校正量化参数qp。同时,当没有将act应用于当前块(cu_act_enabled_flag[xtby][ytby]为0)时,量化参数偏移为0,并且因此量化参数qp可以不被校正。根据本公开的第四方法,可以执行限幅使得使用max算子校正的量化参数值变得等于或大于qpprimetsmin。变量qpprimetsmin定义在变换跳过模式中允许的最小量化参数,并且即使相对于应用act的块也可能需要满足量化参数需要等于或大于qpprimetsmin的条件。因此,当校正的量化参数值小于qpprimetsmin时,该值可以被限幅为qpprimetsmin。例如,qpprimetsmin是自然数,并且因此当校正的量化参数值小于0时,该值可以被限幅为qpprimetsmin。作为另一示例,即使当校正的量化参数值等于或大于0时,如果该值小于qpprimetsmin,该值也可以被限幅为qpprimetsmin。当应用act时,可以基于校正的量化参数执行缩放。基于校正的量化参数qp的缩放方法可以遵循参考图16描述的方法。
[0278]
图20图示根据本公开的第五方法调整qp值并基于调整的qp执行缩放(解量化)的方法。从与图20相关的描述省略的部分可以遵循参考图16给出的描述,并且在下文中,描述了根据本公开的第五方法在不应用变换跳过时和应用变换跳过时调整量化参数的方法。
[0279]-不应用变换跳过的情况(transform_skip_flag[xtby][ytby]为0):
[0280]-qp=max(0,qp (cu_act_enabled_flag[xtby][ytby]?qpactoffset:0));根据本公开的第五方法,在将act应用于当前块的情况下,可以对qp值进行校正以便于调整动态范围的改变,并且调整的qp值可能偏离预配置的范围,并且因此可以执行限幅运算。在第五方法中,基于在整数不为负的整数区域中定义量化参数,可以将小于0的值限幅为0以允许调整的qp值为0或更大。当act应用于当前块(cu_act_enabled_flag[xtby][ytby]为1)时,通过运算cu_act_enabled_flag[xtby][ytby]?qpactoffset:0,可以qpactoffset返回作为量化参数偏移并且可以通过qpactoffset校正量化参数qp。同时,当没有将act应用于当前块(cu_act_enabled_flag[xtby][ytby]为0)时,量化参数偏移为0,并且因此量化参数qp可以不被校正。根据本公开的第五方法,可以执行基于max算子的限幅以防止校正的qp值为负数。当应用act时,可以基于校正的量化参数执行缩放。
[0281]-应用变换跳过的情况(transform_skip_flag[xtby][ytby]为1):根据本公开的第五方法,在将act应用于当前块的情况下,为了调整动态范围的改变可以对qp值进行校正,并且调整的qp值可能会偏离预配置的范围,并且因此可以执行限幅运算。
[0282]-应用act的情况(cu_act_enabled_flag[xtby][ytby]为1):
[0283]-qp=max(0,qp qpactoffset);当应用act时,qp值可以通过作为量化参数偏移的qpactoffset来调整,并且调整的qp值可能会偏离预配置的范围,并且因此可以执行基于max算子的限幅。当调整的qp值为负数时,可以借助于max算子将qp配置为0。
[0284]-不应用act的情况(cu_act_enabled_flag[xtby][ytby]为0):
[0285]-qp=max(qpprimetsmin,qp);当不应用act时,不应用作为量化参数偏移的qpactoffset。因此,可以执行基于max算子的限幅,使得qp值变得等于或大于在变换跳过模式中允许的最小量化参数值。在当前qp值小于qpprimetsmin时,可以通过max算子将qp值配置为qpprimetsmin。
[0286]
根据第五方法,当应用变换跳过时,允许的最小量化参数可以被配置为根据是否应用act而变化。当应用act时,最小量化参数值可以配置为0,并且当不应用act时,最小量化参数值可以配置为qpprimetsmin。
[0287]
act在上面参考图16至图20描述的方法中的编译单元级别中被指示,但本公开不限于此。例如,即使在变换单元级别中指示act,在将act应用于缩放过程中处理的当前变换块所属的变换单元(块)的情况下,可以根据上述第一至第五方法校正量化参数,并且可以基于校正的量化参数执行缩放。
[0288]
图21图示用信号发送应用于变换跳过模式的最小量化参数的方法。如参考图16至图20所描述的,可以在包括sps、pps、图片报头、切片报头等的更高级别语法结构中的至少一个中包括和指示在变换跳过模式中允许的最小量化参数值。
[0289]
图21的(a)结构示出根据本公开的实施例的在sps语法结构中指示应用于变换跳过模式的最小量化参数的方法。
[0290]
chroma_format_idc可以在sps语法结构中用信号发送。chroma_format_idc语法元素指示相对于亮度采样的色度采样,并且可以根据chroma_format_idc确定当前处理图像的色度格式。当chroma_format_idc为0时,这可能指示单色格式,并且在单色格式中可能仅存在一个luma(第一通道)样本阵列。当chroma_format_idc为1时,这可能指示4:2:0格式,4:2:0格式中的色度(第二通道和第三通道)样本阵列的高度和宽度可以分别是亮度(第一通道)样本阵列的一半。当chroma_format_idc为2时,这可能指示4:2:2格式,4:2:0格式中的色度(第二通道和第三通道)样本阵列的高度可能与亮度(第一通道)样本阵列的相同,并且色度样本阵列的宽度可能是亮度样本阵列的一半。当chroma_format_idc为3时,这可以指示4:4:4格式,并且另外,可以用信号发送separate_colour_plane_flag。当separate_colour_plane_flag为1时,这可能指示4:4:4格式的三个分量被分离并独立编译,而当separate_colour_plane_flag为0时,这可能指示配置颜色空间的分量未被分开编译。可以仅在chroma_format_idc为3的情况下用信号发送separate_colour_plane_flag,该情况指示4:4:4格式,并且当不用信号发送separate_colour_plane_flag(其不包括在比特流中)时,可以推断separate_colour_plane_flag为0。当在4:4:4格式中separate_colour_plane_flag为0,则色度(第二通道和第三通道)分量样本阵列的高度和宽度可以与亮度(第一通道)分量样本阵列的高度和宽度相同。当在4:4:4格式中separate_colour_plane_flag为1时,可以对配置颜色空间的分量进行可分离编译,并且可以通过单色图片处理每个分量。当separate_colour_plane_flag为1时,可以在图片报头中附加地用信号发送colour_plane_id,并且colour_plane_id可以指示当前处理的图片对应于配置颜色空间的第一通道分量、第二通道分量和第三通道分量当中的哪个分量。
[0291]
在sps语法结构中,可以用信号发送指示亮度和色度阵列样本的比特深度信息的bit_depth_minus8语法元素。解码器可以基于bit_depth_minus8语法将作为指示亮度和色度阵列样本的比特深度的变量的bitdepth配置为8 bit_depth_minus8。当bitdepth为n(自然数)时,第一通道、第二通道和第三通道阵列样本的值可能在[0,2^n-1]范围内。例如,当bitdepth为8时,第一通道、第二通道和第三通道阵列样本可能具有[0,255]范围内的值。
[0292]
在sps语法结构中,可以用信号发送指示与在变换跳过模式中允许的最小量化参数有关的信息的min_qp_prime_ts_minus4语法元素。解码器可以基于min_qp_prime_ts_
minus4语法元素将作为指示在变换跳过模式中允许的最小量化参数值的变量的qpprimetsmin配置为4 min_qp_prime_ts_minus4。
[0293]
在sps语法结构中,可以用信号发送sps_transform_skip_enabled_flag语法元素。当sps_transform_skip_enabled_flag为1时,这指示作为指示变换跳过模式的语法元素的transform_skip_flag[][][]可以存在于变换单元语法中,并且这指示能够在序列-下位的变换单元级别中应用变换跳过模式。同时,当sps_transform_skip_enabled_flag为0时,这指示变换单元语法中不存在transform_skip_flag[][][](其不包括在比特流中),并且这指示不能在序列-下位的变换单元级别中应用变换跳过模式。
[0294]
在sps语法结构中,当chroma_format_idc为3(格式为4:4:4格式)时,可以附加地用信号发送指示4:4:4格式的编译方法是开还是关的信息。
[0295]
当sps_act_enabled_flag为1时,这指示能够使用act并且指示是否在编译单元级别中应用act的cu_act_enabled_flag可以存在于编译单元语法中。当sps_act_enabled_flag为0时,这指示不使用act并且编译单元语法中不存在cu_act_enabled_flag(其不包括在比特流中)。当sps_act_enabled_flag不存在时,其可以推断为0。
[0296]
当sps_palette_enabled_flag为1时,这指示编译单元语法中可能存在指示是否在编译单元级别应用调色板模式的pred_mode_plt_flag,并且这可以指示作为预测方法之一的调色板模式能够在序列下位的编译单元级别中应用。当sps_palette_enabled_flag为0时,这指示编译单元语法中不存在pred_mode_plt_flag(其不包括在比特流中),并且这可以指示不应用调色板模式。当sps_palette_enabled_flag不存在时,其可以推断为0。
[0297]
如上所述,作为指示在变换跳过模式中允许的最小量化参数的变量的qpprimetsmin可以基于min_qp_prime_ts_minus4语法元素来配置,并且可以在不取决于sps语法结构中的不同的语法元素的情况下始终用信号发送min_qp_prime_ts_minus4语法元素。
[0298]
同时,qpprimetsmin参数指示在变换跳过模式中允许的最小量化参数,并且当在对当前块应用调色板模式或应用变换跳过模式的情况下编译逸出值(escape value)时,参数可能会被受限地使用。即,在指示在sps级别中不应用变换跳过模式和调色板模式(sps_transform_skip_enabled_flag为0并且sps_palette_enabled_flag为0)的情况下,可能没有必要在用于qpprimetsmin的比特流中包括min_qp_prime_ts_minus4语法元素。因此,仅在指示可以在sps级别中使用变换跳过模式和调色板模式中的至少一种的情况下(sps_transform_skip_enabled_flag为1,或sps_palette_enabled_flag为1),当min_qp_prime_ts_minus4语法元素被用信号发送时,可以减少比特流的数量。
[0299]
图21的图(b)示出根据本公开的另一实施例的在sps语法结构中指示应用于变换跳过模式的最小量化参数的方法。
[0300]
在图21的图(b)中,min_qp_prime_ts_minus4可以指示与在变换跳过模式中允许的最小量化参数有关的信息。参考图21的(b),视频信号处理设备可以执行从比特流获得变换跳过激活标志(sps_transform_skip_enabled_flag)的操作。变换跳过激活标志(sps_transform_skip_enabled_flag)可以指示指示变换跳过模式的语法元素(transform_skip_flag)是否能够存在于变换单元语法中。指示变换跳过模式的语法元素(transform_skip_flag)可以是指示是否将变换跳过应用于包括在当前块中的变换块的变换跳过标志。
当变换跳过标志指示将变换跳过应用于包括在当前块中的变换块时,可以不应用变换。可以从sps、pps、图片报头或切片报头当中的比特流获得变换跳过激活标志。
[0301]
此外,视频信号处理设备可以执行从比特流获得调色板激活标志(sps_palette_enabled_flag)的操作。调色板激活标志(sps_palette_enabled_flag)可以指示是否应用调色板模式。调色板激活标志(sps_palette_enabled_flag)可以从sps、pps、图片报头或切片报头当中的比特流中获得。
[0302]
此外,在图21的图(b)中,基于sps_transform_skip_enabled_flag和sps_palette_enabled_flag,可以如下受限地用信号发送min_qp_prime_ts_minus4语法元素。
[0303]
if(sps_transform_skip_enabled_flag||sps_palette_enabled_flag)
[0304]
min_qp_prime_ts_minus4
[0305]
也就是说,当变换跳过激活标志指示在变换单元语法中存在指示变换跳过模式的语法元素(transform_skip_flag),或者调色板激活标志(sps_palette_enabled_flag)指示调色板模式的应用时,视频信号处理设备可以执行从比特流获得与在变换跳过模式中允许的最小量化参数有关的信息(min_qp_prime_ts_minus4)的操作。更具体地,当指示在sps级别中能够使用变换跳过模式和调色板模式中的至少一种(sps_transform_skip_enabled_flag为1,或sps_palette_enabled_flag为1)时,可以在比特流中包括min_qp_prime_ts_minus4语法元素,并且否则(sps_transform_skip_enabled_flag和sps_palette_enabeld_flag都为0),min_qp_prime_ts_minus4语法元素可能不包括在比特流中。当比特流中不存在min_qp_prime_ts_minus4语法元素时,可以推断该语法元素为0。如上所述,当在sps级别中不应用变换跳过模式和调色板模式时,不用信号发送min_qp_prime_ts_minus4语法元素信号,并且因此能够减少比特流的数量。
[0306]
在上述实施例中,qpprimetsmin变量被描述为仅用于变换跳过模式和调色板模式,但是本公开不限于此。例如,在编译方法a、b、c和d中使用qpprimetsmin参数时,sps级别中的编译方法的on/off语法元素分别为sps_tool_a_enabled_flag、sps_tool_b_enabled_flag、sps_tool_c_enabled_flag和sps_tool_d_enabled_flag,可以如下受限地用信号发送min_qp_prime_ts_minus4语法元素。
[0307]
if(sps_tool_a_enabled_flag||sps_tool_b_enabled_flag||sps_tool_c_enabled_flag||sps_tool_d_enabled_flag)
[0308]
min_qp_prime_ts_minus4
[0309]
这指示,仅在指示编译方法a、b、c和d中的至少一种能够在sps级别中应用的情况下,min_qp_prime_ts_minus4语法元素被包括在比特流中。
[0310]
图22是图示在帧内子分区(isp)模式中对块进行分区的实施例的图。isp模式对应于当帧内预测应用于当前编译单元时将当前块分区成多个变换单元(块)并执行预测和重构的方法。在isp模式下,可以通过预配置的方法将当前块分区成多个子块,并且预配置的方法可以包括水平分区和垂直分区。可以根据当前块的大小确定对当前块进行分区而获得的子块的数量。例如,当编译单元的大小为4x4时,可以不应用isp模式,并且这可能意味着编译单元没有被分区。当编译单元的大小为4x8或8x4时,可以将编译单元分区成两个变换单元(块),并且在其他大小的情况下,可以将编译单元分区成四个变换单元。可以根据变换相关信息确定能够应用isp模式的编译单元大小。例如,isp模式可以应用于编译单元的宽
度和高度都等于或小于亮度变换块的最大大小并且编译单元的宽度和高度的乘积大于亮度变换块的最小大小的平方的情况。亮度变换块的最小大小和最大大小可以分别是4和64。
[0311]
图22的图(a)图示能够被应用于4x8或8x4编译单元的变换单元分区方法,并且当针对具有wxh大小的编译单元指示水平分区时,编译单元可以被分区成具有wx(h/2)大小的两个变换单元,并且当指示垂直分区时,编译单元可以被分区成具有(w/2)xh大小的两个变换单元。分区是水平分区还是垂直分区可以由1比特的标志来指示。
[0312]
图22的图(b)图示能够应用于不具有4x8或8x4大小的编译单元的变换单元分区方法,并且当针对具有wxh大小的编译单元指示水平分区时,可以将编译单元分区成具有wx(h/4)大小的四个变换单元,并且当指示垂直分区时,编译单元可以被分区成具有(w/4)xh大小的四个变换单元。分区是水平分区还是垂直分区可以由1比特的标志指示。
[0313]
当isp模式应用于当前编译单元时,色度块可以不被分区。通过isp模式分区的预配置数量的变换单元可以包括亮度变换块,但是色度变换块可以仅包括在一些变换单元中。具体地,色度变换块可以仅包括在分区的变换单元当中的最后一个变换单元中。例如,当isp模式应用于4x8或8x4编译单元时,编译单元可以包括两个分区的变换单元,并且每个变换单元可以包括亮度变换块。同时,色度变换块可以仅包括在第二分区变换单元中,并且色度变换块的大小可以与色度编译块的大小相同。作为另一示例,当将isp模式应用于不具有4x8或8x4大小的编译单元时,编译单元可以包括四个分区的变换单元,并且每个变换单元可以包括亮度变换块。同时,色度变换块可以仅包括在第四分区变换单元中,并且色度变换块的大小可以与色度编译块的大小相同。
[0314]
相对于帧间预测块的残差信号,残差信号可能同心地存在于块的特定位置(残差信号的能量在同一位置处较大)。例如,可能存在残差信号的能量在残差信号块的边界区域较大,并且残差信号的能量在块的中心部分和另一侧边界区域相对较小的图样。在使用帧间预测块的残差信号的这种图样以将当前块分区成子块并执行变换和量化的情况下,能够提高帧间预测块的编译效率。
[0315]
图23图示子块变换(sbt)方法。sbt可以以预配置的比率分区当前编译单元,并且对分区的变换单元当中的仅一些变换单元执行变换和量化。在本公开中,描述了分区成具有1:1或1:3比率的两个变换单元,但本公开不限于此。
[0316]
sbt可以假定残差信号集中在分区的变换单元当中的一个变换单元上,仅对一个变换单元执行变换和量化,并假定剩余的变换单元中不存在残差信号。在图23的图(a)、(b)、(c)和(d)中,由“a”指示的区域中的变换单元对应于执行变换和量化的区域,并且可以使用与变换相关的语法元素来指示量化之后的变换块中是否存在除了0之外的变换系数(量化的变换系数)。具体地,变换系数标志可以包括第一变换系数标志(tu_cbf_luma)、第二变换系数标志(tu_cbf_cb)或第三变换系数标志(tu_cbf_cr)。在本公开中,第一变换系数标志、第二变换系数标志和第三变换系数标志也可以分别称为tu_y_coded_flag、tu_cb_coded_flag和tu_cr_coded_flag。编码器可以用信号发送tu_cbf_cb语法元素,并且解码器可以基于从比特流中解析的tu_cbf_cb语法元素来确定第二通道变换块中是否存在除了0之外的一个或多个变换系数。当第二变换系数标志(tu_cbf_cb)为1时,这可以指示第二通道变换块中存在除了0之外的一个或多个变换系数,并且当第二变换系数标志(tu_cbf_cb)为0时,这可以指示第二通道变换块的变换系数全部为0。当对当前块应用act时,第二通道
变换块可以是cg变换块。当对当前块不应用act时,该块可以指示原始颜色空间的第二通道变换块,并且可以是ycbcr的cb变换块。
[0317]
接下来,编码器可以用信号发送tu_cbf_cr语法元素,并且解码器可以基于从比特流中解析的tu_cbf_cr语法元素来确定第三通道变换块中是否存在除了0之外的一个或多个变换系数。当第三变换系数标志(tu_cbf_cr)为1时,这可以指示第三通道变换块中存在除了0之外的一个或多个变换系数,并且当第三变换系数标志(tu_cbf_cr)为0时,这可以指示第三通道变换块的变换系数全部为0。当act应用于当前块时,第三通道变换块可以是co变换块。当对当前块不应用act时,该块可以指示原始颜色空间的第三通道变换块,并且可以是ycbcr的cr变换块。
[0318]
接下来,编码器可以用信号发送作为第一变换系数标志的tu_cbf_luma语法元素,并且解码器可以基于从比特流解析的tu_cbf_luma语法元素确定第一通道变换块中是否存在除了0之外的一个或多个变换系数。当第一变换系数标志(tu_cbf_luma)为1时,这可以指示第一通道变换块中存在除了0之外的一个或多个变换系数,并且当第一变换系数标志(tu_cbf_luma)为0时,这可以指示第一通道变换块的变换系数全部为0。第一通道变换块可以是亮度变换块。
[0319]
在图23的图(a)、(b)、(c)和(d)中,由“a”指示的区域对应于其中存在残差信号的区域,并且编码器可以基于量化的变换系数信息执行由“a”指示的变换单元的变换和量化,并且然后用信号发送tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素。解码器可以基于从比特流解析的tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素来确定是否执行对应变换块的系数编译(残差编译)、缩放(解量化)和逆变换。当基于tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素,对应的变换块包括除了0之外的一个或多个系数时,解码器可以基于从比特流解析的语法元素获得量化的变换系数(transcoefflevel阵列)。解码器可以对量化的变换系数进行解量化以获得变换系数,并对变换系数进行逆变换以获得残差信号。同时,当变换块的所有系数都为0时,解码器可以不执行系数编译、缩放和逆变换,并且将所有残差样本阵列配置为0。下面可以参考图25和图26描述用信号发送tu_cbf_luma、tu_cbf_cb和tu_cbf_cr的方法。
[0320]
同时,在图23的(a)、(b)、(c)和(d)中未用“a”指示的区域可以为假定其中不存在残差信号的变换单元区域,可以不执行系数编译、解量化和逆变换过程,并且编码器可以不用信号发送tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素。解码器可以将tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素配置为0,而无需从比特流中解析它们。
[0321]
图23的图(a)图示当编译单元的大小是wxh时,将编译单元垂直分区成具有(w/2)xh大小的两个变换单元的方法。可替选地,当指示{1/4,3/4}分区的1比特的标志为1时,编译单元可以被分区成具有(w/4)xh大小和(3w/4)xh大小的两个变换单元。在上述两种情况下,可以对左变换单元执行变换,可以在水平方向应用dct-viii,并且可以在垂直方向应用dst-vii。如果相应变换单元的宽度或高度大于预配置的值,则可以在水平和垂直两个方向两者上应用dct-ii。预配置的值可以是32。在色度块的情况下,可以在水平和垂直两个方向上应用dct-ii。
[0322]
图23的图(b)图示当编译单元的大小是wxh时,将编译单元垂直分区成具有(w/2)xh大小的两个变换单元的方法。可替选地,当指示{1/4,3/4}分区的1比特的标志为1时,编
译单元可以被分区成具有(3w/4)xh大小和(w/4)xh大小的两个变换单元。在上述两种情况下,可以对右变换单元执行变换,并且可以在水平方向和垂直方向两者上应用dst-vii。如果相应变换单元的宽度或高度大于预配置的值,则可以在水平和垂直两个方向两者上应用dct-ii。预配置的值可以是32。在色度块的情况下,可以在水平和垂直两个方向上应用dct-ii。
[0323]
图23的图(c)图示当编译单元的大小是wxh时,将编译单元水平分区成具有wx(h/2)大小的两个变换单元的方法。可替选地,当指示{1/4,3/4}分区的1比特的标志为1时,编译单元可以被分区成具有wx(h/4)大小和wx(3h/4)大小的两个变换单元。在上述两种情况下,可以对上变换单元执行变换,可以在水平方向应用dst-vii,并且可以在垂直方向应用dct-viii。如果相应变换单元的宽度或高度大于预配置的值,则可以在水平和垂直两个方向上应用dct-ii。预配置的值可以是32。在色度块的情况下,可以在水平和垂直两个方向上应用dct-ii。
[0324]
图23的图(d)图示当编译单元的大小是wxh时,将编译单元水平分区成具有wx(h/2)大小的两个变换单元的方法。可替选地,当指示{1/4,3/4}分区的1比特的标志为1时,编译单元可以被分区成具有wx(3h/4)大小和wx(h/4)大小的两个变换单元。在上述两种情况下,可以对下变换单元执行变换,并且可以在水平方向和垂直方向上应用dst-vii。如果相应变换单元的宽度或高度大于预配置的值,则可以在水平和垂直两个方向上应用dct-ii。预配置的值可以是32。在色度块的情况下,可以在水平和垂直两个方向上应用dct-ii。
[0325]
可以根据作为指示存在/不存在作为变换相关语法结构的transform_tree()语法结构的语法元素的cu_cbf来确定是否使用sbt,并且可以在编码单元级别中用信号发送是否应用sbt。在本公开中,cu_cbf语法元素也可以称为cu_coded_flag。例如,当sbt标志(cu_sbt_flag)为1时,这可以指示sbt用于当前编译单元,而当sbt标志(cu_sbt_flag)为0时,这可以指示sbt不用于当前编译单元。当cu_cbf为1时,这可以指示对于当前编译单元存在transform_tree()语法结构,并且这可能意味着当前编译单元包括至少不为0的一个或多个系数。同时,当cu_cbf为0时,这可以指示transform_tree()语法结构不存在,并且这可能意味着残差信号不存在。编码器和解码器可以配置与编译单元大小相同的根节点,并且对变换树进行分区,并且分区的变换树的叶节点可以是变换单元。变换树可以通过transform_tree()语法结构来执行,并且解码器可以基于从比特流中解析的cu_cbf语法元素来确定transform_tree()语法结构是否存在。当没有transform_tree()时,transform_tree()无法执行变换单元分区,并且因此可能无法应用sbt。在这种情况下,解码器可能不会从比特流中解析sbt标志(cu_sbt_flag)并将其配置为0。
[0326]
在另一个实施例中,可以根据预测方法来确定是否使用sbt。在残差信号集中分布在一个区域时sbt是有效的,并且因此,当预测方法是帧间预测时,可以应用sbt。在帧内预测的情况下,可以不应用sbt,并且解码器可以不从比特流中解析sbt标志(cu_sbt_flag)并将其配置为0。另外,在帧间预测的特定预测方法中sbt的使用可能受到限制。例如,作为帧间预测当中的合并预测的方法,可以合并由合并候选指示的参考块和使用预配置的帧内预测模式生成的帧内预测块以生成当前块的预测块。在这种情况下,残差信号的特性可能示出帧内预测块的特性,并且因此可以不应用sbt。
[0327]
当sbt标志(cu_sbt_flag)为1时,这可以指示sbt被应用于当前块,并且可以使用
附加语法元素来指示对变换树进行分区的方法。首先,可以用信号发送指示分区是{1/4,3/4}分区还是{1/2,1/2}分区的语法元素。例如,当cu_sbt_quad_flag为1时,这可以指示当前编译单元包括通过sbt获得的变换单元,并且是当前编译单元的1/4的大小,并且从而可以意味着当前编译单元包括被分区成{1/4,3/4}大小的两个变换单元。同时,当cu_sbt_quad_flag为0时,这可能指示当前编译单元包括通过sbt获得的变换单元并且是当前编译单元的1/2大小,并且因此可以意味着当前编译单元包括被分区成{1/2,1/2}大小的两个变换单元。
[0328]
接下来,可以用信号发送关于分区方向的信息。例如,当cu_sbt_horizontal_flag为1时,这可以指示当前编译单元通过sbt被水平分区成两个变换单元。同时,当cu_sbt_horizontal_flag为0时,这可以指示当前编译单元通过sbt被垂直分区成两个变换单元。
[0329]
接下来,可以用信号发送指示由sbt分区的变换单元当中的其中存在残差信号的变换单元的信息。例如,当sbt位置标志(cu_sbt_pos_flag)为1时,这可以指示在相对于由sbt分区的两个变换单元当中的第一变换单元的比特流中不存在tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素。这可能意味着第一变换单元中不存在残差信号。编码器可以不用信号发送相对于第一变换单元的tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素。解码器可以将tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素配置为0,而无需从相对于第一变换单元的比特流中解析它们。同时,当sbt位置标志(cu_sbt_pos_flag)为0时,这可以指示在相对于由sbt分区的两个变换单元当中的第二变换单元的比特流中不存在tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素。这可能意味着第二变换单元中不存在残差信号。编码器可以不用信号发送相对于第二变换单元的tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素。解码器可以将tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素配置为0,而无需从相对于第二变换单元的比特流中解析它们。
[0330]
当应用sbt时,可以根据变换单元的索引(位置)和变换单元的大小来选择在水平和垂直方向上应用的变换核,并且因此可以不显式地用信号发送指示变换核的语法元素。
[0331]
上面参考图22和图23描述的isp模式和sbt可以分区变换树,而图24图示作为与变换树相关的语法结构的transform_tree()语法结构。transform_tree()语法结构可以处理变换树的分区,并且变换树的叶节点可以是变换单元(tu),并且可以在变换单元中执行与残差信号相关的语法元素的解析和处理。
[0332]
transform_tree()可以接收下述的输入:(x0,y0),其是当前处理的节点的左上坐标;tbwidth,其是当前处理的节点的宽度;tbheight,其是其高度;treetype,其是指示当前处理的编码树的类型的变量;以及根据treetype变量配置的chtype变量。当指示当前处理的树的类型的信息(treetype)是single_tree时,这可以指示亮度和色度已经被编码在相同的编码树结构中。即,single_tree可以指示在分区包括当前块的上位区域时使用单树。当指示当前处理的树的类型的信息(treetype)为dual_tree_luma时,这可以指示当前处理的树是当亮度和色度已经以不同的编码树结构编码时的亮度分量的树。即,dual_tree_luma可以指示在分区包括当前块的上位区域时使用双树,并且包括在当前块中的分量是第一通道分量(luma)。当treetype为dual_tree_chroma时,这可能意味着当前处理的树是当亮度和色度以不同的编码树结构编码时的用于色度分量的树。可以基于treetype配置变量chtype,并且当treetype为dual_tree_chroma时,chtype可以配置为1,并且否则,其可以配
置为0。当初始调用transform_tree()时,(x0,y0)可以与编译单元的左上坐标相同,并且tbwidth、tbheight、treetype和chtype可以分别与编译单元的宽度、高度、treetype和chtype相同。对具有与编译单元相同大小的变换树的根节点的分区可以划分为如下三种情况。
[0333]
i)在当前节点的宽度大于最大亮度变换样本数(maxtbsizey)时,或者在当前节点的高度大于最大亮度变换样本数时(tbwidth》maxtbsizey||tbheight》maxtbsizey):maxtbsizey是指示亮度最大变换块的大小(样本数量)的变量,并且可以根据编解码器中定义的变换核的最大大小来确定。增大变换核的最大大小一般可以增加能量压缩,并且从而能够增加编译效率,但是硬件编码器和解码器的流水线缓冲区的大小可以根据变换核的最大大小来确定。因此,可以考虑复杂度和编译效率两者来确定变换核的最大大小。maxtbsizey对于编码器和解码器可以被配置成相同的固定常数,并且可以根据在更高级别中用信号发送的语法元素来配置。例如,可以在sps和pps之一中包括和指示关于亮度变换块的最大大小(样本数量)的信息。例如,sps_max_luma_transform_size_64_flag可以包括在sps中,并且然后用信号发送。当sps_max_luma_transform_size_64_flag为1时,这可以指示亮度样本的最大变换大小(样本数量)为64,当sps_max_luma_transform_size_64_flag为0时,这可以指示亮度样本的最大变换大小(样本数量)是32,变量maxtblog2sizey和maxtbsizey可以基于sps_max_luma_transform_size_64_flag被配置如下。
[0334]
maxtblog2sizey=sps_max_luma_transform_size_64_flag?6:5
[0335]
maxtbsizey=1《《maxtblog2sizey
[0336]
变量maxtbsizey指示亮度变换块的最大大小(样本数量),并且maxtblog2sizey可以与maxtbsizey以2为底的对数的值相同。在上述实施例中,已经描述了关于亮度变换块的最大大小(样本数量)的信息在sps级别中以标志类型被用信号发送,并且亮度变换块的最大大小(样本数量)被确定为64或32之一。然而,本公开不限于此。例如,可以直接用信号发送以2为底的亮度变换块的最大大小(样本数量)的对数值。在上述实施例中,可以在sps级别中确定maxtblo2sizey和maxtbsizey,并且可以将参数应用于作为sps的较低级别的图片、图块和切片级别。
[0337]
在基于亮度变换块的最大大小(样本数量)的变换树分区中,可以不显式地用信号发送变换树分区方法。同时,在isp或sbt的情况下,可以显式地用信号发送变换树分区方法,并且在isp和sbt未被应用的情况下可以执行基于亮度变换块的最大大小(样本数量)的变换树分区。因此,可以在图24的transform_tree语法结构的第一个if语句中识别当前编译单元是否应用isp或sbt。当intrasubpartitionssplittype为isp_no_split时,这可以指示isp没有应用于当前编译单元,并且当intrasubpartitionssplittype不是isp_no_split时,这可以指示isp被应用于当前编译单元。当sbt标志(cu_sbt_flag)为1时,这可以指示sbt被应用于当前编译单元,并且当sbt标志(cu_sbt_flag)为0时,这可以指示sbt没有被应用于当前编译单元。在不应用isp和sbt的情况下,可以执行基于亮度变换块的最大大小(样本数量)的变换树分区。因此,当在第一个if语句中intrasubpartitionssplittype为isp_no_split并且sbt标志(cu_sbt_flag)为0时,可以执行基于亮度变换块的最大大小(样本数量)的变换树分区。
[0338]
当变换树的根节点和分区的中间节点的宽度(tbwidth)或高度(tbheight)大于
maxtbsizey时,不显式地用信号发送和解析分区方法,并且可以对变换树进行分区直到分区节点的宽度和高度变成等于或小于maxtbsizey。当tbwidth和tbheight都等于或小于maxtbsizey时,对应的节点可以成为作为变换树的叶节点的变换单元。
[0339]
例如,当maxtbsizey相对于64x64根节点为32(与编译单元的大小相同)时,可以将变换树分区成具有32x32大小的四个节点,并且具有32x32大小的叶节点可以成为变换单元而无需进一步分区。作为另一示例,当maxtbsizey相对于64x32根节点为32时,变换树可以被分区成具有32x32大小的两个节点,并且具有32x32大小的叶节点可以成为变换单元而无需进一步分区。当变换树的根节点和分区的中间节点的宽度或高度大于maxtbsizey时,可以递归调用transform_tree()以对变换树进行分区。当变换树的根节点和分区的中间节点的宽度和高度都等于或小于maxtbsizey时,对应的节点可以成为变换单元而无需进一步分区,并且可以在transform_unit()语法结构中执行与残差信号相关的语法元素的解析和处理。
[0340]
ii)当sbt应用于当前编译单元时(cu_sbt_flag==1):与上述情况i)不同,当应用sbt时,可以通过在编译单元级别中的语法元素的显式信令来确定变换树分区方法。
[0341]
iii)当对当前编译单元应用isp时(intrasubpartitionssplittype!=isp_no_split):与索引i)中描述的情况不同,当应用isp时,可以通过编译单元级别的语法元素的显式信令来确定变换树分区方法。当intrasubpartitionssplittype为isp_hor_split时,这可以指示由isp进行水平分区,并且当intrasubpartitionssplittype为isp_ver_split时,这可以指示由isp进行垂直分区。
[0342]
如上文所述的情况i)、ii)和iii),变换树的分区可以被分类成在没有语法元素的显式信令的情况下进行分区的情况i)以及指示通过使用语法元素的显式信号的分区方法的情况ii)和iii)。在图24所图示的transform_tree()语法结构的情况下,可以执行在所有情况i)、ii)和iii)中描述的变换树分区,并且图24的transform_tree()语法结构简述如下。
[0343]
transform_tree()
[0344]
{
[0345]
if(intrasubpartitionssplittype==isp_no_split&&!cu_sbt_flag)
[0346]
{
[0347]
基于块大小进行隐式分区
[0348]
}
[0349]
else if(cu_sbt_flag)
[0350]
{
[0351]
基于sbt模式进行显式分区
[0352]
}
[0353]
else if(intrasubpartitionssplittype==isp_hor_split)
[0354]
{
[0355]
基于isp模式进行显式分区
[0356]
}
[0357]
else if(intrasubpartitionssplittype==isp_ver_split)
[0358]
{
[0359]
基于isp模式进行显式分区
[0360]
}
[0361]
}
[0362]
在图24所图示的transform_tree()语法结构中,首先,当intrasubpartitionssplittype为isp_no_split并且sbt标志(cu_sbt_flag)为0时,可以执行基于节点的大小信息和亮度最大变换块大小(样本数量)的隐式分区。接下来,当intrasubpartitionssplittype是isp_no_split并且sbt标志(cu_sbt_flag)是1时,可以基于在编译单元中用信号发送和解析的sbt相关语法元素来分区变换树。接下来,当intrasubpartitionssplittype不是isp_no_split,并且sbt标志(cu_sbt_flag)为0时,可以基于intrasubpartitionssplittype执行通过isp的水平分区或垂直分区。
[0363]
作为变换树的叶节点的变换单元可以包括与变换和变换系数有关的语法元素,并且可以在transform_unit()语法结构中进行处理。图25图示根据本公开的实施例的transform_unit()语法结构。transform_unit()语法结构指示与变换单元相关的语法结构,并且可以接收tbwidth、tbheight、treetype、subtuindex和chtype变量的输入。(x0,y0)可以指示当前变换块的左上亮度样本的位置,并且可以是对图片的左上亮度样本位置的相对位置。变量tbwidth和tbheight可以分别指示当前变换块的宽度和当前变换块的高度。亮度分量的编码树结构和色度分量的编码树结构可以相同或不同地编码,并且因此可以通过treetype变量来指示当前处理的编码树类型。当treetype为single_tree时,这意味着亮度分量和色度分量已经被编码在同一编码树结构中,并且在这种情况下,变换单元可以包括根据颜色格式的色度变换块和亮度变换块。当treetype为dual_tree_luma时,这可能意味着当亮度分量和色度分量以不同的编码树结构编码时,当前处理的编码树是亮度分量的编码树。在这种情况下,变换单元可以包括亮度变换块。当treetype为dual_tree_chroma时,这可能意味着当亮度分量和色度分量以不同的编码树结构编码时,当前处理的编码树是色度分量的编码树。在这种情况下,变换单元可以包括根据颜色格式的色度变换块。subtuindex指示当前处理的变换单元的索引。chtype可以基于treetype进行配置,并且当treetype为dual_tree_chroma时,chtype可以配置为1,并且否则,其可以配置为0。
[0364]
在transform_unit()语法结构中,首先,可以配置作为第二通道分量和第三通道分量的索引的(xc,yc),以及第二通道变换块和第三通道变换块的宽度和高度。输入到transform_unit()的(x0,y0)、tbwidth和tbheight可以是参考亮度块配置的值。例如,tbwidth和tbheight可以是亮度变换块的宽度和高度,并且色度变换块的宽度(变量wc)和高度(变量hc)可能不同于根据颜色格式(或色度格式)的亮度变换块的宽度和高度。
[0365]
根据色度样本阵列的下采样比率,色度格式可以被划分为单色、4:2:0、4:2:2和4:4:4类型。在单色采样中,可能存在仅一个样本阵列,并且可能是亮度样本阵列。在4:2:0采样中,两个色度(第二通道和第三通道)样本阵列的宽度和高度可以分别是亮度(第一通道)样本阵列的宽度和高度的一半。在4:2:2采样中,两个色度(第二通道和第三通道)样本阵列的宽度可以是亮度(第一通道)样本阵列的宽度的一半,并且其高度可以与亮度(第一通道)样本阵列的高度相同。在4:4:4采样中,两个色度(第二通道和第三通道)样本阵列的宽度和高度可以分别与亮度(第一通道)样本阵列的宽度和高度相同。在4:4:4:采样中,可以将第
一通道分量、第二通道分量和第三通道分量分离并且独立处理,并且在这样的情况下,可以通过单色采样的图片处理每个通道分量。根据色度格式,与水平采样率相关的变量(subwidthc)、与垂直采样率相关的变量(subheightc)以及指示根据色度格式确定的色度阵列的类型的指示符(chromaarraytype)可以配置如下。
[0366]-单色
[0367]-chromaarraytype=0,subwidthc=1,subheightc=1
[0368]-4:2:0
[0369]-chromaarraytype=1,subwidthc=2,subheightc=2
[0370]-4:2:2
[0371]-chromaarraytype=2,subwidthc=2,subheightc=1
[0372]-4:4:4
[0373]-chromaarraytype=3,subwidthc=1,subheightc=1
[0374]
作为4:4:4采样的特定情况,当第一分量、第二分量和第三分量被分离并独立处理时,chromaarraytype可以被配置为0,如在单色的情况下。变量subwidthc和subheightc分别指示水平方向和垂直方向的下采样率,并且色度块的大小可以基于亮度块的大小、subwidthc和subheightc导出。例如,色度编译块的宽度和高度分别与将亮度编译块的宽度(cbwidth[chtype][x0][y0])除以subwidthc而获得的值、以及通过将亮度编译块的高度(cbheight[chtype][x0][y0])除以subheightc而获得的值相同。作为另一示例,色度变换块的宽度和高度分别与通过将亮度变换块的宽度(tbwidth)除以subwidthc所获得的值、以及通过将亮度变换块的高度(tbheight)除以subheightc而获得的值相同。
[0375]
当将isp模式应用于当前编译单元时,编译单元可以通过变换树被分区成多个变换单元,并且可以基于isp模式信息和编译块的大小确定作为指示分区的变换单元的数量的变量的numintrasubpartitions。即使当将isp模式应用于当前编译单元时,色度块也可能不被分区。例如,当将isp水平分区模式(isp_hor_split)应用于具有64x64大小的编译单元时,编译单元可以被分区成四个64x16变换单元。在变换单元当中,第一变换单元(subtuindex为0)、第二变换单元(subtuindex为1)并且第三变换单元(subtuindex为2)可以仅包括具有64x16大小的亮度变换块。第四变换单元(subtuindex为3)可以包括具有非分区大小(与色度编译块的大小相同)的色度变换块和具有64
×
16大小的亮度变换块。
[0376]
在可以包括色度块的树结构中(第一条件,当treetype是single_tree时),当应用isp模式时(第二条件,intrasubpartitionssplittype不是isp_no_split),对于最后分区的变换单元(第三条件,当subtuindex为numintrasubpartitions-1)时,与色度阵列的索引相关的变量xc和yc,以及色度阵列的宽度wc和高度hc可以配置如下。
[0377]-xc=cbposx[chtype][x0][y0]
[0378]-yc=cbposy[chtype][x0][y0]
[0379]-wc=cbwidth[chtype][x0][y0]/subwidthc
[0380]-hc=cbheight[chtype][x0][y0]/subheightc
[0381]
这可以指示,当应用isp模式时,色度块没有被分区,并且具有与没有被分区的色度编译块相同大小的色度变换块被包括在最后分区的变换单元(其subtuindex为numintrasubpairtitions-1的变换单元)中。
[0382]
当第一条件、第二条件和第三条件中的任何一个为假时,xc、yc、wc和hc可以被配置如下。
[0383]-xc=x0
[0384]-yc=y0
[0385]-wc=tbwidth/subwidthc
[0386]-hc=tbheight/subheightc
[0387]
作为指示存在/不存在色度样本(第二分量和第三分量)阵列的变量的chromaavailable可以被配置为当以下第一条件至第三条件都为真时为真。
[0388]-[第一条件]treetype!=dual_tree_luma
[0389]
在当前处理的编码树的结构对应于仅包括亮度(第一分量)的树时,可以不包括色度样本阵列。
[0390]-[第二条件]chromaarraytype!=0
[0391]
当处理后图像的颜色格式为单色时,或者第一分量、第二分量和第三分量在4:4:4图像中独立且可分离地处理时,chromaarraytype可以配置为0,并且这可以指示色度(第二分量和第三分量)不存在。
[0392]-[第三条件]intrasubpartitionssplittype==isp_no_split||(intrasubpartitionssplittype!=isp_no_split&&subtuindex==numintrasubpartitions-1)
[0393]
当isp模式不应用于当前编译单元(intrasubpairtitionssplittype是isp_no_split)时,或者当isp模式被应用(intrasubpartitionssplittype不是isp_no_split)时,在当前处理的变换单元是分区变换单元当中的最后一个变换单元的情况下(subtuindex为numintrasubpartitions-1),可以包括色度样本阵列。
[0394]
在transform_unit()语法结构中,首先,可以处理指示变换块是否包括除了0之外的一个或多个变换系数的语法元素。tu_cbf_cb[xc][yc]语法元素是指示第二通道变换块是否包括除了0之外的一个或多个变换系数的语法元素。当tu_cbf_cb[xc][yc]为1时,这可以意味着第二通道变换块包括除了0之外的一个或多个变换系数。同时,当tu_cbf_cb[xc][yc]为0时,这可以指示第二通道变换块的所有变换系数为0。索引xc和yc可以指示第二通道变换块的左上位置(xc,yc),并且第二通道可以是ycbcr颜色空间的cb通道、ycgco颜色空间的cg通道、以及gbr颜色空间(也可以称为rgb颜色空间)的b通道。
[0395]
tu_cbf_cr[xc][yc]语法元素是指示第三通道变换块是否包括除了0之外的一个或多个变换系数的语法元素。当tu_cbf_cr[xc][yc]为1时,这可以意味着第三通道变换块包括除了0之外的一个或多个变换系数。同时,当tu_cbf_cr[xc][yc]为0时,这可以指示第三通道变换块的所有变换系数为0。索引xc和yc可以指示第三通道变换块的左上位置(xc,yc),并且第三通道可以是ycbcr颜色空间的cr通道、ycgco颜色空间的co通道、以及gbr颜色空间的r通道。
[0396]
tu_cbf_luma[x0][y0]语法元素是指示第一通道变换块是否包括除了0之外的一个或多个变换系数的语法元素。当tu_cbf_luma[x0][y0]为1时,这可能意味着第一通道变换块包括除了0之外的一个或多个变换系数。同时,当tu_cbf_luma[x0][y0]为0时,这可以指示第一通道变换块的所有变换系数为0。索引x0和y0可以指示第一通道变换块的左上第
一通道样本位置(x0,y0),并且可以是对图片的左上第一通道样本位置的相对位置。第一通道可以是ycbcr颜色空间的亮度y通道、ycgco颜色空间的亮度y通道和gbr颜色空间的g通道。
[0397]
根据以下第一至第三条件,可以首先用信号发送tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]语法元素。
[0398]-[第一条件](treetype==single_tree||treetype==dual_tree_chroma)&&chromaarraytype!=0
[0399]
当treetype为single_tree或dual_tree_chroma时,当前单元可以包括用于第二通道分量和第三通道分量的块,并且当chromaarraytype为0时,这可以指示第二通道样本阵列和第三通道样本阵列不存在。因此,在满足第一条件的情况下,当第二条件为真或第三条件为真时,可以用信号发送tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]。当第一条件为假时,编码器可能不会用信号发送tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]。解码器可以将tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]都配置为0,而无需从比特流中解析它们。
[0400]-[第二条件]intrasubpartitionssplittype==isp_no_split&&
[0401]
!(cu_sbt_flag&&((subtuindex==0&&cu_sbt_pos_flag)||
[0402]
(subtuindex==1&&!cu_sbt_pos_flag)))
[0403]
第二条件可以指示当isp模式不应用于当前块(intrasubpartitionssplittype是isp_no_split)时,用信号发送tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]的条件。当不应用isp模式时,可以应用sbt,并且当应用sbt时,可以通过变换树将编译单元分区成预配置数量的变换单元,并且变换单元的预配置数量可以是2。当应用sbt(cu_sbt_flag为1)时,如参考图23所述,可以用信号发送分区的变换单元当中的作为指示其中存在残差信号的变换单元的语法元素的sbt位置标志(cu_sbt_pos_flag)。当sbt位置标志(cu_sbt_pos_flag)为1时,这指示在相对于两个分区的变换单元当中的第一变换单元(其subtuindex为0的变换单元)的比特流中不存在tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素,并且这意味着在第二变换单元中可能存在残差信号(subtuindex为1)。在这种情况下,编码器可以不用信号发送相对于第一变换单元的tu_cbf_luma[x0][y0]、tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]。解码器可以将tu_cbf_luma[x0][y0]、tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]都配置为0,而无需从比特流中解析它们。
[0404]
同时,当sbt位置标志(cu_sbt_pos_flag)为0时,这指示tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素不存在于相对于通过sbt分区的两个变换单元当中的第二变换单元(subtuindex为1)的比特流中,并且这意味着残差信号能够存在于第一变换单元中(subtuindex为0)。在这种情况下,编码器可以不用信号发送相对于第二变换单元的tu_cbf_luma[x0][y0]、tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]。解码器可以将tu_cbf_luma[x0][y0]、tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]全部配置为0,而无需从比特流中解析它们。因此,第二条件可能意味着,在不应用isp模式和sbt,或者应用sbt时当前处理的变换单元中能够存在残差信号的情况下,可以用信号发送tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]。
[0405]-[第三条件]intrasubpartitionssplittype!=isp_no_split&&
[0406]
(subtuindex==numintrasubparrtitions-1)
[0407]
第三条件可以指示当将isp模式应用于当前块(intrasubpartitionssplittype不是isp_no_split)时,用信号发送tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]的条件。当isp模式应用于当前块时,可以通过变换树将编译单元分区成numintrasubpartitions个变换单元,并且色度(第二通道和第三通道)块可以仅包括在分区的变换单元当中的最后一个变换单元中(subtuindex是numintrasubpartitions-1)。色度块可能不被包括在其他变换单元中(subtuindex等于或大于0,并且小于numintrasubpartitions-1),并且可能不用信号发发送tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]。在这种情况下,编码器可能不会用信号发送tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]。解码器可以将tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]都配置为0,而无需从比特流中解析它们。
[0408]
当第一条件为真并且第二条件为真或第三条件为真时,可以用信号发送tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]。当tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]不存在时,解码器可以将其都配置为0。
[0409]
在transform_unit()语法结构中,接下来,可以用信号发送tu_cbf_luma[x0][y0]。根据以下第一至第三条件,可以用信号发送tu_cbf_luma[x0][y0]语法元素。
[0410]
[第一条件]treetype==single_tree||treetype==dual_tree_luma
[0411]
当treetype为single_tree或dual_tree_luma时,当前单元可以包括用于第一通道分量的块,并且在满足第一条件的情况下,当第二条件为真或第三条件为真时,可以用信号发送tu_cbf_luma[x0][y0]。当treetype为dual_tree_chroma时,当前单元可能不包括用于第一通道分量的块。在这种情况下,编码器可能不会用信号发送tu_cbf_luma[x0][y0]。解码器可以将tu_cbf_luma[x0][y0]配置为0,而无需从比特流中解析它。
[0412]-[第二条件]intrasubpartitionssplittype==isp_no_split&&
[0413]
!(cu_sbt_flag&&((subtuindex==0&&cu_sbt_pos_flag)||
[0414]
(subtuindex==1&&!cu_sbt_pos_flag)))&&
[0415]
(cupredmode[chtype][x0][y0]==mode_intra||
[0416]
(chromaavailable&&(tu_cbf_cb[xc][yc]||tu_cbf_cr[xc][yc]))||
[0417]
cbwidth[chtype][x0][y0]》maxtbsizey||
[0418]
cbheight[chtype][x0][y0]》maxtbsizey)
[0419]
当第(2-1)条件为真并且第(2-2)条件至第(2-5)条件中的至少一个为真时,第二条件可以被配置为真。
[0420]-[第(2-1)条件]intrasubpartitionssplittype==isp_no_split&&
[0421]
!(cu_sbt_flag&&((subtuindex==0&&cu_sbt_pos_flag)||
[0422]
(subtuindex==1&&!cu_sbt_pos_flag)))
[0423]
第(2-1)条件可以意味着,在不应用isp模式和sbt,或者在应用sbt时当前处理的变换单元中能够存在残差信号的情况下,可以根据第(2-2)条件到第(2-5)条件用信号发送tu_cbf_luma[x0][y0]。
[0424]-[第(2-2)条件]cupredmode[chtype][x0][y0]==mode_intra
[0425]
可以在编译单元级别中确定预测方法,并且可以基于在编译单元级别中接收到的信息来配置cupredmode[chtype][x0][y0]变量。预测方法可以包括帧内预测、帧间预测、帧内块复制(ibc)、调色板模式等。ibc预测可以对应于从当前正在重构的当前图片的重构区
域生成预测块的方法。调色板模式可以对应于以下方法:使用特定索引映射块中频繁生成的像素值,由编码器用信号发送索引信息,并由解码器基于从比特流解析的索引信息重构当前块。当cupredmode[chtype][x0][y0]为mode_intra时,这指示帧内预测被应用于当前块,并且当cupredmode[chtype][x0][y0]为mode_inter时,这可以指示帧间预测被应用于当前块。此外,当cupredmode[chtype][x0][y0]为mode_ibc时,这可以指示ibc预测被应用于当前块,并且当cupredmode[chtype][x0][y0]为mode_plt时,这可以指示调色板模式应用于当前块。当第(2-1)条件为真并且帧内预测被应用于当前块(cupredmode[chtype][x0][y0]是mode_intra)时,可以用信号发送tu_cbf_luma[x0][y0]。当将帧间预测或ibc预测应用于当前块时,可以根据第(2-3)条件到第(2-5)条件用信号发送tu_cbf_luma[x0][y0]。
[0426]-[第(2-3)条件]chromaavailable&&
[0427]
(tu_cbf_cb[xc][yc]||tu_cbf_cr[xc][yc])
[0428]
可以根据预测方法用信号发送指示是否transform_tree()语法结构存在的cu_cbf。
[0429]
例如,在调色板模式的情况下,能够在不使用残差信号的情况下重构块,并且因此当调色板模式应用于当前块时,可以不用信号发送cu_cbf。即,编码器没有显式地用信号发送cu_cbf,并且解码器可以将cu_cbf配置为0而不用从比特流中解析它。
[0430]
在帧内预测的情况下,基于当前块周围的重构样本,根据预配置的预测模式生成预测样本,并且因此与帧间预测相比,预测准确度可能降低。这可能意味着存在于块中的残差信号的能量较大,并且存在于块中的量化变换系数变为全0的可能性也较低。另外,当应用帧内预测时,可以在变换单元级别执行预测和重构,并且即使在块中存在的所有变换系数都为0时,也可能需要确定变换树的分区结构。因此,基于此特性,当对当前块应用帧内预测时,可能不用信号发送cu_cbf。编码器没有显式地用信号发送cu_cbf,并且解码器可以将cu_cbf配置为1,而无需从比特流中解析它。
[0431]
在帧间预测和ibc预测的情况下,可以根据合并模式和跳过模式用信号发送cu_cbf。合并模式可以根据预配置的方法生成包括多个运动信息集的合并候选列表,并用信号发送在合并候选列表中使用的运动信息集索引,并且运动信息集可以包括运动矢量、参考图片索引等等。解码器可以从比特流中解析合并标志,并确定合并模式是否应用于当前块。当将合并模式应用于当前块时,解码器可以额外解析合并索引,并在包括多个运动信息集的合并候选列表中选择由合并索引指示的特定运动信息集。解码器可以基于选择的运动信息集生成预测块。跳过模式是合并模式的一种特定模式,并且可以是其中不存在残差信号的合并模式,并且这可以指示不存在transform_tree()语法结构。跳过模式是否应用于当前块可以由跳过标志来指示。跳过模式(跳过标志为1并且合并标志为1的情况)指示不存在残差信号,而合并模式(跳过标志为0并且合并标志为1的情况)而不是跳过模式指示存在残差信号,并且这可以指示存在transform_tree()语法结构。因此,当合并标志为1时,编码器可能不用信号发送cu_cbf。解码器可能不从比特流中解析cu_cbf,并且基于跳过标志来确定cu_cbf。当跳过标志为1时,cu_cbf可以配置为0,并且当跳过标志为0时,cu_cbf可以配置为1。当合并模式不应用于当前块(合并标志为0)时,编码器可以显式地用信号发送cu_cbf。解码器可以从比特流中解析cu_cbf,并确定是否存在transform_tree()语法结构。
[0432]
当cu_cbf相对于帧间预测和ibc预测的块为1时,这可能意味着当前编译单元中存
在除了0以外的一个或多个变换系数,并且可以指示存在于transform_unit()语法结构中的tu_cbf_luma、tu_cbf_cb以及tu_cbf_cr中的至少一个不为0。在tu_cbf_luma之前用信号发送tu_cbf_cb和tu_cbf_cr语法元素,并且因此当色度(第二通道和第三通道)分量样本阵列不存在(chromaavailable为0),或者tu_cbf_cb和tu_cbf_cr都为0时,可以根据第(2-4)条件和第(2-5)条件用信号发送tu_cbf_luma。第(2-4)条件和第(2-5)条件指示基于亮度变换块的最大大小将编译单元分区成多个变换单元的条件,并且当编译单元的宽度或者高度大于亮度变换块的最大大小(样本数量)时,当前编译单元可以被分区成多个变换单元。当第(2-4)条件和第(2-5)条件为假时,这可以指示当前编译单元包括一个变换单元,并且当chromaavailable为0,或tu_cbf_cb和tu_cbf_cr都为0时,可以不从比特流中解析tu_cbf_luma[x0][y0],并且可以将其配置为1。同时,当第(2-3)条件为真时,(存在色度样本阵列,并且tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]中的至少一个为1),不可能限制tu_cbf_luma[x0][y0]的值,并且因此可以用信号发送tu_cbf_luma[x0][y0]。解码器可以从比特流中解析tu_cbf_luma[x0][y0],并且确定在第一通道变换块中是否存在除了0之外的一个或多个变换系数。
[0433]-[第(2-4)条件]cbwidth[chtype][x0][y0]》maxtbsizey
[0434]
如参考图24所述,当亮度编译块的宽度大于亮度最大变换块大小(样本数量)时,可以通过变换树将编译单元分区成多个变换单元。当编译单元可以被分区成多个变换单元时,基于亮度最大变换块大小(样本数量),可以用信号发送tu_cbf_luma[x0][y0]。解码器可以从比特流中解析tu_cbf_luma[x0][y0],并且确定在第一通道变换块中是否存在除了0之外的一个或多个变换系数。
[0435]-[第(2-5)条件]cbheight[chtype][x0][y0]》maxtbsizey
[0436]
如参考图24所述,当亮度编译块的高度大于亮度最大变换块大小(样本数量)时,编译单元可以通过变换树被分区成多个变换单元。当编译单元可以被分区成多个变换单元时,基于亮度最大变换块大小(样本数量),可以用信号发送tu_cbf_luma[x0][y0]。解码器可以从比特流中解析tu_cbf_luma[x0][y0],并且确定在第一通道变换块中是否存在除了0之外的一个或多个变换系数。
[0437]-[第三条件]intrasubpartitionssplittype!=isp_no_split&&
[0438]
(subtuindex《numintrasubpartitions-1||!infertucbfluma)
[0439]
当isp模式应用于当前块(intrasubpartitionssplittype不是isp_no_split)时,相对于通过isp模式分区的变换单元当中的至少一个变换单元,tu_cbf_luma[x0][y0]语法元素可能需要为1。为此,在将isp模式应用于当前编译单元时,所有分区的变换单元的tu_cbf_luma值为0的情况下,编码器可以不选择isp模式。在当前处理的变换单元不是由isp模式分区的变换单元当中的最后一个变换单元(subtuindex小于numintrasubpartitions-1)时,编码器可以显式地用信号发送tu_cbf_luma[x0][y0]。解码器可以从比特流中解析tu_cbf_luma[x0][y0],并且确定在第一通道变换块中是否存在除了0之外的一个或多个变换系数。在当前处理的变换单元是由isp模式分区的变换单元当中的最后一个变换单元(subtuindex是numintrasubpartitions-1)时,可以根据infertucbfluma变量来用信号发送tu_cbf_luma[x0][y0]。当infertucbfluma为1时,这可以指示,相对于isp模式分区的变换单元,在当前处理的变换单元之前处理的所有变换单元的tu_cbf_luma[x0][y0]的值为
0。因此,当对于最后一个变换单元infertucbfluma为1时,编码器可以不用信号发送tu_cbf_luma[x0][y0]。解码器可以将tu_cbf_luma[x0][y0]配置为1,而无需从比特流中解析它。同时,当infertucbfluma为0时,这可以指示,相对于isp模式分区的变换单元,当前处理的变换单元之前处理的变换单元当中的至少一个变换单元的tu_cbf_luma[x0][y0]的值是1。因此,不可能限制最后一个变换单元的tu_cbf_luma[x0][y0]的值,并且因此当对于最后一个变换单元infertucbfluma为0时,编码器可以用信号发送tu_cbf_luma[x0][y0]。解码器可以从比特流中解析tu_cbf_luma[x0][y0],并且确定在第一通道变换块中是否存在除了0之外的一个或多个变换系数。
[0440]
根据上述用信号发送tu_cbf_cb、tu_cbf_cr和tu_cbf_luma的方法,解码器可以确定在对应的变换块中是否存在除了0之外的一个或多个变换系数。当对应的变换块中存在除了0之外的一个或多个变换系数时,解码器可以基于tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素,从比特流中解析变换系数相关的语法元素,并且获得变换系数阵列。
[0441]
图26图示根据本公开的另一个实施例的transform_unit()语法结构。从与图26相关的描述省略的部分可以遵循以上参考图25给出的描述,并且图26图示用信号发送tu_cbf_luma[x0][y0]语法元素的另一种方法。
[0442]
参考图14至图19描述的act可以将第一颜色空间中的残差信号变换到第二颜色空间中,并且当包括在编译单元中的所有变换单元中的每一个的第二变换系数标志(tu_cbf_cb)、第三变换系数标志(tu_cbf_cr)和第一变换系数标志(tu_cbf_luma)全部为0时,可能没有颜色空间变换引起的影响。当tu_cbf_cb、tu_cbf_cr和tu_cbf_luma都为0时,这可以指示在第二通道变换块、第三通道变换块和第一通道变换块中存在的所有变换系数为0,并且这可以指示所有残差信号为0。因此,当act应用于当前编译单元时,可以满足cu_cbf为1,并且可以满足tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素中的至少一个不为0。基于以上情况,根据以下第一至第三条件,可以用信号发送tu_cbf_luma[x0][y0]语法元素。
[0443]
[第一条件]treetype==single_tree||treetype==dual_tree_luma
[0444]
当treetype为single_tree或dual_tree_luma时,当前单元可以包括具有第一通道分量的块,并且在满足第一条件的情况下,当第二条件为真或第三条件为真时,可以用信号发送tu_cbf_luma[x0][y0]。
[0445]
当指示当前处理的树的类型的信息(treetype)不指示单树(single_tree),并且指示当前处理的树的类型的信息(treetype)不指示双树亮度(dual_tree_luma)时,视频信号处理设备可以执行不从比特流获得指示当前块中包括的变换块中是否存在除了0之外的变换系数的第一变换系数标志(tu_cbf_luma[x0][y0])的操作。视频信号处理设备可以将tu_cbf_luma[x0][y0]配置为预先确定的值。例如,当treetype为dual_tree_chroma时,当前单元可能不包括具有第一通道分量的块。在这种情况下,编码器可以不用信号发送tu_cbf_luma[x0][y0]。解码器可以将tu_cbf_luma[x0][y0]配置为0,而无需从比特流中解析它。
[0446]-[第二条件]intrasubpartitionssplittype==isp_no_split&&
[0447]
!(cu_sbt_flag&&((subtuindex==0&&cu_sbt_pos_flag)||
[0448]
(subtuindex==1&&!cu_sbt_pos_flag)))&&
[0449]
((cupredmode[chtype][x0][y0]==mode_intra&&
[0450]
!cu_act_enabled_flag[x0][y0])||
[0451]
(chromaavailable&&(tu_cbf_cb[xc][yc]||tu_cbf_cr[xc][yc]))||
[0452]
cbwidth[chtype][x0][y0]》maxtbsizey||
[0453]
cbheight[chtype][x0][y0]》maxtbsizey)
[0454]
当第(2-1)条件为真并且第(2-2)条件至第(2-5)条件中的至少一个为真时,第二条件可以被配置为真。
[0455]-[第(2-1)条件]intrasubpartitionssplittype==isp_no_split&&
[0456]
!(cu_sbt_flag&&((subtuindex==0&&cu_sbt_pos_flag)||
[0457]
(subtuindex==1&&!cu_sbt_pos_flag)))
[0458]
第(2-1)条件可以意味着,在不应用isp模式和子块变换(sbt),或者当sbt被应用时在当前处理的变换单元中能够存在残差信号的情况下,可以根据第(2-2)条件到第(2-5)条件用信号发送tu_cbf_luma[x0][y0]。
[0459]-[第(2-2)条件]cupredmode[chtype][x0][y0]==mode_intra&&
[0460]
!cu_act_enabled_flag[x0][y0]
[0461]
可以在编译单元级别中确定预测方法,并且可以基于在编译单元级别中接收到的信息来配置cupredmode[chtype][x0][y0]变量。预测方法可以包括帧内预测、帧间预测、帧内块复制(ibc)、调色板模式等。ibc预测可以对应于从当前正在重构的当前图片的重构区域生成预测块的方法。调色板模式可以对应于以下方法:通过特定索引映射块中频繁生成的像素值,由编码器用信号发送索引信息,并由解码器基于从比特流解析的索引信息重构当前块。当cupredmode[chtype][x0][y0]为mode_intra时,这指示帧内预测被应用于当前块,并且当cupredmode[chtype][x0][y0]为mode_inter时,这可以指示帧间预测被应用于当前块。此外,当cupredmode[chtype][x0][y0]为mode_ibc时,这可以指示ibc预测被应用于当前块,并且当cupredmode[chtype][x0][y0]为mode_plt时,这可以指示调色板模式被应用于当前块。即使当对当前块应用帧内预测时,也可以根据是否对当前块应用act来限制tu_cbf_luma[x0][y0]的值。因此,可以基于应用于当前块的预测模式(cupredmode[chtype][x0][y0])和指示act是否应用于当前块的标志(cu_act_enabled_flag[x0][y0])来用信号发送tu_cbf_luma[x0][y0]。当第(2-1)条件为真,对当前块应用帧内预测(cupredmode[chtype][x0][y0]为mode_intra),并且不对当前块应用act(cu_act_enabled_flag[x0][y0]为0)时,编码器可以用信号发送tu_cbf_luma[x0][y0]。解码器可以从比特流中解析tu_cbf_luma[x0][y0],并且确定在第一通道变换块中是否存在除了0之外的一个或多个变换系数。
[0462]
当对当前块应用帧内预测和act,或者对其应用帧间预测或ibc预测时,可以根据第(2-3)条件至第(2-5)条件用信号发送tu_cbf_luma[x0][y0]。
[0463]-[第(2-3)条件]chromaavailable&&
[0464]
(tu_cbf_cb[xc][yc]||tu_cbf_cr[xc][yc])
[0465]
可以根据预测方法用信号发送指示transform_tree()语法结构是否存在的cu_cbf。
[0466]
例如,在调色板模式的情况下,能够在不使用残差信号的情况下重构块,并且因此当调色板模式应用于当前块时,可以不用信号发送cu_cbf。即,编码器没有显式地用信号发
送cu_cbf,并且解码器可以将cu_cbf配置为0而不用从比特流中解析它。
[0467]
在帧内预测的情况下,基于当前块周围的重构样本,根据预配置的预测模式生成预测样本,并且因此与帧间预测相比,预测准确度可能降低。这可能意味着存在于块中的残差信号的能量较大,并且存在于块中的量化变换系数变为全0的可能性也较低。另外,当应用帧内预测时,可以在变换单元级别执行预测和重构,并且即使在块中存在的所有变换系数都为0时,也可能需要确定变换树的分区结构。因此,基于此特性,当对当前块应用帧内预测时,可能不用信号发送cu_cbf。编码器没有显式地用信号发送cu_cbf,并且解码器可以将cu_cbf配置为1,而无需从比特流中解析它。
[0468]
在帧间预测和ibc预测的情况下,可以根据合并模式和跳过模式用信号发送cu_cbf。合并模式可以根据预配置的方法生成包括多个运动信息集的合并候选列表,并且用信号发送在合并候选列表中使用的运动信息集索引,并且运动信息集可以包括运动矢量、参考图片索引等等。解码器可以从比特流中解析合并标志,并确定合并模式是否应用于当前块。当将合并模式应用于当前块时,解码器可以额外解析合并索引,并在包括多个运动信息集的合并候选列表中选择由合并索引指示的特定运动信息集。解码器可以基于选择的运动信息集生成预测块。跳过模式是合并模式的一种特定模式,并且可以是不存在残差信号的合并模式,并且这可以指示不存在transform_tree()语法结构。跳过模式是否应用于当前块可以由跳过标志来指示。跳过模式(跳过标志为1并且合并标志为1的情况)指示不存在残差信号,并且合并模式(跳过标志为0并且合并标志为1的情况)而不是跳过模式指示存在残差信号,并且这可以指示存在transform_tree()语法结构。因此,当合并标志为1时,编码器可能不用信号发送cu_cbf。解码器可能不从比特流中解析cu_cbf,并且基于跳过标志来确定cu_cbf。当跳过标志为1时,cu_cbf可以被配置为0,并且当跳过标志为0时,cu_cbf可以被配置为1。当合并模式不应用于当前块(合并标志为0)时,编码器可以显式地用信号发送cu_cbf。解码器可以从比特流中解析cu_cbf,并确定是否存在transform_tree()语法结构。
[0469]
当cu_cbf相对于帧间预测和ibc预测的块为1时,这可能意味着当前编译单元中存在除了0之外的一个或多个变换系数,并且可以指示存在于transform_unit()语法结构中的tu_cbf_luma、tu_cbf_cb以及tu_cbf_cr中的至少一个不为0。在tu_cbf_luma之前用信号发送tu_cbf_cb和tu_cbf_cr语法元素,并且因此当色度(第二通道和第三通道)分量样本阵列不存在(chromaavailable为0),或者tu_cbf_cb和tu_cbf_cr都为0时,可以根据第(2-4)条件和第(2-5)条件用信号发送tu_cbf_luma。第(2-4)条件和第(2-5)条件指示基于亮度变换块的最大大小将编译单元分区成多个变换单元的条件,并且当编译单元的宽度或者高度大于亮度变换块的最大大小时,当前编译单元可以被分区成多个变换单元。当第(2-4)条件和第(2-5)条件为假时,这可以指示当前编译单元包括一个变换单元,并且当chromaavailable为0,或tu_cbf_cb和tu_cbf_cr都为0时,可以不从比特流中解析tu_cbf_luma[x0][y0],并且可以将其配置为1。同时,当第(2-3)条件为真时,(存在色度样本阵列,并且tu_cbf_cb[xc][yc]和tu_cbf_cr[xc][yc]中的至少一个为1),不可能限制tu_cbf_luma[x0][y0]的值,并且因此可以用信号发送tu_cbf_luma[x0][y0]。解码器可以从比特流中解析tu_cbf_luma[x0][y0],并且确定在第一通道变换块中是否存在除了0之外的一个或多个变换系数。
[0470]
当act应用于帧内预测块(cupredmode[chtype][x0][y0]为mode_intra,并且cu_act_enabled_flag[x0][y0]为1)时,第(2-2)条件为假,并且因此可以根据第(2-3)条件到第(2-5)条件用信号发送tu_cbf_luma[x0][y0]。当对帧内预测块应用act并且第(2-3)条件为真时,不可能限制tu_cbf_luma[x0][y0]的值,并且因此编码器可以用信号发送tu_cbf_luma[x0][y0],并且解码器可以从比特流中解析tu_cbf_luma[x0][y0]。同时,当对帧内预测块应用act并且第(2-3)条件为假时,可以根据第(2-4)条件和第(2-5)条件用信号发送tu_cbf_luma[x0][y0]。当act应用于帧内预测块,并且第(2-3)条件到第(2-5)条件都为假时,tu_cbf_luma[x0][y0]的值可以限制为1,并且因此编码器可能不会用信号发送tu_cbf_luma[x0][y0]。解码器可以将tu_cbf_luma[x0][y0]配置为1,而无需从比特流中解析它。在这种情况下,能够节省用于用信号发送tu_cbf_luma[x0][y0]所需的比特,并且能够进一步提高由于act的编译效率。
[0471]-[第(2-4)条件]cbwidth[chtype][x0][y0]》maxtbsizey
[0472]
如参考图24所述,当亮度编译块的宽度大于亮度最大变换块大小(样本数量)时,可以通过变换树将编译单元分区成多个变换单元。当编译单元可以被分区成多个变换单元时,基于亮度最大变换块大小(样本数量),可以用信号发送tu_cbf_luma[x0][y0]。解码器可以从比特流中解析tu_cbf_luma[x0][y0],并且确定在第一通道变换块中是否存在除了0之外的一个或多个变换系数。
[0473]-[第(2-5)条件]cbheight[chtype][x0][y0]》maxtbsizey
[0474]
如参考图24所述,当亮度编译块的高度大于亮度最大变换块大小(样本数量)时,编译单元可以通过变换树分区成多个变换单元。当编译单元可以被分区成多个变换单元时,基于亮度最大变换块大小(样本数量),可以用信号发送tu_cbf_luma[x0][y0]。解码器可以从比特流中解析tu_cbf_luma[x0][y0],并且确定在第一通道变换块中是否存在除了0之外的一个或多个变换系数。
[0475]
已经详细描述第一条件和第(2-1)条件至第(2-5)条件。如上所述,当第一条件为真、第(2-1)条件为真、并且第(2-2)条件至第(2-5)条件中的至少一个为真时,可以从比特流中获得第一变换系数标志(tu_cbf_luma[x0][y0])。
[0476]
启用要从比特流获得的第一变换系数标志(tu_cbf_luma[x0][y0])的条件的组合可以变化。例如,当第一条件为真、第(2-1)条件为真、并且第(2-2)条件为真时,视频信号处理设备可以从比特流获得第一变换系数标志(tu_cbf_luma[x0][y0])。
[0477]
更具体地,根据第一条件,视频信号处理设备可以确定是否指示当前处理的树的类型的信息(treetype)指示单树(single_tree),或者指示当前处理的树的类型的信息(treetype)指示双树亮度(dual_tree_luma)。
[0478]
当指示当前处理的树的类型的信息(treetype)指示单树(single_tree),或指示当前处理的树的类型的信息(treetype)指示双树亮度(dual_tree_luma)时,视频信号处理设备可以执行根据第(2-1)条件确定isp模式是否应用于当前块的操作。
[0479]
此外,当isp模式未应用于当前块时,视频信号处理设备可以执行确定指示子块变换(sbt)是否应用于当前块的sbt标志(cu_sbt_flag)指示sbt的未应用的操作。在图26中,与isp_no_split相同的intrasubpartitionssplittype可以指示isp模式不应用于当前块。
[0480]
此外,当sbt标志(cu_sbt_flag)指示未应用sbt时,视频信号处理设备可以执行根
据(2-2)条件确定是否当前块的预测方法是帧内预测的操作。指示未应用sbt的sbt标志(cu_sbt_flag)可以意味着sbt标志(cu_sbt_flag)为0。在第(2-1)条件中,在sbt标志(cu_sbt_flag)指示未应用sbt的情况下,即使当((subtuindex==0&&cu_sbt_pos_flag)||(subtuindex==1&&!cu_sbt_pos_flag))没有被检查,!(cu_sbt_flag&&((subtuindex==0&&cu_sbt_pos_flag)||(subtuindex==1&&!cu_sbt_pos_flag))可以变为1。
[0481]
此外,在当前块的预测方法是帧内预测时,视频信号处理设备可以执行根据第(2-2)条件确定颜色空间变换激活标志(cu_act_enabled_flag)是否指示颜色空间变换未应用于当前块的操作。在图26中,与mode_intra相同的cupredmode[chtype][x0][y0]可以指示当前块的预测方法是帧内预测。
[0482]
当颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换未应用于当前块时,视频信号处理设备可以执行从比特流获得指示在当前块中包括的亮度变换块中是否存在除了0之外的一个或多个变换系数的第一变换系数标志(tu_cbf_luma[x0][y0])的操作。
[0483]
根据本公开的各种实施例,当第一条件为真、第(2-1)条件为真、并且第(2-2)条件为真时,视频信号处理设备可以从比特流获得第一变换系数标志(tu_cbf_luma[x0][y0])。
[0484]
例如,当指示当前处理的树的类型的信息(treetype)为dual_tree_luma或single_tree时,当前块的预测方法为帧内预测(cupredmode[chtype][x0][y0]==mode_intra),并且帧内子分区模式不应用于当前块(intrasubpartitionssplittype为isp_no_split),视频信号处理设备可以基于颜色空间变换激活标志(cu_act_enabled_flag)是否指示颜色空间变换不应用于当前块,从比特流获得第一变换系数标志(tu_cbf_luma)。根据本公开的实施例,可以根据当前块的预测方法来限制是否应用sbt。例如,在当前块的预测方法是帧内预测(cupredmode[chtype][x0][y0]是mode_intra)时,sbt可以不应用于当前块。即,当指示当前处理的树的类型的信息(treetype)为dual_tree_luma或single_tree,当前块的预测方法为帧内预测(cupredmode[chtype][x0][y0]为mode_intra),并且帧内预测子分区模式未应用于当前块(intrasubpartitionssplittype为isp_no_split)时,这可以指示sbt未应用于当前块。
[0485]
参考第(2-2)条件,当颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换未应用于当前块时,视频信号处理设备可以执行从比特流获得第一变换系数标志(tu_cbf_luma)的操作。
[0486]
参考第(2-2)条件,当满足多个条件之一并且颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换被应用于当前块时,视频信号处理设备可以执行从比特流中获得第一变换系数标志(tu_cbf_luma)的操作。多个条件可以包括第(2-3)条件至第(2-5)个条件中的至少一个。即,多个条件可以包括存在与当前块对应的第二通道块和第三通道块的条件,并且第二变换系数标志指示在第二通道变换块中存在除了0之外的一个或多个变换系数(第(2-3)条件)、存在与当前块对应的第二通道块和第三通道块的条件,并且第三变换系数标志指示在第三通道变换块中存在除了0之外的一个或多个变换系数(第(2-3)条件)、当前块的宽度大于最大亮度变换样本数的条件(第(2-4)条件)、以及当前块的高度块大于最大亮度变换样本数的条件(第(2-5)条件)。
[0487]
如果没有从比特流中获得第一变换系数标志,则视频信号处理设备可以执行配置
第一变换系数标志(tu_cbf_luma)以指示除了0之外的一个或多个变换系数存在于第一通道变换块中的操作。
[0488]
在下文中,将更详细地描述当第一条件为真、第(2-1)条件为真、并且第(2-2)条件为真时,其中获得第一变换系数标志(tu_cbf_luma[x0][y0])的过程。
[0489]
根据本公开的各种实施例,当第一条件为真、第(2-1)条件为真并且第(2-2)条件为真时,视频信号处理设备可以从比特流获得第一变换系数标志(tu_cbf_luma[x0][y0])。更具体地,视频信号处理设备可以根据第一条件确定是否指示当前处理的树的类型的信息(treetype)是单树(single_tree)或者指示当前处理的树的类型的信息(treetype)指示双树亮度(dual_tree_luma)。
[0490]
当指示当前处理的树的类型的信息(treetype)指示单树(single_tree)或指示当前处理的树的类型的信息(treetype)指示双树亮度(dual_tree_luma)时,视频信号处理设备可以执行根据第(2-1)条件确定isp模式是否应用于当前块的操作。
[0491]
另外,当isp模式未应用于当前块时,视频信号处理设备可以根据第(2-1)条件执行确定指示当前块中当前处理的变换块的索引(subtuindex)是否指示第一变换单元,并且指示当前块中包括的变换块当中具有变换系数标志的变换块的sbt位置标志(cu_sbt_pos_flag)指示对于变换块当中的第一变换单元变换系数标志不存在的操作。在图26中,与isp_no_split相同的intrasubpartitionssplittype可以指示isp模式不应用于当前块。另外,变换系数标志可以包括tu_cbf_luma、tu_cbf_cb和tu_cbf_cr。
[0492]
另外,当情况不是指示当前处理的变换单元的索引(subtuindex)指示第一变换单元,并且sbt位置标志(cu_sbt_pos_flag)指示对于变换块当中的第一变换单元变换系数标志不存在的情况,并且该情况不是指示当前处理的变换单元的索引(subtuindex)指示第二变换单元,并且sbt位置标志(cu_sbt_pos_flag)指示对于变换块当中的第二变换单元变换系数标志不存在的情况时,视频信号处理设备可以根据第(2-2)条件执行确定当前块的预测方法是否为帧内预测的操作。
[0493]
另外,在当前块的预测方法是帧内预测时,视频信号处理设备可以根据第(2-2)条件执行确定是否颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换不应用于当前块的操作。在图26中,与mode_intra相同的cupredmode[chtype][x0][y0]可以指示当前块的预测方法是帧内预测。
[0494]
当颜色空间变换激活标志(cu_act_enabled_flag)指示颜色空间变换未应用于当前块时,视频信号处理设备可以执行从比特流获得指示在当前块中包括的亮度变换块中是否存在除了0之外的一个或多个变换系数的第一变换系数标志(tu_cbf_luma[x0][y0])的操作。
[0495]-[第三条件]intrasubpartitionssplittype!=isp_no_split&&
[0496]
(subtuindex《numintrasubpartitions-1||!infertucbfluma)
[0497]
当根据第一条件指示当前处理的树的类型的信息(treetype)指示单树(single_tree),或者指示当前处理的树的类型的信息(treetype)指示双树亮度(dual_tree_luma)时,视频信号处理设备可以根据第三条件执行确定isp模式是否应用于当前块的操作。
[0498]
当将isp模式应用于当前块时,视频信号处理设备可以执行确定当前块中包括的当前处理的变换块是否不是由isp模式分区的变换块当中的最后一个变换块,或者在当前
处理的变换块之前处理的变换块当中的至少一个变换块的变换系数不为0的操作。不同于isp_no_split的intrasubpartitionssplittype可以指示isp模式被应用于当前块。
[0499]
在当前块中包括的当前处理的变换块不是通过isp模式分区的变换块当中的最后一个变换块时,或者在当前处理的变换块之前处理的变换块当中的至少一个变换块的变换系数不为0时,则视频信号处理设备可以执行从比特流获得指示除了0之外的一个或多个变换系数是否存在于包括在当前块中的亮度变换块中的第一变换系数标志的操作。小于numintrasubpartitions-1的subtuindex可能意味着当前处理的变换块不是isp模式分区的变换块当中的最后一个变换块。另外,infertucbfluma为0可以指示在当前处理的变换块之前处理的变换块当中的至少一个变换块的变换系数不为0。关于这种情况,下面将给出更详细的描述。
[0500]
当isp模式应用于当前块(intrasubpartitionssplittype不是isp_no_split)时,tu_cbf_luma[x0][y0]语法元素可能需要相对于由isp模式分区的变换单元当中的至少一个变换单元为1。为此,在将isp模式应用于当前编译单元时,所有分区的变换单元的tu_cbf_luma值为0的情况下,编码器可以不选择isp模式。在当前处理的变换单元不是由isp模式分区的变换单元当中的最后一个变换单元(subtuindex小于numintrasubpartitions-1)时,编码器可以显式地用信号发送tu_cbf_luma[x0][y0]。解码器可以从比特流中解析tu_cbf_luma[x0][y0],并且确定在第一通道变换块中是否存在除了0之外的一个或多个变换系数。在当前处理的变换单元是由isp模式分区的变换单元当中的最后一个变换单元(subtuindex是numintrasubpartitions-1)时,可以根据infertucbfluma变量来用信号发送tu_cbf_luma[x0][y0]。当infertucbfluma为1时,这可以指示,相对于通过isp模式分区的变换单元,在当前处理的变换单元之前处理的所有变换单元的tu_cbf_luma[x0][y0]的值为0。因此,当对于最后一个变换单元infertucbfluma为1时,编码器可能不会用信号发送tu_cbf_luma[x0][y0]。解码器可以将tu_cbf_luma[x0][y0]配置为1,而无需从比特流中解析它。同时,当infertucbfluma为0时,这可以指示,相对于isp模式分区的变换单元,当前处理的变换单元之前处理的变换单元当中的至少一个变换单元的tu_cbf_luma[x0][y0]的值是1。因此,不可能限制最后一个变换单元的tu_cbf_luma[x0][y0]的值,并且因此当对于最后一个变换单元infertucbfluma为0时,编码器可以用信号发送tu_cbf_luma[x0][y0]。解码器可以从比特流中解析tu_cbf_luma[x0][y0],并且确定在第一通道变换块中是否存在除了0之外的一个或多个变换系数。
[0501]
根据上述用信号发送tu_cbf_cb、tu_cbf_cr和tu_cbf_luma的方法,解码器可以确定在对应的变换块中是否存在除了0之外的一个或多个变换系数。当对应的变换块中存在除了0之外的一个或多个变换系数时,解码器可以基于tu_cbf_luma、tu_cbf_cb和tu_cbf_cr语法元素,从比特流中解析变换系数相关的语法元素,并且获得变换系数阵列。
[0502]
可以通过各种手段来实现本发明的上述实施例。例如,可以通过硬件、固件、软件或其组合来实现本发明的实施例。
[0503]
对于通过硬件实现的情况,可以通过专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器等中的一个或多个来实现根据本发明的实施例的方法。
[0504]
在通过固件或软件实现的情况下,可以以执行上述功能或操作的模块、过程或函
数的形式来实现根据本发明的实施例的方法。可以将软件代码存储在存储器中并由处理器驱动。存储器可以位于处理器内部或外部,并且可以通过各种已知的方式与处理器交换数据。
[0505]
一些实施例还可以以包括由计算机可执行的指令的记录介质的形式来实现,诸如由计算机执行的程序模块。计算机可读介质可以是计算机可访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质。此外,计算机可读介质可以包括计算机存储介质和通信介质。该计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。通信介质通常包括计算机可读指令、数据结构、诸如程序模块的调制数据信号中的其他数据或其他传输机制,并且包括任何信息传递介质。
[0506]
本发明的上述描述仅用于说明目的,并且将会理解,本发明所属的本领域的普通技术人员可以在不改变本发明的技术思想或者基本特征的情况下对本发明进行改变,并且本发明可以以其他特定形式容易地被修改。因此,上述实施例是说明性的,并且在所有方面均不受限制。例如,被描述为单个实体的每个组件可以被分布和实现,并且同样,被描述为被分布的组件也可以以关联的方式被实现。
[0507]
本发明的范围由所附权利要求书而不是上述详细描述来限定,并且从所附权利要求书的含义和范围及其等效物导出的所有改变或修改都应解释为包括在本发明的范围内。
再多了解一些

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

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

相关文献