(57)【要約】【課題】簡単な回路構成により動画像の画質向上を図ること。【解決手段】Ｐピクチャ制御部３４０により、共通回路（Ｒ）３１０および共通回路（Ｌ）３２０に対して入力された制御信号にしたがって、共通回路（Ｒ）３１０および共通回路（Ｌ）３２０により、外部メモリ３５０から演算領域の画像データを読み込み、画像データの全探索処理をおこなう。そして、共通回路（Ｒ）３１０および共通回路（Ｌ）３２０のそれぞれから出力される、全探索処理によって演算された最小ＳＡＤ（最小差分和）と動きベクトルを比較して、動きベクトルを算出することを特徴とする。【選択図】図３
2007221662.tif 000002
【特許請求の範囲】
【請求項１】
動画像を構成する一連のフレーム画像のうち、圧縮対象となる原画像から時間的に前後する方向である双方向のフレーム画像を参照画像とし前記原画像と前記参照画像とを用いて前記原画像の動きベクトルを算出する動きベクトル算出装置において、
前記原画像と前記原画像から時間的に前となる前方向のフレーム画像とを用いて、前記動きベクトルの算出元となる第１の画像情報を演算する第１の演算手段と、
前記原画像と前記原画像から時間的に後となる後方向のフレーム画像とを用いて、前記動きベクトルの算出元となる第２の画像情報を演算する第２の演算手段と、
前記参照画像を、前記双方向のフレーム画像から前記前方向のみのフレーム画像に切り替える切替手段と、を備え、
前記第２の演算手段は、前記切替手段により切り替えられた場合、前記原画像と前記前方向のフレーム画像とを用いて、前記動きベクトルの算出元となる、前記第１の画像情報とは異なる他の画像情報を演算することを特徴とする動きベクトル算出装置。
【請求項２】
前記第１の演算手段は、
前記原画像と、前記前方向のフレーム画像における任意の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記第１の画像情報を演算し、
前記第２の演算手段は、
前記原画像と、前記前方向のフレーム画像における、前記任意の演算領域とは異なる他の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記他の画像情報を演算することを特徴とする請求項１に記載の動きベクトル算出装置。
【請求項３】
前記第１の画像情報と、前記他の画像情報とを比較して、前記前方向のフレーム画像における前記原画像の移動先を特定することにより、前記原画像の動きベクトルを算出する算出手段と、
を備えることを特徴とする請求項１または２に記載の動きベクトル算出装置。
【請求項４】
前記第１の演算手段は、
前記原画像と、前記前方向のフレーム画像における任意の演算領域内における第１の演算領域の画像とを用いて、前記動きベクトルの算出元となる第１の画像情報を演算し、
前記第２の演算手段は、
前記原画像と、前記前方向のフレーム画像における、前記任意の画像領域と同一の演算領域内における前記第１の演算領域とは異なる第２の演算領域の画像とを用いて、前記動きベクトルの算出元となる、前記第１の画像情報とは異なる前記他の画像情報を演算することを特徴とする請求項１に記載の動きベクトル算出装置。
【請求項５】
前記第１の画像情報と、前記他の画像情報とを比較して、前記前方向のフレーム画像における前記原画像の移動先を特定することにより、前記原画像の動きベクトルを算出する算出手段と、
を備えることを特徴とする請求項４に記載の動きベクトル算出装置。
【請求項６】
前記第１の演算手段は、
前記原画像の画素値と前記第１の演算領域における画素値との絶対差分和を用いて、前記第１の画像情報を演算し、
前記第２の演算手段は、
前記原画像の画素値と前記第２の演算領域における画素値との絶対差分和を用いて、前記他の画像情報を演算することを特徴とする請求項４または５に記載の動きベクトル算出装置。
【請求項７】
前記双方向のフレーム画像を参照画像とした場合、前記原画像と、前記前方向あるいは前記後方向のフレーム画像とを用いて、前記動きベクトルの算出元となる第３の画像情報を演算する第３の演算手段を、さらに備え、
前記第３の演算手段は、前記切替手段により切り替えられた場合、前記原画像と前記前方向のフレーム画像とを用いて、前記動きベクトルの算出元となる、前記第１の画像情報および前記他の画像情報とは異なる別の画像情報を演算することを特徴とする請求項１に記載の動きベクトル算出装置。
【請求項８】
前記第１の演算手段は、
前記原画像と、前記前方向のフレーム画像における任意の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記第１の画像情報を演算し、
前記第２の演算手段は、
前記原画像と、前記前方向のフレーム画像における、前記任意の演算領域とは異なる他の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記他の画像情報を演算し、
前記第３の演算手段は、
前記原画像と、前記前方向のフレーム画像における、前記任意の演算領域および前記他の演算領域とは異なる別の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記別の画像情報を演算することを特徴とする請求項７に記載の動きベクトル算出装置。
【請求項９】
前記第１の画像情報と、前記他の画像情報と、前記別の画像情報とを比較して、前記前方向のフレーム画像における前記原画像の移動先を特定することにより、前記原画像の動きベクトルを算出する算出手段と、
を備えることを特徴とする請求項７または８に記載の動きベクトル算出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動画像のフレーム画像における時間方向の差分を利用する動画圧縮において、複数のフレーム画像から動きベクトルを算出する動きベクトル算出装置に関する。
【背景技術】
【０００２】
従来より、一連のフレーム画像から構成される動画像について、フレーム画像間の時間差分を利用してデータ量を圧縮するＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ｐｈａｓｅ  ２）−２やＭＰＥＧ−４、Ｈ．２６４などの動画像の圧縮符号化方式がある。
【０００３】
これらの圧縮符号化方式は、３つの圧縮方法によるフレーム画像である、Ｉピクチャ（Ｉｎｔｒａ−Ｐｉｃｔｕｒｅ（フレーム内符号化画像））と、Ｂピクチャ（Ｂｉｄｉｒｅｃｔｉｏｎａｌｌｙ  Ｐｒｅｄｉｃｔｉｖｅ−Ｐｉｃｔｕｒｅ（双方向予測符号化画像））およびＰピクチャ（Ｐｒｅｄｉｃｔｉｖｅ−Ｐｉｃｔｕｒｅ（前方向予測符号化画像））を用いて圧縮する方式である。
【０００４】
具体的には、Ｉピクチャは、動画像を構成する一連のフレーム画像において、圧縮対象となるフレーム画像に対して、他のフレーム画像を参照せずにフレーム画像内での動き補償をおこなって符号化されたフレーム画像である。
【０００５】
また、Ｂピクチャは、動画像を構成する一連のフレーム画像において、圧縮対象となるフレーム画像に対して、時間的に前方向および後方向のフレーム画像を参照して、双方向のフレーム画像との間での動き補償をおこなって符号化されたフレーム画像である。
【０００６】
さらに、Ｐピクチャは、動画像を構成する一連のフレーム画像において、圧縮対象となるフレーム画像に対して、時間的に前方向のフレーム画像を参照して、前方向のフレーム画像との間での動き補償をおこなって符号化されたフレーム画像である。
【０００７】
ここで、図１９を用いて、上述したＩピクチャ、ＢピクチャおよびＰピクチャについて説明する。図１９は、Ｉピクチャ、ＢピクチャおよびＰピクチャの概要を示す説明図である。図１９において、Ｉピクチャ１９０１、Ｂピクチャ１９０２，１９０３、Ｐピクチャ１９０４は、矢印１９１０で示す時間の流れにそって序列している。
【０００８】
Ｉピクチャ１９０１は、他のフレーム画像（以下、「ピクチャ」ともいう）を参照せずに、フレーム画像内符号化によって処理されており、Ｂピクチャ１９０２，１９０３やＰピクチャ１９０４など他のピクチャタイプの画像を圧縮および再生するために周期的に設けられている。
【０００９】
このＩピクチャ１９０１は、フレーム画像間の差をとって符号化されるフレーム間符号化に比べて符号化効率が低く、発生情報量が多くなる。ここで、符号化効率は画質とデータ量の相関関係を示し、同一の画質で符号化後のデータ量が少ない場合や、符号化後のデータ量が同一で画質が高い場合に、符号化効率が高いこととなる。
【００１０】
Ｂピクチャ１９０２，１９０３は、符号化後の２つのピクチャを参照して算出された動きベクトルを用いて、フレーム間符号化によって圧縮処理されている。具体的には、Ｂピクチャ１９０２，１９０３は、時間的に過去のフレーム画像であるＩピクチャ１９０１と、未来のフレーム画像であるＰピクチャ１９０４とを参照して符号化される。
【００１１】
Ｂピクチャ１９０２，１９０３は、時間的に前方向および後方向となる双方向のピクチャを参照しているため、物体が途中で出現するような場合でも、的確な予測をおこなって、符号化効率を高めることができる。一方、時間的に未来のフレーム画像であるＰピクチャ１９０４を参照しているため、Ｐピクチャ１９０４の符号化後にＢピクチャ１９０２，１９０３を符号化して時間順に序列させるため、リアルタイム処理を要求される場合には、挿入数が制限される。また、Ｂピクチャ１９０２，１９０３が他のピクチャの参照となることはない。
【００１２】
Ｐピクチャ１９０４は、時間的に過去に符号化された１つのピクチャを参照して算出された動きベクトルを用いて、フレーム間符号化によって圧縮処理されている。具体的には、Ｐピクチャ１９０４は、時間的に前方向のフレーム画像であるＩピクチャ１９０１を参照して符号化されている。なお、Ｐピクチャ１９０４が参照にするピクチャタイプは、ＩあるいはＰであればよい。
【００１３】
また、図１９の説明では、フレーム画像単位で３つの圧縮方法について説明したが、圧縮の単位はフレーム画像単位に限るものではなく、フレーム画像におけるブロック単位であったり、フィールド単位であったりしてもよい。以降、本明細書では、フレーム画像（ピクチャ）単位での圧縮について説明する。
【００１４】
つづいて、図２０を用いて、従来におけるＰピクチャに関する動きベクトル算出装置の回路構成について説明する。図２０は、従来におけるＰピクチャに関する動きベクトル算出装置の回路構成を示す説明図である。
【００１５】
図２０において、動きベクトル算出装置２０００は、制御部２０１１と、外部メモリインタフェイス２０３０と、キャッシュメモリ２０１２と、演算部２０１３と、から構成されている。
【００１６】
制御部２０１１は、動きベクトル算出装置２０００の制御を司り、参照画像の中から、演算領域となる画像データの取得要求を外部メモリインタフェイス２０３０に出力する。
【００１７】
参照画像とは、具体的には、原画像から時間的に前方向のフレーム画像であり、たとえば、ＩあるいはＰのピクチャタイプのフレーム画像である。ここで、原画像とは、圧縮対象となるフレーム画像における任意の１６×１６画素のブロック（以下、「マクロブロック」と称す）である。
【００１８】
また、演算領域とは、参照画像において、圧縮対象となる原画像に対応する画像情報を演算する領域である。画像情報とは、たとえば、原画像および参照画像における１マクロブロックの画素値の変化量などで、参照画像における所定の演算領域について演算される。
【００１９】
また、制御部２０１１は、後述する演算部２０１３の演算結果を用いて、原画像におけるＰピクチャを生成するための動きベクトルを算出して、図示しない外部装置へ出力する。具体的には、原画像と参照画像との画素値の変化量が少ないマクロブロックを探索する。そして、探索されたマクロブロックと、参照画像における原画像の動きが０であった場合のマクロブロック間の位置関係から、原画像と参照画像間の動きを予測し、動きベクトルを算出する。また、外部装置では、たとえば、制御部２０１１から入力された動きベクトルを参照して、原画像の符号化処理をおこない、Ｐピクチャを生成する。
【００２０】
外部メモリインタフェイス２０３０は、外部メモリ２０５０に対して、制御部２０１１から入力された要求にしたがい、演算領域の画像データに関するデータリクエストをおこなう。
【００２１】
外部メモリ２０５０は、動画像を構成する一連のフレーム画像を記憶しており、外部メモリインタフェイス２０３０からのデータリクエストにしたがって、演算領域の画像データをキャッシュメモリ２０１２に出力する。
【００２２】
キャッシュメモリ２０１２は、外部メモリ２０５０から入力された画像データを一時記憶する。一時記憶された画像データは、制御部２０１１の制御にしたがって、演算部２０１３へ出力される。
【００２３】
演算部２０１３は、圧縮対象となる原画像の画像データと、キャッシュメモリ２０１２に記憶された演算領域の画像データとを参照して、原画像と演算領域との画像情報を演算する。そして、演算部２０１３は、演算した画像情報を演算結果として制御部２０１１へ出力する。
【００２４】
つぎに、図２１を用いて、従来におけるＢピクチャに関する動きベクトル算出装置の回路構成について説明する。図２１は、従来におけるＢピクチャに関する動きベクトル算出装置の回路構成を示す説明図である。
【００２５】
図２１において、動きベクトル算出装置２１００は、２つの共通回路２１１０，２１２０と、外部メモリインタフェイス２１３０と、双方向制御部２１４０と、から構成されている。また、共通回路２１１０，２１２０は、それぞれ制御部２１１１，２１２１と、キャッシュメモリ２１１２，２１２２と、演算部２１１３，２１２３と、から構成されている。
【００２６】
図２１における動きベクトル算出装置２１００では、圧縮対象となる原画像から時間的に前方向および後方向のフレーム画像であるＩあるいはＰのピクチャタイプのフレーム画像を参照画像として、動きベクトルの算出をおこなう。
【００２７】
双方向制御部２１４０は、Ｂピクチャの生成元となる動きベクトルを生成するために、制御部２１１１，２１２１の制御を司る。具体的には、制御部２１１１，２１２１に対して、原画像から時間的に前方向のフレーム画像および後方向のフレーム画像を参照画像とする要求をそれぞれおこなう。
【００２８】
また、双方向制御部２１４０は、後述する制御部２１１１，２１２１から入力された演算結果を用いて、原画像におけるＢピクチャを生成するための動きベクトルを算出して、図示しない外部装置へ出力する。具体的には、制御部２１１１，２１２１から入力された演算結果のうち、原画像と参照画像との画素値の変化量が少ないマクロブロックを探索する。そして、探索されたマクロブロックと、参照画像における原画像の動きが０であった場合のマクロブロック間の位置関係から、原画像と参照画像間の動きを予測し、動きベクトルを算出する。
【００２９】
また、制御部２１１１，２１２１から入力された演算結果の平均によって、原画像と参照画像間の動きを予測してもよい。そして、外部装置では、たとえば、双方向制御部２１４０から入力された動きベクトルを参照して、原画像の符号化処理をおこない、Ｂピクチャを生成する。
【００３０】
そして、制御部２１１１，２１２１は、参照画像の中から、演算領域となる画像データの取得要求を外部メモリインタフェイス２１３０に出力する。
【００３１】
具体的には、たとえば、制御部２１１１は、原画像から時間的に前方向のフレーム画像の演算領域の画像データの取得要求を出力する。また、制御部２１２１は、原画像から時間的に後方向のフレーム画像の演算領域の画像データの取得要求を出力する。ここで、演算領域とは、具体的には、参照画像において、圧縮対象となる原画像に対応する画像情報を演算する領域である。
【００３２】
また、制御部２１１１，２１２１は、後述する演算部２１１３，２１２３の演算結果を画像情報として双方向制御部２１４０へ出力する。
【００３３】
画像情報とは、原画像における動きベクトルの算出元となる情報であり、たとえば、原画像および参照画像におけるマクロブロックの画素値の変化量などを用いることができる。また、演算部２１１３，２１２３は、演算部２１１３，２１２３それぞれの演算結果のうち、画素値の変化量の少ない演算結果を双方向制御部２１４０へ出力することとしてもよい。
【００３４】
外部メモリインタフェイス２１３０は、外部メモリ２１５０に対して、制御部２１１１，２１２１から入力された要求にしたがい、演算領域の画像データに関するデータリクエストをおこなう。
【００３５】
外部メモリ２１５０は、動画像を構成する一連のフレーム画像を記憶しており、外部メモリインタフェイス２１３０からのデータリクエストにしたがって、演算領域の画像データをキャッシュメモリ２１１２，２１２２に出力する。
【００３６】
キャッシュメモリ２１１２，２１２２は、外部メモリ２１５０から入力された画像データを一時記憶する。一時記憶された画像データは、制御部２１１１，２１２１の制御にしたがって、演算部２１１３，２１２３へ出力される。
【００３７】
演算部２１１３，２１２３は、圧縮対象となる原画像の画像データと、キャッシュメモリ２１１２，２１２２に記憶された演算領域の画像データとを参照して、原画像と演算領域との画像情報を演算する。そして、演算部２１１３，２１２３は、演算した画像情報を演算結果として制御部２１１１，２１２１へ出力する。
【００３８】
図２０および図２１で前述したように、Ｐピクチャを生成するための動きベクトルの算出と、Ｂピクチャを生成するための動きベクトルの算出においては、参照画像とするフレーム画像が原画像の前方向と双方向の違いのみである。
【００３９】
したがって、制御部２０１１，２１１１，２１２１とキャッシュメモリ２０１２，２１１２，２１２２と、演算部２０１３，２１１３，２１２３の構成はほぼ同様であり、従来より、動きベクトル算出装置２１００の構成を用いて、Ｐピクチャを生成するための動きベクトルと、Ｂピクチャを生成するための動きベクトルの算出をおこなっている。
【００４０】
つぎに、図２２を用いて、従来におけるＰピクチャおよびＢピクチャに関する動きベクトル算出装置の回路構成について説明する。図２２は、従来におけるＰピクチャおよびＢピクチャに関する動きベクトル算出装置の回路構成を示す説明図である。
【００４１】
図２２において、動きベクトル算出装置２２００は、選択部２２０１と、２つの共通回路２１１０，２１２０と、外部メモリインタフェイス２１３０と、双方向制御部２１４０と、から構成されている。
【００４２】
また、共通回路２１１０，２１２０は、それぞれ制御部２１１１，２１２１と、キャッシュメモリ２１１２，２１２２と、演算部２１１３，２１２３と、から構成されている。なお、動きベクトル算出装置２２００において、前述の図２１とほぼ同様の機能を有する構成については、同一符号を付し、その説明を省略する。
【００４３】
動きベクトル算出装置２２００は、Ｐピクチャを生成するための動きベクトルの算出と、Ｂピクチャを生成するための動きベクトルの算出をおこなうため、Ｐピクチャ、Ｂピクチャを生成するための動きベクトルの算出を切り替える、Ｐ／Ｂピクチャ切替信号２２０２の入力を図示しない外部装置から受け付ける。
【００４４】
図示しない外部装置から入力されたＰ／Ｂピクチャ切替信号２２０２は、双方向制御部２１４０、制御部２１２１、選択部２２０１に入力されて、動きベクトル算出装置２２００は、入力されたＰ／Ｂピクチャ切替信号２２０２にしたがって、ＰピクチャあるいはＢピクチャを生成するための動きベクトルを算出する。
【００４５】
選択部２２０１は、Ｐ／Ｂピクチャ切替信号２２０２にしたがって、制御部２１１１あるいは双方向制御部２１４０から入力される動きベクトルから、Ｐピクチャを生成するための動きベクトルあるいはＢピクチャを生成するための動きベクトルを選択して、図示しない外部装置へ出力する。
【００４６】
一連のフレーム画像から構成される動画像の圧縮は、図１９〜図２２に前述したように、Ｉピクチャ、ＢピクチャおよびＰピクチャによっておこなわれるため、各ピクチャタイプを生成するための動きベクトル算出の効率化が望まれている。
【００４７】
近年では、動きベクトルを探索する動画像圧縮方法および装置において、動きベクトルの探索の途中段階で最適な動きベクトルを判定して、探索処理を簡略化する。そして、ピクチャタイプの違いによる探索処理量を平均化し、効率よく動きベクトルを探索する提案がされている（たとえば、下記特許文献１参照。）。
【００４８】
【特許文献１】特開平９−１３０８０８号公報
【発明の開示】
【発明が解決しようとする課題】
【００４９】
しかしながら、上述した従来技術では、Ｂピクチャは、ＩピクチャとＰピクチャの間、あるいはＰピクチャとＰピクチャの間に序列されるため、Ｐピクチャの参照画像は、Ｂピクチャの参照画像と比較して、時間的に離れた画像となる。時間的に離れた画像を参照画像とすると移動距離が大きくなるため、Ｐピクチャにおける動きベクトルは、Ｂピクチャと比較して大きくなる。
【００５０】
そして、Ｐピクチャの動きベクトルの算出は、たとえば図２２で前述したＢピクチャの動きベクトルの算出に用いる共通回路（Ｒ）２１１０または共通回路（Ｌ）２１２０のいずれかを用いておこなっている。そのため、共通回路（Ｒ）２１１０および共通回路（Ｌ）２１２０について、Ｂピクチャにおける動きベクトル算出に適した処理能力であった場合、Ｂピクチャにおける演算領域と、Ｐピクチャにおける演算領域は同程度となる。
【００５１】
したがって、動きベクトルの大きなＰピクチャでは、十分な演算領域を確保できないため、Ｐピクチャの精度が著しく低下するという問題があった。さらに、Ｐピクチャの精度が低下すると、Ｐピクチャを参照画像とするＢピクチャの精度も低下するため、動画像全体の画質が低下してしまうという問題があった。
【００５２】
一方、共通回路（Ｒ）２１１０および共通回路（Ｌ）２１２０について、Ｐピクチャにおける動きベクトル算出に適した処理能力であった場合、Ｂピクチャにおける演算領域と、Ｐピクチャにおける演算領域は同程度となる。
【００５３】
したがって、動きベクトルの小さなＢピクチャでは、演算領域が大きくなるため、無駄な処理によって、Ｂピクチャの生成が滞ってしまうという問題があった。さらに、Ｂピクチャの挿入が欠如すると、未来のフレーム画像を参照画像とするピクチャが欠如することとなり、物体の出現に対応できないため、動画像全体の画質が低下してしまうという問題があった。
【００５４】
この発明は、上述した従来技術による問題点を解消するため、簡単な回路構成により動画像の画質向上を図ることができる動きベクトル算出装置を提供することを目的とする。
【課題を解決するための手段】
【００５５】
上述した課題を解決し、目的を達成するため、この発明にかかる動きベクトル算出装置は、動画像を構成する一連のフレーム画像のうち、圧縮対象となる原画像から時間的に前後する方向である双方向のフレーム画像を参照画像とし前記原画像と前記参照画像とを用いて前記原画像の動きベクトルを算出する動きベクトル算出装置において、前記原画像と前記原画像から時間的に前となる前方向のフレーム画像とを用いて、前記動きベクトルの算出元となる第１の画像情報を演算する第１の演算手段と、前記原画像と前記原画像から時間的に後となる後方向のフレーム画像とを用いて、前記動きベクトルの算出元となる第２の画像情報を演算する第２の演算手段と、前記参照画像を、前記双方向のフレーム画像から前記前方向のみのフレーム画像に切り替える切替手段と、を備え、前記第２の演算手段は、前記切替手段により切り替えられた場合、前記原画像と前記前方向のフレーム画像とを用いて、前記動きベクトルの算出元となる、前記第１の画像情報とは異なる他の画像情報を演算することを特徴とする。
【００５６】
この発明によれば、演算手段を効率的に利用して、前方向のフレーム画像のみから動きベクトルの算出元となる画像情報を演算することができる。
【００５７】
また、上記発明において、記第１の演算手段は、前記原画像と、前記前方向のフレーム画像における任意の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記第１の画像情報を演算し、前記第２の演算手段は、前記原画像と、前記前方向のフレーム画像における、前記任意の演算領域とは異なる他の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記他の画像情報を演算することとしてもよい。
【００５８】
この発明によれば、参照画像となる前方向のフレーム画像から、複数の演算領域について演算をおこなうため、広範囲の画像情報を演算することができる。
【００５９】
また、上記発明において、前記第１の画像情報と、前記他の画像情報とを比較して、前記前方向のフレーム画像における前記原画像の移動先を特定することにより、前記原画像の動きベクトルを算出することとしてもよい。
【００６０】
この発明によれば、参照画像となる前方向のフレーム画像において、広範囲の演算領域から演算された画像情報によって、原画像の動きベクトルを算出することができる。
【００６１】
また、上記発明において、前記第１の演算手段は、前記原画像と、前記前方向のフレーム画像における任意の演算領域内における第１の演算領域の画像とを用いて、前記動きベクトルの算出元となる第１の画像情報を演算し、前記第２の演算手段は、前記原画像と、前記前方向のフレーム画像における、前記任意の画像領域と同一の演算領域内における前記第１の演算領域とは異なる第２の演算領域の画像とを用いて、前記動きベクトルの算出元となる、前記第１の画像情報とは異なる前記他の画像情報を演算することとしてもよい。
【００６２】
この発明によれば、演算手段を効率的に用いて、同一の演算領域内を分担して、演算をおこなうため、処理の高速化を図ることができる。
【００６３】
また、上記発明において、前記第１の画像情報と、前記他の画像情報とを比較して、前記前方向のフレーム画像における前記原画像の移動先を特定することにより、前記原画像の動きベクトルを算出することとしてもよい。
【００６４】
この発明によれば、迅速な演算処理によって演算された画像情報によって、原画像の動きベクトルを算出することができる。
【００６５】
また、上記発明において、前記第１の演算手段は、前記原画像の画素値と前記第１の演算領域における画素値との絶対差分和を用いて、前記第１の画像情報を演算し、前記第２の演算手段は、前記原画像の画素値と前記第２の演算領域における画素値との絶対差分和を用いて、前記他の画像情報を演算することとしてもよい。
【００６６】
この発明によれば、任意の画像領域内における第１の画像領域および第１の画像領域とは異なる第２の画像領域の画素値を用いて、原画像における画素値との絶対差分和をそれぞれ演算することができる。
【００６７】
また、上記発明において、前記双方向のフレーム画像を参照画像とした場合、前記原画像と、前記前方向あるいは前記後方向のフレーム画像とを用いて、前記動きベクトルの算出元となる第３の画像情報を演算する第３の演算手段を、さらに備え、前記第３の演算手段は、前記切替手段により切り替えられた場合、前記原画像と前記前方向のフレーム画像とを用いて、前記動きベクトルの算出元となる、前記第１の画像情報および前記他の画像情報とは異なる別の画像情報を演算することとしてもよい。
【００６８】
この発明によれば、２より多い演算手段を備えている場合であっても、効率的に演算手段を利用して、参照画像となる前方向のフレーム画像から動きベクトルの算出元となる画像情報を演算することができる。
【００６９】
また、上記発明において、前記第１の演算手段は、前記原画像と、前記前方向のフレーム画像における任意の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記第１の画像情報を演算し、前記第２の演算手段は、前記原画像と、前記前方向のフレーム画像における、前記任意の演算領域とは異なる他の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記他の画像情報を演算し、前記第３の演算手段は、前記原画像と、前記前方向のフレーム画像における、前記任意の演算領域および前記他の演算領域とは異なる別の演算領域の画像とを用いて、前記動きベクトルの算出元となる前記別の画像情報を演算することとしてもよい。
【００７０】
この発明によれば、参照画像となる前方向のフレーム画像から、複数の演算領域について演算をおこなうため、広範囲の画像情報を演算することができる。
【００７１】
また、上記発明において、前記第１の画像情報と、前記他の画像情報と、前記別の画像情報とを比較して、前記前方向のフレーム画像における前記原画像の移動先を特定することにより、前記原画像の動きベクトルを算出することとしてもよい。
【００７２】
この発明によれば、参照画像となる前方向のフレーム画像において、広範囲の演算領域から演算された画像情報によって、原画像の動きベクトルを算出することができる。
【発明の効果】
【００７３】
この発明にかかる動きベクトル算出装置によれば、簡単な回路構成により動画像の画質向上を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００７４】
以下に添付図面を参照して、この発明にかかる動きベクトル算出装置の好適な実施の形態を詳細に説明する。
【００７５】
（実施の形態１）
（動きベクトルの算出概要）
まず、図１−１、図１−２および図２−１〜図２−６を用いて、この発明の実施の形態１にかかる動きベクトルの算出の概要について説明する。この発明の実施の形態１にかかる動きベクトル算出装置では、圧縮対象となる原画像に関して、最適な動きベクトルを算出するために、画像情報として原画像と参照画像とのＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ：絶対差分和）を演算する。
【００７６】
具体的には、１マクロブロックの原画像と、参照画像における所定の演算領域中のＳＡＤ演算範囲とにおけるＳＡＤが最小となるＳＡＤ演算範囲の位置を探索する。そして、探索されたＳＡＤ演算範囲の位置と、参照画像における原画像の動きが０であった場合の位置との関係から動きベクトルを決定する。
【００７７】
ＳＡＤ演算範囲とは、原画像と同等の範囲を有しており、たとえば、実施の形態１においては、１マクロブロックである。また、ＳＡＤは、たとえば、１マクロブロックの原画像と、演算領域中の１マクロブロックのＳＡＤ演算範囲とについて、１画素ずつ比較した画素値における絶対値の総和である。
【００７８】
なお、圧縮対象となる原画像は、一連のフレーム画像によって構成される動画像の圧縮におけるＰピクチャやＢピクチャに含まれる画像とすればよいが、実施の形態１においては、Ｐピクチャに含まれる画像とする。また、参照画像は、原画像より時間的に過去、かつ原画像とは別のＰピクチャあるいはＩピクチャである。
【００７９】
まず、図１−１および図１−２を用いて、この発明の実施の形態１にかかる動きベクトル算出におけるＳＡＤ演算の概要について説明する。図１−１は、この発明の実施の形態１にかかる動きベクトル算出における原画像を示す説明図である。図１−１において、原画像１１０は、１６×１６画素の１マクロブロックから構成されており、それぞれの画素１１１における画素値は、Ｏx,yである。なお、ｘ、ｙは、原画像における位置を示す数であり、０〜１５の整数とする。
【００８０】
図１−２は、この発明の実施の形態１にかかる動きベクトル算出におけるＳＡＤ演算範囲を示す説明図である。図１−２において、ＳＡＤ演算範囲１２０は、１６×１６画素の１マクロブロックから構成されており、それぞれの画素１２１における画素値は、Ｒx,yである。なお、ｘ、ｙは、ＳＡＤ演算範囲における位置を示す数であり、０〜１５の整数とする。また、ＳＡＤ演算範囲１２０は、参照画像における演算領域中の任意の１マクロブロックである。
【００８１】
前述の図１−１および図１−２より、１画素ずつ比較した画素値における絶対値の総和ＳＡＤは、下記式（１）によってあらわすことができる。
【００８２】
【数１】
2007221662.tif 000003
【００８３】
つぎに、図２−１〜図２−６を用いて、この発明の実施の形態１にかかる動きベクトルの決定について説明する。図２−１〜図２−６の説明では、ＳＡＤについて、参照画像における演算領域のすべてを探索するように、演算領域内でＳＡＤ演算範囲を繰り返し変更してＳＡＤを演算する。なお、以降、本明細書では、演算領域内のすべてを探索する方法を全探索法とする。
【００８４】
図２−１は、この発明の実施の形態１にかかる全探索法について示す説明図（その１）である。図２−１において、演算領域２００は、水平方向に−Ｈ〜Ｈ＋１５、垂直方向に−Ｖ〜Ｖ＋１５の範囲とし、演算範囲２１０を設定する。演算範囲２１０は、演算領域２００において、原画像とのＳＡＤを演算する範囲であり、図２−１では、演算領域２００の左上に位置している。そして、演算範囲２１０におけるＳＡＤを演算したら、図２−２に後述するように、水平方向右へ１画素移動した位置に別の演算範囲２２０を設定する。
【００８５】
そして、演算領域２００について、１列目におけるすべてのＳＡＤの演算が終了したら、つづいて、図２−４で後述するように、演算範囲２１０から垂直方向下へ１画素移動した位置に別の演算範囲２４０を設定する。同様にして、演算範囲の設定を繰り返して、演算領域２００のすべてについて、ＳＡＤを演算する構成である。なお、全探索法については、より具体的に、以下に図２−２〜図２−６を用いて説明する。
【００８６】
図２−２は、この発明の実施の形態１にかかる全探索法について示す説明図（その２）である。図２−２において、演算領域２００は、図２−１で前述した演算範囲２１０から水平方向右に１画素ずれた位置に演算範囲２２０が設定されている。そして、演算範囲２２０におけるＳＡＤを演算したら、さらに水平方向右へ移動した位置に別の演算範囲を設定することとなる。
【００８７】
図２−３は、この発明の実施の形態１にかかる全探索法について示す説明図（その３）である。図２−３において、演算領域２００は、図２−１および図２−２で前述したように演算範囲の設定を繰り返し、演算領域２００における１列目の最後（右上）の演算範囲２３０が設定されている。そして、演算範囲２３０におけるＳＡＤを演算し、図２−１で前述した演算範囲２１０から垂直方向下へ１画素移動した位置に別の演算範囲を設定する。
【００８８】
図２−４は、この発明の実施の形態１にかかる全探索法について示す説明図（その４）である。図２−４において、演算領域２００は、図２−１で前述した演算範囲２１０から垂直方向下に１画素ずれた位置に演算範囲２４０が設定されている。そして、演算範囲２４０におけるＳＡＤを演算したら、図２−５に後述するように、演算範囲２４０から水平方向右へ１画素移動した位置に別の演算範囲２５０を設定する。
【００８９】
図２−５は、この発明の実施の形態１にかかる全探索法について示す説明図（その５）である。図２−５において、演算領域２００は、図２−４で前述した演算範囲２１０から水平方向右に１画素ずれた位置に演算範囲２５０が設定されている。そして、演算範囲２５０におけるＳＡＤを演算したら、さらに水平方向右へ移動した位置に別の演算範囲を設定することとなる。
【００９０】
図２−６は、この発明の実施の形態１にかかる全探索法について示す説明図（その６）である。図２−６において、演算領域２００は、図２−４および図２−５で前述したように演算範囲の設定を繰り返し、演算領域２００における２列目の最後（２列目右端）の演算範囲２６０が設定されている。そして、演算範囲２３０におけるＳＡＤを演算する。そして、演算範囲２６０におけるＳＡＤを演算し、図２−４で前述した演算範囲２４０から垂直方向下へ１画素移動した位置に別の演算範囲を設定する。
【００９１】
図２−１〜図２−６のようにして処理を繰り返して、演算領域の全領域のＳＡＤを演算して、ＳＡＤが最小となる演算範囲を求めて、原画像の動きベクトルを算出する。換言すれば、原画像との変化量が少ない演算範囲が、参照画像における原画像に対応するマクロブロックとなるため、変化量が少ない演算範囲と、参照画像における原画像の動きが０であった場合のマクロブロック間の位置関係から原画像の動きベクトルを算出することができることとなる。
【００９２】
（動きベクトル算出装置の回路構成）
つぎに、図３を用いて、この発明の実施の形態１にかかる動きベクトル算出装置の回路構成について説明する。図３は、この発明の実施の形態１にかかる動きベクトル算出装置の回路構成を示す説明図である。
【００９３】
図３において、動きベクトル算出装置３００は、共通回路（Ｒ）３１０と、共通回路（Ｌ）３２０と、外部メモリインタフェイス３３０と、Ｐピクチャ制御部３４０と、から構成されている。また、共通回路（Ｒ）３１０は、制御部（Ｒ）３１１と、キャッシュメモリ（Ｒ）３１２と、演算部（Ｒ）３１３と、から構成されている。さらに、共通回路（Ｌ）３２０は、制御部（Ｌ）３２１と、キャッシュメモリ（Ｌ）３２２と、演算部（Ｌ）３２３と、から構成されている。
【００９４】
なお、図３の説明では、動きベクトル算出装置３００について、Ｐピクチャを生成するための動きベクトルの算出について説明するが、Ｂピクチャを生成するための動きベクトルについては、従来技術と同様にして、図示を省略した双方向制御部によって算出することとしてもよい。
【００９５】
Ｐピクチャ制御部３４０は、制御部（Ｒ）３１１および制御部（Ｌ）３２１を同時使用するための制御を司る。具体的には、ＰピクチャおよびＢピクチャを生成するための動きベクトルの算出を切り替えるＰ／Ｂピクチャ切替信号３０１の入力を、図示しない外部装置から受け付ける。
【００９６】
Ｐピクチャ制御部３４０は、入力されたＰ／Ｂピクチャ切替信号３０１にしたがい、共通回路（Ｒ）３１０および共通回路（Ｌ）３２０に対して制御信号を出力する。具体的には、Ｐピクチャを生成するための動きベクトルを算出する場合には、制御信号によって、参照画像を原画像における双方向のフレーム画像から前方向のフレーム画像に切り替えるよう制御する。
【００９７】
換言すれば、制御信号は、制御部（Ｒ）３１１および制御部（Ｌ）３２１に対して、原画像から時間的に前方向のフレーム画像を参照画像とする要求をそれぞれおこなうための信号である。
【００９８】
また、Ｐピクチャ制御部３４０は、後述する制御部（Ｒ）３１１および制御部（Ｌ）３２１から入力された演算結果を用いて、原画像におけるＰピクチャを生成するための動きベクトルを算出して、図示しない外部装置へ出力する。具体的には、制御部（Ｒ）３１１および制御部（Ｌ）３２１から入力された演算結果を比較して、参照画像とした前方向のフレーム画像における原画像の移動先を特定することによって、原画像の動きベクトルを算出する。
【００９９】
より具体的には、制御部（Ｒ）３１１および制御部（Ｌ）３２１から入力された演算結果から、原画像との変化量が小さいマクロブロックを探索する。そして、探索されたマクロブロックと、参照画像における原画像の動きが０であった場合のマクロブロック間の位置関係から原画像と参照画像間の動きを予測し、動きベクトルを算出する。そして、外部装置では、たとえば、Ｐピクチャ制御部３４０から入力された動きベクトルを参照して、原画像の符号化処理をおこない、Ｐピクチャを生成する。
【０１００】
制御部（Ｒ）３１１および制御部（Ｌ）３２１は、参照画像の中から、演算領域となる画像データの取得要求を外部メモリインタフェイス３３０に出力する。
【０１０１】
画像情報とは、たとえば、図１で前述したＳＡＤである。なお、実施の形態１では、制御部（Ｒ）３１１および制御部（Ｌ）３２１は、それぞれ原画像から時間的に前方向のフレーム画像の演算領域の画像データの取得要求を出力することとなる。
【０１０２】
ここで、図４を用いて、この発明の実施の形態１にかかる原画像に対応するＳＡＤを演算する演算領域について説明する。図４は、この発明の実施の形態１にかかる原画像に対応するＳＡＤを演算する演算領域を示す説明図である。図４において、演算領域４００は、右側の演算領域（Ｒ）４１０と、左側の演算領域（Ｌ）４２０から構成されている。
【０１０３】
演算領域４００は、原画像より時間的に前方向の参照画像に含まれる、水平方向に−Ｈ〜Ｈ＋１５、垂直方向に−Ｖ〜Ｖ＋１５の範囲の領域であり、中心の位置には、原画像における動きベクトルが０であった場合の演算範囲４０１が図示されている。
【０１０４】
演算範囲４０１は、１６×１６画素の１マクロブロックから構成されており、原画像と１画素ずつ比較した画素値における絶対値の総和ＳＡＤを算出する範囲である。また、演算範囲４０１は、演算領域４１０における任意の位置に設定できる構成であり、本明細書では、マクロブロックの左上の位置を用いて演算範囲（Ｘ，Ｙ）として説明する。
【０１０５】
具体的には、図４において、原画像における動きベクトルが０であった場合の演算範囲４０１は、演算範囲（０，０）となる。また、演算領域（Ｌ）４２０の左上に位置する場合は、演算範囲（−Ｈ，−Ｖ）となる。
【０１０６】
演算領域（Ｒ）４１０および演算領域（Ｌ）４２０は、ともに原画像における動きベクトルが０であった場合の演算範囲４０１（演算範囲（０，０））を含む構成である。具体的には、演算領域（Ｒ）４１０は、水平方向に０〜Ｈ＋１５、垂直方向に−Ｖ〜Ｖ＋１５の範囲の領域であり、演算領域（Ｌ）４２０は、水平方向に−Ｈ〜１５、垂直方向に−Ｖ〜Ｖ＋１５の範囲の領域である。
【０１０７】
図３に戻って、制御部（Ｒ）３１１および制御部（Ｌ）３２１について説明する。制御部（Ｒ）３１１および制御部（Ｌ）３２１は、外部メモリインタフェイス３３０に対してそれぞれ演算領域の画像データの取得要求を出力する。具体的には、制御部（Ｒ）３１１は、図４で前述した演算領域（Ｒ）４１０の画像データの取得要求をおこなう。また、制御部（Ｌ）３２１は、図４で前述した演算領域（Ｌ）４２０の画像データの取得要求をおこなう。
【０１０８】
それぞれの制御部（Ｒ）３１１および制御部（Ｌ）３２１が演算領域（Ｒ）４１０および演算領域（Ｌ）４２０の画像データの取得要求をおこなうことで、ＳＡＤの演算領域が広範囲となり、より正確な動きベクトルの算出が可能となる。とくに、Ｂピクチャに比べて動きベクトルの大きなＰピクチャの動きベクトルの算出には、有効な手法である。
【０１０９】
また、制御部（Ｒ）３１１および制御部（Ｌ）３２１は、後述する演算部（Ｒ）３１３および演算部（Ｌ）３２３の演算結果によって、原画像における動きベクトルを算出するための画像情報を、Ｐピクチャ制御部３４０へ出力する。画像情報は、たとえば、図１で前述したＳＡＤで、演算部（Ｒ）３１３および演算部（Ｌ）３２３の演算結果それぞれについて、ＳＡＤの最小値をＰピクチャ制御部３４０へ出力する。
【０１１０】
外部メモリインタフェイス３３０は、外部メモリ３５０に対して、制御部（Ｒ）３１１および制御部（Ｌ）３２１から入力された要求にしたがい、演算領域の画像データに関するデータリクエストをおこなう。具体的には、図４で前述した演算領域（Ｒ）４１０の画像データおよび共通回路３２０に図４で前述した演算領域（Ｌ）４２０の画像データに関するデータリクエストをおこなう。
【０１１１】
外部メモリ３５０は、動画像を構成する一連のフレーム画像を記憶しており、外部メモリインタフェイス３３０からのデータリクエストにしたがって、演算領域の画像データをキャッシュメモリ（Ｒ）３１２およびキャッシュメモリ（Ｌ）３２２に出力する。具体的には、キャッシュメモリ（Ｒ）３１２へ図４で前述した演算領域（Ｒ）４１０の画像データを出力する。また、キャッシュメモリ（Ｌ）３２２へ図４で前述した演算領域（Ｌ）４２０の画像データを出力する。
【０１１２】
キャッシュメモリ（Ｒ）３１２およびキャッシュメモリ（Ｌ）３２２は、外部メモリ３５０から入力された画像データをそれぞれ一時記憶する。一時記憶された画像データは、制御部（Ｒ）３１１および制御部（Ｌ）３２１の制御にしたがって、演算部（Ｒ）３１３および演算部（Ｌ）３２３へ出力される。
【０１１３】
演算部（Ｒ）３１３および演算部（Ｌ）３２３は、圧縮対象となる原画像の画像データと、キャッシュメモリ（Ｒ）３１２およびキャッシュメモリ（Ｌ）３２２に記憶された演算領域の画像データとを用いて、原画像の動きベクトルの算出元となる画像情報を演算する。画像情報は、図１で前述したＳＡＤでもよく、演算部（Ｒ）３１３および演算部（Ｌ）３２３は、演算したＳＡＤを制御部（Ｒ）３１１および制御部（Ｌ）３２１へ出力する。
【０１１４】
具体的には、演算部（Ｒ）３１３について説明すると、図２−１〜図２−６で前述した全探索法によって、図４における演算領域（Ｒ）４１０内すべての演算範囲（Ｘ，Ｙ）におけるＳＡＤを演算する。そして、演算されたＳＡＤを制御部（Ｒ）３１１へ出力する。なお、実施の形態１においては、Ｘは、０〜Ｈ＋１５、Ｙは、−Ｖ〜Ｖ＋１５の範囲である。
【０１１５】
以上図３で前述した、動きベクトル算出装置３００では、原画像に対してＳＡＤを演算する演算領域を２つに分割して、２つの共通回路（Ｒ）３１０あるいは共通回路（Ｌ）３２０で分担して演算をおこなう構成である。したがって、共通回路の処理能力を増強することなく、広範囲な演算領域からＳＡＤを演算することができ、より正確な動きベクトルの算出が可能となる。とくに、Ｂピクチャに比べて動きベクトルの大きなＰピクチャの動きベクトルの算出には、有効な手法である。
【０１１６】
また、１つの共通回路（共通回路（Ｒ）３１０あるいは共通回路（Ｌ）３２０）だけでＰピクチャにおけるＳＡＤを演算せずに、従来構成のＢピクチャにおける動きベクトルを算出する共通回路（共通回路（Ｒ）３１０および共通回路（Ｌ）３２０）を利用して、演算領域を広範囲とすることができる。したがって、Ｐピクチャにおける動きベクトルの算出においても、効率的に回路を利用することができる。
【０１１７】
（動きベクトル算出装置３００の動きベクトル算出処理手順）
つぎに、図５を用いて、この発明の実施の形態１にかかる動きベクトル算出装置３００の動きベクトル算出処理手順について説明する。図５は、この発明の実施の形態１にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。図５のフローチャートにおいて、まず、Ｐピクチャ制御部３４０は、共通回路（Ｒ）３１０および共通回路（Ｌ）３２０に対して制御信号を出力する（ステップＳ５０１）。
【０１１８】
制御信号は、演算領域を設定する信号で、たとえば、制御部（Ｒ）３１１および制御部（Ｌ）３２１に対して、原画像から時間的に前方向の参照画像について、ＳＡＤを演算する領域を図４で前述した演算領域（Ｒ）４１０と演算領域（Ｌ）４２０とする信号である。
【０１１９】
ステップＳ５０１において入力された制御信号にしたがって、共通回路（Ｒ）３１０により、外部メモリ３５０から演算領域（Ｒ）４１０の画像データを読み込む（ステップＳ５０２）。画像データの読み込みは、具体的には、制御部（Ｒ）３１１により、外部メモリインタフェイス３３０を介して、外部メモリ３５０に対して演算領域（Ｒ）４１０の画像データの取得要求をおこなう。そして、取得要求にしたがって外部メモリ３５０から入力された演算領域（Ｒ）４１０の画像データをキャッシュメモリ（Ｒ）３１２により一時記憶する。
【０１２０】
そして、ステップＳ５０２において読み込まれた画像データによって、共通回路（Ｒ）３１０により、演算領域（Ｒ）４１０で全探索処理をおこなう（ステップＳ５０３）。具体的には、制御部（Ｒ）３１１の制御にしたがって、演算部（Ｒ）３１３によりキャッシュメモリ（Ｒ）３１２に一時記憶された画像データを参照して、原画像と演算領域との画像情報であるＳＡＤを演算する。そして、演算されたＳＡＤにより、最小のＳＡＤ（ｍｉｎＳＡＤ（Ｒ））と、動きベクトル（Ｖｅｃｔｏｒ（Ｒ））を算出する。なお、ステップＳ５０３における全探索処理詳細については、図６に後述する。
【０１２１】
以降、本明細書では、最小のＳＡＤをｍｉｎＳＡＤとして、演算をおこなった共通回路が異なるｍｉｎＳＡＤは、共通回路における（Ｒ）あるいは（Ｌ）を付すこととする。さらに、算出する動きベクトルをＶｅｃｔｏｒとして、算出をおこなった共通回路が異なるＶｅｃｔｏｒは、共通回路における（Ｒ）あるいは（Ｌ）を付すこととする。
【０１２２】
具体的には、共通回路（Ｒ）で演算されたＳＡＤは、ＳＡＤ（Ｒ）、ｍｉｎＳＡＤはｍｉｎＳＡＤ（Ｒ）とし、共通回路（Ｌ）で演算されたＳＡＤは、ＳＡＤ（Ｌ）、ｍｉｎＳＡＤはｍｉｎＳＡＤ（Ｌ）とする。また、共通回路（Ｒ）で算出されたＶｅｃｔｏｒは、Ｖｅｃｔｏｒ（Ｒ）とし、共通回路（Ｌ）で演算されたＶｅｃｔｏｒは、Ｖｅｃｔｏｒ（Ｌ）とする。
【０１２３】
つづいて、共通回路（Ｒ）３１０により、Ｐピクチャ制御部３４０へ、ステップＳ５０３における全探索処理によって算出されたｍｉｎＳＡＤ（Ｒ）と、Ｖｅｃｔｏｒ（Ｒ）を出力する（ステップＳ５０４）。
【０１２４】
また、共通回路（Ｌ）３２０においても、前述のステップＳ５０２〜ステップＳ５０４と同様にして、外部メモリ３５０から演算領域（Ｌ）４２０の画像データを読み込み（ステップＳ５０５）、演算領域（Ｌ）４２０で全探索処理をおこなう（ステップＳ５０６）。そして、ステップＳ５０６における全探索処理によって算出されたｍｉｎＳＡＤ（Ｌ）と、Ｖｅｃｔｏｒ（Ｌ）を出力する（ステップＳ５０７）。
【０１２５】
そして、Ｐピクチャ制御部３４０により、ステップＳ５０４およびステップＳ５０７において出力されたｍｉｎＳＡＤ（Ｒ）とｍｉｎＳＡＤ（Ｌ）を比較する。ｍｉｎＳＡＤ（Ｒ）とｍｉｎＳＡＤ（Ｌ）は、図５では、たとえば、ｍｉｎＳＡＤ（Ｌ）がｍｉｎＳＡＤ（Ｒ）より小さいか否か（ｍｉｎＳＡＤ（Ｌ）＜ｍｉｎＳＡＤ（Ｒ）？）を判断する（ステップＳ５０８）。
【０１２６】
ステップＳ５０８において、ｍｉｎＳＡＤ（Ｌ）がｍｉｎＳＡＤ（Ｒ）より小さくない場合（ステップＳ５０８：Ｎｏ）は、ｍｉｎＳＡＤをｍｉｎＳＡＤ（Ｒ）とするとともに、ＶｅｃｔｏｒをＶｅｃｔｏｒ（Ｒ）として（ステップＳ５０９）、一連の処理を終了する。換言すれば、ｍｉｎＳＡＤ（Ｌ）がｍｉｎＳＡＤ（Ｒ）を比較して、ｍｉｎＳＡＤ（Ｒ）の方が小さい（同値を含む）場合に、最小のＳＡＤをｍｉｎＳＡＤ（Ｒ）として、ｍｉｎＳＡＤ（Ｒ）に対応するベクトルを動きベクトルとする。
【０１２７】
また、ステップＳ５０８において、ｍｉｎＳＡＤ（Ｌ）がｍｉｎＳＡＤ（Ｒ）より小さい場合（ステップＳ５０８：Ｙｅｓ）は、ｍｉｎＳＡＤをｍｉｎＳＡＤ（Ｌ）とするとともに、ＶｅｃｔｏｒをＶｅｃｔｏｒ（Ｌ）として（ステップＳ５１０）、一連の処理を終了する。
【０１２８】
以上図５における動きベクトル算出処理によって、演算領域（Ｒ）４１０と演算領域（Ｌ）４２０の中から、最も小さいＳＡＤに基づく動きベクトルを算出することができる。換言すれば、原画像との変化量が最も少ないＳＡＤにより原画像の移動を予測して、動きベクトルを算出することができる。
【０１２９】
つづいて、図６を用いて、この発明の実施の形態１にかかる動きベクトル算出装置３００における全探索処理（図５のステップＳ５０３およびＳ５０６）手順について説明する。図６は、この発明の実施の形態１にかかる動きベクトル算出装置における全探索処理（図５のステップＳ５０３およびＳ５０６）手順を示すフローチャートである。なお、共通回路（Ｒ）３１０および共通回路（Ｌ）３２０における全探索処理は、ほぼ同様であるため、図６のフローチャートでは、共通回路（Ｒ）３１０について説明する。
【０１３０】
図６のフローチャートにおいて、まず、制御部（Ｒ）３１１により初期設定をおこなう（ステップＳ６０１）。初期設定は、たとえば、演算領域（Ｒ）４１０における任意の演算範囲（Ｘ，Ｙ）と、ｍｉｎＳＡＤに関する設定であり、ｍｉｎＳＡＤ＝９９９９９９、Ｘ＝０、Ｙ＝−Ｖに設定する。ｍｉｎＳＡＤは、たとえば、最大のＳＡＤより十分大きな値であればよい。また、共通回路（Ｌ）３２０における全探索処理の場合は、ｍｉｎＳＡＤ＝９９９９９９、初期設定はＸ＝−Ｈ、Ｙ＝−Ｖとなる。
【０１３１】
つづいて、演算部（Ｒ）３１３により、キャッシュメモリ３１２に一時記憶された演算領域の中から、設定された演算範囲（Ｘ，Ｙ）と、原画像とのＳＡＤを演算し（ステップＳ６０２）、制御部（Ｒ）３１１へ出力する。そして、ステップＳ６０２において演算されたＳＡＤをＳＡＤｃｕｒとし、制御部（Ｒ）３１１によりＳＡＤｃｕｒがｍｉｎＳＡＤより小さいか否か（ｍｉｎＳＡＤ＞ＳＡＤｃｕｒ？）を判断する（ステップＳ６０３）。
【０１３２】
ステップＳ６０３においてＳＡＤｃｕｒがｍｉｎＳＡＤより小さくない場合（ステップＳ６０３：Ｎｏ）は、制御部（Ｒ）３１１により、Ｘをインクリメント（Ｘ＝Ｘ＋１）する（ステップＳ６０５）。くわえて、制御部（Ｒ）３１１により演算領域（Ｒ）４１０において、水平方向の探索が終了したか否か（Ｘ＞Ｈ？）を判断する（ステップＳ６０６）。
【０１３３】
ステップＳ６０３において、ＳＡＤｃｕｒがｍｉｎＳＡＤより小さい場合（ステップＳ６０３：Ｙｅｓ）は、ｍｉｎＳＡＤをＳＡＤｃｕｒ、Ｖｅｃｔｏｒを（Ｘ，Ｙ）に設定し（ステップＳ６０４）、ステップＳ６０５へ移行する。
【０１３４】
具体的には、設定されているｍｉｎＳＡＤより演算されたＳＡＤｃｕｒが小さければ、ｍｉｎＳＡＤをより小さい方に更新する。また、原画像における動きベクトルが０の場合の演算範囲の位置（０，０）からＳＡＤｃｕｒにおける演算範囲（Ｘ，Ｙ）の動きベクトル（Ｘ，Ｙ）を算出する構成である。
【０１３５】
具体的には、ステップＳ６０５およびステップＳ６０６では、演算領域（Ｒ）４１０において、ステップＳ６０２において演算した演算範囲（Ｘ，Ｙ）から右に１画素移動した演算範囲（Ｘ，Ｙ）が、演算領域（Ｒ）４１０を超えるか否かを判断する構成である。
【０１３６】
なお、共通回路（Ｌ）３２０でステップＳ６０５およびステップＳ６０６をおこなう場合は、制御部（Ｌ）３２１により、Ｘをインクリメント（Ｘ＝Ｘ＋１）するとともに、演算領域（Ｌ）４２０において、水平方向の探索が終了したか否か（Ｘ＞０？）を判断する構成である。
【０１３７】
ステップＳ６０６において、水平方向の探索が終了していない場合（ステップＳ６０６：Ｎｏ）は、ステップＳ６０２へ戻って処理を繰り返す。また、ステップＳ６０６において、水平方向の探索が終了した場合（ステップＳ６０６：Ｙｅｓ）は、つづいて、制御部（Ｒ）３１１により、Ｘを初期化し、Ｙをインクリメント（Ｘ＝０，Ｙ＝Ｙ＋１）する（ステップＳ６０７）。くわえて、制御部（Ｒ）３１１により演算領域（Ｒ）４１０において、垂直方向の探索が終了したか否か（Ｙ＞Ｖ？）を判断する（ステップＳ６０８）。
【０１３８】
具体的には、ステップＳ６０７およびステップＳ６０８では、演算領域（Ｒ）４１０において、初期の水平方向の位置で演算した演算範囲（Ｘ，Ｙ）から下に１画素移動した演算範囲（Ｘ，Ｙ）が、演算領域（Ｒ）４１０を超えるか否かを判断する構成である。なお、共通回路（Ｌ）３２０でステップＳ６０７およびステップＳ６０８をおこなう場合は、制御部（Ｌ）３２１により、Ｘを初期化し、Ｙをインクリメント（Ｘ＝０，Ｙ＝Ｙ＋１）するとともに、演算領域（Ｌ）４２０において、垂直方向の探索が終了したか否か（Ｙ＞Ｖ＋１５？）を判断する構成である。
【０１３９】
ステップＳ６０８において、垂直方向の探索が終了していない場合（ステップＳ６０８：Ｎｏ）は、ステップＳ６０２へ戻って処理を繰り返す。また、ステップＳ６０８において、垂直方向の探索が終了した場合（ステップＳ６０８：Ｙｅｓ）は、ｍｉｎＳＡＤおよびＶｅｃｔｏｒをｍｉｎＳＡＤ（Ｒ）およびＶｅｃｔｏｒ（Ｒ）として、図５におけるステップＳ５０３の全探索処理を終了して、ステップＳ５０８へ移行する。
【０１４０】
また、共通回路（Ｌ）３２０で全探索処理をおこなった場合は、ｍｉｎＳＡＤおよびＶｅｃｔｏｒをｍｉｎＳＡＤ（Ｌ）およびＶｅｃｔｏｒ（Ｌ）として、図５におけるステップＳ５０６の全探索処理を終了して、ステップＳ５０８へ移行する。
【０１４１】
このように、この発明の実施の形態１によれば、参照画像における演算領域を２つの共通回路によって、分担してＳＡＤを演算することができるため、広範囲の演算領域からＳＡＤを演算し、適切な動きベクトルを算出することができる。したがって、Ｐピクチャの精度を向上させて、ＰピクチャおよびＰピクチャを参照するＢピクチャの画質が向上して、動画像全体の高画質化を実現することができる。
【０１４２】
また、Ｂピクチャを生成するために用いる共通回路を使用して、Ｐピクチャに関する演算をおこなうため、演算回路を増設することなく、回路の効率的な利用を図ることができる。
【０１４３】
（実施の形態２）
つぎに、この発明の実施の形態２について説明する。前述の実施の形態１では、図２−１〜図２−６で前述した全探索法によって動きベクトルを算出したが、実施の形態２では、追跡型探索法によって動きベクトルを算出する場合について説明する。
【０１４４】
追跡型探索法は、演算範囲（Ｘ，Ｙ）と、演算範囲（Ｘ，Ｙ）の上下左右１画素ずつずれた位置の演算範囲（Ｘ＋１，Ｙ）、演算範囲（Ｘ−１，Ｙ）、演算範囲（Ｘ，Ｙ＋１）、演算範囲（Ｘ，Ｙ−１）のＳＡＤを演算して、ＳＡＤの小さい箇所を演算範囲（Ｘ，Ｙ）に置き換える。
【０１４５】
そして、同様の処理を繰り返して、演算範囲（Ｘ，Ｙ）の上下左右に、演算範囲（Ｘ，Ｙ）よりＳＡＤの小さな箇所が探索されなくなるまで処理を繰り返し、動きベクトルを決定する方法である。なお、追跡型探索法の詳細は、図７−１〜図７−４で後述するが、この追跡型探索法によれば、図２−１〜図２−６で前述した、演算領域すべて演算範囲（Ｘ，Ｙ）を探索する全探索法に比べて演算回数を削減することができる。
【０１４６】
また、実施の形態２では、追跡型探索法を用いて、２つの共通回路で演算範囲（Ｘ，Ｙ）の上下左右の演算を分担して演算をおこなうため、同じ処理時間で従来に比べて約２倍の演算が可能となり、広範囲の追跡探索がおこなえる。また、演算領域を分割せずに処理をおこなうため、実施の形態１に比べて、外部メモリ３５０から読み込む画像データの容量を削減でき、消費電力の削減および回路規模の縮小が実現できる。
【０１４７】
なお、実施の形態２にかかる動きベクトル算出装置におけるＳＡＤ演算の概要については図１、動きベクトル算出装置の回路構成については図３、とそれぞれほぼ同様であるため説明を省略する。
【０１４８】
まず、図７−１〜図７−４を用いて、この発明の実施の形態２にかかる動きベクトル算出装置の追跡型探索法について説明する。図７−１〜図７−４の説明では、図７−１〜図７−４の順序にしたがって動きベクトルを決定する構成である。
【０１４９】
図７−１は、この発明の実施の形態２にかかる追跡型探索法について示す説明図（その１）である。図７−１において、演算範囲（Ｘ，Ｙ）７１０は、原画像とのＳＡＤを演算する範囲で、たとえば、参照画像における任意の１マクロブロックである。演算範囲（Ｘ，Ｙ）７１０は、過去の同位置のベクトルや、原画像の動きベクトルが０であった場合の位置などによって決定する構成でもよい。ここで、まず、追跡型探索法では、演算範囲（Ｘ，Ｙ）７１０と原画像とのＳＡＤを演算する。
【０１５０】
図７−２は、この発明の実施の形態２にかかる追跡型探索法について示す説明図（その２）である。図７−２において、演算範囲（Ｘ，Ｙ）７１０の周辺である上下左右はそれぞれ、演算範囲（Ｘ＋１，Ｙ）７２１と、演算範囲（Ｘ−１，Ｙ）７２２と、演算範囲（Ｘ，Ｙ＋１）７２３と、演算範囲（Ｘ，Ｙ−１）７２４とである。
【０１５１】
追跡型探索法では、演算範囲（Ｘ＋１，Ｙ）７２１、演算範囲（Ｘ−１，Ｙ）７２２、演算範囲（Ｘ，Ｙ＋１）７２３、演算範囲（Ｘ，Ｙ−１）７２４と、原画像におけるＳＡＤをそれぞれ演算する。
【０１５２】
さらに、演算範囲（Ｘ，Ｙ）７１０と、その周辺の演算範囲（Ｘ＋１，Ｙ）７２１、演算範囲（Ｘ−１，Ｙ）７２２、演算範囲（Ｘ，Ｙ＋１）７２３、演算範囲（Ｘ，Ｙ−１）７２４のＳＡＤをそれぞれ比較して、より小さなＳＡＤを検索する。図７−１〜図７−４の説明では、演算範囲（Ｘ−１，Ｙ）７２２のＳＡＤが最小であったものとする。
【０１５３】
図７−３は、この発明の実施の形態２にかかる追跡型探索法について示す説明図（その３）である。図７−３において、前述の図７−３でＳＡＤが最小であった演算範囲（Ｘ−１，Ｙ）７２２の周辺である上下左右は、演算範囲（Ｘ，Ｙ）７１０、演算範囲（Ｘ−２，Ｙ）７３２、演算範囲（Ｘ−１，Ｙ＋１）７３３、演算範囲（Ｘ−１，Ｙ−１）７３４である。そして、図７−２と同様にして、演算範囲（Ｘ，Ｙ）７１０、演算範囲（Ｘ−２，Ｙ）７３２、演算範囲（Ｘ−１，Ｙ＋１）７３３、演算範囲（Ｘ−１，Ｙ−１）７３４のＳＡＤを演算して、より小さなＳＡＤを検索することとなる。
【０１５４】
図７−４は、この発明の実施の形態２にかかる追跡型探索法について示す説明図（その４）である。図７−４において、演算範囲（Ｘ−５，Ｙ−３）７４０は、図７−１〜図７−３を繰り返すことにより、周辺により小さなＳＡＤが検索できなくなった位置である。追跡型探索法では、前述の図７−１〜図７−４のようにして処理をおこない、動きベクトルを決定する。
【０１５５】
具体的には、演算範囲（Ｘ，Ｙ）を、原画像の動きベクトルが０であった場合の位置として、演算範囲（０，０）に設定する。そして、図７−１〜図７−４における追跡型探索法をおこなうと、周辺により小さいＳＡＤが検索できなくなる演算範囲（−５，−３）となることより、原画像の動きベクトルは、（−５，−３）ということになる。
【０１５６】
なお、ＳＡＤの演算は、図７−１〜図７−４の説明では、演算範囲（Ｘ，Ｙ）７１０の周辺を上下左右に限定して演算する説明をしたが、演算範囲（Ｘ，Ｙ）７１０の斜め右（左）上や、斜め右（左）下を周辺に含めてもよく、演算範囲（Ｘ，Ｙ）７１０より所定の範囲に含まれる１マクロブロックである。
【０１５７】
（追跡型探索法の処理手順）
ここで、図８を用いて、図７−１〜図７−４における追跡型探索法の処理手順について説明する。図８は、図７−１〜図７−４における追跡型探索法の処理手順について示すフローチャートである。なお、実施の形態２にかかる動きベクトル算出装置３００における追跡型探索法の処理手順詳細については、図１０に後述する。
【０１５８】
図８のフローチャートにおいて、まず、動きベクトル算出装置３００は、参照画像における任意の演算範囲（Ｘ，Ｙ）を設定する（ステップＳ８０１）。そして、ステップＳ８０１において設定された演算範囲（Ｘ，Ｙ）と、原画像とのＳＡＤを演算し（ステップＳ８０２）、このＳＡＤをＳＡＤｃｕｒとする。なお、図８の説明においては、原画像の動きベクトルが０であった場合を、演算範囲（０，０）として説明する。
【０１５９】
動きベクトル算出装置３００は、ステップＳ８０１において設定された演算範囲（Ｘ，Ｙ）と、ステップ８０２において演算されたＳＡＤｃｕｒとによって、ｍｉｎＳＡＤ＝ＳＡＤｃｕｒ，Ｖｅｃｔｏｒ＝（Ｘ，Ｙ）に設定する（ステップＳ８０３）。
【０１６０】
ｍｉｎＳＡＤは、追跡型探索法の処理の各段階における最小のＳＡＤであり、Ｖｅｃｔｏｒは、追跡型探索法の処理の各段階における動きベクトルである。換言すれば、図８のフローチャートにおいて、追跡型探索法の処理の終了段階におけるｍｉｎＳＡＤおよびＶｅｃｔｏｒによって、原画像に対してＳＡＤが最小となる動きベクトルが決定できる。
【０１６１】
つづいて、動きベクトル算出装置３００により、演算範囲（Ｘ，Ｙ）の１画素左の演算範囲（Ｘ−１，Ｙ）におけるＳＡＤを演算し、ＳＡＤｃｕｒとする（ステップＳ８０４）とともに、ＳＡＤｃｕｒがｍｉｎＳＡＤより小さいか否か（ｍｉｎＳＡＤ＞ＳＡＤｃｕｒ？）を判断する（ステップＳ８０５）。
【０１６２】
ステップＳ８０５において、ＳＡＤｃｕｒがｍｉｎＳＡＤより小さくない場合（ステップＳ８０５：Ｎｏ）は、つづいて、演算範囲（Ｘ，Ｙ）の１画素右の演算範囲（Ｘ＋１，Ｙ）におけるＳＡＤを演算し、ＳＡＤｃｕｒとする（ステップＳ８０７）とともに、ＳＡＤｃｕｒがｍｉｎＳＡＤより小さいか否か（ｍｉｎＳＡＤ＞ＳＡＤｃｕｒ？）を判断する（ステップＳ８０８）。
【０１６３】
また、ステップＳ８０５において、ＳＡＤｃｕｒがｍｉｎＳＡＤより小さい場合（ステップＳ８０５：Ｙｅｓ）は、ｍｉｎＳＡＤをＳＡＤｃｕｒ、Ｖｅｃｔｏｒを（Ｘ−１，Ｙ）に設定し（ステップＳ８０６）、ステップＳ８０７へ移行する。
【０１６４】
具体的には、設定されているｍｉｎＳＡＤより演算されたＳＡＤｃｕｒが小さければ、ｍｉｎＳＡＤをより小さい方に更新する。また、より小さいｍｉｎＳＡＤに対応するＶｅｃｔｏｒを設定する構成である。
【０１６５】
ステップＳ８０８において、ＳＡＤｃｕｒがｍｉｎＳＡＤより小さくない場合（ステップＳ８０８：Ｎｏ）は、つづいて、演算範囲（Ｘ，Ｙ）の１画素上の演算範囲（Ｘ，Ｙ−１）におけるＳＡＤを演算し、ＳＡＤｃｕｒとする（ステップＳ８１０）とともに、ＳＡＤｃｕｒがｍｉｎＳＡＤより小さいか否か（ｍｉｎＳＡＤ＞ＳＡＤｃｕｒ？）を判断する（ステップＳ８１１）。
【０１６６】
また、ステップＳ８０８において、ＳＡＤｃｕｒがｍｉｎＳＡＤより小さい場合（ステップＳ８０８：Ｙｅｓ）は、ｍｉｎＳＡＤをＳＡＤｃｕｒ、Ｖｅｃｔｏｒを（Ｘ＋１，Ｙ）に設定し（ステップＳ８０９）、ステップＳ８１０へ移行する。
【０１６７】
ステップＳ８１１において、ＳＡＤｃｕｒがｍｉｎＳＡＤより小さくない場合（ステップＳ８１１：Ｎｏ）は、つづいて、演算範囲（Ｘ，Ｙ）の１画素下の演算範囲（Ｘ，Ｙ＋１）におけるＳＡＤを演算し、ＳＡＤｃｕｒとする（ステップＳ８１３）とともに、ＳＡＤｃｕｒがｍｉｎＳＡＤより小さいか否か（ｍｉｎＳＡＤ＞ＳＡＤｃｕｒ？）を判断する（ステップＳ８１４）。
【０１６８】
また、ステップＳ８１１において、ＳＡＤｃｕｒがｍｉｎＳＡＤより小さい場合（ステップＳ８１１：Ｙｅｓ）は、ｍｉｎＳＡＤをＳＡＤｃｕｒ、Ｖｅｃｔｏｒを（Ｘ，Ｙ−１）に設定し（ステップＳ８１２）、ステップＳ８１３へ移行する。
【０１６９】
ステップＳ８１４において、ＳＡＤｃｕｒがｍｉｎＳＡＤより小さくない場合（ステップＳ８１４：Ｎｏ）は、つづいて、Ｖｅｃｔｏｒが（Ｘ，Ｙ）であるか否かを判断する（ステップＳ８１６）。
【０１７０】
具体的には、ステップＳ８０４およびステップＳ８０７およびステップＳ８１０およびステップＳ８１３で演算されたＳＡＤが演算範囲（Ｘ，Ｙ）におけるｍｉｎＳＡＤより小さいことによって、（Ｘ，Ｙ）以外の動きベクトルが設定されたか否かを判断する。
【０１７１】
また、ステップＳ８１４において、ＳＡＤｃｕｒがｍｉｎＳＡＤより小さい場合（ステップＳ８１４：Ｙｅｓ）は、ｍｉｎＳＡＤをＳＡＤｃｕｒ、Ｖｅｃｔｏｒを（Ｘ，Ｙ＋１）に設定し（ステップＳ８１５）、ステップＳ８１６へ移行する。
【０１７２】
ステップＳ８１６において、Ｖｅｃｔｏｒが（Ｘ，Ｙ）である場合（ステップＳ８１６：Ｙｅｓ）は、そのまま一連の処理を終了する。換言すれば、ステップＳ８０４およびステップＳ８０７およびステップＳ８１０およびステップＳ８１３で演算されたＳＡＤが演算範囲（Ｘ，Ｙ）におけるｍｉｎＳＡＤより大きいため、原画像に対してＳＡＤが最小となる動きベクトル（Ｘ，Ｙ）を決定できる。
【０１７３】
また、ステップＳ８１６において、Ｖｅｃｔｏｒが（Ｘ，Ｙ）でない場合（ステップＳ８１６：Ｎｏ）は、ｍｉｎＳＡＤ＝ＳＡＤｃｕｒ，Ｖｅｃｔｏｒ＝（Ｘ，Ｙ）として（ステップＳ８１７）、ステップＳ８０４へ戻って処理を繰り返す。
【０１７４】
つぎに、図９を用いて、この発明の実施の形態２にかかる動きベクトル算出装置３００における追跡型探索法によるＳＡＤの演算について説明する。実施の形態２では、追跡型探索法によるＳＡＤの演算を、動きベクトル算出装置３００の共通回路（Ｒ）３１０および共通回路（Ｌ）３２０で分担しておこなう構成としている。
【０１７５】
図９は、この発明の実施の形態２にかかる動きベクトル算出装置における追跡型探索法によるＳＡＤの演算について示す説明図である。なお、図９の説明では、図７−１〜図７−４で説明した演算範囲（Ｘ，Ｙ）を用いて説明する。
【０１７６】
図９において、参照画像における任意の演算範囲（Ｘ，Ｙ）７１０の周辺である上下左右はそれぞれ、演算範囲（Ｘ＋１，Ｙ）７２１と、演算範囲（Ｘ−１，Ｙ）７２２と、演算範囲（Ｘ，Ｙ＋１）７２３と、演算範囲（Ｘ，Ｙ−１）７２４とである。実施の形態２における動きベクトル算出装置３００では、追跡型探索法おいて、上下の演算範囲（Ｘ，Ｙ＋１）７２３、演算範囲（Ｘ，Ｙ−１）７２４と、左右の演算範囲（Ｘ＋１，Ｙ）７２１、演算回路（Ｘ−１，Ｙ）７２２とにおけるＳＡＤを、それぞれ共通回路（Ｒ）３１０および共通回路（Ｌ）３２０で分担して演算をおこなう構成である。
【０１７７】
換言すれば、同一の演算領域における演算範囲（Ｘ，Ｙ）７１０の上下の演算範囲（Ｘ，Ｙ＋１）７２３、演算範囲（Ｘ，Ｙ−１）７２４を第１の演算領域、演算範囲（Ｘ，Ｙ）７１０の左右の演算範囲（Ｘ＋１，Ｙ）７２１、演算回路（Ｘ−１，Ｙ）７２２を第２の演算領域として、それぞれ共通回路（Ｒ）３１０および共通回路（Ｌ）３２０で分担して演算をおこなう。
【０１７８】
具体的には、共通回路（Ｒ）３１０によって、上下の演算範囲（Ｘ，Ｙ＋１）７２３、演算範囲（Ｘ，Ｙ−１）７２４におけるＳＡＤを演算し、共通回路（Ｌ）３２０によって、左右の演算範囲（Ｘ＋１，Ｙ）７２１、演算回路（Ｘ−１，Ｙ）７２２におけるＳＡＤを演算する構成である。
【０１７９】
実施の形態２における動きベクトル算出装置３００による追跡型探索法の処理については図１０で後述するが、共通回路（Ｒ）３１０および共通回路（Ｌ）３２０で分担して追跡型探索をおこなうため、従来の約半分の時間で演算範囲（Ｘ，Ｙ）の周辺のＳＡＤを演算することが可能となる。したがって、処理時間の短縮を実現することができる。
【０１８０】
（動きベクトル算出装置３００の動きベクトル算出処理手順）
つぎに、図１０を用いて、この発明の実施の形態２にかかる動きベクトル算出装置３００の動きベクトル算出処理手順について説明する。図１０は、この発明の実施の形態２にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。実施の形態２における動きベクトル算出装置３００では、図９で前述した追跡型探索法を用いて動きベクトルを算出している。
【０１８１】
図１０のフローチャートにおいて、まず、Ｐピクチャ制御部３４０は、共通回路（Ｒ）３１０および共通回路（Ｌ）３２０に対して制御信号を出力する（ステップＳ１００１）。制御信号は、たとえば、制御部（Ｒ）３１１および制御部（Ｌ）３２１に対して、原画像から時間的に前方向の参照画像について、ＳＡＤを演算する演算領域の画像データを外部メモリ３５０から読み込み、キャッシュメモリ（Ｒ）３１２およびキャッシュメモリ（Ｌ）３２２に書き込むように要求する信号である。
【０１８２】
そして、ステップＳ１００１において出力された制御信号にしたがって、Ｐピクチャ制御部３４０によりキャッシュメモリ（Ｒ）３１２およびキャッシュメモリ（Ｌ）３２２に一時記憶された演算領域の画像データから、任意の演算範囲（Ｘ，Ｙ）を設定する（ステップＳ１００２）。
【０１８３】
そして、Ｐピクチャ制御部３４０によりステップＳ１００２において設定された演算範囲（Ｘ，Ｙ）と、原画像とのＳＡＤを演算し（ステップＳ１００３）、このＳＡＤをＳＡＤｃｕｒとする。なお、図１０の説明においては、原画像の動きベクトルが０であった場合を、演算範囲（０，０）として説明する。
【０１８４】
つづいて、Ｐピクチャ制御部３４０により図１０のフローチャートにおける動きベクトル算出処理の設定を初期化する（ステップＳ１００４）。設定の初期化は、たとえば、共通回路（Ｒ）３１０および共通回路（Ｌ）３２０それぞれにおいて用いるパラメータについて、それぞれ（Ｒ）および（Ｌ）を付す。
【０１８５】
具体的には、ステップＳ１００３において演算されたＳＡＤｃｕｒにより、ｍｉｎＳＡＤ＝ＳＡＤｃｕｒとし、ｍｉｎＳＡＤ（Ｒ）＝ｍｉｎＳＡＤ、ｍｉｎＳＡＤ（Ｌ）＝ｍｉｎＳＡＤに設定する。また、Ｖｅｃｔｏｒ＝（Ｘ，Ｙ）とし、Ｖｅｃｔｏｒ（Ｒ）＝Ｖｅｃｔｏｒ、Ｖｅｃｔｏｒ（Ｌ）＝Ｖｅｃｔｏｒに設定する。ｍｉｎＳＡＤは、たとえば、追跡型探索法の処理の各段階における最小のＳＡＤであり、また、Ｖｅｃｔｏｒは、追跡型探索法の処理の各段階における動きベクトルである。
【０１８６】
そして、共通回路（Ｒ）３１０により、演算範囲（Ｘ，Ｙ）の１画素上の演算範囲（Ｘ，Ｙ−１）におけるＳＡＤを演算し、ＳＡＤｃｕｒ（Ｒ）とする（ステップＳ１００５）とともに、ＳＡＤｃｕｒ（Ｒ）がｍｉｎＳＡＤ（Ｒ）より小さいか否か（ｍｉｎＳＡＤ（Ｒ）＞ＳＡＤｃｕｒ（Ｒ）？）を判断する（ステップＳ１００６）。
【０１８７】
ステップＳ１００６において、ＳＡＤｃｕｒ（Ｒ）がｍｉｎＳＡＤ（Ｒ）より小さくない場合（ステップＳ１００６：Ｎｏ）は、つづいて、演算範囲（Ｘ，Ｙ）の１画素下の演算範囲（Ｘ，Ｙ＋１）におけるＳＡＤを演算し、ＳＡＤｃｕｒ（Ｒ）とする（ステップＳ１００８）とともに、ＳＡＤｃｕｒ（Ｒ）がｍｉｎＳＡＤ（Ｒ）より小さいか否か（ｍｉｎＳＡＤ（Ｒ）＞ＳＡＤｃｕｒ（Ｒ）？）を判断する（ステップＳ１００９）。
【０１８８】
また、ステップＳ１００６において、ＳＡＤｃｕｒ（Ｒ）がｍｉｎＳＡＤ（Ｒ）より小さい場合（ステップＳ１００６：Ｙｅｓ）は、ｍｉｎＳＡＤ（Ｒ）をＳＡＤｃｕｒ（Ｒ）、Ｖｅｃｔｏｒ（Ｒ）を（Ｘ，Ｙ−１）に設定し（ステップＳ１００７）、ステップＳ１００８へ移行する。
【０１８９】
具体的には、設定されているｍｉｎＳＡＤ（Ｒ）より演算されたＳＡＤｃｕｒ（Ｒ）が小さければ、ｍｉｎＳＡＤ（Ｒ）をより小さい方に更新する。また、より小さいｍｉｎＳＡＤ（Ｒ）に対応するＶｅｃｔｏｒ（Ｒ）を設定する構成である。
【０１９０】
ステップＳ１００９において、ＳＡＤｃｕｒ（Ｒ）がｍｉｎＳＡＤ（Ｒ）より小さくない場合（ステップＳ１００９：Ｎｏ）は、つづいて、ステップＳ１０１７へ移行する。なお、ステップＳ１０１７については、共通回路（Ｌ）３２０の処理の後にまとめて後述する。
【０１９１】
また、ステップＳ１００９において、ＳＡＤｃｕｒ（Ｒ）がｍｉｎＳＡＤ（Ｒ）より小さい場合（ステップＳ１００９：Ｙｅｓ）は、ｍｉｎＳＡＤ（Ｒ）をＳＡＤｃｕｒ（Ｒ）、Ｖｅｃｔｏｒ（Ｒ）を（Ｘ，Ｙ＋１）に設定し（ステップＳ１０１０）、ステップＳ１０１７へ移行する。
【０１９２】
つづいて、共通回路（Ｌ）３２０により、演算範囲（Ｘ，Ｙ）の１画素左の演算範囲（Ｘ−１，Ｙ）におけるＳＡＤを演算し、ＳＡＤｃｕｒ（Ｌ）とする（ステップＳ１０１１）とともに、ＳＡＤｃｕｒ（Ｌ）がｍｉｎＳＡＤ（Ｌ）より小さいか否か（ｍｉｎＳＡＤ（Ｌ）＞ＳＡＤｃｕｒ（Ｌ）？）を判断する（ステップＳ１０１２）。
【０１９３】
ステップＳ１０１２において、ＳＡＤｃｕｒ（Ｌ）がｍｉｎＳＡＤ（Ｌ）より小さくない場合（ステップＳ１０１２：Ｎｏ）は、つづいて、演算範囲（Ｘ，Ｙ）の１画素右の演算範囲（Ｘ＋１，Ｙ）におけるＳＡＤを演算し、ＳＡＤｃｕｒ（Ｌ）とする（ステップＳ１０１４）とともに、ＳＡＤｃｕｒ（Ｌ）がｍｉｎＳＡＤ（Ｌ）より小さいか否か（ｍｉｎＳＡＤ（Ｌ）＞ＳＡＤｃｕｒ（Ｌ）？）を判断する（ステップＳ１０１５）。
【０１９４】
また、ステップＳ１０１２において、ＳＡＤｃｕｒ（Ｌ）がｍｉｎＳＡＤ（Ｌ）より小さい場合（ステップＳ１０１２：Ｙｅｓ）は、ｍｉｎＳＡＤ（Ｌ）をＳＡＤｃｕｒ（Ｌ）、Ｖｅｃｔｏｒ（Ｌ）を（Ｘ−１，Ｙ）に設定し（ステップＳ１０１３）、ステップＳ１０１４へ移行する。
【０１９５】
ステップＳ１０１５において、ＳＡＤｃｕｒ（Ｌ）がｍｉｎＳＡＤ（Ｌ）より小さくない場合（ステップＳ１０１５：Ｎｏ）は、つづいて、ステップＳ１０１７へ移行する。また、ステップＳ１０１５において、ＳＡＤｃｕｒ（Ｌ）がｍｉｎＳＡＤ（Ｌ）より小さい場合（ステップＳ１０１５：Ｙｅｓ）は、ｍｉｎＳＡＤ（Ｌ）をＳＡＤｃｕｒ（Ｌ）、Ｖｅｃｔｏｒ（Ｌ）を（Ｘ＋１，Ｙ）に設定し（ステップＳ１０１６）、ステップＳ１０１７へ移行する。
【０１９６】
そして、ステップＳ１００４〜ステップＳ１０１６までの処理において演算されたｍｉｎＳＡＤ、ｍｉｎＳＡＤ（Ｒ）、ｍｉｎＳＡＤ（Ｌ）によって、ｍｉｎＳＡＤ＝ｍｉｎＳＡＤ（Ｒ）かつｍｉｎＳＡＤ＝ｍｉｎＳＡＤ（Ｌ）であるか否かを判断する（ステップＳ１０１７）。換言すれば、共通回路（Ｒ）３１０および共通回路（Ｌ）３２０により演算されたｍｉｎＳＡＤ（Ｒ）、ｍｉｎＳＡＤ（Ｌ）が、最小となったか否かを判断する。
【０１９７】
ステップＳ１０１７において、ｍｉｎＳＡＤ＝ｍｉｎＳＡＤ（Ｒ）かつｍｉｎＳＡＤ＝ｍｉｎＳＡＤ（Ｌ）であった場合（ステップＳ１０１７：Ｙｅｓ）は、そのまま一連の処理を終了する。そして、処理終了時点おけるＶｅｃｔｏｒが、原画像に対してＳＡＤが最小となる動きベクトルなる。
【０１９８】
また、ステップＳ１０１７において、ｍｉｎＳＡＤ＝ｍｉｎＳＡＤ（Ｒ）かつｍｉｎＳＡＤ＝ｍｉｎＳＡＤ（Ｌ）とならない場合（ステップＳ１０１７：Ｎｏ）は、ｍｉｎＳＡＤ（Ｌ）がｍｉｎＳＡＤ（Ｒ）より小さいか否かを判断する（ステップＳ１０１８）。
【０１９９】
ステップＳ１０１８において、ｍｉｎＳＡＤ（Ｌ）がｍｉｎＳＡＤ（Ｒ）より小さくない場合（ステップＳ１０１８：Ｎｏ）は、共通回路（Ｒ）３１０におけるパラメータを再設定して（ステップＳ１０１９）、ステップＳ１００５およびステップＳ１０１１へ戻って処理を繰り返す。パラメータの再設定は、具体的には、ｍｉｎＳＡＤ＝ｍｉｎＳＡＤ（Ｒ）、Ｖｅｃｔｏｒ＝Ｖｅｃｔｏｒ（Ｒ）、（Ｘ，Ｙ）＝Ｖｅｃｔｏｒ（Ｒ）である。
【０２００】
また、ステップＳ１０１８において、ｍｉｎＳＡＤ（Ｌ）がｍｉｎＳＡＤ（Ｒ）より小さい場合（ステップＳ１０１８：Ｙｅｓ）は、共通回路（Ｌ）３２０におけるパラメータを再設定して（ステップＳ１０２０）、ステップＳ１００５およびステップＳ１０１１へ戻って処理を繰り返す。パラメータの再設定は、具体的には、ｍｉｎＳＡＤ＝ｍｉｎＳＡＤ（Ｌ）、Ｖｅｃｔｏｒ＝Ｖｅｃｔｏｒ（Ｌ）、（Ｘ，Ｙ）＝Ｖｅｃｔｏｒ（Ｌ）である。
【０２０１】
このように、この発明の実施の形態２によれば、演算領域の全領域についてＳＡＤを演算することなく、追跡型探索によって最小のＳＡＤを探索することができる。したがって、動きベクトル算出に関する処理時間を短縮することで、適切なＰピクチャを得ることができる。
【０２０２】
そして、適切なＰピクチャを得ることによって、ＰピクチャおよびＰピクチャを参照するＢピクチャの画質が向上して、動画像全体の高画質化を実現することができる。また、追跡型探索においても、２つの共通回路によって分担してＳＡＤの演算をおこなうため、回路規模の縮小も実現することができる。
【０２０３】
（実施の形態３）
（動きベクトル算出装置の回路構成）
つぎに、この発明の実施の形態３について説明する。前述の実施の形態１および実施の形態２では、２つのキャッシュメモリ（Ｒ）３１２とキャッシュメモリ（Ｌ）３２２とを用いてＳＡＤの演算をおこなっていた。実施の形態３では、ＳＡＤを演算する演算領域の画像データを一時記憶する１つのキャッシュメモリによって、原画像の動きベクトルを算出する場合について説明する。キャッシュメモリを１つとして処理をおこなうことによって、キャッシュメモリの消費電力の削減に繋がる。なお、実施の形態３にかかる動きベクトル算出におけるＳＡＤ演算については図１−１および図１−２、全探索法については図２−１〜図２−６、とそれぞれほぼ同様であるため説明を省略する。
【０２０４】
まず、図１１を用いてこの発明の実施の形態３にかかる動きベクトル算出装置の回路構成について説明する。図１１は、この発明の実施の形態３にかかる動きベクトル算出装置の回路構成を示す説明図である。なお、図１１において、図３とほぼ同様である構成については、図３と同一符号を付し、その説明を省略する。
【０２０５】
図１１において、動きベクトル算出装置１１００は、共通回路（Ｒ）３１０と、共通回路（Ｌ）３２０と、外部メモリインタフェイス３３０と、Ｐピクチャ制御部３４０と、から構成されている。また、共通回路（Ｒ）３１０は、制御部（Ｒ）３１１と、演算部（Ｒ）３１３と、から構成されている。さらに、共通回路（Ｌ）３２０は、制御部（Ｌ）３２１と、キャッシュメモリ１１０１と、演算部（Ｌ）３２３と、から構成されている。
【０２０６】
キャッシュメモリ１１０１は、外部メモリ３５０から入力された参照画像における演算領域の画像データをそれぞれ一時記憶する。一時記憶された画像データは、制御部（Ｌ）３２１の制御にしたがって、演算部（Ｒ）３１３および演算部（Ｌ）３２３へ出力される。
【０２０７】
なお、図１１の説明では、キャッシュメモリ１１０１は、共通回路（Ｌ）３２０に含まれる構成としているが、共通回路（Ｒ）３１０に含まれていてもよい。さらに、図３で前述したキャッシュメモリ（Ｒ）３１２あるいはキャッシュメモリ（Ｌ）３２２によって、その機能を実現する構成でもよい。
【０２０８】
ここで、画像データの出力は、たとえば、参照画像における演算領域の任意の演算範囲（Ｘ，Ｙ）について、奇数列と偶数列の演算範囲（Ｘ，Ｙ）におけるＳＡＤを、演算部（Ｒ）３１３と演算部（Ｌ）３２３のそれぞれで分担して演算するよう、画像データを演算部（Ｒ）３１３と演算部（Ｌ）３２３に出力する。
【０２０９】
ここで、図１２を用いて、この発明の実施の形態３にかかる原画像に対応するＳＡＤを演算する演算領域について説明する。図１２は、この発明の実施の形態３にかかる原画像に対応するＳＡＤを演算する演算領域を示す説明図である。図１２において、演算領域１２００は、１列目の演算範囲群１２０１と、２列目の演算範囲群１２０２と、から構成されている。
【０２１０】
具体的には、演算領域１２００において、水平方向を−Ｈ〜Ｈ、垂直方向を−Ｖ〜Ｖとすると、演算範囲群１２０１は、演算範囲（−Ｈ，−Ｖ）、演算範囲（−Ｈ＋１，−Ｖ）、演算範囲（−Ｈ＋２，−Ｖ）・・・となる。また、演算範囲群１２０２は、演算範囲（−Ｈ，−Ｖ＋１）、演算範囲（−Ｈ＋１，−Ｖ＋１）、演算範囲（−Ｈ＋２，−Ｖ＋１）・・・となる。また、図示はしないが、同様にして、３列目や４列目の演算範囲群もあらわすことができる。
【０２１１】
図１１へ戻って、キャッシュメモリ１１０１は、制御部（Ｌ）３２１の制御にしたがって、演算範囲群１２０１を演算部（Ｌ）３２３へ出力し、演算範囲群１２０２を演算部（Ｒ）３１３へ出力する。そして、演算部（Ｒ）３１３および演算部（Ｌ）３２３は、演算範囲群１２０１，１２０２を参照してそれぞれＳＡＤを演算する。
【０２１２】
換言すれば、演算部（Ｒ）３１３および演算部（Ｌ）３２３は、キャッシュメモリ１１０１から同一の演算領域１２００における１６画素×１７列分の画像データを読み込んで、上部１マクロブロックを第１の演算領域、下部１マクロブロックを第２の演算領域とし、それぞれＳＡＤを分担して演算する。そして、図２−１〜図２−６で前述した全探索法によって演算領域１２００内のＳＡＤを演算して、動きベクトルを算出することができる。
【０２１３】
なお、演算領域１２００の垂直方向が奇数の場合は、最後の演算範囲群である演算範囲（−Ｈ，Ｖ）、演算範囲（−Ｈ＋１，Ｖ）、演算範囲（−Ｈ＋２，Ｖ）・・・演算範囲（Ｈ，Ｖ）を演算回路（Ｌ）３２３で演算し、演算回路（Ｒ）３１３は動作しないようにしてもよい。
【０２１４】
（動きベクトル算出装置１１００の動きベクトル算出処理手順）
つぎに、図１３を用いて、この発明の実施の形態３にかかる動きベクトル算出装置１１００の動きベクトル算出処理手順について説明する。図１３は、この発明の実施の形態３にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。実施の形態３における動きベクトル算出装置１１００では、前述したキャッシュメモリ１１０１によって、演算範囲群を共通回路（Ｒ）３１０および共通回路（Ｌ）３２０で分担して演算する処理について説明する。
【０２１５】
図１３のフローチャートにおいて、まず、制御部（Ｒ）３１１および制御部（Ｌ）３２１により初期設定をおこなう（ステップＳ１３０１）。初期設定は、たとえば、演算領域１２００における任意の演算範囲（Ｘ，Ｙ）と、ｍｉｎＳＡＤに関する設定であり、ｍｉｎＳＡＤ＝９９９９９９、Ｘ＝−Ｈ、Ｙ＝−Ｖに設定する。ｍｉｎＳＡＤは、たとえば、最大のＳＡＤより十分大きな値であればよい。また、共通回路（Ｌ）３２０における全探索処理の場合は、ｍｉｎＳＡＤ＝９９９９９９、初期設定はＸ＝−Ｈ、Ｙ＝−Ｖとなる。
【０２１６】
つづいて、制御部（Ｌ）３２１の制御にしたがって、演算部（Ｒ）３１３および演算部（Ｌ）３２３は、キャッシュメモリ１１０１から１６画素×１７列の画像データを読み込む（ステップＳ１３０２）。画像データの読み込みは、たとえば、１６画素×１７列の画像データのうち、上部のマクロブロックである演算範囲（Ｘ，Ｙ）を演算部（Ｌ）３２３によって読み込み、下部のマクロブロックである演算範囲（Ｘ，Ｙ＋１）を演算部（Ｒ）３１３によって読み込む。
【０２１７】
そして、演算部（Ｒ）３１３により、キャッシュメモリ１１０１から読み込まれた演算範囲（Ｘ，Ｙ＋１）と、原画像とのＳＡＤを演算し（ステップＳ１３０３）、演算されたＳＡＤをＳＡＤｃｕｒ（Ｒ）として制御部（Ｒ）３１１へ出力する。同様に、演算部（Ｌ）３２３により、キャッシュメモリ１１０１から読み込まれた演算範囲（Ｘ，Ｙ）と、原画像とのＳＡＤを演算し（ステップＳ１３０４）、演算されたＳＡＤをＳＡＤｃｕｒ（Ｌ）として制御部（Ｌ）３２１へ出力する。
【０２１８】
つぎに、制御部（Ｌ）３２１により、ステップＳ１３０４において演算されたＳＡＤｃｕｒ（Ｌ）がｍｉｎＳＡＤより小さいか否か（ｍｉｎＳＡＤ＞ＳＡＤｃｕｒ（Ｌ）？）を判断する（ステップＳ１３０５）。
【０２１９】
ステップＳ１３０５において、ＳＡＤｃｕｒ（Ｌ）がｍｉｎＳＡＤより小さくない場合（ステップＳ１３０５：Ｎｏ）は、ステップＳ１３０７へ移行して、制御部（Ｒ）３１１により、ステップＳ１３０３において演算されたＳＡＤｃｕｒ（Ｒ）がｍｉｎＳＡＤより小さいか否か（ｍｉｎＳＡＤ＞ＳＡＤｃｕｒ（Ｒ）？）を判断する（ステップＳ１３０７）。
【０２２０】
また、ステップＳ１３０５において、ＳＡＤｃｕｒ（Ｌ）がｍｉｎＳＡＤより小さい場合（ステップＳ１３０５：Ｙｅｓ）は、ｍｉｎＳＡＤをＳＡＤｃｕｒ（Ｌ）、Ｖｅｃｔｏｒを（Ｘ，Ｙ）に設定し（ステップＳ１３０６）、ステップＳ１３０７へ移行する。
【０２２１】
具体的には、設定されているｍｉｎＳＡＤより演算されたＳＡＤｃｕｒ（Ｌ）が小さければ、ｍｉｎＳＡＤをより小さい方に更新する。また、原画像における動きベクトルが０の場合の演算範囲の位置（０，０）からＳＡＤｃｕｒ（Ｌ）における演算範囲（Ｘ，Ｙ）の動きベクトル（Ｘ，Ｙ）を算出する構成である。
【０２２２】
つづいて、ステップＳ１３０７において、ＳＡＤｃｕｒ（Ｒ）がｍｉｎＳＡＤより小さくない場合（ステップＳ１３０７：Ｎｏ）は、制御部（Ｒ）３１１あるいは制御部（Ｌ）３２１により、Ｘをインクリメント（Ｘ＝Ｘ＋１）する（ステップＳ１３０９）。くわえて、制御部（Ｒ）３１１および制御部（Ｌ）３２１により、により演算領域１２００において、水平方向の探索が終了したか否か（Ｘ＞Ｈ？）を判断する（ステップＳ１３１０）。
【０２２３】
ステップＳ１３０７において、ＳＡＤｃｕｒ（Ｒ）がｍｉｎＳＡＤより小さい場合（ステップＳ１３０７：Ｙｅｓ）は、ｍｉｎＳＡＤをＳＡＤｃｕｒ（Ｒ）、Ｖｅｃｔｏｒを（Ｘ，Ｙ＋１）に設定し（ステップＳ１３０８）、ステップＳ１３０９へ移行する。
【０２２４】
ステップＳ１３１０において、水平方向の探索が終了していない場合（ステップＳ１３１０：Ｎｏ）は、ステップＳ１３０２へ戻って処理を繰り返す。また、ステップＳ１３１０において、水平方向の探索が終了した場合（ステップＳ１３１０：Ｙｅｓ）は、つづいて、制御部（Ｒ）３１１および制御部（Ｌ）３２１により、Ｘを初期化し、Ｙを２列分インクリメント（Ｘ＝０，Ｙ＝Ｙ＋２）する（ステップＳ１３１１）。くわえて、制御部（Ｒ）３１１および制御部（Ｌ）３２１により演算領域１２００において、垂直方向の探索が終了したか否か（Ｙ＞Ｖ？）を判断する（ステップＳ１３１２）。
【０２２５】
そして、ステップＳ１３１２において、垂直方向の探索が終了していない場合（ステップＳ１３１２：Ｎｏ）は、ステップＳ１３０２へ戻って処理を繰り返す。また、ステップＳ１３１２において、垂直方向の探索が終了した場合（ステップＳ１３１２：Ｙｅｓ）は、そのまま一連の処理を終了する。そして、処理終了時点おけるＶｅｃｔｏｒが、原画像に対してＳＡＤが最小となる動きベクトルとなる。
【０２２６】
このように、この発明の実施の形態３によれば、参照画像における演算領域を２つの共通回路によって、分担してＳＡＤを演算する際、キャッシュメモリを１つにして処理をおこなうため、回路で使用される消費電力の低減を図ることができる。
【０２２７】
（実施の形態４）
（動きベクトル算出装置の回路構成）
つぎに、この発明の実施の形態４について説明する。前述の実施の形態１、実施の形態２および実施の形態３では、２つの演算部（Ｒ）３１３と、演算部（Ｌ）３２３とを用いてＳＡＤの演算をおこなっていた。実施の形態４では、実施の形態１で前述した演算領域４００における、右側の演算領域（Ｒ）４１０と、左側の演算領域（Ｌ）４２０について、１つの演算部でＳＡＤを演算する場合について説明する。実施の形態４の構成では、複数の演算領域からＳＡＤを演算するため、従来より広範囲の探索が可能となっている。
【０２２８】
まず、図１４を用いてこの発明の実施の形態４にかかる動きベクトル算出装置の回路構成について説明する。図１４は、この発明の実施の形態４にかかる動きベクトル算出装置の回路構成を示す説明図である。なお、図１４において、図３とほぼ同様である構成については、図３と同一符号を付し、その説明を省略する。
【０２２９】
図１４において、動きベクトル算出装置１４００は、共通回路（Ｒ）３１０と、共通回路（Ｌ）３２０と、外部メモリインタフェイス３３０と、Ｐピクチャ制御部３４０と、から構成されている。また、共通回路（Ｒ）３１０は、制御部（Ｒ）３１１と、キャッシュメモリ（Ｒ）３１２と、から構成されている。さらに、共通回路（Ｌ）３２０は、制御部（Ｌ）３２１と、キャッシュメモリ１３２２と、演算部１４０１と、から構成されている。
【０２３０】
演算部１４０１は、圧縮対象となる原画像の画像データと、キャッシュメモリ（Ｒ）３１２およびキャッシュメモリ（Ｌ）３２２に記憶された演算領域の画像データとを参照して、原画像と演算領域との画像情報であるＳＡＤを演算する。そして、演算部１４０１は、演算したＳＡＤを制御部（Ｌ）３２１へ出力する。
【０２３１】
ここで、図１５を用いて、この発明の実施の形態４にかかる原画像に対応するＳＡＤを演算する演算領域について説明する。図１５は、この発明の実施の形態４にかかる原画像に対応するＳＡＤを演算する演算領域を示す説明図である。図１５において、実施の形態４にかかる演算領域は、図４と同様の構成であるため、同一符号を付す。演算領域４００は、右側の演算領域（Ｒ）４１０と、左側の演算領域（Ｌ）４２０から構成されている。
【０２３２】
そして、それぞれの制御部（Ｒ）３１１および制御部（Ｌ）３２１が演算領域（Ｒ）４１０および演算領域（Ｌ）４２０の画像データの取得要求をおこない、画像データは、演算部１４０１へ入力される。このようにすることで、ＳＡＤの演算領域が広範囲となり、より正確な動きベクトルの算出が可能となる。
【０２３３】
なお、図１４の説明では、演算部１４０１は、共通回路（Ｌ）３２０に含まれる構成としているが、共通回路（Ｒ）３１０に含まれていてもよい。さらに、図３で前述した演算部（Ｒ）３１３あるいは演算部（Ｌ）３２３によって、その機能を実現する構成でもよい。なお、動きベクトル算出処理の手順は、前述した全探索法および追跡型探索法を用いておこなってもよい。
【０２３４】
このように、この発明の実施の形態４によれば、参照画像における演算領域を２つの共通回路によって、分担してＳＡＤを演算する際、演算回路を１つにして処理をおこなうため、回路で使用される消費電力の低減を図ることができる。さらに、演算領域を分割して、ＳＡＤを演算することができるため、広範囲の演算領域からＳＡＤを演算し、適切な動きベクトルを算出し、動画像全体の高画質化を実現することができる。
【０２３５】
（実施の形態５）
（動きベクトル算出装置の回路構成）
つぎに、この発明の実施の形態５について説明する。前述の実施の形態１〜４では、２つの共通回路（Ｒ）３１０および共通回路（Ｌ）３２０とを用いてＳＡＤの演算をおこなっていた。実施の形態５では、共通回路を３つ設けてＳＡＤを演算する場合について説明する。より多くの共通回路を利用することで、探索範囲の拡大や処理能力濃厚状などを図ることができ、高画質の画像を得ることができる。なお、実施の形態５では、３つの共通回路について説明するが、４つ以上の共通回路を有する場合にも同様である。
【０２３６】
また、実施の形態５にかかる動きベクトル算出におけるＳＡＤ演算については図１−１および図１−２、全探索法については図２−１〜図２−６、とそれぞれほぼ同様であるため説明を省略する。
【０２３７】
まず、図１６を用いてこの発明の実施の形態５にかかる動きベクトル算出装置の回路構成について説明する。図１６は、この発明の実施の形態５にかかる動きベクトル算出装置の回路構成を示す説明図である。なお、図１６において、図３とほぼ同様である構成については、図３と同一符号を付し、その説明を省略する。
【０２３８】
図１６において、動きベクトル算出装置１６００は、共通回路（１）１６１０と、共通回路（２）１６２０と、共通回路（３）１６３０と、外部メモリインタフェイス３３０と、Ｐピクチャ制御部３４０と、から構成されている。
【０２３９】
共通回路（１）１６１０と、共通回路（２）１６２０と、共通回路（３）１６３０とは、それぞれ図示はしないが、制御部と、キャッシュメモリと、演算部と、から構成されており、機能については図３で前述した共通回路（Ｒ）３１０および共通回路（Ｌ）３２０とほぼ同様であるため説明を省略する。
【０２４０】
ここで、図１７を用いて、この発明の実施の形態５にかかる原画像に対応するＳＡＤを演算する演算領域について説明する。図１７は、この発明の実施の形態５にかかる原画像に対応するＳＡＤを演算する演算領域を示す説明図である。図１７において、演算領域１７００は、左側の演算領域（１）１７０１と、真ん中の演算領域（２）１７０２と、左側の演算領域（３）１７０３と、から構成されている。
【０２４１】
演算領域１７００は、前述の図４と同様にして、原画像より時間的に前方向の参照画像に含まれる領域であり、たとえば、演算領域（１）１７０１、演算領域（２）１７０２、演算領域（３）１７０３のそれぞれに原画像における動きベクトルが０であった場合の演算範囲を含む構成である。
【０２４２】
図１６に戻って、共通回路（１）１６１０、共通回路（２）１６２０および共通回路（３）１６３０について説明する。共通回路（１）１６１０、共通回路（２）１６２０および共通回路（３）１６３０は、図示しないそれぞれの制御部により、外部メモリインタフェイス３３０に対してそれぞれ演算領域の画像データの取得要求を出力する。
【０２４３】
具体的には、共通回路（１）１６１０は、図１７で前述した演算領域（１）１７０１の画像データの取得要求をおこなう。また、共通回路（２）１６２０は、図１７で前述した演算領域（２）１７０２の画像データの取得要求をおこなう。また、同様に、共通回路（３）１６３０は、図１７で前述した演算領域（３）１７０３の画像データの取得要求をおこなう。
【０２４４】
そして、共通回路（１）１６１０、共通回路（２）１６２０および共通回路（３）１６３０では、図示しない演算部は、図２−１〜図２−６で前述した全探索法によって、演算領域１７００内すべての演算範囲（Ｘ，Ｙ）におけるＳＡＤを演算する。そして、演算されたＳＡＤをＰピクチャ制御部３４０に出力し、Ｐピクチャ制御部３４０は、原画像におけるＰピクチャを生成するための動きベクトルを算出して、図示しない外部装置へ出力する。具体的には、共通回路（１）１６１０、共通回路（２）１６２０および共通回路（３）１６３０における図示しない演算部から入力された演算結果をそれぞれ比較して、参照画像とした前方向のフレーム画像における原画像の移動先を特定することによって、原画像の動きベクトルを算出する。
【０２４５】
このように、演算領域１７００を３分割して、共通回路（１）１６１０、共通回路（２）１６２０および共通回路（３）１６３０で分担してＳＡＤを演算するため、共通回路それぞれの処理能力を増強することなく、ＳＡＤの演算領域を広範囲とすることができ、より正確な動きベクトルの算出が可能となる。とくに、Ｂピクチャに比べて動きベクトルの大きなＰピクチャの動きベクトルの算出には、有効な手法である。
【０２４６】
（動きベクトル算出装置１６００の動きベクトル算出処理手順）
つぎに、図１８を用いて、この発明の実施の形態５にかかる動きベクトル算出装置１６００の動きベクトル算出処理手順について説明する。図１８は、この発明の実施の形態５にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。
【０２４７】
図１８のフローチャートにおいて、まず、Ｐピクチャ制御部３４０は、共通回路（１）１６１０、共通回路（２）１６２０および共通回路（３）１６３０に対して制御信号を出力する（ステップＳ１８０１）。
【０２４８】
制御信号は、演算領域を設定する信号で、たとえば、共通回路（１）１６１０、共通回路（２）１６２０および共通回路（３）１６３０に対して、原画像から時間的に前方向の参照画像について、ＳＡＤを演算する領域を、図１７で前述した演算領域（１）１７０１、演算領域（２）１７０２および演算領域（３）１７０３とする信号である。
【０２４９】
ステップＳ１８０１において入力された制御信号にしたがって、共通回路（１）１６１０により、外部メモリ３５０から演算領域（１）１７０１の画像データを読み込む（ステップＳ１８０２）。画像データの読み込みは、たとえば、図示しない制御部などにより、外部メモリインタフェイス３３０を介しておこなわれる。
【０２５０】
外部メモリインタフェイス３３０は、具体的には、外部メモリ３５０に対して演算領域（１）１７０１の画像データの取得要求をおこなう。そして、取得要求にしたがって外部メモリ３５０から入力された演算領域（１）１７０１の画像データを図示しないキャッシュメモリなどにより一時記憶する。
【０２５１】
そして、ステップＳ１８０２において読み込まれた画像データによって、共通回路（１）１６１０により、演算領域（１）１７０１で全探索処理をおこなう（ステップＳ１８０３）。
【０２５２】
具体的には、キャッシュメモリに一時記憶された画像データを参照して、原画像と演算領域との画像情報であるＳＡＤを演算する。そして、演算されたＳＡＤにより、最小のＳＡＤ（ｍｉｎＳＡＤ（１））と、動きベクトル（Ｖｅｃｔｏｒ（１））を算出する。なお、ステップＳ１８０３における全探索処理詳細については、前述の図６とほぼ同様であり、（Ｌ）および（Ｒ）を（１）、（２）および（３）と読み替えることとして説明を省略する。
【０２５３】
以降、本明細書では、最小のＳＡＤをｍｉｎＳＡＤとして、演算をおこなった共通回路が異なるｍｉｎＳＡＤは、共通回路における（１）、（２）あるいは（３）を付すこととする。さらに、算出する動きベクトルをＶｅｃｔｏｒとして、算出をおこなった共通回路が異なるＶｅｃｔｏｒは、共通回路における（１）、（２）あるいは（３）を付すこととする。
【０２５４】
具体的には、共通回路（１）で演算されたＳＡＤは、ＳＡＤ（１）、ｍｉｎＳＡＤはｍｉｎＳＡＤ（１）とし、共通回路（２）で演算されたＳＡＤは、ＳＡＤ（２）、ｍｉｎＳＡＤはｍｉｎＳＡＤ（２）とし、共通回路（３）で演算されたＳＡＤは、ＳＡＤ（３）、ｍｉｎＳＡＤはｍｉｎＳＡＤ（３）とする。
【０２５５】
また、共通回路（１）で算出されたＶｅｃｔｏｒは、Ｖｅｃｔｏｒ（１）とし、共通回路（２）で演算されたＶｅｃｔｏｒは、Ｖｅｃｔｏｒ（２）とし、共通回路（３）で算出されたＶｅｃｔｏｒは、Ｖｅｃｔｏｒ（３）とする。
【０２５６】
つづいて、共通回路（１）１６１０により、Ｐピクチャ制御部３４０へ、ステップＳ１８０３における全探索処理によって算出されたｍｉｎＳＡＤ（１）と、Ｖｅｃｔｏｒ（１）を出力する（ステップＳ１８０４）。
【０２５７】
また、共通回路（２）１６２０および共通回路（３）１６３０においても、前述のステップＳ１８０２〜ステップＳ１８０４と同様にして、外部メモリ３５０から演算領域（２）１７０２および演算領域（３）１７０３の画像データを読み込み（ステップＳ１８０５，ステップＳ１８０８）、演算領域（２）１７０２および演算領域（３）１７０３で全探索処理をおこなう（ステップＳ１８０６，ステップＳ１８０９）。
【０２５８】
そして、ステップＳ１８０６およびステップＳ１８０９における全探索処理によって算出されたｍｉｎＳＡＤ（２）およびｍｉｎＳＡＤ（３）と、Ｖｅｃｔｏｒ（２）およびＶｅｃｔｏｒ（３）を出力する（ステップＳ１８０７，ステップＳ１８１０）。
【０２５９】
そして、Ｐピクチャ制御部３４０により、ステップＳ１８０４，ステップＳ１８０７およびステップＳ１８１０において出力されたｍｉｎＳＡＤ（１）と、ｍｉｎＳＡＤ（２）と、ｍｉｎＳＡＤ（３）とを比較する。
【０２６０】
具体的には、図１８では、まず、ｍｉｎＳＡＤ（１）がｍｉｎＳＡＤ（２）以下であり、かつ、ｍｉｎＳＡＤ（１）がｍｉｎＳＡＤ（３）以下であるか否かを判断する（ステップＳ１８１１）。換言すれば、共通回路（１）１６１０で演算されたｍｉｎＳＡＤ（１）が最も小さいか否かを判断する。
【０２６１】
ステップＳ１８１１において、ｍｉｎＳＡＤ（１）がｍｉｎＳＡＤ（２）以下であり、かつ、ｍｉｎＳＡＤ（１）がｍｉｎＳＡＤ（３）以下である場合（ステップＳ１８１１：Ｙｅｓ）は、ｍｉｎＳＡＤをｍｉｎＳＡＤ（１）とするとともに、ＶｅｃｔｏｒをＶｅｃｔｏｒ（１）として（ステップＳ１８１２）、一連の処理を終了する。
【０２６２】
換言すれば、ｍｉｎＳＡＤ（１）と、ｍｉｎＳＡＤ（２）と、ｍｉｎＳＡＤ（３）とを比較した結果、ｍｉｎＳＡＤ（１）が最も小さい場合に、最小のＳＡＤをｍｉｎＳＡＤ（１）として、ｍｉｎＳＡＤ（１）に対応するベクトルを動きベクトルとする。
【０２６３】
また、ステップＳ１８１１において、ｍｉｎＳＡＤ（１）がｍｉｎＳＡＤ（２）以下でない、または、ｍｉｎＳＡＤ（１）がｍｉｎＳＡＤ（３）以下でない場合（ステップＳ１８１１：Ｎｏ）は、つづいて、ｍｉｎＳＡＤ（２）がｍｉｎＳＡＤ（１）以下であり、かつ、ｍｉｎＳＡＤ（２）がｍｉｎＳＡＤ（３）以下であるか否かを判断する（ステップＳ１８１３）。
【０２６４】
具体的には、ｍｉｎＳＡＤ（１）と、ｍｉｎＳＡＤ（２）と、ｍｉｎＳＡＤ（３）のうち、ステップＳ１８１１において、ｍｉｎＳＡＤ（１）が最小でないことから、共通回路（２）１６１０で演算されたｍｉｎＳＡＤ（２）が最も小さいか否かを判断することとする。
【０２６５】
ステップＳ１８１３において、ｍｉｎＳＡＤ（２）がｍｉｎＳＡＤ（１）以下であり、かつ、ｍｉｎＳＡＤ（２）がｍｉｎＳＡＤ（３）以下である場合（ステップＳ１８１３：Ｙｅｓ）は、ｍｉｎＳＡＤをｍｉｎＳＡＤ（２）とするとともに、ＶｅｃｔｏｒをＶｅｃｔｏｒ（２）として（ステップＳ１８１４）、一連の処理を終了する。
【０２６６】
換言すれば、ｍｉｎＳＡＤ（１）と、ｍｉｎＳＡＤ（２）と、ｍｉｎＳＡＤ（３）とを比較した結果、ｍｉｎＳＡＤ（２）が最も小さい場合に、最小のＳＡＤをｍｉｎＳＡＤ（２）として、ｍｉｎＳＡＤ（２）に対応するベクトルを動きベクトルとする。
【０２６７】
また、ステップＳ１８１３において、ｍｉｎＳＡＤ（２）がｍｉｎＳＡＤ（１）以下でない、または、ｍｉｎＳＡＤ（２）がｍｉｎＳＡＤ（３）以下でない場合（ステップＳ１８１３：Ｎｏ）は、ｍｉｎＳＡＤをｍｉｎＳＡＤ（３）とするとともに、ＶｅｃｔｏｒをＶｅｃｔｏｒ（３）として（ステップＳ１８１５）、一連の処理を終了する。
【０２６８】
換言すれば、ｍｉｎＳＡＤ（１）と、ｍｉｎＳＡＤ（２）と、ｍｉｎＳＡＤ（３）とを比較した結果、ｍｉｎＳＡＤ（３）が最も小さい場合に、最小のＳＡＤをｍｉｎＳＡＤ（３）として、ｍｉｎＳＡＤ（３）に対応するベクトルを動きベクトルとする。
【０２６９】
以上図１８における動きベクトル算出処理によって、演算領域（１）１７０１と演算領域（２）１７０２と演算領域（３）１７０３の中から、最も小さいＳＡＤに基づく動きベクトルを算出することができる。換言すれば、原画像との変化量が最も少ないＳＡＤにより、原画像の移動を予測して動きベクトルを算出することができる。
【０２７０】
このように、この発明の実施の形態５によれば、２つ以上の共通回路を備える場合、参照画像における演算領域を、複数の共通回路によって分担してＳＡＤを演算することができる。したがって、演算回路を増設することなく、回路の効率的な利用を図るとともに、広範囲の演算領域からＳＡＤを演算し、適切な動きベクトルを算出することができ、動画像全体の高画質化を実現することができる。
【０２７１】
以上説明したように、この発明によれば、動きベクトルを算出する回路を増設することなく、簡単な回路構成によって動画像の画質向上を図ることができる。
【産業上の利用可能性】
【０２７２】
以上のように、本発明にかかる動きベクトル算出装置は、動画像の圧縮に有用であり、とくに複数の参照画像を参照して動きベクトルを算出する場合に適している。
【図面の簡単な説明】
【０２７３】
【図１−１】この発明の実施の形態１にかかる動きベクトル算出における原画像を示す説明図である。
【図１−２】この発明の実施の形態１にかかる動きベクトル算出におけるＳＡＤ演算範囲を示す説明図である。
【図２−１】この発明の実施の形態１にかかる全探索法について示す説明図（その１）である。
【図２−２】この発明の実施の形態１にかかる全探索法について示す説明図（その２）である。
【図２−３】この発明の実施の形態１にかかる全探索法について示す説明図（その３）である。
【図２−４】この発明の実施の形態１にかかる全探索法について示す説明図（その４）である。
【図２−５】この発明の実施の形態１にかかる全探索法について示す説明図（その５）である。
【図２−６】この発明の実施の形態１にかかる全探索法について示す説明図（その６）である。
【図３】この発明の実施の形態１にかかる動きベクトル算出装置の回路構成を示す説明図である。
【図４】この発明の実施の形態１にかかる原画像に対応するＳＡＤを演算する演算領域を示す説明図である。
【図５】この発明の実施の形態１にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。
【図６】この発明の実施の形態１にかかる動きベクトル算出装置における全探索処理（図５のステップＳ５０３およびＳ５０６）手順を示すフローチャートである。
【図７−１】この発明の実施の形態２にかかる追跡型探索法について示す説明図（その１）である。
【図７−２】この発明の実施の形態２にかかる追跡型探索法について示す説明図（その２）である。
【図７−３】この発明の実施の形態２にかかる追跡型探索法について示す説明図（その３）である。
【図７−４】この発明の実施の形態２にかかる追跡型探索法について示す説明図（その３）である。
【図８】図７−１〜図７−４における追跡型探索法の処理手順について示すフローチャートである。
【図９】この発明の実施の形態２にかかる動きベクトル算出装置における追跡型探索法によるＳＡＤの演算について示す説明図である。
【図１０】この発明の実施の形態２にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。
【図１１】この発明の実施の形態３にかかる動きベクトル算出装置の回路構成を示す説明図である。
【図１２】この発明の実施の形態３にかかる原画像に対応するＳＡＤを演算する演算領域を示す説明図である。
【図１３】この発明の実施の形態３にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。
【図１４】この発明の実施の形態４にかかる動きベクトル算出装置の回路構成を示す説明図である。
【図１５】この発明の実施の形態４にかかる原画像に対応するＳＡＤを演算する演算領域を示す説明図である。
【図１６】この発明の実施の形態５にかかる動きベクトル算出装置の回路構成を示す説明図である。
【図１７】この発明の実施の形態５にかかる原画像に対応するＳＡＤを演算する演算領域を示す説明図である。
【図１８】この発明の実施の形態５にかかる動きベクトル算出装置の動きベクトル算出処理手順を示すフローチャートである。
【図１９】Ｉピクチャ、ＢピクチャおよびＰピクチャの概要を示す説明図である。
【図２０】従来におけるＰピクチャに関する動きベクトル算出装置の回路構成を示す説明図である。
【図２１】従来におけるＢピクチャに関する動きベクトル算出装置の回路構成を示す説明図である。
【図２２】従来におけるＰピクチャおよびＢピクチャに関する動きベクトル算出装置の回路構成を示す説明図である。
【符号の説明】
【０２７４】
１１０  原画像
１１１，１２１  画素
１２０  ＳＡＤ演算範囲
２００  演算領域
２１０，２２０，２３０，２４０，２５０，２６０  演算範囲
３００  動きベクトル算出装置
３０１  Ｐ／Ｂピクチャ切替信号
３１０  共通回路（Ｒ）
３１１  制御部（Ｒ）
３１２  キャッシュメモリ（Ｒ）
３１３  演算部（Ｒ）
３２０  共通回路（Ｌ）
３２１  制御部（Ｌ）
３２２  キャッシュメモリ（Ｌ）
３２３  演算部（Ｌ）
３３０  外部メモリインタフェイス
３４０  Ｐピクチャ制御部
３５０  外部メモリ
４００  演算領域
４１０  演算領域（Ｒ）
４２０  演算領域（Ｌ）
【図１−１】
2007221662.tif 000004
【図１−２】
2007221662.tif 000005
【図２−１】
2007221662.tif 000006
【図２−２】
2007221662.tif 000007
【図２−３】
2007221662.tif 000008
【図２−４】
2007221662.tif 000009
【図２−５】
2007221662.tif 000010
【図２−６】
2007221662.tif 000011
【図３】
2007221662.tif 000012
【図４】
2007221662.tif 000013
【図５】
2007221662.tif 000014
【図６】
2007221662.tif 000015
【図７−１】
2007221662.tif 000016
【図７−２】
2007221662.tif 000017
【図７−３】
2007221662.tif 000018
【図７−４】
2007221662.tif 000019
【図８】
2007221662.tif 000020
【図９】
2007221662.tif 000021
【図１０】
2007221662.tif 000022
【図１１】
2007221662.tif 000023
【図１２】
2007221662.tif 000024
【図１３】
2007221662.tif 000025
【図１４】
2007221662.tif 000026
【図１５】
2007221662.tif 000027
【図１６】
2007221662.tif 000028
【図１７】
2007221662.tif 000029
【図１８】
2007221662.tif 000030
【図１９】
2007221662.tif 000031
【図２０】
2007221662.tif 000032
【図２１】
2007221662.tif 000033
【図２２】
2007221662.tif 000034