(57)【要約】【課題】基準画像と参照画像との間の複数の点で位置ずれを演算するためにハード化した場合に回路規模を削減できしかも高速処理が可能な画像処理装置を提供する。【解決手段】この画像処理装置１０は、基準画像と参照画像との間の複数の点で位置ずれを演算するものであって、基準画像及び参照画像についてそれぞれ解像度の異なる複数の画像Ａ〜Ｄからなるピラミッド画像を生成する画像生成手段と、ピラミッド画像の内の低解像度の画像から位置ずれ量を演算し、その演算結果を用いてその解像度よりも高い解像度の画像から位置ずれ量を演算するようにしてより高い解像度の画像まで順に位置ずれ量を演算する演算手段と、を備え、演算手段は複数の演算ユニット１，２，３を有し、各演算ユニットは位置ずれ量の演算を並列的に行う。【選択図】図７
2009146190.tif 000002
【特許請求の範囲】
【請求項１】
基準画像と参照画像との間の複数の点で位置ずれを演算する画像処理装置であって、
前記基準画像及び前記参照画像についてそれぞれ解像度の異なる複数の画像からなるピラミッド画像を生成する画像生成手段と、
前記ピラミッド画像の内の低解像度の画像から位置ずれ量を演算し、その演算結果を用いてその解像度よりも高い解像度の画像から位置ずれ量を演算するようにしてより高い解像度の画像まで順に位置ずれ量を演算する演算手段と、を備え、
前記演算手段は複数の演算ユニットを有し、前記各演算ユニットは前記位置ずれ量の演算を並列的に行うことを特徴とする画像処理装置。
【請求項２】
前記複数の演算ユニットは最も解像度の高い画像または最も演算量の多い解像度の画像についての位置ずれの演算量に基づいて割り当てられて前記位置ずれ量の演算を行う請求項１に記載の画像処理装置。
【請求項３】
前記最も解像度の高い画像または最も演算量の多い解像度の画像についての位置ずれの演算をＺ個（Ｚ：正の整数）の演算ユニットに割り当てる場合、他の解像度の画像についての位置ずれの演算を前記Ｚ個の演算ユニットの各１つが担う位置ずれの演算量に基づいて他の演算ユニットに割り当てる請求項２に記載の画像処理装置。
【請求項４】
前記複数の演算ユニットの少なくとも１つが解像度の異なる複数の画像について位置ずれの演算を行うとき、前記位置ずれの各演算量の１／Ｒ（Ｒ：正の整数）ずつ各演算を行い、前記各演算をＲ回繰り返す請求項１，２または３に記載の画像処理装置。
【請求項５】
基準画像と参照画像との間の複数の点で位置ずれを演算する画像処理装置であって、
前記基準画像及び前記参照画像についてそれぞれ解像度の異なる複数の画像からなるピラミッド画像を生成する画像生成手段と、
前記ピラミッド画像の内の低解像度の画像から位置ずれ量を演算し、その演算結果を用いてその解像度よりも高い解像度の画像から位置ずれ量を演算するようにしてより高い解像度の画像まで順に位置ずれ量を演算する演算手段と、を備え、
前記演算手段は１つの演算ユニットを有し、前記演算ユニットは前記位置ずれの各演算量の１／Ｒ（Ｒ：正の整数）ずつ各演算を行い、前記各演算をＲ回繰り返すことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、基準画像と参照画像との間の複数の点で位置ずれを演算する画像処理装置に関する。
【背景技術】
【０００２】
特許文献１は、計算機に負荷をかけないよう比較的単純な処理によって精度の高い動きデータを算出することを課題とし、以下のような画像処理装置を開示する。基準画像と比較画像の多重解像度画像を作成し、解像度の低い画像に対しては、まず全範囲マッチングを行って、画像間の２次元のずれを検出し、解像度の比較的高い画像に対しては、ブロックマッチングによって、ブロックごとのずれを検出する。また、最低解像度から順に高解像度に対して、前段階で求めた動きデータを初期値として用いて、その動きデータをより高解像度の画像によって補正することによって、精度の高いものにしていく（要約、図１参照）。
【０００３】
特許文献２は、画像処理に必要な演算量を削減し、十分な追跡精度を保ちながら合成画像を作成することを課題とし、以下のような画像合成装置を開示する。元画像の所定縮小サイズを最上位のレイヤとして、合成対象となる各画像を段階的に縮小してピラミッド階層を構成する。そして、最下位のレイヤから順番に最上位のレイヤに向けて特徴点を追跡する。その際、特徴点の動きを示すベクトルに所定の係数を乗じてその特徴点の動きを収束させる。これにより、特徴点を追跡する際に元画像サイズでの画像処理を不要として演算量の削減化を図れる。また、特徴点の動きベクトルに所定の係数を乗じることで収束性を高め、十分な追跡精度を保ちながら合成画像を作成することができる、と記載されている（要約、図１〜図３参照）。
【０００４】
特許文献３は、迅速に画像のマスク領域の補完をする方法及び装置並びにプログラムを提供することを課題とし、以下のような解決手段を開示する。入力画像とマスク画像に繰り返しダウンサンプリングを施して複数レベルのガウシアンピラミッドを構築する。次に、最も粗い第ｎレベルの画像において全領域で探索を行い、ターゲットフラグメントと類似する最適フラグメントの位置を得る。１段下のレベルにおいて、そのレベルのターゲットフラグメントと類似度が最小（最も類似している）のフラグメントを探索する。この探索においては、１段階上の最適フラグメントの位置の近傍に探索範囲を限定している。この探索範囲の限定によって探索効率を向上させて、計算速度を向上させている。以下、同様に各レベルにおける探索を行い、原入力画像のレベルにおける類似度が最も小さい（最も似ている）フラグメントを求めることができる。この結果、処理速度の向上した画像補完方法・装置が得られる（要約、図１参照）。
【特許文献１】特開２００７−２２６６４３号公報
【特許文献２】特開２００７−４９５４５号公報
【特許文献３】特開２００６−３３２７８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１は、ピラミッド画像を使用した追跡技術に関し、カメラ等の撮像装置の手ぶれ補正に適用され、ソフト処理により行うものである。特許文献２は、ピラミッド画像を使用した追跡技術及びデジタルカメラの手ぶれ補正技術に関し、ソフト処理により行い、演算ユニットを１つしかもたない。特許文献３は、ピラミッド画像（入力画像とマスク画像）を用いるもので、ソフト処理により行う。
【０００６】
以上のように、各特許文献が開示する従来技術はソフト処理による順序処理であり、ハード化（デジタル回路化）した場合の効果的な構成にはなっておらず、回路規模の増大化及び高速処理に対応するものではない。
【０００７】
本発明は、上述のような従来技術の問題に鑑み、基準画像と参照画像との間の複数の点で位置ずれを演算するためにハード化した場合に回路規模を削減でき、高速処理が可能な画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本実施形態による画像処理装置は、基準画像と参照画像との間の複数の点で位置ずれを演算する画像処理装置であって、前記基準画像及び前記参照画像についてそれぞれ解像度の異なる複数の画像からなるピラミッド画像を生成する画像生成手段と、前記ピラミッド画像の内の低解像度の画像から位置ずれ量を演算し、その演算結果を用いてその解像度よりも高い解像度の画像から位置ずれ量を演算するようにしてより高い解像度の画像まで順に位置ずれ量を演算する演算手段と、を備え、前記演算手段は複数の演算ユニットを有し、前記各演算ユニットは前記位置ずれ量の演算を並列的に行うことを特徴とする。
【０００９】
この画像処理装置によれば、演算手段の複数の演算ユニットにより、ピラミッド画像の内の低解像度の画像から演算した位置ずれ量の演算結果を用いてその解像度よりも高い解像度の画像から位置ずれ量を演算するようにしてより高い解像度の画像まで順に位置ずれ量を演算する場合に、各演算ユニットは位置ずれ量の演算を並列的に行うので、各演算ユニットで効率的に演算を行わせることができ、このため、画像処理装置としてハード化した場合に回路規模を削減できしかも高速処理が可能となる。
【００１０】
上記画像処理装置において前記複数の演算ユニットは、最も解像度の高い画像または最も演算量の多い解像度の画像についての位置ずれの演算量に基づいて割り当てられることが好ましい。
【００１１】
この場合、前記最も解像度の高い画像または最も演算量の多い解像度の画像についての位置ずれの演算をＺ個（Ｚ：正の整数）の演算ユニットに割り当てる場合、他の解像度の画像についての位置ずれの演算を前記Ｚ個の演算ユニットの各１つが担う位置ずれの演算量に基づいて他の演算ユニットに割り当てることが好ましい。
【００１２】
なお、Ｚ個の演算ユニットのそれぞれが等しい演算量を担う場合、その演算量は、最も解像度の高い画像または最も演算量の多い解像度の画像についての位置ずれの演算量をＷとすると、Ｗ／Ｚである。また、位置ずれの演算量は、位置ずれの演算の対象となる画素の数によって決まる。
【００１３】
また、前記複数の演算ユニットの少なくとも１つが解像度の異なる複数の画像について位置ずれの演算を行うとき、前記位置ずれの各演算量の１／Ｒ（Ｒ：正の整数）ずつ各演算を行い、前記各演算をＲ回繰り返すことが好ましい。これにより、１つの演算ユニットにおいて解像度の異なる複数の画像についての位置ずれの各演算を高速処理できる。
【００１４】
本実施形態による別の画像処理装置は、基準画像と参照画像との間の複数の点で位置ずれを演算する画像処理装置であって、前記基準画像及び前記参照画像についてそれぞれ解像度の異なる複数の画像からなるピラミッド画像を生成する画像生成手段と、前記ピラミッド画像の内の低解像度の画像から位置ずれ量を演算し、その演算結果を用いてその解像度よりも高い解像度の画像から位置ずれ量を演算するようにしてより高い解像度の画像まで順に位置ずれ量を演算する演算手段と、を備え、前記演算手段は１つの演算ユニットを有し、前記演算ユニットは前記位置ずれの各演算量の１／Ｒ（Ｒ：正の整数）ずつ各演算を行い、前記各演算をＲ回繰り返すことを特徴とする。
【００１５】
この画像処理装置によれば、演算手段の演算ユニットにより、ピラミッド画像の内の低解像度の画像から演算した位置ずれ量の演算結果を用いてその解像度よりも高い解像度の画像から位置ずれ量を演算するようにしてより高い解像度の画像まで順に位置ずれ量を演算する場合に、演算ユニットが位置ずれの各演算量の１／Ｒ（Ｒ：正の整数）ずつ各演算を行い、各演算をＲ回繰り返すことで、効率的にすべての解像度の異なる複数の画像についての位置ずれの演算を効率的に行うことができ、画像処理装置におけて高速処理が可能となる。
【発明の効果】
【００１６】
本発明の画像処理装置によれば、基準画像と参照画像との間の複数の点で位置ずれを演算するためにハード化した場合に回路規模を削減でき、高速処理が可能となる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明を実施するための最良の形態について図面を用いて説明する。図１は本実施の形態によるピラミッド画像のパターンマッチングの原理を説明するための図である。図２は図１の原理を説明するために基準画像（ａ）及び参照画像（ｂ）における探索順序を模式的に示す図である。
【００１８】
図１のように、ピラミッド画像のパターンマッチングは、基準画像Ｓについて解像度の異なる複数の画像Ｓ１，Ｓ２，Ｓ３（解像度：Ｓ１＜Ｓ２＜Ｓ３）からなるピラミッド画像を生成し、参照画像Ｔについて基準画像Ｓの各解像度に対応して解像度の異なる複数の画像Ｔ１，Ｔ２，Ｔ３（解像度：Ｔ１＜Ｔ２＜Ｔ３）からなるピラミッド画像を生成し、基準画像及び参照画像の低解像度画像でマッチングをとり、その結果を用いて次のより高解像度画像でマッチングをとるようにして、低解像度画像で大まかに探索し、高解像度画像で細かく探索するようにしたものである。
【００１９】
すなわち、図２のように、基準画像Ｓの低解像度の画像Ｓ１の探索領域（ウインドウ）Ｗ１と参照画像Ｔの低解像度の画像Ｔ１の探索領域（ウインドウ）Ｗ１’との間で位置ずれをＰＯＣ（Phase Only Correlation／位相限定相関）法等の手法により演算し、次に、その参照画像の画像Ｔ１の結果を用いて、次の参照画像のより解像度の高い画像Ｔ２にウインドウＷ２’を設定し、基準画像のより高い解像度の画像Ｓ２のウインドウＷ２との間で位置ずれを演算し、次に、その参照画像の画像Ｔ２の結果を用いて、次の参照画像のより高い解像度の画像Ｔ３のウインドウＷ３’を設定し、基準画像のより高い解像度の画像Ｓ３のウインドウＷ３との間で位置ずれを演算する。
【００２０】
上述のようにして演算することで、より解像度の高い各参照画像Ｔ２，Ｔ３にウインドウＷ２’，Ｗ３’を適切な位置にかつ適切なサイズで設定できるので、余分な演算が不要となり、処理速度が向上する。
【００２１】
次に、本実施の形態による画像処理装置について図３〜図６を参照して説明する。図３は本実施の形態による画像処理装置の概略的構成を示すブロック図である。
【００２２】
図３に示すように、画像処理装置１０は、画像入力部１１と、ピラミッド画像生成部１２と、画像保持部１３と、複数の演算ユニット１，２，３を有する位置ずれ演算部１４と、位置ずれ量一時保持部１５と、出力部１６と、各部１１〜１６を制御する制御部１７と、を備える。制御部１７は集積回路から構成されるが、ＣＰＵ（中央演算処理回路）から構成してもよい。
【００２３】
図３の画像処理装置１０は、画像入力部１１に入力した画像に基づいてピラミッド画像生成部１２で基準画像と参照画像に対して同一の解像度変換手法でピラミッド画像を生成し、位置ずれ演算部１４で基準画像と参照画像との間の画像位置ずれ量（位置ずれベクトル）を算出する。
【００２４】
図３の画像入力部１１に例えば図３の破線で示すようにＣＣＤやＣＭＯＳ等のイメージセンサからなる一対の撮像素子８，９から基準画像と参照画像が入力するように構成することで、画像処理装置１０は位置ずれ演算部１４での位置ずれ量算出結果に基づいて得られた視差により距離計測を行うことができる。
【００２５】
図３のピラミッド画像生成部１２は、例えば、解像度ａ（画像サイズａ）の画像を、画像縦サイズ１／ｂ倍・画像横サイズ１／ｂ倍の解像度変換で、解像度ａ÷（ｂ×ｂ）の画像を生成する。ここで、ｂは１以上の正の数である。
【００２６】
次に、解像度ａ÷（ｂ×ｂ）の画像を、画像縦サイズ１／ｃ倍・画像横サイズ１／ｃ倍の解像度変換で、解像度ａ÷（ｂ×ｂ×ｃ×ｃ）の画像を生成する。ここで、ｃは１以上の正の数である。これをピラミッド段数分だけ行い、ある解像度ｄ（最低解像度）まで画像を生成する。なお、上述のピラミッド画像生成部１２における解像度変換手法は、平均化や間引きやその他の手段を用いることができる。
【００２７】
位置ずれ演算部１４は、解像度Ａの基準画像において、ａ×α個の画素における、解像度ａの参照画像との位置ずれベクトル（位置ずれ量）を算出する。さらに、解像度ａ÷（ｂ×ｂ）の基準画像において、ａ÷（ｂ×ｂ）×α個の画素における、解像度ａ÷（ｂ×ｂ）の参照画像との位置ずれベクトル（位置ずれ量）を算出する。
【００２８】
位置ずれ演算部１４の各演算ユニット１，２，３は、それぞれ、例えば、フィルタリング→合成・相関演算→ピーク関数導出→位置ずれ量算出のような順で演算を実行するようになっている。
【００２９】
パターンマッチングは、位置ずれ演算部１４の各演算ユニット１，２，３で、上述のフィルタリング→合成・相関演算→ピーク関数導出→位置ずれ量算出のような複数の処理ステップをパイプライン処理させることで行われる。この場合、図１，図２のように、ある解像度の処理におけるパターンマッチングは、その解像度より一段階低い解像度のパターンマッチング結果（位置ずれ量）に基づいて探索範囲（ウインドウ）が設定される。
【００３０】
上述のように、図３の画像処理装置１０において画像入力部１１に入力した画像に基づいてピラミッド画像生成部１２で解像度の異なる複数の画像を生成し、位置ずれ演算部１４で各解像度の複数の画像を用いて図１，図２のように位置ずれ量を算出することができるが、この場合、回路規模削減及び高速処理のために複数の演算ユニットを効率的に割り当てることについて図４，図５を参照して説明する。
【００３１】
図４は図３の画像処理装置においてピラミッド画像で解像度の異なる複数の画像がある場合に演算ユニットを割り当てるための第１例を説明するための図である。図５は同じく図３において演算ユニットを割り当てるための第２例を説明するための図（ａ）、（ｂ）、（ｃ）である。
【００３２】
図４のように、（Ｆ−ｘ）番目の最低解像度から（Ｆ＋ｙ）番目までの最高解像度の複数の画像がある場合、全ての解像度で最も位置ずれ量算出個数の多い（Ｆ＋ｙ）番目の最高解像度の位置ずれ量算出個数がＷ個とすると、Ｗ個÷Ｚ＝Ｅ個（Ｚ：正の整数）と、（Ｆ−ｘ）番目の最低解像度から数えてＦ番目の解像度までの位置ずれ量算出個数の総和Ｇ個とを比較して、次式（１）の条件を満たす場合、最低解像度からＦ番目までの位置ずれ量算出の演算を１つの演算ユニット１または２または３で実行させる。
Ｅ≧Ｇ  ・・・（１）
【００３３】
また、図５（ａ）のように、（Ｆ−ｘ）番目の最低解像度から（Ｆ＋ｙ）番目までの最高解像度の複数の画像がある場合、Ｆ番目より１つ高解像度の（Ｆ＋１）番目の解像度の位置ずれ量算出個数がＩ個で、（Ｆ＋２）番目の解像度の位置ずれ量算出個数がＪ個で、次式（２）の条件を満たす場合、（Ｆ＋１）番目の解像度の位置ずれ量算出の演算を１つの演算ユニット１または２または３で実行させる。
Ｉ≦Ｅ≦（Ｉ＋Ｊ）  ・・・（２）
【００３４】
図５（ｂ）のように、上記条件（２）に該当せず、図５（ａ）の（Ｆ＋３）番目の解像度の位置ずれ量算出個数がＫ個で、次式（３）の条件を満たす場合、（Ｆ＋１）番目と（Ｆ＋２）番目の各解像度の位置ずれ量算出の演算を１つの演算ユニット１または２または３で実行させる。
（Ｉ＋Ｊ）≦Ｅ≦（Ｉ＋Ｊ＋Ｋ）  ・・・（３）
【００３５】
また、それ以上の解像度の演算についても同様に演算ユニットを配置する。ただし、図５（ｃ）のように、図５（ａ）の（Ｆ＋ｎ）番目のある解像度の位置ずれ量算出個数Ｌ個で、次式（４）の条件を満たす場合、（Ｆ＋ｎ）番目の解像度の位置ずれ量算出の演算をＭ個の演算ユニットで実行させる。
Ｅ≦Ｌ≦Ｍ×Ｅ  ・・・（４）
（Ｍ：正の整数）
【００３６】
次に、解像度の異なる複数の画像についての演算を１つの演算ユニットで行う場合に、高速処理させるための処理手順について図６のフローチャートを参照して説明する。図６は図３において解像度の異なる複数の画像についての各演算を１つの演算ユニットで実行させる場合に効率的な方法を説明するためのフローチャートである。
【００３７】
図６のように、Ｆ番目と（Ｆ＋１）番目の各解像度の演算を同一の演算ユニット１または２または３で演算するとき、Ｆ番目の位置ずれ算出量がＰ個で、（Ｆ＋１）番目の位置ずれ算出量がＱ個とする（Ｓ０１）。
【００３８】
Ｆ番目の解像度の位置ずれ算出をＰ÷Ｒ個に対して行う（Ｓ０２）。次に、（Ｆ＋１）番目の解像度の位置ずれ算出をＱ÷Ｒ個に対して行う（Ｓ０３）。ここで、Ｒは正の整数である。そして、次にＦ番目の解像度の位置ずれ算出をＰ÷Ｒ個に対して行い、次に（Ｆ＋１）番目の解像度の位置ずれ算出をＱ÷Ｒ個に対して行うようにして、ステップＳ０２，Ｓ０３を各解像度ですべての個数について各位置ずれ算出を終了するまで繰り返し（Ｓ０４）、Ｆ番目のＰ個と（Ｆ＋１）番目のＱ個の位置ずれ量の結果を得る。
【００３９】
次に、図３の画像処理装置の具体例について図７を参照して説明する。図７は図３の画像処理装置の具体例の要部を示す要部ブロック図である。
【００４０】
図３，図７のように、ピラミッド画像生成部１２は、複数の解像度変換部１２ａ、１２ｂ、１２ｃを有し、各解像度変換部１２ａ〜１２ｃは基準画像・参照画像のラインバッファのためのＲＡＭ等からなるメモリを含む。
【００４１】
ピラミッド画像生成部１２の解像度変換部１２ａは、画像入力部１１から画像Ｄの画像データが入力すると、そのメモリに一時的に保存し随時出力し、画像Ｄをダウンサンプリングし解像度の低い画像Ｃを生成する。
【００４２】
解像度変換部１２ｂは、解像度変換部１２ａから画像Ｃの画像データが入力すると、そのメモリに一時的に保存し随時出力し、画像Ｃをダウンサンプリングし、解像度の低い画像Ｂを生成する。
【００４３】
解像度変換部１２ｃは、解像度変換部１２ｂから画像Ｂの画像データが入力すると、そのメモリに一時的に保存し随時出力し、画像Ｂをダウンサンプリングし、解像度の低い画像Ａを生成する。
【００４４】
画像保持部１３は、上述の各画像Ｄ，Ｃ，Ｂ，Ａをそれぞれ保持し基準画像・参照画像のフレームバッファのためのＲＡＭ等からなる複数のメモリ１３ａ，１３ｂ，１３ｃ，１３ｄを備える。
【００４５】
位置ずれ演算部１４は、演算ユニット１と、演算ユニット２と、演算ユニット３と、を有するが、演算ユニット１は、例えば、後述の図８のようにメモリ１３ｂ，１３ｃ，１３ｄから画像Ａ，Ｂ，Ｃの各画像データが入力するように割り当てられ、各解像度の画像Ａ，Ｂ，Ｃの位置ずれを演算する。演算された位置ずれ量は、ＲＡＭ等のメモリからなる位置ずれ量一時保持部１５にいったん保持され随時出力して、より解像度の高い画像による位置ずれの演算に用いられるようになっている。
【００４６】
演算ユニット２及び演算ユニット３は、例えば、解像度が高くサイズの最も大きい画像Ｄについての位置ずれの演算量がそれぞれ１／２ずつになるように割り当てられ、後述の図８のようにメモリ１３ａから画像Ｄの画像データがそれぞれ入力し、画像Ｄについてそれぞれ１／２ずつ位置ずれ量を演算する。この演算ユニット２，３の演算のとき、演算ユニット１から入力した位置ずれ量が用いられるようになっている。
【００４７】
図３，図７の画像処理装置における動作及びずれ量算出の演算を行う演算ユニットの割り当ての例について図８を参照して説明する。図８は図７における複数の画像Ｄ〜Ａからなり４段階の解像度を有するピラミッド画像のパターンマッチングを説明するために複数の画像Ｄ〜Ａを模式的に示す図である。
【００４８】
図３，図７の画像入力部１１に画像Ｄが入力すると、解像度変換部１２ａ、１２ｂ、１２ｃにおいて、画像Ｄのダウンサンプリングで画像Ｃを作成し、画像Ｃのダウンサンプリングで画像Ｂを作成し、画像Ｂのダウンサンプリングで画像Ａを生成する。例えば、図８のように、画像Ｄ（画像サイズ：１６０×１２０）を縦と横をそれぞれ１／２のサイズにして画像Ｃ（画像サイズ：８０×６０）を生成し、画像Ｃを縦と横をそれぞれ１／２のサイズにして画像Ｂ（画像サイズ：４０×３０）を生成し、画像Ｂを縦と横をそれぞれ１／２のサイズにして画像Ａ（画像サイズ：２０×１５）を生成する。
【００４９】
次に、位置ずれ演算部１４において、画像Ａのパターンマッチング結果（位置ずれ量）を使って、画像Ｂのパターンマッチングを行う。画像Ｂのパターンマッチング結果（位置ずれ量）を使って、画像Ｃのパターンマッチングを行う。画像Ｃのパターンマッチング結果（位置ずれ量）を使って、画像Ｄのパターンマッチングを行う（図１，図２参照）。
【００５０】
上述の位置ずれ量算出において、図８のように、最もずれ量算出個数が多いのは画像Ｄであり、１６０×１２０＝１９２００個（図４においてＷ＝１９２００）である。この画像Ｄに演算ユニットを２つ割り当てるとすると（図４においてＺ＝２）、各演算ユニットが演算を担う個数Ｅ（図４）は、１９２００÷２＝９６００個である。
【００５１】
一方、画像Ｃと画像Ｂと画像Ａとの位置ずれ量算出個数の総和Ｇ（図４）は、４８００＋１２００＋３００＝６３００個であり、９６００個（Ｅ）よりも少ないので、画像Ｃ，Ｂ，Ａの各位置ずれ量算出のために演算ユニットを１つ割り当てる。
【００５２】
上述のようにして、図８のようなピラミッド画像の場合、図７の位置ずれ演算部１４の演算ユニット１，２，３は、演算ユニット１が画像Ｃ，Ｂ，Ａについての各位置ずれ量算出の演算を行い、演算ユニット２，３が画像Ｄについての位置ずれ量算出を１／２ずつ行うように割り当てられる。
【００５３】
次に、図８の場合を例にして図７の演算ユニット１，２，３における動作について図９〜図１１を参照して説明する。
【００５４】
図９は図７の演算ユニット１における演算ステップを説明するためのフローチャートである。図１０は図７の演算ユニット２における演算ステップを説明するためのフローチャートである。図１１は図７の演算ユニット３における演算ステップを説明するためのフローチャートである。
【００５５】
図７の演算ユニット１は、図６のようにして複数の解像度の演算を行うが、この場合、図６において例えばＲ＝１５と設定する。すなわち、図９のように、ｉ＝０とし（Ｓ１１）、図７のメモリ１３ｄから読み出した画像Ａの２０個（３００÷１５＝２０）の位置ずれ量を演算し（Ｓ１２）、その演算結果を位置ずれ量一時保持部１５に保持する。
【００５６】
次に、図７のメモリ１３ｃから読み出した画像Ｂの８０個（１２００÷１５＝８０）の位置ずれ量を演算し（Ｓ１３）、その演算結果を位置ずれ量一時保持部１５に保持する。この演算のとき、位置ずれ量一時保持部１５から読み出した画像Ａの位置ずれ量の演算結果を用いる。
【００５７】
次に、図７のメモリ１３ｂから読み出した画像Ｃの３２０個（４８００÷１５＝３２０）の位置ずれ量を演算し（Ｓ１４）、その演算結果を位置ずれ量一時保持部１５に保持するか、または、演算ユニット２，３に直接出力する。この演算のとき、位置ずれ量一時保持部１５から読み出した画像Ｂの位置ずれ量の演算結果を用いる。次に、ｉ＝ｉ＋１とする（Ｓ１５）。
【００５８】
上記ステップＳ１２〜Ｓ１５をｉ＝１５となるまで繰り返す（Ｓ１６）。これにより、１つの演算ユニット１において解像度の異なる画像Ａ，Ｂ，Ｃのすべての個数について各位置ずれ算出の演算を終了する。
【００５９】
図７の演算ユニット２は、図１０のように、メモリ１３ａから読み出した画像Ｄの９６００個の位置ずれ量を演算する（Ｓ２１）。同様に、演算ユニット３は、図１１のように、メモリ１３ａから読み出した画像Ｄの９６００個の位置ずれ量を演算する（Ｓ３１）。図７のように、演算ユニット２，３による画像Ｄの位置ずれ量の演算結果は出力部１６から外部に出力する。
【００６０】
上述の図１０，図１１のステップＳ２１，Ｓ３１において、図９のステップＳ１４における画像Ｃの位置ずれ量の演算結果を用いて画像Ｄの位置ずれ量の演算を行う。
【００６１】
以上のように、本実施の形態の画像処理装置１０によれば、複数の演算ユニット１，２，３が解像度の異なる各画像Ａ〜Ｄの位置ずれ量の各演算を並列的に行うことができるように複数の演算ユニット１，２，３に割り当てるので、効果的な演算の分割が可能となり、高速に演算処理ができる。このため、演算ユニットの数を削減でき、位置ずれ演算部１４を少ない回路規模で構成できる。これにより、ピラミッド画像からなる基準画像と参照画像との間の複数の点で位置ずれを演算するためにハード化（デジタル回路化）した場合に回路規模を削減できしかも高速処理が可能となる。
【００６２】
また、１つの演算ユニット１で解像度の異なる複数の画像Ａ，Ｂ，Ｃについて位置ずれ量を演算する場合、図６，図９のように、各画像Ａ，Ｂ，Ｃにおける位置ずれ算出の各総個数、例えば、３００，１２００，４８００を整数分の一ずつ、例えば、２０，８０，３２０個に分割してその整数回だけ繰り返して演算することで、全体の処理時間を短縮して演算することができ、高速処理が可能となる。
【００６３】
次に、図３，図７において演算ユニットが１つの場合の画像処理装置について図１２を参照して説明する。図１２は演算ユニットが１つの場合の画像処理装置の具体例の要部を示す要部ブロック図である。
【００６４】
図１２の画像処理装置１０’は、図３，図７の画像処理装置１０において演算ユニット２，３を省略し、１つの演算ユニット１で解像度の異なる複数の画像Ａ〜Ｄについての位置ずれの演算を行うようにしたものである。
【００６５】
図１２の演算ユニット１は、図６，図９と同様に、各画像Ａ，Ｂ，Ｃ，Ｄにおける位置ずれ算出の各総個数を整数分の一ずつ分割してその整数回だけ繰り返して演算することで、全体の処理時間を短縮して演算することができ、高速処理が可能となる。
【００６６】
以上のように本発明を実施するための最良の形態について説明したが、本発明はこれらに限定されるものではなく、本発明の技術的思想の範囲内で各種の変形が可能である。例えば、画像処理装置１０，１０’は、位置ずれ量算出結果に基づく視差による距離計測装置に適用できるが、本発明はこれに限定されず、基準画像と参照画像（比較画像）との間の位置ずれ量を用いる他の装置に適用可能であり、例えばカメラの手ぶれ補正処理等に適用できる。
【図面の簡単な説明】
【００６７】
【図１】本実施の形態によるピラミッド画像のパターンマッチングの原理を説明するための図である。
【図２】図１の原理を説明するために基準画像（ａ）及び参照画像（ｂ）における探索順序を模式的に示す図である。
【図３】本実施の形態による画像処理装置の概略的構成を示すブロック図である。
【図４】図３の画像処理装置においてピラミッド画像で解像度の異なる複数の画像がある場合に演算ユニットを割り当てるための第１例を説明するための図である。
【図５】図３において演算ユニットを割り当てるための第２例を説明するための図（ａ）、（ｂ）、（ｃ）である。
【図６】図３において解像度の異なる複数の画像についての各演算を１つの演算ユニットで実行させる場合に効率的な方法を説明するためのフローチャートである。
【図７】図３の画像処理装置の具体例の要部を示す要部ブロック図である。
【図８】図７における複数の画像Ｄ〜Ａからなり４段階の解像度を有するピラミッド画像のパターンマッチングを説明するために複数の画像Ｄ〜Ａを模式的に示す図である。
【図９】図７の演算ユニット１における演算ステップを説明するためのフローチャートである。
【図１０】図７の演算ユニット２における演算ステップを説明するためのフローチャートである。
【図１１】図７の演算ユニット３における演算ステップを説明するためのフローチャートである。
【図１２】図３，図７において演算ユニットが１つの場合の画像処理装置の具体例の要部を示す要部ブロック図である。
【符号の説明】
【００６８】
１，２，３ 演算ユニット
１０，１０’ 画像処理装置
１２ ピラミッド画像生成部
１２ａ，１２ｂ，１２ｃ 解像度変換部
１３ 画像保持部
１３ａ，１３ｂ，１３ｃ，１３ｄ メモリ
１４ 位置ずれ演算部（演算手段）
１５ 位置ずれ量一時保持部
Ａ，Ｂ，Ｃ，Ｄ 解像度の異なる複数の画像
【図１】
2009146190.tif 000003
【図２】
2009146190.tif 000004
【図３】
2009146190.tif 000005
【図４】
2009146190.tif 000006
【図５】
2009146190.tif 000007
【図６】
2009146190.tif 000008
【図７】
2009146190.tif 000009
【図８】
2009146190.tif 000010
【図９】
2009146190.tif 000011
【図１０】
2009146190.tif 000012
【図１１】
2009146190.tif 000013
【図１２】
2009146190.tif 000014