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

图像解码装置、图像解码方法以及程序与流程

2022-11-13 14:37:39 来源:中国专利 TAG:


1.本发明涉及一种图像解码装置、图像解码方法以及程序。


背景技术:

2.非专利文献1公开了被称为二次变换(lfnst:low frequency non-separable transform)、变换跳过(transform skip)、单树以及双树的技术。
3.现有技术文献
4.非专利文献1:versatile video coding(draft 8),jvet-q2001。


技术实现要素:

5.但是,在非专利文献1所公开技术中,尽管禁止对单树的色差块应用二次变换,还存在如下的问题:有可能不仅基于亮度块、还基于色差块对与索引(lfnst_idx)是否需要解码的判定相关的变换跳过无效标志以及非零系数发生位置信息的值进行更新,该索引(lfnst_idx)是针对是否在单树时应用了二次变换而确定的。
6.另外,在非专利文献1所公开的技术中,在单树的帧中,存在对局部出现的双树的色差块应用二次变换的可能性这一问题。
7.因此,本发明是鉴于上述问题而完成的,其目的在于提供一种图像解码装置、图像解码方法及程序,其能够缓和对于单树的亮度块的lfnst_idx的是否需要解码的判定条件所涉及的不必要的制约,能够提高编码性能。
8.另外,本发明的目的在于提供一种能够对单树的色差块始终禁止二次变换的应用的图像解码装置、图像解码方法及程序。
9.用于解决课题的手段
10.本发明第一技术方案涉及一种图像解码装置,其中,具备解码部,该解码部构成为将针对是否应用了二次变换而确定的二次变换索引解码,所述解码部构成为根据对象块的树类型以及分量索引,确定所述对象块的块分割树结构类别以及分量类别,所述解码部构成为根据所述对象块的非零系数的产生位置信息以及变换跳过标志导出的规定的标志,判断是否需要解码所述二次变换索引。
11.本发明第二技术方案涉及一种图像解码方法,其中,该图像解码方法包括将针对是否应用了二次变换而确定的二次变换索引进行解码的工序,在所述工序中,根据对象块的树类型以及分量索引,确定所述对象块的块分割树结构类别以及分量类别,根据所述对象块的非零系数的产生位置信息以及变换跳过标志所导出的规定的标志,判断是否需要解码所述二次变换索引。
12.本发明第三技术方案涉及一种使计算机作为图像解码装置发挥功能的程序,其中,所述图像解码装置具备解码部,该解码部构成为将针对是否应用了二次变换而确定的二次变换索引解码,所述解码部构成为根据对象块的树类型以及分量索引,确定所述对象块的块分割树结构类别以及分量类别,所述解码部构成为根据所述对象块的非零系数的产
生位置信息以及变换跳过标志所导出的规定的标志,判断是否需要解码所述二次变换索引。
13.发明效果
14.根据本发明,能够提供一种图像解码装置、图像解码方法及程序,其能够缓和针对单树亮度块的lfnst_idx的是否需要解码的判定条件所涉及的不必要的制约,能够提高编码性能。
15.另外,根据本发明,能够提供一种能够对单树的色差块始终禁止二次变换的应用的图像解码装置、图像解码方法及程序。
附图说明
16.图1是表示本发明一实施方式的图像处理系统1的结构的一例的图。
17.图2是表示本发明一实施方式的图像编码装置100的功能块的一例的图。
18.图3是表示本发明一实施方式的图像编码装置200的功能块的一例的图。
19.图4是表示本发明一实施方式的图像编码装置100的变换/量化部131的功能块的一例的图。
20.图5是表示本发明一实施方式的图像编码装置200的逆变换/逆量化部220的功能块的一例的图。
21.图6是本发明一实施方式的用来说明实施方式的lfnst-idx的解码顺序的图。
22.图7是用来说明本发明一实施方式的二次变换的应用对象块的类别以及lfnst-idx的解码判定单位的图。
23.图8是用来说明本发明一实施方式的lfnst-idx的解码条件的图。
24.图9是用来说明本发明一实施方式的lfnst-idx的解码条件的图。
25.图10是用来说明本发明一实施方式的lfnstnottsflag的更新判定条件的图。
26.图11是用来说明本发明一实施方式的lfnstnottsflag的更新判定条件的图。
27.图12是用来说明本发明一实施方式的lfnstdconly以及lfnstzerooutsigcoeff的更新判定条件的图。
28.图13是用来说明本发明一实施方式的lfnstdconly以及lfnstzerooutsigcoeff的更新判定条件的图。
29.图14是用来说明本发明一实施方式的lfnstdconly以及lfnstzerooutsigcoeff的更新判定条件的图。
30.图15是用来说明本发明一实施方式的单树下发生的相对于局部双树的色差块的二次变换的应用禁止所关联的变更例的图。
31.图16是用来说明本发明一实施方式的单树下发生的相对于局部双树的色差块的二次变换的应用禁止所关联的变更例的图。
32.图17是用来说明本发明一实施方式的单树下发生的相对于局部双树的色差块的二次变换的应用禁止所关联的变更例的图。
33.附图标记说明:
34.10

图像处理系统;
35.100

图像编码装置;
36.111、241

帧间预测部;
37.112、242

帧内预测部;
38.121

减法运算器;
39.122、230

加法运算器;
40.131

变换/量化部;
41.131a

一次变换部;
42.131b

二次变换部;
43.131c

量化部;
44.132、220

逆变换/逆量化部;
45.140

编码部;
46.150、250

环路滤波处理部;
47.160、260

帧缓冲器;
48.200

图像解码装置;
49.210

解码部;
50.220a

逆量化部;
51.220b

逆二次变换部;
52.220c

逆一次变换部。
具体实施方式
53.下面,参照附图对本发明的实施方式进行说明。另外,以下的实施方式中的构成要素可以适当地与现有的构成要素等置换,此外,可以进行包括与其他现有的构成要素的组合在内的各种变化。因此,不应以下述的实施方式的记载来限定权利要求书中记载的发明的内容。
54.第一实施方式
55.下面,参照图1~图14,对本发明第一实施方式的图像处理系统10进行说明。图1是表示本实施方式的图像处理系统10的图。
56.如图1所示,本实施方式的图像处理系统10包括图像编码装置100和图像解码装置200。
57.图像编码装置100构成为将输入图像信号(图片)编码,从而生成编码数据。图像解码装置200构成为通过对编码数据进行解码,从而生成输出图像信号。
58.编码数据可以从图像编码装置100经由传送路径向图像解码装置200发送。编码数据可以存储在存储介质中,并且从图像编码装置100提供给图像解码装置200。
59.块类别以及块分割树结构
60.图像编码装置100以及图像解码装置200所处理的图像信号(帧)由rgb信号或者y、cb以及cr信号(亮度信号以及色差信号成分)构成。
61.所说的图像信号(帧)的最小分割单位以及编码的基本单位被称为编码树单元(ctu:coding tree unit)、以及编码单元(cu:coding unit)。
62.所说的ctu通过递归的四叉树块分割、两叉树块分割或三叉树块分割被分割成可变尺寸的cu。
63.关于这些块分割树结构的处理内容,因为能够使用非专利文献1记载的公知的处理,所以省略具体的说明。
64.此外,非专利文献1中公开了如下的处理内容:编码对象的帧(以下称为对象帧)、编码对象的ctu(以下称为对象ctu)或者编码对象的cu(以下称为对象cu)的具有亮度信号分量的块(以下称为亮度块)、或者具有色差信号分量的块(以下称为色差块)为相同块分割树结构(以下称为单树)或者不同块分割树结构(以下称为双树)。
65.关于对象帧、对象ctu、以及对象cu是单树还是双树,可以根据通过图像解码装置200被用于解码处理的控制数据来特定。后面将会详细说明。
66.图像符号化装置100
67.以下,参照图2,对本实施方式的图像编码装置100进行说明。图2是表示本实施方式的图像编码装置100的功能块的一例的图。
68.如图2所示,图像编码装置100包括帧间预测部111、帧内预测部112、减法运算器121、加法运算器122、变换/量化部131、逆变换/逆量化部132、编码部140、环路滤波处理部150、以及帧缓冲器160。
69.帧间预测部111构成为通过帧间预测(帧间预测,英文:inter prediction)生成预测信号。
70.具体地说,帧间预测部111构成为,通过比较对象帧以及帧缓冲器160所保存的参照帧,从而特定参照帧所包含的参照块,决定针对所特定的参照块的运动矢量(mv)。
71.此外,帧间预测部111构成为根据参照块和运动矢量按照每个对象块生成对象块所包含的预测信号。帧间预测部111构成为将预测信号输出给减法运算器121和加法运算器122。这里,参照帧是不同于对象帧的帧。
72.帧内预测部112构成为通过帧内预测(帧内预测,英文:intra prediction)生成预测信号。
73.具体地说,帧内预测部112构成为,特定对象帧所含的参照块,根据所特定的参照块按照每个对象块生成预测信号。此外,帧内预测部112构成为将预测信号输出给减法运算器121和加法运算器122。
74.这里,参照块是对象块所参照的块。例如,参照块是与对象块邻接的块。
75.此外,所述帧间预测部111和帧内预测部112的处理单位,可以使用与对象块相同的尺寸,也可以使用将对象块细分割后的尺寸的预测块(pu:prediction unit)。
76.减法运算器121构成为,从输入图像信号减去预测信号,将预测残差信号输出给变换/量化部131。这里,减法运算器121为生成预测残差信号的结构,该预测残差信号是通过帧内预测或者帧间预测生成的预测信号与输入图像信号的差分。
77.加法运算器122构成为,将预测信号与从逆变换/逆量化部132输出的预测残差信号相加,生成滤波处理前解码信号,将该滤波处理前解码信号输出给帧内预测部112和环路滤波处理部150。
78.这里,滤波处理前解码信号构成帧内预测部112所使用的参照块。
79.变换/量化部131构成为,进行预测残差信号的变换处理并取得系数水平值。此外,变换/量化部131还可以构成为实施系数水平值的量化。
80.这里,变换处理是将预测残差信号变换成频率成分信号的处理。该变换处理可以
采用与离散余弦变换(discrete cosine transform,以下称为dct)对应的基础图像(变换矩阵),也可以是与离散正弦变换(discrete sine transform,以下称为dst)对应的基础图像(变换矩阵)。
81.此外,所述变换/逆量化部131可以使用与对象块相同的尺寸,也可以使用将对象块细分割后的尺寸的变换块(tu:transform unit)。
82.逆变换/逆量化部132构成为,进行从变换/量化部131输出的系数水平值的逆变换处理。这里,逆变换/逆量化部132也可以构成为在逆变换处理之前进行系数水平值的逆量化。
83.这里,逆变换处理以及逆量化是按照与变换/量化部131所进行的变换处理以及量化相反的顺序进行。
84.编码部140构成为,将从变换/量化部131输出的系数水平值编码,并输出编码数据。
85.在此,例如,编码是基于系数水平值的发生概率分配不同长度的码的熵编码。
86.另外,编码部140构成为,除了系数水平值之外,还对解码处理中使用的控制数据进行编码。
87.环路滤波处理部150构成为,对从加法运算器122输出的滤波处理前解码信号进行滤波处理,并且将滤波处理后解码信号输出到帧缓冲器160。
88.这里,例如,滤波处理是减少在对象块(或者pu、tu)的边界部分产生的失真的去块滤波处理。
89.帧缓冲器160构成为,存储在帧间预测部111中使用的参照帧。
90.在此,滤波处理后解码信号构成在帧间预测部111中使用的参照帧。
91.图像解码装置200
92.下面,参照图3对本实施方式的图像解码装置200进行说明。图3是表示本实施方式的图像编码装置200的功能块的一例的图。
93.如图3所示,图像解码装置200包括解码部210、逆变换/逆量化部220、加法运算器230、帧间预测部241、帧内预测部242、环路滤波处理部250以及帧缓冲器260。
94.解码部210构成为,对由图像编码装置100生成的编码数据进行解码,对系数水平值进行解码。
95.这里,解码是例如与编码部140所进行的熵编码相反的顺序的熵解码。
96.此外,解码部210可以构成为,通过对编码数据的解码处理来获取控制数据。
97.逆变换/逆量化部220构成为,进行从解码部210输出的系数水平值的逆变换处理。这里,逆变换/逆量化部220也可以构成为,在逆变换处理之前进行系数水平值的逆量化。
98.这里,逆变换处理以及逆量化是按照与变换/量化部131所进行的变换处理以及量化相反的顺序进行。
99.加法运算器230构成为,将预测信号与从逆变换/逆量化部220输出的预测残差信号相加,生成滤波处理前解码信号,将滤波处理前解码信号输出给帧内预测部242和环路滤波处理部250。
100.这里,滤波处理前解码信号构成在帧内预测部242中使用的参照块。
101.帧间预测部241与帧间预测部111一样构成为,通过帧间预测(inter prediction)
生成预测信号。
102.具体而言,帧间预测部241构成为,基于从编码数据解码而得到的运动矢量和参照帧所包含的参照信号,生成预测信号。帧间预测部241构成为,将预测信号输出到加法运算器230。
103.帧内预测部242与帧内预测部112一样构成为,通过帧内预测(intra prediction)生成预测信号。
104.具体而言,帧内预测部242构成为,确定对象帧中包含的参照块,基于所确定的参照块,对每个预测块生成预测信号。帧内预测部242构成为将预测信号输出到加法运算器230。
105.环路滤波处理部250与环路滤波处理部150一样构成为,对从加法运算器230输出的滤波处理前解码信号进行滤波处理,并且将滤波处理后解码信号输出到帧缓冲器260。
106.此处,滤波处理例如是减少在对象块(或者pu、tu)的边界部分产生的失真的去块滤波处理。
107.帧缓冲器260与帧缓冲器160一样构成为对在帧间预测部241中使用的参照帧加以储存。
108.此处,滤波处理后解码信号构成在帧间预测部241中使用的参照帧。
109.变换/量化部
110.以下,参照图4,对本实施方式的图像编码装置100的变换/量化部131进行说明。图4是表示本实施方式的图像编码装置100的变换/量化部131的功能块的一例的图。
111.如图4所示,变换/逆量化部131包括一次变换部131a、二次变换部131b、量化部131c。
112.一次变换部131a是进行一次变换处理的方框,因为可以使用公知的处理,所以省略具体的处理内容的说明。
113.同样地,量化部131c是进行量化处理的方框,因为可以使用公知的处理,所以省略具体的处理内容的说明。
114.下面,对二次变换部131b的处理内容的一例进行说明。
115.二次变换部131b构成为,基于规定条件,判断是否对应从一次变换部131a输入的对象块的变换系数应用二次变换(low frequency non-separablettransform)。
116.二次变换部131b构成为,将所判断的是否应用二次变换的判断结果以及二次变换应用时的基础图像(变换矩阵)的类别通知给编码部140。
117.这里,关于规定条件,后面将参照图8及图9进行说明,因为可以根据非专利文献1中记载的公知条件,所以省略具体说明。
118.这里,因为二次变换的基础图像可以使用公知的技术,所以省略具体的技术内容的说明。
119.二次变换部131b构成为,在判定应用二次变换的情况下,将对应从一次变换部131a输出的变换系数进行二次变换所得到的二次变换系数输出给量化部131c。
120.二次变换部131b构成为,在判定不应用二次变换的情况下,将从一次变换部131a输出的变换系数原样输出给量化部131c。
121.编码部
122.编码部140构成为,根据是否应用从二次变换部131b通知的二次变换的判断结果、基础图像(变换矩阵)的类别、从图2未示出的对象块的编码成本计算部通知的编码成本,决定是否进行可以确定是否应用二次变换的判断结果以及基础图像的索引(以下称为lfnst_idx)的值以及编码(向图像解码装置200的传送或发信号)。
123.判定通过编码部140对lfnst_idx进行编码的情况下,lfnst_idx被传送(发信号)给图像编码装置200的解码部210。
124.逆变换/逆量化部
125.下面,参照图5,对本实施方式的逆变换/逆量化部220进行说明。图5是表示本实施方式的图像编码装置200的逆变换/逆量化部220的功能块的一例的图。
126.此外,图像编码装置100的逆变换/逆量化部132因为与图像编码装置200的逆变换/逆量化部220构造相同,所以,以下以图像编码装置200的逆变换/逆量化部220为代表予以表述。
127.如图5所示,逆变换/逆量化部220包括逆量化部220a、逆二次变换部220b、以及逆一次变换部220c。
128.逆量化部220a是进行逆量化处理的方框,因为可以使用公知的处理,所以省略具体的处理内容的说明。
129.同样地,逆一次变换部220c是进行逆一次变换处理的方框,因为可以使用公知的处理,所以省略具体的处理内容的说明。
130.下面,对逆二次变换部220b的处理内容的一例进行说明。
131.逆二次变换部220b构成为,基于从解码部210通知的lfnst_idx的值,确定是否应用二次变换以及基础图像(变换矩阵)。
132.这里,lfnst_idx是上述控制数据的一种。具体在后面进行说明。
133.逆二次变换部220b构成为,在确定应用逆二次变换的情况下,进行逆二次变换处理,将通过逆二次变换得到的变换系数输出给逆一次变换部220c。
134.逆二次变换部220b构成为,在确定不应用逆二次变换的情况下,不进行逆二次变换,将从逆量化部220a输出的变换系数原样输出给逆一次变换部220c。
135.解码部
136.解码部210构成为,基于规定条件判断要不要解码lfnst_idx。这里,“判断要不要解码”的意思是“判断应当解码还是不应当解码”。
137.这里,关于规定条件,后面将参照图8及图9进行说明,因为可以根据非专利文献1中记载的公知条件,所以省略具体说明。
138.在满足上述规定条件的情况下,解码部210构成为解码lfnst_idx,并确定lfnst_idx的值。
139.其他情况下,解码部210构成为不解码lfnst_idx。这种情况下,lfnst_idx的值默认推定为“0”。
140.解码部210构成为将确定或推定的lfnst_idx的值通知给逆变换/逆量子化部220。
141.lfnst_idx
142.下面,对本实施方式的lfnst_idx进行说明。
143.如上所述,lfnst_idx是表示是否应用二次变换(以下,也包括逆二次变换在内记
述为二次变换)以及基础图像的类别的控制数据(非专利文献1中,称为syntax)的一种。
144.lfnst_idx的值、是否应用二次变换、以及基础图像的类别的对应关系可以根据非专利文献1中记载的公知的对应关系,因此,省略具体说明,简要说明如下。
145.lfnst_idx的值为“0”的情况下不应用二次变换,lfnst_idx的值为“1”的情况下应用二次变换。1以上的lfnst_idx值与基础图像的类别唯一对应。
146.lfnst_idx的解码顺序
147.以下,参照图6,对本实施方式的lfnst_idx的解码顺序进行说明。图6是表示本实施方式的解码部220的控制数据(syntax,即lfnst_idx)的解码(parse)顺序的一例的图。
148.如上所述,因为对象帧的最小编码单位是ctu,所以在图6中,将ctu作为起点表示解码控制数据的顺序。
149.在步骤s600中,解码部210基于对象ctu所属的片段(以下称为对象片段)的slice_type和qtbtt_dual_tree_intra_flag判断对象ctu是否为双树。
150.这里,slice_type是表示对象片段的片段类别的控制数据的一种。slice_type的值与对象片段的片段类别(i片段、b片段、p片段)的对应关系可以根据非专利文献1中记载的公知的对应关系,因此,省略具体说明。
151.另外,qtbtt_dual_tree_intra_flag是包含在作为控制数据的一种的序列参数集(sps)中的标志之一。
152.qtbtt_dual_tree_intra_flag的值为“1”的情况下,则意味着在i片段中将对象ctu以双树结构分割为cu。qtbtt_dual_tree_intra_flag的值为“0”的情况下,则意味着在i片段中将对象ctu以单树结构分割。qtbtt_dual_tree_intra_flag未被解码的情况下,则推定qtbtt_dual_tree_intra_flag的值为“0”。
153.在步骤s600中,slice_type表示i片段,并且,在qtbtt_dual_tree_intra_flag的值为“1”的情况下,本处理进入步骤s610,在除此以外的情况下,本处理进入步骤s601。
154.在步骤s610中,处理根据对象ctu是否是亮度块而不同。
155.具体而言,在对象ctu是亮度块的情况下,本处理进入步骤s621,在对象ctu不是亮度块的情况下,本处理进入步骤s611。这里,对象ctu是否为亮度块的判定处理可以基于公知的判定处理,因此,省略具体的说明。
156.图6所示的步骤s601、步骤s602、以及步骤s621都是相同的处理(coding_tree函数)。该处理中,解码部210在确定对象ctu的块分割类别(qtbtt)并递归地分割之后,调用后述的对象ctu相关的处理(coding_unit函数)。本处理的内容使用公知的技术,因此,省略具体的说明。
157.图6所示的步骤s602、步骤s612、以及步骤s622都是相同的处理(coding_unit函数)。在该处理中,解码部210针对从对象ctu分割的对象cu,在确定是否应用了预测模式的种类、运动信息及子块变换(sbt:sub block transform)之后,初始化与后述的规定条件相关的内部参数lfnstdconly、lfnstzerooutsigcoeffflag、lfnstnottsflag,调用与后述的对象tu的分割相关的处理(transform_tree函数)。
158.这里,lfnstdconly、lfnstzerooutsigcoeffflag是根据非零系数的产生位置信息导出的,lfnstnottsflag是通过变换跳过标记导出的。另外,lfnstdconly、lfnstzerooutsigcoeffflag及lfnstnottsflag构成规定标志。
159.然后,解码单元210基于后述的规定条件,判断lfnst_idx是否需要解码。详细情况在后面予以说明。
160.图6所示的步骤s603、步骤s613和步骤s623都是相同的处理(transform_tree函数)。在该处理中,解码部210调用后述的对象tu相关的处理(transform_unit函数)。由于本处理的内容使用公知的技术,所以省略具体的说明。
161.图6所示的步骤s604、步骤s614和步骤s624都是相同的处理(transform_unit函数)。在该处理中,针对确定是否对对象tu应用变换跳过,解码部210确定或推定可确定的transform_skip_flag的值,在基于该transform_skip_flag的值确定未应用变换跳过的情况下,调用后述的残差信号编码相关的处理(residual_coding函数)。详细情况在后面予以说明。另外,在确定应用了变换跳过的情况下,调用在本发明中未记载的residual_ts_coding函数,由于本处理内容使用公知的技术,所以省略具体的说明。
162.图6所示的步骤s605、步骤s615和步骤s625都是相同的处理(residual_coding函数)。在该处理中,解码部210扫描对象tu的变换系数,确定变换系数的解码方法。详细情况在后面予以说明。
163.二次变换的应用对象
164.下面,参照图7,对本实施方式的二次变换作为应用对象的块分割树结构类别、块类别、以及lfnst-idx的解码判定单位进行说明。图7是表示本实施方式的二次变换的应用对象块以及lfnst-idx的解码判定单位的图。
165.如图7所示,可应用二次变换的块是单树的亮度块、双树的亮度块、以及双树的色差块。这里,如上所述,是否对这些块应用二次变换,最终根据lfnst_idx来判断。
166.如图7所示,不能应用二次变换的块是单树的色差块。这里,对于该块,无论上述lfnst_idx的值如何,都不应用二次变换。
167.如图7所示,作为lfnst_idx的解码判定单位,在单树中一并解码判定亮度块和色差块,在双树中独立地解码判定亮度块和色差块。这意味着在单树中基于亮度块和色差块中共同的lfnst_idx判断是否应用了二次变换,另一方面,在双树中基于亮度块和色度块不同的lfnst_idx独立地判断是否应用了二次变换。
168.lfnst_idx的解码条件
169.下面,参照图8和图9,对本实施方式的lfnst_idx的解码条件进行说明。图8及图9是摘录了coding_tree函数中的一部分处理的图,图8是表示非专利文献1记载的公知的lfnst_idx的解码条件的图,相对地,图9是表示本实施方式的lfnst_idx的解码条件的图。
170.如图8及图9所示,lfnst_idx在coding_unit函数内处理。即,如上所述,lfnst_idx以对象块(对象cu)单位进行解码或者编码(单树)。
171.在图9中,针对图8所示的对象块的lfnstnottsflag,将初始化处理(初始值lfnstnottsflag=1)设在transform_tree函数处理之前,并且,删除了transform_tree函数处理后的lfnstnottsflag的代入条件式。
172.这里,treetype是能够确定对象块的块分割树结构的类别的内部参数,如图8及图9所示,其被作为参数输入给coding_unit函数。treetype所表示的块分割树结构类别为单树(single_tree)、双树的亮度(dual_tree_luma)、以及双树的色差(dual_tree_chroma)这3种。
173.另外,lfnstnottsflag为对象块中的transform_skip_flag和treetype的组合,是针对该值是“0”还是“1”而确定的内部参数。图8的lfnstnottsflag的代入条件式的含义如下。
174.第一,在对象块为单树的情况下,在构成对象块的亮度块和色差块中的任一个中transform_skip_flag为有效时(在transform_skip_flag的值为“1”的情况下),lfnstnottsflag的值为“0”,在构成对象块的所有亮度块和色差块中transform_skip_flag为无效时(在transform_skip_flag的值为“0”的情况下),lfnstnottsflag的值为“1”。
175.第二,在对象块为双树的情况下,因为相对于构成对象块的亮度块和色差块,独立地判断lfnst_idx,所以lfnstnottsflag也被独立地判断。
176.在构成对象块的亮度块中,在transform_skip_flag为有效的情况下lfnstnottsflag的值为“0”,在其他情况下lfnstnottsflag的值为“1”。
177.在构成对象块的色差块中,cb分量和cr分量中的任一个的transform_skip_flag为有效的情况下,lfnstnottsflag的值为“0”,在cb成分和cr成分两者的transform_skip_flag均为无效的情况下,lfnstnottsflag的值为“1”。
178.在本实施方式中,删除上述lfnstnottsflag的代入条件式的理由在于,lfnstnottsflag的代入条件式所包含的transform_skip_flag的值是在tramsform_tree函数内按每个对象tu确定的。
179.在本实施方式中,将lfnstnottsflag的初始化处理设在调用tramsform_tree函数之前,在tramsform_tree函数内逐次进行lfnstnottsflag的值的更新判定(详细情况在后面予以说明),由此,构成更正确的syntax的解码处理顺序。
180.lfnstnottsflag的更新判定条件
181.下面,参照图10和图11,对本实施方式的lfnstnottsflag的更新判定条件进行说明。图10及图11是摘录了tramsform_unit函数中一部分处理的图,图10是表示非专利文献1记载的公知的lfnstnottsflag的更新判定条件的图,相对地,图11是表示本实施方式的lfnstnottsflag的更新判定条件的图。
182.在图11中,在构成对象块的亮度块和色差块的transform_skip_flag解码之后,追加了lfnstnottsflag的更新判定条件式及lfnstnottsflag的更新处理,进而,将treetype追加到所调用的residual_coding函数内的参数。具体情况如下。
183.这里,在transform_skip_flag未解码的情况下,transform_skip_flag的值被默认推定为“0”。
184.第一,在亮度块的情况下,当针对该亮度块的transform_skip_flag(transform_skip_flag[x0][y0][0])为有效时,将lfnstnottsflag的值更新为“0”。否则,lfnstnottsflag的值不更新为“0”。
[0185]
第二,在cb分量的色差块的情况下,当针对该色差块的transform_skip_flag(transform_skip_flag[x0][y0][1])为有效且treetype为dual_tree_chroma时,将lfnstnottsflag的值更新为“0”。否则,lfnstnottsflag的值不更新为“0”。
[0186]
第三,在cr分量的色差块的情况下,当针对该色差块的transform_skip_flag(transform_skip_flag[x0][y0][2])为有效且treetype为dual_tree_chroma时,将lfnstnottsflag的值更新为“0”。否则,lfnstnottsflag的值不更新为“0”。
[0187]
在residual_coding函数的参数中追加treetype的理由将在后面说明。
[0188]
根据上述lfnstnottsflag的更新条件的追加,期待如下的效果。
[0189]
在现有技术中,如上所述,在构成单树对象块的亮度块和色差块中的任意一个的transform_skip_flag为有效时,lfnstnottsflag的值被设计为“0”。这意味着,连是否对不可应用二次变换的单树的色差块应用了变换跳过也要考虑到,从而判断lfnst_idx是否需要解码。
[0190]
然而,对于单树的色差块,由于lfnst_idx的值无论怎样都不可应用二次变换,因此,考虑是否对单树的色差块应用了变换跳过,这可能会不必要地减少对单树的亮度块的二次变换的应用率,降低编码性能的提高。
[0191]
因此,在本实施方式中,如上所述,通过追加对象块的transform_skip_flag和依据treetype的lfnstnottsflag的更新判定条件,将lfnstnottsflag的更新对象限定为单树的亮度块、双树的亮度块以及双树的色差块。由此,可期待对单树的亮度块的二次变换的应用率的增加、以及编码性能的提高效果。
[0192]
lfnstdconly及lfnstzerooutsigcoeff的更新判定条件
[0193]
下面,参照图8、图9以及图12~图14,对本实施方式的lfnstdconly及lfnstzerooutsigcoeff的更新判定条件进行说明。
[0194]
图12及图13是摘录了residual_coding函数的一部分处理的图,图8及图12是对非专利文献1中记载的公知lfnstdconly及lfnstzerooutsigcoeff的初始化处理及更新判定条件分别进行表示的图,与此相对,图9及图13是对本实施方式的lfnstdconly和lfnstzerooutsigcoeff的初始化处理和更新确定条件分别进行表示的图。
[0195]
如图8和图9所示,lfnstdconly和lfnstzerooutsigcoeff是包含关于lfnst_idx是否需要解码的判定条件的内部参数。关于各自的意义,将在后面予以说明。
[0196]
如图8和图9所示,lfnstdconly和lfnstzerooutsigcoeff的初始化处理设置在coding_unit函数中的transform_tree函数之前。如图8及图9所示,各自的初始值为lfnstdconly=1、lfnstzerooutsigcoeff=1。另外,如图8和图9所示,两者的初始化处理相同。
[0197]
如图12和13所示,lfnstdconly和lfnstzerooutsigcoeff在residual_coding函数内进行更新判定。
[0198]
在本实施方式的lfnstdconly及lfnstzerooutsigcoeff的更新判定条件中,如图13所示,追加了确定进行残差编码的对象块的颜色分量(y、cb及cr中的任一个)的颜色分量索引(cidx)以及treetype的条件式。
[0199]
另外,在该条件式中,在现有技术中,使用在residual_coding函数内未使用的treetype,因此,treetype被追加到residual_coding函数的参数。
[0200]
这里,将参照图14,对本实施方式的lfnstdconly和lfnstzerooutsigcoeff进行说明。
[0201]
图14是表示3种块尺寸下的变换系数的扫描顺序的图。图14(a)示出了高度和横向宽度为4
×
4像素的块的变换系数的扫描顺序,图14(b)示出了高度和横向宽度为8
×
8像素的块的变换系数的扫描顺序,图14(c)示出了对于高度和横向宽度分别为4个像素以上且是图14(a)和图14(b)所示的块以外的块(其中,高度和横向宽度为由控制数据规定的变换块
尺寸的最大值以下的块)的变换系数的扫描顺序。
[0202]
由于变换系数的扫描顺序使用公知的处理内容,因此省略具体的说明,简答要说如下。
[0203]
将变换块从高频分量朝向dc分量方向,以4
×
4像素的子块为单位在倾斜方向扫描。这里,降序方向表示高频分量。即,如图14所示,dc分量的扫描顺序为“0”。
[0204]
从图8和9所示的lfnst_idx的解码条件可以看出,在lfnstdconly的值为“0”的情况下(对象块为帧内细分割模式的情况除外),且lfnstzerooutsigcoeff的值为“1”的情况下,对于对象块解码lfnst_idx。
[0205]
lfnstdconly是在变换块中确定非零系数(有效系数)仅产生于dc分量的情况、即非零系数末端位置(lastscanpos)处于dc分量的扫描顺序的情况的内部参数。
[0206]
具体而言,对于非零系数仅存在于dc分量的变换块不应用二次变换。换句话说,当lastscanpos的值大于“0”时,即非零系数末端位置在dc分量时,将lfnstdconly的值更新为“0”。
[0207]
另外,在包含本判定的图12和图13所示的条件式中,关于其他所包含的判定、即具有一个以上非零系数的最终子块位置(lastscanblock)、变换块尺寸、以及transform_skip_flag,由于可以根据公知的判定,所以省略具体的说明。
[0208]
lfnstzerooutsigcoeff是确定在变换块中非零系数(有效系数)在应用二次变换时不可能产生的区域中是否发生的内部参数。
[0209]
具体而言,在对对象块应用二次变换的情况下,在图14的用除灰色以外的颜色表示的区域(空白区域)中,不可能产生非零系数。即,在该区域中产生1个以上的非零系数的情况下,不对对象块应用二次变换是显而易见的,因此,将lfnstzerooutsigcoeff的值更新为“0”。
[0210]
在此,如图14所示,不能产生非零系数的区域根据变换块尺寸而可变,关于具体的范围,由于能够依据与非专利文献1相同的范围,所以省略说明。
[0211]
此外,在包含本判定的图12及图13所示的条件式中,关于其他所包含的判定、即具有一个以上的非零系数的最终子块位置(lastscanblock)以及变换块尺寸,因为能够基于公知的判定,所以省略具体的说明。
[0212]
以下,对现有技术中的lfnstdconly及lfnstzerooutsigcoeff的更新判定条件与本实施方式中的lfnstdconly及lfnstzerooutsigcoeff的更新判定条件的差分进行说明。
[0213]
在本实施方式中,如图13所示,在进入lfnstdconly及lfnstzerooutsigcoeff的更新判定条件之前,基于对象块的cidx及treetype,追加了关于是否最初进入这些更新判定条件的判定。
[0214]
具体地,当cidx的值为“0”或treetype表示dual_tree_chroma的情况下,进入lfnstdconly和lfnstzerooutsigcoeff的更新判定条件。在其他情况下,不进入lfnstdconly和lfnstzerooutsigcoeff的更新判定条件。
[0215]
这意味着lfnstdconly和lfnstzerooutsigcoeff的更新判定处理被限定为单树亮度块、双树亮度块、以及双树色差块。
[0216]
在现有技术中,与上述的transform_skip_flag一样,不管lfnst_idx怎样,在不应用二次变换的单树的色差块中都考虑了lfnstdconly及lfnstzerooutsigcoeff,而通过该
追加的判定,可期待对于单树的亮度块的二次变换的应用率的增加、以及编码性能的提高效果。
[0217]
变更例
[0218]
下面,参照图15~图17,对本实施方式的关于禁止对在单树中产生的局部双树(英文:local dual tree)的色差块应用二次变换的变更例进行说明。
[0219]
图15和图16是摘录了非专利文献1所记载的公知的coding_tree_unit函数和coding_tree函数中的一部分处理的图。
[0220]
如图15所示,在对象ctu中一旦判定要在单个树中进行分割,则在从coding_tree_unit函数内调用coding_tree函数时,块分割树结构类别(treetypecurr)被指定为单树(single_tree_mode_type_all)。
[0221]
另一方面,如图16所示,在cu的递归分割处理进行的过程中,在帧内模式的对象块中,在亮度为可分割的但色差为不可分割的块尺寸的情况下(例如,在8
×
16像素的块中,亮度成分能够被tt分割,但色差成分不能被tt分割的情况下),该块局部地成为双树结构。
[0222]
此时,如图16所示,关于对象块的块分割树结构类别,将作为coding_tree函数内的参数的treetype覆盖在双树(dual_tree_chroma)上之后,递归调用。
[0223]
但是,在作为单树的对象帧或对象ctu中,在对这样局部产生的双树(局部双树)的色差块应用二次变换的情况下,图7所示的块分割树结构类别、块类别、以及可不可应用二次变换的对应关系的一贯性消失。
[0224]
因此,在本实施例中,如图17所示,在lfnst_idx的解码判定条件中,对于在对象ctu为单树的情况下局部发生的双树的色差块,追加不解码lfnst_idx的制约。
[0225]
具体地说,如图17所示,将作为内部参数的lfnstnotlocaldualtreechromaflag的代入条件式以及该内部参数追加到lfnst_idx的解码条件。这里,lfnstnotlocaldualtreechromaflag通过treetype、slice_type和qtbtt_dual_tree_intra_flag被导出,能够确定对象块(对象cu)的块分割树结构类别(treetype)是不是局部双树的色差块。
[0226]
在这样的内部参数为“0”的情况下,由于确定对象块(对象cu)是局部双树的色差块,所以判定lfnst_idx不解码。由此,能够限制对上述局部双树的色差块的二次变换的应用。
[0227]
根据本实施方式,使用对象块的树类型(treetype)和分量索引(cidx),仅针对亮度块或双树的色差块,判断将关于lfnst_idx是否需要解码的判定所涉及的对象块的变换跳过应用有无予以汇总所得的标志(lfnstnottsflag)、以及基于对象块的非零系数发生位置信息的2个标志(lfnstdconly、lfnstzerooutsigcoeff)的值是否被更新,由此,可以期待如下效果。
[0228]
对于单树的亮度块,可以期待减少与lfnst_idx是否需要解码的判定条件有关的不必要的制约。
[0229]
由于增加了对单树的亮度块的二次变换的应用率,所以可以期待编码性能的提高效果。
[0230]
另外,根据本实施方式,使用对象块的树类型(treetype)、片段类型(slice_type)及对象帧或对象ctu的树类型(qtbtt_dual_tree_intra_flag),通过禁止对单树中局部出
现的双树的色差块应用二次变换,可以一致地禁止对单树的帧所存在的色差块应用二次变换。
[0231]
上述图像编码装置100及图像解码装置200也可以是使计算机执行各功能(各工序)的程序来实现。
[0232]
另外,在上述各实施方式中,以将本发明应用于图像编码装置100及图像解码装置200为例进行了说明,但本发明并不限定于此,同样也可以适用于具有图像编码装置100及图像解码装置200的各功能的图像编码系统及图像解码系统。
再多了解一些

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

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

相关文献