(57)【要約】  画像ベースのシンボルリーダーのマルチスレッドオペレーションのための方法と装置を提供する。本発明の方法においては、マルチスレッドプロセス環境下で、コード化されたシンボルの取得した画像に対し、複数のデコーディングエンジンを用いて非同期的に、また実質的に同時にデコードが試みられる。各デコーディングエンジンは、特定のシンボルタイプに対応して、多重シンボルを読み取る際に、高速応答を達成する。
2009544105.tif 000002
【特許請求の範囲】
【請求項１】
イメージセンサと、協働して視野に画像を提供するレンズと、を有する撮像モジュールと、
前記撮像モジュールと接続されたデータバスと、
前記データバスと接続されたメモリモジュールと、
前記データバスと接続されたプロセッサと、
を備えているシンボルリーダーであって、
前記プロセッサが、
前記撮像モジュールに画像を撮像させ、撮像させた画像を前記データバスを通して前記撮像モジュールへ転送させる収集プロセスと、
前記画像に印された第一シンボルタイプがデコードされる第一デコーディングスレッドプロセスと、
前記画像に印された第二シンボルタイプがデコードされる第二デコーディングスレッドプロセスと、を有し、そして、
前記第一デコーディングスレッドプロセスと前記第二デコーディングスレッドプロセスとが、実質的に同時に実行されることを特徴とするシンボルリーダー。
【請求項２】
前記撮像モジュールと前記データバスと前記メモリモジュールと前記プロセッサとが、ハンドヘルド型リーダーとして用いられるのに適したハウジング内に収容されていることを特徴とする請求項１に記載のシンボルリーダー。
【請求項３】
前記プロセッサと協働して、前記収集プロセスと前記第一デコーディングスレッドプロセスと前記第二デコーディングスレッドプロセスとを開始させるトリガーが更に備えられていることを特徴とする請求項２に記載のシンボルリーダー。
【請求項４】
前記撮像モジュールと前記データバスと前記メモリモジュールと前記プロセッサとが、固定型リーダーとして用いられるのに適したハウジング内に収容されていることを特徴とする請求項１に記載のシンボルリーダー。
【請求項５】
前記プロセッサが少なくとも１つの前記画像に印された追加的シンボルタイプがデコードされる少なくとも１つの追加的デコーディングスレッドプロセスが更に備えられ、そして、
前記第一デコーディングプロセスと前記第二デコーディングプロセスと前記少なくとも１つの追加的デコーディングスレッドプロセスとが、実質的に同時に実行される
ことを特徴とする請求項１に記載のシンボルリーダー。
【請求項６】
前記第一デコーディングスレッドプロセスと前記第二デコーディングスレッドプロセスのいずれかの結果をホストコンピュータに転送するための通信モジュールが更に備えられることを特徴とする請求項１に記載のシンボルリーダー。
【請求項７】
前記通信モジュールには、ＵＳＢかＲＳ−２３２かブルートゥースか８０２．１１ワイヤレスの中から選択されたプロトコルが用いられることを特徴とする請求項６に記載のシンボルリーダー。
【請求項８】
エンコードされたシンボルの画像を収集するステップと、
画像に印されたエンコードされたシンボルを第一デコーディングスレッドを用いてデコードする一方で、非同期かつ実質的に同時に、同じエンコードされたシンボルを第二デコーディングスレッドを用いてデコードするステップと、
前記第一デコーディングスレッドと前記第二デコーディングスレッドのいずれかがデコードに成功した場合に、結果を報告するステップと、
を有していることを特徴とするエンコードされたシンボルを読み取るための方法。
【請求項９】
前記第一デコーディングスレッドと前記第二レコーディングスレッドのそれぞれにプロセッサ資源を分配するステップが更に備えられたことを特徴とする請求項８に記載の方法。
【請求項１０】
前記エンコードされたシンボルの画像を収集するステップが、複数の画像を連続的に収集するステップであり、そして、
エンコードされたシンボルの印された画像が、前記複数の画像の中の一枚であることを特徴とする請求項８に記載の方法。
【請求項１１】
前記第一デコーディングスレッドと前記第二デコーディングスレッドのそれぞれが、デコーディング経過時間がタイムアウト時間を超えた場合に、各デコーディングスレッドのデコードが不成功であったとするタイムアウト変数を有していることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記第一デコーディングスレッドと前記第二デコーディングスレッドのいずれかがタイムアウト時間を超えて不成功となった場合に、他方のデコーディングスレッドと非同期で実質的に同時に、前記画像収集ステップと前記デコードするステップとを繰り返すことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記第一デコーディングスレッドが一次元バーコードシンボルを対象とし、そして、前記第二デコーディングスレッドが二次元シンボルを対象としていることを特徴とする請求項８に記載の方法。
【請求項１４】
前記第一デコーディングスレッドが第一のタイプの二次元コードを対象とし、そして、前記第二デコーディングスレッドが第二のタイプの二次元コードを対象としていることを特徴とする請求項８に記載の方法。
【請求項１５】
前記第一デコーディングスレッドと前記第二デコーディングスレッドが、類似のシンボルタイプを対象としていることを特徴とする請求項８に記載の方法。
【請求項１６】
エンコードされたシンボルの複数の画像を収集するステップと、
複数の画像の中の１枚に印されたエンコードされたシンボルを、複数のデコーディングスレッドを用いて非同期かつ同時にデコードするステップと、
前記複数のデコーディングスレッドの１つがデコードに成功した場合に、結果を報告するステップと、を有するエンコードされたシンボルを読み取るための方法であって、
前記複数のデコーディングスレッドのそれぞれが、プロセス資源の割り当てと、デコーディング経過時間がタイムアウト時間を超えた場合にデコードが不成功であったとするタイムアウト変数とを有していることを特徴とするエンコードされたシンボルを読み取るための方法。
【請求項１７】
前記エンコードされたシンボルをデコードするステップが、前記複数のデコーディングスレッドのいずれか１つによって、複数の画像のうち他の画像を用いた他の複数のデコーディングスレッドのうちの１つと非同期かつ同時に繰り返されることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記複数のデコーディングスレッドのうちの１つが一次元バーコードシンボルを対象とし、そして、前記複数のデコーディングスレッドのうちの別の１つが二次元シンボルを対象としていることを特徴とする請求項１７に記載の方法。
【請求項１９】
前記複数のデコーディングスレッドのうちの１つが第一のタイプの二次元コードを対象とし、そして、前記複数のデコーディングスレッドのうちの別の１つが第二のタイプの二次元コードを対象としていることを特徴とする請求項１７に記載の方法。
【請求項２０】
前記複数のデコーディングスレッドのうちの二つが類似のシンボルタイプを対象としていることを特徴とする請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハンドヘルド型シンボルリーダーを用いたバーコードやシンボルの多重デコーディングのための方法と装置に関する。
【背景技術】
【０００２】
バーコードは文字列やデータをコード化した一次元のシンボルであって、部品等の識別のために工業的用途で用いられる。バーコードシンボルを用いた実施例において、装置がバーコードを読んで、コード化されたデータを解読するために用いられる。倉庫業務等において、バーコードを読み取る行動は、高速で一貫して確実にデータを入力する手段である。
【０００３】
二次元シンボルは、一次元バーコードを拡張するものとして開発され、より多くの情報をコード化できるだけの容量を有する高密度シンボルである。例えば、データマトリックスシンボルは、一般に知られた二次元シンボルであるが、二次元グリッドを占有するマトリックスセル内にデータをコード化する。二次元コードは、積層コード又はマトリックスコードとも称される。
【０００４】
読み取り装置は、極めて高速の応答時間に最適化された一次元バーコードを読み取るように開発されてきた。これらの読み取り装置は、一般的にレーザー走査システムであって、レーザー光を目標とするバーコードに照射して、その反射波形を読み取り装置が検出して迅速に分析するものであった。しかし、これらのシステムは、一次元より大きな次元でコード化されたデータを有するシンボルを読み取ることには容易に適用できなかった。
【０００５】
画像ベースの読み取り装置が二次元シンボルに対して開発されている。これらの画像ベースのシステムにおいて、読み取られた画像は機械視覚アルゴリズムを用いて処理され分析されて、画像内でシンボルを検出し、シンボルデコーディングアルゴリズムを実行してシンボルがデコードされる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
レーザー走査型一次元バーコードリーダーが二次元コードの読み取りに適していないのに対して、画像ベースの二次元リーダーは一次元バーコードと二次元シンボルの両方をデコードするのに完全に適合している。一次元バーコードを読み取るように作られた画像ベースのリーダーは、実質的にレーザー走査型リーダーと同程度の応答時間でバーコードを見つけてデコードする。しかし、画像ベースリーダーが全種読み取り（自動的に一次元シンボルか二次元シンボルであるかを決定する）を実行するように作られている場合、実効的な応答時間は大幅にかつ受け入れ難いほど増加する。
【課題を解決するための手段】
【０００７】
本発明は、多重処理環境において複数のデコーディングプロセスを用いてエンコードされたシンボルをデコードすることを試みる、即ち、非同期かつ実質的に同時に実行される複数のデコーディングプロセスを用いてデコードを試みる多重シンボルデコーディングのための方法と装置に関する。この方法において、一次元シンボルと二次元シンボルの両方に対するデコードが、それぞれのデコーディングエンジンを用いてシーケンシャルに処理するものより平均して高速な十分なデコーディング結果を得られる。
【０００８】
１つの実施例において、本発明の方法は第一デコーディングスレッドを用いてエンコードされたシンボルのデコードを試みる一方で、第二デコーディングスレッドを用いてエンコードされたシンボルのデコードを非同期にかつ実質的に同時に試みる。デコーディングスレッドのいずれかによってデコードされると、本方法は結果即ちデコードされた文字列をレポートする。
【０００９】
別の実施例において、本発明の方法は連続的にエンコードされたシンボルの画像を得る一方で、複数のデコーディングスレッドを用いて非同期的にかつ同時にデコーディングを試みる。複数のデコーディングスレッドのどれか１つが所定の時間制限を超えた場合、連続的に獲得した画像の最新画像を用いてデコーディング処理を繰り返す。
【００１０】
本発明に係る装置は、視野に画像を提供するためのイメージセンサとレンズとを備えた画像モジュールを有する。この装置は、画像モジュールと結合したデータバスと、データバスと結合したメモリモジュールとプロセッサとを有する。このプロセッサは、画像モジュールとメモリモジュールとを制御してデータバスを通してメモリモジュールから画像を転送する収集プロセスと、画像からシンボルをデコードする複数のデコーディングスレッドプロセスとを有する。複数のデコーディングプロセスは、実質的に同時にまた非同期的に動作して、本発明の方法を実行する。
【００１１】
上記内容に加えて本発明の別のアスペクトは、以下の発明の説明から、当業者には明らかであろう。本明細書においては、発明を例示した図面が参照される。
【図面の簡単な説明】
【００１２】
【図１】本発明に係るハンドヘルド型画像ベースリーダーである。
【図２】本発明に係る固定型画像ベースリーダーである。
【図３】本発明の実施例に係る機能部品の概略図である。
【図４Ａ】本発明の方法のフローチャートである。
【図４Ｂ】本発明の方法のフローチャートである。
【発明を実施するための形態】
【００１３】
本発明に係るハンドヘルド型画像ベースリーダーの実施例を図１に示す。このハンドヘルド型リーダー１００は、グリップ部１０２とユーザーの指で動作して画像収集とデコーディングを開始するトリガー１０４とを備えたハウジング１２２を有する。係留コード１１０が電力をリーダー１００に供給すると共に、エンコードされた情報のデコードされた文字列のための情報伝達パスを提供する。ポータブル性を向上させるために、リーダー１００はバッテリー電力とワイヤレス通信手段を備えることもできる。リーダー１００によって制御されたＬＥＤによって照明がライトパイプ１０６を通して提供される。
【００１４】
本発明に係る固定型画像ベースリーダーの実施例を図２に示す。固定型リーダー１２０は、電力を供給する電力コード１２４と、エンコードされた情報のデコードされた文字列のための情報伝達パスや、信号をホストコントローラや付属機器に供給する通信コード１２６とを備えたハウジング１２２を有する。リーダーによって制御されたＬＥＤ照明１２８が照明源を供給する。
【００１５】
図３にハンドヘルド型リーダー１００と固定型リーダー１２０の両方で共通な本発明に係る機能部品の概略図を示す。照明モジュール２０２は、バーコード又はシンボルが印された対象物を照明する。照明モジュール２０２内の複数の照明部材の１つを選択的に作動させることで、種々のモードの照明が提供できるようになっている。オプションで、周囲照明を用いてリーダーの外部から照明を提供することもできる。
【００１６】
撮像モジュール２０８は、例えばＣＭＯＳ又はＣＣＤ  センサといったイメージセンサと、例えばレンズセットのような撮像装置の視野に焦点の合った画像を投射する光学部材とを備える。撮像モジュール２０８は、バーコード又はシンボルが印されたコンポーネント又はラベルを含んだ視野のデジタル表現である画像を提供する。ハンドヘルド型リーダー１００又は固定型リーダー１２０の実施例において、イメージセンサとして画素アレイ７５２×４８０を有するワイドＶＧＡのグローバルシャッターＣＭＯＳが採用されている。
【００１７】
プロセッサモジュール２０６は、マイクロプロセッサと関連するコンポーネントと種々のアスペクトのリーダーを制御するための電気回路を備える。プロセッサモジュール２０６は、例えばテキサスインスツルメンツ社のＤＭ６４２といったデジタルシグナルプロセッサを備えることができる。プロセッサモジュール２０６は、マルチコアプロセッサ又は協働する複数のプロセッサを備えることができる。
【００１８】
メモリモジュール２０４は、画像データを保存するためのＲＡＭ（ランダムアクセスメモリ）と、アップデート可能な制御プログラムを保存するためのフラッシュメモリとを備える。ハンドヘルド型リーダー１００又は固定型リーダー１２０の実施例において、３２ＭＢのダイナミックＲＡＭが用いられ、４ＭＢのフラッシュメモリが用いられている。メモリモジュール２０４は、プロセッサモジュール２０６と協働して、プロセッサが保存された制御プログラムを実行してここに記載された動作が実施できるようにしている。
【００１９】
通信モジュール２１０は、リーダーにアクセスして情報を交換するために必要なインターフェース機能を提供する。１つの実施例において、通信モジュール２１０はＵＳＢインターフェースを備え、ハンドヘルド型リーダー１００又は固定型リーダー１２０は、プロセッサモジュール２０６の上で走っている実行プログラムと協働するアプリケーションが走っているホストコンピュータと直接インターフェースを取ることができる。他の実施例としては、イーサネット（登録商標）インターフェースやＲＳ２３２Ｃインターフェース、又はブルートゥースやＩＥＥＥ８０２．１１を用いた無線インターフェースを採用することができる。加えて、デコーディングの試みが成功（又は失敗）した際に、ビープ音を鳴らしたり、ＬＥＤインジケータを点灯させる等の視覚的及び／又は聴覚的フィードバックを通信モジュール２１０からリーダーのユーザーに提供することができる。また、通信モジュール２１０はデコーディングを開始させるためのリーダーに対して内部的又は外部的なトリガーを備えたＩ／Ｏを有することができる。
【００２０】
読み取りプロセスを実行するために、プロセッサモジュール２０６とメモリモジュール２０４と撮像モジュール２０８と通信モジュール２１０とオプションで照明モジュール２０２とを相互に連結するインターフェースバス２００が設けられている。バス２００を通して、撮像モジュール２０８で取得した視野の画像が、メモリモジュール２０４に転送される。プロセッサモジュール２０６は、画像内のバーコード又はシンボルを特定するために種々の分析を実行し、特定されたバーコード又はシンボルをデコードするためにデコーディングアルゴリズムを実行する。デコードが成功した際に、通信モジュール２１０がバス２００を通してプロセッサモジュール２０６によって制御されて、デコード結果が報告され送信される。オプションで、照明モジュール２０２はバス２００を通してプロセッサモジュール２０６で制御可能であり、読み取りプロセスの開始時に照明モジュール２０２を点灯し、読み取りプロセスの完了又は終了時に照明モジュール２０２を消灯することができる。
【００２１】
従来技術によれば、リーダーは１つ又は複数のバーコード又はシンボルを読み取りデコードするように構成されている。ハンドヘルド型リーダーは、バーコード又はシンボルを対象にしており、トリガーが押されると、読み取りプロセスが開始される。固定型リーダーも同様に、例えばコンベア上の、又はユーザーが取り付けたバーコード又はシンボルを貼り付けた対象物の全体的方向に対して設けられている。固定型リーダーの読み取りプロセスは、外部トリガーによって開始されるか、又は読み取りプロセスが連続的に実行される。携帯型リーダーと固定型リーダーのどちらにおいても、バーコード又はシンボルのデコードが成功した場合、バーコード又はシンボルにエンコードされていた文字がデコードされて転送される。
【００２２】
本発明の方法と装置は、種々のタイプのバーコード又はシンボルを読み取る際に、より高速の読み取り応答時間を可能にする。二つ以上のバーコード又はシンボルを同時にデコードする際に、平均読み取り率は、幾つかのデコーディング法のシーケンシャルなアプリケーションによって向上できる。本発明の長所は、特に直接対象物の表面に例えばダイレクトパートマーキング（ＤＰＭ）法によってマークされたバーコード又はシンボルに適用する際に、当業者によって正しく評価される。ＤＰＭシンボルは、一般的にラベルやパッケージングに印刷されたシンボルと比較して、読み取ることが困難である。ＤＰＭ法は、強固なデコーディングアルゴリズムを要求し、これらのマークをデコードするための経過時間は、一般的にラベルに印刷されたバーコードより長い時間を要する。これらがミックスされて用いられる環境下において、本発明のリーダーはＤＰＭシンボルに対して実質的に同じ応答時間を提供し、容易にデコードできるバーコードやシンボルに対して、迅速な応答時間を提供できる。
【００２３】
以下で述べるものは、意図した動作を実行するための１つの位置又は種々の位置において協働するメカニズム、装置、コンポーネント、ソフトウエア、又はファームウエア又はこれらの組み合わせを備えるが、これらに限定されるものではない適切な装置によって実行される、幾つかの目的を対象とする動作の組織的なセットを参照するプロセスである。
【００２４】
実施例において、コンピュータソフトウエア命令はここに述べる動作、例えばシンボルを読み取る、画像をキャプチャする、画像を分析する、マルチスレッドオペレーション、メモリバッファ管理、シンボルデコーディング、信号出力といった動作を実行するためのものを含む。
【００２５】
さらに、上述の内容は例示したもののリストに過ぎないことが当業者には理解されるであろう。それは完全なものではなく、適切なコンピュータソフトウエア命令が実施例において適切なプロセスを実行するために用いられる。
【００２６】
図４を参照して、本発明に係る方法のフローチャートを示す。ステップ３００において、読み取りプロセスが開始される。ハンドヘルド型リーダー１００の実施例では、ユーザーによってトリガー１０４を作動することに応じて、このステップ３００を実行できる。この実施例において、照明モジュール２０２が点灯してユーザーがリーダーで読み取ろうとする対象物を照明する。固定型リーダー１２０の実施例では、ホストコンピュータからの命令又は外部トリガーによって、通信コード１２６を通してリーダー１２０に適切な信号が転送されることで、このステップ３００が実行される。
【００２７】
ステップ３１０は画像収集プロセスを実行する。ここで、撮像モジュール２０８はプロセッサモジュール２０６の適切な制御の下で、視野からの反射照明にセンサを露出する。ステップ３２０で、撮像モジュール２０８のイメージセンサは、画像バッファとしてのメモリモジュール２０４に画像データを転送する。ステップ３２０の画像バッファは、ｎ＋２の画像フレーム又はスロットを保持するように構成されており、ここでｎはマルチスレッド処理環境において実行されるデコーディングスレッドの数である。１つの画像スロットが次の画像収集のために用意され、もう１つのスロットが最近に取得した画像（最新画像）のために用意され、残りのｎ個のスロットが、もし必要であれば、ｎ個のデコーディングスレッドがｎ個の画像に対して独立に動作できるように用いられる。実施例において、収集のフレームレートは１秒当たり約３０フレームである。
【００２８】
ステップ３３０において、ステップ３１０で収集プロセスを制御したプロセッサモジュール２０６は、収集を続けるかどうかのテストをする。ハンドヘルド型リーダー１００の実施例において、もし以下に述べるようにデコードに成功した場合、又はトリガー１０４が解放された場合、ステップ３３０でのテストはステップ３４０でプロセスを終了させる。固定型リーダー１２０の実施例の場合、もしホストコンピュータ又は付属機器からの適切な信号を受信した場合に、ステップ３３０でのテストはステップ３４０でプロセスを終了させる。どちらの実施例においても、上記条件以外の場合は、ステップ３３０でのテストはステップ３１０に処理を戻して別な画像を収集させ、ステップ３２０で画像を画像バッファに転送させる。
【００２９】
ステップ３５０で、プロセッサモジュール２０６によって実行される第一デコーディングスレッドが開始される。ステップ３６０で、最新画像がステップ３２０の画像バッファから得られる。ステップ３７０で、ステップ３６０で得られた画像に対してリーダーの構成セッションで特定されたパラメータ３８０を用いて第一デコーディングエンジンが動作する。パラメータ３８０の値には、第一デコーディングエンジン３７０の元であるプロセッサモジュール２０６のマイクロプロセッサの処理資源の一部と、デコーディングエンジンを終了させるタイムアウト時間とが含まれる。従って、ステップ３７０で動作する第一デコーディングエンジンは、他のアクティブなスレッドとプロセッサモジュールのプロセッサ資源をシェアしている。このシェアリングは、例えば実施例としてテキサスインスツルメント社のＤＭ６４２デジタルシグナルプロセッサを用いた場合などの、そのプロッセサ上で走るオペレーティングシステムのマルチスレッディング能力を用いることによって達成される。
【００３０】
マルチスレッディングは、以下のように動作する。プロセッサ資源は、プロセッサ時間を小さな時間ユニットに分割することによって、資源を奪い合う種々のスレッド間でシェアされる。実施例においては、５ミリ秒の時間スライスが用いられている。毎５ミリ秒後に、最新スレッドが一時的に停止して、制御がタスクスケジューラ機能に移る。タスクスケジューラ機能は、各アクティブなスレッドが実行するタイムスライスの数の経過を追い、各スレッドに割り当てられたＣＰＵ時間のパーセンテージに基づいて、ユーザーの要求するＣＰＵ時間の比率を維持するために、どのスレッドを次に実行するようにスケジュールするかを決定する。
【００３１】
ステップ３７０での第一デコーディングエンジンが終了すると、処理はステップ３９０へ続く。もしデコーディングが成功せず第一デコーディングエンジンが終了した場合は、処理はステップ３６０に戻り、そこで最新画像が画像バッファから取り出される。もし収集期間がタイムアウトパラメータより大きい場合、この画像は前回解析した画像とは異なる。もしデコーディングを成功させて第一デコーディングエンジンが終了した場合は、処理はステップ４００に進み、そこで第一デコーディングエンジンの動作結果が報告される。
【００３２】
ステップ４５０で、プロセッサモジュール２０６によって実行される第二デコーディングスレッドを開始する。ステップ４６０で、ステップ３２０の画像バッファから最新画像が取り出される。ステップ４７０で、第二デコーディングエンジンがリーダーの構成セッションで特定されたパラメータ４８０を用いてステップ４６０で得られた画像に対して動作する。パラメータ４８０の値には、第ニデコーディングエンジン４７０の元であるプロセッサモジュール２０６のマイクロプロセッサの処理資源の一部と、デコーディングエンジンを終了させるタイムアウト時間とが含まれる。従って、ステップ４７０で動作する第二デコーディングエンジンは、ステップ３７０の第一デコーディングエンジンとプロセッサモジュールのプロセッサ資源をシェアしている。
【００３３】
引き続き図４を参照して、ｎ番目のデコーディングスレッドがステップ５５０で開始され、これは実行可能な同時に追加されるデコーディングスレッドの数を表わしている。ステップ５６０で、ステップ３２０の画像バッファから最新画像が取り出される。ステップ５７０で、ｎ番目のデコーディングエンジンがリーダーの構成セッションで特定されたパラメータ５８０を用いてステップ５６０で得られた画像に対して動作する。パラメータ５８０の値には、ｎ番目のデコーディングエンジン５７０の元であるプロセッサモジュール２０６のマイクロプロセッサの処理資源の一部と、デコーディングエンジンを終了させるタイムアウト時間とが含まれる。
【００３４】
本発明に係る実施例において、リーダーは２種類のエンコードされたシンボルをデコーディングするように構成されている。第一デコーディングエンジンは一次元バーコード、例えば「Ｃｏｄｅ１２８」シンボルをデコードするように構成されている。このバーコードシンボルはＡＳＣＩＩキャラクタをエンコードしたアルファベチックバーコードであり、画像ベースリーダーによって相対的に容易に位置が特定され、デコードされる。第二デコーディングエンジンは、二次元データマトリックスシンボルをデコードするように構成されている。この二次元シンボルは、画像ベースリーダーを必要とする高密度データエンコーディング法が用いられており、相対的に位置特定とデコードをすることが困難である。
【００３５】
引き続き図４を参照して、ステップ３００で読み取りプロセスが開始されると、一次元バーコードデコーディングスレッドがステップ３５０で開始されるのと実質的に同時に二次元データマトリックスデコーディングスレッドがステップ４５０で開始される。説明を簡単にするために、本実施例においてはｎ番目のデコーディングスレッドは用いない。それぞれのスレッドは、ステップ３６０と４６０で画像バッファから最新画像を取り出すが、画像収集レートに依存するので、二つのスレッドが同じ画像を取り扱うとは限らない。
【００３６】
第一デコーディングスレッドは、一次元バーコードをデコードするという比較的容易なタスクを実行するように構成されているので、本実施例のステップ３８０でのパラメータは、プロセッサ資源の１７．６％で、タイムアウト時間が８５ミリ秒となるように設定されている。比較的複雑な二次元シンボルをデコーディングするように構成された第二デコーディングスレッドに対しては、ステップ４８０のパラメータは８２．４％のプロセッサ資源と、タイムアウト時間８５０ミリ秒に設定されている。従って、実行中、プロセッサモジュール２０６は、そのプロセッサ資源の１７．６％を第一デコーディングスレッドに割り当て、８２．５％を第二デコーディングスレッドに割り当ててマルチタスクモードで動作する。
【００３７】
実施例において、第一デコーディングエンジンは、デコードが成功するか、８５ミリ秒のタイムアウト時間が経過するまで、ステップ３６０でメモリに転送される画像バッファから最新画像を取り出してデコードすることを試みる。もしデコードが失敗だった場合、第一スレッドの処理はステップ３６０に戻って、最新画像を画像バッファから取り出して
引き続きデコードを行う。同時に、第二デコーディングスレッドの処理が実行される。第二デコーディングスレッドにおいて、第二デコーディングエンジンは、デコードが成功するか、８５０ミリ秒のタイムアウト時間が経過するまで、ステップ４６０でメモリへ転送される画像バッファから最新画像を取り出してデコードし、処理はステップ４９０に進む。もしデコードが失敗だった場合、第二スレッドはステップ４６０まで戻って、画像バッファから最新画像を取り出して引き続きデコードを行う。第一と第二デコーディングスレッドは、非同期で平行して、どちらかのスレッドが結果を報告するか、又は処理が別の理由で終了する（例えばトリガーが解放される）まで、処理を続ける。
【００３８】
最終結果は、このマルチタスクモードにおいて第一又は第二デコーディングスレッドのいずれかがデコードした総時間が、タスクに貢献したすべてのプロセッサ資源を有する同じスレッドより大きいのに対し、認識された応答時間は両方のデコーディングエンジンの順次的アプリケーションにわたって改善される。
【００３９】
代替的な実施例において、リーダーは、例えばデータマトリックスからなる二次元シンボルを第一デコーディングスレッドでデコードし、例えばＰＤＦ４１７のような二次元シンボルを第二デコーディングスレッドでデコードするように構成されている。また別の代替的な実施例においては、リーダーは、第一と第二デコーディングスレッドで同じシンボルタイプをデコードするように構成されており、ここで二つのデコーディングスレッドのうち１つは、より複雑な読み取りアプリケーション、例えばＤＰＭアプリケーションに対応している。この実施例において、ロバストなデコーディングアルゴリズムは、デコーディングの際により多くのプロセッサ資源を必要とし、よりロバストでないアルゴリズムは、もし収集した画像が十分なコントラストがあれば、迅速にデコーディングを成功に導くことについては、当業者が評価するであろう。
【００４０】
本発明の精神及び範囲から逸脱することなく、主題発明の様々な変更や修正が可能であることは当業者には明らかであろう。従って、特許請求の範囲に示された内容を除き、上記内容は発明を限定することを意図したものではない。
【図１】
2009544105.tif 000003
【図２】
2009544105.tif 000004
【図３】
2009544105.tif 000005
【図４Ａ】
2009544105.tif 000006
【図４Ｂ】
2009544105.tif 000007
【国際調査報告】
2009544105.tif 000008
2009544105.tif 000009
2009544105.tif 000010