掌桥专利:专业的专利平台
掌桥专利
首页

图像处理装置和方法

文献发布时间:2023-06-19 09:49:27


图像处理装置和方法

技术领域

本公开内容涉及图像处理装置和方法,具体地,涉及用于使得能够抑制编码效率的降低(提高编码效率)的图像处理装置和方法。

背景技术

通常,已经公开了关于亮度的自适应一次变换(自适应多核变换:AMT),其中,为每个变换单元(TU)的每个水平一次变换PThor(也被称为一次水平变换)和垂直一次变换PTver(也被称为一次垂直变换),从多个不同的正交变换中自适应地选择一次变换(例如,参见非专利文献1)。

在非专利文献1中,存在作为一次变换的候选的五个一维正交变换:DCT-II、DST-VII、DCT-VIII、DST-I和DST-VII。此外,已经提出了添加DST-IV和恒等变换(IDT:一维变换跳过)这两个一维正交变换,并且具有总共七个一维正交变换作为一次变换的候选(例如,参见非专利文献2)。

引用列表

非专利文献

非专利文献1:Jianle Chen,Elena Alshina,Gary J.Sullivan,Jens-Rainer,Jill Boyce,“Algorithm Description of Joint Exploration Test Model 4”,JVET-G1001_v1,Joint Video Exploration Team联合视频勘探队(JVET)of ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11第七次会议:都灵,意大利,2017年7月13日至21日

非专利文献2:V.Lorcy,P.Philippe,“Proposed improvements to the Adaptivemultiple Core transform”,JVET-C0022,Joint Video Exploration Team(JVET)of ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11第三次会议:日内瓦,瑞士,2016年5月26日至6月1日

发明内容

本发明要解决的问题

然而,在这些方法的情况下,没有考虑变换类型的频率特性,并且存在选择具有不适合于残差信号的频率特性的变换类型并且降低编码效率的风险。

鉴于前述内容作出本公开内容,并且本公开内容旨在使得能够抑制编码效率的降低(提高编码效率)。

问题的解决方案

根据本技术的一个方面的图像处理装置是一种如下图像处理装置,包括:解码单元,其被配置成对比特流进行解码,以生成通过对图像的预测残差进行正交变换而获得的系数数据;选择单元,其被配置成从具有不同频率特性的变换类型候选作为元素的多个变换类型候选表中选择与编码参数对应的变换类型候选表;设置单元,其被配置成使用由选择单元选择的变换类型候选表来设置要应用于当前块的变换类型;以及逆正交变换单元,其被配置成使用由设置单元设置的变换类型的变换矩阵,对由解码单元生成的当前块的系数数据进行逆正交变换。

根据本技术的一个方面的图像处理方法是一种如下图像处理方法,包括:对比特流进行解码,以生成通过对图像的预测残差进行正交变换而获得的系数数据;从具有不同频率特性的变换类型候选作为元素的多个变换类型候选表中选择与编码参数对应的变换类型候选表;使用选择的变换类型候选表来设置要应用于当前块的变换类型;以及使用设置的变换类型的变换矩阵对通过解码比特流而生成的当前块的系数数据进行逆正交变换。

根据本技术的另一方面的图像处理装置是一种如下图像处理装置,包括:选择单元,其被配置成从具有不同频率特性的变换类型候选作为元素的多个变换类型候选表中选择与编码参数对应的变换类型候选表;设置单元,其被配置成使用由选择单元选择的变换类型候选表来设置要应用于当前块的变换类型;正交变换单元,其被配置成使用由设置单元设置的变换类型的变换矩阵来对图像的预测残差进行正交变换,以生成系数数据;以及编码单元,其被配置成对通过由正交变换单元对预测残差进行正交变换而生成的系数数据进行编码,以生成比特流。

根据本技术的另一方面的图像处理方法是一种如下图像处理方法,包括:从具有不同频率特性的变换类型候选作为元素的多个变换类型候选表中选择与编码参数对应的变换类型候选表;使用选择的变换类型候选表来设置要应用于当前块的变换类型;使用设置的变换类型的变换矩阵对图像的预测残差进行正交变换,以生成系数数据;以及对通过正交变换预测残差而生成的系数数据进行编码,以生成比特流。

在根据本技术的一个方面的图像处理装置和方法中,对比特流进行解码,以生成通过对图像的预测残差进行正交变换而获得的系数数据,从具有不同频率特性的变换类型候选作为元素的多个变换类型候选表中选择与编码参数对应的变换类型候选表,使用选择的变换类型候选表来设置要应用于当前块的变换类型,以及使用设置的变换类型的变换矩阵对通过解码比特流而生成的当前块的系数数据进行逆正交变换。

在根据本技术的另一方面的图像处理装置和方法中,从具有不同频率特性的变换类型候选作为元素的多个变换类型候选表中选择与编码参数对应的变换类型候选表,使用选择的变换类型候选表来设置要应用于当前块的变换类型,使用设置的变换类型的变换矩阵对图像的预测残差进行正交变换,以生成系数数据,以及对通过正交变换预测残差而生成的系数数据进行编码,以生成比特流。

发明效果

根据本公开内容,可以处理图像。特别地,抑制了编码效率的降低(可以提高编码效率)。注意,上述效果不一定是限制性的,并且除了上述效果之外或替代上述效果,可以展现本说明书中描述的效果中的任何效果,或能够从本说明书获得的任何其他效果。

附图说明

图1是示出用于抑制由于变换类型设置而导致的编码效率的降低的方法的示例的图。

图2是示出变换类型导出装置的主要配置示例的框图。

图3是示出变换类型候选表的示例的图。

图4是用于描述变换类型设置处理的流程的示例的流程图。

图5是用于描述变换类型设置处理的流程的示例的流程图。

图6是示出变换类型候选表的示例的图。

图7是示出变换类型导出装置的主要配置示例的框图。

图8是用于描述变换类型设置处理的流程的示例的流程图。

图9是示出变换类型导出装置的主要配置示例的框图。

图10是用于描述变换类型设置处理的流程的示例的流程图。

图11是示出变换类型导出装置的主要配置示例的框图。

图12是用于描述变换类型设置处理的流程的示例的流程图。

图13是示出变换类型导出装置的主要配置示例的框图。

图14是用于描述变换类型设置处理的流程的示例的流程图。

图15是示出图像编码装置的主要配置示例的框图。

图16是示出正交变换单元的主要配置示例的框图。

图17是示出一次水平变换单元的主要配置示例的框图。

图18是示出变换矩阵导出单元的主要配置示例的框图。

图19是示出一次垂直变换单元的主要配置示例的框图。

图20是示出变换矩阵导出单元的主要配置示例的框图。

图21是用于描述图像编码处理的流程的示例的流程图。

图22是用于描述正交变换处理的流程的示例的流程图。

图23是用于描述一次变换处理的流程的示例的流程图。

图24是用于描述一次水平变换处理的流程的示例的流程图。

图25是用于描述变换矩阵导出处理的流程的示例的流程图。

图26是用于描述一次垂直变换处理的流程的示例的流程图。

图27是示出图像解码装置的主要配置示例的框图。

图28是示出逆正交变换单元的主要配置示例的框图。

图29是示出逆一次垂直变换单元的主要配置示例的框图。

图30是示出变换矩阵导出单元的主要配置示例的框图。

图31是示出逆一次水平变换单元的主要配置示例的框图。

图32是示出变换矩阵导出单元的主要配置示例的框图。

图33是用于描述图像解码处理的流程的示例的流程图。

图34是用于描述逆正交变换处理的流程的示例的流程图。

图35是用于描述逆一次变换处理的流程的示例的流程图。

图36是用于描述逆一次垂直变换处理的流程的示例的流程图。

图37是用于描述逆一次水平变换处理的流程的示例的流程图。

图38是示出计算机的主要配置示例的框图。

具体实施方式

在下文中,将描述用于实现本公开内容的模式(在下文中被称为“实施方式”)。注意,将按以下顺序进行描述。

1.支持技术内容和技术术语等的文献

2.自适应一次变换

3.概念

4.第一实施方式(变换类型导出装置、方法#1)

5.第二实施方式(变换类型导出装置、方法#2)

6.第三实施方式(变换类型导出装置、方法#3)

7.第四实施方式(变换类型导出装置、方法#4)

8.第五实施方式(图像编码装置)

9.第六实施方式(图像解码装置)

10.附录

<1.支持技术内容和技术术语等的文献>

由本技术公开的范围不仅包括示例中描述的内容,而且包括在提交时已知的以下非专利文献中描述的内容。

非专利文献1:(如上所描述)

非专利文献2:(如上所描述)

非专利文献3:(国际电信联盟)电信标准化部门,“通用视听服务的高级视频编码”,H.264,04/2017

非专利文献4:(国际电信联盟)电信标准化部门,“高效视频编码”,H.265,12/2016

即,以上提及的非专利文献中描述的内容也用作用于确定支持要求的基础。例如,即使在示例中没有直接描述非专利文献4中描述的四叉树块结构和非专利文献1中描述的四叉树加二叉树(QTBT)块结构的情况下,这些内容也落入本技术的公开范围内,并且满足权利要求的支持要求。此外,例如,即使在示例中没有直接描述诸如解析、语法和语义的技术术语的情况下,这些技术术语也类似地落入本技术的公开范围内,并且满足权利要求的支持要求。

此外,在本说明书中,除非另有指定,否则用于作为图像(图片)的部分区域或处理单元的描述的“块”(不是指示处理单元的块)指示图片中的任意部分区域,并且块的大小、形状、特性等不受限制。例如,“块”包括诸如在非专利文献1、3和4中描述的变换块(TB)、变换单元(TU)、预测块(PB)、预测单元(PU)、最小编码单元(SCU)、编码单元(CU)、最大编码单元(LCU)、编码树块(CTB)、编码树单元(CTU)、变换块、子块、宏块、图块、切片等任意的部分区域(处理单元)。

此外,在指定这样的块的大小时,不仅可以直接指定块大小,而且可以间接指定块大小。例如,可以使用用于标识大小的标识信息来指定块大小。此外,例如,可以通过与参考块(例如,LCU、SCU等)的大小的比率或差来指定块大小。例如,在将用于指定块大小的信息作为语法元素等进行发送的情况下,可以使用如上所述的用于间接指定大小的信息作为该信息。利用该配置,在一些情况下,可以减少信息量,并且可以提高编码效率。此外,块大小的指定还包括块大小的范围的指定(例如,可允许块大小的范围的指定等)。

此外,在本说明书中,编码不仅包括将图像变换为比特流的整个处理,而且包括该处理的一部分。例如,编码不仅包括包含预测处理、正交变换、量化、算术编码等的处理,而且包括被统称为量化和算术编码的处理,包含预测处理、量化和算术编码等的处理。类似地,解码不仅包括将比特流变换为图像的整个处理,而且包括该处理的一部分。例如,解码不仅包括包含逆算术解码、逆量化、逆正交变换、预测处理等的处理,而且包括包含逆算术解码和逆量化的处理,包含逆算术解码、逆量化和预测处理等的处理。

<2.自适应一次变换>

<设置变换类型>

在非专利文献1中描述的测试模型(联合探索测试模型4(Joint ExplorationTest Model 4,JEM4))中,公开了自适应一次变换(自适应多核变换(AMT)),在该自适应一次变换中,针对关于亮度变换块的每个水平一次变换PThor(也被称为一次水平变换)和垂直一次变换PTver(也被称为一次垂直变换),从多个不同的一维正交变换中自适应地选择一次变换。注意,AMT也被称为显式多核变换(explicit multiple core transforms,EMT)。

具体地,关于亮度变换块,在指示是否执行自适应一次变换的自适应一次变换标志apt_flag为0(假(false))的情况下,离散余弦变换(DCT)-II或离散正弦变换(DST)-VII由模式信息唯一地确定为一次变换(TrSetIdx=4)。

在自适应一次变换标志apt_flag为1(真(true))并且包括要处理的亮度变换块的当前编码单元(CU)是帧内CU的情况下,针对水平方向(x方向)和垂直方向(y方向)中的每一个,从三个变换集TrSet(TrSetIdx=0、1和2)中选择包括用作一次变换候选的正交变换的变换集TrSet。注意,上述DST-VII、DCT-VIII等指示正交变换的类型。

基于模式信息和变换集的对应表(的帧内预测模式信息)来唯一地确定变换集TrSet。例如,针对变换集TrSetH和TrSetV中的每一个设置用于指定对应变换集TrSet的变换集标识符TrSetIdx,如以下表达式(1)和(2)。

[数学式1]

TrSetH=LUT_IntraModeToTrSet[IntraMode][0] (1)

TrSetV=LUT_IntraModeToTrSet[IntraMode][1] (2)

这里,TrSetH表示一次水平变换PThor的变换集,TrSetV表示一次垂直变换PTver的变换集,以及查找表LUT_IntraModeToTrSet表示模式信息和变换集的对应表。查找表LUT_IntraModeToTrSet[][]的第一阵列以帧内预测模式IntraMode为参数,并且第二阵列以{H=0,V=1}为参数。

例如,在帧内预测模式号19(IntraMode==19)的情况下,选择变换集标识符TrSetIdx=0的变换集作为一次水平变换PThor的变换集TrSetH(也被称为一次水平变换集),并且选择变换集标识符TrSetIdx=2的变换集作为一次垂直变换PTver的变换集TrSetV(也被称为一次垂直变换集)。

注意,在自适应一次变换标志apt_flag为1(真)并且包括要处理的亮度变换块的当前CU是帧间CU的情况下,专用于帧间CU的变换集InterTrSet(TrSetIdx=3)被分配给一次水平变换的变换集TrSetH和一次垂直变换的变换集TrSetV。

接下来,针对水平方向和垂直方向中的每一个,根据一次水平变换指定标志pt_hor_flag与一次垂直变换指定标志pt_ver_flag之间的对应指定标志,选择应用所选择的变换集TrSet中的正交变换。

例如,使用一次{水平,垂直}变换集TrSet{H,V}和一次{水平,垂直}变换指定标志pt_{hor,ver}_flag作为参数,从预定变换集定义表(LUT_TrSetToTrTypeIdx)中导出变换集,如以下表达式(3)和(4)。

[数学式2]

TrTypeIdxH=LUT_TrSetToTrTypeIdx[TrSetH][pt_hor_flag] (3)

TrTypeIdxV=LUT_TrSetToTrTypeIdx[TrSetV][pt_ver_flag] (4)

注意,基于以下表达式(5),从一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag导出一次变换标识符pt_idx。即,一次变换标识符pt_idx的高1位对应于一次垂直变换指定标志的值,并且低1位对应于一次水平变换指定标志的值。

[数学式3]

pt_idx=(pt_ver_flag<<1)+pt_hor_flag (5)

通过对导出的一次变换标识符pt_idx的二进制串(bin string)应用算术编码以生成位串(bit string)来执行编码。注意,在亮度变换块中用信号通知自适应一次变换标志apt_flag和一次变换标识符pt_idx。

如上所述,非专利文献1提出了作为一次变换候选的五个一维正交变换:DCT-II(DCT2)、DST-VII(DST7)、DCT-VIII(DCT8)、DST-I(DST1)和DCT-V(DCT5)。在应用AMT的情况下,从由预测模式确定的变换集中用信号通知表示水平/垂直应用哪个正交变换的2比特索引,并且针对每个方向从两个候选中选择一个变换。此外,非专利文献2提出将DST-IV(DST4)和恒等变换(IDT:一维变换跳过)这两个一维正交变换添加到以上变换,以具有总共七个一维正交变换作为一次变换候选。

<变换类型的频率特性>

附带提及,这些变换类型并不总是具有相同的频率特性。然而,在非专利文献1或2中描述的方法中,在不考虑这样的频率特性的情况下,将所有准备的变换类型设置为候选。因此,例如,有可能选择具有不适合于残差信号的频率特性的变换类型,从而降低编码效率。

例如,当对低阶基向量的频率特性进行比较时,诸如DCT4、DST4和DST2的变换类型具有与诸如DCT8、DST7和DST1的变换类型相比更接近高通滤波器特性的特性(为更接近高通滤波器的低通滤波器)。此外,当对高阶(三阶)基向量的频率特性进行比较时,诸如DCT4、DST4和DST2的变换类型具有与诸如DCT8、DST7和DST1的变换类型相比更接近低通滤波器特性的特性(为更接近低通滤波器的高通滤波器)。即,与诸如DCT8、DST7和DST1的变换类型相比,诸如DCT4、DST4和DST2的变换类型可以以更低阶收集更多的高频分量。

因此,对于包含更多高频分量的残差信号,与应用诸如DCT8、DST7和DST1的变换类型相比,应用诸如DCT4、DST4和DST2的变换类型可以提高编码效率。

然而,在非专利文献1或2中描述的方法的情况下,在不考虑这样的频率特性的情况下,选择所有变换类型作为候选,并且从所有候选中选择期望的变换类型。因此,与应用诸如DCT4、DST4和DST2的变换类型的情况相比,有可能将诸如DCT8、DST7和DST1的变换类型应用于包含更多高频分量的残差信号,并且降低编码效率。

<3.概念>

<根据频率特性选择变换类型>

因此,考虑到变换类型的频率特性来选择变换类型。例如,选择具有适合于作为残差信号(其为要进行正交变换的目标)(在逆正交变换的情况下为系数数据)的频率特性的变换类型。通过这样做,可以选择具有根据要进行正交变换或逆正交变换的数据的频率分量的特性的频率特性的变换类型,并且可以抑制编码效率的降低(可以提高编码效率)。

例如,基于频率特性将变换类型候选划分为多个组,并且根据残差信号(或系数数据)的频率分量的特性从多个组中选择候选组。这样做,可以从具有适合于残差信号(或系数数据)的频率特性的变换类型中选择变换类型作为候选。因此,可以更容易地选择具有根据要进行正交变换或逆正交变换的数据的频率分量的特性的频率特性的变换类型。

注意,可以基于例如编码参数来估计残差信号(或系数数据)的频率分量的特性。用于估计频率分量的特性的编码参数是任意的。下面将描述具体示例。即,在该情况下,可以基于编码参数来选择变换类型。因此,可以更容易地选择具有根据要进行正交变换或逆正交变换的数据的频率分量的特性的频率特性的变换类型。

<变换类型候选表的选择>

因此,例如,如图1中示出的表中从顶部起第一行中的“方法”列中所示(项目名称的列除外),基于编码参数,可以从具有彼此不同的变换类型的频率特性的多个变换类型候选表中选择要使用的变换类型候选表。

这里,变换类型候选表是具有自适应一次变换中的变换类型候选作为元素的表信息。使用变换类型候选表中包括的变换类型作为候选来执行自适应一次变换(变换类型的选择)。

作为变换类型候选表候选,准备包括根据频率特性被分类的变换类型作为元素的多个变换类型候选表,即,创建多个变换类型候选表,使作为元素被包括的变换类型的频率特性彼此不同,并且从多个变换类型候选表中选择要使用的表。即,通过选择表来选择要应用的变换类型的频率特性。

即,可以从具有不同频率特性的变换类型候选作为元素的多个变换类型候选表中选择与编码参数对应的变换类型候选表,并且可以使用选择的变换类型候选表来设置要应用于当前块的变换类型。

例如,图像处理装置可以包括:选择单元,其被配置成从具有不同频率特性的变换类型候选作为元素的多个变换类型候选表中选择与编码参数对应的变换类型候选表;以及设置单元,其被配置成使用由选择单元选择的变换类型候选表来设置要应用于当前块的变换类型。

这样做,可以更容易地选择具有适当的频率特性(根据要进行正交变换或逆正交变换的数据的频率分量的特性的频率特性)的变换类型。因此,可以抑制编码效率的降低(由于要使用的变换类型的频率特性不适合于要进行正交变换或逆正交变换的数据的频率分量的特性)。

换言之,与非专利文献1和2中所述的不考虑候选变换类型的频率特性的情况下选择变换类型的方法的情况相比,这样做可以提高编码效率。

<方法#1>

例如,可以使用要处理的当前块的块大小作为编码参数。例如,如图1中示出的表中从顶部起第二行中的“方法”列中所示(项目名称的列除外),可以基于块大小来选择变换类型候选表(方法#1)。

通常,与块大小被设置为大的区域相比,块大小被设置为小的区域在空间方向上要编码的图像中有大的改变,并且包含大量的高频分量。因此,对于这样的小块,期望应用具有能够以低阶收集更多高频分量的频率特性的变换类型。换言之,对于大块,期望应用具有能够以低阶收集更多低频分量的频率特性的变换类型。

因此,如上所述,通过基于当前块的块大小来选择变换类型候选表,可以抑制编码效率的降低(由于要使用的变换类型的频率特性不适合于要进行正交变换或逆正交变换的数据的频率分量的特性)。换言之,与非专利文献1和2中所述的不考虑候选变换类型的频率特性的情况下选择变换类型的方法的情况相比,这样做可以提高编码效率。

注意,在一些情况下,某些变换类型的变换矩阵可以从另一变换类型的变换矩阵导出(通过诸如翻转、转置、代码反转、采样等操作)。因此,通过根据块大小划分要应用的(候选)变换类型,例如,可以从用于更大的块大小的变换类型的变换矩阵导出用于小的块大小的变换类型的变换矩阵。

因此,这样做可以减少要准备作为候选的变换类型(变换矩阵)的数目,并且因此可以抑制存储候选变换矩阵的查找表的大小的增加(可以使大小减小)。此外,用于在正交变换处理中执行矩阵计算的计算电路可以在可导出的变换类型之间通用。因此,这样做可以抑制电路规模的增加(可以减小电路规模)。

<方法#2>

例如,可以使用RD成本作为编码参数。例如,如图1中示出的表中从顶部起第三行中的“方法”列中所示(项目名称的列除外),在应用每个变换类型的情况下,可以基于RD成本来选择变换类型候选表。

换言之,通过计算应用每个变换类型的RD成本并且比较计算出的RD成本,可以确认使用哪个变换类型候选表选择变换类型的情况可以最大程度地提高编码效率。

通过这样做,可以使用具有最高编码效率的变换类型候选表来选择变换类型。因此,可以抑制编码效率的降低(由于要使用的变换类型的频率特性不适合于要进行正交变换或逆正交变换的数据的频率分量的特性)。换言之,与非专利文献1和2中所述的不考虑候选变换类型的频率特性的情况下选择变换类型的方法的情况相比,这样做可以提高编码效率。

<标识信息信号(解码侧)>

注意,RD成本的这样的导出在编码侧是可能的,但是在解码侧是困难的。因此,在该情况下,如从顶部起第三行中的“方法”列所示,可以将用于标识选择的变换类型候选表的标识信息(变换类型候选表切换标志)从编码侧发送(用信号通知)至解码侧(方法2)。

即,作为用于标识在编码时选择的变换类型候选表的标识信息的变换类型候选表切换标志被用作编码参数,并且在解码侧,可以选择与从编码侧发送(用信号通知)的变换类型候选表切换标志对应的变换类型候选表。

这样做可以显式地控制编码侧对变换类型的选择。此外,解码侧仅需要基于从编码侧提供的变换类型候选表切换标志来选择变换类型候选表,从而更容易地选择变换类型候选表。

<方法#3>

此外,可以根据预测精度来选择变换类型候选表。例如,可以使用当前块的帧间预测模式作为关于预测精度的编码参数。例如,如图1中示出的表中从顶部起第四行中的“方法”列中所示(项目名称的列除外),可以基于帧间预测模式来选择变换类型候选表(方法#3)。

通常,在帧间预测中,随着预测的数目的增加,预测精度变高。例如,与双预测的情况相比,在单预测的情况下,残差分量的量变大,并且残差信号中包括的高频分量的量变大。因此,根据当前块的帧间预测模式的预测的数目(例如,预测是单预测还是双预测)来选择变换类型候选表。

例如,将具有能够以低阶收集更多高频分量的频率特性的变换类型应用于帧间预测模式的预测的数目小(单预测等)的块,并且将具有能够以低阶收集更多低频分量的频率特性的变换类型应用于帧间预测模式的预测的数目大(双预测等)的块。

这样做可以抑制编码效率的降低(由于要使用的变换类型的频率特性不适合于要进行正交变换或逆正交变换的数据的频率分量的特性)。换言之,与非专利文献1和2中所述的不考虑候选变换类型的频率特性的情况下选择变换类型的方法的情况相比,这样做可以提高编码效率。

注意,可以基于帧内预测模式和帧间预测模式来选择变换类型候选表。例如,将具有能够以低阶收集更多低频分量的频率特性的变换类型应用于帧内预测模式,并且将具有能够以低阶收集更多高频分量的频率特性的变换类型应用于帧间预测模式。从而,可以提高编码效率。

附带提及,在一些情况下,某些变换类型的变换矩阵可以从另一变换类型的变换矩阵导出(通过诸如翻转、转置、代码反转、采样等操作)。因此,如上所述,通过根据帧间预测模式(预测的数目)划分要应用的(候选)变换类型,例如,可以从具有小的预测的数目的帧间预测模式的变换类型的变换矩阵导出具有大的预测的数目的帧间预测模式的变换类型的变换矩阵。这同样适用于根据预测模式是帧内预测模式还是帧间预测模式来划分要作为候选的变换类型的情况。

因此,这样做可以减少要准备作为候选的变换类型(变换矩阵)的数目,并且因此可以抑制存储候选变换矩阵的查找表的大小的增加(可以使大小减小)。此外,用于在正交变换处理中执行矩阵计算的计算电路可以在可导出的变换类型之间通用。因此,这样做可以抑制电路规模的增加(可以减小电路规模)。

<方法#4>

此外,例如,可以使用当前块的运动矢量的像素精度作为关于预测精度的编码参数。例如,如图1中示出的表中从顶部起第五行中的“方法”列中所示(项目名称的列除外),可以基于运动矢量的像素精度来选择变换类型候选表(方法#4)。

通常,随着运动矢量所指示的位置的精度越精细,预测精度变得越高。例如,与运动矢量具有分数像素精度(运动矢量指示子像素位置)的情况相比,在运动矢量具有整数像素精度(运动矢量指示整数位置)的情况下,残差分量的量变大,残差信号中包括的高频分量的量变大。因此,根据当前块的运动矢量的像素精度(例如,运动矢量所指向的位置是整数像素位置还是子像素位置)来选择变换类型候选表。

例如,将具有能够以低阶收集更多高频分量的频率特性的变换类型应用于具有整数像素精度的运动矢量的块,并且将具有能够以低阶收集更多低频分量的频率特性的变换类型应用于具有分数像素精度的运动矢量的块。

这样做可以抑制编码效率的降低(由于要使用的变换类型的频率特性不适合于要进行正交变换或逆正交变换的数据的频率分量的特性)。换言之,与非专利文献1和2中所述的不考虑候选变换类型的频率特性的情况下选择变换类型的方法的情况相比,这样做可以提高编码效率。

注意,在一些情况下,某些变换类型的变换矩阵可以从另一变换类型的变换矩阵导出(通过诸如翻转、转置、代码反转、采样等操作)。因此,例如,通过根据运动矢量的像素精度划分要应用的(候选)变换类型,可以从用于较粗精度的变换类型的变换矩阵导出用于更精细精度的变换类型的变换矩阵。

因此,这样做可以减少要准备作为候选的变换类型(变换矩阵)的数目,并且因此可以抑制存储候选变换矩阵的查找表的大小的增加(可以使大小减小)。此外,用于在正交变换处理中执行矩阵计算的计算电路可以在可导出的变换类型之间通用。因此,这样做可以抑制电路规模的增加(可以减小电路规模)。

<其他>

可以将上述方法(方法#1至方法#4)中的每一个与上述方法(方法#1至方法#4)中的另一方法组合使用。此外,上述方法(方法#1至方法#4)中的每一个可以与未描述的另一方法(使用另一编码参数的方法)组合使用。即,可以基于多个类型的编码参数来选择要使用的变换类型候选表。例如,可以基于块大小(方法#1)和帧间预测模式(方法#3)两者来选择变换类型候选表。

此外,要用于选择变换类型候选表的编码参数是任意的,并且不限于上述示例。

此外,准备多个方法作为候选,并且可以选择和采用多个方法中的任何方法。例如,可以准备上述方法#1至方法#4、以上未描述的方法、多个方法的组合等作为候选,并且可以从准备的方法中选择适当的方法。这样做可以通过更适当的方法来选择变换类型候选表。因此,可以抑制编码效率的降低(可以提高编码效率)。

注意,在该情况下,解码侧需要采用与在编码侧采用的方法相同的方法。因此,指示在编码侧采用的方法的信息(例如,标识信息)可以被发送(用信号通知)至解码侧。通过这样做,解码侧可以更容易地选择正确的方法。

<4.第一实施方式>

<变换类型导出装置(方法#1)>

接下来,将更具体地描述每个方法。首先,将描述方法#1。图2是示出作为应用了本技术的图像处理装置的一个模式的变换类型导出装置的配置的示例的框图。图2中示出的变换类型导出装置100是通过上述方法#1导出用于一次变换和逆一次变换的变换类型的装置。

如图2所示,变换类型导出装置100包括Emt控制单元101、变换集标识符设置单元102、变换类型候选表选择单元103和变换类型设置单元104。

Emt控制单元101例如具有诸如中央处理单元(CPU)、只读存储器(ROM)和随机存取存储器(RAM)的任意配置,并且执行关于正交变换的变换类型的自适应改变(例如,自适应一次变换)的控制的处理。例如,Emt控制单元101获取从变换类型导出装置100的外部输入的变换标志Emtflag(也被称为emt_flag)。变换标志Emtflag是指示是否自适应地改变正交变换的变换类型(例如,是否应用自适应一次变换)的标志。Emt控制单元101基于输入的变换标志Emtflag(虚线箭头)的值来控制变换类型导出装置100的处理单元(例如,变换集标识符设置单元102至变换类型设置单元104)中的每一个,以自适应地改变或不改变正交变换的变换类型。

变换集标识符设置单元102例如具有诸如CPU、ROM和RAM的任意配置,并且执行关于变换集标识符trSetIdx的设置的处理。变换集标识符trSetIdx是用于标识变换集的标识符。变换集是变换类型候选的组合的模式的集(组)。尽管下面将描述细节,但是可以通过选择变换集来缩小能够从变换类型候选表中选择的变换类型候选的组合。例如,变换集标识符设置单元102获取从变换类型导出装置100的外部输入的各种类型的信息,例如模式信息、块大小和颜色标识符。变换集标识符设置单元102基于该信息来导出(设置)变换集标识符trSetIdx。变换集标识符设置单元102将设置的变换集标识符trSetIdx提供给变换类型设置单元104。

变换类型候选表选择单元103例如具有诸如CPU、ROM和RAM的任意配置,并且执行关于变换类型候选表的选择的处理。例如,变换类型候选表选择单元103获取从变换类型导出装置100的外部输入的关于块大小的信息。此外,变换类型候选表选择单元103预先存储变换类型候选表A111和变换类型候选表B112。变换类型候选表选择单元103基于获取的关于块大小(当前块的块大小)的信息来选择这些变换类型候选表中的一个。变换类型候选表选择单元103将选择的变换类型候选表提供给变换类型设置单元104。

例如,变换类型候选表A111和变换类型候选表B112具有不同频率特性的变换类型候选作为元素。例如,与变换类型候选表B112相比,变换类型候选表A111包括适合于包括更多高频分量的残差信号的变换类型作为元素。换言之,与变换类型候选表B112相比,变换类型候选表A111包括适合于更小的块的变换类型作为元素。

与变换类型候选表A111相比,变换类型候选表B112包括适合于包括更多低频分量的残差信号的变换类型作为元素。换言之,与变换类型候选表A111相比,变换类型候选表B112包括适合于更大的块的变换类型作为元素。

图3中的A示出了变换类型候选表A111的示例。在图3中的A中示出的示例的情况下,变换类型候选表A111包括四种作为元素的变换类型:DCT2、DCT4、DST2和DST4。此外,图3中的B示出了变换类型候选表B112的示例。在图3中的B中示出的示例的情况下,变换类型候选表B112包括四种作为元素的变换类型:DCT2、DCT8、DST1和DST7。

注意,DST7和DST4是能够相互替换的变换类型。此外,DCT8和DCT4是能够相互替换的变换类型。此外,DST1和DST2是能够相互替换的变换类型。

例如,关于低阶基向量的频率特性,变换类型DCT4、DST2和DST4具有与变换类型DCT8、DST1和DST7相比更强的高通滤波器特性(为更接近高通滤波器的低通滤波器)。此外,关于高阶(三阶)基向量的频率特性,变换类型DCT4、DST2和DST4具有与变换类型DCT8、DST1和DST7相比更强的低通滤波器特性(为更接近低通滤波器的高通滤波器)。即,变换类型DCT4、DST2和DST4具有与变换类型DCT8、DST1和DST7相比能够以低阶收集更多高频分量的频率特性。

因此,变换类型候选表选择单元103在当前块的块大小小于预定阈值(或等于或小于阈值)的情况下选择变换类型候选表A111,并且在当前块的块大小等于或大于预定阈值(或大于阈值)的情况下选择变换类型候选表B112。

变换类型设置单元104例如具有诸如CPU、ROM和RAM的任意配置,并且执行关于变换类型设置的处理。例如,变换类型设置单元104获取由变换集标识符设置单元102导出(设置)的变换集标识符trSetIdx。此外,变换类型设置单元104获取由变换类型候选表选择单元103选择的变换类型候选表。此外,变换类型设置单元104获取从变换类型导出装置100的外部输入的变换索引EmtIdx(也被称为emt_idx)。此外,变换类型设置单元104获取从变换类型导出装置100的外部输入的一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag。

如图3中的示例所示,可以基于变换集标识符trSetIdx和变换索引EmtIdx从变换类型候选表中选择变换对。该变换对包括用于水平一维正交变换(或水平逆一维正交变换)的变换类型(trTypeH),以及用于垂直一维正交变换(或垂直一维逆正交变换)的变换类型(trTypeV)。

变换集是这些变换对的集(组),并且在图3中的示例中,将元素沿行的方向(图3中的水平方向)进行布置。变换集标识符trSetIdx根据值(0至5)标识要选择的行(要选择哪个变换集)。即,通过使用变换集标识符trSetIdx指定变换集,缩小了可选的变换对(变换类型候选的组合的模式)的范围。

变换索引EmtIdx是用于标识要选择这样的变换集的哪个元素(变换对)的标识符。在图3的示例的情况下,变换索引EmtIdx根据值(0至3)标识要选择哪个列(要选择哪个变换对)。

一次水平变换指定标志pt_hor_flag是指定用于变换对中的水平一维正交变换(或水平逆一维正交变换)的变换类型(trTypeH)的标志信息。一次垂直变换指定标志pt_ver_flag是指定用于变换对中的垂直一维正交变换(或垂直逆一维正交变换)的变换类型(trTypeV)的标志信息。

变换类型设置单元104在由变换类型候选表选择单元103选择的变换类型候选表中选择由变换集标识符所设置的变换集标识符trSetIdx以及变换索引EmtIdx指定的变换对。然后,变换类型设置单元104使用一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag,并且将变换对中包括的一个变换类型候选指定为用于水平一维正交变换(或水平逆一维正交变换)的变换类型(trTypeH),并且将另一候选指定为用于垂直一维正交变换(或垂直逆一维正交变换)的变换类型(trTypeV)。变换类型设置单元104将以此方式导出(设置)的变换类型(trTypeH和trTypeV)输出至变换类型导出装置100的外部。

通过这样做,与当前块具有大的块大小的情况(包括更多低频分量的情况)相比,在当前块具有小的块大小的情况(包括更多高频分量的情况)下,变换类型设置单元104可以从具有能够以更低阶收集高频分量的频率特性的变换类型(例如,DCT4、DST2、DST4等)中设置自适应变换类型作为候选。

通过这样做,与当前块具有小的块大小的情况(包括更多高频分量的情况)相比,在当前块具有大的块大小的情况(包括更多低频分量的情况)下,变换类型设置单元104可以从具有能够以更低阶收集低频分量的频率特性的变换类型(例如,DCT8、DST1、DST7等)中设置自适应变换类型作为候选。

即,变换类型导出装置100可以导出具有适合于当前块的块大小的频率特性(要进行正交变换或逆正交变换的数据的频率分量(的分布)的特性)的变换类型。因此,变换类型导出装置100可以抑制在应用了使用变换类型的正交变换和逆正交变换的编码和解码中编码效率的降低(由于要使用的变换类型的频率特性不适合于要进行正交变换或逆正交变换的数据的频率分量的特性)。换言之,与非专利文献1和2中所述的不考虑候选变换类型的频率特性的情况下选择变换类型的方法的情况相比,变换类型导出装置100可以提高编码效率。

此外,在该情况下,变换类型导出装置100可以基于块大小容易地执行以上控制(变换类型候选表的选择)。即,变换类型导出装置100可以更容易地提高编码效率。

<变换类型设置处理的流程(方法#1)>

将参照图4中的流程图描述在该情况下由变换类型导出装置100执行的变换类型设置处理的流程的示例。

当变换类型设置处理开始时,在步骤S101中,变换类型导出装置100的Emt控制单元101确定变换标志Emtflag的值是否为真(例如,1)。在确定变换标志Emtflag的值为真的情况下,处理进入步骤S102。

在步骤S102中,变换集标识符设置单元102基于模式信息、块大小和颜色标识符来设置变换集标识符trSetIdx。

在步骤S103中,变换类型候选表选择单元103例如基于当前块的块大小如以下表达式(6)中那样选择变换类型候选表。在表达式(6)中,tableTrSetToTrType表示选择的变换类型候选表,curBlockSize表示当前块的块大小,TH表示块大小的阈值,tableTrSetToTrTypeA表示变换类型候选表A111,以及tableTrSetToTrTypeB表示变换类型候选表B112。

[数学式4]

tableTrSetToTrType=curBlockSize<TH?

tableTrSetToTypeA:tableTrSetToTypeB (6)

在步骤S104中,变换类型设置单元104从在步骤S103中选择的变换类型候选表中选择由变换集标识符trSetIdx以及在步骤S102中设置的变换索引EmtIdx来指定的变换对。此外,变换类型设置单元104使用一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag,从选择的变换对中选择用于水平一维正交变换(或水平逆一维正交变换)的变换类型trTypeH以及用于垂直一维正交变换(或垂直逆一维正交的变换)的变换类型trTypeV。即,trTypeH和trTypeV例如由以下表达式(7)导出。

[数学式5]

trTypeV=tableTrSetToTrType[trSetIdx][EmtIdx][0]

trTypeH=tableTrSetToTrType[trSetIdx][EmtIdx][1] (7)

当步骤S104中的处理完成时,变换类型设置处理完成。此外,在步骤S101中,在确定变换标志Emtflag的值为假(例如,0)的情况下,处理进入步骤S105。

在步骤S105中,变换类型设置单元104设置预定变换类型DefaultTrType(例如,DCT2),如以下表达式(8)所示。

[数学式6]

trTypeH=DefaultTrType

trTypeV=DefaultTrType (8)

当步骤S105中的处理完成时,变换类型设置处理完成。通过如上所述执行每个处理,可以提高编码效率。

<修改>

注意,在图2中,已经使用变换类型候选表选择单元103存储两个变换类型候选表并且从两个候选中选择要使用的变换类型候选表的示例进行了以上描述。然而,变换类型候选表候选的数目是任意的。即,变换类型候选表选择单元103可以存储任意数目的变换类型候选表作为候选,并且从候选中选择要使用的变换类型候选表。例如,变换类型候选表选择单元103可以根据候选的数目准备阈值,并且根据阈值对当前块的块大小进行分类,并且选择与块大小对应的候选。例如,在候选的数目为三的情况下,仅准备两个阈值。

此外,作为变换类型候选表的元素的变换类型的类型数目是任意的。图3中的A示出了具有四种类型的变换类型(DCT2、DST4、DCT4和DST2)作为元素的变换类型候选表A111的示例。然而,类型数目不限于该示例。例如,变换类型候选表A111可以具有除了DST2之外的三种变换类型(DCT2、DST4和DCT4)作为元素,或者可以具有除了DST2和DCT4之外的两种变换类型(DCT2和DST4)作为元素。

类似地,图3中的B示出了具有四种类型的变换类型(DCT2、DST7、DCT8和DST1)作为元素的变换类型候选表B112的示例。然而,类型数目不限于该示例。例如,变换类型候选表B112可以具有除了DST1之外的三种变换类型(DCT2、DST7和DCT8)作为元素,或者可以具有除了DST1和DCT8之外的两种变换类型(DCT2和DST7)作为元素。

此外,可以用FlipDST7代替变换类型DCT8。此外,可以用FlipDCT4代替变换类型DST4。

注意,在表达式(6)中示出的导出当前块的块大小curBlockSize的方法是任意的。例如,可以如以下表达式(9)中那样导出块大小curBlockSize。在表达式(9)中,Width表示水平方向上的块大小(水平宽度),Height表示垂直方向上的块大小(垂直宽度)。此外,min(A,B)是用于在A与B之间选择较小者的函数。即,在表达式(9)的情况下,采用当前块的水平宽度或垂直宽度中的与另一个相比较小的一个(即,较短宽度的大小)作为块大小。

[数学式7]

curBlockSize=min(Width,Height) (9)

此外,可以使用如以下表达式(10)而不是表达式(9)中那样的对数表达式来导出当前块的块大小curBlockSize。

[数学式8]

curBlockSize=min(Log

注意,已经使用如下示例进行了以上描述,该示例使用公共块大小(例如,较短侧的大小)选择水平方向和垂直方向上的变换类型候选表。然而,实施方式不限于该示例。例如,如以下表达式(11)中所示,可以基于当前块的垂直方向和水平方向中的各个方向的块大小来彼此独立地选择变换类型候选表。

[数学式9]

trTypeV=height<TH?

tableTrSetToTrTypeA[trSetIdx][EmtIdx][0]:

tableTrSetToTrTypeB[trSetIdx][EmtIdx][0]

trTypeH=width<TH?

tableTrSetToTrTypeA[trSetIdx][EmtIdx][1]:

tableTrSetToTrTypeB[trSetIdx][EmtIdx][1] (11)

在该情况下,由于可以从适合于每个方向的变换类型候选表中导出变换类型,因此可以进一步提高编码效率。

此外,已经使用将一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag用于选择变换类型的示例进行了以上描述。然而,一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag可以被包括在变换索引EmtIdx中。例如,如以下表达式(12)中那样,可以将变换索引EmtIdx的低位(0x01)用于一次水平变换指定标志pt_hor_flag,并且可以将变换索引EmtIdx的高位(0x10)用于一次垂直变换指定标志pt_ver_flag。

[数学式10]

pt_ver_flag=EmtIdx&0x10

pt_hor_flag=EmtIdx&0x01 (12)

将参照图5的流程图来描述该情况下的变换类型设置处理的流程的示例。在该情况下,与图4中的步骤S101至S103中的处理类似,还执行步骤S111至S113中的处理。当步骤S113中的处理完成时,处理进入步骤S114。

在步骤S114中,变换类型设置单元104从在步骤S113中选择的变换类型候选表中,选择由步骤S102中设置的变换集标识符trSetIdx以及变换索引EmtIdx的高位指定的变换类型,作为垂直变换类型trTypeV。此外,变换类型设置单元104从在步骤S113中选择的变换类型候选表中,选择由步骤S102中设置的变换集标识符trSetIdx以及变换索引EmtIdx的低位指定的变换类型,作为垂直变换类型trTypeV。即,trTypeH和trTypeV例如由以下表达式(13)导出。

[数学式11]

trTypeV=tableTrSetToTrType[EmtIdx&0x10]

trTypeH=tableTrSetToTrType[EmtIdx&0x01] (13)

当步骤S114中的处理完成时,变换类型设置处理完成。此外,在步骤S111中,在确定变换标志Emtflag的值为假(例如,0)的情况下,处理进入步骤S115。

步骤S115中的处理与步骤S105(图4)中的处理类似地执行。当步骤S115中的处理完成时,变换类型设置处理完成。通过如上所述执行每个处理,与图4中的情况类似,可以提高编码效率。

注意,变换类型候选表的指定是任意的,并且不限于图3中的示例中示出的示例。例如,如图6中那样,可以使用变换集标识符trSetIdx以及一次垂直变换指定标志pt_ver_flag或一次水平变换指定标志pt_hor_flag来选择变换类型。图6中的A示出了变换类型候选表A111的示例,图6中的B示出了变换类型候选表B112的示例。

<5.第二实施方式>

<变换类型导出装置(方法#2(编码侧))>

接下来,将描述方法#2。图7示出了在通过上述方法#2导出要用于一次变换和逆一次变换的变换类型的情况下的变换类型导出装置100的主要配置示例。该情况下的变换类型导出装置100是导出要在编码侧的自适应正交变换中使用的变换类型并且基于RD成本来选择变换类型候选表的装置。

如图7所示,该情况下的变换类型导出装置100除了图2中的配置之外还包括RD成本计算单元121和变换类型候选表切换标志设置单元122。在该情况下,Emt控制单元101除了控制变换集标识符设置单元102至变换类型设置单元104(虚线箭头)之外,还控制RD成本计算单元121和变换类型候选表切换标志设置单元122,并且自适应地改变或不改变正交变换的变换类型。

RD成本计算单元121例如具有诸如CPU、ROM和RAM的任意配置,并且执行关于RD成本的导出(计算)的处理。例如,RD成本计算单元121从变换类型候选表选择单元103获取所有变换类型候选表,并且在选择每种变换类型的情况下导出(计算)RD成本。RD成本计算单元121将与每个计算出的变换类型对应的RD成本提供给变换类型候选表选择单元103。

变换类型候选表选择单元103基于由RD成本计算单元121计算的RD成本来选择变换类型候选表。例如,变换类型候选表选择单元103选择使RD成本最小化的变换类型候选表。变换类型候选表选择单元103将选择的变换类型候选表提供给变换类型设置单元104和变换类型候选表切换标志设置单元122。

变换类型候选表切换标志设置单元122例如具有诸如CPU、ROM和RAM的任意配置,并且执行关于变换类型候选表切换标志useAltTrCandFlag的设置的处理。变换类型候选表切换标志useAltTrCandFlag是通过其值指示由变换类型候选表选择单元103选择的变换类型候选表的信息。例如,变换类型候选表切换标志useAltTrCandFlag为0的情况指示已选择了变换类型候选表A111,而变换类型候选表切换标志useAltTrCandFlag为1的情况指示已选择了变换类型候选表B112。变换类型候选表切换标志设置单元122将设置的变换类型候选表切换标志useAltTrCandFlag输出至变换类型导出装置100的外部。变换类型候选表切换标志useAltTrCandFlag被提供给解码侧。

通过这样做,变换类型导出装置100可以使用具有RD成本小的变换类型作为元素的变换类型候选表来导出变换类型。即,变换类型导出装置100可以导出RD成本低的变换类型。因此,变换类型导出装置100可以抑制在应用了使用变换类型的正交变换的编码中编码效率的降低(由于要使用的变换类型的频率特性不适合于要进行正交变换的数据的频率分量的特性)。换言之,与非专利文献1和2中所述的不考虑候选变换类型的频率特性的情况下选择变换类型的方法的情况相比,变换类型导出装置100可以提高编码效率。

此外,如上所述,变换类型导出装置100设置变换类型候选表切换标志useAltTrCandFlag,并且将设置的标志提供给解码侧,并且因此变得能够在编码侧显式地控制变换类型的选择。

<变换类型设置处理的流程(方法#2(编码侧))>

将参照图8中的流程图描述在该情况下由变换类型导出装置100执行的变换类型设置处理的流程的示例。

当变换类型设置处理开始时,在步骤S121中,变换类型导出装置100的Emt控制单元101确定变换标志Emtflag的值是否为真(例如,1)。在确定变换标志Emtflag的值为真的情况下,处理进入步骤S122。

在步骤S122中,RD成本计算单元121在设置每个变换类型候选表(即,针对每个变换类型)的情况下计算RD成本。

在步骤S123中,变换集标识符设置单元102基于模式信息、块大小和颜色标识符来设置变换集标识符trSetIdx。

在步骤S124中,变换类型候选表选择单元103基于在步骤S122中计算的RD成本来选择变换类型候选表。

在步骤S125中,变换类型设置单元104从在步骤S124中选择的变换类型候选表中选择由变换集标识符trSetIdx以及在步骤S123中设置的变换索引EmtIdx指定的变换对。此外,变换类型设置单元104使用一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag,从选择的变换对中选择用于水平一维正交变换(或水平逆一维正交变换)的变换类型trTypeH以及用于垂直一维正交变换(或垂直逆一维正交的变换)的变换类型trTypeV。即,trTypeH和trTypeV例如由上述表达式(7)导出。

在步骤S126中,变换类型候选表切换标志设置单元122设置指示在步骤S124中选择的变换类型候选表的值的变换类型候选表切换标志useAltTrCandFlag。

在步骤S127中,变换类型候选表切换标志设置单元122将在步骤S126中设置的变换类型候选表切换标志useAltTrCandFlag发送至解码侧。

当步骤S127中的处理完成时,变换类型设置处理完成。此外,在步骤S121中,在确定了变换标志Emtflag的值为假(例如,0)的情况下,处理进入步骤S128。

在步骤S128中,变换类型设置单元104设置预定变换类型DefaultTrType(例如,DCT2),如以上表达式(8)所示。

当步骤S128中的处理完成时,变换类型设置处理完成。通过如上所述执行每个处理,可以提高编码效率。

<变换类型导出装置(方法#2(解码侧))>

图9示出了在通过上述方法#2导出要用于一次变换和逆一次变换的变换类型的情况下的变换类型导出装置100的主要配置示例。该情况下的变换类型导出装置100是如下装置,该装置导出要在解码侧的自适应正交变换中使用的变换类型,并且基于从编码侧提供的变换类型候选表切换标志useAltTrCandFlag来选择变换类型候选表。变换类型候选表切换标志useAltTrCandFlag是用于标识在编码中选择的变换类型候选表的标识信息。

如图9所示,该情况下的变换类型导出装置100具有与图2中的情况类似的配置。

然而,在该情况下,变换类型候选表选择单元103获取从变换类型导出装置100的外部输入的变换类型候选表切换标志useAltTrCandFlag,并且基于变换类型候选表切换标志useAltTrCandFlag来选择变换类型候选表(变换类型候选表A111或变换类型候选表B112)。变换类型候选表选择单元103将选择的变换类型候选表提供给变换类型设置单元104。

通过这样做,变换类型候选表选择单元103可以选择与在编码中选择的变换类型候选表相同的变换类型候选表(在图7中,由变换类型候选表选择单元103选择的变换类型候选表)。

因此,变换类型导出装置100可以选择与在编码中选择的变换类型相同的变换类型(在图7中,由变换类型导出装置100选择的变换类型)。即,变换类型导出装置100可以导出RD成本低的变换类型。因此,变换类型导出装置100可以抑制在应用了使用变换类型的逆正交变换的解码中编码效率的降低(由于要使用的变换类型的频率特性不适合于要进行逆正交变换的数据的频率分量的特性)。换言之,与非专利文献1和2中所述的不考虑候选变换类型的频率特性的情况下选择变换类型的方法的情况相比,变换类型导出装置100可以提高编码效率。

此外,如上所述,该情况下的变换类型导出装置100仅基于变换类型候选表切换标志useAltTrCandFlag来选择变换类型候选表,从而更容易地选择变换类型候选表。

<变换类型设置处理的流程(方法#2(解码侧))>

将参照图10中的流程图描述在该情况下由变换类型导出装置100执行的变换类型设置处理的流程的示例。

当变换类型设置处理开始时,在步骤S141中,变换类型导出装置100的变换类型候选表选择单元103获取变换类型候选表切换标志useAltTrCandFlag。

在步骤S142中,Emt控制单元101确定变换标志Emtflag的值是否为真(例如,1)。在确定变换标志Emtflag的值为真的情况下,处理进入步骤S143。

在步骤S143中,变换集标识符设置单元102基于模式信息、块大小和颜色标识符来设置变换集标识符trSetIdx。

在步骤S144中,变换类型候选表选择单元103基于在步骤S141中获取的变换类型候选表切换标志useAltTrCandFlag来选择变换类型候选表(选择由变换类型候选表切换标志useAltTrCandFlag的值指示的变换类型候选表)。

在步骤S145中,变换类型设置单元104从在步骤S144中选择的变换类型候选表中选择由变换集标识符trSetIdx以及在步骤S143中设置的变换索引EmtIdx指定的变换对。此外,变换类型设置单元104使用一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag,从选择的变换对中选择用于水平一维正交变换(或水平逆一维正交变换)的变换类型trTypeH以及用于垂直一维正交变换(或垂直逆一维正交的变换)的变换类型trTypeV。即,trTypeH和trTypeV例如由上述表达式(7)导出。

当步骤S145中的处理完成时,变换类型设置处理完成。此外,在步骤S142中,在确定变换标志Emtflag的值为假(例如,0)的情况下,处理进入步骤S146。

在步骤S146中,变换类型设置单元104设置预定变换类型DefaultTrType(例如,DCT2),如以上表达式(8)所示。

当步骤S146中的处理完成时,变换类型设置处理完成。通过如上所述执行每个处理,可以提高编码效率。

注意,在<4.第一实施方式>的<修改>中描述的各种修改可以类似地应用于本实施方式的情况。

<6.第三实施方式>

<变换类型导出装置(方法#3)>

接下来,将描述方法#3。图11示出了在通过上述方法#3导出要用于一次变换和逆一次变换的变换类型的情况下的变换类型导出装置100的主要配置示例。该情况下的变换类型导出装置100基于帧间预测模式(例如,预测是单预测还是双预测)来选择变换类型候选表。

如图11所示,该情况下的变换类型导出装置100具有与图2中的情况类似的配置。

然而,在该情况下,变换类型候选表选择单元103获取从变换类型导出装置100的外部输入的指示帧间预测模式的信息,并且基于帧间预测模式(例如,单预测或双预测)来选择变换类型候选表(变换类型候选表A111或变换类型候选表B112)。变换类型候选表选择单元103将选择的变换类型候选表提供给变换类型设置单元104。

通过这样做,例如,与双预测的情况(包括更多低频分量的情况)相比,在单预测的情况(包括更多高频分量的情况)下,变换类型设置单元104可以从具有能够以更低阶收集高频分量的频率特性的变换类型(例如,DCT4、DST2、DST4等)中设置自适应变换类型作为候选。

换言之,与单预测的情况(包括更多高频分量的情况)相比,在双预测的情况(包括更多低频分量的情况)下,变换类型设置单元104可以从具有能够以更低阶收集低频分量的频率特性的变换类型(例如,DCT8、DST1、DST7等)中设置自适应变换类型作为候选。

即,变换类型导出装置100可以导出具有适合于帧间预测模式的频率特性(要进行正交变换或逆正交变换的数据的频率分量(的分布)的特性)的变换类型。因此,变换类型导出装置100可以抑制在应用了使用变换类型的正交变换和逆正交变换的编码和解码中的编码效率的降低(由于要使用的变换类型的频率特性不适合于要进行正交变换或逆正交变换的数据的频率分量的特性)。换言之,与非专利文献1和2中所述的不考虑候选变换类型的频率特性的情况下选择变换类型的方法的情况相比,变换类型导出装置100可以提高编码效率。

此外,在该情况下,变换类型导出装置100可以基于帧间预测模式容易地执行以上控制(变换类型候选表的选择)。即,变换类型导出装置100可以更容易地提高编码效率。

<变换类型设置处理的流程(方法#3)>

将参照图12中的流程图描述在该情况下由变换类型导出装置100执行的变换类型设置处理的流程的示例。

图12中的步骤S161和步骤S162中的处理与图4中的步骤S101和步骤S102中的处理类似地执行。

在步骤S163中,变换类型候选表选择单元103基于帧间预测模式选择变换类型候选表。

步骤S164和步骤S165中的处理与图4中的步骤S104和步骤S105中的处理类似地执行。

当步骤S164或步骤S165中的处理完成时,变换类型设置处理完成。通过如上所述执行每个处理,可以提高编码效率。

注意,在<4.第一实施方式>的<修改>中描述的各种修改可以类似地应用于本实施方式的情况。

<7.第四实施方式>

<变换类型导出装置(方法#4)>

接下来,将描述方法#4。图13示出了在通过上述方法#4导出要用于一次变换和逆一次变换的变换类型的情况下变换类型导出装置100的主要配置示例。该情况下的变换类型导出装置100基于运动矢量的像素精度(例如,运动矢量指示整数位置还是子像素位置)来选择变换类型候选表。

如图13所示,该情况下的变换类型导出装置100具有与图2中的情况类似的配置。

然而,在该情况下,变换类型候选表选择单元103获取从变换类型导出装置100的外部输入的指示运动矢量的像素精度的信息,并且基于运动矢量的像素精度(例如,运动矢量所指向的位置是整数位置还是子像素位置)来选择变换类型候选表(变换类型候选表A111或变换类型候选表B112)。变换类型候选表选择单元103将选择的变换类型候选表提供给变换类型设置单元104。

通过这样做,例如,与运动矢量所指向的位置是子像素位置的情况(包括更多低频分量的情况)相比,在运动矢量所指向的位置是整数位置的情况(包括更多高频分量的情况)下,变换类型设置单元104可以从具有能够以更低阶收集高频分量的频率特性的变换类型(例如,DCT4、DST2、DST4等)中设置自适应变换类型作为候选。

换言之,与运动矢量所指向的位置是整数位置的情况(包括更多高频分量的情况)相比,在运动矢量所指向的位置是子像素位置的情况(包括更多低频分量的情况)下,变换类型设置单元104可以从具有能够以更低阶收集低频分量的频率特性的变换类型(例如,DCT8、DST1、DST7等)中设置自适应变换类型作为候选。

即,变换类型导出装置100可以导出具有适合于运动矢量的像素精度的频率特性(要进行正交变换或逆正交变换的数据的频率分量(的分布)的特性)的变换类型。因此,变换类型导出装置100可以抑制在应用了使用变换类型的正交变换和逆正交变换的编码和解码中编码效率的降低(由于要使用的变换类型的频率特性不适合于要进行正交变换或逆正交变换的数据的频率分量的特性)。换言之,与非专利文献1和2中所述的不考虑候选变换类型的频率特性的情况下选择变换类型的方法的情况相比,变换类型导出装置100可以提高编码效率。

此外,在该情况下,变换类型导出装置100可以基于运动矢量的像素精度容易地执行以上控制(变换类型候选表的选择)。即,变换类型导出装置100可以更容易地提高编码效率。

<变换类型设置处理的流程(方法#4)>

将参照图14中的流程图描述在该情况下由变换类型导出装置100执行的变换类型设置处理的流程的示例。

图14中的步骤S171和步骤S172中的处理与图4中的步骤S101和步骤S102中的处理类似地执行。

在步骤S173中,变换类型候选表选择单元103基于运动矢量的像素精度来选择变换类型候选表。

步骤S174和步骤S175中的处理与图4中的步骤S104和步骤S105中的处理类似地执行。

当步骤S174或步骤S175中的处理完成时,变换类型设置处理完成。通过如上所述执行每个处理,可以提高编码效率。

注意,在<4.第一实施方式>的<修改>中描述的各种修改可以类似地应用于本实施方式的情况。

<8.第五实施方式>

<图像编码装置>

注意,本技术可以应用于任意配置(设备、装置、系统等),并且不限于变换类型导出装置100的上述示例。例如,本技术可以应用于使用正交变换或逆正交变换对图像进行编码的图像编码装置。在本实施方式中,将描述将本技术应用于这样的图像编码装置的情况。

图15是示出作为了应用本技术的图像处理装置的一个模式的图像编码装置的配置的示例的框图。图15中示出的图像编码装置200是对运动图像的图像数据进行编码的装置。例如,图像编码装置200实现非专利文献1至非专利文献4中描述的技术,并且通过符合前述文献中的任何一个中描述的标准的方法来对运动图像的图像数据进行编码。

注意,图15示出了主要处理单元、数据流等,并且图15中示出的那些不一定是全部。即,在图像编码装置200中,可以存在未被示出为图15中的块的处理单元或者未被示出为图15中的箭头等的处理或数据流。这在用于描述图像编码装置200中的处理单元等的其他附图中是类似的。

如图15所示,图像编码装置200包括控制单元201、重排缓冲器211、计算单元212、正交变换单元213、量化单元214、编码单元215、累积缓冲器216、逆量化单元217、逆正交变换单元218、计算单元219、环内滤波器单元220、帧存储器221、预测单元222和速率控制单元223。

<控制单元>

控制单元201基于外部处理单元或预先指定的处理单元中的块大小,将由重排缓冲器211保持的运动图像数据划分为处理单元中的块(CU、PU、变换块等)。此外,控制单元201基于例如率失真优化(RDO)来确定要提供给每个块的编码参数(报头信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、滤波器信息Finfo等)。

下面将描述这些编码参数的细节。在确定上述编码参数之后,控制单元201将编码参数提供给每个块。具体地,编码参数如下。

报头信息Hinfo被提供给每个块。预测模式信息Pinfo被提供给编码单元215和预测单元222。变换信息Tinfo被提供给编码单元215、正交变换单元213、量化单元214、逆量化单元217和逆正交变换单元218。滤波器信息Finfo被提供给环内滤波器单元220。

<正交变换/逆正交变换的控制>

注意,控制单元201设置或导出关于由正交变换单元213进行的正交变换以及由逆正交变换单元218进行的逆正交变换的控制的信息。控制单元201将以此方式获得的信息提供给正交变换单元213和逆正交变换单元218,从而控制由正交变换单元213执行的正交变换以及由逆正交变换单元218执行的逆正交变换。

<重排缓冲器>

运动图像数据的每个字段(输入图像)按再现顺序(显示顺序)被输入至图像编码装置200。重排缓冲器211以其再现顺序(显示顺序)获取并且保持(存储)每个输入图像。重排缓冲器211基于控制单元201的控制以编码顺序(解码顺序)重排输入图像,或者将输入图像划分为处理单元中的块。重排缓冲器211将经处理的输入图像提供给计算单元212。此外,重排缓冲器211还将输入图像(原始图像)提供给预测单元222和环内滤波器单元220。

<计算单元>

计算单元212接收与处理单元中的块对应的图像I以及从预测单元222提供的预测图像P作为输入,如以下表达式(14)所示,从图像I中减去预测图像P以导出预测残差D,并且将预测残差D提供给正交变换单元213。

[数学式12]

D=I-P (14)

<正交变换单元>

正交变换单元213接收从计算单元212提供的预测残差D以及从控制单元201提供的变换信息Tinfo作为输入,并且基于变换信息Tinfo对预测残差D进行正交变换,以导出变换系数Coeff。注意,正交变换单元213可以执行自适应正交变换(AMT),用于自适应地选择正交变换的类型(变换系数)。正交变换单元213将获得的变换系数Coeff提供给量化单元214。

<量化单元>

量化单元214接收从正交变换单元213提供的变换系数Coeff以及从控制单元201提供的变换信息Tinfo作为输入,并且基于变换信息Tinfo来缩放(量化)变换系数Coeff。注意,该量化的速率由速率控制单元223控制。量化单元214将通过量化而获得的量化变换系数(即,量化变换系数级别level)提供给编码单元215和逆量化单元217。

<编码单元>

编码单元215接收从量化单元214提供的量化变换系数级别level、从控制单元201提供的各种编码参数(报头信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、滤波器信息Finfo等)、从环内滤波器单元220提供的关于滤波器的信息(例如,滤波器系数)、以及从预测单元222提供的关于最佳预测模式的信息作为输入。编码单元215对量化变换系数级别level执行可变长度编码(例如,算术编码),以生成位串(编码数据)。

此外,编码单元215从量化变换系数级别level导出残差信息Rinfo,并且对残差信息Rinfo进行编码以生成位串。

此外,编码单元215包括从环内滤波器单元220提供到滤波器信息Finfo中的关于滤波器的信息,并且包括从预测单元222提供到预测模式信息Pinfo中的关于最佳预测模式的信息。然后,编码单元215对上述各种编码参数(报头信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、滤波器信息Finfo等)进行编码以生成位串。

此外,编码单元215对如上所述的那样生成的各种类型的信息的位串进行复用,以生成编码数据。编码单元215将编码数据提供给累积缓冲器216。

<累积缓冲器>

累积缓冲器216临时存储由编码单元215获得的编码数据。累积缓冲器216在预定定时处将存储的编码数据作为比特流等输出至图像编码装置200的外部。例如,编码数据经由任意记录介质、任意传输介质、任意信息处理装置等被发送至解码侧。即,累积缓冲器216也是发送编码数据(比特流)的传输单元。

<逆量化单元>

逆量化单元217执行关于逆量化的处理。例如,逆量化单元217接收从量化单元214提供的量化变换系数级别level以及从控制单元201提供的变换信息Tinfo作为输入,并且基于变换信息Tinfo对量化变换系数级别level的值进行缩放(逆量化)。注意,逆量化是在量化单元214中执行的量化的逆处理。逆量化单元217将通过逆量化而获得的变换系数Coeff_IQ提供给逆正交变换单元218。

<逆正交变换单元>

逆正交变换单元218执行关于逆正交变换的处理。例如,逆正交变换单元218接收从逆量化单元217提供的变换系数Coeff_IQ以及从控制单元201提供的变换信息Tinfo作为输入,并且基于变换信息Tinfo对变换系数Coeff_IQ进行逆正交变换,以导出预测残差D'。注意,逆正交变换是在正交变换单元213中执行的正交变换的逆处理。即,逆正交变换单元218可以执行自适应逆正交变换(AMT),以用于自适应地选择逆正交变换的类型(变换系数)。

逆正交变换单元218将通过逆正交变换而获得的预测残差D'提供给计算单元219。注意,由于逆正交变换单元218类似于解码侧的逆正交变换单元(将在下面描述),因此可以将针对解码侧给出的描述(将在下面描述)应用于逆正交变换单元218。

<计算单元>

计算单元219接收从逆正交变换单元218提供的预测残差D'以及从预测单元222提供的预测图像P作为输入。计算单元219将预测残差D'和与预测残差D'对应的预测图像P相加,以导出局部解码图像Rlocal。计算单元219将导出的局部解码图像Rlocal提供给环内滤波器单元220和帧存储器221。

<环内滤波器单元>

环内滤波器单元220执行关于环内滤波处理的处理。例如,环内滤波器单元220接收从计算单元219提供的局部解码图像Rlocal、从控制单元201提供的滤波器信息Finfo、以及从重排缓冲器211提供的输入图像(原始图像)作为输入。注意,输入至环内滤波器单元220的信息可以是除了前述信息之外的信息。例如,根据需要,可以将诸如预测模式、运动信息、代码量目标值、量化参数QP、图片类型、块(CU、CTU等)的信息输入至环内滤波器单元220。

环内滤波器单元220基于滤波器信息Finfo适当地对局部解码图像Rlocal执行滤波处理。环内滤波器单元220还使用输入图像(原始图像)和其他输入信息,用于根据需要进行滤波处理。

例如,如非专利文献1中所描述的那样,环内滤波器单元220按双边滤波器、去块滤波器(DBF)、自适应偏移滤波器(采样自适应偏移(SAO))和自适应环路滤波器(自适应环路滤波器(ALF))的顺序应用这四个环内滤波器。注意,应用哪个滤波器以及以哪个顺序应用滤波器是任意的,并且可以适当地选择。

当然,由环内滤波器单元220执行的滤波处理是任意的,并且不限于以上示例。例如,环内滤波器单元220可以应用维纳(Wiener)滤波器等。

环内滤波器单元220将经滤波的局部解码图像Rlocal提供给帧存储器221。注意,例如,在将诸如滤波器系数的关于滤波器的信息发送至解码侧的情况下,环内滤波器单元220将关于滤波器的信息提供给编码单元215。

<帧存储器>

帧存储器221执行与关于图像的数据的存储有关的处理。例如,帧存储器221接收从计算单元219提供的局部解码图像Rlocal以及从环内滤波器单元220提供的经滤波的局部解码图像Rlocal作为输入,并且保持(存储)这些输入。此外,帧存储器221使用局部解码图像Rlocal重建并且保持每个图片单元的解码图像R(将解码图像R存储在帧存储器221的缓冲器中)。帧存储器221响应于来自预测单元222的请求将解码图像R(或其一部分)提供给预测单元222。

<预测单元>

预测单元222执行关于预测图像的生成的处理。例如,预测单元222接收从控制单元201提供的预测模式信息Pinfo、从重排缓冲器211提供的输入图像(原始图像)、以及从帧存储器221读取的解码图像R(或其一部分)作为输入。预测单元222使用预测模式信息Pinfo和输入图像(原始图像)执行诸如帧间预测、帧内预测等的预测处理,使用解码图像R作为参考图像来执行预测,基于预测结果来执行运动补偿处理,并且生成预测图像P。预测单元222将生成的预测图像P提供给计算单元212和219。此外,预测单元222根据需要将通过以上处理而选择的预测模式(即,关于最佳预测模式的信息)提供给编码单元215。

<速率控制单元>

速率控制单元223执行关于速率控制的处理。例如,速率控制单元223基于在累积缓冲器216中累积的编码数据的代码量来控制量化单元214的量化操作的速率,使得不会发生上溢或下溢。

<正交变换单元的细节>

图16是示出图15中的正交变换单元213的主要配置示例的框图。如图16所示,正交变换单元213包括一次变换单元261和二次变换单元262。

一次变换单元261被配置成执行关于一次变换的处理,该一次变换例如是诸如正交变换的预定变换处理。例如,一次变换单元261接收预测残差D和变换信息Tinfo(水平变换类型索引TrTypeH、垂直变换类型索引TrTypeV等)作为输入。

一次变换单元261使用与水平变换类型索引TrTypeH对应的变换矩阵以及与垂直变换类型索引TrTypeV对应的变换矩阵,对预测残差D执行一次变换,以导出一次变换之后的变换系数Coeff_P。一次变换单元261将导出的变换系数Coeff_P提供给二次变换单元262。

如图16中示,一次变换单元261包括一次水平变换单元271和一次垂直变换单元272。

一次水平变换单元271被配置成执行关于一次水平变换的处理,该一次水平变换是水平方向上的一维正交变换。例如,一次水平变换单元271接收预测残差D和变换信息Tinfo(水平变换类型索引TrTypeH等)作为输入。一次水平变换单元271使用与水平变换类型索引TrTypeH对应的变换矩阵对预测残差D执行一次水平变换。一次水平变换单元271将一次水平变换之后的变换系数提供给一次垂直变换单元272。

一次垂直变换单元272被配置成执行关于一次垂直变换的处理,该一次垂直变换是垂直方向上的一维正交变换。例如,一次垂直变换单元272接收一次水平变换之后的变换系数和变换信息Tinfo(垂直变换类型索引TrTypeV等)作为输入。一次垂直变换单元272使用与垂直变换类型索引TrTypeV对应的变换矩阵对一次水平变换之后的变换系数执行一次垂直变换。一次垂直变换单元272将一次垂直变换之后的变换系数(即,一次变换之后的变换系数Coeff_P)提供给二次变换单元262。

二次变换单元262被配置成执行关于二次变换的处理,该二次变换例如是诸如正交变换的预定变换处理。例如,二次变换单元262接收变换系数Coeff_P和变换信息Tinfo作为输入。二次变换单元262基于变换信息Tinfo对变换系数Coeff_P执行二次变换,以导出二次变换之后的变换系数Coeff。二次变换单元262将变换系数Coeff输出至正交变换单元213的外部(将变换系数Coeff提供给量化单元214)。

注意,正交变换单元213可以跳过(省去)由一次变换单元261进行的一次变换和由二次变换单元262进行的二次变换中的一个或二者。此外,可以跳过(省去)由一次水平变换单元271进行的一次水平变换。类似地,可以跳过(省去)由一次垂直变换单元272进行的一次垂直变换。

<一次水平变换单元>

图17是示出图16中的一次水平变换单元271的主要配置示例的框图。如图17所示,一次水平变换单元271包括变换矩阵导出单元281、矩阵计算单元282、缩放单元283和剪切单元284。

变换矩阵导出单元281至少具有执行与用于一次水平变换的变换矩阵T

矩阵计算单元282至少具有用于执行关于矩阵计算的处理所需的配置。例如,矩阵计算单元282接收从变换矩阵导出单元281提供的变换矩阵T

[数学式13]

矩阵计算单元282将中间数据Y1提供给缩放单元283。

缩放单元283以预定移位量S

[数学式14]

Y2[i,j]=Y1[i,j]>>S

缩放单元283将中间数据Y2提供给剪切单元284。

剪切单元284剪切中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且导出输出数据X

[数学式15]

X

剪切单元284将输出数据X

<变换矩阵导出单元>

图18是示出图17中的变换矩阵导出单元281的主要配置示例的框图。如图18所示,变换矩阵导出单元281包括变换矩阵LUT 291、翻转单元292和转置单元293。注意,在图18中,省去了表示数据传送的箭头,但是在变换矩阵导出单元281中,可以在任意处理单元(处理块)之间传送任意数据。

变换矩阵LUT 291是用于保持(存储)对应于水平变换类型索引TrTypeH和变换块的大小N的变换矩阵的查找表。当指定了水平变换类型索引TrTypeH和变换块的大小N时,变换矩阵LUT 291选择并输出与其对应的变换矩阵。在该导出示例的情况下,变换矩阵LUT291将变换矩阵作为基础变换矩阵T

翻转单元292翻转输入的N行和N列的变换矩阵T,并且输出经翻转的变换矩阵T

转置单元293对输入的N行和N列的变换矩阵T进行转置,并且输出经转置的变换矩阵T

<一次垂直变换单元>

图19是示出图16中的一次垂直变换单元272的主要配置示例的框图。如图19所示,一次垂直变换单元272包括变换矩阵导出单元301、矩阵计算单元302、缩放单元303和剪切单元304。

变换矩阵导出单元301至少具有执行与用于一次垂直变换的变换矩阵T

矩阵计算单元302至少具有执行关于矩阵计算的处理所需的配置。例如,矩阵计算单元302使用从变换矩阵导出单元301提供的变换矩阵T

[数学式16]

Y1=T

矩阵计算单元302将中间数据Y1提供给缩放单元303。

缩放单元303以预定移位量S

[数学式17]

Y2[i,j]=Y1[i,j]>>S

缩放单元303将中间数据Y2提供给剪切单元304。

剪切单元304剪切中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且导出输出数据X

[数学式18]

X

剪切单元304将输出数据X

<变换矩阵导出单元>

图20是示出图19中的变换矩阵导出单元301的主要配置示例的框图。如图20所示,变换矩阵导出单元301包括变换矩阵LUT 311、翻转单元312和转置单元313。注意,在图20中,省去了表示数据传送的箭头,但是在变换矩阵导出单元301中,可以在任意处理单元(处理块)之间传送任意数据。

变换矩阵LUT 311是用于保持(存储)与垂直变换类型索引TrTypeV和变换块的大小N对应的变换矩阵的查找表。当指定了垂直变换类型索引TrTypeV和变换块的大小N时,变换矩阵LUT 311选择并输出与其对应的变换矩阵。在该导出示例的情况下,变换矩阵LUT311将变换矩阵作为基础变换矩阵T

翻转单元312翻转输入的N行和N列的变换矩阵T,并且输出经翻转的变换矩阵T

转置单元313对输入的N行和N列的变换矩阵T进行转置,并且输出经转置的变换矩阵T

<图像编码处理的流程>

接下来,将描述由具有以上配置的图像编码装置200执行的每个处理的流程。首先,将参照图21中的流程图描述图像编码处理的流程的示例。

当图像编码处理开始时,在步骤S201中,重排缓冲器211由控制单元201控制,并且将输入的运动图像数据的帧从显示顺序重排成编码顺序。

在步骤S202中,控制单元201对由重排缓冲器211保持的输入图像设置处理单元(执行块划分)。

在步骤S203中,控制单元201确定(设置)由重排缓冲器211保持的输入图像的编码参数。

在步骤S204中,控制单元201执行正交变换控制处理,并且执行关于正交变换的控制的处理。

在步骤S205中,预测单元222执行预测处理,并且生成最佳预测模式的预测图像等。例如,在预测处理中,预测单元222执行帧内预测,以生成最佳帧内预测模式的预测图像等,执行帧间预测以生成最佳帧间预测模式的预测图像等,并且基于成本函数值等从预测图像中选择最佳预测模式。

在步骤S206中,计算单元212计算输入图像与在步骤S205中通过预测处理选择的最佳模式的预测图像之间的差。即,计算单元212生成输入图像与预测图像之间的预测残差D。以此方式获得的预测残差D与原始图像数据相比减了少数据量。因此,与按原样对图像进行编码的情况相比,可以压缩数据量。

在步骤S207中,正交变换单元213根据在步骤S204中执行的控制,对通过步骤S206中的处理而生成的预测残差D执行正交变换处理,以导出变换系数Coeff。

在步骤S208中,量化单元214通过使用由控制单元201等计算的量化参数来量化通过步骤S207中的处理而获得的变换系数Coeff,以导出量化变换系数级别level。

在步骤S209中,逆量化单元217利用与步骤S208中的量化的特性对应的特性,对通过步骤S208中的处理而生成的量化变换系数级别level进行逆量化,以导出变换系数Coeff_IQ。

在步骤S210中,逆正交变换单元218根据在步骤S204中执行的控制,通过与步骤S207中的正交变换处理对应的方法,对通过步骤S209中的处理而获得的变换系数Coeff_IQ进行逆正交变换,以导出预测残差D'。注意,由于逆正交变换处理类似于在解码侧执行的逆正交变换处理(将在下面描述),因此可以将对解码侧的描述(将在下面给出)应用于步骤S210中的逆正交变换处理。

在步骤S211中,计算单元219将通过步骤S205中的预测处理而获得的预测图像与通过步骤S210中的处理导出的预测残差D'相加,以生成局部解码图像。

在步骤S212中,环内滤波器单元220对通过步骤S211中的处理导出的局部解码图像执行环内滤波处理。

在步骤S213中,帧存储器221存储通过步骤S211中的处理导出的局部解码图像以及在步骤S212中经滤波的局部解码图像。

在步骤S214中,编码单元215对通过步骤S208中的处理而获得的量化变换系数级别level进行编码。例如,编码单元215通过算术编码等对作为关于图像的信息的量化变换系数级别level进行编码,以生成编码数据。此外,此时,编码单元215对各种编码参数(报头信息Hinfo、预测模式信息Pinfo和变换信息Tinfo)进行编码。此外,编码单元215从量化变换系数级别level导出残差信息RInfo,并且对残差信息RInfo进行编码。

在步骤S215中,累积缓冲器216累积由此获得的编码数据,并且将编码数据例如作为比特流输出至图像编码装置200的外部。例如,比特流经由传输路径或记录介质被发送至解码侧。此外,速率控制单元223根据需要执行速率控制。

当步骤S215中的处理完成时,图像编码处理完成。

<正交变换处理的流程>

接下来,将参照图22中的流程图描述在图21中的步骤S207中执行的正交变换处理的流程的示例。

当正交变换处理开始时,在步骤S251中,正交变换单元213确定变换跳过标志ts_flag是否为2D_TS(在二维变换跳过的情况下)(例如,1(真))或者变换量化旁路标志transquant_bypass_flag是否为1(真)。在确定变换跳过标志ts_flag为2D_TS(例如,1(真))或者变换量化旁路标志为1(真)的情况下,正交变换处理结束,并且处理返回图21。在该情况下,省去正交变换处理(一次变换和二次变换),并且将输入的预测残差D用作变换系数Coeff。

此外,在图22的步骤S251中,在确定变换跳过标志ts_flag不为2D_TS(不是二维变换跳过)(例如,0(假))并且变换量化旁路标志transquant_bypass_flag为0(假)的情况下,处理进入步骤S252。在该情况下,执行一次变换处理和二次变换处理。

在步骤S252中,一次变换单元261对输入的预测残差D执行一次变换处理,以导出一次变换之后的变换系数Coeff_P。

在步骤S253中,二次变换单元262对变换系数Coeff_P执行二次变换处理,以导出二次变换之后的变换系数Coeff。

当步骤S253中的处理完成时,正交变换处理完成。

<一次变换处理的流程>

接下来,将参照图23中的流程图描述在图22中的步骤S252中执行的一次变换处理的流程的示例。

当一次变换处理开始时,在步骤S261中,一次变换单元261的一次水平变换单元271对预测残差D执行一次水平变换处理,以导出一次水平变换之后的变换系数。

在步骤S262中,一次变换单元261的一次垂直变换单元272对在步骤S261中获得的一次水平变换结果(一次水平变换之后的变换系数)执行一次垂直变换,以导出一次垂直变换之后的变换系数(一次变换之后的变换系数Coeff_P)。

当步骤S262中的处理结束时,一次变换处理结束,并且处理返回图22。

<一次水平变换处理的流程>

将参照图24中的流程图描述在图23中的步骤S261中执行的一次水平变换处理的流程。

当一次水平变换处理开始时,在步骤S271中,一次水平变换单元271的变换矩阵导出单元281导出与水平变换类型索引TrTypeH对应的变换矩阵T

在步骤S272中,矩阵计算单元282使用导出的变换矩阵T

[数学式19]

即,输入数据X

[数学式20]

M=1<<log 2TBWSize

N=1<<log 2TBHSize (22)

返回图24,在步骤S273中,缩放单元283以移位量S

在步骤S274中,剪切单元284剪切通过步骤S273中的处理导出的中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且获得输出数据X

当步骤S274中的处理结束时,一次水平变换处理结束,并且处理返回图19。

<变换矩阵导出处理的流程>

接下来,将参照图25中的流程图描述在图24中的步骤S271中执行的变换矩阵导出处理的流程的示例。

当变换矩阵导出处理开始时,在步骤S281中,变换矩阵导出单元281获得与水平变换类型索引TrTypeH对应的基础变换类型BaseTrType。注意,当该处理被表示为数学表达式时,例如,处理可以被表示为表达式(23)。变换矩阵导出单元281从变换矩阵LUT读取获得的基础变换类型的N行和N列的变换矩阵,并且将变换矩阵设置为基础变换矩阵T

[数学式21]

BaseTrType=LUT_TrTypeIdxToBaseTrType[TrTypeIdxH] (23)

T

此外,变换矩阵导出单元281将与水平变换类型索引TrTypeH对应的值设置为翻转标志FlipFlag,如以下表达式(25)所示。此外,变换矩阵导出单元281将与变换类型标识符TrTypeIdxH对应的值设置为转置标志TransposeFlag,如以下表达式(26)所示。

[数学式22]

FlipFlag=LUT_TrTypeIdxToFlipFlag[TrTypeIdxH] (25)

TransposeFlag=LUT_TrTypeIdxToTransposeFlag[TrTypeIdxH] (26)

在步骤S282中,变换矩阵导出单元281确定翻转标志FlipFlag和转置标志TransposeFlag是否满足由以下表达式(27)表示的条件(ConditionA1)。

[数学式23]

ConditionA1:FlipFlag==F&&TransposeFlag==F (27)

在确定满足上述条件(ConditionA1)的情况下(在翻转标志FlipFlag和转置标志TransposeFlag两者均为假(0)的情况下),处理进入步骤S283。

在步骤S283中,变换矩阵导出单元281将变换矩阵T

[数学式24]

T

当步骤S283中的处理结束时,变换矩阵导出处理结束,并且处理返回图24。此外,在步骤S282中,在确定不满足上述条件(ConditionA1)(翻转标志FlipFlag或转置标志TransposeFlag为真(1))的情况下,处理进入步骤S284。

在步骤S284中,变换矩阵导出单元281确定翻转标志FlipFlag和转置标志TransposeFlag是否满足由以下表达式(29)表示的条件(ConditionA2)。

[数学式25]

CoditionA2:FlipFlog==F&&TransposeFlag==T (29)

在确定满足上述条件(ConditionA2)的情况下(在翻转标志FlipFlag为假(0),而转置标志TransposeFlag为真(1)的情况下),处理进入步骤S285。

在步骤S285中,变换矩阵导出单元281经由转置单元293对基础变换矩阵T

[数学式26]

T

此外,在将处理表示为针对每个元素的运算的情况下,变换矩阵导出单元281将基础变换矩阵T

[数学式27]

T

对于i,j=0,…,N-1 (31)

这里,N行和N列的变换矩阵T

通过以此方式将步骤S285中的处理表达为针对每个元素的运算,可以通过访问简单的二维阵列来实现转置运算。当步骤S285中的处理结束时,变换矩阵导出处理结束,并且处理返回图24。

此外,在步骤S284中,在确定不满足上述条件(ConditionA2)(翻转标志FlipFlag为真(1)或转置标志TransposeFlag为假(0))的情况下,处理进入步骤S286。

在步骤S286中,变换矩阵导出单元281经由翻转单元292翻转基础变换矩阵T

[数学式28]

T

此处,x是表示矩阵乘积的运算符。此外,通过使N×N单位矩阵I左右反转来获得翻转矩阵J(交叉恒等矩阵)。

此外,在将处理表达为针对每个元素的运算的情况下,变换矩阵导出单元281将基础变换矩阵T

[数学式29]

T

对于i,j=0,…,N-1 (33)

此处,N行和N列的变换矩阵T

通过以此方式将步骤S286中的处理表达为针对每个元素的运算,可以通过访问简单的二维阵列来实现转置运算,而不需要基础变换矩阵T

注意,可以在步骤S284中的处理与步骤S286中的处理之间插入下面描述的分支。即,在该步骤中,变换矩阵导出单元281确定翻转标志FlipFlag和转置标志TransposeFlag是否满足由以下表达式(34)表示的条件(ConditionA3)。

[数学式30]

ConditionA3:FlipFlag==T&&TransposeFlag==F (34)

在变换矩阵导出单元281确定满足上述条件(ConditionA3)的情况下(在翻转标志FlipFlag为真(1),而转置标志TransposeFlag为假(0)的情况下),处理进入步骤S286。

此外,在确定不满足上述条件(ConditionA3)(翻转标志FlipFlag为假(0)或转置标志TransposeFlag为真(1))的情况下,变换矩阵导出处理结束,并且处理返回图24。

<一次垂直变换处理的流程>

接下来,将参照图26中的流程图描述在图23中的步骤S262中执行的一次垂直变换处理的流程。

当一次垂直变换处理开始时,在步骤S291中,一次垂直变换单元272的变换矩阵导出单元301执行变换矩阵导出处理,以导出与垂直变换类型索引TrTypeV对应的变换矩阵T

由于变换矩阵导出处理的流程与参照图21中的流程图描述的一次水平变换的情况类似,因此省去其描述。例如,参照图21描述的关于水平方向的描述可以用垂直变换类型索引TrTypeV中的描述来代替,例如,用垂直变换类型索引TrTypeV代替水平变换类型索引TrTypeH,并且用垂直变换的变换矩阵T

在步骤S292中,矩阵计算单元302使用导出的变换矩阵T

[数学式31]

即,在该情况下,变换矩阵T

在步骤S293中,缩放单元303以移位量S

在步骤S294中,剪切单元304剪切通过步骤S293中的处理导出的中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且获得输出数据X

当步骤S294中的处理结束时,一次垂直变换处理结束,并且处理返回图23。

<本技术的应用>

在具有以上配置的图像编码装置200中,控制单元201执行应用了上述本技术的处理。即,控制单元201具有与变换类型导出装置100类似的配置,并且可以执行如第一实施方式至第四实施方式所述的处理。

<方法#1的应用>

例如,控制单元201可以包括具有与图2所示的变换类型导出装置100类似的功能的处理单元(也被称为变换类型导出单元),并且变换类型导出单元可以应用方法#1来导出变换类型。即,变换类型导出单元可以根据当前块的块大小来选择变换类型候选表,并且使用选择的变换类型候选表来导出变换类型。

在该情况下,诸如变换标志Emtflag、模式信息、块大小、颜色标识符、变换索引EmtIdx、一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag的各种类型的信息由控制单元201生成,并且被提供给变换类型导出单元。

此外,由变换类型导出单元的变换类型设置单元104设置的变换类型trTypeH和trTypeV被提供给正交变换单元213。更具体地,变换类型trTypeH被提供给一次变换单元261的一次水平变换单元271,并且变换类型trTypeV被提供给一次垂直变换单元272。更具体地,变换类型trTypeH被提供给变换矩阵导出单元281,并且用于变换矩阵T

在图像编码处理中,在步骤S204(图21)中,执行参照图4中的流程图描述的变换类型设置处理作为正交变换控制处理之一,并且设置变换类型trTypeH和trTypeV。然后,使用通过变换类型设置处理导出的变换类型trTypeH来执行在图24中的步骤S271中执行的变换矩阵T

通过这样做,如第一实施方式所述,图像编码装置200可以提高编码效率。此外,由于基于块大小来选择变换类型候选表,因此图像编码装置200可以更容易地提高编码效率。此外,由于图像编码装置200可以从某个变换矩阵导出另一变换矩阵,从而抑制了变换矩阵LUT 291和变换矩阵LUT 311的大小的增加(减小大小)。此外,由于用于执行矩阵计算的计算电路可以通用,因此可以抑制矩阵计算单元282和矩阵计算单元302的电路规模的增加(可以减小电路规模)。

<方法#2的应用>

例如,控制单元201可以包括具有与图7所示的变换类型导出装置100类似的功能的处理单元(也被称为变换类型导出单元),并且变换类型导出单元可以应用方法#2来导出变换类型。即,变换类型导出单元可以根据RD成本来选择变换类型候选表,并且使用选择的变换类型候选表来导出变换类型。

在该情况下,诸如变换标志Emtflag、模式信息、块大小、颜色标识符、变换索引EmtIdx、一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag的各种类型的信息由控制单元201生成,并且被提供给变换类型导出单元。

此外,与应用方法#1的情况类似,由变换类型导出单元的变换类型设置单元104设置的变换类型trTypeH和trTypeV被提供给正交变换单元213,并且用于变换矩阵的导出。

此外,由变换类型导出单元的变换类型候选表切换标志设置单元122导出的变换类型候选表切换标志useAltTrCandFlag被提供给编码单元215,并且被编码并包括在比特流中。即,变换类型候选表切换标志useAltTrCandFlag被提供给解码侧。

在图像编码处理中,在步骤S204(图21)中,执行参照图8中的流程图描述的变换类型设置处理作为正交变换控制处理之一,并且设置变换类型trTypeH和trTypeV。然后,使用通过变换类型设置处理导出的变换类型trTypeH来执行在图24中的步骤S271中执行的变换矩阵T

通过这样做,如第二实施方式所述,图像编码装置200可以基于RD成本来选择变换类型候选表,并且提高编码效率。此外,在该情况下,变换类型候选表切换标志useAltTrCandFlag被发送至解码侧,并且因此图像编码装置200可以显式地控制变换类型的选择。

<方法#3的应用>

例如,控制单元201可以包括具有与图11所示的变换类型导出装置100类似的功能的处理单元(也被称为变换类型导出单元),并且变换类型导出单元可以应用方法#3来导出变换类型。即,变换类型导出单元可以根据帧间预测模式来选择变换类型候选表,并且使用选择的变换类型候选表来导出变换类型。

在该情况下,诸如变换标志Emtflag、模式信息、块大小、颜色标识符、帧间预测模式、变换索引EmtIdx、一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag的各种类型的信息由控制单元201生成,并且被提供给变换类型导出单元。

此外,与应用方法#1的情况类似,由变换类型导出单元的变换类型设置单元104设置的变换类型trTypeH和trTypeV被提供给正交变换单元213,并且用于变换矩阵的导出。

在图像编码处理中,在步骤S204(图21)中,执行参照图12中的流程图描述的变换类型设置处理作为正交变换控制处理之一,并且设置变换类型trTypeH和trTypeV。然后,使用通过变换类型设置处理导出的变换类型trTypeH来执行在图24中的步骤S271中执行的变换矩阵T

通过这样做,如第三实施方式所述,图像编码装置200可以提高编码效率。此外,由于基于帧间预测模式来选择变换类型候选表,因此图像编码装置200可以更容易地提高编码效率。此外,由于图像编码装置200可以从某个变换矩阵导出另一变换矩阵,从而抑制了变换矩阵LUT291和变换矩阵LUT 311的大小的增加(减小大小)。此外,由于用于执行矩阵计算的计算电路可以通用,因此可以抑制矩阵计算单元282和矩阵计算单元302的电路规模的增加(可以减小电路规模)。

<方法#4的应用>

例如,控制单元201可以包括具有与图13所示的变换类型导出装置100类似的功能的处理单元(也被称为变换类型导出单元),并且变换类型导出单元可以应用方法#4来导出变换类型。即,变换类型导出单元可以根据运动矢量的像素精度来选择变换类型候选表,并且使用选择的变换类型候选表来导出变换类型。

在该情况下,诸如变换标志Emtflag、模式信息、块大小、颜色标识符、运动矢量的像素精度、变换索引EmtIdx、一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag的各种类型的信息由控制单元201生成,并且被提供给变换类型导出单元。

此外,与应用方法#1的情况类似,由变换类型导出单元的变换类型设置单元104设置的变换类型trTypeH和trTypeV被提供给正交变换单元213,并且用于变换矩阵的导出。

在图像编码处理中,在步骤S204(图21)中,执行参照图14中的流程图描述的变换类型设置处理作为正交变换控制处理之一,并且设置变换类型trTypeH和trTypeV。然后,使用通过变换类型设置处理导出的变换类型trTypeH来执行在图24中的步骤S271中执行的变换矩阵T

通过这样做,如第四实施方式所述,图像编码装置200可以提高编码效率。此外,由于基于运动矢量的像素精度来选择变换类型候选表,因此图像编码装置200可以更容易地提高编码效率。此外,由于图像编码装置200可以从某个变换矩阵导出另一变换矩阵,从而抑制了变换矩阵LUT 291和变换矩阵LUT 311的大小的增加(减小大小)。此外,由于可以通用用于执行矩阵计算的计算电路,因此可以抑制矩阵计算单元282和矩阵计算单元302的电路规模的增加(可以减小电路规模)。

<9.第六实施方式>

<图像解码装置>

此外,本技术可以用于使用逆正交变换来对图像的编码数据进行解码的图像解码装置。在本实施方式中,将描述将本技术应用于这样的图像解码装置的情况。

图27是示出作为应用了本技术的图像处理装置的一个模式的图像解码装置的配置的示例的框图。图27中示出的图像解码装置400是对通过对运动图像进行编码而获得的编码数据进行解码的装置。例如,图像解码装置400实现非专利文献1至非专利文献4中描述的技术,并且对编码数据进行解码,该编码数据是通过符合前述文献中的任何方法中描述的标准的方法来编码的运动图像的编码图像数据。例如,图像解码装置400对由上述图像编码装置200生成的编码数据(比特流)进行解码。

注意,图27示出了主要处理单元、数据流等,并且图27中示出的那些不一定是全部。即,在图像解码装置400中,可以存在未示为图27中的块的处理单元,或者存在未示为图27中的箭头等的处理或数据流。这在用于描述图像解码装置400中的处理单元等的其他附图中是类似的。

在图27中,图像解码装置400包括累积缓冲器411、解码单元412、逆量化单元413、逆正交变换单元414、计算单元415、环内滤波器单元416、重排缓冲器417、帧存储器418和预测单元419。注意,预测单元419包括帧内预测单元和帧间预测单元(未示出)。图像解码装置400是通过对编码数据(比特流)进行解码来生成运动图像数据的装置。

<累积缓冲器>

累积缓冲器411获取输入至图像解码装置400的比特流,并且保持(存储)该比特流。例如,累积缓冲器411在预定定时处或者在满足预定条件的情况下将累积的比特流提供给解码单元412。

<解码单元>

解码单元412执行关于图像解码的处理。例如,解码单元412接收从累积缓冲器411提供的比特流作为输入,并且根据语法表的定义对来自位串的每个语法元素的语法值执行可变长度解码,以导出参数。

从语法元素和语法元素的语法值导出的参数例如包括诸如报头信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、残差信息Rinfo和滤波器信息Finfo的信息。即,解码单元412从比特流解析(分析和获取)这样的信息。这些信息将在下面描述。

<报头信息Hinfo>

报头信息Hinfo例如包括诸如视频参数集(VPS)/序列参数集(SPS)/图片参数集(PPS)/切片报头(SH)的报头信息。报头信息Hinfo例如包括定义以下各项的信息:图像大小(宽度PicWidth和高度PicHeight)、位深度(亮度bitDepthY和色度bitDepthC)、色度阵列类型ChromaArrayType、CU大小最大值MaxCUSize/最小值MinCUSize、四叉树划分的最大深度MaxQTDepth/最小深度MinQTDepth、二叉树划分的最大深度MaxBTDepth/最小深度MinBTDepth、变换跳过块的最大值MaxTSSize(也被称为最大变换跳过块大小)、每个编码工具的开/关标志(也被称为有效标志)等。

例如,报头信息Hinfo中包括的编码工具的开/关标志的示例包括与下面的变换和量化处理有关的开/关标志。注意,编码工具的开/关标志也可以被解释为指示与编码工具有关的语法是否存在于编码数据中的标志。此外,在开/关标志的值为1(真)的情况下,该值指示编码工具可用。在开/关标志的值为0(假)的情况下,该值指示编码工具不可用。注意,可以调换对标志值的解释。

分量间预测使能标志(ccp_enabled_flag)是指示分量间预测(跨分量预测(CCP))是否可用的标志信息。例如,在标志信息为“1”(真)的情况下,标志信息指示分量间预测可用。在标志信息为“0”(假)的情况下,标志信息指示分量间预测不可用。

注意,该CCP也被称为分量间线性预测(CCLM或CCLMP)。

<预测模式信息Pinfo>

预测模式信息Pinfo例如包括诸如要处理的预测块(PB)的大小信息PBSize(预测块大小)、帧内预测模式信息IPinfo和运动预测信息MVinfo的信息。

帧内预测模式信息IPinfo例如包括JCTVC-W1005的7.3.8.5编码单元语法(CodingUnit syntax)中的prev_intra_luma_pred_flag、mpm_idx和rem_intra_pred_mode、从该语法导出的亮度帧内预测模式IntraPredModeY等。

此外,帧内预测模式信息IPinfo例如包括分量间预测标志(ccp_flag(cclmp_flag))、多类线性预测模式标志(mclm_flag)、色度样本位置类型标识符(chroma_sample_loc_type_idx)、色度MPM标识符(chroma_mpm_idx)、从这些语法导出的亮度帧内预测模式(IntraPredModeC)等。

分量间预测标志(ccp_flag(cclmp_flag))是指示是否应用分量间线性预测的标志信息。例如,ccp_flag==1指示应用了分量间预测,并且ccp_flag==0指示没有应用分量间预测。

多类线性预测模式标志(mclm_flag)是关于线性预测模式的信息(线性预测模式信息)。更具体地,多类线性预测模式标志(mclm_flag)是指示是否设置多类线性预测模式的标志信息。例如,“0”指示一类模式(单类别模式)(例如,CCLMP),“1”指示二类模式(多类别模式)(例如,MCLMP)。

色度样本位置类型标识符(chroma_sample_loc_type_idx)是用于标识色度分量的像素位置的类型(也被称为色度样本位置类型)的标识符。例如,在作为关于颜色格式的信息的色度阵列类型(ChromaArrayType)指示420格式的情况下,色度样本位置类型标识符按照以下表达式(36)被分配。

[数学式32]

chroma_sample_loc_type_idx==0:Type2

chroma_sample_loc_type_idx==1:Type3

chroma_sample_loc_type_idc==2:Type0

chroma_sample_loc_type_idc==3:Type1 (36)

注意,色度样本位置类型标识符(chroma_sample_loc_type_idx)作为(被存储在)关于色度分量的像素位置的信息(chroma_sample_loc_info())被发送。

色度MPM标识符(chroma_mpm_idx)是指示色度帧内预测模式候选列表(intraPredModeCandListC)中的哪个预测模式候选将被指定为色度帧内预测模式的标识符。

运动预测信息MVinfo例如包括诸如merge_idx、merge_flag、inter_pred_idc、ref_idx_LX、mvp_lX_flag、X={0,1}、mvd等的信息(例如,参见JCTVC-W1005的7.3.8.6预测单元语法)。

当然,预测模式信息Pinfo中包括的信息是任意的,并且可以包括除了以上信息之外的信息。

<变换信息Tinfo>

变换信息Tinfo例如包括以下信息。当然,变换信息Tinfo中包括的信息是任意的,并且可以包括除了以上信息之外的信息:

要处理的变换块的宽度TBWSize和高度TBHSize(或可以是以2为底的TBWSize和TBHSize的对数值log2TBWSize和log2TBHSize);

变换跳过标志(ts_flag):指示是否跳过(逆)一次变换和(逆)二次变换的标志;

扫描标识符(scanIdx);

量化参数(qp);以及

量化矩阵(scaling_matrix(例如,JCTVC-W1005的7.3.4缩放列表数据语法))。

<残差信息Rinfo>

残差信息Rinfo(例如,参见JCTVC-W1005的7.3.8.11残差编码语法)例如包括以下语法:

cbf(coded_block_flag):残差数据存在/不存在标志;

last_sig_coeff_x_pos:最后的非零系数X坐标;

last_sig_coeff_y_pos:最后的非零系数Y坐标;

coded_sub_block_flag:子块非零系数存在/不存在标志;

sig_coeff_flag:非零系数存在/不存在标志;

gr1_flag:指示非零系数的级别是否大于1的标志(也被称为GR1标志);

gr2_flag:指示非零系数的级别是否大于2的标志(也被称为GR2标志);

sign_flag:指示非零系数的符号的代码(也被称为符号代码);

coeff_abs_level_remaining:非零系数的残差级别(也被称为非零系数残差级别)等。

当然,残差信息Rinfo中包括的信息是任意的,并且可以包括除了以上信息之外的信息。

<滤波器信息Finfo>

滤波器信息Finfo例如包括关于以下滤波处理的控制信息:

关于去块滤波器(DBF)的控制信息;

关于像素自适应偏移(SAO)的控制信息;

关于自适应环路滤波器(ALF)的控制信息;以及

关于其他线性滤波器和非线性滤波器的控制信息。

更具体地,滤波器信息Finfo例如包括应用了每个滤波器的图片、用于指定图片中的区域的信息、每个CU的滤波器开/关控制信息、切片和图块边界的滤波器开/关控制信息等。当然,滤波器信息Finfo中包括的信息是任意的,并且可以包括除了以上信息之外的信息。

返回解码单元412的描述。解码单元412参考残差信息Rinfo,并且导出每个变换块中的每个系数位置处的量化变换系数级别。解码单元412将量化变换系数级别level提供给逆量化单元413。

此外,解码单元412将经解析的报头信息Hinfo、预测模式信息Pinfo、量化变换系数级别level、变换信息Tinfo和滤波器信息Finfo提供给每个块。如下面给出具体描述。

报头信息Hinfo被提供给逆量化单元413、逆正交变换单元414、预测单元419和环内滤波器单元416。

预测模式信息Pinfo被提供给逆量化单元413和预测单元419。

变换信息Tinfo被提供给逆量化单元413和逆正交变换单元414。

滤波器信息Finfo被提供给环内滤波器单元416。

当然,以上示例是示例,并且本实施方式不限于该示例。例如,可以将每个编码参数提供给任意处理单元。此外,可以将其他信息提供给任意处理单元。

<逆正交变换的控制>

解码单元412还解码并导出关于逆正交变换的控制的信息。解码单元412将由此获得的信息提供给逆正交变换单元414,以控制由逆正交变换单元414执行的逆正交变换。

<逆量化单元>

逆量化单元413至少具有执行关于逆量化的处理所需的配置。例如,逆量化单元413接收从解码单元412提供的变换信息Tinfo和量化变换系数级别level作为输入,并且基于变换信息Tinfo对量化变换系数级别level的值进行缩放(逆量化),以导出逆量化之后的变换系数Coeff_IQ。

注意,作为由量化单元214进行的量化的逆处理来执行该逆量化。此外,逆量化是与由逆量化单元217执行的逆量化类似的处理。即,逆量化单元217执行与逆量化单元413类似的处理(逆量化)。

逆量化单元413将导出的变换系数Coeff_IQ提供给逆正交变换单元414。

<逆正交变换单元>

逆正交变换单元414执行关于逆正交变换的处理。例如,逆正交变换单元414接收从逆量化单元413提供的变换系数Coeff_IQ以及从解码单元412提供的变换信息Tinfo作为输入,并且基于变换信息Tinfo对变换系数Coeff_IQ执行逆正交变换处理,以导出预测残差D'。

注意,作为由正交变换单元213进行的正交变换的逆处理而执行该逆正交变换。此外,逆正交变换是与由逆正交变换单元218执行的逆正交变换类似的处理。即,逆正交变换单元218执行与逆正交变换单元414类似的处理(逆正交变换)。

逆正交变换单元414将导出的预测残差D'提供给计算单元415。

<计算单元>

计算单元415执行与关于图像的信息的相加有关的处理。例如,计算单元415接收从逆正交变换单元414提供的预测残差D'以及从预测单元419提供的预测图像P作为输入。计算单元415将预测残差D'和与预测残差D'对应的预测图像P(预测信号)相加,以导出局部解码图像R

[数学式33]

R

计算单元415将导出的局部解码图像R

<环内滤波器单元>

环内滤波器单元416执行关于环内滤波处理的处理。例如,环内滤波器单元416接收从计算单元415提供的局部解码图像R

环内滤波器单元416基于滤波器信息Finfo适当地对局部解码图像R

例如,如非专利文献1中所描述的那样,环内滤波器单元416按双边滤波器、去块滤波器(DBF)、自适应偏移滤波器(采样自适应偏移(SAO))和自适应环路滤波器(自适应环路滤波器(ALF))的顺序应用这四个环内滤波器。注意,应用哪个滤波器以及以哪个顺序应用滤波器是任意的,并且可以适当地选择。

环内滤波器单元416执行与编码侧(例如,由图像编码装置200的环内滤波器单元220)执行的滤波处理对应的滤波处理。当然,由环内滤波器单元416执行的滤波处理是任意的,并且不限于以上示例。例如,环内滤波器单元416可以应用维纳(Wiener)滤波器等。

环内滤波器单元416将经滤波的局部解码图像R

<重排缓冲器>

重排缓冲器417接收从环内滤波器单元416提供的局部解码图像R

<帧存储器>

帧存储器418执行与关于图像的数据的存储有关的处理。例如,帧存储器418接收从计算单元415提供的局部解码图像R

此外,帧存储器418接收从环内滤波器单元416提供的经环内滤波的局部解码图像R

注意,帧存储器418可以存储与解码图像的生成有关的报头信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、滤波器信息Finfo等。

<预测单元>

预测单元419执行关于预测图像的生成的处理。例如,预测单元419接收从解码单元412提供的预测模式信息Pinfo作为输入,并且通过由预测模式信息Pinfo指定的预测方法执行预测,以导出预测图像P。在导出时,预测单元419使用存储在帧存储器418中的滤波之前或滤波之后的解码图像R(或其一部分)作为参考图像,解码图像R由预测模式信息Pinfo指定。预测单元419将导出的预测图像P提供给计算单元415。

<逆正交变换单元的细节>

图28是示出图27中的逆正交变换单元414的主要配置示例的框图。如图28所示,逆正交变换单元414包括逆二次变换单元461和逆一次变换单元462。

逆二次变换单元461至少具有执行关于逆二次变换的处理所需的配置,该逆二次变换是在编码侧(例如,由图像编码装置200的二次变换单元262)执行的二次变换的逆处理。例如,逆二次变换单元461接收从逆量化单元413提供的变换系数Coeff_IQ和变换信息Tinfo作为输入。

逆二次变换单元461基于变换信息Tinfo对变换系数Coeff_IQ执行逆二次变换,以导出逆二次变换之后的变换系数Coeff_IS。逆二次变换单元461将逆二次变换系数Coeff_IS提供给逆一次变换单元462。

逆一次变换单元462执行关于逆一次变换的处理,该逆一次变换是在编码侧(例如,由图像编码装置200的一次变换单元261)执行的一次变换的逆处理。例如,逆一次变换单元462接收逆二次变换之后的变换系数Coeff_IS以及变换类型索引(垂直变换类型索引TrTypeV和水平变换类型索引TrTypeH)作为输入。

逆一次变换单元462使用与水平变换类型索引TrTypeH对应的变换矩阵以及与垂直变换类型索引TrTypeV对应的变换矩阵,对逆二次变换之后的变换系数Coeff_IS执行逆一次变换,以导出逆一次变换之后的变换系数(即,预测残差D')。逆一次变换单元462将导出的预测残差D'提供给计算单元415。

如图28所示,逆一次变换单元462包括逆一次垂直变换单元471和逆一次水平变换单元472。

逆一次垂直变换单元471被配置成执行关于逆一次垂直变换的处理,该逆一次垂直变换是垂直方向上的逆一维正交变换。例如,逆一次垂直变换单元471接收变换系数Coeff_IS和变换信息Tinfo(垂直变换类型索引TrTypeV等)作为输入。逆一次垂直变换单元471使用与垂直变换类型索引TrTypeV对应的变换矩阵,对变换系数Coeff_IS执行逆一次垂直变换。逆一次垂直变换单元471将逆一次垂直变换之后的变换系数提供给逆一次水平变换单元472。

逆一次水平变换单元472被配置成执行关于一次水平变换的处理,该一次水平变换是水平方向上的一维正交变换。例如,逆一次水平变换单元472接收逆一次垂直变换之后的变换系数和变换信息Tinfo(水平变换类型索引TrTypeH等)作为输入。逆一次水平变换单元472使用与水平变换类型索引TrTypeH对应的变换矩阵,对逆一次垂直变换之后的变换系数执行逆一次水平变换。逆一次水平变换单元472将逆一次水平变换之后的变换系数(即,预测残差D')提供给计算单元415。

注意,逆正交变换单元414可以跳过(省去)由逆二次变换单元461进行的逆二次变换和由逆一次变换单元462进行的逆一次变换中的一个或两个。此外,可以跳过(省去)由逆一次垂直变换单元471进行的逆一次垂直逆变换。类似地,可以跳过(省去)由逆一次水平变换单元472进行的逆一次水平变换。

<逆一次垂直变换单元>

图29是示出图28中的逆一次垂直变换单元471的主要配置示例的框图。如图29所示,逆一次垂直变换单元471包括变换矩阵导出单元481、矩阵计算单元482、缩放单元483和剪切单元484。

变换矩阵导出单元481接收垂直变换类型索引TrTypeV以及关于变换块的大小的信息作为输入,并且导出用于逆一次垂直变换的具有与变换块相同的大小的变换矩阵T

矩阵计算单元482使用从变换矩阵导出单元481提供的变换矩阵T

[数学式34]

Y1=T

矩阵计算单元482将中间数据Y1提供给缩放单元483。

缩放单元483以预定移位量S

[数学式35]

Y2[i,j]=Y1[i,j]>>S

缩放单元483将中间数据Y2提供给剪切单元484。

剪切单元484剪切中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且导出输出数据X

剪切单元484将输出数据X

<变换矩阵导出单元>

图30是示出图29中的变换矩阵导出单元481的主要配置示例的框图。如图30所示,变换矩阵导出单元481包括变换矩阵LUT 491、翻转单元492和转置单元493。注意,在图30中,省去了表示数据传送的箭头,但是在变换矩阵导出单元481中,可以在任意处理单元(处理块)之间传送任意数据。

变换矩阵LUT 491是用于保持(存储)与垂直变换类型索引TrTypeV和变换块的大小N对应的变换矩阵的查找表。当指定了垂直变换类型索引TrTypeV和变换块的大小N时,变换矩阵LUT 491选择并输出与其对应的变换矩阵。在该导出示例的情况下,变换矩阵LUT491将变换矩阵作为基础变换矩阵T

翻转单元492翻转输入的N行和N列的变换矩阵T,并且输出翻转的变换矩阵T

转置单元493对输入的N行和N列的变换矩阵T进行转置,并且输出转置的变换矩阵T

<逆一次水平变换单元>

图31是示出图28中的逆一次水平变换单元472的主要配置示例的框图。如图31所示,逆一次水平变换单元472包括变换矩阵导出单元501、矩阵计算单元502、缩放单元503和剪切单元504。

变换矩阵导出单元501接收水平变换类型索引TrTypeH以及关于变换块的大小的信息作为输入,并且导出用于水平变换的具有与变换块相同的大小的变换矩阵T

矩阵计算单元502使用从变换矩阵导出单元501提供的变换矩阵T

[数学式36]

Y1=X

矩阵计算单元502将中间数据Y1提供给缩放单元503。

缩放单元503以预定移位量S

[数学式37]

Y2[i,j]=Y1[i,j]>>S

缩放单元503将中间数据Y2提供给剪切单元504。

剪切单元504剪切中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且导出输出数据X

剪切单元504将输出数据X

<变换矩阵导出单元>

图32是示出图31中的变换矩阵导出单元501的主要配置示例的框图。如图32所示,变换矩阵导出单元501包括变换矩阵LUT 511、翻转单元512和转置单元513。注意,在图32中,省去了表示数据传送的箭头,但是在变换矩阵导出单元501中,可以在任意处理单元(处理块)之间传送任意数据。

变换矩阵LUT 511是用于保持(存储)与水平变换类型索引TrTypeIdxH和变换块的大小N对应的变换矩阵的查找表。当指定了水平变换类型索引TrTypeIdxH和变换块的大小N时,变换矩阵LUT 511选择并输出与其对应的变换矩阵。在该导出示例的情况下,变换矩阵LUT 511将变换矩阵作为基础变换矩阵T

翻转单元512翻转输入的N行和N列的变换矩阵T,并且输出翻转的变换矩阵T

转置单元513对输入的N行和N列的变换矩阵T进行转置,并且输出转置的变换矩阵T

<图像解码处理的流程>

接下来,将描述由具有以上配置的图像解码装置400执行的每个处理的流程。首先,将参照图33中的流程图描述图像编码处理的流程的示例。

当图像解码处理开始时,在步骤S401中,累积缓冲器411获取并保持(累积)从图像解码装置400的外部提供的编码数据(比特流)。

在步骤S402中,解码单元412对编码数据(比特流)进行解码,以获得量化变换系数级别level。此外,解码单元412通过该解码从编码数据(比特流)解析(分析和获取)各种编码参数。

在步骤S403中,解码单元412执行根据编码参数控制逆正交变换的类型的逆正交变换控制处理。

在步骤S404中,逆量化单元413对通过步骤S402中的处理而获得的量化变换系数级别level执行作为在编码侧执行的量化的逆处理的逆量化,以获得变换系数Coeff_IQ。

在步骤S405中,逆正交变换单元414根据步骤S403中的控制,对通过步骤S404中的处理而获得的变换系数Coeff_IQ执行作为在编码侧执行的正交变换处理的逆处理的逆正交变换处理,以获得预测残差D'。

在步骤S406中,预测单元419基于在步骤S402中解析的信息,通过在编码侧指定的预测方法来执行预测处理,并且例如通过参考存储在帧存储器418中的参考图像来生成预测图像P。

在步骤S407中,计算单元415将在步骤S405中获得的预测残差D'与在步骤S406中获得的预测图像P相加,以导出局部解码图像R

在步骤S408中,环内滤波器单元416对通过步骤S407中的处理而获得的局部解码图像R

在步骤S409中,重排缓冲器417使用通过步骤S408中的处理而获得的经滤波的局部解码图像R

此外,在步骤S410中,帧存储器418存储通过步骤S407中的处理而获得的局部解码图像R

当步骤S410中的处理完成时,图像解码处理完成。

<逆正交变换处理的流程>

接下来,将参照图34的流程图描述在图33的步骤S405中执行的逆正交变换处理的流程的示例。当逆正交变换处理开始时,在步骤S441中,逆正交变换单元414确定变换跳过标志ts_flag是否为2D_TS(在二维变换跳过的模式下)(例如,1(真))或者变换量化旁路标志transquant_bypass_flag是否为1(真)。在确定变换跳过标识符ts_idx为2D_TS或者变换量化旁路标志为1(真)的情况下,逆正交变换处理结束,并且处理返回图33。在该情况下,省去逆正交变换处理(逆一次变换和逆二次变换),并且采用变换系数Coeff_IQ作为预测残差D'。

此外,在步骤S441中,在确定变换跳过标识符ts_idx不为2D_TS(除了二维变换跳过之外的模式)(例如,0(假)),并且变换量化旁路标志为0(假)的情况下,处理进入步骤S442。在该情况下,执行逆二次变换处理和逆一次变换处理。

在步骤S442中,逆二次变换单元461基于二次变换标识符st_idx对变换系数Coeff_IQ执行逆二次变换处理,以导出变换系数Coeff_IS,并且输出变换系数Coeff_IS。

在步骤S443中,逆一次变换单元462对变换系数Coeff_IS执行逆一次变换处理,以导出逆一次变换之后的变换系数(预测残差D')。

当步骤S443中的处理结束时,逆正交变换处理结束,并且处理返回图30。

<逆一次变换处理的流程>

接下来,将参照图35中的流程图描述在图34中的步骤S443中执行的逆一次变换处理的流程的示例。

当逆一次变换处理开始时,在步骤S451中,逆一次变换单元462的逆一次垂直变换单元471对逆二次变换之后的变换系数Coeff_IS执行逆一次垂直变换,以导出逆一次垂直变换之后的变换系数。

在步骤S452中,逆一次水平变换单元472对逆一次垂直变换之后的变换系数执行逆一次水平变换处理,以导出逆一次水平变换之后的变换系数(即,预测残差D')。

当步骤S452中的处理结束时,逆一次变换处理结束,并且处理返回图32。

<逆一次垂直变换处理的流程>

接下来,将参照图36中的流程图描述在图35中的步骤S451中执行的逆一次垂直变换处理的流程的示例。

当逆一次垂直变换处理开始时,在步骤S461中,逆一次垂直变换单元471的变换矩阵导出单元481执行变换矩阵导出处理,以导出与垂直变换类型索引TrTypeV对应的变换矩阵T

通过与参照图25中的流程图描述的一次水平变换的情况类似的流程来执行该情况下的变换矩阵导出处理。因此,省去描述。例如,通过用垂直变换类型索引TrTypeV代替水平变换类型索引TrTypeH,并且用逆一次垂直变换的变换矩阵T

在步骤S462中,矩阵计算单元482使用导出的变换矩阵T

在步骤S463中,缩放单元483以移位量S

在步骤S464中,剪切单元484剪切通过步骤S463中的处理导出的中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且获得输出数据X

当步骤S464中的处理结束时,逆一次垂直变换处理结束,并且处理返回图35。

<逆一次水平变换处理的流程>

接下来,将参照图37中的流程图描述在图35的步骤S452中执行的逆一次水平变换处理的流程。

当逆一次水平变换处理开始时,在步骤S471中,逆一次水平变换单元472的变换矩阵导出单元501执行变换矩阵导出处理,以导出与水平变换类型索引TrTypeH对应的变换矩阵T

通过与参照图25中的流程图描述的一次水平变换的情况类似的流程来执行该情况下的变换矩阵导出处理。因此,省去描述。例如,可以通过用逆一次水平变换代替一次水平变换等,将参照图25进行的描述应用为对该情况的变换矩阵导出处理的描述。

在步骤S472中,矩阵计算单元502使用导出的变换矩阵T

在步骤S473中,缩放单元503以移位量S

在步骤S474中,剪切单元504剪切通过步骤S473中的处理导出的中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且获得输出数据X

当步骤S474中的处理结束时,逆一次水平变换处理结束,并且处理返回图35。

<本技术的应用>

在具有以上配置的图像解码装置400中,解码单元412执行应用了上述本技术的处理。即,解码单元412具有与变换类型导出装置100类似的配置,并且可以执行如第一实施方式至第四实施方式所述的处理。

<方法#1的应用>

例如,解码单元412可以包括具有与图2所示的变换类型导出装置100类似的功能的处理单元(也被称为变换类型导出单元),并且变换类型导出单元可以应用方法#1来导出变换类型。即,变换类型导出单元可以根据当前块的块大小来选择变换类型候选表,并且使用所选择的变换类型候选表来导出变换类型。

在该情况下,诸如变换标志Emtflag、模式信息、块大小、颜色标识符、变换索引EmtIdx、一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag的各种类型的信息被包括在比特流中,并且被发送。图像解码装置400获取这样的比特流。解码单元412对比特流进行解码,以提取各种类型的信息,并且将各种类型的信息提供给变换类型导出单元。

此外,由变换类型导出单元的变换类型设置单元104设置的变换类型trTypeH和trTypeV被提供给逆正交变换单元414。更具体地,变换类型trTypeV被提供给逆一次变换单元462的逆一次垂直变换单元471,并且变换类型trTypeH被提供给逆一次水平变换单元472。更具体地,变换类型trTypeV被提供给变换矩阵导出单元481,并且用于变换矩阵T

在图像解码处理中,在步骤S403(图33)中,执行参照图4中的流程图描述的变换类型设置处理作为逆正交变换控制处理之一,并且设置变换类型trTypeH和trTypeV。然后,使用通过变换类型设置处理导出的变换类型trTypeV来执行在图36中的步骤S461中执行的变换矩阵T

通过这样做,如第一实施方式所述,图像解码装置400可以提高编码效率。此外,由于基于块大小选择变换类型候选表,因此图像解码装置400可以更容易地提高编码效率。此外,由于图像解码装置400可以从某个变换矩阵导出另一变换矩阵,从而抑制了变换矩阵LUT 491和变换矩阵LUT 511的大小的增加(减小大小)。此外,由于用于执行矩阵计算的计算电路可以通用,因此可以抑制矩阵计算单元482和矩阵计算单元502的电路规模的增加(可以减小电路规模)。

<方法#2的应用>

例如,解码单元412可以包括具有与图9所示的变换类型导出装置100类似的功能的处理单元(也被称为变换类型导出单元),并且变换类型导出单元可以应用方法#2来导出变换类型。即,变换类型导出单元可以基于变换类型候选表切换标志useAltTrCandFlag来选择变换类型候选表,并且使用所选择的变换类型候选表来导出变换类型。

在该情况下,诸如变换标志Emtflag、模式信息、块大小、颜色标识符、变换类型候选表切换标志useAltTrCandFlag、变换索引EmtIdx、一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag的各种类型的信息被包括在比特流中,并且被发送。图像解码装置400获取这样的比特流。解码单元412对比特流进行解码以提取各种类型的信息,并且将各种类型的信息提供给变换类型导出单元。

此外,与应用方法#1的情况类似,由变换类型导出单元的变换类型设置单元104设置的变换类型trTypeH和trTypeV被提供给逆正交变换单元414,并且用于变换矩阵的导出。

在图像解码处理中,在步骤S403(图33)中,执行参照图10中的流程图描述的变换类型设置处理作为逆正交变换控制处理之一,并且设置变换类型trTypeH和trTypeV。然后,使用通过变换类型设置处理导出的变换类型trTypeV来执行在图36中的步骤S461中执行的变换矩阵T

通过这样做,如第二实施方式所述,图像解码装置400可以基于从编码侧发送的变换类型候选表切换标志useAltTrCandFlag来选择变换类型候选表,并且提高编码效率。此外,由于基于变换类型候选表切换标志useAltTrCandFlag来选择变换类型候选表,因此图像解码装置400可以更容易地提高编码效率。

<方法#3的应用>

例如,解码单元412可以包括具有与图11所示的变换类型导出装置100类似的功能的处理单元(也被称为变换类型导出单元),并且变换类型导出单元可以应用方法#3来导出变换类型。即,变换类型导出单元可以根据帧间预测模式来选择变换类型候选表,并且使用选择的变换类型候选表来导出变换类型。

在该情况下,诸如变换标志Emtflag、模式信息、块大小、颜色标识符、帧间预测模式、变换索引EmtIdx、一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag的各种类型的信息被包括在比特流中,并且被发送。图像解码装置400获取这样的比特流。解码单元412对比特流进行解码,以提取各种类型的信息,并且将各种类型的信息提供给变换类型导出单元。

此外,与应用方法#1的情况类似,由变换类型导出单元的变换类型设置单元104设置的变换类型trTypeH和trTypeV被提供给逆正交变换单元414,并且用于变换矩阵的导出。

在图像解码处理中,在步骤S403(图33)中,执行参照图12中的流程图描述的变换类型设置处理作为正交变换控制处理之一,并且设置变换类型trTypeH和trTypeV。然后,使用通过变换类型设置处理导出的变换类型trTypeH来执行在图36中的步骤S461中执行的变换矩阵T

通过这样做,如第三实施方式所述,图像解码装置400可以提高编码效率。此外,由于基于帧间预测模式选择变换类型候选表,因此图像解码装置400可以更容易地提高编码效率。此外,由于图像解码装置400可以从某个变换矩阵导出另一变换矩阵,从而抑制了变换矩阵LUT 491和变换矩阵LUT 511的大小的增加(减小大小)。此外,由于用于执行矩阵计算的计算电路可以通用,因此可以抑制矩阵计算单元482和矩阵计算单元502的电路规模的增加(可以减小电路规模)。

<方法#4的应用>

例如,解码单元412可以包括具有与图13所示的变换类型导出装置100类似的功能的处理单元(也被称为变换类型导出单元),并且变换类型导出单元可以应用方法#4来导出变换类型。即,变换类型导出单元可以根据运动矢量的像素精度来选择变换类型候选表,并且使用选择的变换类型候选表来导出变换类型。

在该情况下,诸如变换标志Emtflag、模式信息、块大小、颜色标识符、运动矢量的像素精度、变换索引EmtIdx、一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag的各种类型的信息被包括在比特流中,并且被发送。图像解码装置400获取这样的比特流。解码单元412对比特流进行解码,以提取各种类型的信息,并且将各种类型的信息提供给变换类型导出单元。

此外,与应用方法#1的情况类似,由变换类型导出单元的变换类型设置单元104设置的变换类型trTypeH和trTypeV被提供给逆正交变换单元414,并且用于变换矩阵的导出。

在图像解码处理中,在步骤S403(图33)中,执行参照图14中的流程图描述的变换类型设置处理作为正交变换控制处理之一,并且设置变换类型trTypeH和trTypeV。然后,使用通过变换类型设置处理导出的变换类型trTypeH来执行在图36中的步骤S461中执行的变换矩阵T

通过这样做,如第四实施方式所述,图像解码装置400可以提高编码效率。此外,由于基于运动矢量的像素精度选择变换类型候选表,因此图像解码装置400可以更容易地提高编码效率。此外,由于图像解码装置400可以从某个变换矩阵导出另一变换矩阵,从而抑制变换矩阵LUT 491和变换矩阵LUT 511的大小的增加(减小大小)。此外,由于用于执行矩阵计算的计算电路可以通用,因此可以抑制矩阵计算单元482和矩阵计算单元502的电路规模的增加(可以减小电路规模)。

<10.附录>

<计算机>

上述一系列处理可以由硬件或由软件执行。在由软件执行这一系列处理的情况下,在计算机中安装配置该软件的程序。这里,计算机包括并入专用硬件中的计算机、能够通过安装各种程序来执行各种功能的计算机例如通用个人计算机等。

图38是示出了通过程序执行上述一系列处理的计算机的硬件的配置示例的框图。

在图38中示出的计算机800中,中央处理单元(CPU)801、只读存储器(ROM)802和随机存取存储器(RAM)803通过总线804相互连接。

输入/输出接口810也连接至总线804。输入单元811、输出单元812、存储单元813、通信单元814和驱动器815连接至输入/输出接口810。

输入单元811包括例如键盘、鼠标、麦克风、触摸板、输入终端等。输出单元812包括例如显示器、扬声器、输出终端等。存储单元813包括例如硬盘、RAM盘和非易失性存储器等。通信单元814包括例如网络接口。驱动器815驱动诸如磁盘、光盘、磁光盘或半导体存储器的可移除介质821。

在如上所述那样地配置的计算机中,CPU 801例如经由输入/输出接口810和总线804将存储在存储单元813中的程序加载到RAM 803中,并且执行该程序,使得执行上述一系列处理。此外,RAM 803适当地存储CPU 801执行各种类型的处理所需的数据等。

由计算机(CPU 801)执行的程序可以被记录在例如作为封装介质等的可移除介质821上,并且被应用。在该情况下,通过将可移除介质821附接至驱动器815,可以经由输入/输出接口810将程序安装至存储单元813。

此外,可以经由诸如局域网、因特网或数字卫星广播的有线或无线传输介质来提供该程序。在该情况下,程序可以由通信单元814接收并且被安装在存储单元813中。

除了以上方法之外,可以预先将程序安装在ROM 802或存储单元813中。

<信息和处理的单元>

其中设置了上述各种类型的信息的数据单元以及要由各种类型的处理来处理的数据单元是任意的,并且不限于上述示例。例如,可以针对每个变换单元(TU)、变换块(TB)、预测单元(PU)、预测块(PB)、编码单元(CU)、最大编码单元(LCU)、子块、块、图块、切片、图片、序列或分量来设置这些信息和处理,或者可以使用这些数据单元中的数据。当然,可以针对每个信息和处理来设置该数据单元,并且不需要统一所有信息和处理的数据单元。注意,这些信息的存储位置是任意的,并且可以存储在上述数据单元的报头、参数等中。此外,信息可以存储在多个位置中。

<控制信息>

可以将关于在以上实施方式中描述的本技术的控制信息从编码侧发送至解码侧。例如,可以发送用于控制是否允许(或禁止)应用上述本技术的控制信息(例如,enabled_flag)。此外,例如,可以发送指示应用了上述本技术的对象(或者未应用本技术的对象)的控制信息。例如,可以发送用于指定应用了本技术(或者允许或禁止应用)的块大小(上限、下限,或两者)、帧、分量、层等的控制信息。

<本技术的应用对象>

本技术可以应用于任何图像编码/解码方法。即,诸如变换(逆变换)、量化(逆量化)、编码(解码)和预测的关于图像编码/解码的各种类型的处理的规格是任意的,并且不限于上述示例,只要与上述本技术不发生矛盾即可。此外,只要与上述本技术不发生矛盾,则可以省去处理的部分。

此外,本技术可以应用于执行包括多个视点(视图)的图像的多视点图像的编码/解码的多视点图像编码/解码系统。在该情况下,本技术简单地应用于每个视点(视图)的编码/解码。

此外,本技术可以应用于分层图像编码(可缩放编码)/解码系统,该系统对多层(分层)的分层图像进行编码/解码,以具有针对预定参数的可缩放性功能。在该情况下,本技术简单地应用于每一层(层)的编码/解码。

根据上述实施方式的图像处理装置、图像编码装置和图像解码装置可以应用于例如卫星广播中的发送器和接收器(例如,电视接收器和移动电话)、有线广播如有线电视、因特网上的分发以及由蜂窝通信向终端的分发或者各种电子设备如在诸如光盘、磁盘和闪速存储器的介质上记录图像并且从这些存储介质再现图像的装置(例如,硬盘记录器和摄像装置)。

此外,例如,本技术可以实现为要安装在配置任意装置或系统的装置上的任何配置,例如作为系统大规模集成(LSI)等的处理器(例如,视频处理器)、使用多个处理器等的模块(例如,视频模块)、使用多个模块等的单元(例如,视频单元)、或者其中向单元添加了其他功能的集(例如,视频集)(即,装置的一部分的配置)。

此外,本技术还可以应用于包括多个装置的网络系统。例如,本技术可以应用于向诸如计算机、视听(AV)装置、便携式信息处理终端或物联网(IoT)装置的任意终端提供关于图像(运动图像)的服务的云服务。

注意,应用本技术的系统、装置、处理单元等可以在诸如交通、医疗护理、犯罪预防、农业、畜牧业、采矿、美容、工厂、家用电器、天气和自然监控的任意领域中使用。此外,在任意领域中的使用也是任意的。

例如,本技术可以应用于被提供用于提供供欣赏的内容等的系统和设备。此外,例如,本技术还可以应用于用于诸如交通状况监视和自动驾驶控制的交通的系统和设备。此外,例如,本技术还可以应用于为安全而提供的系统和设备。此外,例如,本技术可以应用于为机器等的自动控制而提供的系统和设备。此外,例如,本技术还可以应用于为农业或畜牧业而提供的系统和设备。此外,本技术还可以应用于监视诸如火山、森林和海洋的自然状态、野生动物等的系统和设备。此外,例如,本技术还可以应用于为运动而提供的系统和设备。

<其他>

注意,本说明书中的“标志”是用于标识多个状态的信息,并且不仅包括用于标识真(1)和假(0)这两个状态的信息,而且包括能够标识三个或更多个状态的信息。因此,“标志”可以采用的值可以是例如二进制值1/0,或者可以是三元值或更多。即,构成“标志”的位数是任意的,并且可以是1位或多位。此外,假设标识信息(包括标志)不仅是在比特流中包括标识信息的形式,而且是在比特流中包括标识信息与特定参考信息的差异信息的形式。因此,在本说明书中,“标志”和“标识信息”不仅包括信息本身,还包括相对于参考信息的差异信息。

此外,可以以任何形式发送或记录关于编码数据(比特流)的各种类型的信息(元数据等),只要各种类型的信息与编码数据相关联即可。这里,术语“关联”意味着例如当处理一个数据时可以使用(链接)另一数据。即,彼此相关联的数据可以被收集为一个数据或者可以是单独的数据。例如,可以在与编码数据(图像)的传输路径不同的传输路径上发送与编码数据(图像)相关联的信息。此外,例如,可以将与编码数据(图像)相关联的信息记录在与编码数据(图像)不同的记录介质(或同一记录介质的另外的记录区域)上。注意,该“关联”可以是数据的一部分而不是整个数据。例如,图像和与图像对应的信息可以以诸如多个帧、一个帧或帧中的一部分的任意单元彼此相关联。

注意,在本说明书中,诸如“组合”、“复用”、“添加”、“集成”、“包括”、“存储”和“插入”的术语意指将多个事物放入一个事物中,例如将编码数据和元数据放入一个数据中,并且意指上述“关联”的一种方法。

此外,本技术的实施方式不限于上述实施方式,并且可以在不脱离本技术的主旨的情况下进行各种修改。

此外,例如,可以将描述为一个装置(或处理单元)的配置划分且配置为多个装置(或处理单元)。反之,可以将描述为多个装置(或处理单元)的配置共同配置为一个装置(或处理单元)。此外,可以将除了以上配置之外的配置添加到每个装置(或每个处理单元)的配置。此外,特定装置(或处理单元)的配置的一部分可以被包括在另一装置(或另一处理单元)的配置中,只要系统的配置和操作作为整体基本相同即可。

注意,在本说明书中,术语“系统”意指多个配置元件(装置、模块(部件)等)的集,并且所有配置元件是否在同一壳体中是无关紧要的。因此,容纳在单独的壳体中并且经由网络连接的多个装置以及在一个壳体中容纳多个模块的一个装置两者均是系统。

此外,例如,在本技术中,可以采用其中由多个装置经由网络来共享和协作处理一个功能的云计算的配置。

此外,例如,上述程序可以由任意装置执行。在该情况下,装置仅需要具有必要的功能(功能块等)并且获得必要的信息。

此外,例如,以上流程图中描述的步骤可以由一个装置执行,或者可以由多个装置以共享方式执行。此外,在一个步骤中包括多个处理的情况下,一个步骤中包括的多个处理可以由一个装置执行或者可以由多个装置共享和执行。换言之,一个步骤中包括的多个处理可以作为多个步骤的处理来执行。相反,被描述为多个步骤的处理可以作为一个步骤来共同执行。

注意,在由计算机执行的程序中,描述程序的步骤的处理可以根据本说明书中描述的顺序按时间顺序执行,或者可以并行地或者在例如进行调用时的必要定时处单独执行。即,只要不发生矛盾,则可以以与以上顺序不同的顺序执行每个步骤的处理。此外,描述程序的步骤的处理可以与另一程序的处理并行执行,或者可以与另一程序的处理组合执行。

注意,只要不存在不一致性,则本说明书中描述的多个本技术可以彼此独立地实现为单个单元。当然,可以一起实现任意数目的本技术。例如,在任何实施方式中描述的本技术的部分或全部可以与在另一实施方式中描述的本技术的部分或全部组合实现。此外,上述任意本技术的部分或全部可以与上面未描述的另一技术组合实现。

参考标记列表

100 变换类型导出装置

101 Emt控制单元

102 变换集标识符设置单元

103 变换类型候选表选择单元

104 变换类型设置单元

111 变换类型候选表A

112 变换类型候选表B

121 RD成本计算单元

122 变换类型候选表切换标志设置部

200 图像编码装置

201 控制单元

213 正交变换单元

215 编码单元

218 逆正交变换单元

261 一次变换单元

262 二次变换单元

271 一次水平变换单元

272 二次垂直变换单元

281 变换矩阵导出单元

282 矩阵计算单元

291 变换矩阵LUT

292 翻转单元

293 转置单元

301 变换矩阵导出单元

302 矩阵计算单元

311 变换矩阵LUT

312 翻转单元

313 转置单元

400 图像解码装置

412 解码单元

414 逆正交变换单元

461 逆二次变换单元

462 逆一次变换单元

471 逆一次垂直变换单元

472 逆一次水平变换单元

481 变换矩阵导出单元

482 矩阵计算单元

491 变换矩阵LUT

492 翻转单元

493 转置单元

501 变换矩阵导出单元

502 矩阵计算单元

511 变换矩阵LUT

512 翻转单元

513 转置单元

相关技术
  • 图像处理装置、动态图像处理装置、视频处理装置、图像处理方法、视频处理方法、电视接收机、程序、以及存储介质
  • 图像处理装置和方法、眼底图像处理装置、图像拍摄方法、及眼底图像拍摄装置和方法
技术分类

06120112318999