"一連の取得された画像の各々に関する画像データを生成する画像センサを有するビジョンシステムであって;前記ビジョンシステムは、それぞれ単一のダイに載ってセンサと作動的に結合されている、複数のSIMDプロセッサと、少なくとも1つの汎用プロセッサと、直接アクセス可能なデータメモリとを含む第1のプロセッサグループを有しており、前記第1のプロセッサグループは画像センサから読み出された画像データを受け取り、データメモリは前記一連の取得された画像の各々に関する画像データのサイズより容量が小さく、前記第1のプロセッサグループは画像データが読み出されるのと同時に各々の画像データに関して縮小されたデータセットを生成するデータ縮小プロセスが作動するように構成および配置されており;前記ビジョンシステムはさらに第2のプロセッサを有しており、前記第2のプロセッサは、前記縮小されたデータセットがデータメモリに保存されるのと同時に画像データの少なくとも一部を受け取り、前記第2のプロセッサは、縮小されたデータセット内の情報に基づく出力値を生成する画像解析プロセスを含んでいるビジョンシステム。前記縮小されたデータセットは、画像データの少なくとも一部に関して少なくとも1つの領域識別子IDを含み、画像解析プロセスが前記少なくとも1つの領域IDによって指定された画像データの少なくとも一部の位置で作動して出力値を生成することを可能ならしめている、請求項1記載のビジョンシステム。前記画像解析プロセスがバーコード復号プロセスを含む請求項2記載のビジョンシステム。前記縮小されたデータセットは特徴情報を含み、前記出力値は検査及びアライメントデータの少なくとも1つを含む請求項1記載のビジョンシステム。前記センサが単一のダイに載っている請求項1記載のビジョンシステム。前記縮小されたデータセットは複数の画像の各々で位置を変える運動する対象または表面の少なくとも1つの特徴を含み、各々の画像はタイムスタンプを有しており、前記出力値は、運動、速度および登録情報の少なくとも1つを含む、請求項1記載のビジョンシステム。前記出力値はイベントをトリガする請求項6記載のビジョンシステム。前記縮小されたデータセットが前処理された画像データを含み、該前処理された画像データは画像データよりサイズが小さく、かつ、出力値を生成するために画像解析プロセスによって使用される少なくとも一つのデータ要素を提供する、請求項1記載のビジョンシステム。一連の取得された画像の各々に関する画像データを生成する画像センサを有するビジョンシステムであって;前記ビジョンシステムは、それぞれ単一のダイに載ってセンサと作動的に結合されている、複数のSIMDプロセッサと、少なくとも1つの汎用プロセッサと、直接アクセス可能なデータメモリとを含む第1のプロセッサグループを有しており、前記第1のプロセッサグループは画像センサから読み出された画像データを受け取り、データメモリは前記一連の取得された画像の各々に関する画像データのサイズより容量が小さく、前記第1のプロセッサグループは画像センサから連続して1以上の画像を受け取るように配置されており;前記第1のプロセッサグループ内の複数のSIMDプロセッサは、受け取った各々の画像にデータ縮小機能を用いて、データメモリに保存される縮小されたデータセットを生成するように構成および配置されているビジョンシステム。さらに第2のプロセッサを含んでおり、前記第2のプロセッサは少なくとも縮小されたデータセットを受け取り、前記縮小されたデータセットに関して前記第2のプロセッサによって実行されるビジョンシステムのタスクに基づく出力値を生成する、請求項9記載のビジョンシステム。前記第2のプロセッサは、画像センサから画像データが読み出されるのと同時に画像データを受け取り、前記縮小されたデータセットは第2のプロセッサにより受け取られた画像データの特定されたサブセットで前記ビジョンシステムのタスクが実行されるようにさし向ける、請求項10記載のビジョンシステム。一連の取得された画像の各々に関する画像データを生成する画像センサを有するビジョンシステムであって;前記ビジョンシステムは、それぞれ単一のダイに載ってセンサと作動的に結合されている、複数のSIMDプロセッサと、少なくとも1つの汎用プロセッサと、直接アクセス可能なデータメモリとを含む第1のプロセッサグループを有しており、前記第1のプロセッサグループは画像センサから読み出された画像データを受け取り、データメモリは前記一連の取得された画像の各々に関する画像データのサイズより容量が小さく、前記第1のプロセッサグループは画像センサから連続して1以上の画像を受け取るように配置されており;前記ビジョンシステムはさらに、画像センサから読み出された画像データを同時に受け取る追加メモリを有しており;前記第1のプロセッサグループ内の複数のSIMDプロセッサは、受け取った各々の画像にデータ縮小機能を用いて、データメモリに保存される縮小されたデータセットを生成するように構成および配置されており、前記縮小されたデータセットは、追加メモリに保存されてさらなるビジョンシステムプロセスに供される画像データの領域に対する識別子を含んでいるビジョンシステム。さらに第2のプロセッサを含んでおり、前記第2のプロセッサは追加メモリから画像データの領域を受け取り、領域に関して前記第2のプロセッサによって実行されるビジョンシステムのタスクに基づく出力値を生成する請求項12記載のシステム。一連の取得された画像の各々に関する画像データを生成する画像センサを有するビジョンシステムで画像データを処理するための方法であって;複数のSIMDプロセッサと、少なくとも1つの汎用プロセッサと、直接アクセス可能なデータメモリとを含み、それらがそれぞれ単一のダイに載っている、第1のプロセッサグループによって、画像センサから読み出された画像データを受け取り、データメモリは前記一連の取得された画像の各々に関する画像データのサイズより容量が小さく;前記第1のプロセッサグループで、画像データが読み出されるのと同時に各々の画像データに関して縮小されたデータセットを生成し;第2のプロセッサによって、前記縮小されたデータセットがデータメモリに保存されるのと同時に画像データの少なくとも一部を受け取り;第2のプロセッサによって、縮小されたデータセットに含まれた情報に基づいて出力値を生成するステップを含む方法。前記縮小されたデータセットは、画像データの少なくとも一部に関して少なくとも1つの領域識別子IDを含み、画像解析プロセスが前記少なくとも1つの領域IDによって指定された画像データの少なくとも一部の位置で作動して出力値を生成することを可能ならしめている、請求項14記載の方法。前記出力値が復号されたバーコードデータを含む請求項15記載の方法。前記縮小されたデータセットが特徴情報を含み、前記出力値は検査及びアライメントデータの少なくとも1つを含む、請求項14記載の方法。前記センサが単一のダイに載っている請求項14記載の方法。前記縮小されたデータセットは複数の画像の各々で位置を変える移動対象または表面の少なくとも1つの特徴を含み、各々の画像はタイムスタンプを有しており、前記出力値は、運動、速度および登録情報の少なくとも1つを含む請求項14記載の方法。前記出力値はイベントをトリガする請求項21記載の方法。前記縮小されたデータセットが前処理された画像データを含み、該前処理された画像データは画像データよりサイズが小さく、かつ、出力値を生成するために画像解析プロセスによって使用される少なくとも1つのデータ要素を提供する、請求項14記載の方法。以下に、本発明を添付の図面に基づいて説明する。注意の焦点に基づいて取得された画像データの全セット内で離散的画像データを処理するための例示的なシステムと方法は、離散的処理サイクルで相互接続されたピクセルアレイから読み出された行全体のデータすなわち各々のクロックサイクルで同時に処理されている行に含まれる全データを処理できるアーキテクチャを定義するビジョンシステムプロセッサで動作するように適合されている。これを達成するために、全体プロセッサは画像データ保存メモリ幅1024の記憶アレイを有し、本明細書ではデータメモリとも呼ぶと、ピクセルアレイこの例では8ビットまたは6ビットピクセルの1024×768ピクセルアレイとの間に広いオンビットデータバスたとえば1024×1バスを含むように編成されている。このメモリは別の類似の幅たとえば1024×1のバスによって画像処理コンポーネントと相互に接続されており、これはたとえば近傍演算で非常に効率的な単一命令複数データSIMDプロセッサを用いて行全体を同時に処理するように編成されている。したがって各々のプロセッサは行内部の近傍データを処理している他のプロセッサと相互作用できる。これらのプロセッサは組み合わせて線形アレイプロセッサLAPと呼ばれる。例示的な実施形態においてこれらのプロセッサはそれぞれ90MHzで動作する。それらは行全体のデータ1024要素で同時に1ビット演算処理装置ALUとして動作するように構成されている。例示的な実施形態においてLAP内のプロセッサはさらに、広範かつ効率的な近傍演算を容易にするためにデータがプロセッサ間で最大13列移動できるように適合されている。例示的な処理速度はLAPに対して約11,520メガバイト/秒の処理量を生み出す。プロセッサアーキテクチャの一種が共通の譲受人による米国特許出願明細書第12/184,187号ビジョンセンサ、システムと方法E.ジョンマクゲリー他で開示されており、その教示内容は有益な背景情報として参照することにより本明細書に組み込まれ、以下の関連部分でも説明される。さらに一般的に本明細書に記載されたシステムと方法は、多様な市販の画像取得処理システムで動作するように適合され得る。たとえば初期バージョンのシングルチップ画像センサが出版物デジタルプロセッサアレイを有するシングルチップ画像センサロバートフォルヒハイマー他、VLSI信号処理誌、第5巻、121~131ページ1993年に記載されている。I.ビジョンシステムオンチップVSoCの概観図2は、本発明の実施形態に従うシステムと方法で使用するためのシングルチップビジョンシステム200VSoCのブロック図を描写する。VSoC200はシングルチップ上にピクセルアレイ208と1以上の回路230を含む。本明細書での用法では、チップという用語は、よく知られている用語ダイと同じ意味で使われる。これは適当な回路要素と線を上に配置した単一のシリコンウエハ片である。製造においては、チップまたはダイは製造工程のある段階で離散的パッケージに分離されるチップまたはダイの大型ウエハの部分であり得るが、以下においては単一のコンポーネントとして扱う。種々の実施形態において、ピクセルアレイ208は、撮像されている場面に対する検知された光に基づいてピクセル信号を1以上の回路230に提供するように構成されている。また、種々の実施形態において1以上の回路230は、ピクセルアレイ208から提供されたピクセル信号を処理して画像を形成し、および随意に画像に関してパターンマッチングを実行するように構成されている。種々の実施形態においてピクセルアレイ208と1以上の回路230は半導体材料からなる基板上に単一の集積回路を形成する。また、種々の実施形態において、データをVSoC200に入力し、およびデータVSoC200をから出力するために1以上のI/Oピン図示せずをVSoC200は含んでいる。VSoC200はマシンビジョン用途、コンシューマ用途など、さまざまな用途で使用できる。種々の実施形態においてVSoC200を、i画像取得、ii画像前処理、およびiiiパターンマッチングのいずれか1以上の必要がある用途で使用することができる。種々の実施形態においてVSoC200は、シングルチップまたは集積回路において画像を取得し前処理、および/またはパターンマッチングを実行できるようにする。さらにVSoC200について、図3は本発明の実施形態に従う相互接続されたシステム300のブロック図を描写する。システム300は、有線または無線ネットワークまたはその他のデータ接続320によって作動的に結合されているVSoC200および相互接続された装置310を含む。システム300において、VSoC200は装置310と通信しており、装置310とVSoCとの間で信号が伝送される。例示的な実施形態において、図示された装置310は、スキャニング装置、および/またはベースコンピュータPC、またはスキャニング装置からIDデータを受け取るその他のデータプロセッサの1以上のコンポーネントたとえばディスプレイ、別個のID復号器回路、種々のインジケータ、アラートなどを表すことができる。装置310とVSoCとの間の通信は、多様なデータと制御信号を含んでいてもよい。種々の実施形態において、VSoC200は画像を取得して、画像の処理を実行し、処理の結果に基づいてデータを装置310に提供するように構成されている。たとえば種々の実施形態において、VSoC200は1以上の特徴の1以上のモデルに基づいて画像内の1以上の特徴をサーチし、このサーチの結果に基づいてデータを装置310に出力するように構成されている。画像を取得するための画像取得と、画像内の特徴をサーチするパターンマッチングの両方をシングルチップまたは集積回路で実行できるようにすることにより、別個のプロセッサによってパターンマッチングを実行するため画像データがVSoC200からVSoC200の外部にある別個のプロセッサに送られなければならない場合と比べて、VSoC200から送られるデータの量を減らすことができる。たとえば種々の実施形態において、例示的なVSoC200は画像を取得し、その画像の1以上の特徴のモデルを用いて1以上の特徴に対する画像をサーチし、続いて画像内で1以上の特徴が検出された場合はトリガ信号を装置310に提供することができる。また、幾つかの実施形態において、VSoC200は画像を取得し、画像の1以上の特徴の1以上の特徴のモデルを用いて1以上の特徴をサーチし、続いて画像内に1以上の特徴が検出される場合は、1以上の特徴の物理的場面における位置を示す位置データを装置310に提供することができる。その帰結として、そのような実施形態においてはVSoC200から全画像データを別個の外部プロセッサに送って、これらの別個の外部プロセッサに特徴のサーチを実行させるよりも、VSoC200はこのサーチをビジョンセンサチップ上で実行できる。そのような場合には、VSoCはトリガ信号、アライメント/位置データ、特徴データなどに含まれたより最小の情報を装置300に送ることができるが、これによりVSoC200からオフチップで送られるデータの量を減らすことができる。種々の実施形態において、VSoC200から送られるデータの量を減らすことにより、VSoC200が画像を取得できる速度毎秒のフレームを増すことができる。なぜならばVSoC200の動作は送信動作の完了に制約されることがより少ないからである。たとえば幾つかの実施形態において、VSoC200は画像を200フレームパーセコンド以上の速度で取得して処理するように構成されてよく、これによりVSoC200は自動ビデオ監視、車両制御、ID読取装置/スキャニング装置におけるトリガと特徴検出/抽出以下に説明する、ジェスチャー認識、静止ビジョンセンサまたは移動ビジョンセンサを用いた三次元3Dモデルによる対象の寸法決定、運動解析などの用途で有益に使用できる。種々の実施形態において、VSoC200はセルフトリガするように構成されてよく、種々の実施形態においてVSoC200はその周囲を連続的に撮像して、連続的な画像の流れを取得できる。より具体的には、VSoC200は他のビジョンアプリケーションのためのソフトウェアまたはハードウェアトリガとして提供するように構成できる。それはたとえばID読取装置のためのソフトウェアトリガとして使用され、関連する復号プロセスまたはアプリケーション、たとえば相互接続された装置によって復号するためにID特徴を検出して特定することを目指してID候補を含んだ関心のある領域が処理される以下にさらに説明する。VSoC200からオフチップで送られるデータの量を減らすことにより、信号をオフチップで駆動するのに必要とされる電流が少なくなるので電力の消費は減る。同様に、これはVSoC200と外部装置の間でのデータの交換が減少するために電磁干渉EMIを減らす。電力消費が減ることは、バッテリー制限用途など多くの用途で有利である。幾つかの実施形態において、装置310は画像データを処理できるタイプの装置であり、VSoC200は画像データを装置310に送るように構成されている。VSoC200が画像データを装置310に送るように構成された幾つかの実施形態において、VSoC200は1以上の特徴のモデルを用いて画像を1以上の特徴についてサーチし、画像内で1以上の特徴の少なくとも1つが検出された場合のみその画像の画像データを装置310に送るように構成されている。また、VSoC200が画像データを装置310に送るように構成された幾つかの実施形態において、VSoC200は1以上の特徴のモデルを用いて画像を1以上の特徴についてサーチし、このサーチから特定された特徴に基づいて決定される画像内の関心のある領域に対する画像データのみを装置310に送るように構成されている。VSoC200が画像データを装置310に送るように構成された種々の実施形態において、VSoC200は当該画像に対する全画像データを装置310に送るように制御可能であってよい。幾つかの実施形態において、VSoC200は1以上の特徴が検出された画像に関してモデルの姿勢を示めす姿勢情報を装置310に送るように構成されている。種々の実施形態において、装置310はプロセッサを含むことができ、VSoC200は処理タスクを装置310のプロセッサと相互に交換し、および/またはVSoC200と装置310のプロセッサの各々によってどの特定のタスクが実行されるべきかを使用者が指定できるようにし、たとえば処理量、メモリの使用などを最適化できるように構成され得る。また、種々の実施形態において、装置310はプロセッサを含んでよく、VSoC200は1以上の特徴を含んでいる候補画像または画像の部分を決定し、次に候補画像または画像の部分を装置310による後続の処理のために装置310に転送するように構成されてもよい。幾つかの実施形態において、VSoC200は他の1以上のコンポーネント図示せず、たとえば自動焦点光学系、アダプタ装置などと接続して使用されて、たとえば種々異なる被写界深度または種々異なる照明を提供する一方で、画像を取得し、随意に種々の用途にとって有用な時間周期内にそれらを処理することができる。本明細書で説明される例示的なVSoC、および一般的に望ましいと考えられているその他の実装はいわゆるデータファネルとして作用し、そこにおいてこれらの実装は取得された1組の画像データを、装置310に送られるように縮小されたサイズのデータに変換することを容易にする一方で、この縮小されたデータセットでさらにバックエンドおよび/またはオフチップ処理を実行するのに十分である有意味な情報特徴を保持する。例を示すと、そのようなファネリング処理は、aアレイからの画像データを処理して一般的に装置転送画像のサイズおよび/または深度を縮小すること、b画像を処理して原画像と比較したときに縮小されたサイズの特徴を抽出し、縮小されたサイズの特徴セットを装置に転送すること、およびc多数の画像フレームを処理し、そこから縮小された数の画像を全部または縮小されたデータセットで送ることを含むが、これらに限定されない。さらに本明細書に記載するシステムと方法に従って使用するために考えられたVSoC実装は一般に、画像またはその他の処理されたデータたとえばエッジ、ROIなどを前処理し、この処理されたデータを装置310に送信することを可能にするが、前処理はVSoCによって装置よりも効率的に実行される。そのためVSoCにおいてより生データが高速に前処理されて焦点を絞ったデータセットを生み出すので処理速度を増すことができ、このデータセットは装置によってゆっくり処理することができる。種々の実装において、画像からのピクセルデータを大きいグルーピングたとえば取得されたピクセルデータ行として同時に処理できる高度な並行プロセス環境が存在することが、高速前処理を容易にする。大グループプロセスの恩恵を受ける何らかの動作、たとえば近傍演算は、そのような並行環境において大幅に増した効率で実行される。さらに以下に説明するように、例示的なシステムと方法を参照すると、実装のファネリング特徴は、次の事実によって強化される。すなわち、本発明に従う種々のVSoC実装は、データをピクセルアレイからバッファメモリに読み出すと同時に保存されたデータを処理して、より精選されたおよび/または小さいサイズのデータセットを生成することを可能にする。一実施形態において、この処理は1行ずつ実行されるが、同時に処理されるデータの別のグルーピングも想定される。これはデータを処理できる速度が生画像データの取得速度であるフレームパーセコンドFPSに比べて高いことによる。図4は、VSoC200の実施形態の内部アーキテクチャを例示する。VSoC200は上述したピクセルアレイ208と上述した1以上の回路230図2を含む。種々の実施形態において、1以上の回路230は制御回路422、汎用メモリ402、処理回路424、画像アドレスプロセッサ410、1以上の画像メモリ装置414、画像データセレクタ415、モデルデータシフト416、1以上のコンパレータアキュムレータ420、およびプライオリティエンコーダ417を含む。種々の実施形態において、ピクセルアレイ208は、撮像されている場面に対して検知された光に基づいて1以上のピクセル信号を提供するように構成されている。また、種々の実施形態において、処理回路424はピクセルアレイ208から提供された1以上のピクセル信号を処理して画像を生成するように構成されている。一般に、例示的な実施形態の処理回路はSIMDアーキテクチャとして実装されており、ピクセルアレイ208から送られた行全体のピクセルデータは同時に処理され、やはり1以上の画像メモリ装置と通信するワイドバス404を介して転送され、これらの画像メモリ装置も行全体の画像ピクセルデータを同時にすなわち共通のクロックサイクル読み込みまたは読み出すことができるワイドバスによって特徴付けられる。幾つかの実施形態において、ピクセルアレイ208から提供された1以上のピクセル信号はアナログ信号であり、そのような信号は、LAPによる処理に先立って、適切なADC回路でデジタル信号に変換される。種々の実施形態において、処理回路424は1以上のピクセル信号から獲得されたデジタルピクセル値で1以上の前処理動作を実行して、前処理された画像データを提供するように構成されている。例を示すと、種々の実施形態において処理回路424は、デジタルピクセル値に含まれたノイズを減らすノイズリダクションのための前処理を実行するように構成されている。画像ノイズはピクセル値の不規則変動であり、VSoC200内の電子雑音などによって引き起こされる。種々の実施形態において、処理回路424はノイズリダクションをフィルタリングプロセスによって、たとえば原ピクセル値が近傍ピクセル値の強度の中央値と置き換えられる中央値フィルタリングによって達成するように構成されている。このノイズリダクションフィルタリング機能について、さらに以下に説明する。幾つかの実施形態において、処理回路424は他のタイプのフィルタリング、たとえば低域フィルタリングを実行するように構成されており、その場合は平滑化演算を表すマスクでピクセル値のデータを畳み込み演算することによってノイズを減らして、各々のピクセル値を近傍ピクセル値の値に近づける。中央値フィルタリングと低域フィルタリングは単にフィルタリングのタイプの例として提供されるにすぎず、他の種々の実施形態においてVSoC200は他のタイプのフィルタリングを実行するように構成してもよいと理解されるべきである。種々の実施形態において、処理回路424はまた6ビットまたは8ビットまたは他の値のグレースケールピクセル値を1ビットバイナリピクセル値に変換するための前処理を実行するように構成されている。幾つかの実施形態において、処理回路424は、たとえばグレースケールピクセル値と閾値との比較に基づいて、グレースケールピクセル値を絶対的な黒ピクセル値または白ピクセル値に変換する閾値化プロセスを実行するように構成されている。そのような閾値化プロセスによりピクセル値を2値化することができる。種々の実施形態において処理回路424はまたデータで形態学的な閉演算を実行構成されており、構造化要素を用いてデータで膨張が実行され、次にその結果生じるデータで構造化要素を用いて侵食が実行される。このような形態学的な閉演算は、たとえば画像の前景領域内にある背景のカラーホールを収縮させるために用いられてよい。種々の実施形態において、1以上の画像メモリ装置414はある画像の画像データを保存するように構成されている。たとえば、上述したように、種々の実施形態において、処理回路424はデータピクセルアレイ208から提供されたピクセルデータで処理を実行して、処理の結果を取得された画像のピクセル強度データとして1以上の画像メモリ装置414に保存する。種々の実施形態において、1以上の画像メモリ装置414はデータを保存および提供するために、それぞれランダムアクセスメモリRAMなどを含む。RAMのサイズとレイアウトは、メモリの行がピクセルアレイ208の行に対応するアドレスを含むように提供され得る。同様に、処理回路内の個々のSIMDプロセッサ集合的に上述したLAPを定義する425は、与えられたピクセルアレイおよびメモリ行における要素の数と同じ数であってもよい。種々の実施形態において、制御回路422はピクセルアレイ208を制御して光を捕捉し、ピクセル信号を提供するように構成されており、および処理回路424を制御してピクセルアレイ208からのピクセル信号を処理してある画像の画像データを提供するように構成されている。幾つかの実施形態において、ピクセルアレイ208は可視スペクトル内にある光を捕捉して、捕捉された光に基づいてピクセル信号を提供するように構成されている。幾つかの実施形態において、ピクセルアレイ208は可視スペクトルの外部にある光をさらにあるいは代替的に捕捉し、捕捉された光に基づいてピクセル信号を提供するように構成されている。幾つかの実施形態において、ピクセルアレイ208は、可視スペクトルと可視スペクトルの外部の双方から光を捕捉し、捕捉された光に基づいてピクセル信号を提供するように構成されている。種々の実施形態において、制御回路422は外部装置、たとえば上述したPCから1以上の特徴のモデルに対してモデル命令を受け取るように構成され、およびモデル命令を汎用メモリ402に保存するように構成されている。種々の実施形態において、汎用メモリ402はデータを保存および提供するためにRAMなどを含む。種々の実施形態において、汎用メモリ402は制御回路422によって実行できるプログラムを保存する。幾つかの実施形態において、汎用メモリ402はVSoC200の外部にある外部メモリ図示せずで補足されてよく、そのような実施形態においてVSoC200は外部メモリと汎用メモリ402との間でデータを転送できるように構成できる。種々の実施形態において、図4の構成要素は所望すれば種々異なる用途のために補足または省略でき、以下にそのような変形例の幾つかを例示的なシステムと方法を参照して説明する。種々の実施形態において、1以上の回路230は1以上の特徴のモデルを用いて画像の1以上の特徴をサーチするように構成されている。幾つかの実施形態において、サーチされる画像は1以上の画像メモリ装置414に保存され、画像をサーチするために用いられる1以上の特徴のモデルのモデル命令は汎用メモリ402に保存される。また、種々の実施形態において制御回路422は汎用メモリ402からのモデル命令を実行し、モデル命令に基づいて処理回路424、画像アドレスプロセッサ410、モデルデータ416および複数のコンパレータアキュムレータ400を制御するように構成されている。画像マッチングおよび対象/特徴姿勢アライメント決定を実行するように適合された幾つかの実施形態において、各々のモデル命令はモデル基準点に対する位置を指定する相応の座標を含む。また、幾つかの実施形態において、制御回路422はプログラムされた画像モデルのモデル命令から座標を画像アドレスプロセッサ410に提供するように構成され、画像アドレスプロセッサ410は座標を少なくとも部分的に1以上の変換値に基づいて変換された座標に変換するように構成されている。種々の画像アドレスプロセッサ410の実施形態では、モデルの座標を幾何学的変換に従って変換できるようにする。モデルの座標を幾何学的変換に従って変換する能力を持つと、画像内の特徴をサーチするとき、種々異なる画像において画像内の特徴が種々異なる角度で回転され、種々異なるサイズに拡大縮小され、または種々異なる位置に移動される場合に有利である。幾つかの例において、特徴のモデルを幾何学的に変換する能力により、画像内の特徴の回転、縮尺または位置に関わりなくモデルを画像内の特徴を検出するために使用できる。種々の画像アドレスプロセッサ410の実施形態では、モデルの1以上の座標を1以上のアフィン変換値に従って変換するように構成されている。種々の実施形態において、画像アドレスプロセッサ410は、変換された座標の第1の座標を1以上の画像メモリ装置414に提供して1以上の画像メモリ装置414にアクセスし、それにより1以上の画像メモリ装置414が、変換された座標の第1の座標によってアドレス指定されたデータを画像データセレクタ415に提供するように構成されている。種々の実施形態において、画像アドレスプロセッサ410もまた変換された座標の第2の座標を画像データセレクタ415に提供し、それにより画像データセレクタ415が、1以上の画像メモリ装置414から受け取ったデータを変換された座標の第2の座標に基づく量だけシフトさせるように構成されている。種々の実施形態において、制御回路422は累積インクリメントと1以上の値をモデルからモデルデータシフタ416に提供するように構成されており、モデルデータシフタ416は1以上の値と累積インクリメントを1以上のコンパレータアキュムレータ420に提供するように構成されている。実施形態において、1以上のコンパレータアキュムレータ420はサーチされる画像のデータに基づいて得られた1以上の値をモデルからの1以上の値と比較するように構成されている。また、種々の実施形態において、1以上のコンパレータアキュムレータ420は比較の結果に基づいて累積インクリメントを累積するための累積を選択的に実行するように構成されている。種々の実施形態において、処理回路424もまた、累積された値を1以上のコンパレータアキュムレータ400から受け取り、バイナリタグワードを形成して画像とモデルデータとの比較に対して局所的な最大反応を示すように構成されている。さらに、プライオリティエンコーダ417は、処理回路424からバイナリタグワードを受け取り、バイナリタグワードに基づいて出力を制御回路422に提供するように構成できる。種々の実施形態において、制御回路422はさらにVSoC200から出力を提供するように構成されている。図5はVSoC200の実施形態のより詳細な表現を描写する。種々の実施形態において、VSoC200は上述したピクセルアレイ208と並んで、ピクセルコントローラ505、複数のアナログコンパレータ507、アナログ傾斜波発生器504、複数のアナログデジタルコンバータADCラッチ509、およびデジタル傾斜波発生器503を含む。種々の実施形態において、ピクセルアレイ208は行と列に配列された複数のピクセル回路506を含む。また、種々の実施形態において、各々のピクセル回路506は感光要素または光検出器、たとえば光ダイオードなどを含んで、撮像されている場面の対応する部分の光強度をサンプリングし、各々のピクセル回路506はサンプリングされた光強度に基づいてアナログピクセル信号を提供するように構成されている。種々の実施形態において、ピクセルコントローラ505はピクセルアレイ208内のピクセル回路506に制御信号を供給して、ピクセル回路506の動作を制御する。幾つかの実施形態において、ピクセルアレイ208の同じ行にあるピクセル回路506はピクセルコントローラ505からの共通の行の制御信号を共有し、ピクセルアレイ208の同じ列にあるピクセル回路506は出力を提供する共通の列読み出しラインを共有する。種々の実施形態において、ピクセルコントローラ505は、ピクセル回路506を制御して1行ずつデータの出力を提供する。また、種々の実施形態において、ピクセルアレイ208内のピクセル回路506の各々の列から出力されたアナログピクセル信号は、対応するアナログコンパレータ507に入力される。種々の実施形態において、ピクセルアレイ208から出力されたアナログピクセル信号のアナログデジタル変換が、複数のアナログコンパレータ207、アナログ傾斜波発生器204、複数のADCラッチ209、およびデジタル傾斜波発生器503を用いて実行される。幾つかの実施形態において、ピクセルアレイ508の各々の列で出力されたアナログピクセル信号が、アナログ傾斜波発生器504によって生成される共通のアナログ基準レベルに対応するアナログコンパレータ507で比較される。また、幾つかの実施形態において、デジタル傾斜波発生器503は、アナログ傾斜波発生器504によって生成されるアナログ基準レベルを表すデジタル信号を生成するように構成されている。種々の実施形態において、何らかの列でアナログ基準レベルがアナログピクセル信号のレベルに等しい場合、対応するアナログコンパレータ507はデジタル出力を生成して対応するADCラッチ509に、デジタル傾斜波発生器503によって供給されるデジタル信号の値をラッチさせる。種々の実施形態において、VSoC200さらに制御プロセッサ501、上述したエッジ汎用メモリ402、複数の画像入力レジスタ510、複数の入力/出力I/Oレジスタ511、複数のシフトレジスタ512、複数の演算処理装置ALU513、複数の画像メモリ装置414上述、および適当なサイズのバスを介して種々の回路コンポーネントを相互接続する複数のデータパス518を含む。種々の実施形態において、制御プロセッサ501は汎用メモリ502に接続されており、ここからプログラムとモデル獲得してVSoC200の制御要素を実行する。種々の実施形態において、各々のADCラッチ509は対応する画像入力レジスタ510に接続されており、各々の画像入力レジスタ510は出力データラインによってデータパス518の対応するブランチに接続されている。種々の実施形態において、各々のデータパス518は、データをビットシリアル形式で搬送するシリアルデータパスを含む。他の種々の実施形態において、各々のデータパス518は、データを搬送するための複数のデータラインを含んでいてもよい。幾つかの実施形態において、複数のデータパス518はバスの一部分である。また、幾つかの実施形態において、ピクセルアレイ208内のピクセル回路506の各列に対して少なくとも1個のデータパス518がある。種々の実施形態において、各々のデータパス518は対応する画像入力レジスタ510、対応するI/Oレジスタ511、対応するシフトレジスタ512、対応するALU513および対応する画像メモリ装置414に接続されている。また、種々の実施形態において、複数のI/Oレジスタ511はそれぞれ制御プロセッサ501に接続されていて、制御プロセッサ501からデータを入力し、および制御プロセッサ501にデータを出力する。幾つかの実施形態において、複数のシフトレジスタ512は、もしあれば左右すぐ隣のシフトレジスタにそれぞれ接続されている。また、幾つかの実施形態において各々のALU513は、少なくとも2個のデータ入力レジスタaおよびbと1個のキャリーレジスタcを含む1組の対応するレジスタを通して、対応するデータパス518に接続されている。種々の実施形態において、各々の画像入力レジスタ510は、対応するデータパス518によって、対応するI/Oレジスタ511、対応するシフトレジスタ512、対応するALU513、および対応する画像メモリ装置414に、デジタル化された画像データが利用できるようにする。種々の処理動作において、画像データは複数の画像メモリ装置414にバッファリングされ、集合的にLAP425の一部を含む複数のALU513を用いて処理される。種々の実施形態において、処理された画像データまたはその他のデータは、二次データ処理および/またはVSoC200の外部にある装置との外部データ通信のために、制御プロセッサ501によって複数のI/Oレジスタ511を通してアクセスされてもよい。図4および図5を参照すると、種々の実施形態において、制御回路422は制御プロセッサ501とピクセルコントローラ505を含む。また、種々の実施形態において、処理回路424は複数のアナログコンパレータ507、アナログ傾斜波発生器504、複数のADCラッチ509、デジタル傾斜波発生器503、複数の画像入力レジスタ510、複数のI/Oレジスタ511、複数のシフトレジスタ512および複数のALU513を含む。種々の実施形態において、1以上の画像メモリ装置414図4は、図5に例示されているように複数の画像メモリ装置414を含む。さらに図5を参照すると、種々の実施形態において、VSoC200はさらに画像アドレスプロセッサ410、画像データセレクタ415、モデルデータシフタ416、複数のコンパレータアキュムレータ420およびプライオリティエンコーダ417を含む。種々の実施形態において、各々のデータパス518は画像データセレクタ415に接続されている。また、種々の実施形態において、制御プロセッサ501は画像アドレスプロセッサ410に接続されており、画像アドレスプロセッサ410は同じく複数の画像メモリ装置414のアドレス入力と画像のデータセレクタ415の制御入力に接続されている。幾つかの実施形態において、制御プロセッサ501はモデルデータシフタ416の入力に接続されており、モデルデータシフタ416の出力は複数のコンパレータアキュムレータ420の各々の入力に接続されている。各々のコンパレータアキュムレータ420もまた画像データセレクタ415から入力を受け取るために接続されている。種々の実施形態において、画像データセレクタ415は双方向バレルシフタまたは類似のものを含む。また、種々の実施形態において、複数のコンパレータアキュムレータ420の各々は、対応するデータパス518と作動的に結合されている。幾つかの実施形態において、プライオリティエンコーダ417は各データパス518に接続され、制御プロセッサ501に接続されている。図5に例示されたVSoC200のアーキテクチャの接続および/または編成は例を示すために提供されたものであり、他の種々の実施形態においてVSoC200はその他の適当な構成を持ち得ることが理解されるべきである。図6は、VSoC200で使用するための画像アドレスプロセッサ410の実施形態のブロック図を描写する。種々の画像アドレスプロセッサ410の実施形態では、少なくとも部分的に1以上の変換値に基づいてモデルの座標を変換された座標に変換するように構成されている。種々の画像アドレスプロセッサ410の実施形態では変換値を保存するために、変換係数レジスタ602、603、604、605、画像行オフセットレジスタ601および画像列オフセットレジスタ606を含む。種々の画像アドレスプロセッサ410の実施形態ではさらに符号付き乗算器607、608、609、610、および加算器611、612、613、614を含む。アドレスプロセッサの動作の例を示すと、モデルの第1の座標図6にXで示すとモデルの第2の座標図6にYで示すは、画像アドレスプロセッサ410への入力として提供される。図5と図6を参照すると、種々の実施形態において制御プロセッサ501はモデルのモデル命令を汎用メモリ402からフェッチして、モデル命令に含まれている座標を画像アドレスプロセッサ410に提供するように構成されている。たとえば制御プロセッサ501は、モデルのモデル命令、たとえばモデル例として提供されるモデルの第1のモデル命令を汎用メモリ402からフェッチして、モデル命令に含まれている座標、たとえば例では座標-7、-2を画像アドレスプロセッサ410に提供するように構成できる。この例では、第1の座標に対する-7の値は画像アドレスプロセッサ410に入力されるXとして提供され、第2の座標に対する-2の値は画像アドレスプロセッサ410に入力されるYとして提供されよう。図6に示されているように、種々の実施形態において変換係数レジスタ602、603、604、605は、それぞれアフィン変換係数K00、K01、K11、K10を保存するために書き込み可能であり、K00、K01、K11、K10の値は所望の変換を実行できるように設定可能である。種々の実施形態において、画像行オフセットレジスタ601は行オフセット値DRを保存するために書き込み可能であり、画像列オフセットレジスタ606は列オフセット値DCを保存するために書き込み可能であり、DRとDCの値は設定可能である。種々の実施形態において制御プロセッサ501図5はモデルに対する所望の幾何学的変換に基づいて画像アドレスプロセッサ410内でK00、K01、K11、K10、DR、DCの値を設定するように構成されている。種々の実施形態において、符号付き乗算器607は変換係数レジスタ602からの入力と、変換されるべき第1の座標である入力を受け取り、出力を加算器611に提供する。また、種々の実施形態において符号付き乗算器608は変換係数レジスタ603からの入力と、変換されるべき第2の座標である入力を受け取り、出力を加算器611に提供する。種々の実施形態において、符号付き乗算器609は変換係数レジスタ604からの入力と、変換されるべき第2の座標である入力を受け取り、出力を加算器612に提供する。また、種々の実施形態において、符号付き乗算器610は変換係数レジスタ605からの入力と、変換されるべき第1の座標である入力を受け取り、出力を加算器612に提供する。種々の実施形態において、加算器611は符号付き乗算器607と符号付き乗算器608から入力を受け取り、出力を加算器613に提供する。また、種々の実施形態において、加算器612は符号付き乗算器609と符号付き乗算器610から入力を受け取り、出力を加算器614に提供する。種々の実施形態において、加算器613は画像行オフセットレジスタ601と加算器611から入力を受け取り、出力として第1の変換された座標図6にRで示すを提供する。また、種々の実施形態において、加算器614は画像列オフセットレジスタ606と加算器612から入力を受け取り、出力として第2の変換された座標図6にCで示すを提供する。このようにして図6の実施形態において画像アドレスプロセッサ600は、複数の変換値K00、K01、K11、Κ10、DR、DCに基づいて座標X、Yを変換座標R、Cに変換できるようにする。図7は、図6の画像アドレスプロセッサ410の実施形態に対してX、Y入力とR、C出力との関係を指定する数式を記載したテキストボックス710を示す。図7に例示されているように、Rに対する式はR=XK00YK01DRとして提供され、Cに対する式はC=XK10YK11DCとして提供される。このようにして図6の画像アドレスプロセッサ410の実施形態は、幾何学的変換、たとえば回転、拡大縮小または移動に従い所望の幾何学的変換に対する変換値を設定することによりモデルの座標を変換できるようにする。画像アドレスプロセッサ410を使用することで幾何学的変換を可能にすることにより、1以上の特徴のモデルが1以上の画像内の特徴の種々異なる回転、縮尺および移動に対するパターンマッチングのために使用できる。図6の画像アドレスプロセッサ410の画像アドレスプロセッサ410の実施形態では6個の変換値K00、K01、K11、K10、DR、DCに基づいて座標を変換できるようにする。したがって図6の画像アドレスプロセッサ410の実施形態は変換のための6自由度を可能にする。当然のことながら、画像アドレスプロセッサ410の他の種々の実施形態において、変換に対して6を超える自由度を許容するために6個を超える変換値が用いられてよいと理解されるべきである。たとえば種々の画像アドレスプロセッサ410の実施形態で別の3個の変化値が設けられ、画像アドレスプロセッサ410はさらに透視歪みに対する変換を可能にするように構成されている。また、他の種々の実施形態において、画像アドレスプロセッサ410の実施形態に6個以下の変換値を使用してもよいことが理解されるべきである。たとえば、種々の画像アドレスプロセッサ410の実施形態は移動を可能にするために2個の変換値のみ設定できるようにしてよい。また、図6に例示された画像アドレスプロセッサ410の実施形態は、例示的な画像アドレスプロセッサの実装例を示すために提供されたものであり、他の種々の実施形態で代替的な構成を、座標の変換に使用するための画像アドレスプロセッサとして使用できることが理解されるべきである。図8は、VSoC図4で使用するためのコンパレータアキュムレータ420の実施形態のブロック図を描写する。種々の実施形態において、コンパレータアキュムレータ420は、画像データシフタ801、画像データ復号器802、複数のANDゲート803、ORゲート804、マッチシフタ805、マッチエンコーダ806およびマッチアキュムレータ807を含む。種々の実施形態において、画像データシフタ801は画像データ入力ライン808でデータを受け取り、画像データシフタ801内で画像データシフタ801がシフトするようにクロックされる度にデータを1位置だけシフトするように構成されている。また、種々の実施形態において画像データシフタ801は出力を画像データ復号器802に提供するように構成されている。種々の実施形態において、画像データ復号器802は画像データシフタ801から提供された値を復号して、復号された値の各ビットを複数のANDゲート803の対応するANDゲートの対応する第1の入力に提供するように構成されている。また、種々の実施形態において、モデルの1以上のモデル値の各ビットが1以上のモデルデータ入力ライン809を介して複数のANDゲート803の対応するANDゲートの対応する第2の入力に提供される。種々の実施形態において、画像からのビットは画像データシフタ801内にシフトされ、次いで画像データ復号器802により、画像データシフタ801の2進数のデシマル値に対応するビット位置に1ビット、および他のすべての位置に0ビットを有するビットストリングに2進展開することによって復号される。この場合、復号されたビットストリング内の低位ビットは0のビット位置に対応する。続いて、種々の実施形態において、画像データ復号器802から復号されたビットストリングは複数のANDゲート803を用いて、モデル内の値から再構成され1以上のモデルデータ入力ライン809を介して提供されたビットストリングと比較することができる。種々の実施形態において、ORゲート804は複数のANDゲート803の各々の出力を受け取り、複数のANDゲート803の出力のいずれかが1の場合は1の出力ビットを提供する。幾つかの実施形態において、ORゲート804は、複数のANDゲート803のいずれかが1の値を有するビットを出力したか決定するように構成された複数のORゲートに置き換えてもよい。種々の実施形態において、ORゲート804の出力は、ある画像の画像データとあるモデルのモデルデータとの間で、当該モデルの特定の幾何学的変換と、当該画像に関して幾何学的に変換されたモデルの特定の位置について一致が検出されたか否かを示す。種々の実施形態において、複数のANDゲート803とORゲート804はコンパレータと見なすことができる。当然のことながら、複数のANDゲート803とORゲート804は比較を実行するための構成の例を示すために提供されたものであり、他の種々の実施形態においてその他のタイプのコンパレータを使用できることが理解されるべきである。種々の実施形態において、ORゲート804の出力はマッチシフタ805に提供され、マッチシフタ805はORゲート804から提供されたビットを入力し、シフトマッチシフタ805内のその他のビットはマッチシフタ805がクロックされる度にデータを1位置だけシフトするように構成されている。種々の実施形態において、マッチシフタ805内のデータはマッチエンコーダ806に出力され、マッチエンコーダ806はマッチシフタ805内に保存されたビットで表される値をコード化して、出力をマッチアキュムレータ807のクロックに提供するように構成されている。種々の実施形態において、マッチアキュムレータ807は1以上のモデルデータ入力ライン809を介してモデルの累積インクリメントを受け取り、マッチエンコーダ806の出力の値に基づいてクロックされると累積インクリメントを累積するように構成されている。また、種々の実施形態において、マッチアキュムレータ807はマッチアキュムレータ807内で累積された値を対応するデータパス518に出力するように構成されている。種々の実施形態において、制御回路422図4は、信号を各々のコンパレータアキュムレータ420に送り、制御回路422がリセット命令を含むモデル命令を実行すると、各コンパレータアキュムレータ420内のマッチアキュムレータ807がデフォルト値にリセットされるように構成されている。また、種々の実施形態において、制御回路422は信号を送り、制御回路422が比較命令を含むモデル命令を実行すると、各コンパレータアキュムレータ420内のマッチアキュムレータ807によって累積が行われるように構成されている。そのような実施形態において、各コンパレータアキュムレータ420内のマッチアキュムレータ807は、対応するマッチエンコーダ806の出力によってクロックされることもでき、累積が許可されると、マッチアキュムレータ807は対応するマッチエンコーダ806から出力された値に依存して累積を実行するか、または実行しない。II.VSoCシステム実装取得された画像データの全セット内で当該画像内部の注意の焦点に基づいて離散的画像データを処理するためのシステムと方法の例示的な実施形態において、全体的ビジョンシステムアーキテクチャに実装されるビジョンセンサVSoC200が提供される。このシステムと方法の機能を相互参照しやすくするために、上記の例示的なVSoC200について説明された種々の要素が再編成される。たとえば読み出し回路の要素は、一部は上述した制御回路422内にあり、一部は処理回路424図4および図5内にある。同様に、LAP425は全体的な処理回路424の部分である。読者が例示的なシステムと方法の動作の基礎をなす例示的または代替的なVSoCアーキテクチャの環境をさらに理解するのを助けるために、追加的な機能および相互接続たとえばオフダイの第2のプロセッサおよび種々の通信ポートについても説明する。図示されたピクセルアレイ208は例示的な表面または対象およびこれらと関連する関心のある特徴を含む視野FOVを撮像し、関心のある特徴はビジョンシステムの決定または後続のプロセスたとえばバーコード復号の前提となる所望の画像情報を含んでいる。FOVに対するピクセルアレイ208の向きは、角度と回転において非常に可変である。同様に、対象/表面の運動が存在する場合に、ピクセルアレイはこの実施形態に従って考えられる画像の取得と処理のために、復号に必要とされる情報をより確実に取得することができるフレームレートで動いていることも可能である。例示的なピクセルアレイは1,028列と786行で構成できる。そのようなアレイは境界効果を避けるために上下左右に2行もしくは2列のダミーを含むことができ、したがって例示的な1,024行×782列のアクティブな8ビットまたは代替的に6ビットピクセルアレイを提供する。ADC回路を含め相互接続された読み出し回路および上述した関連する機能は、アナログセンサ出力をデジタルピクセルデータに変換し、これは例示的な実施形態に従い関連するバスを介して1024行として線形アレイプロセッサLAP425に読み出される。ピクセルアレイの構成は非常に可変であることに留意されたい。例示的なアレイは2D構成であるが、代替的な実装においては1以上のIDアレイも用いることができる。ピクセルアレイ208内の画像取得プロセスは、センサコントローラによって扱われる。例示的な実装は、アレイ内の各ピクセル行に対する動作と、読み出し回路に対するイベントのシーケンスを制御するために必要な波形を生成する有限状態機械FSMからなる。センサコントローラの動作は、使用者によりVSoC200の部分である別個の16ビットプロセッサ501上述した図5の制御プロセッサ501内のコンフィギュレーションレジスタを介してプログラムでき、これについては以下に説明する。これらのレジスタは、ROIのパラメータ、シャッタモード、露光時間およびADC解像度を含め、ピクセルアレイ208と読み出し回路のすべてのプログラム可能なパラメータを構成する。画像フレームが取得されると、これが読み出されて1024幅で1行ずつデジタル形式に変換される。この読み出しおよびA/D変換プロセスと並行して、LAP425はこのシステムと方法のROI検出および特徴抽出用途のプログラムコードに従って画像を処理する以下に説明する。LAP425は1,024個の同一処理要素一次元アレイからなるパラレルプロセッサであり、それらの各々は一般的に上述したように1ビットデータパス、16アキュムレータビット、キャリーフラグおよびイネーブルフラグを含んでいる。LAP425はSIMDマシンとして実装され、すべてのプロセッサは同調して動作し、同じ動作を異なるデータで実行する。各々のLAP要素はデータメモリの1列4,096ビットから1ビットを読み出しおよび書き込むことができる。行アドレスはLAPメモリの読み出しまたは書き込みサイクルの間はすべての要素に対して同じである。データメモリとLAPとの間には、読み出されたデータを左または右に13位置までシフトするように構成できるバレルシフタがある。これにより各LAP要素はそれ自身の位置から左および右の13列からのデータにアクセス各クロックサイクルすることが許容される。データメモリすなわち図4で上述した1以上の画像メモリ装置414は幅1024のバスを介して相互に接続されており、1,024×1,024ビットのブロックからなる。このメモリは画像処理の中間結果を保存するために使用される。メモリは処理され全体画像のうちLAPに由来する部分のみ保存するように適合されていることに留意すべきである。以下に説明するように、メモリはまたROI情報や抽出された特徴など処理の中間結果も保存する。こうしてピクセルアレイからのデータは絶えずメモリ414を通して動かされ、成果のあるID検出動作に関係しなければ放棄され、または情報が有望なID特性を示せば復号などの後続のステップおよびプロセッサに移される。典型的な用途において、取得された画像は1行ずつLAPに送られる。LAP425において、データは処理されて同等の二値画像を生成する。その結果生じる二値画像は後続の処理のために漸進的にデータメモリに保存される。ビジョンシステムの幾つかの実施形態において、二値画像はVSoCの相関器によって処理されて正規化相関とパターンマッチング情報を獲得する。該当する場合は、二値画像は正規化相関を加速して、画像内のパターンマッチングを実行するために使用できる。プライオリティエンコーダは、画像行における推移を検出するために最適化される。上述したプライオリティエンコーダ1024ビット幅はバスを介してメモリ414と相互作用して、データメモリ行における設定ビットの高速検出に備える。LAP425で実行される多数の画像処理動作があり、画像行内のポイントの接続性または分布が検出されなければならない。例示的な実施形態において、これらの動作を加速するためにVSoC200はアレイを横断して伝播生成機能を実装するカスタム論理ブロックを包含する。伝播生成ユニットバス上の2つの可能な用途は、対象の位置特定と未知ポイントの解明である。ブロックは1,024個の同一セルからなる。各セルは近傍セルと通信する1対の信号伝播INおよび伝播OUTを有するそれぞれ右方向と左方向に対応。アレイの左側と右側の入力はゼロにリセットされる。LAP425ワードを伝播生成ユニットに書き込んだ後、伝播生成ユニットの値が有効になるまで、例示的に5サイクル必要である。制御プロセッサ501はVSoC200に、LAP425とは別個のコンパクトな高速処理ユニットを提供する。例示的な実施形態においてプロセッサ501は16ビットユニットであるが、その他のサイズも考えられる。プロセッサ501はLAP425と相関器に効率的な低レベル画像処理と制御を提供する。プロセッサ501は汎用命令セットを用いて動作するが、二値画像はVSoCの動作の典型的なモードであるため、二値画像で動作するための追加的な専用命令もサポートする。プロセッサ501は、任意の主要なフラグまたは周辺的なフラグを含め多数のソースからトリガされて、インタラプトをサポートする。プロセッサ501はそれぞれの16ビットバスを介してLAP425およびデータメモリ414と相互接続されている。例示的な実施形態において制御プロセッサ501本明細書ではCPUとも呼ばれるは、縮小命令セットコンピュータRISCを採用したハーバードアーキテクチャを用いて実装され、プログラムとデータに対して別個のメモリを提供するが、プログラムメモリはデータ保存にも使用できる。制御プロセッサ501はR0からR14まで16個の汎用レジスタを定義する。例示的な実装においてこれらのレジスタはそれぞれ16ビット幅である。例示的な17ビットプログラムカウンタ/シーケンサもあり、これはプロセッサがプログラムRAMすなわち上記の汎用メモリ402に65,53616ビットワード、および同じ量をプログラムROM948に直接アドレス指定できるようにするただし本発明の実施形態では現在ROMのみ48Kのアクティブワードを有する。すべての計算はレジスタ間で行われる。したがってメモリからの値は、操作される前にレジスタにロードされる。データメモリ414はレジスタをポインタとして用いて、バスを介して16ビットワードとしてアクセスされる。レジスタは随意にメモリアクセス後にプレデクリメントもしくはポストデクリメントまたはプレインクリメント/ポストインクリメントされ得る。例示的な実装においてポインタプラス一定オフセットアドレス指定モードが設けられている。256Kワード512Kバイトの全データメモリにアクセスすることを可能にするために、例示的な実装ではページレジスタが使用される。二値画像はデータメモリにおいて16ピクセルで1ワードに圧縮される。効率的なアクセスを可能にするために、2個のポインタレジスタPXおよびPYが使用される。これらは単一のピクセルをアドレス指定するために使用され、アクセス後に独立にポストインクリメントおよび/またはポスト-デクリメントされるか、または修正されないままである。PXレジスタは10ビットであり、PYレジスタは12ビットでイメージマッピングを反映する1,024列×4,096行。128ワードI/Oスペースも例示的に提供され図示せず、絶対的アドレス指定を用いて直接アクセスされる。これは多くのシステムと周辺レジスタを含んでおり、残りはスクラッチメモリによって占められる。追加的なレジスタ演算のために補助レジスタセットも提供される。LAP425のアキュムレータバンク16ビットの1,024ワードはPXレジスタをポインタとして用いてアクセスできる。ALU演算はワーキングレジスタ間でALUと16×16乗算器累算器を用いて行われ、任意の2個の汎用レジスタをオペランドとすることができる。そのような演算の32ビット結果は、32ビットMRレジスタ図示せずに保存されるまたは累積される。シフタが例示的に設けられており、これはMRレジスタを0~31ビットだけシフトダウンでき、結果を指定された汎用レジスタに入れる。乗算器およびシフタは符号付きまたは符号なしの演算用に構成できる。プログラムメモリ402は16ビットの65,536ワードを保存する図4で上述した汎用メモリの一部。このRAMメモリ402は物理的に32ビットの32Kワードとして編成できる。ROMは32ビットの24Kワーとして編成できる。ページレジスタは、ROMまたはSRAMが、プログラムフェッチ、プログラムメモリ読み出しおよびプログラムメモリ書き込みに対する別個のページでアクセスされたか決定する。起動時にプロセッサ501は最初にROMからを実行する。ROMはプロセッサの起動コンフィギュレーションピンを読み出して所望の二次起動モードを決定する起動ソフトウェアを含んでいる。これらのモードはホストパラレルポートFIFOからの起動、SPIスレーブポートを介するホストプロセッサからの起動、およびSPIマスタポートを介するシリアルフラッシュからの起動を含み、これらはすべて16ビット通信バスを介してプロセッサと相互接続されている。レジスタ値およびデータのRAMとの双方向伝送を可能にする全二重通信を実装するために、SPIチャネルが提供されていることに留意されたい。標準SPIマスタポートはシリアルフラッシュメモリ、またはその他の周辺装置にアクセスすることが意図されている。ソフトウェア制御下で2台の互換装置を接続できるようにするために2個のセレクトピンが設けられている。スレーブSPIポートはホストマイクロコントローラとの代替的インタフェースとして使用できる。利用可能な起動モードの一つが選択されたら、ソフトウェアは適当な装置からコードをロードして、プログラムRAM402に保存する。すべてのソフトウェアがロードされたら、制御はプログラムRAM402のスタートに送られる。パラレル処理タスクとシリアル処理タスクとの効率的なバランスを提供するために、例示的なVSoCのLAP425に関連して多様なプロセッサ実装を使用できることを明確にしておくべきである。例示的な実施形態において、CPU/プロセッサ501とLAP425は同時に動作せず、むしろいずれか一方は他方が与えられた命令を実行している間はアイドル状態に留まることを要求する。図示されたCPU/プロセッサ501は例示的な実施形態に従って可能な1つの実装にすぎない。LAP、データメモリおよびその他の関連するコンポーネントとの適当な相互接続を有する代替的な実施形態において、プロセッサは種々の非ハーバードおよび/または非RISCアーキテクチャに基づいて実装できる。SPIポート構成に加えて、パラレルFIFOポートが設けられている。このポートはオフチップホストプロセッサ、マイクロコントローラまたはその他の装置、たとえば例示的な実施形態の第2のプロセッサとの通信のために意図されている。第2のプロセッサはデータメモリ414からLAP425を介して処理されデータを受け取り、受け取ったデータで特定の動作または一群の動作を実行して、所望の出力値を提供しようとする。このプロセスについてさらに以下に説明する。代替的に、同じピンはここに示すビデオポートとして使用でき、ビデオポートを備えた別のプロセッサに画像を出力する。一実施形態において、512ワードのホストポートは1024ピクセル行を約25.5マイクロ秒または約51画像/秒で転送する。バスに沿って別個の専用ビデオポートを設けてもよいことに留意されたい。ツイストペア線を通してデータを連続的に高速で送るために低電圧差動信号LVDSポートが設けられている。これは多様な商業ソースからの非直列化ICと互換性のあるスタートビット、10データビットおよびストップビットからなるフレームフォーマットを使用する。種々の実施形態において、LVDSポートは第2のプロセッサと通信するためにホストポートの代替として使用できる。さらに、シリアルポートが標準UARTの形で設けられており、および例示的に16までのGPIOラインを有する汎用入力/出力GPIOポートが設けられており、バスに沿った他のI/Oポートのピンで多重化される。IEEE標準合同検査活動グループJTAGポートがデバッグポートとして使用でき、プロセッサ501と内部コンフィギュレーションレジスタを通してほとんどすべての内部装置と直接接続できる。このチャネルによりメインメモリおよび内部装置にアクセスすることが可能である。電力管理機能、システムクロック生成器、リセット機能およびバステーブルROMもVSoC200内で例示的に設けられている。加えて、バス相互接続はプロセッサ501に反応する統計ユニットである。このユニットは例示的にエッジトラッキング動作中に統計を計算する。統計は1組のI/Oマップレジスタに保存される。エッジトラッキングが完了したら、統計を使用して追跡されている対象の周囲と、直交線および対角線による境界ボックスを決定することができる。上述したVSoCの実装は、例示的な実施形態に従うシステムと方法で使用するための種々可能なプロセッサ実装の例であることを明確にしておくべきである。代替的な実施形態において、プロセッサは種々のパラレルアーキテクチャの周囲に、別個の制御プロセッサを有して、または有さずに編成できる。同様に、本発明のシステムと方法を実行するために、高度にパラレルではなく適当な速度とデータ処理能力を有する1以上のプロセッサを使用できる。したがって本明細書で使用するVSoCまたはビジョンセンサという用語は広く捉えるべきであり、上述した何らかの動作が他のオンチップコンポーネントと相互接続された別個のコンポーネントによりオフチップオフダイで実行されるものも含め、多様なプロセッサアーキテクチャを含む。たとえば、本明細書の例示的なアーキテクチャはSIMD構成LAP、メモリ、汎用プロセッサCPUおよびピクセルアレイを単一のチップ/ダイ上に含んでVSoCアーキテクチャを定義する一方で、たとえばピクセルアレイはオフチップ/オフダイで存在し、適当なリードによって作動的に相互接続され得ることが明確に想定されている。このことは何らかの実装において望ましいであろう。たとえば、装置フォームファクタが特定のジオメトリを規定する場合、または処理アセンブリとは別個のピクセルアレイが所望される場合などである。III.注意の焦点に基づく処理A.システムの概観最初に例示的な実施形態を図9の一般化された配置構成を参照して説明する。これは例示的なシステムと方法に従って使用するための上述したVSoCアーキテクチャの内部の機能を要約したものである。以下に例示的な実装について説明する。VSoC内で実行されるオンダイコンポーネントおよび機能1010は離散的なボックスで示されている。センサおよび読み出し機能1020は、視野FOV1030内で例示的な対象1032の連続画像を取得する。対象はビジョンシステムプロセスにおいて1以上の特別関心のある領域1034を含んでいる。以下に説明するように、これらの領域はビジョンシステムのプロセスに対する1以上の注意の焦点として確定される。センサ/読み出し機能1020はこの画像のシーケンスから処理されていない画像データ1036をSIMDプロセッサ1040のアレイに提供し、これがオンダイの汎用CPU1050と連携して前処理アプリケーション1042を実行する。SIMDアレイとCPUは集合的に、本明細書で説明するオンダイの第1のプロセッサグループ1052を定義する。画像データで実行される前処理のタイプは、本明細書で想定されている種々の実施形態においては非常に可変である。例示的な実施形態において、前処理プロセスは1組の前処理された画像データ1062を生成し、これはSIMDアレイ1040と作動的に結合されたオンダイメモリ1060に保存される。一実施形態において、以下に説明するように、前処理されたデータは例示的に特別関心のある領域に関する縮小されたデータセットを含む。前処理されたデータは当該領域に関する情報、たとえば注目された特徴のピクセル位置やその他の画像データパラメータを含む。この縮小されたデータセットは全体画像データよりはるかにコンパクトであり、より容易にメモリ1060に保存される。画像データ1036が読み出されると、第1のプロセッサグループ1052は典型的に読み出しと並行してまたは同時にすなわち同じ処理サイクルで前処理を実行する。種々の実施形態において前処理されたデータは同様にメモリ1060に保存される一方で、原画像データの少なくとも一部1036たとえばデータに関係する領域1064は並行して同じ処理サイクルで第2のプロセッサにまたはプロセッサグループ1070に送られて、ローカルメモリ1074に保存される。適当な時間で他の追加のおよび/または関連する情報1066も第2のプロセッサに送られ得るそのような情報が作成された後。第2のプロセッサは上述したようにオフダイで存在できる。本明細書で用いられている第2のプロセッサという用語は、画像データに関して1以上の画像処理ステップを実行する1以上の処理メカニズムたとえば第2のプロセッサグループを指す。以下に、例示的な実施形態に関して第2のプロセッサの種々の例を説明する。代替的な実施形態において、第2のプロセッサは他の画像処理装置コンポーネントとオンダイまたは部分的にオンダイで具体化できる。他の例示的な実施形態において、第2のプロセッサ1070に送られた画像データ1064および情報1066は前処理された画像データセットとして特徴付けられる。以下に説明するように、これは縮小された画像たとえば原画像またはエッジ画像よりピクセルが少ない画像、特徴情報、または第2のプロセッサ1070が所定の機能を実行する上で有用な原画像データの他のサブセットおよび派生物であってよい。一般的に、第2のプロセッサの機能は、受け取ったデータでハードウェアおよび/またはソフトウェアを用いる画像処理アプリケーション1072を実行して出力値1080を生成し、これらの出力値1080は出力値を利用するタスク1090で用いられる。本明細書で用いられている出力値という用語は、使用者または装置がタスクを実行したり、決定したりできるようにする、画像から導き出された情報またはデータを指す。出力値は典型的に、記号コードに関するデータ、部分アライメントの向きおよび検査結果欠陥/非欠陥、公差内/公差外、アラーム/非アラーム、拒否/承認などを提供する数字およびテキストによる情報または他の記号による情報であるが、これらに限定されない。出力値は一般的に、実際にタスクを実行する決定または命令を得るためになおも後続のステップたとえば人または装置による新しい画像のレビューを必要とする実際の画像ピクセル値の任意のグルーピングであり、具体的には部分画像、圧縮画像、精選された画像、フィルタリングされた画像などである。データは、種々の実施形態に従いシフトレジスタおよびダイレクトメモリアクセスDMA構成を含むこれらに限定されない多様なメカニズムとプロセスを用いて、第1のプロセッサグループから第2のプロセッサに送られる。そのようなメカニズムと構成、および関連するプロセス図示せずは、当業者にとっては明白なはずである。本明細書で説明するSIMDアーキテクチャは、全体の読み出しから離散的ピクセルに割り当てられたグループからプロセッサを用いてデータを有益に処理することに留意されたい。一実施形態において、プロセッサはセンサアレイの行に対応するが、その他の編成も想定されている。これは例示的にビットシリアルデザインとして実装される。代替として、本明細書の原理はバイトシリアルデザインまたは他のデータグルーピングシリアルデザインとして実装できることが明確に想定されている。この構成は一般的に、画像のクワドラント2Dセクタが与えられた時間に与えられたプロセッサによって処理される慣用のブロックレベル処理と対照をなす。以下に、上述したプロセッサ構成および関連する機能を用いる種々の例示的な実施形態を詳しく説明する。とりわけ、例示的な実施形態のシステムと方法は、第1のプロセッサグループ1052と関連したデータメモリ1060を提供し、これは与えられた画像取得イベントでセンサアレイ1020から読み出される画像データの量より容量が小さい。データメモリは、別個のプログラムメモリ構造を含む全体メモリアーキテクチャ典型的にオンダイの部分であってもよい。代替的にデータメモリは統合されたまたは単一のメモリアレイにおいてプログラムメモリおよび随意に他のタスク指向メモリ構造と組み合わせてもよい。このデータメモリは第1のプロセッサグループによって直接アクセス可能なランダムアクセスメモリRAMを含んでいてもよい。つまりプロセッサグループは、保存されたデータの部分のシリアル送信を要求するバスベースのアーキテクチャではなく、比較的直接的な接続を通してデータメモリの記憶位置をアドレス指定できる。代替的に言えば、第1のプロセッサグループとデータメモリとの接続は、メモリアクセス動作を待ち時間オーバヘッドの観点から比較的低コストにする。B.縮小された画像データセットプロセス1100のフローチャートを詳細に示す図10を参照すると、例示的な実施形態に従いプロセス1100は原画像データから縮小された画像データセットを生成し、縮小されたデータセットを処理して出力値を生成する。プロセス1100は、対象または表面を含んだ視野の一連の画像の各々を取得し、これが実行されるタスクの基礎となるステップ1110。タスクは、たとえば対象で検出されたバーコードから復号されたバーコード値を出力することであってよい。第1のプロセッサグループSIMDアレイとCPUは、所定の前処理機能に従って縮小された画像データセットを生成するステップ1120。たとえば前処理プロセスは、周囲の視野および対象の非エッジ特徴から関係のないデータを取り除いたエッジ画像を生成できる。第1のプロセッサグループは、画像データがセンサから読み出されるのと同時にたとえば同じ処理サイクルで動作する。縮小された画像データはオンダイデータメモリに保存されるステップ1130。エッジ画像などの縮小されたデータセットのために保存される情報の量は、典型的に全画像に含まれるデータの量より著しく少ない。これにより縮小されたデータセットは、実行時動作が進行するときにデータメモリ内に収まることができる。この実施形態において、センサから読み出された画像データの少なくとも一部は第2のプロセッサに送られるステップ1132。一実施形態において、第2のプロセッサはセンサから全画像データを受け取ることができる。代替的に、データセットの一部が第2のプロセッサに送られる。どの部分が送られるかの決定は、他の基準と並んで縮小されたデータセット内に特徴が存在することに基づいて制御できる。ステップ1140で、縮小されたデータセットはさらに第1のプロセッサグループで前処理されて、さらに第2のプロセッサにより第2のプロセッサ上にある画像解析アプリケーション/プロセスを用いて処理される必要のある1以上の領域を特定する。たとえばデータメモリに縮小されたデータセットとして保存されたエッジ画像特徴はバーコード状の特徴について、特定の相対的間隔および特定の相対的配置パターンで配置されたエッジ検出について解析され得る。所定の領域は候補特徴を有するエリアの周囲に定義され、領域の位置は領域識別子IDとして定義される。IDはピクセル位置領域境界ポイントまたはその他の指標、または第2のプロセッサが処理の注意を特定された領域に集中できるようにする類似の情報からなっていてもよい。この領域情報はステップ1150で第2のプロセッサに送られる。さらに一般的に、領域インジケータまたは領域IDは、第2のプロセッサが読み出された全体画像データのサブセットである画像データの一部で画像処理機能を実行できるようにする任意の縮小されたデータ値または縮小されたデータセットであってもよい。したがってこの用語は、それ自体は全体画像の領域ではない画像データサブセットに関係する情報を含め、広く取られるべきである。プロセス1100において、第2のプロセッサがステップ1150で受け取った領域情報を用いて、ステップ1160で第2のプロセッサの所定の画像解析プロセスを実行する。例示的な実施形態において、第2のプロセッサはその画像解析処理タスクを情報中の特定された領域にさし向け、したがって直ちにそのローカルメモリ内の全体または全体の一部の画像データの小さいサブセットで作業することができる。第2のプロセッサの所定のプロセスから結果が得られたら、ステップ1170で1以上の出力値として提供される。バーコード復号の実施形態において、第2のプロセッサは復号されたバーコード値または読み出し失敗を出力値として提供する。図11は、別の例示的な実施形態による、原画像データから縮小された画像データセットを生成し、縮小されたデータセットを処理して出力値を生成するプロセス1200のフローチャートを示す。上述したように、センサは解析されるべき対象または表面を含んだ視野の画像データを生成するステップ1210。上述したように、第1のプロセッサグループは縮小されたデータセットを生成する一方、同じ処理サイクルでデータ縮小機能、たとえばエッジ検出プロセスまたは類似の特徴識別プロセスを用いてセンサから画像データを読み出すステップ1220。縮小されたデータセットは並行してオンダイデータメモリに保存されるステップ1230。第1のプロセッサグループはステップ1240で、後続の前処理タスクとしてデータ選択機能を適用する。例を示すと、データ選択機能を用いてデータの領域を決定および選択することができ、1最初に類似の向きの近傍エッジを検出し、2これらのエッジを領域内に組み入れ、最後に3所望の特性を持った領域、たとえば特定のアスペクト比のレンジに含まれるか、またはエッジ密度閾値を越える領域を選択する。これにより第2のプロセッサに転送されるべきデータのサブセットが生成される。これらのサブセットは、第2のプロセッサがその処理活動を集中させるべき特徴を含んでいる領域を定義できる。ある実装においてサブセットは縮小されたデータエッジ画像などのみを含んでいてもよい。代替的にサブセットは、縮小されない原画像データの、処理されるべき特徴を有する領域を表す部分と、当該領域に関係する情報を含んでいてもよい。この情報は領域位置情報およびその他の関連データ、たとえば個々の特徴位置や特性を含んでいてもよい。次にステップ1260で、画像のデータのサブセットは第2のプロセッサにより所定の処理タスクに従って処理され、画像に関連する出力値が装置または使用者に送られ、これらはタスクを実行し、または決定を下すために出力値を利用する。C.固定/アライメント処理図12を参照すると、プロセス1300は固定/アライメント動作で使用される縮小されたデータセットを生成するために示されている。例を示すと、そのような動作は対象上の特定の構造の位置、たとえばロボットマニピュレータが固定部材を提供するボルト穴の配置、または回路基板上の電子部品ピックアンドプレース動作を決定するために使用される。ステップ1310で、センサは対象または表面の一連の画像を取得して、画像データを第1のプロセッサグループに読み出す。画像が読み出される間、第1のプロセッサグループによって縮小されたデータセットが生成されるステップ1320。縮小されたデータセットは生成されると、オンダイデータメモリに保存されるステップ1330。画像データを読み出す間、画像データの少なくとも一部は第2のプロセッサに送られる。これはセンサ読み出しと同じ処理サイクルで同時に起こるステップ1340。最初の縮小されたデータセットの生成においてステップ1320、第1のプロセッサグループは画像データを受け取ったら処理して、たとえばエッジ画像を提供する。エッジ画像またはその他の縮小されたデータセットは、読み出された原画像データよりもサイズが著しく小さく、パターン検出プロセスで重要性を持ち得る特徴のみを含んでいる。続いて第1のプロセッサグループは、縮小されたデータセットでパターン検出プロセスたとえば慣用的なブロブ解析、幾何学的パターン検出などを実行して、画像内のどの位置が所定のパターンを有するか決定するステップ1350。この結果は原画像データから縮小されたデータセットを表すので、さらに縮小されたデータセットとして定義できる。この実施形態において、さらに縮小されたデータセットは特定された特徴を有する画像内の領域の位置領域IDであり、これは撮像された対象または表面に関するアライメント、計測、測定または固定動作で用いることができる。生成された領域IDは、オンダイデータメモリに保存され、および/またはステップ1360で第1のプロセッサグループから第2のプロセッサに送られる。破線ブロックで示されているように、その他の有用な前処理情報、たとえば最初の縮小されたデータセットの全部または一部たとえばエッジ画像または追加の領域ID情報が、随意に第1のプロセッサグループから第2のプロセッサに送られるステップ1370。第2のプロセッサは画像データと領域IDデータを受け取ると、ビジョンシステムアルゴリズムを実行し、これは対象/表面のサイズ、回転、スキューなどを決定するための慣用的なアプリケーションを含んでいてもよいステップ1380。パターン位置注意の焦点の知識により、第2のプロセッサは全体画像のうち所定の計測、測定および検査動作に使用されるパターンを有する領域を含まない位置で動作を省略できる。したがって第2のプロセッサはステップ1380で、出力値をアライメントまたは固定パラメータ、たとえば位置、サイズ、回転、スキュー、距離測定値などを提供する。D.粗い/詳細なアライメントおよび粗い/詳細な検査処理図13を参照すると、プロセス1400は粗い/詳細なアライメントまたは粗い/詳細な検査動作で使用される縮小されたデータセットを生成するために示されている。ステップ1410でセンサは対象または表面の一連の画像を取得すると、画像データを第1のプロセッサグループに読み出す。画像が読み出される間、第1のプロセッサグループによって縮小されたデータセットが生成されるステップ1420。縮小されたデータセットは生成されると、オンダイデータメモリに保存されるステップ1430。画像データを読み出す間、画像データの少なくとも一部が第2のプロセッサに送られる。これはセンサ読み出しと同じ処理サイクルで並行して起こるステップ1440。最初の縮小されたデータセットの生成ステップ1420において、第1のプロセッサグループは画像データを受け取ると処理して、たとえば粗いエッジ位置を提供する。この縮小されたデータセットは読み出された原画像データよりサイズが著しく小さく、後続のパターン検出プロセスで重要性を持ち得る特徴のみを含んでいる。次に第1のプロセッサグループは縮小されたデータセットでパターン検出プロセスを実行して、画像内のどの位置が所定のパターンを有するか決定できるステップ1450。この結果は原画像データから縮小されたデータセットを表すので、さらに縮小されたデータセットとして定義できる。この実施形態において、さらに縮小されたデータセットは特定された特徴を有する画像内の領域の位置領域IDであり、これは撮像された対象または表面に関するアライメント、計測、測定または固定動作で用いることができる。生成された領域IDは、オンダイデータメモリに保存され、および/またはステップ1460で第1のプロセッサグループから第2のプロセッサに送られる。破線ブロックで示されているように、その他の有用な前処理情報、たとえば最初の縮小されたデータセットの全部または一部たとえばエッジ画像または追加の領域ID情報が、随意に第1のプロセッサグループから第2のプロセッサに送られるステップ1470。ステップ1480で、領域IDおよびその他の情報は第2のプロセッサによって使用されて出力値を詳細なアライメントまたは詳細な検査結果の形で生成するが、これについてさらに以下に説明する。粗い/詳細なアライメントの実施形態において、領域IDとその他の有用な前処理情報は、対象または特徴アライメントの粗い評価、たとえば粗い精度を採用するエッジ検出プロセスを用いて比較的高速に得ることができる粗いエッジ位置を提供する。たとえば、この粗い精度は約1/2ピクセル以上であってもよいが、これより粗大または微細な粒度も想定されている。これは通常シングルステップの詳細なアライメントプロセスに伴う処理時間およびデータ保存オーバヘッドを節約する。第2のプロセッサは画像データと粗いエッジ位置を受け取ると、詳細なアライメントアルゴリズム案を実行するが、これは高精度の2Dまたは3Dアライメントを実行するための慣用的なアプリケーションを含んでよいステップ1440。このアプリケーションはピクセルの1/40のエッジ精度および1/10の回転度またはそれ以上の精度を有していてもよい。それ以外の精度もシステムの必要性に応じて明確に想定される。一般に、粗いアライメントプロセスは詳細なアライメントプロセスよりも精度が少なくとも数倍低い。詳細なアライメントを実行するために慣用的なまたはカスタマイズされたアプリケーションを使用できる。とりわけ詳細なアライメントアプリケーションはエッジを含んでいることが既に特定されている比較的限局された領域で動作するので、処理の速度と効率は大幅に増す。アライメントは典型的なDSP構成における処理集約的なアプリケーションである。それを限局された小さいエリアに集中させることによって、詳細なアライメントプロセスは著しく高速に行われる。詳細なアライメントステップでサーチされた領域が実際にエッジ位置を特定することを保証するために、第1のプロセッサグループは、検出されたエッジの周囲の十分なエリアたとえばエッジ周りの数ピクセル境界を定義する粗いアライメントデータたとえば対象または特徴のエッジ位置を提供できることに留意されたい。アライメントの一実施形態におけるこの出力値は詳細なアライメントデータたとえばエッジ位置または対象位置として特徴付けられ、多自由度たとえば移動、回転、スキューなどに関して定義され得る。出力値として検査結果を提供する実施形態において、領域IDおよびその他の有用な前処理情報は、典型的に対象または表面の訓練されたパターンに基づく粗い検査結果特徴および位置を含んでいてもよい。検査結果は対象または表面に出現することが想定されている特徴ボルト穴、ラベルなどおよび/または出現することが想定されていない特徴裂け目、亀裂などであってもよい。一般に、第1のプロセッサグループは検査アプリケーションを操作できるが、これは慣用的であってよく、検査動作の実行では粗い精度に設定されている。粗い検査を行うことができる例示的な検査アプリケーションは、コグネックスコーポレーションマサチューセッツ州ナティックから出ているPatQuick商標である。第2のプロセッサはステップ1480で画像データと粗い検査結果を受け取るとビジョンシステムアルゴリズムを実行し、これは精確な結果を提供する慣用的な検査アルゴリズムを含んでよい。このアルゴリズムは具体的には粗い結果の位置を含んだ画像データ内の位置で動作できる。第1のプロセッサグループでは急いで候補結果を特定して適当な領域IDと情報を生成するために低精度の検査プロセスが採用されているので、これは種々の誤検出の特徴と実際の特徴を含んでいることがある。第1のプロセッサグループがそのような結果を生成できる速さは、誤検出が存在する可能性を埋め合わせる。詳細なプロセスで誤検出が発見されたら、これは放棄されて、次の粗い結果が該当する場合第2のプロセッサによって処理される。検査の実施形態において、第2のプロセッサは出力値対象または表面に対する精確な検査結果の形で提供するステップ1480。これらの検査結果は検出された特徴のリストたとえば3個の穴、1個の完全なラベルなどであるか、または決定たとえば公差内/公差外品、良品/不良品、部品承認/拒否であってよい。粗い検査と詳細な検査で得られる結果はばらつきがあることに留意されたい。ある実装において粗い検査は精確な位置を生成できるが特徴は不確かであるか、または位置はあまり精確ではないがより確かな特徴を得ることができる。同様に粗い段階では位置および特徴の存在/不在は精度が低いことがある。詳細な検査はより精確な位置と、より確定的な特徴の存在/不在、または両方を生成できる。E.運動、速度および登録情報の決定図14はプロセス1600のフローチャートを示す。別の例示的な実施形態により、プロセス1600は原画像データから縮小された画像データセットを生成し、縮小されたデータセットを処理して、撮像された運動する物体または表面に対する登録情報、速度または運動の情報の形で出力値を生成する運動するはより一般的には対象または表面とセンサの視野との相対的な動きとして定義される。センサは運動の判定を可能にする対象または表面の特徴を含んだ視野の一連の画像を生成するステップ1510。対象は画像フレーム間で追跡できる認識可能な対象もしくは対象の部分、またはウェブ登録マークや表面上に規則的な間隔で現れる穿孔などの特徴であってもよい。より一般的に、対象または表面上の任意のユニークな構造、基準または登録マークを、この実施形態において登録情報を追跡するために使用できる。第1のプロセッサグループは各々の取得された画像フレームに対して読み出された画像データを受け取り、これらは対象または特徴を含んでよい。画像データは第1のプロセッサグループによって処理され、データ縮小機能またはプロセスを用いて縮小されたデータセットを生成するステップ1520。この実施形態においてプロセスは、1以上の所定の対象および/または特徴をサーチするパターン認識または特徴検出プロセス慣用的であってよいであってもよい。画像内で特定された各々の特徴またはパターンは位置が付与され、タイムスタンプを含んでいる。このデータは領域IDおよび/または他の有用な情報としてオンダイデータメモリに保存されるステップ1530。これらの領域IDおよびその他の有用な情報は第2のプロセッサに送られる。特定された特徴は画像から画像へと動くので、画像間の時間から各画像内の特徴の相対的位置を計算できる。したがって位置の変化と位置の変化の時間が与えられると、第2のプロセッサはシステム内の他の対象たとえばプリントヘッドまたはカッタに対して対象または表面の瞬間的な速度、その相対的な運動および/または登録情報を計算できるステップ1540。この計算を用いて出力値を、イベントについて決定するために使用できる対象または表面の速度、運動の情報および/または登録信号の形で提供するステップ1550。たとえば、信号を用いて所定の時間でカッタを操作し、またはカウンタを割り出すことができる。同様に、信号を用いて動いているコンベヤベルトを加速したり、減速したりできる。この決定は第2のプロセッサ、別のプロセッサまたは第1のプロセッサグループによって下すことができる。F.領域を保存するための追加メモリ幾つかの実装において、オフダイであってもよく、第1のプロセッサグループおよび第2のプロセッサと相互接続された追加メモリを提供することが望ましい。図15に構成1600が示されているが、これは本明細書に記載された第1のプロセッサグループ1610と、第2のプロセッサ1620、および追加メモリ1630を含んでいる。図示されているように、第1のプロセッサグループ1610はセンサ/読み出し回路1640と相互接続されており、センサ/読み出し回路1640は第1のプロセッサグループおよびその直接アドレス指定可能なデータメモリ1612に対してオンダイまたはオフダイであってよい。センサ/読み出し回路1640は撮像された場面1642から取得された画像データ1644を第1のプロセッサグループに前処理のために送る。本明細書で他の実施形態で説明されているように、オンダイの直接アドレス指定可能なデータメモリ1612は一般的に容量が限られており、完全に読み出された所定の画像フレームで取得された画像データの全セットを容易に保存できないと想定されている。動作中、第1のプロセッサグループは縮小されたデータセットを生成し、これはオンダイのデータメモリに保存される。この縮小されたデータセットは、後続の画像プロセスを特定の関心のある特徴を含んでいる画像の部分に集中させるために有用なエッジ画像または他の縮小された画像データセットであってもよい。一実施形態において、画像データ1646は並行してセンサ/読み出し回路1640から、追加メモリ1630メモリ容量が十分大きければにも送られる。代替的な実施形態において、画像データ1648は直接センサ/読み出し回路1740からではなく、第1のプロセッサグループを介して画像データが読み出されるとメモリ1630に送られることができる。第1のプロセッサグループは縮小されたデータセットでデータ選択機能を実行して領域ID1650を生成する。これらはオンダイメモリに保存できる。領域IDは追加メモリ1630内の対応する画像データの位置に関係している。そのような領域IDは、縮小されたデータセットに基づいて関心のある領域を含む、追加メモリ1630の特定の位置すなわちブロックに対するメモリアドレスに関係できる。領域ID1660に対応する領域IDおよび/または画像データ領域ブロックは第2のプロセッサ1620に送られる。この転送は直接追加メモリから行われるか、または破線のブランチライン1662で示されているように第1のプロセッサグループの少なくとも部分を介して行われてよい。縮小されたデータセット1664の全部または一部は、第2のプロセッサにその処理機能で使用され有用な情報の一部として送られることもできる。第2のプロセッサ1620は領域ID、画像データおよび他の有用なデータを受け取り、それによって所望のビジョンシステムアルゴリズムを実行して、所望の出力値1670を生成する追加メモリ1630との間で画像データおよびその他の情報の転送を容易にするために、メモリコントローラおよび/またはその他の適当な回路図示せずが設けられてよい。第2のプロセッサは多様な後続の処理機能を実行できる。後続の処理機能は上述した任意の機能を包含でき、これにはID認識、固定、アライメント、検査および登録を含むが、これらに限られない。以上の他にも多くのビジョンシステムプロセスが上述した第1のプロセッサグループと第2のプロセッサおよび関連するメモリの構造と機能から恩恵を受けられることは明確にしておくべきである。第1のSIMDプロセッサグループによって画像データ内に縮小されたデータセットを作成し、続いて縮小されたデータセットを用いて画像データの全部または一部を後続処理するように第2のプロセッサ操作するいかなるプロセスも、代替的な実施形態に従って実装できる以上が本発明の例示的な実施形態の詳細な説明である。本発明の精神と範囲から逸脱することなく種々の変容および追加を行うことができる。上述した種々の実施形態の各々は、上述した他の実施形態と組み合わせて多数の特徴を提供することができる。さらに、以上に本発明の装置と方法のそれぞれの実施形態について説明したが、本明細書で説明されていることは本発明の原理の応用を例示するものにすぎない。たとえば特定のプロセッサコンポーネントの配置構成は、第1のプロセッサグループ、第2のプロセッサまたは第2のプロセッサグループおよびオンダイデータメモリに関する一般的な記述の範囲内で大幅に異なってよい。また、第1のプロセッサグループは全体的な処理構成の一部としてSIMDアーキテクチャを含んでいるが、この用語は入力された画像データで同等の機能を実行するために同等の構造を採用する他の処理アーキテクチャを含むように広く解されるべきである。同様に、ビジョンシステム構成において複数の第1のプロセッサグループが使用することができ、1以上の画像センサと相互接続され、関連する第1のプロセッサグループとオンダイに存在し、または存在しなくてもよいことが明確に想定されている。この複数の第1のプロセッサグループは1以上の第2のプロセッサまたは第2のプロセッサグループと相互接続されて、所望の出力値を生成できる。加えて本明細書で説明されたいかなる動作も、プログラム命令を有するコンピュータ可読媒体を含むハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせとして実装できる。したがって本明細書の説明は単に例を示すことが意図されており、それ以外に本発明の範囲を限定するものではない。"