CN111357293A - 图像处理装置和方法 - Google Patents

图像处理装置和方法 Download PDF

Info

Publication number
CN111357293A
CN111357293A CN201880074233.2A CN201880074233A CN111357293A CN 111357293 A CN111357293 A CN 111357293A CN 201880074233 A CN201880074233 A CN 201880074233A CN 111357293 A CN111357293 A CN 111357293A
Authority
CN
China
Prior art keywords
transform
matrix
unit
transformation
inverse
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201880074233.2A
Other languages
English (en)
Other versions
CN111357293B (zh
Inventor
筑波健史
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN111357293A publication Critical patent/CN111357293A/zh
Application granted granted Critical
Publication of CN111357293B publication Critical patent/CN111357293B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)

Abstract

本发明涉及图像处理装置和方法,其使得可以使正交变换和逆正交变换所需的存储器容量的增加最小化。使用构成变换矩阵的一部分的部分矩阵导出所述变换矩阵,使用导出的变换矩阵对图像的预测残差执行正交变换,预测残差经受正交变换,并且对由此获得的系数数据进行加密,并且生成比特流。本发明例如可以应用于图像处理装置、图像编码设备、图像解码设备等。

Description

图像处理装置和方法
技术领域
本公开内容涉及图像处理装置和方法,并且具体地涉及使得能够抑制正交变换和逆正交变换所需的存储器容量的增加的图像处理装置和方法。
背景技术
常规地,已经公开一种关于亮度的自适应一次变换(自适应多核变换:AMT),其中,为每个变换单元(TU)的每个水平一次变换PThor(也被称为一次水平变换)和垂直一次变换PTver(也被称为一次垂直变换),从多个不同的正交变换中自适应地选择一次变换(例如,参见非专利文献1)。
在非专利文献1中,存在作为一次变换的候选的DCT-II、DST-VII、DCT-VIII、DST-I和DCT-VI的五个一维正交变换。此外,已经提出了添加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 3and ISO/IEC JTC1/SC 29/WG 11第四次会议:都灵,意大利,2017年7月13日至21日
非专利文献2:V.Lorcy,P.Philippe的“Proposed improvements to theAdaptive multiple Core transform”,JVET-C0022,Joint Video Exploration Team(JVET)of ITU-T SG 16WP 3and ISO/IEC JTC 1/SC 29/WG 11第三次会议:日内瓦,瑞士,2016年5月26日至6月1日
发明内容
本发明要解决的问题
然而,在这些方法的情况下,存在保存一次变换的所有变换矩阵所需的查找表(LUT)的大小增加的可能性。即,在考虑一次变换的硬件实现方式的情况下,存在保存变换矩阵的系数所需的存储器大小增加的可能性。
本公开内容是鉴于这样的情况而提出的,并且本公开使得能够抑制正交变换和逆正交变换所需的存储器容量的增加。
问题的解决方案
根据本技术的一个方面的图像处理装置是一种图像处理装置,该图像处理装置包括:导出单元,其被配置成使用构成变换矩阵的一部分的子矩阵来导出变换矩阵;正交变换单元,其被配置成使用由导出单元导出的变换矩阵来对图像的预测残差进行正交变换;以及编码单元,其被配置成对通过由正交变换单元对预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
根据本技术的一个方面的图像处理方法是一种图像处理方法,该图像处理方法包括:使用构成变换矩阵的一部分的子矩阵来导出变换矩阵;使用所导出的变换矩阵来对图像的预测残差进行正交变换;以及对通过对预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
根据本技术的另一方面的图像处理装置是一种图像处理装置,该图像处理装置包括:解码单元,其被配置成对比特流进行解码以获得通过对图像的预测残差进行正交变换而得的系数数据;导出单元,其被配置成使用构成变换矩阵的一部分的子矩阵来导出变换矩阵;以及逆正交变换单元,其被配置成使用由导出单元导出的变换矩阵来对由解码单元获得的系数数据进行逆正交变换。
根据本技术的另一方面的图像处理方法是一种图像处理方法,该图像处理方法包括:对比特流进行解码以获得通过图像的预测残差进行正交变换而得的系数数据;使用构成变换矩阵的一部分的子矩阵来导出变换矩阵;以及使用所导出的变换矩阵来对获得的系数数据进行逆正交变换。
在根据本技术的一个方面的图像处理装置和方法中,使用构成变换矩阵的一部分的子矩阵来导出变换矩阵,使用所导出的变换矩阵来对图像的预测残差进行正交变换,并且对通过对预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
在根据本技术的另一方面的图像处理装置和方法中,对比特流进行解码以获得通过对图像的预测残差进行正交变换而得的系数数据,使用构成变换矩阵的一部分的子矩阵来导出变换矩阵,并且使用所导出的变换矩阵来对所获得的系数数据进行逆正交变换。
本发明的效果
根据本公开内容,可以处理图像。特别地,可以抑制正交变换和逆正交变换所需的存储器容量的增加。
附图说明
图1是示出变换集与要选择的正交变换之间的对应关系的图。
图2是示出正交变换的类型与要使用的函数之间的对应关系的图。
图3是示出变换集与预测模式之间的对应关系的图。
图4是示出存储在LUT中的正交变换的类型的示例的图。
图5是示出以HEVC保存变换矩阵所需的LUT大小的示例的图。
图6是示出保存变换矩阵所需的LUT大小的示例的图。
图7是用于描述变换矩阵之间的相似性的示例的图。
图8是用于描述可通过翻转替代的变换类型的示例的示图。
图9是用于描述可通过转置替代的变换类型的示例的示图。
图10是示出变换矩阵的替代的主要具体示例的列表的图。
图11是示出图像编码设备的主要配置示例的框图。
图12是示出正交变换单元的主要配置示例的框图。
图13是用于描述图像编码处理的流程的示例的流程图。
图14是用于描述正交变换处理的流程的示例的流程图。
图15是示出图像解码设备的主要配置示例的框图。
图16是示出逆正交变换单元的主要配置示例的框图。
图17是用于描述图像解码处理的流程的示例的流程图。
图18是用于描述逆正交变换处理的流程的示例的流程图。
图19是示出变换类型导出的示例的图。
图20是示出变换类型导出的具体示例的图。
图21是示出保存变换矩阵所需的LUT大小的示例的图。
图22是示出一次变换单元的主要配置示例的框图。
图23是示出一次水平变换单元的主要配置示例的框图。
图24是示出变换矩阵导出单元的主要配置示例的框图。
图25是示出一次垂直变换单元的主要配置示例的框图。
图26是示出变换矩阵导出单元的主要配置示例的框图。
图27是用于描述一次变换处理的流程的示例的流程图。
图28是用于描述一次水平变换处理的流程的示例的流程图。
图29是示出针对每个元素的运算表达的示例的图。
图30是用于描述变换矩阵导出处理的流程的示例的流程图。
图31是示出将变换类型分配给变换类型标识符的示例的图。
图32是用于描述一次垂直变换处理的流程的示例的流程图。
图33是示出针对每个元素的运算表达的示例的图。
图34是示出逆一次变换单元的主要配置示例的框图。
图35是示出逆一次垂直变换单元的主要配置示例的框图。
图36是示出变换矩阵导出单元的主要配置示例的框图。
图37是示出逆一次水平变换单元的主要配置示例的框图。
图38是示出变换矩阵导出单元的主要配置示例的框图。
图39是用于描述逆一次变换处理的流程的示例的流程图。
图40是用于描述逆一次变换选择处理的流程的示例的流程图。
图41是用于描述逆一次垂直变换处理的流程的示例的流程图。
图42是用于描述逆一次水平变换处理的流程的示例的流程图。
图43是示出变换类型导出的示例的图。
图44是示出变换类型导出的具体示例的图。
图45是示出保存变换矩阵所需的LUT大小的示例的图。
图46是示出变换矩阵导出单元的主要配置示例的框图。
图47是示出变换矩阵导出单元的主要配置示例的框图。
图48是示出变换矩阵导出单元的主要配置示例的框图。
图49是示出将变换类型分配给变换类型标识符的示例的图。
图50是示出变换矩阵导出单元的主要配置示例的框图。
图51是示出变换矩阵导出单元的主要配置示例的框图。
图52是示出变换类型导出的示例的图。
图53是示出保存变换矩阵所需的LUT大小的示例的图。
图54是用于描述变换矩阵导出处理的流程的示例的流程图。
图55是示出将变换类型分配给变换类型标识符的示例的图。
图56是示出变换类型导出的示例的图。
图57是示出保存变换矩阵所需的LUT大小的示例的图。
图58是示出将变换类型分配给变换类型标识符的示例的图。
图59是示出变换类型导出的示例的图。
图60是示出保存变换矩阵所需的LUT大小的示例的图。
图61是用于描述变换矩阵导出处理的流程的示例的流程图。
图62是示出将变换类型分配给变换类型标识符的示例的图。
图63是用于描述二维正交变换的空间对称属性的图。
图64是用于描述水平对称属性的图。
图65是用于描述垂直对称属性的图。
图66是用于描述水平对称属性和垂直对称属性的图。
图67是示出包括预测残差的变换的变换矩阵的替代的主要具体示例的列表的图。
图68是示出保存变换矩阵所需的LUT大小的示例的图。
图69是示出一次变换单元的主要配置示例的框图。
图70是用于描述一次变换处理的流程的示例的流程图。
图71是用于描述预测残差置换运算处理的流程的示例的流程图。
图72是示出将变换类型分配给变换类型标识符的示例的图。
图73是示出逆一次变换单元的主要配置示例的框图。
图74是用于描述逆一次变换处理的流程的示例的流程图。
图75是示出保存变换矩阵所需的LUT大小的示例的图。
图76是示出变换矩阵导出单元的主要配置示例的框图。
图77是示出变换矩阵导出单元的主要配置示例的框图。
图78是用于描述变换矩阵导出处理的流程的示例的流程图。
图79是示出将变换类型分配给变换类型标识符的示例的图。
图80是示出变换矩阵导出单元的主要配置示例的框图。
图81是示出变换矩阵导出单元的主要配置示例的框图。
图82是示出将变换类型分配给变换类型标识符的示例的图。
图83是示出将变换类型分配给变换类型标识符的示例的图。
图84是用于描述使用子矩阵导出变换矩阵的图。
图85是示出从子矩阵导出的变换矩阵的主要具体示例的列表的图。
图86是示出变换矩阵导出的状态的示例的图。
图87是示出变换矩阵导出的状态的示例的图。
图88是示出变换矩阵导出的状态的示例的图。
图89是示出变换矩阵导出的状态的示例的图。
图90是示出变换矩阵导出的状态的示例的图。
图91是示出变换矩阵导出的状态的示例的图。
图92是示出变换矩阵导出单元的主要配置示例的框图。
图93是示出变换矩阵导出单元的主要配置示例的框图。
图94是用于描述变换矩阵导出处理的流程的示例的流程图。
图95是示出将变换类型分配给变换类型标识符的示例的图。
图96是示出变换矩阵导出单元的主要配置示例的框图。
图97是示出变换矩阵导出单元的主要配置示例的框图。
图98是示出保存变换矩阵所需的LUT大小的示例的图。
图99是示出变换矩阵导出单元的主要配置示例的框图。
图100是用于描述变换矩阵导出处理的流程的示例的流程图。
图101是示出将变换类型分配给变换类型标识符的示例的图。
图102是示出计算机的主要配置示例的框图。
具体实施方式
在下文中,将描述用于实现本公开内容的模式(在下文中被称为实施方式)。注意,按如下顺序给出描述。
1.自适应一次变换[0016]
2.第一实施方式(从变换矩阵导出变换矩阵)[0041]
2-1.共同概念
2-2.示例1-1
2-3.示例1-2
2-4.示例1-3
2-5.示例1-4
2-6.示例1-5
3.第二实施方式(预测残差变换)[0561]
3-1.共同概念
3-2.示例2-1
3-3.示例2-2
3-4.示例2-3
3-5.示例2-4
4.第三实施方式(从子矩阵导出变换矩阵)[0734]
4-1.共同概念
5.第四实施方式(实施方式的组合)[0840]
5-1.共同概念
6.附录
<1.自适应一次变换>
<支持技术内容和技术术语的文献>
本技术公开的范围不仅包括示例中描述的内容,而且包括在提交时已知的以下非专利文献中描述的内容。
非专利文献1:(如上所述)
非专利文献3:ITU(国际电信联盟)的电信标准化部,“Advanced video codingfor generic audiovisual services”,H.264,04/2017
非专利文献4:ITU(国际电信联盟)的电信标准化部,“High efficiency videocoding”,H.265,12/2016
即,以上提及的非专利文献中描述的内容也用作确定支持要求的基础。例如,即使在示例中未直接描述这些内容的情况下,非专利文献4中描述的四叉树块结构和非专利文献1中描述的四叉树加二叉树(QTBT)块结构也落入本技术的公开范围内,并且满足权利要求的支持要求。此外,例如,诸如解析、语法和语义的技术术语即使在示例中未直接描述这些技术术语的情况下也类似地落入本技术的公开范围内,并且满足权利要求的支持要求。
此外,在本说明书中,除非另有说明,否则用于描述为图像(图片)的部分区域或处理单元的“块”(不是指示处理单元的块)指示图片中的任意部分区域,并且块的大小、形状、特性等不受限制。例如,在非专利文献1、3、4中描述的“块”包括诸如变换块(TB)、变换单元(TU)、预测块(PB)、预测单元(PU)、最小编码单元(SCU)、编码单元(CU)、最大编码单元(LCU)、编码树块(CTB)、编码树单元(CTU)、变换块、子块、宏块、图块、切片等任意的部分区域(处理单元)。
此外,在指定这样的块的大小时,不仅直接指定块大小,而且还可以间接指定块大小。例如,可以使用用于识别大小的识别信息来指定块大小。此外,例如,块大小可以由与参考块(例如,LCU、SCU等)的大小的比率或差来指定。例如,在发送用于将块大小指定为语法元素等的信息的情况下,可以使用如上所述的用于间接指定大小的信息作为该信息。利用该配置,在一些情况下,可以减少信息量,并且可以提高编码效率。此外,块大小的指定还包括块大小的范围的指定(例如,可允许块大小的范围的指定等)。
<自适应一次变换>
在非专利文献1中描述的测试模型(联合探索测试模型4(JEM4))中,公开了自适应一次变换(自适应多核变换(AMT)),其中,针对关于亮度变换块的每个水平一次变换PThor(也被称为一次水平变换)和垂直一次变换PTver(也称为一次垂直变换),从多个不同的一维正交变换中自适应地选择一次变换。
具体地,关于亮度变换块,在指示是否执行自适应一次变换的自适应一次变换标志apt_flag是0(假)的情况下,离散余弦变换(DCT)-II或离散正弦变换(DST)-VII由模式信息唯一地确定为一次变换,如在图1所示的表(LUT_TrSetToTrTypeIdx)中那样,例如,(TrSetIdx=4)。
在自适应一次变换标志apt_flag是1(真)并且包括要处理的亮度变换块的当前编码单元(CU)是帧内CU的情况下,针对水平方向(x方向)和垂直方向(y方向)中的每一个,从图1所示的三个变换集TrSet(TrSetIdx=0、1和2)中选择包括用作一次变换候选的正交变换的变换集TrSet,如图1所示的表中那样。注意,图1中所示的DST-VII、DCT-VIII等指示正交变换的类型,并且使用诸如图2的表中所示的那些函数的函数。
变换集TrSet是基于图3中所示的模式信息和变换集的对应表(的帧内预测模式信息)而唯一确定的。例如,如以下表达式(1)和(2)中那样,针对变换集TrSetH和TrSetV中的每一个设置用于指定对应变换集TrSet的变换集标识符TrSetIdx。
[数学式1]
TrSetH=LUT_IntraModeToTrSet[IntraMode][0]···(1)
TrSetV=LUT_IntraModeToTrSet[IntraMode][1]···(2)
此处,TrSetH表示一次水平变换PThor的变换集,TrSetV表示一次垂直变换PTver的变换集,并且查找表LUT_IntraModeToTrSet表示图3中的对应表。查找表LUT_IntraModeToTrSet[][]的第一数组具有帧内预测模式IntraMode作为参数,并且第二阵列具有{H=0,V=1}作为参数。
例如,在帧内预测模式号19(IntraMode=19)的情况下,选择图1的表中所示的变换集标识符TrSetIdx=0的变换集作为一次水平变换PThor的变换集TrSetH(也被称为一次水平变换集),并且选择图1的表中所示的变换集标识符TrSetIdx=2的变换集作为一次垂直变换PTver的变换集TrSetV(也被称为一次垂直变换集)。
注意,在自适应一次变换标志apt_flag是1(真)并且包括要处理的亮度变换块的当前CU是帧间CU的情况下,专用于帧间CU的变换集InterTrSet(TrSetIdx=3)被分配给一次水平变换的变换集TrSetH和一次垂直变换的变换集TrSetV。
接下来,对于水平方向和垂直方向的每一个,根据一次水平变换指定标志pt_hor_flag与一次垂直变换指定标志pt_ver_flag之间的对应指定标志,选择应用所选择的变换集TrSet中的正交变换。
例如,如以下表达式(3)和(4)所示,使用一次{水平,垂直}变换集TrSet{H,V}和一次{水平,垂直}转换规范标志pt_{hor,ver}_flag作为参数,从图1所示的变换集限定表(LUT_TrSetToTrTypeIdx)中导出变换集。
[数学式2]
TrTypeIdxH=LUT_TrSetToTrTypeIdx[TrSetH][pt_hor_flag]···(3)
TrTypeIdxV=LUT_TrSetToTrTypeIdx[TrSetV][pt_ver_flag]···(4)
例如,在帧内预测模式号34(IntraMode=34)(即,一次水平变换集TraaSetH为0)并且一次水平变换指定标志pt_horflag为0的情况下,根据图1中的变换集限定表(LUT_TrSetToTrTypeIdx),表达式(3)的变换类型标识符TrTypeIdxH的值为4,并且通过参照图2,与变换类型标识符TrTypeIdxH的值对应的变换类型标识符TrTypeH为DST-VII。即,选择具有为0的变换集标识符TrSetIdx的变换集的DST-VII作为一次水平变换PThor的变换类型。此外,在一次水平变换指定标志pt_hor_flag为1的情况下,选择DCT-VIII作为变换类型。注意,选择变换类型TrType包括:经由变换类型标识符TrTypeIdx选择利用变换类型标识符TrTypeIdx指定的变换类型。
基于以下表达式(5)从一次水平变换指定标志pt_horflag和一次垂直变换指定标志pt_verflag导出一次变换标识符pt_idx。即,一次变换标识符pt_idx的高1位与一次垂直变换指定标志的值对应,低1位与一次水平变换指定标志的值对应。
[数学式3]
pt_idx=(pt_ver_flag<<1)+pt_hor_flag···(5)
通过将算术编码应用于导出的一次变换标识符pt_idx的二进制串来执行编码,以生成比特串。注意,在亮度变换块中用信号发送自适应一次变换标志apt_flag和一次变换标识符pt_idx。
如上所述,非专利文献1提出了DCT-II(DCT2)、DST-VII(DST7)、DCT-VIII(DCT8)、DST-I(DST1)和DCT-V(DCT5)的五个一维正交变换作为一次变换候选。此外,非专利文献2提出了除了上述之外的DST-IV(DST4)和恒等变换(IDT:一维变换跳过)的两个一维正交变换,以具有总共七个一维正交变换作为一次变换候选。
即,在非专利文献1的情况下,如图4所示,一维正交变换被存储在LUT中作为一次变换候选。此外,在非专利文献2的情况下,除了上述之外,还将DST-IV(DST4)和IDT存储在LUT中(参见图4)。
在高效视频编码(HEVC)的情况下,保存变换矩阵所需的查找表(LUT)的大小如图5中的表中所示。即,LUT的大小总共约为1.3KB。相比之下,例如,在非专利文献1中描述的方法的情况下,DCT2需要在LUT上针对每个大小为2/4/8/16/32/64/128的点保存变换矩阵。此外,其他一维变换(DST7/DST1/DCT8)需要在LUT上针对每个大小为4/8/16/32/64的点保存变换矩阵。在这种情况下,假设变换矩阵的每个系数的比特精度是10比特,则在图6中的A中示出保存一次变换的所有变换矩阵所需的LUT的大小。即,在这种情况下,LUT的大小总共为约53KB。即,在这种情况下,LUT的大小与HEVC的情况相比增加了大约50倍。
类似地,在非专利文献2中描述的方法的情况下,保存一次变换的所有变换矩阵所需的LUT的大小如图6的B中的表所示。即,在此情况下,LUT的大小总共为约67KB。即,在这种情况下,LUT的大小与HEVC的情况相比增加了大约60倍。
在考虑一次变换的硬件实现方式的情况下,LUT的大小反映在存储容量(存储器容量)中。即,在非专利文献1和非专利文献2中描述的方法的情况下,存在与HEVC的情况相比电路规模(保存变换矩阵的系数所需的存储器容量)增加大约50倍至60倍的可能性。
<2.第一实施方式>
<2-1.共同概念>
<变换矩阵的导出>
因此,使用第一变换矩阵导出第二变换矩阵,使用导出的第二变换矩阵对图像的预测残差进行正交变换,并且对通过对预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
例如,图像处理装置包括:导出单元,其被配置成使用第一变换矩阵来导出第二变换矩阵;正交变换单元,其被配置成使用由导出单元导出的第二变换矩阵来对图像的预测残差进行正交变换;以及编码单元,其被配置成对通过由正交变换单元对预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
利用该配置,可以从另一变换矩阵导出变换矩阵。因此,可以抑制为正交变换准备的变换矩阵的数目的增加,并且可以抑制正交变换所需的存储器容量的增加。
此外,对比特流进行解码以获得通过对图像的预测残差进行正交变换而得的系数数据,使用第一变换矩阵来导出第二变换矩阵,并且使用导出的第二变换矩阵对获得的系数数据进行逆正交变换。
例如,图像处理装置包括:解码单元,其被配置成对比特流进行解码以获得通过对图像的预测残差进行正交变换而得的系数数据;导出单元,其被配置成使用第一变换矩阵来导出第二变换矩阵;以及逆正交变换单元,其被配置成使用由导出单元导出的第二变换矩阵来对由解码单元获得的系数数据进行逆正交变换。
利用该配置,可以从另一变换矩阵导出变换矩阵。因此,可以抑制为逆正交变换准备的变换矩阵的数目的增加,并且可以抑制逆正交变换所需的存储器容量的增加。
<变换矩阵的特性>
变换矩阵的主要作用之一是使低阶(特别是0阶)频率分量的信号在DC分量方向上偏置,并且如何收集频率分量是重要的特性。低阶(特别是0阶)基本向量(行向量)的波形分量对于如何使频率分量偏置是重要的。即,在基本向量的波形分量中的具有相似趋势的变换矩阵可以预期正交变换/逆正交变换的相似性能(如何使频率分量偏置是相似的)。
因此,注意到变换矩阵的低阶(特别是0阶)基本向量(行向量)的波形。例如,在图7的变换矩阵30中,假设帧31中的低阶(特别是0阶)行向量(元素的值的趋势)的波形被图示为曲线图32。
曲线图32示出了频率分量的元素的值朝向左侧变低(的趋势)和频率分量的元素的值朝向右侧变高(的趋势)。此外,曲线图32示出了在图7中,值朝向上侧变大,并且值朝向下侧变小。注意,曲线图32中的上下方向上的中心示出0,并且中心的上侧示出正值,并且中心的下侧示出负值。
曲线图32中的波形32A示出了变换矩阵30的0阶行向量的波形。如波形32A所示,在这种情况下,变换矩阵30的0阶行向量具有值从低频分量向高频分量变大的趋势。
此外,例如,在图7的变换矩阵30中,假设帧33中的低阶(特别是0阶)列向量(元素的值的趋势)的波形被图示为曲线图34。曲线图34示出了频率分量的元素的值朝向上侧变低(的趋势)和频率分量的元素的值朝向下侧变高(的趋势)。此外,曲线图34示出了在图7中,值朝向更左侧变大,并且值朝向更右侧变小。注意,曲线图34中的左右方向上的中心示出0,并且中心的左侧示出正值,并且中心的右侧示出负值。
曲线图34中的波形34A示出了变换矩阵30的0阶列向量的波形。如波形34A所示,在这种情况下,变换矩阵30的0阶列向量在中间频率分量处具有峰值(即,具有值在低频率侧朝向低频率分量变小以及值在高频率侧朝向高频率分量变小的趋势)。
注意,在本说明书中,变换矩阵30的0阶列向量的波形可以如曲线图35所示以转置状态示出。曲线图35的结构与曲线图32的结构相似。波形35A相当于波形34A。
如上所述,具有低阶(特别是0阶)基本向量(行向量)的相似波形的变换矩阵具有相似的性能。换言之,变换矩阵可以由具有低阶(特别是0阶)基本向量(行向量)的相似波形的另一变换矩阵来替代。因此,通过使用上述特性,可以抑制存储在LUT中的变换矩阵的数目的增加。
此处,注意到非专利文献1和非专利文献2中描述的变换类型,可以将这些变换类型的变换矩阵的0阶行向量和0阶列向量的波形分类成四种类型。图8示出了示例。
第一类型是扁平类型。扁平类型是其中在每个频率分量中值基本上均匀的波形类型。第二类型是增加类型。增加类型是值趋向于从低频分量向高频分量增加的波形类型。第三类型是减小类型。减小类型是值倾向于从低频分量向高频分量减小的波形类型。第四类型是山形类型(chevron type)。山形类型是值倾向于在中间具有峰值(最大值)的波形类型。即,在山形类型的情况下,波形的值在低频率分量侧趋向于朝向低频率分量减小,并且该值在高频率分量侧趋向于朝向高频率分量减小。
注意,这些类型中的每一个都表现出波形的近似形状,并且不需要完全匹配。例如,在增加类型的情况下,只要波形整体的值趋向于从低频率侧到高频率侧增加,则波形不需要严格地从低频率侧到高频率侧单调增加。
类似地,在减小类型的情况下,只要波形的值整体上趋向于从低频率侧到高频率侧减小,则波形不需要严格地从低频率侧到高频率侧单调递减。
类似地,在山形类型的情况下,只要波形整体在中心附近具有峰值(最大值),则波形的值不需要在峰值两侧沿远离峰值的方向单调递减,并且波形的值倾向于沿远离峰值的方向在两侧减小。此外,峰值不需要由一个分量形成。例如,可以能够从多个分量中指定峰值的近似位置和值。此外,峰值的位置不需要精确地在中心处。
类似地,在扁平类型的情况下,只要波形的值整体上基本上均匀,则波形不需要是严格扁平的。即,可以存在该值的一些变化。换言之,不能被分类成其他三种类型的波形可以被分类成扁平类型。
上述波形分类是示例,并且分类不限于上述示例。即,波形可以被分类成除了上述类型之外的类型,并且要分类的类型的数目是任意的,并且不限于以上四种类型。注意,执行该分类是为了便于描述本技术,而不是作为实际处理来执行。
根据该分类,如图8所示,DCT2的变换矩阵的0阶行向量的波形被分类成扁平类型,并且0阶列向量的波形被分类成减小类型。此外,DST7的变换矩阵的0阶行向量的波形被分类成增加类型,并且0阶列向量的波形被分类成山形类型。此外,DCT8的变换矩阵的0阶行向量的波形被分类成减小类型,并且0阶列向量的波形被分类成减小类型。此外,DCT5的变换矩阵的0阶行向量的波形被分类成扁平类型,并且0阶列向量的波形被分类成扁平类型。注意,DST4的变换矩阵的0阶行向量的波形被分类成增加类型,并且0阶列向量的波形被分类成增加类型。
如上所述,变换矩阵可以由具有0阶行向量的相似波形的另一变换矩阵来替代。即,在具有相同类型的0阶行向量的波形的变换类型之间,变换矩阵可以彼此替代。
即,导出单元可以在导出第二变换矩阵时,使用上述第一变换矩阵来导出最低阶行向量具有期望类型的波形的第二变换矩阵。利用该配置,可以抑制为正交变换/逆正交变换准备的变换矩阵的数目的增加,并且可以抑制正交变换/逆正交变换所需的存储器容量的增加。
例如,导出单元可以使用第一变换矩阵导出最低阶行向量具有扁平类型波形的第二变换矩阵。利用该配置,可以用导出的第二变换矩阵来替代具有最低阶行向量的扁平类型波形的变换矩阵。此外,例如,导出单元可以使用第一变换矩阵来导出最低阶行向量具有增加类型波形的第二变换矩阵。利用该配置,可以用导出的第二变换矩阵来替代具有最低阶行向量的增加类型波形的变换矩阵。
此外,例如,所述导出单元可以使用第一变换矩阵来导出最低阶行向量具有减小类型波形的第二变换矩阵。利用该配置,可以用导出的第二变换矩阵来替代具有最低阶行向量的减小类型波形的变换矩阵。此外,例如,导出单元可以使用第一变换矩阵来导出最低阶行向量具有山形类型波形的第二变换矩阵。利用该配置,可以用导出的第二变换矩阵替代具有最低阶行向量的山形类型波形的变换矩阵。
例如,在图8中,所有的DST7、DST4、DST8和DST3具有0阶行向量的增加类型波形,变换矩阵可以彼此替代。即,即使变换矩阵具有不同的变换类型,也可以替代变换矩阵。
即,导出单元可以在导出第二变换矩阵时,使用上述第一变换矩阵来导出与第一变换矩阵的变换类型不同的变换类型的第二变换矩阵。利用该配置,可以抑制为正交变换/逆正交变换准备的变换类型的数目的增加,并且可以抑制正交变换/逆正交变换所需的存储器容量的增加。
注意,在导出中,导出单元可以导出与第一变换矩阵具有相同数量的行和相同数量的列的第二变换矩阵。在改变行和列的数目的情况下,存在波形类型无意地改变的可能性。因此,通过将行和列的数目设置为与第一变换矩阵的行和列的数目相同,可以抑制波形类型的无意改变的可能性,并且可以更容易地导出第二变换矩阵。
注意,可以容易地对矩阵执行元素的运算。对矩阵的元素的运算的示例包括对元素的重新排列等。更具体地,例如,在矩阵中,可以在预定方向上翻转(反转)元素组的排列顺序,或者可以转置元素组以互换行和列。注意,转置等效于围绕连接矩阵的左上端和右下端的对角线进行翻转(反转)。即,转置可以说是翻转的一部分。此外,还容易使每个元素的符号反转(从正到负或从负到正)。
通过使用这样的运算,可以有意地改变第0阶行向量的波形(类型)。例如,当在行方向上翻转具有0阶行向量的增加类型波形的矩阵时,0阶行向量的波形改变成减小类型。相反,当在行方向上翻转具有0阶行向量的减小类型波形的矩阵时,0阶行向量的波形改变成增加类型。
即,如图8所示,可以通过在行方向上翻转0阶行向量的波形是增加变换类型的变换矩阵(例如,DST7、DST4、DST8或DST3),来获得可以替代0阶行向量的波形是减小变换类型的变换矩阵(例如,DCT7、DCT4、DCT8或DCT3)。
此外,例如,当矩阵被转置时,0阶行向量的波形类型和0阶列向量的波形类型被互换。即,通过转置,矩阵的0阶行向量的波形变得与转置之前的矩阵的0阶列向量的波形具有相同的类型。
例如,如图9所示,可以通过转置0阶列向量的波形是减小类型的DCT2(DCT6)的变换矩阵,来获得可以替代0阶行向量的波形是减小变换类型的变换矩阵(DCT3、DCT7、DCT4或DCT8)。此外,如图9所示,可以通过转置0阶列向量的波形为山形类型的DST7(DST3)的变换矩阵,来获得可以替代0阶行向量的波形为山形变换类型的变换矩阵(DST2、DST6、DST1或DST5)。
即,导出单元可以通过对这样的第一变换矩阵的元素的运算来导出第二变换矩阵。然后,对元素的运算可以包括如上所述的元素的重新排列(排列顺序的改变)。利用该配置,可以有意地改变波形的类型,使得可以从第一变换矩阵导出更加多样化的第二变换矩阵。因此,可以抑制为正交变换/逆正交变换准备的变换类型的数目的增加,并且可以抑制正交变换/逆正交变换所需的存储器容量的增加。
此外,导出单元当然也可以多次执行这样的运算来导出第二变换矩阵。例如,可以任意组合诸如翻转和转置的运算。此外,相同的运算可以重复多次。通过这样做,可以从第一变换矩阵导出更多的各种第二变换矩阵。
注意,如上所述,用于正交变换/逆正交变换的变换矩阵被存储在LUT中。因此,导出单元可以使用存储在查找表(LUT)中的第一变换矩阵来导出第二变换矩阵。通过这样做,可以抑制LUT的大小的增加。因此,可以抑制正交变换/逆正交变换所需的存储器容量的增加。
<导出示例>
图10示出了包括上述运算的变换矩阵导出示例的列表。注意,用于导出的变换矩阵(第一变换矩阵)也被称为基本变换矩阵Tbase。基本变换矩阵的变换类型也被称为基本变换类型或第一变换类型。此外,要导出的变换矩阵(第二变换矩阵)的变换类型也被称为第二变换类型。
在图10所示的表中,从除了最上方的项目名称的行之外的顶部导出第一行示例聚焦于要替代的变换矩阵的第一变换类型的最低阶行向量的波形与变换类型的最低阶行向量的波形之间的相似性。
在这种情况下,导出单元翻转第一变换矩阵,以导出第二变换矩阵。更具体地,导出单元使用DST7的变换矩阵作为基本变换矩阵Tbase,并且在行方向上翻转变换矩阵以导出FlipDST7的变换矩阵。由于DST7的变换矩阵的0阶行向量的波形是增加类型,因此导出的FlipDST7的变换矩阵的0阶行向量的波形是减小类型。因此,具有0阶行向量的减小类型波形的DCT8的变换矩阵可以用FlipDST7的变换矩阵来替代。
通过应用这样的导出,变得不需要准备DCT8的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,可以减少单一变换(unique transform)类型的数目。即,可以抑制LUT大小的增加。此外,可以通过使用导出的第二变换类型(FlipDST7)的变换矩阵执行正交变换/逆正交变换,获得与使用DCT8的变换矩阵进行正交变换/逆正交变换的情况类似的编码效率。此外,在这种情况下,可以通过一次运算来导出第二变换矩阵(减小类型替代变换矩阵)。
此外,第一行示例下方的一行示例(从顶部起的第二行示例)的导出聚焦于第一变换类型的最低阶列向量的波形与要替代的变换矩阵的变换类型的最低阶行向量的波形之间的相似性。
在这种情况下,导出单元对第一变换矩阵进行转置,以导出第二变换矩阵。更具体地,导出单元使用DST7的变换矩阵作为基本变换矩阵Tbase,并且对变换矩阵进行转置以导出TrDST7的变换矩阵。由于DST7的变换矩阵的0阶列向量的波形是山形类型,因此所导出的TrDST7的变换矩阵的0阶行向量的波形也是山形类型。因此,具有0阶行向量的山形类型波形的DST1的变换矩阵可以用TrDST7的变换矩阵来替代。
通过应用这样的导出,变得不需要准备DST1的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,可以减少单一变换类型的数目。即,可以抑制LUT大小的增加。此外,可以通过使用导出的第二变换类型(TrDST7)的变换矩阵执行正交变换/逆正交变换,获得与使用DST1的变换矩阵进行正交变换/逆正交变换的情况类似的编码效率。此外,在这种情况下,可以通过一次运算来导出第二变换矩阵(山形类型替代变换矩阵)。
此外,第二行示例下方的一行示例(从顶部起的第三行示例)的导出聚焦于配对的DCT与DST之间的特性。更具体地,在要配对的DCT/DST(例如,DST7与DCT8)之间,注意到以下点:偶数行向量是轴对称的,而奇数行向量是点对称的。
在这种情况下,导出单元翻转第一变换矩阵,并且使经翻转的第一变换矩阵的奇数行向量的符号反转,以导出第二变换矩阵。更具体地,导出单元使用DST7的变换矩阵作为基本变换矩阵Tbase,并且在行方向上翻转变换矩阵,并且进一步使奇数阶行向量的符号反转,以导出DCT8的变换矩阵。注意,行向量符号反转简单地通过变换行向量的每个元素的最高有效位来执行。自然地,具有0阶行向量的减小类型波形的DST8的变换矩阵可以用导出的DCT8的变换矩阵来替代。
通过应用这样的导出,变得不需要准备DCT8的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,可以减少单一变换类型的数目。即,可以抑制LUT大小的增加。此外,自然地,可以通过使用导出的第二变换类型的变换矩阵(DCT8)来执行正交变换/逆正交变换,来获得与使用DCT8的变换矩阵进行正交变换/逆正交变换的情况相同的编码效率。此外,在这种情况下,可以通过两次运算来导出第二变换矩阵(要配对的替代变换矩阵)。
此外,与从顶部起的第一行示例的情况类似,第三行示例下方的一行示例(从顶部起的第四行示例)的导出聚焦于第一变换类型的最低阶行向量的波形与要替代的变换矩阵的变换类型的最低阶行向量的波形之间的相似性。
在这种情况下,导出单元翻转第一变换矩阵,以导出第二变换矩阵。更具体地,导出单元使用DCT8的变换矩阵作为基本变换矩阵Tbase,并且在行方向上翻转变换矩阵,以导出FlipDCT8的变换矩阵。由于DCT8的变换矩阵的0阶行向量的波形是减小类型,因此导出的FlipDCT8的变换矩阵的0阶行向量的波形是增加类型。因此,具有0阶行向量的增加类型波形的DST7的变换矩阵可以用FlipDCT8的变换矩阵来替代。
通过应用这样的导出,变得不需要准备DST7的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,可以减少单一变换类型的数目。即,可以抑制LUT大小的增加。此外,可以通过使用导出的第二变换类型(FlipDCT8)的变换矩阵执行正交变换/逆正交变换,获得与使用DST7的变换矩阵进行正交变换/逆正交变换的情况类似的编码效率。此外,在这种情况下,可以通过一次运算来导出第二变换矩阵(减小类型替代变换矩阵)。
此外,第四行示例下方的一行示例(从顶部起的第五行示例)的导出聚焦于第一变换类型的最高阶列向量的波形与要替代的变换矩阵的变换类型的最低阶行向量的波形之间的相似性。
在这种情况下,导出单元翻转第一变换矩阵,并且对经翻转的第一变换矩阵进行转置,以导出第二变换矩阵。更具体地,导出单元使用DCT8的变换矩阵作为基本变换矩阵Tbase,并且在行方向上翻转变换矩阵,并且进一步转置变换矩阵,以导出TrFlipDCT8的变换矩阵。由于DCT8的变换矩阵的最高阶列向量的波形是山形类型,因此导出的TrFlipDCT8的变换矩阵的0阶行向量的波形是山形类型。因此,具有0阶行向量的山形类型的DST1的变换矩阵可以用TrFlipDCT8的变换矩阵来替代。
通过应用这样的导出,变得不需要准备DST1的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,可以减少单一变换类型的数目。即,可以抑制LUT大小的增加。此外,可以通过使用导出的第二变换类型(TrFlipDCT8)的变换矩阵执行正交变换/逆正交变换,获得与使用DST1的变换矩阵进行正交变换/逆正交变换的情况类似的编码效率。此外,在这种情况下,可以通过两次运算来导出第二变换矩阵(山形类型替代变换矩阵)。
此外,在第五行示例下方的一行示例(从顶部起的第六行示例)的导出聚焦于配对的DCT与DST之间的特性,类似于从顶部起的第三行示例的情况。更具体地,在要配对的DCT/DST(例如,DCT8与DST7)之间,注意到以下点:偶数行向量是轴对称的,而奇数行向量是点对称的。
在这种情况下,导出单元翻转第一变换矩阵,并且使经翻转的第一变换矩阵的奇数行向量的符号反转,以导出第二变换矩阵。更具体地,导出单元使用DCT8的变换矩阵作为基本变换矩阵Tbase,并且在行方向上翻转变换矩阵,并且进一步使奇数阶行向量的符号反转,以导出DST7的变换矩阵。自然地,具有0阶行向量的增加类型波形的DST7的变换矩阵可以用导出的DST7的变换矩阵来替代。
通过应用这样的导出,变得不需要准备DST7的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,可以减少单一变换类型的数目。即,可以抑制LUT大小的增加。此外,自然地,可以通过使用导出的第二变换类型的变换矩阵(DST7)来执行正交变换/逆正交变换,来获得与使用DST7的变换矩阵进行正交变换/逆正交变换的情况相同的编码效率。此外,在这种情况下,可以通过两次运算来导出第二变换矩阵(要配对的替代变换矩阵)。
此外,第六行示例下方的一行示例(从顶部起的第七行示例)的导出聚焦于第一变换类型的最低阶列向量的波形与要替代的变换矩阵的变换类型的最低阶行向量的波形之间的相似性。
在这种情况下,导出单元转置第一变换矩阵以导出第二变换矩阵。更具体地,导出单元使用DCT2的变换矩阵作为基本变换矩阵Tbase,并且对变换矩阵进行转置以导出DCT3的变换矩阵。由于DCT2的变换矩阵的0阶列向量的波形是减小类型,因此导出的DCT3的变换矩阵的0阶行向量的波形是减小类型。因此,具有0阶行向量的减小类型波形的DCT8的变换矩阵可以用DCT3的变换矩阵来替代。
通过应用这样的导出,变得不需要准备DCT8的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,可以减少单一变换类型的数目。即,可以抑制LUT大小的增加。此外,可以通过使用导出的第二变换类型(DCT3)的变换矩阵执行正交变换/逆正交变换,获得与使用DCT8的变换矩阵进行正交变换/逆正交变换的情况类似的编码效率。此外,在这种情况下,可以通过一次运算来导出第二变换矩阵(减小类型替代变换矩阵)。
此外,第七行示例下方的一行示例(从顶部起的第八行示例)的导出聚焦于第一变换类型的最高阶列向量的波形与要替代的变换矩阵的变换类型的最低阶行向量的波形之间的相似性。
在这种情况下,导出单元对第一变换矩阵进行转置,并且翻转经转置的第一变换矩阵,以导出第二变换矩阵。更具体地,导出单元使用DCT2的变换矩阵作为基本变换矩阵Tbase,并且对变换矩阵进行转置,并在行方向上翻转变换矩阵,以导出FlipDCT3的变换矩阵。由于DCT2的变换矩阵的最高阶列向量的波形是山形类型,因此导出的FlipDCT3的变换矩阵的0阶行向量的波形是增加类型。因此,具有0阶行向量的增加类型波形的DST7的变换矩阵可以用FlipDCT3的变换矩阵来替代。
通过应用这样的导出,变得不需要准备DST7的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,可以减少单一变换类型的数目。即,可以抑制LUT大小的增加。此外,可以通过使用导出的第二变换类型(FlipDCT3)的变换矩阵执行正交变换/逆正交变换,获得与使用DST7的变换矩阵进行正交变换/逆正交变换的情况类似的编码效率。此外,在这种情况下,可以通过两次运算来导出第二变换矩阵(增加类型替代变换矩阵)。
注意,上述导出示例中的每一个可以独立地执行,或者可以以多个导出示例的组合来执行。
<图像编码设备>
接下来,将描述用于导出以上变换矩阵的配置。图11是示出作为应用本技术的图像处理装置的一个模式的图像编码设备的配置示例的示例的框图。图11中所示的图像编码设备100是对运动图像的图像数据进行编码的设备。例如,图像编码设备100实现非专利文献1、非专利文献3或非专利文献4中描述的技术,并且通过符合前述文献中的任何一个中描述的标准的方法来对运动图像的图像数据进行编码。
注意,图11示出主处理单元、数据流等,并且图11中示出的那些不一定是全部。即,在图像编码设备100中,可以存在未示为图11中的块的处理单元或者未示为图11中的箭头等的处理或数据流。这在用于描述图像编码设备100中的处理单元等的其他附图中是类似的。
如图11所示,图像编码设备100包括控制单元101、重排缓冲器111、计算单元112、正交变换单元113、量化单元114、编码单元115、累积缓冲器116、逆量化单元117、逆正交变换单元118、计算单元119、环路滤波器单元120、帧存储器121、预测单元122和速率控制单元123。
<控制单元>
控制单元101基于外部处理单元或预先指定的处理单元中的块大小,将由重排缓冲器111保存的运动图像数据划分成处理单元中的块(CU、PU、变换块等)。此外,控制单元101基于例如速率失真优化(RDO)来确定要提供给每个块的编码参数(头信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、滤波器信息Finfo等)。
下面将描述这些编码参数的细节。在确定上述编码参数之后,控制单元101将编码参数提供给每个块。具体地,编码参数如下。
头部信息Hinfo被提供给每个块。
预测模式信息Pinfo被提供给编码单元115和预测单元122。
变换信息Tinfo被提供给编码单元115、正交变换单元113、量化单元114、逆量化单元117和逆正交变换单元118。
滤波器信息Finfo被提供给环路滤波器单元120。
<重排缓冲器>
运动图像数据的每个字段(输入图像)按照再现顺序(显示顺序)被输入至图像编码设备100。重排缓冲器111以其再现顺序(显示顺序)获取并且保存(存储)每个输入图像。重排缓冲器111基于控制单元101的控制,以编码顺序(解码顺序)重排输入图像,或者将输入图像划分成处理单元中的块。重排缓冲器111将处理的输入图像提供给计算单元112。此外,重排缓冲器111还将输入图像(原始图像)提供给预测单元122和环路滤波器单元120。
<计算单元>
计算单元112使用与处理单元中的块对应的图像I和从预测单元122提供的预测图像P作为输入,如以下表达式(6)所示,从图像I中减去预测图像P以导出预测残差D,并且将预测残差D提供给正交变换单元113。
[数学式4]
D=I-P···(6)
<正交变换单元>
正交变换单元113使用从计算单元112提供的预测残差D和从控制单元101提供的变换信息Tinfo作为输入,并且基于变换信息Tinfo对预测残差D进行正交变换,以导出变换系数Coeff。正交变换单元113将获得的变换系数Coeff提供给量化单元114。
<量化单元>
量化单元114使用从正交变换单元113提供的变换系数Coeff和从控制单元101提供的变换信息Tinfo作为输入,并且基于变换信息Tinfo来缩放(量化)变换系数Coeff。注意,该量化的速率由速率控制单元123控制。量化单元114将通过量化获得的量化变换系数(即,量化的变换系数级别level)提供给编码单元115和逆量化单元117。
<编码单元>
编码单元115使用从量化单元114提供的量化变换系数级别level、从控制单元101提供的各种编码参数(头部信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、滤波器信息Finfo等)、从环路滤波器单元120提供的关于滤波器的信息(例如,滤波器系数)以及从预测单元122提供的关于最佳预测模式的信息作为输入。编码单元115对经量化的变换系数级别level执行可变长度编码(例如,算术编码),以生成比特串(编码数据)。
此外,编码单元115从量化的变换系数级别level导出残差信息Rinfo,并且对残差信息Rinfo进行编码,以生成比特串。
此外,编码单元115包括从环路滤波器单元120提供给滤波器信息Finfo的关于滤波器的信息,并且包括从预测单元122提供给预测模式信息Pinfo的关于最佳预测模式的信息。然后,编码单元115对上述各种编码参数(头部信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、滤波器信息Finfo等)进行编码以生成比特串。
此外,编码单元115对如上所述的那样生成的各种类型的信息的比特串进行多路复用,以生成编码数据。编码单元115将编码数据提供给累积缓冲器116。
<累积缓冲器>
累积缓冲器116暂时存储由编码单元115获得的编码数据。累积缓冲器116在预定定时处将所存储的编码数据作为比特流等输出至图像编码设备100的外部。例如,编码数据经由任何记录介质、任意传输介质、任意信息处理装置等被发送至解码侧。即,累积缓冲器116也是发送编码数据(比特流)的发送单元。
<逆量化单元>
逆量化单元117执行关于逆量化的处理。例如,逆量化单元117使用从量化单元114提供的量化变换系数级别level和从控制单元101提供的变换信息Tinfo作为输入,并且基于变换信息Tinfo对经量化的变换系数级别level的值进行缩放(逆量化)。注意,逆量化是在量化单元114中执行的量化的逆处理。逆量化单元117将通过逆量化获得的变换系数Coeff_IQ提供至逆正交变换单元118。
<逆正交变换单元>
逆正交变换单元118执行关于逆正交变换的处理。例如,逆正交变换单元118使用从逆量化单元117提供的变换系数Coeff_IQ和从控制单元101提供的变换信息Tinfo作为输入,并且基于变换信息Tinfo对变换系数Coeff_IQ进行逆正交变换,以导出预测残差D'。注意,逆正交变换是在正交变换单元113中执行的正交变换的逆处理。逆正交变换单元118将通过逆正交变换获得的预测残差D'提供给计算单元119。注意,由于逆正交变换单元118类似于解码侧的逆正交变换单元(将在下面描述),因此可以将针对解码侧给出的描述(将在下面描述)应用于逆正交变换单元118。
<计算单元>
计算单元119使用从逆正交变换单元118提供的预测残差D'和从预测单元122提供的预测图像P作为输入。计算单元119将预测残差D'和与该预测残差D'对应的预测图像P相加,以导出局部解码图像Rlocal。计算单元119将导出的局部解码图像Rlocal提供给环路滤波器单元120和帧存储器121。
<环路滤波器单元>
环路滤波器单元120执行关于环路滤波处理的处理。例如,环路滤波器单元120使用从计算单元119提供的局部解码图像Rlocal、从控制单元101提供的滤波器信息Finfo以及从重排缓冲器111提供的输入图像(原始图像)作为输入。注意,输入至环路滤波器单元120的信息可以是除前述信息之外的信息。例如,可以根据需要将诸如预测模式、运动信息、代码量目标值、量化参数QP、图片类型、块(CU、CTU等)的信息输入至环路滤波器单元120。
环路滤波器单元120基于滤波器信息Finfo,对局部解码图像Rlocal适当地执行滤波处理。环路滤波器单元120还使用输入图像(原始图像)和其他输入信息,以根据需要进行滤波处理。
例如,如非专利文献1中所述,环路滤波器单元120依次应用双边滤波器、解块滤波器(DBF)、自适应偏移滤波器(采样自适应偏移(SAO))和自适应环路滤波器(自适应环路滤波器(ALF))这四个环路滤波器。注意,应用哪个滤波器以及以哪个顺序应用滤波器是任意的,并且可以适当地选择。
当然,由环路滤波器单元120执行的滤波处理是任意的,并且不限于以上示例。例如,环路滤波器单元120可以应用维纳滤波器等。
环路滤波器单元120将经滤波的局部解码图像Rlocal提供给帧存储器121。注意,在将诸如滤波器系数的关于滤波器的信息发送至解码侧的情况下,环路滤波器单元120将关于滤波器的信息提供给编码单元115。
<帧存储器>
帧存储器121执行关于与图像有关的数据的存储的处理。例如,帧存储器121使用从计算单元119提供的局部解码图像Rlocal和从环路滤波器单元120提供的经滤波的局部解码图像Rlocal作为输入,并且保存(存储)输入。此外,帧存储器121使用局部解码图像Rlocal重新构造并且保存每个图片单元的解码图像R(将解码图像R存储在帧存储器121的缓冲器中)。帧存储器121响应于来自预测单元122的请求将解码图像R(或其一部分)提供给预测单元122。
<预测单元>
预测单元122执行关于预测图像的生成的处理。例如,预测单元122使用从控制单元101提供的预测模式信息Pinfo、从重排缓冲器111提供的输入图像(原始图像)和从帧存储器121读取的解码图像R(或其一部分)作为输入。预测单元122使用预测模式信息Pinfo和输入图像(原图像),执行诸如帧间预测、帧内预测等预测处理,使用解码图像作为参考图像来执行预测,基于预测结果来执行运动补偿处理,并且生成预测图像P。预测单元122将生成的预测图像P提供给计算单元112和119。此外,预测单元122根据需要将通过以上处理选择的预测模式(即,关于最佳预测模式的信息)提供给编码单元115。
<速率控制单元>
速率控制单元123执行关于速率控制的处理。例如,速率控制单元123基于在累积缓冲器116中累积的编码数据的代码量来控制量化单元114的量化运算的速率,使得不会发生上溢或下溢。
在具有上述配置的图像编码设备100中,正交变换单元113作为导出单元和正交变换单元执行应用了上述本技术的处理。此外,编码单元115作为编码单元执行应用了上述本技术的处理。此外,逆正交变换单元118作为逆正交变换单元和导出单元执行应用了上述本技术的处理。因此,图像编码设备100可以抑制正交变换/逆正交变换所需的存储器容量的增加。
<正交变换单元的细节>
图12是示出图11中的正交变换单元113的主要配置示例的框图。如图12所示,正交变换单元113包括开关151、一次变换单元152和二次变换单元153。
开关151使用预测残差D和与分量标识符compID对应的变换跳过标志ts_flag[compID]作为输入,并且在变换跳过标志ts_flag[compID]的值为NO_TS(=0)的情况下(在未应用变换跳过的情况下)将预测残差D提供给一次变换单元152。此外,在变换跳过标志ts_flag[compID]的值为2D_TS(=1)的情况下(在该值指示应用二维变换跳过的情况下),开关151跳过一次变换单元152和二次变换单元153,并且将预测残差D作为变换系数Coeff输出至正交变换单元113的外部(将预测残差D作为变换系数Coeff提供给量化单元114)。
一次变换单元152执行关于一次变换的处理,该处理是诸如正交变换的预定变换处理。例如,一次变换单元152使用分量标识符compID、分量标识符compID的自适应一次变换标志apt_flag[compID]、分量标识符compID的一次变换标识符pt_idx[compID]、预测模式信息PInfo、变换块的大小(宽度的对数值log2TBWSize和高度的对数值log2TBHSize)以及预测残差D作为输入。注意,变换块的宽度TBWSize也被称为TBWidth,并且其对数值也被称为log2TBWidth。类似地,变换块的高度TBHSize也被称为TBHeight,并且其对数值也被称为log2TBHeight。
一次变换单元152通过参考预测模式信息PInfo、分量标识符compID、分量标识符compID的自适应一次变换标志apt_flag[compID]和分量标识符compID的一次变换标识符pt_idx[compID],选择与分量标识符compID对应的一次水平变换的变换类型TrTypeH(和指示变换类型的一次水平变换类型标识符TrTypeIdxH)和一次垂直变换的变换类型TrTypeV(和指示变换类型的一次垂直变换类型标识符TrTypeIdxV)。
此外,一次变换单元152对预测残差D,执行由一次水平变换类型标识符TrTypeIdxH(或一次水平变换类型TrTypeH)和变换块的宽度log2TBWSize确定的一次水平变换以及由一次垂直变换类型标识符TrTypeIdxV(或一次垂直变换类型TrTypeV)和变换块的高度log2TBHSize确定的一次垂直变换,以导出变换系数Coeff_P。一次水平变换是水平方向的一维正交变换,并且一次垂直变换是垂直方向的一维正交变换。
一次变换单元152将导出的变换系数Coeff_P提供给二次变换单元153。
二次变换单元153执行关于二次变换的处理,该处理是诸如正交变换的预定变换处理。例如,二次变换单元153使用二次变换标识符st_idx、指示扫描变换系数的方法的扫描标识符scanIdx以及变换系数Coeff_P作为输入。二次变换单元153基于二次变换标识符st_idx和扫描标识符scanIdx,对变换系数Coeff_P执行二次变换,以导出二次变换之后的变换系数Coeff_S。
更具体地,在二次变换标识符st_idx指示应用二次变换(st_idx>0)的情况下,二次变换单元153对变换系数Coeff_P执行与二次变换标识符st_idx对应的二次变换处理,以导出二次变换之后的变换系数Coeff_S。
二次变换单元153将二次变换系数Coeff_S输出至正交变换单元113的外部(将二次变换系数Coeff_S提供给量化单元114)作为变换系数Coeff。
此外,在二次变换标识符st_idx指示不应用二次变换(st_idx==0)的情况下,二次变换单元153跳过二次变换,并且将一次变换之后的变换系数Coeff_P输出至正交变换单元113的外部(将一次变换之后的变换系数Coeff_P提供给量化单元114)作为变换系数Coeff(二次变换之后的变换系数Coeff_S)。
在具有以上配置的正交变换单元113中,一次变换单元152作为导出单元和正交变换单元执行应用了上述本技术的处理。即,导出单元使用第一变换矩阵来导出第二变换矩阵,并且正交变换单元使用由导出单元导出的第二变换矩阵对预测残差执行一次变换。因此,可以抑制一次变换所需的存储器容量的增加。
注意,如上所述,一次变换单元152执行一次水平变换和一次垂直变换作为一次变换。即,导出单元导出用于水平方向的一维正交变换的第二变换矩阵和用于垂直方向的一维正交变换的第二变换矩阵,并且正交变换单元使用由导出单元导出的用于水平方向的一维正交变换的第二变换矩阵来执行水平方向的一维正交变换,并且进一步使用由导出单元导出的用于垂直方向的一维正交变换的第二变换矩阵来执行垂直方向的一维正交变换,作为一次变换。因此,可以抑制其中执行水平方向的一维正交变换和垂直方向的一维正交变换的一次变换所需的存储器容量的增加。
<图像编码处理的流程>
接下来,将描述由以上图像编码设备100执行的每个处理的流程。首先,将参照图13中的流程图描述图像编码处理的流程的示例。
当开始图像编码处理时,在步骤S101中,重排缓冲器111由控制单元101控制,并且将输入运动图像数据的帧从显示顺序重排为编码顺序。
在步骤S102中,控制单元101设置针对由重排缓冲器111保持的输入图像的处理单元(执行块划分)。
在步骤S103中,控制单元101确定(设置)由重排缓冲器111保存的输入图像的编码参数。
在步骤S104中,预测单元122执行预测处理,并且在最佳预测模式下生成预测图像等。例如,在预测处理中,预测单元122执行帧内预测以在最佳帧内预测模式下生成预测图像,执行帧间预测以在最佳帧间预测模式下生成预测图像,并且基于成本函数值等从预测图像中选择最佳预测模式。
在步骤S105中,计算单元112计算输入图像与在步骤S104中通过预测处理选择的最佳模式下的预测图像之间的差。即,计算单元112生成输入图像与预测图像之间的预测残差D。以这种方式获得的预测残差D与原图像数据相比,数据量减少。因此,与按原样对图像进行编码的情况相比,可以压缩数据量。
在步骤S106中,正交变换单元113对通过步骤S105中的处理生成的预测残差D执行正交变换处理,以导出变换系数Coeff。
在步骤S107中,量化单元114通过使用由控制单元101等计算的量化参数来量化由步骤S106中的处理获得的变换系数Coeff,以导出经量化的变换系数级别level。
在步骤S108中,逆量化单元117利用与步骤S107中的量化的特性对应的特性,对通过步骤S107中的处理生成的经量化的变换系数级别level进行逆量化,以导出变换系数Coeff_IQ。
在步骤S109中,逆正交变换单元118通过与步骤S106中的正交变换处理对应的方法,对通过步骤S108中的处理获得的变换系数Coeff_IQ进行逆正交变换,以导出预测残差D'。注意,由于逆正交变换处理类似于在解码侧执行的逆正交变换处理(将在下面描述),因此可以将对解码侧的描述(将在下面给出)应用于步骤S109中的逆正交变换处理。
在步骤S110中,计算单元119将通过步骤S104中的预测处理获得的预测图像与通过步骤S109中的处理导出的预测残差D'相加,以生成局部解码图像。
在步骤S111中,环路滤波器单元120对通过步骤S110中的处理导出的局部解码图像执行环路滤波处理。
在步骤S112中,帧存储器121存储通过步骤S110中的处理导出的局部解码图像和在步骤S112中被滤波的局部解码图像。
在步骤S113中,编码单元115对通过步骤S107中的处理获得的经量化的变换系数级别level进行编码。例如,编码单元115通过算术编码等对作为关于图像的信息的经量化变换系数级别level进行编码,以生成编码数据。此外,在此时,编码单元115对各种编码参数(头部信息Hinfo、预测模式信息Pinfo和变换信息Tinfo)进行编码。此外,编码单元115根据经量化的变换系数级别level导出残差信息RInfo,并且对残差信息RInfo进行编码。
在步骤S114中,累积缓冲器116累积由此获得的编码数据,并且将编码数据例如作为比特流输出至图像编码设备100的外部。例如,比特流经由传输路径或记录介质被发送至解码侧。此外,速率控制单元123根据需要执行速率控制。
当步骤S114中的处理结束时,图像编码处理结束。
在以上流程的图像编码处理中,执行应用了上述本技术的处理,作为步骤S106的处理。此外,执行应用了上述本技术的处理,作为步骤S109的处理。此外,执行应用了上述本技术的处理,作为步骤S113的处理。因此,通过执行图像编码处理,可以抑制正交变换/逆正交变换所需的存储器容量的增加。
<正交变换处理的流程>
接下来,将参照图14中的流程图描述在图13中的步骤S106中执行的正交变换处理的流程的示例。
当开始正交变换处理时,在步骤S131中,开关151确定变换跳过标志ts_flag是否为2D_TS(在指示二维变换跳过的情况下)(例如,1(真))或者变换量化旁路标志transquant_bypass_flag是否为1(真)。在确定变换跳过标志ts_flag是2D_TS(例如,1(真))或变换量化旁路标志是1(真)的情况下,正交变换处理结束,并且处理返回到图13。在这种情况下,省略正交变换处理(一次变换和二次变换),并且将输入预测残差D用作变换系数Coeff。
此外,在图14的步骤S131中,在确定变换跳过标志ts_flag不是2D_TS(不是二维变换跳过)(例如,0(假))并且变换量化旁路标志transquant_bypass_flag是0(假)的情况下,处理进行至步骤S132。在这种情况下,执行一次变换处理和二次变换处理。
在步骤S132中,一次变换单元152基于利用分量标识符compID指定的自适应一次变换信息对输入预测残差D执行一次变换处理,以导出一次变换之后的变换系数Coeff_P。
在步骤S133中,二次变换单元153对变换系数Coeff_P执行二次变换处理,以导出二次变换之后的变换系数Coeff_S(变换系数Coeff)。
当步骤S133中的处理结束时,正交变换处理结束。
在以上正交变换处理中,执行应用了上述本技术的处理,作为步骤S132的处理。因此,通过执行正交变换处理,可以抑制一次变换所需的存储器容量的增加。
<图像编码设备>
图15是示出作为应用本技术的图像处理装置的模式的图像解码设备的配置的示例的框图。图15所示的图像解码设备200是对作为图像与预测图像之间的编码预测残差的编码数据(诸如AVC、HEVC等)进行解码的设备。例如,图像解码设备200实现非专利文献1、非专利文献3、或非专利文献4中描述的技术,并且通过符合上述文献中的任意文献中描述的标准的方法,对作为运动图像的编码图像数据的编码数据进行解码。例如,图像解码设备200对由上述图像编码设备100生成的编码数据(比特流)进行解码。
注意,图15示出主处理单元、数据流等,并且图15中示出的那些不一定是全部。即,在图像解码设备200中,可以存在未示为图15中的块的处理单元或者未示为图15中的箭头等的处理或数据流。这在用于描述图像解码设备200中的处理单元等的其他附图中是类似的。
在图15中,图像解码设备200包括累积缓冲器211、解码单元212、逆量化单元213、逆正交变换单元214、计算单元215、环路滤波器单元216、重排缓冲器217、帧存储器218和预测单元219。注意,预测单元219包括帧内预测单元和帧间预测单元(未示出)。图像解码设备200是通过对编码数据(比特流)进行解码来生成运动图像数据的设备。
<累积缓冲器>
累积缓冲器211获取输入至图像解码设备200的比特流并且保存(存储)该比特流。累积缓冲器211在预定定时处或在例如满足预定条件的情况下将累积的比特流提供给解码单元212。
<解码单元>
解码单元212执行关于图像解码的处理。例如,解码单元212使用从累积缓冲器211提供的比特流作为输入,并且根据语法表的限定对来自比特串的每个语法元素的语法值执行可变长度解码以导出参数。
从语法元素和语法元素的语法值导出的参数包括信息,例如头部信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、残差信息Rinfo和滤波器信息Finfo。即,解码单元212从比特流解析(分析和获取)这样的信息。这些信息将在下面描述。
<头部信息Hinfo>
头部信息Hinfo包括例如诸如视频参数集(VPS)/序列参数集(SPS)/图片参数集(PPS)/切片头部(SH)的头信息。头信息Hinfo包括例如限定图像大小(宽PicWidth和高PicHeight)、比特深度(亮度bitDepthY和色度bitDepthC)、色度阵列类型ChromaArrayType、CU大小最大值MaxCUSize/最小值MinCUSize、四叉树划分的最大深度MaxQTDepth/最小深度MinQTDepth、二叉树划分的最大深度MaxBTDepth/最小深度MinBTDepth、变换跳过块的最大值MaxTSSize(也被称为最大变换跳过块大小)、每个编码工具的开/关标志(也被称为有效标志)等的信息。
例如,在头信息Hinfo中包括的编码工具的开/关标志的示例包括与以下的变换和量化处理相关的开/关标志。注意,编码工具的开/关标志也可以被解释为指示与编码工具相关的语法是否存在于编码数据中的标志。此外,在开/关标志的值是1(真)的情况下,该值指示编码工具可用。在开/关标志的值是0(假)的情况下,该值指示编码工具不可用。注意,可以逆转(reverse)对标志值的解释。
分量间预测使能标志(ccp_enabled_flag)是指示分量间预测(跨分量预测(CCP))是否可用的标志信息。例如,在标志信息是“1”(真)的情况下,标志信息指示分量间预测可用。在标志信息为“0”(假)的情况下,标志信息指示分量间预测不可用。
注意,该CCP也被称为分量间线性预测(CCLM或CCLMP)。
<预测模式信息Pinfo>
预测模式信息Pinfo例如包括诸如要处理的预测块(PB)的大小信息PBSize(预测块大小)、帧内预测模式信息IPinfo和运动预测信息MVinfo的信息。
帧内预测模式信息IPinfo包括例如JCTVC-W1005的7.3.8.5编码单元语法中的prev_intra_luma_pred_flag、mpm_idx和rem_intra_pred_mode、从该语法导出的亮度帧内预测模式IntraPredModeY等。
此外,帧内预测模式信息IPinfo包括例如分量间预测标志(ccp_flag(cclmp_flag))、多类别线性预测模式标志(mclm_flag)、色度样本位置类型标识符(chroma_sampe_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格式的情况下,色度样本位置类型标识符如以下表达式(7)那样被指定。
[数学式5]
chroma_sample_loc_type_idx==0:Type2
chroma_sample_loc_type_idx==1:Type3
chroma_sample_loc_type_idix==2:Type0
chroma_sample_loc_type_idx==3:Typel
···(7)
注意,色度样本位置类型标识符(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中的信息是任意的,并且可以包括除以上信息之外的信息。
返回到解码单元212的描述,解码单元212参考残差信息Rinfo,并且导出每个变换块中的每个系数位置处的经量化的变换系数级别level。解码单元212将经量化的变换系数级别level提供给逆量化单元213。
此外,解码单元212将经解析的头部信息Hinfo、预测模式信息Pinfo、经量化的变换系数级别level、变换信息Tinfo和滤波器信息Finfo提供给每个块。下面给出具体描述。
将头部信息Hinfo提供给逆量化单元213、逆正交变换单元214、预测单元219和环路滤波器单元216。
将预测模式信息Pinfo提供给逆量化单元213和预测单元219。
将变换信息Tinfo提供给逆量化单元213和逆正交变换单元214。
滤波器信息Finfo被提供给环路滤波器单元216。
当然,以上示例是示例,并且本实施方式不限于该示例。例如,可以将每个编码参数提供给任意处理单元。此外,可以将其他信息提供给任意处理单元。
<逆量化单元>
逆量化单元213执行关于逆量化的处理。例如,逆量化单元213使用从解码单元212提供的变换信息Tinfo和经量化的变换系数级别level作为输入,并且基于变换信息Tinfo,对经量化的变换系数级别level的值进行缩放(逆量化),以导出逆量化之后的变换系数Coeff_IQ。
注意,执行该逆量化作为由量化单元114进行的量化的逆处理。此外,逆量化是与由逆量化单元117执行的逆量化类似的处理。即,逆量化单元117执行与逆量化单元213类似的处理(逆量化)。
逆量化单元213将导出的变换系数Coeff_IQ提供给逆正交变换单元214。
<逆正交变换单元>
逆正交变换单元214执行关于逆正交变换的处理。例如,逆正交变换单元214使用从逆量化单元213提供的变换系数Coeff_IQ和从解码单元212提供的变换信息Tinfo作为输入,并且基于变换信息Tinfo对变换系数Coeff_IQ执行逆正交变换处理,以导出预测残差D'。
注意,执行该逆正交变换作为由正交变换单元113进行的正交变换的逆处理。此外,逆正交变换是与由逆正交变换单元118执行的逆正交变换类似的处理。即,逆正交变换单元118执行与逆正交变换单元214的处理类似的处理(逆正交变换)。
逆正交变换单元214将导出的预测残差D'提供给计算单元215。
<计算单元>
计算单元215执行关于与图像有关的信息的添加的处理。例如,计算单元215使用从逆正交变换单元214提供的预测残差D'和从预测单元219提供的预测图像P作为输入。计算单元215将预测残差D'和与预测残差D'对应的预测图像P(预测信号)相加,以导出局部解码图像Rlocal,如下面的表达式(8)所示。
[数学式6]
Rl。cal=D’+P···(8)
计算单元215将导出的局部解码图像Rlocal提供给环路滤波器单元216和帧存储器218。
<环路滤波器单元>
环路滤波器单元216执行关于环路滤波处理的处理。例如,环路滤波器单元216使用从计算单元215提供的局部解码图像Rlocal和从解码单元212提供的滤波器信息Finfo作为输入。注意,输入至环路滤波器单元216的信息可以是除前述信息之外的信息。
环路滤波器单元216基于滤波器信息Finfo,对局部解码图像Rlocal适当地执行滤波处理。
例如,如非专利文献1中所述,环路滤波器单元216依次应用双边滤波器、解块滤波器(DBF)、自适应偏移滤波器(采样自适应偏移(SAO))和自适应环路滤波器(自适应环路滤波器(ALF))这四个环路滤波器。注意,应用哪个滤波器以及以哪个顺序应用滤波器是任意的,并且可以适当地选择。
环路滤波器单元216执行与编码侧(例如,由图像编码设备100的环路滤波器单元120)执行的滤波处理对应的滤波处理。当然,由环路滤波器单元216执行的滤波处理是任意的,并且不限于以上示例。例如,环路滤波器单元216可以应用维纳滤波器等。
环路滤波器单元216将经滤波的局部解码图像Rlocal提供给重排缓冲器217和帧存储器218。
<重排缓冲器>
重排缓冲器217使用从环路滤波器单元216提供的局部解码图像Rlocal,并且保存(存储)局部解码图像Rlocal。重排缓冲器217使用局部解码图像Rlocal来重新构造每个图片单元的解码图像R,并且将解码图像R保存(存储)(在缓冲器中)。重排缓冲器217将获得的解码图像R从解码顺序重排为再现顺序。重排缓冲器217将经重排的解码图像R组作为运动图像数据输出至图像解码设备200的外部。
<帧存储器>
帧存储器218执行关于与图像有关的数据的存储的处理。例如,帧存储器218使用从计算单元215提供的局部解码图像Rlocal作为输入,针对每个图片单元重新构造解码图像R,并且将解码图像R存储在帧存储器218中的缓冲器中。
此外,帧存储器218使用从环路滤波器单元216提供的经环路滤波的局部解码图像Rlocal作为输入,针对每个图片单元重新构造解码图像R,并且将解码图像R存储在帧存储器218的缓冲器中。帧存储器218将存储的解码图像R(或其一部分)作为参考图像适当地提供给预测单元219。
注意,帧存储器218可以存储与解码图像的生成有关的头部信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、滤波器信息Finfo等。
<预测单元>
预测单元219执行关于预测图像的生成的处理。例如,预测单元219使用从解码单元212提供的预测模式信息Pinfo作为输入,并且通过由预测模式信息Pinfo指定的预测方法执行预测,以导出预测图像P。在导出时,预测单元219使用存储在帧存储器218中的滤波之前或之后的解码图像R(或其一部分)作为参考图像,解码图像R由预测模式信息Pinfo指定。预测单元219将导出的预测图像P提供给计算单元215。
在具有以上配置的图像解码设备200中,逆正交变换单元214作为导出单元和逆正交变换单元执行应用了上述本技术的处理。此外,解码单元212作为解码单元执行应用上述本技术的处理。因此,图像解码设备200可以抑制逆正交变换所需的存储器容量的增加。
<逆正交变换单元的细节>
图16是示出图15中的逆正交变换单元214的主要配置示例的框图。如图16所示,逆正交变换单元214包括开关251、逆二次变换单元252和逆一次变换单元253。
开关251使用变换系数Coeff_IQ和变换跳过标志ts_flag[compID]作为输入。在变换跳过标志ts_flag[compID]的值是NO_TS(=0)的情况下,即,在未应用变换跳过的情况下,开关251将变换系数Coeff_IQ提供给逆二次变换单元252。此外,在变换跳过标志ts_flag[compID]的值是2D_TS(=1)的情况下,即,在应用二维变换跳过的情况下,开关251跳过逆二次变换单元252和逆一次变换单元253,并且将变换系数Coeff_IQ作为预测残差D'输出至逆正交变换单元214的外部(将变换系数Coeff_IQ作为预测残差D'提供给计算单元215)。
逆二次变换单元252执行关于逆二次变换的处理,该处理是在编码侧(例如,由图像编码设备100的二次变换单元153)执行的二次变换的逆处理。例如,逆二次变换单元252使用二次变换标识符st_idx、指示扫描变换系数的方法的扫描标识符scanIdx和从开关251提供的变换系数Coeff_IQ作为输入。
逆二次变换单元252基于二次变换标识符st_idx和扫描标识符scanIdx对变换系数Coeff_IQ执行逆二次变换,以导出逆二次变换之后的变换系数Coeff_IS。
更具体地,在二次变换标识符st_idx指示应用逆二次变换(st_idx>0)的情况下,逆二次变换单元252针对变换系数Coeff_IQ执行与二次变换标识符st_idx对应的逆二次变换处理,以导出二次变换之后的变换系数Coeff_IS。逆二次变换单元252将逆二次变换之后的变换系数Coeff_IS提供给逆一次变换单元253。
注意,在二次变换标识符st_idx指示不应用逆二次变换(st_idx=0)的情况下,逆二次变换单元252跳过逆二次变换,并且将变换系数Coeff_IQ作为逆二次变换之后的变换系数Coeff_IS提供给逆一次变换单元253。
逆一次变换单元253执行与逆一次变换相关的处理,该处理是在编码侧(例如,由图像编码设备100的一次变换单元152)执行的一次变换的逆处理。例如,逆一次变换单元253使用分量标识符compID、分量标识符compID的自适应一次变换标志apt_flag[compID]、分量标识符compID的一次变换标识符pt_idx[compID]、预测模式信息PInfo、变换块的大小(宽度的对数值log2TBWSize和高度的对数值log2TBHSize)以及逆二次变换之后的变换系数Coeff_IS作为输入。
逆一次变换单元253通过参考预测模式信息PInfo、分量标识符compID、分量标识符compID的自适应一次变换标志apt_flag[compID]和分量标识符compID的一次变换标识符pt_idx[compID],选择与分量标识符compID对应的逆一次水平变换的变换类型TrTypeH(和指示变换类型的逆一次水平变换类型标识符TrTypeIdxH)和逆一次垂直变换的变换类型TrTypeV(和指示变换类型的逆一次垂直变换类型标识符TrTypeIdxV)。
此外,逆一次变换单元253对逆二次变换之后的变换系数Coeff_IS,执行由变换块的逆一次垂直变换类型标识符TrTypeIdxV(或逆一次垂直变换类型TrTypeeV)和高度的log2TBHSize限定的逆一次垂直变换以及由变换块的逆一次水平变换类型标识符TrTypeIdxH(或逆一次水平变换类型TrTypeH)和宽度的log2TBWSize限定的逆一次水平变换,以导出逆一次垂直变换之后的变换系数Coeff_IP。逆一次垂直变换是垂直方向的逆一维正交变换,并且逆一次水平变换是水平方向的逆一维正交变换。
逆一次变换单元253将逆一次变换之后的变换系数Coeff_IP作为预测残差D'输出至逆正交变换单元214的外部(将逆一次变换之后的变换系数Coeff_IP作为预测残差D'提供给计算单元215)。
在具有以上配置的逆正交变换单元214中,逆一次变换单元253作为导出单元和逆正交变换单元执行应用了上述本技术的处理。即,导出单元使用第一变换矩阵来导出第二变换矩阵,并且逆正交变换单元使用由导出单元导出的第二变换矩阵对逆二次变换结果执行逆一次变换。因此,可以抑制逆一次变换所需的存储器容量的增加。
注意,上述逆一次变换单元253执行逆一次垂直变换和逆一次水平变换作为逆一次变换。即,导出单元导出用于垂直方向的逆一维正交变换的第二变换矩阵和用于水平方向逆一维正交变换的第二变换矩阵,并且逆正交变换单元使用由导出单元导出的用于垂直方向的逆一维正交变换的第二变换矩阵来执行垂直方向的逆一维正交变换,并且进一步使用由导出单元导出的用于水平方向的逆一维正交变换的第二变换矩阵来执行水平方向的逆一维正交变换,作为逆一次变换。因此,可以抑制其中执行垂直方向的逆一维正交变换和水平方向的逆一维正交变换的一次变换所需的存储器容量的增加。
<图像解码处理的流程>
接下来,将描述由以上图像解码设备200执行的每个处理的流程。首先,将参照图17的流程图描述图像解码处理的流程的示例。
当开始图像解码处理时,在步骤S201中,累积缓冲器211获取并且保存(累积)从图像解码设备200的外部提供的编码数据(比特流)。
在步骤S202中,解码单元212对编码数据(比特流)进行解码,以获得经量化的变换系数级别level。此外,解码单元212通过该解码从编码数据(比特流)中解析(分析和获取)各种编码参数。
在步骤S203中,逆量化单元213对通过步骤S202中的处理获得的经量化的变换系数级别level执行逆量化以获得变换系数Coeff_IQ,逆量化为在编码侧执行的量化的逆处理。
在步骤S204中,逆正交变换单元214对通过步骤S203中的处理获得的变换系数Coeff_IQ执行作为在编码侧执行的正交变换处理的逆处理的逆正交变换处理,以获得预测残差D'。
在步骤S205中,预测单元219基于在步骤S202中解析的信息,通过在编码侧指定的预测方法执行预测处理,并且例如通过参考存储在帧存储器218中的参考图像来生成预测图像P。
在步骤S206中,计算单元215将通过步骤S204中的处理获得的预测残差D'与通过步骤S205中的处理获得的预测图像P相加,以导出局部解码图像Rlocal
在步骤S207中,环路滤波器单元216对通过步骤S206中的处理获得的局部解码图像Rlocal执行环路滤波处理。
在步骤S208中,重排缓冲器217使用通过步骤S207中的处理获得的经滤波的局部解码图像Rlocal来导出解码图像R,并且将解码图像R组从解码顺序重新排列为再现顺序。将按照再现顺序重新排列的解码图像R组作为运动图像输出至图像解码设备200的外部。
此外,在步骤S209中,帧存储器218存储通过步骤S206中的处理获得的局部解码图像Rlocal和通过步骤S207中的处理获得的滤波处理之后的局部解码图像Rlocal中的至少之一。
当步骤S209中的处理结束时,图像解码处理结束。
在以上流程的图像解码处理中,执行应用了上述本技术的处理,作为步骤S202的处理。此外,执行应用了上述本技术的处理,作为步骤S204的处理。因此,通过执行图像解码处理,可以抑制逆正交变换所需的存储器容量的增加。
<逆正交变换处理的流程>
接下来,将参照图18的流程图描述在图17的步骤S204中执行的逆正交变换处理的流程的示例。在开始逆正交变换处理时,在步骤S231中,开关251确定变换跳过标志ts_flag是否为2D_TS(在二维变换跳过的模式下)(例如1(真))或变换量化旁路标志transquant_bypass_flag是否为1(真)。在确定变换跳过标识符ts_idx是2D_TS或变换量化旁路标志为1(真)的情况下,逆正交变换处理结束,并且处理返回到图17。在这种情况下,省略逆正交变换处理(逆一次变换和逆二次变换),并且采用变换系数Coeff_IQ作为预测残差D'。
此外,在步骤S231中,在确定变换跳过标识符ts_idx不是2D_TS(二维变换跳过之外的模式)(例如,0(假))并且变换量化旁路标志为0(假)的情况下,处理进行至步骤S232。在这种情况下,执行逆二次变换处理和逆一次变换处理。
在步骤S232中,逆二次变换单元252基于二次变换标识符st_idx对变换系数Coeff_IQ执行逆二次变换处理以导出变换系数Coeff_IS,并且输出变换系数Coeff_IS。
在步骤S233中,逆一次变换单元253对变换系数Coeff_IS执行逆一次变换处理,以导出逆一次变换之后的变换系数Coeff_IP(预测残差D')。
当步骤S233中的处理结束时,逆正交变换处理结束。
在以上逆正交变换处理中,执行应用了上述本技术的处理,作为步骤S233的处理。因此,通过执行逆正交变换处理,可以抑制逆一次变换处理所需的存储器容量的增加。
<2-2.示例1-1>
<概念>
接下来,将更详细地描述参照图10描述的每个导出示例。首先,将描述图10中所示的表中的除了最上方部的项目名称行之外的从顶部起的第一行示例和第二行示例。
如上所述,从顶部起的第一行示例的导出聚焦于第一变换类型的最低阶行向量的波形与要替代的变换矩阵的变换类型的最低阶行向量的波形之间的相似性。在这种情况下,导出单元翻转第一变换矩阵,以导出第二变换矩阵。即,如图19所示,导出单元使用DST7的变换矩阵作为基本变换矩阵Tbase,并且在行方向上翻转变换矩阵以导出FlipDST7的变换矩阵。具有0阶行向量的类似波形的DCT8的(减小类型)变换矩阵可以由FlipDST7的变换矩阵来替代。
该导出的具体示例在图20的上部分中示出。如图20的上部分所示,该导出可以由基本变换矩阵Tbase(DST7)和翻转矩阵J的矩阵积来表达。此处,通过使N×N单元矩阵I左右反转来获得翻转矩阵J(也被称为交叉恒等矩阵)。
此外,从顶部起的第二行示例的导出聚焦于第一变换类型的最低阶列向量的波形与要替代的变换类型的变换矩阵的最低阶行向量的波形之间的相似性。在这种情况下,导出单元转置第一变换矩阵以导出第二变换矩阵。即,导出单元使用DST7的变换矩阵作为基本变换矩阵Tbase,并且转置变换矩阵以导出TrDST7的变换矩阵,如图19所示。具有0阶行向量的类似波形的DST1的(山形类型)变换矩阵可以由TrDST7的变换矩阵来替代。
该导出的具体示例在图20的下部分中示出。如图20的下部分所示,该导出可以通过基本变换矩阵Tbase(DST7)的转置来表达。
即,在以上两个导出示例中,第二变换矩阵都可以通过一次运算(翻转或转置)来导出。此外,运算是容易的。即,可以易于导出第二变换矩阵。
此外,通过应用以上两个导出示例,不必准备DCT8的变换矩阵和DST1的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,可以减少单一变换类型的数目。
在这种情况下,如图21中的表所示,在非专利文献1中描述的技术的情况下(参见图6中的表A)所需的五种类型的变换矩阵可以被减少到三种类型。因此,总LUT大小可以为约40KB。即,与非专利文献1中描述的技术的情况相比,LUT的大小可以减小(大约53KB(图6中的表A))。即,可以抑制LUT的大小的增加。
注意,如上所述,即使在这种情况下,也可以通过使用导出的第二变换类型(TrDST7或FlipDST7)的变换矩阵执行正交变换/逆正交变换,来获得与使用DST1的变换矩阵或DCT8的变换矩阵进行正交变换/逆正交变换的情况类似的编码效率。
<一次变换单元>
接下来,将描述用于执行这样的导出的配置、处理等。图22是示出一次变换单元152在这种情况下的主要配置示例的框图。如图22所示,一次变换单元152包括一次变换选择单元311、一次水平变换单元312和一次垂直变换单元313。
一次变换选择单元311使用预测模式信息PInfo、分量标识符compID、自适应一次变换标志apt_flag[compID]和一次变换标识符pt_idx[compID]作为输入。一次变换选择单元311通过参考以上信息,导出一次水平变换的变换类型标识符TrTypeIdxH和一次垂直变换的变换类型标识符TrTypeIdxV。一次变换选择单元311将导出的一次水平变换的变换类型TrTypeIdxH提供给一次水平变换单元312。此外,一次变换选择单元311将导出的一次垂直变换的变换类型标识符TrTypeIdxV提供给一次垂直变换单元313。
一次水平变换单元312使用预测残差D、一次水平变换的变换类型标识符TrTypeIdxH和关于变换块的大小的信息(未示出)作为输入。关于变换块的大小的信息可以是指示变换块在水平方向或垂直方向上的大小(系数的数目)的自然数N,或者可以是指示变换块的宽度的log2TBWSize(宽度的对数值)(N=1<<log2TBWSize)。一次水平变换单元312对预测残差D执行由变换类型标识符TrTypeIdxH和变换块的大小确定的一次水平变换Phor,以导出一次水平变换之后的变换系数Coeff_Phor。一次水平变换单元312将一次水平变换之后的变换系数Coeff_Phor提供给一次垂直变换单元313。
一次垂直变换单元313使用一次水平变换之后的变换系数Coeff_Phor、一次垂直变换的变换类型标识符TrTypeIdxV和关于变换块的大小的信息(未示出)作为输入。关于变换块的大小的信息可以是指示变换块在水平方向或垂直方向上的大小(系数的数目)的自然数N,或者可以是指示变换块的高度的log2TBHSize(高度的对数值)(N=1<<log2TBHSize)。一次垂直变换单元313对一次水平变换之后的变换系数Coeff_Phor执行由变换类型标识符TrTypeIdxV和变换块的大小确定的一次垂直变换Pver,以导出一次垂直变换之后的变换系数Coeff_Pver。一次垂直变换单元313将一次垂直变换之后的变换系数Coeff_Pver输出至一次变换单元152的外部(将一次垂直变换之后的变换系数Coeff_Pver提供给二次变换单元153)作为一次变换之后的变换系数Coeff_P。
在具有以上配置的一次变换单元152中,一次水平变换单元312和一次垂直变换单元313分别作为导出单元和正交变换单元执行应用了上述本技术的处理。
即,一次水平变换单元312作为导出单元导出用于水平方向的一维正交变换的第二变换矩阵,并且作为正交变换单元还使用由导出单元导出的用于水平方向的一维正交变换的第二变换矩阵来执行水平方向的一维正交变换。因此,一次水平变换单元312可以抑制水平方向的一维正交变换所需的存储器容量的增加。
此外,一次垂直变换单元313作为导出单元导出用于垂直方向的一维正交变换的第二变换矩阵,并且还作为正交变换单元使用由导出单元导出的用于垂直方向的一维正交变换的第二变换矩阵来执行垂直方向的一维正交变换。因此,一次垂直变换单元313可以抑制垂直方向的一维正交变换所需的存储器容量的增加。
<一次水平变换单元>
图23是示出图22中的一次水平变换单元312的主要配置示例的框图。如图23所示,一次水平变换单元312包括变换矩阵导出单元321、矩阵计算单元322、缩放单元323和剪切单元324。
变换矩阵导出单元321使用一次水平变换的变换类型标识符TrTypeIdxH和关于变换块的大小的信息作为输入,并且导出与变换块具有相同大小的用于一次水平变换的变换矩阵TH(用于水平方向的一维正交变换的变换矩阵TH),该变换矩阵TH与一次水平变换的变换类型标识符TrTypeIdxH对应。变换矩阵导出单元321将变换矩阵TH提供给矩阵计算单元322。
矩阵计算单元322使用从变换矩阵导出单元321提供的变换矩阵TH,对输入数据Xin(即,预测残差D的变换块)执行水平方向的一维正交变换,以获得中间数据Y1。该计算可以由如以下表达式(9)中的行列式来表达。
[数学式7]
Y1=Xin×TH T···(9)
矩阵计算单元322将中间数据Y1提供给缩放单元323。
缩放单元323利用预定的移位量SH对中间数据Y1的每个i行j列分量的系数Y1[i,j]进行缩放,以获得中间数据Y2。该缩放可以被表达为以下表达式(10)。下文中,某个二维矩阵(二维阵列)X的i行j列分量((i,j)分量)被写为X[i,j]。
[数学式8]
Y2[i,j]=Y1[i,j]>>SH···(10)
缩放单元323将中间数据Y2提供给剪切单元324。
剪切单元324剪切(clip)中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且导出输出数据Xout(即,一次水平变换之后的变换系数Coeff_Phor)。该处理可以被表达为以下表达式(11)。
[数学式9]
Xout[i,j]=Clip3(minCoefVal,maxCoefVal,Y2[i,j])···(11)
剪切单元324将输出数据Xout(一次水平变换之后的变换系数Coeff_Phor)输出至一次水平变换单元312的外部(将输出数据Xout提供给一次垂直变换单元313)。
在具有以上配置的一次水平变换单元312中,变换矩阵导出单元321作为导出单元执行应用了上述本技术的处理。此外,矩阵计算单元322作为正交变换单元执行应用了上述本技术的处理。因此,一次水平变换单元312可以抑制水平方向的一维正交变换所需的存储器容量的增加。
<变换矩阵导出单元>
图24是示出图23中的变换矩阵导出单元321的主要配置示例的框图。如图24所示,变换矩阵导出单元321包括变换矩阵LUT 331、翻转单元332和转置单元333。注意,在图24中,省略了表示数据传送的箭头,但是在变换矩阵导出单元321中,可以在任意处理单元(处理块)之间传送任意数据。
变换矩阵LUT 331是用于保持(存储)与一次水平变换的变换类型标识符TrTypeIdxH和变换块的大小N对应的变换矩阵的查找表。当指定了一次水平变换的变换类型标识符TrTypeIdxH和变换块的大小N时,变换矩阵LUT 331选择并且输出与一次水平变换的变换类型标识符TrTypeIdxH和变换块的大小N对应的变换矩阵。在该导出示例的情况下,变换矩阵LUT 331将变换矩阵提供给翻转单元332和转置单元333两者或其中之一作为基本变换矩阵Tbase
翻转单元332翻转N行和N列的输入变换矩阵T,并且输出翻转的变换矩阵Tflip。在该导出示例的情况下,翻转单元332使用从变换矩阵LUT 331提供的N行和N列的基本变换矩阵Tbase作为输入,在行方向(水平方向)上翻转基本变换矩阵Tbase,并且将翻转的变换矩阵Tflip输出至变换矩阵导出单元321的外部(将翻转的变换矩阵Tflip提供给矩阵计算单元322)作为变换矩阵TH
转置单元333对N行和N列的输入变换矩阵T进行转置,并且输出经转置的变换矩阵Ttranspose。在该导出示例的情况下,转置单元333使用从变换矩阵LUT 331提供的N行和N列的基本变换矩阵Tbase作为输入,对基本变换矩阵Tbase进行转置,并且将经转置的变换矩阵Ttranspose输出至变换矩阵导出单元321的外部(将经转置的变换矩阵Ttranspose提供给矩阵计算单元322)作为变换矩阵TH
如上所述,变换矩阵导出单元321包括翻转单元332和转置单元333。因此,变换矩阵导出单元321可以例如使用翻转单元332来实现从图10中所示的表的顶部起的第一行示例的导出示例。此外,变换矩阵导出单元321可以例如使用转置单元333来实现从图10所示的表的顶部起的第二行示例的导出示例。
<一次垂直变换单元>
图25是示出图22中的一次垂直变换单元313的主要配置示例的框图。如图25所示,一次垂直变换单元313包括变换矩阵导出单元351、矩阵计算单元352、缩放单元353和剪切单元354。
变换矩阵导出单元351使用一次垂直变换的变换类型标识符TrTypeIdxV和有关变换块的大小信息作为输入,并且导出与变换块具有相同大小的一次垂直变换的变换矩阵TV(用于垂直方向的一维正交变换的变换矩阵TV),该变换矩阵TV与一次垂直变换的变换类型标识符TrTypeIdxV对应。变换矩阵导出单元351将变换矩阵TV提供给矩阵计算单元352。
矩阵计算单元352使用从变换矩阵导出单元351提供的变换矩阵TV,对输入数据Xin(即,一次水平变换之后的变换系数Coeff_Phor的变换块)执行垂直方向的一维正交变换,以获得中间数据Y1。该计算可以由如以下表达式(12)中的行列式来表达。
[数学式10]
Y1=TV×Xin···(12)
矩阵计算单元352将中间数据Y1提供给缩放单元353。
缩放单元353利用预定移位量SV对中间数据Y1的每个i行j列分量的系数Y1[i,j]进行缩放,以获得中间数据Y2。该缩放可以被表达为以下表达式(13)。
[数学式11]
Y2[i,j]=Y1[i,j]>>SV···(13)
缩放单元353将中间数据Y2提供给剪切单元354。
剪切单元354剪切中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且导出输出数据Xout(即,一次垂直变换之后的变换系数Coeff_Pver)。该处理可以被表达为以下表达式(14)。
[数学式12]
Xout[i,j]=Clip3(minCoefVal,maxCoefVal,Y2[i,j])···(14)
剪切单元324将输出数据Xout(一次垂直变换之后的变换系数Coeff_Pver)输出至一次垂直变换单元313的外部(将输出数据Xout提供给二次变换单元153)作为一次变换之后的变换系数Coeff_P。
在具有以上配置的一次垂直变换单元313中,变换矩阵导出单元351作为导出单元执行应用了上述本技术的处理。此外,矩阵计算单元352作为正交变换单元执行应用了上述本技术的处理。因此,一次垂直变换单元313可以抑制垂直方向的一维正交变换所需的存储器容量的增加。
<变换矩阵导出单元>
图26是示出图25中的变换矩阵导出单元351的主要配置示例的框图。如图26所示,变换矩阵导出单元351包括变换矩阵LUT 361、翻转单元362和转置单元363。注意,在图26中,省略了表示数据传送的箭头,但是在变换矩阵导出单元351中,可以在任意处理单元(处理块)之间传送任意数据。
变换矩阵LUT 361是用于保存(存储)与一次垂直变换的变换类型标识符TrTypeIdxV和变换块的大小N对应的变换矩阵的查找表。当指定了一次垂直变换的变换类型标识符TrTypeIdxV和变换块的大小N时,变换矩阵LUT 361选择并且输出与一次垂直变换的变换类型标识符TrTypeIdxV和变换块的大小N对应的变换矩阵。在该导出示例的情况下,变换矩阵LUT 361将变换矩阵作为基本变换矩阵Tbase提供给翻转单元362和转置单元363中的两者或之一。
翻转单元362翻转N行和N列的输入变换矩阵T,并且输出翻转的变换矩阵Tflip。在该导出示例的情况下,翻转单元362使用从变换矩阵LUT 361提供的N行和N列的基本变换矩阵Tbase作为输入,在行方向(水平方向)上翻转基本变换矩阵Tbase,并且将翻转的变换矩阵Tflip输出至变换矩阵导出单元351的外部(将翻转的变换矩阵Tflip提供给矩阵计算单元352)作为变换矩阵TV
转置单元363对N行和N列的输入变换矩阵T进行转置,并且输出经转置的变换矩阵Ttranspose。在该导出示例的情况下,转置单元363使用从变换矩阵LUT 361提供的N行和N列的基本变换矩阵Tbase作为输入,对基本变换矩阵Tbase进行转置,并且将经转置的变换矩阵Ttranspose输出至变换矩阵导出单元351的外部(将经转置的变换矩阵Ttranspose提供给矩阵计算单元352)作为变换矩阵TV
如上所述,变换矩阵导出单元351包括翻转单元362和转置单元363。因此,变换矩阵导出单元351可以例如使用翻转单元362来实现从图10中所示的表的顶部起的第一行示例的导出示例。此外,变换矩阵导出单元351可以例如使用转置单元363来实现从图10所示的表的顶部起的第二行示例的导出示例。
<一次变换处理的流程>
接下来,将描述由上述配置执行的处理的流程的示例。将参照图27中的流程图描述在这种情况下在图14的步骤S132中执行的一次变换处理的流程的示例。
当开始一次变换处理时,在步骤S301中,如上所述,一次变换单元152的一次变换选择单元311(图22)选择一次水平变换的变换类型标识符TrTypeIdxH(以及利用该标识符指定的变换类型TrTypeH)和一次垂直变换的变换类型标识符TrTypeIdxV(利用该标识符指定的变换类型TrTypeV)。
在步骤S302中,一次水平变换单元312对预测残差D执行与在步骤S301中获得的一次水平变换的变换类型标识符TrTypeIdxH对应的一次水平变换处理,以导出一次水平变换之后的变换系数Coeff_Phor。
在步骤S303中,一次垂直变换单元313对一次水平变换结果(一次水平变换之后的变换系数Coeff_Phor)执行与在步骤S301中获得的一次垂直变换的变换类型标识符TrTypeIdxV对应的一次垂直变换处理,以导出一次垂直变换之后的变换系数Coeff_Pver(一次变换之后的变换系数Coeff_P)。
当步骤S303中的处理结束时,一次变换处理结束,并且处理返回到图14。
在以上一次变换处理中,执行应用了上述本技术的处理,作为步骤S302或S303的处理。因此,通过执行一次变换处理,可以抑制一次水平变换处理和一次垂直变换处理所需的存储器容量的增加。
<一次水平变换处理的流程>
将参照图28中的流程图描述在图27中的步骤S302中执行的一次水平变换处理的流程。
当开始一次水平变换处理时,在步骤S321中,一次水平变换单元312的变换矩阵导出单元321(图23)导出与一次水平变换的变换类型标识符TrTypeIdxH(或变换类型TrTypeH)对应的变换矩阵TH
在步骤S322中,矩阵计算单元322使用导出的变换矩阵TH对输入数据Xin(预测残差D)执行水平方向的一维正交变换,以获得中间数据Y1。当该处理被表达为行列式时,可以将该处理表达为上述表达式(9)。此外,当该处理被表达为针对每个元素的运算时,该处理可以被表达为以下表达式(15)。
[数学式13]
Figure BDA0002493710700000501
即,如图29所示,输入数据Xin的第i行向量Xin[i,:]与变换矩阵TH的第j行向量TH[j,:]的变换矩阵TH T[:,j]的内积被设置为中间数据Y1的i行j列分量的系数Y1[i,j](j=0、...、M-1,并且i=0、...、N-1)。此处,M表示输入数据Xin在x方向上的大小,并且N表示输入数据Xin在y方向上的大小。M和N可以被表达为以下表达式(16)。
[数学式14]
M=1<<log2TBWSize
N=1<<log2TBHSize
···(16)
返回到图28,在步骤S323中,缩放单元323以移位量SH对通过步骤S322中的处理导出的中间数据Y1的每个i行j列分量的系数Y1[i,j]进行缩放,以导出中间数据Y2。该缩放可以被表达为上述表达式(10)。
在步骤S324中,剪切单元324剪切通过步骤S323中的处理导出的中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且获得输出数据Xout(即,一次水平变换之后的变换系数Coeff_Phor)。该处理可以被表达为上述表达式(11)。
当步骤S324中的处理结束时,一次水平变换处理结束,并且处理返回到图27。
在以上一次水平变换处理中,执行应用了上述本技术的处理,作为步骤S321或S322的处理。因此,通过执行一次水平变换处理,可以抑制水平方向的一维正交变换所需的存储器容量的增加。
<变换矩阵导出处理的流程>
接下来,将参照图30中的流程图描述在图28中的步骤S321中执行的变换矩阵导出处理的流程的示例。
当开始变换矩阵导出处理时,在步骤S341中,变换矩阵导出单元321例如通过参考图31所示的对应表来获得与变换类型标识符TrTypeIdxH对应的基本变换类型BaseTrType。注意,例如,当该处理被表达为数学表达式时,该处理可以被表达为表达式(17)。此外,从变换矩阵LUT读取所获得的基本变换类型的N行和N列的变换矩阵,并且将基本变换类型的N行和N列的变换矩阵设置为基本变换矩阵Tbase,如下面的表达式(18)所示。
[数学式15]
BaseTrType=LUT_TrTypeIdxToBaseTrType[TrTypeIdxH]
···(17)
Tbase=T[BaseTrType][log2N-1]
···(18)
此外,变换矩阵导出单元321将与变换类型标识符TrTypeIdxH对应的值设置为翻转标志FlipFlag,如以下表达式(19)中那样。此外,变换矩阵导出单元321将与变换类型标识符TrTypeIdxH对应的值设置为转置标志TransposeFlag,如以下表达式(20)所示。
[数学式16]
FlipFlag=LUT_TrTypeIdxToFlipFlag[TrTypeIdxH]
···(19)
TransposeFlag=LUT_TrTypeIdxToTransposeFlag[TrTypeIdxH]
···(20)
在步骤S342中,变换矩阵导出单元321确定翻转标志FlipFlag和转置标志TransposeFlag是否满足由以下表达式(21)表达的条件(ConditionAl)。
[数学式17]
ConditionA1:FlipFlag==F&&TransposeFlag==F
···(21)
在确定满足上述条件(ConditionA1)的情况下(在翻转标志FlipFlag和转置标志TransposeFlag均为假(false)(0)的情况下),处理进行至步骤S343。
在步骤S343中,变换矩阵导出单元321将基本变换矩阵Tbase设置为变换矩阵TH,如以下表达式(22)中那样。
[数学式18]
TH=Tbase···(22)
当步骤S343中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。此外,在步骤S342中,在确定不满足上述条件(ConditionA1)(翻转标志FlipFlag或转置标志TransposeFlag为真(1))的情况下,处理进行至步骤S344。
在步骤S344中,变换矩阵导出单元321确定翻转标志FlipFlag和转置标志TransposeFlag是否满足由以下表达式(23)表达的条件(ConditionA2)。
[数学式19]
ConditionA2:FlipFlag==F&&TransposeFlag==T
···(23)
在确定满足上述条件(ConditionA2)的情况下(在翻转标志FlipFlag为假(0)并且转置标志TransposeFlag为真(1)的情况下),处理进行至步骤S345。
在步骤S345中,变换矩阵导出单元321经由转置单元333对基本变换矩阵Tbase进行转置,以获得变换矩阵TH。该处理可以如以下表达式(24)中那样被表达为行列式。
[数学式20]
TH=Tr(Tbase)=TbaseT···(24)
此外,在将处理表达为针对每个元素的运算的情况下,变换矩阵导出单元321将基本变换矩阵Tbase的i行j列分量((i,j)分量)设置为变换矩阵TH的(j,i)分量,如以下表达式(25)中那样。
[数学式21]
TH[j,i]=Tbase[i,j]
对于i,j=0,...,N-1
···(25)
此处,N行和N列的变换矩阵TH的i行j列分量((i,j)分量)被写为TH[i,j]。此外,第二行上的“对于i,j=0,...,N-1”指示i和j具有0到N-1的值。即,它意味着TH[j,i]指示N行和N列的变换矩阵TH的所有元素。
通过以这种方式将步骤S345中的处理表达为针对每个元素的运算,可以通过简单地访问二维阵列来实现转置运算。当步骤S345中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。
此外,在步骤S344中,在确定不满足上述条件(ConditionA2)(翻转标志FlipFlag为真(1)或转置标志TransposeFlag为假(0))的情况下,处理进行至步骤S346。
在步骤S346中,变换矩阵导出单元321经由翻转单元332翻转基本变换矩阵Tbase,以获得变换矩阵TH。该处理可以如以下表达式(26)中那样被表达为行列式。
[数学式22]
TH=Tbase×J···(26)
此处,×是表示矩阵积的运算符。此外,通过使N×N单位矩阵I左右反转来获得翻转矩阵J(交叉恒等矩阵)。
此外,在将处理表达为针对每个元素的运算的情况下,变换矩阵导出单元321将基本变换矩阵Tbase的(i,N-1-j)分量设置为变换矩阵TH的i行j列分量((i,j)分量),如以下表达式(27)中那样。
[数学式23]
TH[i,j]=Tbase[i,N-1-j]
对于i,j=0,...,N-1
···(27)
此处,N行和N列的变换矩阵TH的i行j列分量((i,j)分量)被写为TH[i,j]。此外,第二行上的“对于i,j=0,...,N-1”指示i和j具有0到N-1的值。即,它意味着TH[i,j]指示N行和N列的变换矩阵TH的所有元素。
通过以这种方式将步骤S346中的处理表达为针对每个元素的运算,可以在不需要基本变换矩阵Tbase和翻转矩阵J的矩阵计算的情况下通过简单地访问二维阵列来实现转置运算。此外,翻转矩阵J变得不必要。当步骤S346中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。
在以上变换矩阵导出处理中,执行应用了上述本技术的处理,作为步骤S345或S346的处理。因此,通过执行变换矩阵导出处理,可以在水平方向的一维正交变换中实现从图10的表的顶部起的第一行示例和第二行示例的导出示例。因此,可以抑制所需存储容量的增加。
注意,可以在步骤S344中的处理与步骤S346中的处理之间插入下面描述的分支。即,在该步骤中,变换矩阵导出单元321确定翻转标志FlipFlag和转置标志TransposeFlag是否满足由以下表达式(28)表达的条件(ConditionA3)。
[数学式24]
ConditionA3:FlipFlag==T&&TransposeFlag==F
···(28)
在变换矩阵导出单元321确定满足上述条件(ConditionA3)的情况下(在翻转标志FlipFlag为真(1)并且转置标志TransposeFlag为假(0)的情况下),处理进行至步骤S346。
此外,在确定不满足上述条件(ConditionA3)(翻转标志FlipFlag为假(0)或转置标志TransposeFlag为真(1))的情况下,变换矩阵导出处理结束,并且处理返回到图28。
<一次垂直变换处理的流程>
接下来,将参照图32中的流程图描述在图27中的步骤S303中执行的一次垂直变换处理的流程。
当开始一次垂直变换处理时,在步骤S361中,一次垂直变换单元313的变换矩阵导出单元351(图25)执行变换矩阵导出处理,以导出与一次垂直变换的变换类型标识符TrTypeIdxV(或变换类型TrTypeV)对应的变换矩阵TV
由于变换矩阵导出处理的流程与参照图30中的流程图描述的一次水平变换的情况类似,因此省略其描述。例如,通过将一次水平变换的变换类型标识符TrTypeIdxH替换为一次垂直变换的变换类型标识符TrTypeIdxV,并且将用于一次水平变换的变换矩阵TH替换为用于一次垂直变换的变换矩阵TV,将通过参照图30进行的描述中的关于水平方向的描述简单地应用于垂直方向。
在步骤S362中,矩阵计算单元352使用导出的变换矩阵TV对输入数据Xin(一次水平变换之后的变换系数Coeff_Phor)执行垂直方向的一维正交变换,以获得中间数据Y1。当该处理被表达为行列式时,可以将该处理表达为上述表达式(12)。此外,当该处理被表达为针对每个元素的运算时,该处理可以被表达为以下表达式(29)。
[数学式25]
Figure BDA0002493710700000551
即,在这种情况下,如图33所示,输入数据Xin的变换矩阵TV的第i行向量TV[i,:]与第j列向量Xin[:,j]的内积作为中间数据Y1(j=0,...,M-1,以及i=0,...,N-1)的i行j列分量的系数Y1[i,j]。
在步骤S363中,缩放单元353以移位量SV对通过步骤S322中的处理导出的中间数据Y1的每个i行j列分量的系数Y1[i,j]进行缩放,以导出中间数据Y2。该缩放可以被表达为上述表达式(13)。
在步骤S364中,剪切单元354剪切通过步骤S363中的处理导出的中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且获得输出数据Xout(即,一次垂直变换之后的变换系数Coeff_Pver)。该处理可以被表达为上述表达式(14)。
当步骤S364中的处理结束时,一次水平变换处理结束,并且处理返回到图27。
在以上一次垂直变换处理中,执行应用了上述本技术的处理,作为步骤S361或S362的处理。因此,通过执行一次垂直变换处理,可以抑制垂直方向的一维正交变换所需的存储器容量的增加。
<逆一次变换单元>
接下来,将描述在本实施方式的情况下的图像解码设备200的配置。图34是示出在这种情况下逆一次变换单元253(图16)的主要配置示例的框图。如图34所示,逆一次变换单元253包括逆一次变换选择单元411、逆一次垂直变换单元412和逆一次水平变换单元413。
逆一次变换选择单元411使用预测模式信息PInfo、分量标识符compID、自适应一次变换标志apt_flag[compID]和一次变换标识符pt_idx[compID]作为输入。逆一次变换选择单元411通过参考以上信息来导出逆一次垂直变换的变换类型标识符TrTypeIdxV和逆一次垂直变换的变换类型标识符TrTypeIdxH。逆一次变换选择单元411将导出的逆一次变换的变换类型标识符TrTypeIdxV提供给逆一次垂直变换单元412。此外,逆一次变换选择单元411将导出的逆一次水平变换的变换类型标识符TrTypeIdxH提供给逆一次水平变换单元413。
逆一次垂直变换单元412使用逆二次变换之后的变换系数Coeff_IS、逆一次垂直变换之后的变换类型标识符TrTypeIdxV以及关于变换块的大小的信息作为输入。关于变换块的大小的信息可以是指示变换块在水平方向或垂直方向上的大小(系数的数目)的自然数N,或者可以是指示变换块的高度的log2TBHSize(高度的对数值)(N=1<<log2TBHSize)。逆一次垂直变换单元412对逆二次变换之后的变换系数Coeff_IS,执行由变换类型标识符TrTypeIdxV和变换块的大小确定的逆一次垂直变换IPver,以导出逆一次垂直变换之后的变换系数Coeff_IPver。逆一次垂直变换单元412将逆一次垂直变换之后的变换系数Coeff_IPver提供给逆一次水平变换单元413。
逆一次水平变换单元413使用逆一次垂直变换之后的变换系数Coeff_IPver、逆一次水平变换的变换类型标识符TrTypeIdxH和关于变换块的大小的信息作为输入。关于变换块的大小的信息可以是指示变换块在水平方向或垂直方向上的大小(系数的数目)的自然数N,或者可以是指示变换块的宽度的log2TBWSize(宽度的对数值)(N=1<<log2TBWSize)。逆一次水平变换单元413对通过从逆一次垂直变换单元412提供的逆一次垂直变换之后的变换系数Coeff_IPver,执行由变换类型标识符TrTypeIdxH和变换块的大小确定的逆一次水平变换IPhor,以导出逆一次水平变换之后的变换系数Coeff_IPhor(即,逆一次变换之后的变换系数Coeff_IP)。逆一次水平变换单元413将逆一次水平变换之后的变换系数Coeff_IPhor输出至逆一次变换单元253的外部(将逆一次水平变换之后的变换系数Coeff_IPhor提供给计算单元215)作为预测残差D'。
在具有以上配置的逆一次变换单元253中,逆一次垂直变换单元412和逆一次水平变换单元413分别作为导出单元和正交变换单元执行应用了上述本技术的处理。
即,逆一次垂直变换单元412作为导出单元导出用于垂直方向的逆一维正交变换的第二变换矩阵,并且还作为逆正交变换单元使用由导出单元导出的用于垂直方向的逆一维正交变换的第二变换矩阵来执行垂直方向的逆一维正交变换。因此,逆一次垂直变换单元412可以抑制垂直方向的逆一维正交变换所需的存储器容量的增加。
此外,逆一次水平变换单元413作为导出单元导出用于水平方向的逆一维正交变换的第二变换矩阵,并且还作为正交变换单元使用由导出单元导出的用于水平方向的逆一维正交变换的第二变换矩阵来执行水平方向的逆一维正交变换。因此,逆一次水平变换单元413可以抑制水平方向的逆一维正交变换所需的存储器容量的增加。
<逆一次垂直变换单元>
图35是示出图34中的逆一次垂直变换单元412的主要配置示例的框图。如图35所示,逆一次垂直变换单元412包括变换矩阵导出单元421、矩阵计算单元422、缩放单元423和剪切单元424。
变换矩阵导出单元421使用逆一次垂直变换的变换类型标识符TrTypeIdxV和有关变换块的大小的信息作为输入,并且导出与变换块具有相同大小的逆一次垂直变换的变换矩阵TV(用于垂直方向的逆一维正交变换的变换矩阵TV),该变换矩阵TV与逆一次垂直变换的变换类型标识符TrTypeIdxV对应。变换矩阵导出单元421将变换矩阵TV提供给矩阵计算单元422。
矩阵计算单元422使用从变换矩阵导出单元421提供的变换矩阵TV,对输入数据Xin(即,逆二次变换之后的变换系数Coeff_IS的变换块)执行垂直方向的逆一维正交变换,以获得中间数据Y1。该计算可以由如以下表达式(30)中的行列式来表达。
[数学式26]
Y1=TVT×Xin···(30)
矩阵计算单元422将中间数据Y1提供给缩放单元423。
缩放单元423以预定的移位量SIV对中间数据Y1的每个i行j列分量的系数Y1[i,j]进行缩放,以获得中间数据Y2。该缩放可以被表达为以下表达式(31)。
[数学式27]
Y2[i,j]=Y1[i,j]SIV···(31)
缩放单元423将中间数据Y2提供给剪切单元424。
剪切单元424剪切中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且导出输出数据Xout(即,逆一次垂直变换之后的变换系数Coeff_IPver)。该处理可以被表达为上述表达式(11)。
剪切单元424将输出数据Xout(逆一次垂直变换之后的变换系数Coeff_IPver)输出至逆一次垂直变换单元412的外部(将输出数据Xout提供给逆一次水平变换单元413)。
在具有以上配置的逆一次垂直变换单元412中,变换矩阵导出单元421作为导出单元执行应用了上述本技术的处理。此外,矩阵计算单元422作为正交变换单元执行应用了上述本技术的处理。因此,逆一次垂直变换单元412可以抑制垂直方向的逆一维正交变换所需的存储器容量的增加。
<变换矩阵导出单元>
图36是示出图35中的变换矩阵导出单元421的主要配置示例的框图。如图36所示,变换矩阵导出单元421包括变换矩阵LUT 431、翻转单元432和转置单元433。注意,在图36中,省略了表示数据传送的箭头,但是在变换矩阵导出单元421中,可以在任意处理单元(处理块)之间传送任意数据。
变换矩阵LUT 431是用于保存(存储)与逆一次垂直变换的变换类型标识符TrTypeIdxV和变换块的大小N对应的变换矩阵的查找表。当指定了逆一次垂直变换的变换类型标识符TrTypeIdxV和变换块的大小N时,变换矩阵LUT 431选择并且输出与逆一次垂直变换的变换类型标识符TrTypeIdxV和变换块的大小N对应的变换矩阵。在该导出示例的情况下,变换矩阵LUT 431将变换矩阵作为基本变换矩阵Tbase提供给翻转单元432和转置单元433中的两者或其一。
翻转单元432翻转N行和N列的输入变换矩阵T,并且输出翻转的变换矩阵Tflip。在该导出示例的情况下,翻转单元432使用从变换矩阵LUT 431提供的N行和N列的基本变换矩阵Tbase作为输入,在行方向(水平方向)上翻转基本变换矩阵Tbase,并且将翻转的变换矩阵Tflip输出至变换矩阵导出单元321的外部(将翻转的变换矩阵Tflip提供给矩阵计算单元422)作为变换矩阵TV
转置单元433对N行和N列的输入变换矩阵T进行转置,并且输出经转置的变换矩阵Ttranspose。在该导出示例的情况下,转置单元433使用从变换矩阵LUT 431提供的N行和N列的基本变换矩阵Tbase作为输入,对基本变换矩阵Tbase进行转置,并且将经转置的变换矩阵Ttranspose输出至变换矩阵导出单元421的外部(将经转置的变换矩阵Ttranspose提供给矩阵计算单元422)作为变换矩阵TV
如上所述,变换矩阵导出单元421包括翻转单元432和转置单元433。因此,变换矩阵导出单元421可以例如使用翻转单元432来实现从图10中所示的表的顶部起的第一行示例的导出示例。此外,变换矩阵导出单元421可以例如使用转置单元433来实现从图10所示的表的顶部起的第二行示例的导出示例。
<逆一次水平变换单元>
图37是示出图34中的逆一次水平变换单元413的主要配置示例的框图。如图37所示,逆一次水平变换单元413包括变换矩阵导出单元451、矩阵计算单元452、缩放单元453和剪切单元454。
变换矩阵导出单元451使用逆一次水平变换的变换类型标识符TrTypeIdxH和关于变换块的大小的信息作为输入,并且导出与变换块具有相同大小的用于逆一次水平变换的变换矩阵TH(用于水平方向的逆一维正交变换的变换矩阵TH),该变换矩阵TH与逆一次水平变换的变换类型标识符TrTypeIdxH对应。变换矩阵导出单元451将变换矩阵TH提供给矩阵计算单元452。
矩阵计算单元452使用从变换矩阵导出单元451提供的变换矩阵TH,对输入数据Xin(即,逆一次变换之后的变换系数Coeff_IPver的变换块)执行水平方向的逆一维正交变换,以获得中间数据Y1。该计算可以由如以下表达式(32)中的行列式来表达。
[数学式28]
Y1=Xin×TH···(32)
矩阵计算单元452将中间数据Y1提供给缩放单元453。
缩放单元453以预定的移位量SIH对中间数据Y1的每个i行j列分量的系数Y1[i,j]进行缩放,以获得中间数据Y2。该缩放可以被表达为以下表达式(33)。
[数学式29]
Y2[i,j]=Y1[i,j]>>SIH···(33)
缩放单元453将中间数据Y2提供给剪切单元454。
剪切单元454剪切中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且导出输出数据Xout(即,逆一次水平变换之后的变换系数Coeff_IPhor)。该处理可以被表达为上述表达式(11)。
剪切单元454将输出数据Xout(逆一次水平变换之后的变换系数Coeff_IPhor(逆一次变换之后的变换系数Coeff_IP))输出至逆一次水平变换单元413的外部(将输出数据Xout提供给计算单元215)作为预测残差D'。
在具有以上配置的逆一次水平变换单元413中,变换矩阵导出单元451作为导出单元执行应用了上述本技术的处理。此外,矩阵计算单元452作为逆正交变换单元执行应用了上述本技术的处理。因此,逆一次水平变换单元413可以抑制水平方向的逆一维正交变换所需的存储器容量的增加。
<变换矩阵导出单元>
图38是示出图37中的变换矩阵导出单元451的主要配置示例的框图。如图38所示,变换矩阵导出单元451包括变换矩阵LUT 461、翻转单元462和转置单元463。注意,在图38中,省略了表示数据传送的箭头,但是在变换矩阵导出单元451中,可以在任意处理单元(处理块)之间传送任意数据。
变换矩阵LUT 461是用于保存(存储)与逆一次水平变换的变换类型标识符TrTypeIdxV和变换块的大小N对应的变换矩阵的查找表。当指定了逆一次水平变换的变换类型标识符TrTypeIdxH和变换块的大小N时,变换矩阵LUT 461选择并且输出与逆一次水平变换的变换类型标识符TrTypeIdxH和变换块的大小N对应的变换矩阵。在该导出示例的情况下,变换矩阵LUT 461将变换矩阵作为基本变换矩阵Tbase提供给翻转单元462和转置单元463中的两者或其一。
翻转单元462翻转N行和N列的输入变换矩阵T,并且输出翻转的变换矩阵Tflip。在该导出示例的情况下,翻转单元462使用从变换矩阵LUT 461提供的N行和N列的基本变换矩阵Tbase作为输入,在行方向(水平方向)上翻转基本变换矩阵Tbase,并且将翻转的变换矩阵Tflip输出至变换矩阵导出单元451的外部(将翻转的变换矩阵Tflip提供给矩阵计算单元452)作为变换矩阵TH
转置单元463对N行和N列的输入变换矩阵T进行转置,并且输出经转置的变换矩阵Ttranspose。在该导出示例的情况下,转置单元463使用从变换矩阵LUT 461提供的N行和N列的基本变换矩阵Tbase作为输入,对基本变换矩阵Tbase进行转置,并且将经转置的变换矩阵Ttranspose输出至变换矩阵导出单元451的外部(将经转置的变换矩阵Ttranspose提供给矩阵计算单元452)作为变换矩阵TH
如上所述,变换矩阵导出单元451包括翻转单元462和转置单元463。因此,变换矩阵导出单元451可以例如使用翻转单元462来实现从图10中所示的表的顶部起的第一行示例的导出示例。此外,变换矩阵导出单元451可以例如使用转置单元463来实现从图10所示的表的顶部起的第二行示例的导出示例。
<逆一次变换处理的流程>
接下来,将描述由图像解码设备200的上述配置执行的处理的流程的示例。接下来,将参照图39中的流程图描述在这种情况下的在图18的步骤S233中执行的逆一次变换处理的流程的示例。
当开始逆一次变换处理时,在步骤S401中,逆一次变换单元253的逆一次变换选择单元411(图34)执行逆一次变换选择处理,以选择逆一次垂直变换的变换类型标识符TrTypeIdxV(或变换类型TrTypeV)和逆一次水平变换的变换类型标识符TrTypeIdxH(或变换类型TrTypeH)。
在步骤S402中,逆一次垂直变换单元412对逆二次变换之后的变换系数Coeff_IS,执行与在步骤S401中获得的逆一次垂直变换的变换类型标识符TrTypeIdxV对应的逆一次垂直变换处理,以导出逆一次垂直变换之后的变换系数Coeff_IPver。
在步骤S403中,逆一次水平变换单元413对逆一次垂直变换之后的变换系数Coeff_IPver执行与在步骤S401中获得的逆一次水平变换的变换类型标识符TrTypeIdxH对应的逆一次水平变换处理,以导出逆一次水平变换之后的变换系数Coeff_IPhor(即,逆一次变换之后的变换系数Coeff_IP(预测残差D′))。
当步骤S403中的处理结束时,逆一次变换选择处理结束,并且处理返回到图18。
在以上逆一次变换处理中,执行应用了上述本技术的处理,作为步骤S402或S403的处理。因此,通过执行逆一次变换处理,可以抑制逆一次垂直变换处理或逆一次水平变换处理所需的存储器容量的增加。
<逆一次变换选择处理的流程>
接下来,将参照图40的流程图来描述在图39的步骤S401中执行的逆一次变换选择处理的流程的示例。
当开始逆一次变换选择处理时,在步骤S421中,逆一次变换选择单元411确定分量标识符compID的自适应一次变换标志apt_flag[compID]是否为真(1)。在确定分量标识符compID的自适应一次变换标志apt_flag[compID]为真(1)的情况下,处理进行至步骤S422。
在步骤S422中,逆一次变换选择单元411基于预测模式信息Pinfo,从变换集的组中选择每个方向上的变换集TrSetH或TrSetV。
在步骤S423中,逆一次变换选择单元411基于变换集TrSetH和一次变换标识符pt_idx[compID]导出逆一次水平变换的变换类型标识符TrTypeIdxH。该处理可以被表达为例如以下表达式(34)。
[数学式30]
TrTypeIdxH=TrSetToTrTypeIdx[TrSetH][pt_idx]···(34)
在步骤S424中,逆一次变换选择单元411基于变换集TrSetV和逆一次变换标识符pt_idx[compID]来导出逆一次垂直变换的变换类型标识符TrTypeIdxV。该处理例如可以被表达为以下表达式(35)。
[数学式31]
TrTypeIdxV=TrSetToTrTypeIdx[TrSetV][pt_idx]···(35)
当步骤S424中的处理结束时,逆一次变换选择处理结束,并且处理返回到图39。
此外,在步骤S421中,在确定分量标识符compID的自适应一次变换标志apt_flag[compID]为假(0)的情况下,处理进行至步骤S425。
在步骤S425中,逆一次变换选择单元411设置(选择)针对逆一次水平变换的变换类型标识符TrTypeIdxH的预定正交变换(例如,DCT2)。该处理例如可以被表达为以下表达式(36)。
[数学式32]
TrTypeIdxH=预定值···(36)
在步骤S426中,逆一次变换选择单元411设置(选择)针对逆一次垂直变换的变换类型标识符TrTypeIdxV的预定正交变换(例如,DCT2)。该处理例如可以被表达为以下表达式(37)。
[数学式33]
TrTypeIdxV=预定值···(37)
当步骤S426中的处理结束时,逆一次变换选择处理结束,并且处理返回到图39。
<逆一次垂直变换处理的流程>
接下来,将参照图41中的流程图描述在图39中的步骤S402中执行的逆一次垂直变换处理的流程。
当开始逆一次垂直变换处理时,在步骤S441中,逆一次垂直变换单元412的变换矩阵导出单元421(图35)执行变换矩阵导出处理,以导出与逆一次垂直变换的变换类型标识符TrTypeIdxV对应的变换矩阵TV
通过与参照图30中的流程图描述的一次水平变换的情况类似的流程来执行这种情况下的变换矩阵导出处理。因此,省略描述。例如,通过将一次水平变换的变换类型标识符TrTypeIdxH替换为逆一次垂直变换的变换类型标识符TrTypeIdxV,并且将要导出的用于一次水平变换的变换矩阵TH替换为用于逆一次垂直变换的变换矩阵TV,可以将参照图30进行的描述应用为这种情况下的变换矩阵导出处理的描述。
在步骤S442中,矩阵计算单元422使用导出的变换矩阵TV对输入数据Xin(即,逆二次变换之后的变换系数Coeff_IS)执行垂直方向的逆一维正交变换,以获得中间数据Y1。当该处理被表达为行列式时,可以将该处理表达为上述表达式(30)。
在步骤S443中,缩放单元423以移位量SIV对通过步骤S442中的处理导出的中间数据Y1的每个i行j列分量的系数Y1[i,j]进行缩放,以导出中间数据Y2。该缩放可以被表达为上述表达式(31)。
在步骤S444中,剪切单元424剪切通过步骤S443中的处理导出的中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且获得输出数据Xout(即,逆一次垂直变换之后的变换系数Coeff_IPver)。该处理可以被表达为上述表达式(11)。
当步骤S444中的处理结束时,逆一次垂直变换处理结束,并且处理返回到图39。
在以上逆一次垂直变换处理中,执行应用了上述本技术的处理,作为步骤S441或S442的处理。因此,通过执行逆一次垂直变换处理,可以抑制垂直方向的逆一维正交变换所需的存储器容量的增加。
<逆一次水平变换处理的流程>
接下来,将参照图42中的流程图描述在图39中的步骤S403中执行的逆一次水平变换处理的流程。
当开始逆一次水平变换处理时,在步骤S461中,逆一次水平变换单元413的变换矩阵导出单元451(图37)执行变换矩阵导出处理,以导出与逆一次水平变换的变换类型标识符TrTypeIdxH对应的变换矩阵TH
通过与参照图30中的流程图描述的一次水平变换的情况类似的流程来执行这种情况下的变换矩阵导出处理。因此,省略描述。例如,通过利用逆一次水平变换替换一次水平变换等,可以将参照图30进行的描述应用为这种情况下的变换矩阵导出处理的描述。
在步骤S462中,矩阵计算单元452使用导出的变换矩阵TH对输入数据Xin(即,逆一次垂直变换之后的变换系数Coeff_IPver)执行水平方向的逆一维正交变换,以获得中间数据Y1。当该处理被表达为行列式时,可以将该处理表达为上述表达式(32)。
在步骤S463中,缩放单元453以移位量SIH对通过步骤S462中的处理导出的中间数据Y1的每个i行j列分量的系数Y1[i,j]进行缩放,以导出中间数据Y2。该缩放可以被表达为上述表达式(33)。
在步骤S464中,剪切单元454剪切通过步骤S463中的处理导出的中间数据Y2的每个i行j列分量的系数Y2[i,j]的值,并且输出输出数据Xout(即,逆一次水平变换之后的变换系数Coeff_IPhor)。该处理可以被表达为上述表达式(14)。
当步骤S464中的处理结束时,逆一次水平变换处理结束,并且处理返回到图39。
在以上逆一次水平变换处理中,执行应用了上述本技术的处理,作为步骤S461或S462的处理。因此,通过执行逆一次水平变换处理,可以抑制水平方向的逆一维正交变换所需的存储器容量的增加。
<2-3.示例1-2>
<概念>
接下来,将描述图10中所示的表中的除了最上方的项目名称的行之外的从顶部起的第三行示例。
如上所述,从顶部起的第三行示例的导出更具体地,在要配对的DCT/DST(例如,DST7与DCT8)之间,注意到以下点:偶数行向量是轴对称的,而奇数行向量是点对称的。在这种情况下,导出单元翻转第一变换矩阵,并且使经翻转的第一变换矩阵的奇数行向量的符号反转,以导出第二变换矩阵。即,如图43所示,导出单元在行方向上翻转DST7的变换矩阵,并且进一步使奇数阶行向量的符号反转,以无损地导出DCT8的变换矩阵。因此,自然地,具有0阶行向量的相同波形的DCT8的(减小类型)变换矩阵可以被导出的DCT8替代。
图44中示出了该导出的具体示例。如图44所示,该导出可以由在奇数阶行中具有负元素的单位矩阵D、基本变换矩阵Tbase(DST7)和翻转矩阵J的矩阵积来表达。
即,在该导出示例中,第二变换矩阵可以通过两次运算(翻转和符号反转)来导出。此外,每个运算都是容易的。即,可以容易地导出第二变换矩阵。
此外,通过应用该导出示例,不必准备DCT8的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,可以减少单一变换类型的数目。
在这种情况下,如图45中的表所示,在非专利文献1中描述的技术的情况下(参见图6中的表A)所需的五种类型的变换矩阵可以被减少到四种类型。因此,总LUT大小可以为约47KB。即,与非专利文献1中描述的技术的情况相比,LUT的大小可以减小(大约53KB(图6中的表A))。即,可以抑制LUT的大小的增加。
注意,如上所述,在这种情况下,可以获得变换类型DCT8的变换矩阵作为第二变换类型。因此,通过使用第二变换类型的变换矩阵执行正交变换/逆正交变换,可以获得与使用DCT8的变换矩阵进行正交变换/逆正交变换的情况相同的编码效率。
<变换矩阵导出单元>
接下来,将描述用于执行这样的导出的配置、处理等。首先,将描述图像编码设备100的本实施方式的技术配置。由于在这种情况下一次变换单元152、一次水平变换单元312、一次垂直变换单元313等的配置类似于参照图22描述的<2-2.示例1-1>的情况,因此省略其描述。
图46是示出在这种情况下的变换矩阵导出单元321(一次水平变换单元312中的变换矩阵导出单元321(图23))的主要配置示例的框图。如图46所示,在这种情况下的变换矩阵导出单元321包括变换矩阵LUT331、翻转单元332和符号反转单元501。注意,在图46中,省略了表示数据传送的箭头,但是在变换矩阵导出单元321中,可以在任意处理单元(处理块)之间传送任意数据。
变换矩阵LUT 331和翻转单元332与图24中的情况类似。
符号反转单元501使用N行和N列的变换矩阵T作为输入,使变换矩阵T的预定部分的符号反转,并且输出符号反转之后的变换矩阵TInvSign。在该导出示例(示例1-2)的情况下,变换矩阵导出单元321经由翻转单元332水平地翻转在变换矩阵LUT 331中选择的N行和N列的基本变换矩阵Tbase,经由符号反转单元501进一步使奇数阶行向量的符号反转,并且将变换矩阵TInvSign输出至变换矩阵导出单元321的外部(将变换矩阵TInvSign提供给矩阵计算单元322)作为变换矩阵TH
如上所述,变换矩阵导出单元321可以使用翻转单元332和符号反转单元501来实现从图10所示的表的顶部起的第三行示例的导出示例。
<变换矩阵导出单元>
图47是示出在这种情况下的包括在一次垂直变换单元313中的变换矩阵导出单元351的主要配置示例的框图。如图47所示,与变换矩阵导出单元321类似,在这种情况下的变换矩阵导出单元351包括变换矩阵LUT 361、翻转单元362和符号反转单元502。注意,在图47中,省略了表示数据传送的箭头,但是在变换矩阵导出单元351中,可以在任意处理单元(处理块)之间传送任意数据。
变换矩阵LUT 361和翻转单元362与图26中的情况类似。
符号反转单元502与符号反转单元501类似地使用N行和N列的变换矩阵T作为输入,使变换矩阵T的预定部分的符号反转,并且执行符号反转,并且输出符号反转之后的变换矩阵TInvSign。在该导出示例的情况下,变换矩阵导出单元351经由翻转单元362水平地翻转在变换矩阵LUT 361中选择的N行和N列的基本变换矩阵Tbase,经由符号反转单元502进一步使奇数阶行向量的符号反转,并且将变换矩阵TInvSign输出至变换矩阵导出单元351的外部(将变换矩阵TInvSign提供给矩阵计算单元352)作为变换矩阵TV
如上所述,变换矩阵导出单元351可以使用翻转单元362和符号反转单元502来实现从图10所示的表的顶部起的第三行示例的导出示例。
<变换矩阵导出处理的流程>
由于通过与<2-2.示例1-1>的情况类似的流程来执行在这种情况下的一次变换处理、一次水平变换处理和一次垂直变换处理,因此省略了对该处理的描述。
接下来,将参照图48中的流程图描述在图28中的步骤S321中由一次水平变换单元312中的变换矩阵导出单元321执行的这种情况下的变换矩阵导出处理的流程的示例。
当开始变换矩阵导出处理时,在步骤S501中,变换矩阵导出单元321例如通过参考图49所示的对应表来获得与变换类型标识符TrTypeIdxH对应的基本变换类型BaseTrType。注意,例如,当该处理被表达为数学表达式时,该处理可以被表达为表达式(17)。此外,变换矩阵导出单元321从变换矩阵LUT读取所获得的基本变换类型的N行和N列的变换矩阵,并且将该变换矩阵设置为基本变换矩阵Tbase,如以下表达式(18)中那样。
此外,变换矩阵导出单元321如上述表达式(19)中那样将与变换类型标识符TrTypeIdxH对应的值设置为翻转标志FlipFlag。此外,变换矩阵导出单元321如上述表达式(38)中那样,将与变换类型标识符TrTypeIdxH对应的值设置为符号反转标志InvSignFlag。
[数学式34]
InvSignFlag=LUT_TrTypeIdxToInvSignFlag[TrTypeIdxH]
···(38)
在步骤S502中,变换矩阵导出单元321确定翻转标志FlipFlag和转置标志TransposeFlag是否满足由以下表达式(39)表达的条件(ConditionB1)。
[数学式35]
ConditionB1:FlipFlag==T&&InvSignFlag==T
···(39)
在确定不满足以上表达式(39)中所示的条件的情况下(即,在确定翻转标志FlipFlag为假(0)或者确定符号反转标志InvSignFlag为假(0)的情况下),处理进行至步骤S503。
在步骤S503中,变换矩阵导出单元321将基本变换矩阵Tbase设置为变换矩阵TH。当步骤S503中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。
此外,在步骤S502中,在确定满足以上表达式(39)中所示的条件的情况下(即,在确定翻转标志FlipFlag为真(1)或者确定符号反转标志InvSignFlag为真(1)的情况下),处理进行至步骤S504。
在步骤S504中,变换矩阵导出单元321经由翻转单元332翻转基本变换矩阵Tbase,并且将经翻转的基本变换矩阵Tbase设置为变换矩阵TH。即,变换矩阵导出单元321导出Flip(Tbase)的变换矩阵TH
在步骤S505中,变换矩阵导出单元321使用符号反转单元501使变换矩阵TH的奇数行向量的符号反转,并且重置变换矩阵TH。该处理可以如以下表达式(40)中那样被表达为行列式。
[数学式36]
TH=D×TH···(40)
此处,×是表示矩阵积的运算符,并且符号反转矩阵D是包括Diag(1,-1,...,(-1)N-1)的对角矩阵。
此外,处理还可以被表达为针对每个元素的运算,如以下表达式(41)中那样。利用该表达式,可以在没有符号逆矩阵D的情况下实现处理。在那种情况下,变换矩阵导出单元321使变换矩阵TH的i行j列分量((i,j)分量)的奇数行分量(i%2==1)的正/负符号反转。
[数学式37]
TH[i,j]=(-1)*TH[i,j]
对于i,j=0,...,N-1and i%2==1
···(41)
此处,N行和N列的变换矩阵TH的i行j列分量((i,j)分量)被写为TH[i,j]。此外,第二行上的“对于i,j=0,...,N-1和i%2==1”指示j具有0到N-1的值,且i具有在0到N-1的范围内的奇数值。即,它意味着TH[i,.j]指示N行和N列的变换矩阵TH的奇数行向量(的每个元素)。
当步骤S505中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。
<变换矩阵导出处理的流程>
注意,由于在一次垂直变换处理的步骤S361(图32)中执行的变换矩阵导出处理的流程与参照图48中的流程图描述的在一次水平变换中执行的变换矩阵导出处理的情况类似,因此省略其描述。
<变换矩阵导出单元>
接下来,将描述在该情况下的图像解码设备200的配置。由于在这种情况下包括在图像解码设备200中的逆一次变换单元253、逆一次垂直变换单元412、逆一次水平变换单元413等的配置类似于<2-2.示例1-1>的情况,因此省略其描述。
图50是示出在这种情况下的变换矩阵导出单元421(逆一次垂直变换单元412中的变换矩阵导出单元421)的主要配置示例的框图。如图50所示,与变换矩阵导出单元321类似,在这种情况下的变换矩阵导出单元421包括变换矩阵LUT 431、翻转单元432和符号反转单元511。注意,在图50中,省略了表示数据传送的箭头,但是在变换矩阵导出单元421中,可以在任意处理单元(处理块)之间传送任意数据。
变换矩阵LUT 431和翻转单元432与图36中的情况类似。符号反转单元511与符号反转单元501类似地使用N行和N列的变换矩阵T作为输入,使变换矩阵T的预定部分的符号反转,并且执行符号反转,并且输出符号反转之后的变换矩阵TInvSign。在该导出示例的情况下,变换矩阵导出单元421经由翻转单元432水平地翻转在变换矩阵LUT 431中选择的N行和N列的基本变换矩阵Tbase,经由符号反转单元511进一步使奇数阶行向量的符号反转,并且将变换矩阵TInvSign输出至变换矩阵导出单元421的外部(将变换矩阵TInvSign提供给矩阵计算单元422)作为变换矩阵TV
如上所述,变换矩阵导出单元421可以使用翻转单元432和符号反转单元511来实现从图10所示的表的顶部起的第三行示例的导出示例。
<变换矩阵导出单元>
图51是示出在这种情况下的包括在逆一次水平变换单元413中的变换矩阵导出单元451的主要配置示例的框图。如图51所示,与变换矩阵导出单元421类似,在这种情况下的变换矩阵导出单元451包括变换矩阵LUT 461、翻转单元462和符号反转单元512。注意,在图51中,省略了表示数据传送的箭头,但是在变换矩阵导出单元451中,可以在任意处理单元(处理块)之间传送任意数据。
变换矩阵LUT 461和翻转单元462与图50中的情况类似。符号反转单元512与符号反转单元501类似地使用N行和N列的变换矩阵T作为输入,使变换矩阵T的预定部分的符号反转,并且执行符号反转,并且输出符号反转之后的变换矩阵TInvSign。在该导出示例的情况下,变换矩阵导出单元451经由翻转单元462水平地翻转在变换矩阵LUT 461中选择的N行和N列的基本变换矩阵Tbase,经由符号反转单元512进一步使奇数阶行向量的符号反转,并且将变换矩阵TInvSign输出至变换矩阵导出单元451的外部(将变换矩阵TInvSign提供给矩阵计算单元452)作为变换矩阵TV
如上所述,变换矩阵导出单元451可以使用翻转单元462和符号反转单元512来实现从图10所示的表的顶部起的第三行示例的导出示例。
<变换矩阵导出处理的流程>
注意,变换矩阵导出单元421和变换矩阵导出单元451通过与参照图48中的流程图描述的情况类似的流程执行变换矩阵导出处理,因此省略对该处理的描述。
<2-4.示例1-3>
<概念>
接下来,将描述图10中所示的表中的除了最上方的项目名称的行之外的从顶部起的第四行示例和第五行示例。
如上所述,与从顶部起的第一行示例的情况类似,从顶部起的第四行示例的导出聚焦于第一变换类型的最低阶行向量的波形与要替代的变换类型的变换矩阵的最低阶行向量的波形之间的相似性。在这种情况下,导出单元翻转第一变换矩阵,以导出第二变换矩阵。即,如图52所示,导出单元使用DCT8的变换矩阵作为基本变换矩阵Tbase,并且在行方向上翻转变换矩阵以导出FlipDCT8的变换矩阵。具有0阶行向量的类似波形的DST7的(增加类型)变换矩阵可以由FlipDCT8的变换矩阵来替代。
此外,从顶部起的第五行示例的导出聚焦于第一变换类型的最高阶列向量的波形与要替代的变换类型的变换矩阵的最低阶行向量的波形之间的相似性。在这种情况下,导出单元翻转第一变换矩阵,并且对经翻转的第一变换矩阵进行转置,以导出第二变换矩阵。即,如图52所示,导出单元使用DCT8的变换矩阵作为基本变换矩阵Tbase,并且在行方向翻转变换矩阵,并且进一步转置变换矩阵,以导出TrFlipDCT8的变换矩阵。具有0阶行向量的类似波形的DST1的(山形类型)变换矩阵可以由TrFlipDCT8的变换矩阵来替代。
即,在以上两个导出示例中,第二变换矩阵可以通过一次或两次运算(翻转、或翻转和转置)来导出。此外,运算是容易的。即,可以容易地导出第二变换矩阵。
此外,通过应用以上两个导出示例,不必准备DST7的变换矩阵和DST1的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,可以减少单一变换类型的数目。
在这种情况下,如图53中的表所示,在非专利文献1中描述的技术的情况下(参见图6中的表A)所需的五种类型的变换矩阵可以被减少到三种类型。因此,总LUT大小可以为约40KB。即,与非专利文献1中描述的技术的情况相比,LUT的大小可以减小(大约53KB(图6中的表A))。即,可以抑制LUT的大小的增加。
注意,如上所述,即使在这种情况下,也可以通过使用导出的第二变换类型(FlipDCT8或TrFlipDCT8)的变换矩阵执行正交变换/逆正交变换,来获得与使用DST7的变换矩阵或DST1的变换矩阵进行正交变换/逆正交变换的情况类似的编码效率。
<配置>
由于在这种情况下图像编码设备100和图像解码设备200的配置与<2-2.示例1-1>中描述的配置类似,因此省略其描述。
<变换矩阵导出处理的流程>
接下来,将描述处理流程的流程。由于通过与<2-2.示例1-1>中描述的示例类似的流程等来执行除变换矩阵导出处理之外的处理,因此省略了对该处理的描述。
将参照图54中的流程图描述在图28中的步骤S321中由包括在一次水平变换单元312中的变换矩阵导出单元321执行的这种情况下的变换矩阵导出处理的流程的示例。
当开始变换矩阵导出处理时,在步骤S521中,变换矩阵导出单元321例如通过参考图55所示的对应表来获得与变换类型标识符TrTypeIdxH对应的基本变换类型BaseTrType。
此外,与图30中的流程图的步骤S341的情况类似,变换矩阵导出单元321设置与变换类型标识符TrTypeIdxH对应的翻转标志FlipFlag的值以及与变换类型标识符TrTypeIdxH对应的转置标志TransposeFlag的值。
在步骤S522中,变换矩阵导出单元321确定翻转标志FlipFlag是否满足由以下表达式(42)表达的条件(ConditionC1)。
[数学式38]
ConditionCl:FlipFlag==T···(42)
在确定不满足上述条件(ConditionC1)的情况下(在翻转标志FlipFlag为假(0)的情况下),处理进行至步骤S523。
在步骤S523中,与图30中的步骤S343的情况类似,变换矩阵导出单元321将基本变换矩阵Tbase设置为变换矩阵TH。当步骤S523中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。
此外,在步骤S522中,在确定满足上述条件(ConditionC1)的情况下(在翻转标志FlipFlag为真(1)的情况下),处理进行至步骤S524。
在步骤S524中,变换矩阵导出单元321水平地翻转基本变换矩阵Tbase,并且将经翻转的变换矩阵Flip(Tbase)设置为变换矩阵Ttmp。该处理可以被表达为以下表达式(43)。
[数学式39]
Ttmp=Flip(Tbase)=Tbase×J···(43)
在步骤S525中,变换矩阵导出单元321确定转置标志TransposeFlag是否满足由以下表达式(44)表达的条件(ConditionC2)。
[数学式40]
CenditionC2:TransposeFlag==T···(44)
在确定不满足上述条件(ConditionC2)的情况下(在转置标志TransposeFlag为假(0)的情况下),处理进行至步骤S526。
在步骤S526中,变换矩阵导出单元321将变换矩阵Ttmp设置为变换矩阵TH。该处理可以被表达为以下表达式(45)。
[数学式41]
TH=Ttmp···(45)
当步骤S526中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。此外,在步骤S525中,在确定满足上述条件(ConditionC2)的情况下(在转置标志TransposeFlag为真(1)的情况下),处理进行至步骤S527。
在步骤S527中,变换矩阵导出单元321将通过对变换矩阵Ttmp进行转置而获得的Tr(Ttmp)设置为变换矩阵TH。该处理可以被表达为例如以下表达式(46)。
[数学式42]
TH=Tr(Ttmp)=ttmp T···(46)
当步骤S527中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。
通过执行如上所述的变换矩阵导出处理,可以在水平方向的一维正交变换中实现从图10的表的顶部起的第四行示例和第五行示例的导出示例。因此,可以抑制所需存储容量的增加。
注意,已经给出了以上描述,使得按顺序执行翻转和转置。然而,可以共同地执行翻转和转置(通过一次运算)。例如,共同执行图54中的步骤S522和S525中的确定,并且在两个确定为真(1)的情况下,可以共同执行翻转和转置。
例如,当翻转和转置运算被表达为针对每个元素的运算时,基本变换矩阵Tbase的(i,N-1-j)分量被设置为变换矩阵TH的j行i列分量((j,i)分量)。即,运算可以被表达为以下表达式(47)。
[数学式43]
TH[j,i]=Tbase[i,N-1-j]
对于i,j=0,...,N-1
···(47)
此处,N行和N列的变换矩阵TH的i行j列分量((i,j)分量)被写为TH[i,j]。此外,第二行上的“对于i,j=0,...,N-1”指示i和j具有0到N-1的值。即,它意味着TH[i,j]指示N行和N列的变换矩阵TH的所有元素。
以这种方式,翻转和转置可以通过一次运算来实现,这是通过简单地访问二维阵列来实现的。此外,由于不需要翻转矩阵J,因此可以通过翻转矩阵J的容量来抑制存储器容量的增加。
注意,在本示例的情况下,在图32的步骤S361中,还通过与图54中的流程图类似的流程执行由一次垂直变换单元313中包括的变换矩阵导出单元351执行的变换矩阵导出处理。
此外,在本示例的情况下,在图41的步骤S441中,还通过与图54中的流程图类似的流程来执行由逆一次垂直变换单元412中包括的变换矩阵导出单元421执行的变换矩阵导出处理。
此外,在本示例的情况下,在图42的步骤S461中,还通过与图54中的流程图类似的流程来执行由逆一次水平变换单元413中包括的变换矩阵导出单元451执行的变换矩阵导出处理。
因此,省略对处理的描述。
<2-5.示例1-4>
<概念>
接下来,将描述图10中所示的表中的除了最上方的项目名称的行之外的从顶部起的第六行示例。
如上所述,从顶部起的第六行示例的导出聚焦于配对的DCT与DST之间的特性,与从顶部起的第三行示例的情况(示例1-2)类似。更具体地,在要配对的DCT/DST(例如,DCT8与DST7)之间,注意到以下点:偶数行向量是轴对称的,而奇数行向量是点对称的。在这种情况下,导出单元翻转第一变换矩阵,并且使经翻转的第一变换矩阵的奇数行向量的符号反转,以导出第二变换矩阵。即,如图56所示,导出单元使用DCT8的变换矩阵作为基本变换矩阵Tbase,并且在行方向翻转变换矩阵,并且进一步使奇数阶行向量的符号反转以无损地导出DST7的变换矩阵。因此,自然地,具有0阶行向量的相同波形的DST7的(增加类型)变换矩阵可以由导出的DST7的变换矩阵来替代。
即,在该导出示例中,第二变换矩阵可以通过两次运算(翻转和符号反转)来导出。此外,运算是容易的。即,可以容易地导出第二变换矩阵。
此外,通过应用该导出示例,不必准备DST7的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,可以减少单一变换类型的数目。
在这种情况下,如图57中的表所示,在非专利文献1中描述的技术的情况下(参见图6中的表A)所需的五种类型的变换矩阵可以被减少到四种类型。因此,总LUT大小可以为约47KB。即,与非专利文献1中描述的技术的情况相比,LUT的大小可以减小(大约53KB(图6中的表A))。即,可以抑制LUT的大小的增加。
此外,在该导出示例中,DST7的变换矩阵可以被导出为第二变换矩阵。因此,通过使用第二变换矩阵执行正交变换/逆正交变换,可以获得与使用DST7的变换矩阵进行正交变换/逆正交变换的情况相同的编码效率。
<配置和处理的流程>
由于在这种情况下图像编码设备100和图像解码设备200的配置与<2-3.示例1-2>中描述的那些类似,因此省略其描述。此外,由于由图像编码装置100和图像解码装置200执行的处理与<2-3.示例1-2>中描述的处理类似,因此省略其描述。
注意,在本示例的情况下,在变换矩阵导出处理中获得与变换类型标识符TrTypeIdxH对应的基本变换类型时,例如,通过参考图58所示的对应表来获得基本变换类型。除了以上之外,根据与参照图48中的流程图描述的情况类似的流程来简单地执行处理。
<2-6.示例1-5>
<概念>
接下来,将描述图10中所示的表中的除了最上方的项目名称的行之外的从顶部起的第七行示例和第八行示例。
如上所述,与从顶部起的第一行示例的情况类似,从顶部起的第七行示例的导出聚焦于第一变换类型的最低阶行向量的波形与要替代的变换类型的变换矩阵的最低阶行向量的波形之间的相似性。注意,在这种情况下,导出单元对第一变换矩阵进行转置,以导出第二变换矩阵。即,导出单元使用DCT2的变换矩阵作为基本变换矩阵Tbase,并且转置变换矩阵以导出DCT3的变换矩阵,如图59所示。具有0阶行向量的类似波形的DCT8的(减小类型)变换矩阵可以由DCT3的变换矩阵来替代。
此外,与从顶部起的第五行示例的情况类似,从顶部起的第八行示例的导出聚焦于第一变换类型的最高阶列向量的波形与要替代的变换类型的变换矩阵的最低阶行向量的波形之间的相似性。在这种情况下,导出单元对第一变换矩阵进行转置,并且翻转经转置的第一变换矩阵,以导出第二变换矩阵。即,如图59所示,导出单元使用DCT2的变换矩阵作为基本变换矩阵Tbase,并且对变换矩阵进行转置,并且进一步在行方向上翻转变换矩阵以导出FlipDCT3的变换矩阵。具有0阶行向量的类似波形的DST7的(增加类型)变换矩阵可以由FlipDCT3的变换矩阵来替代。
即,在以上两个导出示例中,第二变换矩阵可以通过一次或两次运算(转置、或转置和翻转)来导出。此外,运算是容易的。即,可以容易地导出第二变换矩阵。
此外,通过应用以上两个导出示例,不必准备DCT8的变换矩阵和DST7的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,可以减少单一变换类型的数目。
在这种情况下,如图60中的表所示,在非专利文献1中描述的技术的情况下(参见图6中的表A)所需的五种类型的变换矩阵可以被减少到三种类型。因此,总LUT大小可以为约40KB。即,与非专利文献1中描述的技术的情况相比,LUT的大小可以减小(大约53KB(图6中的表A))。即,可以抑制LUT的大小的增加。
注意,如上所述,即使在这种情况下,也可以通过使用导出的第二变换类型(DCT3或FlipDCT3)的变换矩阵执行正交变换/逆正交变换,来获得与使用DCT8的变换矩阵或DST7的变换矩阵进行正交变换/逆正交变换的情况类似的编码效率。
<配置>
由于在这种情况下图像编码设备100和图像解码设备200的配置与<2-2.示例1-1>中描述的那些类似,因此省略其描述。
<变换矩阵导出处理的流程>
接下来,将描述处理流程的流程。由于通过与<2-2.示例1-1>中描述的示例类似的流程等来执行除变换矩阵导出处理之外的处理,因此省略了对该处理的描述。
将参照图61中的流程图描述在图28中的步骤S321中由包括在一次水平变换单元312中的变换矩阵导出单元321执行的这种情况下的变换矩阵导出处理的流程的示例。
当开始变换矩阵导出处理时,在步骤S541中,变换矩阵导出单元321例如通过参考图62所示的对应表来获得与变换类型标识符TrTypeIdxH对应的基本变换类型BaseTrType。
此外,与图30中的流程图的步骤S341的情况类似,变换矩阵导出单元321设置与变换类型标识符TrTypeIdxH对应的翻转标志FlipFlag的值以及与变换类型标识符TrTypeIdxH对应的转置标志TransposeFlag的值。
在步骤S542中,变换矩阵导出单元321确定转置标志TransposeFlag是否满足由以下表达式(48)表达的条件(ConditionD1)。
[数学式44]
ConditionD1:TransposeFlag==T
···(48)
在确定不满足上述条件(ConditionD1)的情况下(在转置标志TransposeFlag为假(0)的情况下),处理进行至步骤S543。
在步骤S543中,与图30中的步骤S343的情况类似,变换矩阵导出单元321将基本变换矩阵Tbase设置为变换矩阵TH。当步骤S543中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。
此外,在步骤S542中,在确定满足上述条件(ConditionD1)的情况下(在转置标志TransposeFlag为真(1)的情况下),处理进行至步骤S544。
在步骤S544中,变换矩阵导出单元321在水平方向上转置基本变换矩阵Tbase,并且将经转置的变换矩阵Tr(Tbase)设置为变换矩阵Ttmp。该处理可以被表达为以下表达式(49)。
[数学式45]
Ttmp=Tr(Tbase)=TbaseT···(49)
在步骤S545中,变换矩阵导出单元321确定翻转标志FlipFlag是否满足由以下表达式(50)表达的条件(ConditionD2)。
[数学式46]
ConditionD2:FlipFlag==T
···(50)
在确定不满足上述条件(ConditionD2)的情况下(在翻转标志FlipFlag为假(0)的情况下),处理进行至步骤S546。
在步骤S546中,变换矩阵导出单元321将变换矩阵Ttmp设置为变换矩阵TH,如在上述表达式(45)中那样。
当步骤S546中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。此外,在步骤S545中,在确定满足上述条件(ConditionD2)的情况下(在翻转标志FlipFlag为真(1)的情况下),处理进行至步骤S547。
在步骤S547中,变换矩阵导出单元321将通过翻转变换矩阵Ttmp获得的Flip(Ttmp)设置为变换矩阵TH。该处理可以被表达为例如以下表达式(51)。
[数学式47]
TH=Flip(Ttmmp)=Ttmp×J···(51)
当步骤S547中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。
通过执行如上所述的变换矩阵导出处理,可以在水平方向的一维正交变换中实现从图10的表的顶部起的第七行示例和第八行示例的导出示例。因此,可以抑制所需存储容量的增加。
注意,已经给出了以上描述,使得按顺序执行转置和翻转。然而,转置和翻转可以被共同执行(通过一次运算)。例如,共同执行图61中的步骤S542和S545中的确定,并且在两个确定为真(1)的情况下,可以共同执行转置和翻转。
例如,当转置和翻转运算被表达为对每个元素的运算时,基本变换矩阵Tbase的(j,i)分量被设置为变换矩阵TH的i行(N-1-j)列分量((i,(N-1-j)分量)。即,该处理可以被表达为以下表达式(52)。
[数学式48]
TH[i,N-1-j]=Tbase[j,i]
对于i,j=0,...,N-1
···(52)
此处,N行和N列的变换矩阵TH的i行j列分量((i,j)分量)被写为TH[i,j]。此外,第二行上的“对于i,j=0,...,N-1”指示i和j具有0到N-1的值。即,它意味着TH[i,j]指示N行和N列的变换矩阵TH的所有元素。
以这种方式,可以通过一次运算来实现转置和翻转,这是通过简单地访问二维阵列来实现的。此外,由于不需要翻转矩阵J,因此可以通过翻转矩阵J的容量来抑制存储器容量的增加。
注意,在本示例的情况下,在图32的步骤S361中,还通过与图61中的流程图类似的流程执行由一次垂直变换单元313中包括的变换矩阵导出单元351执行的变换矩阵导出处理。例如,在图61的流程图中,通过用TrTypeIdxV替换变换类型标识符TrTypeIdxH并且用变换矩阵TV替换变换矩阵TH,来简单地进行解释。
此外,在本示例的情况下,在图41的步骤S441中,还通过与图61中的流程图类似的流程来执行由逆一次垂直变换单元412中包括的变换矩阵导出单元421执行的变换矩阵导出处理。例如,在图61的流程图中,通过用TrTypeIdxV替换变换类型标识符TrTypeIdxH并且用变换矩阵TV替换变换矩阵TH,来简单地进行解释。
此外,在本示例的情况下,在图42的步骤S461中,还通过与图61中的流程图类似的流程来执行由逆一次水平变换单元413中包括的变换矩阵导出单元451执行的变换矩阵导出处理。
因此,省略对处理的描述。
<3.第二实施方式>
<3-1.共同概念>
<预测残差置换运算>
在第一实施方式中,已经描述了运算变换矩阵以生成另一变换矩阵。然而,不仅可以运算变换矩阵,而且还可以运算预测残差。即,可以对图像的预测残差进行置换运算,可以使用作为基本的变换矩阵对进行置换运算的预测残差进行正交变换,并且可以对通过对预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
例如,图像处理装置可以包括:运算单元,其被配置成对图像的预测残差执行置换运算;正交变换单元,其被配置成使用作为基本的变换矩阵对由运算单元进行了置换运算的预测残差进行正交变换;以及编码单元,其被配置成对通过由正交变换单元对预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
即使在这种情况下,也可以实现与第一实施方式的情况等效的二维正交变换。即,使用另一变换矩阵的正交变换基本上可以通过使用特定变换矩阵的正交变换来实现。因此,与第一实施方式的情况类似,可以抑制为正交变换准备的变换矩阵的数目的增加,并且可以抑制正交变换所需的存储器容量的增加。此外,由于与第一实施方式的情况相比可以减少运算的次数,因此可以抑制正交变换的处理量的增加。
此外,可以对比特流进行解码以获得作为图像的正交变换预测残差的系数数据,可以对所获得的系数数据进行逆正交变换,并且可以对所获得的系数数据的逆正交变换结果进行置换。
例如,图像处理装置可以包括:解码单元,其被配置成对比特流进行解码以获得通过对图像的预测残差进行正交变换而获得的系数数据;逆正交变换单元,其被配置成对由解码单元获得的系数数据进行逆正交变换;以及运算单元,其被配置成对由逆正交变换单元获得的系数数据的逆正交变换结果执行置换运算。
即使在这种情况下,也可以实现与第一实施方式的情况等同的逆二维正交变换。即,通过使用特定变换矩阵进行的逆正交变换,可以基本上实现通过另一变换矩阵进行的逆正交变换。因此,与第一实施方式的情况类似,可以抑制为逆正交变换准备的变换矩阵的数目的增加,并且可以抑制逆正交变换所需的存储器容量的增加。此外,由于与第一实施方式的情况相比可以减少运算的次数,因此可以抑制逆正交变换的处理量的增加。
将给出更具体的描述。当聚焦于两个不同的二维正交变换(包括预测残差)的空间对称属性时,存在在特定方向(水平方向或垂直方向)上的一维正交变换之间(例如,在DST7的变换矩阵与作为DST7的翻转变换矩阵的FlipDST7的变换矩阵之间)存在轴对称的一些情况。此外,如对于预测残差,存在在特定方向(水平方向或垂直方向)的预测残差之间(例如,在预测残差(X)与翻转预测残差(X·J)之间)存在轴对称属性的一些情况。
在这种情况下,例如,如图63所示,通过使用第一变换矩阵对经翻转的原始预测残差进行正交变换,可以替代使用作为经翻转的第一变换矩阵的第二变换矩阵对原始预测残差进行正交变换。
在图63的示例的情况下,在图63的左侧,如以下表达式(53)中的那样,对原始预测残差执行使用第一变换矩阵进行的垂直方向的一维正交变换和使用经翻转的第一变换矩阵进行的水平方向的一维正交变换。
[数学式49]
Y=T2·X·(T1 T·J)···(53)
同时,在图63的右侧,示出了预测残差的翻转(下面的表达式(54))以及针对经翻转的预测残差使用第一变换矩阵进行垂直方向的一维正交变换和水平方向的一维正交变换(下面的表达式(55))。
[数学式50]
X’=(X·J)···(54)
Y=T2·X'·T1 T···(55)
这两个二维正交变换具有空间对称属性。因此,一个二维正交变换可以由另一个二维正交变换来替代。
换句话说,在基本变换矩阵(变换类型)与用于预测残差的正交变换的变换矩阵(该变换矩阵是使用基本变换矩阵导出的)之间存在空间对称属性的情况下,可以通过在空间对称属性的方向上翻转预测残差并且使用基本变换矩阵对经翻转的预测残差进行正交变换,来替代使用另一变换矩阵进行的正交变换(使用利用基本变换矩阵导出的变换矩阵对翻转之前的预测残差进行的正交变换)。
即,运算单元可以在一维正交变换之间的空间对称方向上翻转预测残差,并且正交变换单元可以使用作为基本的变换矩阵对由运算单元翻转的预测残差进行正交变换。通过这样做,可以执行与使用另一变换矩阵进行的正交变换等同的正交变换。即,如上所述,可以基本上实现使用另一变换矩阵的正交变换。因此,可以抑制为正交变换准备的变换矩阵的数目的增加,并且可以抑制正交变换所需的存储器容量的增加。
这类似地适用于逆正交变换。即,可以通过使用基本变换矩阵对通过对比特流进行解码而获得的系数数据进行逆正交变换,并且可以由运算单元在一维正交变换之间的空间对称方向上翻转逆正交变换结果。利用该配置,可以基本上实现使用另一变换矩阵进行的逆正交变换。因此,可以抑制为逆正交变换准备的变换矩阵的数目的增加,并且可以抑制逆正交变换所需的存储器容量的增加。
例如,图64中的左侧示出了二维正交变换,其中,对预测残差X执行使用作为DST7的经翻转的变换矩阵的FlipDST7进行的水平方向的一维正交变换和使用DST7的变换矩阵进行的垂直方向的一维正交变换。此外,图64的右侧示出了二维正交变换,其中,对通过水平翻转预测残差X而获得的预测残差X'(=X·J)执行使用DST7的变换矩阵进行的水平方向的一维正交变换和垂直方向的一维正交变换。这些是彼此水平对称的并且是等同的。因此,例如,前一种二维正交变换可以被后一种二维正交变换替代。注意,前一种二维正交变换由以下表达式(56)表达,而后一种二维正交变换由以下表达式(57)表达。
[数学式51]
Y=T2·X·(T1·J)T···(56)
Y=T2·(X·J)·T1 T···(57)
即,例如,在基本变换矩阵(变换类型)与要用于预测残差正交变换的变换矩阵(使用基本变换矩阵导出该变换矩阵)之间存在水平对称属性的情况下,运算单元可以水平地翻转预测残差,并且正交变换单元可以使用基本变换矩阵对由运算单元水平翻转的预测残差进行正交变换。通过这样做,可以基本上实现与使用基本变换矩阵进行的正交变换具有水平对称属性的使用另一变换矩阵进行的正交变换。
这类似地适用于逆正交变换。即,在基本变换矩阵(变换类型)与要用于系数数据逆正交变换的变换矩阵(该变换矩阵是使用基本变换矩阵导出的)之间存在水平对称属性的情况下,逆正交变换单元可以使用基本变换矩阵对通过对比特流进行解码而获得的系数数据进行逆正交变换,并且运算单元可以水平地翻转逆正交变换结果。通过这样做,可以基本上实现与使用基本变换矩阵进行的逆正交变换具有水平对称属性的使用另一变换矩阵进行的逆正交变换。
此外,例如,图65中的左侧示出了二维正交变换,其中,对预测残差X执行使用DST7的变换矩阵进行的水平方向的一维正交变换和使用作为DST7的经翻转的变换矩阵的FlipDST7进行的垂直方向的一维正交变换。此外,图65的右侧示出了二维正交变换,其中,对通过垂直地翻转预测残差X而获得的预测残差X′(=J·X)执行使用DST7的变换矩阵进行的水平方向的一维正交变换和垂直方向的一维正交变换。这些是彼此垂直对称的并且是等同的。因此,例如,前一种二维正交变换可以被后一种二维正交变换替代。注意,前一种二维正交变换由以下表达式(58)表达,而后一种二维正交变换由以下表达式(59)表达。
[数学式52]
Y=(T2·J)·X·T1 T···(58)
Y=T2·(J·X)·T1 T···(59)
即,例如,在基本变换矩阵(变换类型)与要用于预测残差正交变换的变换矩阵(该变换矩阵是使用基本变换矩阵导出的)之间存在垂直对称属性的情况下,运算单元可以垂直地翻转预测残差,并且正交变换单元可以使用基本变换矩阵对由运算单元垂直翻转的预测残差进行正交变换。通过这样做,可以基本上实现与使用基本变换矩阵进行的正交变换具有垂直对称属性的使用另一变换矩阵进行的正交变换。
这类似地适用于逆正交变换。即,在基本变换矩阵(变换类型)与要用于系数数据逆正交变换的变换矩阵(该变换矩阵是使用基本变换矩阵导出的)之间存在垂直对称属性的情况下,逆正交变换单元可以使用基本变换矩阵对通过对比特流进行解码而获得的系数数据进行逆正交变换,并且运算单元可以垂直地翻转逆正交变换结果。通过这样做,可以基本上实现与使用基本变换矩阵进行的逆正交变换具有垂直对称属性的使用另一变换矩阵进行的逆正交变换。
此外,例如,图66中的左侧示出了二维正交变换,其中,对预测残差X执行使用作为DST7的经翻转的变换矩阵的FlipDST7进行的水平方向的一维正交变换和垂直方向的一维正交变换。此外,图66的右侧示出了二维正交变换,其中,对通过水平地和垂直地翻转预测残差X而获得的预测残差X′(=J·X·J)执行使用DST7的变换矩阵进行的水平方向的一维正交变换和垂直方向的一维正交变换。这些是彼此水平和垂直对称的并且是等同的。因此,例如,前一种二维正交变换可以被后一种二维正交变换替代。注意,前一种二维正交变换由以下表达式(60)表达,而后一种二维正交变换由以下表达式(61)表达。
[数学式53]
Y=(T2·J)·X·(T1·J)T···(60)
Y=T2·(J·X·J)·T1 T···(61)
即,例如,在基本变换矩阵(变换类型)与要用于预测残差正交变换的变换矩阵(该变换矩阵是使用基本变换矩阵导出的)之间存在水平和垂直对称属性的情况下,运算单元可以水平地和垂直地翻转预测残差,并且正交变换单元可以使用基本变换矩阵对由运算单元水平和垂直翻转的预测残差进行正交变换。通过这样做,可以基本上实现与使用基本变换矩阵进行的正交变换具有水平和垂直对称属性的使用另一变换矩阵进行的正交变换。
这类似地适用于逆正交变换。即,在基本变换矩阵(变换类型)与要用于系数数据逆正交变换的变换矩阵(该变换矩阵是使用基本变换矩阵导出的)之间存在水平和垂直对称属性的情况下,逆正交变换单元可以使用基本变换矩阵对通过对比特流进行解码而获得的系数数据进行逆正交变换,并且运算单元可以水平地和垂直地翻转逆正交变换结果。通过这样做,可以基本上实现与使用基本变换矩阵进行的逆正交变换具有水平和垂直对称属性的使用另一变换矩阵进行的逆正交变换。
注意,在以上表达式(60)的情况下,变换矩阵T1和T2被翻转,使得该运算需要进行两次。相反,在以上表达式(61)的情况下,可以用置换矩阵P和预测残差X的矩阵积来置换对预测残差(J·X·J)的翻转。即,该运算需要进行一次。因此,与以上表达式(60)的情况(在翻转变换矩阵的情况下)相比,可以减少运算的次数,并且可以抑制正交变换/逆正交变换的处理量的增加(可以更容易地执行正交变换/逆正交变换)。即,可以抑制正交变换/逆正交变换处理的负荷的增加。此外,可以以更高的速度执行正交变换/逆正交变换。
<变换矩阵的符号反转>
除了对预测残差的置换运算之外,还可以应用对变换矩阵的运算。例如,导出单元可以使用第一变换矩阵来导出第二变换矩阵,运算单元可以在一维正交变换之间的空间对称方向上翻转预测残差,并且正交变换单元可以使用由导出单元导出的第二变换矩阵来对由运算单元翻转的预测残差进行正交变换。通过这样做,可以基本上实现使用另一变换矩阵进行的正交变换。因此,可以抑制为正交变换准备的变换矩阵的数目的增加,并且可以抑制正交变换所需的存储器容量的增加。
这类似地适用于逆正交变换。例如,导出单元可以使用第一变换矩阵来导出第二变换矩阵,逆正交变换单元可以使用由导出单元导出的第二变换矩阵来对由解码单元获得的系数数据进行逆正交变换,并且运算单元可以置换由逆正交变换单元获得的系数数据的逆正交变换结果。通过这样做,可以基本上实现使用另一变换矩阵进行的逆正交变换。因此,可以抑制为逆正交变换准备的变换矩阵的数目的增加,并且可以抑制逆正交变换所需的存储器容量的增加。
注意,在正交变换或逆正交变换中的导出中,导出单元可以导出与第一变换矩阵具有相同行数和相同列数的第二变换矩阵。在改变行的数目和列的数目的情况下,存在波形类型无意地改变的可能性。因此,通过将行的数目和列的数目设置为与第一变换矩阵的行的数目和列的数目相同,可以抑制波形类型的无意改变的可能性,并且可以更容易地导出第二变换矩阵。
此外,在导出第二变换矩阵时,导出单元可以使第一变换矩阵的奇数行向量的符号反转,以导出第二变换矩阵。通过使用如上所述导出的第二变换矩阵置换预测残差来执行正交变换,可以实现(替代)使用另一变换矩阵对预测残差进行的正交变换,在该另一变换矩阵中,偶数行向量相对于第一变换矩阵轴对称,奇数行向量相对于第一变换矩阵点对称。此外,通过使用如上所述导出的第二变换矩阵执行逆正交变换并且如上所述的那样置换逆正交变换结果,可以实现(替代)使用另一变换矩阵进行的逆正交变换,在该另一变换矩阵中,偶数行向量相对于第一变换矩阵轴对称,奇数行向量相对于第一变换矩阵点对称。
<预测残差运算示例>
在图67中示出了用于替代使用另一变换矩阵进行的正交变换/逆正交变换的预测残差运算示例的列表。
在图67所示的表中,除了最上方的项目名称的行之外的从顶部起的第一行示例的运算聚焦于在两个不同的二维正交变换中在特定方向(水平方向和垂直方向中的一个或两个)上的一维正交变换之间存在轴对称属性的事实。
在这种情况下,运算单元在一维正交变换之间的空间对称方向上翻转预测残差,并且正交变换单元使用作为基本的变换矩阵对由运算单元翻转的预测残差进行正交变换。更具体地,运算单元翻转预测残差,并且正交变换单元使用DST7的变换矩阵作为基本变换矩阵Tbase,并且使用DST7的变换矩阵对经翻转的预测残差进行正交变换。通过这样做,使用FlipDST7的变换矩阵对未翻转的预测残差进行的正交变换可以被替代。注意,翻转预测残差的方向对应于空间对称方向(水平方向和垂直方向中的一个或两个)。
这类似地适用于逆正交变换。逆正交变换单元使用基本变换矩阵对通过对比特流进行解码而获得的系数数据进行逆正交变换,并且运算单元在一维正交变换之间的空间对称方向上翻转逆正交变换结果。更具体地,逆正交变换单元使用DST7的变换矩阵对系数数据进行逆正交变换,并且运算单元翻转逆正交变换结果。通过这样做,可以替代使用FlipDST7的变换矩阵对系数数据进行的逆正交变换。注意,翻转逆正交变换结果的方向对应于空间对称方向(水平方向和垂直方向中的一个或两个)。
通过对预测残差(包括逆正交变换结果)应用这样的运算,变得不需要准备FlipDST7的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,与第一实施方式的情况类似,可以减少单一变换类型的数目。即,可以抑制LUT大小的增加。此外,通过对预测残差(包括逆正交变换结果)执行包括这样的运算的正交变换/逆正交变换,可以获得与使用FlipDST7的变换矩阵进行的正交变换/逆正交变换的情况类似的编码效率。
此外,由于可以通过共同运算(collective operation)来执行对预测残差(包括逆正交变换结果)的二维翻转运算,因此与使用FlipDST7的变换矩阵进行的正交变换/逆正交变换的情况相比,可以减少翻转运算的次数。因此,可以抑制正交变换/逆正交变换的处理量的增加(可以更容易地执行正交变换/逆正交变换)。即,可以抑制正交变换/逆正交变换处理的负荷的增加。此外,可以以更高的速度执行正交变换/逆正交变换。
此外,第一行示例下方的一行(从顶部起的第二行)的运算聚焦于两个不同的二维正交变换中的特定方向(水平方向和垂直方向中的一个或两个)上的一维正交变换之间的相似性。更具体地,注意到偶数行向量中的轴对称属性和奇数行向量中的点对称属性。
在这种情况下,导出单元使用第一变换矩阵来导出第二变换矩阵,运算单元置换图像的预测残差,并且正交变换单元使用由导出单元导出的第二变换矩阵来对由运算单元置换的预测残差进行正交变换。更具体地,导出单元使DST7的变换矩阵的奇数行向量的符号反转,运算单元翻转预测残差,并且正交变换单元使用通过使由导出单元导出的DST7的变换矩阵的奇数行向量的符号反转而获得的变换矩阵来对经翻转的预测残差进行正交变换。通过这样做,可以替代使用DCT8的变换矩阵对未翻转预测残差进行的正交变换。
注意,翻转预测残差的方向对应于空间对称方向(水平方向和垂直方向中的一个或两个)。此外,由于对变换矩阵的运算仅是针对奇数行向量的符号反转,因此由导出单元导出的变换矩阵的行和列的数目与DST7的行和列的数目相同。
这类似地适用于逆正交变换。导出单元使用第一变换矩阵来导出第二变换矩阵,逆正交变换单元使用第二变换矩阵对通过对比特流进行解码而获得的系数数据进行逆正交变换,并且运算单元在一维正交变换之间的空间对称方向上翻转逆正交变换结果。更具体地,导出单元使DST7的变换矩阵的奇数行向量的符号反转,逆正交变换单元使用具有奇数行向量的经反转符号的DST7的变换矩阵对系数数据进行逆正交变换,并且运算单元翻转逆正交变换结果。通过这样做,可以替代使用DCT8的变换矩阵对系数数据进行的逆正交变换。
注意,翻转逆正交变换结果的方向对应于空间对称方向(水平方向和垂直方向中的一个或两个)。此外,由于对变换矩阵的运算仅是针对奇数行向量的符号反转,因此由导出单元导出的变换矩阵的行的数目和列的数目与DST7的行的数目和列的数目相同。
通过对预测残差(包括逆正交变换结果)应用这样的运算,变得不需要准备DCT8的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,与第一实施方式的情况类似,可以减少单一变换类型的数目。即,可以抑制LUT大小的增加。此外,通过对预测残差(包括逆正交变换结果)执行包括这样的运算的正交变换/逆正交变换,可以获得与使用DCT的变换矩阵进行的正交变换/逆正交变换的情况相同的编码效率。
此外,第二行示例下方的一行(从顶部起的第三行)的运算聚焦于两个不同的二维正交变换中的特定方向(水平方向和垂直方向中的一个或两个)上的一维正交变换之间的轴对称属性。该运算与从顶部起的第一行的运算相同。
注意,在这种情况下,DCT8的变换矩阵被用作基本变换矩阵Tbase。因此,通过这样做,可以替代使用FlipDCT8的变换矩阵对未翻转的预测残差进行的正交变换。这类似地适用于逆正交变换。即,通过这样做,可以替代使用FlipDCT8的变换矩阵对系数数据进行的逆正交变换。
此外,第三行示例下方的一行(从顶部起的第四行)的运算聚焦于两个不同的二维正交变换中的特定方向(水平方向和垂直方向中的一个或两个)上的一维正交变换之间的相似性(偶数行向量的轴对称属性和奇数行向量的点对称属性)。该运算与从顶部起的第二行的运算相同。
注意,在这种情况下,DCT8的变换矩阵被用作基本变换矩阵Tbase。因此,通过这样做,可以替代使用DST7的变换矩阵对未翻转的预测残差进行的正交变换。这类似地适用于逆正交变换。即,通过这样做,可以替代使用DST7的变换矩阵对系数数据进行的逆正交变换。
注意,上述导出示例中的每一个可以独立地执行,或者可以以多个导出示例的组合来执行。此外,在上述示例中,已经使用DST7或DCT8描述了基本变换类型(第一变换类型)的示例。然而,如图8所示,可以通过用具有相同类型的波形形状的变换类型来替换该变换类型,来实现该导出。例如,可以用具有相同类型的波形形状的诸如DST4、DST8或DST3的另一正交变换来替换DST7。类似地,可以用具有相同类型的波形形状的另一正交变换(诸如DCT3、DCT7或DCT4)来替换DCT8。
<配置和处理的流程>
执行这样的预测残差置换运算的图像编码设备100的配置与第一实施方式的情况类似。然后,在图像编码设备100中,正交变换单元113作为运算单元和正交变换单元执行应用了上述本技术的处理。此外,编码单元115作为编码单元执行应用了上述本技术的处理。此外,逆正交变换单元118作为逆正交变换单元和运算单元执行应用了上述本技术的处理。因此,图像编码设备100可以抑制正交变换/逆正交变换所需的存储器容量的增加。
此外,正交变换单元113的配置与第一实施方式的情况类似。然后,在正交变换单元113中,一次变换单元152作为运算单元和正交变换单元执行应用了上述本技术的处理。即,运算单元置换图像的预测残差,并且正交变换单元使用作为基本的变换矩阵来对由运算单元置换的预测残差执行一次变换。因此,可以抑制一次变换所需的存储器容量的增加。
注意,如上所述,一次变换单元152执行一次水平变换和一次垂直变换作为一次变换。即,运算单元置换图像的预测残差,并且正交变换单元对经置换的预测残差,使用作为基本的用于水平方向的一维正交变换的第二变换矩阵来执行水平方向的一维正交变换,并且进一步使用作为基本的用于垂直方向的一维正交变换的第二变换矩阵来执行垂直方向的一维正交变换,作为一次变换。因此,可以抑制其中执行水平方向的一维正交变换和垂直方向的一维正交变换的一次变换所需的存储器容量的增加。
注意,由图像编码设备100执行的图像编码处理的流程与第一实施方式的情况类似。即,在以上流程的图像编码处理中,执行应用了上述本技术的处理,作为步骤S106的处理。此外,执行应用了上述本技术的处理作为步骤S109的处理。此外,执行应用了上述本技术的处理,作为步骤S113的处理。因此,通过执行图像编码处理,可以抑制正交变换/逆正交变换所需的存储器容量的增加。
此外,在图像编码处理的步骤S106中执行的正交变换处理的流程与第一实施方式的情况类似。即,在以上流程的正交变换处理中,执行应用了上述本技术的处理,作为步骤S132的处理。因此,通过执行正交变换处理,可以抑制一次变换所需的存储器容量的增加。
此外,处理在解码侧是类似的。即,执行逆正交变换结果的这样的置换运算的图像解码设备200的配置与第一实施方式的情况类似。然后,在图像解码设备200中,逆正交变换单元214作为逆正交变换单元和运算单元执行应用了上述本技术的处理。此外,解码单元212作为解码单元执行应用上述本技术的处理。因此,图像解码设备200可以抑制逆正交变换所需的存储器容量的增加。
此外,逆正交变换单元214的配置与第一实施方式的情况类似。然后,在逆正交变换单元214中,逆一次变换单元253作为逆正交变换单元和运算单元执行应用了上述本技术的处理。即,逆正交变换单元使用作为基本的变换矩阵对逆二次变换结果执行逆一次变换,并且运算单元置换所获得的逆一次变换结果。因此,可以抑制逆一次变换所需的存储器容量的增加。
注意,上述逆一次变换单元253执行逆一次垂直变换和逆一次水平变换作为逆一次变换。即,逆正交变换单元对逆二次变换结果,使用作为基本的用于垂直方向的逆一维正交变换的第二变换矩阵来执行垂直方向的逆一维正交变换,并且进一步使用作为基本的用于水平方向的逆一维正交变换的第二变换矩阵来执行水平方向的逆一维正交变换,作为逆一次变换。因此,可以抑制其中执行垂直方向的逆一维正交变换和水平方向的逆一维正交变换的一次变换所需的存储器容量的增加。
注意,由图像解码设备200执行的图像解码处理的流程与第一实施方式的情况类似。即,在以上流程的图像解码处理中,执行应用了上述本技术的处理,作为步骤S202的处理。此外,执行应用了上述本技术的处理,作为步骤S204的处理。因此,通过执行图像解码处理,可以抑制逆正交变换所需的存储器容量的增加。
此外,在图像解码处理的步骤S204中执行的逆正交变换处理的流程与第一实施方式的情况类似。即,在以上流程的逆正交变换处理中,执行应用了上述本技术的处理,作为步骤S233的处理。因此,通过执行逆正交变换处理,可以抑制逆一次变换所需的存储器容量的增加。
<3-2.示例2-1>
<概念>
接下来,将更详细地描述参照图67描述的每个导出示例。首先,在图67所示的表中,除了最上方的项目名称的行之外的从顶部起的第一行示例的运算聚焦于两个不同的二维正交变换中的特定方向(水平方向和垂直方向中的一个或两个)上的一维正交变换之间的轴对称属性。
在这种情况下,运算单元翻转预测残差。正交变换单元使用基本变换矩阵(DST7的变换矩阵)对经翻转的预测残差进行正交变换。通过这样做,使用作为DST7的经翻转的变换矩阵的FlipDST7的变换矩阵的预测残差的正交变换(参见<2-2.示例1-1>)可以被替代。
这类似地适用于逆正交变换。在这种情况下,逆正交变换单元使用基本变换矩阵(DST7的变换矩阵)对系数数据进行逆正交变换,并且运算单元翻转逆正交变换结果。通过这样做,可以替代使用作为DST7的经翻转的变换矩阵的FlipDST7的变换矩阵对系数数据(变换系数Coeff_IQ)进行的逆正交变换。
通过对预测残差(包括逆正交变换结果)应用这样的运算,变得不需要准备FlipDST7的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,与第一实施方式的情况类似,可以减少单一变换类型的数目。
在这种情况下,如图68中的表所示,在非专利文献1中描述的技术的情况下(参见图6中的表A)所需的五种类型的变换矩阵可以被减少到四种类型。因此,总LUT大小可以为约47KB。即,与非专利文献1中描述的技术的情况相比,LUT的大小可以减小(大约53KB(图6中的表A))。即,可以抑制LUT的大小的增加。
此外,由于可以通过共同运算来执行对预测残差(包括逆正交变换结果)的二维翻转运算,因此与使用FlipDST7的变换矩阵进行的正交变换/逆正交变换的情况相比,可以减少翻转运算的次数。因此,可以抑制正交变换/逆正交变换的处理量的增加(可以更容易地执行正交变换/逆正交变换)。
此外,通过对预测残差(包括逆正交变换结果)执行包括这样的运算的正交变换/逆正交变换,可以获得与使用FlipDST7的变换矩阵进行的正交变换/逆正交变换的情况类似的编码效率。
<一次变换单元>
接下来,将描述用于执行这样的处理的配置、处理等。图69是示出一次变换单元152在这种情况下的主要配置示例的框图。如图69所示,除了图22所示的配置之外,在这种情况下,一次变换单元152还包括预测残差置换运算单元551。
一次变换选择单元311将导出的一次水平变换的变换类型标识符TrTypeIdxH和导出的一次垂直变换的变换类型标识符TrTypeIdxV提供给预测残差置换运算单元551。
预测残差置换运算单元551使用从开关151提供的预测残差D、一次水平变换的变换类型标识符TrTypeIdxH、一次垂直变换的变换类型标识符TrTypeIdxV作为输入。预测残差置换运算单元551根据变换类型标识符TrTypeIdxH和变换类型标识符TrTypeIdxV,来翻转预测残差D。预测残差置换运算单元551将经翻转的预测残差Dflip提供给一次水平变换单元312。
在具有以上配置的一次变换单元152中,预测残差置换运算单元551作为运算单元执行应用了上述本技术的处理。一次水平变换单元312和一次垂直变换单元313作为正交变换单元执行应用了上述本技术的处理。
即,一次水平变换单元312作为正交变换单元使用作为基本的用于水平方向的一维正交变换的变换矩阵,对经翻转的预测残差Dflip执行水平方向的一维正交变换。因此,一次水平变换单元312可以抑制水平方向的一维正交变换所需的存储器容量的增加。
此外,一次垂直变换单元313作为正交变换单元使用作为基本的用于垂直方向的一维正交变换的变换矩阵,对一次水平变换之后的变换系数Coeff_Phor执行垂直方向的一维正交变换。因此,一次垂直变换单元313可以抑制垂直方向的一维正交变换所需的存储器容量的增加。
<一次变换处理的流程>
接下来,将描述由上述配置执行的处理的流程的示例。接下来,将参照图70中的流程图描述在这种情况下在图14的步骤S132中执行的一次变换处理的流程的示例。
当开始一次变换处理时,在步骤S561中,一次变换单元152的一次变换选择单元311选择一次水平变换的变换类型标识符TrTypeIdxH(或变换类型TrTypeH)和一次垂直变换的变换类型标识符TrTypeIdxV(或变换类型TrTypeV)。
在步骤S562中,预测残差置换运算单元551执行预测残差置换运算处理,并且根据在步骤S561中获得的变换类型标识符TrTypeIdxH和变换类型标识符TrTypeIdxV来翻转预测残差D,以导出经翻转的预测残差Dflip
在步骤S563中,一次水平变换单元312使用在步骤S561获得的与一次水平变换的变换类型标识符TrTypeIdxH对应的变换矩阵,执行一次水平变换处理,以对在步骤S562获得的经翻转预测残差Dflip执行一次水平变换。
在步骤S564中,一次垂直变换单元313使用在步骤S561中获得的与一次垂直变换的变换类型标识符TrTypeIdxV对应的变换矩阵,执行一次垂直变换处理,以对在步骤S563的处理中获得的一次水平变换之后的变换系数Coeff_Phor执行一次垂直变换。
在步骤S564中的处理结束的情况下,一次变换处理结束,并且处理返回至图14。
在以上一次变换处理中,执行应用了上述本技术的处理,作为步骤S562至S564的每个处理。因此,通过执行一次变换处理,可以抑制一次水平变换处理和一次垂直变换处理所需的存储器容量的增加。
<预测残差置换运算处理的流程>
将参照图71中的流程图描述在图70中的步骤S562中执行的预测残差置换运算处理的流程。
当开始预测残差置换运算处理时,在步骤S581中,预测残差置换运算单元551导出与一次水平变换的变换类型标识符TrTypeIdxH(或变换类型TrTypeH)对应的翻转标志FlipFlagH以及与一次垂直变换的变换类型标识符TrTypeIdxV(或变换类型TrTypeV)对应的翻转标志FlipFlagV。此时,预测残差置换运算单元551例如通过参考图72所示的对应表(LUT_TrTypeIdxToFlipFlag),获得翻转标志FlipFlagH和翻转标志FlipFlagV。这些翻转标志的导出例如可以被表达为以下表达式(62)和表达式(63)。
[数学式54]
FlipFlagH=LUT_TrTypeIdxToFlipFlag[TrTypeIdxH]···(62)
FlipFlagV=LUT_TrTypeIdxToFlipFlag[TrTypeIdxV]···(63)
在步骤S582中,预测残差置换运算单元551确定在步骤S581中导出的翻转标志FlipFlagH和翻转标志FlipFlagV是否满足以下表达式(64)中表达的条件。
[数学式55]
FlipFlagH==T&&FlipFlagV==F···(64)
在确定满足条件的情况下,即,在确定FlipFlagH为真(1)并且确定FlipFlagV为假(0)的情况下,处理进行至步骤S583。
在步骤S583中,预测残差置换运算单元551水平地翻转预测残差D,以获得经翻转的预测残差Dflip。当该运算被表达为矩阵时,该运算可以被表达为以下表达式(65)。
[数学式56]
Dflip=FlipH(D)=D×J···(65)
此处,×是表示矩阵积的运算符,FlipH(X)是表示水平方向上的对矩阵X的翻转运算的运算符,与FlipV(·)对应的翻转矩阵J是通过使N行和N列的单位矩阵I左右反转获得的矩阵。此外,在将该运算表达为对每个元素的运算的情况下,预测残差置换运算单元551将预测残差D的(i,N-1-j)分量设置为经翻转的预测残差Dflip的i行j列分量((i,j)分量),如以下表达式(66)中那样。
[数学式57]
Dflip[i,j]=D[i,N-1-j]
对于i=0,...,M-1,j=0,...,N-1
···(66)
注意,预测残差D的大小是宽度N和高度M(M行和N列)。N和M满足以下表达式(67)和(68)。
[数学式58]
N=1<<log2TBWSize···(67)
M=1<<log2TBHSize···(68)
当步骤S583中的处理结束时,处理进行至步骤S588。此外,在步骤S582中,在确定不满足条件的情况下,即在确定FlipFlagH为假(0)或确定FlipFlagV为真(1)的情况下,处理进行至步骤S584。
在步骤S584中,预测残差置换运算单元551确定在步骤S581中导出的翻转标志FlipFlagH和翻转标志FlipFlagV是否满足以下表达式(69)中表达的条件。
[数学式59]
FlipFlagH==F&&FlipFlagV==T···(69)
在确定满足条件的情况下,即,在确定FlipFlagH为假(0)并且确定FlipFlagV为真(1)的情况下,处理进行至步骤S585。
在步骤S585中,预测残差置换运算单元551垂直地翻转预测残差D,以获得经翻转的预测残差Dflip。当该运算被表达为矩阵时,该运算可以被表达为以下表达式(70)。
[数学式60]
Dflip=FlipV(D)=J×D···(70)
此处,×是表示矩阵乘积的运算符,FlipV(X)是表示在垂直方向上的对矩阵X的翻转运算的运算符,并且与FlipV(·)对应的翻转矩阵J是通过使M行M列的单位矩阵I左右反转获得的矩阵。此外,在将该运算表达为对每个元素的运算的情况下,预测残差置换运算单元551将预测残差D的(M-1-i,j)分量设置为经翻转的预测残差Dflip的i行j列分量((i,j)分量),如以下表达式(71)中那样。此外,预测残差D的大小为宽度N和高度M(M行和N列),并且N和M满足上述表达式(67)和(68)。
[数学式61]
Dflip[i,j]=D[M-1-i,j]
对于i=0,...,N-1,j=0,...,M-1
···(71)
当步骤S585中的处理结束时,处理进行至步骤S588。此外,在步骤S584中,在确定不满足条件的情况下,即在确定FlipFlagH为真(1)或确定FlipFlagV为假(0)的情况下,处理进行至步骤S586。
在步骤S586中,预测残差置换运算单元551确定在步骤S581中导出的翻转标志FlipFlagH和翻转标志FlipFlagV是否满足以下表达式(72)中表达的条件。
[数学式62]
FlipFlagH==T&&FlipFlagV==T···(72)
在确定满足条件的情况下,即,在确定FlipFlagH为真(1)并且确定FlipFlagV为真(1)的情况下,处理进行至步骤S587。
在步骤S587中,预测残差置换运算单元551水平地和垂直地翻转预测残差D,以获得经翻转的预测残差Dflip。当该运算被表达为矩阵时,该运算可以被表达为以下表达式(73)。
[数学式63]
Dflip=FlipH(FlipV(D))=J2×D×J1···(73)
此处,×是表示矩阵积的运算符,翻转矩阵J1是通过使N行和N列的单元矩阵I反转获得的矩阵,翻转矩阵J2是通过使M行和M列的单元矩阵I反转而获得的矩阵。注意,即使在转置(JT=J)时,翻转矩阵J也等同于翻转矩阵J。此外,在将该运算表达为针对每个元素的运算的情况下,预测残差置换运算单元551将预测残差D的(M-i-1,N-j-1)分量设置为经翻转的预测残差Dflip的i行j列分量((i,j)分量),如以下表达式(74)中那样。此外,预测残差D的大小为宽度N和高度M(M行和N列),并且N和M满足上述表达式(67)和(68)。
[数学式64]
Dflip[i,j]=D[M-1-i,N-1-j]
对于i=0,...,M-1,j=0,....N-1
···(74)
当步骤S587中的处理结束时,处理进行至步骤S588。
在步骤S588中,预测残差置换运算单元551将经翻转的预测残差Dflip设置为预测残差D,如以下表达(75)中那样。即,对预测残差D(经翻转的预测残差Dflip)执行一次水平变换处理(图70的步骤S563)。
[数学式65]
D=Df1ip···(75)
当步骤S588中的处理结束时,预测残差置换运算处理结束,并且处理返回到图70。此外,在步骤S586中,在确定不满足条件的情况下,即,在确定FlipFlagH为假(0)或确定FlipFlagV为假(0)的情况下,预测残差置换运算处理结束,并且处理返回到图70。
通过执行如上所述的预测残差置换运算处理,预测残差置换运算单元551可以在二维正交变换(包含预测残差)的空间对称方向(即,与一次水平变换的变换类型标识符TrTypeIdxH(或变换类别TrTypeH)和一次垂直变换的变换类型标识符TrTypeIdxV(或变换类别TrTypeeV)对应的方向)上翻转预测残差。
<逆一次变换单元>
接下来,将描述在本实施方式的情况下的图像解码设备200的配置。图73是示出在这种情况下逆一次变换单元253(图16)的主要配置示例的框图。如图73所示,在这种情况下,除了图34所示的配置之外,逆一次变换单元253还包括预测残差置换运算单元552。
逆一次变换选择单元411将导出的逆一次垂直变换的变换类型标识符TrTypeIdxV和导出的逆一次垂直变换的变换类型标识符TrTypeIdxH提供给预测残差置换运算单元551。此外,逆一次水平变换单元413将导出的逆一次水平变换之后的变换系数Coeff_IPhor提供给预测残差运算单元552。
预测残差置换运算单元552使用从逆一次水平变换部413提供的逆一次水平变换后的变换系数Coeff_IPhor、和一次水平变换的变换类型标识符TrTypeIdxH(或变换类别TrTypeH)、以及一次垂直变换的变换类型标识符TrTypeIdxV(或变换类别TrTypeV)作为输入。预测残差置换运算单元552根据变换类型标识符TrTypeIdxH(或变换类型TrTypeH)和变换类型标识符TrTypeIdxV(或变换类型TrTypeV)来翻转逆一次水平变换之后的变换系数Coeff_IPhor。预测残差置换运算单元552将经翻转的变换系数Coeff_IPhor(逆一次变换之后的变换系数Coeff_IP)作为预测残差D'输出至逆一次变换单元253的外部(将经翻转的变换系数Coeff_IPhor提供给计算单元215)。
在具有以上配置的逆一次变换单元253中,预测残差置换运算单元552作为运算单元执行应用了上述本技术的处理。逆一次垂直变换单元412和逆一次水平变换单元413作为逆正交变换单元分别执行应用了上述本技术的处理。
即,逆一次垂直变换单元412作为逆正交变换单元使用作为基本的用于垂直方向的逆一维正交变换的变换矩阵,对逆二次变换之后的变换系数Coeff_IS执行垂直方向的逆一维正交变换。通过如上所述随后由预测残差置换运算单元552翻转变换系数,可以替代使用另一变换矩阵进行的垂直方向的逆一维正交变换。因此,逆一次垂直变换单元412可以抑制垂直方向的逆一维正交变换所需的存储器容量的增加。
此外,逆一次水平变换单元413作为逆正交变换单元使用作为基本的用于水平方向的逆一维正交变换的变换矩阵,对逆一次垂直变换之后的变换系数Coeff_IPver执行水平方向的逆一维正交变换。通过如上所述随后由预测残差置换运算单元552翻转变换系数,可以替代使用另一变换矩阵进行的水平方向的逆一维正交变换。因此,逆一次水平变换单元413可以抑制水平方向的逆一维正交变换所需的存储器容量的增加。
<逆一次变换处理的流程>
接下来,将描述由上述配置执行的处理的流程的示例。接下来,将参照图74中的流程图描述在这种情况下的在图18的步骤S233中执行的逆一次变换处理的流程的示例。
当开始逆一次变换处理时,在步骤S601中,逆一次变换单元253的逆一次变换选择单元411执行逆一次变换选择处理,以选择逆一次垂直变换的变换类型标识符TrTypeIdxV(或变换类型TrTypeV)和逆一次水平变换的变换类型标识符TrTypeIdxH(或变换类型TrTypeH)。
在步骤S602中,逆一次垂直变换单元412使用在步骤S601中获得的与逆一次垂直变换的变换类型标识符TrTypeIdxV对应的变换矩阵,执行逆一次垂直变换处理,以对逆二次变换之后的变换系数Coeff_IS执行垂直方向的逆一维正交变换。
在步骤S603中,逆一次水平变换单元413使用在步骤S601中获得的与逆一次水平变换的变换类型标识符TrTypeIdxH对应的变换矩阵,执行逆一次水平变换处理,以对在步骤S602中导出的逆一次垂直变换之后的变换系数Coeff_IPver执行水平方向的逆一维正交变换。
在步骤S604中,预测残差置换运算单元552执行预测残差置换运算处理,并且使用在步骤S601中获得的逆一次垂直变换的变换类型标识符TrTypeIdxV和逆一次水平变换的变换类型标识符TrTypeIdxH,翻转在步骤S603中获得的逆一次水平变换之后的变换系数Coeff_IPhor,以获得逆一次变换之后的变换系数Coeff_IP(预测残差D')。
预测残差置换运算处理通过与参照图71的流程图描述的示例类似的流程来执行。因此,可以例如通过适当地用变换系数Coeff_IPhor替换预测残差D,将关于图71的描述应用于步骤S604中的处理,并且因此省略其描述。
当步骤S604中的处理结束时,逆一次变换处理结束,并且处理返回到图18。
在以上逆一次变换处理中,执行应用了上述本技术的处理,作为步骤S602或S604的每个处理。因此,通过执行逆一次变换处理,可以抑制逆一次垂直变换处理或逆一次水平变换处理所需的存储器容量的增加。
<3-3.示例2-2>
<概念>
接下来,将描述图67中所示的表中的除了最上方的项目名称的行之外的从顶部起的第二行示例。该运算聚焦于两个不同的二维正交变换中的特定方向(水平方向和垂直方向中的一个或两个)上的一维正交变换之间的相似性。更具体地,注意到偶数行向量中的轴对称属性和奇数行向量中的点对称属性。
在这种情况下,导出单元使用第一变换矩阵来导出第二变换矩阵,运算单元置换预测残差,并且正交变换单元使用第二变换矩阵对经置换的预测残差进行正交变换。例如,DST7的变换矩阵被用作基本变换矩阵,导出单元使DST7的变换矩阵的奇数行向量的符号反转,运算单元翻转预测残差,并且正交变换单元使用具有奇数行向量的经反转的符号的DST7的变换矩阵对经翻转的预测残差进行正交变换。通过这样做,可以替代使用通过翻转DST7的变换矩阵并且使经翻转的变换矩阵的奇数行向量的符号反转而获得的变换矩阵(即,DCT8(参见<2-3.示例1-2>))对预测残差进行的正交变换。
这类似地适用于逆正交变换。在这种情况下,导出单元使用第一变换矩阵来导出第二变换矩阵,逆正交变换单元使用第二变换矩阵来对系数数据进行逆正交变换,并且运算单元置换逆正交变换结果。例如,DST7的变换矩阵被用作基本变换矩阵,导出单元使DST7的变换矩阵的奇数行向量的符号反转,逆正交变换单元使用具有奇数行向量的经反转的符号的DST7的变换矩阵对系数数据进行逆正交变换,并且运算单元翻转逆正交变换结果。通过这样做,可以替代使用通过翻转DST7的变换矩阵并且使经翻转的变换矩阵的奇数行向量的符号反转而获得的变换矩阵(即,DCT8(参见<2-3.示例1-2>))对系数数据(变换系数Coeff_IQ)进行的逆正交变换。
通过对预测残差(包括逆正交变换结果)应用这样的运算,变得不需要准备DCT8的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,与第一实施方式的情况类似,可以减少单一变换类型的数目。
在这种情况下,如图75中的表所示,在非专利文献1中描述的技术的情况下(参见图6中的表A)所需的五种类型的变换矩阵可以被减少到四种类型。因此,总LUT大小可以为约47KB。即,与非专利文献1中描述的技术的情况相比,LUT的大小可以减小(大约53KB(图6中的表A))。即,可以抑制LUT的大小的增加。
<变换矩阵导出单元>
在这种情况下,一次变换单元152具有与<3-2.示例2-1>的情况类似的配置。此外,一次水平变换单元312具有与<3-2.示例2-1>的情况类似的配置。此外,一次垂直变换单元313具有与<3-2.示例2-1>的情况类似的配置。注意,一次水平变换单元312的变换矩阵导出单元321的内部配置和一次垂直变换单元313的变换矩阵导出单元351的内部配置与<3-2.示例2-1>的情况不同。
图76是示出在这种情况下的包括在一次水平变换单元312中的变换矩阵导出单元321的主要配置示例的框图。如图76所示,在这种情况下的变换矩阵导出单元321包括变换矩阵LUT 331和符号反转单元561。注意,在图76中,省略了表示数据传送的箭头,但是在变换矩阵导出单元321中,可以在任意处理单元(处理块)之间传送任意数据。
符号反转单元561是与符号反转单元501(图46)类似的处理单元,并且使用N行和N列的变换矩阵T作为输入,使变换矩阵T的预定部分的符号反转,并且执行符号反转,并且输出符号反转之后的变换矩阵TInvSign。在该导出示例(示例2-2)中,变换矩阵导出单元321经由符号反转单元561使在变换矩阵LUT 331中选择的N行和N列的基本变换矩阵Tbase的奇数行向量的符号反转,以导出变换矩阵TInvSign。变换矩阵导出单元321将变换矩阵TInvSign作为变换矩阵TH输出至变换矩阵导出单元321的外部(将变换矩阵TInvSign提供给矩阵计算单元322)。
如上所述,变换矩阵导出单元321可以使用符号反转单元561在一次水平变换中实现“对基本变换矩阵Tbase的运算”,这是从图67所示的表的顶部起的第二行示例。
<变换矩阵导出单元>
图77是示出在这种情况下的包括在一次垂直变换单元313中的变换矩阵导出单元351的主要配置示例的框图。如图77所示,与变换矩阵导出单元321的情况类似,这种情况下的变换矩阵导出单元351包括变换矩阵LUT 361和符号反转单元562。注意,在图77中,省略了表示数据传送的箭头,但是在变换矩阵导出单元351中,可以在任意处理单元(处理块)之间传送任意数据。
符号反转单元562是与符号反转单元502(图47)类似的处理单元,并且使用N行和N列的变换矩阵T作为输入,使变换矩阵T的预定部分的符号反转,并且执行符号反转,并且输出符号反转之后的变换矩阵TInvSign。在该导出示例(示例2-2)中,变换矩阵导出单元351经由符号反转单元562使在变换矩阵LUT 361中选择的N行和N列的基本变换矩阵Tbase的奇数行向量的符号反转,以导出变换矩阵TInvSign。符号反转单元562将变换矩阵TInvSign作为变换矩阵TV输出至变换矩阵导出单元351的外部(将变换矩阵TInvSign提供给矩阵计算单元352)。
如上所述,变换矩阵导出单元351可以使用符号反转单元562在一次垂直变换中实现“对基本变换矩阵Tbase的运算”,这是从图67所示的表的顶部起的第二行示例。
<变换矩阵导出处理的流程>
由于在这种情况下,通过与<3-2.示例2-1>的情况类似的流程来执行一次变换处理(通过与图70中的流程图类似的流程执行),基本上省略对其的描述。
注意,在这种情况下,在图70的步骤S562中执行的预测残差置换运算处理的步骤S581(图71)中,预测残差置换运算单元551通过参考图79中所示的对应表(LUT_TrTypeIdxToFlipFlag)而不是参考图72中所示的对应表来获得翻转标志FlipFlagH和翻转标志FlipFlagV。
此外,在这种情况下,通过与<2-2.示例1-1>的情况类似的流程来执行在图70的步骤S563中执行的一次水平变换处理(通过与图28中的流程图类似的流程执行),但是通过与图30中的情况不同的流程执行在图28中的步骤S321中执行的变换矩阵导出处理。
将参照图78中的流程图描述在这种情况下在图28的步骤S321中由一次水平变换单元312中的变换矩阵导出单元321执行的变换矩阵导出处理的流程的示例。
当开始变换矩阵导出处理时,在步骤S621中,变换矩阵导出单元321例如通过参考图79所示的对应表(LUT_TrTypeIdxToFlipFlag)来导出与变换类型标识符TrTypeIdxH和符号反转标志InvSignFlag对应的基本变换类型的基本变换矩阵Tbase
在步骤S622中,变换矩阵导出单元321确定在步骤S621中导出的符号反转标志InvSignFlag是否为真(1)。在确定符号反转标志InvSignFlag为假(0)的情况下,处理进行至步骤S623。
在步骤S623中,变换矩阵导出单元321从变换矩阵LUT 331读取在步骤S621中导出的基本变换矩阵Tbase(DST7),并且将基本变换矩阵Tbase设置为变换矩阵TH。这可以如以下表达式(76)中那样表达。
[数学式66]
TH=Tbase···(76)
当步骤S623中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。此外,在步骤S622中,在确定符号反转标志InvSignFlag为真(1)的情况下,处理进行至步骤S624。
在步骤S624中,变换矩阵导出单元321从变换矩阵LUT 331读取在步骤S621中导出的基本变换矩阵Tbase(DST7),经由符号反转单元561使基本变换矩阵Tbase(DST7)的奇数行向量的符号反转,并且将具有经反转的符号的基本变换矩阵Tbase设置为变换矩阵TH。这可以如以下表达式(77)中那样表达。
[数学式67]
TH=D×Tbase···(77)
此处,×是表示矩阵积的运算符,并且符号反转矩阵D是包括Diag(1,-1,...,(-1)N-1)的对角矩阵。
当步骤S624中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。
<变换矩阵导出处理的流程>
由于在一次垂直变换处理的步骤S361(图32)中执行的变换矩阵导出处理的流程与参照图78中的流程图描述的在一次水平变换中执行的变换矩阵导出处理的情况类似,因此省略其描述。在图78的描述中,简单地用变换类型标识符TrTypeIdxV替换变换类型标识符TrTypeIdxH,并且简单地用变换矩阵TV替换变换矩阵TH
<变换矩阵导出单元>
接下来,将描述在该情况下的图像解码设备200的配置。由于在这种情况下包括在图像解码设备200中的逆一次变换单元253、逆一次垂直变换单元412、逆一次水平变换单元413等的配置类似于<2-2.示例1-1>的情况,因此省略其描述。
图80是示出在这种情况下的变换矩阵导出单元421(包括在逆一次垂直变换单元412中的变换矩阵导出单元421)的主要配置示例的框图。如图80所示,与变换矩阵导出单元321类似,这种情况下的变换矩阵导出单元421包括变换矩阵LUT 431和符号反转单元571。注意,在图80中,省略了表示数据传送的箭头,但是在变换矩阵导出单元421中,可以在任意处理单元(处理块)之间传送任意数据。
变换矩阵LUT 431与图36的情况类似。符号反转单元571是与符号反转单元501类似的处理单元,并且使用N行和N列的变换矩阵T作为输入,使变换矩阵T的预定部分的符号反转,并且输出符号反转之后的变换矩阵TInvSign。在该导出示例(示例2-2)中,变换矩阵导出单元421经由符号反转单元571使在变换矩阵LUT 431中选择的N行和N列的基本变换矩阵Tbase的奇数行向量的符号反转,以导出变换矩阵TInvSign。符号反转单元571将变换矩阵TInvSign作为变换矩阵TV输出至变换矩阵导出单元421的外部(将变换矩阵TInvSign提供给矩阵计算单元422)。
如上所述,变换矩阵导出单元421可以使用符号反转单元571在逆一次垂直变换中实现“对基本变换矩阵Tbase的运算”,这是从图67所示的表的顶部起的第二行示例。
<变换矩阵导出单元>
图81是示出在这种情况下的包括在逆一次水平变换单元413中的变换矩阵导出单元451的主要配置示例的框图。如图81所示,与变换矩阵导出单元421类似,这种情况下的变换矩阵导出单元451包括变换矩阵LUT 461和符号反转单元572。注意,在图81中,省略了表示数据传送的箭头,但是在变换矩阵导出单元451中,可以在任意处理单元(处理块)之间传送任意数据。
变换矩阵LUT 461与图80的情况类似。符号反转单元572是与符号反转单元571类似的处理单元,并且使用N行和N列的变换矩阵T作为输入,使变换矩阵T的预定部分的符号反转,并且执行符号反转,并且输出符号反转之后的变换矩阵TInvSign。在该导出示例(示例2-2)中,变换矩阵导出单元451经由符号反转单元572使在变换矩阵LUT 461中选择的N行和N列的基本变换矩阵Tbase的奇数行向量的符号反转,以导出变换矩阵TInvSign。符号反转单元572将变换矩阵TInvSign作为变换矩阵TH输出至变换矩阵导出单元451的外部(将变换矩阵TInvSign提供给矩阵计算单元452)。
如上所述,变换矩阵导出单元451可以使用符号反转单元512在逆一次垂直变换中实现“对基本变换矩阵Tbase的运算”,这是从图67所示的表的顶部起的第二行示例。
<变换矩阵导出处理的流程>
注意,变换矩阵导出单元421和变换矩阵导出单元451通过与参照图78中的流程图描述的情况类似的流程执行变换矩阵导出处理,因此省略对该处理的描述。
<3-4.示例2-3>
<概念>
接下来,将描述图67中所示的表中的除了最上方的项目名称的行之外的从顶部起的第三行示例。与从顶部起的第一行示例类似,该示例聚焦于两个不同的二维正交变换中的特定方向(水平方向和垂直方向中的一个或两个)上的一维正交变换之间的轴对称性。
在这种情况下,运算单元翻转预测残差。正交变换单元使用基本变换矩阵(DCT8的变换矩阵)对经翻转的预测残差进行正交变换。通过这样做,可以替代使用作为DCT8的经翻转的变换矩阵的FlipDCT8的变换矩阵(参见<2-4.示例1-3>)的预测残差的正交变换。
这类似地适用于逆正交变换。在这种情况下,逆正交变换单元使用基本变换矩阵(DCT8的变换矩阵)对系数数据进行逆正交变换,并且运算单元翻转逆正交变换结果。通过这样做,可以替代使用作为DCT8的经翻转的变换矩阵的FlipDCT8的变换矩阵对系数数据(变换系数Coeff_IQ)进行的逆正交变换。
通过对预测残差(包括逆正交变换结果)应用这样的运算,变得不需要准备FlipDCT8的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,与第一实施方式的情况类似,可以减少单一变换类型的数目。
注意,在这种情况下,在预测残差置换运算处理(图71)中,简单地参考图82所示的对应表(LUT_TrTypeIdxToFlipFlag)而不是图72所示的对应表。
此外,即使在逆正交变换的情况下,处理也是类似的,并且仅需要利用与正交变换的情况类似的配置来执行与正交变换的情况类似的处理。
<3-5.示例2-4>
<概念>
接下来,将描述图67中所示的表中的除了最上方的项目名称的行之外的从顶部起的第四行示例。与从顶部起的第二行示例类似,该示例聚焦于两个不同的二维正交变换中的特定方向(水平方向和垂直方向中的一个或两个)上的一维正交变换之间的相似性(偶数行向量的轴对称属性和奇数行向量的点对称属性)。该运算与从顶部起的第二行的运算相同。
在这种情况下,导出单元从第一变换矩阵导出第二变换矩阵,并且运算单元翻转预测残差D。正交变换单元使用通过使基本变换矩阵(DCT8的变换矩阵)的符号反转而获得的DST7的变换矩阵,对翻转的预测残差进行正交变换。通过这样做,可以替代使用通过翻转DCT8的变换矩阵并且使符号反转而获得的DST7的变换矩阵(参见<2-5.示例1-4>)的预测残差的正交变换。
这类似地适用于逆正交变换。在这种情况下,导出单元使DCT8的变换矩阵的奇数行向量的符号反转,逆正交变换单元使用具有奇数行向量(即,DST7)的经反转的符号的DCT8的变换矩阵对系数数据进行逆正交变换,并且运算单元翻转逆正交变换结果。通过这样做,可以替代使用通过翻转DCT8的变换矩阵并且使符号反转而获得的DST7的变换矩阵对系数数据(变换系数Coeff_IQ)进行的逆正交变换。
通过对预测残差(包括逆正交变换结果)应用这样的运算,变得不需要准备DST7的变换矩阵作为要用于正交变换/逆正交变换的变换矩阵的候选。即,与第一实施方式的情况类似,可以减少单一变换类型的数目。
注意,在这种情况下,在预测残差置换运算处理(图71)中,简单地参考图83所示的对应表(LUT_TrTypeIdxToFlipFlag)而不是图79所示的对应表。
此外,即使在逆正交变换的情况下,处理也是类似的,并且仅需要利用与正交变换的情况类似的配置来执行与正交变换的情况类似的处理。
<4.第三实施方式>
<4-1.共同概念>
<使用子矩阵对变换矩阵的导出>
在第一实施方式中,已经描述了使用变换矩阵来导出另一变换矩阵。然而,实施方式不限于此,并且准备作为变换矩阵的一部分的子矩阵,并且可以使用该子矩阵来导出变换矩阵。
即,可以使用构成变换矩阵的一部分的子矩阵来导出变换矩阵,可以使用所导出的变换矩阵对图像的预测残差进行正交变换,并且可以对通过对预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
例如,图像处理装置可以包括导出单元,其被配置成使用构成变换矩阵的一部分的子矩阵来导出变换矩阵;正交变换单元,其被配置成使用由导出单元导出的变换矩阵对图像的预测残差进行正交变换;以及编码单元,其被配置成对通过由正交变换单元对预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
利用该配置,仅需要保存子矩阵(不必保存所有变换矩阵)。因此,可以抑制正交变换所需的存储器容量的增加。
此外,可以对比特流进行解码,以获得作为图像的正交变换预测残差的系数数据,可以使用构成变换矩阵的一部分的子矩阵来导出变换矩阵,并且可以使用所导出的变换矩阵对获得的系数数据进行逆正交变换。
例如,图像处理装置可以包括:解码单元,其被配置成对比特流进行解码,以获得通过对图像的预测残差进行正交变换而获得的系数数据;导出单元,其被配置成使用构成变换矩阵的一部分的子矩阵来导出变换矩阵;以及逆正交变换单元,其被配置成使用由导出单元导出的变换矩阵来对由解码单元获得的系数数据进行逆正交变换。
利用该配置,仅需要保存子矩阵(不必保存所有变换矩阵)。因此,可以抑制逆正交变换所需的存储器容量的增加。
<子矩阵与整个变换矩阵之间的关系的示例>
将给出更具体的描述。例如,如图84所示,在DCT2的变换矩阵601的情况下,左部分中的偶数行向量的波形和右部分中的偶数行向量的波形彼此轴对称。此外,变换矩阵601的左部分中的奇数行向量的波形彼此点对称。
因此,通过围绕穿过变换矩阵601的中心的列方向在水平方向(行方向)上翻转构成DCT2的变换矩阵601的左部分的子矩阵并且使奇数行向量的符号反转,可以导出构成DCT2的变换矩阵601的右部分的子矩阵。即,可以从构成左部分的子矩阵导出DCT2的变换矩阵601。
此外,例如,在DST7的变换矩阵602的情况下,左上三角部分的偶数行向量的波形和右下三角部分的偶数列向量的波形彼此轴对称。此外,变换矩阵602的左上三角部分的奇数行向量的波形和右下三角部分的奇数列向量的波形彼此点对称。
因此,可以通过围绕连接DST7的变换矩阵602的右上端和左下端的对角线,从左上到右下在倾斜方向上翻转构成该变换矩阵602的右下三角部分的子矩阵并且使奇数列向量的符号反转,导出构成DST7的变换矩阵602的左上三角部分的子矩阵。即,可以从构成左上三角部分的子矩阵导出DST7的变换矩阵602。
即,变换矩阵LUT仅需要存储整个变换矩阵的子矩阵,而不是存储整个变换矩阵,该子矩阵能够导出整个变换矩阵。例如,导出单元可以使用存储在查找表(变换矩阵LUT)中的子矩阵来导出(整个)变换矩阵。利用该配置,与存储DCT2和DST7的整个变换矩阵的情况相比,可以抑制UT大小的增加。即,可以抑制正交变换/逆正交变换所需的存储器容量的增加。
此外,如上所述,可以执行翻转作为用于从子矩阵导出整个变换矩阵的运算。此外,翻转方向是任意的。例如,导出单元可以通过以下操作来导出变换矩阵:围绕穿过变换矩阵的中心的预定方向的轴来翻转子矩阵;以及导出变换矩阵的剩余子矩阵。利用该配置,可以通过简单的运算从子矩阵导出整个变换矩阵。
注意,翻转方向是任意的。例如,导出单元可以在与行平行的方向(该方向也被称为行方向或水平方向)上翻转子矩阵。此外,例如,导出单元可以在与列平行的方向(该方向也被称为列方向或垂直方向)上翻转子矩阵。此外,例如,导出单元可以围绕变换矩阵的中心在旋转方向上翻转子矩阵。此外,例如,导出单元可以围绕变换矩阵的对角线的倾斜方向上翻转子矩阵。
利用该配置,例如,可以通过简单的运算从子矩阵导出相对于子矩阵在各个方向上具有对称属性的另一子矩阵。
此外,如上所述,可以执行符号反转,作为用于从子矩阵导出整个变换矩阵的运算。例如,所述导出单元还可以使经翻转的子矩阵的元素的符号反转,以导出变换矩阵。利用该配置,可以通过简单的运算从子矩阵导出各种整个变换矩阵。
<导出示例>
图85示出了从子矩阵导出整个变换矩阵的示例的列表。注意,用于导出的子矩阵也被称为基本子矩阵。
在图85所示的表中,从除了最上方的项目名称的行之外的顶部起的第一行示例的导出聚焦于关于垂直轴的轴对称属性。
在这种情况下,子矩阵是变换矩阵的左半子矩阵或右半子矩阵,并且导出单元通过以下操作来导出整个变换矩阵:在变换矩阵的行方向上翻转子矩阵,并且进一步使经翻转的子矩阵的奇数行向量的符号反转,以导出变换矩阵的右半子矩阵或左半子矩阵(即,变换矩阵的剩余子矩阵)。
例如,如图86所示,导出单元在与穿过变换矩阵601的列平行的方向(列方向)上围绕轴601X翻转具有变换类型DCT2的变换矩阵601的左半子矩阵601A(即,在水平方向上进行翻转)。此外,导出单元使奇数行向量的符号反转。通过这样做,变换矩阵601的右半子矩阵601B被导出。即,导出整个变换矩阵601。当将这样的导出表达为对每个元素的运算表达式时(其中要导出的变换矩阵是N行和N列的变换矩阵T并且要用于导出的子矩阵是C),可以将导出表达为以下表达式(78)。
[数学式68]
sign=(y%2==0)?1:-1
T[y,N-1-x]=sign*C[y,x]
对于x=0,...,N/2-1,y=0,...,N-1
···(78)
由于可以通过应用这样的导出从子矩阵导出整个变换矩阵,因此不必准备DST2的整个变换矩阵601作为要用于正交变换/逆正交变换的变换矩阵的候选(仅需要准备子矩阵601A)。即,该候选的信息量可以减少到一半。即,可以抑制LUT大小的增加。此外,通过使用导出的变换矩阵执行正交变换/逆正交变换,可以获得与使用DST2的变换矩阵601进行正交变换/逆正交变换的情况相同的编码效率。
注意,变换类型不限于上述示例,只要应用了这样的导出的变换矩阵具有上述对称属性的元素即可。例如,变换类型可以是DST2。
此外,在以上描述中,已经描述了从左半子矩阵导出右半子矩阵(整个变换矩阵)。然而,实施方式不限于该示例,例如,也可以从右半子矩阵导出左半子矩阵(整个变换矩阵)。
此外,第一行示例下方的一行示例(从顶部起的第二行示例)的导出聚焦于关于水平轴的轴对称属性。
在这种情况下,子矩阵是变换矩阵的上半子矩阵或下半子矩阵,并且导出单元通过以下操作来导出整个变换矩阵:在变换矩阵的列方向上翻转子矩阵;进一步使经翻转的子矩阵的奇数列向量的符号反转;以及导出变换矩阵的下半子矩阵或上半子矩阵(即,变换矩阵的剩余子矩阵)。
例如,如图87所示,导出单元在与穿过变换矩阵611的中心的行平行的方向(行方向)上围绕轴611X翻转具有DST1变换类型的变换矩阵611的上半子矩阵611A(即,在垂直方向上进行翻转)。此外,导出单元使奇数列向量的符号反转。通过这样做,变换矩阵611的下半子矩阵611B被导出。即,导出整个变换矩阵611。当将这样的导出表达为对每个元素的运算表达式时(其中要导出的变换矩阵是N行和N列的变换矩阵T并且要用于导出的子矩阵是C),可以将导出表达为以下表达式(79)。
[数学式69]
sign=(x%2==0?1:-1)
T[N-1-y,x]=sign*C[y,x]
对于x=0,...,N-1 y=0,...,N/2-1
···(79)
由于可以通过应用这样的导出从子矩阵导出整个变换矩阵,因此不必准备DST1的整个变换矩阵611作为要用于正交变换/逆正交变换的变换矩阵的候选(仅需要准备子矩阵611A)。即,该候选的信息量可以减少到一半。即,可以抑制LUT大小的增加。此外,通过使用导出的变换矩阵执行正交变换/逆正交变换,可以获得与使用DST1的变换矩阵611进行正交变换/逆正交变换的情况相同的编码效率。
注意,变换类型不限于上述示例,只要应用了这样的导出的变换矩阵具有上述对称属性的元素即可。例如,变换类型可以是DCT3、DCT1或DST3。
此外,在以上描述中,已经从上半子矩阵导出了下半子矩阵(整个变换矩阵)。然而,实施方式不限于该示例,例如,可以从下半子矩阵中导出上半子矩阵(整个变换矩阵)。
此外,第二行示例下方的一行示例(从顶部起的第三行实例)的导出聚焦于点对称属性。
在这种情况下,子矩阵是变换矩阵的上半子矩阵或下半子矩阵,并且导出单元通过以下操作来导出整个变换矩阵:围绕变换矩阵的中心在旋转方向上翻转子矩阵并且进一步使经翻转的子矩阵的具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转,以导出变换矩阵的下半子矩阵或上半子矩阵(即,变换矩阵的剩余子矩阵)。
例如,如图88所示,导出单元围绕变换矩阵612的中心612X在旋转方向上翻转具有变换类型DST4的变换矩阵612的上半子矩阵612A。此外,导出单元使具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转。通过这样做,变换矩阵612的下半子矩阵612B被导出。即,导出整个变换矩阵612。当将这样的导出表达为对每个元素的运算表达式时(其中要导出的变换矩阵是N行和N列的变换矩阵T并且要用于导出的子矩阵是C),可以将导出表达为以下表达式(80)。
[数学式70]
sign=(x%2==1||y%2==1)?1:-1
T[N-1-y,N-1-x]=sign*C[y,x]
对于x=0,....N-1,y=0,...,N/2-1
···(80)
由于可以通过应用这样的导出从子矩阵导出整个变换矩阵,因此不必准备DST4的整个变换矩阵612作为要用于正交变换/逆正交变换的变换矩阵的候选(仅需要准备子矩阵612A)。即,该候选的信息量可以减少到一半。即,可以抑制LUT大小的增加。此外,通过使用导出的变换矩阵执行正交变换/逆正交变换,可以获得与使用DST4的变换矩阵612进行正交变换/逆正交变换的情况相同的编码效率。
注意,变换类型不限于上述示例,只要应用了这样的导出的变换矩阵具有包括上述对称属性的元素即可。例如,变换类型可以是DCT4。
此外,在以上描述中,已经从上半子矩阵导出了下半子矩阵(整个变换矩阵)。然而,实施方式不限于该示例,例如,可以从下半子矩阵中导出上半子矩阵(整个变换矩阵)。
此外,第三行示例下方的一行示例(从顶部起的第四行示例)的导出聚焦于关于对角线轴的对称属性。
在这种情况下,子矩阵是变换矩阵的右上三角部分的子矩阵或左下三角部分的子矩阵,并且导出单元通过以下操作来导出变换矩阵:对子矩阵进行转置以导出变换矩阵的左下三角部分的子矩阵或右上三角部分的子矩阵。
例如,如图89所示,导出单元围绕连接变换矩阵613的左上端和右下端的对角线翻转具有变换类型DCT5的变换矩阵613的右上三角部分的子矩阵613A。通过这样做,导出变换矩阵613的左下三角部分的子矩阵613B。即,导出整个变换矩阵613。当将这样的导出表达为对每个元素的运算表达式时(其中要导出的变换矩阵是N行和N列的变换矩阵T并且要用于导出的子矩阵是C),可以将导出表达为以下表达式(81)。
[数学式71]
T[x,y]=C[y,x]
对于y=1,...,N-1,x=y,...,N-1
···(81)
由于可以通过应用这样的导出从子矩阵导出整个变换矩阵,因此不必准备DCT5的整个变换矩阵613作为要用于正交变换/逆正交变换的变换矩阵的候选(仅需要准备子矩阵613A)。即,该候选的信息量可以减少到一半。即,可以抑制LUT大小的增加。此外,通过使用导出的变换矩阵执行正交变换/逆正交变换,可以获得与使用DCT5的变换矩阵613进行正交变换/逆正交变换的情况相同的编码效率。
注意,如图89所示,转置等同于围绕连接变换矩阵的左上端和右下端的对角线翻转。即,转置包括在翻转(翻转运算之一)中。
此外,变换类型不限于上述示例,只要应用了这样的导出的变换矩阵具有包括上述对称属性的元素即可。例如,变换类型可以是DST5、DCT4或DCT8。
此外,在以上描述中,已经描述了从右上三角部分的子矩阵导出左下三角部分的子矩阵(整个变换矩阵)。然而,实施方式不限于此,例如,也可以从左下三角部分的子矩阵导出右上三角部分的子矩阵(整个变换矩阵)。
此外,第四行示例下方的一行示例(从顶部起的第五行示例)的导出聚焦于关于交叉位置处的对角轴的对称属性。
在这种情况下,子矩阵是变换矩阵的左上三角部分的子矩阵或右下三角部分的子矩阵,并且导出单元被配置成通过以下操作来导出变换矩阵:在以连接变换矩阵的右上端和左下端的对角线为轴的倾斜方向上翻转子矩阵;进一步使经翻转的子矩阵的具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转;以及导出变换矩阵的右下三角部分的子矩阵或左上三角部分的子矩阵。
例如,如图90所示,导出单元围绕连接变换矩阵602的右上端和左下端的对角线翻转具有变换类型DST7的变换矩阵602的左上三角部分的子矩阵602A。此外,导出单元使具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转。通过这样做,导出变换矩阵602的右下三角部分的子矩阵602B。即,导出整个变换矩阵602。当将这样的导出表达为对每个元素的运算表达式时(其中要导出的变换矩阵是N行和N列的变换矩阵T并且要用于导出的子矩阵是C),可以将导出表达为以下表达式(82)。
[数学式72]
T[x,y]=sign*C[y,x]
对于y=1,...,N-1,x=0,...,N-1-y
···(82)
由于可以通过应用这样的导出从子矩阵导出整个变换矩阵,因此不必准备DST7的整个变换矩阵602作为要用于正交变换/逆正交变换的变换矩阵的候选(仅需要准备子矩阵602A)。即,该候选的信息量可以减少到一半。即,可以抑制LUT大小的增加。此外,通过使用导出的变换矩阵执行正交变换/逆正交变换,可以获得与使用DST7的变换矩阵602进行正交变换/逆正交变换的情况相同的编码效率。
注意,在这种情况下,因为行和列是互换的,因此以连接变换矩阵的右上端和左下端的对角线作为轴的倾斜方向上的翻转也包括在“转置”(转置运算之一)中。
注意,变换类型不限于上述示例,只要应用了这样的导出的变换矩阵具有包括上述对称属性的元素即可。例如,变换类型可以是DST6。
此外,在以上描述中,已经描述了从左上三角部分的子矩阵导出右下三角部分的子矩阵(整个变换矩阵)。然而,实施方式不限于此,例如,也可以从右下三角部分的子矩阵导出左上三角部分的子矩阵(整个变换矩阵)。
此外,第五行示例下方的行示例(第六行示例至第八行示例)的导出聚焦于关于垂直轴的轴对称属性、关于水平轴的轴对称属性以及点对称属性。
在这种情况下,子矩阵是变换矩阵的左上四分之一子矩阵,并且导出单元在变换矩阵的行方向上翻转子矩阵,并且进一步使经翻转的子矩阵的奇数行向量的符号反转,以导出变换矩阵的右上四分之一子矩阵,导出单元在变换矩阵的列方向上翻转子矩阵,并且进一步使经翻转的子矩阵的奇数列向量的符号反转,以导出变换矩阵的左下四分之一子矩阵,并且围绕变换矩阵的中心在旋转方向上翻转子矩阵,并且进一步使经翻转的子矩阵的具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转,以导出变换矩阵的右下四分之一子矩阵。
例如,如图91所示,导出单元在与穿过变换矩阵614的中心的列平行的方向(列方向)上围绕轴614X-1翻转具有变换类型DST1的变换矩阵614的左上四分之一子矩阵614A(即,在水平方向上进行翻转)。此外,导出单元使奇数行向量的符号反转。通过这样做,变换矩阵614的右上四分之一子矩阵614B被导出。
此外,导出单元在与穿过变换矩阵614的中心的行平行的方向(行方向)上围绕轴614X-2翻转具有变换类型DST1的变换矩阵614的左上四分之一子矩阵614A(即,在垂直方向上进行翻转)。此外,导出单元使奇数列向量的符号反转。通过这样做,变换矩阵614的左下四分之一子矩阵614C被导出。
此外,导出单元围绕变换矩阵614的中心614X-3在旋转方向上翻转具有变换类型DST1的变换矩阵614的左上四分之一子矩阵614A。此外,导出单元使具有偶数行号和偶数列号的元素的符号以及具有奇数行号和奇数列号的元素的符号反转。通过这样做,变换矩阵614的右下四分之一子矩阵614D被导出。
即,导出整个变换矩阵614。当将这样的导出表达为对每个元素的运算表达式时(其中要导出的变换矩阵是N行和N列的变换矩阵T并且要用于导出的子矩阵是C),可以将导出表达为以下表达式(83)至(85)。
[数学式73]
[右上部分矩阵]
sign=(y%2==0)?1:-1
T[y,N-1-x]=sign*C[y,x]
对于x=0,...,N/2-1,y=0,...,N/2-1
···(83)
[左下部分矩阵]
sign=(x%2==0)?1:-1
T[N-1-y,x]=sign*C[y,x]
对于x=0,...,N/2-1,y=0,...,N/2-1
···(84)
[右下部分矩阵]
sign=(x%2==1||y%2==1)?1:-1
T[N-1-y,N-1-x]=sign*C[y,x]
对于x=0,...,N/2-1,y=0,...,N/2-1
···(85)
由于可以通过应用这样的导出从子矩阵导出整个变换矩阵,因此不必准备DST1的整个变换矩阵614作为要用于正交变换/逆正交变换的变换矩阵的候选(仅需要准备子矩阵614A)。即,该候选的信息量可以减少到四分之一。即,可以抑制LUT大小的增加。此外,通过使用导出的变换矩阵执行正交变换/逆正交变换,可以获得与使用DST1的变换矩阵614进行正交变换/逆正交变换的情况相同的编码效率。
注意,变换类型不限于上述示例,只要应用了这样的导出的变换矩阵具有包括上述对称属性的元素即可。例如,变换类型可以是DCT1。
此外,在上述描述中,已经描述了从左上四分之一子矩阵导出剩余子矩阵。然而,实施方式不限于此,例如,也可以从右上四分之一子矩阵、从左下四分之一子矩阵或从右下四分之一子矩阵导出剩余子矩阵。
<变换矩阵导出单元>
从这样的子矩阵导出变换矩阵的图像编码设备100的配置与第一实施方式的情况类似。然后,在图像编码设备100中,正交变换单元113作为导出单元和正交变换单元执行应用了上述本技术的处理。此外,编码单元115作为编码单元执行应用了上述本技术的处理。此外,逆正交变换单元118作为逆正交变换单元和导出单元执行应用了上述本技术的处理。因此,图像编码设备100可以抑制正交变换/逆正交变换所需的存储器容量的增加。
此外,正交变换单元113的配置与第一实施方式的情况类似。然后,在正交变换单元113中,一次变换单元152作为导出单元和正交变换单元执行应用了上述本技术的处理。即,导出单元使用构成变换矩阵的一部分的子矩阵来导出整个变换矩阵,并且正交变换单元使用由导出单元导出的变换矩阵对预测残差进行一次变换。因此,可以抑制一次变换所需的存储器容量的增加。
注意,如上所述,一次变换单元152执行一次水平变换和一次垂直变换作为一次变换。即,导出单元导出用于水平方向的一维正交变换的变换矩阵和用于垂直方向的一维正交变换的变换矩阵,并且正交变换单元使用由导出单元导出的用于水平方向的一维正交变换的变换矩阵来执行水平方向的一维正交变换,并且进一步使用由导出单元导出的用于垂直方向的一维正交变换的变换矩阵来执行垂直方向的一维正交变换,作为一次变换。因此,可以抑制其中执行水平方向的一维正交变换和垂直方向的一维正交变换的一次变换所需的存储器容量的增加。
注意,在这种情况下,一次变换单元152具有与<2-2.示例1-1>的情况类似的配置。此外,一次水平变换单元312具有与<2-2.示例1-1>的情况类似的配置。此外,一次垂直变换单元313具有与<2-2.示例1-1>的情况类似的配置。注意,一次水平变换单元312的变换矩阵导出单元321的内部配置和一次垂直变换单元313的变换矩阵导出单元351的内部配置与<2-2.示例1-1>的情况不同。
图92是示出在这种情况下的包括在一次水平变换单元312中的变换矩阵导出单元321的主要配置示例的框图。如图92所示,在这种情况下的变换矩阵导出单元321包括变换矩阵LUT 331、水平翻转单元632、垂直翻转单元633、转置单元634和符号反转单元635。注意,在图92中,省略了表示数据传送的箭头,但是在变换矩阵导出单元321中,可以在任意处理单元(处理块)之间传送任意数据。
水平翻转单元632围绕通过变换矩阵的中心的列方向上的直线在水平方向(行方向)上翻转输入子矩阵,并且输出经翻转的子矩阵。垂直翻转单元633围绕穿过变换矩阵的中心的行方向上的直线在垂直方向(列方向)上翻转输入子矩阵,并且输出经翻转的子矩阵。转置单元634转置(倾斜翻转)输入子矩阵并且输出经转置的子矩阵。符号反转单元635使输入子矩阵的一部分的符号反转,并且输出符号反转之后的子矩阵。
例如,在图85所示的表中的除了最上方的项目名称的行之外的从顶部起的第一行导出示例的情况下,变换矩阵导出单元321从变换矩阵LUT 331读取变换矩阵的左半(或右半)子矩阵,并且经由水平翻转单元632在行方向(水平方向)上翻转子矩阵,并且进一步经由符号反转单元635使经翻转的子矩阵的奇数行向量的符号反转,以导出变换矩阵的剩余子矩阵。通过该处理,可以获得变换矩阵的所有子矩阵。即,导出整个变换矩阵。变换矩阵导出单元321将导出的(整个)变换矩阵作为变换矩阵TH输出至变换矩阵导出单元321的外部(将变换矩阵提供给矩阵计算单元322)。
此外,例如,在从图85所示的表的顶部起的第二行导出示例的情况下,变换矩阵导出单元321从变换矩阵LUT 331读取变换矩阵的上半(或下半)子矩阵,并且经由垂直翻转单元633在列方向(垂直方向)上翻转子矩阵,并且进一步经由符号反转单元635使经翻转的子矩阵的奇数列向量的符号反转,以导出变换矩阵的剩余子矩阵。通过该处理,可以获得变换矩阵的所有子矩阵。即,导出整个变换矩阵。变换矩阵导出单元321将导出的(整个)变换矩阵作为变换矩阵TH输出至变换矩阵导出单元321的外部(将变换矩阵提供给矩阵计算单元322)。
此外,例如,在从图85所示的表的顶部起的第三导出示例的情况下,变换矩阵导出单元321从变换矩阵LUT 331读取变换矩阵的上半(或下半)子矩阵,经由水平翻转单元632在行方向(水平方向)上翻转子矩阵,进一步经由垂直翻转单元633在列方向(垂直方向)上翻转经水平翻转的子矩阵,并且经由符号反转单元635使导出的子矩阵的具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转,以导出变换矩阵的剩余子矩阵。通过该处理,可以获得变换矩阵的所有子矩阵。即,导出整个变换矩阵。变换矩阵导出单元321将导出的(整个)变换矩阵作为变换矩阵TH输出至变换矩阵导出单元321的外部(将变换矩阵提供给矩阵计算单元322)。
此外,例如,在从图85所示的表的顶部起的第四导出示例的情况下,变换矩阵导出单元321从变换矩阵LUT 331读取变换矩阵的右上三角部分(或左下三角部分)的子矩阵,并且经由转置单元634围绕连接变换矩阵的左上端和右下端的直线转置该子矩阵,以导出变换矩阵的剩余子矩阵。通过该处理,可以获得变换矩阵的所有子矩阵。即,导出整个变换矩阵。变换矩阵导出单元321将导出的(整个)变换矩阵作为变换矩阵TH输出至变换矩阵导出单元321的外部(将变换矩阵提供给矩阵计算单元322)。
此外,例如,在从图85所示的表的顶部起的第五行导出示例的情况下,变换矩阵导出单元321从变换矩阵LUT 331读取变换矩阵的左上三角部分(或右下三角部分)的子矩阵,经由转置单元634围绕连接变换矩阵的右上端和左下端的直线转置子矩阵,并且经由符号反转单元635使导出的子矩阵的具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转,以导出变换矩阵的剩余子矩阵。通过该处理,可以获得变换矩阵的所有子矩阵。即,导出整个变换矩阵。变换矩阵导出单元321将导出的(整个)变换矩阵作为变换矩阵TH输出至变换矩阵导出单元321的外部(将变换矩阵提供给矩阵计算单元322)。
此外,例如,在从图85所示的表的顶部起的第六导出示例的情况下,变换矩阵导出单元321从变换矩阵LUT 331读取变换矩阵的左上四分之一子矩阵。变换矩阵导出单元321经由水平翻转单元632在行方向(水平方向)上翻转子矩阵,并且进一步经由符号反转单元635使经翻转的子矩阵的奇数行向量的符号反转,以导出变换矩阵的右上四分之一子矩阵。
此外,变换矩阵导出单元321经由垂直翻转单元633在列方向(垂直方向)上翻转左上四分之一子矩阵,并且进一步经由符号反转单元635使经翻转的子矩阵的奇数列向量的符号反转,以导出变换矩阵的左下四分之一子矩阵。
此外,变换矩阵导出单元321经由水平翻转单元632在行方向(水平方向)上翻转左上四分之一子矩阵,进一步经由垂直翻转单元633在列方向(垂直方向)上翻转经水平翻转的子矩阵,并且经由符号反转单元635使导出的子矩阵的具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转,以导出变换矩阵的右下四分之一子矩阵。
即,通过该处理,可以获得变换矩阵的所有子矩阵。即,导出整个变换矩阵。变换矩阵导出单元321将导出的(整个)变换矩阵作为变换矩阵TH输出至变换矩阵导出单元321的外部(将变换矩阵提供给矩阵计算单元322)。
利用上述配置,变换矩阵导出单元321可以实现图85所示的表的每个导出示例。
<变换矩阵导出单元>
图93是示出在这种情况下的包括在一次垂直变换单元313中的变换矩阵导出单元351的主要配置示例的框图。如图93所示,与变换矩阵导出单元321的情况类似,这种情况下的变换矩阵导出单元351包括变换矩阵LUT 361、水平翻转单元642、垂直翻转单元643、转置单元644和符号反转单元645。注意,在图93中,省略了表示数据传送的箭头,但是在变换矩阵导出单元351中,可以在任意处理单元(处理块)之间传送任意数据。
水平翻转单元642是与水平翻转单元632类似的处理单元。垂直翻转单元643是与垂直翻转单元633类似的处理单元。转置单元644是与转置单元634类似的处理单元。符号反转单元645是与符号反转单元635类似的处理单元。
变换矩阵导出单元351从变换矩阵LUT 361读取变换矩阵的预定子矩阵,并且通过图85的表中所示的导出示例的任何方法适当地经由水平翻转单元632至符号反转单元635从该子矩阵导出剩余子矩阵。即,导出整个变换矩阵。变换矩阵导出单元351将导出的(整个)变换矩阵作为变换矩阵TV输出至变换矩阵导出单元351的外部(将该变换矩阵提供给矩阵计算单元352)。
利用上述配置,变换矩阵导出单元351可以实现图85所示的表的每个导出示例。
<变换矩阵导出处理的流程>
由于在这种情况下,通过与<2-2.示例1-1>的情况类似的流程来执行一次变换处理(通过与图27中的流程图类似的流程执行),基本上省略其描述。
此外,在这种情况下,通过与<2-2.示例1-1>的情况类似的流程来执行在图27的步骤S302中执行的一次水平变换处理(通过与图28中的流程图类似的流程执行),但是通过与图30中的情况不同的流程执行在图28中的步骤S321中执行的变换矩阵导出处理。
将参照图94中的流程图描述在这种情况下在图28的步骤S321中由一次水平变换单元312中的变换矩阵导出单元321执行的变换矩阵导出处理的流程的示例。
当开始变换矩阵导出处理时,在步骤S701中,变换矩阵导出单元321例如通过参考图95所示的对应表,从变换矩阵LUT 331读取与变换类型标识符TrTypeIdxH对应的子矩阵C。
在步骤S702中,变换矩阵导出单元321基于预定导出方法(图85的表中所示的任何导出方法),适当地使用水平翻转单元632至符号反转单元635,从子矩阵C导出与变换类型标识符TrTypeIdxH对应的变换类型的变换矩阵TH
当步骤S702中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。
<变换矩阵导出处理的流程>
注意,在这种情况下,通过与<2-2.示例1-1>的情况类似的流程来执行图27的步骤S303中执行的一次垂直变换处理(通过与图32中的流程图类似的流程来执行)。注意,通过与图94中的流程图的情况类似的流程来执行在图32中的步骤S361中执行的变换矩阵导出处理。因此,省略描述。在图94的描述中,简单地用变换类型标识符TrTypeIdxV替换变换类型标识符TrTypeIdxH,并且简单地用变换矩阵TV替换变换矩阵TH
<变换矩阵导出单元>
接下来,将描述在该情况下的图像解码设备200的配置。由于在这种情况下包括在图像解码设备200中的逆一次变换单元253、逆一次垂直变换单元412、逆一次水平变换单元413等的配置类似于<2-2.示例1-1>的情况,因此省略其描述。
即,逆正交变换单元可以对由解码单元获得的系数数据执行逆二次变换,并且进一步使用由导出单元导出的变换矩阵,对逆二次变换结果执行逆一次变换。
此外,导出单元可以导出用于水平方向的逆一维正交变换的变换矩阵和用于垂直方向的逆一维正交变换的变换矩阵,并且逆正交变换单元可以使用由导出单元导出的用于水平方向的逆一维正交变换的变换矩阵来执行水平方向的逆一维正交变换,并且进一步使用由导出单元导出的用于垂直方向的逆一维正交变换的变换矩阵来执行垂直方向的逆一维正交变换,作为逆一次变换。
图96是示出在这种情况下的包括在逆一次垂直变换单元412中的变换矩阵导出单元421的主要配置示例的框图。如图96所示,与变换矩阵导出单元321类似,这种情况下的变换矩阵导出单元421包括变换矩阵LUT 431、水平翻转单元652、垂直翻转单元653、转置单元654和符号反转单元655。注意,在图96中,省略了表示数据传送的箭头,但是在变换矩阵导出单元421中,可以在任意处理单元(处理块)之间传送任意数据。
水平翻转单元652是与水平翻转单元632类似的处理单元。垂直翻转单元653是与垂直翻转单元633类似的处理单元。转置单元654是与转置单元634类似的处理单元。符号反转单元655是与符号反转单元635类似的处理单元。
在逆正交变换(逆一次垂直变换)中,变换矩阵导出单元421从变换矩阵LUT 431中读取变换矩阵的预定子矩阵,并且通过图85的表中所示的导出示例的任何方法适当地经由水平翻转单元652至符号反转单元655从该子矩阵中导出剩余子矩阵。即,导出整个变换矩阵。变换矩阵导出单元421将导出的(整个)变换矩阵作为变换矩阵TV输出至变换矩阵导出单元421的外部(将该变换矩阵提供给矩阵计算单元422)。
利用上述配置,变换矩阵导出单元421可以实现图85所示的表的每个导出示例。
<变换矩阵导出单元>
图97是示出在这种情况下的包括在逆一次水平变换单元413中的变换矩阵导出单元451的主要配置示例的框图。如图97所示,与变换矩阵导出单元421类似,这种情况下的变换矩阵导出单元451包括变换矩阵LUT 461、水平翻转单元662、垂直翻转单元663、转置单元664和符号反转单元665。注意,在图97中,省略了表示数据传送的箭头,但是在变换矩阵导出单元451中,可以在任意处理单元(处理块)之间传送任意数据。
水平翻转单元662是与水平翻转单元632类似的处理单元。垂直翻转单元663是与垂直翻转单元633类似的处理单元。转置单元664是与转置单元634类似的处理单元。符号反转单元665是与符号反转单元635类似的处理单元。
在逆正交变换(逆一次水平变换)中,变换矩阵导出单元451从变换矩阵LUT 431中读取变换矩阵的预定子矩阵,并且通过图85的表中所示的导出示例的任何方法适当地经由水平翻转单元662至符号反转单元665从该子矩阵中导出剩余子矩阵。即,导出整个变换矩阵。变换矩阵导出单元451将导出的(整个)变换矩阵作为变换矩阵TV输出至变换矩阵导出单元451的外部(将该变换矩阵提供给矩阵计算单元452)。
利用上述配置,变换矩阵导出单元451可以实现图85所示的表的每个导出示例。
<变换矩阵导出处理的流程>
在这种情况下,通过与<2-2示例1-1>的情况类似的流程(通过与图39中的流程图类似的流程执行)来执行逆一次变换处理。此外,通过与<2-2.示例1-1>的情况类似的流程(通过与图40中的流程图类似的流程执行)来执行在图39的步骤S401中执行的逆一次变换选择处理。此外,通过与<2-2.示例1-1>的情况类似的流程(通过与图41中的流程图类似的流程执行)来执行在图39的步骤S402中执行的逆一次垂直变换处理。因此,基本上省略了对以上处理的描述。
注意,通过与图94中的流程图的情况类似的流程来执行在逆一次垂直变换处理中执行的变换矩阵导出处理(图41中的步骤S441)。因此,省略描述。
<变换矩阵导出处理的流程>
注意,在这种情况下,通过与<2-2.示例1-1>的情况类似的流程来执行图39中的步骤S403中执行的逆一次水平变换处理(通过与图42中的流程图类似的流程来执行)。因此,省略描述。
注意,通过与图94中的流程图的情况类似的流程来执行在逆一次水平变换处理中执行的变换矩阵导出处理(图42中的步骤S461)。因此,省略描述。
<5.第四实施方式>
<5-1.共同概念>
<实施方式的组合>
已经描述了第一实施方式至第三实施方式。这些实施方式可以被组合和应用。例如,在示例1-1中描述的方法和在第三实施方式中描述的方法可以组合应用于在非专利文献1中描述的方法。
即,导出单元可以使用子矩阵来导出第一变换矩阵,并且进一步使用所导出的第一变换矩阵来导出第二变换矩阵,并且正交变换单元可以使用由导出单元导出的第二变换矩阵对预测残差进行正交变换。
此时,导出单元可以使用第一变换矩阵导出与第一变换矩阵不同变换类型的第二变换矩阵。此外,导出单元可以翻转或转置所述第一变换矩阵以导出第二变换矩阵。
在这种情况下,如图98的表所示,在非专利文献1中描述的技术的情况下所需的五种类型的变换矩阵(参见图6中的表A)可以减少为三种类型,并且,仅需要为三种类型的变换矩阵准备子矩阵。因此,总LUT大小可以为约20KB。即,与非专利文献1中描述的技术的情况相比,LUT的大小可以减小(大约53KB(图6中的表A))。即,可以抑制LUT的大小的增加。
<变换矩阵导出单元>
在这种情况下,图像编码设备100和图像解码设备200的配置也基本上与第一实施方式的配置类似。然而,仅变换矩阵导出单元的配置与第一实施方式的配置不同。
例如,图99示出了这种情况下的变换矩阵导出单元321的主要配置示例。如图99所示,这种情况下的变换矩阵导出单元321仅需要具有示例1-1的配置(图24)和第三实施方式的配置(图92)两者。即,在这种情况下,变换矩阵导出单元321包括变换矩阵LUT 331、翻转单元332、转置单元333、水平翻转单元632、垂直翻转单元633、转置单元634和符号反转单元635。
<变换矩阵导出处理的流程>
将参照图100中的流程图描述通过变换矩阵导出处理在一次水平变换处理中执行的变换矩阵导出处理的流程的示例。
当开始变换矩阵导出处理时,在步骤S721中,变换矩阵导出单元321通过参考图101所示的对应表,从变换矩阵LUT 331读取与变换类型标识符TrTypeIdxH对应的基本子矩阵C。
在步骤S722中,变换矩阵导出单元321基于对应表来导出与变换类型标识符TrTypeIdxH对应的翻转标志FlipFlag和转置标志TransposeFlag(对值进行设置)。
在步骤S723中,变换矩阵导出单元321基于预定的导出方法,适当地使用水平翻转单元632至符号反转单元635,从子矩阵C生成与变换类型标识符TrTypeIdxH对应的基本变换矩阵Tbase
然后,与图30中的从步骤S342至S346的每个处理类似,变换矩阵导出单元321适当地使用翻转单元332和转置单元333,执行从步骤S724至S728的每个处理。即,第一变换矩阵被适当地变换成第二变换矩阵。
当步骤S728中的处理结束时,变换矩阵导出处理结束,并且处理返回到图28。
注意,包括在一次垂直变换单元313中的变换矩阵导出单元351、包括在逆一次垂直变换单元412中的变换矩阵导出单元421和包括在逆一次水平变换单元413中的变换矩阵导出单元451全部具有与参照图99描述的情况类似的配置。因此,省略对处理的描述。
此外,通过与参照图100中的流程图描述的情况类似的流程,执行在一次垂直变换处理中执行的变换矩阵导出处理、在逆一次垂直变换处理中执行的变换矩阵导出处理以及在逆一次水平变换处理中执行的变换矩阵导出处理中的全部。因此,省略对处理的描述。
通过这样做,可以获得示例1-1和第三实施方式两者的效果。
注意,实施方式(示例)的组合是任意的,并且不限于该示例。例如,第三实施方式中描述的方法可以与第一实施方式的每个示例组合。此外,第三实施方式中描述的方法可以与第二实施方式中描述的方法组合。
<6.附录>
<计算机>
上述一系列处理可以由硬件或由软件执行。在由软件执行这一系列处理的情况下,在计算机中安装配置该软件的程序。此处,计算机包括并入专用硬件中的计算机、能够通过安装各种程序来执行各种功能的计算机,例如通用个人计算机,等等。
图102是示出了通过程序执行上述一系列处理的计算机的硬件的配置示例的框图。
在图102所示的计算机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)。此外,例如,可以发送指示应用了上述本技术的对象(或未应用本技术的对象)的控制信息。例如,可以发送用于指定应用本技术(或允许或禁止应用)的块大小(上限、下限或两者)、帧、分量、层等的控制信息。
<本技术的应用对象>
本技术可以应用于任何图像编码/解码方法。即,关于图像编码/解码的诸如变换(逆变换)、量化(逆量化)、编码(解码)和预测的各种类型的处理的规范是任意的,并且不限于上述示例,只要与上述本技术不发生矛盾即可。此外,只要与上述本技术不发生矛盾,就可以省略处理的部分。
此外,本技术可以应用于执行包括多个视点(视图)的图像的多视图图像的编码/解码的多视图图像编码/解码系统。在这种情况下,本技术简单地应用于每个视点(视图)的编码/解码。
此外,本技术可以应用于分层图像编码(可缩放编码)/解码系统,该系统对多层(分层)的分层图像进行编码/解码,以具有针对预定参数的可缩放性功能。在这种情况下,本技术简单地应用于每一层(layer)的编码/解码。
根据上述实施方式的图像编码设备100和图像解码设备200可以应用于例如卫星广播中的发送器和接收器(例如,电视接收器和移动电话)、有线广播如有线电视、因特网上的分发以及由蜂窝通信向终端的分发或者各种电子设备如在诸如光盘、磁盘和闪速存储器的介质上记录图像并且从这些存储介质再现图像的设备(例如,硬盘记录器和摄像机)。
此外,例如,本技术可以实现为要安装在配置任意设备或系统的设备上的任何配置,例如系统大规模集成(LSI)等的处理器(例如,视频处理器)、使用多个处理器等的模块(例如,视频模块)、使用多个模块等的单元(例如,视频单元)、或向单元(即,设备的一部分的配置)添加其他功能的设置(例如,视频设置)。
此外,本技术还可以应用于包括多个设备的网络系统。例如,本技术可以应用于向诸如计算机、视听(AV)设备、便携式信息处理终端或物联网(IoT)设备的任意终端提供关于图像(运动图像)的服务的云服务。
注意,应用本技术的系统、装置、处理单元等可以在诸如交通、医疗护理、犯罪预防、农业、畜牧业、采矿、美容、工厂、家用电器、天气和自然监视的任意领域中使用。此外,在任意领域中的使用也是任意的。
例如,本技术可以应用于被提供用于提供供欣赏的内容等的系统和设备。此外,例如,本技术还可以应用于用于诸如交通状况监视和自动驾驶控制的交通的系统和设备。此外,例如,本技术还可以应用于针对安全而提供的系统和设备。此外,例如,本技术可以应用于为机器等的自动控制而提供的系统和设备。此外,例如,本技术也可以应用于为农业或畜牧业提供的系统和设备。此外,本技术还可以应用于监视诸如火山、森林以及海洋、野生动物等的自然状态的系统和设备。此外,例如,本技术还可以应用于为体育业提供的系统和设备。
<其他方面>
注意,本说明书中的“标志”是用于标识多个状态的信息,并且不仅包括用于标识真(1)和假(0)两个状态的信息,而且还包括能够标识三个或更多个状态的信息。因此,“标志”可以采用的值可以是例如二进制值1/0或者可以是三进制值或更多。即,构成“标志”的位数是任意的,并且可以是1位或多位。此外,标识信息(包括标志)被假设为不仅呈在比特流中包括标识信息的形式,而且呈在比特流中包括标识信息与特定参考信息的差异信息的形式。因此,在本说明书中,“标志”和“标识信息”不仅包括信息本身,而且还包括参考信息的差异信息。
此外,可以以任何形式发送或记录关于编码数据(比特流)的各种类型的信息(元数据等),只要各种类型的信息与编码数据相关联即可。此处,术语“关联”意味着例如当处理一个数据时可以使用(链接)另一数据。即,彼此关联的数据可以被收集为一个数据或者可以是单独数据。例如,可以在与编码数据(图像)的传输路径不同的传输路径上传输与编码数据(图像)相关联的信息。此外,例如,可以将与编码数据(图像)相关联的信息记录在与编码数据(图像)不同的记录介质上(或者记录在同一记录介质的另一记录区域中)。注意,该“关联”可以是数据的一部分,而不是整个数据。例如,与图像对应的图像和信息可以以诸如多个帧、一个帧或帧中的一部分的任意单位彼此相关联。
注意,在本说明书中,诸如“组合”、“多路复用”、“相加”、“集成”、“包括”、“存储”和“插入”的术语是指将多个事物放入一个中,例如将编码数据和元数据放入一个数据中,并且是指上述“关联”的一种方法。
此外,本技术的实施方式不限于上述实施方式,并且在不背离本技术的主旨的情况下可以进行各种变型。
此外,例如,本技术可以被实现为构成设备或系统的任何配置,例如系统大规模集成(LSI)等的处理器、使用多个处理器等的模块、使用多个模块等的单元或其他功能被添加到该单元的设置(即,设备的一部分的配置)。
注意,在本说明书中,术语“系统”是指多个配置元件(设备、模块(部件)等)的组,并且所有配置元件是否在同一外壳中是无关紧要的。因此,容纳在单独的壳体中并且经由网络连接的多个设备和在一个外壳中容纳多个模块的一个设备都是系统。
此外,例如,被描述为一个设备(或处理单元)的配置可以被划分且被配置成多个设备(或处理单元)。相反,描述多个设备(或处理单元)的配置可以被共同配置为一个设备(或处理单元)。此外,可以将除了上述配置之外的配置添加到每个设备(或每个处理单元)的配置。此外,只要系统的配置和操作总的来说基本上相同,某一设备(或处理单元)的一部分配置可以包括在另一设备(或另一处理单元)的配置中。
此外,例如,在本技术中,可以采用云计算的配置,在该配置中,一种功能由多个装置经由网络分担和协作处理。
此外,例如,上述程序可以由任意设备来执行。在那种情况下,设备仅需要具有必要的功能(功能块等)并且获得必要的信息。
此外,例如,上述流程图中描述的步骤可以由一个设备执行,或者可以由多个设备以共享方式执行。此外,在一个步骤中包括多个处理的情况下,一个步骤中包括的多个处理可以由一个设备来执行或者可以由多个设备共享和执行。换言之,包括在一个步骤中的多个处理可以作为多个步骤的处理而执行。相反,被描述为多个步骤的处理可以作为一个步骤来共同执行。
注意,在由计算机执行的程序中,描述程序的步骤的处理可以根据本说明书中描述的顺序按时间顺序执行,或者可以并行地或在例如进行调用时的必要定时处单独执行。即,只要不发生矛盾,就可以以与上述顺序不同的顺序执行每个步骤的处理。此外,描述该程序的步骤的处理可以与另一程序的处理并行执行,或者可以与另一程序的处理组合执行。
注意,只要不存在不一致性,本说明书中描述的多个本技术可以彼此独立地实现为单个单元。当然,可以一起实现任意数量的本技术。例如,任何实施方式中描述的本技术的部分或全部可以与另外的实施方式中描述的本技术的部分或全部组合实现。此外,上述任意本技术的一部分或全部可以与上述未描述的另一技术组合实现。
注意,本技术还可以具有以下配置。
(1)一种图像处理装置,包括:
导出单元,其被配置成使用第一变换矩阵来导出第二变换矩阵;
正交变换单元,其被配置成使用由所述导出单元导出的所述第二变换矩阵来对图像的预测残差进行正交变换;以及
编码单元,其被配置成对通过由所述正交变换单元对所述预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
(2)根据(1)所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出与所述第一变换矩阵的变换类型不同的变换类型的第二变换矩阵。
(3)根据(1)或(2)所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出与所述第一变换矩阵具有相同的行数和相同的列数的第二变换矩阵。
(4)根据(1)至(3)中任一项所述的图像处理装置,其中,
所述导出单元通过对所述第一变换矩阵的元素的运算(operation)来导出所述第二变换矩阵。
(5)根据(4)所述的图像处理装置,其中,
所述运算包括元素的重新排列。
(6)根据(4)或(5)所述的图像处理装置,其中,
所述导出单元通过多次执行所述运算来导出所述第二变换矩阵。
(7)根据(1)至(6)中任一项所述的图像处理装置,其中,
所述导出单元使用存储在查找表中的所述第一变换矩阵来导出所述第二变换矩阵。
(8)根据(1)至(7)中任一项所述的图像处理装置,其中,
所述正交变换单元使用由所述导出单元导出的所述第二变换矩阵来对所述预测残差执行一次变换,并且进一步对所述一次变换的结果执行二次变换。
(9)根据(8)所述的图像处理装置,其中,
所述导出单元导出用于水平方向的一维正交变换的所述第二变换矩阵和用于垂直方向的一维正交变换的所述第二变换矩阵,并且
所述正交变换单元进行以下运算作为所述一次变换:
使用由所述导出单元导出的用于水平方向的一维正交变换的第二变换矩阵来执行所述水平方向的一维正交变换;并且
进一步使用由所述导出单元导出的用于垂直方向的一维正交变换的第二变换矩阵来执行所述垂直方向的一维正交变换。
(10)根据(1)至(9)中任一项所述的图像处理装置,其中,
所述导出单元翻转所述第一变换矩阵,导出所述第二变换矩阵。
(11)根据(1)至(10)中任一项所述的图像处理装置,其中,
所述导出单元转置所述第一变换矩阵,导出所述第二变换矩阵。
(12)根据(1)至(11)中任一项所述的图像处理装置,其中,
所述导出单元翻转所述第一变换矩阵,使经翻转的第一变换矩阵的奇数行向量的符号反转,并且导出所述第二变换矩阵。
(13)根据(1)至(12)中任一项所述的图像处理装置,其中,
所述导出单元翻转所述第一变换矩阵,转置经翻转的第一变换矩阵,并且导出所述第二变换矩阵。
(14)根据(1)至(13)中任一项所述的图像处理装置,其中,
所述导出单元转置所述第一变换矩阵,翻转经转置的第一变换矩阵,并且导出所述第二变换矩阵。
(15)根据(1)至(14)中任一项所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出最低阶行向量具有期望类型的波形的第二变换矩阵。
(16)根据(1)至(15)中任一项所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出最低阶行向量具有扁平类型波形的第二变换矩阵。
(17)根据(1)至(16)中任一项所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出最低阶行向量具有增加类型波形的第二变换矩阵。
(18)根据(1)至(17)中任一项所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出最低阶行向量具有减小类型波形的第二变换矩阵。
(19)根据(1)至(18)中任一项所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出最低阶的行向量具有山形类型波形的第二变换矩阵。
(20)一种图像处理方法,包括:
使用第一变换矩阵来导出第二变换矩阵;
使用所导出的第二变换矩阵对图像的预测残差进行正交变换;以及
对通过对所述预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
(21)一种图像处理装置,包括:
解码单元,其被配置成对比特流进行解码,以获得通过对图像的预测残差进行正交变换而得的系数数据;
导出单元,其被配置成使用第一变换矩阵来导出第二变换矩阵;以及
逆正交变换单元,其被配置成使用由所述导出单元导出的所述第二变换矩阵,来对由所述解码单元获得的所述系数数据进行逆正交变换。
(22)根据(21)所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出与所述第一变换矩阵的变换类型不同的变换类型的第二变换矩阵。
(23)根据(21)或(22)所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出与所述第一变换矩阵具有相同的行数和相同的列数的第二变换矩阵。
(24)根据(21)至(23)中任一项所述的图像处理装置,其中,
所述导出单元通过对所述第一变换矩阵的元素的运算来导出所述第二变换矩阵。
(25)根据(24)所述的图像处理装置,其中,
所述运算包括元素的重新排列。
(26)根据(24)或(25)所述的图像处理装置,其中,
所述导出单元通过多次执行所述操作来导出所述第二变换矩阵。
(27)根据(21)至(26)中任一项所述的图像处理装置,其中,
所述导出单元使用存储在查找表中的所述第一变换矩阵来导出所述第二变换矩阵。
(28)根据(21)至(27)中任一项所述的图像处理装置,其中,
所述逆正交变换单元对系数数据执行逆二次变换,并且进一步使用由所述导出单元导出的所述第二变换矩阵,对所述逆二次变换的结果执行逆一次变换。
(29)根据(28)所述的图像处理装置,其中,
所述导出单元导出用于水平方向的逆一维正交变换的所述第二变换矩阵和用于垂直方向的逆一维正交变换的所述第二变换矩阵,并且
所述逆正交变换单元进行以下操作作为所述逆一次变换:
使用由所述导出单元导出的用于水平方向的逆一维正交变换的第二变换矩阵来执行所述水平方向的逆一维正交变换;以及
进一步使用由所述导出单元导出的用于垂直方向的逆一维正交变换的第二变换矩阵来执行所述垂直方向的逆一维正交变换。
(30)根据(21)至(29)中任一项所述的图像处理装置,其中,
所述导出单元翻转所述第一变换矩阵,导出所述第二变换矩阵。
(31)根据(21)至(30)中任一项所述的图像处理装置,其中,
所述导出单元转置所述第一变换矩阵,导出所述第二变换矩阵。
(32)根据(21)至(31)中任一项所述的图像处理装置,其中,
所述导出单元翻转所述第一变换矩阵,使经翻转的第一变换矩阵的奇数行向量的符号反转,并且导出所述第二变换矩阵。
(33)根据(21)至(32)中任一项所述的图像处理装置,其中,
所述导出单元翻转所述第一变换矩阵,转置经翻转的第一变换矩阵,并且导出所述第二变换矩阵。
(34)根据(21)至(33)中任一项所述的图像处理装置,其中,
所述导出单元转置所述第一变换矩阵,翻转经转置的第一变换矩阵,并且导出所述第二变换矩阵。
(35)根据(21)至(34)中任一项所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出最低阶行向量具有期望类型的波形的第二变换矩阵。
(36)根据(21)至(35)中任一项所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出最低阶行向量具有扁平类型波形的第二变换矩阵。
(37)根据(21)至(36)中任一项所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出最低阶行向量具有增加类型波形的第二变换矩阵。
(38)根据(21)至(37)中任一项所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出最低阶行向量具有减小类型波形的第二变换矩阵。
(39)根据(21)至(38)中任一项所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出最低阶的行向量具有山形类型波形的第二变换矩阵。
(40)一种图像处理方法,包括:
对比特流进行解码以获得通过对图像的预测残差进行正交变换的系数数据;
使用第一变换矩阵来导出第二变换矩阵;以及
使用所导出的第二变换矩阵对所获得的系数数据进行逆正交变换。
(41)一种图像处理装置,包括:
运算单元,其被配置成对图像的预测残差执行置换运算;
正交变换单元,其被配置成使用作为基本的变换矩阵,对由所述运算单元进行置换运算的所述预测残差进行正交变换;以及
编码单元,其被配置成对通过由所述正交变换单元对所述预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
(42)根据(41)所述的图像处理装置,其中,
所述运算单元在一维正交变换之间的空间对称方向上翻转所述预测残差,并且
所述正交变换单元使用所述变换矩阵对由所述运算单元翻转的所述预测残差进行正交变换。
(43)根据(41)或(42)所述的图像处理装置,其中,
所述运算单元水平地翻转所述预测残差,并且
所述正交变换单元使用所述变换矩阵对由所述运算单元水平翻转的所述预测残差进行正交变换。
(44)根据(41)至(43)中任一项所述的图像处理装置,其中,
所述运算单元垂直地翻转所述预测残差,并且
所述正交变换单元使用所述变换矩阵对由所述运算单元垂直翻转的所述预测残差进行正交变换。
(45)根据(41)至(44)中任一项所述的图像处理装置,其中,
所述运算单元水平地和垂直地翻转所述预测残差,并且
所述正交变换单元使用所述变换矩阵对由所述运算单元水平和垂直翻转的所述预测残差进行正交变换。
(46)根据(41)至(45)中任一项所述的图像处理装置,还包括:
导出单元,其被配置成使用第一变换矩阵来导出第二变换矩阵,其中,
所述正交变换单元被配置成使用由所述导出单元导出的所述第二变换矩阵来对由所述运算单元翻转的所述预测残差进行正交变换。
(47)根据(46)所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出与所述第一变换矩阵具有相同行数和相同列数的第二变换矩阵。
(48)根据(46)或(47)所述的图像处理装置,其中,
所述导出单元使所述第一变换矩阵的奇数行向量的符号反转,并且导出所述第二变换矩阵。
(49)根据(41)至(48)中任一项所述的图像处理装置,其中,
所述正交变换单元使用作为基本的变换矩阵,对由所述运算单元进行置换运算的所述预测残差执行一次变换,并且还对所述一次变换的结果执行二次变换。
(50)一种图像处理方法,包括:
对图像的预测残差执行置换运算;
使用作为基本的变换矩阵对被置换运算的所述预测残差进行正交变换;以及
对通过对所述预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
(51)一种图像处理装置,包括:
解码单元,其被配置成对比特流进行解码,以获得通过对图像的预测残差进行正交变换而获得的系数数据;
逆正交变换单元,其被配置成对由所述解码单元获得的系数数据进行逆正交变换;以及
所述运算单元,其被配置成对由所述逆正交变换单元获得的所述系数数据的逆正交变换结果执行置换运算。
(52)根据(51)所述的图像处理装置,其中,
所述运算单元在一维正交变换之间的空间对称方向上翻转所述逆正交变换结果。
(53)根据(51)或(52)所述的图像处理装置,其中,
所述运算单元水平地翻转所述逆正交变换结果。
(54)根据(51)至(53)中任一项所述的图像处理装置,其中,
所述运算单元垂直地翻转所述逆正交变换结果。
(55)根据(51)至(54)中任一项所述的图像处理装置,其中,
所述运算单元水平地和垂直地翻转所述逆正交变换结果。
(56)根据(51)至(55)中任一项所述的图像处理装置,还包括:
导出单元,其被配置成使用第一变换矩阵来导出第二变换矩阵,其中,
所述逆正交变换单元被配置成使用由所述导出单元导出的所述第二变换矩阵,对由所述解码单元获得的所述系数数据进行逆正交变换,并且
所述运算单元被配置成对由所述逆正交变换单元获得的所述系数数据的所述逆正交变换结果执行置换运算。
(57)根据(56)所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出与所述第一变换矩阵具有相同行数和相同列数的第二变换矩阵。
(58)根据(56)或(57)所述的图像处理装置,其中,
所述导出单元使所述第一变换矩阵的奇数行向量的符号反转,并且导出所述第二变换矩阵。
(59)根据(51)至(58)中任一项所述的图像处理装置,其中,
所述逆正交变换单元对由所述解码单元获得的所述系数数据执行逆二次变换,并且进一步使用作为基本的变换矩阵,对逆二次变换结果执行逆一次变换,并且
所述运算单元对由所述逆正交变换单元获得的逆一次变换结果执行置换运算。
(60)一种图像处理方法,包括:
对比特流进行解码以获得通过对图像的预测残差进行正交变换而获得的系数数据;
对所获得的系数数据进行逆正交变换;以及
对所获得的系数数据的逆正交变换结果执行置换运算。
(61)一种图像处理装置,包括:
导出单元,其被配置成使用构成变换矩阵的一部分的子矩阵来导出所述变换矩阵;
正交变换单元,其被配置成使用由所述导出单元导出的所述变换矩阵来对图像的预测残差进行正交变换;以及
编码单元,其被配置成对通过由所述正交变换单元对所述预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
(62)根据(61)所述的图像处理装置,其中,
所述导出单元使用存储在查找表中的子矩阵来导出所述变换矩阵。
(63)根据(61)或(62)所述的图像处理装置,其中,
所述正交变换单元使用由所述导出单元导出的所述变换矩阵对所述预测残差执行一次变换,并且还对所述一次变换的结果执行二次变换。
(64)根据(63)所述的图像处理装置,其中,
所述导出单元导出用于水平方向的一维正交变换的变换矩阵和用于垂直方向的一维正交变换的变换矩阵,并且
所述正交变换单元进行以下操作作为所述一次变换:
使用由所述导出单元导出的用于水平方向的一维正交变换的变换矩阵来执行所述水平方向的一维正交变换,并且
进一步使用由所述导出单元导出的用于垂直方向的一维正交变换的变换矩阵来执行所述垂直方向的一维正交变换。
(65)根据(61)至(64)中任一项所述的图像处理装置,其中,
所述导出单元通过以下操作来导出所述变换矩阵:围绕穿过所述变换矩阵的中心的预定方向的轴翻转子矩阵;以及导出所述变换矩阵的剩余子矩阵。
(66)根据(65)所述的图像处理装置,其中,
所述导出单元在与行平行的方向上翻转所述子矩阵。
(67)根据(65)或(66)所述的图像处理装置,其中,
所述导出单元在与列平行的方向上翻转所述子矩阵。
(68)根据(65)至(67)中任一项所述的图像处理装置,其中,
所述导出单元在围绕所述变换矩阵的中心的旋转方向上翻转所述子矩阵。
(69)根据(65)至(68)中任一项所述的图像处理装置,其中,
所述导出单元在围绕所述变换矩阵的对角线的倾斜方向上翻转所述子矩阵。
(70)根据(65)至(69)中任一项所述的图像处理装置,其中,
所述导出单元还使经翻转的子矩阵的元素的符号反转并且导出所述变换矩阵。
(71)根据(61)至(70)中任一项所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的左半子矩阵或右半子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:在所述变换矩阵的行方向上翻转所述子矩阵;进一步使经翻转的子矩阵的奇数行向量的符号反转;以及导出所述变换矩阵的右半子矩阵或左半子矩阵。
(72)根据(61)至(71)中任一项所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的上半子矩阵或下半子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:在所述变换矩阵的列方向上翻转所述子矩阵;进一步使经翻转的子矩阵的奇数列向量的符号反转;以及导出所述变换矩阵的下半子矩阵或上半子矩阵。
(73)根据(61)至(72)中任一项所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的上半子矩阵或下半子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:在围绕所述变换矩阵的中心的旋转方向上翻转所述子矩阵;进一步使经翻转的子矩阵的具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转;以及导出所述变换矩阵的下半子矩阵或上半子矩阵。
(74)根据(61)至(73)中任一项所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的右上三角部分的子矩阵或左下三角部分的子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:对所述子矩阵进行转置以导出所述变换矩阵的左下三角部分的子矩阵或右上三角部分的子矩阵。
(75)根据(61)至(74)中任一项所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的左上三角部分的子矩阵或右下三角部分的子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:在以连接所述变换矩阵的右上端和左下端的对角线为轴的倾斜方向上翻转所述子矩阵;进一步使经翻转的子矩阵的具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转;以及导出所述变换矩阵的右下三角部分的子矩阵或左上三角部分的子矩阵。
(76)根据(61)至(75)中任一项所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的左上四分之一子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:
在所述变换矩阵的行方向上翻转所述子矩阵,进一步使经翻转的子矩阵的奇数行向量的符号反转,并且导出所述变换矩阵的右上四分之一子矩阵;
在所述变换矩阵的列方向上翻转所述子矩阵,进一步使经翻转的子矩阵的奇数列向量的符号反转,并且导出所述变换矩阵的左下四分之一子矩阵;以及
在围绕所述变换矩阵的中心的旋转方向上翻转所述子矩阵,进一步使经翻转的子矩阵的具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转,并且导出所述变换矩阵的右下四分之一子矩阵。
(77)根据(61)至(76)中任一项所述的图像处理装置,其中,
所述导出单元使用所述子矩阵来导出第一变换矩阵,并且还使用所导出的第一变换矩阵来导出第二变换矩阵,并且
所述正交变换单元使用由所述导出单元导出的所述第二变换矩阵,来对所述预测残差进行正交变换。
(78)根据(77)所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出与所述第一变换矩阵的变换类型不同的变换类型的第二变换矩阵。
(79)根据(77)或(78)所述的图像处理装置,其中,
所述导出单元翻转或转置所述第一变换矩阵并且导出所述第二变换矩阵。
(80)一种图像处理方法,包括:
使用构成变换矩阵的一部分的子矩阵来导出所述变换矩阵;
使用所导出的变换矩阵对图像的预测残差进行正交变换;以及
对通过对所述预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
(81)一种图像处理装置,包括:
解码单元,其被配置成对比特流进行解码,以获得通过对图像的预测残差进行正交变换而获得的系数数据;
导出单元,其被配置成使用构成变换矩阵的一部分的子矩阵来导出所述变换矩阵;以及
逆正交变换单元,其被配置成使用由所述导出单元导出的所述变换矩阵,来对由所述解码单元获得的所述系数数据进行逆正交变换。
(82)根据(81)所述的图像处理装置,其中,
所述导出单元使用存储在查找表中的子矩阵来导出所述变换矩阵。
(83)根据(81)或(82)所述的图像处理装置,其中,
所述逆正交变换单元对由所述解码单元获得的所述系数数据执行逆二次变换,并且进一步使用由所述导出单元导出的所述变换矩阵,对逆二次变换结果执行逆一次变换。
(84)根据(83)所述的图像处理装置,其中,
所述导出单元导出用于水平方向的逆一维正交变换的变换矩阵和用于垂直方向的逆一维正交变换的变换矩阵,并且
所述逆正交变换单元进行以下操作作为所述逆一次变换:
使用由所述导出单元导出的用于水平方向的逆一维正交变换的变换矩阵来执行所述水平方向的逆一维正交变换;以及
进一步使用由所述导出单元导出的用于垂直方向的逆一维正交变换的变换矩阵来执行所述垂直方向的逆一维正交变换。
(85)根据(81)至(84)中任一项所述的图像处理装置,其中,
所述导出单元通过以下操作来导出所述变换矩阵:围绕穿过所述变换矩阵的中心的预定方向的轴翻转子矩阵;以及导出所述变换矩阵的剩余子矩阵。
(86)根据(85)所述的图像处理装置,其中,
所述导出单元在与行平行的方向上翻转所述子矩阵。
(87)根据(85)或(86)所述的图像处理装置,其中,
所述导出单元在与列平行的方向上翻转所述子矩阵。
(88)根据(85)至(87)中任一项所述的图像处理装置,其中,
所述导出单元在围绕所述变换矩阵的中心的旋转方向上翻转所述子矩阵。
(89)根据(85)至(88)中任一项所述的图像处理装置,其中,
所述导出单元在围绕所述变换矩阵的对角线的倾斜方向上翻转所述子矩阵。
(90)根据(85)至(89)中任一项所述的图像处理装置,其中,
所述导出单元还使经翻转的子矩阵的元素的符号反转并且导出所述变换矩阵。
(91)根据(81)至(90)中任一项所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的左半子矩阵或右半子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:在所述变换矩阵的行方向上翻转所述子矩阵;进一步使经翻转的子矩阵的奇数行向量的符号反转;以及导出所述变换矩阵的右半子矩阵或左半子矩阵。
(92)根据(81)至(91)中任一项所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的上半子矩阵或下半子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:在所述变换矩阵的列方向上翻转所述子矩阵;进一步使经翻转的子矩阵的奇数列向量的符号反转;以及导出所述变换矩阵的下半子矩阵或上半子矩阵。
(93)根据(81)至(92)中任一项所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的上半子矩阵或下半子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:在围绕所述变换矩阵的中心的旋转方向上翻转所述子矩阵;进一步使经翻转的子矩阵的具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转;以及导出所述变换矩阵的下半子矩阵或上半子矩阵。
(94)根据(81)至(93)中任一项所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的右上三角部分的子矩阵或左下三角部分的子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:对所述子矩阵进行转置以导出所述变换矩阵的左下三角部分的子矩阵或右上三角部分的子矩阵。
(95)根据(81)至(94)中任一项所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的左上三角部分的子矩阵或右下三角部分的子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:在以连接所述变换矩阵的右上端和左下端的对角线为轴的倾斜方向上翻转所述子矩阵;进一步使奇数行向量的符号反转;以及导出所述变换矩阵的右下三角部分的子矩阵或左上三角部分的子矩阵。
(96)根据(81)至(95)中任一项所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的左上四分之一子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:
在所述变换矩阵的行方向上翻转所述子矩阵,进一步使经翻转的子矩阵的奇数行向量的符号反转,并且导出所述变换矩阵的右上四分之一子矩阵;
在所述变换矩阵的列方向上翻转所述子矩阵,进一步使经翻转的子矩阵的奇数列向量的符号反转,并且导出所述变换矩阵的左下四分之一子矩阵;以及
在围绕所述变换矩阵的中心的旋转方向上翻转所述子矩阵,进一步使经翻转的子矩阵的具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转,并且导出所述变换矩阵的右下四分之一子矩阵。
(97)根据(81)至(96)中任一项所述的图像处理装置,其中,
所述导出单元使用所述子矩阵来导出第一变换矩阵,并且还使用所导出的第一变换矩阵来导出第二变换矩阵,并且
所述逆正交变换单元使用由所述导出单元导出的所述第二变换矩阵,来对所述系数数据进行逆正交变换。
(98)根据(97)所述的图像处理装置,其中,
所述导出单元使用所述第一变换矩阵来导出与所述第一变换矩阵的变换类型不同的变换类型的第二变换矩阵。
(99)根据(97)或(98)所述的图像处理装置,其中,
所述导出单元翻转或转置所述第一变换矩阵并且导出所述第二变换矩阵。
(100)一种图像处理方法,包括:
对比特流进行解码以获得通过对图像的预测残差进行正交变换而获得的系数数据;
使用配置变换矩阵的一部分的子矩阵来导出所述变换矩阵;以及
使用所导出的变换矩阵来对所获得的系数数据进行逆正交变换。
附图标记列表
100 图像编码设备
101 控制单元
113 正交变换单元
115 编码单元
118 逆正交变换单元
152 一次变换单元
200 图像解码设备
212 解码单元
214 逆正交变换单元
253 逆一次变换单元
311 一次变换选择单元
312 一次水平变换单元
313 一次垂直变换单元
321 变换矩阵导出单元
331 变换矩阵LUT
332 翻转单元
333 转置单元
351 变换矩阵导出单元
361 变换矩阵LUT
362 翻转单元
363 转置单元
411 逆一次变换选择单元
412 逆一次垂直变换单元
413 逆一次水平变换单元
421 变换矩阵导出单元
431 变换矩阵LUT
432 翻转单元
433 转置单元
451 变换矩阵导出单元
461 变换矩阵LUT
462 翻转单元
463 转置单元
501、502、511和512 符号反转单元
551和552 预测残差置换运算单元
561、562、571和572 符号反转单元
632 水平翻转单元
633 垂直翻转单元
634 转置单元
635 符号反转单元
642 水平翻转单元
643 垂直翻转单元
644 转置单元
645 符号反转单元
652 水平翻转单元
653 垂直翻转单元
654 转置单元
655 符号反转单元
662 水平翻转单元
663 垂直翻转单元
664 转置单元
665 符号反转单元

Claims (24)

1.一种图像处理装置,包括:
导出单元,其被配置成使用构成变换矩阵的一部分的子矩阵来导出所述变换矩阵;
正交变换单元,其被配置成使用由所述导出单元导出的所述变换矩阵来对图像的预测残差进行正交变换;以及
编码单元,其被配置成对通过由所述正交变换单元对所述预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
2.根据权利要求1所述的图像处理装置,其中,
所述导出单元使用存储在查找表中的所述子矩阵来导出所述变换矩阵。
3.根据权利要求1所述的图像处理装置,其中,
所述正交变换单元使用由所述导出单元导出的所述变换矩阵对所述预测残差执行一次变换,并且还对所述一次变换的结果执行二次变换。
4.根据权利要求3所述的图像处理装置,其中,
所述导出单元导出用于水平方向的一维正交变换的变换矩阵和用于垂直方向的一维正交变换的变换矩阵,并且
所述正交变换单元进行以下操作作为所述一次变换:
使用由所述导出单元导出的用于水平方向的一维正交变换的变换矩阵来执行所述水平方向的一维正交变换;以及
进一步使用由所述导出单元导出的用于垂直方向的一维正交变换的变换矩阵来执行所述垂直方向的一维正交变换。
5.根据权利要求1所述的图像处理装置,其中,
所述导出单元通过以下操作来导出所述变换矩阵:围绕穿过所述变换矩阵的中心的预定方向的轴翻转所述子矩阵;以及导出所述变换矩阵的剩余子矩阵。
6.根据权利要求5所述的图像处理装置,其中,
所述导出单元还使经翻转的所述子矩阵的元素的符号反转并且导出所述变换矩阵。
7.根据权利要求1所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的左半子矩阵或右半子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:在所述变换矩阵的行方向上翻转所述子矩阵;进一步使经翻转的子矩阵的奇数行向量的符号反转;以及导出所述变换矩阵的右半子矩阵或左半子矩阵。
8.根据权利要求1所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的上半子矩阵或下半子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:在所述变换矩阵的列方向上翻转所述子矩阵;进一步使经翻转的子矩阵的奇数列向量的符号反转;以及导出所述变换矩阵的下半子矩阵或上半子矩阵。
9.根据权利要求1所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的上半子矩阵或下半子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:在围绕所述变换矩阵的中心的旋转方向上翻转所述子矩阵;进一步使经翻转的子矩阵的具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转;以及导出所述变换矩阵的下半子矩阵或上半子矩阵。
10.根据权利要求1所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的右上三角部分的子矩阵或左下三角部分的子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:对所述子矩阵进行转置,来导出所述变换矩阵的左下三角部分的子矩阵或右上三角部分的子矩阵。
11.根据权利要求1所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的左上三角部分的子矩阵或右下三角部分的子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:在以连接所述变换矩阵的右上端和左下端的对角线为轴的倾斜方向上翻转所述子矩阵;进一步使经翻转的子矩阵的具有偶数行号和偶数列号的元素的符号以及具有奇数行号和奇数列号的元素的符号反转;以及导出所述变换矩阵的右下三角部分的子矩阵或左上三角部分的子矩阵。
12.根据权利要求1所述的图像处理装置,其中,
所述子矩阵是所述变换矩阵的左上四分之一子矩阵,并且
所述导出单元被配置成通过以下操作来导出所述变换矩阵:
在所述变换矩阵的行方向上翻转所述子矩阵,进一步使经翻转的子矩阵的奇数行向量的符号反转,并且导出所述变换矩阵的右上四分之一子矩阵;
在所述变换矩阵的列方向上翻转所述子矩阵,进一步使经翻转的子矩阵的奇数列向量的符号反转,并且导出所述变换矩阵的左下四分之一子矩阵;以及
在围绕所述变换矩阵的中心的旋转方向上翻转所述子矩阵,进一步使经翻转的子矩阵的具有偶数行号和偶数列号的元素以及具有奇数行号和奇数列号的元素的符号反转,并且导出所述变换矩阵的右下四分之一子矩阵。
13.根据权利要求1所述的图像处理装置,其中,
所述导出单元使用所述子矩阵来导出第一变换矩阵,并且进一步使用所导出的第一变换矩阵来导出第二变换矩阵,并且
所述正交变换单元使用由所述导出单元导出的所述第二变换矩阵,来对所述预测残差进行正交变换。
14.根据权利要求1所述的图像处理装置,其中,
所述正交变换单元使用四叉树块结构或四叉树加二叉树QTBT块结构的变换单元TU作为处理单元,来对所述预测残差进行正交变换。
15.根据权利要求1所述的图像处理装置,其中,
所述编码单元使用四叉树块结构或四叉树加二叉树QTBT块结构的编码单元CU作为处理单元,来对所述系数数据进行编码。
16.一种图像处理方法,包括:
使用构成变换矩阵的一部分的子矩阵来导出所述变换矩阵;
使用所导出的变换矩阵对图像的预测残差进行正交变换;以及
对通过对所述预测残差进行正交变换而获得的系数数据进行编码,以生成比特流。
17.一种图像处理装置,包括:
解码单元,其被配置成对比特流进行解码,以获得通过对图像的预测残差进行正交变换而得的系数数据;
导出单元,其被配置成使用构成变换矩阵的一部分的子矩阵来导出所述变换矩阵;以及
逆正交变换单元,其被配置成使用由所述导出单元导出的所述变换矩阵,来对由所述解码单元获得的所述系数数据进行逆正交变换。
18.根据权利要求17所述的图像处理装置,其中,
所述逆正交变换单元对由所述解码单元获得的所述系数数据执行逆二次变换,并且进一步使用由所述导出单元导出的所述变换矩阵,对所述逆二次变换的结果执行逆一次变换。
19.根据权利要求18所述的图像处理装置,其中,
所述导出单元导出用于水平方向的逆一维正交变换的变换矩阵和用于垂直方向的逆一维正交变换的变换矩阵,并且
所述逆正交变换单元执行以下操作作为所述逆一次变换:
使用由所述导出单元导出的用于水平方向的逆一维正交变换的变换矩阵来执行所述水平方向的逆一维正交变换;以及
进一步使用由所述导出单元导出的用于垂直方向的逆一维正交变换的变换矩阵来执行所述垂直方向的逆一维正交变换。
20.根据权利要求17所述的图像处理装置,其中,
所述导出单元通过以下操作来导出所述变换矩阵:围绕穿过所述变换矩阵的中心的预定方向的轴翻转所述子矩阵;以及导出所述变换矩阵的剩余子矩阵。
21.根据权利要求17所述的图像处理装置,其中,
所述导出单元使用所述子矩阵来导出第一变换矩阵,并且进一步使用所导出的第一变换矩阵来导出第二变换矩阵,并且
所述逆正交变换单元使用由所述导出单元导出的所述第二变换矩阵,来对所述系数数据进行逆正交变换。
22.根据权利要求17所述的图像处理装置,其中,
所述解码单元使用四叉树块结构或四叉树加二叉树QTBT块结构的编码单元CU作为处理单元,来对所述比特流进行解码。
23.根据权利要求17所述的图像处理装置,其中,
所述逆正交变换单元使用四叉树块结构或四叉树加二叉树QTBT块结构的变换单元TU作为处理单元,来对所述系数数据进行逆正交变换。
24.一种图像处理方法,包括:
对比特流进行解码以获得通过对图像的预测残差进行正交变换而得的系数数据;
使用构成变换矩阵的一部分的子矩阵来导出所述变换矩阵;以及
使用所导出的变换矩阵来对所获得的所述系数数据进行逆正交变换。
CN201880074233.2A 2017-11-24 2018-11-12 图像处理装置和方法 Active CN111357293B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017226062 2017-11-24
JP2017-226062 2017-11-24
PCT/JP2018/041822 WO2019102889A1 (ja) 2017-11-24 2018-11-12 画像処理装置および方法

Publications (2)

Publication Number Publication Date
CN111357293A true CN111357293A (zh) 2020-06-30
CN111357293B CN111357293B (zh) 2023-04-14

Family

ID=66631914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880074233.2A Active CN111357293B (zh) 2017-11-24 2018-11-12 图像处理装置和方法

Country Status (13)

Country Link
US (1) US11343538B2 (zh)
EP (1) EP3716629A4 (zh)
JP (2) JP7283389B2 (zh)
KR (1) KR20200092314A (zh)
CN (1) CN111357293B (zh)
AU (1) AU2018371372B2 (zh)
BR (1) BR112020009749A2 (zh)
CA (1) CA3082756A1 (zh)
MX (1) MX2020005236A (zh)
RU (1) RU2020115837A (zh)
SG (1) SG11202003007UA (zh)
WO (1) WO2019102889A1 (zh)
ZA (1) ZA202002152B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116362944A (zh) * 2023-05-31 2023-06-30 四川三思德科技有限公司 基于差异性的抗飞防作业干扰处理方法、装置及介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019231292A1 (ko) * 2018-05-31 2019-12-05 엘지전자 주식회사 저복잡도 dst7을 설계하는 방법 및 장치
US11533508B2 (en) * 2018-06-08 2022-12-20 Kt Corporation Method and apparatus for encoding/decoding residual data based on a plurality of transformations
US11259052B2 (en) * 2018-07-16 2022-02-22 Qualcomm Incorporated Transform variations of multiple separable transform selection
US11190794B2 (en) * 2019-02-12 2021-11-30 Tencent America LLC Method and apparatus for video coding
US10986334B2 (en) * 2019-03-09 2021-04-20 Tencent America LLC Method and apparatus for video coding
US20220311996A1 (en) * 2019-06-20 2022-09-29 Electronics And Telecommunications Research Institute Method and apparatus for image encoding and image decoding using prediction based on block type
US11271593B2 (en) * 2019-12-02 2022-03-08 Polaran Yazilim Bilisim Danismanlik Ithalatihracat Sanayi Ticaret Limited Sirketi Methods and apparatus for systematic encoding of data in error correction coding using triangular factorization of generator matrix
MX2022006718A (es) * 2019-12-11 2022-07-12 Sony Group Corp Dispositivo de procesamiento de imagenes, metodo de generacion de flujo de bits, metodo de generacion de datos de coeficiente y metodo de generacion de coeficiente de cuantificacion.
US11856227B2 (en) * 2022-05-26 2023-12-26 Mediatek Inc. Transform architecture in video encoding systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101779464A (zh) * 2007-06-08 2010-07-14 汤姆森特许公司 多格点基于稀疏性滤波基础上环内去伪像滤波方法和装置
CN102986216A (zh) * 2010-07-09 2013-03-20 高通股份有限公司 基于大小及帧内模式或基于边缘检测的用于帧内块的自适应频率变换
KR20160035317A (ko) * 2014-09-23 2016-03-31 세종대학교산학협력단 통합 코덱용 이산 코사인 변환 장치 및 그 방법
US20160134892A1 (en) * 2013-06-14 2016-05-12 Samsung Electronics Co., Ltd. Signal transforming method and device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386233A (en) * 1993-05-13 1995-01-31 Intel Corporation Method for efficient memory use
US20050117639A1 (en) 2003-10-24 2005-06-02 Turaga Deepak S. Optimal spatio-temporal transformations for reduction of quantization noise propagation effects
US8488668B2 (en) * 2007-06-15 2013-07-16 Qualcomm Incorporated Adaptive coefficient scanning for video coding
KR20120118782A (ko) 2011-04-19 2012-10-29 삼성전자주식회사 적응적 필터링을 이용한 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
EP3306937A1 (en) * 2016-10-05 2018-04-11 Thomson Licensing Method and apparatus for encoding and decoding a video

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101779464A (zh) * 2007-06-08 2010-07-14 汤姆森特许公司 多格点基于稀疏性滤波基础上环内去伪像滤波方法和装置
CN102986216A (zh) * 2010-07-09 2013-03-20 高通股份有限公司 基于大小及帧内模式或基于边缘检测的用于帧内块的自适应频率变换
US20160134892A1 (en) * 2013-06-14 2016-05-12 Samsung Electronics Co., Ltd. Signal transforming method and device
KR20160035317A (ko) * 2014-09-23 2016-03-31 세종대학교산학협력단 통합 코덱용 이산 코사인 변환 장치 및 그 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MEHER PRAMOD KUMAR ET AL: "Efficient integer DCT architectures for HEVC", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116362944A (zh) * 2023-05-31 2023-06-30 四川三思德科技有限公司 基于差异性的抗飞防作业干扰处理方法、装置及介质
CN116362944B (zh) * 2023-05-31 2023-07-28 四川三思德科技有限公司 基于差异性的抗飞防作业干扰处理方法、装置及介质

Also Published As

Publication number Publication date
JP7283389B2 (ja) 2023-05-30
EP3716629A4 (en) 2020-10-07
KR20200092314A (ko) 2020-08-03
CN111357293B (zh) 2023-04-14
WO2019102889A1 (ja) 2019-05-31
CA3082756A1 (en) 2019-05-31
EP3716629A1 (en) 2020-09-30
JP2023103422A (ja) 2023-07-26
RU2020115837A3 (zh) 2022-04-14
SG11202003007UA (en) 2020-04-29
AU2018371372A1 (en) 2020-06-04
ZA202002152B (en) 2021-05-26
US11343538B2 (en) 2022-05-24
AU2018371372B2 (en) 2022-11-24
BR112020009749A2 (pt) 2020-11-03
JPWO2019102889A1 (ja) 2020-11-19
US20200280740A1 (en) 2020-09-03
RU2020115837A (ru) 2021-11-15
MX2020005236A (es) 2020-08-24

Similar Documents

Publication Publication Date Title
CN111357293B (zh) 图像处理装置和方法
CN111373757B (zh) 图像处理设备和方法
EP2979452B1 (en) Disabling sign data hiding in video coding
US20180199072A1 (en) Multi-type-tree framework for video coding
EP2595385A1 (en) Image encoding method and image decoding method
KR20160075556A (ko) 적응적 인터-컬러 컴포넌트 잔차 예측
CN111937398B (zh) 图像处理装置和方法
CN112352428A (zh) 图像处理装置和方法
WO2020241858A1 (ja) 画像復号装置
KR20230035009A (ko) 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
JPWO2020241858A5 (zh)
CN114731443A (zh) 图像处理装置和方法
CN113940072A (zh) 图像处理装置和方法
KR20230174182A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN114762327A (zh) 图像处理装置和方法
JP2022028089A (ja) 画像符号化装置、画像符号化方法、画像復号装置、および画像復号方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40030355

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant