(57)【特許請求の範囲】
【請求項１】
シンボルＩＤ特徴を検出および抽出するシステムであって、
ａ．いずれも離散的なダイ上にある、複数の単一命令複数データ処理（ＳＩＭＤ）プロセッサと、メモリと、少なくとも１つの汎用プロセッサとを含み、前記メモリは記憶および伝送するように構成および配置されており、前記ＳＩＭＤプロセッサはそれぞれピクセルアレイによって提供されるピクセルデータのグループ上で動作するように構成および配置されており；
ｂ．さらに、該システムはＩＤ関心領域（ＲＯＩ）検出プロセスを含んでおり、前記プロセスは少なくとも一部は捕捉されたピクセルデータがピクセルアレイから提供されている間に動作して、ＩＤ復号プロセスに伝送されるように適合されたデータセットを提供し、前記ＲＯＩ検出プロセスが、捕捉されたピクセルデータがピクセルアレイから読み出される間、ＩＤ  ＲＯＩ候補を示すエッジデータを検出するための行内で動作する行処理プロセスを含む、
前記システム。
【請求項２】
ピクセルアレイがダイ上にある、請求項１記載のシステム。
【請求項３】
各々のＳＩＭＤプロセッサが、ピクセルアレイにより共通のクロックサイクルで提供されるピクセルデータのグループ上で動作するように構成および配置されている、請求項１記載のシステム。
【請求項４】
前記ピクセルデータのグループが、ピクセルアレイからの１行のピクセルデータ読出しを含む、請求項１記載のシステム。
【請求項５】
前記ＲＯＩ検出プロセスが、各ＩＤ  ＲＯＩ候補エッジデータをそれらの向きに関して類似のビンにグループ分けするように動作する画像処理プロセスを含む、請求項１記載のシステム。
【請求項６】
前記画像処理プロセスがビンをその中のエッジデータの最大カウントで定義する、請求項５記載のシステム。
【請求項７】
前記画像処理プロセスは、ＩＤサイズ基準を満たすエッジデータを分析するブロブ分析プロセスと、ＩＤサイズ基準を満たす分析されたＲＯＩデータのマッピングに基づき少なくとも１つのＲＯＩを生成するプロセスとを含む、請求項５記載のシステム。
【請求項８】
さらに、少なくとも１つのＲＯＩを用いてＲＯＩ運動特性を定義して予測されたＲＯＩを提供するＲＯＩ追跡プロセスを含む、請求項１記載のシステム。
【請求項９】
さらに、予測されたＲＯＩを受け取り、予測されたＲＯＩおよび後続の画像捕捉に基づいて、そこに含まれている情報を復号するためにＲＯＩ内のＩＤ特徴を生成するデータ精緻化プロセスを含む、請求項８記載のシステム。
【請求項１０】
前記データ精緻化プロセスはさらに、ＩＤ特徴の角度の向きをさらに精緻化することを含んだ、ＩＤ特徴内のＩＤ情報の検証を含む、請求項９記載のシステム。
【請求項１１】
シンボルＩＤ特徴を検出および抽出するシステムであって、
ａ．いずれも離散的なダイ上にある、複数の単一命令複数データ処理（ＳＩＭＤ）プロセッサと、メモリと、少なくとも１つの汎用プロセッサとを含み、前記メモリは記憶および伝送するように構成および配置されており、前記ＳＩＭＤプロセッサはそれぞれピクセルアレイによって提供されるピクセルデータのグループ上で動作するように構成および配置されており；
ｂ．さらに該システムは、ピクセルデータが捕捉されてピクセルアレイから読み出される間、ピクセルデータのグルーピング内にＩＤ特性が存在することを決定するフロントエンド（ＦＥ）プロセスであって、各ＩＤ  ＲＯＩ候補エッジデータをそれらの向きに関して類似のビンにグループ分けするように動作する画像処理プロセスを含む、前記ＦＥプロセスと；
ｃ．ＩＤ特性の存在に関連した情報を転送する伝送プロセスとを含んでおり、ピクセルデータの少なくとも一部を復号してそこからＩＤ情報を導出する復号プロセスを可能にする、
前記システム。
【請求項１２】
ピクセルアレイがダイ上にある請求項１１記載のシステム。
【請求項１３】
復号プロセスがオフダイに置かれ、作動的にダイと接続される、請求項１１記載のシステム。
【請求項１４】
さらに、予測されたＲＯＩを導出するＲＯＩ運動決定プロセスを含む、請求項１１記載のシステム。
【請求項１５】
予測されたＲＯＩ情報は、ピクセルアレイから読み出されたピクセルデータストリームと関連して復号プロセスに伝送される、請求項１４記載のシステム。
【請求項１６】
さらに、ピクセルデータを捕捉し、そこからＩＤ特徴を抽出して、予測された関心領域に基づきＩＤ特徴の存在を検証するバックエンド（ＢＥ）プロセスを含み、抽出されたＩＤ特徴は復号プロセスに伝送される、請求項１１記載のシステム。
【請求項１７】
復号プロセスがＩＤ特性の存在をトリガとして受け取り、それに応答して、伝送されたピクセルデータストリームからＩＤを復号するように構成および配置されている、請求項１１記載のシステム。
【請求項１８】
シンボルＩＤ特徴を検出および抽出するための方法であって、
ａ．いずれも離散的なダイ上にある、複数の単一命令複数データ処理（ＳＩＭＤ）プロセッサと、メモリと、少なくとも１つの汎用プロセッサとを有し、前記メモリによって記憶および伝送し、ピクセルデータのグループがピクセルアレイによって提供されて、少なくとも１つのＳＩＭＤプロセッサによりピクセルデータのグループ上で動作するステップと；
ｂ．ＩＤ関心領域（ＲＯＩ）検出プロセスを少なくとも一部は捕捉されたピクセルデータがピクセルアレイから提供されている間に動作させて、ＩＤ復号プロセスに伝送されるように適合されたデータセットを提供するステップと；
ｃ．捕捉されたピクセルデータがピクセルアレイから読み出される間、ＩＤ  ＲＯＩ候補を示すエッジデータを検出するための行内で行処理プロセスを動作させるステップと；
を含む、前記方法。
【請求項１９】
さらに、ピクセルアレイをダイの上に置くことを含む、請求項１８記載の方法。
【請求項２０】
少なくとも１つのＳＩＭＤプロセッサによって動作するステップは、ピクセルデータのグループ上で共通のクロックサイクルで動作する、請求項１８記載の方法。
【請求項２１】
ピクセルデータのグループがピクセルアレイから読み出された１行のピクセルデータを含む、請求項１８記載の方法。
【請求項２２】
さらに、ＲＯＩ検出プロセスは、各ＩＤ  ＲＯＩ候補エッジデータをそれらの向きに関して類似のビンにグループ分けするように動作する画像処理プロセスを動作させることを含む、請求項１８記載の方法。
【請求項２３】
さらに、前記画像処理プロセスにおいてビンをその中のエッジデータの最大カウントで定義することを含む、請求項２２記載の方法。
【請求項２４】
さらに、前記画像処理プロセスにおいて、ＩＤサイズ基準を満たすエッジデータを分析するブロブ分析プロセスと、ＩＤサイズ基準を満たす分析されたＲＯＩデータのマッピングに基づき１以上のＲＯＩを生成するプロセスとを実行することを含む、請求項２２記載の方法。
【請求項２５】
さらに、ＲＯＩ運動特性を定義して予測されたＲＯＩを提供するために、少なくとも１つのＲＯＩを用いてＲＯＩを追跡することを含む、請求項１８記載の方法。
【請求項２６】
さらに、予測されたＲＯＩを受け取り、予測されたＲＯＩおよび後続の画像捕捉に基づいて、その中のＩＤ情報を復号するためにＲＯＩ内のＩＤ特徴を生成するデータ精緻化プロセスを動作させること含む、請求項２５記載の方法。
【請求項２７】
さらに、ＩＤ特徴の角度の向きを精緻化することを含めて、ＩＤ特徴内のＩＤ情報の検証を含む、請求項２６記載の方法。
【請求項２８】
シンボルＩＤ特徴を検出および抽出する方法であって、
ａ．いずれも離散的なダイ上にある、複数の単一命令複数データ処理（ＳＩＭＤ）プロセッサと、メモリと、少なくとも１つの汎用プロセッサとを有し、前記メモリによって記憶および伝送し、ピクセルデータのグループがピクセルアレイによって提供されて、少なくとも１つのＳＩＭＤプロセッサによりピクセルデータのグループ上で動作するステップと；
ｂ．フロントエンド（ＦＥ）プロセスにより、ピクセルデータが捕捉されてピクセルアレイから読み出される間、ピクセルデータのグルーピング内にＩＤ特性が存在することを決定するステップであって、前記ＦＥプロセスは各ＩＤ  ＲＯＩ候補エッジデータをそれらの向きに関して類似のビンにグループ分けするように動作する画像処理プロセスを含む、前記決定するステップと；
ｃ．伝送プロセスにより、ＩＤ特性の存在に関連した情報を転送し、ピクセルデータの少なくとも一部を復号してそこからＩＤ情報を導出することを可能にするステップとを含む、
前記方法。
【請求項２９】
さらに、ピクセルアレイをダイ上に置くことを含む、請求項２８記載の方法。
【請求項３０】
復号のステップがオフダイで実行される請求項２８記載の方法。
【請求項３１】
さらに、予測されたＲＯＩをＲＯＩ運動決定プロセスで導出することを含む、請求項２８記載の方法。
【請求項３２】
さらに、予測されたＲＯＩ情報を、ピクセルアレイから読み出されたピクセルデータストリームと関連して復号プロセスに伝送することを含む、請求項３１記載の方法。
【請求項３３】
さらに、バックエンド（ＢＥ）でピクセルデータを捕捉し、そこからＩＤ特徴を抽出することを含む、請求項３１記載の方法。
【請求項３４】
さらに、予測された関心領域に基づきＩＤ特徴の存在を検証することを含み、抽出されたＩＤ特徴は復号プロセスに伝送される、請求項３３記載の方法。
【請求項３５】
復号のステップは、ＩＤ特性の存在をトリガとして受け取り、それに応答して伝送されたピクセルデータストリームからＩＤを復号することを含む、請求項２８記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンボル読取り装置、より具体的には一次元（１Ｄ）バーコードなどのシンボルを捕捉および同定するシステムに関する。
【背景技術】
【０００２】
機械視覚システムは、観測された対象に関する情報を伝えるカメラセンサを備える画像取得装置を使用する。次にシステムはこの情報を種々のアルゴリズムに従って解釈して、プログラムされた決定機能および／または同定機能を実行する。
【０００３】
一般的に、シンボル（「ＩＤ」とも呼ぶ）読取りは画像取得センサ（ＣＭＯＳカメラ、ＣＣＤなど）を、シンボル（「バーコード」）を含んでいるオブジェクトの位置に向けて、そのシンボルの画像を取得することを必要とする。シンボルは正しく並べられた特性または形状のグループを表す一連の所定のパターンを含んでおり、そこから付属のデータプロセッサ（例えばマイクロコンピュータ）はオブジェクトに関する有用な情報（例えばシリアルナンバー、タイプ、モデル、価格など）を導出できる。シンボル／バーコードは多様な形状とサイズのものが利用できる。オブジェクトを標識および同定するために最も普通に用いられているシンボルタイプの一つとして、いわゆる一次元バーコードまたは「線形」バーコードが使用されており、そのうち見慣れたものの一つは幅と間隔が異なる一並びの垂直線からなる。本明細書では一般的にバーコードを含んだ場面を代表するピクセルを取得する画像センサについて説明されるが、周知のレーザスキャナを含む、バーコード情報を取得するための他の技術および装置がバーコード情報を取得するために使用されてきた。
【０００４】
背景として図１は、手持ち動作に適合された例示的なスキャニングシステム１００を示す。ハンドピース１０２の形態をした例示の手持ちスキャニング手段が設けられている。これはグリップ部１０４と本体部１０６を含んでいる。仮想線で示されている画像形成および処理システム１５１は制御されて、画像データを照明画像捕捉または他のシステムプロセスを制御するオンボード組込みプロセッサおよび関連するメモリ１０９に差し向けることができる。このプロセッサ１０９はまたＩＤ復号アプリケーションまたはサブプロセッサ１１３を含んでいるか、これらと作動的に接続されていてもよく、これらにより画像データは有用な情報（例えばオブジェクトの表面に置かれたシンボル（例えば図示された一次元（１Ｄ）バーコード画像１９５）から導出される英数字行に解釈される。復号された情報はケーブル１１１を介しまたは無線で、（例えば）ディスプレイ１１４、キーボード１１６およびマウス１１８を有するＰＣまたは他のデータ記憶装置１１２に差し向けられ、そこで記憶され、さらに適当なアプリケーション１２１を用いて操作され得る。アプリケーション１２１はまた、組み込まれたプロセッサ１０９が特定のＩＤの同定および復号タスクに必要な適当な視覚ツール１３０でプログラムされることを可能にする種々のインタフェース・コンポーネントを含んでいてもよい。さらに、インタフェース・アプリケーションはスキャナ問題を診断し、および／またはスキャナに関する他の状態項目を決定するために使用してもよい。ＵＳＢ（２．０）または無線インタフェースはＰＣ１１２に対してスキャニング手段１０２を一時的に接続することを可能にする。手持ちスキャニング手段をその組み込まれたプロセッサ、ＩＤ復号アプリケーション、コンピュータ・インタフェースおよび／または他のプロセッサおよびプロセスに対して精確に配置することは、極めて可変的である。
【０００５】
スキャニングプロセスはスキャニング手段１０２からの入力に応答するように適合させることができる。例えば、オペレータが手持ちスキャニング手段１０２のトリガ１２２を切り替えると、内部カメラ画像センサ（画像形成システム１５１の内部）がオブジェクト１０５上の視野１３１の画像を捕捉する。視野内には例示の一次元（１Ｄ）シンボル１９５を含んだ例示的な関心領域（ＲＯＩ）があり、このシンボルは基底にあるオブジェクト１０５の性格と品質を同定するために使用できる。スキャニング手段１０２上の１以上の視覚インジケータ１４１は、プロセッサ１０９から信号を受けると点灯などの方法（例えばＬＣＤ英数字ディスプレイ）で知らせ、シンボル１９５の読取りと復号に成功したことを示す。関連するイベントを表示するために聴覚インジケータを作動させることもできる。
【０００６】
スキャニング手段の１つの望ましい特徴は、ＲＯＩ内でＩＤ（シンボル１９５）が検出されたらスキャニングプロセスをセルフトリガする能力である。画像ベースの（すなわち画像センサおよび視覚システムを用いる）シンボル／ＩＤスキャナ、一般的にＩＤ検出と復号プロセスを開始するために、視野にＩＤ（バーコード）があることを示すトリガを必要とする。同様に、ＩＤ検出プロセスはトリガの一部であってもよい。すなわちトリガは、スキャナの視野内にＩＤが検出されることに応答して起こる。多くのアプリケーションにとってそのようなトリガを提供することは困難であるが、その理由は（ａ）バーコードが視野内にあることが外部ソース（すなわち潜在的トリガ発生器）によって知られない可能性がある。（ｂ）所定の動作機構では信頼できるトリガを発生することは不可能なことがある。この困難は、バーコードが撮像システムを基準とした運動、位置および／または方向において完全に制御されない仕方で動くと増加する。さらに一般的には、システムに固有の１秒当りの画像捕捉および画像復号イベントは、ＩＤを適切にスキャンする能力を制限する。したがってスキャニング手段が急速に動き、および／またはスキャニング手段をＩＤに対して急角度で向けると、限られた数の捕捉イベントのほとんどまたは全部がＩＤを適切に検出または復号できなくなることがある。
【０００７】
さらに、コード自体のある側面が、限られた数の捕捉イベント内でコードを検出または復号することを困難にし−さらにスキャナが動くと典型的に有用な画像捕捉のグループは一層限られることが知られている。特に、コントラストが低いコード（例えば茶色の段ボール箱に印刷）は、撮像システムが捕捉プロセス中に捕捉設定（例えば利得または露出）の調整を実行することを要求する。そのような場合、最初の捕捉設定は不適切であり、最終的により十分な捕捉設定が調整されるまで待ち時間が発生することがある。この最初の捕捉と調整待ち時間の後で利用できる捕捉の数は非常に少なく、ＩＤの検出および／または復号を困難にする恐れがある。
【０００８】
代替として、ユーザはセルフトリガリングを可能にし、スキャニング装置に対するバーコードの運動を幾分か克服するためにレーザスキャナを使用することができる。しかしながらレーザスキャナは機械的部品、例えば動く鏡を用いるため、そのメンテナンスが負担となることがある。さらに、レーザスキャナは乏しいコントラスト、コード印刷の破損などのために読み取りにくいコードに対する性能は、画像ベースのＩＤスキャナより低い。
【０００９】
他の代替的なスキャニング法では、ラインスキャンカメラベースのスキャニング手段を用いて基底にあるオブジェクト上のＩＤの画像を捕捉する。ラインカメラを使用すると全視野が連続的に撮像および処理され、視野内にＩＤ状の特徴をサーチしてこれらの特徴が検出されると処理する。しかしながら、ラインスキャンカメラの短所は、それらは典型的にラインスキャン速度の慎重な制御を必要とするため、ＩＤとカメラとの間の運動が信頼性をもって、精確に測定および／または制御できない状況では、使用が困難か不可能になることである。
【００１０】
現在利用できる多様なスキャニング手段は、ＩＤの検出および復号に必要な種々の機能を達成するためにデジタル信号プロセッサ（ＤＳＰ）を用いる。従ってそのようなＤＳＰは、視覚システム要素と共に慣用的な、またはカスタマイズされたＩＤ復号アプリケーションまたはプロセスを含んでいる。これは画像ピクセルが捕捉されるときに、ＩＤ状の特徴を含んだ適当な関心領域の近隣操作と比較して処理速度を制限する傾向があり、そのような特徴は抽出され、次にデコーダによって漸次作用される。ＩＤとスキャニング手段のピクセルアレイが互いに対して比較的速く動いているとき−例えばユーザがスキャナをＩＤ上で素早く通過させたとき、慣用的な画像センサ／ピクセルアレイの捕捉速度（しばしば１秒当り約６０フレーム未満）は、慣用的なＤＳＰの処理能力と組み合わせると、ＩＤを復号するのに十分可読なフレームを提供するには不十分である。１秒当り６０フレームの場合でさえ、それらのフレームのほんの一部だけが完全なＩＤを捕捉し、それらのフレームの幾つかは専らピクセルアレイの撮像パラメータ（照明およびコントラスト変化など）を変更するために利用されるため、復号プロセスには使用できなくなる。こうして慣用的な実装において復号に使用できる画像の最終的な数は急速にゼロに近づく。
【００１１】
それゆえ、オブジェクトおよび関連ＩＤ（例えば１Ｄバーコード）に対するスキャニング手段の広範な速度の運動および制御されない位置／向きを可能にする、シンボル／ＩＤ特徴を捕捉、検出および同定するシステムおよび方法を提供することが望ましい。このシステムおよび方法によりスキャニング手段の撮像システムは従来困難または達成不可能であったタスク、例えば店頭スワイプスキャンシステムにおけるバーコード読取りを伴うタスクのために動作できる。さらに、画像ベースのスキャニング手段においてトリガの必要性を効果的に減らすかまたは除去するシステムと方法を提供し、それによりトリガを構成することが困難か不可能な環境においてスキャナの撮像システムがレーザスキャナと張り合えるようにすることが望ましい。さらに一般的に、このシステムと方法は１秒当りの画像捕捉および読取りイベントの数を増すのを容易にして、１以上の成功した復号イベントの可能性を高めるべきである。
【発明の概要】
【００１２】
本発明は、ビジョン・システム・オン・チップ（ＶＳｏＣ）アーキテクチャに基づく効率的な処理システムを用いて、シンボルＩＤ、例えば１Ｄバーコードの特徴を捕捉、検出および抽出するためのシステムおよび方法を提供することにより、従来技術の短所を克服する。ＶＳｏＣはＣＰＵ（本明細書では「汎用プロセッサ」とも呼ぶ）で制御されて、例示的に単一命令複数データ処理（ＳＩＭＤ）アーキテクチャで構成された線形アレイプロセッサ（ＬＡＰ）を提供し、そこにおいてピクセルアレイの行の各ピクセルはＬＡＰを定義する類似の幅のアレイで個々のプロセッサに差し向けられる。ピクセルデータは、潜在的にＩＤ状の特徴を含んでいる関心領域（ＲＯＩ）の大まかな検出と追跡を実行するフロントエンド（ＦＥ）プロセスに従って処理される。ＲＯＩ検出プロセスは近隣操作におけるＬＡＰの効率を最適化するために２部分で、すなわちピクセルアレイから画像ピクセルを読み出す間に起こる行処理ステップと、典型的に読出しが行われた後に起こる画像処理ステップとで行われる。ＩＤを包含したＲＯＩのピクセルアレイに対する相対運動が追跡および予測される。例示的には、メモリ、ＳＩＭＤプロセッサ配置構成および汎用プロセッサ（ＣＰＵ）は共通のチップ／ダイ上に設けられている。ピクセルアレイもこのチップ／ダイ上に設けられていてもよく、例示のＶＳｏＣアーキテクチャを提供する。代替として、ピクセルアレイは別個のチップ／ダイ上に設けられて、メモリおよび処理機能を含むダイと作動的に接続されてもよい。
【００１３】
一実施態様において、バックエンド（ＢＥ）プロセスが存在して、予測されたＲＯＩを用いて画像捕捉後に特徴抽出を実行してもよい。特徴抽出は候補ＩＤ特徴を導出し、これらの候補ＩＤ特徴が検証ステップによって検証される。検証ステップはＩＤシンボルの存在を確認し、精緻化されたＲＯＩ、特徴の向きの角度および、典型的に最初の捕捉されたグレイスケールピクセル画像より小さい二値画像形態に縮小された特徴セット自体を生み出す。これらはＲＯＩデータと一緒に復号プロセッサまたは他のデバイスに伝送される。代替的に、特徴は検証の前に復号プロセッサに伝送されて急いで復号され、後続の検証は復号結果がデコーダによって適当なＩＤとして保持されるかどうか決定する。さらに代替的な実施態様において、画像ストリームもＤＳＰに伝送され得る。
【００１４】
別の実施態様において、ＦＥプロセスのＲＯＩ結果は直接（ＶＳｏＣ  ＢＥプロセスなしに）オフチップのバックエンド処理装置、例えば画像復号ＤＳＰに伝送される。この実施態様では、ＲＯＩ結果はＲＯＩ位置、サイズおよび向きを含んでいてもよい。これは未加工の、縮小サイズの（全体的画像の一領域）または圧縮した画像データストリームと一緒に使用されて、ＤＳＰによるＩＤ検出および復号を実行する。
【００１５】
さらに別の実施態様において、ＩＤ  ＲＯＩまたは他の形態のＩＤ候補指標データを検出したら（ＬＡＰまたは他の大規模データ処理ＶＳｏＣプロセスの動作を介して）、通知（トリガ）が復号ＤＳＰに伝送されて、トリガイベントと関連して伝送された未加工のまたは圧縮された画像データのストリーム内でＩＤサーチおよび復号動作を起動する。
【００１６】
ＶＳｏＣおよびプロセスがトリガとして使用される場合は、復号装置およびプロセスは代替的に復号のための画像ストリームを他のピクセルアレイソース（トリガＶＳｏＣアレイとは異なる解像度を有する他のＶＳｏＣであってもよい）から受け取る。この実装では、トリガＶＳｏＣは全体的な視覚システムの端末である。
【００１７】
例示的な実施態様において、行処理ステップはＮ行のローリングバッファを提供し、これは近隣操作および抽出後のエッジを所定の回転の向きにビニングすることにより、候補ＩＤのエッジ位置、強度および回転の向きの抽出を可能にする。ビンは結合されて向きが類似したエッジを有する画像処理ステップで領域を定義する。結果として生じる画像はクリーニングされ、視覚ツール、例えばブロブ分析ツールを用いて可能なＩＤ  ＲＯＩを決定する。ＲＯＩ検出プロセスは予測されたＲＯＩ運動追跡が導出され得るまで繰り返される。次に予測されたＲＯＩを用いて任意的にＢＥプロセスが行われる。
【００１８】
例示的な実施態様において、検証プロセスはストライプまたはスキャンラインを用いて抽出された特徴によってヒストグラムを定義する。この場合、ヒストグラムは１８０度間隔で大きいピークを示し、ストライプは肯定的なＩＤ結果を示す。肯定的なＩＤストライプの数が閾値を超えれば、検証済みＩＤが存在して復号が行われてもよい。別の例示的な実施態様では、復号装置またはプロセッサに伝送されたデータは圧縮できる。同様に、広いシフトレジスタを用いて画像データメモリから特徴データを受け取り、その後でポートを通して特徴データを復号装置／プロセッサに送ることができ、その間ＬＡＰおよびＣＰＵを自由にして他のタスクで動作させる。
以下の本発明を添付の図面を参照して説明する。
【図面の簡単な説明】
【００１９】
【図１】既述の、従来の実装によるオンボードプロセッサおよびＩＤ復号アプリケーションを有する手持ちスキャニングシステムの斜視図である。
【図２】例示された実施態様による例示のビジョン・システム・オン・チップ（ＶＳｏＣ）のブロック図である。
【図３】図２のＶＳｏＣと関連デバイスとの相互接続を示すブロック図である。
【図４】図２のＶＳｏＣの機能的コンポーネントを示すブロック図である。
【図５】例示的な実施態様による、線形アレイプロセッサ（ＬＡＰ）の個々のコンポーネントの詳細を含む、図２のＶＳｏＣの機能的コンポーネントを示すより詳細な模式図である。
【図６】例示的な実施態様による、モデルの座標を変換するための、図２のＶＳｏＣの画像アドレスプロセッサのブロック図である。
【図７】例示的な実施態様による、ＶＳｏＣによりモデルの座標を変換するための例示的な方程式を詳細に示すテキストブロックである。
【図８】例示的な実施態様による、図２のＶＳｏＣのコンパレータ・アキュムレータの模式図である。
【図９】例示的な実施態様による、ＩＤ検出、同定および特徴抽出プロセスの実装で用いられるバージョンのＶＳｏＣのブロック図である。
【図１０】例示的な実施態様による、図９のＶＳｏＣとオフチップＩＤデコーダとの間のプロセスの分割を示した、ＩＤ検出、同定および特徴抽出プロセスの概要を示すブロック図である。
【図１１】例示的な実施態様による、ＩＤ関心領域（ＲＯＩ）を予測するフロントエンド（ＦＥ）プロセスと、予測されたＲＯＩに基づく任意的にある特徴を伝送するバックエンド（ＢＥ）プロセスとを含むＶＳｏＣプロセスを示すフローチャートである。
【図１２】図１１のＦＥプロセスによるＲＯＩ検出プロセスで画像ピクセルを読み出す間に行われる行処理ステップを詳細に示すフローチャートである。
【図１３】図１１のＦＥプロセスによるＲＯＩ検出プロセスで画像ピクセルを読み出した後に行われる画像処理ステップを詳細に示すフローチャートである。
【図１４】図１１の任意的なＢＥプロセスによるＩＤ特徴検証プロセスを詳細に示すフローチャートである。
【図１５】例示的な実施態様による、図１１のＢＥプロセスでＩＤデコーダまたは他のデバイスに伝送する前に特徴データを圧縮または符号化するための例示的なプロセスのフローチャートである。
【図１６】図１１と同様のＦＥプロセスを含むＶＳｏＣプロセスと、代替的な実施態様による検証プロセスの前に特徴がＩＤデコーダまたは他のデバイスに伝送されるＢＥプロセスとを示すフローチャートである。
【図１７】代替的な実施態様による、適当なＲＯＩ情報および画像データを直接バックエンドプロセッサに供給して情報を復号し、図１１の特徴を伝送するＢＥプロセスがない、ＲＯＩを予測するＦＥプロセスを含むＶＳｏＣプロセスを示すフローチャートである。
【図１８】代替的な実施態様による、バックエンドプロセッサをトリガして、関連する画像データスリーム内で何らかのＩＤ特徴をサーチおよび復号するＩＤ候補通知プロセスを含むＶＳｏＣプロセスを示すフローチャートである。
【発明を実施するための形態】
【００２０】
例示的な実施態様によれば、ＩＤ／バーコード特徴を捕捉、検出、同定および抽出するシステムおよび方法は、相互接続されたピクセルアレイから読み出されたデータの完全な行を離散的処理サイクルで処理できる（すなわち行内のすべてのデータが各クロックサイクルで同時に処理される）アーキテクチャを定義するプロセッサで動作するように適合されている。これを達成するために、全体的なＶＳｏＣプロセッサは、画像データ記憶装置（記憶アレイの幅も１０２４）とピクセルアレイ（この例では８ビットまたは６ビットピクセルによる１０２４×７６８ピクセルアレイ）との間に広いオンビットデータバス（例えば１０２４×１バス）を含むように組織されている。このメモリは他の類似の幅（例えば１０２４×１）のバスによって、例えばプロセッサ近隣操作において非常に効率的である単一命令複数データ処理（ＳＩＭＤ）を用いて完全な行を同時に処理するように組織された画像処理コンポーネントと相互に接続されている。したがって、各々のプロセッサは行内の近隣データを処理している他のプロセッサと相互運用できる。これらのプロセッサは組み合わせて線形アレイプロセッサ（ＬＡＰ）と呼ばれる。例示的な実施態様においてこれらのプロセッサは、それぞれ９０ＭＨｚで動作する。これらは完全な行のデータ（１０２４要素）上で同時に１ビット算術論理ユニット（ＡＬＵ）のように作用するように構成されている。例示的な実施態様において、ＬＡＰ内のプロセッサはさらに、データがプロセッサ間で最大１３列離れて移動できて広く効率的な近隣操作を容易にするように適合されている。例示の処理速度は、ＬＡＰに対して約１１，５２０メガバイト／秒の処理能力を生み出す。ＶＳｏＣの一バージョンが共同譲渡された合衆国特許出願第１２／１８４１８７号明細書「視覚センサ、システムおよび方法」（Ｅ．ジョン・マクギャリー他）に示され説明されているが、その教示は参照により有益な背景情報として組み込まれ、以下において当該箇所で説明される。さらに一般的に、本明細書に記載されたシステムおよび方法は、様々な市販の視覚取得および処理システム上で動作するように適合させることができる。例えば初期のバージョンの単一チップ画像センサが刊行物「デジタルプロセッサアレイを用いる単一チップ画像センサ」（ロベルト・フォルヒハイマー他、ＶＬＳＩ信号処理誌、５号１２１−１３１ページ（１９９３年）に記載されている。
【００２１】
Ｉ．ビジョン・システム・オン・チップ（ＶＳｏＣ）の概要
図２は、本発明の実施態様によるシステムおよび方法のための単一チップ視覚システム２００（ＶＳｏＣ）のブロック図を例示する。ＶＳｏＣ２００は単一チップ上にピクセルアレイ２０８および１以上の回路２３０を含んでいる。本明細書中で用いられているように、チップという用語は周知の「ダイ」という用語と互換的に使用されてもよい。これは適当な回路要素と配線を配置した単一のユニット状シリコンウエハである。製造においてチップまたはダイは、より大きいチップまたはダイのウエハの一部であってもよく、これらのチップまたはダイは製造プロセスのある段階で個別のパッケージに分離されるが、その後はユニット状コンポーネントとして維持される。種々の実施態様において、ピクセルアレイ２０８は、撮像されている場面に対して光が感知されたら、ピクセル信号を１以上の回路２３０に提供するように構成されている。また、種々の実施態様において、１以上の回路２３０はピクセルアレイ２０８から提供されたピクセル信号を処理して画像を形成するように構成されており、および任意的に画像に対するパターンマッチングを実行するように構成されている。種々の実施態様において、ピクセルアレイ２０８と１以上の回路２３０は、半導体材料の基板上に単一の集積回路を形成する。また、種々の実施態様において、ＶＳｏＣ２００は、データをＶＳｏＣ２００に入力し、およびＶＳｏＣ２００から出力するための１以上のＩ／Ｏピン（図示せず）を含んでいる。
【００２２】
ＶＳｏＣ２００は種々の用途、例えば機械視覚用途、消費者用途などで用いることができる。種々の実施態様において、ＶＳｏＣ２００は（ｉ）画像取得；（ｉｉ）画像前処理；（ｉｉｉ）パターンマッチングの１以上の必要がある用途で用いられてよい。種々の実施態様において、ＶＳｏＣ２００は画像取得、前処理および／またはパターンマッチングを単一チップまたは集積回路上で実行できるようにする。より具体的に、例示的な実施態様の視覚センサは特定のシンボル特徴、例えばスキャンされるオブジェクト上に置かれた１Ｄバーコード特徴を検出および同定するために用いることができるが、これに限られない。例示した実装における１Ｄバーコードは慣用的なＵＰＣ−Ａタイプコードを含んでいてもよいが、例示的な実施態様による他の多様な１Ｄコード配置構成がスキャンおよび検出されてもよい。
【００２３】
さらに背景として、１Ｄまたは「線形」バーコードはある情報を単一の優勢な向きで提示することに留意されたい。すなわち、バーコード特徴は互いに対して平行であり、これらの特徴はすべて一次元で整列されている。すべてのバーコードは直交二次元によって（コントラスト差を解像するために第３の次元を使用するエッチングまたはピーニングされたバーコードで）定義される。図２のバーコードの場合、および本明細書中の他のケースにおいて、垂直次元はデータ内容を提示せず、むしろ水平方向におけるバーの幅と間隔の向きがデータ内容を担う。この水平次元が優勢な向きと見なされる。この説明の目的のために、「シンボル」という用語は、一般的に本明細書で想定されているタイプのバーコードとも呼ばれる。本発明を適用できる線形バーコードのより完全なリストは、インターネット上で下記のウェブサイトに掲載されている。
http://www.aimglobal.org/aimstore/linearsymbologies.asp
【００２４】
さらにＶＳｏＣ２００に関して、図３は、本発明の実施態様による相互に接続されたシステム３００のブロック図を例示する。システム３００は、有線もしくは無線ネットワークまたは他のデータ接続３２０によって作動的に接続されたＶＳｏＣ２００および相互接続されたデバイス３１０を含んでいる。システム３００においてＶＳｏＣ２００はデバイス３１０と通信しており、デバイス３１０とＶＳｏＣとの間で信号が伝送される。例示的な実施態様において、図示されたデバイス３１０はスキャニング手段の１以上のコンポーネント（例えばディスプレイ、別個のＩＤ復号回路、種々のインジケータおよび警報など）および／またはベースコンピュータ（ＰＣ）、またはスキャニング手段からＩＤデータを受け取る他のデータプロセッサを表すことができる。デバイス３１０とＶＳｏＣとの間の通信は、多様なデータおよび制御信号を含んでいてもよい。種々の実施態様において、ＶＳｏＣ２００は画像を取得し、画像の処理を実行し、処理の結果に基づいてデータをデバイス３１０に提供するように構成されている。例えば、種々の実施態様において、ＶＳｏＣ２００は１以上の特徴の１以上のモデルに基づいて画像中の１以上の特徴をサーチし、サーチの結果に基づいてデータをデバイス３１０に出力するように構成されている。画像を取得する画像取得と画像中に特徴をサーチするパターンマッチングの双方を単一チップまたは集積回路上で実行できるようにすることにより、ＶＳｏＣ２００から伝送されるデータの量は、画像データがＶＳｏＣ２００からＶＳｏＣ２００の外部にある別個のプロセッサに伝送して別個のプロセッサでパターンマッチングを実行しなければならない場合と比較して減らすことができる。
【００２５】
例えば、種々の実施態様において、例示のＶＳｏＣ２００は画像を捕捉し、１以上の特徴のモデルを用いて１以上の特徴について画像をサーチし、次いで画像中に１以上の特徴が検出された場合はデバイス３２０にトリガ信号を提供するために用いることができる。また、幾つかの実施態様において、ＶＳｏＣ２００は画像を獲得し、１以上の特徴のモデルを用いて１以上の特徴についで画像をサーチし、次いで画像中に１以上の特徴が検出された場合は物理的場面における１以上の特徴の位置を示す位置データをデバイス３１０に提供するために用いることができる。結果として、そのような実施態様では、ＶＳｏＣ２００から完全な画像データを別個の外部プロセッサに伝送して別個の外部プロセッサに特徴をサーチさせるのではなく、ＶＳｏＣ２００は視覚センサチップ上でサーチを実行できる。そのような場合、ＶＳｏＣはトリガ信号に含まれた最小限の情報、整列／位置データ、特徴データなどをデバイス３００に伝送でき−これによりＶＳｏＣ２００からオフチップで伝送されるデータの量を減らすことができる。
【００２６】
種々の実施態様において、ＶＳｏＣ２００から伝送されるデータの量を減らすことにより、ＶＳｏＣ２００が画像を取得できる速度（１秒当りフレーム）を増すことができる。なぜならＶＳｏＣ２００動作は伝送動作の完了によって制約されることが少なくなるからである。例えば幾つかの実施態様において、ＶＳｏＣ２００が画像を１秒当り２００フレームの速度で捕捉および処理するように構成されてもよく、それによりＶＳｏＣ２００は例えば自動ビデオ監視、車両制御、ＩＤリーダー／スキャニング手段におけるトリガリングおよび特徴の検出／抽出（以下に説明する）、ジェスチャー認識、静止または移動視覚センサを用いた三次元（３Ｄ）モデリングによるオブジェクトの寸法決定、運動解析などの用途に有利に使用できよう。
【００２７】
種々の実施態様において、ＶＳｏＣ２００はセルフトリガするように構成されているため、種々の実施態様でＶＳｏＣ２００はその周囲を連続的に撮像して連続的な画像ストリームを取得できる。より具体的には、ＶＳｏＣ２００は、他の視覚用途のためにソフトウェアトリガまたはハードウェアトリガとして使用されるトリガを提供するように構成できる。例えばＩＤリーダーのためのソフトウェアトリガにより、ＩＤ候補を包含する関心領域が処理されて、例えば相互接続されたデバイス上で関連する復号プロセスまたはアプリケーションによって復号するためのＩＤ特徴の検出および同定を試みる（以下に説明する）。
【００２８】
ＶＳｏＣ２００からオフチップで伝送されるデータの量を減らすと、信号をオフチップで駆動するために必要な電流も減少するため電力消費は低下する。同様に、これによりＶＳｏＣ２００と外部デバイスとの間のデータ交換が減るので電磁的干渉（ＥＭＩ）が減少する。電力消費の低下は多くの用途、例えば無線手持ちＩＤスキャナと関連した用途を含む、バッテリ容量に制限された用途で有利である。
【００２９】
幾つかの実施態様において、デバイス３１０は画像データを処理できるタイプの装置であり、ＶＳｏＣ２００は画像データをデバイス３１０に伝送するように構成されている。以下に説明する例示的な実施態様では、デバイス３１０は手持ちスキャニング手段の種々のコンポーネントを含んでおり、その中にはＩＤ復号アプリケーションのインスタンス化を伴うデジタル信号プロセッサ（ＤＳＰ）、ならびに復号されたＩＤを受け取って操作するベースデータ処理および記憶装置（例えば無線インタフェースとネットワーク化されたＰＣ）が含まれる。ＶＳｏＣ２００が画像データをデバイス３１０に伝送するように構成された幾つかの実施態様において、ＶＳｏＣ２００は１以上の特徴のモデルを使用して１以上の特徴に対する画像をサーチして、画像中に１以上の特徴の少なくとも１個が検出された場合のみ画像の画像データをデバイス３１０に伝送するように構成されている。また、ＶＳｏＣ２００が画像データをデバイス３１０に伝送するように構成された幾つかの実施態様において、ＶＳｏＣ２００は１以上の特徴のモデルを使用して１以上の特徴に対する画像をサーチして、サーチから同定された特徴に基づいて決定された画像中の関心領域に対する画像のみデバイス３１０に伝送するように構成されている。ＶＳｏＣ２００が画像データをデバイス３１０に伝送するように構成された種々の実施態様において、ＶＳｏＣ２００は画像に対する完全な画像データをデバイス３１０に送るように制御可能であってもよい。幾つかの実施態様において、ＶＳｏＣ２００が１以上の特徴が検出された画像に対するモデルの姿勢を示す姿勢情報をデバイス３１０に伝送するように構成されている。
【００３０】
種々の実施態様において、デバイス３１０はプロセッサを含んでおり、ＶＳｏＣ２００は、処理タスクをデバイス３１０のプロセッサとインタラクティブに交換し、および／またはどの具体的なタスクがＶＳｏＣ２００とデバイス３１０のプロセッサの各々によって実行されるべきかをユーザが特定して、例えば処理能力、メモリの使用などの最適化を可能にするように構成できる。また、種々の実施態様において、デバイス３１０はプロセッサを含んでよく、ＶＳｏＣ２００は１以上の特徴を含んでいそうな候補画像または画像の部分を決定し、この候補画像または画像の部分をデバイス３１０に伝送してデバイス３１０によって処理させるように構成されてもよい。幾つかの実施態様において、ＶＳｏＣ２００は１以上の他のコンポーネント（図示せず）、例えば自動焦点レンズ、適合装置などと接続して使用でき、種々の用途、例えばＩＤ読取り用途などの有用な時間周期内に、画像を取得して、任意的にそれらを処理しながら、例えば異なる視野の深度または異なる照明を提供することができる。同様に、上述したように、および以下に詳述するように、デバイスはＩＤ復号ＤＳＰを含んでいてもよい。
【００３１】
本明細書で説明される例示的なＶＳｏＣおよび一般的に望ましいと考えられる他の実装は、いわゆるデータ「収束」として作用することができ、そこにおいてこれらの実装は捕捉された画像データのセットを縮小されたサイズのデータに変換してデバイス３１０に伝送するのを容易にする一方、この縮小されたデータセットにおいてさらにバックエンドおよび／またはオフチップ処理を実行するのに十分に有意な情報側面を保持する。例として、そのような収束動作は、（ａ）アレイからの画像データを処理して一般的にデバイスに伝送される画像のサイズおよび／または深度を縮小すること；（ｂ）画像を処理してオリジナル画像と比較することによって縮小されたサイズの特徴を抽出して、縮小サイズの特徴セットをデバイスに伝送すること；および（ｃ）多数の画像フレームを処理し、そこから減少した数の画像を全体として、または縮小されたデータセットとして伝送することを含むが、これらに限られない。さらに、本明細書でシステムおよび方法に従って使用することが想定されているＶＳｏＣ実装は、一般的に画像または他の処理されたデータ（例えばエッジ、ＲＯＩなど）を前処理して、この前処理されたデータをデバイス（３１０）に伝送することを可能にする。この場合、前処理はデバイスよりもＶＳｏＣによってより効率的に達成される。それにより処理速度の上昇が可能になるが、それはＶＳｏＣにおいて未加工データがより高速に前処理されてより焦点を絞ったデータセットが生み出されるからであり、これはデバイスによってはもっとゆっくり処理されるであろう。種々の実装において、高度にパラレルな処理環境が存在し、画像からのピクセルデータが大きいグルーピング（例えば捕捉されたピクセルデータ行）として同時に処理され得ることは、その高速な前処理を容易にする。そのようなパラレル環境において、大きいグループ処理の恩恵を受ける操作、例えば近隣操作は、効率を大幅に増して実行される。
【００３２】
例示のシステムおよび方法に関して、以下に説明されるように、実装の収束効果は、本発明による種々のＶＳｏＣ実装は記憶されたデータを処理してより精緻化されたおよび／または小さいサイズのデータセットを生成し、それと同時にデータをピクセルアレイからバッファメモリに読み出すという事実によって強化される。一実施態様において、この処理は１行毎に実行されるが、同時に処理されるデータの他のグルーピングも想定されている。その理由は、１秒当りフレーム（ＦＰＳ）の未加工画像データの捕捉速度よりもデータを高速で処理できるためである。
【００３３】
図４は、ＶＳｏＣ２００実施態様の内部アーキテクチャを例示する。ＶＳｏＣ２００は上述したピクセルアレイ２０８および上述した１以上の回路２３０（図２）を含んでいる。種々の実施態様において、１以上の回路２３０は制御回路４２２、汎用メモリ４０２、処理回路４２４、画像アドレスプロセッサ４１０、１以上の画像メモリデバイス４１４、画像データセレクタ４１５、モデルデータシフタ４１６、１以上のコンパレータ・アキュムレータ４２０、およびプライオリティエンコーダ４１７を含んでいる。
【００３４】
種々の実施態様において、ピクセルアレイ２０８は、撮像されている場面に対して感知された光に基づいて１以上のピクセル信号を提供するように構成されている。また、種々の実施態様において、処理回路４２４は、ピクセルアレイ２０８から提供された１以上のピクセル信号を処理して画像を生成するように構成されている。一般に、例示的な実施態様の処理回路はＳＩＭＤアーキテクチャとして実現され、そこにおいてピクセルアレイ２０８から伝送されたピクセルデータの完全な行は、処理されると同時に広いバス４０４に伝送される。バス４０４は１以上の画像メモリデバイスと通信しており、したがって画像ピクセルデータの完全な行を同時に（すなわち共通のクロックサイクルで）読み込みまたは読み出すことができる広いバスを特徴とする。幾つかの実施態様において、ピクセルアレイ２０８から提供された１以上のピクセル信号はアナログ信号であり、そのような信号はＬＡＰによる処理に先立って適当なＡＤＣ回路によってデジタル信号に変換される。種々の実施態様において、処理回路４２４は、１以上のピクセル信号から得られたデジタルピクセル値で１以上の前処理動作を実行して、前処理された画像データを提供するように構成されている。
【００３５】
例として、種々の実施態様において処理回路４２４は、デジタルピクセル値のノイズを低減するためにノイズリダクションのための前処理を実行するように構成されている。画像ノイズはピクセル値の不規則変動であり、ＶＳｏＣ２００などの電子ノイズによって引き起こされることがある。種々の実施態様において、処理回路４２４は、フィルタリングプロセスによって、例えば最初のピクセル値が近隣ピクセル値の強度のメジアン値に置き換えられるメジアンフィルタリングによってノイズリダクションを遂行するように構成されている。このノイズリダクションのフィルタリング機能については、さらに以下で説明する。幾つかの実施態様において、処理回路４２４は他のタイプのフィルタリング、例えば各々のピクセル値を近隣ピクセル値の値に近づけようとする円滑化操作を表すマスクでピクセル値のデータを回すことにより、ノイズが低減される低域フィルタリングを実行するように構成されている。メジアンフィルタリングおよび低域フィルタリングは単にフィルタリングのタイプの例として提示されるものであり、他の種々の実施態様においてＶＳｏＣ２００は別のタイプのフィルタリングを実行するように構成されてもよいことが認識されるべきである。
【００３６】
種々の実施態様において、処理回路４２４はまた前処理を実行して、６ビットまたは８ビット（または他の値）のグレイスケールピクセル値を１ビット二値ピクセル値に変換するように構成されている。幾つかの実施態様において、処理回路４２４は、例えばグレイスケールピクセル値と閾値との比較に基づいて、グレイスケールピクセル値を絶対的な黒ピクセル値か、または白ピクセル値に変換する閾値化プロセスを実行するように構成されている。そのような閾値化プロセスにより、ピクセル値の二値化が可能になる。種々の実施態様において、処理回路４２４はまた、データで形態学的閉鎖操作（morphological closing operation）を実行するように構成されており、膨張が行われ、次に結果として生じるデータで構造化要素を用いて収縮が実行される。このような形態学的閉鎖操作は、例えばある画像の前景領域内にある背景色の穴を縮小するために使用できる。
【００３７】
種々の実施態様において、１以上の画像メモリデバイス４１４は、画像の画像データを記憶するように構成されている。例えば、上述したように、種々の実施態様において、処理回路４２４はピクセルアレイ２０８から提供されたピクセルデータで処理を実行して、処理の結果を１以上の画像メモリデバイス４１４に捕捉された画像のピクセル強度データとして記憶する。種々の実施態様において、１以上の画像メモリデバイス４１４はそれぞれデータを記憶および提供するためにランダムアクセスメモリ（ＲＡＭ）などを含んでいる。ＲＡＭのサイズとレイアウトは、メモリの行がピクセルアレイ２０８の行に対応するアドレスを含むように設けることができる。同様に処理回路（上記のＬＡＰを集合的に定義）４２５における個々のＳＩＭＤプロセッサの数は、所定のピクセルアレイとメモリの行における要素の数と同じであることができる。種々の実施態様において、制御回路４２２は、ピクセルアレイ２０８を制御して光を捕捉し、ピクセル信号を提供するように構成されており、また、処理回路４２４を制御してピクセルアレイ２０８からのピクセル信号を処理し、画像の画像データを提供するように構成されている。幾つかの実施態様において、ピクセルアレイ２０８は可視スペクトル内にある光を捕捉し、捕捉された光に基づいてピクセル信号を提供するように構成されている。幾つかの実施態様において、ピクセルアレイ２０８は、可視スペクトル外にある光も（または択一的に）捕捉し、捕捉された光に基づいてピクセル信号を提供するように構成されている。幾つかの実施態様において、ピクセルアレイ２０８は、可視スペクトルと可視スペクトル外の双方から光を捕捉し、捕捉された光に基づいてピクセル信号を提供できるように構成されている。
【００３８】
種々の実施態様において、制御回路４２２は外部デバイス、例えば上述した１以上の特徴のモデルに対するＰＣからモデル命令を受け取るように構成されており、およびモデル命令を汎用メモリ４０２に記憶するように構成されている。種々の実施態様において、汎用メモリ４０２はデータを記憶および提供するためにＲＡＭなどを含んでいる。種々の実施態様において、汎用メモリ４０２は制御回路４２２によって実行され得るプログラムを記憶している。幾つかの実施態様において、汎用メモリ４０２はＶＳｏＣ２００の外部にある外部メモリ（図示せず）で補完されてもよく、そのような実施態様でＶＳｏＣ２００は外部メモリと汎用メモリ４０２との間でデータを伝送できるように構成できる。種々の実施態様において、図４の諸要素は種々異なるアプリケーションのために所望されるならば補完または省略でき−そのようなバリエーションの幾つかを以下に例示のシステムおよび方法に関して説明する。
【００３９】
種々の実施態様において、１以上の回路２３０は、１以上の特徴のモデルを使用して１以上の特徴について画像をサーチするように構成されている。幾つかの実施態様において、サーチされるべき画像は１以上の画像メモリデバイス４１４に記憶され、画像をサーチするために使用される１以上の特徴のモデルのモデル命令は汎用メモリ４０２に記憶される。また種々の実施態様において、制御回路４２２は、汎用メモリ４０２からのモデル命令を実行し、モデル命令に基づいて処理回路４２４、画像アドレスプロセッサ４１０、モデルデータシフタ４１６および複数のコンパレータ・アキュムレータ４００を制御するように構成されている。画像マッチングとオブジェクト／特徴姿勢（整列）決定を行うように適合された幾つかの実施態様において、各々のモデル命令はモデル基準点に対して位置を特定する対応する座標を含んでいる。また幾つかの実施態様において、制御回路４２２は、プログラムされた画像モデルのモデル命令からの座標を画像アドレスプロセッサ４１０に提供するように構成されており、画像アドレスプロセッサ４１０は、少なくとも一部は１以上の変換値に基づいて座標を変換済み座標に変換するように構成されている。種々の実施態様において、画像アドレスプロセッサ４１０は幾何学的変換に従ってモデルの座標を変換することを可能にする。
【００４０】
幾何学的変換に従ってモデルの座標を変換する能力を持つことにより、画像中の特徴を種々の角度で回転させ、種々のサイズに拡縮し、または別の画像の種々の位置に転移して画像中に特徴をサーチするときに利点が提供される。ある特徴のモデルを幾何学的に変換する能力を有する幾つかの例において、モデルは画像中の特徴の回転、縮尺または位置にかかわりなく、画像中の特徴を検出するために使用されてもよい。種々の実施態様において、画像アドレスプロセッサ４１０は、１以上のアフィン変換値に従い１以上のモデルの座標を変換するように構成されている。
【００４１】
種々の実施態様において、画像アドレスプロセッサ４１０は、変換済み座標の第１の座標を１以上の画像メモリデバイス４１４に提供し、１以上の画像メモリデバイス４１４にアクセスして、この１以上の画像メモリデバイス４１４に変換済み座標の第１の座標によって指示されたデータを画像データセレクタ４１５に提供させるように構成されている。種々の実施態様において、画像アドレスプロセッサ４１０はまた、変換済み座標の第２の座標を画像データセレクタ４１５に提供して、この画像データセレクタ４１５に１以上の画像メモリデバイス４１４から受け取ったデータを、変換済み座標の第２の座標に基づく量だけシフトさせるように構成されている。
【００４２】
種々の実施態様において、制御回路４２２は、モデルから累積増分と１以上の値をモデルデータシフタ４１６に提供するように構成されており、モデルデータシフタ４１６は、１以上の値と累積増分を１以上のコンパレータ・アキュムレータ４２０に提供するように構成されている。実施態様では１以上のコンパレータ・アキュムレータ４２０は、サーチされるべき画像のデータに基づいて得られた１以上の値を、モデルからの１以上の値と比較するように構成されている。また、種々の実施態様において、１以上のコンパレータ・アキュムレータ４２０は、比較の結果に基づいて選択的に累積を実行して、累積増分を積み増すように構成されている。
【００４３】
種々の実施態様において、処理回路４２４はまた１以上のコンパレータ・アキュムレータ４００から累積された値を受け取って、画像とモデルデータとの比較に対する局所的な最大応答を示す二値タグワードを形成するように構成されている。さらに、プライオリティエンコーダ４１７は、処理回路４２４から二値タグワードを受け取り、二値タグワードに基づいて制御回路４２２に出力を提供するように構成できる。種々の実施態様において、制御回路４２２はさらにＶＳｏＣ２００からの出力を提供するように構成されている。
【００４４】
図５は、ＶＳｏＣ２００の実施態様のより詳細な表現を例示する。種々の実施態様において、ＶＳｏＣ２００は上述したピクセルアレイ２０８と併せて、ピクセルコントローラ５０５、複数のアナログコンパレータ５０７、アナログランプ発生器５０４、複数のアナログ・デジタル変換器（ＡＤＣ）ラッチ５０９、およびデジタルランプ発生器５０３を含んでいる。種々の実施態様において、ピクセルアレイ２０８は行と列に配置された複数のピクセル回路５０６を含んでいる。また種々の実施態様において、各ピクセル回路５０６は、撮像されている場面の対応する部分の光強度をサンプリングするために、感光要素または光検出器、例えばフォトダイオードなどを含んでおり、各ピクセル回路５０６は、サンプリングされた光強度に基づいてアナログピクセル信号を提供するように構成されている。
【００４５】
種々の実施態様において、ピクセルコントローラ５０５は、ピクセルアレイ２０８内のピクセル回路５０６に制御信号を供給してピクセル回路５０６の動作を制御する。幾つかの実施態様において、ピクセルアレイ２０８の同じ行にあるピクセル回路５０６はピクセルコントローラ５０５からの共通の行制御信号を共有し、ピクセルアレイ２０８の同じ列にあるピクセル回路５０６は共通の列読出しラインを共有して出力を提供する。種々の実施態様において、ピクセルコントローラ５０５は、ピクセル回路５０６を制御して１行ずつデータの出力を提供する。また種々の実施態様において、ピクセルアレイ２０８内のピクセル回路５０６の各列からのアナログピクセル信号出力は、対応するアナログコンパレータ５０７に入力される。
【００４６】
種々の実施態様において、ピクセルアレイ２０８からのアナログピクセル信号出力のアナログ・デジタル変換は複数のアナログコンパレータ２０７、アナログランプ発生器２０４、複数のＡＤＣラッチ２０９、およびデジタルランプ発生器５０３を用いて実行される。幾つかの実施態様において、ピクセルアレイ５０８の各列におけるアナログピクセル信号出力は対応するアナログコンパレータ５０７で、アナログランプ発生器５０４によって生成された共通のアナログ基準レベルと比較される。また、幾つかの実施態様において、デジタルランプ発生器５０３は、アナログランプ発生器５０４によって生成されたアナログ基準レベルを代表するデジタル信号を生成するように構成されている。種々の実施態様において、アナログ基準レベルの何らかの与えられた列がアナログピクセル信号のレベルに等しい場合、対応するアナログコンパレータ５０７はデジタル出力を生成して対応するＡＤＣラッチ５０９にデジタルランプ発生器５０３によって供給されたデジタル信号の値をラッチさせる。
【００４７】
種々の実施態様において、ＶＳｏＣ２００はさらに、制御プロセッサ５０１、上述した汎用姿勢メモリ４０２、複数の画像入力レジスタ５１０、複数の入力／出力（Ｉ／Ｏ）レジスタ５１１、複数のシフトレジスタ５１２、複数の算術論理ユニット（ＡＬＵ）５１３、複数の画像メモリデバイス４１４（上述）、および種々の回路コンポーネントを適当なサイズのバスを介して相互に接続する複数のデータパス５１８を含んでいる。種々の実施態様において、制御プロセッサ５０１は汎用メモリ５０２に接続されて、そこからＶＳｏＣ２００の制御要素を実行するためのプログラムおよびモデルを得る。種々の実施態様において、各ＡＤＣラッチ５０９に対応する画像入力レジスタ５１０に接続され、各画像入力レジスタ５１０は出力データラインによりデータパス５１８の対応する分岐に接続されている。
【００４８】
種々の実施態様において、各データパス５１８は、データをビットシリアル形式で搬送するシリアルデータパスを含んでいる。他の種々の実施態様において、各データパス５１８は、データを搬送するための複数のデータラインを含んでいてもよい。幾つかの実施態様において、複数のデータパス５１８はバスの一部である。また、幾つかの実施態様では、ピクセルアレイ２０８内のピクセル回路５０６の各列に対して１以上のデータパス５１８が存在する。種々の実施態様において、各データパス５１８は対応する画像入力レジスタ５１０、対応するＩ／Ｏレジスタ５１１、対応するシフトレジスタ５１２、対応するＡＬＵ５１３、および対応する画像メモリデバイス４１４に接続されている。また、種々の実施態様において、複数のＩ／Ｏレジスタ５１１は、それぞれ制御プロセッサ５０１に接続されて、制御プロセッサ５０１からデータを入力したり、制御プロセッサ５０１にデータを出力したりする。幾つかの実施態様において、複数のシフトレジスタ５１２は、左右すぐ近隣にシフトレジスタがあればそれぞれ接続されている。また、幾つかの実施態様において、各ＡＬＵ５１３は一組の対応するレジスタを通して対応するデータパス５１８に接続されており、これらのレジスタは２以上のデータ入力レジスタ（ａおよびｂ）と１個のキャリーレジスタ（ｃ）を含んでいる。
【００４９】
種々の実施態様において、各画像入力レジスタ５１０はデジタル化された画像データを相応のデータパス５１８により、対応するＩ／Ｏレジスタ５１１、対応するシフトレジスタ５１２、対応するＡＬＵ５１３、および対応する画像メモリデバイス４１４に利用できるようにする。種々の処理操作において、画像データは複数の画像メモリデバイス４１４にバッファリングされ、ＬＡＰ４２５の一部を共同で含んでいる複数のＡＬＵ５１３を用いて処理される。種々の実施態様において、処理された画像データまたは他のデータは、二次データ処理および／またはＶＳｏＣ２００の外部にあるデバイスとのデータの外部通信のために、複数のＩ／Ｏレジスタ５１１を通して制御プロセッサ５０１によってアクセスされてもよい。
【００５０】
図４および図５を参照すると、種々の実施態様において、制御回路４２２は制御プロセッサ５０１およびピクセルコントローラ５０５を含んでいる。また、種々の実施態様において、処理回路４２４は複数のアナログコンパレータ５０７、アナログランプ発生器５０４、複数のＡＤＣラッチ５０９、デジタルランプ発生器５０３、複数の画像入力レジスタ５１０、複数のＩ／Ｏレジスタ５１１、複数のシフトレジスタ５１２、および複数のＡＬＵ５１３を含んでいる。種々の実施態様において、１以上の画像メモリデバイス４１４（図４）は、図５に例示されているような複数の画像メモリデバイス４１４を含んでいる。
【００５１】
さらに図５を参照すると、種々の実施態様においてＶＳｏＣ２００はさらに、画像アドレスプロセッサ４１０、画像データセレクタ４１５、モデルデータシフタ４１６、複数のコンパレータ・アキュムレータ４２０、およびプライオリティエンコーダ４１７を含んでいる。種々の実施態様において、各々のデータパス５１８は画像データセレクタ４１５に接続されている。また、種々の実施態様において、制御プロセッサ５０１は画像アドレスプロセッサ４１０に接続され、次に画像アドレスプロセッサ４１０は複数の画像メモリデバイス４１４のアドレス入力および画像データセレクタ４１５の制御入力に接続されている。
【００５２】
幾つかの実施態様において、制御プロセッサ５０１はモデルデータシフタ４１６の入力に接続され、モデルデータシフタ４１６の出力は複数のコンパレータ・アキュムレータ４２０の各々の入力に接続されている。各コンパレータ・アキュムレータ４２０はまた画像データセレクタ４１５からの入力を受け取るために接続されている。種々の実施態様において、画像データセレクタ４１５は双方向バレルシフタなどを含んでいる。また、種々の実施態様において、各々の複数のコンパレータ・アキュムレータ４２０は、対応するデータパス５１８に作動的に接続されている。幾つかの実施態様において、プライオリティエンコーダ４１７は各々のデータパス５１８に接続され、および制御プロセッサ５０１に接続されている。図５に例示されたＶＳｏＣ２００のアーキテクチャの接続性および／または編成は例として提示されているものであり、他の種々の実施態様においてＶＳｏＣ２００は別の適当な配置構成を有してよいことが認識されるべきである。
【００５３】
図６は、ＶＳｏＣ２００に使用するための画像アドレスプロセッサ４１０の実施態様のブロック図を例示する。種々の実施態様において、画像アドレスプロセッサ４１０は、モデルの座標を少なくとも一部は１以上の変換値に基づいて変換済み座標に変換するように構成されている。種々の実施態様において、画像アドレスプロセッサ４１０は変換値を記憶するために変換係数レジスタ６０２、６０３、６０４および６０５、画像行オフセットレジスタ６０１、および画像列オフセットレジスタ６０６を含んでいる。種々の実施態様において、画像アドレスプロセッサ４１０はさらに、符号付き乗算器６０７、６０８、６０９および６１０、ならびに加算器６１１、６１２、６１３および６１４を含んでいる。
【００５４】
アドレスプロセッサの動作の例で、画像アドレスプロセッサ４１０への入力としてモデルの第１の座標（図６にＸで示す）とモデルの第２の座標（図６にＹで示す）が提供される。図５および図６を参照すると、種々の実施態様において制御プロセッサ５０１は、モデル汎用メモリ４０２からのモデル命令をフェッチして、画像アドレスプロセッサ４１０に対するモデル命令に含まれた座標を提供するように構成されている。例えば制御プロセッサ５０１は汎用メモリ４０２からのモデルのモデル命令、例えばモデル例として提示されているモデルの第１のモデル命令をフェッチして、モデル命令に含まれている座標、例えば例における座標（−７、−２）を画像アドレスプロセッサ４１０に提供するように構成できる。この例では、第１の座標に対する−７の値は画像アドレスプロセッサ４１０へのＸ入力として提供され、第２の座標に対する−２の値は、画像アドレスプロセッサ４１０へのＹ入力として提供されよう。
【００５５】
図６に示すように、種々の実施態様において変換係数レジスタ６０２、６０３、６０４および６０５はそれぞれアフィン変換係数Ｋ００、Ｋ０１、Ｋ１１およびＫ１０を記憶するために書込み可能であり、Ｋ００、Ｋ０１、Ｋ１１およびＫ１０の値は所望の変換を実行できるように設定可能である。種々の実施態様において、画像行オフセットレジスタ６０１は行オフセット値ＤＲを記憶するために書込み可能であり、画像列オフセットレジスタ６０６は列オフセット値ＤＣを記憶するために書込み可能であり、ＤＲおよびＤＣの値は設定可能である。種々の実施態様において、制御プロセッサ５０１（図５）は、画像アドレスプロセッサ４１０内の値Ｋ００、Ｋ０１、Ｋ１１、Ｋ１０、ＤＲおよびＤＣをモデルの所望の幾何学的変換に基づいて設定するように構成されている。
【００５６】
種々の実施態様において、符号付き乗算器６０７は変換係数レジスタ６０２からの入力と、変換されるべき第１の座標である入力を受け取り、出力を加算器６１１に提供する。また、種々の実施態様において、符号付き乗算器６０８は変換係数レジスタ６０３からの入力と、変換されるべき第２の座標である入力を受け取り、出力を加算器６１１に提供する。種々の実施態様において、符号付き乗算器６０９は変換係数レジスタ６０４からの入力と、変換されるべき第２の座標である入力を受け取り、出力を加算器６１２に提供する。また、種々の実施態様において、符号付き乗算器６１０は変換係数レジスタ６０５からの入力と、変換されるべき第１の座標である入力を受け取り、出力を加算器６１２に提供する。
【００５７】
種々の実施態様において、加算器６１１は符号付き乗算器６０７と符号付き乗算器６０８から入力を受け取り、出力を加算器６１３に提供する。また、種々の実施態様において、加算器６１２は符号付き乗算器６０９と符号付き乗算器６１０から入力を受け取り、出力を加算器６１４に提供する。種々の実施態様において、加算器６１３は画像行オフセットレジスタ６０１と加算器６１１から入力を受け取り、出力を第１の変換済み座標（図６にＲで示す）に提供する。また、種々の実施態様において、加算器６１４は画像列オフセットレジスタ６０６と加算器６１２から入力を受け取り、出力を第２の変換済み座標（図６にＣで示す）に提供する。こうして図６の実施態様において、画像アドレスプロセッサ６００は複数の変換値Ｋ００、Ｋ０１、Ｋ１１、Ｋ１０、ＤＲおよびＤＣに基づいて座標（Ｘ、Ｙ）を変換済み座標（Ｒ、Ｃ）に変換することを可能にする。
【００５８】
図７に示すテキストボックス７１０には、図６の画像アドレスプロセッサ４１０の実施態様に対する（Ｘ、Ｙ）入力と（Ｒ、Ｃ）出力との関係を規定した方程式が記載されている。図７に例示されているように、Ｒに対する方程式はＲ＝Ｘ＊Ｋ００＋Ｙ＊Ｋ０１＋ＤＲとして提供され、Ｃに対する方程式はＣ＝Ｘ＊Ｋ１０＋Ｙ＊Ｋ１１＋ＤＣとして提供される。こうして図６の画像アドレスプロセッサ４１０の実施態様は所望の幾何学的変換のための変換値を設定することによって、幾何学的変換、例えば回転、拡縮または転移に従いモデルの座標を変換することを可能にする。画像アドレスプロセッサ４１０を用いて幾何学的変換を可能にすることによって、１以上の特徴のモデルを、画像中の１以上の特徴の種々の回転、縮尺および転移に対するパターンマッチングに使用できる。
【００５９】
図６の画像アドレスプロセッサ４１０の実施態様において、画像アドレスプロセッサ４１０は６個の変換値Ｋ００、Ｋ０１、Ｋ１１、Ｋ１０、ＤＲおよびＤＣに基づいて座標を変換することを可能にする。こうして図６の画像アドレスプロセッサ４１０の実施態様は、変換に対して６自由度を可能にする。もちろん、画像アドレスプロセッサ４１０の他の種々の実施態様において変換に対して６自由度以上許容するために６以上の変換値を使用できることが理解されるべきである。例えば種々の実施態様において、画像アドレスプロセッサ４１０に別の３個の変換値が提供され、画像アドレスプロセッサ４１０は、さらに透視歪みに対する変換を許容するように構成される。他の種々の実施態様では、画像アドレスプロセッサ４１０の実施態様において６個より少ない変換値が用いられてよいことも理解されるべきである。例えば画像アドレスプロセッサ４１０の種々の実施態様は、転移を可能にするために２個の変換値のみ許容してよい。また、図６に例示された画像アドレスプロセッサ４１０の実施態様は例示的な画像アドレスプロセッサの実装の例として提示されており、他の種々の実施態様では座標の変換に使用する画像アドレスプロセッサとして代替的な配置構成を使用できることが認識されるべきである。
【００６０】
図８は、ＶＳｏＣ（図４）で使用するためのコンパレータ・アキュムレータ４２０の実施態様のブロック図を例示する。種々の実施態様において、コンパレータ・アキュムレータ４２０は画像データシフタ８０１、画像データデコーダ８０２、複数のＡＮＤゲート８０３、ＯＲゲート８０４、マッチシフタ８０５、マッチエンコーダ８０６およびマッチアキュムレータ８０７を含んでいる。種々の実施態様において、画像データシフタ８０１は、画像データ入力ライン８０８からデータを受け取り、画像データシフタ８０１がシフトするようにクロックされる度に画像データシフタ８０１内でデータを１位置だけシフトするように構成されている。また、種々の実施態様において、画像データシフタ８０１は、画像データデコーダ８０２に出力を提供するように構成されている。
【００６１】
種々の実施態様において、画像データデコーダ８０２は画像データシフタ８０１から提供された値を復号し、復号された値の各ビットを複数のＡＮＤゲート８０３の対応するＡＮＤゲートの相応の第１の入力に提供するように構成されている。また、種々の実施態様において、モデルの１以上のモデル値の各ビットは、１以上のモデルデータ入力ライン８０９を介して複数のＡＮＤゲート８０３の対応するＡＮＤゲートの相応の第２の入力に提供されるように構成されている。
【００６２】
種々の実施態様において、画像からのビットは画像データシフタ８０１内にシフトされ、次に画像データデコーダ８０２により、画像データシフタ８０１内の二値数の十進値に対応するビット位置に「１」を有し、他のすべての位置に「０」を有するビットストリングに二進展開することによって復号してもよく、復号されたビットストリング内の低いオーダーのビットは０のビット位置に対応する。次に、種々の実施態様において、画像データデコーダ８０２からの復号されたビットストリングは、複数のＡＮＤゲート８０３を用いて、１以上のモデルデータ入力ライン８０９を介して提供される、モデル内の値から再構成されたビットストリングと比較してもよい。種々の実施態様において、ＯＲゲート８０４は複数のＡＮＤゲート８０３の各々の出力を受け取り、複数のＡＮＤゲート８０３のいずれかの出力が「１」の場合は「１」の出力ビットを提供する。幾つかの実施態様において、ＯＲゲート８０４は複数のＯＲゲートによって置き換えられて、複数のＡＮＤゲート８０３のいずれかが「１」の値を有するビットを出力したか決定するように構成できる。種々の実施態様において、ＯＲゲート８０４の出力は、モデルの特定の幾何学的変換および幾何学的に変換されたモデルの画像に対する特定の位置について、画像の画像データとモデルのモデルデータとの間にマッチが検出されたか否かを示す。種々の実施態様において、複数のＡＮＤゲート８０３およびＯＲゲート８０４はコンパレータと見なされてもよい。もちろん、複数のＡＮＤゲート８０３およびＯＲゲート８０４は比較を実行するための配置構成の例として提示されており、他の種々の実施態様において別のタイプのコンパレータを使用できることが認識されるべきである。
【００６３】
種々の実施態様において、ＯＲゲート８０４の出力はマッチシフタ８０５に提供され、そしてこのマッチシフタ８０５は、ＯＲゲート８０４から提供されたビットを入力し、マッチシフタ８０５がクロックされる度にマッチシフタ８０５内の他のビットを１位置だけシフトするように構成されている。種々の実施態様において、マッチシフタ８０５内のデータはマッチエンコーダ８０６に出力され、そしてこのマッチエンコーダ８０６は、マッチシフタ８０５内に記憶されたビットで表される値を符号化し、マッチアキュムレータ８０７のクロックに出力を提供するように構成されている。種々の実施態様において、マッチアキュムレータ８０７は、１以上のモデルデータ入力ライン８０９からモデルの累積増分を受け取り、そしてマッチエンコーダ８０６の出力の値に基づいてクロックされると累積増分を積み増すように構成されている。また、種々の実施態様において、マッチアキュムレータ８０７は、マッチアキュムレータ８０７内で累積された値を対応するデータパス５１８に出力するように構成されている。
【００６４】
種々の実施態様において、制御回路４２２（図４）は、信号を各々のコンパレータ・アキュムレータ４２０に送り、制御回路４２２がリセットコマンドを含んだモデル命令を実行すると各々のコンパレータ・アキュムレータ４２０内のマッチアキュムレータ８０７がデフォルト値にリセットされるように構成されている。また、種々の実施態様において、制御回路４２２は信号を送り、制御回路４２２が比較コマンドを含んだモデル命令を実行すると各々のコンパレータ・アキュムレータ４２０内のマッチアキュムレータ８０７によって累積が行われるように構成されている。そのような実施態様において、各々のコンパレータ・アキュムレータ４２０内のマッチアキュムレータ８０７は対応するマッチエンコーダ８０６の出力によってクロックれてもよく、累積が許されたときにマッチアキュムレータ８０７は対応するマッチエンコーダ８０６から出力された値に応じて累積を実行するか、または実行しない。
【００６５】
ＩＩ．ＶＳｏＣシステムの実装
ＩＤ特徴を検出、同定および抽出するためのシステムおよび方法の例示的な実施態様において、全体的なスキャニング手段アーキテクチャ９００において実装される視覚センサ（ＶＳｏＣ）２００は、図９に従って提供される。上述した例示のＶＳｏＣ２００に関して図示および説明された種々の要素は、本システムおよび方法における諸機能との相互参照を容易にするために再編されている。例えば、図９に示す読出し回路９１８の諸要素は一部は上述した制御回路４２２内にあり、一部は処理回路４２４（図４および図５）内にある。同様にＬＡＰ４２５は全体的な処理回路４２４の一部として示されている。読者が例示のシステムおよび方法が動作できるための例示の（または代替的な）ＶＳｏＣアーキテクチャの環境をさらに理解するのを助けるために、追加の機能および相互接続（例えばＩＤ復号ＤＳＰ９８０および種々の通信ポート）が図９にも示されている。
【００６６】
図示されたピクセルアレイ２０８は、例示の１Ｄバーコード９１６を含んだＲＯＩ９１４を撮像している状態で示されている。バーコード９１６に対するピクセルアレイ２０８の向きは、角度および回転が高度に可変である。同様にピクセルアレイは、この実施態様により想定されている画像捕捉および処理フレームレートでバーコードに対して運動することが期待でき、そのような運動が存在すると復号に必要とされる情報を一層の信頼性をもって捕捉できる。例示のピクセルアレイは１０２８列×７８６行として構成できる。そのようなアレイは境界効果を回避するために、上下および左右に２個のダミー行および列を含んでいてもよく、こうして例示的な１０２４行×７８２列のアクティブな８ビット（または代替として６ビット）のピクセルアレイを提供する。ＡＤＣ回路を含む相互接続された読出し回路９１８と上述した関連機能は、アナログセンサの出力をデジタルピクセルデータに変換し、これは例示的な実施態様により関連するバス９２０を介して１０２４行として線形アレイプロセッサ（ＬＡＰ）４２５に読み出される。
【００６７】
ピクセルアレイ２０８内の画像捕捉プロセスは、センサコントローラ９２２によって処理される。例示した実装では、これはアレイ内のピクセルの各行に対する操作および読出し回路のイベントのシーケンスを制御するために要求される波形を生成するプログラム可能な有限状態機械（ＦＳＭ）からなる。センサコントローラ９２２の動作はユーザにより別個の１６ビットプロセッサ５０１（上に図５で説明した制御プロセッサ５０１）内の構成レジスタ９４２を介してプログラムできる。これはＶＳｏＣ２００の一部であり、さらに以下で説明する。これらのレジスタ９４２は、ピクセルアレイ２０８および読出し回路９１８のすべてのプログラム可能なパラメータを構成し、ＲＯＩ、シャッターモード、露出時間およびＡＤＣ解像度のパラメータを含む。画像フレームが取得されると、それは１０２４行にわたり１行ずつ読み出されてデジタル形式に変換される。この読出しおよびＡ／Ｄ変換プロセスと並行して、ＬＡＰ４２５はこのシステムと方法のＲＯＩ検出および特徴抽出アプリケーションのプログラムコードに従って画像を処理する（以下に説明する）。
【００６８】
ＬＡＰ４２５は１０２４の同一処理要素の一次元アレイからなるパラレルプロセッサであり、各々の要素は上で一般的に説明したように１ビットデータパス、１６アキュムレータビット、キャリーおよびイネーブルフラグからなる。ＬＡＰ４２５はＳＩＭＤ機械として実現されているので、すべてのプロセッサは同時に動作し、同じ動作を異なるデータで実行する。
【００６９】
各ＬＡＰ要素はデータメモリの１列（４０９６ビット）から１ビットを読み取り、書き込むことができる。行アドレスはＬＡＰメモリ読取りまたは書込みサイクルの間、すべての要素に対して同じである。データメモリとＬＡＰとの間には、読出しデータを左か右に最大１３位置シフトするように構成できるバレルシフタがある。これにより各ＬＡＰ要素は（クロックサイクル毎に）それ自身の位置の左右１３列からのデータにアクセスできる。データメモリ（すなわち上に図４で説明した１以上の画像メモリデバイス４１４）は、１０２４×１０２４ビットの４ブロックからなる広い１０２４バス９５２を介して相互に接続されている。このメモリは画像処理の中間結果を記憶するために使用される。メモリはＬＡＰからの全体的な処理画像の部分のみ記憶するように適合されることに留意すべきである。それはまた以下に説明するように、処理の中間結果、例えばＲＯＩ情報および抽出された特徴を記憶する。こうしてピクセルアレイからのデータはメモリ４１４内を絶えず動かされ、成功したＩＤ検出動作に関係がなければ廃棄されるか、または情報が有望なＩＤ特性を示す場合は次のステップおよびプロセッサ、例えば復号に進む。典型的なアプリケーションにおいて、取得される画像は１行ずつＬＡＰに伝送される。ＬＡＰ４２５においてデータは処理されて等価二値画像を生成する。この結果として生じる二値画像は、その後の処理のために漸次データメモリに記憶される。幾つかの視覚システム実施態様において、二値画像スキャンはＶＳｏＣの相関器９５４によって処理されて、正規化相関およびパターンマッチング情報を得ることができる。該当する場合は、正規化相関を加速し、画像中でパターンマッチングを実行するために使用できる。プライオリティエンコーダは画像行内の推移を検出するために最適化される。上述したプライオリティエンコーダ９５６（幅１０２４ビット）は、バス９５２を介してメモリ４１４と相互作用してデータメモリ行内のセットビットの高速検出を提供する。
【００７０】
多数の画像処理動作はＬＡＰ４２５上で実行され、画像行内のポイントの接続性または分布が検出されなければならない。例示的な実施態様においてこれらの動作を加速するために、ＶＳｏＣ２００はアレイを横断する「伝搬／生成」機能を実現するカスタム論理ブロックを包含する。伝搬／生成ユニット９５８（バス９５２上）の可能な２通りのアプリケーションは、オブジェクトの位置特定と「未知のポイント」の解像である。ブロックは１０２４個の同一セルからなる。各セルは近隣セルと通信する１対の「搬入」および「搬出」信号を有する（それぞれ右方向と左方向に対応）。アレイの左側と右側の入力はゼロに設定されている。ＬＡＰ４２５ワードを伝搬／生成ユニットに書き込んだ後、伝搬／生成ユニット内の値が有効になるまで例示的に５サイクル必要とする。
【００７１】
制御プロセッサ５０１は、ＶＳｏＣ２００にＬＡＰ４２５とは別個のコンパクトな高速処理ユニットを提供する。例示的な実施態様におけるプロセッサ５０１は１６ビットユニットであるが、他のサイズも想定されている。それは効率的な低レベル画像処理と、ＬＡＰ４２５および相関器９５４に対する制御を提供する。プロセッサ５０１は汎用命令セットを用いて動作し、また二値画像上で動作するための追加的な専用命令もサポートする。なぜならば、そのような二値画像はＶＳｏＣの動作の典型的なモードだからである。プロセッサ５０１は何らかの主要な端末フラグを含む多数のソースからトリガされたインターラプトをサポートする。図示されているように、プロセッサ５０１はＬＡＰ４２５およびデータメモリ４１４とそれぞれ１６ビットバス９６０、９６２を介して相互に接続されている。
【００７２】
例示的な実施態様において制御プロセッサ５０１（本明細書では「ＣＰＵ」とも呼ぶ）は、縮小命令セットコンピュータ（ＲＩＳＣ）を伴うハーバード・アーキテクチャを用いて実現されており、プログラムとデータに対して別個のメモリを提供するが、プログラムメモリはデータ記憶の目的にも使用できる。これは１６個の汎用レジスタ、Ｒ０〜Ｒ１４およびＳＰ（９４２）を定義する。例示した実装においてこれらのレジスタはそれぞれ１６ビットである。また、例示の１７ビットのプログラムカウンタ／シーケンサ９４４も存在するが、これはプロセッサが直接６５５３６個の１６ビットワードをプログラムＲＡＭ（すなわち上記汎用メモリ４０２）内でアドレス指定し、同じ量をプログラムＲＯＭ９４８内でアドレス指定することを可能にする（しかしこの実施態様ではＲＯＭは現在４８Ｋのアクティブなワードしか持っていない）。計算はすべてレジスタ間で行われる。こうしてメモリからの値は操作される前にレジスタ（９４２）にロードされる。
【００７３】
データメモリ４１４は、レジスタをポインタとして用いて、バス９６２を介して１６ビットワードとしてアクセスされる。レジスタは任意的にメモリアクセス後に事前減分または事後減分または事前／事後増分してもよい。例示した実装ではポインタ・プラス一定オフセットアドレス指定モードも提供される。２５６Ｋワード（５１２Ｋバイト）のフルデータメモリにアクセスすることを許容するために、例示した実装ではページレジスタが用いられる。二値画像は１ワード１６ピクセルでデータメモリにパックされる。効率的なアクセスを可能にするために、２個のポインタレジスタＰＸおよびＰＹが用いられる。これらは単一ピクセルをアドレス指定するために用いられ、いずれか一方または両者は独立にアクセス後に事後増分され、事後減分され、または変容されない。ＰＸレジスタは１０ビット、およびＰＹレジスタは１２ビットで画像マッピング（１０２４列×４０９６行）を反映する。
【００７４】
１２８ワードＩ／Ｏスペースも例示的に提供され（図示せず）、絶対的アドレス指定を用いて直接アクセスされる。これは多くのシステムと端末レジスタを含んでおり、残りはスクラッチメモリによって占められる。追加のレジスタ動作のために補助レジスタセット９４７も設けられている。ＬＡＰ４２５のアキュムレータバンク（１６ビットの１０２４ワード）はＰＸレジスタをポインタとして用いてアクセスできる。ＡＬＵ操作はワーキングレジスタ９４２、９４７の間でＡＬＵ９４９と、いずれか２個の汎用レジスタをオペランドとして用いることができる１６×１６乗算器アキュムレータを使用して行われる。そのような演算の３２ビット結果は３２ビットＭＲレジスタ（図示せず）に記憶または累積される。例示的に設けられているシフタは、ＭＲレジスタを０〜３１位置だけシフトダウンし、その結果を特定の汎用レジスタに入れてもよい。乗算器およびシフタは符号付き演算または符号なし演算用に構成できる。
【００７５】
プログラムメモリ４０２は１６ビットの６５５３６ワードを記憶する（上に図４で説明した汎用メモリの一部）。このＲＡＭメモリ４０２は物理的に３２ビットの３２Ｋワードとして編成できる。ＲＯＭ９４８は３２ビットの２４Ｋワードとして編成できる。ページレジスタはＲＯＭまたはＳＲＡＭがアクセスされるかどうかを決定し、プログラムフェッチ、プログラムメモリ読取りおよびプログラムメモリ書込み用に別個のページを有する。起動時には、プロセッサ５０１は最初にＲＯＭから実行する。ＲＯＭは、プロセッサの起動構成ピンを読み取って所望される二次起動モードを決定する起動ソフトウェアを有する。これらのモードは、ホストパラレルポート（ＦＩＦＯ）９６２からの起動、ＳＰＩスレーブポート（９６４）を介するホストプロセッサからの起動、およびＳＰＩマスタポート（９６４）を介するシリアルフラッシュ９７０からの起動を含んでおり、これらすべては１６ビット通信バス９６６を介してプロセッサと相互接続されている。ＲＡＭに／又はＲＡＭからレジスタ値およびデータを双方向に伝送できるようにする全二重シリアル通信を実現するためにＳＰＩ経路が設けられていることに留意されたい。標準ＳＰＩマスタポートはシリアルフラッシュメモリまたは他の端末装置にアクセスすることが意図されている。ソフトウェアに制御されて２台の互換デバイスを接続できるように２本のセレクトピンが設けられている。スレーブＳＰＩポートはホストマイクロコントローラとの代替インタフェースとして使用できる。利用可能な起動モードの一つが選択されたら、ソフトウェアが適当なデバイスからコードをロードしてプログラムＲＡＭ４０２に記憶する。すべてのソフトウェアがロードされたら、制御はプログラムＲＡＭ４０２のスタートに移動される。
【００７６】
例示のＶＳｏＣのＬＡＰ４２５と関連して、パラレル処理タスクとシリアル処理タスクの効率的なバランスを提供するために、多様なプロセッサ実装を採用できることは明確にすべきである。例示的な一実施態様において、ＣＰＵ／プロセッサ５０１とＬＡＰ４２５は同時に動作せず、むしろ両者のうち一方が与えられた命令を実行している間、他方は動作しないことが要求される。図示されたＣＰＵ／プロセッサ５０１は、例示的な実施態様による可能な実装の一つに過ぎない。ＬＡＰ、データメモリおよび他の関連コンポーネントとの適当な相互接続を有する代替的な実施態様において、異なる（非ハーバードおよび／または非ＲＩＳＣ）アーキテクチャに基づくプロセッサを実現できる。
【００７７】
ＳＰＩポート配置構成９６４に加えて、パラレル（ＦＩＦＯ）ポート９６２が設けられている。このポートはオフチップ・ホストプロセッサ、マイクロコントローラ、または他のデバイス、例えば例示的な実施態様で例示されたＩＤ復号ＤＳＰ９８０と通信することが意図されている。ＤＳＰ９８０はデータメモリ４１４からＬＡＰ４２５を介して処理された特徴データを反復的に受け取り、そのようなデータを連続的に復号し、復号されたＩＤを供給することに努める。このプロセスについて以下に詳述する。代替として、同じピンを図示されたビデオポートとして使用して、ビデオポートを装備された他のプロセッサに画像を出力することができる。一実施態様において、５１２ワード幅のホストポートは１０２４ピクセル行を約２５．５マイクロ秒または約５１画像／秒で伝送できる。バス９６６沿いに別個の専用ビデオポート９７２も設けることができることに留意されたい。
【００７８】
ツイストペア線を通してデータを連続的に高速で伝送するために、低電圧差動信号（ＬＶＤＳ）ポート９７４が設けられている。これは多様な商業的供給源から出ているデシリアライザＩＣと互換性のある１個のスタートビット、１０個のデータビットおよび１個のストップビットからなるフレームフォーマットを用いる。種々の実施態様において、ＬＶＤＳポート９７４は復号ＤＳＰ９８０との通信のためのホストポート９６２に対する代替として用いることができる。さらに、標準ＵＡＲＴ９７６の形式のシリアルポートが設けられ、また例示的に最大１６ＧＰＩＯラインを有する汎用入力／出力（ＧＰＩＯ）ポート９７８が設けられており、これらはバス９６６沿いの他のＩ／Ｏポートのピンで多重化されている。ＩＥＥＥ標準ジョイントテストアクショングループ（ＪＴＡＧ）ポート９８２は、プロセッサ５０１内のほとんどすべての内部デバイスおよび内部構成レジスタと直接接続を可能にするデバッグポートとして使用できる。この経路によってメインメモリおよび内部デバイスにアクセスすることも可能である。ＶＳｏＣ２００内には電源管理機能（９８４）、システムクロック発生器９８６、リセット機能（９８８および９９０）およびバステーブルＲＯＭ９９２も例示的に設けられている。さらに、バス９６６はプロセッサ５０１に応答して統計ユニット９９３と相互接続する。このユニット９９３は例示的にエッジ追跡動作の間、統計を計算する。統計は一組のＩ／Ｏマップドレジスタに記憶される。エッジ追跡が完了したら、統計は追跡されているオブジェクトの外周と直交および対角境界ボックスを決定するために使用できる。
【００７９】
上述したＶＳｏＣの実装は、多様な例示的な実施態様によるシステムおよび方法で使用するための多種の可能なプロセッサ実装の例であることは明確にすべきである。代替的な実施態様において、プロセッサは異なるパラレルアーキテクチャを中心に編成でき、別個の制御プロセッサの有無を問わない。同様に、本発明のシステムおよび方法を実行するために、高度にパラレルではなく、適当な速度およびデータ処理能力を備えた単一または複数のプロセッサを用いることができる。こうして、本明細書で使用される「ＶＳｏＣ」または「視覚センサ」の用語は、多様なプロセッサアーキテクチャを含めて広く解すべきであり、これには上述したある動作が他のオンチップコンポーネントと相互接続された別個のコンポーネントによりオフチップ（オフダイ）で実行されるものも含まれる。
【００８０】
例えば、本明細書で例示されたアーキテクチャは、ＳＩＭＤ  配置構成（ＬＡＰ）、メモリ、汎用プロセッサ（ＣＰＵ）およびピクセルアレイを単一チップ／ダイ上に含んで、ＶＳｏＣアーキテクチャを定義しているが、（例えば）ピクセルアレイはオフチップ／オフダイに存在し、適当なリードによって作動的に相互接続されることがはっきりと想定されている。これはある実装において望ましいであろう。これは例えば、デバイス形状要因が特定の幾何的条件を指定し、またはプロセスアセンブリとは別個のピクセルアレイが所望される場合である。
【００８１】
ＩＩＩ．画像捕捉、ＲＯＩ決定および任意的な特徴抽出
図１０は、例示のＶＳｏＣ２００または他の適当な処理システムを用いてＩＤ（例えば１Ｄバーコード−例えば多様な表面に置かれたＵＰＣ−Ａ）の区域で画像を捕捉し、潜在的にＩＤを含むＲＯＩを決定し、ＩＤを代表するＲＯＩから候補特徴を抽出するシステムおよび方法の概観１０００を示す。例示的な実施態様において、ＩＤがスキャニング手段および関連する端末装置によって有用な情報に復号されるプロセス全体１０００は、プロセス全体１０００をＶＳｏＣベースのプロセス１０１０と別個のデコーダベースのプロセス１０２０に分割することを必要とする。このようにしてＶＳｏＣは別個の効率的に実装されたデコーダ回路に接続されて、例えばＤＳＰとして実現され、多様な市販のＩＤ復号アプリケーションを実行できる。ＶＳｏＣおよびデコーダは適当な相互接続を介して（例えば上述のホストポート９６２を用いて）互いに接続されている。一般にそのようなアプリケーションは、データ接続１０３０によって表されているように、所定のＲＯＩの復号されたデータ値、検出されたＩＤ特徴の相対的角度、およびＩＤ特徴の詳細（例えば個々の特徴の相対的幅、間隔など）を導出できる。
【００８２】
図示されたプロセス全体１０００の配置構成により、処理負荷をＶＳｏＣとＤＳＰプロセッサとの間で配分することが可能である。プロセスの配分を採用することにより、１秒当り読取りの試み（画像捕捉速度によって表される）は最適化でき、それによって精度が増す。プロセスの配分によってまた、現在利用可能なシステムとアーキテクチャで得られるよりも高性能の全体システム（ＲＯＩ決定、特徴抽出、復号）が可能になり、種々の１Ｄコードタイプおよび潜在的に多様な２Ｄコードタイプを含む（がこれらに限られない）多様なシンボルをより効率的に復号できるようになる。
【００８３】
多数の要因が例示的な実施態様による処理の配分を望ましいものにしている。より具体的には、本明細書中の実施態様によるＶＳｏＣ２００は、近隣操作およびバーコード特徴の決定（例えばコントラストエッジ）において典型的なＤＳＰプロセッサよりも有意に効率的である。すなわち、ＶＳｏＣ２００はある行で与えられたピクセルに隣接する（近隣の）多数のピクセルデータに基づいて、ＬＡＰ４２５が当該行全体で並行動作するためにエッジを高速に処理できる。例示した実装では、近隣は与えられたピクセルから約±１３ピクセル離れている。さらに、例示のＶＳｏＣはデータ伝送では画像捕捉より低効率であり得るため、ＶＳｏＣと復号ＤＳＰ９８０との間で伝送されるデータの量が減少するならば、ＤＳＰ９８０が未加工画像データの捕捉と処理の両方を受け持つシステムよりも画像捕捉速度が改善されるべきである。同様に、ＤＳＰ９８０は典型的にＶＳｏＣ２００４２５（例示的な実施態様では９０ＭＨｚ）より高いクロック速度で動作するので、より高速に線形操作、例えばバーコード復号（適当な復号アプリケーションまたはアルゴリズムを用いて）を実行できる。同様に、ＤＳＰ９８０は例示した実装では典型的にＶＳｏＣ２００より多いプログラムメモリを提供するので、単一のアプリケーションで多様なシンボルを復号するように装備できる。
【００８４】
例示的なシステムおよび方法の種々の実施態様と関連してＶＳｏＣはＩＤ検出および決定の効率を増すことができる。図１１、図１６、図１７および図１８は、ＶＳｏＣプロセス全体の例示的な実施態様を示しており、それぞれデータを伝送し、これらのデータはオフチップ復号装置（慣用または特製のＩＤ復号アプリケーションを実行するＤＳＰ）によって使用されて復号されたＩＤ情報を導出することができる。一実施態様（図１１および図１６にバリエーションを示す）において、ＶＳｏＣプロセスはフロントエンド（ＦＥ）プロセスとバックエンド（ＢＥ）プロセスからなり、システム処理リソースをより高速に処理されるＩＤ  ＲＯＩ検出および追跡ステップと、オーバーヘッドがより大きい特徴抽出およびＩＤ検証ステップとに効率的に割り当てる。抽出された特徴、ＲＯＩ情報および検証された／精緻化されたデータが復号装置に提供される。任意的に、ＤＳＰに伝送されるデータは未加工の、圧縮された、またはサイズを縮小した（例えば画像全体のより小さい領域をカバーする）画像データを含むこともできる（以下に別の実施態様でも説明）。このＦＥ／ＢＥ実施態様は一般的に誤判定のＩＤ検出が最も少なく、したがって復号ＤＳＰは有望なＩＤで動作し、その処理能力が誤判定のＩＤを復号するために不必要に使用されないことを保証する。別の例示的な実施態様（図１７）において、ＢＥプロセスは本質的にＶＳｏＣプロセスから省かれ、ＦＥプロセスから追跡されたＲＯＩデータが直接復号装置に提供されて、適当な復号アプリケーションを実行する。伝送されるデータは、例えばＲＯＩの位置、サイズおよび向きのパラメータ、ならびにアレイからの画像データストリーム（またはその圧縮もしくは縮小サイズバージョン）を含んでおり、それらによって復号装置はＲＯＩの領域と関連した画像データ上で動作することによりＩＤの抽出を試みることができる。さらに別の例示的な実施態様（図１８）において、ＶＳｏＣプロセスは単純に特性などのＩＤの位置が特定された（例えばＲＯＩが検出された）という通知を提供でき、それにより復号装置または他のバックエンドプロセス、オフチッププロセスをトリガして、関連する未加工のまたは圧縮された画像データストリームに基づいて復号動作を起動させる。
【００８５】
代替的な実施態様によれば、ＶＳｏＣおよびＶＳｏＣで動作する例示的なシステムと方法は、画像ＩＤ情報または存在データ（例えばＲＯＩ検出）を捕捉して、他のＶＳｏＣや、ＩＤ情報をより精密な視覚システムプロセス（例えば完全ＩＤ検出および復号）を実行するための通知として用いる代替的な視覚センサにトリガを提供するように適合できることが想定されている。トリガＶＳｏＣに対するピクセルアレイ解像度は、フルスケールセンサと異なることがある（典型的にはより小さい）。この場合は、ＶＳｏＣおよびＶＳｏＣで動作する例示的なシステムと方法は、ＩＤ復号または他の操作のための全体的な視覚システムの端末として作用し、復号を実行するために使用される画像ストリームは他のピクセルアレイソースから伝送される。
【００８６】
最初に図１１を参照すると、例示的な実施態様により画像を捕捉し、その中にＲＯＩを決定し、潜在的な候補ＩＤ特徴を抽出してＤＳＰ９８０によって復号するＶＳｏＣプロセス１１００が示されている。ＬＡＰ４２５のパラレルアーキテクチャおよび縮小したサイズの画像データメモリ４１４（一般的にピクセルアレイ２０８から完全に捕捉された画像のサイズより記憶容量が小さい）を最も効率的に使用するために、プロセス１１００は「フロントエンド」（ＦＥ）サブプロセス１１１０と、任意的な（代替として下の図１７参照）「バックエンド」（ＢＥ）サブプロセス１１２０の２部分に分割されている。画像は捕捉され、ＦＥアルゴリズムを用いて同時に処理される。要約すると、ＦＥプロセス１１１０は特徴を抽出すべきＲＯＩが検出されたか決定する。典型的に、１以上のデータが検出された場合、このステップで保存される唯一のデータは、潜在的にＩＤを含んでいるＲＯＩの予測された位置である。ＲＯＩが検出されたら、後続の新しい画像が捕捉され、ＢＥプロセス１１２０を用いて同時に処理される。ＢＥプロセス１１２０は新しい画像中の予測されたＲＯＩ位置で実行する。
【００８７】
さらにＦＥプロセス１１１０を参照すると、ピクセルアレイ２０８は最初にステップ１１３０で１以上のＩＤを含んだ場面の画像を捕捉する。画像は読出し回路によって１行ずつＬＡＰ４２５に読み出される。画像が読み出されると、各行は画像データメモリ４１４に記憶され、ＣＰＵプロセッサ５０１に制御されてＬＡＰによって操作される。最初の目標は、ＲＯＩ検出ステップ１１３２で行に含まれているＩＤ状の特徴（エッジ）に基づきＲＯＩの位置特定を試みることである。より具体的には、この検出ステップの目標は対象ＩＤ（例えば１Ｄバーコード）のサイズ制約を満たす向きが類似したエッジの密な領域を特定することである。スキャニング手段のピクセルアレイ２０８のＩＤに対する回転角度はおそらく直角でないので、与えられた行にはＩＤの一部しか発生しない。したがってＩＤ状の特徴セットを有するＲＯＩを検出するために、幾つかの行の出力が必要とされよう。
【００８８】
さらに図１２および図１３を参照すると、ＲＯＩ検出ステップ１１３２は例示的に（ａ）画像読出し中に起こる行処理ステップ１２００（図１２）と、（ｂ）画像フレームピクセル読出しの完了後に起こる画像処理ステップ１３００（図１３）の２段階に分割されている。本明細書に記載されたステップの順序（行処理に画像処理が続き、それぞれの中に個別のサブステップがある）の説明は、想定されている多くの可能なプロセスステップおよびサブステップの順序の例として受け取られるべきであることに留意されたい。図示／説明された順序は例示的な実施態様において、ＲＯＩ検出アルゴリズムを実行する際の効率を促進するために望ましい。しかしながら代替的な実施態様において、記載された行処理サブステップの幾つかは画像処理の一部とすることができ、その逆も可能である。より一般的に、本明細書中の種々のプロセスに関して記載されたステップおよびサブステップは、特定のプロセッサおよび／またはアルゴリズムの要件を満たすために必要な場合は再編できる。
【００８９】
行処理ステップ１２００は潜在的なＩＤエッジを特定し、これらを回転の向きに基づいてビンにまとめるために用いられる。ステップ１２１０に示されているように、プロセス１２００はＮ行の画像を記憶しているメモリ４１４内のローリングバッファを定義する（ステップ１２１０）。この例ではＮは３行に等しい。次に行処理ステップ１２２０に従い、新しい行が取得されるたびに、プロセスは適当なエッジ検出ツール、例えば３×３ゾーベル・オペレータを用いてＸ方向とＹ方向で８ビットの符号付きエッジ強度（Ｓｘ、Ｓｙ）を検出する。次に結合された強度がＳｍ＝ａｂｓ（Ｓｘ）＋ａｂｓ（Ｓｙ）として計算される。これはＩＤに対する潜在的なテクスチャと見なされる十分なエッジ状特性を与えない区域を排除するためのメカニズムを提供する。この「ノイズ」区域の排除はステップ１２２４で行われる。次に、プロセス１２００の行処理ステップ１２２０は、所定のノイズ閾値を上回るエッジ強度を有するピクセルを決定する（ステップ１２２６）。例示的な実施態様では、ノイズ閾値として値２５が用いられる。代替的な実施態様において、エッジデータに対する感度を高めるためにより低い閾値（ノイズに対する抵抗性が小さい）を使用してもよい。他のメカニズムも適用でき、例えば局所的なエッジ強度閾値を設定するために局所的コントラストを測定することも想定されている。次に、各エッジは４（または他の数）の回転の向きの一つを表す相応のビンに入れられる（ステップ１２２８）。個別のビンが４個ある場合、各ビンは１８０度の弧上で４５度の範囲を表す。次に、ステップ１２２９でＭ行を横断して（すなわち垂直に）各々の向きのビンの内容を垂直に加算する。この実施態様ではＭは１６行に等しいが、他の値も想定されている。ここでは各ビンは特定の列位置で１６行の画像中に存在する特定の向きのエッジカウウントを表す。ステップ１２２０で出力されたビンはステップ１２４０で、１０２４（列）×４（向き）×４８（合計行方ビン当り結合されたビン）ビンに記憶され、ビン当り５ビットのデータを有する。代替的な実施態様において、ゾーベル計算（ステップ１２２２）は現在用いられている８ビットから６ビット、さらにはそれより少ないビットに減らされることが想定されている。
【００９０】
次にＲＯＩ検出ステップ１１３２で、画像ピクセル読出しの完了に続いて、出力されたビンで画像処理ステップ１３００（図１３）が実行される。ステップ１３００は２部分からなる。第１の部分１３１０では、潜在的なＩＤの向きが類似したエッジがグループ分けされて、解像度を減らした二値画像を形成する。それから第２の部分１３３０で、プロセスは視覚ツール（例示的に慣用的なブロブ分析ツール）を用いて可能なＩＤ  ＲＯＩを決定する。
【００９１】
画像処理ステップ１３００の第１の部分１３１０を参照すると、ステップ（１３１２）でＰ個のビンのグループは水平に加算される。例示的な実施態様において加算されたビンの数Ｐは１６である。代替的な実施態様においてこの数Ｐは可変である。例示の１６ビンを加算した後では、各ビンは１６×１６画像タイルに対して同じ向きのエッジカウントを含んでいる。換言すれば、画像のすべての１６×１６領域に対して４個のビンが存在し、それぞれ当該ビンの向きの数のカウントを有する。次に、各ステップ１３１２で合計された１６×１６領域の各々に対して後続のステップ（ボックス１３２０）が起こる。最初にステップ１３２２では、各領域に対してプロセス１３００は最大エッジカウントを有する構成的ビン（「最大のビン」）と２番目に大きいエッジカウントを有するビン（「次に最大のビン」）、最小のエッジカウントを有するビン（「最小のビン」）と次に最小のエッジカウントを有するビン（「次に最小のビン」）を決定する。次にステップ１３２４で、各領域について２個の最大のエッジカウントビンが加算され、ここから２個の最小のエッジカウントビンが減算される。次にステップ１３２６で、各領域について、所定の閾値を上回る（ステップ１３２４で）結合されたエッジカウントの合計に対して、プロセスは６４×４８（または他の所定のサイズ）の二値画像中のビンの位置に「１」（または他の指標）を割り当てる。この「１」の値は、当該タイルには十分に向きが類似したエッジがあることを示している。さもなければ、ステップはこの位置に「０」または他の指標を割り当てる。その結果は、特定の領域に対して優勢な向きが達成されることである。ある領域で優勢な向きを評価し、その優勢な向きに関係した強度に対応する値を提供するために、多様な代替プロセスを採用できることがはっきりと想定されている。
【００９２】
画像処理ステップ１３００の第１の部分１３１０を実行した後で、プロセス１３００は第２の部分１３３０を実行して、全体的画像はクリーニングされ、慣用的なブロブ分析または他の適当な視覚ツールを用いて可能なＩＤ  ＲＯＩを決定する。最初にプロセスの第２の部分１３３０は二値形態学（この実施態様では画像慣用的な画像処理技術を用いて画像の２回の膨張と画像の１回の収縮を実行することを含む）を実行して穴を埋め、ＩＤバー／特徴の間の広いスペースのために弱く接続された領域を結び付ける（ステップ１３３２）。画像がクリーニングされたら、ステップ１３３４でプロセスは高速ブロブ分析を実行する。高速ブロブ分析の結果（また他の適当な視覚ツールの結果）は、周知のＩＤに対する所定のサイズ基準を満たさないブロブを取り除くために使用される（ステップ１３３６）。例示的な実施態様で現在の基準は、（ａ）サイズ＞４５ピクセル（各ピクセルは１６×１６領域を表す）、（ｂ）幅＞２ピクセル、および（ｃ）高さ＞２ピクセルを有するブロブを含んでいる。
【００９３】
ステップ１３３８でＩＤサイズ基準を満たすことができないブロブを取り除いた後、ステップ１３３８で例示のプロセス部分１３３０はグリッド整列されたブロブ方形を用いてブロブ位置をオリジナル画像座標にマッピングして戻す。代替として、代替的な実施態様においてグリッド整列されない方形（または他の周知の境界形状）を用いることができる。最後にステップ１３３９で、プロセスの第２の部分１３３０は、画像座標のＹ方向で固定されたサイズの量またはＲＯＩサイズに比例する量だけブロブサイズを拡張することによって、グリッド整列された（またはグリッド整列されない適当な）ＲＯＩを生成する。この拡張は静かな（低ノイズの）ＩＤ区域およびビン閾値を越えない散在ＩＤ成分コンポーネントが捕捉されたことを保証する。その最終結果は検出済みＩＤ  ＲＯＩである。このデータを生成するための処理時間は、行ピクセルで近隣操作を実行する際のＬＡＰの効率のために比較的小さい。
【００９４】
再び図１１のＦＥサブプロセス１１１０を参照すると、各ＲＯＩ検出ステップ１１３２の結果はメモリ４１４に記憶される。１以上のＲＯＩ結果が利用可能であれば、ＦＥサブプロセス１１１０はマルチフレームＲＯＩ追跡／予測ステップ１１３４に入る。一実施態様においてＲＯＩ追跡ステップ１１３４は画像中に１個の候補ＲＯＩがあることを保証し、記憶された画像の連続における当該ＲＯＩの中心を用いて、スキャニング手段／ピクセルアレイ２０８の結果としてＲＯＩの方向、速度および加速度を評価する。ピクセルアレイ２０８はＩＤに対して動かされるか、またはその逆であり−またはＩＤおよびピクセルアレイ２０８の双方が互いに対して動かされる。ＩＤが１秒当り３０インチ動くためには、フレーム当りの位置変化の程度がかなり小さく、１秒当りに処理されるフレームの数約１５０〜２００という効果的なフレームレートが推定される。追跡プロセスは比較的高速に動作して、フレーム間のＲＯＩの中心の位置の変化を視野内における位置（これは全体的なピクセルアレイまたはそのサブセットで表すことができる）を基準に比較する。代替的な実施態様において、画像中に１以上のＲＯＩ候補が存在する場合に、各ＲＯＩを別個に識別および追跡する適当なメカニズムでＲＯＩ追跡を使用できることに留意されたい。例えば、各ＲＯＩがフレーム間で類似に小さい量だけ動く場合に、各ＲＯＩの新しい位置は当該ＲＯＩと関連し、他のＲＯＩとは関連していないことが推定される。より一般的には、１以上のＲＯＩの追跡は、各画像フレーム中の候補ＲＯＩが先行の位置に対する距離および方向の点で連続して（例えば容認可能な動きの制約の所定の範囲内で）動いたかということに関する決定を伴う。所定の単一または複数のフレーム内で他のフレームに対して候補ＲＯＩの距離または方向の不連続性が大きい場合は、追跡計算から除外できる。同様に、レーム間で候補ＲＯＩに予想される連続した軌跡が欠如していることは、誤った読取りを示す。
【００９５】
決定ステップ１１３６は、十分な数の信頼できる追跡イベントが起きたか判定し、潜在的なＩＤ  ＲＯＩの適当な追跡を保証するのに十分な数の信頼できる追跡イベントが記憶されるまで（分岐１１３８を介して）分岐してステップ１１３０に戻る。ＲＯＩがほぼ間違いなく追跡プロセスの対象である（例えばＲＯＩが処理された画像の連続の全部またはほとんど全部に予想通りに存在しているか、容認可能な動きの制約の範囲に合致して動いた）ことを信頼性をもって確認するのに十分な数のＲＯＩフレームが追跡されたら、決定ステップ１１３６はＢＥサブプロセス１１２０に分岐して、予測されたＲＯＩ１１４０のパラメータをメモリ４１４から供給する。ＦＥサブプロセスに関係する他のデータは必要なくなり、メモリ４１４内で上書きされてもよい。
【００９６】
任意的なＢＥサブプロセス１１２０において、ステップ１１５０でピクセルアレイ２０８はさらに画像捕捉を実行する。例示的に、この捕捉と読出しは（予測された現在位置がアレイの全体的なピクセル領域内にあることを考慮して）予測されたＲＯＩと関連するアレイの区域でのみ起きてよい。画像捕捉（ステップ１１５０）から読み出されたピクセルデータは、さらにステップ１１５２で動的特徴抽出によってもたらされるデータ精緻化を受ける。動的特徴抽出は（予測されたＲＯＩ内での）ＩＤ特徴の互いの相対的角度および間隔をより精確に決定するために用いられ、それにより誤ったＩＤ読取りの可能性が減らされる。このプロセスはまたＬＡＰによってより効率的に達成されるＩＤ読取りの部分を実行することによって、オフチップ復号回路（ＤＳＰ９８０）における処理オーバーヘッドも減らす。一般に、ＬＡＰにとって効率的なＦＥサブプロセスで予測されたＲＯＩが生成されると、より処理集約的な特徴抽出または復号ステップで誤判定のＩＤ検出イベントが減少することを保証する。むしろ、顕著な数の（またはすべての）誤判定は、高速ＦＥサブプロセスで排除される。
【００９７】
動的特徴抽出は、予測されたＲＯＩ内におけるエッジ強度特徴の計算に基づいている。例示的な実施態様において、これはＦＥサブプロセス１１１０から供給される予測されたＲＯＩのサイズに基づいて３×３か、または５×５カーネルを用いる。より大きいカーネル（例えば５×５）は、より大きい予測されたＲＯＩに対して特徴エッジの角度／回転の良好な解像度を得るために用いることができる。動的特徴抽出は行処理動作として実行され、画像がピクセルアレイ２０８から読み出されるときに起きる。
【００９８】
より小さい３×３カーネルに対してはゾーベル・オペレータが用いられる。５×５カーネルに対しては、ガウスの導関数を近似する分離可能なフィルタ機能を用いることができる。例示的な実施態様において、このカーネルは２の冪乗計算に対して最適化されており、ｇ＝［１  ４  ８  ４  １］およびｇｐ＝［１  ２  ０  −２  −１］の要素を有する。フィルタのＸ反応を測定するために、画像はｇＴ、次いでｇｐで回旋される。フィルタのＹ反応を測定するために、画像はｇｐＴ、次いでｇで回旋される。結果として生じる符号付きＸおよびＹエッジ強度は（所望するならば）切り詰められ連結されてメモリ４１４に保存される。結果として生じるエッジ強度の最小サイズはＸに対して４ビット、およびＹに対して４ビット（３強度ビット＋１符号ビット）であり、ピクセル当り８ビット値を生み出す。しかしながら、これは所望するならば任意のビット深度に、ＸおよびＹ強度成分のそれぞれに対して最大８ビットまで増すことができ、ピクセル当り１６ビットの値を生み出す。次の表はＩＤ（ＵＰＣ−Ａバーコード）サイズ、使用するフィルタおよびメモリ要件の間の例示的な関係を示している。下の表から明白なように、動的特徴抽出の処理は高速である。図示されたメモリの記憶要件はバーコードが垂直に向けられた最悪ケースを仮定しており−一般的に特徴が大部分または完全に１列ずつ決定されることを要求する。ここに見られるように、８ビットデータを超える記憶は最小撮像距離で公称バーコードに対する例示の利用可能なメモリを超えることがある（例えば３７６×２４１ピクセル）。
【００９９】
【表１】
0005567035.tif 000002
【０１００】
動的特徴の抽出に続いて、ＢＥサブプロセスは少なくとも３つの目標を遂行するＩＤ検証ステップ１１５４を実現する。すなわち、検証はＲＯＩをチェックし、ＲＯＩ内の多数の位置でエッジ角度のヒストグラムをより精密に吟味することにゆおり、バーコードを含んでいるという確信を増す。これにより撮像されたＩＤにわたり角度の歪みとコントラストの差が  得られる。この検証ステップはＩＤ特徴（例えば平行なバー）の優勢な角度も決定し、また所定の向きのＲＯＩが得られる一組のスキャンライン終点を決定する。より一般的に、検証は向きの角度が一層制約された範囲を特徴に適用して、ＩＤ特徴（例えば平行なバー）の互いに対する精確な整列を保証する。
【０１０１】
ＩＤ検証は、画像読出しが完了した後で行われる画像処理動作である。しかしながら検証プロセスは読出しの間に、予測されたＲＯＩの等間隔の水平「ストライプ」または「スキャンライン」をメモリ４１４に記憶するので、検証処理は継続的に実行できる。例示的な実施態様ではストライプの数は現在７に設定されているが、代替的な実施態様でこれより大きいか、または小さい数を用いることができる。各ストライプの幅はＲＯＩのサイズに応じて３行または５行である。一実施態様において、より大きいサイズのＲＯＩは典型的により広いストライプを用いるので、より大きいフィルタを適用してもよい。
【０１０２】
図１４を参照すると、検証プロセス１１５４は各ストライプ（ブロック１４１０）に対して１行のエッジ強度を計算させ、ステップ１４２０で３×３ゾーベル・アルゴリズムか、または５×５の分離可能な２の冪乗のフィルタ（または他のエッジツール）を用いる。種々の実施態様において、ステップ１１５２とステップ１１５４の両方で同じツール／フィルタが使用される場合は、これらの強度は動的特徴抽出（ステップ１１５２）の間に事前に計算できる。例示的な実施態様において、各エッジ強度はＸおよびＹエッジ方向を表す２個の符号付き８ビットコンポーネントによって定義される。次に、ＬＡＰ４２５においてＣＯＲＤＩＣ（または他の適当な）アルゴリズムがで各エッジ位置で実行されて９ビット角度および９ビット強度値を生成する（ステップ１４２２）。実施態様でＣＯＲＤＩＣ機能が用いられるのは、それによってプロセッサのオーバーヘッドおよび動作速度に負担を与える恐れのある三角法の関数（例えば正接／逆正接関数）を用いることなく、角度の計算が可能になるからであることに留意されたい。
【０１０３】
次に検証プロセス１１５４は所定の強度を超える各エッジ位置について、左隣および右隣より大きい強度を有するかを判定することによって、それが局所的最大位置であるか決定する（ステップ１４２４）。次に、ＶＳｏＣプライオリティエンコーダ９５６はステップ１４２４からの局所的エッジ最大位置をロードされ、これらの位置に基づいてエッジ角度のヒストグラムを作成するためにＣＰＵ（ＲＩＳＣ）プロセッサ５０１が用いられる（ステップ１４２６）。このＣＰＵ５０１を用いて、ヒストグラムで約１８０度離れた２個の最大ピークがサーチされる（ステップ１４２８）。角度が１８０度離れた大きいピークを検出できたら、このストライプはＩＤが存在することを示し（決定ステップ１４３０）、肯定的なＩＤ結果の数が増分される（ステップ１４３２）。次のストライプ（もしあれば）が選択されて（ステップ１４３４）、プロセスは分岐して計算ステップ１４２０に戻ってこの次のストライプ上で動作する。同様に、ストライプが肯定的なＩＤではない場合は（決定ステップ１４３０）、プロセスはステップ１４３４および１４２０を介して次のストライプ（もしあれば）上で動作する。すべてのストライプが処理されたら、決定ステップ１４４０は、ＩＤの肯定的な存在を示すストライプの数が閾値を超えるか決定する。超える場合は、ＩＤは検証済みとなる（ステップ１４４２）。さもなければ決定ステップ１４４０は検証されなかった結果を返し（ステップ１４４４）、システムは新しいＲＯＩをサーチするか−または非読込み指示をユーザに返して、ユーザに対象を再スキャンすることを促す。
【０１０４】
代替的な実施態様において、各角度ヒストグラムまたは角度ヒストグラム全体で追加のチェックおよびテストを実行できることが想定されているが、それはそのような動作における処理オーバーヘッドが合理的に低いためである。検証プロセス１１５４はさらにステップ１４４６で、バーコードが存在することを示すストライプを用いて優勢なＩＤ角度を計算することを含んでいてもよい。例示的な実施態様において優勢なバーコードは、それらのストライプの平均ピーク角度（０〜１８０度）で定義される。次にバーコードＲＯＩは同じストライプを用いて精緻化される（ステップ１４４８）。優勢なＩＤ角度の設定公差内にある各ストライプの開始エッジと終了エッジが検出される。これらのサンプリングされたポイントを用いてＲＯＩの境界はより緻密に精緻化して優勢な角度に沿って向きを整えることができる。ＶＳｏＣ  ＣＰＵ５０１に代替的なアルゴリズム／プロセスを使用し、この豊富なエッジデータを用いて各ストライプに対するＩＤの開始と終了を決定できるが、このようなプロセスの大部分が全体的な処理時間に与える影響は最小限でなければならないことに留意されたい。
【０１０５】
次に、例示的な実施態様において抽出および検証に成功した特徴、ならびにＲＯＩ情報および優勢な角度（１１５８）はホストポート９６２または他の通信リンク（例えばＬＶＤＳ９７４）を介してオフチップＤＳＰ９８０に送られ、ＩＤに含まれた情報がステップ１１５６に従って復号される。伝送された特徴は典型的にＩＤ全体またはその顕著な部分を具体化している。この理由で大きい特徴セットはタイムリーにＤＳＰに伝送することが困難なことがある。一実施態様において、ＣＰＵはホストポートへの伝送を１６ビット単位で送る。例示的な実施態様において、図９を参照すると、ＶＳｏＣはデータをより効率的にＤＳＰに伝送するために、１０２４幅の記憶アレイを有するシフトレジスタ９９６と、１０２４幅のバスとの相互接続を含んでいてもよい。そのようなものとしてＬＡＰ４２５はＣＰＵ５０１よりも直接に、１０２４幅の行をメモリ４１４からシフトレジスタ９９６に送り、それから（例えば）バス９６６を介して選択されたポートに送ることができる。これによりＣＰＵおよび他のコンポーネントは本質的に、普通なら時間がかかるポートを通したデータの伝送を実行することから解放するものであり、このデータの伝送はプロセッサ４２５、５０１が他のタスクで動作している間にシフトレジスタ９９６によって高いクロック速度で処理される。
【０１０６】
さらなる例示的な実施態様では、データストリームを圧縮してＤＳＰに伝送するために、伝送ステップは符号化を含んでいてもよいことが想定されている。例示的な実施態様において、図１５に示されているように、ランレングス符号化プロセス１５００を実装できる。ステップ１５１０で、プロセス１５００は最初に（例えば上記の特徴抽出１１５２および／または検証ステップ１１５４から導出された）局所的最大エッジ位置をプライオリティエンコーダ９５６にロードすることによって各行で作用する。ＲＯＩに先立って検出されたエッジは、ステップ１５２０で伝搬／生成ユニット９５８を用いて除去される。次にステップ１５４０でＣＰＵ５０１はプライオリティエンコーダ９５６を読み込んで画像からエッジ値を得る。プロセスは行が存在している間（決定ステップ１５５０）は次の行で動作し（ステップ１５６０）。分岐１５６２からステップ１５１０へと継続する。すべての行が処理されたら（決定ステップ１５５０）、圧縮された伝送は完了し（ステップ１５７０）、ＲＯＩの前に現れる画像中の不必要な情報を取り除く。代替的な実施態様において、より複雑なおよび／または代替的な圧縮技術または符号化技術を採用できることは明確にすべきである。
【０１０７】
種々の実施態様においてメモリ制限は特徴の適切な記憶に負担となることがある。したがって図１６に、メモリの負担を低減する結果、平均フレームレートが低下してデータ伝送が増すＶＳｏＣプロセスの代替的な実施態様を示す。一般に、図１６のＦＥプロセス１１１０は図１１を参照して説明したものと実質的に同じであり、したがって同じ参照符号が用いられている。予測されたＲＯＩの供給１１４０に続いて、図１６のＢＥプロセス１６２０に進む。図示されていように、捕捉および読出しはＢＥプロセス１６２０のステップ１６５０で行われる。動的特徴抽出（ステップ１６５２）と伝送（ステップ１６６０）は、すべての予測されたＲＯＩに対して画像を読み出している間に行われる（１１４０）。したがって復号ＤＳＰは、検証が行われる前の読出しの間に特徴データ１６６２を受け取る。この実施態様では、ＩＤ検証（ステップ１６７０）は読出しと伝送が完了した後に起こる。検証信号は、優勢な角度と精緻化されたＲＯＩ位置の情報１６７２（ＩＤは検証済みであると仮定）はサイクルの終点で送られ、ここからＤＳＰは復号プロセスを完了できる。代替として、ＩＤが検証できない場合は、ＤＳＰは非検証信号を受け取るか、または信号を受け取らず（したがってタイムアウトして）ＩＤを復号しない。ＢＥプロセス１６２０に従ってより低い平均フレームレートが生じるのは、精緻化されたＲＯＩ（すなわちＩＤの優勢な角度で整列された境界ボックス）が、特徴伝送の前に計算されないからであることに留意されたい。それゆえ精緻化されたＲＯＩより平均して大きい予測されたグリッド整列ＲＯＩのすべての特徴がＤＳＰに伝送される。データ伝送が増すのはこのＲＯＩがより大きいためであり、検証が伝送後に行われるのですべての候補ＲＯＩについて特徴が伝送されるからである。検証は行読出し時間に顕著に影響するため、典型的に読出しの間は行われない。
【０１０８】
上述したように、完全なＦＥ／ＢＥプロセス１１００および１６００（図１１および図１６）は、例示的な実施態様によりＩＤを検出および決定するシステムおよび方法に従って実装できる種々の可能なデータ収束プロセスの一つである。図１７に示すように、等価ＦＥプロセス１１１０を採用するＶＳｏＣプロセス１７００は、ＲＯＩの位置、サイズおよび向きのデータ１７１０を生成する。ＢＥプロセスにおいて特徴抽出と検証によりこのデータをさらに精緻化する代わりに、情報は直接オフチップ・バックエンド復号装置（プロセス１７５０の一部）、例えば復号ＤＳＰ１７２０に、伝送されたＲＯＩ情報を使用するために適合された適当な慣用または特製の復号アプリケーションと一緒に伝送される。システムはまた未加工の、縮小または圧縮された画像データストリーム１７３０を復号装置１７２０に伝送する。このストリームは、基底にある１Ｄコード（もしあれば）を発見する試みにおいて、ＲＯＩパラメータの一般的な制御下で復号装置によって作用される。すなわちデコーダ１７２０はＲＯＩ情報を用いて入ってくる画像データのスキャンをトリガし、（慣用的な技術を用いて）復号可能なＩＤ特徴の位置を特定して画像内のＲＯＩの位置および向きに対して整列させようとする。これに基づいて、復号装置は復号されたＩＤ（または複数のＩＤ）を返すか、成功しなかった場合は読取り失敗を示す（ブロック１７４０）。
【０１０９】
ＶＳｏＣプロセスのデータ収束特性の効率は、大部分のＩＤ検出および復号がバックエンド、潜在的にオフチップの（ＤＳＰ）プロセッサによって行われる実装においても適用される。図１８に示すように、プロセス全体１８００は画像捕捉プロセス１１３０を、上により切り詰めたＶＳｏＣプロセス１８１０の一部として説明した要領で企図する。ステップ１８２０でＬＡＰまたは他のＶＳｏＣ処理要素は、上記と同様の高速ＲＯＩ検出動作、または他の高速のＩＤ検出アルゴリズム例えば近隣操作を用いて実行する。ＲＯＩまたは他のＩＤ指標を検出（決定ステップ１８３０）した後、ＶＳｏＣプロセス１８１０は通知１８４０を（典型的に）オフチップ・バックエンドＩＤ処理プロセス１８５０に、関連する画像データ１８６０の同時ストリームと一緒に、未加工の形式か適当に圧縮して伝送する。通知はＩＤ復号プロセッサ（慣用または特製の復号アプリケーションを有するＤＳＰ）に対するＩＤ復号トリガ１８７０として働く。このトリガはＤＳＰにＩＤ状の画像データのストリーム１８６０をサーチさせ、特定された情報があれば復号させるする（ステップ１８８０）。復号が成功したら、ステップ１８９０で復号された情報が供給される。さもなければ、復号に失敗した通知が提供される。一実施態様において、この通知は画像のどこでトリガが生成されたかに関する情報を含んでいてもよいので、ＤＳＰ内のすべての情報はそれぞれ精確に時間が計られて、ストリーム化された画像データでトリガを誘発したと見られる位置のサーチを開始できる。
【０１１０】
上述した種々のＶＳｏＣプロセスは多様な画像情報を提供でき、最初は（画像捕捉から導出された）大縮尺の画像情報であり、次に効率的な大縮尺の（典型的に並行な）プロセスおよび関連するアルゴリズムによって縮小されて、より小さい有用なデータセットを提供し、これが他のプロセス、プロセッサおよび／またはアルゴリズムおよびプロセスによって効率的に処理でき、その間大縮尺プロセスが続いているることは明確にすべきである。
【０１１１】
より一般的に、例示的なシステムおよび方法は例示のＶＳｏＣの特徴を効率的に使用して、大量のフロントエンド高速画像データを望ましく処理し、この情報を有用なデータのより小さいストリームに効果的に収束して、これが同時にバックエンドプロセッサおよび／またはプロセスに供給されることを明確にすべきである。ＬＡＰとＣＰＵを組み合わせて読み出す間に、処理後のコンパクトなデータセットでより精緻な画像処理を実行する、大まかな画像処理に対するＬＡＰの並行的特質の利点を最大限活用することにより、種々の実装においてフレームレートを慣用的なＩＤ復号配置構成に対して効果的に３倍以上高めることができる。さらに、ＬＡＰアーキテクチャを用いて計算上のオーバーヘッドを低減し、画像処理アーキテクチャを単純化することにより、全体的な電力消費を減らすことができ、無線スキャナにとっては再充電またはバッテリ交換の間の稼働サイクル時間が増すことになる。
【０１１２】
以上、本発明の例示的な実施態様を詳述した。本発明の精神と範囲から逸脱することなく種々の変容および追加を行うことができる。上述した種々の実施態様の各々は、多様な特徴を提供するために記載された他の実施態様と組み合わせることができる。さらに、上に本発明の装置と方法の幾つかの別個の実施態様を記述したが、これは単に本発明の原理の応用を例示したものに過ぎない。例えば代替的な実施態様において、復号機能および回路をオンチップで設けて、適当なオンチップ通信リンクおよび／またはバスを介してＶＳｏＣの他の機能的コンポーネントと相互に接続することができる。同様に、ピクセルアレイに設けられ、プロセッサ、メモリおよび通信バス相互接続において実装されたデータ行および列の幅は極めて可変である。より一般的に、本明細書で説明されたシステムおよび方法はハードウェア、コンピュータ可読プログラム命令からなるソフトウェア、またはハードウェアとソフトウェアの組合せによって実現できる。したがって、この記述は単に例示として意図されたものであり、本発明の範囲を制限するものなどとして解されてはならない。
【図１】
0005567035.tif 000003
【図２】
0005567035.tif 000004
【図３】
0005567035.tif 000005
【図４】
0005567035.tif 000006
【図５】
0005567035.tif 000007
【図６】
0005567035.tif 000008
【図７】
0005567035.tif 000009
【図８】
0005567035.tif 000010
【図９】
0005567035.tif 000011
【図１０】
0005567035.tif 000012
【図１１】
0005567035.tif 000013
【図１２】
0005567035.tif 000014
【図１３】
0005567035.tif 000015
【図１４】
0005567035.tif 000016
【図１５】
0005567035.tif 000017
【図１６】
0005567035.tif 000018
【図１７】
0005567035.tif 000019
【図１８】
0005567035.tif 000020