(57)【特許請求の範囲】
【請求項１】
参照画像と探索画像とを入力して、これら参照画像と探索画像との間で演算を行なう画像演算装置において、
参照画像の画素値の二乗を計算する第１の乗算部と、
前記第１の乗算部で得られた参照画像の画素値の二乗値を複数画素にわたって加算する加算部と、
前記加算部で得られた、参照画像の画素値の二乗値の複数画素にわたる加算値の平方根を算出することにより参照画像のノルムを求める第１の平方根算出部と、
２つの画素値どうしの乗算を計算する乗算器を有し、該２つの画素値のうちの一方の画素値として探索画像の１画素の画素値を該乗算器に入力するとともに、該２つの画素値のうちのもう一方の画素値として、該１画素の画素値および参照画像において該１画素に対応する画素の画素値を選択的に該乗算器に入力することにより、探索画像の画素値の二乗の、複数画素にわたる加算、および探索画像と参照画像の互いに対応する画素の画素値どうしの乗算の、複数画素にわたる加算の双方に兼用される積和演算部と、
前記積和演算部で得られた、探索画像の画素値の二乗の複数画素にわたる加算値の平方根を算出することにより探索画像のノルムを求める第２の平方根算出部と、
前記第１の平方根算出部で得られた参照画像のノルムと前記第２の平方根算出部で得られた探索画像のノルムとを乗算する第２の乗算部と、
前記積和演算部で得られた、探索画像と参照画像の互いに対応する画素の画素値どうしの乗算の、複数画素にわたる加算値を、前記第２の乗算部により得られた、参照画像のノルムと探索画像のノルムとの乗算値で除算することにより正規化相関値を得る除算部と
を備えた画像演算部を有することを特徴とする画像演算装置。
【請求項２】
前記第１の乗算部と前記第２の乗算部が、１つの乗算部で兼用されたものであることを特徴とする請求項１記載の画像演算装置。
【請求項３】
前記第１の平方根算出部と前記第２の平方根算出部が、１つの平方根算出部で兼用されたものであることを特徴とする請求項１記載の画像演算装置。
【請求項４】
前記積和演算部が、探索画像と参照画像の互いに対応する画素の画素値どうしの乗算の複数画素にわたる加算に代わり、探索画像と参照画像の互いに対応する画素の画素値どうしの差分の絶対値の、複数画素にわたる加算を行なうモードを有することを特徴とする請求項１記載の画像演算装置。
【請求項５】
前記除算部が、参照画像のノルムと探索画像のノルムとの乗算値で除算することに代えて、所定の定数値で除算するモードを有することを特徴とする請求項１記載の画像処理装置。
【請求項６】
前記画像演算部が、前記除算部により得られた値の絶対値を算出する絶対値算出部を備えたことを特徴とする請求項５記載の画像処理装置。
【請求項７】
前記画像演算部が、前記除算部で得られた正規化相関値の、探索画像上のピーク位置を検出するピーク検出部を備えたことを特徴とする請求項１記載の画像演算装置。
【請求項８】
前記積和演算部が、探索画像と参照画像の互いに対応する画素の画素値どうしの乗算の複数画素にわたる加算に代わり、探索画像と参照画像の互いに対応する画素の画素値どうしの差分の絶対値の、複数画素にわたる加算値を求めるモードを有し、
前記ピーク検出部が、該モードにおいて、該加算値の、探索画像上のピーク位置を検出するものであることを特徴とする請求項７記載の画像演算装置。
【請求項９】
前記積和演算部が、各画素値を複数ビットで表現したときの一方の画素値を表わす複数ビット全体と、他方の画素値を表わす複数ビットを複数のグループに分けたときの１つのグループに属する一部のビットとの間で演算を行なうシストリックアレイを備え、該シストリックアレイで前記複数のグループそれぞれについて順次行なわれた複数の演算結果に基づいて、前記一方の画素値と前記他方の画素値との間の演算結果を組み立てるものであることを特徴とする請求項１記載の画像演算装置。
【請求項１０】
前記画像演算部が、前記加算部で得られた、参照画像の画素値の二乗値の複数画素にわたる加算値が、該加算値を表わす複数ビットの上位ビット側にゼロが並ぶ小さい値であったときに、該複数ビットで表現された加算値を上位ビット側にシフトすることにより小数点位置を上位ビット側にシフトして、前記第１の平方根算出部に渡す第１の固定小数点化処理部と、
前記積和演算部で得られた、探索画像の画素値の二乗値の複数画素にわたる加算値が、該加算値を表わす複数ビットの上位側にゼロが並ぶ小さい値であったときに、該複数ビットで表現された加算値を上位ビット側にシフトすることにより小数点位置を上位ビット側にシフトして、前記第２の平方根算出部に渡す第２の固定小数点化処理部と、
前記積和演算部で得られた、複数ビットで表現された、探索画像と参照画像の互いに対応する画素の画素値どうしの乗算値の複数画素にわたる加算値を、前記第１の固定小数点化処理部におけるシフト量と前記第２の固定小数点化処理部におけるシフト量とに応じたシフト量だけ上位ビット側にシフトすることにより小数点位置を上位ビット側にシフトして前記除算部に渡す第３の固定小数点化処理部とを備えたことを特徴とする請求項１記載の画像演算装置。
【請求項１１】
前記画像演算部が、参照画像および探索画像を表わすデータのうちの一部のデータに基づく部分演算を複数回繰り返すことによりこれらの参照画像と探索画像とに基づく演算を完成させるものであって、
探索画像が格納されるキャッシュメモリと、
探索画像を表わすデータを該キャッシュメモリに格納しながら該探索画像を表わすデータのうちの初回の部分演算に必要なデータを前記画像演算部に渡すとともに、同一の探索画像に基づく２回目以降の部分演算については、該キャッシュメモリから必要なデータを読み出して前記画像演算部に渡すメモリ制御部とを備えたことを特徴とする請求項１記載の画像演算装置。
【請求項１２】
１フレーム分の探索画像を格納しておくフレームメモリを複数有する画像メモリと、これら複数のフレームメモリを循環的に用いて、入力されてくる探索画像を各フレームメモリに１フレームずつ格納するメモリ制御部とを備えたことを特徴とする請求項１記載の画像演算装置。
【請求項１３】
前記画像演算部が、複数の演算コマンドを順次に格納しておく演算コマンド格納部と、複数の演算結果を順次に格納しておく演算結果格納部とを備え、該画像演算部が、前記演算コマンド格納部から演算コマンドを取り出しては該演算コマンドに応じた演算を行なってその演算の結果を前記演算結果格納部に格納するものであって、
前記画像演算部に演算コマンドを送り込んで前記演算コマンド格納部に格納させる第１のモードと、前記演算結果格納部に格納された演算結果を取り出す第２のモードとの２つのモードを有する画像演算制御部を備え、
前記画像演算制御部が、前記第１のモードにあるときに前記演算結果格納部が満杯になったことを受けて前記第２のモードに切り換わるとともに、前記第２のモードにあるときに前記演算コマンド格納部が空になったことを受けて前記第１のモードに切り換わるものであることを特徴とする請求項１記載の画像演算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は参照画像と探索画像とを入力して、これら参照画像と探索画像との間で演算を行なう画像演算装置に関する。
【０００２】
【従来の技術】
従来より、テレビカメラあるいはビデオカメラ等で撮影される画面内で運動している物体を連続的に追跡する装置が考えられている。このような運動物体を追跡する装置には、例えば
（１）非接触の動き計測・動きベクトルの可視化
（２）監視、観察の自動化
（３）ジェスチャ・表情・視線の自動認識
（４）映画撮影・スポーツ中継でのカメラ制御
（５）移動ロボット・自律走行車の制御
等、広範な利用分野が考えられている。
【０００３】
このような装置において運動物体の位置を認識する場合に、探索画像上から参照画像が表わすパターンと同一もしくは類似のパターンを探すという手法が採られており、パターンが同一もしくは類似しているか否かの認識のために、相関演算と呼ばれる演算方法が多用されている。
【０００４】
図１は、相関演算による動き追跡処理の原理説明図である。
【０００５】
テレビカメラやビデオカメラ等に備えられた撮像センサ１１で得られた探索画像は、Ａ／Ｄ変換器１２で、ディジタルデータにより表わされた探索画像に変換されて、探索画像メモリ１３に格納される。一方、参照画像メモリ１４にはあらかじめ固定的に設定された、あるいは過去の探索画像から切り出された参照画像が格納される。
【０００６】
次に、アドレス発生器１５から発せられるアドレス情報に基づいて探索画像メモリ１３および参照画像メモリ１４から探索画像および参照画像を読み出して相関演算器１６に送り、その相関演算器１６において以下に説明する相関演算が行なわれ、その結果得られた探索画像の各画素に対応する各相関値が相関値ピーク位置検出器１７に入力されてその相関値のピーク位置が検出される。このピーク位置は、検索画像上の、参照画像のパターンと同一もしくは類似したパターンを有する位置である。この相関値ピーク位置検出器１７で検出されたピーク位置は、今回の探索画像上の運動物体の位置を表わす情報として外部に出力されるとともに、アドレス発生器１５にフィードバックされる。これは、次の時刻の探索画像上の運動物体の位置を探索するにあたり、今回検出されたピーク位置（現時点における探索画像上の運動物体の位置）を中心にしたある領域について探索を行なうことができるよう、アドレス発生器１５にピーク位置を伝達するものである。
【０００７】
図２は、参照画像の画素区分を表わした図、図３はその参照画像上のパターンの一例を示した図である。また、これと同様に、図４は、探索画像の画素区分を表わした図、図５は、その探索画像上のパターンの一例を示した図である。また、図６は、参照画像と探索画像との間の相関演算処理の説明図、図７は、相関値の分布を示した模式図である。
【０００８】
ここでは、簡単のため、参照画像は図２のように８画素×８画素の大きさとし、座標（ｉ，ｊ）の画素の画素値をＸ（ｉ，ｊ）で表わす。またこれと同様、探索画像は図４のように１６画素×１６画素の大きさとし、座標（ｉ，ｊ）の画素の画素値をＹ（ｉ，ｊ）で表わす。
【０００９】
ここで、図６に示すように、探索画像から、参照画像と同一寸法の部分領域画像（ここでは代表的に座標（ｍ，ｎ）を中心とする部分領域画像）を切り出し、
【００１０】
【数１】
0003874985.tif 000002
【００１１】
に基づいて相関値Ｄ（ｍ，ｎ）を算出する。ここで、（１）式の分母の、
【００１２】
【数２】
0003874985.tif 000003
【００１３】
は、それぞれ参照画像のノルム、探索画像のノルムと呼ばれる量である。
【００１４】
この演算を、図６に示すように、ｍ，ｎをそれぞれｍ＝０〜７、ｎ＝０〜７の範囲で変更しながら順次行なう。こうすることにより、図７に示すような相関値の分布が求められ、その相関値のピーク位置を検出することにより、探索画像（例えば図５参照）上の、参照画像のパターンと（例えば図３参照）と同一もしくは類似のパターンが存在する位置を検出することができる。
【００１５】
【発明が解決しようとする課題】
ここで、（１）式はいわゆる正規化相関と呼ばれる相関演算を表わす式であるが、この正規化相関演算を実行するには、従来、極めて大規模な回路を必要としていた。
【００１６】
これに対し、特開平５−１１４０２８号公報、特開平５−１８９５７０号公報には、上記の正規化相関演算を行なう回路の規模を縮小するための技術が開示されている。これらの公報に開示された技術は、いずれも、二次元画像を、投影ヒストグラムの作成やｘ方向あるいはｙ方向への強度値加算により、一次元画像に圧縮して、その一次元画像について正規化相関を演算するものであり、一次元画像について正規化相関を行なえばよいため回路規模は大幅に縮小されるが、二次元画像を一次元画像に圧縮する過程で情報が欠落するおそれがあり、移動物体の位置検出精度が低下するおそれがある。
【００１７】
また、（１）式の正規化相関に代えて、
【００１８】
【数３】
0003874985.tif 000004
【００１９】
に基づいて相関演算を行なう、いわゆるＳＡＤ相関が知られている。このＳＡＤ相関を行なう回路は、正規化相関を行なう回路と比べ回路規模が大幅に小さくて済む。
【００２０】
このＳＡＤ相関の場合、探索画像のパターンと参照画像のパターンとが完全に一致するとＤ（ｍ，ｎ）＝０となり、したがって（２）式で求めたＤ（ｍ，ｎ）のうちの最小のピーク値の位置を検出することになる。
【００２１】
しかしながら、このＳＡＤ相関は、探索画像の明るさが変化する（例えば移動物体が影に入るなど）と演算精度が大きく低下し、一般的には正規化相関に比べて移動物体の位置検出能力が大きく劣るという問題があり、探索画像の明るさが一定であるという条件の下など、特殊な場合のみでしか正規化相関と同程度の精度を確保することはできない。
【００２２】
本発明は、上記事情に鑑み、従来よりも小さな回路規模で二次元画像のまま正規化相関を行なうことのできる画像演算装置を提供することを目的とする。
【００２３】
【課題を解決するための手段】
上記目的を達成する本発明の画像演算装置は、参照画像と探索画像とを入力して、これら参照画像と探索画像との間で演算を行なう画像演算装置において、
参照画像の画素値の二乗を計算する第１の乗算部と、第１の乗算部で得られた参照画像の画素値の二乗値を複数画素にわたって加算する加算部と、
加算部で得られた、参照画像の画素値の二乗値の複数画素にわたる加算値の平方根を算出することにより参照画像のノルムを求める第１の平方根算出部と、
探索画像の画素値の二乗の、複数画素にわたる加算、および探索画像と参照画像の互いに対応する画素の画素値どうしの乗算の、複数画素にわたる加算の双方に兼用される積和演算部と、
積和演算部で得られた、探索画像の画素値の二乗の複数画素にわたる加算値の平方根を算出することにより探索画像のノルム求める第２の平方根算出部と、
第１の平方根算出部で得られた参照画像のノルムと第２の平方根算出部で得られた探索画像のノルムとを乗算する第２の乗算部と、
積和演算部で得られた、探索画像と参照画像の互いに対応する画素の画素値どうしの乗算の、複数画素にわたる加算値を、前記第２の乗算部により得られた、参照画像のノルムと探索画像のノルムとの乗算値で除算することにより正規化相関値を得る除算部と
を備えた画像演算部を有することを特徴とする。
【００２４】
本発明の画像演算装置は、上記積和演算部に、探索画像の画素値の二乗の、複数画素にわたる加算の演算と、探索画像と参照画像の互いに対応する画素の画素値どうしの乗算の、複数画素にわたる加算の演算とを兼ねさせるとともに、参照画像のノルムの演算は、この積和演算部とは別の経路（第１の乗算部、加算部および第１の平方根算出部を含む経路）で行なうようにしたため、回路規模を縮小し、かつ二次元画像のまま演算処理が可能となる。
【００２５】
ここで、上記本発明の画像演算装置において、上記第１の乗算部と上記第２の乗算部が、１つの乗算部で兼用されたものであることが好ましく、また、上記第１の平方根算出部と上記第２の平方根算出部が、１つの平方根算出部で兼用されたものであることも好ましい態様である。
【００２６】
このような、乗算部あるいは平方根算出部を兼用した回路を構成することにより、回路規模の一層の縮小化が図られる。
【００２７】
また、上記本発明の画像演算装置において、上記積和演算部が、探索画像と参照画像の互いに対応する画素の画素値どうしの乗算の複数画素にわたる加算に代わり、探索画像と参照画像の互いに対応する画素の画素値どうしの差分の絶対値の、複数画素にわたる加算を行なうモードを有することが好ましい。
【００２８】
このようなモードを備えると、本発明の画像演算装置を用いて、正規化相関のほか、ＳＡＤ相関を行なうこともできる。
【００２９】
また、上記本発明の画像演算装置において、上記除算部が、参照画像のノルムと探索画像のノルムとの乗算値で除算することに代えて、所定の定数値で除算するモードを有することも好ましい形態であり、この場合に、上記画像演算部が、上記除算部により得られた値の絶対値を算出する絶対値算出部を備えたことも好ましい態様である。
【００３０】
前述の（１）式の分子は、参照画像としてフィルタ演算子を採用したときの空間フィルタリング演算を表わす式となっている。
【００３１】
そこで、上記除算部が所定の定数値で除算するモードを有すると、
【００３２】
【数４】
0003874985.tif 000005
【００３３】
の空間フィルタリング演算を行なうことができる。
【００３４】
あるいは、定数値で除算をしなくても空間フィルタとしての作用を成す場合は、上記の除算部をバイパスして出力するようにしてもよい。
【００３５】
また、上記の絶対値算出部を備えると、例えばソーベル演算子を用いた空間フィルタリング演算等、絶対値演算を伴う空間フィルタリング演算にも対応することができる。
【００３６】
また、上記本発明の画像演算装置において、上記画像演算部が、上記除算部で得られた正規化相関値の、探索画像上のピーク位置を検出するピーク検出部を備えたものであることが好ましい。
【００３７】
本発明の画像演算装置は、基本的には相関演算を行なう装置であり、相関値のピーク位置の検出は必要に応じてこの装置外部で行なうものであってもよいが、上記のようにピーク検出部を内蔵し、本発明の画像演算装置内で相関値のピーク位置の検出を行なってもよい。
【００３８】
ここで、上記積和演算部が、探索画像と参照画像の互いに対応する画素の画素値どうしの乗算の複数画素にわたる加算に代わり、探索画像と参照画像の互いに対応する画素の画素値どうしの差分の絶対値の、複数画素にわたる加算値を求めるモードを有する場合に、ピーク検出部が、そのモードにおいて、その加算値の、探索画像上のピーク位置を検出するものであることが好ましい。
【００３９】
これにより、ＳＡＤ相関を行ってそのピーク位置を検出することも可能となる。
【００４０】
また、上記本発明の画像演算装置において、上記積和演算部が、各画素値を複数ビットで表現したときの一方の画素値を表わす複数ビット全体と、他方の画素値を表わす複数ビットを複数のグループに分けたときの１つのグループに属する一部のビットとの間で演算を行なうシストリックアレイを備え、そのシストリックアレイで上記複数のグループそれぞれについて順次行なわれた複数の演算結果に基づいて、一方の画素値と他方の画素値との間の演算結果を組み立てるものであることが好ましい。
【００４１】
従来より積和演算を行なうのに好適な回路構成としてシストリックアレイが知られているが、上記のように一方の画素値と他方の画素値との間の演算を複数の部分演算に分けて行なってそれら複数の部分演算結果を統合する構成を備えると、シストリックアレイの回路規模を大幅に縮小化することができる。
【００４２】
さらに、上記本発明の画像演算装置において、上記画像演算部が、上記加算部で得られた、参照画像の画素値の二乗値の複数画素にわたる加算値が、その加算値を表わす複数ビットの上位ビット側にゼロが並ぶ小さい値であったときに、その複数ビットで表現された加算値を上位ビット側にシフトすることにより小数点位置を上位ビット側にシフトして、上記第１の平方根算出部に渡す第１の固定小数点化処理部と、
上記積和演算部で得られた、探索画像の画素値の二乗値の複数画素にわたる加算値が、その加算値を表わす複数ビットの上位側にゼロが並ぶ小さい値であったときに、その複数ビットで表現された加算値を上位ビット側にシフトすることにより小数点位置を上位ビット側にシフトして、上記第２の平方根算出部に渡す第２の固定小数点化処理部と、
上記積和演算部で得られた、複数ビットで表現された、探索画像と参照画像の互いに対応する画素の画素値どうしの乗算値の複数画素にわたる加算値を、上記第１の固定小数点化処理部におけるシフト量と上記第２の固定小数点化処理部におけるシフト量とに応じたシフト量だけ上位ビット側にシフトすることにより小数点位置を上位ビット側にシフトして前記除算部に渡す第３の固定小数点化処理部とを備えたものであることが好ましい。
【００４３】
このような第１〜第３の固定小数点化処理部を備えると、小さい値どうしの除算を行なう場合に高精度な除算を行なうことができる。
【００４４】
このような第１〜第３の固定小数点化処理部を備えてもなお、除算の精度が著しく低下するおそれがあるほど小さい値が得られたときは、警告を行なうようにしてもよい。
【００４５】
また、上記本発明の画像演算装置において上記画像演算部が、参照画像および探索画像を表わすデータのうちの一部のデータに基づく部分演算を複数回繰り返すことによりこれらの参照画像と探索画像とに基づく演算を完成させるものであって、
探索画像が格納されるキャッシュメモリと、
探索画像を表わすデータを上記キャッシュメモリに格納しながら該探索画像を表わすデータのうちの初回の部分演算に必要なデータを画像演算部に渡すとともに、同一の探索画像に基づく２回目以降の部分演算については、そのキャッシュメモリから必要なデータを読み出して画像演算部に渡すメモリ制御部とを備えるものであることが好ましい。
【００４６】
このように、キャッシュメモリを備え、２回目以降はそのキャッシュメモリから読み出すようにすると、部分演算と部分演算との間の空き時間を短縮化でき、高速処理が可能となる。
【００４７】
また、上記本発明の画像演算装置において、１フレーム分の探索画像を格納しておくフレームメモリを複数有する画像メモリと、これら複数のフレームメモリを循環的に用いて、入力されてくる探索画像を各フレームメモリに１フレームずつ格納するメモリ制御部とを備えることが好ましい。
【００４８】
このように複数のフレームメモリを有する画像メモリを備え、それら複数のフレームメモリを循環的に用いて、順次入力される各フレームごとの探索画像を格納することにより、常に最近の複数フレームの探索画像を利用することが可能となり、例えば、動きの速い移動物体については今回の探索画像の直前の探索画像に現れた移動物体を切り出して参照画像とし、動きの遅い移動物体については今回の探索画像から複数フレーム離れた以前の探索画像に現われた移動物体を切り出して参照画像とし、そのようにして得られた参照画像と今回の探索画像との間で相関演算を行うことにより、動きの速い移動物体と動きの遅い移動物体との双方が混在した系であっても各移動物体の動きベクトルを高精度に求めることができる。
【００４９】
さらに、上記本発明の画像演算装置において、上記画像演算部が、複数の演算コマンドを順次に格納しておく演算コマンド格納部と、複数の演算結果を順次に格納しておく演算結果格納部とを備え、この画像演算部が、演算コマンド格納部から演算コマンドを取り出してはその演算コマンドに応じた演算を行なってその演算の結果を演算結果格納部に格納するものであって、
画像演算部に演算コマンドを送り込んで演算コマンド格納部に格納させる第１のモードと、演算結果格納部に格納された演算結果を取り出す第２のモードとの２つのモードを有する画像演算制御部を備え、
この画像演算制御部が、上記第１のモードにあるときに演算結果格納部が満杯になったことを受けて上記第２のモードに切り換わるとともに、上記第２のモードにあるときに演算コマンド格納部が空になったことを受けて上記第１のモードに切り換わるものであることが好ましい。
【００５０】
こうすることにより、画像演算部と画像演算制御部との間のデッドロック（それら画像演算部と画像演算制御部との間で演算コマンドや演算結果の転送を行なうことができない状態）を避け、演算コマンドおよび演算結果の円滑な受け渡しが可能となる。
【００５１】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
【００５２】
図８は、本発明の一実施形態としての画像演算装置の概略構成図である。
【００５３】
この画像演算装置１００は、１つのＬＳＩ１１０とそのＬＳＩ１１０の外部に接続された、画像メモリ１２０と、ＲＡＭおよびＲＯＭからなるメモリ１３０とから構成されている。
【００５４】
ＬＳＩ１１０の内部には、本実施形態の主要部を構成する相関画像演算器１１１が備えられている。この相関画像演算器１１１は、ビデオエンコーダ／デコーダから入力されてきた画像データを画像メモリ１２０に書き込み、画像メモリ１２０から画像データを読み出してキャッシュメモリ１１２に格納し、さらに画像メモリ１２０やキャッシュメモリ１１２に格納された画像データを読み出して相関演算を行なう回路ブロックである。詳細は後述する。
【００５５】
この相関画像演算器１１１は、バス１１３を介してＣＰＵ１１４と接続されている。このＣＰＵ１１４は、プログラム用メモリインタフェース１１４ａを介してメモリ１３０と接続されており、バス１１３に接続された２チャンネルのＤＭＡコントローラ１１５の制御の下で、相関画像演算器１１１に、その相関画像演算器１１１で実行される演算のモード等を指示する演算コマンドを送信し、またその相関画像演算器１１１で得られた演算結果を受け取って各種演算や制御を行なう。ＤＭＡコントローラ１１５は、ＣＰＵ１１４から相関画像演算器１１１への演算コマンドの送信に１つのチャネルが使用され、相関画像演算器１１１からＣＰＵ１１４への演算結果の送信に、もう１つのチャネルが使用される。また、割込制御部１１６は、相関画像演算器１１１、ＤＭＡコントローラ１１５、タイマ１１７および外部からの割り込みを受け付けて割込制御を行なう回路ブロックである。また、各種Ｉ／Ｏ１１８は、外部との間の通信や外部への割込み出力を担っている。これら割込制御部１１６、タイマ１１７、および各種Ｉ／Ｏ１１８は、バスインタフェースユニット１１９を介在させてバス１１３に接続されている。また、バス１１３は、外部バス２００に接続することができ、拡張性が考慮されている。
【００５６】
図９は、図８に１つのブロックで示す相関画像演算器１１１の一部である画像演算部１１１ａの内部構成を示す回路ブロック図である。
【００５７】
また、下記の表１は、図９に示す各種の符号の意味を示したものである。
【００５８】
【表１】
0003874985.tif 000006
【００５９】
以下、図１０以降の図面を合わせて参照しながら、図９を説明する。
【００６０】
図１０は、図９に示す画像演算部１１１ａの概略を示すブロック図である。
【００６１】
この画像演算部１１１ａは、図１０に示すように、シストリックアレイ３１０と、参照画像ノルム計算部３２０と、正規化・累積処理部３０と、ピーク検出部３８０と、相関値メモリ制御部３９０から構成されている。ここで相関値メモリ制御部３９０には、２つの相関値メモリ３９１，３９２が備えられており、これら２つの相関値メモリ３９１，３９２には演算の途中結果や最終結果が格納される。ここでは、相関値メモリを２つのみ備え、これら２つの相関値メモリ３９１，３９２をうまく使い分けることで、以下に説明する全ての演算に対処することができるよう構成されている。尚、この図１０において、シストリックアレイ３１０、正規化・累積処理部３５０および相関値メモリ制御部３９０の複合が、本発明にいう積和演算部の一例に相当する。
【００６２】
図１１は、図９，図１０に１つのブロックで示すシストリックアレイ３１０の内部構成図である。
【００６３】
この図１１において、ＰＥ１１，ＰＥ１２，……，ＰＥ８８は、それぞれが図１２に示す構成の演算エレメント、Ａは加算器、ＳＲ，ＳＲ１，ＳＲ２，……，ＳＲ３０は、シフトレジスタ等で構成された、それぞれが１クロック分の遅延回路、Ｓｅｌは、３０個並んだ遅延回路ＳＲ１，ＳＲ２，……，ＳＲ３０のうちのどこから出力を取り出すかを決めるセレクタである。
【００６４】
このシストリックアレイ３１０を用いて参照画像ｒｅｆと探索画像ｓｅｒとの間で積和演算を行なうとするときは，各演算エレメントＰＥ１１〜ＰＥ８８に参照画像（ここでは８画素×８画素）の各画素値データがセットされ、探索画像の各画素ごとのデータがクロックに同期して図１１の左下（ｓｅｒ＿ｉｎ）から順次入力され、右上（ｓｅｒ＿ｏｕｔ）からこのシストリックアレイ３１０を抜ける。ここで、遅延回路ＳＲ１〜ＳＲ３０をどこまで使うかによって、ｓｅｒ＿ｉｎから入力されてｓｅｒ＿ｏｕｔから出力されるまでのクロック数が異なり、それに応じて参照画像との間で積和演算される探索画像の大きさ（寸法）が定められる。
【００６５】
この図１の下段に示す、加算器Ａと遅延回路ＳＲとが交互に並んだ配列の右端からは、積和演算結果ａｎｓが出力される。
【００６６】
図１２は、図１１に示すシストリックアレイ内に配列された演算エレメントの１つを示す図である。図１１に示すシストリックアレイ内に配列された演算エレメントは、いずれも、この図１２に示した構成を有する。
【００６７】
この演算エレメントは、参照画像ｒｅｆの１画素分のデータを格納しておくレジスタ３１１１と、クロックに同期して順次入力される探索画像ｓｅｒの今回のクロックパルスに同期してこの演算エレメント３１１に入力された１画素分のデータを格納するレジスタ３１１２とを備えている。レジスタ３１１２に格納された探索画像の画素データは、この演算エレメント３１１からそのまま出力され（ｓｅｒ＿ｏｕｔ）、次の演算エレメントに伝達される。
【００６８】
ここで、参照画像ｒｅｆと探索画像ｓｅｒとの間で積和演算を行なうときは、セレクタ３１１３により、レジスタ３１１１に格納されているデータが選択され、乗算器３１１４により、２つのレジスタ３１１１，３１１２に格納されたデータどうしが乗算され、セレクタ３１１５を経由して加算器３１１７に入力される。一方、レジスタ３１１６には、この図１２に示す演算エレメントの上に並んだ演算エレメントにおける加算結果ｄ＿ｉｎが入力されて格納されており、加算器３１１７では、上に並んだ演算エレメントからの加算結果ｄ＿ｉｎに、この演算エレメント３１１で得られた参照画像と探索画像の１画素どうしの乗算結果が加算され、この演算エレメントの下に並ぶ演算エレメント、あるいは、図１１の一番下の加算器Ａに入力される。
【００６９】
この図１２に示す演算エレメントは、探索画像ｓｅｒどうしの積和演算にも対応している。すなわち、この演算エレメントでは、探索画素の各画素値の二乗を行なうこともでき、そのときは、セレクタ３１１３で、レジスタ３１１２の方が選択される。このとき、乗算器３１１４では、探索画素の１画素の画素値の二乗が求められる。
【００７０】
さらに、この演算エレメントは、前述したＳＡＤ相関演算にも対応している。このときは、減算器３１１８で２つのレジスタ３１１１，３１１２に格納された画素値どうしの差分値が求められ、絶対値演算器３１１９でその差分値の絶対値が求められ、セレクタ３１１５を経由して加算器３１１７に入力され、上の演算エレメントから伝達されてきた値に加算される。
【００７１】
次に、シストリックアレイの動作について説明する。図１１には８×８＝６４（個）の演算エレメントが並んだシストリックアレイが示されているが、ここでは簡単のため、４×４＝１６（個）の演算エレメントを持つ小型のシストリックアレイについて説明する。
【００７２】
図１３は、参照画像（Ａ）、探索画像（Ｂ）、および相関演算結果（Ｃ）を模式的に示した図である。
【００７３】
ここでは、簡単のため、図１３（Ａ）に示す参照画像は２画像×２画素の大きさのものであり、‘１’，‘２’，‘３’，‘４’の数字を付した各画素の画素値はそれぞれ１，２，３，４であるとする。
【００７４】
また、図１３（Ｂ）に示す探索画像は、３画素×３画素の大きさのものであり、‘Ａ’，‘Ｂ’，‘Ｃ’，……，‘Ｉ’の英字を付した各画素の画素値は、それぞれＡ，Ｂ，Ｃ，……，Ｉであるとする。
【００７５】
これら図１３（Ａ）の参照画像と図１３（Ｂ）の探索画像との間で積相関演算を行なうと、図１３（Ｃ）に示す相関演算結果が得られる。すなわち、（Ａ）の参照画像の各画素‘１’，‘２’，‘３’，‘４’が、（Ｂ）の探索画像の各画素‘Ａ’，‘Ｂ’，‘Ｄ’，‘Ｅ’にそれぞれ重なるように配置して重なった画素どうしの乗算の、相互の加算を行なうと、（Ｃ）の相関演算結果の左上の（ａｎｓ１）に示すように、１Ａ＋２Ｂ＋３Ｄ＋４Ｅが得られ、（Ａ）の参照画像の各画素‘１’，‘２’，‘３’，‘４’が、（Ｂ）の探索画像の各画素‘Ｂ’，‘Ｃ’，‘Ｅ’，‘Ｆ’にそれぞれ重なるように配置して重なった画素どうしの乗算の、相互の加算を行なうと、（Ｃ）の相関演算結果の右上の（ａｎｓ２）に示すように、１Ｂ＋２Ｃ＋３Ｅ＋４Ｆが得られ、（Ａ）の参照画像の各画素‘１’，‘２’，‘３’，‘４’が、（Ｂ）の探索画像の各画素‘Ｄ’，‘Ｅ’，‘Ｇ’，‘Ｈ’にそれぞれ重なるように配置して重なった画素どうしの乗算の、相互の加算を行なうと、（Ｃ）の相関演算結果の左下の（ａｎｓ３）に示すように、１Ｄ＋２Ｅ＋３Ｇ＋４Ｈが得られ、（Ａ）の参照画像の各画素‘１’，‘２’，‘３’，‘４’が、（Ｂ）の探索画像の各画素‘Ｅ’，‘Ｆ’，‘Ｈ’，‘Ｉ’にそれぞれ重なるように配置して重なった画素どうしの乗算の、相互の加算を行なうと、（Ｃ）の相関演算結果の左下の（ａｎｓ４）に示すように、１Ｅ＋２Ｆ＋３Ｈ＋４Ｉが得られる。
【００７６】
以下、４つの演算エレメントを持ったシストリックアレイを用いて以上の演算結果が得られることを示す。
【００７７】
図１４は、４つの演算エレメントを持つシストリックアレイの構成図である。
【００７８】
この図４に示すシストリックアレイは、４つの演算エレメントＰＥ１，ＰＥ２，ＰＥ３，ＰＥ４が配置されるとともに、２つの加算器Ａ１，Ａ２および１つの遅延回路ＳＲが配置されている。
【００７９】
また、図１５〜図２３は、図１４に示すシストリックアレイの各要素における演算結果あるいは格納データを、時間経過にしたがって示した図である。
【００８０】
まず、参照画像（図１３（Ａ）参照）の各画素‘１’，‘２’，‘３’，‘４’の画素値１，２，３，４が、図１５に示すように、対応する各演算エレメントＰＥ１，ＰＥ２，ＰＥ３，ＰＥ４の、図１２に示すレジスタ３１１１にセットされ、その探索画像（図１３（Ｂ）参照）の各画素‘Ａ’，‘Ｂ’，‘Ｃ’，……，‘Ｉ’の画素値Ａ，Ｂ，Ｃ，……，Ｉが、この順に、クロックに同期してＰＥ３→ＰＥ４→ＰＥ１→ＰＥ２の順に入力される。
【００８１】
図１５は、各演算エレメントに参照画像の各画素の画素値１，２，３，４がセットされ、今まさに探索画像が入力されようとしている状態を示している。
【００８２】
図１６は、図１５の状態から３クロック分進んだときの状態を示しており、演算エレメントＰＥ１，ＰＥ３，ＰＥ４に探索画像の各画素‘Ａ’，‘Ｃ’，‘Ｂ’の画素値Ａ，Ｃ，Ｂが入力されている。このとき、演算エレメントＰＥ１において１×Ａ＝１Ａが求められる。
【００８３】
図１７は、図１６の状態から１クロック分進んだときの状態を示しており、各演算エレメントＰＥ１，ＰＥ２，ＰＥ３，ＰＥ４にそれぞれＢ，Ａ，Ｄ，Ｃが入力され、演算エレメントＰＥ１，ＰＥ２においてそれぞれ１Ｂ，２Ａが求められ、演算エレメントＰＥ３では、３Ｄが求められるとともに、求められた３Ｄと、１クロック前（図１６の状態）において、演算エレメントＰＥ１において求められた１Ａとが加算されて１Ａ＋３Ｄが求められる。
【００８４】
図１８は、図１７の状態から１クロック分進んだときの状態を示しており、各演算エレメントＰＥ１，ＰＥ２，ＰＥ３，ＰＥ４にそれぞれＣ，Ｂ，Ｅ，Ｄが入力され、演算エレメントＰＥ１，ＰＥ２ではそれぞれ１Ｃ，２Ｂが求められ、演算エレメントＰＥ３，ＰＥ４では、それぞれ１Ｂ＋３Ｅ，２Ａ＋４Ｄが求められ、演算エレメントＰＥ３において１クロック前に求められた１Ａ＋３Ｄは、加算器Ａ１に入力される。
【００８５】
図１９は、図１８の状態から１クロック分進んだときの状態を示しており、各演算エレメントＰＥ１，ＰＥ２，ＰＥ３，ＰＥ４にはそれぞれＤ，Ｃ，Ｆ，Ｅが入力されて演算エレメントＰＥ１，ＰＥ２ではそれぞれ１Ｄ，２Ｃが求められ、また演算エレメントＰＥ３，ＰＥ４では、それぞれ１Ｃ＋３Ｆ，２Ｂ＋４Ｅが求められ、加算器Ａ１には、演算エレメントＰＥ３で１クロック前に求められた１Ｂ＋３Ｅが入力され、遅延回路ＳＲには、１クロック前に加算器１Ａに格納されていた１Ａ＋３Ｄが入力され、もう１つの加算器Ａ２には、１クロック前に演算エレメントＰＥ４で求められた２Ａ＋４Ｄが格納される。
【００８６】
図２０は、図１９の状態から１クロック分進んだときの状態を示しており、各演算エレメントＰＥ１，ＰＥ２，ＰＥ３，ＰＥ４にはそれぞれＥ，Ｄ，Ｇ，Ｆが格納され、演算エレメントＰＥ１，ＰＥ２ではそれぞれ１Ｅ，２Ｄが求められ、演算エレメントＰＥ３，ＰＥ４では、それぞれ１Ｄ＋３Ｇ，２Ｃ＋４Ｆが求められ、加算器Ａ１には、１クロック前において演算エレメントＰＥ３で求められた１Ｃ＋３Ｆが入力され、遅延回路ＳＲには、１クロック前において加算器１Ａに入力されてた１Ｂ＋３Ｅが入力され、加算器Ａ２では、１クロック前において遅延回路ＳＲに入力された１Ａ＋３Ｄと１クロック前において演算エレメントＰＥ４で求められた２Ｂ＋４Ｅとの双方が入力されて相互に加算されることにより、１Ａ＋３Ｄ＋２Ｂ＋４Ｅが求められる。１クロック前において加算器Ａ２に入力された２Ａ＋４Ｄはその加算器Ａ２から出力されるが、この２Ａ＋４Ｄは不要な値であり無視される。
【００８７】
図２１は、図２０の状態から１クロック分進んだときの状態を示しており、各演算エレメントＰＥ１，ＰＥ２，ＰＥ３，ＰＥ４には、それぞれＥ，Ｆ，Ｈ，Ｇが入力され、各演算エレメントＰＥ１，ＰＥ２では、それぞれ１Ｆ，２Ｅが求められ、演算エレメントＰＥ３，ＰＥ４では、それぞれ１Ｅ＋３Ｈ，２Ｄ＋４Ｇが求められ、加算器Ａ１には１Ｄ＋３Ｇが入力され、遅延回路ＳＲには１Ｃ＋３Ｆが入力され、加算器Ａ２では１Ｂ＋３Ｅ＋２Ｃ＋４Ｆが求められ、その加算器Ａ２からは、１Ａ＋３Ｄ＋２Ｂ＋４Ｅが出力される。この加算器Ａ２から出力された１Ａ＋３Ｄ＋２Ｂ＋４Ｅは、図３（Ｃ）の左上の演算結果（ａｎｓ１）そのものである。
【００８８】
図２２は、図２１の状態から１クロック分進んだときの状態を示しており、各各演算エレメントＰＥ１，ＰＥ２，ＰＥ３，ＰＥ４には、それぞれＧ，Ｆ，Ｉ，Ｈが入力され、演算エレメントＰＥ１，ＰＥ２では、それぞれ１Ｅ，２Ｆが求められ、演算エレメントＰＥ３，ＰＥ４では、それぞれ１Ｆ＋３Ｉ，２Ｅ＋４Ｈが求められ、加算器Ａ１には１Ｅ＋３Ｈが入力され、遅延回路ＳＲ１には１Ｄ＋３Ｇが入力され、加算器Ａ２では、１Ｃ＋３Ｆ＋２Ｄ＋４Ｇが求められ、この加算器Ａ２からは１Ｂ＋３Ｅ＋２Ｃ＋４Ｆが出力される。この加算器Ａ２から出力された１Ｂ＋３Ｅ＋２Ｃ＋４Ｆは、図１３（Ｃ）の右上の演算結果（ａｎｓ２）そのものである。
【００８９】
図２３は、図２２の状態から１クロック分進んだときの状態を示しており、各各演算エレメントＰＥ１，ＰＥ２，ＰＥ４には、それぞれＨ，Ｇ，Ｉが入力され、演算エレメントＰＥ３は空いた状態となる。このとき、演算エレメントＰＥ１，ＰＥ２では、それぞれ１Ｈ，２Ｇが求められ、演算エレメントＰＥ４では２Ｆ＋４Ｉが求められ、加算器Ａ１には１Ｆ＋３Ｉが入力され、遅延回路ＳＲ１には１Ｅ＋３Ｈが入力され、加算器Ａ２では、１Ｄ＋３Ｇ＋２Ｅ＋４Ｈが求められ、加算器Ａ２から１Ｃ＋３Ｆ＋２Ｄ＋４Ｇが出力される。この加算器Ａ２から今回出力された１Ｃ＋３Ｆ＋２Ｄ＋４Ｇは、不要な値であり無視される。また、この加算器Ａ２で今回求められた１Ｄ＋３Ｇ＋２Ｅ＋４Ｈは、図１３（Ｃ）の左下の演算結果（ａｎｓ３）そのものである。
【００９０】
以上の動作をさらに続行することにより、図１３（Ｃ）の右下の演算結果（ａｎｓ４）も求められる。
【００９１】
このように、このシストリックアレイでは、求めようとしている演算結果のみでなく、不要な値も求められてしまうが、どのタイミングでどの演算結果が求められ、どのタイミングで不要な値が求められるかはあらかじめわかっており、求めようとしている演算結果を拾うことができる。
【００９２】
シストリックアレイの説明は以上で終了し、次に、図１０に示す参照画像ノルム計算部３２０について説明する。
【００９３】
図２４は、参照画像ノルム計算部３２０の概略構成を示すブロック図である。
【００９４】
各画素ごとに入力されてきた参照画像（参照画像の各画素の画素値を表わすデータ）ｒｅｆは、２系統に分かれ、図９に示す２つのセレクタ３２１，３２２を通って乗算器３２３に入力される。この乗算器３２３には、２系統に分かれた参照画像の同一の画素の画素値が同時に入力されて互いに乗算される。すなわち、この乗算器３２３では画素値の二乗が求められる。この乗算器３２３で求められた画素値の二乗値は、加算器３２４に入力され、それまでの間にレジスタ３２７に格納されていた値と加算される。
【００９５】
加算器３２４による加算値は、図９に示すセレクタ３２６を経由してレジスタ３２７に格納される。レジスタ３２７には、この演算を始める前に、図９に示す固定値（ここでは値０）を発生する固定値発生回路３２５からの値０がセレクタ３２６を経由してレジスタ３２７に格納されており、したがって、参照画像の各画素の画素値が順次入力され乗算器３２３でその入力された画素値の二乗値が求められ加算器３２４でそれまでレジスタ３２７に格納されていた値と加算されてレジスタ３２７に格納されるというシーケンスを繰り返すことにより、最終的に、このレジスタ３２７には、参照画像の各画素の画素値の二乗値の、参照画像全域にわたる加算値が格納される。このレジスタ３２７に、参照画像全域にわたる加算値が格納されると、そのレジスタ３２７に格納された加算値は、次に図９に示すセレクタ３２８を経由して平方根算出器３２９に入力され、その加算値の平方根が求められる。この求められた平方根は、すなわち、参照画像のノルムであり、この参照画像のノルムは、セレクタ３３０を経由してレジスタ３３１に格納される。
【００９６】
この参照画像のノルム計算部３２０では、以上のようにして、参照画像のノルムが計算され、レジスタ３３１に格納される。
【００９７】
図２５〜図２８は、図１０に示す画像演算部１１１ａの、正規化・累積処理部３５０を中心とした部分の各モードにおける処理の流れを示すブロック図である。
【００９８】
図２５は、累積処理を行なわない場合の処理の流れを示す図である。尚、累積処理については後述する。
【００９９】
入力されてきた探索画像（探索画像を構成する各画素の画素値を表わすデータ）ｓｅｒは、シストリックアレイ３１０に入力されて、図１３〜図２３を参照して説明したような積和演算（ＳＡＤ相関演算のための、差分値の絶対値の加算値を求める場合もある）が行なわれる。図１３〜図２３の説明では、参照画像と探索画像との積和演算について説明したが、ここでは、先ず探索画像の各画素の画素値の二乗値の加算値を求める場合について説明する。
【０１００】
このときは、探査画像ｓｅｒは、図１２に示す演算エレメント３１１の、乗算器３１１４に直接に入力されるとともに、セレクタ３１１３により探索画像ｓｅｒが選択され、したがって探索画像ｓｅｒはセレクタ３１１３を経由しても乗算器３１１４にも入力され、乗算器３１１４では、探索画像の画素値の二乗値が求められる。すなわち、このシストリックアレイ３１０では探索画像の画素値の二乗値の、複数の画素にわたる加算値が求められる。この求められた加算値は、図２５に示すシフトアップ回路３５１を素通りし、さらに図９に示すセレクタ３５３，３５６,３５８を経由して、相関値メモリ制御部３９０に備えられた２つの相関値メモリのうちの一方の相関値メモリに格納される。
【０１０１】
ここで、本実施形態では、各画素の画素値は８ビットで表現されているが、図１１に示すシストックアレイの各演算エレメント内の乗算器３１１４は、８ビットと８ビットの乗算を行なう能力はなく、乗算器３１１４では、８ビットと２ビットの乗算が行なわれる。
【０１０２】
このため、このシストリックアレイ３１０では、先ずは、探索画像の画素値（８ビット）と、同一の画素値の下位２ビットとの間で積和演算（画素値どうしの積和演算の部分演算）が行なわれて相関値メモリに格納される。
【０１０３】
図２６は、２回目以降の部分演算を行なうときの正規化累積処理部３５０における処理の流れを示すブロック図である。
【０１０４】
２回目の部分演算では、シストリックアレイ３１０では、探索画像の画素値（８ビット）と、その画素値の、最下位２ビットの次の下位２ビットとの間で積和演算が行なわれ、シフトアップ回路３５１で上位側に２ビットシフトされ、シストリックアレイ３１０で今回求められて上位側に２ビットシフトされた部分演算結果と、前回計算しておいた、探索画像の画素値（８ビット）と画素値の下位２ビットとの部分演算結果が加算され、相関値メモリに再度格納される。
【０１０５】
３回目の部分演算では、シストリックアレイ３１０では、探索画像の画素値（８ビット）と、その画素値の、下位４ビットの次の２ビットとの間で積和演算が行なわれ、シフトアップ回路３５１で、今度は上位側に４ビットシフトされ、加算器３５２では、今回求められて４ビットシフトされた値と、前回（２回目の部分演算）で相関値メモリに格納された値との加算が行なわれ、その加算結果がもう一度相関値メモリに格納される。
【０１０６】
以上と同様の処理が繰り返され、最終回（４回目）の部分演算では、シストリックアレイ３１０において、探索画像の画素値（８ビット）と、その画素値の上位２ビットとの間で部分演算が行なわれ、シフトアップ回路３５１では今度は上位側に６ビットシフトされ、加算器３５２では、今回求められて６ビットシフトされた値と、前回の部分演算で相関値メモリに格納された値との加算が行なわれる。この最終回の部分演算における加算結果は、探索画像の画素値の二乗値の探索画像にわたる加算値となる。この加算値は、もう一度相関値メモリに格納される。
【０１０７】
このように複数回の部分演算に分けた演算を行なうように回路を構成すると、回路規模を縮小し、乗算器の遅延を小さくして、シストリックアレイの動作クロックを上げることができる。
【０１０８】
次に、シストリックアレイ３１０および正規化・累積処理部３５０では、参照画像と探索画像との間での積和演算が行なわれる。このときは、シストリックアレイ３１０の、図１２に示す演算エレメント３１１のセレクタ３１１３により、レジスタ３１１１に格納されている参照画像ｒｅｆが選択されることを除き、上記と同様である。すなわち、１回目の部分演算では、参照画像（８ビット）と、探索画像の下位２ビットとの間での積和演算が行なわれ、２回目の部分演算では、参照画像（８ビット）と、探索画像の、最下位２ビットの次の下位２ビットとの間での積和演算が行われて上位側に２ビットシフトされるとともに１回目の部分演算結果と加算され、その後も上記と同様な演算が繰り返され、最終回の部分演算により、参照画像と探索画像との間の積和演算が完成し、前述した（１）式の分子に相当する値が求められる。
【０１０９】
ただし、最終回の演算では、参照画像と探索画像との間の積和演算に続いて、さらに以下に説明する演算が行なわれる。この演算について図２７を参照して説明する。
【０１１０】
加算器３５２で得られた、参照画像と探索画像との間の積和演算結果は、図９に示すセレクタ３５３を経由して除算器３５５に入力される。また、相関値メモリに格納されている検索画像の画素値の二乗値の加算値がその相関値メモリから読み出され図９に示すセレクタ３２８を経由して平方根算出器３２９に入力され、その平方根、すなわち、探索画像のノルムが求められる。この平方根算出器３２９で求められた探索画像のノルムは、図９に示すセレクタ３２２を経由して乗算器３２３に入力される。また、この乗算器３２３には、レジスタ３３１（図９を合わせて参照）に格納しておいた参照画像のノルムが図９に示すセレクタ３２１を経由して入力され、この乗算器３２３では、入力された探索画像のノルムと参照画像のノルムとが乗算され、前述の（１）式の分母に相当する値が求められる。この乗算器３２３での乗算結果は、図９に示すセレクタ３５４を経由して除算器３５５に入力され、（１）式に相当する除算が行なわれて正規化相関値が求められる。
【０１１１】
このようにして求められた正規化相関値は、相関値メモリに格納されるとともに、ピーク検出器３８０にも入力される。ピーク検出器３８０では、正規化相関値のピーク位置が求められ、ここで求められたピーク位置へのベクトルが、図８に示す全体構成図中のＣＰＵ１１４に、探索画像上に現われた移動物体の動きベクトルとして伝えられる。
【０１１２】
また、この求められた正規化相関値を相関値メモリに格納しておくことにより、ピーク位置のみでなく詳細な分析を可能としている。
【０１１３】
次に、図９に示す画像演算部１１１ａで実行することのできる演算の他の態様について説明する。
【０１１４】
図２８は、画像に空間フィルタリングを施すときの正規化・累積処理部３５０（図１０参照）における処理を示すブロック図である。
【０１１５】
空間フィルタ演算子を参照画像として用いると、この相関画像演算器１１１を用いて、画像に空間フィルタリング処理を施すことができる。
【０１１６】
この空間フィルタリングを行なうときは、参照画像のノルムや探索画像のノルムの算出は不要であるが、定数で割り算を行なう必要を生じる場合がある。そこで、ここでは、ＣＰＵ１１４（図８参照）から定数値ｃｄｉｖを与えることができるよう構成されている。その定数値ｃｄｉｖは、図９に示すセレクタ３５４を経由して除算器３５５に入力され、定数値ｃｄｉｖによる除算が行なわれる。
【０１１７】
また、例えばソーベルフィルタのように絶対値を求める必要のある空間フィルタも存在する。そのために、ここでは絶対値演算器３５７（図９参照）も備えられている。
【０１１８】
さらに、図９に示す画像演算部１１１ａでは、これまでにも説明したように、前述した（２）式に示すようなＳＡＤ相関演算を行なうこともできる。ここで、シストリックアレイ３１０の、図１２に示す演算エレメント３１１内の減算器３１１８、絶対値演算器３１１９、および加算器３１１７等は８ビットどうしの値の差分値、絶対値、加算値を求めることができるものであり、したがってＳＡＤ相関演算を行なうときは、図２６等を参照して説明したような、部分演算の繰り返しを行なうことなく、１回の演算でＳＡＤ相関値を求めることができる。
【０１１９】
また、図９に示す画像演算部１１１ａに備えられたシストリックアレイは、図１１に示すように演算エレメントが８個×８個＝１６（個）並んだものであり、したがって参照画像としては基本サイズとして８画素×８画素＝６４画素の寸法のものが採用されるが、参照画像として、例えば１６画素×１６画素＝２５６画素のものを用いることもできる。このとき、参照画像ノルム計算部３２０では、２５６画素について画素値の二乗値の加算値が求められ平方根が計算されて参照画像のノルムが求められ、シストリックアレイ３１０および正規化・累積処理部３５０では、参照画像を８画素×８画素＝６４画素の部分領域に区切ったときの各部分領域を上述の演算における参照画像とする演算を、部分領域を変更しながら繰り返すことにより、１６画素×１６画素＝２５６画素の参照画像と探索画像との間の相関演算を行なうことができる。尚、参照画像として１６画素×１６画素＝２５６画素）の寸法のものを採用するときは、ＳＡＤ相関に関しても、各部分領域ごとに演算を行なう必要があり、したがって４回だけではあるが繰り返し演算を行なう必要がある。また、これと同様にして、８ｍ画素×８ｎ画素（ｍ，ｎは任意の正の整数）の領域について演算を行なうことができる。
【０１２０】
ここで、前掲の表１についてまとめて説明する。
【０１２１】
ｒｅｆ，ｓｅｒは、それぞれ参照画像データ、探索画像データである。これらについては、これまでにも説明してきたため、詳細説明は省略する。
【０１２２】
ｍｏｄｅは、演算のモードを指定する演算コマンドである。このｍｏｄｅが‘０’のときはＳＡＤ相関を行なうことが指示され、‘１’のときは積相関を行なうことが指示され、‘２’のときは積相関を行なうとともに正規化（（１）式の割り算）を行なうことが指示され、‘３’のときは、画像に空間フィルタリング処理を施すことが指示される。
【０１２３】
例えば１６画素×１６画素＝２５６画素の参照画像を用いる場合における、１〜３回目の８画素×８画素＝６４画素の部分参照画像を用いた演算においては、積相関の演算は行なわれるが、その時点では正規化は行なわれず、４回目の演算が全て終了した時点で正規化が行なわれることになる。したがってこのときにおける１〜３回目の演算ではｍｏｄｅ＝‘１’が指示され、４回目の演算ではｍｏｄｅ＝‘２’が指示されることになる。
【０１２４】
またｓｓｅｌは、探索画像のノルム演算の指定を行なう演算コマンドであり、ｓｓｅｌ＝‘０’は通常モード（参照画像ｒｅｆと探索画像ｓｅｒとの間の演算）が指示され、ｓｓｅｌ＝‘１’は探索画像のノルム演算のための演算（探索画像の画素値の二乗値の加算値を求める演算）が指示される。
【０１２５】
また、ｃｍｏｄｅは、除算器３５５における除算の分母選択を意味し、ｃｍｏｄｅ＝‘０’は、正規化処理（（１）式に示すような参照画像のノルムと探索画像のノルムとの乗算値を分母として割り算を行なう処理）が指示され、、ｃｍｏｄｅ＝‘１’は、図２８を参照して説明した、定数値ｃｄｉｖを分母として割り算を行なう処理が指示される。
【０１２６】
また、ｎｍｏｄｅは、除算器３５５による除算を行なうか、この除算をバイパスするかを指示する演算コマンドであり、このｎｍｏｄｅにより図９に示すセレクタ３５６が制御される。ｎｍｏｄｅ＝‘０’は除算なしを意味し、ｎｍｏｄｅ＝‘１’は除算を行なうことを意味する。
【０１２７】
また、ａｃｃｕｍは、相関値累積の指定を意味する。
【０１２８】
前述したように、シストリックアレイ３１０では、乗算は、画素値（８ビット）と画素値の一部分（２ビット）との間でしか行なうことができず、乗算を含む演算を完成させるには、部分演算を複数回繰り返して累積を行なう必要がある。このａｃｃｕｍは、この累積を行なうか否かを指定する演算コマンドである。ｎｍｏｄｅ＝‘０’は「累積なし」を意味し、８画素×８画素＝６４画素の参照画像を用いたＳＡＤ相関の演算、および、８ビットと２ビットとの乗算を含む部分演算のうちの１回目の部分演算においては、ａｃｃｕｍ＝‘０’が指定される。一方、乗算を含む部分演算のうちの２回目以降の部分演算のときはａｃｃｕｍ＝‘１’が指定される。
【０１２９】
また、ａｂｓ＿ｏｕｔは、図９に示す絶対値演算器３５７による絶対値演算を行なうかその絶対値演算器３５７をバイパスするかを定める演算コマンドであり、このａｂｓ＿ｏｕｔにより、図９に示すセレクタ３５８が制御される。ａｂｓ＿ｏｕｔ＝‘０’は絶対値演算器３５７の出力が選択され、ａｂｓ＿ｏｕｔ＝‘１’は絶対値演算器３５７をハイパスした経路が選択される。
【０１３０】
さらに、ｃｄｉｖは、定数値データであり、図９に示す除算器３５５における除算の分母として使用される。
【０１３１】
また、表１に示したデータや演算コマンド以外にも、図９に示すタイミングジェネレータ３７０に入力される演算コマンドが存在し、タイミングジェネレータ３７０は、入力された演算コマンドに応じたタイミングで、図９に示す複数のセレクタの切り換えを制御する。
【０１３２】
図２９は、図２４に示す参照画像ノルム計算部３２０に代えて採用することのできる参照画像ノルム計算部の構成を示すブロック図、図３０は、図２９に１つのブロックで示す第１の固定小数点化処理部３３２の機能説明図である。
【０１３３】
図２９に示す参照画像ノルム計算部の、図２４に示す参照画像ノルム計算部との相違点は、図２９に示す参照画像ノルム計算部に、第１の固定小数点化処理部３３２、シフト数レジスタ３３３、比較器３３４、およびレジスタ３３５が備えられている点である。
【０１３４】
第１の固定小数点化処理部３３２では、図３０に示す処理が行なわれる。すなわち、ここでは、データのビット幅は３２ビット（０ビット〜３１ビット）であり、それら３２ビットを８ビットずつ４つのブロックに分けたとき、最上位のブロック（３１〜２４ビット目）の値Ｂ０がＢ０≠０のときは、データシフトは行なわれずに小数点は０ビット目の端に位置したままであり、シフト数レジスタには、データシフトを行なわないことを意味するｓｈｉｆｔ＿ｉｄｘ＝０が格納される。
【０１３５】
最上位のブロックの値Ｂ０がＢ０＝０であって、次の位置のブロックの値Ｂ１がＢ０≠１のときは、データが上位側に８ビットシフトされ、それに伴って小数点の位置も８ビットシフトされ、シフト数レジスタには８ビットシフトされたことを示すｓｈｉｆｔ＿ｉｄｘ＝１が格納される。
【０１３６】
以下同様にして、Ｂ０＝０，Ｂ１＝０，かつＢ２≠０のときは、データが１６ビット上位側にシフトされ、シフト数レジスタには１６ビットシフトされたことを示すｓｈｉｆｔ＿ｉｄｘ＝２が格納する。Ｂ０＝Ｂ１＝Ｂ２＝０のときは、データが２４ビット上位側にシフトされ、シフト数レジスタには２４ビットシフトされたことを示すｓｈｉｆｔ＿ｉｄｘ＝３が格納される。
【０１３７】
ここで、上記のデータシフトは、データが小さい値のときであっても除算器３５５（図９参照）における除算を高精度に行なうためのものであるが、それでもなおデータの値が小さ過ぎて必要な精度の除算を行なうことができないと判定されるときは、その旨の警告が発せられる。すなわち、図２９に示すレジスタ３３５に、これ以上小さい値のデータの場合必要な精度の除算を行なうことができないとする限界値を格納しておき、比較器３３４では、レジスタ３２７に格納された参照画像の二乗値の加算値と、レジスタ３３５に格納されている限界値とが比較され、レジスタ３２７の値が限界値以下のときに警告が発せられる。この警告を発するにあたっては、具体的には、図示しないステータスレジスタにその警告用のフラグが立てられ、そのステータスレジスタの内容が図８に示すＣＰＵ１１４に伝えられることによりＣＰＵ１１４によりその警告が認識される。その警告をどう取り扱うかは、ＣＰＵ１１４で動作するプログラムに委ねられている。尚、図２９に示す参照画像ノルム計算部では、そのような警告を発したか否かにかかわらず参照画像のノルムの計算が継続される。
【０１３８】
図３１は、図２７に示す正規化・累積処理部に代えて採用することのできる正規化・累積処理部の構成を示すブロック図、図３２は、図３１に１つのブロックで示す第３の固定小数点化処理部３６１の機能説明図である。
【０１３９】
この図３１に示す正規化・累積処理部は、図２９に示す参照画像ノルム計算部と一緒に採用されるものであり、この図３１にに示す正規化・累積処理部と図２７に示す正規化・累積処理部との相違点は、図３１に示す正規化・累積処理部に、第２の固定小数点化処理部３５９と、シフト数レジスタ３６０と、第３の固定小数点化処理部３６１と、レジスタ３６３と、比較器３６２とが備えられている点である。尚、図３１に示すもう１つのシフト数レジスタ３３３は、図２９に示す参照画像ノルム計算部におけるシフト数レジスタ３３３そのものである。
【０１４０】
図２７を参照して説明したように、平方根算出部３２９には、探索画像の画素値の二乗値の加算値が入力されるが、図３１の構成では、その平方根算出部３２９の前段に第２の固定小数点化処理部３５９が設けられており、この第２の固定小数点化処理部３５９では、平方根算出部３２９に入力される前の、探索画像の画素値の二乗値の加算値に関し、図３０を参照して説明した処理方法と同一の処理方法に従ったデータシフトが行なわれる。
【０１４１】
その第２の固定小数点化処理部３５９におけるデータシフト量を表わすインデックスｓｈｉｆｔ＿ｉｄｘ＝０，１，２，３はシフト数レジスタ３６０に格納される。
【０１４２】
その後、これも図２７を参照して説明したように、何回かの部分演算の後の最終の部分演算により、加算器３５２から、参照画像と探索画像の対応する画素の画素値どうしの乗算値の加算値が出力されて除算器３５５に入力され、その除算器３５５では、前述の（１）式に相当する除算が行なわれるが、図３１の構成では、加算器３５２と除算器３５５との間に第３の固定小数点化処理部３６１が配置されており、この第３の固定小数点化処理部３６１では、加算器３５２の出力が、２つのシフト数レジスタ３３３，３６０に格納されたシフト数のインデックスに従ってシフトされる。これは、前述の（１）式の分子を、その分母のデータシフト量に見合ったシフト量だけシフトすることに相当する。
【０１４３】
すなわち、この第３の固定小数点化処理部３６１は、図３２に示すように、２つのシフト数レジスタ３３３，３６０いずれにもｓｈｉｆｔ＿ｉｄｘ＝０が格納されていたとき（これを（０，０）と書き表わす）は、データシフトを行なわずに除算器３５５に向けて出力し、（１，０）（この（１，０）は、シフト数レジスタ３３３にｓｈｉｆｔ＿ｉｄｘ＝１が格納され、シフト数レジスタ３６０にｓｈｉｆｔ＿ｉｄｘ＝０が格納されていることを表わす。以下も同様である。）又は（０，１）のときは、上位ビット側に４ビットシフトして出力し、（０，２），（１，１），（２，０）のいずれかのときは上位ビット側に８ビットシフトして出力し、以下同様にして、（３，３）のときは上位ビット側に２４ビットシフトして出力する。
【０１４４】
こうすることにより、除算器３５５では、除数あるいは被除数が小さな値であっても、高精度な除算が行なわれる。
【０１４５】
尚、図３１に示すレジスタ３６３及び比較器３６２は、図２９を参照して説明したレジスタ３３５および比較器３３４と同様、値が小さ過ぎるときに警告を発するためのものである。図２９を参照して説明済であるため、ここでの説明は省略する。
【０１４６】
図３３は、図８に示す構成のうちの、相関画像演算器１１１，キャッシュメモリ１１２，および画像メモリ１２０の部分を示した模式図である。
【０１４７】
この図３３には、相関画像演算器１１１の内部に、画像メモリ１２０と、画像演算部１１１ａおよびキャッシュメモリ１１２との間のデータ伝送を担うメモリインタフェース１１１ｂが示されている。
【０１４８】
外部のビデオエンコーダ／デコーダ（図８参照）から入力されてきた探索画像は、メモリインタフェース１１１ｂを経由して、一旦、画像メモリ１２０に格納される。ここで、画像メモリ１２０には、「バンク」と呼ばれる複数のフレームメモリが備えられており、入力されてきた画像は、メモリインタフェース１１１ｂにより、複数のバンクを循環的に用いて、各バンクに１フレームずつ格納される。このとき、複数のバンクのうちのどのバンクを使用するかはバンク信号により切り換えられる。こうすることにより、各バンク間でアドレス線とデータ線（ポート）を共有するように構成することができ、配線数や、集積回路として構成したときの端子数を節約することができる。
【０１４９】
図３４は、画像メモリ１２０へ画像が格納される様子を示した模式図である。
【０１５０】
入力されてきた画像のうちの最初のフレーム（フレーム１）はバンク＃０に格納され、次のフレーム（フレーム１）はバンク＃１に格納され、以下順に、フレーム３はバンク＃２、フレーム４はバンク＃３に格納され、次はバンク＃０に戻って、フレーム５はバンク＃０に、フレーム１に上書きされて格納され、フレーム６，７，８は順次にバンク＃１，＃２，＃３に、上書きにより格納される。ここで、バンク＃４，＃５は、上記のような循環的な格納にはなじまない参照画像等を格納しておくためのバンクである。
【０１５１】
このようにして、常に過去の複数のフレームの画像を確保しておくことで、速い動きの追跡には近いフレームどうしの間での相関演算を用い、動きの遅い物体の追跡には離れたフレームどうしの間での演算を用いることにより、画像上に動きの速い物体と動きの遅い物体との双方が混在している場合であっても、各物体をその各物体の動きに合わせて追跡することができる。
【０１５２】
図３５は、画像転送方法を示す模式図である。
【０１５３】
図３３，図３４を参照して説明したように外部から入力されてきた画像は一旦画像メモリ１２０に格納されるが、画像演算部１１１で演算を行なうに当たっては、今度はその画像メモリ１２０からそこに格納されている画像が読み出される。
【０１５４】
ここで、前述したように、シストリックアレイ３１０（図９，図１０等参照）では、画素値（８ビット）と画素値の一部のビット（２ビット）との間の部分演算が行なわれ、演算によってはこの部分演算を繰り返すことにより所要の演算を完結させることになるが、その場合、図３５（Ａ）に示すように、メモリインタフェース１１１ｂ（図３３参照）により画像メモリ１２０から読み出されてきた画像は、画像キャッシュメモリ１１２に格納され、それとともに初回の部分演算に必要なデータが画像演算部１１１ａに入力されて初回の部分演算が行なわれる。その後の２回目以降の部分演算については、図３５（Ｂ），（Ｃ）に示すように、メモリインタフェース１１１ｂにより、画像メモリ１２０からではなく、キャッシュメモリ１１２から必要なデータが読み出される。この画像キャッシュメモリ１１２は、画像演算部１１１ａからＣＰＵのバスを介さずに直接にアクセスすることができ、ＳＲＡＭなどの高速なメモリで構成しておくことにより、図３５に示すようなアクセス方式を採用することにより演算時間の短縮化が図られている。
【０１５５】
図３６は、図８に示す構成における、ＤＭＡコントローラ１１５による制御を介在させた、ＣＰＵ１１４（メモリ１３０を含む）と画像演算部１１１ａとの間の転送方法を示す模式図である。
【０１５６】
ＤＭＡコントローラ１１５は２チャネルの構成を有し、第１チャネル（ｃｈ１）は、ＣＰＵ側から画像演算部１１１ａ側への演算コマンド（演算に必要な定数等のデータを含む）の転送を担っており、第２チャネル（ｃｈ２）は画像演算部における演算結果の、ＣＰＵ側への転送を担っている。すなわち、ＤＭＡコントローラ１１５の第１チャネル（ｃｈ１）は、ＣＰＵ側のコマンドバッファ１３０ａに格納された演算コマンドを画像演算部１１１のＦＩＦＯ＃１（Ｆｉｒｓｔ−ｉｎ  Ｆｉｒｓｔ−ｏｕｔメモリ）に転送し、ＤＭＡコントローラ１１５の第２チャネル（ｃｈ２）は、画像演算部１１１のもう１つのＦＩＦＯ＃２に格納された演算結果をＣＰＵ側のデータバッファ１３０ｂに転送する。ここで、図１に示すように、演算コマンドの転送も演算結果の転送も共通のバス１１３を経由して行なわれるため、それら演算コマンドの転送と演算結果の転送は同時には行なわれず、第１のチャネルと第２のチャネルとの間でバス使用権を移しながら時分割的に行なわれる。
【０１５７】
また、図３６の画像演算部１１１ａのブロック内に模式的に示すように、画像演算部１１１ａでは、ＦＩＦＯ＃１に格納された演算コマンドを取り出して（Ｒｅａｄ）、その演算コマンドに従った演算を実行し（Ｅｘｅｃ）、その演算結果をＦＩＦＯ＃２に書き込み（Ｗｒｉｔｅ）、その後ＦＩＦＯ＃１から次の演算コマンドを読み出す、という動作が繰り返されるが、ＦＩＦＯ＃１が空（Ｅｍｐｔｙ）になると、次の演算を実行することができないためＦＩＦＯ＃１からの演算コマンドの読出し（Ｒｅａｄ）のステップで待機状態となり、またＦＩＦＯ＃２が満杯（Ｆｕｌｌ）になると、演算結果をＦＩＦＯ＃２に書き込むことができないため、ＦＩＦＯ＃２への演算結果の書込み（Ｗｒｉｔｅ）のステップで待機状態となる。
【０１５８】
図３７は、従来から行なわれている、ＤＭＡコントローラのチャネル間のバス権の移動方法（比較例）を示すタイミングチャートである。
【０１５９】
バス権の移動モードには、典型的には、ラウンドロビンモード（Ａ）と、一方のチャネル（ここでは第１のチャネルに優先権を与えるｃｈ１優先モード（Ｂ））とが存在する。
【０１６０】
ラウンドロビンモードは、図３７（Ａ）に示すように、一方のチャネルが所定のデータ数（１バースト長）のデータを転送するごとにもう一方のチャネルにバス使用権を渡すモードであり、一方のチャネルにおいて１バースト長のデータを転送するか、あるいはそのチャネルで転送すべきデータが無くなったタイミングでもう一方のチャネルにバス使用権が渡される。
【０１６１】
また、ｃｈ１優先モードは、図３７（Ｂ）に示すように、第１チャネル（ｃｈ１）が優先的にバスを使用する権利を有し、ｃｈ１で転送すべきデータが無くなったタイミングでｃｈ２にバス使用権が移る。
【０１６２】
ここで、ラウンドロビンモードあるいはｃｈ１優先モードのいずれにおいても、第１のチャネルにバス使用権があるときに、図３６に示す、演算結果が格納されるＦＩＦＯ＃２が満杯になったことを考える。
【０１６３】
このときには、画像演算部１１１ａではそれ以上演算を行なうことができないため待機状態となる。その状態のまま、第１チャネルが演算コマンドを更にＦＩＦＯ＃１に転送し続けるとやがてＦＩＦＯ＃１も満杯となり、それでもなお第１のチャネルはまだ１バースト長（ラウンドロビンモードの場合）あるいは全ての演算コマンド（ｃｈ１優先モードの場合）を送り終えていないときは第１チャネルは演算コマンドをさらに転送しようとし（ただしＦＩＦＯ＃１は満杯であるため転送できない）、このままではそれ以上一切転送を行なうことができないデッドロック状態となる。
【０１６４】
このデッドロックは、第２チャネルがバス使用権を持っているときにも生じ得る。
【０１６５】
すなわち、第２チャネルがＦＩＦＯ＃２から演算結果を取り出してＣＰＵ側に転送しているときにＦＩＦＯ＃１が空になると画像演算部１１１ａではそれ以上演算が行なわれず、やがてＦＩＦＯ＃２も空になり、デッドロックが生じる。
【０１６６】
そこで、本実施形態では、画像演算部１１１ａに、各ＦＩＦＯ＃１，＃２に対応して、各フラグレジスタＦＬＧ＃１，＃２が配備されている。ＦＩＦＯ＃１に対応して配備されたフラグレジスタＦＬＧ＃１には、ＦＩＦＯ＃１が空になったか否かを示すフラグが格納され、ＦＩＦＯ＃２に対応して配備されたフラグレジスタＦＬＧ＃２にはＦＩＦＯ＃２が満杯になったか否かを示すフラグが格納される。
【０１６７】
図３８は、本実施形態におけるバス使用権の移動方法を示すタイミングチャートである。
【０１６８】
図３８（Ａ）のラウンドロビンモードにおいては、１バースト長のデータ転送が終了した場合、およびそのチャネルで転送すべきデータが無くなった場合に加え、さらに、第１チャネル（ｃｈ１）が転送を行なっているときは、ＦＩＦＯ＃２に対応して備えられたフラグレジスタＦＬＧ＃２にＦＩＦＯ＃２が満杯となったことを示すフラグが立てられたタイミングで第２チャネル（ｃｈ２）にバス使用権が移され、第２チャネル（ｃｈ２）にバス使用権があるときには、ＦＩＦＯ＃１に対応して備えられたフラグレジスタＦＬＧ＃１にＦＩＦＯ＃１が空になったことを示すフラグが立てられたタイミングで、第１チャネル（ｃｈ１）にバス使用権が移される。
【０１６９】
図３８（Ｂ）のｃｈ１優先モードにおいても同様であり、バス使用権が第１チャネル（ｃｈ１）にあるときは、その第１チャネルで転送すべきデータを全て転送し終えたタイミングのほか、ＦＩＦＯ＃２が満杯になったタイミングで第２チャネル（ｃｈ２）にバス使用権が移り、第２チャネル（ｃｈ２）にバス使用権があるときにＦＩＦＯ＃１が空になったタイミングでバス使用権が第１チャネル（ｃｈ１）に移される。
【０１７０】
図３９は、図３８（Ａ）のラウンドロビンモードにおけるデータ転送方法を示すフローチャートである。
【０１７１】
まずは第１チャネル（ｃｈ１）にバス使用権が渡され（ステップａ１）、データ転送（演算コマンドの転送）が開始される（ステップａ２）。
【０１７２】
第１チャネル（ｃｈ１）によるデータ転送中において（ステップａ３）、ＦＩＦＯ＃２が満杯になるか（ステップａ４）、１バースト長の演算コマンドの転送が終了するか（ステップａ５）、あるいは第１チャネルで転送すべきデータがなくなると（ステップａ６）、バス使用権が第２チャネル（ｃｈ２）に移される（ステップａ７）。またこれと同様に、第２チャネル（ｃｈ２）がバス使用権をもってデータ転送（演算結果の転送）を行なっているときに（ステップａ３），ＦＩＦＯ＃１が空になるか（ステップａ８）、１バースト長のデータ転送が終了するか（ステップ９）、第２チャネルで転送すべきデータが無くなると（ステップａ１０）、バス使用権が第１チャネルに渡される（ステップａ１１）。
【０１７３】
第１チャネルおよび第２チャネルのいずれでもデータ転送が完了すると（ステップａ１２）このルーチンを抜け、未だ残っているときはステップａ３に戻る。
【０１７４】
図４０は、図３８（Ｂ）のｃｈ１優先モードにおけるデータ転送方法を示すフローチャートである。
【０１７５】
まずは第１チャネル（ｃｈ１）にバス使用権が渡され（ステップｂ１）、データ転送（演算コマンドの転送）が開始される（ステップｂ２）。
【０１７６】
第１チャネル（ｃｈ１）によるデータ転送中において（ステップｂ３）、ＦＩＦＯ＃２が満杯になるか（ステップｂ４）、あるいは第１チャネルで転送すべきデータがなくなると（ステップｂ５）、バス使用権が第２チャネル（ｃｈ２）に移される（ステップｂ６）。バス使用権が、第２チャネル（ｃｈ２）に移されてデータ転送（演算結果の転送）を行なっているときに（ステップｂ３）、ＦＩＦＯ＃１が空になるか（ステップｂ７）、第２チャネルで転送すべきデータが無くなると（ステップｂ８）、バス使用権が第１チャネルに戻される（ステップｂ９）。
【０１７７】
第１チャネルおよび第２チャネルのいずれでもデータ転送が完了すると（ステップｂ１０）このルーチンを抜け、未だ残っているときはステップｂ３に戻る。
【０１７８】
このように、本実施形態では、図３９に示すラウンドロビンモードにおいても、あるいは図４０に示すｃｈ１優先モードにおいても、バス使用権が第１ｃチャネルにあるときにＦＩＦＯ＃２が満杯になると第２チャネルにバス使用権を渡し、第２チャネルにバス使用権があるときにＦＩＦＯ＃１が空になると第１チャネルにバス使用権を渡すようにしたため、上述のデッドロックを回避し、データの円滑な転送が行なわれる。
【０１７９】
【発明の効果】
以上説明したように、本発明によれば、回路規模が小さくかつ高精度の正規化相関を行なうことのできる画像演算装置が実現し、前述した、非接触での動きベクトルの可視化、スポーツ中継でのカメラ制御、移動ロボットの制御等、様々な分野に大きく貢献することができる。
【図面の簡単な説明】
【図１】相関演算による動き追跡処理の原理説明図である。
【図２】参照画像の画素区分を表わした図である。
【図３】参照画像上のパターンの一例を示した図である。
【図４】探索画像の画素区分を表わした図である。
【図５】探索画像上のパターンの一例を示した図である。
【図６】参照画像と探索画像との間の相関演算処理の説明図である。
【図７】相関値の分布を示した模式図である。
【図８】本発明の一実施形態としての画像演算装置の概略構成図である。
【図９】図８に１つのブロックで示す相関画像演算器の一部である画像演算部１１１ａ内部構成を示す回路ブロック図である。
【図１０】図９に示す画像演算部の概略を示すブロック図である。
【図１１】図９，図１０に１つのブロックで示すシストリックアレイの内部構成図である。
【図１２】シストリックアレイ内に配列された演算エレメントの１つを示す図である。
【図１３】参照画像（Ａ）、探索画像（Ｂ）、および相関演算結果（Ｃ）を模式的に示した図である。
【図１４】４つの演算エレメントを持つシストリックアレイの構成図である。
【図１５】シストリックアレイの各要素における演算結果あるいは格納データを時間経過にしたがって示した図である。
【図１６】シストリックアレイの各要素における演算結果あるいは格納データを時間経過にしたがって示した図である。
【図１７】シストリックアレイの各要素における演算結果あるいは格納データを時間経過にしたがって示した図である。
【図１８】シストリックアレイの各要素における演算結果あるいは格納データを時間経過にしたがって示した図である。
【図１９】シストリックアレイの各要素における演算結果あるいは格納データを時間経過にしたがって示した図である。
【図２０】シストリックアレイの各要素における演算結果あるいは格納データを時間経過にしたがって示した図である。
【図２１】シストリックアレイの各要素における演算結果あるいは格納データを時間経過にしたがって示した図である。
【図２２】シストリックアレイの各要素における演算結果あるいは格納データを時間経過にしたがって示した図である。
【図２３】シストリックアレイの各要素における演算結果あるいは格納データを時間経過にしたがって示した図である。
【図２４】参照画像ノルム計算部の概略構成を示すブロック図である。
【図２５】画像演算部の、正規化・累積処理部を中心とした部分の処理の流れを示すブロック図である。
【図２６】画像演算部の、正規化・累積処理部を中心とした部分の処理の流れを示すブロック図である。
【図２７】画像演算部の、正規化・累積処理部を中心とした部分の処理の流れを示すブロック図である。
【図２８】画像演算部の、正規化・累積処理部を中心とした部分の処理の流れを示すブロック図である。
【図２９】図２４に示す参照画像ノルム計算部に代えて採用することのできる参照画像ノルム計算部の構成を示すブロック図である。
【図３０】第１の固定小数点化処理部の機能説明図である。
【図３１】図２７に示す正規化・累積処理部に代えて採用することのできる正規化・累積処理部の構成を示すブロック図である。
【図３２】第３の固定小数点化処理部の機能説明図である。
【図３３】図８に示す構成のうちの、相関画像演算器１１１，キャッシュメモリ１１２，および画像メモリ１２０の部分を示した模式図である。
【図３４】画像メモリへ画像が格納される様子を示した模式図である。
【図３５】画像転送方法を示す模式図である。
【図３６】図８に示す構成における、ＤＭＡコントローラによる制御を介在させた、ＣＰＵと画像演算部との間の転送方法を示す模式図である。
【図３７】従来から行なわれている、ＤＭＡコントローラのチャネル間のバス権の移動方法（比較例）を示すタイミングチャートである。
【図３８】本実施形態におけるバス使用権の移動方法を示すタイミングチャートである。
【図３９】ラウンドロビンモードにおけるデータ転送方法を示すフローチャートである。
【図４０】ｃｈ１優先モードにおけるデータ転送方法を示すフローチャートである。
【符号の説明】
１１    撮像センサ
１２    Ａ／Ｄ変換器
１３    探索画像メモリ
１４    参照画像メモリ
１５    アドレス発生器
１６    相関演算器
１７    相関値ピーク位置検出器
１００    画像演算装置
１１０    ＬＳＩ
１１１    相関画像演算器
１１１ａ    画像演算部
１１１ｂ    メモリインタフェース
１１２    キャッシュメモリ
１１３    バス
１１４    ＣＰＵ
１１４ａ    プログラム用メモリインタフェース
１１５    ＤＭＡコントローラ
１１６    割込制御部
１１７    タイマ
１１８    Ｉ／Ｏ
１１９    バスインタフェースユニット
１２０    画像メモリ
１３０    メモリ
２００    外部バス
３１０    シストリックアレイ
３１１    演算エレメント
３２０    参照画像ノルム計算部
３２１，３２２，３２６，３２８，３３０    セレクタ
３２３    乗算器
３２４    加算器
３２５    固定値発生回路
３２７    レジスタ
３２９    平方根算出器
３３１    レジスタ
３３２    第１の固定小数点化処理部
３３３    シフト数レジスタ
３３４    比較器
３３５    レジスタ
３５０    正規化・累積処理部
３５１    シフトアップ回路
３５２    加算器
３５３，３５４，３５６，３５８    セレクタ
３５５    除算器
３５７    絶対値演算器
３５８    セレクタ
３５９    第２の固定小数点化処理部
３６０    シフト数レジスタ
３６１    第３の固定小数点化処理部
３６２    比較器
３６３    レジスタ
３７０    タイミングジェネレータ
３８０    ピーク検出部
３９０    相関値メモリ制御部
３９１，３９２    相関値メモリ
３１１１，３１１２    レジスタ
３１１３，３１１５    セレクタ
３１１４    乗算器
３１１６    レジスタ
３１１７    加算器
３１１８    減算器
３１１９    絶対値演算器
【図１】
0003874985.tif 000007
【図２】
0003874985.tif 000008
【図３】
0003874985.tif 000009
【図４】
0003874985.tif 000010
【図５】
0003874985.tif 000011
【図６】
0003874985.tif 000012
【図７】
0003874985.tif 000013
【図８】
0003874985.tif 000014
【図９】
0003874985.tif 000015
【図１０】
0003874985.tif 000016
【図１１】
0003874985.tif 000017
【図１２】
0003874985.tif 000018
【図１３】
0003874985.tif 000019
【図１４】
0003874985.tif 000020
【図１５】
0003874985.tif 000021
【図１６】
0003874985.tif 000022
【図１７】
0003874985.tif 000023
【図１８】
0003874985.tif 000024
【図１９】
0003874985.tif 000025
【図２０】
0003874985.tif 000026
【図２１】
0003874985.tif 000027
【図２２】
0003874985.tif 000028
【図２３】
0003874985.tif 000029
【図２４】
0003874985.tif 000030
【図２５】
0003874985.tif 000031
【図２６】
0003874985.tif 000032
【図２７】
0003874985.tif 000033
【図２８】
0003874985.tif 000034
【図２９】
0003874985.tif 000035
【図３０】
0003874985.tif 000036
【図３１】
0003874985.tif 000037
【図３２】
0003874985.tif 000038
【図３３】
0003874985.tif 000039
【図３４】
0003874985.tif 000040
【図３５】
0003874985.tif 000041
【図３６】
0003874985.tif 000042
【図３７】
0003874985.tif 000043
【図３８】
0003874985.tif 000044
【図３９】
0003874985.tif 000045
【図４０】
0003874985.tif 000046