(57)【要約】【課題】動き補償予測を用いる画像符号化方式において符号化情報を圧縮し、全体の符号量を削減する。【解決手段】参照インデックス導出部１１６は、符号化対象の予測ブロックの動き補償において参照される参照ピクチャを特定する参照インデックスを導出する。差分動きベクトル導出部１０３は、複数の予測動きベクトルの候補の中から選択される予測動きベクトルと符号化対象の予測ブロックの動きベクトルとの差分動きベクトルを導出する。符号化部１０９は、参照インデックスおよび差分動きベクトルを符号化し、インター予測モードが双予測である場合、符号化対象の予測ブロックのサイズに応じて、第１予測または第２予測のインター予測情報のいずれか一方について差分動きベクトルおよび参照インデックスの少なくとも一つの符号化を行わないモードに切り替わる。【選択図】図１
2013110575.tif 000002
【特許請求の範囲】
【請求項１】
動画像の各ピクチャを分割した予測ブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化装置であって、
符号化対象の予測ブロックの動き補償において参照される参照ピクチャを複数の参照画像の中から特定する参照インデックスを導出する参照インデックス導出部と、
複数の符号化済みのブロックの符号化情報を参照して複数の予測動きベクトルの候補を生成し、前記複数の予測動きベクトルの候補の中から選択される予測動きベクトルと前記符号化対象の予測ブロックの動きベクトルとの差分動きベクトルを導出する差分動きベクトル導出部と、
前記参照インデックスおよび前記差分動きベクトルを符号化する符号化部とを備え、
前記符号化部は、インター予測モードが双予測である場合、前記符号化対象の予測ブロックのサイズに応じて、前記動き補償に用いる第１予測または第２予測のインター予測情報のいずれか一方について前記差分動きベクトルおよび前記参照インデックスの少なくとも一つの符号化を行わないモードに切り替えることを特徴とする動画像符号化装置。
【請求項２】
前記符号化部は、さらに前記選択された予測動きベクトルを特定する予測動きベクトルインデックスを符号化すると共に、インター予測モードが双予測である場合、前記符号化対象の予測ブロックのサイズに応じて、前記動き補償に用いる第１予測または第２予測のインター予測情報のいずれか一方について前記差分動きベクトル、前記参照インデックス、および前記予測動きベクトルインデックスの少なくとも一つの符号化を行わないモードに切り替わることを特徴とする請求項１に記載の動画像符号化装置。
【請求項３】
前記差分動きベクトルを符号化しない場合、前記差分動きベクトル導出部は、その差分動きベクトルを（０,０）として導出することを特徴とする請求項１または２に記載の動画像符号化装置。
【請求項４】
前記参照インデックスを符号化しない場合、前記参照インデックス導出部は、その参照インデックスを前記符号化対象の予測ブロックの左または上に隣接する他の予測ブロックを参照して導出することを特徴とする請求項１から３のいずれかに記載の動画像符号化装置。
【請求項５】
前記参照インデックスを符号化しない場合、前記参照インデックス導出部は、第１予測および第２予測の内、符号化しない方の参照インデックスを符号化する方の参照インデックスに対応する参照ピクチャを指し示す値に設定することを特徴とする請求項１から３のいずれかに記載の動画像符号化装置。
【請求項６】
前記予測動きベクトルインデックスを符号化しない場合、前記差分動きベクトル導出部は、第１予測および第２予測の内、符号化しない方の予測動きベクトルインデックスを符号化する方の予測動きベクトルインデックスと同じ値に設定して処理することを特徴とする請求項１から５のいずれかに記載の動画像符号化装置。
【請求項７】
動画像の各ピクチャを分割した予測ブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化方法であって、
符号化対象の予測ブロックの動き補償において参照される参照ピクチャを複数の参照画像の中から特定する参照インデックスを導出する参照インデックス導出ステップと、
複数の符号化済みのブロックの符号化情報を参照して複数の予測動きベクトルの候補を生成し、前記複数の予測動きベクトルの候補の中から選択される予測動きベクトルと前記符号化対象の予測ブロックの動きベクトルとの差分動きベクトルを導出する差分動きベクトル導出ステップと、
前記参照インデックスおよび前記差分動きベクトルを符号化する符号化ステップとを備え、
前記符号化ステップは、インター予測モードが双予測である場合、前記符号化対象の予測ブロックのサイズに応じて、前記動き補償に用いる第１予測または第２予測のインター予測情報のいずれか一方について前記差分動きベクトルおよび前記参照インデックスの少なくとも一つの符号化を行わないモードに切り替わることを特徴とする動画像符号化方法。
【請求項８】
動画像の各ピクチャを分割した予測ブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化プログラムであって、
符号化対象の予測ブロックの動き補償において参照される参照ピクチャを複数の参照画像の中から特定する参照インデックスを導出する参照インデックス導出ステップと、
複数の符号化済みのブロックの符号化情報を参照して複数の予測動きベクトルの候補を生成し、前記複数の予測動きベクトルの候補の中から選択される予測動きベクトルと前記符号化対象の予測ブロックの動きベクトルとの差分動きベクトルを導出する差分動きベクトル導出ステップと、
前記参照インデックスおよび前記差分動きベクトルを符号化する符号化ステップとをコンピュータに実行させ、
前記符号化ステップは、インター予測モードが双予測である場合、前記符号化対象の予測ブロックのサイズに応じて、前記動き補償に用いる第１予測または第２予測のインター予測情報のいずれか一方について前記差分動きベクトルおよび前記参照インデックスの少なくとも一つの符号化を行わないモードに切り替わることを特徴とする動画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化技術に関し、特に動き補償予測を利用した動画像符号化技術に関する。
【背景技術】
【０００２】
動画像の圧縮符号化方式の代表的なものとして、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４の規格がある。ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４では、ピクチャを複数の矩形ブロックに分割し、すでに符号化・復号したピクチャを参照ピクチャとし、参照ピクチャからの動きを予測する動き補償が用いられている。この動き補償により動きを予測する手法をインター予測と呼ぶ。ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４でのインター予測では、複数のピクチャを参照ピクチャとして用いることができ、これらの複数の参照ピクチャから最も適した参照ピクチャをブロック毎に選択して動き補償を行う。そこで、それぞれの参照ピクチャには参照インデックスが割り当てられ、この参照インデックスにより、参照ピクチャを特定する。なお、Ｂピクチャでは、符号化・復号済みの参照ピクチャから最大で２枚を選択してインター予測に用いることができる。それらの２枚の参照ピクチャからの予測をＬ０予測（リスト０予測）、Ｌ１予測（リスト１予測）として区別している。
【０００３】
さらに、Ｌ０予測とＬ１予測の２つのインター予測を同時に用いる双予測も定義されている。双予測の場合は、双方向の予測を行い、Ｌ０予測、Ｌ１予測のそれぞれのインター予測された信号に重み付け係数を掛け算し、オフセット値を加算して重畳し、最終的なインター予測画像信号を生成する。重み付け予測に用いる重み付け係数及びオフセット値はピクチャ単位で各リストの参照ピクチャ毎に代表的な値が設定され、符号化される。インター予測に関する符号化情報には、ブロック毎に、Ｌ０予測とＬ１予測、双予測を区別する予測モード、ブロック毎の参照リスト毎に、参照ピクチャを特定する参照インデックス、ブロックの移動方向・移動量を表す動きベクトルがあり、これらの符号化情報を符号化・復号する。すなわち、Ｌ０予測、Ｌ１予測は１つの参照インデックスと１つの動きベクトルをインター予測情報として持ち、双予測は２つの参照インデックスと２つの動きベクトルをインター予測情報として持つ。
【０００４】
動き補償を行う動画像符号化方式では、各ブロックで生成される動きベクトルの符号量を削減する為に、動きベクトルに対して予測処理が行われる。ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４では、符号化対象の動きベクトルが周囲の隣接ブロックの動きベクトルと強い相関があることを利用して、周囲の隣接ブロックからの予測を行うことにより予測動きベクトルを算出し、符号化対象の動きベクトルと予測動きベクトルとの差分である差分動きベクトルを算出し、その差分動きベクトルを符号化することによって符号量を削減している。Ｌ０予測、Ｌ１予測は１つの参照インデックスと１つの差分動きベクトルをインター予測情報として符号化／復号し、双予測は２つの参照インデックスと２つの差分動きベクトルをインター予測情報として符号化／復号する。
【０００５】
具体的には、図４１（ａ）に示されるように、周囲の隣接ブロックＡ，Ｂ，Ｃの動きベクトルから中央値を算出して予測動きベクトルとし、動きベクトルとその予測動きベクトルとの差分をとることで動きベクトルの符号量を削減している。但し、図４１（ｂ）のように符号化対象ブロックと隣接ブロックの大きさや形状が異なる場合は、左隣に複数の隣接ブロックがある時はその中の一番上のブロックを、上に複数の隣接ブロックがある時はその中の一番左のブロックを予測ブロックとし、決定された予測ブロックの動きベクトルから予測を実施する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１４７１７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、従来の方法では、双予測は２つの参照インデックスと２つの差分動きベクトルをインター予測情報として符号化／復号するため、符号化効率が良くならない場合もあった。
【０００８】
このような状況下、本発明者らは、動き補償予測を使用する動画像符号化方式において、符号化情報をより一層圧縮し、全体の符号量を削減する必要性を認識するに至った。
【０００９】
本発明はこうした状況に鑑みてなされたものであり、その目的は、参照インデックス、または差分動きベクトルの符号量の削減を図って符号化効率を向上させる動画像符号化技術を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明のある態様の動画像符号化装置は、動画像の各ピクチャを分割した予測ブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化装置であって、符号化対象の予測ブロックの動き補償において参照される参照ピクチャを複数の参照画像の中から特定する参照インデックスを導出する参照インデックス導出部（１１６）と、複数の符号化済みのブロックの符号化情報を参照して複数の予測動きベクトルの候補を生成し、前記複数の予測動きベクトルの候補の中から選択される予測動きベクトルと前記符号化対象の予測ブロックの動きベクトルとの差分動きベクトルを導出する差分動きベクトル導出部（１０３）と、前記参照インデックスおよび前記差分動きベクトルを符号化する符号化部（１０９）とを備える。前記符号化部は、インター予測モードが双予測である場合、前記符号化対象の予測ブロックのサイズに応じて、前記動き補償に用いる第１予測または第２予測のインター予測情報のいずれか一方について前記差分動きベクトルおよび前記参照インデックスの少なくとも一つの符号化を行わないモードに切り替わる。
【００１１】
本発明の別の態様は、動画像符号化方法である。この方法は、動画像の各ピクチャを分割した予測ブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化方法であって、符号化対象の予測ブロックの動き補償において参照される参照ピクチャを複数の参照画像の中から特定する参照インデックスを導出する参照インデックス導出ステップと、複数の符号化済みのブロックの符号化情報を参照して複数の予測動きベクトルの候補を生成し、前記複数の予測動きベクトルの候補の中から選択される予測動きベクトルと前記符号化対象の予測ブロックの動きベクトルとの差分動きベクトルを導出する差分動きベクトル導出ステップと、前記参照インデックスおよび前記差分動きベクトルを符号化する符号化ステップとを備える。前記符号化ステップは、インター予測モードが双予測である場合、前記符号化対象の予測ブロックのサイズに応じて、前記動き補償に用いる第１予測または第２予測のインター予測情報のいずれか一方について前記差分動きベクトルおよび前記参照インデックスの少なくとも一つの符号化を行わないモードに切り替わる。
【００１２】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１３】
本発明によれば、複数の予測動きベクトルを算出し、それら複数の予測動きベクトルの中から最適な予測動きベクトルを選択し、差分動きベクトルの発生符号量を削減させて、符号化効率を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態に係る動きベクトルの予測方法を実行する動画像符号化装置の構成を示すブロック図である。
【図２】実施の形態に係る動きベクトルの予測方法を実行する動画像復号装置の構成を示すブロック図である。
【図３】ツリーブロック、符号化ブロックを説明する図である。
【図４】予測ブロックの分割モードを説明する図である。
【図５】符号化／復号対象の予測ブロックに隣接する予測ブロックを説明する図である。
【図６】符号化／復号対象の予測ブロックに隣接する予測ブロックを説明する図である。
【図７】符号化／復号対象の予測ブロックに隣接する予測ブロックを説明する図である。
【図８】符号化／復号対象の予測ブロックに隣接する予測ブロックを説明する図である。
【図９】符号化／復号対象の予測ブロックに隣接する予測ブロックを説明する図である。
【図１０】スライスヘッダーのシンタックス構造の一例を説明する図である。
【図１１】スライスヘッダーのシンタックス構造の一例を説明する図である。
【図１２】符号化／復号対象の予測ブロックのサイズに応じて切り替える場合の双予測でＬ１のインター予測情報を符号化／復号するかどうかを示すフラグの設定処理手順を示すフローチャートである。
【図１３】予測ブロック単位のインター予測情報のエントロピー符号化処理手順を説明するフローチャートである。
【図１４】予測ブロック単位のインター予測情報のエントロピー復号処理手順を説明するフローチャートである。
【図１５】双予測でのＬＸの参照インデックスの導出処理手順を説明するフローチャートである。
【図１６】双予測でのＬＸの参照インデックスの導出処理手順を説明するフローチャートである。
【図１７】双予測でのＬＸの参照インデックスの導出処理手順を説明するフローチャートである。
【図１８】双予測でのＬＸの参照インデックスの導出処理手順を説明するフローチャートである。
【図１９】双予測でのＬＸの参照インデックスの導出処理手順を説明するフローチャートである。
【図２０】双予測でのＬＸの参照インデックスの導出処理手順を説明するフローチャートである。
【図２１】図１の差分動きベクトル導出部の詳細な構成を示すブロック図である。
【図２２】図２の動きベクトル導出部の詳細な構成を示すブロック図である。
【図２３】図１の差分動きベクトル導出部の差分動きベクトル算出処理手順を示すフローチャートである。
【図２４】図２の動きベクトル導出部の動きベクトル算出処理手順を示すフローチャートである。
【図２５】予測動きベクトルの候補の導出及び予測動きベクトルリスト構築処理手順を示すフローチャートである。
【図２６】予測動きベクトルの候補導出処理手順を示すフローチャートである。
【図２７】予測動きベクトルの候補導出処理手順を示すフローチャートである。
【図２８】予測動きベクトルの候補導出処理手順を示すフローチャートである。
【図２９】動きベクトルのスケーリング演算処理手順を示すフローチャートである。
【図３０】整数演算による動きベクトルのスケーリング演算処理手順を示すフローチャートである。
【図３１】予測動きベクトルの候補導出処理手順を示すフローチャートである。
【図３２】異なる時間のピクチャの導出処理手順を示すフローチャートである。
【図３３】異なる時間のピクチャの予測ブロックの候補導出処理手順を示すフローチャートである。
【図３４】予測動きベクトルの候補導出処理手順を示すフローチャートである。
【図３５】予測動きベクトルの候補導出処理手順を示すフローチャートである。
【図３６】動きベクトルのスケーリング演算処理手順を示すフローチャートである。
【図３７】整数演算による動きベクトルのスケーリング処理手順を示すフローチャートである。
【図３８】予測動きベクトル候補リストへの予測動きベクトルの候補の登録処理手順を示すフローチャートである。
【図３９】予測動きベクトル候補リストから冗長な予測動きベクトルの候補の削除処理手順を示すフローチャートである。
【図４０】予測動きベクトルの候補数の制限処理手順を示すフローチャートである。
【図４１】従来の予測動きベクトルの算出方法を説明する図である。
【発明を実施するための形態】
【００１５】
本実施の形態では、動画像の符号化に関し、特にピクチャを任意のサイズ、形状の矩形ブロックに分割し、ピクチャ間でブロック単位に動き補償を行う動画像符号化における符号化効率を向上させる為に、符号化済みの周囲のブロックの動きベクトルから複数の予測動きベクトルを算出し、符号化対象のブロックの動きベクトルと選択された予測動きベクトルとの差分ベクトルを算出して符号化することによって符号量を削減する。あるいは、符号化済みの周囲のブロックの符号化情報を利用することにより、符号化対象ブロックの符号化情報を推定することによって符号量を削減する。また、動画像の復号の場合は、復号済みの周囲のブロックの動きベクトルから複数の予測動きベクトルを算出し、符号化ストリームから復号された差分ベクトルと選択された予測動きベクトルとから復号対象のブロックの動きベクトルを算出して復号する。あるいは、復号済みの周囲のブロックの符号化情報を利用することにより、復号対象ブロックの符号化情報を推定する。
【００１６】
まず、本実施の形態において使用する技術、及び技術用語を定義する。
【００１７】
（ツリーブロック、符号化ブロックについて）
実施の形態では、図３に示されるように、ピクチャ内を任意の同一サイズの正方の矩形の単位にて均等分割する。この単位をツリーブロックと定義し、ピクチャ内での符号化／復号対象ブロック（符号化処理においては符号化対象ブロック、復号処理においては復号対象ブロックのことである。以下、断りのない限り、この意味で用いる。）を特定するためのアドレス管理の基本単位とする。モノクロを除きツリーブロックは１つの輝度信号と２つの色差信号で構成される。ツリーブロックのサイズはピクチャサイズやピクチャ内のテクスチャに応じて、２のべき乗のサイズで自由に設定することができる。ツリーブロックはピクチャ内のテクスチャに応じて、符号化処理を最適にすべく、必要に応じてツリーブロック内の輝度信号、及び色差信号を階層的に４分割（縦横に２分割ずつ）して、ブロックサイズの小さいブロックにすることができる。このブロックをそれぞれ符号化ブロックと定義し、符号化及び復号を行う際の処理の基本単位とする。モノクロを除き符号化ブロックも１つの輝度信号と２つの色差信号で構成される。符号化ブロックの最大サイズはツリーブロックのサイズと同一である。符号化ブロックの最小のサイズとなる符号化ブロックを最小符号化ブロックと呼び、２のべき乗のサイズで自由に設定することができる。
【００１８】
図３においては、符号化ブロックＡは、ツリーブロックを分割せず、１つの符号化ブロックとしたものである。符号化ブロックＢは、ツリーブロックを４分割してできた符号化ブロックである。符号化ブロックＣは、ツリーブロックを４分割してできたブロックをさらに４分割してできた符号化ブロックである。符号化ブロックＤは、ツリーブロックを４分割してできたブロックをさらに階層的に２度４分割してできた符号化ブロックであり、最小サイズの符号化ブロックである。
【００１９】
（予測モードについて）
符号化ブロック単位で、符号化／復号済み（符号化処理においては符号化した信号を復号したピクチャ、予測ブロック、画像信号等に用い、復号処理においては復号したピクチャ、予測ブロック、画像信号等に用いる。以下、断りのない限り、この意味で用いる。）の周囲の画像信号から予測を行うイントラ予測（MODE_INTRA）、及び符号化／復号済みのピクチャの画像信号から予測を行うインター予測（MODE_INTER）を切り替える。このイントラ予測（MODE_INTRA）とインター予測（MODE_INTER）を識別するモードを予測モード（PredMode）と定義する。予測モード（PredMode）はイントラ予測（MODE_INTRA）、またはインター予測（MODE_INTER）を値として持ち、選択して符号化できる。
【００２０】
（分割モード、予測ブロック、予測ユニットについて）
ピクチャ内をブロックに分割してイントラ予測（MODE_INTRA）及びインター予測（MODE_INTER）を行う場合、イントラ予測及びインター予測の方法を切り替える単位をより小さくするために、必要に応じて符号化ブロックを分割して予測を行う。この符号化ブロックの輝度信号と色差信号の分割方法を識別するモードを分割モード（PartMode）と定義する。さらに、この分割されたブロックを予測ブロックと定義する。図４に示すように、符号化ブロックの輝度信号の分割方法に応じて４種類の分割モード（PartMode）を定義する。符号化ブロックの輝度信号を分割せず１つの予測ブロックとみなしたもの（図４（ａ））の分割モード（PartMode）を２Ｎ×２Ｎ分割（PART_2Nx2N）、符号化ブロックの輝度信号を水平方向に２分割し、２つの予測ブロックとしたもの（図４（ｂ））の分割モード（PartMode）を２Ｎ×Ｎ分割（PART_2NxN）、符号化ブロックの輝度信号を垂直方向に分割し、符号化ブロックを２つの予測ブロックとしたもの（図４（ｃ））の分割モード（PartMode）をＮ×２Ｎ分割（PART_Nx2N）、符号化ブロックの輝度信号を水平と垂直の均等分割により４つの予測ブロックとしたもの（図４（ｄ））の分割モード（PartMode）をＮ×Ｎ分割（PART_NxN）とそれぞれ定義する。なお、イントラ予測（MODE_INTRA）のＮ×Ｎ分割（PART_NxN）を除き、各分割モード（PartMode）毎に輝度信号の縦横の分割比率と同様に色差信号も分割する。
【００２１】
符号化ブロック内部において、各予測ブロックを特定する為に、０から開始する番号を、符号化順序で、符号化ブロック内部に存在する予測ブロックに対して割り当てる。この番号を分割インデックスPartIdxと定義する。図４の符号化ブロックの各予測ブロックの中に記述された数字は、その予測ブロックの分割インデックスPartIdxを表す。図４（ｂ）に示す２Ｎ×Ｎ分割（PART_2NxN）では上の予測ブロックの分割インデックスPartIdxを０とし、下の予測ブロックの分割インデックスPartIdxを１とする。図４（ｃ）に示すＮ×２Ｎ分割（PART_Nx2N）では左の予測ブロックの分割インデックスPartIdxを０とし、右の予測ブロックの分割インデックスPartIdxを１とする。図４（ｄ）に示すＮ×Ｎ分割（PART_NxN）では、左上の予測ブロックの分割インデックスPartIdxを０とし、右上の予測ブロックの分割インデックスPartIdxを１とし、左下の予測ブロックの分割インデックスPartIdxを２とし、右下の予測ブロックの分割インデックスPartIdxを３とする。
【００２２】
予測モード（PredMode）がインター予測（MODE_INTER）では、最小の符号化ブロックである符号化ブロックＤ以外では、分割モード（PartMode）は２Ｎ×２Ｎ分割（PART_2Nx2N）、２Ｎ×Ｎ分割（PART_2NxN）、及びＮ×２Ｎ分割（PART_Nx2N）を定義し、最小の符号化ブロックである符号化ブロックＤのみ、分割モード（PartMode）は２Ｎ×２Ｎ分割（PART_2Nx2N）、２Ｎ×Ｎ分割（PART_2NxN）、及びＮ×２Ｎ分割（PART_Nx2N）に加えてＮ×Ｎ分割（PART_NxN）を定義する。なお、最小の符号化ブロック以外にＮ×Ｎ分割（PART_NxN）を定義しない理由は最小の符号化ブロック以外では、符号化ブロックを４分割して小さな符号化ブロックを表現できるからである。
【００２３】
（ツリーブロック、符号化ブロック、予測ブロック、変換ブロックの位置）
本実施の形態のツリーブロック、符号化ブロック、予測ブロック、変換ブロックを始めとする各ブロックの位置は、輝度信号の画面の一番左上の輝度信号の画素の位置を原点（０，０）とし、それぞれのブロックの領域に含まれる一番左上の輝度信号の画素の位置を（ｘ，ｙ）の二次元座標で表す。座標軸の向きは水平方向に右の方向、垂直方向に下の方向をそれぞれ正の向きとし、単位は輝度信号の１画素単位である。輝度信号と色差信号で画像サイズ（画素数）が同じである色差フォーマットが４：４：４の場合ではもちろんのこと、輝度信号と色差信号で画像サイズ（画素数）が異なる色差フォーマットが４：２：０、４：２：２の場合でも色差信号の各ブロックの位置をそのブロックの領域に含まれる輝度信号の画素の座標で表し、単位は輝度信号の１画素である。この様にすることで、色差信号の各ブロックの位置が特定できるのはもちろんのこと、座標の値を比較するだけで、輝度信号のブロックと色差信号のブロックの位置の関係も明確となる。
【００２４】
（インター予測モード、参照リスト、参照インデックスについて）
本発明の実施の形態においては、符号化／復号済みのピクチャの画像信号から予測を行うインター予測では、複数の復号済みのピクチャを参照ピクチャとして用いることができる。複数の参照ピクチャからインター予測に用いる参照ピクチャを特定するため、予測ブロック毎に参照インデックスで指定する。Ｂスライスでは予測ブロック毎に任意の２枚の参照ピクチャを選択してインター予測（動き補償予測）することができ、インター予測モードとしてＬ０予測（Pred_L0）、Ｌ１予測（Pred_L1）、双予測（Pred_BI）がある。参照ピクチャはリスト構造のＬ０（参照リスト０）とＬ１（参照リスト１）で管理され、Ｌ０またはＬ１の参照インデックスを指定することにより参照ピクチャを特定することができる。Ｌ０予測（Pred_L0）はＬ０で管理されている参照ピクチャを参照して予測画像信号を生成するインター予測であり、Ｌ１予測（Pred_L1）はＬ１で管理されている参照ピクチャを参照して予測画像信号を生成するインター予測であり、双予測（Pred_BI）はＬ０予測とＬ１予測が共に行われ、Ｌ０とＬ１のそれぞれで管理されている１つずつの参照ピクチャを参照して得られるＬ０予測画像信号とＬ１予測画像信号を平均または重み付け加算して予測画像信号を生成するインター予測である。Ｐスライスのインター予測ではＬ０予測（Pred_L0）のみが使用でき、Ｂスライスのインター予測ではＬ０予測（Pred_L0）、Ｌ１予測（Pred_L1）、および双予測（Pred_BI）が使用できる。Ｌ０予測、Ｌ１予測は１つの参照インデックスと１つの動きベクトルをインター予測情報として持ち、双予測は２つの参照インデックスと２つの動きベクトルをインター予測情報として持つ。
以降の処理において出力に添え字ＬＸ（Ｘは０または１）が付いている定数、変数に関しては、Ｌ０、Ｌ１ごとに処理が行われることを前提とする。
【００２５】
（予測動きベクトル、差分動きベクトル、予測動きベクトルインデックスについて）
本発明の実施の形態においては、各予測ブロックで生成される動きベクトルの符号量を削減する為に、動きベクトルに対して予測処理が行われる。複数の予測動きベクトルの候補を導出し、それら予測動きベクトルの候補の中から１つの予測動きベクトルを選択し、符号化／復号対象の動きベクトルと選択された予測動きベクトルとの差分である差分動きベクトルを算出する。複数の予測動きベクトルからインター予測に用いる予測動きベクトルを特定するため、予測ブロック毎に予測動きベクトルインデックスで指定する。
【００２６】
（マージモード、マージ候補）
マージモードとは、符号化／復号対象の予測ブロックの予測モード、参照インデックス、動きベクトル等のインター予測情報を符号化／復号するのではなく、符号化／復号対象の予測ブロックと同一ピクチャ内でその符号化／復号対象の予測ブロックに隣接する予測ブロック、あるいは符号化／復号対象の予測ブロックと時間的に異なる符号化／復号済みのピクチャの符号化／復号対象の予測ブロックと同一位置あるいはその付近（近傍の位置）に存在する予測ブロックのインター予測情報から符号化／復号対象の予測ブロックのインター予測情報を導出することによりインター予測を行うモードである。符号化／復号対象の予測ブロックと同一ピクチャ内でその符号化／復号対象の予測ブロックに隣接する予測ブロック及びその予測ブロックのインター予測情報を空間マージ候補、符号化／復号対象の予測ブロックと時間的に異なる符号化／復号済みのピクチャの符号化／復号対象の予測ブロックと同一位置あるいはその付近（近傍の位置）に存在する予測ブロック及びその予測ブロックのインター予測情報から導出されるインター予測情報を時間マージ候補とする。それぞれのマージ候補はマージ候補リストに登録され、マージインデックスによりインター予測で用いるマージ候補を特定する。導出されるインター予測情報はインター予測モード、各参照リストの参照インデックス及び動きベクトルである。
【００２７】
（隣接する予測ブロックについて）
図５、図６、図７及び図８は符号化／復号対象の予測ブロックと同一ピクチャ内でその符号化／復号対象の予測ブロックに隣接する予測ブロックを説明する図である。図９は符号化／復号対象の予測ブロックと時間的に異なる符号化／復号済みのピクチャにおいて、符号化／復号対象の予測ブロックと同一位置あるいはその付近に存在する既に符号化／復号済みの予測ブロックを説明する図である。図５、図６、図７、図８及び図９を用いて符号化／復号対象の予測ブロックの空間方向に隣接する予測ブロック、及び異なる時間の同一位置の予測ブロックについて説明する。
【００２８】
図５に示すように、符号化／復号対象の予測ブロックと同一ピクチャ内でその符号化／復号対象の予測ブロックの左側の辺に隣接する予測ブロックＡ１、上側の辺に隣接する予測ブロックＢ１、右上の頂点に隣接する予測ブロックＢ０、左下の頂点に隣接する予測ブロックＡ０、および左上の頂点に隣接する予測ブロックＢ２を空間方向に隣接する予測ブロックと定義する。
【００２９】
なお、図６に示すように、符号化／復号対象の予測ブロックの左側の辺に隣接する予測ブロックのサイズが符号化／復号対象の予測ブロックより小さく、複数存在する場合には、本実施の形態においては左側の辺に隣接する予測ブロックの中で最も下の予測ブロックＡ１０だけを左側の辺に隣接する予測ブロックＡ１とする。
【００３０】
同様に、符号化／復号対象の予測ブロックの上側の辺に隣接する予測ブロックのサイズが符号化／復号対象の予測ブロックより小さく、複数存在する場合には、本実施の形態においては左側の辺に隣接する予測ブロックの中で最も右の予測ブロックＢ１０だけを上側の辺に隣接する予測ブロックＢ１とする。
【００３１】
なお、図７に示すように、符号化／復号対象の予測ブロックの左側に隣接する予測ブロックＡのサイズが符号化／復号対象の予測ブロックより大きい場合にも、前記条件に従い、左側に隣接する予測ブロックＡがその符号化／復号対象の予測ブロックの左側の辺に隣接していれば予測ブロックＡ１とし、符号化／復号対象の予測ブロックの左下の頂点に隣接していれば予測ブロックＡ１とし、符号化／復号対象の予測ブロックの左上の頂点に隣接していれば予測ブロックＢ２とする。図６の例では、予測ブロックＡ０、予測ブロックＡ１及び予測ブロックＢ２は同一の予測ブロックとなる。
【００３２】
なお、図８に示すように、符号化／復号対象の予測ブロックの上側に隣接する予測ブロックＧのサイズが符号化／復号対象の予測ブロックより大きい場合にも、前記条件に従い、上側に隣接する予測ブロックＧがその符号化／復号対象の予測ブロックの上側の辺に隣接していれば予測ブロックＢとし、符号化／復号対象の予測ブロックの右上の頂点に隣接していれば予測ブロックＣとし、符号化／復号対象の予測ブロックの左上の頂点に隣接していれば予測ブロックＥとする。図８の例では、予測ブロックＢ、予測ブロックＣ及び予測ブロックＥは同一の予測ブロックとなる。
【００３３】
図９に示すように、符号化／復号対象の予測ブロックと時間的に異なる符号化／復号済みのピクチャにおいて、符号化／復号対象の予測ブロックと同一位置あるいはその付近に存在する既に符号化／復号済みの予測ブロックＴ０およびＴ１を異なる時間の同一位置の予測ブロックと定義する。
【００３４】
（予測ブロックグループについて）
複数の予測ブロックで構成されるグループを予測ブロックグループと定義する。図５に示す符号化／復号対象の予測ブロックと同一ピクチャ内でその符号化／復号対象の予測ブロックの左側の辺に隣接する予測ブロックＡ１、および符号化／復号対象の予測ブロックの左下の頂点に隣接する予測ブロックＡ０で構成される第１の予測ブロックグループを左側に隣接する予測ブロックグループと定義する。
【００３５】
図５に示す符号化／復号対象の予測ブロックと同一ピクチャ内でその符号化／復号対象の予測ブロックの上側の辺に隣接する予測ブロックＢ１、符号化／復号対象の予測ブロックの右上の頂点に隣接する予測ブロックＢ０、および符号化／復号対象の予測ブロックの左上の頂点に隣接する予測ブロックＢ２で構成される第２の予測ブロックグループを上側に隣接する予測ブロックグループと定義する。
【００３６】
図９に示す符号化／復号対象の予測ブロックと時間的に異なる符号化／復号済みのピクチャにおいて、符号化／復号対象の予測ブロックと同一位置あるいはその近傍の位置に存在する既に符号化／復号済みの予測ブロックグループＴ０およびＴ１で構成される第３の予測ブロックグループを異なる時間の予測ブロックグループと定義する。
【００３７】
（ＰＯＣについて）
ＰＯＣは符号化されるピクチャに関連付けられる変数とし、ピクチャの出力／表示順序で１ずつ増加する値が設定される。ＰＯＣの値によって、同じピクチャであるかを判別したり、出力／表示順序でのピクチャ間の前後関係を判別したり、ピクチャ間の距離を導出したりすることができる。例えば、２つのピクチャのＰＯＣが同じ値を持つ場合、同一のピクチャであると判断できる。２つのピクチャのＰＯＣが違う値を持つ場合、ＰＯＣの値が小さいピクチャのほうが、時間的に先に出力／表示されるピクチャであると判断でき、２つのピクチャのＰＯＣの差が時間軸方向でのピクチャ間距離を示す。
【００３８】
本発明の実施の形態における動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法、動画像復号プログラムにおいては、スライス単位、または予測ブロックのサイズに応じて、インター予測モードが双予測（Pred_BI）の場合に、Ｌ０またはＬ１のいずれか一方のインター予測情報の符号化／復号を行うかどうかを切り替える。切り替える対象となるインター予測情報は差分動きベクトル、参照インデックス、予測動きベクトルインデックスの一部、またはすべてである。
【００３９】
インター予測モードが双予測（Pred_BI）の場合、Ｌ０およびＬ１の２つの動きベクトルを利用してインター予測するので、１つの動きベクトルのみを利用するＬ０予測やＬ１予測に比べて、動きベクトルを符号化するのに多くの符号量を必要とする。動きベクトルを符号化する際には符号量を削減するために差分動きベクトルを導出し、その導出された差分動きベクトルが符号化される。双予測の場合において、Ｌ０またはＬ１の動きベクトルに対応する差分動きベクトルの一方の符号化を行わず、差分動きベクトルの値を（０，０）とすることで、インター予測情報の符号量を削減する。ただし、双予測においてＬ０またはＬ１のいずれか一方の差分動きベクトルの値を（０，０）とすることで、予測動きベクトルの値がそのまま動きベクトルとなり、任意の動きベクトルを利用することができないので残差信号の符号量が増加することがある。したがって、本実施の形態においては、双予測においてＬ０またはＬ１の動きベクトルに対応する動きベクトルの一方を予測動きベクトルと同じ値に設定しても残差信号の符号量が増加しにくく、全体としての符号量が減少しやすい状況ではＬ０またはＬ１の動きベクトルに対応する差分動きベクトルの一方の符号化を行わないこととし、双予測においてＬ０またはＬ１の動きベクトルに対応する動きベクトルの一方を予測動きベクトルと同じ値に設定すると残差信号の符号量が増加しやすく、全体としての符号量が増加しやすい状況ではＬ０およびＬ１の動きベクトルに対応する差分動きベクトルをそれぞれ符号化する。
【００４０】
本実施の形態においては、第１の方法として、予測ブロックのサイズに応じて、インター予測モードが双予測（Pred_BI）の場合に、Ｌ０またはＬ１のいずれか一方の差分動きベクトルの符号化／復号を行うかどうかを切り替える。予測ブロックのサイズが小さい場合はＬ０またはＬ１のいずれか一方の差分動きベクトルの符号化／復号を行わず、予測ブロックのサイズが大きい場合はＬ０およびＬ１の双方の差分動きベクトルの符号化／復号を行う。予測ブロックのサイズが小さい場合は、画素数が少ないため、予測ブロックあたりの残差信号の符号量も小さい。したがって、双予測において差分動きベクトルの一方の符号化を行わなくても残差信号の符号量が増加しにくく、全体としての符号量が減少する。一方、予測ブロックのサイズが大きい場合は、画素数が多いため、予測ブロックあたりの残差信号の符号量も大きい。したがって、双予測において差分動きベクトルの一方の符号化を行わないと残差信号の符号量が増加しやすく、全体としての符号量が増加する。
【００４１】
また、本実施の形態においては、第２の方法として、スライス毎に、インター予測モードが双予測（Pred_BI）の場合に、Ｌ０またはＬ１のいずれか一方の差分動きベクトルの符号化／復号を行うかどうかを切り替える。
【００４２】
例えば、Ｌ０とＬ１で同一の参照画像を含むスライスや、Ｌ０とＬ１を共に時間方向で符号化／復号対象ピクチャよりも前の参照ピクチャを参照する前方向予測として利用し、時間方向で符号化／復号対象ピクチャよりも後ろの参照ピクチャを参照する後方向予測を含まないスライスでは、Ｌ０またはＬ１のいずれか一方を動きベクトルにより検出される動きベクトルの代わりに予測動きベクトルを用いても予測精度が低下しにくく残差成分の符号量の増加量が小さいため、差分動きベクトルの符号量を削減するために、Ｌ０またはＬ１のいずれか一方の差分動きベクトルの符号化／復号を行わない。
【００４３】
Ｌ０とＬ１で同一の参照画像を含まないスライスや、Ｌ０を前方向予測、Ｌ１を後方向予測として用いるスライスでは、Ｌ０またはＬ１のいずれか一方を動きベクトルにより検出される動きベクトルの代わりに予測動きベクトルを用いると予測精度が低下して残差成分の符号量の増加量が大きいため、予測精度を高めて残差成分の符号量を削減するために、Ｌ０およびＬ１の双方の差分動きベクトルの符号化／復号を行う。
【００４４】
また、差分動きベクトルと同様の理由により、スライス単位、または予測ブロックのサイズに応じて、双予測においてＬ０またはＬ１のいずれか一方の参照インデックスも符号化／復号を行うかどうかを切り替えることができる。インター予測情報の符号量が大きくなる双予測の場合において、Ｌ０およびＬ１の動きベクトルに対応する参照インデックスの一方の符号化を行わず、参照インデックスの値を導出するかどうかをデフォルト値に設定することで、インター予測情報の符号量を削減する。ただし、双予測においてＬ０またはＬ１のいずれか一方の参照インデックスの値を導出するかどうかをデフォルト値に設定することで、任意の参照ピクチャを利用することができないので残差信号の符号量が増加することがある。したがって、本実施の形態においては、双予測においてＬ０またはＬ１のいずれか一方の参照インデックスの値を導出するかデフォルト値に設定しても残差信号の符号量が増加しにくく、全体としての符号量が減少しやすい状況ではＬ０またはＬ１の参照インデックスの一方の符号化を行わないこととし、双予測においてＬ０またはＬ１のいずれか一方の参照インデックスの値を導出するかデフォルト値に設定すると残差信号の符号量が増加しやすく、全体としての符号量が増加しやすい状況ではＬ０およびＬ１の参照インデックスを共に符号化する。
【００４５】
また、差分動きベクトル、参照インデックスと同様の理由により、スライス単位、または予測ブロックのサイズに応じて、双予測においてＬ０またはＬ１のいずれか一方の差分予測ベクトルインデックスも符号化／復号を行うかどうかを切り替えることができる。インター予測情報の符号量が大きくなる双予測の場合において、Ｌ０またはＬ１の動きベクトルに対応する予測ベクトルインデックスの一方の符号化を行わず、予測ベクトルインデックスの値を他方の予測ベクトルインデックスと同じ値に設定することで、インター予測情報の符号量を削減する。ただし、双予測においてＬ０またはＬ１のいずれか一方の予測ベクトルインデックスの値を他方の予測ベクトルインデックスと同じ値とすることで、任意の予測ベクトルインデックスを利用することができないので残差信号の符号量が増加することがある。したがって、本実施の形態においては、双予測においてＬ０またはＬ１のいずれか一方の予測ベクトルインデックスの値を他方の予測ベクトルインデックスと同じ値に設定しても残差信号の符号量が増加しにくく、全体としての符号量が減少しやすい状況ではＬ０またはＬ１の予測ベクトルインデックスの一方の符号化を行わないこととし、双予測においてＬ０またはＬ１のいずれか一方の予測ベクトルインデックスの値を他方の予測ベクトルインデックスと同じ値に設定すると残差信号の符号量が増加しやすく、全体としての符号量が増加しやすい状況ではＬ０およびＬ１の予測ベクトルインデックスを共に符号化する。
【００４６】
以下の説明においては、スライス単位、または予測ブロックのサイズに応じて、インター予測モードが双予測（Pred_BI）の場合における、Ｌ０またはＬ１のいずれか一方のインター予測の符号化／復号を行うかどうかの切り替えに際しては、インター予測情報である差分動きベクトル、参照インデックス、予測動きベクトルインデックスのすべてを切り替えるものとして説明するが、すべてを切り替える場合に限定されず、差分動きベクトル、参照インデックス、予測動きベクトルインデックスの一部、すなわちいずれか１つまたは２つだけを切り替えることもできる。例えば、Ｌ０またはＬ１のいずれか一方の予測動きベクトルだけを符号化／復号を行うかどうかを切り替えて、Ｌ０およびＬ１の両方の参照インデックス、予測動きベクトルインデックスを符号化／復号してもよいし、Ｌ０またはＬ１のいずれか一方の予測動きベクトルおよび参照インデックスを符号化／復号を行うかどうかを切り替えて、Ｌ０およびＬ１の両方の予測動きベクトルインデックスを符号化／復号してもよい。
【００４７】
また、以下の説明においては、スライス単位、または予測ブロックのサイズに応じて、インター予測モードが双予測（Pred_BI）の場合における、Ｌ１のインター予測の符号化／復号を行うかどうかを切り替えるものとして説明するが、Ｌ１に限定されず、Ｌ０のインター予測の符号化／復号を行うかどうかを切り替えることもできる。
【００４８】
以下、図面と共に本発明の実施の形態を説明する。図１は本発明の実施の形態に係る動画像符号化装置１００の構成を示すブロック図である。実施の形態の動画像符号化装置は、画像メモリ１０１、参照インデックス導出部１１６、動きベクトル検出部１０２、差分動きベクトル導出部１０３、インター予測情報推定部１０４、動き補償予測部１０５、予測方法決定部１０６、残差信号生成部１０７、直交変換・量子化部１０８、第１の符号化ビット列生成部１０９、第２の符号化ビット列生成部１１０、多重化部１１１、逆量子化・逆直交変換部１１２、復号画像信号重畳部１１３、符号化情報格納メモリ１１４、および復号画像メモリ１１５を備える。
【００４９】
本実施の形態においては、インター予測モードが双予測において、スライス毎、または符号化対象の予測ブロックのサイズに応じて、Ｌ１予測のインター予測情報を符号化するかどうかを切り替える。切り替える対象となるインター予測情報は参照インデックス、予測動きベクトルインデックス、差分動きベクトルの一部、またはすべてである。そこで、実施の形態の動画像符号化装置１００では、双予測においてＬ１のインター予測情報が符号化されるかどうかを示すフラグinterInfoCodingL1Flagが０または１に設定される。フラグinterInfoCodingL1Flagが１は双予測においてＬ１のインター予測情報が符号化されることを示し、フラグinterInfoCodingL1Flagが０は双予測においてＬ１のインター予測情報が符号化されないことを示す。双予測においてＬ１のインター予測情報が符号化されるかどうかを示すフラグinterInfoCodingL1Flagは参照インデックス導出部１１６、動きベクトル検出部１０２、差分動きベクトル導出部１０３、動き補償予測部１０５、予測方法決定部１０６、第１の符号化ビット列生成部１０９で参照される。
【００５０】
画像メモリ１０１は、撮影／表示時間順に供給された符号化対象のピクチャの画像信号を一時格納する。画像メモリ１０１は、格納された符号化対象のピクチャの画像信号を、所定の画素ブロック単位で、動きベクトル検出部１０２、予測方法決定部１０６、および残差信号生成部１０７に供給する。その際、撮影／表示時間順に格納されたピクチャの画像信号は、符号化順序に並べ替えられて、画素ブロック単位で、画像メモリ１０１から出力される。
【００５１】
本実施の形態においては、インター予測モードが双予測において、スライス毎、または符号化対象の予測ブロックのサイズに応じて、Ｌ１予測のインター予測情報を符号化するかどうかを切り替える。切り替える対象となるインター予測情報として双予測でのＬ１の参照インデックスが含まれる場合で、双予測でのＬ１の参照インデックスを符号化しない場合、参照インデックス導出部１１６は、双予測でのＬ１の参照インデックスを導出し、動きベクトル検出部１０２、予測方法決定部１０６に供給する。符号化情報格納メモリに格納されている隣接する予測ブロックのＬ１の参照インデックスを含む符号化情報を利用して、符号化対象の予測ブロックのＬ１の参照インデックスを導出してもよいし、Ｌ０の参照インデックスに対応するＬ０の参照ピクチャがＬ１にも含まれている場合にＬ１でも同じ参照ピクチャを用いることとし、その参照ピクチャに対応するＬ１の参照インデックスを導出してもよい。
【００５２】
動きベクトル検出部１０２は、画像メモリ１０１から供給される画像信号と復号画像メモリ１１５から供給される参照ピクチャ間でブロックマッチング等により各予測ブロックサイズ、および各インター予測モードでの、Ｌ０及びＬ１の各参照インデックス毎のそれぞれの動きベクトルを各予測ブロック単位で検出し、検出された動きベクトルを動き補償予測部１０５、差分動きベクトル導出部１０３、および予測方法決定部１０６に供給する。
【００５３】
インター予測が双予測においては、Ｌ０予測及びＬ１予測のために検出したそれぞれの動きベクトルを組み合わせて双予測の動きベクトルとしてもよいし、双予測のために別途動きベクトルを検出してもよい。
【００５４】
なお、本実施の形態においては、インター予測モードが双予測において、スライス毎、または符号化対象の予測ブロックのサイズに応じて、Ｌ１のインター予測情報を符号化するかどうかを切り替える。切り替える対象となるインター予測情報として双予測でのＬ１の差分動きベクトルが含まれる場合で、Ｌ１の差分動きベクトルを符号化しない場合、後述する方法によりＬ１の予測動きベクトルを導出し、その予測動きベクトルを双予測でのＬ１の動きベクトルとする。
【００５５】
さらに、切り替える対象となるインター予測情報として双予測でのＬ１の参照インデックスが含まれる場合で、Ｌ１の参照インデックスを符号化しない場合、Ｌ１の参照インデックスの値を導出するかデフォルト値とする。
【００５６】
差分動きベクトル導出部１０３は、符号化情報格納メモリ１１４に記憶されている既に符号化された画像信号の符号化情報を用いて、複数の予測動きベクトルの候補を算出して後述する予測動きベクトルリストに登録し、予測動きベクトルリストに登録された複数の予測動きベクトルの候補の中から最適な予測動きベクトルを選択し、動きベクトル検出部１０２が検出した動きベクトルと予測動きベクトルから差分動きベクトルを算出し、算出された差分動きベクトルを予測方法決定部１０６に供給する。なお、本実施の形態においては、インター予測モードが双予測において、スライス毎、または符号化対象の予測ブロックのサイズに応じて、Ｌ１のインター予測情報を符号化するかどうかを切り替える。切り替える対象となるインター予測情報として双予測でのＬ１の差分動きベクトルが含まれる場合で、双予測でのＬ１の差分動きベクトルを符号化しない場合、差分動きベクトルを（０，０）とする。さらに、予測動きベクトルリストに登録された予測動きベクトルの候補から選択された予測動きベクトルを特定する予測動きベクトルインデックスを予測方法決定部１０６に供給する。差分動きベクトル導出部１０３の詳細な構成と動作は後述する。
【００５７】
インター予測情報推定部１０４は、マージモードのインター予測情報を推定する。マージモードとは、当該予測ブロックの予測モード、参照インデックス（参照リストに登録されている複数の参照ピクチャから動き補償予測に利用する参照ピクチャを特定するための情報）、動きベクトル等のインター予測情報を符号化するのではなく、符号化済みの隣接するインター予測された予測ブロック、あるいは異なるピクチャのインター予測された予測ブロックのインター予測情報を利用するモードである。符号化情報格納メモリ１１４に記憶されている既に符号化された予測ブロックの符号化情報を用いて、複数のマージの候補（インター予測情報の候補）を算出してマージ候補リストに登録し、マージ候補リストに登録された複数のマージ候補の中から最適なマージ候補を選択し、選択されたマージ候補の予測モード、参照インデックス、動きベクトル等のインター予測情報を動き補償予測部１０５に供給するとともに、選択されたマージ候補を特定するマージインデックスを予測方法決定部１０６に供給する。
【００５８】
動き補償予測部１０５は、動きベクトル検出部１０２およびインター予測情報推定部１０４により検出された動きベクトルを用いて参照ピクチャから動き補償予測により予測画像信号を生成し、予測画像信号を予測方法決定部１０６に供給する。なお、Ｌ０予測、及びＬ１予測では、片方向の予測を行う。双予測（Pred_BI）の場合は、双方向の予測を行い、Ｌ０予測、Ｌ１予測のそれぞれのインター予測された信号に適応的に重み係数を掛け算し、オフセット値を加算して重畳し、最終的な予測画像信号を生成する。
【００５９】
予測方法決定部１０６は予測方法を決定する。それぞれの予測モードごとに符号量と符号化歪を算出し、最も少ない発生符号量と符号化歪となる予測ブロックサイズと予測モードが決定される。インター予測情報やイントラ予測情報等の符号化情報の符号量を算出する。さらに、動き補償予測部１０５から供給される予測画像信号と、画像メモリ１０１から供給される符号化対象の画像信号との予測残差信号を符号化した予測残差信号の符号量を算出する。動き情報の符号量と予測残差信号の符号量とが加算された総発生符号量を算出し、第１の評価値とする。尚、ここで算出される発生符号量は、符号化過程をシミュレートしたものであることが望ましいが、簡便に近似したり、概算することも可能である。
【００６０】
また、こうした予測残差信号を符号化後に、歪量評価の為に復号し、符号化により生じる元の画像信号との誤差を表す比率として符号化歪が算出される。これら総発生符号量と符号化歪とを予測方法毎に比較することで、最も少ない発生符号量と符号化歪となる予測方法が決定される。
【００６１】
複数の予測方法の中から、最適な符号化ブロック単位でインター予測（PRED_INTER）かイントラ予測（PRED_INTRA）かを判別する予測モードPredMode、分割モードPartModeを決定し、インター予測（PRED_INTER）では予測ブロック単位でマージモードか否か等の予測方法を決定し、マージモードの場合はマージインデックス、マージモードでない場合はインター予測フラグ、予測動きベクトルインデックス、Ｌ０、Ｌ１の参照インデックス、差分動きベクトル等を決定して、決定に応じた符号化情報を第１の符号化ビット列生成部１０９に供給する。
【００６２】
さらに、予測方法決定部１０６は、決定された予測方法を示す情報、及び決定された予測方法に応じた動きベクトル等を含む符号化情報を符号化情報格納メモリ１１４に格納する。ここで格納する符号化情報は、予測モードPredMode、分割モードPartMode、Ｌ０予測、及びＬ１予測を利用するかどうかを示すフラグpredFlagL0, predFlagL1、Ｌ０、Ｌ１の参照インデックスrefIdxL0, refIdxL1、Ｌ０、Ｌ１の動きベクトルmvL0, mvL1等である。ここで、予測モードPredModeがイントラ予測（MODE_INTRA）の場合、Ｌ０予測を利用するかどうかを示すフラグpredFlagL0、Ｌ１予測を利用するかどうかを示すフラグpredFlagL1は共に０である。一方、予測モードPredModeがインター予測（MODE_INTER）で、インター予測モードがＬ０予測（Pred_L0）の場合、Ｌ０予測を利用するかどうかを示すフラグpredFlagL0は１, Ｌ１予測を利用するかどうかを示すフラグpredFlagL1は０である。インター予測モードがＬ１予測（Pred_L1）の場合、Ｌ０予測を利用するかどうかを示すフラグpredFlagL0は０, Ｌ１予測を利用するかどうかを示すフラグpredFlagL1は１である。インター予測モードが双予測（Pred_BI）の場合、Ｌ０予測を利用するかどうかを示すフラグpredFlagL0、Ｌ１予測を利用するかどうかを示すフラグpredFlagL1は共に１である。予測方法決定部１０６は、決定された予測モードに応じた予測画像信号を残差信号生成部１０７と復号画像信号重畳部１１３に供給する。
【００６３】
残差信号生成部１０７は、符号化する画像信号と予測画像信号との減算を行うことにより残差信号を生成し、直交変換・量子化部１０８に供給する。
【００６４】
直交変換・量子化部１０８は、残差信号に対して量子化パラメータに応じて直交変換及び量子化を行い直交変換・量子化された残差信号を生成し、第２の符号化ビット列生成部１１０と逆量子化・逆直交変換部１１２に供給する。さらに、直交変換・量子化部１０８は、量子化パラメータを符号化情報格納メモリ１１４に格納する。
【００６５】
第１の符号化ビット列生成部１０９は、シーケンス、ピクチャ、スライス、符号化ブロック単位の情報に加えて、符号化ブロック及び予測ブロック毎に予測方法決定部１０６によって決定された予測方法に応じた符号化情報を符号化する。具体的には、符号化ブロック毎の予測モードPredModeがインター予測（PRED_INTER）の場合、マージモードかどうかを判別するフラグ、マージモードの場合はマージインデックス、マージモードでない場合はインター予測モード、参照インデックス、予測動きベクトルインデックス、差分動きベクトル等のインター予測情報を規定のシンタックス規則に従って符号化して第１の符号化ビット列を生成し、多重化部１１１に供給する。なお、本実施の形態においては、インター予測モードが双予測において、スライス毎、または符号化対象の予測ブロックのサイズに応じて、Ｌ１のインター予測情報を符号化するかどうかを切り替える。切り替える対象となるインター予測情報は双予測でのＬ１の参照インデックス、予測動きベクトルインデックス、差分動きベクトルの一部またはすべてである。
【００６６】
第２の符号化ビット列生成部１１０は、直交変換及び量子化された残差信号を規定のシンタックス規則に従ってエントロピー符号化して第２の符号化ビット列を生成し、多重化部１１１に供給する。多重化部１１１で、第１の符号化ビット列と第２の符号化ビット列を規定のシンタックス規則に従って多重化し、ビットストリームを出力する。
【００６７】
逆量子化・逆直交変換部１１２は、直交変換・量子化部１０８から供給された直交変換・量子化された残差信号を逆量子化及び逆直交変換して残差信号を算出し、復号画像信号重畳部１１３に供給する。復号画像信号重畳部１１３は、予測方法決定部１０６による決定に応じた予測画像信号と逆量子化・逆直交変換部１１２で逆量子化及び逆直交変換された残差信号を重畳して復号画像を生成し、復号画像メモリ１１５に格納する。なお、復号画像に対して符号化によるブロック歪等の歪を減少させるフィルタリング処理を施して、復号画像メモリ１１５に格納されることもある。
【００６８】
図２は図１の動画像符号化装置に対応した本発明の実施の形態に係る動画像復号装置２００の構成を示すブロックである。実施の形態の動画像復号装置は、分離部２０１、第１符号化ビット列復号部２０２、第２符号化ビット列復号部２０３、参照インデックス導出部２１１、動きベクトル導出部２０４、インター予測情報推定部２０５、動き補償予測部２０６、逆量子化・逆直交変換部２０７、復号画像信号重畳部２０８、符号化情報格納メモリ２０９、および復号画像メモリ２１０を備える。
【００６９】
図２の動画像復号装置の復号処理は、図１の動画像符号化装置の内部に設けられている復号処理に対応するものであるから、図２の動き補償予測部２０６、逆量子化・逆直交変換部２０７、復号画像信号重畳部２０８、符号化情報格納メモリ２０９、および復号画像メモリ２１０の各構成は、図１の動画像符号化装置の動き補償予測部１０５、逆量子化・逆直交変換部１１２、復号画像信号重畳部１１３、符号化情報格納メモリ１１４、および復号画像メモリ１１５の各構成とそれぞれ対応する機能を有する。
【００７０】
分離部２０１に供給されるビットストリームは規定のシンタックスの規則に従って分離し、分離された符号化ビット列が第１符号化ビット列復号部２０２、第２符号化ビット列復号部２０３に供給される。
【００７１】
第１符号化ビット列復号部２０２は、供給された符号化ビット列を復号して、シーケンス、ピクチャ、スライス、符号化ブロック単位の情報、及び、予測ブロック単位の符号化情報を得る。具体的には、符号化ブロック単位でインター予測（PRED_INTER）かイントラ予測（PRED_INTRA）かを判別する予測モードPredMode、分割モードPartMode、インター予測（PRED_INTER）の場合、予測ブロック単位でマージモードかどうかを判別するマージフラグ、マージフラグがマージモードの場合はマージインデックス、マージフラグがマージモードでない場合はインター予測モード、予測動きベクトルインデックス、差分動きベクトル等に関する符号化情報を規定のシンタックス規則に従って復号し、参照インデックス導出部２１１、符号化情報を動きベクトル導出部２０４およびインター予測情報推定部２０５に供給する。
【００７２】
なお、本実施の形態においては、インター予測モードが双予測において、スライス毎、または復号対象の予測ブロックのサイズに応じて、Ｌ１予測のインター予測情報を復号するかどうかを切り替える。切り替える対象となるインター予測情報は参照インデックス、予測動きベクトルインデックス、差分動きベクトルの一部、またはすべてである。そこで、第１符号化ビット列復号部２０２では、双予測においてＬ１のインター予測情報が符号化されるかどうかを示すフラグinterInfoCodingL1Flagが０または１に設定される。フラグinterInfoCodingL1Flagが１は双予測においてＬ１のインター予測情報が符号化されることを示し、フラグinterInfoCodingL1Flagが０は双予測においてＬ１のインター予測情報が符号化されないことを示す。設定された双予測においてＬ１のインター予測情報が符号化されるかどうかを示すフラグinterInfoCodingL1Flagの情報は参照インデックス導出部２１１、および動きベクトル導出部２１２に供給される。
【００７３】
双予測でＬ１のインター予測情報が符号化されるかどうかを示すフラグinterInfoCodingL1Flagが１の場合、切り替える対象となるインター予測情報として双予測でのＬ１の差分動きベクトルが含まれる場合で、双予測でのＬ１の差分動きベクトルを復号しない場合、に双予測でのＬ１の差分動きベクトルが（０，０）に設定され、切り替える対象となるインター予測情報として双予測でのＬ１の予測動きベクトルインデックスが含まれる場合で、双予測でのＬ１の予測動きベクトルインデックスを復号しない場合、双予測でのＬ１の予測動きベクトルインデックスがＬ０の予測動きベクトルインデックスの値に設定され、符号化情報を参照インデックス導出部２１１および動きベクトル導出部２０４に供給する。なお、本実施の形態においては動きベクトル導出部２０４において切り替える対象となるインター予測情報として双予測でのＬ１の参照インデックスが含まれる場合で、双予測でのＬ１の参照インデックスを復号しない場合、双予測でのＬ１の参照インデックスを導出した値に設定するが、双予測でのＬ１の参照インデックスをデフォルト値に設定することもできる。その場合、第１符号化ビット列復号部２０２で、双予測でのＬ１の参照インデックスをデフォルト値に設定し、符号化情報を参照インデックス導出部２１１に供給する。
【００７４】
第２符号化ビット列復号部２０３は、供給された符号化ビット列を復号して直交変換・量子化された残差信号を算出し、直交変換・量子化された残差信号を逆量子化・逆直交変換部２０７に供給する。
【００７５】
参照インデックス導出部２１１は、供給された符号化情報から予測モードPredModeがインター予測（MODE_INTER）であり、マージフラグがマージモードでなく、インター予測モードが双予測（Pred_BI）であり、双予測においてＬ１のインター予測情報が符号化されるかどうかを示すフラグinterInfoCodingL1Flagが０の場合に、Ｌ１の参照インデックスを導出し、動き補償予測部２０６に供給する。符号化情報格納メモリに格納されている隣接する予測ブロックのＬ１の参照インデックスを含む符号化情報を利用して、復号対象の予測ブロックのＬ１の参照インデックスを導出してもよいし、Ｌ０の参照インデックスに対応するＬ０の参照ピクチャがＬ１にも含まれている場合にＬ１でも同じ参照ピクチャを用いることとし、その参照ピクチャに対応するＬ１の参照インデックスを導出してもよい。
【００７６】
動きベクトル導出部２０４は、マージフラグがマージモードでない時に、符号化情報格納メモリ２０９に記憶されている既に復号された画像信号の符号化情報を用いて、複数の予測動きベクトルの候補を算出して後述する予測動きベクトルリストに登録し、予測動きベクトルリストに登録された複数の予測動きベクトルの候補の中から、第１符号化ビット列復号部２０２で復号され供給される予測動きベクトルインデックスに応じた予測動きベクトルを選択し、第１符号化ビット列復号部２０２で復号された差分ベクトルと選択された予測動きベクトルから動きベクトルを算出し、他の符号化情報とともに動き補償予測部２０６に供給するとともに、符号化情報格納メモリ２０９に格納する。ここで供給・格納する予測ブロックの符号化情報は、予測モードPredMode、分割モードPartMode、Ｌ０予測、及びＬ１予測を利用するかどうかを示すフラグpredFlagL0, predFlagL1、Ｌ０、Ｌ１の参照インデックスrefIdxL0, refIdxL1、Ｌ０、Ｌ１の動きベクトルmvL0, mvL1等である。ここで、予測モードPredModeがイントラ予測（MODE_INTRA）の場合、Ｌ０予測を利用するかどうかを示すフラグpredFlagL0、Ｌ１予測を利用するかどうかを示すフラグpredFlagL1は共に０である。一方、予測モードPredModeがインター予測（MODE_INTER）で、インター予測モードがＬ０予測（Pred_L0）の場合、Ｌ０予測を利用するかどうかを示すフラグpredFlagL0は１, Ｌ１予測を利用するかどうかを示すフラグpredFlagL1は０である。インター予測モードがＬ１予測（Pred_L1）の場合、Ｌ０予測を利用するかどうかを示すフラグpredFlagL0は０, Ｌ１予測を利用するかどうかを示すフラグpredFlagL1は１である。インター予測モードが双予測（Pred_BI）の場合、Ｌ０予測を利用するかどうかを示すフラグpredFlagL0、Ｌ１予測を利用するかどうかを示すフラグpredFlagL1は共に１である。動きベクトル導出部２０４の詳細な構成と動作は後述する。
【００７７】
インター予測情報推定部２０５は、復号対象の予測ブロックのマージフラグがマージモードの時に、マージモードのインター予測情報を推定する。符号化情報格納メモリ１１４に記憶されている既に復号された予測ブロックの符号化情報を用いて、複数のマージの候補を算出してマージ候補リストに登録し、マージ候補リストに登録された複数のマージ候補の中から第１符号化ビット列復号部２０２で復号され供給されるマージインデックスに対応したマージ候補を選択し、選択されたマージ候補の予測モードPredMode、分割モードPartMode、Ｌ０予測、及びＬ１予測を利用するかどうかを示すフラグ、Ｌ０、Ｌ１の参照インデックス、Ｌ０、Ｌ１の動きベクトル等のインター予測情報を動き補償予測部２０６に供給するとともに、符号化情報格納メモリ２０９に格納する。
【００７８】
動き補償予測部２０６は、動きベクトル導出部２０４で算出された動きベクトルを用いて参照ピクチャから動き補償予測により予測画像信号を生成し、予測画像信号を復号画像信号重畳部２０８に供給する。なお、双予測（Pred_BI）の場合は、Ｌ０予測、Ｌ１予測の２つの予測画像信号に適応的に重み係数を掛け算し、オフセット値を加算して重畳し、最終的な予測画像信号を生成する。
【００７９】
逆量子化・逆直交変換部２０７は、第１符号化ビット列復号部２０２で復号された直交変換・量子化された残差信号に対して逆直交変換及び逆量子化を行い、逆直交変換・逆量子化された残差信号を得る。
【００８０】
復号画像信号重畳部２０８は、動き補償予測部２０６で動き補償予測された予測画像信号と、逆量子化・逆直交変換部２０７により逆直交変換・逆量子化された残差信号とを重畳することにより、復号画像信号を復号し、復号画像メモリ２１０に格納する。復号画像メモリ２１０に格納する際には、復号画像に対して符号化によるブロック歪等を減少させるフィルタリング処理を施して、復号画像メモリ２１０に格納されることもある。
【００８１】
本実施の形態の動画像符号化装置１００および動画像復号装置２００においては、インター予測モードが双予測において、スライス単位または符号化／復号対象の予測ブロックのサイズに応じて、双予測でＬ１のインター予測情報を符号化／復号するかどうかを切り替える。
【００８２】
スライス単位で切り替える場合、図１０のスライスヘッダーのシンタックス構造の例に示すように、スライスヘッダーに双予測でＬ１のインター予測情報を符号化／復号するかどうかを示すフラグinterInfoCodingL1Flagを符号化／復号するためのシンタックス要素inter_info_coding_l1_flagを用意し、このシンタックス要素をスライスタイプがＢスライスの場合に動画像符号化装置１００の第１の符号化ビット列生成部１０９で符号化し、動画像復号装置２００の第１符号化ビット列復号部２０２で復号することで、双予測においてＬ１のインター予測情報を符号化／復号するかどうかを判別する。また、Ｌ０のインター予測情報を切り替える場合は、Ｌ０のインター予測情報を符号化／復号するかどうかを示すフラグinterInfoCodingL0Flagを符号化／復号するためのシンタックス要素inter_info_coding_l0_flagを用意して符号化／復号することで判別することもできる。
【００８３】
また、双予測でＬ１のインター予測情報を符号化／復号するかどうかを示すフラグinterInfoCodingL1Flagの代わりに、双予測でＬ１の参照インデックスを符号化／復号するかどうかを示すフラグrefIdxCodingL1Flag、双予測でＬ１の予測動きベクトルインデックスを符号化／復号するかどうかを示すフラグmvpIdxCodingL1Flag、双予測でＬ１の差分予測動きベクトルを符号化／復号するかどうかを示すフラグmvdCodingL1Flagを用意してそれぞれ個別に切り替えることもできる。また、Ｌ０のインター予測情報を切り替える場合は、双予測でＬ０の参照インデックスを符号化／復号するかどうかを示すフラグrefIdxCodingL0Flag、双予測でＬ０の予測動きベクトルインデックスを符号化／復号するかどうかを示すフラグmvpIdxCodingL0Flag、双予測でＬ０の差分予測動きベクトルを符号化／復号するかどうかを示すフラグmvdCodingL0Flagを用意してそれぞれ個別に切り替えることもできる。この場合、図１１のスライスヘッダーのシンタックス構造の例に示すように、スライスヘッダーに双予測でＬ１の参照インデックスを符号化／復号するかどうかを示すフラグrefIdxCodingL1Flagを符号化／復号するためのシンタックス要素ref_idx_coding_l1_flag、双予測でＬ１の予測動きベクトルインデックスを符号化／復号するかどうかを示すフラグmvpIdxCodingL1Flagを符号化／復号するためのシンタックス要素mvp_idx_coding_l1_flag、双予測でＬ１の差分予測動きベクトルを符号化／復号するかどうかを示すフラグmvdCodingL1Flagを符号化／復号するためのシンタックス要素mvd_coding_l1_flagを用意し、このシンタックス要素をスライスタイプがＢスライスの場合に動画像符号化装置１００の第１の符号化ビット列生成部１０９で符号化し、動画像復号装置２００の第１符号化ビット列復号部２０２で復号することで、双予測においてＬ１のインター予測情報を符号化／復号するかどうかを判別することもできる。また、Ｌ０のインター予測情報を切り替える場合は、双予測でＬ０の参照インデックスを符号化／復号するかどうかを示すフラグrefIdxCodingL0Flagを符号化／復号するためのシンタックス要素ref_idx_coding_l0_flag、双予測でＬ０の予測動きベクトルインデックスを符号化／復号するかどうかを示すフラグmvpIdxCodingL0Flagを符号化／復号するためのシンタックス要素mvp_idx_coding_l0_flag、双予測でＬ０の差分予測動きベクトルを符号化／復号するかどうかを示すフラグmvdCodingL0Flagを符号化／復号するためのシンタックス要素mvd_coding_l0_flagを用意して符号化／復号することで判別することもできる。
【００８４】
符号化／復号対象の予測ブロックのサイズに応じて切り替える場合について、図１２を用いて説明する。これらの処理は、本実施の形態の動画像符号化装置１００および動画像復号装置２００の各ブロックにおいて、必要に応じて行われる。
【００８５】
図１２は符号化／復号対象の予測ブロックのサイズに応じて切り替える場合の双予測でＬ１のインター予測情報を符号化／復号するかどうかを示すフラグinterInfoCodingL1Flagの設定処理手順を示すフローチャートである。
【００８６】
まず、符号化／復号対象の予測ブロックのサイズを得る（ステップＳ４０１）。符号化／復号対象の予測ブロックのサイズが規定したサイズsizePUInterPredInfoCodingL1以下の場合（ステップＳ４０２のＹＥＳ）、フラグinterInfoCodingL1Flagを０に設定する（ステップＳ４０３）。一方、符号化／復号対象の予測ブロックのサイズが規定したサイズsizePUInterPredInfoCodingL1より大きい場合（ステップＳ４０２のＮＯ）、interInfoCodingL1Flagを１に設定する（ステップＳ４０４）。本実施の形態においては、規定するサイズsizePUInterPredInfoCodingL1を8x8とする。なお、規定するサイズsizePUInterPredInfoCodingL1は固定された値であってもよいし、シーケンス、ピクチャまたはスライス単位でシンタックス要素を用意して任意の値に設定してもよい。また、8x4と4x8等、幅と高さを乗じた値が等しいサイズの場合は同じサイズとみなす。即ち、規定するサイズsizePUInterPredInfoCodingL1が8x4と設定された場合、4x8も設定されたものとみなす。また、ステップＳ４０２で、符号化／復号対象の予測ブロックのサイズが規定したサイズsizePUInterPredInfoCodingL1未満の場合、interInfoCodingL1Flagを０に設定し、そうでない場合、interInfoCodingL1Flagを１に設定するとしてもよい。
【００８７】
図１の動画像符号化装置の第１の符号化ビット列生成部１０９で実施される予測ブロック単位のインター予測情報のエントロピー符号化処理手順について、図１３のフローチャートを用いて説明する。まず予測ブロック単位でマージモードかどうかを判別するマージフラグmergeFlagを符号化する（ステップＳ５０１）。マージフラグが１の場合（ステップＳ５０２のＹＥＳ）、インター予測情報推定部１０４で選択されたマージ候補を特定するマージインデックスmergeIdxを符号化し（ステップＳ５０３）、本符号化処理手順を終了する。
【００８８】
一方、マージフラグが０の場合（ステップＳ５０２のＮＯ）、ステップＳ５０４、およびＳ５０５の条件判断を実施する。インター予測モードがＬ０予測の場合（ステップＳ５０４のＹＥＳ）、Ｌ０の参照インデックスrefIdxL0を符号化し（ステップＳ５０６）、Ｌ０の予測動きベクトルインデックスmvpIdxL0を符号化し（ステップＳ５０７）、Ｌ０の差分動きベクトルを符号化し（ステップＳ５０８）、本符号化処理手順を終了する。
【００８９】
一方、インター予測モードがＬ１予測の場合（ステップＳ５０４のＮＯ、ステップＳ５０５のＹＥＳ）、Ｌ１の参照インデックスrefIdxL1を符号化し（ステップＳ５０９）、Ｌ１の予測動きベクトルインデックスmvpIdxL1を符号化し（ステップＳ５１０）、Ｌ１の差分動きベクトルを符号化し（ステップＳ５１１）、本符号化処理手順を終了する。
【００９０】
一方、インター予測モードが双予測の場合（ステップＳ５０４のＮＯ、ステップＳ５０５のＮＯ）、Ｌ０の参照インデックスrefIdxL0を符号化し（ステップＳ５１２）、Ｌ０の予測動きベクトルインデックスmvpIdxL0を符号化し（ステップＳ５１３）、Ｌ０の差分動きベクトルを符号化する（ステップＳ５１４）。
【００９１】
続いて、フラグinterPredInfoCodingL1Flagが１、即ち、Ｌ１のインター予測情報を符号化する場合（ステップＳ５１６のＹＥＳ）、Ｌ１の参照インデックスrefIdxL1を符号化し（ステップＳ５１７）、Ｌ１の予測動きベクトルインデックスmvpIdxL1を符号化し（ステップＳ５１８）、Ｌ１の差分動きベクトルを符号化し（ステップＳ５１９）、本符号化処理手順を終了する。
【００９２】
一方、フラグinterPredInfoCodingL1Flagが０、即ち、Ｌ１のインター予測情報を符号化しない場合（ステップＳ５１６のＮＯ）、本符号化処理手順を終了する。
【００９３】
次に、図２の動画像復号装置の第１符号化ビット列復号部２０２で実施される予測ブロック単位のインター予測情報のエントロピー復号処理手順について、図１４のフローチャートを用いて説明する。まず予測ブロック単位でマージモードかどうかを判別するマージフラグmergeFlagを復号する（ステップＳ６０１）。マージフラグが１の場合（ステップＳ６０２のＹＥＳ）、インター予測情報推定部１０４で選択されたマージ候補を特定するマージインデックスmergeIdxを復号し（ステップＳ６０３）、本復号処理手順を終了する。
【００９４】
一方、マージフラグが０の場合（ステップＳ６０２のＮＯ）、ステップＳ６０４、およびＳ６０５の条件判断を実施する。インター予測モードがＬ０予測の場合（ステップＳ６０４のＹＥＳ）、Ｌ０の参照インデックスrefIdxL0を復号し（ステップＳ６０６）、Ｌ０の予測動きベクトルインデックスmvpIdxL0を復号し（ステップＳ６０７）、Ｌ０の差分動きベクトルを復号し（ステップＳ６０８）、本復号処理手順を終了する。
【００９５】
一方、インター予測モードがＬ１予測の場合（ステップＳ６０４のＮＯ、ステップＳ６０５のＹＥＳ）、Ｌ１の参照インデックスrefIdxL1を復号し（ステップＳ６０９）、Ｌ１の予測動きベクトルインデックスmvpIdxL1を復号し（ステップＳ６１０）、Ｌ１の差分動きベクトルを復号し（ステップＳ６１１）、本復号処理手順を終了する。
【００９６】
一方、インター予測モードが双予測の場合（ステップＳ６０４のＮＯ、ステップＳ６０５のＮＯ）、Ｌ０の参照インデックスrefIdxL0を復号し（ステップＳ６１２）、Ｌ０の予測動きベクトルインデックスmvpIdxL0を復号し（ステップＳ６１３）、Ｌ０の差分動きベクトルを復号する（ステップＳ６１４）。
【００９７】
続いて、フラグinterPredInfoCodingL1Flagを設定する（ステップＳ６１５）。復号対象の予測ブロックのサイズに応じて切り替える場合は、図１７を用いて説明した方法により、フラグinterPredInfoCodingL1Flagを設定する。なお、スライス単位でＬ１のインター予測情報を復号するかどうかを切り替える場合はフラグinterPredInfoCodingL1Flagはスライスヘッダ復号時に設定される。
【００９８】
続いて、フラグinterPredInfoCodingL1Flagが１、即ち、Ｌ１のインター予測情報を復号する場合（ステップＳ６１６のＹＥＳ）、Ｌ１の参照インデックスrefIdxL1を復号し（ステップＳ６１７）、Ｌ１の予測動きベクトルインデックスmvpIdxL1を復号し（ステップＳ６１８）、Ｌ１の差分動きベクトルを復号し（ステップＳ６１９）、本復号処理手順を終了する。
【００９９】
一方、フラグinterPredInfoCodingL1Flagが０、即ち、Ｌ１のインター予測情報を復号しない場合（ステップＳ６１６のＮＯ）、参照インデックス導出部２１１でＬ１の参照インデックスrefIdxL1を導出する（ステップＳ６２０）。続いて、Ｌ１の予測動きベクトルインデックスmvpIdxL1をＬ０の予測動きベクトルインデックスmvpIdxL0の値に設定する（ステップＳ６２１）。続いて、Ｌ１の差分動きベクトルを（０，０）に設定し（ステップＳ６２２）、本復号処理手順を終了する。
【０１００】
次に、図１の参照インデックス導出部１１６、及び図２の参照インデックス導出部２１１で実施される双予測でのＬ１の参照インデックスを導出する方法について詳細に説明する。
【０１０１】
本実施の形態においては、周辺の予測ブロックで利用された参照インデックスを利用して符号化／復号対象の予測ブロックの双予測でのＬ１の参照インデックスrefIdxLXを導出する。これは、符号化／復号対象の予測ブロックの参照インデックスは周辺の予測ブロックの参照インデックスと高い相関を持つと考えられるからである。特に、符号化／復号対象の予測ブロックの左の辺に隣接する予測ブロックＡ１、及び上の辺に隣接する予測ブロックＢ１の参照インデックスだけを利用する。なぜなら、図５に示す隣接する予測ブロックＡ０，Ａ１，Ｂ０，Ｂ１，Ｂ２の中でも符号化／復号対象の予測ブロックの辺に接している予測ブロックＡ１，Ｂ１は、符号化／復号対象の予測ブロックの頂点に接している予測ブロックＡ０，Ｂ０，Ｂ２よりも相関が高いと考えられるからである。あえて予測ブロックＡ０，Ｂ０，Ｂ２を利用せずに、利用する予測ブロックを予測ブロックＡ１，Ｂ１に限定することで、参照インデックスの導出による符号化効率の改善効果を得るとともに、参照インデックス導出処理に関する演算量及びメモリアクセス量を削減する。
【０１０２】
（実施例１）
以下、本実施の形態をいくつかの実施例に分けて説明する。まず、本実施の形態の実施例１について説明する。本実施の形態の実施例１では、予測ブロックＡ１、予測ブロックＢ１が共にＬＸ予測（参照インデックスの導出対象のリストをＬＸとし、ＬＸを用いた予測をＬＸ予測とする。つまり、Ｌ０の参照インデックスを導出する際にはＬＸはＬ０に設定され、Ｌ１の参照インデックスを導出する際にはＬＸはＬ１に設定される。以下、断りのない限り、この意味で用いる。）を行う場合は予測ブロックＡ１、予測ブロックＢ１のＬＸの参照インデックスの値の小さい方を符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスの値として採用する。ここで、双予測はＬ０予測とＬ１予測を共に行うものとする。ただし、予測ブロックＡ１、予測ブロックＢ１のいずれか一方しかＬＸ予測を行わない場合はＬＸ予測を行う方の予測ブロックのＬＸの参照インデックスの値を符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスの値として採用し、予測ブロックＡ１、予測ブロックＢ１が共にＬＸ予測を行わない場合は符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスの値をデフォルト値の０とする。
【０１０３】
予測ブロックＡ１、予測ブロックＢ１が共にＬＸ予測を行わない場合に符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスのデフォルト値を０とする理由は、インター予測において参照インデックスの値が０に対応する参照ピクチャが最も選択される確率が高いからである。ただし、これに限定されず、参照インデックスのデフォルト値を０以外の値（１、２など）としても良いし、シーケンスレベル、ピクチャレベル、またはスライスレベルで符号化ストリーム内に参照インデックスのデフォルト値を示すシンタックス要素を設置し伝送できるようにして、符号化側で選択できるようにしても良い。
【０１０４】
図１５は本実施の形態の実施例１の方法による符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスrefIdxLXの導出処理手順を説明するフローチャートである。まず、符号化情報格納メモリ１１４または２０９から左に隣接する予測ブロックＡ１の符号化情報、及び予測ブロックＢ１の符号化情報を取得する（ステップＳ６１０１、ステップＳ６１０２）。
【０１０５】
予測ブロックＡのＬＸ予測を行うかどうかを示すフラグpredFlagLX[xA][yA]と予測ブロックＢ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xB][yB]が共に０でない場合（ステップＳ６１０３のＹＥＳ）、ＬＸの参照インデックスrefIdxLXを予測ブロックＡ１のＬＸの参照インデックスrefIdxLX[xA][yA]と予測ブロックＢ１のＬＸの参照インデックスrefIdxLX[xB][yB]の値の小さい方と同じ値に設定し（ステップＳ６１０４）、本参照インデックス導出処理を終了する。ここで、xA、yAはピクチャ内での予測ブロックＡ１の左上の画素の位置を示すインデックスである。ここで、xB、yBはピクチャ内での予測ブロックＢ１の左上の画素の位置を示すインデックスである。
【０１０６】
なお、本実施の形態においては、予測ブロックＮ（Ｎ＝Ａ，Ｂ）において、予測ブロックＮが符号化／復号対象のスライス外で利用できない場合や予測ブロックＮが符号化／復号順序で符号化／復号対象の予測ブロックよりも後のために符号化／復号されておらず利用できない場合や予測ブロックＮの予測モードPredModeがイントラ予測（MODE_INTRA）の場合、Ｌ０予測を利用するかどうかを示すフラグpredFlagL0[xN][yN]、予測ブロックＮのＬ１予測を利用するかどうかを示すフラグpredFlagL1[xN][yN]は共に０である。ここで、xN、yNはピクチャ内での予測ブロックＮの左上の画素の位置を示すインデックスである。予測ブロックＮの予測モードPredModeがインター予測（MODE_INTER）で、インター予測モードがＬ０予測（Pred_L0）の場合、予測ブロックＮのＬ０予測を利用するかどうかを示すフラグpredFlagL0[xN][yN]は１, Ｌ１予測を利用するかどうかを示すフラグpredFlagL1[xN][yN]は０である。予測ブロックＮのインター予測モードがＬ１予測（Pred_L1）の場合、予測ブロックＮのＬ０予測を利用するかどうかを示すフラグpredFlagL0[xN][yN]は０, Ｌ１予測を利用するかどうかを示すフラグpredFlagL1[xN][yN]は１である。予測ブロックＮのインター予測モードが双予測（Pred_BI）の場合、予測ブロックＮのＬ０予測を利用するかどうかを示すフラグpredFlagL0[xN][yN]、Ｌ１予測を利用するかどうかを示すフラグpredFlagL1[xN][yN]は共に１である。
【０１０７】
予測ブロックＡ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xA][yA]が０でなく、予測ブロックＢ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xB][yB]が０である場合（ステップＳ６１０３のＮＯで、ステップＳ６１０５のＹＥＳ）、ＬＸの参照インデックスrefIdxLXを予測ブロックＡ１のＬＸの参照インデックスrefIdxLX[xA][yA]と同じ値に設定し（ステップＳ６１０６）、本参照インデックス導出処理を終了する。ここで、xA、yAはピクチャ内での予測ブロックＡ１の左上の画素の位置を示すインデックスであり、xB、yBはピクチャ内での予測ブロックＢ１の左上の画素の位置を示すインデックスである。
【０１０８】
予測ブロックＡ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xA][yA]が０であり、予測ブロックＢ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xB][yB]が０でない場合（ステップＳ６１０３のＮＯで、ステップＳ６１０５のＮＯで、ステップＳ２１０７のＹＥＳ）、ＬＸの参照インデックスrefIdxLXを予測ブロックＢ１のＬＸの参照インデックス refIdxLX[xB][yB]と同じ値に設定し（ステップＳ６１０８）、本参照インデックス導出処理を終了する。
【０１０９】
予測ブロックＡ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xA][yA]と予測ブロックＢ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xB][yB]が共に０である場合（ステップＳ６１０３のＮＯで、ステップＳ６１０５のＮＯで、ステップＳ６１０７のＮＯ）、のＬＸの参照インデックスrefIdxLXをデフォルト値の０に設定し（ステップＳ６１０９）、本参照インデックス導出処理を終了する。
【０１１０】
（実施例２）
次に、本実施の形態の実施例２について説明する。本実施の形態の実施例２においても、実施例１と同様に左の辺に隣接する予測ブロックＡ１、及び上の辺に隣接する予測ブロックＢ１の参照インデックスを利用して符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスを導出する。実施例１に対して、図１５のステップＳ６１０３、ステップＳ６１０４の処理を省略し、予測ブロックＡ１、予測ブロックＢ１の順序で、ＬＸ予測を行うかどうかを判定して、最初に見つかったＬＸ予測を行う予測ブロックの参照インデックスを採用することでさらに処理量を削減する点が異なる。予測ブロックＡ１がＬＸ予測を行う場合は予測ブロックＡ１のＬＸの参照インデックスを符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスの値として採用し、予測ブロックＡ１がＬＸ予測を行わず、予測ブロックＢ１がＬＸ予測を行う場合は予測ブロックＢ１のＬＸの参照インデックスを符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスの値として採用する。予測ブロックＡ１、予測ブロックＢ１が共にＬＸ予測を行わない場合はＬＸの参照インデックスの値をデフォルト値の０とする。
【０１１１】
図１６は本実施の形態の実施例２の方法による符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスrefIdxLXの導出処理手順を説明するフローチャートである。まず、符号化情報格納メモリ１１４または２０９から左に隣接する予測ブロックＡ１の符号化情報、及び予測ブロックＢ１の符号化情報を取得する（ステップＳ６２０１、ステップＳ６２０２）。なお、Ｌ０の参照インデックスを導出する際にはＬＸはＬ０に設定され、Ｌ１の参照インデックスを導出する際にはＬＸはＬ１に設定される。
【０１１２】
予測ブロックＡ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xA][yA]が０でない場合（ステップＳ６２０３のＹＥＳ）、ＬＸの参照インデックスrefIdxLXを予測ブロックＡ１のＬＸの参照インデックスrefIdxLX[xA][yA]と同じ値に設定し（ステップＳ６２０４）、本参照インデックス導出処理を終了する。
【０１１３】
予測ブロックＡ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xA][yA]が０であり、予測ブロックＢ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xB][yB]が０でない場合（ステップＳ６２０３のＮＯで、ステップＳ６２０５のＹＥＳ）、ＬＸの参照インデックスrefIdxLXを予測ブロックＢ１のＬＸの参照インデックスrefIdxLX[xB][yB]と同じ値に設定し（ステップＳ６２０６）、本参照インデックス導出処理を終了する。
【０１１４】
予測ブロックＡ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xA][yA]と予測ブロックＢ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xB][yB]がともに０である場合（ステップＳ６２０３のＮＯで、ステップＳ６２０５のＮＯ）、ＬＸの参照インデックスrefIdxLXをデフォルト値の０に設定し（ステップＳ６２０７）、本参照インデックス導出処理を終了する。
【０１１５】
なお、本実施の形態の実施例２においては、左の辺に隣接する予測ブロックＡ１、上の辺に隣接する予測ブロックＢ１の順序でＬＸ予測を行うかどうかを判定して、最初に見つかったＬＸ予測を行う予測ブロックの参照インデックスを採用するものとして説明したが、予測ブロックＢ１、予測ブロックＡ１の順序でＬＸ予測を行うかどうかを判定して、最初に見つかった予測インデックスを採用することもできる。
【０１１６】
（実施例３）
次に、本実施の形態の実施例３について説明する。本実施の形態の実施例３においても、実施例１、実施例２と同様に左の辺に隣接する予測ブロックＡ１、及び上の辺に隣接する予測ブロックＢ１の参照インデックスを利用して符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスを導出する。実施例２に対して、予測ブロックＡ１、予測ブロックＢ１の順序で、インター予測を行うかどうかを判定して、最初に見つかったインター予測を行う予測ブロックの予測インデックスを採用することでさらに処理量を削減する点が異なる。予測ブロックＡ１の予測モード（PredMode）がインター予測（MODE_INTER）の場合は予測ブロックＡ１のＬＸの参照インデックスを符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスの値として採用する。その際、予測ブロックＡ１がＬＸ予測を行わない場合は符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスを０とする。予測ブロックＡ１の予測モード（PredMode）がインター予測（MODE_INTER）でなく、予測ブロックＢ１の予測モード（PredMode）がインター予測（MODE_INTER）の場合は予測ブロックＢ１のＬＸの参照インデックスを符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスの値として採用する。その際、予測ブロックＢ１がＬＸ予測を行わない場合は符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスを０とする。予測ブロックＡ１、予測ブロックＢ１の予測モード（PredMode）が共にインター予測（MODE_INTER）でない場合は符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスの値を０とする。
【０１１７】
図１７は本実施の形態の実施例３の方法による符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスrefIdxLXの導出処理手順を説明するフローチャートである。まず、符号化情報格納メモリ１１４または２０９から左に隣接する予測ブロックＡ１の符号化情報、及び予測ブロックＢ１の符号化情報を取得する（ステップＳ６３０１、ステップＳ６３０２）。
【０１１８】
続いて、予測ブロックＡ１が利用でき、予測ブロックＡ１の予測モード（PredMode）がイントラ予測（MODE_INTRA）の場合（ステップＳ６３０３のＹＥＳ）、即ち、予測ブロックＡ１の予測モード（PredMode）がインター予測（MODE_INTER）の場合、ステップＳ６３０５に進み、予測ブロックＡ１の予測モード（PredMode）がインター予測（MODE_INTER）でない場合、ステップＳ６３０７に進む。
【０１１９】
予測ブロックＡ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xA][yA]が０でない場合（ステップＳ６３０４のＹＥＳ）、ＬＸの参照インデックスrefIdxLXを予測ブロックＡ１のＬＸの参照インデックスrefIdxLX[xA][yA]と同じ値に設定し（ステップＳ６３０５）、フラグpredFlagLX[xA][yA]が０である場合（ステップＳ６３０４のＮＯ）、ＬＸの参照インデックスrefIdxLXを０に設定し（ステップＳ６３０６）、本参照インデックス導出処理を終了する。
【０１２０】
一方、ステップＳ６３０７では、予測ブロックＢ１が利用でき、予測ブロックＢ１の予測モード（PredMode）がイントラ予測（MODE_INTRA）の場合（ステップＳ６３０７のＹＥＳ）、即ち、予測ブロックＢ１の予測モード（PredMode）がインター予測（MODE_INTER）の場合、ステップＳ６３０８に進み、予測ブロックＡ１の予測モード（PredMode）がインター予測（MODE_INTER）でない場合、ステップＳ６３１１に進む。
【０１２１】
予測ブロックＢ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xB][yB]が０でない場合（ステップＳ６３０９のＹＥＳ）、ＬＸの参照インデックスrefIdxLXを予測ブロックＢ１のＬＸの参照インデックスrefIdxLX[xB][yB]と同じ値に設定し（ステップＳ６３０９）、フラグpredFlagLX[xB][yB]が０である場合（ステップＳ６３０８のＮＯ）、ＬＸの参照インデックスrefIdxLXを０に設定し（ステップＳ６３１０）、本参照インデックス導出処理を終了する。
【０１２２】
一方、ステップＳ６３０７のＮＯの場合、ＬＸの参照インデックスrefIdxLXを０に設定し（ステップＳ６３１１）、本参照インデックス導出処理を終了する。
【０１２３】
なお、本実施の形態の実施例３においては、左の辺に隣接する予測ブロックＡ１、上の辺に隣接する予測ブロックＢ１の順序でインター予測を行うかどうかを判定して、最初に見つかったインター予測を行う予測ブロックの参照インデックスを採用するものとして説明したが、予測ブロックＢ１、予測ブロックＡ１の順序でインター予測を行うかどうかを判定して、最初に見つかったインター予測を行う予測ブロックの予測インデックスを採用することもできる。
【０１２４】
（実施例４）
次に、本実施の形態の実施例４について説明する。本実施の形態の実施例４においては、左の辺に隣接する予測ブロックＡ１の参照インデックスを利用して符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスを導出する。実施例２に対して、図２６のステップＳ６２０２、Ｓ６２０５、Ｓ６２０６の処理を省略することでさらに処理量を削減する点が異なる。予測ブロックＡ１がＬＸ予測（ＬＸは参照インデックスを導出対象のリスト）を行う場合は予測ブロックＡ１のＬＸの参照インデックスを符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスの値として採用し、予測ブロックＡ１がＬＸ予測を行わない場合は符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスの値をデフォルト値の０とする。
【０１２５】
図１８は本実施の形態の実施例４の方法による符号化／復号対象の予測ブロックの双予測でのＬＸの参照インデックスrefIdxLXの導出処理手順を説明するフローチャートである。まず、符号化情報格納メモリ１１４または２０９から左に隣接する予測ブロックＡ１の符号化情報を取得する（ステップＳ６４０１）。
【０１２６】
予測ブロックＡ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xA][yA]が０でない場合（ステップＳ６４０２のＹＥＳ）、ＬＸの参照インデックスrefIdxLXを予測ブロックＡ１のＬＸの参照インデックスrefIdxLX[xA][yA]と同じ値に設定する（ステップＳ６４０３）。
【０１２７】
予測ブロックＡ１のＬＸ予測を行うかどうかを示すフラグpredFlagLX[xA][yA]が０である場合（ステップＳ６４０２のＮＯ）、ＬＸの参照インデックスrefIdxLXを０に設定する（ステップＳ６４０４）。
【０１２８】
なお、本実施の形態の実施例４においては、左の辺に隣接する予測ブロックＡ１の参照インデックスrefIdxLX[xA][yA]を利用してＬＸの参照インデックスrefIdxLXを導出するものとして説明したが、左の辺に隣接する予測ブロックＡ１の代わりに、上の辺に隣接する予測ブロックＢ１の参照インデックスrefIdxLX[xB][yB]を利用してＬＸの参照インデックスを導出することもできる。
【０１２９】
（実施例５）
次に、本実施の形態の実施例５について説明する。本実施の形態の実施例５においては、Ｌ０の参照ピクチャがＬ１にも含まれる場合、Ｌ０の参照ピクチャをＬ１の参照ピクチャとしても用いるために、Ｌ１の参照インデックスをＬ０の参照インデックスに対応する参照ピクチャを指し示す値に設定し、Ｌ０の参照ピクチャがＬ１には含まれない場合、Ｌ１の参照ピクチャはデフォルト値の０に設定する。Ｌ０の参照ピクチャをＬ１の参照ピクチャとしても用いることにより、同一参照によるインター予測を行う。
【０１３０】
図１９は本実施の形態の実施例５の方法による符号化／復号対象の予測ブロックの双予測でのＬＸ（ＬＸは導出対象の参照リスト）の参照インデックスrefIdxLXの導出処理手順を説明するフローチャートである。
続いて、ＬＹ（ＬＹは導出対象とは反対の参照リスト）の参照インデックスrefIdxLYに対応するＬＹの参照リストRefPicListYに登録されている参照ピクチャRefPicListY[refIdxLY]のＰＯＣを取得する（ステップＳ６５０１）。
【０１３１】
続いて、ＬＸの参照インデックスiを０に設定する（ステップＳ６５０２）。続いて、参照インデックスiがＬＸの参照インデックスの数に達するまで、ステップＳ６５０４の条件判断とステップＳ６５０６参照インデックスiの更新を繰り返す（ステップＳ６５０３〜Ｓ６５０７）。参照インデックスiに対応するＬＸの参照リストRefPicListXに登録されているＬＸの参照ピクチャRefPicListX[i]のＰＯＣがＬＹ（ＬＹは導出対象とは反対の参照リスト）の参照インデックスrefIdxLYに対応するＬＹの参照リストRefPicListYに登録されている参照ピクチャRefPicListY[refIdxLY]のＰＯＣと同じ値かどうかを判断し、同じ値の場合（ステップＳ６５０４のＹＥＳ）、ＬＸの参照インデックスrefIdxLXを参照インデックスiと同じ値に設定し（ステップＳ６５０５）、本導出処理を終了する。異なる値の場合（ステップＳ６５０４のＮＯ）、ＬＸの参照インデックスrefIdxLXを参照インデックスiに１を加算して更新する（ステップＳ６５０６）。
ステップＳ６５０３からＳ６５０７までの繰り返し処理を終了し、ＬＸの参照インデックスが設定されていない場合、refIdxLXをデフォルト値の０に設定し、本導出処理を終了する。
【０１３２】
（実施例６）
次に、本実施の形態の実施例６について説明する。本実施の形態の実施例６においては、Ｌ０の参照ピクチャをＬ１の参照ピクチャとしても用いる同一参照による双予測を行うかどうかを切り替える。この切り替えにおいてはＬ０とＬ１が共に前方向予測を行うスライス場合は、同一参照ピクチャによる双予測を行うために、実施例５と同様の参照ピクチャ導出処理を行い、Ｌ０では前方向予測、Ｌ１では後方向予測を行うスライスの場合は、前後の参照ピクチャによる双予測を行うために、参照インデックスを０とする。
【０１３３】
図２０は本実施の形態の実施例６の方法による符号化／復号対象の予測ブロックの双予測でのＬＸ（ＬＸは導出対象の参照リスト）の参照インデックスrefIdxLXの導出処理手順を説明するフローチャートである。図２０の参照インデックス導出処理は図１９の参照ピクチャ導出処理とは、ステップＳ６５００の条件判断が追加されている点が異なり、それ以外のステップの処理は同じである。そこで、図１９の参照ピクチャ導出処理と異なるステップＳ６５００についてのみ説明する。
【０１３４】
同一参照ピクチャによる双予測を行わない場合（ステップＳ６５００のＮＯ）、参照インデックスを０に設定して（ステップ６５０８）、本導出処理を終了する。同一参照ピクチャによる双予測を行う場合（ステップＳ６５００のＹＥＳ）、ステップＳ６５０１以降の図１９と同様の処理を行う。
【０１３５】
同一参照ピクチャによる双予測を行うかどうかは、同一参照ピクチャによる双予測を行うかどうかを示すフラグsameRefPicFlagを用意し、例えば、Ｌ０とＬ１が共に前方向予測を行うスライス場合は、同一参照ピクチャによる双予測を行うために、フラグsameRefPicFlagを１に設定し、Ｌ０では前方向予測、Ｌ１では後方向予測を行うスライスの場合は、前後の参照ピクチャによる双予測を行うために、フラグsameRefPicFlagを０に設定する。さらに、同一参照ピクチャによる双予測を行うかどうかを示すフラグsameRefPicFlagを符号化／復号するためのシンタックス要素same_ref_pic_flagをスライスヘッダーに用意して符号化／復号することで符号化側／復号側共に判別することができる。
【０１３６】
次に、図１の動画像符号化装置の差分動きベクトル導出部１０３及び図２の動画像復号装置の動きベクトル導出部２０４において実施される動きベクトルの予測方法を図面を用いて説明する。動きベクトルの予測方法は、符号化ブロックを構成する予測ブロック単位に、符号化及び復号の処理の何れでも実施される。予測ブロックの予測モードがインター予測（MODE_INTER）で、マージモードでない場合に、符号化の場合、符号化対象の動きベクトルから符号化する差分動きベクトルを算出する時に用いる符号化済みの動きベクトルを利用して予測動きベクトルを導出する際、復号の場合、復号対象の動きベクトルを算出する時に用いる復号済みの動きベクトルを利用して予測動きベクトルを導出する際に実施される。
【０１３７】
（符号化における動きベクトルの予測）
動画像符号化装置において、実施の形態に係る差分動きベクトルの導出方法の動作を説明する。動きベクトルの予測方法は、スライス単位で動き補償予測を行う場合、即ちスライスタイプがＰスライス（片方向予測スライス）或いはＢスライス（両方向予測スライス）の場合で、更に、スライスの中の予測ブロックの予測モードがインター予測（MODE_INTER）で、マージモードでない差分動きベクトルを符号化する予測ブロックに適用される。
【０１３８】
図２１は、図１の動画像符号化装置の差分動きベクトル導出部１０３の詳細な構成を示す図である。図２１の太枠線で囲まれる部分は差分動きベクトル導出部１０３を示している。
【０１３９】
更に、その内部の太点線で囲まれる部分は後述する動きベクトルの予測方法の動作部を示しており、実施の形態の動画像符号化装置と対応する動画像復号装置にも同様に設置され、符号化と復号で矛盾しない同一の判定結果を得られるようにしている。以下、この図を用いて、符号化における動きベクトルの予測方法を説明する。
【０１４０】
差分動きベクトル導出部１０３は、予測動きベクトル候補生成部１２１、予測動きベクトル候補登録部１２２、予測動きベクトル冗長候補削除部１２３、予測動きベクトル候補数制限部１２４、予測動きベクトル候補符号量算出部１２５、予測動きベクトル選択部１２６、および動きベクトル減算部１２７を含む。
【０１４１】
この差分動きベクトル導出部１０３での差分動きベクトル算出処理は、符号化対象ブロックで選択されたインター予測方法で用いる動きベクトルの差分動きベクトルをＬ０、Ｌ１毎にそれぞれ算出する。具体的には符号化対象ブロックの予測モードPredModeがインター予測（MODE_INTER）で、符号化対象ブロックのインター予測モードがＬ０予測（Pred_L0）の場合、Ｌ０の予測動きベクトルリストmvpListL0を算出して、予測動きベクトルmvpL0を選択し、Ｌ０の動きベクトルの差分動きベクトルmvdL0を算出する。符号化対象ブロックのインター予測モード（Pred_L1）がＬ１予測の場合、Ｌ１の予測動きベクトルリストmvpListL1を算出して、予測動きベクトルmvpL1を選択し、Ｌ１の動きベクトルの差分動きベクトルmvdL1を算出する。符号化対象ブロックのインター予測モードが双予測（Pred_BI）の場合、Ｌ０予測とＬ１予測が共に行われ、Ｌ０の予測動きベクトルリストmvpListL0を構築して、Ｌ０の予測動きベクトルmvpL0を選択してＬ０の予測動きベクトルインデックスmvpIdxL0を決定し、Ｌ０の動きベクトルmvL0の差分動きベクトルmvdL0を算出するとともに、Ｌ１の予測動きベクトルリストmvpListL1を構築して、Ｌ１の予測動きベクトルmvpL1を選択してＬ１の予測動きベクトルインデックスmvpIdxL1を決定し、Ｌ１の動きベクトルmvL1の差分動きベクトルmvdL1をそれぞれ算出する。なお、本実施の形態においては、インター予測モードが双予測において、スライス毎、または符号化対象の予測ブロックのサイズに応じて、Ｌ１予測のインター予測情報を符号化するかどうかを切り替える。切り替える対象となるインター予測情報として双予測でのＬ１の差分動きベクトルmvdL1が含まれる場合で、双予測でのＬ１の差分動きベクトルmvdL1を符号化しない場合、双予測でのＬ１の差分動きベクトルmvdL1は（０，０）に設定される。切り替える対象となるインター予測情報として双予測でのＬ１の予測動きベクトルインデックスmvpIdxL1が含まれる場合で、双予測でのＬ１の予測動きベクトルインデックスmvpIdxL1を符号化しない場合、双予測でのＬ１の予測動きベクトルインデックスmvpIdxL1はＬ０の予測動きベクトルインデックスmvpIdxL0と同じ値に設定される。
【０１４２】
Ｌ０、Ｌ１それぞれについて、差分動きベクトル算出処理を行うが、Ｌ０、Ｌ１ともに共通の処理となる。したがって、以下の説明においてはＬ０、Ｌ１を共通のＬＸとして表す。Ｌ０の差分動きベクトルを算出する処理ではＸが０であり、Ｌ１の差分動きベクトルを算出する処理ではＸが１である。また、ＬＸの差分動きベクトルを算出する処理中に、ＬＸではなく、もう一方のリストの情報を参照する場合、もう一方のリストをＬＹとして表す。
【０１４３】
予測動きベクトル候補生成部１２１は、Ｌ０、Ｌ１毎に、上側に隣接する予測ブロックグループ（符号化対象の予測ブロックと同一ピクチャ内でその予測ブロックの左側に隣接する予測ブロックグループ：図５のＡ０，Ａ１）、左側に隣接する予測ブロックグループ（符号化対象の予測ブロックと同一ピクチャ内でその予測ブロックの上側に隣接する予測ブロックグループ：図５のＢ０，Ｂ１，Ｂ２）、異なる時間の予測ブロックグループ（符号化対象の予測ブロックと時間的に異なるピクチャ内でその予測ブロックと同一位置あるいはその近傍の位置に存在する既に符号化済みの予測ブロックグループ：図９のＴ０，Ｔ１）の３つの予測ブロックグループから、予測ブロックグループごとに１つの動きベクトルmvLXA、mvLXB、mvLXColをそれぞれ導出して予測動きベクトル候補とし、予測動きベクトル候補登録部１２２に供給する。以下、mvLXA及びmvLXBを空間的な予測動きベクトル、mvLXColを時間的な予測動きベクトルと呼ぶ。この予測動きベクトル候補の算出に際しては、符号化情報格納メモリ１１４に格納されている符号化済みの予測ブロックの予測モード、参照リスト毎の参照インデックス、参照ピクチャのＰＯＣ、動きベクトル等の符号化情報を用いる。
【０１４４】
これらの予測動きベクトルの候補mvLXA、mvLXB、mvLXColは符号化対象ピクチャのＰＯＣと参照ピクチャのＰＯＣとの関係に応じてスケーリングすることにより導出されることもある。
【０１４５】
予測動きベクトル候補生成部１２１は、各予測ブロックグループ毎に、所定の順序で、それぞれの予測ブロックグループ内の予測ブロックに対して、後述の条件判定を行い、最初に条件に合致した予測ブロックの動きベクトルを選択し、予測動きベクトルの候補mvLXA、mvLXB、mvLXColとする。
【０１４６】
左側に隣接する予測ブロックグループから予測動きベクトルを算出する際には、左側に隣接する予測ブロックグループの下から上の順序（図５のＡ０からＡ０，Ａ１の順序）で、上側に隣接する予測ブロックグループから予測動きベクトルを算出する際には、上側に隣接する予測ブロックグループの右から左の順序（図５のＢ０からＢ０，Ｂ１，Ｂ２の順序）で、異なる時間の予測ブロックグループから予測動きベクトルを算出する際には、図９のＴ０からＴ０，Ｔ１の順序で、各予測ブロックに対して、後述の条件判定を行い、最初に条件に合致した予測ブロックの動きベクトルを選択し、予測動きベクトルの候補をそれぞれmvLXA、mvLXB、mvLXColとする。
【０１４７】
即ち、左側の隣接予測ブロックグループでは、一番下の予測ブロックが最も優先順位が高く、下から上に向かって優先順位が付けられており、上側の隣接予測ブロックグループでは、一番右の予測ブロックが最も優先順位が高く、右から左に向かって優先順位が付けられている。異なる時間の予測ブロックグループでは、Ｔ０の予測ブロックが最も優先順位が高く、Ｔ０，Ｔ１の順に優先順位が付けられている。
【０１４８】
（空間予測ブロックの条件判定のループの説明）
左側の隣接予測ブロックグループ、及び上側の隣接予測ブロックグループの各隣接予測ブロックに対しては、後述するスキャン方法１、２、３、４では、下記の条件判定１、２、３、４の優先順序でそれぞれの条件判定が適用される。ただし、後述するスキャン方法５のみ例外として、条件判定１、３、２、４の優先順序でそれぞれの条件判定が適用される。
条件判定１：符号化／復号対象の予測ブロックの差分動きベクトル算出対象のＬＸの動きベクトルと同じ参照リストＬＸで、同じ参照インデックス、すなわち同じ参照ピクチャを用いた予測が隣接予測ブロックでも行われている。
条件判定２：符号化／復号対象の予測ブロックの差分動きベクトル算出対象のＬＸの動きベクトルとは異なる参照リストＬＹであるが、同じ参照ピクチャを用いた予測が隣接予測ブロックで行われている。
条件判定３：符号化／復号対象の予測ブロックの差分動きベクトル算出対象のＬＸの動きベクトルと同じ参照リストＬＸで、異なる参照ピクチャを用いた予測が隣接予測ブロックで行われている。
条件判定４：符号化／復号対象の予測ブロックの差分動きベクトル算出対象のＬＸの動きベクトルとは異なる参照リストＬＹで、異なる参照ピクチャを用いた予測が隣接予測ブロックで行われている。
【０１４９】
これらの条件のいずれかに一致した場合、当該予測ブロックには条件に合致する動きベクトルは存在すると判断し、後に続く条件判定は行わない。なお、条件判定１または条件判定２の条件に合致した場合、該当する隣接予測ブロックの動きベクトルは同じ参照ピクチャに対応するものであるので、そのまま予測動きベクトルの候補とするが、条件判定３または条件判定４の条件に合致した場合、該当する隣接予測ブロックの動きベクトルは異なる参照ピクチャに対応するものであるので、その動きベクトルを基にスケーリングにより算出して予測動きベクトルの候補とする。
【０１５０】
空間予測ブロックのスキャンのループの仕方として、上記の４つの条件判定の進め方によって、下記の５通りの方法を設定することができる。それぞれの方法によって予測ベクトルの相応しさと最大処理量が異なり、それらを考慮してこれらの方法から選択し設定する。スキャン方法１については、図２６〜図３０のフローチャートを用いて詳しく後述するが、他のスキャン方法２〜５についても、当業者であればスキャン方法２〜５を実施する手順についてはスキャン方法１を実施する手順に準じて適宜設計できる事項であるから、詳しい説明を省略する。なお、ここでは動画像符号化装置における空間予測ブロックのスキャンのループ処理を説明するが、同様の処理は動画像復号装置においても可能である。
【０１５１】
スキャン方法１：
同じ参照ピクチャを用いたスケーリング演算が不要な予測動きベクトルの判定を優先し、４つの条件判定のうち予測ブロック毎に２つの条件判定を行い、条件を満たさなければ、隣の予測ブロックの条件判定に移る。最初の周回では条件判定１と条件判定２の条件判定を行い、次の予測ブロックの周回では条件判定３と条件判定４の条件判定を行う。
【０１５２】
具体的には以下の優先順序で条件判定を行う。（ただし、ＮはＡまたはＢ）
１．予測ブロックＮ０の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）
２．予測ブロックＮ０の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）
３．予測ブロックＮ１の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）
４．予測ブロックＮ１の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）
５．予測ブロックＮ２の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）、上側に隣接する予測ブロックグループのみ
６．予測ブロックＮ２の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）、上側に隣接する予測ブロックグループのみ
７．予測ブロックＮ０の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）
８．予測ブロックＮ０の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）
９．予測ブロックＮ１の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）
１０．予測ブロックＮ１の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）
１１．予測ブロックＮ２の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）、上側に隣接する予測ブロックグループのみ
１２．予測ブロックＮ２の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）、上側に隣接する予測ブロックグループのみ
【０１５３】
スキャン方法１によれば、同じ参照ピクチャを用いたスケーリング演算が不要な予測動きベクトルが選ばれやすいので、差分動きベクトルの符号量が小さくなる可能性が高くなる効果がある。また、条件判定の周回数が最大２回となるので、ハードウェアへの実装を考慮した際に予測ブロックの符号化情報へのメモリアクセス回数が後述するスキャン方法２に比べて少なくなり、複雑性が低減される。
【０１５４】
スキャン方法２：
４つの条件判定のうち予測ブロック毎に１つの条件判定を行い、条件を満たさなければ、隣の予測ブロックの条件判定に移る。予測ブロック毎に条件判定を４周したら終了する。
【０１５５】
具体的には以下の優先順序で条件判定を行う。（ただし、ＮはＡまたはＢ）
１．予測ブロックＮ０の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）
２．予測ブロックＮ１の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）
３．予測ブロックＮ２の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）、上側に隣接する予測ブロックグループのみ
４．予測ブロックＮ０の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）
５．予測ブロックＮ１の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）
６．予測ブロックＮ２の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）、上側に隣接する予測ブロックグループのみ
７．予測ブロックＮ０の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）
８．予測ブロックＮ１の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）
９．予測ブロックＮ２の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）、上側に隣接する予測ブロックグループのみ
１０．予測ブロックＮ０の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）
１１．予測ブロックＮ１の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）
１２．予測ブロックＮ２の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）、上側に隣接する予測ブロックグループのみ
【０１５６】
スキャン方法２によれば、同じ参照ピクチャを用いたスケーリング演算が不要な予測動きベクトルが選ばれやすいので、差分動きベクトルの符号量が小さくなる可能性が高くなる効果がある。また、条件判定の周回数が最大４回となり、ハードウェアへの実装を考慮した際に予測ブロックの符号化情報へのメモリアクセス回数がスキャン方法１に比べて多くなるが、同じ参照リストの予測動きベクトルが選ばれやすくなる。
【０１５７】
スキャン方法３：
最初の周回では予測ブロック毎に条件判定１の条件判定を行い条件を満たさなければ、隣の予測ブロックの条件判定に移る。次の周回では予測ブロック毎に条件判定２、条件判定３条件判定４順序で条件判定を行ってから隣に移る。
【０１５８】
具体的には以下の優先順序で条件判定を行う。（ただし、ＮはＡまたはＢ）
１．予測ブロックＮ０の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）
２．予測ブロックＮ１の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）
３．予測ブロックＮ２の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）、上側に隣接する予測ブロックグループのみ
４．予測ブロックＮ０の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）
５．予測ブロックＮ０の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）
６．予測ブロックＮ０の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）
７．予測ブロックＮ１の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）
８．予測ブロックＮ１の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）
９．予測ブロックＮ１の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）
１０．予測ブロックＮ２の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）、上側に隣接する予測ブロックグループのみ
１１．予測ブロックＮ２の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）、上側に隣接する予測ブロックグループのみ
１２．予測ブロックＮ２の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）、上側に隣接する予測ブロックグループのみ
【０１５９】
スキャン方法３によれば、同じ参照リストで同じ参照ピクチャを用いたスケーリング演算が不要な予測動きベクトルが選ばれやすいので、差分動きベクトルの符号量が小さくなる可能性が高くなる効果がある。また、条件判定の周回数が最大２回となるので、ハードウェアへの実装を考慮した際に予測ブロックの符号化情報へのメモリアクセス回数がスキャン方法２に比べて少なくなり、複雑性が低減される。
【０１６０】
スキャン方法４：
同じ予測ブロックの条件判定を優先し、１つの予測ブロック内で４つの条件判定を行い、すべての条件に合致しない場合、当該予測ブロックには条件に合致する動きベクトルは存在しないものと判断し、次の予測ブロックの条件判定を行う。
【０１６１】
具体的には以下の優先順序で条件判定を行う。（ただし、ＮはＡまたはＢ）
１．予測ブロックＮ０の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）
２．予測ブロックＮ０の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）
３．予測ブロックＮ０の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）
４．予測ブロックＮ０の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）
５．予測ブロックＮ１の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）
６．予測ブロックＮ１の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）
７．予測ブロックＮ１の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）
８．予測ブロックＮ１の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）
９．予測ブロックＮ２の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）、上側に隣接する予測ブロックグループのみ
１０．予測ブロックＮ２の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）、上側に隣接する予測ブロックグループのみ
１１．予測ブロックＮ２の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）、上側に隣接する予測ブロックグループのみ
１２．予測ブロックＮ２の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）、上側に隣接する予測ブロックグループのみ
【０１６２】
スキャン方法４によれば、条件判定の周回数が最大でも１回となるので、ハードウェアへの実装を考慮した際に予測ブロックの符号化情報へのメモリアクセス回数がスキャン方法１、スキャン方法２、スキャン方法３に比べて少なくなり、複雑性が低減される。
【０１６３】
スキャン方法５：
スキャン方法４と同様に、同じ予測ブロックの条件判定を優先し、１つの予測ブロック内で４つの条件判定を行い、すべての条件に合致しない場合、当該予測ブロックには条件に合致する動きベクトルは存在しないものと判断し、次の予測ブロックの条件判定を行う。ただし、予測ブロック内の条件判定においては、スキャン方法４は同じ参照ピクチャであることをより優先しているが、スキャン方法５は同じ参照リストであることを優先する。
【０１６４】
具体的には以下の優先順序で条件判定を行う。（ただし、ＮはＡまたはＢ）
１．予測ブロックＮ０の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）
２．予測ブロックＮ０の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）
３．予測ブロックＮ０の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）
４．予測ブロックＮ０の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）
５．予測ブロックＮ１の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）
６．予測ブロックＮ１の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）
７．予測ブロックＮ１の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）
８．予測ブロックＮ１の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）
９．予測ブロックＮ２の条件判定１（同じ参照リストＬＸ、同じ参照ピクチャ）、上側に隣接する予測ブロックグループのみ
１０．予測ブロックＮ２の条件判定３（同じ参照リストＬＸ、異なる参照ピクチャ）、上側に隣接する予測ブロックグループのみ
１１．予測ブロックＮ２の条件判定２（異なる参照リストＬＹ、同じ参照ピクチャ）、上側に隣接する予測ブロックグループのみ
１２．予測ブロックＮ２の条件判定４（異なる参照リストＬＹ、異なる参照ピクチャ）、上側に隣接する予測ブロックグループのみ
【０１６５】
スキャン方法５によれば、さらに、スキャン方法４に比べて予測ブロックの参照リストの参照回数を減らすことができ、メモリへのアクセス回数、条件判定等の処理量を削減することにより複雑性を低減することができる。また、スキャン方法４と同様に、条件判定の周回数が最大でも１回となるので、ハードウェアへの実装を考慮した際に予測ブロックの符号化情報へのメモリアクセス回数がスキャン方法１、スキャン方法２、スキャン方法３に比べて少なくなり、複雑性が低減される。
【０１６６】
次に、予測動きベクトル候補登録部１２２は算出された予測動きベクトルの候補mvLXA、mvLXB、mvLXColを予測動きベクトルリストmvpListLXに格納する。
【０１６７】
次に、予測動きベクトル冗長候補削除部１２３は、ＬＸの予測動きベクトルリストmvpListLXに格納されたそれぞれの予測動きベクトルの候補の動きベクトルの値を比較し、予測動きベクトルの候補の中から同一の動きベクトルの値をもつものを判定し、同一の動きベクトル値をもつと判定された予測動きベクトルの候補について一つを残してそれ以外を予測動きベクトルリストmvpListLXから削除して、予測動きベクトルの候補が重複しないようにし、予測動きベクトルリストmvpListLXを更新する。ただし、規定された最終候補数finalNumMVPCandが１の場合、本冗長判定処理を省略することができる。
【０１６８】
予測動きベクトル候補数制限部１２４では、ＬＸの予測動きベクトルリストmvpListLXに登録されている予測動きベクトルの候補数をカウントし、ＬＸの予測動きベクトル候補数numMVPCandLXがカウントされた候補数の値に設定される。
【０１６９】
さらに、予測動きベクトル候補数制限部１２４では、ＬＸの予測動きベクトルリストmvpListLXに登録されているＬＸの予測動きベクトル候補数numMVPCandLXを規定された最終候補数finalNumMVPCandに制限する。
【０１７０】
本実施の形態においては、最終候補数finalNumMVPCandを規定している。なぜなら、予測動きベクトルリストに登録される予測動きベクトルの候補数が予測動きベクトルリストの構築状態に応じて変動すると、復号側では予測動きベクトルリストを構築してからでないと、予測動きベクトルインデックスをエントロピー復号することができないからである。さらに、エントロピー復号が異なる時間のピクチャの予測ブロックから導出された予測動きベクトル候補mvLXColを含む予測動きベクトルリストの構築状態に依存すると、別のピクチャの符号化ビット列の復号時にエラーが発生した際に現在のピクチャの符号化ビット列もそのエラーの影響を受けて正常にエントロピー復号を続けることができない問題がある。予測ブロックのサイズに応じて最終候補数finalNumMVPCandを固定した数に規定すると、予測動きベクトルリストの構築と独立して、予測動きベクトルインデックスをエントロピー復号することができるとともに、別のピクチャの符号化ビット列の復号時にエラーが発生してもその影響を受けずに現在のピクチャの符号化ビット列のエントロピー復号を続けることができる。
【０１７１】
予測動きベクトル候補数制限部１２４では、ＬＸの予測動きベクトル候補数numMVPCandLXが規定された最終候補数finalNumMVPCandより小さい場合、予測動きベクトル候補数numMVPCandLXが最終候補数finalNumMVPCandと同じ値になるまで、（０，０）の値を持つ動きベクトルを予測動きベクトルリストmvpListLXに追加することで予測動きベクトルの候補数を規定値に制限する。この場合、重複して（０，０）の値を持つ動きベクトルが追加されることがあるが、復号側では予測動きベクトルインデックスが０から（規定の候補数−１）の範囲内でどのような値をとっても、予測動きベクトルを確定することができる。一方、ＬＸの予測動きベクトル候補数numMVPCandLXが規定された最終候補数finalNumMVPCandより大きい場合、予測動きベクトルリストmvpListLXからfinalNumMVPCand-1より大きいインデックスに登録されている要素をすべて削除し、ＬＸの予測動きベクトル候補数numMVPCandLXを最終候補数finalNumMVPCandと同じ値にすることで予測動きベクトルの候補数を規定値に制限する。更新された予測動きベクトルリストmvpListLXは予測動きベクトル候補符号量算出部１２５と予測動きベクトル選択部１２６に供給される。
【０１７２】
一方、図１の動きベクトル検出部１０２にて予測ブロック毎にＬＸ（Ｘ＝０または１）の動きベクトルmvLXが検出される。それらの動きベクトルmvLXは更新された予測動きベクトルリストmvpListLXの予測動きベクトルの候補とともに予測動きベクトル候補符号量算出部１２５に供給される。
【０１７３】
予測動きベクトル候補符号量算出部１２５は、ＬＸ（Ｘ＝０または１）の予測動きベクトルリストmvpListLXの中に格納されたそれぞれの予測動きベクトルの候補mvpListLX[i]ごとに動きベクトルmvLXとの差分動きベクトルを算出し、それら差分動きベクトルを符号化したときの符号量をそれぞれ算出し、予測動きベクトル選択部１２６に供給する。
【０１７４】
なお、本実施の形態においては、インター予測モードが双予測において、スライス毎、または符号化対象の予測ブロックのサイズに応じて、Ｌ１予測のインター予測情報を符号化するかどうかを切り替える。切り替える対象となるインター予測情報として双予測でのＬ１の差分動きベクトルmvdL1が含まれる場合で、双予測でのＬ１の差分動きベクトルmvdL1を符号化しない場合、双予測でのＬ１の差分動きベクトルmvdL1の符号量を０とする。切り替える対象となるインター予測情報として双予測でのＬ１の予測動きベクトルインデックスmvpIdxL1が含まれる場合で、双予測でのＬ１の予測動きベクトルインデックスmvpIdxL1を符号化しない場合、双予測でのＬ１の予測動きベクトルインデックスmvpIdxL1の符号量を０とする。
【０１７５】
予測動きベクトル選択部１２６は、ＬＸの予測動きベクトルリストmvpListLXに登録された各要素の中で、予測動きベクトルの候補毎の符号量が最小となる予測動きベクトルの候補mvpListLX[i]をＬＸの予測動きベクトルmvpLXとして選択する。予測動きベクトルリストmvpListLXの中で最小の発生符号量となる予測動きベクトルの候補が複数存在する場合には、予測動きベクトルリストmvpListLXの中のインデックスiが小さい番号で表される予測動きベクトルの候補mvpListLX[i]をＬＸの最適な予測動きベクトルmvpLXとして選択する。選択された予測動きベクトルmvpLXを動きベクトル減算部１２７に供給する。さらに、その選択された予測動きベクトルmvpLXに対応する予測動きベクトルリストmvpListLX中のインデックスiをＬＸの予測動きベクトルインデックスmvpIdxLXとして出力する。
【０１７６】
なお、本実施の形態においては、インター予測モードが双予測において、スライス毎、または符号化対象の予測ブロックのサイズに応じて、Ｌ１予測のインター予測情報を符号化するかどうかを切り替える。切り替える対象となるインター予測情報として双予測でのＬ１の予測動きベクトルインデックスmvpIdxL1が含まれる場合で、双予測でのＬ１の予測動きベクトルインデックスmvpIdxL1を符号化しない場合、双予測でのＬ１の予測動きベクトルインデックスmvpIdxL1はＬ０の予測動きベクトルインデックスmvpIdxL0と同じ値に設定され、出力される。
【０１７７】
最後に動きベクトル減算部１２７は、ＬＸの動きベクトルmvLXから選択されたＬＸの予測動きベクトルmvpLXを減算することによりＬＸの差分動きベクトルmvdLXを算出し、差分動きベクトルmvdLXを出力する。
mvdLX = mvLX - mvpLX
【０１７８】
なお、本実施の形態においては、インター予測モードが双予測において、スライス毎、または符号化対象の予測ブロックのサイズに応じて、Ｌ１予測のインター予測情報を符号化するかどうかを切り替える。切り替える対象となるインター予測情報として双予測でのＬ１の差分動きベクトルmvdL1が含まれる場合で、双予測でのＬ１の差分動きベクトルmvdL1を符号化しない場合、双予測でのＬ１の差分動きベクトルmvdL1は（０，０）に設定され、出力される。
【０１７９】
（復号における動きベクトルの予測）
上述のシンタックスに基づき、符号化された動画像のビットストリームを復号する動画像復号装置において、本発明に係る動きベクトルの導出方法の動作を説明する。
【０１８０】
実施の形態に係る動きベクトルの導出方法が実施される場合、図２の動画像復号装置の動きベクトル導出部２０４にて処理が行われる。図２２は、実施の形態の動画像符号化装置に対応する図２の動画像復号装置の動きベクトル導出部２０４の詳細な構成を示す図である。図２２の太枠線で囲まれる部分は動きベクトル導出部２０４を示している。更に、その内部の太点線で囲まれる部分は後述する動きベクトルの予測方法の動作部を示しており、対応する動画像符号化装置にも同様に設置され、符号化と復号で矛盾しない同一の判定結果を得られるようにしている。以下、この図を用いて、復号における動きベクトルの予測方法を説明する。
【０１８１】
本実施の形態においては、符号化側で説明した理由により、符号化側と同様に復号側でも、復号対象の予測ブロックのサイズに応じて、予測動きベクトルの最終候補数finalNumMVPCandを設定する。動きベクトル導出部２０４では、復号対象の輝度信号の予測ブロックのサイズが規定したサイズsizePUInterPredInfoCodingL1以下の場合、finalNumMVPCandを後者よりも小さい数に設定し、そうでない場合、finalNumMVPCandを前者よりも大きい数に設定する。本実施の形態においては、規定するサイズsizePUInterPredInfoCodingL1を8x8とし、復号対象の輝度信号の予測ブロックのサイズが規定したサイズsizePUInterPredInfoCodingL1以下の場合は、finalNumMVPCandを１に設定し、それ以外の場合は、finalNumMVPCandを２に設定する。
【０１８２】
動きベクトル導出部２０４は、予測動きベクトル候補生成部２２１、予測動きベクトル候補登録部２２２、予測動きベクトル冗長候補削除部２２３、予測動きベクトル候補数制限部２２４、予測動きベクトル選択部２２５及び動きベクトル加算部２２６を含む。
【０１８３】
この動きベクトル導出部２０４での動きベクトル導出処理は、インター予測で用いる動きベクトルをＬ０，Ｌ１毎にそれぞれ算出する。具体的には符号化対象ブロックの予測モードPredModeがインター予測（MODE_INTER）で、符号化対象ブロックのインター予測モードがＬ０予測（Pred_L0）の場合、Ｌ０の予測動きベクトルリストmvpListL0を構築して、Ｌ０の予測動きベクトルインデックスmvpIdxL0が示す予測動きベクトルmvpL0を選択し、Ｌ０の差分動きベクトルmvdL0を加算して、Ｌ０の動きベクトルmvL0を算出する。符号化対象ブロックのインター予測モードがＬ１予測（Pred_L1）の場合、Ｌ１の予測動きベクトルリストmvpListL1を構築して、Ｌ１の予測動きベクトルインデックスmvpIdxL1が示す予測動きベクトルmvpL1を選択し、Ｌ１の差分動きベクトルmvdL1を加算して、Ｌ１の動きベクトルmvL1を算出する。符号化対象ブロックのインター予測モードが双予測（Pred_BI）の場合、Ｌ０予測とＬ１予測が共に行われ、Ｌ０の予測動きベクトルリストmvpListL0を構築して、Ｌ０の予測動きベクトルインデックスmvpIdxL0が示すＬ０の予測動きベクトルmvpL0を選択し、Ｌ０の差分動きベクトルmvdL0を加算して、Ｌ０の動きベクトルmvL0を算出するとともに、Ｌ１の予測動きベクトルリストmvpListL1を構築して、Ｌ１の予測動きベクトルインデックスmvpIdxL1が示すＬ１の予測動きベクトルmvpL1を算出し、Ｌ１の差分動きベクトルmvdL1を加算して、Ｌ１の動きベクトルmvL1をそれぞれ算出する。なお、本実施の形態においては、インター予測モードが双予測において、スライス毎、または符号化対象の予測ブロックのサイズに応じて、Ｌ１予測のインター予測情報を復号するかどうかを切り替える。切り替える対象となるインター予測情報として双予測でのＬ１の差分動きベクトルmvdL1が含まれる場合で、双予測でのＬ１の差分動きベクトルmvdL1を復号しない場合、第１符号化ビット列復号部２０２で双予測でのＬ１の差分動きベクトルmvdL1は（０，０）に設定され、動きベクトル導出部２０４に供給される。切り替える対象となるインター予測情報として双予測でのＬ１の予測動きベクトルインデックスmvpIdxL1が含まれる場合で、双予測でのＬ１の予測動きベクトルインデックスmvpIdxL1を復号しない場合、第１符号化ビット列復号部２０２で双予測でのＬ１の予測動きベクトルインデックスmvpIdxL1はＬ０の予測動きベクトルインデックスmvpIdxL0と同じ値に設定され、動きベクトル導出部２０４に供給される。
【０１８４】
符号化側と同様に、復号側でもＬ０、Ｌ１それぞれについて、動きベクトル算出処理を行うが、Ｌ０、Ｌ１ともに共通の処理となる。したがって、以下の説明においてはＬ０、Ｌ１を共通のＬＸとして表す。Ｌ０の動きベクトルを算出する処理ではＸが０であり、Ｌ１の動きベクトルを算出する処理ではＸが１である。また、ＬＸの動きベクトルを算出する処理中に、ＬＸではなく、もう一方のリストの情報を参照する場合、もう一方のリストをＬＹとして表す。
【０１８５】
動きベクトル導出部２０４の中の予測動きベクトル候補生成部２２１、予測動きベクトル候補登録部２２２、予測動きベクトル冗長候補削除部２２３及び予測動きベクトル候補数制限部２２４は、符号化側の差分動きベクトル導出部１０３の中の予測動きベクトル候補生成部１２１、予測動きベクトル候補登録部１２２及び予測動きベクトル冗長候補削除部１２３、予測動きベクトル候補数制限部１２４とそれぞれ同じ動作をするように規定することにより、符号化と復号で矛盾しない同一の予測動きベクトルの候補を符号化側及び復号側で得ることができる。
【０１８６】
予測動きベクトル候補生成部２２１は、図２１の符号化側の予測動きベクトル候補生成部１２１と同一の処理を行う。復号して符号化情報格納メモリ２０９に記録されていた、復号対象ブロックと同一ピクチャ内の復号対象ブロックと隣接する復号済みの予測ブロック及び異なるピクチャ内の復号対象ブロックと同一位置あるいはその近傍の位置に存在する復号済みの予測ブロック等の動きベクトルを符号化情報格納メモリ２０９から読み出す。符号化情報格納メモリ２０９から読み出された復号済みの他のブロックの動きベクトルから予測ブロックグループごとに予測動きベクトルの候補mvLXA、mvLXB、mvLXColを生成し、予測動きベクトル候補登録部２２２に供給する。
【０１８７】
これらの予測動きベクトルの候補mvLXA、mvLXB、mvLXColは参照インデックスに応じてスケーリングすることにより算出されることもある。なお、予測動きベクトル候補生成部２２１は、図２１の符号化側の予測動きベクトル候補生成部１２１と同一の処理を行うので、図２１の符号化側の予測動きベクトル候補生成部１２１で説明した予測動きベクトルを算出するためのスキャン方法１、２、３、４、５の条件判定は予測動きベクトル候補生成部２２１でも適用できるものとし、ここでは詳細な説明は省略する。
【０１８８】
次に、予測動きベクトル候補登録部２２２は図２１の符号化側の予測動きベクトル候補登録部１２２と同一の処理を行う。算出された予測動きベクトルの候補mvLXA、mvLXB、mvLXColをＬＸの予測動きベクトルリストmvpListLXに格納する。
【０１８９】
次に、予測動きベクトル冗長候補削除部２２３は、図２１の符号化側の予測動きベクトル冗長候補削除部１２３と同一の処理を行う。ＬＸの予測動きベクトルリストmvpListLXに格納された予測動きベクトルの候補の中から同一の動きベクトルの値をもつものを判定し、同一の動きベクトル値をもつと判定された予測動きベクトルの候補について一つを残してそれ以外を予測動きベクトルリストmvpListLXから削除して、予測動きベクトルの候補が重複しないようにし、予測動きベクトルリストmvpListLXを更新する。
【０１９０】
次に、予測動きベクトル候補数制限部２２４は、図２１の符号化側の予測動きベクトル候補数制限部１２４と同一の処理を行う。予測動きベクトル候補数制限部２２４では、予測動きベクトルリストmvpListLXに登録されている要素数をカウントし、ＬＸの予測動きベクトル候補数numMVPCandLXがカウントされた候補数の値に設定される。
【０１９１】
さらに、予測動きベクトル候補数制限部２２４では、符号化側で説明した理由により予測動きベクトルリストmvpListLXに登録されているＬＸの予測動きベクトル候補数numMVPCandLXを規定された最終候補数finalNumMVPCandに制限する。ＬＸの予測動きベクトル候補数numMVPCandLXが規定された最終候補数finalNumMVPCandより小さい場合、予測動きベクトル候補数numMVPCandLXが最終候補数finalNumMVPCandと同じ値になるまで、（０，０）の値を持つ動きベクトルを予測動きベクトルリストmvpListLXに追加することで予測動きベクトルの候補数を規定値に制限する。この場合、重複して（０，０）の値を持つ動きベクトルが追加されることがあるが、復号側では予測動きベクトルインデックスが０から規定値−１の範囲内でどのような値をとっても、予測動きベクトルを確定することができる。一方、ＬＸの予測動きベクトル候補数numMVPCandLXが規定された最終候補数finalNumMVPCandより大きい場合、予測動きベクトルリストmvpListLXからfinalNumMVPCand-1より大きいインデックスに登録されている要素をすべて削除し、ＬＸの予測動きベクトル候補数numMVPCandLXを最終候補数finalNumMVPCandと同じ値にすることで予測動きベクトルの候補数を規定値に制限する。更新された予測動きベクトルリストmvpListLXは予測動きベクトル選択部２２５に供給される。
【０１９２】
一方、第１符号化ビット列復号部２０２にて復号された予測ブロック毎のＬＸ（Ｘ＝０または１）の差分動きベクトルmvdLXが動きベクトル加算部２２６に供給される。第１符号化ビット列復号部２０２にて復号されたＬＸの予測動きベクトルの予測動きベクトルインデックスmvpIdxLXが予測動きベクトル選択部２２５に供給される。
【０１９３】
予測動きベクトル選択部２２５は、第１符号化ビット列復号部２０２にて復号されたＬＸの予測動きベクトルインデックスmvpIdxLXが供給され、供給されたインデックスmvpIdxLXに対応する予測動きベクトルの候補mvpListLX[mvpIdxLX]をＬＸの予測動きベクトルmvpLXとして予測動きベクトルリストmvpListLXから取り出す。供給された予測動きベクトルの候補を予測動きベクトルmvpLXとして動きベクトル加算部２２６に供給する。
【０１９４】
最後に動きベクトル加算部２２６は、第１符号化ビット列復号部２０２にて復号されて供給されるＬＸの差分動きベクトルmvdLXとＬＸの予測動きベクトルmvpLXを加算することによりＬＸの動きベクトルmvLXを算出し、動きベクトルmvLXを出力する。
mvLX = mvpLX + mvdLX
【０１９５】
なお、本実施の形態においては、インター予測モードが双予測において、スライス毎、または符号化対象の予測ブロックのサイズに応じて、Ｌ１予測のインター予測情報を復号するかどうかを切り替える。切り替える対象となるインター予測情報として双予測でのＬ１の差分動きベクトルmvdL1が含まれる場合で、双予測でのＬ１の差分動きベクトルmvdL1を復号しない場合、第１符号化ビット列復号部２０２で双予測でのＬ１の差分動きベクトルmvdL1は（０，０）に設定され、動きベクトル導出部２０４に供給されるので、Ｌ１の動きベクトルmvL1はＬ１の予測動きベクトルmvpL1の値と同じになる。
【０１９６】
以上のようにして、予測ブロック毎にＬＸの動きベクトルmvLXが算出される。この動きベクトルを使用して動き補償により予測画像信号が生成され、復号された予測残差信号と加算されることで復号画像信号が生成される。
【０１９７】
フローチャート
次に、動画像符号化装置の差分動きベクトル導出部１０３、動画像復号装置の動きベクトル導出部２０４の処理手順について、それぞれ図２３、図２４のフローチャートを用いて説明する。図２３は動画像符号化装置による差分動きベクトル算出処理手順を示すフローチャートであり、図２４は動画像復号装置による動きベクトル算出処理手順を示すフローチャートである。
【０１９８】
図２３を参照して符号化側の差分動きベクトル算出処理手順を説明する。符号化側では、まず、差分動きベクトル導出部１０３で、符号化対象ブロックで選択されたインター予測で用いる動きベクトルの差分動きベクトルをＬ０、Ｌ１毎にそれぞれ算出する（Ｓ１０１〜Ｓ１０６）。具体的には符号化対象ブロックの予測モードPredModeがインター予測（MODE_INTER）で、インター予測モードがＬ０予測（Pred_L0）の場合、Ｌ０の予測動きベクトルリストmvpListL0を算出して、予測動きベクトルmvpL0を選択し、Ｌ０の動きベクトルmvL0の差分動きベクトルmvdL0を算出する。符号化対象ブロックのインター予測モードがＬ１予測（Pred_L1）の場合、Ｌ１の予測動きベクトルリストmvpListL1を算出して、予測動きベクトルmvpL1を選択し、Ｌ１の動きベクトルmvL1の差分動きベクトルmvdL1を算出する。符号化対象ブロックのインター予測モードが双予測（Pred_BI）の場合、Ｌ０予測とＬ１予測が共に行われ、Ｌ０の予測動きベクトルリストmvpListL0を算出して、Ｌ０の予測動きベクトルmvpL0を選択し、Ｌ０の動きベクトルmvL0の差分動きベクトルmvdL0を算出するとともに、Ｌ１の予測動きベクトルリストmvpListL1を算出して、Ｌ１の予測動きベクトルmvpL1を算出し、Ｌ１の動きベクトルmvL1の差分動きベクトルmvdL1をそれぞれ算出する。
【０１９９】
Ｌ０、Ｌ１それぞれについて、差分動きベクトル算出処理を行うが、Ｌ０、Ｌ１ともに共通の処理となる。したがって、以下の説明においてはＬ０、Ｌ１を共通のＬＸとして表す。Ｌ０の差分動きベクトルを算出する処理ではＸが０であり、Ｌ１の差分動きベクトルを算出する処理ではＸが１である。また、ＬＸの差分動きベクトルを算出する処理中に、ＬＸではなく、もう一方のリストの情報を参照する場合、もう一方のリストをＬＹとして表す。
【０２００】
ＬＸの差分動きベクトルmvdLXを算出する場合（Ｓ１０２のＹＥＳ）、ＬＸの予測動きベクトルの候補を算出してＬＸの予測動きベクトルリストmvpListLXを構築する（Ｓ１０３）。差分動きベクトル導出部１０３の中の予測動きベクトル候補生成部１２１で複数の予測動きベクトルの候補を算出し、予測動きベクトル候補登録部１２２で予測動きベクトルリストmvpListLXに算出した予測動きベクトルの候補を追加し、予測動きベクトル冗長候補削除部１２３で不要な予測動きベクトルの候補を削除し、予測動きベクトル候補数制限部１２４で予測動きベクトルリストmvpListLXに登録されているＬＸの予測動きベクトル候補数numMVPCandLXが設定され、予測動きベクトルリストmvpListLXに登録されているＬＸの予測動きベクトル候補数numMVPCandLXを規定された最終候補数finalNumMVPCandに制限することにより、予測動きベクトルリストmvpListLXを構築する。ステップＳ１０３の詳細な処理手順については図２５のフローチャートを用いて後述する。
【０２０１】
続いて、予測動きベクトル候補符号量算出部１２５、及び予測動きベクトル選択部１２６により、ＬＸの予測動きベクトルリストmvpListLXからＬＸの予測動きベクトルmvpLXを選択する（Ｓ１０４）。まず、予測動きベクトル候補符号量算出部１２５で、動きベクトルmvLXと予測動きベクトルリストmvpListLXの中に格納された各予測動きベクトルの候補mvpListLX[i]との差分であるそれぞれの差分動きベクトルを算出し、それら差分動きベクトルを符号化したときの符号量を予測動きベクトルリストmvpListLXの要素ごとに算出し、予測動きベクトル選択部１２６で、予測動きベクトルリストmvpListLXに登録された各要素の中で、予測動きベクトルの候補毎の符号量が最小となる予測動きベクトルの候補mvpListLX[i]を予測動きベクトルmvpLXとして選択する。予測動きベクトルリストmvpListLXの中で最小の発生符号量となる予測動きベクトルの候補が複数存在する場合には、予測動きベクトルリストmvpListLXの中のインデックスiが小さい番号で表される予測動きベクトルの候補mvpListLX[i]を最適予測動きベクトルmvpLXとして選択する。
【０２０２】
続いて、動きベクトル減算部１２７で、ＬＸの動きベクトルmvLXから選択されたＬＸの予測動きベクトルmvpLXを減算することによりＬＸの差分動きベクトルmvdLXを算出する（Ｓ１０５）。
mvdLX = mvLX - mvpLX
【０２０３】
なお、本実施の形態においては、インター予測モードが双予測において、スライス毎、または符号化対象の予測ブロックのサイズに応じて、Ｌ１予測のインター予測情報を符号化するかどうかを切り替える。切り替える対象となるインター予測情報として双予測でのＬ１の差分動きベクトルmvdL1が含まれる場合で、双予測でのＬ１の差分動きベクトルmvdL1を符号化しない場合、双予測でのＬ１の差分動きベクトルmvdL1は（０，０）に設定される。
【０２０４】
次に、図２４を参照して復号側の動きベクトル算出処理手順を説明する。復号側では、動きベクトル導出部２０４で、インター予測で用いる動きベクトルをＬ０，Ｌ１毎にそれぞれ算出する（Ｓ２０１〜Ｓ２０６）。具体的には符号化対象ブロックの予測モードPredModeがインター予測（MODE_INTER）で、符号化対象ブロックのインター予測モードがＬ０予測（Pred_L0）の場合、Ｌ０の予測動きベクトルリストmvpListL0を算出して、予測動きベクトルmvpL0を選択し、Ｌ０の動きベクトルmvL0を算出する。符号化対象ブロックのインター予測モードがＬ１予測（Pred_L1）の場合、Ｌ１の予測動きベクトルリストmvpListL1を算出して、予測動きベクトルmvpL1を選択し、Ｌ１の動きベクトルmvL1を算出する。符号化対象ブロックのインター予測モードが双予測（Pred_BI）の場合、Ｌ０予測とＬ１予測が共に行われ、Ｌ０の予測動きベクトルリストmvpListL0を算出して、Ｌ０の予測動きベクトルmvpL0を選択し、Ｌ０の動きベクトルmvL0を算出するとともに、Ｌ１の予測動きベクトルリストmvpListL1を算出して、Ｌ１の予測動きベクトルmvpL1を算出し、Ｌ１の動きベクトルmvL1をそれぞれ算出する。
【０２０５】
符号化側と同様に、復号側でもＬ０、Ｌ１それぞれについて、動きベクトル算出処理を行うが、Ｌ０、Ｌ１ともに共通の処理となる。したがって、以下の説明においてはＬ０、Ｌ１を共通のＬＸとして表す。Ｌ０の動きベクトルを算出する処理ではＸが０であり、Ｌ１の動きベクトルを算出する処理ではＸが１である。また、ＬＸの動きベクトルを算出する処理中に、ＬＸではなく、もう一方のリストの情報を参照する場合、もう一方のリストをＬＹとして表す。
【０２０６】
ＬＸの動きベクトルmvdLXを算出する場合（Ｓ２０２のＹＥＳ）、ＬＸの予測動きベクトルの候補を算出してＬＸの予測動きベクトルリストmvpListLXを構築する（Ｓ２０３）。動きベクトル導出部２０４の中の予測動きベクトル候補生成部２２１で複数の予測動きベクトルの候補を算出し、予測動きベクトル候補登録部２２２で予測動きベクトルリストmvpListLXに算出した予測動きベクトルの候補を追加し、予測動きベクトル冗長候補削除部２２３で不要な予測動きベクトルの候補を削除し、予測動きベクトル候補数制限部２２４で予測動きベクトルリストmvpListLXに登録されているＬＸの予測動きベクトル候補数numMVPCandLXが設定され、予測動きベクトルリストmvpListLXに登録されているＬＸの予測動きベクトル候補数numMVPCandLXを規定された最終候補数finalNumMVPCandに制限することにより、予測動きベクトルリストmvpListLXを構築する。ステップＳ２０３の詳細な処理手順については図２５のフローチャートを用いて後述する。
【０２０７】
続いて、予測動きベクトル選択部２２５で予測動きベクトルリストmvpListLXから第１符号化ビット列復号部２０２にて復号された予測動きベクトルのインデックスmvpIdxLXに対応する予測動きベクトルの候補mvpListLX[mvpIdxLX]を選択された予測動きベクトルmvpLXとして取り出す（Ｓ２０４）。ただし、最大候補数finalNumCandLXが1の場合、予測動きベクトルリストmvpListLXに登録されている唯一の予測動きベクトルの候補mvpListLX[0]を選択された予測動きベクトルmvpLXとして取り出す。
【０２０８】
続いて、動きベクトル加算部２２６で第１符号化ビット列復号部２０２にて復号されて供給されるＬＸの差分動きベクトルmvdLXとＬＸの予測動きベクトルmvpLXを加算することによりＬＸの動きベクトルmvLXを算出する（図２４のＳ２０５）。
mvLX = mvpLX + mvdLX
【０２０９】
なお、本実施の形態においては、インター予測モードが双予測において、スライス毎、または符号化対象の予測ブロックのサイズに応じて、Ｌ１予測のインター予測情報を復号するかどうかを切り替える。切り替える対象となるインター予測情報として双予測でのＬ１の差分動きベクトルmvdL1が含まれる場合で、双予測でのＬ１の差分動きベクトルmvdL1を復号しない場合、第１符号化ビット列復号部２０２で双予測でのＬ１の差分動きベクトルmvdL1は（０，０）に設定され、動きベクトル導出部２０４に供給されるので、Ｌ１の動きベクトルmvL1はＬ１の予測動きベクトルmvpL1の値と同じになる。
【０２１０】
次に、図２３のＳ１０３、及び図２４のＳ２０３で共通の予測動きベクトルの候補の導出及び予測動きベクトルリスト構築処理手順を図２５のフローチャートを用いて詳細に説明する。
【０２１１】
（動きベクトルの予測方法）
図２５は動画像符号化装置の差分動きベクトル導出部１０３及び動画像復号装置の動きベクトル導出部２０４とで共通する機能を有する予測動きベクトル候補生成部１２１及び２２１、予測動きベクトル候補登録部１２２及び２２２、ならびに予測動きベクトル冗長候補削除部１２３及び２２３、予測動きベクトル候補数制限部１２４及び２２４の処理手順を表すフローチャートである。
【０２１２】
予測動きベクトル候補生成部１２１及び２２１は左側に隣接する予測ブロックからの予測動きベクトルの候補を導出し、左側に隣接する予測ブロックの予測動きベクトル候補が利用できるかどうかを示すフラグavailableFlagLXA、及び動きベクトルmvLXA、参照インデックスrefIdxA、リストListAを導出する（図２５のＳ３０１）。なお、Ｌ０のときＸは０、Ｌ１のときＸは１とする（以下同様）。続いて、予測動きベクトル候補生成部１２１及び２２１は上側に隣接する予測ブロックからの予測動きベクトルの候補を導出し、上側に隣接する予測ブロックの予測動きベクトル候補が利用できるかどうかを示すフラグavailableFlagLXB、及び動きベクトルmvLXB、参照インデックスrefIdxB、リストListBを導出する（図２５のＳ３０２）。図２５のステップＳ３０１とＳ３０２の処理は参照する隣接ブロックの位置と数が異なる点以外は共通であり、予測ブロックの予測動きベクトル候補が利用できるかどうかを示すフラグavailableFlagLXN、及び動きベクトルmvLXN、参照インデックスrefIdxN、ListN（ＮはＡまたはＢ、以下同様）を導出する共通の導出処理手順を図２６〜図３０のフローチャートを用いて後ほど詳細に説明する。
【０２１３】
続いて、予測動きベクトル候補生成部１２１及び２２１は異なる時間のピクチャの予測ブロックからの予測動きベクトルの候補を導出し、異なる時間のピクチャの予測ブロックの予測動きベクトル候補が利用できるかどうかを示すフラグavailableFlagLXCol、及び動きベクトルmvLXCol、参照インデックスrefIdxCol、リストListColを導出する（図２５のＳ３０３）。このステップＳ３０３の導出処理手順を図３１〜図３７のフローチャートを用いて後ほど詳細に説明する。
【０２１４】
続いて、予測動きベクトル候補登録部１２２及び２２２は予測動きベクトルリストmvpListLXを作成し、ＬＸのそれぞれの予測ベクトルの候補mvLXA, mvLXB, mvLXColを追加する（図２５のＳ３０４）。このステップＳ３０４の登録処理手順を図３８のフローチャートを用いて後ほど詳細に説明する。
【０２１５】
続いて、予測動きベクトル冗長候補削除部１２３及び２２３は予測動きベクトルリストmvpListLX内で、複数の動きベクトルの候補が同じ値または近い値を持っている場合に、冗長な動きベクトルの候補と判断し、最も小さい順序、即ち最も小さいインデックスiの動きベクトルの候補を除いて冗長な動きベクトルの候補を取り除く（図２５のＳ３０５）。このステップＳ３０５の削除処理手順を図３９のフローチャートを用いて後ほど詳細に説明する。
【０２１６】
続いて、予測動きベクトル候補数制限部１２４及び２２４は予測動きベクトルリストmvpListLX内に追加された要素の数をカウントし、その数がＬＸの予測動きベクトル候補数numMVPCandLXに設定され、予測動きベクトルリストmvpListLXに登録されているＬＸの予測動きベクトル候補数numMVPCandLXを規定された最終候補数finalNumMVPCandに制限する。（図２５のＳ３０６）。このステップＳ３０６の制限処理手順を図４０のフローチャートを用いて後ほど詳細に説明する。
【０２１７】
図２５のＳ３０１、Ｓ３０２の左側または上側に隣接する予測ブロックから予測動きベクトルの候補をそれぞれ導出する手順について詳細に説明する。
【０２１８】
図５、図６、図７、図８に示されるように、同一ピクチャ内の符号化ブロック内部を動き補償する為に定義される予測ブロック（図５、図６、図７、図８中の処理対象の予測ブロック）に隣接する周囲の予測ブロックから予測動きベクトルの候補を導出する。
【０２１９】
予測動きベクトルの候補は、処理対象の予測ブロックの左側に隣接する予測ブロックＡｋ（ｋ＝０，１）、すなわちＡ０、Ａ１から構成される予測ブロックグループＡ、上に隣接する予測ブロックＢｋ（ｋ＝０，１，２）、すなわちＢ０、Ｂ１、Ｂ２から構成される予測ブロックグループＢからそれぞれ予測動きベクトルの候補を選出する。
【０２２０】
次に、図２５のＳ３０１およびＳ３０２の処理手順である左側および上側に隣接する予測ブロックグループＮからの予測動きベクトルの候補の導出方法について説明する。図２６は前述のスキャン方法１による図２５のＳ３０１およびＳ３０２の予測動きベクトル候補導出処理手順を示すフローチャートである。添え字Ｘには参照リストを表す０若しくは１、Ｎには隣接する予測ブロックグループの領域を表すＡ（左側）またはＢ（上側）が入る。
【０２２１】
左側の予測ブロックから予測動きベクトルの候補を導出するには（図２５のＳ３０１）、図２６でＮがＡとして符号化／復号対象の予測ブロックの左側に隣接するＡ０、Ａ１の予測ブロックから予測動きベクトルの候補を、上側の予測ブロックから予測動きベクトルの候補を導出するには（図２５のＳ３０２）、図２６でＮがＢとして上側に隣接するＢ０、Ｂ１、Ｂ２予測ブロックから予測動きベクトルの候補を、それぞれ以下の手順で算出する。
【０２２２】
まず、符号化／復号対象の予測ブロックに隣接する予測ブロックを特定し、それぞれの予測ブロックＮｋ（ｋ＝０，１，２、ただし２は上側の予測ブロックグループのみ）が利用できる場合は符号化情報格納メモリ１１４または符号化情報格納メモリ２０９に格納されている符号化情報を取得する。ここで取得する隣接する予測ブロックＮｋの符号化情報は、予測モードPredMode、ＬＸを利用するかどうかを示すフラグpredFlagLX [xNk][yNk]、ＬＸの参照インデックスrefIdxLX [xNk][yNk]、ＬＸの動きベクトルmvLX [xNk][yNk]である。符号化／復号対象の予測ブロックの左側に隣接する予測ブロックグループ（Ｎ＝Ａ）の場合（Ｓ１１０１のＹＥＳ）、左下に隣接する予測ブロックＡ０、左に隣接する予測ブロックＡ１を特定して符号化情報を取得し（Ｓ１１０２、Ｓ１１０３）、符号化／復号対象の予測ブロックの上側に隣接する予測ブロックグループ（Ｎ＝Ｂ）の場合（Ｓ１１０１のＮＯ）、右上に隣接する予測ブロックＢ０、上に隣接する予測ブロックＢ１、左上に隣接する予測ブロックＢ２を特定して符号化情報を取得する（Ｓ１１０４、Ｓ１１０５、Ｓ１１０６）。なお、隣接する予測ブロックＮｋが符号化／復号対象予測ブロックを含むスライスの内側に位置する場合は利用でき、外側に位置する場合は利用できない。
【０２２３】
次に、予測ブロックグループＮから予測動きベクトルが選出されるか否かを示すフラグavailableFlagLXNを０、予測ブロックグループＮを代表する動きベクトルmvLXNを（０，０）に設定する（Ｓ１１０７）。
【０２２４】
続いて、前述の条件判定１または条件判定２に合致する予測動きベクトル候補を導出する（Ｓ１１０８）。予測ブロックグループＮ（ＮはＡまたはＢ）の隣接予測ブロックＮ０、Ｎ１、Ｎ２（Ｎ２は上側の隣接予測ブロックグループＢのみ）の中で、符号化／復号対象予測ブロックで現在対象としている参照リストＬＸと同じ参照リストＬＸ、または符号化／復号対象予測ブロックで現在対象としている参照リストＬＸと反対の参照リストＬＹ（Ｙ＝！Ｘ：現在対象としている参照リストがＬ０のとき、反対の参照リストはＬ１、現在対象としている参照リストがＬ１のとき、反対の参照リストはＬ０）で同じ参照ピクチャの動きベクトルを持つ予測ブロックを探してその動きベクトルを予測動きベクトル候補とする。
【０２２５】
図２７は図２６のステップＳ１１０８の導出処理手順を示すフローチャートである。隣接する予測ブロックＮｋ（ｋ＝０，１，２、ただし、２は上側の隣接予測ブロックグループのみ）に対して、ｋが０，１，２の順番にそれぞれ以下の処理を行う（Ｓ１２０１〜Ｓ１２０７）。ＮがＡの場合下から上にＡ０，Ａ１の順序で、ＮがＢの場合、右から左にＢ０，Ｂ１，Ｂ２の順序で、それぞれ以下の処理を行う。
【０２２６】
隣接する予測ブロックＮｋが利用でき、予測ブロックＮｋの予測モードPredModeがイントラ（MODE_INTRA）でない場合（Ｓ１２０２のＹＥＳ）、前述の条件判定１の条件判定を行う（Ｓ１２０３）。隣接する予測ブロックＮｋのＬＸを利用するどうかを示すフラグpredFlagLX [xNk][yNk]が１、即ち隣接する予測ブロックＮｋが算出対象と同じＬＸの動きベクトルを用いてインター予測されており、隣接する予測ブロックＮｋのＬＸの参照インデックスrefIdxLX[xNk][yNk]と処理対象の予測ブロックのインデックスrefIdxLXが同じ、即ち隣接する予測ブロックＮｋがＬＸ予測で同じ参照ピクチャを用いてインター予測されている場合（Ｓ１２０３のＹＥＳ）、ステップＳ１２０４に進み、そうでない場合（Ｓ１２０３のＮＯ）、ステップＳ１２０５の条件判定を行う。
【０２２７】
ステップＳ１２０３がＹＥＳの場合、フラグavailableFlagLXNが１に設定され、予測ブロックグループＮの予測動きベクトルmvLXNが隣接する予測ブロックＮｋのＬＸの動きベクトルmvLX[xNk][yNk]と同じ値に設定され、予測ブロックグループＮの参照インデックスrefIdxNが隣接する予測ブロックＮｋのＬＸの参照インデックスrefIdxLX[xNk][yNk]と同じ値に設定され、予測ブロックグループＮの参照リストListNがＬＸに設定され（Ｓ１２０４）、本予測動きベクトル候補算出処理を終了する。
【０２２８】
一方、ステップＳ１２０３がＮＯの場合、前述の条件判定２の条件判定を行う（Ｓ１２０５）。隣接する予測ブロックＮｋのＬＹを利用するどうかを示すフラグpredFlagLYが１、即ち隣接する予測ブロックＮｋが算出対象と異なるＬＹの動きベクトルを用いてインター予測されており、隣接する予測ブロックＮｋの現在対象としている参照リストＬＸと反対の参照リストＬＹの参照ピクチャのＰＯＣと処理対象の予測ブロックのＬＸの参照ピクチャのＰＯＣが同じ、即ち隣接する予測ブロックＮｋがＬＹ予測で同じ参照ピクチャを用いてインター予測されている場合（Ｓ１２０５のＹＥＳ）、ステップＳ１２０６に進み、フラグavailableFlagLXNが１に設定され、予測ブロックグループＮの予測動きベクトルmvLXNが隣接する予測ブロックＮｋのＬＹの動きベクトルmvLY[xNk][yNk]と同じ値に設定され、予測ブロックグループＮの参照インデックスrefIdxNが隣接する予測ブロックＮｋのＬＹの参照インデックスrefIdxLY[xNk][yNk]と同じ値に設定され、予測ブロックグループＮの参照リストListNがＬＹに設定され（Ｓ１２０６）、本予測動きベクトル候補算出処理を終了する。
【０２２９】
これらの条件に合致しない場合、即ちＳ１２０３のＮＯ，またはＳ１２０５のＮＯの場合、ｋを１増加し、次の隣接予測ブロックの処理（Ｓ１２０１〜Ｓ１２０７）を行い、availableFlagLXNが１になるか、隣接ブロックＡ１またはＢ２の処理が終わるまで繰り返す。
【０２３０】
続いて、図２６のフローチャートに戻り、availableFlagLXNが０のとき（Ｓ１１０９のＹＥＳ）、即ちステップＳ１１０８で予測動きベクトルの候補が算出できなかった場合、前述の条件判定３または条件判定４に合致する予測動きベクトル候補を算出する（Ｓ１１１０）。予測ブロックグループＮ（ＮはＡまたはＢ）の隣接ブロックＮ０、Ｎ１、Ｎ２（Ｎ２は上側の隣接予測ブロックグループＢのみ）の中で、符号化／復号対象予測ブロックで現在対象としている参照リストＬＸと同じ参照リストＬＸ、または符号化／復号対象予測ブロックで現在対象としている参照リストＬＸと反対の参照リストＬＹ（Ｙ＝！Ｘ：現在対象としている参照リストがＬ０のとき、反対の参照リストはＬ１、現在対象としている参照リストがＬ１のとき、反対の参照リストはＬ０）で異なる参照ピクチャの動きベクトルを持つ予測ブロックを探してその動きベクトルを予測動きベクトル候補とする。
【０２３１】
図２８は図２６のステップＳ１１１０の導出処理手順を示すフローチャートである。隣接する予測ブロックＮｋ（ｋ＝０，１，２、ただし、２は上側の隣接予測ブロックグループのみ）に対して、ｋが０，１，２の順番にそれぞれ以下の処理を行う（Ｓ１３０１〜Ｓ１３０７）。ＮがＡの場合下から上にＡ０，Ａ１の順序で、ＮがＢの場合、右から左にＢ０，Ｂ１，Ｂ２の順序で、それぞれ以下の処理を行う。
【０２３２】
隣接する予測ブロックＮｋが利用でき、予測ブロックＮｋの予測モードPredModeがイントラ（MODE_INTRA）でない場合（Ｓ１３０２のＹＥＳ）、前述の条件判定３の条件判定を行う（Ｓ１３０３）。隣接する予測ブロックＮｋのＬＸを利用するどうかを示すフラグpredFlagLX [xNk][yNk]が１、即ち隣接する予測ブロックＮｋが算出対象と同じＬＸの動きベクトルを用いてインター予測されている場合、ステップＳ１３０４に進み、そうでない場合（Ｓ１３０３のＮＯ）、ステップＳ１３０５の条件判定を行う。
【０２３３】
ステップＳ１３０３がＹＥＳの場合、フラグavailableFlagLXNが１に設定され、予測ブロックグループＮのmvLXNが隣接する予測ブロックＮｋのＬＸの動きベクトルmvLX[xNk][yNk]と同じ値に設定され、予測ブロックグループＮの参照インデックスrefIdxNが隣接する予測ブロックＮｋのＬＸの参照インデックスrefIdxLX[xNk][yNk]と同じ値に設定され、予測ブロックグループＮの参照リストListNがＬＸに設定され（Ｓ１３０４）、ステップＳ１３０８に進む。
【０２３４】
ステップＳ１３０３がＮＯの場合、前述の条件判定４の条件判定を行う（Ｓ１３０５）。隣接する予測ブロックＮｋのＬＹを利用するどうかを示すフラグpredFlagLYが１、即ち隣接する予測ブロックＮｋが算出対象と異なるＬＹの動きベクトルを用いてインター予測されている場合（Ｓ１３０５のＹＥＳ）、フラグavailableFlagLXNが１に設定され、予測ブロックグループＮの予測動きベクトルmvLXNが隣接する予測ブロックＮｋのＬＹの動きベクトルmvLY[xNk][yNk]と同じ値に設定され、予測ブロックグループＮの予測動きベクトルmvLXNが隣接する予測ブロックＮｋのＬＹの動きベクトルmvLY[xNk][yNk]と同じ値に設定され、予測ブロックグループＮの参照インデックスrefIdxNが隣接する予測ブロックＮｋのＬＹの参照インデックスrefIdxLY[xNk][yNk]と同じ値に設定され、予測ブロックグループＮの参照リストListNがＬＹに設定され（Ｓ１３０６）、ステップＳ１３０８に進む。
【０２３５】
一方、これらの条件に合致しない場合（Ｓ１３０３のＮＯ，またはＳ１３０５のＮＯの場合）、ｋを１増加し、次の隣接予測ブロックの処理（Ｓ１３０１〜Ｓ１３０７）を行い、availableFlagLXNが１になるか、隣接ブロックＡ１またはＢ２の処理が終わるまで繰り返し、ステップＳ１３０８に進む。
【０２３６】
続いて、availableFlagLXNが１のとき（Ｓ１３０８のＹＥＳ）、mvLXNをスケーリングする（Ｓ１３０９）。このステップＳ１３０９の空間予測動きベクトル候補のスケーリング演算処理手順を図２９及び図３０を用いて説明する。
【０２３７】
図２９は図２８のステップＳ１３０９の動きベクトルのスケーリング演算処理手順を示すフローチャートである。
【０２３８】
現在の符号化／復号対象ピクチャのＰＯＣから、隣接予測ブロックのリストListNが参照する参照ピクチャのＰＯＣを減算してピクチャ間距離ｔｄを算出する（Ｓ１６０１）。なお、現在の符号化／復号対象ピクチャよりも隣接予測ブロックのリストListNで参照する参照ピクチャの方が表示順序で前の場合、ピクチャ間距離ｔｄは正の値となり、現在の符号化／復号対象ピクチャよりも隣接予測ブロックの参照リストListNで参照する参照ピクチャの方が表示順序で後の場合、ピクチャ間距離ｔｄは負の値となる。
ｔｄ＝現在の符号化／復号対象ピクチャのＰＯＣ−隣接予測ブロックの参照リストListNで参照する参照ピクチャのＰＯＣ
【０２３９】
現在の符号化／復号対象ピクチャのＰＯＣから現在の符号化／復号対象ピクチャのリストＬＸが参照する参照ピクチャのＰＯＣを減算してピクチャ間距離ｔｂを算出する（Ｓ１６０２）。なお、現在の符号化／復号対象ピクチャよりも現在の符号化／復号対象ピクチャのリストＬＸで参照する参照ピクチャの方が表示順序で前の場合、ピクチャ間距離ｔｂは正の値となり、現在の符号化／復号対象ピクチャのリストＬＸで参照する参照ピクチャの方が表示順序で後の場合、ピクチャ間距離ｔｂは負の値となる。
ｔｂ＝現在の符号化／復号対象ピクチャのＰＯＣ−現在の符号化／復号対象ピクチャの参照リストＬＸで参照する参照ピクチャのＰＯＣ
【０２４０】
続いて、次式によりmvLXNにスケーリング係数ｔｂ／ｔｄを乗じることでスケーリング演算処理を行い（Ｓ１６０３）、スケーリングされた動きベクトルmvLXNを得る。
mvLXN＝ｔｂ／ｔｄ＊mvLXN
【０２４１】
また、ステップＳ１６０３のスケーリング演算を整数精度の演算で行う場合の例を図３０に示す。図３０のステップＳ１６０４〜Ｓ１６０６の処理が、図２９のステップＳ１６０３の処理に相当する。
【０２４２】
まず、図２９のフローチャートと同様に、ピクチャ間距離ｔｄとピクチャ間距離ｔｂを算出する（Ｓ１６０１、Ｓ１６０２）。
【０２４３】
続いて、次式により変数ｔｘを算出する（Ｓ１６０４）。
tx = ( 16384 + Abs( td / 2 ) ) / td
【０２４４】
続いて、次式によりスケーリング係数DistScaleFactorを算出する（Ｓ１６０５）。
DistScaleFactor = ( tb * tx + 32 ) >> 6
【０２４５】
続いて、次式により、スケーリングされた動きベクトルmvLXNを得る（Ｓ１６０６）。
mvLXN = ClipMv( Sign( DistScaleFactor * mvLXN ) * ( (Abs( DistScaleFactor * mvLXN ) + 127 ) >> 8 ) )
【０２４６】
次に、図２５のＳ３０３の異なる時間のピクチャの予測ブロックから予測動きベクトルの候補の導出方法について詳細に説明する。図３１は図２５のステップＳ３０３の予測動きベクトル候補導出処理手順を説明するフローチャートである。
【０２４７】
まず、slice_typeとcollocated_from_l0_flagにより、異なる時間のピクチャcolPicを算出する（図３１のＳ２１０１）。
【０２４８】
図３２は図３１のステップＳ２１０１の異なる時間のピクチャcolPicの導出処理手順を説明するフローチャートである。slice_typeがＢで、前述のフラグcollocated_from_l0_flagが０の場合（図３２のＳ２２０１のＹＥＳ、Ｓ２２０２のＹＥＳ）、RefPicList1[0]、すなわち参照リストＬ１の参照インデックスが０のピクチャが異なる時間のピクチャcolPicとなる（図３２のＳ２２０３）。そうでない場合、すなわち前述のフラグcollocated_from_l0_flagが１の場合（図３２のＳ２２０１のＮＯ、Ｓ２２０２のＮＯ、Ｓ２２０４のＮＯ）、RefPicList0[0]、すなわち参照リストＬ０の参照インデックスが０のピクチャが異なる時間のピクチャcolPicとなる（図３２のＳ２２０５）。
【０２４９】
次に、図３１のフローチャートに戻り、異なる時間の予測ブロックcolPUを算出し、符号化情報を取得する（図３１のＳ２１０２）。
【０２５０】
図３３は図３１のステップＳ２１０２の異なる時間のピクチャcolPicの予測ブロックcolPUの導出処理手順を説明するフローチャートである。
【０２５１】
まず、異なる時間のピクチャcolPic内で処理対象の予測ブロックと同一位置の右下（外側）に位置する予測ブロックを異なる時間の予測ブロックcolPUに設定する（図３３のＳ２３０１）。この予測ブロックは図９の予測ブロックＴ０に相当する。
【０２５２】
次に、異なる時間の予測ブロックcolPUの符号化情報を取得する（図３３のＳ２３０２）。異なる時間の予測ブロックcolPUのPredModeがMODE_INTRAか、利用できない場合（図３３のＳ２３０３、Ｓ２３０４）、異なる時間のピクチャcolPic内で処理対象の予測ブロックと同一位置の中央左上に位置する予測ブロックを異なる時間の予測ブロックcolPUに再設定する（図３３のＳ２３０５）。この予測ブロックは図９の予測ブロックＴ１に相当する。
【０２５３】
次に、図３１のフローチャートに戻り、符号化／復号対象の予測ブロックと同位置の他ピクチャの予測ブロックから算出されるＬＸの予測動きベクトルmvLXColと予測ブロックグループＣｏｌの参照リストＬＸの符号化情報が有効か否かを示すフラグavailableFlagLXColを算出する（図３１のＳ２１０３）。
【０２５４】
図３４は図３１のステップＳ２１０３のインター予測情報の導出処理を説明するフローチャートである。
【０２５５】
異なる時間の予測ブロックcolPUのPredModeがMODE_INTRAか、利用できない場合（図３４のＳ２４０１のＮＯ、Ｓ２４０２のＮＯ）、availableFlagLXColを０、mvLXColを（０，０）とし（図３４のＳ２４０３、Ｓ２４０４）、処理を終了する。
【０２５６】
予測ブロックcolPUが利用できてPredModeがMODE_INTRAでない場合（図３４のＳ２４０１のＹＥＳ、Ｓ２４０２のＹＥＳ）、以下の手順でmvColとrefIdxColを算出する。
【０２５７】
予測ブロックcolPUのＬ０予測が利用されているかどうかを示すフラグPredFlagL0[xPCol][yPCol]が０の場合（図３４のＳ２４０５のＹＥＳ）、予測ブロックcolPUの予測モードはPred_L1であるので、動きベクトルmvColが予測ブロックcolPUのＬ１の動きベクトルであるMvL1[xPCol][yPCol]と同じ値に設定され（図３４のＳ２４０６）、参照インデックスrefIdxColがＬ１の参照インデックスRefIdxL1[xPCol][yPCol]と同じ値に設定され（図３４のＳ２４０７）、リストListColがＬ１に設定される（図３４のＳ２４０８）。
【０２５８】
一方、予測ブロックcolPUのＬ０予測フラグPredFlagL0[xPCol][yPCol]が０でない場合（図３４のＳ２４０５のＮＯ）、予測ブロックcolPUのＬ１予測フラグPredFlagL1[xPCol][yPCol]が０かどうかを判定する。予測ブロックcolPUのＬ１予測フラグPredFlagL1[xPCol][yPCol]が０の場合（図３４のＳ２４０９のＹＥＳ）、動きベクトルmvColが予測ブロックcolPUのＬ０の動きベクトルであるMvL0[xPCol][yPCol]と同じ値に設定され（図３４のＳ２４１０）、参照インデックスrefIdxColがＬ０の参照インデックスRefIdxL0[xPCol][yPCol] と同じ値に設定され（図３４のＳ２４１１）、リストListColがＬ０に設定される（図３４のＳ２４１２）。
【０２５９】
予測ブロックcolPUのＬ０予測フラグPredFlagL0[xPCol][yPCol]と予測ブロックcolPUのＬ１予測フラグPredFlagL1[xPCol][yPCol]が共に０でない場合（図３４のＳ２４０５のＮＯ，Ｓ２４０９のＮＯ）、予測ブロックcolPUのインター予測モードは双予測（Pred_BI）であるので、Ｌ０、Ｌ１の２つの動きベクトルから、一方を選択する（図３４のＳ２４１３）。
【０２６０】
図３５は予測ブロックcolPUのインター予測モードが双予測（Pred_BI）のときの予測ブロックのインター予測情報の導出処理手順を示すフローチャートである。
【０２６１】
まず、すべての参照リストに登録されているすべてのピクチャのＰＯＣが現在の符号化／復号対象ピクチャのＰＯＣより小さいかどうかを判定し（Ｓ２５０１）、予測ブロックcolPUのすべての参照リストであるＬ０及びＬ１に登録されているすべてのピクチャのＰＯＣが現在の符号化／復号対象ピクチャのＰＯＣより小さい場合で（Ｓ２５０１のＹＥＳ）、Ｘが０、即ち符号化／復号対象の予測ブロックのＬ０の動きベクトルの予測ベクトル候補を算出している場合（Ｓ２５０２のＹＥＳ）、予測ブロックcolPUのＬ０の方のインター予測情報を選択し、Ｘが１、即ち符号化／復号対象の予測ブロックのＬ１の動きベクトルの予測ベクトル候補を算出している場合（Ｓ２５０２のＮＯ）、予測ブロックcolPUのＬ１の方のインター予測情報を選択する。一方、予測ブロックcolPUのすべての参照リストＬ０及びＬ１に登録されているピクチャのＰＯＣの少なくとも１つが現在の符号化／復号対象ピクチャのＰＯＣより大きい場合で（Ｓ２５０１のＮＯ）、フラグcollocated_from_l0_flagが０場合（Ｓ２５０３のＹＥＳ）、予測ブロックcolPUのＬ０の方のインター予測情報を選択し、フラグcollocated_from_l0_flagが１の場合（Ｓ２５０３のＮＯ）、予測ブロックcolPUのＬ１の方のインター予測情報を選択する。
【０２６２】
予測ブロックcolPUのＬ０の方のインター予測情報を選択する場合（Ｓ２５０２のＹＥＳ、Ｓ２５０３のＹＥＳ）、動きベクトルmvColがMvL0[xPCol][yPCol]と同じ値に設定され（Ｓ２５０４）、参照インデックスrefIdxColがRefIdxL0[xPCol][yPCol]と同じ値に設定され（Ｓ２５０５）、リストListColがＬ０に設定される（Ｓ２５０６）。
【０２６３】
予測ブロックcolPUのＬ１の方のインター予測情報を選択する場合（Ｓ２５０２のＮＯ、Ｓ２５０３のＮＯ）、動きベクトルmvColがMvL1[xPCol][yPCol]と同じ値に設定され（Ｓ２５０７）、参照インデックスrefIdxColがRefIdxL1[xPCol][yPCol]と同じ値に設定され（Ｓ２５０８）、リストListColがＬ１に設定される（Ｓ２５０９）。
【０２６４】
図３４に戻り、予測ブロックcolPUからインター予測情報が取得できたらavailableFlagLXColを１とする（図３４のＳ２４１４）。
【０２６５】
次に、図３１のフローチャートに戻り、availableFlagLXColが１の場合（図３１のＳ２１０４のＹＥＳ）、必要に応じてmvLXColをスケーリングする（図３１のＳ２１０５）。この動きベクトルmvLXColのスケーリング演算処理手順を図３６及び図３７を用いて説明する。
【０２６６】
図３６は図３１のステップＳ２１０５の動きベクトルのスケーリング演算処理手順を示すフローチャートである。
【０２６７】
異なる時間のピクチャcolPicのＰＯＣから、予測ブロックcolPUのリストListColで参照する参照ピクチャのＰＯＣを減算してピクチャ間距離ｔｄを算出する（Ｓ２６０１）。なお、異なる時間のピクチャcolPicよりも予測ブロックcolPUのリストListColで参照する参照ピクチャのＰＯＣの方が表示順序で前の場合、ピクチャ間距離ｔｄは正の値となり、異なる時間のピクチャcolPicよりも予測ブロックcolPUのリストListColで参照する参照ピクチャのＰＯＣの方が表示順序で後の場合、ピクチャ間距離ｔｄは負の値となる。
ｔｄ＝異なる時間のピクチャcolPicのＰＯＣ−予測ブロックcolPUのリストListColで参照する参照ピクチャのＰＯＣ
【０２６８】
現在の符号化／復号対象ピクチャのＰＯＣから現在の符号化／復号対象ピクチャのリストＬＸが参照する参照ピクチャのＰＯＣを減算してピクチャ間距離ｔｂを算出する（Ｓ２６０２）。なお、現在の符号化／復号対象ピクチャよりも現在の符号化／復号対象ピクチャのリストＬＸで参照する参照ピクチャの方が表示順序で前の場合、ピクチャ間距離ｔｂは正の値となり、現在の符号化／復号対象ピクチャのリストＬＸで参照する参照ピクチャの方が表示順序で後の場合、ピクチャ間距離ｔｂは負の値となる。
ｔｂ＝現在の符号化／復号対象ピクチャのＰＯＣ−現在の符号化／復号対象ピクチャの参照リストＬＸで参照する参照ピクチャのＰＯＣ
【０２６９】
続いて、ピクチャ間距離ｔｄとｔｂを比較し（Ｓ２６０３）、ピクチャ間距離ｔｄとｔｂが等しい場合（Ｓ２６０３のＹＥＳ）、本スケーリング演算処理を終了する。ピクチャ間距離ｔｄとｔｂが等しくない場合（Ｓ２６０３のＮＯ）、次式によりmvLXColにスケーリング係数ｔｂ／ｔｄを乗じることでスケーリング演算処理を行い（Ｓ２６０４）スケーリングされた動きベクトルmvLXColを得る。
mvLXCol＝ｔｂ／ｔｄ＊mvLXCol
【０２７０】
また、ステップＳ２６０４のスケーリング演算を整数精度の演算で行う場合の例を図３７に示す。図３７のステップＳ２６０５〜Ｓ２６０７の処理が、図３６のステップＳ２６０４の処理に相当する。
【０２７１】
まず、図３６のフローチャートと同様に、ピクチャ間距離ｔｄとピクチャ間距離ｔｂを算出する（Ｓ２６０１、Ｓ２６０２）。
【０２７２】
続いて、ピクチャ間距離ｔｄとｔｂを比較し（Ｓ２６０３）、ピクチャ間距離ｔｄとｔｂが等しい場合（Ｓ２６０３のＹＥＳ）、本スケーリング演算処理を終了する。ピクチャ間距離ｔｄとｔｂが等しくない場合（Ｓ２６０３のＮＯ）、次式により変数ｔｘを算出する（Ｓ２６０５）。
tx = ( 16384 + Abs( td / 2 ) ) / td
【０２７３】
続いて、次式によりスケーリング係数DistScaleFactorを算出する（Ｓ２６０６）。
DistScaleFactor = ( tb * tx + 32 ) >> 6
【０２７４】
続いて、次式により、スケーリングされた動きベクトルmvLXNを得る（Ｓ２６０７）。
mvLXN = ClipMv( Sign( DistScaleFactor * mvLXN ) * ( (Abs( DistScaleFactor * mvLXN ) + 127 ) >> 8 ) )
【０２７５】
図２５のＳ３０４の予測動きベクトルの候補を予測動きベクトルリストに追加する手順について詳細に説明する。
【０２７６】
図２５のＳ３０１、Ｓ３０２、及びＳ３０３にて算出されたＬＸのそれぞれの予測動きベクトルの候補mvLXA, mvLXB, mvLXColをＬＸの予測動きベクトルリストmvpListLXに追加する（Ｓ３０４）。本発明の実施の形態では、優先順位をつけて、優先順位の高いものからＬＸの予測動きベクトルリストmvpListLXに予測動きベクトルの候補mvLXA, mvLXB, mvLXColを登録することで、優先順位の高い要素を予測動きベクトルリストの前方に配置する。図２５のＳ３０６で予測動きベクトルリストの中の要素数を制限する際に、予測動きベクトルリストの後方に配置された要素を予測動きベクトルリストから外すことで、優先順位の高い要素を残す。
【０２７７】
予測動きベクトルリストmvpListLXはリスト構造を成し、予測動きベクトルリスト内部の所在を示すインデックスiで管理され、インデックスiに対応する予測動きベクトルの候補を要素として格納する記憶領域が設けられている。インデックスiの数字は０から開始され、予測動きベクトルリストmvpListLXの記憶領域に、予測動きベクトルの候補が格納される。以降の処理では、予測動きベクトルリストmvpListLXに登録されたインデックスiの要素である予測動きベクトルの候補は、mvpListLX[i]で表す。
【０２７８】
次に、図２５のＳ３０４のＬＸの予測動きベクトルリストmvpListLXへのＬＸの予測動きベクトルの候補mvLXA, mvLXB, mvLXColの登録処理方法について詳細に説明する。図３８は図２５のステップＳ３０４の予測動きベクトル候補登録処理手順を示すフローチャートである。
【０２７９】
まず、予測動きベクトルリストmvpListLXのインデックスiを０に設定する（Ｓ３１０１）。availableFlagLXAが１の場合（Ｓ３１０２のＹＥＳ）、予測動きベクトルリストmvpListLXのインデックスiに対応する位置にＬＸの予測動きベクトル候補mvLXAを登録し（Ｓ３１０３）、インデックスiに1を加算することで更新する（Ｓ３１０４）。
【０２８０】
続いて、availableFlagLXBが１の場合（Ｓ３１０５のＹＥＳ）、予測動きベクトルリストmvpListLXmvpListLXのインデックスiに対応する位置にＬＸの予測動きベクトル候補mvLXBを登録し（Ｓ３１０６）、インデックスiに1を加算することで更新する（Ｓ３１０７）。
【０２８１】
続いて、availableFlagLXColが１の場合（Ｓ３１０８のＹＥＳ）、予測動きベクトルリストmvpListLXのインデックスiに対応する位置にＬＸの予測動きベクトル候補mvLXColを登録し（Ｓ３１０９）、予測動きベクトルリストへの登録処理を終了する。
【０２８２】
次に、図２５のＳ３０５の予測動きベクトルリスト中の冗長な予測動きベクトルの候補の削除方法について詳細に説明する。図３９は図２５のＳ３０５の予測動きベクトル冗長候補削除処理手順を示すフローチャートである。
【０２８３】
最終候補数finalNumMVPCandが１より大きい場合（Ｓ４１０１のＹＥＳ）、予測動きベクトル冗長候補削除部１２３及び２２３は予測動きベクトルリストmvpListLXに登録されている動きベクトルの候補同士を比較し（Ｓ４１０２）、複数の動きベクトルの候補が同じ値または近い値を持っている場合に（Ｓ４１０３のＹＥＳ）、冗長な動きベクトルの候補と判断し、最も小さい順序、即ち最も小さいインデックスiの動きベクトルの候補を除いて冗長な動きベクトルの候補を取り除く（Ｓ４１０４）。なお、冗長な動きベクトルの候補を取り除いた後、予測動きベクトルリストmvpListLXの中は、削除された予測動きベクトルの候補の格納領域が空いている為、インデックスiが０を基準にして、インデックスiが小さい予測動きベクトルの候補の順で詰めていく（Ｓ４１０５）。例えば、インデックスiが０の予測動きベクトルの候補mvListLX[0]が削除され、インデックスiが１及び２の予測動きベクトルの候補mvListLX[1], mvListLX[2]が残った場合、インデックスiが１の予測動きベクトルの候補mvListLX[1]を新たにインデックスiが０の予測動きベクトルの候補mvListLX[0]に変更する。さらに、インデックスiが２の予測動きベクトルの候補mvListLX[2]を新たにインデックスiが１の予測動きベクトルの候補mvListLX[1]に変更する。さらに、インデックスiが２の予測動きベクトルの候補mvListLX[2]は存在しないものと設定する。
【０２８４】
最終候補数finalNumMVPCandが１の場合（Ｓ４１０１のＮＯ）、Ｓ３０５の冗長な予測動きベクトルの候補を削除する処理は行う必要がないので、本冗長候補削除処理を終了する。なぜなら、ステップＳ３０６の要素数を制限する処理で、候補数が１つに制限されるからである。
【０２８５】
予測ブロックのサイズが小さい場合、単位面積当たりの予測ブロックの数が多くなるので、冗長な予測動きベクトルの候補を削除する処理の回数も多くなってしまう。
【０２８６】
次に、図２５のＳ３０６の予測動きベクトルリスト中の動きベクトルの候補数の制限方法について詳細に説明する。図４０は図２５のＳ３０６の予測動きベクトル候補数制限処理手順を説明するフローチャートである。
【０２８７】
予測動きベクトル候補数制限部１２４及び予測動きベクトル候補数制限部２２４はＬＸの予測動きベクトルリストmvpListLXに登録されているＬＸの予測動きベクトル候補数numMVPCandLXを規定された最終候補数finalNumMVPCandに制限する。
【０２８８】
まず、ＬＸの予測動きベクトルリストmvpListLXに登録されている要素数をカウントし、ＬＸの予測動きベクトル候補数numMVPCandLXに設定する（Ｓ５１０１）。
【０２８９】
続いて、ＬＸの予測動きベクトル候補数numMVPCandLXが最終候補数finalNumMVPCandよりも小さい場合（Ｓ５１０３のＹＥＳ）、ＬＸの予測動きベクトルリストmvpListLXのインデックスiが numMVPCandLXに対応する位置に(0, 0)の値を持つ動きベクトルを登録し（Ｓ５１０４）、numMVPCandLXに1を加算する（Ｓ５１０５）。numMVPCandLXとfinalNumMVPCandが同じ値の場合（Ｓ５１０５のＹＥＳ）、本制限処理を終了し、numMVPCandLXとfinalNumMVPCandが同じ値でない場合（Ｓ５１０５のＮＯ）、同じ値になるまで、ステップＳ５１０４とＳ５１０５の処理を繰り返す。すなわち、ＬＸの予測動きベクトル候補数numMVPCandLXが最終候補数finalNumMVPCandに達するまで、(0, 0)の値を持つMVを登録する。このように重複して(0, 0)の値を持つMVを登録することにより、予測動きベクトルインデックスが０以上最終候補数finalNumMVPCand未満の範囲内でどのような値をとっても予測動きベクトルを確定することができる。
【０２９０】
一方、ＬＸの予測動きベクトル候補数numMVPCandLXが最終候補数finalNumMVPCandよりも大きい場合（Ｓ５１０３のＮＯ、Ｓ５１０７のＹＥＳ）、ＬＸの予測動きベクトルリストmvpListLXのインデックスiがfinalNumMVPCand-1より大きいすべての予測動きベクトル候補を削除し（Ｓ５１０８）、numMVPCandLXにfinalNumMVPCandと同じ値を設定して（Ｓ５１０５）、本制限処理を終了する。
【０２９１】
ＬＸの予測動きベクトル候補数numMVPCandLXが最終候補数finalNumMVPCandと等しい場合（Ｓ５１０３のＮＯ、Ｓ５１０７のＮＯ）、制限処理を施さずに本制限処理を終了する。
【０２９２】
本実施の形態においては、最終候補数finalNumMVPCandを規定している。なぜなら、予測動きベクトルリストに登録される予測動きベクトルの候補数が予測動きベクトルリストの構築状態に応じて変動すると、復号側では予測動きベクトルリストを構築してからでないと、予測動きベクトルインデックスをエントロピー復号することができないからである。さらに、エントロピー復号が異なる時間のピクチャの予測ブロックから導出された予測動きベクトル候補mvLXColを含む予測動きベクトルリストの構築状態に依存すると、別のピクチャの符号化ビット列の復号時にエラーが発生した際に現在のピクチャの符号化ビット列もその影響を受けて正常にエントロピー復号を続けることができない問題がある。最終候補数finalNumMVPCandを固定した数に規定すると、予測動きベクトルリストの構築と独立して、予測動きベクトルインデックスをエントロピー復号することができるとともに、別のピクチャの符号化ビット列の復号時にエラーが発生してもその影響を受けずに現在のピクチャの符号化ビット列のエントロピー復号を続けることができる。
【０２９３】
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
【０２９４】
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
【０２９５】
動画像送信装置は、動画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
【０２９６】
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ＲＯＭ（リード・オンリ・メモリ）やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
【０２９７】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０２９８】
１０１  画像メモリ、  １１６  参照インデックス導出部、  １０２  動きベクトル検出部、  １０３  差分動きベクトル導出部、  １０４  インター予測情報推定部、  １０５  動き補償予測部、  １０６  予測方法決定部、  １０７  残差信号生成部、  １０８  直交変換・量子化部、  １０９  第１の符号化ビット列生成部、  １１０  第２の符号化ビット列生成部、  １１１  多重化部、  １１２  逆量子化・逆直交変換部、  １１３  復号画像信号重畳部、  １１４  符号化情報格納メモリ、  １１５  復号画像メモリ、  １２１  予測動きベクトル候補生成部、  １２２  予測動きベクトル候補登録部、  １２３  予測動きベクトル冗長候補削除部、  １２４  予測動きベクトル候補数制限部、  １２５  予測動きベクトル候補符号量算出部、  １２６  予測動きベクトル選択部、  １２７  動きベクトル減算部、  ２０１  分離部、  ２０２  第１符号化ビット列復号部、  ２０３  第２符号化ビット列復号部、  ２１１  参照インデックス導出部、  ２０４  動きベクトル導出部、  ２０５  インター予測情報推定部、  ２０６  動き補償予測部、  ２０７  逆量子化・逆直交変換部、  ２０８  復号画像信号重畳部、  ２０９  符号化情報格納メモリ、  ２１０  復号画像メモリ、  ２２１  予測動きベクトル候補生成部、  ２２２  予測動きベクトル候補登録部、  ２２３  予測動きベクトル冗長候補削除部、  ２２４  予測動きベクトル候補数制限部、  ２２５  予測動きベクトル選択部、  ２２６  動きベクトル加算部。
【図１】
2013110575.tif 000003
【図２】
2013110575.tif 000004
【図３】
2013110575.tif 000005
【図４】
2013110575.tif 000006
【図５】
2013110575.tif 000007
【図６】
2013110575.tif 000008
【図７】
2013110575.tif 000009
【図８】
2013110575.tif 000010
【図９】
2013110575.tif 000011
【図１０】
2013110575.tif 000012
【図１１】
2013110575.tif 000013
【図１２】
2013110575.tif 000014
【図１３】
2013110575.tif 000015
【図１４】
2013110575.tif 000016
【図１５】
2013110575.tif 000017
【図１６】
2013110575.tif 000018
【図１７】
2013110575.tif 000019
【図１８】
2013110575.tif 000020
【図１９】
2013110575.tif 000021
【図２０】
2013110575.tif 000022
【図２１】
2013110575.tif 000023
【図２２】
2013110575.tif 000024
【図２３】
2013110575.tif 000025
【図２４】
2013110575.tif 000026
【図２５】
2013110575.tif 000027
【図２６】
2013110575.tif 000028
【図２７】
2013110575.tif 000029
【図２８】
2013110575.tif 000030
【図２９】
2013110575.tif 000031
【図３０】
2013110575.tif 000032
【図３１】
2013110575.tif 000033
【図３２】
2013110575.tif 000034
【図３３】
2013110575.tif 000035
【図３４】
2013110575.tif 000036
【図３５】
2013110575.tif 000037
【図３６】
2013110575.tif 000038
【図３７】
2013110575.tif 000039
【図３８】
2013110575.tif 000040
【図３９】
2013110575.tif 000041
【図４０】
2013110575.tif 000042
【図４１】
2013110575.tif 000043