(57)【特許請求の範囲】
【請求項１】
復号化対象の変換係数と、前記復号化対象のイントラ予測モードを示す情報とを復号化する復号化部と、
各イントラ予測モードの予測画像生成方法に応じて予め定められた関係に基づいて、前記復号化対象のイントラ予測モードに対応する垂直逆変換行列と水平逆変換行列との組み合わせを２種類のみの行列を用いて設定するセット部と、
設定された前記垂直逆変換行列と前記水平逆変換行列とを用いて、前記変換係数に対して垂直逆変換及び水平逆変換を行って予測誤差を得る逆直交変換部と、
前記予測誤差に基づいて復号画像を生成する加算部と
を具備し、
前記組み合わせは、第１の変換行列の転置行列同士の組み合わせと、少なくとも１つのライン上の参照画素群を参照してイントラ予測画像を生成するイントラ予測モードの予測誤差に前記参照画素群のラインと直交する方向の１次元直交変換を行う場合に前記第１の変換行列に比べて係数集密度が高くなる第２の変換行列の転置行列同士の組み合わせとのうちいずれか一方であり、
前記第２の変換行列の転置行列同士の組み合わせは複数のイントラ予測モードに設定される、
ことを特徴とする画像復号化装置。
【請求項２】
復号化対象の変換係数と、前記復号化対象のイントラ予測モードを示す情報とを復号化することと、
各イントラ予測モードの予測画像生成方法に応じて予め定められた関係に基づいて、前記復号化対象のイントラ予測モードに対応する垂直逆変換行列と水平逆変換行列との組み合わせを２種類のみの行列を用いて設定することと、
設定された前記垂直逆変換行列と前記水平逆変換行列とを用いて、前記変換係数に対して垂直逆変換及び水平逆変換を行って予測誤差を得ることと、
前記予測誤差に基づいて復号画像を生成することと
を具備し、
前記組み合わせは、第１の変換行列の転置行列同士の組み合わせと、少なくとも１つのライン上の参照画素群を参照してイントラ予測画像を生成するイントラ予測モードの予測誤差に前記参照画素群のラインと直交する方向の１次元直交変換を行う場合に前記第１の変換行列に比べて係数集密度が高くなる第２の変換行列の転置行列同士の組み合わせとのうちいずれか一方であり、
前記第２の変換行列の転置行列同士の組み合わせは複数のイントラ予測モードに設定される、
ことを特徴とする画像復号化方法。
【請求項３】
コンピュータを、
復号化対象の変換係数と、前記復号化対象のイントラ予測モードを示す情報とを復号化する手段、
各イントラ予測モードの予測画像生成方法に応じて予め定められた関係に基づいて、前記復号化対象のイントラ予測モードに対応する垂直逆変換行列と水平逆変換行列との組み合わせを２種類のみの行列を用いて設定する手段、
設定された前記垂直逆変換行列と前記水平逆変換行列とを用いて、前記変換係数に対して垂直逆変換及び水平逆変換を行って予測誤差を得る手段、
前記予測誤差に基づいて復号画像を生成する手段
として機能させ、
前記組み合わせは、第１の変換行列の転置行列同士の組み合わせと、少なくとも１つのライン上の参照画素群を参照してイントラ予測画像を生成するイントラ予測モードの予測誤差に前記参照画素群のラインと直交する方向の１次元直交変換を行う場合に前記第１の変換行列に比べて係数集密度が高くなる第２の変換行列の転置行列同士の組み合わせとのうちいずれか一方であり、
前記第２の変換行列の転置行列同士の組み合わせは複数のイントラ予測モードに設定される、
ことを特徴とする画像復号化プログラム。
【請求項４】
所定の予測方向に応じた予測処理により符号化された復号化対象ブロックの変換係数を復号化する復号化部と、
前記復号化対象ブロックの予測処理により予測画像を生成する予測部と、
前記変換係数に対して、２種類のみの行列を用いて、第１の変換行列の転置行列を垂直逆変換及び水平逆変換に用いる第１の変換処理と、少なくとも１つのライン上の参照画素群を参照してイントラ予測画像を生成するイントラ予測処理の予測誤差に前記参照画素群のラインと直交する方向の１次元直交変換を行う場合に前記第１の変換行列に比べて係数集密度が高くなる第２の変換行列の転置行列を垂直逆変換及び水平逆変換に用いる第２の変換処理とのうち前記予測画像の生成方法に対応したいずれか一方の変換処理を適用して予測誤差を得る逆直交変換部と、
前記予測画像と前記予測誤差とに基づいて復号画像を生成する加算部と
を具備し、
前記第２の変換処理は、相異なる複数の予測方向に応じた予測処理によりそれぞれ符号化された複数の復号化対象ブロックの変換係数に対して適用される、
画像復号化装置。
【請求項５】
所定の予測方向に応じた予測処理により符号化された復号化対象ブロックの変換係数を復号化することと、
前記復号化対象ブロックの予測処理により予測画像を生成することと、
前記変換係数に対して、２種類のみの行列を用いて、第１の変換行列の転置行列を垂直逆変換及び水平逆変換に用いる第１の変換処理と、少なくとも１つのライン上の参照画素群を参照してイントラ予測画像を生成するイントラ予測処理の予測誤差に前記参照画素群のラインと直交する方向の１次元直交変換を行う場合に前記第１の変換行列に比べて係数集密度が高くなる第２の変換行列の転置行列を垂直逆変換及び水平逆変換に用いる第２の変換処理とのうち前記予測画像の生成方法に対応したいずれか一方の変換処理を適用して予測誤差を得ることと、
前記予測画像と前記予測誤差とに基づいて復号画像を生成することと
を具備し、
前記第２の変換処理は、相異なる複数の予測方向に応じた予測処理によりそれぞれ符号化された複数の復号化対象ブロックの変換係数に対して適用される、
画像復号化方法。
【請求項６】
コンピュータを
所定の予測方向に応じた予測処理により符号化された復号化対象ブロックの変換係数を復号化する手段、
前記復号化対象ブロックの予測処理により予測画像を生成する手段、
前記変換係数に対して、２種類のみの行列を用いて、第１の変換行列の転置行列を垂直逆変換及び水平逆変換に用いる第１の変換処理と、少なくとも１つのライン上の参照画素群を参照してイントラ予測画像を生成するイントラ予測処理の予測誤差に前記参照画素群のラインと直交する方向の１次元直交変換を行う場合に前記第１の変換行列に比べて係数集密度が高くなる第２の変換行列の転置行列を垂直逆変換及び水平逆変換に用いる第２の変換処理とのうち前記予測画像の生成方法に対応したいずれか一方の変換処理を適用して予測誤差を得る手段、
前記予測画像と前記予測誤差とに基づいて復号画像を生成する手段
として機能させ、
前記第２の変換処理は、相異なる複数の予測方向に応じた予測処理によりそれぞれ符号化された複数の復号化対象ブロックの変換係数に対して適用される、
画像復号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、動画像の符号化及び復号化における直交変換及び逆直交変換に関する。
【背景技術】
【０００２】
近年、大幅に符号化効率を向上させた画像符号化方法がＩＴＵ−ＴとＩＳＯ／ＩＥＣとの共同で、ＩＴＵ−Ｔ  ＲＥＣ．  Ｈ．２６４及びＩＳＯ／ＩＥＣ  １４４９６−１０（以下、「Ｈ．２６４」という。）として勧告されている。Ｈ．２６４では、対象画素ブロックに適用される予測方法に関わらず、対象画素ブロックの予測誤差に対する直交変換及び逆直交変換として離散コサイン変換（ＤＣＴ）及び逆離散コサイン変換（ＩＤＣＴ）が夫々行われる。
【０００３】
Ｈ．２６４の拡張として、画面内予測（イントラ予測）において規定されている９種類の予測モードの夫々について個別の変換基底を用いて直交変換及び逆直交変換を行うことにより、符号化効率を向上させることが想定される。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】M. Karczewicz, “Improved intra coding”, ITU-T SG16/Q.6, VCEG Document, VCEG-AF15, April 2007.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、複数種類の予測モードの夫々について個別の変換基底を用いて直交変換及び逆直交変換を行うことは、実装上の困難を伴う。例えば、ハードウェア実装のためには、Ｈ．２６４において必要とされるＤＣＴ及びＩＤＣＴのための専用ハードウェアに加えて、上記複数種類の予測方向の夫々について個別の直交変換及び逆直交変換のための専用ハードウェアを設ける必要がある。これら専用ハードウェアの追加によって、回路規模が増大する。
【０００６】
ソフトウェア実装に関して、ＤＣＴ行列に加えて複数種類の予測方向の夫々について個別の変換行列をメモリから適宜ロードしたり、適宜キャッシュメモリに保持したりすることが可能である。この場合には、所望の直交変換及び逆直交変換を汎用乗算器によって実現できるものの、メモリバンド幅の増加によるコスト増またはキャッシュメモリサイズの増加によるコスト増が問題となる。
【０００７】
従って、実施形態は、符号化効率を向上可能な直交変換または逆直交変換を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施形態によれば、画像復号化装置は、復号化部と、セット部と、逆直交変換部と、加算部とを備える。復号化部は、復号化対象の変換係数と、復号化対象のイントラ予測モードを示す情報とを復号化する。セット部は、各イントラ予測モードの予測画像生成方法に応じて予め定められた関係に基づいて、復号化対象のイントラ予測モードに対応する垂直逆変換行列と水平逆変換行列との組み合わせを設定する。逆直交変換部は、設定された垂直逆変換行列と水平逆変換行列とを用いて、変換係数に対して垂直逆変換及び水平逆変換を行って予測誤差を得る。加算部は、予測誤差に基づいて復号画像を生成する。組み合わせは、第１の変換行列と、少なくとも１つのライン上の参照画素群を参照してイントラ予測画像を生成するイントラ予測モードの予測誤差に参照画素群のラインと直交する方向の１次元直交変換を行う場合に第１の変換行列に比べて係数集密度が高くなる第２の変換行列とを含む複数の変換行列の転置行列のいずれか同士の組み合わせである。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る画像符号化装置を例示するブロック図。
【図２】第１の実施形態に係る直交変換部を例示するブロック図。
【図３】第１の実施形態に係る逆直交変換部を例示するブロック図。
【図４Ａ】第１の実施形態に係る、予測モードと垂直変換インデックス及び水平変換インデックスとの対応を例示するテーブル図。
【図４Ｂ】第１の実施形態に係る、垂直変換インデックスと１Ｄ変換行列との対応を例示するテーブル図。
【図４Ｃ】第１の実施形態に係る、水平変換インデックスと１Ｄ変換行列との対応を例示するテーブル図。
【図４Ｄ】第１の実施形態に係る、変換インデックスと垂直変換インデックス及び水平変換インデックスとの対応を例示するテーブル図。
【図４Ｅ】図４Ａ及び図４Ｄを統合したテーブル図。
【図５Ａ】第１の実施形態に係る係数順制御部を例示するブロック図。
【図５Ｂ】第１の実施形態に係る係数順制御部を例示するブロック図。
【図６Ａ】画素ブロックの予測符号化順の説明図。
【図６Ｂ】画素ブロックサイズの一例の説明図。
【図６Ｃ】画素ブロックサイズの別の例の説明図。
【図６Ｄ】画素ブロックサイズの別の例の説明図。
【図７Ａ】イントラ予測モードの説明図。
【図７Ｂ】予測対象画素と参照画素との配置関係の説明図。
【図７Ｃ】イントラ予測モード１の説明図。
【図７Ｄ】イントラ予測モード４の説明図。
【図８Ａ】ジグザグスキャンの説明図。
【図８Ｂ】ジグザグスキャンの説明図。
【図８Ｃ】ジグザグスキャンを利用した２Ｄ−１Ｄ変換を示すテーブル図。
【図９】予測モード毎の個別の２Ｄ−１Ｄ変換を例示するテーブル図。
【図１０Ａ】図１の画像符号化装置が符号化対象ブロックに対して行う処理を例示するフローチャート。
【図１０Ｂ】図１の画像符号化装置が符号化対象ブロックに対して行う処理を例示するフローチャート。
【図１１】シンタクス構造の説明図。
【図１２】スライスヘッダーシンタクスの説明図。
【図１３】コーディングツリーユニットシンタクスの説明図。
【図１４】トランスフォームユニットシンタクスの説明図。
【図１５】９種類の予測方向の夫々について個別の変換基底を用いて直交変換を行う直交変換部を例示するブロック図。
【図１６】第２の実施形態に係る直交変換部を例示するブロック図。
【図１７】第２の実施形態に係る逆直交変換部を例示するブロック図。
【図１８Ａ】第２の実施形態に係る、予測モードと垂直変換インデックス及び水平変換インデックスとの対応を例示するテーブル図。
【図１８Ｂ】第２の実施形態に係る、垂直変換インデックスと１Ｄ変換行列との対応を例示するテーブル図。
【図１８Ｃ】第２の実施形態に係る、水平変換インデックスと１Ｄ変換行列との対応を例示するテーブル図。
【図１８Ｄ】第２の実施形態に係る、変換インデックスと垂直変換インデックス及び水平変換インデックスとの対応を例示するテーブル図。
【図１８Ｅ】図１８Ａ及び図１８Ｄを統合したテーブル図。
【図１９】第３の実施形態に係る直交変換部を例示するブロック図。
【図２０】第３の実施形態に係る逆直交変換部を例示するブロック図。
【図２１Ａ】第３の実施形態に係る、予測モードと垂直変換インデックス及び水平変換インデックスとの対応を例示するテーブル図。
【図２１Ｂ】第３の実施形態に係る、垂直変換インデックスと１Ｄ変換行列との対応を例示するテーブル図。
【図２１Ｃ】第３の実施形態に係る、水平変換インデックスと１Ｄ変換行列との対応を例示するテーブル図。
【図２１Ｄ】第３の実施形態に係る、変換インデックスと垂直変換インデックス及び水平変換インデックスとの対応を例示するテーブル図。
【図２１Ｅ】図２１Ａ及び図２１Ｄを統合したテーブル図。
【図２２】第４の実施形態に係る画像復号化装置を例示するブロック図。
【図２３Ａ】第４の実施形態に係る係数順制御部を例示するブロック図。
【図２３Ｂ】第４の実施形態に係る係数順制御部を例示するブロック図。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、各実施形態について説明する。尚、以降の説明において、「画像」という用語は、「画像信号」、「画像データ」などの用語として適宜読み替えることができる。  
（第１の実施形態）  
第１の実施形態は、画像符号化装置に関する。本実施形態に係る画像符号化装置に対応する画像復号化装置は、第４の実施形態において説明する。この画像符号化装置は、ＬＳＩ（Large-Scale Integration）チップやＤＳＰ（Digital Signal Processor）、ＦＰＧＡ（Field Programmable Gate Array）などのハードウェアにより実現可能である。また、この画像符号化装置は、コンピュータに画像符号化プログラムを実行させることによっても実現可能である。
【００１１】
図１に示すように、本実施形態に係る画像符号化装置は、減算部１０１、直交変換部１０２、量子化部１０３、逆量子化部１０４、逆直交変換部１０５、加算部１０６、参照画像メモリ１０７、イントラ予測部１０８、インター予測部１０９、予測選択部１１０、予測選択スイッチ１１１、１Ｄ（１次元）変換行列セット部１１２、係数順制御部１１３、エントロピー符号化部１１４、出力バッファ１１５及び符号化制御部１１６を有する。
【００１２】
図１の画像符号化装置は、入力画像１１８を構成する各フレームまたは各フィールドを複数の画素ブロックに分割し、これら分割した画素ブロックに対して予測符号化を行って、符号化データ１３０を出力する。以降の説明では、簡単化のために、図６Ａに示されるように左上から右下に向かって画素ブロックの予測符号化が行われることを仮定する。図６Ａでは、符号化処理対象のフレームｆにおいて、符号化対象画素ブロックｃよりも左側及び上側に符号化済み画素ブロックｐが位置している。
【００１３】
ここで、画素ブロックは、例えば、コーディングツリーユニット、マクロブロック、サブブロック、１画素などを指す。尚、以降の説明では、画素ブロックをコーディングツリーユニットの意味で基本的に使用するが、説明を適宜読み替えることにより画素ブロックを別の意味で解釈することも可能である。コーディングツリーユニットは、典型的には、例えば図６Ｂに示す１６×１６画素ブロックであるが、図６Ｃに示す３２×３２画素ブロック、図６Ｄに示す６４×６４画素ブロックであってもよいし、図示しない８×８画素ブロック、４×４画素ブロックであってもよい。コーディングツリーユニットは必ずしも正方形である必要はない。以下、入力画像１１８の符号化対象ブロックもしくはコーディングツリーユニットを「予測対象ブロック」と称することもある。また、符号化単位には、コーディングツリーユニットのような画素ブロックに限らず、フレームまたはフィールド、或いはこれらの組み合わせを用いることができる。
【００１４】
図１の画像符号化装置は、符号化制御部１１６から入力される符号化パラメータに基づいて、画素ブロックに対するイントラ予測（画面内予測、フレーム内予測などとも称される）またはインター予測（画面間予測、フレーム間予測などとも称される）を行って、予測画像１２７を生成する。この画像符号化装置は、画素ブロック（入力画像１１８）と予測画像１２７との間の予測誤差１１９を直交変換及び量子化し、エントロピー符号化を行って符号化データ１３０を生成して出力する。
【００１５】
図１の画像符号化装置は、ブロックサイズ及び予測画像１２７の生成方法の異なる複数の予測モードを選択的に適用して符号化を行う。予測画像１２７の生成方法は、大別すると、符号化対象フレーム内で予測を行うイントラ予測と、時間的に異なる１つまたは複数の参照フレームを用いて予測を行うインター予測との２種類である。本実施形態では、イントラ予測を用いて予測画像を生成する場合の直交変換及び逆直交変換について詳細に説明する。
【００１６】
以下、図１の画像符号化装置に含まれる各要素を説明する。  
減算器１０１は、入力画像１１８の符号化対象ブロックから、対応する予測画像１２７を減算して予測誤差１１９を得る。減算器１０１は、予測誤差１１９を直交変換部１０２に入力する。
【００１７】
直交変換部１０２は、減算器１０１からの予測誤差１１９に対して直交変換を行い、変換係数１２０を得る。尚、直交変換部１０２の詳細は後述される。直交変換部１０２は、変換係数１２０を量子化部１０３に入力する。
【００１８】
量子化部１０３は、直交変換部１０２からの変換係数に対して量子化を行い、量子化変換係数１２１を得る。具体的には、量子化部１０３は、符号化制御部１１６によって指定される量子化パラメータ、量子化マトリクスなどの量子化情報に従って量子化を行う。量子化パラメータは、量子化の細かさを示す。量子化マトリクスは、量子化の細かさを変換係数の成分毎に重み付けするために使用される。量子化部１０３は、量子化変換係数１２１を係数順制御部１１３及び逆量子化部１０４に入力する。
【００１９】
係数順制御部１１３は、２次元（２Ｄ）表現である量子化変換係数１２１を、１次元（１Ｄ）表現である量子化変換係数列１１７に変換し、エントロピー符号化部１１４に入力する。尚、係数制御部１１３の詳細は後述される。
【００２０】
エントロピー符号化部１１４は、係数制御部１１３からの量子化変換係数列１１７、予測選択部１１０からの予測情報１２６、符号化制御部１１６によって指定される量子化情報などの様々な符号化パラメータに対してエントロピー符号化（例えば、ハフマン符号化、算術符号化など）を行い、符号化データを生成する。尚、符号化パラメータとは、予測情報１２６、変換係数に関する情報、量子化に関する情報、などの復号に必要となるパラメータである。符号化パラメータは、符号化制御部１１６の内部メモリ（図示しない）に保持され、予測対象ブロックを符号化する際に隣接する既に符号化済みの画素ブロックの符号化パラメータを用いることが可能である。例えば、Ｈ．２６４のイントラ予測では符号化済みの隣接ブロックの予測モード情報から、予測対象ブロックの予測モードの予測値を導出することが可能である。
【００２１】
エントロピー符号化部１１４によって生成された符号化データは、例えば多重化を経て出力バッファ１１５に一時的に蓄積され、符号化制御部１１６が管理する適切な出力タイミングに従って符号化データ１３０として出力される。符号化データ１３０は、例えば、図示しない蓄積系（蓄積メディア）または伝送系（通信回線）へ出力される。
【００２２】
逆量子化部１０４は、量子化部１０３からの量子化変換係数１２１に対して逆量子化を行い、復元変換係数１２２を得る。具体的には、逆量子化部１０４は、量子化部１０３において使用された量子化情報に従って逆量子化を行う。量子化部１０３において使用された量子化情報は、符号化制御部１１６の内部メモリからロードされる。逆量子化部１０４は、復元変換係数１２２を逆直交変換部１０５に入力する。
【００２３】
逆直交変換部１０５は、逆量子化部１０４からの復元変換係数１２２に対して、直交変換部１０２において行われた直交変換に対応する逆直交変換を行い、復元予測誤差１２３を得る。尚、逆直交変換部１０５の詳細は後述される。逆直交変換部１０５は、復元予測誤差１２３を加算部１０６に入力する。
【００２４】
加算部１０６は、復元予測誤差１２３と、対応する予測画像１２７とを加算し、局所復号画像１２４を生成する。局所復号画像１２４は、参照画像メモリ１０７に保存される。参照画像メモリ１０７に保存された局所復号画像１２４は、参照画像１２５としてイントラ予測部１０８及びインター予測部１０９によって必要に応じて参照される。
【００２５】
イントラ予測部１０８は、参照画像メモリ１０７に保存されている参照画像１２５を利用してイントラ予測を行う。例えば、Ｈ．２６４では、予測対象ブロックに隣接する符号化済みの参照画素値を利用して、垂直方向、水平方向などの予測方向に沿って画素補填（コピーまたは補間）を行うことによってイントラ予測画像を生成する。図７ＡにＨ．２６４におけるイントラ予測の予測方向を示す。また、図７ＢにＨ．２６４における参照画素と符号化対象画素との配置関係を示す。図７Ｃはモード１（水平予測）の予測画像生成方法を示しており、図７Ｄはモード４（対角右下予測；図４ＡのIntra_NxN_Diagonal_Down_Right）の予測画像生成方法を示している。
【００２６】
尚、イントラ予測部１０８は、予め定められた補間方法を用いて画素値を補間してから、予め定められた予測方向に補間画素値をコピーしてもよい。Ｈ．２６４のイントラ予測の予測方向を例示したが、予測方向を更に細かく規定することにより１７種類、３３種類などの任意の数の予測モードを使用するに拡張することも可能である。具体的には、Ｈ．２６４では２２．５度毎の予測角度が規定されているが、例えば１１．２５度毎の予測角度を規定すれば、ＤＣ予測を含めて１７種類の予測モードを使用できる。また、５．６２５度毎の予測角度を規定すれば、ＤＣ予測を含めて３３種類の予測モードを使用できる。また、予測角度を等間隔に配置するのではなく、第１の基準点から水平および垂直に移動させた第２の基準点を結ぶ直線によって予測方向の角度を表してもよい。以上のように予測モードの拡張は容易に可能であり、本実施形態は予測モードの数に関わらず適用可能である。
【００２７】
インター予測部１０９は、参照画像メモリ１０７に保存されている参照画像１２５を利用してインター予測を行う。具体的には、インター予測部１０９は、予測対象ブロックと参照画像１２５との間でブロックマッチング処理を行って動きのズレ量（動きベクトル）を導出する。インター予測部１０９は、この動きベクトルに基づいて補間処理（動き補償）を行ってインター予測画像を生成する。Ｈ．２６４では、１／４画素精度までの補間処理が可能である。導出された動きベクトルは予測情報１２６の一部としてエントロピー符号化される。
【００２８】
選択スイッチ１１１は、イントラ予測部１０８の出力端またはインター予測部１０９の出力端を予測選択部１１０からの予測情報１２６に従って選択し、イントラ予測画像またはインター予測画像を予測画像１２７として減算部１０１及び加算部１０６に入力する。予測情報１２６がイントラ予測を示唆する場合には、選択スイッチ１１０はイントラ予測部１０８からのイントラ予測画像を予測画像１２７として取り込む。一方、予測情報１２６がインター予測を示唆する場合には、選択スイッチ１１０はインター予測部１０９からのインター予測画像を予測画像１２７として取り込む。
【００２９】
予測選択部１１０は、符号化制御部１１６が制御する予測モードに従って、予測情報１２６を設定する機能を有する。前述のように、予測画像１２７の生成のためにイントラ予測またはインター予測が選択可能であるが、イントラ予測及びインター予測の夫々に複数のモードが更に選択可能である。符号化制御部１１６はイントラ予測及びインター予測の複数の予測モードのうち１つを最適な予測モードとして判定し、予測選択部１１０は判定された最適な予測モードに応じて予測情報１２６を設定する。
【００３０】
例えば、イントラ予測に関して、符号化制御部１１６から予測モード情報がイントラ予測部１０８に指定され、イントラ予測部１０８はこの予測モード情報に従って予測画像１２７を生成する。符号化制御部１１６は、予測モードの番号が小さい方から順に複数の予測モード情報を指定してもよいし、大きい方から順に複数の予測モード情報を指定してもよい。また、符号化制御部１１６は、入力画像の特性に従って予測モードを限定してもよい。符号化制御部１１６は、必ずしも全ての予測モードを指定する必要はなく符号化対象ブロックに対して少なくとも１つの予測モード情報を指定すればよい。
【００３１】
例えば、符号化制御部１１６は、次の数式（１）に示すコスト関数を用いて最適な予測モードを判定する。  
【数１】
0005537695.tif 000002
【００３２】
数式（１）において、ＯＨは予測情報１２６（例えば、動きベクトル情報、予測ブロックサイズ情報）に関する符号量を示し、ＳＡＤは予測対象ブロックと予測画像１２７との間の差分絶対値和（即ち、予測誤差１１９の絶対値の累積和）を示す。また、λは量子化情報（量子化パラメータ）の値に基づいて決定されるラグランジュ未定乗数を示し、Ｋは符号化コストを示す。数式（１）を用いる場合には、符号化コストＫを最小化する予測モードが発生符号量及び予測誤差の観点から最適な予測モードとして判定される。数式（１）の変形として、ＯＨのみまたはＳＡＤのみから符号化コストを見積もってもよいし、ＳＡＤにアダマール変換を施した値またはその近似値を利用して符号化コストを見積もってもよい。
【００３３】
また、図示しない仮符号化ユニットを用いることにより最適な予測モードを判定することも可能である。例えば、符号化制御部１１６は、次の数式（２）に示すコスト関数を用いて最適な予測モードを判定する。
【数２】
0005537695.tif 000003
【００３４】
数式（２）において、Ｄは予測対象ブロックと局所復号画像との間の二乗誤差和（即ち、符号化歪）を示し、Ｒは予測対象ブロックと予測モードの予測画像１２７との間の予測誤差について仮符号化によって見積もられた符号量を示し、Ｊは符号化コストを示す。数式（２）の符号化コストＪを導出する場合には予測モード毎に仮符号化処理及び局部復号化処理が必要なので、回路規模または演算量が増大する。反面、より正確な符号化歪と符号量とに基づいて符号化コストＪが導出されるので、最適な予測モードを高精度に判定して高い符号化効率を維持しやすい。尚、数式（２）の変形として、ＲのみまたはＤのみから符号化コストを見積もってもよいし、ＲまたはＤの近似値を利用して符号化コストを見積もってもよい。また、符号化制御部１１６は、予測対象ブロックに関して事前に得られる情報（周囲の画素ブロックの予測モード、画像解析の結果など）に基づいて、数式（１）または数式（２）を用いた判定を行う予測モードの候補の数を、予め絞り込んでおいてもよい。
【００３５】
符号化制御部１１６は、図１の画像符号化装置の各要素を制御する。具体的には、符号化制御部１１６は、上述の動作を含む符号化処理のための種々の制御を行う。  
１Ｄ変換行列セット部１１２は、予測選択部１１０からの予測情報１２６に含まれる予測モード情報に基づいて１Ｄ変換行列セット情報１２９を生成し、直交変換部１０２及び逆直交変換部１０５に入力する。尚、１Ｄ変換行列セット情報１２９の詳細は後述される。
【００３６】
以下、図２を用いて本実施形態に係る直交変換部１０２の詳細を説明する。  
直交変換部１０２は、選択スイッチ２０１、垂直変換部２０２、転置部２０３、選択スイッチ２０４及び水平変換部２０５を有する。垂直変換部２０２は、１Ｄ直交変換部Ａ２０６及び１Ｄ直交変換部Ｂ２０７を含む。水平変換部２０５は、１Ｄ直交変換部Ａ２０８及び１Ｄ直交変換部Ｂ２０９を含む。尚、垂直変換部２０２及び水平変換部２０５の順序は、一例であり、これらは逆順であっても構わない。
【００３７】
１Ｄ直交変換部Ａ２０６及び１Ｄ直交変換部Ａ２０８は、入力される行列に対して１Ｄ変換行列Ａを乗算する点で共通の機能を持ち、１Ｄ直交変換部Ｂ２０７及び１Ｄ直交変換部Ｂ２０９は、入力される行列に対して１Ｄ変換行列Ｂを乗算する点で共通の機能を持つ。従って、１Ｄ直交変換部Ａ２０６及び１Ｄ直交変換部Ａ２０８は、物理的に同一のハードウェアを時分割で使用することによっても実現可能である。また、１Ｄ直交変換部Ｂ２０７及び１Ｄ直交変換部Ｂ２０９も同様である。
【００３８】
選択スイッチ２０１は、１Ｄ変換行列セット情報１２９に含まれる垂直変換インデックスに従って、予測誤差１１９を１Ｄ直交変換部Ａ２０６及び１Ｄ直交変換部Ｂ２０７のうちのいずれか一方に導く。１Ｄ直交変換部Ａ２０６は、入力された予測誤差（行列）１１９に対して１Ｄ変換行列Ａを乗算して出力する。１Ｄ直交変換部Ｂ２０７は、入力された予測誤差１１９に対して１Ｄ変換行列Ｂを乗算して出力する。具体的には、１Ｄ直交変換部Ａ２０６及び１Ｄ直交変換部Ｂ２０７（即ち、垂直変換部２０２）は、次の数式（３）に示す一次元の直交変換を行って、予測誤差１１９の垂直方向の相関を除去する。
【数３】
0005537695.tif 000004
【００３９】
数式（３）において、Ｘは予測誤差１１９の行列（Ｎ×Ｎ）を示し、Ｖは１Ｄ変換行列Ａ及び１Ｄ変換行列Ｂ（いずれもＮ×Ｎ）を包括的に示しており、Ｙは１Ｄ直交変換部Ａ２０６及び１Ｄ直交変換部Ｂ２０７の出力行列（Ｎ×Ｎ）を示す。具体的には、変換行列Ｖは、行列Ｘの垂直方向の相関を除去するために設計された変換基底を行ベクトルとし縦に並べたＮ×Ｎの変換行列である。但し、後述するように、１Ｄ変換行列Ａ及び１Ｄ変換行列Ｂは、異なる方法で設計され、異なる性質を持つ。尚、１Ｄ変換行列Ａ及び１Ｄ変換行列Ｂは、設計された各変換基底をスカラ倍して整数化したものを使用することも可能である。
【００４０】
ここで、予測誤差１１９がＭ×Ｎで表現される矩形ブロックである場合、直交変換を行うブロックサイズもまたＭ×Ｎであってもよい。
【００４１】
転置部２０３は、垂直変換部２０２の出力行列（Ｙ）の転置を行って、選択スイッチ２０４に与える。但し、転置部２０３は、一例であって、対応するハードウェアを必ずしも用意しなくてもよい。例えば、垂直変換部２０２による１Ｄ直交変換を実行した結果（垂直変換部２０２の出力行列の各要素）を保持しておき、水平変換部２０５による１Ｄ直交変換を実行するときに適切な順序で読み出せば、転置部２０３に対応するハードウェアを用意しなくても出力行列（Ｙ）の転置を実行できる。
【００４２】
選択スイッチ２０４は、１Ｄ変換行列セット情報１２９に含まれる水平変換インデックスに従って、転置部２０３からの入力行列を１Ｄ直交変換部Ａ２０８及び１Ｄ直交変換部Ｂ２０９のうちのいずれか一方に導く。１Ｄ直交変換部Ａ２０８は、入力行列に対して１Ｄ変換行列Ａを乗算して出力する。１Ｄ直交変換部Ｂ２０９は、入力行列に対して１Ｄ変換行列Ｂを乗算して出力する。具体的には、１Ｄ直交変換部Ａ２０８及び１Ｄ直交変換部Ｂ２０９（即ち、水平変換部２０５）は、次の数式（４）に示す一次元の直交変換を行って、予測誤差の水平方向の相関を除去する。
【数４】
0005537695.tif 000005
【００４３】
数式（４）において、Ｈは１Ｄ変換行列Ａ及び１Ｄ変換行列Ｂ（いずれもＮ×Ｎ）を包括的に示しており、Ｚは１Ｄ直交変換部Ａ２０８及び１Ｄ直交変換部Ｂ２０９の出力行列（Ｎ×Ｎ）を示しており、これは変換係数１２０を指す。具体的には、変換行列Ｈは、行列Ｙの水平方向の相関を除去するために設計された変換基底を行ベクトルとし縦に並べたＮ×Ｎの変換行列である。先の説明と重複するが、１Ｄ変換行列Ａ及び１Ｄ変換行列Ｂは、異なる方法で設計され、異なる性質を持つ。また、１Ｄ変換行列Ａ及び１Ｄ変換行列Ｂは、設計された各変換基底をスカラ倍して整数化したものを使用することも可能である。
【００４４】
以上のように、直交変換部１０２は、予測誤差（行列）１１９に対して、１Ｄ変換行列セット部１１２から入力された１Ｄ変換行列セット情報１２９に従って直交変換を行い、変換係数（行列）１２０を生成する。尚、Ｈ．２６４を考慮すると、直交変換部１０２には、図示しないＤＣＴ部が含まれてもよいし、１Ｄ変換行列Ａと１Ｄ変換行列ＢのいずれかをＤＣＴのための行列に置き換えてもよい。例えば、１Ｄ変換行列ＢはＤＣＴのための変換行列であってもよい。更に、直交変換部１０２は、ＤＣＴに加えて、アダマール変換、後述するカルーネン・レーベ変換、離散サイン変換などの種々の直交変換を実現してもよい。
【００４５】
ここで、１Ｄ変換行列Ａと１Ｄ変換行列Ｂとの性質の差異について説明する。Ｈ．２６４などでサポートされるイントラ予測モードには、予測対象ブロックの左側及び上側の一方または両方の隣接ライン上の参照画素群を予測方向に沿ってコピーまたは補間後にコピーして予測画像を生成するものがある。すなわち、このイントラ予測モードでは、予測方向に従って参照画素群の中の少なくとも一つの参照画素が選択され、参照画素のコピーまたは参照画素からの補間により、予測画像が生成される。係るイントラ予測モードは、画像の空間的相関を利用するので、参照画素からの距離が大きくなるにつれて予測精度が低下する傾向にある。即ち、参照画素からの距離に応じて予測誤差の絶対値が増大し易い。尚、係る傾向は、予測方向によらず同様である。より具体的には、予測対象ブロックの左隣接ライン上の参照画素群のみが参照（参照画素の画素値のコピーまたは参照画素からの補間）されるイントラ予測モード（例えば、図７Ａのモード１及びモード８）に関して、予測誤差は水平方向に係る傾向を示す。予測対象ブロックに上隣接ライン上の参照画素群のみを参照するイントラ予測モード（例えば、図７Ａのモード０、モード３及びモード７）に関して、予測誤差は垂直方向に係る傾向を示す。更に、予測対象ブロックの左隣接ライン及び上隣接ライン上の参照画素群が参照される予測モード（例えば、図７Ａのモード４、モード５及びモード６）に関して、予測誤差は水平方向及び垂直方向に係る傾向を示す。概括すれば、予測画像の生成のために利用する参照画素群のラインと直交する方向に係る傾向を示すといえる。
【００４６】
１Ｄ変換行列Ａは、１Ｄ変換行列Ｂに比べて、上記直交する方向（垂直方向または水平方向）について１Ｄ直交変換を行う際の係数集密度が高くなる（即ち、量子化変換係数１２１における非零係数の割合が小さくなる）ように共通の変換基底を予め設計することによって生成される。一方、１Ｄ変換行列Ｂは、このような性質を持たない汎用的な変換行列を設計することによって生成される。例えば、汎用的な変換はＤＣＴである。１Ｄ変換行列Ａを用いて、上記直交する方向について１Ｄ直交変換を行えば、イントラ予測の予測誤差の変換効率が向上し、ひいては符号化効率が向上する。例えば、モード０（垂直方向予測）の予測誤差１１９は、垂直方向には上記傾向を示す一方、水平方向には上記傾向を示さない。故に、垂直変換部２０２において１Ｄ変換行列Ａを用いて１Ｄ直交変換を行い、水平変換部２０５において１Ｄ変換行列Ｂを用いて１Ｄ直交変換を行うことにより、効率的な直交変換を実現できる。
【００４７】
以下、図３を用いて本実施形態に係る逆直交変換部１０５の詳細を説明する。  
逆直交変換部１０５は、選択スイッチ３０１、垂直逆変換部３０２、転置部３０３、選択スイッチ３０４及び水平逆変換部３０５を有する。垂直逆変換部３０２は、１Ｄ逆直交変換部Ａ３０６及び１Ｄ逆直交変換部Ｂ３０７を含む。水平逆変換部３０５は、１Ｄ逆直交変換部Ａ３０８及び１Ｄ直交変換部Ｂ３０９を含む。尚、垂直逆変換部３０２及び水平逆変換部３０５の順序は、一例であり、これらは逆順であっても構わない。
【００４８】
１Ｄ逆直交変換部Ａ３０６及び１Ｄ逆直交変換部Ａ３０８は、入力される行列に対して前述の１Ｄ変換行列Ａの転置行列を乗算する点で共通の機能を持ち、１Ｄ逆直交変換部Ｂ３０７及び１Ｄ逆直交変換部Ｂ３０９は、入力される行列に対して前述の１Ｄ変換行列Ｂの転置行列を乗算する点で共通の機能を持つ。従って、１Ｄ逆直交変換部Ａ３０６及び１Ｄ逆直交変換部Ａ３０８は、物理的に同一のハードウェアを時分割で使用することによっても実現可能である。また、１Ｄ逆直交変換部Ｂ３０７及び１Ｄ逆直交変換部Ｂ３０９も同様である。
【００４９】
選択スイッチ３０１は、１Ｄ変換行列セット情報１２９に含まれる垂直変換インデックスに従って、復元変換係数１２２を１Ｄ逆直交変換部Ａ３０６及び１Ｄ逆直交変換部Ｂ３０７のうちのいずれか一方に導く。１Ｄ逆直交変換部Ａ３０６は、入力された復元変換係数１２２（行列形式）に対して１Ｄ変換行列Ａの転置行列を乗算して出力する。１Ｄ逆直交変換部Ｂ３０７は、入力された復元変換係数１２２に対して１Ｄ変換行列Ｂの転置行列を乗算して出力する。具体的には、１Ｄ逆直交変換部Ａ３０６及び１Ｄ逆直交変換部Ｂ３０７（即ち、垂直逆変換部３０２）は、次の数式（５）に示す一次元の逆直交変換を行う。
【数５】
0005537695.tif 000006
【００５０】
数式（５）において、Ｚ'は復元変換係数１２２の行列（Ｎ×Ｎ）を示し、ＶＴは１Ｄ変換行列Ａ及び１Ｄ変換行列Ｂ（いずれもＮ×Ｎ）の転置行列を包括的に示しており、Ｙ'は１Ｄ逆直交変換部Ａ３０６及び１Ｄ逆直交変換部Ｂ３０７の出力行列（Ｎ×Ｎ）を示す。
【００５１】
転置部３０３は、垂直逆変換部３０２の出力行列（Ｙ'）の転置を行って、選択スイッチ３０４に与える。但し、転置部３０３は、一例であって、対応するハードウェアを必ずしも用意しなくてもよい。例えば、垂直逆変換部３０２による１Ｄ逆直交変換を実行した結果（垂直逆変換部３０２の出力行列の各要素）を保持しておき、水平逆変換部３０５による１Ｄ逆直交変換を実行するときに適切な順序で読み出せば、転置部３０３に対応するハードウェアを用意しなくても出力行列（Ｙ'）の転置を実行できる。
【００５２】
選択スイッチ３０４は、１Ｄ変換行列セット情報１２９に含まれる水平変換インデックスに従って、転置部３０３からの入力行列を１Ｄ逆直交変換部Ａ３０８及び１Ｄ逆直交変換部Ｂ３０９のうちのいずれか一方に導く。１Ｄ逆直交変換部Ａ３０８は、入力行列に対して１Ｄ変換行列Ａの転置行列を乗算して出力する。１Ｄ逆直交変換部Ｂ３０９は、入力行列に対して１Ｄ変換行列Ｂの転置行列を乗算して出力する。具体的には、１Ｄ逆直交変換部Ａ３０８及び１Ｄ逆直交変換部Ｂ３０９（即ち、水平逆変換部３０５）は、次の数式（６）に示す一次元の逆直交変換を行う。
【数６】
0005537695.tif 000007
【００５３】
数式（６）において、ＨＴは１Ｄ変換行列Ａ及び１Ｄ変換行列Ｂ（いずれもＮ×Ｎ）の転置行列を包括的に示しており、Ｘ'は１Ｄ逆直交変換部Ａ３０８及び１Ｄ逆直交変換部Ｂ３０９の出力行列（Ｎ×Ｎ）を示しており、これは復元予測誤差１２３を指す。
【００５４】
以上のように、逆直交変換部１０５は、復元変換係数（行列）１２２に対して、１Ｄ変換行列セット部１１２から入力された１Ｄ変換行列セット情報１２９に従って逆直交変換を行い、復元予測誤差（行列）１２３を生成する。尚、Ｈ．２６４を考慮すると、逆直交変換部１０５には、図示しないＩＤＣＴ部が含まれてもよいし、１Ｄ変換行列Ａと１Ｄ変換行列ＢのいずれかをＤＣＴのための行列に置き換えてもよい。例えば、１Ｄ変換行列ＢがＤＣＴのための行列であってもよい。更に、逆直交変換部１０５は、ＩＤＣＴに加えて、直交変換部１０２と調和するようにアダマール変換、後述するカルーネン・レーベ変換、離散サイン変換などの種々の直交変換に対応する逆直交変換を実現してもよい。
【００５５】
以下、１Ｄ変換行列セット部１１２が生成する、本実施形態に係る１Ｄ変換行列セット情報１２９の詳細を説明する。  
１Ｄ変換行列セット情報１２９は、垂直直交変換及び垂直逆直交変換のために使用される変換行列を選択するための垂直変換インデックスと、水平直交変換及び水平逆直交変換のために使用される変換行列を選択するための水平変換インデックスとを直接的または間接的に示す。例えば、１Ｄ変換行列セット情報１２９は、図４Ｄに示す変換インデックス（TransformIdx）で表現することができる。図４Ｄのテーブルを参照すれば、変換インデックスから垂直変換インデックス（Vertical Transform Idx）及び水平変換インデックス（Horizontal Transform Idx）を導出できる。
【００５６】
図４Ｂに示すように、垂直変換インデックスが「０」であれば、垂直直交変換または垂直逆直交変換のために前述の１Ｄ変換行列Ａ（1D_Transform_Matrix_A）またはその転置行列が選択される。一方、垂直変換インデックスが「１」であれば、垂直直交変換または垂直逆直交変換のために前述の１Ｄ変換行列Ｂ（1D_Transform_Matrix_B）またはその転置行列が選択される。
【００５７】
図４Ｃに示すように、水平変換インデックスが「０」であれば、水平直交変換または水平逆直交変換のために前述の１Ｄ変換行列Ａ（1D_Transform_Matrix_A）またはその転置行列が選択される。一方、水平変換インデックスが「１」であれば、水平直交変換または水平逆直交変換のために前述の１Ｄ変換行列Ｂ（1D_Transform_Matrix_B）またはその転置行列が選択される。
【００５８】
また、各（イントラ）予測モードのインデックス（IntraNxNPredModeIndex）と、その名称（Name of IntraNxNPredMode）と、対応する垂直変換インデックス及び水平変換インデックスを図４Ａに例示する。尚、図４Ａにおいて、「NxN」は予測対象ブロックのサイズを表している（Ｎ＝４，８，１６など）。予測対象ブロックのサイズは、「MxN」（即ち、正方形以外の矩形）に拡張することもできる。  
ここで、図４Ａと図４Ｄを統合した、各予測モードのインデックスとその名称と、対応する変換インデックスを図４Ｅに例示する。
【００５９】
１Ｄ変換行列セット部１１２は、予測情報１２６に含まれる予測モード情報から予測モードのインデックスを検出し、対応する１Ｄ変換行列セット情報１２９を生成する。尚、図４Ａ、図４Ｂ、図４Ｃ、図４Ｄ及び図４Ｅに示す各種テーブルは一例であり、１Ｄ変換行列セット部１１２はこれらのテーブルの一部または全部を使用することなく１Ｄ変換行列セット情報１２９を生成してよい。
【００６０】
例えば、ＴｒａｓｎｆｏｒｍＩｄｘが０を示す場合、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが０を、Ｈｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが０を示すことを意味する。つまり、垂直直交変換には１Ｄ変換行列Ａを、水平直交変換には１Ｄ変換行列Ａを使用することを意味する。また、垂直逆直交変換には１Ｄ変換行列Ａの転置行列を、水平逆直交変換には１Ｄ変換行列Ａの転置行列を使用することを意味する。
【００６１】
ＴｒａｓｎｆｏｒｍＩｄｘが１を示す場合、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが０を、Ｈｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが１を示すことを意味する。つまり、垂直直交変換には１Ｄ変換行列Ａを、水平直交変換には１Ｄ変換行列Ｂを使用することを意味する。また、垂直逆直交変換には１Ｄ変換行列Ａの転置行列を、水平逆直交変換には１Ｄ変換行列Ｂの転置行列を使用することを意味する。
【００６２】
ＴｒａｓｎｆｏｒｍＩｄｘが２を示す場合、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが１を、Ｈｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが０を示すことを意味する。つまり、垂直直交変換には１Ｄ変換行列Ｂを、水平直交変換には１Ｄ変換行列Ａを使用することを意味する。また、垂直逆直交変換には１Ｄ変換行列Ｂの転置行列を、水平逆直交変換には１Ｄ変換行列Ａの転置行列を使用することを意味する。
【００６３】
ＴｒａｓｎｆｏｒｍＩｄｘが３を示す場合、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが１をＨｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが１を示すことを意味する。つまり、垂直直交変換には１Ｄ変換行列Ｂを、水平直交変換には１Ｄ変換行列Ｂを使用することを意味する。また、垂直逆直交変換には１Ｄ変換行列Ｂの転置行列を、水平逆直交変換には１Ｄ変換行列Ｂの転置行列を使用することを意味する。
【００６４】
図４Ａに示すテーブルは、前述の各イントラ予測モードの傾向を考慮して１Ｄ変換行列セット情報１２９を割り当てている。即ち、予測誤差の垂直方向に上記傾向を示す予測モードには、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘに０が、水平方向に上記傾向を示すモードには、Ｈｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘに０が割り当られている。一方、上記傾向を示さない方向には、夫々１が割り当られている。各予測モードの垂直方向及び水平方向を上記傾向の有無に従って２つのクラスに分類し、垂直方向及び水平方向の夫々について適応的に１Ｄ変換行列Ａまたは１Ｄ変換行列Ｂを適用することにより、各予測モードに一律にＤＣＴなどの固定的な直交変換を施す場合に比べて、高い変換効率が達成される。
【００６５】
以下、係数順制御部１１３の詳細を説明する。  
係数順制御部１１３は、２次元表現である量子化変換係数１２１の各要素を所定の順序に従って配列することにより、１次元表現である量子化変換係数列１１７に変換する。一例として、係数順制御部１１３は、予測モードに関わらず共通の２Ｄ−１Ｄ変換を行うことができる。具体的には、係数制御部１１３は、Ｈ．２６４と同様にジグザグスキャンを利用できる。ジグザグスキャンは、図８Ａに示すような順序で量子化変換係数１２１の各要素を配列して、図８Ｂに示すような量子化変換係数列１１７に変換する。図８Ａ及び図８Ｂにおいて、（ｉ，ｊ）は各要素の量子化変換係数（行列）１２１中の座標（位置情報）を示す。また、図８Ｃは、ジグザグスキャンを利用した２Ｄ−１Ｄ変換（４×４画素ブロックの場合）を示している。具体的には、図８Ｃは、ジグザグスキャンを利用して２Ｄ−１Ｄ変換された量子化変換係数列１１７の係数順（スキャン順）を示すインデックス（ｉｄｘ）と、対応する量子化変換係数１２１の要素（ｃｉｊ）とを示している。尚、図８Ｃにおいて、ｃｉｊは、量子化変換係数（行列）１２１中の座標（ｉ，ｊ）の要素を示している。
【００６６】
別の例として、係数順制御部１１３は、予測モード毎の個別の２Ｄ−１Ｄ変換を行うことができる。このような動作を行う係数順制御部１１３は、図５Ａに例示されている。この係数順制御部１１３は、選択スイッチ５０１と、９種類の予測モード毎の個別の２Ｄ−１Ｄ変換部５０２，・・・，５１０とを含む。選択スイッチ５０１は、予測情報１２６に含まれる予測モード情報（例えば、図４Ａの予測モードのインデックス）に従って量子化変換係数１２１を、予測モードに応じた２Ｄ−１Ｄ変換部（５０２，・・・，５１０のうちいずれか１つ）に導く。例えば、予測モードインデックスが０であれば、選択スイッチ５０１は量子化変換係数１２１を２Ｄ−１Ｄ変換部５０２に導く。図５Ａにおいて、各予測モードと２Ｄ−１Ｄ変換部とは１対１に対応しており、量子化変換係数１２１は予測モードに応じた１つの２Ｄ−１Ｄ変換部に導かれる。図９は、各２Ｄ−１Ｄ変換部５０２，・・・，５１０が行う２Ｄ−１Ｄ変換（４×４画素ブロックの場合）を例示する。尚、図９に示されるような予測モード毎の２Ｄ−１Ｄ変換の具体的な設計手法は、後述される。各予測モードに対応する２Ｄ−１Ｄ変換部によって２Ｄ−１Ｄ変換された量子化変換係数列１１７の係数順（スキャン順）を示すインデックス（ｉｄｘ）と、対応する量子化変換係数１２１の要素（ｃｉｊ）とを示している。尚、図９において、ｃｉｊは、量子化変換係数（行列）１２１中の座標（ｉ，ｊ）の要素を示している。また、図９において、各予測モードは、その名称によって表されているが、予測モードインデックスとの対応は図４Ａに示す通りである。このように、予測モード毎の個別の２Ｄ−１Ｄ変換を適用すれば、例えば予測モード毎の量子化変換係数１２１における非零係数の発生傾向に適合した順序で係数がスキャンされるので符号化効率が向上する。
【００６７】
尚、簡単化のために４×４画素ブロックに関する例を示したが、８×８画素ブロック、１６×１６画素ブロックなどに関しても同様に、予測モード毎の個別の２Ｄ−１Ｄ変換を規定できる。また、画素ブロックがＭ×Ｎで表現される矩形ブロックであるならば、２Ｄ−１Ｄ変換を行うブロックサイズとしてＭ×Ｎを用いることもできる。この場合には、矩形ブロックに関して、予測モード毎に図９に例示されるような個別の２Ｄ−１Ｄ変換を規定すればよい。
【００６８】
更に別の例として、係数順制御部１１３は、２Ｄ−１Ｄ変換におけるスキャン順を動的に更新してもよい。このような動作を行う係数順制御部１１３は、図５Ｂに例示される。この係数順制御部１１３は、選択スイッチ５０１と、９種類の予測モード毎の個別の２Ｄ−１Ｄ変換部５０２，・・・，５１０と、発生頻度カウント部５１１と、係数順更新部５１２とを含む。選択スイッチ５０１は、図５Ａに関して説明した通りである。９種類の予測モード毎の個別の２Ｄ−１Ｄ変換部５０２，・・・，５１０は、そのスキャン順が係数順更新部５１２によって更新される点で図５Ａとは異なる。
【００６９】
発生頻度カウント部５１１は、予測モード毎に、量子化変換係数列１１７の各要素における非零係数の発生回数のヒストグラムを作成する。発生頻度カウント部５１１は、作成したヒストグラム５１３を係数順更新部５１２に入力する。
【００７０】
係数順更新部５１２は、予め定められたタイミングで、ヒストグラム５１３に基づいて係数順の更新を行う。上記タイミングは、例えば、コーディングツリーユニットの符号化処理が終了したタイミング、コーディングツリーユニット内の１ライン分の符号化処理が終了したタイミングなどである。
【００７１】
具体的には、係数順更新部５１２は、ヒストグラム５１３を参照して、非零係数の発生回数が閾値以上にカウントされた要素を持つ予測モードに関して係数順の更新を行う。例えば、係数順更新部５１２は、非零係数の発生が１６回以上カウントされた要素を持つ予測モードに関して更新を行う。このような発生回数に閾値を設けることによって、係数順の更新が大域的に実施されるので、局所的な最適解に収束しにくくなる。
【００７２】
係数順更新部５１２は、更新対象となる予測モードに関して、非零係数の発生頻度の降順に要素をソーティングする。ソーティングは、例えばバブルソート、クイックソートなどの既存のアルゴリズムによって実現できる。そして、係数順更新部５１２は、ソーティングされた要素の順序を示す係数順更新情報５１４を、更新対象となる予測モードに対応する２Ｄ−１Ｄ変換部に入力する。
【００７３】
係数順更新情報５１４が入力されると、２Ｄ−１Ｄ変換部は更新後のスキャン順に従って２Ｄ−１Ｄ変換を行う。尚、スキャン順を動的に更新する場合には、各２Ｄ−１Ｄ変換部の初期スキャン順を予め定めておく必要がある。例えば、ジグザグスキャンまたは図９に例示したスキャン順が、初期スキャン順として利用できる。
【００７４】
このように、動的にスキャン順を更新することにより、予測画像の性質、量子化情報（量子化パラメータ）などの影響に応じて、量子化変換係数１２１における非零係数の発生傾向が変化する場合にも、安定的に高い符号化効率を期待できる。具体的には、エントロピー符号化部１１４におけるランレングス符号化の発生符号量を抑制できる。
【００７５】
尚、簡単化のためにＨ．２６４を例示して予測モードが９種類の場合を説明したが、予測モードが１７種類、３３種類などに拡張された場合にも、拡張された各予測モードに対応する２Ｄ−１Ｄ変換部を追加すれば予測モード毎の個別の２Ｄ−１Ｄ変換を行うことができる。
【００７６】
以下、図１０Ａ及び図１０Ｂを用いて、図１の画像符号化装置が符号化対象ブロック（コーディングツリーユニット）に対して行う処理を説明する。尚、図１０Ａ及び図１０Ｂの例では、本実施形態に係る直交変換及び逆直交変換（即ち、１Ｄ変換行列セット情報１２９に基づく適応的な直交変換及び逆直交変換）が有効であることを前提としている。しかしながら、後述するようにシンタクスによって本実施形態に係る直交変換及び逆直交変換が無効となることが規定されてもよい。
【００７７】
入力画像１１８が符号化対象ブロック単位で図１の画像符号化装置に入力されると、符号化対象ブロックの符号化処理が開始する（ステップＳ６０１）。イントラ予測部１０８及びインター予測部１０９は、参照画像メモリ１０７に保存されている参照画像１２５を用いて、イントラ予測画像及びインター予測画像を生成する（ステップＳ６０２）。符号化制御部１１６は前述の符号化コストなどの観点から最適な予測モードを判定し、予測情報１２６を生成する（ステップＳ６０３）。予測情報１２６は、予測選択部１１０から前述のように各要素に入力される。ステップＳ６０３において生成された予測情報１２６がイントラ予測を示唆するのであれば処理はステップＳ６０５に進み、インター予測を示唆するのであれば処理はステップＳ６０５’に進む。
【００７８】
ステップＳ６０５では、減算部１０１が符号化対象ブロックから（イントラ）予測画像１２７を減算して予測誤差１１９を生成し、処理はステップＳ６０６に進む。一方、ステップＳ６０５’でも同様に、減算部１０１が符号化対象ブロックから（インター）予測画像１２７を減算して予測誤差１１９を生成し、処理はステップＳ６１４’に進む。
【００７９】
ステップＳ６０６では、１Ｄ変換行列セット部１１２が、ステップＳ６０３において生成された予測情報１２６に含まれる予測モード情報を抽出する。１Ｄ変換行列セット部１１２は、抽出した予測モード情報に基づいて（例えば、図４Ａのテーブルを参照して）１Ｄ変換行列セット情報１２９を生成する（ステップＳ６０７）。１Ｄ変換行列セット部１１２は、１Ｄ変換行列セット情報１２９を直交変換部１０２及び逆直交変換部１０５に入力する。
【００８０】
直交変換部１０２内の選択スイッチ２０１は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ直交変換部Ａ２０６または１Ｄ直交変換部Ｂ２０７を選択する（ステップＳ６０８、ステップＳ６０９及びステップＳ６１０）。一方、直交変換部１０２内の選択スイッチ２０４は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ直交変換部Ａ２０８または１Ｄ直交変換部Ｂ２０９を選択する（ステップＳ６１１、ステップＳ６１２及びステップＳ６１３）。その後、処理はステップＳ６１４に進む。
【００８１】
例えば、１Ｄ変換行列セット情報１２９の一例である変換インデックス（ＴｒａｎｓｆｏｒｍＩｄｘ）が０の場合、選択スイッチ２０１は垂直変換部２０２内の１Ｄ直交変換部Ａ２０６を選択し（ステップＳ６０９）、選択スイッチ２０４は水平変換部２０５内の１Ｄ直交変換部Ａ２０８を選択する（ステップＳ６１２）。ＴｒａｎｓｆｏｒｍＩｄｘが１の場合、選択スイッチ２０１は垂直変換部２０２内の１Ｄ直交変換部Ａ２０６を選択し（ステップＳ６０９）、選択スイッチ２０４は水平変換部２０５内の１Ｄ直交変換部Ｂ２０９を選択する（ステップＳ６１３）。ＴｒａｎｓｆｏｒｍＩｄｘが２の場合、選択スイッチ２０１は垂直変換部２０２内の１Ｄ直交変換部Ｂ２０７を選択し（ステップＳ６１０）、選択スイッチ２０４は水平変換部２０５内の１Ｄ直交変換部Ａ２０８を選択する（ステップＳ６１２）。ＴｒａｎｓｆｏｒｍＩｄｘが３の場合、選択スイッチ２０１は垂直変換部２０２内の１Ｄ直交変換部Ｂ２０７を選択し（ステップＳ６１０）、選択スイッチ２０４は水平変換部２０５内の１Ｄ直交変換部Ｂ２０９を選択する（ステップＳ６１３）。
【００８２】
ステップＳ６１４では、直交変換部１０２が予測誤差１１９に対して、ステップＳ６０８，・・・，ステップＳ６１３による設定に応じた垂直変換及び水平変換を夫々行って、変換係数１２０を生成する。続いて、量子化部１０３がステップＳ６１４において生成された変換係数１２０に量子化を行って量子化変換係数１２１を生成し（ステップＳ６１５）、処理はステップＳ６１６に進む。
【００８３】
一方、ステップＳ６１４’では、直交変換部１０２が予測誤差１１９に対して、例えばＤＣＴなどの固定的な直交変換を行って、変換係数１２０を生成する。続いて、量子化部１０３がステップＳ６１４’において生成された変換係数１２０に量子化を行って量子化変換係数１２１を生成し（ステップＳ６１５’）、処理はステップＳ６１７’に進む。尚、ステップＳ６１４’において行われる直交変換は、図示しないＤＣＴ部などによって実現されてもよいし、１Ｄ直交変換部Ｂ２０７及び１Ｄ直交変換部Ｂ２０９によって実現されてもよい。
【００８４】
ステップＳ６１６では、係数順制御部１１３が、ステップＳ６０３において生成された予測情報１２６に含まれる予測モード情報に基づいてスキャン順（即ち、図５Ａ及び図５Ｂの例であれば、選択スイッチ５０１の接続先）を設定し、処理はステップＳ６１７に進む。但し、係数制御部１１３が予測モードに関わらず共通の２Ｄ−１Ｄ変換を行うのであれば、ステップＳ６１６は省略可能である。
【００８５】
ステップＳ６１７では、係数順制御部１１３が量子化変換係数１２１に対して、ステップＳ６１６における設定に応じた２Ｄ−１Ｄ変換を行って量子化変換係数列１１７を生成する。続いて、エントロピー符号化部１１４が、この量子化変換係数列１１７を含む符号化パラメータをエントロピー符号化する（ステップＳ６１８）。符号化データ１３０は、符号化制御部１１６によって管理される適切なタイミングで出力される。一方、逆量子化部１０４は量子化変換係数１２１に逆量子化を行って復元変換係数１２２を生成し（ステップＳ６１９）、処理はステップＳ６２０に進む。
【００８６】
ステップＳ６１７’では、係数順制御部１１３が量子化変換係数１２１に対して、例えばジグザグスキャンまたは図９のＩｎｔｒａ＿ＮｘＮ＿ＤＣに対応する２Ｄ−１Ｄ変換などの固定的な２Ｄ−１Ｄ変換を行って量子化変換係数列１１７を生成する。続いて、エントロピー符号化部１１４が、この量子化変換係数列１１７を含む符号化パラメータをエントロピー符号化する（ステップＳ６１８’）。符号化データ１３０は、符号化制御部１１６によって管理される適切なタイミングで出力される。一方、逆量子化部１０４は量子化変換係数１２１に逆量子化を行って復元変換係数１２２を生成し（ステップＳ６１９’）、処理はステップＳ６２６’に進む。
【００８７】
逆直交変換部１０５内の選択スイッチ３０１は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ逆直交変換部Ａ３０６または１Ｄ逆直交変換部Ｂ３０７を選択する（ステップＳ６２０、ステップＳ６２１及びステップＳ６２２）。一方、逆直交変換部１０５内の選択スイッチ３０４は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ逆直交変換部Ａ３０８または１Ｄ逆直交変換部Ｂ３０９を選択する（ステップＳ６２３、ステップＳ６２４及びステップＳ６２５）。その後、処理はステップＳ６２６に進む。
【００８８】
例えば、１Ｄ変換行列セット情報１２９の一例である変換インデックス（ＴｒａｎｓｆｏｒｍＩｄｘ）が０の場合、選択スイッチ３０１は垂直逆変換部３０２内の１Ｄ逆直交変換部Ａ３０６を選択し（ステップＳ６２１）、選択スイッチ３０４は水平逆変換部３０５内の１Ｄ逆直交変換部Ａ３０８を選択する（ステップＳ６２４）。ＴｒａｎｓｆｏｒｍＩｄｘが１の場合、選択スイッチ３０１は垂直逆変換部３０２内の１Ｄ逆直交変換部Ａ３０６を選択し（ステップＳ６２１）、選択スイッチ３０４は水平逆変換部３０５内の１Ｄ逆直交変換部Ｂ３０９を選択する（ステップＳ６２５）。ＴｒａｎｓｆｏｒｍＩｄｘが２の場合、選択スイッチ３０１は垂直逆変換部３０２内の１Ｄ逆直交変換部Ｂ３０７を選択し（ステップＳ６２２）、選択スイッチ３０４は水平逆変換部３０５内の１Ｄ逆直交変換部Ａ３０８を選択する（ステップＳ６２４）。ＴｒａｎｓｆｏｒｍＩｄｘが３の場合、選択スイッチ３０１は垂直逆変換部３０２内の１Ｄ逆直交変換部Ｂ３０７を選択し（ステップＳ６２２）、選択スイッチ３０４は水平逆変換部３０５内の１Ｄ逆直交変換部Ｂ３０９を選択する（ステップＳ６２５）。
【００８９】
ステップＳ６２６では、逆直交変換部１０５が復元変換係数１２２に対して、ステップＳ６２０，・・・，ステップＳ６２５による設定に応じた垂直逆変換及び水平逆変換を夫々行って復元予測誤差１２３を生成し、処理はステップＳ６２７に進む。ステップＳ６２６’では、逆直交変換部１０５が復元変換係数１２２に対して、例えばＩＤＣＴなどの逆直交変換を行って復元予測誤差１２３を生成し、処理はステップＳ６２７に進む。尚、ステップＳ６２６’において行われる固定的な逆直交変換は、図示しないＩＤＣＴ部などによって実現されてもよいし、１Ｄ逆直交変換部Ｂ３０７及び１Ｄ逆直交変換部Ｂ３０９によって実現されてもよい。
【００９０】
ステップＳ６２７において、加算部１０６はステップＳ６２６またはステップＳ６２６’において生成された復元予測誤差１２３と予測画像１２７と加算して局所復号画像１２４を生成し、この局所復号画像１２４が参照画像として参照画像メモリ１０７に保存され、符号化対象ブロックの符号化処理が終了する（ステップＳ６２８）。
【００９１】
以下、前述の１Ｄ変換行列Ａ及び１Ｄ変換行列Ｂの設計手法について説明する。Ｈ．２６４の４×４画素ブロック及び８×８画素ブロックでは、夫々９種類の予測モードが定義されており、１６ｘ１６画素ブロックでは４種類の予測モードが定義されている。
【００９２】
まず、各予測モードの予測誤差１１９を夫々生成する。各予測モードの予測誤差１１９のうち、参照画素からの距離が大きくなるにつれて予測誤差の絶対値が大きくなるという前述の傾向を垂直方向または水平方向に示すものを夫々収集する。そして、この傾向を示す方向を縦に設定して予測誤差１１９を横に並べた行列に対して特異値分解を行うことにより、係る行列の垂直方向の相関を除去する１Ｄ直交基底を設計する。この１Ｄ直交基底を行ベクトルとし縦に並べて１Ｄ変換行列Ａが生成される。
【００９３】
一方、係る傾向を示さない方向を縦に設定して予測誤差１１９を横に並べた行列に対して、特異値分解を行うことにより、係る行列の垂直方向の相関を除去する１Ｄ直交基底を生成する。この１Ｄ直交基底を行ベクトルとし縦に並べて１Ｄ変換行列Ｂが生成される。尚、この１Ｄ変換行列Ｂは、単にＤＣＴのための行列で代用することも可能である。簡単化のために４×４画素ブロックに関する設計を例示したが、８×８画素ブロック及び１６×１６画素ブロックのための１Ｄ変換行列も同様に設計可能である。また、説明した設計手法は一例であり、前述の予測残差の性質を考慮して適宜設計を行う余地がある。
【００９４】
以下、図９に例示されるような予測モード毎の２Ｄ−１Ｄ変換（スキャン順）の具体的な設計手法について説明する。予測モード毎のスキャン順は、量子化部１０３によって生成される量子化変換係数１２１に基づいて設計される。例えば、４×４画素ブロックに関する設計では、複数の訓練画像を用意して９種類の各予測モードの予測残差１１９を夫々生成する。この予測残差１１９の各々に対して数式（３）及び数式（４）に示す直交変換を行って変換係数１２０を生成し、更にこれを量子化する。量子化変換係数１２１に対して、４×４画素ブロック内の各要素について非零係数の発生回数を累積加算する。この累積加算は全ての訓練画像に対して行われ、４×４画素ブロックの１６個の要素毎に非零係数の発生頻度を示すヒストグラムが作成される。このヒストグラムに基づいて、発生頻度の高い要素から昇順にインデックス０〜１５が与えられる。このようなインデックスの割り当てが、全ての予測モードについて個別に行われる。割り当てられたインデックスの順序が、各予測モードに対応するスキャン順として使用される。
【００９５】
簡単化のために４×４画素ブロックに関する設計を例示したが、８×８画素ブロック及び１６×１６画素ブロックのスキャン順も同様に設計可能である。また、予測モードが１７種類、３３種類及び任意の数に拡張しても同様の手法で設計可能である。尚、スキャン順を動的に更新する手法については、図５Ｂに関して説明した通りである。
【００９６】
以下、図１の画像符号化装置が利用するシンタクスについて説明する。  
シンタクスは、画像符号化装置が動画像データを符号化する際の符号化データ（例えば、図１の符号化データ１３０）の構造を示している。この符号化データを復号化する際に、同じシンタクス構造を参照して画像復号化装置がシンタクス解釈を行う。図１の画像符号化装置が利用するシンタクス７００を図１１に例示する。
【００９７】
シンタクス７００は、ハイレベルシンタクス７０１、スライスレベルシンタクス７０２及びコーディングツリーレベルシンタクス７０３の３つのパートを含む。ハイレベルシンタクス７０１は、スライスよりも上位のレイヤのシンタクス情報を含む。スライスとは、フレームまたはフィールドに含まれる矩形領域もしくは連続領域を指す。スライスレベルシンタクス７０２は、各スライスを復号化するために必要な情報を含む。コーディングツリーレベルシンタクス７０３は、各コーディングツリー（即ち、各コーディングツリーユニット）を復号化するために必要な情報を含む。これら各パートは、更に詳細なシンタクスを含む。
【００９８】
ハイレベルシンタクス７０１は、シーケンスパラメータセットシンタクス７０４及びピクチャパラメータセットシンタクス７０５などの、シーケンス及びピクチャレベルのシンタクスを含む。スライスレベルシンタクス７０２は、スライスヘッダーシンタクス７０６及びスライスデータシンタクス７０７などを含む。コーディングツリーレベルシンタクス７０３は、コーディングツリーユニットシンタクス７０８及びプレディクションユニットシンタクス７０９などを含む。
【００９９】
コーディングツリーユニットシンタクス７０８は、四分木構造を持つことができる。具体的には、コーディングツリーユニットシンタクス７０８のシンタクス要素として、更にコーディングツリーユニットシンタクス７０８を再帰呼び出しすることができる。即ち、１つのコーディングツリーユニットを四分木で細分化することができる。また、コーディングツリーユニットシンタクス７０８内にはトランスフォームユニットシンタクス７１０が含まれている。トランスフォームユニットシンタクス７１０は、四分木の最末端の各コーディングツリーユニットシンタクス７０８において呼び出される。トランスフォームユニットシンタクス７１０は、逆直交変換及び量子化などに関わる情報が記述されている。
【０１００】
図１２は、本実施形態に係るスライスヘッダーシンタクス７０６を例示する。図１２に示されるｓｌｉｃｅ＿ｄｉｒｅｃｔｉｏｎａｌ＿ｕｎｉｆｉｅｄ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇは、例えば、当該スライスに関して本実施形態に係る直交変換及び逆直交変換の有効／無効を示すシンタクス要素である。
【０１０１】
ｓｌｉｃｅ＿ｄｉｒｅｃｔｉｏｎａｌ＿ｕｎｉｆｉｅｄ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇが0である場合、当該スライス内での本実施形態に係る直交変換及び逆直交変換は無効である。故に、直交変換部１０２及び逆直交変換部１０５は、ＤＣＴ及びＩＤＣＴなどの固定的な直交変換及び逆直交変換を行う。この固定的な直交変換及び逆直交変換は、１Ｄ直交変換部Ｂ２０７、１Ｄ直交変換部Ｂ２０９、１Ｄ逆直交変換部３０７及び１Ｄ逆直交変換部３０９によって（即ち、１Ｄ変換行列Ｂによって）行われてもよいし、図示しないＤＣＴ部及びＩＤＣＴ部によって行われてもよい。また、係数順制御部１１３でも固定的な２Ｄ−１Ｄ変換（例えば、ジグザグスキャン）が行われる。この固定的な２Ｄ−１Ｄ変換は、２Ｄ−１Ｄ変換部（モード２）５０４によって行われてもよいし、図示しない２Ｄ−１Ｄ変換部によって行われてもよい。
【０１０２】
一例として、ｓｌｉｃｅ＿ｄｉｒｅｃｔｉｏｎａｌ＿ｕｎｉｆｉｅｄ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇが１である場合には、当該スライス内全域で本実施形態に係る直交変換及び逆直交変換が有効となる。即ち、当該スライス内全域で図１０Ａ及び図１０Ｂに関して説明した符号化フローチャートに従って符号化処理が行われる。即ち、選択スイッチ２０１は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ直交変換部Ａ２０６または１Ｄ直交変換部Ｂ２０７を選択する。選択スイッチ２０４は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ直交変換部Ａ２０８または１Ｄ直交変換部Ｂ２０９を選択する。また、選択スイッチ３０１は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ逆直交変換部Ａ３０６または１Ｄ逆直交変換部Ｂ３０７を選択する。選択スイッチ３０４は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ逆直交変換部Ａ３０８または１Ｄ逆直交変換部Ｂ３０９を選択する。更に、選択スイッチ５０１は、予測情報１２６に含まれる予測モード情報に従って、２Ｄ−１Ｄ変換部５０２，・・・，５１０のいずれかを選択する。
【０１０３】
また、別の例として、ｓｌｉｃｅ＿ｄｉｒｅｃｔｉｏｎａｌ＿ｕｎｉｆｉｅｄ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇが１である場合には、より下位のレイヤ（コーディングツリーユニット、トランスフォームユニットなど）のシンタクスにおいて当該スライス内部の局所領域毎に本実施形態に係る直交変換及び逆直交変換の有効／無効が規定されてもよい。
【０１０４】
図１３は、本実施形態に係るコーディングツリーユニットシンタクス７０８を例示する。図１３に示されるｃｔｂ＿ｄｉｒｅｃｔｉｏｎａｌ＿ｕｎｉｆｉｅｄ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇは、当該コーディングツリーユニットに関して本実施形態に係る直交変換及び逆直交変換の有効／無効を示すシンタクス要素である。また、図１３に示されるｐｒｅｄ＿ｍｏｄｅはプレディクションユニットシンタクス７０９に含まれるシンタクス要素の１つであり、当該コーディングツリーユニットもしくはマクロブロック内の符号化タイプを示している。MODE_INTRAは、符号化タイプがイントラ予測であることを示す。ｃｔｂ＿ｄｉｒｅｃｔｉｏｎａｌ＿ｕｎｉｆｉｅｄ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇは、前述のｓｌｉｃｅ＿ｄｉｒｅｃｔｉｏｎａｌ＿ｕｎｉｆｉｅｄ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇが１であって、かつ、コーディングツリーユニットの符号化タイプがイントラ予測の時にのみ符号化される。
【０１０５】
ｃｔｂ＿ｄｉｒｅｃｔｉｏｎａｌ＿ｕｎｉｆｉｅｄ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇが0である場合、当該コーディングツリーユニット内での本実施形態に係る直交変換及び逆直交変換は無効である。故に、直交変換部１０２及び逆直交変換部１０５は、ＤＣＴ及びＩＤＣＴなどの固定的な直交変換及び逆直交変換を行う。この固定的な直交変換及び逆直交変換は、１Ｄ直交変換部Ｂ２０７、１Ｄ直交変換部Ｂ２０９、１Ｄ逆直交変換部３０７及び１Ｄ逆直交変換部３０９によって（即ち、１Ｄ変換行列Ｂによって）行われてもよいし、図示しないＤＣＴ部及びＩＤＣＴ部によって行われてもよい。また、係数順制御部１１３でも固定的な２Ｄ−１Ｄ変換（例えば、ジグザグスキャン）が行われる。この固定的な２Ｄ−１Ｄ変換は、２Ｄ−１Ｄ変換部（モード２）５０４によって行われてもよいし、図示しない２Ｄ−１Ｄ変換部によって行われてもよい。
【０１０６】
一方、ｃｔｂ＿ｄｉｒｅｃｔｉｏｎａｌ＿ｕｎｉｆｉｅｄ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇが１である場合、当該コーディングツリーユニット内で本実施形態に係る直交変換及び逆直交変換が有効となり、図１０Ａ及び図１０Ｂで説明した符号化フローチャートに従って符号化処理が行われる。即ち、選択スイッチ２０１は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ直交変換部Ａ２０６または１Ｄ直交変換部Ｂ２０７を選択する。選択スイッチ２０４は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ直交変換部Ａ２０８または１Ｄ直交変換部Ｂ２０９を選択する。また、選択スイッチ３０１は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ逆直交変換部Ａ３０６または１Ｄ逆直交変換部Ｂ３０７を選択する。選択スイッチ３０４は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ逆直交変換部Ａ３０８または１Ｄ逆直交変換部Ｂ３０９を選択する。更に、選択スイッチ５０１は、予測情報１２６に含まれる予測モード情報に従って、２Ｄ−１Ｄ変換部５０２，・・・，５１０のいずれかを選択する。
【０１０７】
図１３の例のように、コーディングツリーユニットシンタクス７０８において、本実施形態に係る直交変換及び逆直交変換の有効／無効を規定するフラグを符号化すると、このフラグを符号化しない場合に比べて情報量（符号量）は増大する。しかしながら、このフラグを符号化することにより、局所領域（即ち、コーディングツリーユニット）毎に最適な直交変換を行うことが可能となる。
【０１０８】
図１４は、本実施形態に係るトランスフォームユニットシンタクス７１０を例示する。図１４に示されるｔｕ＿ｄｉｒｅｃｔｉｏｎａｌ＿ｕｎｉｆｉｅｄ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇは、当該トランスフォームユニットに関して本実施形態に係る直交変換及び逆直交変換の有効／無効を示すシンタクス要素である。また、図１４に示されるｐｒｅｄ＿ｍｏｄｅはプレディクションユニットシンタクス７０９に含まれるシンタクス要素の１つであり、当該コーディングツリーユニットもしくはマクロブロック内の符号化タイプを示している。MODE_INTRAは、符号化タイプがイントラ予測であることを示す。ｔｕ＿ｄｉｒｅｃｔｉｏｎａｌ＿ｕｎｉｆｉｅｄ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇはｓｌｉｃｅ＿ｄｉｒｅｃｔｉｏｎａｌ＿ｕｎｉｆｉｅｄ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇが１であって、かつ、コーディングツリーユニットの符号化タイプがイントラ予測の時にのみ符号化される。
【０１０９】
ｔｕ＿ｄｉｒｅｃｔｉｏｎａｌ＿ｕｎｉｆｉｅｄ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇが0である場合、当該トランスフォームユニット内での本実施形態に係る直交変換及び逆直交変換は無効である。故に、直交変換部１０２及び逆直交変換部１０５は、ＤＣＴ及びＩＤＣＴなどの固定的な直交変換及び逆直交変換を行う。この固定的な直交変換及び逆直交変換は、１Ｄ直交変換部Ｂ２０７、１Ｄ直交変換部Ｂ２０９、１Ｄ逆直交変換部３０７及び１Ｄ逆直交変換部３０９によって（即ち、１Ｄ変換行列Ｂによって）行われてもよいし、図示しないＤＣＴ部及びＩＤＣＴ部によって行われてもよい。また、係数順制御部１１３でも固定的な２Ｄ−１Ｄ変換（例えば、ジグザグスキャン）が行われる。この固定的な２Ｄ−１Ｄ変換は、２Ｄ−１Ｄ変換部（モード２）５０４によって行われてもよいし、図示しない２Ｄ−１Ｄ変換部によって行われてもよい。
【０１１０】
一方、ｔｕ＿ｄｉｒｅｃｔｉｏｎａｌ＿ｕｎｉｆｉｅｄ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇが１である場合、当該トランスフォームユニット内での本実施形態に係る直交変換及び逆直交変換が有効となり、図１０Ａ及び図１０Ｂで説明した符号化フローチャートに従って符号化処理が行われる。即ち、選択スイッチ２０１は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ直交変換部Ａ２０６または１Ｄ直交変換部Ｂ２０７を選択する。選択スイッチ２０４は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ直交変換部Ａ２０８または１Ｄ直交変換部Ｂ２０９を選択する。また、選択スイッチ３０１は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ逆直交変換部Ａ３０６または１Ｄ逆直交変換部Ｂ３０７を選択する。選択スイッチ３０４は、１Ｄ変換行列セット情報１２９に基づいて１Ｄ逆直交変換部Ａ３０８または１Ｄ逆直交変換部Ｂ３０９を選択する。更に、選択スイッチ５０１は、予測情報１２６に含まれる予測モード情報に従って、２Ｄ−１Ｄ変換部５０２，・・・，５１０のいずれかを選択する。
【０１１１】
図１４の例のように、トランスフォームユニットシンタクス７１０において、本実施形態に係る直交変換及び逆直交変換の有効／無効を規定するフラグを符号化すると、このフラグを符号化しない場合に比べて情報量（符号量）は増大する。しかしながら、このフラグを符号化することにより、局所領域（即ち、トランスフォームユニット）毎に最適な直交変換を行うことが可能となる。
【０１１２】
尚、図１２、図１３及び図１４に例示するシンタクステーブルの行間には、本実施形態において規定していないシンタクス要素が挿入されてもよいし、その他の条件分岐に関する記述が含まれていてもよい。また、シンタクステーブルを複数のテーブルに分割したり、複数のシンタクステーブルを統合したりしてもよい。また、例示した各シンタクス要素の用語は、任意に変更可能である。
【０１１３】
以上説明したように、本実施形態に係る画像符号化装置は、参照画素からの距離が大きくなるにつれて予測精度が低下するというイントラ予測の傾向を利用する。この画像符号化装置は、各予測モードの垂直方向及び水平方向を上記傾向の有無に従って２つのクラスに分類し、垂直方向及び水平方向の夫々について適応的に１Ｄ変換行列Ａまたは１Ｄ変換行列Ｂを適用する。１Ｄ変換行列Ａは、参照画素群のラインに直交する方向（垂直方向または水平方向）について１Ｄ直交変換を行う際の係数集密度が高くなる（即ち、量子化変換係数１２１における非零係数の割合が小さくなる）ように共通の変換基底を予め設計することによって生成される。一方、１Ｄ変換行列Ｂは、このような性質を持たない汎用的な変換行列を設計することによって生成される。例えば、汎用的な変換はＤＣＴである。故に、本実施形態に係る画像符号化装置によれば、各予測モードに一律にＤＣＴなどの固定的な直交変換を施す場合に比べて、高い変換効率が達成される。
【０１１４】
また、本実施形態に係る直交変換部１０２及び逆直交変換部１０５は、ハードウェア実装及びソフトウェア実装のいずれにも好適である。  
数式（３）乃至数式（６）は固定行列の乗算を表しているので、直交変換部及び逆直交変換部をハードウェア実装する場合には、乗算器よりもむしろハードワイヤードロジックによって構成されることが想定される。
【０１１５】
仮に、９種類のイントラ予測モードの夫々について専用の変換基底を用いて直交変換及び逆直交変換を行うとすれば、９個の２Ｄ直交変換部または図１５に示すように１８（＝９×２）個の１Ｄ直交変換部を用意する必要がある。これら９個の２Ｄ直交変換部または１８個の１Ｄ直交変換部は、夫々異なる変換行列を乗算するので、結果的に、Ｈ．２６４で必要なＤＣＴのための専用ハードウェアに加えて、追加で９個の２Ｄ直交変換部または１８個の１Ｄ直交変換部のための専用ハードウェアを設けることとなり、回路規模が増大する。
【０１１６】
一方、本実施形態に係る直交変換部及び逆直交変換部は、図２及び図３に示す通り、２個（垂直（逆）変換部及び水平（逆）変換部を時分割で共有する場合）の１Ｄ直交変換部と、行列の転置を行う回路との組み合わせによって４種類の２次元の直交変換を実行する。故に、本実施形態に係る直交変換部及び逆直交変換部によれば、ハードウェア実装における回路規模の増加を大幅に抑制できる。
【０１１７】
また、ソフトウェア実装に関して、仮に９種類のイントラ予測モードの夫々について専用の変換基底を用いて直交変換及び逆直交変換を行うとすれば、９個の２Ｄ直交変換行列または１８（＝９×２）個の１Ｄ直交変換行列をメモリに保持しておき、これら変換行列を予測モード毎に呼び出して汎用乗算機を用いて直交変換を実現することが想定される。故に、変換行列を保存するためのメモリサイズの増加によるコスト増を招いたり、変換の度に変換行列をメモリにロードすることによるメモリバンド幅の増加に繋がったりするおそれがある。
【０１１８】
一方、本実施形態に係る直交変換部及び逆直交変換部は、図２及び図３に示す通り、２個の１Ｄ直交変換行列を利用した垂直変換及び水平変換を組み合わせることにより４種類の２次元の直交変換を実行する。故に、本実施形態に係る直交変換部及び逆直交変換部によれば、ソフトウェア実装におけるメモリサイズの増加を大幅に抑制できる。
【０１１９】
また、本実施形態において説明したように予測モード毎に個別のスキャン順を用意することは、符号化効率の向上に寄与する。量子化変換係数１２１は要素毎に非零係数の発生傾向が偏る性質を持つ。係る非零係数の発生傾向は、イントラ予測の予測方向毎に異なる。更に、予測方向が同一であれば、異なる入力画像１１８の画素ブロックを符号化した場合にも、非零係数の発生傾向は類似する。故に、係数順制御部１１３は、量子化係数１２１のうち非零係数の発生確率が高い要素から順に１次元の量子化変換係数列１２２に変換することによって、量子化変換係数列１２２において零係数が高確率で密集する。即ち、エントロピー符号化部１１４におけるランレングス符号化による発生符号量を削減できる。係数順制御部１１３は、図５Ａ及び図５Ｂに関して説明した通り、予測モード毎に予め学習されたスキャン順を固定的に利用してもよいし、符号化処理中に動的にスキャン順を更新して利用してもよい。予測モード毎に最適化されたスキャン順を利用すれば、例えばＨ．２６４と比較して演算量の大幅な増加を引き起こすことなく、量子化変換係数列１２２に基づく発生符号量を削減できる。
【０１２０】
（第２の実施形態）  
第２の実施形態に係る画像符号化装置は、前述の第１の実施形態に係る画像符号化装置と直交変換及び逆直交変換の詳細において異なる。以降の説明では、本実施形態において第１の実施形態と同一部分には同一符号を付して示し、異なる部分を中心に説明する。本実施形態に係る画像符号化装置に対応する画像復号化装置は、第５の実施形態において説明する。
【０１２１】
本実施形態に係る画像符号化装置は、図２に例示した直交変換部１０２の代わりに、図１６に例示する直交変換部１０２を含む。図１６の直交変換部１０２は、選択スイッチ８０１、垂直変換部８０２、転置部２０３、選択スイッチ８０４及び水平変換部８０５を有する。垂直変換部８０２は、１Ｄ直交変換部Ｃ８０６、１Ｄ直交変換部Ｄ８０７及び１Ｄ直交変換部Ｅ８０８を含む。水平変換部８０５は、１Ｄ直交変換部Ｃ８０９、１Ｄ直交変換部Ｄ８１０及び１Ｄ直交変換部Ｅ８１１を含む。尚、垂直変換部８０２及び水平変換部８０５の順序は、一例であり、これらは逆順であっても構わない。
【０１２２】
１Ｄ直交変換部Ｃ８０６及び１Ｄ直交変換部Ｃ８０９は、入力される行列に対して１Ｄ変換行列Ｃを乗算する点で共通の機能を持つ。１Ｄ直交変換部Ｄ８０７及び１Ｄ直交変換部Ｄ８１０は、入力される行列に対して１Ｄ変換行列Ｄを乗算する点で共通の機能を持つ。１Ｄ直交変換部Ｅ８０８及び１Ｄ直交変換部Ｅ８１１は、入力される行列に対して１Ｄ変換行列Ｅを乗算する点で共通の機能を持つ。
【０１２３】
以下、本実施形態に係る１Ｄ変換行列Ｃ、１Ｄ変換行列Ｄ及び１Ｄ変換行列Ｅについて説明する。  
前述のように、予測誤差１１９は参照画素からの距離が大きくなるにつれて絶対値が大きくなる傾向を持つ。係る傾向は予測方向に関わらず同様であるが、ＤＣ予測モードの予測画素１１９は垂直方向及び水平方向のいずれにも係る傾向を示すとはいえない。本実施形態では、ＤＣ予測モードに関して後述する１Ｄ変換行列Ｅを利用する。一方、ＤＣ予測モード以外の予測モードについては、前述の第１の実施形態と同様に上記傾向の有無に応じて夫々１Ｄ変換行列Ｃ及び１Ｄ変換行列Ｄを適応的に利用する。
【０１２４】
具体的には、１Ｄ変換行列Ｃは、前述の１Ｄ変換行列Ａと同じ設計手法によって生成することができる。また、１Ｄ変換行列Ｄは、前述の１Ｄ変換行列Ｂと類似の設計手法によって生成することができる。即ち、１Ｄ変換行列Ｄは、ＤＣ予測モードを除外したうえで、前述の１Ｄ変換行列Ｂの設計手法を実施すれば生成できる。
【０１２５】
１Ｄ変換行列Ｅは、ＤＣＴのための行列であってもよい。或いは、１Ｄ変換行列Ｅは、１Ｄ変換行列Ｄに比べて、ＤＣ予測モードの予測誤差１１９に対して垂直方向及び水平方向で１Ｄ直交変換を行う際の係数集密度が高くなる（即ち、量子化変換係数１２１における非零係数の割合が小さくなる）ように共通の変換基底を予め設計することによって生成されてもよい。
【０１２６】
本実施形態に係る画像符号化装置は、図３に例示した逆直交変換部１０５の代わりに、図１７に例示する逆直交変換部１０５を含む。図１７の逆直交変換部１０５は、選択スイッチ９０１、垂直逆変換部９０２、転置部３０３、選択スイッチ９０４及び水平逆変換部９０５を有する。垂直逆変換部９０２は、１Ｄ逆直交変換部Ｃ９０６、１Ｄ逆直交変換部Ｄ９０７及び１Ｄ逆直交変換部Ｅ９０８を含む。水平逆変換部９０５は、１Ｄ逆直交変換部Ｃ９０９、１Ｄ逆直交変換部Ｄ９１０及び１Ｄ逆直交変換部Ｅ９１１を含む。尚、垂直逆変換部９０２及び水平逆変換部９０５の順序は、一例であり、これらは逆順であっても構わない。
【０１２７】
１Ｄ逆直交変換部Ｃ９０６及び１Ｄ逆直交変換部Ｃ９０９は、入力される行列に対して１Ｄ変換行列Ｃの転置行列を乗算する点で共通の機能を持つ。１Ｄ逆直交変換部Ｄ９０７及び１Ｄ逆直交変換部Ｄ９１０は、入力される行列に対して１Ｄ変換行列Ｄの転置行列を乗算する点で共通の機能を持つ。１Ｄ逆直交変換部Ｅ９０８及び１Ｄ逆直交変換部Ｅ９１１は、入力される行列に対して１Ｄ変換行列Ｅの転置行列を乗算する点で共通の機能を持つ。
【０１２８】
以下、１Ｄ変換行列セット部１１２が生成する、本実施形態に係る１Ｄ変換行列セット情報１２９の詳細を説明する。  
１Ｄ変換行列セット情報１２９は、垂直直交変換及び垂直逆直交変換のために使用される変換行列を選択するための垂直変換インデックスと、水平直交変換及び水平逆直交変換のために使用される変換行列を選択するための水平変換インデックスとを直接的または間接的に示す。例えば、１Ｄ変換行列セット情報１２９は、図１８Ｄに示す変換インデックス（TransformIdx）で表現することができる。図１８Ｄのテーブルを参照すれば、変換インデックスから垂直変換インデックス（Vertical Transform Idx）及び水平変換インデックス（Horizontal Transform Idx）を導出できる。
【０１２９】
図１８Ｂに示すように、垂直変換インデックスが「０」であれば、垂直直交変換または垂直逆直交変換のために前述の１Ｄ変換行列Ｃ（1D_Transform_Matrix_C）またはその転置行列が選択される。一方、垂直変換インデックスが「１」であれば、垂直直交変換または垂直逆直交変換のために前述の１Ｄ変換行列Ｄ（1D_Transform_Matrix_D）またはその転置行列が選択される。更に、垂直変換インデックスが「２」であれば、垂直直交変換または垂直逆直交変換のために前述の１Ｄ変換行列Ｅ（1D_transform_Matrix_E）またはその転置行列が選択される。
【０１３０】
図１８Ｃに示すように、水平変換インデックスが「０」であれば、水平直交変換または水平逆直交変換のために前述の１Ｄ変換行列Ｃ（1D_Transform_Matrix_C）またはその転置行列が選択される。一方、水平変換インデックスが「１」であれば、水平直交変換または水平逆直交変換のために前述の１Ｄ変換行列Ｄ（1D_Transform_Matrix_D）またはその転置行列が選択される。更に、水平変換インデックスが「２」であれば、水平直交変換または水平逆直交変換のために前述の１Ｄ変換行列Ｅ（1D_Transform_Matrix_E）またはその転置行列が選択される。
【０１３１】
また、各（イントラ）予測モードのインデックス（IntraNxNPredModeIndex）と、その名称（Name of IntraNxNPredMode）と、対応する垂直変換インデックス及び水平変換インデックスを図１８Ａに例示する。尚、図１８Ａにおいて、「NxN」は予測対象ブロックのサイズを表している（Ｎ＝４，８，１６など）。予測対象ブロックのサイズは、「MxN」（即ち、正方形以外の矩形）に拡張することもできる。  
ここで、図１８Ａと図１８Ｄを統合した、各予測モードのインデックスとその名称と、対応する変換インデックスを図１８Ｅに例示する。
【０１３２】
１Ｄ変換行列セット部１１２は、予測情報１２６に含まれる予測モード情報から予測モードのインデックスを検出し、対応する１Ｄ変換行列セット情報１２９を生成する。尚、図１８Ａ、図１８Ｂ、図１８Ｃ、図１８Ｄ及び図１８Ｅに示す各種テーブルは一例であり、１Ｄ変換行列セット部１１２はこれらのテーブルの一部または全部を使用することなく１Ｄ変換行列セット情報１２９を生成してよい。
【０１３３】
例えば、ＴｒａｓｎｆｏｒｍＩｄｘが０を示す場合、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが０を、Ｈｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが０を示すことを意味する。つまり、垂直直交変換には１Ｄ変換行列Ｃを、水平直交変換には１Ｄ変換行列Ｃを使用することを意味する。また、垂直逆直交変換には１Ｄ変換行列Ｃの転置行列を、水平逆直交変換には１Ｄ変換行列Ｃの転置行列を使用することを意味する。
【０１３４】
ＴｒａｓｎｆｏｒｍＩｄｘが１を示す場合、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが０を、Ｈｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが１を示すことを意味する。つまり、垂直直交変換には１Ｄ変換行列Ｃを、水平直交変換には１Ｄ変換行列Ｄを使用することを意味する。また、垂直逆直交変換には１Ｄ変換行列Ｃの転置行列を、水平逆直交変換には１Ｄ変換行列Ｄの転置行列を使用することを意味する。
【０１３５】
ＴｒａｓｎｆｏｒｍＩｄｘが２を示す場合、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが１を、Ｈｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが０を示すことを意味する。つまり、垂直直交変換には１Ｄ変換行列Ｄを、水平直交変換には１Ｄ変換行列Ｃを使用することを意味する。また、垂直逆直交変換には１Ｄ変換行列Ｄの転置行列を、水平逆直交変換には１Ｄ変換行列Ｃを使用することを意味する。
【０１３６】
ＴｒａｓｎｆｏｒｍＩｄｘが３を示す場合、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが２をＨｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが２を示すことを意味する。つまり、垂直直交変換には１Ｄ変換行列Ｅを、水平直交変換には１Ｄ変換行列Ｅを使用することを意味する。また、垂直逆直交変換には１Ｄ変換行列Ｅの転置行列を、水平逆直交変換には１Ｄ変換行列Ｅの転置行列を使用することを意味する。
【０１３７】
ここで、予測対象ブロックがＭ×Ｎで表現される矩形ブロックである場合、直交変換を行うブロックサイズもまたＭ×Ｎであってもよい。
【０１３８】
図１８Ａに示すテーブルは、前述の各イントラ予測モードの傾向を考慮して１Ｄ変換行列セット情報１２９を割り当てている。即ち、ＤＣ予測モードには、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘ及びＨｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｏｆｒｍ  ｉｎｄｅｘに共に２を割り当てている。故に、ＤＣ予測モードについて前述の１Ｄ変換行列Ｅまたはその転置行列を用いて垂直方向及び水平方向の直交変換または逆直交変換が行われ、高い変換効率が達成される。
【０１３９】
ＤＣ予測モードを除く予測モードに関して、予測誤差の垂直方向に上記傾向を示すならばＶｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘに０が、水平方向に上記傾向を示すならばＨｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘに０が割り当られている。一方、上記傾向を示さない方向には、夫々１が割り当られている。ＤＣ予測モードを除く予測モードに関して、各予測モードの垂直方向及び水平方向を上記傾向の有無に従って２つのクラスに分類し、垂直方向及び水平方向の夫々について適応的に１Ｄ変換行列Ｃまたは１Ｄ変換行列Ｄを適用することにより、高い変換効率が達成される。
【０１４０】
以上説明したように、本実施形態に係る画像符号化装置は、第１の実施形態と同様に参照画素からの距離が大きくなるにつれて予測精度が低下するというイントラ予測の傾向を利用しつつ、ＤＣ予測を区別して直交変換及び逆直交変換を適用する。この画像符号化装置は、各予測モードの垂直方向及び水平方向を上記傾向の有無に従って２つのクラスに分類し、垂直方向及び水平方向の夫々について適応的に１Ｄ変換行列Ｃまたは１Ｄ変換行列Ｄを適用する。この画像符号化装置は、ＤＣ予測モードには１Ｄ変換行列Ｅを適用する。１Ｄ変換行列Ｃは、参照画素群のラインに直交する方向（垂直方向または水平方向）について１Ｄ直交変換を行う際の係数集密度が高くなる（即ち、量子化変換係数１２１における非零係数の割合が小さくなる）ように共通の変換基底を予め設計することによって生成される。１Ｄ変換行列Ｄは、ＤＣ予測モードを除外したうえで、このような性質を持たない汎用的な変換行列を設計することによって生成される。１Ｄ変換行列Ｅは、ＤＣＴのための行列であってもよい。或いは、１Ｄ変換行列Ｅは、ＤＣ予測モードの予測誤差１１９に対して垂直方向及び水平方向で１Ｄ直交変換を行う際の係数集密度が高くなる（即ち、量子化変換係数１２１における非零係数の割合が小さくなる）ように共通の変換基底を予め設計することによって生成される。故に、本実施形態に係る画像符号化装置によれば、各予測モードに一律にＤＣＴなどの固定的な直交変換を施す場合に比べて、高い変換効率が達成される。
【０１４１】
（第３の実施形態）  
第３の実施形態に係る画像符号化装置は、前述の第１の実施形態及び第２の実施形態に係る画像符号化装置と直交変換及び逆直交変換の詳細において異なる。以降の説明では、本実施形態において第１の実施形態または第２の実施形態と同一部分には同一符号を付して示し、異なる部分を中心に説明する。本実施形態に係る画像符号化装置に対応する画像復号化装置は、第６の実施形態において説明する。
【０１４２】
本実施形態に係る画像符号化装置は、図２に例示した直交変換部１０２の代わりに、図１９に例示する直交変換部１０２を含む。図１９の直交変換部１０２は、選択スイッチ１２０１、垂直変換部１２０２、転置部２０３、選択スイッチ１２０４及び水平変換部１２０５を有する。垂直変換部１２０２は、１Ｄ直交変換部Ｆ１２０６、１Ｄ直交変換部Ｇ１２０７及び１Ｄ直交変換部Ｈ１２０８を含む。水平変換部１２０５は、１Ｄ直交変換部Ｆ１２０９、１Ｄ直交変換部Ｇ１２１０及び１Ｄ直交変換部Ｈ１２１１を含む。尚、垂直変換部１２０２及び水平変換部１２０５の順序は、一例であり、これらは逆順であっても構わない。
【０１４３】
１Ｄ直交変換部Ｆ１２０６及び１Ｄ直交変換部Ｆ１２０９は、入力される行列に対して１Ｄ変換行列Ｆを乗算する点で共通の機能を持つ。１Ｄ直交変換部Ｇ１２０７及び１Ｄ直交変換部Ｇ１２１０は、入力される行列に対して１Ｄ変換行列Ｇを乗算する点で共通の機能を持つ。１Ｄ直交変換部Ｈ１２０８及び１Ｄ直交変換部Ｈ１２１１は、入力される行列に対して１Ｄ変換行列Ｈを乗算する点で共通の機能を持つ。
【０１４４】
以下、本実施形態に係る１Ｄ変換行列Ｆ、１Ｄ変換行列Ｇ及び１Ｄ変換行列Ｈについて説明する。  
前述のように、予測誤差１１９は参照画素からの距離が大きくなるにつれて絶対値が大きくなる傾向を持つ。係る傾向は予測方向に関わらず同様であるが、イントラ予測モードには予測対象ブロックの左隣接ライン上の参照画素群のみまたは上隣接ライン上の参照画素群のみを参照（参照画素値のコピーまたは参照画素値からの補間）する予測モードもあれば、予測対象ブロックの左隣接ライン及び上隣接ライン上の参照画素群を参照する予測モードもある。１ライン上の参照画素群のみを参照する予測モードと、２ライン上の参照画素群を参照する予測モードとでは、上記傾向の現れ方に差が生じるといえる。従って、本実施形態では、１ライン上の参照画素群のみを参照する予測モードと、２ライン上の参照画素群を参照する予測モードとを区別して直交変換及び逆直交変換を行う。具体的には、２ライン上の参照画素群を参照する予測モードについては、後述する１Ｄ変換行列Ｈを利用する。一方、１ライン上の参照画素群のみを参照する予測モードについては、前述の第１の実施形態と同様に上記傾向の有無に応じて夫々１Ｄ変換行列Ｆ及び１Ｄ変換行列Ｇを適応的に利用する。
【０１４５】
具体的には、１Ｄ変換行列Ｆは、前述の１Ｄ変換行列Ａと類似の設計手法によって生成することができる。即ち、１Ｄ変換行列Ｆは、２ライン上の参照画素群を参照する予測モード（例えば、図７Ａのモード４、モード５及びモード６）を除外したうえで、前述の１Ｄ変換行列Ａの設計手法を実施すれば生成できる。また、１Ｄ変換行列Ｇは、前述の１Ｄ変換行列Ｂと同一の設計手法によって生成することができる。或いは、１Ｄ変換行列Ｇは、ＤＣＴのための行列であってよい。
【０１４６】
１Ｄ変換行列Ｈは、２ライン上の参照画素群を参照する予測モードの予測誤差１１９に対して垂直方向及び水平方向で１Ｄ直交変換を行う際の係数集密度が高くなる（即ち、量子化変換係数１２１における非零係数の割合が小さくなる）ように共通の変換基底を予め設計することによって生成することができる。
【０１４７】
本実施形態に係る画像符号化装置は、図３に例示した逆直交変換部１０５の代わりに、図２０に例示する逆直交変換部１０５を含む。図２０の逆直交変換部１０５は、選択スイッチ１３０１、垂直逆変換部１３０２、転置部３０３、選択スイッチ１３０４及び水平逆変換部１３０５を有する。垂直逆変換部１３０２は、１Ｄ逆直交変換部Ｆ１３０６、１Ｄ逆直交変換部Ｇ１３０７及び１Ｄ逆直交変換部Ｈ１３０８を含む。水平逆変換部１３０５は、１Ｄ逆直交変換部Ｆ１３０９、１Ｄ逆直交変換部Ｇ１３１０及び１Ｄ逆直交変換部Ｈ１３１１を含む。尚、垂直逆変換部１３０２及び水平逆変換部１３０５の順序は、一例であり、これらは逆順であっても構わない。
【０１４８】
１Ｄ逆直交変換部Ｆ１３０６及び１Ｄ逆直交変換部Ｆ１３０９は、入力される行列に対して１Ｄ変換行列Ｆの転置行列を乗算する点で共通の機能を持つ。１Ｄ逆直交変換部Ｇ１３０７及び１Ｄ逆直交変換部Ｇ１３１０は、入力される行列に対して１Ｄ変換行列Ｇの転置行列を乗算する点で共通の機能を持つ。１Ｄ逆直交変換部Ｈ１３０８及び１Ｄ逆直交変換部Ｈ１３１１は、入力される行列に対して１Ｄ変換行列Ｈの転置行列を乗算する点で共通の機能を持つ。
【０１４９】
以下、１Ｄ変換行列セット部１１２が生成する、本実施形態に係る１Ｄ変換行列セット情報１２９の詳細を説明する。  
１Ｄ変換行列セット情報１２９は、垂直直交変換及び垂直逆直交変換のために使用される変換行列を選択するための垂直変換インデックスと、水平直交変換及び水平逆直交変換のために使用される変換行列を選択するための水平変換インデックスとを直接的または間接的に示す。例えば、１Ｄ変換行列セット情報１２９は、図２１Ｄに示す変換インデックス（TransformIdx）で表現することができる。図２１Ｄのテーブルを参照すれば、変換インデックスから垂直変換インデックス（Vertical Transform Idx）及び水平変換インデックス（Horizontal Transform Idx）を導出できる。
【０１５０】
図２１Ｂに示すように、垂直変換インデックスが「０」であれば、垂直直交変換または垂直逆直交変換のために前述の１Ｄ変換行列Ｆ（1D_Transform_Matrix_F）またはその転置行列が選択される。一方、垂直変換インデックスが「１」であれば、垂直直交変換または垂直逆直交変換のために前述の１Ｄ変換行列Ｇ（1D_Transform_Matrix_G）またはその転置行列が選択される。更に、垂直変換インデックスが「２」であれば、垂直直交変換または垂直逆直交変換のために前述の１Ｄ変換行列Ｈ（1D_transform_Matrix_H）またはその転置行列が選択される。
【０１５１】
図２１Ｃに示すように、水平変換インデックスが「０」であれば、水平直交変換または水平逆直交変換のために前述の１Ｄ変換行列Ｆ（1D_Transform_Matrix_F）またはその転置行列が選択される。一方、水平変換インデックスが「１」であれば、水平直交変換または水平逆直交変換のために前述の１Ｄ変換行列Ｇ（1D_Transform_Matrix_G）またはその転置行列が選択される。更に、水平変換インデックスが「２」であれば、水平直交変換または水平逆直交変換のために前述の１Ｄ変換行列Ｈ（1D_Transform_Matrix_H）またはその転置行列が選択される。
【０１５２】
また、各（イントラ）予測モードのインデックス（IntraNxNPredModeIndex）と、その名称（Name of IntraNxNPredMode）と、対応する垂直変換インデックス及び水平変換インデックスを図２１Ａに例示する。尚、図２１Ａにおいて、「NxN」は予測対象ブロックのサイズを表している（Ｎ＝４，８，１６など）。予測対象ブロックのサイズは、「MxN」（即ち、正方形以外の矩形）に拡張することもできる。  
ここで、図２１Ａと図２１Ｄを統合した、各予測モードのインデックスとその名称と、対応する変換インデックスを図２１Ｅに例示する。
【０１５３】
１Ｄ変換行列セット部１１２は、予測情報１２６に含まれる予測モード情報から予測モードのインデックスを検出し、対応する１Ｄ変換行列セット情報１２９を生成する。尚、図２１Ａ、図２１Ｂ、図２１Ｃ、図２１Ｄ及び図２１Ｅに示す各種テーブルは一例であり、１Ｄ変換行列セット部１１２はこれらのテーブルの一部または全部を使用することなく１Ｄ変換行列セット情報１２９を生成してよい。
【０１５４】
例えば、ＴｒａｓｎｆｏｒｍＩｄｘが０を示す場合、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが２を、Ｈｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが２を示すことを意味する。つまり、垂直直交変換には１Ｄ変換行列Ｈを、水平直交変換には１Ｄ変換行列Ｈを使用することを意味する。また、垂直逆直交変換には１Ｄ変換行列Ｈの転置行列を、水平逆直交変換には１Ｄ変換行列Ｈの転置行列を使用することを意味する。
【０１５５】
ＴｒａｓｎｆｏｒｍＩｄｘが１を示す場合、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが０を、Ｈｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが１を示すことを意味する。つまり、垂直直交変換には１Ｄ変換行列Ｆを、水平直交変換には１Ｄ変換行列Ｇを使用することを意味する。また、垂直逆直交変換には１Ｄ変換行列Ｆの転置行列を、水平逆直交変換には１Ｄ変換行列Ｇの転置行列を使用することを意味する。
【０１５６】
ＴｒａｓｎｆｏｒｍＩｄｘが２を示す場合、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが１を、Ｈｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが０を示すことを意味する。つまり、垂直直交変換には１Ｄ変換行列Ｇを、水平直交変換には１Ｄ変換行列Ｆを使用することを意味する。また、垂直逆直交変換には１Ｄ変換行列Ｇの転置行列を、水平逆直交変換には１Ｄ変換行列Ｆを使用することを意味する。
【０１５７】
ＴｒａｓｎｆｏｒｍＩｄｘが３を示す場合、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが１をＨｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘが１を示すことを意味する。つまり、垂直直交変換には１Ｄ変換行列Ｇを、水平直交変換には１Ｄ変換行列Ｇを使用することを意味する。また、垂直逆直交変換には１Ｄ変換行列Ｇの転置行列を、水平逆直交変換には１Ｄ変換行列Ｇの転置行列を使用することを意味する。
【０１５８】
ここで、予測対象ブロックがＭ×Ｎで表現される矩形ブロックである場合、直交変換を行うブロックサイズもまたＭ×Ｎであってもよい。
【０１５９】
図２１Ａに示すテーブルは、前述の各イントラ予測モードの傾向を考慮して１Ｄ変換行列セット情報１２９を割り当てている。即ち、２ライン上の参照画素群を参照する予測モードには、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘ及びＨｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｏｆｒｍ  ｉｎｄｅｘに共に２を割り当てている。故に、２ライン上の参照画素群を参照する予測モードについて前述の１Ｄ変換行列Ｈまたはその転置行列を用いて垂直方向及び水平方向の直交変換または逆直交変換が行われ、高い変換効率が達成される。
【０１６０】
２ライン上の参照画素群を参照する予測モードを除く予測モードに関して、予測誤差の垂直方向に上記傾向を示すならば、Ｖｅｒｔｉｃａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘに０が、水平方向に上記傾向を示すならば、Ｈｏｒｉｚｏｎｔａｌ  Ｔｒａｎｓｆｏｒｍ  ｉｎｄｅｘに０が割り当てられている。一方、上記傾向を示さない方向には、夫々１が割り当てられている。２ライン上の参照画素群を参照する予測モードを除く予測モードに関して、各予測モードの垂直方向及び水平方向を上記傾向の有無に従って２つのクラスに分類し、垂直方向及び水平方向の夫々について適応的に１Ｄ変換行列Ｆまたは１Ｄ変換行列Ｇを適用することにより、高い変換効率が達成される。
【０１６１】
以上説明したように、本実施形態に係る画像符号化装置は、第１の実施形態と同様に参照画素からの距離が大きくなるにつれて予測精度が低下するというイントラ予測の傾向を利用しつつ、各予測モードを参照画素群のライン数によって区別して直交変換及び逆直交変換を適用する。この画像符号化装置は、２ライン上の参照画素群を参照する予測モードを除く予測モードに関して、垂直方向及び水平方向を上記傾向の有無に従って２つのクラスに分類し、垂直方向及び水平方向の夫々について適応的に１Ｄ変換行列Ｆまたは１Ｄ変換行列Ｇを適用する。一方、この画像符号化装置は、２ライン上の参照画素群を参照する各予測モードには１Ｄ変換行列Ｈを適用する。１Ｄ変換行列Ｆは、１ライン上の参照画素群のみを参照する各予測モードに関して、参照画素群のラインに直交する方向（垂直方向または水平方向）について１Ｄ直交変換を行う際の係数集密度が高くなる（即ち、量子化変換係数１２１における非零係数の割合が小さくなる）ように共通の変換基底を予め設計することによって生成される。一方、１Ｄ変換行列Ｇは、このような性質を持たない汎用的な変換行列を設計することによって生成される。更に、１Ｄ変換行列Ｈは、２ライン上の参照画素群を参照する各予測モードの予測誤差１１９に対して垂直方向及び水平方向で１Ｄ直交変換を行う際の係数集密度が高くなる（即ち、量子化変換係数１２１における非零係数の割合が小さくなる）ように共通の変換基底を予め設計することによって生成される。故に、本実施形態に係る画像符号化装置によれば、各予測モードに一律にＤＣＴなどの固定的な直交変換を施す場合に比べて、高い変換効率が達成される。
【０１６２】
第１乃至第３の実施形態では、２種類または３種類の１Ｄ変換行列を夫々用意し、予測モードに応じて垂直変換（または垂直逆変換）及び水平変換（または水平逆変換）のための１Ｄ変換行列を選択する。しかしながら、前述の２種類または３種類の１Ｄ変換行列は、例示であり、更に多くの変換行列を用意して符号化効率を向上させることも可能である。例えば、第２の実施形態と第３の実施形態とを組み合わせて４種類の１Ｄ変換行列を用意することも可能である。但し、用意する変換行列の種類の増加に伴って更なるハードウェアなどが必要となるので、変換行列の種類の増加に伴うデメリットと符号化効率とのバランスを考慮することが望ましい。
【０１６３】
（第４の実施形態）  
第４の実施形態は、画像復号化装置に関する。本実施形態に係る画像復号化装置に対応する画像符号化装置は、第１の実施形態において説明した通りである。即ち、本実施形態に係る画像復号化装置は、例えば第１の実施形態に係る画像符号化装置によって生成された符号化データを復号化する。
【０１６４】
図２２に示すように、本実施形態に係る画像復号化装置は、入力バッファ４０１、エントロピー復号化部４０２、係数順制御部４０３、逆量子化部４０４、逆直交変換部４０５、加算部４０６、参照画像メモリ４０７、イントラ予測部４０８、インター予測部４０９、選択スイッチ４１０、１Ｄ変換行列セット部４１１及び出力バッファ４１２を含む。
【０１６５】
図２２の画像復号化装置は、入力バッファ４０１に蓄積される符号化データ４１４を復号し、復号画像４１９を出力バッファ４１２に蓄積して出力画像４２５として出力する。符号化データ４１４は、例えば図１の画像符号化装置などから出力され、図示しない蓄積系または伝送系を経て、入力バッファ４０１に一時的に蓄積される。
【０１６６】
エントロピー復号化部４０２は、符号化データ４１４の復号化のために、１フレームまたは１フィールド毎にシンタクスに基づいて解読を行う。エントロピー復号化部４０２は、各シンタクスの符号列を順次エントロピー復号化し、予測モード情報４２１を含む予測情報４２４、量子化変換係数列４１５などの符号化対象ブロックの符号化パラメータを再生する。符号化パラメータとは、予測情報４２４、変換係数に関する情報、量子化に関する情報、などの復号に必要となるパラメータである。量子化変換係数列４１５は、係数順制御部４０３へ入力される。また、予測情報４２４に含まれる予測モード情報４２１も同様に、係数順制御部４０３へ入力される。予測情報４２４は、１Ｄ変換行列セット部４１１及び選択スイッチ４１０に入力される。
【０１６７】
係数順制御部４０３は、１次元表現である量子化変換係数列４１５を、２次元表現である量子化変換係数４１６に変換し、逆量子化部４０４に入力する。尚、係数制御部４０３の詳細は後述される。
【０１６８】
逆量子化部４０４は、係数順制御部４０３からの量子化変換係数４１６に逆量子化を行って、復元変換係数４１７を得る。具体的には、逆量子化部４０４は、エントロピー復号化部４０２によって復号化された量子化に関する情報に従って逆量子化を行う。逆量子化部４０４は、復元変換係数４１７を逆直交変換部４０５に入力する。
【０１６９】
逆直交変換部４０５は、逆量子化部４０４からの復元変換係数４１７に対して、符号化側において行われた直交変換に対応する逆直交変換を行い、復元予測誤差４１８を得る。逆直交変換部４０５は、復元予測誤差４１８を加算部４０６に入力する。
【０１７０】
具体的には、本実施形態に係る逆直交変換部４０５は、図３の逆直交変換部１０５と実質的に同一または類似の要素なのでその詳細な説明を省略する。特に、本実施形態に係る逆直交変換部４０５は、図３の逆直交変換部１０５と共通の１Ｄ変換行列Ａ及び１Ｄ変換行列Ｂを利用する。尚、図３における復元変換係数１２２、１Ｄ変換行列セット情報１２９及び復元予測誤差１２３は、本実施形態における復元変換係数４１７、１Ｄ変換行列セット情報４２２及び復元予測誤差信号４１８に夫々対応している。
【０１７１】
加算部４０６は、復元予測誤差４１８と、対応する予測画像４２３とを加算し、復号画像４１９を生成する。復号画像４１９は、出力画像４２５のために出力バッファ４１２に一時的に蓄積されると共に、参照画像４２０のために参照画像メモリ４０７にも保存される。参照画像メモリ４０７に保存された復号画像４１９は、参照画像４２０としてイントラ予測部４０８及びインター予測部４０９によって必要に応じてフレーム単位またはフィールド単位で参照される。出力バッファ４１２に一時的に蓄積された復号画像４１９は、復号化制御部４１３によって管理される出力タイミングに従って出力される。
【０１７２】
イントラ予測部４０８、インター予測部４０９及び選択スイッチ４１０は、図１のイントラ予測部１０８、インター予測部１０９及び選択スイッチ１１１と実質的に同一または類似の要素なのでその詳細な説明を省略する。復号化制御部４１３は、図２２の画像復号化装置の各要素を制御する。具体的には、復号化制御部４１３は、上述の動作を含む復号化処理のための種々の制御を行う。
【０１７３】
１Ｄ変換行列セット部４１１は、エントロピー復号化部４０２からの予測情報４２４に含まれる予測モード情報に基づいて１Ｄ変換行列セット情報４２２を生成し、逆直交変換部４０５に入力する。
【０１７４】
具体的には、本実施形態に係る１Ｄ変換行列セット部４１１は、第１の実施形態に係る１Ｄ変換行列セット部１１２と実質的に同一または類似の要素なのでその詳細な説明を省略する。即ち、本実施形態に係る１Ｄ変換行列セット部４１１は、例えば図４Ａ、図４Ｂ、図４Ｃ、図４Ｄ及び図４Ｅのテーブルを利用して、１Ｄ変換行列セット情報４２２を生成する。尚、第１の実施形態における予測情報１２６及び１Ｄ変換行列セット情報１２９は、本実施形態における予測情報４２４及び１Ｄ変換行列セット情報４２２に夫々対応している。  
また、図２２の画像復号化装置は、図１１、図１２、図１３及び図１４に関して説明したシンタクスと同一または類似のシンタクスを利用するのでその詳細な説明を省略する。
【０１７５】
以下、係数順制御部４０３の詳細を説明する。  
係数順制御部４０３は、１次元表現である量子化変換係数列４１５の各要素を所定の順序（即ち、符号化側と対応する順序）に従って配列することにより、２次元表現である量子化変換係数４１６に変換する。一例として、符号化側において予測モードに関わらず共通の２Ｄ−１Ｄ変換が行われているならば、係数順制御部４０３は予測モードに関わらず共通の１Ｄ−２Ｄ変換を行うことができる。具体的には、係数制御部４０３は、Ｈ．２６４と同様に逆ジグザグスキャンを利用できる。逆ジグザグスキャンは、前述のジグザグスキャンに対応する１Ｄ−２Ｄ変換である
別の例として、符号化側において予測モード毎の個別の２Ｄ−１Ｄ変換が行われているならば、係数順制御部４０３もまた予測モード毎の個別の１Ｄ−２Ｄ変換を行うことができる。このような動作を行う係数順制御部４０３は、図２３Ａに例示されている。この係数順制御部４０３は、選択スイッチ１００１と、９種類の予測モード毎の個別の１Ｄ−２Ｄ変換部１００２，・・・，１０１０とを含む。選択スイッチ１００１は、予測情報４２４に含まれる予測モード情報（例えば、図４Ａの予測モードのインデックス）に従って量子化変換係数列４１５を、予測モードに応じた１Ｄ−２Ｄ変換部（１００２，・・・，１０１０のうちいずれか１つ）に導く。例えば、予測モードインデックスが０であれば、選択スイッチ１００１は量子化変換係数列４１５を１Ｄ−２Ｄ変換部１００２に導く。図２３Ａにおいて、各予測モードと１Ｄ−２Ｄ変換部とは１対１に対応しており、量子化変換係数列４１５は予測モードに応じた１つの１Ｄ−２Ｄ変換部に導かれ、量子化変換係数４１６に変換される。
【０１７６】
更に別の例として、符号化側において２Ｄ−１Ｄ変換におけるスキャン順が動的に更新されるならば、係数順制御部４０３もまた１Ｄ−２Ｄ変換におけるスキャン順を符号化側と対応するように動的に更新してもよい。このような動作を行う係数順制御部４０３は、図２３Ｂに例示されている。この係数順制御部４０３は、選択スイッチ１００１と、９種類の予測モード毎の個別の１Ｄ−２Ｄ変換部１００２，・・・，１０１０と、発生頻度カウント部１０１１と、係数順更新部１０１２とを含む。選択スイッチ１００１は、図２３Ａに関して説明した通りである。９種類の予測モード毎の個別の１Ｄ−２Ｄ変換部１００２，・・・，１０１０は、そのスキャン順が係数順更新部１０１２によって更新される点で図２３Ａとは異なる。
【０１７７】
発生頻度カウント部１０１１は、予測モード毎に、量子化変換係数４１６の各要素における非零係数の発生回数のヒストグラムを作成する。発生頻度カウント部１０１１は、作成したヒストグラム１０１３を係数順更新部１０１２に入力する。
【０１７８】
係数順更新部１０１２は、予め定められたタイミングで、ヒストグラム１０１３に基づいて係数順の更新を行う。上記タイミングは、例えば、コーディングツリーユニットの復号化処理が終了したタイミング、コーディングツリーユニット内の１ライン分の復号化処理が終了したタイミングなどである。
【０１７９】
具体的には、係数順更新部１０１２は、ヒストグラム１０１３を参照して、非零係数の発生回数が閾値以上にカウントされた要素を持つ予測モードに関して係数順の更新を行う。例えば、係数順更新部１０１２は、非零係数の発生が１６回以上カウントされた要素を持つ予測モードに関して更新を行う。このような発生回数に閾値を設けることによって、係数順の更新が大域的に実施されるので、局所的な最適解に収束しにくくなる。
【０１８０】
係数順更新部１０１２は、更新対象となる予測モードに関して、非零係数の発生頻度の降順に要素をソーティングする。ソーティングは、例えばバブルソート、クイックソートなどの既存のアルゴリズムによって実現できる。そして、係数順更新部１０１２は、ソーティングされた要素の順序を示す係数順更新情報１０１４を、更新対象となる予測モードに対応する１Ｄ−２Ｄ変換部に入力する。
【０１８１】
係数順更新情報１０１４が入力されると、１Ｄ−２Ｄ変換部は更新後のスキャン順に従って１Ｄ−２Ｄ変換を行う。尚、スキャン順を動的に更新する場合には、各１Ｄ−２Ｄ変換部の符号化側と対応する初期スキャン順を予め定めておく必要がある。
【０１８２】
尚、簡単化のためにＨ．２６４を例示して予測モードが９種類の場合を説明したが、予測モードが１７種類、３３種類などに拡張された場合にも、拡張された各予測モードに対応する１Ｄ−２Ｄ変換部を追加すれば予測モード毎の個別の１Ｄ−２Ｄ変換を行うことができる。
【０１８３】
以上説明したように、本実施形態に係る画像復号化装置は、前述の第１の実施形態に係る画像符号化装置と同一または類似の逆直交変換部を持つ。故に、本実施形態に係る画像復号化装置によれば、前述の第１の実施形態に係る画像符号化装置と同一または類似の効果が得られる。
【０１８４】
（第５の実施形態）  
第５の実施形態に係る画像復号化装置は、前述の第４の実施形態に係る画像復号化装置と逆直交変換の詳細において異なる。以降の説明では、本実施形態において第４の実施形態と同一部分には同一符号を付して示し、異なる部分を中心に説明する。本実施形態に係る画像復号化装置に対応する画像符号化装置は、第２の実施形態において説明した通りである。
【０１８５】
本実施形態に係る逆直交変換部４０５は、図１７の逆直交変換部１０５と実質的に同一または類似の要素なのでその詳細な説明を省略する。特に、本実施形態に係る逆直交変換部４０５は、図１７の逆直交変換部１０５と共通の１Ｄ変換行列Ｃ、１Ｄ変換行列Ｄ及び１Ｄ変換行列Ｅを利用する。尚、図１７における復元変換係数１２２、１Ｄ変換行列セット情報１２９及び復元予測誤差１２３は、本実施形態における復元変換係数４１７、１Ｄ変換行列セット情報４２２及び復元予測誤差信号４１８に夫々対応している。
【０１８６】
本実施形態に係る１Ｄ変換行列セット部４１１は、第２の実施形態に係る１Ｄ変換行列セット部１１２と実質的に同一または類似の要素なのでその詳細な説明を省略する。即ち、本実施形態に係る１Ｄ変換行列セット部４１１は、例えば図１８Ａ、図１８Ｂ、図１８Ｃ図１８Ｄ及び図１８Ｅのテーブルを利用して、１Ｄ変換行列セット情報４２２を生成する。尚、第２の実施形態における予測情報１２６及び１Ｄ変換行列セット情報１２９は、本実施形態における予測情報４２４及び１Ｄ変換行列セット情報４２２に夫々対応している。
【０１８７】
以上説明したように、本実施形態に係る画像復号化装置は、前述の第２の実施形態に係る画像符号化装置と同一または類似の逆直交変換部を持つ。故に、本実施形態に係る画像復号化装置によれば、前述の第２の実施形態に係る画像符号化装置と同一または類似の効果が得られる。
【０１８８】
（第６の実施形態）  
第６の実施形態に係る画像復号化装置は、前述の第４の実施形態及び第５の実施形態に係る画像復号化装置と逆直交変換の詳細において異なる。以降の説明では、本実施形態において第４の実施形態または第５の実施形態と同一部分には同一符号を付して示し、異なる部分を中心に説明する。本実施形態に係る画像復号化装置に対応する画像符号化装置は、第３の実施形態において説明した通りである。
【０１８９】
本実施形態に係る逆直交変換部４０５は、図２０の逆直交変換部１０５と実質的に同一または類似の要素なのでその詳細な説明を省略する。特に、本実施形態に係る逆直交変換部４０５は、図２０の逆直交変換部１０５と共通の１Ｄ変換行列Ｆ、１Ｄ変換行列Ｇ及び１Ｄ変換行列Ｈを利用する。尚、図２０における復元変換係数１２２、１Ｄ変換行列セット情報１２９及び復元予測誤差１２３は、本実施形態における復元変換係数４１７、１Ｄ変換行列セット情報４２２及び復元予測誤差信号４１８に夫々対応している。
【０１９０】
本実施形態に係る１Ｄ変換行列セット部４１１は、第３の実施形態に係る１Ｄ変換行列セット部１１２と実質的に同一または類似の要素なのでその詳細な説明を省略する。即ち、本実施形態に係る１Ｄ変換行列セット部４１１は、例えば図２１Ａ、図２１Ｂ、図２１Ｃ、図２１Ｄ及び図２１Ｅのテーブルを利用して、１Ｄ変換行列セット情報４２２を生成する。尚、第３の実施形態における予測情報１２６及び１Ｄ変換行列セット情報１２９は、本実施形態における予測情報４２４及び１Ｄ変換行列セット情報４２２に夫々対応している。
【０１９１】
以上説明したように、本実施形態に係る画像復号化装置は、前述の第３の実施形態に係る画像符号化装置と同一または類似の逆直交変換部を持つ。故に、本実施形態に係る画像復号化装置によれば、前述の第３の実施形態に係る画像符号化装置と同一または類似の効果が得られる。
【０１９２】
第４乃至第６の実施形態では、２種類または３種類の１Ｄ変換行列を夫々用意し、予測モードに応じて垂直逆変換及び水平逆変換のための１Ｄ変換行列を選択する。しかしながら、前述の２種類または３種類の１Ｄ変換行列は、例示であり、更に多くの変換行列を用意して符号化効率を向上させることも可能である。例えば、第５の実施形態と第６の実施形態とを組み合わせて４種類の１Ｄ変換行列を用意することも可能である。但し、用意する変換行列の種類の増加に伴って更なるハードウェアなどが必要となるので、変換行列の種類の増加に伴うデメリットと符号化効率とのバランスを考慮することが望ましい。
【０１９３】
以下、各実施形態の変形例を列挙して紹介する。  
第１乃至第６の実施形態において、フレームを１６×１６画素サイズなどの矩形ブロックに分割し、画面左上のブロックから右下に向かって順に符号化／復号化を行う例について説明している（図６Ａを参照）。しかしながら、符号化順序及び復号化順序はこの例に限定されない。例えば、右下から左上に向かって順に符号化及び復号化が行われてもよいし、画面中央から画面端に向かって渦巻を描くように符号化及び復号化が行われてもよい。更に、右上から左下に向かって順に符号化及び復号化が行われてもよいし、画面端から画面中央に向かって渦巻きを描くように符号化及び復号化が行われてもよい。
【０１９４】
第１乃至第６の実施形態において、４×４画素ブロック、８×８画素ブロック、１６×１６画素ブロックなどの予測対象ブロックサイズを例示して説明を行ったが、予測対象ブロックは均一なブロック形状でなくてもよい。例えば、予測対象ブロックサイズは、１６×８画素ブロック、８×１６画素ブロック、８×４画素ブロック、４×８画素ブロックなどであってもよい。また、１つのコーディングツリーユニット内で全てのブロックサイズを統一させる必要はなく、複数の異なるブロックサイズを混在させてもよい。１つのコーディングツリーユニット内で複数の異なるブロックサイズを混在させる場合、分割数の増加に伴って分割情報を符号化または復号化するための符号量も増加する。そこで、分割情報の符号量と局部復号画像または復号画像の品質との間のバランスを考慮して、ブロックサイズを選択することが望ましい。
【０１９５】
第１乃至第６の実施形態において、簡単化のために、輝度信号と色差信号とを区別せず、色信号成分に関して包括的な説明を記述した。しかしながら、予測処理が輝度信号と色差信号との間で異なる場合には、同一または異なる予測方法が用いられてよい。輝度信号と色差信号との間で異なる予測方法が用いられるならば、色差信号に対して選択した予測方法を輝度信号と同様の方法で符号化または復号化できる。
【０１９６】
第１乃至第６の実施形態において、簡単化のために、輝度信号と色差信号とを区別せず、色信号成分に関して包括的な説明を記述した。しかしながら、直交変換処理が輝度信号と色差信号との間で異なる場合には、同一または異なる直交変換方法が用いられてよい。輝度信号と色差信号との間で異なる直交変換方法が用いられるならば、色差信号に対して選択した直交変換方法を輝度信号と同様の方法で符号化または復号化できる。
【０１９７】
以上説明したように、各実施形態は、ハードウェア実装及びソフトウェア実装における困難性を緩和しつつ、高効率な直交変換及び逆直交変換を実現する。故に、各実施形態によれば、符号化効率が向上し、ひいては主観画質も向上する。
【０１９８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１９９】
例えば、上記各実施形態の処理を実現するプログラムを、コンピュータで読み取り可能な記憶媒体に格納して提供することも可能である。記憶媒体としては、磁気ディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリなど、プログラムを記憶でき、かつ、コンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
【０２００】
また、上記各実施形態の処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ（サーバ）上に格納し、ネットワーク経由でコンピュータ（クライアント）にダウンロードさせてもよい。
【符号の説明】
【０２０１】
１０１・・・減算部
１０２・・・直交変換部
１０３・・・量子化部
１０４・・・逆量子化部
１０５・・・逆直交変換部
１０６・・・加算部
１０７・・・参照画像メモリ
１０８・・・イントラ予測部
１０９・・・インター予測部
１１０・・・予測選択部
１１１・・・選択スイッチ
１１２・・・１Ｄ変換行列セット部
１１３・・・係数順制御部
１１４・・・エントロピー符号化部
１１５・・・出力バッファ
１１６・・・符号化制御部
１１７・・・量子化変換係数列
１１８・・・入力画像
１１９・・・予測誤差
１２０・・・変換係数
１２１・・・量子化変換係数
１２２・・・復元変換係数
１２３・・・復元予測誤差
１２４・・・局所復号画像
１２５・・・参照画像
１２６・・・予測情報
１２７・・・予測画像
１２９・・・１Ｄ変換行列セット情報
１３０・・・符号化データ
２０１，２０４，８０１，８０４，１１０１，１１０４，１２０１，１２０４・・・選択スイッチ
２０２，８０２，１１０２，１２０２・・・垂直変換部
２０６，・・・，２０９，８０６，・・・，８１１，１２０６，・・・，１２１１・・・１Ｄ直交変換部
２０３，１１０３・・・転置部
２０５，８０５，１１０５，１２０５・・・水平変換部
３０１，３０４，９０１，９０４，１３０１，１３０４・・・選択スイッチ
３０２，９０２，１３０２・・・垂直逆変換部
３０３・・・転置部
３０５，９０５，１３０５・・・水平逆変換部
３０６，・・・，３０９，９０６，・・・，９１１，１３０６，・・・，１３１１・・・１Ｄ逆直交変換部
４０１・・・入力バッファ
４０２・・・エントロピー復号化部
４０３・・・係数順制御部
４０４・・・逆量子化部
４０５・・・逆直交変換部
４０６・・・加算部
４０７・・・参照画像メモリ
４０８・・・イントラ予測部
４０９・・・インター予測部
４１０・・・選択スイッチ
４１１・・・１Ｄ変換行列セット部
４１２・・・出力バッファ
４１３・・・復号化制御部
４１４・・・符号化データ
４１５・・・量子化変換係数列
４１６・・・量子化変換係数
４１７・・・復元変換係数
４１８・・・復元予測誤差
４１９・・・復号画像
４２０・・・参照画像
４２１・・・予測モード情報
４２２・・・１Ｄ変換行列セット情報
４２３・・・予測画像
４２４・・・予測情報
４２５・・・出力画像
５０１・・・選択スイッチ
５０２，・・・，５１０・・・２Ｄ−１Ｄ変換部
５１１・・・発生頻度カウント部
５１２・・・係数順更新部
５１３・・・ヒストグラム
５１４・・・係数順更新情報
７００・・・シンタクス
７０１・・・ハイレベルシンタクス
７０２・・・スライスレベルシンタクス
７０３・・・コーディングツリーレベルシンタクス
７０４・・・シーケンスパラメータセットシンタクス
７０５・・・ピクチャパラメータセットシンタクス
７０６・・・スライスヘッダーシンタクス
７０７・・・スライスデータシンタクス
７０８・・・コーディングツリーユニットシンタクス
７０９・・・プレディクションユニットシンタクス
７１０・・・トランスフォームユニットシンタクス
１００１・・・選択スイッチ
１００２，・・・，１０１０・・・１Ｄ−２Ｄ変換部
１０１１・・・発生頻度カウント部
１０１２・・・係数順更新部
１０１３・・・ヒストグラム
１０１４・・・係数順更新情報
【図１】
0005537695.tif 000008
【図２】
0005537695.tif 000009
【図３】
0005537695.tif 000010
【図４Ａ】
0005537695.tif 000011
【図４Ｂ】
0005537695.tif 000012
【図４Ｃ】
0005537695.tif 000013
【図４Ｄ】
0005537695.tif 000014
【図４Ｅ】
0005537695.tif 000015
【図５Ａ】
0005537695.tif 000016
【図５Ｂ】
0005537695.tif 000017
【図６Ａ】
0005537695.tif 000018
【図６Ｂ】
0005537695.tif 000019
【図６Ｃ】
0005537695.tif 000020
【図６Ｄ】
0005537695.tif 000021
【図７Ａ】
0005537695.tif 000022
【図７Ｂ】
0005537695.tif 000023
【図７Ｃ】
0005537695.tif 000024
【図７Ｄ】
0005537695.tif 000025
【図８Ａ】
0005537695.tif 000026
【図８Ｂ】
0005537695.tif 000027
【図８Ｃ】
0005537695.tif 000028
【図９】
0005537695.tif 000029
【図１０Ａ】
0005537695.tif 000030
【図１０Ｂ】
0005537695.tif 000031
【図１１】
0005537695.tif 000032
【図１２】
0005537695.tif 000033
【図１３】
0005537695.tif 000034
【図１４】
0005537695.tif 000035
【図１５】
0005537695.tif 000036
【図１６】
0005537695.tif 000037
【図１７】
0005537695.tif 000038
【図１８Ａ】
0005537695.tif 000039
【図１８Ｂ】
0005537695.tif 000040
【図１８Ｃ】
0005537695.tif 000041
【図１８Ｄ】
0005537695.tif 000042
【図１８Ｅ】
0005537695.tif 000043
【図１９】
0005537695.tif 000044
【図２０】
0005537695.tif 000045
【図２１Ａ】
0005537695.tif 000046
【図２１Ｂ】
0005537695.tif 000047
【図２１Ｃ】
0005537695.tif 000048
【図２１Ｄ】
0005537695.tif 000049
【図２１Ｅ】
0005537695.tif 000050
【図２２】
0005537695.tif 000051
【図２３Ａ】
0005537695.tif 000052
【図２３Ｂ】
0005537695.tif 000053