(57)【特許請求の範囲】
【請求項１】
フレーム画像信号の時間系列で構成される入力動画像信号を複数の処理対象領域に分割する領域分割手段と、前記処理対象領域の動きベクトルを検出する動き検出手段と、前記検出された動きベクトルを用いて前記処理対象領域に対する予測信号を生成する予測信号生成手段と、前記予測信号と処理対象領域信号との残差信号を生成する残差信号生成手段と、前記残差信号と前記動きベクトルを符号化して圧縮データを生成する符号化手段と、を備え、
前記符号化手段は、
互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性と、符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性との少なくとも一つに基づく重み付けをそれぞれの動きベクトルに対して行い、重み付けした動きベクトルを加算することによって定められた動きベクトルの予測値と前記動きベクトルとの差分値を符号化し、
前記互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性とは、符号化対象のブロックと時間方向に対応しており且つ符号化対象のブロックとは異なるフレーム間のブロックの動きベクトル同士の類似性、又は、符号化対象のブロックと同一フレーム上にあるブロックのうち符号化対象のブロックとは異なるブロックの動きベクトルと、当該ブロックと時間方向に対応し且つ符号化対象のブロックとは異なるフレームのブロックの動きベクトルとの類似性であり、
前記符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性とは、空間方向に基づいた複数のブロックの動きベクトルの類似性であり、
前記互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性に基づく重み付けとして、前記互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、符号化対象のブロックと異なるフレーム内にあるブロックの動きベクトルに対して重み付けをし、
前記符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づく重み付けとして、前記符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、前記符号化対象のブロックと同じフレーム内にあるブロックの動きベクトルに対して重み付けをする、
ことを特徴とした動画像符号化装置。
【請求項２】
前記符号化対象のブロックと同じフレーム内にある複数のブロックは、前記符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む、請求項１に記載の動画像符号化装置。
【請求項３】
圧縮データの中から処理対象領域に関する残差信号と動きベクトルの情報を抽出するデータ抽出手段と、前記処理対象領域に関する残差信号を再生残差信号に復元する残差信号復元手段と、前記処理対象領域に対する予測信号を生成する予測信号生成手段と、前記予測信号と前記再生残差信号を加算することによって、前記対象領域の画素信号を復元する画像復元手段を備え、
前記予測信号生成手段は、
互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性と、復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性との少なくとも一つに基づく重み付けをそれぞれの動きベクトルに対して行い、重み付けした動きベクトルを加算することによって定められた動きベクトルの予測値と、前記動きベクトルの情報である動きベクトル差分値とを用いて前記予測信号を生成し、
前記互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性とは、復号対象のブロックと時間方向に対応しており且つ復号対象のブロックとは異なるフレーム間のブロックの動きベクトル同士の類似性、又は、復号対象のブロックと同一フレーム上にあるブロックのうち復号対象のブロックとは異なるブロックの動きベクトルと、当該ブロックと時間方向に対応し且つ復号対象のブロックとは異なるフレームのブロックの動きベクトルとの類似性であり、
前記復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性とは、空間方向に基づいた複数のブロックの動きベクトルの類似性であり、
前記互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性に基づく重み付けとして、前記互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、復号対象のブロックと異なるフレーム内にあるブロックの動きベクトルに対して重み付けをし、
前記復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づく重み付けとして、前記復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、前記復号対象のブロックと同じフレーム内にあるブロックの動きベクトルに対して重み付けをする、
ことを特徴とした動画像復号装置。
【請求項４】
前記復号対象のブロックと同じフレーム内にある複数のブロックは、前記復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む、請求項３に記載の動画像復号装置。
【請求項５】
動画像符号化装置により実行される動画像符号化方法であって、
フレーム画像信号の時間系列で構成される入力動画像信号を複数の処理対象領域に分割する領域分割ステップと、前記処理対象領域の動きベクトルを検出する動き検出ステップと、前記検出された動きベクトルを用いて前記処理対象領域に対する予測信号を生成する予測信号生成ステップと、前記予測信号と処理対象領域信号との残差信号を生成する残差信号生成ステップと、前記残差信号と前記動きベクトルを符号化して圧縮データを生成する符号化ステップとを備え、
前記符号化ステップでは、前記動画像符号化装置は、
互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性と、符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性との少なくとも一つに基づく重み付けをそれぞれの動きベクトルに対して行い、重み付けした動きベクトルを加算することによって定められた動きベクトルの予測値と前記動きベクトルとの差分値を符号化し、
前記互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性とは、符号化対象のブロックと時間方向に対応しており且つ符号化対象のブロックとは異なるフレーム間のブロックの動きベクトル同士の類似性、又は、符号化対象のブロックと同一フレーム上にあるブロックのうち符号化対象のブロックとは異なるブロックの動きベクトルと、当該ブロックと時間方向に対応し且つ符号化対象のブロックとは異なるフレームのブロックの動きベクトルとの類似性であり、
前記符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性とは、空間方向に基づいた複数のブロックの動きベクトルの類似性であり、
前記互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性に基づく重み付けとして、前記互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、符号化対象のブロックと異なるフレーム内にあるブロックの動きベクトルに対して重み付けをし、
前記符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づく重み付けとして、前記符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、前記符号化対象のブロックと同じフレーム内にあるブロックの動きベクトルに対して重み付けをする、
ことを特徴とした動画像符号化方法。
【請求項６】
前記符号化対象のブロックと同じフレーム内にある複数のブロックは、前記符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む、請求項５に記載の動画像符号化方法。
【請求項７】
動画像復号装置により実行される動画像復号方法であって、
圧縮データの中から処理対象領域に関する残差信号と動きベクトルの情報を抽出するデータ抽出ステップと、前記処理対象領域に関する残差信号を再生残差信号に復元する残差信号復元ステップと、前記処理対象領域に対する予測信号を生成する予測信号生成ステップと、前記予測信号と前記再生残差信号を加算することによって、前記対象領域の画素信号を復元する画像復元ステップとを備え、
前記予測信号生成ステップでは、前記動画像復号装置は、
互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性と、復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性との少なくとも一つに基づく重み付けをそれぞれの動きベクトルに対して行い、重み付けした動きベクトルを加算することによって定められた動きベクトルの予測値と、前記動きベクトルの情報である動きベクトル差分値とを用いて前記予測信号を生成し、
前記互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性とは、復号対象のブロックと時間方向に対応しており且つ復号対象のブロックとは異なるフレーム間のブロックの動きベクトル同士の類似性、又は、復号対象のブロックと同一フレーム上にあるブロックのうち復号対象のブロックとは異なるブロックの動きベクトルと、当該ブロックと時間方向に対応し且つ復号対象のブロックとは異なるフレームのブロックの動きベクトルとの類似性であり、
前記復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性とは、空間方向に基づいた複数のブロックの動きベクトルの類似性であり、
前記互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性に基づく重み付けとして、前記互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、復号対象のブロックと異なるフレーム内にあるブロックの動きベクトルに対して重み付けをし、
前記復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づく重み付けとして、前記復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、前記復号対象のブロックと同じフレーム内にあるブロックの動きベクトルに対して重み付けをする、
ことを特徴とした動画像復号方法。
【請求項８】
前記復号対象のブロックと同じフレーム内にある複数のブロックは、前記復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む、請求項７に記載の動画像復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトルによる動き補償に関連する、動画像符号化装置、方法及びプログラム、並びに動画像復号装置、方法及びプログラムに関する。
【背景技術】
【０００２】
静止画像や動画像データの伝送や蓄積を効率よく行うために、圧縮符号化技術が用いられている。従来の動画像符号化方式の事例として、ＭＰＥＧ１〜ＭＰＥＧ４やＩＴＵ（International  Telecommunication  Union）Ｈ．２６１〜Ｈ．２６４の方式が広く用いられている。
【０００３】
これらの符号化方式では、符号化の対象となる画像を複数のブロックに分割した上で符号化・復号処理を行う。ＭＰＥＧ４やＨ．２６４においては、符号化効率をさらに高めるため、画面内の予測符号化については、対象ブロックと同じ画面内にある隣接する既再生の画像信号（圧縮された画像データが復元されたもの）を用いて予測信号を生成した上で、それを対象ブロックの信号から引き算した差分信号を符号化する。画面間の予測符号化については、対象ブロックと異なる画面内にある隣接する既再生の画像信号を参照し、動きの補正を行ない、予測信号を生成し、それを対象ブロックの信号から引き算した差分信号を符号化する（非特許文献１参照）。
【０００４】
上記方式における画面間予測では、動き補償に用いる符号化対象ブロックの動きベクトルを符号化する際に、対象ブロックと同じフレーム内で上・左・左上にあるブロックの動きベクトルの中間値を、対象ブロックの動きベクトルの予測値とし、対象ブロックの動きベクトルから動きベクトル予測値を引き算した差分値を符号化している（特許文献１参照）。
【０００５】
また、符号化対象ブロックの動きベクトルの予測値を算出する際に、対象ブロックを含むフレームとは異なるフレームにあるブロックの動きベクトルを対象ブロックの動きベクトル予測値とし、差分符号化する技術が開示されている（非特許文献２参照）。
【０００６】
MPEG-4の符号化方式では、対象ブロックと異なるフレームにあるブロックの動きベクトルを、対象ブロックの動きベクトル予測値とするダイレクトモード（Direct  mode）という方法とともに、対象ブロックと同じフレーム内で隣接するブロックの動きベクトルを対象ブロックの動きベクトル予測値とする方法が使われている。あるブロックでダイレクトモードを用いるかどうかを示すために、予測モードを示すインデックスが使われている（非特許文献３参照）。
【０００７】
さらに、対象ブロックを含むフレーム内のブロックの動きベクトルを対象ブロックの動きベクトル予測値とし、隣り合うフレームにある２つの動きベクトルの差分値に基づいて動きベクトル差分値をエントロピー符号化する際の確率分布を切り替えることで符号化効率を上げる手法が開示されている（非特許文献４参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許５９０５５３５号
【非特許文献】
【０００９】
【非特許文献１】“ITU-T  H.264”  TELECOMMUNICATION  STANDARDIZATION  SECTOR  OF  ITU  SERIES  H:  AUDIOVISUAL  AND  MULTIMEDIA  SYSTEMS  Infrastructure  of  audiovisual  services  −  Coding  of  moving  video
【非特許文献２】『MOTION  COMPENSATION  OF  MOTION  VECTORS』  Yeh,  J.;  Vetterli,  M.;  Khansari,  M.;Image  Processing,  1995.  Proceedings.,  International  Conference  on,  Volume1,  23-26  Oct.  1995  Page(s):574-577  vol.1,  Digital  Object  Identifier  10.1109/ICIP.1995.531431
【非特許文献３】Text  of  ISO/IEC  14496-2:2001  (Unifying  N2502,  N3307,  N3056,  and  N3664)  INTERNATIONAL  ORGANIZATION  FOR  STANDARDIZATION  ORGANIZATION  INTERNATIONAL  NORMALIZATION  ISO/IEC  JTC  1/SC  29/WG  11  CODING  OF  MOVING  PICTURES  AND  AUDIO
【非特許文献４】『A  Spatial  and  Temporal  Motion  Vector  Coding  Algorithm  for  Low-Bit-Rate  Video  Coding』  Chen,  M.C.;  Willson,  A.N.,  Jr.;  Image  Processing,  1997.  Proceedings.,  International  Conference  on  Volume2,  26-29  Oct.  1997  Page(s):791-794  vol.2  Digital  Object  Identifier  10.1109/ICIP.1997.638615
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、MPEG−４による従来技術は、対象ブロックの動きベクトル予測値を、ダイレクトモードを用いて決めるかどうかを示すための情報を送らなくてはならないため、その分だけ符号量が増えてしまう。
【００１１】
また、対象ブロックの動きベクトルの予測方法を示すモード情報や、対象ブロックの動きベクトルを指示するための情報や、動きベクトル差分値は固定の確率分布に基づいてエントロピー符号化されるため、周囲環境の変化に適応的な符号化ができず、符号化の効率及び精度が良いとはいえない。
【００１２】
また、周囲環境の変化に適応的な例として非特許文献３に記載の従来技術があるが、動きベクトルの空間方向の相関のみに注目している。このため、対象ブロックとは異なるフレームにあるブロックの動きベクトルを動きベクトル予測値とした場合には、符号化の効率及び精度が良くない。
【００１３】
さらに従来技術では、対象ブロックと同じフレーム内で対象ブロックに隣接するブロックの動きベクトルや、対象ブロックを含むフレームと隣り合うフレーム内で対象ブロックと同じ空間位置のブロックの動きベクトルをのみをベクトル予測値としているため、局所的な動きベクトルの変化に影響されてしまう。このため、動きベクトルの変化の大勢を反映した予測値を得ることが困難であり、動きベクトルのノイズの影響を受けやすい。
【００１４】
本発明は、上述の課題を解決するために成されたものであり、符号化及び復号の効率及び精度を向上させることを目的とする。
【課題を解決するための手段】
【００１５】
上述の課題を解決するために、本発明の動画像符号化装置は、フレーム画像信号の時間系列で構成される入力動画像信号を複数の処理対象領域に分割する領域分割手段と、前記処理対象領域の動きベクトルを検出する動き検出手段と、前記処理対象領域に対する予測信号を生成する予測信号生成手段と、前記予測信号と前記処理対象領域信号との残差信号を生成する残差信号生成手段と、前記残差信号と前記動きベクトルを符号化して圧縮データを生成する符号化手段とを備え、前記予測信号生成手段は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、前記動きベクトルを符号化することを特徴とする。
【００１６】
この動画像符号化装置は、フレーム画像信号の時間系列で構成される入力動画像信号を複数の処理対象領域に分割し、前記処理対象領域の動きベクトルを検出し、前記処理対象領域に対する予測信号を生成し、前記予測信号と前記処理対象領域信号との残差信号を生成し、前記残差信号と前記動きベクトルを符号化して圧縮データを生成することができる。そして、予測信号生成手段は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトルを符号化することを特徴とする。これにより、動きベクトルの変化の大勢を反映した符号化が可能となり、符号化の効率及び精度を向上させることができる。
【００１７】
なお、以下では、対象ブロックを含むフレームと異なるフレームにあるブロックの動きベクトルを対象ブロックの動きベクトル予測値とすることを「時間方向から予測する」といい、対象ブロックを含むフレームにあるブロックの動きベクトルを対象ブロックの動きベクトル予測値をすることを「空間方向から予測する」という。
【００１８】
上記の予測信号生成手段は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値の決定、又は、動きベクトルの予測値決定方法の選択、を行う構成とすることが望ましい。
【００１９】
この場合、互いに異なるフレームにある複数のブロックの動きベクトルの類似性（例えば差分値、分散値、標準偏差などの類似性を示す情報）、又は、前記類似性及び対象ブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、対象ブロックの動きベクトルの予測値の決定、又は、予測値決定方法の選択を行うことができる。これにより、予測方法を自動的に決定できるため、予測方法を示す情報を送る必要が無く、符号量を削減できる。また、対象ブロックの動きベクトル予測値を時間方向から予測する際や、時間方向および空間方向から予測する際に、予測精度が高い動きベクトルを選択して予測値とすることで、精度よく予測することができる。
【００２０】
また、予測信号生成手段は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づく重み付けによって、動きベクトルの予測値を決定する構成とすることが望ましい。
【００２１】
この場合、上記重み付けによって、周辺の動きベクトルを有効利用することで、局所的な動きベクトルの変化の影響を少なくし、動きベクトルの変化の大勢を反映した予測値を得ることが可能となる。
【００２２】
また、予測信号生成手段は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値を示すための情報を符号化する際に用いる確率分布、又は、動きベクトルの予測値決定方法を示すための情報を符号化する際に用いる確率分布、を適応的に決定する構成とすることが望ましい。
【００２３】
この場合、対象ブロックの動きベクトル予測値を時間方向から予測する際や、時間方向および空間方向から予測する際にも、周辺環境に応じて各インデックスの確率分布を適応化し、適切な符号量で符号化することによって、符号化効率を高めることができる。
【００２４】
更に、予測信号生成手段は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトル差分値を符号化する際に用いる確率分布を適応的に決定する構成とすることが望ましい。
【００２５】
この場合、対象ブロックの動きベクトル予測値を時間方向から予測する際や、時間方向および空間方向から予測する際にも周辺環境に応じて動きベクトル差分値の発生確率分布を適応化し、適切な符号量で符号化することによって、符号化効率を高めることができる。
【００２６】
本発明の動画像符号化装置は、フレーム画像信号の時間系列で構成される入力動画像信号を複数の処理対象領域に分割する領域分割手段と、前記処理対象領域の動きベクトルを検出する動き検出手段と、前記処理対象領域に対する予測信号を生成する予測信号生成手段と、前記予測信号と前記処理対象領域信号との残差信号を生成する残差信号生成手段と、前記残差信号と前記動きベクトルを符号化して圧縮データを生成する符号化手段とを備え、前記予測信号生成手段は、符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、前記動きベクトルを符号化することを特徴とする。
【００２７】
この動画像符号化装置は、フレーム画像信号の時間系列で構成される入力動画像信号を複数の処理対象領域に分割し、前記処理対象領域の動きベクトルを検出し、前記処理対象領域に対する予測信号を生成し、前記予測信号と前記処理対象領域信号との残差信号を生成し、前記残差信号と前記動きベクトルを符号化して圧縮データを生成することができる。そして、予測信号生成手段は、符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、前記動きベクトルを符号化することを特徴とする。これにより、動きベクトルの変化の大勢を反映した符号化が可能となり、符号化の効率及び精度を向上させることができる。
【００２８】
なお、上記の「複数のブロック」は、符号化対象のブロックを含むフレームに対して１フレーム以上隔てたフレーム内のブロックを含んでもよい。
【００２９】
上記の予測信号生成手段は、符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値の決定、又は、動きベクトルの予測値決定方法の選択、を行う構成とすることが望ましい。
【００３０】
この場合、対象ブロックの動きベクトル予測値を空間方向から予測する際に、動きベクトルの変化の大勢を反映することで、精度よく予測することができる。また、ノイズや局所的な変化による影響を打ち消すこともできる。
【００３１】
また、予測信号生成手段は、符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づく重み付けによって、動きベクトルの予測値を決定する構成とすることが望ましい。
【００３２】
この場合、上記重み付けによって、周辺の動きベクトルを有効利用することで、局所的な動きベクトルの変化の影響を少なくし、動きベクトルの変化の大勢を反映した予測値を得ることが可能となる。
【００３３】
また、予測信号生成手段は、符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値を示すための情報を符号化する際に用いる確率分布、又は、動きベクトルの予測値決定方法を示すための情報を符号化する際に用いる確率分布、を適応的に決定する構成とすることが望ましい。
【００３４】
この場合、対象ブロックの動きベクトル予測値を空間方向から予測する際に、動きベクトルの予測値を示すための情報を符号化する際に用いる確率分布、又は、動きベクトルの予測値決定方法を示すための情報を符号化する際に用いる確率分布、を周辺環境に応じて適応化し、適切な符号量で符号化することによって、符号化効率を高めることができる。
【００３５】
更に、予測信号生成手段は、符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトル差分値を符号化する際に用いる確率分布を適応的に決定する構成とすることが望ましい。
【００３６】
この場合、対象ブロックの動きベクトル予測値を空間方向から予測する際に、動きベクトル差分値を符号化する際に用いる確率分布を、周辺環境に応じて適応化し、適切な符号量で符号化することによって、符号化効率を高めることができる。
【００３７】
上述の課題を解決するために、本発明の動画像復号装置は、圧縮データの中から処理対象領域に関する残差信号と動きベクトルの情報を抽出するデータ抽出手段と、前記処理対象領域に関する残差信号を再生残差信号に復元する残差信号復元手段と、前記処理対象領域に対する予測信号を生成する予測信号生成手段と、前記予測信号と前記再生残差信号を加算することによって、前記対象領域の画素信号を復元する画像復元手段を備え、前記予測信号生成手段は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、前記動きベクトルを復号することを特徴とする。
【００３８】
この動画像復号装置によれば、圧縮データの中から処理対象領域に関する残差信号と動きベクトルの情報を抽出し、前記処理対象領域に関する残差信号を再生残差信号に復元し、前記処理対象領域に対する予測信号を生成し、前記予測信号と前記再生残差信号を加算することによって、前記対象領域の画素信号を復元することができる。
【００３９】
そして、予測信号生成手段は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトルを復号することを特徴とする。これにより、動きベクトルの変化の大勢を反映した復号が可能となり、復号処理の効率及び精度を向上させることができる。
【００４０】
上記の予測信号生成手段は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値の決定、又は、動きベクトルの予測値決定方法の選択、を行う構成とすることが望ましい。
【００４１】
この場合、予測方法を自動的に決定できるため、予測方法を示す情報が入力される必要が無い。また、対象ブロックの動きベクトル予測値を時間方向から予測する際や、時間方向および空間方向から予測する際に、予測精度が高い動きベクトルを選択して予測値とすることで、精度よく予測することができる。
【００４２】
また、予測信号生成手段は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づく重み付けによって、動きベクトルの予測値を決定する構成とすることが望ましい。
【００４３】
この場合、上記重み付けによって、周辺の動きベクトルを有効利用することで、局所的な動きベクトルの変化の影響を少なくし、動きベクトルの変化の大勢を反映した予測値を得ることが可能となる。
【００４４】
また、予測信号生成手段は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値を示すための情報を復号する際に用いる確率分布、又は、動きベクトルの予測値決定方法を示すための情報を復号する際に用いる確率分布、を適応的に決定する構成とすることが望ましい。
【００４５】
この場合、動きベクトルの予測値を示すための情報を復号する際に用いる確率分布、又は、動きベクトルの予測値決定方法を示すための情報を復号する際に用いる確率分布を、周辺環境に応じて適応化し、動画像符号化装置と同じ確率分布を用いることで、データを抽出することができる。
【００４６】
更に、予測信号生成手段は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトル差分値を復号する際に用いる確率分布を適応的に決定する構成とすることが望ましい。
【００４７】
この場合、対象ブロックの動きベクトル予測値を時間方向から予測する際や、時間方向および空間方向から予測する際に、周辺環境に応じて動きベクトル差分値の発生確率分布を適応化し、動画像符号化装置と同じ確率分布を用いることで、データを抽出することができる。
【００４８】
本発明の動画像復号装置は、圧縮データの中から処理対象領域に関する残差信号と動きベクトルの情報を抽出するデータ抽出手段と、前記処理対象領域に関する残差信号を再生残差信号に復元する残差信号復元手段と、前記処理対象領域に対する予測信号を生成する予測信号生成手段と、前記予測信号と前記再生残差信号を加算することによって、前記対象領域の画素信号を復元する画像復元手段を備え、前記予測信号生成手段は、復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、前記動きベクトルを復号することを特徴とする。
【００４９】
この動画像復号装置によれば、圧縮データの中から処理対象領域に関する残差信号と動きベクトルの情報を抽出し、前記処理対象領域に関する残差信号を再生残差信号に復元し、前記処理対象領域に対する予測信号を生成し、前記予測信号と前記再生残差信号を加算することによって、前記対象領域の画素信号を復元することができる。
【００５０】
そして、予測信号生成手段は、復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトルを復号することを特徴とする。これにより、動きベクトルの変化の大勢を反映した復号が可能となり、復号処理の効率及び精度を向上させることができる。
【００５１】
上記の予測信号生成手段は、復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値の決定、又は、動きベクトルの予測値決定方法の選択、を行う構成とすることが望ましい。
【００５２】
この場合、予測方法を自動的に決定できるため、予測方法を示す情報が入力される必要が無い。また、対象ブロックの動きベクトル予測値を時間方向から予測する際や、時間方向および空間方向から予測する際に、予測精度が高い動きベクトルを選択して予測値とすることで、精度よく予測することができる。
【００５３】
また、予測信号生成手段は、復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づく重み付けによって、動きベクトルの予測値を決定する構成とすることが望ましい。
【００５４】
この場合、上記重み付けによって、周辺の動きベクトルを有効利用することで、局所的な動きベクトルの変化の影響を少なくし、動きベクトルの変化の大勢を反映した予測値を得ることが可能となる。
【００５５】
また、予測信号生成手段は、復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値を示すための情報を復号する際に用いる確率分布、又は、動きベクトルの予測値決定方法を示すための情報を復号する際に用いる確率分布、を適応的に決定する構成とすることが望ましい。
【００５６】
この場合、動きベクトルの予測値を示すための情報を復号する際に用いる確率分布、又は、動きベクトルの予測値決定方法を示すための情報を復号する際に用いる確率分布を、周辺環境に応じて適応化し、動画像符号化装置と同じ確率分布を用いることで、データを抽出することができる。
【００５７】
更に、予測信号生成手段は、復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトル差分値を復号する際に用いる確率分布を適応的に決定する構成とすることが望ましい。
【００５８】
この場合、対象ブロックの動きベクトル予測値を空間方向から予測する際に、周辺環境に応じて動きベクトル差分値の発生確率分布を適応化し、動画像符号化装置と同じ確率分布を用いることで、データを抽出することができる。
【００５９】
なお、本発明は、上記のように動画像符号化装置に係る発明および動画像復号装置に係る発明として記述できる他、以下のように動画像符号化方法に係る発明、動画像符号化プログラムに係る発明、動画像復号方法に係る発明、及び動画像復号プログラムに係る発明としても記述することができる。動画像符号化方法に係る発明および動画像符号化プログラムに係る発明は、動画像符号化装置に係る発明とはカテゴリーが異なるだけで、実質的に同一の発明であり、同様の作用及び効果を奏する。また、動画像復号方法に係る発明および動画像復号プログラムに係る発明は、動画像復号装置に係る発明とはカテゴリーが異なるだけで、実質的に同一の発明であり、同様の作用及び効果を奏する。
【００６０】
本発明に係る動画像符号化方法は、動画像符号化装置により実行される動画像符号化方法であって、フレーム画像信号の時間系列で構成される入力動画像信号を複数の処理対象領域に分割する領域分割ステップと、前記処理対象領域の動きベクトルを検出する動き検出ステップと、前記処理対象領域に対する予測信号を生成する予測信号生成ステップと、前記予測信号と前記処理対象領域信号との残差信号を生成する残差信号生成ステップと、前記残差信号と前記動きベクトルを符号化して圧縮データを生成する符号化ステップとを備え、前記予測信号生成ステップでは、前記動画像符号化装置は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、前記動きベクトルを符号化することを特徴とする。
【００６１】
上記動画像符号化方法における予測信号生成ステップでは、前記動画像符号化装置は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値を決定することが望ましい。
【００６２】
また、上記動画像符号化方法における予測信号生成ステップでは、前記動画像符号化装置は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値決定方法を決定することが望ましい。
【００６３】
また、上記動画像符号化方法における予測信号生成ステップでは、前記動画像符号化装置は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づく重み付けによって、動きベクトルの予測値を決定することが望ましい。
【００６４】
また、上記動画像符号化方法における予測信号生成ステップでは、前記動画像符号化装置は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値を示すための情報を符号化する際に用いる確率分布を適応的に決定することが望ましい。
【００６５】
また、上記動画像符号化方法における予測信号生成ステップでは、前記動画像符号化装置は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値決定方法を示すための情報を符号化する際に用いる確率分布を適応的に決定することが望ましい。
【００６６】
また、上記動画像符号化方法における予測信号生成ステップでは、前記動画像符号化装置は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および符号化対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトル差分値を符号化する際に用いる確率分布を適応的に決定することが望ましい。
【００６７】
本発明に係る動画像符号化方法は、動画像符号化装置により実行される動画像符号化方法であって、フレーム画像信号の時間系列で構成される入力動画像信号を複数の処理対象領域に分割する領域分割ステップと、前記処理対象領域の動きベクトルを検出する動き検出ステップと、前記処理対象領域に対する予測信号を生成する予測信号生成ステップと、前記予測信号と前記処理対象領域信号との残差信号を生成する残差信号生成ステップと、前記残差信号と前記動きベクトルを符号化して圧縮データを生成する符号化ステップとを備え、前記予測信号生成ステップでは、前記動画像符号化装置は、符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、前記動きベクトルを符号化することを特徴とする。
【００６８】
上記動画像符号化方法における予測信号生成ステップでは、前記動画像符号化装置は、符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値を決定することが望ましい。
【００６９】
また、上記動画像符号化方法における予測信号生成ステップでは、前記動画像符号化装置は、符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値決定方法を決定することが望ましい。
【００７０】
また、上記動画像符号化方法における予測信号生成ステップでは、前記動画像符号化装置は、符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づく重み付けによって、動きベクトルの予測値を決定することが望ましい。
【００７１】
また、上記動画像符号化方法における予測信号生成ステップでは、前記動画像符号化装置は、符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値を示すための情報を符号化する際に用いる確率分布を適応的に決定することが望ましい。
【００７２】
また、上記動画像符号化方法における予測信号生成ステップでは、前記動画像符号化装置は、符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値決定方法を示すための情報を符号化する際に用いる確率分布を適応的に決定することが望ましい。
【００７３】
また、上記動画像符号化方法における予測信号生成ステップでは、前記動画像符号化装置は、符号化対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトル差分値を符号化する際に用いる確率分布を適応的に決定することが望ましい。
【００７４】
本発明に係る動画像復号方法は、動画像復号装置により実行される動画像復号方法であって、圧縮データの中から処理対象領域に関する残差信号と動きベクトルの情報を抽出するデータ抽出ステップと、前記処理対象領域に関する残差信号を再生残差信号に復元する残差信号復元ステップと、前記処理対象領域に対する予測信号を生成する予測信号生成ステップと、前記予測信号と前記再生残差信号を加算することによって、前記対象領域の画素信号を復元する画像復元ステップを備え、前記予測信号生成ステップでは、前記動画像復号装置は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、前記動きベクトルを復号することを特徴とする。
【００７５】
上記動画像復号方法における予測信号生成ステップでは、前記動画像復号装置は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値を決定することが望ましい。
【００７６】
また、上記動画像復号方法における予測信号生成ステップでは、前記動画像復号装置は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値決定方法を決定することが望ましい。
【００７７】
また、上記動画像復号方法における予測信号生成ステップでは、前記動画像復号装置は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づく重み付けによって、動きベクトルの予測値を決定することが望ましい。
【００７８】
また、上記動画像復号方法における予測信号生成ステップでは、前記動画像復号装置は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値を示すための情報を復号する際に用いる確率分布を適応的に決定することが望ましい。
【００７９】
また、上記動画像復号方法における予測信号生成ステップでは、前記動画像復号装置は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値決定方法を示すための情報を復号する際に用いる確率分布を適応的に決定することが望ましい。
【００８０】
また、上記動画像復号方法における予測信号生成ステップでは、前記動画像復号装置は、互いに異なるフレーム内にある複数のブロックの動きベクトルの類似性、又は、前記類似性および復号対象のブロックと同じフレーム内にある複数のブロックの動きベクトルの類似性に基づいて、動きベクトル差分値を復号する際に用いる確率分布を適応的に決定することが望ましい。
【００８１】
本発明に係る動画像復号方法は、動画像復号装置により実行される動画像復号方法であって、圧縮データの中から処理対象領域に関する残差信号と動きベクトルの情報を抽出するデータ抽出ステップと、前記処理対象領域に関する残差信号を再生残差信号に復元する残差信号復元ステップと、前記処理対象領域に対する予測信号を生成する予測信号生成ステップと、前記予測信号と前記再生残差信号を加算することによって、前記対象領域の画素信号を復元する画像復元ステップを備え、前記予測信号生成ステップでは、前記動画像復号装置は、復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、前記動きベクトルを復号することを特徴とする。
【００８２】
上記動画像復号方法における動き予測信号生成ステップでは、前記動画像復号装置は、復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値を決定することが望ましい。
【００８３】
また、上記動画像復号方法における予測信号生成ステップでは、前記動画像復号装置は、復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値決定方法を決定することが望ましい。
【００８４】
また、上記動画像復号方法における予測信号生成ステップでは、前記動画像復号装置は、復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づく重み付けによって、動きベクトルの予測値を決定することが望ましい。
【００８５】
また、上記動画像復号方法における予測信号生成ステップでは、前記動画像復号装置は、復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値を示すための情報を復号する際に用いる確率分布を適応的に決定することが望ましい。
【００８６】
また、上記動画像復号方法における動き予測信号生成ステップでは、前記動画像復号装置は、復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトルの予測値決定方法を示すための情報を復号する際に用いる確率分布を適応的に決定することが望ましい。
【００８７】
また、上記動画像復号方法における予測信号生成ステップでは、前記動画像復号装置は、復号対象のブロックと同じフレーム内で対象ブロックに対して１ブロック以上隔てたブロックを含む複数のブロックの動きベクトルの類似性に基づいて、動きベクトル差分値を復号する際に用いる確率分布を適応的に決定することが望ましい。
【００８８】
本発明に係る動画像符号化プログラムは、コンピュータを、前述したいずれか１つの態様の動画像符号化装置として機能させることを特徴とする。
【００８９】
本発明に係る動画像復号プログラムは、コンピュータを、前述したいずれか１つの態様の動画像復号装置として機能させることを特徴とする。
【発明の効果】
【００９０】
本発明によれば、符号化の効率及び精度を向上させることができる。また、復号の効率及び精度を向上させることができる。
【図面の簡単な説明】
【００９１】
【図１】第１実施形態にかかる動画像符号化装置の一例を示す概略図である。
【図２】第１実施形態における動き予測器の動作の説明に用いる模式図である。
【図３】第１実施形態における動き予測器の動作を示すフローチャートである。
【図４】第１実施形態における動き予測器の動作を示すフローチャートである。
【図５】第１実施形態における動き予測器の動作を示すフローチャートである。
【図６】第１実施形態における動き予測器の動作の説明に用いる模式図である。
【図７】第１実施形態における動き予測器の動作を示すフローチャートである。
【図８】第１実施形態における動き予測器の動作の説明に用いる模式図である。
【図９】第１実施形態における動き予測器の動作を示すフローチャートである。
【図１０】第１実施形態における動き予測器の動作の説明に用いる模式図である。
【図１１】第１実施形態における動き予測器の動作を示すフローチャートである。
【図１２】第２実施形態にかかる動画像符号化装置の一例を示す概略図である。
【図１３】第２実施形態における動き予測器の動作の説明に用いる模式図である。
【図１４】第２実施形態における動き予測器の動作を示すフローチャートである。
【図１５】第２実施形態における確率切替信号生成器の動作を示すフローチャートである。
【図１６】第２実施形態における動き予測器の動作の説明に用いる模式図である。
【図１７】第２実施形態における動き予測器の動作を示すフローチャートである。
【図１８】第２実施形態における確率切替信号生成器の動作を示すフローチャートである。
【図１９】第２実施形態における動き予測器の動作の説明に用いる模式図である。
【図２０】第２実施形態における動き予測器の動作を示すフローチャートである。
【図２１】第２実施形態における確率切替信号生成器の動作を示すフローチャートである。
【図２２】第３実施形態にかかる動画像符号化装置の一例を示す概略図である。
【図２３】第３実施形態における確率切替信号生成器の動作を示すフローチャートである。
【図２４】第３実施形態における確率切替信号生成器の動作を示すフローチャートである。
【図２５】第３実施形態における確率切替信号生成器の動作を示すフローチャートである。
【図２６】第４実施形態にかかる動画像復号装置の一例を示す概略図である。
【図２７】第４実施形態における動き予測器の動作の説明に用いる模式図である。
【図２８】第４実施形態における動き予測器の動作を示すフローチャートである。
【図２９】第４実施形態における動き予測器の動作を示すフローチャートである。
【図３０】第４実施形態における動き予測器の動作を示すフローチャートである。
【図３１】第４実施形態における動き予測器の動作の説明に用いる模式図である。
【図３２】第４実施形態における動き予測器の動作を示すフローチャートである。
【図３３】第４実施形態における動き予測器の動作の説明に用いる模式図である。
【図３４】第４実施形態における動き予測器の動作を示すフローチャートである。
【図３５】第４実施形態における動き予測器の動作の説明に用いる模式図である。
【図３６】第４実施形態における動き予測器の動作を示すフローチャートである。
【図３７】第５実施形態にかかる動画像復号装置の一例を示す概略図である。
【図３８】第５実施形態における動き予測器の動作の説明に用いる模式図である。
【図３９】第５実施形態における動き予測器の動作を示すフローチャートである。
【図４０】第５実施形態における確率切替信号生成器の動作を示すフローチャートである。
【図４１】第５実施形態における動き予測器の動作の説明に用いる模式図である。
【図４２】第５実施形態における動き予測器の動作を示すフローチャートである。
【図４３】第５実施形態における確率切替信号生成器の動作を示すフローチャートである。
【図４４】第５実施形態における動き予測器の動作の説明に用いる模式図である。
【図４５】第５実施形態における動き予測器の動作を示すフローチャートである。
【図４６】第５実施形態における確率切替信号生成器の動作を示すフローチャートである。
【図４７】第６実施形態にかかる動画像復号装置の一例を示す概略図である。
【図４８】第６実施形態における確率切替信号生成器の動作を示すフローチャートである。
【図４９】第６実施形態における確率切替信号生成器の動作を示すフローチャートである。
【図５０】第６実施形態における確率切替信号生成器の動作を示すフローチャートである。
【図５１】第１実施形態にかかる動画像符号化プログラムのモジュール図である。
【図５２】第２実施形態にかかる動画像符号化プログラムのモジュール図である。
【図５３】第３実施形態にかかる動画像符号化プログラムのモジュール図である。
【図５４】第４実施形態にかかる動画像復号プログラムのモジュール図である。
【図５５】第５実施形態にかかる動画像復号プログラムのモジュール図である。
【図５６】第６実施形態にかかる動画像復号プログラムのモジュール図である。
【図５７】第１実施形態にて、重み付けによる周辺の動きベクトル利用方法を図２のブロックに適用した例を示すフローチャートである。
【図５８】第１実施形態にて、重み付けによる周辺の動きベクトル利用方法を図６のブロックに適用した例を示すフローチャートである。
【図５９】第１実施形態にて、重み付けによる周辺の動きベクトル利用方法を図８のブロックに適用した例を示すフローチャートである。
【図６０】第４実施形態にて、重み付けによる周辺の動きベクトル利用方法を図２７のブロックに適用した例を示すフローチャートである。
【図６１】第４実施形態にて、重み付けによる周辺の動きベクトル利用方法を図３１のブロックに適用した例を示すフローチャートである。
【図６２】第４実施形態にて、重み付けによる周辺の動きベクトル利用方法を図３３のブロックに適用した例を示すフローチャートである。
【図６３】記録媒体に記録されたプログラムを実行するためのコンピュータのハードウェア構成を示す図である。
【図６４】記録媒体に記憶されたプログラムを実行するためのコンピュータの斜視図である。
【発明を実施するための形態】
【００９２】
本発明の実施形態に係る動画像符号化装置及び動画像復号装置について図面を参照して説明する。なお、各図において、同一要素には同一符号を付して重複する説明を省略する。
【００９３】
［第１実施形態］
図１を用いて、本発明に係る動画像符号化装置１０について説明する。動画像符号化装置１０は、機能的な構成要素として、図１に示すように、ブロック分割器１０１と、フレームメモリ１０２と、動き検出器１０３と、予測信号生成器１０４と、動きベクトルメモリ１０５と、減算器１０６と、変換器１０７と、量子化器１０８と、逆量子化器１０９と、逆変換器１１０と、加算器１１１と、動き予測器１１２と、減算器１１３と、エントロピー符号化器１１４とを備えて構成される。
【００９４】
動画像符号化装置１０に入力される入力映像信号（動画像信号）は、フレーム単位の画像信号（以下「フレーム画像信号」という）の時間系列で構成されている。
【００９５】
ブロック分割器１０１は、ラインL１０１を経由して入力された入力映像信号の符号化対象となるフレーム画像信号を複数の領域（ブロック）に分割し、ラインL１０２を経由して符号化対象のブロック（以下「対象ブロック」という）の画像信号を出力する。本実施形態では８×８の画素からなるブロックに分割するが、それ以外の大きさまたは形に分割してもよい。このブロック単位で以下の符号化処理が行われる。
【００９６】
フレームメモリ１０２は、ラインL１０３を経由して入力される過去に符号化済みのフレーム画像信号（以下「参照フレーム画像信号」という）を格納し、必要に応じてラインL１０４を経由して出力する。
【００９７】
動き検出器１０３は、ラインL１０２を経由して入力される対象ブロックの画像信号のパターンに類似した画像信号パターンを、ラインL１０４を経由して入力される参照フレーム画像信号から所定範囲内で探索し、両画像信号パターン間の空間的な変位量である動きベクトルを検出し、ラインL１０５を経由して出力する。また、その動きベクトルが参照するフレームの番号（以下「参照フレーム番号」という）を検出し、ラインL１１５を経由して出力する。
【００９８】
予測信号生成器１０４は、ラインL１０５を経由して入力される対象ブロックの動きベクトル信号値とラインL１１５を経由して入力される参照フレーム番号と、ラインL１０４を経由して入力される参照フレーム画像信号から、対象ブロックに対する予測画像信号を生成し、ラインL１０６を経由して出力する。
【００９９】
動きベクトルメモリ１０５は、過去に符号化済みの動きベクトルや参照フレーム番号と併せて、ラインL１０５を経由して入力される動きベクトルとラインL１１５を経由して入力される参照フレーム番号を格納し、必要に応じてラインL１１２を経由して出力する。
【０１００】
減算器１０６は、ラインL１０２を経由して入力された対象ブロックの画像信号から、ラインL１０６を経由して入力された対象ブロックに対する予測画像信号を減算し、残差信号を生成し、ラインL１０７を経由して出力する。
【０１０１】
変換器１０７は、ラインL１０７を経由して入力された残差信号を直交変換し、ラインL１０８を経由して変換係数を出力する。
【０１０２】
量子化器１０８は、ラインL１０８を経由して入力された変換係数を量子化し、ラインL１０９を経由して量子化された変換係数を出力する。
【０１０３】
逆量子化器１０９は、ラインL１０９を経由して入力された量子化された変換係数を逆量子化し、ラインL１１０を経由して復元された変換係数を出力する。
【０１０４】
逆変換器１１０は、ラインL１１０を経由して入力された変換係数を逆直交変換し、ラインL１１１を経由して復元された残差信号を出力する。
【０１０５】
加算器１１１は、ラインL１１１を経由して入力された残差信号と、ラインL１０６を経由して入力された対象ブロックに対する予測画像信号を加算し、対象ブロックの画像信号を復元し、ラインL１０３を経由して出力する。
【０１０６】
動き予測器１１２は、ラインL１１２を経由して入力される過去に符号化済みのブロックの動きベクトルと、それに対応した参照フレーム番号とラインL１１５を経由して入力される対象ブロックの参照フレーム番号から、後述するフローに従って対象ブロックの動きベクトル予測値を算出し、ラインL１１３を経由して出力する。
【０１０７】
減算器１１３は、ラインL１０５を経由して入力された対象ブロックの動きベクトル値から、ラインL１１３を経由して入力された対象ブロックの動きベクトル予測値を減算し、動きベクトル差分値を生成する。そしてラインL１１４を経由して動きベクトル差分値を出力する。
【０１０８】
エントロピー符号化器１１４は、ラインL１０９を経由して入力された量子化された変換係数とラインL１１４を経由して入力された動きベクトル差分値とラインL１１５を経由して入力された対象ブロックの参照フレーム番号を符号化し、多重化したうえで、圧縮ストリームをラインL１１６に出力する。
【０１０９】
次に、図２を参照して動き予測器１１２について詳細に説明する。図２は、動き予測器１１２における動きベクトル予測値を決定する手順を説明するための模式図である。
【０１１０】
図２で、対象ブロックをHとし、フレームF００１はブロックHを含むフレームである。フレームF００２は既に符号化済みのフレームで、フレームF００１とは時間方向で隣り合うフレームである。
【０１１１】
フレームF００１において、ブロックDをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックEをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０１１２】
フレームF００２において、ブロックAはブロックHの最も左上の画素と同じ空間位置の画素を含むブロックとする。ブロックBをブロックAの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックAの最も左上の画素の真左の画素を含むブロックとする。
【０１１３】
図３は、動き予測器１１２における動きベクトル予測値を決定する手順を説明するためのフローチャートである。
【０１１４】
まず動き予測器１１２は、ラインL１１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、E、Fの動きベクトルと対応する参照フレーム番号とを取得する（ステップＳ００１）。
【０１１５】
なおステップＳ００１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０１１６】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、下記式（１）によって与えられるベクトルである。
【数１】
0005638581.tif 000002
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０１１７】
また、ステップＳ００１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０１１８】
続いて、ブロックBの動きベクトルとブロックEの動きベクトルの差分、ブロックCの動きベクトルとブロックFの動きベクトルの差分が算出される（ステップＳ００２）。
【０１１９】
次に、ステップＳ００２で算出された２通りの差分のうち、少なくとも１つが閾値以下かどうかが判定される（ステップＳ００３）。
【０１２０】
ステップＳ００３での判定の結果、２通りの差分のうち、少なくとも１つが閾値以下ならば（ステップＳ００３：YES）、処理をステップＳ００４に進める。２通りの差分がともに閾値より大きいならば（ステップＳ００３：NO）、処理をステップＳ００５に進める。
【０１２１】
ステップＳ００４では、ブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定される。
【０１２２】
ステップＳ００５では、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定される。
【０１２３】
最後に、決定された値PMVi(i=x,y)を出力し（ステップＳ００６）、処理を終了する。
【０１２４】
なお、ステップＳ００３における判定は２通りの差分の両方が閾値以下かどうかを判定しても良い。
【０１２５】
また、ステップＳ００５でブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値としたが、動きベクトルをゼロベクトル（すなわち、動きベクトルの予測をしない）としてもよい。あらかじめ決められた任意の動きベクトルを予測値としてもよい。
【０１２６】
また、動き予測器１１２における動きベクトル予測値の決定は、図４のフローチャートに従ってもよい。
【０１２７】
図４では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０１２８】
まず動き予測器１１２は、ラインL１１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルと対応する参照フレーム番号を取得する（ステップＳ１０１）。
【０１２９】
なおステップＳ１０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０１３０】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０１３１】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０１３２】
また、ステップＳ１０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０１３３】
続いて、ブロックBの動きベクトルとブロックEの動きベクトルの差分、ブロックCの動きベクトルとブロックFの動きベクトルの差分、ブロックDの動きベクトルとブロックEの動きベクトルの差分、ブロックDの動きベクトルとブロックFの動きベクトルの差分の４通りが算出される（ステップＳ１０２）。
【０１３４】
次に、ステップＳ１０２で算出された４通りの差分のうち、どの組み合わせの差分が最小のものであるかが判定される。（ステップＳ１０３）。
【０１３５】
ステップＳ１０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックBとブロックEである場合にはブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定される。ブロックCとブロックFである場合には、ブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定される。ブロックDとブロックEである場合には、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定される。ブロックDとブロックFである場合には、ブロックHの動きベクトル予測値はブロックEの動きベクトルと同じ値に決定される（ステップＳ１０４）。
【０１３６】
最後に、ステップＳ１０４で決定された値PMVi(i=x,y)を出力し（ステップＳ１０５）、処理を終了する。
【０１３７】
なお、図４のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を同時に決定してもよい。
【０１３８】
また、動き予測器１１２における動きベクトル予測値を決定する手順は図５で説明されるフローチャートに従ってもよい。動きベクトルｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０１３９】
まず動き予測器１１２は、ラインL１１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルと対応する参照フレーム番号を取得する（ステップＳ２０１）。
【０１４０】
なおステップＳ２０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０１４１】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０１４２】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０１４３】
また、ステップＳ２０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０１４４】
続いて、ブロックDの動きベクトルとブロックEの動きベクトルの差分、およびブロックDの動きベクトルとブロックFの動きベクトルの差分が算出され、前者のほうが大きい場合（ステップＳ２０２：YES）は処理をステップＳ２０３に進める。それに該当しない場合（ステップＳ２０２：NO）は処理をステップＳ２０４に進める（ステップＳ２０２）。
【０１４５】
ステップＳ２０３では、ブロックEの動きベクトルとブロックBの動きベクトルの差分、およびブロックDの動きベクトルとブロックFの動きベクトルの差分が算出され、前者のほうが大きい場合（ステップＳ２０３：YES）は処理をステップＳ２０５に進める。それに該当しない場合（ステップＳ２０３：NO）は処理をステップＳ２０６に進める。
【０１４６】
ステップＳ２０４では、ブロックCの動きベクトルとブロックFの動きベクトルの差分、およびブロックCの動きベクトルとブロックAの動きベクトルの差分が算出され、前者のほうが大きい場合（ステップＳ２０４：YES）は処理をステップＳ２０７に進める。それに該当しない場合（ステップＳ２０４：NO）は処理をステップＳ２０８に進める。
【０１４７】
ステップＳ２０５では、ブロックHの動きベクトル予測値はブロックEの動きベクトルと同じ値に決定される。
【０１４８】
ステップＳ２０６では、ブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定される。
【０１４９】
ステップＳ２０７では、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定される。
【０１５０】
ステップＳ２０８では、ブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定される。
【０１５１】
最後に、決定された動きベクトル予測値PMVi(i=x,y)を出力し（ステップＳ２０９）、処理を終了する。
【０１５２】
なお、図５のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を同時に決定してもよい。
【０１５３】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図２に示されるブロックの位置関係は以下のように定めてもよい。その際の動きベクトル予測値を決定する手順は図３あるいは図４あるいは図５で説明されるフローチャートのどれに従ってもよい。
【０１５４】
対象ブロックをHとし、フレームF００１はブロックHを含むフレームである。フレームF００２は既に符号化済みのフレームである。
【０１５５】
フレームF００１において、ブロックDをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックEをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０１５６】
フレームF００２において、ブロックAはブロックDの動きベクトルが参照しているブロック、またはブロックEの動きベクトルが参照しているブロック、またはブロックFの動きベクトルが参照しているブロックとする。その際もブロックBをブロックAの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックAの最も左上の画素の真左の画素を含むブロックとする。
【０１５７】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックDが参照するブロック、あるいはブロックEが参照するブロック、あるいはブロックFが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（DあるいはEあるいはF）が参照するブロックの動きベクトルとして用いるものとする。
【０１５８】
また、動き予測器１１２における動きベクトルの予測値の決定は、以下に示すように行われても良い。
【０１５９】
図６は、動き予測器１１２における動きベクトルの予測値の決定手順の説明に用いる模式図である。
【０１６０】
図６で、対象ブロックをHとし、フレームF１０１はブロックHを含むフレームである。フレームF１０２は既に符号化済みのフレームで、フレームF１０１とは時間方向で隣り合うフレームである。フレームF１０３は既に符号化済みのフレームで、フレームF１０２とは時間方向で隣り合うフレームである。
【０１６１】
フレームF１０１において、ブロックEをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０１６２】
フレームF１０２において、ブロックDはブロックHの最も左上の画素と同じ空間位置の画素を含むブロック、ブロックBをブロックDの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックDの最も左上の画素の真左の画素を含むブロックとする。
【０１６３】
フレームF１０３において、ブロックAはブロックDの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０１６４】
図７は、動き予測器１１２における動きベクトル予測値を決定する手順を説明するためのフローチャートである。
【０１６５】
図７では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０１６６】
まず動き予測器１１２は、ラインL１１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルと対応する参照フレーム番号を取得する（ステップＳ３０１）。
【０１６７】
なおステップＳ３０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０１６８】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０１６９】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０１７０】
また、ステップＳ３０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０１７１】
続いて、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分、ブロックAの動きベクトルとブロックDの動きベクトルの差分、ブロックEの動きベクトルとブロックFの動きベクトルの差分、ブロックEの動きベクトルとブロックGの動きベクトルの差分の５通りが算出される（ステップＳ３０２）。
【０１７２】
次に、ステップＳ３０２で算出された５通りの差分のうち、どの組み合わせの差分が最小のものであるかが判定される。（ステップＳ３０３）。
【０１７３】
ステップＳ３０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定される。ブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定される。ブロックAとブロックDである場合には、ブロックHの動きベクトル予測値はブロックDの動きベクトルと同じ値に決定される。ブロックEとブロックFである場合には、ブロックHの動きベクトル予測値はブロックGの動きベクトルと同じ値に決定される。ブロックEとブロックGである場合には、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定される。（ステップＳ３０４）。
【０１７４】
最後に、ステップＳ３０４で決定された値PMVi(i=x,y)を出力し（ステップＳ３０５）、処理を終了する。
【０１７５】
なお、図７のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を同時に決定してもよい。
【０１７６】
また、ステップＳ３０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分、ブロックAの動きベクトルとブロックDの動きベクトルの差分の３通りでもよい。その際もステップＳ３０３で最小となる組み合わせが判定され、ステップＳ３０４では、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定される。ブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定される。ブロックAとブロックDである場合には、ブロックHの動きベクトル予測値はブロックDの動きベクトルと同じ値に決定される。
【０１７７】
また、ステップＳ３０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分の２通りでもよい。その際もステップＳ３０３で最小となる組み合わせが判定され、ステップＳ３０４では、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定される。ブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定される。
【０１７８】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図６に示されるブロックの位置関係は以下のように定めてもよい。
【０１７９】
対象ブロックをHとし、フレームF１０１はブロックHを含むフレームである。フレームF１０２は既に符号化済みのフレームである。フレームF１０３は既に符号化済みのフレームである。
【０１８０】
フレームF１０１において、ブロックEをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０１８１】
フレームF１０２において、ブロックDはブロックEの動きベクトルが参照しているブロック、またはブロックFの動きベクトルが参照しているブロック、またはブロックGの動きベクトルが参照しているブロックとする。その際もブロックBをブロックDの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックDの最も左上の画素の真左の画素を含むブロックとする。
【０１８２】
フレームF１０３において、ブロックAはブロックDの動きベクトルが参照しているブロックとする。
【０１８３】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックEが参照するブロック、あるいはブロックFが参照するブロック、あるいはブロックGが参照するブロック、あるいはブロックDが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（EあるいはFあるいはGあるいはD）が参照するブロックの動きベクトルとして用いるものとする。
【０１８４】
また、動き予測器１１２における動きベクトルの予測値の決定は、以下に示すように空間的に１画素以上隔てられたブロックの動きベクトルや、時間方向で１フレーム以上隔てられたフレームにあるブロックの動きベクトルに基づいて行われてもよい。
【０１８５】
このような動きベクトルの予測値の決定方法は、動きベクトルの大勢を反映した予測をすることで、高精度の動きベクトル予測値を得る効果がある。また、ノイズや局所的な変化による影響を打ち消す効果もある。
【０１８６】
また、動き予測器１１２における動きベクトルの予測値は、過去に符号化済みのブロックの動きベクトルをそのまま引用して動きベクトル予測値とする代わりに、以下に示すように複数ある動きベクトルの決定方法の中からひとつを選択して、その決定方法にしたがって決定してもよい。
【０１８７】
図８は、動き予測器１１２における動きベクトルの予測値の決定手順の説明に用いる模式図である。
【０１８８】
図８で、対象ブロックをJとし、フレームF２０１はブロックJを含むフレームである。フレームF２０２は既に符号化済みのフレームで、フレームF２０１とは時間方向で隣り合うフレームである。フレームF２０３は既に符号化済みのフレームで、フレームF２０２とは時間方向で隣り合うフレームである。フレームF２０４は既に符号化済みのフレームで、フレームF２０３とは時間方向で隣り合うフレームである。
【０１８９】
フレームF２０１において、ブロックIをブロックJの最も左上の画素の真上の画素を含むブロック、ブロックHをブロックIの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックJの最も左上の画素の真左の画素を含むブロック、ブロックEをブロックFの最も左上の画素の真左の画素を含むブロック、ブロックDをブロックEの最も左上の画素の真左の画素を含むブロックとする。
【０１９０】
フレームF２０２において、ブロックCはブロックJの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０１９１】
フレームF２０３において、ブロックBはブロックCの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０１９２】
フレームF２０４において、ブロックAはブロックBの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０１９３】
図９は、動き予測器１１２における動きベクトル予測値を決定する手順を説明するためのフローチャートである。動きベクトルｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０１９４】
まず動き予測器１１２は、ラインL１１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、Iの動きベクトルと対応する参照フレーム番号とラインL１１５を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ４０１）。
【０１９５】
なおステップＳ４０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０１９６】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、Iの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０１９７】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０１９８】
また、ステップＳ４０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０１９９】
続いて、ブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの分散、ブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルの分散、ブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルの分散、の３組の分散をそれぞれ算出する。（ステップＳ４０２）
次に、ステップＳ４０２で算出された３通りの分散のうち、どの組み合わせの分散が最小のものであるかが判定される。（ステップＳ４０３）。
【０２００】
ステップＳ４０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックAとブロックBとブロックCである場合には、ブロックJの動きベクトル予測値はブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの平均値に決定される。ブロックDとブロックEとブロックFである場合には、ブロックJの動きベクトル予測値はブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルの平均値に決定される。ブロックGとブロックHとブロックIである場合には、ブロックJの動きベクトル予測値はブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルの平均値に決定される（ステップＳ４０４）。
【０２０１】
最後に、ステップＳ４０４で決定された値PMVi(i=x,y)を出力し（ステップＳ４０５）、処理を終了する。
【０２０２】
なお、図９のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を同時に決定してもよい。
【０２０３】
また、ステップＳ４０２において動きベクトルの類似性をあらわす値として分散を用いたが、標準偏差や、各ブロック間の動きベクトルの差分値や、それら複数の差分値の平均を用いてもよい。
【０２０４】
ステップＳ４０４において、３つの動きベクトルの平均値を動きベクトルの予測値としたが、３つの動きベクトルの中間値、あるいはいずれかひとつの値を予測値としてもよい。
【０２０５】
図９では時間方向、空間方向にそれぞれ連続する３ブロックの動きベクトルを参照して動きベクトル予測値の決定を行ったが、これは時間方向のみでもよい。またそれぞれの方向に２ブロックのみ、あるいは４ブロック以上のブロックを用いてもよい。また時間方向で隣り合うフレームのブロックと空間方向で１ブロック以上隔てたブロックを組み合わせて用いてもよい。
【０２０６】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図８に示されるブロックの位置関係は以下のように定めてもよい。
【０２０７】
対象ブロックをJとし、フレームF２０１はブロックJを含むフレームであり、フレームF２０２、F２０３、F２０４は既に符号化済みのフレームである。
【０２０８】
フレームF２０１において、ブロックIをブロックJの最も左上の画素の真上の画素を含むブロック、ブロックHをブロックIの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックJの最も左上の画素の真左の画素を含むブロック、ブロックEをブロックFの最も左上の画素の真左の画素を含むブロック、ブロックDをブロックEの最も左上の画素の真左の画素を含むブロックとする。
【０２０９】
フレームF２０２において、ブロックCはブロックIの動きベクトルが参照しているブロック、またはブロックFの動きベクトルが参照しているブロック、またはブロックJの最も左上の画素の真左上の画素を含むブロック（ブロックKとする）の動きベクトルが参照しているブロックとする。
【０２１０】
フレームF２０３において、ブロックBはブロックCの動きベクトルが参照しているブロックとする。
【０２１１】
フレームF２０４において、ブロックAはブロックBの動きベクトルが参照しているブロックとする。
【０２１２】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックI、ブロックF、ブロックK、ブロックC、ブロックBが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（IあるいはFあるいはKあるいはCあるいはB）が参照するブロックの動きベクトルとして用いるものとする。
【０２１３】
さらに、動き予測器１１２における動きベクトルの予測値の決定は、以下に示すように空間的に１画素以上隔てられたブロックの動きベクトル、または時間方向で１フレーム以上隔てられたフレームにあるブロックの動きベクトルに基づいて行われてもよい。
【０２１４】
このような動きベクトルの予測値の決定方法は、動きベクトルの大勢を反映した予測をすることで、高精度の動きベクトル予測値を得る効果がある。また、ノイズや局所的な変化による影響を打ち消す効果もある。
【０２１５】
また、動き予測器１１２における動きベクトルの予測値は、過去に符号化済みのブロックの動きベクトルをそのまま引用して動きベクトル予測値とする代わりに、以下に示すように複数ある動きベクトルの決定方法の中からひとつを選択して、その決定方法にしたがって決定してもよい。
【０２１６】
図１０は、動き予測器１１２における動きベクトルの予測値の決定手順の説明に用いる模式図である。
【０２１７】
図１０で、対象ブロックをMとし、フレームF３０１はブロックMを含むフレームである。フレームF３０２は既に符号化済みのフレームで、フレームF３０１とは時間方向で隣り合うフレームである。フレームF３０３は既に符号化済みのフレームで、フレームF３０２とは時間方向で隣り合うフレームである。フレームF３０４は既に符号化済みのフレームで、フレームF３０３とは時間方向で隣り合うフレームである。
【０２１８】
フレームF３０１において、ブロックIをブロックMの最も左上の画素の真上の画素を含むブロック、ブロックHをブロックIの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックMの最も左上の画素の真左の画素を含むブロック、ブロックEをブロックFの最も左上の画素の真左の画素を含むブロック、ブロックDをブロックEの最も左上の画素の真左の画素を含むブロックとする。また、ブロックKをブロックMの最も左上の画素の真左上の画素を含むブロック、ブロックLをブロックKの最も左上の画素の真上の画素を含むブロック、ブロックJをブロックMの最も右上の画素の真右上の画素を含むブロックとする。
【０２１９】
フレームF３０２において、ブロックCはブロックMの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０２２０】
フレームF３０３において、ブロックBはブロックCの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０２２１】
フレームF３０４において、ブロックAはブロックBの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０２２２】
図１１は、動き予測器１１２における動きベクトル予測値を決定する手順を説明するためのフローチャートである。
【０２２３】
まず動き予測器１１２は、ラインL１１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、I、J、K、Lの動きベクトルと対応する参照フレーム番号を取得する（ステップＳ５０１）。
【０２２４】
なおステップＳ５０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０２２５】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、I、J、K、Lの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０２２６】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０２２７】
また、ステップＳ５０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０２２８】
続いて、ブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルのx成分の分散、ブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルのx成分の分散、ブロックJの動きベクトルとブロックKの動きベクトルとブロックIの動きベクトルのx成分の分散、の３組のx成分の分散をそれぞれ算出する。（ステップＳ５０２）
次に、ステップＳ５０２で算出された３通りの分散のうち、どの組み合わせの分散が最小のものであるかが判定される。（ステップＳ５０３）。
【０２２９】
ステップＳ５０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックAとブロックBとブロックCである場合には、ブロックMの動きベクトル予測値のx成分はブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルのｘ成分の平均値に決定される。ブロックDとブロックEとブロックFである場合には、ブロックMの動きベクトル予測値のx成分はブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルのｘ成分の平均値に決定される。ブロックJとブロックKとブロックIである場合には、ブロックMの動きベクトル予測値のx成分はブロックJの動きベクトルとブロックKの動きベクトルとブロックIの動きベクトルのx成分の平均値に決定される（ステップＳ５０４）。
【０２３０】
続いて、ブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルのy成分の分散、ブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルのy成分の分散、ブロックLの動きベクトルとブロックKの動きベクトルとブロックFの動きベクトルのy成分の分散、の３組のy成分の分散をそれぞれ算出する。（ステップＳ５０５）
次に、ステップＳ５０５で算出された３通りの分散のうち、どの組み合わせの分散が最小のものであるかが判定される。（ステップＳ５０６）。
【０２３１】
ステップＳ５０６での判定の結果、もっとも小さい差分を与える組み合わせがブロックAとブロックBとブロックCである場合には、ブロックMの動きベクトル予測値のy成分はブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルのy成分の平均値に決定される。ブロックGとブロックHとブロックIである場合には、ブロックMの動きベクトル予測値のy成分はブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルのy成分の平均値に決定される。ブロックLとブロックKとブロックFである場合には、ブロックMの動きベクトル予測値のy成分はブロックLの動きベクトルとブロックKの動きベクトルとブロックFの動きベクトルのy成分の平均値に決定される（ステップＳ５０７）。
【０２３２】
最後に、ステップＳ５０７で決定された値PMVi(i=x,y)を出力し（ステップＳ５０８）、処理を終了する。
【０２３３】
また、ステップＳ５０２、ステップＳ５０５において動きベクトルの類似性をあらわす値として分散を用いたが、標準偏差や、各ブロック間の動きベクトルの差分値や、それら複数の差分値の平均を用いてもよい。
【０２３４】
ステップＳ５０４、ステップＳ５０７において、３つの動きベクトルの平均値を動きベクトルの予測値としたが、３つの動きベクトルの中間値、あるいはいずれかひとつの値を予測値としてもよい。
【０２３５】
図１１では時間方向、空間方向にそれぞれ連続する３ブロックの動きベクトルを参照して動きベクトル予測値の決定を行ったが、空間方向のみでもよい。またそれぞれの方向に２ブロックのみ、あるいは４ブロック以上のブロックを用いてもよい。また時間方向で隣り合うフレームのブロックと空間方向で１ブロック以上隔てたブロックを組み合わせて用いてもよい。
【０２３６】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図１０に示されるブロックの位置関係は以下のように定めてもよい。
【０２３７】
対象ブロックをMとし、フレームF３０１はブロックMを含むフレームであり、フレームF３０２、F３０３、F３０４は既に符号化済みのフレームである。
【０２３８】
フレームF３０１において、ブロックIをブロックMの最も左上の画素の真上の画素を含むブロック、ブロックHをブロックIの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックMの最も左上の画素の真左の画素を含むブロック、ブロックEをブロックFの最も左上の画素の真左の画素を含むブロック、ブロックDをブロックEの最も左上の画素の真左の画素を含むブロックとする。また、ブロックKをブロックMの最も左上の画素の真左上の画素を含むブロック、ブロックLをブロックKの最も左上の画素の真上の画素を含むブロック、ブロックJをブロックMの最も右上の画素の真右上の画素を含むブロックとする。
【０２３９】
フレームF３０２において、ブロックCはブロックIの動きベクトルが参照しているブロック、またはブロックKの動きベクトルが参照しているブロック、またはブロックFの動きベクトルが参照しているブロックとする。
【０２４０】
フレームF３０３において、ブロックBはブロックCの動きベクトルが参照しているブロックとする。
【０２４１】
フレームF３０４において、ブロックAはブロックBの動きベクトルが参照しているブロックとする。
【０２４２】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックI、ブロックK、ブロックF、ブロックC、ブロックBが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（IあるいはKあるいはFあるいはCあるいはB）が参照するブロックの動きベクトルとして用いるものとする。
【０２４３】
ところで、動きベクトル予測値を算出する際に、周辺にある過去に符号化済みの動きベクトルから一部の動きベクトルを選択するのではなく、以下のように重み付けによって周辺の動きベクトルを有効利用する方法を採用してもよい。この場合、重み付けによって周辺の動きベクトルを有効利用することで、局所的な動きベクトルの変化の影響を少なくし、動きベクトルの変化の大勢を反映した予測値を得ることができ、予測精度を高めることができる。
【０２４４】
以下では、重み付けによる周辺の動きベクトル利用方法を、(a)図２のブロックに適用した例、(b)図６のブロックに適用した例、(c)図８のブロックに適用した例を、順に説明する。
【０２４５】
まず、(a)図２のブロックに適用した例としては、例えば、図５７のフローチャートが挙げられる。即ち、動き予測器１１２における動きベクトル予測値を決定する手順は、図５７のフローチャートに従って実行すればよい。動きベクトルｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０２４６】
まず動き予測器１１２は、ラインL１１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルと対応する参照フレーム番号を取得する（ステップＳ３００１）。
【０２４７】
なおステップＳ３００１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０２４８】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０２４９】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０２５０】
また、ステップＳ３００１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０２５１】
続いて、ブロックBの動きベクトルとブロックEの動きベクトルの差分ＭＶiＤ＿０(i=x,y)、ブロックCの動きベクトルとブロックFの動きベクトルの差分ＭＶiＤ＿１(i=x,y)、ブロックDの動きベクトルとブロックEの動きベクトルの差分ＭＶiＤ＿２(i=x,y)、ブロックDの動きベクトルとブロックFの動きベクトルの差分ＭＶiＤ＿３(i=x,y)、が算出される（ステップＳ３００２）。
【０２５２】
次に、ステップＳ３００２で算出された各差分を変数とする関数Ｆを用いた以下の式（２）に基づいて、ブロックＡ、Ｆ、Ｅの動きベクトル全てを有効利用して、動きベクトル予測値PMVi(i=x,y)を算出する（ステップＳ３００３）。
【数２】
0005638581.tif 000003
最後に、算出された動きベクトル予測値PMVi(i=x,y)を出力し（ステップＳ３００４）、処理を終了する。
【０２５３】
なお、図５７のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を同時に決定してもよい。
【０２５４】
また、式（２）で用いられる関数Ｆとしては、例えば、変数（差分）の逆数を算出する関数を採用してもよい。この場合、例えばブロックBの動きベクトルとブロックEの動きベクトルの差分ＭＶiＤ＿０(i=x,y)が小さいとき、当該差分の逆数、即ち、大きな値がブロックＡの動きベクトルの重み付け係数となるので、ブロックＡの動きベクトルの重みを大きくすることができる。
【０２５５】
次に、(b)図６のブロックに適用した例としては、例えば、図５８のフローチャートが挙げられる。即ち、動き予測器１１２における動きベクトル予測値を決定する手順は、図５８のフローチャートに従って実行すればよい。動きベクトルｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０２５６】
まず動き予測器１１２は、ラインL１１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルと対応する参照フレーム番号を取得する（ステップＳ３１０１）。
【０２５７】
なおステップＳ３１０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０２５８】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０２５９】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０２６０】
また、ステップＳ３１０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０２６１】
続いて、ブロックBの動きベクトルとブロックFの動きベクトルの差分ＭＶiＤ＿０(i=x,y)、ブロックCの動きベクトルとブロックGの動きベクトルの差分ＭＶiＤ＿１(i=x,y)、ブロックAの動きベクトルとブロックDの動きベクトルの差分ＭＶiＤ＿２(i=x,y)、ブロックEの動きベクトルとブロックFの動きベクトルの差分ＭＶiＤ＿３(i=x,y)、ブロックEの動きベクトルとブロックGの動きベクトルの差分ＭＶiＤ＿４(i=x,y)の５通りが算出される（ステップＳ３１０２）。
【０２６２】
次に、ステップＳ３１０２で算出された各差分を変数とする関数Ｆを用いた以下の式（３）に基づいて、ブロックＢ、Ｃ、Ｄ、Ｇ、Ｆの動きベクトル全てを有効利用して、動きベクトル予測値PMVi(i=x,y)を算出する（ステップＳ３１０３）。
【数３】
0005638581.tif 000004
最後に、算出された動きベクトル予測値PMVi(i=x,y)を出力し（ステップＳ３１０４）、処理を終了する。
【０２６３】
なお、図５８のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を同時に決定してもよい。また、式（３）で用いられる関数Ｆとしては、例えば、変数（差分）の逆数を算出する関数を採用してもよい。この場合、例えばブロックBの動きベクトルとブロックＦの動きベクトルの差分ＭＶiＤ＿０(i=x,y)が小さいとき、当該差分の逆数、即ち、大きな値がブロックＢの動きベクトルの重み付け係数となるので、ブロックＢの動きベクトルの重みを大きくすることができる。
【０２６４】
また、ステップＳ３１０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分ＭＶiＤ＿０(i=x,y)、ブロックCの動きベクトルとブロックGの動きベクトルの差分ＭＶiＤ＿１(i=x,y)の２通りでもよい。その際、ステップＳ３１０３では、算出されない差分を変数とする関数Ｆ（ＭＶiＤ＿２(i=x,y)）、関数Ｆ（ＭＶiＤ＿３(i=x,y)）及び関数Ｆ（ＭＶiＤ＿４(i=x,y)）は０として動きベクトル予測値PMVi(i=x,y)を算出すればよい。この場合、空間方向の動きベクトルの差分を含まず、時間方向の動きベクトルの差分のみに基づいて動きベクトル予測値PMVi(i=x,y)を算出することができる。
【０２６５】
更に、ステップＳ３１０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分ＭＶiＤ＿０(i=x,y)、ブロックCの動きベクトルとブロックGの動きベクトルの差分ＭＶiＤ＿１(i=x,y)、ブロックAの動きベクトルとブロックDの動きベクトルの差分ＭＶiＤ＿２(i=x,y)の３通りでもよい。その際、ステップＳ３１０３では、算出されない差分を変数とする関数Ｆ（ＭＶiＤ＿３(i=x,y)）及び関数Ｆ（ＭＶiＤ＿４(i=x,y)）は０として動きベクトル予測値PMVi(i=x,y)を算出すればよい。この場合、対象ブロックから１フレーム以上隔てたブロック間での動きベクトルの差分を含んだ時間方向の動きベクトルの差分のみに基づいて動きベクトル予測値PMVi(i=x,y)を算出することができる。
【０２６６】
次に、(c)図８のブロックに適用した例としては、例えば、図５９のフローチャートが挙げられる。即ち、動き予測器１１２における動きベクトル予測値を決定する手順は、図５９のフローチャートに従って実行すればよい。動きベクトルｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０２６７】
まず動き予測器１１２は、ラインL１１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、Iの動きベクトルと対応する参照フレーム番号とラインL１１５を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ３２０１）。
【０２６８】
なおステップＳ３２０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０２６９】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、Iの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０２７０】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０２７１】
また、ステップＳ３２０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０２７２】
続いて、ブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの分散ＭＶiＶ＿０(i=x,y)、ブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルの分散ＭＶiＶ＿１(i=x,y)、ブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルの分散ＭＶiＶ＿２(i=x,y)、の３組の分散をそれぞれ算出する（ステップＳ３２０２）。次に、ステップＳ３２０２で算出された各分散を変数とする関数Ｆを用いた以下の式（４）に基づいて、ブロックＡ〜Ｉの９つの動きベクトル全てを有効利用して、動きベクトル予測値PMVi(i=x,y)を算出する（ステップＳ３２０３）。
【数４】
0005638581.tif 000005
最後に、算出された動きベクトル予測値PMVi(i=x,y)を出力し（ステップＳ３２０４）、処理を終了する。
【０２７３】
なお、図５９のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を同時に決定してもよい。また、式（４）で用いられる関数Ｆとしては、例えば、変数（分散）の逆数を算出する関数を採用してもよい。この場合、例えばブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの分散ＭＶiＶ＿０(i=x,y)が小さいとき、当該分散の逆数、即ち、大きな値がブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの平均値の重み付け係数となるので、ブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの平均値の重みを大きくすることができる。
【０２７４】
また、ステップＳ３２０２において動きベクトルの類似性をあらわす値として分散を用いたが、標準偏差や、各ブロック間の動きベクトルの差分値や、それら複数の差分値の平均を用いてもよい。
【０２７５】
また、ステップＳ３２０３において、３つの動きベクトルの平均値を動きベクトルの予測値としたが、３つの動きベクトルの中間値、あるいはいずれかひとつの値を予測値としてもよい。
【０２７６】
図５９では時間方向、空間方向にそれぞれ連続する３ブロックの動きベクトルを参照して動きベクトル予測値の決定を行ったが、これは時間方向のみでもよい。またそれぞれの方向に２ブロックのみ、あるいは４ブロック以上のブロックを用いてもよい。また時間方向で隣り合うフレームのブロックと空間方向で１ブロック以上隔てたブロックを組み合わせて用いてもよい。
【０２７７】
また、ステップＳ３２０２において算出する分散は、ブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルの分散ＭＶiＶ＿１(i=x,y)、ブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルの分散ＭＶiＶ＿２(i=x,y)、の２組のみでもよい。その際、ステップＳ３２０３では、算出されない分散を変数とする関数Ｆ（ＭＶiＶ＿０(i=x,y)）は０として動きベクトル予測値PMVi(i=x,y)を算出すればよい。この場合、対象ブロックから１ブロック以上隔てた複数ブロックを含む空間方向のみからの動きベクトル予測値PMVi(i=x,y)の算出を行うことができる。
【０２７８】
最後に、コンピュータを動画像符号化装置１０として動作させる動画像符号化プログラムについて説明する。図５１は、本実施形態に係る動画像符号化プログラムＰ１０の構成を示し、この動画像符号化プログラムＰ１０は、記録媒体に格納されて提供される。記録媒体としては、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭ等の記録媒体あるいは半導体メモリ等が例示される。図６３は、記録媒体に記憶されたプログラムを実行するためのコンピュータのハードウェア構成を示す図であり、図６４は、記録媒体に記憶されたプログラムを実行するためのコンピュータの斜視図である。
【０２７９】
図６３に示すように、コンピュータ８０は、フレキシブルディスクドライブ装置、ＣＤ−ＲＯＭドライブ装置、ＤＶＤドライブ装置等の読取装置６２と、作業用メモリ（ＲＡＭ）６４と、記録媒体６０に記憶されたプログラム等を記憶するメモリ６６と、ディスプレイ６８と、マウス７０と、キーボード７２と、データ等の送受信を行う通信装置７４と、プログラムの実行を制御するＣＰＵ７６とを備えている。コンピュータ８０は、記録媒体６０が読取装置６２に挿入されると、読取装置６２から記録媒体６０に格納された動画像符号化プログラムＰ１０にアクセス可能になり、当該動画像符号化プログラムＰ１０によって、動画像符号化装置１０として動作することが可能になる。
【０２８０】
図６４に示すように、動画像符号化プログラムＰ１０は、搬送波に重畳されたコンピュータデータ信号９０としてネットワークを介して提供されるものであってもよい。この場合、コンピュータ８０は、通信装置７４によって受信した動画像符号化プログラムＰ１０をメモリ６６に格納し、当該動画像符号化プログラムＰ１０を実行することができる。
【０２８１】
図５１に示すように、動画像符号化プログラムＰ１０は、処理を統括するメインモジュールＰ１０１と、ブロック分割モジュールＰ１０２と、変換モジュールＰ１０３と、量子化モジュールＰ１０４と、逆量子化モジュールＰ１０５と、逆変換モジュールＰ１０６と、記憶モジュールＰ１０７と、予測信号生成モジュールＰ１０８と、動き予測モジュールＰ１０９と、動き検出モジュールＰ１１０と、加算モジュールＰ１１１と、減算モジュールＰ１１２と、エントロピー符号化モジュールＰ１１３とを備えている。
【０２８２】
ブロック分割モジュールＰ１０２、変換モジュールＰ１０３、量子化モジュールＰ１０４、逆量子化モジュールＰ１０５、逆変換モジュールＰ１０６、予測信号生成モジュールＰ１０８、動き予測モジュールＰ１０９、動き検出モジュールＰ１１０、加算モジュールＰ１１１、エントロピー符号化モジュールＰ１１３がコンピュータ８０に実現させる機能は、それぞれ図１のブロック分割器１０１、変換器１０７、量子化器１０８、逆量子化器１０９、逆変換器１１０、予測信号生成器１０４、動き予測器１１２、動き検出器１０３、加算器１１１、エントロピー符号化器１１４の機能と同様である。記憶モジュールＰ１０７がコンピュータ８０に実現させる機能は、フレームメモリ１０２及び動きベクトルメモリ１０５の機能と同様である。減算モジュールＰ１１２がコンピュータ８０に実現させる機能は、減算器１０６、１１３の機能と同様である。
【０２８３】
［第２実施形態］
図１２を用いて、本発明に係る動画像符号化装置２０について説明する。動画像符号化装置２０は、機能的な構成要素として、図１２に示すように、ブロック分割器２０１と、フレームメモリ２０２と、動き検出器２０３と、予測信号生成器２０４と、動きベクトルメモリ２０５と、減算器２０６と、変換器２０７と、量子化器２０８と、逆量子化器２０９と、逆変換器２１０と、加算器２１１と、動き予測器２１２と、確率切替信号生成器２１３と、エントロピー符号化器１１４とを備えて構成される。
【０２８４】
動画像符号化装置２０に入力される入力映像信号（動画像信号）は、フレーム単位の画像信号（以下、フレーム画像信号）の時間系列で構成されている。
【０２８５】
ブロック分割器２０１は、ラインL２０１を経由して入力された入力映像信号の符号化対象となるフレーム画像信号を複数の領域（ブロック）に分割し、ラインL２０２を経由して符号化対象のブロック（以下、対象ブロック）の画像信号を出力する。本実施形態では８×８の画素からなるブロックに分割するが、それ以外の大きさまたは形に分割してもよい。このブロック単位で以下の符号化処理が行われる。
【０２８６】
フレームメモリ２０２は、ラインL２０３を経由して入力される過去に符号化済みのフレーム画像信号（以下、参照フレーム画像信号）を格納し、必要に応じてラインL２０４を経由して出力する。
【０２８７】
動き検出器２０３は、ラインL２０２を経由して入力される対象ブロックの画像信号のパターンに類似した画像信号パターンを、ラインL２０４を経由して入力される参照フレーム画像信号から所定範囲内で探索し、両画像信号パターン間の空間的な変位量である動きベクトルを検出し、ラインL２０５を経由して出力する。また、その動きベクトルが参照するフレームの番号（以下、参照フレーム番号）を検出し、ラインL２１６を経由して出力する。
【０２８８】
予測信号生成器２０４は、ラインL２０５を経由して入力される対象ブロックの動きベクトル信号値とラインL２１６を経由して入力される参照フレーム番号と、ラインL２０４を経由して入力される参照フレーム画像信号から、対象ブロックに対する予測画像信号を生成し、ラインL２０６を経由して出力する。
【０２８９】
動きベクトルメモリ２０５は、過去に符号化済みの動きベクトルや参照フレーム番号と併せて、ラインL２０５を経由して入力される動きベクトルとラインL２１５を経由して入力される参照フレーム番号を格納し、必要に応じてラインL２１２を経由して出力する。
【０２９０】
減算器２０６は、ラインL２０２を経由して入力された対象ブロックの画像信号から、ラインL２０６を経由して入力された対象ブロックに対する予測画像信号を減算し、残差信号を生成し、ラインL２０７を経由して出力する。
【０２９１】
変換器２０７は、ラインL２０７を経由して入力された残差信号を直交変換し、ラインL２０８を経由して変換係数を出力する。
【０２９２】
量子化器２０８は、ラインL２０８を経由して入力された変換係数を量子化し、ラインL２０９を経由して量子化された変換係数を出力する。
【０２９３】
逆量子化器２０９は、ラインL２０９を経由して入力された量子化された変換係数を逆量子化し、ラインL２１０を経由して復元された変換係数を出力する。
【０２９４】
逆変換器２１０は、ラインL２１０を経由して入力された変換係数を逆直交変換し、ラインL２１１を経由して復元された残差信号を出力する。
【０２９５】
加算器２１１は、ラインL２１１を経由して入力された残差信号と、ラインL２０６を経由して入力された対象ブロックに対する予測画像信号を加算し、対象ブロックの画像信号を復元し、ラインL２０３を経由して出力する。
【０２９６】
動き予測器２１２は、ラインL２１２を経由して入力される過去に符号化済みのブロックの動きベクトルと、それに対応した参照フレーム番号とラインL２１６を経由して入力される対象ブロックの参照フレーム番号から、後述するフローに従って対象ブロックの動きベクトル予測値を示すインデックスの決定および動きベクトル予測値と実際の動きベクトルの差分である動きベクトル差分値の算出を行い、ラインL２１３を経由して動きベクトル予測値を示すインデックスを出力する。また、ラインL２１４を経由して動きベクトル差分値を出力する。
【０２９７】
確率切替信号生成器２１３はラインL２１２を経由して入力される過去に符号化済みのブロックの動きベクトルと、それに対応する参照フレーム番号と、ラインL２１６を経由して入力される対象ブロックの参照フレーム番号から、後述するフローに従って切り替える確率テーブルを示す確率切替信号を生成し、ラインL２１５を経由して出力する。
【０２９８】
エントロピー符号化器２１４は、ラインL２０９を経由して入力された量子化された変換係数と、ラインL２１４を経由して入力された動きベクトル差分値と、ラインL２１６を経由して入力された対象ブロックの参照フレーム番号を符号化する。また、ラインL２１５を経由して入力された確率切替信号に基づいて、エントロピー符号化を行う際に用いる確率テーブルを後述の方法で切り替えたのち、ラインL２１３を経由して入力された動きベクトル予測値を示すインデックスを符号化する。そして符号化された変換係数および動きベクトル差分値および動きベクトル予測値を示すインデックスを多重化したうえで、圧縮ストリームをラインL２１６に出力する。
【０２９９】
上記のようにエントロピー符号化を行う際に用いる確率テーブルを切り替えることは、動きベクトル予測値を示す各インデックスをその出現頻度に基づいた適切な符号量で符号化することによって、インデックスの符号化効率を高める効果がある。
【０３００】
次に、図１３を参照して動き予測器２１２について詳細に説明する。図１３は、動き予測器１１２における動きベクトル予測値を示すインデックスを決定する手順を説明するための模式図である。
【０３０１】
図１３で、対象ブロックをHとし、フレームF４０１はブロックHを含むフレームである。フレームF４０２は既に符号化済みのフレームで、フレームF４０１とは時間方向で隣り合うフレームである。
【０３０２】
フレームF４０１において、ブロックDをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックEをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０３０３】
フレームF４０２において、ブロックAはブロックHの最も左上の画素と同じ空間位置の画素を含むブロックとする。ブロックBをブロックAの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックAの最も左上の画素の真左の画素を含むブロックとする。
【０３０４】
図１４は、動き予測器２１２における動きベクトル予測値を示すインデックスを決定する手順を説明するためのフローチャートである。動きベクトルのｘ成分、ｙ成分はそれぞれ独立にインデックスが決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を示すインデックスを決定・出力し、次にｙ成分の予測値を示すインデックスを決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０３０５】
まず動き予測器２１２は、ラインL２１２を経由して入力される符号化済みのブロックＡ、E、Fの動きベクトルと、それに対応する参照フレーム番号と、ラインL２０５を経由して入力される対象ブロックHの動きベクトルと、ラインL２１６を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ６０１）。
【０３０６】
なおステップＳ６０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０３０７】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０３０８】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０３０９】
また、ステップＳ６０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０３１０】
続いて、ブロックAの動きベクトルとブロックHの動きベクトルの差分、ブロックEの動きベクトルとブロックHの動きベクトルの差分、ブロックFの動きベクトルとブロックHの動きベクトルの差分の３通りの差分値が算出される（ステップＳ６０２）。
【０３１１】
次に、ステップＳ６０２で算出された３通りの差分値のうち、どの組み合わせの差分値が最小のものであるかが判定される。（ステップＳ６０３）。
【０３１２】
ステップＳ６０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックAとブロックHである場合には、ブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値であることを示すインデックスIndex_i＝０(i=x,y)を生成する、またブロックAとブロックHの動きベクトルの差分を、動きベクトル差分値MViD(i=x,y)とする。もっとも小さい差分を与える組み合わせがブロックEとブロックHである場合には、ブロックHの動きベクトル予測値はブロックEの動きベクトルと同じ値であることを示すインデックスIndex_i＝１(i=x,y)を生成する、またブロックEとブロックHの動きベクトルの差分を、動きベクトル差分値MViD(i=x,y)とする。もっとも小さい差分を与える組み合わせがブロックFとブロックHである場合には、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値であることを示すインデックスIndex_i＝２(i=x,y)を生成する、またブロックAとブロックHの動きベクトルの差分を、動きベクトル差分値MViD(i=x,y)とする（ステップＳ６０４）。
【０３１３】
続いて、ステップＳ６０４で決定されたインデックスIndex_i(i=x,y)を出力する（ステップＳ６０５）。
【０３１４】
最後に、ステップＳ６０４で決定された動きベクトル差分値MViD(i=x,y)を出力し（ステップＳ６０６）、処理を終了する。
【０３１５】
なお、ステップＳ６０２において、動きベクトル予測値と実際の動きベクトルの差分を用いて動きベクトル予測値の決定を行ったが、その代わりに実際に符号化を行い、符号量と歪みの最適化（R-D最適化）によって動きベクトル予測値の決定を行ってもよい。
【０３１６】
なお、図１４のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を示すインデックスや動きベクトル差分値を同時に決定してもよい。
【０３１７】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図１３に示されるブロックの位置関係は以下のように定めてもよい。
【０３１８】
対象ブロックをHとし、フレームF４０１はブロックHを含むフレームである。フレームF４０２は既に符号化済みのフレームである。
【０３１９】
フレームF４０１において、ブロックDをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックEをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０３２０】
フレームF４０２において、ブロックAはブロックDの動きベクトルが参照しているブロック、またはブロックEの動きベクトルが参照しているブロック、またはブロックFの動きベクトルが参照しているブロックとする。その際もブロックBをブロックAの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックAの最も左上の画素の真左の画素を含むブロックとする。
【０３２１】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックDが参照するブロック、あるいはブロックEが参照するブロック、あるいはブロックFが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（DあるいはEあるいはF）が参照するブロックの動きベクトルとして用いるものとする。
【０３２２】
上述した実施形態は、同じフレームのブロック間で求めた動きベクトル差分値と、互いに異なるフレームのブロック間で求めた動きベクトル差分値を組み合わせて動きベクトルの予測を行っているが、互いに異なるフレームのブロック間で求めた動きベクトル差分値のみで動きベクトルの予測を行ってもよい。その際は、ブロックAとHの動きベクトルの差分、ブロックBとHの動きベクトルの差分、ブロックCとHの動きベクトルの差分の組み合わせのうち、差分値が最小となるものを用いてもよいし、さらにブロックA、B、Cの動きベクトル平均値とブロックHの動きベクトルの差分を候補に加えてもよい。
【０３２３】
このとき、確率切替信号生成器２１３の詳細は図１５のフローチャートに従うことが好ましい。確率切替信号は動きベクトル予測値を示すインデックスの発生確率の尤もらしさを示すものであって、この信号に基づいて確率テーブルを切り替えてエントロピー符号化を行うことで、データの発生確率に応じた適切な符号量でインデックスの符号化を行うことができる。
【０３２４】
確率切替信号生成器２１３では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に計算されるものとする。具体的にはまず動きベクトルのx成分の計算を行い、ｘ成分に相当する確率切替信号を出力し、次にｙ成分の計算を行い、y成分に相当する確率切替信号の出力を行う。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０３２５】
まず確率切替信号生成器２１３は、ラインL２１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルと対応する参照フレーム番号と、ラインL２１６を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ７０１）。
【０３２６】
なおステップＳ７０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０３２７】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０３２８】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０３２９】
また、ステップＳ７０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０３３０】
続いて、ブロックBの動きベクトルとブロックEの動きベクトルの差分、ブロックCの動きベクトルとブロックFの動きベクトルの差分、ブロックDの動きベクトルとブロックEの動きベクトルの差分、ブロックDの動きベクトルとブロックFの動きベクトルの差分の４通りが算出される（ステップＳ７０２）。
【０３３１】
次に、ステップＳ７０２で算出された４通りの差分のうち、どの組み合わせの差分が最小のものであるかが判定される。（ステップＳ７０３）。
【０３３２】
ステップＳ７０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックBとブロックEである場合にはブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i(i=x,y)＝０を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックEの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックFである場合には、ブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i(i=x,y)＝０を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックDとブロックEである場合には、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i(i=x,y)＝１を生成するとともに、その際の差分MViD(i=x,y)をブロックDとブロックEの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックDとブロックFである場合には、ブロックHの動きベクトル予測値はブロックEの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i(i=x,y)＝２を生成するとともに、その際の動きベクトル差分値MViD(i=x,y)をブロックDとブロックFの動きベクトルの差分値とする。（ステップＳ７０４）。
【０３３３】
最後に、ステップＳ７０４で決定された信号値Signal_i(i=x,y)およびMViD(i=x,y)を出力し（ステップＳ７０５）、処理を終了する。
なお、発生確率信号はSignal_i(i=x,y)のみでもよい。
【０３３４】
なお、図１５のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分に相当する確率切替信号を同時に決定してもよい。
【０３３５】
このとき、エントロピー符号化器２１４では、あらかじめ複数所持してある動きベクトル予測値を示す各インデックスの発生確率分布のテーブルを、ラインL２１５を経由して入力される確率切替信号に基づいて切り替える。具体的にはSignal_i(i=x,y)によって最も発生確率が高いインデックス、MViD(i=x,y)によってその発生確率を予測し、それに応じた確率テーブルへの切り替えを行う。
【０３３６】
また、動き予測器２１２は以下に説明するようにしてもよい。図１６を参照して動き予測器２１２について詳細に説明する。図１６は、動き予測器１１２における動きベクトル予測値を示すインデックスを決定する手順を説明するための模式図である。
【０３３７】
図１６で、対象ブロックをHとし、フレームF５０１はブロックHを含むフレームである。フレームF５０２は既に符号化済みのフレームで、フレームF５０１とは時間方向で隣り合うフレームである。フレームF５０３は既に符号化済みのフレームで、フレームF５０２とは時間方向で隣り合うフレームである。
【０３３８】
フレームF５０１において、ブロックEをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０３３９】
フレームF５０２において、ブロックDはブロックHの最も左上の画素と同じ空間位置の画素を含むブロック、ブロックBをブロックDの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックDの最も左上の画素の真左の画素を含むブロックとする。
【０３４０】
フレームF５０３において、ブロックAはブロックDの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０３４１】
図１７は、動き予測器２１２における動きベクトル予測値を示すインデックスを決定する手順を説明するためのフローチャートである。動きベクトルのｘ成分、ｙ成分はそれぞれ独立にインデックスが決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を示すインデックスを決定・出力し、次にｙ成分の予測値を示すインデックスを決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０３４２】
まず動き予測器２１２は、ラインL２１２を経由して入力される符号化済みのブロックＡ、B、C、D、E、F、Gの動きベクトルと、それに対応する参照フレーム番号と、ラインL２０５を経由して入力される対象ブロックHの動きベクトルと、ラインL２１６を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ８０１）。
【０３４３】
なおステップＳ８０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０３４４】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、B、C、D、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０３４５】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０３４６】
また、ステップＳ８０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０３４７】
続いて、ブロックBの動きベクトルとブロックHの動きベクトルの差分、ブロックCの動きベクトルとブロックHの動きベクトルの差分、ブロックDの動きベクトルとブロックHの動きベクトルの差分、ブロックGの動きベクトルとブロックHの動きベクトルの差分、ブロックFの動きベクトルとブロックHの動きベクトルの差分の５通りの差分値が算出される（ステップＳ８０２）。
【０３４８】
次に、ステップＳ８０２で算出された５通りの差分値のうち、どの組み合わせの差分値が最小のものであるかが判定される。（ステップＳ８０３）。
【０３４９】
ステップＳ８０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックBとブロックHである場合には、ブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値であることを示すインデックスIndex_i＝０(i=x,y)を生成する、またブロックBとブロックHの動きベクトルの差分を、動きベクトル差分値MViD(i=x,y)とする。もっとも小さい差分を与える組み合わせがブロックCとブロックHである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値であることを示すインデックスIndex_i＝１(i=x,y)を生成する、またブロックCとブロックHの動きベクトルの差分を、動きベクトル差分値MViD(i=x,y)とする。もっとも小さい差分を与える組み合わせがブロックDとブロックHである場合には、ブロックHの動きベクトル予測値はブロックDの動きベクトルと同じ値であることを示すインデックスIndex_i＝２(i=x,y)を生成する、またブロックDとブロックHの動きベクトルの差分を、動きベクトル差分値MViD(i=x,y)とする。もっとも小さい差分を与える組み合わせがブロックGとブロックHである場合には、ブロックHの動きベクトル予測値はブロックGの動きベクトルと同じ値であることを示すインデックスIndex_i＝３(i=x,y)を生成する、またブロックGとブロックHの動きベクトルの差分を、動きベクトル差分値MViD(i=x,y)とする。もっとも小さい差分を与える組み合わせがブロックFとブロックHである場合には、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値であることを示すインデックスIndex_i＝４(i=x,y)を生成する、またブロックFとブロックHの動きベクトルの差分を、動きベクトル差分値MViD(i=x,y)とする（ステップＳ８０４）。
【０３５０】
続いて、ステップＳ８０４で決定されたインデックスIndex_i(i=x,y)を出力する（ステップＳ８０５）。
【０３５１】
最後に、ステップＳ８０４で決定された動きベクトル差分値MViD(i=x,y)を出力し（ステップＳ８０６）、処理を終了する。
【０３５２】
なお、ステップＳ８０２において、動きベクトル予測値と実際の動きベクトルの差分を用いて動きベクトル予測値の決定を行ったが、その代わりに実際に符号化を行い、符号量と歪みの最適化（R-D最適化）によって動きベクトル予測値の決定を行ってもよい。
【０３５３】
なお、図１７のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を示すインデックスや動きベクトル差分値を同時に決定してもよい。
【０３５４】
また、ステップＳ８０２において算出する差分は、ブロックBの動きベクトルとブロックHの動きベクトルの差分、ブロックCの動きベクトルとブロックHの動きベクトルの差分、ブロックDの動きベクトルとブロックHの動きベクトルの差分の３通りでもよい。その際もステップＳ８０３で最小となる組み合わせが判定され、ステップＳ８０４では、もっとも小さい差分を与える組み合わせがブロックBとブロックHである場合には、ブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値であることを示すインデックスIndex_i＝０(i=x,y)を生成する、またブロックBとブロックHの動きベクトルの差分を、動きベクトル差分値MViD(i=x,y)とする。もっとも小さい差分を与える組み合わせがブロックCとブロックHである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値であることを示すインデックスIndex_i＝１(i=x,y)を生成する、またブロックCとブロックHの動きベクトルの差分を、動きベクトル差分値MViD(i=x,y)とする。もっとも小さい差分を与える組み合わせがブロックDとブロックHである場合には、ブロックHの動きベクトル予測値はブロックDの動きベクトルと同じ値であることを示すインデックスIndex_i＝２(i=x,y)を生成する、またブロックDとブロックHの動きベクトルの差分を、動きベクトル差分値MViD(i=x,y)とする。
【０３５５】
また、ステップＳ３０２において算出する差分は、ブロックBの動きベクトルとブロックHの動きベクトルの差分、ブロックCの動きベクトルとブロックHの動きベクトルの差分の２通りでもよい。その際もステップＳ８０３で最小となる組み合わせが判定され、ステップＳ８０４では、もっとも小さい差分を与える組み合わせがブロックBとブロックHである場合には、ブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値であることを示すインデックスIndex_i＝０(i=x,y)を生成する、またブロックBとブロックHの動きベクトルの差分を、動きベクトル差分値MViD(i=x,y)とする。もっとも小さい差分を与える組み合わせがブロックCとブロックHである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値であることを示すインデックスIndex_i＝１(i=x,y)を生成する、またブロックCとブロックHの動きベクトルの差分を、動きベクトル差分値MViD(i=x,y)とする。
【０３５６】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図１６に示されるブロックの位置関係は以下のように定めてもよい。
【０３５７】
対象ブロックをHとし、フレームF５０１はブロックHを含むフレームである。フレームF５０２は既に符号化済みのフレームである。フレームF５０３は既に符号化済みのフレームである。
【０３５８】
フレームF５０１において、ブロックEをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０３５９】
フレームF５０２において、ブロックDはブロックEの動きベクトルが参照しているブロック、またはブロックFの動きベクトルが参照しているブロック、またはブロックGの動きベクトルが参照しているブロックとする。その際もブロックBをブロックDの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックDの最も左上の画素の真左の画素を含むブロックとする。
【０３６０】
フレームF５０３において、ブロックAはブロックDの動きベクトルが参照しているブロックとする。
【０３６１】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックEが参照するブロック、あるいはブロックFが参照するブロック、あるいはブロックGが参照するブロック、あるいはブロックDが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（EあるいはFあるいはGあるいはD）が参照するブロックの動きベクトルとして用いるものとする。
【０３６２】
このとき、確率切替信号生成器２１３の詳細は図１８のフローチャートに従うことが好ましい。確率切替信号は動きベクトル予測値を示すインデックスの発生確率の尤もらしさを示すものであって、この信号に基づいて確率テーブルを切り替えてエントロピー符号化を行うことで、データの発生確率に応じた適切な符号量でインデックスの符号化を行うことができる。
【０３６３】
確率切替信号生成器２１３では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に計算されるものとする。具体的にはまず動きベクトルのx成分の計算を行い、ｘ成分に相当する確率切替信号を出力し、次にｙ成分の計算を行い、y成分に相当する確率切替信号の出力を行う。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０３６４】
まず確率切替信号生成器２１３は、ラインL２１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルと対応する参照フレーム番号と、ラインL２１６を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ９０１）。
【０３６５】
なおステップＳ９０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０３６６】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０３６７】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０３６８】
また、ステップＳ９０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０３６９】
続いて、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分、ブロックAの動きベクトルとブロックDの動きベクトルの差分、ブロックEの動きベクトルとブロックFの動きベクトルの差分、ブロックEの動きベクトルとブロックGの動きベクトルの差分の５通りが算出される（ステップＳ９０２）。
【０３７０】
次に、ステップＳ９０２で算出された５通りの差分のうち、どの組み合わせの差分が最小のものであるかが判定される。（ステップＳ９０３）。
【０３７１】
ステップＳ９０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックGの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックAとブロックDである場合には、ブロックHの動きベクトル予測値はブロックDの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックAとブロックDの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックEとブロックFである場合には、ブロックHの動きベクトル予測値はブロックGの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝３(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックEとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックEとブロックGである場合には、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝４(i=x,y)を生成するとともに、その際の動きベクトル差分値MViD(i=x,y)をブロックEとブロックGの動きベクトルの差分値とする。（ステップＳ９０４）。
【０３７２】
最後に、ステップＳ９０４で決定された信号値Signal_i(i=x,y)およびMViD(i=x,y)を出力し（ステップＳ７０５）、処理を終了する。
【０３７３】
なお、発生確率信号はSignal_i(i=x,y)のみでもよい。
【０３７４】
なお、図１８のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分に相当する確率切替信号を同時に決定してもよい。
【０３７５】
また、ステップＳ９０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分、ブロックAの動きベクトルとブロックDの動きベクトルの差分の３通りでもよい。その際もステップＳ９０３で最小となる組み合わせが判定され、ステップＳ９０４では、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックGの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックAとブロックDである場合には、ブロックHの動きベクトル予測値はブロックDの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックAとブロックDの動きベクトルの差分値とする。
【０３７６】
また、ステップＳ９０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分の２通りでもよい。その際もステップＳ９０３で最小となる組み合わせが判定され、ステップＳ９０４では、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックGの動きベクトルの差分値とする。
【０３７７】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図１６に示されるブロックの位置関係は以下のように定めてもよい。
【０３７８】
対象ブロックをHとし、フレームF５０１はブロックHを含むフレームである。フレームF５０２は既に符号化済みのフレームである。フレームF５０３は既に符号化済みのフレームである。
【０３７９】
フレームF５０１において、ブロックEをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０３８０】
フレームF５０２において、ブロックDはブロックEの動きベクトルが参照しているブロック、またはブロックFの動きベクトルが参照しているブロック、またはブロックGの動きベクトルが参照しているブロックとする。その際もブロックBをブロックDの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックDの最も左上の画素の真左の画素を含むブロックとする。
【０３８１】
フレームF５０３において、ブロックAはブロックDの動きベクトルが参照しているブロックとする。
【０３８２】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックEが参照するブロック、あるいはブロックFが参照するブロック、あるいはブロックGが参照するブロック、あるいはブロックDが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（EあるいはFあるいはGあるいはD）が参照するブロックの動きベクトルとして用いるものとする。
【０３８３】
このとき、エントロピー符号化器２１４では、あらかじめ複数所持してある動きベクトル予測値を示す各インデックスの発生確率分布のテーブルを、ラインL２１５を経由して入力される確率切替信号に基づいて切り替える。具体的にはSignal_i(i=x,y)によって最も発生確率が高いインデックス、MViD(i=x,y)によってその発生確率を予測し、それに応じた確率テーブルへの切り替えを行う。
【０３８４】
また、動き予測器２１２において動きベクトル予測値を示すインデックスを生成する代わりに、複数ある動きベクトル予測値決定方法の中からひとつを選択し、選択した決定方法示すインデックスを生成してもよい。この方法の詳細を図１９、図２０を参照して説明する。
【０３８５】
図１９は動き予測器２１２において複数ある動きベクトル予測値決定方法の中からひとつを選択し、選択した決定方法示すインデックスを生成する手順を説明するための模式図である。
【０３８６】
図１９で、対象ブロックをNとし、フレームF６０１はブロックNを含むフレームである。フレームF６０２は既に符号化済みのフレームで、フレームF６０１とは時間方向で隣り合うフレームである。
【０３８７】
フレームF６０１において、ブロックJをブロックNの最も左上の画素の真左上の画素を含むブロック、ブロックKをブロックNの最も左上の画素の真上の画素を含むブロック、ブロックLをブロックNの最も右上の画素の真右上の画素を含むブロック、ブロックMをブロックNの最も左上の画素の真左の画素を含むブロックとする。
【０３８８】
フレームF６０２において、ブロックEはブロックNの最も左上の画素と同じ空間位置の画素を含むブロックとする。ブロックAをブロックEの最も左上の画素の真左上の画素を含むブロック、ブロックBをブロックEの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックEの最も右上の画素の真右上の画素を含むブロック、ブロックDをブロックEの最も左下の画素の真左の画素を含むブロック、ブロックFをブロックEの最も右上の画素の真右の画素を含むブロック、ブロックGをブロックEの最も左下の画素の真左下の画素を含むブロック、ブロックHをブロックEの最も右下の画素の真下の画素を含むブロック、ブロックIをブロックEの最も右下の画素の真右下の画素を含むブロックとする。
【０３８９】
図２０は動き予測器２１２において複数ある動きベクトル予測値決定方法の中からひとつを選択し、選択した決定方法示すインデックスを生成する手順を説明するためのフローチャートである。
【０３９０】
動きベクトルｘ成分、ｙ成分はそれぞれ独立に予測値決定方法が選ばれるものとする。具体的にはまず動きベクトルのx成分の予測値決定方法を選択・出力し、次にｙ成分の予測値決定方法を選択・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０３９１】
まず動き予測器２１２は、ラインL２１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、I、J、K、L、Mの動きベクトルと、対応する参照フレーム番号と、ラインL２０５を経由して取得される対象ブロックNの動きベクトルと、ラインL２１６を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ１００１）。
【０３９２】
なおステップＳ１００１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０３９３】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、I、J、K、Lの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０３９４】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０３９５】
また、ステップＳ１００１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０３９６】
続いてブロックA、B、C、D、E、F、G、H、Iの動きベクトルの平均値と対象ブロックNの動きベクトルの差分、ブロックB、D、E、F、Hの動きベクトルの平均値と対象ブロックNの動きベクトルの差分、ブロックE、J、K、L、Mの動きベクトルの平均値と対象ブロックNの動きベクトルの差分の３通りの差分が計算される（ステップＳ１００２）。
【０３９７】
続いて、ステップＳ１００２で算出した３通りの差分のうち、もっとも値が小さくなる組み合わせが判定される。（ステップＳ１００３）。
【０３９８】
ステップＳ１００３での判定の結果、もっとも小さい差分を与える組み合わせがブロックA、B、C、D、E、F、G、H、Iと対象ブロックNである場合にはブロックNの動きベクトル予測値はブロックA、B、C、D、E、F、G、H、Iの動きベクトルの平均値に決定するという方法を示すインデックスIndex_i＝０(i=x,y)を生成するとともに、その方法を用いたときの動きベクトル予測値と対象ブロックの動きベクトルとの差分を動きベクトル差分値MViD(i=x,y)とする。もっとも小さい差分を与える組み合わせがブロックB、D、E、F、Hと対象ブロックNである場合にはブロックNの動きベクトル予測値はブロックB、D、E、F、Hの動きベクトルの平均値に決定するという方法を示すインデックスIndex_i＝１(i=x,y)を生成するとともに、その方法を用いたときの動きベクトル予測値と対象ブロックの動きベクトルとの差分を動きベクトル差分値MViD(i=x,y)とする。もっとも小さい差分平均値を与える組み合わせがブロックE、J、K、L、Mと対象ブロックNである場合にはブロックNの動きベクトル予測値はブロックE、J、K、L、Mの動きベクトルの平均値に決定するという方法を示すインデックスIndex_i＝２(i=x,y)を生成するとともに、その方法を用いたときの動きベクトル予測値と対象ブロック動きベクトルとの差分を動きベクトル差分値MViD(i=x,y)とする（ステップＳ１００４）。
【０３９９】
次に、ステップＳ１００４で決定されたインデックスIndex_i(i=x,y)を出力する（ステップＳ１００５）。
【０４００】
最後にステップＳ１００４で決定された動きベクトル差分値MViD(i=x,y)を出力し（ステップＳ１００６）、処理を終了する。
【０４０１】
なお、ステップＳ１００２において各ブロック群の動きベクトルの平均値の変わりに、各ブロック群の動きベクトルの中間値を用いてもよい。その際は、ステップＳ１００４で生成されるインデックスは、各ブロック群の平均値を動きベクトル予測値とすることを示す代わりに各ブロック群の中間値を動きベクトル予測値とすることを示すインデックスとなる。
【０４０２】
なお、ステップＳ１００２において、動きベクトル予測値と実際の動きベクトルの差分を用いて動きベクトル予測値の決定方法を選択したが、その代わりに実際に符号化を行い、符号量と歪みの最適化（R-D最適化）によって動きベクトル予測値の決定方法を選択してもよい。
【０４０３】
図２０のフローチャートに示される実施形態では３通りの動きベクトル予測値決定方法の中から１つを選択したが、３通りのうちいずれか２つの中からどちらかを選択するようにしてもよい。
【０４０４】
また、図２０のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分それぞれの決定方法を示すインデックスを同時に選択してもよい。
【０４０５】
さらに、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図１９に示されるブロックの位置関係は以下のように定めてもよい。
【０４０６】
対象ブロックをNとし、フレームF６０１はブロックNを含むフレームである。フレームF６０２は既に符号化済みのフレームである。
【０４０７】
フレームF６０１において、ブロックJをブロックNの最も左上の画素の真左上の画素を含むブロック、ブロックKをブロックNの最も左上の画素の真上の画素を含むブロック、ブロックLをブロックNの最も右上の画素の真右上の画素を含むブロック、ブロックMをブロックNの最も左上の画素の真左の画素を含むブロックとする。
【０４０８】
フレームF６０２において、ブロックEはブロックJの動きベクトルが参照しているブロック、またはブロックKの動きベクトルが参照しているブロック、またはブロックLの動きベクトルが参照しているブロック、またはブロックMの動きベクトルが参照しているブロックとする。その際もブロックAをブロックEの最も左上の画素の真左上の画素を含むブロック、ブロックBをブロックEの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックEの最も右上の画素の真右上の画素を含むブロック、ブロックDをブロックEの最も左下の画素の真左の画素を含むブロック、ブロックFをブロックEの最も右上の画素の真右の画素を含むブロック、ブロックGをブロックEの最も左下の画素の真左下の画素を含むブロック、ブロックHをブロックEの最も右下の画素の真下の画素を含むブロック、ブロックIをブロックEの最も右下の画素の真右下の画素を含むブロックとする。
【０４０９】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックJが参照するブロック、あるいはブロックKが参照するブロック、あるいはブロックLが参照するブロック、あるいはブロックMが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（JあるいはKあるいはLあるいはM）が参照するブロックの動きベクトルとして用いるものとする。
【０４１０】
このとき、確率切替信号生成器２１３の詳細は図２１のフローチャートで説明される。確率切替信号は動きベクトル予測値決定方法を示すインデックスの尤度を示すものであって、この信号に基づいて確率テーブルを切り替えてエントロピー符号化を行うことで、データの発生確率に応じた適切な符号量でインデックスの符号化を行うことができる。
【０４１１】
確率切替信号生成器２１３では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に計算されるものとする。具体的にはまず動きベクトルのx成分の計算を行い、ｘ成分に相当する確率切替信号を出力し、次にｙ成分の計算を行い、y成分に相当する確率切替信号の出力を行う。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０４１２】
まず確率切替信号生成器２１３は、ラインL２１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、I、J、K、L、Mの動きベクトルと対応する参照フレーム番号と、ラインL２１６を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ１１０１）。
【０４１３】
なおステップＳ１１０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０４１４】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、I、J、K、Lの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０４１５】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０４１６】
また、ステップＳ１１０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０４１７】
続いて、ブロックAとブロックEの動きベクトルの差分、ブロックCとブロックEの動きベクトルの差分、ブロックGとブロックEの動きベクトルの差分、ブロックIとブロックEの動きベクトルの差分の計４通りの差分の平均値を算出する。また、ブロックBとブロックEの動きベクトルの差分、ブロックDとブロックEの動きベクトルの差分、ブロックFとブロックEの動きベクトルの差分、ブロックHとブロックEの動きベクトルの差分の計４通りの差分の平均値を算出する。また、ブロックJとブロックKの動きベクトルの差分、ブロックJとブロックMの動きベクトルの差分、ブロックEとブロックKの動きベクトルの差分、ブロックEとブロックMの動きベクトルの差分の計４通りの差分の平均値を算出する（ステップＳ１１０２）。
【０４１８】
続いて、ステップＳ１１０２で算出した３通りの差分平均値のうち、もっとも値が小さくなる組み合わせが判定される。（ステップＳ１１０３）。
【０４１９】
ステップＳ１１０３での判定の結果、もっとも小さい差分平均値を与える組み合わせがブロックAとE、ブロックCとE、ブロックGとE、ブロックIとEである場合にはブロックNの動きベクトル予測値はブロックA、B、C、D、E、F、G、H、Iの動きベクトルの平均値に決定することが尤もらしいことを示す信号Signal_i＝(i=x,y)０を生成するとともに、その際の平均差分値MViD_mean(i=x,y)をブロックAとブロックEの動きベクトルの差分、ブロックCとブロックEの動きベクトルの差分、ブロックGとブロックEの動きベクトルの差分、ブロックIとブロックEの動きベクトルの差分の計４通りの差分の平均値とする。もっとも小さい差分平均値を与える組み合わせがブロックBとE、ブロックDとE、ブロックFとE、ブロックHとEである場合にはブロックNの動きベクトル予測値はブロックB、D、E、F、Hの動きベクトルの平均値に決定することが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の平均差分値MViD_mean(i=x,y)をブロックBとブロックEの動きベクトルの差分、ブロックDとブロックEの動きベクトルの差分、ブロックFとブロックEの動きベクトルの差分、ブロックHとブロックEの動きベクトルの差分の計４通りの差分の平均値とする。もっとも小さい差分平均値を与える組み合わせがブロックJとK、ブロックJとM、ブロックEとK、ブロックEとMである場合にはブロックNの動きベクトル予測値はブロックJ、K、L、M、Eの動きベクトルの平均値に決定することが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の平均差分値MViD_mean(i=x,y)をブロックJとブロックKの動きベクトルの差分、ブロックJとブロックMの動きベクトルの差分、ブロックEとブロックKの動きベクトルの差分、ブロックEとブロックMの動きベクトルの差分の計４通りの差分の平均値とする（ステップＳ１１０４）。
【０４２０】
最後に、ステップＳ１１０４で決定されたインデックスIndex_i(i=x,y)および動きベクトル平均差分値MViD_mean(i=x,y)を出力し（ステップＳ１１０５）、処理を終了する。
【０４２１】
なお、発生確率信号はSignal_i(i=x,y)のみでもよい。
【０４２２】
なお、図２１のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分に相当する確率切替信号を同時に決定してもよい。
【０４２３】
なお、ステップＳ１１０２において、各ブロック群の動きベクトルの類似性を表す情報として平均差分値を用いたが、そのかわりに各ブロック群の分散値や標準偏差を用いてもよい。その際にはステップＳ１１０４で生成される平均差分値は分散値あるいは標準偏差となる。
【０４２４】
図２１のフローチャートに示される実施形態では３通りの確率切替信号の中から１つを選択したが、３通りのうちいずれか２つの中からどちらかを選択するようにしてもよい。
【０４２５】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図１３に示されるブロックの位置関係は以下のように定めてもよい。ただし、その定め方は動き予測器２１２と対応させる必要がある。
【０４２６】
対象ブロックをNとし、フレームF６０１はブロックNを含むフレームである。フレームF６０２は既に符号化済みのフレームである。
【０４２７】
フレームF６０１において、ブロックJをブロックNの最も左上の画素の真左上の画素を含むブロック、ブロックKをブロックNの最も左上の画素の真上の画素を含むブロック、ブロックLをブロックNの最も右上の画素の真右上の画素を含むブロック、ブロックMをブロックNの最も左上の画素の真左の画素を含むブロックとする。
【０４２８】
フレームF６０２において、ブロックEはブロックJの動きベクトルが参照しているブロック、またはブロックKの動きベクトルが参照しているブロック、またはブロックLの動きベクトルが参照しているブロック、またはブロックMの動きベクトルが参照しているブロックとする。その際もブロックAをブロックEの最も左上の画素の真左上の画素を含むブロック、ブロックBをブロックEの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックEの最も右上の画素の真右上の画素を含むブロック、ブロックDをブロックEの最も左下の画素の真左の画素を含むブロック、ブロックFをブロックEの最も右上の画素の真右の画素を含むブロック、ブロックGをブロックEの最も左下の画素の真左下の画素を含むブロック、ブロックHをブロックEの最も右下の画素の真下の画素を含むブロック、ブロックIをブロックEの最も右下の画素の真右下の画素を含むブロックとする。
【０４２９】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックJが参照するブロック、あるいはブロックKが参照するブロック、あるいはブロックLが参照するブロック、あるいはブロックMが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（JあるいはKあるいはLあるいはM）が参照するブロックの動きベクトルとして用いるものとする。
【０４３０】
このとき、エントロピー符号化器２１４では、あらかじめ複数所持してある動きベクトル予測値決定方法を示す各インデックスの発生確率分布のテーブルを、ラインL２１５を経由して入力される確率切替信号に基づいて切り替える。具体的にはSignal_i(i=x,y)によって最も発生確率が高いインデックス、MViD_mean(i=x,y)によってその発生確率を予測し、それに応じた確率テーブルへの切り替えを行う。
【０４３１】
最後に、コンピュータを動画像符号化装置２０として動作させる動画像符号化プログラムについて説明する。図５２は、本実施形態に係る動画像符号化プログラムＰ２０の構成を示し、この動画像符号化プログラムＰ２０は、記録媒体に格納されて提供される。記録媒体としては、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭ等の記録媒体あるいは半導体メモリ等が例示される。なお、記録媒体に記憶されたプログラムを実行するためのコンピュータの構成は、既に説明した図６３、図６４の構成と同様であるため、重複した説明は省略する。
【０４３２】
図５２に示すように、動画像符号化プログラムＰ２０は、処理を統括するメインモジュールＰ２０１と、ブロック分割モジュールＰ２０２と、変換モジュールＰ２０３と、量子化モジュールＰ２０４と、逆量子化モジュールＰ２０５と、逆変換モジュールＰ２０６と、記憶モジュールＰ２０７と、予測信号生成モジュールＰ２０８と、動き予測モジュールＰ２０９と、動き検出モジュールＰ２１０と、加算モジュールＰ２１１と、減算モジュールＰ２１２と、確率切替信号生成モジュールＰ２１３と、エントロピー符号化モジュールＰ２１４とを備えている。
【０４３３】
ブロック分割モジュールＰ２０２、変換モジュールＰ２０３、量子化モジュールＰ２０４、逆量子化モジュールＰ２０５、逆変換モジュールＰ２０６、予測信号生成モジュールＰ２０８、動き予測モジュールＰ２０９、動き検出モジュールＰ２１０、加算モジュールＰ２１１、減算モジュールＰ２１２、確率切替信号生成モジュールＰ２１３、エントロピー符号化モジュールＰ２１４がコンピュータに実現させる機能は、それぞれ図１２のブロック分割器２０１、変換器２０７、量子化器２０８、逆量子化器２０９、逆変換器２１０、予測信号生成器２０４、動き予測器２１２、動き検出器２０３、加算器２１１、減算器２０６、確率切替信号生成器２１３、エントロピー符号化器２１４の機能と同様である。記憶モジュールＰ２０７がコンピュータに実現させる機能は、フレームメモリ２０２及び動きベクトルメモリ２０５の機能と同様である。
【０４３４】
［第３実施形態］
図２２を用いて、本発明に係る動画像符号化装置３０について説明する。
【０４３５】
動画像符号化装置３０は、機能的な構成要素として、図２２に示すように、ブロック分割器３０１と、フレームメモリ３０２と、動き検出器３０３と、予測信号生成器３０４と、動きベクトルメモリ３０５と、減算器３０６と、変換器３０７と、量子化器３０８と、逆量子化器３０９と、逆変換器３１０と、加算器３１１と、動き予測器３１２と、減算器３１３と、確率切替信号生成器３１４と、エントロピー符号化器３１５とを備えて構成される。
【０４３６】
動画像符号化装置３０に入力される入力映像信号（動画像信号）は、フレーム単位の画像信号（以下、フレーム画像信号）の時間系列で構成されている。
【０４３７】
ブロック分割器３０１は、ラインL３０１を経由して入力された入力映像信号の符号化対象となるフレーム画像信号を複数の領域（ブロック）に分割し、ラインL３０２を経由して符号化対象のブロック（以下、対象ブロック）の画像信号を出力する。本実施形態では８×８の画素からなるブロックに分割するが、それ以外の大きさまたは形に分割してもよい。このブロック単位で以下の符号化処理が行われる。
【０４３８】
フレームメモリ３０２は、ラインL３０３を経由して入力される過去に符号化済みのフレーム画像信号（以下、参照フレーム画像信号）を格納し、必要に応じてラインL３０４を経由して出力する。
【０４３９】
動き検出器３０３は、ラインL３０２を経由して入力される対象ブロックの画像信号のパターンに類似した画像信号パターンを、ラインL３０４を経由して入力される参照フレーム画像信号から所定範囲内で探索し、両画像信号パターン間の空間的な変位量である動きベクトルを検出し、ラインL３０５を経由して出力する。また、その動きベクトルが参照するフレームの番号（以下、参照フレーム番号）を検出し、ラインL３１６を経由して出力する。
【０４４０】
予測信号生成器３０４は、ラインL３０５を経由して入力される対象ブロックの動きベクトル信号値とラインL３１６を経由して入力される参照フレーム番号と、ラインL３０４を経由して入力される参照フレーム画像信号から、対象ブロックに対する予測画像信号を生成し、ラインL３０６を経由して出力する。
【０４４１】
動きベクトルメモリ３０５は、過去に符号化済みの動きベクトルや参照フレーム番号と併せて、ラインL３０５を経由して入力される動きベクトルとラインL３１６を経由して入力される参照フレーム番号を格納し、必要に応じてラインL３１２を経由して出力する。
【０４４２】
減算器３０６は、ラインL３０２を経由して入力された対象ブロックの画像信号から、ラインL３０６を経由して入力された対象ブロックに対する予測画像信号を減算し、残差信号を生成し、ラインL３０７を経由して出力する。
【０４４３】
変換器３０７は、ラインL３０７を経由して入力された残差信号を直交変換し、ラインL３０８を経由して変換係数を出力する。
【０４４４】
量子化器３０８は、ラインL３０８を経由して入力された変換係数を量子化し、ラインL３０９を経由して量子化された変換係数を出力する。
【０４４５】
逆量子化器３０９は、ラインL３０９を経由して入力された量子化された変換係数を逆量子化し、ラインL３１０を経由して復元された変換係数を出力する。
【０４４６】
逆変換器３１０は、ラインL３１０を経由して入力された変換係数を逆直交変換し、ラインL３１１を経由して復元された残差信号を出力する。
【０４４７】
加算器３１１は、ラインL３１１を経由して入力された残差信号と、ラインL３０６を経由して入力された対象ブロックに対する予測画像信号を加算し、対象ブロックの画像信号を復元し、ラインL３０３を経由して出力する。
【０４４８】
動き予測器３１２は、ラインL３１２を経由して入力される過去に符号化済みのブロックの動きベクトルと、それに対応した参照フレーム番号と、ラインL３１６を経由して入力される対象ブロックの参照フレーム番号から、対象ブロックの動きベクトル予測値を算出し、ラインL３１３を経由して出力する。動き予測器３１２の詳細な動作は、動き予測器１１２と同じであるとし、記載を省略する。
【０４４９】
減算器３１３は、ラインL３０５を経由して入力された対象ブロックの動きベクトル信号値から、ラインL３１３を経由して入力された対象ブロックの動きベクトル予測値を減算し、動きベクトル差分値を生成する。そしてラインL３１４を経由して動きベクトル差分値を出力する。
【０４５０】
確率切替信号生成器３１４はラインL３１２を経由して入力される過去に符号化済みのブロックの動きベクトルと、それに対応する参照フレーム番号と、ラインL３１６を経由して入力される対象ブロックの参照フレーム番号から、後述するフローに従って切り替える確率テーブルを示す確率切替信号を生成し、ラインL３１５を経由して出力する。
【０４５１】
エントロピー符号化器３１５は、ラインL３０９を経由して入力された量子化された変換係数を符号化する。また、ラインL３１５を経由して入力された確率切替信号に基づいて、エントロピー符号化を行う際に用いる確率テーブルを後述の方法で切り替えたのち、ラインL３１４を経由して入力された動きベクトル差分値を符号化する。そして符号化された変換係数および動きベクトル差分値を多重化したうえで、圧縮ストリームをラインL３１６に出力する。
【０４５２】
上記のようにエントロピー符号化を行う際に用いる確率テーブルを切り替えることは、動きベクトル差分値をその出現頻度に基づいた適切な符号量で符号化することによって、符号化効率を高める効果がある。
【０４５３】
確率切替信号生成器の３１４の詳細な動作は、動き予測器３１２の動作と対応させることが好ましい。以下では、動きベクトル予測値は符号化済みのブロックの動きベクトルから決定され、動きベクトル予測値を示すためのインデックスを符号化しない形態において説明を行うが、動きベクトル予測値を示すためのインデックスを符号化する形態においても適応できる。
【０４５４】
動き予測器３１２の動作が、前述の動き予測器１１２の図２と図４を用いて説明される動作をする場合、確率切替信号生成器の３１４の詳細な動作は図２の模式図と、図２３のフローチャートに従うことが好ましい。図２の説明は前述の動き予測器１１２における説明と同じである。
【０４５５】
このとき、確率切替信号は動きベクトル差分値の発生確率分布の尤もらしさを示すものであって、この信号に基づいて確率テーブルを切り替えてエントロピー符号化を行うことで、データの発生確率に応じた適切な符号量で動きベクトル差分値の符号化を行うことができる。
【０４５６】
確率切替信号生成器３１４では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に計算されるものとする。具体的にはまず動きベクトルのx成分の計算を行い、ｘ成分に相当する確率切替信号を出力し、次にｙ成分の計算を行い、y成分に相当する確率切替信号の出力を行う。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０４５７】
まず確率切替信号生成器３１４は、ラインL３１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルと対応する参照フレーム番号と、ラインL３１６を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ１２０１）。
【０４５８】
なおステップＳ１２０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０４５９】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０４６０】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０４６１】
また、ステップＳ１２０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０４６２】
続いて、ブロックBの動きベクトルとブロックEの動きベクトルの差分、ブロックCの動きベクトルとブロックFの動きベクトルの差分、ブロックDの動きベクトルとブロックEの動きベクトルの差分、ブロックDの動きベクトルとブロックFの動きベクトルの差分の４通りが算出される（ステップＳ１２０２）。
【０４６３】
次に、ステップＳ１２０２で算出された４通りの差分のうち、どの組み合わせの差分が最小のものであるかが判定される。（ステップＳ１２０３）。
【０４６４】
ステップＳ１２０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックBとブロックEである場合にはブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i(i=x,y)＝０を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックEの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックFである場合には、ブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックDとブロックEである場合には、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックDとブロックEの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックDとブロックFである場合には、ブロックHの動きベクトル予測値はブロックEの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の動きベクトル差分値MViD(i=x,y)をブロックDとブロックFの動きベクトルの差分値とする。（ステップＳ１２０４）。
【０４６５】
最後に、ステップＳ１２０４で決定された信号値Signal_i(i=x,y)およびMViD(i=x,y)を出力し（ステップＳ１２０５）、処理を終了する。
【０４６６】
なお、発生確率信号はSignal_i(i=x,y)のみでもよい。あるいはMViD(i=x,y)のみでもよい。
【０４６７】
なお、図２３のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分に相当する確率切替信号を同時に決定してもよい。
【０４６８】
このとき、エントロピー符号化器３１５では、あらかじめ複数所持してある動きベクトル差分値の発生確率分布のテーブルを、ラインL３１５を経由して入力される確率切替信号に基づいて切り替える。具体的にはSignal_i(i=x,y)によって動きベクトル予測値を引用する方向（x軸方向あるいはｙ軸方向あるいは時間方向）を予測し、MViD(i=x,y)によって動きベクトル差分値の発生確率を予測し、それらに応じた確率テーブルへの切り替えを行う。
【０４６９】
動き予測器３１２の動作が、前述の動き予測器１１２の図６と図７を用いて説明される動作をする場合、確率切替信号生成器の３１４の詳細な動作は図６の模式図と、図２４のフローチャートに従うことが好ましい。図６の説明は前述の動き予測器１１２における説明と同じである。
【０４７０】
このとき、確率切替信号は動きベクトル差分値の発生確率分布の尤もらしさを示すものであって、この信号に基づいて確率テーブルを切り替えてエントロピー符号化を行うことで、データの発生確率に応じた適切な符号量で動きベクトル差分値の符号化を行うことができる。
【０４７１】
確率切替信号生成器３１４では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に計算されるものとする。具体的にはまず動きベクトルのx成分の計算を行い、ｘ成分に相当する確率切替信号を出力し、次にｙ成分の計算を行い、y成分に相当する確率切替信号の出力を行う。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０４７２】
まず確率切替信号生成器３１４は、ラインL３１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルと対応する参照フレーム番号と、ラインL３１６を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ１３０１）。
【０４７３】
なおステップＳ１３０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０４７４】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０４７５】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０４７６】
また、ステップＳ１３０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０４７７】
続いて、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分、ブロックAの動きベクトルとブロックDの動きベクトルの差分、ブロックEの動きベクトルとブロックFの動きベクトルの差分、ブロックEの動きベクトルとブロックGの動きベクトルの差分の５通りが算出される（ステップＳ１３０２）。
【０４７８】
次に、ステップＳ１３０２で算出された５通りの差分のうち、どの組み合わせの差分が最小のものであるかが判定される。（ステップＳ１３０３）。
【０４７９】
ステップＳ１３０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックGの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックAとブロックDである場合には、ブロックHの動きベクトル予測値はブロックDの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックAとブロックDの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックEとブロックFである場合には、ブロックHの動きベクトル予測値はブロックGの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝３(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックEとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックEとブロックGである場合には、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝４(i=x,y)を生成するとともに、その際の動きベクトル差分値MViD(i=x,y)をブロックEとブロックGの動きベクトルの差分値とする。（ステップＳ１３０４）。
【０４８０】
最後に、ステップＳ１３０４で決定された信号値Signal_i(i=x,y)およびMViD(i=x,y)を出力し（ステップＳ７０５）、処理を終了する。
【０４８１】
なお、発生確率信号はSignal_i(i=x,y)のみでもよい。また、MViD(i=x,y)のみでもよい。
【０４８２】
なお、図２４のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分に相当する確率切替信号を同時に決定してもよい。
【０４８３】
また、ステップＳ１３０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分、ブロックAの動きベクトルとブロックDの動きベクトルの差分の３通りでもよい。その際もステップＳ１３０３で最小となる組み合わせが判定され、ステップＳ１３０４では、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックGの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックAとブロックDである場合には、ブロックHの動きベクトル予測値はブロックDの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックAとブロックDの動きベクトルの差分値とする。
【０４８４】
また、ステップＳ１３０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分の２通りでもよい。その際もステップＳ１３０３で最小となる組み合わせが判定され、ステップＳ１３０４では、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックGの動きベクトルの差分値とする。
【０４８５】
なお、図２４のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分に相当する確率切替信号を同時に決定してもよい。
【０４８６】
このとき、エントロピー符号化器３１５では、あらかじめ複数所持してある動きベクトル差分値の発生確率分布のテーブルを、ラインL３１５を経由して入力される確率切替信号に基づいて切り替える。具体的にはSignal_i(i=x,y)によって動きベクトル予測値を引用する方向（x軸方向あるいはｙ軸方向あるいは時間方向）を予測し、MViD(i=x,y)によって動きベクトル差分値の発生確率を予測し、それらに応じた確率テーブルへの切り替えを行う。
【０４８７】
動き予測器３１２の動作が、前述の動き予測器１１２の図８と図９を用いて説明される動作と同じ場合、確率切替信号生成器の３１４の詳細な動作は図８の模式図と、図２５のフローチャートに従うことが好ましい。図８の説明は前述の動き予測器１１２における説明と同じである。
【０４８８】
このとき、確率切替信号は動きベクトル差分値の発生確率分布の尤もらしさを示すものであって、この信号に基づいて確率テーブルを切り替えてエントロピー符号化を行うことで、データの発生確率に応じた適切な符号量で動きベクトル差分値の符号化を行うことができる。
【０４８９】
確率切替信号生成器３１４では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に計算されるものとする。具体的にはまず動きベクトルのx成分の計算を行い、ｘ成分に相当する確率切替信号を出力し、次にｙ成分の計算を行い、y成分に相当する確率切替信号の出力を行う。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０４９０】
まず確率切替信号生成器３１４は、ラインL３１２を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、Iの動きベクトルと対応する参照フレーム番号と、ラインL３１６を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ１４０１）。
【０４９１】
なおステップＳ２０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０４９２】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、Iの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０４９３】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０４９４】
また、ステップＳ１４０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０４９５】
続いて、ブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの分散、ブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルの分散、ブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルの分散、の３組の分散をそれぞれ算出する。（ステップＳ１４０２）
次に、ステップＳ１４０２で算出された３通りの分散のうち、どの組み合わせの分散が最小のものであるかが判定される。（ステップＳ１４０３）。
【０４９６】
ステップＳ１４０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックAとブロックBとブロックCである場合には、ブロックJの動きベクトル予測値はブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの平均値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の分散MVi_var(i=x,y)をブロックAとブロックBとブロックCの動きベクトルの分散とする。もっとも小さい差分を与える組み合わせがブロックDとブロックEとブロックFである場合には、ブロックJの動きベクトル予測値はブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルの平均値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の分散MVi_var(i=x,y)をブロックDとブロックEとブロックFの動きベクトルの分散とする。もっとも小さい差分を与える組み合わせがブロックGとブロックHとブロックIである場合には、ブロックJの動きベクトル予測値はブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルの平均値に決定されることが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の分散MVi_var(i=x,y)をブロックGとブロックHとブロックIの動きベクトルの分散とする。（ステップＳ１４０４）。
【０４９７】
最後に、ステップＳ１４０４で決定された信号値Signal_i(i=x,y)およびMVi_var(i=x,y)を出力し（ステップＳ１４０５）、処理を終了する。
【０４９８】
なお、発生確率信号はSignal_i(i=x,y)のみでもよい。また、MVi_var(i=x,y)のみでもよい。
【０４９９】
なお、図２５のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分に相当する確率切替信号を同時に決定してもよい。
【０５００】
また、ステップＳ１４０２において動きベクトルの類似性をあらわす値として分散を用いたが、各ブロック間の動きベクトルの差分値や、それら複数の差分値の平均を用いてもよい。
【０５０１】
ステップＳ１４０４において、３つの動きベクトルの平均値を動きベクトルの予測値とすることが尤もらしいことを示す信号を生成したが、３つの動きベクトルの中間値、あるいはいずれかひとつの値を予測値とすることが尤もらしいことを示していてもよい。
【０５０２】
図２５では時間方向、空間方向にそれぞれ連続する３ブロックの動きベクトルを参照して確率切替信号の決定を行ったが、これは空間方向のみでもよい。またそれぞれの方向に２ブロックのみ、あるいは４ブロック以上のブロックを用いてもよい。
【０５０３】
このとき、エントロピー符号化器３１５では、あらかじめ複数所持してある動きベクトル差分値の発生確率分布のテーブルを、ラインL３１５を経由して入力される確率切替信号に基づいて切り替える。具体的にはSignal_i(i=x,y)によって動きベクトル予測値を引用する方向（x軸方向あるいはｙ軸方向あるいは時間方向）を予測し、MViD_var(i=x,y)によって動きベクトル差分値の発生確率を予測し、それらに応じた確率テーブルへの切り替えを行う。
【０５０４】
最後に、コンピュータを動画像符号化装置３０として動作させる動画像符号化プログラムについて説明する。図５３は、本実施形態に係る動画像符号化プログラムＰ３０の構成を示し、この動画像符号化プログラムＰ３０は、記録媒体に格納されて提供される。記録媒体としては、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭ等の記録媒体あるいは半導体メモリ等が例示される。なお、記録媒体に記憶されたプログラムを実行するためのコンピュータの構成は、既に説明した図６３、図６４の構成と同様であるため、重複した説明は省略する。
【０５０５】
図５３に示すように、動画像符号化プログラムＰ３０は、処理を統括するメインモジュールＰ３０１と、ブロック分割モジュールＰ３０２と、変換モジュールＰ３０３と、量子化モジュールＰ３０４と、逆量子化モジュールＰ３０５と、逆変換モジュールＰ３０６と、記憶モジュールＰ３０７と、予測信号生成モジュールＰ３０８と、動き予測モジュールＰ３０９と、動き検出モジュールＰ３１０と、加算モジュールＰ３１１と、減算モジュールＰ３１２と、確率切替信号生成モジュールＰ３１３と、エントロピー符号化モジュールＰ３１４とを備えている。
【０５０６】
ブロック分割モジュールＰ３０２、変換モジュールＰ３０３、量子化モジュールＰ３０４、逆量子化モジュールＰ３０５、逆変換モジュールＰ３０６、予測信号生成モジュールＰ３０８、動き予測モジュールＰ３０９、動き検出モジュールＰ３１０、加算モジュールＰ３１１、確率切替信号生成モジュールＰ３１３、エントロピー符号化モジュールＰ３１４がコンピュータに実現させる機能は、それぞれ図２２のブロック分割器３０１、変換器３０７、量子化器３０８、逆量子化器３０９、逆変換器３１０、予測信号生成器３０４、動き予測器３１２、動き検出器３０３、加算器３１１、確率切替信号生成器３１４、エントロピー符号化器３１５の機能と同様である。記憶モジュールＰ３０７がコンピュータに実現させる機能は、フレームメモリ３０２及び動きベクトルメモリ３０５の機能と同様である。また、減算モジュールＰ３１２がコンピュータに実現させる機能は、減算器３０６、３１３の機能と同様である。
【０５０７】
［第４実施形態］
図２６を用いて、本発明に係る動画像復号装置４０について説明する。
【０５０８】
動画像復号装置４０は、機能的な構成要素として、図１９に示すように、データ解析器４０１と、逆量子化器４０２と、逆変換器４０３と、フレームメモリ４０４と、動きベクトルメモリ４０５と、動き予測器４０６と、加算器４０７と、予測信号生成器４０８と、加算器４０９とを備えて構成される。
【０５０９】
動画像復号装置４０には、上述した動画像符号化装置によって符号化された圧縮ストリームを入力する。この圧縮ストリームには、復号対象となるブロックの原信号と予測信号の差分を表す残差信号と、復号対象となるブロックの予測信号の生成に関する情報が含まれている。
【０５１０】
データ解析器４０１は、ラインL４０１を経由して入力された圧縮ストリームを解析することにより、直行変換および量子化された復号の対象となるブロック（以下、対象ブロック）の残差信号を抽出しラインL４０２を経由して出力する。また、対象ブロックの動きベクトルとその予測値の差分である動きベクトル差分値を抽出し、ラインL４０３を経由して出力する、また対象ブロックの参照フレーム番号を抽出し、ラインL４０４を経由して出力する。
【０５１１】
逆量子化器４０２は、ラインL４０２を経由して入力された量子化された変換係数を逆量子化し、ラインL４０５を経由して復元された変換係数を出力する。
【０５１２】
逆変換器４０３は、ラインL４０５を経由して入力された変換係数を逆直交変換し、ラインL４０６を経由して復元された残差信号を出力する。
【０５１３】
フレームメモリ４０４は、ラインL４０７を経由して入力される過去に復号済みのフレーム画像信号（以下、参照フレーム画像信号）を格納し、必要に応じてラインL４０８を経由して出力する。
【０５１４】
動きベクトルメモリ４０５は、過去に復号済みの動きベクトルとそれに対応した参照フレーム番号と併せて、ラインL４０９を経由して入力される対象ブロックの動きベクトルとラインL４０４を経由して入力される対象ブロックの参照フレーム番号を格納し、必要に応じてラインL４１０を経由して出力する。
【０５１５】
動き予測器４０６は、ラインL４１０を経由して入力される過去に復号済みのブロックの動きベクトルから、後述のフローに従って対象ブロックの動きベクトル予測値を算出し、ラインL４１１を経由して出力する。
【０５１６】
加算器４０７は、ラインL４１１を経由して入力された動きベクトル予測値と、ラインL４０３を経由して入力された動きベクトル差分値を加算し、対象ブロックの動きベクトルを復元し、ラインL４０９を経由して出力する。
【０５１７】
予測信号生成器４０８は、ラインL４０９を経由して入力される対象ブロックの動きベクトル信号値と、ラインL４０４を経由して入力される対象ブロックの参照フレーム番号と、ラインL４０８を経由して入力される参照フレーム画像信号から、対象ブロックに対する予測画像信号を生成し、ラインL４１２を経由して出力する。
【０５１８】
加算器４０９は、ラインL４０６を経由して入力された残差信号と、ラインL４１２を経由して入力された対象ブロックに対する予測画像信号を加算し、対象ブロックの画像信号を復元し、ラインL４０７を経由して出力する。
【０５１９】
次に、図２７を参照して動き予測器４０６について詳細に説明する。図２７は、動き予測器４０６における動きベクトル予測値を決定する手順を説明するための模式図である。
【０５２０】
図２７で、対象ブロックをHとし、フレームF７０１はブロックHを含むフレームである。フレームF７０２は既に復号済みのフレームで、フレームF７０１とは時間方向で隣り合うフレームである。
【０５２１】
フレームF７０１において、ブロックDをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックEをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０５２２】
フレームF７０２において、ブロックAはブロックHの最も左上の画素と同じ空間位置の画素を含むブロックとする。ブロックBをブロックAの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックAの最も左上の画素の真左の画素を含むブロックとする。
【０５２３】
図２８は、動き予測器４０６における動きベクトル予測値を決定する手順を説明するためのフローチャートである。
【０５２４】
まず動き予測器４０６は、ラインL４１０を経由して入力される復号済みのブロックＡ、Ｂ、Ｃ、E、Fの動きベクトルと対応する参照フレーム番号を取得する（ステップＳ１５０１）。
【０５２５】
なおステップＳ１５０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０５２６】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、Ｂ、Ｃ、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０５２７】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０５２８】
また、ステップＳ１５０１において復号済みのブロックそのもの、あるいは復号済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０５２９】
続いて、ブロックBの動きベクトルとブロックEの動きベクトルの差分、ブロックCの動きベクトルとブロックFの動きベクトルの差分が算出される（ステップＳ１５０２）。
【０５３０】
次に、ステップＳ１５０２で算出された２通りの差分のうち、少なくとも１つが閾値以下かどうかが判定される（ステップＳ１５０３）。
【０５３１】
ステップＳ１５０３での判定の結果、２通りの差分のうち、少なくとも１つが閾値以下ならば（ステップＳ１５０３：YES）処理をステップＳ１５０４に進める。２通りの差分がともに閾値より大きいならば（ステップＳ１５０３：NO）処理をステップＳ１５０５に進める。
【０５３２】
ステップＳ１５０４では、ブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定される。
【０５３３】
ステップＳ１５０５では、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定される。
【０５３４】
最後に、決定された値PMVi(i=x,y)を出力し（ステップＳ１５０６）、処理を終了する。
【０５３５】
なお、ステップＳ１５０３における判定は２通りの差分の両方が閾値以下かどうかを判定しても良い。
【０５３６】
また、ステップＳ１５０５でブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値としたが、動きベクトルをゼロベクトル（すなわち、動きベクトルの予測をしない）としてもよい。あらかじめ決められた任意の動きベクトルを予測値としてもよい。
【０５３７】
また、動き予測器４０６における動きベクトル予測値の決定は、図２９のフローチャートに従ってもよい。
【０５３８】
図２９では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０５３９】
まず動き予測器４０６は、ラインL４１０を経由して入力される復号済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルと対応する参照フレーム番号を取得する（ステップＳ１６０１）。
【０５４０】
なおステップＳ１６０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０５４１】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０５４２】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０５４３】
また、ステップＳ１６０１において復号済みのブロックそのもの、あるいは復号済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０５４４】
続いて、ブロックBの動きベクトルとブロックEの動きベクトルの差分、ブロックCの動きベクトルとブロックFの動きベクトルの差分、ブロックDの動きベクトルとブロックEの動きベクトルの差分、ブロックDの動きベクトルとブロックFの動きベクトルの差分の４通りが算出される（ステップＳ１６０２）。
【０５４５】
次に、ステップＳ１６０２で算出された４通りの差分のうち、どの組み合わせの差分が最小のものであるかが判定される。（ステップＳ１６０３）。
【０５４６】
ステップＳ１６０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックBとブロックEである場合にはブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定される。ブロックCとブロックFである場合には、ブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定される。ブロックDとブロックEである場合には、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定される。ブロックDとブロックFである場合には、ブロックHの動きベクトル予測値はブロックEの動きベクトルと同じ値に決定される（ステップＳ１６０４）。
【０５４７】
最後に、ステップＳ１６０４で決定された値PMVi(i=x,y)を出力し（ステップＳ１６０５）、処理を終了する。
【０５４８】
なお、図２９のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を同時に決定してもよい。
【０５４９】
また、動き予測器４０６における動きベクトル予測値を決定する手順は図３０で説明されるフローチャートに従ってもよい。動きベクトルｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０５５０】
まず動き予測器４０６は、ラインL４１０を経由して入力される復号済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルと対応する参照フレーム番号を取得する（ステップＳ１７０１）。
【０５５１】
なおステップＳ１７０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０５５２】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０５５３】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０５５４】
また、ステップＳ１７０１において復号済みのブロックそのもの、あるいは復号済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０５５５】
続いて、ブロックDの動きベクトルとブロックEの動きベクトルの差分、およびブロックDの動きベクトルとブロックFの動きベクトルの差分が算出され、前者のほうが大きい場合（ステップＳ１７０２：YES）は処理をステップＳ１７０３に進める。それに該当しない場合（ステップＳ１７０２：NO）は処理をステップＳ１７０４に進める（ステップＳ１７０２）。
【０５５６】
ステップＳ１７０３では、ブロックEの動きベクトルとブロックBの動きベクトルの差分、およびブロックDの動きベクトルとブロックFの動きベクトルの差分が算出され、前者のほうが大きい場合（ステップＳ１７０３：YES）は処理をステップＳ１７０５に進める。それに該当しない場合（ステップＳ１７０３：NO）は処理をステップＳ１７０６に進める。
【０５５７】
ステップＳ１７０４では、ブロックCの動きベクトルとブロックFの動きベクトルの差分、およびブロックCの動きベクトルとブロックAの動きベクトルの差分が算出され、前者のほうが大きい場合（ステップＳ１７０４：YES）は処理をステップＳ１７０７に進める。それに該当しない場合（ステップＳ１７０４：NO）は処理をステップＳ１７０８に進める。
【０５５８】
ステップＳ１７０５では、ブロックHの動きベクトル予測値はブロックEの動きベクトルと同じ値に決定される。
【０５５９】
ステップＳ１７０６では、ブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定される。
【０５６０】
ステップＳ１７０７では、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定される。
【０５６１】
ステップＳ１７０８では、ブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定される。
【０５６２】
最後に、決定された動きベクトル予測値PMVi(i=x,y)を出力し（ステップＳ１７０９）、処理を終了する。
【０５６３】
なお、図３０のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を同時に決定してもよい。
【０５６４】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図２７に示されるブロックの位置関係は以下のように定めてもよい。その際の動きベクトル予測値を決定する手順は図２８あるいは図２９あるいは図３０で説明されるフローチャートのどれに従ってもよい。
【０５６５】
対象ブロックをHとし、フレームF７０１はブロックHを含むフレームである。フレームF７０２は既に復号済みのフレームである。
【０５６６】
フレームF７０１において、ブロックDをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックEをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０５６７】
フレームF７０２において、ブロックAはブロックDの動きベクトルが参照しているブロック、またはブロックEの動きベクトルが参照しているブロック、またはブロックFの動きベクトルが参照しているブロックとする。その際もブロックBをブロックAの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックAの最も左上の画素の真左の画素を含むブロックとする。
【０５６８】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックDが参照するブロック、あるいはブロックEが参照するブロック、あるいはブロックFが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（DあるいはEあるいはF）が参照するブロックの動きベクトルとして用いるものとする。
【０５６９】
また、動き予測器４０６における動きベクトルの予測値の決定は、以下に示すように行われても良い。
【０５７０】
図３１は、動き予測器４０６における動きベクトルの予測値の決定手順の説明に用いる模式図である。
【０５７１】
図３１で、対象ブロックをHとし、フレームF８０１はブロックHを含むフレームである。フレームF８０２は既に復号済みのフレームで、フレームF８０１とは時間方向で隣り合うフレームである。フレームF８０３は既に復号済みのフレームで、フレームF８０２とは時間方向で隣り合うフレームである。
【０５７２】
フレームF８０１において、ブロックEをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０５７３】
フレームF８０２において、ブロックDはブロックHの最も左上の画素と同じ空間位置の画素を含むブロック、ブロックBをブロックDの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックDの最も左上の画素の真左の画素を含むブロックとする。
【０５７４】
フレームF８０３において、ブロックAはブロックDの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０５７５】
図３２は、動き予測器４０６における動きベクトル予測値を決定する手順を説明するためのフローチャートである。
【０５７６】
図３２では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０５７７】
まず動き予測器４０６は、ラインL４１０を経由して入力される復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルと対応する参照フレーム番号を取得する（ステップＳ１８０１）。
【０５７８】
なおステップＳ１８０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０５７９】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０５８０】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０５８１】
また、ステップＳ１８０１において復号済みのブロックそのもの、あるいは復号済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０５８２】
続いて、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分、ブロックAの動きベクトルとブロックDの動きベクトルの差分、ブロックEの動きベクトルとブロックFの動きベクトルの差分、ブロックEの動きベクトルとブロックGの動きベクトルの差分の５通りが算出される（ステップＳ１８０２）。
【０５８３】
次に、ステップＳ１８０２で算出された５通りの差分のうち、どの組み合わせの差分が最小のものであるかが判定される。（ステップＳ１８０３）。
【０５８４】
ステップＳ１８０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定される。ブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定される。ブロックAとブロックDである場合には、ブロックHの動きベクトル予測値はブロックDの動きベクトルと同じ値に決定される。ブロックEとブロックFである場合には、ブロックHの動きベクトル予測値はブロックGの動きベクトルと同じ値に決定される。ブロックEとブロックGである場合には、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定される。（ステップＳ１８０４）。
【０５８５】
最後に、ステップＳ１８０４で決定された値PMVi(i=x,y)を出力し（ステップＳ１８０５）、処理を終了する。
【０５８６】
なお、図３２のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を同時に決定してもよい。
【０５８７】
また、ステップＳ１８０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分、ブロックAの動きベクトルとブロックDの動きベクトルの差分の３通りでもよい。その際もステップＳ１８０３で最小となる組み合わせが判定され、ステップＳ１８０４では、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定される。ブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定される。ブロックAとブロックDである場合には、ブロックHの動きベクトル予測値はブロックDの動きベクトルと同じ値に決定される。
【０５８８】
また、ステップＳ１８０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分の２通りでもよい。その際もステップＳ１８０３で最小となる組み合わせが判定され、ステップＳ１８０４では、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定される。ブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定される。
【０５８９】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図３１に示されるブロックの位置関係は以下のように定めてもよい。
【０５９０】
対象ブロックをHとし、フレームF８０１はブロックHを含むフレームである。フレームF８０２は既に復号済みのフレームである。フレームF８０３は既に復号済みのフレームである。
【０５９１】
フレームF８０１において、ブロックEをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０５９２】
フレームF８０２において、ブロックDはブロックEの動きベクトルが参照しているブロック、またはブロックFの動きベクトルが参照しているブロック、またはブロックGの動きベクトルが参照しているブロックとする。その際もブロックBをブロックDの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックDの最も左上の画素の真左の画素を含むブロックとする。
【０５９３】
フレームF８０３において、ブロックAはブロックDの動きベクトルが参照しているブロックとする。
【０５９４】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックEが参照するブロック、あるいはブロックFが参照するブロック、あるいはブロックGが参照するブロック、あるいはブロックDが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（EあるいはFあるいはGあるいはD）が参照するブロックの動きベクトルとして用いるものとする。
【０５９５】
また、動き予測器４０６における動きベクトルの予測値の決定は、以下に示すように空間的に１画素以上隔てられたブロックの動きベクトルや、時間方向で１フレーム以上隔てられたフレームにあるブロックの動きベクトルに基づいて行われてもよい。
【０５９６】
このような動きベクトルの予測値の決定方法は、動きベクトルの大勢を反映した予測をすることで、高精度の動きベクトル予測値を得る効果がある。また、ノイズや局所的な変化による影響を打ち消す効果もある。
【０５９７】
また、動き予測器４０６における動きベクトルの予測値は、過去に復号済みのブロックの動きベクトルをそのまま引用して動きベクトル予測値とする代わりに、以下に示すように複数ある動きベクトルの決定方法の中からひとつを選択して、その決定方法にしたがって決定してもよい。
【０５９８】
図３３は、動き予測器４０６における動きベクトルの予測値の決定手順の説明に用いる模式図である。
【０５９９】
図３３で、対象ブロックをJとし、フレームF９０１はブロックJを含むフレームである。フレームF９０２は既に復号済みのフレームで、フレームF９０１とは時間方向で隣り合うフレームである。フレームF９０３は既に復号済みのフレームで、フレームF９０２とは時間方向で隣り合うフレームである。フレームF９０４は既に復号済みのフレームで、フレームF９０３とは時間方向で隣り合うフレームである。
【０６００】
フレームF９０１において、ブロックIをブロックJの最も左上の画素の真上の画素を含むブロック、ブロックHをブロックIの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックJの最も左上の画素の真左の画素を含むブロック、ブロックEをブロックFの最も左上の画素の真左の画素を含むブロック、ブロックDをブロックEの最も左上の画素の真左の画素を含むブロックとする。
【０６０１】
フレームF９０２において、ブロックCはブロックJの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０６０２】
フレームF９０３において、ブロックBはブロックCの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０６０３】
フレームF９０４において、ブロックAはブロックBの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０６０４】
図３４は、動き予測器４０６における動きベクトル予測値を決定する手順を説明するためのフローチャートである。動きベクトルｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０６０５】
まず動き予測器４０６は、ラインL４１０を経由して入力される復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、Iの動きベクトルと対応する参照フレーム番号とラインL１１５を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ１９０１）。
【０６０６】
なおステップＳ１９０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０６０７】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、Iの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０６０８】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０６０９】
また、ステップＳ１９０１において復号済みのブロックそのもの、あるいは復号済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０６１０】
続いて、ブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの分散、ブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルの分散、ブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルの分散、の３組の分散をそれぞれ算出する。（ステップＳ１９０２）
次に、ステップＳ１９０２で算出された３通りの分散のうち、どの組み合わせの分散が最小のものであるかが判定される。（ステップＳ１９０３）。
【０６１１】
ステップＳ１９０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックAとブロックBとブロックCである場合には、ブロックJの動きベクトル予測値はブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの平均値に決定される。ブロックDとブロックEとブロックFである場合には、ブロックJの動きベクトル予測値はブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルの平均値に決定される。ブロックGとブロックHとブロックIである場合には、ブロックJの動きベクトル予測値はブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルの平均値に決定される（ステップＳ１９０４）。
【０６１２】
最後に、ステップＳ１９０４で決定された値PMVi(i=x,y)を出力し（ステップＳ１９０５）、処理を終了する。
【０６１３】
なお、図３４のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を同時に決定してもよい。
【０６１４】
また、ステップＳ１９０２において動きベクトルの類似性をあらわす値として分散を用いたが、標準偏差や、各ブロック間の動きベクトルの差分値や、それら複数の差分値の平均を用いてもよい。
【０６１５】
ステップＳ１９０４において、３つの動きベクトルの平均値を動きベクトルの予測値としたが、３つの動きベクトルの中間値、あるいはいずれかひとつの値を予測値としてもよい。
【０６１６】
図３４では時間方向、空間方向にそれぞれ連続する３ブロックの動きベクトルを参照して動きベクトル予測値の決定を行ったが、これは時間方向のみでもよい。またそれぞれの方向に２ブロックのみ、あるいは４ブロック以上のブロックを用いてもよい。また時間方向で隣り合うフレームのブロックと空間方向で１ブロック以上隔てたブロックを組み合わせて用いてもよい。
【０６１７】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図３３に示されるブロックの位置関係は以下のように定めてもよい。
【０６１８】
対象ブロックをJとし、フレームF９０１はブロックJを含むフレームであり、フレームF９０２、F９０３、F９０４は既に復号済みのフレームである。
【０６１９】
フレームF９０１において、ブロックIをブロックJの最も左上の画素の真上の画素を含むブロック、ブロックHをブロックIの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックJの最も左上の画素の真左の画素を含むブロック、ブロックEをブロックFの最も左上の画素の真左の画素を含むブロック、ブロックDをブロックEの最も左上の画素の真左の画素を含むブロックとする。
【０６２０】
フレームF９０２において、ブロックCはブロックIの動きベクトルが参照しているブロック、またはブロックFの動きベクトルが参照しているブロック、またはブロックJの最も左上の画素の真左上の画素を含むブロック（ブロックKとする）の動きベクトルが参照しているブロックとする。
【０６２１】
フレームF９０３において、ブロックBはブロックCの動きベクトルが参照しているブロックとする。
【０６２２】
フレームF９０４において、ブロックAはブロックBの動きベクトルが参照しているブロックとする。
【０６２３】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックI、ブロックF、ブロックK、ブロックC、ブロックBが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（IあるいはFあるいはKあるいはCあるいはB）が参照するブロックの動きベクトルとして用いるものとする。
【０６２４】
さらに、動き予測器４０６における動きベクトルの予測値の決定は、以下に示すように空間的に１画素以上隔てられたブロックの動きベクトル、または時間方向で１フレーム以上隔てられたフレームにあるブロックの動きベクトルに基づいて行われてもよい。
【０６２５】
このような動きベクトルの予測値の決定方法は、動きベクトルの大勢を反映した予測をすることで、高精度の動きベクトル予測値を得る効果がある。また、ノイズや局所的な変化による影響を打ち消す効果もある。
【０６２６】
また、動き予測器４０６における動きベクトルの予測値は、過去に復号済みのブロックの動きベクトルをそのまま引用して動きベクトル予測値とする代わりに、以下に示すように複数ある動きベクトルの決定方法の中からひとつを選択して、その決定方法にしたがって決定してもよい。
【０６２７】
図３５は、動き予測器４０６における動きベクトルの予測値の決定手順の説明に用いる模式図である。
【０６２８】
図３５で、対象ブロックをMとし、フレームF１００１はブロックMを含むフレームである。フレームF１００２は既に復号済みのフレームで、フレームF１００１とは時間方向で隣り合うフレームである。フレームF１００３は既に復号済みのフレームで、フレームF１００２とは時間方向で隣り合うフレームである。フレームF１００４は既に復号済みのフレームで、フレームF１００３とは時間方向で隣り合うフレームである。
【０６２９】
フレームF１００１において、ブロックIをブロックMの最も左上の画素の真上の画素を含むブロック、ブロックHをブロックIの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックMの最も左上の画素の真左の画素を含むブロック、ブロックEをブロックFの最も左上の画素の真左の画素を含むブロック、ブロックDをブロックEの最も左上の画素の真左の画素を含むブロックとする。また、ブロックKをブロックMの最も左上の画素の真左上の画素を含むブロック、ブロックLをブロックKの最も左上の画素の真上の画素を含むブロック、ブロックJをブロックMの最も右上の画素の真右上の画素を含むブロックとする。
【０６３０】
フレームF１００２において、ブロックCはブロックMの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０６３１】
フレームF１００３において、ブロックBはブロックCの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０６３２】
フレームF１００４において、ブロックAはブロックBの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０６３３】
図３６は、動き予測器４０６における動きベクトル予測値を決定する手順を説明するためのフローチャートである。
【０６３４】
まず動き予測器４０６は、ラインL４１０を経由して入力される復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、I、J、K、Lの動きベクトルと対応する参照フレーム番号を取得する（ステップＳ２００１）。
【０６３５】
なおステップＳ２００１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０６３６】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、I、J、K、Lの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０６３７】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０６３８】
また、ステップＳ２００１において復号済みのブロックそのもの、あるいは復号済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０６３９】
続いて、ブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルのx成分の分散、ブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルのx成分の分散、ブロックJの動きベクトルとブロックKの動きベクトルとブロックIの動きベクトルのx成分の分散、の３組のx成分の分散をそれぞれ算出する。（ステップＳ２００２）
次に、ステップＳ２００２で算出された３通りの分散のうち、どの組み合わせの分散が最小のものであるかが判定される。（ステップＳ２００３）。
【０６４０】
ステップＳ２００３での判定の結果、もっとも小さい差分を与える組み合わせがブロックAとブロックBとブロックCである場合には、ブロックMの動きベクトル予測値のx成分はブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルのｘ成分の平均値に決定される。ブロックDとブロックEとブロックFである場合には、ブロックMの動きベクトル予測値のx成分はブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルのｘ成分の平均値に決定される。ブロックJとブロックKとブロックIである場合には、ブロックMの動きベクトル予測値のx成分はブロックJの動きベクトルとブロックKの動きベクトルとブロックIの動きベクトルのx成分の平均値に決定される（ステップＳ２００４）。
【０６４１】
続いて、ブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルのy成分の分散、ブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルのy成分の分散、ブロックLの動きベクトルとブロックKの動きベクトルとブロックFの動きベクトルのy成分の分散、の３組のy成分の分散をそれぞれ算出する。（ステップＳ２００５）
次に、ステップＳ２００５で算出された３通りの分散のうち、どの組み合わせの分散が最小のものであるかが判定される。（ステップＳ２００６）。
【０６４２】
ステップＳ２００６での判定の結果、もっとも小さい差分を与える組み合わせがブロックAとブロックBとブロックCである場合には、ブロックMの動きベクトル予測値のy成分はブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルのy成分の平均値に決定される。ブロックGとブロックHとブロックIである場合には、ブロックMの動きベクトル予測値のy成分はブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルのy成分の平均値に決定される。ブロックLとブロックKとブロックFである場合には、ブロックMの動きベクトル予測値のy成分はブロックLの動きベクトルとブロックKの動きベクトルとブロックFの動きベクトルのy成分の平均値に決定される（ステップＳ２００７）。
【０６４３】
最後に、ステップＳ２００７で決定された値PMVi(i=x,y)を出力し（ステップＳ２００８）、処理を終了する。
【０６４４】
また、ステップＳ２００２、ステップＳ２００５において動きベクトルの類似性をあらわす値として分散を用いたが、標準偏差や、各ブロック間の動きベクトルの差分値や、それら複数の差分値の平均を用いてもよい。
【０６４５】
ステップＳ２００４、ステップＳ２００７において、３つの動きベクトルの平均値を動きベクトルの予測値としたが、３つの動きベクトルの中間値、あるいはいずれかひとつの値を予測値としてもよい。
【０６４６】
図３６では時間方向、空間方向にそれぞれ連続する３ブロックの動きベクトルを参照して動きベクトル予測値の決定を行ったが、空間方向のみでもよい。またそれぞれの方向に２ブロックのみ、あるいは４ブロック以上のブロックを用いてもよい。また時間方向で隣り合うフレームのブロックと空間方向で１ブロック以上隔てたブロックを組み合わせて用いてもよい。
【０６４７】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図３５に示されるブロックの位置関係は以下のように定めてもよい。
【０６４８】
対象ブロックをMとし、フレームF１００１はブロックMを含むフレームであり、フレームF１００２、F１００３、F１００４は既に復号済みのフレームである。
【０６４９】
フレームF１００１において、ブロックIをブロックMの最も左上の画素の真上の画素を含むブロック、ブロックHをブロックIの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックMの最も左上の画素の真左の画素を含むブロック、ブロックEをブロックFの最も左上の画素の真左の画素を含むブロック、ブロックDをブロックEの最も左上の画素の真左の画素を含むブロックとする。また、ブロックKをブロックMの最も左上の画素の真左上の画素を含むブロック、ブロックLをブロックKの最も左上の画素の真上の画素を含むブロック、ブロックJをブロックMの最も右上の画素の真右上の画素を含むブロックとする。
【０６５０】
フレームF１００２において、ブロックCはブロックIの動きベクトルが参照しているブロック、またはブロックKの動きベクトルが参照しているブロック、またはブロックFの動きベクトルが参照しているブロックとする。
【０６５１】
フレームF１００３において、ブロックBはブロックCの動きベクトルが参照しているブロックとする。
【０６５２】
フレームF１００４において、ブロックAはブロックBの動きベクトルが参照しているブロックとする。
【０６５３】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックI、ブロックK、ブロックF、ブロックC、ブロックBが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（IあるいはKあるいはFあるいはCあるいはB）が参照するブロックの動きベクトルとして用いるものとする。
【０６５４】
ところで、動きベクトル予測値を算出する際に、周辺にある過去に復号済みの動きベクトルから一部の動きベクトルを選択するのではなく、以下のように重み付けによって周辺の動きベクトルを有効利用する方法を採用してもよい。この場合、重み付けによって周辺の動きベクトルを有効利用することで、局所的な動きベクトルの変化の影響を少なくし、動きベクトルの変化の大勢を反映した予測値を得ることができ、予測精度を高めることができる。
【０６５５】
以下では、重み付けによる周辺の動きベクトル利用方法を、(a)図２７のブロックに適用した例、(b)図３１のブロックに適用した例、(c)図３３のブロックに適用した例を、順に説明する。
【０６５６】
まず、(a)図２７のブロックに適用した例としては、例えば、図６０のフローチャートが挙げられる。即ち、動き予測器４０６における動きベクトル予測値を決定する手順は、図６０のフローチャートに従って実行すればよい。動きベクトルｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０６５７】
まず動き予測器４０６は、ラインL４１０を経由して入力される復号済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルと対応する参照フレーム番号を取得する（ステップＳ３３０１）。
【０６５８】
なおステップＳ３３０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０６５９】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０６６０】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０６６１】
また、ステップＳ３３０１において復号済みのブロックそのもの、あるいは復号済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０６６２】
続いて、ブロックBの動きベクトルとブロックEの動きベクトルの差分ＭＶiＤ＿０(i=x,y)、ブロックCの動きベクトルとブロックFの動きベクトルの差分ＭＶiＤ＿１(i=x,y)、ブロックDの動きベクトルとブロックEの動きベクトルの差分ＭＶiＤ＿２(i=x,y)、ブロックDの動きベクトルとブロックFの動きベクトルの差分ＭＶiＤ＿３(i=x,y)、が算出される（ステップＳ３３０２）。
【０６６３】
次に、ステップＳ３３０２で算出された各差分を変数とする関数Ｆを用いた前述の式（２）に基づいて、ブロックＡ、Ｆ、Ｅの動きベクトル全てを有効利用して、動きベクトル予測値PMVi(i=x,y)を算出する（ステップＳ３３０３）。
【０６６４】
最後に、算出された動きベクトル予測値PMVi(i=x,y)を出力し（ステップＳ３３０４）、処理を終了する。
【０６６５】
なお、図６０のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を同時に決定してもよい。
【０６６６】
また、式（２）で用いられる関数Ｆとしては、例えば、変数（差分）の逆数を算出する関数を採用してもよい。この場合、例えばブロックBの動きベクトルとブロックEの動きベクトルの差分ＭＶiＤ＿０(i=x,y)が小さいとき、当該差分の逆数、即ち、大きな値がブロックＡの動きベクトルの重み付け係数となるので、ブロックＡの動きベクトルの重みを大きくすることができる。
【０６６７】
次に、(b)図３１のブロックに適用した例としては、例えば、図６１のフローチャートが挙げられる。即ち、動き予測器４０６における動きベクトル予測値を決定する手順は、図６１のフローチャートに従って実行すればよい。動きベクトルｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０６６８】
まず動き予測器４０６は、ラインL４１０を経由して入力される復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルと対応する参照フレーム番号を取得する（ステップＳ３４０１）。
【０６６９】
なおステップＳ３４０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０６７０】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０６７１】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０６７２】
また、ステップＳ３４０１において復号済みのブロックそのもの、あるいは復号済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０６７３】
続いて、ブロックBの動きベクトルとブロックFの動きベクトルの差分ＭＶiＤ＿０(i=x,y)、ブロックCの動きベクトルとブロックGの動きベクトルの差分ＭＶiＤ＿１(i=x,y)、ブロックAの動きベクトルとブロックDの動きベクトルの差分ＭＶiＤ＿２(i=x,y)、ブロックEの動きベクトルとブロックFの動きベクトルの差分ＭＶiＤ＿３(i=x,y)、ブロックEの動きベクトルとブロックGの動きベクトルの差分ＭＶiＤ＿４(i=x,y)の５通りが算出される（ステップＳ３４０２）。
【０６７４】
次に、ステップＳ３４０２で算出された各差分を変数とする関数Ｆを用いた前述の式（３）に基づいて、ブロックＢ、Ｃ、Ｄ、Ｇ、Ｆの動きベクトル全てを有効利用して、動きベクトル予測値PMVi(i=x,y)を算出する（ステップＳ３４０３）。
【０６７５】
最後に、算出された動きベクトル予測値PMVi(i=x,y)を出力し（ステップＳ３４０４）、処理を終了する。
【０６７６】
なお、図６１のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を同時に決定してもよい。また、式（３）で用いられる関数Ｆとしては、例えば、変数（差分）の逆数を算出する関数を採用してもよい。この場合、例えばブロックBの動きベクトルとブロックＦの動きベクトルの差分ＭＶiＤ＿０(i=x,y)が小さいとき、当該差分の逆数、即ち、大きな値がブロックＢの動きベクトルの重み付け係数となるので、ブロックＢの動きベクトルの重みを大きくすることができる。
【０６７７】
また、ステップＳ３４０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分ＭＶiＤ＿０(i=x,y)、ブロックCの動きベクトルとブロックGの動きベクトルの差分ＭＶiＤ＿１(i=x,y)の２通りでもよい。その際、ステップＳ３４０３では、算出されない差分を変数とする関数Ｆ（ＭＶiＤ＿２(i=x,y)）、関数Ｆ（ＭＶiＤ＿３(i=x,y)）及び関数Ｆ（ＭＶiＤ＿４(i=x,y)）は０として動きベクトル予測値PMVi(i=x,y)を算出すればよい。この場合、空間方向の動きベクトルの差分を含まず、時間方向の動きベクトルの差分のみに基づいて動きベクトル予測値PMVi(i=x,y)を算出することができる。
【０６７８】
更に、ステップＳ３４０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分ＭＶiＤ＿０(i=x,y)、ブロックCの動きベクトルとブロックGの動きベクトルの差分ＭＶiＤ＿１(i=x,y)、ブロックAの動きベクトルとブロックDの動きベクトルの差分ＭＶiＤ＿２(i=x,y)の３通りでもよい。その際、ステップＳ３４０３では、算出されない差分を変数とする関数Ｆ（ＭＶiＤ＿３(i=x,y)）及び関数Ｆ（ＭＶiＤ＿４(i=x,y)）は０として動きベクトル予測値PMVi(i=x,y)を算出すればよい。この場合、対象ブロックから１フレーム以上隔てたブロック間での動きベクトルの差分を含んだ時間方向の動きベクトルの差分のみに基づいて動きベクトル予測値PMVi(i=x,y)を算出することができる。
【０６７９】
次に、(c)図３３のブロックに適用した例としては、例えば、図６２のフローチャートが挙げられる。即ち、動き予測器４０６における動きベクトル予測値を決定する手順は、図６２のフローチャートに従って実行すればよい。動きベクトルｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０６８０】
まず動き予測器４０６は、ラインL４１０を経由して入力される復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、Iの動きベクトルと対応する参照フレーム番号とラインL４０４を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ３５０１）。
【０６８１】
なおステップＳ３５０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０６８２】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、Iの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０６８３】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０６８４】
また、ステップＳ３５０１において復号済みのブロックそのもの、あるいは復号済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０６８５】
続いて、ブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの分散ＭＶiＶ＿０(i=x,y)、ブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルの分散ＭＶiＶ＿１(i=x,y)、ブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルの分散ＭＶiＶ＿２(i=x,y)、の３組の分散をそれぞれ算出する。（ステップＳ３５０２）
次に、ステップＳ３５０２で算出された各分散を変数とする関数Ｆを用いた前述の式（４）に基づいて、ブロックＡ〜Ｉの９つの動きベクトル全てを有効利用して、動きベクトル予測値PMVi(i=x,y)を算出する（ステップＳ３５０３）。
【０６８６】
最後に、算出された動きベクトル予測値PMVi(i=x,y)を出力し（ステップＳ３５０４）、処理を終了する。
【０６８７】
なお、図６２のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、動きベクトルのｘ成分、ｙ成分を同時に決定してもよい。また、式（４）で用いられる関数Ｆとしては、例えば、変数（分散）の逆数を算出する関数を採用してもよい。この場合、例えばブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの分散ＭＶiＶ＿０(i=x,y)が小さいとき、当該分散の逆数、即ち、大きな値がブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの平均値の重み付け係数となるので、ブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの平均値の重みを大きくすることができる。
【０６８８】
また、ステップＳ３５０２において動きベクトルの類似性をあらわす値として分散を用いたが、標準偏差や、各ブロック間の動きベクトルの差分値や、それら複数の差分値の平均を用いてもよい。
【０６８９】
また、ステップＳ３５０３において、３つの動きベクトルの平均値を動きベクトルの予測値としたが、３つの動きベクトルの中間値、あるいはいずれかひとつの値を予測値としてもよい。
【０６９０】
図６２では時間方向、空間方向にそれぞれ連続する３ブロックの動きベクトルを参照して動きベクトル予測値の決定を行ったが、これは時間方向のみでもよい。またそれぞれの方向に２ブロックのみ、あるいは４ブロック以上のブロックを用いてもよい。また時間方向で隣り合うフレームのブロックと空間方向で１ブロック以上隔てたブロックを組み合わせて用いてもよい。
【０６９１】
また、ステップＳ３５０２において算出する分散は、ブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルの分散ＭＶiＶ＿１(i=x,y)、ブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルの分散ＭＶiＶ＿２(i=x,y)、の２組のみでもよい。その際、ステップＳ３５０３では、算出されない分散を変数とする関数Ｆ（ＭＶiＶ＿０(i=x,y)）は０として動きベクトル予測値PMVi(i=x,y)を算出すればよい。この場合、対象ブロックから１ブロック以上隔てた複数ブロックを含む空間方向のみからの動きベクトル予測値PMVi(i=x,y)の算出を行うことができる。
【０６９２】
最後に、コンピュータを動画像復号装置４０として動作させる動画像復号プログラムについて説明する。図５４は、本実施形態に係る動画像復号プログラムＰ４０の構成を示し、この動画像復号プログラムＰ４０は、記録媒体に格納されて提供される。記録媒体としては、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭ等の記録媒体あるいは半導体メモリ等が例示される。なお、記録媒体に記憶されたプログラムを実行するためのコンピュータの構成は、既に説明した図６３、図６４の構成と同様であるため、重複した説明は省略する。
【０６９３】
図５４に示すように、動画像復号プログラムＰ４０は、処理を統括するメインモジュールＰ４０１と、データ解析モジュールＰ４０２と、逆量子化モジュールＰ４０３と、逆変換モジュールＰ４０４と、記憶モジュールＰ４０５と、予測信号生成モジュールＰ４０６と、動き予測モジュールＰ４０７と、加算モジュールＰ４０８とを備えている。
【０６９４】
データ解析モジュールＰ４０２、逆量子化モジュールＰ４０３、逆変換モジュールＰ４０４、予測信号生成モジュールＰ４０６、動き予測モジュールＰ４０７がコンピュータに実現させる機能は、それぞれ図２６のデータ解析器４０１、逆量子化器４０２、逆変換器４０３、予測信号生成器４０８、動き予測器４０６の機能と同様である。記憶モジュールＰ４０５がコンピュータに実現させる機能は、フレームメモリ４０４及び動きベクトルメモリ４０５の機能と同様である。また、加算モジュールＰ４０８がコンピュータに実現させる機能は、加算器４０７、４０９の機能と同様である。
【０６９５】
［第５実施形態］
図３７を用いて、本発明に係る動画像復号装置５０について説明する。
【０６９６】
動画像復号装置５０は、機能的な構成要素として、図３７に示すように、データ解析器５０１と、逆量子化器５０２と、逆変換器５０３と、フレームメモリ５０４と、動きベクトルメモリ５０５と、動き予測器５０６と、加算器５０７と、予測信号生成器５０８と、加算器５０９と、確率切替信号生成器５１０を備えて構成される。
【０６９７】
動画像復号装置５０には、上述した動画像符号化装置によって符号化された圧縮ストリームを入力する。この圧縮ストリームには、復号対象となるブロックの原信号と予測信号の差分を表す残差信号と、復号対象となるブロックの予測信号の生成に関する情報が含まれている。
【０６９８】
データ解析器５０１は、ラインL５０１を経由して入力された圧縮ストリームを解析することにより、直行変換および量子化された復号の対象となるブロック（以下、対象ブロック）の残差信号を抽出しラインL５０２を経由して出力する。また、対象ブロックの動きベクトルとその予測値の差分である動きベクトル差分値を抽出し、ラインL５０３を経由して出力する、また対象ブロックの参照フレーム番号を抽出し、ラインL５０４を経由して出力する。また、ラインL５１２を経由して入力された確率切替信号に基づいて、データの抽出に用いる確率テーブルを後述の方法で切り替えたのち、対象ブロックの動きベクトル予測値を示すインデックスを抽出し、ラインL５１４を経由して出力する。
【０６９９】
逆量子化器５０２は、ラインL５０２を経由して入力された量子化された変換係数を逆量子化し、ラインL５０５を経由して復元された変換係数を出力する。
【０７００】
逆変換器５０３は、ラインL５０５を経由して入力された変換係数を逆直交変換し、ラインL５０６を経由して復元された残差信号を出力する。
【０７０１】
フレームメモリ５０４は、ラインL５０７を経由して入力される過去に復号済みのフレーム画像信号（以下、参照フレーム画像信号）を格納し、必要に応じてラインL５０８を経由して出力する。
【０７０２】
動きベクトルメモリ５０５は、過去に復号済みの動きベクトルとそれに対応した参照フレーム番号と併せて、ラインL５０９を経由して入力される対象ブロックの動きベクトルとラインL５０４を経由して入力される対象ブロックの参照フレーム番号を格納し、必要に応じてラインL５１０を経由して出力する。
【０７０３】
動き予測器５０６は、ラインL５１４を経由して入力される動きベクトル予測値を示すインデックスと、ラインL５１０を経由して入力される過去に復号済みのブロックの動きベクトルから、後述のフローに従って対象ブロックの動きベクトル予測値を算出し、ラインL５１１を経由して出力する。
【０７０４】
加算器５０７は、ラインL５１１を経由して入力された動きベクトル予測値と、ラインL５０３を経由して入力された動きベクトル差分値を加算し、対象ブロックの動きベクトルを復元し、ラインL５０９を経由して出力する。
【０７０５】
予測信号生成器５０８は、ラインL５０９を経由して入力される対象ブロックの動きベクトル信号値と、ラインL５０４を経由して入力される対象ブロックの参照フレーム番号と、ラインL５０８を経由して入力される参照フレーム画像信号から、対象ブロックに対する予測画像信号を生成し、ラインL５１３を経由して出力する。
【０７０６】
加算器５０９は、ラインL５０６を経由して入力された残差信号と、ラインL５１３を経由して入力された対象ブロックに対する予測画像信号を加算し、対象ブロックの画像信号を復元し、ラインL５０７を経由して出力する。
【０７０７】
確率切替信号生成器５１０はラインL５１０を経由して入力される過去に符号化済みのブロックの動きベクトルと、それに対応する参照フレーム番号と、ラインL５０４を経由して入力される対象ブロックの参照フレーム番号から、後述するフローに従って切り替える確率テーブルを示す確率切替信号を生成し、ラインL５１２を経由して出力する。
【０７０８】
次に、図３８を参照して動き予測器５０６について詳細に説明する。図３８は、動き予測器５０６における動きベクトル予測値を示すインデックスから動きベクトル予測値を復元する手順を説明するための模式図である。
【０７０９】
図３８で、対象ブロックをHとし、フレームF１１０１はブロックHを含むフレームである。フレームF１１０２は既に復号済みのフレームで、フレームF１１０１とは時間方向で隣り合うフレームである。
【０７１０】
フレームF１１０１において、ブロックDをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックEをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０７１１】
フレームF１１０２において、ブロックAはブロックHの最も左上の画素と同じ空間位置の画素を含むブロックとする。ブロックBをブロックAの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックAの最も左上の画素の真左の画素を含むブロックとする。
【０７１２】
図３９は、動き予測器５０６における動きベクトル予測値を示すインデックスから動きベクトル予測値を復元する手順を説明するためのフローチャートである。動きベクトルのｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０７１３】
まず動き予測器５０６は、ラインL５１４を経由して、対象ブロックの動きベクトル予測値を示すインデックスを取得する。（ステップＳ２１０１）。
次に、ステップＳ２１０１で取得されたインデックスが判定される（ステップＳ２１０２）。
【０７１４】
ステップＳ２１０２の判定の結果、インデックスが０であった場合は、ラインL５１０を経由して入力される過去に符号化済みのブロックAの動きベクトルを動きベクトル予測値とし、インデックスが１であった場合は、ラインL５１０を経由して入力される過去に符号化済みのブロックEの動きベクトルを動きベクトル予測値とし、インデックスが２であった場合は、ラインL５１０を経由して入力される過去に符号化済みのブロックFの動きベクトルを動きベクトル予測値とする（ステップＳ２１０３）。
【０７１５】
なおステップＳ２１０３で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、ラインL５１０を経由して入力される過去に符号化済みのブロックに対応した参照フレーム番号と、ラインL５０４を経由して入力される対象ブロックの参照フレーム番号からその時刻を求める必要がある。
【０７１６】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をta、ブロックＡを含むフレームの時刻をt1とすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０７１７】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０７１８】
最後に、ステップＳ２１０３で決定された動きベクトル予測値PMVi(i=x,y)を出力し（ステップＳ２１０５）、処理を終了する。
【０７１９】
なお、図２９のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずに、ｘ成分、ｙ成分共通のインデックスを用いて同時に動きベクトル予測値を決定してもよい。
【０７２０】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図３８に示されるブロックの位置関係は以下のように定めてもよい。
【０７２１】
対象ブロックをHとし、フレームF１１０１はブロックHを含むフレームである。フレームF１１０２は既に符号化済みのフレームである。
【０７２２】
フレームF１１０１において、ブロックDをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックEをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０７２３】
フレームF１１０２において、ブロックAはブロックDの動きベクトルが参照しているブロック、またはブロックEの動きベクトルが参照しているブロック、またはブロックFの動きベクトルが参照しているブロックとする。その際もブロックBをブロックAの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックAの最も左上の画素の真左の画素を含むブロックとする。
【０７２４】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックDが参照するブロック、あるいはブロックEが参照するブロック、あるいはブロックFが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（DあるいはEあるいはF）が参照するブロックの動きベクトルとして用いるものとする。
【０７２５】
このとき、確率切替信号生成器５１０の詳細は図４０のフローチャートで説明される。確率切替信号は動きベクトル予測値を示すインデックスの発生確率の尤もらしさを示すものであって、この信号に基づいて確率テーブルを切り替えて、そのデータを符号化した際に用いた確率テーブルと同じ確率テーブルを用いてデータ解析を行うことで、データを抽出することができる。
【０７２６】
したがって、符号化装置と復号装置はあらかじめ共通の確率テーブルを持ち、共通の仕組みによって確率テーブルを切り替える必要がある。
【０７２７】
確率切替信号生成器５１０では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に計算されるものとする。具体的にはまず動きベクトルのx成分の計算を行い、ｘ成分に相当する確率切替信号を出力し、次にｙ成分の計算を行い、y成分に相当する確率切替信号の出力を行う。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０７２８】
まず確率切替信号生成器５１０は、ラインL５１０を経由して入力される復号済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルと対応する参照フレーム番号と、ラインL５０４を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ２２０１）。
【０７２９】
なおステップＳ２２０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０７３０】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をtaとすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０７３１】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０７３２】
また、ステップＳ２２０１において復号済みのブロックそのもの、あるいは復号済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０７３３】
続いて、ブロックBの動きベクトルとブロックEの動きベクトルの差分、ブロックCの動きベクトルとブロックFの動きベクトルの差分、ブロックDの動きベクトルとブロックEの動きベクトルの差分、ブロックDの動きベクトルとブロックFの動きベクトルの差分の４通りが算出される（ステップＳ２２０２）。
【０７３４】
次に、ステップＳ２２０２で算出された４通りの差分のうち、どの組み合わせの差分が最小のものであるかが判定される。（ステップＳ２２０３）。
【０７３５】
ステップＳ２２０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックBとブロックEである場合にはブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i(i=x,y)＝０を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックEの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックFである場合には、ブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックDとブロックEである場合には、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックDとブロックEの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックDとブロックFである場合には、ブロックHの動きベクトル予測値はブロックEの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の動きベクトル差分値MViD(i=x,y)をブロックDとブロックFの動きベクトルの差分値とする。（ステップＳ２２０４）。
【０７３６】
最後に、ステップＳ２２０４で決定された信号値Signal_i(i=x,y)およびMViD(i=x,y)を出力し（ステップＳ２２０５）、処理を終了する。
【０７３７】
なお、発生確率信号はSignal_i(i=x,y)のみでもよい。
【０７３８】
なお、図４０のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分に相当する確率切替信号を同時に決定してもよい。
【０７３９】
このとき、データ解析器５０１では、あらかじめ複数所持してある動きベクトル予測値を示す各インデックスの発生確率分布のテーブルを、ラインL５１２を経由して入力される確率切替信号に基づいて切り替える。具体的にはSignal_i(i=x,y)によって最も発生確率が高いインデックス、MViD(i=x,y)によってその発生確率を予測し、それに応じた確率テーブルへの切り替えを行う。
【０７４０】
また、動き予測器５０６は以下のように動作してもよい。図４１を参照して動き予測器５０６について詳細に説明する。図４１は、動き予測器５０６における動きベクトル予測値を示すインデックスから動きベクトル予測値を復元する手順を説明するための模式図である。
【０７４１】
図４１で、対象ブロックをHとし、フレームF１２０１はブロックHを含むフレームである。フレームF１２０２は既に符号化済みのフレームで、フレームF１２０１とは時間方向で隣り合うフレームである。フレームF１２０３は既に符号化済みのフレームで、フレームF１２０２とは時間方向で隣り合うフレームである。
【０７４２】
フレームF１２０１において、ブロックEをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０７４３】
フレームF１２０２において、ブロックDはブロックHの最も左上の画素と同じ空間位置の画素を含むブロック、ブロックBをブロックDの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックDの最も左上の画素の真左の画素を含むブロックとする。
【０７４４】
フレームF１２０３において、ブロックAはブロックDの最も左上の画素と同じ空間位置の画素を含むブロックとする。
【０７４５】
図４２は、動き予測器５０６における動きベクトル予測値を示すインデックスから動きベクトル予測値を復元する手順を説明するためのフローチャートである。動きベクトルのｘ成分、ｙ成分はそれぞれ独立に予測値が決定されるものとする。具体的にはまず動きベクトルのx成分の予測値を決定・出力し、次にｙ成分の予測値を決定・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０７４６】
まず動き予測器５０６は、ラインL５１４を経由して、対象ブロックの動きベクトル予測値を示すインデックスを取得する。（ステップＳ２３０１）。
【０７４７】
次に、ステップＳ２３０１で取得されたインデックスが判定される（ステップＳ２３０２）。
【０７４８】
ステップＳ２３０２の判定の結果、インデックスが０であった場合は、ラインL５１０を経由して入力される過去に符号化済みのブロックBの動きベクトルを動きベクトル予測値とし、インデックスが１であった場合は、ラインL５１０を経由して入力される過去に符号化済みのブロックCの動きベクトルを動きベクトル予測値とし、インデックスが２であった場合は、ラインL５１０を経由して入力される過去に符号化済みのブロックDの動きベクトルを動きベクトル予測値とし、インデックスが３であった場合は、ラインL５１０を経由して入力される過去に符号化済みのブロックGの動きベクトルを動きベクトル予測値とし、インデックスが４であった場合は、ラインL５１０を経由して入力される過去に符号化済みのブロックEの動きベクトルを動きベクトル予測値とする（ステップＳ２３０３）。
【０７４９】
なおステップＳ２３０３で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、ラインL５１０を経由して入力される過去に符号化済みのブロックに対応した参照フレーム番号と、ラインL５０４を経由して入力される対象ブロックの参照フレーム番号からその時刻を求める必要がある。
【０７５０】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をtaとすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０７５１】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０７５２】
最後に、ステップＳ２３０３で決定された動きベクトル予測値PMVi(i=x,y)を出力し（ステップＳ２３０４）、処理を終了する。
【０７５３】
なお、図４２のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずに、ｘ成分、ｙ成分共通のインデックスを用いて同時に動きベクトル予測値を決定してもよい。
【０７５４】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図４１に示されるブロックの位置関係は以下のように定めてもよい。
【０７５５】
対象ブロックをHとし、フレームF１２０１はブロックHを含むフレームである。フレームF１２０２は既に符号化済みのフレームである。フレームF１２０３は既に符号化済みのフレームである。
【０７５６】
フレームF１２０１において、ブロックEをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０７５７】
フレームF１２０２において、ブロックDはブロックEの動きベクトルが参照しているブロック、またはブロックFの動きベクトルが参照しているブロック、またはブロックGの動きベクトルが参照しているブロックとする。その際もブロックBをブロックDの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックDの最も左上の画素の真左の画素を含むブロックとする。
【０７５８】
フレームF１２０３において、ブロックAはブロックDの動きベクトルが参照しているブロックとする。
【０７５９】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックEが参照するブロック、あるいはブロックFが参照するブロック、あるいはブロックGが参照するブロック、あるいはブロックDが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（EあるいはFあるいはGあるいはD）が参照するブロックの動きベクトルとして用いるものとする。
【０７６０】
このとき、確率切替信号生成器５１０の詳細は図４３のフローチャートで説明される。
【０７６１】
確率切替信号は動きベクトル予測値を示すインデックスの発生確率の尤もらしさを示すものであって、この信号に基づいて確率テーブルを切り替えて、そのデータを符号化した際に用いた確率テーブルと同じ確率テーブルを用いてデータ解析を行うことで、データを抽出することができる。
【０７６２】
したがって、符号化装置と復号装置はあらかじめ共通の確率テーブルを持ち、共通の仕組みによって確率テーブルを切り替える必要がある。
【０７６３】
確率切替信号生成器５１０では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に計算されるものとする。具体的にはまず動きベクトルのx成分の計算を行い、ｘ成分に相当する確率切替信号を出力し、次にｙ成分の計算を行い、y成分に相当する確率切替信号の出力を行う。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０７６４】
まず確率切替信号生成器５１０は、ラインL５１０を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルと対応する参照フレーム番号と、ラインL５０４を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ２４０１）。
【０７６５】
なおステップＳ２４０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０７６６】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をtaとすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０７６７】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０７６８】
また、ステップＳ２４０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０７６９】
続いて、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分、ブロックAの動きベクトルとブロックDの動きベクトルの差分、ブロックEの動きベクトルとブロックFの動きベクトルの差分、ブロックEの動きベクトルとブロックGの動きベクトルの差分の５通りが算出される（ステップＳ２４０２）。
【０７７０】
次に、ステップＳ２４０２で算出された５通りの差分のうち、どの組み合わせの差分が最小のものであるかが判定される。（ステップＳ２４０３）。
【０７７１】
ステップＳ２４０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックGの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックAとブロックDである場合には、ブロックHの動きベクトル予測値はブロックDの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックAとブロックDの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックEとブロックFである場合には、ブロックHの動きベクトル予測値はブロックGの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝３(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックEとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックEとブロックGである場合には、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝４(i=x,y)を生成するとともに、その際の動きベクトル差分値MViD(i=x,y)をブロックEとブロックGの動きベクトルの差分値とする。（ステップＳ２４０４）。
【０７７２】
最後に、ステップＳ２４０４で決定された信号値Signal_i(i=x,y)およびMViD(i=x,y)を出力し（ステップＳ２４０５）、処理を終了する。
【０７７３】
なお、発生確率信号はSignal_i(i=x,y)のみでもよい。
【０７７４】
なお、図４３のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分に相当する確率切替信号を同時に決定してもよい。
【０７７５】
また、ステップＳ２４０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分、ブロックAの動きベクトルとブロックDの動きベクトルの差分の３通りでもよい。その際もステップＳ２４０３で最小となる組み合わせが判定され、ステップＳ２４０４では、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックGの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックAとブロックDである場合には、ブロックHの動きベクトル予測値はブロックDの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックAとブロックDの動きベクトルの差分値とする。
【０７７６】
また、ステップＳ２４０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分の２通りでもよい。その際もステップＳ２４０３で最小となる組み合わせが判定され、ステップＳ２４０４では、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックGの動きベクトルの差分値とする。
【０７７７】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図４１に示されるブロックの位置関係は以下のように定めてもよい。
【０７７８】
対象ブロックをHとし、フレームF１２０１はブロックHを含むフレームである。フレームF１２０２は既に符号化済みのフレームである。フレームF１２０３は既に符号化済みのフレームである。
【０７７９】
フレームF１２０１において、ブロックEをブロックHの最も左上の画素の真左上の画素を含むブロック、ブロックFをブロックHの最も左上の画素の真上の画素を含むブロック、ブロックGをブロックHの最も左上の画素の真左の画素を含むブロックとする。
【０７８０】
フレームF１２０２において、ブロックDはブロックEの動きベクトルが参照しているブロック、またはブロックFの動きベクトルが参照しているブロック、またはブロックGの動きベクトルが参照しているブロックとする。その際もブロックBをブロックDの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックDの最も左上の画素の真左の画素を含むブロックとする。
【０７８１】
フレームF１２０３において、ブロックAはブロックDの動きベクトルが参照しているブロックとする。
【０７８２】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックEが参照するブロック、あるいはブロックFが参照するブロック、あるいはブロックGが参照するブロック、あるいはブロックDが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（EあるいはFあるいはGあるいはD）が参照するブロックの動きベクトルとして用いるものとする。
【０７８３】
このとき、データ解析器５０１では、あらかじめ複数所持してある動きベクトル予測値を示す各インデックスの発生確率分布のテーブルを、ラインL５１２を経由して入力される確率切替信号に基づいて切り替える。具体的にはSignal_i(i=x,y)によって最も発生確率が高いインデックス、MViD(i=x,y)によってその発生確率を予測し、それに応じた確率テーブルへの切り替えを行う。
【０７８４】
また、動き予測器５０６において動きベクトル予測値を生成する代わりに、複数ある動きベクトル予測値決定方法の中から取得したインデックスに基づいてひとつを選択してもよい。この方法の詳細を図４４、図４５を参照して説明する。
【０７８５】
図４４は動き予測器５０６において複数ある動きベクトル予測値決定方法の中から取得したインデックスに基づいてひとつを選択する手順を説明するための模式図である。
【０７８６】
図４４で、対象ブロックをNとし、フレームF１３０１はブロックNを含むフレームである。フレームF１３０２は既に復号済みのフレームで、フレームF１３０１とは時間方向で隣り合うフレームである。
【０７８７】
フレームF１３０１において、ブロックJをブロックNの最も左上の画素の真左上の画素を含むブロック、ブロックKをブロックNの最も左上の画素の真上の画素を含むブロック、ブロックLをブロックNの最も右上の画素の真右上の画素を含むブロック、ブロックMをブロックNの最も左上の画素の真左の画素を含むブロックとする。
【０７８８】
フレームF１３０２において、ブロックEはブロックNの最も左上の画素と同じ空間位置の画素を含むブロックとする。ブロックAをブロックEの最も左上の画素の真左上の画素を含むブロック、ブロックBをブロックEの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックEの最も右上の画素の真右上の画素を含むブロック、ブロックDをブロックEの最も左下の画素の真左の画素を含むブロック、ブロックFをブロックEの最も右上の画素の真右の画素を含むブロック、ブロックGをブロックEの最も左下の画素の真左下の画素を含むブロック、ブロックHをブロックEの最も右下の画素の真下の画素を含むブロック、ブロックIをブロックEの最も右下の画素の真右下の画素を含むブロックとする。
【０７８９】
図４５は動き予測器５０６において複数ある動きベクトル予測値決定方法の中から取得したインデックスに基づいてひとつを選択しする手順を説明するためのフローチャートである。
【０７９０】
動きベクトルｘ成分、ｙ成分はそれぞれ独立に予測値決定方法が選ばれるものとする。具体的にはまず動きベクトルのx成分の予測値決定方法を選択・出力し、次にｙ成分の予測値決定方法を選択・出力する。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０７９１】
まず動き予測器５０６は、ラインL５１４を経由して、対象ブロックの動きベクトル予測値決定方法を示すインデックスを取得する。（ステップＳ２５０１）。
【０７９２】
次に、ステップＳ２５０１で取得されたインデックスが判定される（ステップＳ２５０２）。
【０７９３】
ステップＳ２５０２の判定の結果、インデックスが０であった場合は、ラインL５１０を経由して入力される過去に符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、Iの動きベクトルの平均値を動きベクトル予測値とし、インデックスが１であった場合は、ラインL５１０を経由して入力される過去に符号化済みのブロックB、D、E、F、Hの動きベクトルの平均値を動きベクトル予測値とし、インデックスが２であった場合は、ラインL５１０を経由して入力される過去に符号化済みのブロックJ、K、L、M、Eの動きベクトルの平均値を動きベクトル予測値とする（ステップＳ２５０３）。
【０７９４】
なおステップＳ２５０３で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、ラインL５１０を経由して入力される過去に符号化済みのブロックに対応した参照フレーム番号と、ラインL５０４を経由して入力される対象ブロックの参照フレーム番号からその時刻を求める必要がある。
【０７９５】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、I、J、K、Lの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をtaとすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０７９６】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０７９７】
最後に、ステップＳ２５０３で決定された動きベクトル予測値PMVi(i=x,y)を出力し（ステップＳ２５０４）、処理を終了する。
【０７９８】
なお、図４５のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずに、ｘ成分、ｙ成分共通のインデックスを用いて同時に動きベクトル予測値を決定してもよい。
【０７９９】
さらに、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図４４に示されるブロックの位置関係は以下のように定めてもよい。
【０８００】
対象ブロックをNとし、フレームF１３０１はブロックNを含むフレームである。フレームF１３０２は既に復号済みのフレームである。
【０８０１】
フレームF１３０１において、ブロックJをブロックNの最も左上の画素の真左上の画素を含むブロック、ブロックKをブロックNの最も左上の画素の真上の画素を含むブロック、ブロックLをブロックNの最も右上の画素の真右上の画素を含むブロック、ブロックMをブロックNの最も左上の画素の真左の画素を含むブロックとする。
【０８０２】
フレームF１３０２において、ブロックEはブロックJの動きベクトルが参照しているブロック、またはブロックKの動きベクトルが参照しているブロック、またはブロックLの動きベクトルが参照しているブロック、またはブロックMの動きベクトルが参照しているブロックとする。その際もブロックAをブロックEの最も左上の画素の真左上の画素を含むブロック、ブロックBをブロックEの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックEの最も右上の画素の真右上の画素を含むブロック、ブロックDをブロックEの最も左下の画素の真左の画素を含むブロック、ブロックFをブロックEの最も右上の画素の真右の画素を含むブロック、ブロックGをブロックEの最も左下の画素の真左下の画素を含むブロック、ブロックHをブロックEの最も右下の画素の真下の画素を含むブロック、ブロックIをブロックEの最も右下の画素の真右下の画素を含むブロックとする。
【０８０３】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックJが参照するブロック、あるいはブロックKが参照するブロック、あるいはブロックLが参照するブロック、あるいはブロックMが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（JあるいはKあるいはLあるいはM）が参照するブロックの動きベクトルとして用いるものとする。
【０８０４】
このとき、確率切替信号生成器５１０の詳細は図４６のフローチャートで説明される。確率切替信号は動きベクトル予測値決定方法を示すインデックスの発生確率の尤もらしさを示すものであって、この信号に基づいて確率テーブルを切り替えて、そのデータを符号化した際に用いた確率テーブルと同じ確率テーブルを用いてデータ解析を行うことで、データを抽出することができる。
【０８０５】
したがって、符号化装置と復号装置はあらかじめ共通の確率テーブルを持ち、共通の仕組みによって確率テーブルを切り替える必要がある。
【０８０６】
確率切替信号生成器５１０では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に計算されるものとする。具体的にはまず動きベクトルのx成分の計算を行い、ｘ成分に相当する確率切替信号を出力し、次にｙ成分の計算を行い、y成分に相当する確率切替信号の出力を行う。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０８０７】
まず確率切替信号生成器５１０は、ラインL５１０を経由して入力される復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、I、J、K、L、Mの動きベクトルと対応する参照フレーム番号と、ラインL５０４を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ２６０１）。
【０８０８】
なおステップＳ２６０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０８０９】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、I、J、K、Lの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をtaとすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０８１０】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０８１１】
また、ステップＳ２６０１において復号済みのブロックそのもの、あるいは復号済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０８１２】
続いて、ブロックAとブロックEの動きベクトルの差分、ブロックCとブロックEの動きベクトルの差分、ブロックGとブロックEの動きベクトルの差分、ブロックIとブロックEの動きベクトルの差分の計４通りの差分の平均値を算出する。また、ブロックBとブロックEの動きベクトルの差分、ブロックDとブロックEの動きベクトルの差分、ブロックFとブロックEの動きベクトルの差分、ブロックHとブロックEの動きベクトルの差分の計４通りの差分の平均値を算出する。また、ブロックJとブロックKの動きベクトルの差分、ブロックJとブロックMの動きベクトルの差分、ブロックEとブロックKの動きベクトルの差分、ブロックEとブロックMの動きベクトルの差分の計４通りの差分の平均値を算出する（ステップＳ２６０２）。
【０８１３】
続いて、ステップＳ２６０２で算出した３通りの差分平均値のうち、もっとも値が小さくなる組み合わせが判定される。（ステップＳ２６０３）。
【０８１４】
ステップＳ２６０３での判定の結果、もっとも小さい差分平均値を与える組み合わせがブロックAとE、ブロックCとE、ブロックGとE、ブロックIとEである場合にはブロックNの動きベクトル予測値はブロックA、B、C、D、E、F、G、H、Iの動きベクトルの平均値に決定することが尤もらしいことを示す信号Signal_i＝(i=x,y)０を生成するとともに、その際の平均差分値MViD_mean(i=x,y)をブロックAとブロックEの動きベクトルの差分、ブロックCとブロックEの動きベクトルの差分、ブロックGとブロックEの動きベクトルの差分、ブロックIとブロックEの動きベクトルの差分の計４通りの差分の平均値とする。もっとも小さい差分平均値を与える組み合わせがブロックBとE、ブロックDとE、ブロックFとE、ブロックHとEである場合にはブロックNの動きベクトル予測値はブロックB、D、E、F、Hの動きベクトルの平均値に決定することが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の平均差分値MViD_mean(i=x,y)をブロックBとブロックEの動きベクトルの差分、ブロックDとブロックEの動きベクトルの差分、ブロックFとブロックEの動きベクトルの差分、ブロックHとブロックEの動きベクトルの差分の計４通りの差分の平均値とする。もっとも小さい差分平均値を与える組み合わせがブロックJとK、ブロックJとM、ブロックEとK、ブロックEとMである場合にはブロックNの動きベクトル予測値はブロックJ、K、L、M、Eの動きベクトルの平均値に決定することが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の平均差分値MViD_mean(i=x,y)をブロックJとブロックKの動きベクトルの差分、ブロックJとブロックMの動きベクトルの差分、ブロックEとブロックKの動きベクトルの差分、ブロックEとブロックMの動きベクトルの差分の計４通りの差分の平均値とする（ステップＳ２６０４）。
【０８１５】
最後に、ステップＳ２６０４で決定されたインデックスIndex_i(i=x,y)および動きベクトル平均差分値MViD_mean(i=x,y)を出力し（ステップＳ２６０５）、処理を終了する。
【０８１６】
なお、発生確率信号はSignal_i(i=x,y)のみでもよい。
【０８１７】
なお、図３３のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分に相当する確率切替信号を同時に決定してもよい。
【０８１８】
なお、ステップＳ２６０２において、各ブロック群の動きベクトルの類似性を表す情報として平均差分値を用いたが、そのかわりに各ブロック群の分散値や標準偏差を用いてもよい。その際にはステップＳ２６０４で生成される平均差分値は分散値あるいは標準偏差となる。
【０８１９】
また、対象ブロックを含む領域が大きく移動しているような場合の予測精度をあげるために、図４４に示されるブロックの位置関係は以下のように定めてもよい。
【０８２０】
対象ブロックをNとし、フレームF１３０１はブロックNを含むフレームである。フレームF１３０２は既に復号済みのフレームである。
【０８２１】
フレームF１３０１において、ブロックJをブロックNの最も左上の画素の真左上の画素を含むブロック、ブロックKをブロックNの最も左上の画素の真上の画素を含むブロック、ブロックLをブロックNの最も右上の画素の真右上の画素を含むブロック、ブロックMをブロックNの最も左上の画素の真左の画素を含むブロックとする。
【０８２２】
フレームF１３０２において、ブロックEはブロックJの動きベクトルが参照しているブロック、またはブロックKの動きベクトルが参照しているブロック、またはブロックLの動きベクトルが参照しているブロック、またはブロックMの動きベクトルが参照しているブロックとする。その際もブロックAをブロックEの最も左上の画素の真左上の画素を含むブロック、ブロックBをブロックEの最も左上の画素の真上の画素を含むブロック、ブロックCをブロックEの最も右上の画素の真右上の画素を含むブロック、ブロックDをブロックEの最も左下の画素の真左の画素を含むブロック、ブロックFをブロックEの最も右上の画素の真右の画素を含むブロック、ブロックGをブロックEの最も左下の画素の真左下の画素を含むブロック、ブロックHをブロックEの最も右下の画素の真下の画素を含むブロック、ブロックIをブロックEの最も右下の画素の真右下の画素を含むブロックとする。
【０８２３】
なお上記の定め方をする場合、各ブロックの大きさ以下の精度で類似する画像信号パターンの位置を探し出して動きベクトルの検出を行う際に、ブロックJが参照するブロック、あるいはブロックKが参照するブロック、あるいはブロックLが参照するブロック、あるいはブロックMが参照するブロックが動きベクトルをもつ複数のブロックにまたがることが考えられるが、その際はそれら複数のブロックの動きベクトルの平均値、あるいはまたがる領域でもっとも占める割合の高いブロックの動きベクトルを該当するブロック（JあるいはKあるいはLあるいはM）が参照するブロックの動きベクトルとして用いるものとする。
【０８２４】
このとき、データ解析器５０１では、あらかじめ複数所持してある動きベクトル予測値を示す各インデックスの発生確率分布のテーブルを、ラインL５１２を経由して入力される確率切替信号に基づいて切り替える。具体的にはSignal_i(i=x,y)によって最も発生確率が高いインデックス、MViD(i=x,y)によってその発生確率を予測し、それに応じた確率テーブルへの切り替えを行う。
【０８２５】
最後に、コンピュータを動画像復号装置５０として動作させる動画像復号プログラムについて説明する。図５５は、本実施形態に係る動画像復号プログラムＰ５０の構成を示し、この動画像復号プログラムＰ５０は、記録媒体に格納されて提供される。記録媒体としては、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭ等の記録媒体あるいは半導体メモリ等が例示される。なお、記録媒体に記憶されたプログラムを実行するためのコンピュータの構成は、既に説明した図６３、図６４の構成と同様であるため、重複した説明は省略する。
【０８２６】
図５５に示すように、動画像復号プログラムＰ５０は、処理を統括するメインモジュールＰ５０１と、データ解析モジュールＰ５０２と、逆量子化モジュールＰ５０３と、逆変換モジュールＰ５０４と、記憶モジュールＰ５０５と、予測信号生成モジュールＰ５０６と、動き予測モジュールＰ５０７と、加算モジュールＰ５０８と、確率切替信号生成モジュールＰ５０９とを備えている。
【０８２７】
データ解析モジュールＰ５０２、逆量子化モジュールＰ５０３、逆変換モジュールＰ５０４、予測信号生成モジュールＰ５０６、動き予測モジュールＰ５０７、確率切替信号生成モジュールＰ５０９がコンピュータに実現させる機能は、それぞれ図３７のデータ解析器５０１、逆量子化器５０２、逆変換器５０３、予測信号生成器５０８、動き予測器５０６、確率切替信号生成器５１０の機能と同様である。記憶モジュールＰ５０５がコンピュータに実現させる機能は、フレームメモリ５０４及び動きベクトルメモリ５０５の機能と同様である。また、加算モジュールＰ５０８がコンピュータに実現させる機能は、加算器５０７、５０９の機能と同様である。
【０８２８】
［第６実施形態］
図４７を用いて、本発明に係る動画像復号装置６０について説明する。
【０８２９】
動画像復号装置６０は、機能的な構成要素として、図４７に示すように、データ解析器６０１と、逆量子化器６０２と、逆変換器６０３と、フレームメモリ６０４と、動きベクトルメモリ６０５と、動き予測器６０６と、加算器６０７と、予測信号生成器６０８と、加算器６０９と、確率切替信号生成器６１０を備えて構成される。
【０８３０】
動画像復号装置６０には、上述した動画像符号化装置によって符号化された圧縮ストリームを入力する。この圧縮ストリームには、復号対象となるブロックの原信号と予測信号の差分を表す残差信号と、復号対象となるブロックの予測信号の生成に関する情報が含まれている。
【０８３１】
データ解析器６０１は、ラインL６０１を経由して入力された圧縮ストリームを解析することにより、直行変換および量子化された復号の対象となるブロック（以下、対象ブロック）の残差信号を抽出しラインL６０２を経由して出力する。また、対象ブロックの参照フレーム番号を抽出し、ラインL６０４を経由して出力する。また、ラインL６１２を経由して入力された確率切替信号に基づいて、データの抽出に用いる確率テーブルを後述の方法で切り替えたのち、対象ブロックの動きベクトルとその予測値の差分である動きベクトル差分値を抽出し、ラインL６０３を経由して出力する。
【０８３２】
逆量子化器６０２は、ラインL６０２を経由して入力された量子化された変換係数を逆量子化し、ラインL６０５を経由して復元された変換係数を出力する。
【０８３３】
逆変換器６０３は、ラインL６０５を経由して入力された変換係数を逆直交変換し、ラインL６０６を経由して復元された残差信号を出力する。
【０８３４】
フレームメモリ６０４は、過去に復号済みのフレーム画像信号（以下、参照フレーム画像信号）と併せて、ラインL６０７を経由して入力される復元された対象ブロックの画像信号を格納し、必要に応じてラインL６０８を経由して出力する。
【０８３５】
動きベクトルメモリ６０５は、過去に復号済みの動きベクトルとそれに対応した参照フレーム番号と併せて、ラインL６０９を経由して入力される対象ブロックの動きベクトルとラインL６０４を経由して入力される対象ブロックの参照フレーム番号を格納し、必要に応じてラインL６１０を経由して出力する。
【０８３６】
動き予測器６０６は、ラインL６１０を経由して入力される過去に符号化済みのブロックの動きベクトルと、それに対応した参照フレーム番号と、ラインL６０４を経由して入力される対象ブロックの参照フレーム番号から、対象ブロックの動きベクトル予測値を算出し、ラインL６１１を経由して出力する。動き予測器６０６の詳細な動作は、動き予測器４０６と同じであるとし、記載を省略する。
【０８３７】
加算器６０７は、ラインL６１１を経由して入力された動きベクトル予測値と、ラインL６０３を経由して入力された動きベクトル差分値を加算し、対象ブロックの動きベクトルを復元し、ラインL６０９を経由して出力する。
【０８３８】
予測信号生成器６０８は、ラインL６０９を経由して入力される対象ブロックの動きベクトル信号値と、ラインL６０４を経由して入力される対象ブロックの参照フレーム番号と、ラインL６０８を経由して入力される参照フレーム画像信号から、対象ブロックに対する予測画像信号を生成し、ラインL６１３を経由して出力する。
【０８３９】
加算器６０９は、ラインL６０６を経由して入力された残差信号と、ラインL６１３を経由して入力された対象ブロックに対する予測画像信号を加算し、対象ブロックの画像信号を復元し、ラインL６０７を経由して出力する。
【０８４０】
確率切替信号生成器６１０はラインL６１０を経由して入力される過去に符号化済みのブロックの動きベクトルと、それに対応する参照フレーム番号と、ラインL６０４を経由して入力される対象ブロックの参照フレーム番号から、後述するフローに従って切り替える確率テーブルを示す確率切替信号を生成し、ラインL６１２を経由して出力する。
【０８４１】
確率切替信号生成器６１０の詳細な動作は、動き予測器６０６の動作と対応させることが好ましい。以下では、動きベクトル予測値は符号化済みのブロックの動きベクトルから決定され、動きベクトル予測値を示すためのインデックスからの復元をしない形態において説明を行うが、動きベクトル予測値を示すためのインデックスからの復元する形態においても適応できる。
【０８４２】
動き予測器６０６の動作が、前述の動き予測器４０６の図２７と図２８を用いて説明される動作と同じ場合、確率切替信号生成器の６１０の詳細な動作は図２７の模式図と、図４８のフローチャートを用いて説明される。図２７の説明は前述の動き予測器４０６における説明と同じである。
【０８４３】
このとき、確率切替信号は動きベクトル差分値の発生確率分布の尤もらしさを示すものであって、この信号に基づいて確率テーブルを切り替えて、そのデータを符号化した際に用いた確率テーブルと同じ確率テーブルを用いてデータ解析を行うことで、動きベクトル差分値のデータを抽出することができる。
【０８４４】
したがって、符号化装置と復号装置はあらかじめ共通の確率テーブルを持ち、共通の仕組みによって確率テーブルを切り替える必要がある。
【０８４５】
確率切替信号生成器６１０では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に計算されるものとする。具体的にはまず動きベクトルのx成分の計算を行い、ｘ成分に相当する確率切替信号を出力し、次にｙ成分の計算を行い、y成分に相当する確率切替信号の出力を行う。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０８４６】
まず確率切替信号生成器６１０は、ラインL６１０を経由して入力される復号済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルと対応する参照フレーム番号と、ラインL６０４を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ２７０１）。
【０８４７】
なおステップＳ２７０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０８４８】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、Ｂ、Ｃ、D、E、Fの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をtaとすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０８４９】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０８５０】
また、ステップＳ２７０１において復号済みのブロックそのもの、あるいは復号済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０８５１】
続いて、ブロックBの動きベクトルとブロックEの動きベクトルの差分、ブロックCの動きベクトルとブロックFの動きベクトルの差分、ブロックDの動きベクトルとブロックEの動きベクトルの差分、ブロックDの動きベクトルとブロックFの動きベクトルの差分の４通りが算出される（ステップＳ２７０２）。
【０８５２】
次に、ステップＳ２７０２で算出された４通りの差分のうち、どの組み合わせの差分が最小のものであるかが判定される。（ステップＳ２７０３）。
【０８５３】
ステップＳ２７０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックBとブロックEである場合にはブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i(i=x,y)＝０を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックEの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックFである場合には、ブロックHの動きベクトル予測値はブロックAの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックDとブロックEである場合には、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックDとブロックEの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックDとブロックFである場合には、ブロックHの動きベクトル予測値はブロックEの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の動きベクトル差分値MViD(i=x,y)をブロックDとブロックFの動きベクトルの差分値とする。（ステップＳ２７０４）。
【０８５４】
最後に、ステップＳ２７０４で決定された信号値Signal_i(i=x,y)およびMViD(i=x,y)を出力し（ステップＳ２７０５）、処理を終了する。
【０８５５】
なお、発生確率信号はSignal_i(i=x,y)のみでもよい。またMViD(i=x,y)のみでもよい。
【０８５６】
なお、図４８のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分に相当する確率切替信号を同時に決定してもよい。
【０８５７】
このとき、データ解析器６０１では、あらかじめ複数所持してある動きベクトル差分値の発生確率分布のテーブルを、ラインL６１２を経由して入力される確率切替信号に基づいて切り替える。具体的にはSignal_i(i=x,y)によって動きベクトル予測値を引用する方向（x軸方向あるいはｙ軸方向あるいは時間方向）を予測し、MViD(i=x,y)によって動きベクトル差分値の発生確率を予測し、それらに応じた確率テーブルへの切り替えを行う。
【０８５８】
動き予測器６０６の動作が、前述の動き予測器４０６の図３１と図３２を用いて説明される動作と同じ場合、確率切替信号生成器の６１０の詳細な動作は図３１の模式図と、図４９のフローチャートを用いて説明される。図３１の説明は前述の動き予測器４０６における説明と同じである。
【０８５９】
このとき、確率切替信号は動きベクトル差分値の発生確率分布の尤もらしさを示すものであって、この信号に基づいて確率テーブルを切り替えて、そのデータを符号化した際に用いた確率テーブルと同じ確率テーブルを用いてデータ解析を行うことで、動きベクトル差分値のデータを抽出することができる。
【０８６０】
したがって、符号化装置と復号装置はあらかじめ共通の確率テーブルを持ち、共通の仕組みによって確率テーブルを切り替える必要がある。
【０８６１】
確率切替信号生成器６１０では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に計算されるものとする。具体的にはまず動きベクトルのx成分の計算を行い、ｘ成分に相当する確率切替信号を出力し、次にｙ成分の計算を行い、y成分に相当する確率切替信号の出力を行う。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０８６２】
まず確率切替信号生成器６１０は、ラインL６１０を経由して入力される符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルと対応する参照フレーム番号と、ラインL６０４を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ２８０１）。
【０８６３】
なおステップＳ２８０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０８６４】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した符号化済みのブロックＡ、Ｂ、Ｃ、D、E、F、Gの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をtaとすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０８６５】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０８６６】
また、ステップＳ２８０１において符号化済みのブロックそのもの、あるいは符号化済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０８６７】
続いて、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分、ブロックAの動きベクトルとブロックDの動きベクトルの差分、ブロックEの動きベクトルとブロックFの動きベクトルの差分、ブロックEの動きベクトルとブロックGの動きベクトルの差分の５通りが算出される（ステップＳ２８０２）。
【０８６８】
次に、ステップＳ２８０２で算出された５通りの差分のうち、どの組み合わせの差分が最小のものであるかが判定される。（ステップＳ２８０３）。
【０８６９】
ステップＳ２８０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックGの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックAとブロックDである場合には、ブロックHの動きベクトル予測値はブロックDの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックAとブロックDの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックEとブロックFである場合には、ブロックHの動きベクトル予測値はブロックGの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝３(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックEとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックEとブロックGである場合には、ブロックHの動きベクトル予測値はブロックFの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝４(i=x,y)を生成するとともに、その際の動きベクトル差分値MViD(i=x,y)をブロックEとブロックGの動きベクトルの差分値とする。（ステップＳ２８０４）。
【０８７０】
最後に、ステップＳ２８０４で決定された信号値Signal_i(i=x,y)およびMViD(i=x,y)を出力し（ステップＳ７０５）、処理を終了する。
【０８７１】
なお、発生確率信号はSignal_i(i=x,y)のみでもよい。また、MViD(i=x,y)のみでもよい。
【０８７２】
なお、図４９のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分に相当する確率切替信号を同時に決定してもよい。
【０８７３】
また、ステップＳ２８０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分、ブロックAの動きベクトルとブロックDの動きベクトルの差分の３通りでもよい。その際もステップＳ２８０３で最小となる組み合わせが判定され、ステップＳ２８０４では、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックGの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックAとブロックDである場合には、ブロックHの動きベクトル予測値はブロックDの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックAとブロックDの動きベクトルの差分値とする。
【０８７４】
また、ステップＳ２８０２において算出する差分は、ブロックBの動きベクトルとブロックFの動きベクトルの差分、ブロックCの動きベクトルとブロックGの動きベクトルの差分の２通りでもよい。その際もステップＳ２８０３で最小となる組み合わせが判定され、ステップＳ２８０４では、もっとも小さい差分を与える組み合わせがブロックBとブロックFである場合にはブロックHの動きベクトル予測値はブロックBの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックBとブロックFの動きベクトルの差分値とする。もっとも小さい差分を与える組み合わせがブロックCとブロックGである場合には、ブロックHの動きベクトル予測値はブロックCの動きベクトルと同じ値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の差分MViD(i=x,y)をブロックCとブロックGの動きベクトルの差分値とする。
【０８７５】
なお、図４９のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分に相当する確率切替信号を同時に決定してもよい。
【０８７６】
このとき、データ解析器６０１では、あらかじめ複数所持してある動きベクトル差分値の発生確率分布のテーブルを、ラインL６１２を経由して入力される確率切替信号に基づいて切り替える。具体的にはSignal_i(i=x,y)によって動きベクトル予測値を引用する方向（x軸方向あるいはｙ軸方向あるいは時間方向）を予測し、MViD(i=x,y)によって動きベクトル差分値の発生確率を予測し、それらに応じた確率テーブルへの切り替えを行う。
【０８７７】
動き予測器６０６の動作が、前述の動き予測器４０６の図３３と図３４を用いて説明される動作と同じ場合、確率切替信号生成器６１０の詳細な動作は図３３の模式図と、図５０のフローチャートを用いて説明される。図３３の説明は前述の動き予測器４０６における説明と同じである。
【０８７８】
このとき、確率切替信号は動きベクトル差分値の発生確率分布の尤もらしさを示すものであって、この信号に基づいて確率テーブルを切り替えて、そのデータを符号化した際に用いた確率テーブルと同じ確率テーブルを用いてデータ解析を行うことで、動きベクトル差分値のデータを抽出することができる。
【０８７９】
確率切替信号生成器６１０では、動きベクトルのｘ成分、ｙ成分はそれぞれ独立に計算されるものとする。具体的にはまず動きベクトルのx成分の計算を行い、ｘ成分に相当する確率切替信号を出力し、次にｙ成分の計算を行い、y成分に相当する確率切替信号の出力を行う。以下では必要に応じて、成分を示す添え字をiと記す（iはx又はyである）。
【０８８０】
まず確率切替信号生成器６１０は、ラインL６１０を経由して入力される復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、Iの動きベクトルと対応する参照フレーム番号と、ラインL６０４を経由して入力される対象ブロックの参照フレーム番号を取得する（ステップＳ２９０１）。
【０８８１】
なおステップＳ２９０１で取得される動きベクトルは、対象ブロックを含むフレームと、対象ブロックの動きベクトルが参照するフレームとの時間的距離に基づいてスケーリングされることが好ましい。スケーリングの際には各ブロックの動きベクトルが参照するフレームの時刻を用いるため、各ブロックに対応する参照フレーム番号からその時刻を求める必要がある。
【０８８２】
スケーリングによって、対象ブロックを含むフレームの時刻t0から、対象ブロックの動きベクトルが参照するフレームの時刻teまでの時間的距離（t0-te）を基準にして、取得した復号済みのブロックＡ、Ｂ、Ｃ、D、E、F、G、H、Iの動きベクトルの大きさを補正することができる。具体的に一例を挙げると、ブロックＡの動きベクトルＭＶiＡ(i=x,y)が参照するフレームの時刻をtaとすると、スケーリングされた動きベクトルＭＶiＡ’(i=x,y)は、式（１）によって与えられるベクトルである。
【０８８３】
なお、このスケーリング処理は必須ではなく、スケーリング処理を行わない場合は各ブロックに対応する参照フレーム番号は必要ない。
【０８８４】
また、ステップＳ２９０１において復号済みのブロックそのもの、あるいは復号済みのブロックの動きベクトルが存在しない場合、そのブロックは極めて大きい動きベクトルを持つとみなし、十分大きな値とした上で処理を進める。あるいは、処理対象から除く。
【０８８５】
続いて、ブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの分散、ブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルの分散、ブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルの分散、の３組の分散をそれぞれ算出する。（ステップＳ２９０２）
次に、ステップＳ２９０２で算出された３通りの分散のうち、どの組み合わせの分散が最小のものであるかが判定される。（ステップＳ２９０３）。
【０８８６】
ステップＳ２９０３での判定の結果、もっとも小さい差分を与える組み合わせがブロックAとブロックBとブロックCである場合には、ブロックJの動きベクトル予測値はブロックAの動きベクトルとブロックBの動きベクトルとブロックCの動きベクトルの平均値に決定されることが尤もらしいことを示す信号Signal_i＝０(i=x,y)を生成するとともに、その際の分散MVi_var(i=x,y)をブロックAとブロックBとブロックCの動きベクトルの分散とする。もっとも小さい差分を与える組み合わせがブロックDとブロックEとブロックFである場合には、ブロックJの動きベクトル予測値はブロックDの動きベクトルとブロックEの動きベクトルとブロックFの動きベクトルの平均値に決定されることが尤もらしいことを示す信号Signal_i＝１(i=x,y)を生成するとともに、その際の分散MVi_var(i=x,y)をブロックDとブロックEとブロックFの動きベクトルの分散とする。もっとも小さい差分を与える組み合わせがブロックGとブロックHとブロックIである場合には、ブロックJの動きベクトル予測値はブロックGの動きベクトルとブロックHの動きベクトルとブロックIの動きベクトルの平均値に決定されることが尤もらしいことを示す信号Signal_i＝２(i=x,y)を生成するとともに、その際の分散MVi_var(i=x,y)をブロックGとブロックHとブロックIの動きベクトルの分散とする。（ステップＳ２９０４）。
【０８８７】
最後に、ステップＳ２９０４で決定された信号値Signal_i(i=x,y)およびMVi_var(i=x,y)を出力し（ステップＳ２９０５）、処理を終了する。
【０８８８】
なお、発生確率信号はSignal_i(i=x,y)のみでもよい。また、MVi_var(i=x,y)のみでもよい。
【０８８９】
なお、図５０のフローチャートに示される一連の処理はｘ成分、ｙ成分に分けずにベクトルの差分（具体的にはベクトルノルムなど）を算出し、ｘ成分、ｙ成分に相当する確率切替信号を同時に決定してもよい。
【０８９０】
また、ステップＳ２９０２において動きベクトルの類似性をあらわす値として分散を用いたが、標準偏差でもよい。また、各ブロック間の動きベクトルの差分値や、それら複数の差分値の平均を用いてもよい。
【０８９１】
ステップＳ２９０４において、３つの動きベクトルの平均値を動きベクトルの予測値とすることが尤もらしいことを示す信号を生成したが、３つの動きベクトルの中間値、あるいはいずれかひとつの値を予測値とすることが尤もらしいことを示していてもよい。
【０８９２】
図５０では時間方向、空間方向にそれぞれ連続する３ブロックの動きベクトルを参照して確率切替信号の決定を行ったが、空間方向のみでもよい。またそれぞれの方向に２ブロックのみ、あるいは４ブロック以上のブロックを用いてもよい。
【０８９３】
このとき、データ解析器６０１では、あらかじめ複数所持してある動きベクトル差分値の発生確率分布のテーブルを、ラインL６１２を経由して入力される確率切替信号に基づいて切り替える。具体的にはSignal_i(i=x,y)によって動きベクトル予測値を引用する方向（x軸方向あるいはｙ軸方向あるいは時間方向）を予測し、MViD_var(i=x,y)によって動きベクトル差分値の発生確率を予測し、それらに応じた確率テーブルへの切り替えを行う。
【０８９４】
最後に、コンピュータを動画像復号装置６０として動作させる動画像復号プログラムについて説明する。図５６は、本実施形態に係る動画像復号プログラムＰ６０の構成を示し、この動画像復号プログラムＰ６０は、記録媒体に格納されて提供される。記録媒体としては、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭ等の記録媒体あるいは半導体メモリ等が例示される。なお、記録媒体に記憶されたプログラムを実行するためのコンピュータの構成は、既に説明した図６３、図６４の構成と同様であるため、重複した説明は省略する。
【０８９５】
図５６に示すように、動画像復号プログラムＰ６０は、処理を統括するメインモジュールＰ６０１と、データ解析モジュールＰ６０２と、逆量子化モジュールＰ６０３と、逆変換モジュールＰ６０４と、記憶モジュールＰ６０５と、予測信号生成モジュールＰ６０６と、動き予測モジュールＰ６０７と、加算モジュールＰ６０８と、確率切替信号生成モジュールＰ６０９とを備えている。
【０８９６】
データ解析モジュールＰ６０２、逆量子化モジュールＰ６０３、逆変換モジュールＰ６０４、予測信号生成モジュールＰ６０６、動き予測モジュールＰ６０７、確率切替信号生成モジュールＰ６０９がコンピュータに実現させる機能は、それぞれ図４７のデータ解析器６０１、逆量子化器６０２、逆変換器６０３、予測信号生成器６０８、動き予測器６０６、確率切替信号生成器６１０の機能と同様である。記憶モジュールＰ６０５がコンピュータに実現させる機能は、フレームメモリ６０４及び動きベクトルメモリ６０５の機能と同様である。また、加算モジュールＰ６０８がコンピュータに実現させる機能は、加算器６０７、６０９の機能と同様である。
【符号の説明】
【０８９７】
１０、２０、３０…動画像符号化装置、４０、５０、６０…動画像復号装置、Ｐ１０、Ｐ２０、Ｐ３０…動画像符号化プログラム、Ｐ４０、Ｐ５０、Ｐ６０…動画像復号プログラム、６０…記録媒体、６２…読み取り装置、６４…作業用メモリ、６６…メモリ、６８…ディスプレイ、７０…マウス、７２…キーボード、７４…通信装置、７６…ＣＰＵ、８０…コンピュータ、９０…コンピュータデータ信号。
【図１】
0005638581.tif 000006
【図２】
0005638581.tif 000007
【図３】
0005638581.tif 000008
【図４】
0005638581.tif 000009
【図５】
0005638581.tif 000010
【図６】
0005638581.tif 000011
【図７】
0005638581.tif 000012
【図８】
0005638581.tif 000013
【図９】
0005638581.tif 000014
【図１０】
0005638581.tif 000015
【図１１】
0005638581.tif 000016
【図１２】
0005638581.tif 000017
【図１３】
0005638581.tif 000018
【図１４】
0005638581.tif 000019
【図１５】
0005638581.tif 000020
【図１６】
0005638581.tif 000021
【図１７】
0005638581.tif 000022
【図１８】
0005638581.tif 000023
【図１９】
0005638581.tif 000024
【図２０】
0005638581.tif 000025
【図２１】
0005638581.tif 000026
【図２２】
0005638581.tif 000027
【図２３】
0005638581.tif 000028
【図２４】
0005638581.tif 000029
【図２５】
0005638581.tif 000030
【図２６】
0005638581.tif 000031
【図２７】
0005638581.tif 000032
【図２８】
0005638581.tif 000033
【図２９】
0005638581.tif 000034
【図３０】
0005638581.tif 000035
【図３１】
0005638581.tif 000036
【図３２】
0005638581.tif 000037
【図３３】
0005638581.tif 000038
【図３４】
0005638581.tif 000039
【図３５】
0005638581.tif 000040
【図３６】
0005638581.tif 000041
【図３７】
0005638581.tif 000042
【図３８】
0005638581.tif 000043
【図３９】
0005638581.tif 000044
【図４０】
0005638581.tif 000045
【図４１】
0005638581.tif 000046
【図４２】
0005638581.tif 000047
【図４３】
0005638581.tif 000048
【図４４】
0005638581.tif 000049
【図４５】
0005638581.tif 000050
【図４６】
0005638581.tif 000051
【図４７】
0005638581.tif 000052
【図４８】
0005638581.tif 000053
【図４９】
0005638581.tif 000054
【図５０】
0005638581.tif 000055
【図５１】
0005638581.tif 000056
【図５２】
0005638581.tif 000057
【図５３】
0005638581.tif 000058
【図５４】
0005638581.tif 000059
【図５５】
0005638581.tif 000060
【図５６】
0005638581.tif 000061
【図５７】
0005638581.tif 000062
【図５８】
0005638581.tif 000063
【図５９】
0005638581.tif 000064
【図６０】
0005638581.tif 000065
【図６１】
0005638581.tif 000066
【図６２】
0005638581.tif 000067
【図６３】
0005638581.tif 000068
【図６４】
0005638581.tif 000069