(57)【要約】      （修正有）【課題】動きベクトル選択情報の符号化効率の高めた、画像符号化及び画像復号化方法を提供する。【解決手段】画像符号化部１００は、動き情報を有する符号化済みの画素ブロックの中から、少なくとも１つの動き参照ブロックを選択する第１ステップと、符号化対象ブロックに適用する動き情報の候補を有する画素ブロックであって、互いに異なる動き情報を有する少なくとも１つの利用可能ブロックを、動き参照ブロックの中から選択する第２ステップ１０９と、利用可能ブロックの中から、１つの選択ブロックを選択する第３ステップ１１８と、選択ブロックの動き情報を使用して、符号化対象ブロックの予測画像を生成する第４ステップ１１３と、予測画像と原画像との間の予測誤差を符号化する第５ステップ１０３と、利用可能ブロックの数に応じて予め定められた符号表を参照して、選択ブロックを特定する選択情報を符号化する第６ステップ１１６と、を具備する。【選択図】図１
2020025308.tif 000002
【特許請求の範囲】
【請求項１】
対象ブロックの左に隣接するブロックと前記対象ブロックの左上に隣接するブロックと前記対象ブロックの上に隣接するブロックと前記対象ブロックの右上に隣接するブロックを含む複数の候補ブロックが利用可能か否かを所定の順番に従って判定する判定部と、
前記利用可能と判定された候補ブロックの数に応じた符号規則に基づいて、識別情報を復号する復号部と、
前記識別情報に従って、前記利用可能と判定された候補ブロックの中から選択ブロックを選択する選択部と、
前記選択ブロックに対応する動き情報に基づいて、前記対象ブロックの予測画像を生成する予測部と、
を備え、
前記判定部は、候補ブロックが既に利用可能と判定された候補ブロックに対応する動き情報と一致しない動き情報を有する場合に、当該候補ブロックを利用可能と判定する、画像復号装置。
【請求項２】
対象ブロックの左に隣接するブロックと前記対象ブロックの左上に隣接するブロックと前記対象ブロックの上に隣接するブロックと前記対象ブロックの右上に隣接するブロックを含む複数の候補ブロックが利用可能か否かを所定の順番に従って判定することと、
前記利用可能と判定された候補ブロックの数に応じた符号規則に基づいて、識別情報を復号することと、
前記識別情報に従って、前記利用可能と判定された候補ブロックの中から選択ブロックを選択することと、
前記選択ブロックに対応する動き情報に基づいて、前記対象ブロックの予測画像を生成することと、
を備え、
前記判定することは、候補ブロックが既に利用可能と判定された候補ブロックに対応する動き情報と一致しない動き情報を有する場合に、当該候補ブロックを利用可能と判定することを含む、画像復号方法。
【請求項３】
対象ブロックの左に隣接するブロックと前記対象ブロックの左上に隣接するブロックと前記対象ブロックの上に隣接するブロックと前記対象ブロックの右上に隣接するブロックを含む複数の候補ブロックが利用可能か否かを所定の順番に従って判定する手段、
前記利用可能と判定された候補ブロックの数に応じた符号規則に基づいて、識別情報を復号する手段、
前記識別情報に従って、前記利用可能と判定された候補ブロックの中から選択ブロックを選択する手段、及び
前記選択ブロックに対応する動き情報に基づいて、前記対象ブロックの予測画像を生成する手段としてコンピュータを機能させるためのプログラムであって、
前記判定する手段は、候補ブロックが既に利用可能と判定された候補ブロックに対応する動き情報と一致しない動き情報を有する場合に、当該候補ブロックを利用可能と判定する、プログラム。
【請求項４】
対象ブロックの左に隣接するブロックと前記対象ブロックの左上に隣接するブロックと前記対象ブロックの上に隣接するブロックと前記対象ブロックの右上に隣接するブロックを含む複数の候補ブロックが利用可能か否かを所定の順番に従って判定する判定部と、
前記利用可能と判定された候補ブロックの中から選択ブロックを選択する選択部と、
前記利用可能と判定された候補ブロックの数に応じた符号規則に基づいて、前記選択ブロックを特定する識別情報を符号化する符号化部と、
前記選択ブロックに対応する動き情報に基づいて、前記対象ブロックの予測画像を生成する予測部と、
を備え、
前記判定部は、候補ブロックが既に利用可能と判定された候補ブロックに対応する動き情報と一致しない動き情報を有する場合に、当該候補ブロックを利用可能と判定する、画像符号化装置。
【請求項５】
対象ブロックの左に隣接するブロックと前記対象ブロックの左上に隣接するブロックと前記対象ブロックの上に隣接するブロックと前記対象ブロックの右上に隣接するブロックを含む複数の候補ブロックが利用可能か否かを所定の順番に従って判定することと、
前記利用可能と判定された候補ブロックの中から選択ブロックを選択することと、
前記利用可能と判定された候補ブロックの数に応じた符号規則に基づいて、前記選択ブロックを特定する識別情報を符号化することと、
前記選択ブロックに対応する動き情報に基づいて、前記対象ブロックの予測画像を生成することと、
を備え、
前記判定することは、候補ブロックが既に利用可能と判定された候補ブロックに対応する動き情報と一致しない動き情報を有する場合に、当該候補ブロックを利用可能と判定することを含む、画像符号化方法。
【請求項６】
対象ブロックの左に隣接するブロックと前記対象ブロックの左上に隣接するブロックと前記対象ブロックの上に隣接するブロックと前記対象ブロックの右上に隣接するブロックを含む複数の候補ブロックが利用可能か否かを所定の順番に従って判定する手段、
前記利用可能と判定された候補ブロックの中から選択ブロックを選択する手段、
前記利用可能と判定された候補ブロックの数に応じた符号規則に基づいて、前記選択ブロックを特定する識別情報を符号化する手段、及び
前記選択ブロックに対応する動き情報に基づいて、前記対象ブロックの予測画像を生成する手段としてコンピュータを機能させるためのプログラムであって、
前記判定する手段は、候補ブロックが既に利用可能と判定された候補ブロックに対応する動き情報と一致しない動き情報を有する場合に、当該候補ブロックを利用可能と判定する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像及び静止画像のための符号化及び復号化方法に関する。
【背景技術】
【０００２】
近年、大幅に符号化効率を向上させた動画像符号化方法が、ITU-TとISO/IECとの共同で、ITU-T Rec. H.264及びISO/IEC 14496-10（以下、H.264という）として勧告されている。H.264では、予測処理、変換処理及びエントロピー符号化処理は、矩形ブロック単位（例えば、１６×１６画素ブロック単位、８×８画素ブロック単位等）で行われる。予測処理においては、符号化対象の矩形ブロック（符号化対象ブロック）に対して、既に符号化済みのフレーム（参照フレーム）を参照して、時間方向の予測を行う動き補償が行われる。このような動き補償では、符号化対象ブロックと参照フレーム内において参照されるブロックとの空間的シフト情報としての動きベクトルを含む動き情報を符号化して復号化側に送る必要がある。さらに、複数の参照フレームを用いて動き補償を行う場合、動き情報とともに参照フレーム番号も符号化する必要がある。このため、動き情報及び参照フレーム番号に関する符号量が増大する場合がある。
【０００３】
動き補償予測において動きベクトルを求める方法の一例としては、既に符号化済みのブロックに割り当てられている動きベクトルから、符号化対象ブロックに割り当てるべき動きベクトルを導出し、導出した動きベクトルに基づいて予測画像を生成するダイレクトモードがある（特許文献１及び特許文献２参照）。ダイレクトモードでは、動きベクトルを符号化しないことから、動き情報の符号量を低減することができる。ダイレクトモードは、例えばH.264／AVCに採用されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４０２０７８９号
【特許文献２】米国特許第７２３３６２１号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ダイレクトモードでは、符号化対象ブロックに隣接する符号化済みのブロックの動きベクトルのメディアン値から動きベクトルを算出するという固定された方法で、符号化対象ブロックの動きベクトルを予測生成する。このため、動きベクトル算出の自由度が低い。
【０００６】
動きベクトル算出の自由度を上げるために、複数の符号化済みブロックの中から１つを選択して符号化対象ブロックに動きベクトルを割り当てる方法が提案されている。この方法では、選択した符号化済みのブロックを復号側が特定することができるように、選択したブロックを特定する選択情報が常に送信されなければならない。従って、複数の符号化済みブロックの中から１つを選択して符号化対象ブロックに割り当てるべき動きベクトルを決定する場合、選択情報に関する符号量が増加される問題がある。
【０００７】
本発明は、上記問題点を解決するためになされたものであり、符号化効率の高い画像符号化及び画像復号化方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一実施形態に係る画像符号化方法は、動き情報を有する符号化済みの画素ブロックの中から、少なくとも１つの動き参照ブロックを選択する第１ステップと、符号化対象ブロックに適用する動き情報の候補を有する画素ブロックであって、互いに異なる動き情報を有する少なくとも１つの利用可能ブロックを、前記動き参照ブロックの中から選択する第２ステップと、前記利用可能ブロックの中から、１つの選択ブロックを選択する第３ステップと、前記選択ブロックの動き情報を使用して、前記符号化対象ブロックの予測画像を生成する第４ステップと、前記予測画像と原画像との間の予測誤差を符号化する第５ステップと、前記利用可能ブロックの数に応じて予め定められた符号表を参照して、前記選択ブロックを特定する選択情報を符号化する第６ステップと、を具備する。
【０００９】
本発明の他の実施形態に係る画像復号化方法は、動き情報を有する復号化済みの画素ブロックの中から、少なくとも１つの動き参照ブロックを選択する第１ステップと、復号化対象ブロックに適用する動き情報の候補を有する画素ブロックであって、互いに異なる動き情報を有する少なくとも１つの利用可能ブロックを、前記動き参照ブロックの中から選択する第２ステップと、前記利用可能ブロックの数に応じて予め定められた符号表を参照して、入力された符号化データを復号化することにより、選択ブロックを特定するための選択情報を求める第３ステップと、前記選択情報に従って、前記利用可能ブロックの中から１つの選択ブロックを選択する第４ステップと、前記選択ブロックの動き情報を使用して、前記復号化対象ブロックの予測画像を生成する第５ステップと、前記符号化データから前記復号化対象ブロックの予測残差を復号化する第６ステップと、前記予測画像と前記予測残差から復号画像を求める第７ステップと、を具備する。
【発明の効果】
【００１０】
本発明によれば、符号化効率を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係る画像符号化装置の構成を概略的に示すブロック図である。
【図２Ａ】図１に示した画像復号化部の符号化の処理単位であるマクロブロックのサイズの一例を示す図である。
【図２Ｂ】図１に示した画像復号化部の符号化の処理単位であるマクロブロックのサイズの他の例を示す図である。
【図３】図１に示した画像符号化部が符号化対象フレーム内の画素ブロックを符号化する順序を示す図である。
【図４】図１に示した動き情報メモリが保持する動き情報フレームの一例を示す図である。
【図５】図１の入力画像信号を処理する手順の一例を示すフローチャートである。
【図６Ａ】図１の動き補償部が実行するインター予測処理の一例を示す図である。
【図６Ｂ】図１の動き補償部が実行するインター予測処理の他の例を示す図である。
【図７Ａ】インター予測処理に使用される動き補償ブロックのサイズの一例を示す図である。
【図７Ｂ】インター予測処理に使用される動き補償ブロックのサイズの他の例を示す図である。
【図７Ｃ】インター予測処理に使用される動き補償ブロックのサイズのさらに他の例を示す図である。
【図７Ｄ】インター予測処理に使用される動き補償ブロックのサイズの他の例を示す図である。
【図８Ａ】空間方向及び時間方向動き参照ブロックの配置の一例を示す図である。
【図８Ｂ】空間方向動き参照ブロックの配置の他の例を示す図である。
【図８Ｃ】図８Ｂに示した符号化対象ブロックに対する空間方向動き参照ブロックの相対位置を示す図である。
【図８Ｄ】時間方向動き参照ブロックの配置の他の例を示す図である。
【図８Ｅ】時間方向動き参照ブロックの配置のさらに他の例を示す図である。
【図８Ｆ】時間方向動き参照ブロックの配置のさらにまた他の例を示す図である。
【図９】図１の利用可能ブロック取得部が動き参照ブロックの中から利用可能ブロックを選択する方法の一例を示すフローチャートである。
【図１０】図８に示した動き参照ブロックの中から、図９の方法に従って選択された利用可能ブロックの一例を示す図である。
【図１１】図１の利用可能ブロック取得部が出力する利用可能ブロック情報の一例を示す図である。
【図１２Ａ】図１の利用可能ブロック取得部によるブロック間の動き情報の同一性判定の一例を示す図である。
【図１２Ｂ】図１の利用可能ブロック取得部によるブロック間の動き情報の同一性判定の他の例を示す図である。
【図１２Ｃ】図１の利用可能ブロック取得部によるブロック間の動き情報の同一性判定のさらに他の例を示す図である。
【図１２Ｄ】図１の利用可能ブロック取得部によるブロック間の動き情報の同一性判定の他の例を示す図である。
【図１２Ｅ】図１の利用可能ブロック取得部によるブロック間の動き情報の同一性判定のさらに他の例を示す図である。
【図１２Ｆ】図１の利用可能ブロック取得部によるブロック間の動き情報の同一性判定の他の例を示す図である。
【図１３】図１の予測部の構成を概略的に示すブロック図である。
【図１４】図１３の時間方向動き情報取得部が出力する動き情報の群を示す図である。
【図１５】図１３の動き補償部による動き補償処理において利用可能な少数画素精度の補間処理を説明する説明図である。
【図１６】図１３の予測部の動作の一例を示すフローチャートである。
【図１７】図１３の動き補償部が時間方向動き参照ブロックの動き情報を符号化対象ブロックにコピーする様子を示す図である。
【図１８】図１の可変長符号化部の構成を概略的に示すブロック図である。
【図１９】利用可能ブロック情報に応じてシンタクスを生成する例を示す図である。
【図２０】利用可能ブロック情報に対応する選択ブロック情報シンタクスの２値化の例を示す図である。
【図２１】動き情報のスケーリングを説明する説明図である。
【図２２】実施形態に従うシンタクス構造を示す図である。
【図２３Ａ】第１の実施形態に従うマクロブロックレイヤーシンクタスの一例を示す図である。
【図２３Ｂ】第１の実施形態に従うマクロブロックレイヤーシンクタスの他の例を示す図である。
【図２４Ａ】Ｈ．２６４におけるＢスライス時のmb_type及びmb_typeに対応する符号表を示す図である。
【図２４Ｂ】実施形態に係る符号表の一例を示す図である。
【図２４Ｃ】Ｈ．２６４におけるＰスライス時のmb_type及びmb_typeに対応する符号表を示す図である。
【図２４Ｄ】実施形態に係る符号表の他の例を示す図である。
【図２５Ａ】実施形態に従って、Ｂスライスにおけるmb_type及びmb_typeに対応する符号表の一例を示す図である。
【図２５Ｂ】実施形態に従って、Ｐスライスにおけるmb_type及びmb_typeに対応する符号表の他の例を示す図である。
【図２６】第２の実施形態に係る画像符号化装置の構成を概略的に示すブロック図である。
【図２７】図２６の予測部の構成を概略的に示すブロック図である。
【図２８】図２７の第２予測部の構成を概略的に示すブロック図である。
【図２９】図２６の可変長符号化部の構成を概略的に示すブロック図である。
【図３０Ａ】第２の実施形態に従うマクロブロックレイヤーシンタクスの一例を示す図である。
【図３０Ｂ】第２の実施形態に従うマクロブロックレイヤーシンタクスの他の例を示す図である。
【図３１】第３の実施形態に係る画像復号化装置を概略的に示すブロック図である。
【図３２】図３１に示した符号化列復号化部をより詳細に示すブロック図である。
【図３３】図３１に示した予測部をより詳細に示すブロック図である。
【図３４】第４の実施形態に係る画像復号化装置を概略的に示すブロック図である。
【図３５】図３３に示した符号化列復号化部をより詳細に示すブロック図である。
【図３６】図３３に示した予測部をより詳細に示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、必要に応じて図面を参照しながら、本発明の実施形態に係る画像符号化及び画像復号化の方法及び装置を説明する。なお、以下の実施形態では、同一の番号を付した部分については同様の動作を行うものとして、重ねての説明を省略する。
【００１３】
（第１の実施形態）  
図１は、本発明の第１の実施形態に係る画像符号化装置の構成を概略的に示している。この画像符号化装置は、図１に示されるように、画像符号化部１００、符号化制御部１５０及び出力バッファ１２０を備えている。この画像符号化装置は、ＬＳＩチップなどのハードウェアにより実現されてもよく、或いは、コンピュータに画像符号化プログラムを実行させることにより実現されても構わない。
【００１４】
画像符号化部１００には、動画像又は静止画像である原画像（入力画像信号）１０が、例えば原画像を分割した画素ブロック単位で、入力される。画像符号化部１００は、後に詳細に説明するように、入力画像信号１０を圧縮符号化して、符号化データ１４を生成する。生成された符号化データ１４は、出力バッファ１２０に一時的に格納され、符号化制御部１５０が管理する出力タイミングで、図示しない蓄積系（蓄積メディア）又は伝送系（通信回線）へ送出される。
【００１５】
符号化制御部１５０は、発生符号量のフィードバック制御、量子化制御、予測モード制御及びエントロピー符号化制御といった画像符号化部１００の符号化処理全般を制御する。具体的には、符号化制御部１５０は、符号化制御情報５０を画像符号化部１００に与え、画像符号化部１００からフィードバック情報５１を適宜受け取る。符号化制御情報５０には、予測情報、動き情報１８及び量子化パラメータ情報などが含まれる。予測情報は、予測モード情報及びブロックサイズ情報を含む。動き情報１８は、動きベクトル、参照フレーム番号及び予測方向（単方向予測、双方向予測）を含む。量子化パラメータ情報は、量子化幅（量子化ステップサイズ）等の量子化パラメータ及び量子化マトリクスを含む。フィードバック情報５１は、画像符号化部１００による発生符号量を含み、例えば、量子化パラメータを決定するのに使用される。
【００１６】
画像符号化部１００は、原画像を分割した画素ブロック（例えば、マクロブロック、サブブロック、１画素など）を単位として、入力画像信号１０を符号化する。このため、入力画像信号１０は、原画像を分割した画素ブロック単位で画像符号化部１００へ順次に入力される。本実施形態では、符号化の処理単位をマクロブロックとし、入力画像信号１０に対応する、符号化対象である画素ブロック（マクロブロック）を単に符号化対象ブロックと称す。また、符号化対象ブロックを含む画像フレーム、即ち、符号化対象の画像フレームを符号化対象フレームと称す。
【００１７】
このような符号化対象ブロックは、例えば、図２Ａに示すような１６×１６画素ブロックであってもよく、図２Ｂに示すような６４×６４画素ブロックであっても構わない。また、符号化対象ブロックは、３２×３２画素ブロック、８×８画素ブロックなどであっても構わない。また、マクロブロックの形状は、図２Ａ及び図２Ｂに示されるような正方形状の例に限らず、矩形状などの任意形状に設定されても構わない。さらに、上記処理単位は、マクロブロックのような画素ブロックに限らず、フレーム又はフィールドであっても構わない。
【００１８】
なお、符号化対象フレーム内の各画素ブロックに対する符号化処理は、いかなる順序で実行されても構わない。本実施形態では、説明を簡単にするために、図３に示すように、符号化対象フレームの左上の画素ブロックから右下の画素ブロックに向かって一行毎に、即ち、ラスタスキャン順に、画素ブロックに対して符号化処理が実行されるものとする。
【００１９】
図１に示した画像符号化部１００は、予測部１０１、減算器１０２、変換・量子化部１０３、可変長符号化部１０４、逆量子化・逆変換部１０５、加算器１０６、フレームメモリ１０７、動き情報メモリ１０８及び利用可能ブロック取得部１０９を備えている。
【００２０】
画像符号化部１００において、入力画像信号１０は、予測部１０１及び減算器１０２へ入力される。減算器１０２は、入力画像信号１０を受け取るとともに、後述する予測部１０１から予測画像信号１１を受け取る。減算器１０２は、入力画像信号１０と予測画像信号１１との差分を算出して、予測誤差画像信号１２を生成する。
【００２１】
変換・量子化部１０３は、減算器１０２から予測誤差画像信号１２を受け取り、受け取った予測誤差画像信号１２に対して変換処理を施して、変換係数を生成する。変換処理は、例えば、離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）等の直交変換である。他の実施形態では、変換・量子化部１０３は、離散コサイン変換に代えて、ウェーブレット変換及び独立成分解析などの手法を利用して、変換係数を生成しても構わない。さらに、変換・量子化部１０３は、符号化制御部１５０によって与えられた量子化パラメータに基づいて、生成した変換係数を量子化する。量子化された変換係数（変換係数情報）１３は、可変長符号化部１０４及び逆量子化・逆変換部１０５へ出力される。
【００２２】
逆量子化・逆変換部１０５は、符号化制御部１５０によって与えられた量子化パラメータ、即ち、変換・量子化部１０３と同じ量子化パラメータに従って、量子化された変換係数１３を逆量子化する。続いて、逆量子化・逆変換部１０５は、逆量子化された変換係数に対して逆変換を施して、復号予測誤差信号１５を生成する。逆量子化・逆変換部１０５による逆変換処理は、変換・量子化部１０３による変換処理の逆変換処理に一致する。例えば、逆変換処理は、逆離散コサイン変換（ＩＤＣＴ：Inverse Discrete Cosine Transform）又は逆ウェーブレット変換などである。
【００２３】
加算器１０６は、逆量子化・逆変換部１０５から復号予測誤差信号１５を受け取り、さらに、予測部１０１から予測画像信号１１を受け取る。加算器１０６は、復号予測誤差信号１５と予測画像信号１１とを加算して、局所復号画像信号１６を生成する。生成された局所復号画像信号１６は、フレームメモリ１０７に参照画像信号１７として格納される。フレームメモリ１０７に格納されている参照画像信号１７は、その後の符号化対象ブロックを符号化する際に、予測部１０１によって読み出されて参照される。
【００２４】
予測部１０１は、フレームメモリ１０７から参照画像信号１７を受け取るとともに、後述する利用可能ブロック取得部１０９から利用可能ブロック情報３０を受け取る。さらに、予測部１０１は、後述する動き情報メモリ１０８から参照動き情報１９を受け取る。予測部１０１は、参照画像信号１７、参照動き情報１９及び利用可能ブロック情報３０に基づいて、符号化対象ブロックの予測画像信号１１、動き情報１８及び選択ブロック情報３１を生成する。具体的には、予測部１０１は、利用可能ブロック情報３０及び参照動き情報１９に基づいて、動き情報１８及び選択ブロック情報３１を生成する動き情報選択部１１８、並びに、動き情報１８に基づいて、予測画像信号１１を生成する動き補償部１１３を備えている。予測画像信号１１は、減算器１０２及び加算器１０６へ送られる。動き情報１８は、その後の符号化対象ブロックに対する予測処理のために、動き情報メモリ１０８に格納される。また、選択ブロック情報３１は、可変長符号化部１０４へ送られる。予測部１０１については、後に詳細に説明する。
【００２５】
動き情報メモリ１０８には、動き情報１８が参照動き情報１９として一時的に格納される。図４には、動き情報メモリ１０８の構成の一例が示されている。図４に示されるように、動き情報メモリ１０８には、参照動き情報１９がフレーム単位で保持されており、参照動き情報１９が動き情報フレーム２５を形成している。動き情報メモリ１０８には、符号化済みのブロックに関する動き情報１８が順次入力され、その結果、動き情報メモリ１０８は、符号化時間の異なる複数の動き情報フレーム２５を保持する。
【００２６】
参照動き情報１９は、所定のブロック単位（例えば、４×４画素ブロック単位）で動き情報フレーム２５内に保持される。図４に示す動きベクトルブロック２８は、符号化対象ブロック、利用可能ブロック及び選択ブロックなどと同じサイズの画素ブロックを示し、例えば、１６×１６画素ブロックである。動きベクトルブロック２８には、例えば４×４画素ブロック毎に、動きベクトルが割り当てられている。動きベクトルブロックを利用したインター予測処理を、動きベクトルブロック予測処理と称する。動き情報メモリ１０８が保持する参照動き情報１９は、予測部１０１によって、動き情報１８を生成する際に読み出される。後述するような利用可能ブロックが有する動き情報１８とは、動き情報メモリ１０８中の利用可能ブロックが位置する領域に保持された参照動き情報１９を指す。
【００２７】
なお、動き情報メモリ１０８は、４×４画素ブロック単位で参照動き情報１９を保持する例に限らず、他の画素ブロック単位で参照動き情報１９を保持しても構わない。例えば、参照動き情報１９に関する画素ブロック単位は、１画素であってもよく、２×２画素ブロックであっても構わない。また、参照動き情報１９に関する画素ブロックの形状は、正方形状の例に限らず、任意形状とすることができる。
【００２８】
図１の利用可能ブロック取得部１０９は、動き情報メモリ１０８から参照動き情報１９を取得し、取得した参照動き情報１９に基づいて、既に符号化が完了している複数のブロックから、予測部１０１の予測処理に利用することができる利用可能ブロックを選択する。選択された利用可能ブロックは、利用可能ブロック情報３０として予測部１０１及び可変長符号化部１０４へ送られる。利用可能ブロックを選択するための候補となる符号化済みのブロックを、動き参照ブロックと称す。動き参照ブロック及び利用可能ブロックの選択方法については、後に詳細に説明する。
【００２９】
可変長符号化部１０４は、変換係数情報１３に加えて、予測部１０１から選択ブロック情報３１を、符号化制御部１５０から予測情報及び量子化パラメータなどの符号化パラメータを、利用可能ブロック取得部１０９から利用可能ブロック情報３０を受け取る。可変長符号化部１０４は、量子化された変換係数１３、選択ブロック情報３１、利用可能ブロック情報３０及び符号化パラメータをエントロピー符号化（例えば、等長符号化、ハフマン符号化又は算術符号化など）して、符号化データ１４を生成する。符号化パラメータは、選択ブロック情報３１及び予測情報とともに、変換係数に関する情報、量子化に関する情報などの復号の際に必要になるあらゆるパラメータを含む。生成された符号化データ１４は、出力バッファ１２０に一時的に格納され、図示しない蓄積系又は伝送系へ送出される。
【００３０】
図５は、入力画像信号１０の処理手順を示している。図５に示されるように、まず、予測画像信号１１が予測部１０１によって生成される（ステップＳ５０１）。ステップＳ５０１の予測画像信号１１の生成においては、後述する利用可能ブロックのうちの１つが選択ブロックとして選択され、選択ブロック情報３１、選択ブロックが有する動き情報及び参照画像信号１７を用いて、予測画像信号１１が作成される。予測画像信号１１と入力画像信号１０との差分が減算器１０２により計算され、予測誤差画像信号１２が生成される（ステップＳ５０２）。
【００３１】
続いて、予測誤差画像信号１２に対して変換・量子化部１０３により直交変換及び量子化が施され、変換係数情報１３が生成される（ステップＳ５０３）。変換係数情報１３及び選択ブロック情報３１は、可変長符号化部１０４に送られ、可変長符号化が施され、符号化データ１４が生成される（ステップＳ５０４）。また、ステップＳ５０４では、選択ブロック情報３１に応じて、利用可能ブロックの数と等しい数のエントリーをコード表に持つように符号表が切り替えられ、選択ブロック情報３１が可変長符号化される。符号化データのビットストリーム２０は、図示しない蓄積系あるいは伝送路へ送出される。
【００３２】
ステップＳ５０３で生成された変換係数情報１３は、逆量子化・逆変換部１０５によって逆量子化され、逆変換処理が施されて、復号予測誤差信号１５となる（ステップＳ５０５）。復号予測誤差信号１５は、ステップＳ５０１で使用された参照画像信号１７に加算され、局所復号画像信号１６となり（ステップＳ５０６）、フレームメモリ１０７に参照画像信号として記憶される（ステップＳ５０７）。
【００３３】
次に、上述した画像符号化部１００の各構成をより詳細に説明する。  
図１の画像符号化部１００には、複数の予測モードが用意されており、各予測モードは、予測画像信号１１の生成方法及び動き補償ブロックサイズが互いに異なる。予測部１０１が予測画像信号１１を生成する方法としては、具体的には大きく分けて、符号化対象フレーム（又は、フィールド）に関する参照画像信号１７を用いて予測画像を生成するイントラ予測（フレーム内予測）と、１以上の符号化済みの参照フレーム（参照フィールド）に関する参照画像信号１７を用いて予測画像を生成するインター予測（フレーム間予測）とがある。予測部１０１は、イントラ予測及びインター予測を選択的に切り替えて、符号化対象ブロックの予測画像信号１１を生成する。
【００３４】
図６Ａは、動き補償部１１３によるインター予測の一例を示している。インター予測では、図６Ａに示されるように、既に符号化が完了している１フレーム前の参照フレーム内のブロックであって、符号化対象ブロックと同じ位置のブロック（予測ブロックともいう）２３から、動き情報１８に含まれる動きベクトル１８ａに応じて空間的にシフトした位置のブロック２４に関する参照画像信号１７を使用して、予測画像信号１１が生成される。即ち、予測画像信号１１の生成では、符号化対象ブロックの位置（座標）、及び動き情報１８に含まれる動きベクトル１８ａで特定される、参照フレーム内のブロック２４に関する参照画像信号１７が使用される。インター予測では、少数画素精度（例えば、１／２画素精度又は１／４画素精度）の動き補償が可能であり、参照画像信号１７に対してフィルタリング処理を行うことによって、補間画素の値が生成される。例えば、Ｈ．２６４では、輝度信号に対して１／４画素精度までの補間処理が可能である。１／４画素精度の動き補償を行う場合、動き情報１８の情報量は、整数画素精度の４倍となる。
【００３５】
なお、インター予測では、図６Ａに示されるような１フレーム前の参照フレームを使用する例に限らず、図６Ｂに示されるように、いずれの符号化済みの参照フレームが使用されても構わない。時間位置が異なる複数の参照フレームに関する参照画像信号１７が保持されている場合、どの時間位置の参照画像信号１７から予測画像信号１１を生成したかを示す情報は、参照フレーム番号で表わされる。参照フレーム番号は、動き情報１８に含まれる。参照フレーム番号は、領域単位（ピクチャ、ブロック単位など）で変更することができる。即ち、画素ブロック毎に異なる参照フレームが使用されることができる。一例として、符号化済みの１フレーム前の参照フレームを予測に使用した場合、この領域の参照フレーム番号は、０に設定され、符号化済みの２フレーム前の参照フレームを予測に使用した場合、この領域の参照フレーム番号は、１に設定される。他の例として、１フレーム分だけの参照画像信号１７がフレームメモリ１０７に保持されている（参照フレームの数が１である）場合、参照フレーム番号は、常に０に設定される。
【００３６】
さらに、インター予測では、複数の動き補償ブロックの中から符号化対象ブロックに適したブロックサイズを選択することができる。即ち、符号化対象ブロックが複数の小画素ブロックに分割され、小画素ブロック毎に動き補償が行われても構わない。図７Ａから図７Ｃは、マクロブロック単位の動き補償ブロックのサイズを示し、図７Ｄは、サブブロック（８×８画素以下の画素ブロック）単位の動き補償ブロックのサイズを示す。図７Ａに示されるように、符号化対象ブロックが６４×６４画素である場合、動き補償ブロックとして、６４×６４画素ブロック、６４×３２画素ブロック、３２×６４画素ブロック又は３２×３２画素ブロックなどが選択されることができる。また、図７Ｂに示されるように、符号化対象ブロックが３２×３２画素である場合、動き補償ブロックとして、３２×３２画素ブロック、３２×１６画素ブロック、１６×３２画素ブロック又は１６×１６画素ブロックなどが選択されることができる。さらに、図７Ｃに示されるように、符号化対象ブロックが１６×１６画素である場合、動き補償ブロックは、１６×１６画素ブロック、１６×８画素ブロック、８×１６画素ブロック又は８×８画素ブロックなどに設定されることができる。さらにまた、図７Ｄに示されるように、符号化対象ブロックが８×８画素である場合、動き補償ブロックは、８×８画素ブロック、８×４画素ブロック、４×８画素ブロック又は４×４画素ブロックなどが選択されることができる。
【００３７】
前述したように、インター予測に使用する参照フレーム内の小画素ブロック（例えば、４×４画素ブロック）が動き情報１８を有しているので、入力画像信号１０の局所的な性質に従って、最適な動き補償ブロックの形状及び動きベクトルを利用することができる。また、図７Ａから図７Ｄのマクロブロック及びサブマクロブロックは、任意に組み合わせることができる。符号化対象ブロックが図７Ａに示されるような６４×６４画素ブロックである場合、６４×６４画素ブロックを分割した４つの３２×３２画素ブロックの各々に対して、図７Ｂに示す各ブロックサイズを選択することで、階層的に６４×６４〜１６×１６画素のブロックを利用することができる。同様にして、図７Ｄに示されるブロックサイズまで選択可能とする場合、階層的に６４×６４〜４×４のブロックサイズを利用することができる。
【００３８】
次に、図８Ａから図８Ｆを参照して、動き参照ブロックについて説明する。  
動き参照ブロックは、図１の画像符号化装置及び後述する画像復号化装置の両方によって取り決められた方法に従って、符号化対象フレーム及び参照フレーム内の符号化済みの領域（ブロック）の中から選択される。図８Ａは、符号化対象ブロックの位置に応じて選択される動き参照ブロックの配置の一例を示している。図８Ａの例では、９つの動き参照ブロックＡ〜Ｄ及びＴＡ〜ＴＥが符号化対象フレーム及び参照フレーム内の符号化済みの領域から選択される。具体的には、符号化対象フレームからは、符号化対象ブロックの左、上、右上、左上に隣接する４つのブロックＡ，Ｂ，Ｃ，Ｄが動き参照ブロックとして選択され、参照フレームからは、符号化対象ブロックと同一位置のブロックＴＡ、並びにこのブロックＴＡの右、下、左及び上に隣接する４つの画素ブロックＴＢ，ＴＣ，ＴＤ，ＴＥが動き参照ブロックとして選択される。本実施形態では、符号化対象フレームから選択された動き参照ブロックを空間方向動き参照ブロックと称し、参照フレームから選択された動き参照ブロックを時間方向動き参照ブロックと称す。図８Ａの各動き参照ブロックに付与されている記号ｐは、動き参照ブロックのインデクスを示す。このインデクスは、時間方向、空間方向の動き参照ブロックの順にナンバリングされているが、これに限らず、インデクスが重複しなければ、必ずしもこの順序でなくても構わない。例えば、時間方向及び空間方向の動き参照ブロックは、順序がばらばらにナンバリングされていても構わない。
【００３９】
なお、空間方向動き参照ブロックは、図８Ａに示す例に限らず、図８Ｂに示すように、符号化対象ブロックに隣接する画素ａ，ｂ，ｃ，ｄが属するブロック（例えば、マクロブロック又はサブマクロブロック等）であっても構わない。この場合、符号化対象ブロック内の左上画素ｅから各画素ａ，ｂ，ｃ，ｄへの相対位置（ｄｘ，ｄｙ）は、図８Ｃに示されるように、設定される。ここで、図８Ａ及び図８Ｂに示される例では、マクロブロックは、Ｎ×Ｎ画素ブロックであるものとして示されている。
【００４０】
また、図８Ｄに示されるように、符号化対象ブロックに隣接する全てのブロックＡ１〜Ａ４，Ｂ１，Ｂ２，Ｃ，Ｄが空間方向動き参照ブロックとして選択されても構わない。図８Ｄの例では、空間方向動き参照ブロックの数は８となる。
【００４１】
さらに、時間方向動き参照ブロックは、図８Ｅに示されるように、各ブロックＴＡ〜ＴＥの一部が重なり合っていてもよく、図８Ｆに示されるように、各ブロックＴＡ〜ＴＥが離れて配置されていても構わない。図８Ｅでは、時間方向動き参照ブロックＴＡ及びＴＢが重なりあっている部分が斜線で示されている。さらにまた、時間方向動き参照ブロックは、必ずしも符号化対象ブロックに対応する位置（Ｃｏｌｌｏｃａｔｅ位置）のブロック及びその周囲に位置するブロックである例に限らず、参照フレーム内のいずれの位置に配置されているブロックであっても構わない。例えば、参照ブロックの位置、及び符号化対象ブロックに隣接するいずれかの符号化済みのブロックが有する動き情報１８で特定される、参照フレーム内のブロックを中心ブロック（例えば、ブロックＴＡ）として、この中心ブロック及びその周囲のブロックが時間方向動き参照ブロックとして選択されても構わない。さらに、時間方向参照ブロックは、中心ブロックから等間隔に配置されていなくても構わない。
【００４２】
上述したいずれの場合においても、符号化装置及び復号化装置で空間方向及び時間方向動き参照ブロックの数及び位置を予め取り決めておけば、動き参照ブロックの数及び位置は、どのように設定されても構わない。また、動き参照ブロックのサイズは、必ずしも符号化対象ブロックと同じサイズである必要はない。例えば、図８Ｄに示されるように、動き参照ブロックのサイズが符号化対象ブロックより大きくてもよく、小さくても構わない。さらに、動き参照ブロックは、正方形状に限らず、長方形状等の任意形状に設定されても構わない。また、動き参照ブロックは、いかなるサイズに設定されても構わない。
【００４３】
また、動き参照ブロック及び利用可能ブロックは、時間方向及び空間方向のいずれか一方のみに配置されていても構わない。また、Ｐスライス、Ｂスライスといったスライスの種類に従って、時間方向の動き参照ブロック及び利用可能ブロックを配置しても構わないいし、空間方向の動き参照ブロック及び利用可能ブロックを配置しても構わない。
【００４４】
図９は、利用可能ブロック取得部１０９が動き参照ブロックの中から利用可能ブロックを選択する方法を示している。利用可能ブロックは、符号化対象ブロックへ動き情報を適用可能なブロックであり、互いに異なる動き情報を有している。利用可能ブロック取得部１０９は、参照動き情報１９を参照して、図９に示す方法に従って、動き参照ブロックが各々利用可能ブロックであるか否かを判定し、利用可能ブロック情報３０を出力する。
【００４５】
図９に示されるように、まず、インデクスｐがゼロである動き参照ブロックが選択される（Ｓ８００）。図９の説明では、インデクスｐが０からＭ−１（Ｍは、動き参照ブロックの数を示す。）まで順番に動き参照ブロックを処理する場合を想定している。また、インデクスｐが０からｐ−１までの動き参照ブロックに対する利用可能判定処理が終了し、利用可能か否かを判定する対象となっている動き参照ブロックのインデクスがｐであるものとして説明する。
【００４６】
利用可能ブロック取得部１０９は、動き参照ブロックｐが動き情報１８を有しているか否か、即ち、少なくとも１つの動きベクトルが割り当てられているか否かを判定する（Ｓ８０１）。動き参照ブロックｐが動きベクトルを有していない場合、即ち、時間方向動き参照ブロックｐが、動き情報を有していないＩスライス内のブロックであるか、或いは、時間方向動き参照ブロックｐ内の全ての小画素ブロックがイントラ予測符号化されたものである場合、ステップＳ８０５に進む。ステップＳ８０５において、動き参照ブロックｐは、利用不可能ブロックと判定される。
【００４７】
ステップＳ８０１において動き参照ブロックｐが動き情報を有している場合、ステップＳ８０２に進む。利用可能ブロック取得部１０９は、既に利用可能ブロックに選択されている動き参照ブロックｑ（利用可能ブロックｑ）を選定する。ここで、ｑは、ｐよりも小さい値である。続いて、利用可能ブロック取得部１０９は、動き参照ブロックｐの動き情報１８と、利用可能ブロックｑの動き情報１８とを比較して、同一の動き情報を有するか否かを判定する（Ｓ８０３）。動き参照ブロックｐの動き情報１８と利用可能ブロックに選択されている動き参照ブロックｑの動き情報１８とが同一であると判定された場合、ステップＳ８０５に進み、動き参照ブロックｐが利用不可能ブロックと判定される。
【００４８】
ｑ＜ｐを満たす全ての利用可能ブロックｑに対して、ステップＳ８０３で動き参照ブロックｐの動き情報１８と、利用可能ブロックｑの動き情報１８とが同一でないと判定された場合、ステップＳ８０４に進む。ステップＳ８０４において、利用可能ブロック取得部１０９は、動き参照ブロックｐを利用可能ブロックとして判定する。
【００４９】
動き参照ブロックｐが利用可能ブロック又は利用不可能ブロックであると判定されると、利用可能ブロック取得部１０９は、全ての動き参照ブロックに対して利用可能判定が実行されたか否かを判定する（Ｓ８０６）。利用可能判定が実行されていない動き参照ブロックが存在する場合、例えば、ｐ＜Ｍ−１である場合、ステップＳ８０７に進む。続いて、利用可能ブロック取得部１０９は、インデクスｐを１インクリメントして（ステップＳ８０７）、ステップＳ８０１からステップＳ８０６を再度実行する。ステップＳ８０６で全ての動き参照ブロックに対して利用可能判定が実行されると、利用可能判定処理は、終了となる。
【００５０】
上述した利用可能判定処理を実行することにより、各動き参照ブロックが利用可能ブロックであるか、又は利用不可能ブロックであるかが判定される。利用可能ブロック取得部１０９は、利用可能ブロックに関する情報を含む利用可能ブロック情報３０を生成する。このように、動き参照ブロックの中から利用可能ブロックを選択することによって、利用可能ブロック情報３０に関する情報量が低減され、結果として、符号化データ１４の量を低減することができる。
【００５１】
図８Ａに示した動き参照ブロックに対して、利用可能判定処理を実行した結果の一例を図１０に示す。図１０では、２つの空間方向動き参照ブロック（ｐ＝０，１）及び２つの時間方向動き参照ブロック（ｐ＝５，８）が利用可能ブロックであると判定されている。図１０の例に関する利用可能ブロック情報３０の一例を図１１に示す。図１１に示されるように、利用可能ブロック情報３０は、動き参照ブロックのインデクス、利用可能性及び動き参照ブロック名称を含む。図１１の例では、インデクスｐ＝０，１，５，８が利用可能ブロックであり、利用可能ブロック数は４である。予測部１０１は、これらの利用可能ブロックの中から最適な１つ利用可能ブロックを選択ブロックとして選択し、選択ブロックに関する情報（選択ブロック情報）３１を出力する。選択ブロック情報３１は、利用可能ブロックの数及び選択された利用可能ブロックのインデクス値を含む。例えば、利用可能ブロックの数が４である場合、応じた選択ブロック情報３１は、最大のエントリーが４である符号表を用いて、可変長符号化部１０４によって符号化される。
【００５２】
なお、図９のステップＳ８０１において、時間方向動き参照ブロックｐ内のブロックのうちの少なくとも１つがイントラ予測符号化されたブロックであった場合、利用可能ブロック取得部１０９は、動き参照ブロックｐを利用不可能ブロックと判定しても構わない。即ち、時間方向動き参照ブロックｐ内の全てのブロックがインター予測で符号化されている場合のみ、ステップＳ８０２に進むようにしても構わない。
【００５３】
図１２Ａから図１２Ｅは、ステップＳ８０３の動き情報１８の比較において、動き参照ブロックｐの動き情報１８と、利用可能ブロックｑの動き情報１８とが同一であると判定される例を示す。図１２Ａから図１２Ｅには、各々、斜線が施された複数のブロックと、２つの白塗りのブロックとが示されている。図１２Ａから図１２Ｅでは、説明を簡単にするために、斜線が施されたブロックを考慮せずに、これらの２つの白塗りのブロックの動き情報１８を比較する場合を想定している。２つの白塗りのブロックの一方が、動き参照ブロックｐであり、他方が既に利用可能と判定されている動き参照ブロックｑ（利用可能ブロックｑ）であるものとする。特に断りのない限り、２つの白色ブロックのいずれが動き参照ブロックｐであっても構わない。
【００５４】
図１２Ａは、動き参照ブロックｐ及び利用可能ブロックｑの両方が空間方向のブロックである例を示している。図１２Ａの例では、ブロックＡ及びＢの動き情報１８が同一であれば、動き情報１８が同一であると判定される。このとき、ブロックＡ及びＢのサイズが同一である必要はない。
【００５５】
図１２Ｂは、動き参照ブロックｐ及び利用可能ブロックｑの一方が空間方向のブロックＡであり、他方が時間方向のブロックＴＢである例を示している。図１２Ｂでは、時間方向のブロックＴＢ内に動き情報を有するブロックが１つある。時間方向のブロックＴＢの動き情報１８と空間方向のブロックＡの動き情報１８とが同一であれば、動き情報１８が同一であると判定される。このとき、ブロックＡ及びＴＢのサイズが同一である必要はない。
【００５６】
図１２Ｃは、動き参照ブロックｐ及び利用可能ブロックｑの一方が空間方向のブロックＡであり、他方が時間方向のブロックＴＢである他の例を示している。図１２Ｃは、時間方向のブロックＴＢが複数の小ブロックに分割されていて、動き情報１８を有する小ブロックが複数ある場合を示している。図１２Ｃの例では、動き情報１８を有する全てのブロックが同じ動き情報１８を有し、その動き情報１８が空間方向のブロックＡの動き情報１８と同一であれば、動き情報１８が同一であると判定される。このとき、ブロックＡ及びＴＢのサイズが同一である必要はない。
【００５７】
図１２Ｄは、動き参照ブロックｐ及び利用可能ブロックｑがともに時間方向のブロックである例を示している。この場合、ブロックＴＢ及びＴＥの動き情報１８が同一であれば、動き情報１８が同一であると判定される。
【００５８】
図１２Ｅは、動き参照ブロックｐ及び利用可能ブロックｑがともに時間方向のブロックである他の例を示している。図１２Ｅは、時間方向のブロックＴＢ及びＴＥが各々複数の小ブロックに分割されていて、各々に動き情報１８を有する小ブロックが複数ある場合を示している。この場合、ブロック内の小ブロック毎に動き情報１８を比較して、全ての小ブロックに対し動き情報１８が同一であれば、ブロックＴＢの動き情報１８とブロックＴＥの動き情報１８とが同一であると判定される。
【００５９】
図１２Ｆは、動き参照ブロックｐ及び利用可能ブロックｑがともに時間方向のブロックであるさらに他の例を示している。図１２Ｆは、時間方向のブロックＴＥが複数の小ブロックに分割されていて、ブロックＴＥに動き情報１８を有する小ブロックが複数ある場合を示している。ブロックＴＥの全ての動き情報１８が同一の動き情報１８であり、且つ、ブロックＴＤが有する動き情報１８と同一である場合、ブロックＴＤとＴＥの動き情報１８が同一であると判定される。
【００６０】
このようにして、ステップＳ８０３では、動き参照ブロックｐの動き情報１８と利用可能ブロックｑの動き情報１８とが同一であるか否かが判定される。図１２Ａから図１２Ｆの例では、動き参照ブロックｐと比較する利用可能ブロックｑの数を１として説明したが、利用可能ブロックｑの数が２以上の場合においては、動き参照ブロックｐの動き情報１８と、各々の利用可能ブロックｑの動き情報１８とを比較しても構わない。また、後述するスケーリングを適用する場合、スケーリング後の動き情報１８が上記説明の動き情報１８となる。
【００６１】
なお、動き参照ブロックｐの動き情報と利用可能ブロックｑの動き情報とが同一であるという判定は、動き情報に含まれる各動きベクトルが完全に一致する場合に限定されることはない。例えば、２つの動きベクトルの差のノルムが所定の範囲内であれば、動き参照ブロックｐの動き情報と利用可能ブロックｑの動き情報とが実質的に同一であるとみなしても構わない。
【００６２】
図１３は、予測部１０１のより詳細な構成を示している。この予測部１０１は、前述したように、利用可能ブロック情報３０、参照動き情報１９及び参照画像信号１７を入力として、予測画像信号１１、動き情報１８及び選択ブロック情報３１を出力する。動き情報選択部１１８は、図１３に示されるように、空間方向動き情報取得部１１０、時間方向動き情報取得部１１１及び動き情報切替スイッチ１１２を備えている。
【００６３】
空間方向動き情報取得部１１０には、利用可能ブロック情報３０、及び空間方向動き参照ブロックに関する参照動き情報１９が入力される。空間方向動き情報取得部１１０は、空間方向に位置する各利用可能ブロックが有する動き情報及び利用可能ブロックのインデクス値を含む動き情報１８Ａを出力する。図１１に示した情報が利用可能ブロック情報３０として入力される場合、空間方向動き情報取得部１１０は、２つの動き情報出力１８Ａを生成し、各動き情報出力１８Ａは、利用可能ブロック及びこの利用可能ブロックが有する動き情報１９を含む。
【００６４】
時間方向動き情報取得部１１１には、利用可能ブロック情報３０及び時間方向動き参照ブロックに関する参照動き情報１９が入力される。時間方向動き情報取得部１１１は、利用可能ブロック情報３０で特定される利用可能な時間方向動き参照ブロックが有する動き情報１９及び利用可能ブロックのインデクス値を動き情報１８Ｂとして出力する。時間方向動き参照ブロックは複数の小画素ブロックに分割されていて、各小画素ブロックが動き情報１９を有している。時間方向動き情報取得部１１１が出力する動き情報１８Ｂは、図１４に示すように、利用可能ブロック内の各小画素ブロックが有する動き情報１９の群を含む。動き情報１８Ｂが動き情報１９の群を含む場合、符号化対象ブロックを分割した小画素ブロック単位で、符号化対象ブロックに対して動き補償予測を実行することができる。図１１に示した情報が利用可能ブロック情報３０として入力される場合、時間方向動き情報取得部１１１は、２つの動き情報出力１８Ｂを生成し、各動き情報出力は、利用可能ブロック及びこの利用可能ブロックが有する動き情報１９の群を含む。
【００６５】
なお、時間方向動き情報取得部１１１は、各画素小ブロックが有する動き情報１９に含まれる動きベクトルの平均値又は代表値を求め、動きベクトルの平均値又は代表値を動き情報１８Ｂとして出力しても構わない。
【００６６】
図１３の動き情報切替スイッチ１１２は、空間方向動き情報取得部１１０及び時間方向動き情報取得部１１１から出力される動き情報１８Ａ及び１８Ｂに基づいて、適切な１つの利用可能ブロックを選択ブロックとして選択し、選択ブロックに対応する動き情報１８（又は、動き情報１８の群）を動き補償部１１３に出力する。また、動き情報切替スイッチ１１２は、選択ブロックに関する選択ブロック情報３１を出力する。選択ブロック情報３１は、インデクスｐ又は動き参照ブロックの名称などを含み、単に選択情報とも称される。選択ブロック情報３１は、インデクスｐ及び動き参照ブロックの名称に限定されず、選択ブロックの位置を特定することができれば、いかなる情報であっても構わない。
【００６７】
動き情報切替スイッチ１１２は、例えば、下記数式１に示すコスト式によって導出される符号化コストが最小になる利用可能ブロックを選択ブロックとして選択する。
【数１】
2020025308.tif 000003
【００６８】
ここで、Ｊは符号化コストを示し、Ｄは入力画像信号１０と参照画像信号１７との間の二乗誤差和を表す符号化歪みを示す。また、Ｒは仮符号化によって見積もられる符号量を示し、λは。量子化幅等によって定められるラグランジュ未定係数を示す。数式１に代えて、符号量Ｒ又は符号化歪みＤのみを使用して、符号化コストＪを算出してもよく、符号量Ｒ又は符号化歪みＤを近似した値を使用して数式１のコスト関数を作成しても構わない。さらに、符号化歪みＤは、二乗誤差和に限らず、予測誤差の絶対値和（ＳＡＤ：sums of absolute difference）であっても構わない。符号量Ｒは、動き情報１８に関する符号量のみを使用しても構わない。また、符号化コストが最小になる利用可能ブロックが選択ブロックとして選択される例に限定されず、符号化コストが最も小さい値以上のある範囲内の値を有する１つの利用可能ブロックが選択ブロックとして選択されても構わない。
【００６９】
動き補償部１１３は、動き情報選択部１１８が選択した選択ブロックが有する動き情報（又は、動き情報の群）に基づいて、参照画像信号１７が予測画像信号１１として取り出される画素ブロックの位置を導出する。動き補償部１１３に動き情報の群が入力された場合、動き補償部１１３は、参照画像信号１７が予測画像信号１１として取り出される画素ブロックを小画素ブロック（例えば、４×４画素ブロック）に分割し、かつ、これら小画素ブロックの各々に、対応する動き情報１８を適用することによって、参照画像信号１７から予測画像信号１１を取得する。予測画像信号１１が取得されるブロックの位置は、例えば図４Ａに示されるように、小画素ブロックから、動き情報１８に含まれる動きベクトル１８ａに応じて空間方向にシフトした位置となる。
【００７０】
符号化対象ブロックに対する動き補償処理は、Ｈ．２６４の動き補償処理と同様のものを使用することができる。ここでは、一例として、１／４画素精度の補間手法を具体的に説明する。１／４画素精度の補間では、動きベクトルの各成分が４の倍数である場合、動きベクトルは、整数画素位置を指し示す。それ以外の場合、動きベクトルは、分数精度の補間位置に対応する予測位置を指し示す。
【数２】
2020025308.tif 000004
【００７１】
ここで、x及びyは、予測対象ブロックの先頭位置（例えば、左上頂点）を示す垂直及び水平方向のインデクスを示し、x_pos及びy_posは、参照画像信号１７の対応する予測位置を示す。(mv_x,mv_y)は、１／４画素精度を持つ動きベクトルを示す。次に、割り出した画素位置に対して、参照画像信号１７の対応する画素位置の補填又は補間処理によって予測画素を生成する。図１５に、Ｈ．２６４の予測画素生成の一例が示されている。図１５において大文字のアルファベットで示される正方形（斜線が施された正方形）は、整数位置の画素を示しており、網掛けで表示されている正方形は、１／２画素位置の補間画素を示している。また、白塗りで表示された正方形は１／４画素位置に対応する補間画素を示している。例えば、図１５において、アルファベットｂ、ｈの位置に対応する１／２画素の補間処理は、下記数式３で算出される。
【数３】
2020025308.tif 000005
【００７２】
ここで、数式３及び下記数式４に示されるアルファベット（例えば、ｂ，ｈ，Ｃ１等）は、図１６において同じアルファベットを付与された画素の画素値を示す。また、「>>」は、右シフト演算を示し、「>> 5」は、３２で除算することに相当する。即ち、１／２画素位置の補間画素は、６タップＦＩＲ（Finite Impulse Response）フィルタ（タップ係数：（１，−５，２０，２０，−５，１）／３２）を用いて算出される。
【００７３】
また、図１５でアルファベットａ、ｄの位置に対応する１／４画素の補間処理は、下記数式４で算出される。
【数４】
2020025308.tif 000006
【００７４】
このように、１／４画素位置の補間画素は、２タップの平均値フィルタ（タップ係数：（１／２，１／２））を用いて算出される。４つの整数画素位置の中間に存在するアルファベットｊに対応する１／２画素の補間処理は、垂直方向６タップ及び水平方向６タップの両方向を用いて生成される。説明した以外の画素位置に対しても同様の方法で、補間画素値が生成される。
【００７５】
なお、補間処理は、数式３及び数式４の例に限らず、他の補間係数を用いて生成されても構わない。また、補間係数は、符号化制御部１５０から与えられる固定の値を用いてもよく、或いは、前述の符号化コストに基づいて、フレーム毎に補間係数を最適化し、最適化された補間係数を用いて生成されても構わない。
【００７６】
また、本実施形態では、動き参照ブロックがマクロブロック（例えば、１６×１６画素ブロック）単位での動きベクトルブロック予測処理に関する処理について述べたが、マクロブロックに限らず、１６×８画素ブロック単位、８×１６画素ブロック単位、８×８画素ブロック単位、８×４画素ブロック単位、４×８画素ブロック単位又は４×４画素ブロック単位で予測処理が実行されても構わない。この場合、動きベクトルブロックに関する情報は、画素ブロック単位で導出される。また、３２×３２画素ブロック単位、３２×１６画素ブロック単位、６４×６４画素ブロック単位など、１６×１６画素ブロックより大きい単位で上記の予測処理を行っても構わない。
【００７７】
動きベクトルブロック内の参照動きベクトルを、符号化対象ブロック内の小画素ブロックの動きベクトルとして代入する際には、（Ａ）参照動きベクトルのマイナス値（反転ベクトル）を代入してもよく、或いは（Ｂ）小ブロックに対応する参照動きベクトルと、この参照動きベクトルに隣接する参照動きベクトルを用いた加重平均値若しくはメディアン値、最大値、最小値を代入しても構わない。
【００７８】
図１６は、予測部１０１の動作を概略的に示している。図１６に示されるように、まず、時間方向参照動きブロックを含む参照フレーム（動き参照フレーム）を取得する（ステップＳ１５０１）。動き参照フレームは、典型的には、符号化対象フレームと時間的距離が最も小さい参照フレームであって、時間的に過去の参照フレームである。例えば、動き参照フレームは、符号化対象フレームの直前に符号化されたフレームである。他の例では、動き情報メモリ１０８に動き情報１８が保存されているいずれの参照フレームが動き参照フレームとして取得されても構わない。次に、空間方向動き情報取得部１１０及び時間方向動き情報取得部１１１は、各々、利用可能ブロック取得部１０９から出力された利用可能ブロック情報３０を取得する（ステップＳ１５０２）。次に、動き情報切替スイッチ１１２は、例えば数式１に従って、利用可能ブロックの中から１つを選択ブロックとして選択する（ステップＳ１５０３）。続いて、動き補償部１１３は、選択された選択ブロックが有する動き情報を符号化対象ブロックにコピーする（ステップＳ１５０４）。このとき、選択ブロックが空間方向参照ブロックである場合には、図１７に示されるように、この選択ブロックが有する動き情報１８が符号化参照ブロックへコピーされる。また、選択ブロックが時間方向参照ブロックである場合には、この選択ブロックが有する動き情報１８の群が位置情報とともに符号化対象ブロックへコピーされる。次に、動き補償部１１３によってコピーされた動き情報１８又は動き情報１８の群を用いて、動き補償を実行し、予測画像信号１１及び動き補償予測に用いた動き情報１８を出力する。
【００７９】
図１８は、可変長符号化部１０４のより詳細な構成を示している。可変長符号化部１０４は、図１８に示されるように、パラメータ符号化部１１４、変換係数符号化部１１５、選択ブロック符号化部１１６及び多重化部１１７を備えている。パラメータ符号化部１１４は、変換係数情報１３及び選択ブロック情報３１を除く、予測モード情報、ブロックサイズ情報、量子化パラメータ情報などの復号に必要になるパラメータを符号化し、符号化データ１４Ａを生成する。変換係数符号化部１１５は、変換係数情報１３を符号化して、符号化データ１４Ｂを生成する。また、選択ブロック符号化部１１６は、利用可能ブロック情報３０を参照して、選択ブロック情報３１を符号化し、符号化データ１４Ｃを生成する。
【００８０】
利用可能ブロック情報３０が、図１９に示すように、インデクスとインデクスに対応する動き参照ブロックの利用可能性とを含む場合、予め設定された複数の動き参照ブロックのうち、利用不可能である動き参照ブロックを除外して、利用可能である動き参照ブロックのみをシンタクス（stds_idx）に変換する。図１９では、９つの動き参照ブロックのうちの５つの動き参照ブロックが利用不可能であるので、これらを除外した４つの動き参照ブロックに対して、シンタクスstds_idxが０から順番に割り当てられる。この例では、符号化すべき選択ブロック情報は、９つから選択するのではなく、４つの利用可能ブロックから選択することになるので、割り当てる符号量（bin数）は、平均的に少なく済む。
【００８１】
図２０は、シンタクスstds_idx及びシンタクスstds_idxの２値情報（bin）を示す符号表の一例を示す。図１８に示されるように、利用可能な動き参照ブロックの数が少なければ少ないほど、シンタクスstds_idxの符号化に必要な平均のbin数は、低減される。例えば、利用可能ブロックの数が４である場合、シンタクスstds_idxは、３ビット以下で表わすことができる。シンタクスstds_idxの２値情報（bin）は、利用可能ブロック数毎に全てのstds_idxが同じbin数となるよう２値化されてもよく、事前学習によって定められた２値化方法に従って２値化されても構わない。また、複数の２値化方法が用意され、符号化対象ブロック毎に適用的に切り替えられても構わない。
【００８２】
これらの符号化部１１４、１１５、１１６には、エントロピー符号化（例えば等長符号化、ハフマン符号化若しくは算術符号化など）が適用されることができ、生成された符号化データ１４Ａ、１４Ｂ、１４Ｃは、多重化部１１７によって多重化されて出力される。
【００８３】
本実施形態では、符号化対象フレームより１フレーム前に符号化されたフレームを参照フレームとして参照する例を想定して説明しているが、選択ブロックが有する参照動き情報１９中の動きベクトル及び参照フレーム番号を用いて、動きベクトルをスケーリング（又は、正規化）して、参照動き情報１９が符号化対象ブロックへ適用されても構わない。
【００８４】
このスケーリング処理について、図２１を参照して具体的に説明する。図２１に示すtcは、符号化対象フレームと動き参照フレームとの時間距離（ＰＯＣ（ディスプレイ順序を示す番号）距離）を示し、下記数式５により算出される。図２１に示すtr[i]は、動き参照フレームと選択ブロックが参照するフレームｉとの時間距離を示し、下記数式６により算出される。
【数５】
2020025308.tif 000007
【００８５】
ここで、curPOCは符号化対象フレームのPOC(Picture Order Count)を示し、colPOCは動き参照フレームのPOCを示し、refPOCは選択ブロックが参照するフレームｉのPOCを示している。また、Clip（min,max,target）はtargetがminより小さい値になる場合にはminを出力し、maxより大きい値になる場合にはmaxを出力し、それ以外の場合にはtargetを出力するクリップ関数である。また、DiffPicOrderCnt(x,y)は２つのPOCの差分を計算する関数である。
【００８６】
選択ブロックの動きベクトルをMVr=(MVr_x,MVr_y)とし、符号化対象ブロックへ適用する動きベクトルをMV=（MV_x,MV_y）とすると、下記数式７により動きベクトルＭＶが算出される。
【数６】
2020025308.tif 000008
【００８７】
ここで、Abs(x)はxの絶対値を取り出す関数を示す。このようにして、動きベクトルのスケーリングでは、選択ブロックに割り当てられている動きベクトルＭＶｒが符号化対象フレームと動き第１参照フレームとの間の動きベクトルＭＶに変換される。
【００８８】
また、動きベクトルのスケーリングに関する他の例を以下に説明する。  
まず、スライス又はフレーム毎に、下記数式８に従って、動き参照フレームが取りうる全ての時間距離trに関してスケーリング係数(DistScaleFactor[i])を求める。スケーリング係数の数は、選択ブロックが参照するフレームの数、即ち、参照フレームの数と等しい。
【数７】
2020025308.tif 000009
【００８９】
数式８に示すtxの計算については、予めテーブル化しておいても構わない。
【００９０】
符号化対象ブロック毎のスケーリングの際には、下記数式９を用いることにより、乗算、加算、シフト演算のみで動きベクトルＭＶを計算することができる。
【数８】
2020025308.tif 000010
【００９１】
このようなスケーリング処理を施した場合、予測部１０１とともに利用可能ブロック取得部１０９の処理に、スケーリング後の動き情報１８を適用する。スケーリング処理を施した場合、符号化対象ブロックが参照する参照フレームは、動き参照フレームとなる。
【００９２】
図２２は、画像符号化部１００におけるシンタクス構造を示している。図２２に示されるように、シンタクスは、主に３つのパート、即ち、ハイレベルシンタクス９０１、スライスレベルシンタクス９０４及びマクロブロックレベルシンタクス９０７を含む。ハイレベルシンタクス９０１は、スライス以上の上位レイヤのシンタクス情報を保持している。スライスレベルシンタクス９０４は、スライス毎に必要な情報を保持し、マクロブロックレベルシンタクス９０７は、図７Ａから図７Ｄに示されるマクロブロック毎に必要とされるデータを保持している。
【００９３】
各パートは、さらに詳細なシンタクスを含む。ハイレベルシンタクス９０１は、シーケンスパラメータセットシンタクス９０２及びピクチャパラメータセットシンタクス９０３などのシーケンス及びピクチャレベルのシンタクスを含む。スライスレベルシンタクス９０４は、スライスヘッダーシンタクス９０５及びスライスデータシンタクス９０６などを含む。さらに、マクロブロックレベルシンタクス９０７は、マクロブロックレイヤーシンタクス９０８及びマクロブロックプレディクションシンタクス９０９などを含む。
【００９４】
図２３Ａ及び図２３Ｂは、マクロブロックレイヤーシンタクスの例を示している。図２３Ａ及び図２３Ｂに示すavailable_block_numは、利用可能ブロックの数を示しており、これが１より大きい値の場合は、選択ブロック情報の符号化が必要となる。さらに、stds_idxは、選択ブロック情報を示しており、前述した利用可能ブロック数に応じた符号表を用いてstds_idxを符号化する。
【００９５】
図２３Ａは、mb_typeの後に選択ブロック情報を符号化する場合のシンタクスを示している。mb_typeが示すモードが定められたサイズや定められたモード(TARGET_MODE)の場合で、かつavailable_block_numが１より大きい値の場合に、stds_idxを符号化する。例えば、選択ブロックの動き情報が利用可能となるのが、ブロックサイズが６４×６４画素、３２×３２画素、１６×１６画素の場合や、ダイレクトモードの場合にstds_idxを符号化する。
【００９６】
図２３Ｂは、mb_typeの前に選択ブロック情報を符号化する場合のシンタクスを示している。available_block_numが１より大きい値の場合に、stds_idxを符号化する。また、available_block_num が０ならば、Ｈ．２６４に代表される従来の動き補償を行うのでmb_typeを符号化する。
【００９７】
なお、図２３Ａ及び図２３Ｂに示す表の行間には、本発明で規定していないシンタクス要素が挿入されることも可能であるし、それ以外の条件分岐に関する記述が含まれていても構わない。或いは、シンタクステーブルを複数のテーブルに分割、統合することも可能である。また、必ずしも同一の用語を用いる必要は無く、利用する形態によって任意に変更しても構わない。更に、当該マクロブロックレイヤーシンタクスに記述されている各々のシンタクスエレメントは、後述するマクロブロックデータシンタクスに明記されるように変更しても構わない。
【００９８】
また、stds_idxの情報を利用することでmb_typeの情報を削減することが可能である。図２４Ａは、Ｈ．２６４におけるＢスライス時のmb_type及びmb_typeに対応する符号表である。図２４Ａに示されるＮは、１６，３２，６４などの、符号化対象ブロックのサイズを表す値であり、ＭはＮの半分の値である。従って、mb_typeが４〜２１である場合、符号化対象ブロックは長方形ブロックであることを示している。また、図２４ＡのＬ０，Ｌ１，Ｂｉは、夫々単方向予測(List0方向のみ)、単方向予測(List1方向のみ)、双方向予測を示している。符号化対象ブロックが長方形ブロックである場合、mb_typeは、符号化対象ブロック内の２つの長方形ブロックの各々に対して、Ｌ０，Ｌ１，Ｂｉのいずれの予測が行われたかを示す情報を含む。また、B_Subは、マクロブロックを４分割した画素ブロックの各々に対して上記処理を行うことを意味する。例えば、符号化対象ブロックが６４×６４画素マクロブロックである場合、符号化対象ブロックは、このマクロブロックを４分割して得られる４つの３２×３２画素ブロック毎に、mb_typeをさらに割り当てられて符号化される。
【００９９】
ここで、stds_idxが示す選択ブロックがSpatial Left（符号化対象ブロックの左側に隣接する画素ブロック）である場合には、符号化対象ブロックの左側に隣接する画素ブロックの動き情報を符号化対象ブロックの動き情報とするので、stds_idxは、図２４Ａのmb_type=4,6,8,10,12,14,16,18,20が示す横長の長方形ブロックを使用して、符号化対象ブロックに対して予測を実行することと等しい意味を持つ。また、stds_idxが示す選択ブロックがSpatial Upの場合には、符号化対象ブロックの上側に隣接する動き情報を符号化対象ブロックの動き情報とするので、stds_idxは、図２４Ａのmb_type=5,7,9,11,13,15,17,19,21が示す縦長の長方形ブロックで予測を実行することと等しい意味を持つ。従って、stds_idxを利用することにより、図２４Ｂに示すような図２４Ａのmb_type=4〜21の欄を削減した符号表を作成することが可能である。同様に、図２４Ｃに示すＨ．２６４におけるＰスライス時のmb_type及びmb_typeに対応する符号表に関しても、図２４Ｄに示すようなmb_typeの数を削減した符号表を作成することが可能である。
【０１００】
また、stds_idxの情報をmb_typeの情報に含めて符号化しても構わない。図２５Ａは、stds_idxの情報をmb_typeの情報に含めた場合の符号表であって、Ｂスライスにおけるmb_type及びmb_typeに対応する符号表の一例を示している。図２５ＡのB_STDS_X(X=0,1,2)は、stds_idxに相当するモードを示し、利用可能ブロック数の分だけB_STDS_Xが追加される（図２５Ａでは、利用可能ブロック数は３である）。同様にＰスライスに関するmb_typeの他の例を図２５Ｂに示す。図２５Ｂの説明は、Ｂスライスと同様であるために省略する。
【０１０１】
mb_typeの順序及び２値化方法(bin化)は、図２５Ａ及び図２５Ｂに示す例に限られず、他の順序及び２値化方法に従ってmb_typeが符号化されても構わない。B_STDS_X及びP_STDS_Xは、連続している必要はなく、各mb_typeの間に配置されていても構わない。また、２値化方法(bin化)は、予め学習された選択頻度に基づいて設計しても構わない。
【０１０２】
本実施形態では、マクロブロックを複数個まとめて動き補償予測を行う拡張マクロブロックにおいても、本発明は適応可能である。また、本実施形態では、符号化のスキャン順についてはどのような順序でも構わない。例えば、ラインスキャン又はＺスキャンなどに対しても、本発明は適応可能である。
【０１０３】
以上のように、本実施形態に係る画像符号化装置は、複数の動き参照ブロックから利用可能ブロックを選択し、選択した利用可能ブロックの数に応じて、符号化対象ブロックに適用する動き参照ブロックを特定するための情報を生成し、この情報を符号化している。従って、本実施形態に係る画像符号化装置によれば、動きベクトル情報に関する符号量を削減しながらも、符号化対象ブロックよりも細かな小画素ブロック単位で動き補償を行えるため、高い符号化効率を実現することができる。
【０１０４】
（第２の実施形態）  
図２６は、本発明の第２の実施形態に係る画像符号化装置を示している。第２の実施形態では、第１の実施形態と異なる部分及び動作について主に説明する。本実施形態に係る画像符号化部２００は、図２６に示されるように、第１の実施形態とは予測部２０１及び可変長符号化部２０４の構成が異なる。予測部２０１は、図２７に示すように、第１予測部１０１及び第２予測部２０２を備え、これら第１及び第２予測部１０１、２０２を選択的に切り替えて予測画像信号１１を生成する。第１予測部１０１は、第１の実施形態に係る予測部１０１（図１）と同じ構成を有し、選択ブロックが有する動き情報１８を用いて動き補償する予測方式（第１予測方式）に従って、予測画像信号１１を生成する。第２予測部２０２は、符号化対象ブロックに対して、１つの動きベクトルを用いて動き補償する、Ｈ．２６４のような予測方式（第２予測方式）に従って、予測画像信号１１を生成する。第２予測部２０２は、入力画像信号１０及びフレームメモリからの参照画像信号１７を使用して、予測画像信号１１Ｂを生成する。
【０１０５】
図２８は、第２予測部２０２の構成を概略的に示している。第２予測部２０２は、図２８に示されるように、入力画像信号１０及び参照画像信号１７を使用して動き情報２１を生成する動き情報取得部２０５、並びに、参照画像信号１７及び動き情報２１を使用して予測画像信号１１Ａを生成する動き補償部１１３（図１）を備えている。この動き情報取得部２０５は、入力画像信号１０及び参照画像信号１７に基づいて、例えばブロックマッチングによって、符号化対象ブロックに割り当てるべき動きベクトルを求める。マッチングの評価基準としては、入力画像信号１０とマッチング後の補間画像との差分を画素毎に累積した値を用いる。
【０１０６】
なお、動き情報取得部２０５は、予測画像信号１１と入力画像信号１０との差分を変換した値を使用して、最適な動きベクトルを決定しても構わない。また、動きベクトルの大きさ、並びに、動きベクトル及び参照フレーム番号の符号量を考慮して、或いは、数式１を使用して最適な動きベクトルが決定されても構わない。マッチング方法は、画像符号化装置の外部から提供される探索範囲情報に基づいて実行されてもよく、画素精度毎に階層的に実行されても構わない。また、探索処理を行わず、符号化制御部１５０によって与えられた動き情報を動き情報取得部２０５の出力２１としても構わない。
【０１０７】
図２７の予測部１０１は、第１予測部１０１からの予測画像信号１１Ａ及び第２予測部２０２からの予測画像信号１１Ｂのいずれか一方を選択して出力する予測方法切替スイッチ２０３をさらに備えている。例えば、予測方法切替スイッチ２０３は、予測画像信号１１Ａ及び１１Ｂ毎に、入力画像信号１０を使用して、例えば数式１に従って、符号化コストを求め、符号化コストがより小さくなるように、予測画像信号１１Ａ及び１１Ｂのいずれか一方を選択して予測画像信号１１として出力する。さらに、予測方法切替スイッチ２０３は、動き情報１８及び選択ブロック情報３１とともに、出力した予測画像信号１１が第１予測部１０１及び第２予測部２０２のいずれかから出力されたものかを示す予測切替情報３２も出力する。出力された動き情報１８は、可変長符号化部２０４によって符号化された後、符号化データ１４に多重化される。
【０１０８】
図２９は、可変長符号化部２０４の構成を概略的に示している。図２９に示した可変長符号化部２０４は、図１８に示した可変長符号化部１０４の構成に加えて、動き情報符号化部２１７を備えている。また、図２９の選択ブロック符号化部２１６は、図１８の選択ブロック符号化部１１６と異なり、予測切替情報３２を符号化して、符号化データ１４Ｄを生成する。予測処理を第１予測部１０１が実行した場合には、選択ブロック符号化部２１６は、利用可能ブロック情報３０及び選択ブロック情報３１をさらに符号化する。符号化された利用可能ブロック情報３０及び選択ブロック情報３１は、符号化データ１４Ｄに含まれる。予測処理を第２予測部２０２が実行した場合には、動き情報符号化部２１７が動き情報１８を符号化し、符号化データ１４Ｅを生成する。選択ブロック符号化部２１６及び動き情報符号化部２１７は、各々、予測画像が選択ブロックの動き情報を用いた動き補償予測により生成されたかどうかを示す予測切替情報３２に基づいて、予測処理を第１予測部１０１及び第２予測部２０２のどちらが実行されたかを判定する。
【０１０９】
多重化部１１７は、パラメータ符号化部１１４、変換係数符号化部１１５、選択ブロック符号化部２１６及び動き情報符号化部から符号化データ１４Ａ，Ｂ，Ｄ，Ｅを受け取り、受け取った符号化データ１４Ａ，Ｂ，Ｄ，Ｅを多重化する。
【０１１０】
図３０Ａ及び図３０Ｂは、各々、本実施形態に係るマクロブロックレイヤーシンタクスの例を示している。図３０Ａに示されるavailable_block_numは、利用可能ブロックの数を示し、これが１より大きい値の場合、選択ブロック符号化部２１６は、選択ブロック情報３１を符号化する。また、stds_flagは、動き補償予測において選択ブロックの動き情報を符号化対象ブロックの動き情報として使用したか否かを示すフラグ、即ち、予測方法切替スイッチ２０３が第１予測部１０１及び第２予測部２０２のどちらを選択したかを示すフラグである。利用可能ブロックの数が１より大きく、かつ、stds_flagが１である場合、選択ブロックが有する動き情報を動き補償予測に使用したことを示す。また、stds_flagが０の場合、選択ブロックが有する動き情報を利用せずに、Ｈ．２６４と同様に動き情報１８の情報を直接もしくは予測した差分値を符号化する。さらに、stds_idxは、選択ブロック情報を示しており、利用可能ブロック数に応じた符号表は、前述したとおりである。
【０１１１】
図３０Ａは、mb_typeの後に選択ブロック情報を符号化する場合のシンタクスを示している。mb_typeが示すモードが定められたサイズや定められたモードの場合にのみ、stds_flag及びstds_idxを符号化する。例えば、選択ブロックの動き情報が利用可能となるのが、ブロックサイズが６４×６４、３２×３２、１６×１６の場合や、ダイレクトモードの場合に、stds_flag及びstds_idxを符号化する。
【０１１２】
図３０Ｂは、mb_typeの前に選択ブロック情報を符号化する場合のシンタクスを示している。例えばstds_flagが１である場合、mb_typeは符号化される必要はない。stds_flagが０である場合、mb_typeは符号化される。
【０１１３】
以上のように、第２の実施形態に係る画像符号化装置は、符号化コストが小さくなるように、第１の実施形態に係る第1予測部１０１と、H.264等の予測方式を利用する第２予測部２０２とを、選択的に切り替えて、入力画像信号を圧縮符号化している。従って、第２の実施形態に係る画像符号化装置においては、第1の実施形態の画像符号化装置より符号化効率が向上している。
【０１１４】
（第３の実施形態）  
図３１は、第３の実施形態に係る画像復号化装置を概略的に示している。この画像復号化装置は、図３１に示されるように、画像復号化部３００、復号化制御部３５０及び出力バッファ３０８を備えている。画像復号化部３００は、復号化制御部３５０により制御される。第３の実施形態に係る画像復号化装置は、第１の実施形態に係る画像符号化装置に対応する。即ち、図３１の画像復号化装置による復号処理は、図１の画像符号化処理による符号化処理と相補的な関係を有している。図３１の画像復号化装置は、ＬＳＩチップなどのハードウェアにより実現されてもよく、或いは、コンピュータに画像復号化プログラムを実行させることにより実現されても構わない。
【０１１５】
図３１の画像復号化装置は、符号化列復号化部３０１、逆量子化・逆変換部３０２、加算器３０３、フレームメモリ３０４、予測部３０５、動き情報メモリ３０６及び利用可能ブロック取得部３０７を備えている。画像復号化部３００において、図示しない蓄積系又は伝送系からの符号化データ８０は、符号化列復号化部３０１に入力される。この符号化データ８０は、例えば、図１の画像符号化装置から多重化された状態で送出された符号化データ１４に対応する。
【０１１６】
本実施形態では、復号化対象である画素ブロック（例えば、マクロブロック）を単に復号化対象ブロックと称す。また、復号化対象ブロックを含む画像フレームを復号化対象フレームと称す。
【０１１７】
符号化列復号化部３０１では、１フレーム又は１フィールド毎に、シンタクスに基づいて、構文解析による解読が行われる。具体的には、符号化列復号化部３０１は、各シンタクスの符号列を順次、可変長復号化し、変換係数情報３３、選択ブロック情報６１、並びにブロックサイズ情報及び予測モード情報などの予測情報を含む、復号化対象ブロックに関する符号化パラメータなどを復号する。
【０１１８】
本実施形態において、復号化パラメータは、変換係数３３、選択ブロック情報６１及び予測情報を含み、変換係数に関する情報、量子化に関する情報などの復号の際に必要になるあらゆるパラメータを含む。予測情報、変換係数に関する情報、及び量子化に関する情報は、制御情報７１として復号化制御部３５０へ入力される。復号化制御部３５０は、予測情報及び量子化パラメータなどの復号化に必要なパラメータを含む復号化制御情報７０を、画像復号化部３００の各部に与える。
【０１１９】
さらに、符号化列復号化部３０１は、後に説明するように、符号化データ８０を同時に復号化して、予測情報及び選択ブロック情報６１を得る。動きベクトル及び参照フレーム番号を含む動き情報３８は、復号化されなくても構わない。
【０１２０】
符号化列復号化部３０１によって解読された変換係数３３は、逆量子化・逆変換部３０２へ送られる。符号化列復号化部３０１によって解読された量子化に関する種々の情報、即ち、量子化パラメータ及び量子化マトリクスは、復号化制御部３５０に与えられ、逆量子化する際に逆量子化・逆変換部３０２にロードされる。逆量子化・逆変換部３０２は、ロードされた量子化に関する情報に従って、変換係数３３を逆量子化し、続いて逆変換処理（例えば、逆離散コサイン変換など）を施して、予測誤差信号３４を得る。図３１の逆量子化・逆変換部３０２による逆変換処理は、図１の変換・量子化部による変換処理の逆変換である。例えば、画像符号化装置（図１）によりウェーブレット変換が施される場合、逆量子化・逆変換部３０２は、対応する逆量子化及び逆ウェーブレット変換を実行する。
【０１２１】
逆量子化・逆変換部３０２によって復元された予測誤差信号３４は、加算器３０３へ入力される。加算器３０３は、予測誤差信号３４と、後述する予測部３０５で生成された予測画像信号３５と加算して、復号画像信号３６を生成する。生成された復号画像信号３６は、画像復号化部３００から出力されて、出力バッファ３０８に一旦蓄積された後、復号化制御部３５０が管理する出力タイミングに従って、出力される。また、この復号画像信号３６は、フレームメモリ３０４に参照画像信号３７として格納される。参照画像信号３７は、フレームメモリ３０４から、フレーム毎或いはフィールド毎に順次読み出され、予測部３０５へ入力される。
【０１２２】
利用可能ブロック取得部３０７は、後述する動き情報メモリ３０６から参照動き情報３９を受け取り、利用可能ブロック情報６０を出力する。利用可能ブロック取得部３０７の動作は、第１の実施形態で説明した利用可能ブロック取得部１０９（図１）と同様である。
【０１２３】
動き情報メモリ３０６は、予測部３０５から動き情報３８を受け取り、参照動き情報３９として一時的に格納する。動き情報メモリ３０６は、予測部３０５から出力された動き情報３８を参照動き情報３９として一時保存する。図４は、動き情報メモリ３０６の一例を示す。動き情報メモリ３０６は、符号化時間の異なる複数の動き情報フレーム２６を保持している。復号化が終了した動き情報３８又は動き情報３８の群は、参照動き情報３９として復号化時間に対応した動き情報フレーム２６に保存される。動き情報フレーム２６では、参照動き情報３９は、例えば４×４画素ブロック単位で保存されている。動き情報メモリ３０６が保持している参照動き情報３９は、予測部３０５によって、復号化対象ブロックの動き情報３８を生成する際に読み出され参照される。
【０１２４】
次に、本実施形態に係る動き参照ブロック及び利用可能ブロックを説明する。動き参照ブロックは、既に復号化済みの領域の中から前述の画像符号化装置及び画像復号化装置によって予め定められた方法に従って選択される候補ブロックである。図８Ａは、利用可能ブロックに関する一例を示している。図８Ａでは、復号化対象フレーム内の４つの動き参照ブロック及び参照フレーム内の５つの動き参照ブロックの、合計９つの動き参照ブロックが配置されている。図８Ａの復号化対象フレーム内の動き参照ブロックＡ，Ｂ，Ｃ，Ｄは、復号化対象ブロックに対して、左、上、右上、左上に隣接するブロックである。本実施形態では、復号化対象ブロックを含む復号化対象フレームの中から選択された動き参照ブロックを、空間方向動き参照ブロックと称す。また、参照フレーム内の動き参照ブロックＴＡは、参照フレーム内の、復号化対象ブロックと同じ位置の画素ブロックであり、この動き参照ブロックＴＡに接している画素ブロックＴＢ，ＴＣ，ＴＤ，ＴＥが動き参照ブロックとして選択される。参照フレーム内の画素ブロックの中から選択された動き参照ブロックを、時間方向動き参照ブロックと称す。また、時間方向動き参照ブロックが位置するフレームを動き参照フレームと称す。
【０１２５】
空間方向動き参照ブロックは、図８Ａに示される例に限らず、図８Ｂ示すように、復号化対象ブロックに隣接する画素ａ，ｂ，ｃ，ｄが属する画素ブロックが、空間方向動き参照ブロックとして選択されても構わない。この場合、復号化対象ブロック内の左上画素に対する画素ａ，ｂ，ｃ，ｄの相対位置（ｄｘ，ｄｙ）は、図８Ｃに示される。
【０１２６】
また、図８Ｄに示されるように、復号化対象ブロックに隣接するすべての画素ブロックＡ１〜Ａ４，Ｂ１，Ｂ２，Ｃ，Ｄが、空間方向動き参照ブロックとして選択されても構わない。図８Ｄでは、空間方向動き参照ブロックの数は８である。
【０１２７】
また、時間方向動き参照ブロックＴＡ〜ＴＥは、図８Ｅに示すように、互いに部分的に重なり合っていてもよく、図８Ｆに示すように、各々が互いに離れていても構わない。また、時間方向動き参照ブロックは、必ずしもＣｏｌｌｏｃａｔｅ位置のブロック及びその周囲に位置する必要はなく、動き参照フレーム内であればいずれの位置の画素ブロックであっても構わない。例えば、復号化対象ブロックに隣接する既に復号化済みのブロックの動き情報を利用して、動き情報に含まれる動きベクトルが指し示す参照ブロックを動き参照ブロックの中心（例えば、ブロックＴＡ）として選択しても構わない。さらに、時間方向の参照ブロックは、等間隔に配置されていなくても構わない。
【０１２８】
上述したような動き参照ブロックを選択する方法においては、画像復号化装置及び画像復号化装置の両方で空間方向及び時間方向動き参照ブロックの数及び位置に関する情報を共有していれば、動き参照ブロックがいずれの数及び位置から選択されても構わない。また、動き参照ブロックのサイズは、必ずしも復号化対象ブロックと同じサイズである必要はない。例えば図８Ｄに示すように、動き参照ブロックのサイズが復号化対象ブロックのサイズよりも大きくてもよく、小さくてもよく、任意のサイズであっても構わない。また、動き参照ブロックの形状は、正方形状に限らず、長方形状であっても構わない。
【０１２９】
次に、利用可能ブロックについて説明する。利用可能ブロックは、動き参照ブロックの中から選択された画素ブロックであって、復号化対象ブロックへ動き情報を適用可能な画素ブロックである。利用可能ブロックは、互いに異なる動き情報を有している。利用可能ブロックは、例えば図８Ａに示されるような復号化対象フレーム及び参照フレーム内の合計９つの動き参照ブロックに対して、図９に示す利用可能ブロック判定処理を実行することによって、選択される。図１０は、図９に示す利用可能ブロック判定処理を実行した結果を示している。図１０では、斜線を施された画素ブロックが利用不可能ブロックを示し、白塗りのブロックが利用可能ブロックを示す。即ち、空間方向動き参照ブロックの中から２つ、時間方向動き参照ブロックの中から２つの、合計４つが利用可能ブロックとして判定されている。予測部３０５内の動き情報選択部３１４は、選択ブロック復号化部３２３から受け取った選択ブロック情報６１に従って、時間及び空間方向に配置されているこれらの利用可能ブロックの中から最適な１つ利用可能ブロックを選択ブロックとして選択する。
【０１３０】
次に、利用可能ブロック取得部３０７について説明する。利用可能ブロック取得部３０７は、第１の実施形態の利用可能ブロック取得部１０９と同一の機能を持ち、参照動き情報３９を動き情報メモリ３０６から取得し、動き参照ブロック毎に利用可能ブロック又は利用不可能ブロックを示す情報である利用可能ブロック情報６０を出力する。
【０１３１】
利用可能ブロック取得部３０７の動作を図９のフローチャートを参照して説明する。まず、利用可能ブロック取得部３０７は、動き参照ブロック（インデクスｐ）が動き情報を有するか否かを判定する（ステップＳ８０１）。即ち、ステップＳ８０１では、動き参照ブロックｐ内の少なくとも１つの小画素ブロックが動き情報を有しているか否かが判定される。動き参照ブロックｐが動き情報を有していないと判定された場合、即ち、時間方向動き参照ブロックが動き情報のないＩスライス内のブロックあるか、或いは、時間方向動き参照ブロック内の全ての小画素ブロックがイントラ予測復号化されている場合、ステップＳ８０５に進む。ステップＳ８０５において、この動き参照ブロックｐは、利用不可能ブロックと判定される。
【０１３２】
ステップＳ８０１で動き参照ブロックｐが動き情報を有すと判定された場合、利用可能ブロック取得部３０７は、既に利用可能ブロックと判定されている動き参照ブロックｑ（利用可能ブロックｑと称す）を選定する（ステップＳ８０２）。ここで、ｑはｐより小さい値である。続いて、利用可能ブロック取得部３０７は、全てのｑに対して、この動き参照ブロックｐの動き情報と、利用可能ブロックｑの動き情報とを比較して、動き参照ブロックｐが利用可能ブロックｑと同一の動き情報を有しているか否かを判定する（Ｓ８０３）。動き参照ブロックｐが利用可能ブロックｑと同一の動きベクトルを有している場合、ステップＳ８０５に進み、ステップＳ８０５において、この動き参照ブロックｐは、利用可能ブロック取得部３０７によって、利用不可能ブロックと判定される。動き参照ブロックｐが全ての利用可能ブロックｑと異なる動き情報を有している場合、ステップＳ８０４において、この動き参照ブロックｐは、利用可能ブロック取得部３０７によって、利用可能ブロックと判定される。
【０１３３】
上述した利用可能ブロック判定処理を全ての動き参照ブロックに対して実行することにより、動き参照ブロック毎に利用可能ブロックか利用不可能ブロックかが判定され、利用可能ブロック情報６０が生成される。利用可能ブロック情報６０の一例が、図１１に示されている。利用可能ブロック情報６０は、図１１に示されるように、動き参照ブロックのインデクスｐ及び利用可能性を含む。図１１では、利用可能ブロック情報６０は、インデクスｐが０，１，５及び８である動き参照ブロックが利用可能ブロックとして選択されたことを示し、利用可能ブロックの数は４である。
【０１３４】
なお、図９のステップＳ８０１において、時間方向動き参照ブロックｐ内のブロックのうちの少なくとも１つがイントラ予測符号化されたブロックであった場合、利用可能ブロック取得部３０７は、動き参照ブロックｐを利用不可能ブロックと判定しても構わない。即ち、時間方向動き参照ブロックｐ内の全てのブロックがインター予測で符号化されている場合のみ、ステップＳ８０２に進むようにしても構わない。
【０１３５】
図１２Ａから図１２Ｅは、ステップＳ８０３の動き情報３８の比較において、動き参照ブロックｐの動き情報３８と、利用可能ブロックｑの動き情報３８とが同一であると判定される例を示す。図１２Ａから図１２Ｅには、各々、斜線が施された複数のブロックと、２つの白塗りのブロックとが示されている。図１２Ａから図１２Ｅでは、説明を簡単にするために、斜線が施されたブロックを考慮せずに、これらの２つの白塗りのブロックの動き情報３８を比較する場合を想定している。２つの白塗りのブロックの一方が、動き参照ブロックｐであり、他方が既に利用可能と判定されている動き参照ブロックｑ（利用可能ブロックｑ）であるものとする。特に断りのない限り、２つの白色ブロックのいずれが動き参照ブロックｐであっても構わない。
【０１３６】
図１２Ａは、動き参照ブロックｐ及び利用可能ブロックｑの両方が空間方向のブロックである例を示している。図１２Ａの例では、ブロックＡ及びＢの動き情報３８が同一であれば、動き情報３８が同一であると判定される。このとき、ブロックＡ及びＢのサイズが同一である必要はない。
【０１３７】
図１２Ｂは、動き参照ブロックｐ及び利用可能ブロックｑの一方が空間方向のブロックＡであり、他方が時間方向のブロックＴＢである例を示している。図１２Ｂでは、時間方向のブロックＴＢ内に動き情報を有するブロックが１つある。時間方向のブロックＴＢの動き情報３８と空間方向のブロックＡの動き情報３８とが同一であれば、動き情報３８が同一であると判定される。このとき、ブロックＡ及びＴＢのサイズが同一である必要はない。
【０１３８】
図１２Ｃは、動き参照ブロックｐ及び利用可能ブロックｑの一方が空間方向のブロックＡであり、他方が時間方向のブロックＴＢである他の例を示している。図１２Ｃは、時間方向のブロックＴＢが複数の小ブロックに分割されていて、動き情報３８を有する小ブロックが複数ある場合を示している。図１２Ｃの例では、動き情報３８を有する全てのブロックが同じ動き情報３８を有し、その動き情報３８が空間方向のブロックＡの動き情報３８と同一であれば、動き情報３８が同一であると判定される。このとき、ブロックＡ及びＴＢのサイズが同一である必要はない。
【０１３９】
図１２Ｄは、動き参照ブロックｐ及び利用可能ブロックｑがともに時間方向のブロックである例を示している。この場合、ブロックＴＢ及びＴＥの動き情報３８が同一であれば、動き情報３８が同一であると判定される。
【０１４０】
図１２Ｅは、動き参照ブロックｐ及び利用可能ブロックｑがともに時間方向のブロックである他の例を示している。図１２Ｅは、時間方向のブロックＴＢ及びＴＥが各々複数の小ブロックに分割されていて、各々に動き情報３８を有する小ブロックが複数ある場合を示している。この場合、ブロック内の小ブロック毎に動き情報３８を比較して、全ての小ブロックに対し動き情報３８が同一であれば、ブロックＴＢの動き情報３８とブロックＴＥの動き情報３８とが同一であると判定される。
【０１４１】
図１２Ｆは、動き参照ブロックｐ及び利用可能ブロックｑがともに時間方向のブロックであるさらに他の例を示している。図１２Ｆは、時間方向のブロックＴＥが複数の小ブロックに分割されていて、ブロックＴＥに動き情報３８を有する小ブロックが複数ある場合を示している。ブロックＴＥの全ての動き情報３８が同一の動き情報３８であり、且つ、ブロックＴＤが有する動き情報３８と同一である場合、ブロックＴＤとＴＥの動き情報３８が同一であると判定される。
【０１４２】
このようにして、ステップＳ８０３では、動き参照ブロックｐの動き情報３８と利用可能ブロックｑの動き情報３８とが同一であるか否かが判定される。図１２Ａから図１２Ｆの例では、動き参照ブロックｐと比較する利用可能ブロックｑの数を１として説明したが、利用可能ブロックｑの数が２以上の場合においては、動き参照ブロックｐの動き情報３８と、各々の利用可能ブロックｑの動き情報３８とを比較しても構わない。また、後述するスケーリングを適用する場合、スケーリング後の動き情報３８が上記説明の動き情報３８となる。
【０１４３】
なお、動き参照ブロックｐの動き情報と利用可能ブロックｑの動き情報とが同一であるという判定は、動き情報に含まれる各動きベクトルが完全に一致する場合に限定されることはない。例えば、２つの動きベクトルの差のノルムが所定の範囲内であれば、動き参照ブロックｐの動き情報と利用可能ブロックｑの動き情報とが実質的に同一であるとみなしても構わない。
【０１４４】
図３２は、符号化列復号化部３０１をより詳細に示すブロック図である。符号化列復号化部３０１は、図３２に示されるように、符号化データ８０をシンタクス単位に分離する分離部３２０、変換係数を復号化する変換係数復号化部３２２、選択ブロック情報を復号化する選択ブロック復号化部３２３、並びに、予測ブロックサイズ及び量子化に関するパラメータなどを復号化するパラメータ復号化部３２１を備えている。
【０１４５】
パラメータ復号化部３２１は、分離部から、予測ブロックサイズ及び量子化に関するパラメータを含む符号化データ８０Ａを受け取り、符号化データ８０Ａを復号化して制御情報７１を生成する。変換係数復号化部３２２は、分離部３２０から、符号化されている変換係数８０Ｂを受け取り、この符号化されている変換係数８０Ｂを復号化し、変換係数情報３３を得る。選択ブロック復号化部３２３は、選択ブロックに関する符号化データ８０Ｃ及び利用可能ブロック情報６０を入力として、選択ブロック情報６１を出力する。入力の利用可能ブロック情報６０は、図１１に示すように、動き参照ブロック毎の利用可能性を示す。
【０１４６】
次に、図３３を参照して、予測部３０５を詳細に説明する。  
予測部３０５は、図３３に示すように、動き情報選択部３１４及び動き補償部３１３を備え、動き情報選択部３１４は、空間方向動き情報取得部３１０、時間方向動き情報取得部３１１及び動き情報切替スイッチ３１２を備える。予測部３０５は、基本的には、第１の実施形態で説明した予測部１０１と同一の構成及び機能を持つ。
【０１４７】
予測部３０５は、利用可能ブロック情報６０、選択ブロック情報６１、参照動き情報３９及び参照画像信号３７を入力として、予測画像信号３５及び動き情報３８を出力する。空間方向動き情報取得部３１０及び時間方向動き情報取得部３１１は、夫々第１の実施形態で説明した空間方向動き情報取得部１１０及び時間方向動き情報取得部１１１と同一の機能を持つ。空間方向動き情報取得部３１０は、利用可能ブロック情報６０及び参照動き情報３９を使用して、空間方向に位置する各利用可能ブロックの動き情報及びインデクスを含む動き情報３８Ａを生成する。時間方向動き情報取得部３１１は、利用可能ブロック情報６０及び参照動き情報３９を使用して、時間方向に位置する各利用可能ブロックの動き情報及びインデクスを含む動き情報（又は、動き情報の群）３８Ｂを生成する。
【０１４８】
動き情報切替スイッチ３１２では、選択ブロック情報６１に従って、空間方向動き情報取得部３１０からの動き情報３８Ａ及び時間方向動き情報取得部３１１からの動き情報（又は、動き情報の群）３８Ｂの中から１つを選択し、動き情報３８を得る。選択された動き情報３８は、動き補償部３１３及び動き情報メモリ３０６へ送られる。動き補償部３１３は、選択された動き情報３８に従って、第１の実施形態で説明した動き補償部１１３と同様に動き補償予測を行い、予測画像信号３５を生成する。
【０１４９】
動き補償部３１３の動きベクトルのスケーリング機能においては、第１の実施形態に説明したものと同様であるので説明を省略する。
【０１５０】
図２２は、画像復号化部３００におけるシンタクス構造を示している。図２２に示されるように、シンタクスは、主に３つのパート、即ち、ハイレベルシンタクス９０１、スライスレベルシンタクス９０４及びマクロブロックレベルシンタクス９０７を含む。ハイレベルシンタクス９０１は、スライス以上の上位レイヤのシンタクス情報を保持している。スライスレベルシンタクス９０４は、スライス毎に必要な情報を保持し、マクロブロックレベルシンタクス９０７は、図７Ａから図７Ｄに示されるマクロブロック毎に必要とされるデータを保持している。
【０１５１】
各パートは、さらに詳細なシンタクスを含む。ハイレベルシンタクス９０１は、シーケンスパラメータセットシンタクス９０２及びピクチャパラメータセットシンタクス９０３などのシーケンス及びピクチャレベルのシンタクスを含む。スライスレベルシンタクス９０４は、スライスヘッダーシンタクス９０５及びスライスデータシンタクス９０６などを含む。さらに、マクロブロックレベルシンタクス９０７は、マクロブロックレイヤーシンタクス９０８及びマクロブロックプレディクションシンタクス９０９などを含む。
【０１５２】
図２３Ａ及び図２３Ｂは、マクロブロックレイヤーシンタクスの例を示している。図２３Ａ及び図２３Ｂに示すavailable_block_numは、利用可能ブロックの数を示しており、これが１より大きい値の場合は、選択ブロック情報の復号化が必要となる。さらに、stds_idxは、選択ブロック情報を示しており、前述した利用可能ブロック数に応じた符号表を用いてstds_idxを符号化する。
【０１５３】
図２３Ａは、mb_typeの後に選択ブロック情報を復号化する場合のシンタクスを示している。mb_typeが示す予測モードが定められたサイズや定められたモード(TARGET_MODE)の場合で、かつavailable_block_numが１より大きい値の場合に、stds_idxを復号化する。例えば、選択ブロックの動き情報が利用可能となるのが、ブロックサイズが６４×６４画素、３２×３２画素、１６×１６画素の場合や、ダイレクトモードの場合にstds_idxを符号化する。
【０１５４】
図２３Ｂは、mb_typeの前に選択ブロック情報を復号化する場合のシンタクスを示している。available_block_numが１より大きい値の場合に、stds_idxを復号化する。また、available_block_num が０ならば、Ｈ．２６４に代表される従来の動き補償を行うのでmb_typeを符号化する。
【０１５５】
図２３Ａ及び図２３Ｂに示す表の行間には、本発明で規定していないシンタクス要素が挿入されることも可能であるし、それ以外の条件分岐に関する記述が含まれていても構わない。或いは、シンタクステーブルを複数のテーブルに分割、統合することも可能である。また、必ずしも同一の用語を用いる必要は無く、利用する形態によって任意に変更しても構わない。更に、当該マクロブロックレイヤーシンタクスに記述されている各々のシンタクスエレメントは、後述するマクロブロックデータシンタクスに明記されるように変更しても構わない。
【０１５６】
以上のように、本実施形態に係る画像復号化装置は、前述した第１の実施形態に係る画像符号化装置によって符号化された画像を復号化している。従って、本実施形態に係る画像復号化は、比較的小さな符号化データから高画質な復号画像を再生することができる。
【０１５７】
（第４の実施形態）  
図３４は、第４の実施形態に係る画像復号化装置を概略的に示している。画像復号化装置は、図３４に示されるように、画像復号化部４００、復号化制御部３５０及び出力バッファ３０８を備える。第４の実施形態に係る画像復号化装置は、第２の実施形態に係る画像符号化装置に対応する。第４の実施形態では、第３の実施形態と異なる部分及び動作について主に説明する。本実施形態に係る画像復号化部４００は、図３４に示されるように、第３の実施形態とは符号化列復号化部４０１及び予測部４０５が異なる。
【０１５８】
本実施の形態の予測部４０５は、選択ブロックが有する動き情報を用いて動き補償する予測方式（第１予測方式）と、Ｈ．２６４のような、復号化対象ブロックに対して１つの動きベクトルを用いて動き補償する予測方式（第２予測方式）と、を選択的に切り替えて、予測画像信号３５を生成する。
【０１５９】
図３５は、符号化列復号化部４０１をより詳細に示すブロック図である。図３５に示す符号化列復号化部４０１は、図３２に示す符号化列復号化部３０１の構成に加えて、動き情報復号化部４２４を備えている。また、図３５に示した選択ブロック復号化部４２３は、図３２に示した選択ブロック復号化部３２３と異なり、選択ブロックに関する符号化データ８０Ｃを復号化して、予測切替情報６２を得る。予測切替情報６２は、図１の画像符号化装置内の予測部１０１が第１及び第２予測方式のどちらを使用したかを示す。予測部１０１が第１予測方式を使用したことを予測切替情報６２が示す場合、即ち、復号化対象ブロックが第１予測方式で符号化されている場合、選択ブロック復号化部４２３は、符号化データ８０Ｃ中の選択ブロック情報を復号化して、選択ブロック情報６１を得る。予測部１０１が第２予測方式を使用したことを予測切替情報６２が示す場合、即ち、復号化対象ブロックが第２予測方式で符号化されている場合、選択ブロック復号化部４２３は選択ブロック情報を復号化せずに、動き情報復号化部４２４が符号化されている動き情報８０Ｄを復号化し、動き情報４０を得る。
【０１６０】
図３６は、予測部４０５をより詳細に示すブロック図である。図３４に示した予測部４０５は、第１予測部３０５、第２予測部４１０及び予測方法切替スイッチ４１１を備えている。第２予測部４１０は、符号化列復号化部４０１によって復号化された動き情報４０及び参照画像信号３７を用いて、図３３の動き補償部３１３と同様の動き補償予測を行い、予測画像信号３５Ｂを生成する。第１予測部３０５は、第３の実施形態で説明した予測部３０５と同じであり、予測画像信号３５Ｂを生成する。また、予測方法切替スイッチ４１１は、予測切替情報６２に基づいて、第２予測部４１０からの予測画像信号３５Ｂ及び第１予測部３０５からの予測画像信号３５Ａのうちのいずれか一方を選択して予測部４０５の予測画像信号３５として出力する。同時に、予測方法切替スイッチ４１１は、選択された第1予測部３０５若しくは第２予測部４１０で用いられた動き情報を動き情報３８として動き情報メモリ３０６に送る。
【０１６１】
次に、本実施の形態に関するシンタクス構造について、第３の実施形態と異なる点を主に説明する。
【０１６２】
図３０Ａ及び図３０Ｂは、各々、本実施形態に係るマクロブロックレイヤーシンタクスの例を示している。図３０Ａに示されるavailable_block_numは、利用可能ブロックの数を示し、これが１より大きい値の場合、選択ブロック復号化部４２３は、符号化データ８０Ｃ中の選択ブロック情報を復号化する。また、stds_flagは、動き補償予測において選択ブロックの動き情報を復号化対象ブロックの動き情報として使用したか否かを示すフラグ、即ち、予測方法切替スイッチ４１１が第１予測部３０５及び第２予測部４１０のどちらを選択したかを示すフラグである。利用可能ブロックの数が１より大きく、かつ、stds_flagが１である場合、選択ブロックが有する動き情報を動き補償予測に使用したことを示す。また、stds_flagが０の場合、選択ブロックが有する動き情報を利用せずに、Ｈ．２６４と同様に動き情報の情報を直接もしくは予測した差分値を符号化する。さらに、stds_idxは、選択ブロック情報を示しており、利用可能ブロック数に応じた符号表は、前述したとおりである。
【０１６３】
図３０Ａは、mb_typeの後に選択ブロック情報を復号化する場合のシンタクスを示している。mb_typeが示す予測モードが定められたブロックサイズや定められたモードの場合にのみ、stds_flag及びstds_idxを復号化する。例えば、ブロックサイズが６４×６４、３２×３２、１６×１６である場合、或いは、ダイレクトモードの場合、stds_flag及びstds_idxを復号化する。
【０１６４】
図３０Ｂは、mb_typeの前に選択ブロック情報を復号化する場合のシンタクスを示している。例えばstds_flagが１である場合、mb_typeは復号化される必要はない。stds_flag が０である場合、mb_typeは復号化される。
【０１６５】
以上のように、本実施形態に係る画像復号化装置は、前述した第２の実施形態に係る画像符号化装置によって符号化された画像を復号化している。従って、本実施形態に係る画像復号化は、比較的小さな符号化データから高画質な復号画像を再生することができる。
【０１６６】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除しても構わない。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても構わない。
【０１６７】
この一例として、上述した第１から第４の実施形態を次のように変形しても同様の効果が得られる。
【０１６８】
（１）第１から第４の実施形態では、処理対象フレームを１６×１６画素ブロックなどの矩形ブロックに分割し、図４に示したような画面左上の画素ブロックから右下の画素ブロックに向かう順序で、符号化又は復号化する場合を例にとって説明しているが、符号化又は復号化順序は、この例に制限されることはない。例えば、符号化又は復号化順序は、画面右下から左上に向かう順序でもよく、右上から左下に向かう順序でも構わない。また、符号化又は復号化順序は、画面の中央部から周辺部に渦巻状に向かう順序であってもよく、画面の周辺部から中心部に向かう順序であっても構わない。
【０１６９】
（２）第１から第４の実施形態では、輝度信号と色差信号とを分割せず、一方の色信号成分に限定した場合を例にとって説明している。しかしながら、輝度信号及び色差信号に対して、異なる予測処理を使用してもよく、或いは、同一の予測処理を使用しても構わない。異なる予測処理を使用する場合、色差信号に対して選択した予測方法を、輝度信号と同様の方法で符号化／復号化する。
【０１７０】
その他、本発明の要旨を逸脱しない範囲で種々の偏見を施しても同様に実施可能であることはいうまでもない。
【産業上の利用可能性】
【０１７１】
本発明に係る画像符号化／復号化方法は、符号化効率を向上させることができることから、産業上の利用可能性を有している。
【符号の説明】
【０１７２】
１０…入力画像信号、１１…予測画像信号、１２…予測誤差画像信号、１３…量子化変換係数、１４…符号化データ、１５…復号予測誤差信号、１６…局所復号画像信号、１７…参照画像信号、１８…動き情報、２０…ビットストリーム、２１…動き情報、２５，２６…情報フレーム、３０…利用可能ブロック情報、３１…選択ブロック情報、３２…予測切替情報、３３…変換係数情報、３４…予測誤差信号、３５…予測画像信号、３６…復号画像信号、３７…参照画像信号、３８…動き情報、３９…参照動き情報、４０…動き情報、５０…符号化制御情報、５１…フィードバック情報、６０…利用可能ブロック情報、６１…選択ブロック情報、６２…予測切替情報、７０…復号化制御情報、７１…制御情報、８０…符号化データ、１００…画像符号化部、１０１…予測部、１０２…減算器、１０３…変換・量子化部、１０４…可変長符号化部、１０５…逆量子化・逆変換部、１０６…加算器、１０７…フレームメモリ、１０８…情報メモリ、１０９…利用可能ブロック取得部、１１０…空間方向動き情報取得部、１１１…時間方向動き情報取得部、１１２…情報切替スイッチ、１１３…動き補償部、１１４…パラメータ符号化部、１１５…変換係数符号化部、１１６…選択ブロック符号化部、１１７…多重化部、１１８…動き情報選択部、１２０…出力バッファ、１５０…符号化制御部、２００…画像符号化部、２０１…予測部、２０２…第２予測部、２０３…予測方法切替スイッチ、２０４…可変長符号化部、２０５…動き情報取得部、２１６…選択ブロック符号化部、２１７…動き情報符号化部、３００…画像復号化部、３０１…符号化列復号化部、３０１…符号列復号部、３０２…逆量子化・逆変換部、３０３…加算器、３０４…フレームメモリ、３０５…予測部、３０６…情報メモリ、３０７…利用可能ブロック取得部、３０８…出力バッファ、３１０…空間方向動き情報取得部、３１１…時間方向動き情報取得部、３１２…動き情報切替スイッチ、３１３…動き補償部、３１４…情報選択部、３２０…分離部、３２１…パラメータ復号化部、３２２…変換係数復号化部、３２３…選択ブロック復号化部、３５０…復号化制御部、４００…画像復号化部、４０１…符号化列復号化部、４０５…予測部、４１０…第２予測部、４１１…予測方法切替スイッチ、４２３…選択ブロック復号化部、４２４…情報復号化部、９０１…ハイレベルシンタクス、９０２…シーケンスパラメータセットシンタクス、９０３…ピクチャパラメータセットシンタクス、９０４…スライスレベルシンタクス、９０５…スライスヘッダーシンタクス、９０６…スライスデータシンタクス、９０７…マクロブロックレベルシンタクス、９０８…マクロブロックレイヤーシンタクス、９０９…マクロブロックプレディクションシンタクス。
【図１】
2020025308.tif 000011
【図２Ａ】
2020025308.tif 000012
【図２Ｂ】
2020025308.tif 000013
【図３】
2020025308.tif 000014
【図４】
2020025308.tif 000015
【図５】
2020025308.tif 000016
【図６Ａ】
2020025308.tif 000017
【図６Ｂ】
2020025308.tif 000018
【図７Ａ】
2020025308.tif 000019
【図７Ｂ】
2020025308.tif 000020
【図７Ｃ】
2020025308.tif 000021
【図７Ｄ】
2020025308.tif 000022
【図８Ａ】
2020025308.tif 000023
【図８Ｂ】
2020025308.tif 000024
【図８Ｃ】
2020025308.tif 000025
【図８Ｄ】
2020025308.tif 000026
【図８Ｅ】
2020025308.tif 000027
【図８Ｆ】
2020025308.tif 000028
【図９】
2020025308.tif 000029
【図１０】
2020025308.tif 000030
【図１１】
2020025308.tif 000031
【図１２Ａ】
2020025308.tif 000032
【図１２Ｂ】
2020025308.tif 000033
【図１２Ｃ】
2020025308.tif 000034
【図１２Ｄ】
2020025308.tif 000035
【図１２Ｅ】
2020025308.tif 000036
【図１２Ｆ】
2020025308.tif 000037
【図１３】
2020025308.tif 000038
【図１４】
2020025308.tif 000039
【図１５】
2020025308.tif 000040
【図１６】
2020025308.tif 000041
【図１７】
2020025308.tif 000042
【図１８】
2020025308.tif 000043
【図１９】
2020025308.tif 000044
【図２０】
2020025308.tif 000045
【図２１】
2020025308.tif 000046
【図２２】
2020025308.tif 000047
【図２３Ａ】
2020025308.tif 000048
【図２３Ｂ】
2020025308.tif 000049
【図２４Ａ】
2020025308.tif 000050
【図２４Ｂ】
2020025308.tif 000051
【図２４Ｃ】
2020025308.tif 000052
【図２４Ｄ】
2020025308.tif 000053
【図２５Ａ】
2020025308.tif 000054
【図２５Ｂ】
2020025308.tif 000055
【図２６】
2020025308.tif 000056
【図２７】
2020025308.tif 000057
【図２８】
2020025308.tif 000058
【図２９】
2020025308.tif 000059
【図３０Ａ】
2020025308.tif 000060
【図３０Ｂ】
2020025308.tif 000061
【図３１】
2020025308.tif 000062
【図３２】
2020025308.tif 000063
【図３３】
2020025308.tif 000064
【図３４】
2020025308.tif 000065
【図３５】
2020025308.tif 000066
【図３６】
2020025308.tif 000067