(57)【要約】  本開示は、符号化効率の低減を抑制する（符号化効率を改善する）ことができるようにする画像処理装置および方法に関する。符号化データを復号して係数データを生成し、符号化パラメータに基づいて制御された逆直交変換のタイプに従って、生成された係数データを、逆直交変換する。本開示は、例えば、画像処理装置、画像符号化装置、または画像復号装置等に適用することができる。
2019188466.tif 000002
【特許請求の範囲】
【請求項１】
符号化データを復号して係数データを生成する復号部と、
符号化パラメータに基づいて制御された逆直交変換のタイプに従って、前記復号部により生成された係数データを逆直交変換する逆直交変換部と
を備える画像処理装置。
【請求項２】
前記復号部は、
前記符号化パラメータに応じて設定された前記逆直交変換のタイプの候補の数に基づいて、前記符号化データに含まれる前記逆直交変換のタイプに関する情報をパースし、
前記逆直交変換部は、パースした前記逆直交変換のタイプに関する情報に基づいて設定された前記逆直交変換のタイプの変換行列を用いて、前記係数データを逆直交変換する
請求項１に記載の画像処理装置。
【請求項３】
前記符号化パラメータは、前記符号化データに含まれるシンタックス要素の値、または、シンタックス要素の値から導出される変数を含む
請求項２に記載の画像処理装置。
【請求項４】
前記逆直交変換部は、色差信号の場合、前記逆直交変換のタイプの候補の数を、輝度信号の場合よりも少なく設定する
請求項３に記載の画像処理装置。
【請求項５】
前記逆直交変換部は、インター予測の場合、前記逆直交変換のタイプの候補の数を、イントラ予測の場合よりも少なく設定する
請求項３に記載の画像処理装置。
【請求項６】
前記逆直交変換部は、双予測の場合、前記逆直交変換のタイプの候補の数を、順予測の場合よりも少なく設定する
請求項３に記載の画像処理装置。
【請求項７】
前記逆直交変換部は、予測のモードが、再構成した輝度信号から色差信号を線形予測するLMChromaである場合、前記逆直交変換のタイプの候補の数を、他のモードの場合よりも少なく設定する
請求項３に記載の画像処理装置。
【請求項８】
前記逆直交変換部は、ブロックのサイズが小さい程、前記逆直交変換のタイプの候補の数をより少なく設定する
請求項３に記載の画像処理装置。
【請求項９】
前記逆直交変換部は、量子化パラメータの値が大きい程、前記逆直交変換のタイプの候補の数を、より少なく設定する
請求項３に記載の画像処理装置。
【請求項１０】
前記逆直交変換部は、時間方向の階層符号化における階層が上位層である程、前記逆直交変換のタイプの候補の数を、より少なく設定する
請求項３に記載の画像処理装置。
【請求項１１】
前記逆直交変換部は、前記逆直交変換の処理対象とするブロックにおける非ゼロ係数が少ない程、前記逆直交変換のタイプの候補の数を、より少なく設定する
請求項３に記載の画像処理装置。
【請求項１２】
前記逆直交変換部は、前記逆直交変換の処理対象とするブロックにおけるスキャン順に最後の非ゼロ係数であるラスト係数の位置が近い程、前記逆直交変換のタイプの候補の数を、より少なく設定する
請求項３に記載の画像処理装置。
【請求項１３】
前記逆直交変換部は、前記逆直交変換の処理対象とするブロックにおける非ゼロ係数の絶対値の総和が小さい程、前記逆直交変換のタイプの候補の数を、より少なく設定する
請求項３に記載の画像処理装置。
【請求項１４】
前記逆直交変換部は、
パースした前記逆直交変換のタイプに関する情報に基づいて設定された垂直方向の逆１次元直交変換のタイプの変換行列を用いて、前記垂直方向の逆１次元直交変換を行い、
パースした前記逆直交変換のタイプに関する情報に基づいて設定された水平方向の逆１次元直交変換のタイプの変換行列を用いて、前記水平方向の逆１次元直交変換を行う
請求項２に記載の画像処理装置。
【請求項１５】
前記逆直交変換部は、
パースした前記逆直交変換のタイプに関する情報に基づいて、前記垂直方向の逆１次元直交変換のタイプと前記水平方向の逆１次元直交変換のタイプとの組み合わせの候補を絞り込む識別子である変換ペアインデックスを設定し、
前記変換ペアインデックスと予測のモードとに基づいて、前記組み合わせを選択することにより、前記垂直方向の逆１次元直交変換のタイプと前記水平方向の逆１次元直交変換のタイプとを設定する
請求項１４に記載の画像処理装置。
【請求項１６】
前記逆直交変換のタイプに関する情報は、前記逆直交変換のタイプを適応的に変更するかを示す変換フラグと、前記逆直交変換のタイプを適応的に変更する場合に前記組み合わせの候補を絞り込む識別子である変換インデックスとを含む
請求項１５に記載の画像処理装置。
【請求項１７】
前記復号部は、前記符号化データに含まれる前記変換インデックスを、前記符号化パラメータに応じたビット長のデータとしてパースする
請求項１６に記載の画像処理装置。
【請求項１８】
符号化データを復号して係数データを生成し、
符号化パラメータに基づいて制御された逆直交変換のタイプに従って、生成された係数データを逆直交変換する
画像処理方法。
【請求項１９】
符号化パラメータに基づいて制御された直交変換のタイプに従って、画像データを直交変換して係数データを生成する直交変換部と、
前記直交変換部により生成された前記係数データを符号化して、符号化データを生成する符号化部と
を備える画像処理装置。
【請求項２０】
符号化パラメータに基づいて制御された直交変換のタイプに従って、画像データを直交変換して係数データを生成し、
生成された前記係数データを符号化して、符号化データを生成する
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置および方法に関し、特に、符号化効率の低減を抑制する（符号化効率を改善する）ことができるようにした画像処理装置および方法に関する。
【背景技術】
【０００２】
従来、輝度について、TU（Transform Unit）単位毎の、水平方向のプライマリ変換PThor（プライマリ水平変換とも称する）および垂直方向のプライマリ変換PTver（プライマリ垂直変換とも称する）毎に、適応的に複数の異なる直交変換から、プライマリ変換を選択する適応プライマリ変換（AMT: Adaptive Multiple Core Transforms）が開示されている（例えば、非特許文献１参照）。【０００３】
非特許文献１では、プライマリ変換の候補として、DCT-II, DST-VII, DCT-VIII, DST-I, DCT-VIの５つの１次元直交変換がある。AMTが適用される場合、予測モードで決まる変換セットの中から、水平／垂直にどの直交変換を適用するかを表す２ビットのインデックスがシグナルされ、方向毎に２つの候補から１つの変換が選択されていた。また、さらに、DST-IVおよびIDT（Identity Transform: １次元変換スキップ）の２つの１次元直交変換を追加し、計７つの１次元直交変換をプライマリ変換の候補とすることが提案されている（例えば、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Jianle Chen, Elena Alshina, Gary J. Sullivan, Jens-Rainer, Jill Boyce, "Algorithm Description of Joint Exploration Test Model 4", JVET-G1001_v1, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT, 13-21 July 2017
【非特許文献２】V. Lorcy, P. Philippe, "Proposed improvements to the Adaptive multiple Core transform", JVET-C0022, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 3rd Meeting: Geneva, CH, 26 May - 1 June 2016
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、相対的に残差信号の符号量が多くAMTのモード情報の符号量が少ないブロックでは、残差信号の符号量をより削減することが望ましい。これに対して、相対的に残差信号の符号量が少なくAMTのモード情報の符号量が多いブロックでは、AMTのモード情報の符号量をより削減することが望ましい。しかしながら、従来の方法の場合、AMTの変換の候補の数が固定であり、上述の傾向に対応することが困難であった。そのため、AMTのモード情報や残差信号の符号量が不要に増大し、符号化効率が低減するおそれがあった。【０００６】
本開示は、このような状況に鑑みてなされたものであり、符号化効率の低減を抑制する（符号化効率を改善する）ことができるようにするものである。
【課題を解決するための手段】
【０００７】
本技術の一側面の画像処理装置は、符号化データを復号して係数データを生成する復号部と、符号化パラメータに基づいて制御された逆直交変換のタイプに従って、前記復号部により生成された係数データを逆直交変換する逆直交変換部とを備える画像処理装置である。【０００８】
本技術の一側面の画像処理方法は、符号化データを復号して係数データを生成し、符号化パラメータに基づいて制御された逆直交変換のタイプに従って、生成された係数データを逆直交変換する画像処理方法である。【０００９】
本技術の他の側面の画像処理装置は、符号化パラメータに基づいて制御された直交変換のタイプに従って、画像データを直交変換して係数データを生成する直交変換部と、前記直交変換部により生成された前記係数データを符号化して、符号化データを生成する符号化部とを備える画像処理装置である。【００１０】
本技術の他の側面の画像処理方法は、符号化パラメータに基づいて制御された直交変換のタイプに従って、画像データを直交変換して係数データを生成し、生成された前記係数データを符号化して、符号化データを生成する画像処理方法である。【００１１】
本技術の一側面の画像処理装置および方法においては、符号化データが復号されて係数データが生成され、符号化パラメータに基づいて制御された逆直交変換のタイプに従って、生成された係数データが逆直交変換される。【００１２】
本技術の他の側面の画像処理装置および方法においては、符号化パラメータに基づいて制御された直交変換のタイプに従って、画像データが直交変換されて係数データが生成され、その生成された係数データが符号化されて、符号化データが生成される。
【発明の効果】
【００１３】
本開示によれば、画像を処理することができる。特に、直交変換および逆直交変換に必要なメモリ容量の増大を抑制することができる。また、直交変換のモード情報や残差信号の符号量をより効率的に削減することができる。なお、上述の効果は必ずしも限定的なものではなく、上述の効果と共に、または上述の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１４】
【図１】符号化パラメータに応じた選択可能な変換ペア数の例を示す図である。
【図２】各変換セットにおいて選択可能な変換ペアの例を示す図である。
【図３】変換セットと予測モードとの対応関係を示す図である。
【図４】画像符号化装置の主な構成例を示すブロック図である。
【図５】符号化処理の流れの例を説明するフローチャートである。
【図６】画像復号装置の主な構成例を示すブロック図である。
【図７】復号処理の流れの例を説明するフローチャートである。
【図８】変換ペア数の制御に用いる符号化パラメータの一覧の例を示す図である。
【図９】画像符号化装置の主な構成例を示すブロック図である。
【図１０】制御部の、直交変換の制御に関する主な構成例を示すブロック図である。
【図１１】直交変換部の主な構成例を示すブロック図である。
【図１２】プライマリ水平変換部の主な構成例を示すブロック図である。
【図１３】変換行列導出部の主な構成例を示すブロック図である。
【図１４】プライマリ垂直変換部の主な構成例を示すブロック図である。
【図１５】変換行列導出部の主な構成例を示すブロック図である。
【図１６】画像符号化処理の流れの例を示すフローチャートである。
【図１７】直交変換制御処理の流れの例を説明するフローチャートである。
【図１８】直交変換処理の流れの例を説明するフローチャートである。
【図１９】プライマリ変換処理の流れの例を説明するフローチャートである。
【図２０】プライマリ水平変換処理の流れの例を説明するフローチャートである。
【図２１】変換行列導出処理の流れの例を説明するフローチャートである。
【図２２】プライマリ垂直変換処理の流れの例を説明するフローチャートである。
【図２３】画像復号装置の主な構成例を示すブロック図である。
【図２４】復号部の、逆直交変換の制御に関する主な構成例を示すブロック図である。
【図２５】逆直交変換部の主な構成例を示すブロック図である。
【図２６】逆プライマリ垂直変換部の主な構成例を示すブロック図である。
【図２７】変換行列導出部の主な構成例を示すブロック図である。
【図２８】逆プライマリ水平変換部の主な構成例を示すブロック図である。
【図２９】変換行列導出部の主な構成例を示すブロック図である。
【図３０】画像復号処理の流れの例を説明するフローチャートである。
【図３１】逆直交変換制御処理の流れの例を説明するフローチャートである。
【図３２】逆直交変換処理の流れの例を説明するフローチャートである。
【図３３】逆プライマリ変換処理の流れの例を説明するフローチャートである。
【図３４】逆プライマリ垂直変換処理の流れの例を説明するフローチャートである。
【図３５】逆プライマリ水平変換処理の流れの例を説明するフローチャートである。
【図３６】符号化パラメータに応じた、選択可能な変換ペア数の例を示す図である。
【図３７】変換ペア識別情報の符号化・復号の例を示す図である。
【図３８】方法＃１による、選択可能な変換ペア数の設定の様子の例を示す図である。
【図３９】変換ペア数設定処理の流れの例を説明するフローチャートである。
【図４０】方法＃２−１による、選択可能な変換ペア数の設定の様子の例を示す図である。
【図４１】変換ペア数設定処理の流れの例を説明するフローチャートである。
【図４２】方法＃２−２による、選択可能な変換ペア数の設定の様子の例を示す図である。
【図４３】変換ペア数設定処理の流れの例を説明するフローチャートである。
【図４４】方法＃３による、選択可能な変換ペア数の設定の様子の例を示す図である。
【図４５】変換ペア数設定処理の流れの例を説明するフローチャートである。
【図４６】方法＃４−１による、選択可能な変換ペア数の設定の様子の例を示す図である。
【図４７】変換ペア数設定処理の流れの例を説明するフローチャートである。
【図４８】方法＃４−２による、選択可能な変換ペア数の設定の様子の例を示す図である。
【図４９】変換ペア数設定処理の流れの例を説明するフローチャートである。
【図５０】方法＃５−１による、選択可能な変換ペア数の設定の様子の例を示す図である。
【図５１】変換ペア数設定処理の流れの例を説明するフローチャートである。
【図５２】方法＃５−２による、選択可能な変換ペア数の設定の様子の例を示す図である。
【図５３】変換ペア数設定処理の流れの例を説明するフローチャートである。
【図５４】方法＃５−３による、選択可能な変換ペア数の設定の様子の例を示す図である。
【図５５】変換ペア数設定処理の流れの例を説明するフローチャートである。
【図５６】選択可能な変換ペア数の例を示す図である。
【図５７】選択可能な変換ペア数の設定の仕方の例を示す図である。
【図５８】選択可能な変換ペア数の設定に関する制御情報の例を示すシンタックスである。
【図５９】コンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本開示を実施するための形態（以下実施の形態とする）について説明する。なお、説明は以下の順序で行う。
１．適応直交変換
２．共通コンセプト
２−１．画像符号化装置
２−２．画像復号装置
２−３．方法一覧
２−４．画像符号化装置
２−５．画像復号装置
２−６．その他
３．第１の実施の形態（方法＃１）
４．第２の実施の形態（方法＃２）
４−１．方法＃２−１
４−２．方法＃２−２
４−３．方法＃２−３
５．第３の実施の形態（方法＃３）
６．第４の実施の形態（方法＃４）
６−１．方法＃４−１
６−２．方法＃４−２
７．第５の実施の形態（方法＃５）
７−１．方法＃５−１
７−２．方法＃５−２
７−３．方法＃５−３
８．応用例
９．付記
【００１６】
＜１．適応直交変換＞
＜技術内容・技術用語をサポートする文献等＞
本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献に記載されている内容も含まれる。
【００１７】
非特許文献１：（上述）
非特許文献３：TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU（International Telecommunication Union）, "Advanced video coding for generic audiovisual services", H.264, 04/2017
非特許文献４：TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU（International Telecommunication Union）, "High efficiency video coding", H.265, 12/2016
【００１８】
つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、非特許文献４に記載されているQuad-Tree Block Structure、非特許文献１に記載されているQTBT（Quad Tree Plus Binary Tree） Block Structureが実施の形態において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース（Parsing）、シンタックス（Syntax）、セマンティクス（Semantics）等の技術用語についても同様に、実施の形態において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。
【００１９】
また、本明細書において、画像（ピクチャ）の部分領域や処理単位として説明に用いる「ブロック」（処理部を示すブロックではない）は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、上述の非特許文献１、非特許文献３、および非特許文献４に記載のTB（Transform Block）、TU（Transform Unit）、PB（Prediction Block）、PU（Prediction Unit）、SCU（Smallest Coding Unit）、CU（Coding Unit）、LCU（Largest Coding Unit）、CTB（Coding Tree Block）、CTU（Coding Tree Unit）、変換ブロック、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域（処理単位）が含まれるものとする。また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック（例えばLCUやSCU等）のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報の情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定（例えば、許容されるブロックサイズの範囲の指定等）も含む。
【００２０】
また、本明細書において、符号化とは、画像をビットストリームに変換する全体の処理だけではなく、一部の処理も含む。例えば、予測処理、直交変換、量子化、算術符号化等を包括した処理を含むだけではなく、量子化と算術符号化とを総称した処理、予測処理と量子化と算術符号化とを包括した処理、などを含む。同様に、復号とは、ビットストリームを画像に変換する全体の処理だけではなく、一部の処理も含む。例えば、逆算術復号、逆量子化、逆直交変換、予測処理等を包括した処理を含むだけではなく、逆算術復号と逆量子化とを包括した処理、逆算術復号と逆量子化と予測処理とを包括した処理、などを含む。
【００２１】
＜適応直交変換＞
非特許文献１に記載のテストモデル（JEM4（Joint Exploration Test Model 4））においては、輝度の変換ブロックについて、水平方向のプライマリ変換PThor（プライマリ水平変換とも称する）、および垂直方向のプライマリ変換PTver（プライマリ垂直変換とも称する）毎に、適応的に複数の異なる１次元直交変換から、プライマリ変換を選択する適応プライマリ変換（AMT（Adaptive Multiple core Transforms））が開示されている。なお、AMTは、EMT（Explicit Multiple core Transforms）とも称する。
【００２２】
具体的には、輝度の変換ブロックについて、適応プライマリ変換を実施するか否かを示す適応プライマリ変換フラグapt_flagが０（偽）の場合には、プライマリ変換として、DCT（Discrete Cosine Transform）-II、またはDST（Discrete Sine Transform）-VIIがモード情報によって一意に決定される（TrSetIdx = 4）。
【００２３】
適応プライマリ変換フラグapt_flagが１（真）の場合であって、処理対象の輝度の変換ブロックを含むカレントCU（Coding Unit）がイントラCUである場合、水平方向（x方向）と垂直方向（y方向）のそれぞれについてのプライマリ変換の候補となる直交変換を含む変換セットTrSetが、３つの変換セットTrSet（TrSetIdx = 0,1,2）の中から選択される。なお、上述したDST-VIIやDCT-VIII等は、直交変換のタイプを示している。
【００２４】
この変換セットTrSetは、モード情報と変換セットの対応表（のイントラ予測モード情報）に基づいて一意に決定される。例えば、以下の式（１）および式（２）のように、各変換セットTrSetH, TrSetVに対して、対応する変換セットTrSetを指定する変換セット識別子TrSetIdxを設定するように実施される。
【００２５】
【数１】
2019188466.tif 000003
【００２６】
ここで、TrSetHは、プライマリ水平変換PThorの変換セットを示し、TrSetVは、プライマリ垂直変換PTverの変換セットを示し、ルックアップテーブルLUT_IntraModeToTrSetは、モード情報と変換セットの対応表である。ルックアップテーブルLUT_IntraModeToTrSet[][]の１番目の配列は、イントラ予測モードIntraModeを引数とし、２番目の配列は、{H=0, V=1}を引数とする。
【００２７】
例えば、イントラ予測モード番号19（IntraMode == 19）の場合、プライマリ水平変換PThorの変換セットTrSetH（プライマリ水平変換セットとも称する）として、変換セット識別子TrSetIdx = 0の変換セットが選択され、プライマリ垂直変換PTverの変換セットTrSetV（プライマリ垂直変換セットとも称する）として、変換セット識別子TrSetIdx=2の変換セットが選択される。
【００２８】
なお、適応プライマリ変換フラグapt_flagが１（真）の場合であって、処理対象の輝度の変換ブロックを含むカレントCUがインターCUである場合、プライマリ水平変換の変換セットTrSetHおよびプライマリ垂直変換の変換セットTrSetVには、インターCU専用の変換セットInterTrSet（TrSetIdx = 3）を割り当てる。
【００２９】
続いて、水平方向と垂直方向のそれぞれについて、選択された変換セットTrSetのうち、どの直交変換を適用するかを、プライマリ水平変換指定フラグpt_hor_flagおよびプライマリ垂直変換指定フラグpt_ver_flagの内の対応する方によって選択する。
【００３０】
例えば、以下の式（３）および式（４）のように、プライマリ{水平，垂直}変換セットTrSet{H,V}と、プライマリ{水平，垂直}変換指定フラグpt_{hor,ver}_flagとを引数として、図１に示される変換セットの定義表(LUT_TrSetToTrTypeIdx)から導出する。
【００３１】
【数２】
2019188466.tif 000004
【００３２】
例えば、イントラ予測モード番号34（IntraMode == 34）（すなわち、プライマリ水平変換セットTraSetHが０）であり、プライマリ水平変換指定フラグpt_hor_flagが０である場合、変換セット定義表（LUT_TrSetToTrTypeIdx）から、式（３）の変換タイプ識別子TrTypeIdxHの値は４であり、該変換タイプ識別子TrTypeIdxHの値に対応する変換タイプはDST-VIIである。つまり、変換セット識別子TrSetIdxが０の変換セットのDST-VIIがプライマリ水平変換PThorの変換タイプとして選択される。また、プライマリ水平変換指定フラグpt_hor_flagが１の場合、DCT-VIIIが変換タイプとして選択される。なお、変換タイプを選択するとは、変換タイプ識別子TrTypeIdxを介して、該変換タイプ識別子TrTypeIdxで指定される変換タイプを選択することを含む。
【００３３】
なお、プライマリ水平変換指定フラグpt_hor_flagおよびプライマリ垂直変換指定フラグpt_ver_flagからプライマリ変換識別子pt_idxが、以下の式（５）に基づいて導出される。すなわち、プライマリ変換識別子pt_idxの上位１bitは、プライマリ垂直変換指定フラグの値に対応し、下位１bitは、プライマリ水平変換指定フラグの値に対応する。
【００３４】
【数３】
2019188466.tif 000005
【００３５】
導出されたプライマリ変換識別子pt_idxのbin列に対して、算術符号化を適用して、ビット列を生成することで、符号化が実施される。なお、適応プライマリ変換フラグapt_flag、およびプライマリ変換識別子pt_idxは、輝度の変換ブロックにおいてシグナルされる。
【００３６】
以上のように、非特許文献１では、プライマリ変換の候補として、DCT-II（DCT2）, DST-VII（DST7）, DCT-VIII（DCT8）, DST-I（DST1）, DCT-V（DCT5）の５つの１次元直交変換が提案されている。AMTが適用される場合、予測モードで決まる変換セットの中から、水平／垂直にどの直交変換を適用するかを表す２ビットのインデックスがシグナルされ、方向毎に２つの候補から１つの変換が選択されていた。また、非特許文献２においては、それらに加えて、さらに、DST-IV（DST4）およびIDT（Identity Transform：１次元変換スキップ）の２つの１次元直交変換が追加され、計７つの１次元直交変換をプライマリ変換の候補とすることが提案されている。
【００３７】
＜符号化効率＞
ところで、一般的に、AMTの変換をより多くの候補の中から選択するようにする程（つまり、AMTの選択可能な変換の数が多い程）、より適切な変換を選択する可能性が向上するため、残差信号の符号量が低減する。ただし、候補の数が増大すると、適用した変換を示す情報を含むAMTのモード情報の符号量が増大する（符号量の大きい値となる）可能性が高くなる。換言するに、AMTの変換の候補の数が少ない程、AMTのモード情報の符号量は低減し（符号量の小さい値となり）、残差信号の符号量が増大する可能性が高くなる。
【００３８】
ただし、相対的に残差信号の符号量に対してAMTのモード情報の符号量が少なければ、残差信号の符号量の増減に対してAMTのモード情報の符号量の増減は小さいものとなる。そのため、相対的に残差信号の符号量が多くAMTのモード情報の符号量が少ないブロックでは、AMTの変換の候補の数を増大させて残差信号の符号量を低減させる方が、AMTのモード情報の符号量を低減させる場合よりも効率よく符号量を低減させることができる。
【００３９】
逆に、相対的に残差信号の符号量に対してAMTのモード情報の符号量が多ければ、残差信号の符号量の増減に対してAMTのモード情報の符号量の増減は大きいものとなる。そのため、相対的に残差信号の符号量が少なくAMTのモード情報の符号量が多いブロックでは、AMTの変換の候補の数を低減させてAMTのモード情報の符号量を低減させる方が、残差信号の符号量を低減させる場合よりも効率よく符号量を低減させることができる。
【００４０】
しかしながら、従来の方法の場合、AMTの変換の候補の数が固定であり、上述のような符号量の制御を行うことが困難であった。そのため、AMTのモード情報や残差信号の符号量が不要に増大し、符号化効率が低減するおそれがあった。
【００４１】
＜２．共通コンセプト＞
＜符号化パラメータに基づく直交変換タイプの制御＞
そこで、画像データの符号化に関する情報である符号化パラメータに基づいて、その画像データの予測残差の直交変換のタイプを制御し、その直交変換のタイプの制御に従って予測残差を直交変換して係数データを生成し、その係数データを符号化して符号化データを生成するようにする。
【００４２】
例えば、画像処理装置において、画像データの符号化に関する情報である符号化パラメータに基づいて、その画像データの予測残差の直交変換のタイプを制御する制御部と、その制御部の制御に従って予測残差を直交変換して係数データを生成し、その係数データを符号化して符号化データを生成する符号化部とを備えるようにする。
【００４３】
また、画像データの符号化データの復号に関する情報である符号化パラメータに基づいて、その符号化データから生成される係数データの逆直交変換のタイプを制御し、その符号化データを復号して係数データを生成し、逆直交変換のタイプの制御に従ってその係数データを逆直交変換して画像データを生成するようにする。
【００４４】
例えば、画像処理装置において、画像データの符号化データの復号に関する情報である符号化パラメータに基づいて、その符号化データから生成される係数データの逆直交変換のタイプを制御する制御部と、その符号化データを復号して係数データを生成し、制御部の制御に従ってその係数データを逆直交変換して画像データを生成する復号部とを備えるようにする。
【００４５】
このようにすることにより、例えば、相対的に残差信号の符号量が多くAMTのモード情報の符号量が少ないブロックでは、より残差信号の符号量を削減し、AMTのモード情報の符号量が多いブロックでは、よりAMTのモード情報の符号量を削減するようにすることができる。したがって、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【００４６】
例えば、制御部が、その符号化パラメータに応じた数の候補の中から直交変換のタイプを選択し、符号化部が、その制御部により選択された直交変換のタイプの変換行列を用いて、予測残差を直交変換するようにしてもよい。
【００４７】
また、例えば、制御部が、その符号化パラメータに応じて逆直交変換のタイプの候補の数を設定し、その設定した逆直交変換のタイプの候補の数に基づいて、その符号化データに含まれる逆直交変換のタイプに関する情報をパースし、そのパースした逆直交変換のタイプに関する情報に基づいて逆直交変換のタイプを設定し、復号部が、その制御部により設定された逆直交変換のタイプの変換行列を用いて、係数データを逆直交変換するようにしてもよい。
【００４８】
このようにすることにより、例えば、相対的に残差信号の符号量が多く、適用した直交変換（逆直交変換）のタイプを示す情報を含むAMTのモード情報の符号量が少ないブロックにおいて、直交変換（逆直交変換）のタイプの候補の数を増大させ、より多くの候補の中から直交変換（逆直交変換）のタイプを選択するようにすることができる。これにより、残差信号の符号量を低減させることができる。逆に、相対的にAMTのモード情報の符号量が多く、残差信号の符号量が少ないブロックにおいては、直交変換（逆直交変換）のタイプの候補の数を低減させ、より少ない候補の中から直交変換（逆直交変換）のタイプを選択するようにすることができる。これにより、AMTのモード情報の符号量を低減させることができる。
【００４９】
例えば、処理対象のブロックの残差信号の符号量がより多い程（AMTのモード情報がより少ない程）、直交変換（逆直交変換）のタイプの候補の数を増大させ、より多くの候補の中から直交変換（逆直交変換）のタイプを選択するようにすることもできる。換言するに、処理対象のブロックの残差信号の符号量がより少ない程（AMTのモード情報がより多い程）、直交変換（逆直交変換）のタイプの候補の数を低減させ、より少ない候補の中から直交変換（逆直交変換）のタイプを選択するようにすることもできる。
【００５０】
したがって、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【００５１】
なお、上述のように、処理対象のブロックの残差信号やAMTのモード情報の符号量は、符号化パラメータに基づいて推定する。この符号化パラメータは、符号化・復号に関する情報であれば任意である。例えば、図１の表１１のように、処理対象が輝度信号であるか色差信号であるか（コンポーネント（Component）が輝度（Luma）であるか、色差（Chroma）であるか）や、予測モードがイントラ予測（Intra）であるか、インター予測（Inter）であるか等の符号化パラメータに応じて、直交変換（逆直交変換）のタイプの候補の数（# of Transform Pair）を可変とすることができる。
【００５２】
一般的に、色差信号は、輝度信号の場合に比べて残差信号の符号量が小さい。したがって、表１１の例のように、色差信号の場合の直交変換（逆直交変換）のタイプの候補の数を、輝度信号の場合よりも低減させる（換言するに、輝度信号の場合の直交変換（逆直交変換）のタイプの候補の数を、色差信号の場合よりも低減させる）ことにより、輝度信号および色差信号のいずれの場合であっても、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【００５３】
なお、このAMTのモード情報として、フラグ（flag）とインデックス（index）とを用いる場合（適用された直交変換（逆直交変換）のタイプを、フラグ（flag）とインデックス（index）とで表すようにする場合）、表１１の例のように、そのインデックス（index）のビット長を、AMTの変換の候補の数に応じて可変としてもよい。
【００５４】
例えば、表１１に示される例のように、処理対象のブロックの残差信号の符号量がより多い程（AMTのモード情報がより少ない程）、インデックス（index）のビット長を長くするようにしてもよい。換言するに、処理対象ブロックの残差信号の符号量がより少ない程（AMTのモード情報がより多い程）、インデックス（index）のビット長を短くするようにしてもよい。
【００５５】
なお、表１１に示される直交変換（逆直交変換）のタイプの候補の数（# of Transform Pair）、フラグ（flag）、およびインデックス（index）等の値は、一例である。これらの値は任意であり、この例に限定されない。
【００５６】
＜変換セット＞
直交変換として水平方向と垂直方向との１次元直交変換が行われるようにし、それぞれのタイプを制御（設定）するようにしてもよい。例えば、図２に示される表１２のように、この水平方向の１次元直交変換のタイプ（TrH）と、垂直方向の１元直交変換のタイプ（TrV）との組み合わせ（変換ペア）を、予測モード等に基づいて選択するようにしてもよい。
【００５７】
表１２の場合、インデックス（index）（またはemt_flagおよびemt_idx）により、予測モードに応じた直交変換のタイプの候補群（変換セット）の中から、所望のタイプの組み合わせが選択される。なお、この変換セット（Transform set）は、例えば図３の表３１等を用いて、イントラ予測モード（Intra Mode）に基づいて設定される。
【００５８】
このような表１２の場合、インデックス（index）（またはemt_flagおよびemt_idx）の取り得る値の範囲を可変とする（符号化パラメータに基づいて制御する）ことにより、表１１を参照して上述したように、直交変換（逆直交変換）のタイプの候補の数を可変とすることができる。
【００５９】
例えば、輝度信号（Luma/{Intra,Inter}）の場合、枠線２１に囲まれる範囲内の組み合わせを候補とし、色差信号のイントラ予測（Chroma/Intra）の場合、枠線２２に囲まれる範囲内の組み合わせを候補とし、色差信号のインター予測（Chroma/Inter）の場合、枠線２３に囲まれる範囲内の組み合わせを候補とするようにしてもよい。
【００６０】
このようにすることにより、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【００６１】
なお、表１２および表３１について、逆直交変換は、上述の直交変換の場合と同様であるので、その説明は省略する。
【００６２】
＜２−１．画像符号化装置＞
次に、以上のような直交変換の制御を実現するための構成や処理について説明する。図４は、本技術を適用した画像処理装置の一態様である画像符号化装置の主な構成の一例を示すブロック図である。図４に示される画像符号化装置１００は、動画像の画像データを符号化する装置である。
【００６３】
図４に示されるように、画像符号化装置１００は、直交変換制御部１０１、直交変換部１０２、および符号化部１０３を有する。
【００６４】
直交変換制御部１０１は、直交変換の制御に関する処理を行うように構成される。例えば、直交変換制御部１０１は、符号化（復号）に関する情報である符号化パラメータを取得し、その符号化パラメータに基づいて、直交変換部１０２による直交変換のタイプ（直交変換に用いられる変換行列）を制御する。
【００６５】
例えば、直交変換制御部１０１は、符号化パラメータに応じて直交変換のタイプの候補の数を設定し、その設定した候補の中から、直交変換部１０２による直交変換のタイプを選択（設定）する。直交変換制御部１０１は、その設定した直交変換のタイプに関する情報（AMTのモード情報）を、直交変換部１０２に供給する。例えば、直交変換制御部１０１は、そのAMTのモード情報として、設定した直交変換のタイプを示す識別子である変換タイプインデックスを直交変換部１０２に供給する。図４の例の場合、直交変換制御部１０１は、その変換タイプインデックスとして、水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを、直交変換部１０２に供給する。水平変換タイプインデックスTrTypeHは、水平方向の１次元直交変換のタイプを示す識別子である。垂直変換タイプインデックスTrTypeVは、垂直方向の１次元直交変換のタイプを示す識別子である。
【００６６】
また、直交変換制御部１０１は、その設定した直交変換のタイプに関する情報（AMTのモード情報）を、符号化部１０３に供給し、復号側に伝送させる。例えば、直交変換制御部１０１は、そのAMTのモード情報として、水平方向の１次元直交変換のタイプと垂直方向の１次元直交変換のタイプとの組み合わせである変換ペアを識別する識別子である変換ペアインデックスに関する情報を、符号化部１０３に供給する。図４の例の場合、直交変換制御部１０１は、その変換ペアインデックスに関する情報として、変換フラグemt_flagと変換インデックスemt_idxとを、符号化部１０３に供給する。変換フラグemt_flagは、直交変換のタイプを適応的に変更するかを示すフラグである。変換インデックスemt_idxは、直交変換のタイプを適応的に変更する場合に、直交変換のタイプの組み合わせの候補を絞り込む識別子である。
【００６７】
直交変換部１０２は、直交変換に関する処理を行うように構成される。例えば、直交変換部１０２は、直交変換制御部１０１の制御に従って、画像符号化装置１００に入力される画像データを直交変換し、直交変換係数を生成する。例えば、直交変換部１０２は、直交変換制御部１０１から供給される変換タイプインデックスにより指定されるタイプの直交変換（変換タイプインデックスにより指定される変換行列を用いた直交変換）を行う。図４の例の場合、直交変換部１０２は、直交変換として、水平方向の１次元直交変換と垂直方向の１次元直交変換とを行う。その際、直交変換部１０２は、直交変換制御部１０１から供給される水平変換タイプインデックスTrTypeHにより指定される変換行列を用いて、その水平方向の１次元直交変換を行う。また、直交変換部１０２は、直交変換制御部１０１から供給される垂直変換タイプインデックスTrTypeVにより指定される変換行列を用いて、その垂直方向の１次元直交変換を行う。
【００６８】
直交変換部１０２は、このような直交変換により生成した直交変換係数を符号化部１０３に供給する。なお、直交変換部１０２が、例えば、画像データの代わりに、その画像データと予測画像のデータとの差分である予測残差を直交変換するようにしてもよい。つまり、本明細書において「画像データ」が「画像データ」そのものだけでなく「予測残差」も示しているものとしてもよい。
【００６９】
符号化部１０３は、符号化に関する処理を行うように構成される。例えば、符号化部１０３は、直交変換部１０２から供給される直交変換係数を符号化し、符号化データを生成する。また、符号化部１０３は、直交変換制御部１０１から供給される直交変換のタイプに関する情報（AMTのモード情報）を符号化し、その符号化データに含める（直交変換のタイプに関する情報を含む符号化データを生成する）。例えば、符号化部１０３は、直交変換制御部１０１から供給される変換ペアインデックスに関する情報を符号化し、その情報を含む符号化データを生成する。図４の例の場合、符号化部１０３は、その変換ペアインデックスに関する情報として直交変換制御部１０１から供給される、変換フラグemt_flagおよび変換インデックスemt_idxを符号化し、それらを含む符号化データを生成する。
【００７０】
符号化部１０３は、このように生成した符号化データを、画像符号化装置１００の外部に出力する。なお、符号化部１０３が行う符号化の方法は任意である。また、直交変換係数が量子化されるようにし、符号化部１０３が、直交変換係数の代わりに、その量子化により生成される量子化係数を符号化するようにしてもよい。
【００７１】
なお、直交変換部１０２および符号化部１０３は、１つの処理部（ブロック）としてもよい（符号化部１１０）。つまり、符号化部１１０は、直交変換制御部１０１の制御に従って画像データを直交変換して符号化し、符号化データを生成する。なお、直交変換制御部１０１および直交変換部１０２を１つの処理部（ブロック）としてもよい。例えば、直交変換部１０２に直交変換制御部１０１を含めるようにしてもよい。また、直交変換制御部１０１および符号化部１０３を１つの処理部（ブロック）としてもよい。例えば、符号化部１０３に直交変換制御部１０１を含めるようにしてもよい。さらに、直交変換制御部１０１は、それぞれ、１つの独立した装置として構成されるようにしてもよい。直交変換部１０２、符号化部１０３、および符号化部１１０もそれぞれ同様である。
【００７２】
＜画像符号化処理の流れ＞
このような構成の画像符号化装置１００により実行される符号化処理の流れの例を図５のフローチャートを参照して説明する。
【００７３】
符号化処理が開始されると、直交変換制御部１０１は、ステップＳ１０１において、符号化パラメータに基づいて、選択可能な変換ペア数（変換ペアの候補の数）を設定する。
【００７４】
ステップＳ１０２において、直交変換制御部１０１は、選択可能な変換ペア数に基づいて、最適な変換ペア識別情報（変換ペアインデックスに関する情報）を設定し、さらに、変換タイプインデックスを設定する。つまり、直交変換制御部１０１は、例えばＲＤコスト等に基づいて、ステップＳ１０１において設定した数の変換ペアの候補の中から最適な変換ペアを選択し（変換ペアインデックスを設定し）、その変換ペアインデックスに関する情報（例えば、変換フラグや変換インデックス）を設定する。また、直交変換制御部１０１は、その選択した変換ペアに対応する変換タイプインデックス（水平変換タイプインデックスおよび垂直変換タイプインデックス）を生成する。
【００７５】
ステップＳ１０３において、直交変換部１０２は、ステップＳ１０２において生成された変換タイプインデックスが示すタイプの変換行列を用いて直交変換を行い、直交変換係数を生成する。
【００７６】
ステップＳ１０４において、符号化部１０３は、ステップＳ１０３において生成された直交変換係数を符号化し、符号化データを生成する。また、符号化部１０３は、ステップＳ１０２において設定された変換ペアインデックスに関する情報を符号化し、符号化データに含める。
【００７７】
ステップＳ１０４の処理が終了すると符号化処理が終了する。
【００７８】
以上のように、符号化パラメータに応じて直交変換のタイプを制御する（例えば、符号化パラメータに応じた数の候補の中から直交変換のタイプを選択する）ことにより、相対的に残差信号とAMTのモード情報の相対的な符号量に応じて、より効率よく符号量を低減させることができる。したがって、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【００７９】
また、以上のように符号化パラメータに応じて直交変換のタイプの候補数を制御することにより、直交変換のタイプの候補数が不要に増大することを抑制することができる。したがって、直交変換のタイプの選択をより容易に行うことができる。つまり、符号化処理の負荷の増大を抑制することができる。
【００８０】
＜２−２．画像復号装置＞
次に、以上のような逆直交変換の制御を実現するための構成や処理について説明する。図６は、本技術を適用した画像処理装置の一態様である画像復号装置の主な構成の一例を示すブロック図である。図６に示される画像復号装置１３０は、動画像の画像データの符号化データを復号する装置である。
【００８１】
図６に示されるように、画像復号装置１３０は、逆直交変換制御部１３１、復号部１３２、および逆直交変換部１３３を有する。
【００８２】
逆直交変換制御部１３１は、逆直交変換の制御に関する処理を行うように構成される。例えば、逆直交変換制御部１３１は、符号化（復号）に関する情報である符号化パラメータを取得し、その符号化パラメータに基づいて、逆直交変換部１３３による逆直交変換のタイプ（逆直交変換に用いられる変換行列）を制御する。
【００８３】
例えば、逆直交変換制御部１３１は、符号化パラメータに応じて逆直交変換のタイプの候補の数を設定し、復号部１３２を制御し、符号化データに含まれる、その設定した候補の数に応じた変換ペアインデックスに関する情報（例えば、変換フラグemt_flagや変換インデックスemt_idx）をパースさせ、抽出させる。逆直交変換制御部１３１は、抽出された、その設定した候補の数に応じた変換ペアインデックスに関する情報（例えば、変換フラグemt_flagや変換インデックスemt_idx）を取得する。
【００８４】
逆直交変換制御部１３１は、その取得した変換ペアインデックスに関する情報（例えば、変換フラグemt_flagや変換インデックスemt_idx）や、予測モード情報等に基づいて、その変換ペアインデックスに対応する変換タイプインデックスを設定する。図６の例の場合、逆直交変換制御部１３１は、その変換タイプインデックスとして、水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する。逆直交変換制御部１３１は、その設定した水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを、逆直交変換部１３３に供給する。
【００８５】
復号部１３２は、復号に関する処理を行うように構成される。例えば、復号部１３２は、画像復号装置１３０に入力される符号化データを復号し、直交変換係数を生成する。復号部１３２は、その直交変換係数を逆直交変換部１３３に供給する。
【００８６】
また、復号部１３２は、逆直交変換制御部１３１の制御に従って、画像復号装置１３０に入力される符号化データに含まれる、逆直交変換制御部１３１により設定された候補の数に応じた変換ペアインデックスに関する情報（例えば、変換フラグemt_flagや変換インデックスemt_idx）をパースし、抽出する。復号部１３２は、その変換ペアインデックスに関する情報を逆直交変換制御部１３１に供給する。
【００８７】
逆直交変換部１３３は、逆直交変換に関する処理を行うように構成される。例えば、逆直交変換部１３３は、逆直交変換制御部１３１の制御に従って、復号部１３２から供給される直交変換係数を逆直交変換し、画像データを生成する。例えば、逆直交変換部１３３は、逆直交変換制御部１３１から供給される変換タイプインデックスにより指定されるタイプの逆直交変換（変換タイプインデックスにより指定される変換行列を用いた逆直交変換）を行う。図６の例の場合、逆直交変換部１３３は、逆直交変換として、水平方向の逆１次元直交変換と垂直方向の逆１次元直交変換とを行う。その際、逆直交変換部１３３は、逆直交変換制御部１３１から供給される水平変換タイプインデックスTrTypeHにより指定される変換行列を用いて、その水平方向の逆１次元直交変換を行う。また、逆直交変換部１３３は、逆直交変換制御部１３１から供給される垂直変換タイプインデックスTrTypeVにより指定される変換行列を用いて、その垂直方向の逆１次元直交変換を行う。
【００８８】
逆直交変換部１３３は、このような逆直交変換により生成した画像データを画像復号装置１３０の外部（例えば、後段の処理部）に供給する。なお、逆直交変換部１３３が、例えば、直交変換係数を逆量子化して、画像データと予測画像のデータとの差分である予測残差を生成するようにしてもよい。つまり、本明細書において「画像データ」が「画像データ」そのものだけでなく「予測残差」も示しているものとしてもよい。また、復号部１３２が、符号化データを復号して、直交変換係数の代わりに、量子化係数を生成するようにしてもよい。その場合、逆直交変換部１３３が、その量子化係数が逆量子化されて生成された直交変換係数を逆直交変換するようにしてもよい。
【００８９】
なお、復号部１３２および逆直交変換部１３３は、１つの処理部（ブロック）としてもよい（復号部１４０）。つまり、復号部１４０は、逆直交変換制御部１３１の制御に従って符号化データを復号して逆直交変換し、画像データを生成する。なお、逆直交変換制御部１３１および逆直交変換部１３３を１つの処理部（ブロック）としてもよい。例えば、逆直交変換部１３３に逆直交変換制御部１３１を含めるようにしてもよい。また、逆直交変換制御部１３１および復号部１３２を１つの処理部（ブロック）としてもよい。例えば、復号部１３２に逆直交変換制御部１３１を含めるようにしてもよい。さらに、逆直交変換制御部１３１は、それぞれ、１つの独立した装置として構成されるようにしてもよい。復号部１３２、逆直交変換部１３３、および復号部１４０もそれぞれ同様である。
【００９０】
＜画像復号処理の流れ＞
このような構成の画像復号装置１３０により実行される復号処理の流れの例を図７のフローチャートを参照して説明する。
【００９１】
復号処理が開始されると、復号部１３２は、ステップＳ１３１において、符号化データを復号し、直交変換係数を生成する。また、復号部１３２は、符号化データに含まれる符号化パラメータもパースし、抽出する。
【００９２】
ステップＳ１３２において、逆直交変換制御部１３１は、ステップＳ１３１において抽出された符号化パラメータに基づいて、選択可能な変換ペア数（変換ペアの候補数）を設定する。
【００９３】
ステップＳ１３３において、逆直交変換制御部１３１は、ステップＳ１３２において設定された選択可能な変換ペア数に基づいて、復号部１３２に、符号化データに含まれる変換ペア識別情報（例えば、変換フラグおよび変換インデックス）を復号させ、取得する。逆直交変換制御部１３１は、取得した変換ペア識別情報に基づいて、変換タイプインデックス（水平変換タイプインデックスおよび垂直変換タイプインデックス）を設定する。
【００９４】
ステップＳ１３４において、逆直交変換部１３３は、ステップＳ１３３において設定された変換タイプインデックス（水平変換タイプインデックスおよび垂直変換タイプインデックス）が示すタイプの変換行列を用いて逆直交変換を行い、画像データを生成する。
【００９５】
ステップＳ１３４の処理が終了すると復号処理が終了する。
【００９６】
以上のように、符号化パラメータに応じて逆直交変換のタイプを制御する（例えば、符号化パラメータに応じた数の候補の中から逆直交変換のタイプを選択する）ことにより、符号化側において、相対的に残差信号とAMTのモード情報の相対的な符号量に応じて、より効率よく符号量を低減させることができる。したがって、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【００９７】
＜２−３．符号化パラメータのバリエーション（方法一覧）＞
以上のような直交変換（逆直交変換）のタイプの候補の数の制御に用いる符号化パラメータは、符号化（復号）に関する情報であればどのような情報であってもよい。符号化パラメータの例を図８の表１５１に示す。
【００９８】
例えば、符号化パラメータは、符号化データとして符号化側から復号側に伝送されるシンタックス要素の値を含むようにしてもよい。このようにすることにより、画像符号化装置１００は、そのシンタックス要素を設定することにより、容易に直交変換のタイプの候補の数の制御に用いる符号化パラメータを得ることができる。また、画像復号装置１３０は、符号化データをパースしてそのシンタックス要素を抽出することにより、容易に逆直交変換のタイプの候補の数の制御に用いる符号化パラメータを得ることができる。
【００９９】
＜方法＃１＞
その場合、符号化パラメータは、例えば、コンポーネントの種類に関するシンタックス要素（例えば、コンポーネントID（componentID））の値を含むようにしてもよい。コンポーネントID（componentID）は、輝度信号であるか色差信号であるか（Y,Cb,Crのいずれであるか）を識別する識別子である。つまり、直交変換（逆直交変換）の処理対象が輝度信号であるか色差信号であるかに応じて、直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい（表１５１の方法＃１）。
【０１００】
例えば、色差信号の場合、直交変換（逆直交変換）のタイプの候補の数を、輝度信号の場合よりも少なく設定するようにしてもよい。一般的に色差信号の方が、輝度信号に比べて残差信号の符号量が少ない。そのため、色差信号の場合は、直交変換（逆直交変換）のタイプの候補の数を低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。逆に、輝度信号の場合は、直交変換（逆直交変換）のタイプの候補の数を増大させることにより、残差信号の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１０１】
なお、この方法＃１の場合、さらに、非ゼロ係数の数に応じて直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい。あるいは、その他の変換係数の情報（ラスト係数の位置、非ゼロ係数の絶対値和）に応じて、タイプの候補の数を制御するようにしてもよい。
【０１０２】
＜方法＃２＞
また、符号化パラメータが、例えば、予測のモードに関するシンタックス要素の値を含むようにしてもよい。
【０１０３】
＜方法＃２−１＞
例えば、直交変換（逆直交変換）の処理対象ブロックの予測モードがイントラ予測（例えばイントラCU）であるか、インター予測（例えばインターCU）であるかに応じて、直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい（表１５１の方法＃２−１）。
【０１０４】
例えば、インター予測の場合、直交変換（逆直交変換）のタイプの候補の数を、イントラ予測の場合よりも少なく設定するようにしてもよい。一般的にインターCUの方が、イントラCUに比べて残差信号の符号量が少ない。そのため、インター予測の場合は、直交変換（逆直交変換）のタイプの候補の数を低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。逆に、イントラ予測の場合は、直交変換（逆直交変換）のタイプの候補の数を増大させることにより、残差信号の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１０５】
なお、この方法＃２−１の場合、さらに、非ゼロ係数の数に応じて直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい。あるいは、その他の変換係数の情報（ラスト係数の位置、非ゼロ係数の絶対値和）に応じて、タイプの候補の数を制御するようにしてもよい。
【０１０６】
＜方法＃２−２＞
例えば、直交変換（逆直交変換）の処理対象ブロックの予測モードがインター予測（例えばインターCU）の場合に、順予測であるか、双予測であるかに応じて、直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい（表１５１の方法＃２−２）。
【０１０７】
例えば、双予測の場合、直交変換（逆直交変換）のタイプの候補の数を、順予測の場合よりも少なく設定するようにしてもよい。一般的に双予測の方が、順予測に比べて予測精度が高く、残差信号の符号量が少ない。そのため、双予測の場合は、直交変換（逆直交変換）のタイプの候補の数を低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。逆に、順予測の場合は、直交変換（逆直交変換）のタイプの候補の数を増大させることにより、残差信号の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１０８】
なお、この方法＃２−２の場合、さらに、非ゼロ係数の数に応じて直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい。あるいは、その他の変換係数の情報（ラスト係数の位置、非ゼロ係数の絶対値和）に応じて、タイプの候補の数を制御するようにしてもよい。
【０１０９】
＜方法＃２−３＞
例えば、直交変換（逆直交変換）の処理対象ブロックの予測モードが予め定められた所定のモードであるか、他のモードであるかに応じて、直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい（表１５１の方法＃２−３）。
【０１１０】
例えば、予測のモードが予め定められた所定のモードの場合、直交変換（逆直交変換）のタイプの候補の数を、他のモードの場合よりも少なく設定するようにしてもよい。例えば、予測のモードがその所定のモードである場合、予測のモードが他のモードである場合に比べて残差信号の符号量が少ないとする。その場合、予測のモードがその所定のモードであるときは、直交変換（逆直交変換）のタイプの候補の数を低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。逆に、予測のモードが他のモードであるときは、直交変換（逆直交変換）のタイプの候補の数を増大させることにより、残差信号の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１１１】
なお、予測のモードがその所定のモードである場合に、予測のモードが他のモードである場合に比べて残差信号の符号量が多いときは、直交変換（逆直交変換）のタイプの候補の数の増減を逆にすればよい。
【０１１２】
この所定のモードは、他のモードに比べて残差信号の符号量が少ないモードであればどのようなモードであってもよい。例えば、動的に構築される輝度成分の線型関数を予測関数として用いて色差成分の画素値を予測する輝度色差間予測（CCP（Cross-component prediction））の線型モデルモード（LMChroma）を、この所定のモードとしてもよい。一般的に、このLMChromaの場合、他のイントラ予測モードに比べて残差信号の符号量が少ない。そのため、予測モードがこのLMChromaである場合に、直交変換（逆直交変換）のタイプの候補の数を、他のモードの場合よりも少なく設定するようにしてもよい。このようにすることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１１３】
なお、この方法＃２−３の場合、さらに、非ゼロ係数の数に応じて直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい。あるいは、その他の変換係数の情報（ラスト係数の位置、非ゼロ係数の絶対値和）に応じて、タイプの候補の数を制御するようにしてもよい。
【０１１４】
＜方法＃３＞
また、符号化パラメータが、例えば、直交変換（逆直交変換）の処理対象とするブロックのサイズに関するシンタックス要素の値を含むようにしてもよい。例えば、直交変換（逆直交変換）の処理対象ブロックのサイズに応じて、直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい（表１５１の方法＃３）。
【０１１５】
例えば、ブロックのサイズがより小さい程、直交変換（逆直交変換）のタイプの候補の数をより少なく設定するようにしてもよい。一般的にブロックサイズがより小さい程、残差信号の符号量が少ない。そのため、ブロックのサイズがより小さい程、直交変換（逆直交変換）のタイプの候補の数をより低減させるようにすることにより、AMTのモード情報の符号量をより低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１１６】
換言するに、ブロックサイズがより大きい程、残差信号の符号量が多い。したがって、ブロックのサイズがより大きい程、直交変換（逆直交変換）のタイプの候補の数をより増大させるようにすることにより、残差信号の符号量をより低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１１７】
例えば、所定の閾値を用いてブロックサイズを多段階に分類し（ブロックサイズをその値に応じて複数のグループに分類し）、その分類したグループ毎に対応する候補の数を設定するようにしてもよい。
【０１１８】
なお、この方法＃３の場合、さらに、非ゼロ係数の数に応じて直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい。あるいは、その他の変換係数の情報（ラスト係数の位置、非ゼロ係数の絶対値和）に応じて、タイプの候補の数を制御するようにしてもよい。
【０１１９】
＜方法＃４＞
また、符号化パラメータが、例えば、量子化パラメータに関するシンタックス要素の値を含むようにしてもよい。
【０１２０】
＜方法＃４−１＞
例えば、量子化パラメータQPの値に応じて、直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい（表１５１の方法＃４−１）。
【０１２１】
例えば、量子化パラメータQPの値が大きい程、直交変換（逆直交変換）のタイプの候補の数を、より少なく設定するようにしてもよい。一般的に量子化パラメータQPの値がより大きい程、残差信号の符号量が少ない。そのため、量子化パラメータQPの値が大きい程、直交変換（逆直交変換）のタイプの候補の数をより低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１２２】
換言するに、量子化パラメータQPの値が小さい程、残差信号の符号量が多い。したがって、量子化パラメータQPの値が小さい程、直交変換（逆直交変換）のタイプの候補の数をより増大させるようにすることにより、残差信号の符号量をより低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１２３】
例えば、所定の閾値を用いて量子化パラメータQPを多段階に分類し（量子化パラメータQPをその値に応じて複数のグループに分類し）、その分類したグループ毎に対応する候補の数を設定するようにしてもよい。
【０１２４】
なお、この方法＃４−１の場合、さらに、非ゼロ係数の数に応じて直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい。あるいは、その他の変換係数の情報（ラスト係数の位置、非ゼロ係数の絶対値和）に応じて、タイプの候補の数を制御するようにしてもよい。
【０１２５】
＜方法＃４−２＞
例えば、量子化パラメータQPの代わりに、時間方向の階層符号化における階層を示す識別情報であるテンポラルID（temporalID）に基づいて、直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい（表１５１の方法＃４−２）。
【０１２６】
例えば、符号化パラメータが、時間方向の階層符号化における階層が上位層である程、直交変換（逆直交変換）のタイプの候補の数を、より少なく設定するようにしてもよい。一般的に、このテンポラルID（temporalID）の値が大きい程、すなわち、時間方向の階層符号化における階層が上位層である程、量子化パラメータ（QP）の値が大きい。そのため、このテンポラルID（temporalID）の値が大きい程、直交変換（逆直交変換）のタイプの候補の数をより低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１２７】
換言するに、テンポラルID（temporalID）の値が小さい程、残差信号の符号量が多い。したがって、テンポラルID（temporalID）の値が小さい程、直交変換（逆直交変換）のタイプの候補の数をより増大させるようにすることにより、残差信号の符号量をより低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１２８】
例えば、所定の閾値を用いてテンポラルID（temporalID）の値を多段階に分類し（テンポラルID（temporalID）をその値に応じて複数のグループに分類し）、その分類したグループ毎に対応する候補の数を設定するようにしてもよい。
【０１２９】
なお、この方法＃４−２の場合、さらに、非ゼロ係数の数に応じて直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい。あるいは、その他の変換係数の情報（ラスト係数の位置、非ゼロ係数の絶対値和）に応じて、タイプの候補の数を制御するようにしてもよい。
【０１３０】
＜方法＃５＞
例えば、符号化パラメータは、符号化データとして符号化側から復号側に伝送されるシンタックス要素の値から導出される変数を含むようにしてもよい。このようにすることにより、画像符号化装置１００は、より多様な符号化パラメータに基づいて、直交変換（逆直交変換）のタイプの候補の数を制御することができる。また、画像復号装置１３０は、より多様な符号化パラメータに基づいて、逆直交変換のタイプの候補の数を制御することができる。
【０１３１】
この変数は、どのような値であってもよい。例えば、この変数が、変換係数から導出される変数であるようにしてもよい。
【０１３２】
＜方法＃５−１＞
例えば、直交変換（逆直交変換）の処理対象とするブロックにおける非ゼロ係数の数に応じて直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい（表１５１の方法＃５−１）。
【０１３３】
例えば、直交変換（逆直交変換）の処理対象とするブロックにおける非ゼロ係数が少ない程、直交変換（逆直交変換）のタイプの候補の数を、より少なく設定するようにしてもよい。一般的に、非ゼロ係数の数が少ない程、残差信号の符号量が少ない。そのため、直交変換（逆直交変換）の処理対象とするブロックにおける非ゼロ係数が少ない程、直交変換（逆直交変換）のタイプの候補の数をより低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１３４】
換言するに、非ゼロ係数の数が多い程、残差信号の符号量が多い。したがって、非ゼロ係数の数が多い程、直交変換（逆直交変換）のタイプの候補の数をより増大させるようにすることにより、残差信号の符号量をより低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１３５】
例えば、所定の閾値を用いて非ゼロ係数の数を多段階に分類し（非ゼロ係数の数をその値に応じて複数のグループに分類し）、その分類したグループ毎に対応する候補の数を設定するようにしてもよい。
【０１３６】
＜方法＃５−２＞
例えば、直交変換（逆直交変換）の処理対象とするブロックにおけるラスト係数の位置に応じて直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい（表１５１の方法＃５−２）。ラスト係数とは、直交変換（逆直交変換）の処理対象とするブロックにおけるスキャン順に最後の非ゼロ係数のことである。このラスト係数の位置（例えば、スキャン順におけるスキャン開始位置からの距離）に応じて、直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい。
【０１３７】
例えば、直交変換（逆直交変換）の処理対象とするブロックにおけるラスト係数の位置がスキャン開始位置から近い程、直交変換のタイプの候補の数を、より少なく設定するようにしてもよい。一般的に、非ゼロ係数の数が少ない程、このラスト係数の位置は、スキャン開始位置に近くなる。つまり、残差信号の符号量が少ない。そのため、直交変換（逆直交変換）の処理対象とするブロックにおけるラスト係数の位置がスキャン開始位置から近い程、直交変換（逆直交変換）のタイプの候補の数をより低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１３８】
換言するに、ラスト係数の位置がスキャン開始位置から遠い程、残差信号の符号量が多い。したがって、このラスト係数の位置がスキャン開始位置から遠い程、直交変換（逆直交変換）のタイプの候補の数をより増大させるようにすることにより、残差信号の符号量をより低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１３９】
例えば、所定の閾値を用いてスキャン開始位置からラスト係数の位置までの距離を多段階に分類し（この距離をその値に応じて複数のグループに分類し）、その分類したグループ毎に対応する候補の数を設定するようにしてもよい。
【０１４０】
＜方法＃５−３＞
例えば、直交変換（逆直交変換）の処理対象とするブロックにおける非ゼロ係数の絶対値の総和に応じて直交変換（逆直交変換）のタイプの候補の数を制御するようにしてもよい（表１５１の方法＃５−３）。
【０１４１】
例えば、直交変換（逆直交変換）の処理対象とするブロックにおける非ゼロ係数の絶対値の総和が小さい程、直交変換（逆直交変換）のタイプの候補の数を、より少なく設定するようにしてもよい。一般的に、非ゼロ係数の絶対値の総和が小さい程、残差信号の符号量が少ない。そのため、この非ゼロ係数の絶対値の総和が小さい程、直交変換（逆直交変換）のタイプの候補の数をより低減させることにより、AMTのモード情報の符号量を低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１４２】
換言するに、直交変換（逆直交変換）の処理対象とするブロックにおける非ゼロ係数の絶対値の総和が大きい程、残差信号の符号量が多い。したがって、この非ゼロ係数の絶対値の総和が大きい程、直交変換（逆直交変換）のタイプの候補の数をより増大させるようにすることにより、残差信号の符号量をより低減させることができるので、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１４３】
例えば、所定の閾値を用いて直交変換（逆直交変換）の処理対象とするブロックにおける非ゼロ係数の絶対値の総和を多段階に分類し（この非ゼロ係数の絶対値の総和をその値に応じて複数のグループに分類し）、その分類したグループ毎に対応する候補の数を設定するようにしてもよい。
【０１４４】
＜方法組み合わせ＞
なお、上述した方法の内、任意の複数の方法を組わせてもよい。例えば、方法＃５−１、方法＃２−１、および方法＃１を組わせて適用するようにしてもよい。
【０１４５】
＜２−４．画像符号化装置＞
次に、以上のような直交変換（逆直交変換）の制御の適用例について、より具体的な例を説明する。図９は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図９に示される画像符号化装置２００は、動画像の画像データを符号化する装置である。例えば、画像符号化装置２００は、非特許文献１、非特許文献３、または非特許文献４に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データを符号化する。
【０１４６】
なお、図９においては、処理部（ブロック）やデータの流れ等の主なものを示しており、図９に示されるものが全てとは限らない。つまり、画像符号化装置２００において、図９においてブロックとして示されていない処理部が存在したり、図９において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像符号化装置２００内の処理部等を説明する他の図においても同様である。
【０１４７】
図９に示されるように画像符号化装置２００は、制御部２０１、並べ替えバッファ２１１、演算部２１２、直交変換部２１３、量子化部２１４、符号化部２１５、蓄積バッファ２１６、逆量子化部２１７、逆直交変換部２１８、演算部２１９、インループフィルタ部２２０、フレームメモリ２２１、予測部２２２、およびレート制御部２２３を有する。
【０１４８】
＜制御部＞
制御部２０１は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ２１１により保持されている動画像データを処理単位のブロック（CU, PU, 変換ブロックなど）へ分割する。また、制御部２０１は、各ブロックへ供給する符号化パラメータ（ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfo等）を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。
【０１４９】
これらの符号化パラメータの詳細については後述する。制御部２０１は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
【０１５０】
ヘッダ情報Hinfoは、各ブロックに供給される。
予測モード情報Pinfoは、符号化部２１５と予測部２２２とに供給される。
変換情報Tinfoは、符号化部２１５、直交変換部２１３、量子化部２１４、逆量子化部２１７、および逆直交変換部２１８に供給される。
フィルタ情報Finfoは、インループフィルタ部２２０に供給される。
【０１５１】
＜直交変換・逆直交変換の制御＞
なお、制御部２０１は、直交変換部２１３による直交変換や逆直交変換部２１８による逆直交変換の制御に関する情報を設定したり、導出したりする。制御部２０１は、そのようにして得られた情報を直交変換部２１３や逆直交変換部２１８に供給することにより、直交変換部２１３により行われる直交変換や、逆直交変換部２１８により行われる逆直交変換を制御する。
【０１５２】
また、その制御の際、制御部２０１は、直交変換（逆直交変換）のタイプを、上述した各種符号化パラメータに基づいて制御する。より具体的には、制御部２０１は、選択可能な変換ペア数（変換ペアの候補の数）NumTrPairを、上述した各種符号化パラメータに基づいて制御する。
【０１５３】
例えば、制御部２０１は、符号化パラメータに応じて直交変換（逆直交変換）のタイプの候補の数（選択可能な変換ペア数NumTrPair）を設定し、その設定した直交変換（逆直交変換）のタイプの候補の中から直交変換（逆直交変換）のタイプを選択する。制御部２０１は、その選択したタイプを示す制御情報を直交変換部２１３や逆直交変換部２１８に供給することにより、それらの直交変換および逆直交変換を制御する。
【０１５４】
このような制御により、画像符号化装置２００は、処理対象のブロックの残差信号やAMTのモード情報の相対的な符号量に応じた方法で、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。また、不要な候補の増大を抑制させることができるので、符号化処理の負荷の増大を抑制することができる。
【０１５５】
＜並べ替えバッファ＞
画像符号化装置２００には、動画像データの各フィールド（入力画像）がその再生順（表示順）に入力される。並べ替えバッファ２１１は、各入力画像をその再生順（表示順）に取得し、保持（記憶）する。並べ替えバッファ２１１は、制御部２０１の制御に基づいて、その入力画像を符号化順（復号順）に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ２１１は、処理後の各入力画像を演算部２１２に供給する。また、並べ替えバッファ２１１は、その各入力画像（元画像）を、予測部２２２やインループフィルタ部２２０にも供給する。
【０１５６】
＜演算部＞
演算部２１２は、処理単位のブロックに対応する画像I、および予測部２２２より供給される予測画像Pを入力とし、画像Iから予測画像Pを以下の式（６）に示されるように減算して、予測残差Dを導出し、それを直交変換部２１３に供給する。
【０１５７】
【数４】
2019188466.tif 000006
【０１５８】
＜直交変換部＞
直交変換部２１３は、演算部２１２から供給される予測残差Dと、制御部２０１から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、予測残差Dに対して直交変換を行い、変換係数Coeffを導出する。なお、直交変換部２１３は、直交変換のタイプ（変換係数）を適応的に選択する適応直交変換（AMT）を行うことができる。直交変換部２１３は、その得られた変換係数Coeffを量子化部２１４に供給する。
【０１５９】
＜量子化部＞
量子化部２１４は、直交変換部２１３から供給される変換係数Coeffと、制御部２０１から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeffをスケーリング（量子化）する。なお、この量子化のレートは、レート制御部２２３により制御される。量子化部２１４は、このような量子化により得られた量子化後の変換係数、すなわち量子化変換係数レベルlevelを、符号化部２１５および逆量子化部２１７に供給する。
【０１６０】
＜符号化部＞
符号化部２１５は、量子化部２１４から供給された量子化変換係数レベルlevelと、制御部２０１から供給される各種符号化パラメータ（ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど）と、インループフィルタ部２２０から供給されるフィルタ係数等のフィルタに関する情報と、予測部２２２から供給される最適な予測モードに関する情報とを入力とする。符号化部２１５は、量子化変換係数レベルlevelを可変長符号化（例えば、算術符号化）し、ビット列（符号化データ）を生成する。
【０１６１】
また、符号化部２１５は、その量子化変換係数レベルlevelから残差情報Rinfoを導出し、残差情報Rinfoを符号化し、ビット列を生成する。
【０１６２】
さらに、符号化部２１５は、インループフィルタ部２２０から供給されるフィルタに関する情報をフィルタ情報Finfoに含め、予測部２２２から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部２１５は、上述した各種符号化パラメータ（ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど）を符号化し、ビット列を生成する。
【０１６３】
また、符号化部２１５は、以上のように生成された各種情報のビット列を多重化し、符号化データを生成する。符号化部２１５は、その符号化データを蓄積バッファ２１６に供給する。
【０１６４】
＜蓄積バッファ＞
蓄積バッファ２１６は、符号化部２１５において得られた符号化データを、一時的に保持する。蓄積バッファ２１６は、所定のタイミングにおいて、保持している符号化データを、例えばビットストリーム等として画像符号化装置２００の外部に出力する。例えば、この符号化データは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ２１６は、符号化データ（ビットストリーム）を伝送する伝送部でもある。
【０１６５】
＜逆量子化部＞
逆量子化部２１７は、逆量子化に関する処理を行う。例えば、逆量子化部２１７は、量子化部２１４から供給される量子化変換係数レベルlevelと、制御部２０１から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング（逆量子化）する。なお、この逆量子化は、量子化部２１４において行われる量子化の逆処理である。逆量子化部２１７は、このような逆量子化により得られた変換係数Coeff_IQを、逆直交変換部２１８に供給する。
【０１６６】
＜逆直交変換部＞
逆直交変換部２１８は、逆直交変換に関する処理を行う。例えば、逆直交変換部２１８は、逆量子化部２１７から供給される変換係数Coeff_IQと、制御部２０１から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換を行い、予測残差D'を導出する。なお、この逆直交変換は、直交変換部２１３において行われる直交変換の逆処理である。つまり、逆直交変換部２１８は、逆直交変換のタイプ（変換係数）を適応的に選択する適応逆直交変換（AMT）を行うことができる。
【０１６７】
逆直交変換部２１８は、このような逆直交変換により得られた予測残差D'を演算部２１９に供給する。なお、逆直交変換部２１８は、復号側の逆直交変換部（後述する）と同様であるので、逆直交変換部２１８については、復号側について行う説明（後述する）を適用することができる。
【０１６８】
＜演算部＞
演算部２１９は、逆直交変換部２１８から供給される予測残差D'と、予測部２２２から供給される予測画像Pとを入力とする。演算部２１９は、その予測残差D'と、その予測残差D'に対応する予測画像Pとを加算し、局所復号画像Rlocalを導出する。演算部２１９は、導出した局所復号画像Rlocalをインループフィルタ部２２０およびフレームメモリ２２１に供給する。
【０１６９】
＜インループフィルタ部＞
インループフィルタ部２２０は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部２２０は、演算部２１９から供給される局所復号画像Rlocalと、制御部２０１から供給されるフィルタ情報Finfoと、並べ替えバッファ２１１から供給される入力画像（元画像）とを入力とする。なお、インループフィルタ部２２０に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック（CU、CTU等）の情報等がインループフィルタ部２２０に入力されるようにしてもよい。
【０１７０】
インループフィルタ部２２０は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。インループフィルタ部２２０は、必要に応じて入力画像（元画像）や、その他の入力情報もそのフィルタ処理に用いる。
【０１７１】
例えば、インループフィルタ部２２０は、非特許文献１に記載のように、バイラテラルフィルタ、デブロッキングフィルタ（DBF（DeBlocking Filter））、適応オフセットフィルタ（SAO（Sample Adaptive Offset））、および適応ループフィルタ（ALF(Adaptive Loop Filter)）の４つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
【０１７２】
もちろん、インループフィルタ部２２０が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部２２０がウィーナーフィルタ等を適用するようにしてもよい。
【０１７３】
インループフィルタ部２２０は、フィルタ処理された局所復号画像Rlocalをフレームメモリ２２１に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部２２０は、そのフィルタに関する情報を符号化部２１５に供給する。
【０１７４】
＜フレームメモリ＞
フレームメモリ２２１は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ２２１は、演算部２１９から供給される局所復号画像Rlocalや、インループフィルタ部２２０から供給されるフィルタ処理された局所復号画像Rlocalを入力とし、それを保持（記憶）する。また、フレームメモリ２２１は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する（フレームメモリ２２１内のバッファへ格納する）。フレームメモリ２２１は、予測部２２２の要求に応じて、その復号画像R（またはその一部）を予測部２２２に供給する。
【０１７５】
＜予測部＞
予測部２２２は、予測画像の生成に関する処理を行う。例えば、予測部２２２は、制御部２０１から供給される予測モード情報Pinfoと、並べ替えバッファ２１１から供給される入力画像（元画像）と、フレームメモリ２２１から読み出す復号画像R（またはその一部）を入力とする。予測部２２２は、予測モード情報Pinfoや入力画像（元画像）を用い、インター予測やイントラ予測等の予測処理を行い、復号画像Rを参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像Pを生成する。予測部２２２は、生成した予測画像Pを演算部２１２および演算部２１９に供給する。また、予測部２２２は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部２１５に供給する。
【０１７６】
＜レート制御部＞
レート制御部２２３は、レート制御に関する処理を行う。例えば、レート制御部２２３は、蓄積バッファ２１６に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部２１４の量子化動作のレートを制御する。
【０１７７】
以上のような構成の画像符号化装置２００において、制御部２０１は、直交変換制御部または逆直交変換制御部として、上述した本技術を適用した処理を行う。また、直交変換部２１３は、直交変換部として、上述した本技術を適用した処理を行う。さらに、符号化部２１５は、符号化部として、上述した本技術を適用した処理を行う。また、逆直交変換部２１８は、逆直交変換部として、上述した本技術を適用した処理を行う。したがって、画像符号化装置２００は、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１７８】
＜制御部の詳細＞
図１０は、図９の制御部２０１が有する、直交変換の制御に関する主な構成例を示すブロック図である。図１０に示されるように、制御部２０１は、直交変換の制御を行う構成として、変換ペア数設定部２４１、cMax設定部２４２、変換ペア識別情報設定部２４３、変換ペアLUT２４４、および変換タイプインデックス設定部２４５有する。
【０１７９】
変換ペア数設定部２４１は、選択可能な変換ペア数NumTrPairの設定に関する処理を行うように構成される。選択可能な変換ペア数NumTrPairとは、選択可能な変換ペアの数のことである。選択可能な変換ペアとは、変換ペアの候補のことである。変換ペアとは、水平方向の１次元直交変換のタイプ（TrH）と、垂直方向の１元直交変換のタイプ（TrV）との組み合わせ（または、垂直方向の逆１元直交変換のタイプと、水平方向の逆１次元直交変換のタイプとの組み合わせ）のことである。
【０１８０】
変換ペア数設定部２４１は、符号化パラメータを入力とする。この符号化パラメータは、制御部２０１（制御部２０１の図１０に示される以外の構成）により設定されたものであってもよいし、画像符号化装置２００の外部から供給されるものであってもよい。また、この符号化パラメータは、符号化（復号）に関する情報であり、直交変換の制御に利用することができるものであれば、特に限定はされないが、例えば、図８を参照して説明したような各種パラメータを含む。
【０１８１】
変換ペア数設定部２４１は、この符号化パラメータに基づいて、選択可能な変換ペア数NumTrPairを設定する。変換ペア数設定部２４１は、設定した選択可能な変換ペア数NumTrPairを、cMax設定部２４２および変換ペア識別情報設定部２４３に供給する。
【０１８２】
cMax設定部２４２は、cMaxの設定に関する処理を行うように構成される。このcMaxは、選択可能な変換ペア数（すなわち、変換ペアの候補の数）の最大値を示す変数である。cMax設定部２４２は、変換ペア数設定部２４１から供給される、選択可能な変換ペア数NumTrPairを入力とする。cMax設定部２４２は、その選択可能な変換ペア数NumTrPairに基づいて、cMaxを設定する。cMax設定部２４２は、設定したcMaxを、変換ペア識別情報設定部２４３に供給する。
【０１８３】
変換ペア識別情報設定部２４３は、変換ペア識別情報の設定に関する処理を行うように構成される。変換ペア識別情報とは、候補の中から選択された変換ペアを示す識別子である変換ペアインデックスTrPairIdxに関する情報である。つまり、この変換ペア識別情報は、直交変換（逆直交変換）のタイプに関する情報（AMTのモード情報）の１つである。
【０１８４】
変換ペア識別情報には、例えば、変換ペアインデックスTrPairIdxが含まれる。また、変換ペア識別情報には、例えば、その変換ペアインデックスTrPairIdxに対応する変換フラグemt_flagや変換インデックスemt_idxが含まれる。変換フラグemt_flagは、直交変換（逆直交変換）のタイプを適応的に変更するかを示すフラグである。変換インデックスemt_idxは、直交変換のタイプを適応的に変更する場合に変換ペアの候補を絞り込む識別子である。なお、変換ペアインデックスTrPairIdxは、例えば、図２の表１２のindexに対応する。
【０１８５】
変換ペア識別情報設定部２４３は、変換ペア数設定部２４１から供給される選択可能な変換ペア数NumTrPairと、cMax設定部２４２から供給されるcMaxとを入力とする。変換ペア識別情報設定部２４３は、それらの情報に基づいて、変換ペア識別情報を設定する。
【０１８６】
図１０に示されるように、変換ペア識別情報設定部２４３は、変換ペアインデックス設定部２５１、変換フラグ設定部２５２、および変換インデックス設定部２５３を有する。
【０１８７】
変換ペアインデックス設定部２５１は、変換ペアインデックスTrPairIdxの設定に関する処理を行うように構成される。変換ペアインデックス設定部２５１は、変換ペア数設定部２４１から供給される選択可能な変換ペア数NumTrPairと、cMax設定部２４２から供給されるcMaxとを入力とする。変換ペアインデックス設定部２５１は、それらの情報に基づいて、変換ペアインデックスTrPairIdxを設定する。変換ペアインデックス設定部２５１は、その設定した変換ペアインデックスTrPairIdxを、変換フラグ設定部２５２および変換インデックス設定部２５３に供給する。また、変換ペアインデックス設定部２５１は、その設定した変換ペアインデックスTrPairIdxを、変換タイプインデックス設定部２４５にも供給する。
【０１８８】
変換フラグ設定部２５２は、変換フラグemt_flagの設定に関する処理を行うように構成される。変換フラグ設定部２５２は、変換ペアインデックス設定部２５１から供給される変換ペアインデックスTrPairIdxを入力とする。変換フラグ設定部２５２は、その変換ペアインデックスTrPairIdxに対応する変換フラグemt_flagを設定する。変換フラグ設定部２５２は、設定した変換フラグemt_flagを、AMTのモード情報（変換ペアインデックスに関する情報）として符号化部２１５に供給し、符号化データとして復号側に伝送させる。
【０１８９】
変換インデックス設定部２５３は、変換インデックスemt_idxの設定に関する処理を行うように構成される。変換インデックス設定部２５３は、変換ペアインデックス設定部２５１から供給される変換ペアインデックスTrPairIdxを入力とする。変換インデックス設定部２５３は、その変換ペアインデックスTrPairIdxに対応する変換インデックスemt_idxを設定する。変換インデックス設定部２５３は、設定した変換インデックスemt_idxを、AMTのモード情報（変換ペアインデックスに関する情報）として符号化部２１５に供給し、符号化データとして復号側に伝送させる。
【０１９０】
符号化部２１５は、変換フラグ設定部２５２から供給される変換フラグemt_flagを符号化し、量子化変換係数レベルlevelを可変長符号化した符号化データに含める（変換フラグemt_flagを含む符号化データを生成する）。同様に、符号化部２１５は、変換インデックス設定部２５３から供給される変換インデックスemt_idxを符号化し、量子化変換係数レベルlevelを可変長符号化した符号化データに含める（変換インデックスemt_idxを含む符号化データを生成する）。つまり、符号化部２１５は、変換ペアインデックスに関する情報を含む符号化データ（変換フラグemt_flagおよび変換インデックスemt_idxを含む符号化データ）を生成する。
【０１９１】
変換ペアLUT２４４は、例えば半導体メモリ等の任意の記憶媒体を有し、変換ペアを選択するためのルックアップテーブル（LUT（Look Up Table））を記憶している。このLUTは、例えば、図２に示される表１２のような情報を有する。このLUTは、予め定められたものであってもよいし、RDコスト等に基づいて再設計することが可能であってもよい。変換ペアLUT２４４は、必要に応じて、このLUTを変換タイプインデックス設定部２４５に供給する。
【０１９２】
変換タイプインデックス設定部２４５は、変換タイプインデックスTrTypeの設定に関する処理を行うように構成される。変換タイプインデックスTrTypeとは、直交変換（逆直交変換）のタイプ（変換行列）を識別する識別子である。この変換タイプインデックスTrTypeは、例えば、水平変換タイプインデックスTrTypeHと、垂直変換タイプインデックスTrTypeVとを含む。水平変換タイプインデックスTrTypeHは、水平方向の１次元直交変換（逆１次元直交変換）のタイプ（変換行列）を識別する識別子である。垂直変換タイプインデックスTrTypeVは、垂直方向の１次元直交変換（逆１次元直交変換）のタイプ（変換行列）を識別する識別子である。
【０１９３】
変換タイプインデックス設定部２４５は、変換ペアインデックス設定部２５１から供給される変換ペアインデックスTrPairIdx、変換ペアLUT２４４から供給されるLUT、および、モード情報を入力とする。このモード情報には、例えば、イントラ予測のモード情報（IntraMode）、インター予測であることを示すモード情報（Inter）、およびコンポーネントID（compID）等の符号化パラメータが含まれる。このモード情報は、制御部２０１（制御部２０１の図１０に示される以外の構成）により設定されたものであってもよいし、画像符号化装置２００の外部から供給されるものであってもよい。
【０１９４】
変換タイプインデックス設定部２４５は、これらの情報に基づいて、変換タイプインデックスTrTypeとして、水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する。つまり、変換タイプインデックス設定部２４５は、変換ペアLUT２４４から供給されるLUTに従って、変換ペアインデックスTrPairIdxとモード情報とに対応する変換ペアを選択し、その変換ペアを識別する水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する。
【０１９５】
変換タイプインデックス設定部２４５は、設定した水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを、変換情報Tinfoとして、直交変換部２１３や逆直交変換部２１８に供給する。
【０１９６】
つまり、制御部２０１は、この水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを直交変換部２１３や逆直交変換部２１８に供給することにより、直交変換や逆直交変換を制御する。そして、上述のように、制御部２０１は、この水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する際に、符号化パラメータに基づいて変換ペアの候補の数（NumTrPair）を制御する。したがって、画像符号化装置２００は、図８等を参照して上述したように、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０１９７】
＜直交変換部の詳細＞
図１１は、図９の直交変換部２１３の主な構成例を示すブロック図である。図１１に示されるように、直交変換部２１３は、プライマリ変換部２６１およびセカンダリ変換部２６２を有する。
【０１９８】
プライマリ変換部２６１は、例えば直交変換等の所定の変換処理であるプライマリ変換に関する処理を行うように構成される。例えば、プライマリ変換部２６１は、予測残差Dおよび変換情報Tinfo（水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeV等）を入力とする。
【０１９９】
プライマリ変換部２６１は、水平変換タイプインデックスTrTypeHに対応する変換行列と、垂直変換タイプインデックスTrTypeVに対応する変換行列とを用いて、予測残差Dに対するプライマリ変換を行い、プライマリ変換後の変換係数Coeff_Pを導出する。プライマリ変換部２６１は、導出した変換係数Coeff_Pをセカンダリ変換部２６２に供給する。
【０２００】
図１１に示されるように、プライマリ変換部２６１は、プライマリ水平変換部２７１およびプライマリ垂直変換部２７２を有する。
【０２０１】
プライマリ水平変換部２７１は、水平方向の１次元直交変換であるプライマリ水平変換に関する処理を行うように構成される。例えば、プライマリ水平変換部２７１は、予測残差Dおよび変換情報Tinfo（水平変換タイプインデックスTrTypeH等）を入力とする。プライマリ水平変換部２７１は、水平変換タイプインデックスTrTypeHに対応する変換行列を用いて、予測残差Dに対するプライマリ水平変換を行う。プライマリ水平変換部２７１は、プライマリ水平変換後の変換係数をプライマリ垂直変換部２７２に供給する。
【０２０２】
プライマリ垂直変換部２７２は、垂直方向の１次元直交変換であるプライマリ垂直変換に関する処理を行うように構成される。例えば、プライマリ垂直変換部２７２は、プライマリ水平変換後の変換係数および変換情報Tinfo（垂直変換タイプインデックスTrTypeV等）を入力とする。プライマリ垂直変換部２７２は、垂直変換タイプインデックスTrTypeVに対応する変換行列を用いて、プライマリ水平変換後の変換係数に対するプライマリ垂直変換を行う。プライマリ垂直変換部２７２は、プライマリ垂直変換後の変換係数（つまり、プライマリ変換後の変換係数Coeff_P）をセカンダリ変換部２６２に供給する。
【０２０３】
セカンダリ変換部２６２は、例えば直交変換等の所定の変換処理であるセカンダリ変換に関する処理を行うように構成される。例えば、セカンダリ変換部２６２は、変換係数Coeff_Pおよび変換情報Tinfoを入力とする。セカンダリ変換部２６２は、変換情報Tinfoに基づいて、変換係数Coeff_Pに対するセカンダリ変換を行い、セカンダリ変換後の変換係数Coeffを導出する。セカンダリ変換部２６２は、その変換係数Coeffを直交変換部２１３の外部に出力する（量子化部２１４に供給する）。
【０２０４】
なお、直交変換部２１３においては、プライマリ変換部２６１によるプライマリ変換、若しくは、セカンダリ変換部２６２によるセカンダリ変換、またはその両方を、スキップする（省略する）ことができる。また、プライマリ水平変換部２７１によるプライマリ水平変換をスキップする（省略する）ことができるようにしてもよい。同様に、プライマリ垂直変換部２７２によるプライマリ垂直変換をスキップする（省略する）ことができるようにしてもよい。
【０２０５】
＜プライマリ水平変換部＞
図１２は、図１１のプライマリ水平変換部２７１の主な構成例を示すブロック図である。図１２に示されるように、プライマリ水平変換部２７１は、変換行列導出部２８１、行列演算部２８２、スケーリング部２８３、およびクリップ部２８４を有する。
【０２０６】
変換行列導出部２８１は、少なくとも、プライマリ水平変換用の変換行列TH（水平方向の１次元直交変換用の変換行列TH）の導出に関する処理を行うのに必要な構成を有する。例えば、変換行列導出部２８１は、水平変換タイプインデックスTrTypeHと、変換ブロックのサイズに関する情報を入力とする。変換行列導出部２８１は、その水平変換タイプインデックスTrTypeHに対応する、変換ブロックと同サイズの、プライマリ水平変換用の変換行列THを導出する。変換行列導出部２８１は、その変換行列THを行列演算部２８２に供給する。
【０２０７】
行列演算部２８２は、少なくとも、行列演算に関する処理を行うのに必要な構成を有する。例えば、行列演算部２８２は、変換行列導出部２８１から供給される変換行列THと入力データXin（すなわち予測残差Dの変換ブロック）とを入力とする。行列演算部２８２は、その変換行列導出部２８１から供給される変換行列THを用いて、入力データXin（すなわち予測残差Dの変換ブロック）に対する水平方向の１次元直交変換を行い、中間データY1を得る。この演算は以下の式（７）のように行列式で表すことができる。
【０２０８】
【数５】
2019188466.tif 000007
【０２０９】
行列演算部２８２は、その中間データY1をスケーリング部２８３に供給する。
【０２１０】
スケーリング部２８３は、その中間データY1の各i行j列成分の係数Y1[i,j]を所定のシフト量SHでスケーリングし、中間データY2を得る。このスケーリングは、以下の式（８）のように表すことができる。以降、ある２次元行列（２次元配列）Xのi行j列成分（(i,j)成分）をX[i,j]と表記する。
【０２１１】
【数６】
2019188466.tif 000008
【０２１２】
スケーリング部２８３は、その中間データY2をクリップ部２８４に供給する。
【０２１３】
クリップ部２８４は、その中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout（つまり、プライマリ水平変換後の変換係数）を導出する。この処理は、以下の式（９）のように表すことができる。
【０２１４】
【数７】
2019188466.tif 000009
【０２１５】
クリップ部２８４は、その出力データXout（プライマリ水平変換後の変換係数）をプライマリ水平変換部２７１の外部に出力する（プライマリ垂直変換部２７２に供給する）。
【０２１６】
＜変換行列導出部＞
図１３は、図１２の変換行列導出部２８１の主な構成例を示すブロック図である。図１３に示されるように、変換行列導出部２８１は、変換行列LUT２９１、フリップ部２９２、および転置部２９３を有する。なお、図１３においては、データの授受を示す矢印を省略しているが、変換行列導出部２８１は、任意の処理部（処理ブロック）間で任意のデータを授受することができる。
【０２１７】
変換行列LUT２９１は、水平変換タイプインデックスTrTypeHおよび変換ブロックのサイズNに対応する変換行列を保持（格納）するためのルックアップテーブルである。変換行列LUT２９１は、水平変換タイプインデックスTrTypeHおよび変換ブロックのサイズNが指定されると、それらに対応する変換行列を選択し、出力する。この導出例の場合、変換行列LUT２９１は、その変換行列をベース変換行列Tbaseとしてフリップ部２９２若しくは転置部２９３、または両方に供給する。
【０２１８】
フリップ部２９２は、入力されるN行N列の変換行列Tをフリップし、フリップ後の変換行列Tflipを出力する。この導出例の場合、フリップ部２９２は、変換行列LUT２９１から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを行方向（水平方向）にフリップして、フリップ後の変換行列Tflipを、変換行列THとして、変換行列導出部２８１の外部に出力する（行列演算部２８２に供給する）。
【０２１９】
転置部２９３は、入力されるN行N列の変換行列Tを転置し、転置後の変換行列Ttransposeを出力する。この導出例の場合、転置部２９３は、変換行列LUT２９１から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを転置して、転置後の変換行列Ttransposeを、変換行列THとして、変換行列導出部２８１の外部に出力する（行列演算部２８２に供給する）。
【０２２０】
＜プライマリ垂直変換部＞
図１４は、図１１のプライマリ垂直変換部２７２の主な構成例を示すブロック図である。図１４に示されるように、プライマリ垂直変換部２７２は、変換行列導出部３０１、行列演算部３０２、スケーリング部３０３、およびクリップ部３０４を有する。
【０２２１】
変換行列導出部３０１は、少なくとも、プライマリ垂直変換用の変換行列TV（垂直方向の１次元直交変換用の変換行列TV）の導出に関する処理を行うのに必要な構成を有する。例えば、変換行列導出部３０１は、垂直変換タイプインデックスTrTypeVと、変換ブロックのサイズに関する情報を入力とする。変換行列導出部３０１は、その垂直変換タイプインデックスTrTypeVに対応する、変換ブロックと同サイズの、プライマリ垂直変換用の変換行列TVを導出する。変換行列導出部３０１は、その変換行列TVを行列演算部３０２に供給する。
【０２２２】
行列演算部３０２は、少なくとも、行列演算に関する処理を行うのに必要な構成を有する。例えば、行列演算部３０２は、変換行列導出部３０１から供給される変換行列TVと入力データXinとを入力とする。例えば、行列演算部３０２は、その変換行列導出部３０１から供給される変換行列TVを用いて、入力データXin（すなわちプライマリ水平変換後の変換係数の変換ブロック）に対する垂直方向の１次元直交変換を行い、中間データY1を得る。この演算は以下の式（１０）のように行列式で表すことができる。
【０２２３】
【数８】
2019188466.tif 000010
【０２２４】
行列演算部３０２は、その中間データY1をスケーリング部３０３に供給する。
【０２２５】
スケーリング部３０３は、その中間データY1の各i行j列成分の係数Y1[i,j]を所定のシフト量SVでスケーリングし、中間データY2を得る。このスケーリングは、以下の式（１１）のように表すことができる。
【０２２６】
【数９】
2019188466.tif 000011
【０２２７】
スケーリング部３０３は、その中間データY2をクリップ部３０４に供給する。
【０２２８】
クリップ部３０４は、その中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout（つまり、プライマリ垂直変換後の変換係数）を導出する。この処理は、以下の式（１２）のように表すことができる。
【０２２９】
【数１０】
2019188466.tif 000012
【０２３０】
クリップ部３０４は、その出力データXout（プライマリ垂直変換後の変換係数）を、プライマリ変換後の変換係数Coeff_Pとして、プライマリ垂直変換部２７２の外部に出力する（セカンダリ変換部２６２に供給する）。
【０２３１】
＜変換行列導出部＞
図１５は、図１４の変換行列導出部３０１の主な構成例を示すブロック図である。図１５に示されるように、変換行列導出部３０１は、変換行列LUT３１１、フリップ部３１２、および転置部３１３を有する。なお、図１５においては、データの授受を示す矢印を省略しているが、変換行列導出部３０１は、任意の処理部（処理ブロック）間で任意のデータを授受することができる。
【０２３２】
変換行列LUT３１１は、垂直変換タイプインデックスTrTypeVおよび変換ブロックのサイズNに対応する変換行列を保持（格納）するためのルックアップテーブルである。変換行列LUT３１１は、垂直変換タイプインデックスTrTypeIdxVおよび変換ブロックのサイズNが指定されると、それらに対応する変換行列を選択し、出力する。この導出例の場合、変換行列LUT３１１は、その変換行列をベース変換行列Tbaseとしてフリップ部３１２若しくは転置部３１３、または両方に供給する。
【０２３３】
フリップ部３１２は、入力されるN行N列の変換行列Tをフリップし、フリップ後の変換行列Tflipを出力する。この導出例の場合、フリップ部３１２は、変換行列LUT３１１から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを行方向（水平方向）にフリップして、フリップ後の変換行列Tflipを、変換行列TVとして、変換行列導出部３０１の外部に出力する（行列演算部３０２に供給する）。
【０２３４】
転置部３１３は、入力されるN行N列の変換行列Tを転置し、転置後の変換行列Ttransposeを出力する。この導出例の場合、転置部３１３は、変換行列LUT３１１から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを転置して、転置後の変換行列Ttransposeを、変換行列TVとして、変換行列導出部３０１の外部に出力する（行列演算部３０２に供給する）。
【０２３５】
＜画像符号化処理の流れ＞
次に、以上のような構成の画像符号化装置１００により実行される各処理の流れについて説明する。最初に、図１６のフローチャートを参照して、画像符号化処理の流れの例を説明する。
【０２３６】
画像符号化処理が開始されると、ステップＳ２０１において、並べ替えバッファ２１１は、制御部２０１に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える。
【０２３７】
ステップＳ２０２において、制御部２０１は、並べ替えバッファ２１１が保持する入力画像に対して、処理単位を設定する（ブロック分割を行う）。
【０２３８】
ステップＳ２０３において、制御部２０１は、並べ替えバッファ２１１が保持する入力画像についての符号化パラメータを決定（設定）する。
【０２３９】
ステップＳ２０４において、制御部２０１は、直交変換制御処理を行い、例えば変換タイプインデックスを設定する等の直交変換の制御に関する処理を行う。
【０２４０】
ステップＳ２０５において、予測部２２２は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部２２２は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
【０２４１】
ステップＳ２０６において、演算部２１２は、入力画像と、ステップＳ２０５の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部２１２は、入力画像と予測画像との予測残差Dを生成する。このようにして求められた予測残差Dは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
【０２４２】
ステップＳ２０７において、直交変換部２１３は、ステップＳ２０４において行われた制御に従って、ステップＳ２０６の処理により生成された予測残差Dに対する直交変換処理を行い、変換係数Coeffを導出する。
【０２４３】
ステップＳ２０８において、量子化部２１４は、制御部２０１により算出された量子化パラメータを用いる等して、ステップＳ２０７の処理により得られた変換係数Coeffを量子化し、量子化変換係数レベルlevelを導出する。
【０２４４】
ステップＳ２０９において、逆量子化部２１７は、ステップＳ２０８の処理により生成された量子化変換係数レベルlevelを、そのステップＳ２０８の量子化の特性に対応する特性で逆量子化し、変換係数Coeff_IQを導出する。
【０２４５】
ステップＳ２１０において、逆直交変換部２１８は、ステップＳ２０４において行われた制御に従って、ステップＳ２０９の処理により得られた変換係数Coeff_IQを、ステップＳ２０７の直交変換処理に対応する方法で逆直交変換し、予測残差D'を導出する。なお、この逆直交変換処理は、復号側において行われる逆直交変換処理（後述する）と同様であるので、このステップＳ２１０の逆直交変換処理については、復号側について行う説明（後述する）を適用することができる。
【０２４６】
ステップＳ２１１において、演算部２１９は、ステップＳ２１０の処理により導出された予測残差D'に、ステップＳ２０５の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
【０２４７】
ステップＳ２１２において、インループフィルタ部２２０は、ステップＳ２１１の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う。
【０２４８】
ステップＳ２１３において、フレームメモリ２２１は、ステップＳ２１１の処理により導出された、局所的に復号された復号画像や、ステップＳ２１２においてフィルタ処理された、局所的に復号された復号画像を記憶する。
【０２４９】
ステップＳ２１４において、符号化部２１５は、ステップＳ２０８の処理により得られた量子化変換係数レベルlevelを符号化する。例えば、符号化部２１５は、画像に関する情報である量子化変換係数レベルlevelを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部２１５は、各種符号化パラメータ（ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo）を符号化する。さらに、符号化部２１５は、量子化変換係数レベルlevelから残差情報RInfoを導出し、その残差情報RInfoを符号化する。
【０２５０】
ステップＳ２１５において、蓄積バッファ２１６は、このようにして得られた符号化データを蓄積し、例えばビットストリームとして、それを画像符号化装置２００の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。また、レート制御部２２３は、必要に応じてレート制御を行う。
【０２５１】
ステップＳ２１４の処理が終了すると、画像符号化処理が終了する。
【０２５２】
＜直交変換制御処理の流れ＞
次に、図１７のフローチャートを参照して、図１６のステップＳ２０４において実行される直交変換制御処理の流れの例を説明する。
【０２５３】
直交変換制御処理が開始されると、制御部２０１の変換ペア数設定部２４１は、ステップＳ２３１において、符号化パラメータに基づいて、選択可能な変換ペア数（変換ペアの候補の数）NumTrPairを設定する。
【０２５４】
ステップＳ２３２において、変換ペア数設定部２４１は、ステップＳ２３１において設定した選択可能な変換ペア数NumTrPairが「１」であるか否かを判定する。選択可能な変換ペア数NumTrPairが「１」でないと判定された場合、処理はステップＳ２３３に進む。
【０２５５】
ステップＳ２３３において、変換ペア数設定部２４１は、ステップＳ２３１において設定した選択可能な変換ペア数NumTrPairが「２」であるか否かを判定する。選択可能な変換ペア数NumTrPairが「２」でないと判定された場合、処理はステップＳ２３４に進む。
【０２５６】
ステップＳ２３４において、cMax設定部２４２は、選択可能な変換ペア数NumTrPair の最大値cMaxを設定する。
【０２５７】
ステップＳ２３５において、変換ペア識別情報設定部２４３の変換ペアインデックス設定部２５１は、ステップＳ２３１において設定された選択可能な変換ペア数NumTrPairと、ステップＳ２３４において設定された最大値cMaxとに基づいて、最適な変換ペアインデックスTrPairIdxを設定する。
【０２５８】
変換ペアインデックス設定部２５１は、その選択可能な変換ペア数NumTrPairおよび最大値cMaxに対応する変換ペアの候補を設定し、RDコスト等に基づいて、その候補の中から最適な変換ペアを設定し、その最適な変換ペアを識別する変換ペアインデックスTrPairIdxを設定する。
【０２５９】
ステップＳ２３５の処理が終了すると、処理はステップＳ２３８に進む。
【０２６０】
また、ステップＳ２３２において、選択可能な変換ペア数NumTrPairが「１」であると判定された場合、処理はステップＳ２３６に進む。
【０２６１】
ステップＳ２３６において、変換ペアインデックス設定部２５１は、変換ペアインデックスTrPairIdxを「０」に設定する。ステップＳ２３６の処理が終了すると、処理はステップＳ２３８に進む。
【０２６２】
また、ステップＳ２３３において、選択可能な変換ペア数NumTrPairが「２」であると判定された場合、処理はステップＳ２３７に進む。
【０２６３】
ステップＳ２３７において、変換ペアインデックス設定部２５１は、変換ペアインデックスTrPairIdxを「１」に設定する。ステップＳ２３７の処理が終了すると、処理はステップＳ２３８に進む。
【０２６４】
以上のように最適な変換ペアインデックスTrPairIdxが設定されると、ステップＳ２３８において、変換フラグ設定部２５２は、その最適な変換ペアインデックスTrPairIdxに対応する変換フラグemt_flagを設定する。例えば、変換ペアインデックスTrPairIdxが「０」の場合、変換フラグ設定部２５２は、変換フラグemt_flagを「０」に設定する。また、例えば、変換ペアインデックスTrPairIdxが「１」以上の場合、変換フラグ設定部２５２は、変換フラグemt_flagを「１」に設定する。
【０２６５】
ステップＳ２３９において、変換インデックス設定部２５３は、その最適な変換ペアインデックスTrPairIdxに対応する変換インデックスemt_idxを設定する。例えば、変換ペアインデックスTrPairIdxが「１」以上の場合、変換フラグ設定部２５２は、変換フラグemt_flagを（変換ペアインデックスTrPairIdx−１）に設定する。
【０２６６】
ステップＳ２４０において、変換タイプインデックス設定部２４５は、変換ペアLUT２４４が保持するLUTに基づいて、その最適な変換ペアインデックスTrPairIdxおよび予測のモード情報に対応する水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する。
【０２６７】
ステップＳ２４０の処理が終了すると、直交変換制御処理が終了し、処理は図１６に戻る。
【０２６８】
以上のように、直交変換の制御において、符号化パラメータに基づいて変換ペアの候補の数を制御することにより、処理対象のブロックの残差信号やAMTのモード情報の相対的な符号量に応じた方法で、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。また、変換ペアの候補の数の不要な増大を抑制することにより、符号化処理の負荷の増大を抑制することができる。
【０２６９】
＜直交変換処理の流れ＞
次に図１６のステップＳ２０７において実行される直交変換処理の流れの例を、図１８のフローチャートを参照して説明する。
【０２７０】
直交変換処理が開始されると、直交変換部２１３は、ステップＳ２５１において、変換スキップフラグts_flagが2D_TS（２次元変換スキップを示す場合）（例えば１（真））、または、変換量子化バイパスフラグtransquant_bypass_flagが１（真）、であるか否かを判定する。変換スキップフラグts_flagが2D_TS（例えば１（真））、または、変換量子化バイパスフラグが１（真）であると判定された場合、直交変換処理が終了し、処理は図１６に戻る。この場合、直交変換処理（プライマリ変換やセカンダリ変換）が省略され、入力された予測残差Dが変換係数Coeffとされる。
【０２７１】
また、図１８のステップＳ２５１において、変換スキップフラグts_flagが2D_TSでなく（２次元変換スキップでなく）（例えば０（偽））、かつ、変換量子化バイパスフラグtransquant_bypass_flagが０（偽）であると判定された場合、処理はステップＳ２５２に進む。この場合、プライマリ変換処理およびセカンダリ変換処理が行われる。
【０２７２】
ステップＳ２５２において、プライマリ変換部２６１は、入力された予測残差Dに対してプライマリ変換処理を行い、プライマリ変換後の変換係数Coeff_Pを導出する。
【０２７３】
ステップＳ２５３において、セカンダリ変換部２６２は、変換係数Coeff_Pに対してセカンダリ変換処理を行い、セカンダリ変換後の変換係数Coeffを導出する。
【０２７４】
ステップＳ２５３の処理が終了すると直交変換処理が終了する。
【０２７５】
＜プライマリ変換処理の流れ＞
次に、図１８のステップＳ２５２において実行されるプライマリ変換処理の流れの例を、図１９のフローチャートを参照して説明する。
【０２７６】
プライマリ変換処理が開始されると、プライマリ変換部２６１のプライマリ水平変換部２７１は、ステップＳ２６１において、予測残差Dに対してプライマリ水平変換処理を行い、プライマリ水平変換後の変換係数を導出する。
【０２７７】
ステップＳ２６２において、プライマリ変換部２６１のプライマリ垂直変換部２７２は、ステップＳ２６１において得られたプライマリ水平変換結果（プライマリ水平変換後の変換係数）に対してプライマリ垂直変換を行い、プライマリ垂直変換後の変換係数（プライマリ変換後の変換係数Coeff_P）を導出する。
【０２７８】
ステップＳ２６２の処理が終了すると、プライマリ変換処理が終了し、処理は図１８に戻る。
【０２７９】
＜プライマリ水平変換処理の流れ＞
図１９のステップＳ２６１において実行されるプライマリ水平変換処理の流れについて、図２０のフローチャートを参照して説明する。
【０２８０】
プライマリ水平変換処理が開始されると、プライマリ水平変換部２７１の変換行列導出部２８１は、ステップＳ２７１において、水平変換タイプインデックスTrTypeHに対応する変換行列THを導出する。
【０２８１】
ステップＳ２７２において、行列演算部２８２は、その導出された変換行列THを用いて入力データXin（予測残差D）に対して水平方向の１次元直交変換を行い、中間データY1を得る。この処理を行列式として表現すると、上述の式（７）のように表すことができる。また、この処理を要素毎の演算として表現すると、以下の式（１３）のように表すことができる。
【０２８２】
【数１１】
2019188466.tif 000013
【０２８３】
つまり、中間データY1のi行j列成分の係数Y1[i,j]には、入力データXinのi行目の行ベクトルXin[i,:]と、変換行列THのj行目の行ベクトルTH[j,:]の転置行列THT[:,j]との内積を設定する（j=0,・・・,M-1, i=0,・・・,N-1）。ここで、Mは、入力データXinのx方向のサイズであり、Nは、入力データXinのy方向のサイズである。MおよびNは、以下の式（１４）のように表すことができる。
【０２８４】
【数１２】
2019188466.tif 000014
【０２８５】
図２０に戻り、ステップＳ２７３において、スケーリング部２８３は、ステップＳ２７２の処理により導出された中間データY1の各i行j列成分の係数Y1[i,j]をシフト量SHでスケーリングし、中間データY2を導出する。このスケーリングは、上述の式（８）のように表すことができる。
【０２８６】
ステップＳ２７４において、クリップ部２８４は、ステップＳ２７３の処理により導出された中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout（つまり、プライマリ水平変換後の変換係数）を得る。この処理は、上述の式（９）のように表すことができる。
【０２８７】
ステップＳ２７４の処理が終了すると、プライマリ水平変換処理が終了し、処理は図１９に戻る。
【０２８８】
＜変換行列導出処理の流れ＞
次に、図２０のステップＳ２７１において実行される変換行列導出処理の流れの例を、図２１のフローチャートを参照して説明する。
【０２８９】
変換行列導出処理が開始されると、変換行列導出部２８１は、ステップＳ２８１において、水平変換タイプインデックスTrTypeHに対応するベース変換タイプBaseTrTypeを求める。なお、この処理を数式で表すと、例えば式（１５）のように表現することができる。変換行列導出部２８１は、その求めたベース変換タイプのN行N列の変換行列を変換行列LUTより読み出し、以下の式（１６）のように、それをベース変換行列Tbaseに設定する。
【０２９０】
【数１３】
2019188466.tif 000015
【０２９１】
また、変換行列導出部２８１は、以下の式（１７）のように、フリップフラグFlipFlagに、水平変換タイプインデックスTrTypeHに対応する値を設定する。また、変換行列導出部２８１は、以下の式（１８）のように、転置フラグTransposeFlagに、変換タイプ識別子TrTypeIdxHに対応する値を設定する。
【０２９２】
【数１４】
2019188466.tif 000016
【０２９３】
ステップＳ２８２において、変換行列導出部２８１は、フリップフラグFlipFlagと転置フラグTransposeFlagとが以下の式（１９）で表される条件（ConditionA1）を満たすか否かを判定する。
【０２９４】
【数１５】
2019188466.tif 000017
【０２９５】
上述の条件（ConditionA1）を満たすと判定された場合（フリップフラグFlipFlagと転置フラグTransposeFlagとがともに偽（０）の場合）、処理はステップＳ２８３に進む。
【０２９６】
ステップＳ２８３において、変換行列導出部２８１は、以下の式（２０）に示されるように、変換行列Tbaseを変換行列THへ設定する。
【０２９７】
【数１６】
2019188466.tif 000018
【０２９８】
ステップＳ２８３の処理が終了すると、変換行列導出処理が終了し、処理は図２０に戻る。また、ステップＳ２８２において、上述の条件（ConditionA1）を満たさないと判定された場合（フリップフラグFlipFlagまたは転置フラグTransposeFlagが真（１）の場合）、処理はステップＳ２８４に進む。
【０２９９】
ステップＳ２８４において、変換行列導出部２８１は、フリップフラグFlipFlagと転置フラグTransposeFlagとが以下の式（２１）で表される条件（ConditionA2）を満たすか否かを判定する。
【０３００】
【数１７】
2019188466.tif 000019
【０３０１】
上述の条件（ConditionA2）を満たすと判定された場合（フリップフラグFlipFlagが偽（０）であり、かつ、転置フラグTransposeFlagが真（１）である場合）、処理はステップＳ２８５に進む。
【０３０２】
ステップＳ２８５において、変換行列導出部２８１は、転置部２９３を介して、ベース変換行列Tbaseを転置して、変換行列THを得る。この処理は、以下の式（２２）のように、行列式として表現することができる。
【０３０３】
【数１８】
2019188466.tif 000020
【０３０４】
また、この処理を要素毎の演算として表現する場合、変換行列導出部２８１は、以下の式（２３）のように、ベース変換行列Tbaseのi行j列成分（(i,j)成分）を変換行列THの(j,i)成分に設定する。
【０３０５】
【数１９】
2019188466.tif 000021
【０３０６】
ここで、N行N列の変換行列THのi行j列成分（(i,j)成分）をTH[i,j]と表記する。また、２行目の「for i,j=0,...,N-1」は、iとjとが0乃至N-1の値を持つことを示す。つまり、TH[j,i]がN行N列の変換行列THの全ての要素を示すことを意味する。
【０３０７】
このように、ステップＳ２８５の処理を、要素毎の演算として表現することにより、簡単な２次元配列へのアクセスで、転置操作を実現することできる。ステップＳ２８５の処理が終了すると、変換行列導出処理が終了し、処理は図２０に戻る。
【０３０８】
また、ステップＳ２８４において、上述の条件（ConditionA2）を満たさないと判定された場合（フリップフラグFlipFlagが真（１）である、または、転置フラグTransposeFlagが偽（０）である場合）、処理はステップＳ２８６に進む。
【０３０９】
ステップＳ２８６において、変換行列導出部２８１は、フリップ部２９２を介して、ベース変換行列Tbaseをフリップして、変換行列THを得る。この処理は、以下の式（２４）のように、行列式として表現することができる。
【０３１０】
【数２０】
2019188466.tif 000022
【０３１１】
ここで、×は行列積を表す演算子である。また、フリップ行列J（Cross-Identity Matrix）は、N行N列の単位行列Ｉを左右反転したものである。
【０３１２】
また、この処理を要素毎の演算として表現する場合、変換行列導出部２８１は、以下の式（２５）のように、変換行列THのi行j列成分（(i,j)成分）に、ベース変換行列Tbaseの(i, N-1-j)成分を設定する。
【０３１３】
【数２１】
2019188466.tif 000023
【０３１４】
ここで、N行N列の変換行列THのi行j列成分（(i,j)成分）をTH[i,j]と表記する。また２行目の「for i,j=0,...,N-1」は、iとjがそれぞれ0乃至N-1の値を持つことを示す。すなわち、TH[i,j]がN行N列の変換行列THの全ての要素を示すことを意味する。
【０３１５】
このように、ステップＳ２８６の処理を、要素毎の演算として表現することにより、ベース変換行列Tbaseとフリップ行列Ｊとの行列演算をせずに、簡単な２次元配列へのアクセスで、転置操作を実現することできる。また、フリップ行列Ｊが不要になる。ステップＳ２８６の処理が終了すると、変換行列導出処理が終了し、処理は図２０に戻る。
【０３１６】
なお、ステップＳ２８４の処理とステップＳ２８６の処理との間に、以下に説明するような分岐をいれてもよい。つまり、そのステップにおいて、変換行列導出部２８１は、フリップフラグFlipFlagと転置フラグTransposeFlagとが以下の式（２６）で表される条件（ConditionA3）を満たすか否かを判定する。
【０３１７】
【数２２】
2019188466.tif 000024
【０３１８】
変換行列導出部２８１は、上述の条件（ConditionA3）を満たすと判定された場合（フリップフラグFlipFlagが真（１）であり、かつ、転置フラグTransposeFlagが偽（０）である場合）、処理はステップＳ２８６に進む。
【０３１９】
また、上述の条件（ConditionA3）を満たさないと判定された場合（フリップフラグFlipFlagが偽（０）であるか、または、転置フラグTransposeFlagが真（１）である場合）、変換行列導出処理が終了し、処理は図２０に戻る。
【０３２０】
＜プライマリ垂直変換処理の流れ＞
次に、図１９のステップＳ２６２において実行されるプライマリ垂直変換処理の流れについて、図２２のフローチャートを参照して説明する。
【０３２１】
プライマリ垂直変換処理が開始されると、プライマリ垂直変換部２７２の変換行列導出部３０１は、ステップＳ２９１において、変換行列導出処理を実行し、垂直変換タイプインデックスTrTypeVに対応する変換行列TVを導出する。
【０３２２】
この変換行列導出処理の流れは、図２１のフローチャートを参照して説明したプライマリ水平変換の場合と同様であるのでその説明を省略する。例えば、水平変換タイプインデックスTrTypeHを垂直変換タイプインデックスTrTypeVに置き換えたり、導出されるプライマリ水平変換用の変換行列THを、垂直変換用の変換行列TVに置き換えたりする等、図２１を参照して行った説明の、水平方向に関する説明を垂直方向に置き換えればよい。
【０３２３】
ステップＳ２９２において、行列演算部３０２は、その導出された変換行列TVを用いて入力データXin（プライマリ水平変換後の変換係数）に対して垂直方向の１次元直交変換を行い、中間データY1を得る。この処理を行列式として表現すると、上述の式（１０）のように表すことができる。また、この処理を要素毎の演算として表現すると、以下の式（２７）のように表すことができる。
【０３２４】
【数２３】
2019188466.tif 000025
【０３２５】
つまり、この場合、中間データY1のi行j列成分の係数Y1[i,j]には、変換行列TVのi行目の行ベクトルTV[i,:]と入力データXinのj列目の列ベクトルXin[:,j]との内積を設定する（j=0,・・・,M-1, i=0,・・・,N-1）。
【０３２６】
ステップＳ２９３において、スケーリング部３０３は、ステップＳ２９２の処理により導出された中間データY1の各i行j列成分の係数Y1[i,j]をシフト量SVでスケーリングし、中間データY2を導出する。このスケーリングは、上述の式（１１）のように表すことができる。
【０３２７】
ステップＳ２９４において、クリップ部３０４は、ステップＳ２９３の処理により導出された中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout（つまり、プライマリ垂直変換後の変換係数）を得る。この処理は、上述の式（１２）のように表すことができる。
【０３２８】
ステップＳ２９４の処理が終了すると、プライマリ垂直変換処理が終了し、処理は図１９に戻る。
【０３２９】
以上のように各処理を実行することにより、画像符号化装置２００は、処理対象のブロックの残差信号やAMTのモード情報の相対的な符号量に応じた方法で、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。また、変換ペアの候補の数の不要な増大を抑制することにより、符号化処理の負荷の増大を抑制することができる。
【０３３０】
＜２−５．画像復号装置＞
図２３は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図２３に示される画像復号装置４００は、AVCやHEVCのように、画像とその予測画像との予測残差が符号化された符号化データを復号する装置である。例えば、画像復号装置４００は、非特許文献１、非特許文献３、または非特許文献４に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データが符号化された符号化データを復号する。例えば、画像復号装置４００は、上述の画像符号化装置２００により生成された符号化データ（ビットストリーム）を復号する。
【０３３１】
なお、図２３においては、処理部やデータの流れ等の主なものを示しており、図２３に示されるものが全てとは限らない。つまり、画像復号装置４００において、図２３においてブロックとして示されていない処理部が存在したり、図２３において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像復号装置４００内の処理部等を説明する他の図においても同様である。
【０３３２】
図２３において、画像復号装置４００は、蓄積バッファ４１１、復号部４１２、逆量子化部４１３、逆直交変換部４１４、演算部４１５、インループフィルタ部４１６、並べ替えバッファ４１７、フレームメモリ４１８、および予測部４１９を備えている。なお、予測部４１９は、不図示のイントラ予測部、およびインター予測部を備えている。画像復号装置４００は、符号化データ（ビットストリーム）を復号することによって、動画像データを生成するための装置である。
【０３３３】
＜蓄積バッファ＞
蓄積バッファ４１１は、画像復号装置４００に入力されたビットストリームを取得し、保持（記憶）する。蓄積バッファ４１１は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部４１２に供給する。
【０３３４】
＜復号部＞
復号部４１２は、画像の復号に関する処理を行う。例えば、復号部４１２は、蓄積バッファ４１１から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。
【０３３５】
シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部４１２は、ビットストリームから、これらの情報をパースする（解析して取得する）。これらの情報について以下に説明する。
【０３３６】
＜ヘッダ情報Hinfo＞
ヘッダ情報Hinfoは、例えば、VPS（Video Parameter Set）／SPS（Sequence Parameter Set）／PPS（Picture Parameter Set）／SH（スライスヘッダ）などのヘッダ情報を含む。ヘッダ情報Hinfoには、例えば、画像サイズ（横幅PicWidth、縦幅PicHeight）、ビット深度（輝度bitDepthY, 色差bitDepthC）、色差アレイタイプChromaArrayType、CUサイズの最大値MaxCUSize／最小値MinCUSize、４分木分割（Quad-tree分割ともいう）の最大深度MaxQTDepth/最小深度MinQTDepth、２分木分割（Binary-tree分割）の最大深度MaxBTDepth/最小深度MinBTDepth、変換スキップブロックの最大値MaxTSSize（最大変換スキップブロックサイズともいう）、各符号化ツールのオンオフフラグ（有効フラグともいう）などを規定する情報が含まれる。
【０３３７】
例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が１（真）の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が０（偽）の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
【０３３８】
コンポーネント間予測有効フラグ（ccp_enabled_flag）:コンポーネント間予測（CCP（Cross-Component Prediction），CC予測とも称する）が使用可能であるか否かを示すフラグ情報である。例えば、このフラグ情報が「１」（真）の場合、使用可能であることが示され、「０」（偽）の場合、使用不可であることが示される。
【０３３９】
なお、このCCPは、コンポーネント間線形予測（CCLMまたはCCLMP）とも称する。
【０３４０】
＜予測モード情報Pinfo＞
予測モード情報Pinfoには、例えば、処理対象PB（予測ブロック）のサイズ情報PBSize（予測ブロックサイズ）、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。
【０３４１】
イントラ予測モード情報IPinfoには、例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode、およびそのシンタックスから導出される輝度イントラ予測モードIntraPredModeY等が含まれる。
【０３４２】
また、イントラ予測モード情報IPinfoには、例えば、コンポーネント間予測フラグ（ccp_flag（cclmp_flag））、多クラス線形予測モードフラグ（mclm_flag）、色差サンプル位置タイプ識別子（chroma_sample_loc_type_idx）、色差MPM識別子（chroma_mpm_idx）、および、これらのシンタックスから導出される輝度イントラ予測モード（IntraPredModeC）等が含まれる。
【０３４３】
コンポーネント間予測フラグ（ccp_flag（cclmp_flag））は、コンポーネント間線形予測を適用するか否かを示すフラグ情報である。例えば、ccp_flag==1のとき、コンポーネント間予測を適用することを示し、ccp_flag==0のとき、コンポーネント間予測を適用しないことを示す。
【０３４４】
多クラス線形予測モードフラグ（mclm_flag）は、線形予測のモードに関する情報（線形予測モード情報）である。より具体的には、多クラス線形予測モードフラグ（mclm_flag）は、多クラス線形予測モードにするか否かを示すフラグ情報である。例えば、「０」の場合、１クラスモード（単一クラスモード）（例えばCCLMP）であることを示し、「１」の場合、２クラスモード（多クラスモード）（例えばMCLMP）であることを示す。
【０３４５】
色差サンプル位置タイプ識別子（chroma_sample_loc_type_idx）は、色差コンポーネントの画素位置のタイプ（色差サンプル位置タイプとも称する）を識別する識別子である。例えば色フォーマットに関する情報である色差アレイタイプ（ChromaArrayType）が420形式を示す場合、色差サンプル位置タイプ識別子は、以下の式（２８）のような割り当て方となる。
【０３４６】
【数２４】
2019188466.tif 000026
【０３４７】
なお、この色差サンプル位置タイプ識別子（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 Prediction Unit Syntaxを参照）。
【０３５０】
もちろん、予測モード情報Pinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【０３５１】
＜変換情報Tinfo＞
変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【０３５２】
処理対象変換ブロックの横幅サイズTBWSizeおよび縦幅TBHSize（または、２を底とする各TBWSize、TBHSizeの対数値log2TBWSize、log2TBHSizeであってもよい）。
変換スキップフラグ（ts_flag）:（逆）プライマリ変換および（逆）セカンダリ変換をスキップか否かを示すフラグである。
スキャン識別子（scanIdx）
量子化パラメータ（qp）
量子化マトリックス（scaling_matrix（例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax））
【０３５３】
＜残差情報Rinfo＞
残差情報Rinfo（例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照）には、例えば以下のシンタックスが含まれる。
【０３５４】
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：非ゼロ係数のレベルが１より大きいかを示すフラグ（GR1フラグとも呼ぶ）
gr2_flag：非ゼロ係数のレベルが２より大きいかを示すフラグ(GR2フラグとも呼ぶ)
sign_flag：非ゼロ係数の正負を示す符号（サイン符号とも呼ぶ）
coeff_abs_level_remaining:非ゼロ係数の残余レベル（非ゼロ係数残余レベルとも呼ぶ）
など。
【０３５５】
もちろん、残差情報Rinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【０３５６】
＜フィルタ情報Finfo＞
フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。
【０３５７】
デブロッキングフィルタ(DBF)に関する制御情報
画素適応オフセット(SAO)に関する制御情報
適応ループフィルタ(ALF)に関する制御情報
その他の線形・非線形フィルタに関する制御情報
【０３５８】
より具体的には、例えば、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報や、CU単位のフィルタOn/Off制御情報、スライス、タイルの境界に関するフィルタOn/Off制御情報などが含まれる。もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【０３５９】
復号部４１２の説明に戻る。復号部４１２は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数レベルlevelを導出する。復号部４１２は、その量子化変換係数レベルlevelを、逆量子化部４１３に供給する。
【０３６０】
また、復号部４１２は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、量子化変換係数レベルlevel、変換情報Tinfo、フィルタ情報Finfoを各ブロックへ供給する。具体的には以下の通りである。
【０３６１】
ヘッダ情報Hinfoは、逆量子化部４１３、逆直交変換部４１４、予測部４１９、インループフィルタ部４１６に供給される。
予測モード情報Pinfoは、逆量子化部４１３および予測部４１９に供給される。
変換情報Tinfoは、逆量子化部４１３および逆直交変換部４１４に供給される。
フィルタ情報Finfoは、インループフィルタ部４１６に供給される。
【０３６２】
もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
【０３６３】
＜逆直交変換の制御＞
復号部４１２は、また、逆直交変換の制御に関する情報を復号したり、導出したりする。復号部４１２は、そのようにして得られた情報を逆直交変換部４１４に供給することにより、逆直交変換部４１４により行われる逆直交変換を制御する。
【０３６４】
また、その逆直交変換の制御の際、復号部４１２は、符号化側において説明したのと同様に、逆直交変換のタイプを、上述した各種符号化パラメータに基づいて制御する。より具体的には、復号部４１２は、選択可能な変換ペア数（変換ペアの候補の数）NumTrPairを、上述した各種符号化パラメータに基づいて制御する。
【０３６５】
例えば、復号部４１２は、符号化パラメータに応じて逆直交変換のタイプの候補の数（選択可能な変換ペア数NumTrPair）を設定し、その設定した逆直交変換のタイプの候補の数に基づいて、符号化データに含まれる逆直交変換のタイプに関する情報をパースし、そのパースした逆直交変換のタイプに関する情報に基づいて逆直交変換のタイプを設定する。
【０３６６】
このような制御により、画像復号装置４００は、処理対象のブロックの残差信号やAMTのモード情報の相対的な符号量に応じた方法で、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０３６７】
＜逆量子化部＞
逆量子化部４１３は、少なくとも、逆量子化に関する処理を行うために必要な構成を有する。例えば、逆量子化部４１３は、復号部４１２から供給される変換情報Tinfoおよび量子化変換係数レベルlevelを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング（逆量子化）し、逆量子化後の変換係数Coeff_IQを導出する。
【０３６８】
なお、この逆量子化は、量子化部２１４による量子化の逆処理として行われる。また、この逆量子化は、逆量子化部２１７による逆量子化と同様の処理である。つまり、逆量子化部２１７は、逆量子化部４１３と同様の処理（逆量子化）を行う。
【０３６９】
逆量子化部４１３は、導出した変換係数Coeff_IQを逆直交変換部４１４に供給する。
【０３７０】
＜逆直交変換部＞
逆直交変換部４１４は、逆直交変換に関する処理を行う。例えば、逆直交変換部４１４は、逆量子化部４１３から供給される変換係数Coeff_IQ、および、復号部４１２から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換処理を行い、予測残差D'を導出する。
【０３７１】
なお、この逆直交変換は、直交変換部２１３による直交変換の逆処理として行われる。また、この逆直交変換は、逆直交変換部２１８による逆直交変換と同様の処理である。つまり、逆直交変換部２１８は、逆直交変換部４１４と同様の処理（逆直交変換）を行う。
【０３７２】
逆直交変換部４１４は、導出した予測残差D'を演算部４１５に供給する。
【０３７３】
＜演算部＞
演算部４１５は、画像に関する情報の加算に関する処理を行う。例えば、演算部４１５は、逆直交変換部４１４から供給される予測残差D'と、予測部４１９から供給される予測画像Pとを入力とする。演算部４１５は、以下の式（２９）に示されるように、予測残差D'とその予測残差D'に対応する予測画像P（予測信号）とを加算し、局所復号画像Rlocalを導出する。
【０３７４】
【数２５】
2019188466.tif 000027
【０３７５】
演算部４１５は、導出した局所復号画像Rlocalを、インループフィルタ部４１６およびフレームメモリ４１８に供給する。
【０３７６】
＜インループフィルタ部＞
インループフィルタ部４１６は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部４１６は、演算部４１５から供給される局所復号画像Rlocalと、復号部４１２から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部４１６に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
【０３７７】
インループフィルタ部４１６は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。
【０３７８】
例えば、インループフィルタ部４１６は、非特許文献１に記載のように、バイラテラルフィルタ、デブロッキングフィルタ（DBF（DeBlocking Filter））、適応オフセットフィルタ（SAO（Sample Adaptive Offset））、および適応ループフィルタ（ALF(Adaptive Loop Filter)）の４つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
【０３７９】
インループフィルタ部４１６は、符号化側（例えば画像符号化装置２００のインループフィルタ部２２０）により行われたフィルタ処理に対応するフィルタ処理を行う。もちろん、インループフィルタ部４１６が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部４１６がウィーナーフィルタ等を適用するようにしてもよい。
【０３８０】
インループフィルタ部４１６は、フィルタ処理された局所復号画像Rlocalを並べ替えバッファ４１７およびフレームメモリ４１８に供給する。
【０３８１】
＜並べ替えバッファ＞
並べ替えバッファ４１７は、インループフィルタ部４１６から供給された局所復号画像Rlocalを入力とし、それを保持（記憶）する。並べ替えバッファ４１７は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する（バッファ内に格納する）。並べ替えバッファ４１７は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ４１７は、並べ替えた復号画像R群を動画像データとして画像復号装置４００の外部に出力する。
【０３８２】
＜フレームメモリ＞
フレームメモリ４１８は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ４１８は、演算部４１５より供給される局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ４１８内のバッファへ格納する。
【０３８３】
また、フレームメモリ４１８は、インループフィルタ部４１６から供給される、インループフィルタ処理された局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ４１８内のバッファへ格納する。フレームメモリ４１８は、適宜、その記憶している復号画像R（またはその一部）を参照画像として予測部４１９に供給する。
【０３８４】
なお、フレームメモリ４１８が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
【０３８５】
＜予測部＞
予測部４１９は、予測画像の生成に関する処理を行う。例えば、予測部４１９は、復号部４１２から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部４１９は、その予測モード情報Pinfoによって指定される、フレームメモリ４１８に格納されたフィルタ前またはフィルタ後の復号画像R（またはその一部）を、参照画像として利用する。予測部４１９は、導出した予測画像Pを、演算部４１５に供給する。
【０３８６】
以上のような構成の画像復号装置４００において、復号部４１２は、復号部および制御部として、上述した本技術を適用した処理を行う。また、逆直交変換部４１４は、逆直交変換部として、上述した本技術を適用した処理を行う。したがって、画像復号装置４００は、処理対象のブロックの残差信号やAMTのモード情報の相対的な符号量に応じた方法で、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０３８７】
＜復号部の詳細＞
図２４は、図２３の復号部４１２が有する、逆直交変換の制御に関する主な構成例を示すブロック図である。図２４に示されるように、復号部４１２は、逆直交変換の制御を行う構成として、変換ペア数設定部４３１、cMax設定部４３２、変換ペア識別情報復号部４３３、変換ペアLUT４３４、および変換タイプインデックス設定部４３５を有する。
【０３８８】
変換ペア数設定部４３１は、少なくとも、選択可能な変換ペア数NumTrPairの設定に関する処理を行うのに必要な構成を有する。変換ペア数設定部４３１は、符号化パラメータを入力とする。この符号化パラメータは、符号化データから抽出したものであってもよいし、画像復号装置４００の外部から供給されるものであってもよい。また、この符号化パラメータは、符号化（復号）に関する情報であり、直交変換の制御に利用することができるものであれば、特に限定はされないが、例えば、図８を参照して説明したような各種パラメータを含む。
【０３８９】
変換ペア数設定部４３１は、この符号化パラメータに基づいて、選択可能な変換ペア数NumTrPairを設定する。変換ペア数設定部４３１は、設定した選択可能な変換ペア数NumTrPairを、cMax設定部４３２および変換ペア識別情報復号部４３３に供給する。
【０３９０】
cMax設定部４３２は、少なくとも、選択可能な変換ペア数（すなわち、変換ペアの候補の数）の最大値cMaxの設定に関する処理を行うのに必要な構成を有する。cMax設定部４３２は、変換ペア数設定部４３１から供給される、選択可能な変換ペア数NumTrPairを入力とする。cMax設定部４３２は、その選択可能な変換ペア数NumTrPairに基づいて、最大値cMaxを設定する。cMax設定部４３２は、設定した最大値cMaxを、変換ペア識別情報復号部４３３に供給する。
【０３９１】
変換ペア識別情報復号部４３３は、少なくとも、変換ペア識別情報の復号に関する処理を行うのに必要な構成を有する。変換ペア識別情報復号部４３３は、符号化データと、変換ペア数設定部４３１から供給される選択可能な変換ペア数NumTrPairと、cMax設定部４３２から供給される最大値cMaxとを入力とする。変換ペア識別情報復号部４３３は、それらの情報に基づいて、変換ペア識別情報を復号する（符号化データから抽出する）。変換ペア識別情報復号部４３３は、復号した変換ペア識別情報として変換ペアインデックスTrPairIdxを、変換タイプインデックス設定部４３５供給する。
【０３９２】
図２４に示されるように、変換ペア識別情報復号部４３３は、変換フラグ復号部４５１、変換インデックス復号部４５２、および変換ペアインデックス設定部４５３を有する。
【０３９３】
変換フラグ復号部４５１は、変換フラグemt_flagの復号に関する処理を行うのに必要な構成を有する。変換フラグ復号部４５１は、符号化データを入力とし、その符号化データから変換フラグemt_flagをパースして抽出する（取得する）。変換フラグ復号部４５１は、以上のように取得した変換フラグemt_flagを、変換ペアインデックス設定部４５３に供給する。
【０３９４】
変換インデックス復号部４５２は、少なくとも、変換インデックスemt_idxの復号に関する処理を行うのに必要な構成を有する。変換インデックス復号部４５２は、符号化データ、変換ペア数設定部４３１から供給される選択可能な変換ペア数NumTrPair、およびcMax設定部４３２から供給される最大値cMaxを入力とする。
【０３９５】
変換インデックス復号部４５２は、その選択可能な変換ペア数NumTrPairおよび最大値cMaxに基づいて、符号化データに含まれる変換インデックスemt_idxをパースし、抽出する（取得する）。つまり、変換インデックス復号部４５２は、選択可能な変換ペア数NumTrPairおよび最大値cMaxに基づいて、符号化データに含まれる変換インデックスemt_idxを特定し、抽出する。変換インデックス復号部４５２は、このように取得した変換インデックスemt_idxを、変換ペアインデックス設定部４５３に供給する。
【０３９６】
変換ペアインデックス設定部４５３は、少なくとも、変換ペアインデックスの設定に必要な構成を有する。また、変換ペアインデックス設定部４５３は、変換フラグ復号部４５１から供給される変換フラグemt_flagと、変換インデックス復号部４５２から供給される変換インデックスemt_idxとを入力とする。変換ペアインデックス設定部４５３は、その変換フラグemt_flagおよび変換インデックスemt_idxに基づいて、それらに対応する変換ペアインデックスTrPairIdxを導出する。変換ペアインデックス設定部４５３は、その導出した変換ペアインデックスTrPairIdxを変換タイプインデックス設定部４３５に供給する。
【０３９７】
変換ペアLUT４３４は、例えば半導体メモリ等の任意の記憶媒体を有し、変換ペアを選択するためのルックアップテーブル（LUT（Look Up Table））を記憶している。このLUTは、例えば、図２に示される表１２のような情報を有する。このLUTは、予め定められたものであってもよいし、RDコスト等に基づいて再設計することが可能であってもよい。変換ペアLUT４３４は、必要に応じて、このLUTを変換タイプインデックス設定部４３５に供給する。
【０３９８】
変換タイプインデックス設定部４３５は、少なくとも、変換タイプインデックスTrTypeの設定に関する処理を行うのに必要な構成を有する。変換タイプインデックス設定部４３５は、変換ペアインデックス設定部４５３から供給される変換ペアインデックスTrPairIdx、変換ペアLUT４３４から供給されるLUT、および、モード情報を入力とする。このモード情報には、例えば、イントラ予測のモード情報（IntraMode）、インター予測であることを示すモード情報（Inter）、およびコンポーネントID（compID）等の符号化パラメータが含まれる。このモード情報は、復号部４１２（復号部４１２の図２４に示される以外の構成）により設定されたものであってもよいし、画像復号装置４００の外部から供給されるものであってもよい。
【０３９９】
変換タイプインデックス設定部４３５は、これらの情報に基づいて、変換タイプインデックスTrTypeとして、水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する。つまり、変換タイプインデックス設定部４３５は、変換ペアLUT４３４から供給されるLUTに従って、変換ペアインデックスTrPairIdxとモード情報とに対応する変換ペアを選択し、その変換ペアを識別する水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する。
【０４００】
変換タイプインデックス設定部４３５は、設定した水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを、変換情報Tinfoとして、逆直交変換部４１４に供給する。
【０４０１】
つまり、復号部４１２は、この水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを逆直交変換部４１４に供給することにより、その逆直交変換を制御する。そして、上述のように、復号部４１２は、この水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する際に、符号化パラメータに基づいて変換ペアの候補の数（NumTrPair）を制御する。したがって、画像復号装置４００は、図８等を参照して上述したように、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０４０２】
＜逆直交変換部の詳細＞
図２５は、図２３の逆直交変換部４１４の主な構成例を示すブロック図である。図２５に示されるように、逆直交変換部４１４は、逆セカンダリ変換部４６１および逆プライマリ変換部４６２を有する。
【０４０３】
逆セカンダリ変換部４６１は、少なくとも、符号化側（例えば、画像符号化装置２００のセカンダリ変換部２６２）において行われるセカンダリ変換の逆処理である逆セカンダリ変換に関する処理を行うのに必要な構成を有する。例えば、逆セカンダリ変換部４６１は、逆量子化部４１３から供給される変換係数Coeff_IQおよび変換情報Tinfoを入力とする。
【０４０４】
逆セカンダリ変換部４６１は、変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆セカンダリ変換を行い、逆セカンダリ変換後の変換係数Coeff_ISを導出する。逆セカンダリ変換部４６１は、その逆セカンダリ変換後の変換係数Coeff_ISを逆プライマリ変換部４６２に供給する。
【０４０５】
逆プライマリ変換部４６２は、符号化側（例えば、画像符号化装置２００のプライマリ変換部２６１）において行われるプライマリ変換の逆処理である逆プライマリ変換に関する処理を行う。例えば、逆プライマリ変換部４６２は、逆セカンダリ変換後の変換係数Coeff_ISと、変換タイプインデックス（垂直変換タイプインデックスTrTypeVおよび水平変換タイプインデックスTrTypeH）とを入力とする。
【０４０６】
逆プライマリ変換部４６２は、水平変換タイプインデックスTrTypeHに対応する変換行列と、垂直変換タイプインデックスTrTypeVに対応する変換行列とを用いて、逆セカンダリ変換後の変換係数Coeff_ISに対する逆プライマリ変換を行い、逆プライマリ変換後の変換係数（つまり、予測残差D'）を導出する。逆プライマリ変換部４６２は、導出した予測残差D'を演算部４１５に供給する。
【０４０７】
図２５に示されるように、逆プライマリ変換部４６２は、逆プライマリ垂直変換部４７１および逆プライマリ水平変換部４７２を有する。
【０４０８】
逆プライマリ垂直変換部４７１は、垂直方向の逆１次元直交変換である逆プライマリ垂直変換に関する処理を行うように構成される。例えば、逆プライマリ垂直変換部４７１は、変換係数Coeff_ISおよび変換情報Tinfo（垂直変換タイプインデックスTrTypeV等）を入力とする。逆プライマリ垂直変換部４７１は、垂直変換タイプインデックスTrTypeVに対応する変換行列を用いて、変換係数Coeff_ISに対する逆プライマリ垂直変換を行う。逆プライマリ垂直変換部４７１は、逆プライマリ垂直変換後の変換係数を逆プライマリ水平変換部４７２に供給する。
【０４０９】
逆プライマリ水平変換部４７２は、水平方向の１次元直交変換であるプライマリ水平変換に関する処理を行うように構成される。例えば、逆プライマリ水平変換部４７２は、逆プライマリ垂直変換後の変換係数および変換情報Tinfo（水平変換タイプインデックスTrTypeH等）を入力とする。逆プライマリ水平変換部４７２は、水平変換タイプインデックスTrTypeHに対応する変換行列を用いて、逆プライマリ垂直変換後の変換係数に対する逆プライマリ水平変換を行う。逆プライマリ水平変換部４７２は、逆プライマリ水平変換後の変換係数（つまり、予測残差D'）を演算部４１５に供給する。
【０４１０】
なお、逆直交変換部４１４においては、逆セカンダリ変換部４６１による逆セカンダリ変換、若しくは、逆プライマリ変換部４６２による逆プライマリ変換、またはその両方を、スキップする（省略する）ことができる。また、逆プライマリ垂直変換部４７１による逆プライマリ垂直変換をスキップする（省略する）ことができるようにしてもよい。同様に、逆プライマリ水平変換部４７２による逆プライマリ水平変換をスキップする（省略する）ことができるようにしてもよい。
【０４１１】
＜逆プライマリ垂直変換部＞
図２６は、図２５の逆プライマリ垂直変換部４７１の主な構成例を示すブロック図である。図２６に示されるように、逆プライマリ垂直変換部４７１は、変換行列導出部４８１、行列演算部４８２、スケーリング部４８３、およびクリップ部４８４を有する。
【０４１２】
変換行列導出部４８１は、垂直変換タイプインデックスTrTypeVと、変換ブロックのサイズに関する情報を入力とし、その垂直変換タイプインデックスTrTypeVに対応する、変換ブロックと同サイズの、逆プライマリ垂直変換用の変換行列TV（垂直方向の逆１次元直交変換用の変換行列TV）を導出する。変換行列導出部４８１は、その変換行列TVを行列演算部４８２に供給する。
【０４１３】
行列演算部４８２は、その変換行列導出部４８１から供給される変換行列TVを用いて、入力データXin（すなわち逆セカンダリ変換後の変換係数Coeff_ISの変換ブロック）に対する垂直方向の逆１次元直交変換を行い、中間データY1を得る。この演算は以下の式（３０）のように行列式で表すことができる。
【０４１４】
【数２６】
2019188466.tif 000028
【０４１５】
行列演算部４８２は、その中間データY1をスケーリング部４８３に供給する。
【０４１６】
スケーリング部４８３は、その中間データY1の各i行j列成分の係数Y1[i,j]を所定のシフト量SIVでスケーリングし、中間データY2を得る。このスケーリングは、以下の式（３１）のように表すことができる。
【０４１７】
【数２７】
2019188466.tif 000029
【０４１８】
スケーリング部４８３は、その中間データY2をクリップ部４８４に供給する。
【０４１９】
クリップ部４８４は、その中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout（つまり、逆プライマリ垂直変換後の変換係数）を導出する。この処理は、上述の式（１２）のように表すことができる。
【０４２０】
クリップ部４８４は、その出力データXout（逆プライマリ垂直変換後の変換係数）を逆プライマリ垂直変換部４７１の外部に出力する（逆プライマリ水平変換部４７２に供給する）。
【０４２１】
＜変換行列導出部＞
図２７は、図２６の変換行列導出部４８１の主な構成例を示すブロック図である。図２７に示されるように、変換行列導出部４８１は、変換行列LUT４９１、フリップ部４９２、および転置部４９３を有する。なお、図２７においては、データの授受を示す矢印を省略しているが、変換行列導出部４８１は、任意の処理部（処理ブロック）間で任意のデータを授受することができる。
【０４２２】
変換行列LUT４９１は、垂直変換タイプインデックスTrTypeVおよび変換ブロックのサイズNに対応する変換行列を保持（格納）するためのルックアップテーブルである。変換行列LUT４９１は、垂直変換タイプインデックスTrTypeVおよび変換ブロックのサイズNが指定されると、それらに対応する変換行列を選択し、出力する。この導出例の場合、変換行列LUT４９１は、その変換行列をベース変換行列Tbaseとしてフリップ部４９２若しくは転置部４９３、または両方に供給する。
【０４２３】
フリップ部４９２は、入力されるN行N列の変換行列Tをフリップし、フリップ後の変換行列Tflipを出力する。この導出例の場合、フリップ部４９２は、変換行列LUT４９１から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを行方向（水平方向）にフリップして、フリップ後の変換行列Tflipを、変換行列TVとして、変換行列導出部４８１の外部に出力する（行列演算部４８２に供給する）。
【０４２４】
転置部４９３は、入力されるN行N列の変換行列Tを転置し、転置後の変換行列Ttransposeを出力する。この導出例の場合、転置部４９３は、変換行列LUT４９１から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを転置して、転置後の変換行列Ttransposeを、変換行列TVとして、変換行列導出部４８１の外部に出力する（行列演算部４８２に供給する）。
【０４２５】
＜逆プライマリ水平変換部＞
図２８は、図２５の逆プライマリ水平変換部４７２の主な構成例を示すブロック図である。図２８に示されるように、逆プライマリ水平変換部４７２は、変換行列導出部５０１、行列演算部５０２、スケーリング部５０３、およびクリップ部５０４を有する。
【０４２６】
変換行列導出部５０１は、水平変換タイプインデックスTrTypeHと、変換ブロックのサイズに関する情報を入力とし、その水平変換タイプインデックスTrTypeHに対応する、変換ブロックと同サイズの、水平変換用の変換行列TH（水平方向の逆１次元直交変換用の変換行列TH）を導出する。変換行列導出部５０１は、その変換行列THを行列演算部５０２に供給する。
【０４２７】
行列演算部５０２は、その変換行列導出部５０１から供給される変換行列THを用いて、入力データXin（すなわち逆プライマリ垂直変換後の変換係数の変換ブロック）に対する水平方向の逆１次元直交変換を行い、中間データY1を得る。この演算は以下の式（３２）のように行列式で表すことができる。
【０４２８】
【数２８】
2019188466.tif 000030
【０４２９】
行列演算部５０２は、その中間データY1をスケーリング部５０３に供給する。
【０４３０】
スケーリング部５０３は、その中間データY1の各i行j列成分の係数Y1[i,j]を所定のシフト量SIHでスケーリングし、中間データY2を得る。このスケーリングは、以下の式（３３）のように表すことができる。
【０４３１】
【数２９】
2019188466.tif 000031
【０４３２】
スケーリング部５０３は、その中間データY2をクリップ部５０４に供給する。
【０４３３】
クリップ部５０４は、その中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout（つまり、逆プライマリ水平変換後の変換係数）を導出する。この処理は、上述の式（９）のように表すことができる。
【０４３４】
クリップ部５０４は、その出力データXout（逆プライマリ水平変換後の変換係数（逆プライマリ変換後の変換係数Coeff_IP））を、予測残差D'として、逆プライマリ水平変換部４７２の外部に出力する（演算部４１５に供給する）。
【０４３５】
＜変換行列導出部＞
図２９は、図２８の変換行列導出部５０１の主な構成例を示すブロック図である。図２９に示されるように、変換行列導出部５０１は、変換行列LUT５１１、フリップ部５１２、および転置部５１３を有する。なお、図２９においては、データの授受を示す矢印を省略しているが、変換行列導出部５０１は、任意の処理部（処理ブロック）間で任意のデータを授受することができる。
【０４３６】
変換行列LUT５１１は、水平変換タイプインデックスTrTypeIdxHおよび変換ブロックのサイズNに対応する変換行列を保持（格納）するためのルックアップテーブルである。変換行列LUT５１１は、水平変換タイプインデックスTrTypeIdxHおよび変換ブロックのサイズNが指定されると、それらに対応する変換行列を選択し、出力する。この導出例の場合、変換行列LUT５１１は、その変換行列をベース変換行列Tbaseとしてフリップ部５１２若しくは転置部５１３、または両方に供給する。
【０４３７】
フリップ部５１２は、入力されるN行N列の変換行列Tをフリップし、フリップ後の変換行列Tflipを出力する。この導出例の場合、フリップ部５１２は、変換行列LUT５１１から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを行方向（水平方向）にフリップして、フリップ後の変換行列Tflipを、変換行列THとして、変換行列導出部５０１の外部に出力する（行列演算部５０２に供給する）。
【０４３８】
転置部５１３は、入力されるN行N列の変換行列Tを転置し、転置後の変換行列Ttransposeを出力する。この導出例の場合、転置部５１３は、変換行列LUT５１１から供給されるN行N列のベース変換行列Tbaseを入力とし、そのベース変換行列Tbaseを転置して、転置後の変換行列Ttransposeを、変換行列THとして、変換行列導出部５０１の外部に出力する（行列演算部５０２に供給する）。
【０４３９】
＜画像復号処理の流れ＞
次に、以上のような構成の画像復号装置４００により実行される各処理の流れについて説明する。最初に、図３０のフローチャートを参照して、画像符号化処理の流れの例を説明する。
【０４４０】
画像復号処理が開始されると、蓄積バッファ４１１は、ステップＳ４０１において、画像復号装置４００の外部から供給される符号化データ（ビットストリーム）を取得して保持する（蓄積する）。
【０４４１】
ステップＳ４０２において、復号部４１２は、その符号化データ（ビットストリーム）を復号し、量子化変換係数レベルlevelを得る。また、復号部４１２は、この復号により、符号化データ（ビットストリーム）から各種符号化パラメータをパースする（解析して取得する）。
【０４４２】
ステップＳ４０３において、復号部４１２は、符号化パラメータに応じて逆直交変換のタイプを制御する逆直交変換制御処理を行う。
【０４４３】
ステップＳ４０４において、逆量子化部４１３は、ステップＳ４０２の処理により得られた量子化変換係数レベルlevelに対して、符号化側で行われた量子化の逆処理である逆量子化を行い、変換係数Coeff_IQを得る。
【０４４４】
ステップＳ４０５において、逆直交変換部４１４は、ステップＳ４０３の制御に従って、ステップＳ４０４において得られた変換係数Coeff_IQに対して、符号化側で行われた直交変換処理の逆処理である逆直交変換処理を行い、予測残差D'を得る。
【０４４５】
ステップＳ４０６において、予測部４１９は、ステップＳ４０２においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ４１８に記憶されている参照画像を参照する等して、予測画像Pを生成する。
【０４４６】
ステップＳ４０７において、演算部４１５は、ステップＳ４０５において得られた予測残差D'と、ステップＳ４０６において得られた予測画像Pとを加算し、局所復号画像Rlocalを導出する。
【０４４７】
ステップＳ４０８において、インループフィルタ部４１６は、ステップＳ４０７の処理により得られた局所復号画像Rlocalに対して、インループフィルタ処理を行う。
【０４４８】
ステップＳ４０９において、並べ替えバッファ４１７は、ステップＳ４０８の処理により得られたフィルタ処理された局所復号画像Rlocalを用いて復号画像Rを導出し、その復号画像R群の順序を復号順から再生順に並べ替える。再生順に並べ替えられた復号画像R群は、動画像として画像復号装置４００の外部に出力される。
【０４４９】
また、ステップＳ４１０において、フレームメモリ４１８は、ステップＳ４０７の処理により得られた局所復号画像Rlocal、および、ステップＳ４０８の処理により得られたフィルタ処理後の局所復号画像Rlocalの内、少なくとも一方を記憶する。
【０４５０】
ステップＳ４１０の処理が終了すると、画像復号処理が終了する。
【０４５１】
以上のような流れの画像復号処理において、ステップＳ４０３の処理として、上述した本技術を適用した処理が行われる。また、ステップＳ４０５の処理として、ステップＳ４０３の制御に基づいて逆直交変換処理が行われる。したがって、この画像復号処理を実行することにより、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０４５２】
＜逆直交変換制御処理の流れ＞
次に、図３１のフローチャートを参照して、図３０のステップＳ４０３において実行される逆直交変換制御処理の流れの例を説明する。
【０４５３】
逆直交変換制御処理が開始されると、変換フラグ復号部４５１は、ステップＳ４２１において、符号化データに含まれる変換フラグemt_flagを復号し、取得する。つまり、この処理により、符号化データから変換フラグemt_flagが抽出される。
【０４５４】
ステップＳ４２２において、復号部４１２は、符号化データを復号し、各種符号化パラメータを取得する。この符号化パラメータには、符号化データに含まれるシンタックス要素の値の他、そのシンタックス要素の値から導出される変数も含まれる。符号化パラメータの具体的な内容は任意であり、特に限定されないが、例えば、図８を参照して説明したような各種パラメータが含まれる。
【０４５５】
ステップＳ４２３において、変換ペア数設定部４３１は、ステップＳ４２２において取得した符号化パラメータに基づいて、選択可能な変換ペア数（変換ペアの候補の数）NumTrPairを設定する。
【０４５６】
ステップＳ４２４において、変換ペア数設定部４３１は、ステップＳ４２３において設定した選択可能な変換ペア数NumTrPairの値が「１」であるか否かを判定する。選択可能な変換ペア数NumTrPairの値が「１」でないと判定された場合、処理はステップＳ４２５に進む。
【０４５７】
ステップＳ４２５において、変換ペア数設定部４３１は、ステップＳ４２３において設定した選択可能な変換ペア数NumTrPairの値が「２」であるか否かを判定する。選択可能な変換ペア数NumTrPairの値が「２」でないと判定された場合、処理はステップＳ４２６に進む。
【０４５８】
ステップＳ４２６において、cMax設定部４３２は、選択可能な変換ペア数NumTrPairの最大値cMaxを設定する。
【０４５９】
ステップＳ４２７において、変換インデックス復号部４５２は、符号化データを算術復号してビン列binStringを取得する。
【０４６０】
ステップＳ４２８において、変換インデックス復号部４５２は、ステップＳ４２６において設定された最大値cMaxと、指定される２値化方法の逆処理（多値化方法）とに基づいて、ビン列binStringから変換インデックスemt_idxを導出する。つまり、ステップＳ４２７およびステップＳ４２８の処理により、符号化データから変換インデックスemt_idxが抽出される。
【０４６１】
ステップＳ４２９において、変換ペアインデックス設定部４５３は、ステップＳ４２１およびステップＳ４２８において符号化データから抽出された変換フラグemt_flagおよび変換インデックスemt_idxに基づいて、変換ペアインデックスTrPairIdxを導出（設定）する。例えば、以下の式（３４）のように導出される。
【０４６２】
【数３０】
2019188466.tif 000032
【０４６３】
例えば、変換フラグemt_flag = 0であれば、変換ペアインデックスTrPairIdxの値は「０」に設定される。また、変換フラグemt_flag = 0でなければ、変換ペアインデックスTrPairIdxの値は「変換インデックスemt_idx＋１」に設定される。もちろんこの変換ペアインデックスTrPairIdxの算出方法は任意であり、この例に限定されない。
【０４６４】
ステップＳ４２９の処理が終了すると、処理はステップＳ４３２に進む。また、ステップＳ４２４において、選択可能な変換ペア数NumTrPairの値が「１」であると判定された場合、処理はステップＳ４３０に進む。ステップＳ４３０において、変換ペアインデックス設定部４５３は、変換ペアインデックスTrPairIdxの値を「０」に設定する。ステップＳ４３０の処理が終了すると、処理はステップＳ４３２に進む。また、ステップＳ４２５において、選択可能な変換ペア数NumTrPairの値が「２」であると判定された場合、処理はステップＳ４３１に進む。ステップＳ４３１において、変換ペアインデックス設定部４５３は、変換ペアインデックスTrPairIdxの値を「１」に設定する。ステップＳ４３１の処理が終了すると、処理はステップＳ４３２に進む。
【０４６５】
ステップＳ４３２において、変換タイプインデックス設定部４３５は、変換ペアLUT４３４が保持するLUTに基づいて、以上のように設定された変換ペアインデックスTrPairIdxおよび予測のモード情報（mode）に対応する水平変換タイプインデックスTrTypeHおよび垂直変換タイプインデックスTrTypeVを設定する。例えば、この導出は、以下の式（３５）のように表すことができる。
【０４６６】
【数３１】
2019188466.tif 000033
【０４６７】
ステップＳ４３２の処理が終了すると、逆直交変換制御処理が終了し、処理は図３０に戻る。
【０４６８】
以上のように、逆直交変換の制御において、符号化パラメータに基づいて変換ペアの候補の数を制御することにより、処理対象のブロックの残差信号やAMTのモード情報の相対的な符号量に応じた方法で、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０４６９】
＜逆直交変換の処理の流れ＞
次に、図３０のステップＳ４０５において実行される逆直交変換処理の流れの例を、図３２のフローチャートを参照して説明する。逆直交変換処理が開始されると、逆直交変換部４１４は、ステップＳ４４１において、変換スキップフラグts_flagが2D_TS（２次元変換スキップのモード）（例えば１（真））である、または、変換量子化バイパスフラグtransquant_bypass_flagが１（真）である、か否かを判定する。変換スキップ識別子ts_idxが2D_TSである、または、変換量子化バイパスフラグが１（真）であると判定された場合、逆直交変換処理が終了し、処理は図３０に戻る。この場合、逆直交変換処理（逆プライマリ変換や逆セカンダリ変換）が省略され、変換係数Coeff_IQが予測残差D'とされる。
【０４７０】
また、ステップＳ４４１において、変換スキップ識別子ts_idxが2D_TSでない（２次元変換スキップ以外のモード）（例えば０（偽））であり、かつ、変換量子化バイパスフラグが０（偽）である、と判定された場合、処理はステップＳ４４２に進む。この場合、逆セカンダリ変換処理および逆プライマリ変換処理が行われる。
【０４７１】
ステップＳ４４２において、逆セカンダリ変換部４６１は、変換係数Coeff_IQに対して、セカンダリ変換識別子st_idxに基づいて逆セカンダリ変換処理を行い、変換係数Coeff_ISを導出し、出力する。
【０４７２】
ステップＳ４４３において、逆プライマリ変換部４６２は、変換係数Coeff_ISに対して逆プライマリ変換処理を行い、逆プライマリ変換後の変換係数（予測残差D'）を導出する。
【０４７３】
ステップＳ４４３の処理が終了すると逆直交変換処理が終了し、処理は図３０に戻る。
【０４７４】
＜逆プライマリ変換処理の流れ＞
次に、図３２のステップＳ４４３において実行される逆プライマリ変換処理の流れの例を、図３３のフローチャートを参照して説明する。
【０４７５】
逆プライマリ変換処理が開始されると、逆プライマリ変換部４６２の逆プライマリ垂直変換部４７１は、ステップＳ４５１において、逆セカンダリ変換後の変換係数Coeff_ISに対して逆プライマリ垂直変換処理を行い、逆プライマリ垂直変換後の変換係数を導出する。
【０４７６】
ステップＳ４５２において、逆プライマリ水平変換部４７２は、その逆プライマリ垂直変換後の変換係数に対して逆プライマリ水平変換処理を行い、逆プライマリ水平変換後の変換係数（すなわち、予測残差D'）を導出する。
【０４７７】
ステップＳ４５２の処理が終了すると、逆プライマリ変換処理が終了し、処理は図３２に戻る。
【０４７８】
＜逆プライマリ垂直変換処理の流れ＞
次に、図３３のステップＳ４５１において実行される逆プライマリ垂直変換処理の流れの例を、図３４のフローチャートを参照して説明する。
【０４７９】
逆プライマリ垂直変換処理が開始されると、逆プライマリ垂直変換部４７１の変換行列導出部４８１は、ステップＳ４６１において、変換行列導出処理を実行し、垂直変換タイプインデックスTrTypeVに対応する変換行列TVを導出する。
【０４８０】
この場合の変換行列導出処理は、図２１のフローチャートを参照して説明したプライマリ水平変換の場合と同様の流れで行われる。したがって、その説明を省略する。例えば、水平変換タイプインデックスTrTypeHを垂直変換タイプインデックスTrTypeVに置き換えたり、導出されるプライマリ水平変換用の変換行列THを、逆プライマリ垂直変換用の変換行列TVに置き換えたりすることにより、図２１を参照して行った説明を、この場合の変換行列導出処理の説明として適用することができる。
【０４８１】
ステップＳ４６２において、行列演算部４８２は、その導出された変換行列TVを用いて入力データXin（つまり、逆セカンダリ変換後の変換係数Coeff_IS）に対して垂直方向の逆１次元直交変換を行い、中間データY1を得る。この処理を行列式として表現すると、上述の式（３０）のように表すことができる。
【０４８２】
ステップＳ４６３において、スケーリング部４８３は、ステップＳ４６２の処理により導出された中間データY1の各i行j列成分の係数Y1[i,j]をシフト量SIVでスケーリングし、中間データY2を導出する。このスケーリングは、上述の式（３１）のように表すことができる。
【０４８３】
ステップＳ４６４において、クリップ部４８４は、ステップＳ４６３の処理により導出された中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout（つまり、逆プライマリ垂直変換後の変換係数）を得る。この処理は、上述の式（１２）のように表すことができる。
【０４８４】
ステップＳ４６４の処理が終了すると、逆プライマリ垂直変換処理が終了し、処理は図３３に戻る。
【０４８５】
＜逆プライマリ水平変換処理の流れ＞
次に、図３３のステップＳ４５２において実行される逆プライマリ水平変換処理の流れについて、図３５のフローチャートを参照して説明する。
【０４８６】
逆プライマリ水平変換処理が開始されると、逆プライマリ水平変換部４７２の変換行列導出部５０１は、ステップＳ４７１において、変換行列導出処理を実行し、水平変換タイプインデックスTrTypeHに対応する変換行列THを導出する。
【０４８７】
この場合の変換行列導出処理は、図２１のフローチャートを参照して説明したプライマリ水平変換の場合と同様の流れで行われる。したがって、その説明を省略する。例えば、プライマリ水平変換を逆プライマリ水平変換に置き換える等すれば、図２１を参照して行った説明を、この場合の変換行列導出処理の説明として適用することができる。
【０４８８】
ステップＳ４７２において、行列演算部５０２は、その導出された変換行列THを用いて入力データXin（つまり、逆プライマリ垂直変換後の変換係数）に対して水平方向の逆１次元直交変換を行い、中間データY1を得る。この処理を行列式として表現すると、上述の式（３２）のように表すことができる。
【０４８９】
ステップＳ４７３において、スケーリング部５０３は、ステップＳ４７２の処理により導出された中間データY1の各i行j列成分の係数Y1[i,j]をシフト量SIHでスケーリングし、中間データY2を導出する。このスケーリングは、上述の式（３３）のように表すことができる。
【０４９０】
ステップＳ４７４において、クリップ部５０４は、ステップＳ４７３の処理により導出された中間データY2の各i行j列成分の係数Y2[i,j]の値をクリップし、出力データXout（つまり、予測残差D'）を得る。この処理は、上述の式（９）のように表すことができる。
【０４９１】
ステップＳ４７４の処理が終了すると、逆プライマリ水平変換処理が終了し、処理は図３３に戻る。
【０４９２】
以上のように各処理を実行することにより、画像復号装置４００は、処理対象のブロックの残差信号やAMTのモード情報の相対的な符号量に応じた方法で、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０４９３】
＜２−６．その他＞
以上のように、直交変換および逆直交変換における選択可能な変換ペア数を制御する。この制御を表１２（図２）で表すと、例えば、図３６のようになる。図３６において、枠線５３１乃至枠線５３４は、選択可能な変換ペア（候補とされる変換ペア）の範囲を示している。つまり、上述の制御により、図３６の枠線５３１乃至枠線５３４のように、選択可能な変換ペアの範囲（表１２の行数）が可変となる。
【０４９４】
換言するに、このような制御により、変換ペアインデックスTrPairIdx（変換フラグemt_flagおよび変換インデックスemt_idx）の取り得る値の範囲が可変となる。
【０４９５】
変換フラグemt_flagおよび変換インデックスemt_idxは、例えば、図３７のＡに示される表５４１のように、固定長で２値化される（FL（Fixed Length binarization））。したがって、変換フラグemt_flagの２値化後のビット長は固定（１ビット）であるが、変換インデックスemt_idxの２値化後のビット長は、最大値cMaxに依存する。つまり、選択可能な変換ペア数NumTrPairに依存する（cMax=NumTrPair-2）。
【０４９６】
したがって、図３６の表１２の場合、枠線５３４で囲まれる範囲を候補とする場合よりも、枠線５３１で囲まれる範囲を候補とする場合の方が、変換ペアインデックスに関する情報の符号量（つまりAMTのモード情報の符号量）を低減させることができる。
【０４９７】
ただし、一般的には、候補の数が多い方が残差信号の符号量を低減させることができる。つまり、枠線５３４で囲まれる範囲を候補とする場合の方が、枠線５３１で囲まれる範囲を候補とする場合よりも、残差信号の符号量を低減させることができる。
【０４９８】
つまり、上述したように、残差信号の符号量の方がAMTのモード情報の符号量よりも多いブロックにおいては、残差信号の符号量を低減させる方がより効率がよい。逆に、AMTのモード情報の符号量の方が残差信号の符号量よりも多いブロックにおいては、AMTのモード情報の符号量を低減させる方がより効率がよい。
【０４９９】
そこで、そのような制御を行うように、画像符号化装置２００および画像復号装置４００は、符号化パラメータに基づいて、選択可能な変換ペア数NumTrPairの数を制御する。したがって、残差信号の符号量の方がAMTのモード情報の符号量よりも多いブロックにおいては、残差信号の符号量を低減させ、AMTのモード情報の符号量の方が残差信号の符号量よりも多いブロックにおいては、AMTのモード情報の符号量を低減させることができる。したがって、どちらの場合も、より効率よく符号量を低減させ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０５００】
なお、変換インデックスemt_idxの２値化には、例えば、図３７のＢに示される表５４２のように、可変長のトランケーテッドライスバイナリゼーション（TR（Truncated Rice binarization））を適用するようにしてもよい。この場合も、２値化後のビンのビット長は、シンボル値や最大値cMaxに依存する。例えば、シンタックスを２値化する際にプリフィックス（prefix）部分の値（prefixVal）や、プリフィックス部分のTR binの決定に関わるパラメータであるライスパラメータcRiceParamを「０」とすると、TRは、シンボルの値とビット長とが一致するトランケーテッドユーナリーバイナリゼーション（Truncated Unary binarization）に一致する。したがって、そのビンのビット長はシンボルの値に依存する。
【０５０１】
つまり、この場合も、固定長２値化の場合と同様に、画像符号化装置２００および画像復号装置４００が、符号化パラメータに基づいて、選択可能な変換ペア数NumTrPairの数を制御することにより、より効率よく符号量を低減させ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０５０２】
なお、以上においては、変換ペア識別情報（変換ペアインデックスTrPairIdxに関する情報）を、変換フラグemt_flagと変換インデックスemt_idxとに分けて符号化・復号するように説明した。この場合、変換フラグemt_flagは、index（変換ペアインデックスTrPairIdx）==0の変換ペアにするか否かを示す１ビットのプリフィックス（prefix）部分を構成し、変換インデックスemt_idxは、index（変換ペアインデックスTrPairIdx）==0以外の変換ペアを指定するサフィックス（suffix）部分を構成する。
【０５０３】
変換ペア識別情報は、どのように符号化・復号するようにしてもよく、上述のようにプリフィックス部分とサフィックス部分とに分けずに、index（変換ペアインデックスTrPairIdx）を１つのシンタックス要素として符号化・復号するようにしてもよい。この場合、最大値cMaxは、変換ペアの候補テーブル（表１２）において、現在の符号化パラメータで決定される「index==0から数えた変換ペア数-1」である。
【０５０４】
また、２値化する前の多値データにおいても、変換ペアインデックスTrPairIdx（特に変換インデックスemt_idx）を可変長としてもよい。
【０５０５】
例えば、図３６の表１２の例において（変換フラグemt_flag==1とする）、枠線５３１で囲まれる範囲を候補とする場合、変換インデックスemt_idxは「０」に固定なので０ビットでよい。また、枠線５３２で囲まれる範囲を候補とする場合、変換インデックスemt_idxは「０」または「１」であるので、１ビット必要である。また、枠線５３３で囲まれる範囲を候補とする場合、変換インデックスemt_idxは「０」乃至「３」のいずれかであるので、２ビット必要である。また、枠線５３４で囲まれる範囲を候補とする場合、変換インデックスemt_idxは「０」乃至「７」のいずれかであるので、３ビット必要である。
【０５０６】
このように、変換ペアの候補の数が増大する程、変換インデックスemt_idxに必要なビット数は増大する。つまり、変換ペアの候補の数の最大値を考慮して変換インデックスemt_idxに必要なビット数を設定する必要がある。ただし、言い換えれば、変換ペアの候補の数が低減する程、変換インデックスemt_idxに必要なビット数は低減する。つまり、変換ペアの候補の最大数に合わせて、変換インデックスemt_idxに必要なビット数を設定すると、変換ペアの候補の数が少ない場合に、変換インデックスemt_idxのビット長が不要に長くなる（情報量が不要に増大する）ことになる。
【０５０７】
したがって、変換インデックスemt_idxの多値データを可変長とし、符号化パラメータに応じたビット長とすることにより、このような不要な情報量の増大を抑制し、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０５０８】
その場合、例えば、変換インデックス設定部２５３（図１０）が変換インデックスemt_idxのビット長を符号化パラメータに応じて設定し、変換インデックス復号部４５２（図２４）が、符号化パラメータに応じたビット長で、符号化データの変換インデックスemt_idxをパースして抽出するようにすればよい。
【０５０９】
＜３．第１の実施の形態＞
＜方法＃１＞
次に、このような制御に用いる符号化パラメータの各例について説明する。ここでは、図８の表１５１の方法＃１について説明する。方法＃１の場合、符号化パラメータは、例えば、コンポーネントの種類に関するシンタックス要素（例えば、コンポーネントID（componentID））の値を含み、直交変換（逆直交変換）の処理対象が輝度信号であるか色差信号であるかに応じて、直交変換（逆直交変換）のタイプの候補の数が制御される。
【０５１０】
例えば、図３８の表６０１のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「１」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1以下の場合（numSIG <= TH1）、選択可能な変換ペア数NumTrPairは、「２」に設定される。
【０５１１】
また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、かつ、輝度信号（componentID==0）の場合、選択可能な変換ペア数NumTrPairは、「N1」に設定される。また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、かつ、色差信号（componentID > 0）の場合、選択可能な変換ペア数NumTrPairは、「N2」（N1 >= N2）に設定される。
【０５１２】
例えば、TH1=2, N1=9, N2=3としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、輝度信号の場合「０」乃至「７」となり、色差信号の場合「０」および「１」となる。つまり、色差信号の場合、直交変換（逆直交変換）のタイプの候補の数を、輝度信号の場合よりも少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０５１３】
＜変換ペア数設定処理の流れ＞
この場合の、図１７のステップＳ２３１において実行される変換ペア数設定処理の流れ例を、図３９のフローチャートを参照して説明する。
【０５１４】
変換ペア数設定処理が開始されると、変換ペア数設定部２４１は、ステップＳ６０１において、変換フラグemt_flagの値を「１」にするか否かを判定する。変換フラグemt_flagの値を「０」とすると判定された場合、処理はステップＳ６０２に進む。
【０５１５】
ステップＳ６０２において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「１」に設定する（NumTrPair=1）。ステップＳ６０２の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５１６】
また、ステップＳ６０１において、変換フラグemt_flagの値を「１」とすると判定された場合、処理はステップＳ６０３に進む。
【０５１７】
ステップＳ６０３において、変換ペア数設定部２４１は、処理対象ブロックの非ゼロ係数をカウントし、非ゼロ係数の数numSIGを導出する。
【０５１８】
ステップＳ６０４において、変換ペア数設定部２４１は、その非ゼロ係数の数numSIGが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH1以下である（numSIG <= TH1）と判定された場合、処理はステップＳ６０５に進む。
【０５１９】
ステップＳ６０５において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「２」に設定する（NumTrPair=2）。ステップＳ６０５の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５２０】
また、ステップＳ６０４において、非ゼロ係数の数numSIGが所定の閾値TH1より大きい（numSIG > TH1）と判定された場合、処理はステップＳ６０６に進む。
【０５２１】
ステップＳ６０６において、変換ペア数設定部２４１は、componentIDを参照し、処理対象が輝度信号であるか否かを判定する。処理対象が輝度信号（Luma）である（componentID==0）と判定された場合、処理は、ステップＳ６０７に進む。
【０５２２】
ステップＳ６０７において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N1」に設定する（NumTrPair=N1）。ステップＳ６０７の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５２３】
また、ステップＳ６０６において、処理対象が色差信号（Chroma）である（componentID > 0）と判定された場合、処理は、ステップＳ６０８に進む。
【０５２４】
ステップＳ６０８において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N2」（N1 > N2）に設定する（NumTrPair=N2）。ステップＳ６０８の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５２５】
以上のように処理を行うことにより、処理対象が輝度信号であるか色差信号であるかに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０５２６】
なお、復号の場合（逆直交変換の制御の場合）も、同様に変換ペア数設定処理を行えばよい。つまり、図３１のステップＳ４２３においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部２４１の代わりに変換ペア数設定部４３１が処理を実行するようにすることにより、上述の説明を適用することができる。
【０５２７】
＜４．第２の実施の形態＞
＜方法＃２＞
次に、図８の表１５１の方法＃２について説明する。方法＃２の場合、符号化パラメータが、例えば、予測のモードに関するシンタックス要素の値を含む。
【０５２８】
＜４−１．方法＃２−１＞
そして、図８の表１５１の方法＃２−１の場合、直交変換（逆直交変換）の処理対象ブロックの予測モードがイントラ予測（例えばイントラCU）であるか、インター予測（例えばインターCU）であるかに応じて、直交変換（逆直交変換）のタイプの候補の数が制御される。
【０５２９】
例えば、図４０のＡの表６１１のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「１」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1以下の場合（numSIG <= TH1）、選択可能な変換ペア数NumTrPairは、「２」に設定される。
【０５３０】
また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、かつ、予測モードがイントラ予測（Intra）の場合、選択可能な変換ペア数NumTrPairは、「N1」に設定される。また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、かつ、予測モードがインター予測（Inter）の場合、選択可能な変換ペア数NumTrPairは、「N2」（N1 >= N2）に設定される。
【０５３１】
例えば、TH1=2, N1=9, N2=5としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、イントラ予測の場合「０」乃至「７」となり、インター予測の場合「０」および「１」となる。つまり、インター予測の場合、直交変換（逆直交変換）のタイプの候補の数を、イントラ予測の場合よりも少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０５３２】
＜変換ペア数設定処理の流れ＞
この場合の、図１７のステップＳ２３１において実行される変換ペア数設定処理の流れ例を、図４１のフローチャートを参照して説明する。
【０５３３】
変換ペア数設定処理が開始されると、変換ペア数設定部２４１は、ステップＳ６２１において、変換フラグemt_flagの値を「１」にするか否かを判定する。変換フラグemt_flagの値を「０」とすると判定された場合、処理はステップＳ６２２に進む。
【０５３４】
ステップＳ６２２において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「１」に設定する（NumTrPair=1）。ステップＳ６２２の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５３５】
また、ステップＳ６２１において、変換フラグemt_flagの値を「１」とすると判定された場合、処理はステップＳ６２３に進む。
【０５３６】
ステップＳ６２３において、変換ペア数設定部２４１は、処理対象ブロックの非ゼロ係数をカウントし、非ゼロ係数の数numSIGを導出する。
【０５３７】
ステップＳ６２４において、変換ペア数設定部２４１は、その非ゼロ係数の数numSIGが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH1以下である（numSIG <= TH1）と判定された場合、処理はステップＳ６２５に進む。
【０５３８】
ステップＳ６２５において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「２」に設定する（NumTrPair=2）。ステップＳ６２５の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５３９】
また、ステップＳ６２４において、非ゼロ係数の数numSIGが所定の閾値TH1より大きい（numSIG > TH1）と判定された場合、処理はステップＳ６２６に進む。
【０５４０】
ステップＳ６２６において、変換ペア数設定部２４１は、処理対象の予測モードがイントラ予測（Intra）であるか否かを判定する。処理対象の予測モードがイントラ予測（Intra）であると判定された場合、処理は、ステップＳ６２７に進む。
【０５４１】
ステップＳ６２７において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N1」に設定する（NumTrPair=N1）。ステップＳ６２７の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５４２】
また、ステップＳ６２６において、処理対象の予測モードがインター予測（Inter）であると判定された場合、処理は、ステップＳ６２８に進む。
【０５４３】
ステップＳ６２８において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N2」（N1 >= N2）に設定する（NumTrPair=N2）。ステップＳ６２８の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５４４】
以上のように処理を行うことにより、処理対象の予測モードがイントラ予測であるかインター予測であるかに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０５４５】
なお、復号の場合（逆直交変換の制御の場合）も、同様に変換ペア数設定処理を行えばよい。つまり、図３１のステップＳ４２３においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部２４１の代わりに変換ペア数設定部４３１が処理を実行するようにすることにより、上述の説明を適用することができる。
【０５４６】
＜変形例＞
なお、図４０のＢの表６１２に示されるように、処理対象の予測モードがイントラ予測であるかインター予測であるかを、非ゼロ係数の数よりも先に選択するようにしてもよい。つまり、これらの判定の順序は任意である。
【０５４７】
＜４−２．方法＃２−２＞
また、図８の表１５１の方法＃２−２の場合、直交変換（逆直交変換）の処理対象の予測モードがインター予測（例えばインターCU）の場合に、その予測方向が順予測であるか、双予測であるかに応じて、直交変換（逆直交変換）のタイプの候補の数が制御される。
【０５４８】
例えば、図４２の表６２１のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「１」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1以下の場合（numSIG <= TH1）、選択可能な変換ペア数NumTrPairは、「２」に設定される。
【０５４９】
また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、かつ、予測モードがイントラ予測（Intra）の場合、選択可能な変換ペア数NumTrPairは、「N1」に設定される。また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、予測モードがインター予測（Inter）であり、かつ、順予測の場合、選択可能な変換ペア数NumTrPairは、「N2」（N1 >= N2）に設定される。さらに、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、予測モードがインター予測（Inter）であり、かつ、双予測の場合、選択可能な変換ペア数NumTrPairは、「N3」（N2 >= N3）に設定される。
【０５５０】
例えば、TH1=2, N1=16, N2=9, N3=3としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、イントラ予測の場合「０」乃至「１４」となり、インター予測の順予測の場合「０」乃至「７」となり、インター予測の双予測の場合「０」および「１」となる。つまり、双予測の場合、直交変換（逆直交変換）のタイプの候補の数を、順予測の場合よりも少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０５５１】
＜変換ペア数設定処理の流れ＞
この場合の、図１７のステップＳ２３１において実行される変換ペア数設定処理の流れ例を、図４３のフローチャートを参照して説明する。
【０５５２】
変換ペア数設定処理が開始されると、変換ペア数設定部２４１は、ステップＳ６４１において、変換フラグemt_flagの値を「１」にするか否かを判定する。変換フラグemt_flagの値を「０」とすると判定された場合、処理はステップＳ６４２に進む。
【０５５３】
ステップＳ６４２において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「１」に設定する（NumTrPair=1）。ステップＳ６４２の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５５４】
また、ステップＳ６４１において、変換フラグemt_flagの値を「１」とすると判定された場合、処理はステップＳ６４３に進む。
【０５５５】
ステップＳ６４３において、変換ペア数設定部２４１は、処理対象ブロックの非ゼロ係数をカウントし、非ゼロ係数の数numSIGを導出する。
【０５５６】
ステップＳ６４４において、変換ペア数設定部２４１は、その非ゼロ係数の数numSIGが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH1以下である（numSIG <= TH1）と判定された場合、処理はステップＳ６４５に進む。
【０５５７】
ステップＳ６４５において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「２」に設定する（NumTrPair=2）。ステップＳ６４５の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５５８】
また、ステップＳ６４４において、非ゼロ係数の数numSIGが所定の閾値TH1より大きい（numSIG > TH1）と判定された場合、処理はステップＳ６４６に進む。
【０５５９】
ステップＳ６４６において、変換ペア数設定部２４１は、処理対象の予測モードがイントラ予測であるか否かを判定する。処理対象の予測モードがイントラ予測（Intra）であると判定された場合、処理は、ステップＳ６４７に進む。
【０５６０】
ステップＳ６４７において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N1」に設定する（NumTrPair=N1）。ステップＳ６４７の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５６１】
また、ステップＳ６４６において、処理対象の予測モードがインター予測（Inter）であると判定された場合、処理は、ステップＳ６４８に進む。
【０５６２】
ステップＳ６４８において、変換ペア数設定部２４１は、予測方向が双予測であるか否かを判定する。順予測であると判定された場合、処理は、ステップＳ６４９に進む。
【０５６３】
ステップＳ６４９において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N2」（N1 >= N2）に設定する（NumTrPair=N2）。ステップＳ６４９の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５６４】
また、ステップＳ６４８において、双予測であると判定された場合、処理は、ステップＳ６５０に進む。
【０５６５】
ステップＳ６５０において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N3」（N2 >= N3）に設定する（NumTrPair=N3）。ステップＳ６５０の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５６６】
以上のように処理を行うことにより、双予測であるか順予測であるかに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０５６７】
なお、復号の場合（逆直交変換の制御の場合）も、同様に変換ペア数設定処理を行えばよい。つまり、図３１のステップＳ４２３においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部２４１の代わりに変換ペア数設定部４３１が処理を実行するようにすることにより、上述の説明を適用することができる。
【０５６８】
＜４−３．方法＃２−３＞
また、図８の表１５１の方法＃２−３の場合も、方法＃２−１と同様の制御が行われる。つまり、直交変換（逆直交変換）の処理対象ブロックの予測モードが所定のモードであるかに応じて、直交変換（逆直交変換）のタイプの候補の数が制御される。例えば、直交変換（逆直交変換）の処理対象ブロックの予測モードが所定のモードの場合、直交変換（逆直交変換）のタイプの候補の数が、他のモードの場合よりも少なく設定される。
【０５６９】
より具体的には、直交変換（逆直交変換）の処理対象ブロックの予測モードが、再構成した輝度信号から色差信号を線形予測するLMChromaである場合、直交変換（逆直交変換）のタイプの候補の数が、他のモードの場合よりも少なく設定される。
【０５７０】
この場合の制御の様子や、変換ペア数設定処理の流れは、方法＃２−１の場合と同様であるので、その説明は省略する。
【０５７１】
＜５．第３の実施の形態＞
＜方法＃３＞
次に、図８の表１５１の方法＃３について説明する。方法＃３の場合、符号化パラメータは、例えば、直交変換（逆直交変換）の処理対象とするブロックのサイズに関するシンタックス要素の値を含み、直交変換（逆直交変換）の処理対象ブロックのサイズに応じて、直交変換（逆直交変換）のタイプの候補の数が制御される。
【０５７２】
例えば、図４４の表６３１のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「１」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1以下の場合（numSIG <= TH1）、選択可能な変換ペア数NumTrPairは、「２」に設定される。
【０５７３】
また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、かつ、ブロックサイズ（size）が所定の閾値TH2以下の場合（size <= TH2）、選択可能な変換ペア数NumTrPairは、「N3」に設定される。また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、かつ、ブロックサイズ（size）が所定の閾値TH2よりも大きく所定の閾値TH3以下である場合（TH2 < size <= TH3）、選択可能な変換ペア数NumTrPairは、「N2」（N2 >= N3）に設定される。さらに、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、かつ、ブロックサイズ（size）が所定の閾値TH3よりも大きい場合（size > TH3）、選択可能な変換ペア数NumTrPairは、「N1」（N1 >= N2）に設定される。
【０５７４】
例えば、TH1=2, TH2=32, TH3=256, N1=16, N2=9 ,N3=3としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、ブロックサイズが小（<= TH2）の場合「０」および「１」となり、ブロックサイズが中（>TH2 && <= TH3）の場合「０」乃至「７」となり、ブロックサイズが大（> TH3）の場合、「０」乃至「１４」となる。つまり、ブロックサイズが小さい程、直交変換（逆直交変換）のタイプの候補の数を少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０５７５】
＜変換ペア数設定処理の流れ＞
この場合の、図１７のステップＳ２３１において実行される変換ペア数設定処理の流れ例を、図４５のフローチャートを参照して説明する。
【０５７６】
変換ペア数設定処理が開始されると、変換ペア数設定部２４１は、ステップＳ６６１において、変換フラグemt_flagの値を「１」にするか否かを判定する。変換フラグemt_flagの値を「０」とすると判定された場合、処理はステップＳ６６２に進む。
【０５７７】
ステップＳ６６２において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「１」に設定する（NumTrPair=1）。ステップＳ６６２の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５７８】
また、ステップＳ６６１において、変換フラグemt_flagの値を「１」とすると判定された場合、処理はステップＳ６６３に進む。
【０５７９】
ステップＳ６６３において、変換ペア数設定部２４１は、処理対象ブロックの非ゼロ係数をカウントし、非ゼロ係数の数numSIGを導出する。
【０５８０】
ステップＳ６６４において、変換ペア数設定部２４１は、その非ゼロ係数の数numSIGが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH1以下である（numSIG <= TH1）と判定された場合、処理はステップＳ６６５に進む。
【０５８１】
ステップＳ６６５において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「２」に設定する（NumTrPair=2）。ステップＳ６６５の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５８２】
また、ステップＳ６６４において、非ゼロ係数の数numSIGが所定の閾値TH1より大きい（numSIG > TH1）と判定された場合、処理はステップＳ６６６に進む。
【０５８３】
ステップＳ６６６において、変換ペア数設定部２４１は、処理対象ブロックのサイズ（W*H）が所定の閾値TH2よりも大きいか否かを判定する。処理対象ブロックのサイズ（W*H）が所定の閾値TH2以下（W*H <= TH2）であると判定された場合、処理はステップＳ６６７に進む。
【０５８４】
ステップＳ６６７において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N3」に設定する（NumTrPair=N3）。ステップＳ６６７の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５８５】
また、ステップＳ６６６において、処理対象ブロックのサイズが所定の閾値TH2よりも大きい（W*H > TH2）と判定された場合、処理はステップＳ６６８に進む。
【０５８６】
ステップＳ６６８において、変換ペア数設定部２４１は、処理対象ブロックのサイズ（W*H）が所定の閾値TH3（TH3 > TH2）よりも大きいか否かを判定する。処理対象ブロックのサイズ（W*H）が所定の閾値TH3以下（TH2 < W*H <= TH3）であると判定された場合、処理はステップＳ６６９に進む。
【０５８７】
ステップＳ６６９において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N2」（N2 >= N3）に設定する（NumTrPair=N2）。ステップＳ６６９の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５８８】
また、ステップＳ６６８において、処理対象ブロックのサイズが所定の閾値TH3よりも大きい（W*H > TH3）と判定された場合、処理はステップＳ６７０に進む。
【０５８９】
ステップＳ６７０において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N1」（N1 >= N2）に設定する（NumTrPair=N1）。ステップＳ６７０の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０５９０】
以上のように処理を行うことにより、処理対象ブロックのサイズに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０５９１】
なお、復号の場合（逆直交変換の制御の場合）も、同様に変換ペア数設定処理を行えばよい。つまり、図３１のステップＳ４２３においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部２４１の代わりに変換ペア数設定部４３１が処理を実行するようにすることにより、上述の説明を適用することができる。
【０５９２】
＜６．第４の実施の形態＞
＜方法＃４＞
次に、図８の表１５１の方法＃４について説明する。方法＃４の場合、符号化パラメータが、例えば、量子化パラメータに関するシンタックス要素の値を含む。
【０５９３】
＜６−１．方法＃４−１＞
そして、図８の表１５１の方法＃４−１の場合、直交変換（逆直交変換）の処理対象ブロックの量子化パラメータQPの値に応じて、直交変換（逆直交変換）のタイプの候補の数が制御される。
【０５９４】
例えば、図４６の表６４１のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「１」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1以下の場合（numSIG <= TH1）、選択可能な変換ペア数NumTrPairは、「２」に設定される。
【０５９５】
また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、かつ、量子化パラメータQPが所定の閾値TH2以下の場合（QP <= TH2）、選択可能な変換ペア数NumTrPairは、「N1」に設定される。また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、かつ、量子化パラメータQPが所定の閾値TH2よりも大きく所定の閾値TH3以下である場合（TH2 < QP <= TH3）、選択可能な変換ペア数NumTrPairは、「N2」（N1 >= N2）に設定される。さらに、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、かつ、量子化パラメータQPが所定の閾値TH3よりも大きい場合（TH3 < QP）、選択可能な変換ペア数NumTrPairは、「N3」（N2 >= N3）に設定される。
【０５９６】
例えば、TH1=2, TH2=22, TH3=37, N1=9, N2=5 ,N3=3としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、量子化パラメータQPが小（QP <= TH2）の場合「０」乃至「７」となり、量子化パラメータQPが中（TH2 < QP <= TH3）の場合「０」乃至「３」となり、量子化パラメータQPが大（QP > TH3）の場合、「０」および「１」となる。つまり、量子化パラメータQPが大きい程、直交変換（逆直交変換）のタイプの候補の数を少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０５９７】
＜変換ペア数設定処理の流れ＞
この場合の、図１７のステップＳ２３１において実行される変換ペア数設定処理の流れ例を、図４７のフローチャートを参照して説明する。
【０５９８】
変換ペア数設定処理が開始されると、変換ペア数設定部２４１は、ステップＳ６８１において、変換フラグemt_flagの値を「１」にするか否かを判定する。変換フラグemt_flagの値を「０」とすると判定された場合、処理はステップＳ６８２に進む。
【０５９９】
ステップＳ６８２において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「１」に設定する（NumTrPair=1）。ステップＳ６８２の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６００】
また、ステップＳ６８１において、変換フラグemt_flagの値を「１」とすると判定された場合、処理はステップＳ６８３に進む。
【０６０１】
ステップＳ６８３において、変換ペア数設定部２４１は、処理対象ブロックの非ゼロ係数をカウントし、非ゼロ係数の数numSIGを導出する。
【０６０２】
ステップＳ６８４において、変換ペア数設定部２４１は、その非ゼロ係数の数numSIGが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH1以下である（numSIG <= TH1）と判定された場合、処理はステップＳ６８５に進む。
【０６０３】
ステップＳ６８５において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「２」に設定する（NumTrPair=2）。ステップＳ６８５の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６０４】
また、ステップＳ６８４において、非ゼロ係数の数numSIGが所定の閾値TH1より大きい（numSIG > TH1）と判定された場合、処理はステップＳ６８６に進む。
【０６０５】
ステップＳ６８６において、変換ペア数設定部２４１は、量子化パラメータQPが所定の閾値TH2よりも大きいか否かを判定する。量子化パラメータQPが所定の閾値TH2以下（QP <= TH2）であると判定された場合、処理はステップＳ６８７に進む。
【０６０６】
ステップＳ６８７において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N1」に設定する（NumTrPair=N1）。ステップＳ６８７の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６０７】
また、ステップＳ６８６において、量子化パラメータQPが所定の閾値TH2よりも大きい（QP > TH2）と判定された場合、処理はステップＳ６８８に進む。
【０６０８】
ステップＳ６８８において、変換ペア数設定部２４１は、量子化パラメータQPが所定の閾値TH3（TH3 > TH2）よりも大きいか否かを判定する。量子化パラメータQPが所定の閾値TH3以下（TH2 < QP <= TH3）であると判定された場合、処理はステップＳ６８９に進む。
【０６０９】
ステップＳ６８９において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N2」に設定する（NumTrPair=N2）。ステップＳ６８９の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６１０】
また、ステップＳ６８８において、量子化パラメータQPが所定の閾値TH3よりも大きい（QP > TH3）と判定された場合、処理はステップＳ６９０に進む。
【０６１１】
ステップＳ６９０において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N3」（N2 >= N3）に設定する（NumTrPair=N3）。ステップＳ６９０の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６１２】
以上のように処理を行うことにより、量子化パラメータQPの値の大きさに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０６１３】
なお、復号の場合（逆直交変換の制御の場合）も、同様に変換ペア数設定処理を行えばよい。つまり、図３１のステップＳ４２３においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部２４１の代わりに変換ペア数設定部４３１が処理を実行するようにすることにより、上述の説明を適用することができる。
【０６１４】
＜６−２．方法＃４−２＞
また、図８の表１５１の方法＃４−２の場合、量子化パラメータQPの代わりに、直交変換（逆直交変換）の処理対象ブロックの時間方向の階層符号化における階層を示すテンポラルID（temporalID）の値に応じて、直交変換（逆直交変換）のタイプの候補の数が制御される。
【０６１５】
例えば、図４８の表６５１のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「１」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1以下の場合（numSIG <= TH1）、選択可能な変換ペア数NumTrPairは、「２」に設定される。
【０６１６】
また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、かつ、テンポラルID（temporalID）が所定の閾値TH2以下の場合（temporalID <= TH2）、選択可能な変換ペア数NumTrPairは、「N1」に設定される。また、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、かつ、テンポラルID（temporalID）が所定の閾値TH2よりも大きく所定の閾値TH3以下である場合（TH2 < temporalID <= TH3）、選択可能な変換ペア数NumTrPairは、「N2」（N1 >= N2）に設定される。さらに、変換フラグemt_flag==1であり、非ゼロ係数の数numSIGが所定の閾値TH1より大きく（numSIG > TH1）、かつ、テンポラルID（temporalID）が所定の閾値TH3よりも大きい場合（TH3 < temporalID）、選択可能な変換ペア数NumTrPairは、「N3」（N2 >= N3）に設定される。
【０６１７】
例えば、TH1=2, TH2=1, TH3=2, N1=9, N2=5 ,N3=3としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、テンポラルID（temporalID）が小（temporalID <= TH2）の場合「０」乃至「７」となり、テンポラルID（temporalID）が中（TH2 < temporalID <= TH3）の場合「０」乃至「３」となり、テンポラルID（temporalID）が大（temporalID > TH3）の場合、「０」および「１」となる。つまり、テンポラルID（temporalID）が大きい程、直交変換（逆直交変換）のタイプの候補の数を少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０６１８】
＜変換ペア数設定処理の流れ＞
この場合の、図１７のステップＳ２３１において実行される変換ペア数設定処理の流れ例を、図４９のフローチャートを参照して説明する。
【０６１９】
変換ペア数設定処理が開始されると、変換ペア数設定部２４１は、ステップＳ７０１において、変換フラグemt_flagの値を「１」にするか否かを判定する。変換フラグemt_flagの値を「０」とすると判定された場合、処理はステップＳ７０２に進む。
【０６２０】
ステップＳ７０２において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「１」に設定する（NumTrPair=1）。ステップＳ６８２の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６２１】
また、ステップＳ７０１において、変換フラグemt_flagの値を「１」とすると判定された場合、処理はステップＳ７０３に進む。
【０６２２】
ステップＳ７０３において、変換ペア数設定部２４１は、処理対象ブロックの非ゼロ係数をカウントし、非ゼロ係数の数numSIGを導出する。
【０６２３】
ステップＳ７０４において、変換ペア数設定部２４１は、その非ゼロ係数の数numSIGが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH1以下である（numSIG <= TH1）と判定された場合、処理はステップＳ７０５に進む。
【０６２４】
ステップＳ７０５において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「２」に設定する（NumTrPair=2）。ステップＳ７０５の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６２５】
また、ステップＳ７０４において、非ゼロ係数の数numSIGが所定の閾値TH1より大きい（numSIG > TH1）と判定された場合、処理はステップＳ７０６に進む。
【０６２６】
ステップＳ７０６において、変換ペア数設定部２４１はテンポラルID（temporalID）が所定の閾値TH2よりも大きいか否かを判定する。テンポラルID（temporalID）が所定の閾値TH2以下（temporalID <= TH2）であると判定された場合、処理はステップＳ７０７に進む。
【０６２７】
ステップＳ７０７において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N1」に設定する（NumTrPair=N1）。ステップＳ７０７の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６２８】
また、ステップＳ７０６において、テンポラルID（temporalID）が所定の閾値TH2よりも大きい（temporalID > TH2）と判定された場合、処理はステップＳ７０８に進む。
【０６２９】
ステップＳ７０８において、変換ペア数設定部２４１は、テンポラルID（temporalID）が所定の閾値TH3（TH3 > TH2）よりも大きいか否かを判定する。テンポラルID（temporalID）が所定の閾値TH3以下（TH2 < temporalID <= TH3）であると判定された場合、処理はステップＳ７０９に進む。
【０６３０】
ステップＳ７０９において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N2」に設定する（NumTrPair=N2）。ステップＳ７０９の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６３１】
また、ステップＳ７０８において、テンポラルID（temporalID）が所定の閾値TH3よりも大きい（temporalID > TH3）と判定された場合、処理はステップＳ７１０に進む。
【０６３２】
ステップＳ７１０において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを所定の値「N3」（N2 >= N3）に設定する（NumTrPair=N3）。ステップＳ７１０の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６３３】
以上のように処理を行うことにより、テンポラルID（temporalID）の値の大きさに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０６３４】
なお、復号の場合（逆直交変換の制御の場合）も、同様に変換ペア数設定処理を行えばよい。つまり、図３１のステップＳ４２３においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部２４１の代わりに変換ペア数設定部４３１が処理を実行するようにすることにより、上述の説明を適用することができる。
【０６３５】
＜７．第５の実施の形態＞
＜方法＃５＞
次に、図８の表１５１の方法＃５について説明する。方法＃５の場合、符号化パラメータは、シンタックス要素の値から導出される変数を含む。例えば、符号化パラメータは、変換係数から導出される変数を含む。
【０６３６】
＜７−１．方法＃５−１＞
そして、図８の表１５１の方法＃５−１の場合、直交変換（逆直交変換）の処理対象とするブロックにおける非ゼロ係数の数に応じて、直交変換（逆直交変換）のタイプの候補の数が制御される。
【０６３７】
例えば、図５０の表６６１のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「１」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1以下の場合（numSIG <= TH1）、選択可能な変換ペア数NumTrPairは、「２」に設定される。
【０６３８】
また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH1より大きく所定の閾値TH2（TH1 < TH2）以下である場合（TH1 < numSIG <= TH2）、選択可能な変換ペア数NumTrPairは、「N2」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の数numSIGが所定の閾値TH2より大きい場合（numSIG > TH2）、選択可能な変換ペア数NumTrPairは、「N1」（N1 > N2）に設定される。
【０６３９】
例えば、TH1=2, TH2=8, N1=9, N2=5としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、非ゼロ係数の数numSIGが中（TH1 < numSIG <= TH2）の場合「０」乃至「３」となり、非ゼロ係数の数numSIGが大（numSIG > TH2）の場合、「０」乃至「７」となる。つまり、非ゼロ係数の数numSIGが少ない程、直交変換（逆直交変換）のタイプの候補の数を少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０６４０】
＜変換ペア数設定処理の流れ＞
この場合の、図１７のステップＳ２３１において実行される変換ペア数設定処理の流れ例を、図５１のフローチャートを参照して説明する。
【０６４１】
変換ペア数設定処理が開始されると、変換ペア数設定部２４１は、ステップＳ７２１において、変換フラグemt_flagの値を「１」にするか否かを判定する。変換フラグemt_flagの値を「０」とすると判定された場合、処理はステップＳ７２２に進む。
【０６４２】
ステップＳ７２２において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「１」に設定する（NumTrPair=1）。ステップＳ７２２の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６４３】
また、ステップＳ７２１において、変換フラグemt_flagの値を「１」とすると判定された場合、処理はステップＳ７２３に進む。
【０６４４】
ステップＳ７２３において、変換ペア数設定部２４１は、処理対象ブロックの非ゼロ係数をカウントし、非ゼロ係数の数numSIGを導出する。
【０６４５】
ステップＳ７２４において、変換ペア数設定部２４１は、その非ゼロ係数の数numSIGが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH1以下である（numSIG <= TH1）と判定された場合、処理はステップＳ７２５に進む。
【０６４６】
ステップＳ７２５において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「２」に設定する（NumTrPair=2）。ステップＳ７２５の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６４７】
また、ステップＳ７２４において、非ゼロ係数の数numSIGが所定の閾値TH1より大きい（numSIG > TH1）と判定された場合、処理はステップＳ７２６に進む。
【０６４８】
ステップＳ７２６において、変換ペア数設定部２４１は、非ゼロ係数の数numSIGが所定の閾値TH2（TH2 > TH1）より大きいか否かを判定する。非ゼロ係数の数numSIGが所定の閾値TH2以下である（TH1 < numSIG <= TH2）と判定された場合、処理はステップＳ７２７に進む。
【０６４９】
ステップＳ７２７において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「N2」に設定する（NumTrPair=N2）。ステップＳ７２７の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６５０】
また、ステップＳ７２６において、非ゼロ係数の数numSIGが所定の閾値TH2より大きい（numSIG > TH2）と判定された場合、処理はステップＳ７２８に進む。
【０６５１】
ステップＳ７２８において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「N1」（N1 > N2）に設定する（NumTrPair=N1）。ステップＳ７２８の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６５２】
以上のように処理を行うことにより、非ゼロ係数の数numSIGに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０６５３】
なお、復号の場合（逆直交変換の制御の場合）も、同様に変換ペア数設定処理を行えばよい。つまり、図３１のステップＳ４２３においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部２４１の代わりに変換ペア数設定部４３１が処理を実行するようにすることにより、上述の説明を適用することができる。
【０６５４】
＜７−２．方法＃５−２＞
また、図８の表１５１の方法＃５−２の場合、直交変換（逆直交変換）の処理対象とするブロックにおけるスキャン順に最後の非ゼロ係数であるラスト係数の位置lastPosに応じて、直交変換（逆直交変換）のタイプの候補の数が制御される。なお、このラスト係数の位置lastPosは、スキャンの開始位置からラスト係数の位置までの距離（スキャン順に沿った距離）である（lastPos = XYtoScanOrder[Y][X]）。
【０６５５】
例えば、図５２の表６７１のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「１」に設定される。また、変換フラグemt_flag==1であり、かつ、ラスト係数の位置lastPosが所定の閾値TH1以下の場合（lastPos <= TH1）、選択可能な変換ペア数NumTrPairは、「２」に設定される。
【０６５６】
また、変換フラグemt_flag==1であり、かつ、ラスト係数の位置lastPosが所定の閾値TH1より大きく所定の閾値TH2（TH1 < TH2）以下である場合（TH1 < lastPos <= TH2）、選択可能な変換ペア数NumTrPairは、「N2」に設定される。さらに、変換フラグemt_flag==1であり、かつ、ラスト係数の位置lastPosが所定の閾値TH2より大きい場合（lastPos > TH2）、選択可能な変換ペア数NumTrPairは、「N1」（N1 > N2）に設定される。
【０６５７】
例えば、TH1=2, TH2=8, N1=9, N2=5としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、ラスト係数の位置lastPosが中（TH1 < lastPos <= TH2）の場合「０」乃至「３」となり、ラスト係数の位置lastPosが大（lastPos > TH2）の場合、「０」乃至「７」となる。つまり、ラスト係数の位置lastPosが近い程、直交変換（逆直交変換）のタイプの候補の数を少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０６５８】
＜変換ペア数設定処理の流れ＞
この場合の、図１７のステップＳ２３１において実行される変換ペア数設定処理の流れ例を、図５３のフローチャートを参照して説明する。
【０６５９】
変換ペア数設定処理が開始されると、変換ペア数設定部２４１は、ステップＳ７４１において、変換フラグemt_flagの値を「１」にするか否かを判定する。変換フラグemt_flagの値を「０」とすると判定された場合、処理はステップＳ７４２に進む。
【０６６０】
ステップＳ７４２において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「１」に設定する（NumTrPair=1）。ステップＳ７４２の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６６１】
また、ステップＳ７４１において、変換フラグemt_flagの値を「１」とすると判定された場合、処理はステップＳ７４３に進む。
【０６６２】
ステップＳ７４３において、変換ペア数設定部２４１は、処理対象ブロックのラスト係数のXY座標を導出し、その位置lastPosを導出する。
【０６６３】
ステップＳ７４４において、変換ペア数設定部２４１は、そのラスト係数の位置lastPosが所定の閾値TH1より大きいか否かを判定する。ラスト係数の位置lastPosが所定の閾値TH1以下である（lastPos <= TH1）と判定された場合、処理はステップＳ７４５に進む。
【０６６４】
ステップＳ７４５において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「２」に設定する（NumTrPair=2）。ステップＳ７４５の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６６５】
また、ステップＳ７４４において、ラスト係数の位置lastPosが所定の閾値TH1より大きい（lastPos > TH1）と判定された場合、処理はステップＳ７４６に進む。
【０６６６】
ステップＳ７４６において、変換ペア数設定部２４１は、ラスト係数の位置lastPosが所定の閾値TH2（TH2 > TH1）より大きいか否かを判定する。ラスト係数の位置lastPosが所定の閾値TH2以下である（TH1 < lastPos <= TH2）と判定された場合、処理はステップＳ７４７に進む。
【０６６７】
ステップＳ７４７において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「N2」に設定する（NumTrPair=N2）。ステップＳ７４７の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６６８】
また、ステップＳ７４６において、ラスト係数の位置lastPosが所定の閾値TH2より大きい（lastPos > TH2）と判定された場合、処理はステップＳ７４８に進む。
【０６６９】
ステップＳ７４８において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「N1」（N1 > N2）に設定する（NumTrPair=N1）。ステップＳ７４８の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６７０】
以上のように処理を行うことにより、ラスト係数の位置lastPosに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０６７１】
なお、復号の場合（逆直交変換の制御の場合）も、同様に変換ペア数設定処理を行えばよい。つまり、図３１のステップＳ４２３においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部２４１の代わりに変換ペア数設定部４３１が処理を実行するようにすることにより、上述の説明を適用することができる。
【０６７２】
＜変形例＞
ラスト係数の位置lastPosは、上述した例に限定されない。例えば、ラスト係数のX座標とY座標との和をラスト係数の位置としてもよい（マンハッタン距離：lastPos = x + y）。
【０６７３】
また、閾値TH1および閾値TH2は、それぞれ、変換ブロックのサイズに応じた値としてもよい。例えば、以下の式（３６）のようにしてもよい。
【０６７４】
【数３２】
2019188466.tif 000034
【０６７５】
＜７−３．方法＃５−３＞
また、図８の表１５１の方法＃５−３の場合、直交変換（逆直交変換）の処理対象とするブロックにおける非ゼロ係数の絶対値の総和sumAbsLevelに応じて、直交変換（逆直交変換）のタイプの候補の数が制御される。なお、この非ゼロ係数の絶対値の総和sumAbsLevelは、例えば、以下の式（３７）により導出される変数である。
【０６７６】
【数３３】
2019188466.tif 000035
【０６７７】
なお、式（３７）において、qcoef[pos]は、スキャン順でpos番目の量子化された係数の振幅を示す。また、posは、係数のスキャン順位置を示す。
【０６７８】
例えば、図５４の表６８１のように制御されるようにしてもよい。例えば、変換フラグemt_flag==0の場合、選択可能な変換ペア数NumTrPairは、「１」に設定される。また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH1以下の場合（sumAbsLevel <= TH1）、選択可能な変換ペア数NumTrPairは、「２」に設定される。
【０６７９】
また、変換フラグemt_flag==1であり、かつ、非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH1より大きく所定の閾値TH2（TH1 < TH2）以下である場合（TH1 < sumAbsLevel <= TH2）、選択可能な変換ペア数NumTrPairは、「N2」に設定される。さらに、変換フラグemt_flag==1であり、かつ、非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH2より大きい場合（sumAbsLevel > TH2）、選択可能な変換ペア数NumTrPairは、「N1」（N1 > N2）に設定される。
【０６８０】
例えば、TH1=2, TH2=8, N1=9, N2=5としてもよい。このようにすることにより、変換インデックスemt_idxの取り得る値の範囲は、非ゼロ係数の絶対値の総和sumAbsLevelが中（TH1 < sumAbsLevel <= TH2）の場合「０」乃至「３」となり、非ゼロ係数の絶対値の総和sumAbsLevelが大（sumAbsLevel > TH2）の場合、「０」乃至「７」となる。つまり、非ゼロ係数の絶対値の総和sumAbsLevelが小さい程、直交変換（逆直交変換）のタイプの候補の数を少なく設定することができる。したがって、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０６８１】
＜変換ペア数設定処理の流れ＞
この場合の、図１７のステップＳ２３１において実行される変換ペア数設定処理の流れ例を、図５５のフローチャートを参照して説明する。
【０６８２】
変換ペア数設定処理が開始されると、変換ペア数設定部２４１は、ステップＳ７６１において、変換フラグemt_flagの値を「１」にするか否かを判定する。変換フラグemt_flagの値を「０」とすると判定された場合、処理はステップＳ７６２に進む。
【０６８３】
ステップＳ７６２において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「１」に設定する（NumTrPair=1）。ステップＳ７６２の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６８４】
また、ステップＳ７６１において、変換フラグemt_flagの値を「１」とすると判定された場合、処理はステップＳ７６３に進む。
【０６８５】
ステップＳ７６３において、変換ペア数設定部２４１は、非ゼロ係数の絶対値の総和sumAbsLevelを導出する。
【０６８６】
ステップＳ７６４において、変換ペア数設定部２４１は、その非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH1より大きいか否かを判定する。非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH1以下である（sumAbsLevel <= TH1）と判定された場合、処理はステップＳ７６５に進む。
【０６８７】
ステップＳ７６５において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「２」に設定する（NumTrPair=2）。ステップＳ７６５の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６８８】
また、ステップＳ７６４において、非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH1より大きい（sumAbsLevel > TH1）と判定された場合、処理はステップＳ７６６に進む。
【０６８９】
ステップＳ７６６において、変換ペア数設定部２４１は、非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH2（TH2 > TH1）より大きいか否かを判定する。非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH2以下である（TH1 < sumAbsLevel <= TH2）と判定された場合、処理はステップＳ７６７に進む。
【０６９０】
ステップＳ７６７において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「N2」に設定する（NumTrPair=N2）。ステップＳ７６７の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６９１】
また、ステップＳ７６６において、非ゼロ係数の絶対値の総和sumAbsLevelが所定の閾値TH2より大きい（sumAbsLevel > TH2）と判定された場合、処理はステップＳ７６８に進む。
【０６９２】
ステップＳ７６８において、変換ペア数設定部２４１は、変換ペアの候補の数NumTrPairを「N1」（N1 >= N2）に設定する（NumTrPair=N1）。ステップＳ７６８の処理が終了すると変換ペア数設定処理が終了し、処理は図１７に戻る。
【０６９３】
以上のように処理を行うことにより、非ゼロ係数の絶対値の総和sumAbsLevelに応じて、変換ペアの候補の数を制御することができ、より効率よく符号量を低減させることができ、符号化効率の低減を抑制する（符号化効率を改善する）ことができる。
【０６９４】
なお、復号の場合（逆直交変換の制御の場合）も、同様に変換ペア数設定処理を行えばよい。つまり、図３１のステップＳ４２３においても同様に変換ペア数設定処理を行えばよい。その場合、変換ペア数設定部２４１の代わりに変換ペア数設定部４３１が処理を実行するようにすることにより、上述の説明を適用することができる。
【０６９５】
＜変形例＞
ラスト係数の位置lastPosは、上述した例に限定されない。例えば、ラスト係数のX座標とY座標との和をラスト係数の位置としてもよい（マンハッタン距離：lastPos = x + y）。
【０６９６】
また、閾値TH1および閾値TH2は、それぞれ、変換ブロックのサイズ、量子化パラメータQP、若しくはビット深度bitDepth、またはそれらの組み合わせに応じた値としてもよい。例えば、以下の式（３８）のようにしてもよい。
【０６９７】
【数３４】
2019188466.tif 000036
【０６９８】
式（３８）において、f()は、閾値THNを決定する任意の関数である。
【０６９９】
＜８．応用例＞
以上の各実施の形態において、各条件に対応する変換ペア数の組み合わせの例を説明したが、この組み合わせは任意であり、上述の例に限定されない。選択できる変換ペアの最大数以下において、重複しない任意の変換ペア数を選択することができる。
【０７００】
例えば、図５６に示される表７０１のように、選択可能な変換ペア数NumTrPairが１６であるとすると、変換ペアの候補は、枠線７１１に囲まれる範囲、枠線７１２に囲まれる範囲、枠線７１３に囲まれる範囲、枠線７１４に囲まれる範囲、および枠線７１５に囲まれる範囲の５種類が想定される。この内の任意の数の範囲を、符号化パラメータの各条件に割り当てるようにしてもよい。
【０７０１】
例えば、図３８の表６０１の例の場合、componentIDに対する変換ペア数の選択肢は、２種類（N1およびN2）設定することができる。例えば、表７０１の５種類の範囲を候補とする場合、この５種類の内の任意の２種類を、N1とN2に割り当てることができる。
【０７０２】
また、各実施の形態の、選択可能な変換ペア数の選択肢の数は任意であり、上述の例に限定されない。例えば、図３８の表６０１の例の場合、変換ペア数は、componentIDに対して２種類の選択肢（N1とN2）が用意されているように説明したが、３種類以上の選択肢（N1,N2,N3,・・・）が用意されるようにしてももちろんよい。
【０７０３】
例えば、図５０の表６６１の例の場合、選択可能な変換ペア数NumTrPairの選択肢が４種類（1,2,N1,N2）であるように説明したが、例えば、図５７のＡの表７２１のように、この選択肢の数を５種類（1,2,N1,N2,N3）としてもよい。もちろん、この選択肢の数を３種類以下としてもよいし、６種類以上としてもよい。
【０７０４】
また例えば、図５２の表６７１の例の場合、選択可能な変換ペア数NumTrPairの選択肢が４種類（1,2,N1,N2）であるように説明したが、例えば、図５７のＢの表７２２のように、この選択肢の数を５種類（1,2,N1,N2,N3）としてもよい。もちろん、この選択肢の数を３種類以下としてもよいし、６種類以上としてもよい。
【０７０５】
さらに例えば、図５４の表６８１の例の場合、選択可能な変換ペア数NumTrPairの選択肢が４種類（1,2,N1,N2）であるように説明したが、例えば、図５７のＣの表７２３のように、この選択肢の数を５種類（1,2,N1,N2,N3）としてもよい。もちろん、この選択肢の数を３種類以下としてもよいし、６種類以上としてもよい。
【０７０６】
また、選択可能な変換ペア数NumTrPairの組み合わせは、ピクチャ内、シーケンス内、予測モード、QPで固定であるようにしてもよいし、可変としてもよい。例えば、CTU、スライス、タイル、ピクチャ、またはシーケンス等、任意のデータ単位で、変換ペア数numTrPairの組み合わせ、あるいは、変換ペア数の{最大値、最小値}をシグナリングすることができるようにしてもよい。すなわち、所定サイズ毎に変換ペア数を制御することができるようにしてもよい。
【０７０７】
つまり、符号化側において、制御部が、選択可能な変換ペア数の最大数に関する情報と、選択可能な変換ペア数の最小数に関する情報とを設定し、符号化部が、その最大数に関する情報と最小数に関する情報とを含む符号化データを生成するようにしてもよい。
【０７０８】
また、復号側において、制御部（復号部）が、符号化データに含まれる、選択可能な変換ペア数の最大数に関する情報と、選択可能な変換ペア数の最小数に関する情報とをパースし、そのパースした最大数に関する情報および最小数に関する情報と、符号化パラメータとに応じて、逆直交変換のタイプの候補の数を設定するようにしてもよい。
【０７０９】
このようにすることにより、簡単な残差信号のところでは、変換ペア数の最大値を小さくすることで、AMTの制御情報に関するオーバーヘッドを削減することができる。また、符号化側は、探索する変換ペアの組み合わせ数が減るため、処理が軽くなる。これに対して、複雑な残差信号のところでは、変換ペア数の最大値を大きくすることで、より多くの変換ペアの候補から適切な変換ペアを選択できるようになり、符号化効率が改善する。
【０７１０】
また、直交変換のタイプの適応的な変更を許可するかを示す変換イネーブルフラグを、（例えば所定のデータ単位毎に）シグナリングすることができるようにしてもよい。
【０７１１】
例えば、符号化側において、制御部が、直交変換のタイプの適応的な変更を許可するかを示す変換イネーブルフラグを設定し、符号化部が、その変換イネーブルフラグを含む符号化データを生成するようにしてもよい。
【０７１２】
また、復号側において、制御部が、符号化データに含まれる、逆直交変換のタイプの適応的な変更を許可するかを示す変換イネーブルフラグをパースし、その変換イネーブルフラグにおいて逆直交変換のタイプの適応的な変更が許可されている場合、符号化パラメータに基づいて逆直交変換のタイプを制御するようにしてもよい。
【０７１３】
このようにすることにより、AMTが許可されていない場合にAMTに関する処理を省略することができるので、符号化や復号の負荷の増大を抑制することができる。
【０７１４】
図５８のシンタックス７３１は、この場合のシンタックスの例を示すものである。シンタックス７３１において、emt_enabled_flag（またはamt_enabled_flag）は、逆直交変換のタイプの適応的な変更を許可するかを示す変換イネーブルフラグである。また、emt_max_num_trpair_minusNは、「変換ペア数の最大値 - N」を示すシンタックス要素である。また、emt_min_num_trpair_minusNは、「変換ペア数の最小値 - N」を示すシンタックス要素である。
【０７１５】
この例の場合、emt_enabled_flagが１（真）のとき、emt_max_num_trpair_minusNおよびemt_min_num_trpair_minusNがシグナリングされる。つまり、画像復号装置４００は、emt_enabled_flagが１（真）である場合に、emt_max_num_trpair_minusNおよびemt_min_num_trpair_minusNを復号する。
【０７１６】
変換ペアの最大数は、以下の式（３９）のように導出される。また、変換ペアの最小数は、以下の式（４０）のように導出される。
【０７１７】
【数３５】
2019188466.tif 000037
【０７１８】
ここで、例えば、N=1としてもよい。なお、Nは1に限定されず、2であってもよいし、その他の値であってもよい。このように変換ペア数の最大値、最小値をN減算して符号化することで、符号量の増大を抑制することができる。
【０７１９】
また、なお、変換ペア数の組み合わせは、予め定められたルールに基づいて、変換ペア数の最大値および最小値から導出されるようにしてもよい。
【０７２０】
例えば、変換ペア数の組み合わせを{a, b, c} (a<b<c)の３種類に固定するとする。この場合、cには変換ペアの最大数(maxNumTrPair)を設定し、aには変換ペアの最小数(=minNumTrPair)を設定し、bにはその中間値を設定するようにしてもよい。
【０７２１】
また、例えば、最大数の２を底とする対数値と、最小値の２を底とする対数値の平均値aveLog2NumTrPairを求め、その２のべき乗をbに設定するようにしてもよい。つまり、以下の式（４１）のように、a,b,cを導出するようにしてもよい。
【０７２２】
【数３６】
2019188466.tif 000038
【０７２３】
例えば、a,b,cは、以下のように導出される。
maxNumTrPair = 8, minNumTrPair = 1の場合、{a, b, c} = {1, 4, 8}となる。
maxNumTrPair = 8, minNumTrPair = 2の場合、{a, b, c} = {2, 4, 8}となる。
maxNumTrPair = 16, minNumTrPair = 1の場合、{a, b, c} = {1, 8, 16}となる。
maxNumTrPair = 16, minNumTrPair = 4の場合、{a, b, c} = {4, 8, 16}となる。
【０７２４】
なお、導出方法はこれに限定されない。例えば、Ceil（）関数（少数点以下切り上げ）をfloor（）関数（少数点以下切り捨て）に変えてもよい。また、b = 2**(log2(minNumTrPair) + 1) としてよいし、b = 2**(log2(maxNumTrPair) - 1)としてもよい。
【０７２５】
以上に説明した各実施の形態を組み合わせて適用するようにしてもよい。この組み合わせ方は任意である。例えば、非特許文献１に記載の方法に対して、第１の実施の形態、第２−１の実施の形態、および第５−１の実施の形態のそれぞれにおいて説明した方法を組み合わせて適用するようにしてもよい。
【０７２６】
＜９．付記＞
＜コンピュータ＞
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
【０７２７】
図５９は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０７２８】
図５９に示されるコンピュータ８００において、CPU（Central Processing Unit）８０１、ROM（Read Only Memory）８０２、RAM（Random Access Memory）８０３は、バス８０４を介して相互に接続されている。
【０７２９】
バス８０４にはまた、入出力インタフェース８１０も接続されている。入出力インタフェース８１０には、入力部８１１、出力部８１２、記憶部８１３、通信部８１４、およびドライブ８１５が接続されている。
【０７３０】
入力部８１１は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部８１２は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部８１３は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部８１４は、例えば、ネットワークインタフェースよりなる。ドライブ８１５は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア８２１を駆動する。
【０７３１】
以上のように構成されるコンピュータでは、CPU８０１が、例えば、記憶部８１３に記憶されているプログラムを、入出力インタフェース８１０およびバス８０４を介して、RAM８０３にロードして実行することにより、上述した一連の処理が行われる。RAM８０３にはまた、CPU８０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０７３２】
コンピュータ（CPU８０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア８２１に記録して適用することができる。その場合、プログラムは、リムーバブルメディア８２１をドライブ８１５に装着することにより、入出力インタフェース８１０を介して、記憶部８１３にインストールすることができる。
【０７３３】
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部８１４で受信し、記憶部８１３にインストールすることができる。
【０７３４】
その他、このプログラムは、ROM８０２や記憶部８１３に、あらかじめインストールしておくこともできる。
【０７３５】
＜情報・処理の単位＞
以上において説明した各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU（Transform Unit）、TB(Transform Block)、PU（Prediction Unit）、PB(Prediction Block)、CU（Coding Unit）、LCU（Largest Coding Unit）、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
【０７３６】
＜制御情報＞
以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可（または禁止）するか否かを制御する制御情報（例えばenabled_flag）を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象（または適用しない対象）を示す制御情報を伝送するようにしてもよい。例えば、本技術を適用する（または、適用を許可若しくは禁止する）ブロックサイズ（上限若しくは下限、またはその両方）、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。
【０７３７】
＜本技術の適用対象＞
本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換（逆変換）、量子化（逆量子化）、符号化（復号）、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
【０７３８】
また本技術は、複数の視点（ビュー（view））の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点（ビュー（view））の符号化・復号において、本技術を適用するようにすればよい。
【０７３９】
さらに本技術は、所定のパラメータについてスケーラビリティ（scalability）機能を有するように複数レイヤ化（階層化）された階層画像の符号化・復号を行う階層画像符号化（スケーラブル符号化）・復号システムに適用することができる。その場合、各階層（レイヤ）の符号化・復号において、本技術を適用するようにすればよい。
【０７４０】
上述した実施の形態に係る画像符号化装置１００、画像復号装置１３０、画像符号化装置２００、および画像復号装置４００は、例えば、衛星放送、ケーブルＴＶなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機（例えばテレビジョン受像機や携帯電話機）、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置（例えばハードディスクレコーダやカメラ）などの、様々な電子機器に応用され得る。
【０７４１】
また、本技術は、任意の装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI（Large Scale Integration）等としてのプロセッサ（例えばビデオプロセッサ）、複数のプロセッサ等を用いるモジュール（例えばビデオモジュール）、複数のモジュール等を用いるユニット（例えばビデオユニット）、ユニットにさらにその他の機能を付加したセット（例えばビデオセット）等（すなわち、装置の一部の構成）として実施することもできる。
【０７４２】
さらに、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、コンピュータ、AV（Audio Visual）機器、携帯型情報処理端末、IoT（Internet of Things）デバイス等の任意の端末に対して、画像（動画像）に関するサービスを提供するクラウドサービスに適用することもできる。
【０７４３】
なお、本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
【０７４４】
例えば、本技術は、観賞用コンテンツ等の提供の用に供されるシステムやデバイスに適用することができる。また、例えば、本技術は、交通状況の監理や自動運転制御等、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、機械等の自動制御の用に供されるシステムやデバイスに適用することができる。さらに、例えば、本技術は、農業や畜産業の用に供されるシステムやデバイスにも適用することができる。また、本技術は、例えば火山、森林、海洋等の自然の状態や野生生物等を監視するシステムやデバイスにも適用することができる。さらに、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。
【０７４５】
＜その他＞
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の２状態を識別する際に用いる情報だけでなく、３以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の２値であってもよいし、３値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報（フラグも含む）は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
【０７４６】
また、符号化データ（ビットストリーム）に関する各種情報（メタデータ等）は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る（リンクさせ得る）ようにすることを意味する。つまり、互いに関連付けられたデータは、１つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ（画像）に関連付けられた情報は、その符号化データ（画像）とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ（画像）に関連付けられた情報は、その符号化データ（画像）とは別の記録媒体（または同一の記録媒体の別の記録エリア）に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、１フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
【０７４７】
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを１つのデータにまとめるといった、複数の物を１つにまとめることを意味し、上述の「関連付ける」の１つの方法を意味する。
【０７４８】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０７４９】
また、例えば、本技術は、装置またはシステムを構成するあらゆる構成、例えば、システムLSI（Large Scale Integration）等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等（すなわち、装置の一部の構成）として実施することもできる。
【０７５０】
なお、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【０７５１】
また、例えば、１つの装置（または処理部）として説明した構成を分割し、複数の装置（または処理部）として構成するようにしてもよい。逆に、以上において複数の装置（または処理部）として説明した構成をまとめて１つの装置（または処理部）として構成されるようにしてもよい。また、各装置（または各処理部）の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置（または処理部）の構成の一部を他の装置（または他の処理部）の構成に含めるようにしてもよい。
【０７５２】
また、例えば、本技術は、１つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０７５３】
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能（機能ブロック等）を有し、必要な情報を得ることができるようにすればよい。
【０７５４】
また、例えば、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、１つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を１つのステップとしてまとめて実行することもできる。
【０７５５】
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【０７５６】
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【符号の説明】
【０７５７】
１００  画像符号化装置，  １０１  直交変換制御部，  １０２  直交変換部，  １０３  符号化部，  １１０  符号化部，  １３０  画像復号装置，  １３１  逆直交変換制御部，  １３２  復号部，  １３３  逆直交変換部，  １４０  復号部，  ２００  画像符号化装置，  ２０１  制御部，  ２１３  直交変換部，  ２１５  符号化部，  ２１８  逆直交変換部,  ２４１  変換ペア数設定部，  ２４２  cMax設定部，  ２４３  変換ペア識別情報設定部，  ２４４  変換ペアLUT，  ２４５  変換タイプインデックス設定部，  ２５１  変換ペアインデックス設定部，  ２５２  変換フラグ設定部，  ２５３  変換インデックス設定部，  ２６１  プライマリ変換部，  ２６２  セカンダリ変換部，  ２７１  プライマリ水平変換部，  ２７２  プライマリ垂直変換部，  ４００  画像復号装置，  ４１２  復号部，  ４１４  逆直交変換部，  ４３１  変換ペア数設定部，４３２  cMax設定部，  ４３３  変換ペア識別情報復号部，  ４３４  変換ペアLUT，  ４３５  変換タイプインデックス設定部，  ４５１  変換フラグ復号部，  ４５２  変換インデックス復号部，  ４５３  変換ペアインデックス設定部，  ４６１  逆セカンダリ変換部，  ４６２  逆プライマリ変換部，  ４７１  逆プライマリ垂直変換部，  ４７２  逆プライマリ水平変換部
【図１】
2019188466.tif 000039
【図２】
2019188466.tif 000040
【図３】
2019188466.tif 000041
【図４】
2019188466.tif 000042
【図５】
2019188466.tif 000043
【図６】
2019188466.tif 000044
【図７】
2019188466.tif 000045
【図８】
2019188466.tif 000046
【図９】
2019188466.tif 000047
【図１０】
2019188466.tif 000048
【図１１】
2019188466.tif 000049
【図１２】
2019188466.tif 000050
【図１３】
2019188466.tif 000051
【図１４】
2019188466.tif 000052
【図１５】
2019188466.tif 000053
【図１６】
2019188466.tif 000054
【図１７】
2019188466.tif 000055
【図１８】
2019188466.tif 000056
【図１９】
2019188466.tif 000057
【図２０】
2019188466.tif 000058
【図２１】
2019188466.tif 000059
【図２２】
2019188466.tif 000060
【図２３】
2019188466.tif 000061
【図２４】
2019188466.tif 000062
【図２５】
2019188466.tif 000063
【図２６】
2019188466.tif 000064
【図２７】
2019188466.tif 000065
【図２８】
2019188466.tif 000066
【図２９】
2019188466.tif 000067
【図３０】
2019188466.tif 000068
【図３１】
2019188466.tif 000069
【図３２】
2019188466.tif 000070
【図３３】
2019188466.tif 000071
【図３４】
2019188466.tif 000072
【図３５】
2019188466.tif 000073
【図３６】
2019188466.tif 000074
【図３７】
2019188466.tif 000075
【図３８】
2019188466.tif 000076
【図３９】
2019188466.tif 000077
【図４０】
2019188466.tif 000078
【図４１】
2019188466.tif 000079
【図４２】
2019188466.tif 000080
【図４３】
2019188466.tif 000081
【図４４】
2019188466.tif 000082
【図４５】
2019188466.tif 000083
【図４６】
2019188466.tif 000084
【図４７】
2019188466.tif 000085
【図４８】
2019188466.tif 000086
【図４９】
2019188466.tif 000087
【図５０】
2019188466.tif 000088
【図５１】
2019188466.tif 000089
【図５２】
2019188466.tif 000090
【図５３】
2019188466.tif 000091
【図５４】
2019188466.tif 000092
【図５５】
2019188466.tif 000093
【図５６】
2019188466.tif 000094
【図５７】
2019188466.tif 000095
【図５８】
2019188466.tif 000096
【図５９】
2019188466.tif 000097
【国際調査報告】
2019188466.tif 000098
2019188466.tif 000099
2019188466.tif 000100
2019188466.tif 000101