(57)【特許請求の範囲】
【請求項１】
動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて符号化する画像符号化装置であって、
符号化対象ブロックの複数の参照ブロック候補の符号化情報を取得する取得部と、
インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報を用いる第１の画像間予測モードにおいて、第１の所定順位に基づいて前記複数の参照ブロック候補から第１の候補リストを生成し、前記第１の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックスを出力する第１のモード検出部と、
インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報に基づく予測動きベクトルと前記符号化対象ブロックの動きベクトルとの差分動きベクトルを用いる第２の画像間予測モードにおいて、第２の所定順位に基づいて前記複数の参照ブロック候補から第２の候補リストを生成し、前記第２の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックス及び前記差分動きベクトルを出力する第２のモード検出部と、
前記第１のモード検出部及び前記第２のモード検出部の出力結果をもとに、前記符号化対象ブロックごとの参照ブロックと画像間予測モードとを決定する予測方法決定部と、
前記予測方法決定部により決定された参照ブロックのインデックスと、前記予測方法決定部により決定された画像間予測モードを示す予測モード情報と、第２の画像間予測モードが決定された場合の参照ブロックに対応した前記差分動きベクトルとを符号化する符号列生成部と、
を備え、
前記第１のモード検出部及び前記第２のモード検出部は、前記複数の参照ブロック候補として、共通の複数のブロックを使用し、前記第１のモード検出部により生成される前記第１の候補リストに前記複数の参照ブロック候補を配列する為の前記第１の所定順位と、前記第２のモード検出部により生成される前記第２の候補リストに前記複数の参照ブロック候補を配列する為の前記第２の所定順位は異なる、
ことを特徴とする画像符号化装置。
【請求項２】
動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて符号化する画像符号化方法であって、
符号化対象ブロックの複数の参照ブロック候補の符号化情報を取得する第１ステップと、
インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報を用いる第１の画像間予測モードにおいて、第１の所定順位に基づいて前記複数の参照ブロック候補から第１の候補リストを生成し、前記第１の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックスを出力する第２ステップと、
インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報に基づく予測動きベクトルと前記符号化対象ブロックの動きベクトルとの差分動きベクトルを用いる第２の画像間予測モードにおいて、第２の所定順位に基づいて前記複数の参照ブロック候補から第２の候補リストを生成し、前記第２の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックス及び前記差分動きベクトルを出力する第３ステップと、
前記第２ステップ及び前記第３ステップにより出力される出力結果をもとに、前記符号化対象ブロックごとの参照ブロックと画像間予測モードとを決定する第４ステップと、
前記第４ステップにより決定された参照ブロックのインデックスと、前記第４ステップにより決定された画像間予測モードを示す予測モード情報と、第２の画像間予測モードが決定された場合の参照ブロックに対応した前記差分動きベクトルとを符号化する第５ステップと、
を有し、
前記第２ステップ及び前記第３ステップは、前記複数の参照ブロック候補として、共通の複数のブロックを使用し、前記第２ステップにより生成される前記第１の候補リストに前記複数の参照ブロック候補を配列する為の前記第１の所定順位と、前記第３ステップにより生成される前記第２の候補リストに前記複数の参照ブロック候補を配列する為の前記第２の所定順位は異なる、
ことを特徴とする画像符号化方法。
【請求項３】
動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて符号化する画像符号化プログラムであって、
符号化対象ブロックの複数の参照ブロック候補の符号化情報を取得する第１処理と、
インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報を用いる第１の画像間予測モードにおいて、第１の所定順位に基づいて前記複数の参照ブロック候補から第１の候補リストを生成し、前記第１の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックスを出力する第２処理と、
インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報に基づく予測動きベクトルと前記符号化対象ブロックの動きベクトルとの差分動きベクトルを用いる第２の画像間予測モードにおいて、第２の所定順位に基づいて前記複数の参照ブロック候補から第２の候補リストを生成し、前記第２の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックス及び前記差分動きベクトルを出力する第３処理と、
前記第２処理及び前記第３処理により出力される出力結果をもとに、前記符号化対象ブロックごとの参照ブロックと画像間予測モードとを決定する第４処理と、
前記第４処理により決定された参照ブロックのインデックスと、前記第４処理により決定された画像間予測モードを示す予測モード情報と、第２の画像間予測モードが決定された場合の参照ブロックに対応した前記差分動きベクトルとを符号化する第５処理と、
をコンピュータに実行させ、
前記第２処理及び前記第３処理は、前記複数の参照ブロック候補として、共通の複数のブロックを使用し、前記第２処理により生成される前記第１の候補リストに前記複数の参照ブロック候補を配列する為の前記第１の所定順位と、前記第３処理により生成される前記第２の候補リストに前記複数の参照ブロック候補を配列する為の前記第２の所定順位は異なる、
ことを特徴とする画像符号化プログラム。
【請求項４】
動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて符号化する画像符号化方法により符号化された符号化ストリームをパケット化して符号化データを得るパケット処理部と、
パケット化された前記符号化データを送信する送信部と
を備え、
前記画像符号化方法は、
符号化対象ブロックの複数の参照ブロック候補の符号化情報を取得する第１ステップと、
インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報を用いる第１の画像間予測モードにおいて、第１の所定順位に基づいて前記複数の参照ブロック候補から第１の候補リストを生成し、前記第１の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックスを出力する第２ステップと、
インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報に基づく予測動きベクトルと前記符号化対象ブロックの動きベクトルとの差分動きベクトルを用いる第２の画像間予測モードにおいて、第２の所定順位に基づいて前記複数の参照ブロック候補から第２の候補リストを生成し、前記第２の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックス及び前記差分動きベクトルを出力する第３ステップと、
前記第２ステップ及び前記第３ステップにより出力される出力結果をもとに、前記符号化対象ブロックごとの参照ブロックと画像間予測モードとを決定する第４ステップと、
前記第４ステップにより決定された参照ブロックのインデックスと、前記第４ステップにより決定された画像間予測モードを示す予測モード情報と、第２の画像間予測モードが決定された場合の参照ブロックに対応した前記差分動きベクトルとを符号化する第５ステップと、
を有し、
前記第２ステップ及び前記第３ステップは、前記複数の参照ブロック候補として、共通の複数のブロックを使用し、前記第２ステップにより生成される前記第１の候補リストに前記複数の参照ブロック候補を配列する為の前記第１の所定順位と、前記第３ステップにより生成される前記第２の候補リストに前記複数の参照ブロック候補を配列する為の前記第２の所定順位は異なる、
ことを特徴とする送信装置。
【請求項５】
動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて符号化する画像符号化方法により符号化された符号化ストリームをパケット化して符号化データを得るパケット処理ステップと、
パケット化された前記符号化データを送信する送信ステップと
を備え、
前記画像符号化方法は、
符号化対象ブロックの複数の参照ブロック候補の符号化情報を取得する第１ステップと、
インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報を用いる第１の画像間予測モードにおいて、第１の所定順位に基づいて前記複数の参照ブロック候補から第１の候補リストを生成し、前記第１の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックスを出力する第２ステップと、
インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報に基づく予測動きベクトルと前記符号化対象ブロックの動きベクトルとの差分動きベクトルを用いる第２の画像間予測モードにおいて、第２の所定順位に基づいて前記複数の参照ブロック候補から第２の候補リストを生成し、前記第２の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックス及び前記差分動きベクトルを出力する第３ステップと、
前記第２ステップ及び前記第３ステップにより出力される出力結果をもとに、前記符号化対象ブロックごとの参照ブロックと画像間予測モードとを決定する第４ステップと、
前記第４ステップにより決定された参照ブロックのインデックスと、前記第４ステップにより決定された画像間予測モードを示す予測モード情報と、第２の画像間予測モードが決定された場合の参照ブロックに対応した前記差分動きベクトルとを符号化する第５ステップと、
を有し、
前記第２ステップ及び前記第３ステップは、前記複数の参照ブロック候補として、共通の複数のブロックを使用し、前記第２ステップにより生成される前記第１の候補リストに前記複数の参照ブロック候補を配列する為の前記第１の所定順位と、前記第３ステップにより生成される前記第２の候補リストに前記複数の参照ブロック候補を配列する為の前記第２の所定順位は異なる、
ことを特徴とする送信方法。
【請求項６】
動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて符号化する画像符号化方法により符号化された符号化ストリームをパケット化して符号化データを得るパケット処理ステップと、
パケット化された前記符号化データを送信する送信ステップと
をコンピュータに実行させ、
前記画像符号化方法は、
符号化対象ブロックの複数の参照ブロック候補の符号化情報を取得する第１ステップと、
インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報を用いる第１の画像間予測モードにおいて、第１の所定順位に基づいて前記複数の参照ブロック候補から第１の候補リストを生成し、前記第１の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックスを出力する第２ステップと、
インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報に基づく予測動きベクトルと前記符号化対象ブロックの動きベクトルとの差分動きベクトルを用いる第２の画像間予測モードにおいて、第２の所定順位に基づいて前記複数の参照ブロック候補から第２の候補リストを生成し、前記第２の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックス及び前記差分動きベクトルを出力する第３ステップと、
前記第２ステップ及び前記第３ステップにより出力される出力結果をもとに、前記符号化対象ブロックごとの参照ブロックと画像間予測モードとを決定する第４ステップと、
前記第４ステップにより決定された参照ブロックのインデックスと、前記第４ステップにより決定された画像間予測モードを示す予測モード情報と、第２の画像間予測モードが決定された場合の参照ブロックに対応した前記差分動きベクトルとを符号化する第５ステップと、
を有し、
前記第２ステップ及び前記第３ステップは、前記複数の参照ブロック候補として、共通の複数のブロックを使用し、前記第２ステップにより生成される前記第１の候補リストに前記複数の参照ブロック候補を配列する為の前記第１の所定順位と、前記第３ステップにより生成される前記第２の候補リストに前記複数の参照ブロック候補を配列する為の前記第２の所定順位は異なる、
ことを特徴とする送信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の符号化技術に関し、特にピクチャを矩形ブロックに分割し、ピクチャ間でブロック単位に動き推定、補償を行う画像符号化装置、画像符号化方法及び画像符号化プログラムに関する。
【背景技術】
【０００２】
ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）に代表される、ピクチャを矩形ブロックに分割し、ピクチャ間でブロック単位に動き推定、補償を行う動画像符号化方式では、各ブロックで生成される動きベクトルの符号量を削減する為に、動きベクトルに対して予測処理が行われる。
【０００３】
ＭＰＥＧ−２では、マクロブロック単位に検出される動きベクトルは、直前に符号化されたマクロブロックの動きベクトルとの差分がとられ、その差分ベクトルを符号化することで、符号量を削減している。ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４では、動きベクトルが周囲の隣接ブロックの動きベクトルと強い相関があることを利用して、周囲の隣接ブロックからの予測を行い、その差分ベクトルを符号化することによって符号量を削減している。具体的には、処理対象のブロックの左、上及び右上の隣接ブロックの動きベクトルから中央値を算出し、その中央値との差分をとることで動きベクトルの予測を実現している。
【０００４】
これらの予測方法では、予測の為の動きベクトルが１つしかないので、予測が当たらないと、動きベクトルの差分が大きくなり、発生符号量が増加する課題があった。また、動きベクトルの符号量は削減されるものの、他の動き情報は処理対象のブロック毎に符号化される。従って、周囲の隣接ブロックと同一の動き情報を有していても、重複して符号化されることになる為、効率的な符号化に至っていないという課題があった。
【０００５】
これらの課題を解決する為に、ＩＳＯ／ＩＥＣ及びＩＴＵ−Ｔにおける動画像符号化の規格作業の中で新たな２つの技術が検討されている。１つは動きベクトルの予測方法に関して、符号化済みの周囲の隣接ブロックの動きベクトル及び符号化済みの時間が異なる別のピクチャの同一位置の周辺ブロックの動きベクトルについて、それぞれを予測動きベクトルの候補として適用した場合の発生符号量により評価する手法である。
【０００６】
図１（ａ）、（ｂ）に予測動きベクトルの候補となる隣接ブロックの一例を示す。図１（ａ）は同一ピクチャ内の隣接ブロックの例であり、図１（ｂ）は時間が異なる別のピクチャの同一位置の周辺ブロックの例である。これらのブロックの動きベクトルを予測動きベクトルの候補とし、処理対象のブロックの動きベクトルと予測動きベクトルの候補との差分値の発生符号量を最小とする予測動きベクトルを選択する。そして、当該予測動きベクトルとの差分値と、必要であれば、予測動きベクトルを選択した隣接ブロックに関する付加情報を符号化し、伝送する。
【０００７】
もう１つは、処理対象ブロックの動き情報と、周囲の既に符号化済みの隣接ブロックの動き情報が同一であれば、処理対象ブロックは自身の動き情報を符号化せずに、隣接ブロックの動き情報を符号化に使用する。具体的には、参照する動き情報を備える隣接ブロックを指定する付加情報を符号化することで、動き情報の符号量を削減する手法である（例えば、特許文献１参照）。このような手法は、マージ（ｍｅｒｇｅ）と呼ばれ、動き情報の符号量削減の一手法として注目されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平１０−２７６４３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述した動きベクトルの予測方法やマージ手法では、符号化済みの周囲の隣接ブロック及び時間が異なる別のピクチャの同一位置の周辺ブロックの動きベクトル、参照するピクチャを示す参照ピクチャ番号、参照リスト等の符号化情報を使用する。しかしながら、それぞれの技術で参照する周囲の隣接ブロックの位置が異なっている為、符号化済みの符号化情報を記録しているメモリをアクセスする回数が増加するという難しい面がある。
【００１０】
また、一般的な符号化過程においては、最適な参照先を選択する為に、参照先の隣接ブロックの符号化情報を用いて動き補償を行い、発生符号量と符号化歪を指標として判定する。しかしながら、参照する周囲の隣接ブロックが異なると、ブロック数が増加することになり、処理負荷が増加するという難しい面がある。更に、復号時に復号済みの符号化情報を読み出すタイミングが制限されたり、復号済みの符号化情報を記憶する一時メモリが増加するという難しい面がある。
【００１１】
本発明はこうした状況に鑑みてなされたものであり、その目的は、動き情報を処理する際の負荷を抑制しつつ、動き情報の符号化効率を向上させる技術を提供することにある。
【課題を解決するための手段】
【００１２】
動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて符号化する画像符号化装置であって、符号化対象ブロックの複数の参照ブロック候補の符号化情報を取得する取得部と、インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報を用いる第１の画像間予測モードにおいて、第１の所定順位に基づいて前記複数の参照ブロック候補から第１の候補リストを生成し、前記第１の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックスを出力する第１のモード検出部と、インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報に基づく予測動きベクトルと前記符号化対象ブロックの動きベクトルとの差分動きベクトルを用いる第２の画像間予測モードにおいて、第２の所定順位に基づいて前記複数の参照ブロック候補から第２の候補リストを生成し、前記第２の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックス及び前記差分動きベクトルを出力する第２のモード検出部と、前記第１のモード検出部及び前記第２のモード検出部の出力結果をもとに、前記符号化対象ブロックごとの参照ブロックと画像間予測モードとを決定する予測方法決定部と、前記予測方法決定部により決定された参照ブロックのインデックスと、前記予測方法決定部により決定された画像間予測モードを示す予測モード情報と、第２の画像間予測モードが決定された場合の参照ブロックに対応した前記差分動きベクトルとを符号化する符号列生成部と、を備え、前記第１のモード検出部及び前記第２のモード検出部は、前記複数の参照ブロック候補として、共通の複数のブロックを使用し、前記第１のモード検出部により生成される前記第１の候補リストに前記複数の参照ブロック候補を配列する為の前記第１の所定順位と、前記第２のモード検出部により生成される前記第２の候補リストに前記複数の参照ブロック候補を配列する為の前記第２の所定順位は異なる、ことを特徴とする画像符号化装置を提供する。
動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて符号化する画像符号化方法であって、符号化対象ブロックの複数の参照ブロック候補の符号化情報を取得する第１ステップと、インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報を用いる第１の画像間予測モードにおいて、第１の所定順位に基づいて前記複数の参照ブロック候補から第１の候補リストを生成し、前記第１の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックスを出力する第２ステップと、インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報に基づく予測動きベクトルと前記符号化対象ブロックの動きベクトルとの差分動きベクトルを用いる第２の画像間予測モードにおいて、第２の所定順位に基づいて前記複数の参照ブロック候補から第２の候補リストを生成し、前記第２の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックス及び前記差分動きベクトルを出力する第３ステップと、前記第２ステップ及び前記第３ステップにより出力される出力結果をもとに、前記符号化対象ブロックごとの参照ブロックと画像間予測モードとを決定する第４ステップと、前記第４ステップにより決定された参照ブロックのインデックスと、前記第４ステップにより決定された画像間予測モードを示す予測モード情報と、第２の画像間予測モードが決定された場合の参照ブロックに対応した前記差分動きベクトルとを符号化する第５ステップと、を有し、前記第２ステップ及び前記第３ステップは、前記複数の参照ブロック候補として、共通の複数のブロックを使用し、前記第２ステップにより生成される前記第１の候補リストに前記複数の参照ブロック候補を配列する為の前記第１の所定順位と、前記第３ステップにより生成される前記第２の候補リストに前記複数の参照ブロック候補を配列する為の前記第２の所定順位は異なる、ことを特徴とする画像符号化方法を提供する。
動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて符号化する画像符号化プログラムであって、符号化対象ブロックの複数の参照ブロック候補の符号化情報を取得する第１処理と、インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報を用いる第１の画像間予測モードにおいて、第１の所定順位に基づいて前記複数の参照ブロック候補から第１の候補リストを生成し、前記第１の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックスを出力する第２処理と、インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報に基づく予測動きベクトルと前記符号化対象ブロックの動きベクトルとの差分動きベクトルを用いる第２の画像間予測モードにおいて、第２の所定順位に基づいて前記複数の参照ブロック候補から第２の候補リストを生成し、前記第２の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックス及び前記差分動きベクトルを出力する第３処理と、前記第２処理及び前記第３処理により出力される出力結果をもとに、前記符号化対象ブロックごとの参照ブロックと画像間予測モードとを決定する第４処理と、前記第４処理により決定された参照ブロックのインデックスと、前記第４処理により決定された画像間予測モードを示す予測モード情報と、第２の画像間予測モードが決定された場合の参照ブロックに対応した前記差分動きベクトルとを符号化する第５処理と、をコンピュータに実行させ、前記第２処理及び前記第３処理は、前記複数の参照ブロック候補として、共通の複数のブロックを使用し、前記第２処理により生成される前記第１の候補リストに前記複数の参照ブロック候補を配列する為の前記第１の所定順位と、前記第３処理により生成される前記第２の候補リストに前記複数の参照ブロック候補を配列する為の前記第２の所定順位は異なる、ことを特徴とする画像符号化プログラムを提供する。
動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて符号化する画像符号化方法により符号化された符号化ストリームをパケット化して符号化データを得るパケット処理部と、パケット化された前記符号化データを送信する送信部とを備え、前記画像符号化方法は、符号化対象ブロックの複数の参照ブロック候補の符号化情報を取得する第１ステップと、インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報を用いる第１の画像間予測モードにおいて、第１の所定順位に基づいて前記複数の参照ブロック候補から第１の候補リストを生成し、前記第１の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックスを出力する第２ステップと、インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報に基づく予測動きベクトルと前記符号化対象ブロックの動きベクトルとの差分動きベクトルを用いる第２の画像間予測モードにおいて、第２の所定順位に基づいて前記複数の参照ブロック候補から第２の候補リストを生成し、前記第２の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックス及び前記差分動きベクトルを出力する第３ステップと、前記第２ステップ及び前記第３ステップにより出力される出力結果をもとに、前記符号化対象ブロックごとの参照ブロックと画像間予測モードとを決定する第４ステップと、前記第４ステップにより決定された参照ブロックのインデックスと、前記第４ステップにより決定された画像間予測モードを示す予測モード情報と、第２の画像間予測モードが決定された場合の参照ブロックに対応した前記差分動きベクトルとを符号化する第５ステップと、を有し、前記第２ステップ及び前記第３ステップは、前記複数の参照ブロック候補として、共通の複数のブロックを使用し、前記第２ステップにより生成される前記第１の候補リストに前記複数の参照ブロック候補を配列する為の前記第１の所定順位と、前記第３ステップにより生成される前記第２の候補リストに前記複数の参照ブロック候補を配列する為の前記第２の所定順位は異なる、ことを特徴とする送信装置を提供する。
動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて符号化する画像符号化方法により符号化された符号化ストリームをパケット化して符号化データを得るパケット処理ステップと、パケット化された前記符号化データを送信する送信ステップとを備え、前記画像符号化方法は、符号化対象ブロックの複数の参照ブロック候補の符号化情報を取得する第１ステップと、インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報を用いる第１の画像間予測モードにおいて、第１の所定順位に基づいて前記複数の参照ブロック候補から第１の候補リストを生成し、前記第１の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックスを出力する第２ステップと、インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報に基づく予測動きベクトルと前記符号化対象ブロックの動きベクトルとの差分動きベクトルを用いる第２の画像間予測モードにおいて、第２の所定順位に基づいて前記複数の参照ブロック候補から第２の候補リストを生成し、前記第２の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックス及び前記差分動きベクトルを出力する第３ステップと、前記第２ステップ及び前記第３ステップにより出力される出力結果をもとに、前記符号化対象ブロックごとの参照ブロックと画像間予測モードとを決定する第４ステップと、前記第４ステップにより決定された参照ブロックのインデックスと、前記第４ステップにより決定された画像間予測モードを示す予測モード情報と、第２の画像間予測モードが決定された場合の参照ブロックに対応した前記差分動きベクトルとを符号化する第５ステップと、を有し、前記第２ステップ及び前記第３ステップは、前記複数の参照ブロック候補として、共通の複数のブロックを使用し、前記第２ステップにより生成される前記第１の候補リストに前記複数の参照ブロック候補を配列する為の前記第１の所定順位と、前記第３ステップにより生成される前記第２の候補リストに前記複数の参照ブロック候補を配列する為の前記第２の所定順位は異なる、ことを特徴とする送信方法を提供する。
動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて符号化する画像符号化方法により符号化された符号化ストリームをパケット化して符号化データを得るパケット処理ステップと、パケット化された前記符号化データを送信する送信ステップとをコンピュータに実行させ、前記画像符号化方法は、符号化対象ブロックの複数の参照ブロック候補の符号化情報を取得する第１ステップと、インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報を用いる第１の画像間予測モードにおいて、第１の所定順位に基づいて前記複数の参照ブロック候補から第１の候補リストを生成し、前記第１の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックスを出力する第２ステップと、インデックスによって特定される参照ブロックの前記符号化情報が備える動きベクトルの情報に基づく予測動きベクトルと前記符号化対象ブロックの動きベクトルとの差分動きベクトルを用いる第２の画像間予測モードにおいて、第２の所定順位に基づいて前記複数の参照ブロック候補から第２の候補リストを生成し、前記第２の候補リストに登録された参照ブロック候補を特定する為のインデックスを付与し、前記複数の参照ブロック候補のインデックス及び前記差分動きベクトルを出力する第３ステップと、前記第２ステップ及び前記第３ステップにより出力される出力結果をもとに、前記符号化対象ブロックごとの参照ブロックと画像間予測モードとを決定する第４ステップと、前記第４ステップにより決定された参照ブロックのインデックスと、前記第４ステップにより決定された画像間予測モードを示す予測モード情報と、第２の画像間予測モードが決定された場合の参照ブロックに対応した前記差分動きベクトルとを符号化する第５ステップと、を有し、前記第２ステップ及び前記第３ステップは、前記複数の参照ブロック候補として、共通の複数のブロックを使用し、前記第２ステップにより生成される前記第１の候補リストに前記複数の参照ブロック候補を配列する為の前記第１の所定順位と、前記第３ステップにより生成される前記第２の候補リストに前記複数の参照ブロック候補を配列する為の前記第２の所定順位は異なる、ことを特徴とする送信プログラムを提供する。
【００２２】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００２３】
本発明によれば、動き情報を処理する際の負荷を抑制しつつ、動き情報の符号化効率を向上させることができる。
【図面の簡単な説明】
【００２４】
【図１】図１（ａ）、（ｂ）は、処理対象の予測ブロックと、同一ピクチャ或いは時間が異なる別のピクチャで隣接する予測ブロックの一例を説明する為の図である。
【図２】本発明の実施例における動画像符号化装置の構成を示すブロック図である。
【図３】図３（ａ）、（ｂ）は、本発明の実施例における予測モードの分類の定義を説明する為の図である。
【図４】本発明の実施例における動画像復号装置の構成を示すブロック図である。
【図５】本発明の実施例における符号化ブロックの定義を説明する為の図である。
【図６】本発明の実施例における参照隣接ブロックの選出方法に関する予測ブロックレベルでのビットストリームのシンタックスパターンを説明する図である。
【図７】図７（ａ）〜（ｄ）は、本発明の実施例における予測ブロックの形状の種類を説明する為の図である。
【図８】本発明の実施例における符号化情報格納メモリに記録される符号化情報の保存形式を説明する図である。
【図９】図９（ａ）、（ｂ）は、本発明の実施例における処理対象の予測ブロックに対する参照先となる隣接ブロックの配置を説明する図である。
【図１０】本発明の実施例におけるインター予測情報検出部の詳細な構成を示すブロック図である。
【図１１】実施例１におけるマージ検出部の詳細な構成を示すブロック図である。
【図１２】実施例１のマージ検出部の符号化情報導出部の動作を説明する為のフローチャートである。
【図１３】実施例１の符号化情報導出部において、同一ピクチャ上の周囲の隣接ブロックを選出する動作を説明する為のフローチャートである。
【図１４】図１４（ａ）〜（ｃ）は、実施例１の符号化情報導出部において、処理対象の予測ブロックの参照ピクチャ番号候補を選出する動作を説明する図である。
【図１５】実施例１の符号化情報導出部において、処理対象の予測ブロックの参照ピクチャ番号候補から参照ピクチャ番号の選出パターンを列記した図である。
【図１６】実施例１の符号化情報導出部において、時間が異なる別のピクチャの同一位置に隣接するブロックの符号化情報を選出する動作を説明する為のフローチャートである。
【図１７】実施例１の符号化情報導出部において、時間が異なる別のピクチャの同一位置に隣接するブロックの符号化情報を算出する詳細な動作を説明する為のフローチャートである。
【図１８】ｃｏｌピクチャとその参照ピクチャの距離を処理対象のピクチャとその参照ピクチャの距離に換算して、動きベクトルを処理対象のピクチャに合わせるスケーリングを説明する図である。
【図１９】実施例１の参照候補リスト作成部において、符号化情報導出部にて選出された、参照隣接ブロックの符号化情報を参照候補リストに登録する動作を説明する為のフローチャートである。
【図２０】実施例１において、参照候補リスト作成部で作成される参照候補リストの一例を示す図である。
【図２１】実施例１の同一情報検出部において、参照候補リストに登録された同一の符号化情報を検出・削除して参照候補リストを更新する動作を説明する為のフローチャートである。
【図２２】実施例１のマージ判定部の詳細な構成を示すブロック図である。
【図２３】実施例１の動きベクトル予測部の詳細な構成を示すブロック図である。
【図２４】実施例１の動きベクトル予測部の符号化情報導出部の動作を説明する為のフローチャートである。
【図２５】実施例１の符号化情報導出部において、同一ピクチャ上の周囲の隣接ブロックを選出する動作を説明する為のフローチャートである。
【図２６】実施例１の符号化情報導出部において、同一ピクチャ上の周囲の隣接ブロックを選出する動作を説明する為の別手法のフローチャートである。
【図２７】動きベクトルのスケーリングを説明する図である。
【図２８】実施例１において、参照候補リスト作成部で作成される参照候補リストの一例を示す図である。
【図２９】実施例１の同一情報検出部において、参照候補リストに登録された同一の動きベクトルを備える符号化情報を検出・削除して参照候補リストを更新する動作を説明する為のフローチャートである。
【図３０】実施例１の動きベクトル算出部の詳細な構成を示すブロック図である。
【図３１】図３１（ａ）、（ｂ）は、実施例２における処理対象の予測ブロックに対する参照先となる隣接ブロックの配置を説明する図である。
【図３２】実施例２のマージ検出部の符号化情報導出部の動作を説明する為のフローチャートである。
【図３３】実施例２の符号化情報導出部において、同一ピクチャ上の周囲の隣接ブロックを選出する動作を説明する為のフローチャートである。
【図３４】実施例２の符号化情報導出部において、処理対象の予測ブロックの参照ピクチャ番号候補を選出する動作を説明する図である。
【図３５】実施例２の符号化情報導出部において、処理対象の予測ブロックの参照ピクチャ番号候補から参照ピクチャ番号の選出パターンを列記した図である。
【図３６】実施例２において、マージ検出部の参照候補リスト作成部で作成される参照候補リストの一例を示す図である。
【図３７】実施例２の動きベクトル予測部の符号化情報導出部の動作を説明する為のフローチャートである。
【図３８】実施例２の符号化情報導出部において、同一ピクチャ上の周囲の隣接ブロックを選出する動作を説明する為のフローチャートである。
【図３９】実施例２の符号化情報導出部において、同一ピクチャ上の周囲の隣接ブロックを選出する動作を説明する為の別手法のフローチャートである。
【図４０】実施例２において、動き検出部の参照候補リスト作成部で作成される参照候補リストの一例を示す図である。
【図４１】実施例３において、マージモードと動き検出モードで異なる選出手法により作成された参照候補リストの一例を示す図である。
【図４２】実施例４のマージ検出部の符号化情報導出部の動作を説明する為のフローチャートである。
【図４３】実施例４の符号化情報導出部において、同一ピクチャ上の周囲の隣接ブロックを選出する動作を説明する為のフローチャートである。
【図４４】実施例４の動きベクトル予測部の符号化情報導出部の動作を説明する為のフローチャートである。
【図４５】実施例４の符号化情報導出部において、同一ピクチャ上の周囲の隣接ブロックを選出する動作を説明する為の手法のフローチャートである。
【図４６】実施例５の参照候補リスト作成部において、符号化情報導出部にて選出された参照隣接ブロックの符号化情報を参照候補リストに登録する動作を説明する為のフローチャートである。
【図４７】実施例６において、参照候補リスト作成部で作成される参照候補リストの一例を示す図である。
【図４８】実施例７のマージ検出部の詳細な構成を示すブロック図である。
【図４９】実施例７の同一情報検出部において、参照候補リストに登録された符号化情報を制限して参照候補リストを更新する動作を説明する為のフローチャートである。
【図５０】実施例７のマージ検出部の詳細な構成を示すブロック図である。
【図５１】実施例７の参照候補リスト作成部において、参照候補リストに登録された符号化情報を制限して参照候補リストを更新する動作を説明する為のフローチャートである。
【図５２】実施例７の動きベクトル予測部の詳細な構成を示すブロック図である。
【図５３】実施例７の符号化情報導出部において、周囲の隣接ブロックを選出する動作を説明する為のフローチャートである。
【図５４】実施例７の符号化情報導出部の動きベクトルの算出の詳細な動作を説明する為のフローチャートである。
【図５５】実施例７の参照候補リスト作成部において、符号化情報導出部にて選出された参照隣接ブロックの符号化情報を参照候補リストに登録する動作を説明する為のフローチャートである。
【図５６】実施例７の同一情報検出部において、参照候補リストに登録された符号化情報を制限して参照候補リストを更新する動作を説明する為のフローチャートである。
【図５７】実施例７の動きベクトル予測部の詳細な構成を示すブロック図である。
【図５８】実施例８の参照候補リスト作成部において、符号化情報導出部にて選出された参照隣接ブロックの符号化情報を参照候補リストに登録する動作を説明する為のフローチャートである。
【図５９】実施例８において、マージモードと動き検出モードで作成された参照候補リストの一例を示す図である。
【図６０】実施例９の参照候補リスト作成部において、符号化情報導出部にて選出された参照隣接ブロックの符号化情報を参照候補リストに登録する動作を説明する為のフローチャートである。
【図６１】実施例９の参照候補リスト作成部において、変換テーブルの作成・更新する動作を説明する為のフローチャートである。
【図６２】実施例９の参照候補リスト作成部において、参照候補リストのインデックスと変換テーブルのインデックスの対応関係の一例を示す図である。
【図６３】実施例９において、参照候補リスト作成部で作成される参照候補リストの一例を示す図である。
【図６４】実施例１２の動きベクトル予測部の詳細な構成を示すブロック図である。
【図６５】実施例１２の参照候補制御部において、参照候補リストに登録された符号化情報を入れ換えを実施する動作を説明する為のフローチャートである。
【発明を実施するための形態】
【００２５】
本発明を実施する好適な動画像符号化装置及び動画像復号化装置について説明する。図２は本発明の実施例に係る動画像符号化装置１００の構成を示すブロック図である。動画像符号化装置１００は、画像メモリ１０１、動きベクトル検出部１０２、動きベクトル予測部１０３、インター予測情報検出部１０４、動き補償予測部１０５、マージ検出部１０６、予測方法決定部１０７、スイッチ１０８、第１の符号化ビット列生成部１０９、残差信号生成部１１０、直交変換・量子化部１１１、逆量子化・逆直交変換部１１２、復号画像信号重畳部１１３、符号化情報格納メモリ１１４、復号画像メモリ１１５、第２の符号化ビット列生成部１１６及び符号化ビット列多重化部１１７を備える。尚、各ブロック間を結ぶ太実線の矢印はピクチャの画像信号、細実線の矢印は符号化を制御するパラメータ信号の流れを表すものである。
【００２６】
画像メモリ１０１は、撮影／表示時間順に供給された符号化対象の画像信号を一時格納する。画像メモリ１０１は、格納された符号化対象の画像信号を、所定の画素ブロック単位で、動きベクトル検出部１０２、予測方法決定部１０７及び残差信号生成部１１０に供給する。その際、撮影／表示時間順に格納された画像は、符号化順序に並べ替えられて、画素ブロック単位で、画像メモリ１０１から出力される。
【００２７】
動きベクトル検出部１０２は、画像メモリ１０１から供給される画像信号と復号画像メモリ１１５から供給される復号画像（参照ピクチャ）間でブロックマッチング等により、各予測ブロックサイズ、予測モードごとの動きベクトルを予測ブロック単位で検出し、検出された動きベクトルを動き補償予測部１０５、動きベクトル予測部１０３及び予測方法決定部１０７に供給する。ここで、予測モードは図３（ａ）に示されるように大別されており、図３（ａ）、（ｂ）中の片方向予測或いは双予測モードの動きベクトルが検出される。予測モードは後述するシンタックスの定義にて説明する。
【００２８】
動きベクトル予測部１０３は、予測モードが動き検出モードの場合にインター予測情報検出部１０４にて出力される符号化情報の動きベクトルを予測動きベクトルとして、動きベクトル検出部１０２が検出した動きベクトルと当該予測動きベクトルから差分動きベクトルを算出し、算出された差分動きベクトルを予測方法決定部１０７に供給する。更に、選択された予測動きベクトルを特定するインデックスを予測方法決定部１０７に供給する。動きベクトル予測部１０３の詳細な構成と動作は後述する。
【００２９】
インター予測情報検出部１０４は、処理対象の予測ブロックが参照する同一ピクチャ上で処理対象の予測ブロックの周辺に隣接する符号化済みの予測ブロック、或いは時間が異なる別ピクチャの中で処理対象の予測ブロックと同一位置のブロック周辺に隣接する予測ブロックの符号化情報を符号化情報格納メモリ１１４から取得する。符号化情報格納メモリ１１４に記憶されている既に符号化された周辺の隣接ブロック、或いは時間が異なる別ピクチャの隣接ブロックの符号化情報のうち、処理対象の予測ブロックの位置情報から、複数の参照先候補の隣接ブロックの符号化情報を検出し、参照先として選択される隣接ブロックの符号化情報とその隣接ブロックを特定するインデックスを、スイッチ１０８に入力される動画像符号化装置１００により制御される予測モードで切り換えて供給する。インター予測情報検出部１０４の詳細な構成と動作は後述する。
【００３０】
動き補償予測部１０５は、動きベクトル検出部１０２により検出された動きベクトル或いはインター予測情報検出部１０４により検出された参照先として選択される隣接ブロックの符号化情報を用いて、参照ピクチャから動き補償予測により予測画像信号を生成し、当該予測画像信号を予測方法決定部１０７に供給する。尚、双予測の場合は、主に前方向の予測として使われるＬ０予測、主に後方向の予測として使われるＬ１予測の２つの動き補償予測画像信号に適応的に重み係数を掛け算して重畳し、最終的な予測画像信号を生成する。この重み付け係数は、スライス単位或いは予測ブロック単位で設定される。
【００３１】
マージ検出部１０６は、予測モードがマージモードの場合にインター予測情報検出部１０４にて取得される処理対象の予測ブロックが参照する隣接ブロック（以下、参照隣接ブロックという）の符号化情報を、処理対象の予測ブロックの符号化情報として利用する為に、隣接ブロックを優先して参照する順位に並び換えて参照候補リストに登録する。マージ検出部１０６は、当該参照候補リストの中に登録された符号化情報を処理対象の予測ブロックの符号化情報として検出し、検出された符号化情報の動きベクトル、参照ピクチャ番号、参照リスト等を動き補償予測部１０５に供給する。更に、マージ検出部１０６は、検出された符号化情報を備える参照隣接ブロックを特定するインデックスを予測方法決定部１０７に供給する。マージ検出部１０６の詳細な構成と動作は後述する。
【００３２】
予測方法決定部１０７は、参照隣接ブロックの符号化情報、隣接ブロックを特定するインデックスの符号量、動き補償予測信号と画像信号との間の歪量等を評価することにより、複数の予測方法の中から、最適な予測ブロックサイズ、分割モード（ＰａｒｔＭｏｄｅ）、予測モード（ＰｒｅｄＭｏｄｅ）等を含む予測方法を決定する。予測方法決定部１０７は、決定された予測方法を示す情報及び決定された予測方法に応じた差分動きベクトル等を含む符号化情報を第１の符号化ビット列生成部１０９に供給する。尚、予測ブロックサイズ、分割モード及び予測モードの詳細については後述する。
【００３３】
スイッチ１０８は、動画像符号化装置１００により制御される予測モードに応じて、インター予測情報検出部１０４により検出された参照先として選択される隣接ブロックの符号化情報を動きベクトル予測部１０３或いはマージ検出部１０６との間で切り換えて供給する。更に、スイッチ１０８は、決定された予測方法を示す情報及び決定された予測方法に応じた動きベクトル等を含む符号化情報を符号化情報格納メモリ１１４に格納し、決定された予測モードに応じた動き補償予測画像信号を残差信号生成部１１０及び復号画像信号重畳部１１３に与える。
【００３４】
残差信号生成部１１０は、符号化する画像信号と予測信号との引き算を行い残差信号を生成し、直交変換・量子化部１１１に与える。直交変換・量子化部１１１は、残差信号に対して直交変換及び量子化を行い直交変換・量子化された残差信号を生成し、第２の符号化ビット列生成部１１６と逆量子化・逆直交変換部１１２に供給する。
【００３５】
第１の符号化ビット列生成部１０９は、予測方法決定部１０７によって決定された予測方法情報及び当該予測方法情報に応じた差分動きベクトルに関する情報を、規定のシンタックス規則に従って符号化して第１の符号化ビット列を生成し、符号化ビット列多重化部１１７に供給する。
【００３６】
尚、必要に応じて予測方法決定部１０７から供給される重み付け予測の重み付けパラメータ、インターレース符号化の際のフレーム／フィールド予測を識別するフラグ、量子化の量子化パラメータ、残差信号を符号化したか否かを示すフラグ、直交変換の手法を識別するフラグ、残差信号の符号化順序を識別するフラグ、デブロッキングフィルタ等のポストフィルタの情報等の、符号化情報の予測値と実際に用いる値との差分が第１の符号化ビット列生成部１０９に供給され、符号化される。更に、残差信号の符号化順序を識別するフラグ等の、予測された符号化情報を符号化情報格納メモリ１１４に格納する。
【００３７】
第２の符号化ビット列生成部１１６は、直交変換及び量子化された残差信号を規定のシンタックス規則に従ってエントロピー符号化して第２の符号化ビット列を生成し、符号化ビット列多重化部１１７に供給する。符号化ビット列多重化部１１７は、第１の符号化ビット列と第２の符号化ビット列を規定のシンタックス規則に従って多重化し、ビットストリームを出力する。
【００３８】
逆量子化・逆直交変換部１１２は、直交変換・量子化部１１１から供給された直交変換・量子化された残差信号を逆量子化及び逆直交変換して残差信号を算出し、復号画像信号重畳部１１３に供給する。復号画像信号重畳部１１３は、予測方法決定部１０７による決定に応じた予測信号と、逆量子化・逆直交変換部１１２で逆量子化及び逆直交変換された残差信号を重畳して復号画像を生成し、復号画像メモリ１１５に格納する。尚、復号画像に対して符号化によるブロック歪等の歪を減少させるフィルタリング処理を施して、復号画像メモリ１１５に格納されることもある。その場合、必要に応じてデブロッキングフィルタ等のポストフィルタの情報を識別するフラグ等の、予測された符号化情報を符号化情報格納メモリ１１４に格納する。
【００３９】
図４は図２の動画像符号化装置１００に対応した実施例における動画像復号装置２００の構成を示すブロック図である。当該動画像復号装置２００は、ビット列分離部２０１、第１の符号化ビット列復号部２０２、第２の符号化ビット列復号部２０３、動きベクトル算出部２０４、インター予測情報検出部２０５、マージ判定部２０６、動き補償予測部２０７、逆量子化・逆直交変換部２０８、復号画像信号重畳部２０９、符号化情報格納メモリ２１０、復号画像メモリ２１１及びスイッチ２１２を備える。尚、図２の動画像符号化装置１００と同様に、各ブロック間を結ぶ太実線の矢印はピクチャの画像信号、細実線の矢印は符号化を制御するパラメータ信号の流れを表すものである。
【００４０】
図４の動画像復号装置２００の復号処理は、図２の動画像符号化装置１００の内部に設けられている復号処理に対応するものであるから、図４の動き補償予測部２０７、逆量子化・逆直交変換部２０８、復号画像信号重畳部２０９、符号化情報格納メモリ２１０及び復号画像メモリ２１１の各構成は、図２の動画像符号化装置１００の動き補償予測部１０５、逆量子化・逆直交変換部１１２、復号画像信号重畳部１１３、符号化情報格納メモリ１１４及び復号画像メモリ１１５の各構成とそれぞれ対応する機能を有する。
【００４１】
ビット列分離部２０１に供給されるビットストリームは、規定のシンタックスの規則に従って分離され、分離された符号化ビット列が第１の符号化ビット列復号部２０２及び第２の符号化ビット列復号部２０３に供給される。
【００４２】
第１の符号化ビット列復号部２０２は、供給された符号化ビット列を復号して予測モード、動きベクトル等に関する符号化情報を出力し、符号化情報を動きベクトル算出部２０４またはインター予測情報検出部２０５と、動き補償予測部２０７に与えるとともに符号化情報格納メモリ２１０に格納する。
【００４３】
第２の符号化ビット列復号部２０３は、供給された符号化ビット列を復号して直交変換・量子化された残差信号を算出し、直交変換・量子化された残差信号を逆量子化・逆直交変換部２０８に与える。
【００４４】
動きベクトル算出部２０４は、予測モードが動き検出モードの場合にインター予測情報検出部２０５にて判定され、出力される符号化情報の動きベクトルを予測動きベクトルとして、第１の符号化ビット列復号部２０２で復号された差分ベクトル及び当該予測動きベクトルから動きベクトルを算出し、当該動きベクトルを動き補償予測部２０７に供給するとともに、符号化情報格納メモリ２１０に供給する。
【００４５】
インター予測情報検出部２０５は、処理対象の予測ブロックが参照する同一ピクチャ上で処理対象の予測ブロックの周辺に隣接する復号済みの予測ブロック、或いは時間が異なる別ピクチャの中で処理対象の予測ブロックと同一位置のブロック周辺に隣接する予測ブロックの符号化情報を符号化情報格納メモリ２１０から取得する。符号化情報格納メモリ２１０に記憶されている既に復号された周辺の隣接ブロック、或いは時間が異なる別ピクチャの隣接ブロックの符号化情報のうち、処理対象の予測ブロックの位置情報から、複数の参照先候補の隣接ブロックの符号化情報を検出し、参照先として選択される隣接ブロックの符号化情報とその隣接ブロックを特定するインデックスを、スイッチ２１２に入力される動画像復号装置２００により復号された予測モードで切り換えて供給する。インター予測情報検出部２０５の詳細な構成と動作は後述する。
【００４６】
マージ判定部２０６は、予測モードがマージモードの場合にインター予測情報検出部２０５にて取得される処理対象の予測ブロックが参照隣接ブロックの符号化情報を、処理対象の予測ブロックの符号化情報として利用する為に、隣接ブロックを優先して参照する順位に並び換えて参照候補リストに登録する。マージ判定部２０６は、当該参照候補リストの中から第１の符号化ビット列復号部２０２で復号された参照隣接ブロックを特定するインデックスで指定される隣接ブロックを検出し、その符号化情報を動き補償予測部２０７に供給するとともに、符号化情報格納メモリ２１０に供給する。マージ判定部２０６の詳細な構成と動作は後述する。
【００４７】
動き補償予測部２０７は、動きベクトル算出部２０４で算出された動きベクトル或いはマージ判定部２０６により検出された参照先として選択される隣接ブロックの符号化情報を用いて、参照ピクチャから動き補償予測により予測画像信号を生成し、予測画像信号を復号画像信号重畳部２０９に供給する。尚、双予測の場合は、Ｌ０予測、Ｌ１予測の２つの動き補償予測画像信号に適応的に重み係数を掛け算して重畳し、最終的な予測画像信号を生成する。
【００４８】
逆量子化・逆直交変換部２０８は、第１の符号化ビット列復号部２０２で復号された直交変換・量子化された残差信号に対して逆直交変換及び逆量子化を行い、逆直交変換・逆量子化された残差信号を得る。
【００４９】
復号画像信号重畳部２０９は、動き補償予測部２０７で動き補償予測された予測画像信号と、逆量子化・逆直交変換部２０８により逆直交変換・逆量子化された残差信号とを重畳することにより、復号画像信号を復号し、復号画像メモリ２１１に格納する。復号画像メモリ２１１に格納する際には、復号画像に対して符号化によるブロック歪等を減少させるフィルタリング処理を施して、復号画像メモリ２１１に格納されることもある。
【００５０】
スイッチ２１２は、第１の符号化ビット列復号部２０２で復号された予測モードに応じて、インター予測情報検出部２０５により検出された参照先として選択される隣接ブロックの符号化情報を動きベクトル算出部２０４或いはマージ判定部２０６との間で切り換えて供給する。
【００５１】
以下の実施例では、動画像符号化装置１００のインター予測情報検出部１０４及び動画像復号装置２００のインター予測情報検出部２０５の中で共通に実施される動きベクトルの予測方法とマージ手法とで参照する周辺の隣接ブロックの配置を統合し、その中から参照隣接ブロックを選出する方法の詳細について説明する。
【００５２】
本発明における実施例で参照隣接ブロックの選出方法を説明する前に、本実施例にて使用する用語を定義する
【００５３】
（本発明にて使用する用語の定義）
・符号化ブロックの定義
本実施例では、図５に示されるように、画面内を同一サイズの正方の矩形ブロックにて均等分割される。このブロックを符号化ブロックと呼び、符号化及び復号化を行う際の処理の基本とする。符号化ブロックは画面内のテクスチャに応じて、符号化処理を最適にすべく、符号化ブロック内を４分割して、ブロックサイズの小さい符号化ブロックにすることが出来る。図５で示される画面内を均等サイズで分割される符号化ブロックを最大符号化ブロックと呼び、その内部を符号化条件に応じて４分割したものを総じて符号化ブロックとする。符号化ブロックをこれ以上４分割出来ない最小のサイズとなる符号化ブロックを最小符号化ブロックと呼ぶこととする。
【００５４】
・予測ブロックの定義
画面内をブロックに分割して動き補償を行う場合、動き補償のブロックサイズをより小さくした方が、よりきめ細かい予測を行うことが出来ることから、いくつかのブロックサイズの中から最適なものを選択して、動き補償を行う仕組みを取り入れている。この動き補償を行うブロックを予測ブロックと呼ぶ。予測ブロックは符号化ブロックの内部を分割する場合に使用され、動き補償に応じて、符号化ブロック内部を分割せず１ブロックとみなす場合を最大とし、水平或いは垂直方向に２分割したもの、水平と垂直の均等分割により４分割したものに分けられる。分割方法に応じて、分割タイプに対応した分割モード（ＰａｒｔＭｏｄｅ）が定義されており、図６に示される。図７（ａ）〜（ｄ）中の矩形内部の番号は分割された予測ブロックの番号を表す。最小符号化ブロック内部において、予測ブロックを管理する為に、０から開始する番号が予測ブロックに対して上から下、左から右の順に割り当てられる。
【００５５】
以上のように、符号化ブロックを動き検出・補償を行う場合、動き検出・補償の単位としては、符号化ブロック自身のサイズ、符号化ブロックを２分割或いは４分割した個々の小ブロック、更に４分割した個々の小ブロックを符号化ブロックとして同様に分割することで予測ブロックの最小サイズまで再帰的に得られるサイズのブロックとなる。以下の説明では、特に断らない限り動き検出・補償を行う単位は形状、サイズに関わらず“予測ブロック”とする。
【００５６】
（参照リスト）
次に、参照リストについて説明する。符号化及び復号の際には、参照リストＬＸ毎の参照インデックスから参照ピクチャ番号を指定して参照する。Ｌ０とＬ１の２つが用意されていて、Ｘには０或いは１が入る。参照リストＬ０に登録されている参照ピクチャを参照するインター予測をＬ０予測（Ｐｒｅｄ＿Ｌ０）と呼び、参照リストＬ１に登録されている参照ピクチャを参照する動き補償予測をＬ１予測（Ｐｒｅｄ＿Ｌ１）と呼ぶ。主としてＬ０予測は前方向予測に、Ｌ１予測は後方向予測として使用され、ＰスライスではＬ０予測のみ、ＢスライスではＬ０予測、Ｌ１予測及びＬ０予測とＬ１予測を平均または重み付け加算する双予測が使用出来る。以降の処理において出力に添え字ＬＸが付いている値に対しては、Ｌ０予測、Ｌ１予測ごとに処理を行うことを前提とする。
【００５７】
（符号化情報の記録）
次に、動き検出・補償により検出される動きベクトル等の符号化情報の記録について説明する。ここで、符号化情報は、動きベクトルをはじめ、参照リスト、参照リストに登録されている参照ピクチャを示す参照ピクチャ番号、予測モード等、符号化に使用された情報から構成される。予測ブロック単位に動き検出・補償が行われるが、検出された動きベクトル等の符号化情報は、予測ブロック単位で記録せず、上述した最小予測ブロック単位で記録する。即ち、予測ブロック内部を構成する複数の最小予測ブロックに同一の符号化情報を記録するようにする。
【００５８】
予測ブロックのサイズは符号化条件によって変わるので、予測ブロック単位に符号化情報格納メモリ１１４、２１０に記録するには、検出された動きベクトルの他に予測ブロックのピクチャ上での位置、予測ブロックの形状等の付加情報が必要になり、符号化情報を取得する為のアクセスが複雑化する。その為、情報の重複記録による冗長度はあるが、均一な最小予測ブロック単位に分割し、記録する方がアクセスが容易である。
【００５９】
図８はピクチャを最小予測ブロックで分割した一例であり、この図を用いて符号化情報格納メモリ１１４、２１０に記録される符号化情報の保存形式を説明する。図８中のｗはピクチャの幅、ｈはピクチャの高さを表す。最小予測ブロックの幅及び高さをｐとすると、横方向にｗ／ｐ個、縦方向にｈ／ｐ個の最小予測ブロックでピクチャは構成されることになり、この１つ１つの最小予測ブロックに対応する符号化情報が図８中の太実線で表されるラスタスキャン順に符号化情報格納メモリ１１４、２１０に記録される。
【００６０】
ここで、図８中の太線で囲まれた矩形領域を予測ブロック（図８中のハッチングで示される領域）とする。予測ブロックでは動き検出により動きベクトル等の符号化情報が検出される。検出された符号化情報は、予測ブロックの中を構成する最小予測ブロックに対応する符号化情報格納メモリ１１４、２１０に記録される。符号化情報格納メモリ１１４、２１０の符号化情報の記録領域の先頭アドレスを図８中の左上を原点とすると、予測ブロックの先頭位置は図６中の黒丸で示される。予測ブロックの先頭位置が最小予測ブロック単位で原点から右にx個、下にy個の位置にあるとすると、予測ブロックの先頭アドレスはｗ／ｐ×ｙ＋ｘで表される。その先頭位置の最小予測ブロックから、ハッチングで示される予測ブロック内の最小予測ブロックに対応する符号化情報格納メモリ１１４、２１０内の記憶領域に予測ブロックの符号化情報を記録していく。このようにして、予測ブロックの中の最小予測ブロックに対応する符号化情報格納メモリ１１４、２１０の記録領域に、同じ符号化情報を記録する。
【００６１】
次に、本発明の実施例における、参照隣接ブロックの選出方法を備える動画像符号化装置により符号化される動画像のビットストリームのシンタックスについて説明する。
【００６２】
（シンタックスの定義）
上述した図３（ａ）は予測モードにより符号化を大別したものである。画像間予測（Ｉｎｔｅｒモード）の場合、まずマージ手法を使用するか否かでマージモードと非マージモードに分けられる。非マージモードはブロックマッチング等の動きベクトルの検出を実際に行うモードであり、動き検出モードと言い換えることが出来る。マージモードは更にｓｋｉｐモードと非ｓｋｉｐモードに分けられる。ｓｋｉｐモードは参照隣接ブロックの符号化情報により予測された予測画像信号を復号画像とするので、画像残差信号は０となる。従って、ｓｋｉｐモードは符号化伝送を必要とせず、符号化情報の参照先を表すインデックスのみを符号化伝送するモードである。ｓｋｉｐモードの符号化情報はマージモードと同様であり、ここでは画像残差信号を符号化伝送する場合をマージモードと限定することにする。Ｉｎｔｅｒモードの符号化の対象となる信号を分類した表を図３（ｂ）に示す。ｓｋｉｐモードでは、他のモードとは異なり、画像残差信号の符号化伝送を必要としない為、図３（ａ）の予測モードの分岐順に判定を行うよりも、先にｓｋｉｐモードの判定を行う方がモード判定に使用されるフラグの符号量を抑えることが出来る。
【００６３】
上述した図６はスライスの中の予測ブロック単位に記述されるシンタックスパターンを示す。まず、ｓｋｉｐモードか否かを示すフラグｓｋｉｐ＿ｆｌａｇが設置される。ｓｋｉｐ＿ｆｌａｇが真（１）で、更に参照隣接ブロックの候補の総数ＮｕｍＭｅｒｇｅＣａｎｄが１つを超える場合、ｓｋｉｐモードが適用され、符号化情報を参照隣接ブロックの候補リストであるマージリストのインデックスのシンタックス要素ｍｅｒｇｅ＿ｉｄｘが設置される。ＮｕｍＭｅｒｇｅＣａｎｄが１の場合は、その１つが参照隣接ブロックとなるので、ｍｅｒｇｅ＿ｉｄｘを伝送せずとも参照隣接ブロックの候補が確定する。
【００６４】
次に、予測ブロックの予測モードが画像間予測（Ｉｎｔｅｒモード）の場合、マージモードか否かを示すフラグｍｅｒｇｅ＿ｆｌａｇが設置される。ｍｅｒｇｅ＿ｆｌａｇが真（１）で、更に参照隣接ブロックの候補の総数ＮｕｍＭｅｒｇｅＣａｎｄが１つを超える場合、マージモードが適用され、符号化情報を参照隣接ブロックの候補リストであるマージリストのインデックスのシンタックス要素ｍｅｒｇｅ＿ｉｄｘが設置される。ＮｕｍＭｅｒｇｅＣａｎｄが１の場合は、その１つが参照隣接ブロックとなるので、ｍｅｒｇｅ＿ｉｄｘを伝送せずとも参照隣接ブロックの候補が確定する。
【００６５】
ｍｅｒｇｅ＿ｆｌａｇが偽（０）の場合、マージモードを適用せず、通常の動きベクトル検出を行い、動きベクトルや参照ピクチャ番号等の符号化情報を伝送する（動き検出モードに該当する）。予測ブロック毎に、予測ブロックの属するスライスのスライスタイプにより、符号化及び復号の際に使用する参照リストを選択する。スライスタイプｓｌｉｃｅ＿ｔｙｐｅが“Ｂ”の場合、片方向予測或いは双予測を示すフラグｉｎｔｅｒ＿ｐｒｅｄ＿ｆｌａｇを設定する。
【００６６】
ｉｎｔｅｒ＿ｐｒｅｄ＿ｆｌａｇはＰｒｅｄ＿Ｌ０（Ｌ０予測）、Ｐｒｅｄ＿Ｌ１（Ｌ１予測）或いはＰｒｅｄ＿ＢＩ（双予測）に設定する。ｉｎｔｅｒ＿ｐｒｅｄ＿ｆｌａｇに基づいて、参照リストＬＸ（Ｘ＝０或いは１）を設定する。設定された参照リストごとに動きベクトル検出にて求められた、参照ピクチャ番号を表すシンタックス要素ｒｅｆ＿ｉｄｘ＿ｌＸ、及び動きベクトルと予測ブロックの周囲の隣接ブロックの予測動きベクトルとの差分動きベクトルのシンタックス要素ｍｖｄ＿ｌＸ［ｉ］が設置される。ここで、Ｘは０或いは１で参照リストを示し、ｉは差分動きベクトルの成分を表し、ｉ＝０はｘ成分を、ｉ＝１はｙ成分を表す。
【００６７】
次に、予測動きベクトルの候補の総数ＮｕｍＭｖｐＣａｎｄ（ＬＸ）が１つを超える場合に、参照する予測動きベクトルの候補リストであるＭＶＰリストのインデックスのシンタックス要素ｍｖｐ＿ｉｄｘ＿ｌＸが設置される。ＮｕｍＭｖｐＣａｎｄ（ＬＸ）は、参照リストＬＸ（Ｘは０或いは１）で予測ブロックの予測動きベクトルの候補の総数を算出する関数を表す。また、動きベクトルの予測方法により予測動きベクトルの候補の総数ＮｕｍＭｖｐＣａｎｄ（ＬＸ）が１つの場合に、インデックスｍｖｐ＿ｉｄｘ＿ｌＸは設置されす、符号化されない。予測動きベクトルの候補の総数が１つであれば、その１つが予測動きベクトルとなるので、ｍｖｐ＿ｉｄｘ＿ｌＸを伝送せずとも参照する予測動きベクトルの候補が確定する為である。以上のシンタックスに基づいて、動画像のビットストリームの符号化及び復号が可能となる。
【００６８】
次に、動き検出モードにおける参照する予測動きベクトルを備える周囲の隣接ブロック、或いはマージモードにおける符号化情報の参照先となる周囲の隣接ブロックの配置の一例を図９（ａ）、（ｂ）に示す。図９（ａ）、（ｂ）では、処理対象となる予測ブロックに対して、隣接するブロックを最小予測ブロックで表している。
【００６９】
この構成は、符号化情報格納メモリ１１４、２１０に記録された既に符号化済みの符号化情報に対して、処理対象の予測ブロックの位置と大きさ（ブロックの幅及び高さ）に基づいてアクセスする場合に都合が良い。図９（ａ）、（ｂ）で示される周囲の隣接ブロックについて、処理対象の予測ブロックの左側に隣接するブロックを記号“Ａ”で表し、上側に隣接するブロックを“Ｂ”で表す。添え字の数字は位置を表す。
【００７０】
ブロック“Ｔ”は時間が異なる別のピクチャの同一位置に隣接するブロックの一例である。本発明の実施例では処理対象の予測ブロックに対して別ピクチャの右下に設定することとする。尚、処理対象の予測ブロックの位置によって、ブロックＴがピクチャ外となる場合は、処理対象の予測ブロックに対して別ピクチャの中央付近の最小予測ブロックの位置とする。図９（ａ）は同一ピクチャ上の空間にある隣接ブロックで、５つの候補とし、時間が異なる別ピクチャにある候補と合わせて６つの候補から構成される。図９（ｂ）は同一ピクチャ上の空間にある隣接ブロックで、４つの候補とし、時間が異なる別ピクチャにある候補と合わせて５つの候補から構成される。
【００７１】
図１のように隣接する全てのブロックを候補としてもよいが、例えば、処理対象の予測ブロックのサイズが６４×６４画素で、符号化情報格納メモリ１１４、２１０に符号化情報が記憶されるブロックのサイズを４×４画素とすると、処理対象の予測ブロックに隣接するブロックは左側で１６個、上側で１６個、更にコーナーで３個のブロックが参照先となる隣接ブロックとなる。ハードウェアで実装する場合、想定出来得る最大のメモリアクセス回数、メモリ量、及び処理量（処理時間）を考慮する必要がある。
【００７２】
本発明の実施例においては、図９（ａ）に示すように、左側に隣接するブロック、上側に隣接するブロックをそれぞれ１つに限定することにより参照する候補を絞り、左斜め下側、右斜め上側及び左斜め上側に隣接するブロックを候補として加えている。また、図９（ｂ）では、左側に隣接するブロック、上側に隣接するブロックをそれぞれ図９（ａ）とは異なる１つに限定することにより参照する候補を絞り、左斜め下側及び右斜め上側に隣接するブロックを候補としている。
【００７３】
このように、予め候補を限定することで、本発明の実施例では符号化効率を殆ど低下させることなく、メモリアクセス回数、メモリ量、及び処理量（処理時間）を削減する効果がある。また、後述する実施例３以降ではメモリアクセス回数、メモリ量、及び処理量（処理時間）を削減することが出来る上に、マージインデックス、ＭＶＰインデックスの符号量を削減することが出来るので、発生符号量を削減する効果もある。また、本発明の実施例ではマージモードと動き検出モードでは、候補の位置を共通化することにより、更なるメモリアクセス回数、メモリ量、及び処理量（処理時間）の削減を図っている。
【００７４】
以下では、図９（ａ）の配置例を使用して説明を行うものとする。図９（ｂ）の配置例を使用する場合は、以下の説明においてＣ０を省略することで、図９（ａ）の配置例と同様の処理を行うことができる。尚、参照隣接ブロックの配置は、動画像符号化装置１００及び動画像復号装置２００にて矛盾が生じない限り、どのような構成をとってもよい。また、参照隣接ブロックの符号化情報は、動画像符号化装置１００で既に符号化済み、動画像復号装置２００で既に復号済みの情報とし、符号化情報格納メモリ１１４、２１０に記憶出来る限り、どのような情報でも良いこととする。
【００７５】
図１０は、動画像符号化装置１００の構成を示す図２及び動画像復号装置２００の構成を示す図４の中に設置される実施例１のインター予測情報検出部１０４、２０５の詳細を示すものである。図１０中の太点線で囲まれる部分はインター予測情報検出部１０４、２０５を示しており、この図を用いて説明する。インター予測情報検出部１０４、２０５は、処理対象ブロック位置検出部３０１、隣接ブロック指定部３０２及び一時メモリ３０３を含む。マージモードと動き検出モードの両方のモードで、候補の位置を図９（ａ）の配置に共通化し、図９（ａ）の配置の隣接ブロックの符号化情報を符号化情報格納メモリ１１４、２１０から取得する手順を説明する。
【００７６】
最初に、処理対象の予測ブロックのピクチャ内での位置とサイズの情報が処理対象ブロック位置検出部３０１に入力される。処理対象の予測ブロックの位置は、ピクチャの左上の画素を原点とし、処理対象の予測ブロックの左上の画素までの水平及び垂直方向の画素単位の距離で表される。更に、処理対象の符号化ブロックの分割モードを表すＰａｒｔＭｏｄｅと符号化ブロックが再帰的に分割された回数により、処理対象の予測ブロックの幅と高さが算出され、処理対象の予測ブロックが参照する参照隣接ブロックの位置が算出される。
【００７７】
算出された隣接ブロックの位置に基づいて、隣接ブロック指定部３０２は符号化情報格納メモリ１１４、２１０にアクセスして、その中から図９（ａ）に示される隣接ブロックの位置に該当する符号化情報を一時メモリ３０３に読み込む。一時メモリ３０３は、インター予測情報検出部１０４、２０５内部に設けられ、処理対象の予測ブロックが参照する参照隣接ブロックの符号化情報を記憶するメモリである。ここで、算出された隣接ブロックの位置が画面外となる場合は、当該隣接ブロックは存在しないので、“０”を一時メモリ３０３に記録することとする。
【００７８】
以上のように、マージモードと動き検出モードの両方のモードで候補の位置を共通化することで、符号化側では隣接ブロックの符号化情報の一時メモリ３０３への格納処理量が削減される。また、予測モード毎に予測方法を変更して、その度に必要な隣接ブロックの符号化情報を取得する為に、符号化情報格納メモリ１１４にアクセスする必要が無くなる。一方、復号側ではマージモードと動き検出モードの判別を行う前に、隣接ブロックの符号化情報の一時メモリ３０３への格納処理を開始することが可能となるので、復号処理の速度を向上することが出来る。
【００７９】
本発明の実施例に係る符号化情報の選出方法を備える動画像符号化装置１００及び動画像復号装置２００では、処理対象の予測ブロックの動きベクトルや参照ピクチャ番号等の符号化情報をそのまま符号化するのではなく、符号化情報格納メモリ１１４、２１０に格納された、既に符号化／復号済みの周囲の隣接ブロックの符号化情報を参照、利用する。そして、参照隣接ブロックの位置を示すインデックスや動きベクトルを予測する予測動きベクトルのインデックスを符号化することで、符号化情報にかかる符号量の削減が実現される。以下では、インター予測情報検出部１０４、２０５により取得された隣接ブロックの符号化情報から、符号化過程で参照隣接ブロックの位置を示すインデックスや動きベクトルを予測する予測動きベクトルのインデックスを導出する手法と、符号化過程に対応する復号過程で復号された参照隣接ブロックの位置を示すインデックスや動きベクトルを予測する予測動きベクトルのインデックスに基づいて、符号化情報を取得する手法の具体的な実施例を示すこととする。
【００８０】
（実施例１）
まず、動画像符号化装置１００の構成を示す図２の中に設置される実施例１のマージ検出部１０６について説明する。図１１はマージ検出部１０６の詳細な構成を示すものである。図１１中の太点線で囲まれる部分はマージ検出部１０６を示しており、この図を用いて説明する。マージ検出部１０６は、符号化情報導出部３１０、参照候補リスト作成部３１１、同一情報検出部３１２、出力部３１３及び参照候補リスト格納メモリ３１４を含む。
【００８１】
最初に、スイッチ１０８に入力される動画像符号化装置１００により制御される予測モードにより、インター予測情報検出部１０４の出力先がマージ検出部１０６に切り換えられる。インター予測情報検出部１０４の内部の一時メモリ３０３に記憶された処理対象の予測ブロックが参照する参照隣接ブロックの符号化情報が符号化情報導出部３１０に入力される。
【００８２】
符号化情報導出部３１０の動作を図１２のフローチャートを用いて説明する。最初に入力された隣接ブロックの中から処理対象の予測ブロックと同じピクチャにある隣接ブロックの符号化情報が有効か否かを判定し、導出する（Ｓ１００）。
【００８３】
図１３に処理対象の予測ブロックと同じピクチャにある隣接ブロック毎の判定処理の詳細な流れを示す。まず、変数Ｎを初期化する（Ｓ２００）。変数Ｎには図９（ａ）に示される同一のピクチャ上にある隣接ブロックＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０が設定される。ここで、初期化時にはＮ＝Ａ１に設定することとし、変数Ｎの更新はＢ１，Ｂ０，Ａ０，Ｃ０の順で行うこととする。
【００８４】
次に、以降の判定で使用する隣接ブロックの符号化情報を格納しておく変数を初期化する。ここで、変数は隣接ブロックが有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＮ、動きベクトルｍｖＬＸＮ、参照ピクチャ番号ｒｅｆＩｄｘＬＸＮ及び参照リストの有効性を示すフラグｐｒｅｄＦｌａｇＬＸＮであり、次のように初期化される（Ｓ２０１）。
ａｖａｉｌａｂｌｅＦｌａｇＮ＝０
ｍｖＬＸＮ＝（０，０）
ｒｅｆＩｄｘＬＸＮ＝０
ｐｒｅｄＦｌａｇＬＸＮ＝０
ここで、添え字Ｘには参照リストを表す０若しくは１が設定される。変数Ｎの隣接ブロック（以下、隣接ブロックＮとする）の位置及び符号化情報を取得する（Ｓ２０２）。
【００８５】
取得された隣接ブロックＮの位置に基づいて、隣接ブロックＮが有効か否かを判定する（Ｓ２０３）。例えば、処理対象の予測ブロックがピクチャ左端に位置する場合、処理対象の予測ブロックの左の隣接ブロックは存在しないので、符号化情報格納メモリ１１４の中に該当する符号化情報は無いことになり、無効と判定される。隣接ブロックＮが無効の場合（Ｓ２０３のＮ）、ａｖａｉｌａｂｌｅＦｌａｇＮを“０”に設定する（Ｓ２０７）。隣接ブロックＮが有効の場合（Ｓ２０３のＹ）、隣接ブロックＮの予測モードが画面内符号化（Ｉｎｔｒａ）モードか否かを判定する（Ｓ２０４）。
【００８６】
隣接ブロックＮの予測モードがＩｎｔｒａモードの場合（Ｓ２０４のＹ）、ａｖａｉｌａｂｌｅＦｌａｇＮを“０”に設定する（Ｓ２０７）。隣接ブロックＮの予測モードがＩｎｔｒａモードでない場合（Ｓ２０４のＮ）、ａｖａｉｌａｂｌｅＦｌａｇＮを“１”に設定する（Ｓ２０５）。続いて、隣接ブロックＮの符号化情報を、ｒｅｆＩｄｘＬＸＮ、ｍｖＬＸＮ及びｐｒｅｄＦｌａｇＬＸＮに代入して設定する（Ｓ２０６）。
【００８７】
以上のようにして、隣接ブロックＮに対する判定処理が終了すると、変数Ｎが隣接ブロックの最後か否かの判定を実施する（Ｓ２０８）。変数Ｎの更新はＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０の順に行われるので、ここではＮがＣ０か否かの判定を行う。ＮがＣ０であれば（Ｓ２０８のＹ）、全ての隣接ブロックに対して判定をしたことになり、処理を終了する。ＮがＣ０でない場合（Ｓ２０８のＮ）、Ｎの更新を行う（Ｓ２０９）。上述した隣接ブロックの順番にＮを更新して、ステップＳ２０１以降の処理を隣接ブロックＮについて繰り返す。以上のようにして、処理対象の予測ブロックと同一ピクチャ上に存在する周囲の隣接ブロックを参照ブロックとして、その符号化情報が導出される。
【００８８】
続いて、図１２に戻り、時間が異なる別のピクチャをマージ候補とする場合の処理対象の予測ブロックの参照ピクチャ番号を決定する（Ｓ１０１）。この処理は、次に説明する、時間が異なる別のピクチャの同一位置に隣接するブロックの動きベクトルを参照して処理対象の予測ブロックがインター予測する際の参照ピクチャを決定する為に行われる。その際、既に符号化済みの隣接ブロックの符号化情報から処理対象の予測ブロックが参照するピクチャの参照ピクチャ番号を決定する。ここでは、前の処理（Ｓ１００）にて導出された同一のピクチャ上の隣接ブロックの符号化情報に基づく手法を図１４を用いて説明する。
【００８９】
まず、ステップＳ１００により導出された４つの隣接ブロックを３つのグループに分類する。グループとしては、処理対象の予測ブロックの左辺に接する隣接ブロックをグループＡ、上辺に接する隣接ブロックをグループＢ、及びコーナーで接する隣接ブロックをグループＣとして、それぞれのグループで判定を行う。
【００９０】
まず、グループＡについて図１４（ａ）を用いて説明する。グループＡに属する隣接ブロックはＡ１であるので、ステップＳ１００でのＡ１が有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＡ１を調べる（Ｓ３００）。ａｖａｉｌａｂｌｅＦｌａｇＡ１が１であれば（Ｓ３００のＹ）、グループＡの参照ピクチャ番号ｒｅｆＩｄｘＬＸＡをＡ１の参照ピクチャ番号に設定する。そうでなければ（Ｓ３００のＮ）、ｒｅｆＩｄｘＬＸＡを参照ピクチャ番号が無いことを示す−１に設定する。
【００９１】
同様にして、グループＢについて図１４（ｂ）を用いて説明する。グループＢに属する隣接ブロックはＢ１であるので、ステップＳ１００でのＢ１が有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＢ１を調べる（Ｓ３０１）。ａｖａｉｌａｂｌｅＦｌａｇＢ１が１であれば（Ｓ３０１のＹ）、グループＢの参照ピクチャ番号ｒｅｆＩｄｘＬＸＢをＢ１の参照ピクチャ番号に設定する。そうでなければ（Ｓ３０１のＮ）、ｒｅｆＩｄｘＬＸＢを−１に設定する。
【００９２】
グループＣに属する隣接ブロックはＡ０、Ｂ０とＣ０であり、図１４（ｃ）に示されるように、Ｂ０、Ａ０、Ｃ０の順に判定を行う。Ａ１、Ｂ１と同様にＢ０のフラグａｖａｉｌａｂｌｅＦｌａｇＢ０を調べる（Ｓ３０２）。ａｖａｉｌａｂｌｅＦｌａｇＢ０が１であれば（Ｓ３０２のＹ）、グループＣの参照ピクチャ番号ｒｅｆＩｄｘＬＸＣをＢ０の参照ピクチャ番号に設定し、そうでなければ（Ｓ３０２のＮ）、Ａ０のフラグａｖａｉｌａｂｌｅＦｌａｇＡ０を調べる（Ｓ３０３）。ａｖａｉｌａｂｌｅＦｌａｇＡ０が１であれば（Ｓ３０３のＹ）、グループＣの参照ピクチャ番号ｒｅｆＩｄｘＬＸＣをＡ０の参照ピクチャ番号に設定する。そうでなければ（Ｓ３０３のＮ）、Ｃ０のフラグａｖａｉｌａｂｌｅＦｌａｇＣ０を調べる（Ｓ３０４）。ａｖａｉｌａｂｌｅＦｌａｇＣ０が１であれば（Ｓ３０４のＹ）、グループＣの参照ピクチャ番号ｒｅｆＩｄｘＬＸＣをＣ０の参照ピクチャ番号に設定する。そうでなければ（Ｓ３０４のＮ）、ｒｅｆＩｄｘＬＸＣを−１に設定する。
【００９３】
尚、図９（ｂ）に示される同一のピクチャ上にある隣接ブロックのように、Ｃ０の位置のブロックが無い場合は、Ｂ０とＡ０の２つの隣接ブロックに対して判定を行うこととする。こうして導出された各グループの参照ピクチャ番号ｒｅｆＩｄｘＬＸＮ（ＮはＡ，Ｂ或いはＣ）の多数決或いは最小値を選択することで時間が異なる別のピクチャの同一位置に隣接するブロックの参照ピクチャ番号を決定する。
【００９４】
図１５に参照ピクチャ番号ｒｅｆＩｄｘＬＸＮに基づく判定を示す。図１５の上から順に説明する。１〜４行目はｒｅｆＩｄｘＬＸＮに同じ値が存在する場合であり、多数決により選択する。１行目はｒｅｆＩｄｘＬＸＮが全て同じ場合であり、−１であれば０を、そうでなければｒｅｆＩｄｘＬＸＡの値とする。２〜４行目は３つのｒｅｆＩｄｘＬＸＮのうち２つが同じ場合であり、２つが同じ場合の値が−１なら残りの１つのｒｅｆＩｄｘＬＸＮの値を、そうでなければ２つが同じ場合の値とする。
【００９５】
５〜８行目はｒｅｆＩｄｘＬＸＮに同じ値が存在しない場合であり、その中から最小値を選択する。３つの中から−１となっているｒｅｆＩｄｘＬＸＮを除き、最小の参照ピクチャ番号の値を選択する。以上のようにして、処理対象の予測ブロックの参照ピクチャ番号が決定されるが、この手法以外の手法を用いても構わない。
【００９６】
図１２に戻り、次に、時間が異なる別のピクチャの同一位置に隣接するブロックの符号化情報が有効か否かを判定し、導出する（Ｓ１０２）。図１６に処理対象の予測ブロックと別のピクチャにある隣接ブロックの判定処理の詳細な流れを示す。最初に処理対象の予測ブロックを含むピクチャとは時間が異なる別のピクチャを指定する（Ｓ４００）。処理対象の予測ブロックを含むスライスがＰスライスの場合、Ｌ０予測のみ使用出来るので、Ｌ０の参照リストの中の参照ピクチャ番号０で示されるピクチャを指定する。Ｂスライスの場合、Ｌ０予測、Ｌ１予測の一方及びＬ０，Ｌ１の双予測が使用可能であるが、Ｌ０或いはＬ１のどちらか一方の参照リストの参照ピクチャ番号０で示されるピクチャを指定する。ここでは、Ｂスライスの場合の時間が異なる別のピクチャの指定について言及しないが、例えばスライスヘッダー内に、Ｂスライスの場合にどちらの参照リストを参照するかを予め決めておくパラメータを挿入する等の手法も考えられる。
【００９７】
続いて、参照する時間が異なる別のピクチャの同一位置に隣接するブロックの位置を指定する（Ｓ４０１）。実施例１では、図９（ａ）で示される参照隣接ブロック“Ｔ”を時間が異なる別のピクチャの同一位置に隣接するブロックとしているので、処理対象の予測ブロックの位置と分割モードを表すＰａｒｔＭｏｄｅと分割回数により、処理対象の予測ブロックの幅と高さが算出され、隣接ブロック“Ｔ”の位置が算出される。算出された隣接ブロックの位置がピクチャ外となる場合は、時間が異なる別のピクチャにおいて、処理対象の予測ブロックと同一位置の中央付近の位置とする。以下の説明では、時間が異なる別のピクチャをｃｏｌピクチャ、そのピクチャの処理対象のブロックの同一位置に隣接するブロックをｃｏｌブロックとし、その動きベクトルや参照ピクチャ番号には添え字として“Ｃｏｌ”を付けて表すこととする。
【００９８】
ｃｏｌピクチャとその中の処理対象の予測ブロックと同一位置に隣接するブロックｃｏｌブロックの位置に基づいて、ｃｏｌブロックの符号化情報を符号化情報格納メモリ１１４にアクセスして読み込み、符号化情報が有効か否かを判定し、動きベクトルを導出する（Ｓ４０２）。
【００９９】
図１７はそれらの導出の詳細な処理を示し、この図を用いて説明する。符号化情報格納メモリ１１４から読み込まれたｃｏｌブロックの符号化情報と位置からｃｏｌブロックが有効か否かを判定する（Ｓ５００）。ｃｏｌブロックが存在しない、或いはｃｏｌブロックの予測モードがＩｎｔｒａの場合（Ｓ５００のＹ）、ｃｏｌブロックの基準動きベクトルｍｖＣｏｌを（０，０）、基準有効フラグａｖａｉｌａｂｌｅＦｌａｇＣｏｌを０に設定し（Ｓ５０１）、ステップＳ５０９に進む。そうでない場合（Ｓ５００のＮ）、ｃｏｌブロックのＬ０参照リストの有効性を示すフラグｐｒｅｄＦｌａｇＬ０の判定に進む（Ｓ５０２）。
【０１００】
ｐｒｅｄＦｌａｇＬ０が０の場合（Ｓ５０２のＹ）、Ｌ０予測が無効なので、Ｌ１予測の符号化情報を選択し、ｍｖＣｏｌをｍｖＬ１、基準参照ピクチャ番号ｒｅｆＩｄｘＣｏｌをｒｅｆＩｄｘＬ１に設定し（Ｓ５０３）、ステップＳ５０７に進む。そうでない場合（Ｓ５０２のＮ）、即ちＬ０予測が有効な場合、ｃｏｌブロックのＬ１参照リストの有効性を示すフラグｐｒｅｄＦｌａｇＬ１の判定に進む（Ｓ５０４）。
【０１０１】
ｐｒｅｄＦｌａｇＬ１が０の場合（Ｓ５０４のＹ）、Ｌ１予測が無効なので、Ｌ０予測の符号化情報を選択し、ｍｖＣｏｌをｍｖＬ０、ｒｅｆＩｄｘＣｏｌをｒｅｆＩｄｘＬ０に設定し（Ｓ５０５）、ステップＳ５０７に進む。そうでない場合（Ｓ５０４のＮ）、即ちＬ０及びＬ１予測とも有効な場合、Ｐｒｅｄ＿ＢＩモードの場合の導出に進む（Ｓ５０６）。Ｐｒｅｄ＿ＢＩモードの場合の導出では、Ｌ０予測或いはＬ１予測のどちらか一方を選択する。
【０１０２】
選択方法は、例えばステップＳ５００にて選択したｃｏｌピクチャと同じ参照リストを選択する、ｃｏｌブロックのＬ０予測、Ｌ１予測のそれぞれの参照ピクチャでｃｏｌピクチャとの画像間距離が近い方を選択する、或いはｃｏｌブロックのＬ０予測、Ｌ１予測のそれぞれの動きベクトルが処理対象のピクチャと交差する方を選択する等が挙げられる。
【０１０３】
３つ目の判定基準の一例を図１８に示す。この例では、処理対象のピクチャがｃｏｌブロックの動きベクトルと交差する場合、即ち、ｃｏｌピクチャの参照ピクチャ、処理対象のピクチャ、ｃｏｌピクチャの時間順に表示され、ｃｏｌブロックに相当するブロックは必ず処理対象のピクチャ内部に存在することになり、微小時間内で周辺領域の動きを評価する上では、交差する側の予測を選択する方が動きベクトル予測において近い値が得られる信頼性が高いことになる。その為、処理対象のピクチャと交差する動きベクトルの参照リスト側を選択し、ｍｖＣｏｌ及びｒｅｆＩｄｘＣｏｌを設定する。
【０１０４】
図１７に戻り、次に、動きベクトルが存在することから、基準有効フラグａｖａｉｌａｂｌｅＦｌａｇＣｏｌを１に設定する（Ｓ５０７）。参照リストを示す変数Ｘを０に設定して（Ｓ５０８）、ｃｏｌブロックのＬ０及びＬ１予測の動きベクトルを導出する。上述の過程で求められた基準動きベクトルｍｖＣｏｌと基準参照ピクチャ番号ｒｅｆＩｄｘＣｏｌから参照ピクチャの位置を指定し、ｃｏｌピクチャとの画像間距離ｃｏｌＤｉｓｔを算出する。
【０１０５】
一方、ステップＳ４０１にて決定された処理対象の予測ブロックの参照ピクチャ番号ｒｅｆＩｄｘＬＸから参照ピクチャの位置を指定し、処理対象のピクチャとの画像間距離ｃｕｒｒＤｉｓｔを算出する。ｃｕｒｒＤｉｓｔとｃｏｌＤｉｓｔの比較を行う（Ｓ５０９）。ｃｕｒｒＤｉｓｔとｃｏｌＤｉｓｔが同じ場合（Ｓ５０９のＯＫ）、基準動きベクトルｍｖＣｏｌをそのままｍｖＬＸＣｏｌとする（Ｓ５１０）。
【０１０６】
ｃｕｒｒＤｉｓｔとｃｏｌＤｉｓｔが異なる場合（Ｓ５０９のＮＧ）、スケーリングによる距離換算を施す。スケーリングは隣接ブロックの参照するピクチャの画像間距離を、処理対象の予測ブロックが参照するピクチャとの画像間距離に合わせて、隣接ブロックの動きベクトルを距離換算して、処理対象の予測ブロックの動きベクトルとする処理である。図１８にスケーリングの一例を示す。ｃｏｌピクチャ上のｃｏｌブロックと処理対象の予測ブロックのそれぞれ参照するピクチャとの画像間距離がｃｏｌＤｉｓｔ、ｃｕｒｒＤｉｓｔであることから、ｃｏｌブロックの動きベクトルｍｖＣｏｌを次式により処理対象の予測ブロックの画像間距離に合わせて、動きベクトルが算出される（Ｓ５１１）。
【数１】
0005644701.tif 000002
・・・（式１）
【０１０７】
Ｘが１か否かを判定する（Ｓ５１２）。Ｘが１でない、即ち０の場合（Ｓ５１２のＮ）、Ｌ１予測の方向についても同様の手順で算出する。その為、Ｘを１に更新して（Ｓ５１３）、ステップＳ５０９以降を繰り返す。Ｘが１の場合（Ｓ５１２のＹ）、処理を終了する。
【０１０８】
こうして得られた隣接ブロックの符号化情報は参照候補リスト作成部３１１に入力される。実施例１では、参照候補リスト格納メモリ３１４に参照隣接ブロックの符号化情報の候補を登録する記憶領域として参照候補リストを設ける。そして、当該参照隣接ブロックの符号化情報の候補に優先順位をつけて、優先順位の高いものから参照候補リストに、当該参照隣接ブロックの符号化情報の候補を登録する。これにより、参照候補リストのインデックスｍｅｒｇｅ＿ｉｄｘの符号量を削減することが可能となる。
【０１０９】
参照候補リスト中の各要素の位置の高い要素を参照候補リストの前方に配置することで、符号量を削減する。優先順位を示すインデックスｍｅｒｇｅ＿ｉｄｘは０から昇順に割り当てる。例えば、参照候補リストの要素が３個の場合、参照候補リストのインデックス０を“０”（２進数表記）、インデックス１を“１０”（２進数表記）、インデックス２を“１１”（２進数表記）とすることで、インデックス０を表す符号量が１ビットとなり、インデックス０に発生頻度が高いと考えられる要素を登録することで、符号量を削減する。
【０１１０】
参照候補リスト格納メモリ３１４に設けられる参照候補リストは、リスト構造を成し、参照候補リスト内部の所在を示すインデックスと、インデックスに対応する参照隣接ブロックの符号化情報の候補を要素として格納する配列領域が設けられる。この配列領域はｃａｎｄＬｉｓｔで表される。インデックスの数字は０から開始され、参照候補リストｃａｎｄＬｉｓｔの記憶領域に、参照隣接ブロックの符号化情報の候補が格納される。以降の処理では、参照候補リストｃａｎｄＬｉｓｔに登録されたインデックスｉの符号化情報は、ｃａｎｄＬｉｓｔ［ｉ］で表すこととし、参照候補リストｃａｎｄＬｉｓｔとは配列表記をすることで区別することとする。尚、参照候補リストの記憶領域に格納される符号化情報は、特に断らない限り、参照隣接ブロックの位置名（Ａ０，Ａ１，Ｂ０，Ｂ１，Ｃ０，Ｔ）で表すこととする。
【０１１１】
参照候補リスト作成部３１１の動作を図１９のフローチャートを用いて説明する。まず、変数Ｎと参照候補リストのインデックスｋを初期化する（Ｓ６００）。変数Ｎには図９（ａ）に示される隣接ブロックＡ１が初期設定され、ｋは０に設定される。インデックスｋは参照候補リストの記憶領域に設定される符号化情報の候補の格納領域の優先順位を示す。
【０１１２】
次に、参照隣接ブロックＮの有効フラグａｖａｉｌａｂｌｅＦｌａｇＮの判定が行われる（Ｓ６０１）。ａｖａｉｌａｂｌｅＦｌａｇＮが１の場合（Ｓ６０１のＹ）、隣接ブロックＮの符号化情報を参照候補リストｃａｎｄＬｉｓｔ［ｋ］に登録し（Ｓ６０２）、ｋを更新する（Ｓ６０３）。ａｖａｉｌａｂｌｅＦｌａｇＮが０の場合（Ｓ６０１のＮ）、参照候補リストには登録せず、次に進む。
【０１１３】
隣接ブロックＮが最後の参照ブロックか否かを判定する（Ｓ６０４）。最後のブロックである場合（Ｓ６０４のＹ）、インデックスの値を候補リスト総数ＮｕｍＬｉｓｔＣａｎｄに設定した後（Ｓ６０５）、処理を終了する。最後のブロックで無い場合（Ｓ６０４のＮ）、変数Ｎを更新して（Ｓ６０６）、ステップＳ６０１以降の処理を繰り返す。
【０１１４】
ここで、変数Ｎを更新する隣接ブロックの順番が参照候補リストに格納する優先順位となっており、実施例１では、マージモードの場合、順番（Ａ１，Ｂ１，Ｂ０，Ａ０，Ｃ０，Ｔ）を設定することとする。優先順位の上位にあるものほど参照候補リストの前方に登録し、参照候補リスト中のマージ候補を特定するマージインデックスに短い符号長の符号が割り当てられる。
【０１１５】
マージモードの場合は、処理対象の予測ブロックの辺と、符号化情報が最も等しい可能性が高いと考えられる処理対象の予測ブロックの辺とが接している隣接ブロックＡ１及びＢ１を優先して参照候補リストの前方に登録する。これにより、マージインデックスの符号量を削減し、符号化効率を向上させる。
【０１１６】
以上の処理により、参照候補リストに登録された、参照隣接ブロックが全て有効であれば、図２０に示される順番で参照候補リストが作成される。優先順位をインデックスとして、各符号語は参照候補リストの右列で表され、最大符号語長はＮｕｍＬｉｓｔＣａｎｄ−１となる。図２０の場合、ＮｕｍＬｉｓｔＣａｎｄは６であり、符号語は最大５ビットで表される。参照隣接ブロックが１つだけ有効となる場合、最大符号語長は０となるので、インデックスは必要とせず、１つだけ有効と判定された隣接ブロックの符号化情報の候補が参照先として一意に決定されることになる。
【０１１７】
作成された参照候補リストは同一情報検出部３１２に入力される。同一情報検出部３１２では、参照候補リストの中に格納された符号化情報の候補を比較して、同じ符号化情報の候補が存在する場合、最も小さい参照候補リストのインデックスを持つ符号化情報の候補を除いて全て削除される。図２１で示されるフローチャートを用いて動作を説明する。
【０１１８】
まず、参照候補リストのインデックスを表す変数ｎとｍをそれぞれ０と１に設定する（Ｓ７００）。参照候補リストに格納されているインデックスｎとｍの符号化情報を比較する（Ｓ７０１）。ここで、比較する符号化情報は、予測モード、使用されている参照リスト、使用されている参照リスト毎の参照ピクチャ番号、及び使用されている参照リスト毎の動きベクトルである。不一致と判定された場合（Ｓ７０１のＮ）、ステップＳ７０４に進む。一致と判定された場合（Ｓ７０１のＹ）、ｎとｍでインデックスの大きい方、即ちｍが既に削除リストに記録されているか判定する（Ｓ７０２）。
【０１１９】
ｍが削除リストに既に記録されている場合（Ｓ７０２のＹ）、ステップＳ７０４に進む。未だ記録されていない場合（Ｓ７０２のＮ）、ｍを削除リストに記録する（Ｓ７０３）。削除リストは、同一情報検出部３１２内に設けられた一時記憶用のメモリである。
【０１２０】
次に、ｍに１を加算して、更新する（Ｓ７０４）。ｍと候補リスト総数ＮｕｍＬｉｓｔＣａｎｄの比較を行う（Ｓ７０５）。ｍがＮｕｍＬｉｓｔＣａｎｄでない場合（Ｓ７０５のＮ）、ステップＳ７０１以降のインデックスｎの符号化情報との比較を繰り返す。ｍがＮｕｍＬｉｓｔＣａｎｄになった場合（Ｓ７０５のＹ）はｎに１を加算して、更新する（Ｓ７０６）。
【０１２１】
次に、ｎと（ＮｕｍＬｉｓｔＣａｎｄ−１）との比較を行う（Ｓ７０７）。ｎが（ＮｕｍＬｉｓｔＣａｎｄ−１）でない場合（Ｓ７０７のＮ）、ｍを（ｎ＋１）に設定して（Ｓ７０９）、ステップＳ７０１以降の符号化情報の比較を繰り返す。ｎが（ＮｕｍＬｉｓｔＣａｎｄ−１）になった場合（Ｓ７０７のＹ）、削除リストに記録されたインデックスに該当するリストの格納領域の符号化情報を削除して、インデックス０を基準に、インデックスが小さい候補の順で詰めていき、符号語と参照候補リストの総数ＮｕｍＬｉｓｔＣａｎｄを更新して（Ｓ７０８）、終了する。
【０１２２】
最後に、出力部３１３が作成された参照候補リストの中のインデックスと符号化情報を出力する。参照候補リストは、参照候補リストをマージリストとして、リストの中のインデックスをマージインデックスとして出力する。動画像符号化装置１００では、動き補償予測部１０５と予測方法決定部１０７に出力される。
【０１２３】
上述した動画像符号化装置１００の中に設置される実施例１のマージ検出部１０６に対応する、動画像復号装置２００の中に設置される実施例１のマージ判定部２０６について説明する。図２２はマージ判定部２０６の詳細な構成を示すものである。図２２中の太点線で囲まれる部分はマージ判定部２０６を示している。マージ判定部２０６は、符号化情報導出部３１０、参照候補リスト作成部３１１、同一情報検出部３１２、参照候補リスト格納メモリ３１４及び選択部を含む。
【０１２４】
マージ判定部２０６は動画像符号化装置１００のマージ検出部１０６と対応しており、内部の構成は選択部３１５と出力部３１３が異なるだけで、それ以外の符号化情報導出部３１０、参照候補リスト作成部３１１、同一情報検出部３１２及び参照候補リスト格納メモリ３１４は同一の機能を備える。従って、同一情報検出部３１２までの処理で符号化過程と同一の参照候補リストが作成されることになる。
【０１２５】
以下では、作成された参照候補リストから、マージモードにおける参照隣接ブロックの符号化情報を取得する選択部３１５について説明する。選択部３１５は、作成された参照候補リストの中から、第１の符号化ビット列復号部２０２で復号された参照隣接ブロックを特定するインデックスで指定される参照候補リストの隣接ブロックを選択する。選択された符号化情報を動き補償予測部２０７に供給するとともに、符号化情報格納メモリ２１０に供給する。
【０１２６】
次に、動画像符号化装置１００の構成を示す図２の中に設置される実施例１の動きベクトル予測部１０３について説明する。図２３は動きベクトル予測部１０３の詳細な構成を示すものである。図２３中の太点線で囲まれる部分は動きベクトル予測部１０３を示しており、この図を用いて説明する。動きベクトル予測部１０３は、符号化情報導出部３２０、参照候補リスト作成部３２１、同一情報検出部３２２、出力部３２３、参照候補リスト格納メモリ３２４及び差分動きベクトル算出部３２６を含む。
【０１２７】
インター予測情報検出部１０４の内部の一時メモリ３０３に記憶された処理対象の予測ブロックが参照する参照隣接ブロックの符号化情報が符号化情報導出部３２０に入力される。符号化情報導出部３２０の動作を図２４のフローチャートを用いて説明する。
【０１２８】
最初に入力された隣接ブロックの中から処理対象の予測ブロックと同じピクチャにある隣接ブロックの符号化情報が有効か否かを判定し、導出する（Ｓ８００）。図２５に処理対象の予測ブロックと同じピクチャにある隣接ブロック毎の判定処理の詳細な流れを示す。尚、図２５の判定処理はＬ０，Ｌ１のリスト毎に独立して行う。
【０１２９】
処理対象の予測ブロックの予測モードに応じて、片方向予測でＬ０予測の場合は参照リストＬ０に登録されている符号化情報だけを、片方向予測でＬ１予測の場合は参照リストＬ１に登録されている符号化情報だけを、双予測の場合は参照リストＬ０，Ｌ１に登録されているそれぞれの符号化情報の判定処理を行う。本明細書では、特に注釈をしない限り、動き検出モード時の判定処理は参照候補リストの一方をＬＸとして説明することとし、図で示す参照候補リストも１つだけ挙げることにする。
【０１３０】
まず、変数Ｎを初期化する（Ｓ９００）。変数Ｎには図９（ａ）に示される同一のピクチャ上にある隣接ブロックＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０が設定される。ここで、初期化時にはＮ＝Ａ１に設定することとし、変数Ｎの更新はＢ１，Ｂ０，Ａ０，Ｃ０の順で行うこととする。
【０１３１】
次に、以降の判定で使用する隣接ブロックの符号化情報を格納しておく変数を初期化する。ここで、変数は隣接ブロックが有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮ、動きベクトルｍｖＬＸＮ、参照ピクチャ番号ｒｅｆＩｄｘＬＸＮ及び参照リストの有効性を示すフラグｐｒｅｄＦｌａｇＬＸＮであり、次のように初期化される（Ｓ９０１）。
ａｖａｉｌａｂｌｅＦｌａｇＬＸＮ＝０
ｍｖＬＸＮ＝（０，０）
ｒｅｆＩｄｘＬＸＮ＝０
ｐｒｅｄＦｌａｇＬＸＮ＝０
ここで、添え字Ｘには参照リストを表す０若しくは１が設定される。変数Ｎの隣接ブロック（以下、隣接ブロックＮとする）の位置及び符号化情報を取得する（Ｓ９０２）。
【０１３２】
取得された隣接ブロックＮの位置に基づいて、隣接ブロックＮが有効か否かを判定する（Ｓ９０３）。例えば、処理対象の予測ブロックがピクチャ左端に位置する場合、処理対象の予測ブロックの左の隣接ブロックは存在しないので、符号化情報格納メモリ１１４の中に該当する符号化情報は無いことになり、無効と判定される。
【０１３３】
隣接ブロックＮが無効の場合（Ｓ９０３のＮ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮを“０”に設定する（Ｓ９０８）。隣接ブロックＮが有効の場合（Ｓ９０３のＹ）、隣接ブロックＮの予測モードが画面内符号化（Ｉｎｔｒａ）モードか否かを判定する（Ｓ９０４）。
【０１３４】
隣接ブロックＮの予測モードがＩｎｔｒａモードの場合（Ｓ９０４のＹ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮを“０”に設定する（Ｓ９０８）。隣接ブロックＮの予測モードがＩｎｔｒａモードでない場合（Ｓ９０４のＮ）、処理対象の予測ブロックの算出対象の予測と同じ参照リストで同じ参照ピクチャ番号を用いた予測が隣接ブロックＮでも行われているかどうかを判定する（Ｓ９０５）。
【０１３５】
行われていない場合（Ｓ９０５のＮ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮを“０”に設定する（Ｓ９０８）。行われている場合（Ｓ９０５のＹ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮを“１”に設定する（Ｓ９０６）。続いて、隣接ブロックＮの動きベクトルの値をｍｖＬＸＮに代入して設定する（Ｓ９０７）。
【０１３６】
以上のようにして、隣接ブロックＮに対する判定処理が終了すると、変数Ｎが隣接ブロックの最後か否かの判定を実施する（Ｓ９０９）。変数Ｎの更新はＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０の順に行われるので、ここではＮがＣ０か否かの判定を行う。ＮがＣ０であれば（Ｓ９０９のＹ）、全ての隣接ブロックに対して判定をしたことになり、処理を終了する。ＮがＣ０でない場合（Ｓ９０９のＮ）、Ｎの更新を行う（Ｓ９１０）。上述した隣接ブロックの順番にＮを更新して、ステップＳ９０１以降の処理を隣接ブロックＮについて繰り返す。
【０１３７】
尚、実施例１では、ステップＳ９０５にて処理対象の予測ブロックの算出対象の予測と同じ参照リストで同じ参照ピクチャ番号を用いた予測が隣接ブロックＮでも行われているかどうかの判定を行った。これは、同一の参照ピクチャ番号及び参照リストの条件であれば、近接している処理対象の予測ブロックと隣接ブロックＮの動きベクトルが同一または近い値になる確率が高いので、動きベクトルの差分値が小さくなり、符号化効率を向上させることになる。
【０１３８】
しかしながら、必ずしも同一ピクチャ上に同じ参照ピクチャ番号及び参照リストを用いた予測を行う隣接ブロックが存在するとは限らず、存在しない場合は、動きベクトルの差分値を算出することができず、符号化効率を低下させることになる。そこで、ステップＳ９０５の同一の参照リスト及び参照ピクチャ番号の条件で判定を狭めずに、隣接ブロックで行われている予測が、次の条件を満たす場合においても、隣接ブロックが有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮを１（有効）とし、参照隣接ブロックの候補として、その符号化情報を導出する。
条件１：同じ参照リストで、同じ参照ピクチャ番号
条件２：異なる参照リストで、同じ参照ピクチャ番号
条件３：同じ参照リストで、異なる参照ピクチャ番号
条件４：異なる参照リストで、異なる参照ピクチャ番号
【０１３９】
この場合の処理の流れを図２６に示す。図２６が図２５と異なるのは、図２５のステップＳ９０５の条件１のみの条件判定を削除した点、ステップＳ９１１の条件１から４の条件判定を行い、条件１または２を満たさない場合は動きベクトルのスケーリング処理（Ｓ９１２）を追加した点である。それ以外のステップＳ９００からステップＳ９１０は図２５の説明と同等であるので、以下では、変更・追加された箇所について説明する。
【０１４０】
隣接ブロックＮの予測モードがＩｎｔｒａモードでない場合（Ｓ９０４のＮ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮを“１”に設定する（Ｓ９０６）。続いて、処理対象の予測ブロックの算出対象の予測の符号化情報と隣接ブロックＮの符号化情報を比較することで条件１から４を判定する（Ｓ９１１）。条件１または条件２を満たす場合には、隣接ブロックＮの同じ参照リスト（条件１に合致した場合）あるいは異なる参照リスト（条件２に合致した場合）の動きベクトルの値をｍｖＬＸＮに代入して設定する（Ｓ９０７）。
【０１４１】
条件３または条件４を満たす場合、同じ参照リスト（条件３に合致した場合）あるいは異なる参照リスト（条件４に合致した場合）の隣接ブロックＮの動きベクトルのスケーリング処理が実施される（Ｓ９１２）。動き検出モードでは、処理対象の予測ブロックの動きベクトルをより少ない符号量で伝送する為に、動きベクトル予測が行われる。動きベクトル予測は、処理対象の予測ブロックの動きベクトルと隣接ブロックの動きベクトルとの差分をとり、その差分値を符号化する処理である。その際、それぞれ参照するピクチャが異なると動きベクトルの大きさに影響を及ぼし、差分値が実際の処理対象の予測ブロックの動きベクトルよりも大きくなってしまうことがある。
【０１４２】
そこで、隣接ブロックの参照するピクチャの画像間距離を、処理対象の予測ブロックが参照するピクチャとの画像間距離に合わせて、隣接ブロックの動きベクトルを距離換算するスケーリングが実施される。図２７にスケーリングの一例を示す。処理対象の予測ブロックに対して、動きベクトル検出部１０２で動きベクトル検出が行われ、処理対象の予測ブロックの動きベクトル、参照ピクチャ番号及び参照リストが検出される。
【０１４３】
一方、処理対象のピクチャ上の隣接ブロックは自身の符号化情報が既知であるので、それぞれの参照ピクチャ番号から参照するピクチャを選出する。処理対象のピクチャ上の隣接ブロックと処理対象の予測ブロックのそれぞれ参照するピクチャとの画像間距離ｔｄ、ｔｂが算出され、隣接ブロックＮの同じ参照リストＬＸの動きベクトルｍｖＬＸ（条件３に合致した場合）、または異なる参照リストＬＹ（Ｘ＝０のときＹ＝１、Ｘ＝１のときＹ＝０）の動きベクトルｍｖＬＹ（条件４に合致した場合）を次式により処理対象の予測ブロックの画像間距離に合わせるべく距離換算される。
【数２】
0005644701.tif 000003
・・・（式２）
【０１４４】
図２６に戻り、こうして、換算された動きベクトルｍｖＬＸまたはｍｖＬＹをｍｖＬＸＮに代入して設定する（Ｓ９０７）。このスケーリング処理を実施することで、処理対象の予測ブロックに対して、より近い予測動きベクトルを導出して精度向上を図ることが出来る。以上のようにして、処理対象の予測ブロックと同一ピクチャ上に存在する周囲の隣接ブロックを参照ブロックとして、その符号化情報が導出される。
【０１４５】
図２４に戻り、次に、時間が異なる別のピクチャの同一位置に隣接するブロックの符号化情報が有効か否かを判定し、導出する（Ｓ８０１）。この処理は、マージ検出部１０６における符号化情報導出部３１０のステップＳ１０３の処理と基本的に同等である。マージモードの場合、マージ検出部１０６における符号化情報導出部３１０では、ステップＳ１０３の処理を行う前に、処理対象の予測ブロックの参照ピクチャ番号の導出（Ｓ１０２）を行っていた。
【０１４６】
これに対して、動き検出モードの場合、処理対象の予測ブロックに対して、動きベクトル検出部１０２で動きベクトル検出が行われ、処理対象の予測ブロックの動きベクトル、参照ピクチャ番号及び参照リストが検出される。これら検出された処理対象の予測ブロックの符号化情報と既知である時間が異なる別のピクチャの同一位置に隣接するブロックの符号化情報から、それぞれの参照ピクチャ番号から参照するピクチャを選出し、処理対象の予測ブロックとその参照ピクチャとの画像間距離に、時間が異なる別のピクチャの同一位置に隣接するブロックの動きベクトルを換算して算出する。
【０１４７】
こうして得られた隣接ブロックの符号化情報は参照候補リスト作成部３２１に入力される。参照候補リスト作成部３２１で作成される参照候補リストは、処理対象の予測ブロックのＩｎｔｅｒモードに応じて、Ｌ０予測及びＬ１予測の２つの参照リストに対してそれぞれ参照候補リストが作成される。Ｉｎｔｅｒモードでは片方向予測としてＬ０予測とＬ１予測、双予測としてＢｉ−ｐｒｅｄ予測が定義されており、Ｂｉ−ｐｒｅｄ予測ではＬ０予測及びＬ１予測の２つの参照リストを使用する。従って、符号化時の予測モードに応じて、参照候補リスト格納メモリ３１４に１つないし２つの参照候補リストを設けるようにしてもよいし、予めＬ０予測とＬ１予測２つ分の参照候補リストを設けておいてもよい。本明細書では、特に注釈をしない限り、動き検出モード時の参照候補リストは説明の都合上１つだけを挙げて説明することとし、図で示す参照候補リストも１つだけ挙げることにする。
【０１４８】
実施例１では、参照候補リスト格納メモリ３２４に、参照隣接ブロックの符号化情報の候補を登録する記憶領域として参照候補リストを設ける。当該参照隣接ブロックの符号化情報の候補に優先順位をつけて、優先順位の高いものから参照候補リスト格納メモリ３２４に、当該参照隣接ブロックの符号化情報の候補を登録する。これにより、参照候補リストのインデックスｍｖｐ＿ｉｄｘ＿ｌ０及びｍｖｐ＿ｉｄｘ＿ｌ１の符号量を削減することが可能となる。
【０１４９】
優先順位の高い要素を参照候補リストの前方に配置することで、符号量を削減する。参照候補リスト中の各要素の位置を示すインデックスは０から昇順に割り当てる。参照候補リスト格納メモリ３２４に設けられる参照候補リストは、リスト構造を成し、参照候補リスト内部の所在を示すインデックスと、インデックスに対応する参照隣接ブロックの符号化情報の候補を要素として格納する配列領域が設けられる。
【０１５０】
この配列領域はｃａｎｄＬｉｓｔＬＸで表される。インデックスの数字は０から開始され、参照候補リストｃａｎｄＬｉｓｔＬＸの記憶領域に、参照隣接ブロックの符号化情報の候補が格納される。以降の処理では、参照候補リストｃａｎｄＬｉｓｔＬＸに登録されたインデックスｉの符号化情報は、ｃａｎｄＬｉｓｔＬＸ［ｉ］で表すこととし、参照候補リストｃａｎｄＬｉｓｔＬＸとは配列表記をすることで区別することとする。尚、参照候補リストの記憶領域に格納される符号化情報は、特に断らない限り、参照隣接ブロックの位置名（Ａ０，Ａ１，Ｂ０，Ｂ１，Ｃ０，Ｔ）で表すこととする。
【０１５１】
参照候補リスト作成部３２１の動作は、マージ検出部１０６の参照候補リスト作成部３１１と同等であり、符号化情報導出部３２０にて得られた隣接ブロックが有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮを、動き検出モードで定義された順番Ａ１，Ｂ１，Ａ０，Ｂ０，Ｃ０，Ｔに判定し、１（有効）である場合、参照候補リスト格納メモリ３２４に設けた参照候補リストに登録する。
【０１５２】
以上の処理により、参照候補リストに登録され、参照隣接ブロックが全て有効であれば、図２０に示される順番で参照候補リストが作成される。優先順位をインデックスとして、各符号語は参照候補リストの右列で表され、最大符号語長はＮｕｍＬｉｓｔＣａｎｄ−１となる。図２０の場合、ＮｕｍＬｉｓｔＣａｎｄは６であり、符号語は最大５ビットで表される。参照隣接ブロックが１つだけ有効となる場合、最大符号語長は０となるので、符号語は必要とせず、１つだけ有効と判定された隣接ブロックの符号化情報の候補が参照先として一意に決定されることになる。
【０１５３】
作成された参照候補リストは同一情報検出部３２２に入力される。同一情報検出部３２２では、参照候補リストの中に格納された動きベクトルを比較して、同じ動きベクトルを備える候補が存在する場合、最も小さい参照候補リストのインデックスを持つ候補を除いて全て削除される。図２９で示されるフローチャートを用いて動作を説明する。
【０１５４】
まず、参照候補リストのインデックスを表す変数ｎとｍをそれぞれ０と１に設定する（Ｓ１０００）。参照候補リストに格納されているインデックスｎとｍの動きベクトルを比較する（Ｓ１００１）。不一致と判定された場合（Ｓ１００１のＮ）、ステップＳ１００４に進む。一致と判定された場合（Ｓ１００１のＹ）、ｎとｍでインデックスの大きい方、即ちｍが既に削除リストに記録されているか判定する（Ｓ１００２）。
【０１５５】
ｍが削除リストに既に記録されている場合（Ｓ１００２のＹ）、ステップＳ１００４に進む。未だ記録されていない場合（Ｓ１００２のＮ）、ｍを削除リストに記録する（Ｓ１００３）。削除リストは、同一情報検出部３２２内に設けられた一時記憶用のメモリである。
【０１５６】
次に、ｍに１を加算して、更新する（Ｓ１００４）。ｍと候補リスト総数ＮｕｍＬｉｓｔＣａｎｄの比較を行う（Ｓ１００５）。ｍがＮｕｍＬｉｓｔＣａｎｄでない場合（Ｓ１００５のＮ）、ステップＳ１００１以降のインデックスｎの動きベクトルとの比較を繰り返す。ｍがＮｕｍＬｉｓｔＣａｎｄになった場合（Ｓ１００５のＹ）、ｎに１を加算して、更新する（Ｓ１００６）。
【０１５７】
次にｎと（ＮｕｍＬｉｓｔＣａｎｄ−１）との比較を行う（Ｓ１００７）。ｎが（ＮｕｍＬｉｓｔＣａｎｄ−１）でない場合（Ｓ１００７のＮ）、ｍを（ｎ＋１）に設定して（Ｓ１００９）、ステップＳ１００１以降の動きベクトルの比較を繰り返す。ｎが（ＮｕｍＬｉｓｔＣａｎｄ−１）になった場合（Ｓ１００７のＹ）、削除リストに記録されたインデックスに該当するリストの格納領域の符号化情報を削除して、インデックス０を基準に、インデックスが小さい候補の順で詰めていき、符号語と参照候補リストの総数ＮｕｍＬｉｓｔＣａｎｄを更新して（Ｓ１００８）、終了する。
【０１５８】
差分動きベクトル算出部３２６は、こうして作成された参照候補リストの中の符号化情報の動きベクトルを予測動きベクトルとして、動きベクトル検出部１０２が検出した動きベクトルと予測動きベクトルから差分動きベクトルを算出し、算出された差分動きベクトルを出力部３２３に供給する。
【０１５９】
最後に、出力部３２３が、作成された参照候補リストの中のインデックスと差分動きベクトルを出力する。参照候補リストは、参照候補リストをＭＶＰリストとして、リストの中のインデックスをＭＶＰインデックスとして出力する。動画像符号化装置１００では、予測方法決定部１０７に出力される。
【０１６０】
上述した動画像符号化装置１００の中に設置される実施例１の動きベクトル予測部１０３に対応する、動画像復号装置２００の中に設置される実施例１の動きベクトル算出部２０４について説明する。図３０は動きベクトル算出部２０４の詳細な構成を示すものである。図３０中の太点線で囲まれる部分は動きベクトル算出部２０４を示している。動きベクトル算出部２０４は、符号化情報導出部３２０、参照候補リスト作成部３２１、同一情報検出部３２２、参照候補リスト格納メモリ３２４、選択部３２５及び動きベクトル加算部３２７を含む。
【０１６１】
動きベクトル算出部２０４は、動画像符号化装置１００の動きベクトル予測部１０３と対応しており、内部の構成は選択部３２５と出力部３２３及び動きベクトル加算部３２７が異なるだけで、それ以外の符号化情報導出部３２０、参照候補リスト作成部３２１、同一情報検出部３２２及び参照候補リスト格納メモリ３２４は同一の機能を備える。従って、同一情報検出部３２２までの処理で符号化過程と同一の参照候補リストが作成されることになる。
【０１６２】
以下では、作成された参照候補リストから、動き検出モードにおける参照隣接ブロックの符号化情報を取得する選択部３２５について説明する。選択部３２５は、作成された参照候補リストの中から、第１の符号化ビット列復号部２０２で復号された参照隣接ブロックを特定するインデックスで指定される参照候補リストの隣接ブロックを選択する。選択されたリストの隣接ブロックの符号化情報から動きベクトルを予測動きベクトルとして出力し、動きベクトル加算部３２７にて予測動きベクトルと第１の符号化ビット列復号部２０２で復号された差分動きベクトルとを加算して動きベクトルを算出する。当該動きベクトルを動き補償予測部２０７に供給するとともに、選択された参照候補リストの隣接ブロックの符号化情報を符号化情報格納メモリ２１０に供給する。
【０１６３】
（実施例２）
図３１（ａ）、（ｂ）に実施例２における処理対象の予測ブロックに対する参照隣接ブロックの配置を示す。各隣接ブロックの記号は、図９（ａ）、（ｂ）と同様であり、ここでは図３１（ａ）の配置例を使用して説明を行うものとする。実施例２は、処理対象の予測ブロックと同一のピクチャ上にある隣接ブロックを、左側に隣接するブロック群（図３１（ａ）ではＡ０とＡ１）、上側に隣接するブロック群（図３１（ａ）ではＢ０、Ｂ１とＣ０）にグループ化して、それぞれのブロック群の中から、ブロック群の代表値として参照隣接ブロックを１つ選択する。
【０１６４】
選択の方法として、隣接ブロックの符号化情報の予測モード及び位置に基づいて、隣接ブロックが有効か否かを判定することは実施例１、２で同様であるが、ブロック群単位に１つずつ代表する隣接ブロックを選出する点が異なる。このように、複数の隣接ブロックから成るブロック群の中から、そのブロック群を代表する隣接ブロックを選出する方法をスキャンと呼ぶ。このスキャンにより、左側に隣接するブロック群を代表する隣接ブロック、上側に隣接するブロック群を代表する隣接ブロック及び時間が異なる別のピクチャの同一位置に隣接するブロックの３つの隣接ブロックが参照候補リストに登録されることになる。
【０１６５】
従って、参照候補リストに登録する隣接ブロックの総数を実施例１に比べて削減することが出来、同一情報検出部３１２での符号化情報の比較回数、及び同一情報検出部３２２での動きベクトルの比較回数を削減することができる。更に、参照候補リストのインデックスに割り当てる符号語長が短くなり、参照候補リストのインデックスの符号量を削減することが出来る。更に、左側及び上側に隣接するブロック群の中の隣接ブロックの処理順番を予測モードに応じて変更することで、予測モードに適した隣接ブロックの選択が可能となり、符号化効率の改善が期待出来る。
【０１６６】
処理順番は予測モードがマージモードの場合、マージ検出部１０６及びマージ判定部２０６は図３１（ａ）、（ｂ）中の細点線矢印の如く左側に隣接するブロック群は上から下に、上側に隣接するブロック群は左上の隣接ブロックＣ０を最後の順としてＢ１，Ｂ０，Ｃ０の順で処理を行う。動き検出モードの場合、動きベクトル予測部１０３及び動きベクトル算出部２０４は図３１（ａ）、（ｂ）中の細実線矢印の如く左側に隣接するブロック群は下から上に、上側に隣接するブロック群は右から左の順で処理を行う。
【０１６７】
マージモードでは、処理対象の予測ブロックと符号化情報が最も等しい可能性が高いと考えられる隣接ブロックＡ１，Ｂ１を優先して判定処理して選択することで、符号化効率を向上させる。一方、動き検出モードでは、予測動きベクトルの選択の幅を広げるために、左側と上側の隣接ブロックの候補間で符号化情報の差が出やすくなるように、左側と上側の候補間の距離が離れた隣接ブロックＡ０，Ｂ０を優先して判定処理して選択する。これにより、差分動きベクトルの符号量を削減し、符号化効率を向上させる。
【０１６８】
以下では、実施例１とは異なる実施例２の動作についてのみ詳細に説明する。まず、動画像符号化装置１００の中のマージ検出部１０６の動作について説明する。マージ検出部１０６は実施例１で説明した図１１と同じ構成をなすが、符号化情報導出部３１０の処理が実施例１とは異なるので、実施例２における符号化情報導出部３１０の動作について説明する。図３２は実施例２における符号化情報導出部３１０の動作を示すフローチャートである。
【０１６９】
最初に、スイッチ１０８に入力される動画像符号化装置１００により制御される予測モードにより、インター予測情報検出部１０４の出力先がマージ検出部１０６に切り換えられ、インター予測情報検出部１０４の内部の一時メモリ３０３に記憶された、処理対象の予測ブロックが参照する参照隣接ブロックの符号化情報が符号化情報導出部３１０に入力される。
【０１７０】
入力された隣接ブロックの中から処理対象の予測ブロックと同じピクチャにある隣接ブロックの符号化情報が有効か否かを判定し、導出する（Ｓ１０３）。図３３に処理対象の予測ブロックと同じピクチャにある隣接ブロック毎の判定処理の詳細な流れを示す。実施例１の図１３で示されるフローチャートに対して、ステップＳ２１０、ステップＳ２１１、ステップＳ２１２、ステップＳ２１３及びステップＳ２１４が新たに追加された処理であり、それ以外は実施例１と同等であるので、ここでは追加された処理のみの詳細を説明する。
【０１７１】
まず、ブロック群Ｍを初期化する（Ｓ２１０）。ここでは、左側に隣接するブロック群に設定することとし、Ｍには左側のブロック群を示す値であるＡが設定される。次に、ブロック群の中の変数Ｎを初期化する（Ｓ２００）。変数Ｎは上述したブロック群内の処理順に応じて設定され、Ｎの更新時には左側のブロック群でＡ１，Ａ０、上側でＢ１，Ｂ０，Ｃ０の順に更新されることとする。
【０１７２】
図３３中のステップＳ２０１からステップＳ２０９までの処理は基本的に実施例１の図１３と同様であるが、隣接ブロックＮの予測モードが画面内符号化（Ｉｎｔｒａ）モードか否かを判定し（Ｓ２０４）、隣接ブロックＮの予測モードがＩｎｔｒａモードでない場合（Ｓ２０４のＮ）以降の処理が実施例１と異なる。
【０１７３】
隣接ブロックＮの予測モードが画面内符号化（Ｉｎｔｒａ）モードか否かを判定し（Ｓ２０４）、隣接ブロックＮの予測モードがＩｎｔｒａモードでない場合（Ｓ２０４のＮ）、Ｍが左側のブロック群か否かの判定に進み（Ｓ２１１）、Ｍが左側のブロック群である場合（Ｓ２１１のＹ）、ａｖａｉｌａｂｌｅＦｌａｇＭを“１”に設定し（Ｓ２０５）、隣接ブロックＮの符号化情報をｒｅｆＩｄｘＬＸＭ、ｍｖＬＸＭ及びｐｒｅｄＦｌａｇＬＸＭに代入して設定する（Ｓ２０６）。Ｍが上側のブロック群である場合にのみ（Ｓ２１１のＮ）、左側のブロック群で選択された隣接ブロックの符号化情報と隣接ブロックＮの符号化情報が同じであるか否かを判定する（Ｓ２１２）。
【０１７４】
最初に左側のブロック群を代表する隣接ブロックを選択しているので、その符号化情報を保持しておき、上側のブロック群の判定に使用する。この処理により、左側のブロック群を代表する隣接ブロックの符号化情報と重複することが無くなるので、参照先として選択肢の幅が広がる。尚、処理量の削減のために、ステップＳ２１１及びステップＳ２１２の処理を省略して、直接ステップＳ２０５に進むことも出来る。
【０１７５】
左側のブロック群で選択された隣接ブロックの符号化情報と隣接ブロックＮの符号化情報が異なるか左側のブロック群で選択された隣接ブロックの符号化情報が存在しない場合（Ｓ２１２のＮ）、ａｖａｉｌａｂｌｅＦｌａｇＭを“１”に設定し（Ｓ２０５）、隣接ブロックＮの符号化情報をｒｅｆＩｄｘＬＸＭ、ｍｖＬＸＭ及びｐｒｅｄＦｌａｇＬＸＭに代入して設定する（Ｓ２０６）。
【０１７６】
次に、ブロック群Ｍの符号化情報が設定された後、次のブロック群、即ち上側に隣接するブロック群について処理を行う為に、変数Ｍが上側のブロック群を示す値であるＢか否か判定する（Ｓ２１３）。ＭがＢ（上側）でなければ（Ｓ２１３のＮ）、ＭをＢ（上側）に更新して（Ｓ２１４）、ステップＳ２００以降の処理を繰り返す。Ｍが上側であれば（Ｓ２１３のＹ）、処理を終了する。
【０１７７】
隣接ブロックＮが有効でない場合（Ｓ２０３のＮ）、隣接ブロックＮの予測モードが画面内符号化（Ｉｎｔｒａ）モードでない場合（Ｓ２０４のＹ）、左側のブロック群で選択された隣接ブロックの符号化情報と隣接ブロックＮの符号化情報が同じ場合（Ｓ２１２のＹ）、ａｖａｉｌａｂｌｅＦｌａｇＭを“０”に設定し（Ｓ２０７）、隣接ブロックＮがブロック群Ｍ内の隣接ブロックの最後か否かの判定を実施する（Ｓ２０８）。
【０１７８】
変数Ｎの更新は上述したブロック群内の処理順に応じて設定され、ここではＮがＡ０（左側のブロック群の場合）或いはＣ０（上側のブロック群の場合）か否かの判定を行う。隣接ブロックＮが最後のブロックであれば（Ｓ２０８のＹ）、ブロック群Ｍの判定に進み（Ｓ２１３）、そうでなければ（Ｓ２０８のＮ）、変数Ｎをブロック群内の処理順に応じて更新し（Ｓ２０９）、ステップＳ２０１以降の処理を繰り返す。以上のようにして、処理対象の予測ブロックと同一ピクチャ上に存在するブロック群の隣接ブロックを代表する参照ブロックとして、その符号化情報が導出される。
【０１７９】
図３２に戻り、続いて、時間が異なる別のピクチャをマージ候補とする場合の処理対象の予測ブロックの参照ピクチャ番号を決定する（Ｓ１０４）。実施例１におけるステップＳ１０１の処理をそのまま利用しても構わないが、ここでは、前の処理（Ｓ１０３）にて導出された同一のピクチャ上の左側及び上側に隣接するブロック群の符号化情報に基づく手法を図３４（ａ）、（ｂ）を用いて説明する。
【０１８０】
まず、ステップＳ１０３にて導出された左側に隣接するブロック群Ａ及び上側に隣接するブロック群Ｂそれぞれのブロック群の隣接ブロックが有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＭ、参照ピクチャ番号ｒｅｆＩｄｘＬＸＭが入力される。ここでＭはＡ及びＢである。
【０１８１】
まず、左側の隣接ブロック群Ａについて図３４（ａ）を用いて説明する。左側の隣接ブロック群の隣接ブロックが有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＡを調べる（Ｓ１１００）。ａｖａｉｌａｂｌｅＦｌａｇＡが１であれば（Ｓ１１００のＹ）、左側の隣接ブロック群の隣接ブロックの参照ピクチャ番号ｒｅｆＩｄｘＬＸＡを設定し、そうでなければ（Ｓ１１００のＮ）、ｒｅｆＩｄｘＬＸＡを−１に設定する。
【０１８２】
同様にして、上側の隣接ブロック群Ｂについて図３４（ｂ）を用いて説明する。上側の隣接ブロック群の隣接ブロックが有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＢを調べる（Ｓ１１０１）。ａｖａｉｌａｂｌｅＦｌａｇＢが１であれば（Ｓ１１０１のＹ）、上側の隣接ブロック群の隣接ブロックの参照ピクチャ番号ｒｅｆＩｄｘＬＸＢを設定し、そうでなければ（Ｓ１１０１のＮ）、ｒｅｆＩｄｘＬＸＢを−１に設定する。
【０１８３】
こうして導出された各ブロック群の参照ピクチャ番号ｒｅｆＩｄｘＬＸＭ（ＭはＡ，Ｂ）の条件に基づいて、時間が異なる別のピクチャの同一位置に隣接するブロックの参照ピクチャ番号ｒｅｆＩｄｘＬＸＣｏｌを決定する。図３５に参照ピクチャ番号ｒｅｆＩｄｘＬＸＭに基づく判定を示す。図３５の１行目はｒｅｆＩｄｘＬＸＡとｒｅｆＩｄｘＬＸＢが同じ値であり、−１でない場合であり、ｒｅｆＩｄｘＬＸＡを選択する。２行目はｒｅｆＩｄｘＬＸＡとｒｅｆＩｄｘＬＸＢが異なる値であり、共に−１でない場合であり、最小の参照ピクチャ番号の値を選択する。３行目と４行目はどちらか一方が−１の場合であり、−１でない方を選択する。５行目は両方が−１の場合であり、この時は“０”を設定する。以上のようにして、処理対象の予測ブロックの参照ピクチャ番号が決定されるが、この手法以外の手法を用いても構わない。
【０１８４】
図３２に戻り、次に、時間が異なる別のピクチャの同一位置に隣接するブロックの符号化情報が有効か否かを判定し、導出する（Ｓ１０２）。実施例１のステップＳ１０２と同様であるので説明を割愛する。こうして得られた隣接ブロックの符号化情報は参照候補リスト作成部３１１に入力される。
【０１８５】
実施例２でも実施例１と同様に、参照候補リスト格納メモリ３１４に、参照隣接ブロックの符号化情報の候補を登録する記憶領域として参照候補リストを設け、参照隣接ブロックの符号化情報の候補に優先順位をつけて、優先順位の高いものから参照候補リストに、参照隣接ブロックの符号化情報の候補を登録する。これにより、参照候補リストのインデックスｍｅｒｇｅ＿ｉｄｘの符号量を削減する。
【０１８６】
参照候補リスト作成部３１１は実施例１と同様の動作を行い、参照する左側及び上側のの隣接ブロック群、時間が異なる別のピクチャの同一位置に隣接するブロックの有効フラグａｖａｉｌａｂｌｅＦｌａｇＭ（ここでＭはＡ，Ｂ，Ｔ）の判定を行い、隣接ブロックの符号化情報を参照候補リストｃａｎｄＬｉｓｔに登録する。ここで、変数Ｎを更新する隣接ブロックの順番が参照候補リストに格納する優先順位となっており、実施例２では、左側、上側、異なる時間の同じ順番（Ａ，Ｂ，Ｔ）を設定することとする。
【０１８７】
以上の処理により、参照候補リストに登録された、参照隣接ブロックが全て有効であれば、図３６に示される順番で参照候補リストが作成される。優先順位をインデックスとして、各符号語は参照候補リストの右列で表され、最大符号語長は２となる。ここで、参照候補リスト内部の括弧は、左側或いは上側の隣接ブロック群の中から、符号化情報導出部３１０で括弧内の左から右の順に処理され、選択される１つの隣接ブロックを表す。
【０１８８】
作成された参照候補リストは、同一情報検出部３１２にて同一の符号化情報となる参照候補リストに格納された符号化情報を削除し、参照候補リスト作成部３１１にて作成された参照候補リストの中のインデックスと符号化情報を出力する。参照候補リストは、参照候補リストをマージリストとして、当該リストの中のインデックスをマージインデックスとして出力される。動画像符号化装置１００では、動き補償予測部１０５と予測方法決定部１０７に出力される。
【０１８９】
上述した動画像符号化装置１００の中に設置される実施例２のマージ検出部１０６に対応する、動画像復号装置２００の中に設置される実施例２のマージ判定部２０６について説明する。マージ判定部２０６は実施例１で説明した図２２と同じ構成をなし、符号化情報導出部３１０の処理が実施例１と異なる。それ以外の参照候補リスト作成部３１１、同一情報検出部３１２、参照候補リスト格納メモリ３１４及び選択部３１５は実施例１と同一の機能を備える。
【０１９０】
また、実施例２におけるマージ判定部２０６の符号化情報導出部３１０は上述した実施例２におけるマージ検出部１０６の符号化情報導出部３１０と同一の機能を備えているので、実施例２におけるマージ判定部２０６のマージ判定部２０６の同一情報検出部３１２までの処理で、実施例２のマージ検出部１０６と同一の参照候補リストが作成されることになる。作成された参照候補リストから、マージモードにおいて参照隣接ブロックの符号化情報を取得する選択部３１５について説明する。選択部３１５は、作成された参照候補リストの中から、第１の符号化ビット列復号部２０２で復号された、参照隣接ブロックを特定するインデックスで指定される参照候補リストの隣接ブロックを選択する。選択された符号化情報を動き補償予測部２０７に供給するとともに、符号化情報格納メモリ２１０に供給する。
【０１９１】
次に、動画像符号化装置１００の構成を示す図２の中に設置される実施例２の動きベクトル予測部１０３について説明する。実施例２の動きベクトル予測部１０３は実施例１で説明した図２３と同じ構成をなすが、符号化情報導出部３２０の処理が実施例１とは異なるので、実施例２では符号化情報導出部３２０の動作について説明する。図３７は実施例２における符号化情報導出部３２０の動作を示すフローチャートである。
【０１９２】
最初に、スイッチ１０８に入力される動画像符号化装置１００により制御される予測モードにより、インター予測情報検出部１０４の出力先が動きベクトル予測部１０３に切り換えられる。インター予測情報検出部１０４の内部の一時メモリ３０３に記憶された処理対象の予測ブロックが参照隣接ブロックの符号化情報が、符号化情報導出部３２０に入力される。入力された隣接ブロックの中から処理対象の予測ブロックと同じピクチャにある隣接ブロックの符号化情報が有効か否かを判定し、導出する（Ｓ８０２）。図３８に処理対象の予測ブロックと同じピクチャにある隣接ブロック毎の判定処理の詳細な流れを示す。
【０１９３】
実施例１の図２５で示されるフローチャートに対して、ステップＳ９１３、ステップＳ９１４、ステップＳ９１５、ステップＳ９１６及びステップＳ９１７が新たに追加された処理であり、それ以外は実施例１と同等であるので、ここでは追加された処理のみの詳細を説明する。
【０１９４】
まず、ブロック群の変数Ｍを初期化する（Ｓ９１３）。ここでは、左側に隣接するブロック群に設定することとし、Ｍには左側のブロック群を示す値であるＡが設定される。次に、ブロック群の中の変数Ｎを初期化する（Ｓ９００）。変数Ｎは上述したブロック群内の処理順に応じて設定され、Ｎの更新時には左側のブロック群でＡ０，Ａ１、上側でＢ０，Ｂ１，Ｃ０の順に更新されることとする。以降のステップＳ９０１からステップＳ９１０までの処理は基本的に実施例１と同様であるが、隣接ブロックＮの予測モードが画面内符号化（Ｉｎｔｒａ）モードか否かを判定し（Ｓ９０４）、隣接ブロックＮの予測モードがＩｎｔｒａモードでない場合（Ｓ９０４のＮ）以降の処理が実施例１と異なる。
【０１９５】
隣接ブロックＮの予測モードが画面内符号化（Ｉｎｔｒａ）モードか否かを判定し（Ｓ９０４）、隣接ブロックＮの予測モードがＩｎｔｒａモードでない場合（Ｓ９０４のＮ）、Ｍが左側のブロック群か否かの判定に進み（Ｓ９１４）、Ｍが左側のブロック群である場合（Ｓ９１４のＹ）、ステップＳ９０５の処理に進む。Ｍが上側のブロック群である場合にのみ（Ｓ９１４のＮ）、左側のブロック群で選択された隣接ブロックの動きベクトルｍｖＬＸＡと隣接ブロックＮの動きベクトルが同じであるか否かを判定する（Ｓ９１５）。
【０１９６】
最初に左側のブロック群を代表する隣接ブロックを選択しているので、その動きベクトルを保持しておき、上側のブロック群の判定に使用する。この処理により、左側のブロック群を代表する隣接ブロックの動きベクトルと重複することが無くなるので、参照先として選択肢の幅が広がる。尚、処理量の削減のために、ステップＳ９１４及びステップＳ９１５の処理を省略して、直接ステップＳ９０５に進むことも出来る。
【０１９７】
左側のブロック群で選択された隣接ブロックの動きベクトルｍｖＬＸＡと隣接ブロックＮの動きベクトルが同じ場合（Ｓ９１５のＹ）、ステップＳ９０８に進む。異なる場合（Ｓ９１５のＮ）、処理対象の予測ブロックの算出対象の予測と同じ参照リストで同じ参照ピクチャ番号を用いた予測が隣接ブロックＮでも行われているかどうかを判定する（Ｓ９０５）。
【０１９８】
処理対象の予測ブロックの算出対象の動きベクトルを用いた予測と同じ参照リストで同じ参照ピクチャ番号を用いた予測が隣接ブロックＮでも行われている場合（Ｓ９０５のＹ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮを“１”に設定し（Ｓ９０６）、隣接ブロックＮの動きベクトルをｍｖＬＸＭに代入して設定する（Ｓ９０７）。ブロック群Ｍの動きベクトルが設定された後、次のブロック群、即ち上側に隣接するブロック群について処理を行う為に、変数Ｍが上側のブロック群を示す値であるＢか否か判定する（Ｓ９１６）。ＭがＢ（上側）でなければ（Ｓ９１６のＮ）、ＭをＢ（上側）に更新して（Ｓ９１７）、ステップＳ９００以降の処理を繰り返す。ＭがＢ（上側）であれば（Ｓ９１６のＹ）、処理を終了する。
【０１９９】
隣接ブロックＮが有効でない場合（Ｓ９０３のＮ）、隣接ブロックＮの予測モードが画面内符号化（Ｉｎｔｒａ）モードでない場合（Ｓ９０４のＹ）、左側のブロック群で選択された隣接ブロックの動きベクトルｍｖＬＸＡと上側のブロック群の隣接ブロックＮの動きベクトルが同じ場合（Ｓ９１５のＹ）、同じ参照リストで同じ参照ピクチャ番号を用いた予測が行われていない場合（Ｓ９０５のＮ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＭを“０”に設定し（Ｓ９０８）、隣接ブロックＮがブロック群Ｍ内の隣接ブロックの最後か否かの判定を実施する（Ｓ９０９）。変数Ｎの更新は上述したブロック群内の処理順に応じて設定され、ここではＮがＡ１（左側のブロック群の場合）或いはＣ０（上側のブロック群の場合）か否かの判定を行う。
【０２００】
隣接ブロックＮが最後のブロックであれば（Ｓ９０９のＹ）、ブロック群Ｍの判定に進む（Ｓ９１６）。そうでなければ（Ｓ９０９のＮ）、変数Ｎをブロック群内の処理順に応じて更新し（Ｓ９１０）、ステップＳ９０１以降の処理を繰り返す。以上のようにして、処理対象の予測ブロックと同一ピクチャ上に存在するブロック群の隣接ブロックを代表する参照ブロックとして、その符号化情報が導出される。
【０２０１】
実施例２でも実施例１と同様に、隣接ブロックで行われている予測が、次の条件を満たす場合においても、隣接ブロックが有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＭを１（有効）とし、参照隣接ブロックの候補として、その符号化情報を導出することが可能である。
条件１：同じ参照リストで、同じ参照ピクチャ番号
条件２：異なる参照リストで、同じ参照ピクチャ番号
条件３：同じ参照リストで、異なる参照ピクチャ番号
条件４：異なる参照リストで、異なる参照ピクチャ番号
【０２０２】
この場合の処理の流れを図３９に示す。上述した図３８と異なるのは、ステップＳ９０５の条件１のみの条件判定を削除した点、ステップＳ９１１の条件１から４の条件判定を行い、条件１または２を満たさない場合は動きベクトルのスケーリング処理（Ｓ９１２）を追加した点である。
【０２０３】
まず、ブロック群の変数Ｍを初期化する（Ｓ９１３）。ここでは、左側に隣接するブロック群に設定することとし、ＭにはＡが設定される。次に、ブロック群の中の変数Ｎを初期化する（Ｓ９００）。変数Ｎは上述したブロック群内の処理順に応じて設定され、Ｎの更新時には左側のブロック群でＡ０，Ａ１、上側でＢ０，Ｂ１，Ｃ０の順に更新されることとする。以降のステップＳ９０１からステップＳ９１０までの処理は基本的に実施例１の図２６と同様である。隣接ブロックＮの予測モードが画面内符号化（Ｉｎｔｒａ）モードか否かを判定し（Ｓ９０４）、隣接ブロックＮの予測モードがＩｎｔｒａモードでない場合（Ｓ９０４のＮ）以降の処理が実施例２の図３８と異なる。
【０２０４】
隣接ブロックＮの予測モードがＩｎｔｒａモードでない場合（Ｓ９０４のＮ）、即ちＩｎｔｅｒモードの場合は、処理対象の予測ブロックの算出対象の予測の符号化情報と隣接ブロックＮの符号化情報を比較することで条件１から４の判定処理を行う（Ｓ９１１）。条件１または条件２を満たす場合、Ｍが左のブロック群か否かの判定処理に進む（Ｓ９１４）。一方、条件３または条件４を満たす場合、実施例１の図２６のＳ９１２と同様に隣接ブロックＮの動きベクトルのスケーリング処理が実施され（Ｓ９１２）、Ｍが左のブロック群か否かの判定処理に進む（Ｓ９１４）。
【０２０５】
Ｍが左側のブロック群である場合（Ｓ９１４のＹ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＭを“１”に設定される（Ｓ９０６）。Ｍが上側のブロック群である場合（Ｓ９１４のＮ）、左側のブロック群で選択された隣接ブロックの動きベクトルｍｖＬＸＡと隣接ブロックＮの動きベクトルが同じであるか否かを判定する（Ｓ９１５）。尚、処理量の削減の為に、ステップＳ９１４及びステップＳ９１５の処理を省略して、直接ステップＳ９０６に進むことも出来る。
【０２０６】
左側のブロック群で選択された隣接ブロックの動きベクトルｍｖＬＸＡと隣接ブロックＮの符号化情報が同じ場合（Ｓ９１５のＹ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮを“０”に設定し（Ｓ９０８）、異なる場合（Ｓ９１５のＮ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＭを“１”に設定する（Ｓ９０６）。
【０２０７】
実施例１の図２６のステップＳ９０７と同様に隣接ブロックＮの同じ参照リスト（条件１に合致した場合）の動きベクトルｍｖＬＸあるいは異なる参照リスト（条件２に合致した場合）の動きベクトルｍｖＬＹ、または同じ参照リスト（条件３に合致した場合）のスケーリングにより換算された動きベクトルｍｖＬＸあるいは異なる参照リスト（条件４に合致した場合）のスケーリングにより換算された動きベクトルｍｖＬＹをｍｖＬＸＭに代入して設定される（Ｓ９０７）。
【０２０８】
ブロック群Ｍの動きベクトルが設定された後、次のブロック群、即ち上側に隣接するブロック群について処理を行う為に、変数Ｍが上側か否か判定する（Ｓ９１６）。Ｍが上側でなければ（Ｓ９１６のＮ）、ＭをＢ（上側）に更新して（Ｓ９１７）、ステップＳ９００以降の処理を繰り返す。Ｍが上側であれば（Ｓ９１６のＹ）、処理を終了する。
【０２０９】
ａｖａｉｌａｂｌｅＦｌａｇＬＸＭを“０”に設定した場合（Ｓ９０８）、隣接ブロックＮがブロック群Ｍ内の隣接ブロックの最後か否かの判定を実施する（Ｓ９０９）。変数Ｎの更新は上述したブロック群内の処理順に応じて設定され、ここではＮがＡ１（左側のブロック群の場合）或いはＣ０（上側のブロック群の場合）か否かの判定を行う。隣接ブロックＮが最後のブロックであれば（Ｓ９０９のＹ）、ブロック群Ｍの判定に進み（Ｓ９１６）、そうでなければ（Ｓ９０９のＹ）、変数Ｎをブロック群内の処理順に応じて更新し（Ｓ９１０）、ステップＳ９０１以降の処理を繰り返す。以上のようにして、処理対象の予測ブロックと同一ピクチャ上に存在するブロック群の隣接ブロックを代表する参照ブロックとして、その動きベクトルが導出される。
【０２１０】
図３７に戻り、次に、時間が異なる別のピクチャの同一位置に隣接するブロックの符号化情報が有効か否かを判定し、導出する（Ｓ８０１）。これは実施例１のステップＳ８０１と同様なので説明を割愛する。こうして得られた隣接ブロックの符号化情報は参照候補リスト作成部３２１に入力される。参照候補リスト作成部３２１で作成される参照候補リストは、Ｌ０予測及びＬ１予測の２つの参照リストに対してそれぞれ参照候補リストが作成される。本明細書では、特に注釈をしない限り、動き検出モード時の参照候補リストは説明の都合上１つだけを挙げて説明することとし、図で示す参照候補リストも１つだけ挙げることにする。
【０２１１】
実施例２では、参照候補リスト格納メモリ３２４に、参照隣接ブロックの符号化情報の候補を登録する記憶領域として参照候補リストを設ける。参照隣接ブロックの符号化情報の候補に優先順位をつけて、優先順位の高いものから参照候補リスト格納メモリ３２４に、参照隣接ブロックの符号化情報の候補を登録する。これにより、参照候補リストのインデックスｍｖｐ＿ｉｄｘ＿ｌ０及びｍｖｐ＿ｉｄｘ＿ｌ１の符号量を削減することが可能となる。
【０２１２】
優先順位の高い要素を参照候補リストの前方に配置することで、符号量を削減する。優先順位を示すインデックスは０から昇順に割り当てる。参照候補リスト格納メモリ３２４に設けられる参照候補リストは、リスト構造を成し、参照候補リスト内部の所在を示すインデックスと、インデックスに対応する参照隣接ブロックの符号化情報の候補を要素として格納する配列領域が設けられる。この配列領域はｃａｎｄＬｉｓｔＬＸで表される。インデックスの数字は０から開始され、参照候補リストｃａｎｄＬｉｓｔＬＸの記憶領域に、参照隣接ブロックの符号化情報の候補が格納される。以降の処理では、参照候補リストｃａｎｄＬｉｓｔＬＸに登録されたインデックスｉの符号化情報は、ｃａｎｄＬｉｓｔＬＸ［ｉ］で表すこととし、参照候補リストｃａｎｄＬｉｓｔＬＸとは配列表記をすることで区別することとする。尚、参照候補リストの記憶領域に格納される符号化情報は、特に断らない限り、参照隣接ブロックの位置名（Ａ０，Ａ１，Ｂ０，Ｂ１，Ｃ０，Ｔ）で表すこととする。
【０２１３】
参照候補リスト作成部３２１は実施例１と同様の動作を行い、参照する左側及び上側のの隣接ブロック群、時間が異なる別のピクチャの同一位置に隣接するブロックの有効フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＭ（ここでＭはＡ，Ｂ，Ｔ）の判定を行い、隣接ブロックの符号化情報を参照候補リストｃａｎｄＬｉｓｔＬＸに登録する。ここで、変数Ｎを更新する隣接ブロックの順番が参照候補リストに格納する優先順位となっており、実施例２では、左側、上側、異なる時間の同じ順番（Ａ，Ｂ，Ｔ）を設定することとする。以上の処理により、参照候補リストに登録された、参照隣接ブロックが全て有効であれば、図４０に示される順番で参照候補リストが作成される。
【０２１４】
優先順位をインデックスとして、各符号語は参照候補リストの右列で表され、最大符号語長は２となる。ここで、参照候補リスト内部の括弧は、左側或いは上側の隣接ブロック群の中から、符号化情報導出部３２０で括弧内の左から右の順に処理され、選択される１つの隣接ブロックを表す。参照隣接ブロックが１つだけ有効となる場合、最大符号語長は０となるので、符号語は必要とせず、１つだけ有効と判定された隣接ブロックの符号化情報の候補が参照先として一意に決定されることになる。
【０２１５】
作成された参照候補リストは、同一情報検出部３２２にて同一の符号化情報となる参照候補リストに格納された符号化情報を削除し、差分動きベクトル算出部３２６にて作成された参照候補リストの中の符号化情報の動きベクトルを予測動きベクトルとして、動きベクトル検出部１０２が検出した動きベクトルと予測動きベクトルから差分動きベクトルを算出し、算出された差分動きベクトルを出力部３２３に供給する。
【０２１６】
最後に、出力部３２３が、作成された参照候補リストの中のインデックスと差分動きベクトルを出力する。参照候補リストは、参照候補リストをＭＶＰリストとして、リストの中のインデックスをＭＶＰインデックスとして出力する。動画像符号化装置１００では、予測方法決定部１０７に出力される。
【０２１７】
上述した動画像符号化装置１００の中に設置される実施例２の動きベクトル予測部１０３に対応する、動画像復号装置２００の中に設置される実施例２の動きベクトル算出部２０４について説明する。動きベクトル算出部２０４は図３０と同じ構成をなし、符号化情報導出部３２０の処理が実施例１と異なる。それ以外の参照候補リスト作成部３２１、同一情報検出部３２２、参照候補リスト格納メモリ３２４、選択部３２５及び動きベクトル加算部３２７は実施例１と同一の機能を備える。
【０２１８】
また、符号化情報導出部３２０は上述した実施例２における動きベクトル予測部１０３の符号化情報導出部３２０と同一の機能を備えているので、動きベクトル算出部２０４の同一情報検出部３２２までの処理で、実施例２の動きベクトル予測部１０３と同一の参照候補リストが作成されることになる。作成された参照候補リストから、動き検出モードにおいて参照隣接ブロックの符号化情報を取得する選択部３２５について説明する。選択部３２５は、作成された参照候補リストの中から、第１の符号化ビット列復号部２０２で復号された参照隣接ブロックを特定するインデックスで指定される参照候補リストの隣接ブロックを選択する。選択された参照候補リストの隣接ブロックの符号化情報から動きベクトルを予測動きベクトルとして出力し、動きベクトル加算部３２７にて予測動きベクトルと第１の符号化ビット列復号部２０２で復号された差分動きベクトルとを加算して動きベクトルを算出し、動き補償予測部２０７に供給するとともに、選択されたリストの隣接ブロックの符号化情報を符号化情報格納メモリ２１０に供給する。
【０２１９】
尚、実施例２では、各ブロック群から１つの隣接ブロックを、参照隣接ブロックの代表として選出したが、複数個の隣接ブロックを選出しても構わない。但し、ブロック群の中のブロック数を超えない範囲で設定する。
【０２２０】
（実施例３）
実施例３では、予測モードに応じて参照隣接ブロックの選択方法を変える。図３１（ａ）の隣接ブロックの配置を用いて説明する。マージモードでは６つの隣接ブロックＡ０，Ａ１，Ｂ０，Ｂ１，Ｃ０，Ｔの中から１つの隣接ブロックの符号化情報を参照先として選択する。動き検出モードでは６つの隣接ブロックＡ０，Ａ１，Ｂ０，Ｂ１，Ｃ０，Ｔのうち、Ａ０とＡ１を左側に隣接するブロック群、Ｂ０、Ｂ１とＣ０を上側に隣接するブロック群に分類し、各ブロック群の中から１つを代表する隣接ブロックとして選択する。左側及び上側に隣接するブロック群の各代表ブロックとＴの３つの隣接ブロックから１つの隣接ブロックの符号化情報を参照先として選択する。即ち、マージモードは実施例１の手法を、動き検出モードは実施例２の手法をそれぞれに適用する混合手法である。
【０２２１】
マージモードでは、参照隣接ブロックの候補の符号化情報をそのまま用いて、画像間予測を行うので、選択の余地を残す為に、動き検出モードよりも多くの候補をリストに登録する。これは、マージモードは動き検出モードと比較して、多くの情報（動きベクトル、参照インデックス、参照リスト）をわずかな符号量で伝送出来る為であり、マージインデックスの符号量を削減するよりも、隣接ブロックの候補を残して選択の幅を広げた方が符号化効率が向上するからである。一方、動き検出モードでは、参照隣接ブロックの候補の符号化情報をそのまま用いるのではなく、差分動きベクトルをはじめとする符号化情報を符号化するので、スキャンを行い候補を絞ってリストに登録する。これは、候補を絞ることにより、ＭＶＰインデックスの符号量を削減した方が符号化効率が向上するからである。
【０２２２】
実施例３で作成される候補リストは、参照隣接ブロックが全て有効であった場合、予測モード別に図４１のように表される。マージ検出部１０６及び動きベクトル予測部１０３でそれぞれ参照候補リストが作成され、候補リスト総数も異なるので符号語も３項目以降で異なるが、それぞれ最適な符号語として作成されているので、符号化効率の改善が期待出来る。また、符号語長が長くなるが、動き検出モードの符号語“１１”（２進数表記）を同じ行のマージモードの“１１０”（２進数表記）に合わせて、出現する符号語の種類を共通化しても良い。
【０２２３】
（実施例４）
実施例４は、処理対象の予測ブロックと同じピクチャ上にある隣接ブロック（以下、空間の隣接ブロックとする）から２つのブロックを代表する隣接ブロックとして選択する方法である。この点は実施例２と同様であるが、実施例２では空間の隣接ブロックを２つのブロック群に分けて定義し、ブロック群単位に１つずつ代表する隣接ブロックを選出した。実施例４では空間の隣接ブロック全体を１つのブロック群とし、この中から２つの代表する隣接するブロックを選出する点が異なる。
【０２２４】
実施例２と同様に処理対象の予測ブロックと同じピクチャ上にある隣接ブロックを代表する２つの隣接ブロック及び時間が異なる別のピクチャの同一位置に隣接するブロックの３つの隣接ブロックが参照候補リストに登録されることになる。参照候補リストに登録する隣接ブロックの総数を実施例１に比べて削減することが出来るので、同一情報検出部３１２での符号化情報の比較回数、同一情報検出部３２２での動きベクトルの比較回数を削減することができる。更に、参照候補リストのインデックスに割り当てる符号語長が短くなり、参照候補リストのインデックスの符号量を削減することが出来る。更に、隣接ブロックの選出処理順番を予測モードに応じて変更することで、予測モードに適した隣接ブロックの選択が可能となり、符号化効率の改善が期待出来る。
【０２２５】
処理順番は予測モードがマージモードの場合、マージ検出部１０６及びマージ判定部２０６は図９（ａ）のＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０（またはＢ１，Ａ１，Ａ０，Ｂ０，Ｃ０）の順序で処理を行う。動き検出モードの場合、動きベクトル予測部１０３及び動きベクトル算出部２０４は図９（ａ）のＢ０，Ａ０，Ａ１，Ｂ１，Ｃ０（またはＡ０，Ｂ０，Ｂ１，Ａ１，Ｃ０）の順序で処理を行う。
【０２２６】
マージモードでは、隣接ブロックＡ１，Ｂ１を優先して選択し、候補リストに登録する。これは、隣接ブロックＡ１，Ｂ１は、処理対象の予測ブロックと辺が接しているため、他の隣接ブロック（Ａ０，Ｂ０，Ｃ）よりも、処理対象の予測ブロックと符号化情報が等しい可能性が高く、可能性の高い候補を登録することが、マージモードでの符号化効率向上に寄与する。一方、動き検出モードでは、隣接ブロックＡ０，Ｂ０を優先して選択し、候補リストに登録する。隣接ブロックＡ０，Ｂ０は、隣接ブロックの中で候補間の距離が最も離れており、異なる性質の動きベクトルを登録できる可能性が高く、予測動きベクトルの選択の幅を広げることが可能である。これにより、差分動きベクトルを伝送する際に大きな符号量が発生しにくくなり、動き検出モードでの符号化効率向上に寄与する。
【０２２７】
実施例４の動画像符号化装置１００及び動画像復号装置２００の構成は実施例１、２と同じである。また、実施例４の動作は図１１及び図２２の符号化情報導出部３１０、図２３及び図３０の符号化情報導出部３２０の動作を除き実施例２と同一である。以下では、実施例２とは異なる実施例４の動作についてのみ詳細な説明をする。
【０２２８】
まず、動画像符号化装置の中のマージ検出部１０６の動作について説明する。マージ検出部１０６は実施例２の図１１と同じ構成をなすが、符号化情報導出部３１０の処理が実施例２とは異なるので、実施例４における符号化情報導出部３１０の動作について説明する。図４２は実施例４における符号化情報導出部３１０の動作を示すフローチャートである。
【０２２９】
最初に、スイッチ１０８に入力される動画像符号化装置１００により制御される予測モードにより、インター予測情報検出部１０４の出力先がマージ検出部１０６に切り換えられ、インター予測情報検出部１０４の内部の一時メモリ３０３に記憶された、処理対象の予測ブロックが参照隣接ブロックの符号化情報が符号化情報導出部３１０に入力される。
【０２３０】
入力された隣接ブロックの中から処理対象の予測ブロックと同じピクチャにある隣接ブロックの符号化情報が有効か否かを判定し、２つの隣接ブロックを導出する（Ｓ１０５）。図４３に処理対象の予測ブロックと同じピクチャにある隣接ブロック毎の判定処理の詳細な流れを示す。
【０２３１】
まず、選択された隣接ブロックを示す変数ＦをＳ０に設定し、カウンタｋを０に設定する（Ｓ１６００）。選択された隣接ブロックを示す変数ＦのＳ０は最初に選出される第１候補の隣接ブロックを示し、Ｓ１は２番目に選出される第２候補の隣接ブロックを示す。
【０２３２】
次に、処理中の隣接ブロックを示す変数ＮをＡ１に初期化する（Ｓ１６０１）。処理中の隣接ブロックを示す変数ＮはＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０の処理順に応じて設定され、Ｎの更新時にはこの順に更新されることとする。
【０２３３】
次に、以降の判定で使用する隣接ブロックの符号化情報を格納しておく変数を初期化する（Ｓ１６０２）。ここで、変数は隣接ブロックが有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＦ、動きベクトルｍｖＬＸＦ、参照ピクチャ番号ｒｅｆＩｄｘＬＸＦ及び予測方向の有効性を示すフラグｐｒｅｄＦｌａｇＬＸＦであり、次のように初期化される。
ａｖａｉｌａｂｌｅＦｌａｇＦ＝０
ｍｖＬＸＦ＝（０，０）
ｒｅｆＩｄｘＬＸＦ＝０
ｐｒｅｄＦｌａｇＬＸＦ＝０
ここで、添え字Ｘには予測方向を表す０若しくは１が設定される。処理中の隣接ブロックを示す変数Ｎの隣接ブロック（以下、隣接ブロックＮとする）の位置及び符号化情報を取得する（Ｓ１６０３）。
【０２３４】
取得された隣接ブロックＮの位置に基づいて、隣接ブロックＮが有効か否かを判定する（Ｓ１６０４）。例えば、処理対象の予測ブロックがピクチャ左端に位置する場合、処理対象の予測ブロックの左の隣接ブロックは存在しないので、符号化情報格納メモリ１１４の中に該当する符号化情報は無いことになり、無効と判定される。
【０２３５】
隣接ブロックＮが無効の場合（Ｓ１６０４のＮ）、ａｖａｉｌａｂｌｅＦｌａｇＦを“０”に設定する（Ｓ１６１３）。隣接ブロックＮが有効の場合（Ｓ１６０４のＹ）、隣接ブロックＮの予測モードが画面内符号化（Ｉｎｔｒａ）モードか否かを判定し（Ｓ１６０５）、隣接ブロックＮの予測モードがＩｎｔｒａモードの場合（Ｓ１６０５のＹ）、ａｖａｉｌａｂｌｅＦｌａｇＦを“０”に設定する（Ｓ１６１３）。
【０２３６】
隣接ブロックＮの予測モードがＩｎｔｒａモードでない場合（Ｓ１６０５のＮ）、即ちＩｎｔｅｒモードの場合は、ＦがＳ０か否かの判定（Ｓ１６０６）に進み、ＦがＳ０の場合（Ｓ１６０６のＹ）、ａｖａｉｌａｂｌｅＦｌａｇＦ（ａｖａｉｌａｂｌｅＦｌａｇＳ０）を１に設定する（Ｓ１６０８）。
【０２３７】
ＦがＳ０でない場合（Ｓ１６０６のＮ）、既に選択された隣接ブロックの符号化情報と隣接ブロックＮの符号化情報が同じであるか否かを判定する（Ｓ１６０７）。既に選択された隣接ブロックの符号化情報と隣接ブロックＮの符号化情報が同じ場合（Ｓ１６０７のＹ）、ａｖａｉｌａｂｌｅＦｌａｇＦを“０”に設定する（Ｓ１６１３）。
【０２３８】
具体的には、空間の隣接ブロックの最大数を２とした場合、最初に第１候補として選択された符号化情報を保持しておき、第２候補の選出の際の比較判定に使用する。この処理により、第２候補の隣接ブロックの符号化情報が代表する第１候補の隣接ブロックの符号化情報と重複することが無くなるので、より多くの候補を参照先として選択可能になる。尚、処理量の削減のために、ステップＳ１６０６及びステップＳ１６０７の処理を省略して、直接ステップＳ１６０８に進むことも出来る。
【０２３９】
第１候補として選択された隣接ブロックの符号化情報と隣接ブロックＮの符号化情報が異なる場合（Ｓ１６０７のＮ）、ａｖａｉｌａｂｌｅＦｌａｇＦ（ａｖａｉｌａｂｌｅＦｌａｇＳ１）を“１”に設定する（Ｓ１６０８）。続いて、隣接ブロックＮの符号化情報をｒｅｆＩｄｘＬＸＦ、ｍｖＬＸＦ及びｐｒｅｄＦｌａｇＬＸＦに代入して設定する（Ｓ１６０９）。
【０２４０】
次に、カウンタｋに１を加算することで更新し（Ｓ１６１０）、カウンタｋが空間の候補の最大候補数である２より小さいか判定する（Ｓ１６１１）。カウンタｋが空間の候補の最大候補数である２の場合（Ｓ１６１１のＹ）、選択された空間の隣接ブロックの候補数を示す変数ＮｕｍＬｉｓｔＣａｎｄをｋに設定し（Ｓ１６１６）、処理を終了する。
【０２４１】
ａｖａｉｌａｂｌｅＦｌａｇＦを“０”に設定した場合（Ｓ１６１３）、隣接ブロックＮが隣接ブロックの最後か否かの判定を実施する（Ｓ１６１４）。また、ｋが空間の候補の最大候補数である２より小さい場合（Ｓ１６１１のＮ）、ＦをＳ１に更新し（Ｓ１６１２）、隣接ブロックＮが隣接ブロックの最後か否かの判定を実施する（Ｓ１６１４）。変数Ｎの更新は上述したＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０の処理順に応じて設定され、ここではＮがＣ０か否かの判定を行う。
【０２４２】
隣接ブロックＮが最後のブロックであれば（Ｓ１６１４のＹ）、選択された空間の隣接ブロックの候補数を示す変数ＮｕｍＬｉｓｔＣａｎｄをｋに設定し（Ｓ１６１６）、処理を終了する。隣接ブロックＮが最後のブロックでなければ（Ｓ１６１４のＮ）、変数ＮをＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０の処理順に応じて更新し（Ｓ１６１５）、ステップＳ１６０２以降の処理を繰り返す。以上のようにして、処理対象の予測ブロックと同一ピクチャ上に存在するブロック群の隣接ブロックを代表する２つの参照ブロックとして、それぞれの符号化情報が導出される。
【０２４３】
図４２に戻り、ステップＳ１０５に続いて、時間が異なる別のピクチャの同一位置に隣接するブロックの符号化情報を候補とする場合の、処理対象の予測ブロックの参照ピクチャ番号を決定する（Ｓ１０４）。このステップＳ１０４の処理は実施例１、２のステップＳ１０４と同様である。次に、時間が異なる別のピクチャの同一位置に隣接するブロックの符号化情報が有効か否かを判定し、導出する（Ｓ１０２）。この実施例４のステップＳ１０２の処理も実施例１、２のステップＳ１０２と同様である。
【０２４４】
こうして得られた隣接ブロックの符号化情報は参照候補リスト作成部３１１に入力される。実施例４でも実施例２と同様に、参照候補リスト格納メモリ３１４に、参照隣接ブロックの符号化情報の候補を登録する記憶領域として参照候補リストを設ける。参照隣接ブロックの符号化情報の候補に優先順位をつけて、優先順位の高いものから参照候補リストに、参照隣接ブロックの符号化情報の候補を登録する。これにより、参照候補リストのインデックスｍｅｒｇｅ＿ｉｄｘの符号量を削減する。
【０２４５】
参照候補リスト作成部３１１は図１９のフローチャートに示す実施例１、２と同様の動作を行う。但し、実施例４の変数Ｆの値を図１９の変数Ｎの値として設定して動作させる。空間の第１候補の隣接ブロックＳ０、空間の第２候補の隣接ブロックＳ１、及び時間が異なる別のピクチャの同一位置に隣接するブロックＴの有効フラグａｖａｉｌａｂｌｅＦｌａｇＮ（ここでＮはＳ０，Ｓ１，Ｔ）の判定が行われ、隣接ブロックの符号化情報を参照候補リストｃａｎｄＬｉｓｔに登録する。ここで、変数Ｎを更新する隣接ブロックの順番が参照候補リストに格納する優先順位となっており、実施例４では、同じ時間の第１候補、同じ時間の第２候補、異なる時間の同じ順番（Ｓ０，Ｓ１，Ｔ）の順序で設定することとする。
【０２４６】
実施例１、２と同様に、作成された参照候補リストは、同一情報検出部３１２にて同一の符号化情報となる参照候補リストに格納された符号化情報を削除し、出力部３１３にて作成された参照候補リストの中のインデックスと符号化情報を出力する。参照候補リストは、参照候補リストをマージリストとして、リストの中のインデックスをマージインデックスとして出力する。動画像符号化装置１００では、動き補償予測部１０５と予測方法決定部１０７に出力される。
【０２４７】
上述した動画像符号化装置１００の中に設置される実施例４のマージ検出部１０６に対応する、動画像復号装置２００の中に設置される実施例４のマージ判定部２０６について説明する。マージ判定部２０６は実施例２の図２２と同じ構成をなし、符号化情報導出部３１０の処理が実施例２と異なる。それ以外の参照候補リスト作成部３１１、同一情報検出部３１２、参照候補リスト格納メモリ３１４及び選択部３１５は実施例２と同一の機能を備える。
【０２４８】
また、マージ判定部２０６の符号化情報導出部３１０は上述した実施例４におけるマージ検出部１０６の符号化情報導出部３１０と同一の機能を備えており、マージ判定部２０６の参照候補リスト作成部３１１は上述した実施例４におけるマージ検出部１０６の参照候補リスト作成部３１１と同一の機能を備えており、マージ判定部２０６の同一情報検出部３１２は上述した実施例４におけるマージ検出部１０６の同一情報検出部３１２と同一の機能を備えているので、マージ判定部２０６の同一情報検出部３１２までの処理で、実施例４のマージ検出部１０６と同一の参照候補リストが作成される。
【０２４９】
実施例２と同様に選択部３１５では、作成された参照候補リストの中から、第１の符号化ビット列復号部２０２で復号された、参照隣接ブロックを特定するインデックスで指定される参照候補リストの隣接ブロックを選択する。選択された符号化情報を動き補償予測部２０７に供給するとともに、符号化情報格納メモリ２１０に供給する。
【０２５０】
次に、動画像符号化装置１００の構成を示す図２の中に設置される実施例４の動きベクトル予測部１０３について説明する。動きベクトル予測部１０３は実施例２の図２３と同じ構成をなすが、符号化情報導出部３２０の処理が実施例２とは異なるので、実施例４における符号化情報導出部３２０の動作について説明する。図４４は実施例４における符号化情報導出部３２０の動作を示すフローチャートである。
【０２５１】
最初に、スイッチ１０８に入力される動画像符号化装置１００により制御される予測モードにより、インター予測情報検出部１０４の出力先が動きベクトル予測部１０３に切り換えられる。インター予測情報検出部１０４の内部の一時メモリ３０３に記憶された、処理対象の予測ブロックが参照隣接ブロックの符号化情報が符号化情報導出部３２０に入力される。
【０２５２】
入力された隣接ブロックの中から処理対象の予測ブロックと同じピクチャにある隣接ブロックの符号化情報が有効か否かを判定し、２つの隣接ブロックを導出する（Ｓ８０３）。図４５に処理対象の予測ブロックと同じピクチャにある隣接ブロック毎の判定処理の詳細な流れを示す。図４５に示す処理を処理対象のブロックの予測モードに応じて、Ｌ０予測の場合について行い、Ｌ１予測の場合について行い、Ｌ０予測とＬ１予測の両予測の場合それぞれについて行う。
【０２５３】
まず、空間候補インデックスＦをＳ０に設定し、カウンタｋを０に設定する（Ｓ１７００）。空間候補インデックスＦのＳ０は最初に選出される第１候補の隣接ブロックを示し、Ｓ１は２番目に選出される第２候補の隣接ブロックを示す。
【０２５４】
次に、ブロック群の中の変数ＮをＡ１に初期化する（Ｓ１７０１）。処理中の隣接ブロックを示す変数ＮはＢ０，Ａ０，Ａ１，Ｂ１，Ｃ０の処理順に応じて設定され、Ｎの更新時にはこの順に更新されることとする。
【０２５５】
次に、以降の判定で使用する隣接ブロックの符号化情報を格納しておく変数を初期化する（Ｓ１７０２）。ここで、変数は隣接ブロックが有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＦ、動きベクトルｍｖＬＸＦ、参照ピクチャ番号ｒｅｆＩｄｘＬＸＦ及び予測方向の有効性を示すフラグｐｒｅｄＦｌａｇＬＸＦであり、次のように初期化される。
ａｖａｉｌａｂｌｅＦｌａｇＬＸＦ＝０
ｍｖＬＸＦ＝（０，０）
ｒｅｆＩｄｘＬＸＦ＝０
ｐｒｅｄＦｌａｇＬＸＦ＝０
ここで、添え字Ｘには予測方向を表す０若しくは１が設定される。処理中の隣接ブロックを示す変数Ｎの隣接ブロック（以下、隣接ブロックＮとする）の位置及び符号化情報を取得する（Ｓ１７０３）。
【０２５６】
取得された隣接ブロックＮの位置に基づいて、隣接ブロックＮが有効か否かを判定する（Ｓ１７０４）。例えば、処理対象の予測ブロックがピクチャ左端に位置する場合、処理対象の予測ブロックの左の隣接ブロックは存在しないので、符号化情報格納メモリ１１４の中に該当する符号化情報は無いことになり、無効と判定される。
【０２５７】
隣接ブロックＮが無効の場合（Ｓ１７０４のＮ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＦを“０”に設定する（Ｓ１７１５）。隣接ブロックＮが有効の場合（Ｓ１７０４のＹ）、隣接ブロックＮの予測モードが画面内符号化（Ｉｎｔｒａ）モードか否かを判定し（Ｓ１７０５）、隣接ブロックＮの予測モードがＩｎｔｒａモードの場合（Ｓ１７０５のＹ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＦを“０”に設定する（Ｓ１７１５）。
【０２５８】
隣接ブロックＮの予測モードがＩｎｔｒａモードでない場合（Ｓ１７０５のＮ）、即ちＩｎｔｅｒモードの場合は、処理対象の予測ブロックの算出対象の予測と隣接ブロックＮの符号化情報を比較することで条件１から４の判定処理を行う（Ｓ１７０９）。条件１または条件２を満たす場合、ＦがＳ０か否かの判定処理に進む（Ｓ１７０６）。一方、条件３または条件４を満たす場合、実施例２の図３９のＳ９１２と同様に隣接ブロックＮの動きベクトルのスケーリング処理が実施され（Ｓ１７１０）、ＦがＳ０か否かの判定処理に進む（Ｓ１７０６）。
【０２５９】
ＦがＳ０の場合（Ｓ１７０６のＹ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＦ（ａｖａｉｌａｂｌｅＦｌａｇＬＸＳ０）を１に設定する（Ｓ１７０８）。ＦがＳ０でない場合（Ｓ１７０６のＮ）、既に選択された隣接ブロックの動きベクトルと、隣接ブロックＮの動きベクトルまたは隣接ブロックＮの動きベクトルがスケーリングされた動きベクトルｍｖＬＸＮが同じであるか否かを判定する（Ｓ１７０７）。
【０２６０】
既に選択された隣接ブロックの動きベクトルと隣接ブロックＮの動きベクトルが同じ場合（Ｓ１７０７のＹ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＦを“０”に設定する（Ｓ１７１５）。具体的には、空間の隣接ブロックの最大数を２とした場合、最初に第１候補として選択された動きベクトルを保持しておき、第２候補の選出の際の比較判定に使用する。この処理により、第２候補の隣接ブロックの符号化情報が代表する第１候補の隣接ブロックの動きベクトルと重複することが無くなるので、参照先として選択肢の幅が広がる。尚、処理量の削減のために、ステップＳ１７０６及びステップＳ１７０７の処理を省略して、直接ステップＳ１７０８に進み、ａｖａｉｌａｂｌｅＦｌａｇＬＸＦ（ａｖａｉｌａｂｌｅＦｌａｇＬＸＳ１）を“１”に設定することも出来る（Ｓ１７０８）。
【０２６１】
第１候補として選択された隣接ブロックの動きベクトルｍｖＬＸＳ０と隣接ブロックＮの動きベクトルｍｖＬＸＮが異なる場合（Ｓ１７０７のＮ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＦ（ａｖａｉｌａｂｌｅＦｌａｇＬＸＳ１）を“１”に設定する（Ｓ１７０８）。隣接ブロックＮの同じ参照リスト（条件１に合致した場合）の動きベクトルｍｖＬＸあるいは異なる参照リスト（条件２に合致した場合）の動きベクトルｍｖＬＹ、または同じ参照リスト（条件３に合致した場合）のスケーリングにより換算された動きベクトルｍｖＬＸあるいは異なる参照リスト（条件４に合致した場合）のスケーリングにより換算された動きベクトルｍｖＬＹをｍｖＬＸＭに代入して設定される（Ｓ１７１１）。
【０２６２】
カウンタｋに１を加算することで更新し（Ｓ１７１２）、カウンタｋが空間の候補の最大候補数である２より小さいか判定する（Ｓ１７１３）。カウンタｋが空間の候補の最大候補数である２の場合（Ｓ１７１３のＮ）、選択された空間の隣接ブロックの候補数を示す変数ＮｕｍＬｉｓｔＣａｎｄをｋに設定し（Ｓ１７１８）、処理を終了する。
【０２６３】
ａｖａｉｌａｂｌｅＦｌａｇＦを“０”に設定した場合（Ｓ１７１５）、隣接ブロックＮが隣接ブロックの最後か否かの判定を実施する（Ｓ１７１６）。また、ｋが空間の候補の最大候補数である２より小さい場合（Ｓ１７１３のＹ）、ＦをＳ１に更新し（Ｓ１７１４）、隣接ブロックＮが隣接ブロックの最後か否かの判定を実施する（Ｓ１７１６）。
【０２６４】
変数Ｎの更新は上述したＢ０，Ａ０，Ａ１，Ｂ１，Ｃ０の処理順に応じて設定され、ここではＮがＣ０か否かの判定を行う。隣接ブロックＮが最後のブロックであれば（Ｓ１７１６のＹ）、選択された空間の隣接ブロックの候補数を示す変数ＮｕｍＬｉｓｔＣａｎｄをｋに設定し（Ｓ１７１８）、処理を終了する。隣接ブロックＮが最後のブロックでなければ（Ｓ１７１６のＮ）、変数ＮをＢ０，Ａ０，Ａ１，Ｂ１，Ｃ０の処理順に応じて更新し（Ｓ１７１７）、ステップＳ１７０２以降の処理を繰り返す。以上のようにして、処理対象の予測ブロックと同一ピクチャ上に存在するブロック群の隣接ブロックを代表する参照ブロックとして、その符号化情報が導出される。
【０２６５】
図４４に戻り、次に、時間が異なる別のピクチャの同一位置に隣接するブロックの符号化情報が有効か否かを判定し、導出する（Ｓ８０１）。この実施例４のＳ８０１の処理は実施例１のＳ８０１と同様なので説明を割愛する。
【０２６６】
こうして得られた隣接ブロックの符号化情報は、参照候補リスト作成部３２１に入力される。参照候補リスト作成部３２１で作成される参照候補リストとして、予測モード（Ｌ０予測、Ｌ１予測、両予測）に応じて、Ｌ０予測及びＬ１予測の２つの予測方向に対していずれか一方、または両方のそれぞれの参照候補リストが作成される。本明細書では、特に注釈をしない限り、動き検出モード時の参照候補リストは説明の都合上１つだけを挙げて説明することとし、図で示す参照候補リストも１つだけ挙げることにする。
【０２６７】
実施例４では、参照候補リスト格納メモリ３２４に、参照隣接ブロックの符号化情報の候補を登録する記憶領域として参照候補リストを設ける。参照隣接ブロックの符号化情報の候補に優先順位をつけて、優先順位の高いものから参照候補リスト格納メモリ３２４に、参照隣接ブロックの符号化情報の候補を登録する。これにより、参照候補リストのインデックスｍｖｐ＿ｉｄｘ＿ｌ０及びｍｖｐ＿ｉｄｘ＿ｌ１の符号量を削減することが可能となる。
【０２６８】
優先順位の高い要素を参照候補リストの前方に配置することで、符号量を削減する。優先順位を示すインデックスは０から昇順に割り当てる。参照候補リスト格納メモリ３２４に設けられる参照候補リストは、リスト構造を成し、参照候補リスト内部の所在を示すインデックスと、インデックスに対応する参照隣接ブロックの符号化情報の候補を要素として格納する配列領域が設けられる。この配列領域はｃａｎｄＬｉｓｔＬＸで表される。インデックスの数字は０から開始され、参照候補リストｃａｎｄＬｉｓｔＬＸの記憶領域に、参照隣接ブロックの符号化情報の候補が格納される。
【０２６９】
以降の処理では、参照候補リストｃａｎｄＬｉｓｔＬＸに登録されたインデックスｉの符号化情報は、ｃａｎｄＬｉｓｔＬＸ［ｉ］で表すこととし、参照候補リストｃａｎｄＬｉｓｔＬＸとは配列表記をすることで区別することとする。尚、参照候補リストの記憶領域に格納される符号化情報は、特に断らない限り、参照隣接ブロックの位置名（Ａ０，Ａ１，Ｂ０，Ｂ１，Ｃ０，Ｔ）で表すこととする。
【０２７０】
参照候補リスト作成部３２１は図１９のフローチャートに示す実施例１、２と同様の動作を行う。但し、実施例４の変数Ｆの値を図１９の変数Ｎの値として設定して動作させる。空間の第１候補の隣接ブロックＳ０、空間の第２候補の隣接ブロックＳ１、及び時間が異なる別のピクチャの同一位置に隣接するブロックの有効フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮ（ここでＮはＳ０，Ｓ１，Ｔ）の判定が行われ、隣接ブロックの符号化情報を参照候補リストｃａｎｄＬｉｓｔＬＸに登録する。ここで、変数Ｎを更新する隣接ブロックの順番が参照候補リストに格納する優先順位となっており、実施例４では、同じ時間の第１候補、同じ時間の第２候補、異なる時間の同じ順番（Ｓ０，Ｓ１，Ｔ）を設定することとする。
【０２７１】
実施例１、２と同様に、作成された参照候補リストは、同一情報検出部３２２にて同一の符号化情報となる参照候補リストに格納された符号化情報を削除し、差分動きベクトル算出部３２６にて作成された参照候補リストの中の符号化情報の動きベクトルを予測動きベクトルとする。動きベクトル検出部１０２が検出した動きベクトルと予測動きベクトルから差分動きベクトルを算出し、算出された差分動きベクトルを出力部３２３に供給する。
【０２７２】
最後に、出力部３２３が、作成された参照候補リストの中のインデックスと差分動きベクトルを出力する。参照候補リストは、参照候補リストをＭＶＰリストとして、リストの中のインデックスをＭＶＰインデックスとして出力する。動画像符号化装置１００では、予測方法決定部１０７に出力される。
【０２７３】
上述した動画像符号化装置１００の中に設置される実施例４の動きベクトル予測部１０３に対応する、動画像復号装置２００の中に設置される実施例４の動きベクトル算出部２０４について説明する。動きベクトル算出部２０４は実施例２の図３０と同じ構成をなし、符号化情報導出部３２０の処理が実施例２と異なる。それ以外の参照候補リスト作成部３２１、同一情報検出部３２２、参照候補リスト格納メモリ３２４、選択部３２５及び動きベクトル加算部３２７は実施例２と同一の機能を備える。
【０２７４】
また、符号化情報導出部３２０は上述した実施例２における動きベクトル予測部１０３の符号化情報導出部３２０と同一の機能を備えており、マージ判定部２０６の参照候補リスト作成部３１１は上述した実施例４におけるマージ検出部１０６の参照候補リスト作成部３１１と同一の機能を備えており、マージ判定部２０６の同一情報検出部３１２は上述した実施例４におけるマージ検出部１０６の同一情報検出部３１２と同一の機能を備えているので、動きベクトル算出部２０４の同一情報検出部３２２までの処理で、実施例４の動きベクトル予測部１０３と同一の参照候補リストが作成される。
【０２７５】
実施例２と同様に選択部３２５は、作成された参照候補リストの中から、第１の符号化ビット列復号部２０２で復号された、参照隣接ブロックを特定するインデックスで指定される参照候補リストの隣接ブロックを選択する。選択された参照候補リストの隣接ブロックの符号化情報から動きベクトルを予測動きベクトルとして出力し、動きベクトル加算部３２７にて予測動きベクトルと第１の符号化ビット列復号部２０２で復号された差分動きベクトルとを加算して動きベクトルを算出し、動き補償予測部２０７に供給するとともに、選択されたリストの隣接ブロックの符号化情報を符号化情報格納メモリ２１０に供給する。
【０２７６】
尚、実施例４では、２つの隣接ブロックを、参照隣接ブロックの代表として選出したが、マージモード、動き検出モードそれぞれ別々に１個または３個以上の隣接ブロックを代表として選出することにしても構わない。但し、ブロック群の中のブロック数を超えない範囲で設定する。尚、本発明の説明に使用している図９の配置では、代表の数は６個が最大数となる。マージモードの場合、代表の数を６個に設定すると、実施例１と等価となる。動き検出モードでは２個の空間の隣接ブロックを代表とし、マージモードでは３個以上の空間の隣接ブロックを代表とするなど、動き検出モードよりもマージモードで多くの空間の隣接ブロックを代表とすることにより、以下のような効果を得ることができる。
【０２７７】
即ち、マージモードでは、参照隣接ブロックの候補の符号化情報をそのまま用いて、画像間予測を行うので、選択の余地を残す為に、動き検出モードよりも多くの候補をリストに登録する。これは、マージモードは動き検出モードと比較して、多くの情報（動きベクトル、参照インデックス、予測方向）をわずかな符号量で伝送出来る為であり、マージインデックスの符号量を削減するよりも、隣接ブロックの候補を残して選択の幅を広げた方が符号化効率が向上するからである。
【０２７８】
一方、動き検出モードでは、参照隣接ブロックの候補の符号化情報をそのまま用いるのではなく、差分動きベクトルをはじめとする符号化情報を符号化するので、マージモードよりも候補を絞ってリストに登録する。これは、候補を絞ることにより、ＭＶＰインデックスの符号量を削減した方が符号化効率が向上するからである。
【０２７９】
マージモードで、３個以上の空間の隣接ブロックを代表として選出するとした場合、図４３のステップＳ１６０７では、すべての既に選択されたそれぞれの隣接ブロックの符号化情報と、隣接ブロックＮの符号化情報が同じであるか否かを判定する。動き検出モードで、３個以上の空間の隣接ブロックを代表として選出するとした場合、図４５のステップＳ１７０７では、すべての既に選択されたそれぞれの隣接ブロックの動きベクトルと隣接ブロックＮの動きベクトルまたは隣接ブロックＮの動きベクトルがスケーリングされた動きベクトルｍｖＬＸＮが同じであるか否かを判定する。
【０２８０】
マージモードの場合は実施例４の手法を用いて、動き検出モードの場合は他の実施例の手法を用いることも可能である。同様に、動き検出モードの場合は実施例４の手法を用いて、マージモードの場合は他の実施例の手法を用いることも可能である。特に、マージモードの場合は実施例１の手法を用いて、動き検出モードの場合は実施例４の手法を用いた場合、実施例３と同様の効果を得ることができる。
【０２８１】
即ち、マージモードでは、参照隣接ブロックの候補の符号化情報をそのまま用いて、画像間予測を行うので、選択の余地を残す為に、動き検出モードよりも多くの候補をリストに登録する。これは、マージモードは動き検出モードと比較して、多くの情報（動きベクトル、参照インデックス、予測方向）をわずかな符号量で伝送出来る為であり、マージインデックスの符号量を削減するよりも、隣接ブロックの候補をできるだけ残して、できる動き情報の候補を増やすことが符号化効率向上に寄与する為である。
【０２８２】
一方、動き検出モードでは、参照隣接ブロックの候補の符号化情報をそのまま用いるのではなく、差分動きベクトルをはじめとする符号化情報を符号化するので、スキャンを行い候補を絞ってリストに登録する。これは、動き検出モードでの候補は予測ベクトルに使用されるだけである為、隣接ブロックの候補を多く残しても、候補間で近い動きベクトルを登録しても差分動きベクトルの符号量を減らすことが出来ず、ＭＶＰインデックスの符号量が増加するだけである。その為、リストに登録する候補を絞ることにより、ＭＶＰインデックスの符号量を削減することが符号化効率向上に寄与する為である。
【０２８３】
マージモード、動き検出モードともに、隣接ブロックが参照先候補として利用可能であるかどうかの情報のみを用いてリストに登録する候補を決定することが出来る為、複雑な判定を行う必要がなく、マージモード、動き検出モードそれぞれについて、適切な候補をリストに登録することが可能である。
【０２８４】
更に、実施例４は、時間が異なる別のピクチャの同一位置に隣接するブロックのみを別扱いとして参照候補リストの最後に登録する。同じピクチャ上にある隣接ブロック同士は同じ符号化情報を持つ可能性が高く、時間が異なる別のピクチャの同一位置に隣接するブロックはそれらと異なる符号化情報を持つ可能性が高いので、別途候補として登録する効果が高いといえる。例えば、同じピクチャ上にある隣接ブロックがすべて、イントラの場合でも、時間が異なる別のピクチャの同一位置に隣接するブロックはインター予測の符号化情報を持つ可能性が高い。ただし、時間が異なる別のピクチャの同一位置に隣接するブロックは、処理対象の予測ブロックと同じピクチャ上にある隣接ブロックに比べて、処理対象の予測ブロックと符号化情報が等しい或いは近い可能性が低いので、優先順位を下げている。
【０２８５】
（実施例５）
動画像符号化装置１００の構成を示す図２の中に設置される実施例５のマージ検出部１０６について説明する。マージ検出部１０６は実施例１で説明した図１１と同じ構成をなすが、参照候補リスト作成部３１１の処理が実施例１とは異なるので、実施例５におけるマージ検出部１０６の参照候補リスト作成部３１１の動作について説明する。参照候補リスト作成部３１１は、参照候補リスト格納メモリ３１４に、参照隣接ブロックの符号化情報の候補を登録する記憶領域として参照候補リストを設け、参照隣接ブロックの符号化情報の候補に優先順位をつけて、優先順位の高いものから参照候補リストに、参照隣接ブロックの符号化情報の候補を登録する。これにより、参照候補リストのインデックスｍｅｒｇｅ＿ｉｄｘの符号量を削減する。
【０２８６】
優先順位の高い要素を参照候補リストの前方に配置することで、符号量を削減する。優先順位を示すインデックスは０から昇順に割り当てる。ここで、マージモードの場合、順番（Ａ１，Ｂ１，Ｂ０，Ａ０，Ｃ０，Ｔ）を設定することとする。マージモードの場合は、処理対象の予測ブロックの辺と、符号化情報が最も等しい可能性が高いと考えられる処理対象の予測ブロックと辺とが接している隣接ブロックＡ１及びＢ１を優先してリストの前方に登録することで、マージインデックスの符号量を削減し、符号化効率を向上させる。
【０２８７】
参照候補リスト格納メモリ３１４に設けられる参照候補リストは、リスト構造を成し、参照候補リスト内部の所在を示すインデックスと、インデックスに対応する参照隣接ブロックの符号化情報の候補を要素として格納する配列領域が設けられる。この配列領域はｃａｎｄＬｉｓｔで表される。インデックスの数字は０から開始され、参照候補リストｃａｎｄＬｉｓｔの記憶領域に、参照隣接ブロックの符号化情報の候補が格納される。以降の処理では、参照候補リストｃａｎｄＬｉｓｔに登録されたインデックスｉの符号化情報は、ｃａｎｄＬｉｓｔ［ｉ］で表すこととし、参照候補リストｃａｎｄＬｉｓｔとは配列表記をすることで区別することとする。尚、参照候補リストの記憶領域に格納される符号化情報は、特に断らない限り、参照隣接ブロックの位置名（Ａ０，Ａ１，Ｂ０，Ｂ１，Ｃ０，Ｔ）で表すこととする。
【０２８８】
図４６は実施例５における参照候補リスト作成部３１１の動作を示すフローチャートである。実施例５では、参照候補リスト作成前に、図３１（ａ）で示される隣接ブロックの中から左側及び上側のブロック群に分類し、それぞれのブロック群の参照隣接ブロックの個数ＮＡ及びＮＢを設定する。ここで、左側のブロック群の隣接ブロックはＡ０，Ａ１、上側のブロック群の隣接ブロックはＢ０，Ｂ１，Ｃ０であり、ＮＡ及びＮＢをともに１に設定する。即ち、それぞれのブロック群から１つの隣接ブロックを選択することを意味する。尚、ＮＡ及びＮＢはそれぞれのブロック群の中の隣接ブロック総数を超えないこととする。
【０２８９】
まず、変数Ｎと参照候補リストのインデックスｋを初期化する（Ｓ１２００）。変数Ｎには予測モードに対応した最も優先順位の高い隣接ブロックが初期設定される。マージモードではＡ１、動き検出モードではＡ０である。ｋは０に設定される。インデックスｋは参照候補リストの記憶領域に設定される符号化情報の候補の格納領域の優先順位を示す。
【０２９０】
次に、左側及び上側のブロック群のカウンタｎａ及びｎｂを０に初期化する（Ｓ１２０１）。最初に、隣接ブロックＮが左側或いは上側のブロック群に属する隣接ブロックか否かの判定が行われる（Ｓ１２０２）。属しない場合（Ｓ１２０２のＮ）、ステップＳ１２０６に進み、属する場合（Ｓ１２０２のＹ）、左側或いは上側のどちらのブロック群に属するかを判定する（Ｓ１２０３）。
【０２９１】
左側の場合、カウンタｎａとＮＡの比較に進み（Ｓ１２０４）、ｎａがＮＡより小さい場合（Ｓ１２０４のＹ）、ステップＳ１２０６に、そうでない場合（Ｓ１２０４のＮ）、ステップＳ１２１０に進む。上側の場合、カウンタｎｂとＮＢの比較に進み（Ｓ１２０５）、ｎｂがＮＢより小さい場合（Ｓ１２０５のＹ）、ステップＳ１２０６に、そうでない場合（Ｓ１２０５のＮ）、ステップＳ１２１０に進む。
【０２９２】
ｎａ及びｎｂがＮＡ及びＮＢ以上の場合は、各ブロック群で参照候補リストに選出される隣接ブロック数を超えたことを示し、この場合、参照候補リストに登録するか否かの判定はせず、登録されない。
【０２９３】
隣接ブロックＮの有効フラグａｖａｉｌａｂｌｅＦｌａｇＮの判定が行われる（Ｓ１２０６）。ａｖａｉｌａｂｌｅＦｌａｇＮが１の場合（Ｓ１２０６のＹ）、隣接ブロックＮの符号化情報を参照候補リストｃａｎｄＬｉｓｔＬＸ［ｋ］に登録し（Ｓ１２０７）、ｋを更新する（Ｓ１２０８）。更に、隣接ブロックＮが左側或いは上側のブロック群に属する場合はカウンタｎａ或いはｎｂを更新する（Ｓ１２０９）。ａｖａｉｌａｂｌｅＦｌａｇＮが０の場合（Ｓ１２０６のＮ）、参照候補リストには登録せず、ステップＳ１２１０に進む。
【０２９４】
隣接ブロックＮが最後の参照ブロックか否かを判定する（Ｓ１２１０）。最後のブロックである場合（Ｓ１２１０のＹ）、インデックスの値を候補リスト総数ＮｕｍＬｉｓｔＣａｎｄに設定した後（Ｓ１２１１）、処理を終了する。最後のブロックで無い場合（Ｓ１２１０のＹ）、変数Ｎを更新して（Ｓ１２１２）、ステップＳ１２０２以降の処理を繰り返す。
【０２９５】
以上の処理により、参照候補リストに登録される。ここでは、参照候補リストに登録される最大数はＮＡ＋ＮＢ＋１で表される。最初に設定したＮＡとＮＢに異なる時間の候補が１つ加算されることになり、ここではＮＡ，ＮＢともに１としたので、最大３となる。参照隣接ブロックが１つだけ有効となる場合、最大符号語長は０となるので、符号語は必要とせず、１つだけ有効と判定された隣接ブロックの符号化情報の候補が参照先として一意に決定される。
【０２９６】
上記の処理において、例えば隣接ブロックＡ１の有効フラグａｖａｉｌａｂｌｅＦｌａｇＡ１が０の場合、優先順位はＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０，Ｔなので、参照候補リストには優先順にＢ１，Ａ０，Ｔが登録される。実施例２で同じ条件で処理を行うとＡ０，Ｂ１，Ｔとなる。実施例５の方が元の優先順位を保ちつつ、処理対象の予測ブロックと符号化情報が最も等しい可能性が高いと考えられる隣接ブロックを優先して参照候補リストの前方に登録することで、インデックスの符号量を削減し、符号化効率を向上させる。
【０２９７】
また、この場合、左側及び上側に隣接するブロック群を代表する隣接ブロック及び時間が異なる別のピクチャの同一位置に隣接するブロックの３つの隣接ブロックが参照候補リストに登録されることになり、参照隣接ブロックの総数を実施例１に比べて削減することが出来るので、割り当てる符号語長が短くなり、符号化効率を改善することが出来る。
【０２９８】
上述した動画像符号化装置１００の中に設置される実施例５のマージ検出部１０６に対応する、動画像復号装置２００の中に設置される実施例５のマージ判定部２０６について説明する。マージ判定部２０６は実施例１で説明した図２２と同じ構成をなし、参照候補リスト作成部３１１の処理が実施例１と異なる。それ以外の符号化情報導出部３１０、同一情報検出部３１２、参照候補リスト格納メモリ３１４及び選択部３１５は実施例１と同一の機能を備える。
【０２９９】
また、参照候補リスト作成部３１１は上述した実施例５におけるマージ検出部１０６の参照候補リスト作成部３１１と同一の機能を備えているので、マージ判定部２０６の同一情報検出部３１２までの処理で、実施例５のマージ検出部１０６と同一の参照候補リストが作成されることになる。
【０３００】
作成された参照候補リストから、マージモードでの参照隣接ブロックの符号化情報を取得する選択部３１５について説明する。選択部３１５は、作成された参照候補リストの中から、第１の符号化ビット列復号部２０２で復号された、参照隣接ブロックを特定するインデックスで指定される参照候補リストの隣接ブロックを選択する。選択された符号化情報を動き補償予測部２０７に供給するとともに、符号化情報格納メモリ２１０に供給する。
【０３０１】
次に、本発明の動画像符号化装置１００の構成を示す図２の中に設置される実施例５の動きベクトル予測部１０３について説明する。動きベクトル予測部１０３は実施例１で説明した図２３と同じ構成をなすが、参照候補リスト作成部３２１の処理が実施例１とは異なる。参照候補リスト作成部３２１はマージ検出部１０６の参照候補リスト作成部３１１と基本的に同一の機能を備えているので、参照隣接ブロックの符号化情報の候補が有効か否か判定し、参照候補リストに登録する動作は同様であるので、説明を割愛する。
【０３０２】
参照候補リスト作成部３２１がマージ検出部１０６の参照候補リスト作成部３１１と異なるのは、参照候補リスト格納メモリ３２４に設けられた参照候補リストに、参照隣接ブロックの符号化情報の候補を登録する場合の優先順位である。動き検出モードの場合、参照候補リスト作成部３２１では、Ａ０，Ｂ０，Ａ１，Ｂ１，Ｃ０，Ｔの順番に設定される。
【０３０３】
動き検出モードは、差分動きベクトルを伝送する為のモードであり、予測動きベクトルの選択の幅を広げる為に、左側と上側の隣接ブロックの候補の動きベクトルの差が大きくなるように、左側と上側の候補間の距離を離して登録することで、差分動きベクトルの符号量を削減し、符号化効率を向上させる。この動き検出モードでの優先順位の決定方法は、出来るだけ同一の符号化情報である確率の高い隣接ブロックを優先候補として登録するマージモードとは目的が異なる。以上のように、優先順位をつけて、優先順位の高いものから参照候補リストに、参照隣接ブロックの符号化情報の候補を登録することで、参照候補リストのインデックスｍｖｐ＿ｉｄｘ＿ｌ０及びｍｖｐ＿ｉｄｘ＿ｌ１の符号量を削減する。
【０３０４】
上述した動画像符号化装置１００の中に設置される実施例５の動きベクトル予測部１０３に対応する、動画像復号装置２００の中に設置される実施例５の動きベクトル算出部２０４についても、動きベクトル算出部２０４の参照候補リスト作成部３２１は、対応する動きベクトル予測部１０３の参照候補リスト作成部３２１と同一の機能を備えているので、動きベクトル予測部１０３と同一の参照候補リストが作成されることになる。
【０３０５】
作成された参照候補リストから、動き検出モードにおいて参照隣接ブロックの符号化情報を取得する選択部３２５について説明する。選択部３２５は、作成された参照候補リストの中から、第１の符号化ビット列復号部２０２で復号された、参照隣接ブロックを特定するインデックスで指定されるリストの隣接ブロックを選択する。選択されたリストの隣接ブロックの符号化情報から動きベクトルを予測動きベクトルとして出力し、動きベクトル加算部３２７にて予測動きベクトルと第１の符号化ビット列復号部２０２で復号された差分動きベクトルとを加算して動きベクトルを算出し、動き補償予測部２０７に供給するとともに、選択されたリストの隣接ブロックの符号化情報を符号化情報格納メモリ２１０に供給する。
【０３０６】
尚、実施例５では、ＮＡ及びＮＢをともに１に設定したが、それぞれのブロック群の隣接ブロック総数を超えない数を設定してもよく、更に、予測モードでそれぞれ設定を変更してもよい。
【０３０７】
（実施例６）
実施例６では、実施例２とは異なる参照隣接ブロックのブロック群を定義し、その中からそれぞれ１つを代表する隣接ブロックとして選択する方法を変えるものである。図３１（ａ）の隣接ブロックの配置を用いて説明する。図３１（ａ）で配置される６つの隣接ブロックＡ０，Ａ１，Ｂ０，Ｂ１，Ｃ０，Ｔを、Ａ１を左側に隣接する代表ブロック、Ｂ１を上側に隣接する代表ブロック、時間が異なる別のピクチャの同一位置に隣接するブロックＴ、処理対象の予測ブロックのコーナーに位置する隣接ブロックＡ０，Ｂ０とＣ０をコーナーに隣接するブロック群とする。そのブロック群の中から１つを代表する隣接ブロックとして選択する。左側、上側、異なる時間及びコーナーの４つの隣接ブロックから１つの隣接ブロックの符号化情報を参照先として選択する。
【０３０８】
処理対象の予測ブロックの辺と、符号化情報が最も等しい可能性が高いと考えられる処理対象の予測ブロックの辺とが接している隣接ブロックＡ１及びＢ１を優先して参照候補リストの前方に登録し、相対的に可能性が低いコーナーの３つの隣接ブロックをグループ化して、インデックスの符号量を削減し、符号化効率を向上させるので、特にマージモードの場合に有効な手法である。
【０３０９】
動画像符号化装置１００の中に設置される実施例６のマージ検出部１０６と、対応する動画像復号装置２００の中に設置される実施例６のマージ判定部２０６の参照候補リスト作成部３１１、及び動画像符号化装置１００の中に設置される実施例６の動きベクトル予測部１０３と、対応する動画像復号装置２００の中に設置される実施例６の動きベクトル算出部２０４の参照候補リスト作成部３２１の中で、処理対象の予測ブロックのコーナーに位置する隣接ブロックＡ０，Ｂ０とＣ０をコーナーに隣接するブロック群と定義する。Ａ１，Ｂ１，（Ｂ０，Ａ０，Ｃ０），Ｔの順に優先順位を設定し、優先順位の高いものから参照候補リストに参照隣接ブロックの符号化情報の候補を登録することで、参照候補リストのインデックスの符号量を削減する。ここで、参照候補リスト内部の括弧は、左側或いは上側の隣接ブロック群の中から、括弧内の左から右の順に処理され、選択される１つの隣接ブロックを表す。
【０３１０】
参照候補リスト作成部３１１及び３２１では、コーナーに隣接するブロック群から代表する隣接ブロックの選択として、例えば、実施例２で説明したように、ブロック群の中の隣接ブロックを予め決められた処理順にスキャンする。隣接ブロックが有効であり、且つＩｎｔｒａモードでない条件を満足するか判定し、この条件を満足する最初の隣接ブロックを選択してもよい。ここでは、処理順をＢ０，Ａ０，Ｃ０とするが、必ずしもこの順番である必要はない。また、コーナーに隣接するブロック群の中の隣接ブロックＢ０，Ａ０，Ｃ０の符号化情報の比較を行い、同一の符号化情報を備える隣接ブロックを選択してもよい。即ち、ブロック群の中で多数決を行い、同一の符号化情報を備える隣接ブロックのうち、処理順Ｂ０，Ａ０，Ｃ０で先になる方を隣接ブロックとして選択する。実施例６で作成される参照候補リストは、参照隣接ブロックが全て有効であった場合、図４７のように表される。
【０３１１】
（実施例７）
実施例７は、参照候補リストに登録された、参照隣接ブロックの数を制限するものである。実施例１、３（実施例はマージモードの場合）の参照候補リストに登録される、参照隣接ブロック数は、図９（ａ）或いは図３１（ａ）の隣接ブロックの配置の場合、最大６個存在する。この中から隣接ブロックを選択すると、インデックスで最大で５ビットの符号量を必要とする為、符号化効率が向上するとは言えない。そこで、実施例２、４等と同様に作成された参照候補リストの中の上位の隣接ブロックの符号化情報のみ使用するように限定する。
【０３１２】
最初に、動画像符号化装置１００の構成を示す図２の中に設置される実施例７のマージ検出部１０６について説明する。図４８は図１１で示される実施例１の動画像符号化装置１００のマージ検出部１０６に参照候補制限部３１８を追加したマージ検出部１０６の構成を示す。図４８で示される各部は図１１で示される各部と同じ機能を備えているので、ここでは参照候補制限部３１８の機能についてのみ説明する。
【０３１３】
参照候補制限部３１８は、同一情報検出部３１２にて参照候補リストの中から同一の符号化情報を備える参照隣接ブロックを削除した参照候補リストが入力される。参照候補制限部３１８は、参照候補リストの中から、設定された制限数分のインデックス上位の隣接ブロックを残し、それ以外を削除するか、或いは選択外として判定する。例えば、実施例１で同一の符号化情報が存在しない場合の参照候補リストの一例を示す図２０に対し、マージモードの場合で３個に制限すると、インデックス０から２までの上位３個の隣接ブロックを参照候補とし、残りは使用しないので参照候補の対象から外す。
【０３１４】
以上のようにして、参照候補として隣接ブロックが参照候補リストに制限されて登録されることになり、参照隣接ブロックの総数を実施例１に比べて削減することが出来るので、割り当てる符号語長が短くなり、符号化効率を改善することが出来る。また、参照候補リストの優先順位の高い隣接ブロックに絞り込んで制限するので、符号化効率の低下を抑えることが出来る。参照候補リストの制限数は、例えばＳＰＳ（Ｓｅｑｕｅｎｃｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）やＳｌｉｃｅ  Ｈｅａｄｅｒといったヘッダー情報に制限数を設定してもよい。また、符号化側と復号側で暗黙的な条件として設定してもよく、符号化側と復号側で矛盾が生じないよう設定されれば方法を制限するものではない。また、予測モードに従ってそれぞれ制限数を設定してもよい。更に、処理対象の予測ブロックが参照する符号化済み或いは復号済みの隣接ブロックの符号化情報に基づいて、参照候補リストの制限数を適応的に変更してもよい。
【０３１５】
以上のように、同一情報検出部３１２の直後に参照候補制限部３１８を設けることで、参照候補を制限する手法を説明したが、参照候補制限部３１８をマージ検出部１０６の中に設けずに、同一情報検出部３１２の中に参照候補制限部３１８の機能を備えるようにしても同等の効果が得られる。この場合、同一情報検出部３１２では、参照候補リストの中に格納された符号化情報の候補を比較して、同じ符号化情報の候補が存在する場合、最も小さい参照候補リストのインデックスを持つ符号化情報の候補を除いて全て削除されるとともに、最も小さい参照候補リストのインデックスを持つ符号化情報の候補を参照候補リストに再登録し、その登録数が制限数に達した場合に処理が終了する。
【０３１６】
図４９は実施例７における同一情報検出部３１２の動作を示すフローチャートであり、実施例１の図２１に示す動作を行う同一情報検出部３１２に対して、実施例７の参照候補の制限する機能を追加したものである。図２１のフローチャートに対して、新たにステップＳ７１０からステップＳ７１２の処理ステップが追加され、これら追加された処理について説明する。
【０３１７】
参照候補リストのインデックスを表す変数ｎとｍの設定後に、削除リストに記録される参照候補リストの候補数を表すカウンタｓを０に設定する（Ｓ７１０）。次に、ステップＳ７０２にて、ｍが既に削除リストに記録されているか判定し、ｍが未だ削除リストに記録されていない場合（Ｓ７０２のＮ）、ｍを削除リストに記録するとともに、カウンタｓに１加算して更新する（Ｓ７１１）。
【０３１８】
次にｓが閾値ＴＨと等しいか否かを判定する（Ｓ７１２）。ここで、閾値ＴＨは候補リスト総数ＮｕｍＬｉｓｔＣａｎｄから制限数を引いた数を表す。即ち、参照候補リストに制限数の候補を残し、削除リストに記録された候補数の最大数を表す。ｓがＴＨと等しくなった場合（Ｓ７１２のＹ）、参照候補リストに制限数分の候補が残ることになるので、同一情報判定の処理を終了して、ステップＳ７０８に進み、削除リストに記録されたインデックスに該当するリストの格納領域の符号化情報を削除して、インデックス０を基準に、インデックスが小さい候補の順で詰めて、符号語を更新して終了する。尚、参照候補リストの総数ＮｕｍＬｉｓｔＣａｎｄは制限数に更新される。
【０３１９】
また、参照候補制限部３１８を同一情報検出部３１２の直前に設けてもよい。この場合、参照候補リスト作成部３１１にて作成された参照候補リストの中の参照候補を制限して候補数を絞り込むので、同一情報検出部３１２で同一情報を検出する最大回数が削減される為、処理量が削減される効果がある。
【０３２０】
図５０は図１１で示される実施例１の動画像符号化装置１００のマージ検出部１０６を基に、実施例７の参照候補制限部３１８を追加したマージ検出部１０６の構成を示す。図５０で示される各部は図１１で示される各部と同じ機能を備えている。上述した図４８の構成と参照候補制限部３１８の位置が異なるだけであり、参照候補制限部３１８の動作も同様である。参照候補制限部３１８は参照候補リスト作成部３１１にて作成された参照候補リストの中から、設定された制限数分のインデックス上位の隣接ブロックを残し、それ以外を削除するか、或いは選択外として判定する。
【０３２１】
以上のように、同一情報検出部３１２の直前に参照候補制限部３１８を設けることで、参照候補の制限する手法を説明したが、参照候補制限部３１８をマージ検出部１０６の中に設けずに、参照候補リスト作成部３１１の中に参照候補制限部３１８の機能を備えるようにしても同等の効果が得られる。この場合、参照候補リスト作成部３１１では、符号化情報導出部３１０にて導出された、参照隣接ブロックの符号化情報を、参照候補リストに登録するとともに、参照候補リストに登録された、参照隣接ブロックの数をカウントし、その数が制限数に達した場合に処理を終了する。
【０３２２】
図５１は実施例７における参照候補リスト作成部３１１の動作を示すフローチャートであり、実施例１の図１９に示す動作を行う参照候補リスト作成部３１１に対して、実施例７の参照候補の制限する機能を追加したものである。図１９のフローチャートに対して、新たにステップＳ６０７の処理ステップが追加され、この追加された処理について説明する。
【０３２３】
まず、変数Ｎと参照候補リストのインデックスｋを初期化する（Ｓ６００）。インデックスｋは参照候補リストの記憶領域に設定される符号化情報の候補の格納領域の優先順位を示す。
【０３２４】
次に、参照隣接ブロックＮの有効フラグａｖａｉｌａｂｌｅＦｌａｇＮの判定が行われ（Ｓ６０１）、ａｖａｉｌａｂｌｅＦｌａｇＮが１の場合（Ｓ６０１のＹ）、隣接ブロックＮの符号化情報を参照候補リストに登録し（Ｓ６０２）、ｋを更新する（Ｓ６０３）。
【０３２５】
次に、ｋが制限数に達したか否かの判定が行われる（Ｓ６０７）。ｋが制限数未満であれば（Ｓ６０７のＮ）、まだ参照候補リストに制限数分の符号化情報が登録されていないので、ステップＳ６０４に進む。ｋが制限数に達した場合（Ｓ６０７のＹ）、参照候補リストに制限数分の符号化情報が登録されたので、インデックスの値を候補リスト総数ＮｕｍＬｉｓｔＣａｎｄに設定した後（Ｓ６０５）、処理を終了する。
【０３２６】
尚、実施例１のマージ検出部１０６に対して参照候補制限部３１８を追加した例で説明したが、他の実施例においても、参照候補制限部３１８を追加することは可能である。また、マージ検出部１０６に対応する動画像復号装置２００の中に設置される実施例７のマージ判定部２０６に参照候補制限部３１８を追加することも可能であり、マージ判定部２０６の中に参照候補制限部３１８を設けず、マージ判定部２０６の参照候補リスト作成部３１１或いは同一情報検出部３１２の中に、参照候補制限部３１８の機能を備えるようにしても同等の効果が得られる。但し、符号化側と復号側で参照候補制限部３１８を設置する位置或いは参照候補制限部３１８の機能を備える処理部は同じにする必要がある。
【０３２７】
次に、動画像符号化装置１００の構成を示す図２の中に設置される実施例７の動きベクトル予測部１０３について説明する。図５２は図２３で示される実施例１の動画像符号化装置の動きベクトル予測部１０３を基に、実施例７の参照候補制限部３２８を追加した動きベクトル予測部１０３の構成を示す。図５２で示される各部は、基本的には図２３で示される各部と同じ機能を備えているが、符号化情報導出部３２０及び参照候補リスト作成部３２１の処理は実施例１とは異なる。実施例７における符号化情報導出部３２０及び参照候補リスト作成部３２１と新たに追加した参照候補制限部３２８の機能について説明する。
【０３２８】
図５３は実施例７における符号化情報導出部３２０の動作を示すフローチャートである。実施例１における符号化情報導出部３２０では、処理対象の予測ブロックの予測モードに応じて、片方向予測でＬ０予測の場合は参照リストＬ０に登録されている符号化情報だけを、片方向予測でＬ１予測の場合は参照リストＬ１に登録されている符号化情報だけを、双予測の場合は参照リストＬ０，Ｌ１に登録されているそれぞれの符号化情報の判定を、Ｌ０とＬ１のリスト毎に独立して行っていた。
【０３２９】
実施例７では、まず、リストに関わらず隣接ブロックの有効性を判定し、その後に処理対象の予測ブロックの予測モードに応じて、符号化情報を検出して取得する。この処理により、隣接ブロックの有効性判定をリスト毎に行う必要が無くなり、処理工数を削減することが可能となる。
【０３３０】
まず、変数Ｎを初期化する（Ｓ９００）。変数Ｎには図９（ａ）に示される同一のピクチャ上にある隣接ブロックＢ０，Ａ０，Ａ１，Ｂ１，Ｃ０が設定される。ここで、初期化時にはＮ＝Ｂ０に設定することとし、変数Ｎの更新はＡ０，Ａ１，Ｂ１，Ｃ０の順で行うこととする。
【０３３１】
動き検出モードは、差分動きベクトルを伝送する為のモードであり、予測動きベクトルの選択の幅を広げる為に、左側と上側の隣接ブロックの候補の動きベクトルの差が大きくなるように、左側と上側の候補間の距離を離して登録することで、差分動きベクトルの符号量を削減し、符号化効率を向上させる。この動き検出モードでの優先順位の決定方法は、出来るだけ同一の符号化情報である確率の高い隣接ブロックを優先候補として登録するマージモードとは目的が異なる。
【０３３２】
次に、変数Ｎの隣接ブロック（以下、隣接ブロックＮとする）の位置及び符号化情報を取得する（Ｓ９０２）。取得された隣接ブロックＮの位置に基づいて、隣接ブロックＮが有効か否かを判定する（Ｓ９０３）。例えば、処理対象の予測ブロックがピクチャ左端に位置する場合、処理対象の予測ブロックの左の隣接ブロックは存在しないので、符号化情報格納メモリ１１４の中に該当する符号化情報は無いことになり、無効と判定される。
【０３３３】
隣接ブロックＮが無効の場合（Ｓ９０３のＮ）、ａｖａｉｌａｂｌｅＦｌａｇＮを“０”に設定する（Ｓ９０８）。隣接ブロックＮが有効の場合（Ｓ９０３のＹ）、隣接ブロックＮの予測モードが画面内符号化（Ｉｎｔｒａ）モードか否かを判定する（Ｓ９０４）。隣接ブロックＮの予測モードがＩｎｔｒａモードでない場合（Ｓ９０４のＹ）、即ち、Ｉｎｔｅｒモードの場合、ａｖａｉｌａｂｌｅＦｌａｇＮを“１”に設定する（Ｓ９０６）。続いて、動きベクトルの算出が行われる（Ｓ９１６）。動きベクトルの算出後、隣接ブロックＮの符号化情報をｒｅｆＩｄｘＬＸＮ、ｍｖＬＸＮ及びｐｒｅｄＦｌａｇＬＸＮに代入して設定する（Ｓ９０７）。
【０３３４】
以上のようにして、隣接ブロックＮに対する判定処理が終了すると、変数Ｎが隣接ブロックの最後か否かの判定を実施する（Ｓ９０９）。変数Ｎの更新はＢ０，Ａ０，Ａ１，Ｂ１，Ｃ０の順番に行われるので、ここではＮがＣ０か否かの判定を行う。ＮがＣ０であれば（Ｓ９０９のＹ）、全ての隣接ブロックに対して判定をしたことになり、処理を終了する。ＮがＣ０でない場合（Ｓ９０９のＮ）、Ｎの更新を行う（Ｓ９１０）。上述した隣接ブロックの順番にＮを更新して、ステップＳ９０２以降の処理を隣接ブロックＮについて繰り返す。
【０３３５】
ここで、動きベクトルの算出過程について図５４のフローチャートを用いて説明する。まず、Ｌ０予測の隣接ブロックＮの符号化情報を格納しておく変数を初期化する。ここで、変数は隣接ブロックＮの動きベクトルｍｖＬ０Ｎ、参照ピクチャ番号ｒｅｆＩｄｘＬ０Ｎ及び参照リストの有効性を示すフラグｐｒｅｄＦｌａｇＬ０Ｎであり、次のように初期化される（Ｓ９２０）。
ｍｖＬ０Ｎ＝（０，０）
ｒｅｆＩｄｘＬ０Ｎ＝０
ｐｒｅｄＦｌａｇＬ０Ｎ＝０）
【０３３６】
次に、処理対象の予測ブロックのＩｎｔｅｒモードが片方向のＬ０予測或いはＢｉ−ｐｒｅｄ予測（双予測）か否か判定される（Ｓ９２１）。Ｂｉ−ｐｒｅｄ予測ではＬ０予測及びＬ１予測の２つの参照リストを使用するので、片方向のＬ０予測或いはＢｉ−ｐｒｅｄ予測の場合（Ｓ９２１のＹ）、隣接ブロックＮの動きベクトルｍｖＬ０Ｎの算出に進む（Ｓ９２２）。
【０３３７】
処理対象の予測ブロックと隣接ブロックＮの参照ピクチャ番号及び参照リストが同一である場合には、隣接ブロックＮのＬ０予測の動きベクトルをｍｖＬ０Ｎに代入して設定する。処理対象の予測ブロックと隣接ブロックＮの参照ピクチャ番号及び参照リストが同一でない場合、隣接ブロックＮの動きベクトルのスケーリング処理が実施される。スケーリング処理については実施例１で説明したので、ここでは割愛する。スケーリング処理を実施することで、処理対象の予測ブロックに対して、より近い動きベクトルを導出して精度向上を図ることが出来る。以上のようにして、スケーリング処理された動きベクトルをｍｖＬ０Ｎに、隣接ブロックＮのＬ０予測の符号化情報をｒｅｆＩｄｘＬ０Ｎ及びｐｒｅｄＦｌａｇＬ０Ｎに代入して設定する。
【０３３８】
片方向のＬ０予測でもＢｉ−ｐｒｅｄ予測でもない場合（Ｓ９２１のＮ）、Ｌ１予測の動きベクトル判定に進む。続いて、Ｌ１予測の隣接ブロックＮの符号化情報を格納しておく変数を初期化する。ここで、変数は隣接ブロックＮの動きベクトルｍｖＬ１Ｎ、参照ピクチャ番号ｒｅｆＩｄｘＬ１Ｎ及び参照リストの有効性を示すフラグｐｒｅｄＦｌａｇＬ１Ｎであり、次のように初期化される（Ｓ９２３）。
ｍｖＬ１Ｎ＝（０，０）
ｒｅｆＩｄｘＬ１Ｎ＝０
ｐｒｅｄＦｌａｇＬ１Ｎ＝０
【０３３９】
次に、処理対象の予測ブロックのＩｎｔｅｒモードが片方向のＬ１予測或いはＢｉ−ｐｒｅｄ予測（双予測）か否か判定される（Ｓ９２４）。Ｂｉ−ｐｒｅｄ予測ではＬ０予測及びＬ１予測の２つの参照リストを使用するので、片方向のＬ１予測或いはＢｉ−ｐｒｅｄ予測の場合（Ｓ９２４のＹ）、隣接ブロックＮの動きベクトルｍｖＬ１Ｎの算出に進む（Ｓ９２５）。
【０３４０】
処理対象の予測ブロックと隣接ブロックＮの参照ピクチャ番号及び参照リストが同一である場合には、隣接ブロックＮのＬ１予測の動きベクトルをｍｖＬ０Ｎに代入して設定する。処理対象の予測ブロックと隣接ブロックＮの参照ピクチャ番号及び参照リストが同一でない場合、隣接ブロックＮの動きベクトルのスケーリング処理が実施される。スケーリング処理については実施例１で説明したので、ここでは割愛する。以上のようにして、スケーリング処理された動きベクトルをｍｖＬ１Ｎに、隣接ブロックＮのＬ１予測の符号化情報をｒｅｆＩｄｘＬ１Ｎ及びｐｒｅｄＦｌａｇＬ１Ｎに代入して設定する。片方向のＬ１予測でもＢｉ−ｐｒｅｄ予測でもない場合（Ｓ９２４のＮ）、処理を終了する。
【０３４１】
以上のようにして、処理対象の予測ブロックと同一ピクチャ上に存在する周囲の隣接ブロックを参照ブロックとして、その符号化情報が導出される。時間が異なる別のピクチャの同一位置に隣接するブロックの符号化情報の導出は実施例１と同様であるので、ここでは説明を割愛する。
【０３４２】
こうして得られた隣接ブロックの符号化情報は、参照候補リスト作成部３２１に入力される。参照候補リスト作成部３２１で作成される参照候補リストとして、処理対象の予測ブロックのＩｎｔｅｒモードに応じて、Ｌ０及びＬ１予測の２つの参照リストに対してそれぞれ参照候補リストが作成される。実施例１では参照候補リストを参照リスト毎に作成したが、実施例７では以降の判定に使用する隣接ブロックの有効性を示すフラグを参照リストに関わらず１つのフラグａｖａｉｌａｂｌｅＦｌａｇＮで表すので、Ｌ０，Ｌ１両予測の参照候補リストを一度に作成することが可能となり、処理工数を削減することが出来る。
【０３４３】
参照候補リスト作成部３２１の動作を図５５のフローチャートを用いて説明する。まず
、変数Ｎと参照候補リストのインデックスｋを初期化する（Ｓ６００）。変数Ｎには図９（ａ）に示される隣接ブロックＢ０が初期設定され、ｋは０に設定される。変数Ｎは参照候補リストに格納する優先順位を表し、隣接ブロックＢ０，Ａ０，Ａ１，Ｂ１，Ｃ０の順番に行われる。インデックスｋは参照候補リストの記憶領域に設定される符号化情報の候補の格納領域の番号を表し、優先順位と対応している。
【０３４４】
次に、参照隣接ブロックＮの有効フラグａｖａｉｌａｂｌｅＦｌａｇＮの判定が行われる（Ｓ６０１）。ａｖａｉｌａｂｌｅＦｌａｇＮが１の場合（Ｓ６０１のＹ）、隣接ブロックＮの符号化情報をＬ０及びＬ１予測の２つの参照候補リストｃａｎｄＬｉｓｔＬＸ［ｋ］に同時に登録し（Ｓ６０２）、ｋを更新する（Ｓ６０３）。ここで、添え字Ｘは０或いは１を表す。ａｖａｉｌａｂｌｅＦｌａｇＮが０の場合（Ｓ６０１のＮ）、参照候補リストには登録せず、次に進む。隣接ブロックＮが最後の参照ブロックか否かを判定する（Ｓ６０４）。最後のブロックである場合（Ｓ６０４のＹ）、インデックスの値を候補リスト総数ＮｕｍＬｉｓｔＣａｎｄに設定した後（Ｓ６０５）、処理を終了する。最後のブロックで無い場合（Ｓ６０４のＮ）、変数Ｎを更新して（Ｓ６０６）、ステップＳ６０１以降の処理を繰り返す。
【０３４５】
参照候補制限部３２８には、同一情報検出部３２２にて参照候補リストの中から同一の動きベクトルを備える参照隣接ブロックを削除した参照候補リストが入力される。参照候補制限部３２８は、参照候補リストの中から、設定された制限数分のインデックス上位の隣接ブロックを残し、それ以外を削除するか、或いは選択外として判定する。例えば、実施例１で同一の動きベクトルが存在しない場合の参照候補リストの一例を示す図２８において、動き検出モードの場合に３個に制限すると、インデックス０から２までの上位３個の隣接ブロックを参照候補とし、残りは使用しないので参照候補の対象から外す。
【０３４６】
以上のようにして、参照候補として隣接ブロックが参照候補リストに制限されて登録されることになり、参照隣接ブロックの総数を実施例１に比べて削減することが出来るので、割り当てる符号語長が短くなり、符号化効率を改善することが出来る。また、参照候補リストの優先順位の高い隣接ブロックに絞り込んで制限するので、符号化効率の低減を抑えることが出来る。参照候補リストの制限数は、例えばＳＰＳ（Ｓｅｑｕｅｎｃｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）やＳｌｉｃｅ  Ｈｅａｄｅｒといったヘッダー情報に制限数を設定してもよい。
【０３４７】
また、符号化側と復号側で暗黙的な条件として設定してもよく、符号化側と復号側で矛盾が生じないよう設定されれば方法を制限するものではない。また、予測モードに従ってそれぞれ制限数を設定してもよい。更に、処理対象の予測ブロックが参照する符号化済み或いは復号済みの隣接ブロックの符号化情報に基づいて、参照候補リストの制限数を適応的に変更してもよい。
【０３４８】
以上のように、同一情報検出部３２２の直後に参照候補制限部３２８を設けることで、参照候補を制限する手法を説明したが、参照候補制限部３２８を動きベクトル予測部１０３の中に設けずに、同一情報検出部３２２の中に参照候補制限部３２８の機能を備えるようにしても同等の効果が得られる。この場合、同一情報検出部３２２では、参照候補リストの中に格納された符号化情報の候補を比較して、同じ動きベクトルを備える候補が存在する場合、最も小さい参照候補リストのインデックスを持つ符号化情報の候補を除いて全て削除するとともに、最も小さい参照候補リストのインデックスを持つ符号化情報の候補を参照候補リストに再登録し、その登録数が制限数に達した場合に処理を終了する。
【０３４９】
図５６は実施例７における同一情報検出部３２２の動作を示すフローチャートであり、実施例１の図２９に示す動作を行う同一情報検出部３２２に対して、実施例７の参照候補を制限する機能を追加したものである。図２９のフローチャートに対して、新たにステップＳ１０１０からステップＳ１０１２の処理ステップが追加され、これら追加された処理について説明する。
【０３５０】
参照候補リストのインデックスを表す変数ｎとｍの設定後に、削除リストに記録される参照候補リストの候補数を表すカウンタｓを０に設定する（Ｓ１０１０）。次に、ステップＳ１００２にて、ｍが既に削除リストに記録されているか判定し、ｍが未だ削除リストに記録されていない場合（Ｓ１００２のＮ）、ｍを削除リストに記録するとともに（Ｓ１００３）、カウンタｓを１加算して更新する（Ｓ１０１１）。
【０３５１】
次にｓが閾値ＴＨと等しいか否かを判定する（Ｓ１０１２）。ここで、閾値ＴＨは候補リスト総数ＮｕｍＬｉｓｔＣａｎｄから制限数を引いた数を表す。即ち、参照候補リストに制限数の候補を残し、削除リストに記録された候補数の最大数を表す。ｓがＴＨと等しくなった場合（Ｓ１０１２のＹ）、参照候補リストに制限数分の候補が残ることになるので、同一情報判定の処理を終了して、ステップＳ１００８に進み、削除リストに記録されたインデックスに該当するリストの格納領域の符号化情報を削除して、インデックス０を基準に、インデックスが小さい候補の順で詰めて、符号語を更新して終了する。尚、参照候補リストの総数ＮｕｍＬｉｓｔＣａｎｄは制限数に更新される。
【０３５２】
また、参照候補制限部３２８を同一情報検出部３２２の直前に設けてもよい。この場合、参照候補リスト作成部３２１にて作成された参照候補リストの中の参照候補を制限して候補数を絞り込むので、同一情報検出部３２２で同一情報を検出する最大回数が削減される為、処理量が削減される効果がある。
【０３５３】
図５７は図２３で示される実施例１の動画像符号化装置の動きベクトル予測部１０３を基に、実施例７の参照候補制限部３２８を追加した動きベクトル予測部１０３の構成を示す。図５７で示される各部は図２３で示される各部と同じ機能を備えている。上述した図５２の構成と参照候補制限部３２８の位置が異なるだけであり、参照候補制限部３２８の動作は同様である。参照候補制限部３２８は参照候補リスト作成部３２１にて作成された参照候補リストの中から、設定された制限数分のインデックス上位の隣接ブロックを残し、それ以外を削除するか、或いは選択外として判定する。
【０３５４】
以上のように、同一情報検出部３２２の直前に参照候補制限部３２８を設けることで、参照候補を制限する手法を説明したが、参照候補制限部３２８を動きベクトル予測部１０３の中に設けずに、参照候補リスト作成部３２１の中に参照候補制限部３２８の機能を備えるようにしても同等の効果が得られる。この場合、参照候補リスト作成部３２１では、符号化情報導出部３２０にて導出された参照隣接ブロックの符号化情報を、参照候補リストに登録するとともに、参照候補リストに登録された参照隣接ブロックの数をカウントし、その数が制限数に達した場合に処理を終了する。参照候補リスト作成部３２１は、処理対象の予測ブロックの予測モードに応じて、Ｌ０及びＬ１予測の参照候補リストを同時に作成することが出来ることを除けば、実施例７における参照候補リスト作成部３１１の動作を示す図５１のフローチャートと同じ動作を行うので、ここでは説明を割愛する。
【０３５５】
（実施例８）
実施例８では、実施例２、５とは異なる、参照隣接ブロックのブロック群を定義し、その中からＫ個の代表する隣接ブロックを選択するものである。図３１（ａ）の隣接ブロックの配置を用いて説明する。実施例４と同様に、図３１（ａ）で配置される６つの隣接ブロックＡ０，Ａ１，Ｂ０，Ｂ１，Ｃ０，Ｔから、処理対象の予測ブロックと同じピクチャ上にある隣接ブロックＡ０，Ａ１，Ｂ０，Ｂ１，Ｃ０を１つのブロック群とし、そのブロック群の中からＫ個の代表する隣接ブロックを選択する。
【０３５６】
選択された同じピクチャ上の代表するＫ個の隣接ブロックと、時間が異なる別のピクチャの同一位置に隣接するブロックＴのＫ＋１個の隣接ブロックの符号化情報を参照候補として参照候補リストに登録する。実施例４では符号化情報導出部３１０、符号化情報導出部３２０でＫ個（２個）の代表する隣接ブロックを選択しているのに対し、実施例８では実施例１と同様に、符号化情報導出部３１０及び符号化情報導出部３２０はすべての隣接ブロックを選択し、参照候補リスト作成時以降の処理で、Ｋ個（２個）の代表する隣接ブロックを選択している点が異なる。
【０３５７】
実施例８は、参照候補として選出する隣接ブロックの数に制限をかける実施例７を、処理対象の予測ブロックと同一ピクチャ上のブロック群に適用した場合と等価であるが、時間が異なる別のピクチャの同一位置に隣接するブロックのみを別扱いとして参照候補リストの最後に登録する点が異なる。同じピクチャ上にある隣接ブロック同士は同じ符号化情報を持つ可能性が高く、時間が異なる別のピクチャの同一位置に隣接するブロックはそれらと異なる符号化情報を持つ可能性が高いので、別途候補として登録する効果が高いといえる。例えば、同じピクチャ上にある隣接ブロックがすべて、イントラの場合でも、時間が異なる別のピクチャの同一位置に隣接するブロックはインター予測の符号化情報を持つ可能性が高い。ただし、時間が異なる別のピクチャの同一位置に隣接するブロックは、処理対象の予測ブロックと同じピクチャ上にある隣接ブロックに比べて、処理対象の予測ブロックと符号化情報が等しい或いは近い可能性が低いので、優先順位を下げている。
【０３５８】
その為、同一ピクチャ上のブロック群から選択される隣接ブロックよりも優先順位を低く設定し、参照候補リストの下位の位置に登録する。以下では、実施例８は、実施例７で説明された動画像符号化装置１００及び動画像復号装置２００と同様の構成をなすものとして説明する。但し、実施例７の参照候補制限部３１８及び３２８は設置せず、参照候補制限部の機能を参照候補リスト作成部３１１、３２１、或いは同一情報検出部３１２、３２２の中に設け、処理対象の予測ブロックと同じピクチャ上にある隣接ブロックのブロック群に適用することとする。
【０３５９】
動画像符号化装置１００の中に設置されるマージ検出部１０６と、対応する動画像復号装置２００の中に設置されるマージ判定部２０６の参照候補リスト作成部３１１、及び動画像符号化装置の１００中に設置される動きベクトル予測部１０３と、対応する動画像復号装置２００の中に設置される動きベクトル算出部２０４の参照候補リスト作成部３２１の中で、処理対象の予測ブロックと同じピクチャ上にある隣接ブロックＡ０，Ａ１，Ｂ０，Ｂ１，Ｃ０を同一ピクチャ上のブロック群と定義する。同一ピクチャ上のブロック群を代表する隣接ブロック、Ｔの順に優先順位を設定し、優先順位の高いものから参照候補リストに参照隣接ブロックの符号化情報の候補を登録することで、参照候補リストのインデックスの符号量を削減する。
【０３６０】
まず、動画像符号化装置１００の構成を示す図２の中に設置される実施例８のマージ検出部１０６について説明する。マージ検出部１０６は実施例１で説明した図１１と同じ構成をなすが、参照候補リスト作成部３１１の処理が実施例１とは異なる。実施例８におけるマージ検出部１０６の参照候補リスト作成部３１１の動作について説明する。
【０３６１】
図５８は実施例８における参照候補リスト作成部３１１の動作を示すフローチャートである。実施例８では、参照候補リスト作成前に、同一ピクチャ上のブロック群の、参照隣接ブロックの参照候補リストに登録する数Ｋを設定する。ここで、Ｋは２に設定する。尚、Ｋは同一ピクチャ上のブロック群の中の隣接ブロック総数を超えないこととする。
【０３６２】
まず、変数Ｎと参照候補リストのインデックスｋを初期化する（Ｓ１３００）。変数Ｎには予測モードに対応した最も優先順位の高い隣接ブロックが初期設定される。マージモードにおける優先順位はＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０としているので、Ａ１が設定され、Ｎの更新はこの順番で行われる。ｋは０に設定される。インデックスｋは参照候補リストの記憶領域に設定される符号化情報の候補の格納領域の優先順位を示す。
【０３６３】
最初に、隣接ブロックＮの有効フラグａｖａｉｌａｂｌｅＦｌａｇＮの判定が行われる（Ｓ１３０１）。ａｖａｉｌａｂｌｅＦｌａｇＮが０の場合（Ｓ１３０１のＮ）、参照候補リストには登録せず、ステップＳ１３０５に進む。ａｖａｉｌａｂｌｅＦｌａｇＮが１の場合（Ｓ１３０１のＹ）、隣接ブロックＮの符号化情報を参照候補リストに登録し（Ｓ１３０２）、ｋを更新する（Ｓ１３０３）。
【０３６４】
ｋの更新後、ｋとＫの比較に進む（Ｓ１３０４）。ｋがＫ未満（Ｓ１３０４のＹ）、即ち参照候補リストに登録される隣接ブロックの数が設定数Ｋに達していない場合はステップＳ１３０５に進む。ｋがＫ以上の場合（Ｓ１３０４のＮ）、参照候補リストに登録される隣接ブロックの数が設定数Ｋに達した場合なので、参照候補リストに登録するか否かの判定から抜け、ステップＳ１３０７に進む。
【０３６５】
次に、隣接ブロックＮが最後の参照ブロックか否かを判定する（Ｓ１３０５）。隣接ブロックＮが最後のブロックで無い場合（Ｓ１３０５のＮ）、変数Ｎを更新して（Ｓ１３０６）、ステップＳ１３０１以降の処理を繰り返す。隣接ブロックＮが最後のブロックである場合（Ｓ１３０５のＹ）、ステップＳ１３０７に進む。
【０３６６】
同一ピクチャ上のブロック群の登録判定終了後に、時間が異なる別のピクチャの同一位置に隣接するブロックＴの有効フラグａｖａｉｌａｂｌｅＦｌａｇＴの判定が行われる（Ｓ１３０７）。ａｖａｉｌａｂｌｅＦｌａｇＴが１の場合（Ｓ１３０７のＹ）、隣接ブロックＴの符号化情報を参照候補リストに登録し（Ｓ１３０８）、ｋを更新する（Ｓ１３０９）。ａｖａｉｌａｂｌｅＦｌａｇＴが０の場合（Ｓ１３０７のＮ）、参照候補リストに登録せず、ステップＳ１３１０に進む。参照候補リストに登録した数を候補リスト総数ＮｕｍＬｉｓｔＣａｎｄに設定した後（Ｓ１３１０）、処理を終了する。
【０３６７】
以上の処理により、参照候補リストに登録される。ここでは、参照候補リストに登録される最大数はＫ＋１で表される。参照隣接ブロックが１つだけ有効となる場合、最大符号語長は０となるので、符号語は必要とせず、１つだけ有効と判定された隣接ブロックの符号化情報の候補を参照先として一意に決定される。
【０３６８】
上述した動画像符号化装置１００の中に設置されるマージ検出部１０６に対応する、動画像復号装置２００の中に設置される実施例８のマージ判定部２０６について説明する。マージ判定部２０６は実施例１で説明した図２２と同じ構成をなし、参照候補リスト作成部３１１の処理が実施例１と異なる。それ以外の符号化情報導出部３１０、同一情報検出部３１２、参照候補リスト格納メモリ３１４及び選択部３１５は実施例１と同一の機能を備える。
【０３６９】
また、参照候補リスト作成部３１１は上述した実施例８におけるマージ検出部１０６の参照候補リスト作成部３１１と同一の機能を備えているので、マージ判定部２０６の同一情報検出部３１２までの処理で、実施例８のマージ検出部１０６と同一の参照候補リストが作成されることになる。作成された参照候補リストから、マージモードにおける参照隣接ブロックの符号化情報を取得する選択部３１５について説明する。選択部３１５は、作成された参照候補リストの中から、第１の符号化ビット列復号部２０２で復号された参照隣接ブロックを特定するインデックスで指定される参照候補リストの隣接ブロックを選択する。選択された符号化情報を動き補償予測部２０７に供給するとともに、符号化情報格納メモリ２１０に供給する。
【０３７０】
次に、動画像符号化装置１００の構成を示す図２の中に設置される実施例８の動きベクトル予測部１０３について説明する。動きベクトル予測部１０３は実施例１で説明した図２３と同じ構成をなすが、参照候補リスト作成部３２１の処理が実施例１とは異なる。実施例８における参照候補リスト作成部３２１の動作について説明する。
【０３７１】
参照候補リスト作成部３２１は上述したマージ検出部１０６の参照候補リスト作成部３１１と同様に、処理対象の予測ブロックと同じピクチャ上にある隣接ブロックＡ０，Ａ１，Ｂ０，Ｂ１，Ｃ０を１つのブロック群とし、そのブロック群の中からＫ個の代表する隣接ブロックを選択する。マージ検出部１０６の参照候補リスト作成部３１１と比較して、Ｌ０及びＬ１予測それぞれの参照候補リストを同時に作成する点が異なっているが、処理の流れに大差はないので、ここでは説明を割愛する。尚、動き検出モードでの優先順位はＢ０，Ａ０，Ａ１，Ｂ１，Ｃ０としている。
【０３７２】
上述した動画像符号化装置１００の中に設置される動きベクトル予測部１０３に対応する、動画像復号装置２００の中に設置される実施例８の動きベクトル算出部２０４についても、動きベクトル算出部２０４の参照候補リスト作成部３２１は、対応する動きベクトル予測部１０３の参照候補リスト作成部３２１と同一の機能を備えており、動きベクトル予測部１０３と同一の参照候補リストが作成されることになるので、ここでの説明は割愛する。
【０３７３】
以上の処理により、実施例８で作成される候補リストは、参照隣接ブロックが全て有効であった場合、予測モード別に図５９ように表される。マージモード、動き検出モードともに同一ピクチャ上のブロック群の参照隣接ブロックの個数を２とした場合の一例であり、それぞれの予測モードの優先順位の高い有効な隣接ブロックが参照候補リストに登録される。
【０３７４】
実施例８では、優先順位をマージモードの場合はＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０、動き検出モードの場合はＢ０，Ａ０，Ａ１，Ｂ１，Ｃ０の順番としたが、必ずしもこの順番である必要はない。但し、マージモードの場合は、処理対象の予測ブロックの辺と、符号化情報が最も等しい可能性が高いと考えられる処理対象の予測ブロックの辺とが接している隣接ブロックＡ１及びＢ１を優先して参照候補リストの前方に登録することで、マージインデックスの符号量を削減し、符号化効率を向上させることができる。
【０３７５】
動き検出モードは、差分動きベクトルを伝送する為のモードであり、予測動きベクトルの選択の幅を広げる為に、左側と上側の隣接ブロックの候補の動きベクトルの差が大きくなるように、左側と上側の候補間の距離を離して登録することで、差分動きベクトルの符号量を削減し、符号化効率を向上させることができる。この動き検出モードでの優先順位の決定方法は、出来るだけ同一の符号化情報である確率の高い隣接ブロックを優先候補として登録するマージモードとは目的が異なる。尚、実施例３で説明したように、マージモードの場合は実施例８を用いて、動き検出モードの場合は実施例２或いは他の実施例を用いる等、予測モードに応じて組み合わせを変えることも可能である。
【０３７６】
（実施例９）
実施例９では、実施例１と同様に、処理対象の予測ブロックと同じピクチャ上にある隣接ブロック及び時間が異なる別のピクチャの同一位置に隣接するブロックに対して、隣接ブロックが有効であれば参照候補リストに登録し、参照候補リストの中から最適な隣接ブロックの符号化情報を選択し、隣接ブロックを表す参照候補リストのインデックスを符号化、伝送するものである。
【０３７７】
図９（ａ）の隣接ブロックの配置を用いて説明する。実施例１では、参照候補リストを作成する場合に、隣接ブロックの位置に対して予め決められた優先順位が対応付けられ、優先順位の順番で隣接ブロックが所定の条件を満たすか否かを判定し、条件を満たす場合に参照候補リストの前方に登録して、参照候補リストを作成していた。つまり、隣接ブロックの位置に対応付けられた優先順位がそのまま参照候補リストのインデックスに反映され、優先順位が高い程、小さいインデックスとなる参照候補リストの記憶領域に格納されていた。
【０３７８】
一般に、処理対象の予測ブロックの周囲の隣接ブロックは、処理対象の予測ブロックに接している領域が大きい程、処理対象の予測ブロックと符号化情報が最も等しい可能性が高いと考えられるので、そのような隣接ブロックを優先して参照候補リストの前方に登録することで、インデックスの符号量を削減し、符号化効率を向上させる。
【０３７９】
以上の点から、実施例９では、動き検出モードの場合に、動きベクトル予測の参照候補リスト作成時に隣接ブロックの有効性を判定する順番と、参照隣接ブロックに対して割り当てる符号語の順番を別々に定義する。参照候補リスト作成時に隣接ブロックの有効性を判定する順番は、予測動きベクトルの選択の幅を広げる為に、左側と上側の隣接ブロックの候補の動きベクトルの差が大きくなるように、隣接ブロック間の距離を離した順位にする。
【０３８０】
ここでは、動きベクトル予測の参照候補リスト作成時に隣接ブロックの有効性を判定する順番をＢ０，Ａ０，Ａ１，Ｂ１，Ｃ０，Ｔとする。一方、参照隣接ブロックに対して割り当てる符号語は、処理対象の予測ブロックに接している領域が大きい隣接ブロックを優先してＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０，Ｔの順番に少ない符号語を割り当てることとする。
【０３８１】
動画像符号化装置１００の構成を示す図２の中に設置される実施例９の動きベクトル予測部１０３について説明する。実施例９の動きベクトル予測部１０３は実施例１で説明した図２３と同じ構成をなすが、参照候補リスト作成部３２１の動作が異なる。実施例９における参照候補リスト作成部３２１の動作について説明する。図６０は、実施例９の動き検出モードにおける参照候補リスト作成部３２１の動作を示すフローチャートであり、この図を用いて説明する。
【０３８２】
参照候補リスト作成部３２１は基本的に動きベクトル予測部１０３の中の参照候補リスト作成部３２１と同様の動作を実施する。動き検出モードでは参照リストによりＬ０予測とＬ１予測それぞれの参照候補リストを作成する必要があるので、動き検出モードでの参照候補リスト作成は、Ｌ０予測とＬ１予測を別個に２回実施する。その為、隣接ブロックの有効性を判定するステップＳ６０１において、隣接ブロックの有効性を示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮ（Ｘは０或いは１、Ｎは隣接ブロックを示す記号が記述される）に参照リストを示すＬＸの添字が付加されるが、判定動作はマージモードの場合と同様である。
【０３８３】
図６０では、動きベクトル予測部１０３の中の参照候補リスト作成部３２１の動作を示す図１９のフローチャートに対して、新たに変換テーブルの作成・更新（Ｓ６０８）が追加されており、この判定部を含め、参照候補リスト作成部３２１の動作を説明する。但し、ここでは参照リストの一方のみを説明することし、もう一方の参照リストについては判定動作は同様であるので説明を割愛する。
【０３８４】
まず、変数Ｎと参照候補リストのインデックスｋを初期化する（Ｓ６００）。変数Ｎには図９（ａ）に示される隣接ブロックＢ０が初期設定され、ｋは０に設定される。インデックスｋは参照候補リスト格納メモリ３２４に設けられる参照候補リストの記憶領域に設定される符号化情報の候補の格納領域の優先順位を示す。この格納領域は配列構造を成し、ｃａｎｄＬｉｓｔで表される。インデックスの数字は０から開始され、参照候補リストｃａｎｄＬｉｓｔの記憶領域に、参照隣接ブロックの符号化情報の候補が格納される。以降の処理では、参照候補リストｃａｎｄＬｉｓｔに登録されたインデックスｉの符号化情報は、ｃａｎｄＬｉｓｔ［ｉ］で表すこととする。
【０３８５】
次に、参照隣接ブロックＮの有効フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮの判定が行われる（Ｓ６０１）。ここで、Ｘは０或いは１が入る。ａｖａｉｌａｂｌｅＦｌａｇＬＸＮが０の場合（Ｓ６０１のＮ）、参照候補リストには登録せず、次に進む。隣接ブロックＮが最後の参照ブロックか否かを判定する（Ｓ６０４）。最後のブロックである場合（Ｓ６０４のＹ）、インデックスｋの値を候補リスト総数ＮｕｍＬｉｓｔＣａｎｄに設定した後（Ｓ６０５）、処理を終了する。最後のブロックで無い場合（Ｓ６０４のＮ）、変数Ｎを更新して（Ｓ６０６）、ステップＳ６０１以降の処理を繰り返す。ここで、変数Ｎを更新する隣接ブロックの順番が参照候補リストに格納する優先順位となっており、実施例９では、順番（Ｂ０，Ａ０，Ａ１，Ｂ１，Ｃ０，Ｔ）を設定することとする。
【０３８６】
一方、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮが１の場合（Ｓ６０１のＹ）、隣接ブロックＮの符号化情報を参照候補リストｃａｎｄＬｉｓｔ［ｋ］に登録し（Ｓ６０２）、変換テーブルの作成・更新（Ｓ６０８）を実施し、ｋを更新する（Ｓ６０３）。
【０３８７】
ここで、変換テーブルの作成・更新（Ｓ６０８）の詳細について説明する。変換テーブルの作成・更新では、動きベクトル予測の参照候補リスト作成時に隣接ブロックの有効性を判定する順番と、参照隣接ブロックに対して割り当てる符号語の順番とを対応させる変換テーブルを作成する。変換テーブルは参照候補リスト格納メモリ３２４に設けられる配列構造をなす記憶領域であり、参照候補リストのインデックスに対応する符号語を表す変換テーブルのインデックスを記憶する。
【０３８８】
図６１を用いて説明する。変数Ｎと参照候補リストのインデックスｋが入力され、変換テーブルの作成・更新が開始する。最初に、変数Ｍと変換テーブルのインデックスｊを初期化する（Ｓ１４００）。変数Ｍには図９（ａ）に示される隣接ブロックＡ１が初期設定され、ｊは０に設定される。変数ＭはＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０，Ｔの順番で更新される。次に、ＭとＮの同一判定が行われる（Ｓ１４０１）。ＭがＮと異なる場合（Ｓ１４０１のＮ）、変換テーブルには登録せず、ｊを更新する（Ｓ１４０３）。
【０３８９】
次に、変数Ｍが最後の隣接ブロックか否かを判定する（Ｓ１４０４）。最後の隣接ブロックはＴであり、ＭがＴである場合（Ｓ１４０４のＹ）、処理を終了する。最後のブロックで無い場合（Ｓ１４０４のＮ）、変数Ｍを更新して（Ｓ１４０５）、ステップＳ１４０１以降の処理を繰り返す。
【０３９０】
ＭがＮの場合（Ｓ１４０１のＹ）、参照候補リストのインデックスｋを変換テーブルの先頭からｊ番目の記憶領域に登録される（Ｓ１４０２）。インデックスｋの登録されると処理を終了し、図６０のｋの更新（Ｓ６０３）に戻る。以上の処理により、参照候補リストのインデックスｋは変換テーブルに登録され、参照隣接ブロックが全て有効であれば、図６２で示される変換テーブルのインデックスで表される符号語に対応付けられる。
【０３９１】
この変換テーブルを使って、登録された参照候補リストは、参照隣接ブロックが全て有効であれば、図６３に示される順番で参照候補リストが作成されて、符号語が割り当てられる。参照隣接ブロックが１つだけ有効となる場合、符号語は必要とせず、１つだけ有効と判定された隣接ブロックの符号化情報の候補が参照先として一意に決定されることになる。
【０３９２】
ここでは、参照候補リスト作成部３２１にて作成された直後の参照候補リストのインデックスに対して説明したが、本来は同一情報検出部３２２にて同一の符号化情報を備える参照候補の隣接ブロックを参照候補リストから削除した後に、参照候補リストのインデックスと変換テーブルのインデックスとを対応付けることが望ましい。同一情報検出部３２２にて削除された参照候補の隣接ブロックの参照候補リストのインデックスに該当する変換テーブルの記憶領域も削除されて、変換テーブルの先頭方向に詰められる。
【０３９３】
例えば、図６２において、参照候補リストのインデックス１に該当する隣接ブロックが削除された場合、参照候補リストのインデックス１に該当する変換テーブルのインデックス３の箇所が削除される。変換テーブルのインデックス４及び５がそれぞれ３及び４となり、それぞれに対応付けられる符号語も１１１０及び１１１１に更新される。
【０３９４】
以上のようにして、作成された参照候補リストの動きベクトルを予測動きベクトルとして、差分動きベクトル算出部３２６では、動きベクトル検出部１０２が検出した動きベクトルと予測動きベクトルから差分動きベクトルを算出し、算出された差分動きベクトルを出力部３２３に供給する。出力部３２３が、作成された参照候補リストの中のインデックスと差分動きベクトルを出力する。参照候補リストは、参照候補リストをＭＶＰリストとして、リストの中のインデックスをＭＶＰインデックスとして出力する。
【０３９５】
上述した動画像符号化装置１００の中に設置される動きベクトル予測部１０３に対応する、動画像復号装置２００の中に設置される動きベクトル算出部２０４の中も動きベクトル予測部１０３と同様の機能をなす実施例９の参照候補リスト作成部３２１或いは同一情報検出部３２２が備えられているので、動きベクトル予測部１０３と同一の参照候補リストが作成される。作成された参照候補リストは選択部３２５に出力する。
【０３９６】
選択部３２５は、作成された参照候補リストの中から、第１の符号化ビット列復号部２０２で復号された参照隣接ブロックを特定するインデックスで指定される参照候補リストの隣接ブロックを選択する。選択されたリストの隣接ブロックの符号化情報から動きベクトルを予測動きベクトルとして出力し、差分動きベクトル算出部３２６にて予測動きベクトルと第１の符号化ビット列復号部２０２で復号された差分動きベクトルとを加算して動きベクトルを算出し、動き補償予測部２０７に供給するとともに、選択された参照候補リストの隣接ブロックの符号化情報を符号化情報格納メモリ２１０に供給する。
【０３９７】
（実施例１０）
実施例１０は、動き検出モードの場合に、参照候補リストの作成時に隣接ブロックの有効性を判定する順番を、最初の隣接ブロックが有効か否かでその後の隣接ブロックの判定する順番を変更するものである。図９（ａ）の隣接ブロックの配置を用いて説明する。実施例９の参照候補リスト作成時に隣接ブロックの有効性を判定する順番Ｂ０，Ａ０，Ａ１，Ｃ０，Ｂ１，Ｔを一例として説明する。
【０３９８】
最初に判定する隣接ブロックはＢ０であり、Ｂ０が有効である場合、その後の隣接ブロックの順番は変更されない。Ｂ０が無効である場合、その後の隣接ブロックの順番はＡ０，Ｂ１，Ｃ０，Ａ１の順番に変更される。Ｂ０が無効となる場合、Ａ０が最初に判定する隣接ブロックとなり、その次の隣接ブロックがＡ１である。Ａ１はＡ０と近い位置にあるので、Ａ０に近い値の動きベクトルとなる可能性が高く、Ａ１が予測動きベクトルとして選択される可能性が低くなる。
【０３９９】
動き検出モードは、差分動きベクトルを伝送する為のモードであり、参照隣接ブロックの備えるブロックが近い値であると、予測動きベクトルの選択の幅が狭くなり、適切な予測動きベクトルが検出されなくなる。その為、Ｂ０が無効となる場合、Ａ０の次に判定する隣接ブロックは、予測動きベクトルの選択の幅を広げる為に、Ａ０と動きベクトルの差が大きくなるように、Ａ０と距離の離れた隣接ブロックＢ１を選択する。このようにして、出来るだけ予測動きベクトルの候補となる隣接ブロックの距離が離れるように、判定する順番を変更する。
【０４００】
（実施例１１）
実施例１１では、動き検出モードの場合、処理対象の予測ブロックと同じピクチャ上にある隣接ブロックを同一ピクチャ上のブロック群と定義し、その中からブロック群を代表する２つの隣接ブロックを選択する一手法を示す。図９（ａ）の隣接ブロックの配置を用いて説明する。参照候補リストの作成時に隣接ブロックの有効性を判定する順番をＢ０，Ｂ１，Ｃ０，Ａ１，Ａ０とする。
【０４０１】
最初に、列記した左から右の順番Ｂ０，Ｂ１，Ｃ０，Ａ１，Ａ０（順方向）で隣接ブロックの有効性を判定し、最初に有効と判定された隣接ブロックをまず１つ目のブロック群を代表する隣接ブロックとして参照候補リストに登録する。次に、列記した順番の逆順、つまり右から左の順番Ａ０，Ａ１，Ｃ０，Ｂ１，Ｂ０（逆方向）で隣接ブロックの有効性を判定し、もう１つのブロック群を代表する隣接ブロックとして参照候補リストに登録する。
【０４０２】
隣接ブロックの有効性を判定する順番が、処理対象の予測ブロックの右上コーナーから左下コーナーにかけて、隣接ブロックの候補の動きベクトルの差が大きくなるように、有効性の判定順を逆にして、候補間の距離を離して登録することで、予測動きベクトルの選択の幅が広がり、差分動きベクトルの符号量を削減し、符号化効率を向上させる。
【０４０３】
尚、順方向、逆方向で隣接ブロックの有効性を判定する場合、順方向ではＡ０、逆方向ではＢ０のそれぞれ最後の順番に当たる隣接ブロックの判定を省略してもよい。順方向からの判定で最後のＡ０が選択される場合は、逆方向からの最初の判定で有効となる隣接ブロックであるので、順方向からの判定で選択された隣接ブロックとして適切でない為である。
【０４０４】
また、各方向からの判定でＣ０までの３つの隣接ブロックのみ判定するように制限してもよい。例えば、順方向からの判定でＡ０が選択され、逆方向からの判定でＡ１が選択された場合、同じ動きベクトルを備える隣接ブロックである可能性が高く、動きベクトル予測の選択幅が狭くなり、効果的な予測動きベクトルを導出出来なくなってしまう。このような近接した隣接ブロックの選択を避ける為に、中間位置にあるＣ０までで有効性の判定を行う。以上のような有効性判定の制限は、判定する隣接ブロックの数が少なくなるので、処理工数の削減に繋がる。
【０４０５】
（実施例１２）
実施例１２は、動き検出モードの場合に、実施例９に対して、処理対象の予測ブロックと同じピクチャ上にある隣接ブロックを同一ピクチャ上のブロック群と定義し、その中からブロック群を代表する隣接ブロックとして選択するようにしたものである。実施例１２では、実施例９と同様に、動きベクトル予測の参照候補リスト作成時に隣接ブロックの有効性を判定する順番と、参照隣接ブロックに対して割り当てる符号語の順番を別々に定義する。
【０４０６】
参照候補リスト作成時には、予測動きベクトルの選択の幅を広げる為に、左側と上側の隣接ブロックの候補の動きベクトルの差が大きくなるように、隣接ブロック間の距離を離した順位とし、符号語割り当てでは、処理対象の予測ブロックと符号化情報が最も等しい可能性が高いと考えられる処理対象の予測ブロックに接している領域が大きい隣接ブロックを優先して小さい符号語を割り当てるようにする。
【０４０７】
ここでは、動きベクトル予測の参照候補リスト作成時に隣接ブロックの有効性を判定する順番をＢ０，Ａ０，Ａ１，Ｃ０，Ｂ１，Ｔとする。一方、参照隣接ブロックに対して割り当てる符号語は、処理対象の予測ブロックに接している領域が大きい隣接ブロックを優先してＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０，Ｔの順番に少ない符号語を割り当てることとする。
【０４０８】
まず、動画像符号化装置１００の構成を示す図２の中に設置される実施例１２の特徴となる動きベクトル予測部１０３について説明する。動きベクトル予測部１０３は図６４で示される構成をなし、実施例９で説明した図２３に対して、参照候補リスト作成部３２１の直後に参照候補制御部３２９が追加された点が異なる。
【０４０９】
また、実施例１２では、処理対象の予測ブロックと同一ピクチャ上にあるブロック群を代表する隣接ブロックを選択するので、参照候補リスト作成部３２１は実施例８で説明した処理対象の予測ブロックと同一ピクチャ上にあるブロック群からの選択方法と同様の動作を行う。ここでは、同一ピクチャ上のブロック群からＫ個の代表する隣接ブロックを選択する。選択された同一ピクチャ上のブロック群を代表するＫ個の隣接ブロックと、時間が異なる別のピクチャの同一位置に隣接するブロックＴのＫ＋１個の隣接ブロックの符号化情報を参照候補として参照候補リストに登録する。
【０４１０】
ここでＫは２として、参照候補リスト作成部３２１では、参照候補リストの先頭から同一ピクチャ上のブロック群を代表する２個の隣接ブロック、及び時間が異なる別のピクチャの同一位置に隣接するブロックの計３個の符号化情報が参照候補リストに登録されたこととして、以下説明する。
【０４１１】
図６５は参照候補制御部３２９の動作を示すフローチャートである。参照候補リスト作成部３２１で作成された参照候補リストと参照候補リストに登録された参照候補数ＮｕｍＬｉｓｔＣａｎｄが入力される。まず、ＮｕｍＬｉｓｔＣａｎｄの判定が行われる（Ｓ１５００）。ＮｕｍＬｉｓｔＣａｎｄが２未満の場合（Ｓ１５００のＹ）、即ち参照候補リストに登録された参照候補が１であれば、その１つの候補が参照先として一意に決定されるので、処理を終了する。
【０４１２】
ＮｕｍＬｉｓｔＣａｎｄが２より大きい場合（Ｓ１５００のＮ）、参照候補リストの先頭から２番目に登録された符号化情報ＣａｎｄＬｉｓｔＬＸ［１］を備える隣接ブロックをＮとする。ここで、参照候補リストの配列ＣａｎｄＬｉｓｔＬＸは０を参照候補リストの先頭インデックスとして開始するので、ＣａｎｄＬｉｓｔＬＸ［１］が参照候補リストの先頭から登録された２番目の符号化情報が格納される記憶領域となり、添え字Ｘには参照リストの参照リストを示す０（Ｌ０予測）或いは１（Ｌ１予測）が入る。
【０４１３】
次に、Ｎが隣接ブロックＡ１或いはＢ１であるか否かを判定する（Ｓ１５０２）。ＮがＡ１でもＢ１でない場合（Ｓ１５０２のＮ）、処理を終了する。ＮがＡ１或いはＢ１の場合（Ｓ１５０２のＹ）、参照候補リストの中の符号化情報の入れ換えを実施する（Ｓ１５０３）。参照候補リストの先頭の符号化情報ＣａｎｄＬｉｓｔＬＸ［０］と２番目の符号化情報ＣａｎｄＬｉｓｔＬＸ［１］の入れ換えを行う。
【０４１４】
参照候補リストの作成する順番はＢ０，Ａ０，Ａ１，Ｃ０，Ｂ１であるので、Ａ１或いはＢ１が参照候補リストの２番目にある場合、先頭となる隣接ブロックはＡ１或いはＢ１よりも符号語長が長くなる。これは、隣接ブロックを特定するインデックスの符号語割り当て順番がＡ１，Ｂ１，Ｂ０，Ａ０，Ｃ０，Ｔと定義されているので、符号語長がＡ１＜Ｂ１＜Ｂ０＜Ａ０＜Ｃ０＜Ｔとなる為である。そこで、Ａ１或いはＢ１を参照候補リストの先頭に入れ換えて、符号語長の短いインデックスの隣接ブロックの参照候補リストの中での優先を高くし、インデックスの符号量を削減する。
【０４１５】
尚、入れ換え前の参照候補リストの中の順番としてＡ１，Ｂ１となる場合にも入れ換えを実施することになり、符号語の長いＢ１が参照候補リストの先頭となるが、他の隣接ブロックが参照候補リストの先頭となる場合と比べて符号化効率の損失を抑えることが出来る。以上のようにして、参照候補リストの中の入れ換えが実施され、参照候補リストの上位に少ない符号語で隣接ブロックを特定する隣接ブロックを割り当てることが可能となり、符号化効率を向上させることが可能となる。
【０４１６】
以上のようにして、同一情報検出部３２２の後に、作成された参照候補リストの動きベクトルを予測動きベクトルとして、差分動きベクトル算出部３２６は、動きベクトル検出部１０２が検出した動きベクトルと予測動きベクトルから差分動きベクトルを算出し、算出された差分動きベクトルを出力部３２３に供給する。出力部３２３が、作成された参照候補リストの中のインデックスと差分動きベクトルを出力する。参照候補リストは、参照候補リストをＭＶＰリストとして、リストの中のインデックスをＭＶＰインデックスとして出力する。
【０４１７】
上述した動画像符号化装置１００の中に設置される動きベクトル予測部１０３に対応する、動画像復号装置２００の中に設置される動きベクトル算出部２０４の中も動きベクトル予測部１０３と同様の機能をなす実施例１２の参照候補制御部３２９が設置されるので、動きベクトル予測部１０３と同一の参照候補リストが作成される。作成された参照候補リストは選択部３２５に出力される。選択部３２５は、作成された参照候補リストの中から、第１の符号化ビット列復号部２０２で復号された参照隣接ブロックを特定するインデックスで指定される参照候補リストの隣接ブロックを選択する。選択されたリストの隣接ブロックの符号化情報から動きベクトルを予測動きベクトルとして出力し、差分動きベクトル算出部３２６にて予測動きベクトルと第１の符号化ビット列復号部２０２で復号された差分動きベクトルとを加算して動きベクトルを算出し、動き補償予測部２０７に供給するとともに、選択された参照候補リストの隣接ブロックの符号化情報を符号化情報格納メモリ２１０に供給する。
【０４１８】
以上説明したように本発明の実施例において、動きベクトルの予測方法とマージ手法でそれぞれ参照する周辺の隣接ブロックの配置を統合することで、隣接ブロックの情報を記憶する一時メモリを削減し、共通化した参照隣接ブロックから各予測手法毎に候補の優先順位を決定することで、画像間予測における動きベクトルの予測方法とマージ手法の符号化効率の冗長度を削減すると共に復号時の処理効率を高めることが出来る。また、動き補償を行う前に、参照する周囲の隣接ブロックの予測モードや位置情報等から、そのブロックを参照する有効性を判定することで、動き補償の処理回数を削減することが出来る。
【０４１９】
以下、より具体的に説明する。想定出来得る最大のメモリアクセス回数、メモリ量、処理量（処理時間）を削減するために、図９（ａ）に示すように、左側に隣接するブロック、上側に隣接するブロックをそれぞれ１つに限定することにより候補を絞る。このように予め候補を限定することで、符号化効率を殆ど低下させることなく、メモリアクセス回数、メモリ量、処理量（処理時間）を削減する効果がある。
【０４２０】
また、メモリアクセス回数、メモリ量、処理量（処理時間）を削減することが出来る上に、マージインデックス、ＭＶＰインデックスの符号量を削減することが出来るので、符号量も削減する効果がある。また、マージモードと動き検出モードにおいて候補の位置を共通化することにより、更なるメモリアクセス回数、メモリ量、処理量（処理時間）の削減を図っている。更に、マージモード及び動き検出モードのそれぞれの特性に応じた配置で候補リストに候補を格納することで、マージモードではマージインデックスの符号量を削減し、動き検出モードではＭＶＰインデックス、及び差分動きベクトルの符号量を削減することで、符号化効率を改善している。
【０４２１】
尚、本発明は以上の実施例に限定されるものではなく、例えば上記の動画像符号化／復号装置の機能をコンピュータに実現させるための動画像符号化／復号プログラムも含むものである。この動画像符号化／復号プログラムは、記録媒体から読み取られてコンピュータに取り込まれてもよいし、通信ネットワークを介して伝送されてコンピュータに取り込まれてもよい。
【０４２２】
以上述べた実施例の動画像符号化装置が出力する動画像の符号化ビットストリームは、実施例で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ビットストリームを復号することができる。
【０４２３】
動画像符号化装置と動画像復号装置の間で符号化ビットストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ビットストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ビットストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ビットストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
【０４２４】
動画像送信装置は、動画像符号化装置が出力する符号化ビットストリームをバッファするメモリと、符号化ビットストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
【０４２５】
以上、本発明をいくつかの実施例をもとに説明した。それらの実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０４２６】
１００  動画像符号化装置、  １０１  画像メモリ、  １０２  動きベクトル検出部、  １０３  動きベクトル予測部、  １０４  インター予測情報検出部、  １０５  動き補償予測部、  １０６  マージ検出部、  １０７  予測方法決定部、  １０８  スイッチ、  １０９  第１の符号化ビット列生成部、  １１０  残差信号生成部、  １１１  直交変換・量子化部、  １１２  逆量子化・逆直交変換部、  １１３  復号画像信号重畳部、  １１４  符号化情報格納メモリ、  １１５  復号画像メモリ、  １１６  第２の符号化ビット列生成部、  １１７  符号化ビット列多重化部、  ２００  動画像復号装置、  ２０１  ビット列分離部、  ２０２  第１の符号化ビット列復号部、  ２０３  第２の符号化ビット列復号部、  ２０４  動きベクトル算出部、  ２０５  インター予測情報検出部、  ２０６  マージ判定部、  ２０７  動き補償予測部、  ２０８  逆量子化・逆直交変換部、  ２０９  復号画像信号重畳部、  ２１０  符号化情報格納メモリ、  ２１１  復号画像メモリ、  ２１２  スイッチ、  ３０１  処理対象ブロック位置検出部、  ３０２  隣接ブロック指定部、  ３０３  一時メモリ、  ３１０  符号化情報導出部、  ３１１  参照候補リスト作成部、  ３１２  同一情報検出部、  ３１３  出力部、  ３１４  参照候補リスト格納メモリ、  ３１５  選択部、  ３１８  参照候補制限部、  ３２０  符号化情報導出部、  ３２１  参照候補リスト作成部、  ３２２  同一情報検出部、  ３２３  出力部、  ３２４  参照候補リスト格納メモリ、  ３２６  差分動きベクトル算出部、  ３２８  参照候補制限部、  ３２９  参照候補制御部。
【図１】
0005644701.tif 000004
【図２】
0005644701.tif 000005
【図３】
0005644701.tif 000006
【図４】
0005644701.tif 000007
【図５】
0005644701.tif 000008
【図６】
0005644701.tif 000009
【図７】
0005644701.tif 000010
【図８】
0005644701.tif 000011
【図９】
0005644701.tif 000012
【図１０】
0005644701.tif 000013
【図１１】
0005644701.tif 000014
【図１２】
0005644701.tif 000015
【図１３】
0005644701.tif 000016
【図１４】
0005644701.tif 000017
【図１５】
0005644701.tif 000018
【図１６】
0005644701.tif 000019
【図１７】
0005644701.tif 000020
【図１８】
0005644701.tif 000021
【図１９】
0005644701.tif 000022
【図２０】
0005644701.tif 000023
【図２１】
0005644701.tif 000024
【図２２】
0005644701.tif 000025
【図２３】
0005644701.tif 000026
【図２４】
0005644701.tif 000027
【図２５】
0005644701.tif 000028
【図２６】
0005644701.tif 000029
【図２７】
0005644701.tif 000030
【図２８】
0005644701.tif 000031
【図２９】
0005644701.tif 000032
【図３０】
0005644701.tif 000033
【図３１】
0005644701.tif 000034
【図３２】
0005644701.tif 000035
【図３３】
0005644701.tif 000036
【図３４】
0005644701.tif 000037
【図３５】
0005644701.tif 000038
【図３６】
0005644701.tif 000039
【図３７】
0005644701.tif 000040
【図３８】
0005644701.tif 000041
【図３９】
0005644701.tif 000042
【図４０】
0005644701.tif 000043
【図４１】
0005644701.tif 000044
【図４２】
0005644701.tif 000045
【図４３】
0005644701.tif 000046
【図４４】
0005644701.tif 000047
【図４５】
0005644701.tif 000048
【図４６】
0005644701.tif 000049
【図４７】
0005644701.tif 000050
【図４８】
0005644701.tif 000051
【図４９】
0005644701.tif 000052
【図５０】
0005644701.tif 000053
【図５１】
0005644701.tif 000054
【図５２】
0005644701.tif 000055
【図５３】
0005644701.tif 000056
【図５４】
0005644701.tif 000057
【図５５】
0005644701.tif 000058
【図５６】
0005644701.tif 000059
【図５７】
0005644701.tif 000060
【図５８】
0005644701.tif 000061
【図５９】
0005644701.tif 000062
【図６０】
0005644701.tif 000063
【図６１】
0005644701.tif 000064
【図６２】
0005644701.tif 000065
【図６３】
0005644701.tif 000066
【図６４】
0005644701.tif 000067
【図６５】
0005644701.tif 000068