(57)【要約】  本開示は、符号化効率の低減を抑制することができるようにする画像処理装置および方法に関する。符号化データを復号し、得られた変換スキップ識別子の値に基づいて、逆プライマリ垂直変換の実行と逆プライマリ水平変換の実行とを制御する。また、変換スキップ識別子の値に基づいて、プライマリ水平変換の実行とプライマリ垂直変換の実行とを制御し、その変換スキップ識別子を符号化する。本開示は、例えば、画像処理装置、画像符号化装置、または画像復号装置等に適用することができる。
2018061837.tif 000002
【特許請求の範囲】
【請求項１】
符号化データを復号する復号部と、
前記復号部により前記符号化データが復号されて得られた変換スキップ識別子の値に基づいて、画像データが変換された変換係数データに対する垂直方向の逆プライマリ変換である逆プライマリ垂直変換の実行を制御する逆プライマリ垂直変換制御部と、
前記変換スキップ識別子の値に基づいて、画像データが変換された係数データに対する水平方向の逆プライマリ変換である逆プライマリ水平変換の実行を制御する逆プライマリ水平変換制御部と
を備える画像処理装置。
【請求項２】
前記逆プライマリ垂直変換制御部は、
前記変換スキップ識別子が垂直方向の１次元変換をスキップしないことを示す場合、前記変換係数データに対する前記逆プライマリ垂直変換を実行させ、
前記変換スキップ識別子が垂直方向の１次元変換をスキップすることを示す場合、前記変換係数データに対する前記逆プライマリ垂直変換を省略させる
請求項１に記載の画像処理装置。
【請求項３】
前記逆プライマリ水平変換制御部は、
前記変換スキップ識別子が水平方向の１次元変換をスキップしないことを示す場合、前記変換係数データに対する前記逆プライマリ水平変換を実行させ、
前記変換スキップ識別子が水平方向の１次元変換をスキップすることを示す場合、前記変換係数データに対する前記逆プライマリ水平変換を省略させる
請求項１に記載の画像処理装置。
【請求項４】
前記逆プライマリ垂直変換および前記逆プライマリ水平変換に適用する直交変換を選択する選択部をさらに備える
請求項１に記載の画像処理装置。
【請求項５】
前記選択部は、
前記復号部により前記符号化データが復号されて得られた垂直変換セット識別子とプライマリ垂直変換指定フラグに基づいて、前記逆プライマリ垂直変換として適用する直交変換を選択し、
前記復号部により前記符号化データが復号されて得られた水平変換セット識別子とプライマリ水平変換指定フラグに基づいて、前記逆プライマリ水平変換として適用する直交変換を選択する
請求項４に記載の画像処理装置。
【請求項６】
前記復号部は、前記変換スキップ識別子の値に応じて、プライマリ変換識別子から前記プライマリ垂直変換指定フラグおよび前記プライマリ水平変換指定フラグを導出する
請求項５に記載の画像処理装置。
【請求項７】
前記復号部は、
前記変換スキップ識別子が２次元変換をスキップしないことを示す場合、前記プライマリ変換識別子を２ビットのbin列として処理して前記プライマリ垂直変換指定フラグおよび前記プライマリ水平変換指定フラグを導出し、
前記変換スキップ識別子が垂直方向または水平方向の１次元変換をスキップしないことを示す場合、前記プライマリ変換識別子を１ビットのbin列として処理して前記プライマリ垂直変換指定フラグまたは前記プライマリ水平変換指定フラグを導出する
請求項６に記載の画像処理装置。
【請求項８】
前記復号部は、前記符号化データに含まれる前記プライマリ垂直変換指定フラグおよび前記プライマリ水平変換指定フラグを復号する
請求項５に記載の画像処理装置。
【請求項９】
前記復号部は、前記変換スキップ識別子が、垂直方向若しくは水平方向の１次元変換または２次元変換をスキップしないことを示す場合、セカンダリ変換識別子の復号を省略し、前記セカンダリ変換識別子を、セカンダリ変換をしないことを示す値に設定する
請求項１に記載の画像処理装置。
【請求項１０】
符号化データを復号し、
前記符号化データが復号されて得られた変換スキップ識別子の値に基づいて、画像データが変換された変換係数データに対する垂直方向の逆プライマリ変換である逆プライマリ垂直変換の実行を制御し、
前記変換スキップ識別子の値に基づいて、画像データが変換された係数データに対する水平方向の逆プライマリ変換である逆プライマリ水平変換の実行を制御する
画像処理方法。
【請求項１１】
変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する水平方向のプライマリ変換であるプライマリ水平変換の実行を制御するプライマリ水平変換制御部と、
前記変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する垂直方向のプライマリ変換であるプライマリ垂直変換の実行を制御するプライマリ垂直変換制御部と、
前記変換スキップ識別子を符号化する符号化部と
を備える画像処理装置。
【請求項１２】
前記プライマリ水平変換制御部は、
前記変換スキップ識別子が水平方向の１次元変換をスキップしないことを示す場合、前記残差データに対する前記プライマリ水平変換を実行させ、
前記変換スキップ識別子が水平方向の１次元変換をスキップすることを示す場合、前記残差データに対する前記プライマリ水平変換を省略させる
請求項１１に記載の画像処理装置。
【請求項１３】
前記プライマリ垂直変換制御部は、
前記変換スキップ識別子が垂直方向の１次元変換をスキップしないことを示す場合、前記残差データに対する前記プライマリ垂直変換を実行させ、
前記変換スキップ識別子が垂直方向の１次元変換をスキップすることを示す場合、前記残差データに対する前記プライマリ垂直変換を省略させる
請求項１１に記載の画像処理装置。
【請求項１４】
前記プライマリ水平変換および前記プライマリ垂直変換に適用する直交変換を選択する選択部をさらに備える
請求項１１に記載の画像処理装置。
【請求項１５】
前記選択部は、
水平変換セット識別子とプライマリ水平変換指定フラグに基づいて、前記プライマリ水平変換として適用する直交変換を選択し、
垂直変換セット識別子とプライマリ垂直変換指定フラグに基づいて、前記プライマリ垂直変換として適用する直交変換を選択する
請求項１４に記載の画像処理装置。
【請求項１６】
前記符号化部は、前記変換スキップ識別子の値に応じて、前記プライマリ水平変換指定フラグおよび前記プライマリ垂直変換指定フラグからプライマリ変換識別子を導出する
請求項１５に記載の画像処理装置。
【請求項１７】
前記符号化部は、
前記変換スキップ識別子が２次元変換をスキップしないことを示す場合、前記プライマリ水平変換指定フラグおよび前記プライマリ垂直変換指定フラグを用いて、２ビットのbin列の前記プライマリ変換識別子を導出し、
前記変換スキップ識別子が水平方向または垂直方向の１次元変換をスキップしないことを示す場合、前記プライマリ水平変換指定フラグまたは前記プライマリ垂直変換指定フラグを用いて、１ビットのbin列の前記プライマリ変換識別子を導出する
請求項１６に記載の画像処理装置。
【請求項１８】
前記符号化部は、前記プライマリ水平変換指定フラグおよび前記プライマリ垂直変換指定フラグを符号化する
請求項１５に記載の画像処理装置。
【請求項１９】
前記符号化部は、前記変換スキップ識別子が、水平方向若しくは垂直方向の１次元変換または２次元変換をスキップしないことを示す場合、セカンダリ変換識別子の符号化を省略する
請求項１１に記載の画像処理装置。
【請求項２０】
変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する水平方向のプライマリ変換であるプライマリ水平変換の実行を制御し、
前記変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する垂直方向のプライマリ変換であるプライマリ垂直変換の実行を制御し、
前記変換スキップ識別子を符号化する
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置および方法に関し、特に、符号化効率の低減を抑制することができるようにした画像処理装置および方法に関する。
【背景技術】
【０００２】
従来、TU単位毎に、水平方向のプライマリ変換PThor（プライマリ水平変換とも称する）および垂直方向のプライマリ変換PTver（プライマリ垂直変換とも称する）毎に、適応的に複数の異なる直交変換から、プライマリ変換を選択する適応プライマリ変換（AMT: Adaptive Multiple Core Transforms）が開示されている（例えば、非特許文献１参照）。【０００３】
なお、非特許文献１には、水平方向（x方向）および垂直方向（y方向）毎に、プライマリ変換の候補となる直交変換を含む変換セットTransformSetが、モード情報と変換セットの対応表(イントラ予測モード情報)に基づいて、(一意に)決定(選択)されることも開示されている。そして、変換セットの定義が、変換ブロックサイズとモード情報に基づいて定まることも開示されている（例えば、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】JVET-C1001, Algorithm description of Joint Exploration Test Model 3, 2016/07/02公開, url:http://phenix.int-evry.fr/jvet/doc_end_user/documents/3_Geneva/wg11/JVET-C1001-v3.zip
【非特許文献２】JVET-C0022, Proposed improvements to the Adaptive multiple Core transform, 2016/05/16公開, url:http://phenix.int-evry.fr/jvet/doc_end_user/documents/3_Geneva/wg11/JVET-C0022-v4.zip
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の方法では、１次元変換スキップが特定の変換ブロックサイズ、およびイントラ予測モード番号のときにしか選択できないとう制限があった。従って、レート歪の観点から、２次元直交変換をするよりも、水平もしくは垂直方向の直交変換をスキップする１次元変換スキップを選択する方が良い場合、エンコーダ側において１次元変換スキップを選択することが出来ないため、符号化効率が低減するおそれがあった。【０００６】
本開示は、このような状況に鑑みてなされたものであり、符号化効率の低減を抑制することができるようにするものである。
【課題を解決するための手段】
【０００７】
本技術の第１の側面の画像処理装置は、符号化データを復号する復号部と、前記復号部により前記符号化データが復号されて得られた変換スキップ識別子の値に基づいて、画像データが変換された変換係数データに対する垂直方向の逆プライマリ変換である逆プライマリ垂直変換の実行を制御する逆プライマリ垂直変換制御部と、前記変換スキップ識別子の値に基づいて、画像データが変換された係数データに対する水平方向の逆プライマリ変換である逆プライマリ水平変換の実行を制御する逆プライマリ水平変換制御部とを備える画像処理装置である。【０００８】
前記逆プライマリ垂直変換制御部は、前記変換スキップ識別子が垂直方向の１次元変換をスキップしないことを示す場合、前記変換係数データに対する前記逆プライマリ垂直変換を実行させ、前記変換スキップ識別子が垂直方向の１次元変換をスキップすることを示す場合、前記変換係数データに対する前記逆プライマリ垂直変換を省略させることができる。【０００９】
前記逆プライマリ水平変換制御部は、前記変換スキップ識別子が水平方向の１次元変換をスキップしないことを示す場合、前記変換係数データに対する前記逆プライマリ水平変換を実行させ、前記変換スキップ識別子が水平方向の１次元変換をスキップすることを示す場合、前記変換係数データに対する前記逆プライマリ水平変換を省略させることができる。【００１０】
前記逆プライマリ垂直変換および前記逆プライマリ水平変換に適用する直交変換を選択する選択部をさらに備えるようにすることができる。【００１１】
前記選択部は、前記復号部により前記符号化データが復号されて得られた垂直変換セット識別子とプライマリ垂直変換指定フラグに基づいて、前記逆プライマリ垂直変換として適用する直交変換を選択し、前記復号部により前記符号化データが復号されて得られた水平変換セット識別子とプライマリ水平変換指定フラグに基づいて、前記逆プライマリ水平変換として適用する直交変換を選択することができる。【００１２】
前記復号部は、前記変換スキップ識別子の値に応じて、プライマリ変換識別子から前記プライマリ垂直変換指定フラグおよび前記プライマリ水平変換指定フラグを導出することができる。【００１３】
前記復号部は、前記変換スキップ識別子が２次元変換をスキップしないことを示す場合、前記プライマリ変換識別子を２ビットのbin列として処理して前記プライマリ垂直変換指定フラグおよび前記プライマリ水平変換指定フラグを導出し、前記変換スキップ識別子が垂直方向または水平方向の１次元変換をスキップしないことを示す場合、前記プライマリ変換識別子を１ビットのbin列として処理して前記プライマリ垂直変換指定フラグまたは前記プライマリ水平変換指定フラグを導出することができる。【００１４】
前記復号部は、前記符号化データに含まれる前記プライマリ垂直変換指定フラグおよび前記プライマリ水平変換指定フラグを復号することができる。【００１５】
前記復号部は、前記変換スキップ識別子が、垂直方向若しくは水平方向の１次元変換または２次元変換をスキップしないことを示す場合、セカンダリ変換識別子の復号を省略し、前記セカンダリ変換識別子を、セカンダリ変換をしないことを示す値に設定することができる。【００１６】
本技術の第１の側面の画像処理方法は、符号化データを復号し、前記符号化データが復号されて得られた変換スキップ識別子の値に基づいて、画像データが変換された変換係数データに対する垂直方向の逆プライマリ変換である逆プライマリ垂直変換の実行を制御し、前記変換スキップ識別子の値に基づいて、画像データが変換された係数データに対する水平方向の逆プライマリ変換である逆プライマリ水平変換の実行を制御する画像処理方法である。【００１７】
本技術の第２の側面の画像処理装置は、変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する水平方向のプライマリ変換であるプライマリ水平変換の実行を制御するプライマリ水平変換制御部と、前記変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する垂直方向のプライマリ変換であるプライマリ垂直変換の実行を制御するプライマリ垂直変換制御部と、前記変換スキップ識別子を符号化する符号化部とを備える画像処理装置である。【００１８】
前記プライマリ水平変換制御部は、前記変換スキップ識別子が水平方向の１次元変換をスキップしないことを示す場合、前記残差データに対する前記プライマリ水平変換を実行させ、前記変換スキップ識別子が水平方向の１次元変換をスキップすることを示す場合、前記残差データに対する前記プライマリ水平変換を省略させることができる。【００１９】
前記プライマリ垂直変換制御部は、前記変換スキップ識別子が垂直方向の１次元変換をスキップしないことを示す場合、前記残差データに対する前記プライマリ垂直変換を実行させ、前記変換スキップ識別子が垂直方向の１次元変換をスキップすることを示す場合、前記残差データに対する前記プライマリ垂直変換を省略させることができる。【００２０】
前記プライマリ水平変換および前記プライマリ垂直変換に適用する直交変換を選択する選択部をさらに備えるようにすることができる。【００２１】
前記選択部は、水平変換セット識別子とプライマリ水平変換指定フラグに基づいて、前記プライマリ水平変換として適用する直交変換を選択し、垂直変換セット識別子とプライマリ垂直変換指定フラグに基づいて、前記プライマリ垂直変換として適用する直交変換を選択することができる。【００２２】
前記符号化部は、前記変換スキップ識別子の値に応じて、前記プライマリ水平変換指定フラグおよび前記プライマリ垂直変換指定フラグからプライマリ変換識別子を導出することができる。【００２３】
前記符号化部は、前記変換スキップ識別子が２次元変換をスキップしないことを示す場合、前記プライマリ水平変換指定フラグおよび前記プライマリ垂直変換指定フラグを用いて、２ビットのbin列の前記プライマリ変換識別子を導出し、前記変換スキップ識別子が水平方向または垂直方向の１次元変換をスキップしないことを示す場合、前記プライマリ水平変換指定フラグまたは前記プライマリ垂直変換指定フラグを用いて、１ビットのbin列の前記プライマリ変換識別子を導出することができる。【００２４】
前記符号化部は、前記プライマリ水平変換指定フラグおよび前記プライマリ垂直変換指定フラグを符号化することができる。【００２５】
前記符号化部は、前記変換スキップ識別子が、水平方向若しくは垂直方向の１次元変換または２次元変換をスキップしないことを示す場合、セカンダリ変換識別子の符号化を省略することができる。【００２６】
本技術の第２の側面の画像処理方法は、変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する水平方向のプライマリ変換であるプライマリ水平変換の実行を制御し、前記変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する垂直方向のプライマリ変換であるプライマリ垂直変換の実行を制御し、前記変換スキップ識別子を符号化する画像処理方法である。【００２７】
本技術の第１の側面の画像処理装置および方法においては、符号化データが復号され、その符号化データが復号されて得られた変換スキップ識別子の値に基づいて、画像データが変換された変換係数データに対する垂直方向の逆プライマリ変換である逆プライマリ垂直変換の実行が制御され、また、その変換スキップ識別子の値に基づいて、画像データが変換された係数データに対する水平方向の逆プライマリ変換である逆プライマリ水平変換の実行が制御される。【００２８】
本技術の第２の側面の画像処理装置および方法においては、変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する水平方向のプライマリ変換であるプライマリ水平変換の実行が制御され、また、その変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する垂直方向のプライマリ変換であるプライマリ垂直変換の実行が制御され、その変換スキップ識別子が符号化される。
【発明の効果】
【００２９】
本開示によれば、画像を処理することができる。特に、符号化効率の低減を抑制することができる。
【図面の簡単な説明】
【００３０】
【図１】変換セットと選択される直交変換との対応関係を示す図である。
【図２】直交変換のタイプと、用いられる関数との対応関係を示す図である。
【図３】変換セットと予測モードとの対応関係を示す図である。
【図４】変換セットと部六サイズとの対応関係を示す図である。
【図５】変換スキップ識別子のセマンティクスを示す図である。
【図６】CUについての再帰的なブロック分割の概要を説明するための説明図である。
【図７】図６に示したCUへのPUの設定について説明するための説明図である。
【図８】図６に示したCUへのTUの設定について説明するための説明図である。
【図９】CU／PUの走査順について説明するための説明図である。
【図１０】画像復号装置の主な構成例を示すブロック図である。
【図１１】逆変換部の主な構成例を示すブロック図である。
【図１２】画像復号処理の流れの例を説明するフローチャートである。
【図１３】逆変換処理の流れの例を説明するフローチャートである。
【図１４】逆プライマリ変換選択処理の流れの例を説明するフローチャートである。
【図１５】復号部の主な構成例を示すブロック図である。
【図１６】復号処理の流れの例を説明するフローチャートである。
【図１７】シンタクスの例を示す図である。
【図１８】復号部の主な構成例を示すブロック図である。
【図１９】復号処理の流れの例を説明するフローチャートである。
【図２０】プライマリ垂直水平変換指定フラグ導出処理の流れの例を説明するフローチャートである。
【図２１】復号部の主な構成例を示すブロック図である。
【図２２】復号処理の流れの例を説明するフローチャートである。
【図２３】シンタクスの例を示す図である。
【図２４】復号部の主な構成例を示すブロック図である。
【図２５】シンタクスの例を示す図である。
【図２６】逆変換部の主な構成例を示すブロック図である。
【図２７】画像符号化装置の主な構成例を示すブロック図である。
【図２８】変換部の主な構成例を示すブロック図である。
【図２９】画像符号化処理の流れの例を説明するフローチャートである。
【図３０】変換処理の流れの例を説明するフローチャートである。
【図３１】プライマリ変換選択処理の流れの例を説明する図である。
【図３２】符号化部の主な構成例を示すブロック図である。
【図３３】符号化処理の流れの例を説明するフローチャートである。
【図３４】符号化部の主な構成例を示すブロック図である。
【図３５】符号化処理の流れの例を説明するフローチャートである。
【図３６】プライマリ変換識別子導出処理の流れの例を説明するフローチャートである。
【図３７】符号化部の主な構成例を示すブロック図である。
【図３８】符号化処理の流れの例を説明するフローチャートである。
【図３９】符号化部の主な構成例を示すブロック図である。
【図４０】変換部の主な構成例を示すブロック図である。
【図４１】コンピュータの主な構成例を示すブロック図である。
【図４２】テレビジョン装置の概略的な構成の一例を示すブロック図である。
【図４３】携帯電話機の概略的な構成の一例を示すブロック図である。
【図４４】記録再生装置の概略的な構成の一例を示すブロック図である。
【図４５】撮像装置の概略的な構成の一例を示すブロック図である。
【図４６】ビデオセットの概略的な構成の一例を示すブロック図である。
【図４７】ビデオプロセッサの概略的な構成の一例を示すブロック図である。
【図４８】ビデオプロセッサの概略的な構成の他の例を示すブロック図である。
【図４９】ネットワークシステムの概略的な構成の一例を示すブロック図である。
【発明を実施するための形態】
【００３１】
以下、本開示を実施するための形態（以下実施の形態とする）について説明する。なお、説明は以下の順序で行う。
１．第１の実施の形態（画像復号装置）
２．第２の実施の形態（識別子の復号）
３．第３の実施の形態（プライマリ変換指定フラグの符号化）
４．第４の実施の形態（スケーリング）
５．第５の実施の形態（画像符号化装置）
６．第６の実施の形態（識別子の復号）
７．第７の実施の形態（プライマリ変換指定フラグの符号化）
８．第８の実施の形態（スケーリング）
９．第９の実施の形態（その他）
【００３２】
＜１．第１の実施の形態＞
＜プライマリ変換＞
非特許文献１に記載のテストモデル（JEM3（Joint Exploration Test Model 3））においては、4Kなどの高解像度画像における符号化効率向上のために、CTUサイズの最大サイズが128x128から256x256に拡張されている。さらに、ブロック分割の構造として、従来の４分木分割に加えて、水平／垂直方向の２分木が導入され、それに伴い、矩形の変換ブロックに加えて、非矩形の変換ブロックも導入されている。
【００３３】
また、JEM3では、TU単位毎に、水平方向のプライマリ変換PThor（プライマリ水平変換とも称する）および垂直方向のプライマリ変換PTver（プライマリ垂直変換とも称する）毎に、適応的に複数の異なる直交変換から、プライマリ変換を選択する適応プライマリ変換（AMT（Adaptive Multiple Core Transforms））が開示されている。
【００３４】
より具体的には、例えばTU単位で、適応プライマリ変換を実施するか否かを示す適応プライマリ変換フラグapt_flag（amt_flag、cu_pt_flag、またはemt_flagとも称する）が０（偽）の場合、プライマリ変換として、 DCT-IIまたはDST-VIIがモード情報によって（一意に）決定される。
【００３５】
これに対して、例えば、適応プライマリ変換フラグapt_flagが１（真）の場合、図１に示される表のように、水平方向（x方向）と垂直方向（y方向）のそれぞれについてのプライマリ変換の候補となる直交変換を含む変換セットTransformSetが、３つの候補（Transform SetIdx = 0乃至2）の中から選択される。図１に示されるDST（Discrete Sine Transform）-VIIやDCT（Discrete Cosine Transform）-VIII等は、直交変換のタイプを示しており、それぞれ、図２に示される表のような関数が用いられる。
【００３６】
変換セットTransformSetの選択（決定）は、図３に示される表のように、イントラ予測モード（Intra Mode）に基づいて行われる。例えば、以下の式（１）および式（２）のように、各変換セットTransformSet{H,V}に対して、対応する変換セットTransformSetを指定する変換セット識別子TransformSetIdxを設定するように実施される。
【００３７】
TransformSetH = LUT_IntraModeToTransformSet [ IntraMode ] [ H(=0) ]
・・・（１）
TransformSetV = LUT_IntraModeToTransformSet [ IntraMode ] [ V(=1) ]
・・・（２）
【００３８】
ここで、TransformSetHは、プライマリ水平変換PThorの変換セットを示し、TransormSetVは、プライマリ垂直変換PTverの変換セットを示し、ルックアップテーブルLUT_IntraModeToTransformSetは、図３の対応表を示している。ルックアップテーブルLUT_IntraModeToTransformSet[][]の１番目の配列は、イントラ予測モードIntraModeを引数とし、２番目の配列は、{H=0, V=1}を引数とする。
【００３９】
例えば、イントラ予測モード番号9（IntraMode==9）の場合、プライマリ水平変換PThorの変換セットTransformSetH（プライマリ水平変換セットとも称する）として、図１の表に示される変換セット識別子TransformSetIdx=0の変換セットが選択され、プライマリ垂直変換PTverの変換セットTransformSetV（プライマリ垂直変換セットとも称する）として、図１の表に示される変換セット識別子TransformSetIdx=2の変換セットが選択される。
【００４０】
さらに、選択された変換セットTransformSetのうちのどの直交変換をプライマリ水平変換に適用するかが、プライマリ水平変換指定フラグpt_hor_flagによって選択される。また、選択された変換セットTransformSetのうちのどの直交変換をプライマリ垂直変換に適用するかが、プライマリ垂直変換指定フラグpt_ver_flagによって選択される。例えば、以下の式（３）および式（４）のように、プライマリ{水平, 垂直}変換セットTransformSet{H,V}、とプライマリ{水平, 垂直}変換指定フラグpt_{hor,ver}_flagを引数として、図１に示される変換セットの定義表（LUT_TransformSetToTransformType）から導出される。
【００４１】
PThor = LUT_TransformSetToTransformType [ TransformSetH ] [ pt_hor_flag ]
・・・（３）
PTver = LUT_TransformSetToTransformType [ TrasnformSetV ] [ pt_ver_flag ]
・・・（４）
【００４２】
例えば、イントラ予測モード番号9（IntraMode==9）の場合、プライマリ水平変換セットTransformSetHの変換セット識別子の値は0であるため、図１の変換セット定義表LUT_TransformSetToTransformType上で変換セット識別子TransformSetIdx==0である変換セットからプライマリ水平変換が選択（指定）される。すなわち、プライマリ水平変換指定フラグpt_hor_flagが０の場合、プライマリ水平変換PThorとして、DST-VIIが選択され、プライマリ水平変換指定フラグpt_hor_flagが１の場合、プライマリ水平変換PThorとして、DCT-VIIIが選択される。
【００４３】
また、プライマリ水平指定フラグpt_hor_flagおよびプライマリ垂直変換指定フラグpt_ver_flagからプライマリ変換識別子pt_idxが、以下の式（５）に基づいて導出される。
【００４４】
pt_idx  = (pt_ver_flag << 1) + pt_hor_flag
・・・（５）
【００４５】
すなわち、プライマリ変換識別子pt_idxの上位1bitは、プライマリ垂直変換指定フラグの値に対応し、下位1bitは、プライマリ水平変換指定フラグの値に対応する。導出されたプライマリ変換識別子pt_idxのbin列に対して、算術符号化を適用して、ビット列を生成することで、符号化が実施される。
【００４６】
非特許文献２では、プライマリ変換の変換セットを構成する直交変換として、非特許文献１の直交変換の候補{DST-VII, DST-I, DCT-V, DCT-VIII}に加えて、DST-IV及び１次元直交変換をスキップし、係数のスケーリングのみを行うIdentity Transform（IDTまたは１次元変換スキップ（1D Transform Skip）とも称する）を導入することが開示されている。また、非特許文献２においては、図１に新たな変換セット（変換セット識別子TransformSetIdx==3）が追加されている。
【００４７】
また、非特許文献２の場合、変換セットの定義は、変換ブロックサイズとモード情報に基づいて定まる。イントラ予測モード番号が9の場合の、4x4/8x8/16x16/32x32変換における変換セットの定義の一例を図４の表に示す。例えば、図４に示される表において、変換ブロックサイズ4x4の場合、変換セット識別子TrasnformSetIdx=2の変換セットでは、プライマリ水平変換PThorとして、IDTが選択され、プライマリ垂直変換PTverとして、DST-VIIが選択される。具体的には、以下の式（６）および式（７）のように、ルックアップテーブルLUT_TransformSetから、１番目の配列はイントラ予測モードIntraModeを引数とし、２番目の配列は変換ブロックサイズの対数値 - 2 の値を引数とし、３番目の配列は、変換セット識別子TransformSetIdxを引数とし、４番目の配列は、水平方向H(=0)または垂直方向V(=1)を引数として、プライマリ水平変換PThorおよびプライマリ垂直変換PTverの直交変換が選択される。
【００４８】
PThor = LUT_TransfomSet[ IntraMode(=9) ] [ log2TBSize - 2 (=0) ] [ TransformSetIdx(=2) ] [ H(=0) ] = IDT
・・・（６）
PTver = LUT_TransfomSet[ IntraMode(=9) ] [ log2TBSize - 2 (=0) ] [ TransformSetIdx(=2) ] [ V(=1) ] = DST-VII
・・・（７）
【００４９】
なお、非特許文献２では、以下の式（８）のように、プライマリ変換識別子pt_idxが、変換セット識別子TransfromSetIdxに対応する。
【００５０】
pt_idx = TransformSetIdx
・・・（８）
【００５１】
非特許文献２では、１次元変換スキップが特定の変換ブロックサイズおよびイントラ予測モード番号のときにしか選択できないとう制限がある。従って、レート歪の観点から、２次元直交変換をするよりも、水平もしくは垂直方向の直交変換をスキップする１次元変換スキップを選択する方が良い場合、エンコーダ側において１次元変換スキップを選択することが出来きないため、符号化効率が低減するおそれがあった。
【００５２】
そこで、符号化側において、変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する水平方向のプライマリ変換であるプライマリ水平変換の実行を制御し、またその変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する垂直方向のプライマリ変換であるプライマリ垂直変換の実行を制御し、その変換スキップ識別子を符号化するようにする。また、復号側において、符号化データを復号し、その符号化データが復号されて得られた変換スキップ識別子の値に基づいて、画像データが変換された変換係数データに対する垂直方向の逆プライマリ変換である逆プライマリ垂直変換の実行を制御し、またその変換スキップ識別子の値に基づいて、画像データが変換された係数データに対する水平方向の逆プライマリ変換である逆プライマリ水平変換の実行を制御するようにする。
【００５３】
このようにすることにより、水平方向または垂直方向の１次元変換をスキップすることが望ましい場合に、（逆）プライマリ変換の処理量の低減およびエナジーコンパクションの低下を抑制し、符号化効率を向上させることができる。
【００５４】
＜ブロック分割＞
MPEG2（Moving Picture Experts Group 2(ISO/IEC 13818-2)）やMPEG-4 Part10（Advanced Video Coding、以下AVCと記す）などの旧来の画像符号化方式では、符号化処理は、マクロブロックと呼ばれる処理単位で実行される。マクロブロックは、16x16画素の均一なサイズを有するブロックである。これに対し、HEVC（High Efficiency Video Coding）では、符号化処理は、CU（Coding Unit）と呼ばれる処理単位（符号化単位）で実行される。CUは、最大符号化単位であるLCU（Largest Coding Unit）を再帰的に分割することにより形成される、可変的なサイズを有するブロックである。選択可能なCUの最大サイズは、64x64画素である。選択可能なCUの最小サイズは、8x8画素である。最小サイズのCUは、SCU（Smallest Coding Unit）と呼ばれる。なお、CUの最大サイズは、64x64画素に限定されず、より大きい128x128画素、256x256画素などのブロックサイズとしてもよい。
【００５５】
このように、可変的なサイズを有するCUが採用される結果、HEVCでは、画像の内容に応じて画質及び符号化効率を適応的に調整することが可能である。予測符号化のための予測処理は、PU（Prediction Unit）と呼ばれる処理単位（予測単位）で実行される。PUは、CUをいくつかの分割パタンのうちの１つで分割することにより形成される。また、PUは、輝度(Y)及び色差(Cb,Cr)毎のPB(Prediction Block)と呼ばれる処理単位(予測ブロック)から構成される。さらに、直交変換処理は、TU（Transform Unit）と呼ばれる処理単位（変換単位）で実行される。TUは、CU又はPUをある深さまで分割することにより形成される。また、TUは、輝度(Y)及び色差(Cb,Cr)毎のTB(Transform Block)と呼ばれる処理単位（変換ブロック）から構成される。
【００５６】
＜再帰的なブロックの分割＞
図６は、HEVCにおけるCUについての再帰的なブロック分割の概要を説明するための説明図である。CUのブロック分割は、１つのブロックの４（=2x2）個のサブブロックへの分割を再帰的に繰り返すことにより行われ、結果として四分木（Quad-Tree）状のツリー構造が形成される。１つの四分木の全体をCTB（Coding Tree Block）といい、CTBに対応する論理的な単位をCTU（Coding Tree Unit）という。
【００５７】
図６の上部には、一例として、64x64画素のサイズを有するCUであるＣ０１が示されている。Ｃ０１の分割の深さは、ゼロに等しい。これは、Ｃ０１がCTUのルートでありLCUに相当することを意味する。LCUサイズは、SPS（Sequence Parameter Set）又はPPS（Picture Parameter Set）において符号化されるパラメータにより指定され得る。CUであるＣ０２は、Ｃ０１から分割される４つのCUのうちの１つであり、32x32画素のサイズを有する。Ｃ０２の分割の深さは、１に等しい。CUであるＣ０３は、Ｃ０２から分割される４つのCUのうちの１つであり、16x16画素のサイズを有する。Ｃ０３の分割の深さは、２に等しい。CUであるＣ０４は、Ｃ０３から分割される４つのCUのうちの１つであり、8x8画素のサイズを有する。Ｃ０４の分割の深さは、３に等しい。このように、CUは、符号化される画像を再帰的に分割することにより形成される。分割の深さは、可変的である。例えば、青空のような平坦な画像領域には、より大きいサイズの（即ち、深さが小さい）CUが設定され得る。一方、多くのエッジを含む急峻な画像領域には、より小さいサイズの（即ち、深さが大きい）CUが設定され得る。そして、設定されたCUの各々が、符号化処理の処理単位となる。
【００５８】
＜CUへのPUの設定＞
PUは、イントラ予測及びインター予測を含む予測処理の処理単位である。PUは、CUをいくつかの分割パタンのうちの１つで分割することにより形成される。図７は、図６に示したCUへのPUの設定について説明するための説明図である。図７の右には、2Nx2N、2NxN、Nx2N、NxN、2NxnU、2NxnD、nLx2N及びnRx2Nという、８種類の分割パタンが示されている。これら分割パタンのうち、イントラ予測では、2Nx2N及びNxNの２種類が選択可能である（NxNはSCUでのみ選択可能）。これに対してインター予測では、非対称動き分割が有効化されている場合に、８種類の分割パタンの全てが選択可能である。
【００５９】
＜CUへのTUの設定＞
TUは、直交変換処理の処理単位である。TUは、CU（イントラCUについては、CU内の各PU）をある深さまで分割することにより形成される。図８は、図７に示したCUへのTUの設定について説明するための説明図である。図８の右には、Ｃ０２に設定され得る１つ以上のTUが示されている。例えば、TUであるＴ０１は、32x32画素のサイズを有し、そのTU分割の深さはゼロに等しい。TUであるＴ０２は、16x16画素のサイズを有し、そのTU分割の深さは１に等しい。TUであるＴ０３は、8x8画素のサイズを有し、そのTU分割の深さは２に等しい。
【００６０】
上述したCU、PU及びTUといったブロックを画像に設定するためにどのようなブロック分割を行うかは、典型的には、符号化効率を左右するコストの比較に基づいて決定される。エンコーダは、例えば１つの2Mx2M画素のCUと、４つのMxM画素のCUとの間でコストを比較し、４つのMxM画素のCUを設定した方が符号化効率が高いならば、2Mx2M画素のCUを４つのMxM画素のCUへと分割することを決定する。
【００６１】
＜CUとPUの走査順＞
画像を符号化する際、画像（又はスライス、タイル）内に格子状に設定されるCTB（又はLCU）が、ラスタスキャン順に走査される。１つのCTBの中では、CUは、四分木を左から右、上から下に辿るように走査される。カレントブロックを処理する際、上及び左の隣接ブロックの情報が入力情報として利用される。図９は、CUとPUの走査順について説明するための説明図である。図９の左上には、１つのCTBに含まれ得る４つのCUである、Ｃ１０、Ｃ１１、Ｃ１２及びＣ１３が示されている。各CUの枠内の数字は、処理の順序を表現している。符号化処理は、左上のCUであるＣ１０、右上のCUであるＣ１１、左下のCUであるＣ１２、右下のCUであるＣ１３の順で実行される。図９の右には、CUであるＣ１１に設定され得るインター予測のための１つ以上のPUが示されている。図９の下には、CUであるＣ１２に設定され得るイントラ予測のための１つ以上のPUが示されている。これらPUの枠内の数字に示したように、PUもまた、左から右、上から下に辿るように走査される。
【００６２】
以下においては、画像（ピクチャ）の部分領域や処理単位として「ブロック」を用いて説明する場合がある（処理部のブロックではない）。この場合の「ブロック」は、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。つまり、この場合の「ブロック」には、例えば、TB、TU、PB、PU、SCU、CU、LCU（CTB）、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域（処理単位）が含まれるものとする。
【００６３】
＜画像復号装置＞
図１０は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図１０に示される画像復号装置１００は、AVCやHEVCのように、画像とその予測画像との予測残差が符号化された符号化データを復号する装置である。例えば、画像復号装置１００は、HEVCに提案された技術や、JVET（Joint Video Exploration Team）にて提案された技術を実装している。
【００６４】
図１０において、画像復号装置１００は、復号部１１１、逆量子化部１１２、逆変換部１１３、演算部１１４、フレームメモリ１１５、および予測部１１６を備えている。なお、予測部１１６は、不図示のイントラ予測部、およびインター予測部を備えている。画像復号装置１００は、符号化データ#1（bitstream）を復号することによって、動画像#2を生成するための装置である。
【００６５】
復号部１１１は、符号化データ＃１を入力とし、シンタックステーブルの定義に沿って、符号化データ＃１のビット列から、各シンタックス要素のシンタックス値を可変長復号する。さらに、シンタックス要素には、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfoなどの情報が含まれる。
【００６６】
ＶＰＳ／ＳＰＳ／ＰＰＳ／スライスヘッダＳＨなどのヘッダ情報Hinfoには、画像サイズ（横幅PicWidth、縦幅PicHeight）、ビット深度（輝度bitDepthY, 色差bitDepthC）、ＣＵサイズの最大値MaxCUSize／最小値MinCUSize、４分木分割（Quad-tree分割ともいう）の最大深度MaxQTDepth/最小深度MinQTDepth、２分木分割（Binary-tree分割）の最大深度MaxBTDepth/最小深度MinBTDepth、変換スキップブロックの最大値MaxTSSize（最大変換スキップブロックサイズともいう）、各符号化ツールのオンオフフラグ（有効フラグともいう）などを規定する情報が含まれる。
【００６７】
例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が１（真）の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が０（偽）の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
【００６８】
適応プライマリ変換有効フラグapt_enabled_flag（adaptive_primary_transform_enabled_flag、adaptive_pt_enabled_flag、またはamt_enabled_flagとも称する）は、変換処理及びその逆処理の１つとして、適応的なプライマリ変換の選択が可能な符号化ツール（適応プライマリ変換ともいう）が使用可能か示すフラグである。
【００６９】
セカンダリ変換有効フラグst_enabled_flagは、変換処理およびその逆処理の１つとして、セカンダリ変換/逆セカンダリ変換をする符号化ツールが使用可能か否かを示すフラグである。
【００７０】
変換量子化バイパス有効フラグtransquant_bypass_enabled_flagは、変換・量子化、およびその逆処理の１つとして、変換と量子化/逆量子化と逆変換をスキップする符号化ツールが使用可能か否かを示すフラグである。
【００７１】
変換スキップフラグ有効フラグts_enabled_flagは、変換処理およびその逆処理の１つとして、２次元変換スキップや１次元変換スキップが使用可能か否かを示すフラグである。その２次元変換スキップは、プライマリ変換とセカンダリ変換を含む直交変換およびその逆処理（逆直交変換）をスキップする符号化ツールである。また、１次元変換スキップは、プライマリ変換のうち、水平方向または垂直方向のプライマリ変換、および、それに対応する逆変換（逆プライマリ変換）、並びに、セカンダリ変換とその逆セカンダリ変換をスキップする符号化ツールである。
【００７２】
予測モード情報Pinfoには、さらに、処理対象ＰＵのＰＵサイズ（予測ブロックサイズ）PUSize、イントラ予測モード情報IPinfo（例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode）、動き予測情報MVinfo（例えば、JCTVC-W1005, 7.3.8.6 Prediction Unit Syntaxを参照, merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X={0,1}, mvd）等が含まれる。
【００７３】
また、変換情報Tinfoには、例えば、処理対象変換ブロックの横幅サイズTBWidthおよび縦幅TBHeight、（逆）変換および（逆）量子化の処理をスキップするか否かを示す変換量子化バイパスフラグtransquant_bypass_flag、２次元変換スキップや１次元変換スキップなどの各種変換スキップモードを指定する変換スキップ識別子ts_idx、対象ＴＵにおいて適応プライマリ変換を適用するかを示す適応プライマリ変換フラグapt_flag、垂直方向および水平方向の（逆）プライマリ変換にどの（逆）プライマリ変換を適用するかを示すプライマリ変換識別子pt_idx、どの（逆）セカンダリ変換を適用するかを示すセカンダリ変換識別子st_idx（dnsst_idx、nsst_idx、またはrot_idxとも称する）、スキャン識別子scanIdx、量子化パラメータqp、量子化マトリックスscaling_matrix等のシンタックスが含まれる。なお、処理対象変換ブロックの横幅サイズTBWidthおよび縦幅TBHeightの代わりに、２を底とする各TBWidth、TBHeightの対数値log2TBWidth、log2TBHeightが含まれるようにしてもよい。
【００７４】
残差情報Rinfoには、例えば、ラスト非ゼロ係数X座標（last_sig_coeff_x_pos）、ラスト非ゼロ係数Y座標（last_sig_coeff_y_pos）、サブブロック非ゼロ係数有無フラグ（coded_sub_block_flag）、非ゼロ係数有無フラグ（sig_coeff_flag）、非ゼロ係数のレベルが１より大きいかを示すフラグ（gr1_flag）（GR1フラグとも称する）、非ゼロ係数のレベルが２より大きいかを示すフラグ（gr2_flag）（GR2フラグとも称する）、非ゼロ係数の正負を示す符号（sign_flag）（サイン符号とも称する）、並びに、非ゼロ係数の残余レベル（coeff_abs_level_remaining）（非ゼロ係数残余レベルとも称する）等が含まれるようにしてもよい。
【００７５】
復号部１１１は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数レベルlevelを導出する。復号部１１１は、復号して得た予測モード情報Pinfo、量子化変換係数レベルlevel、変換情報Tinfoを各ブロックへ供給する。例えば、復号部１１１は、予測モード情報Pinfoを予測部２４に供給し、量子化変換係数レベルlevelを、逆量子化部２２に供給し、変換情報Tinfoを、逆変換部１１３および逆量子化部１１２に供給する。
【００７６】
逆量子化部１１２は、変換情報Tinfo、及び量子化変換係数レベルlevelを入力とし、変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング（逆量子化）し、逆量子化後の変換係数Coeff_IQを逆変換部１１３へ出力する。
【００７７】
逆変換部１１３は、変換係数Coeff_IQおよび変換情報Tinfoを入力とし、変換情報Tinfoに基づいて、変換係数Coeff_IQに対して、逆変換を適用し、予測残差D'を導出し、それを演算部１１４へ出力する。逆変換部１１３の詳細については、後述する。
【００７８】
演算部１１４は、予測残差D'と、予測部１１６より供給される予測画像Pとを入力とし、以下の式（９）に示すように予測残差D'と予測残差D'に対応する予測画像P（予測信号）とを加算し、局所復号画像Recを導出し、それをフレームメモリ１１５または画像復号装置１００の外部に供給する。
【００７９】
Rec = D' + P
・・・（９）
【００８０】
フレームメモリ１１５は、演算部１１４より供給される局所復号画像Recを入力とし、ピクチャ単位毎の復号画像を再構築して、フレームメモリ１１５内のバッファへ格納する。フレームメモリ１１５は、予測部１１６の予測モード情報Pinfoによって指定される復号画像を参照画像としてバッファより読み出し、予測部１１６へ供給する。また、フレームメモリ１１５は、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfoなどをフレームメモリ内のバッファへ格納するようにしても良い。
【００８１】
予測部１１６は、予測モード情報Pinfoを入力とし、予測モード情報Pinfoによって指定される予測方法により、予測モード情報PInfoによって指定される、フレームメモリ１１５に格納された復号画像を参照画像として予測画像Pを生成し、演算部１１４へ出力する。
【００８２】
図１１は、図１０の画像復号装置１００が備える逆変換部１１３の主な構成例を示すブロック図である。図１１に示されるように、逆変換部１１３は、スイッチ１２１、逆セカンダリ変換部１２２、および逆プライマリ変換部１２３から構成される。
【００８３】
スイッチ１２１は、変換係数Coeff_IQ、及び変換スキップ識別子ts_idxを入力とする。変換スキップ識別子ts_idxの値がNO_TS(=0)、または、1D_H_TS(=2)、または、1D_V_TS(=3)の場合（変換スキップを適用しない、あるいは、水平・垂直方向のいずれか一方に対して１次元変換スキップを適用することを示す場合）、逆セカンダリ変換部１２２へ変換係数Coeff_IQを出力する。また、変換スキップフラグts_idxの値が2D_TS(=1)の場合（２次元変換スキップを適用することを示す場合）、逆セカンダリ変換部１２２、及び逆プライマリ変換部１２３をスキップし、変換係数Coeff_IQを予測残差D'として出力する。
【００８４】
例えば、変換スキップ識別子ts_idxが2D_TS(=１)であって、逆変換部１１３へ入力する変換係数Coeff_IQが、４ｘ４行列Coeff_IQ = [[255, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]である場合、スイッチ１２１は、変換係数Coeff_IQを、予測残差D'として出力する。すなわち、予測残差D'=[[255, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]となる。従って、逆セカンダリ変換、及び逆プライマリ変換をスキップすることができる。特に、２次元変換スキップを適用するのが望ましい非ゼロ係数の数が少ない疎な残差信号に対して、逆変換の処理量の低減、及び符号化効率の向上した逆変換処理を行うことができる。
【００８５】
逆セカンダリ変換部１２２は、セカンダリ変換識別子st_idx、変換係数のスキャン方法を示すスキャン識別子scanIdx、及び変換係数Coeff_IQを入力とし、逆セカンダリ変換後の変換係数Coeff_IS（プライマリ変換係数ともいう）を導出し、逆プライマリ変換部１２３に供給する。より具体的には、セカンダリ変換識別子st_idxが、逆セカンダリ変換を適用することを示す場合(st_idx>0)、逆セカンダリ変換部１２２は、変換係数Coeff_IQに対して、セカンダリ変換識別子st_idxに対応する逆セカンダリ変換の処理を実行し、逆セカンダリ変換後の変換係数Coeff_ISを出力する。セカンダリ変換識別子st_idxが、逆セカンダリ変換を適用しないことを示す場合(st_idx==0)、逆セカンダリ変換をスキップし、変換係数Coeff_IQを逆セカンダリ変換後の変換係数Coeff_ISとして出力する。
【００８６】
逆プライマリ変換部１２３は、プライマリ水平変換指定フラグpt_hor_flag、プライマリ垂直変換指定フラグpt_ver_flag、予測モード情報PInfo、変換スキップ識別子ts_idx及び逆セカンダリ変換後の変換係数Coeff_ISを入力とする。逆プライマリ変換部１２３は、予測モード情報PInfo、変換スキップ識別子及び各プライマリ水平変換指定フラグpt_hor_flag、プライマリ垂直変換指定フラグpt_ver_flagで指定される逆プライマリ水平変換の行列IPThor(=PThorT)、及び逆プライマリ垂直変換の行列IPTver(=PTverT)を選択し、逆セカンダリ後の変換係数Coeff_IS(プライマリ変換係数Coeff_Pとも称する)に対して、選択された各方向の逆プライマリ変換の行列により、逆プライマリ水平変換、及び逆プライマリ垂直変換をして、逆プライマリ変換後の予測残差D'を導出し、出力する。
【００８７】
図１１に示されるように、逆プライマリ変換部１２３は、逆プライマリ変換選択部１３１、スイッチ１３２、逆プライマリ垂直変換部１３３、スイッチ１３４、および逆プライマリ水平変換部１３５を有する。
【００８８】
逆プライマリ変換選択部１３１は、プライマリ水平変換指定フラグpt_hor_flag、プライマリ垂直変換指定フラグpt_ver_flag、予測モード情報PInfo、及び変換スキップ識別子ts_idxを入力とし、予測モード情報PInfo、変換スキップ識別子ts_idx、プライマリ水平変換指定フラグpt_hor_flag及びプライマリ垂直変換指定フラグpt_ver_flagで指定される逆プライマリ水平変換の行列IPThor(=PThorT)、及び逆プライマリ垂直変換の行列IPTver(=PTverT)を、逆プライマリ変換選択部１３１の内部メモリ（不図示）より読み出し、それぞれ、逆プライマリ水平変換部１３５、逆プライマリ垂直変換部１３３に供給する。
【００８９】
より具体的には、適応プライマリ変換フラグapt_flag(ＣＵプライマリ変換フラグcu_pt_flagとも呼ぶ)が１（真）の場合、逆プライマリ変換選択部１３１は、例えば、図１の表に示される変換セット識別子TransfromSetIdx=0...2の３つの変換セットTransformSetから、水平方向及び垂直方向のそれぞれについて、プライマリ変換の候補となる直交変換を含む変換セットTransformSetを、図３に示されるモード情報と変換セットの対応表(イントラ予測モード情報)に基づいて選択する。なお、図３において、イントラ予測モード番号35をインター予測(Inter)、あるいはイントラブロックコピー(IBC;Intra Block Copy)を示すモードとして扱ってもよい。
【００９０】
例えば、以下の条件式（１０）のように、各変換セットTransformSet{H,V}に対して、対応する変換セットTransformSetを指定する変換セット識別子TransformSetIdxを設定するように実施される。
【００９１】
if (apt_flag)
TransformSetH = LUT_IntraModeToTransformSet [ IntraMode ] [ H(=0) ]
TransformSetV = LUT_IntraModeToTransformSet [ IntraMode ] [ V(=1) ]
else // apt_flag==0
TransformSetH = TransformSetV = 3 (所定値)
・・・（１０）
【００９２】
ここで、TransformSetHは、プライマリ水平変換PThorの変換セットを示し、TransormSetVは、プライマリ垂直変換PTverの変換セットを示し、ルックアップテーブルLUT_IntraModeToTransformSetは、図３の対応表である。ルックアップテーブルLUT_IntraModeToTransformSet[][]の１番目の配列は、イントラ予測モードIntraModeを引数とし、２番目の配列は、{H=0, V=1}を引数とする。例えば、イントラ予測モード番号9 (IntraMode==9)の場合、プライマリ水平変換PThorの変換セットTransformSetH (プライマリ水平変換セットとも呼ぶ)として、図１の表に示される変換セット識別子TransformSetIdx=0の変換セットが選択され、プライマリ垂直変換PTverの変換セットTransformSetV(プライマリ垂直変換セットとも呼ぶ）として、図１に示される変換セット識別子TransformSetIdx=2の変換セットが選択される。また、適応プライマリ変換フラグamt_flagが０（偽）の場合、逆プライマリ変換選択部１３１は、図１の表に示される変換セット識別子TransfromSetIdx=3(所定値)の変換セットTransformSetを、プライマリ変換の候補となる直交変換を含む変換セットとして選択する。
【００９３】
さらに、逆プライマリ変換選択部１３１は、各水平/垂直方向毎に、選択された変換セットTransformSetから、逆プライマリ変換に用いる直交変換を、おのおの、プライマリ水平変換指定フラグpt_hor_flag、及びプライマリ垂直変換指定フラグpt_ver_flagによって選択する。
【００９４】
例えば、以下の条件式（１１）のように、プライマリ水平変換指定フラグpt_hor_flagが−１の場合、１次元変換スキップに対応する行列IDTを選択し、プライマリ水平変換指定フラグpt_hor_flagが−１以外の場合、プライマリ水平変換セットTransformSetHとプライマリ水平変換指定フラグpt_hor_flagを引数として、図１に示される変換セットの定義表(LUT_TransformSetToTransformType)から導出する。
【００９５】
if ( pt_hor_flag!=-1)
IPThor = LUT_TransformSetToTransformType [ TransformSetH ] [ pt_hor_flag ]
else
IPThor = IDT
・・・（１１）
【００９６】
例えば、イントラ予測モード番号9(IntraMode==9）の場合の、逆プライマリ水平変換を例にすると、プライマリ水平変換セットTransformSetHの変換セット識別子の値は0であるため、図１の変換セット定義表LUT_TransformSetToTransformType上で変換セット識別子TransformSetIdx==0である変換セットから逆プライマリ水平変換が選択される。すなわち、プライマリ水平変換指定フラグpt_hor_flag==-1の場合、逆プライマリ水平変換IPThorとしてIDTが選択され、プライマリ水平変換指定フラグpt_hor_flag==0の場合、逆プライマリ水平変換IPThorとして、DST-VIIが選択され、プライマリ水平変換指定フラグpt_hor_flagが１の場合、逆プライマリ水平変換IPThorとして、DCT-VIIIが選択される。
【００９７】
同様にして、逆プライマリ垂直変換についても、以下の条件式（１２）のように、プライマリ垂直変換指定フラグpt_ver_flagが-1の場合、１次元変換スキップに対応する行列IDT（単位行列）を選択し、プライマリ垂直変換指定フラグpt_ver_flagが-1以外の場合、プライマリ垂直変換セットTransformSetVとプライマリ垂直変換指定フラグpt_ver_flagを引数として、図１に示される変換セットの定義表(LUT_TransformSetToTransformType)から導出する。
【００９８】
if ( pt_ver_flag!=-1)
IPTver = LUT_TransformSetToTransformType [ TrasnformSetV ] [ pt_ver_flag ]
else
IPTver = IDT
・・・（１２）
【００９９】
なお、上述の式（１１）および式（１２）では、pt_{hor,ver}_flag==-1の場合、条件分岐によりIDTを設定しているが、ルックアップテーブルLUT_TransformSetToTransformType[][]を参照して設定するようにしてもよい。この場合、ルックアップテーブルLUT_TransformSetToTransformType[ 0...3 ][ - 1]の要素の値をIDTとすればよい。なお、この例では、pt_{hor, ver}_flag==-1は1次元変換スキップを表す値としているが、値は実施可能な範囲で自由に変更可能である。また、図１の変換セット識別子とpt_{hor,ver}_flagの値の組み合わせは、実施可能な範囲で自由に変更してよい。例えば、pt_{hor,ver}_flag==1の場合に、変換セット識別子の値によらず、DST-VIIを設定し、pt_{hor,ver}_flag==0の場合に、変換セット識別子0…3の順に、それぞれ、DCT-VIII,DST-I, DCT-V, DST-VIIを設定してもよい。また、変換セット識別子0…2の順は、実施可能な範囲で自由に入れ替えてもよい。また、逆プライマリ変換選択部１３１は、イントラ予測モード情報IPinfoの代わりに、動き予測情報MVinfoとプライマリ水平変換指定フラグpt_hor_flagとプライマリ垂直変換指定フラグpt_ver_flagに応じて、逆プライマリ水平変換IPThor、及び逆プライマリ垂直変換IPTverを選択してもよい。
【０１００】
その後、逆プライマリ変換選択部１３１は、逆プライマリ水平変換IPThor、及び逆プライマリ垂直変換IPTverに対応する直交変換の行列を、逆プライマリ変換部１２３が保持するバッファ（不図示）より読み出し、逆プライマリ垂直変換、逆プライマリ水平変換へ対応する行列を供給する。
【０１０１】
スイッチ１３２は、逆セカンダリ変換後の変換係数Coeff_IS（プライマリ変換係数Coeff_Pとも表記する）、及び変換スキップ識別子ts_idxを入力とする。変換スキップ識別子ts_idxの値が1D_V_TS(=3)、すなわち、垂直方向の１次元変換をスキップすること(ts_idx==1D_V_TS)（（逆）プライマリ垂直変換をスキップすること）を示す場合、スイッチ１３２は、逆プライマリ垂直変換部１３３の処理をスキップし、プライマリ変換係数Coeff_ISを逆プライマリ垂直変換後の変換係数Coeff_IPverとして外部へ出力する。また、変換スキップ識別子ts_idxの値が1D_V_TS(=3)以外の場合（ts_idx!=1D_V_TS）（(逆)プライマリ垂直変換をスキップしないことを示す場合）、スイッチ１３２はプライマリ変換係数Coeff_ISを外部へ出力する。
【０１０２】
逆プライマリ垂直変換部１３３は、変換ブロック毎に、逆セカンダリ変換後の変換係数Coeff_ISと逆プライマリ垂直変換IPTverの行列を入力とし、以下の式（１３）に示す通り行列演算を行い、その結果を逆プライマリ垂直変換後の変換係数Coeff_IPverとして出力する。なお、逆プライマリ垂直変換IPTverは、変換基底を列ベクトルとして有するプライマリ垂直変換PTverの逆変換であり、前記プライマリ垂直変換PTverを転置した行列PTverTで表される。
【０１０３】
Coeff_IPver = (IPTver・Coeff_IS) >> s1
= (PTverT・Coeff_IS) >> s1
・・・（１３）
【０１０４】
ここで、演算子"・"は行列積(inner product)を表し、演算子"T"は、転置行列の操作を表し、演算子">>"は要素毎に右シフト演算を行う操作を表す。式（１３）によれば、変換係数Coeff_IPverの各値は、変換係数Coeff_ISとプライマリ垂直変換の転置行列PTverT(=IPTver)との行列積の要素毎に対して、所定のスケーリングパラメータs1によって右シフト演算することで得られる。なお、スケーリングパラメータs1は、IPTver・Coeff_ISの行列演算結果を、中間バッファのビット深度に収まるよう正規化するために用いる。スケーリングパラメータs1の値は、例えば、以下の式（１４）に示すように中間バッファのビット深度BitDepthbuffと、IPTver・Coeff_ISの行列演算のビット深度のワーストケースMaxBitDepth(IPTver・Coeff_IS)から定まる。
【０１０５】
s1 = max(0, MaxBitDepth(IPTver・Coeff_IS) - BitDpethbuff)
・・・（１４）
【０１０６】
例えば、IPTver・Coeff_ISの値域が、-2**22乃至2**22 - 1である場合、すなわち、MaxBitDepth(IPTver・Coeff_IS)のビット深度が23bitであって、中間バッファに格納可能な値の値域が、-2**15乃至2**15 - 1である場合、すなわち中間バッファのビット深度が16bitの場合、スケーリングパラメータs1は、s1 = 7bit( = max(0, 23-16) = max(0, 7))となる。
【０１０７】
また、MaxBitDepth(IPTver・Coeff_IS)のビット深度が23bitであって、中間バッファに格納可能な値の値域が、-2**31乃至2**31 - 1である場合、すなわち、中間バッファのビット深度が32bitの場合、スケーリングパラメータs1は、s1 = 0bit(=max(0, 23-32)=max(0,-9))となる。スケーリングパラメータs1が0であるということは、中間バッファのビット深度の値が十分に大きいため、IPTver・Coeff_ISの行列積の各要素値を正規化せずとも、中間バッファにオーバフローせずに格納することが出来ることを表す。なお、スケーリングパラメータs1は、IPTver・Coeff_ISの値域が既知であると仮定して、予め定めた固定値としてもよい。
【０１０８】
また、上述の式（１３）において、右シフト演算によるクリップ誤差を小さくするために、行列積の後、所定のオフセット値o1を要素毎に加算するようにしてもよい。このとき、オフセット値o1は、スケーリングパラメータs1を用いて、以下の式（１５）により表される。
【０１０９】
o1 = ( s1>0 ? 1<<(s1-1) : 0 )
・・・（１５）
【０１１０】
スイッチ１３４は、逆プライマリ垂直変換後の変換係数Coeff_IPver、及び変換スキップ識別子ts_idxを入力とする。変換スキップ識別子ts_idxの値が1D_H_TS(=2)、すなわち、水平方向の１次元変換をスキップすること(ts_idx==1D_H_TS)（（逆）プライマリ水平変換をスキップすること）を示す場合、スイッチ１３４は、逆プライマリ水平変換部１３５をスキップし、逆プライマリ垂直変換後の変換係数Coeff_IPverを予測残差D'として外部へ出力する。また、変換スキップ識別子ts_idxの値が1D_H_TS(=2)以外の場合（ts_idx!=1D_H_TS）（(逆)プライマリ水平変換をスキップしないことを示す場合）、スイッチ１３４は、逆プライマリ垂直変換後の変換係数Coeff_IPverを逆プライマリ水平変換部１３５へ出力する。
【０１１１】
逆プライマリ水平変換部１３５は、変換ブロック毎に、逆プライマリ垂直変換後の変換係数Coeff_IPverと逆プライマリ水平変換IPThorの行列を入力とし、以下の式（１６）に示す通り行列演算を行い、その結果を予測残差D'として出力する。なお、逆プライマリ水平変換IPThorは、変換基底を行ベクトルとして有するプライマリ水平変換PThorの逆変換であり、前記プライマリ水平変換PThorを転置した行列PThorTで表される。
【０１１２】
D' = (Coeff_IPver・IPThor) >> s2
= (Coeff_IPver・PThorT)  >> s2
・・・（１６）
【０１１３】
ここで、演算子"・"は行列積(inner product)を表し、演算子"T"は、転置行列の操作を表し、演算子">>"は要素毎に右シフト演算を行う操作を表す。この式（１６）によれば、予測残差D'の各値は、変換係数Coeff_IPverとプライマリ水平変換の転置行列PThorT(=IPTver)との行列積の要素毎に対して、所定のスケーリングパラメータs2によって右シフト演算することで得られる。なお、スケーリングパラメータs2は、Coeff_IPver・IPThorの行列演算結果を、所望のビット深度に収まるよう正規化するために用いる。スケーリングパラメータs2の値は、所望のビット深度BitDepthoutと、Coeff_IPver・IPThorの行列演算のビット深度のワーストケースMaxBitDepth(Coeff_IPver・IPThor)から、以下の式（１７）により定まる。
【０１１４】
s2 = max(0, MaxBitDepth(Coeff_IPver・IPThor) - BitDpethout)
・・・（１７）
【０１１５】
例えば、Coeff_IPver・IPThorの値域が、-2**22 乃至 2**22 - 1である場合、すなわち、MaxBitDepth(Coeff_IPver・IPThor)のビット深度が23bitであって、所望ビット深度のとき取りえる値の値域が、-2**15乃至2**15 - 1である場合、すなわち所望ビット深度が16bitの場合、スケーリングパラメータs2は、s2 = 7bit( = max(0, 23-16) = max(0, 7))となる。
【０１１６】
また、MaxBitDepth(Coeff_IPver・IPThor)のビット深度が23bitであって、所望ビット深度のとき取りえる値の値域が、-2**31乃至2**31 - 1である場合、すなわち、所望ビット深度が32bitの場合、スケーリングパラメータs2は、s2 = 0bit(=max(0, 23-32)=max(0,-9))となる。スケーリングパラメータs2が0であるということは、所望ビット深度の値が十分に大きいため、Coeff_IPver・IPThorの行列積の各要素値が正規化せずとも、所望ビット深度内に収まることを表す。
【０１１７】
なお、式（１６）において、右シフト演算によるクリップ誤差を小さくするために、行列積の後、所定のオフセット値o2を要素毎に加算するようにしてもよい。このとき、オフセット値o2は、スケーリングパラメータs2を用いて、以下の式（１８）により表される。
【０１１８】
O2 = ( s2>0 ? 1<<(s2-1) : 0 )
・・・（１８）
【０１１９】
以上のように、逆プライマリ変換部１２３は、水平方向、または垂直方向の１次元変換をスキップことが望ましい残差信号に対して、逆プライマリ変換の処理量の低減、及びエナジーコンパクションの低下を防止し、符号化効率の向上した逆プライマリ変換処理を行うことができる。
【０１２０】
特に、水平方向に信号の連続性が急激に変化するステップエッジの特性を持つ残差信号に対しては、水平方向の１次元変換をスキップし、垂直方向に１次元変換をすることで、２次元直交変換をする場合と比較して、垂直方向の周波数成分の低域に非ゼロ係数を効率よく集中させることができる。すなわち、エナジーコンパクションを高めることができるため、符号化効率の向上を実現させることができる。
【０１２１】
同様に、垂直方向に信号の連続性が急激に変化するステップエッジの特性を持つ残差信号に対しては、垂直方向の１次元変換をスキップし、水平方向に１次元変換をすることで、２次元直交変換をする場合と比較して、水平方向の周波数成分の低域に非ゼロ係数を効率よく集中させることができる。すなわち、エナジーコンパクションを高めることができるため、符号化効率の向上を実現させることができる。
【０１２２】
＜画像復号処理の流れ＞
次に、以上のような画像復号装置１００により実行される各処理の流れについて説明する。最初に、図１２のフローチャートを参照して、画像復号処理の流れの例を説明する。
【０１２３】
画像復号処理が開始されると、ステップＳ１０１において、復号部１１１は、画像復号装置１００に供給されるビットストリーム（符号化データ）を復号し、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、量子化変換係数レベルlevel等の情報を得る。
【０１２４】
ステップＳ１０２において、逆量子化部１１２は、ステップＳ１０１の処理により得られた量子化変換係数レベルlevelを逆量子化して変換係数Coeff_IQを導出する。この逆量子化は、後述する画像符号化処理において行われる量子化の逆処理であり、その画像符号化処理において行われる逆量子化と同様の処理である。
【０１２５】
ステップＳ１０３において、逆変換部１１３は、ステップＳ１０２の処理により得られた変換係数Coeff_IQを逆変換し、予測残差Ｄ'を導出する。この逆変換は、後述する画像符号化処理において行われる変換処理の逆処理であり、その画像符号化処理において行われる逆変換と同様の処理である。
【０１２６】
ステップＳ１０４において、予測部１１６は、予測モード情報PInfoに基づいて、符号化の際の予測と同一の予測モードで予測を行い、予測画像生成する。
【０１２７】
ステップＳ１０５において、演算部１１４は、ステップＳ１０３の処理により得られた予測残差Ｄ'に、ステップＳ１０４の処理により得られた予測画像を加算し、復号画像を得る。
【０１２８】
ステップＳ１０６において、演算部１１４は、ステップＳ１０５の処理により得られた復号画像を画像復号装置１００の外部に出力する。
【０１２９】
ステップＳ１０７において、フレームメモリ１１５は、ステップＳ１０５の処理により得られた復号画像を記憶する。
【０１３０】
ステップＳ１０７の処理が終了すると、画像復号処理が終了される。
【０１３１】
＜逆変換の処理の流れ＞
次に、図１２のステップＳ１０３において実行される逆変換処理の流れの例を、図１３のフローチャートを参照して説明する。逆変換処理が開始されると、スイッチ１２１は、ステップＳ１２１において、変換スキップ識別子ts_idxが2D_TS（２次元変換スキップのモード）であるか、または、変換量子化バイパスフラグtransquant_bypass_flagが１（真）であるかを判定する。変換スキップ識別子ts_idxが2D_TSである、または、変換量子化バイパスフラグが１（真）であると判定された場合、スイッチ１２１により変換係数Coeff_IQが予測残差D'として外部へ出力（演算部１１４に供給）され、逆変換処理が終了し、処理は図１２に戻る。
【０１３２】
また、ステップＳ１２１において、変換スキップ識別子ts_idxが2D_TSでない（２次元変換スキップ以外のモード）、かつ、変換量子化バイパスフラグが０（偽）であると判定された場合、スイッチ１２１により変換係数Coeff_IQが逆セカンダリ変換部１２２に供給され、処理はステップＳ１２２に進む。
【０１３３】
ステップＳ１２２において、逆セカンダリ変換部１２２は、入力された変換係数Coeff_IQ'に対して、セカンダリ変換識別子st_idxに基づいて、逆セカンダリ変換を行い、プライマリ変換係数Coeff_ISを導出し、出力する。
【０１３４】
ステップＳ１２３において、逆プライマリ変換選択部１３１は、逆プライマリ変換選択処理を行い、プライマリ水平変換指定フラグpt_hor_flag、プライマリ垂直変換指定フラグpt_ver_flag、予測モード情報PInfo、及び変換スキップ識別子ts_idxを参照して、逆プライマリ水平変換IPThor、及び逆プライマリ垂直変換IPTverを選択する。
【０１３５】
ステップＳ１２４において、スイッチ１３２は、変換スキップ識別子ts_idxが1D_V_TS（垂直方向の１次元変換スキップのモード）であるか否か（ts_idx==1D_V_TS）を判定する。変換スキップ識別子ts_idxが1D_V_TSでない場合、処理はステップＳ１２５に進む。
【０１３６】
ステップＳ１２５において、逆プライマリ垂直変換部１３３は、変換ブロック毎に、逆セカンダリ変換後の変換係数Coeff_ISと逆プライマリ垂直変換IPTverの行列を入力とし、行列演算を行い、その結果を逆プライマリ垂直変換後の変換係数Coeff_IPverとして出力する。ステップＳ１２５の処理が終了すると処理はステップＳ１２６に進む。
【０１３７】
また、ステップＳ１２４において、変換スキップ識別子ts_idxが1D_V_TSの場合、ステップＳ１２５の処理が省略され、処理はステップＳ１２６に進む。
【０１３８】
ステップＳ１２６において、スイッチ１３４は、変換スキップ識別子ts_idxが1D_H_TS（水平方向の１次元変換スキップのモード）であるか否か（ts_idx==1D_H_TS）を判定する。変換スキップ識別子ts_idxが1D_H_TSでないと判定された場合、処理はステップＳ１２７に進む。
【０１３９】
ステップＳ１２７において、逆プライマリ水平変換部１３５は、変換ブロック毎に、逆プライマリ垂直変換後の変換係数Coeff_IPverと逆プライマリ水平変換IPThorの行列を入力とし、行列演算を行い、その結果を予測残差D'として出力する。ステップＳ１２７の処理が終了すると逆変換処理が終了し、処理は図１２に戻る。
【０１４０】
また、ステップＳ１２６において、変換スキップ識別子ts_idxが1D_H_TSであると判定された場合、ステップＳ１２７の処理が省略され、逆変換処理が終了し、処理は図１２に戻る。
【０１４１】
以上において、逆プライマリ変換部１２３の処理について説明したが、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。例えば、ステップＳ１２４およびステップＳ１２６の処理を省略し、ステップＳ１２３において変換スキップ識別子ts_idxが1D_V_TS(垂直方向の１次元変換スキップ)であるか否かを判定するようにしてもよい。そして、ステップＳ１２３において変換スキップ識別子ts_idxが1D_V_TSであると判定された場合、単位行列を逆プライマリ垂直変換IPTverとして選択し、ステップＳ１２５の処理が実行されるようにしてもよい。また、ステップＳ１２３において変換スキップ識別子ts_idxが1D_H_TSであると判定された場合、単位行列を逆プライマリ水平変換IPThorとして選択し、ステップＳ１２７の処理が実行されるようにしてもよい。
【０１４２】
＜逆プライマリ変換選択処理の流れ＞
次に、図１４のフローチャートを参照して、図１３のステップＳ１２３において実行される逆プライマリ変換選択処理の流れの例を説明する。
【０１４３】
逆プライマリ変換選択処理が開始されると、ステップＳ１４１において、逆プライマリ変換選択部１３１は、適応プライマリ変換フラグapt_flagが１（真）であるか否かを判定する。適応プライマリ変換フラグapt_flagが１（真）であると判定された場合、処理はステップＳ１４２に進む。ステップＳ１４２において、逆プライマリ変換選択部１３１は、予測モード情報PInfoに基づいて、逆プライマリ垂直変換および逆プライマリ水平変換のそれぞれについて、上述の式（１０）に従って変換セットを選択する。ステップＳ１４２の処理が終了すると、処理はステップＳ１４４に進む。
【０１４４】
また、ステップＳ１４１において、適応プライマリ変換フラグapt_flagが０（偽）であると判定された場合、処理はステップＳ１４３に進む。ステップＳ１４３において、逆プライマリ変換選択部１３１は、所定の変換セットを選択する。ステップＳ１４３の処理が終了すると、処理はステップＳ１４４に進む。
【０１４５】
ステップＳ１４４において、逆プライマリ変換選択部１３１は、水平変換セット識別子TransformSetH、及びプライマリ水平変換指定フラグpt_hor_flagを参照して、上述の式（１１）に従って、逆プライマリ水平変換IPThorとして適用する直交変換を選択する。
【０１４６】
ステップＳ１４５において、逆プライマリ変換選択部１３１は、垂直変換セット識別子TransformSetV、及びプライマリ垂直変換指定フラグpt_ver_flagを参照して、上述の式（１２）に従って、逆プライマリ垂直変換IPTverとして適用する直交変換を選択する。
【０１４７】
ステップＳ１４５の処理が終了すると、逆プライマリ変換選択処理が終了し、処理は図１３に戻る。
【０１４８】
なお、この逆プライマリ変換選択処理は、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。例えば、ステップＳ１４４の処理において、変換スキップ識別子ts_idx==TS_1D_H_TSの場合(水平方向の１次元変換をスキップする場合)、明示的に１次元変換スキップを示す直交変換IDT（単位行列）が選択されないようにしてもよい。同様にして、ステップＳ１４５の処理において、変換スキップ識別子ts_idx==TS_1D_V_TSの場合(垂直方向の１次元変換をスキップする場合)、明示的に１次元変換スキップを示す直交変換IDT（単位行列）が選択されないようにしてもよい。
【０１４９】
以上のように各処理を実行することにより、画像復号装置１００は、変換スキップを適用するのが望ましい残差信号に対して、逆変換の処理量の低減、及びエナジーコンパクションの低下を抑制することができ、符号化効率の向上を実現することができる。
【０１５０】
より具体的には、逆変換部１１３は、水平方向または垂直方向の１次元変換をスキップすることが望ましい残差信号に対して、逆プライマリ変換の処理量の低減やエナジーコンパクションの低下を抑制することができ、符号化効率の向上を実現することができる。特に、水平方向に信号の連続性が急激に変化するステップエッジの特性を持つ残差信号に対しては、水平方向の１次元変換をスキップし、垂直方向に１次元変換をすることで、２次元直交変換をする場合と比較して、垂直方向の周波数成分の低域に非ゼロ係数を効率よく集中させることができる。すなわち、エナジーコンパクションを高めることができるため、符号化効率の向上を実現させることができる。同様に、垂直方向に信号の連続性が急激に変化するステップエッジの特性を持つ残差信号に対しては、垂直方向の１次元変換をスキップし、水平方向に１次元変換をすることで、２次元直交変換をする場合と比較して、水平方向の周波数成分の低域に非ゼロ係数を効率よく集中させることができる。すなわち、エナジーコンパクションを高めることができるため、符号化効率の向上を実現させることができる。
【０１５１】
＜２．第２の実施の形態＞
＜プライマリ変換識別子の復号＞
JEM3では、適応プライマリ変換フラグapt_flagがCU単位(=PU単位=TU単位)で復号され、プライマリ変換識別子pt_idx及び変換スキップフラグts_flagは、CUに含まれる各変換ブロック単位で復号される。また、プライマリ変換識別子pt_idxより、下記の式（１９）によって、プライマリ水平変換指定フラグpt_hor_flag及びプライマリ垂直変換指定フラグpt_ver_flagが導出される。
【０１５２】
pt_hor_flag = pt_idx & 0x01
pt_ver_flag = pt_idx >> 1 (= ( pt_idx & 0x10 )>>1)
・・・（１９）
【０１５３】
すなわち、プライマリ変換識別子pt_idxは、２ビットの値をとり、上位1ビットがプライマリ垂直変換指定フラグpt_ver_flagに相当し、下位１ビットがプライマリ水平変換指定フラグpt_hor_flagに相当する。なお、符号化側においては、このプライマリ変換識別子pt_idxの導出は、以下の式（２０）のように行われる。
【０１５４】
pt_idx = ((pt_ver_flag)<<1) + pt_hor_flag
・・・（２０）
【０１５５】
従って、従来技術JEM3に対して、第１の実施の形態において説明した通り下記（１）乃至（３）の変更を加えた場合、変換ブロック単位で復号された変換スキップ識別子ts_idxが、1D_H_TSの場合、プライマリ水平変換指定フラグpt_hor_flagは使用されないため、この情報を符号化／復号するのは冗長である。また、変換スキップ識別子ts_idxが1D_V_TSを示す場合、プライマリ垂直変換指定フラグpt_ver_flagは使用されないため、この情報を符号化／復号するのは冗長である。
【０１５６】
（１）変換スキップフラグts_flagを変換スキップ識別子ts_idxへ拡張する。
（２）変換スキップ識別子ts_idxが1D_H_TSの時、逆セカンダリ変換、及び逆プライマリ水平変換をスキップする。
（３）変換スキップ識別子ts_idxが1D_V_TSの時、逆セカンダリ変換、及び逆プライマリ垂直変換をスキップする。
【０１５７】
従って、プライマリ変換識別子pt_idxを効率良く符号化／復号するために、下記のような変更を加えるようにしてもよい。
【０１５８】
（１）変換スキップ識別子ts_idx = NO_TSの場合、復号側では、上述の式（１９）の通り、プライマリ変換識別子pt_idxから、プライマリ水平変換指定フラグpt_hor_flag、及びプライマリ垂直変換指定フラグpt_ver_flagを導出するようにする。符号化側では、式（２０）の通り、プライマリ水平変換指定フラグpt_hor_flag及びプライマリ垂直変換指定フラグpt_ver_flagよりプライマリ変換識別子pt_idxを導出するようにする。
【０１５９】
（２）変換スキップ識別子ts_idxが1D_H_TSの時、復号側では、以下の式（２１）の通り、プライマリ垂直変換指定フラグpt_ver_flag = pt_idx、プライマリ水平変換指定フラグpt_hor_flag = - 1(所定値)として導出するようにする。符号化側では、以下の式（２２）の通り、プライマリ変換識別子pt_idx = pt_ver_flagとして導出するようにする。
【０１６０】
pt_ver_flag = pt_idx
pt_hor_flag = -1 (所定値)
・・・（２１）
pt_idx = pt_ver_flag
・・・（２２）
【０１６１】
（３）変換スキップ識別子ts_idxが1D_V_TSの時、復号側では、以下の式（２３）の通り、プライマリ水平変換指定フラグpt_hor_flag = pt_idx、プライマリ垂直変換指定フラグpt_ver_flag = - 1(所定値)として導出するようにする。符号化側では、以下の式（２４）の通り、プライマリ変換識別子pt_idx = pt_hor_flagとして導出するようにする。
【０１６２】
pt_hor_flag = pt_idx
pt_ver_flag = -1 (所定値)
・・・（２３）
pt_idx = pt_hor_flag
・・・（２４）
【０１６３】
（４）変換スキップ識別子ts_idxが2D_TSの時、復号側では、以下の式（２５）の通り、プライマリ水平変換指定フラグpt_hor_flag=-1(所定値)、及びプライマリ垂直変換指定フラグpt_ver_flag=-1(所定値)として設定されるようにする。符号化側では、プライマリ変換識別子pt_idxの符号化は省略されるようにする。
pt_hor_flag = -1 (所定値)
pt_ver_flag = -1 (所定値)
・・・（２５）
【０１６４】
上記の変更をすることで、変換スキップ識別子ts_idxが1D_H_TS、または1D_V_TSの場合、プライマリ変換識別子pt_idxは、1ビットのbin列として、算術復号／算術符号化されるため、2ビットのbin列として算術復号／算術符号化する場合より、復号/符号化対象となるbin列を削減することができる。従って、符号量の増大を抑制することでき、符号化効率の向上を実現することができる。
【０１６５】
また、セカンダリ変換に関して、セカンダリ変換は、２次元直交変換が適用された変換係数のエナジーコンパクションを向上させるために設計された変換である。従って、２次元変換スキップや１次元変換スキップが適用された変換係数に対して、セカンダリ変換を適用することは逆に符号化効率を低下させる可能性がある。そこで、変換スキップ識別子ts_idxが2D_TS、1D_H_TS、または1D_V_TSの場合、逆セカンダリ変換をスキップするように変更する。この場合、(逆)セカンダリ変換の制御パラメータであるセカンダリ変換識別子st_idxを符号化／復号するのは冗長である。
【０１６６】
そこで、変換スキップ識別子ts_idxが2D_TS、1D_H_TS、または1D_V_TSの場合、セカンダリ変換識別子st_idxの復号を省略し、かつ、セカンダリ変換識別子st_idxの値を、セカンダリ変換をしないことを示す値（０）へ推定するように変更してもよい。このようにすることで、セカンダリ変換識別子st_idxの復号に係る処理量の増大を抑制することができる。また、２次元変換スキップ、または１次元変換スキップが適用された変換係数に対して、セカンダリ変換を適用しないようにするため、符号化効率の低下を防止することができる。
【０１６７】
＜変換スキップ識別子ts_idxの復号＞
図１５は、復号部１１１の、変換スキップ識別子ts_idxの復号に関する主な構成例を示すブロック図である。図１５に示されるように、この場合の復号部１１１は、変換スキップ有効フラグ復号部１５１、最大変換スキップブロックサイズ復号部１５２、変換量子化バイパスフラグ復号部１５３、および変換スキップ識別子復号部１５４を有する。
【０１６８】
変換スキップ有効フラグ復号部１５１は、変換スキップ有効フラグts_enabled_flagの復号に関する処理を行う。最大変換スキップブロックサイズ復号部１５２は、最大変換スキップブロックサイズMaxTSSizeの復号に関する処理を行う。変換量子化バイパスフラグ復号部１５３は、変換量子化バイパスフラグtransquant_bypass_flagの復号に関する処理を行う。変換スキップ識別子復号部１５４は、変換スキップ識別子ts_idxの復号に関する処理を行う。
【０１６９】
このような復号部１１１により図１２のステップＳ１０１において実行される、変換スキップ識別子ts_idxに関する復号処理の流れの例を、図１６のフローチャートを参照して説明する。
【０１７０】
復号処理が開始されると、変換スキップ有効フラグ復号部１５１は、ステップＳ１６１において、符号化データ#1のビット列から変換スキップ有効フラグts_enabled_flagを復号し、ヘッダ情報Hinfoの一部として出力する。
【０１７１】
ステップＳ１６２において、最大変換スキップブロックサイズ復号部１５２は、ヘッダ情報Hinfoに含まれる変換スキップ有効フラグts_enabled_flagが、１（真）であるか否かを判定する。変換スキップ有効フラグts_enabled_flagが１であると判定された場合、処理はステップＳ１６３に進む。
【０１７２】
ステップＳ１６３において、最大変換スキップブロックサイズ復号部１５２は、符号化データ#1のビット列から最大変換スキップブロックサイズMaxTSSize (あるいは、2を底とする対数値log2MaxTSSize)を復号する。ステップＳ１６３の処理が終了すると、処理はステップＳ１６４に進む。また、ステップＳ１６２において、変換スキップ有効フラグts_enabled_flagが０と判定された場合、ステップＳ１６３の処理が省略され、処理はステップＳ１６４に進む。
【０１７３】
ステップＳ１６４において、変換量子化バイパスフラグ復号部１５３は、符号化データ#1のビット列から変換量子化バイパスフラグtransquant_bypass_flagを復号し、変換情報Tinfoの一部として出力する。
【０１７４】
ステップＳ１６５において、変換スキップ識別子復号部１５４は、変換情報Tinfoに含まれる変換量子化バイパスフラグtransquant_bypass_flagが１（真）であるか否かを判定する。変換量子化バイパスフラグtransquant_bypass_flagが１であると判定された場合、処理はステップＳ１６９に進む。また、ステップＳ１６５において、変換量子化バイパスフラグtransquant_bypass_flagが０であると判定された場合、処理はステップＳ１６６に進む。
【０１７５】
ステップＳ１６６において、変換スキップ識別子復号部１５４は、ヘッダ情報HInfoに含まれる変換スキップ有効フラグts_enabled_flagが１（真）であるか否かを判定する。変換スキップ有効フラグts_enabled_flagが０であると判定された場合、処理はステップＳ１６９に進む。また、ステップＳ１６６において、変換スキップ有効フラグts_enabled_flagが１であると判定された場合、処理はステップＳ１６７に進む。
【０１７６】
ステップＳ１６７において、変換スキップ識別子復号部１５４は、処理対象の変換ブロックのサイズTBSizeが最大変換スキップブロックサイズMaxTSSize以下であるか否か（条件式(TBSize<=MaxTSSize)の論理値が１（真）であるか否か）を判定する。なお、条件式(TBSize<=MaxTSSize)において、TBSizeは、以下の式（２６）により導出する。式（２６）の場合、変換ブロックの縦サイズTBHSize、横サイズTBWSizeのうち大きい値をTBSizeとする。
【０１７７】
TBSize = max(TBWSize, TBHSize)
・・・（２６）
【０１７８】
式（２６）の代わりに、以下の式（２７）を用いるようにしてもよい。式（２７）の場合、変換ブロックの縦サイズTBHSizeと横サイズTBWSizeの乗算した値をTBSizeとする。
【０１７９】
TBSize = TBWSize * TBHSize
・・・（２７）
【０１８０】
式（２６）および式（２７）において、TBSize、TBWSize、TBHSizeを、2を底とする対数値log2TBSize、log2TBWSize、log2TBHSizeに置き換えてもよい。この場合、式（２６）は以下の式（２８）に置き換え、式（２７）は以下の式（２９）へ置き換える。なお、対数値を用いる場合は、上述の条件式(TBSize<=MaxTSSize)のTBSizeおよび最大変換スキップブロックサイズMaxTSSizeは、それぞれ対応する対数値log2TBSize、log2MaxTSSizeへ置き換えるものとする。
【０１８１】
log2TBSize = max(log2TBWSize, log2TBHSize)
・・・（２８）
log2TBSize = log2TBWSize + log2TBHSize
・・・（２９）
【０１８２】
ステップＳ１６７において、処理対象の変換ブロックのサイズTBSizeが最大変換スキップブロックサイズMaxTSSizeより大きい（条件式(TBSize<=MaxTSSize)の論理値が０（偽）である）と判定された場合、処理はステップＳ１６９に進む。また、ステップＳ１６７において、処理対象の変換ブロックのサイズTBSizeが最大変換スキップブロックサイズMaxTSSize以下である（条件式(TBSize<=MaxTSSize)の論理値が１（真）である）と判定された場合、処理はステップＳ１６８に進む。
【０１８３】
ステップＳ１６８において、変換スキップ識別子復号部１５４は、符号化データ#1のビット列から変換スキップ識別子ts_idxを復号し、変換情報Tinfoの一部として出力する。ステップＳ１６８の処理が終了すると、変換スキップ識別子に関する復号処理が終了し、処理は図１２に戻る。
【０１８４】
また、ステップＳ１６９において、変換スキップ識別子復号部１５４は、変換スキップ識別子ts_idxの復号を省略し、ts_idxの値がNO_TS(=0)である推定し、その値をts_idxへ設定する。すなわち、ts_idx = NO_TSとなる。ステップＳ１６９の処理が終了すると、変換スキップ識別子に関する復号処理が終了し、処理は図１２に戻る。
【０１８５】
ステップＳ１６５乃至ステップＳ１６９の各処理の疑似コードを記載したシンタックステーブルを図１７に示す。図１７において符号SYN11を付したif文の条件式（上から２行目）は、下記の条件式（３０）のように表すことができ、これはすなわち、図１６を参照して説明したステップＳ１６５乃至ステップＳ１６７の分岐判定と等価である。また、図１６のステップＳ１６８の処理は、図１７において符号SYN12を付したシンタックスts_flagの復号(符号化)処理と対応する。
【０１８６】
論理値 = ( ts_enabled_flag  &&
!transquant_bypass_flag  &&
( log2TBSize  <=  log2MaxTSSize ))
・・・（３０）
【０１８７】
以上において、変換スキップ識別子ts_idxの復号に係る処理について説明したが、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。また、条件式（３０）は、実施可能な範囲で演算を変更可能である。
【０１８８】
以上のように各処理を行うことにより、JEM3の場合と比較して、復号側において、変換ブロック単位で２次元変換スキップ、水平方向または垂直方向の１次元変換スキップを適応的に選択することができる。従って、従来よりも１次元変換スキップが有効な残差信号に対して、１次元変換スキップのモードにより復号することができるため、符号化効率の向上を実現することができる。
【０１８９】
＜プライマリ変換識別子pt_idxの復号について＞
図１８は、復号部１１１の、プライマリ変換識別子pt_idxの復号に関する主な構成例を示すブロック図である。図１８に示されるように、この場合の復号部１１１は、プライマリ変換有効フラグ復号部１６１、適応プライマリ変換フラグ復号部１６２、およびプライマリ変換識別子復号部１６３を有する。
【０１９０】
プライマリ変換有効フラグ復号部１６１は、プライマリ変換有効フラグpt_enabled_flagの復号に関する処理を行う。適応プライマリ変換フラグ復号部１６２は、プライマリ変換フラグpt_enabled_flagの復号に関する処理を行う。プライマリ変換識別子復号部１６３は、プライマリ変換識別子pt_idxの復号に関する処理を行う。
【０１９１】
このような復号部１１１により図１２のステップＳ１０１において実行される、プライマリ変換識別子pt_idxに関する復号処理の流れの例を、図１９のフローチャートを参照して説明する。
【０１９２】
復号処理が開始されると、プライマリ変換有効フラグ復号部１６１は、ステップＳ１８１において、符号化データ#1のビット列からプライマリ変換有効フラグpt_enabled_flagを復号し、ヘッダ情報Hinfoの一部として出力する。
【０１９３】
ステップＳ１８２において、適応プライマリ変換フラグ復号部１６２は、ヘッダ情報Hinfoに含まれるプライマリ変換有効フラグpt_enabled_flagが１（真）であるか否かを判定する。プライマリ変換有効フラグpt_enabled_flagが０（偽）であると判定された場合、処理はステップＳ１８３に進む。
【０１９４】
ステップＳ１８３において、適応プライマリ変換フラグ復号部１６２は、適応プライマリ変換フラグapt_flagの符号化を省略し、このフラグの値が０であると推定する。ステップＳ１８３の処理が終了すると、処理はステップＳ１９３に進む。
【０１９５】
また、ステップＳ１８２において、プライマリ変換有効フラグpt_enabled_flagが１（真）であると判定された場合、処理はステップＳ１８４に進む。ステップＳ１８４において、適応プライマリ変換フラグ復号部１６２は、符号化データ#1のビット列から適応プライマリ変換フラグapt_flagを復号する。
【０１９６】
ステップＳ１８５において、プライマリ変換識別子復号部１６３は、適応プライマリ変換フラグapt_flagが１（真）であるか否かを判定する。適応プライマリ変換フラグapt_flagが０（偽）であると判定された場合、処理はステップＳ１９３に進む。また、ステップＳ１８５において、適応プライマリ変換フラグapt_flagが１（真）であると判定された場合、処理はステップＳ１８６に進む。
【０１９７】
ステップＳ１８６において、プライマリ変換識別子復号部１６３は、変換量子化バイパスフラグtransquant_bypass_flagが１（真）であるか否かを判定する。変換量子化バイパスフラグtransquant_bypass_flagが１（真）であると判定された場合、処理はステップＳ１９３に進む。また、ステップＳ１８６において、変換量子化バイパスフラグtransquant_bypass_flagが０（偽）であると判定された場合、処理はステップＳ１８７に進む。
【０１９８】
ステップＳ１８７において、プライマリ変換識別子復号部１６３は、変換スキップ識別子ts_idxが2D_TS(２次元変換スキップ)であるか否かを判定する。変換スキップ識別子ts_idxが2D_TSであると判定された場合、処理はステップＳ１９３に進む。また、ステップＳ１８７において、変換スキップ識別子ts_idxが2D_TS以外であると判定された場合、処理はステップＳ１８８に進む。
【０１９９】
ステップＳ１８８において、プライマリ変換識別子復号部１６３は、変換ブロックの縦サイズ（TBHSize）および横サイズ（TBWSize）がいずれも最大適応プライマリ変換ブロックサイズMaxPTSize以下（max(TBHSize, TBWSize)<=MaxPTSize）であるか否かを判定する。変換ブロックの縦サイズおよび横サイズの内の少なくともいずれか一方が、最大適応プライマリ変換ブロックサイズMaxPTSizeより大きいと判定された場合、処理はステップＳ１９３に進む。また、ステップＳ１８８において、変換ブロックの縦サイズおよび横サイズが最大適応プライマリ変換ブロックサイズMaxPTSize以下であると判定された場合、処理はステップＳ１８９に進む。
【０２００】
ステップＳ１８９において、プライマリ変換識別子復号部１６３は、復号対象の変換ブロックが輝度成分であるか否かを判定する。輝度成分ではないと判定された場合、処理はステップＳ１９３に進む。また、ステップＳ１８９において、復号対象の変換ブロックが輝度成分であると判定された場合、処理はステップＳ１９０に進む。
【０２０１】
ステップＳ１９０において、プライマリ変換識別子復号部１６３は、残差情報Rinfoを参照して、変換ブロック内に存在する非ゼロ変換係数の総数numSig(sig_coeff_flag==1の総数)を導出する。
【０２０２】
ステップＳ１９１において、プライマリ変換識別子復号部１６３は、非ゼロ変換係数の総数numSigが所定の閾値ptNumSigTH以上であるか否か（numSig>=ptNumSigTH）を判定する。非ゼロ変換係数の総数numSigが所定の閾値ptNumSigTHより少ないと判定された場合、処理はステップＳ１９３に進む。また、ステップＳ１９１において、非ゼロ変換係数の総数numSigが所定の閾値ptNumSigTH以上である（numSig>=ptNumSigTHを満たす）と判定された場合、処理はステップＳ１９２に進む。
【０２０３】
ステップＳ１９２において、プライマリ変換識別子復号部１６３は、符号化データ#1のビット列からプライマリ変換識別子pt_idxを復号する。ステップＳ１９２の処理が終了すると処理はステップＳ１９３に進む。
【０２０４】
ステップＳ１９３において、プライマリ変換識別子復号部１６３は、変換スキップ識別子ts_idx、及び復号済のプライマリ変換識別子pt_idxを参照して、プライマリ水平変換指定フラグpt_hor_flag、及びプライマリ垂直変換指定フラグpt_ver_flagを導出する。ステップＳ１９３の処理が終了すると、復号処理が終了し、処理は図１２に戻る。
【０２０５】
以上に説明したステップＳ１８５乃至ステップＳ１９２の各処理の疑似コードを記載したシンタックステーブルを図１７に示す。図１７において符号SYN13を付したif文の条件式（以下の条件式（３１））は、ステップＳ１８５乃至ステップＳ１９２の分岐判定と等価である。ステップＳ１９２は、図１７において符号SYN14を付したシンタックスpt_idxの復号処理と対応する。なお、式（３１）では、ステップＳ１８８の条件は省略されている。ステップＳ１８８の条件を含む式は、式（３２）で表される。
【０２０６】
論理値 = ( apt_flag
!transquant_bypass_flag &&
ts_idx != 2D_TS  &&
isLuma (cIdx==0) &&
numSig >= ptNumSigTH)
・・・（３１）
論理値 = ( apt_flag
!transquant_bypass_flag &&
ts_idx != 2D_TS  &&
max(TBW, TBH) <= MaxPTSize &&
isLuma (cIdx==0) &&
numSig >= ptNumSigTH)
・・・（３２）
【０２０７】
以上において、プライマリ変換識別子pt_idxの復号に係る処理について説明したが、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。
【０２０８】
次に、図１９のステップＳ１９３において実行される、プライマリ水平変換指定フラグpt_hor_flagと、プライマリ垂直変換指定フラグpt_ver_flagとの導出に関する処理（プライマリ垂直水平変換指定フラグ導出処理）について、図２０のフローチャートを参照して説明する。
【０２０９】
プライマリ垂直水平変換指定フラグ導出処理が開始されると、プライマリ変換識別子復号部１６３は、ステップＳ２１１において、変換スキップ識別子ts_idxがNO_TS (変換スキップでない)であるか否かを判定する。変換スキップ識別子ts_idxがNO_TSであると判定された場合、処理はステップＳ２１２に進む。
【０２１０】
ステップＳ２１２において、プライマリ変換識別子復号部１６３は、上述の式（１９）により、プライマリ水平変換指定フラグpt_hor_flag、及びプライマリ垂直変換フラグpt_ver_flagを導出する。つまり、プライマリ変換識別子pt_idxが２ビットのbin列として処理され、その２ビットからプライマリ水平変換指定フラグpt_hor_flagおよびプライマリ垂直変換フラグpt_ver_flagが導出される。ステップＳ２１２の処理が終了すると、プライマリ垂直水平変換指定フラグ導出処理が終了し、処理は図１９に戻る。
【０２１１】
ステップＳ２１２において、変換スキップ識別子ts_idxがNO_TS以外であると判定された場合、処理はステップＳ２１３に進む。ステップＳ２１３において、プライマリ変換識別子復号部１６３は、変換スキップ識別子ts_idxが2D_ TS（２次元変換スキップ）であるか否かを判定する。変換スキップ識別子ts_idxが2D_TSであると判定された場合、処理はステップＳ２１４に進む。
【０２１２】
ステップＳ２１４において、プライマリ変換識別子復号部１６３は、上述の式（２５）により、プライマリ水平変換指定フラグpt_hor_flag、及びプライマリ垂直変換フラグpt_ver_flagを導出する。つまり、プライマリ変換識別子pt_idxの復号が省略され、プライマリ水平変換指定フラグpt_hor_flagおよびプライマリ垂直変換フラグpt_ver_flagが所定値にセットされる。ステップＳ２１４の処理が終了すると、プライマリ垂直水平変換指定フラグ導出処理が終了し、処理は図１９に戻る。
【０２１３】
ステップＳ２１３において、変換スキップ識別子ts_idxが2D_TS以外であると判定された場合、処理はステップＳ２１５に進む。ステップＳ２１５において、プライマリ変換識別子復号部１６３は、変換スキップ識別子ts_idxが1D_H_TS（水平方向の１次元変換スキップ）であるか否かを判定する。変換スキップ識別子ts_idxが1D_H_TSであると判定された場合、処理はステップＳ２１６に進む。
【０２１４】
ステップＳ２１６において、プライマリ変換識別子復号部１６３は、上述の式（２１）により、プライマリ水平変換指定フラグpt_hor_flag、及びプライマリ垂直変換フラグpt_ver_flagを導出する。つまり、プライマリ変換識別子pt_idxが１ビットのbin列として処理され、プライマリ水平変換指定フラグpt_hor_flagが所定値にセットされ、プライマリ垂直変換フラグpt_ver_flagがプライマリ変換識別子pt_idxの値にセットされる。ステップＳ２１６の処理が終了すると、プライマリ垂直水平変換指定フラグ導出処理が終了し、処理は図１９に戻る。
【０２１５】
ステップＳ２１５において、変換スキップ識別子ts_idxが1D_H_TS以外であると判定された場合、処理はステップＳ２１７に進む。ステップＳ２１７において、プライマリ変換識別子復号部１６３は、上述の式（２３）により、プライマリ水平変換指定フラグpt_hor_flag、及びプライマリ垂直変換フラグpt_ver_flagを導出する。つまり、プライマリ変換識別子pt_idxが１ビットのbin列として処理され、プライマリ水平変換指定フラグpt_hor_flagがプライマリ変換識別子pt_idxの値にセットされ、プライマリ垂直変換フラグpt_ver_flagが所定値にセットされる。ステップＳ２１７の処理が終了すると、プライマリ垂直水平変換指定フラグ導出処理が終了し、処理は図１９に戻る。
【０２１６】
以上においては、プライマリ水平変換指定フラグpt_hor_ flag、及びプライマリ垂直変換指定フラグpt_ver_ flagの導出に係る処理について説明したが、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。
【０２１７】
以上のように、変換スキップ識別子ts_idxが1D_H_TS、または1D_V_TSの場合、プライマリ変換識別子pt_idxを１ビットのbin列として、算術復号することができるため、２ビットのbin列として算術復号する場合より、復号対象となるbin列を削減することができる。従って、プライマリ変換識別子pt_idxの復号に係る処理量を低減することができる。また、符号量を削減することできるので、符号化効率の向上も実現することができる。
【０２１８】
＜セカンダリ変換識別子st_idxの復号＞
図２１は、復号部１１１の、セカンダリ変換識別子st_idxの復号に関する主な構成例を示すブロック図である。図２１に示されるように、この場合の復号部１１１は、セカンダリ変換有効フラグ復号部１７１およびセカンダリ変換識別子復号部１７２を有する。
【０２１９】
セカンダリ変換有効フラグ復号部１７１は、セカンダリ変換有効フラグst_enabled_flagの復号に関する処理を行う。セカンダリ変換識別子復号部１７２は、セカンダリ変換識別子st_idxの復号に関する処理を行う。
【０２２０】
このような復号部１１１により図１２のステップＳ１０１において実行される、セカンダリ変換識別子st_idxに関する復号処理の流れの例を、図２２のフローチャートを参照して説明する。
【０２２１】
復号処理が開始されると、セカンダリ変換有効フラグ復号部１７１は、ステップＳ２３１において、符号化データ#1のビット列からセカンダリ変換有効フラグst_enabled_flagを復号し、ヘッダ情報Hinfoの一部として出力する。
【０２２２】
ステップＳ２３２において、セカンダリ変換識別子復号部１７２は、ヘッダ情報Hinfoに含まれるセカンダリ変換有効フラグst_enabled_flagが、１（真）であるか否かを判定する。セカンダリ変換有効フラグst_enabled_flagが０（偽）であると判定された場合、処理はステップＳ２３８に進む。また、ステップＳ２３２において、セカンダリ変換有効フラグst_enabled_flagが１（真）であると判定された場合、処理はステップＳ２３３に進む。
【０２２３】
ステップＳ２３３において、セカンダリ変換識別子復号部１７２は、変換量子化バイパスフラグtransquant_bypass_flagが、１（真）であるか否かを判定する。変換量子化バイパスフラグtransquant_bypass_flagが１（真）であると判定された場合、処理はステップＳ２３８に進む。また、ステップＳ２３３において、変換量子化バイパスフラグtransquant_bypass_flagが０（偽）であると判定された場合、処理はステップＳ２３４に進む。
【０２２４】
ステップＳ２３４において、セカンダリ変換識別子復号部１７２は、変換スキップ識別子ts_idxが、NO_TS（変換スキップをしない）であるか否かを判定する。変換スキップ識別子ts_idxがNO_TS以外であると判定された場合、処理はステップＳ２３８に進む。また、ステップＳ２３４において、変換スキップ識別子ts_idxがNO_TSであると判定された場合、処理はステップＳ２３５に進む。
【０２２５】
ステップＳ２３５において、セカンダリ変換識別子復号部１７２は、残差情報Rinfoを参照して、変換ブロック内に存在する非ゼロ変換係数の総数numSig(sig_coeff_flag==1の総数)を導出する。ステップＳ２３５の処理が終了すると、処理はステップＳ２３６に進む。
【０２２６】
ステップＳ２３６において、セカンダリ変換識別子復号部１７２は、非ゼロ変換係数の総数numSigが所定の閾値TH以上であるか否か（numSig>=stNumSigTH）を判定する。非ゼロ変換係数の総数numSigが所定の閾値THより少ない（すなわち、numSig<stNumSigTHを満たす）と判定された場合、処理はステップＳ２３８に進む。
【０２２７】
また、ステップＳ２３６において、非ゼロ変換係数の総数numSigが所定の閾値TH以降である（すなわち、numSig>=stNumSigTHを満たす）と判定された場合、処理はステップＳ２３７に進む。
【０２２８】
ステップＳ２３７において、セカンダリ変換識別子復号部１７２は、符号化データ#1のビット列からセカンダリ変換識別子st_idxを復号する。ステップＳ２３７の処理が終了すると、復号処理が終了し、処理は図１２に戻る。
【０２２９】
また、ステップＳ２３８において、セカンダリ変換識別子復号部１７２は、セカンダリ変換識別子st_idxの復号を省略し、セカンダリ変換識別子st_idxの値が０であると推定し、その値をst_idxへ設定する。すなわち、st_idx = 0となる。ステップＳ２３８の処理が終了すると、復号処理が終了し、処理は図１２に戻る。
【０２３０】
ステップＳ２３２乃至ステップＳ２３８（ステップＳ２３５およびステップＳ２３７を除く）の疑似コードを記載したシンタックステーブルを図２３に示す。図２３において符号SYN19を付したif文の条件式（以下の条件式（３３））は、ステップＳ２３２乃至ステップＳ２３８の分岐判定と等価である。また、図２３において符号SYN20を付したシンタックスは、図２２のステップＳ２３７の処理に対応する。
【０２３１】
論理値 = ( st_enabled_flag  &&
(transquant_bypass_flag==0  || ts_idx==NO_TS) &&
numSig >= stNumSigTH)
・・・（３３）
【０２３２】
以上においては、セカンダリ変換識別子st_idxの復号に係る処理について説明したが、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。また、条件式（３３）は、実施可能な範囲で演算を変更可能である。なお、上記では、セカンダリ変換の制御パラメータを、セカンダリ変換識別子st_idxとしたが、セカンダリ変換フラグst_flagであってもよい。
【０２３３】
以上のように本技術を適用することにより、従来技術と比較して、変換ブロック単位でセカンダリ変換識別子を復号する場合において、２次元変換スキップ、または１次元変換スキップを適用する場合（ts_idx!=NO_TSの場合）、セカンダリ変換識別子の復号処理を省略することができる。すなわち、セカンダリ変換識別子の復号に係る処理量を低減することができる。
【０２３４】
＜３．第３の実施の形態＞
＜プライマリ水平変換指定フラグとプライマリ垂直変換指定フラグの復号＞
以上においては、復号されたプライマリ変換識別子pt_idxより、プライマリ水平変換指定フラグpt_hor_flagとプライマリ垂直変換指定フラグpt_ver_flagとが導出されるように説明したが、これに限定されない。例えば、プライマリ変換識別子pt_idxを符号化データ#1より復号する代わりに、プライマリ水平変換指定フラグpt_hor_flagおよびプライマリ垂直変換指定フラグpt_ver_flagを直接符号化データより復号するようにしてもよい。
【０２３５】
図２４は、復号部１１１の、プライマリ水平変換指定フラグpt_hor_flagおよびプライマリ垂直変換指定フラグpt_ver_flagの復号に関する主な構成例を示すブロック図である。図２４に示されるように、この場合の復号部１１１は、プライマリ変換有効フラグ復号部１６１、適応プライマリ変換フラグ復号部１６２、プライマリ水平変換指定フラグ復号部１８１、およびプライマリ垂直変換指定フラグ復号部１８２を有する。
【０２３６】
プライマリ水平変換指定フラグ復号部１８１は、プライマリ水平変換指定フラグpt_hor_flagの復号に関する処理を行う。プライマリ垂直変換指定フラグ復号部１８２は、プライマリ垂直変換指定フラグpt_ver_flagの復号に関する処理を行う。
【０２３７】
プライマリ水平変換指定フラグ復号部１８１は、図２５に示されるシンタクスにおいて、符号SYN15を付したif文の条件を満たす場合、すなわち、変換スキップ識別子ts_idxがNO_TSまたは1D_V_TSであって(ts_idx==NO_TS||ts_idx==1D_V_TS)、変換量子化バイパスフラグが０（偽）であって（transquant_bypass_flag==0）、輝度成分であって(cIdx==0)、適応プライマリ変換フラグapt_flagが１（真）であって（apt_flag==1）、かつ、変換ブロック内の非ゼロ変換係数の総数numSigが閾値ptNumSigTH以上である(numSig>=ptNumSigTH)場合、符号化データ#1のビット列からプライマリ水平変換指定フラグpt_hor_flagを復号する。それ以外の場合、プライマリ水平変換指定フラグ復号部１８１は、プライマリ水平変換指定フラグpt_hor_flagの値を−１（所定値）に設定する（推定する）。
【０２３８】
同様に、プライマリ垂直変換指定フラグ復号部１８２は、図２５に示されるシンタクスにおいて、符号SYN17を付したif文の条件を満たす場合、すなわち、変換スキップ識別子ts_idxがNO_TSまたは1D_H_TSであって(ts_idx==NO_TS||ts_idx==1D_H_TS)、変換量子化バイパスフラグが０（偽）であって（transquant_bypass_flag==0）、輝度成分であって(cIdx==0)、適応プライマリ変換フラグapt_flagが１（真）であって（apt_flag==1）、かつ、変換ブロック内の非ゼロ変換係数の総数numSigが閾値ptNumSigTH以上である(numSig>=ptNumSigTH)場合、符号化データ#1のビット列からプライマリ垂直変換指定フラグpt_ver_flagを復号する。それ以外の場合、プライマリ垂直変換指定フラグ復号部１８２は、プライマリ垂直変換指定フラグpt_ver_flagの値を−１（所定値）に設定する（推定する）。
【０２３９】
以上のようにすることにより、変換スキップ識別子ts_idxが1D_H_TSの場合、プライマリ水平変換指定フラグpt_hor_flagの復号を省略することができる。同様に、変換スキップ識別子ts_idxが1D_V_TSの場合、プライマリ垂直変換指定フラグpt_ver_flagの復号を省略することができる。従って、プライマリ水平変換指定フラグpt_hor_flag、及びプライマリ垂直変換指定フラグpt_ver_flagの復号に係る処理量を低減することができる。また、符号量の増大を抑制することできるので、符号化効率の向上も実現することができる。
【０２４０】
＜４．第４の実施の形態＞
＜逆変換部の他の構成＞
第１の実施の形態においては、逆プライマリ変換部１２３のスイッチ１３２は、逆プライマリ垂直変換をスキップする場合、プライマリ変換係数Coeff_ISをスイッチ１３４に供給するように説明したが、その際、量子化の為のスケーリングを行うようにしてもよい。また、第１の実施の形態においては、逆プライマリ変換部１２３のスイッチ１３４は、逆プライマリ水平変換をスキップする場合、逆プライマリ垂直変換後の変換係数Coeff_IPverを予測残差D'として外部へ出力するように説明したが、その際、量子化の為のスケーリングを行うようにしてもよい。
【０２４１】
図２６は、その場合の逆変換部１１３の主な構成例を示すブロック図である。図２６に示されるように、逆変換部１１３は、この場合も、図１１の場合と基本的に同様の構成を有する。ただし、この場合、逆プライマリ変換部１２３は、スケーリング部１９１およびスケーリング部１９２を有する。
【０２４２】
スイッチ１３２は、逆プライマリ垂直変換をスキップする場合、プライマリ変換係数Coeff_ISをスケーリング部１９１に供給する。スケーリング部１９１は、スイッチ１３２から供給されるプライマリ変換係数Coeff_IS（逆プライマリ垂直変換後の変換係数Coeff_IPver）に対してスケーリングを行う。例えば、スケーリング部１９１は、供給された変換係数に対して、逆プライマリ垂直変換を実施した場合と同一のノルムになるように正規化するためのN（Nは自然数）ビットのビットシフト演算を行う。スケーリング部１９１は、スケーリングした変換係数をスイッチ１３４に供給する。
【０２４３】
スイッチ１３４は、逆プライマリ水平変換をスキップする場合、逆プライマリ垂直変換後の変換係数Coeff_IPverを予測残差D'としてスケーリング部１９２に供給する。スケーリング部１９２は、スケーリング部１９１の場合と同様に、スイッチ１３４から供給される逆プライマリ垂直変換後の変換係数Coeff_IPver（予測残差D'）に対してスケーリングを行う。例えば、スケーリング部１９２は、供給された変換係数に対して、逆プライマリ水平変換を実施した場合と同一のノルムになるように正規化するためのN（Nは自然数）ビットのビットシフト演算を行う。スケーリング部１９２は、スケーリングした予測残差D'を外部に出力する。
【０２４４】
このようにすることにより、変換係数のダイナミックレンジ幅を所定の範囲内に抑えることができるので、復号の負荷の増大を抑制することができる。
【０２４５】
＜５．第５の実施の形態＞
＜画像符号化装置＞
次に、以上のように復号される符号化データを生成する符号化について説明する。図２７は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図２７に示される画像符号化装置３００は、図１０の画像復号装置１００に対応する画像符号化装置であり、画像復号装置１００により復号される符号化データ（ビットストリーム）を、画像復号装置１００による復号方法に対応する符号化方法で画像を符号化することにより生成する。例えば、画像符号化装置３００は、HEVCに提案された技術や、JVETにて提案された技術を実装している。
【０２４６】
なお、図２７においては、処理部やデータの流れ等の主なものを示しており、図２７に示されるものが全てとは限らない。つまり、画像符号化装置３００において、図２７においてブロックとして示されていない処理部が存在したり、図２７において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
【０２４７】
図２７に示されるように画像符号化装置３００は、制御部３１１、演算部３１２、変換部３１３、量子化部３１４、符号化部３１５、逆量子化部３１６、逆変換部３１７、演算部３１８、フレームメモリ３１９、および予測部３２０を有する。
【０２４８】
制御部３１１は、外部、または予め指定された処理単位のブロックサイズに基づいて、動画像#2を処理単位のブロック（CU, PU, 変換ブロックなど）へ分割し、分割されたブロックに対応する画像Iを演算部３１２へ入力する。また、制御部３１１は、各ブロックへ供給する符号化パラメータ（ヘッダ情報Hinfo、予測モード情報Pinfo, 変換情報Tinfoなど）を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。決定された符号化パラメータは、各ブロックへ供給される。具体的には、以下の通りである。
【０２４９】
ヘッダ情報Hinfoは、各ブロックに供給される。予測モード情報Pinfoは、符号化部３１５および予測部３２０に供給される。変換情報Tinfoは、符号化部３１５、変換部３１３、量子化部３１４、逆量子化部３１６、および逆変換部３１７に供給される。
【０２５０】
演算部３１２は、処理単位のブロックに対応する画像Iと、予測部３２０より供給される予測画像Pを入力とし、画像Iから予測画像Pを式（３４）に示すように減算して、予測残差Dを導出し、変換部３１３に供給する。
【０２５１】
D = I - P
・・・（３４）
【０２５２】
変換部３１３は、逆変換部３１７の逆処理であり、予測残差Dおよび変換情報Tinfoを入力とし、変換情報Tinfoに基づいて、予測残差Dに対して、変換を適用し、変換係数Coeffを導出し、それを量子化部３１４に供給する。
【０２５３】
量子化部３１４は、逆量子化部３１６の逆処理であり、変換情報Tinfoおよび変換係数Coeffを入力とし、変換情報Tinfoに基づいて、変換係数Coeffをスケーリング（量子化）し、量子化後の変換係数、すなわち量子化変換係数レベルlevelを符号化部３１５に供給する。
【０２５４】
符号化部３１５は、復号部１１１（図１０）の逆処理であり、シンタックステーブルの定義に沿って、制御部３１１から供給される符号化パラメータ（ヘッダ情報、予測モード情報Pinfo、変換情報Tinfo）、及び量子化部３１４より供給される量子化変換係数レベルlevelを、各シンタックス要素のシンタックス値へ変換し、各シンタックス値を可変長符号化（例えば、算術符号）し、ビット列を生成する。
【０２５５】
なお、符号化部３１５は、量子化変換係数レベルlevelから残差情報RInfoを導出し、残差情報RInfoを可変長符号化し、ビット列を生成する。また、符号化部３１５は、可変長符号化された各シンタックス要素のビット列を多重化し、符号化データ#1を生成して出力する。
【０２５６】
逆量子化部３１６は、逆量子化部１１２（図１０）と同様の処理部であり、画像符号化装置３００において、逆量子化部１１２と同様の処理を行う。逆変換部３１７は、逆変換部１１３（図１０）と同様の処理部であり、画像符号化装置３００において、逆変換部１１３と同様の処理を行う。フレームメモリ３１９は、フレームメモリ１１５（図１０）と同様の処理部であり、画像符号化装置３００において、フレームメモリ１１５と同様の処理を行う。予測部３２０は、予測部１１６（図１０）と同様の処理部であり、画像符号化装置３００において、予測部１１６と同様の処理を行う。
【０２５７】
＜変換部＞
図２８は、変換部３１３の主な構成例を示すブロック図である。図２８に示されるように、変換部３１３は、スイッチ３３１、プライマリ変換部３３２、およびセカンダリ変換部３３３を有する。
【０２５８】
スイッチ３３１は、予測残差Ｄおよび変換スキップ識別子ts_idxを入力とし、変換スキップ識別子ts_idxの値がNO_TS(=0)、または、1D_H_TS(=2)、または、1D_V_TS(=3)の場合（変換スキップを適用しない、または、水平・垂直方向のいずれか一方に対して１次元変換スキップを適用することを示す場合）、プライマリ変換部３３２に予測残差Ｄを供給する。また、変換スキップ識別子ts_idxの値が2D_TS(=1)の場合（２次元変換スキップを適用することを示す場合）、プライマリ変換部３３２およびセカンダリ変換部３３３をスキップし、予測残差Ｄを変換係数Coeffとして変換部３１３の外部（量子化部３１４）に出力する。
【０２５９】
例えば、変換スキップフラグts_idxが2D_TS(=1)であって、変換部３１３へ入力する予測残差Dが、４ｘ４行列の予測残差D = [[255, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0,0,0,0]]である場合、スイッチ３３１は、予測残差Dを、変換係数Coeffとして出力する。すなわち、変換係数Coeff = [[255, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0,0,0,0]]となる。従って、プライマリ変換およびセカンダリ変換をスキップすることができる。特に、２次元変換スキップを適用するのが望ましい非ゼロ係数の数が少ない疎な残差信号に対して、変換の処理量の低減やエナジーコンパクションの低減を抑制することができ、符号化効率の向上した変換処理を行うことができる。
【０２６０】
プライマリ変換部３３２は、プライマリ水平変換指定フラグpt_hor_flag、プライマリ垂直変換指定フラグpt_ver_flag、予測モード情報PInfo、変換スキップ識別子ts_idx、及び予測残差Dを入力とする。プライマリ変換部３３２は、予測モード情報PInfo、変換スキップ識別子、プライマリ水平変換指定フラグpt_hor_flagで指定されるプライマリ水平変換の行列PThor、プライマリ垂直変換指定フラグpt_ver_flagで指定されるプライマリ垂直変換の行列PTverを選択し、予測残差Dに対して、選択された各方向のプライマリ変換の行列により、プライマリ水平変換及びプライマリ垂直変換をして、プライマリ変換後の予測残差D'を導出し、出力する。
【０２６１】
セカンダリ変換部３３３は、セカンダリ変換識別子st_idx、変換係数のスキャン方法を示すスキャン識別子scanIdx、及びプライマリ変換後の変換係数Coeff_Pを入力とし、セカンダリ変換後の変換係数Co eff（セカンダリ変換係数Coeff_Sともいう）を導出し、出力する。
【０２６２】
より具体的には、セカンダリ変換識別子st_idxがセカンダリ変換を適用することを示す場合(st_idx>0)、セカンダリ変換部３３３は、プライマリ変換係数Coeff_Pに対して、セカンダリ変換識別子st_idxに対応するセカンダリ変換の処理を実行し、セカンダリ変換後の変換係数Coeff_Sを出力する。また、セカンダリ変換識別子st_idxがセカンダリ変換を適用しないことを示す場合(st_idx==0)、セカンダリ変換部３３３は、セカンダリ変換をスキップし、プライマリ変換後の変換係数Coeff_Pをセカンダリ変換後の変換係数Coeff_Sとして出力する。
【０２６３】
図２８に示されるように、プライマリ変換部３３２は、プライマリ変換選択部３４１、スイッチ３４２、プライマリ水平変換部３４３、スイッチ３４４、およびプライマリ垂直変換部３４５を有する。
【０２６４】
プライマリ変換選択部３４１は、プライマリ水平変換指定フラグpt_hor_flag、プライマリ垂直変換指定フラグpt_ver_flag、予測モード情報PInfo、および変換スキップ識別子ts_idxを入力とし、予測モード情報PInfo、変換スキップ識別子ts_idx、プライマリ水平変換指定フラグpt_hor_flagで指定されるプライマリ水平変換の行列PThor、およびプライマリ垂直変換指定フラグpt_ver_flagで指定されるプライマリ垂直変換の行列PTverを、プライマリ変換選択部３４１の内部メモリ（不図示）より読み出し、それぞれを、プライマリ水平変換部３４３、プライマリ垂直変換部３４５へ出力する。
【０２６５】
プライマリ変換選択部３４１は、逆プライマリ変換選択部１３１の場合と同様に、水平方向および垂直方向のそれぞれについて、プライマリ変換の候補となる直交変換を含む変換セットTransformSetを選択する。なお、この処理は逆プライマリ変換選択部１３１の処理と同一であるため、説明を省略する。
【０２６６】
逆プライマリ変換選択部１３１における逆プライマリ水平変換IPThor、プライマリ垂直変換IPTverの選択処理と同様にして、プライマリ変換選択部３４１は、選択された変換セットTransformSetから、水平方向のプライマリ変換に用いる直交変換をプライマリ水平変換指定フラグpt_hor_flagによって選択し、垂直方向のプライマリ変換に用いる直交変換をプライマリ垂直変換指定フラグpt_ver_flagによって選択する。具体的な処理は、逆プライマリ変換選択部１３１における逆プライマリ水平変換IPThor及びプライマリ垂直変換IPTverの選択処理において、以下の読み替えを行い、解釈するものとする。
・逆プライマリ水平変換IPThor→プライマリ水平変換PThor
・逆プライマリ垂直変換IPTver→プライマリ垂直変換PTver
・逆プライマリ変換→プライマリ変換
【０２６７】
スイッチ３４２は、予測残差D及び変換スキップ識別子ts_idxを入力とする。変換スキップ識別子ts_idxの値が1D_H_TS(=2)、すなわち、水平方向の１次元変換をスキップすること(ts_idx==1D_H_TS)（プライマリ水平変換をスキップすること）を示す場合、スイッチ３４２は、プライマリ水平変換部３４３をスキップし、予測残差Dをプライマリ水平変換後の変換係数Coeff_Phorとしてスイッチ３４４へ出力する。また、変換スキップ識別子ts_idxの値が1D_H_TS(=2)以外の場合（ts_idx!=1D_H_TS）（プライマリ水平変換をスキップしないことを示す場合）、スイッチ３４２は予測残差Dをプライマリ水平変換部３４３へ出力する。
【０２６８】
プライマリ水平変換部３４３は、変換ブロック毎に、予測残差Dとプライマリ水平変換PThorの行列を入力とし、以下の式（３５）に示される通りに行列演算を行い、その結果をプライマリ水平変換後の変換係数Coeff_Phorとして出力する。なお、プライマリ水平変換PThorは、変換基底を列ベクトルとして有する行列である。
【０２６９】
Coeff_Phor = (D・PThor) >> s3
・・・（３５）
【０２７０】
ここで、演算子"・"は行列積(inner product)を表し、演算子">>"は要素毎に右シフト演算を行う操作を表す。式（３５）によれば、変換係数Coeff_Phorの各値は、予測残差Dとプライマリ水平変換PThorとの行列積の要素毎に対して、所定のスケーリングパラメータs3によって右シフト演算することで得られる。なお、スケーリングパラメータs3は、D・PThorの行列演算結果を、中間バッファのビット深度に収まるよう正規化するために用いる。スケーリングパラメータs3の値は、例えば、以下の式（３６）に示されるように中間バッファのビット深度BitDepthbuffと、D・PThorの行列演算のビット深度のワーストケースMaxBitDepth(D・PThor)から定まる。
【０２７１】
s3 = max(0, MaxBitDepth(D・PThor) - BitDpethbuff)
・・・（３６）
【０２７２】
例えば、D・PThorの値域が、-2**22乃至2**22 - 1である場合、すなわち、MaxBitDepth(D・PThor)のビット深度が23bitであって、中間バッファに格納可能な値の値域が、-2**15乃至2**15 - 1である場合、すなわち中間バッファのビット深度が16bitの場合、スケーリングパラメータs3は、s3 = 7bit( = max(0, 23-16) = max(0, 7))となる。また、MaxBitDepth(D・PThor)のビット深度が23bitであって、中間バッファに格納可能な値の値域が、-2**31乃至2**31 - 1である場合、すなわち、中間バッファのビット深度が32bitの場合、スケーリングパラメータs3は、s3 = 0bit(=max(0, 23-32)=max(0,-9))となる。スケーリングパラメータs3が0であるということは、中間バッファのビット深度の値が十分に大きいため、D・PThorの行列積の各要素値を正規化せずとも、中間バッファにオーバフローせずに格納することが出来ることを表す。
【０２７３】
なお、スケーリングパラメータs3は、D・PThorの値域が既知であると仮定して、予め定めた固定値としてもよい。また、上述の式（３６）において、右シフト演算によるクリップ誤差を小さくするために、行列積の後、所定のオフセット値o3を要素毎に加算するようにしてもよい。このとき、オフセット値o3は、スケーリングパラメータs3を用いて、以下の式（３７）により表される。
【０２７４】
o3 = ( s3>0 ? 1<<(s3-1) : 0 )
・・・（３７）
【０２７５】
スイッチ３４４は、プライマリ水平変換後の変換係数Coeff_Phorおよび変換スキップ識別子ts_idxを入力とする。変換スキップ識別子ts_idxの値が1D_V_TS(=3)、すなわち、垂直方向の１次元変換をスキップすること(ts_idx==1D_V_TS)（プライマリ垂直変換をスキップすること）を示す場合、スイッチ３４４は、プライマリ垂直変換部３４５をスキップし、プライマリ水平変換後の変換係数Coeff_Phorをプライマリ変換後の変換係数Coeff_Pとして外部（セカンダリ変換部３３３）へ出力する。また、変換スキップ識別子ts_idxの値が1D_V_TS(=2)以外の場合（ts_idx!=1D_V_TS）（プライマリ垂直変換をスキップしないことを示す場合）、スイッチ３４４はプライマリ水平変換後の変換係数Coeff_Phorをプライマリ垂直変換部３４５へ出力する。
【０２７６】
プライマリ垂直変換部３４５は、変換ブロック毎に、プライマリ水平変換後の変換係数Coeff_Phorとプライマリ垂直変換PTverの行列を入力とし、以下の式（３８）に示す通り行列演算を行い、その結果をプライマリ変換後の変換係数Coeff_Pとして出力する。なお、プライマリ垂直変換PTverは、変換基底を行ベクトルとして有する行列である。
【０２７７】
Coeff_P = (PTver・Coeff_Phor) >> s3
・・・（３８）
【０２７８】
ここで、演算子"・"は行列積(inner product)を表し、演算子">>"は要素毎に右シフト演算を行う操作を表す。式（３８）によれば、変換係数Coeff_Pの各値は、プライマリ水平変換後の変換係数Coeff_Phorとプライマリ垂直変換の行列PTverとの行列積の要素毎に対して、所定のスケーリングパラメータs3によって右シフト演算することで得られる。なお、スケーリングパラメータs4は、PTver・Coeff_Phorの行列演算結果を、所望のビット深度に収まるよう正規化するために用いる。スケーリングパラメータs4の値は、所望のビット深度BitDepthoutと、PTver・Coeff_Phorの行列演算のビット深度のワーストケースMaxBitDepth(PTver・Coeff_Phor)から、以下の式（３９）により定まる。
【０２７９】
s4 = max(0, MaxBitDepth(PTver・Coeff_Phor) - BitDpethout)
・・・（３９）
【０２８０】
例えば、PTver・Coeff_Phorの値域が、-2**22乃至2**22 - 1である場合、すなわち、MaxBitDepth(PTver・Coeff_Phor)のビット深度が23bitであって、所望ビット深度のとき取りえる値の値域が、-2**15乃至2**15 - 1である場合、すなわち所望ビット深度が16bitの場合、スケーリングパラメータs4は、s4 = 7bit( = max(0, 23-16) = max(0, 7))となる。また、MaxBitDepth(PTver・Coeff_Phor)のビット深度が23bitであって、所望ビット深度のとき取りえる値の値域が、-2**31乃至2**31 - 1である場合、すなわち、所望ビット深度が32bitの場合、スケーリングパラメータs4は、s4 = 0bit(=max(0, 23-32)=max(0,-9))となる。スケーリングパラメータs4が0であるということは、所望ビット深度の値が十分に大きいため、PTver・Coeff_Phorの行列積の各要素値が正規化せずとも、所望ビット深度内に収まることを表す。
【０２８１】
なお、上述の式（３８）において、右シフト演算によるクリップ誤差を小さくするために、行列積の後、所定のオフセット値o4を要素毎に加算するようにしてもよい。このとき、オフセット値o3は、スケーリングパラメータs4を用いて、以下の式（４０）により表される。
【０２８２】
o4 = ( s4>0 ? 1<<(s4-1) : 0 )
・・・（４０）
【０２８３】
以上、プライマリ変換部３３２は、水平方向、または垂直方向の１次元変換をスキップことが望ましい残差信号に対して、プライマリ変換の処理量の低減、及びエナジーコンパクションの低下を防止し、符号化効率の向上したプライマリ変換処理を行うことができる。特に、水平方向に信号の連続性が急激に変化するステップエッジの特性を持つ残差信号に対しては、水平方向の１次元変換をスキップし、垂直方向に１次元変換をすることで、２次元直交変換をする場合と比較して、垂直方向の周波数成分の低域に非ゼロ係数を効率よく集中させることができる。すなわち、エナジーコンパクションを高めることができるため、符号化効率を向上させることができる。同様に、垂直方向に信号の連続性が急激に変化するステップエッジの特性を持つ残差信号に対しては、垂直方向の１次元変換をスキップし、水平方向に１次元変換をすることで、２次元直交変換をする場合と比較して、水平方向の周波数成分の低域に非ゼロ係数を効率よく集中させることができる。すなわち、エナジーコンパクションを高めることができるため、符号化効率を向上させることができる。
【０２８４】
＜画像符号化処理の流れ＞
次に、以上のような画像符号化装置３００により実行される各処理の流れについて説明する。最初に、図２９のフローチャートを参照して、画像符号化処理の流れの例を説明する。
【０２８５】
画像符号化処理が開始されると、ステップＳ３０１において、制御部３１１は、符号化制御処理を行い、ブロック分割や符号化パラメータの設定等を行う。
【０２８６】
ステップＳ３０２において、予測部３２０は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部３２０は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
【０２８７】
ステップＳ３０３において、演算部３１２は、入力画像と、ステップＳ３０２の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部３１２は、入力画像と予測画像との予測残差Ｄを生成する。このようにして求められた予測残差Ｄは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
【０２８８】
ステップＳ３０４において、変換部３１３は、ステップＳ３０３の処理により生成された予測残差Ｄに対して変換処理を行い、変換係数Coeffを導出する。なお、この変換処理は、ステップＳ３０７の逆変換処理の逆処理であり、上述した画像復号処理において実行される逆変換処理の逆処理である。ステップＳ３０４の処理の詳細については後述する。
【０２８９】
ステップＳ３０５において、量子化部３１４は、制御部３１１により算出された量子化パラメータを用いる等して、ステップＳ３０４の処理により得られた変換係数Coeffを量子化し、量子化変換係数レベルlevelを導出する。
【０２９０】
ステップＳ３０６において、逆量子化部３１６は、ステップＳ３０５の処理により生成された量子化変換係数レベルlevelを、そのステップＳ３０５の量子化の特性に対応する特性で逆量子化し、変換係数Coeff_IQを導出する。
【０２９１】
ステップＳ３０７において、逆変換部３１７は、ステップＳ３０６の処理により得られた変換係数Coeff_IQを、ステップＳ３０４の変換処理に対応する方法で逆変換し、予測残差Ｄ’を導出する。なお、この逆変換処理は、上述した画像復号処理において実行される逆変換処理と同様に実行される。
【０２９２】
ステップＳ３０８において、演算部３１８は、ステップＳ３０７の処理により導出された予測残差Ｄ’に、ステップＳ３０２の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
【０２９３】
ステップＳ３０９において、フレームメモリ３１９は、ステップＳ３０８の処理により得られた、局所的に復号された復号画像を記憶する。
【０２９４】
ステップＳ３１０において、符号化部３１５は、ステップＳ３０５の処理により得られた量子化変換係数レベルlevelを符号化する。例えば、符号化部３１５は、画像に関する情報である量子化変換係数レベルlevelを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部３１５は、各種符号化パラメータ（ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo）を符号化する。さらに、符号化部３１５は、量子化変換係数レベルlevelから残差情報RInfoを導出し、その残差情報RInfoを符号化する。
【０２９５】
ステップＳ３１１において、符号化部３１５は、このように生成した各種情報の符号化データをまとめて、ビットストリームとして画像符号化装置３００の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。ステップＳ３１１の処理が終了すると、画像符号化処理が終了する。
【０２９６】
なお、これらの各処理の処理単位は任意であり、互いに同一でなくてもよい。したがって、各ステップの処理は、適宜、他のステップの処理等と並行して、または、処理順を入れ替えて実行することもできる。
【０２９７】
＜変換処理の流れ＞
次に、図２９のステップＳ３０４において実行される変換処理の流れの例を、図３０のフローチャートを参照して説明する。変換処理が開始されると、スイッチ３３１は、ステップＳ３３１において、変換スキップ識別子ts_idxが2D_TS(２次元変換スキップのモード)であるか、あるいは変換量子化バイパスフラグtransquant_bypass_flagが１（真）であるかを判定する。変換スキップ識別子ts_idxが2D_TS、または、変換量子化バイパスフラグが１（真）であると判定された場合、スイッチ３３１は、予測残差Dを、変換係数Coeffとして外部へ出力する。すなわち、変換処理が終了し、処理は図２９に戻る。
【０２９８】
また、ステップＳ３３１において、変換スキップ識別子ts_idxが2D_TSでない（２次元変換スキップ以外のモード）、かつ変換量子化バイパスフラグが０（偽）であると判定された場合、スイッチ３３１は、予測残差Dをプライマリ変換部３３２へ出力する。つまり、処理はステップＳ３３２に進む。
【０２９９】
ステップＳ３３２において、プライマリ変換選択部３４１は、プライマリ水平変換指定フラグpt_hor_flag、プライマリ垂直変換指定フラグpt_ver_flag、予測モード情報PInfo、および変換スキップ識別子ts_idxを参照して、プライマリ水平変換PThorおよびプライマリ垂直変換PTverを選択し、それぞれ、プライマリ水平変換部３４３、プライマリ垂直変換部３４５に供給する。
【０３００】
ステップＳ３３３において、スイッチ３４２は、変換スキップ識別子ts_idxが1D_H_TS（水平方向の１次元変換スキップのモード）であるか否か（ts_idx==1D_H_TS）を判定する。変換スキップ識別子ts_idxが1D_H_TSでないと判定された場合、処理はステップＳ３３４に進む。ステップＳ３３４において、プライマリ水平変換部３４３は、変換ブロック毎に、予測残差Dとプライマリ水平変換PThorの行列を入力とし、行列演算を行い、その結果をプライマリ水平変換後の変換係数Coeff_Phorとして出力する。ステップＳ３３４の処理が終了すると、処理はステップＳ３３５に進む。
【０３０１】
また、ステップＳ３３３において、変換スキップ識別子ts_idxが1D_H_TSであると判定された場合、スイッチ３４２は、予測残差Dを、プライマリ水平変換部３４３をスキップして、プライマリ水平変換後の変換係数Coeff_Phorとして、スイッチ３４４に供給する。つまり、ステップＳ３３４の処理が省略され、処理はステップＳ３３５に進む。
【０３０２】
ステップＳ３３５において、スイッチ３４４は、変換スキップ識別子ts_idxが1D_V_TS（垂直方向の１次元変換スキップのモード）であるか否か（ts_idx==1D_V_TS）を判定する。変換スキップ識別子ts_idxが1D_V_TSでないと判定された場合、処理はステップＳ３３６に進む。ステップＳ３３６において、プライマリ垂直変換部３４５は、プライマリ垂直変換を行う。すなわち、プライマリ垂直変換部３４５は、変換ブロック毎に、プライマリ水平変換後の変換係数Coeff_Phorとプライマリ垂直変換PTverの行列を入力とし、行列演算を行い、その結果をプライマリ変換後の変換係数Coeff_Pとして出力する。ステップＳ３３６の処理が終了すると、処理はステップＳ３３７に進む。
【０３０３】
また、ステップＳ３３５において、変換スキップ識別子ts_idxが1D_V_TSであると判定された場合、スイッチ３４４は、プライマリ水平変換後の変換係数Coeff_Phorを、プライマリ垂直変換部３４５への入力をスキップして、プライマリ変換後の変換係数Coeff_Pとして出力するよう制御する。すなわち、ステップＳ３３６の処理が省略され、処理はステップＳ３３７に進む。
【０３０４】
ステップＳ３３７において、セカンダリ変換部３３３は、入力されたプライマリ変換係数Coeff_Pに対して、セカンダリ変換識別子st_idxに基づいて、セカンダリ変換を行い、変換係数Coeffを導出し出力する。ステップＳ３３７の処理が終了すると、変換処理が終了し、処理は図２９に戻る。
【０３０５】
＜プライマリ変換選択処理の流れ＞
次に、図３０のステップＳ３３２において実行されるプライマリ変換選択処理の流れの例を、図３１のフローチャートを参照して説明する。
【０３０６】
プライマリ変換選択処理が開始されると、プライマリ変換選択部３４１は、ステップＳ３５１において、適応プライマリ変換フラグapt_flagが１（真）であるか否かを判定する。適応プライマリ変換フラグapt_flagが１（真）であると判定された場合、処理はステップＳ３５２に進む。ステップＳ３５２において、プライマリ変換選択部３４１は、予測モード情報PInfoに基づいて、プライマリ垂直変換およびプライマリ水平変換のそれぞれについて変換セットを選択する。ステップＳ３５２の処理が終了すると、処理はステップＳ３５４に進む。
【０３０７】
また、ステップＳ３５１において、適応プライマリ変換フラグapt_flagが０（偽）であると判定された場合、処理はステップＳ３５３に進む。ステップＳ３５３において、プライマリ変換選択部３４１は、所定の変換セットを選択する。ステップＳ３５３の処理が終了すると、処理はステップＳ３５４に進む。
【０３０８】
ステップＳ３５４において、プライマリ変換選択部３４１は、水平変換セット識別子TransformSetH、及びプライマリ水平変換指定フラグpt_hor_flagを参照して、プライマリ水平変換PThorとして適用する直交変換を選択する。
【０３０９】
ステップＳ３５５おいて、逆プライマリ変換選択部３４１は、垂直変換セット識別子TransformSetV、及びプライマリ垂直変換指定フラグpt_ver_flagを参照して、プライマリ垂直変換PTverとして適用する直交変換を選択する。
【０３１０】
ステップＳ３５５の処理が終了すると、プライマリ変換選択処理が終了し、処理は図３０に戻る。
【０３１１】
なお上述の処理も、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。例えば、ステップＳ３３３およびステップＳ３３５の処理を省略し、ステップＳ３３１において、変換スキップ識別子ts_idxが1D_H_TS(水平方向の１次元変換スキップ)の場合、単位行列をプライマリ水平変換PThorとして選択し、ステップＳ３３４の処理を実行するようにしてもよい。また、ステップＳ３３１において、変換スキップ識別子ts_idxが1D_V_TS(垂直方向の１次元変換スキップ)の場合、単位行列をプライマリ垂直変換PTverとして選択し、ステップＳ３３６の処理を実行するようにしてもよい。
【０３１２】
以上のようにすることにより、画像符号化装置３００が備える変換部３１３は、変換スキップを適用するのが望ましい残差信号に対して、変換の処理量の低減、及びエナジーコンパクションの低下を抑制することができ、符号化効率の向上した逆変換処理を行うことができる。より具体的には、変換部３１３は、水平方向、または垂直方向の１次元変換をスキップことが望ましい残差信号に対して、プライマリ変換の処理量の低減、及びエナジーコンパクションの低下を抑制することができ、符号化効率の向上した逆プライマリ変換処理を行うことができる。
【０３１３】
特に、水平方向に信号の連続性が急激に変化するステップエッジの特性を持つ残差信号に対しては、水平方向の１次元変換をスキップし、垂直方向に１次元変換をすることで、２次元直交変換をする場合と比較して、垂直方向の周波数成分の低域に非ゼロ係数を効率よく集中させることができる。すなわち、エナジーコンパクションを高めることができるため、符号化効率を向上させることができる。
【０３１４】
同様に、垂直方向に信号の連続性が急激に変化するステップエッジの特性を持つ残差信号に対しては、垂直方向の１次元変換をスキップし、水平方向に１次元変換をすることで、２次元直交変換をする場合と比較して、水平方向の周波数成分の低域に非ゼロ係数を効率よく集中させることができる。すなわち、エナジーコンパクションを高めることができ、符号化効率を向上させることができる。
【０３１５】
＜６．第６の実施の形態＞
＜プライマリ変換識別子の符号化＞
上述した画像復号装置１００における変換スキップ識別子ts_idx及びプライマリ変換識別子pt_idxは、上述した復号処理の逆処理に対応する。したがって、画像符号化処理も、画像復号処理の場合と同様に、これらのパラメータに基づいて以下のような制御が行われるものとする。
（１）変換スキップフラグts_flagを変換スキップ識別子ts_idxへ拡張する。
（２）変換スキップ識別子ts_idxが1D_H_TSの時、プライマリ水平変換・及びセカンダリ変換をスキップする。
（３）変換スキップ識別子ts_idxが1D_V_TSの時、プライマリ垂直変換・及びセカンダリ変換をスキップする。
【０３１６】
この場合、変換ブロック単位で符号化された変換スキップ識別子ts_idxが、1D_H_TSの場合、プライマリ水平変換指定フラグpt_hor_flagは使用されないため、この情報を符号化するのは冗長である。また、変換スキップ識別子ts_idxが1D_V_TSを示す場合、プライマリ垂直変換指定フラグpt_ver_flagは使用されないため、この情報を符号化するのは冗長である。従って、プライマリ変換識別子pt_idxを効率良く符号化するために、下記の変更を加える。
（１）変換スキップ識別子ts_idx = NO_TSの場合、符号化側では、上述の式（２０）の通りに、プライマリ水平変換指定フラグpt_hor_flag及びプライマリ垂直変換指定フラグpt_ver_flagからプライマリ変換識別子pt_idxが導出される。
（２）変換スキップ識別子ts_idxが1D_H_TSの場合、符号化側では、上述の式（２２）の通りに、プライマリ変換識別子pt_idx = pt_ver_flagとして導出される。
（３）変換スキップ識別子ts_idxが1D_V_TSの場合、符号化側では、上述の式（２４）の通りに、プライマリ変換識別子pt_idx = pt_hor_flagとして導出される。
（４）変換スキップ識別子ts_idxが2D_TSの場合、符号化側では、プライマリ変換識別子pt_idxの符号化が省略される。
【０３１７】
このようにすることで、変換スキップ識別子ts_idxが1D_H_TS、または1D_V_TSの場合、プライマリ変換識別子pt_idxは、１ビットのbin列として、算術符号化されるため、２ビットのbin列として算術符号化する場合より、符号化対象となるbin列を削減することができる。従って、符号量の増大を抑制することでき、符号化効率を向上させることができる。
【０３１８】
また、セカンダリ変換に関して、変換スキップ識別子ts_idxが2D_TS、または1D_H_TS、または、1D_V_TSの場合、セカンダリ変換をスキップするため、セカンダリ変換の制御パラメータであるセカンダリ変換識別子st_idxを符号化するのは冗長である。そこで、変換スキップ識別子ts_idxが2D_TS、または1D_H_TS、または1D_V_TSの場合には、セカンダリ変換識別子st_idxの符号化が省略されるように変更することで、セカンダリ変換識別子st_idxの符号化に係る処理量の増大を抑制することができる。
【０３１９】
＜変換スキップ識別子ts_idxの符号化＞
図３２は、符号化部３１５の変換スキップ識別子ts_idxの符号化に関する主な構成例を示すブロック図である。図３２に示されるように、符号化部３１５は、変換スキップ有効フラグ符号化部３６１、最大変換スキップブロックサイズ符号化部３６２、変換量子化バイパスフラグ符号化部３６３、および変換スキップ識別子符号化部３６４を有する。
【０３２０】
変換スキップ有効フラグ符号化部３６１は、変換スキップ有効フラグts_enabled_flagの符号化に関する処理を行う。最大変換スキップブロックサイズ符号化部３６２は、最大変換スキップブロックサイズMaxTSSizeの符号化に関する処理を行う。変換量子化バイパスフラグ符号化部３６３は、変換量子化バイパスフラグtransquant_bypass_flagの符号化に関する処理を行う。変換スキップ識別子符号化部３６４は、変換スキップ識別子ts_idxの符号化に関する処理を行う。
【０３２１】
このような符号化部３１５により図２９のステップＳ３１０において実行される、変換スキップ識別子ts_idxに関する符号化処理の流れの例を、図３３のフローチャートを参照して説明する。
【０３２２】
符号化処理が開始されると、変換スキップ有効フラグ符号化部３６１は、ステップＳ３７１において、ヘッダ情報HInfoに含まれる変換スキップ有効フラグts_enabled_flagを可変長符号化し、ビット列を生成し出力する。
【０３２３】
ステップＳ３７２において、最大変換スキップブロックサイズ符号化部３６２は、ヘッダ情報Hinfoに含まれる変換スキップ有効フラグts_enabled_flagが、１（真）であるか否かを判定する。変換スキップ有効フラグts_enabled_flagが１（真）であると判定された場合、処理はステップＳ３７３に進む。
【０３２４】
ステップＳ３７３において、最大変換スキップブロックサイズ符号化部３６２は、ヘッダ情報HInfoに含まれる最大変換スキップブロックサイズMaxTSSize (あるいは、2を底とする対数値log2MaxTSSize)を可変長符号化し、ビット列を生成し出力する。ステップＳ３７３の処理が終了すると、処理はステップＳ３７４に進む。また、ステップＳ３７２において、変換スキップ有効フラグts_enabled_flagが０（偽）であると判定された場合、ステップＳ３７３の処理が省略され、処理はステップＳ３７４に進む。
【０３２５】
ステップＳ３７４において、変換量子化バイパスフラグ符号化部３６３は、ヘッダ情報HInfoに含まれる変換量子化バイパスフラグtransquant_bypass_flagを可変長符号化し、ビット列を生成して出力する。
【０３２６】
ステップＳ３７５において、変換スキップ識別子符号化部３６４は、変換情報Tinfoに含まれる変換量子化バイパスフラグtransquant_bypass_flagが１（真）であるか否かを判定する。変換量子化バイパスフラグtransquant_bypass_flagが１（真）であると判定された場合、変換スキップ識別子ts_idxの符号化が省略され、符号化処理が終了し、処理は図２９に戻る。また、ステップＳ３７５において、変換量子化バイパスフラグtransquant_bypass_flagが０（偽）であると判定された場合、処理はステップＳ３７６に進む。
【０３２７】
ステップＳ３７６において、変換スキップ識別子符号化部３６４は、ヘッダ情報HInfoに含まれる変換スキップ有効フラグts_enabled_flagが１（真）であるか否かを判定する。変換スキップ有効フラグts_enabled_flagが０（偽）であると判定された場合、変換スキップ識別子ts_idxの符号化が省略され、符号化処理が終了し、処理は図２９に戻る。また、変換スキップ有効フラグts_enabled_flagが１（真）であると判定された場合、処理はステップＳ３７７に進む。
【０３２８】
ステップＳ３７７において、変換スキップ識別子符号化部３６４は、処理対象の変換ブロックのサイズTBSizeが最大変換スキップブロックサイズMaxTSSize以下であるか否か、言い換えれば、条件式(TBSize<=MaxTSSize)の論理値が１（真）であるか否かを判定する。
【０３２９】
なお、条件式(TBSize<=MaxTSSize)において、TBSizeは、上述の式（２６）または式（２７）により導出する。また、式（２６）及び式（２７）において、TBSize、TBWSize、TBHSizeを、2を底とする対数値log2TBSize、log2TBWSize、log2TBHSizeに置き換えてもよい。この場合、式（２６）は上述の式（２８）に置き換え、式（２７）は上述の式（２９）へ置き換える。なお、対数値を用いる場合は、上述の条件式(TBSize<=MaxTSSize)のTBSizeおよび最大変換スキップブロックサイズMaxTSSizeは、それぞれ対応する対数値log2TBSize、log2MaxTSSizeへ置き換えるものとする。
【０３３０】
TBSizeが最大変換スキップブロックサイズMaxTSSizeより大きい、すなわち、条件式の論理値が０であると判定された場合、変換スキップ識別子ts_idxの符号化が省略され、符号化処理が終了し、処理は図２９に戻る。また、TBSizeが最大変換スキップブロックサイズMaxTSSize以下である、すなわち、条件式の論理値が１であると判定された場合、処理はステップＳ３７８に進む。
【０３３１】
ステップＳ３７８において、変換スキップ識別子符号化部３６４は、ヘッダ情報HInfoに含まれる変換スキップ識別子ts_idxを可変長符号化し、ビット列を生成し出力する。ステップＳ３７８の処理が終了すると、符号化処理が終了し、処理は図２９に戻る。
【０３３２】
以上において、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。
【０３３３】
このように各処理を実行することにより、JEM3と比較して、符号化側において、変換ブロック単位で２次元変換スキップ、水平方向または垂直方向の１次元変換スキップを適応的に選択することができる。従って、従来よりも１次元変換スキップが有効な残差信号に対して、１次元変換スキップのモードにより符号化することができるため、符号化効率を向上させることができる。
【０３３４】
＜プライマリ変換識別子pt_idxの符号化＞
図３４は、符号化部３１５の、プライマリ変換識別子pt_idxの符号化に関する主な構成例を示すブロック図である。図３４に示されるように、この場合の符号化部３１５は、プライマリ変換有効フラグ符号化部３７１、適応プライマリ変換フラグ符号化部３７２、およびプライマリ変換識別子符号化部３７３を有する。
【０３３５】
プライマリ変換有効フラグ符号化部３７１は、プライマリ変換有効フラグpt_enabled_flagの符号化に関する処理を行う。適応プライマリ変換フラグ符号化部３７２は、プライマリ変換フラグpt_enabled_flagの符号化に関する処理を行う。プライマリ変換識別子符号化部３７３は、プライマリ変換識別子pt_idxの符号化に関する処理を行う。
【０３３６】
このような符号化部３１５により図２９のステップＳ３１０において実行される、プライマリ変換識別子pt_idxに関する符号化処理の流れの例を、図３５のフローチャートを参照して説明する。
【０３３７】
符号化処理が開始されると、プライマリ変換有効フラグ符号化部３７１は、ステップＳ３９１において、ヘッダ情報HInfoに含まれるプライマリ変換有効フラグpt_enabled_flagを可変長符号化し、ビット列を生成し出力する。
【０３３８】
ステップＳ３９２において、適応プライマリ変換フラグ符号化部３７２は、ヘッダ情報Hinfoに含まれるプライマリ変換有効フラグpt_enabled_flagが、１（真）であるか否かを判定する。プライマリ変換有効フラグpt_enabled_flagが０であると判定された場合、プライマリ変換識別子pt_idxの導出や符号化に関する処理が省略され、符号化処理が終了し、処理は図２９に戻る。また、プライマリ変換有効フラグpt_enabled_flagが１であると判定された場合、処理はステップＳ３９３に進む。
【０３３９】
ステップＳ３９３において、適応プライマリ変換フラグ符号化部３７２は、ヘッダ情報HInfoに含まれる適応プライマリ変換フラグapt_flagを可変長符号化し、ビット列を生成し出力する。
【０３４０】
ステップＳ３９４において、適応プライマリ変換フラグ符号化部３７２は、適応プライマリ変換フラグapt_flagが、１（真）であるか否かを判定する。適応プライマリ変換フラグapt_flagが０（偽）であると判定された場合、プライマリ変換識別子pt_idxの導出や符号化に関する処理が省略され、符号化処理が終了し、処理は図２９に戻る。また、適応プライマリ変換フラグapt_flagが１（真）であると判定された場合、処理はステップＳ３９５に進む。
【０３４１】
ステップＳ３９５において、プライマリ変換識別子符号化部３７３は、変換量子化バイパスフラグtransquant_bypass_flagが、１（真）であるか否かを判定する。変換量子化バイパスフラグtransquant_bypass_flagが１（真）であると判定された場合、プライマリ変換識別子pt_idxの導出や符号化に関する処理が省略され、符号化処理が終了し、処理は図２９に戻る。また、変換量子化バイパスフラグtransquant_bypass_flagが０（偽）であると判定された場合、処理はステップＳ３９６に進む。
【０３４２】
ステップＳ３９６において、プライマリ変換識別子符号化部３７３は、変換スキップ識別子ts_idxが2D_TS(２次元変換スキップ)であるか否かを判定する。変換スキップ識別子ts_idxが2D_TSであると判定された場合、プライマリ変換識別子pt_idxの導出や符号化に関する処理が省略され、符号化処理が終了し、処理は図２９に戻る。また、変換スキップ識別子ts_idxが2D_TS以外であると判定された場合、処理はステップＳ３９７に進む。
【０３４３】
ステップＳ３９７において、プライマリ変換識別子符号化部３７３は、変換ブロックの縦サイズまたは横サイズの少なくとも一方が最大適応プライマリ変換ブロックサイズMaxPTSize以下（max(TBHSize, TBWSize)<=MaxPTSize）であるか否かを判定する。変換ブロックの縦サイズまたは横サイズの少なくとも一方が最大適応プライマリ変換ブロックサイズMaxPTSizeより大きいと判定された場合、プライマリ変換識別子pt_idxの導出や符号化に関する処理が省略され、符号化処理が終了し、処理は図２９に戻る。また、変換スキップ識別子ts_idxが2D_TS以外であると判定された場合、処理はステップＳ３９７に進む。変換ブロックの縦サイズおよび横サイズの両方ともが最大適応プライマリ変換ブロックサイズMaxPTSize以下であると判定された場合、処理はステップＳ３９８に進む。
【０３４４】
ステップＳ３９８において、プライマリ変換識別子符号化部３９８は、符号化対象の変換ブロックが輝度成分であるか否かを判定する。輝度成分でないと判定された場合、プライマリ変換識別子pt_idxの導出や符号化に関する処理が省略され、符号化処理が終了し、処理は図２９に戻る。また、輝度成分であると判定された場合、処理はステップＳ３９９に進む。
【０３４５】
ステップＳ３９９において、プライマリ変換識別子符号化部３９８は、残差情報Rinfoを参照して、変換ブロック内に存在する非ゼロ変換係数の総数numSig(sig_coeff_flag==1の総数)を導出する。ステップＳ３９９の処理が終了すると、処理はステップＳ４００に進む。
【０３４６】
ステップＳ４００において、プライマリ変換識別子符号化部３９８は、非ゼロ変換係数の総数numSigが所定の閾値ptNumSigTH以上であるか否か（numSig>=ptNumSigTH）を判定する。非ゼロ変換係数の総数numSigが所定の閾値ptNumSigTHより少ないと判定された場合、プライマリ変換識別子pt_idxの導出や符号化に関する処理が省略され、符号化処理が終了し、処理は図２９に戻る。また、非ゼロ変換係数の総数numSigが所定の閾値ptNumSigTH以上であると判定された場合、処理はステップＳ４０１に進む。
【０３４７】
ステップＳ４０１において、プライマリ変換識別子符号化部３７３は、変換スキップ識別子ts_idx、プライマリ水平変換指定フラグpt_hor_flag、及びプライマリ垂直変換指定フラグpt_ver_flagを参照して、プライマリ変換識別子pt_idxを導出する。なお、プライマリ変換識別子pt_idxの詳細の導出については後述する。
【０３４８】
ステップＳ４０２において、プライマリ変換識別子符号化部３７３は、ヘッダ情報HInfoに含まれるプライマリ変換識別子pt_idxを可変長符号化し、ビット列を生成し出力する。ステップＳ４０２の処理が終了すると、符号化処理が終了し、処理は図２９に戻る。
【０３４９】
以上においては、プライマリ変換識別子pt_idxの符号化に係る処理について説明したが、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。
【０３５０】
以上、変換スキップ識別子ts_idxが1D_H_TS、または1D_V_TSの場合、プライマリ変換識別子pt_idxを1ビットのbin列として、算術符号化することができるため、2ビットのbin列として算術符号化する場合より、符号化対象となるbin列を削減することができる。従って、プライマリ変換識別子pt_idxの符号化に係る処理量を低減することができる。また、符号量を削減することできるので、符号化効率を向上させることができる。
【０３５１】
次に図３６のフローチャートを参照して、符号化部３１５により図３５のステップＳ４０１において実行される、プライマリ変換識別子pt_idxのの導出処理の流れの例を説明する。
【０３５２】
プライマリ変換識別子導出処理が開始されると、ステップＳ４２１において、プライマリ変換識別子符号化部３７３は、変換スキップ識別子ts_idxがNO_TS (変換スキップでない)であるか否かを判定する。変換スキップ識別子ts_idxがNO_TSであると判定された場合、処理はステップＳ４２２に進む。
【０３５３】
ステップＳ４２２において、プライマリ変換識別子符号化部３７３は、上述の式（２０）により、プライマリ水平変換指定フラグpt_hor_flag、及びプライマリ垂直変換フラグpt_ver_flagからプライマリ変換識別子pt_idxを導出する。ステップＳ４２２の処理が終了すると、プライマリ変換識別子導出処理が終了し、処理は図３５に戻る。
【０３５４】
また、ステップＳ４２１において、変換スキップ識別子ts_idxがNO_TS以外であると判定された場合、処理はステップＳ４２３に進む。
【０３５５】
ステップＳ４２３において、プライマリ変換識別子符号化部３７３は、変換スキップ識別子ts_idxが2D_TS (２次元変換スキップ)であるか否かを判定する。変換スキップ識別子ts_idxが2D_TSであると判定された場合、プライマリ変換識別子導出処理が終了し、処理は図３５に戻る。
【０３５６】
また、ステップＳ４２３において、変換スキップ識別子ts_idxが2D_TS以外であると判定された場合、処理はステップＳ４２４に進む。
【０３５７】
ステップＳ４２４において、プライマリ変換識別子符号化部３７３は、変換スキップ識別子ts_idxが1D_H_TS(水平方向の１次元変換スキップ)であるか否かを判定する。変換スキップ識別子ts_idxが1D_H_TSであると判定された場合、処理はステップＳ４２５に進む。
【０３５８】
ステップＳ４２５において、プライマリ変換識別子符号化部３７３は、上述の式（２２）に基づいて、プライマリ変換識別子pt_idx = pt_ver_flagとして導出する。ステップＳ４２５の処理が終了すると、プライマリ変換識別子導出処理が終了し、処理は図３５に戻る。
【０３５９】
また、ステップＳ４２４において、変換スキップ識別子ts_idxが1D_H_TS以外であると判定された場合、処理はステップＳ４２６に進む。
【０３６０】
ステップＳ４２６において、プライマリ変換識別子符号化部３７３は、上述の式（２４）に基づいて、プライマリ変換識別子pt_idx = pt_hor_flagとして導出する。ステップＳ４２６の処理が終了すると、プライマリ変換識別子導出処理が終了し、処理は図３５に戻る。
【０３６１】
もちろん、この処理も、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。
【０３６２】
＜セカンダリ変換識別子st_idxの復号＞
図３７は、符号化部３１５の、セカンダリ変換識別子st_idxの復号に関する主な構成例を示すブロック図である。図３７に示されるように、この場合の符号化部３１５は、セカンダリ変換有効フラグ符号化部３８１およびセカンダリ変換識別子符号化部３８２を有する。
【０３６３】
セカンダリ変換有効フラグ符号化部３８１は、セカンダリ変換有効フラグst_enabled_flagの符号化に関する処理を行う。セカンダリ変換識別子符号化部３８２は、セカンダリ変換識別子st_idxの符号化に関する処理を行う。
【０３６４】
このような符号化部３１５により図２９のステップＳ３１０において実行される、セカンダリ変換識別子st_idxに関する復号処理の流れの例を、図３８のフローチャートを参照して説明する。
【０３６５】
符号化処理が開始されると、セカンダリ変換有効フラグ符号化部３８１は、ステップＳ４４１において、ヘッダ情報HInfoに含まれるセカンダリ変換有効フラグst_enabled_flagを可変長符号化し、ビット列を生成し出力する。
【０３６６】
ステップＳ４４２において、セカンダリ変換識別子符号化部３８２は、ヘッダ情報Hinfoに含まれるセカンダリ変換有効フラグst_enabled_flagが、１（真）であるか否かを判定する。セカンダリ変換有効フラグst_enabled_flagが０（偽）であると判定された場合、符号化処理が終了し、処理は図２９に戻る。
【０３６７】
また、ステップＳ４４２において、セカンダリ変換有効フラグst_enabled_flagが１（真）であると判定された場合、処理はステップＳ４４３に進む。
【０３６８】
ステップＳ４４３において、セカンダリ変換識別子符号化部３８２は、変換量子化バイパスフラグtransquant_bypass_flagが、１（真）であるか否かを判定する。変換量子化バイパスフラグtransquant_bypass_flagが１（真）であると判定された場合、符号化処理が終了し、処理は図２９に戻る。また、変換量子化バイパスフラグtransquant_bypass_flagが０（偽）であると判定された場合、処理はステップＳ４４４に進む。
【０３６９】
ステップＳ４４４において、セカンダリ変換識別子符号化部３８２は、変換スキップ識別子ts_idxが、NO_TS（変換スキップをしない）であるか否かを判定する。変換スキップ識別子ts_idxがNO_TS以外であると判定された場合、符号化処理が終了し、処理は図２９に戻る。また、変換スキップ識別子ts_idxがNO_TSであると判定された場合、処理はステップＳ４４５に進む。
【０３７０】
ステップＳ４４５において、セカンダリ変換識別子符号化部３８２は、残差情報Rinfoを参照して、変換ブロック内に存在する非ゼロ変換係数の総数numSig(sig_coeff_flag==1の総数)を導出する。
【０３７１】
ステップＳ４４６において、セカンダリ変換識別子符号化部３８２は、非ゼロ変換係数の総数numSigが所定の閾値TH以上であるか否か（numSig>=stNumSigTH）を判定する。非ゼロ変換係数の総数numSigが所定の閾値THより少ない（numSig<stNumSigTH）、すなわち、条件式の論理値が０（偽）であると判定された場合、セカンダリ変換識別子符号化部３８２は、符号化処理が終了し、処理は図２９に戻る。また、非ゼロ変換係数の総数numSigが所定の閾値TH以上である（numSig>=stNumSigTH）、すなわち、条件式の論理値が１（真）であると判定された場合、処理はステップＳ４４７に進む。
【０３７２】
ステップＳ４４７において、セカンダリ変換識別子符号化部３８２は、ヘッダ情報HInfoに含まれるセカンダリ変換識別子st_idxを可変長符号化し、ビット列を生成し出力する。
【０３７３】
ステップＳ４４７の処理が終了すると、符号化処理が終了し、処理は図２９に戻る。
【０３７４】
この処理も、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。また、以上においてはセカンダリ変換の制御パラメータを、セカンダリ変換識別子st_idxとしたが、セカンダリ変換フラグst_flagであってもよい。
【０３７５】
以上のようにすることにより、従来技術と比較して、変換ブロック単位でセカンダリ変換識別子を符号化する場合において、２次元変換スキップ、または１次元変換スキップを適用する場合（ts_idx!=NO_TS)の場合、セカンダリ変換識別子の符号化処理を省略することができる。すなわち、セカンダリ変換識別子の符号化に係る処理量、及び符号量を低減させることができる。
【０３７６】
＜７．第７の実施の形態＞
＜プライマリ水平変換指定フラグとプライマリ垂直変換指定フラグの符号化＞
以上においては、プライマリ水平変換指定フラグpt_hor_flagとプライマリ垂直変換指定フラグpt_ver_flagとから、プライマリ変換識別子pt_idxが導出されるように説明したが、これに限定されない。例えば、プライマリ変換識別子pt_idxを符号化する代わりに、プライマリ水平変換指定フラグpt_hor_flagおよびプライマリ垂直変換指定フラグpt_ver_flagを符号化するようにしてもよい。
【０３７７】
図３９は、符号化部３１５の、プライマリ水平変換指定フラグpt_hor_flagおよびプライマリ垂直変換指定フラグpt_ver_flagの符号化に関する主な構成例を示すブロック図である。図３９に示されるように、この場合の符号化部３１５は、プライマリ変換有効フラグ符号化部３７１、適応プライマリ変換フラグ符号化部３７２、プライマリ水平変換指定フラグ符号化部３９１、およびプライマリ垂直変換指定フラグ符号化部３９２を有する。
【０３７８】
プライマリ水平変換指定フラグ符号化部３９１は、プライマリ水平変換指定フラグpt_hor_flagの符号化に関する処理を行う。プライマリ垂直変換指定フラグ符号化部３９２は、プライマリ垂直変換指定フラグpt_ver_flagの符号化に関する処理を行う。
【０３７９】
プライマリ水平変換指定フラグ符号化部３９１は、図２５に示されるシンタクスにおいて、符号SYN15を付したif文の条件を満たす場合、すなわち、変換スキップ識別子ts_idxがNO_TSまたは1D_V_TSであって(ts_idx==NO_TS||ts_idx==1D_V_TS)、変換量子化バイパスフラグが０（偽）であって（transquant_bypass_flag==0）、輝度成分であって(cIdx==0)、適応プライマリ変換フラグapt_flagが１（真）であって（apt_flag==1）、かつ、変換ブロック内の非ゼロ変換係数の総数numSigが閾値ptNumSigTH以上(numSig>=ptNumSigTH)である場合に、符号化データ#1のビット列からプライマリ水平変換指定フラグpt_hor_flagを可変長符号化し、ビット列を生成する。それ以外の場合、プライマリ水平変換指定フラグ符号化部３９１は、プライマリ水平変換指定フラグpt_hor_flagの符号化を省略する。
【０３８０】
同様に、プライマリ垂直変換指定フラグ符号化部３９２は、図２５に示されるシンタクスにおいて、符号SYN17を付したif文の条件を満たす場合、すなわち、変換スキップ識別子ts_idxがNO_TSまたは1D_H_TSであって(ts_idx==NO_TS||ts_idx==1D_H_TS)、変換量子化バイパスフラグが０（偽）であって（transquant_bypass_flag==0）、輝度成分であって(cIdx==0)、適応プライマリ変換フラグapt_flagが１（真）であって（apt_flag==1）、かつ、変換ブロック内の非ゼロ変換係数の総数numSigが閾値ptNumSigTH以上(numSig>=ptNumSigTH)である場合に、プライマリ垂直変換指定フラグpt_ver_flagを可変長符号化し、ビット列を生成する。それ以外の場合、プライマリ垂直変換指定フラグ符号化部３９２は、プライマリ垂直変換指定フラグpt_ver_flagの符号化を省略する。
【０３８１】
以上のようにすることにより、変換スキップ識別子ts_idxが1D_H_TSの場合、プライマリ水平変換指定フラグpt_hor_flagの符号化を省略することができる。同様に、変換スキップ識別子ts_idxが1D_V_TSの場合、プライマリ垂直変換指定フラグpt_ver_flagの符号化を省略することができる。従って、プライマリ水平変換指定フラグpt_hor_flag、及びプライマリ垂直変換指定フラグpt_ver_flagの符号化に係る処理量を低減することができる。また、符号量の増大を抑制することができるので、符号化効率を向上させることができる。
【０３８２】
＜８．第８の実施の形態＞
＜変換部の他の構成＞
第４の実施の形態においては、プライマリ変換部３３２のスイッチ３４２は、プライマリ水平変換をスキップする場合、予測残差Ｄをスイッチ３４４に供給するように説明したが、その際、量子化の為のスケーリングを行うようにしてもよい。また、第４の実施の形態においては、プライマリ変換部３３２のスイッチ３４４は、プライマリ垂直変換をスキップする場合、プライマリ水平変換後の変換係数Coeff_Phorをプライマリ変換後の変換係数Coeff_Pとして外部（セカンダリ変換部３３３）へ出力するように説明したが、その際、量子化の為のスケーリングを行うようにしてもよい。
【０３８３】
図４０は、その場合の変換部３１３の主な構成例を示すブロック図である。図４０に示されるように、変換部３１３は、この場合も、図２８の場合と基本的に同様の構成を有する。ただし、この場合、プライマリ変換部３３２は、スケーリング部４０１およびスケーリング部４０２を有する。
【０３８４】
スイッチ３４２は、プライマリ水平変換をスキップする場合、変換係数Ｄをスケーリング部４０１に供給する。スケーリング部４０１は、スイッチ３４２から供給される変換係数Ｄに対してスケーリングを行う。例えば、スケーリング部４０１は、供給された変換係数に対して、プライマリ水平変換を実施した場合と同一のノルムになるように正規化するためのN（Nは自然数）ビットのビットシフト演算を行う。スケーリング部４０１は、スケーリングした変換係数をスイッチ３４４に供給する。
【０３８５】
スイッチ３４４は、プライマリ垂直変換をスキップする場合、プライマリ水平変換後の変換係数Coeff_Phorを予測残差D'としてスケーリング部４０２に供給する。スケーリング部４０２は、スケーリング部４０１の場合と同様に、スイッチ３４４から供給されるプライマリ水平変換後の変換係数Coeff_Phorに対してスケーリングを行う。例えば、スケーリング部４０２は、供給された変換係数に対して、プライマリ垂直変換を実施した場合と同一のノルムになるように正規化するためのN（Nは自然数）ビットのビットシフト演算を行う。スケーリング部４０２は、スケーリングした予測残差D'を外部に出力する。
【０３８６】
このようにすることにより、変換係数のダイナミックレンジ幅を所定の範囲内に抑えることができるので、復号の負荷の増大を抑制することができる。
【０３８７】
＜９．第９の実施の形態＞
＜情報のデータ単位＞
以上において説明した画像に関する情報や画像の符号化・復号に関する情報が設定される（または対象とするデータの）データ単位は、それぞれ任意であり、上述した例に限定されない。例えば、これらの情報が、それぞれ、TU、TB、PU、PB、CU、LCU、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報毎に設定される。つまり、全ての情報が同一のデータ単位毎に設定される（または対象とする）ようにしなくてもよい。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
【０３８８】
＜制御情報＞
以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可（または禁止）するか否かを制御する制御情報（例えばenabled_flag）を伝送するようにしてもよい。また、例えば、上述した本技術を適用することを許可（または禁止）するブロックサイズの上限若しくは下限、またはその両方を指定する制御情報を伝送するようにしてもよい。
【０３８９】
＜符号化・復号＞
本技術は、プライマリ変換およびセカンダリ変換（逆セカンダリ変および逆プライマリ変換）を行う任意の画像符号化・復号に適用することができる。つまり、変換（逆変換）、量子化（逆量子化）、符号化（復号）、予測等の仕様は任意であり、上述した例に限定されない。例えば、変換（逆変換）において、（逆）プライマリ変換および（逆）セカンダリ変換以外の（逆）変換（すなわち３以上の（逆）変換）が行われるようにしてもよい。また、符号化（復号）は、可逆な方式であってもよいし、非可逆な方式であってもよい。さらに、量子化（逆量子化）や予測等は省略するようにしてもよい。また、フィルタ処理等の上述していない処理が行われるようにしてもよい。
【０３９０】
＜本技術の適用分野＞
本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。
【０３９１】
例えば、本技術は、鑑賞の用に供される画像を伝送するシステムやデバイスにも適用することができる。また、例えば、本技術は、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、農業の用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、畜産業の用に供されるシステムやデバイスにも適用することができる。さらに、本技術は、例えば火山、森林、海洋等の自然の状態を監視するシステムやデバイスにも適用することができる。また、本技術は、例えば天気、気温、湿度、風速、日照時間等を観測する気象観測システムや気象観測装置に適用することができる。さらに、本技術は、例えば鳥類、魚類、ハ虫類、両生類、哺乳類、昆虫、植物等の野生生物の生態を観測するシステムやデバイス等にも適用することができる。
【０３９２】
＜多視点画像符号化・復号システムへの適用＞
上述した一連の処理は、複数の視点（ビュー（view））の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点（ビュー（view））の符号化・復号において、本技術を適用するようにすればよい。
【０３９３】
＜階層画像符号化・復号システムへの適用＞
また、上述した一連の処理は、所定のパラメータについてスケーラビリティ（scalability）機能を有するように複数レイヤ化（階層化）された階層画像の符号化・復号を行う階層画像符号化（スケーラブル符号化）・復号システムに適用することができる。その場合、各階層（レイヤ）の符号化・復号において、本技術を適用するようにすればよい。
【０３９４】
＜コンピュータ＞
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
【０３９５】
図４１は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０３９６】
図４１に示されるコンピュータ８００において、CPU（Central Processing Unit）８０１、ROM（Read Only Memory）８０２、RAM（Random Access Memory）８０３は、バス８０４を介して相互に接続されている。
【０３９７】
バス８０４にはまた、入出力インタフェース８１０も接続されている。入出力インタフェース８１０には、入力部８１１、出力部８１２、記憶部８１３、通信部８１４、およびドライブ８１５が接続されている。
【０３９８】
入力部８１１は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部８１２は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部８１３は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部８１４は、例えば、ネットワークインタフェースよりなる。ドライブ８１５は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア８２１を駆動する。
【０３９９】
以上のように構成されるコンピュータでは、CPU８０１が、例えば、記憶部８１３に記憶されているプログラムを、入出力インタフェース８１０およびバス８０４を介して、RAM８０３にロードして実行することにより、上述した一連の処理が行われる。RAM８０３にはまた、CPU８０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０４００】
コンピュータ（CPU８０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア８２１に記録して適用することができる。その場合、プログラムは、リムーバブルメディア８２１をドライブ８１５に装着することにより、入出力インタフェース８１０を介して、記憶部８１３にインストールすることができる。
【０４０１】
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部８１４で受信し、記憶部８１３にインストールすることができる。
【０４０２】
その他、このプログラムは、ROM８０２や記憶部８１３に、あらかじめインストールしておくこともできる。
【０４０３】
＜本技術の応用＞
上述した実施形態に係る画像符号化装置３００や画像復号装置１００は、例えば、衛星放送、ケーブルＴＶなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機や受信機、または、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置や、これら記憶媒体から画像を再生する再生装置などの、様々な電子機器に応用され得る。
【０４０４】
＜第１の応用例：テレビジョン受像機＞
図４２は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置９００は、アンテナ９０１、チューナ９０２、デマルチプレクサ９０３、デコーダ９０４、映像信号処理部９０５、表示部９０６、音声信号処理部９０７、スピーカ９０８、外部インタフェース（I/F）部９０９、制御部９１０、ユーザインタフェース（I/F）部９１１、及びバス９１２を備える。
【０４０５】
チューナ９０２は、アンテナ９０１を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ９０２は、復調により得られた符号化ビットストリームをデマルチプレクサ９０３へ出力する。即ち、チューナ９０２は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置９００における伝送部としての役割を有する。
【０４０６】
デマルチプレクサ９０３は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ９０４へ出力する。また、デマルチプレクサ９０３は、符号化ビットストリームからEPG（Electronic Program Guide）などの補助的なデータを抽出し、抽出したデータを制御部９１０に供給する。なお、デマルチプレクサ９０３は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
【０４０７】
デコーダ９０４は、デマルチプレクサ９０３から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ９０４は、復号処理により生成される映像データを映像信号処理部９０５へ出力する。また、デコーダ９０４は、復号処理により生成される音声データを音声信号処理部９０７へ出力する。
【０４０８】
映像信号処理部９０５は、デコーダ９０４から入力される映像データを再生し、表示部９０６に映像を表示させる。また、映像信号処理部９０５は、ネットワークを介して供給されるアプリケーション画面を表示部９０６に表示させてもよい。また、映像信号処理部９０５は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部９０５は、例えばメニュー、ボタン又はカーソルなどのGUI（Graphical User Interface）の画像を生成し、生成した画像を出力画像に重畳してもよい。
【０４０９】
表示部９０６は、映像信号処理部９０５から供給される駆動信号により駆動され、表示デバイス（例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD（Organic ElectroLuminescence Display）（有機ELディスプレイ）など）の映像面上に映像又は画像を表示する。
【０４１０】
音声信号処理部９０７は、デコーダ９０４から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ９０８から音声を出力させる。また、音声信号処理部９０７は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
【０４１１】
外部インタフェース部９０９は、テレビジョン装置９００と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース部９０９を介して受信される映像ストリーム又は音声ストリームが、デコーダ９０４により復号されてもよい。即ち、外部インタフェース部９０９もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置９００における伝送部としての役割を有する。
【０４１２】
制御部９１０は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置９００の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部９１１から入力される操作信号に応じて、テレビジョン装置９００の動作を制御する。
【０４１３】
ユーザインタフェース部９１１は、制御部９１０と接続される。ユーザインタフェース部９１１は、例えば、ユーザがテレビジョン装置９００を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部９１１は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９１０へ出力する。
【０４１４】
バス９１２は、チューナ９０２、デマルチプレクサ９０３、デコーダ９０４、映像信号処理部９０５、音声信号処理部９０７、外部インタフェース部９０９及び制御部９１０を相互に接続する。
【０４１５】
このように構成されたテレビジョン装置９００において、デコーダ９０４が、上述した画像復号装置１００の機能を有するようにしてもよい。つまり、デコーダ９０４が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、テレビジョン装置９００は、図１乃至図４０を参照して上述した各実施の形態と同様の効果を得ることができる。
【０４１６】
また、このように構成されたテレビジョン装置９００において、映像信号処理部９０５が、例えば、デコーダ９０４から供給される画像データを符号化し、得られた符号化データを、外部インタフェース部９０９を介してテレビジョン装置９００の外部に出力させることができるようにしてもよい。そして、その映像信号処理部９０５が、上述した画像符号化装置３００の機能を有するようにしてもよい。つまり、映像信号処理部９０５が、デコーダ９０４から供給される画像データを、以上の各実施の形態において説明した方法で符号化するようにしてもよい。このようにすることにより、テレビジョン装置９００は、図１乃至図４０を参照して上述した各実施の形態と同様の効果を得ることができる。
【０４１７】
＜第２の応用例：携帯電話機＞
図４３は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機９２０は、アンテナ９２１、通信部９２２、音声コーデック９２３、スピーカ９２４、マイクロホン９２５、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、制御部９３１、操作部９３２、及びバス９３３を備える。
【０４１８】
アンテナ９２１は、通信部９２２に接続される。スピーカ９２４及びマイクロホン９２５は、音声コーデック９２３に接続される。操作部９３２は、制御部９３１に接続される。バス９３３は、通信部９２２、音声コーデック９２３、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、及び制御部９３１を相互に接続する。
【０４１９】
携帯電話機９２０は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
【０４２０】
音声通話モードにおいて、マイクロホン９２５により生成されるアナログ音声信号は、音声コーデック９２３に供給される。音声コーデック９２３は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック９２３は、圧縮後の音声データを通信部９２２へ出力する。通信部９２２は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号を、アンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部９２２は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック９２３へ出力する。音声コーデック９２３は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック９２３は、生成した音声信号をスピーカ９２４に供給して音声を出力させる。
【０４２１】
また、データ通信モードにおいて、例えば、制御部９３１は、操作部９３２を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部９３１は、文字を表示部９３０に表示させる。また、制御部９３１は、操作部９３２を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部９２２へ出力する。通信部９２２は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号を、アンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部９２２は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部９３１へ出力する。制御部９３１は、表示部９３０に電子メールの内容を表示させると共に、電子メールデータを記録再生部９２９に供給し、その記憶媒体に書き込ませる。
【０４２２】
記録再生部９２９は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB（Universal Serial Bus）メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
【０４２３】
また、撮影モードにおいて、例えば、カメラ部９２６は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部９２７へ出力する。画像処理部９２７は、カメラ部９２６から入力される画像データを符号化し、符号化ストリームを記録再生部９２９に供給し、その記憶媒体に書き込ませる。
【０４２４】
さらに、画像表示モードにおいて、記録再生部９２９は、記憶媒体に記録されている符号化ストリームを読み出して画像処理部９２７へ出力する。画像処理部９２７は、記録再生部９２９から入力される符号化ストリームを復号し、画像データを表示部９３０に供給し、その画像を表示させる。
【０４２５】
また、テレビ電話モードにおいて、例えば、多重分離部９２８は、画像処理部９２７により符号化された映像ストリームと、音声コーデック９２３から入力される音声ストリームとを多重化し、多重化したストリームを通信部９２２へ出力する。通信部９２２は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号を、アンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部９２２は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部９２８へ出力する。多重分離部９２８は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部９２７、音声ストリームを音声コーデック９２３へ出力する。画像処理部９２７は、映像ストリームを復号し、映像データを生成する。映像データは、表示部９３０に供給され、表示部９３０により一連の画像が表示される。音声コーデック９２３は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック９２３は、生成した音声信号をスピーカ９２４に供給して音声を出力させる。
【０４２６】
このように構成された携帯電話機９２０において、例えば画像処理部９２７が、上述した画像符号化装置３００の機能を有するようにしてもよい。つまり、画像処理部９２７が、画像データを、以上の各実施の形態において説明した方法で符号化するようにしてもよい。このようにすることにより、携帯電話機９２０は、図１乃至図４０を参照して上述した各実施の形態と同様の効果を得ることができる。
【０４２７】
また、このように構成された携帯電話機９２０において、例えば画像処理部９２７が、上述した画像復号装置１００の機能を有するようにしてもよい。つまり、画像処理部９２７が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、携帯電話機９２０は、図１乃至図４０を参照して上述した各実施の形態と同様の効果を得ることができる。
【０４２８】
＜第３の応用例：記録再生装置＞
図４４は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置９４０は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置９４０は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置９４０は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置９４０は、音声データおよび映像データを復号する。
【０４２９】
記録再生装置９４０は、チューナ９４１、外部インタフェース（I/F）部９４２、エンコーダ９４３、HDD（Hard Disk Drive）部９４４、ディスクドライブ９４５、セレクタ９４６、デコーダ９４７、OSD（On-Screen Display）部９４８、制御部９４９、およびユーザインタフェース（I/F）部９５０を備える。
【０４３０】
チューナ９４１は、アンテナ（図示せず）を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ９４１は、復調により得られた符号化ビットストリームをセレクタ９４６へ出力する。即ち、チューナ９４１は、記録再生装置９４０における伝送部としての役割を有する。
【０４３１】
外部インタフェース部９４２は、記録再生装置９４０と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース部９４２は、例えば、IEEE（Institute of Electrical and Electronic Engineers）1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース部９４２を介して受信される映像データおよび音声データは、エンコーダ９４３へ入力される。即ち、外部インタフェース部９４２は、記録再生装置９４０における伝送部としての役割を有する。
【０４３２】
エンコーダ９４３は、外部インタフェース部９４２から入力される映像データおよび音声データが符号化されていない場合に、映像データおよび音声データを符号化する。そして、エンコーダ９４３は、符号化ビットストリームをセレクタ９４６へ出力する。
【０４３３】
HDD部９４４は、映像および音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD部９４４は、映像および音声の再生時に、これらデータをハードディスクから読み出す。
【０４３４】
ディスクドライブ９４５は、装着されている記録媒体へのデータの記録および読み出しを行う。ディスクドライブ９４５に装着される記録媒体は、例えばDVD（Digital Versatile Disc）ディスク（DVD-Video、DVD-RAM（DVD - Random Access Memory）、DVD-R（DVD - Recordable）、DVD-RW（DVD - Rewritable）、DVD+R（DVD + Recordable）、DVD+RW（DVD + Rewritable）等）又はBlu-ray（登録商標）ディスクなどであってよい。
【０４３５】
セレクタ９４６は、映像および音声の記録時には、チューナ９４１又はエンコーダ９４３から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD９４４又はディスクドライブ９４５へ出力する。また、セレクタ９４６は、映像及び音声の再生時には、HDD９４４又はディスクドライブ９４５から入力される符号化ビットストリームをデコーダ９４７へ出力する。
【０４３６】
デコーダ９４７は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ９４７は、生成した映像データをOSD部９４８へ出力する。また、デコーダ９４７は、生成した音声データを外部のスピーカへ出力する。
【０４３７】
OSD部９４８は、デコーダ９４７から入力される映像データを再生し、映像を表示する。また、OSD部９４８は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
【０４３８】
制御部９４９は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置９４０の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部９５０から入力される操作信号に応じて、記録再生装置９４０の動作を制御する。
【０４３９】
ユーザインタフェース部９５０は、制御部９４９と接続される。ユーザインタフェース部９５０は、例えば、ユーザが記録再生装置９４０を操作するためのボタンおよびスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部９５０は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９４９へ出力する。
【０４４０】
このように構成された記録再生装置９４０において、例えばエンコーダ９４３が、上述した画像符号化装置３００の機能を有するようにしてもよい。つまり、エンコーダ９４３が、画像データを、以上の各実施の形態において説明方法で符号化するようにしてもよい。このようにすることにより、記録再生装置９４０は、図１乃至図４０を参照して上述した各実施の形態と同様の効果を得ることができる。
【０４４１】
また、このように構成された記録再生装置９４０において、例えばデコーダ９４７が、上述した画像復号装置１００の機能を有するようにしてもよい。つまり、デコーダ９４７が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、記録再生装置９４０は、図１乃至図４０を参照して上述した各実施の形態と同様の効果を得ることができる。
【０４４２】
＜第４の応用例：撮像装置＞
図４５は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置９６０は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
【０４４３】
撮像装置９６０は、光学ブロック９６１、撮像部９６２、信号処理部９６３、画像処理部９６４、表示部９６５、外部インタフェース（I/F）部９６６、メモリ部９６７、メディアドライブ９６８、OSD部９６９、制御部９７０、ユーザインタフェース（I/F）部９７１、およびバス９７２を備える。
【０４４４】
光学ブロック９６１は、撮像部９６２に接続される。撮像部９６２は、信号処理部９６３に接続される。表示部９６５は、画像処理部９６４に接続される。ユーザインタフェース部９７１は、制御部９７０に接続される。バス９７２は、画像処理部９６４、外部インタフェース部９６６、メモリ部９６７、メディアドライブ９６８、OSD部９６９、および制御部９７０を相互に接続する。
【０４４５】
光学ブロック９６１は、フォーカスレンズ及び絞り機構などを有する。光学ブロック９６１は、被写体の光学像を撮像部９６２の撮像面に結像させる。撮像部９６２は、CCD（Charge Coupled Device）又はCMOS（Complementary Metal Oxide Semiconductor）などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部９６２は、画像信号を信号処理部９６３へ出力する。
【０４４６】
信号処理部９６３は、撮像部９６２から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部９６３は、カメラ信号処理後の画像データを画像処理部９６４へ出力する。
【０４４７】
画像処理部９６４は、信号処理部９６３から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部９６４は、生成した符号化データを外部インタフェース部９６６またはメディアドライブ９６８へ出力する。また、画像処理部９６４は、外部インタフェース部９６６またはメディアドライブ９６８から入力される符号化データを復号し、画像データを生成する。そして、画像処理部９６４は、生成した画像データを表示部９６５へ出力する。また、画像処理部９６４は、信号処理部９６３から入力される画像データを表示部９６５へ出力して画像を表示させてもよい。また、画像処理部９６４は、OSD部９６９から取得される表示用データを、表示部９６５へ出力する画像に重畳してもよい。
【０４４８】
OSD部９６９は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部９６４へ出力する。
【０４４９】
外部インタフェース部９６６は、例えばUSB入出力端子として構成される。外部インタフェース部９６６は、例えば、画像の印刷時に、撮像装置９６０とプリンタとを接続する。また、外部インタフェース部９６６には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置９６０にインストールされ得る。さらに、外部インタフェース部９６６は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース部９６６は、撮像装置９６０における伝送部としての役割を有する。
【０４５０】
メディアドライブ９６８に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ９６８に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD（Solid State Drive）のような非可搬性の記憶部が構成されてもよい。
【０４５１】
制御部９７０は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置９６０の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部９７１から入力される操作信号に応じて、撮像装置９６０の動作を制御する。
【０４５２】
ユーザインタフェース部９７１は、制御部９７０と接続される。ユーザインタフェース部９７１は、例えば、ユーザが撮像装置９６０を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース部９７１は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９７０へ出力する。
【０４５３】
このように構成された撮像装置９６０において、例えば画像処理部９６４が、上述した画像符号化装置３００の機能を有するようにしてもよい。つまり、画像処理部９６４が、画像データを、以上の各実施の形態において説明した方法で符号化するようにしてもよい。このようにすることにより、撮像装置９６０は、図１乃至図４０を参照して上述した各実施の形態と同様の効果を得ることができる。
【０４５４】
また、このように構成された撮像装置９６０において、例えば画像処理部９６４が、上述した画像復号装置１００の機能を有するようにしてもよい。つまり、画像処理部９６４が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、撮像装置９６０は、図１乃至図４０を参照して上述した各実施の形態と同様の効果を得ることができる。
【０４５５】
＜第５の応用例：ビデオセット＞
また、本技術は、任意の装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI（Large Scale Integration）等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等（すなわち、装置の一部の構成）として実施することもできる。図４６は、本技術を適用したビデオセットの概略的な構成の一例を示している。
【０４５６】
近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、１機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する１セットとして実施を行う場合も多く見られるようになってきた。
【０４５７】
図４６に示されるビデオセット１３００は、このような多機能化された構成であり、画像の符号化や復号（いずれか一方でもよいし、両方でも良い）に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
【０４５８】
図４６に示されるように、ビデオセット１３００は、ビデオモジュール１３１１、外部メモリ１３１２、パワーマネージメントモジュール１３１３、およびフロントエンドモジュール１３１４等のモジュール群と、コネクティビティ１３２１、カメラ１３２２、およびセンサ１３２３等の関連する機能を有するデバイスとを有する。
【０４５９】
モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
【０４６０】
図４６の例の場合、ビデオモジュール１３１１は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム１３３３、およびRFモジュール１３３４を有する。
【０４６１】
プロセッサは、所定の機能を有する構成をSoC（System On a Chip）により半導体チップに集積したものであり、例えばシステムLSI（Large Scale Integration）等と称されるものもある。この所定の機能を有する構成は、論理回路（ハードウエア構成）であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム（ソフトウエア構成）であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路（ハードウエア構成）により実現し、その他の機能をCPUにおいて実行されるプログラム（ソフトウエア構成）により実現するようにしてもよい。
【０４６２】
図４６のアプリケーションプロセッサ１３３１は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ１３３１において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ１３３２等、ビデオモジュール１３１１内外の構成を必要に応じて制御することもできる。
【０４６３】
ビデオプロセッサ１３３２は、画像の符号化・復号（その一方または両方）に関する機能を有するプロセッサである。
【０４６４】
ブロードバンドモデム１３３３は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線（またはその両方）の広帯域通信により送信するデータ（デジタル信号）をデジタル変調する等してアナログ信号に変換したり、その広帯域通信により受信したアナログ信号を復調してデータ（デジタル信号）に変換したりする。ブロードバンドモデム１３３３は、例えば、ビデオプロセッサ１３３２が処理する画像データ、画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報を処理する。
【０４６５】
RFモジュール１３３４は、アンテナを介して送受信されるRF（Radio Frequency）信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール１３３４は、ブロードバンドモデム１３３３により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール１３３４は、フロントエンドモジュール１３１４を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
【０４６６】
なお、図４６において点線１３４１に示されるように、アプリケーションプロセッサ１３３１とビデオプロセッサ１３３２を、一体化し、１つのプロセッサとして構成されるようにしてもよい。
【０４６７】
外部メモリ１３１２は、ビデオモジュール１３１１の外部に設けられた、ビデオモジュール１３１１により利用される記憶デバイスを有するモジュールである。この外部メモリ１３１２の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM（Dynamic Random Access Memory）のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
【０４６８】
パワーマネージメントモジュール１３１３は、ビデオモジュール１３１１（ビデオモジュール１３１１内の各構成）への電力供給を管理し、制御する。
【０４６９】
フロントエンドモジュール１３１４は、RFモジュール１３３４に対してフロントエンド機能（アンテナ側の送受信端の回路）を提供するモジュールである。図４６に示されるように、フロントエンドモジュール１３１４は、例えば、アンテナ部１３５１、フィルタ１３５２、および増幅部１３５３を有する。
【０４７０】
アンテナ部１３５１は、無線信号を送受信するアンテナおよびその周辺の構成を有する。アンテナ部１３５１は、増幅部１３５３から供給される信号を無線信号として送信し、受信した無線信号を電気信号（RF信号）としてフィルタ１３５２に供給する。フィルタ１３５２は、アンテナ部１３５１を介して受信されたRF信号に対してフィルタ処理等を行い、処理後のRF信号をRFモジュール１３３４に供給する。増幅部１３５３は、RFモジュール１３３４から供給されるRF信号を増幅し、アンテナ部１３５１に供給する。
【０４７１】
コネクティビティ１３２１は、外部との接続に関する機能を有するモジュールである。コネクティビティ１３２１の物理構成は、任意である。例えば、コネクティビティ１３２１は、ブロードバンドモデム１３３３が対応する通信規格以外の通信機能を有する構成や、外部入出力端子等を有する。
【０４７２】
例えば、コネクティビティ１３２１が、Bluetooth（登録商標）、IEEE 802.11（例えばWi-Fi（Wireless Fidelity、登録商標））、NFC（Near Field Communication）、IrDA（InfraRed Data Association）等の無線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した信号を送受信するアンテナ等を有するようにしてもよい。また、例えば、コネクティビティ１３２１が、USB（Universal Serial Bus）、HDMI（登録商標）（High-Definition Multimedia Interface）等の有線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した端子を有するようにしてもよい。さらに、例えば、コネクティビティ１３２１が、アナログ入出力端子等のその他のデータ（信号）伝送機能等を有するようにしてもよい。
【０４７３】
なお、コネクティビティ１３２１が、データ（信号）の伝送先のデバイスを含むようにしてもよい。例えば、コネクティビティ１３２１が、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等の記録媒体に対してデータの読み出しや書き込みを行うドライブ（リムーバブルメディアのドライブだけでなく、ハードディスク、SSD（Solid State Drive）、NAS（Network Attached Storage）等も含む）を有するようにしてもよい。また、コネクティビティ１３２１が、画像や音声の出力デバイス（モニタやスピーカ等）を有するようにしてもよい。
【０４７４】
カメラ１３２２は、被写体を撮像し、被写体の画像データを得る機能を有するモジュールである。カメラ１３２２の撮像により得られた画像データは、例えば、ビデオプロセッサ１３３２に供給されて符号化される。
【０４７５】
センサ１３２３は、例えば、音声センサ、超音波センサ、光センサ、照度センサ、赤外線センサ、イメージセンサ、回転センサ、角度センサ、角速度センサ、速度センサ、加速度センサ、傾斜センサ、磁気識別センサ、衝撃センサ、温度センサ等、任意のセンサ機能を有するモジュールである。センサ１３２３により検出されたデータは、例えば、アプリケーションプロセッサ１３３１に供給されてアプリケーション等により利用される。
【０４７６】
以上においてモジュールとして説明した構成をプロセッサとして実現するようにしてもよいし、逆にプロセッサとして説明した構成をモジュールとして実現するようにしてもよい。
【０４７７】
以上のような構成のビデオセット１３００において、後述するようにビデオプロセッサ１３３２に本技術を適用することができる。したがって、ビデオセット１３００は、本技術を適用したセットとして実施することができる。
【０４７８】
＜ビデオプロセッサの構成例＞
図４７は、本技術を適用したビデオプロセッサ１３３２（図４６）の概略的な構成の一例を示している。
【０４７９】
図４７の例の場合、ビデオプロセッサ１３３２は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
【０４８０】
図４７に示されるように、ビデオプロセッサ１３３２は、ビデオ入力処理部１４０１、第１画像拡大縮小部１４０２、第２画像拡大縮小部１４０３、ビデオ出力処理部１４０４、フレームメモリ１４０５、およびメモリ制御部１４０６を有する。また、ビデオプロセッサ１３３２は、エンコード・デコードエンジン１４０７、ビデオES（Elementary Stream）バッファ１４０８Ａおよび１４０８Ｂ、並びに、オーディオESバッファ１４０９Ａおよび１４０９Ｂを有する。さらに、ビデオプロセッサ１３３２は、オーディオエンコーダ１４１０、オーディオデコーダ１４１１、多重化部（MUX（Multiplexer））１４１２、逆多重化部（DMUX（Demultiplexer））１４１３、およびストリームバッファ１４１４を有する。
【０４８１】
ビデオ入力処理部１４０１は、例えばコネクティビティ１３２１（図４６）等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第１画像拡大縮小部１４０２は、画像データに対してフォーマット変換や画像の拡大縮小処理等を行う。第２画像拡大縮小部１４０３は、画像データに対して、ビデオ出力処理部１４０４を介して出力する先でのフォーマットに応じて画像の拡大縮小処理を行ったり、第１画像拡大縮小部１４０２と同様のフォーマット変換や画像の拡大縮小処理等を行ったりする。ビデオ出力処理部１４０４は、画像データに対して、フォーマット変換やアナログ信号への変換等を行って、再生されたビデオ信号として例えばコネクティビティ１３２１等に出力する。
【０４８２】
フレームメモリ１４０５は、ビデオ入力処理部１４０１、第１画像拡大縮小部１４０２、第２画像拡大縮小部１４０３、ビデオ出力処理部１４０４、およびエンコード・デコードエンジン１４０７によって共用される画像データ用のメモリである。フレームメモリ１４０５は、例えばDRAM等の半導体メモリとして実現される。
【０４８３】
メモリ制御部１４０６は、エンコード・デコードエンジン１４０７からの同期信号を受けて、アクセス管理テーブル１４０６Ａに書き込まれたフレームメモリ１４０５へのアクセススケジュールに従ってフレームメモリ１４０５に対する書き込み・読み出しのアクセスを制御する。アクセス管理テーブル１４０６Ａは、エンコード・デコードエンジン１４０７、第１画像拡大縮小部１４０２、第２画像拡大縮小部１４０３等で実行される処理に応じて、メモリ制御部１４０６により更新される。
【０４８４】
エンコード・デコードエンジン１４０７は、画像データのエンコード処理、並びに、画像データが符号化されたデータであるビデオストリームのデコード処理を行う。例えば、エンコード・デコードエンジン１４０７は、フレームメモリ１４０５から読み出した画像データを符号化し、ビデオストリームとしてビデオESバッファ１４０８Ａに順次書き込む。また、例えば、ビデオESバッファ１４０８Ｂからビデオストリームを順次読み出して復号し、画像データとしてフレームメモリ１４０５に順次書き込む。エンコード・デコードエンジン１４０７は、これらの符号化や復号において、フレームメモリ１４０５を作業領域として使用する。また、エンコード・デコードエンジン１４０７は、例えばマクロブロック毎の処理を開始するタイミングで、メモリ制御部１４０６に対して同期信号を出力する。
【０４８５】
ビデオESバッファ１４０８Ａは、エンコード・デコードエンジン１４０７によって生成されたビデオストリームをバッファリングして、多重化部（MUX）１４１２に供給する。ビデオESバッファ１４０８Ｂは、逆多重化部（DMUX）１４１３から供給されたビデオストリームをバッファリングして、エンコード・デコードエンジン１４０７に供給する。
【０４８６】
オーディオESバッファ１４０９Ａは、オーディオエンコーダ１４１０によって生成されたオーディオストリームをバッファリングして、多重化部（MUX）１４１２に供給する。オーディオESバッファ１４０９Ｂは、逆多重化部（DMUX）１４１３から供給されたオーディオストリームをバッファリングして、オーディオデコーダ１４１１に供給する。
【０４８７】
オーディオエンコーダ１４１０は、例えばコネクティビティ１３２１等から入力されたオーディオ信号を例えばデジタル変換し、例えばMPEGオーディオ方式やAC3（AudioCode number 3）方式等の所定の方式で符号化する。オーディオエンコーダ１４１０は、オーディオ信号が符号化されたデータであるオーディオストリームをオーディオESバッファ１４０９Ａに順次書き込む。オーディオデコーダ１４１１は、オーディオESバッファ１４０９Ｂから供給されたオーディオストリームを復号し、例えばアナログ信号への変換等を行って、再生されたオーディオ信号として例えばコネクティビティ１３２１等に供給する。
【０４８８】
多重化部（MUX）１４１２は、ビデオストリームとオーディオストリームとを多重化する。この多重化の方法（すなわち、多重化により生成されるビットストリームのフォーマット）は任意である。また、この多重化の際に、多重化部（MUX）１４１２は、所定のヘッダ情報等をビットストリームに付加することもできる。つまり、多重化部（MUX）１４１２は、多重化によりストリームのフォーマットを変換することができる。例えば、多重化部（MUX）１４１２は、ビデオストリームとオーディオストリームとを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームに変換する。また、例えば、多重化部（MUX）１４１２は、ビデオストリームとオーディオストリームとを多重化することにより、記録用のファイルフォーマットのデータ（ファイルデータ）に変換する。
【０４８９】
逆多重化部（DMUX）１４１３は、多重化部（MUX）１４１２による多重化に対応する方法で、ビデオストリームとオーディオストリームとが多重化されたビットストリームを逆多重化する。つまり、逆多重化部（DMUX）１４１３は、ストリームバッファ１４１４から読み出されたビットストリームからビデオストリームとオーディオストリームとを抽出する（ビデオストリームとオーディオストリームとを分離する）。つまり、逆多重化部（DMUX）１４１３は、逆多重化によりストリームのフォーマットを変換（多重化部（MUX）１４１２による変換の逆変換）することができる。例えば、逆多重化部（DMUX）１４１３は、例えばコネクティビティ１３２１やブロードバンドモデム１３３３等から供給されたトランスポートストリームを、ストリームバッファ１４１４を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。また、例えば、逆多重化部（DMUX）１４１３は、例えばコネクティビティ１３２１により各種記録媒体から読み出されたファイルデータを、ストリームバッファ１４１４を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。
【０４９０】
ストリームバッファ１４１４は、ビットストリームをバッファリングする。例えば、ストリームバッファ１４１４は、多重化部（MUX）１４１２から供給されたトランスポートストリームをバッファリングし、所定のタイミングにおいて、または外部からの要求等に基づいて、例えばコネクティビティ１３２１やブロードバンドモデム１３３３等に供給する。
【０４９１】
また、例えば、ストリームバッファ１４１４は、多重化部（MUX）１４１２から供給されたファイルデータをバッファリングし、所定のタイミングにおいて、または外部からの要求等に基づいて、例えばコネクティビティ１３２１等に供給し、各種記録媒体に記録させる。
【０４９２】
さらに、ストリームバッファ１４１４は、例えばコネクティビティ１３２１やブロードバンドモデム１３３３等を介して取得したトランスポートストリームをバッファリングし、所定のタイミングにおいて、または外部からの要求等に基づいて、逆多重化部（DMUX）１４１３に供給する。
【０４９３】
また、ストリームバッファ１４１４は、例えばコネクティビティ１３２１等において各種記録媒体から読み出されたファイルデータをバッファリングし、所定のタイミングにおいて、または外部からの要求等に基づいて、逆多重化部（DMUX）１４１３に供給する。
【０４９４】
次に、このような構成のビデオプロセッサ１３３２の動作の例について説明する。例えば、コネクティビティ１３２１等からビデオプロセッサ１３３２に入力されたビデオ信号は、ビデオ入力処理部１４０１において４：２：２Ｙ／Ｃｂ／Ｃｒ方式等の所定の方式のデジタル画像データに変換され、フレームメモリ１４０５に順次書き込まれる。このデジタル画像データは、第１画像拡大縮小部１４０２または第２画像拡大縮小部１４０３に読み出されて、４：２：０Ｙ／Ｃｂ／Ｃｒ方式等の所定の方式へのフォーマット変換および拡大縮小処理が行われ、再びフレームメモリ１４０５に書き込まれる。この画像データは、エンコード・デコードエンジン１４０７によって符号化され、ビデオストリームとしてビデオESバッファ１４０８Ａに書き込まれる。
【０４９５】
また、コネクティビティ１３２１等からビデオプロセッサ１３３２に入力されたオーディオ信号は、オーディオエンコーダ１４１０によって符号化され、オーディオストリームとして、オーディオESバッファ１４０９Ａに書き込まれる。
【０４９６】
ビデオESバッファ１４０８Ａのビデオストリームと、オーディオESバッファ１４０９Ａのオーディオストリームは、多重化部（MUX）１４１２に読み出されて多重化され、トランスポートストリームまたはファイルデータ等に変換される。多重化部（MUX）１４１２により生成されたトランスポートストリームは、ストリームバッファ１４１４にバッファされた後、例えばコネクティビティ１３２１やブロードバンドモデム１３３３等を介して外部ネットワークに出力される。また、多重化部（MUX）１４１２により生成されたファイルデータは、ストリームバッファ１４１４にバッファされた後、例えばコネクティビティ１３２１等に出力され、各種記録媒体に記録される。
【０４９７】
また、例えばコネクティビティ１３２１やブロードバンドモデム１３３３等を介して外部ネットワークからビデオプロセッサ１３３２に入力されたトランスポートストリームは、ストリームバッファ１４１４にバッファされた後、逆多重化部（DMUX）１４１３により逆多重化される。また、例えばコネクティビティ１３２１等において各種記録媒体から読み出され、ビデオプロセッサ１３３２に入力されたファイルデータは、ストリームバッファ１４１４にバッファされた後、逆多重化部（DMUX）１４１３により逆多重化される。つまり、ビデオプロセッサ１３３２に入力されたトランスポートストリームまたはファイルデータは、逆多重化部（DMUX）１４１３によりビデオストリームとオーディオストリームとに分離される。
【０４９８】
オーディオストリームは、オーディオESバッファ１４０９Ｂを介してオーディオデコーダ１４１１に供給され、復号されてオーディオ信号が再生される。また、ビデオストリームは、ビデオESバッファ１４０８Ｂに書き込まれた後、エンコード・デコードエンジン１４０７により順次読み出されて復号されてフレームメモリ１４０５に書き込まれる。復号された画像データは、第２画像拡大縮小部１４０３によって拡大縮小処理されて、フレームメモリ１４０５に書き込まれる。そして、復号された画像データは、ビデオ出力処理部１４０４に読み出されて、４：２：２Ｙ／Ｃｂ／Ｃｒ方式等の所定の方式にフォーマット変換され、さらにアナログ信号に変換されて、ビデオ信号が再生出力される。
【０４９９】
このように構成されるビデオプロセッサ１３３２に本技術を適用する場合、エンコード・デコードエンジン１４０７に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、エンコード・デコードエンジン１４０７が、上述した画像符号化装置３００の機能若しくは画像復号装置１００の機能またはその両方を有するようにしてもよい。このようにすることにより、ビデオプロセッサ１３３２は、図１乃至図４０を参照して上述した各実施の形態と同様の効果を得ることができる。
【０５００】
なお、エンコード・デコードエンジン１４０７において、本技術（すなわち、画像符号化装置３００の機能若しくは画像復号装置１００の機能またはその両方）は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
【０５０１】
＜ビデオプロセッサの他の構成例＞
図４８は、本技術を適用したビデオプロセッサ１３３２の概略的な構成の他の例を示している。図４８の例の場合、ビデオプロセッサ１３３２は、ビデオデータを所定の方式で符号化・復号する機能を有する。
【０５０２】
より具体的には、図４８に示されるように、ビデオプロセッサ１３３２は、制御部１５１１、ディスプレイインタフェース１５１２、ディスプレイエンジン１５１３、画像処理エンジン１５１４、および内部メモリ１５１５を有する。また、ビデオプロセッサ１３３２は、コーデックエンジン１５１６、メモリインタフェース１５１７、多重化・逆多重化部（MUX DMUX）１５１８、ネットワークインタフェース１５１９、およびビデオインタフェース１５２０を有する。
【０５０３】
制御部１５１１は、ディスプレイインタフェース１５１２、ディスプレイエンジン１５１３、画像処理エンジン１５１４、およびコーデックエンジン１５１６等、ビデオプロセッサ１３３２内の各処理部の動作を制御する。
【０５０４】
図４８に示されるように、制御部１５１１は、例えば、メインCPU１５３１、サブCPU１５３２、およびシステムコントローラ１５３３を有する。メインCPU１５３１は、ビデオプロセッサ１３３２内の各処理部の動作を制御するためのプログラム等を実行する。メインCPU１５３１は、そのプログラム等に従って制御信号を生成し、各処理部に供給する（つまり、各処理部の動作を制御する）。サブCPU１５３２は、メインCPU１５３１の補助的な役割を果たす。例えば、サブCPU１５３２は、メインCPU１５３１が実行するプログラム等の子プロセスやサブルーチン等を実行する。システムコントローラ１５３３は、メインCPU１５３１およびサブCPU１５３２が実行するプログラムを指定する等、メインCPU１５３１およびサブCPU１５３２の動作を制御する。
【０５０５】
ディスプレイインタフェース１５１２は、制御部１５１１の制御の下、画像データを例えばコネクティビティ１３２１等に出力する。例えば、ディスプレイインタフェース１５１２は、デジタルデータの画像データをアナログ信号に変換し、再生されたビデオ信号として、またはデジタルデータの画像データのまま、コネクティビティ１３２１のモニタ装置等に出力する。
【０５０６】
ディスプレイエンジン１５１３は、制御部１５１１の制御の下、画像データに対して、その画像を表示させるモニタ装置等のハードウエアスペックに合わせるように、フォーマット変換、サイズ変換、色域変換等の各種変換処理を行う。
【０５０７】
画像処理エンジン１５１４は、制御部１５１１の制御の下、画像データに対して、例えば画質改善のためのフィルタ処理等、所定の画像処理を施す。
【０５０８】
内部メモリ１５１５は、ディスプレイエンジン１５１３、画像処理エンジン１５１４、およびコーデックエンジン１５１６により共用される、ビデオプロセッサ１３３２の内部に設けられたメモリである。内部メモリ１５１５は、例えば、ディスプレイエンジン１５１３、画像処理エンジン１５１４、およびコーデックエンジン１５１６の間で行われるデータの授受に利用される。例えば、内部メモリ１５１５は、ディスプレイエンジン１５１３、画像処理エンジン１５１４、またはコーデックエンジン１５１６から供給されるデータを格納し、必要に応じて（例えば、要求に応じて）、そのデータを、ディスプレイエンジン１５１３、画像処理エンジン１５１４、またはコーデックエンジン１５１６に供給する。この内部メモリ１５１５は、どのような記憶デバイスにより実現するようにしてもよいが、一般的にブロック単位の画像データやパラメータ等といった小容量のデータの格納に利用することが多いので、例えばSRAM（Static Random Access Memory）のような比較的（例えば外部メモリ１３１２と比較して）小容量だが応答速度が高速な半導体メモリにより実現するのが望ましい。
【０５０９】
コーデックエンジン１５１６は、画像データの符号化や復号に関する処理を行う。このコーデックエンジン１５１６が対応する符号化・復号の方式は任意であり、その数は１つであってもよいし、複数であってもよい。例えば、コーデックエンジン１５１６は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化または符号化データの復号を行うようにしてもよい。
【０５１０】
図４８に示される例において、コーデックエンジン１５１６は、コーデックに関する処理の機能ブロックとして、例えば、MPEG-2 Video１５４１、AVC/H.264１５４２、HEVC/H.265１５４３、HEVC/H.265(Scalable)１５４４、HEVC/H.265(Multi-view)１５４５、およびMPEG-DASH１５５１を有する。
【０５１１】
MPEG-2 Video１５４１は、画像データをMPEG-2方式で符号化したり復号したりする機能ブロックである。AVC/H.264１５４２は、画像データをAVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.265１５４３は、画像データをHEVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.265(Scalable)１５４４は、画像データをHEVC方式でスケーラブル符号化したりスケーラブル復号したりする機能ブロックである。HEVC/H.265(Multi-view)１５４５は、画像データをHEVC方式で多視点符号化したり多視点復号したりする機能ブロックである。
【０５１２】
MPEG-DASH１５５１は、画像データをMPEG-DASH（MPEG-Dynamic Adaptive Streaming over HTTP）方式で送受信する機能ブロックである。MPEG-DASHは、HTTP（HyperText Transfer Protocol）を使ってビデオのストリーミングを行う技術であり、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択し伝送することを特徴の１つとする。MPEG-DASH１５５１は、規格に準拠するストリームの生成やそのストリームの伝送制御等を行い、画像データの符号化・復号については、上述したMPEG-2 Video１５４１乃至HEVC/H.265(Multi-view)１５４５を利用する。
【０５１３】
メモリインタフェース１５１７は、外部メモリ１３１２用のインタフェースである。画像処理エンジン１５１４やコーデックエンジン１５１６から供給されるデータは、メモリインタフェース１５１７を介して外部メモリ１３１２に供給される。また、外部メモリ１３１２から読み出されたデータは、メモリインタフェース１５１７を介してビデオプロセッサ１３３２（画像処理エンジン１５１４またはコーデックエンジン１５１６）に供給される。
【０５１４】
多重化・逆多重化部（MUX DMUX）１５１８は、符号化データのビットストリーム、画像データ、ビデオ信号等、画像に関する各種データの多重化や逆多重化を行う。この多重化・逆多重化の方法は任意である。例えば、多重化の際に、多重化・逆多重化部（MUX DMUX）１５１８は、複数のデータを１つにまとめるだけでなく、所定のヘッダ情報等をそのデータに付加することもできる。また、逆多重化の際に、多重化・逆多重化部（MUX DMUX）１５１８は、１つのデータを複数に分割するだけでなく、分割した各データに所定のヘッダ情報等を付加することもできる。つまり、多重化・逆多重化部（MUX DMUX）１５１８は、多重化・逆多重化によりデータのフォーマットを変換することができる。例えば、多重化・逆多重化部（MUX DMUX）１５１８は、ビットストリームを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームや、記録用のファイルフォーマットのデータ（ファイルデータ）に変換することができる。もちろん、逆多重化によりその逆変換も可能である。
【０５１５】
ネットワークインタフェース１５１９は、例えばブロードバンドモデム１３３３やコネクティビティ１３２１等向けのインタフェースである。ビデオインタフェース１５２０は、例えばコネクティビティ１３２１やカメラ１３２２等向けのインタフェースである。
【０５１６】
次に、このようなビデオプロセッサ１３３２の動作の例について説明する。例えば、コネクティビティ１３２１やブロードバンドモデム１３３３等を介して外部ネットワークからトランスポートストリームを受信すると、そのトランスポートストリームは、ネットワークインタフェース１５１９を介して多重化・逆多重化部（MUX DMUX）１５１８に供給されて逆多重化され、コーデックエンジン１５１６により復号される。コーデックエンジン１５１６の復号により得られた画像データは、例えば、画像処理エンジン１５１４により所定の画像処理が施され、ディスプレイエンジン１５１３により所定の変換が行われ、ディスプレイインタフェース１５１２を介して例えばコネクティビティ１３２１等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン１５１６の復号により得られた画像データは、コーデックエンジン１５１６により再符号化され、多重化・逆多重化部（MUX DMUX）１５１８により多重化されてファイルデータに変換され、ビデオインタフェース１５２０を介して例えばコネクティビティ１３２１等に出力され、各種記録媒体に記録される。
【０５１７】
さらに、例えば、コネクティビティ１３２１等により図示せぬ記録媒体から読み出された、画像データが符号化された符号化データのファイルデータは、ビデオインタフェース１５２０を介して多重化・逆多重化部（MUX DMUX）１５１８に供給されて逆多重化され、コーデックエンジン１５１６により復号される。コーデックエンジン１５１６の復号により得られた画像データは、画像処理エンジン１５１４により所定の画像処理が施され、ディスプレイエンジン１５１３により所定の変換が行われ、ディスプレイインタフェース１５１２を介して例えばコネクティビティ１３２１等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン１５１６の復号により得られた画像データは、コーデックエンジン１５１６により再符号化され、多重化・逆多重化部（MUX DMUX）１５１８により多重化されてトランスポートストリームに変換され、ネットワークインタフェース１５１９を介して例えばコネクティビティ１３２１やブロードバンドモデム１３３３等に供給され図示せぬ他の装置に伝送される。
【０５１８】
なお、ビデオプロセッサ１３３２内の各処理部の間での画像データやその他のデータの授受は、例えば、内部メモリ１５１５や外部メモリ１３１２を利用して行われる。また、パワーマネージメントモジュール１３１３は、例えば制御部１５１１への電力供給を制御する。
【０５１９】
このように構成されるビデオプロセッサ１３３２に本技術を適用する場合、コーデックエンジン１５１６に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、コーデックエンジン１５１６が、上述した画像符号化装置３００の機能若しくは画像復号装置１００の機能またはその両方を有するようにすればよい。このようにすることにより、ビデオプロセッサ１３３２は、図１乃至図４０を参照して上述した各実施の形態と同様の効果を得ることができる。
【０５２０】
なお、コーデックエンジン１５１６において、本技術（すなわち、画像符号化装置３００の機能）は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
【０５２１】
以上にビデオプロセッサ１３３２の構成を２例示したが、ビデオプロセッサ１３３２の構成は任意であり、上述した２例以外のものであってもよい。また、このビデオプロセッサ１３３２は、１つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する３次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
【０５２２】
＜装置への適用例＞
ビデオセット１３００は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット１３００は、テレビジョン装置９００（図４２）、携帯電話機９２０（図４３）、記録再生装置９４０（図４４）、撮像装置９６０（図４５）等に組み込むことができる。ビデオセット１３００を組み込むことにより、その装置は、図１乃至図４０を参照して上述した各実施の形態と同様の効果を得ることができる。
【０５２３】
なお、上述したビデオセット１３００の各構成の一部であっても、ビデオプロセッサ１３３２を含むものであれば、本技術を適用した構成として実施することができる。例えば、ビデオプロセッサ１３３２のみを本技術を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線１３４１により示されるプロセッサやビデオモジュール１３１１等を、本技術を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール１３１１、外部メモリ１３１２、パワーマネージメントモジュール１３１３、およびフロントエンドモジュール１３１４を組み合わせ、本技術を適用したビデオユニット１３６１として実施することもできる。いずれの構成の場合であっても、図１乃至図４０を参照して上述した各実施の形態と同様の効果を得ることができる。
【０５２４】
つまり、ビデオプロセッサ１３３２を含むものであればどのような構成であっても、ビデオセット１３００の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ１３３２、点線１３４１により示されるプロセッサ、ビデオモジュール１３１１、または、ビデオユニット１３６１を、テレビジョン装置９００（図４２）、携帯電話機９２０（図４３）、記録再生装置９４０（図４４）、撮像装置９６０（図４５）等に組み込むことができる。そして、本技術を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット１３００の場合と同様に、図１乃至図４０を参照して上述した各実施の形態と同様の効果を得ることができる。
【０５２５】
＜第６の応用例：ネットワークシステム＞
また、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。図４９は、本技術を適用したネットワークシステムの概略的な構成の一例を示している。
【０５２６】
図４９に示されるネットワークシステム１６００は、機器同士が、ネットワークを介して画像（動画像）に関する情報を授受するシステムである。このネットワークシステム１６００のクラウドサービス１６０１は、自身に通信可能に接続されるコンピュータ１６１１、AV（Audio Visual）機器１６１２、携帯型情報処理端末１６１３、IoT（Internet of Things）デバイス１６１４等の端末に対して、画像（動画像）に関するサービスを提供するシステムである。例えば、クラウドサービス１６０１は、所謂動画配信（オンデマンドやライブ配信）のような、画像（動画像）のコンテンツの供給サービスを端末に提供する。また、例えば、クラウドサービス１６０１は、端末から画像（動画像）のコンテンツを受け取って保管するバックアップサービスを提供する。また、例えば、クラウドサービス１６０１は、端末同士の画像（動画像）のコンテンツの授受を仲介するサービスを提供する。
【０５２７】
クラウドサービス１６０１の物理構成は任意である。例えば、クラウドサービス１６０１は、動画像を保存し、管理するサーバ、動画像を端末に配信するサーバ、動画像を端末から取得するサーバ、ユーザ（端末）や課金を管理するサーバ等の各種サーバや、インターネットやLAN等の任意のネットワークを有するようにしてもよい。
【０５２８】
コンピュータ１６１１は、例えば、パーソナルコンピュータ、サーバ、ワークステーション等のような情報処理装置により構成される。AV機器１６１２は、例えば、テレビジョン受像機、ハードディスクレコーダ、ゲーム機器、カメラ等のような画像処理装置により構成される。携帯型情報処理端末１６１３は、例えば、ノート型パーソナルコンピュータ、タブレット端末、携帯電話機、スマートフォン等のような携帯型の情報処理装置により構成される。IoTデバイス１６１４は、例えば、機械、家電、家具、その他の物、ICタグ、カード型デバイス等、画像に関する処理を行う任意の物体により構成される。これらの端末は、いずれも通信機能を有し、クラウドサービス１６０１に接続し（セッションを確立し）、クラウドサービス１６０１と情報の授受を行う（すなわち通信を行う）ことができる。また、各端末は、他の端末と通信を行うこともできる。端末間の通信は、クラウドサービス１６０１を介して行うようにしてもよいし、クラウドサービス１６０１を介さずに行うようにしてもよい。
【０５２９】
以上のようなネットワークシステム１６００に本技術を適用し、端末間や、端末とクラウドサービス１６０１との間で画像（動画像）のデータが授受される際に、その画像データを各実施の形態において上述したように符号化・復号するようにしてもよい。つまり、端末（コンピュータ１６１１乃至IoTデバイス１６１４）やクラウドサービス１６０１が、それぞれ、上述した画像符号化装置３００や画像復号装置１００の機能を有するようにしてもよい。このようにすることにより、画像データを授受する端末（コンピュータ１６１１乃至IoTデバイス１６１４）やクラウドサービス１６０１は、図１乃至図４０を参照して上述した各実施の形態と同様の効果を得ることができる。
【０５３０】
＜その他＞
なお、符号化データ（ビットストリーム）に関する各種情報は、符号化データに多重化されて伝送され又は記録されるようにしてもよいし、符号化データに多重化されることなく、符号化データと関連付けられた別個のデータとして伝送され又は記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る（リンクさせ得る）ようにすることを意味する。つまり、互いに関連付けられたデータは、１つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ（画像）に関連付けられた情報は、その符号化データ（画像）とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ（画像）に関連付けられた情報は、その符号化データ（画像）とは別の記録媒体（又は同一の記録媒体の別の記録エリア）に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、１フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
【０５３１】
また、上述したように、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを１つのデータにまとめるといった、複数の物を１つにまとめることを意味し、上述の「関連付ける」の１つの方法を意味する。
【０５３２】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０５３３】
例えば、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【０５３４】
また、例えば、１つの装置（または処理部）として説明した構成を分割し、複数の装置（または処理部）として構成するようにしてもよい。逆に、以上において複数の装置（または処理部）として説明した構成をまとめて１つの装置（または処理部）として構成されるようにしてもよい。また、各装置（または各処理部）の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置（または処理部）の構成の一部を他の装置（または他の処理部）の構成に含めるようにしてもよい。
【０５３５】
また、例えば、本技術は、１つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０５３６】
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能（機能ブロック等）を有し、必要な情報を得ることができるようにすればよい。
【０５３７】
また、例えば、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０５３８】
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【０５３９】
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術を、他の実施の形態において説明した本技術と組み合わせて実施することもできる。また、上述した任意の本技術を、上述していない他の技術と併用して実施することもできる。
【０５４０】
なお、本技術は以下のような構成も取ることができる。
（１）  符号化データを復号する復号部と、
前記復号部により前記符号化データが復号されて得られた変換スキップ識別子の値に基づいて、画像データが変換された変換係数データに対する垂直方向の逆プライマリ変換である逆プライマリ垂直変換の実行を制御する逆プライマリ垂直変換制御部と、
前記変換スキップ識別子の値に基づいて、画像データが変換された係数データに対する水平方向の逆プライマリ変換である逆プライマリ水平変換の実行を制御する逆プライマリ水平変換制御部と
を備える画像処理装置。
（２）  前記逆プライマリ垂直変換制御部は、
前記変換スキップ識別子が垂直方向の１次元変換をスキップしないことを示す場合、前記変換係数データに対する前記逆プライマリ垂直変換を実行させ、
前記変換スキップ識別子が垂直方向の１次元変換をスキップすることを示す場合、前記変換係数データに対する前記逆プライマリ垂直変換を省略させる
（１）に記載の画像処理装置。
（３）  前記逆プライマリ水平変換制御部は、
前記変換スキップ識別子が水平方向の１次元変換をスキップしないことを示す場合、前記変換係数データに対する前記逆プライマリ水平変換を実行させ、
前記変換スキップ識別子が水平方向の１次元変換をスキップすることを示す場合、前記変換係数データに対する前記逆プライマリ水平変換を省略させる
（１）または（２）に記載の画像処理装置。
（４）  前記逆プライマリ垂直変換および前記逆プライマリ水平変換に適用する直交変換を選択する選択部をさらに備える
（１）乃至（３）のいずれかに記載の画像処理装置。
（５）  前記選択部は、
前記復号部により前記符号化データが復号されて得られた垂直変換セット識別子とプライマリ垂直変換指定フラグに基づいて、前記逆プライマリ垂直変換として適用する直交変換を選択し、
前記復号部により前記符号化データが復号されて得られた水平変換セット識別子とプライマリ水平変換指定フラグに基づいて、前記逆プライマリ水平変換として適用する直交変換を選択する
（４）に記載の画像処理装置。
（６）  前記復号部は、前記変換スキップ識別子の値に応じて、プライマリ変換識別子から前記プライマリ垂直変換指定フラグおよび前記プライマリ水平変換指定フラグを導出する
（５）に記載の画像処理装置。
（７）  前記復号部は、
前記変換スキップ識別子が２次元変換をスキップしないことを示す場合、前記プライマリ変換識別子を２ビットのbin列として処理して前記プライマリ垂直変換指定フラグおよび前記プライマリ水平変換指定フラグを導出し、
前記変換スキップ識別子が垂直方向または水平方向の１次元変換をスキップしないことを示す場合、前記プライマリ変換識別子を１ビットのbin列として処理して前記プライマリ垂直変換指定フラグまたは前記プライマリ水平変換指定フラグを導出する
（６）に記載の画像処理装置。
（８）  前記復号部は、前記符号化データに含まれる前記プライマリ垂直変換指定フラグおよび前記プライマリ水平変換指定フラグを復号する
（５）乃至（７）のいずれかに記載の画像処理装置。
（９）  前記復号部は、前記変換スキップ識別子が、垂直方向若しくは水平方向の１次元変換または２次元変換をスキップしないことを示す場合、セカンダリ変換識別子の復号を省略し、前記セカンダリ変換識別子を、セカンダリ変換をしないことを示す値に設定する
（１）乃至（８）のいずれかに記載の画像処理装置。
（１０）  符号化データを復号し、
前記符号化データが復号されて得られた変換スキップ識別子の値に基づいて、画像データが変換された変換係数データに対する垂直方向の逆プライマリ変換である逆プライマリ垂直変換の実行を制御し、
前記変換スキップ識別子の値に基づいて、画像データが変換された係数データに対する水平方向の逆プライマリ変換である逆プライマリ水平変換の実行を制御する
画像処理方法。
（１１）  変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する水平方向のプライマリ変換であるプライマリ水平変換の実行を制御するプライマリ水平変換制御部と、
前記変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する垂直方向のプライマリ変換であるプライマリ垂直変換の実行を制御するプライマリ垂直変換制御部と、
前記変換スキップ識別子を符号化する符号化部と
を備える画像処理装置。
（１２）  前記プライマリ水平変換制御部は、
前記変換スキップ識別子が水平方向の１次元変換をスキップしないことを示す場合、前記残差データに対する前記プライマリ水平変換を実行させ、
前記変換スキップ識別子が水平方向の１次元変換をスキップすることを示す場合、前記残差データに対する前記プライマリ水平変換を省略させる
（１１）に記載の画像処理装置。
（１３）  前記プライマリ垂直変換制御部は、
前記変換スキップ識別子が垂直方向の１次元変換をスキップしないことを示す場合、前記残差データに対する前記プライマリ垂直変換を実行させ、
前記変換スキップ識別子が垂直方向の１次元変換をスキップすることを示す場合、前記残差データに対する前記プライマリ垂直変換を省略させる
（１１）または（１２）に記載の画像処理装置。
（１４）  前記プライマリ水平変換および前記プライマリ垂直変換に適用する直交変換を選択する選択部をさらに備える
（１１）乃至（１３）のいずれかに記載の画像処理装置。
（１５）  前記選択部は、
水平変換セット識別子とプライマリ水平変換指定フラグに基づいて、前記プライマリ水平変換として適用する直交変換を選択し、
垂直変換セット識別子とプライマリ垂直変換指定フラグに基づいて、前記プライマリ垂直変換として適用する直交変換を選択する
（１４）に記載の画像処理装置。
（１６）  前記符号化部は、前記変換スキップ識別子の値に応じて、前記プライマリ水平変換指定フラグおよび前記プライマリ垂直変換指定フラグからプライマリ変換識別子を導出する
（１５）に記載の画像処理装置。
（１７）  前記符号化部は、
前記変換スキップ識別子が２次元変換をスキップしないことを示す場合、前記プライマリ水平変換指定フラグおよび前記プライマリ垂直変換指定フラグを用いて、２ビットのbin列の前記プライマリ変換識別子を導出し、
前記変換スキップ識別子が水平方向または垂直方向の１次元変換をスキップしないことを示す場合、前記プライマリ水平変換指定フラグまたは前記プライマリ垂直変換指定フラグを用いて、１ビットのbin列の前記プライマリ変換識別子を導出する
（１６）に記載の画像処理装置。
（１８）  前記符号化部は、前記プライマリ水平変換指定フラグおよび前記プライマリ垂直変換指定フラグを符号化する
（１５）乃至（１７）のいずれかに記載の画像処理装置。
（１９）  前記符号化部は、前記変換スキップ識別子が、水平方向若しくは垂直方向の１次元変換または２次元変換をスキップしないことを示す場合、セカンダリ変換識別子の符号化を省略する
（１１）乃至（１８）のいずれかに記載の画像処理装置。
（２０）  変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する水平方向のプライマリ変換であるプライマリ水平変換の実行を制御し、
前記変換スキップ識別子の値に基づいて、画像と予測画像の残差データに対する垂直方向のプライマリ変換であるプライマリ垂直変換の実行を制御し、
前記変換スキップ識別子を符号化する
画像処理方法。
【符号の説明】
【０５４１】
１００  画像復号装置，  １１１  復号部，  １１２  逆量子化部，  １１３  逆変換部，  １１４  演算部，  １１５  フレームメモリ，  １１６  予測部，  １２１  スイッチ，  １２２  逆セカンダリ変換部，  １２３  逆プライマリ変換部，  １３１  逆プライマリ変換選択部，  １３２  スイッチ，  １３３  逆プライマリ垂直変換部，  １３４  スイッチ，  １３５  逆プライマリ水平変換部，  １５１  変換スキップ有効フラグ復号部，  １５２  最大変換スキップブロックサイズ復号部，  １５３  変換量子化バイパスフラグ復号部，  １５４  変換スキップ識別子復号部，  １６１  プライマリ変換有効フラグ復号部，  １６２  適応プライマリ変換フラグ復号部，  １６３  プライマリ変換識別子復号部，  １７１  セカンダリ変換有効フラグ復号部，  １７２  セカンダリ変換識別子復号部，  １８１  プライマリ水平変換指定フラグ復号部，  １８２  プライマリ垂直変換指定フラグ復号部，  １９１および１９２  スケーリング部，  ３００  画像符号化装置，  ３１１  制御部，  ３１２  演算部，  ３１３  変換部，  ３１４  量子化部，  ３１５  符号化部，  ３１６  逆量子化部，  ３１７  逆変換部，  ３１８  演算部，  ３１９  フレームメモリ，  ３２０  予測部，  ３３１  スイッチ，  ３３２  プライマリ変換部，  ３３３  セカンダリ変換部，  ３４１  プライマリ変換選択部，  ３４２  スイッチ，  ３４３  プライマリ水平変換部，  ３４４  スイッチ，  ３４５  プライマリ垂直変換部，  ３６１  変換スキップ有効フラグ符号化部，  ３６２  最大変換スキップブロックサイズ符号化部，  ３６３  変換量子化バイパスフラグ符号化部，  ３６４  変換スキップ識別子符号化部，  ３７１  プライマリ変換有効フラグ符号化部，  ３７２  適応プライマリ変換フラグ符号化部，  ３７３  プライマリ変換識別子符号化部，  ３８１  セカンダリ変換有効フラグ符号化部，  ３８２  セカンダリ変換識別子符号化部，  ３９１  プライマリ水平変換指定フラグ符号化部，  ３９２  プライマリ垂直変換指定フラグ符号化部，  ４０１および４０２  スケーリング部
【図１】
2018061837.tif 000003
【図２】
2018061837.tif 000004
【図３】
2018061837.tif 000005
【図４】
2018061837.tif 000006
【図５】
2018061837.tif 000007
【図６】
2018061837.tif 000008
【図７】
2018061837.tif 000009
【図８】
2018061837.tif 000010
【図９】
2018061837.tif 000011
【図１０】
2018061837.tif 000012
【図１１】
2018061837.tif 000013
【図１２】
2018061837.tif 000014
【図１３】
2018061837.tif 000015
【図１４】
2018061837.tif 000016
【図１５】
2018061837.tif 000017
【図１６】
2018061837.tif 000018
【図１７】
2018061837.tif 000019
【図１８】
2018061837.tif 000020
【図１９】
2018061837.tif 000021
【図２０】
2018061837.tif 000022
【図２１】
2018061837.tif 000023
【図２２】
2018061837.tif 000024
【図２３】
2018061837.tif 000025
【図２４】
2018061837.tif 000026
【図２５】
2018061837.tif 000027
【図２６】
2018061837.tif 000028
【図２７】
2018061837.tif 000029
【図２８】
2018061837.tif 000030
【図２９】
2018061837.tif 000031
【図３０】
2018061837.tif 000032
【図３１】
2018061837.tif 000033
【図３２】
2018061837.tif 000034
【図３３】
2018061837.tif 000035
【図３４】
2018061837.tif 000036
【図３５】
2018061837.tif 000037
【図３６】
2018061837.tif 000038
【図３７】
2018061837.tif 000039
【図３８】
2018061837.tif 000040
【図３９】
2018061837.tif 000041
【図４０】
2018061837.tif 000042
【図４１】
2018061837.tif 000043
【図４２】
2018061837.tif 000044
【図４３】
2018061837.tif 000045
【図４４】
2018061837.tif 000046
【図４５】
2018061837.tif 000047
【図４６】
2018061837.tif 000048
【図４７】
2018061837.tif 000049
【図４８】
2018061837.tif 000050
【図４９】
2018061837.tif 000051
【国際調査報告】
2018061837.tif 000052
2018061837.tif 000053
2018061837.tif 000054
2018061837.tif 000055