(57)【要約】【課題】  テクスチャサイズの設定又はウインドウの位置に自由度が求められた場合において、テクスチャとウインドウの相関関係を求める計算に対して、効率的な並列処理が可能な構成を有する画像処理装置を提供することを目的とする。【解決手段】  探索したい画像の第１画像ピクセル値と、部分画像の第２画像ピクセル値とを演算する機能を有するＮ個（Ｎは正の整数）の演算回路と、Ｍ個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンであって、探索したい画像を矩形パタンによって分割したときの分割数が最小となるような矩形パタンを選択する矩形パタン選択回路と、Ｎ個の演算回路の内、Ｍ個の演算回路を活性化するとともに、Ｍ個の演算回路によって演算が行われるＭ個の第１画像ピクセル値及びＭ個の第２ピクセル値を特定する制御回路と、Ｍ個分の演算回路によって得られた演算結果を積算する積算器と、を備える相関処理装置を提供する。 【選択図】    図１
2010123083.tif 000002
【特許請求の範囲】
【請求項１】
探索する画像と探索対象画像内の部分画像との相関値を求める相関処理装置であって、
前記探索する画像の第１画像ピクセルの第１画像ピクセル値と、前記部分画像の第２画像ピクセルの第２画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路と、
Ｍ個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンであって、前記探索する画像を前記矩形パタンによって分割したときの分割数が最小となるような矩形パタンを選択する矩形パタン選択回路と、
前記Ｎ個の演算回路の内、前記Ｍ個の前記演算回路を活性化するとともに、前記Ｍ個の前記演算回路によって演算が行われる前記Ｍ個の前記第１画像ピクセル値及び前記Ｍ個の前記第２ピクセル値を特定する制御回路と、
前記Ｍ個分の前記演算回路によって得られた演算結果を積算する積算器と、を備える相関処理装置。
【請求項２】
前記探索する画像のサイズ情報を保持するレジスタをさらに備え、
前記矩形パタン選択回路は、前記サイズ情報を用いて、前記探索する画像を前記矩形パタンによって分割したときの分割数を求めることを特徴とする請求項１記載の相関処理装置。
【請求項３】
前記部分画像の位置情報を保持するレジスタをさらに備え、
前記制御回路は、前記位置情報に基づいて、前記Ｍ個の前記第２ピクセル値を特定することを特徴とする請求項１記載の相関処理装置。
【請求項４】
前記探索した画像に対する前記第１画像ピクセル値を記憶する第１メモリと、
前記探索対象画像を構成する第３画像ピクセル値を記憶する第２メモリと、をさらに備え、
前記制御回路は、前記位置情報に基づいて、前記第３画像ピクセル値の内から、前記Ｍ個の前記第２ピクセル値を特定することを特徴する請求項３記載の相関処理装置。
【請求項５】
前記演算回路は、レジスタ、乗算器、又は、引き算器のいずれかであることを特徴とする請求項１乃至請求項４の内の一つに記載された相関処理装置。
【請求項６】
探索する画像と探索対象画像内の部分画像との相関値を求める相関処理装置であって、
前記探索する画像の第１画像ピクセルの第１画像ピクセル値を記憶する第１メモリと、
前記探索対象画像の第２画像ピクセルの第２画像ピクセル値を記憶する第２メモリと、
前記第１画像ピクセル値と、前記探索対象画像内の前記部分画像を構成する前記第２画像ピクセルの前記第２画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路と、
Ｍ個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンであって、前記探索する画像を前記矩形パタンによって分割したときの分割数と、前記第１メモリから前記第１画像ピクセル値を読み出す速さ又は前記第２メモリから前記第２画像ピクセル値を読み出す速さに応じた重みと、を乗算した値が最小となるような矩形パタンを選択する矩形パタン選択回路と、
前記Ｎ個の演算回路の内、前記Ｍ個の前記演算回路を活性化するとともに、前記Ｍ個の前記演算回路によって演算が行われる前記Ｍ個の前記第１画像ピクセル値及び前記Ｍ個の前記第２ピクセル値を特定する制御回路と、
前記Ｍ個分の前記演算回路によって得られた演算結果を積算する積算器と、を備える相関処理装置。
【請求項７】
探索する画像と探索対象画像内の部分画像との相関値を求める相関処理装置であって、
前記探索する画像の第１画像ピクセルの第１画像ピクセル値と、前記部分画像の第２画像ピクセルの第２画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路と、
前記探索する画像のサイズと、前記探索する画像のサイズに応じて選択すべき、Ｋ行Ｌ列からなるＭ個（Ｋ、Ｌは正の整数であり、ＭはＮより小さい正の整数）の構成要素を有する矩形パタンとが記載されている選択表を有し、前記選択表に応じて前記矩形パタンを選択する矩形パタン選択回路と、
前記Ｎ個の演算回路の内、前記Ｍ個の前記演算回路を活性化するとともに、前記Ｍ個の前記演算回路によって演算が行われる前記Ｍ個の前記第１画像ピクセル値及び前記Ｍ個の前記第２ピクセル値を特定する制御回路と、
前記Ｍ個分の前記演算回路によって得られた演算結果を積算する積算器と、を備える相関処理装置。
【請求項８】
探索する画像と探索対象画像内の部分画像との相関値を求める相関処理装置であって、
前記探索する画像の第１画像ピクセルの第１画像ピクセル値と、前記部分画像の第２画像ピクセルの第２画像ピクセル値とを演算する機能を有するＮ個（Ｎは正の整数）の演算回路からなる、並列演算器と、
Ｍ個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンであって、前記探索したい画像を前記矩形パタンによって分割したときに分割数が最小となるような矩形パタンを選択する矩形パタン選択回路と、
複数のウインドウ位置情報を受け、各前記ウインドウ位置情報に対応して、前記並列演算器において、前記Ｎ個の演算回路の内、前記Ｍ個分の前記演算回路を活性化するとともに、前記Ｍ個の前記演算回路によって演算が行われる前記Ｍ個の前記第１画像ピクセル値及び前記Ｍ個の前記第２ピクセル値を特定する制御回路と、
前記並列演算器において、前記Ｍ個分の前記演算回路によって得られた演算結果を、積算する積算器と、を備える相関処理装置。
【請求項９】
探索する画像と探索対象画像内の部分画像との相関値を求める相関処理装置であって、
前記探索する画像の第１画像ピクセルの第１画像ピクセル値と、前記部分画像の第２画像ピクセルの第２画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路と、
Ｍ個（ＭはＮより小さい正の整数）の構成要素を有する第１の矩形パタンであって、前記探索する画像を前記第１の矩形パタンによって分割したときに分割数が最小となるような第１の矩形パタンを選択し、選択した前記第１の矩形パタンの情報を出力する矩形パタン選択回路と、
Ｔ個（ＴはＮより小さい正の整数）の構成要素を有する第２の矩形パタンの情報、及び、前記第１の矩形パタンの情報を受け、前記第１の矩形パタンの情報又は前記第２の矩形パタンの情報の内、どちらかを一方の情報を出力する選択モード切替回路と、
前記選択モード切替回路から、前記第１の矩形パタンの情報又は前記第２の矩形パタンの情報の内、どちらかを一方の前記情報に基づいて、前記Ｎ個の演算回路の内、前記Ｍ個又は前記Ｔ個の前記演算回路を活性化する制御回路と、
前記Ｍ個分の前記演算回路又は前記Ｔ個分の前記演算回路によって得られた演算結果を積算する積算器と、を備える相関処理装置。
【請求項１０】
相関処理装置に探索する画像と探索対象画像内の部分画像との相関値を求めさせるためのプログラムを格納し、相関処理装置で読みとり可能な媒体は、
前記相関処理装置の矩形パタン選択回路に、Ｍ個の構成要素を有する矩形パタンであって、前記探索する画像を前記矩形パタンによって分割したときに分割数が最小となるような前記矩形パタンを選択させる命令コードと、
前記相関処理装置の制御回路に、前記相関処理装置内にあって、前記探索する画像を構成する第１画像ピクセルの第１画像ピクセル値と、前記部分画像の第２画像ピクセルの第２画像ピクセル値とを演算させる、Ｎ個（ＮはＭより大きい正の整数）の演算回路の内、前記Ｍ個分の前記演算回路を活性化させる命令コードと、
前記相関処理装置の前記Ｍ個の演算回路に、演算を行わせる命令コードと、
前記相関処理装置の積算器に、前記Ｍ個分の前記演算回路によって得られた演算結果を積算させる命令コードと、を備える相関処理装置で読みとり可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像同士の相関関係を求める相関処理装置及びその相関処理装置で読みとり可能な媒体に関する。
【背景技術】
【０００２】
画像同士の相関関係を求める処理を行うにあたって、相関処理装置は対応する画像ピクセルの正規化相関値又はＳＡＤ（Sum of the Absolute Differences）値を計算し、その値から相関関係を求めている。
【０００３】
ここで、正規化相関値又はＳＡＤ値を計算するには、複数の画像について、計算を行う必要があり、その計算にともなう計算量が非常に多くなる。
【０００４】
そこで、正規化相関値又はＳＡＤ値の計算を高速に行うため、複数のウインドウについて同時に正規化相関値を計算する並列処理が取り入れられている（特許文献１参照。）。
【０００５】
さらに、テクスチャと一つのウインドウに対して、正規化相関値の計算をする際に、テクスチャ及びウインドウを分割して、その分割領域についての正規化相関値計算を並列して行うという並列処理も提案されている（特許文献２参照。）。
【特許文献１】特開平１０−１３４１８３号公報
【特許文献２】特開２００８−８４０３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、テクスチャサイズの設定又はウインドウの位置に自由度が求められた場合において、テクスチャとウインドウの相関関係を求める計算に対して、１つのウインドウ内のピクセルを並列処理の対象とする方法における効率的な並列処理が可能な構成を有する画像処理装置を提供することである。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、探索する画像と探索対象画像内の部分画像との相関値を求める相関処理装置であって、探索する画像の第１画像ピクセルの第１画像ピクセル値と、部分画像の第２画像ピクセルの第２画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路と、Ｍ個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンであって、探索する画像を矩形パタンによって分割したときの分割数が最小となるような矩形パタンを選択する矩形パタン選択回路と、Ｎ個の演算回路の内、Ｍ個の前記演算回路を活性化するとともに、Ｍ個の演算回路によって演算が行われるＭ個の第１画像ピクセル値及びＭ個の前記第２ピクセル値を特定する制御回路と、Ｍ個分の演算回路によって得られた演算結果を積算する積算器と、を備える相関処理装置を提供する。
【発明の効果】
【０００８】
本発明によれば、テクスチャサイズの設定又はウインドウの位置に自由度が求められた場合において、テクスチャとウインドウの相関関係を求める計算に対して、効率的な並列処理が可能な構成を有する画像処理装置を提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施例１、実施例２、実施例３、実施例４、実施例５、及び、実施例６について説明する
【実施例１】
【００１０】
正規化相関値又はＳＡＤ値を計算する場合に、計算量が多くなる理由は以下である。まず、探索対象画像内において、探索したい画像（テクスチャと呼ぶ）と相関関係が高い探索対象画像内の部分矩形（ウインドウと呼ぶ）を見つける場合、ウインドウ位置をずらしながら、複数のウインドウについて、テクスチャとウインドウとの間で正規化相関値又はＳＡＤ値を計算する必要がある。さらに、ひとつのテクスチャ又はウインドウは複数の画像ピクセルから構成されており、正規化相関値又はＳＡＤ値の計算を行うときに、複数のウインドウ及びテクスチャに関する複数の画像ピクセルを処理する必要があり、膨大なデータに対する計算が必要となるからである。そこで、正規化相関値又はＳＡＤ値の計算には、高速化のため、並列処理が取り入れられている。  並列処理する場合の並列化する対象として、上記のようにウインドウを並列処理の対象にする方法のほかに、１つのウインドウ内のピクセルを並列処理の対象とする方法も考えられる。前者は処理する複数のウインドウ位置が一定の規則的な法則に基づいている場合はメモリアクセスの効率上有効であるが、複数のウインドウ位置が無秩序な場合は並列にアクセスするメモリアドレスに規則性がなく並列処理が困難となると考えられる。後者はこのようなウインドウ位置が無秩序な場合においてもメモリアクセスの規則性をある程度保持することができ、並列処理を維持できると考えられる。
【００１１】
図１は、実施例に関わる正規化相関処理装置１０の構成を説明する図である。図１には、正規化相関処理装置１０を含むシステム全体が図示されており、正規化相関処理装置１０、ＣＰＵ５０、メインメモリ６０、及び、バス７０が示されている。
ＣＰＵ５０はシステム内の正規化相関処理装置１０又はメインメモリ６０の制御を行う制御装置である。
メインメモリ６０はシステム内のデータを一時格納しておく記憶装置である。従って、メインメモリ６０はＣＰＵ５０と正規化相関処理装置１０との間で扱われるデータを一時格納しておき、ＣＰＵ５０又は正規化相関処理装置１０の要求をうけて、データの入出力を行う。
バス７０は、正規化相関処理装置１０、メインメモリ６０、ＣＰＵ５０間を接続するデータバス（データ信号を伝送のための信号線の束）及び制御命令を伝達するバス（命令信号を伝送するための信号線の束）から構成されている。
正規化相関処理装置１０は、内部バス１５、設定レジスタ群２０、制御部３０、及び、演算処理装置４０（データパス）から構成されている。
【００１２】
内部バス１５は、バス７０からの入力データ、又は、バス７０への出力データの伝送を行うデータバス及び制御部３０に対する制御命令を伝達するバスである。
【００１３】
設定レジスタ群２０は、ＣＰＵ５０からバス７０、内部バス１５を介して送られてきた、ウインドウ位置情報（ｉＸ、ｉＹ）又はテクスチャサイズ情報（ｔｈ、ｔｗ）を格納するレジスタを含むレジスタ群である。なお、設定レジスタ群２０は、その他の設定値、例えば、演算処理に必要な初期値を格納するレジスタを含んでいてもよい。なお、ウインドウとは、入力画像（探索対象画像）内の部分矩形をいい、行列状に配置された複数の画像ピクセルから構成されている（以下、ウインドウを構成する画像ピクセルをウインドウ画像ピクセルという）。テクスチャとは、探索したい画像であって矩形のものをいい、行列状に配置された複数の画像ピクセルから構成されている（以下、テクスチャを構成する画像ピクセルをテクスチャ画像ピクセルという）。そして、画像ピクセルとは、色調を示すＲＧＢ値と色の透明度に対応する色を表示する画素をいう。ただし、この実施例では、簡単のために、白黒階調をあらわす一次元の値に対応して、白黒を表示する画素をいう。また、画像ピクセル値は一般的には、色調を示すＲＧＢ値、及び、不透明度を表す値をいうが、ここでは、簡単のために白黒階調を表す一次元の値であるとする。
そして、ウインドウ位置情報（ｉＸ、ｉＹ）とは、ウインドウ内の左上端画像ピクセルが入力画像（探索対象画像）内の画像ピクセルの内、ｉＸ行、ｉＹ列の画像ピクセルと一致していることを示す情報である。
また、テクスチャサイズ情報（ｔｈ、ｔｗ）は、テクスチャ画像が、ｔｈ行、ｔｗ列から構成されていることを示す情報である。
【００１４】
図２は、制御部３０、演算処理装置４０（データパス）について説明する図である。
制御部３０は矩形パタン選択回路３１、演算処理制御回路３２（データパス制御回路）、及び、それらの制御回路３３から構成されている。
演算処理装置４０（データパス）はテクスチャメモリ４１、入力画像メモリ４２、Ｎ画素並列処理演算器４３、それらの制御回路４４から構成されている。
【００１５】
矩形パタン選択回路３１は、複数の矩形パタン情報を有している。ここで、矩形パタンとは、行列状に配置された複数の構成要素の配列パタンをいう。そして、矩形パタン情報とは、その矩形パタンが何行、何列なのかを表す情報である。例えば、2行、4列目の矩形パタンであれば（2, 4）と表す。そして、このような矩形パタン情報を複数（M個）持つとして、各矩形パタンの集合として次のように表す。{（ph[0],pw[0]）,（ph[1],pw[1]）,（ph[2],pw[2]）,（ph[3],pw[3]）, ... , (ph[j], pw[j]), ... ,(ph[M-1],pw[M-1])}。ここに、(ph[j], pw[j])は矩形パタン情報であり、添え字のjは複数(M個)の矩形パタンにつけられた番号を示し、0<=j<Mである。その結果、上記の矩形パタンは、ph[j]行pw[j]列（ph[j]、pw[j]は正の整数）であって、ph[j]×pw[j]個の構成要素から構成されていることがわかる。なお、図３で説明するように、ph[j]×pw[j]は、Ｎ画素並列処理演算器４３が有する乗算器の数Ｎより小さい又は等しい、正の整数である。例えば、Ｎが９である場合に、ph[j]が４、pw[j]が２である。また、Ｎが９である場合に、ph[j]が３、pw[j]が２であってもよい。
そこで、矩形パタン選択回路３１は、テクスチャサイズ情報（ｔｈ，ｔｗ）が与えられると、保有する矩形パタンの内、テクスチャをその矩形パタンで覆い尽くすのに必要な繰り返し数が最小となる、矩形パタンを選択する。すなわち、矩形パタン選択回路は、テクスチャを矩形パタンによって切れ目なく分割したときに、分割数が最小となるような矩形パタンを選択する回路である。そして、矩形パタン選択回路３１は、演算処理制御回路（データパス制御回路）３２へ、選択した矩形パタンの矩形パタン情報を出力する。矩形パタン選択回路３１の選択動作の詳細については、図４を用いて、後に説明する。
【００１６】
演算処理制御回路（データパス制御回路）３２は、演算処理装置４０で行う演算処理を制御する回路である。演算処理制御回路（データパス制御回路）３２はさらに、１ウインドウ処理制御回路３４を有する。そこで、まず、演算処理制御回路（データパス制御回路）３２は、選択された矩形パタンの矩形パタン情報に基づいて、１ウインドウ処理制御回路３４を動作させ、一つのウインドウ内において、演算処理を行うように、演算処理装置４０の制御を行う。次いで、ＣＰＵ５０よりウインドウ位置情報（ｉｘ、ｉｙ）を受け取り、それらの情報に基づいて、次のウインドウについて演算処理を行うように、演算処理装置４０の制御を行う。演算処理制御回路（データパス制御回路）３２の制御動作の詳細については、図６を用いて、後に説明する。
制御回路３３は、矩形パタン選択回路３１及び演算処理制御回路（データパス制御回路）３２の動作開始時期や情報データの受け渡しを制御する回路である。
【００１７】
テクスチャメモリ４１は、バス７０、内部バス１５を介して、ＣＰＵ５０から伝送されてくるテクスチャ画像ピクセル値を記憶する回路である。
入力画像メモリ４２は、バス７０、内部バス１５を介して、ＣＰＵ５０から伝送されてくる入力画像（探索対象画像）に関する画像ピクセル値を記憶する回路である。
Ｎ画素並列処理演算器４３は、複数の乗算器、加算器、及び、積算レジスタとから構成されている演算器である。ただし、複数の乗算器、加算器、積算レジスタを一組とした場合に、それらが、複数組あってもよい。なお、Ｎ画素並列処理演算器４３の詳細については、図３を用いて説明する。
制御回路４４は演算処理制御回路（データパス制御回路）３２からの制御を受け、テクスチャメモリ４１、入力画像メモリ４２に対するデータの入出力、及び、Ｎ画素並列処理演算器４３から出力される出力データの内部バス１５への出力を制御する回路である。
【００１８】
図３は、Ｎ画素並列処理演算器４３について詳細を説明する図である。図３において、テクスチャメモリ４１内に記憶されているテクスチャ、入力画像メモリ４２内に記憶されている入力画像（探索対象画像）、ウインドウの位置、及び、Ｎ画素並列処理演算器４３を構成する回路が示されている。
Ｎ画素並列処理装置４３は、正規化相関値をもとめる場合は、Σｙ演算部４３ａ、Σｙ＊ｙ演算部４３ｂ、ΣＸ＊Ｙ演算部４３ｃを有する。なお、Ｎ画素並列処理装置４３は、ＳＡＤ値をもとめる場合は、Σ|x-y|演算部４３ｄを有する。
【００１９】
Σｙ演算部４３ａは、ウインドウに関連づけた矩形パタン内のウインドウ画素ピクセル値（ｙ）を矩形パタン内のすべての画素ピクセルについて足し合わせる（Σｙ）という計算をする演算部であり、矩形パタン内の画素ピクセルの数ph×pwに対応し、ph×pw以上のＮ個のレジスタと、加算器と、加算結果を記憶するレジスタとを備える。すなわち、Σｙ演算部４３ａのレジスタの構成は、選択した矩形パタンに応じて、組み換えが可能（コンフィギュアラブル）である。
Σｙ＊ｙ演算部４３ｂは、ウインドウに関連づけた矩形パタン内のウインドウ画素ピクセル値（ｙ）を矩形パタン内のすべての画素ピクセルについて、２乗して足し合わせる（Σｙ＊ｙ）いう計算をする演算部であり、矩形パタン内の画素ピクセルの数ph×pwに対応し、ph×pw以上のＮ個の２乗演算器と、加算器と、加算結果を記憶するレジスタとを備える。すなわち、Σｙ＊ｙ演算部４３ｂの２乗演算器の構成は、選択した矩形パタンに応じて、組み換えが可能（コンフィギュアラブル）である。
ΣＸ＊Ｙ演算部４３ｃは、テクスチャに関連づけた矩形パタン内のテクスチャ画素ピクセル値（ｘ）と、ウインドウに関連づけた矩形パタン内のウインドウ画素ピクセル値（ｙ）を掛け合わせた結果（ｘ＊ｙ）を、矩形パタン内のすべての画素ピクセルについて足し合わせる（ΣＸ＊Ｙ）という計算をする演算部であり、矩形パタン内の画素ピクセルの数ph×pwに対応し、ph×pw以上のＮ個の乗算器と、加算器と、加算結果を記憶するレジスタとを備える。すなわち、ΣＸ＊Ｙ演算部４３ｃの乗算器の構成は、選択した矩形パタンに応じて、組み換えが可能（コンフィギュアラブル）である。
【００２０】
Σ|x-y|演算部４３ｄは、テクスチャに関連づけた矩形パタン内のテクスチャ画素ピクセル値（ｘ）から、ウインドウに関連づけた矩形パタン内のウインドウ画素ピクセル値（ｙ）引いた結果の絶対値（|x-y|）を、矩形パタン内のすべての画素ピクセルについて足し合わせる（Σ|x-y|）という計算をする演算部であり、矩形パタン内の画素ピクセルの数ph×pwに対応し、ph×pw以上のＮ個の引き算器と、加算器と、加算結果を記憶するレジスタとを備える。すなわち、Σ|x-y|演算部４３ｄの引き算器の構成は、選択した矩形パタンに応じて、組み換えが可能（コンフィギュアラブル）である。
【００２１】
図３において、テクスチャは例えば、６行７列の画素ピクセルから構成されている。また、ウインドウも、６行７列の画素ピクセルから構成されている。そして、矩形パタン選択回路３１が選択した矩形パタンは２行４列である。そして、ウインドウ又はテクスチャは、６個の矩形パタンによって覆い尽くされる。
その場合には、ΣＸ＊Ｙ演算部４３ｃは、例えば、９個の乗算器４３１乃至４３９と、９個の乗算器４３１乃至４３９と接続する加算器４４０と、レジスタ１４４１とを備える。そして、図３において実線により示すように、矩形パタンが２行４列であることにあわせて、８個の乗算器４３１乃至４３８が活性化している。図３において点線で示すように、乗算器４３９は活性化していない。すなわち、矩形パタンに応じて、加算器４４０と乗算器４３１乃至４３９との接続構成を組み換えていることになる。
Σｙ演算部４３ａ、Σｙ＊ｙ演算部４３ｂ、Σ|x-y|演算部４３ｄは、上記のΣＸ＊Ｙ演算部４３ｃにおける乗算器を、レジスタ、２乗演算器、引き算器に置き換えたものである。
【００２２】
図４は、矩形パタン選択回路３１の選択動作の詳細を説明する図である。図４には、矩形パタン選択回路３１の選択動作を表す、フローチャートが示されている。
ここで、矩形パタン選択回路３１は、Ｎ画素並列処理装置４３の構成を考慮し、取り得る矩形パタン情報のすべて{（ph[0],pw[0]）,（ph[1],pw[1]）,（ph[2],pw[2]）,（ph[3],pw[3]）, ... , (ph[j], pw[j]), ... ,(ph[M-1],pw[M-1])}を備えている。
オペレーション（ｏｐ１）において、矩形パタン選択回路３１は、テクスチャサイズ情報（ｔｈ，ｔｗ）を受けとる。
次いで、オペレーション（ｏｐ２）において、矩形パタン選択回路３１が保有するすべての矩形パタン、すなわち、番号０の矩形パタンから番号（M−１）の矩形パタンまでの、すべての矩形パタンについて、以下のことを行う。まず、テクスチャの高さｔｈを矩形パタンの高さｐｈで割り算をし、小数点以下を繰り上げた整数を得る演算ｃｅｉｌ（ｔｈ／ｐｈ）を行う。次いで、テクスチャの幅ｔｗを矩形パタンの幅ｐｗで割り算をし、小数点以下を繰り上げた整数を得る演算ｃｅｉｌ（ｔｗ／ｐｗ）を行う。次いで、ｃｅｉｌ（ｔｈ／ｐｈ）とｃｅｉｌ（ｔｗ／ｐｗ）を掛け合わせた結果、ｐＮｕｍを得る。ｐＮｕｍは、与えられたテクスチャを、選択した矩形パタンで覆い尽くすのに必要な、最小の繰り返し回数となる。すなわち、ｐＮｕｍは、テクスチャを矩形パタンによって分割したときに分割数が最小となる数である。
ここで、矩形パタンと、テクスチャ又はウインドウの形状との関係によっては、矩形パタンでテクスチャ又はウインドウを覆う場合、矩形パタンがテクスチャ又はウインドウからはみ出る場合がありえる。しかし、割り算をし、小数点以下を繰り上げた整数を得ているため、はみでる領域は最小に押さえられる。
【００２３】
図３に示す場合に、ＰＮｕｍを計算すると、まず、ｃｅｉｌ（ｔｗ／ｐｗ）＝６／２＝３である。次いで、ｃｅｉｌ（ｔｈ／ｐｈ）＝２である。ｔｈ／ｐｈ＝７／４＝１．７５なので、繰り上げて２となるからである。そこで、図３に示すように、矩形パタンでテクスチャを覆いつくすのに必要な繰り返し回数、ｃｅｉｌ（ｔｗ／ｐｗ）×ｃｅｉｌ（ｔｈ／ｐｈ）＝６を得ることができる。
次いで、オペレーション（ｏｐ３）において、番号ｉ（０＜＝ｉ＜M）の矩形パタンに対するｐＮｕｍの内、最小のｐＮｕｍを有する矩形パタンを選択する。
次いで、オペレーション（ｏｐ４）において、選択した矩形パタンに関する情報を演算処理（データパス）制御回路３２に出力する。
図５は、矩形パタン選択回路３１の選択動作の例を示す表である。この例において、ＣＰＵ１５０から入力されるテクスチャサイズ（ｔｈ，ｔｗ）は、１０×４、１０×５、１０×６、６４×６４である。矩形パタン選択回路３１が保有する矩形パタン（ｐｈ，ｐｗ）は、番号０の矩形パタン１×９、番号１の矩形パタン２×４、番号３の矩形パタン３×３、番号４の矩形パタン４×２、番号４の矩形パタン９×１である。
そこで、テクスチャサイズにおいて、各矩形パタンに対するｐＮｕｍ＝ｃｅｉｌ（ｔｗ／ｐｗ）×ｃｅｉｌ（ｔｈ／ｐｈ）を計算すると、以下のようになる。
【００２４】
テクスチャサイズ（１０，４）については、各矩形パタンに対して、ｐＮｕｍは１０、５、８、６、８となる。そこで、矩形パタン選択回路３１は第１の矩形パタン２×４を選択する。
テクスチャサイズ（１０，５）については、各矩形パタンに対して、ｐＮｕｍは１０、１０、８、９、１０となる。そこで、矩形パタン選択回路３１は第２の矩形パタン３×３を選択する。
テクスチャサイズ（１０，６）については、各矩形パタンに対して、ｐＮｕｍは１０、１０、８、６、８となる。そこで、矩形パタン選択回路３１は第３の矩形パタン４×２を選択する。
テクスチャサイズ（６４，６４）については、各矩形パタンに対して、ｐＮｕｍは５１２、５１２、４８４、５１２、５１２となる。そこで、矩形パタン選択回路３１は第２の矩形パタン３×３を選択する。
【００２５】
図６は、演算処理制御回路（データパス制御回路）３２の制御動作の詳細を説明する図である。図６には、演算処理制御回路（データパス制御回路）３２の制御動作を表す、フローチャート、矩形パタン選択回路３１、演算処理制御回路３２、制御回路３３、テクスチャメモリ４１、入力画像メモリ４２、Ｎ画素並列処理演算器４３、制御回路４４が示されている。
そこで、演算処理制御回路（データパス制御回路）３２による、図３にしめしたＮ画素並列処理装置４３への制御は次のように行われる。演算処理制御回路（データパス制御回路）３２は１ウインドウ処理制御回路３４を有する。
【００２６】
オペレーション（ｏｐ１１）において、演算処理制御回路（データパス制御回路）３２は矩形パタン選択回路３１より、選択した矩形パタン情報（ｐｈ，ｐｗ）を取得し、ＣＰＵ５０より、ウインドウ位置情報（ｉｘ，ｉｙ）及びテクスチャ情報（ｔｈ，ｔｗ）を取得する。
オペレーション（ｏｐ１２）において、演算処理制御回路（データパス制御回路）３２は、１ウインドウ処理制御回路３４を通じて、演算計算で使用する変数の初期化を行う。例えば、繰り返し計算の回数を示す変数ａ、ｂをゼロとして、積算レジスタｒｅｓｕｌｔにゼロを設定する。また、演算処理制御回路（データパス制御回路）３２は、制御回路４４を介して、選択した矩形パタンの画素ピクセル数に応じて、Σｙ演算部４３ａ、Σｙ＊ｙ演算部４３ｂ、ΣＸ＊Ｙ演算部４３ｃ、Σ|x-y|演算部４３ｄ内の乗算器、レジスタ、２乗演算器、引き算器の活性化数を制御する。すなわち、Ｎ画素並列処理装置４３内の計算器（乗算器、レジスタ、２乗演算器、引き算器）の構成は、選択した矩形パタンに応じて、組み換えが可能（コンフィギュアラブル）である。
ここで、ΣＸ＊Ｙ演算部４３ｃを例にとると、ΣＸ＊Ｙ演算部４３ｃは、加算機４４０と、加算器４３９に並列に接続する乗算器４３１、４３２、４３３、４３４、４３５、４３６、４３７、４３８、４３９と、加算器４４０からの出力を受けるレジスタ４４１を備える。また、ｃｅｉｌ（ｔｈ／ｐｈ）は3であり、ｃｅｉｌ（ｔｗ／ｐｗ）は2である。
従って、制御回路４４は、演算処理制御回路（データパス制御回路）３２からの制御によって、レジスタ４４１をゼロに設定する。また、制御部４４は、乗算器４３１乃至４３８を活性化し、矩形パタンの画素ピクセルの内の該当箇所にわりあてる。
【００２７】
オペレーション（ｏｐ１３）において、演算処理制御回路（データパス制御回路）３２は変数ａの値が、ｃｅｉｌ（ｔｈ／ｐｈ）未満か否かを判断する。変数ａがｃｅｉｌ（ｔｈ／ｐｈ）以上である場合には、オペレーションｏｐ２０に進む。一方、変数ａの値が、ｃｅｉｌ（ｔｈ／ｐｈ）未満である時には、オペレーションｏｐ１４に進む。
オペレーション（ｏｐ１４）において、演算処理制御回路（データパス制御回路）３２は変数ｂの値が、ｃｅｉｌ（ｔｗ／ｐｗ）未満か否かを判断する。変数ｂがｃｅｉｌ（ｔｗ／ｐｗ）以上である場合には、オペレーションｏｐ１９に進む。一方、変数ｂの値が、ｃｅｉｌ（ｔｗ／ｐｗ）未満である時には、オペレーションｏｐ１５に進む。
オペレーション（ｏｐ１５）において、演算処理制御回路（データパス制御回路）３２は、制御回路４４を介して、テクスチャ内において、(b*pw[j], a*ph[j])を左上座標とする矩形パタン、すなわち、テクスチャにおける１の位置にある矩形パタン内のテクスチャ画素ピクセル値をテスクチャメモリ４１から読み出し、Ａ１乃至Ａ８とするように制御する。ただし、矩形パタンがテクスチャからはみ出している部分に相当するＡ１乃至Ａ８については０を入力するように制御する。
【００２８】
オペレーション（ｏｐ１６）において、演算処理制御回路（データパス制御回路）３２は、制御回路４４を介して、入力画像内において、(b*pw[j]+ix, a*ph[j]+iy)を左上座標とする矩形パタン、すなわち、ウインドウにおける１の位置にある矩形パタン内のウインドウ画素ピクセル値を入力画像メモリ４２から読み出し、Ｂ１乃至Ｂ８とするように制御する。
オペレーション（ｏｐ１７）において、演算処理制御回路（データパス制御回路）３２は、制御回路４４を介して、Ａ１乃至Ａ８、Ｂ１乃至Ｂ８を、ΣＸ＊Ｙ演算部４３ｃの乗算器４３１乃至４３８に入力するように制御する。次いで、制御回路４４は乗算器４３１乃至４３８が並列にテクスチャ画素ピクセル値Ａ１乃至Ａ８と、ウインドウ画素ピクセル値Ｂ１乃至Ｂ８を掛け合わせるようにする。次いで、制御回路４４は乗算器４３１乃至４３８から加算器４４０に乗算器４３１乃至４３８の結果が入力されると、加算器４４０はレジスタ４４１に記憶されている値に、乗算器４３１乃至４３８からの入力値を加算して、レジスタ４４１にその加算結果を出力するようにする。その結果、８個の乗算器４３１乃至４３８によって得た値のすべてが積算されて、レジスタ４４１に蓄積される。演算処理制御回路（データパス制御回路）３２は、制御回路４４を介して、レジスタ４４１の結果をｒｅｓｕｌｔへ格納するようにする。
【００２９】
オペレーション（ｏｐ１８）において、演算処理制御回路（データパス制御回路）３２は、変数ｂに１を加算する。その後、オペレーションｏｐ１４を行う。すなわち、演算処理制御回路（データパス制御回路）３２は、制御回路４４を介して、２の位置にある矩形パタンについて、ΣＸ＊Ｙ演算部４３ｃに同様な操作をさせるようにする。
オペレーション（ｏｐ１９）において、演算処理制御回路（データパス制御回路）３２は、変数ａに１を加算する。その後、オペレーションｏｐ１３を行う。すなわち、演算処理制御回路（データパス制御回路）３２は、制御回路４４を介して、３、４、５、６の位置にある矩形パタンについて、ΣＸ＊Ｙ演算部４３ｃに同様な操作をさせるようにする。
その結果、オペレーション（ｏｐ２０）において、最初のウインドウについて、Σｘ＊ｙについての計算結果がｒｅｓｕｌｔへ格納される。その結果、相関要素値Σｘ＊ｙの計算が終了する。
【００３０】
なお、正規化相関値の計算を行うには、各ウインドウについて、相関要素値Σｘ＊ｙの他に、Σｙ＊ｙ、Σｙという相関要素値が必要であり、各ウインドウについてそれらは、Σｙ演算部４３ａ、Σｙ＊ｙ演算部４３ｂにより計算される。
次いで、Ｎ画素並列処理装置４３は、演算処理制御回路（データパス制御回路）３２からの制御を、制御回路４３を介して受け、異なった位置にあるウインドウについて同様のことを行う。その結果、入力画像における、すべてのウインドウについて、同様な計算が終了する。
そこで、ＣＰＵ５０は、各ウインドウについて、上記で求められた相関要素値、Σｘ＊ｙ、Σｙ＊ｙ、Σｙを次式にあてはめ、相関値ｒを求める。
ｒ２＝｛ｎ×Σｘ＊ｙ−Σｙ×Σｘ｝２／｛ｎ×Σｙ＊ｙ−（Σｙ）２｝／｛ｎ×Σｘ＊ｘ−（Σｘ）２｝
なお、ｎはテクスチャを構成するテクスチャ画像ピクセルの数である。Σｘはテクスチャ画素ピクセル値の合計と定義される相関要素値である。Σｘ＊ｘはテクスチャ画素ピクセル値の２乗の合計と定義される相関要素値である。テクスチャは予め決められた画像であるので、相関要素値Σｘ及び相関要素値Σｘ＊ｘは、ともに、予め計算することができる。
上記の結果、ＣＰＵ５０は、入力画像（検索対象画像）において、相関値ｒに基づきウインドウとテクスチャとの一致を判断することができる。
【００３１】
以上より、テクスチャ（探索したい画像）と入力画像（探索対象画像）内のウインドウ（部分的な矩形状の画像）との相関値を求める実施例１の正規化相関処理装置１０は、
前記テクスチャを構成する画像ピクセルのテクスチャ画像ピクセル値と、前記ウインドウを構成する画像ピクセルのウインドウ画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路（乗算器４３１乃至乗算器４３９）と、
（ph、pwは正の整数であるとすると、ph行pw列からなる）Ｍ＝ph×pw個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンであって、前記テクスチャを前記矩形パタンによって分割したときに分割数が最小となるような矩形パタンを選択する矩形パタン選択回路（矩形パタン選択回路３１）と、
前記Ｎ個の演算回路の内、前記Ｍ個分の前記演算回路を活性化し、テクスチャにおける１の位置にある矩形パタン内のテクスチャ画素ピクセル値をテスクチャメモリ４１から読み出し、Ａ１乃至Ａ８とするように制御し、ウインドウにおける１の位置にある矩形パタン内のウインドウ画素ピクセル値を入力画像メモリ４２から読み出し、Ｂ１乃至Ｂ８とするように制御する制御回路（演算処理制御回路３２）と、
前記Ｍ個分の前記演算回路によって得られた演算結果を積算する積算器（加算機４４０、レジスタ４４１）と、を備える正規化相関処理装置である。
【００３２】
上記の正規化相関処理装置１０によれば、テクスチャサイズの設定に変更があっても、テクスチャ及びウインドウを最小数で分割できる最適な矩形パタンを選択することができる。また、その矩形パタンの構成要素の数と同数の演算回路を活性化することにより、演算回路の構成を矩形パタンに対応するように組み換え、矩形パタン内の複数の構成要素について並列計算が行える。そして、活性化された演算回路から得られた演算結果を積算することにより、相関値を導き出すための相関要素値を求めることができる。
各ウインドウにおいて、矩形パタンを設定して、矩形パタン内の構成要素に関して、並列処理を行うため、ウインドウ単位に並列処理する場合のように、予め並列処理するウインドウの位置を定めておく必要がない。従って、ウインドウ位置の設定を自由に行うことができる。
【００３３】
そうすると、上記の正規化相関処理装置１０は、テクスチャサイズの設定又はウインドウの位置に自由度が求められた場合において、テクスチャとウインドウの相関関係を求める計算に対して、効率的な並列処理が可能な構成を有する。
なお、上記の正規化相関処理装置１０において、演算回路は、レジスタ、乗算器、引き算器のいずれでもよい。正規化相関処理装置１０は、いずれの相関要素値を計算することにも対応することができる。
【００３４】
また、正規化相関処理装置１０は、テクスチャのサイズに関するテクスチャサイズ情報及びウインドウの位置に関するウインドウ位置情報を保持するレジスタ群を有する。そして、矩形パタン選択回路（選択パタン選択回路３１）は、テクスチャサイズ情報に基づいて、最適な矩形パタンを選択する。また、制御回路（演算処理制御回路３２）は、ウインドウ位置情報に基づいて、入力画像中のウインドウ位置を特定する機能をさらに有する。
さらに、正規化相関処理装置１０は、テクスチャを記憶するメモリ（テクスチャメモリ４１）及び入力画像を記憶するメモリ（入力画像メモリ４２）を含むことが望ましい。
レジスタ群、テクスチャメモリ４１、入力画像メモリ４２が、ＣＰＵ５０から独立して存在することにより、初期値の設定、画像ピクセル値の演算回路への入力速度が増加する効果がある。また、入力画像中のウインドウ位置を特定する機能がＣＰＵ５０から独立して、制御回路（演算処理制御回路３２）に置かれていることにより、ＣＰＵ５０の制御能力に余裕ができ、ＣＰＵ５０の判断速度が増加する効果がある。
【００３５】
上記において、テクスチャ及びウインドウを最小数で分割できることを、最適な矩形パタンの選択条件とした。しかし、矩形パタンの形状により、矩形パタンの構成要素に対応して、テクスチャを構成する画像ピクセルのテクスチャ画像ピクセル値、又は、ウインドウを構成する画像ピクセルのウインドウ画像ピクセル値を、テクスチャメモリ４１又は入力画像メモリ４２から読み出すスピードが異なる場合がある。そこで、最適な矩形パタンの選択条件に、画像ピクセル値の読み出しスピードを考慮することもできる。その例を実施例２に示す。
【実施例２】
【００３６】
実施例２の正規化相関処理装置は、実施例１における矩形パタン選択回路３１を、矩形パタン選択回路３１２に置き換えた、正規化相関処理装置である。
図７は、矩形パタン選択回路３１２の選択動作の詳細を説明する図である。図７には、矩形パタン選択回路３１２、制御回路３３、演算処理制御回路３２、及び、矩形パタン選択回路３１２の選択動作を表すフローチャート、が示されている。制御回路３３、及び、演算処理制御回路３２については、実施例1の制御回路３３、及び、演算処理制御回路３２と同様なものであるため説明を省略する。
矩形パタン選択回路３１２は、矩形パタンの構成要素に対応して、テクスチャ画素ピクセル値及びウインドウ画素ピクセル値をテクスチャメモリ４１又は入力画像メモリ４２から読み出すスピードを考慮して、矩形パタンにつける重み（Ｗ[i]）を、備えている。また、矩形パタン選択回路３１２は、Ｎ画素並列処理装置４３の構成を考慮し、取り得る矩形パタン情報のすべて（(ｉ番目の矩形パタン情報)={（ph[0],pw[0]）,（ph[0],pw[1]）,（ph[0],pw[2]）,（ph[0],pw[3]）,….,(ph[i],pw[i])}）を備えている。演算処理制御回路３２及び制御回路３３は、実施例１における同符号を付した回路と同様な回路であるため、説明を省略する。
オペレーション（ｏｐ３１）において、矩形パタン選択回路３１２は、テクスチャサイズ情報（ｔｈ，ｔｗ）を受けとる。
次いで、オペレーション（ｏｐ３２）において、矩形パタン選択回路３１２が保有するすべての矩形パタン、すなわち、番号０の矩形パタンから番号（Ｍ−１）の矩形パタンまでの、すべての矩形パタンについて、図４のフローチャートのオペレーションｏｐ２と同様な処理を行う。すなわち、演算ｃｅｉｌ（ｔｈ[i]／ｐｈ[i]）、演算ｃｅｉｌ（ｔｗ[i]／ｐｗ[i]）を行う。次いで、ｃｅｉｌ（ｔｈ[i]／ｐｈ[i]）とｃｅｉｌ（ｔｗ[i]／ｐｗ[i]）を掛け合わせた結果、すべての矩形パタン、すなわち、番号iの矩形パタンについてｐＮｕｍ[i]を得る。なお、iは０以上M−１以下の正の整数である。
【００３７】
次いで、オペレーション（ｏｐ３３）において、ｐＮｕｍ[i]に、W[i]を掛けて、pTime[i]を得る。W[i]は、読み出しスピードが早い程小さい、正の数である。例えば、W[i]は０より大きく１以下の数である。なお、一般的なメモリをテクスチャメモリ４１又は入力画像メモリ４２に使用すると、メモリの配列において、行方向（コラム方向）へ読み出し位置を移動する場合の読み出しスピードは早く、列方向（ロー方向）へ読み出し位置を移動する場合の読み出しスピードは遅いと考えられている。従って、矩形パタンの構成要素に対応する画素ピクセル値をメモリから読み出すのに、行方向への読み出しが使用される割合が大きい矩形パタンに対応する、重み（Ｗ[i]）程小さい値となると考えられる。なお、読み出しスピードが早いとは、メモリにアクセスをかけてから、矩形パタンに関わる画素ピクセル値を得るまでの時間が短いことをいう。
次いで、オペレーション（ｏｐ３４）において、番号ｉ（０＜＝ｉ＜M）の矩形パタンに対するｐTime[i]の内、最小のｐTimeを有する矩形パタンを選択する。
次いで、オペレーション（ｏｐ３５）において、選択した矩形パタンに関する情報を演算処理（データパス）制御回路３２に出力する。
【００３８】
以上より、テクスチャ（探索したい画像）と入力画像（探索対象画像）内のウインドウ（部分的な矩形状の画像）との相関値を求める実施例２の正規化相関処理装置は、
前記テクスチャを構成する画像ピクセルのテクスチャ画像ピクセル値と、前記ウインドウを構成する画像ピクセルのウインドウ画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路（乗算器４３１乃至乗算器４３９）と、
前記テクスチャ画像ピクセル値を記憶するテクスチャメモリと、
前記ウインドウ画像ピクセル値を記憶する入力画像メモリと、
（ph、pwは正の整数であるとすると、ph行pw列からなる）Ｍ＝pw×ph個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンであって、前記テクスチャを前記矩形パタンによって分割したときの分割数と、前記テクスチャメモリから前記テクスチャ画像ピクセル値を読み出すスピード又は前記入力画像メモリから前記ウインドウ画像ピクセル値を読み出すスピードに応じた重みと、を乗算した値が最小となるような矩形パタンを選択する矩形パタン選択回路（矩形パタン選択回路３１２）と、
前記Ｎ個の演算回路の内、前記Ｍ個分の前記演算回路を活性化し、テクスチャにおける１の位置にある矩形パタン内のテクスチャ画素ピクセル値をテスクチャメモリ４１から読み出し、Ａ１乃至Ａ８とするように制御し、ウインドウにおける１の位置にある矩形パタン内のウインドウ画素ピクセル値を入力画像メモリ４２から読み出し、Ｂ１乃至Ｂ８とするように制御する制御回路（演算処理制御回路３２）と、
前記Ｍ個分の前記演算回路によって得られた演算結果を積算する積算器（加算機４４０、レジスタ４４１）と、を備える正規化相関処理装置である。
従って、実施例１の正規化相関処理装置と同様に、実施例２の正規化相関処理装置は、テクスチャサイズの設定又はウインドウの位置に自由度が求められた場合において、テクスチャとウインドウの相関関係を求める計算に対して、効率的な並列処理が可能な構成を有する。
【００３９】
さらに、実施例２の正規化相関処理装置においては、矩形パタンの選択に、テクスチャの矩形パタンによる分割数が最小となるという条件だけでなく、前記テクスチャメモリから前記テクスチャ画像ピクセル値を読み出すスピード又は前記入力画像メモリから前記ウインドウ画像ピクセル値を読み出すスピードも考慮することにより、実施例１の正規化相関処理装置より、効率的な並列処理が可能な構成となっている。
実施例１及び実施例２では、矩形パタン選択回路において、すべての矩形パタンについて、テクスチャを矩形パタンに分割する分割数を計算によって求めている。しかし、その計算には時間がかかる。そこで、テクスチャサイズの上限がきまっているときには、テクスチャに対して最適な矩形パタンを予め計算により求めて、表にまとめておくことができる。そして、テクスチャ情報が矩形パタン選択回路に入力された場合、表を利用して、矩形パタンを選択することもできる。そのような例を実施例３に示す。
【実施例３】
【００４０】
実施例３の正規化相関処理装置は、実施例１における矩形パタン選択回路３１を、矩形パタン選択回路３１３に置き換えた、正規化相関処理装置である。
図８は、矩形パタン選択回路３１３の選択動作の詳細を説明する図である。図８には、矩形パタン選択回路３１３、制御回路３３、演算処理制御回路３２、及び、矩形パタン選択回路３１３の選択動作を表すフローチャート、が示されている。制御回路３３、及び、演算処理制御回路３２については、実施例1の制御回路３３、及び、演算処理制御回路３２と同様なものであるため説明を省略する。
矩形パタン選択回路３１３は、Ｎ画素並列処理装置４３の構成を考慮し、取り得る矩形パタン情報のすべて（(ｉ番目の矩形パタン情報)={（ph[0],pw[0]）,（ph[0],pw[1]）,（ph[0],pw[2]）,（ph[0],pw[3]）,(ph[m-1],pw[k-1])}）を備えている。また矩形パタン選択回路３１３は、最小テクスチャサイズから最大テクスチャサイズまでの取り得るテクスチャサイズのいずれについても、上記の矩形パタン中、最適な矩形パタンを対応づけた選択表を、保有している。ここで、「最適な」とは、実施例１における説明のように、テクスチャを矩形パタンで分割したときに最小の分割数となるという意味でもよいし、実施例２における説明のように、分割数に、読み出しスピードに関わる重みを掛け合わせたものが最小になるという意味でもよい。さらに、「考慮すべきもの」があった場合、それに応じた係数を考えた場合に、「最適な」とは、分割数と、重みと、上記係数を掛けたものが最小となるという意味であってもよい。ここで、「考慮すべきもの」の例として、矩形パタンによって、テクスチャを分割したときの空白の数が考えられる。
【００４１】
オペレーション（ｏｐ４１）において、矩形パタン選択回路３１３は、テクスチャサイズ情報（ｔｈ，ｔｗ）を受けとる。
次いで、オペレーション（ｏｐ４２）において、上記の選択表によって、最適な矩形パタンを選択する。
次いで、オペレーション（ｏｐ４３）において、選択した矩形パタンに関する情報を演算処理（データパス）制御回路３２に出力する。
【００４２】
以上より、テクスチャ（探索したい画像）と入力画像（探索対象画像）内のウインドウ（部分的な矩形状の画像）との相関値を求める実施例３の正規化相関処理装置は、
テクスチャを構成する画像ピクセルのテクスチャ画像ピクセル値と、前記ウインドウを構成する画像ピクセルのウインドウ画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路（乗算器４３１乃至乗算器４３９）と、
テクスチャのサイズと、テクスチャのサイズに応じて選択すべき、（ph、pwは正の整数であるとすると、ph行pw列からなる）Ｍ＝pw×ph個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンが記載されている選択表を有し、前記テクスチャのサイズに対応する矩形パタンを選択する矩形パタン選択回路（矩形パタン選択回路３１３）と、
前記Ｎ個の演算回路の内、前記Ｍ個分の前記演算回路を活性化し、テクスチャにおける１の位置にある矩形パタン内のテクスチャ画素ピクセル値をテスクチャメモリ４１から読み出し、Ａ１乃至Ａ８とするように制御し、ウインドウにおける１の位置にある矩形パタン内のウインドウ画素ピクセル値を入力画像メモリ４２から読み出し、Ｂ１乃至Ｂ８とするように制御する制御回路（演算処理制御回路３２）と、
前記Ｍ個分の前記演算回路によって得られた演算結果を積算する積算器（加算機４４０、レジスタ４４１）と、を備える正規化相関処理装置である。
従って、実施例１の正規化相関処理装置と同様に、実施例３の正規化相関処理装置は、テクスチャサイズの設定又はウインドウの位置に自由度が求められた場合において、テクスチャとウインドウの相関関係を求める計算に対して、効率的な並列処理が可能な構成を有する。
【００４３】
さらに、実施例３の正規化相関処理装置は、矩形パタンの選択する時間が短縮され、実施例１の正規化相関処理装置より、処理時間が短縮された並列処理を可能とする構成を有している。
実施例１、２、３では、ウインドウの位置設定を、ウインドウ位置を変更する場合に、その都度、ＣＰＵ５０からの情報にもとづいて行っていた。しかし、演算処理制御回路が複数のウインドウ位置情報を受けるとる構成であってもよい。その場合、正規化相関処理装置は複数のウインドウについての並列処理を、これまでの矩形パタンの構成要素に関する並列処理に加えて行う構成をとることができる。そのような例を実施例４に示す。
【実施例４】
【００４４】
実施例４の正規化相関処理装置７０、７１、及び、７２は、いずれも、ＣＰＵ５０から複数個（Ｌ個）のウインドウ位置情報を受け取り動作する装置である。
図９Ａ、９Ｂ、及び、９Ｃは、実施例４の正規化相関処理装置７０、７１、及び、７２を説明するための図である。
図９Ａは、実施例４の正規化相関処理装置７０を説明するための図である。図９Ａには、正規化相関処理装置７０、矩形パタン選択回路３１、演算処理制御回路３２１、制御回路３３、及び、演算処理装置４０が示されている。矩形パタン選択回路３１、制御回路３３、演算処理装置４０については、実施例１で説明した矩形パタン選択回路３１、制御回路３３、演算処理装置４０と同様な回路であるため、説明を省く。
【００４５】
演算処理制御回路３２１は、矩形パタン選択回路３１から矩形パタン情報を受け、ＣＰＵ５０からＬ個のウインドウ位置情報{(ix[0], iy[0]), … ,(ix[L-1], iy[L-1])}を受けとる。１ウインドウ処理制御回路３４は、Ｌ個のウインドウ位置情報の内の一つを受け取る。その場合、すぐに使用されないウインドウ位置情報は演算処理制御回路３２１に蓄積され、順次、１ウインドウ処理制御回路３４により使用される。１ウインドウ処理制御回路３４は実施例１で説明した１ウインドウ処理制御回路３４と同様なものである。
【００４６】
以上より、テクスチャ（探索したい画像）と入力画像（探索対象画像）内のウインドウ（部分的な矩形状の画像）との相関値を求める実施例４の正規化相関処理装置７０は、
前記テクスチャを構成する画像ピクセルのテクスチャ画像ピクセル値と、前記ウインドウを構成する画像ピクセルのウインドウ画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路（乗算器４３１乃至乗算器４３９）からなる、並列演算器と、
（pw、phは正の整数であるとすると、ph行pw列からなる）Ｍ=pw×ph個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンであって、前記テクスチャを前記矩形パタンによって分割したときに分割数が最小となるような矩形パタンを選択する矩形パタン選択回路（矩形パタン選択回路３１）と、
複数のウインドウ位置情報を受け、各前記ウインドウ位置情報に対応してＮ個の演算回路の内、前記Ｍ個分の前記演算回路を活性化し、テクスチャにおける１の位置にある矩形パタン内のテクスチャ画素ピクセル値をテスクチャメモリ４１から読み出し、Ａ１乃至Ａ８とするように制御し、ウインドウにおける１の位置にある矩形パタン内のウインドウ画素ピクセル値を入力画像メモリ４２から読み出し、Ｂ１乃至Ｂ８とするように制御する制御回路（演算処理制御回路３２１）と、
前記並列演算器それぞれにおいて、前記Ｍ個分の前記演算回路によって得られた演算結果を、積算する積算器（加算機４４０、レジスタ４４１）と、を備える正規化相関処理装置である。
そうすると、さらに、実施例４の正規化相関処理装置７０は、複数のウインドウ位置情報を受けて行う並列処理を、これまでの矩形パタンの構成要素に関する並列処理に加えて行うことができる。
【００４７】
図９Ｂは、実施例４の正規化相関処理装置７１を説明するための図である。図９Ｂには、正規化相関処理装置７１、矩形パタン選択回路３１、演算処理制御回路３２２、制御回路３３、及び、演算処理装置４０１が示されている。矩形パタン選択回路３１、制御回路３３については、実施例１で説明した矩形パタン選択回路３１、制御回路３３と同様な回路であるため、説明を省く。
【００４８】
演算処理制御回路３２２は、実施例１における演算処理制御回路３２に加えて、１ウインドウ処理制御回路３４を複数備える。本実施例では、演算処理制御回路３２１は、２つの１ウインドウ処理制御回路３４を備える。１ウインドウ処理制御回路３４は、実施例１におけるものと同様なものであるため、説明を省略する。演算処理制御回路３２１は、矩形パタン選択回路３１から矩形パタン情報を受け、ＣＰＵ５０からＬ個のウインドウ位置情報{(ix[0], iy[0]), … ,(ix[L-1], iy[L-1])}を受けとる。２つある１ウインドウ処理制御回路３４の各々は、Ｌ個のウインドウ位置情報の内、同じウインドウ位置情報を順次受け取る。すなわち、２つある１ウインドウ処理制御回路３４は同一ウインドウに対して動作するが、対応する領域は異なる。
【００４９】
演算処理装置４０１は、実施例１における演算処理制御回路４０に加えて、Ｎ画素並列処理演算器４３を複数備える。２つのＮ画素並列処理演算器４３のそれぞれは、２つの１ウインドウ処理制御回路３４のそれぞれに対応し、並列動作をする。
そして、実施例１の演算処理装置４０においては、矩形パタンに合わせて、まず、テクスチャメモリ４１及び入力画像メモリ４２からテクスチャ画像ピクセル値及びウインドウ画像ピクセル値を、テクスチャ及びウインドウ内の１の領域から６の領域にむけて直列に読み出していた。しかし、実施例４の演算処理装置４０１においては、テクスチャ及びウインドウ内の１及び２並列して、テクスチャ画像ピクセル値Ａ１乃至Ａ８、Ａ１１乃至Ａ１８、及び、ウインドウ画像ピクセル値Ｂ１乃至Ｂ８、Ｂ１１乃至Ｂ１８の読み出しを行い、以下、順次、３、４の領域に対する並列読み出し、及び、５、６の領域に対する並列読み出しを行う。
【００５０】
以上より、テクスチャ（探索したい画像）と入力画像（探索対象画像）内のウインドウ（部分的な矩形状の画像）との相関値を求める実施例４の正規化相関処理装置は、
前記テクスチャを構成する画像ピクセルのテクスチャ画像ピクセル値と、前記ウインドウを構成する画像ピクセルのウインドウ画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路（乗算器４３１乃至乗算器４３９）からなる、複数の並列演算器と、
（pw、phは正の整数であるとすると、ph行pw列からなる）Ｍ＝pw×ph個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンであって、前記テクスチャを前記矩形パタンによって分割したときに分割数が最小となるような矩形パタンを選択する矩形パタン選択回路（矩形パタン選択回路３１）と、
複数のウインドウ位置情報を受け、各前記ウインドウ位置情報に対応して、前記並列演算器それぞれにおいて、前記Ｎ個の演算回路の内、前記Ｍ個分の前記演算回路を活性化し、テクスチャにおける１の位置にある矩形パタン内のテクスチャ画素ピクセル値をテスクチャメモリ４１から読み出し、Ａ１乃至Ａ８、Ａ１１乃至Ａ１８とするように制御し、ウインドウにおける１の位置にある矩形パタン内のウインドウ画素ピクセル値を入力画像メモリ４２から読み出し、Ｂ１乃至Ｂ８、Ｂ１１乃至Ｂ１８とするように制御する制御回路（演算処理制御回路３２１）と、
前記並列演算器それぞれにおいて、前記Ｍ個分の前記演算回路によって得られた演算結果を、積算する積算器（加算機４４０、レジスタ４４１）と、を備える正規化相関処理装置である。
そうすると、さらに、実施例４の正規化相関処理装置は、複数のウインドウ位置情報を受けるとともに、複数の矩形パタンについての並列処理を、これまでの矩形パタンの構成要素に関する並列処理に加えて行うことができる。
【００５１】
図９Ｃは、実施例４の正規化相関処理装置７２を説明するための図である。図９Ｃには、正規化相関処理装置７２、矩形パタン選択回路３１、演算処理制御回路３２２、制御回路３３、及び、演算処理装置４０２が示されている。矩形パタン選択回路３１、制御回路３３については、実施例１で説明した矩形パタン選択回路３１、制御回路３３と同様な回路であるため、説明を省く。
【００５２】
演算処理制御回路３２３は、実施例１における演算処理制御回路３２に加えて、１ウインドウ処理制御回路３４を複数備える。本実施例では、演算処理制御回路３２３は、２つの１ウインドウ処理制御回路３４を備える。１ウインドウ処理制御回路３４は、実施例１におけるものと同様なものであるため、説明を省略する。演算処理制御回路３２３は、矩形パタン選択回路３１から矩形パタン情報を受け、ＣＰＵ５０からＬ個のウインドウ位置情報{(ix[0], iy[0]), … ,(ix[L-1], iy[L-1])}を受けとる。２つある１ウインドウ処理制御回路３４の各々は、２つのウインドウ位置情報の内、対応するものを受け取る。なお、ウインドウ位置情報の数Ｌは、１ウインドウ処理制御回路３４の数以上の数であってもよい。その場合、すぐに使用されないウインドウ位置情報は演算処理制御回路３２３に蓄積され、順次、１ウインドウ処理制御回路３４によって使用される。すなわち、２つの１ウインドウ処理制御回路３４は、ことなるウインドウに対して動作する。なお、各１ウインドウ処理制御回路３４は、同領域に対し動作する。
【００５３】
演算処理装置４０２は、実施例１における演算処理制御回路４０に加えて、Ｎ画素並列処理演算器４３を複数備える。２つのＮ画素並列処理演算器４３のそれぞれは、２つの１ウインドウ処理制御回路３４のそれぞれに対応し、並列動作をする。
そして、実施例１の演算処理装置４０においては、矩形パタンに合わせて、まず、テクスチャメモリ４１及び入力画像メモリ４２からテクスチャ画像ピクセル値及びウインドウ画像ピクセル値Ａ１乃至Ａ８を、テクスチャ及び一つのウインドウ内の１の領域から６の領域にむけて直列に読み出していた。しかし、実施例４の演算処理装置４０２においては、テクスチャ、及び、並列するウインドウＡ、ウインドウＢ内の１に対して、テクスチャ画像ピクセル値Ａ１乃至Ａ８、及びウインドウ画像ピクセル値Ｂ１乃至Ｂ８、Ｂ１１乃至Ｂ１８の読み出しを行う。以下、順次、２から６の領域において、ウインドウＡに対する読み出し処理とウインドウＢに対する読み出し処理を並列して行う。
【００５４】
以上より、テクスチャ（探索したい画像）と入力画像（探索対象画像）内のウインドウ（部分的な矩形状の画像）との相関値を求める実施例４の正規化相関処理装置７２は、
前記テクスチャを構成する画像ピクセルのテクスチャ画像ピクセル値と、前記ウインドウを構成する画像ピクセルのウインドウ画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路（乗算器４３１乃至乗算器４３９）からなる、複数の並列演算器と、
（pw、phは正の整数であるとすると、ph行pw列からなる）Ｍ=pw×ph個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンであって、前記テクスチャを前記矩形パタンによって分割したときに分割数が最小となるような矩形パタンを選択する矩形パタン選択回路（矩形パタン選択回路３１）と、
複数のウインドウ位置情報を受け、各前記ウインドウ位置情報に対応して、前記並列演算器それぞれにおいて、前記Ｎ個の演算回路の内、前記Ｍ個分の前記演算回路を活性化し、テクスチャにおける１の位置にある矩形パタン内のテクスチャ画素ピクセル値をテスクチャメモリ４１から読み出し、Ａ１乃至Ａ８とするように制御し、ウインドウAにおける１の位置にある矩形パタン内のウインドウ画素ピクセル値を入力画像メモリ４２から読み出し、Ｂ１乃至Ｂ８とするように制御し、ウインドウBにおける１の位置にある矩形パタン内のウインドウ画素ピクセル値を入力画像メモリ４２から読み出し、Ｂ１１乃至Ｂ１８とするように制御する制御回路（演算処理制御回路３２１）と、
前記並列演算器それぞれにおいて、前記Ｍ個分の前記演算回路によって得られた演算結果を、積算する積算器（加算機４４０、レジスタ４４１）と、を備える正規化相関処理装置である。
そうすると、さらに、実施例４の正規化相関処理装置は、複数のウインドウ位置情報を受けて、複数のウインドウについての並列処理を、これまでの矩形パタンの構成要素に関する並列処理に加えて行うことができる。
【００５５】
従って、実施例１の正規化相関処理装置と同様に、実施例４の正規化相関処理装置は、テクスチャサイズの設定又はウインドウの位置に自由度が求められた場合において、テクスチャとウインドウの相関関係を求める計算に対して、効率的な並列処理が可能な構成を有する。
さらに、実施例４の正規化相関処理装置は、複数のウインドウ位置情報を受けて並列処理も行うことができ、より、効率的な並列処理が可能な構成を有する。
ところで、実施例１乃至４の正規化相関処理装置においては、矩形パタン選択回路が、矩形パタンを選択し、矩形パタン情報を演算処理制御回路に出力していた。しかし、直接ＣＰＵ５０等、矩形パタン選択回路によらず、矩形パタン情報を演算処理制御回路に出力してもよい。その例を実施例５に示す。
【実施例５】
【００５６】
実施例５の正規化相関処理装置８０は、実施例１の正規化相関処理装置に選択モード切替回路が追加されたものである。
図１０は、実施例５の正規化処理装置８０を説明するための図である。図１０には、実施例５の正規化処理装置８０、矩形パタン選択回路３１、演算処理制御回路３２、制御回路３３、選択モード切替回路３５、及び、演算処理装置４０が示されている。矩形パタン選択回路３１、演算処理制御回路３２、制御回路３３、及び、演算処理装置４０については、実施例１で説明した矩形パタン選択回路３１、演算処理制御回路３２、制御回路３３、及び、演算処理装置４０と同様な回路であるため、説明を省く。
【００５７】
選択モード切替回路３５は、制御回路３３からの信号によって、矩形パタン選択回路３１からの矩形パタン情報又は直接指定する矩形パタン情報のどちらかを選択して、演算処理制御回路３２へ出力する回路である。
直接指定する矩形パタン情報とは、ＣＰＵ５０又は正規化相関処理装置８０の外部から与えられた矩形パタン情報をいう。
なお、制御回路３３は、ＣＰＵ５０からの制御を受けて、選択モード切替回路３５への信号を出力する。
【００５８】
以上より、テクスチャ（探索したい画像）と入力画像（探索対象画像）内のウインドウ（部分的な矩形状の画像）との相関値を求める実施例５の正規化相関処理装置８０は、
前記テクスチャを構成する画像ピクセルのテクスチャ画像ピクセル値と、前記ウインドウを構成する画像ピクセルのウインドウ画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路（乗算器４３１乃至乗算器４３９）と、
（ph、pwは正の整数であるとすると、ph行pw列からなる）Ｍ=ph×pw個（ＭはＮより小さい正の整数）の構成要素を有する第１の矩形パタンであって、前記テクスチャを前記矩形パタンによって分割したときに分割数が最小となるような第１の矩形パタンを選択し、選択した前記第１の矩形パタンの情報を出力する矩形パタン選択回路（矩形パタン選択回路３１）と、
Ｔ個（ＴはＮより小さい正の整数）の構成要素を有する第２の矩形パタンの情報、及び、前記第１の矩形パタンの情報を受け、前記第１の矩形パタンの情報又は前記第２の矩形パタンの情報の内、どちらかを一方の情報を出力する選択モード切替回路と、
前記選択モード切替回路から、前記第１の矩形パタンの情報又は前記第２の矩形パタンの情報の内、どちらか一方の前記情報に基づいて、前記Ｎ個の演算回路の内、前記Ｍ個分又は前記Ｔ個分の前記演算回路を活性化し、テクスチャにおける１の位置にある矩形パタン内のテクスチャ画素ピクセル値をテスクチャメモリ４１から読み出し、Ａ１乃至Ａ８とするように制御し、ウインドウにおける１の位置にある矩形パタン内のウインドウ画素ピクセル値を入力画像メモリ４２から読み出し、Ｂ１乃至Ｂ８とするように制御する制御回路（演算処理制御回路３２）と、
前記Ｍ個分の前記演算回路によって得られた演算結果を積算する積算器（加算機４４０、レジスタ４４１）と、を備える正規化相関処理装置である。
【００５９】
従って、実施例１の正規化相関処理装置と同様に、実施例５の正規化相関処理装置は、テクスチャサイズの設定又はウインドウの位置に自由度が求められた場合において、テクスチャとウインドウの相関関係を求める計算に対して、効率的な並列処理が可能な構成を有する。
さらに、実施例５の正規化相関処理装置は、外部から指定した矩形パタンについての並列処理も行うことができる構成を有する。
ところで、実施例１の正規化相関処理装置においては、設定レジスタ群２０、制御部６３０、演算処理装置４０という専用の回路を、ＣＰＵ５０の他に設けていた。しかし、ＣＰＵにプログラムを読み込むことにより、ＣＰＵ内に、設定レジスタ群２０、制御部６３０、演算処理装置４０と同等な機能を有する手段を設けることも可能である。その例を実施例６に示す。
【実施例６】
【００６０】
図１１は、実施例６の正規化相関処理装置９０を説明するための図である。図１１には、メインメモリ６０、正規化相関処理装置９０、バス９９が示されている。
正規化相関処理装置９０は、ＣＰＵ上に、プログラムを読込むことにより、形成された設定レジスタ群９１、矩形パタン選択部９２、演算処理制御部９３、テクスチャ用メモリ部９４、入力画像用メモリ部９５、Ｎ画素並列処理演算部９６、プログラム格納部９７、及び、入出力部９８から構成されている。
ここで、ＣＰＵは、一般的に、入出力回路、算術演算回路、記憶回路、論理処理回路、クロック発生回路を含むものである。そして、ＣＰＵは、記憶部に読み込まれたプログラムに従って、命令列を順次読込、論理処理を行うことで、プログラムの目的に合わせて機能する部分を構築し、データの移動や加工を行う。正規化相関処理装置９０におけて、相関処理に関する計算を行う機能部分は、形成された設定レジスタ群９１、矩形パタン選択部９２、演算処理制御部９３、テクスチャ用メモリ部９４、入力画像用メモリ部９５、及び、Ｎ画素並列処理演算部９６である。
設定レジスタ群９１は、実施例１の設定レジスタ群２０と同様な機能を有する。矩形パタン選択部９２は、実施例１の矩形パタン選択回路３１と同様な機能を有する。演算処理制御部９３は、実施例１の演算処理制御回路３２と同様な機能を有する。テクスチャ用メモリ部９４は、実施例１のテクスチャメモリ４１と同様な機能を有する。入力画像用メモリ部９５は、実施例１の入力画像用メモリ４２と同様な機能を有する。Ｎ画素並列処理演算部９６は、実施例１のＮ画素並列処理演算部４３と同様な機能を有する。メインメモリ６０は、実施例１のメインメモリ６０と同様なメモリである。
プログラム格納部９７は、入力画像とテクスチャ間の相関値を計算するように、正規化相関装置９０を制御するプログラムを格納する記憶領域である。
入出力部９８は、正規化相関処理装置９０とバス９９との間のデータの入出力を行う部分である。
バス９９は、メインメモリ６０と正規化相関処理装置９０間のデータ信号、命令信号を伝達する伝送線の束である。
【００６１】
以上より、プログラム格納部９７に読み込まれたプログラムは正規化相関処理装置９０に、テクスチャ（探索したい画像）と入力画像（探索対象画像）内のウインドウ（部分的な矩形状の画像）との相関値を求めさせる命令コードを含むものであって、その命令コードは、
Ｎ個（Ｎは正の整数）の演算回路（Ｎ画素並列処理演算部９６内の乗算器）に、前記テクスチャを構成する画像ピクセルのテクスチャ画像ピクセル値と、前記ウインドウを構成する画像ピクセルのウインドウ画像ピクセル値とを演算させる命令コードと、
矩形パタン選択回路（矩形パタン選択部９２）に、（ph、pwは正の整数であるとすると、ph行pw列からなる）Ｍ＝ph×pw個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンであって、前記テクスチャを前記矩形パタンによって分割したときに分割数が最小となるような矩形パタンを選択させる命令コードと、
制御回路（演算処理制御部９３）に、前記Ｎ個の演算回路の内、前記Ｍ個分の前記演算回路を活性化させ、テクスチャにおける１の位置にある矩形パタン内のテクスチャ画素ピクセル値をテスクチャメモリ４１から読み出し、Ａ１乃至Ａ８とするように制御させ、ウインドウにおける１の位置にある矩形パタン内のウインドウ画素ピクセル値を入力画像メモリ４２から読み出し、Ｂ１乃至Ｂ８とするように制御させる命令コードと、
積算器（Ｎ画素並列処理演算部内の加算機、及び、レジスタ）に、前記Ｍ個分の前記演算回路によって得られた演算結果を積算させる命令コードと、を備える。
【００６２】
そうすると、上記のプログラムによる、正規化相関処理装置９０に対する制御によれば、テクスチャサイズの設定又はウインドウの位置に自由度が求められた場合において、正規化相関処理装置９０に、テクスチャとウインドウの相関関係を求める計算を効率よく行わせることができる。  
【００６３】
以下に本発明の特徴を付記する。
（付記１）
探索する画像と探索対象画像内の部分画像との相関値を求める相関処理装置であって、
前記探索する画像の第１画像ピクセルの第１画像ピクセル値と、前記部分画像の第２画像ピクセルの第２画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路と、
Ｍ個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンであって、前記探索する画像を前記矩形パタンによって分割したときの分割数が最小となるような矩形パタンを選択する矩形パタン選択回路と、
前記Ｎ個の演算回路の内、前記Ｍ個の前記演算回路を活性化するとともに、前記Ｍ個の前記演算回路によって演算が行われる前記Ｍ個の前記第１画像ピクセル値及び前記Ｍ個の前記第２ピクセル値を特定する制御回路と、
前記Ｍ個分の前記演算回路によって得られた演算結果を積算する積算器と、を備える相関処理装置。
（付記２）
前記探索する画像のサイズ情報を保持するレジスタをさらに備え、
前記矩形パタン選択回路は、前記サイズ情報を用いて、前記探索する画像を前記矩形パタンによって分割したときの分割数を求めることを特徴とする付記１記載の相関処理装置。
（付記３）
前記部分画像の位置情報を保持するレジスタをさらに備え、
前記制御回路は、前記位置情報に基づいて、前記Ｍ個の前記第２ピクセル値を特定することを特徴とする付記１記載の相関処理装置。
（付記４）
前記探索する画像に対する前記第１画像ピクセル値を記憶する第１メモリと、
前記探索対象画像を構成する第３画像ピクセル値を記憶する第２メモリと、をさらに備え、
前記制御回路は、前記位置情報に基づいて、前記第３画像ピクセル値の内から、前記Ｍ個の前記第２ピクセル値を特定することを特徴する付記３記載の相関処理装置。
（付記５）
前記演算回路は、レジスタ、乗算器、又は、引き算器のいずれかであることを特徴とする付記１乃至付記４の内の一つに記載された相関処理装置。
（付記６）
探索する画像と探索対象画像内の部分画像との相関値を求める相関処理装置であって、
前記探索する画像の第１画像ピクセルの第１画像ピクセル値を記憶する第１メモリと、
前記探索対象画像の第２画像ピクセルの第２画像ピクセル値を記憶する第２メモリと、
前記第１画像ピクセル値と、前記探索対象画像内の前記部分画像を構成する前記第２画像ピクセルの前記第２画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路と、
Ｍ個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンであって、前記探索する画像を前記矩形パタンによって分割したときの分割数と、前記第１メモリから前記第１画像ピクセル値を読み出す速さ又は前記第２メモリから前記第２画像ピクセル値を読み出す速さに応じた重みと、を乗算した値が最小となるような矩形パタンを選択する矩形パタン選択回路と、
前記Ｎ個の演算回路の内、前記Ｍ個の前記演算回路を活性化するとともに、前記Ｍ個の前記演算回路によって演算が行われる前記Ｍ個の前記第１画像ピクセル値及び前記Ｍ個の前記第２ピクセル値を特定する制御回路と、
前記Ｍ個分の前記演算回路によって得られた演算結果を積算する積算器と、を備える相関処理装置。
（付記７）
前記探索したい画像のサイズを表すサイズ情報を保持するレジスタをさらに備え、
前記矩形パタン選択回路は、前記サイズ情報を用いて、前記探索したい画像を前記矩形パタンによって分割したときの分割数を求めることを特徴とする付記６記載の相関処理装置。
（付記８）
前記部分画像の位置を表す位置情報を保持するレジスタをさらに備え、
前記制御回路は、前記位置情報に基づいて、前記Ｍ個の前記第２ピクセル値を特定することを特徴とする付記６記載の相関処理装置。
（付記９）
探索する画像と探索対象画像内の部分画像との相関値を求める相関処理装置であって、
前記探索する画像の第１画像ピクセルの第１画像ピクセル値と、前記部分画像の第２画像ピクセルの第２画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路と、
前記探索する画像のサイズと、前記探索する画像のサイズに応じて選択すべき、Ｋ行Ｌ列からなるＭ個（Ｋ、Ｌは正の整数であり、ＭはＮより小さい正の整数）の構成要素を有する矩形パタンとが記載されている選択表を有し、前記選択表に応じて前記矩形パタンを選択する矩形パタン選択回路と、
前記Ｎ個の演算回路の内、前記Ｍ個の前記演算回路を活性化するとともに、前記Ｍ個の前記演算回路によって演算が行われる前記Ｍ個の前記第１画像ピクセル値及び前記Ｍ個の前記第２ピクセル値を特定する制御回路と、
前記Ｍ個分の前記演算回路によって得られた演算結果を積算する積算器と、を備える相関処理装置。
（付記１０）
探索する画像と探索対象画像内の部分画像との相関値を求める相関処理装置であって、
前記探索する画像の第１画像ピクセルの第１画像ピクセル値と、前記部分画像の第２画像ピクセルの第２画像ピクセル値とを演算する機能を有するＮ個（Ｎは正の整数）の演算回路からなる、並列演算器と、
Ｍ個（ＭはＮより小さい正の整数）の構成要素を有する矩形パタンであって、前記探索したい画像を前記矩形パタンによって分割したときに分割数が最小となるような矩形パタンを選択する矩形パタン選択回路と、
複数のウインドウ位置情報を受け、各前記ウインドウ位置情報に対応して、前記並列演算器において、前記Ｎ個の演算回路の内、前記Ｍ個分の前記演算回路を活性化するとともに、前記Ｍ個の前記演算回路によって演算が行われる前記Ｍ個の前記第１画像ピクセル値及び前記Ｍ個の前記第２ピクセル値を特定する制御回路と、
前記並列演算器において、前記Ｍ個分の前記演算回路によって得られた演算結果を、積算する積算器と、を備える相関処理装置。
（付記１１）
探索する画像と探索対象画像内の部分画像との相関値を求める相関処理装置であって、
前記探索する画像の第１画像ピクセルの第１画像ピクセル値と、前記部分画像の第２画像ピクセルの第２画像ピクセル値とを演算するＮ個（Ｎは正の整数）の演算回路と、
Ｍ個（ＭはＮより小さい正の整数）の構成要素を有する第１の矩形パタンであって、前記探索する画像を前記第１の矩形パタンによって分割したときに分割数が最小となるような第１の矩形パタンを選択し、選択した前記第１の矩形パタンの情報を出力する矩形パタン選択回路と、
Ｔ個（ＴはＮより小さい正の整数）の構成要素を有する第２の矩形パタンの情報、及び、前記第１の矩形パタンの情報を受け、前記第１の矩形パタンの情報又は前記第２の矩形パタンの情報の内、どちらかを一方の情報を出力する選択モード切替回路と、
前記選択モード切替回路から、前記第１の矩形パタンの情報又は前記第２の矩形パタンの情報の内、どちらかを一方の前記情報に基づいて、前記Ｎ個の演算回路の内、前記Ｍ個又は前記Ｔ個の前記演算回路を活性化する制御回路と、
前記Ｍ個分の前記演算回路又は前記Ｔ個分の前記演算回路によって得られた演算結果を積算する積算器と、を備える相関処理装置。
（付記１２）
相関処理装置に探索する画像と探索対象画像内の部分画像との相関値を求めさせるためのプログラムを格納し、相関処理装置で読みとり可能な媒体は、
前記相関処理装置の矩形パタン選択回路に、Ｍ個の構成要素を有する矩形パタンであって、前記探索する画像を前記矩形パタンによって分割したときに分割数が最小となるような前記矩形パタンを選択させる命令コードと、
前記相関処理装置の制御回路に、前記相関処理装置内にあって、前記探索する画像を構成する第１画像ピクセルの第１画像ピクセル値と、前記部分画像の第２画像ピクセルの第２画像ピクセル値とを演算させる、Ｎ個（ＮはＭより大きい正の整数）の演算回路の内、前記Ｍ個分の前記演算回路を活性化させる命令コードと、
前記相関処理装置の前記Ｍ個の演算回路に、演算を行わせる命令コードと、
前記相関処理装置の積算器に、前記Ｍ個分の前記演算回路によって得られた演算結果を積算させる命令コードと、を備える相関処理装置で読みとり可能な媒体。
【産業上の利用可能性】
【００６４】
本発明によれば、テクスチャサイズの設定又はウインドウの位置に自由度が求められた場合において、テクスチャとウインドウの相関関係を求める計算に対して、効率的な並列処理が可能な構成を有する画像処理装置を提供することができる。
【図面の簡単な説明】
【００６５】
【図１】図１は、実施例に関わる正規化相関処理装置１０の構成を説明する図である。
【図２】図２は、制御部３０、演算処理装置４０（データパス）について説明する図である。
【図３】図３は、Ｎ画素並列処理演算器４３について詳細を説明する図である。
【図４】図４は、矩形パタン選択回路３１の選択動作の詳細を説明する図である。
【図５】図５は、矩形パタン選択回路３１の選択動作の例を示す表である。
【図６】図６は、演算処理制御回路（データパス制御回路）３２の制御動作の詳細を説明する図である。
【図７】図７は、矩形パタン選択回路３１２の選択動作の詳細を説明する図である。
【図８】図８は、矩形パタン選択回路３１３の選択動作の詳細を説明する図である。
【図９Ａ】図９Ａは、実施例４の正規化相関処理装置７０を説明するための図である。
【図９Ｂ】図９Ｂは、実施例４の正規化相関処理装置７１を説明するための図である。
【図９Ｃ】図９Ｃは、実施例４の正規化相関処理装置７２を説明するための図である。
【図１０】図１０は、実施例５の正規化処理装置８０を説明するための図である。
【図１１】図１１は、実施例６の正規化相関処理装置９０を説明するための図である。
【符号の説明】
【００６６】
１０  正規化相関処理装置
１５  内部バス
２０  設定レジスタ群
３０  制御部
３１  矩形パタン選択回路
３２  演算処理制御回路
３３  制御回路
３４  １ウインドウ処理制御回路
４０  演算処理装置
４１  テクスチャメモリ
４２  入力画像メモリ
４３  Ｎ画素並列処理演算器
４４  制御回路
５０  ＣＰＵ
６０  メインメモリ
７０  バス
４３１、４３２、４３３、４３４。４３５、４３６、４３７、４３８、４３９  乗算器
４４０  加算器
４４１  レジスタ
ｏｐ１、ｏｐ２、ｏｐ３、ｏｐ４  オペレーション
ｏｐ１１、ｏｐ１２、ｏｐ１３、ｏｐ１４、ｏｐ１５、ｏｐ１６、ｏｐ１７、ｏｐ１８、ｏｐ１９、ｏｐ２０  オペレーション
ｏｐ３１、ｏｐ３２、ｏｐ３３、ｏｐ３４、ｏｐ３５  オペレーション
ｏｐ４１、ｏｐ４２、ｏｐ４３  オペレーション
【図１】
2010123083.tif 000003
【図２】
2010123083.tif 000004
【図３】
2010123083.tif 000005
【図４】
2010123083.tif 000006
【図５】
2010123083.tif 000007
【図６】
2010123083.tif 000008
【図７】
2010123083.tif 000009
【図８】
2010123083.tif 000010
【図９Ａ】
2010123083.tif 000011
【図９Ｂ】
2010123083.tif 000012
【図９Ｃ】
2010123083.tif 000013
【図１０】
2010123083.tif 000014
【図１１】
2010123083.tif 000015