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

图像处理装置和方法 Download PDF

Info

Publication number
CN111937398B
CN111937398B CN201980021443.XA CN201980021443A CN111937398B CN 111937398 B CN111937398 B CN 111937398B CN 201980021443 A CN201980021443 A CN 201980021443A CN 111937398 B CN111937398 B CN 111937398B
Authority
CN
China
Prior art keywords
matrix
transform
transformation
section
transformation matrix
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.)
Active
Application number
CN201980021443.XA
Other languages
English (en)
Other versions
CN111937398A (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 CN111937398A publication Critical patent/CN111937398A/zh
Application granted granted Critical
Publication of CN111937398B publication Critical patent/CN111937398B/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
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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/124Quantisation
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree 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)

Abstract

本公开内容涉及使得可以抑制正交变换和逆正交变换所需的存储器容量的增加的图像处理装置和图像处理方法。使用构成具有第一尺寸的变换矩阵的一部分的部分矩阵来导出具有小于第一尺寸的第二尺寸的变换矩阵,并且通过使用所导出的变换矩阵对通过对图像的预测残差进行正交变换获得的系数数据执行逆正交变换来生成图像。本技术能够应用于例如图像处理装置、图像编码装置或图像解码装置。

Description

图像处理装置和方法
技术领域
本公开内容涉及图像处理装置和方法,并且具体地,涉及能够抑制正交变换和逆正交变换所需的存储器容量的增加的图像处理装置和方法。
背景技术
传统上,公开了自适应一次变换(AMT:自适应多核变换),其中,针对与亮度有关的TU(变换单元)的每个单元中的水平方向上的每个一次变换PThor(也称为一次水平变换)和垂直方向上的每个一次变换PTver(也称为一次垂直变换),从多个不同的正交变换中自适应地选择一次变换(例如,参见非专利文献1)。
在非专利文献1中,一次变换的候选包括五个一维正交变换,包括DCT-II、DST-VII、DCT-VIII、DST-I和DST-VII。还提出了:还添加包括DST-IV和IDT(恒等变换:一维变换跳过)的两个一维正交变换,并且将总共七个一维正交变换设定为一次变换的候选(例如,参见非专利文献2)。
引用列表
专利文献
非专利文献1:
Jianle Chen,Elena Alshina,Gary J.Sullivan,Jens-Rainer,Jill Boyce,"Algorithm Description of Joint Exploration Test Model 4",JVET-G1001_v1,JointVideo Exploration Team(JVET)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 117th Meeting:Torino,IT,13-21 July 2017
非专利文献2:
V.Lorcy,P.Philippe,"Proposed improvements to the Adaptive multipleCore transform",JVET-C0022,Joint Video Exploration Team(JVET)of ITU-T SG 16WP 3 and ISO/IEC JTC 1/SC 29/WG 11 3rd Meeting:Geneva,CH,26 May-1 June 2016
发明内容
技术问题
然而,在所述方法的情况下,保存一次变换的所有变换矩阵所需的LUT(查找表)的尺寸可能增加。也就是说,考虑到一次变换的硬件实现方式,保存变换矩阵的系数所需的存储器尺寸可能增加。
鉴于上述情况做出了本公开内容,并且本公开内容可以抑制正交变换和逆正交变换所需的存储器容量的增加。
问题的解决方案
本技术的一方面提供了一种图像处理装置,该图像处理装置包括:解码部,该解码部对比特流进行解码以生成其中图像的预测残差被正交变换的系数数据;导出部,该导出部从作为具有第一尺寸的第一变换矩阵的一部分的子矩阵导出具有第二尺寸的第二变换矩阵,第二尺寸是比第一尺寸小的尺寸;以及逆正交变换部,该逆正交变换部使用由导出部导出的第二变换矩阵,对由解码部生成的系数数据应用逆正交变换。
该导出部导出通过对第一变换矩阵的矩阵元素进行采样获得的矩阵作为子矩阵。
本技术的一方面提供了一种图像处理方法,该图像处理方法包括:对比特流进行解码以生成其中图像的预测残差被正交变换的系数数据;从作为具有第一尺寸的第一变换矩阵的一部分的子矩阵导出具有第二尺寸的第二变换矩阵,第二尺寸是比第一尺寸小的尺寸;以及使用所导出的第二变换矩阵来对所生成的系数数据应用逆正交变换。
本技术的一方面提供了一种图像处理装置,该图像处理装置包括:导出部,该导出部从作为具有第一尺寸的第一变换矩阵的一部分的子矩阵导出具有第二尺寸的第二变换矩阵,第二尺寸是比第一尺寸小的尺寸;正交变换部,该正交变换部使用由导出部导出的第二变换矩阵,对图像的预测残差进行正交变换并且生成系数数据;以及编码部,该编码部对由正交变换部生成的系数数据进行编码,以生成比特流。
该导出部导出通过对第一变换矩阵的矩阵元素进行采样获得的矩阵作为子矩阵。
本技术的一方面提供了一种图像处理方法,该图像处理方法包括:从作为具有第一尺寸的第一变换矩阵的一部分的子矩阵导出具有第二尺寸的第二变换矩阵,第二尺寸是比第一尺寸小的尺寸;使用导出的第二变换矩阵对图像的预测残差进行正交变换并且生成系数数据;以及对所生成的系数数据进行编码以生成比特流。
本发明的有益效果
根据本公开内容,可以对图像进行处理。特别地,可以抑制正交变换和逆正交变换所需的存储器容量的增加。注意,上述有益效果不一定是限制性的,并且除了上述有益效果之外或者代替上述有益效果,还可以获得本说明书中示出的任何有益效果或者可以从本说明书理解的其他有益效果。
附图说明
[图1]图1是示出变换集与要选择的正交变换之间的对应关系的图。
[图2]图2是示出正交变换的类型与要使用的函数之间的对应关系的图。
[图3]图3是示出变换集与预测模式之间的对应关系的图。
[图4]图4是示出存储在LUT中的正交变换的类型的示例的图。
[图5]图5是示出用于以HEVC保存变换矩阵所需的LUT尺寸的示例的图。
[图6]图6是示出用于保存变换矩阵所需的LUT尺寸的示例的图。
[图7]图7是示出正交变换的基函数被缩放并且近似为整数的示例的图。
[图8]图8是描述变换矩阵之间的相似性的示例的图。
[图9]图9是描述变换矩阵之间的相似性的示例的图。
[图10]图10是示出变换矩阵的基向量之间的相似性的具体示例。
[图11]图11是示出变换矩阵的基向量之间的相似性的具体示例。
[图12]图12是示出变换矩阵的基向量之间的相似性的具体示例。
[图13]图13是示出从基本变换矩阵导出的变换矩阵的示例的图。
[图14]图14是示出从基本变换矩阵导出的变换矩阵的示例的图。
[图15]图15是示出从基本变换矩阵导出的变换矩阵的示例的图。
[图16]图16是示出用于基本变换矩阵的操作和导出公式的概述的图。
[图17]图17是示出用于基本变换矩阵的操作和导出公式的概述的图。
[图18]图18是示出从基本变换矩阵导出的变换矩阵的具体示例的图。
[图19]图19是示出从基本变换矩阵导出的变换矩阵的具体示例的图。
[图20]图20是示出从基本变换矩阵导出的变换矩阵的具体示例的图。
[图21]图21是示出从基本变换矩阵导出的变换矩阵的具体示例的图。
[图22]图22是示出变换矩阵导出部的主要配置示例的框图。
[图23]图23是示出与变换类型相对应的变换矩阵的导出方法的概述的图。
[图24]图24是示出变换矩阵导出处理的流程的示例的流程图。
[图25]图25是示出用于保存变换矩阵所需的LUT尺寸的示例的图。
[图26]图26是示出共享矩阵计算的示例的图。
[图27]图27是示出图像编码装置的主要配置示例的框图。
[图28]图28是示出正交变换部的主要配置示例的框图。
[图29]图29是描述图像编码处理的流程的示例的流程图。
[图30]图30是描述正交变换处理的流程的示例的流程图。
[图31]图31是示出图像解码装置的主要配置示例的框图。
[图32]图32是示出逆正交变换部的主要配置示例的框图。
[图33]图33是描述图像解码处理的流程的示例的流程图。
[图34]图34是描述逆正交变换处理的流程的示例的流程图。
[图35]图35是示出一次变换部的主要配置示例的框图。
[图36]图36是示出一次水平变换部的主要配置示例的框图。
[图37]图37是示出一次垂直变换部的主要配置示例的框图。
[图38]图38是描述一次变换处理的流程的示例的流程图。
[图39]图39是示出逆一次变换部的主要配置示例的框图。
[图40]图40是示出逆一次垂直变换部的主要配置示例的框图。
[图41]图41是示出逆一次水平变换部的主要配置示例的框图。
[图42]图42是描述逆一次变换处理的流程的示例的流程图。
[图43]图43是示出用于基本变换矩阵的操作和导出公式的概述的图。
[图44]图44是示出与变换类型标识符相对应的变换矩阵的导出方法的示例的图。
[图45]图45是示出变换矩阵导出装置的主要配置示例的框图。
[图46]图46是描述变换矩阵导出处理的流程的示例的流程图。
[图47]图47是描述子矩阵导出处理的流程的示例的流程图。
[图48]图48是描述子矩阵操作处理的流程的示例的流程图。
[图49]图49是描述在变换类型是DCT2的情况下变换矩阵导出的情况的示例的图。
[图50]图50是描述在变换类型是DCT4的情况下变换矩阵导出的情况的示例的图。
[图51]图51是描述在变换类型是FlipDCT4的情况下变换矩阵导出的情况的示例的图。
[图52]图52是描述在变换类型是DST4的情况下变换矩阵导出的情况的示例的图。
[图53]图53是描述在变换类型是DST2的情况下变换矩阵导出的情况的示例的图。
[图54]图54是描述在变换类型是DST4的情况下变换矩阵导出的情况的另一示例的图。
[图55]图55是示出计算机的主要配置示例的框图。
具体实施方式
在下文中,将描述用于执行本公开内容的模式(在下文中被称为实施方式)。注意,将按照以下顺序描述实施方式。
1.支持技术内容和技术术语的文献等
2.自适应一次变换
3.构思的观点
4.构思
5.变换矩阵导出部
6.有益效果
7.处理的共享和实现方式成本
8.编码和正交变换中的实施方式
9.解码和逆正交变换中的实施方式
10.一次变换中的实施方式
11.逆一次变换中的实施方式
12.变换矩阵的导出
13.注释
<1.支持技术内容和技术术语的文献等>
本技术公开的范围不仅包括实施方式中描述的内容,而且还包括在申请时已知公开的以下几个非专利文献中描述的内容。
非专利文献1:(如上所述)
非专利文献3:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union),“Advanced video coding for genericaudiovisual services”,H.264,04/2017
非专利文献4:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union),“High efficiency video coding”,H.265,12/2016
也就是说,上述几个非专利文献中描述的内容也用作确定支持要求的基础。例如,即使在实施方式中没有直接描述非专利文献4中描述的四叉树块结构或非专利文献1中描述的QTBT(四叉树加二叉树)块结构的情况下,四叉树块结构和QTBT块结构也在本技术的公开范围内,并且满足权利要求的支持要求。此外,即使在实施方式中没有直接描述例如诸如解析(Parsing)、语法(Syntax)和语义(Semantics)的技术术语的情况下,这些技术术语也类似地在本技术的公开范围内,并且满足权利要求的支持要求。
此外,在本说明书中,除非另有说明,否则用于描述图像(图片)的部分区域或处理部分的“块”(不是指示处理部的块)指示图片中的任何部分区域,并且“块”的大小、形状、特性等不受限制。例如,“块”包括非专利文献1、非专利文献3和非专利文献4中所描述的任何部分区域(处理单元),例如TB(变换块)、TU(变换单元)、PB(预测块)、PU(预测单元)、SCU(最小编码单元)、CU(编码单元)、LCU(最大编码单元)、CTB(编码树块)、CTU(编码树单元)、变换块、子块、宏块、图块和切片。
另外,本说明书中的编码不仅包括将图像变换为比特流的整个处理,而且包括该处理的一部分。例如,该编码不仅包括包含预测处理、正交变换、量化、算术编码等的处理,而且还包括整体上表示量化和算术编码的处理、包含预测处理、量化和算术编码的处理等。类似地,解码不仅包括将比特流转换为图像的整个处理,而且还包括该处理的一部分。例如,解码不仅包括包含逆算术解码、逆量化、逆正交变换、预测处理等的处理,而且还包括包含逆算术解码和逆量化的处理、包含逆算术编码、逆量化和预测处理的处理等。
<2.自适应一次变换>
在非专利文献1中描述的测试模型(JEM4(联合探索测试模型4))中,公开了自适应一次变换(AMT(自适应多核变换)),其中,对于亮度的变换块,针对水平方向上的每个一次变换PThor(也称为一次水平变换)和垂直方向上的每个一次变换PTver(也称为一次垂直变换),从多个不同的一维正交变换中自适应地选择一次变换。
具体地,例如如图1的表(LUT_TrSetToTrTypeIdx)中所示,对于亮度的变换块,在指示是否执行自适应一次变换的自适应一次变换标志apt_flag为0(假)的情况下,基于模式信息,将DCT(离散余弦变换)-II或DST(离散正弦变换)-VII唯一地确定(TrSetIdx=4)为一次变换。
如图1所示的表中所示,在自适应一次变换标志apt_flag是1(真)并且包括要处理的亮度的变换块的当前CU(编码单元)是帧内CU的情况下,从图1所示的三个变换集TrSet(TrSetIdx=0、1、2)中选择包括正交变换作为水平方向(x方向)和垂直方向(y方向)中的每个方向上的一次变换的候选的变换集TrSet。注意,图1中所示的DST-VII、DCT-VIII等指示正交变换的类型,并且在每个类型中使用如图2的表中所示的函数。
基于图3所示的模式信息与变换集的对应表(对应表的帧内预测模式信息)唯一地确定变换集TrSet。例如,如下面的等式(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的对应表。帧内预测模式IntraMode是查找表LUT_IntraModeToTrSet[][]中的第一数组的引数(argument),并且{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)(即,一次水平变换集TraSetH为0)并且一次水平变换指定标志pt_hor_flag为0的情况下,通过参照图1的变换集定义表(LUT_TrSetToTrTypeIdx),等式(3)的变换类型标识符TrTypeIdxH的值为4,并且通过参照图2,与该变换类型标识符TrTypeIdxH的值对应的变换类型TrTypeH为DST-VII。也就是说,选择变换集标识符TrSetIdx为0的变换集的DST-VII作为一次水平变换PThor的变换类型。此外,在一次水平变换指定标志pt_hor_flag为1的情况下,选择DCT-VIII作为变换类型。注意,选择变换类型TrType包括使用变换类型标识符TrTypeIdx来选择由变换类型标识符TrTypeIdx指定的变换类型。
注意,基于下面的等式(5),从一次水平变换指定标志pt_hor_flag和一次垂直变换指定标志pt_ver_flag导出一次变换标识符pt_idx。即,一次变换标识符pt_idx的高1位与一次垂直变换指定标志的值对应,并且低1位与一次水平变换指定标志的值对应。
[数学式3]
pt_idx=(pt_ver_flag<<1)+pt_hor_flag…(5)
对所导出的一次变换标识符pt_idx的二进制串应用算术编码以生成比特串,并且从而执行编码。注意,在亮度变换块中用信号传送自适应一次变换标志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(Look UpTable:查找表)的尺寸如图5所示的表中的尺寸那样。即,LUT的尺寸总共约为1.3KB。另一方面,在非专利文献1中描述的方法的情况下,例如,在DCT2中,需要在LUT上保存针对2/4/8/16/32/64/128点的每个尺寸的变换矩阵。另外,在其他一维变换(DST7/DST1/DCT8)中,需要在LUT上保存针对4/8/16/32/64点的每个尺寸的变换矩阵。在这种情况下,假设变换矩阵的每个系数的位精度是10位,则用于保存一次变换的整个变换矩阵所需的LUT的尺寸如图6的A所示。即,在这种情况下,LUT的尺寸总共约为53KB。换言之,在这种情况下,LUT的尺寸与HEVC的情况相比增加了约50倍。
类似地,在非专利文献2中描述的方法的情况下,用于保存一次变换的所有变换矩阵所需的LUT的尺寸如图6的B中所示的表中的尺寸那样。即,在这种情况下,LUT的尺寸总共约为67KB。换言之,在这种情况下,LUT的尺寸与HEVC的情况相比增加了约60倍。
考虑到一次变换的硬件实现方式,LUT的尺寸反映在存储容量(存储器容量)上。即,在非专利文献1和非专利文献2中描述的方法的情况下,电路规模(用于保存变换矩阵的系数所需的存储器容量)可以增加到HEVC的情况的约50倍到60倍。
<3.构思的观点>
在非专利文献1或非专利文献2的情况下,通过将一维正交变换的基函数缩放2^(const.+log2(N)/2)并且计算整数近似来获得一维正交变换的变换矩阵,例如2^N-pt的DCT2/DST7,如图7所示。本公开内容着重于2^N-pt的正交变换的整数近似的变换矩阵的子矩阵与2^(N-1)-pt的正交变换的整数近似的正交变换的变换矩阵之间的相似性,以从大尺寸的变换矩阵导出小尺寸的变换矩阵,并且从而减小LUT尺寸。
变换矩阵的主要作用之一是将低阶(特别是0阶)频率分量的信号朝向DC分量的方向偏置,并且收集频率分量的方法是重要的特性。低阶(特别是0阶)基向量(行向量)的波形分量对于如何使频率分量偏置是重要的。即,从在基向量的波形分量中具有相似趋势的变换矩阵可以预期关于正交变换和逆正交变换的相似性能(偏置频率分量的方法是相似的)。
因此,将重点放在具有第一尺寸(2N)的变换矩阵的低阶(特别是0阶和1阶)基向量(行向量)的波形与具有第一尺寸1/2的第二尺寸(N)的变换矩阵的低阶(特别是0阶)波形的相似性上。
在下文中,波形的形状可以被称为平坦型、减小型、增加型、山型和点对称型。
平坦型是其中在频率分量中的值基本上均匀的波形类型。注意,在平坦型的情况下,只要值整体上基本均匀,波形不必严格平坦。即,值可能存在一些变化。换言之,不能被分类为其他四种类型的类型可以被设定为平坦型。
增加型是值从低频分量向高频分量趋向于增加的波形类型。注意,在增加型的情况下,只要该值整体上从低频侧向高频侧趋向于增加,则不需要波形从低频侧向高频侧严格地单调增加。
减小型是值从低频分量向高频分量趋向于减小的波形类型。注意,在减小型的情况下,只要该值整体上从低频侧向高频侧趋向于减小,则不需要波形从低频侧向高频侧严格地单调减小。
山型是趋向于在中间具有峰值(最大值)的波形类型。即,在山型的情况下,波形的值在低频分量侧朝向低频分量趋向于减小,并且该值在高频分量侧朝向高频分量趋向于减小。注意,在山型的情况下,只要波形整体上在中心附近具有峰值(最大值)并且该值在峰值的两侧沿离开峰值的方向趋向于减小,则该值不必在峰值的两侧沿离开峰值的方向单调减小。另外,峰值可以不由一个分量形成,并且例如,可以从多个分量中指定峰值的近似位置和值。另外,峰值的位置可以不是严格的中心。
点对称型是如下波形类型:趋向于具有从低频分量到中频分量取正值的波形和从中频分量到高频分量取相反符号的相同形状的波形,并且该值在中心附近趋向于零。注意,点对称型可以具有:从低区域到中间区域取负值的形状以及从中间区域到高区域取相反符号的相同形状的波形。
例如,图8示出了具有第一尺寸的变换矩阵C中的帧c0的低阶(特别是0阶)行向量的波形(元素值的趋势)以及具有第二尺寸的对应变换矩阵的低阶(特别是0阶)行向量的波形的示例。此外,图9示出了具有第一尺寸的变换矩阵C中的帧c1的低阶(特别是1阶)行向量的波形(元素值的趋势)以及具有第二尺寸的对应变换矩阵的低阶(特别是0阶)行向量的波形的示例。此外,将参照作为示出变换矩阵的基向量之间的相似性的具体示例的图10、图11和图12来描述图8和图9的内容。在图10至图12中,纵轴表示基向量,并且横轴表示基向量的元素。注意,尽管图10至图12是基于行来示出的,但是该描述可以类似地应用于其中附图是基于列来示出的情况。
在图8中,(a)示出了如下示例,在该示例中具有第一尺寸的变换矩阵的平坦型0阶行向量的波形(曲线fa1)中的低阶分量(帧lo)类似于具有第二尺寸的变换矩阵的平坦型0阶行向量的波形(曲线fa2)。在图8的(a)的情况下,具有第一尺寸的变换矩阵的变换类型为DCT2,并且具有第二尺寸的变换矩阵的变换类型为DCT2。因此,可以从包括具有第一尺寸的DCT2的变换矩阵的偶数阶行向量的偶数矩阵的低频分量导出具有第二尺寸的DCT2的类似变换矩阵。在这种情况下,图10的(a)是示出8-pt DCT2的基向量和4-pt DCT2的基向量类似的具体示例。更一般地,可以从包括平坦型的0阶行向量的变换类型的2N×2N变换矩阵导出包括平坦型的0阶行向量的变换类型的N×N变换矩阵。
在图8中,(b)示出了如下另一示例,在该示例中具有第一尺寸的变换矩阵的平坦型0阶行向量的波形(曲线fb1)中的低阶分量(帧lo)类似于具有第二尺寸的变换矩阵的平坦型0阶行向量的波形(曲线fb2)。在图8的(b)的情况下,具有第一尺寸的变换矩阵的变换类型为DCT1,并且具有第二尺寸的变换矩阵的变换类型为DCT5。DCT1的0阶行向量具有平坦型波形,其中最低阶元素和最高阶元素的值小于其他元素的值。另一方面,DCT5的0阶行向量具有平坦型波形,其中最低阶元素的值小于其他元素的值。因此,可以从包括具有第一尺寸的DCT1的变换矩阵的偶数阶行向量的偶数矩阵的低频分量导出具有第二尺寸的DCT5的类似变换矩阵。
在图8中,(c)示出了如下示例,在该示例中具有第一尺寸的变换矩阵的山型0阶行向量的波形(曲线fc1)中的低阶分量(帧lo)类似于具有第二尺寸的变换矩阵的增加型0阶行向量的波形(曲线fc2)。在图8的(c)的情况下,具有第一尺寸的变换矩阵的变换类型为DST1,并且具有第二尺寸的变换矩阵的变换类型为DST7。DST1的0阶行向量具有包括在中心处的峰值的双向对称波形。另一方面,DST7的0阶行向量具有值从低频侧到高频侧增加的波形类型。因此,可以从包括具有第一尺寸的DST1的变换矩阵的偶数阶行向量的偶数矩阵的低频分量导出具有第二尺寸的DST7的类似变换矩阵。在这种情况下,图11的(a)是示出8-ptDST1的基向量和4-pt DST7的基向量类似的具体示例。更一般地,可以从包括山型的0阶行向量的变换类型的2N×2N变换矩阵导出包括增加型的0阶行向量的变换类型的N×N变换矩阵。
在图8中,(d)示出了如下示例,在该示例中具有第一尺寸的变换矩阵的山型0阶行向量的波形(曲线fd1)中的高阶分量(帧hi)类似于具有第二尺寸的变换矩阵的减小型0阶行向量的波形(曲线fd2)。在图8的(d)的情况下,具有第一尺寸的变换矩阵的变换类型为DST1,并且具有第二尺寸的变换矩阵的变换类型为DCT8(或FlipDST7)。DST1的0阶行向量具有包括在中心处的峰值的双向对称波形。另一方面,DCT8的0阶行向量具有值从低频侧到高频侧减小的波形类型。因此,可以从包括具有第一尺寸的DST1的变换矩阵的偶数阶行向量的偶数矩阵的高频分量导出具有第二尺寸的DCT8(或FlipDST7)的类似变换矩阵。在这种情况下,图11的(b)是示出8-pt DST1的基向量和4-pt FlipDST7的基向量类似的具体示例。注意,通过对图11的(b)中的4-pt FlipDST7的偶数阶基向量的符号进行反转可以获得4-ptDCT8。更一般地,可以从包括山型的0阶行向量的变换类型的2N×2N变换矩阵导出包括减小型的0阶行向量的变换类型的N×N变换矩阵。
在图9中,(a)示出了如下示例,在该示例中具有第一尺寸的变换矩阵的从正减小到负的点对称型一阶行向量的波形(曲线fe1)中的低阶分量(帧lo)类似于具有第二尺寸的变换矩阵的减小型0阶行向量的波形(曲线fe2)。在图9的(a)的情况下,具有第一尺寸的变换矩阵的变换类型为DCT2,并且具有第二尺寸的变换矩阵的变换类型为DCT4。DCT2的一阶行向量具有点对称波形,该点对称波形在从低阶到中心的区域中从正衰减到零并且在从中心到高阶的区域中从零衰减到负。另一方面,DCT4的0阶行向量具有值从低频侧到高频侧减小的波形类型。因此,可以从包括具有第一尺寸的DCT2的变换矩阵的奇数阶行向量的奇数矩阵的低频分量导出具有第二尺寸的DCT4的类似变换矩阵。在这种情况下,图10的(b)是示出8-pt DCT2的基向量和4-pt DCT4的基向量类似的具体示例。更一般地,可以从包括从正减小到负的点对称型的一阶行向量的变换类型的2N×2N变换矩阵导出包括减小型的0阶行向量的变换类型的N×N变换矩阵。
在图9中,(b)示出了如下示例,在该示例中具有第一尺寸的变换矩阵的从正减小到负的点对称型一阶行向量的波形(曲线ff1)中的高阶分量(帧hi)类似于具有第二尺寸的变换矩阵的增加型0阶行向量的波形(曲线ff2)。在图9的(b)的情况下,具有第一尺寸的变换矩阵的变换类型为DCT2,并且具有第二尺寸的变换矩阵的变换类型为DST4。DCT2的一阶行向量具有点对称波形,该点对称波形在从低阶到中心的区域中从正衰减到零并且在从中心到高阶的区域中从零衰减到负。另一方面,DST4的0阶行向量具有值从低频侧到高频侧增加的波形类型。因此,可以通过对包括具有第一尺寸的DCT2的变换矩阵的奇数阶行向量的奇数矩阵的高频分量的符号进行反转来导出具有第二尺寸的DST4的类似变换矩阵。在这种情况下,图10的(c)是示出8-pt DCT2的基向量和4-pt DST4的基向量类似的具体示例。更一般地,可以从包括从正减小到负的点对称型的一阶行向量的变换类型的2N×2N变换矩阵导出包括增加型的0阶行向量的变换类型的N×N变换矩阵。
在图9中,(c)示出了如下示例,在该示例中具有第一尺寸的变换矩阵的从正减小到负的点对称型一阶行向量的波形(曲线fg1)中的低阶分量(帧lo)类似于具有第二尺寸的变换矩阵的山型0阶行向量的波形(曲线fg2)。在图9的(c)的情况下,具有第一尺寸的变换矩阵的变换类型为DST1,并且具有第二尺寸的变换矩阵的变换类型为DST5。DST1的一阶行向量具有点对称波形,在该点对称波形中,值在低阶与中心之间的正方向上形成山形并且在中心与高阶之间的负方向上形成山形。另一方面,DST5的0阶行向量具有包括在中心左侧处的峰值的山型波形。因此,可以从包括具有第一尺寸的DST1的变换矩阵的奇数阶行向量的奇数矩阵的低频分量导出具有第二尺寸的DST5的类似变换矩阵。在这种情况下,图12的(a)是示出8-pt DST1的基向量和4-pt DST5的基向量类似的具体示例。更一般地,可以从包括点对称的0阶行向量的变换类型的2N×2N变换矩阵导出包括山型的0阶行向量的变换类型的N×N变换矩阵,所述点对称的0阶行向量在低阶与中心之间的正方向上形成山形,并且在中心与高阶之间的负方向上形成山形。
在图9中,(d)示出了如下示例,在该示例中,具有第一尺寸的变换矩阵的从正减小到负的点对称型一阶行向量的波形(曲线fh1)中的高阶分量(帧hi)类似于具有第二尺寸的变换矩阵的山型0阶行向量的波形(曲线fh2)。在图9的(d)的情况下,具有第一尺寸的变换矩阵的变换类型为DST1,并且具有第二尺寸的变换矩阵的变换类型为DST6。DST1的一阶行向量具有点对称波形,在该点对称波形中,值在低阶与中心之间的正方向上形成山形并且在中心与高阶之间的负方向上形成山形。另一方面,DST6的0阶行向量具有包括在中心右侧处的峰值的山型波形。因此,可以通过对包括具有第一尺寸的DST1的变换矩阵的奇数阶行向量的奇数矩阵的低频分量的符号进行反转来导出具有第二尺寸的DST6的类似变换矩阵。在这种情况下,图12的(b)是示出8-pt DST1的基向量和4-pt DST6的基向量类似的具体示例。更一般地,可以从作为包括点对称0阶行向量的从正减小到负的点对称型的变换类型的2N×2N变换矩阵导出包括山型的0阶行向量的变换类型的N×N变换矩阵,所述点对称0阶行向量在低阶与中心之间的正方向上形成山形并且在中心与高阶之间的负方向上形成山形。
如上所述,将重点放在具有不同尺寸的变换矩阵之间的波形的相似性上,并且可以从包括具有第一尺寸(2N)的变换矩阵的{偶数、奇数}阶基向量的{低频、高频}分量的子矩阵导出具有第二尺寸(N)的变换矩阵,从而减少用于保存变换矩阵的存储容量(LUT)。
<4.构思>
图13是示出如下示例的图,在该示例中,将如图7所示的被缩放了2^(const.+log2(N))并近似为整数的2^N-pt DCT2的变换矩阵保存在查找表中,并且对通过读出并采样该变换矩阵而获得的子矩阵应用操作(例如翻转和符号反转),从而导出具有2^N的尺寸的一半的尺寸的2^(N-1)-pt{DCT2、DCT4、FlipDCT4、AltDST4、DST4}的变换矩阵。
子矩阵是包括作为导出变换矩阵的目标的基本变换矩阵的元素的一部分的矩阵。通常,子矩阵是包括通过对基本变换矩阵的元素进行采样而获得的元素的矩阵。通过采样获得的子矩阵的示例包括以下矩阵。
X矩阵(低阶):X矩阵的左半部分矩阵(也称为X矩阵(行方向低阶))或X矩阵的上半部分矩阵(也称为X矩阵(列方向低阶))。
X矩阵(高阶):X矩阵的右半部分矩阵(也称为X矩阵(行方向高阶))或X矩阵的下半部矩阵(也称为X矩阵(列方向高阶))。
偶数矩阵:包括X矩阵的偶数行(示例:0、2、4、6行等)的矩阵(也称为偶数行矩阵)或包括X矩阵的偶数列(示例:0、2、4、6列等)的矩阵(也称为偶数列矩阵)。
奇数矩阵:包括X矩阵的奇数行(示例:1、3、5、7行等)的矩阵(称为奇数行矩阵)或包括X矩阵的奇数列(示例:1、3、5、7列等)的矩阵(也称为奇数列矩阵)。应用于矩阵的元素的操作的示例包括元素的重新排列等。更具体地,例如,可以在预定方向上对矩阵的元素组的排列进行翻转(反转),或者可以对元素组进行转置以交换行和列。注意,转置等效于围绕连接矩阵的左上边缘和右下边缘的对角线翻转(反转)元素组。即,可以说转置是翻转的一部分。此外,也可以容易地对每个元素的符号进行反转(从正到负或从负到正)。注意,附图中使用的术语如下。
偶数符号反转:偶数阶行向量的符号被反转。也称为偶数行符号反转或偶数行符号反转。
奇数符号反转:奇数阶行向量的符号被反转。也称为奇数行符号反转或奇数行符号反转。
注意,反转每个元素的符号的操作还包括:用于反转偶数阶列向量的符号的偶数列符号反转(也称为偶数列符号反转)和用于反转奇数阶列向量的符号的奇数列符号反转(也称为奇数列符号反转)。
(a)2^N-pt DCT2→2^(N-1)-pt DCT2
例如,将通过对2^N-pt DCT2的偶数阶行向量进行采样获得的偶数矩阵(低阶)(=偶数矩阵的左半部分矩阵)设定为2^(N-1)-pt DCT2的变换矩阵。
(b)2^N-pt DCT2→2^(N-1)-pt DCT4
例如,将通过对2^N-pt DCT2的奇数阶行向量进行采样获得的奇数矩阵(低阶)(=奇数矩阵的左半部分矩阵)设定为2^(N-1)-pt DCT4的变换矩阵。
(c)2^N-pt DCT2→2^(N-1)-pt FlipDCT4
此外,对在(b)中获得的2^(N-1)-pt DCT4的变换矩阵进行翻转以获得2^(N-1)-ptFlipDCT4的变换矩阵。
(d)2^N-pt DCT2→2^(N-1)-pt DST4
此外,在(c)中获得的2^(N-1)-pt FlipDCT4的变换矩阵中对奇数阶行向量的符号进行反转(奇数符号反转),以获得2^(N-1)-pt DST4的变换矩阵。
(e)2^N-pt DCT2→2^(N-1)-pt AltDST4
例如,通过对2^N-pt DCT2的奇数阶行向量进行采样而获得的奇数矩阵(高阶)(=奇数矩阵的右半部分矩阵)对应于通过对2^(N-1)-pt DST4的偶数阶行向量的符号进行反转而获得的变换矩阵。该变换矩阵将被称为2^(N-1)-pt AltDST4。
(f)2^N-pt DCT2→2^(N-1)-pt DST4
在(e)中获得的2^(N-1)-pt AltDST4的变换矩阵中对偶数阶行向量的符号进行反转(偶数符号反转),以导出2^(N-1)-pt DST4的变换矩阵。
图14和图15是示出如下示例的图,在该示例中将如图7所示的被缩放了2^(const.+log2(N))并近似为整数的2^N-pt DST1的变换矩阵保存在查找表中,并且对通过读出并采样该变换矩阵而获得的子矩阵应用操作(例如翻转、转置和符号反转),从而导出具有2^N的尺寸的一半的尺寸的2^(N-1)-pt{DST7、FlipDST7、DST5、FlipDST5、AltDST6、DST6}的变换矩阵。
(a)2^N-pt DST1→2^(N-1)-pt DST7
例如,将通过对2^N-pt DST1的偶数阶行向量进行采样获得的偶数矩阵(低阶)(=偶数矩阵的左半部分矩阵)设定为2^(N-1)-pt DST7的变换矩阵。
(b)2^N-pt DST1→2^(N-1)-pt FlipDST7
例如,将通过对2^N-pt DST1的偶数阶行向量进行采样获得的偶数矩阵(高阶)(=偶数矩阵的右半部分矩阵)设定为2^(N-1)-pt FlipDST7的变换矩阵。
(c)2^N-pt DST1→2^(N-1)-pt DCT8
此外,对在(b)中获得的2^(N-1)-pt FlipDST7的变换矩阵应用奇数符号反转,以获得2^(N-1)-pt DCT8的变换矩阵。
(d)2^N-pt DST1→2^(N-1)-pt DST5
例如,将通过对2^N-pt DST1的奇数阶行向量进行采样获得的奇数矩阵(低阶)(=奇数矩阵的左半部分矩阵)设定为2^(N-1)-pt DST5的变换矩阵。
(e)2^N-pt DST1→2^(N-1)-pt FlipDST5
此外,对在(d)中获得的2^N-pt FlipDST5的变换矩阵应用奇数符号反转,以获得2^(N-1)-pt DST6的变换矩阵。
(f)2^N-pt DST1→2^(N-1)-pt AltDST6
例如,通过对2^N-pt DST1的奇数阶行向量进行采样而获得的奇数矩阵(高阶)(=奇数矩阵的右半部分矩阵)对应于通过对2^(N-1)-pt DST6的偶数阶行向量的符号进行反转而获得的变换矩阵。该变换矩阵将被称为2^(N-1)-pt AltDST6。
(g)2^N-pt DCT2→2^(N-1)-pt DST6
对在(f)中获得的2^(N-1)-pt AltDST6的变换矩阵应用偶数符号反转,以导出2^(N-1)-pt DST6的变换矩阵。
图16和图17示出了在从2^N-pt的基本变换矩阵导出每个2^(N-1)-pt的变换矩阵时应用于基本变换矩阵的操作的概述和对应导出公式的概述。例如,在图16的列表中排除项目名称栏从顶部起的第五栏的情况下,2^N-pt DCT2是基本变换矩阵,并且用于导出2^(N-1)-pt DCT4的变换矩阵的操作被标记为“X”。这种情况示出了:对基本变换矩阵应用用于提取奇数矩阵(低阶)的采样以导出2^(N-1)-pt DCT4。
此外,例如,在图17的列表中排除项目名称栏从顶部起的第二栏的情况下,2^N-ptDST1是基本变换矩阵,并且对基本变换矩阵应用用于提取偶数矩阵(低阶)的采样。此外,在水平方向上进一步执行翻转以导出作为2^(N-1)-pt DCT8兼容变换的2^(N-1)-ptFlipDST7。稍后将描述与这些栏相对应的导出过程(等式(A-1)至(A-9)和(B-1)至(B-9))的细节。
以这种方式,可以将翻转、转置和奇数/偶数符号反转(奇数行/偶数行符号反转、奇数列/偶数列符号反转)的组合应用于2^N-pt的变换矩阵中包括的子矩阵(偶数矩阵(低阶)、偶数矩阵(高阶)、奇数矩阵(低阶)、奇数矩阵(高阶)),以导出2^(N-1)-pt的变换矩阵。因此,可以共享2^N-pt的变换矩阵和2^(N-1)-pt的变换矩阵,并且可以减小LUT尺寸。此外,可以在2^N-pt的变换矩阵与2^(N-1)-pt的变换矩阵之间共享矩阵计算,并且可以缩小电路规模。
图18是用于描述从2N×2N变换矩阵C的偶数矩阵导出N×N变换矩阵T的方法的示例的图。图18示出了8-pt DCT2作为2N×2N变换矩阵的特定示例以用于描述。此处,将描述导出过程(等式(A-1)至(A-4))。
<等式(A-1)的描述>
这是将2N×2N变换矩阵C的偶数矩阵(低阶)设定为N×N变换矩阵T的示例。基于等式(A-1),将2N×2N变换矩阵C(示例:DCT2)的偶数矩阵(低阶)设定为N×N变换矩阵T(示例:DCT2)。换言之,将2N×2N变换矩阵C的偶数行矩阵(行方向低阶)设定为N×N变换矩阵T。此处,A[y,x]表示矩阵A的行y、列x的元素。
对于x=0…N-1,y=0…N-1,T[y,x]=C[2y,x] -(A-1)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定变换矩阵C的行2y、列x的元素。以这种方式,在图18的示例中,可以从2N-pt DCT2的变换矩阵导出N-pt DCT2的变换矩阵。因此,N-pt DCT2的变换矩阵不必被保存在LUT中。
<等式(A-2)的描述>
这是对2N×2N变换矩阵C的偶数矩阵(低阶)进行转置以导出N×N变换矩阵T的示例。基于等式(A-2),对2N×2N变换矩阵C(示例:DCT2)的偶数矩阵(低阶)进行转置并且将其设定为N×N变换矩阵T(示例:DCT3)。换言之,对2N×2N变换矩阵C的偶数行矩阵(行方向低阶)进行转置并且将其设定为N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=C[x,2y] -(A-2)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定变换矩阵C的行x、列2y的元素。以这种方式,在图18的示例中,可以从2N-pt DCT2的变换矩阵导出N-pt DCT3的变换矩阵。因此,N-pt DCT3的变换矩阵不必被保存在LUT中。
<等式(A-3)的描述>
这是将2N×2N变换矩阵C的偶数矩阵(高阶)设定为N×N变换矩阵T的示例。基于等式(A-3),将2N×2N变换矩阵C(示例:DCT2)的偶数矩阵(高阶)设定为N×N变换矩阵T(示例:AltDCT2)。为了方便起见,将具有与DCT2的变换矩阵中的奇数阶行向量的符号相反的符号的变换矩阵称为AltDCT2。换言之,将2N×2N变换矩阵C的偶数行矩阵(行方向高阶)设定为N×N变换矩阵T。
对于x=0…N-1-1,y=0…N-1,T[y,x]=C[2y,N+x] -(A-3)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定变换矩阵C的行2y、列(N+x)的元素。以这种方式,在图18的示例中,可以从2N-pt DCT2的变换矩阵导出N-pt AltDCT2的变换矩阵。因此,N-pt AltDCT2的变换矩阵不必被保存在LUT中。
<等式(A-4)的描述>
这是将奇数符号反转应用于2N×2N变换矩阵C的偶数矩阵(高阶)以导出N×N变换矩阵T的示例。基于等式(A-4),将2N×2N变换矩阵C(示例:DCT2)的偶数矩阵(低阶)中的奇数阶行向量的符号进行反转(奇数符号反转)以导出N×N变换矩阵T(示例:DCT2)。换言之,将奇数行符号反转应用于包括2N×2N变换矩阵C的偶数行矩阵(行方向低阶)的子矩阵,以导出N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=sign*C[2y,N+x]
sign=y%2==1?-1:1 -(A-4)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定通过将变换矩阵C的行2y、列x的元素乘以符号“sign”获得的值。此处,在变换矩阵C的奇数行向量(y%2==1)的情况下,符号“sign”的值为-1,并且在其他情况下值为1。以这种方式,在图18的示例中,可以从2N-pt DCT2的变换矩阵导出N-pt DCT2的变换矩阵。因此,N-pt DCT2的变换矩阵不必被保存在LUT中。
图19是用于描述从2N×2N变换矩阵C的奇数矩阵导出N×N变换矩阵T的方法的示例的图。图19示出了8-pt DCT2作为2N×2N变换矩阵的特定示例以用于描述。此处,将描述导出过程(等式(A-5)至(A-8)及(A-9))。
<等式(A-5)的描述>
这是将2N×2N变换矩阵C的奇数矩阵(低阶)设定为N×N变换矩阵T的示例。基于等式(A-5),将2N×2N变换矩阵C的奇数矩阵(低阶)(示例:DCT2)设定为N×N变换矩阵T(示例:DCT4)。换言之,将包括2N×2N变换矩阵C的奇数行矩阵(行方向低阶)的子矩阵设定为N×N变换矩阵T。
对于x=0…N-1,y=0…N=1,T[y,x]=C[2y+1,x] -(A-5)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定变换矩阵C的行(2y+1)、列x的元素。以这种方式,在图19的示例中,可以从2N-pt DCT2的变换矩阵导出N-pt DCT4的变换矩阵。因此,N-pt DCT4的变换矩阵不必被保存在LUT中。
<等式(A-6)的描述>
这是对2N×2N变换矩阵C的奇数矩阵(低阶)进行翻转以导出N×N变换矩阵T的示例。基于等式(A-6),对2N×2N变换矩阵C(示例:DCT2)的奇数矩阵(低阶)进行翻转以导出N×N变换矩阵T(示例:FlipDCT4)。换言之,在水平方向上将包括2N×2N变换矩阵C的奇数行矩阵(行方向低阶)的子矩阵进行翻转以导出N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=C[2y+1,2N-1-x] -(A-6)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定变换矩阵C的行(2y+1)、列(2N-1-x)的元素。以这种方式,在图19的示例中,可以从2N-pt DCT2的变换矩阵导出N-pt FlipDCT4的变换矩阵。因此,N-pt DCT4的变换矩阵不必被保存在LUT中。
<等式(A-7)的描述>
这是将2N×2N变换矩阵C的奇数矩阵(高阶)设定为N×N变换矩阵T的示例。基于等式(A-7),将2N×2N变换矩阵C(示例:DCT2)的奇数矩阵(高阶)设定为N×N变换矩阵T(示例:AltDST4)。为了方便起见,将具有与DST4的变换矩阵中的偶数阶行向量的符号相反的符号的变换矩阵称为AltDST4。换言之,将包括2N×2N变换矩阵C的奇数行矩阵(行方向高阶)的子矩阵设定为N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=C[2y+1,N+x] -(A-7)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定变换矩阵C的行(2y+1)、列(N+x)的元素。以这种方式,在图19的示例中,可以从2N-pt DCT2的变换矩阵导出N-pt AltDST4的变换矩阵。因此,N-pt AltDST4的变换矩阵不必被保存在LUT中。
<等式(A-8)的描述>
这是将偶数符号反转应用于2N×2N变换矩阵C的奇数矩阵(高阶)以导出N×N变换矩阵T的示例。基于等式(A-8),将2N×2N变换矩阵C(示例:DCT2)的奇数矩阵(高阶)中的偶数阶行向量的符号进行反转(偶数符号反转)以导出N×N变换矩阵T(示例:DST4)。换言之,将偶数行符号反转应用于包括2N×2N变换矩阵C的奇数行矩阵(行方向高阶)的子矩阵,以导出N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=sign*C[2y,N+x]
sign=y%2==0?-1:1 -(A-8)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定通过将变换矩阵C的行2y、列(N+x)的元素乘以符号“sign”获得的值。此处,在变换矩阵C的偶数阶行向量(y%2==0)的情况下符号“sign”的值为-1,并且在其他情况下值为1。以这种方式,在图19的示例中,可以从2N-pt DCT2的变换矩阵导出N-pt DST4的变换矩阵。因此,N-ptDST4的变换矩阵不必被保存在LUT中。
<等式(A-9)的描述>
这是对2N×2N变换矩阵C的奇数矩阵(低阶)进行翻转并且应用奇数符号反转以导出N×N变换矩阵T的示例。基于等式(A-9),对2N×2N变换矩阵C(示例:DCT2)的奇数矩阵(低阶)进行翻转,并且对子矩阵的奇数行向量的符号进行反转(奇数符号反转)以导出N×N变换矩阵T(示例:DST4)。换言之,对包括2N×2N变换矩阵C的奇数行矩阵(行方向低阶)的子矩阵进行翻转并且进行奇数行符号反转以导出N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=sign*C[2y+1,2N-1-x]
sign=y%2==1?-1:1 -(A-9)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定通过将变换矩阵C的行(2y+1)、列(2N-1+x)的元素乘以符号“sign”获得的值。此处,在变换矩阵C的奇数阶行向量(y%2==1)的情况下符号“sign”的值为-1,并且在其他情况下值为1。以这种方式,在图19的示例中,可以从2N-pt DCT2的变换矩阵导出N-pt DST4的变换矩阵。因此,N-pt DST4的变换矩阵不必被保存在LUT中。
图20是用于描述从2N×2N变换矩阵C的偶数矩阵导出N×N变换矩阵T的方法的另一示例的图。图20示出了8-pt DST1作为2N×2N变换矩阵的特定示例以用于描述。此处,将描述导出过程(等式(B-1)至(B-4))。
<等式(B-1)的描述>
这是将2N×2N变换矩阵C的偶数矩阵(低阶)设定为N×N变换矩阵T的示例。基于等式(B-1),将2N×2N变换矩阵C(示例:DST1)的偶数矩阵(低阶)设定为N×N变换矩阵T(示例:DST7)。换言之,将包括2N×2N变换矩阵的偶数行矩阵(行方向低阶)的子矩阵设定为N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=C[2y,x] -(B-1)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定变换矩阵C的行2y、列x的元素。以这种方式,在图20的示例中,可以从2N-pt DST1的变换矩阵导出N-pt DST7的变换矩阵。因此,N-pt DST7的变换矩阵不必被保存在LUT中。
<等式(B-2)的描述>
这是对2N×2N变换矩阵C的偶数矩阵(低阶)进行翻转以设定N×N变换矩阵T的示例。基于等式(B-2),对2N×2N变换矩阵C(示例:DST1)的偶数矩阵(低阶)进行翻转以导出N×N变换矩阵T(示例:FlipDST7)。换言之,在水平方向上将包括2N×2N变换矩阵C的偶数行矩阵(行方向低阶)的子矩阵进行翻转以导出N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=C[2y,2N-1-x] -(B-2)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定变换矩阵C的行(2y+1)、列(2N-1-x)的元素。以这种方式,在图20的示例中,可以从2N-pt DST1的变换矩阵导出N-pt FlipDST7的变换矩阵。因此,N-pt FlipDST7的变换矩阵不必被保存在LUT中。
<等式(B-3)的描述>
这是将2N×2N变换矩阵C的偶数矩阵(高阶)设定为N×N变换矩阵T的示例。基于等式(B-3),将2N×2N变换矩阵C(示例:DST1)的偶数矩阵(高阶)设定为N×N变换矩阵T(示例:FlipDST7)。换言之,将包括2N×2N变换矩阵C的偶数行矩阵(行方向高阶)的子矩阵设定为N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=C[2y,N+x] -(B-3)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定变换矩阵C的行(2y+1)、列(N+x)的元素。以这种方式,在图20的示例中,可以从2N-pt DST1的变换矩阵导出N-pt FlipDST7的变换矩阵。因此,N-pt FlipDST7的变换矩阵不必被保存在LUT中。另外,与等式(B-2)相比,可以在不进行翻转操作的情况下导出FlipDST7。
<等式(B-4)的描述>
这是将奇数符号反转应用于2N×2N变换矩阵C的偶数矩阵(高阶)以设定N×N变换矩阵T的示例。基于等式(B-4),将2N×2N变换矩阵C(示例:DST1)的偶数矩阵(高阶)中的奇数阶行向量的符号进行反转(奇数符号反转)以导出N×N变换矩阵T(示例:DCT8)。换言之,将奇数行符号反转应用于包括2N×2N变换矩阵C的偶数行矩阵(行方向高阶)的子矩阵,以导出N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=sign*C[2y+1,N+x]
sign=y%2==1?-1:1 -(B-4)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定通过将变换矩阵C的行(2y+1)、列(N+x)的元素乘以符号“sign”获得的值。此处,在变换矩阵C的奇数阶行向量(y%2==1)的情况下符号“sign”的值为-1,并且在其他情况下值为1。以这种方式,在图20的示例中,可以从2N-pt DST1的变换矩阵导出N-pt DCT8的变换矩阵。因此,N-pt DCT8的变换矩阵不必被保存在LUT中。
图21是用于描述从2N×2N变换矩阵C的奇数矩阵导出N×N变换矩阵T的方法的另一示例的图。图21示出了8-pt DST1作为2N×2N变换矩阵的特定示例以用于描述。此处,将描述导出过程(等式(B-5)至(B-8)及(B-9))。
<等式(B-5)的描述>
这是将2N×2N变换矩阵C的奇数矩阵(低阶)设定为N×N变换矩阵T的示例。基于等式(B-5),将2N×2N变换矩阵C的奇数矩阵(低阶)设定为N×N变换矩阵T(示例:DST5)。换言之,将包括2N×2N变换矩阵C的奇数行矩阵(行方向低阶)的子矩阵设定为N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=C[2y+1,x] -(B-5)
即,对于N×N变换矩阵T的行y、列x的元素(x=0…N-1,y=0…N-1),设定变换矩阵C的行(2y+1)、列x的元素。以这种方式,在该图的示例中,可以从2N-pt DST1的变换矩阵导出N-pt DST5的变换矩阵。因此,N-pt DST5的变换矩阵不必被保存在LUT中。
<等式(B-6)的描述>
这是对2N×2N变换矩阵C的奇数矩阵(低阶)进行翻转以设定N×N变换矩阵T的示例。基于等式(B-6),对2N×2N变换矩阵C(示例:DST1)的奇数矩阵(低阶)进行翻转以导出N×N变换矩阵T(示例:FlipDST5)。换言之,在水平方向上将包括2N×2N变换矩阵C的奇数行矩阵(行方向低阶)的子矩阵进行翻转以导出N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=C[2y+1,2N–1-x] -(B-6)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定变换矩阵C的行(2y+1)、列(2N-1-x)的元素。以这种方式,在该图的示例中,可以从2N-pt DST1的变换矩阵导出N-pt FlipDST5的变换矩阵。因此,N-pt FlipDST5的变换矩阵不必被保存在LUT中。
<等式(B-7)的描述>
这是将2N×2N变换矩阵C的奇数矩阵(高阶)设定为N×N变换矩阵T的示例。基于等式(B-7),将2N×2N变换矩阵C(示例:DST1)的奇数矩阵(高阶)设定为N×N变换矩阵T(示例:AltDST6)。为了方便起见,通过反转DST6的偶数阶行向量的符号而获得的变换矩阵将被称为AltDST6。换言之,将包括2N×2N变换矩阵C的奇数行矩阵(行方向高阶)的子矩阵设定为N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=C[2y+1,N+x] -(B-7)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定变换矩阵C的行(2y+1)、列(N+x)的元素。以这种方式,在该图的示例中,可以从2N-pt DST1的变换矩阵导出N-pt AltDST6的变换矩阵。因此,N-pt AltDST6的变换矩阵不必被保存在LUT中。
<等式(B-8)的描述>
这是将偶数符号反转应用于2N×2N变换矩阵C的奇数矩阵(高阶)以设定N×N变换矩阵T的示例。基于等式(B-8),将2N×2N变换矩阵C(示例:DST1)的奇数矩阵(高阶)中的偶数阶行向量的符号进行反转(偶数符号反转)以导出N×N变换矩阵T(示例:DST6)。换言之,将偶数行符号反转应用于包括2N×2N变换矩阵C的奇数行矩阵(行方向高阶)的子矩阵,以导出N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=sign*C[2y,N+x]
sign=y%2==0?-1:1 -(B-8)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定通过将变换矩阵C的行(2y+1)、列(N+x)的元素乘以符号“sign”获得的值。因此,在变换矩阵C的偶数阶行向量(y%2==0)的情况下符号“sign”的值为-1,并且在其他情况下值为1。以这种方式,在该图的示例中,可以从2N-pt DST1的变换矩阵导出2^(N-1)-pt DST6的变换矩阵。因此,N-pt DST6的变换矩阵不必被保存在LUT中。
<等式(B-9)的描述>
这是对2N×2N变换矩阵C的奇数矩阵(低阶)进行翻转并且应用奇数符号反转以导出N×N变换矩阵T的示例。基于等式(B-9),对2N×2N变换矩阵C(示例:DST1)的奇数矩阵(低阶)进行翻转,并且对子矩阵的奇数阶行向量的符号进行反转(奇数符号反转)以导出N×N变换矩阵T(示例:DST6)。换言之,对包括2N×2N变换矩阵C的奇数行矩阵(行方向低阶)的子矩阵进行翻转并且进行奇数行符号反转以导出N×N变换矩阵T。
对于x=0…N-1,y=0…N-1,T[y,x]=sign*C[2y+1,2N-1-x]
sign=y%2==1?-1:1 -(B-9)
即,对于N×N变换矩阵T的每行y、列x的元素(x=0…N-1,y=0…N-1),设定通过将变换矩阵C的行(2y+1)、列(2N-1+x)的元素乘以符号“sign”获得的值。此处,在变换矩阵C的奇数阶行向量(y%2==1)的情况下符号“sign”的值为-1,并且在其他情况下值为1。以这种方式,在该图的示例中,可以从2N-pt DST1的变换矩阵导出N-pt DST6的变换矩阵。因此,N-pt DST6的变换矩阵不必被保存在LUT中。
<补充>
在上述等式(A-1)至(A-9)以及等式(B-1)至(B-9)中,通过对2N×2N变换矩阵C进行采样获得的子矩阵B的示例包括:(a)在包括变换矩阵C的偶数阶行向量的偶数行矩阵的左半部分中的N×N子矩阵(偶数行矩阵(行方向低阶)),(b)在包括变换矩阵C的偶数阶行向量的偶数行矩阵的右半部分中的N×N子矩阵(偶数行矩阵(行方向高阶)),(c)在包括变换矩阵C的奇数阶行向量的奇数行矩阵的左半部分中的N×N子矩阵(奇数行矩阵(行方向低阶)),以及(d)在包括变换矩阵C的奇数阶行向量的奇数行矩阵的右半部分中的N×N子矩阵(奇数行矩阵(行方向高阶))。然而,示例不限于这些示例。
通过对2N×2N变换矩阵C进行采样获得的子矩阵B的其他示例包括:(e)在包括变换矩阵C的偶数阶列向量的偶数列矩阵的上半部分中的N×N子矩阵(偶数列矩阵(列方向低阶)),(f)在包括变换矩阵C的偶数阶列向量的偶数列矩阵的下半部分中的N×N子矩阵(偶数列矩阵(行方向低阶)),(g)在包括变换矩阵C的奇数阶列向量的奇数列矩阵的上半部分中的N×N子矩阵(奇数列矩阵(列方向低阶)),以及(h)在包括变换矩阵C的奇数阶列向量的奇数列矩阵的下半部分中的N×N子矩阵(奇数列矩阵(列方向高阶))。注意,可以使用下面的等式来提取(e)到(h)的子矩阵。
<偶数列矩阵(列方向低阶)的采样方法>
基于等式(C-1),对2N×2N矩阵C进行采样以获得包括偶数列矩阵(列方向低阶)的子矩阵B。
对于x=0…N-1,y=0…N-1,B[y,x]=C[y,2x] (C-1)
即,对于N×N矩阵B的每行y、列x的元素(x=0…N-1,y=0…N-1),设定矩阵C的行y、列2x的元素。
<偶数列矩阵(列方向高阶)的采样方法>
基于等式(C-2),对2N×2N矩阵C进行采样以获得包括偶数列矩阵(列方向高阶)的子矩阵B。
对于x=0…N-1,y=0…N-1,B[y,x]=C[N+y,2x] -(C-2)
即,对于N×N矩阵B的每行y、列x的元素(x=0…N-1,y=0…N-1),设定矩阵C的行(N+y)、列2x的元素。
<奇数列矩阵(列方向低阶)的采样方法>
基于等式(C-3),对2N×2N矩阵C进行采样以获得包括奇数列矩阵(列方向低阶)的子矩阵B。
对于x=0…N-1,y=0…N-1,B[y,x]=C[y,2x+1] -(C-3)
即,对于N×N矩阵B的每行y、列x的元素(x=0…N-1,y=0…N-1),设定矩阵C的行y、列(2x+1)的元素。
<奇数列矩阵(列方向高阶)的采样方法>
基于等式(C-4),对2N×2N矩阵C进行采样以获得包括奇数列矩阵(列方向高阶)的子矩阵B。
对于x=0…N-1,y=0…N-1,B[y,x]=C[N+y,2x+1] -(C-4)
即,对于N×N矩阵B的每行y、列x的元素(x=0…N-1,y=0…N-1),设定矩阵C的行(N+y)、列(2x+1)的元素。
<具体示例>
在下文中,将描述从8-pt DST3的整数近似变换矩阵C获得的4-pt的变换矩阵T的其他示例。例如,由以下二维阵列(等式(D-1))来提供8-pt DST3的整数近似变换矩阵。
C=
[[71,139,201,256,301,334,355,256],
[201,334,355,256,71,-139,-301,-256],
[301,334,71,-256,-355,-139,201,256],
[355,139,-301,-256,201,334,-71,-256],
[355,-139,-301,256,201,-334,-71,256],
[301,-334,71,256,-355,139,201,-256]
[201,-334,355,-256,71,139,-301,256],
[71,-139,201,-256,301,-334,355,-256]]
-(D-1)
<偶数列矩阵(列方向低阶)的示例>
基于等式(C-1)从变换矩阵C中取出偶数列矩阵(列方向低阶),并且获得4-ptDST4的整数近似变换矩阵T(等式(D-2))。
T=[[71,201,301,355],
[201,355,71,-301],
[301,71,-355,201],
[355,-301,201,-71]] -(D-2)
<奇数列矩阵(列方向低阶)的示例>
另外,基于等式(C-3)从变换矩阵C中取出奇数列矩阵(列方向低阶),并且获得4-pt AltFlipDCT3的整数近似变换矩阵T(等式(D-3))。为了方便起见,通过在水平方向上翻转DCT3的变换矩阵并反转奇数行的行向量的符号而获得的变换矩阵将被称为AltFlipDCT3。即,可以在水平方向上对AltFlipDCT3的变换矩阵进行翻转,并且可以应用奇数行符号反转来获得DCT3的变换矩阵(等式(D-3))。此外,可以对(D-3)进行转置以获得DCT2的变换矩阵。
T=[[139,256,334,256],
[334,256,-139,-256],
[334,-256,-139,256],
[139,-256,334,-256]] -(D-3)
T=[[256,334,256,139],
[256,139,-256,-334],
[256,-139,-256,334],
[256,-334,256,-139]] -(D-4)
类似地,除了子矩阵之外,可以对通过等式(C-2)获得的偶数列矩阵(列方向高阶)或通过等式(C-4)获得的奇数列矩阵(列方向高阶)适当地应用水平方向上的翻转、垂直方向上的翻转、转置和符号反转(偶数行符号反转、奇数行符号反转、偶数列符号反转和奇数列符号反转),从而获得DST4、DCT4、DCT3和DCT2的变换矩阵。
<5.变换矩阵导出部>
将描述从2N-pt的变换矩阵的子矩阵导出N-pt的变换矩阵的变换矩阵导出部001。图22示出了变换矩阵导出部001的框图,并且变换矩阵导出部001还包括变换矩阵LUT 002、采样部003、翻转部004、转置部005和符号反转部006。注意,尽管图22中未示出指示数据传送的箭头,但是变换矩阵导出部001能够在任何处理部(处理块)之间传送任何数据。
一旦指定了一维正交变换的变换类型标识符trTypeIdx和变换块的尺寸N,变换矩阵导出部001导出并输出与变换类型标识符和变换块尺寸相对应的变换矩阵Tx。采样部003对2N×2N基本变换矩阵进行采样,以导出子矩阵,该子矩阵是偶数矩阵(低阶)、偶数矩阵(高阶)、奇数矩阵(低阶)或奇数矩阵(高阶)。翻转部004输出例如在水平方向上对输入的变换矩阵进行了翻转的变换矩阵。转置部005输出输入的变换矩阵的转置矩阵。符号反转部006输出对输入的变换矩阵应用了偶数符号反转或奇数符号反转的变换矩阵。
一旦指定了一维正交变换的变换类型标识符trTypeIdx和变换块的尺寸N,变换矩阵LUT 002就选择并输出与变换类型标识符和变换块的尺寸相对应的变换矩阵。例如,变换矩阵LUT 002参考图23的表,并且选择与变换类型标识符trTypeIdx和尺寸N相对应的基本变换矩阵C。
变换矩阵导出部001在与变换类型标识符trTypeIdx相对应的变换类型的导出例程中执行与每个块相对应的处理。即,变换矩阵导出部001从变换矩阵LUT 002中读出基本变换矩阵,并且适当地使用图23的表所示的导出示例之一的方法,通过采样部003、翻转部004、转置部005以及符号反转部006,从基本变换矩阵导出要导出的变换矩阵Tx。然后,变换矩阵导出部001将变换矩阵Tx输出至变换矩阵导出部001的外部。在图23的表的示例中,可以选择DCT2、DST7、DCT8、DST4、DCT4或DST1作为一维正交变换。注意,表不限于上述表,并且可以选择DCT2、DST4和DCT4中的一个。替选地,可以从DCT2、DST1、DST7和DCT8中选择变换类型。变换类型的配置可以在可能的范围内改变。例如,可以用FlipDST7来代替DCT8,并且可以用FlipDCT4或AltDST4来代替DST4。
例如,在图23的表中的trTypeIdx==0(从顶部起第二栏)的情况下,变换矩阵导出部001选择2N×2N DCT2变换矩阵C2N,DCT2作为基本变换矩阵C。此外,变换矩阵导出部001基于等式(A-1)中所示的导出公式,通过采样部003将基本变换矩阵C的偶数矩阵(低阶)设定为要导出的变换矩阵Tx。
此外,在图23的表中的trTypeIdx==1(从顶部起第三栏)的情况下,变换矩阵导出部001选择2N×2N DST1变换矩阵C2N,DST1作为基本变换矩阵C。另外,变换矩阵导出部001基于等式(B-1)所示的导出公式,通过采样部003将基本变换矩阵C的偶数矩阵(低阶)设定为要导出的变换矩阵Tx。
此外,在图23的表中的trTypeIdx==2(从顶部起第四栏)的情况下,变换矩阵导出部001选择2N×2N DST1变换矩阵C2N,DST1作为基本变换矩阵C。另外,基于等式(B-4)中所示的导出公式,变换导出部001通过采样部003取出基本变换矩阵C的偶数矩阵(高阶),并且通过翻转部004在水平方向上对子矩阵进行翻转。变换导出部001还通过符号反转部006对子矩阵应用奇数符号反转,从而导出要导出的变换矩阵Tx。
此外,在图23的表中的trTypeIdx==3(从顶部起第五栏)的情况下,变换矩阵导出部001选择2N×2N DCT2变换矩阵C2N,DCT2作为基本变换矩阵C。另外,变换矩阵导出部001基于等式(A-8)中所示的导出公式,通过采样部003取出基本变换矩阵C的奇数矩阵(高阶),并且通过符号反转部006对子矩阵应用偶数符号反转,从而导出要导出的变换矩阵Tx。
此外,在图23的表中的trTypeIdx==4(从顶部起第六栏)的情况下,变换矩阵导出部001选择2N×2N DCT2变换矩阵C2N,DCT2作为基本变换矩阵C。另外,变换矩阵导出部001基于等式(A-5)中所示的导出公式,通过采样部003取出基本变换矩阵C的奇数矩阵(低阶),并且将子矩阵设定为要导出的变换矩阵Tx。
此外,在图23的表中的trTypeIdx==5(从顶部起第七栏)的情况下,变换矩阵导出部001选择N×N DST1变换矩阵CN,DST1作为基本变换矩阵C,并且将基本变换矩阵C设定为要导出的变换矩阵Tx。
以这种方式配置的变换矩阵导出部001能够实现图23的表中所示的表中的每个导出示例。
将参照图24描述变换矩阵导出部001的操作。在步骤S001中,变换矩阵导出部001从变换矩阵LUT 002中读出与变换类型trTypeIdx相对应的基本变换矩阵C。在步骤S002中,变换矩阵导出部001基于预定的导出方法,从图23的表中所示的基本变换矩阵C生成与变换类型标识符trTypeIdx相对应的变换类型的变换矩阵T。
<6.有益效果>
在图25A中,在例如变换类型包括六种类型{DCT2、DST7、DCT8、DST4、DCT4、DST1}的情况下,A是组合以下操作(采样+翻转、符号反转)以及从子矩阵生成整个矩阵以估计要保存在LUT中的变换矩阵的所需存储器尺寸的方法的示例。
-64-pt DCT2→通过翻转64-pt DCT2的左半部分矩阵并反转符号而生成。
-64-pt DST4→通过水平/垂直地翻转(旋转180度)64-pt DST4的上半部分矩阵而生成。
-64-pt DCT4→通过翻转64-pt DST4并反转符号而生成。
-64-pt DST7→通过将64-pt DST7的右上三角矩阵沿着对角线轴从右下到左下翻转+反转符号而生成。
-64-pt DCT8→通过翻转64-pt DST7并反转符号而生成。
-N-pt DST1→整个矩阵从N-pt DST1的左上子矩阵而生成。
-32/16/8/4-pt DCT2→从2N-pt DCT2生成(A-1)。
(通过对64-pt DCT2进行递归采样获得)
-32/16/8/4-pt DST4→从2N-pt DCT2生成(A-8)。
(通过对64-pt DCT2进行递归采样获得)
-32/16/8/4-pt DCT4→从2N-pt DCT2生成(A-5)。
(通过对64-pt DCT2进行递归采样获得)
-32/16/8/4-pt DST7→从2N-pt DST1生成(B-1)。
-32/16/8/4-pt DCT8→从2N-pt DST1生成(B-4)。
在这种情况下,与图25的B中所示的比较目标(将所有变换矩阵保存在LUT中的情况)相比,在图25的A中,LUT尺寸可以从40KB到7.9KB减小约80%。
<7.处理的共享和实现方式成本>
图26示出了如下示例,在该示例中重点放在本实施方式中描述的不同尺寸的变换矩阵之间的相似性上,并且可以在具有第二尺寸(N)的行向量(图26中的4-pt DST7和4-ptFlipDST7)和N个输入信号的矩阵计算中共享具有第一尺寸(2N)的行向量(图26中的8-ptDST1)和2N个输入信号的矩阵计算的一部分(低阶分量(lo)、高阶分量(hi))。
图26示出了8-pt DST1和八个输入信号的矩阵计算的信号流图(SFG)。在图26中,输入信号x0至x3和8-pt DST1的偶数阶行向量(低阶)的矩阵计算与4-pt DST7的矩阵计算相匹配,并且输入信号x4至x7和8-pt DST1偶数阶行向量(高阶)的矩阵计算与FlipDST7的矩阵计算相匹配。
即,不仅可以减小用于保存变换矩阵的LUT的尺寸,而且还可以在N×N变换矩阵的矩阵计算部分中共享2N×2N变换矩阵的矩阵计算部分的一部分。因此,可以减小电路规模。
<8.编码和正交变换中的实施方式>
<图像编码装置>
接下来,将描述用于导出变换矩阵的配置。图27是示出作为根据本技术的图像处理装置的模式的图像编码装置的配置的示例的框图。图27中所示的图像编码装置100是对运动图像的图像数据进行编码的装置。例如,图像编码装置100具有非专利文献1、非专利文献3或非专利文献4中描述的技术,并且图像编码装置100使用符合这些文献之一中描述的标准的方法来对运动图像的图像数据进行编码。
注意,图27示出了主处理部、数据流等,并且图27可能未示出所有部分。即,在图像编码装置100中,可以存在未被示为图27中的块的处理部,或者可以存在未由图27中的箭头等指示的处理流和数据流。这同样适用于描述图像编码装置100中的处理部等的其他附图。
如图27所示,图像编码装置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如上所述确定了编码参数,控制部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。计算部112如以下等式(6)所示从图像I中减去预测图像P,以导出预测残差D,并且将预测残差D提供给正交变换部113。
[数学式4]
D=I-P…(6)
<正交变换部>
正交变换部113接收从计算部112提供的预测残差D和从控制部101提供的变换信息Tinfo。正交变换部113基于变换信息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(DeBlocking Filter))、自适应偏移滤波器(SAO(SampleAdaptive Offset))和自适应环路滤波器(ALF(Adaptive Loop Filter))。注意,要应用的滤波器和应用滤波器的顺序是可选的,并且可以适当地选择要应用的滤波器和应用滤波器的顺序。
明显的是,可以自由地选择要由环路滤波部120执行的滤波处理,并且滤波处理不限于该示例。例如,环路滤波部120可以应用维纳(Wiener)滤波器等。
环路滤波部120将经滤波的局部解码图像Rlocal提供给帧存储器121。注意,例如,在将诸如滤波系数的关于滤波器的信息发送至解码侧的情况下,环路滤波部120将关于滤波器的信息提供给编码部115。
<帧存储器>
帧存储器121执行关于与图像有关的数据的存储的处理。例如,帧存储器121接收从计算部119提供的局部解码图像Rlocal或从环路滤波部120提供的经滤波的局部解码图像Rlocal,并且保存(存储)局部解码图像Rlocal。另外,帧存储器121使用局部解码图像Rlocal来重构每个图片部分的解码图像R,并且保存解码图像R(将解码图像R存储在帧存储器121的缓冲器中)。帧存储器121响应于来自预测部122的请求而将解码图像R(或解码图像R的一部分)提供给预测部122。
<预测部>
预测部122执行关于预测图像的生成的处理。例如,预测部122接收从控制部101提供的预测模式信息Pinfo、从重排缓冲器111提供的输入图像(原始图像)以及从帧存储器121读出的解码图像R(或解码图像R的一部分)。预测部122使用预测模式信息Pinfo和输入图像(原始图像)来执行诸如帧间预测和帧内预测的预测处理,并且将解码图像R作为参考图像来执行预测。预测部122基于预测结果执行运动补偿处理来生成预测图像P。预测部122将生成的预测图像P提供给计算部112和计算部119。另外,预测部122根据需要将关于在该处理中选择的预测模式——即最佳预测模式——的信息提供给编码部115。
<速率控制部>
速率控制部123执行关于速率控制的处理。例如,速率控制部123基于累积在累积缓冲器116中的编码数据的编码量,控制量化部114的量化操作的速率,以防止上溢或下溢。
在以这种方式配置的图像编码装置100中,正交变换部113用作导出部和正交变换部,以执行应用本技术的处理。另外,编码部115用作编码部,以执行应用本技术的处理。此外,逆正交变换部118用作逆正交变换部和导出部,以执行应用本技术的处理。因此,图像编码装置100可以抑制正交变换和逆正交变换所需的存储器容量的增加。
<正交变换部的细节>
图28是示出正交变换部113的主要配置示例的框图。如图28所示,正交变换部113包括开关151、一次变换部152和二次变换部153。
开关151接收预测残差D和与分量标识符compID相对应的变换跳过标志ts_flag[compID],并且在变换跳过标志ts_flag[compID]的值是NO_TS(=0)的情况下(在将不应用变换跳过的情况下),开关151将预测残差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将与二次变换标识符st_idx相对应的二次变换的处理应用于变换系数Coeff_P,并且导出二次变换之后的变换系数Coeff_S。
二次变换部153将二次变换系数Coeff_S作为变换系数Coeff输出至正交变换部113的外部(将变换系数Coeff提供给量化部114)。
此外,在二次变换标识符st_idx指示不应用二次变换(st_idx==0)的情况下,二次变换部153跳过二次变换,并且将通过一次变换获得的变换系数Coeff_P作为变换系数Coeff(通过二次变换获得的变换系数Coeff_S)输出至正交变换部113的外部(将变换系数Coeff提供给量化部114)。
在以这种方式配置的正交变换部113中,一次变换部152用作导出部和正交变换部,以执行根据本技术的处理。即,导出部使用第一变换矩阵导出第二变换矩阵,并且正交变换部使用由导出部导出的第二变换矩阵对预测残差应用一次变换。因此,可以抑制一次变换所需的存储器容量的增加。
注意,如上所述,一次变换部152执行一次变换中的一次水平变换和一次垂直变换。即,导出部导出用于水平方向上的一维正交变换的第二变换矩阵和用于垂直方向上的一维正交变换的第二变换矩阵,并且在一次变换中,正交变换部使用由导出部导出的用于水平方向上的一维正交变换的第二变换矩阵来执行水平方向上的一维正交变换,并且还使用由导出部导出的用于垂直方向上的一维正交变换的第二变换矩阵来执行垂直方向上的一维正交变换。因此,这可以抑制执行水平方向上的一维正交变换和垂直方向上的一维正交变换的一次变换所需的存储器容量的增加。
<图像编码处理的流程>
接下来,将描述由图像编码装置100执行的处理的流程。首先,将参照图29的流程图描述图像编码处理的流程的示例。
一旦开始图像编码处理,在步骤S101中,重排缓冲器111就将由控制部101控制和输入的运动图像数据的帧的顺序从显示顺序重排为编码顺序。
在步骤S102中,控制部101设定用于重排缓冲器111保存的输入图像的处理部(将输入图像划分成块)。
在步骤S103中,控制部101确定(设定)由重排缓冲器111保存的输入图像的编码参数。
在步骤S104中,预测部122执行预测处理以生成最佳预测模式的预测图像等。例如,在预测处理中,预测部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的处理中执行应用本技术的处理。因此,可以执行图像编码处理以抑制正交变换和逆正交变换所需的存储器容量的增加。
<正交变换处理的流程>
接下来,将参照图30的流程图描述在图29的步骤S106中执行的正交变换处理的流程的示例。
一旦开始正交变换处理,在步骤S131中,开关151确定变换跳过标志ts_flag是否是2D_TS(指示二维变换跳过)(例如,1(真))或者变换量化旁路标志transquant_bypass_flag是否是1(真)。在开关151确定变换跳过标志ts_flag是2D_TS(例如,1(真))或者变换量化旁路标志是1(真)的情况下,正交变换处理结束,并且处理返回至图29。在这种情况下,跳过正交变换处理(一次变换和二次变换),并且将输入的预测残差D设定为变换系数Coeff。
此外,在图30的步骤S131中,在开关151确定变换跳过标志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的处理中执行根据本技术的处理。因此,可以执行正交变换处理以抑制一次变换所需的存储器容量的增加。
<9.解码和逆正交变换中的实施方式>
<图像解码装置>
图31是示出作为根据本技术的图像处理装置的模式的图像解码装置的配置的示例的框图。图31所示的图像解码装置200是对其中如以AVC或HEVC编码图像与该图像的预测图像之间的预测残差的编码数据进行解码的装置。例如,图像解码装置200具有非专利文献1、非专利文献3或非专利文献4中描述的技术,并且图像解码装置200使用符合这些文献之一中描述的标准的方法来对其中对运动图像的图像数据进行编码的编码数据进行解码。例如,图像解码装置200对由上述图像编码装置100生成的编码数据(比特流)进行解码。
注意,图31示出了主处理部、数据流等,并且图31可能未示出所有部分。即,在图像解码装置200中,可以存在未被示为图31中的块的处理部,或者可以存在未由图31中的箭头等指示的处理流或数据流。这同样适用于描述图像解码装置200中的处理部等的其他附图。
在图31中,图像解码装置200包括累积缓冲器211、解码部212、逆量化部213、逆正交变换部214、计算部215、环路滤波部216、重排缓冲器217、帧存储器218以及预测部219。注意,预测部219包括未示出的帧内预测部和帧间预测部。图像解码装置200是对编码数据(比特流)进行解码以生成运动图像数据的装置。
<累积缓冲器>
累积缓冲器211获取输入到图像解码装置200的比特流,并且保存(存储)该比特流。累积缓冲器211在预定定时或者在例如满足预定条件的情况下将累积的比特流提供给解码部212。
<解码部>
解码部212执行关于图像的解码的处理。例如,解码部212接收从累积缓冲器211提供的比特流。解码部212根据语法表的定义,对来自比特串的语法元素的语法值应用可变长度解码,并且导出参数。
语法元素和从语法元素的语法值导出的参数例如包括诸如头部信息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(假)的情况下,不能使用编码工具。注意,对标志值的解释可以是相反的。
分量间预测启用标志(ccp_enabled_flag):指示是否可以使用分量间预测(CCP(分量间预测),也称为CC预测)的标志信息。例如,在标志信息为“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)是指示是否设定多类线性预测模式的标志信息。例如,在mclm_flag为“0”的情况下设定1类模式(单类模式)(例如,CCLMP),并且在mclm_flag为“1”的情况下设定2类模式(多类模式)(例如,MCLMP)。
色度样本位置类型标识符(chroma_sample_loc_type_idx)是用于识别色度分量的像素位置的类型(也被称为色度样本位置类型)的标识符。例如,在作为关于颜色格式的信息的色度阵列类型(ChromaArrayType)指示420格式的情况下,如下面的等式(7)那样分配色度样本位置类型标识符。
[数学式5]
chroma_sample_loc_type_idx==0:类型2
chroma_sample_loc_type_idx==1:类型3
chroma_sample_loc_type_idx==2:类型0
chroma_sample_loc_type_idx==3:类型1
…(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(或者可以是以二为底的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。逆正交变换部214基于变换信息Tinfo对变换系数Coeff_IQ应用逆正交变换处理,以导出预测残差D’。
注意,逆正交变换作为由正交变换部113执行的正交变换的相反处理而被执行。另外,该逆正交变换是与由逆正交变换部118执行的逆正交变换类似的处理。即,逆正交变换部118执行与逆正交变换部214类似的处理(逆正交变换)。
逆正交变换部214将导出的预测残差D’提供给计算部215。
<计算部>
计算部215执行与关于图像的信息的相加有关的处理。例如,计算部215接收从逆正交变换部214提供的预测残差D’和从预测部219提供的预测图像P。如下面的等式(8)所示,计算部215将预测残差D’和与预测残差D’相对应的预测图像P(预测信号)相加,以导出局部解码图像Rlocal。
[数学式6]
Rlocal=D’+P…(8)
计算部215将导出的局部解码图像Rlocal提供给环路滤波部216和帧存储器218。
<环路滤波部>
环路滤波部216执行关于环路滤波处理的处理。例如,环路滤波部216接收从计算部215提供的局部解码图像Rlocal以及从解码部212提供的滤波信息Finfo。注意,可以自由地选择要输入到环路滤波部216的信息,也可以输入除上述信息之外的信息。
环路滤波部216基于滤波信息Finfo,对局部解码图像Rlocal适当地应用滤波处理。
例如,如非专利文献1所述,环路滤波部216顺序地应用四个环路滤波器,包括双边滤波器、去块滤波器(DBF(DeBlocking Filter))、自适应偏移滤波器(SAO(SampleAdaptive Offset))和自适应环路滤波器(ALF(Adaptive Loop Filter))。注意,要应用的滤波器和应用滤波器的顺序是可选的,并且可以适当地选择要应用的滤波器和应用滤波器的顺序。
环路滤波部216执行与在编码侧(例如,图像编码装置100的环路滤波部120)执行的滤波处理相对应的滤波处理。明显的是,可以自由地选择要由环路滤波部216执行的滤波处理,并且滤波处理不限于该示例。例如,环路滤波部261可以应用维纳(Wiener)滤波器等。
环路滤波部216将经滤波的局部解码图像Rlocal提供给重排缓冲器217和帧存储器218。
<重排缓冲器>
重排缓冲器217接收从环路滤波部216提供的局部解码图像Rlocal,并且保存(存储)局部解码图像Rlocal。重排缓冲器217使用局部解码图像Rlocal来重构每个图片单元的解码图像R,并且保存解码图像R(将解码图像R存储在缓冲器中)。重排缓冲器217将所获得的解码图像R从解码的顺序重排为再现的顺序。重排缓冲器217将重排的解码图像R组作为运动图像数据输出至图像解码装置200的外部。
<帧存储器>
帧存储器218执行关于与图像有关的数据的存储的处理。例如,帧存储器218接收从计算部215提供的局部解码图像Rlocal,以重构每个图片单元的解码图像R。帧存储器218将解码图像R存储在帧存储器218的缓冲器中。
此外,帧存储器218接收从环路滤波部216提供的经环路滤波的局部解码图像Rlocal,以重构每个图片单位的解码图像R,并且将解码图像R存储在帧存储器218中的缓冲器中。帧存储器218将所存储的解码图像R(或解码图像R的一部分)作为参考图像适当地提供给预测部219。
注意,帧存储器218可以存储与解码图像的生成有关的头部信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、滤波信息Finfo等。
<预测部>
预测部219执行关于预测图像的生成的处理。例如,预测部219接收从解码部212提供的预测模式信息Pinfo。预测部219使用由预测模式信息Pinfo指定的预测方法进行预测并且导出预测图像P。在导出中,预测部219使用由预测模式信息Pinfo指定并存储在帧存储器218中的经预滤波或经滤波的解码图像R(或解码图像R的一部分)作为参考图像。预测部219将导出的预测图像P提供给计算部215。
在以这种方式配置的图像解码装置200中,逆正交变换部214用作导出部和逆正交变换部以执行根据本技术的处理。另外,解码部212用作解码部以执行根据本技术的处理。因此,图像解码装置200可以抑制逆正交变换所需的存储器容量的增加。
<逆正交变换部的细节>
图32是示出逆正交变换部214的主要配置示例的框图。如图32所示,逆正交变换部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。开关251将变换系数Coeff_IQ作为预测残差D'输出至逆正交变换部214的外部(将预测残差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将与二次变换标识符st_idx相对应的逆二次变换的处理应用于变换系数Coeff_IQ,并且导出逆二次变换之后的变换系数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(或逆一次垂直变换类型TrTypeV)和变换块的高度log2TBHSize定义,该逆一次水平变换通过逆一次水平变换类型标识符TrTypeIdxH(或逆一次水平变换类型TrTypeH)和变换块的宽度log2TBWSize定义,并且逆一次变换部253在逆一次变换之后导出变换系数Coeff_IP。逆一次垂直变换是垂直方向上的逆一维正交变换,并且逆一次水平变换是水平方向上的逆一维正交变换。
逆一次变换部253将通过逆一次变换获得的变换系数Coeff_IP作为预测残差D'输出至逆正交变换部214的外部(将预测残差D'提供给计算部215)。
在以这种方式配置的逆正交变换部214中,逆一次变换部253用作导出部和逆正交变换部,以执行根据本技术的处理。即,导出部使用第一变换矩阵以导出第二变换矩阵。逆正交变换部使用由导出部导出的第二变换矩阵,以对逆二次变换结果应用逆一次变换。因此,可以抑制逆一次变换所需的存储器容量的增加。
注意,如上所述,逆一次变换部253在逆一次变换中执行逆一次垂直变换和逆一次水平变换。即,导出部导出用于垂直方向上的逆一维正交变换的第二变换矩阵以及用于水平方向上的逆一维正交变换的第二变换矩阵。在逆一次变换中,逆正交变换部使用由导出部导出的用于垂直方向上的逆一维正交变换的第二变换矩阵,来执行垂直方向上的逆一维正交变换,并且还使用由导出部导出的用于水平方向上的逆一维正交变换的第二变换矩阵,来执行水平方向上的逆一维正交变换。因此,这可以抑制执行垂直方向上的逆一维正交变换和水平方向上的逆一维正交变换的一次变换所需的存储器容量的增加。
<图像解码处理的流程>
接下来,将描述由图像解码处理200执行的处理的流程。首先,将参照图33的流程图描述图像解码处理的流程的示例。
一旦开始图像解码处理,在步骤S201中,累积缓冲器211获取从图像解码装置200的外部提供的编码数据(比特流),并且保存(累积)编码数据。
在步骤S202中,解码部212对编码数据(比特流)进行解码,并且获得量化变换系数级别level。此外,在解码中,解码部212从编码数据(比特流)解析(分析并获取)各种编码参数。
在步骤S203中,逆量化部213对在步骤S202的处理中获得的量化变换系数级别level应用逆量化,该逆量化是在编码侧执行的量化的相反处理,并且逆量化部213获得变换系数Coeff_IQ。
在步骤S204中,逆正交变换部214对在步骤S203的处理中获得的变换系数Coeff_IQ应用逆正交变换处理,该逆正交变换处理是在编码侧执行的正交变换处理的相反处理,并且逆正交变换部214获得预测残差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的处理,则图像解码处理结束。
在以这种方式进行的图像解码处理中,在步骤S204的处理中执行根据本技术的处理。因此,可以执行图像解码处理以抑制逆正交变换所需的存储器容量的增加。
<逆正交变换的处理的流程>
接下来,将参照图34的流程图描述在图33的步骤S204中执行的逆正交变换处理的流程的示例。一旦开始逆正交变换处理,在步骤S231中,开关251确定变换跳过标志ts_flag是否为2D_TS(二维变换跳过的模式)(例如,1(真))或者变换量化旁路标志transquant_bypass_flag是否为1(真)。在开关251确定变换跳过标识符ts_idx为2D_TS或者变换量化旁路标志为1(真)的情况下,逆正交变换处理结束,并且处理返回至图17。在这种情况下,跳过逆正交变换处理(逆一次变换和逆二次变换),并且将变换系数Coeff_IQ设定为预测残差D'。
此外,在步骤S231中,在开关251确定变换跳过标识符ts_idx不是2D_TS(除了二维变换跳过之外的模式)(例如,0(假))并且变换量化旁路标志为0(假)的情况下,处理前进至步骤S232。在这种情况下,执行逆二次变换处理和逆一次变换处理。
在步骤S232中,逆二次变换部252基于二次变换标识符st_idx对变换系数Coeff_IQ应用逆二次变换处理,并且导出并输出变换系数Coeff_IS。
在步骤S233中,逆一次变换部253对变换系数Coeff_IS应用逆一次变换处理,以导出逆一次变换之后的变换系数Coeff_IP(预测残差D')。
一旦完成步骤S233的处理,则逆正交变换处理结束。
在如上所述的逆正交变换处理中,在步骤S233的处理中执行根据本技术的处理。因此,可以执行逆正交变换处理以抑制逆一次变换处理所需的存储器容量的增加。
<10.一次变换中的实施方式>
<一次变换部>
接下来,将描述用于导出的配置、处理等。图35是示出在这种情况下的一次变换部152的主要配置示例的框图。如图35所示,一次变换部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将由变换类型标识符TrTypeIdxH和变换块的尺寸定义的一次水平变换Phor应用于预测残差D,并且导出一次水平变换之后的变换系数Coeff_Phor。一次水平变换部312将通过一次水平变换获得的变换系数Coeff_Phor提供给一次垂直变换部313。
一次垂直变换部313接收通过一次水平变换获得的变换系数Coeff_Phor、一次垂直变换的变换类型标识符TrTypeIdxV、以及关于变换块的尺寸的信息(未示出)。关于变换块的尺寸的信息可以是指示变换块的水平方向或垂直方向上的大小(系数的数量)的自然数N,或者可以是指示变换块的高度的log2TBHSize(高度的对数)(N=1<<log2TBHSize)。一次垂直变换部313将由变换类型标识符TrTypeIdxV和变换块的尺寸定义的一次垂直变换Pver应用于通过一次水平变换获得的变换系数Coeff_Phor,并且导出一次垂直变换之后的变换系数Coeff_Pver。一次垂直变换部313将通过一次垂直变换获得的变换系数Coeff_Pver作为通过一次变换获得的变换系数Coeff_P输出至一次变换部152的外部(将通过一次变换获得的变换系数Coeff_P提供给二次变换部153)。
在以这种方式配置的一次变换部152中,一次水平变换部312和一次垂直变换部313中的每个用作导出部和正交变换部以执行根据本技术的处理。
即,一次水平变换部312用作导出部以导出用于水平方向上的一维正交变换的第二变换矩阵。此外,一次水平变换部312用作正交变换部,并且使用由导出部导出的用于水平方向上的一维正交变换的第二变换矩阵,来执行水平方向上的一维正交变换。因此,一次水平变换部312可以抑制水平方向上的一维正交变换所需的存储器容量的增加。
另外,一次垂直变换部313用作导出部以导出用于垂直方向上的一维正交变换的第二变换矩阵。此外,一次垂直变换部313用作正交变换部,并且使用由导出部导出的用于垂直方向上的一维正交变换的第二变换矩阵,以执行垂直方向上的一维正交变换。因此,一次垂直变换部313能够抑制垂直方向上的一维正交变换所需的存储器容量的增加。
<一次水平变换部>
图36是示出图35中的一次水平变换部312的主要配置示例的框图。如图36所示,一次水平变换部312包括:变换矩阵导出部321、矩阵计算部322、缩放部323、以及限幅部324。
变换矩阵导出部321接收一次水平变换的变换类型标识符TrTypeIdxH和关于变换块的尺寸的信息,以导出和与一次水平变换的变换类型标识符TrTypeIdxH相对应的变换块(用于水平方向上的一维正交变换的变换矩阵TH)相同尺寸的用于一次水平变换的变换矩阵TH。变换矩阵导出部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)。在下文中,二维矩阵(二维阵列)的行i、列j分量((i,j)分量)将被表示为X[i,j]。
[数学式8]
Y2[i,j]=Y1[i,j]>>SH…(10)
缩放部323将中间数据Y2提供给限幅部324。
限幅部324限幅中间数据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可以抑制水平方向上的一维正交变换所需的存储器容量的增加。
注意,图36中的变换矩阵导出部321对应于图22中的变换矩阵导出部001。
<一次垂直变换部>
图37是示出图35中的一次垂直变换部313的主要配置示例的框图。如图37所示,一次垂直变换部313包括:变换矩阵导出部351、矩阵计算部352、缩放部353、以及限幅部354。
变换矩阵导出部351接收一次垂直变换的变换类型标识符TrTypeIdxV和关于变换块的尺寸的信息,以导出与变换块(用于垂直方向上的一维正交变换的变换矩阵TV)相同尺寸并且与一次垂直变换的变换类型标识符TrTypeIdxV相对应的用于一次垂直变换的变换矩阵TV。变换矩阵导出部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)作为通过一次变换获得的变换系数Coeff_P输出至一次垂直变换部313的外部(将输出数据Xout提供给二次变换部153)。
在以这种方式配置的一次垂直变换部313中,变换矩阵导出部351用作导出部以执行根据本技术的处理。另外,矩阵计算部352用作正交变换部以执行根据本技术的处理。因此,一次垂直变换部313能够抑制垂直方向上的一维正交变换所需的存储器容量的增加。
注意,图37中的变换矩阵导出部351对应于图22中的变换矩阵导出部001。
<一次变换处理的流程>
接下来,将描述基于上述配置执行的处理的流程的示例等。将参照图38的流程图描述在这种情况下在图30的步骤S132中执行的一次变换处理的流程的示例。
一旦开始一次变换处理,如上所述在步骤S301中,一次变换部152的一次变换选择部311(图35)选择一次水平变换的变换类型标识符TrTypeIdxH(以及由该标识符指定的变换类型TrTypeH)和一次垂直变换的变换类型标识符TrTypeIdxV(以及由该标识符指定的变换类型TrTypeV)。
在步骤S302中,一次水平变换部312对预测残差D应用与在步骤S301中获得的一次水平变换的变换类型标识符TrTypeIdxH相对应的一次水平变换处理,并且导出一次水平变换之后的变换系数Coeff_Phor。
在步骤S303中,一次垂直变换部313对一次水平变换结果(通过一次水平变换获得的变换系数Coeff_Phor)应用与在步骤S301中获得的一次垂直变换的变换类型标识符TrTypeIdxV相对应的一次垂直变换处理,并且导出一次垂直变换之后的变换系数Coeff_Pver(通过一次变换获得的变换系数Coeff_P)。
一旦完成步骤S303的处理,则一次变换处理结束,并且处理返回至图30。
在如上所述的一次变换处理中,在步骤S302或步骤S303的处理中执行根据本技术的处理。因此,可以执行一次变换处理以抑制一次水平变换处理或一次垂直变换处理所需的存储器容量的增加。
<11.逆一次变换中的实施方式>
<逆一次变换部>
接下来,将描述在本实施方式的情况下的图像解码装置200的配置。图39是示出在这种情况下逆一次变换部253(图32)的主要配置示例的框图。如图39所示,逆一次变换部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将由变换类型标识符TrTypeIdxV和变换块的尺寸定义的逆一次垂直变换IPver应用于通过逆二次变换获得的变换系数Coeff_IS,并且导出逆一次垂直变换之后的变换系数Coeff_IPver。逆一次垂直变换部412将通过逆一次垂直变换获得的变换系数Coeff_IPver提供给逆一次水平变换部413。
逆一次水平变换部413接收通过逆一次垂直变换获得的变换系数Coeff_IPver、逆一次水平变换的变换类型标识符TrTypeIdxH、以及关于变换块的尺寸的信息。关于变换块的尺寸的信息可以是指示变换块的水平方向或垂直方向上的大小(系数的数量)的自然数N,或者可以是指示变换块的宽度的log2TBWSize(宽度的对数)(N=1<<log2TBWSize)。逆一次水平变换部413将由变换类型标识符TrTypeIdxH和变换块的尺寸定义的逆一次水平变换IPhor应用于从逆一次垂直变换部412提供的通过逆一次垂直变换获得的变换系数Coeff_IPver,并且导出逆一次水平变换之后的变换系数Coeff_IPhor(即,通过逆一次变换获得的变换系数Coeff_IP)。逆一次水平变换部413将通过逆一次水平变换获得的变换系数Coeff_IPhor作为预测残差D'输出至逆一次变换部253的外部(将预测残差D'提供给计算部215)。
在以这种方式配置的逆一次变换部253中,逆一次垂直变换部412和逆一次水平变换部413中的每个用作导出部和正交变换部以执行根据本技术的处理。
即,逆一次垂直变换部412用作导出部以导出用于垂直方向上的逆一维正交变换的第二变换矩阵。此外,逆一次垂直变换部412用作逆正交变换部,并且使用由导出部导出的用于垂直方向上的逆一维正交变换的第二变换矩阵,来执行垂直方向上的逆一维正交变换。因此,逆一次垂直变换部412能够抑制垂直方向上的逆一维正交变换所需的存储器容量的增加。
另外,逆一次水平变换部413用作导出部以导出用于水平方向上的逆一维正交变换的第二变换矩阵。此外,逆一次水平变换部413用作正交变换部,并且使用由导出部导出的用于水平方向上的逆一维正交变换的第二变换矩阵,来执行水平方向上的逆一维正交变换。因此,逆一次水平变换部413可以抑制水平方向上的逆一维正交变换所需的存储器容量的增加。
<逆一次垂直变换部>
图40是示出图39中的逆一次垂直变换部412的主要配置示例的框图。如图40所示,逆一次垂直变换部412包括:变换矩阵导出部421、矩阵计算部422、缩放部423、以及限幅部424。
变换矩阵导出部421接收逆一次垂直变换的变换类型标识符TrTypeIdxV和关于变换块的尺寸的信息,以导出与变换块(用于垂直方向上的逆一维正交变换的变换矩阵TV)相同尺寸并且与逆一次垂直变换的变换类型标识符TrTypeIdxV相对应的用于逆一次垂直变换的变换矩阵TV。变换矩阵导出部421将变换矩阵TV提供给矩阵计算部422。
矩阵计算部422使用从变换矩阵导出部421提供的变换矩阵TV,以对输入数据Xin(即,通过逆二次变换获得的变换系数Coeff_IS的变换块)应用垂直方向上的逆一维正交变换,并且获得中间数据Y1。可以通过如下面的等式(30)中的矩阵方程来表示计算。
[数学式13]
Y1=TV T×Xin…(30)
矩阵计算部422将中间数据Y1提供给缩放部423。
缩放部423以预定的移位量SIV对中间数据Y1的每行i、列j分量的系数Y1[i,j]进行缩放,以获得中间数据Y2。缩放可以表示为下面的等式(31)。
[数学式14]
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能够抑制垂直方向上的逆一维正交变换所需的存储器容量的增加。
注意,图40中的变换矩阵导出部421对应于图22中的变换矩阵导出部001。
<逆一次水平变换部>
图41是示出图39中的逆一次水平变换部413的主要配置示例的框图。如图41所示,逆一次水平变换部413包括:变换矩阵导出部451、矩阵计算部452、缩放部453、以及限幅部454。
变换矩阵导出部451接收逆一次水平变换的变换类型标识符TrTypeIdxH和关于变换块的尺寸的信息,以导出与变换块(用于水平方向上的逆一维正交变换的变换矩阵TH)相同尺寸并且与逆一次水平变换的变换类型标识符TrTypeIdxH相对应的用于逆一次水平变换的变换矩阵TH。变换矩阵导出部451将变换矩阵TH提供给矩阵计算部452。
矩阵计算部452使用从变换矩阵导出部451提供的变换矩阵TH,以对输入数据Xin(即,通过逆一次垂直变换获得的变换系数Coeff_IPver的变换块)应用水平方向上的逆一维正交变换,并且获得中间数据Y1。可以通过如下面的等式(32)中的矩阵方程来表示计算。
[数学式15]
Y1=Xin×TH…(32)
矩阵计算部452将中间数据Y1提供给缩放部453。
缩放部453以预定的移位量SIH对中间数据Y1的每行i、列j分量的系数Y1[i,j]进行缩放,以获得中间数据Y2。缩放可以表示为下面的等式(33)。
[数学式16]
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))作为预测残差D'输出至逆一次水平变换部413的外部(将预测残差D'提供给计算部215)。
在以这种方式配置的逆一次水平变换部413中,变换矩阵导出部451用作导出部以执行根据本技术的处理。另外,矩阵计算部452用作逆正交变换部以执行根据本技术的处理。因此,逆一次水平变换部413可以抑制水平方向上的逆一维正交变换所需的存储器容量的增加。
注意,图41中的变换矩阵导出部451对应于图22中的变换矩阵导出部001。
<逆一次变换处理的流程>
接下来,将描述基于图像解码装置200的配置执行的处理的流程的示例等。将参照图42的流程图描述在这种情况下在图34的步骤S233中执行的逆一次变换处理的流程的示例。
一旦开始逆一次变换处理,在步骤S401中,逆一次变换部253的逆一次变换选择部411(图39)执行逆一次变换选择处理并且选择逆一次垂直变换的变换类型标识符TrTypeIdxV(或变换类型TrTypeV)和逆一次水平变换的变换类型标识符TrTypeIdxH(或变换类型TrTypeH)。
在步骤S402中,逆一次垂直变换部412对通过逆二次变换获得的变换系数Coeff_IS应用与在步骤S401中获得的逆一次垂直变换的变换类型标识符TrTypeIdxV相对应的逆一次垂直变换处理,并且导出逆一次垂直变换之后的变换系数Coeff_IPver。
在步骤S403中,逆一次水平变换部413对通过逆一次垂直变换获得的变换系数Coeff_IPver应用与在步骤S401中获得的逆一次水平变换的变换类型标识符TrTypeIdxH相对应的逆一次水平变换处理,并且导出逆一次水平变换之后的变换系数Coeff_IPhor(即,逆一次变换之后的变换系数Coeff_IP(预测残差D'))。
一旦完成步骤S403的处理,则逆一次变换处理结束,并且处理返回至图34。
在如上所述的逆一次变换处理中,在步骤S402和步骤S403的处理中执行根据本技术的处理。因此,可以执行逆一次变换处理以抑制逆一次垂直变换处理和逆一次水平变换处理所需的存储器容量的增加。
<12.变换矩阵的导出>
<变换矩阵导出的另一示例>
虽然以上已经描述了以预备的变换矩阵的1/2缩放来导出变换矩阵的示例,但是待导出的变换矩阵的尺寸不限于该示例,只要该尺寸小于预备的变换矩阵即可。
例如,假定变换块的最大尺寸(例如,64)为maxTbS,可以在其中应用AMT的变换块的最大尺寸(例如,32)为maxTbAMT,并且一维变换(也称为1D变换)的尺寸nTbS为nTbS<=maxTbAMT<maxTbS。由变换类型trType指定的(nTbS)×(nTbS)变换矩阵与(maxTbS)×(maxTbS)变换矩阵的子矩阵的相似性(轴对称、转置或符号相反)可以用于从(maxTbS)×(maxTbS)变换矩阵导出(nTbS)×(nTbS)变换矩阵。
即,可以基于预定的采样参数对(maxTbS)×(maxTbS)变换矩阵进行采样以导出子矩阵,并且可以对子矩阵适当地应用诸如翻转和符号反转的操作,从而导出变换类型trType的(nTbS)×(nTbS)变换矩阵。
以这种方式,可以共享变换类型trType的(maxTbS)×(maxTbS)变换矩阵和(nTbS)×(nTbS)变换矩阵。因此,可以抑制变换矩阵的LUT尺寸的增加(可以减小LUT尺寸)。另外,可以共享变换类型trType的(maxTbS)×(maxTbS)变换矩阵的矩阵计算和(nTbS)×(nTbS)变换矩阵的矩阵计算。即,可以使用相同的计算电路来执行使用变换矩阵的矩阵计算。因此,可以抑制电路规模的增加(可以减小电路规模)。
<采样参数>
这里,将描述采样参数。采样参数可以是任何参数。例如,采样参数可以包括:指示采样的行间隔的采样间隔stepsize、指示采样的偏移(行位置)的行偏移offsetCol、以及指示采样的偏移(列位置)的列偏移offsetRow。即,采样间隔stepsize是指示每次在其之后进行采样的行数的参数。另外,行偏移offsetCol是指示开始采样的第一行的位置(行编号)的参数。另外,列偏移OffsetRow是指示开始采样的第一列的位置(列编号)的参数。注意,在本说明书中,变换矩阵的行编号和列编号从“0”(即,行0、列0)开始。参数的导出方法取决于待导出的变换矩阵的变换类型。
<每个变换类型的导出示例>
图43示出了导出每个变换类型的变换矩阵的示例。在图43所示的表中,针对待导出的变换矩阵的每个变换类型,在每行中示出了导出变换矩阵的操作和采样参数(采样的控制参数)。
例如,将描述其中待导出的变换类型(trType)为DCT2的行。在这种情况下,待导出的变换矩阵是变换类型为DCT2并且尺寸为nTbS×nTbS的变换矩阵nTbS-pt DCT2。另外,基本变换矩阵是变换类型为DCT2并且尺寸为maxTbS×maxTbS的变换矩阵maxTbS-pt DCT2。对于采样参数,采样间隔stepsize为“1<<(Log2(maxTbS)-Log2(nTbS))”,行偏移offsetCol为“0”,并且列偏移offsetRow为“0(低阶)”。对于这些操作,仅执行采样,并且跳过符号反转操作和翻转操作。这样,可以从基本变换矩阵maxTbS-pt DCT2导出变换矩阵nTbS-pt DCT2。
接下来,将描述其中待导出的变换类型(trType)为DCT4的行。在这种情况下,待导出的变换矩阵是变换类型为DCT4并且尺寸为nTbS×nTbS的变换矩阵nTbS-pt DCT4。另外,基本变换矩阵是变换类型为DCT2并且尺寸为maxTbS×maxTbS的变换矩阵maxTbS-pt DCT2。对于采样参数,采样间隔stepsize为“1<<(Log2(maxTbS)-Log2(nTbS))”,行偏移offsetCol为“stepsize>>1(即,stepsize的1/2)”,并且列偏移offsetRow为“0(低阶)”。对于这些操作,仅执行采样,并且跳过符号反转操作和翻转操作。这样,可以从基本变换矩阵maxTbS-ptDCT2导出变换矩阵nTbS-pt DCT4。
接下来,将描述其中待导出的变换类型(trType)为FlipDCT4的行。在这种情况下,待导出的变换矩阵是变换类型为FlipDCT4并且尺寸为nTbS×nTbS的变换矩阵nTbS-ptFlipDCT4。另外,基本变换矩阵是变换类型为DCT2并且尺寸为maxTbS×maxTbS的变换矩阵maxTbS-pt DCT2。对于采样参数,采样间隔stepsize为“1<<(Log2(maxTbS)-Log2(nTbS))”,行偏移offsetCol为“stepsize>>1(即,stepsize的1/2)”,并且列偏移offsetRow为“0(低阶)”。对于这些操作,在采样之后执行水平方向上的翻转操作(每行的翻转操作),并且跳过符号反转操作。这样,可以从基本变换矩阵maxTbS-pt DCT2导出等效于变换矩阵nTbS-ptDST4的DST4兼容变换矩阵nTbS-pt DCT4(然而,奇数基向量的符号是相反的)。
接下来,将描述其中待导出的变换类型(trType)为DST4的行(从顶部开始的第四行,不包括项目名称的行)。在这种情况下,待导出的变换矩阵是变换类型为DST4并且尺寸为nTbS×nTbS的变换矩阵nTbS-pt DST4。另外,基本变换矩阵是变换类型为DCT2并且尺寸为maxTbS×maxTbS的变换矩阵maxTbS-pt DCT2。对于采样参数,采样间隔stepsize为“1<<(Log2(maxTbS)-Log2(nTbS))”,行偏移offsetCol为“stepsize>>1(即,stepsize的1/2)”,并且列偏移offsetRow为“0(低阶)”。对于这些操作,在采样之后执行水平方向上的翻转操作(每行的翻转操作)和奇数行的符号反转操作。这样,可以从基本变换矩阵maxTbS-ptDCT2导出变换矩阵nTbS-pt DST4。
接下来,将描述其中待导出的变换类型(trType)为DST2的行。在这种情况下,待导出的变换矩阵是变换类型为DST2并且尺寸为nTbS×nTbS的变换矩阵nTbS-pt DST2。另外,基本变换矩阵是变换类型为DCT2并且尺寸为maxTbS×maxTbS的变换矩阵maxTbS-pt DCT2。对于采样参数,采样间隔stepsize为“1<<(Log2(maxTbS)-Log2(nTbS))”,行偏移offsetCol为“0”,并且列偏移offsetRow为“0(低阶)”。对于这些操作,在采样之后执行垂直方向上的翻转操作(每列的翻转操作)和奇数列的符号反转操作。这样,可以从基本变换矩阵maxTbS-pt DCT2导出变换矩阵nTbS-pt DST2。
接下来,将描述其中待导出的变换类型(trType)为DST4的行(从顶部开始的第六行,不包括项目名称的行)。在这种情况下,待导出的变换矩阵是变换类型为DST4并且尺寸为nTbS×nTbS的变换矩阵nTbS-pt DST4。另外,基本变换矩阵是变换类型为DCT2并且尺寸为maxTbS×maxTbS的变换矩阵maxTbS-pt DCT2。对于采样参数,采样间隔stepsize为“1<<(Log2(maxTbS)-Log2(nTbS))”,行偏移offsetCol为“stepsize>>1(即,stepsize的1/2)”,并且列偏移offsetRow为“(maxTbS>>1)+nTbS(高阶)”。对于这些操作,在采样之后执行以下符号反转操作:将由行偏移定义的基本符号basesign应用于偶数行,并且将基本符号的相反符号-basesign应用于奇数行。这样,可以从基本变换矩阵maxTbS-pt DCT2导出变换矩阵nTbS-pt DST4。
<变换矩阵导出装置>
接下来,将描述用于导出如上所述的变换矩阵的配置。图44是示出作为根据本技术的图像处理装置的一种模式的变换矩阵导出装置的主要配置的示例的框图。图44中所示的变换矩阵导出装置500是导出变换矩阵的装置。
注意,图44示出了主处理部、数据流等,并且图44可能未示出所有内容。即,在变换矩阵导出装置500中,可能存在图44中未示出为块的处理部,并且可能存在图44中未由箭头等指示的处理流或数据流。
如图44所示,变换矩阵导出装置500包括:变换矩阵LUT 511、导出方法设定部512、采样部513、以及子矩阵操作部514。
<变换矩阵LUT>
变换矩阵LUT 511包括任何存储介质,并且存储将被用作基本变换矩阵的变换矩阵的LUT。变换矩阵LUT 511将与从外部指定的变换类型标识符trTypeIdx相对应的基本变换矩阵C提供给采样部513(采样部513的子矩阵提取部522)。例如,变换矩阵LUT 511将变换类型为DCT2并且尺寸为maxTbS×maxTbS的变换矩阵maxTbS-pt DCT2作为基本变换矩阵C提供给采样部513。
<导出方法设定部>
导出方法设定部512包括例如CPU(中央处理部)、ROM(只读存储器)、RAM(随机存取存储器)等,并且执行与变换矩阵的导出方法的设定有关的处理。例如,导出方法设定部512选择与从外部指定的变换类型标识符trTypeIdx相对应的导出方法,并且将指示导出方法的信息提供给采样部513和子矩阵操作部514。
<采样部>
采样部513例如包括CPU、ROM、RAM等,并且执行与变换矩阵的采样有关的处理。例如,采样部513基于预定的采样参数导出通过对作为第一变换矩阵的基本变换矩阵C的矩阵元素进行采样而获得的矩阵作为子矩阵。例如,采样部513根据由导出方法设定部512设定的导出方法,使用从外部指定的变换块的最大尺寸maxTbS和待导出的变换矩阵的尺寸nTbS来设定采样参数,并且使用该采样参数对从变换矩阵LUT511提供的基本变换矩阵C(例如,变换矩阵maxTbS-pt DCT2)的矩阵元素进行采样,以生成子矩阵。采样部513将所生成的子矩阵提供给子矩阵操作部514。
如图44所示,采样部513包括采样参数导出部521以及子矩阵提取部522。
<采样参数导出部>
采样参数导出部521执行与采样参数的导出相关的处理。例如,采样参数导出部521根据由导出方法设定部512设定的导出方法,导出(设定)与从外部指定的变换类型标识符trTypeIdx、从外部指定的变换块的最大尺寸maxTbS、以及待导出的变换矩阵的尺寸nTbS相对应的采样参数。例如,采样参数导出部521导出(设定)诸如采样间隔stepsize、行偏移offsetCol和列偏移offsetRow的采样参数。采样参数导出部521将导出的采样参数提供给子矩阵提取部522。
<子矩阵提取部>
子矩阵提取部522执行与子矩阵的提取(采样)有关的处理。例如,子矩阵提取部522使用由采样参数导出部521导出的采样参数,根据由导出方法设定部512设定的导出方法,对从变换矩阵LUT 511提供的基本变换矩阵C(例如,变换矩阵maxTbS-pt DCT2)的矩阵元素进行采样,以生成子矩阵。子矩阵提取部522将提取的子矩阵提供给子矩阵操作部514。
<子矩阵操作部>
子矩阵操作部514包括例如CPU、ROM、RAM等,并且执行与用于从采样部513提供的子矩阵的矩阵元素的操作有关的处理。例如,子矩阵操作部514根据由导出方法设定部512设定的导出方法,对从采样部513提供的子矩阵的矩阵元素应用特定操作,以导出(生成)期望的变换矩阵,即,变换类型为trType并且尺寸为(nTbS)×(nTbS)的变换矩阵。例如,子矩阵操作部514中的CPU可以根据由导出方法设定部512设定的导出方法执行处理以实现功能块,该功能块对从采样部513提供的子矩阵的矩阵元素应用特定操作。例如,子矩阵操作部514能够实现功能块,诸如实现翻转操作的功能的翻转部531以及实现符号反转操作的符号反转部532。即,子矩阵操作部514使用功能块来对从采样部513提供的子矩阵的矩阵元素适当地应用翻转操作、符号反转操作等,以导出(生成)期望的变换矩阵。子矩阵操作部514将导出的变换矩阵输出至外部。
<翻转部>
翻转部531对从采样部513提供的子矩阵应用翻转操作。例如,翻转部531根据由导出方法设定部512设定的导出方法对子矩阵的矩阵元素应用水平方向上的翻转操作(每行中的矩阵元素的翻转操作)或垂直方向上的翻转操作(每列中的矩阵元素的翻转操作)。
<符号反转部>
符号反转部532对从采样部513提供的子矩阵应用符号反转操作。例如,符号反转部532根据由导出方法设定部512设定的导出方法对子矩阵的矩阵元素中的偶数或奇数行或列的矩阵元素的符号(正和负)进行反转。
以这种方式配置的变换矩阵导出装置500能够容易地从期望尺寸的基本变换矩阵导出尺寸比基本变换矩阵更小的期望变换类型的变换矩阵。因此,可以抑制变换矩阵的LUT尺寸的增加(可以减小LUT尺寸)。另外,可以共享变换类型为trType的(maxTbS)×(maxTbS)变换矩阵的矩阵计算和(nTbS)×(nTbS)变换矩阵的矩阵计算。因此,可以使用相同的计算电路来执行使用变换矩阵的矩阵计算,并且可以抑制电路规模的增加(可以减小电路规模)。
<导出方法的设定示例>
接下来,将描述导出方法设定部512执行的导出方法的设定。如上所述,导出方法设定部512设定与从外部提供的变换类型标识符trTypeIdx相对应的导出方法。例如,在可以由变换矩阵导出装置500导出的变换类型为DCT2、DCT4、DST4和DST2的情况下,导出方法设定部512可以选择如图45的A中所示的对应表中的导出方法。
在这种情况下,假定变换类型标识符trTypeIdx例如为“0”,则选择变换类型为DCT2并且尺寸为maxTbS×maxTbS的变换矩阵transMatrixmaxTbS,DCT2(变换矩阵maxTbS-ptDCT2)作为基本变换矩阵C;选择变换类型为DCT2并且尺寸为nTbS×nTbS的变换矩阵transMatrixnTbS,DCT2(变换矩阵nTbS-pt DCT2)作为导出变换矩阵T,该导出变换矩阵T是待导出的变换矩阵;并且选择等式(X1)作为导出方法。即,选择参照其中图43的表中的导出目标的变换类型(trType)为DCT2的行描述的导出方法。注意,稍后将描述等式(X1)。
另外,假定变换类型标识符trTypeIdx例如是“1”,则选择变换类型为DCT2并且尺寸为maxTbS×maxTbS的变换矩阵transMatrixmaxTbS,DCT2(变换矩阵maxTbS-pt DCT2)作为基本变换矩阵C;选择变换类型为DCT4并且尺寸为nTbS×nTbS的变换矩阵transMatrixnTbS,DCT4(变换矩阵nTbS-pt DCT4)作为导出变换矩阵T;并且选择等式(X2)作为导出方法。即,选择参照其中图43的表中的导出目标的变换类型(trType)为DCT4的行描述的导出方法。注意,稍后将描述等式(X2)。
另外,假定变换类型标识符trTypeIdx例如是“2”,则选择变换类型为DCT2并且尺寸为maxTbS×maxTbS的变换矩阵transMatrixmaxTbS,DCT2(变换矩阵maxTbS-pt DCT2)作为基本变换矩阵C;选择变换类型为DST4并且尺寸为nTbS×nTbS的变换矩阵transMatrixnTbS,DST4(变换矩阵nTbS-pt DST4)作为导出变换矩阵T;并且选择等式(X4)或等式(X6)作为导出方法。即,选择参照其中图43的表中的导出目标的变换类型(trType)为DST4的行描述的导出方法。注意,稍后将描述等式(X4)和等式(X6)。
另外,假定变换类型标识符trTypeIdx例如是“3”,则选择变换类型为DCT2并且尺寸为maxTbS×maxTbS的变换矩阵transMatrixmaxTbS,DCT2(变换矩阵maxTbS-pt DCT2)作为基本变换矩阵C;选择变换类型为DST2并且尺寸为nTbS×nTbS的变换矩阵transMatrixnTbS,DST2(变换矩阵nTbS-pt DST2)作为导出变换矩阵T;并且选择等式(X5)作为导出方法。即,选择参照其中图43的表中的导出目标的变换类型(trType)为DST2的行描述的导出方法。注意,稍后将描述等式(X5)。
此外,在例如变换矩阵导出装置500能够导出FlipDCT4而不是DST4的情况下,导出方法设定部512可以选择如图45的B中所示的对应表中的导出方法。
在这种情况下,假定变换类型标识符trTypeIdx例如是“2”,则选择变换类型为DCT2并且尺寸为maxTbS×maxTbS的变换矩阵transMatrixmaxTbS,DCT2(变换矩阵maxTbS-ptDCT2)作为基本变换矩阵C;选择变换类型为FlipDCT4并且尺寸为nTbS×nTbS的变换矩阵transMatrixnTbS,FlipDCT4(变换矩阵nTbS-pt FlipDCT4)作为导出变换矩阵T;并且选择等式(X3)作为导出方法。即,选择参照其中图43的表中的导出目标的变换类型(trType)为FlipDCT4的行描述的导出方法。注意,稍后将描述等式(X3)。
以这种方式选择变换矩阵的导出方法,并且变换矩阵导出装置500能够设定与从外部提供的变换类型标识符trTypeIdx相对应的导出方法。结果,变换矩阵导出装置500可以容易地从期望尺寸的基本变换矩阵导出尺寸比基本变换矩阵更小的期望变换类型的变换矩阵。因此,可以抑制变换矩阵的LUT尺寸的增加(可以减小LUT尺寸)。另外,可以共享变换类型为trType的(maxTbS)×(maxTbS)变换矩阵的矩阵计算和(nTbS)×(nTbS)变换矩阵的矩阵计算。因此,可以使用相同的计算电路来执行使用变换矩阵的矩阵计算,并且可以抑制电路规模的增加(可以减小电路规模)。
<变换矩阵导出处理的流程>
接下来,将参照图46的流程图描述由变换矩阵导出装置500执行的变换矩阵导出处理的流程的示例。
一旦开始变换矩阵导出处理,在步骤S501中,变换矩阵导出装置500的子矩阵提取部522从变换矩阵LUT 511中读出与从外部提供的变换类型标识符trTypeIdx相对应的基本变换矩阵C(即,变换矩阵maxTbS-pt DCT2)。
在步骤S502中,如参照图45的表所述,导出方法设定部512基于从外部提供的变换类型标识符trTypeIdx设定变换矩阵导出方法。
在步骤S503中,采样部513和子矩阵操作部514执行子矩阵导出处理,并且使用在步骤S502中设定的导出方法以从基本变换矩阵C导出该导出变换矩阵T。
一旦完成步骤S503的处理,则变换矩阵导出处理结束。
<子矩阵导出处理的流程>
接下来,将参照图47的流程图描述在图46的步骤S503中执行的子矩阵导出处理的流程的示例。
一旦开始子矩阵导出处理,在步骤S521中,采样部513确定是否执行采样。在采样部513确定根据在步骤S502(图46)中设定的导出方法执行采样的情况下,处理前进至步骤S522。
在步骤S522中,采样参数导出部521根据在步骤S502(图46)中设定的导出方法导出与变换类型标识符trTypeIdx和块尺寸(变换块的最大尺寸maxTbs和待导出的变换矩阵的尺寸nTbS)相对应的采样参数。例如,采样参数导出部521导出采样间隔stepsize、行偏移offsetCol、以及列偏移offsetRow。
在步骤S523中,子矩阵提取部522使用在步骤S522中导出的采样参数以从在步骤S501(图46)中读出的基本变换矩阵C中提取子矩阵。
一旦完成步骤S523的处理,则处理前进至步骤S524。此外,在采样部513在步骤S521中确定不执行采样的情况下,处理前进至步骤S524。
在步骤S524中,子矩阵操作部514确定是否对在步骤S523中提取的子矩阵进行操作。在子矩阵操作部514确定根据在步骤S502(图46)中设定的导出方法操作子矩阵的情况下,处理前进至步骤S525。
在步骤S525中,子矩阵操作部514根据在步骤S502(图46)中设定的导出方法执行子矩阵操作处理并且对在步骤S523中提取的子矩阵进行操作。一旦完成子矩阵操作处理,则子矩阵导出处理结束,并且处理返回至图46。
此外,在子矩阵操作部514在步骤S524中确定不对在步骤S523中提取的子矩阵进行操作的情况下,子矩阵导出处理结束,并且处理返回至图46。
<子矩阵操作处理的流程>
接下来,将参照图48的流程图描述在图47的步骤S525中执行的子矩阵操作处理的流程的示例。
一旦开始子矩阵操作处理,在步骤S541中,子矩阵操作部514确定是否执行翻转。在子矩阵操作部514根据在步骤S502(图46)中设定的导出方法确定执行翻转的情况下,处理前进至步骤S542。
在步骤S542中,翻转部531根据在步骤S502(图46)中设定的导出方法对在步骤S523(图47)中采样的子矩阵的矩阵元素进行翻转。
一旦完成步骤S542的处理,则处理前进至步骤S543。此外,在子矩阵操作部514根据在步骤S502(图46)中设定的导出方法在步骤S541中确定不执行翻转的情况下,处理前进至步骤S543。
在步骤S543中,子矩阵操作部514确定是否执行符号反转。在子矩阵操作部514根据在步骤S502(图46)中设定的导出方法确定执行符号反转的情况下,处理前进至步骤S544。
在步骤S544中,符号反转部532根据在步骤S502(图46)中设定的导出方法对在步骤S523(图47)中采样的子矩阵的矩阵元素应用符号反转。子矩阵可以经受或可以不经受步骤S542中的翻转操作。
一旦完成步骤S544的处理,则处理返回至图47。此外,在子矩阵操作部514根据在步骤S502(图46)中设定的求导方法在步骤S543中确定不执行符号反转的情况下,处理返回至图47。
可以以这种方式执行处理以设定与变换类型标识符trTypeIdx相对应的导出方法,并且可以容易地从基本变换矩阵中导出尺寸比期望尺寸的基本变换矩阵更小的期望变换类型的变换矩阵。因此,可以抑制变换矩阵的LUT尺寸的增加(可以减小LUT尺寸)。另外,可以共享变换类型为trType的(maxTbS)×(maxTbS)变换矩阵的矩阵计算和(nTbS)×(nTbS)变换矩阵的矩阵计算。因此,可以使用相同的计算电路来执行使用变换矩阵的矩阵计算,并且可以抑制电路规模的增加(可以减小电路规模)。
<每个导出方法的细节>
<变换类型DCT2的情况>
接下来,将更详细地描述每个变换类型的变换矩阵的导出方法。首先,将描述其中变换类型trType为DCT2的变换矩阵的导出方法。如图49的A中所示,基本变换矩阵C的变换类型为DCT2,并且尺寸为16×16。
例如,在从图49的A中的基本变换矩阵C中导出变换类型为DCT2并且尺寸为8×8的导出变换矩阵T的情况下,变换矩阵导出装置500对图49的A中所示的基本变换矩阵C的灰色部分的矩阵元素进行采样,以导出该导出变换矩阵T。在这种情况下,跳过符号反转操作和翻转操作。即,获得如图49的B中所示的导出变换矩阵T。
此外,在例如从图49的A中的基本变换矩阵C中导出变换类型为DCT2并且尺寸为4×4的导出变换矩阵T的情况下,变换矩阵导出装置500对图49的A中所示的基本变换矩阵C中由粗线围绕的矩阵元素进行采样,以导出该导出变换矩阵T。在这种情况下,也跳过符号反转操作和翻转操作。即,获得如图49的C中所示的导出变换矩阵T。
以这种方式,在DCT2的变换矩阵的导出方法的情况下,在8×8的情况下采样间隔stepsize为两行(每两行中的一行被采样),并且在4×4的情况下采样间隔stepsize为四行(每四行中的一行被采样)。即,采样间隔stepsize是由变换块的最大尺寸maxTbS的以2为底的对数与待导出的变换矩阵的尺寸nTbS的以2为底的对数之间的差取幂的值。注意,行偏移offsetCol和列偏移offsetRow在任一情况下都是“0”。此外,变换矩阵导出装置500使用采样参数来执行采样(而不执行符号反转操作和翻转操作),以导出其中变换类型trType为DCT2的导出变换矩阵T。
即,变换矩阵导出装置500执行如图49的D中的等式(X1)中所表示的变换处理,以导出其中变换类型trType为DCT2的导出变换矩阵T。下面也示出了等式(X1)。
transMatrixDCT2,nTbS[j][i]
=transMatrixDCT2,maxTbS[j*stepsize+offsetCol][i+offsetRow]
=transMatrixDCT2,maxTbS[j*stepsize][i]…(X1)
其中,
stepsize=1<<(log2(maxTbS)–log2(nTbS))
offsetCol=0
offsetRow=0
即,(nTbS)×(nTbS)DCT2变换矩阵的行j、列i的元素是(maxTbS)×(maxTbS)DCT2变换矩阵的行(j*stepsize)、列i的元素。换言之,通过以采样间隔stepSize=(1<<(log2(maxTbS)-log2(nTbS))、行偏移offsetCol=0和列偏移offsetRow=0对(maxTbS)×(maxTbS)DCT2变换矩阵进行采样而获得的子矩阵是(nTbS)×(nTbS)DCT2变换矩阵。
这样,变换矩阵导出装置500可以从基本变换矩阵maxTbS-pt DCT2导出变换矩阵nTbS-pt DCT2。
<变换类型DCT4的情况>
接下来,将描述其中变换类型trType为DCT4的变换矩阵的导出方法。如图50的A中所示,基本变换矩阵C的变换类型为DCT2,并且尺寸为16×16。
例如,在从图50的A中的基本变换矩阵C导出变换类型为DCT4并且尺寸为8×8的导出变换矩阵T的情况下,变换矩阵导出装置500对图50的A中所示的基本变换矩阵C的灰色部分的矩阵元素进行采样,以导出该导出变换矩阵T。在这种情况下,跳过符号反转操作和翻转操作。即,获得如图50的B中所示的导出变换矩阵T。
此外,在例如从图50的A中的基本变换矩阵C中导出变换类型为DCT4并且尺寸为4×4的导出变换矩阵T的情况下,变换矩阵导出装置500对图50的A中所示的基本变换矩阵C中由粗线围绕的矩阵元素进行采样,以导出该导出变换矩阵T。在这种情况下,也跳过符号反转操作和翻转操作。即,获得如图50的C中所示的导出变换矩阵T。
以这种方式,同样在DCT4的变换矩阵的导出方法的情况下,在8×8的情况下采样间隔stepsize为两行(每两行中的一行被采样),并且在4×4的情况下采样间隔stepsize为四行(每四行中的一行被采样)。即,采样间隔stepsize是由变换块的最大尺寸maxTbS的以2为底的对数与待导出的变换矩阵的尺寸nTbS的以2为底的对数之间的差取幂的值。另外,行偏移offsetCol在8×8的情况下为“1”(即,一行),在4×4的情况下为“2”(即,两行)。即,在图50的垂直方向上,在8×8的情况下,从第二行(行编号为“1”的行)开始采样,并且在4×4的情况下,从第三行(行编号为“2”的行)开始采样。即,行偏移offsetCol是采样间隔stepsize的一半。注意,列偏移offsetRow在任一情况下为“0”。此外,变换矩阵导出装置500使用采样参数来执行采样(而不执行符号反转操作和翻转操作),以导出其中变换类型trType为DCT4的导出变换矩阵T。
即,变换矩阵导出装置500执行如图50的D中的等式(X2)中所表示的变换处理,以导出其中变换类型trType为DCT4的导出变换矩阵T。下面也示出了等式(X2)。
transMatrixDCT4,nTbS[j][i]
=transMatrixDCT2,maxTbS[j*stepsize+offsetCol][i+offsetRow]
=transMatrixDCT2,maxTbS[j*stepsize+offsetCol][i]…(X2)
其中,
stepsize=1<<(log2(maxTbS)-log2(nTbS))
offsetCol=stepsize>>1
offsetRow=0
即,(nTbS)×(nTbS)DCT4变换矩阵的行j、列i的元素是(maxTbS)×(maxTbS)DCT2变换矩阵的行(j*stepsize+offsetCol)、列i的元素。换言之,通过以采样间隔stepSize=(1<<(log2(maxTbS)-log2(nTbS))、行偏移offsetCol=(stepsize>>1)和列偏移offsetRow=0对(maxTbS)×(maxTbS)DCT2变换矩阵进行采样而获得的子矩阵是(nTbS)×(nTbS)DCT4变换矩阵。
这样,变换矩阵导出装置500可以从基本变换矩阵maxTbS-pt DCT2导出变换矩阵nTbS-pt DCT4。
<变换类型FlipDCT4的情况>
接下来,将描述其中变换类型trType为FlipDCT4的变换矩阵的导出方法。如图51的A中所示,基本变换矩阵C的变换类型为DCT2,并且尺寸为16×16。
例如,在从图51的A中的基本变换矩阵C中导出变换类型为FlipDCT4并且尺寸为8×8的导出变换矩阵T的情况下,变换矩阵导出装置500对图51的A中所示的基本变换矩阵C的灰色部分的矩阵元素进行采样,并且在水平方向上执行翻转操作以导出该导出变换矩阵T。在这种情况下,跳过符号反转操作。即,获得如图51的B中所示的导出变换矩阵T。
此外,在例如从图51的A中的基本变换矩阵C中导出变换类型为FlipDCT4并且尺寸为4×4的导出变换矩阵T的情况下,变换矩阵导出装置500对图51的A中所示的基本变换矩阵C中由粗线围绕的矩阵元素进行采样,并且在水平方向上执行翻转操作以导出该导出变换矩阵T。在这种情况下,也跳过符号反转操作。即,获得如图51的C中所示的导出变换矩阵T。
这样,同样在FlipDCT4的变换矩阵的导出方法的情况下,采样间隔stepsize在8×8的情况下是两行(每两行中的一行被采样),并且在4×4的情况下是四行(每四行中的一行被采样)。即,采样间隔stepsize是由变换块的最大尺寸maxTbS的以2为底的对数与待导出的变换矩阵的尺寸nTbS的以2为底的对数之间的差取幂的值。另外,行偏移offsetCol在8×8的情况下为“1”(即,一行),在4×4的情况下为“2”(即,两行)。即,行偏移offsetCol是采样间隔stepsize的一半。注意,列偏移offsetRow在任一情况下为“0”。此外,变换矩阵导出装置500使用采样参数来执行采样,并且在水平方向上执行翻转(执行每行的翻转操作)(而不执行符号反转操作),以导出其中变换类型trType为FlipDCT4的导出变换矩阵T。
即,变换矩阵导出装置500执行如图51的D中的等式(X3)中所表示的变换处理,以导出其中变换类型trType为FlipDCT4的导出变换矩阵T。下面也示出了等式(X3)。
transMatrixFlipDCT4,nTbS[j][i]
=transMatrixDCT2,maxTbS[j*stepsize+offsetCol][(nTbS-1-i)+offsetRow]
=transMatrixDCT2,maxTbS[j*stepsize+offsetCol][nTbS-1-i]…(X3)
其中,
stepsize=1<<(log2(maxTbS)-log2(nTbS))
offsetCol=stepsize>>1
offsetRow=0
即,(nTbS)×(nTbS)FlipDCT4变换矩阵的行j、列i的元素是(maxTbS)×(maxTbS)DCT2变换矩阵的行(j*stepsize+offsetCol)、列(nTbS-1-i)的元素。换言之,当通过以采样间隔stepsize=(1<<(log2(maxTbS)-log2(nTbS)))、行偏移offsetCol=(stepsize>>1)和列偏移offsetRow=0对(maxTbS)×(maxTbS)DCT2变换矩阵进行采样而获得的子矩阵在水平方向上被翻转时,获得(nTbS)×(nTbS)FlipDCT4变换矩阵。
这样,变换矩阵导出装置500可以从基本变换矩阵maxTbS-pt DCT2导出变换矩阵nTbS-pt FlipDCT4。
<变换类型DST4(低阶)的情况>
接下来,将描述其中变换类型trType为DST4(低阶)的变换矩阵的导出方法。如图52的A中所示,基本变换矩阵C的变换类型为DCT2,并且尺寸为16×16。
例如,在从图52的A中的基本变换矩阵C中导出变换类型为DST4并且尺寸为8×8的导出变换矩阵T的情况下,变换矩阵导出装置500对图52的A中所示的基本变换矩阵C的灰色部分的矩阵元素进行采样,在水平方向上执行翻转操作,并且执行奇数行的符号反转操作,以导出导出变换矩阵T。即,获得如图52的B中所示的导出变换矩阵T。
此外,在例如从图52的A中的基本变换矩阵C中导出变换类型为DST4并且尺寸为4×4的导出变换矩阵T的情况下,变换矩阵导出装置500对图52的A中所示的基本变换矩阵C中由粗线围绕的矩阵元素进行采样,在水平方向上执行翻转操作,并且执行奇数行的符号反转操作以导出该导出变换矩阵T。即,获得如图52的C中所示的导出变换矩阵T。
这样,同样在DST4的变换矩阵的导出方法的情况下,采样间隔stepsize在8×8的情况下为两行(每两行中的一行被采样),并且在4×4的情况下为四行(每四行中的一行被采样)。即,采样间隔stepsize是由变换块的最大尺寸maxTbS的以2为底的对数与待导出的变换矩阵的尺寸nTbS的以2为底的对数之间的差取幂的值。另外,行偏移offsetCol在8×8的情况下为“1”(即,一行),在4×4的情况下为“2”(即,两行)。即,行偏移offsetCol是采样间隔stepsize的一半。注意,列偏移offsetRow在任一情况下为“0”。此外,变换矩阵导出装置500使用采样参数来执行采样,在水平方向上执行翻转操作(执行每行的翻转操作),并且执行奇数行的符号反转操作以导出其中变换类型trType为DST4的导出变换矩阵T。
即,变换矩阵导出装置500执行如图52的D中的等式(X4)中所表示的变换处理,以导出其中变换类型trType为DST4的导出变换矩阵T。下面也示出了等式(X4)。
transMatrixDST4,nTbS[j][i]
=sign*transMatrixDCT2,maxTbS[j*stepsize+offsetCol][(nTbS-1-i)+offsetRow]
=sign*transMatrixDCT2,maxTbS[j*stepsize+offsetCol][nTbS-1-i]…(X4)
其中,
stepsize=1<<(log2(maxTbS)-log2(nTbS))
offsetCol=stepsize>>1
offsetRow=0
sign=(j%2==0)?1:-1
即,(nTbS)×(nTbS)DST4变换矩阵的行j、列i的元素是通过(maxTbS)×(maxTbS)DCT2变换矩阵的行(j*stepsize+offsetCol)、列(nTbS-1-i)的元素乘以符号“sign”获得的。换言之,当通过以采样间隔stepsize=(1<<(log2(maxTbS)-log2(nTbS)))、行偏移offsetCol=(stepsize>>1)和列偏移offsetRow=0对(maxTbS)×(maxTbS)DCT2变换矩阵进行采样而获得的子矩阵在水平方向上被翻转并且奇数行的符号被反转时,获得(nTbS)×(nTbS)DST4变换矩阵。注意,在(nTbS)×(nTbS)DST4变换矩阵的行j是偶数行的情况下,将符号“sign”设定为“1”,并且在行j是奇数行的情况下,将符号“sign”设定为“-1”。
这样,变换矩阵导出装置500可以从基本变换矩阵maxTbS-pt DCT2导出变换矩阵nTbS-pt DST4。
<变换类型DST2的情况>
接下来,将描述其中变换类型trType为DST2的变换矩阵的导出方法。如图53的A中所示,基本变换矩阵C的变换类型为DCT2,并且尺寸为16×16。
例如,在从图53的A中的基本变换矩阵C中导出变换类型为DST2并且尺寸为8×8的导出变换矩阵T的情况下,变换矩阵导出装置500对图53的A中所示的基本变换矩阵C的灰色部分的矩阵元素进行采样,在垂直方向上执行翻转操作,并且执行奇数列的符号反转操作,以导出该导出变换矩阵T。即,获得如图53的B中所示的导出变换矩阵T。
此外,在例如从图53的A中的基本变换矩阵C中导出变换类型为DST2并且尺寸为4×4的导出变换矩阵T的情况下,变换矩阵导出装置500对图53的A中所示的基本变换矩阵C中由粗线围绕的矩阵元素进行采样,在垂直方向上执行翻转操作,并且执行奇数列的符号反转操作以导出该导出变换矩阵T。即,获得如图53的C中所示的导出变换矩阵T。
这样,同样在DST2的变换矩阵的导出方法的情况下,采样间隔stepsize在8×8的情况下为两行(每两行中的一行被采样),并且在4×4的情况下为四行(每四行中的一行被采样)。即,采样间隔stepsize是由变换块的最大尺寸maxTbS的以2为底的对数与待导出的变换矩阵的尺寸nTbS的以2为底的对数之间的差取幂的值。注意,行偏移offsetCol和列偏移offsetRow在任一情况下都是“0”。此外,变换矩阵导出装置500使用采样参数来执行采样,在垂直方向上执行翻转操作(执行每列的翻转操作),并且执行奇数列的符号反转操作以导出其中变换类型trType为DST2的导出变换矩阵T。
即,变换矩阵导出装置500执行如图53的D中的等式(X5)中所表示的变换处理,以导出其中变换类型trType为DST2的导出变换矩阵T。下面也示出了等式(X5)。
transMatrixDST2,nTbS[j][i]
=sign*transMatrixDCT2,maxTbS[(nTbS)-1-j)*stepsize+offsetCol][i+offsetRow]
=sign*transMatrixDCT2,maxTbS[(nTbS)-1-j)*stepsize][i]…(X5)
其中,
stepsize=1<<(log2(maxTbS)-log2(nTbS))
offsetCol=0
offsetRow=0
sign=(i%2==0)?1:-1
即,(nTbS)×(nTbS)DST2变换矩阵的行j、列i的元素是通过(maxTbS)×(maxTbS)DCT2变换矩阵的行((nTbS-1-k)*stepsize)、列i的元素乘以符号“sign”获得的。换言之,当在通过以采样间隔stepsize=(1<<(log2(maxTbS)-log2(nTbS)))、行offsetCol=0和列offsetRow=0对(maxTbS)×(maxTbS)DCT2变换矩阵进行采样而获得的子矩阵中反转每行的奇数元素的符号时,获得(nTbS)×(nTbS)DST2变换矩阵。注意,在(nTbS)×(nTbS)DST2变换矩阵的列i是偶数列的情况下,将符号“sign”设定为“1”,并且在列i是奇数列的情况下,将符号“sign”设定为“-1”。
这样,变换矩阵导出装置500可以从基本变换矩阵maxTbS-pt DCT2导出变换矩阵nTbS-pt DST2。
<变换类型DST4(高阶)的情况>
接下来,将描述其中变换类型trType为DST4(高阶)的变换矩阵的另一导出方法。如图54的A中所示,基本变换矩阵C的变换类型为DCT2,并且尺寸为16×16。
例如,在从图54的A中的基本变换矩阵C中导出变换类型为DST4并且尺寸为8×8的导出变换矩阵T的情况下,变换矩阵导出装置500对图54的A中所示的基本变换矩阵C的灰色部分的矩阵元素进行采样,并且通过对偶数行乘以基于行偏移offsetCol定义的基本符号baseSign并且对奇数行乘以基本符号的相反符号-basesign来执行符号反转操作,以导出该导出变换矩阵T。即,获得如图54的B中所示的导出变换矩阵T。
此外,例如,在从图54的A中的基本变换矩阵C中导出变换类型为DST4并且尺寸为4×4的导出变换矩阵T的情况下,变换矩阵导出装置500对图54的A中所示的基本变换矩阵C中由粗线围绕的矩阵元素进行采样,并且通过对偶数行乘以基于行偏移offsetCol定义的基本符号baseSign并且对奇数行乘以基本符号的相反符号-basesign来执行符号反转操作,以导出该导出变换矩阵T。即,获得如图54的C中所示的导出变换矩阵T。
这样,同样在DST4的变换矩阵的导出方法的情况下,采样间隔stepsize在8×8的情况下为两行(每两行中的一行被采样),并且在4×4的情况下为四行(每四行中的一行被采样)。即,采样间隔stepsize是由变换块的最大尺寸maxTbS的以2为底的对数与待导出的变换矩阵的尺寸nTbS的以2为底的对数之间的差取幂的值。另外,行偏移offsetCol在8×8的情况下为“1”(即,一行),在4×4的情况下为“2”(即,两行)。即,行偏移offsetCol是采样间隔stepsize的一半。另外,列偏移offsetRow在8×8的情况下为“8”(即,八列),并且在4×4的情况下为“12”(即,十二列)。即,在图54的水平方向上,在8×8的情况下,从第九列(列编号为“8”的列)开始采样,并且在4×4的情况下,从第13列(列编号为“12”的列)开始采样。即,列偏移offsetRow是通过从变换块的最大尺寸maxTbS减去待导出的变换矩阵的尺寸nTbS而获得的值。此外,变换矩阵导出装置500使用采样参数来执行采样,并且通过对偶数行乘以基于行偏移offsetCol定义的基本符号baseSign以及对奇数行乘以基本符号的相反符号-baseSign来执行符号反转操作,以导出其中变换类型trType为DST4的导出变换矩阵T。
即,变换矩阵导出装置500执行如图54的D中的等式(X6)中所表示的变换处理,以导出其中变换类型trType为DST4的导出变换矩阵T。下面也示出了等式(X6)。
transMatrixDST4,nTbS[j][i]
=sign*transMatrixDCT2,maxTbS[j*stepsize+offsetCol][offsetRow+i]…(X6)
其中,
stepsize=1<<(log2(maxTbS)-log2(nTbS))
offsetCol=stepsize>>1
offsetRow=maxTbS-nTbS
baseSign=(offsetCol%2==0)?1:-1
sign=(j%2==0)?baseSign:-baseSign
即,(nTbS)×(nTbS)DST4变换矩阵的行j、列i的元素是通过(maxTbS)×(maxTbS)DCT2变换矩阵的行(j*stepsize+offset)、列((maxTbS/2)+i)的元素乘以符号“sign”获得的。换言之,在通过以采样间隔stepsize=(1<<(log2(maxTbS)?log2(nTbS)))、行偏移offsetCol=(stepsize>>1)和列偏移offsetRow=(maxTbS–nTbS)对(maxTbS)×(maxTbS)DCT2变换矩阵进行采样而获得的子矩阵中,通过对偶数行乘以由行偏移定义的基本符号baseSign并且对奇数行乘以基本符号的相反符号-baseSign来执行符号反转操作,以获得(nTbS)×(nTbS)DST4变换矩阵。注意,在行偏移offsetCol为偶数的情况下,将基本符号baseSign设定为“1”,并且在行偏移offsetCol为奇数的情况下,将基本符号baseSign设定为“-1”。另外,在(nTbS)×(nTbS)DST4变换矩阵的行j是偶数行的情况下,为符号“sign”设定基本符号baseSign的值,并且在行j是奇数行的情况下,为符号“sign”设定基本符号的相反符号-baseSign的值。
这样,变换矩阵导出装置500可以从基本变换矩阵maxTbS-pt DCT2导出变换矩阵nTbS-pt DST4。
<本技术的应用示例>
上述本技术可以应用于任何装置、设备、系统等。例如,上述本技术(基于采样参数导出涉及采样的变换矩阵)可以应用于对图像数据进行编码的图像编码装置。
<应用于图像编码装置>
例如,本技术可以应用于图27所示的图像编码装置100。例如,本技术可以应用于一次水平变换部312的变换矩阵导出部321(图36)。在这种情况下,变换矩阵导出部321可以具有与变换矩阵导出装置500(图44)类似的配置并且执行类似的处理(例如,图46的变换矩阵导出处理)。
在这种情况下,变换矩阵导出部321基于由控制部101设定的变换类型标识符(trTypeIdxH)和块尺寸(变换块的最大尺寸maxTbS和待导出的变换矩阵的尺寸nTbS(log2TBWSize和log2TBHSize)),如上所述地导出变换矩阵TH。即,类似于变换矩阵导出装置500的情况,变换矩阵导出部321基于变换类别标识符和块尺寸来设定采样参数,并且使用该采样参数来执行采样并导出子矩阵。此外,变换矩阵导出部321根据变换类别标识符,对子矩阵适当地应用翻转操作、符号反转操作等,并且导出期望的变换矩阵TH。矩阵计算部322使用以这种方式导出的变换矩阵TH,对输入数据Xin(即,预测残差D的变换块)应用水平方向上的一维正交变换,并且获得中间数据Y1。
这样,变换矩阵导出部321可以设定与从控制部101提供的变换类型标识符trTypeIdxH相对应的导出方法。结果,变换矩阵导出部321可以容易地从期望尺寸的基本变换矩阵导出用于一次水平变换的期望变换类型的变换矩阵,其中变换矩阵的尺寸小于基本变换矩阵的尺寸。
因此,如果具有变换块的最大尺寸maxTbS的预定变换类型(例如,DCT2)的变换矩阵被存储为基本变换矩阵,则变换矩阵导出部321可以导出在一次水平变换中使用的任何变换类型和尺寸的变换矩阵。即,变换矩阵导出部321不需要存储在一次水平变换中使用的多个变换类型和多个尺寸的变换矩阵。换言之,变换矩阵导出部321可以抑制变换矩阵的LUT尺寸的增大(减小LUT尺寸)。
此外,在这种情况下,可以在矩阵计算部322中共享变换类型trType的(maxTbS)×(maxTbS)变换矩阵的矩阵计算和(nTbS)×(nTbS)变换矩阵的矩阵计算。即,矩阵计算部322可以使用相同的计算电路来执行关于一次水平变换的矩阵计算,而不管变换矩阵的变换类型和尺寸。换言之,矩阵计算部322可以抑制电路规模的增加(减小电路规模)。
另外,本技术可以应用于例如一次垂直变换部313的变换矩阵导出部351(图37)。在这种情况下,变换矩阵导出部351只需要具有与变换矩阵导出装置500(图44)类似的配置并且执行类似的处理(例如,图46的变换矩阵导出处理)。
在这种情况下,变换矩阵导出部351基于由控制部101设定的变换类型标识符(trTypeIdxV)和块尺寸(变换块的最大尺寸maxTbS和待导出的变换矩阵的尺寸nTbS(log2TBWSize和log2TBHSize)),如上所述地导出变换矩阵TV。即,如同变换矩阵导出装置500的情况,变换矩阵导出部351基于变换类别标识符和块尺寸来设定采样参数,并且使用该采样参数来执行采样并导出子矩阵。此外,变换矩阵导出部351根据变换类别标识符,对子矩阵适当地应用翻转操作、符号反转操作等,并且导出期望的变换矩阵TV。矩阵计算部352使用以这种方式导出的变换矩阵TV,以将垂直方向上的一维正交变换应用于输入数据Xin(即,通过一次水平变换获得的变换系数Coeff_Phor的变换块),并且获得中间数据Y1。
这样,变换矩阵导出部351可以设定与从控制部101提供的变换类型标识符trTypeIdxV相对应的导出方法。结果,变换矩阵导出部351可以容易地从期望尺寸的基本变换矩阵导出用于一次垂直变换的期望变换类型的变换矩阵,其中变换矩阵的尺寸小于基本变换矩阵的尺寸。
因此,如果具有变换块的最大尺寸maxTbS的预定变换类型(例如,DCT2)的变换矩阵被存储为基本变换矩阵,则变换矩阵导出部351可以导出在一次垂直变换中使用的任何变换类型和尺寸的变换矩阵。即,变换矩阵导出部351不需要存储在一次垂直变换中使用的多个变换类型和多个尺寸的变换矩阵。换言之,变换矩阵导出部351可以抑制变换矩阵的LUT尺寸的增大(减小LUT尺寸)。
此外,在这种情况下,可以在矩阵计算部352中共享变换类型trType的(maxTbS)×(maxTbS)变换矩阵的矩阵计算和(nTbS)×(nTbS)变换矩阵的矩阵计算。即,矩阵计算部352可以使用相同的计算电路来执行关于一次垂直变换的矩阵计算,而不管变换矩阵的变换类型和尺寸。即,矩阵计算部352可以抑制电路规模的增加(减小电路规模)。
<应用于图像解码装置>
例如,本技术可以应用于图31所示的图像解码装置200。例如,本技术可以应用于逆一次垂直变换部412的变换矩阵导出部421(图40)。在这种情况下,变换矩阵导出部421只需要具有与变换矩阵导出装置500(图44)类似的配置并且执行类似的处理(例如,图46的变换矩阵导出处理)。
在这种情况下,变换矩阵导出部421基于由解码部212从比特流获取的变换类型标识符(trTypeIdxV)和块尺寸(变换块的最大尺寸maxTbS和待导出的变换矩阵的尺寸nTbS(log2TBWSize和log2TBHSize)),如上所述地导出变换矩阵TV。即,类似于变换矩阵导出装置500的情况,变换矩阵导出部421基于变换类别标识符和块尺寸来设定采样参数,并且使用该采样参数来执行采样并导出子矩阵。此外,变换矩阵导出部421根据变换类别标识符,对子矩阵适当地应用翻转操作、符号反转操作等,并且导出期望的变换矩阵TV。矩阵计算部422使用以这种方式导出的变换矩阵TV,以将垂直方向上的逆一维正交变换应用于输入数据Xin(即,通过逆二次变换获得的变换系数Coeff_IS的变换块),并且获得中间数据Y1。
这样,变换矩阵导出部421可以设定与从解码部212提供的变换类型标识符trTypeIdxV相对应的导出方法。结果,变换矩阵导出部421可以容易地从期望尺寸的基本变换矩阵导出用于逆一次垂直变换的期望变换类型的变换矩阵,其中变换矩阵的尺寸小于基本变换矩阵的尺寸。
因此,如果具有变换块的最大尺寸maxTbS的预定变换类型(例如,DCT2)的变换矩阵被存储为基本变换矩阵,则变换矩阵导出部421可以导出在逆一次垂直变换中使用的任何变换类型和尺寸的变换矩阵。即,变换矩阵导出部421不需要存储在逆一次垂直变换中使用的多个变换类型和多个尺寸的变换矩阵。换言之,变换矩阵导出部421可以抑制变换矩阵的LUT尺寸的增大(减小LUT尺寸)。
此外,在这种情况下,可以在矩阵计算部422中共享变换类型trType的(maxTbS)×(maxTbS)变换矩阵的矩阵计算和(nTbS)×(nTbS)变换矩阵的矩阵计算。即,矩阵计算部422可以使用相同的计算电路来执行关于逆一次垂直变换的矩阵计算,而不管变换矩阵的变换类型和尺寸。换言之,矩阵计算部422可以抑制电路规模的增加(减小电路规模)。
另外,本技术可以应用于例如逆一次水平变换部413的变换矩阵导出部451(图41)。在这种情况下,变换矩阵导出部451只需要具有与变换矩阵导出装置500(图44)类似的配置并且执行类似的处理(例如,图46的变换矩阵导出处理)。
在这种情况下,变换矩阵导出部451基于由解码部212从比特流获取的变换类型标识符(trTypeIdxH)和块尺寸(变换块的最大尺寸maxTbS和待导出的变换矩阵的尺寸nTbS(log2TBWSize和log2TBHSize)),如上所述地导出变换矩阵TH。即,如同变换矩阵导出装置500的情况,变换矩阵导出部451基于变换类别标识符和块尺寸来设定采样参数,并且使用该采样参数来执行采样并导出子矩阵。此外,变换矩阵导出部451根据变换类别标识符,对子矩阵适当地应用翻转操作、符号反转操作等,并且导出期望的变换矩阵TH。矩阵计算部452使用以这种方式导出的变换矩阵TH以将水平方向上的逆一维正交变换应用于输入数据Xin(即,通过逆一次垂直变换获得的变换系数Coeff_IPver的变换块),并且获得中间数据Y1。
这样,变换矩阵导出部451可以设定与从解码部212提供的变换类型标识符trTypeIdxH相对应的导出方法。结果,变换矩阵导出部451可以容易地从期望尺寸的基本变换矩阵导出用于逆一次水平变换的期望变换类型的变换矩阵,其中变换矩阵的尺寸小于基本变换矩阵的尺寸。
因此,如果具有变换块的最大尺寸maxTbS的预定变换类型(例如,DCT2)的变换矩阵被存储为基本变换矩阵,则变换矩阵导出部451可以导出在逆一次水平变换中使用的任何变换类型和尺寸的变换矩阵。即,变换矩阵导出部451不需要存储在逆一次水平变换中使用的多个变换类型和多个尺寸的变换矩阵。换言之,变换矩阵导出部451可以抑制变换矩阵的LUT尺寸的增大(减小LUT尺寸)。
此外,在这种情况下,可以在矩阵计算部452中共享变换类型trType的(maxTbS)×(maxTbS)变换矩阵的矩阵计算和(nTbS)×(nTbS)变换矩阵的矩阵计算。即,矩阵计算部452可以使用相同的计算电路来执行关于逆一次水平变换的矩阵计算,而不管变换矩阵的变换类型和尺寸。换言之,矩阵计算部452可以抑制电路规模的增加(减小电路规模)。
<13.注释>
<计算机>
上述一系列处理可以由硬件执行或者可以由软件执行。在一系列处理由软件执行的情况下,软件中包括的程序被安装在计算机上。这里,计算机的示例包括并入到专用硬件中的计算机以及可以通过安装各种程序来执行各种功能的通用个人计算机。
图55是示出了使用程序来执行上述一系列处理的计算机的硬件的配置示例的框图。
在图55所示的计算机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例如将存储在存储部813中的程序通过输入-输出接口810和总线804加载至RAM 803以执行程序,从而执行一系列处理。CPU 801执行各种处理所需的数据等也被适当地存储在RAM 803中。
可以通过例如将程序记录在作为封装介质等的可移除介质821中来应用由计算机(CPU 801)执行的程序。在这种情况下,可移动介质821可以安装在驱动器815上,以通过输入-输出接口810将程序安装在存储部813上。
此外,还可以通过诸如局域网、因特网和数字卫星广播的有线或无线传输介质来提供程序。在这种情况下,可以通过通信部814来接收程序并且将程序安装在存储部813上。
另外,程序还可以被预先安装在ROM 802或存储部813上。
<信息和处理的单元>
可以自由地选择在设定各种类型的信息时的数据单元和在上述各种处理中的数据单元,并且数据单元不限于这些示例。例如,可以针对每个TU(变换单元)、TB(变换块)、PU(预测单元)、PB(预测块)、CU(编码单元)、LCU(最大编码单元)、子块、块、区块、片、图片、序列或分量来设定信息和处理,或者数据单元中的数据可以作为目标。显然,可以为每条信息或处理设定数据单元,并且不是信息和处理的所有数据单元都必须是统一的。注意,可以自由地选择信息的存储位置,并且可以将信息存储在数据单元的头部、参数集等中。此外,信息可以被存储在多个位置中。
<控制信息>
可以将关于每个实施方式中描述的本技术的控制信息从编码侧传送至解码侧。例如,可以传送用于控制是否允许(或禁止)上述本技术的应用的控制信息(例如,enabled_flag)。另外,例如,可以传送指示本技术要被应用到的目标(或者本技术不被应用到的目标)的控制信息。例如,可以传送用于指定其中应用本技术(或者其中允许或禁止本技术的应用)的块尺寸(上限和下限中的一个或两个)、帧、分量、层等的控制信息。
<本技术的目标>
本技术可以应用于任何图像编码和解码系统。即,可以自由地选择关于图像编码和解码的各种处理的规范,例如变换(逆变换)、量化(逆量化)、编码(解码)以及预测,只要规范不与本技术矛盾,并且规范不限于这些示例。另外,除非相对于本技术出现任何矛盾,否则可以跳过部分处理。
另外,本技术可以应用于执行包括来自多个视点(视图)的图像的多视图图像的编码和解码的多视图图像编码/解码系统。在这种情况下,本技术可以应用于每个视点(视图)的编码和解码。
此外,本技术可以应用于分层图像编码(可缩放编码)和解码系统,其对被划分成多个层(分层)的分层图像进行编码和解码以提供针对预定参数的可缩放性功能。在这种情况下,本技术可以应用于每个分层(层)的编码和解码。
根据实施方式的图像编码装置100和图像解码装置200可以应用于各种电子设备,包括例如在通过卫星广播、诸如有线电视的有线广播、或因特网的分发中或者在通过蜂窝通信分发到终端中的发送器和接收器(例如,电视接收器和便携式电话)、在诸如光盘、磁盘和闪存的介质中记录图像并且从这些存储介质再现图像的装置(例如,硬盘记录器和摄像装置)等。
另外,例如,本技术也可以以安装在系统中包括的装置或任何装置上的任何配置来执行,例如作为系统LSI(大规模集成)等的处理器(例如,视频处理器)、使用多个处理器等的模块(例如,视频模块)、使用多个模块等的单元(例如,视频单元)、以及除了单元之外还提供有其它功能的集(例如,视频集)(即,装置的一部分的配置)。
此外,本技术还可以应用于包括多个装置的网络系统。例如,本技术可以应用于云服务,其用于向诸如计算机、AV(视听)设备、便携式信息处理终端以及IoT(物联网)设备的任何终端提供关于图像(运动图像)的服务。
注意,根据本技术的系统、装置、处理部等可以用在例如任何领域中,例如运输、医疗护理、犯罪预防、农业、畜牧业、采矿业、美容护理、工厂、家用器具、天气观测、以及自然监测。另外,也可以自由地选择用途。
例如,本技术可以应用于用于提供供观看的内容等的系统或设备。另外,本技术可以应用于例如用于交通(例如用于监测交通状况以及用于控制自动驾驶)的系统或设备。此外,本技术还可以应用于例如用于安全性的系统或设备。另外,本技术可以应用于例如用于机器等的自动控制的系统或设备。此外,本技术还可以应用于例如用于农业或畜牧业的系统或设备。另外,本技术还可以应用于例如监测诸如火山、森林和海洋、野生动物等的自然状态的系统或设备。此外,本技术还可以应用于例如用于体育运动的系统或设备。
<其他方面>
注意,本说明书中的“标志”是用于识别多个状态的信息,并且该“标志”不仅包括用于识别真(1)和假(0)这两个状态的信息,而且还包括能够识别三个或更多个状态的信息。因此,“标志”的可能值的数目可以是两个,例如1/0,或者可以是三个或更多个。即,可以自由地选择“标志”的位数,并且该“标志”可以包括1位或多位。另外,关于识别信息(包括标志),不仅可以存在在比特流中包括识别信息的形式,而且可以存在在比特流中包括识别信息相对于参考信息的差异信息的形式。因此,本说明书中的“标志”和“识别信息”不仅包括“标志”和“识别信息”的信息,而且包括相对于参考信息的差异信息。
另外,可以以任何形式发送或记录关于编码数据(比特流)的各种类型的信息(元数据等),只要信息与编码数据相关联即可。在此,术语“相关联”表示例如在处理一条数据时可以使用(可以链接)另一条数据。即,彼此相关联的多条数据可以被集成为一条数据,或者可以被提供为单独的若干条数据。例如,可以在与编码数据(图像)的发送路径不同的发送路径上发送与编码数据(图像)相关联的信息。另外,例如,可以将与编码数据(图像)相关联的信息记录在与编码数据(图像)的记录介质分开的记录介质中(或者记录在同一记录介质的分开的记录区域中)。注意,数据的一部分可以是“相关联的”,而不是整个数据是“相关联的”。例如,图像和与图像对应的信息可以以诸如多个帧、一个帧和帧的一部分的任何单元彼此相关联。
注意,本说明书中的诸如“组合”、“复用”、“添加”、“集成”、“包括”、“存储”、“放入”、“放到……中”和“插入”的术语表示将多个事物分组为一个事物,例如将编码数据和元数据分组为一条数据,并且每个术语表示上述“相关联”的一种方法。
另外,本技术的实施方式不限于上述实施方式,并且在不脱离本技术的范围的情况下可以进行各种改变。
另外,例如,本技术还可以以诸如以下装置或系统中包括的任何配置来执行,例如作为系统LSI(大规模集成)等的处理器、使用多个处理器等的模块、使用多个模块等的单元、以及除了该单元之外还提供有其他功能的集合(即,装置的一部分的配置)。
注意,在本说明书中,系统表示多个构成元件(装置、模块(部件)等)的集合,而且所有构成元件是否在同一壳体中并不重要。因此,存储在分开的壳体中并且通过网络连接的多个装置以及将多个模块存储在一个壳体中的一个装置均是系统。
另外,例如,可以对上述一个装置(或处理部)的配置进行划分以提供多个装置(或处理部)。相反,可以将上述多个装置(或处理部)的配置集成以提供一个装置(或处理部)。另外,明显可以向每个装置(或每个处理部)的配置添加除了上述配置之外的配置。此外,可以将装置(或处理部)的配置的一部分包括在另一装置(或另一处理部)的配置中,只要整个系统的配置和操作基本上相同即可。
另外,本技术可以被提供为例如云计算,在云计算中,多个装置共享一个功能并且通过网络进行协作以执行处理。
另外,例如可以通过任何装置来执行上述程序。在该情况下,该装置仅需要具有必要的功能(例如功能块)并且获得必要的信息。
另外,例如,一个装置可以执行流程图中描述的每个步骤,或者多个装置可以负责并执行每个步骤。此外,在一个步骤包括多个处理的情况下,一个装置可以执行包括在一个步骤中的多个处理,或者多个装置可以负责并执行这些处理。换言之,还可以将一个步骤中包括的多个处理作为多个步骤的处理来执行。相反,描述为多个步骤的处理也可以被集成到一个步骤中并被执行。
注意,在由计算机执行的程序中,描述程序的步骤的处理可以按照本说明书中描述的时间顺序执行,或者可以并行执行,或者在诸如调用程序时的必要时刻单独执行。即,步骤的处理也可以以与上述顺序不同的顺序被执行,只要不存在矛盾即可。此外,描述程序的步骤的处理可以与其他程序的处理并行执行,或者可以与其他程序的处理组合地被执行。
注意,只要不存在矛盾,本说明书中描述的多个本技术可以独立地且单独地执行。明显的是,可以组合并执行多个自由选择的本技术。例如,在实施方式之一中描述的本技术的全部或一部分也可以与在另一实施方式中描述的本技术的全部或一部分组合地被执行。另外,上述的任何本技术中的全部或一部分也可以与以上未描述的其他技术组合地被执行。
附图标记列表
001变换矩阵导出部、002变换矩阵LUT、003采样部、004翻转部、005转置部、006符号反转部、100图像编码装置、101控制部、113正交变换部、115编码部、118逆正交变换部、152一次变换部、200图像解码装置、212解码部、214逆正交变换部、253逆一次变换部、311一次变换选择部、312一次水平变换部、313一次垂直变换部、321变换矩阵导出部、351变换矩阵导出部、411逆一次变换选择部、412逆一次垂直变换部、413逆一次水平变换部、421变换矩阵导出部、451变换矩阵导出部、500变换矩阵导出装置、511变换矩阵LUT、512导出方法设定部、513采样部、514子矩阵操作部、521采样参数导出部、522子矩阵提取部、531翻转部、532符号反转部。

Claims (30)

1.一种图像处理装置,包括:
解码部,其对比特流进行解码以生成其中图像的预测残差被正交变换的系数数据;
导出部,其从作为具有第一尺寸的第一变换矩阵的一部分的子矩阵导出具有第二尺寸的第二变换矩阵,所述第二尺寸是比所述第一尺寸小的尺寸;以及
逆正交变换部,其使用由所述导出部导出的所述第二变换矩阵,对由所述解码部生成的所述系数数据应用逆正交变换,
其中,所述导出部导出通过基于预定采样参数对所述第一变换矩阵的矩阵元素进行采样而获得的矩阵作为所述子矩阵,以及
其中,所述采样参数包括
指示进行采样时的行间隔的采样间隔stepsize,
指示采样的行位置上的偏移的行偏移offsetCol,以及
指示采样的列位置上的偏移的列偏移offsetRow。
2.根据权利要求1所述的图像处理装置,其中,
所述导出部导出偶数低阶矩阵作为所述子矩阵,所述偶数低阶矩阵包括偶数矩阵的左半部分矩阵元素中的矩阵元素,所述偶数矩阵包括所述第一变换矩阵的偶数行的矩阵元素。
3.根据权利要求1所述的图像处理装置,其中,
所述导出部导出偶数高阶矩阵作为所述子矩阵,所述偶数高阶矩阵包括偶数矩阵的右半部分矩阵元素中的矩阵元素,所述偶数矩阵包括所述第一变换矩阵的偶数行的矩阵元素。
4.根据权利要求1所述的图像处理装置,其中,
所述导出部导出奇数低阶矩阵作为所述子矩阵,所述奇数低阶矩阵包括奇数矩阵的左半部分矩阵元素中的矩阵元素,所述奇数矩阵包括所述第一变换矩阵的奇数行的矩阵元素。
5.根据权利要求1所述的图像处理装置,其中,
所述导出部导出奇数高阶矩阵作为所述子矩阵,所述奇数高阶矩阵包括奇数矩阵的右半部分矩阵元素中的矩阵元素,所述奇数矩阵包括所述第一变换矩阵的奇数行的矩阵元素。
6.根据权利要求1所述的图像处理装置,其中,
所述导出部对所述子矩阵的矩阵元素应用操作以导出所述第二变换矩阵。
7.根据权利要求6所述的图像处理装置,其中,
所述导出部多次应用所述操作以导出所述第二变换矩阵。
8.根据权利要求6所述的图像处理装置,其中,
所述导出部对所述子矩阵的矩阵元素应用置换操作以导出所述第二变换矩阵。
9.根据权利要求6所述的图像处理装置,其中,
所述导出部对所述子矩阵的矩阵元素应用翻转操作以导出所述第二变换矩阵。
10.根据权利要求6所述的图像处理装置,其中,
所述导出部对所述子矩阵的矩阵元素应用转置操作以导出所述第二变换矩阵。
11.根据权利要求6所述的图像处理装置,其中,
所述导出部对所述子矩阵的矩阵元素应用符号反转操作以导出所述第二变换矩阵。
12.根据权利要求6所述的图像处理装置,其中,
所述第一尺寸是2^(N)×2^(N),并且
所述第二尺寸是2^(N-1)×2^(N-1),其中,
N是等于或大于3的整数,并且^是取幂。
13.根据权利要求1所述的图像处理装置,其中,
所述导出部使用查找表中存储的所述第一变换矩阵来导出所述第二变换矩阵。
14.根据权利要求1所述的图像处理装置,其中,
所述逆正交变换部对所述系数数据应用逆二次变换,并且使用由所述导出部导出的所述第二变换矩阵对所述逆二次变换的结果应用逆一次变换。
15.根据权利要求1所述的图像处理装置,其中,
所述解码部使用四叉树块结构或四叉树加二叉树块结构的编码单元作为处理单元来对所述比特流进行解码。
16.根据权利要求1所述的图像处理装置,其中,
所述逆正交变换部使用四叉树块结构或四叉树加二叉树块结构的变换单元作为处理单元来对所述系数数据应用所述逆正交变换。
17.根据权利要求1所述的图像处理装置,其中,
所述第一变换矩阵是变换类型trType为DCT2的变换矩阵,所述第一尺寸是变换块的最大尺寸maxTbS,并且所述第二尺寸是一维变换的尺寸nTbS。
18.根据权利要求17所述的图像处理装置,其中,
所述导出部基于如下所导出的所述采样间隔stepsize、所述行偏移offsetCol和所述列偏移offsetRow对所述第一变换矩阵进行采样,以导出变换类型trType为DCT2的所述第二变换矩阵:
stepsize=1<<(Log2(maxTbS)–Log2(nTbS)),
offsetCol=0,以及
offsetRow=0。
19.根据权利要求18所述的图像处理装置,其中,
所述导出部对通过对所述第一变换矩阵进行采样而获得的所述子矩阵的矩阵元素应用每列的翻转操作,并且还执行奇数列的符号反转操作,以导出变换类型trType为DST2的所述第二变换矩阵。
20.根据权利要求17所述的图像处理装置,其中,
所述导出部基于如下所导出的所述采样间隔stepsize、所述行偏移offsetCol和所述列偏移offsetRow对所述第一变换矩阵进行采样,以导出变换类型trType为DCT4的所述第二变换矩阵:
stepsize=1<<(Log2(maxTbS)–Log2(nTbS)),
offsetCol=stepsize>>1,以及
offsetRow=0。
21.根据权利要求20所述的图像处理装置,其中,
所述导出部对通过对所述第一变换矩阵进行采样而获得的所述子矩阵的矩阵元素应用每行的翻转操作,以导出变换类型trType为FlipDCT4的所述第二变换矩阵。
22.根据权利要求21所述的图像处理装置,其中,
所述导出部对进行了所述翻转操作的所述子矩阵的矩阵元素应用奇数行的符号反转操作,以导出变换类型trType为DST4的所述第二变换矩阵。
23.根据权利要求17所述的图像处理装置,其中,
所述导出部基于如下所导出的所述采样间隔stepsize、所述行偏移offsetCol和所述列偏移offsetRow对所述第一变换矩阵进行采样,将获得的子矩阵的偶数行的矩阵元素乘以如下基于所述行偏移offsetCol导出的基本符号baseSign,并且将所述子矩阵的奇数行的矩阵元素乘以所述基本符号的相反符号-baseSign,以导出变换类型trType为DST4的所述第二变换矩阵:
stepsize=1<<(Log2(maxTbS)–Log2(nTbS)),
offsetCol=stepsize>>1,
offsetRow=maxTbS–nTbS,以及
baseSign=(offsetCol%2==0)?1:-1。
24.根据权利要求1所述的图像处理装置,其中,
所述解码部包括:
算术解码部,其对所述比特流进行算术解码以生成量化数据,以及
逆量化部,其对由所述算术解码部生成的所述量化数据应用逆量化,以生成所述系数数据,并且
所述逆正交变换部对由所述逆量化部生成的所述系数数据应用逆正交变换。
25.根据权利要求1所述的图像处理装置,其中,
所述第一变换矩阵的每个元素被缩放并被近似为整数。
26.一种图像处理方法,包括:
对比特流进行解码以生成其中图像的预测残差被正交变换的系数数据;
从作为具有第一尺寸的第一变换矩阵的一部分的子矩阵导出具有第二尺寸的第二变换矩阵,所述第二尺寸是比所述第一尺寸小的尺寸;以及
使用所导出的第二变换矩阵来对所生成的系数数据应用逆正交变换,
其中,导出通过基于预定采样参数对所述第一变换矩阵的矩阵元素进行采样而获得的矩阵作为所述子矩阵,以及
其中,所述采样参数包括
指示进行采样时的行间隔的采样间隔stepsize,
指示采样的行位置上的偏移的行偏移offsetCol,以及
指示采样的列位置上的偏移的列偏移OffsetRow。
27.一种图像处理装置,包括:
导出部,其从作为具有第一尺寸的第一变换矩阵的一部分的子矩阵导出具有第二尺寸的第二变换矩阵,所述第二尺寸是比所述第一尺寸小的尺寸;
正交变换部,其使用由所述导出部导出的所述第二变换矩阵,对图像的预测残差进行正交变换并且生成系数数据;以及
编码部,其对由所述正交变换部生成的所述系数数据进行编码,以生成比特流,
其中,所述导出部导出通过基于预定采样参数对所述第一变换矩阵的矩阵元素进行采样而获得的矩阵作为所述子矩阵,以及
其中,所述采样参数包括
指示进行采样时的行间隔的采样间隔stepsize,
指示采样的行位置上的偏移的行偏移offsetCol,以及
指示采样的列位置上的偏移的列偏移OffsetRow。
28.一种图像处理方法,包括:
从作为具有第一尺寸的第一变换矩阵的一部分的子矩阵导出具有第二尺寸的第二变换矩阵,所述第二尺寸是比所述第一尺寸小的尺寸;
使用所导出的第二变换矩阵对图像的预测残差进行正交变换并且生成系数数据;以及
对所生成的系数数据进行编码以生成比特流,
其中,导出通过基于预定采样参数对所述第一变换矩阵的矩阵元素进行采样而获得的矩阵作为所述子矩阵,以及
其中,所述采样参数包括
指示进行采样时的行间隔的采样间隔stepsize,
指示采样的行位置上的偏移的行偏移offsetCol,以及
指示采样的列位置上的偏移的列偏移OffsetRow。
29.一种包含程序的非暂态计算机可读介质,所述程序在由计算机执行时使所述计算机执行图像处理方法,所述图像处理方法包括:
对比特流进行解码以生成其中图像的预测残差被正交变换的系数数据;
从作为具有第一尺寸的第一变换矩阵的一部分的子矩阵导出具有第二尺寸的第二变换矩阵,所述第二尺寸是比所述第一尺寸小的尺寸;以及
使用所导出的第二变换矩阵来对所生成的系数数据应用逆正交变换,
其中,导出通过基于预定采样参数对所述第一变换矩阵的矩阵元素进行采样而获得的矩阵作为所述子矩阵,以及
其中,所述采样参数包括
指示进行采样时的行间隔的采样间隔stepsize,
指示采样的行位置上的偏移的行偏移offsetCol,以及
指示采样的列位置上的偏移的列偏移OffsetRow。
30.一种包含程序的非暂态计算机可读介质,所述程序在由计算机执行时使所述计算机执行图像处理方法,所述图像处理方法包括:
从作为具有第一尺寸的第一变换矩阵的一部分的子矩阵导出具有第二尺寸的第二变换矩阵,所述第二尺寸是比所述第一尺寸小的尺寸;
使用所导出的第二变换矩阵对图像的预测残差进行正交变换并且生成系数数据;以及
对所生成的系数数据进行编码以生成比特流,
其中,导出通过基于预定采样参数对所述第一变换矩阵的矩阵元素进行采样而获得的矩阵作为所述子矩阵,以及
其中,所述采样参数包括
指示进行采样时的行间隔的采样间隔stepsize,
指示采样的行位置上的偏移的行偏移offsetCol,以及
指示采样的列位置上的偏移的列偏移OffsetRow。
CN201980021443.XA 2018-03-30 2019-03-18 图像处理装置和方法 Active CN111937398B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2018-067808 2018-03-30
JP2018067808 2018-03-30
JP2018124008 2018-06-29
JP2018-124008 2018-06-29
PCT/JP2019/011049 WO2019188467A1 (ja) 2018-03-30 2019-03-18 画像処理装置および方法

Publications (2)

Publication Number Publication Date
CN111937398A CN111937398A (zh) 2020-11-13
CN111937398B true CN111937398B (zh) 2023-04-21

Family

ID=68061554

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980021443.XA Active CN111937398B (zh) 2018-03-30 2019-03-18 图像处理装置和方法

Country Status (3)

Country Link
US (1) US11336919B2 (zh)
CN (1) CN111937398B (zh)
WO (1) WO2019188467A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020190113A1 (ko) * 2019-03-21 2020-09-24 삼성전자주식회사 블록 형태별로 블록 크기가 설정되는 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US11290731B2 (en) * 2019-05-22 2022-03-29 Tencent America LLC Method and apparatus for video coding
CN113950829A (zh) * 2019-06-06 2022-01-18 北京字节跳动网络技术有限公司 简化的变换编解码工具
US11930177B2 (en) * 2021-10-29 2024-03-12 Tencent America LLC Primary transforms for cross-component level reconstruction
US11856227B2 (en) * 2022-05-26 2023-12-26 Mediatek Inc. Transform architecture in video encoding systems

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201136319A (en) * 2009-08-06 2011-10-16 Panasonic Corp Encoding method, decoding method, encoding device and decoding device
GB2501535A (en) * 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US11025922B2 (en) * 2012-06-13 2021-06-01 Texas Instruments Incorporated Inverse transformation using pruning for video coding
JP2014036278A (ja) * 2012-08-07 2014-02-24 Nippon Hoso Kyokai <Nhk> 画像符号化装置、画像復号装置及びプログラム
EP3306937A1 (en) * 2016-10-05 2018-04-11 Thomson Licensing Method and apparatus for encoding and decoding a video

Also Published As

Publication number Publication date
WO2019188467A1 (ja) 2019-10-03
US20210014533A1 (en) 2021-01-14
CN111937398A (zh) 2020-11-13
US11336919B2 (en) 2022-05-17

Similar Documents

Publication Publication Date Title
CN111937398B (zh) 图像处理装置和方法
EP2979450B1 (en) Intra prediction modes for lossy coding when transform is skipped
CN113873241B (zh) 用于对视频进行解码的方法和用于对视频进行编码的方法
JP7283389B2 (ja) 画像処理装置および方法
CN108134931B (zh) 视频解码方法、视频编码方法和非暂时性计算机可读媒体
US11924430B2 (en) Data encoding and decoding
CN111373757B (zh) 图像处理设备和方法
JP7334730B2 (ja) 画像処理装置および方法
EP3952313B1 (en) Transform in intra prediction-based image coding
US20210144376A1 (en) Image processing apparatus and method
CN113039794A (zh) 图像处理装置和方法
CN115176476A (zh) 图像处理装置、比特流生成方法、系数数据生成方法以及量化系数生成方法
KR20230169985A (ko) 저주파 비분리 변환 설계 방법 및 장치
CN114982235A (zh) 图像处理装置和方法
CN115398923A (zh) 视频编解码中支持不同颜色格式的系数编解码

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
GR01 Patent grant
GR01 Patent grant