(57)【特許請求の範囲】
【請求項１】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化装置であって、
符号化対象予測ブロックと同一ピクチャ内の前記符号化対象予測ブロックと隣接する第１の符号化済みの予測ブロック、および前記符号化対象予測ブロックとは異なるピクチャ内の前記符号化対象予測ブロックと同一または周辺の位置にある第２の符号化済みの予測ブロックのいずれかの動きベクトルから予測して、複数の予測動きベクトルの候補を導出し、導出した予測動きベクトルの候補を予測動きベクトル候補リストに登録する予測動きベクトル候補生成部と、
前記予測動きベクトル候補リストから予測動きベクトルを選択する予測動きベクトル選択部と、
前記予測動きベクトル候補リストにおける前記選択された予測動きベクトルの位置を示す情報を符号化する符号化部とを備え、
前記予測動きベクトル候補生成部は、設定された数の予測動きベクトルの候補を得るために、前記第１の符号化済みの予測ブロックの内のどの予測ブロックの動きベクトルが予測動きベクトルの候補を導出するための動きベクトルとなるかの判定を優先順序を付けて行う際、左側の隣接ブロックグループ、及び上側の隣接ブロックグループの隣接ブロックグループ毎に所定順の各予測ブロックに対して、
条件１．符号化対象予測ブロックで選択された符号化モードと同じ参照リストで、同じ参照ピクチャの動きベクトルが存在する、
条件２．符号化対象予測ブロックで選択された符号化モードとは異なる参照リストで、同じ参照ピクチャの動きベクトルが存在する、
条件３．符号化対象予測ブロックで選択された符号化モードと同じ参照リストで、異なる参照ピクチャの動きベクトルが存在する、
条件４．符号化対象予測ブロックで選択された符号化モードとは異なる参照リストで、異なる参照ピクチャの動きベクトルが存在する、
の各条件の判定を、まず、条件１，２についてその条件１，２の優先順序で各予測ブロックに対して行い、次に条件３，４についてその条件３，４の優先順序で各予測ブロックに対して行うことを特徴とする動画像符号化装置。
【請求項２】
前記予測動きベクトル候補生成部は、前記条件１，２についての条件判定において、条件に一致する予測ブロックが見つかればその予測ブロックの動きベクトルをそのまま予測動きベクトルの候補とすることを特徴とする請求項１に記載の動画像符号化装置。
【請求項３】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化方法であって、
符号化対象予測ブロックと同一ピクチャ内の前記符号化対象予測ブロックと隣接する第１の符号化済みの予測ブロック、および前記符号化対象予測ブロックとは異なるピクチャ内の前記符号化対象予測ブロックと同一または周辺の位置にある第２の符号化済みの予測ブロックのいずれかの動きベクトルから予測して、複数の予測動きベクトルの候補を導出し、導出した予測動きベクトルの候補を予測動きベクトル候補リストに登録する予測動きベクトル候補生成ステップと、
前記予測動きベクトル候補リストから予測動きベクトルを選択する予測動きベクトル選択ステップと、
前記予測動きベクトル候補リストにおける前記選択された予測動きベクトルの位置を示す情報を符号化する符号化ステップとを備え、
前記予測動きベクトル候補生成ステップは、設定された数の予測動きベクトルの候補を得るために、前記第１の符号化済みの予測ブロックの内のどの予測ブロックの動きベクトルが予測動きベクトルの候補を導出するための動きベクトルとなるかの判定を優先順序を付けて行う際、左側の隣接ブロックグループ、及び上側の隣接ブロックグループの隣接ブロックグループ毎に所定順の各予測ブロックに対して、
条件１．符号化対象予測ブロックで選択された符号化モードと同じ参照リストで、同じ参照ピクチャの動きベクトルが存在する、
条件２．符号化対象予測ブロックで選択された符号化モードとは異なる参照リストで、同じ参照ピクチャの動きベクトルが存在する、
条件３．符号化対象予測ブロックで選択された符号化モードと同じ参照リストで、異なる参照ピクチャの動きベクトルが存在する、
条件４．符号化対象予測ブロックで選択された符号化モードとは異なる参照リストで、異なる参照ピクチャの動きベクトルが存在する、
の各条件の判定を、まず、条件１，２についてその条件１，２の優先順序で各予測ブロックに対して行い、次に条件３，４についてその条件３，４の優先順序で各予測ブロックに対して行うことを特徴とする動画像符号化方法。
【請求項４】
前記予測動きベクトル候補生成ステップは、前記条件１，２についての条件判定において、条件に一致する予測ブロックが見つかればその予測ブロックの動きベクトルをそのまま予測動きベクトルの候補とすることを特徴とする請求項３に記載の動画像符号化方法。
【請求項５】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化プログラムであって、
符号化対象予測ブロックと同一ピクチャ内の前記符号化対象予測ブロックと隣接する第１の符号化済みの予測ブロック、および前記符号化対象予測ブロックとは異なるピクチャ内の前記符号化対象予測ブロックと同一または周辺の位置にある第２の符号化済みの予測ブロックのいずれかの動きベクトルから予測して、複数の予測動きベクトルの候補を導出し、導出した予測動きベクトルの候補を予測動きベクトル候補リストに登録する予測動きベクトル候補生成ステップと、
前記予測動きベクトル候補リストから予測動きベクトルを選択する予測動きベクトル選択ステップと、
前記予測動きベクトル候補リストにおける前記選択された予測動きベクトルの位置を示す情報を符号化する符号化ステップとをコンピュータに実行させ、
前記予測動きベクトル候補生成ステップは、設定された数の予測動きベクトルの候補を得るために、前記第１の符号化済みの予測ブロックの内のどの予測ブロックの動きベクトルが予測動きベクトルの候補を導出するための動きベクトルとなるかの判定を優先順序を付けて行う際、左側の隣接ブロックグループ、及び上側の隣接ブロックグループの隣接ブロックグループ毎に所定順の各予測ブロックに対して、
条件１．符号化対象予測ブロックで選択された符号化モードと同じ参照リストで、同じ参照ピクチャの動きベクトルが存在する、
条件２．符号化対象予測ブロックで選択された符号化モードとは異なる参照リストで、同じ参照ピクチャの動きベクトルが存在する、
条件３．符号化対象予測ブロックで選択された符号化モードと同じ参照リストで、異なる参照ピクチャの動きベクトルが存在する、
条件４．符号化対象予測ブロックで選択された符号化モードとは異なる参照リストで、異なる参照ピクチャの動きベクトルが存在する、
の各条件の判定を、まず、条件１，２についてその条件１，２の優先順序で各予測ブロックに対して行い、次に条件３，４についてその条件３，４の優先順序で各予測ブロックに対して行うことを特徴とする動画像符号化プログラム。
【請求項６】
前記予測動きベクトル候補生成ステップは、前記条件１，２についての条件判定において、条件に一致する予測ブロックが見つかればその予測ブロックの動きベクトルをそのまま予測動きベクトルの候補とすることを特徴とする請求項５に記載の動画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化技術に関し、特に動き補償予測を利用した動画像符号化技術に関する。
【背景技術】
【０００２】
動画像の圧縮符号化方式の代表的なものとして、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４の規格がある。ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４では、ピクチャを複数の矩形ブロックに分割し、すでに符号化・復号したピクチャを参照ピクチャとし、参照ピクチャからの動きを予測する動き補償が用いられている。この動き補償により動きを予測する手法をインター予測と呼ぶ。ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４でのインター予測では、複数のピクチャを参照ピクチャとして用いることができ、これらの複数の参照ピクチャから最も適した参照ピクチャをブロック毎に選択して動き補償を行う。そこで、それぞれの参照ピクチャには参照インデックスが割り当てられ、この参照インデックスにより、参照ピクチャを特定する。なお、Ｂピクチャでは、符号化・復号済みの参照ピクチャから最大で２枚を選択してインター予測に用いることができる。それらの２枚の参照ピクチャからの予測をそれぞれ主に前方向の予測として使われるＬ０予測（リスト０予測）、主に後方向の予測として使われるＬ１予測（リスト１予測）として区別している。
【０００３】
さらに、Ｌ０予測とＬ１予測の２つのインター予測を同時に用いる双予測も定義されている。双予測の場合は、双方向の予測を行い、Ｌ０予測、Ｌ１予測のそれぞれのインター予測された信号に重み付け係数を掛け算し、オフセット値を加算して重畳し、最終的なインター予測信号を生成する。重み付け予測に用いる重み付け係数及びオフセット値はピクチャ単位で各リストの参照ピクチャ毎に代表的な値が設定され、符号化される。インター予測に関する符号化情報には、ブロック毎に、Ｌ０予測とＬ１予測、双予測を区別する予測モード、ブロック毎の参照リスト毎に、参照ピクチャを特定する参照インデックス、ブロックの移動方向・移動量を表す動きベクトルがあり、これらの符号化情報を符号化・復号する。
【０００４】
動き補償を行う動画像符号化方式では、各ブロックで生成される動きベクトルの符号量を削減する為に、動きベクトルに対して予測処理が行われる。ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４では、符号化対象の動きベクトルが周囲の隣接ブロックの動きベクトルと強い相関があることを利用して、周囲の隣接ブロックからの予測を行うことにより予測動きベクトルを算出し、符号化対象の動きベクトルと予測動きベクトルとの差分である差分動きベクトルを算出し、その差分動きベクトルを符号化することによって符号量を削減している。
【０００５】
具体的には、図４８（ａ）に示されるように、周囲の隣接ブロックＡ，Ｂ，Ｃの動きベクトルから中央値を算出して予測動きベクトルとし、動きベクトルとその予測動きベクトルとの差分をとることで動きベクトルの符号量を削減している（非特許文献１）。但し、図４８（ｂ）のように符号化対象ブロックと隣接ブロックとの形状が異なる場合は、左隣に複数の隣接ブロックがある時はその中の一番上のブロックを、上に複数の隣接ブロックがある時はその中の一番左のブロックを予測ブロックとし、図４８（ｃ）、（ｄ）のように符号化対象ブロックが１６×８画素或いは８×１６画素で分割される場合は、周囲の隣接ブロックの動きベクトルの中央値を取るのではなく、動き補償ブロックの配置に応じて図４８（ｃ）、（ｄ）の白抜き矢印で示されるように分割された領域毎に参照先の予測ブロックを決定し、決定された予測ブロックの動きベクトルから予測を実施する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】ISO/IEC 14496-10 Information technology -- Coding of audio-visual objects -- Part 10: Advanced Video Coding
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、非特許文献１に記載された方法では、予測ベクトルは一つしか得られないため、画像によっては予測動きベクトルの予測精度が低下し、符号化効率が良くならない場合もあった。
【０００８】
このような状況下、本発明者らは、動き補償予測を使用する画像符号化方式において、符号化情報をより一層圧縮し、全体の符号量を削減する必要性を認識するに至った。
【０００９】
本発明はこうした状況に鑑みてなされたものであり、その目的は、予測動きベクトルの候補を算出することにより、差分動きベクトルの符号量の削減を図って符号化効率を向上させる動画像符号化技術を提供することにある。また、別の目的は、符号化情報の候補を算出することにより、符号化情報の符号量の削減を図って符号化効率を向上させる動画像符号化技術を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明のある態様の動画像符号化装置は、動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化装置であって、符号化対象予測ブロックと同一ピクチャ内の前記符号化対象予測ブロックと隣接する第１の符号化済みの予測ブロック、および前記符号化対象予測ブロックとは異なるピクチャ内の前記符号化対象予測ブロックと同一または周辺の位置にある第２の符号化済みの予測ブロックのいずれかの動きベクトルから予測して、複数の予測動きベクトルの候補を導出し、導出した予測動きベクトルの候補を予測動きベクトル候補リストに登録する予測動きベクトル候補生成部（１２０、１２１）と、前記予測動きベクトル候補リストから予測動きベクトルを選択する予測動きベクトル選択部（１２４）と、前記予測動きベクトル候補リストにおける前記選択された予測動きベクトルの位置を示す情報を符号化する符号化部（１０９）とを備える。前記予測動きベクトル候補生成部（１２０、１２１）は、設定された数の予測動きベクトルの候補を得るために、前記第１の符号化済みの予測ブロックの内のどの予測ブロックの動きベクトルが予測動きベクトルの候補を導出するための動きベクトルとなるかの判定を優先順序を付けて行う際、左側の隣接ブロックグループ、及び上側の隣接ブロックグループの隣接ブロックグループ毎に所定順の各予測ブロックに対して、条件１．符号化対象予測ブロックで選択された符号化モードと同じ参照リストで、同じ参照ピクチャの動きベクトルが存在する、条件２．符号化対象予測ブロックで選択された符号化モードとは異なる参照リストで、同じ参照ピクチャの動きベクトルが存在する、条件３．符号化対象予測ブロックで選択された符号化モードと同じ参照リストで、異なる参照ピクチャの動きベクトルが存在する、条件４．符号化対象予測ブロックで選択された符号化モードとは異なる参照リストで、異なる参照ピクチャの動きベクトルが存在する、の各条件の判定を、まず、条件１，２についてその条件１，２の優先順序で各予測ブロックに対して行い、次に条件３，４についてその条件３，４の優先順序で各予測ブロックに対して行う。
【００１１】
本発明の別の態様は、動画像符号化方法である。この方法は、動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化方法であって、符号化対象予測ブロックと同一ピクチャ内の前記符号化対象予測ブロックと隣接する第１の符号化済みの予測ブロック、および前記符号化対象予測ブロックとは異なるピクチャ内の前記符号化対象予測ブロックと同一または周辺の位置にある第２の符号化済みの予測ブロックのいずれかの動きベクトルから予測して、複数の予測動きベクトルの候補を導出し、導出した予測動きベクトルの候補を予測動きベクトル候補リストに登録する予測動きベクトル候補生成ステップと、前記予測動きベクトル候補リストから予測動きベクトルを選択する予測動きベクトル選択ステップと、前記予測動きベクトル候補リストにおける前記選択された予測動きベクトルの位置を示す情報を符号化する符号化ステップとを備える。前記予測動きベクトル候補生成ステップは、設定された数の予測動きベクトルの候補を得るために、前記第１の符号化済みの予測ブロックの内のどの予測ブロックの動きベクトルが予測動きベクトルの候補を導出するための動きベクトルとなるかの判定を優先順序を付けて行う際、左側の隣接ブロックグループ、及び上側の隣接ブロックグループの隣接ブロックグループ毎に所定順の各予測ブロックに対して、条件１．符号化対象予測ブロックで選択された符号化モードと同じ参照リストで、同じ参照ピクチャの動きベクトルが存在する、条件２．符号化対象予測ブロックで選択された符号化モードとは異なる参照リストで、同じ参照ピクチャの動きベクトルが存在する、条件３．符号化対象予測ブロックで選択された符号化モードと同じ参照リストで、異なる参照ピクチャの動きベクトルが存在する、条件４．符号化対象予測ブロックで選択された符号化モードとは異なる参照リストで、異なる参照ピクチャの動きベクトルが存在する、の各条件の判定を、まず、条件１，２についてその条件１，２の優先順序で各予測ブロックに対して行い、次に条件３，４についてその条件３，４の優先順序で各予測ブロックに対して行う。
【００１８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１９】
本発明によれば、複数の予測動きベクトルを算出し、それら複数の予測動きベクトルの中から最適な予測動きベクトルを選択し、差分動きベクトルの発生符号量を削減させて、符号化効率を向上させることができる。また、本発明によれば、複数の符号化情報の候補を算出し、それら複数の符号化情報の中から最適な動き情報を選択し、伝送する符号化情報の発生符号量を削減させて、符号化効率を向上させることができる。
【図面の簡単な説明】
【００２０】
【図１】実施の形態に係る動きベクトルの予測方法を実行する動画像符号化装置の構成を示すブロック図である。
【図２】実施の形態に係る動きベクトルの予測方法を実行する動画像復号装置の構成を示すブロック図である。
【図３】符号化ブロックを説明する図である。
【図４】予測ブロックの形状の種類を説明する図である。
【図５】予測ブロックグループを説明する図である。
【図６】予測ブロックグループを説明する図である。
【図７】予測ブロックグループを説明する図である。
【図８】予測ブロックグループを説明する図である。
【図９】予測ブロックグループを説明する図である。
【図１０】動きベクトルの予測方法に関するスライスレベルでのビットストリームのシンタックスを説明する図である。
【図１１】動きベクトルの予測方法に関する予測ブロックレベルでのビットストリームのシンタックスを説明する図である。
【図１２】図１の差分動きベクトル算出部の詳細な構成を示すブロック図である。
【図１３】図２の動きベクトル算出部の詳細な構成を示すブロック図である。
【図１４】図１の差分動きベクトル算出部の動作を説明するフローチャートである。
【図１５】図２の動きベクトル算出部の動作を説明するフローチャートである。
【図１６】動きベクトルの予測方法を説明するフローチャートである。
【図１７】予測動きベクトルの候補算出方法を説明するフローチャートである。
【図１８】予測動きベクトルの候補算出方法を説明するフローチャートである。
【図１９】予測動きベクトルの候補算出方法を説明するフローチャートである。
【図２０】予測動きベクトルの候補算出方法を説明するフローチャートである。
【図２１】予測動きベクトルの候補算出方法を説明するフローチャートである。
【図２２】動きベクトルのスケーリング方法を説明するフローチャートである。
【図２３】動きベクトルのスケーリングを説明する図である。
【図２４】予測動きベクトルの候補算出方法を説明するフローチャートである。
【図２５】予測動きベクトルの候補算出方法を説明するフローチャートである。
【図２６】予測動きベクトルの候補算出方法を説明するフローチャートである。
【図２７】予測動きベクトルの候補算出方法を説明するフローチャートである。
【図２８】予測動きベクトルの候補算出方法を説明するフローチャートである。
【図２９】予測動きベクトルの候補算出方法を説明するフローチャートである。
【図３０】予測動きベクトル候補リストへの予測動きベクトルの候補の登録方法を説明するフローチャートである。
【図３１】予測動きベクトル候補リストへの予測動きベクトルの候補の登録方法を説明するフローチャートである。
【図３２】予測動きベクトル候補リストへの予測動きベクトルの候補の登録方法を説明するフローチャートである。
【図３３】予測動きベクトル候補リストへの予測動きベクトルの候補の登録方法を説明するフローチャートである。
【図３４】予測動きベクトル候補リストへの予測動きベクトルの候補の登録方法を説明するフローチャートである。
【図３５】予測動きベクトル候補リストへの予測動きベクトルの候補の登録方法を説明するフローチャートである。
【図３６】予測動きベクトル候補リストへの予測動きベクトルの候補の登録方法を説明するフローチャートである。
【図３７】マージ・モードでの周辺の予測ブロックを説明する図である。
【図３８】図１のインター予測情報推定部の詳細な構成を示すブロック図である。
【図３９】図２のインター予測情報推定部の詳細な構成を示すブロック図である。
【図４０】マージ・モードの動作を説明するフローチャートである。
【図４１】マージ・モードの動作を説明するフローチャートである。
【図４２】マージ・モードの動作を説明するフローチャートである。
【図４３】マージ・モードの動作を説明するフローチャートである。
【図４４】マージ・モードの動作を説明するフローチャートである。
【図４５】マージ・モードの動作を説明するフローチャートである。
【図４６】マージ・モードの動作を説明するフローチャートである。
【図４７】マージ・モードの動作を説明するフローチャートである。
【図４８】従来の予測動きベクトルの算出方法を説明する図である。
【発明を実施するための形態】
【００２１】
実施の形態では、動画像の符号化に関し、特にピクチャを矩形ブロックに分割し、ピクチャ間でブロック単位に動き補償を行う動画像符号化における符号化効率を向上させる為に、符号化済みの周囲のブロックの動きベクトルから複数の予測動きベクトルを算出し、符号化対象のブロックの動きベクトルと選択された予測動きベクトルとの差分ベクトルを算出して符号化することによって符号量を削減する。あるいは、符号化済みの周囲のブロックの符号化情報を利用することにより、符号化対象ブロックの符号化情報を推定することによって符号量を削減する。また、動画像の復号の場合は、復号済みの周囲のブロックの動きベクトルから複数の予測動きベクトルを算出し、符号化ストリームから復号された差分ベクトルと選択された予測動きベクトルとから復号対象のブロックの動きベクトルを算出して復号する。あるいは、復号済みの周囲のブロックの符号化情報を利用することにより、復号対象ブロックの符号化情報を推定する。
【００２２】
図１は実施の形態に係る動画像符号化装置の構成を示すブロック図である。実施の形態の動画像符号化装置は、画像メモリ１０１、動きベクトル検出部１０２、差分動きベクトル算出部１０３、インター予測情報推定部１０４、動き補償予測部１０５、予測方法決定部１０６、残差信号生成部１０７、直交変換・量子化部１０８、第１の符号化ビット列生成部１０９、第２の符号化ビット列生成部１１０、多重化部１１１、逆量子化・逆直交変換部１１２、復号画像信号重畳部１１３、符号化情報格納メモリ１１４、および復号画像メモリ１１５を備える。
【００２３】
画像メモリ１０１は、撮影／表示時間順に供給された符号化対象の画像信号を一時格納する。画像メモリ１０１は、格納された符号化対象の画像信号を、所定の画素ブロック単位で、動きベクトル検出部１０２、予測方法決定部１０６、および残差信号生成部１０７に供給する。その際、撮影／表示時間順に格納された画像は、符号化順序に並べ替えられて、画素ブロック単位で、画像メモリ１０１から出力される。
【００２４】
動きベクトル検出部１０２は、画像メモリ１０１から供給される画像信号と復号画像メモリ１１５から供給される復号画像（参照ピクチャ）間でブロックマッチング等により各予測ブロックサイズ、各予測モードごとの動きベクトルを各予測ブロック単位で検出し、検出された動きベクトルを動き補償予測部１０５、差分動きベクトル算出部１０３、および予測方法決定部１０６に供給する。ここで、予測ブロックは動き補償を行う単位であり、詳細については後述する。
【００２５】
差分動きベクトル算出部１０３は、符号化情報格納メモリ１１４に記憶されている既に符号化された画像信号の符号化情報を用いて、複数の予測動きベクトルの候補を算出して後述するＭＶＰリストに登録し、ＭＶＰリストに登録された複数の予測動きベクトルの候補の中から最適な予測動きベクトルを選択し、動きベクトル検出部１０２が検出した動きベクトルと予測動きベクトルから差分動きベクトルを算出し、算出された差分動きベクトルを予測方法決定部１０６に供給する。これらの符号化情報に加えて、後述するように予測ブロックごとに重みづけ予測に用いる重み付けパラメータを切り替える場合は、選択された予測ブロックの重み付け予測の重み付けパラメータ（動き補償画像信号に乗算する重みづけ係数値及び加算する重み付けオフセット値）も予測方法決定部１０６に供給する。さらに、ＭＶＰリストに登録された予測動きベクトルの候補から選択された予測動きベクトルを特定するＭＶＰインデックスを予測方法決定部１０６に供給する。差分動きベクトル算出部１０３の詳細な構成と動作は後述する。
【００２６】
インター予測情報推定部１０４は、マージモードのインター予測情報を推定する。マージモードとは、当該予測ブロックの予測モード、参照インデックス（参照リストに登録されている複数の参照画像から動き補償予測に利用する参照画像を特定するための情報）、動きベクトル等のインター予測情報を符号化するのではなく、符号化済みの隣接するインター予測された予測ブロック、あるいは異なる画像のインター予測された予測ブロックのインター予測情報を利用するモードである。符号化情報格納メモリ１１４に記憶されている既に符号化された予測ブロックの符号化情報を用いて、複数のマージの候補（インター予測情報の候補）を算出て後述するマージ候補リストに登録し、マージ候補リストに登録された複数のマージ候補の中から最適なマージ候補を選択し、選択されたマージ候補の予測モード、参照インデックス、動きベクトル等のインター予測情報を動き補償予測部１０５に供給するとともに、選択されたマージ候補を特定するマージインデックスを予測方法決定部１０６に供給する。これらの符号化情報に加えて、後述するように予測ブロックごとに重み付けパラメータを切り替える場合は、選択されたマージ候補の重み付け予測の重み付けパラメータも動き補償予測部１０５に供給する。さらに、選択されたマージ候補を特定するマージインデックスを予測方法決定部１０６に供給する。なお、これらの符号化情報に加えて、選択された符号化済みの予測ブロックの量子化の量子化パラメータ等の符号化情報も予測値として利用することができ、予測する場合は予測する符号化情報を予測方法決定部１０６に供給する。インター予測情報推定部１０４の詳細な構成と動作は後述する。
【００２７】
動き補償予測部１０５は、動きベクトル検出部１０２およびインター予測情報推定部１０４により検出された動きベクトルを用いて参照ピクチャから動き補償予測により予測画像信号を生成し、予測画像信号を予測方法決定部１０６に供給する。なお、主に前方向の予測として使われるＬ０予測、及び主に後方向の予測として使われるＬ１予測では、片方向の予測を行う。双予測の場合は、双方向の予測を行い、主に前方向の予測として使われるＬ０予測、主に後方向の予測として使われるＬ１予測のそれぞれのインター予測された信号に適応的に重み係数を掛け算し、オフセット値を加算て重畳し、最終的な予測画像信号を生成する。なお、重み付け予測に用いる重み付け係数、オフセット値から成る重み付けパラメータはピクチャ単位で切り替えてもよいし、スライス単位で切り替えてもよいし、予測ブロック単位で切り替えてもよい。この重み付けパラメータは、ピクチャ単位またはスライス単位で切り替える場合、ピクチャ単位またはスライス単位で各リストの参照ピクチャ毎に代表的な値が設定されて符号化される。予測ブロック単位で切り替える場合、予測ブロック単位に重み付けパラメータが設定されて符号化される。
【００２８】
予測方法決定部１０６は差分動きベクトルの符号量、動き補償予測信号と画像信号との間の歪量等を評価することにより、複数の予測方法の中から、最適な予測ブロックサイズ（予測ブロックサイズについては図４を参照して後述する）、予測モード、マージモードか否か等の予測方法を決定し、決定された予測方法を示す情報、及び決定された予測方法に応じた差分動きベクトル等を含む符号化情報を第１の符号化ビット列生成部１０９に供給する。なお、必要に応じて重み付け予測を行う際に用いる重み付けパラメータ、量子化／逆量子化を行う際に用いる量子化パラメータの符号化情報の予測値も第１の符号化ビット列生成部１０９に供給する。
【００２９】
さらに、予測方法決定部１０６は、決定された予測方法を示す情報、及び決定された予測方法に応じた動きベクトル等を含む符号化情報を符号化情報格納メモリ１１４に格納する。なお、必要に応じて予測方法決定部１０６から供給される重み付け予測の重み付けパラメータを符号化情報格納メモリ１１４に格納する。予測方法決定部１０６は、決定された予測モードに応じた動き補償予測画像信号を残差信号生成部１０７と復号画像信号重畳部１１３に与える。
【００３０】
残差信号生成部１０７は、符号化する画像信号と予測信号との引き算を行い残差信号を生成し、直交変換・量子化部１０８に与える。
直交変換・量子化部１０８は、残差信号に対して量子化パラメータに応じて直交変換及び量子化を行い直交変換・量子化された残差信号を生成し、第２の符号化ビット列生成部１１０と逆量子化・逆直交変換部１１２に供給する。さらに、直交変換・量子化部１０８は、量子化パラメータを符号化情報格納メモリ１１４に格納する。
【００３１】
第１の符号化ビット列生成部１０９は、シーケンス、ピクチャ、スライス、符号化ブロック単位の情報に加えて、予測ブロック毎に予測方法決定部１０６によって決定された予測方法に応じた符号化情報を符号化する。具体的には、インター予測かどうかを判別するパラメータ、インター予測の場合、マージモードかどうかを判別するパラメータ、マージモードの場合はマージ・インデックス、マージモードでない場合は予測モード、ＭＶＰインデックス、差分動きベクトルに関する情報等の符号化情報を後述する規定のシンタックス規則に従って符号化して第１の符号化ビット列を生成し、多重化部１１１に供給する。なお、マージモードの場合、後述するマージ候補リストに登録されるマージ候補が１つの場合、マージ・インデックスｍｅｒｇｅＩｄｘは０と特定できるので、符号化しない。同様に、マージモードでない場合、後述するＭＶＰリストに登録される予測動きベクトルの候補が１つの場合、ＭＶＰインデックスｍｅｒｇｅＩｄｘは０と特定できるので、符号化しない。
【００３２】
ここで、ＭＶＰインデックスを符号化する際、ＭＶＰリストにおいて優先順位が高い（すなわちインデックス番号が小さい）ＭＶＰインデックスほど符号長が短い符号を割り当てて可変長符号化する。同様に、マージ・インデックスを符号化する際、マージリストにおいて優先順位が高い（すなわちインデックス番号が小さい）マージ・インデックスほど符号長が短い符号を割り当てて可変長符号化する。
【００３３】
なお、重み付け予測を予測ブロック単位で適応的に切り替える場合は、マージモードでない場合に予測方法決定部１０６から供給される重み付け予測の重み付けパラメータも符号化する。量子化の量子化パラメータ符号化情報の予測値と実際に用いる値との差分を符号化する。
【００３４】
第２の符号化ビット列生成部１１０は、直交変換及び量子化された残差信号を規定のシンタックス規則に従ってエントロピー符号化して第２の符号化ビット列を生成し、多重化部１１１に供給する。多重化部１１１で、第１の符号化ビット列と第２の符号化ビット列を規定のシンタックス規則に従って多重化し、ビットストリームを出力する。
【００３５】
逆量子化・逆直交変換部１１２は、直交変換・量子化部１０８から供給された直交変換・量子化された残差信号を逆量子化及び逆直交変換して残差信号を算出し、復号画像信号重畳部１１３に供給する。復号画像信号重畳部１１３は、予測方法決定部１０６による決定に応じた予測信号と逆量子化・逆直交変換部１１２で逆量子化及び逆直交変換された残差信号を重畳して復号画像を生成し、復号画像メモリ１１５に格納する。なお、復号画像に対して符号化によるブロック歪等の歪を減少させるフィルタリング処理を施して、復号画像メモリ１１５に格納されることもある。その場合、必要に応じてＡＬＦやデブロッキングフィルタ等のポストフィルタの情報を識別するフラグ等の予測された符号化情報を符号化情報格納メモリ１１４に格納する。
【００３６】
図２は図１の動画像符号化装置に対応した実施の形態に係る動画像復号装置の構成を示すブロックである。実施の形態の動画像復号装置は、分離部２０１、第１符号化ビット列復号部２０２、第２符号化ビット列復号部２０３、動きベクトル算出部２０４、インター予測情報推定部２０５、動き補償予測部２０６、逆量子化・逆直交変換部２０７、復号画像信号重畳部２０８、符号化情報格納メモリ２０９、および復号画像メモリ２１０を備える。
【００３７】
図２の動画像復号装置の復号処理は、図１の動画像符号化装置の内部に設けられている復号処理に対応するものであるから、図２の動き補償予測部２０６、逆量子化・逆直交変換部２０７、復号画像信号重畳部２０８、符号化情報格納メモリ２０９、および復号画像メモリ２１０の各構成は、図１の動画像符号化装置の動き補償予測部１０５、逆量子化・逆直交変換部１１２、復号画像信号重畳部１１３、符号化情報格納メモリ１１４、および復号画像メモリ１１５の各構成とそれぞれ対応する機能を有する。
【００３８】
分離部２０１に供給されるビットストリームは規定のシンタックスの規則に従って分離し、分離された符号化ビット列が第１符号化ビット列復号部２０２、第２符号化ビット列復号部２０３に供給される。
【００３９】
第１符号化ビット列復号部２０２は、供給された符号化ビット列を復号して、シーケンス、ピクチャ、スライス、符号化ブロック単位の情報、及び、予測ブロック単位の符号化情報を得る。具体的には、インター予測かどうかを判別するパラメータ、インター予測かどうかを判別するパラメータ、マージモードの場合はマージ・インデックス、マージモードでない場合は予測モード、ＭＶＰインデックス、差分動きベクトル等に関する符号化情報を後述する規定のシンタックス規則に従って復号し、符号化情報を動きベクトル算出部２０４またはインター予測情報推定部２０５と動き補償予測部２０６に与えるとともに符号化情報格納メモリ２０９に格納する。なお、マージモードの場合、後述するマージ候補リストに登録されるマージ候補が１つの場合、マージ・インデックスｍｅｒｇｅＩｄｘは０と特定できるので、符号化ビット列には符号化されておらず、ｍｅｒｇｅＩｄｘを０とする。したがって、マージモードの場合、第１符号化ビット列復号部２０２では、インター予測情報推定部２０５で算出されたマージ候補リストに登録されるマージ候補の数が供給される。同様に、マージモードでない場合、後述するＭＶＰリストに登録される予測動きベクトルの候補が１つの場合、ＭＶＰインデックスｍｖｐＩｄｘは０と特定できるので、符号化されておらず、ｍｖｐＩｄｘを０とする。したがって、マージモードでない場合、第１符号化ビット列復号部２０２では、動きベクトル算出部２０４で算出されたＭＶＰリストに登録される予測動きベクトル候補の数が供給される。
【００４０】
第２符号化ビット列復号部２０３は、供給された符号化ビット列を復号して直交変換・量子化された残差信号を算出し、直交変換・量子化された残差信号を逆量子化・逆直交変換部２０７に与える。
【００４１】
動きベクトル算出部２０４は、復号対象の予測ブロックがマージモードでない時に、符号化情報格納メモリ２０９に記憶されている既に復号された画像信号の符号化情報を用いて、複数の予測動きベクトルの候補を算出して後述するＭＶＰリストに登録し、ＭＶＰリストに登録された複数の予測動きベクトルの候補の中から、第１符号化ビット列復号部２０２で復号され供給される符号化情報に応じた予測動きベクトルを選択し、第１符号化ビット列復号部２０２で復号された差分ベクトルと選択された予測動きベクトルから動きベクトルを算出し、動き補償予測部２０６に供給するとともに、符号化情報格納メモリ２０９に供給する。さらに、動きベクトル算出部２０４で算出されたＭＶＰリストに登録される予測動きベクトル候補の数を第１符号化ビット列復号部２０２に供給する。動きベクトル算出部２０４の詳細な構成と動作は後述する。
【００４２】
インター予測情報推定部２０５は、復号対象の予測ブロックがマージモードの時に、マージモードのインター予測情報を推定する。符号化情報格納メモリ１１４に記憶されている既に復号された予測ブロックの符号化情報を用いて、複数のマージの候補を算出して後述するマージ候補リストに登録し、マージ候補リストに登録された複数のマージ候補の中から第１符号化ビット列復号部２０２で復号され供給されるマージインデックスに対応したマージ候補を選択し、選択されたマージ候補の予測モード、参照インデックス、予測動きベクトル等のインター予測情報を動き補償予測部２０６に供給するとともに、符号化情報格納メモリ２０９に格納する。さらに、インター予測情報推定部２０５で算出されたマージ候補リストに登録されるマージ候補の数を第１符号化ビット列復号部２０２に供給する。これらの符号化情報に加えて、後述するように予測ブロックごとに重み付けパラメータを切り替える場合は、選択されたマージ候補の重み付け予測の重み付けパラメータも動き補償予測部２０６に供給する。なお、選択された符号化済みの予測ブロックのこれらの符号化情報に加えて、量子化の量子化パラメータのインター予測情報以外の符号化情報も予測値として利用することができ、予測する場合は予測する符号化情報を予測方法決定部１０６に供給することもできる。インター予測情報推定部２０５の詳細な構成と動作は後述する。
【００４３】
動き補償予測部２０６は、動きベクトル算出部２０４で算出された動きベクトルを用いて参照ピクチャから動き補償予測により予測画像信号を生成し、予測画像信号を復号画像信号重畳部２０８に供給する。なお、両予測の場合は、Ｌ０予測、Ｌ１予測の２つの動き補償予測画像信号に適応的に重み係数を掛け算して重畳し、最終的な予測画像信号を生成する。
【００４４】
逆量子化・逆直交変換部２０７は、第１符号化ビット列復号部２０２で復号された直交変換・量子化された残差信号に対して逆直交変換及び逆量子化を行い、逆直交変換・逆量子化された残差信号を得る。
【００４５】
復号画像信号重畳部２０８は、動き補償予測部２０６で動き補償予測された予測画像信号と、逆量子化・逆直交変換部２０７により逆直交変換・逆量子化された残差信号とを重畳することにより、復号画像信号を復号し、復号画像メモリ２１０に格納する。復号画像メモリ２１０に格納する際には、復号画像に対して符号化によるブロック歪等を減少させるフィルタリング処理を施して、復号画像メモリ２１０に格納されることもある。
【００４６】
実施の形態に係る動きベクトルの予測方法は、図１の動画像符号化装置の差分動きベクトル算出部１０３及び図２の動画像復号装置の動きベクトル算出部２０４において実施される。
【００４７】
動きベクトルの予測方法の実施例を説明する前に、本実施例において使用する用語を定義する。
【００４８】
（符号化ブロックについて）
実施の形態では、図３に示されるように、画面内を任意の同一サイズの正方の矩形の単位にて均等分割する。この単位をツリーブロックと定義し、画像内での符号化／復号対象ブロック（符号化においては符号化対象ブロック、復号においては復号対象ブロック）を特定するためのアドレス管理の基本単位とする。ツリーブロックは画面内のテクスチャに応じて、符号化処理を最適にすべく、必要に応じてツリーブロック内を階層的に４分割して、ブロックサイズの小さいブロックにすることが出来る。このブロックを符号化ブロックと定義し、符号化及び復号を行う際の処理の基本単位とする。ツリーブロックは最大サイズの符号化ブロックでもある。符号化ブロックをこれ以上４分割出来ない最小のサイズとなる符号化ブロックを最小符号化ブロックと呼ぶこととする。
【００４９】
（予測ブロックについて）
画面内をブロックに分割して動き補償を行う場合、動き補償のブロックサイズをより小さくした方が、よりきめ細かい予測を行うことが出来ることから、いくつかのブロック形状、およびサイズの中から最適なものを選択して、符号化ブロック内部を分割して動き補償を行う仕組みを取り入れている。この動き補償を行う単位を予測ブロックと呼ぶ。図４に示すように、符号化ブロック内部を分割せず１つの予測ブロックとみなしたもの（図４（ａ））を２Ｎｘ２Ｎ分割、水平方向に２分割し、２つの予測ブロックとしたもの（図４（ｂ））を２ＮｘＮ分割、垂直方向に分割し、２つの予測ブロックとしたもの（図４（ｃ）をＮｘ２Ｎ分割、水平と垂直の均等分割により２つの予測ブロックとしたもの（図４（ｄ）をＮｘＮ分割とそれぞれ定義する。
【００５０】
符号化ブロック内部において、各予測ブロックを特定する為に、０から開始する番号を、符号化ブロック内部に存在する予測ブロックに対して割り当てる。この番号を予測ブロックインデックスｐｕＰａｒｔＩｄｘと定義する。図４の符号化ブロックの各予測ブロックの中に記述された数字は、その予測ブロックの予測ブロックインデックスｐｕＰａｒｔＩｄｘを表す。
【００５１】
（予測ブロックグループについて）
複数の予測ブロックで構成されるグループを予測ブロックグループと定義する。図５は符号化／復号対象の予測ブロックと同一ピクチャ内でその符号化／復号対象の予測ブロックに隣接する予測ブロックグループを説明する図である。図９は符号化／復号対象の予測ブロックと時間的に異なるピクチャにおいて、符号化／復号対象の予測ブロックと同一位置あるいはその近傍の位置に存在する既に符号化／復号済みの予測ブロックグループを説明する図である。図５、図６、図７、図８、図９を用いて本発明の予測ブロックグループについて説明する。
【００５２】
符号化／復号対象の予測ブロックと同一ピクチャ内でその符号化／復号対象の予測ブロックの左側に隣接する予測ブロックＡ１、符号化／復号対象の予測ブロックの左下に隣接する予測ブロックＡ０、および符号化／復号対象の予測ブロックの左上に隣接する予測ブロックＡ２（後述の予測ブロックＢ２と同じ）で構成される第１の予測ブロックグループを左側に隣接する予測ブロックグループと定義する。
【００５３】
なお、図６に示すように、符号化／復号対象の予測ブロックの左側に隣接する予測ブロックのサイズが符号化／復号対象の予測ブロックより大きい場合にも、前記条件に従い、左側に隣接する予測ブロックＡがその符号化／復号対象の予測ブロックの左側に隣接していれば予測ブロックＡ１とし、符号化／復号対象の予測ブロックの左下に隣接していれば予測ブロックＡ０とし、符号化／復号対象の予測ブロックの左上に隣接していれば予測ブロックＡ２とする。
【００５４】
なお、図７に示すように、符号化／復号対象の予測ブロックの左側に隣接する予測ブロックのサイズが符号化／復号対象の予測ブロックより小さく、複数存在する場合には、その中で最も下の予測ブロックＡ１０だけを左側に隣接する予測ブロックＡ１として左側に隣接する予測ブロックグループに含ませる。ただし、その中で最も上の予測ブロックＡ１２だけを左側に隣接する予測ブロックＡ１として左側に隣接する予測ブロックグループに含ませることもできるし、最も下の予測ブロックＡ１０と最も上の予測ブロックＡ１２を共に左側に隣接する予測ブロックグループに含ませてもよいし、左側に隣接するすべての予測ブロックＡ１０、Ａ１１、Ａ１２を左側に隣接する予測ブロックグループに含ませてもよい。符号化／復号対象の予測ブロックと同一ピクチャ内でその符号化／復号対象の予測ブロックの上側に隣接する予測ブロックＢ１、符号化／復号対象の予測ブロックの右上に隣接する予測ブロックＢ０、および符号化／復号対象の予測ブロックの左上に隣接する予測ブロックＢ２（予測ブロックＡ２と同じ）で構成される第２の予測ブロックグループを上側に隣接する予測ブロックグループと定義する。
【００５５】
なお、図８に示すように、符号化／復号対象の予測ブロックの上側に隣接する予測ブロックのサイズが符号化／復号対象の予測ブロックより大きい場合にも、前記条件に従い、上側に隣接する予測ブロックＢがその符号化／復号対象の予測ブロックの上側に隣接していれば予測ブロックＢ１とし、符号化／復号対象の予測ブロックの右上に隣接していれば予測ブロックＢ０とし、符号化／復号対象の予測ブロックの左上に隣接していれば予測ブロックＢ２とする。
【００５６】
なお、図７に示すように、符号化／復号対象の予測ブロックの上側に隣接する予測ブロックのサイズが小さく、複数存在する場合には、その中で最も右の予測ブロックＢ１０だけを上側に隣接する予測ブロックＢ１として上側に隣接する予測ブロックグループに含ませる。ただし、その中で最も左の予測ブロックＢ１２だけを上側に隣接する予測ブロックＢ１として上側に隣接する予測ブロックグループに含ませることもできるし、最も右の予測ブロックＢ１０と最も左の予測ブロックＢ１２を共に左側に隣接する予測ブロックグループに含ませてもよいし、上側に隣接する予測ブロックをすべて上側に隣接する予測ブロックグループに含ませてもよい。
【００５７】
なお、右上に隣接する予測ブロックＡ２／Ｂ２に関しては、左側に隣接する予測ブロックグループにも左側に隣接する予測ブロックグループにも含まれ、左側に隣接する予測ブロックグループについて説明する場合は、予測ブロックＡ２、上側に隣接する予測ブロックグループについて説明する場合は、予測ブロックＢ２とする。
【００５８】
本方式においては、左上に隣接する予測ブロックを左側に隣接する予測ブロックグループと上側に隣接する予測ブロックグループの双方に所属させることで、予測動きベクトルの候補を探す機会を増やしている。並列処理を行う場合は、最大処理量は増加しないが、直列処理での処理量の削減を重視する場合には、左上に隣接する予測ブロックはどちらか一方のグループにだけに所属させてもよい。
【００５９】
図９に示すように、符号化／復号対象の予測ブロックと時間的に異なるピクチャにおいて、符号化／復号対象の予測ブロックと同一位置あるいはその近傍の位置に存在する既に符号化／復号済みの予測ブロックグループＴ０，Ｔ１，Ｔ２，Ｔ３，およびＴ４で構成される第３の予測ブロックグループを異なる時間の予測ブロックグループと定義する。
【００６０】
（参照リストについて）
符号化及び復号の際には参照リストＬＸ毎の参照インデックスから参照ピクチャを指定して参照する。Ｌ０とＬ１の２つ用意されていて、Ｘには０或いは１が入る。参照リストＬ０に登録されている参照ピクチャを参照するインター予測をＬ０予測（Ｐｒｅｄ＿Ｌ０）と呼び、参照リストＬ１に登録されている参照ピクチャを参照する動き補償予測をＬ１予測（Ｐｒｅｄ＿Ｌ１）と呼ぶ。主としてＬ０予測は前方向予測に、Ｌ１予測は後方向予測として使用され、ＰスライスではＬ０予測のみ、ＢスライスではＬ０予測、Ｌ１予測、Ｌ０予測とＬ１予測を平均または重み付け加算する両予測（Ｐｒｅｄ＿ＢＩ）が使用出来る。以降の処理において出力に添え字ＬＸが付いている値に対しては、Ｌ０予測、Ｌ１予測ごとに処理を行うことを前提とする。
【００６１】
（ＰＯＣについて）
ＰＯＣは符号化される画像に関連付けられる変数とし、出力順序で１ずつ増加する値が設定されるものとする。ＰＯＣの値によって、同じ画像であるかを判別したり、出力順序での前後関係を判別したり、画像間の距離を判別したりすることができる。例えば、２つの画像のＰＯＣが同じ値を持つ場合、同一の画像であると判断できる。２つの画像のＰＯＣが違う値を持つ場合、ＰＯＣの値が小さい画像のほうが、先に出力される画像であると判断でき、２つの画像のＰＯＣの差がフレーム間距離を示す。
【００６２】
実施の形態による動きベクトルの予測方法を図面を用いて説明する。動きベクトルの予測方法は、符号化ブロックを構成する予測ブロック単位に、符号化及び復号の処理の何れでも実施される。動き補償による画像間符号化（インター予測）が選択された場合に、符号化の場合、符号化対象の動きベクトルから符号化する差分動きベクトルを算出する時に用いる符号化済みの動きベクトルを利用して予測動きベクトルを算出する際、復号の場合、復号対象の動きベクトルを算出する時に用いる復号済みの動きベクトルを利用して予測動きベクトルを算出する際に実施される。
【００６３】
（シンタックスについて）
まず、本実施例に係る動きベクトルの予測方法を備える動画像符号化装置により符号化される動画像のビットストリームの符号化および復号の共通規則であるシンタックスについて説明する。
【００６４】
図１０は本発明により生成されるビットストリームのスライス単位でスライスヘッダーに記述される第１のシンタックスパターンを示す。スライス単位で動き補償による画像間予測（インター予測）を行う場合、即ちスライスタイプがＰ（片方向予測）或いはＢ（両方向予測）の場合に、インター予測のマージモードでない予測ブロックにおいて、同一ピクチャ内で隣接する周囲の予測ブロックの動きベクトルだけでなく、時間方向で異なるピクチャの中の処理対象の予測ブロックと同一位置あるいは近傍の予測ブロックの動きベクトルを利用して動きベクトルの予測を行うかどうかを示し、インター予測のマージモードの予測ブロックにおいて、同一ピクチャ内で隣接する周囲の予測ブロックの符号化情報だけでなく、時間方向で異なるピクチャの中の処理対象の予測ブロックと同一位置あるいは近傍の予測ブロックの符号化情報も利用してインター予測を行うかどうかを示す第１のフラグｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｔｅｍｐｏｒａｌ＿ｆｌａｇが設置される。
【００６５】
更に、ｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｔｅｍｐｏｒａｌ＿ｆｌａｇが真（１）の場合は、インター予測のマージモードでない予測ブロックにおいて、時間方向で異なるピクチャの中の処理対象の予測ブロックと同一位置または近傍の予測ブロックの動きベクトルの候補が優先順位を上げて後述するＭＶＰリストに登録されるかどうかを示し、インター予測のマージモードの予測ブロックにおいて、時間方向で異なるピクチャの中の処理対象の予測ブロックと同一位置あるいは近傍のマージ候補が優先順位を上げて後述するマージ候補リストに登録されるかどうかを示す第２のフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが設置される。この値は後述の判定処理を簡略化にするために真（１）または偽（０）に固定してもよいが、符号化効率を向上させるためフレーム毎に適応的に変更することでより符号量を削減する。
【００６６】
符号化／復号対象ピクチャと最も近い参照ピクチャとの間の距離が近い場合は、ｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇを真（１）とし、符号化／復号対象画像と参照ピクチャとの間の距離が遠い場合は、偽（０）と設定することで、後述するＭＶＰインデックス、またはマージ・インデックスの符号量を削減することができる。この距離が比較的小さい場合は異なる時間からのＭＶＰの候補またはマージの候補が候補として比較的相応しいと判断できるからである。例えば、フレームレートが３０Ｈｚの場合、符号化／復号対象ピクチャと最も近い参照ピクチャとの間の距離がＸフレーム以内（Ｘ＝１〜３程度）の場合、ｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇを真（１）とし、符号化／復号対象画像と参照ピクチャとの間の距離がＸフレームより大きい場合は、偽（０）と設定することで、後述するＭＶＰインデックス、またはマージ・インデックスの符号量を削減することができる。この距離が小さい場合は距離が大きい場合よりもインター予測の信頼性が高く、候補として相応しいと判断する。この閾値Ｘはシーケンスの内容に応じて変更することで、より符号量を削減することができる。動きが大きく複雑なシーケンスの場合、閾値Ｘを小さくすることで、時間方向のＭＶＰ候補やマージ候補の優先順位を下げることにより、符号化効率を向上することができる。または、符号化処理過程での統計量を基に優先順位を制御することもできる。符号処理時に符号化済みの選択数をそれぞれカウントし、時間方向で異なるピクチャの中の処理対象の予測ブロックと同一位置の予測ブロックの動きベクトルの候補またはマージ候補が同一ピクチャ内で左または上に隣接する周囲の予測ブロックの動きベクトルよりも多い場合、後に続く符号化対象画像のｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇを真（１）とし、少ない場合、符号化／復号対象画像と参照ピクチャとの間の距離が遠い場合は、偽（０）と設定することで、後述するＭＶＰインデックス、またはマージ・インデックスの符号量を削減することができる。
【００６７】
さらに、スライスタイプがＢの場合は、時間方向の予測動きベクトルの候補、またはマージ候補を算出する際に用いる時間方向で異なるピクチャｃｏｌＰｉｃが処理対象の予測ブロックが含まれるピクチャのＬ０の参照リスト或いはＬ１の参照リストのどちらに登録されている参照画像を使用するかを示す第３フラグｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが設置される。
【００６８】
さらに、スライスタイプがＰ（片方向予測）或いはＢ（両方向予測）の場合は、後述するＭＶＰリスト、またはマージ候補リスト内の登録順序を予測ブロックごとに適応的に変更するか否かを示す第４フラグｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが設置される。
【００６９】
なお、以上のシンタックス要素はピクチャー単位で設定されるシンタックス要素を記述するピクチャー・パラメータ・セットに設置してもよい。
【００７０】
また、第１のフラグｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｔｅｍｐｏｒａｌ＿ｆｌａｇ、第２のフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇ、第３フラグｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ、第４フラグｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇは、それぞれマージモードでない動きベクトル予測用と、マージモード用で独立した別個のフラグを用意して、それぞれ独立で制御することもできる。
【００７１】
図１１は予測ブロック単位に記述されるシンタックスパターンを示す。予測ブロックの予測モードＰｒｅｄＭｏｄｅの値が画像間予測（インター予測）を示すＭＯＤＥ＿ＩＮＴＥＲの場合、マージ・モードかどうかを示すｍｅｒｇｅ＿ｆｌａｇ［ｘ０］［ｙ０］が設置される。ここで、ｘ０、ｙ０は輝度信号の画面内での予測ブロックの左上の画素の位置を示すインデックスであり、ｍｅｒｇｅ＿ｆｌａｇ［ｘ０］［ｙ０］は画面内の（ｘ０，ｙ０）に位置する予測ブロックのマージ・モードかどうかを示すフラグである。
【００７２】
次に、ｍｅｒｇｅ＿ｆｌａｇ［ｘ０］［ｙ０］が１の場合、マージモードであることを示し、ＮｕｍＭｅｒｇｅＣａｎｄが１つを超える場合に、参照する予測動きベクトルの候補のリストであるマージリストのインデックスのシンタックス要素ｍｅｒｇｅ＿ｉｄｘ［ｘ０］［ｙ０］が設置される。ここで、ｘ０、ｙ０は画面内での予測ブロックの左上の画素の位置を示すインデックスであり、ｍｅｒｇｅ＿ｉｄｘ［ｘ０］［ｙ０］は画面内の（ｘ０，ｙ０）に位置する予測ブロックのマージ・インデックスである。関数ＮｕｍＭｅｒｇｅＣａｎｄはマージ候補の数を表し、後述にて説明される。このマージリストのインデックスのシンタックス要素ｍｅｒｇｅ＿ｉｄｘ［ｘ０］［ｙ０］がマージ候補の数ＮｕｍＭｅｒｇｅＣａｎｄが１より大きい場合にだけ符号化されるのは、予測動きベクトルの候補の総数が１つであれば、その１つがマージ候補となるので、ｍｅｒｇｅ＿ｉｄｘ［ｘ０］［ｙ０］を伝送せずとも参照するマージ候補が確定する為である。
【００７３】
一方、ｍｅｒｇｅ＿ｆｌａｇ［ｘ０］［ｙ０］が０の場合、マージモードでないことを示し、スライスタイプがＢの場合、インター予測モードを識別するシンタックス要素ｉｎｔｅｒ＿ｐｒｅｄ＿ｆｌａｇ［ｘ０］［ｙ０］が設置される。参照リストＬＸ（Ｘ＝０または１）ごとに、参照ピクチャを特定するための参照ピクチャインデックスのシンタックス要素ｒｅｆ＿ｉｄｘ＿ｌＸ［ｘ０］［ｙ０］、動きベクトル検出にて求められた予測ブロックの動きベクトルと予測動きベクトルとの差分動きベクトルのシンタックス要素ｍｖｄ＿ｌＸ［ｘ０］［ｙ０］［ｊ］が設置される。ここで、Ｘは０或いは１で予測方向を示し、配列のインデックスｘ０は予測ブロックのｘ座標、ｙ０は予測ブロックのｙ座標、ｊは差分動きベクトルの成分を表し、ｊ＝０はｘ成分を、ｊ＝１はｙ成分を表す。次に、予測動きベクトルの候補の総数が１つを超える場合に、参照する予測動きベクトルの候補のリストであるＭＶＰリストのインデックスのシンタックス要素ｍｖｐ＿ｉｄｘ＿ｌＸ［ｘ０］［ｙ０］が設置される。ここで、ｘ０、ｙ０は画面内での予測ブロックの左上の画素の位置を示すインデックスであり、ｍｖｐ＿ｉｄｘ＿ｌＸ［ｘ０］［ｙ０］は画面内の（ｘ０，ｙ０）に位置する予測ブロックのリストＬＸのＭＶＰインデックスである。添え字ＬＸは参照リストを表し、Ｌ０とＬ１の２つ用意されていて、Ｘには０或いは１が入る。関数ＮｕｍＭＶＰＣａｎｄ（ＬＸ）は、予測方向ＬＸ（Ｘは０或いは１）で予測ブロックの予測動きベクトルの候補の総数を算出する関数を表し、後述にて説明される。このＭＶＰリストのインデックスｍｖｐ＿ｉｄｘ＿ｌＸ［ｘ０］［ｙ０］は動きベクトルの予測方法により予測動きベクトルの候補の総数ＮｕｍＭＶＰＣａｎｄ（ＬＸ）が１より大きい場合に符号化される。予測動きベクトルの候補の総数が１つであれば、その１つが予測動きベクトルとなるので、ｍｖｐ＿ｉｄｘ＿ｌＸ［ｘ０］［ｙ０］を伝送せずとも参照する予測動きベクトルの候補が確定する為である。
【００７４】
（符号化における動きベクトルの予測）
上述のシンタックスに基づき、動画像のビットストリームを符号化する動画像符号化装置において、実施の形態に係る動きベクトルの予測方法の動作を説明する。動きベクトルの予測方法は、スライス単位で動き補償による画像間予測を行う場合、即ちスライスタイプがＰスライス（片方向予測スライス）或いはＢスライス（両方向予測スライス）の場合で、更に、スライスの中の予測ブロックの予測モードが画像間予測（ＭＯＤＥ＿ＩＮＴＥＲ）の予測ブロックに適用される。
【００７５】
図１２は、図１の動画像符号化装置の差分動きベクトル算出部１０３の詳細な構成を示す図である。図１２の太枠線で囲まれる部分は差分動きベクトル算出部１０３を示している。
【００７６】
更に、その内部の太点線で囲まれる部分は後述する動きベクトルの予測方法の動作部を示しており、実施の形態の動画像符号化装置と対応する動画像復号装置にも同様に設置され、符号化と復号で矛盾しない同一の判定結果を得られるようにしている。以下、この図を用いて、符号化における動きベクトルの予測方法を説明する。
【００７７】
差分動きベクトル算出部１０３は、予測動きベクトル候補生成部１２０、予測動きベクトル登録部１２１、予測動きベクトル候補同一判定部１２２、予測動きベクトル候補符号量算出部１２３、予測動きベクトル選択部１２４、および動きベクトル減算部１２５を含む。
この差分動きベクトル算出部１０３での差分動きベクトル算出処理は、符号化対象ブロックで選択されたインター予測方法で用いる動きベクトルの差分動きベクトルをそれぞれ算出する。具体的には符号化対象ブロックがＬ０予測の場合、Ｌ０の動きベクトルの差分動きベクトルを算出し、符号化対象ブロックがＬ１予測の場合、Ｌ１の動きベクトルの差分動きベクトルを算出する。符号化対象ブロックが双予測の場合、Ｌ０予測とＬ１予測が共に行われ、Ｌ０の動きベクトルの差分動きベクトル、およびＬ１の動きベクトルの差分動きベクトルをそれぞれ算出する。
【００７８】
予測動きベクトル候補生成部１２０は、参照リスト（Ｌ０、Ｌ１）毎に、上側に隣接する予測ブロックグループ（符号化対象の予測ブロックと同一ピクチャ内でその予測ブロックの左側に隣接する予測ブロックグループ：図５のＡ０，Ａ１，Ａ２）、左側に隣接する予測ブロックグループ（符号化対象の予測ブロックと同一ピクチャ内でその予測ブロックの上側に隣接する予測ブロックグループ：図５のＢ０，Ｂ１，Ｂ２）、異なる時間の予測ブロックグループ（符号化対象の予測ブロックと時間的に異なるピクチャ内でその予測ブロックと同一位置あるいはその近傍の位置に存在する既に符号化済みの予測ブロックグループ：図９のＴ０，Ｔ１，Ｔ２，Ｔ３）の３つの予測ブロックグループから、各予測ブロックグループごとに１つの動きベクトルｍｖＬＸＡ、ｍｖＬＸＢ、ｍｖＬＸＣｏｌをそれぞれ算出し、予測動きベクトル候補とし、予測動きベクトル登録部１２１に供給する。以下、ｍｖＬＸＡ及びｍｖＬＸＢを空間的な動きベクトル、ｍｖＬＸＣｏｌを時間的な動きベクトルと呼ぶ。この予測動きベクトル候補の算出に際しては、符号化情報格納メモリ１１４に格納されている符号化済みの予測ブロックの予測モード、参照リスト毎の参照インデックス、参照ピクチャのＰＯＣ、動きベクトル等の符号化情報を用いる。
【００７９】
これらの予測動きベクトルの候補ｍｖＬＸＡ、ｍｖＬＸＢ、ｍｖＬＸＣｏｌは符号化対象画像のＰＯＣと参照ピクチャのＰＯＣとの関係に応じてスケーリングすることにより算出されることもある。
【００８０】
予測動きベクトル候補生成部１２０は、各予測ブロックグループ毎に、所定の順序で、それぞれの予測ブロックグループ内の予測ブロックに対して、後述の条件判定を行い、最初に条件に合致した予測ブロックの動きベクトルを選択し、予測動きベクトルの候補ｍｖＬＸＡ、ｍｖＬＸＢ、ｍｖＬＸＣｏｌとする。
【００８１】
左側に隣接する予測ブロックグループから予測動きベクトルを算出する際には、左側に隣接する予測ブロックグループの下から上の順序（図５のＡ０からＡ０，Ａ１，Ａ２の順序）で、上側に隣接する予測ブロックグループから予測動きベクトルを算出する際には、上側に隣接する予測ブロックグループの右から左の順序（図５のＢ０からＢ０，Ｂ１，Ｂ２の順序）で、異なる時間の予測ブロックグループから予測動きベクトルを算出する際には、図９のＴ０からＴ０，Ｔ１，Ｔ２，Ｔ３の順序で、各予測ブロックに対して、後述の条件判定を行い、最初に条件に合致した予測ブロックの動きベクトルを選択し、予測動きベクトルの候補をそれぞれｍｖＬＸＡ、ｍｖＬＸＢ、ｍｖＬＸＣｏｌとする。
【００８２】
即ち、左側の隣接予測ブロックグループでは、一番下の予測ブロックが最も優先順位が高く、下から上に向かって優先順位が付けられており、上側の隣接予測ブロックグループでは、一番右の予測ブロックが最も優先順位が高く、右から左に向かって優先順位が付けられている。異なる時間の予測ブロックグループでは、Ｔ０の予測ブロックが最も優先順位が高く、Ｔ０，Ｔ１，Ｔ２，Ｔ３の順に優先順位が付けられている。この予測ブロックの位置による優先順位を優先順位Ａとする。
【００８３】
（空間予測ブロックの条件判定のループの説明）
左側の隣接予測ブロックグループ、及び上側の隣接予測ブロックグループの各隣接予測ブロックに対しては下記の条件判定１、２、３、４の優先順序でそれぞれの条件判定が適用される。ただし、後述する方法５のみ例外として、条件判定１、３、２、４の優先順序でそれぞれの条件判定が適用される。
条件判定１：符号化／復号対象の予測ブロックの差分動きベクトル算出対象の動きベクトルと同じ参照リストで、同じ参照インデックス、すなわち参照フレームを用いた予測が隣接予測ブロックでも行われている。
条件判定２：符号化／復号対象の予測ブロックの差分動きベクトル算出対象の動きベクトルとは異なる参照リストであるが、同じ参照フレームを用いた予測が隣接予測ブロックで行われている。
条件判定３：符号化／復号対象の予測ブロックの差分動きベクトル算出対象の動きベクトルと同じ参照リストで、異なる参照フレームを用いた予測が隣接予測ブロックで行われている。
条件判定４：符号化／復号対象の予測ブロックの差分動きベクトル算出対象の動きベクトルとは異なる参照リストで、異なる参照フレームを用いた予測が隣接予測ブロックで行われている。
【００８４】
この優先順位を優先順位Ｂとする。これらの条件のいずれかに一致した場合、当該予測ブロックには条件に合致する動きベクトルは存在すると判断し、後に続く条件判定は行わない。なお、条件判定１または条件判定２の条件に合致した場合、該当する隣接予測ブロックの動きベクトルは同じ参照フレームに対応するものであるので、そのまま予測動きベクトルの候補とするが、条件判定３または条件判定４の条件に合致した場合、該当する隣接予測ブロックの動きベクトルは異なる参照フレームに対応するものであるので、その動きベクトルを基にスケーリングにより算出して予測動きベクトルの候補とする。なお、各隣接予測ブロックの条件判定を並列ではなく、直列に処理する場合、２番目に行う予測ブロックグループの条件判定においては（左側の隣接予測ブロックグループの条件判定が先の場合、上側の隣接予測ブロックグループの条件判定では）、当該予測ブロックグループの予測動きベクトルの候補が前の予測ブロックグループで決定した予測動きベクトルの候補と同じ値になる場合、その予測動きベクトルの候補を採用せず、次の条件判定に移ってもよい。このように次の条件判定を行うことで、予測動きベクトルの候補の減少を防ぐことが出来る。
【００８５】
空間予測ブロックのスキャンのループの仕方として、上記の４つの条件判定の進め方によって、下記の４通りの方法を設定することができる。それぞれの方法によって予測ベクトルの相応しさと最大処理量が異なり、それらを考慮してこれらの方法から選択し設定する。方法１についてのみ、図１７〜２１のフローチャートを用いて詳しく後述するが、他の方法２〜４についても、当業者であれば方法２〜４を実施する手順については方法１を実施する手順に準じて適宜設計できる事項であるから、詳しい説明を省略する。なお、ここでは動画像符号化装置における空間予測ブロックのスキャンのループ処理を説明するが、同様の処理は動画像復号装置においても可能であることはいうまでもない。
【００８６】
方法１：
４つの条件判定のうち予測ブロック毎に１つの条件判定を行い、条件を満たさなければ、隣の予測ブロックの条件判定に移る。予測ブロック毎に条件判定を４周したら終了。
具体的には以下の優先順序で条件判定を行う。（ただし、ＮはＡまたはＢ）
１．予測ブロックＮ０の条件判定１（同じ参照リスト、同じ参照フレーム）
２．予測ブロックＮ１の条件判定１（同じ参照リスト、同じ参照フレーム）
３．予測ブロックＮ２の条件判定１（同じ参照リスト、同じ参照フレーム）
４．予測ブロックＮ０の条件判定２（異なる参照リスト、同じ参照フレーム）
５．予測ブロックＮ１の条件判定２（異なる参照リスト、同じ参照フレーム）
６．予測ブロックＮ２の条件判定２（異なる参照リスト、同じ参照フレーム）
７．予測ブロックＮ０の条件判定３（同じ参照リスト、異なる参照フレーム）
８．予測ブロックＮ１の条件判定３（同じ参照リスト、異なる参照フレーム）
９．予測ブロックＮ２の条件判定３（同じ参照リスト、異なる参照フレーム）
１０．予測ブロックＮ０の条件判定４（異なる参照リスト、異なる参照フレーム）
１１．予測ブロックＮ１の条件判定４（異なる参照リスト、異なる参照フレーム）
１２．予測ブロックＮ２の条件判定４（異なる参照リスト、異なる参照フレーム）
方法１によれば、同じ参照フレームを用いたスケーリングされない予測動きベクトルが選ばれやすいので、差分動きベクトルの符号量が小さくなる可能性が高くなるという効果がある。
【００８７】
方法２：
同じ予測フレームを用いたスケーリングされない予測動きベクトルの判定を優先し、４つの条件判定のうち予測ブロック毎に２つの条件判定を行い、条件を満たさなければ、隣の予測ブロックの条件判定に移る。最初の周回では条件判定１と条件判定２の条件判定を行い、次の予測ブロックの周回では条件判定３と条件判定４の条件判定を行う。
具体的には以下の優先順序で条件判定を行う。（ただし、ＮはＡまたはＢ）
１．予測ブロックＮ０の条件判定１（同じ参照リスト、同じ参照フレーム）
２．予測ブロックＮ０の条件判定２（異なる参照リスト、同じ参照フレーム）
３．予測ブロックＮ１の条件判定１（同じ参照リスト、同じ参照フレーム）
４．予測ブロックＮ１の条件判定２（異なる参照リスト、同じ参照フレーム）
５．予測ブロックＮ２の条件判定１（同じ参照リスト、同じ参照フレーム）
６．予測ブロックＮ２の条件判定２（異なる参照リスト、同じ参照フレーム）
７．予測ブロックＮ０の条件判定３（同じ参照リスト、異なる参照フレーム）
８．予測ブロックＮ０の条件判定４（異なる参照リスト、異なる参照フレーム）
９．予測ブロックＮ１の条件判定３（同じ参照リスト、異なる参照フレーム）
１０．予測ブロックＮ１の条件判定４（異なる参照リスト、異なる参照フレーム）
１１．予測ブロックＮ２の条件判定３（同じ参照リスト、異なる参照フレーム）
１２．予測ブロックＮ２の条件判定４（異なる参照リスト、異なる参照フレーム）
方法２によれば、方法１と同様に、同じ参照フレームを用いたスケーリングされない予測動きベクトルが選ばれやすいので、差分動きベクトルの符号量が小さくなる可能性が高くなるという効果がある。また、条件判定の周回数が最大２回となるので、ハードウェアへの実装を考慮した際に予測ブロックの符号化情報へのメモリアクセス回数が方法１に比べて少なくなり、複雑性が低減される。
【００８８】
方法３：
最初の周回では予測ブロック毎に条件判定１の条件判定を行い条件を満たさなければ、隣の予測ブロックの条件判定に移る。次の周回では予測ブロック毎に条件判定２、条件判定３条件判定４順序で条件判定を行ってから隣に移る。
具体的には以下の優先順序で条件判定を行う。（ただし、ＮはＡまたはＢ）
１．予測ブロックＮ０の条件判定１（同じ参照リスト、同じ参照フレーム）
２．予測ブロックＮ１の条件判定１（同じ参照リスト、同じ参照フレーム）
３．予測ブロックＮ２の条件判定１（同じ参照リスト、同じ参照フレーム）
４．予測ブロックＮ０の条件判定２（異なる参照リスト、同じ参照フレーム）
５．予測ブロックＮ０の条件判定３（同じ参照リスト、異なる参照フレーム）
６．予測ブロックＮ０の条件判定４（異なる参照リスト、異なる参照フレーム）
７．予測ブロックＮ１の条件判定２（異なる参照リスト、同じ参照フレーム）
８．予測ブロックＮ１の条件判定３（同じ参照リスト、異なる参照フレーム）
９．予測ブロックＮ１の条件判定４（異なる参照リスト、異なる参照フレーム）
１０．予測ブロックＮ２の条件判定２（異なる参照リスト、同じ参照フレーム）
１１．予測ブロックＮ２の条件判定３（同じ参照リスト、異なる参照フレーム）
１２．予測ブロックＮ２の条件判定４（異なる参照リスト、異なる参照フレーム）
方法３によれば、同じ参照リストで同じ参照フレームを用いたスケーリングされない予測動きベクトルが選ばれやすいので、差分動きベクトルの符号量が小さくなる可能性が高くなるという効果がある。また、条件判定の周回数が最大２回となるので、ハードウェアへの実装を考慮した際に予測ブロックの符号化情報へのメモリアクセス回数が方法１に比べて少なくなり、複雑性が低減される。
【００８９】
方法４：
同じ予測ブロックの条件判定を優先し、１つの予測ブロック内で４つの条件判定を行い、すべての条件に合致しない場合、当該予測ブロックには条件に合致する動きベクトルは存在しないものと判断し、次の予測ブロックの条件判定を行う。
具体的には以下の優先順序で条件判定を行う。（ただし、ＮはＡまたはＢ）
１．予測ブロックＮ０の条件判定１（同じ参照リスト、同じ参照フレーム）
２．予測ブロックＮ０の条件判定２（異なる参照リスト、同じ参照フレーム）
３．予測ブロックＮ０の条件判定３（同じ参照リスト、異なる参照フレーム）
４．予測ブロックＮ０の条件判定４（異なる参照リスト、異なる参照フレーム）
５．予測ブロックＮ１の条件判定１（同じ参照リスト、同じ参照フレーム）
６．予測ブロックＮ１の条件判定２（異なる参照リスト、同じ参照フレーム）
７．予測ブロックＮ１の条件判定３（同じ参照リスト、異なる参照フレーム）
８．予測ブロックＮ１の条件判定４（異なる参照リスト、異なる参照フレーム）
９．予測ブロックＮ２の条件判定１（同じ参照リスト、同じ参照フレーム）
１０．予測ブロックＮ２の条件判定２（異なる参照リスト、同じ参照フレーム）
１１．予測ブロックＮ２の条件判定３（同じ参照リスト、異なる参照フレーム）
１２．予測ブロックＮ２の条件判定４（異なる参照リスト、異なる参照フレーム）
方法４によれば、条件判定の周回数が最大でも１回となるので、ハードウェアへの実装を考慮した際に予測ブロックの符号化情報へのメモリアクセス回数が方法１、方法２、方法３に比べて少なくなり、複雑性が低減される。
【００９０】
方法５：
方法４と同様に、同じ予測ブロックの条件判定を優先し、１つの予測ブロック内で４つの条件判定を行い、すべての条件に合致しない場合、当該予測ブロックには条件に合致する動きベクトルは存在しないものと判断し、次の予測ブロックの条件判定を行う。ただし、予測ブロック内の条件判定においては、方法４は同じ参照フレームであることをより優先しているが、方法５は同じ参照リストであることを優先する。
具体的には以下の優先順序で条件判定を行う。（ただし、ＮはＡまたはＢ）
１．予測ブロックＮ０の条件判定１（同じ参照リスト、同じ参照フレーム）
２．予測ブロックＮ０の条件判定３（同じ参照リスト、異なる参照フレーム）
３．予測ブロックＮ０の条件判定２（異なる参照リスト、同じ参照フレーム）
４．予測ブロックＮ０の条件判定４（異なる参照リスト、異なる参照フレーム）
５．予測ブロックＮ１の条件判定１（同じ参照リスト、同じ参照フレーム）
６．予測ブロックＮ１の条件判定３（同じ参照リスト、異なる参照フレーム）
７．予測ブロックＮ１の条件判定２（異なる参照リスト、同じ参照フレーム）
８．予測ブロックＮ１の条件判定４（異なる参照リスト、異なる参照フレーム）
９．予測ブロックＮ２の条件判定１（同じ参照リスト、同じ参照フレーム）
１０．予測ブロックＮ２の条件判定３（同じ参照リスト、異なる参照フレーム）
１１．予測ブロックＮ２の条件判定２（異なる参照リスト、同じ参照フレーム）
１２．予測ブロックＮ２の条件判定４（異なる参照リスト、異なる参照フレーム）
方法５によれば、さらに、方法４に比べて予測ブロックの参照リストの参照回数を減らすことができ、メモリへのアクセス回数、条件判定等の処理量を削減することにより複雑性を低減することができる。また、方法４と同様に、条件判定の周回数が最大でも１回となるので、ハードウェアへの実装を考慮した際に予測ブロックの符号化情報へのメモリアクセス回数が方法１、方法２、方法３に比べて少なくなり、複雑性が低減される。
【００９１】
次に、予測動きベクトル登録部１２１は予測動きベクトルの候補ｍｖＬＸＡ、ｍｖＬＸＢ、ｍｖＬＸＣｏｌの優先順位を評価し、優先順位に応じた順番でＭＶＰリストｍｖｐＬｉｓｔＬＸに格納する。このＭＶＰリストｍｖｐＬｉｓｔＬＸに格納する手順については後ほど詳細に説明する。
【００９２】
次に、予測動きベクトル候補同一判定部１２２は、ＭＶＰリストｍｖｐＬｉｓｔＬＸに格納された予測動きベクトルの候補の中から同一の動きベクトルの値をもつものを判定し、同一の動きベクトル値をもつと判定された予測動きベクトルの候補について一つを残してそれ以外をＭＶＰリストｍｖｐＬｉｓｔＬＸから削除して、予測動きベクトルの候補が重複しないようにし、ＭＶＰリストｍｖｐＬｉｓｔＬＸを更新する。予測動きベクトル候補同一判定部１２２は、更新されたＭＶＰリストｍｖｐＬｉｓｔＬＸを予測動きベクトル候補符号量算出部１２３と予測動きベクトル選択部１２４に与える。
【００９３】
一方、図１の動きベクトル検出部１０２にて予測ブロック毎に動きベクトルｍｖが検出される。その動きベクトルｍｖは更新されたＭＶＰリストｍｖｐＬｉｓｔＬＸの予測動きベクトルの候補とともに予測動きベクトル候補符号量算出部１２３に入力される。
【００９４】
予測動きベクトル候補符号量算出部１２３は、動きベクトルｍｖとＭＶＰリストｍｖｐＬｉｓｔＬＸの中に格納された各予測動きベクトルの候補ｍｖｐＬｉｓｔＬＸ［ｉ］との差分であるそれぞれの差分動きベクトルを算出し、それら差分動きベクトルを符号化したときの符号量をＭＶＰリストｍｖｐＬｉｓｔＬＸの要素ごとに算出し、予測動きベクトル選択部１２４に供給する。
【００９５】
予測動きベクトル選択部１２４は、ＭＶＰリストｍｖｐＬｉｓｔＬＸに登録された各要素の中で、予測動きベクトルの候補毎の符号量が最小となる予測動きベクトルの候補ｍｖｐＬｉｓｔＬＸ［ｉ］を予測動きベクトルｍｖｐとして選択し、ＭＶＰリストｍｖｐＬｉｓｔＬＸの中で最小の発生符号量となる予測動きベクトルの候補が複数存在する場合には、ＭＶＰリストｍｖｐＬｉｓｔＬＸの中のインデックスｉが小さい番号で表される予測動きベクトルの候補ｍｖｐＬｉｓｔＬＸ［ｉ］を最適予測動きベクトルｍｖｐとして選択する。選択された予測動きベクトルｍｖｐを動きベクトル減算部１２５に供給する。さらに、その選択された予測動きベクトルｍｖｐに対応するＭＶＰリスト中のインデックスｉをＬＸ（Ｘ＝０または１）のＭＶＰインデックスｍｖｐ＿ｉｄｘとして出力する。
【００９６】
なお、予測動きベクトル選択部１２４は必要に応じてｍｖｐ＿ｉｄｘが指し示すＭＶＰリスト中の予測ブロックで用いられた符号化情報も図１の予測方法決定部１０６に出力する。ここで出力する符号化情報は、重み付け予測の重み付けパラメータ、量子化の量子化パラメータ等が含まれる。
【００９７】
最後に動きベクトル減算部１２５は、動きベクトルｍｖから選択された予測動きベクトルｍｖｐを減産することにより差分動きベクトルｍｖｄを算出し、差分動きベクトルｍｖｄを出力する。
ｍｖｄ＝ｍｖ−ｍｖｐ
【００９８】
図１に戻り、動き補償予測部１０５は、復号画像メモリ１１５に格納されている復号画像を参照して動きベクトル検出部１０２から供給される動きベクトルｍｖに応じて動き補償を行い、動き補償予測信号を得て、予測方法決定部１０６に供給する。
【００９９】
予測方法決定部１０６は、予測方法を決定する。それぞれの予測モードごとに符号量と符号化歪を算出し、最も少ない発生符号量と符号化歪となる予測ブロックサイズと予測モードが決定される。差分動きベクトル算出部１０３の動きベクトル減算部１２５から供給された差分動きベクトルｍｖｄと予測動きベクトル選択部１２４から供給された予測動きベクトルを表すインデックスｍｖｐ＿ｉｄｘの符号化が行われ、動き情報の符号量を算出する。さらに、動き補償予測部１０５から供給される動き補償予測信号と、画像メモリ１０１から供給される符号化対象の画像信号との予測残差信号を符号化した予測残差信号の符号量を算出する。動き情報の符号量と予測残差信号の符号量とが加算された総発生符号量を算出し、第１の評価値とする。
【０１００】
また、こうした差分画像を符号化後に、歪量評価の為に復号し、符号化により生じる元画像との誤差を表す比率として符号化歪が算出される。これら総発生符号量と符号化歪とを動き補償毎に比較することで、最も少ない発生符号量と符号化歪となる予測ブロックサイズと予測モードが決定される。決定された予測ブロックサイズの予測モードに応じた動きベクトルｍｖに対して、上述した動きベクトルの予測方法が行われ、予測動きベクトルを表すインデックスが、予測ブロック単位の第２のシンタックスパターンで表されるフラグｍｖｐ＿ｉｄｘ＿ｌＸ［ｉ］として符号化される。尚、ここで算出される発生符号量は、符号化過程をシミュレートしたものであることが望ましいが、簡便に近似したり、概算することも可能である。
【０１０１】
（復号における動きベクトルの予測）
上述のシンタックスに基づき、符号化された動画像のビットストリームを復号する動画像復号装置において、本発明に係る動きベクトルの予測方法の動作を説明する。
【０１０２】
最初に、第１符号化ビット列復号部２０２にて復号されるビットストリームの各フラグについて説明する。図１０は本発明の動画像符号化装置により生成され、第１符号化ビット列復号部２０２により復号されるビットストリームのスライス単位でスライスヘッダーに記述される第１のシンタックスパターンである。ビットストリームのスライスヘッダーの中に記述されているフラグから、スライスタイプがＰ或いはＢの場合、インター予測のマージモードでない予測ブロックにおいて、同一ピクチャ内で隣接する周囲の予測ブロックの動きベクトルだけでなく、時間方向で異なるピクチャの中の処理対象の予測ブロックと同一位置あるいは近傍の予測ブロックの動きベクトルを利用して動きベクトルの予測を行うかどうかを示し、インター予測のマージモードの予測ブロックにおいて、同一ピクチャ内で隣接する周囲の予測ブロックの符号化情報だけでなく、時間方向で異なるピクチャの中の処理対象の予測ブロックと同一位置あるいは近傍の予測ブロックの符号化情報も利用してインター予測を行うかどうかを示す第１のフラグｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｔｅｍｐｏｒａｌ＿ｆｌａｇを復号し、ｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｔｅｍｐｏｒａｌ＿ｆｌａｇが真（１）の場合は、インター予測のマージモードでない予測ブロックにおいて、同一ピクチャ内で隣接する周囲の予測ブロックの動きベクトルだけでなく、時間方向に異なるピクチャで処理対象の予測ブロックと同一位置または近傍の予測ブロックを利用して動きベクトルの予測が行われ、インター予測のマージモードの予測ブロックにおいて、同一ピクチャ内で隣接する周囲の予測ブロックの符号化情報だけでなく、時間方向に異なるピクチャで処理対象の予測ブロックと同一位置または近傍の予測ブロックの符号化情報も利用してインター予測が行われる。更に、ｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｔｅｍｐｏｒａｌ＿ｆｌａｇが真（１）の場合は、インター予測のマージモードでない予測ブロックにおいて、時間方向で異なるピクチャの中の処理対象の予測ブロックと同一位置の予測ブロックの動きベクトルの候補が優先順位を上げて後述するマージ候補リストに登録されるかどうかを示す第２のフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇを復号して判定し、真（１）の場合は、時間方向に異なるピクチャで処理対象の予測ブロックと同一位置の予測ブロックの動きベクトルやマージ候補が優先順位を上げて、ＭＶＰリストやマージ候補リストにそれぞれ登録される。
【０１０３】
さらに、スライスタイプがＢの場合は、時間方向の予測動きベクトルの候補、またはマージ候補を算出する際に用いる時間方向で異なるピクチャｃｏｌＰｉｃが処理対象の予測ブロックが含まれるピクチャのＬ０の参照リスト或いはＬ１の参照リストのどちらに登録されている参照画像を使用するかを示す第３フラグｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇを復号し、処理対象の予測ブロックが含まれるピクチャの参照ピクチャのリストのうちＬ０或いはＬ１のどちらを使用するか判別する。
【０１０４】
さらに、スライスタイプがＰ或いはＢの場合は、後述するＭＶＰリスト、またはマージ候補リスト内の登録順序を予測ブロックごとに適応的に変更するか否かを示す第４フラグｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇを復号し、ＭＶＰリスト、またはマージ候補リスト内の登録順序を予測ブロックごとに適応的に変更するか判別する。
【０１０５】
なお、以上のシンタックス要素はピクチャー単位で設定されるシンタックス要素を記述するピクチャー・パラメータ・セットに設置してもよい。
【０１０６】
また、第１のフラグｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｔｅｍｐｏｒａｌ＿ｆｌａｇ、第２のフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇ、第３フラグｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ、第４フラグｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇは、それぞれマージモードでない動きベクトル予測用と、マージモード用で独立した別個のフラグを用意して、それぞれ独立で制御することもできる。
【０１０７】
図１１は本発明の動画像符号化装置により生成され、第１符号化ビット列復号部２０２により復号されるビットストリームの予測ブロック単位で記述される第２のシンタックスパターンである。予測ブロック単位に記述されるシンタックスパターンを示す。インター予測の場合（予測ブロックがインター予測かどうかを示す予測モードＰｒｅｄＭｏｄｅがインター予測を示すＭＯＤＥ＿ＩＮＴＥＲの場合）、マージモードかどうかを示すｍｅｒｇｅ＿ｆｌａｇ［ｘ０］［ｙ０］が復号される。ここで、ｘ０、ｙ０は画面内での予測ブロックの左上の画素の位置を示すインデックスであり、ｍｅｒｇｅ＿ｆｌａｇ［ｘ０］［ｙ０］は画面内の（ｘ０，ｙ０）に位置する予測ブロックのマージ・モードかどうかを示すフラグである。
【０１０８】
次に、ｍｅｒｇｅ＿ｆｌａｇ［ｘ０］［ｙ０］が１の場合、マージモードの候補の総数ＮｕｍＭｅｒｇｅＣａｎｄが１つを超える場合に、参照する予測動きベクトルの候補のリストであるマージリストのインデックスのシンタックス要素ｍｅｒｇｅ＿ｉｄｘ［ｘ０］［ｙ０］が復号される。ここで、ｘ０、ｙ０は画面内での予測ブロックの左上の画素の位置を示すインデックスであり、ｍｅｒｇｅ＿ｉｄｘ［ｘ０］［ｙ０］は画面内の（ｘ０，ｙ０）に位置する予測ブロックのマージ・インデックスである。
【０１０９】
一方、ｍｅｒｇｅ＿ｆｌａｇ［ｘ０］［ｙ０］が０の場合、参照リストＬＸ（Ｘ＝０または１）ごとに、動きベクトル検出にて求められた予測ブロックの動きベクトルと予測動きベクトルとの差分動きベクトルのシンタックス要素ｍｖｄ＿ｌＸ［ｘ０］［ｙ０］［ｊ］が復号される。ここで、Ｘは０或いは１で予測方向を示し、配列のインデックスｘ０は予測ブロックのｘ座標、ｙ０は予測ブロックのｙ座標、ｊは差分動きベクトルの成分を表し、ｊ＝０はｘ成分を、ｊ＝１はｙ成分を表す。次に、予測動きベクトルの候補の総数が１つを超える場合に、参照する予測動きベクトルの候補のリストであるＭＶＰリストのインデックスのシンタックス要素ｍｖｐ＿ｉｄｘ＿ｌＸ［ｘ０］［ｙ０］が復号される。ここで、ｘ０、ｙ０は画面内での予測ブロックの左上の画素の位置を示すインデックスであり、ｍｖｐ＿ｉｄｘ＿ｌＸ［ｘ０］［ｙ０］は画面内の（ｘ０，ｙ０）に位置する予測ブロックのリストＬＸのＭＶＰインデックスである。添え字ＬＸは参照リストを表し、Ｌ０とＬ１の２つ用意されていて、Ｘには０或いは１が入る。関数ＮｕｍＭＶＰＣａｎｄ（ＬＸ）は、予測方向ＬＸ（Ｘは０或いは１）で予測ブロックの予測動きベクトルの候補の総数を算出する関数を表し、後述にて説明される。このＭＶＰリストのインデックスｍｖｐ＿ｉｄｘ＿ｌＸ［ｘ０］［ｙ０］は動きベクトルの予測方法により予測動きベクトルの候補の総数ＮｕｍＭＶＰＣａｎｄ（ＬＸ）が１より大きい場合に復号される。予測動きベクトルの候補の総数が１つであれば、その１つが予測動きベクトルとなるので、ｍｖｐ＿ｉｄｘ＿ｌＸ［ｘ０］［ｙ０］を伝送せずとも参照する予測動きベクトルの候補が確定する為である。
【０１１０】
実施の形態に係る動きベクトルの予測方法が実施される場合、図２の動画像復号装置の動きベクトル算出部２０４にて処理が行われる。図１３は、実施の形態の動画像符号化装置に対応する図２の動画像復号装置の動きベクトル算出部２０４の詳細な構成を示す図である。図１３の太枠線で囲まれる部分は動きベクトル算出部２０４を示している。更に、その内部の太点線で囲まれる部分は後述する動きベクトルの予測方法の動作部を示しており、対応する動画像符号化装置にも同様に設置され、符号化と復号で矛盾しない同一の判定結果を得られるようにしている。以下、この図を用いて、復号における動きベクトルの予測方法を説明する。
【０１１１】
動きベクトル算出部２０４は、予測動きベクトル候補生成部２２０、予測動きベクトル登録部２２１、予測動きベクトル候補同一判定部２２２、予測動きベクトル選択部２２３及び動きベクトル加算部２２４を含む。
【０１１２】
動きベクトル算出部２０４の中の予測動きベクトル候補生成部２２０、予測動きベクトル登録部２２１及び予測動きベクトル候補同一判定部２２２は、符号化側の差分動きベクトル算出部１０３の中の予測動きベクトル候補生成部１２０、予測動きベクトル登録部１２１及び予測動きベクトル候補同一判定部１２２とそれぞれ同じ動作をするように規定することにより、符号化と復号で矛盾しない同一の予測動きベクトルの候補を符号化側及び復号側で得ることができる。
【０１１３】
予測動きベクトル候補生成部２２０は、図１２の符号化側の予測動きベクトル候補生成部１２０と同一の処理を行う。予測動きベクトル候補生成部２２０は、復号して符号化情報格納メモリ２０９に記録されていた、復号対象ブロックと同一ピクチャ内の復号対象ブロックと隣接する復号済みの予測ブロック及び異なるピクチャ内の復号対象ブロックと同一位置あるいはその近傍の位置に存在する復号済みの予測ブロック等の動きベクトルを符号化情報格納メモリ２０９から読み出す。符号化情報格納メモリ２０９から読み出された復号済みの他のブロックの動きベクトルから少なくとも１つ以上の予測動きベクトルの候補ｍｖＬＸＡ、ｍｖＬＸＢ、ｍｖＬＸＣｏｌを生成し、予測動きベクトル登録部２２１に供給する。これらの予測動きベクトルの候補ｍｖＬＸＡ、ｍｖＬＸＢ、ｍｖＬＸＣｏｌは参照インデックスに応じてスケーリングすることにより算出されることもある。なお、予測動きベクトル候補生成部２２０は、図１２の符号化側の予測動きベクトル候補生成部１２０と同一の処理を行うので、図１２の符号化側の予測動きベクトル候補生成部１２０で説明した予測動きベクトルを算出するための方法１、２、３、４、５の条件判定は予測動きベクトル候補生成部２２０でも適用できるものとし、ここでは詳細な説明は省略する。
【０１１４】
次に、予測動きベクトル登録部２２１は図１２の符号化側の予測動きベクトル登録部１２１と同一の処理を行う。予測動きベクトル登録部２２１は、予測動きベクトルの候補ｍｖＬＸＡ、ｍｖＬＸＢ、ｍｖＬＸＣｏｌの優先順位を評価し、優先順位に応じた順番でＭＶＰリストｍｖｐＬｉｓｔＬＸに格納する。このＭＶＰリストｍｖｐＬｉｓｔＬＸに格納する手順については後ほど詳細に説明する。
【０１１５】
次に、予測動きベクトル候補同一判定部２２２は、図１２の符号化側の予測動きベクトル候補同一判定部１２２と同一の処理を行う。予測動きベクトル候補同一判定部２２２は、ＭＶＰリストｍｖｐＬｉｓｔＬＸに格納された予測動きベクトルの候補の中から同一の動きベクトルの値をもつものを判定し、同一の動きベクトル値をもつと判定された予測動きベクトルの候補について一つを残してそれ以外をＭＶＰリストｍｖｐＬｉｓｔＬＸから削除して、予測動きベクトルの候補が重複しないようにし、ＭＶＰリストｍｖｐＬｉｓｔＬＸを更新する。更新されたＭＶＰリストｍｖｐＬｉｓｔＬＸは予測動きベクトル選択部２２３に与えられる。
【０１１６】
一方、第１符号化ビット列復号部２０２にて復号された差分動きベクトルｍｖｄが動きベクトル加算部２２４に入力される。予測動きベクトルのインデックスを示すｍｖｐ＿ｉｄｘが符号化されている場合は、第１符号化ビット列復号部２０２にて復号された予測動きベクトルのインデックスｍｖｐ＿ｉｄｘが予測動きベクトル選択部２２３に入力される。
【０１１７】
このようにして予測動きベクトル選択部２２３には、ＭＶＰリストｍｖｐＬｉｓｔＬＸの中に残った予測動きベクトルの候補と、予測動きベクトルのインデックスを示すｍｖｐ＿ｉｄｘが符号化されていた場合は、復号された予測動きベクトルのインデックスｍｖｐ＿ｉｄｘも入力される。
【０１１８】
予測動きベクトル選択部２２３は、最初にＭＶＰリストｍｖｐＬｉｓｔＬＸに残った予測動きベクトルの候補が１つであるかどうかを判定し、１つの場合、ＭＶＰリストｍｖｐＬｉｓｔＬＸに残った予測動きベクトルの候補を予測動きベクトルｍｖｐとして取り出す。ＭＶＰリストｍｖｐＬｉｓｔＬＸの中に予測動きベクトルの候補が１つより多く残った場合、第１符号化ビット列復号部２０２にて復号された予測動きベクトルのインデックスｍｖｐ＿ｉｄｘが読み込まれ、読み込まれたインデックスｍｖｐ＿ｉｄｘに対応する予測動きベクトルの候補をＭＶＰリストｍｖｐＬｉｓｔＬＸから取り出す。取り出された予測動きベクトルの候補を予測動きベクトルｍｖｐとして動きベクトル加算部２２４に供給する。
【０１１９】
最後に動きベクトル加算部２２４は、第１符号化ビット列復号部２０２にて復号されて供給される差分動きベクトルｍｖｄと予測動きベクトルｍｖｐを加算することにより動きベクトルｍｖを算出し、動きベクトルｍｖを出力する。
ｍｖ＝ｍｖｐ＋ｍｖｄ
【０１２０】
以上のようにして、予測ブロック毎に動きベクトルが算出される。この動きベクトルを使用して動き補償により予測画像が生成され、ビットストリームから復号された残差信号と加算されることで復号画像が生成される。
【０１２１】
動画像符号化装置の差分動きベクトル算出部１０３、動画像復号装置の動きベクトル算出部２０４の処理手順について、それぞれ図１４、図１５のフローチャートを用いて説明する。図１４は動画像符号化装置による差分動きベクトル算出処理手順を示すフローチャートであり、図１５は動画像復号装置による動きベクトル算出処理手順を示すフローチャートである。
【０１２２】
まず、図１４を参照して符号化側の処理手順を説明する。符号化側では、差分動きベクトル算出部１０３の中の予測動きベクトル候補生成部１２０、予測動きベクトル登録部１２１、及び予測動きベクトル候補同一判定部１２２により、予測動きベクトルの候補を算出し、ＭＶＰリストに算出した予測動きベクトルの候補を追加し、不要な予測動きベクトルの候補を削除することにより、ＭＶＰリストを構築する（Ｓ１０１）。
【０１２３】
続いて、予測動きベクトル候補符号量算出部１２３により、動きベクトルｍｖとＭＶＰリストｍｖｐＬｉｓｔＬＸの中に格納された各予測動きベクトルの候補ｍｖｐＬｉｓｔＬＸ［ｉ］との差分であるそれぞれの差分動きベクトルを算出し、それら差分動きベクトルを符号化したときの符号量をＭＶＰリストｍｖｐＬｉｓｔＬＸの要素ごとに算出し、予測動きベクトル選択部１２４により、ＭＶＰリストｍｖｐＬｉｓｔＬＸに登録された各要素の中で、予測動きベクトルの候補毎の符号量が最小となる予測動きベクトルの候補ｍｖｐＬｉｓｔＬＸ［ｉ］を予測動きベクトルｍｖｐとして選択し、ＭＶＰリストｍｖｐＬｉｓｔＬＸの中で最小の発生符号量となる予測動きベクトルの候補が複数存在する場合には、ＭＶＰリストｍｖｐＬｉｓｔＬＸの中のインデックスｉが小さい番号で表される予測動きベクトルの候補ｍｖｐＬｉｓｔＬＸ［ｉ］を最適予測動きベクトルｍｖｐとして選択する。選択された予測動きベクトルｍｖｐを動きベクトル減算部１２５に供給する。さらに、その選択された予測動きベクトルｍｖｐに対応するＭＶＰリスト中のインデックスｉをＬＸ（Ｘ＝０または１）のＭＶＰインデックスｍｖｐ＿ｉｄｘとして出力する（Ｓ１０２）。
【０１２４】
続いて、動きベクトル減算部１２５は、動きベクトルｍｖとから選択された予測動きベクトルｍｖｐとの差分を計算することにより差分動きベクトルｍｖｄを算出し、差分動きベクトルｍｖｄを出力する（Ｓ１０３）。
ｍｖｄ＝ｍｖ−ｍｖｐ
【０１２５】
次に、図１５を参照して復号側の処理手順を説明する。復号側でも前述したように符号化側と同様に、動きベクトル算出部２０４の中の予測動きベクトル候補生成部２２０、予測動きベクトル登録部２２１、及び予測動きベクトル候補同一判定部２２２により、予測動きベクトルの候補を算出し、ＭＶＰリストに算出した予測動きベクトルの候補を追加し、不要な予測動きベクトルの候補を削除することにより、ＭＶＰリストを構築する（Ｓ２０１）。
【０１２６】
続いて、予測動きベクトル選択部２２３により、最初にＭＶＰリストｍｖｐＬｉｓｔＬＸに残った予測動きベクトルの候補が１つであるかどうかを判定し、１つの場合、ＭＶＰリストｍｖｐＬｉｓｔＬＸに残った予測動きベクトルの候補を予測動きベクトルｍｖｐとして取り出す。ＭＶＰリストｍｖｐＬｉｓｔＬＸの中に予測動きベクトルの候補が１つより多く残った場合、第１符号化ビット列復号部２０２にて復号された予測動きベクトルのインデックスｍｖｐ＿ｉｄｘが読み込まれ、読み込まれたインデックスｍｖｐ＿ｉｄｘに対応する予測動きベクトルの候補をＭＶＰリストｍｖｐＬｉｓｔＬＸから取り出す。（Ｓ２０２）。
【０１２７】
続いて、動きベクトル加算部２２４により、第１符号化ビット列復号部２０２にて復号されて供給される差分動きベクトルｍｖｄと予測動きベクトルｍｖｐを加算することにより動きベクトルｍｖを算出し、動きベクトルｍｖを出力する。（図１５のＳ２０３）。
ｍｖ＝ｍｖｐ＋ｍｖｄ
【０１２８】
図１４のＳ１０１、及び図１５のＳ２０１で共通の予測動きベクトルの算出及びＭＶＰリスト構築方法の処理手順を図１６のフローチャートを用いて詳細に説明する。
【０１２９】
まず、動画像符号化装置及び動画像復号装置で共通する動きベクトルの予測方法について説明する。
【０１３０】
（動きベクトルの予測方法）
実施の形態に係る予測動きベクトルの算出及びＭＶＰリスト構築方法は予測ブロック単位に図１６に示される諸過程で参照リストＬＸ（Ｘは０または１）毎に実施される。予測モードＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＥＲ（インター予測）で、インター予測方法を示すフラグｉｎｔｅｒ＿ｐｒｅｄ＿ｆｌａｇ［ｘ０］［ｙ０］が、Ｐｒｅｄ＿Ｌ０（Ｌ０予測）またはＰｒｅｄ＿ＢＩ（両予測）の時には、参照リストＬ０用の予測動きベクトルの候補を算出し、ＭＶＰリストを構築する。ここで、ｘ０、ｙ０は画面内での予測ブロックの左上の画素の位置を示すインデックスであり、ｉｎｔｅｒ＿ｐｒｅｄ＿ｆｌａｇ［ｘ０］［ｙ０］は画面内の（ｘ０，ｙ０）に位置する予測ブロックのインター予測方法を示すフラグである。ｉｎｔｅｒ＿ｐｒｅｄ＿ｆｌａｇ［ｘ０］［ｙ０］が、Ｐｒｅｄ＿Ｌ１（Ｌ１予測）またはＰｒｅｄ＿ＢＩ（両予測）の時には、参照リストＬ１用の予測動きベクトルの候補を算出し、ＭＶＰリストを構築する。つまり、ｉｎｔｅｒ＿ｐｒｅｄ＿ｆｌａｇ［ｘ０］［ｙ０］が、Ｐｒｅｄ＿ＢＩ（両予測）の時には、参照リストＬ０用と参照リストＬ１用のそれぞれの予測動きベクトルの候補を算出してＭＶＰリストを構築する。図１６は動画像符号化装置の差分動きベクトル算出部１０３及び動画像復号装置の動きベクトル算出部２０４とで共通する機能を有する予測動きベクトル候補生成部１２０及び２２０、予測動きベクトル登録部１２１及び２２１、ならびに予測動きベクトル候補同一判定部１２２及び２２２の処理の流れを表すフローチャートである。以下、諸過程を順を追って説明する。
【０１３１】
左側に隣接する予測ブロックからの予測動きベクトルの候補を算出し、利用できるかどうかを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＡ、及び動きベクトルｍｖＬＸＡ、参照ピクチャのＰＯＣｐｏｃＬＸＡを出力する（図１６のＳ３０１）。なお、Ｌ０のときＸは０、Ｌ１のときＸは１とする（以下同様）。続いて、上側に隣接する予測ブロックからの予測動きベクトルの候補を算出し、利用できるかどうかを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＢ、及び動きベクトルｍｖＬＸＢ、参照ピクチャのＰＯＣｐｏｃＬＸＢを算出する（図１６のＳ３０２）。図１６のＳ３０１とＳ３０２の処理は共通であり、利用できるかどうかを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮ、及び動きベクトルｍｖＬＸＮ、参照ピクチャのＰＯＣｐｏｃＬＸＮ（ＮはＡまたはＢ、以下同様）を算出する共通の算出処理手順を図１７〜２２のフローチャートを用いて後ほど詳細に説明する。
【０１３２】
続いて、時間の予測動きベクトルの候補を算出し、利用できるかどうかを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌ、及び動きベクトルｍｖＬＸＣｏｌ、クロスしているかどうかを示すフラグｍｖＸＣｒｏｓｓＦｌａｇを出力する（図１６のＳ３０３）。これらの算出処理手順を図２４〜２９と図２２のフローチャートを用いて後ほど詳細に説明する。
【０１３３】
続いて、ＭＶＰリストｍｖｐＬｉｓｔＬＸを作成し、予測ベクトルの候補ｍｖＬＸＮ（ＮはＡ、ＢまたはＣｏｌ、以下同様）を追加する（図１６のＳ３０４）。これらの算出処理手順を図３０〜３６のフローチャートを用いて後ほど詳細に説明する。
【０１３４】
続いて、ＭＶＰリストｍｖｐＬｉｓｔＬＸ内で、複数の動きベクトルが同じ値を持っている場合に、最も小さい順番の動きベクトルを除いてその動きベクトルを取り除く（図１６のＳ３０５）。
【０１３５】
続いて、図１５に戻り、ＭＶＰリストｍｖｐＬｉｓｔＬＸ内の要素の数ＮｕｍＭＶＰＣａｎｄ（ＬＸ）が１の場合、最終的なＭＶＰインデックスｍｖｐＩｄｘを０とし、そうでない場合には、ｍｖｐＩｄｘをｍｖｐ＿ｉｄｘ＿ＬＸ［ｘＰ，ｙＰ］とする（図１５のＳ２０２）ここで、ｘＰ、ｙＰは画面内での予測ブロックの左上の画素の位置を示すインデックスであり、ｍｖｐ＿ｉｄｘ＿ｌＸ［ｘＰ］［ｙＰ］は画面内の（ｘＰ，ｙＰ）に位置する予測ブロックのリストＬＸ（Ｌ０またはＬ１）のＭＶＰインデックスである。添え字ＬＸは参照リストを表し、Ｌ０とＬ１の２つ用意されていて、Ｘには０或いは１が入る。
【０１３６】
続いて、ＬＸのＭＶＰリスト内のｍｖｐＩｄｘ番目に登録されている動きベクトルｍｖｐＬｉｓｔＬＸ［ｍｖｐＩｄｘ］が最終的なリストＬＸの予測動きベクトルｍｖｐＬＸに割り当てられる（図１５のＳ２０３）。
【０１３７】
［左側または上側に隣接する１つ以上の予測ブロックから予測動きベクトルの候補をそれぞれ導出（図１６のＳ３０１、Ｓ３０２）］
この処理における入力は、符号化／復号対象の予測ブロックの先頭である左上の画素の符号化／復号対象画像内での座標（ｘＰ，ｙＰ）、および符号化／復号対象の予測ブロックの幅ｎＰＳＷと高さｎＰＳＨ、予測ブロックの参照リスト毎の参照インデックスｒｅｆＩｄｘＬＸ（Ｘは０或いは１）である。添え字ＬＸは参照リストを表し、Ｌ０とＬ１の２つ用意されていて、Ｘには０或いは１が入る。参照リストＬ０、Ｌ１は複数の参照ピクチャの候補からブロック単位に任意のピクチャを参照して動き補償を行うために、複数の参照ピクチャを管理するためのリストであり、参照インデックスｒｅｆＩｄｘＬＸは参照ピクチャを指定するために参照リスト毎に各参照ピクチャに割り当てたインデックスである。
【０１３８】
この処理における出力は左側または上側に隣接する予測ブロックの動きベクトルｍｖＬＸＮ、および予測ブロックグループＮの参照リストＬＸの符号化情報が有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮであり、添え字Ｘには参照リストを表す０若しくは１、Ｎには隣接する予測ブロックグループの領域を表すＡ（左側）またはＢ（上側）が入る。
【０１３９】
図５、図６、図７、図８に示されるように、同一ピクチャ内の符号化ブロック内部を動き補償する為に定義される予測ブロックの予測ブロック（図１２中の処理対象の予測ブロック）に隣接する周囲の予測ブロックから予測動きベクトルの候補を導出する。
【０１４０】
図５は、処理対象の予測ブロックとそれに隣接する予測ブロックを示す。予測動きベクトルの候補は、処理対象の予測ブロックの左側に隣接する予測ブロックＡｋ（ｋ＝０，１，２）から構成される予測ブロックグループＡ、上に隣接する予測ブロックＢｋ（ｋ＝０，１，２）から構成される予測ブロックグループＢからそれぞれ予測動きベクトルの候補を選出する。
【０１４１】
図１７のフローチャートを用いて、図１６のＳ３０１およびＳ３０２の処理手順である左側および上側に隣接する予測ブロックグループＮからの予測動きベクトルの候補ｍｖＬＸＮの算出方法について説明する。添え字Ｘには参照リストを表す０若しくは１、Ｎには隣接する予測ブロックグループの領域を表すＡ（左側）またはＢ（上側）が入る。
【０１４２】
図１７で、変数Ｎ＝Ａとして符号化／復号対象の予測ブロックの左側に隣接する１つ以上の予測ブロックから予測動きベクトルの候補を、変数Ｎ＝Ｂとして上側に隣接する１つ以上の予測ブロックから予測動きベクトルの候補を、それぞれ以下の手順で算出する。
【０１４３】
まず、符号化／復号対象の予測ブロックに隣接する予測ブロックを特定し、それぞれの予測ブロックＮｋ（ｋ＝０，１，２）が利用できる場合は符号化情報を取得する（Ｓ１１０１、Ｓ１１０２、Ｓ１１０３）。符号化／復号対象の予測ブロックの左側に隣接する予測ブロックグループ（Ｎ＝Ａ）の場合、左下に隣接する予測ブロックＡ０、左に隣接する予測ブロックＡ１、左上に隣接する予測ブロックＡ２を特定して符号化情報を取得し、符号化／復号対象の予測ブロックの上側に隣接する予測ブロックグループ（Ｎ＝Ｂ）の場合、右上に隣接する予測ブロックＢ０、上に隣接する予測ブロックＢ１、左上に隣接する予測ブロックＢ２を特定して符号化情報を取得する（Ｓ１１０１、Ｓ１１０２、Ｓ１１０３）。なお、隣接する予測ブロックＮｋが符号化／復号対象予測ブロックを含むスライスの内側に位置する場合は利用でき、外側に位置する場合は利用できない。
【０１４４】
次に、予測ブロックグループＮから予測動きベクトルが選出されるか否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮを０、予測ブロックグループＮを代表する動きベクトルｍｖＬＸＮを（０，０）、予測ブロックグループＮを代表する動きベクトルがスケーリングされていないことを示すフラグＭｖＸＮＮｏｎＳｃａｌｅを０に設定する（Ｓ１１０４、Ｓ１１０５、Ｓ１１０６）。
【０１４５】
続いて、図１８に示すフローチャートの処理を行う（Ｓ１１０７）。予測ブロックグループＮの隣接予測ブロックＮ０、Ｎ１、Ｎ２の中で、符号化／復号対象予測ブロックで現在対象としている参照リストＬＸと同じ参照リストＬＸで同じ参照インデックスの動きベクトルを持つ予測ブロックを探す。
【０１４６】
図１８は図１７のステップＳ１１０７の処理手順を示すフローチャートである。隣接する予測ブロックＮｋ（ｋ＝０，１，２）に対して、ｋが０，１，２の順番にそれぞれ以下の処理を行う（Ｓ１２０１〜Ｓ１２１０）。ＮがＡの場合下から上、ＮがＢの場合、右から左に順番にそれぞれ以下の処理を行う。
【０１４７】
隣接する予測ブロックＮｋが利用でき（Ｓ１２０２のＹＥＳ）、予測ブロックＮｋの符号化モードＰｒｅｄＭｏｄｅがイントラ（ＭＯＤＥ＿ＩＮＴＲＡ）でなく（Ｓ１２０３のＹＥＳ）、隣接する予測ブロックＮｋのｐｒｅｄＦｌａｇＬＸ（ＬＸ予測であるかどうかを示すフラグ）が１である場合（Ｓ１２０４のＹＥＳ）、隣接する予測ブロックＮｋの参照インデックスｒｅｆＩｄｘＬＸ［ｘＮｋ］［ｙＮｋ］と処理対象の予測ブロックのインデックスｒｅｆＩｄｘＬＸを比較する（Ｓ１２０５）。両者の参照インデックスが同じ場合（Ｓ１２０５のＹＥＳ）、フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮは１と設定し（Ｓ１２０６）、ｍｖＬＸＮはｍｖＬＸＮ［ｘＮｋ］［ｙＮｋ］と同じ値に設定し（Ｓ１２０７）、ｒｅｆＩｄｘＮはｒｅｆＩｄｘＬＸ［ｘＮｋ］［ｙＮｋ］と同じ値に設定し（Ｓ１２０８）、ＬｉｓｔＮはＬＸと設定し（Ｓ１２０９）、スケーリングされていないことを示すフラグＭｖＸＮＮｏｎＳｃａｌｅは１と設定する（Ｓ１２１０）。
【０１４８】
本実施の形態においては、スケーリングされていないことを示すフラグＭｖＸＮＮｏｎＳｃａｌｅが１、即ちスケーリングされずに算出された動きベクトルｍｖＬＸＮは、符号化／復号対象の予測ブロックの動きベクトルと同じ参照ピクチャを参照している予測ブロックの動きベクトルから予測された動きベクトルであり、符号化／復号対象の予測ブロックの予測動きベクトルの候補として比較的相応しいと判断する。一方、フラグＭｖＸＣｒｏｓｓが０、即ちスケーリングすることによりに算出された動きベクトルｍｖＬＸＮは、符号化／復号対象の予測ブロックの動きベクトルとは異なる参照ピクチャを参照している予測ブロックの動きベクトルから予測した動きベクトルであり、符号化／復号対象の予測ブロックの予測動きベクトルの候補として比較的相応しくないと判断する。即ち、スケーリングされていないことを示すフラグＭｖＸＮＮｏｎＳｃａｌｅを予測動きベクトルの候補として相応しいかどうかの判断の指針のひとつとして用いる。
【０１４９】
一方、これらの条件に合致しない場合（Ｓ１２０２のＮＯ，Ｓ１２０３のＮＯ，Ｓ１２０４のＮＯ，またはＳ１２０５のＮＯの場合）、ｋを１増加し、次の隣接予測ブロックの処理（Ｓ１２０２〜Ｓ１２０９）を行い、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮが１になるか、Ｎ２の処理が終わるまで繰り返す。
【０１５０】
続いて、図１７のフローチャートに戻り、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮが０のとき（Ｓ１１０８のＹＥＳ）、図１９に示すフローチャートの処理を行う（Ｓ１１０９）。予測ブロックグループＮの隣接予測ブロックＮ０、Ｎ１、Ｎ２の中で、符号化／復号対象予測ブロックで現在対象としている参照リストＬＸと反対の参照リストＬＹ（Ｙ＝！Ｘ：現在対象としている参照リストがＬ０のとき、反対の参照リストはＬ１、現在対象としている参照リストがＬ１のとき、反対の参照リストはＬ０）で同じ参照ＰＯＣの動きベクトルを持つ予測ブロックを探す。
【０１５１】
図１９は図１７のステップＳ１１０９の処理手順を示すフローチャートである。隣接する予測ブロックＮｋ（ｋ＝０，１，２）に対して、ｋが０，１，２の順番にそれぞれ以下の処理を行う（Ｓ１３０１〜Ｓ１３１０）。ＮがＡの場合下から上、ＮがＢの場合、右から左に順番にそれぞれ以下の処理を行う。
【０１５２】
隣接する予測ブロックＮｋが利用でき（Ｓ１３０２のＹＥＳ）、予測ブロックＮｋの符号化モードＰｒｅｄＭｏｄｅがイントラ（ＭＯＤＥ＿ＩＮＴＲＡ）でなく（Ｓ１３０３のＹＥＳ）、隣接する予測ブロックＮｋのｐｒｅｄＦｌａｇＬＹ（ＬＹ予測であるかどうかを示すフラグ）が１である場合（Ｓ１３０４のＹＥＳ）、隣接する予測ブロックＮｋの現在対象としている参照リストＬＸと反対の参照リストＬＹの参照ピクチャＲｅｆＰｉｃＬｉｓｔＹ［ｒｅｆＩｄｘＬＹ［ｘＮｋ］［ｙＮｋ］］のＰＯＣＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ，ｒｅｆＩｄｘＬＹ［ｘＮｋ］［ｙＮｋ］，ＬＹ）と処理対象の予測ブロックのＬＸの参照ピクチャＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］のＰＯＣＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ，ｒｅｆＩｄｘＬＸ，ＬＸ）を比較する（Ｓ１３０５）。両者の参照ピクチャのＰＯＣが同じ場合（Ｓ１３０５のＹＥＳ）、フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮは１と設定し（Ｓ１３０６）、ｍｖＬＸＮはｍｖＬＸＮ［ｘＮｋ］［ｙＮｋ］と同じ値に設定し（Ｓ１３０７）、ｒｅｆＩｄｘＮはｒｅｆＩｄｘＬＹ［ｘＮｋ］［ｙＮｋ］と同じ値に設定し（Ｓ１３０８）、ＬｉｓｔＮはＬＹと設定し（Ｓ１３０９）、スケーリングされていないことを示すフラグＭｖＸＮＮｏｎＳｃａｌｅは１と設定する（Ｓ１３１０）。
【０１５３】
一方、これらの条件に合致しない場合（Ｓ１３０２のＮＯ，Ｓ１３０３のＮＯ，Ｓ１３０４のＮＯ，またはＳ１３０５のＮＯの場合）、ｋを１増加し、次の隣接予測ブロックの処理（Ｓ１３０２〜Ｓ１３０９）を行い、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮが１になるか、Ｎ２の処理が終わるまで繰り返す。
【０１５４】
続いて、図１７のフローチャートに戻り、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮが０のとき（Ｓ１１１０のＹＥＳ）、図２０に示すフローチャートの処理を行う（Ｓ１１１１）。予測ブロックグループＮの隣接予測ブロックＮ０、Ｎ１、Ｎ２の中で、符号化／復号対象予測ブロックで現在対象としている参照リストＬＸと同じ参照リストＬＸで異なる参照ＰＯＣの動きベクトルを持つ予測ブロックを探す。
【０１５５】
図２０は図１７のステップＳ１１１１の処理手順を示すフローチャートである。隣接する予測ブロックＮｋ（ｋ＝０，１，２）に対して、ｋが０，１，２の順番にそれぞれ以下の処理を行う（Ｓ１４０１〜Ｓ１４０９）。ＮがＡの場合下から上、ＮがＢの場合、右から左に順番にそれぞれ以下の処理を行う。
【０１５６】
隣接する予測ブロックＮｋが利用でき（Ｓ１４０２のＹＥＳ）、予測ブロックＮｋの符号化モードＰｒｅｄＭｏｄｅがイントラ（ＭＯＤＥ＿ＩＮＴＲＡ）でなく（Ｓ１４０３のＹＥＳ）、隣接する予測ブロックＮｋのｐｒｅｄＦｌａｇＬＸ（ＬＸ予測であるかどうかを示すフラグ）が１である場合（Ｓ１４０４のＹＥＳ）、フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮは１と設定し（Ｓ１４０５）、ｍｖＬＸＮはｍｖＬＸＮ［ｘＮｋ］［ｙＮｋ］と同じ値に設定し（Ｓ１４０６）、ｒｅｆＩｄｘＮはｒｅｆＩｄｘＬＸ［ｘＮｋ］［ｙＮｋ］と同じ値に設定し（Ｓ１４０７）、ＬｉｓｔＮはＬＸと設定する（Ｓ１４０８）。
【０１５７】
一方、これらの条件に合致しない場合（Ｓ１４０２のＮＯ，Ｓ１４０３のＮＯ，またはＳ１４０４のＮＯの場合）、ｋを１増加し、次の隣接予測ブロックの処理（Ｓ１４０２〜Ｓ１４０８）を行い、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮが１になるか、Ｎ２の処理が終わるまで繰り返す。
【０１５８】
続いて、図１７のフローチャートに戻り、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮが０のとき（Ｓ１１１２のＹＥＳ）、図２１に示すフローチャートの処理を行う（Ｓ１１１３）。（予測ブロックグループＮの隣接予測ブロックＮ０、Ｎ１、Ｎ２の中で、符号化／復号対象予測ブロックで現在対象としている参照リストＬＸと反対の参照リストＬＹ（Ｙ＝！Ｘ：現在対象としている参照リストがＬ０のとき、反対の参照リストはＬ１、現在対象としている参照リストがＬ１のとき、反対の参照リストはＬ０）で異なる参照ＰＯＣの動きベクトルを持つ予測ブロックを探す）
【０１５９】
図２１は図１７のステップＳ１１１３の処理手順を示すフローチャートである。隣接する予測ブロックＮｋ（ｋ＝０，１，２）に対して、ｋが０，１，２の順番にそれぞれ以下の処理を行う（Ｓ１５０１〜Ｓ１５０９）。ＮがＡの場合下から上、ＮがＢの場合、右から左に順番にそれぞれ以下の処理を行う。
【０１６０】
隣接する予測ブロックＮｋが利用でき（Ｓ１５０２のＹＥＳ）、予測ブロックＮｋの符号化モードＰｒｅｄＭｏｄｅがイントラ（ＭＯＤＥ＿ＩＮＴＲＡ）でなく（Ｓ１５０３のＹＥＳ）、隣接する予測ブロックＮｋのｐｒｅｄＦｌａｇＬＹ（ＬＹ予測であるかどうかを示すフラグ）が１である場合（Ｓ１５０４のＹＥＳ）、フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮは１と設定し（Ｓ１５０５）、ｍｖＬＸＮはｍｖＬＸＮ［ｘＮｋ］［ｙＮｋ］と同じ値に設定し（Ｓ１５０６）、ｒｅｆＩｄｘＮはｒｅｆＩｄｘＬＹ［ｘＮｋ］［ｙＮｋ］と同じ値に設定し（Ｓ１５０７）、ＬｉｓｔＮはＬＹと設定する（Ｓ１５０８）。
【０１６１】
一方、これらの条件に合致しない場合（Ｓ１５０２のＮＯ，Ｓ１５０３のＮＯ，またはＳ１５０４のＮＯの場合）、ｋを１増加し、次の隣接予測ブロックの処理（Ｓ１５０２〜Ｓ１５０８）を行い、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮが１になるか、Ｎ２の処理が終わるまで繰り返す。
【０１６２】
続いて、図１７のフローチャートに戻り、ａｖａｉｌａｂｌｅＦｌａｇＬＸＮが１のとき（Ｓ１１１４のＹＥＳ）、図２２に示すｍｖＬＸＮのスケーリング処理を行う（Ｓ１１１５）。
【０１６３】
図２２は図１７のステップＳ１１１５の動きベクトルのスケーリング処理手順を示すフローチャートである。図２３は、動きベクトルの時間方向のスケーリングを具体例で説明する図である。もし、参照する予測ブロックの参照リストＬｉｓｔＮの参照ピクチャＲｅｆＰｉｃＬｉｓｔＮ［ｒｅｆＩｄｘＬＮ］のＰＯＣ  ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ，ｒｅｆＩｄｘＮ，ＬｉｓｔＮ）がＬＸの参照ピクチャＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］のＰＯＣ  ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ，ｒｅｆＩｄｘＬＸ，ＬＸ）と等しい場合（Ｓ１６０１のＹＥＳ）、ｍｖＬＸＮをそのままの値とし（Ｓ１６０２）、そうでない場合（Ｓ１６０１のＮＯ）、次式によりスケーリング処理を行う。
ｍｖＬＸＮ＝ｔｂ／ｔｄ＊ｍｖＬＸＮ
ただし、ｔｄは現在の符号化／復号対象画像のＰＯＣ  ＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ）と、隣接予測ブロックの参照リストＬｉｓｔＮが参照する参照ピクチャＲｅｆＰｉｃＬｉｓｔＮ［ｒｅｆＩｄｘＮ］のＰＯＣ  ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ，ｒｅｆＩｄｘＮ，ＬｉｓｔＮ）の差である。
ｔｄ＝ＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ）−ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ，ｒｅｆＩｄｘＮ，ＬｉｓｔＮ）
ｔｂは現在の符号化／復号対象画像のＰＯＣ  ＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ）と、現在の符号化／復号対象画像の参照リストＬＸが参照する参照ピクチャのＰＯＣとの差である。
ｔｂ＝ＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ）−ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ，ｒｅｆＩｄｘＬＸ，ＬＸ）
【０１６４】
［時間方向の予測動きベクトルの候補を導出（図１６のＳ３０３）］
この処理における入力は、符号化／復号対象の予測ブロックの先頭である左上の画素の符号化／復号対象画像内での座標（ｘＰ，ｙＰ）、および符号化／復号対象の予測ブロックの幅ｎＰＳＷと高さｎＰＳＨ、予測ブロックの参照リスト毎の参照インデックスｒｅｆＩｄｘＬＸ（Ｘは０或いは１）である。添え字ＬＸは参照リストを表し、Ｌ０とＬ１の２つ用意されていて、Ｘには０或いは１が入る。参照リストＬ０、Ｌ１は複数の参照ピクチャの候補からブロック単位に任意のピクチャを参照して動き補償を行うために、複数の参照ピクチャを管理するためのリストであり、参照インデックスｒｅｆＩｄｘＬＸは参照ピクチャを指定するために参照リスト毎に各参照ピクチャに割り当てたインデックスである。
【０１６５】
この処理における出力は予測ブロックの予測ブロックと同位置の他ピクチャの予測ブロックの動きベクトルｍｖＬＸＣｏｌ、および予測ブロックグループＣｏｌの参照リストＬＸの符号化情報が有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌであり、添え字Ｘには参照リストを表す０若しくは１が入る。
【０１６６】
図２４は図１６のステップＳ３０３の処理手順を説明するフローチャートである。
まず、ｓｌｉｃｅ＿ｔｙｐｅとｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇにより、基準となるピクチャｃｏｌＰｉｃを算出する（図２４のＳ２１０１）。
【０１６７】
図２５は図２４のステップＳ２１０１の基準ピクチャｃｏｌＰｉｃの算出処理手順を説明するフローチャートである。ｓｌｉｃｅ＿ｔｙｐｅがＢで、図１０の第３フラグｃｏｌｌｏｃａｔｅｄ＿ｆｏｒｍ＿ｌ０＿ｆｌａｇが０の場合（図２５のＳ２２０１のＹＥＳ、Ｓ２２０２のＹＥＳ）、ＲｅｆＰｉｃＬｉｓｔ１［０］、すなわち参照ピクチャリスト１の参照インデックスが０のピクチャがｃｏｌＰｉｃとなる（図２５のＳ２２０３）。そうでない場合（図２５のＳ２２０１のＮＯ、Ｓ２２０２のＮＯ、Ｓ２２０４のＮＯ）、ＲｅｆＰｉｃＬｉｓｔ０［０］、すなわち参照ピクチャリスト０の参照インデックスが０のピクチャがｃｏｌＰｉｃとなる（図２５のＳ２２０５）。
【０１６８】
次に、図２４のフローチャートに戻り、予測ブロックｃｏｌＰｕを算出し、符号化情報を取得する（図２４のＳ２１０２）。
【０１６９】
図２６は図２４のステップＳ２１０２の予測ブロックｃｏｌＰｕの算出処理手順を説明するフローチャートである。
【０１７０】
まず、ｃｏｌＰｉｃ内で処理対象の予測ブロックと同一位置の右下（外側）に位置する予測ブロックをｃｏｌＰｕに設定する（図２６のＳ２３０１）。この予測ブロックは図９の予測ブロックＴ０に相当する。
【０１７１】
次に、予測ブロックｃｏｌＰｕの符号化情報を取得する。予測ブロックｃｏｌＰｕのＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡか、利用できない場合（図２６のＳ２３０３、Ｓ２３０４）、ｃｏｌＰｉｃ内で処理対象の予測ブロックと同一位置の左上（内側）に位置する予測ブロックをｃｏｌＰｕに設定する（図２６のＳ２３０５）。この予測ブロックは図９の予測ブロックＴ１に相当する。なお、図示していないが、予測ブロックｃｏｌＰｕのＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡか、利用できない場合、図９の予測ブロックＴ２、Ｔ３の順番に利用できるＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡでない予測ブロックを探す。
【０１７２】
次に、図２４のフローチャートに戻り、ｍｖＬＸＣｏｌとａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌを算出する（図２４のＳ２１０３）。
【０１７３】
図２７は図２４のステップＳ２１０３のインター予測情報の算出処理を説明するフローチャートである。
【０１７４】
予測ブロックｃｏｌＰｕのＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡか、利用できない場合（図２７のＳ２４０１のＮＯ、Ｓ２４０２のＮＯ）、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌを０、ｍｖＬＸＣｏｌを（０，０）とし（図２７のＳ２４０３、Ｓ２４０４）、処理を終了する。
【０１７５】
予測ブロックｃｏｌＰｕが利用できてＰｒｅｄＭｏｄｅがＭＯＤＥ＿ＩＮＴＲＡでない場合（図２７のＳ２４０１のＹＥＳ、Ｓ２４０２のＹＥＳ）、以下の手順でｍｖＣｏｌとｒｅｆＩｄｘＣｏｌを算出する。
【０１７６】
予測ブロックｃｏｌＰｕのＬ０予測フラグＰｒｅｄＦｌａｇＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０の場合（図２７のＳ２４０５のＹＥＳ）、予測ブロックｃｏｌＰｕの予測モードはＰｒｅｄ＿Ｌ１であるので、動きベクトルｍｖＣｏｌと参照インデックスｒｅｆＩｄｘＣｏｌは良予測ブロックｃｏｌＰｕのＬ１の動きベクトルであるＭｖＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］とＬ１の参照インデックスＲｅｆＩｄｘＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］にそれぞれ設定する（図２７のＳ２４０６、Ｓ２４０７）。
【０１７７】
さらに、設定された動きベクトルｍｖＣｏｌが符号化／復号対象の予測ブロックを含むピクチャを横切っているかどうかを確認し、Ｍｖ１Ｃｒｏｓｓを設定する（図２７のＳ２４０８）。
【０１７８】
次に図２９を参照して動きベクトルＭＶのクロス判定を説明する。
図２９はｃｏｌＰｕの動きベクトルｍｖＣｏｌが符号化／復号対象の予測ブロックを含むピクチャを横切って参照画像を指し示しているかどうかの確認処理を説明するフローチャートである。基準ピクチャｃｏｌＰｉｃのＰＯＣ  ＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ）が符号化／復号対象ピクチャのＰＯＣ  ＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ）よりも小さく、ｍｖＣｏｌが指し示す参照ピクチャのＰＯＣ  ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ，ＲｅｆＩｄｘＣｏｌＬＸ，ＬＸ）が符号化／復号対象ピクチャのＰＯＣ  ＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ）よりも大きい場合（図２７のＳ２６０１のＹＥＳ）、符号化／復号対象ピクチャを挟んで基準ピクチャｃｏｌＰｉｃが過去、参照ピクチャが未来に位置するので、動きベクトルｍｖＣｏｌが符号化／復号対象の予測ブロックを含むピクチャを横切って参照画像を指し示していると判断し、ＭｖＸＣｒｏｓｓを１とする（図２７のＳ２６０２）。そうではなく（図２７のＳ２６０１のＮＯ）、基準ピクチャｃｏｌＰｉｃのＰＯＣ  ＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ）が符号化／復号対象ピクチャのＰＯＣ  ＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ）よりも大きく、ｍｖＣｏｌが指し示す参照ピクチャのＰＯＣ  ＲｅｆＰｉｃＯｒｄｅｒＣｎｔ（ｃｏｌＰｉｃ，ＲｅｆＩｄｘＣｏｌＬＸ，ＬＸ）が符号化／復号対象ピクチャのＰＯＣ  ＰｉｃＯｒｄｅｒＣｎｔ（ｃｕｒｒＰｉｃ）よりも小さい場合（図２７のＳ２６０３のＹＥＳ）、符号化／復号対象ピクチャを挟んで基準ピクチャｃｏｌＰｉｃが未来、参照ピクチャが過去に位置するので、動きベクトルｍｖＣｏｌが符号化／復号対象の予測ブロックを含むピクチャを横切って参照画像を指し示していると判断し、ＭｖＸＣｒｏｓｓを１とする（図２７のＳ２６０２）。以上の条件に合致しない場合（図２７のＳ２６０１のＮＯ、Ｓ２６０３のＮＯ）、動きベクトルｍｖＣｏｌが符号化／復号対象の予測ブロックを含むピクチャを横切って参照画像を指し示していないと判断し、ＭｖＸＣｒｏｓｓを０とする（図２７のＳ２６０４）。
【０１７９】
再び図２７に戻り、ＭｖＣｒｏｓｓをＭｖ１Ｃｒｏｓｓの値に設定する（図２７のＳ２４０９）。
【０１８０】
本実施の形態においては、フラグＭｖＸＣｒｏｓｓが１、即ち基準ピクチャｃｏｌＰｉｃのｃｏｌＰｕの動きベクトルｍｖＣｏｌが符号化／復号対象の予測ブロックを含むピクチャを横切って参照画像を指し示している場合、その動きベクトルｍｖＣｏｌは、符号化／復号対象の予測ブロックの予測動きベクトルの候補として比較的相応しいと判断する。一方、フラグＭｖＸＣｒｏｓｓが０、即ち基準ピクチャｃｏｌＰｉｃのｃｏｌＰｕの動きベクトルｍｖＣｏｌが符号化／復号対象の予測ブロックを含むピクチャを横切って参照画像を指し示していない場合、その動きベクトルｍｖＣｏｌは、符号化／復号対象の予測ブロックの予測動きベクトルの候補として比較的相応しくないと判断する。即ち、フラグＭｖＸＣｒｏｓｓを予測動きベクトルの候補として相応しいかどうかの判断の指針のひとつとして用いる。予測ブロックｃｏｌＰｕのＬ１予測フラグＰｒｅｄＦｌａｇＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］が０でない場合（図２７のＳ２４１０のＹＥＳ）、予測ブロックｃｏｌＰｕの予測モードはＰｒｅｄ＿ＢＩであるので、２つの動きベクトルから、一方を選択する（図２７のＳ２４１５）。
【０１８１】
図２８は予測ブロックｃｏｌＰｕの予測モードがＰｒｅｄ＿ＢＩのときの予測ブロックのインター予測情報の取得処理方法を説明するフローチャートである。
【０１８２】
動きベクトルｍｖＣｏｌと参照インデックスｒｅｆＩｄｘＣｏｌは予測ブロックｃｏｌＰｕのＬ０の動きベクトルであるＭｖＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］とＬ０の参照インデックスＲｅｆＩｄｘＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］にそれぞれ設定する（図２７のＳ２４１１、Ｓ２４１２）。
【０１８３】
まず、ＲｅｆＩｄｘＣｏｌＬＸにＬ０の参照インデックスＲｅｆＩｄｘＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］を設定し（図２８のＳ２５０２）、Ｌ０の動きベクトルが符号化／復号対象の予測ブロックを含むピクチャを横切るかどうかを確認してＭｖ０Ｃｒｏｓｓを設定する（図２８のＳ２５０３）。さらに、ＲｅｆＩｄｘＣｏｌＬＸにＬ１の参照インデックスＲｅｆＩｄｘＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］を設定し（図２８のＳ２５０２）、Ｌ１の動きベクトルが符号化／復号対象の予測ブロックを含むピクチャを横切るかどうかを確認してＭｖ１Ｃｒｏｓｓを設定する（図２８のＳ２５０３）。
【０１８４】
Ｍｖ０Ｃｒｏｓｓが０でかつＭｖ１Ｃｒｏｓｓが１の場合（図２８のＳ２５０５のＹＥＳ）、または、Ｍｖ０ＣｒｏｓｓがＭｖ１Ｃｒｏｓｓと等しく、参照インデックスリストがＬ１の場合（図２８のＳ２５０６のＹＥＳ）、Ｌ１の方のインター予測情報を選択し、動きベクトルｍｖＣｏｌ、参照インデックスｒｅｆＩｄｘＣｏｌ、リストＬｉｓｔＣｏｌ、ＭｖＣｒｏｓｓは、ＭｖＬ１［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＣｏｌＬ１及びＬ１、Ｍｖ０Ｃｒｏｓｓにそれぞれ設定される。
【０１８５】
そうでない場合（図２８のＳ２５０５のＮＯ、Ｓ２５０６のＮＯ）、Ｌ０の方のインター予測情報を選択し、動きベクトルｍｖＣｏｌ、参照インデックスｒｅｆＩｄｘＣｏｌ、リストＬｉｓｔＣｏｌ、ＭｖＣｒｏｓｓは、ＭｖＬ０［ｘＰＣｏｌ］［ｙＰＣｏｌ］、ＲｅｆＩｄｘＣｏｌＬ０及びＬ０、Ｍｖ０Ｃｒｏｓｓにそれぞれ設定される。
【０１８６】
図２７に戻り、インター予測情報が取得できたらａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌを１とする（図２７のＳ２４１６）。
【０１８７】
次に、図２４のフローチャートに戻り、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌが１の場合（図２４のＳ２１０４のＹＥＳ）、必要に応じてｍｖＬＸＣｏｌをスケーリングする。このｍｖＬＸＣｏｌのスケーリングには図２２で説明した方法と同様の方法を用いる（図２４のＳ２１０５）。
【０１８８】
［予測動きベクトルの候補をＭＶＰリストに追加（図１６のＳ３０４）］
図１６のＳ３０１、Ｓ３０２、及びＳ３０３にて算出された予測動きベクトルの候補ｍｖＬＸＮ（Ｎ＝Ａ，Ｂ，Ｃｏｌ）をＭＶＰリストｍｖｐＬｉｓｔＬＸに追加するＳ３０４）。図３０はＭＶＰリストへの予測動きベクトルの候補の追加処理手順を示すフローチャートである。本方式では、優先順位をつけて、優先順位の高いものからＭＶＰリストｍｖｐＬｉｓｔＬＸに予測動きベクトルの候補を登録することで、ＭＶＰインデックスｍｖｐ＿ｉｄｘ＿ｌＸ［ｘ０］［ｙ０］の符号量を削減する。優先順位の高い要素をＭＶＰリストの前方に配置することで、符号量を削減する。例えば、ＭＶＰリストｍｖｐＬｉｓｔＬＸの要素が３個の場合、ＭＶＰリストのインデックス０を「０」、インデックス１を「１０」、インデックス２を「１１」とすることで、インデックス０を表す符号量が１ビットとなり、インデックス０に発生頻度が高いと考えられる要素を登録することで、符号量を削減する。
【０１８９】
ＭＶＰリストｍｖｐＬｉｓｔＬＸはリスト構造を成し、ＭＶＰリスト内部の所在を示すインデックスと、インデックスに対応する予測動きベクトルの候補を要素として格納する記憶領域が設けられている。インデックスの数字は０から開始され、ＭＶＰリストｍｖｐＬｉｓｔＬＸの記憶領域に、予測動きベクトルの候補が格納される。以降の処理では、ＭＶＰリストｍｖｐＬｉｓｔＬＸに登録されたインデックスｉの予測動きベクトルの候補は、ｍｖｐＬｉｓｔＬＸ［ｉ］で表すこととし、ＭＶＰリストｍｖｐＬｉｓｔＬＸとは配列表記をすることで区別することとする。
【０１９０】
スライス、シーケンスまたはピクチャー毎に符号化されるフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが１で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが０の場合（Ｓ３１０１のＹＥＳ、Ｓ３１０２のＮＯ）、左または上に隣接する予測ブロックからの予測動きベクトルの候補ｍｖＬＸＡ，ｍｖＬＸＢよりも異なる時間のピクチャの同一位置あるいはその近傍の予測ブロックからの予測動きベクトルの候補ｍｖＬＸＣｏｌが優先され、図３１で示すフローチャートの処理手順で、予測動きベクトルの候補がＭＶＰリストに登録される（Ｓ３１０４）。
【０１９１】
また、ｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが０で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが０の場合（Ｓ３１０１のＮＯ、Ｓ３１０３のＮＯ）、異なる時間のピクチャの同一位置あるいはその近傍の予測ブロックからの予測動きベクトルの候補ｍｖＬＸＣｏｌよりも左または上に隣接する予測ブロックからの予測動きベクトルの候補ｍｖＬＸＡ，ｍｖＬＸＢが優先され、図３２で示すフローチャートの処理手順で、予測動きベクトルの候補がＭＶＰリストに登録される（Ｓ３１０５）。
【０１９２】
また、ｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが１で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが１の場合（Ｓ３１０１のＹＥＳ、Ｓ３１０２のＹＥＳ）、信頼性が高いと判断される予測動きベクトルの候補が優先されるとともに、左または上に隣接する予測ブロックからの予測動きベクトルの候補ｍｖＬＸＡ，ｍｖＬＸＢよりも異なる時間のピクチャの同一位置あるいはその近傍の予測ブロックからの予測動きベクトルの候補ｍｖＬＸＣｏｌが優先され、図３３で示すフローチャートの処理手順で、予測動きベクトルの候補がＭＶＰリストに登録される（Ｓ３１０６）。
【０１９３】
また、ｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが０で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが１の場合（Ｓ３１０１のＮＯ、Ｓ３１０３のＹＥＳ）、信頼性が高いと判断される予測動きベクトルの候補が優先されるとともに、異なる時間のピクチャの同一位置あるいはその近傍の予測ブロックからの予測動きベクトルの候補ｍｖＬＸＣｏｌよりも左または上に隣接する予測ブロックからの予測動きベクトルの候補ｍｖＬＸＡ，ｍｖＬＸＢが優先され、図３４で示すフローチャートの処理手順で、予測動きベクトルの候補がＭＶＰリストに登録される（Ｓ３１０７）。
【０１９４】
前述のように、第２のフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇの値は符号化効率を向上させるためフレームまたはスライス毎に適応的に変更して符号化される。符号化／復号対象ピクチャと最も近い参照ピクチャとの間の距離が近い場合は、ｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇを真（１）とし、符号化／復号対象画像と参照ピクチャとの間の距離が遠い場合は、偽（０）と設定することで、ＭＶＰインデックスの符号量を削減することができる。この距離が比較的小さい場合は異なる時間からのＭＶＰの候補が候補として比較的相応しいと判断する。例えば、フレームレートが３０Ｈｚの場合、符号化／復号対象ピクチャと最も近い参照ピクチャとの間の距離がＸフレーム以内（Ｘ＝１〜３程度）の場合、ｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇを真（１）とし、符号化／復号対象画像と参照ピクチャとの間の距離がＸフレームより大きい場合は、偽（０）と設定することで、ＭＶＰインデックスの符号量を削減する。この閾値Ｘはシーケンスの内容に応じて設定することで、より符号量を削減することができる。動きが大きく複雑なシーケンスの場合、閾値を小さくすることで、時間方向のＭＶＰ候補の優先順位を下げることにより、符号化効率を向上することができる。
【０１９５】
図３１は、スライス、シーケンスまたはピクチャー毎に符号化されるフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが１で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが０の場合（Ｓ３１０１のＹＥＳ、Ｓ３１０２のＮＯ）のＭＶＰリストｍｖｐＬｉｓｔＬＸへの予測動きベクトルの候補登録処理手順を示すフローチャートである。
【０１９６】
まず、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌが１の場合（Ｓ３２０１のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの先頭にｍｖＬＸＣｏｌを登録する（Ｓ３２０２）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１の場合（Ｓ３２０３のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＡを登録する（Ｓ３２０４）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１の場合（Ｓ３２０５のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＢを登録する（Ｓ３２０６）。
【０１９７】
図３２は、スライス、シーケンスまたはピクチャー毎に符号化されるフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが１で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが０の場合（Ｓ３１０１のＮＯ、Ｓ３１０３のＮＯ）のＭＶＰリストｍｖｐＬｉｓｔＬＸへの予測動きベクトルの候補登録処理手順を示すフローチャートである。
【０１９８】
まず、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１の場合（Ｓ３３０１のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの先頭にｍｖＬＸＡを登録する（Ｓ３３０２）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１の場合（Ｓ３３０３のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＢを登録する（Ｓ３３０４）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌが１の場合（Ｓ３３０５のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＣｏｌを登録する（Ｓ３３０６）。
【０１９９】
図３３は、スライス、シーケンスまたはピクチャー毎に符号化されるフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが１で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが１の場合（Ｓ３１０１のＹＥＳ、Ｓ３１０２のＹＥＳ）のＭＶＰリストｍｖｐＬｉｓｔＬＸへの予測動きベクトルの候補登録処理手順を示すフローチャートである。
【０２００】
まず、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌが１でかつＭｖＣｒｏｓｓが１の場合（Ｓ３４０１のＹＥＳ、Ｓ３４０２のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの先頭にｍｖＬＸＣｏｌを登録する（Ｓ３４０３）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１でかつＭｖＸＡＮｏｎＳｃａｌｅが１の場合（Ｓ３４０４のＹＥＳ、Ｓ３４０５のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＡを登録する（Ｓ３４０６）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１でかつＭｖＸＢＮｏｎＳｃａｌｅが１の場合（Ｓ３４０７のＹＥＳ、Ｓ３４０８のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＢを登録する（Ｓ３４０９）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌが１でかつＭｖＣｒｏｓｓが０の場合（Ｓ３４１０のＹＥＳ、Ｓ３４１１のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＣｏｌを登録する（Ｓ３４１２）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１でかつＭｖＸＡＮｏｎＳｃａｌｅが０の場合（Ｓ３４１３のＹＥＳ、Ｓ３４１４のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＡを登録する（Ｓ３４１５）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１でかつＭｖＸＢＮｏｎＳｃａｌｅが０の場合（Ｓ３４１７のＹＥＳ、Ｓ３４１６のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＢを登録する（Ｓ３４１８）。
【０２０１】
図３４は、スライス、シーケンスまたはピクチャー毎に符号化されるフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが０で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが１の場合（Ｓ３１０１のＮＯ、Ｓ３１０３のＹＥＳ）のＭＶＰリストｍｖｐＬｉｓｔＬＸへの予測動きベクトルの候補登録処理手順を示すフローチャートである。
【０２０２】
まず、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１でかつＭｖＸＡＮｏｎＳｃａｌｅが１の場合（Ｓ３５０１のＹＥＳ、Ｓ３５０２のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの先頭にｍｖＬＸＡを登録する（Ｓ３５０３）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１でかつＭｖＸＢＮｏｎＳｃａｌｅが１の場合（Ｓ３５０４のＹＥＳ、Ｓ３５０５のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＢを登録する（Ｓ３５０６）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌが１でかつＭｖＣｒｏｓｓが１の場合（Ｓ３５０７のＹＥＳ、Ｓ３５０８のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＣｏｌを登録する（Ｓ３５０９）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１でかつＭｖＸＡＮｏｎＳｃａｌｅが０の場合（Ｓ３５１０のＹＥＳ、Ｓ３５１１のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＡを登録する（Ｓ３５１２）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１でかつＭｖＸＢＮｏｎＳｃａｌｅが０の場合（Ｓ３５１３のＹＥＳ、Ｓ３５１４のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＢを登録する（Ｓ３５１５）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌが１でかつＭｖＣｒｏｓｓが０の場合（Ｓ３５１６のＹＥＳ、Ｓ３５１７のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＣｏｌを登録する（Ｓ３５１８）。
【０２０３】
図３０のＭＶＰリストｍｖｐＬｉｓｔＬＸへの予測動きベクトルの候補登録処理手順においては、ｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが１のとき、時間的な動きベクトルｍｖＬＸＣｏｌを優先的にＭＶＰリストの前方に登録し、ｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが０のとき、空間的な動きベクトルｍｖＬＸＡ、ｍｖＬＸＢが優先的にＭＶＰリストの前方に登録することで、符号量を削減する。
【０２０４】
図３３、及び図３４のＭＶＰリストｍｖｐＬｉｓｔＬＸへの予測動きベクトルの候補登録処理手順においては、フラグＭｖＣｒｏｓｓが１、即ち符号化／復号対象の予測ブロックを含むピクチャを横切って参照画像を指し示しているｃｏｌＰｕの動きベクトルｍｖＣｏｌから算出された予測動きベクトルの候補が、フラグＭｖＣｒｏｓｓが０、即ち符号化／復号対象の予測ブロックを含むピクチャを横切らずに参照画像を指し示しているｃｏｌＰｕの動きベクトルｍｖＣｏｌから算出された予測動きベクトルの候補よりも符号化／復号対象の動きベクトルと近い値を持つことが多く、差分動きベクトルの値が小さくなることが多いと判断し、予測ブロックＣｏｌの予測動きベクトルを優先順位を上げてＭＶＰリストの前方に登録することで、符号量を削減する。即ち異なる時間の画像の予測ブロックＣｏｌの符号化情報の値に応じて優先順位を変更してマージ候補リストに登録する順序を変更ことで、符号量を削減する。
【０２０５】
また、予測ブロックＮ（ＮはＡまたはＢ）において、ＭｖＸＮＮｏｎＳｃａｌｅが１の動きベクトルから予測された予測動きベクトルの候補がＭｖＸＮＮｏｎＳｃａｌｅが０の動きベクトルから予測された予測動きベクトルの候補よりも符号化／復号対象の予測ブロックの予測動きベクトルの候補として比較的相応しく、符号化／復号対象の動きベクトルと近い値を持つことが多く、差分動きベクトルの値が小さくなることが多いと判断し、優先的にＭＶＰリストに登録することで、符号量を削減する。
【０２０６】
なお、図３３及び図３４の代わりに、図３５及び図３６の処理手順で予測動きベクトルの候補を登録することもできる。
【０２０７】
図３５は、スライス、シーケンスまたはピクチャー毎に符号化されるフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが１で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが１の場合（Ｓ３１０１のＹＥＳ、Ｓ３１０２のＹＥＳ）の第２のＭＶＰリストｍｖｐＬｉｓｔＬＸへの予測動きベクトルの候補登録処理手順を示すフローチャートである。
【０２０８】
まず、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌが１でかつ異なる時間の予測ブロックグループで右下の予測ブロックが選択された場合（Ｓ３６０１のＹＥＳ、Ｓ３６０２のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの先頭にｍｖＬＸＣｏｌを登録する（Ｓ３６０３）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１でかつ左に隣接する予測ブロックグループで左下または左の予測ブロックが選択された場合（Ｓ３６０４のＹＥＳ、Ｓ３６０５のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＡを登録する（Ｓ３６０６）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１でかつ上に隣接する予測ブロックグループで右上または上の予測ブロックが選択された場合（Ｓ３６０７のＹＥＳ、Ｓ３６０８のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＢを登録する（Ｓ３６０９）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌが１でかつ異なる時間の予測ブロックグループで中央の予測ブロックが選択された場合（Ｓ３６１０のＹＥＳ、Ｓ３６１１のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＣｏｌを登録する（Ｓ３６１２）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１でかつ左に隣接する予測ブロックグループで左上の予測ブロックが選択された場合（Ｓ３６１３のＹＥＳ、Ｓ３６１４のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＡを登録する（Ｓ３６１５）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１でかつ上に隣接する予測ブロックグループで左上の予測ブロックが選択された場合（Ｓ３６１７のＹＥＳ、Ｓ３６１６のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＢを登録する（Ｓ３６１８）。
【０２０９】
図３６は、スライス、シーケンスまたはピクチャー毎に符号化されるフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが０で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが１の場合（Ｓ３１０１のＮＯ、Ｓ３１０３のＹＥＳ）の第２のＭＶＰリストｍｖｐＬｉｓｔＬＸへの予測動きベクトルの候補登録処理手順を示すフローチャートである。
【０２１０】
まず、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１でかつ左に隣接する予測ブロックグループで左下または左の予測ブロックが選択された場合（Ｓ３７０１のＹＥＳ、Ｓ３７０２のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの先頭にｍｖＬＸＡを登録する（Ｓ３７０３）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１でかつ上に隣接する予測ブロックグループで右上または上の予測ブロックが選択された場合（Ｓ３７０４のＹＥＳ、Ｓ３７０５のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＢを登録する（Ｓ３７０６）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌが１でかつ異なる時間の予測ブロックグループで右下の予測ブロックが選択された場合（Ｓ３７０７のＹＥＳ、Ｓ３７０８のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＣｏｌを登録する（Ｓ３７０９）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１でかつ左に隣接する予測ブロックグループで左上の予測ブロックが選択された場合（Ｓ３７１０のＹＥＳ、Ｓ３７１１のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＡを登録する（Ｓ３７１２）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＢが１でかつ上に隣接する予測ブロックグループで左上の予測ブロックが選択された場合（Ｓ３７１３のＹＥＳ、Ｓ３７１４のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＢを登録する（Ｓ３７１５）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌが１でかつ異なる時間の予測ブロックグループで中央の予測ブロックが選択された場合（Ｓ３７１６のＹＥＳ、Ｓ３７１７のＹＥＳ）、ＭＶＰリストｍｖｐＬｉｓｔＬＸの最後にｍｖＬＸＣｏｌを登録する（Ｓ３７１８）。
【０２１１】
図３５、及び図３６のＭＶＰリストｍｖｐＬｉｓｔＬＸへの予測動きベクトルの候補登録処理手順においては、異なる時間の予測ブロックグループにおいて、右下の予測ブロックの動きベクトルから予測された予測動きベクトルの候補が異なる時間の予測ブロックグループで中央の予測ブロックの動きベクトルから予測された予測動きベクトルの候補よりも符号化対象の動きベクトルと近い値を持つことが多く、差分動きベクトルの値が小さくなることが多いと判断し、優先的にＭＶＰリストに登録することで、符号量を削減する。左に隣接する予測ブロックグループにおいて、左下または左の予測ブロックの動きベクトルから予測された予測動きベクトルの候補が左上の予測ブロックの動きベクトルから予測された予測動きベクトルの候補よりも符号化対象の動きベクトルと近い値を持つことが多く、差分動きベクトルの値が小さくなることが多いと判断し、優先的にＭＶＰリストに登録することで、符号量を削減する。上に隣接する予測ブロックグループにおいて、右上または上の予測ブロックの動きベクトルから予測された予測動きベクトルの候補が左上の予測ブロックの動きベクトルから予測された予測動きベクトルの候補よりも符号化対象の動きベクトルと近い値を持つことが多く、差分動きベクトルの値が小さくなることが多いと判断し、優先的にＭＶＰリストに登録することで、符号量を削減する。
【０２１２】
［ＭＶＰリストの中の同じの値を持つ予測動きベクトルの候補を削除（図１６のＳ３０５）］
予測動きベクトルの候補のＭＶＰリストｍｖｐＬｉｓｔＬＸの中で、同じ動きベクトルの値を持つ予測動きベクトルの候補が存在する場合、ＭＶＰリストｍｖｐＬｉｓｔＬＸの中で最も小さいインデックスを持つ予測動きベクトルの候補を除いて全て削除される。削除処理の終了後、ＭＶＰリストｍｖｐＬｉｓｔＬＸの中は、削除された予測動きベクトルの候補の格納領域が空いている為、インデックス０を基準にして、インデックスが小さい予測動きベクトルの候補の順で詰めていく。例えば、インデックス１，４の予測動きベクトルの候補が削除され、インデックス０，２及び３が残った場合、インデックス０はそのままとして、インデックス２の予測動きベクトルの候補をインデックス１の格納領域に移動し、インデックス３の予測動きベクトルの候補をインデックス２の格納領域に移動して、ＭＶＰリストｍｖｐＬｉｓｔＬＸの中を更新する。
【０２１３】
なお、ステップＳ３０１、Ｓ３０２、Ｓ３０３に関しては、処理順序を入れ替えることもできるし、並列に処理することも可能である。
【０２１４】
次に、マージ・モードについて説明する。
これまで、動画像符号化装置の差分動きベクトル算出部１０３、及び動画像復号装置の動きベクトル算出部２０４の予測動きベクトルの算出方法、及び予測動きベクトルリストの構築方法について述べたが、動画像符号化装置のインター予測情報推定部１０４、及び動画像復号装置のインター予測情報推定部２０５のマージ・モードでも同様の処理を行う。
【０２１５】
前述したように、マージ・モードは当該予測ブロックの予測モード、参照リストインデックス、動きベクトル等のインター予測情報を符号化／復号するのではなく、符号化済みの隣接するインター予測された予測ブロック、あるいは異なる画像のインター予測された予測ブロックのインター予測情報を利用するモードである。
【０２１６】
図３７はマージ・モードでの隣接する予測ブロックの位置を説明する図である。マージ・モードは左に隣接する予測ブロックＡ、上に隣接する予測ブロックＢ、右上に隣接する予測ブロックＣ、左下に隣接する予測ブロックＤに加えて、図９を用いて説明した異なる時間の同一位置あるいはその近傍の予測ブロックＣｏｌ（Ｔ０〜Ｔ３のいずれか）の５つの予測ブロックを候補とする。動画像符号化装置のインター予測情報推定部１０４、及び動画像復号装置のインター予測情報推定部２０５はそれらの５つの候補を符号化側と復号側で共通の規定の順序でマージ候補リストに登録し、動画像符号化装置のインター予測情報推定部１０４がマージ候補リストの要素を特定するマージ・インデックスを決定して第１の符号化ビット列生成部を経由して符号化し、動画像復号装置のインター予測情報推定部２０５は第１符号化ビット列復号部２０２で復号されたマージ・インデックスが供給されて、そのマージ・インデックスに応じた予測ブロックをマージ候補リストから選択し、その選択された予測ブロックの予測モード、参照インデックス、動きベクトル等のインター予測情報を用いて、動き補償予測を行う。
【０２１７】
図３８は、図１の動画像符号化装置のインター予測情報推定部１０４の詳細な構成を示す図である。また、図３９は、図２の動画像復号装置のインター予測情報推定部２０５の詳細な構成を示す図である。
【０２１８】
図３８及び図３９の太枠線で囲まれる部分はそれぞれ、インター予測情報推定部１０４及びインター予測情報推定部２０５を示している。
【０２１９】
更に、それらの内部の太点線で囲まれる部分は後述するインター予測情報推定方法の動作部を示しており、実施の形態の動画像符号化装置と対応する動画像復号装置にも同様に設置され、符号化と復号で矛盾しない同一の判定結果を得られるようにしている。
【０２２０】
インター予測情報推定部１０４は、マージ候補生成部１３０、マージ候補登録部１３１、マージ候補同一判定部１３２、および符号化情報選択部１３３を含む。
【０２２１】
インター予測情報推定部２０５は、マージ候補生成部２３０、マージ候補登録部２３１、マージ候補同一判定部２３２、および符号化情報選択部２３３を含む。
【０２２２】
図４０は動画像符号化装置のインター予測情報推定部１０４及び動画像復号装置のインター予測情報推定部２０５とで共通する機能を有するマージ候補の導出及びマージ候補リストの構築処理の流れを表すフローチャートである。以下、諸過程を順を追って説明する。
【０２２３】
動画像符号化装置のインター予測情報推定部１０４のマージ候補生成部１３０及び動画像復号装置のインター予測情報推定部２０５のマージ候補生成部２３０では、周囲に隣接する予測ブロックＡ，Ｂ，Ｃ，Ｄからのマージ候補となる予測ブロックをリスト毎に算出し、利用できるかどうかを示すフラグａｖａｉｌａｂｌｅＦｌａｇＮ、及び動きベクトルｍｖＬＸＮ、参照インデックスｒｅｆＩｄｘＬＸＮ、ＬＮ予測が行われるかどうかを示すＬＮ予測フラグｐｒｅｄＦｌａｇＬＸＮを出力する（Ｎ＝Ａ，Ｂ，Ｃ，Ｄ）（図４０のＳ４０１）。なお、Ｌ０のときＸは０、Ｌ１のときＸは１とする（以下同様）。利用できるかどうかを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＮ、及び動きベクトルｍｖＬＸＮ、参照インデックスｒｅｆＩｄｘＬＸＮ、ＬＮ予測フラグｐｒｅｄＦｌａｇＬＸＮ（ＮはＡ，Ｂ，Ｃ，Ｄ、以下同様）を算出する共通の算出処理手順を図４１のフローチャートを用いて後ほど詳細に説明する。
【０２２４】
続いて、異なる時間のマージ候補を算出する。異なる時間のマージ候補の符号化情報を用いてインター予測を行う場合は、双予測を行うために、Ｌ０とＬ１の２つ符号化情報を算出する。まず、動画像符号化装置のインター予測情報推定部１０４のマージ候補生成部１３０及び動画像復号装置のインター予測情報推定部２０５のマージ候補生成部２３０では、異なる時間のマージ候補の参照インデックスｒｅｆＩｄｘＬＸＣｏｌを決定し、出力する（図４０のＳ４０２）。ここでは、Ｌ０、Ｌ１それぞれにおいて、符号化済みの周囲の予測ブロックの符号化情報を調べて中で最も多く発生している参照インデックスの値を参照インデックスｒｅｆＩｄｘＬＸＣｏｌの値として設定する。最も多く発生している参照インデックスが同数存在する場合は、参照インデックスの値が小さい方を参照インデックスｒｅｆＩｄｘＬＸＣｏｌの値として設定し、参照インデックスが存在しない場合（周囲の予測ブロックが利用できないか、イントラ予測モードの場合）、参照インデックスｒｅｆＩｄｘＬＸＣｏｌの値を０とする。
【０２２５】
続いて、動画像符号化装置のインター予測情報推定部１０４のマージ候補生成部１３０及び動画像復号装置のインター予測情報推定部２０５のマージ候補生成部２３０では、異なる時間の画像からの予測動きベクトルの候補を算出し、利用できるかどうかを示すフラグａｖａｉｌａｂｌｅＦｌａｇＣｏｌ、クロスしているかどうかを示すフラグｍｖＣｒｏｓｓＦｌａｇ、及び動きベクトルｍｖＬＸＣｏｌを出力する（図４０のＳ４０３）。これらの算出処理手順は図２４〜２９と図２２のフローチャートを用いて説明したのと同様の方法である。ただし、マージモードにおける図２２によるＭＶのスケーリングにおいては、ステップＳ４０２で算出した参照インデックスｒｅｆＩｄｘＬＸＣｏｌに応じて算出する。
【０２２６】
続いて、動画像符号化装置のインター予測情報推定部１０４のマージ候補登録部１３１及び動画像復号装置のインター予測情報推定部２０５のマージ候補登録部２３１では、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔを作成し、予測ベクトルの候補ｍｖＬＸＮ（ＮはＡ、Ｂ、Ｃ、ＤまたはＣｏｌ、以下同様）を追加する（図４０のＳ４０４）。これらの登録処理手順を図４２〜４５のフローチャートを用いて後ほど詳細に説明する。
【０２２７】
続いて、動画像符号化装置のインター予測情報推定部１０４のマージ候補同一判定部１３２及び動画像復号装置のインター予測情報推定部２０５のマージ候補同一判定部２３２では、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔ内で、マージ候補が同じ参照インデックスの動きベクトルが同じ値を持っている場合に、最も小さい順番のマージ候補を除いてその動きベクトルを取り除く（図４０のＳ４０５）。
【０２２８】
［周辺の予測ブロックからマージの候補を導出（図４０のＳ４０１）］
図４１のフローチャートを用いて、図４０のＳ４０１の処理手順である周辺に隣接する予測ブロックグループＮからの予測ブロックＮの算出方法について説明する。添え字Ｘには参照リストを表す０若しくは１、Ｎには隣接する予測ブロックグループの領域を表すＡ（左側）、Ｂ（上側）、Ｃ（右上）またはＤ（左下）が入る。
【０２２９】
図４０で、変数Ｎ＝Ａとして符号化／復号対象の予測ブロックの左側に隣接する予測ブロックを、変数Ｎ＝Ｂとして上側に隣接する予測ブロックを、変数Ｎ＝Ｃとして右上側に隣接する予測ブロックを、Ｎ＝Ｄとして左下側に隣接する予測ブロックを調べて、から予測動きベクトルの候補を、それぞれ以下の手順で算出する（Ｓ４１０１〜Ｓ４１１０）。
【０２３０】
まず、符号化／復号対象の予測ブロックに隣接する予測ブロックを特定し、それぞれの予測ブロックＮが利用できる場合は符号化情報を取得する（Ｓ４１０２）。
【０２３１】
隣接する予測ブロックＮが利用できないか（Ｓ４１０３のＹＥＳ）、予測ブロックＮの符号化モードＰｒｅｄＭｏｄｅがイントラ（ＭＯＤＥ＿ＩＮＴＲＡ）である場合（Ｓ４１０４のＹＥＳ）、フラグａｖａｉｌａｂｌｅＦｌａｇＮは０と設定し（Ｓ４１０５）、ｍｖＬＸＮは（０，０）に設定する（Ｓ４１０６）。
【０２３２】
一方、隣接する予測ブロックＮが利用でき（Ｓ４１０３のＮＯ）、予測ブロックＮの符号化モードＰｒｅｄＭｏｄｅがイントラ（ＭＯＤＥ＿ＩＮＴＲＡ）でない場合（Ｓ４１０４のＮＯ）、フラグａｖａｉｌａｂｌｅＦｌａｇＮは１と設定し（Ｓ４１０７）、予測ブロックＮのインター予測情報を取得する。すなわち、予測ブロックＮの動きベクトルｍｖＬＸＮ、参照インデックスｒｅｆＩｄｘＬＸ［ｘＮ，ｙＮ］、ＬＸからの予測を行うかどうかを示すフラグｐｒｅｄＦｌａｇＬＸ［ｘＮ，ｙＮ］がｍｖＬＸＮ、ｒｅｆＩｄｘＬＸＮ、ｐｒｅｄＦｌａｇＬＸＮにそれぞれ割り当てられる（Ｓ４１０８、Ｓ４１０９、Ｓ４１１０）。ここで、Ｘは０と１であり、Ｌ０とＬ１のインター予測情報を取得する。また、重み付け予測が行われ、予測ブロック単位で重み付け係数が設定される場合は、重み付け係数も取得する。さらに、インターレース符号化がおこなわれ、予測ブロック単位で、フレームモードとフィールドモードが切り替わる場合は、フレーム／フィールドの切り替えモードも取得する。さらに、インター予測情報以外の量子化パラメータ等を取得することもできる。
以上のステップＳ４１０２〜Ｓ４１１０の処理をＮ＝Ａ，Ｂ，Ｃ，Ｄについて繰り返す（Ｓ４１０１〜Ｓ４１１１）。
【０２３３】
［予測ブロックの候補をマージ候補リストに追加（図４０のＳ４０４）］
図３７、図９を用いて説明したマージ候補となる予測ブロックの候補をマージ候補リストに追加する方法について説明する。図４２はマージ候補リストへのマージ候補となる予測ブロックの候補の追加処理手順を示すフローチャートである。本方式では、優先順位をつけて、優先順位の高いものからマージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔに予測動きベクトルの候補を登録することで、マージ・インデックスｍｅｒｇｅ＿ｉｄｘ［ｘ０］［ｙ０］の符号量を削減する。優先順位の高い要素をマージ候補リストの前方に配置することで、符号量を削減する。例えば、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの要素が５個の場合、マージ候補リストのインデックス０を「０」、インデックス１を「１０」、インデックス２を「１１０」、インデックス３を「１１１０」、インデックス４を「１１１１０」とすることで、インデックス０を表す符号量が１ビットとなり、インデックス０に発生頻度が高いと考えられる要素を登録することで、符号量を削減する。
【０２３４】
マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔはリスト構造を成し、マージ候補リスト内部の所在を示すマージ・インデックスと、インデックスに対応する予測動きベクトルの候補を要素として格納する記憶領域が設けられている。マージ・インデックスの数字は０から開始され、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの記憶領域に、予測動きベクトルの候補が格納される。以降の処理では、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔに登録されたマージ・インデックスｉのマージ候補となる予測ブロックは、ｍｅｒｇｅＣａｎｄＬｉｓｔ［ｉ］で表すこととし、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔとは配列表記をすることで区別することとする。
【０２３５】
スライス、シーケンスまたはピクチャー毎に符号化されるフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが１で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが０の場合（Ｓ４２０１のＹＥＳ、Ｓ４２０２のＮＯ）、右上または左下に隣接する予測ブロックＣ，Ｄよりも異なる時間のピクチャの同一位置あるいはその近傍の予測ブロックＣｏｌが優先され、図４３で示すフローチャートの処理手順で、マージ候補となる予測ブロックがマージ候補リストに登録される（Ｓ４２０４）。
【０２３６】
また、ｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが０で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが０の場合（Ｓ４２０１のＮＯ、Ｓ４２０３のＮＯ）、異なる時間のピクチャの同一位置あるいはその近傍の予測ブロックからのマージ候補となる予測ブロックＣｏｌよりも右上または左下に隣接する予測ブロックＣ，Ｄが優先され、図４４で示すフローチャートの処理手順で、マージ候補となる予測ブロックがマージ候補リストに登録される（Ｓ４２０５）。
【０２３７】
また、ｍｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが１の場合（Ｓ４２０２のＹＥＳ、Ｓ４２０３のＹＥＳ）、信頼性が高いと判断されるマージ候補となる予測ブロックが優先され、図４５で示すフローチャートの処理手順で、マージ候補となる予測ブロックがマージ候補リストに登録される（Ｓ４２０６）。
【０２３８】
前述のように、第２のフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇの値は符号化効率を向上させるためフレームまたはスライス毎に適応的に変更して符号化される。符号化／復号対象ピクチャと最も近い参照ピクチャとの間の距離が近い場合は、ｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇを真（１）とし、符号化／復号対象画像と参照ピクチャとの間の距離が遠い場合は、偽（０）と設定することで、マージ・インデックスの符号量を削減することができる。この距離が比較的小さい場合は異なる時間からのマージ候補が候補として比較的相応しいと判断する。例えば、フレームレートが３０Ｈｚの場合、符号化／復号対象ピクチャと最も近い参照ピクチャとの間の距離がＸフレーム以内（Ｘ＝１〜３程度）の場合、ｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇを真（１）とし、符号化／復号対象画像と参照ピクチャとの間の距離がＸフレームより大きいの場合は、偽（０）と設定することで、マージ・インデックスの符号量を削減する。この閾値Ｘはシーケンスの内容に応じて設定することで、より符号量を削減することができる。動きが大きく複雑なシーケンスの場合、閾値を小さくすることで、時間方向のマージ候補の優先順位を下げることにより、符号化効率を向上することができる。
【０２３９】
図４３は、スライス、シーケンスまたはピクチャー毎に符号化されるフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが１で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが０の場合（Ｓ４２０１のＹＥＳ、Ｓ４２０２のＮＯ）のマージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔへのマージ候補となる予測ブロックの登録処理手順を示すフローチャートである。
【０２４０】
まず、ａｖａｉｌａｂｌｅＦｌａｇＡが１の場合（Ｓ４３０１のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの先頭に予測ブロックＡをマージ候補として登録する（Ｓ４３０２）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＢが１の場合（Ｓ４３０３のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に予測ブロックＢをマージ候補として登録する（Ｓ４３０４）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＣｏｌが１の場合（Ｓ４３０５のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に予測ブロックＣｏｌをマージ候補として登録する（Ｓ４３０６）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＣが１の場合（Ｓ４３０７のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に予測ブロックＣをマージ候補として登録する（Ｓ４３０８）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＤが１の場合（Ｓ４３０９のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に予測ブロックＤをマージ候補として登録する（Ｓ４３１０）。
【０２４１】
図４４は、スライス、シーケンスまたはピクチャー毎に符号化されるフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが１で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが０の場合（Ｓ４２０１のＮＯ、Ｓ４２０３のＮＯ）のマージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔへのマージ候補となる予測ブロックの登録処理手順を示すフローチャートである。
【０２４２】
まず、ａｖａｉｌａｂｌｅＦｌａｇＡが１の場合（Ｓ４４０１のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの先頭に予測ブロックＡをマージ候補として登録する（Ｓ４４０２）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＢが１の場合（Ｓ４４０３のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に予測ブロックＢをマージ候補として登録する（Ｓ４４０４）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＣが１の場合（Ｓ４４０５のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に予測ブロックＣをマージ候補として登録する（Ｓ４４０６）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＤが１の場合（Ｓ４４０７のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に予測ブロックＤをマージ候補として登録する（Ｓ４４０８）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＣｏｌが１の場合（Ｓ４４０９のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に予測ブロックＣｏｌをマージ候補として登録する（Ｓ４４１０）。
【０２４３】
図４５は、スライス、シーケンスまたはピクチャー毎に符号化されるフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが０または１で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが１の場合（Ｓ４２０１のＹＥＳ、Ｓ４２０２のＹＥＳ）のマージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔへのマージ候補となる予測ブロックの登録処理手順を示すフローチャートである。
【０２４４】
まず、ａｖａｉｌａｂｌｅＦｌａｇＡが１の場合（Ｓ４５０１のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの先頭に予測ブロックＡをマージ候補として登録する（Ｓ４５０２）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＢが１の場合（Ｓ４５０３のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に予測ブロックＢをマージ候補として登録する（Ｓ４５０４）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＣｏｌが１でかつＭｖＸＣｒｏｓｓが１の場合（Ｓ４５０５のＹＥＳ、Ｓ４５０６のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に予測ブロックＣｏｌをマージ候補として登録する（Ｓ４５０７）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＣが１の場合（Ｓ４５０８のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に予測ブロックＣをマージ候補として登録する（Ｓ４５０９）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＤが１の場合（Ｓ４５１０のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に予測ブロックＤをマージ候補として登録する（Ｓ４５１１）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＣｏｌが１でかつＭｖＸＣｒｏｓｓが０の場合（Ｓ４５１１のＹＥＳ、Ｓ４５１３のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に予測ブロックＣｏｌをマージ候補として登録する（Ｓ４５１４）。
【０２４５】
図４２のマージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔへの予測動きベクトルの候補登録処理手順においては、ｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが１のとき、右上または左下に隣接する予測ブロックＣ，Ｄよりも時間的な予測ブロックＣｏｌを優先的にマージ候補リストの前方に登録し、ｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが０のとき、時間的な予測ブロックＣｏｌよりも右上または左下に隣接する予測ブロックＣ，Ｄが優先的にマージ候補リストの前方に登録することで、マージインデックスの符号量を削減する。
【０２４６】
図４５のマージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔへの予測ブロックの候補登録処理手順においては、フラグＭｖＣｒｏｓｓが１、即ち符号化／復号対象の予測ブロックを含むピクチャを横切って参照画像を指し示しているｃｏｌＰｕの動きベクトルｍｖＣｏｌから算出された動きベクトルを用いるマージ候補が、フラグＭｖＣｒｏｓｓが０、即ち符号化／復号対象の予測ブロックを含むピクチャを横切らずに参照画像を指し示しているｃｏｌＰｕの動きベクトルｍｖＣｏｌから算出された動きベクトルを用いるマージ候補よりもマージ候補として相応しいと判断し、ＭｖＣｒｏｓｓが１のとき、時間的な予測ブロックＣｏｌの優先順位を上げてマージ候補リストの前方に登録し、ＭｖＣｒｏｓｓが０のとき、時間的な予測ブロックＣｏｌの優先順位を下げてマージ候補リストの後方に登録することで、符号量を削減する。即ち異なる時間の画像の予測ブロックＣｏｌの符号化情報の値に応じて優先順位を変更してマージ候補リストに登録する順序を変更ことで、符号量を削減する。
【０２４７】
なお、マージモードにおいて、左に隣接する予測ブロックＡ及び上に隣接する予測ブロックＢは符号化／復号対象の予測ブロックと一体となる動きになることが多いので、インター予測情報が取得できる場合には、他の予測ブロックＣ，Ｄ，Ｃｏｌよりも優先的にマージ候補リストの前方に登録する。
【０２４８】
なお、図４５の代わりに、図４６の処理手順でマージ候補を登録することもできる。
【０２４９】
図４６は、スライス、シーケンスまたはピクチャー毎に符号化されるフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが０または１で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが１の場合（Ｓ４２０２のＹＥＳ、Ｓ４２０３のＹＥＳ）のマージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔへのマージ候補となる予測ブロックの登録処理手順を示すフローチャートである。
【０２５０】
まず、ａｖａｉｌａｂｌｅＦｌａｇＡが１で、ｐｒｅｄＦｌａｇＬ０ＡとｐｒｅｄＦｌａｇＬ１Ａが共に１の場合、（Ｓ４６０１のＹＥＳ、Ｓ４６０２のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの先頭に双予測の予測ブロックＡをマージ候補として登録する（Ｓ４６０３）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＢが１で、ｐｒｅｄＦｌａｇＬ０ＢとｐｒｅｄＦｌａｇＬ１Ｂが共に１の場合、（Ｓ４６０４のＹＥＳ、Ｓ４６０５のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に双予測の予測ブロックＢをマージ候補として登録する（Ｓ４６０６）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＡが１で、ｐｒｅｄＦｌａｇＬ０ＡとｐｒｅｄＦｌａｇＬ１Ａのどちらかが０の場合、（Ｓ４６０７のＹＥＳ、Ｓ４６０８のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に双予測でない予測ブロックＡをマージ候補として登録する（Ｓ４６０９）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＢが１で、ｐｒｅｄＦｌａｇＬ０ＢとｐｒｅｄＦｌａｇＬ１Ｂのどちらかが０の場合、（Ｓ４６１０のＹＥＳ、Ｓ４６１１のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に双予測でない予測ブロックＢをマージ候補として登録する（Ｓ４６１２）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＣが１で、ｐｒｅｄＦｌａｇＬ０ＣとｐｒｅｄＦｌａｇＬ１Ｃが共に１の場合、（Ｓ４６１３のＹＥＳ、Ｓ４６１４のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に双予測の予測ブロックＣをマージ候補として登録する（Ｓ４６１５）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＤが１で、ｐｒｅｄＦｌａｇＬ０ＤとｐｒｅｄＦｌａｇＬ１Ｄが共に１の場合、（Ｓ４６１６のＹＥＳ、Ｓ４６１７のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に双予測の予測ブロックＤをマージ候補として登録する（Ｓ４６１８）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＣｏｌが１の場合（Ｓ４６１９のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に予測ブロックＣｏｌをマージ候補として登録する（Ｓ４６２０）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＣが１で、ｐｒｅｄＦｌａｇＬ０ＣとｐｒｅｄＦｌａｇＬ１Ｃのどちらかが０の場合、（Ｓ４６２１のＹＥＳ、Ｓ４６２２のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に双予測でない予測ブロックＣをマージ候補として登録する（Ｓ４６２３）。
続いて、ａｖａｉｌａｂｌｅＦｌａｇＤが１で、ｐｒｅｄＦｌａｇＬ０ＤとｐｒｅｄＦｌａｇＬ１Ｄのどちらかが０の場合、（Ｓ４６２４のＹＥＳ、Ｓ４６２５のＹＥＳ）、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔの最後に双予測でない予測ブロックＣをマージ候補として登録する（Ｓ４６２６）。
【０２５１】
図４６のマージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔへの予測ブロックの候補登録処理手順においては、周囲に隣接する予測ブロックＮ（ＮはＡ，Ｂ，Ｃ，Ｄ）の予測フラグｐｒｅｄＦｌａｇＬ０ＮとｐｒｅｄＦｌａｇＬ１Ｎが共に１、即ち双予測を用いて動き補償が行われているマージ候補が、周囲に隣接する予測ブロックＮ（ＮはＡ，Ｂ，Ｃ，Ｄ）の予測フラグｐｒｅｄＦｌａｇＬ０ＮとｐｒｅｄＦｌａｇＬ１Ｎのどちらかが０、即ち双予測でないＬ０予測、Ｌ１予測等の片方向予測を用いて動き補償が行われているマージ候補よりもマージ候補として相応しいと判断し、双予測が行われるマージ候補の優先順位を上げてマージ候補リストの前方に登録し、双予測が行われないマージ候補の優先順位を下げてマージ候補リストの後方に登録することで、符号量を削減する。即ち周囲に隣接する予測ブロックＮの符号化情報の値に応じて優先順位を変更してマージ候補リストに登録する順序を変更ことで、符号量を削減する。
【０２５２】
なお、図４５、図４６の代わりに、図４７の処理手順で符号化／復号対象画像とマージ候補の参照画像との距離に応じて優先順位をつけてマージ候補を登録することもできる。
【０２５３】
図４７は、スライス、シーケンスまたはピクチャー毎に符号化されるフラグｍｖ＿ｔｅｍｐｏｒａｌ＿ｈｉｇｈ＿ｐｒｉｏｒｉｔｙ＿ｆｌａｇが０または１で、ｍｖ＿ｌｉｓｔ＿ａｄａｐｔｉｖｅ＿ｉｄｘ＿ｆｌａｇが１の場合（Ｓ４２０２のＹＥＳ、Ｓ４２０３のＹＥＳ）のマージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔへのマージ候補となる予測ブロックの登録処理手順を示すフローチャートである。
【０２５４】
まず、符号化／復号対象画像のＰＯＣと予測ブロックＡのインター予測で用いられる参照ピクチャのＰＯＣとの差分の絶対値を算出し、インター予測画像間距離ｄｉｓｔＡとする（Ｓ４７０１）。同様に、符号化／復号対象画像のＰＯＣと予測ブロックＢ、Ｃ、Ｄ、Ｃｏｌのインター予測で用いられる参照ピクチャのＰＯＣとの差分の絶対値をそれぞれ算出し、インター予測画像間距離ｄｉｓｔＢ，ｄｉｓｔＣ，ｄｉｓｔＤ，ｄｉｓｔＣｏｌとする（Ｓ４７０１〜Ｓ４７０５）。予測ブロックＮ（Ｎ＝Ａ，Ｂ，Ｃ，ＤまたはＣｏｌ）が両予測の場合は、Ｌ０用のインター予測画像間距離とＬ１用のインター予測画像間距離を算出し、小さい方を選択して、インター予測画像間距離ｄｉｓｔＮ（Ｎ＝Ａ，Ｂ，Ｃ，ＤまたはＣｏｌ）とする。予測ブロックＮ（Ｎ＝Ａ，Ｂ，Ｃ，ＤまたはＣｏｌ）がＬ０予測、またはＬ１予測の場合は、用いたＬ０用のインター予測画像間距離またはＬ１用のインター予測画像間距離を算出し、小さい方を選択して、インター予測画像間距離ｄｉｓｔＮ（Ｎ＝Ａ，Ｂ，Ｃ，ＤまたはＣｏｌ）とする。
【０２５５】
なお、予測ブロックＮ（Ｎ＝Ａ，Ｂ，Ｃ，ＤまたはＣｏｌ）が利用できない場合、及び、イントラ予測の場合は、インター予測画像間距離ｄｉｓｔＮ（Ｎ＝Ａ，Ｂ，Ｃ，ＤまたはＣｏｌ）をｄｉｓｔＮがとりうる最大値に設定する。
【０２５６】
続いて、算出した予測ブロックＡ，Ｂ，Ｃ，Ｄ，Ｃｏｌのインター予測画像間距離ｄｉｓｔＡ，ｄｉｓｔＢ，ｄｉｓｔＣ，ｄｉｓｔＤ，ｄｉｓｔＣｏｌの値に応じて、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔにマージ候補Ａ，Ｂ，Ｃ，Ｄ，Ｃｏｌを追加する（Ｓ４７０６〜Ｓ４７２０）。
【０２５７】
まず、算出した予測ブロックＡ，Ｂのインター予測画像間距離ｄｉｓｔＡ，ｄｉｓｔＢの値の小さな予測ブロックから順次マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔにマージ候補Ａ，Ｂを追加する（Ｓ４７０６〜Ｓ４７０８）。
【０２５８】
予測ブロックＡのインター予測画像間距離ｄｉｓｔＡの値と予測ブロックＢのインター予測画像間距離ｄｉｓｔＢの値を比較し（Ｓ４７０６）、ｄｉｓｔＡがｄｉｓｔＢ以下の場合、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔに予測ブロックＡ，Ｂの順序で追加する（Ｓ４７０７）。つまり、予測ブロックＡを追加してからその後方に予測ブロックＢを追加する。ｄｉｓｔＢの値がｄｉｓｔＡの値より小さい場合、マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔに予測ブロックＢ，Ａの順序で追加する（Ｓ４７０８）。
【０２５９】
続いて、算出した予測ブロックＣ，Ｄ，Ｃｏｌのインター予測画像間距離ｄｉｓｔＣ，ｄｉｓｔＤ，Ｃｏｌの値の小さな予測ブロックから順次マージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔにマージ候補Ｃ，Ｄ，Ｃｏｌを追加する（Ｓ４７０９〜Ｓ４７２０）。
【０２６０】
図４７のマージ候補リストｍｅｒｇｅＣａｎｄＬｉｓｔへの予測ブロックの候補登録処理手順においては、符号化／復号対象の予測ブロックを含むピクチャとマージ候補の参照ピクチャとの距離が小さいマージ候補が符号化／復号対象の予測ブロックを含むピクチャとマージ候補の参照ピクチャとの距離が大きいマージ候補よりもマージ候補として相応しいと判断し、距離が小さいマージ候補の優先順位を距離が大きいマージ候補の優先順位よりも上げてマージ候補リストの前方に登録することで、符号量を削減する。即ち周囲に隣接する予測ブロックＮの符号化情報の値に応じて優先順位を変更してマージ候補リストに登録する順序を変更ことで、符号量を削減する。
【０２６１】
なお、マージモードにおいて、マージ候補となる予測ブロックの符号化情報を確認し、多いものから順番に優先順位を付けることもできる。
なお、マージモードにおいて、マージ候補となる予測ブロックの大きさを確認し、大きいものから順番に優先順位を付けることもできる。
【０２６２】
図３８に戻り、動画像符号化装置のインター予測情報推定部１０４の符号化情報選択部１３３では、マージ候補リストに登録されているマージ候補の中から、最適な候補を選択し、マージ・インデックスおよびマージ・インデックスに対応する符号化情報を出力する。
【０２６３】
最適な候補の選択においては、予測方法決定部１０６と同様の方法を用いることができる。それぞれのマージ候補ごとに符号量と符号化歪を算出し、最も少ない発生符号量と符号化歪となる符号化情報が決定される。それぞれのマージ候補毎にマージ・インデックスｍｅｒｇｅ＿ｉｄｘの符号化が行われ、符号化情報の符号量を算出する。さらに、それぞれのマージ候補毎に動き補償予測部１０５と同様の方法で各マージ候補の符号化情報に応じて動き補償した動き補償予測信号と、画像メモリ１０１から供給される符号化対象の画像信号との予測残差信号を符号化した予測残差信号の符号量を算出する。符号化情報（マージ・インデックス）の符号量と予測残差信号の符号量とが加算された総発生符号量を算出し、第１の評価値とする。
【０２６４】
また、こうした差分画像を符号化後に、歪量評価の為に復号し、符号化により生じる元画像との誤差を表す比率として符号化歪が算出される。これら総発生符号量と符号化歪とをマージ候補毎に比較することで、最も少ない発生符号量と符号化歪となる符号化情報が決定される。決定された符号化情報に対応するマージ・インデックスが、予測ブロック単位の第２のシンタックスパターンで表されるフラグｍｅｒｇｅ＿ｉｄｘとして符号化される。尚、ここで算出される発生符号量は、符号化過程をシミュレートしたものであることが望ましいが、簡便に近似したり、概算することも可能である。
【０２６５】
一方、図３９において、動画像符号化装置のインター予測情報推定部２０５の符号化情報選択部２３３では、マージ候補リストに登録されているマージ候補の中から、供給されたマージインデックスに対応する符号化情報を選択し、動き補償予測部２０６に供給するとともに、符号化情報格納メモリ２０９に格納する。
【０２６６】
以上述べたように、実施の形態の動きベクトルの予測方法によれば、ピクチャを矩形ブロックに分割し、ピクチャ間でブロック単位に動き推定、補償を行う動画像符号化における動きベクトルの符号化効率を向上させる為に、既符号化済みの予測ブロックの動きベクトルから予測を行い、処理対象のブロックの動きベクトルとその予測値との差分ベクトルを符号化することによって符号量を削減することができる。その際、得られる複数の予測動きベクトルは予測動きベクトルリストに優先順位が付けられて、登録されるが、本実施例で説明したように、優先順位に応じて、登録順序を変更してもよいし、既定の順序で登録した後、リスト内を優先順位に応じて、並び替えてもよく、本発明に含まれる。例えば、予測動きベクトルリストのインデックス０に左側に隣接する第１の予測ブロックグループＡから算出した予測動きベクトル、インデックス１に上側に隣接する第２の予測ブロックグループＢから算出した予測動きベクトル、インデックス２に異なる時間の第３の予測ブロックグループＣから算出した予測動きベクトルを一旦登録し、その後、必要に応じて、優先順位に従って並べ替える。
【０２６７】
さらに、実施の形態の動きベクトルの予測方法によれば、ピクチャを矩形ブロックに分割し、ピクチャ間でブロック単位に動き推定、補償を行う動画像符号化における符号化情報の符号化効率を向上させる為に、既符号化済みのブロックの符号化情報を利用することによって符号量を削減することができる。その際、得られる複数のマージ候補となる予測ブロックはマージ候補リストに優先順位が付けられて、登録されるが、本実施例で説明したように、優先順位に応じて、登録順序を変更してもよいし、既定の順序で登録した後、リスト内を優先順位に応じて、並び替えてもよく、発明に含まれる。例えば、マージ候補リストのインデックスが０の位置にマージ候補Ａ、インデックスが１の位置にマージ候補Ｂ、インデックスが２の位置にマージ候補Ｃｏｌ、インデックスが３の位置にマージ候補Ｃ、インデックスが４の位置にマージ候補Ｄを一旦登録し、その後、必要に応じて、優先順位に従って並べ替える。また、マージ候補リストに登録されるマージ候補の情報は、具体的には、当該マージ候補のすべての符号化情報自体でもよいし、マージ候補の符号化情報が参照できるメモリのポインタやアドレス情報であってもよい。
【０２６８】
本発明の動画像符号化装置のさらに別の態様として、以下のものがある。
【０２６９】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化装置であって、
符号化対象ブロックと同一ピクチャ内の前記符号化対象ブロックと隣接する符号化済みのブロック、および符号化対象ブロックとは異なるピクチャ内の前記符号化対象ブロックと同一または周辺の位置にある符号化済みのブロックのいずれかから予測して、複数の予測動きベクトルの候補を生成する予測動きベクトル候補生成部を備え、
前記予測動きベクトル候補生成部は、各予測動きベクトルの候補を予測動きベクトル候補リストに登録する際に、ピクチャまたはスライス単位で、優先順位を変更して予測動きベクトル候補リストに登録することを特徴とする動画像符号化装置。
【０２７０】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化装置であって、
符号化対象ブロックと同一ピクチャ内の前記符号化対象ブロックと隣接する符号化済みのブロック、および符号化対象ブロックとは異なるピクチャ内の前記符号化対象ブロックと同一または周辺の位置にある符号化済みのブロックのいずれかから予測して、複数の予測動きベクトルの候補を生成する予測動きベクトル候補生成部を備え、
前記予測動きベクトル候補生成部は、各予測動きベクトルの候補を予測動きベクトル候補リストに登録する際に、ブロック単位で、優先順位を変更して予測動きベクトル候補リストに登録することを特徴とする動画像符号化装置。
【０２７１】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化装置であって、
符号化対象ブロックと同一ピクチャ内の前記符号化対象ブロックと隣接する符号化済みのブロック、および符号化対象ブロックとは異なるピクチャ内の前記符号化対象ブロックと同一または周辺の位置にある符号化済みのブロックのいずれかのインター予測情報を含む符号化情報から、複数のインター予測情報を含む符号化情報であるマージの候補を生成するインター予測情報生成部を備え、
前記インター予測情報生成部は、各マージの候補を予測マージ候補リストに登録する際に、ピクチャまたはスライス単位で、優先順位を変更してマージ候補リストに登録することを特徴とする動画像符号化装置。
【０２７２】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化装置であって、
符号化対象ブロックと同一ピクチャ内の前記符号化対象ブロックと隣接する符号化済みのブロック、および符号化対象ブロックとは異なるピクチャ内の前記符号化対象ブロックと同一または周辺の位置にある符号化済みのブロックのいずれかのインター予測情報を含む符号化情報から、複数のインター予測情報を含む符号化情報であるマージの候補を生成するインター予測情報生成部を備え、
前記インター予測情報生成部は、各マージの候補を予測マージ候補リストに登録する際に、ブロック単位で、優先順位を変更してマージ候補リストに登録することを特徴とする動画像符号化装置。
【０２７３】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化装置であって、
符号化対象ブロックと同一ピクチャ内の前記符号化対象ブロックと隣接する符号化済みのブロック、および符号化対象ブロックとは異なるピクチャ内の前記符号化対象ブロックと同一または周辺の位置にある符号化済みのブロックのいずれかのインター予測情報を含む符号化情報から、複数のインター予測情報を含む符号化情報であるマージの候補を生成するインター予測情報生成部を備え、
前記インター予測情報生成部は、各マージの候補をマージ候補リストに登録する際に、空間方向からのマージの候補が双予測でインター予測されている場合、前記空間方向からのマージ候補の優先順位を上げてマージ候補リストに登録することを特徴とする動画像符号化装置。
【０２７４】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化装置であって、
符号化対象ブロックと同一ピクチャ内の前記符号化対象ブロックと隣接する符号化済みのブロック、および符号化対象ブロックとは異なるピクチャ内の前記符号化対象ブロックと同一または周辺の位置にある符号化済みのブロックのいずれかのインター予測情報を含む符号化情報から、複数のインター予測情報を含む符号化情報であるマージの候補を生成するインター予測情報生成部を備え、
前記インター予測情報生成部は、各マージの候補をマージ候補リストに登録する際に、符号化対象画像と参照画像との間の距離が短いマージの候補を他のマージの候補よりも優先順位を上げてマージ候補リストに登録することを特徴とする動画像符号化装置。
【０２７５】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像を符号化する動画像符号化装置であって、
符号化対象ブロックと同一ピクチャ内の前記符号化対象ブロックと隣接する符号化済みのブロック、および符号化対象ブロックとは異なるピクチャ内の前記符号化対象ブロックと同一または周辺の位置にある符号化済みのブロックのいずれかから予測して、複数の予測動きベクトルの候補を生成する予測動きベクトル候補生成部を備え、
前記予測動きベクトル候補生成部は、空間方向に予測ブロックをスキャンする際、左側の隣接予測ブロックグループ、及び上側の隣接予測ブロックグループの各隣接予測ブロックに対して、
１．符号化対象の予測ブロックで選択された符号化モードと同じ参照リストで、同じ参照フレームの動きベクトルが存在するか否か、
２．符号化対象の予測ブロックで選択された符号化モードとは異なる参照リストで、同じ参照フレームの動きベクトルが存在するか否か、
３．符号化対象の予測ブロックで選択された符号化モードと同じ参照リストで、異なる参照フレームの動きベクトルが存在するか否か、および
４．符号化対象の予測ブロックで選択された符号化モードとは異なる参照リストで、異なる参照フレームの動きベクトルが存在するか否か、
の優先順序で条件判定を行うことを特徴とする動画像符号化装置。
【０２７６】
上記の空間方向の予測ブロックのスキャンにおいて、第１の条件判定が最初の予測ブロックについて終了すると隣の予測ブロックに順次進めて同じ条件判定を行い、以降、第２、第３、第４の条件判定のそれぞれについて予測ブロックを順次進めながら同じ条件判定を行うことを特徴とする動画像符号化装置。
【０２７７】
上記の空間方向の予測ブロックのスキャンにおいて、４つの条件判定のうち、第１と第２の条件判定が最初の予測ブロックについて終了すると隣の予測ブロックに順次進めて同じ条件判定を行い、次に、第３と第４の条件判定が最初の予測ブロックについて終了すると隣の予測ブロックに順次進めて同じ条件判定を行うことを特徴とする動画像符号化装置。
【０２７８】
上記の空間方向の予測ブロックのスキャンにおいて、４つの条件判定のうち、第１の条件判定が最初の予測ブロックについて終了すると隣の予測ブロックに順次進めて同じ条件判定を行い、次に、第２と第３と第４の条件判定が最初の予測ブロックについて終了すると隣の予測ブロックに順次進めて同じ条件判定を行うことを特徴とする動画像符号化装置。
【０２７９】
上記の空間方向の予測ブロックのスキャンにおいて、最初の予測ブロックについて４つの条件判定のいずれにも合致しない場合、当該予測ブロックには条件に合致する動きベクトルは存在しないものと判断し、隣の予測ブロックに順次進めて４つの条件判定のいずれかに合致するかどうかの判定を行うことを特徴とする動画像符号化装置。
【０２８０】
本発明の動画像復号装置のさらに別の態様として、以下のものがある。
【０２８１】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像が符号化された符号化ビット列を復号する動画像復号装置であって、
復号対象ブロックと同一ピクチャ内の前記復号対象ブロックと隣接する復号済みのブロック、および復号対象ブロックとは異なるピクチャ内の前記復号対象ブロックと同一または周辺の位置にある復号済みのブロックのいずれかから予測して、複数の予測動きベクトルの候補を生成する予測動きベクトル候補生成部を備え、
前記予測動きベクトル候補生成部は、各予測動きベクトルの候補を予測動きベクトル候補リストに登録する際に、ピクチャまたはスライス単位で、優先順位を変更して予測動きベクトル候補リストに登録することを特徴とする動画像復号装置。
【０２８２】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像が符号化された符号化ビット列を復号する動画像復号装置であって、
復号対象ブロックと同一ピクチャ内の前記復号対象ブロックと隣接する復号済みのブロック、および復号対象ブロックとは異なるピクチャ内の前記復号対象ブロックと同一または周辺の位置にある復号済みのブロックのいずれかから予測して、複数の予測動きベクトルの候補を生成する予測動きベクトル候補生成部を備え、
前記予測動きベクトル候補生成部は、各予測動きベクトルの候補を予測動きベクトル候補リストに登録する際に、ブロック単位で、優先順位を変更して予測動きベクトル候補リストに登録することを特徴とする動画像復号装置。
【０２８３】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像が符号化された符号化ビット列を復号する動画像復号装置であって、
復号対象ブロックと同一ピクチャ内の前記復号対象ブロックと隣接する復号済みのブロック、および復号対象ブロックとは異なるピクチャ内の前記復号対象ブロックと同一または周辺の位置にある復号済みのブロックのいずれかのインター予測情報を含む符号化情報から、複数のインター予測情報を含む符号化情報であるマージの候補を生成するインター予測情報生成部を備え、
前記インター予測情報生成部は、各マージの候補を予測マージ候補リストに登録する際に、ピクチャまたはスライス単位で、優先順位を変更してマージ候補リストに登録することを特徴とする動画像復号装置。
【０２８４】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像が符号化された符号化ビット列を復号する動画像復号装置であって、
復号対象ブロックと同一ピクチャ内の前記復号対象ブロックと隣接する復号済みのブロック、および復号対象ブロックとは異なるピクチャ内の前記復号対象ブロックと同一または周辺の位置にある近隣の復号済みのブロックのいずれかのインター予測情報を含む符号化情報から、複数のインター予測情報を含む符号化情報であるマージの候補を生成するインター予測情報生成部を備え、
前記インター予測情報生成部は、各マージの候補を予測マージ候補リストに登録する際に、ブロック単位で、優先順位を変更してマージ候補リストに登録することを特徴とする動画像復号装置。
【０２８５】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像が符号化された符号化ビット列を復号する動画像復号装置であって、
復号対象ブロックと同一ピクチャ内の前記復号対象ブロックと隣接する復号済みのブロック、および復号対象ブロックとは異なるピクチャ内の前記復号対象ブロックと同一または周辺の位置にある復号済みのブロックのいずれかのインター予測情報を含む符号化情報から、複数のインター予測情報を含む符号化情報であるマージの候補を生成するインター予測情報生成部を備え、
前記インター予測情報生成部は、各マージの候補をマージ候補リストに登録する際に、空間方向からのマージの候補が双予測でインター予測されている場合、前記空間方向からのマージ候補の優先順位を上げてマージ候補リストに登録することを特徴とする動画像復号装置。
【０２８６】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像が符号化された符号化ビット列を復号する動画像復号装置であって、
復号対象ブロックと同一ピクチャ内の前記復号対象ブロックと隣接する復号済みのブロック、および復号対象ブロックとは異なるピクチャ内の前記復号対象ブロックと同一または周辺の位置にある復号済みのブロックのいずれかのインター予測情報を含む符号化情報から、複数のインター予測情報を含む符号化情報であるマージの候補を生成するインター予測情報生成部を備え、
前記インター予測情報生成部は、各マージの候補をマージ候補リストに登録する際に、符号化対象画像と参照画像との間の距離が短いマージの候補の優先順位を上げてマージ候補リストに登録することを特徴とする動画像復号装置。
【０２８７】
動画像の各ピクチャを分割したブロック単位で動き補償を用いて前記動画像が符号化された符号化ビット列を復号する動画像復号装置であって、
復号対象ブロックと同一ピクチャ内の前記復号対象ブロックと隣接する復号済みのブロック、および復号対象ブロックとは異なるピクチャ内の前記復号対象ブロックと同一または周辺の位置にある復号済みのブロックのいずれかから予測して、複数の予測動きベクトルの候補を生成する予測動きベクトル候補生成部を備え、
前記予測動きベクトル候補生成部は、空間方向に予測ブロックをスキャンする際、左側の隣接予測ブロックグループ、及び上側の隣接予測ブロックグループの各隣接予測ブロックに対して、
１．復号対象の予測ブロックで選択された符号化モードと同じ参照リストで、同じ参照フレームの動きベクトルが存在するか否か、
２．復号対象の予測ブロックで選択された符号化モードとは異なる参照リストで、同じ参照フレームの動きベクトルが存在するか否か、
３．復号対象の予測ブロックで選択された符号化モードと同じ参照リストで、異なる参照フレームの動きベクトルが存在するか否か、および
４．復号対象の予測ブロックで選択された符号化モードとは異なる参照リストで、異なる参照フレームの動きベクトルが存在するか否か、
の優先順序で条件判定を行うことを特徴とする動画像復号装置。
【０２８８】
上記の空間方向の予測ブロックのスキャンにおいて、第１の条件判定が最初の予測ブロックについて終了すると隣の予測ブロックに順次進めて同じ条件判定を行い、以降、第２、第３、第４の条件判定のそれぞれについて予測ブロックを順次進めながら同じ条件判定を行うことを特徴とする動画像復号装置。
【０２８９】
上記の空間方向の予測ブロックのスキャンにおいて、４つの条件判定のうち、第１と第２の条件判定が最初の予測ブロックについて終了すると隣の予測ブロックに順次進めて同じ条件判定を行い、次に、第３と第４の条件判定が最初の予測ブロックについて終了すると隣の予測ブロックに順次進めて同じ条件判定を行うことを特徴とする動画像復号装置。
【０２９０】
上記の空間方向の予測ブロックのスキャンにおいて、４つの条件判定のうち、第１の条件判定が最初の予測ブロックについて終了すると隣の予測ブロックに順次進めて同じ条件判定を行い、次に、第２と第３と第４の条件判定が最初の予測ブロックについて終了すると隣の予測ブロックに順次進めて同じ条件判定を行うことを特徴とする動画像復号装置。
【０２９１】
上記の空間方向の予測ブロックのスキャンにおいて、最初の予測ブロックについて４つの条件判定のいずれにも合致しない場合、当該予測ブロックには条件に合致する動きベクトルは存在しないものと判断し、隣の予測ブロックに順次進めて４つの条件判定のいずれかに合致するかどうかの判定を行うことを特徴とする動画像復号装置。
【０２９２】
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
【０２９３】
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
【０２９４】
動画像送信装置は、動画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
【０２９５】
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ＲＯＭ（リード・オンリ・メモリ）やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
【０２９６】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０２９７】
１０１  画像メモリ、  １０２  動きベクトル検出部、  １０３  差分動きベクトル算出部、  １０４  インター予測情報推定部、  １０５  動き補償予測部、  １０６  予測方法決定部、  １０７  残差信号生成部、  １０８  直交変換・量子化部、  １０９  第１の符号化ビット列生成部、  １１０  第２の符号化ビット列生成部、  １１１  多重化部、  １１２  逆量子化・逆直交変換部、  １１３  復号画像信号重畳部、  １１４  符号化情報格納メモリ、  １１５  復号画像メモリ、  １２０  予測動きベクトル候補生成部、  １２１  予測動きベクトル登録部、  １２２  予測動きベクトル候補同一判定部、  １２３  予測動きベクトル候補符号量算出部、  １２４  予測動きベクトル選択部、  １２５  動きベクトル減算部、  １３０  マージ候補生成部、  １３１  マージ候補登録部、  １３２  マージ候補同一判定部、  １３３  符号化情報選択部、  ２０１  分離部、  ２０２  第１符号化ビット列復号部、  ２０３  第２符号化ビット列復号部、  ２０４  動きベクトル算出部、  ２０５  インター予測情報推定部、  ２０６  補償予測部、  ２０７  逆量子化・逆直交変換部、  ２０８  復号画像信号重畳部、  ２０９  符号化情報格納メモリ、  ２１０  復号画像メモリ、  ２２０  予測動きベクトル候補生成部、  ２２１  予測動きベクトル登録部、  ２２２  予測動きベクトル候補同一判定部、  ２２３  予測動きベクトル選択部、  ２２４  動きベクトル加算部、  ２３０  マージ候補生成部、  ２３１  マージ候補登録部、  ２３２  マージ候補同一判定部、  ２３３  符号化情報選択部。
【図１】
0005477340.tif 000002
【図２】
0005477340.tif 000003
【図３】
0005477340.tif 000004
【図４】
0005477340.tif 000005
【図５】
0005477340.tif 000006
【図６】
0005477340.tif 000007
【図７】
0005477340.tif 000008
【図８】
0005477340.tif 000009
【図９】
0005477340.tif 000010
【図１０】
0005477340.tif 000011
【図１１】
0005477340.tif 000012
【図１２】
0005477340.tif 000013
【図１３】
0005477340.tif 000014
【図１４】
0005477340.tif 000015
【図１５】
0005477340.tif 000016
【図１６】
0005477340.tif 000017
【図１７】
0005477340.tif 000018
【図１８】
0005477340.tif 000019
【図１９】
0005477340.tif 000020
【図２０】
0005477340.tif 000021
【図２１】
0005477340.tif 000022
【図２２】
0005477340.tif 000023
【図２３】
0005477340.tif 000024
【図２４】
0005477340.tif 000025
【図２５】
0005477340.tif 000026
【図２６】
0005477340.tif 000027
【図２７】
0005477340.tif 000028
【図２８】
0005477340.tif 000029
【図２９】
0005477340.tif 000030
【図３０】
0005477340.tif 000031
【図３１】
0005477340.tif 000032
【図３２】
0005477340.tif 000033
【図３３】
0005477340.tif 000034
【図３４】
0005477340.tif 000035
【図３５】
0005477340.tif 000036
【図３６】
0005477340.tif 000037
【図３７】
0005477340.tif 000038
【図３８】
0005477340.tif 000039
【図３９】
0005477340.tif 000040
【図４０】
0005477340.tif 000041
【図４１】
0005477340.tif 000042
【図４２】
0005477340.tif 000043
【図４３】
0005477340.tif 000044
【図４４】
0005477340.tif 000045
【図４５】
0005477340.tif 000046
【図４６】
0005477340.tif 000047
【図４７】
0005477340.tif 000048
【図４８】
0005477340.tif 000049