(57)【要約】【課題】動きベクトル予測において予測動きベクトルの候補を増やすと、その候補を表すインデックスの符号量が増える。【解決手段】動画像の各ピクチャをブロック単位で動きベクトルを用いて符号化する動画像符号化装置において、予測動きベクトル候補生成部１２０は、符号化対象ブロックと同一ピクチャ内の隣接符号化済みブロック及び符号化済みの別のピクチャ内の同一位置のブロックの動きベクトルから複数の予測動きベクトルの候補を生成し、その候補を表すインデックスを付与する。予測動きベクトル候補削除部１２２は、符号化対象ブロックの動きベクトルと予測動きベクトルの候補から差分動きベクトルを計算し、差分動きベクトルから計算される符号量及び予測動きベクトルの候補のインデックスに基づいて予測動きベクトルの候補を削除する。予測動きベクトル判定部１２３は、削除後に残存する候補の中から予測動きベクトルを選択する。【選択図】図７
2012151818.tif 000002
【特許請求の範囲】
【請求項１】
動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて前記動画像を符号化する動画像符号化装置であって、
符号化対象ブロックと同一ピクチャ内の前記符号化対象ブロックと隣接する符号化済みのブロック及び符号化済みの別のピクチャ内の前記符号化対象ブロックと同一位置のブロックの少なくとも一方の動きベクトルから複数の予測動きベクトルの候補を生成し、前記予測動きベクトルの候補を表すインデックスを付与する予測動きベクトル候補生成部と、
前記符号化対象ブロックの動きベクトルと前記予測動きベクトルの候補から差分動きベクトルを計算し、前記差分動きベクトルから計算される符号量及び前記予測動きベクトルの候補のインデックスに基づいて前記予測動きベクトルの候補を削除する予測動きベクトル候補削除部と、
削除後に残存する予測動きベクトルの候補の中から予測動きベクトルを選択する予測動きベクトル判定部とを備えることを特徴とする動画像符号化装置。
【請求項２】
前記予測動きベクトル候補削除部による前記予測動きベクトルの候補の削除に先だって、前記予測動きベクトル候補生成部にて生成された前記予測動きベクトルの候補の中から同一の値を持つ予測動きベクトルの候補を判定して削除する予測動きベクトル候補同一判定部をさらに備えることを特徴とする請求項１に記載の動画像符号化装置。
【請求項３】
前記予測動きベクトル判定部は、前記差分動きベクトルの符号量が同じ前記予測動きベクトルの候補同士では、前記予測動きベクトルの候補のインデックスの大小比較により選択すべき予測動きベクトルの判定を行うことを特徴とする請求項１または２に記載の動画像符号化装置。
【請求項４】
動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて前記動画像を符号化する動画像符号化方法であって、
符号化対象ブロックと同一ピクチャ内の前記符号化対象ブロックと隣接する符号化済みのブロック及び符号化済みの別のピクチャ内の前記符号化対象ブロックと同一位置のブロックの少なくとも一方の動きベクトルから複数の予測動きベクトルの候補を生成し、前記予測動きベクトルの候補を表すインデックスを付与する予測動きベクトル候補生成ステップと、
前記符号化対象ブロックの動きベクトルと前記予測動きベクトルの候補から差分動きベクトルを計算し、前記差分動きベクトルから計算される符号量及び前記予測動きベクトルの候補のインデックスに基づいて前記予測動きベクトルの候補を削除する予測動きベクトル候補削除ステップと、
削除後に残存する予測動きベクトルの候補の中から予測動きベクトルを選択する予測動きベクトル判定ステップとを備えることを特徴とする動画像符号化方法。
【請求項５】
コンピュータに、動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて前記動画像を符号化させるための動画像符号化プログラムであって、
符号化対象ブロックと同一ピクチャ内の前記符号化対象ブロックと隣接する符号化済みのブロック及び符号化済みの別のピクチャ内の前記符号化対象ブロックと同一位置のブロックの少なくとも一方の動きベクトルから複数の予測動きベクトルの候補を生成し、前記予測動きベクトルの候補を表すインデックスを付与する予測動きベクトル候補生成ステップと、
前記符号化対象ブロックの動きベクトルと前記予測動きベクトルの候補から差分動きベクトルを計算し、前記差分動きベクトルから計算される符号量及び前記予測動きベクトルの候補のインデックスに基づいて前記予測動きベクトルの候補を削除する予測動きベクトル候補削除ステップと、
削除後に残存する予測動きベクトルの候補の中から予測動きベクトルを選択する予測動きベクトル判定ステップとをコンピュータに実行させることを特徴とする動画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の符号化技術に関し、特に動き補償予測を利用した動画像の符号化技術に関する。
【背景技術】
【０００２】
ＭＰＥＧ（Moving Picture Experts Group）に代表される、ピクチャを矩形ブロックに分割し、ピクチャ間でブロック単位に動き推定、補償を行う動画像符号化方式では、各ブロックで生成される動きベクトルの符号量を削減する為に、動きベクトルに対して予測処理が行われる。ＭＰＥＧ−２では、マクロブロック単位に検出される動きベクトルは、直前に符号化されたマクロブロックの動きベクトルとの差分がとられ、その差分ベクトルを符号化することで、符号量を削減している。
【０００３】
ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４では、動きベクトルが周囲の隣接ブロックの動きベクトルと強い相関があることを利用して、周囲の隣接ブロックからの予測を行い、その差分ベクトルを符号化することによって符号量を削減している。具体的には、図３１に示されるように、周囲の隣接ブロックの動きベクトルから中央値を算出し、その中央値との差分をとることで動きベクトルの予測を実現している。但し、図３２のように符号化対象ブロックと隣接ブロックとの形状が異なる場合は、左隣に複数の隣接ブロックがある時はその中の一番上のブロックを、上に複数の隣接ブロックがある時はその中の一番左のブロックを予測ブロックとし、図３３（ａ）、（ｂ）のように符号化対象ブロックが２Ｎ×Ｎ画素或いはＮ×２Ｎ画素で分割される場合は、周囲の隣接ブロックの動きベクトルの中央値を取るのではなく、動き補償ブロックサイズに応じて図３３（ａ）、（ｂ）の白抜き矢印で示されるように分割された領域毎に参照先の予測ブロックを決定し、決定された予測ブロックの動きベクトルから予測を実施する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ISO/IEC 13818-2 Information technology -- Generic coding of moving pictures and associated audio information: Video
【非特許文献２】ISO/IEC 14496-10 Information technology -- Coding of audio-visual objects -- Part 10: Advanced Video Coding
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の動きベクトルの予測方法では、予測の為の動きベクトルが１つしかないので、予測が当たらないと、動きベクトルの差分が大きくなり、発生符号量が増加する課題があった。この課題を解決する為に、ＩＳＯ／ＩＥＣ及びＩＴＵ−Ｔにおける動画像符号化の規格作業の中で新たな動きベクトルの予測手法が検討されている。この手法は、符号化済みの周囲の隣接ブロックの動きベクトルについて、それぞれを予測動きベクトルの候補として適用した場合の符号量を評価する基準とし、符号量が最も小さくなる動きベクトルを予測動きベクトルとして採用し、動きベクトルを採用した隣接ブロックに関する付加情報を符号化し伝送するものである。しかしながら、予測動きベクトルの候補を増やした結果、ブロック毎に予測動きベクトルの参照先を表すインデックスを符号化する必要があり、符号化効率を損ねることも考えられる。
【０００６】
本発明はこうした状況に鑑みてなされたものであり、その目的は、予測動きベクトルの候補を減少させることにより、予測動きベクトルの参照先を表すインデックスの符号量の削減を図って符号化効率を向上させる技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の動画像符号化装置は、動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて前記動画像を符号化する動画像符号化装置であって、符号化対象ブロックと同一ピクチャ内の前記符号化対象ブロックと隣接する符号化済みのブロック及び符号化済みの別のピクチャ内の前記符号化対象ブロックと同一位置のブロックの少なくとも一方の動きベクトルから複数の予測動きベクトルの候補を生成し、前記予測動きベクトルの候補を表すインデックスを付与する予測動きベクトル候補生成部（１２０）と、前記符号化対象ブロックの動きベクトルと前記予測動きベクトルの候補から差分動きベクトルを計算し、前記差分動きベクトルから計算される符号量及び前記予測動きベクトルの候補のインデックスに基づいて前記予測動きベクトルの候補を削除する予測動きベクトル候補削除部（１２２）と、削除後に残存する予測動きベクトルの候補の中から予測動きベクトルを選択する予測動きベクトル判定部（１２３）とを備える。
【０００８】
本発明の別の態様は、動画像符号化方法である。この方法は、動画像の各ピクチャを分割したブロック単位で動きベクトルを用いて前記動画像を符号化する動画像符号化方法であって、符号化対象ブロックと同一ピクチャ内の前記符号化対象ブロックと隣接する符号化済みのブロック及び符号化済みの別のピクチャ内の前記符号化対象ブロックと同一位置のブロックの少なくとも一方の動きベクトルから複数の予測動きベクトルの候補を生成し、前記予測動きベクトルの候補を表すインデックスを付与する予測動きベクトル候補生成ステップと、前記符号化対象ブロックの動きベクトルと前記予測動きベクトルの候補から差分動きベクトルを計算し、前記差分動きベクトルから計算される符号量及び前記予測動きベクトルの候補のインデックスに基づいて前記予測動きベクトルの候補を削除する予測動きベクトル候補削除ステップと、削除後に残存する予測動きベクトルの候補の中から予測動きベクトルを選択する予測動きベクトル判定ステップとを備える。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によれば、複数の予測動きベクトルの中から最適な動きベクトルを選択し、伝送する差分動きベクトルの発生符号量を削減させるとともに、予測動きベクトルの候補数を削減可能となる為、予測動きベクトルを表すインデックスに必要な符号量を削減させて、符号化効率を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態に係る動きベクトルの予測方法を具備した動画像符号化装置の構成を示すブロック図である。
【図２】実施の形態に係る動きベクトルの予測方法を具備した動画像復号装置の構成を示すブロック図である。
【図３】実施の形態における符号化ブロックを説明する為の図である。
【図４】実施の形態における予測ブロックの形状の種類を説明する為の図である。
【図５】実施の形態における動きベクトルの予測方法をスライスレベルで実行するか否かを決定するビットストリームのシンタックスパターンを示す図である。
【図６】実施の形態における動きベクトルの予測方法を実行する場合に予測ブロックレベルで予測動きベクトルの候補を一意に決定するビットストリームのシンタックスパターンを示す図である。
【図７】図１の動画像符号化装置の予測動きベクトル選択部の第１の実施例の動作を説明する為の詳細な構成を示すブロック図である。
【図８】図１の動画像符号化装置の予測動きベクトル判定部の動作を説明する為のフローチャートである。
【図９】図２の動画像復号装置の予測動きベクトル選択部の第１の実施例の動作を説明する為の詳細な構成を示すブロック図である。
【図１０】図２の動画像復号装置の予測動きベクトル判定部の動作を説明する為のフローチャートである。
【図１１】実施の形態における動きベクトルの予測方法の第１の実施例の動作を説明する為のフローチャートである。
【図１２】実施の形態における動きベクトルの予測方法の処理対象となるパーティションの位置を説明する為の図である。
【図１３】実施の形態における動きベクトルの予測方法の処理対象となるパーティションの周辺を説明する為の図である。
【図１４】実施の形態における動きベクトルの予測方法の周辺パーティションから予測動きベクトルの候補を選出する動作を説明するためのフローチャートである。
【図１５】実施の形態における動きベクトルの予測方法の周辺パーティションの予測動きベクトルの候補から中央値を算出する動作を説明するためのフローチャートである。
【図１６】実施の形態における動きベクトルの予測方法の予測動きベクトルの候補を格納しておくリストを説明する為の図である。
【図１７】実施の形態における動きベクトルの予測方法の時間方向の予測動きベクトルの候補を算出する為に場合分けをする動作を説明するためのフローチャートである。
【図１８】実施の形態における動きベクトルの予測方法の時間方向の予測動きベクトルの候補を算出するＣａｓｅ１の状態を説明する為の図である。
【図１９】実施の形態における動きベクトルの予測方法の時間方向の予測動きベクトルの候補を算出するＣａｓｅ２の状態を説明する為の図である。
【図２０】実施の形態における動きベクトルの予測方法の時間方向の予測動きベクトルの候補を算出するＣａｓｅ３の状態を説明する為の図である。
【図２１】実施の形態における動きベクトルの予測方法の時間方向の予測動きベクトルの候補を算出する動作を説明するためのフローチャートである。
【図２２】実施の形態における動きベクトルの予測方法の予測動きベクトルの候補の削除の推移を説明する為の図である。
【図２３】実施の形態における動きベクトルの予測方法の予測動きベクトルの候補の削除を説明するためのフローチャートである。
【図２４】実施の形態における動きベクトルの予測方法により算出された差分動きベクトルの符号化に用いられる符号付き指数ゴロム符号化テーブルである。
【図２５】実施の形態における動きベクトルの予測方法により予測動きベクトルのインデックスを表すＴｒｕｎｃａｔｅｄ  Ｕｎａｒｙの符号化テーブルである。
【図２６】図１の動画像符号化装置の予測動きベクトル選択部の第２の実施例の動作を説明する為の詳細な構成を示すブロック図である。
【図２７】図２の動画像復号装置の予測動きベクトル選択部の第２の実施例の動作を説明する為の詳細な構成を示すブロック図である。
【図２８】実施の形態における動きベクトルの予測方法の第２の実施例の動作を説明する為のフローチャートである。
【図２９】実施の形態における動きベクトルの予測方法の第３の実施例の符号量の境界のオフセットを説明する概念図である。
【図３０】実施の形態における動きベクトルの予測方法の第３の実施例の為に図２３に追加されるフローチャートである。
【図３１】従来の周辺の隣接ブロックから予測動きベクトルの求め方を説明する図である。
【図３２】従来の隣接ブロックの形状が異なる場合の予測動きベクトルの求め方を説明する図である。
【図３３】従来の符号化対象ブロックの形状が２Ｎ×Ｎ或いはＮ×２Ｎの場合の予測動きベクトルの求め方を説明する図である。
【発明を実施するための形態】
【００１２】
本発明の実施の形態に係る動画像符号化装置及び動画像復号装置について図面を参照して説明する。
【００１３】
実施の形態では、動画像の符号化に関し、特にピクチャを矩形ブロックに分割し、ピクチャ間でブロック単位に動き推定、補償を行う動画像符号化における動きベクトルの符号化効率を向上させる為に、既符号化済みの周囲のブロック等の動きベクトルから予測を行い、処理対象のブロックの動きベクトルとその予測値との差分ベクトルを符号化することによって符号量を削減する動きベクトルの予測方法を用いる。
【００１４】
図１は実施の形態に係る動画像符号化装置の構成を示すブロックである。実施の形態の動画像符号化装置は、動きベクトル検出部１０１、減算部１０２、直交変換・量子化部１０３、可変長符号化部１０４、逆量子化・逆直交変換部１０５、動き補償部１０６、重み付き予測部１０７、加算部１０８、デブロッキング・フィルタ部１０９、メモリ１１０、および予測動きベクトル選択部１１１を備える。
【００１５】
動きベクトル検出部１０１は、ピクチャ間でブロック単位にマッチングを行い動きベクトルを検出し、検出された動きベクトルを予測動きベクトル選択部１１１に与える。
【００１６】
予測動きベクトル選択部１１１は、メモリ１１０に記憶されている既に符号化された画像の動き情報を用いて、動きベクトル検出部１０１が検出した動きベクトルを予測するための最適な予測動きベクトルを選択する。予測動きベクトル選択部１１１の詳細な構成と動作は後述する。
【００１７】
動き補償部１０６は、動きベクトル検出部１０１により検出された動きベクトルを用いて予測画像を生成する。重み付き予測部１０７は、動き補償部１０６により生成された予測画像に適応的に重み係数を掛け算して最終的な予測画像を生成し、減算部１０２と加算部１０８に与える。
【００１８】
減算部１０２は、符号化する画像と予測画像との引き算を行い残差信号を生成し、直交変換・量子化部１０３に与える。直交変換・量子化部１０３は、残差信号に対して直交変換及び量子化を行い変換信号を生成し、可変長符号化部１０４と逆量子化・逆直交変換部１０５に与える。可変長符号化部１０４は、直交変換及び量子化された残差信号をエントロピー符号化する。可変長符号化部１０４は、予測動きベクトル選択部１１１によって予測された動きベクトルに関する情報も符号化し、符号化画像と符号化された動きベクトルに関する情報とを含むビットストリームを出力する。
【００１９】
逆量子化・逆直交変換部１０５は、直交変換・量子化部１０３から受け取った変換信号を逆量子化及び逆直交変換して元の残差信号に戻す。加算部１０８は、予測画像と残差信号を加算して復号画像を生成し、デブロッキング・フィルタ部１０９に与える。デブロッキング・フィルタ部１０９は、復号画像に対して符号化によるブロック歪を減少させる処理を施し、メモリ１１０に格納する。メモリ１１０は、復号画像や既に符号化された画像の情報を記憶する。
【００２０】
図２は図１の動画像符号化装置に対応した実施の形態に係る動画像復号装置の構成を示すブロックである。実施の形態の動画像復号装置は、可変長復号部２０１、逆量子化・逆直交変換部２０２、動き補償部２０３、重み付き予測部２０４、加算部２０５、デブロッキング・フィルタ部２０６、メモリ２０７、および予測動きベクトル選択部２０８を備える。
【００２１】
図２の動画像復号装置の復号処理は、図１の動画像符号化装置の内部に設けられている復号処理に対応するものであるから、図２の逆量子化・逆直交変換部２０２、動き補償部２０３、重み付き予測部２０４、加算部２０５、デブロッキング・フィルタ部２０６、メモリ２０７、および予測動きベクトル選択部２０８の各構成は、図１の動画像符号化装置の逆量子化・逆直交変換部１０５、動き補償部１０６、重み付き予測部１０７、加算部１０８、デブロッキング・フィルタ部１０９、メモリ１１０、および予測動きベクトル選択部１１１の各構成とそれぞれ対応する機能を有する。
【００２２】
可変長復号部２０１は、ビットストリームを復号して予測残差信号、動きベクトルに関する情報を出力し、予測残差信号を逆量子化・逆直交変換部２０２に与え、動きベクトルに関する情報を予測動きベクトル選択部２０８と動き補償部２０３に与える。
【００２３】
逆量子化・逆直交変換部２０２は、可変長復号部２０１で復号された予測残差信号に対して逆直交変換及び逆量子化を行う。加算部２０５は、逆量子化・逆直交変換部２０２により逆変換された予測残差成分と、重み付き予測部２０４により算出された予測画像とを加算することにより、画像信号を復号し、デブロッキング・フィルタ部２０６に与える。デブロッキング・フィルタ部２０６は、復号画像に対して符号化によるブロック歪を減少させる処理を施し、メモリ２０７に格納する。
【００２４】
予測動きベクトル選択部２０８は、メモリ２０７に記憶されている既に復号された画像の動き情報を用いて、復号対象ブロックの復号された動きベクトルを予測するための最適な予測動きベクトルを選択する。予測動きベクトル選択部２０８の詳細な構成と動作は後述する。
【００２５】
動き補償部２０３は、復号対象ブロックの復号された動きベクトルを用いて予測画像を生成する。重み付き予測部２０４は、動き補償部２０３により生成された予測画像に適応的に重み係数を掛け算して最終的な予測画像を生成し、加算部２０５に与える。
【００２６】
実施の形態に係る動きベクトルの予測方法は、図１の動画像符号化装置の予測動きベクトル選択部１１１及び図２の動画像復号装置の予測動きベクトル選択部２０８において実施される。
【００２７】
［実施例１］
動きベクトルの予測方法の実施例を説明する前に、本実施例において使用する用語を説明しておく。
【００２８】
（符号化ブロックについて）
実施の形態では、図３に示されるように、画面内を同一サイズの正方の矩形ブロックにて均等分割する。このブロックを符号化ブロックと呼び、符号化及び復号を行う際の処理の基本となる。符号化ブロックは画面内のテクスチャに応じて、符号化処理を最適にすべく、符号化ブロック内を４分割して、ブロックサイズの小さい符号化ブロックにすることが出来る。図３で示される画面内を均等サイズで分割される符号化ブロックを最大符号化ブロックと呼び、その内部を符号化条件に応じて４分割したものを総じて符号化ブロックとする。符号化ブロックをこれ以上４分割出来ない最小のサイズとなる符号化ブロックを最小符号化ブロックと呼ぶこととする。
【００２９】
（予測ブロックについて）
画面内をブロックに分割して動き補償を行う場合、動き補償のブロックサイズをより小さくした方が、よりきめ細かい予測を行うことが出来ることから、いくつかのブロックサイズの中から最適なものを選択して、ブロック内部を分割して動き補償を行う仕組みを取り入れている。この動き補償を行うブロックを予測ブロックと呼ぶ。予測ブロックは符号化ブロックと同一のサイズで表され、動き補償に応じて、予測ブロック内部を分割せず１ブロックとみなす場合を最大とし、水平或いは垂直方向に２分割したもの、水平と垂直の均等分割により４分割したものに分けられる。分割後のサイズに応じて、分割タイプに対応したモードが定義されており、図４に示される。
【００３０】
（パーティションについて）
予測ブロックを分割した個々の領域はパーティションと呼ばれる。予測ブロック内部において、パーティションを管理する為に、０から開始する番号を、予測ブロック内部に存在するパーティションに対してジグザグスキャン順に割り当てる。この番号はパーティション番号と呼ばれ、ｐｕＰａｒｔＩｄｘで表される。図４の予測ブロックのパーティションの中に記述された数字は、そのパーティションのパーティション番号を表す。
【００３１】
実施形態による動きベクトルの予測方法を図面を用いて説明する。動きベクトルの予測方法は、予測ブロックを構成するパーティション単位に、符号化及び復号の処理の何れでも実施される。符号化の場合、動き補償による画像間符号化が選択された場合に、予測ブロックのパーティション毎に算出された動きベクトルを効率良く符号化する為の予測動きベクトルとして、既に符号化された周囲の予測ブロックのパーティションの動きベクトルの中から選択する際、復号の場合、ビットストリームから復号した情報を利用して、動きベクトルを算出する際、実施される。
【００３２】
（シンタックスについて）
まず、本実施例に係る動きベクトルの予測方法を備える動画像符号化装置により符号化される動画像のビットストリームのシンタックスについて説明する。
【００３３】
図５は動画像のビットストリームのスライスヘッダーに記述される第１のシンタックスパターンを示す。スライス単位で動き補償による画像間予測を行う場合、即ちスライスタイプがＰ（前方向予測）或いはＢ（両予測）の場合に、本発明に係る動きベクトルの予測方法を適用するかどうかを示す第１フラグｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｆｌａｇが設置される。ｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｆｌａｇが真（１）の場合は、同一ピクチャ内で隣接する周囲のパーティションの動きベクトルだけでなく、時間方向で異なるピクチャの中の処理対象のパーティションと同一位置のパーティションの動きベクトルを利用して予測と行うかどうかを示す第２フラグｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｔｅｍｐｏｒａｌ＿ｆｌａｇが設置される。更に、スライスタイプがＢで且つｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｆｌａｇが真（１）の場合は、処理対象のパーティションが含まれるピクチャの参照ピクチャのリストのうちＬ０予測或いはＬ１予測のどちらを使用するかを決定する第３フラグｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが設置される。
【００３４】
図６はスライスの中の予測ブロック単位に記述される第２のシンタックスパターンを示す。予測ブロックの予測モードが画像間予測（ＭＯＤＥ＿ＩＮＴＥＲ）の場合、予測ブロック内のパーティション毎に、動きベクトル検出にて求められたパーティションの動きベクトルと予測動きベクトルとの差分動きベクトルｍｖｄ＿ｌＸ［ｉ］［ｊ］が設置される。ここで、Ｘは０或いは１で予測方向を示し、ｉは予測ブロックの中のパーティション番号、ｊは差分動きベクトルの成分を表し、ｊ＝０はｘ成分を、ｊ＝１はｙ成分を表す。次に、第１フラグｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｆｌａｇが真（１）で且つ予測動きベクトルの候補の総数が１つを超える場合に、参照する予測動きベクトルの候補のリストのインデックスｍｖｐ＿ｉｄｘ＿ｌＸ［ｉ］が設置される。ＮｕｍＭｖｐＣａｎｄ（ＬＸ，ｉ）は、予測方向ＬＸ（Ｘは０或いは１）でパーティションｉの予測動きベクトルの候補の総数を算出する関数を表し、後述にて説明される。このインデックスｍｖｐ＿ｉｄｘ＿ｌＸ［ｉ］は動きベクトルの予測方法を実施しない、即ちｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｆｌａｇが偽（０）の場合は符号化されず、ビットストリーム中に記述されない。ｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｆｌａｇが偽（０）の場合は従来通りの手法で算出されるので、インデックスｍｖｐ＿ｉｄｘ＿ｌＸ［ｉ］により指定する必要が無い為である。また、動きベクトルの予測方法により予測動きベクトルの候補の総数ＮｕｍＭｖｐＣａｎｄ（ＬＸ，ｉ）が１つの場合にも符号化されない。予測動きベクトルの候補の総数が１つであれば、その１つが予測動きベクトルとなるので、ｍｖｐ＿ｉｄｘ＿ｌｘ［ｉ］を伝送せずとも参照する予測動きベクトルの候補が確定する為である。
【００３５】
（符号化における動きベクトルの予測）
上述のシンタックスに基づき、動画像のビットストリームを符号化する動画像符号化装置において、実施の形態に係る動きベクトルの予測方法の動作を説明する。動きベクトルの予測方法は、スライス単位で動き補償による画像間予測を行う場合、即ちスライスタイプがＰ（前方向予測）或いはＢ（両予測）の場合で、更に、スライスの中の予測ブロックの予測モードが画像間予測（ＭＯＤＥ＿ＩＮＴＥＲ）の予測ブロックのパーティションに適用される。
【００３６】
図７は、図１の動画像符号化装置の予測動きベクトル選択部１１１の詳細な構成を示す図である。図７の太枠線で囲まれる部分は予測動きベクトル選択部１１１を示している。更に、その内部の太点線で囲まれる部分は後述する動きベクトルの予測方法の動作部を示しており、実施の形態の動画像符号化装置と対応する動画像復号装置にも同様に設置され、符号化と復号で矛盾しない同一の判定結果を得られるようにしている。以下、この図を用いて、符号化における動きベクトルの予測方法を説明する。
【００３７】
予測動きベクトル選択部１１１は、予測動きベクトル候補生成部１２０、予測動きベクトル候補同一判定部１２１、予測動きベクトル候補削除部１２２、予測動きベクトル判定部１２３、減算部１２４、および予測動きベクトル選択部１２５を含む。
【００３８】
予測動きベクトル候補生成部１２０は、符号化後に復号してメモリ１１０に記録されていた、符号化対象ブロックと同一ピクチャ内の符号化対象ブロックと隣接する符号化済みのパーティション及び符号化済みの異なるピクチャ内の符号化対象ブロックと同一位置に存在するパーティション等の動きベクトルをメモリ１１０から読み出す。
【００３９】
予測動きベクトル候補生成部１２０は、このようにしてメモリ１１０から読み出された符号化済みの他のブロックの動きベクトルから少なくとも２つ以上の予測動きベクトルの候補ｍｖｐＬｉｓｔＬＸ［ｉ］（ｉはリストｍｖｐＬｉｓｔＬＸにふられたインデックス）を生成し、予測動きベクトルの候補を格納するリストｍｖｐＬｉｓｔＬＸに格納する。
【００４０】
次に、予測動きベクトル候補同一判定部１２１は、リストｍｖｐＬｉｓｔＬＸに格納された予測動きベクトルの候補の中から同一の動きベクトルの値をもつものを判定し、同一の動きベクトル値をもつと判定された予測動きベクトルの候補について一つを残してそれ以外をリストｍｖｐＬｉｓｔＬＸから削除して、予測動きベクトルの候補が重複しないようにし、リストｍｖｐＬｉｓｔＬＸを更新する。予測動きベクトル候補同一判定部１２１は、更新されたリストｍｖｐＬｉｓｔＬＸを予測動きベクトル選択部１２５と予測動きベクトル候補削除部１２２に与える。
【００４１】
一方、動きベクトル検出部１０１にて予測ブロックのパーティション毎に動きベクトルｍｖが検出される。動きベクトルｍｖは更新されたリストｍｖｐＬｉｓｔＬＸの予測動きベクトルの候補とともに予測動きベクトル選択部１２５に入力される。
【００４２】
予測動きベクトル選択部１２５は、動きベクトルｍｖとリストｍｖｐＬｉｓｔＬＸの中に格納された各予測動きベクトルの候補ｍｖｐＬｉｓｔＬＸ［ｉ］との差分をとり、その差分を符号化したときの発生符号量が最小となる予測動きベクトルの候補ｍｖｐＬｉｓｔＬＸ［ｉ］をｍｉｎ＿ｍｖｐとする。リストｍｖｐＬｉｓｔＬＸの中で最小の発生符号量となる予測動きベクトルの候補が複数存在する場合には、リストｍｖｐＬｉｓｔＬＸの中のインデックスｉが小さい番号で表される予測動きベクトルの候補ｍｖｐＬｉｓｔＬＸ［ｉ］を最適予測動きベクトルｍｉｎ＿ｍｖｐとする。予測動きベクトル選択部１２５は、選択された最適予測動きベクトルｍｉｎ＿ｍｖｐを記録しておく。
【００４３】
予測動きベクトル選択部１２５は、選択された最適予測動きベクトルｍｉｎ＿ｍｖｐを予測動きベクトル判定部１２３に与える。予測動きベクトル選択部１２５は、選択されたｍｉｎ＿ｍｖｐと動きベクトルｍｖとの差分を算出し、差分動きベクトルｍｖｄとして、予測動きベクトル候補削除部１２２に与える。
【００４４】
予測動きベクトル候補削除部１２２は、更新されたリストｍｖｐＬｉｓｔＬＸの中の予測動きベクトルの候補と差分動きベクトルｍｖｄを受け取り、予測動きベクトルの候補の削除処理により、リストｍｖｐＬｉｓｔＬＸから一部の予測動きベクトルの候補を削除する。
【００４５】
具体的には、予測動きベクトル候補削除部１２２は、予測動きベクトルの候補の一つを仮の予測動きベクトルと設定し、第１の差分動きベクトルｍｖｄと仮の予測動きベクトルとを加算して仮の動きベクトルを生成し、その仮の動きベクトルと、仮の予測動きベクトルとは異なる予測動きベクトルの候補とから第２の差分動きベクトルを計算し、第１の差分動きベクトルｍｖｄの符号量よりも第２の差分動きベクトルの符号量が小さい場合、仮の予測動きベクトルは真の予測動きベクトルではないと判定し、仮の予測動きベクトルとして設定された予測動きベクトルの候補を削除する。第１の差分動きベクトルｍｖｄの符号量と第２の差分動きベクトルの符号量が同じであれば、予測動きベクトルの候補のインデックスの小さい方を選択し、他方を削除する。予測動きベクトルの候補の削除処理の詳細は後述する。
【００４６】
予測動きベクトル候補削除部１２２は、候補削除処理の後、リストｍｖｐＬｉｓｔＬＸに残った予測動きベクトルの候補を予測動きベクトル判定部１２３に与える。
【００４７】
このようにして予測動きベクトル判定部１２３には、リストｍｖｐＬｉｓｔＬＸの中に残った予測動きベクトルの候補と、予測動きベクトル選択部１２５にて選択された、差分動きベクトルの発生符号量が最小となる最適予測動きベクトルｍｉｎ＿ｍｖｐとが入力される。
【００４８】
図８は、予測動きベクトル判定部１２３の判定処理を示すフローチャートである。最初にリストｍｖｐＬｉｓｔＬＸに残った予測動きベクトルの候補が１つであるかどうかを判定する（Ｓ９００）。１つの場合、リストｍｖｐＬｉｓｔＬＸに残った予測動きベクトルの候補を予測動きベクトルｍｖｐとして出力し、終了する。リストｍｖｐＬｉｓｔＬＸの中に予測動きベクトルの候補が１つより多く残った場合には、記録しておいた最適予測動きベクトルの候補ｍｉｎ＿ｍｖｐと同じ値を持つ予測動きベクトルの候補をリストｍｖｐＬｉｓｔＬＸから検出する（Ｓ９０１）。検出された予測動きベクトルの候補に該当するリストｍｖｐＬｉｓｔＬＸのインデックスｍｖｐ＿ｉｄｘを検出し（Ｓ９０２）、予測動きベクトルの候補ｍｉｎ＿ｍｖｐを予測動きベクトルｍｖｐとして、インデックスｍｖｐ＿ｉｄｘとともに出力する。
【００４９】
最後に減算部１２４は、動きベクトルｍｖと選択された予測動きベクトルｍｖｐとの差分を計算し、差分動きベクトルｍｖｄを出力する。
【００５０】
こうして出力された差分動きベクトルｍｖｄと必要であれば予測動きベクトルを表すインデックスｍｖｐ＿ｉｄｘの符号化が行われ、差分動きベクトルｍｖｄとインデックスｍｖｐ＿ｉｄｘの発生符号量とともに、動きベクトルｍｖにより参照される予測画像との動き補償から算出される差分画像の発生符号量とが加算された総発生符号量が算出される。また、こうした差分画像を符号化後に、画質評価の為に復号し、符号化により生じる元画像との誤差を表す比率として符号化歪が算出される。これら総発生符号量と符号化歪とを動き補償毎に比較することで、最も少ない発生符号量と符号化歪となる予測ブロックサイズが決定される。決定された予測ブロックサイズに対する動きベクトルｍｖに対して、上述した動きベクトルの予測方法が行われ、予測動きベクトルを表すインデックスが、予測ブロック単位の第２のシンタックスパターンで表されるフラグｍｖｐ＿ｉｄｘ＿ｌＸ［ｉ］として符号化される。尚、ここで算出される発生符号量は、符号化過程をシミュレートしたものであることが望ましいが、後述の説明で使用する図２４、図２５に示した符号量で代用し、簡便に近似したり、概算することも可能である。
【００５１】
以上のようにして、パーティション毎に差分動きベクトルと必要であれば予測動きベクトルを表すインデックスを用いて動きベクトルを予測する本実施の形態の予測方法を使用する場合には、スライスヘッダーに記載される第１フラグｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｆｌａｇ、第２フラグｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｔｅｍｐｏｒａｌ＿ｆｌａｇ及び第３フラグｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが設定され、符号化される。
【００５２】
（復号における動きベクトルの予測）
上述のシンタックスに基づき、符号化された動画像のビットストリームを復号する動画像復号装置において、本発明に係る動きベクトルの予測方法の動作を説明する。
【００５３】
最初に、可変長復号部２０１にて復号されるビットストリームの各フラグについて説明する。ビットストリームのスライスヘッダーの中に記述されているフラグから、スライスの中の予測ブロックに対して動きベクトルの予測方法を実施するか否かを判定する。スライスタイプがＰ或いはＢの場合、フラグｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｆｌａｇを判定し、ｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｆｌａｇが真（１）の場合は本発明に係る動きベクトルの予測方法が実施され、ｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｆｌａｇが偽（０）の場合は従来通りの手法で算出される。更にｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｆｌａｇが真（１）の場合は、フラグｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｔｅｍｐｏｒａｌ＿ｆｌａｇにより、時間方向に異なるピクチャで処理対象のパーティションと同一位置のパーティションの動きベクトルの導出が実施される。スライスタイプがＢで、且つｍｖ＿ｃｏｍｐｅｔｉｔｉｏｎ＿ｆｌａｇが真（１）の場合は、フラグｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇにより、処理対象のパーティションが含まれるピクチャの参照ピクチャのリストのうちＬ０予測或いはＬ１予測のどちらを使用するか選択する。
【００５４】
次に予測ブロックのシンタックスの中から、予測ブロックの中のパーティション毎に、参照する予測動きベクトルの候補のリストのインデックスｍｖｐ＿ｉｄｘ＿ｌＸ［ｉ］が読み出される。ここで、Ｘは０或いは１であり、ｉは予測ブロックの中のパーティション番号を表す。
【００５５】
実施の形態に係る動きベクトルの予測方法が実施される場合、図２の動画像復号装置の予測動きベクトル選択部２０８にて処理が行われる。図９は、実施の形態の動画像符号化装置に対応する図２の動画像復号装置の予測動きベクトル選択部２０８の詳細な構成を示す図である。図９の太枠線で囲まれる部分は予測動きベクトル選択部２０８を示している。更に、その内部の太点線で囲まれる部分は後述する動きベクトルの予測方法の動作部を示しており、対応する動画像符号化装置にも同様に設置され、符号化と復号で矛盾しない同一の判定結果を得られるようにしている。以下、この図を用いて、復号における動きベクトルの予測方法を説明する。
【００５６】
予測動きベクトル選択部２０８は、予測動きベクトル候補生成部２２０、予測動きベクトル候補同一判定部２２１、予測動きベクトル候補削除部２２２、予測動きベクトル判定部２２３、および加算部２２４を含む。
【００５７】
予測動きベクトル候補生成部２２０は、復号してメモリ２０７に記録されていた、復号対象ブロックと同一ピクチャ内の復号対象ブロックと隣接する復号済みのパーティション及び復号済みの異なるピクチャ内の復号対象ブロックと同一位置に存在するパーティション等の動きベクトルをメモリ２０７から読み出す。
【００５８】
予測動きベクトル候補生成部２２０は、このようにしてメモリ２０７から読み出された復号済みの他のブロックの動きベクトルから少なくとも２つ以上の予測動きベクトルの候補ｍｖｐＬｉｓｔＬＸ［ｉ］（ｉはリストｍｖｐＬｉｓｔＬＸにふられたインデックス）を生成し、予測動きベクトルの候補を格納するリストｍｖｐＬｉｓｔＬＸに格納する。
【００５９】
次に、予測動きベクトル候補同一判定部２２１は、リストｍｖｐＬｉｓｔＬＸに格納された予測動きベクトルの候補の中から同一の動きベクトルの値をもつものを判定し、同一の動きベクトル値をもつと判定された予測動きベクトルの候補について一つを残してそれ以外をリストｍｖｐＬｉｓｔＬＸから削除して、予測動きベクトルの候補が重複しないようにし、リストｍｖｐＬｉｓｔＬＸを更新する。予測動きベクトル候補同一判定部２２１は、更新されたリストｍｖｐＬｉｓｔＬＸを予測動きベクトル候補削除部２２２に与える。
【００６０】
可変長復号部２０１にて復号された差分動きベクトルｍｖｄが予測動きベクトル候補削除部２２２に入力される。予測動きベクトルのインデックスを示すｍｖｐ＿ｉｄｘが符号化されている場合は、可変長復号部２０１にて復号された予測動きベクトルのインデックスｍｖｐ＿ｉｄｘが予測動きベクトル判定部２２３に入力される。
【００６１】
予測動きベクトル候補削除部２２２は、更新されたリストｍｖｐＬｉｓｔＬＸの中の予測動きベクトルの候補と可変長復号部２０１にて復号された差分動きベクトルｍｖｄを受け取り、予測動きベクトルの候補の削除処理により、リストｍｖｐＬｉｓｔＬＸから一部の予測動きベクトルの候補を削除する。
【００６２】
具体的には、予測動きベクトル候補削除部２２２は、予測動きベクトルの候補の一つを仮の予測動きベクトルと設定し、復号された第１の差分動きベクトルｍｖｄと仮の予測動きベクトルとを加算して仮の動きベクトルを生成し、その仮の動きベクトルと、仮の予測動きベクトルとは異なる予測動きベクトルの候補とから第２の差分動きベクトルを計算し、第１の差分動きベクトルｍｖｄの符号量よりも第２の差分動きベクトルの符号量が小さい場合、仮の予測動きベクトルは真の予測動きベクトルではないと判定し、仮の予測動きベクトルとして設定された予測動きベクトルの候補を削除する。第１の差分動きベクトルｍｖｄの符号量と第２の差分動きベクトルの符号量が同じであれば、予測動きベクトルの候補のインデックスの小さい方を選択し、他方を削除する。予測動きベクトルの候補の削除処理の詳細は後述する。
【００６３】
予測動きベクトル候補削除部２２２は、候補削除処理の後、リストｍｖｐＬｉｓｔＬＸに残った予測動きベクトルの候補を予測動きベクトル判定部２２３に与える。
【００６４】
このようにして予測動きベクトル判定部２２３には、リストｍｖｐＬｉｓｔＬＸの中に残った予測動きベクトルの候補が入力され、予測動きベクトルのインデックスを示すｍｖｐ＿ｉｄｘが符号化されていた場合は、復号された予測動きベクトルのインデックスｍｖｐ＿ｉｄｘも入力される。
【００６５】
図１０は、予測動きベクトル判定部２２３の判定処理を示すフローチャートである。最初にリストｍｖｐＬｉｓｔＬＸに残った予測動きベクトルの候補が１つであるかどうかを判定する（Ｓ９１０）。１つの場合、リストｍｖｐＬｉｓｔＬＸに残った予測動きベクトルの候補を予測動きベクトルｍｖｐとして出力する。リストｍｖｐＬｉｓｔＬＸの中に予測動きベクトルの候補が１つより多く残った場合、可変長復号部２０１にて復号された予測動きベクトルのインデックスｍｖｐ＿ｉｄｘが読み込まれる（Ｓ９１１）。読み込まれたインデックスｍｖｐ＿ｉｄｘに該当する予測動きベクトルの候補をリストｍｖｐＬｉｓｔＬＸから検出する（Ｓ９１２）。検出された予測動きベクトルの候補を予測動きベクトルｍｖｐとして出力する。
【００６６】
最後に加算部２２４は、差分動きベクトルｍｖｄと予測動きベクトルｍｖｐとの加算を計算し、動きベクトルｍｖを出力する。
【００６７】
以上のようにして、パーティション毎に動きベクトルが算出される。この動きベクトルを使用して動き補償により予測画像が生成され、ビットストリームから復号された残差信号と加算されることで復号画像が生成される。
【００６８】
尚、予測動きベクトル選択部２０８の中の予測動きベクトル候補生成部２２０、予測動きベクトル候補同一判定部２２１及び予測動きベクトル候補削除部２２２は、符号化側の予測動きベクトル選択部１１１の中の予測動きベクトル候補生成部２１０、予測動きベクトル候補同一判定部２１１及び予測動きベクトル候補削除部２１２とそれぞれ同じである。
【００６９】
（動きベクトルの予測方法）
実施の形態に係る動きベクトルの予測方法はパーティション単位に図１１（ａ）、図１１（ｂ）に示される諸過程で実施される。図１１（ａ）は動画像符号化装置の予測動きベクトル選択部１１１及び動画像復号装置の予測動きベクトル選択部２０８とで共通する機能を有する予測動きベクトル候補生成部１２０及び２２０、予測動きベクトル候補同一判定部１２１及び２２１、ならびに予測動きベクトル候補削除部１２２及び２２２の処理の流れを表すフローチャートである。図１１（ｂ）は予測動きベクトル候補生成部１２０及び２２０による予測動きベクトル候補の生成の一例を示すフローチャートであり、図１１（ａ）の［予測動きベクトルの候補を算出（Ｓ９０）］の処理の詳細な流れを示すものである。以下、諸過程を順を追って説明する。
【００７０】
［隣接する周囲のパーティションから予測動きベクトルの候補を導出（Ｓ１００）］
この処理における入力は、
・予測ブロックのパーティションのパーティション番号ｐｕＰａｒｔＩｄｘ、および
・予測ブロックのパーティションの参照ピクチャ番号ｒｅｆＩｄｘＬＸ（Ｘは０或いは１）
であり、参照ピクチャ番号ｒｅｆＩｄｘＬＸは、複数の参照ピクチャの候補からブロック単位に任意のピクチャを参照して動き補償を行うことから、参照ピクチャを指定するために各ピクチャに割り当てた識別番号である。
【００７１】
参照ピクチャ番号には参照するピクチャの復号順序或いは表示順序が割り当てられ、符号化及び復号の際には参照ピクチャ番号からピクチャの順序を指定して参照する。添え字ＬＸは動き補償を行う予測方向を表し、Ｘには０或いは１が入る。主としてＬ０予測は前方向予測に、Ｌ１予測は後方向予測として使用され、ＰスライスではＬ０予測のみ、ＢスライスではＬ０、Ｌ１の両方の予測が使用出来る。以降の処理において出力に添え字ＬＸが付いている値に対しては、予測ごとに処理を行うことを前提とし、特に説明しないこととする。
【００７２】
この処理における出力は
・周囲のパーティションの動きベクトルｍｖＬＸＭ、および
・周囲のパーティションが有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＭ
であり、添え字Ｘには予測方向を表す０若しくは１、Ｍには隣接するパーティション群の領域を表すＡ，Ｂ若しくはＣが入る。
【００７３】
図１２に示されるように、同一ピクチャ内の符号化ブロック内部を動き補償する為に定義される予測ブロックのパーティション（図１２中の処理対象のパーティション）に隣接する周囲のパーティションから予測動きベクトルの候補を導出する。図１２中の太点線の円内で表される領域を拡大したものが図１３である。
【００７４】
図１３は、処理対象のパーティションとそれに隣接するパーティションを示す。予測動きベクトルの候補は、処理対象のパーティションの左側に隣接するパーティションＡｋ（ｋ＝０，…，ｎＡ−１）から構成されるパーティション群Ａ、真上に隣接するパーティションＢｋ（ｋ＝０，…，ｎＢ−１）から構成されるパーティション群Ｂ、及びコーナーで隣接するパーティションＣ０，Ｃ１，Ｃ２から構成されるパーティション群Ｃの３つのパーティション群からそれぞれ予測動きベクトルの候補を選出する。ここで、ｎＡは左に隣接するパーティション群の総数、ｎＢは真上に隣接するパーティション群の総数を表す。
【００７５】
最初に図１４を用いて、左側に隣接するパーティション群Ａからの予測動きベクトルの候補ｍｖＬＸＡの選出を説明する。
【００７６】
図１４の変数Ｍ＝Ａとして、以下の手順で処理する。
【００７７】
まず、パーティション群Ａの中のパーティション数ｎＡがカウントされる（Ｓ１０１）。
【００７８】
次に、パーティション群Ａから予測動きベクトルが選出されるか否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＡを０、パーティション群Ａを代表する動きベクトルｍｖＬＸＡを０、左側に隣接するパーティションを上から順にカウントするカウンタｋを０に設定する（Ｓ１０２）。
【００７９】
パーティション群Ａを含む最大符号化ブロックの位置を検出する（Ｓ１０３）。
【００８０】
最大符号化ブロックが有効でない場合、例えば処理対象のパーティションを含む最大符号化ブロックが画面左端に位置する場合、パーティション群Ａを含む最大符号化ブロックは存在しないので、Ｓ１０２にて設定された初期状態のａｖａｉｌａｂｌｅＦｌａｇＬＸＡ、ｍｖＬＸＡを出力し、終了する（Ｓ１０４）。
【００８１】
一方、有効な場合は隣接するパーティション群ＡのパーティションＡｋの情報を取得する（Ｓ１０５）。
【００８２】
パーティションＡｋと処理対象のパーティションの情報を比較する（Ｓ１０６）。パーティションＡｋの符号化モードがイントラでなく、且つ処理対象のパーティションの参照ピクチャ番号が同じ場合、フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＡを１に設定する（Ｓ１０７）。
【００８３】
フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＡの判定を行う（Ｓ１０８）。フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＡが１の場合、パーティションＡｋの動きベクトルをｍｖＬＸＡに設定する（Ｓ１０９）。ａｖａｉｌａｂｌｅＦｌａｇＬＸＡが０の場合、カウンタｋを１加算して更新する（Ｓ１１０）。カウンタｋがパーティション群Ａの総数ｎＡと同じになったら、処理を終了する。そうでない場合は、パーティション群Ａの中で次のパーティションに対してＳ１０３以降の処理を継続する（Ｓ１１１）。
【００８４】
上側に隣接するパーティション群Ｂから予測動きベクトルの候補ｍｖＬＸＢの選出する場合、パーティション群Ａと同様の処理手順で選出可能である。
【００８５】
Ｓ１０３及びＳ１０４にてパーティション群Ｂを含む最大符号化ブロックの位置を検出し、その最大符号化ブロックが有効か否かを判定する点、Ｓ１１０にてパーティション群Ｂは左端を０とし右に向かって順にカウンタｋを更新していく点が異なっており、最終的にフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＢ及びｍｖＬＸＢを出力する。
【００８６】
処理対象のパーティションのコーナーで隣接するパーティションＣ０，Ｃ１，Ｃ２から構成されるパーティション群Ｃから予測動きベクトルの候補ｍｖＬＸＣの選出も同様である。
【００８７】
以上のようにして、各パーティション群Ａ，Ｂ，Ｃに対するフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＭと予測動きベクトルの候補ｍｖＬＸＭ（ＭはＡ，Ｂ，Ｃ）が出力される。
【００８８】
［予測動きベクトルの候補の中央値を導出（Ｓ２００）］
この処理の入力は
・周辺パーティションの動きベクトルｍｖＬＸＭ（ＭはＡ，Ｂ，Ｃ）、および
・フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＭ（ＭはＡ，Ｂ，Ｃ）
であり、この処理の出力は予測動きベクトルの中央値ｍｖＬＸＭｅｄである。
【００８９】
図１５を用いて処理の流れを説明する。最初に、全てのフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＭ（ＭはＡ，Ｂ，Ｃ）の判定が行われ（Ｓ２０１）、全てのフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＭが０の場合、ｍｖＬＸＭｅｄは（０，０）に設定される（Ｓ２０２）。
【００９０】
次に、ａｖａｉｌａｂｌｅＦｌａｇＬＸＭ（ＭはＡ，Ｂ，Ｃ）の中で１つだけが１である場合（Ｓ２０３）、そのａｖａｉｌａｂｌｅＦｌａｇＬＸＭに該当する動きベクトルｍｖＬＸＭを予測動きベクトルｍｖＬＸＭｅｄとする（Ｓ２０４）。
【００９１】
上記の条件でない場合、動きベクトルｍｖＬＸＡ，ｍｖＬＸＢ及びｍｖＬＸＣのｘ及びｙ成分ごとに中央値を算出し、予測動きベクトルの中央値ｍｖＬＸＭｅｄとする（Ｓ２０５）。
【００９２】
［予測動きベクトルの候補のリストを作成（Ｓ３００）］
Ｓ１００及びＳ２００にて生成された予測動きベクトルの候補ｍｖＬＸＭ（Ｍ＝Ａ，Ｂ，Ｃ）及びｍｖＬＸＭｅｄは予測動きベクトルの候補のリストｍｖｐＬｉｓｔＬＸに格納される。リストｍｖｐＬｉｓｔＬＸは、ＰＣ等の装置内部のメモリ或いはメモリの一部を記憶領域として設けられたり、プログラム実行時にメモリ上に記憶領域として割り当てられることで設定される。リストｍｖｐＬｉｓｔＬＸは図１６に示されるように配列構造を成し、リスト内部の所在を示すインデックスと、インデックスに対応する予測動きベクトルの候補を格納する記憶領域が設けられている。インデックスの数字は０から開始され、リストｍｖｐＬｉｓｔＬＸの記憶領域に、ｍｖＬＸＭｅｄ，ｍｖＬＸＡ，ｍｖＬＸＢ，ｍｖＬＸＣの順で予測動きベクトルの候補が格納される。尚、インデックス４の記憶領域には後述する時間方向の予測動きベクトルの候補が格納される。以降の処理では、リストｍｖｐＬｉｓｔＬＸに記録されたインデックスｋの予測動きベクトルの候補は、ｍｖｐＬｉｓｔＬＸ［ｋ］で表すこととし、リストｍｖｐＬｉｓｔＬＸとは配列表記をすることで区別することとする。
【００９３】
［時間方向の予測動きベクトルの候補を導出（Ｓ４００）］
この処理における入力は
・予測ブロックのパーティションのパーティション番号ｐｕＰａｒｔＩｄｘ、および
・予測ブロックのパーティションの参照ピクチャ番号ｒｅｆＩｄｘＬＸ（Ｘは０  或いは１）
であり、出力は
・予測ブロックのパーティションと同位置の他ピクチャのパーティションの動きベクトルｍｖＬＸＣｏｌ、および
・予測ブロックのパーティションと同位置の他ピクチャのパーティションが有効か否かを示すフラグａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌ
である。
【００９４】
まず、処理対象のパーティションが含まれるスライスのスライス・タイプ及び処理対象のパーティションが含まれるピクチャの参照ピクチャのリストのうちＬ０予測或いはＬ１予測のどちらを使用するかを決定するフラグｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇに基づき、導出処理が場合分けされる。図１７に示されるように最初にスライス・タイプについて判定される（Ｓ４０１）。スライス・タイプがＢでない場合、即ちＰである場合はＣａｓｅ３の処理が行われる。スライス・タイプがＢである場合は、更にフラグｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇの値について判定される（Ｓ４０２）。
【００９５】
ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ＝１の場合、Ｌ０予測が使用されるＣａｓｅ１の処理が実行され、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇ＝０の場合、Ｌ１予測が使用されるＣａｓｅ２の処理が実行される。
【００９６】
図１８で示される一例及び図２１のフローチャートを用いて、Ｃａｓｅ１について説明する。図１８で示されるように、処理対象のパーティションが含まれるピクチャをｃｕｒｒｅｎｔＰｉｃで表し、ｃｕｒｒｅｎｔＰｉｃのＬ０予測で最も小さい参照ピクチャ番号の参照ピクチャをＣｏｌＰｉｃとする（Ｓ４１１）。
【００９７】
通常ＣｏｌＰｉｃはピクチャの表示順序でｃｕｒｒｅｎｔＰｉｃの前方の一番近い参照ピクチャとなり、図１８で示されるようにｃｕｒｒｅｎｔＰｉｃよりも過去の位置に設定される。
【００９８】
次に、処理対象のパーティションと同じ空間位置にある、ＣｏｌＰｉｃのパーティションの位置情報を設定する。処理対象のパーティションと同じ最大符号化ブロックのアドレス、予測ブロックのインデックス及びパーティション番号がそれぞれ設定される（Ｓ４１２）。
【００９９】
処理対象のパーティションと同じ空間位置に設定されたＣｏｌＰｉｃのパーティションの符号化モードに応じて処理を場合分けする（Ｓ４１３）。符号化モードがイントラの場合、時間方向の動きベクトルｍｖＬＸＣｏｌの各ｘ，ｙ成分を０、フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌを０として出力し、処理を終了する（Ｓ４１４）。符号化モードがイントラでない場合、ＬＹ予測の有効フラグｐｒｅｄＦｌａｇＬＹＣｏｌ、ＬＹ予測の動きベクトルｍｖＣｏｌ及び参照ピクチャ番号ｒｅｆＩｄｘＣｏｌが設定される（Ｓ４１５）。記号Ｙは記号Ｘと同様に予測方向を表し、ここでは処理対象のパーティションと同じ空間位置に設定されたＣｏｌＰｉｃのパーティションのＬ１予測の動き情報が設定される、即ち
ｐｒｅｄＦｌａｇＬ１Ｃｏｌ＝ｐｒｅｄＦｌａｇＬ１［ｐｕＰａｒｔＩｄｘＣｏｌ］
ｍｖＣｏｌ＝ｍｖＬ１［ｐｕＰａｒｔＩｄｘＣｏｌ］
ｒｅｆＩｄｘＣｏｌ＝ｒｅｆＩｄｘＬ１［ｐｕＰａｒｔＩｄｘＣｏｌ］
がそれぞれ設定され、図１８で示されるように、処理対象のパーティションと同じ空間位置に設定されたＣｏｌＰｉｃのパーティションから参照ピクチャ番号ｒｅｆＩｄｘＣｏｌに該当するピクチャを参照ピクチャへの動きベクトルｍｖＣｏｌが求められる。
【０１００】
フラグｐｒｅｄＦｌａｇＬ１Ｃｏｌの判定を行う（Ｓ４１６）。ｐｒｅｄＦｌａｇＬ１Ｃｏｌ＝０の場合、即ちＬ１予測が存在しない場合、時間方向の動きベクトルｍｖＬＸＣｏｌの各ｘ，ｙ成分を０、フラグａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌを０として出力し、処理を終了する（Ｓ４１４）。
【０１０１】
ｐｒｅｄＦｌａｇＬ１Ｃｏｌ＝１の場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌが１に設定され（Ｓ４１７）、ｍｖＣｏｌから時間方向の動きベクトルｍｖＬＸＣｏｌが求められる。
【０１０２】
図１８に示されるように、ＣｏｌＰｉｃと参照ピクチャ番号ｒｅｆＩｄｘＣｏｌで示される参照ピクチャまでの距離をｒｄとし、一方、ｃｕｒｒｅｎｔＰｉｃ  とｃｕｒｒｅｎｔＰｉｃの処理対象のパーティションの参照ピクチャ番号ｒｅｆＩｄｘＬＸで示される参照ピクチャとの距離をｒｂＸ（Ｘは０或いは１）とする。ここで、距離ｒｄとｒｂＸとの比較を行う（Ｓ４１８）。ｒｄとｒｂＸが同じ場合、ｍｖＬＸＣｏｌをｍｖＣｏｌとして出力し、終了する（Ｓ４１９）。ｒｄとｒｂＸが異なる場合、距離ｒｄに対するｒｂＸの倍率によって求めることが出来、次式で表される（Ｓ４２０）。
【０１０３】
ｍｖＬＸＣｏｌ＝ｍｖＣｏｌ×ｒｂＸ／ｒｄ
ここで、ｍｖＣｏｌと予測方向が同じ場合、ｍｖＬＸＣｏｌと正負符号は同じとなり、予測方向が逆向きの場合、ｍｖＬＸＣｏｌの正負符号は逆になる。
【０１０４】
以上のようにして、時間方向の動きベクトルｍｖＬＸＣｏｌが出力される。
【０１０５】
次に、図１９を用いてＣａｓｅ２について説明する。図１９で示されるように、Ｃａｓｅ１との違いはｃｕｒｒｅｎｔＰｉｃのＬ１予測で最も小さい参照ピクチャ番号の参照ピクチャをＣｏｌＰｉｃとする点である。その為、Ｃａｓｅ２はＣａｓｅ１の場合に対して、ｃｕｒｒｅｎｔＰｉｃを中心にして時間軸を反転することと同等となるだけで、基本的な考え方はＣａｓｅ１と同じである。
【０１０６】
具体的には、図２１に示されるフローチャートにおいて、Ｓ４１５において、各変数の設定先が処理対象のパーティションと同じ空間位置に設定されたＣｏｌＰｉｃのパーティションのＬ０予測の動き情報となる点、Ｓ４２０におけるピクチャ間距離の換算により出力されるｍｖＬＸＣｏｌの正負符号がＬ０予測を正とする点が異なる。
【０１０７】
Ｃａｓｅ３はＣａｓｅ１及びＣａｓｅ２の事例とは異なり、Ｌ０予測のみの場合であり、図２０に示されるように、ｃｕｒｒｅｎｔＰｉｃよりも時間的に過去のピクチャのパーティションのＬ０予測の動きベクトルを使用して、ｍｖＬＸＣｏｌを求めるものである（この場合、Ｘは０のみとなる）。図２１のフローチャートでは、Ｓ４１１においてｃｕｒｒｅｎｔＰｉｃのＬ０予測で最も小さい参照ピクチャ番号の参照ピクチャをＣｏｌＰｉｃとする点、Ｓ４１５及において各変数の設定先が処理対象のパーティションと同じ空間位置に設定されたＣｏｌＰｉｃのパーティションのＬ０予測の動き情報となる点、Ｓ４２０におけるピクチャ間距離の換算により出力されるｍｖＬＸＣｏｌがＬ０予測のみとする点が異なるだけで、基本的な処理はＣａｓｅ１と同様である。
【０１０８】
以上のようにして、時間方向の動きベクトルｍｖＬＸＣｏｌが求められ、予測動きベクトルの候補のリストｍｖｐＬｉｓｔＬＸのインデックス４の記憶領域にｍｖＬＸＣｏｌが格納される。
【０１０９】
［処理対象のパーティションのサイズに基づき、予測動きベクトルの候補を入れ換え（Ｓ５００）］
次の条件のうち１つでも当てはまれば、ｍｖＬＸＭｅｄはｍｖｐＬｉｓｔＬＸの順序の中でｍｖＬＸＮに置き換えられる。
・処理対象のパーティションを含む予測ブロックの符号化サイズがＰＡＲＴ＿２ＮｘＮ、ＰＡＲＴ＿２ＮｘｎＵ、ＰＡＲＴ＿２ＮｘｎＤのうち１つである場合：
ｐｕＰａｒｔＩｄｘが０のパーティションの場合、ｍｖＬＸＮ＝ｍｖＬＸＢに設定される。それ以外のパーティションは、ｍｖＬＸＮ＝ｍｖＬＸＡに設定される。
・処理対象のパーティションを含む予測ブロックの符号化サイズがＰＡＲＴ＿Ｎｘ２Ｎ、ＰＡＲＴ＿ｎＬｘ２Ｎ、ＰＡＲＴ＿ｎＲｘ２Ｎのうち１つである場合：
ｐｕＰａｒｔＩｄｘが０のパーティションの場合、ｍｖＬＸＮ＝ｍｖＬＸＡに設定される。それ以外のパーティションは、ｍｖＬＸＮ＝ｍｖＬＸＢに設定される。
【０１１０】
［リストの中の同じの値を持つ予測動きベクトルの候補を削除（Ｓ６００）］
予測動きベクトルの候補のリストｍｖｐＬｉｓｔＬＸの中で、同じ動きベクトルの値を持つ予測動きベクトルの候補が存在する場合、リストｍｖｐＬｉｓｔＬＸの中で最も小さいインデックスを持つ予測動きベクトルの候補を除いて全て削除される。削除処理の終了後、リストｍｖｐＬｉｓｔＬＸの中は、削除された予測動きベクトルの候補の格納領域が空いている為、インデックス０を基準にして、インデックスが小さい予測動きベクトルの候補の順で詰めていく。例えば、インデックス１，４の予測動きベクトルの候補が削除され、インデックス０，２及び３が残った場合、インデックス０はそのままとして、インデックス２の予測動きベクトルの候補をインデックス１の格納領域に移動し、インデックス３の予測動きベクトルの候補をインデックス２の格納領域に移動して、リストｍｖｐＬｉｓｔＬＸの中を更新する。
【０１１１】
［差分動きベクトルに基づき、リストの中の予測動きベクトルの候補を削除（Ｓ７００）］
この処理の入力は
・予測動きベクトルの候補のリストｍｖｐＬｉｓｔＬＸ、および
・差分動きベクトルｍｖｄＬＸ
であり、この処理の出力は修正された予測動きベクトルの候補のリストｍｖｐＬｉｓｔＬＸである。
【０１１２】
図２２（ａ）〜（ｃ）を用いて、基本的な予測動きベクトルの候補の削除方法を説明する。ここでは、予測動きベクトルの候補のリストｍｖｐＬｉｓｔＬＸの中に３つの候補が残っていることとし、説明の便宜上、ｍｖｐＬｉｓｔＬＸの３つの予測動きベクトルの候補をｍｖｐ１、ｍｖｐ２及びｍｖｐ３とする。図２２の実線矢印で示されるように、左から順に予測動きベクトルの候補ｍｖｐ１、ｍｖｐ２及びｍｖｐ３とする。
【０１１３】
最初に仮の予測動きベクトルを決める。図２２（ａ）〜（ｃ）では３つの予測動きベクトルの候補を、それぞれ仮の予測動きベクトルとした場合の処理過程を示し、図２２（ａ）はｍｖｐ１、図２２（ｂ）はｍｖｐ２、図２２（ｃ）はｍｖｐ３が最初の仮の予測動きベクトルとした場合である。
【０１１４】
図２２（ａ）ではｍｖｐ１を仮の予測動きベクトルと設定する。図２２（ａ）の中でｍｖｐ１を他の予測動きベクトルの候補と異なるように太実線矢印で表すこととし、以降も仮の予測動きベクトルとなる候補を太実線矢印で表す。仮の予測動きベクトルに差分動きベクトルｍｖｄＬＸ（図２２（ａ）ではｍｖｄと省略し、太点線矢印で表される）を加算すると、処理対象のパーティションの仮の動きベクトルが算出される。この仮の動きベクトルに対して、他の予測動きベクトルの候補ｍｖｐ２及びｍｖｐ３との差分をとると、予測動きベクトルの候補ｍｖｐ２及びｍｖｐ３の差分動きベクトルｍｖｄ２及びｍｖｄ３が算出される（図２２では細点線矢印で表される）。
【０１１５】
ここで、処理対象のパーティションの差分動きベクトルｍｖｄの符号量とｍｖｄ２及びｍｖｄ３の符号量を概算し、比較する。差分動きベクトルの符号量の概算は、差分動きベクトルの絶対値が大きい程符号量が多く発生する為、図２２の中で示される差分動きベクトルの大きさを比較することで符号量の比較を行うことと同等とみなすことが出来、以下において矢印の大きさを概算符号量として説明することとする。
【０１１６】
仮の予測動きベクトルとして設定したｍｖｐ１が真の予測動きベクトルである場合、符号化の際に最小の符号量となる差分動きベクトルとしてｍｖｄが選択される筈なので、ｍｖｄの符号量はｍｖｄ２及びｍｖｄ３の符号量よりも少ないことになる。即ち、ｍｖｄの符号量よりも少なくなる差分動きベクトルを発生させる予測動きベクトルの候補が１つでも存在すれば、仮の予測動きベクトルとして設定したｍｖｐ１は真の予測動きベクトルではないと判定され、リストｍｖｐＬｉｓｔＬＸから削除される。
【０１１７】
つまり、予測動きベクトルを選択する符号化側では、ｍｖｄの符号量が最小となるｍｖｐ候補を選択していると想定した場合の矛盾条件を利用して、ｍｖｐ候補を削除する。図２２（ａ）では、ｍｖｄ２及びｍｖｄ３はｍｖｄよりも小さくなるので、仮の予測動きベクトルとして設定したｍｖｐ１が真の予測動きベクトルではなく、リストｍｖｐＬｉｓｔＬＸから削除と判定される（図２２（ａ）中にて削除と判定される予測動きベクトルの候補は○で表される）。ｍｖｐ１は削除と判定されても、直ぐにリストｍｖｐＬｉｓｔＬＸから削除されず、他の予測動きベクトルの候補の判定の際に削除可能性を高めることができるため、リストｍｖｐＬｉｓｔＬＸに残したままにして、削除することを記憶しておき、全ての予測動きベクトルの候補の判定終了後に削除される。以降の予測動きベクトルの判定でも、この処理は適用されることとする。
【０１１８】
次に、仮の予測動きベクトルをｍｖｐ１以外の他のｍｖｐＬｉｓｔＬＸの予測動きベクトルの候補に設定し直す。図２２（ａ）に示される予測動きベクトルの候補を左から優先して仮の予測動きベクトルとして設定することとし、この場合ｍｖｐ２を次の仮の予測動きベクトルとして設定する。ｍｖｐ２に差分動きベクトルｍｖｄを加算して仮の動きベクトルが算出され、この仮の動きベクトルとｍｖｐ２以外の他の予測動きベクトルの候補ｍｖｐ１及びｍｖｐ３との差分をとり、差分動きベクトルｍｖｄ１及びｍｖｄ３が新たに算出される。ｍｖｄをｍｖｐ１及びｍｖｄ３と比較すると、ｍｖｄ１はｍｖｄより大きいが、ｍｖｄ３がｍｖｄよりも小さいので、仮の予測動きベクトルｍｖｐ２は真の予測動きベクトルではなく、リストｍｖｐＬｉｓｔＬＸから削除と判定される。
【０１１９】
同様にして、ｍｖｐ３を次の仮の予測動きベクトルとして設定し直し、ｍｖｐ３に差分動きベクトルｍｖｄを加算して仮の動きベクトルが算出され、この仮の動きベクトルとｍｖｐ３以外の他の予測動きベクトルの候補ｍｖｐ１及びｍｖｐ２との差分をとり、差分動きベクトルｍｖｄ１及びｍｖｄ２が新たに算出される。ｍｖｄをｍｖｐ１及びｍｖｄ２と比較すると、ｍｖｄはｍｖｄ１及びｍｖｄ２よりも小さいので、仮の予測動きベクトルｍｖｐ３はリストｍｖｐＬｉｓｔＬＸから削除と判定されず、残ることとなる。結果として、リストｍｖｐＬｉｓｔＬＸの中でｍｖｐ１及びｍｖｐ２が削除と判定されているので、ｍｖｐ３が予測動きベクトルとして選択される。
【０１２０】
図２２（ｂ）は最初の仮の予測動きベクトルをｍｖｐ２とした場合であり、差分動きベクトルｍｖｄを加算して仮の動きベクトルが算出される。この仮の動きベクトルとｍｖｐ２以外の他の予測動きベクトルの候補ｍｖｐ１及びｍｖｐ３との差分をとり、差分動きベクトルｍｖｄ１及びｍｖｄ３が算出される。ｍｖｄをｍｖｄ１及びｍｖｄ３と比較すると、ｍｖｄ３がｍｖｄより小さいので、仮の予測動きベクトルｍｖｐ２が削除と判定される。
【０１２１】
次に、仮の予測動きベクトルをｍｖｐ２以外の他のｍｖｐＬｉｓｔＬＸの予測動きベクトルの候補に設定し直す。この場合、ｍｖｐ３を仮の予測動きベクトルとして設定する。仮の予測動きベクトルｍｖｐ３に差分動きベクトルｍｖｄを加算して仮の動きベクトルが算出され、この仮の動きベクトルとｍｖｐ３以外の他の予測動きベクトルの候補ｍｖｐ１及びｍｖｐ２との差分をとり、差分動きベクトルｍｖｄ１及びｍｖｄ２が新たに算出される。ｍｖｄをｍｖｄ１及びｍｖｄ２と比較すると、ｍｖｄがｍｖｄ１及びｍｖｄ２よりも小さいので、仮の予測動きベクトルｍｖｐ３はリストｍｖｐＬｉｓｔＬＸから削除と判定されず残る。
【０１２２】
同様にして、ｍｖｐ１を仮の予測動きベクトルとして設定する。仮の予測動きベクトルｍｖｐ１に差分動きベクトルｍｖｄを加算して仮の動きベクトルが算出され、この仮の動きベクトルとｍｖｐ１以外の他の予測動きベクトルの候補ｍｖｐ２及びｍｖｐ３との差分をとり、差分動きベクトルｍｖｄ２及びｍｖｄ３が新たに算出される。ｍｖｄをｍｖｄ２及びｍｖｄ３と比較すると、ｍｖｄ２及びｍｖｄ３がともにｍｖｄよりも小さいので、仮の予測動きベクトルｍｖｐ１はリストｍｖｐＬｉｓｔＬＸから削除と判定される。ｍｖｐ１及びｍｖｐ２は削除と判定されているので、リストｍｖｐＬｉｓｔＬＸから削除され、ｍｖｐ３だけが残ることとなり、ｍｖｐ３が予測動きベクトルとして選択される。
【０１２３】
図２２（ｃ）は最初の仮の予測動きベクトルをｍｖｐ３とした場合であり、差分動きベクトルｍｖｄを加算して仮の動きベクトルが算出される。この仮の動きベクトルとｍｖｐ３以外の他の予測動きベクトルの候補ｍｖｐ１及びｍｖｐ２との差分をとり、差分動きベクトルｍｖｄ１及びｍｖｄ２が算出される。ｍｖｄをｍｖｄ１及びｍｖｄ２と比較すると、ｍｖｄ１及びｍｖｄ２はｍｖｄよりも大きいので、仮の予測動きベクトルｍｖｐ３はリストｍｖｐＬｉｓｔＬＸから削除と判定されない。次に、仮の予測動きベクトルとしてリストｍｖｐＬｉｓｔＬＸのｍｖｐ１或いはｍｖｐ２を選択して同様な処理を行うと、図２２（ａ）或いは図２２（ｂ）で説明した処理が行われ、結果として、ｍｖｐ１及びｍｖｐ２が削除と判定され、リストｍｖｐＬｉｓｔＬＸから削除されて、ｍｖｐ３だけが残り、予測動きベクトルとして選択される。
【０１２４】
以上のようにして、ｍｖｐＬｉｓｔＬＸの中の予測動きベクトルの候補の１つを順次仮の予測動きベクトルと設定して、ｍｖｄよりも小さい差分動きベクトルを発生させる他の予測動きベクトルの候補が存在する場合に、仮の予測動きベクトルとして設定した予測動きベクトルの候補を削除と判定し、全ての予測動きベクトルの候補に対する判定終了後に削除と判定された予測動きベクトルの候補をリストｍｖｐＬｉｓｔＬＸから削除する。
【０１２５】
このように、符号化側で差分動きベクトルｍｖｄの符号量が最小となる予測動きベクトルｍｖｐ候補を選択していると想定した場合の矛盾条件を利用すると、予測動きベクトルｍｖｐ候補を削減可能であり、予測動きベクトルｍｖｐの選択情報を表すｍｖｐインデックスの符号量を削減できる。
【０１２６】
図２２を例にした説明では、基準としたｍｖｄと他の予測動きベクトルの候補から算出される差分動きベクトルとの明確な大小関係に基づき判定を行ったが、等しくなる場合についてはリストｍｖｐＬｉｓｔＬＸから削除と判定せず、残すようにした。実際の動画像符号化では、予測動きベクトルの候補として使用している隣接するパーティションの動きベクトルは強い相関があり、互いに近い値を持つことが多いので、ｍｖｄと他の予測動きベクトルの候補から算出される差分動きベクトルとが等しくなる頻度が少なくない。
【０１２７】
このような場合、リストｍｖｐＬｉｓｔＬＸから予測動きベクトルの候補が削除と判定されず、複数の候補が残ることになるので、複数の候補から予測動きベクトルを選択する為に使用するフラグｍｖｐ＿ｉｄ＿ｌｘの使用頻度が多くなり、符号量が増加することになる。
【０１２８】
そこで、実施の形態では、このような基準としたｍｖｄと他の予測動きベクトルの候補から算出される差分動きベクトルとが等しくなる場合に、ｍｖｄ及び他の予測動きベクトルの候補から算出される差分動きベクトルに該当するリストｍｖｐＬｉｓｔＬＸの予測動きベクトルの候補のインデックスに対して、判定基準を設け、予測動きベクトルの候補の削除判定を促すようにしている。具体的には、リストｍｖｐＬｉｓｔＬＸの中のインデックスの番号が小さい方を優先してｍｖｐＬｉｓｔＬＸに残すこととした、即ち、図１６で示されるリストｍｖｐＬｉｓｔＬＸの配列で下位に位置する程、削除と判定される可能性が高くなる。
【０１２９】
インデックスの番号が小さい方を優先するのは、インデックスの小さい方がフラグｍｖｐ＿ｉｄ＿ｌｘの発生符号量が少なく、符号化効率を向上させることが出来る為である。つまり、予測動きベクトルを選択する符号化側では、ｍｖｄ＋ｍｖｐ＿ｉｄｘの符号量が最小となる予測動きベクトルの候補を選択していると想定した場合の矛盾条件を利用して、予測動きベクトルの候補を削除する。
【０１３０】
以上の削除処理のフローチャートを図２３に示す。
【０１３１】
リストｍｖｐＬｉｓｔＬＸの中にある予測動きベクトルの候補の総数をカウントし、総数が１より多い場合は複数候補が存在するので、削除処理に進む。そうでない場合、即ち候補が１つに限定されるので、その候補を出力し終了する（Ｓ７０１）。
【０１３２】
次に、処理するパーティションの差分動きベクトルｍｖｄＬＸ（Ｘは０或いは１）の概算符号量を算出する。概算符号量は、ｍｖｄＬＸの絶対値をとり、その絶対値の最上位ビットの位置をｍｖｄＬＸの発生符号量として算出され、ｍｖｄＬＸの絶対値に比例して大きくなる。つまり、図２４に示す符号付きゴロム符号化の符号量を算出する。この概算符号量を以降の判定で使用する基準値ｍｖｄＢｉｔｓとする（Ｓ７０２）。
【０１３３】
リストｍｖｐＬｉｓｔＬＸの中の予測動きベクトルの候補から仮の予測動きベクトルを指定する。指定方法として様々な方法があるが、ここではリストｍｖｐＬｉｓｔＬＸのインデックス順を使用することとする。インデックスをｋで表すこととして、ｋ＝０に初期設定する（Ｓ７０３）。
【０１３４】
リストｍｖｐＬｉｓｔＬＸの中の予測動きベクトルの候補から、インデックスｋ＝０に該当する候補を読み出し、仮の予測動きベクトルｍｖｐとする。即ち、ｍｖｐは次式にて表される。
ｍｖｐ＝ｍｖｐＬｉｓｔＬＸ［ｋ］＝ｍｖｐＬｉｓｔＬＸ［０］
【０１３５】
処理するパーティションの仮の動きベクトルｍｖを算出する。仮の予測動きベクトルと処理するパーティションの差分動きベクトルとを加算することで算出され、次式で表される（Ｓ７０４）。
ｍｖ＝ｍｖｐ＋ｍｖｄＬＸ
【０１３６】
リストｍｖｐＬｉｓｔＬＸの中で、仮の予測動きベクトルとしたインデックスｋ以外の予測動きベクトルの候補のインデックスをｌ（≠ｋ）とし、リストｍｖｐＬｉｓｔＬＸの中でｋを除く最小のインデックスをｌの初期値として設定する（Ｓ７０５）。
【０１３７】
インデックスｌに該当する予測動きベクトルの候補をリストｍｖｐＬｉｓｔＬＸから読み出す（Ｓ７０６）。予測動きベクトルの候補ｍｖｐＣａｎは次式で表される。
ｍｖｐＣａｎ＝ｍｖｐＬｉｓｔＬＸ［ｌ］  （ｌ≠ｋ）
【０１３８】
仮の動きベクトルと予測動きベクトルの候補ｍｖｐＣａｎとの差分を求め、その差分の概算符号量を算出する（Ｓ７０７）。差分ｍｖｄＣａｎは次式で表される。
ｍｖｄＣａｎ＝ｍｖ−ｍｖｐＣａｎ
【０１３９】
概算符号量は算出方法はＳ７０２と同様とし、差分の概算符号量ｍｖｄＣａｎＢｉｔｓを算出する。算出されたｍｖｄＣａｎＢｉｔｓと基準値ｍｖｄＢｉｔｓとの比較を行う（Ｓ７０８）。ｍｖｄＣａｎＢｉｔｓがｍｖｄＢｉｔｓと等しい場合はＳ７１０に進み、そうでない場合はＳ７０９に進む。
【０１４０】
ｍｖｄＣａｎＢｉｔｓがｍｖｄＢｉｔｓと等しい場合は、概算符号量での比較が出来ない為、リストｍｖｐＬｉｓｔＬＸの予測動きベクトルのインデックスの比較を行う（Ｓ７１０）。ｍｖｄＢｉｔｓに対応するインデックスはｋであり、ｍｖｄＣａｎＢｉｔｓに対応するインデックスはｌであるので、ｋとｌとの比較を行う。インデックスｋがｌより大きい場合はｋに該当する仮の予測動きベクトルｍｖｐはリストｍｖｐＬｉｓｔＬＸから削除と判定されることになるので、この時のインデックスｋを記録しておく（Ｓ７１１）。
【０１４１】
削除対象のインデックスｋの記録は、この削除処理の中に削除対象のインデックスｋを記録しておく記憶領域を設けておいたり、リストｍｖｐＬｉｓｔＬＸの中のインデックス毎に削除するか否かを表すフラグを格納する記憶領域を追加してもよい。一方、ｋがｌより小さい場合は仮の予測動きベクトルｍｖｐはそのままリストに残しておき、インデックスｌを更新する。現在のインデックスｌ及び仮の予測動きベクトルのインデックスｋ以外のインデックスをリストｍｖｐＬｉｓｔＬＸの中から選択し、次のｌとして設定する（Ｓ７１２）。
【０１４２】
ｍｖｄＣａｎＢｉｔｓがｍｖｄＢｉｔｓと等しくない場合はｍｖｄＣａｎＢｉｔｓとｍｖｄＢｉｔｓとの大小関係の比較を行う（Ｓ７０９）。ｍｖｄＣａｎＢｉｔｓがｍｖｄＢｉｔｓよりも小さい場合、上述で説明したように、符号化時の予測動きベクトルの選択と矛盾が生じる為、仮の予測動きベクトルｍｖｐはリストｍｖｐＬｉｓｔＬＸから削除と判定されることになるので、この時のインデックスｋを記録しておく（Ｓ７１１）。一方、ｍｖｄＣａｎＢｉｔｓがｍｖｄＢｉｔｓより大きい場合は削除と判定せず、そのままリストに残しておき、インデックスｌを更新する。現在のインデックスｌ及び仮の予測動きベクトルのインデックスｋ以外のインデックスをリストｍｖｐＬｉｓｔＬＸの中から選択し、次のｌとして設定する（Ｓ７１２）。
【０１４３】
リストｍｖｐＬｉｓｔＬＸの中で、ｌ＝ｋを除く全ての予測動きベクトルの候補、即ち仮の予測動きベクトルを除く他の予測動きベクトルの候補と仮の予測動きベクトルとの比較処理の終了を判定する（Ｓ７１３）。リストｍｖｐＬｉｓｔＬＸの中で仮の予測ベクトルとの比較処理が終了していない予測動きベクトルの候補が存在する場合、更新したインデックスｌに該当する予測動きベクトルの候補についてＳ７０６以降の処理を継続する。ｌ≠ｋのインデックスの全ての予測動きベクトルの候補との比較処理が終了した場合、仮の予測動きベクトルのインデックスｋを更新する。インデックスｋは、現在の仮の予測動きベクトル以外の予測動きベクトルの候補のインデックスが選択される（Ｓ７１４）。ここでは、現在のインデックスｋに１加算することで実現される。
【０１４４】
更新されたインデックスｋに対して、リストｍｖｐＬｉｓｔＬＸの中の全ての予測動きベクトルの候補を仮の予測動きベクトルとして比較処理を行った否かの判定する（Ｓ７１５）。全ての予測動きベクトルの候補に対して行っていない場合、更新したインデックスｋにてＳ７０４以降の処理を継続する。
【０１４５】
全ての予測動きベクトルの候補に対して行った場合、リストｍｖｐＬｉｓｔＬＸの中の予測動きベクトルの候補が更新される（Ｓ７１６）。まず、リストｍｖｐＬｉｓｔＬＸの中で、削除と判定され記録されていたインデックスの予測動きベクトルの候補が削除される。次に、リストｍｖｐＬｉｓｔＬＸの中で、削除された予測動きベクトルの候補の空いた格納領域に、インデックス０を基準にして、インデックスが小さい予測動きベクトルの候補の順で詰めていく。例えば、インデックス０，２，３の予測動きベクトルの候補が削除され、インデックス１及び４が残った場合、まずインデックス１の予測動きベクトルの候補をインデックス０の格納領域に移動し、インデックス４の予測動きベクトルの候補をインデックス１の格納領域に移動する。以上のようにして、リストｍｖｐＬｉｓｔＬＸの中が更新される。
【０１４６】
［リストの中の予測動きベクトルの候補数を確認（Ｓ８００）］
Ｓ７００にて予測動きベクトルの候補が削除されたリストｍｖｐＬｉｓｔＬＸの中から、最適な予測動きベクトルを選択する。まず、リストｍｖｐＬｉｓｔＬＸの中に残った予測動きベクトルの候補の総数をカウントする。総数が１の場合、リストｍｖｐＬｉｓｔＬＸに残っている予測動きベクトルが候補が最適な予測動きベクトルとなり、Ｓ７００にてリストｍｖｐＬｉｓｔＬＸの中で予測動きベクトルの候補の更新により、リストｍｖｐＬｉｓｔＬＸのインデックス０に予測動きベクトルが格納されている。そこで、予測動きベクトルのインデックスをｍｖｐ＿ｉｄｘ＿ｌｘとして、ｍｖｐ＿ｉｄｘ＿ｌｘ＝０を設定する。インデックスｍｖｐ＿ｉｄｘ＿ｌｘに該当するｍｖｐＬｉｓｔＬＸ［ｍｖｐ＿ｉｄｘ＿ｌｘ］を最適な予測動きベクトルとして出力する。
【０１４７】
総数が１ではない場合、リストｍｖｐＬｉｓｔＬＸの中には複数の予測動きベクトルの候補が残っていることとなり、これまでの処理では最適な予測動きベクトルとして選択出来なかったことになる。この場合、ビットストリームから復号された変数ｍｖｐ＿ｉｄｘ＿ｌｘをリストｍｖｐＬｉｓｔＬＸのインデックスとして、ｍｖｐ＿ｉｄｘ＿ｌｘに該当するリストｍｖｐＬｉｓｔＬＸのインデックスの予測動きベクトルの候補を予測動きベクトルとする。
【０１４８】
ここで、ｍｖｐ＿ｉｄｘ＿ｌｘのエントロピー符号化について説明する。図２５にＴｒｕｎｃａｔｅｄ  Ｕｎａｒｙを用いたｍｖｐ＿ｉｄｘ＿ｌｘの符号割当を示す。この例では、ｍｖｐ＿ｉｄｘ＿ｌｘの最大数が５、つまりｍｖｐ＿ｉｄｘ＿ｌｘの値の範囲が０〜４の場合の例である。ｍｖｐ＿ｉｄｘ＿ｌｘの符号量は、値が１大きくなるほど１ｂｉｔずつ増加する。但し、最大の値を持つｍｖｐ＿ｉｄｘ＿ｌｘを伝送する場合は、最後の１ｂｉｔ伝送する必要がない為、１ｂｉｔ増加はしない。
【０１４９】
このように、ｍｖｐ＿ｉｄｘ＿ｌｘが増加するほど伝送する符号量が増えるため、ｍｖｄの符号量が同一の場合はｍｖｐ＿ｉｄｘ＿ｌｘの番号が小さいｍｖｐを選択した方が良いことが分かる。また、ｍｖｄの符号量、ｍｖｐ＿ｉｄｘ＿ｌｘの符号量共に差がつかない場合にも、ｍｖｐの候補を複数残すよりも、特定のルールにより候補を１つに絞るほうが効率が良いため、実施の形態のｍｖｐ＿ｉｄｘ＿ｌｘの大小による候補削減は非常に有用である。
【０１５０】
以上の処理により、最適な予測動きベクトルが算出される。
【０１５１】
［実施例２］
動きベクトルの予測方法の実施例２を説明する。図２６は図１で構成される動画像符号化装置の予測動きベクトル選択部１１１の詳細な構成を示す図であり、図２７は図２で構成される動画像復号装置の予測動きベクトル選択部２０８の詳細な構成を示す図である。実施例１と実施例２との相違は、実施例１の予測動きベクトル選択部１１１及び２０８を構成していた予測動きベクトル候補同一判定部１２１及び２２１が実施例２には存在しないことである。
【０１５２】
実施例１における予測動きベクトル候補削除部１２２及び２２２では、予測動きベクトルの候補を削除判定する為に予測動きベクトルの候補を比較する場合に、予測動きベクトルの候補同士が同一の動きベクトルであると、概算符号量は同一の値となり、符号量での判定は出来ない。しかし、符号量での判定が出来ない場合、各予測動きベクトルの候補に割り当てられているリストｍｖｐＬｉｓｔＬＸのインデックスによって判定するようにしているので、比較する予測動きベクトルの候補の必ずどちらか一方が選択される。
【０１５３】
実施例２では、予測動きベクトルの候補同士の比較処理が、実施例１の予測動きベクトル候補同一判定部１２１及び２２１と予測動きベクトル候補削除部１２２及び２２２とで重複している点に着目し、実施例１の予測動きベクトル候補同一判定部１２１及び２２１を予測動きベクトル選択部１１１及び２０８の処理構成から外すこととで、予測動きベクトル候補を最大限に絞り込むことを維持しつつ、処理速度向上と回路規模縮小の効果が期待出来る。
【０１５４】
ここで、予測動きベクトル候補生成部１３０及び２３０がｎ個の予測動きベクトルの候補を生成したとする。実施例１の予測動きベクトル候補同一判定部１２１及び２２１では、予測動きベクトルの候補を比較する為の処理回数として、ｎ個の中から２個の予測動きベクトルの候補を選ぶ組み合わせはｎＣ２＝ｎ（ｎ−１）／２通りあるから、ｎ（ｎ−１）／２回を必要とする。ここで、Ｃは組み合わせを表す関数（combination）である。
【０１５５】
更に、実施例１の予測動きベクトル候補同一判定部１２１及び２２１にて削除され更新された予測動きベクトルの候補数をｍ（ｍ≦ｎ）とすると、予測動きベクトル候補削除部１２２及び２２２では、予測動きベクトルの候補を比較する為の処理回数はｍ（ｍ−１）となり、処理回数の総数は
ｎ（ｎ−１）／２＋ｍ（ｍ−１），  但しｍ≦ｎ
で表される。
【０１５６】
一方、実施例２の予測動きベクトル候補削除部１３２及び２３２では、予測動きベクトルの候補を比較する為の処理回数はｎ（ｎ−１）となる。
【０１５７】
実施例１と実施例２との処理回数が等しくなるのは、実施例１の予測動きベクトル候補同一判定部１２１及び２２１で予測動きベクトルの候補総数のうち約１／２０．５≒７０％が削除されずに残る場合に相当する。即ち、ｎ個の予測動きベクトルの候補の全体で約３０％が重複することになる。
【０１５８】
実施例２の予測動きベクトル候補生成部１３０及び２３０では、符号化・伝送する為の差分動きベクトルの値を小さくする為に、予測動きベクトルの候補としては異なる値を持つ候補を生成した方が有利であり、同一の値となる候補を生成することは確率的に少ないので、生成される予測動きベクトルの候補のうち、３０％以上が重複することは静止画やパンスキャンのような特殊な場合を除いて考え難い。したがって、実施例２では、予測動きベクトルの候補の比較処理回数は、実施例１に比べて少なくなることが期待出来、処理速度を向上させることが可能となる。
【０１５９】
また、符号化装置や復号装置をハードウェア化する場合には、処理のワーストケースを基準に回路を設計する必要があるため、実施例１でも、予測動きベクトル候補同一判定部１２１及び２２１の有無にかかわらず、ｎ個の動きベクトル候補が予測動きベクトル候補削除部１２２及び２２２に入力されることを想定しなくてはいけない。つまり、本実施の形態のように予測動きベクトル候補削除部１２２及び２２２で各予測動きベクトルの候補に割り当てられているリストｍｖｐＬｉｓｔＬＸのインデックスを考慮して予測動きベクトル候補を削除している場合、予測動きベクトル候補同一判定部１２１及び２２１の存在意義はない。
【０１６０】
もっとも、符号化装置や復号装置をハードウェア化せずに、ソフトウェアで処理する場合は、実施例１のように予測動きベクトル候補同一判定部１２１及び２２１による同一判定処理を、予測動きベクトル候補削除部１２２及び２２２による候補削除処理に先だって行っておくことは計算量の観点から有利になることもある。また、ハードウェア化した場合であっても、消費電力を考えると、計算量が少ない構成の方が有利であるから、実施例１のように予測動きベクトル候補同一判定部１２１及び２２１を設ける構成にも意味がある。したがって、実装形態の違いや、計算量、消費電力などの性能指標の観点の違いから、実施例１と実施例２はそれぞれに異なる長所を有し、どちらか一方が他方よりも優れているというものではないことに留意すべきである。
【０１６１】
実施例２では、実施例１から予測動きベクトル候補同一判定部１２１及び２２１を処理構成から外し、事前に予測動きベクトルの候補から同一の動きベクトルの値を持つ候補を削除する処理が無い点が異なるだけで、予測動きベクトルの候補の判定処理は実施例１と同様であるので、判定処理については説明を割愛する。
【０１６２】
図２８（ａ）は実施例２の予測動きベクトル候補生成部１３０及び２３０ならびに予測動きベクトル候補削除部１３２及び２３２の処理の流れを表すフローチャートである。図２８（ｂ）は実施例２の予測動きベクトル候補生成部１３０及び２３０による予測動きベクトル候補の生成の一例を示すフローチャートであり、図２８（ａ）の［予測動きベクトルの候補を算出（Ｓ９０）］の処理の詳細な流れを示すものである。図２８（ａ）は、図１１（ａ）の実施例１の場合と比べて、Ｓ６００のリストの中の同じ値を持つ予測動きベクトルの候補を削除する処理がない点が異なり、それ以外の処理の流れは同じであり、図２８（ｂ）は、図１１（ｂ）の実施例１の場合と同じであるから、説明を省略する。
【０１６３】
［実施例３］
動きベクトルの予測方法の実施例３を説明する。実施例３は、動画像符号化装置の予測動きベクトル選択部１２５及び１３５、予測動きベクトル候補削除部１２２と、動画像復号装置の予測動きベクトル候補削除部２２２での予測動きベクトルの候補の比較判定方法が実施例１及び２とは異なる。
【０１６４】
最初に、予測動きベクトル選択部１２５及び１３５における相違を説明する。実施例１及び２における予測動きベクトル選択部１２５及び１３５では、動きベクトルｍｖとリストｍｖｐＬｉｓｔＬＸの中に格納された各予測動きベクトルの候補ｍｖｐＬｉｓｔＬＸ［ｉ］との差分を算出し、その差分の発生符号量のみで比較していた。実際の符号化過程では差分動きベクトルと条件付きで予測動きベクトルのインデックスｍｖｐ＿ｉｄｘ＿ｌｘが符号化され、伝送されるので、実施例３ではインデックスｍｖｐ＿ｉｄｘ＿ｌｘの発生符号量も考慮することで、発生符号量が最小となる予測動きベクトルの候補を判定する。即ち、動きベクトルｍｖとリストｍｖｐＬｉｓｔＬＸの中に格納された各予測動きベクトルの候補ｍｖｐＬｉｓｔＬＸ［ｉ］との差分の発生符号量とそのインデックスｉの発生符号量を加算した総符号量が最小となる予測動きベクトルの候補をｍｉｎ＿ｍｖｐとして記録する。
【０１６５】
次に、動画像符号化装置の予測動きベクトル候補削除部１２２及び動画像復号装置の予測動きベクトル候補削除部２２２における相違を説明する。具体的には、動きベクトルの予測方法における差分動きベクトルに基づき、リストの中の予測動きベクトルの候補を削除（Ｓ７００）する過程内での判定が異なる。
【０１６６】
実施例１及び２における差分動きベクトルに基づくリストの中の予測動きベクトルの候補の削除では、予測動きベクトルの候補から任意に選択された１つの候補を仮の予測動きベクトルとして、その動きベクトルと差分動きベクトルｍｖｄを加算することで仮の動きベクトル生成し、その仮の動きベクトルと他の予測動きベクトルの候補との差分を符号量に換算した値とｍｖｄを符号量に換算した値で比較して、予測動きベクトルの削除を実施した。
【０１６７】
しかし、実際の符号化過程では差分動きベクトルと条件付きで予測動きベクトルのインデックスｍｖｐ＿ｉｄｘ＿ｌｘが符号化され、伝送される。Ｓ７００の削除処理により、予測動きベクトルの候補が１つに絞られた場合は、予測動きベクトルのインデックスｍｖｐ＿ｉｄｘ＿ｌｘを符号化・伝送する必要がないが、２つ以上の候補が残る場合にはｍｖｐ＿ｉｄｘ＿ｌｘが必要となる。
【０１６８】
その為、上述の予測動きベクトル選択部１２５及び１３５と同様に、削除処理において、差分動きベクトルの符号量概算とともに予測動きベクトルのインデックスｍｖｐ＿ｉｄｘ＿ｌｘの符号量を考慮することで厳密な比較が可能となり、予測精度の向上が図られる。
【０１６９】
図２９を一例として説明する。図２９は予測動きベクトルの候補をｍｖｐ１とｍｖｐ２とし、配置した例である。まず、実施例１及び２での判定の一例として図２９（ａ）を説明する。細実線はｍｖｐ１及びｍｖｐ２にそれぞれ差分動きベクトルを加算した時に同じ発生符号量になる境界を示し、境界よりも左ならｍｖｐ１、境界より右ならｍｖｐ２の方が発生符号量が少ない領域を示している。
【０１７０】
図２９（ａ）に示されるように、ｍｖｐ１を仮の予測動きベクトルとしてｍｖｄを加算しすると、ｍｖｄの発生符号量が境界を超えない位置に達したとする。ｍｖｐ２からその位置に向けた差分動きベクトルｍｖｐ２の符号量はｍｖｄのそれよりも多いことになり、この場合ｍｖｐ１が削除されないことになる。ｍｖｐ１及びｍｖｐ２のそれぞれの予測動きベクトルのリストｍｖｐＬｉｓｔＬＸのインデックスｍｖｐ１＿ｉｄｘ及びｍｖｐ２＿ｉｄｘとし、次の関係ｍｖｐ１＿ｉｄｘ＞ｍｖｐ２＿ｉｄｘが成り立っている場合、予測動きベクトルの候補が複数残ることになり、ｍｖｐ１を予測動きベクトルとして選択するには、インデックスの差分（ｍｖｐ１＿ｉｄｘ−ｍｖｐ２＿ｉｄｘ）相当の符号量がｍｖｐ＿ｉｄｘ＿ｌｘとして必要となる。そこで、本実施例３では、このインデックスの差分相当の符号量を差分動きベクトルの符号量概算に考慮してより厳密な比較を行う。
【０１７１】
図２９（ｂ）は図２９（ａ）においてインデックスの符号化分を考慮した場合を示す。ｍｖｐ１及びｍｖｐ２のインデックスがｍｖｐ１＿ｉｄｘ＞ｍｖｐ２＿ｉｄｘの関係にある場合、ｍｖｐ１を予測動きベクトルとして選択する場合、インデックスの差分（ｍｖｐ１＿ｉｄｘ−ｍｖｐ２＿ｉｄｘ）相当の符号量が加算されるので、従来中心にあった符号量の境界がｍｖｐ１寄りにオフセットされることになる。図２９（ｂ）では、オフセットされた境界を越えてｍｖｐ１に加算されたｍｖｄの符号量がｍｖｐ２の領域を侵すことになり、この場合、ｍｖｐ１は削除されることになる。
【０１７２】
以上のように、予測動きベクトルのインデックスにより発生する符号量差を考慮することで、予測動きベクトルの候補の削除の精度を高めることが可能となる。
【０１７３】
図３０は本実施例３を実現する為に、実施例１及び２における差分動きベクトルに基づき、リストの中の予測動きベクトルの候補を削除に追加するフローチャートを示す。まず、図２３のフローチャートに対して、Ｓ７０７までの過程が同様に行われる。
【０１７４】
次に、図３０に示されるように、仮の予測動きベクトルｍｖｐのインデックスｋとｋ以外の予測動きベクトルの候補のインデックスをｌ（≠ｋ）との差分を求め、符号量に概算し、オフセット値を算出する（Ｓ７２１）。予測動きベクトルのインデックスは、ユーナリー・バイナリゼーション符号化が用いられることが多いので、ここでもこの符号化を採用することとすると、インデックスの値自身が符号量となる。次に、算出されたオフセット値を差分の概算符号量ｍｖｄＣａｎＢｉｔｓに加算する（Ｓ７２２）。ここで、ｋ＞ｌの場合、オフセット値は負となるが、そのまま加算する。予測動きベクトルのインデックスを考慮して算出されたｍｖｄＣａｎＢｉｔｓでｍｖｄとの比較を行い、以降の過程は実施例１及び２と同様にして予測動きベクトルの候補の削除を行う。
【０１７５】
［実施例４］
動きベクトルの予測方法の実施例４を説明する。実施例１〜３とは、動きベクトルの予測方法における予測動きベクトルの候補を削除（Ｓ７００）する過程内で予測動きベクトルの候補のリストｍｖｐＬｉｓｔＬＸの各リストのインデックスｍｖｐ＿ｌｉｓｔ＿ｌｘの符号量の割り当て方が異なる。
【０１７６】
実施例１〜３におけるリストｍｖｐＬｉｓｔＬＸのインデックスｍｖｐ＿ｉｄｘ＿ｌｘの符号量の割り当て方は、図２５で示されるように、リストｍｖｐＬｉｓｔＬＸの総リスト数に対して固定的な符号量がＴｒｕｎｃａｔｅｄ  Ｕｎａｒｙによって割り当てられる。図２５の場合は総リスト数５であり、インデックスｍｖｐ＿ｉｄｘ＿ｌｘは最大で４ビットの符号量となる。
【０１７７】
実施例１〜３における予測動きベクトルの候補の削除過程では、予測動きベクトルの候補が削除対象と判定されても、リストｍｖｐＬｉｓｔＬＸのインデックスの割り当て符号量はそのままとして判定を続けていた。しかし、最終的に削除過程が終了し、予測動くベクトルの候補として選択されるリストｍｖｐＬｉｓｔＬＸのインデックスｍｖｐ＿ｉｄｘ＿ｌｘは、リストｍｖｐＬｉｓｔＬＸの中から削除対象の予測動きベクトルの候補を削除し、インデックス０を基準にして、インデックスが小さい予測動きベクトルの候補の順に詰められたリストｍｖｐＬｉｓｔＬＸのインデックスとなり、削除過程におけるインデックスｍｖｐ＿ｉｄｘ＿ｌｘの符号及び符号量とは異なる。
【０１７８】
そこで、実施例４では、予測動きベクトルの候補の削除過程において、リストｍｖｐＬｉｓｔＬＸの中で削除対象とされた予測動きベクトルの候補のリストを除き、リストｍｖｐＬｉｓｔＬＸに残ったリストのインデックスｍｖｐ＿ｉｄｘ＿ｌｘに対して、新たに符号の割り当ての変更を行うこととする。
【０１７９】
例えば、図２５のリストの中でインデックスｍｖｐ＿ｉｄｘ＿ｌｘが２のリストにある予測動きベクトルの候補が削除対象と判定されたとする。削除対象と判定された予測動きベクトルのリストのインデックスは削除過程中に記録されているので、次の削除判定の前に、リストのインデックスに割り当てる符号を更新する。ここでは、インデックス２以外のリストｍｖｐＬｉｓｔＬＸに残ったリストのインデックスに対して符号を次のように割り当て直す。インデックスｍｖｐ＿ｉｄｘ＿ｌｘ＝０，１，３，４の順に割り当て符号は”０”，”１０”，”１１０”，”１１１”となり、最大でも３ビットで表されることになる。
【０１８０】
以上のようにして、リストｍｖｐＬｉｓｔＬＸの中にある予測動きベクトルの候補毎に削除判定を行い、その都度インデックスｍｖｐ＿ｉｄｘ＿ｌｘに対する符号割り当ての更新を繰り返す。削除判定毎にリストｍｖｐＬｉｓｔＬＸのインデックスｍｖｐ＿ｉｄｘ＿ｌｘに対して、予測動きベクトルの候補の削除が反映された符号量が割り当てられるので、予測動きベクトルの候補の削除判定の正確性を向上させることが可能となる。
【０１８１】
以上述べたように、実施の形態の動きベクトルの予測方法によれば、ピクチャを矩形ブロックに分割し、ピクチャ間でブロック単位に動き推定、補償を行う動画像符号化における動きベクトルの符号化効率を向上させる為に、既符号化済みの周囲のブロック等の動きベクトルから予測を行い、処理対象のブロックの動きベクトルとその予測値との差分ベクトルを符号化することによって符号量を削減することができる。
【０１８２】
符号化対象ブロックの動きベクトルを最も効率良く予測符号化するために、予測動きベクトルの候補から最適な予測動きベクトルを判定する際、周囲の隣接ブロックの動きベクトルの中から選択する条件判定を新たに定義することで、予測動きベクトルの候補を削減する。これにより、予測動きベクトルの参照先を表すインデックスの符号量を削減することができ、符号化効率を向上させることができる。
【０１８３】
このように、実施の形態の動きベクトルの予測方法によれば、複数の予測動きベクトルの中から最適な動きベクトルを選択し、伝送する差分動きベクトルの発生符号量を削減させるとともに、予測動きベクトルの候補数を削減可能となる為、予測動きベクトルを表すインデックスの使用頻度を下げ、インデックスに必要な符号量を削減させて、符号化効率を向上させることができる。
【０１８４】
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ＲＯＭ（リード・オンリ・メモリ）やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
【０１８５】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０１８６】
１０１  動きベクトル検出部、  １０２  減算部、  １０３  直交変換・量子化部、  １０４  可変長符号化部、  １０５  逆量子化・逆直交変換部、  １０６  動き補償部、  １０７  重み付き予測部、  １０８  加算部、  １０９  デブロッキング・フィルタ部、  １１０  メモリ、  １１１  予測動きベクトル選択部  １２５、１３５  予測動きベクトル選択部、  １２０、１３０  予測動きベクトル候補生成部、  １２１  予測動きベクトル候補同一判定部、  １２２、１３２  予測動きベクトル候補削除部、  １２３、１３３  予測動きベクトル判定部、  １２４、１３４  減算部、  ２０１  可変長復号部、  ２０２  逆量子化・逆直交変換部、  ２０３  動き補償部、  ２０４  重み付き予測部、  ２０５  加算部、  ２０６  デブロッキング・フィルタ部、  ２０７  メモリ、  ２０８  予測動きベクトル選択部、  ２２０、２３０  予測動きベクトル候補生成部、  ２２１、２３２  予測動きベクトル候補同一判定部、  ２２２  予測動きベクトル候補削除部、  ２２３、２３３  予測動きベクトル判定部、  ２２４、２３４  加算部。
【図１】
2012151818.tif 000003
【図２】
2012151818.tif 000004
【図３】
2012151818.tif 000005
【図４】
2012151818.tif 000006
【図５】
2012151818.tif 000007
【図６】
2012151818.tif 000008
【図７】
2012151818.tif 000009
【図８】
2012151818.tif 000010
【図９】
2012151818.tif 000011
【図１０】
2012151818.tif 000012
【図１１】
2012151818.tif 000013
【図１２】
2012151818.tif 000014
【図１３】
2012151818.tif 000015
【図１４】
2012151818.tif 000016
【図１５】
2012151818.tif 000017
【図１６】
2012151818.tif 000018
【図１７】
2012151818.tif 000019
【図１８】
2012151818.tif 000020
【図１９】
2012151818.tif 000021
【図２０】
2012151818.tif 000022
【図２１】
2012151818.tif 000023
【図２２】
2012151818.tif 000024
【図２３】
2012151818.tif 000025
【図２４】
2012151818.tif 000026
【図２５】
2012151818.tif 000027
【図２６】
2012151818.tif 000028
【図２７】
2012151818.tif 000029
【図２８】
2012151818.tif 000030
【図２９】
2012151818.tif 000031
【図３０】
2012151818.tif 000032
【図３１】
2012151818.tif 000033
【図３２】
2012151818.tif 000034
【図３３】
2012151818.tif 000035