説明

情報読取装置

【課題】 内部カメラ及び外部カメラで複数の情報コードをそれぞれ短時間で読み取り得る情報読取装置を提供する。
【解決手段】 CPU22のバッファ22b、ゲートアレー26のバッファ26bに蓄積した画像データをデジタルバス28を介して間欠的に画像用メモリ24へ送る休止時間にデコードを行うことで、内部カメラ12、外部カメラ112から送られる画像データのCPU22のバッファ22b、ゲートアレー26のバッファ26bへの蓄積と、デコードとを同時に行うことが可能となり、内部カメラ12及び外部カメラ112からの画像の取り込みとデコードとの時間を短くすることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、製造ライン上を搬送される製品等に貼り付けられているバーコード、QRコード(登録商標)等の光学情報を読み取る情報読取装置に関するものである。
【背景技術】
【0002】
バーコード等の光学情報は、POSシステムの他、製造ライン上を搬送される製品に貼り付けることで、これを光学的に読み取り、製品の識別などにも用いられている。ここで、製品にバーコードが2つ取り付けられ、同時に読み取る場合には、2台の情報読取装置を併設することで対応している。特許文献1には、2つの画像を2台のカメラで撮像し合成する合成画像生成用撮像システムが開示されている。
【特許文献1】特開2004−297283号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
2台の情報読取装置を併設する場合、導入コストが2倍になる。常時、2つのバーコードを同時に読み取る場合には、導入コストの上昇は受け入れ得る。しかし、1つのバーコードを読み取る場合と、2つのバーコードを読み取る場合とが製造ライン上で発生する際には、情報読取装置を2台併設することは望ましいことではない。一方、1台の情報読取装置に、カメラを2個取り付けることも考え得るが、読み取りに掛かる時間が倍になり、迅速な読み取りができなくなる。
【0004】
上記目的を達成するため、本発明は、内部カメラ及び外部カメラで複数の情報コードをそれぞれ短時間で読み取り得る情報読取装置を提供することにある。
【課題を解決するための手段】
【0005】
上記目的を達成するため、請求項1の発明は、内部カメラ12で撮像した画像をデコードすると共に、接続された外部カメラ112で撮像した画像をデコード可能な情報読取装置であって、
前記内部カメラ12から送られる画像データを第1バッファ22bに蓄積する第1画像データ蓄積手段22と:
前記外部カメラ112から送られる画像データを第2バッファ26bに蓄積する第2画像データ蓄積手段26と:
前記第1バッファ22b及び第2バッファ26bに蓄積した画像データをバスライン28を介して間欠的に送り、画像用メモリ24に保持させる画像データ転送手段と:
該画像用メモリ24に保持された画像データを前記バスライン28を介して取得し、デコードするデコード手段と:を備え、
前記第1バッファ22b及び第2バッファ26bの容量を、前記デコード手段によるデコード処理をブロック毎に分割し、分割されたブロックを処理する処理時間のうち最も長くなる処理時間においても、前記第1画像データ蓄積手段及び前記第2画像データ蓄積手段による前記内部カメラ12及び前記外部カメラ112からの画像データの蓄積が継続可能なように調整するバッファ容量調整手段を有し:
前記デコード手段は、分割された前記デコードの各ブロックのうち少なくとも1つのブロックの処理後にデコードを中断し;
中断中に前記第1バッファ22b及び第2バッファ26bに蓄積した画像データをバスライン28を介して画像用メモリ24へ送ることで、当該バスライン28を介して画像用メモリ24に画像データを転送する処理を最大バッファ容量となる時間内に開始し;
前記デコード手段は、転送終了後にデコードを再開することを技術的特徴とする。
【0006】
請求項2の発明は、内部カメラ12で撮像した画像をデコードすると共に、接続された外部カメラ112で撮像した画像をデコード可能な情報読取装置であって、
前記内部カメラ12から送られる画像データを第1バッファ22bに蓄積する第1画像データ蓄積手段と:
前記外部カメラ112から送られる画像データを第2バッファ26bに蓄積する第2画像データ蓄積手段と:
前記第1バッファ22b及び第2バッファ26bに蓄積した画像データをバスライン28を介して間欠的に送り、画像用メモリ24に保持させる画像データ転送手段と:
該画像用メモリ24に保持された画像データを前記バスライン28を介して取得し、デコードするデコード手段と:を備え、
前記第1バッファ22bにおける前記内部カメラ12からの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると前記デコード手段に通知する第1通知手段と:
前記第2バッファ26bにおける前記外部カメラ112からの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると前記デコード手段に通知する第2通知手段と:を有し、
前記デコード手段は、前記第1通知手段及び第2通知手段からの通知を受けた後、デコード処理を構成する分割された前記デコードの各ブロックのうち少なくとも1つのブロックの処理後にデコードを中断し;
前記第1バッファ22b及び前記第2バッファ26bに蓄積した画像データをバスライン28を介して画像用メモリ24へ送ることで、当該バスライン28を介して画像用メモリ24に画像データを転送する処理を最大バッファ容量となる時間内に開始し;
前記デコード手段は転送終了後にデコードを再開することを技術的特徴とする。
【発明の効果】
【0007】
請求項1の情報読取装置では、第1バッファ、第2バッファに蓄積した画像データをバスラインを介して間欠的に画像用メモリへ送る休止時間にデコードを行うことで、内部カメラ、外部カメラから送られる画像データの第1バッファ、第2バッファへの蓄積と、デコードとを同時に行うことが可能となり、内部カメラ及び外部カメラからの画像の取り込みとデコードとの時間を短くすることができる。ここで、第1バッファ、第2バッファの容量を、デコード処理の分割されたブロックを処理する処理時間のうち最も長くなる処理時間においても、内部カメラ、外部カメラからの画像データの蓄積が継続可能なように調整する。そして、デコード処理を構成する分割されたデコードの各ブロックのうち少なくとも1つのブロックの処理後にデコードを中断することで、第1バッファ、第2バッファに蓄積した画像データをバスラインを介して間欠的に画像用メモリへ送る休止時間にデコードを行い、当該バスラインを介して画像用メモリに画像データを保持させる間欠送りを妨げないようにでき、内部カメラ、外部カメラからの画像データが第1バッファ、第2バッファの容量を超え、該第1バッファ、第2バッファに保持されない事態を生じせしめない。
【0008】
請求項2の情報読取装置では、第1バッファ、第2バッファに蓄積した画像データをバスラインを介して間欠的に画像用メモリへ送る休止時間にデコードを行うことで、内部カメラ、外部カメラから送られる画像データの第1バッファ、第2バッファへの蓄積と、デコードとを同時に行うことが可能となり、内部カメラ及び外部カメラからの画像の取り込みとデコードとの時間を短くすることができる。ここで、第1バッファ、第2バッファにおける内部カメラ、外部カメラからの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると、蓄積完了が間近であることをデコード手段に通知し、該デコード手段は、通知を受けた後、デコード処理を構成する分割されたデコードの各ブロックのうち少なくとも1つのブロックの処理後にデコードを中断することで、第1バッファ、第2バッファに蓄積した画像データをバスラインを介して間欠的に画像用メモリへ送る休止時間にデコードを行い、当該バスラインを介して画像用メモリに画像データを保持させる間欠送りを妨げないようにできる。
【0009】
請求項3の情報読取装置では、第1バッファ、第2バッファに蓄積した画像データをバスラインを介して間欠的に画像用メモリへ送る休止時間にデコードを行うことで、内部カメラ、外部カメラから送られる画像データの第1バッファ、第2バッファへの蓄積と、デコードとを同時に行うことが可能となり、内部カメラ及び外部カメラからの画像の取り込みとデコードとの時間を短くすることができる。ここで、第1バッファ、第2バッファの容量を、デコード処理の分割されたブロックを処理する処理時間のうち最も長くなる処理時間においても、内部カメラ、外部カメラからの画像データの蓄積が継続可能なように調整する。更に、第1バッファ、第2バッファにおける内部カメラ、外部カメラからの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると、蓄積完了が間近であることをデコード手段に通知する。デコード手段は、通知を受けた後、デコード処理を構成する分割されたデコードの各ブロックのうち少なくとも1つのブロックの処理後にデコードを中断することで、第1バッファ、第2バッファに蓄積した画像データをバスラインを介して間欠的に画像用メモリへ送る休止時間にデコードを行い、当該バスラインを介して画像用メモリに画像データを保持させる間欠送りを妨げないようにできる。
【0010】
請求項4の情報読取装置では、外部カメラからの画像データを蓄積する第2バッファがゲートアレーからなるため、外部カメラからの画像データを当該ゲートアレーに一旦蓄積し、バスラインを介して間欠的に送り、画像用メモリに保持させることができる。このため、ゲートアレーに蓄積した画像データをバスラインを介して間欠的に画像用メモリへ送る休止時間にデコードを行うことで、外部カメラから送られる画像データのゲートアレーへの蓄積と、デコードとを同時に行うことが可能となり、外部カメラからの画像の取り込みとデコードとの時間を短くすることができる。
【発明を実施するための最良の形態】
【0011】
以下、本発明の情報読取装置を情報コード読取装置に適用した実施形態について図を参照して説明する。まず、第1実施形態に係る情報コード読取装置10の構成概要を図1、図2に基づいて説明する。
図1は、第1実施形態の情報コード読取装置10の説明図である。情報コード読取装置10は、内部カメラ12を備え、製品200の側面に付けられたQRコードQ1を読み取り、コンピュータ120側にデコード結果を送信する。該情報コード読取装置10は、更に、汎用の外部カメラ112が接続可能であり、外部カメラ112によって撮像された製品200上面のQRコードQ2のデコード結果をコンピュータ120に出力することができる。
【0012】
図2は情報コード読取装置10の構成を示すブロック図である。情報コード読取装置10は、主に、照明光源16、結像レンズ14、CCDから成る受光センサ12、受光センサ12からのアナログ出力をA/D変換するA/D変換器32、A/D変換された画像信号を処理するメイン回路20、コンピュータ120との間の信号を制御する信号のやりとりを制御する信号IF34、種々の制御を行う制御IF36,読み取り音を出力するブザー38、外部カメラ112を接続するためのコネクタ40等から構成されている。ケーブル18を介して接続される外部カメラ112には、専用の照明光源116が設けられている。
【0013】
図3は、CCDからなる内部カメラ12と、CMOSセンサから成る外部カメラ112との信号出力を示している。CCDからなる内部カメラ12は、アナログの画像信号を出力するため、A/D変換器32により8ビットのデジタル信号に変換し、図2中に示すメイン回路20へ出力される。CMOSセンサから成る外部カメラ112は、8ビットの画像信号を出力するため、メイン回路20へ直接出力される。ここで、内部カメラ12にCCDを用いたが、CMOSセンサを用いることも可能であり、また、外部カメラ112にCCDを用いることも可能である。
【0014】
図4は、メイン回路20の回路構成を示すブロック図である。
画像データからの情報コードのデコードを行うメイン回路20は、CPU22と、DRAMからなる画像用メモリ24と、ゲートアレー26とから成り、CPU22と画像用メモリ24とゲートアレー26とは、画像信号を転送するためのデジタルバス28で接続されている。CPU22はバッファ22bを内蔵し、ゲートアレー26もバッファ26bを内蔵している。ここで、画像用メモリ24はSDRAMで構成することもでき、ゲートアレー26はFPGA(Field Programable Gate Array)で構成することもできる。内部カメラ12からA/D変換器(図4中で図略)でデジタル信号に変換された画像信号は、カメラインタフェイスを介してCPU22へ送られ、CPU22のバッファ22bに一旦蓄積される。そして、データ量が一定にまで蓄えられると画像用メモリ24へデジタルバス28を介して転送される。一方、外部カメラ112からの信号は、外部カメラインタフェースを介して送られゲートアレー26のバッファ26bに一旦蓄積される。そして、データ量が一定にまで蓄えられると画像用メモリ24へデジタルバス28を介して転送される。CPU22は、画像用メモリ24に蓄えられた画像データをデジタルバス28を介して取り出し、情報コードのデコードを行う。
【0015】
図5は、ゲートアレー26内に設けられ、外部カメラ112の接続を検出するDフリップフロップ26fの接続を示す説明図であり、図6は該Dフリップフロップ26fの状態遷移を示す図表である。Dフリップフロップ26fのD端子は、電源電圧Vccが印加され、CE入力端子には、CPU22からのイネーブル命令が出力され、C入力端子には外部カメラ112からの制御信号が出力され、CLR端子には、CPU22からのクリア命令が出力される。Q出力端子は、CPU22側に外部カメラの検出を出力する。即ち、図6中に示すように外部カメラ112からの制御信号が印加されると、Q出力端子からCPU22側に外部カメラ検出信号(1)を出力する。Dフリップフロップ26fのクロック源としては、例えば、外部カメラからの水平同期信号、垂直同期信号、外部カメラへの入力に対する応答、外部カメラから出力される画像転送用クロック等を用いることができる。
【0016】
図7(A)は画像用メモリ24の外部カメラ接続無しの場合の画像用メモリの割り振りを、図7(B)は外部カメラ接続有りの場合の画像用メモリの割り振りを示す説明図である。外部カメラが接続されていない場合には、図7(A)に示すように、開始アドレス0XAAAAから、内部カメラで撮像した1画面目の画像データを保持し、開始アドレス0XBBBBから、内部カメラで撮像した2画面目の画像データを保持し、開始アドレス0XCCCCから、内部カメラで撮像した3画面目の画像データを保持し、開始アドレス0XDDDDから、内部カメラで撮像した4画面目の画像データを保持することで、4画面分の内部カメラの画像データを保持する。
【0017】
他方、外部カメラが接続された場合には、図7(B)に示すように、開始アドレス0XAAAAから、内部カメラで撮像した1画面目の画像データを保持し、開始アドレス0XBBBBから、外部カメラで撮像した1画面目の画像データを保持し、開始アドレス0XCCCCから、内部カメラで撮像した2画面目の画像データを保持し、開始アドレス0XDDDDから、外部カメラで撮像した2画面目の画像データを保持することで、2画面分の内部カメラの画像データと2画面分の外部カメラの画像データとを保持する。
【0018】
図8は、CPU22での画像用メモリ24の割り振り処理を示すフローチャートである。CPU22は、内部カメラから送られた画像データをバッファ22bに蓄え、蓄えた画像データをバッファ22bから画像用メモリ24へ転送した後、時間(Xms)待機し(S12)、図5を参照して上述したDフリップフロップ26fのCLR端子を1から0にリセットする(S14)。そして、Q出力端子の出力が1、即ち、外部カメラの接続有りか検出する(S18)。ここで、外部カメラの接続有り(Q出力端子の出力1)の場合には(S18:Yes)、外部カメラが従来未接続(Mode=0)かを判断する(S28)。外部カメラが従来未接続(Mode=0)の場合、即ち、今回の処理で接続を検出した際には(S28:Yes)、外部カメラの接続を検出し(S30)、図7(B)を参照して上述したように画像用メモリを割り振り(S32)、後述する画像転送処理を開始する(S22)。他方、外部カメラが従来から接続されており、画像用メモリの割り振りが既に完了している場合には(S28:No)、直ちに画像転送処理を開始する(S22)。
【0019】
一方、外部カメラの接続無し(Q出力端子の出力0)の場合には(S18:No)、外部カメラが従来接続(Mode=1)されているかを判断する(S20)。外部カメラが従来接続(Mode=1)されている場合、即ち、今回の処理で外部カメラの取り外しを検出した際には(S20:Yes)、外部カメラの取り外しを検出し(S24)、図7(A)を参照して上述したように画像用メモリを割り振り(S26)、画像転送処理を開始する(S22)。他方、外部カメラが従来から接続されておらず、画像用メモリの割り振りが既に完了している場合には(S20:No)、直ちに画像転送処理を開始する(S22)。
【0020】
引き続き、第1実施形態の情報コード読取装置10での画像データの転送について図4及び図9を参照して説明する。図9(1)は内部カメラ12からの画像信号のCPU22のバッファ22bへの送信を示し、図9(2)はバッファ22bからのデジタルバス28を介しての画像用メモリ24への転送を示し、図9(3)は外部カメラ112からの画像信号のゲートアレー26への送信を示し、図9(4)はゲートアレー26からのデジタルバス28を介しての画像用メモリ24への転送を示すタイミングチャートである。第1実施形態では、デジタルバス28の空き時間に、画像データをCPU22のバッファ22bからデジタルバス28を介して画像用メモリ24へ転送し、同様に、ゲートアレー26からデジタルバス28を介して画像用メモリ24へ転送する。
【0021】
図10を参照して第1実施形態の情報コード読取装置10での画像取り込みとデコードとの処理について説明する。図10(A)は従来技術での画像取り込みとデコードとの処理について説明図である。従来技術では、内部カメラ及び外部カメラで画像を取り込んだ後、内部カメラの画像のデコードと外部カメラの画像のデコードとを行っていた。
【0022】
図10(B)は第1実施形態の情報コード読取装置10での画像取り込みとデコードとの処理について説明図である。
第1実施形態では、画像取り込みとデコードとを同時に行う。即ち、内部カメラで画像を取り込んでいる最中に、外部カメラで取り込んだ画像のデコードを行い、外部カメラで画像を取り込んでいる最中に、内部カメラで取り込んだ画像のデコードを行う。このため、図10(A)に示す従来技術の方法に対して、内部カメラの画像のデコード時間をT1分短縮でき、また、外部カメラから画像のデコード時間をT2分短縮することができる。
【0023】
この処理タイミングについて、更に、図11及び図12を参照して説明する。
図11(A)及び図11(B)は、画像データ転送とデコードとの関係を示すタイミングチャートである。
図11(A)中で、(3)は内部カメラからの画像信号のCPU22のバッファ22bへの送信、及び、外部カメラから画像信号のゲートアレー26への送信を示し、(4)はバッファ22bからのデジタルバス28を介しての画像用メモリ24への転送、及び、ゲートアレー26からのデジタルバス28を介しての画像用メモリ24への転送を示し、(5)は、CPU22による画像用メモリ24からデジタルバス28を介して画像を取得してのデコード処理を示している。第1実施形態では、上述したように、画像データを継続的に取得し、デジタルバス28を介して画像用メモリ24へ画像データを間欠的に転送し、この空き時間を利用してCPU22はデコードを行う。このため、画像データの取得と、デコードとを同時に行うことができる。
【0024】
第1実施形態では、画像用メモリ24へ画像データを間欠的に転送し、この空き時間を利用してデコードを行うために、間欠転送の前にデコードを一旦停止(中断)し、転送後にデコードを再開する。ここで、図11(B)中では、画像の転送と、デコードとがかち合った場合を示している。デコードの一旦停止が遅れ、デコードとデータの転送とが重なると、即ち、デジタルバス28の利用がかち合うと、画像データの取りこぼしが生じる可能性がある。
【0025】
図12は、画像データの転送周期と転送時間との関係を示すタイミングチャートである。図中(3)は内部カメラからの画像信号のCPU22のバッファ22bへの転送、及び、外部カメラから画像信号のゲートアレー26への転送を示し、(4)はバッファ22bからのデジタルバス28を介しての画像用メモリ24への転送、及び、ゲートアレー26からのデジタルバス28を介しての画像用メモリ24への転送を示している。バッファ22b、ゲートアレー26に蓄える画像データの量を少なくし、転送周期を短くすると転送時間は短くなり、反対に、バッファ22b、ゲートアレー26に蓄える画像データの量を多くし、転送周期を長くすると転送時間は長くなる。
【0026】
第1実施形態では、デコード処理の中断を可能にするため、図13に示すようにデコード処理をブロック(ステップ)毎に分割する。即ち、中断が可能な処理(分割が可能なデコード処理の最小処理単位)毎に分割しておく。そして、各ステップでの処理時間を記憶しておき、最も長くかかるステップでの処理を基準に中断のタイミングを決定する。
【0027】
更に、第1実施形態では、デコード処理を中断するために、画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達するとゲートアレー26側から通知信号がCPU22側に出力され、CPU22は、バッファ22bに設定したバッファサイズを検出する。図14(A)は、CPU22のバッファ22bの構造を示している。32byteで構成されるバッファ22bは、画像データの蓄積がn1(=16byte)に達したことを検出すると、検出フラグを立て(検出フラグを立てることを便宜上CPU22からCPU22への予告通知と呼ぶ)、デコードの中断処理を開始する。同様に、図14(B)は、ゲートアレー26のバッファ26bの構造を示している。32byteで構成されるバッファ26bは、画像データの蓄積がn2(=16byte)に達したことを検出すると、CPU22側へデコードの中断処理を開始させるための通知を出力する。
【0028】
更に、第1実施形態では、上述したデコードの最も時間が長くかかるステップで、上記n1(=16byte)、n2(=16byte)での通知後にデコードを中断しても、最も時間が長くかかるステップでの処理を中断する以前に、最大バッファ容量(32byte)に達してしまう場合には、バッファ容量を増やす。即ち、CPU22のバッファ22bの容量を図14(A)に示す32byteから図14(C)に示すように36byteに増やし、同様に、ゲートアレー26のバッファ26bの容量を図14(B)に示す32byteから図14(D)に示すように36byteに増やす。
【0029】
上述した第1実施形態のゲートアレー26での画像蓄積及び転送処理について、図15のフローチャートを参照して説明する。このゲートアレー26での画像蓄積及び転送の処理は、CPU22のバッファ22bで同様に行っているが、ここではゲートアレー26に関してのみ説明する。
先ず、外部カメラ112から送られた画像データのバッファ26bへの蓄積を図14(B)を参照して上述したように開始する(S52)。そして、所定のタイミング(n2=16byte)に達したかを判断し(S54)。所定のタイミングに達すると(S54:Yes)、CPU22側に完了予告を通知する(S56)。そして、画像データが32byteに達して、蓄積が完了したら(S58:Yes)、デジタルバス28がCPU22側からのバッファ22bの画像転送に使われているかを判断し(S60)、CPU22側からのバッファ22bの画像転送中は待機し(S60:No)、CPU22側からのバッファ22bの画像転送中でない場合には(S60:Yes)、画像データを図9(2)を参照して上述したように、デジタルバス28を介して画像用メモリ24に転送し(S62)、転送の完了をCPU22側に通知する(S64)。
【0030】
引き続き、CPU22側でのデコード処理について、図16のフローチャートを参照して説明する。
上述した画像データ転送終了の通知を受けると(S72:Yes)、図13を参照して上述したデコードの各ステップ(Step A、Step B、・・・Step X)の処理を行い(S74)、各ステップの処理に要した時間を記憶していく(S76)。例えば、Step A=3ms、Step B=6ms・・・。そして、ゲートアレー26から、及び、CPU22の内部処理で、完了予告が通知があるかを判断する(S78)。完了予告が有るまでは(S78:No)、デコードが終了したかを判断し(S82)、デコードが終了するまで(S82:No)、S74に戻り、各ステップの処理を継続する。ここで、ゲートアレー26から、又は、CPU22の内部処理で完了予告の通知があると(S78:Yes)、処理中のステップを完了した時点でデコードを中断し(S80)、S72に戻り、画像データの転送完了まで待機し、転送完了後にデコードを再開する(S74)。
【0031】
上記処理を繰り返し、デコードが完了すると(S82:Yes)、上述したS72で記憶した各ステップの処理時間中で最長時間のステップを特定する(S84)。ここでは、Step Bが6msで最長であったとする。そして、この最長時間(6ms)が、バッファ転送から次の転送までの空き時間に対して長いか否か、具体的には、図14(A)、図14(B)を参照して上述したn1、n2での予告通知を受けてから、既に開始している最も時間の掛かるStep Bの処理の完了後にデコード処理を中断しても、次の画像データの転送を妨げないか判断する(S86)。ここで、最長時間がバッファ転送から次の転送までの空き時間に対して長い場合には(S86:Yes)、図14(C)、図14(D)を参照して上述したように、CPU22のバッファ22b、ゲートアレー26のバッファ26bの容量を大きくする(S88)。
【0032】
一方、反対に、最長時間が次の転送までの空き時間に対して短い場合には(S86:No)、最長時間が次の転送までの空き時間に対して非常に短いかを判断する(S92)。非常に短くない場合には(S92:No)、バッファ容量を調整することなく処理を終了する。他方、非常に短い場合には(S92:Yes)、バッファ容量を小さくする(S94)。具体的には図14(C)、図14(D)を参照して上述したように、CPU22のバッファ22b、ゲートアレー26のバッファ26bの容量を36byteから、図14(A)、図14(B)に示すように32byteまで減らす。
【0033】
第1実施形態で、デコードの度に、処理時間中で最長時間のステップを特定するのは、読み取り条件、情報コードの種類等によって、処理時間中で最長時間のステップが異なり、また、処理時間自体が変化するからである。第1実施形態では、前回の同じ条件で同じ情報コードの種類を読み取る場合には、円滑に処理を進めることができる。
【0034】
第1実施形態の情報コード読取装置10では、CPU22のバッファ22b、ゲートアレー26のバッファ26bに蓄積した画像データをデジタルバス28を介して間欠的に画像用メモリ24へ送る休止時間にデコードを行うことで、内部カメラ12、外部カメラ112から送られる画像データのCPU22のバッファ22b、ゲートアレー26のバッファ26bへの蓄積と、デコードとを同時に行うことが可能となり、内部カメラ12及び外部カメラ112からの画像の取り込みとデコードとの時間を短くすることができる。ここで、CPU22のバッファ22b、ゲートアレー26のバッファ26bの容量を、デコード処理の分割されたブロックを処理する処理時間のうち最も長くなる処理時間においても、内部カメラ12、外部カメラ112からの画像データの蓄積が継続可能なように調整する。更に、CPU22のバッファ22b、ゲートアレー26のバッファ26bにおける内部カメラ12、外部カメラ112からの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると、蓄積完了が間近であることをCPU22に通知する。CPU22は、通知を受けた後、デコード処理を構成する分割されたデコードの各ブロックのうち少なくとも1つのブロックの処理後にデコードを中断することで、CPU22のバッファ22b、ゲートアレー26のバッファ26bに蓄積した画像データをデジタルバス28を介して間欠的に画像用メモリ24へ送る休止時間にデコードを行い、当該デジタルバス28を介して画像用メモリ24に画像データを保持させる間欠送りを妨げないようにできる。
【0035】
第1実施形態の情報コード読取装置10では、外部カメラ112からの画像データを蓄積するゲートアレー26のバッファ26bがゲートアレー26に内蔵されているため、外部カメラ112からの画像データを当該ゲートアレーに一旦蓄積し、デジタルバス28を介して間欠的に送り、画像用メモリ24に保持させることができる。このため、ゲートアレーに蓄積した画像データをデジタルバス28を介して間欠的に画像用メモリ24へ送る休止時間にデコードを行うことで、外部カメラ112から送られる画像データのゲートアレーへの蓄積と、デコードとを同時に行うことが可能となり、外部カメラ112からの画像の取り込みとデコードとの時間を短くすることができる。
【0036】
第1実施形態の情報コード読取装置10は、外部カメラが取り付けられず、内部カメラ12の画像を処理する場合にも、画像取り込みとデコードとを同時に行う。この動作を図17を参照して説明する。
図17(A)は従来技術での画像取り込みとデコードとの処理について説明図である。従来技術では、内部カメラで画像を取り込んだ後、内部カメラの画像のデコードを行っていた。図17(B)は第1実施形態の情報コード読取装置10での画像取り込みとデコードとの処理について説明図である。第1実施形態では、画像取り込みとデコードとを同時に行う。即ち、内部カメラで画像を取り込んでいる最中に、前回内部カメラで取り込んだ画像のデコードを行う。このため、図17(A)に示す従来技術の方法に対して、内部カメラの画像のデコード時間を短縮できる。
【0037】
[第2実施形態]
本発明の第2実施形態に係る情報コード読取装置10について図18、図19を参照して説明する。第2実施形態の情報コード読取装置10の機械的な構成に関しては第1実施形態と同様であるため、説明を省略する。
上述した第1実施形態では、デコードの分割したステップの最長時間に応じてバッファ容量を調整した。これに対して、第2実施形態では、バッファ容量を一定として、ステップの最長時間に応じて通知信号(完了予告)のタイミングを調整する。図18(A)は、CPU22のバッファ22bの構造を示している。32byteで構成されるバッファ22bは、例えば画像データの蓄積がn1(=16byte)に達したことを検出すると、検出フラグを立て(検出フラグを立てることを便宜上CPU22からCPU22への予告通知と呼ぶ)、デコードの中断処理を開始する。同様に、図18(B)は、ゲートアレー26のバッファ26bの構造を示している。32byteで構成されるバッファ26bは、画像データの蓄積がn2(=16byte)に達したことを検出すると、CPU22側へデコードの中断処理を開始させるための通知を出力する。
【0038】
第2実施形態では、上述したデコードの最も時間が長くかかるステップで、上記n1(=16byte)、n2(=16byte)での通知後にデコードを中断しても、最も長くかかるステップでの処理を中断する以前に、最大バッファ容量(32byte)に達してしまう場合には、通知信号(完了予告)のタイミングを早くする。即ち、図18(C)に示すようにCPU22のバッファ22bでの画像データの蓄積がn1(=14byte)に達した際に、通知信号(完了予告)を出力する。同様に、図18(D)に示すようにゲートアレー26のバッファ26bでの画像データの蓄積がn2(=14byte)に達した際に、通知信号(完了予告)を出力する。
【0039】
第2実施形態のCPU22側でのデコード処理について、図19のフローチャートを参照して説明する。
S72〜S80までの処理は、図16を参照して上述した第1実施形態と同様であるため説明を省略する。
デコードが完了すると(S82:Yes)、上述したS72で記憶した各ステップの処理時間中で最長時間のステップを特定する(S84)。ここでは、Step Bが6msで最長であったとする。そして、この最長時間(6ms)が、バッファ転送から次の転送までの空き時間に対して長いか否か、具体的には、図18(A)、図18(B)を参照して上述したn1、n2での予告通知を受けてから、既に開始している最も時間の掛かるStep Bの処理の完了後にデコード処理を中断しても、次の画像データの転送を妨げないか判断する(S86)。ここで、最長時間がバッファ転送から次の転送までの空き時間に対して長い場合には(S86:Yes)、図18(C)、図18(D)を参照して上述したように、完了予告の通知タイミングを早くする(S88)。
【0040】
一方、反対に、最長時間が次の転送までの空き時間に対して短い場合には(S86:No)、最長時間が次の転送までの空き時間に対して非常に短いかを判断する(S92)。非常に短くない場合には(S92:No)、完了予告の通知タイミングを調整することなく処理を終了する。他方、非常に短い場合には(S92:Yes)、完了予告の通知タイミングを遅くする(S94)。具体的には図18(C)、図18(D)を参照して上述したように、CPU22のバッファ22bでの画像データの蓄積がn1(=14byte)に達した際に、通知信号(完了予告)を出力し、同様にゲートアレー26のバッファ26bでの画像データの蓄積がn2(=14byte)に達した際に、通知信号(完了予告)を出力していたとする。これを図18(A)、図18(B)を参照して上述したように、n1(=16byte)に達した際に、n2(=16byte)に達した際に、通知信号(完了予告)を出力するように調整する。
【0041】
[第3実施形態]
本発明の第3実施形態に係る情報コード読取装置10について説明する。
第1、第2実施形態では、通知信号(完了予告)があった際に、実行中のステップ処理が終了した時点でデコードを中断した。これに対して、第3実施形態では、画像データの転送を妨げない範囲でデコード処理を継続する。
【0042】
第3実施形態のCPU22側でのデコード処理について、図20のフローチャートを参照して説明する。
S72〜S76、及び、S82〜S94までの処理は、図16を参照して上述した第1実施形態と同様であるため説明を省略する。
ここで、完了予告通知が成されると(S78:Yes)、S76で記憶したステップの処理時間に基づき、現在進行しているステップに引き続いて次ぎのステップの処理を画像データの転送前に完了できるかを判断する(S102)。ここで、転送前に完了できる場合には(S102:Yes)、次のステップを行う(S104)。S102及びS104の処理を繰り返すことで可能な範囲までデコードを進め、次のステップ処理が画像データの転送前に完了できなくなると(S102:No)、進行中のステップの処理を終えることでデコードを中断する(S80)。
【0043】
第3実施形態では、デジタルバスを空き時間を最大限まで利用してデコード処理が進められる利点がある。
【産業上の利用可能性】
【0044】
上述した実施形態では、外部カメラを1台のみ接続した例を例示したが、本発明の画像取り込みとデコードとを同時に行う構成は、2台以上の外部カメラを取り付ける際にも適用可能である。
【図面の簡単な説明】
【0045】
【図1】本発明の第1実施形態に係る情報コード読取装置の説明図である。
【図2】第1実施形態の情報コード読取装置の構成概要を示すブロック図である。
【図3】内部カメラと外部カメラの構成の説明図である。
【図4】メイン回路の回路構成を示すブロック図である。
【図5】外部カメラの接続を検出するDフリップフロップの接続を示す説明図である。
【図6】Dフリップフロップの状態遷移を示す図表である。
【図7】図7(A)は画像用メモリの外部カメラ接続無しの場合の画像用メモリの割り振りを、図7(B)は外部カメラ接続有りの場合の画像用メモリの割り振りを示す説明図である。
【図8】CPUでの画像用メモリの割り振り処理を示すフローチャートである。
【図9】図9(1)は内部カメラからの画像信号のCPUのバッファへの送信を示すタイミングチャートであり、図9(2)はバッファからのデジタルバスを介しての画像用メモリへの転送を示すタイミングチャートであり、図9(3)は外部カメラからの画像信号のゲートアレーへの送信を示すタイミングチャートであり、図9(4)はゲートアレーからのデジタルバスを介しての画像用メモリへの転送を示すタイミングチャートである。
【図10】図10(A)は従来技術での画像取り込みとデコードとの処理について説明図であり、図10(B)は第1実施形態の情報コード読取装置10での画像取り込みとデコードとの処理について説明図である。
【図11】図11(A)及び図11(B)は、画像データ転送とデコードとの関係を示すタイミングチャートである。
【図12】画像データの転送周期と転送時間との関係を示すタイミングチャートである。
【図13】第1実施形態のデコード処理の分割を示す説明図である。
【図14】図14(A)及び図14(C)はCPUのバッファの構造を示す説明図であり、図14(B)及び図14(D)はゲートアレーのバッファの構造を示す説明図である。
【図15】第1実施形態のゲートアレー、CPUでの画像蓄積及び転送処理を示すフローチャートである。
【図16】第1実施形態に係る情報コード読取装置のCPUでのデコード処理を示すフローチャートである。
【図17】図17(A)は従来技術での画像取り込みとデコードとの処理について説明図であり、図17(B)は第1実施形態の情報コード読取装置10での画像取り込みとデコードとの処理について説明図である。
【図18】図18(A)及び図18(C)は第2実施形態の情報コード読取装置でのCPUのバッファの構造を示す説明図であり、図18(B)及び図18(D)はゲートアレーのバッファの構造を示す説明図である。
【図19】第2実施形態に係る情報コード読取装置のCPUでのデコード処理を示すフローチャートである。
【図20】第3実施形態に係る情報コード読取装置のCPUでのデコード処理を示すフローチャートである。
【符号の説明】
【0046】
10…情報コード読取装置
12…内部カメラ
20…メイン回路
22…CPU
22b…バッファ
24…画像用メモリ
26…ゲートアレー
26b…バッファ
28…デジタルバス
112…外部カメラ

【特許請求の範囲】
【請求項1】
内部カメラで撮像した画像をデコードすると共に、接続された外部カメラで撮像した画像をデコード可能な情報読取装置であって、
前記内部カメラから送られる画像データを第1バッファに蓄積する第1画像データ蓄積手段と:
前記外部カメラから送られる画像データを第2バッファに蓄積する第2画像データ蓄積手段と:
前記第1バッファ及び第2バッファに蓄積した画像データをバスラインを介して間欠的に送り、画像用メモリに保持させる画像データ転送手段と:
該画像用メモリに保持された画像データを前記バスラインを介して取得し、デコードするデコード手段と:を備え、
前記第1バッファ及び第2バッファの容量を、前記デコード手段によるデコード処理をブロック毎に分割し、分割されたブロックを処理する処理時間のうち最も長くなる処理時間においても、前記第1画像データ蓄積手段及び前記第2画像データ蓄積手段による前記内部カメラ及び前記外部カメラからの画像データの蓄積が継続可能なように調整するバッファ容量調整手段を有し:
前記デコード手段は、分割された前記デコードの各ブロックのうち少なくとも1つのブロックの処理後にデコードを中断し;
中断中に前記第1バッファ及び第2バッファに蓄積した画像データをバスラインを介して画像用メモリへ送ることで、当該バスラインを介して画像用メモリに画像データを転送する処理を最大バッファ容量となる時間内に開始し;
前記デコード手段は、転送終了後にデコードを再開することを特徴とする情報読取装置。
【請求項2】
内部カメラで撮像した画像をデコードすると共に、接続された外部カメラで撮像した画像をデコード可能な情報読取装置であって、
前記内部カメラから送られる画像データを第1バッファに蓄積する第1画像データ蓄積手段と:
前記外部カメラから送られる画像データを第2バッファに蓄積する第2画像データ蓄積手段と:
前記第1バッファ及び第2バッファに蓄積した画像データをバスラインを介して間欠的に送り、画像用メモリに保持させる画像データ転送手段と:
該画像用メモリに保持された画像データを前記バスラインを介して取得し、デコードするデコード手段と:を備え、
前記第1バッファにおける前記内部カメラからの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると前記デコード手段に通知する第1通知手段と:
前記第2バッファにおける前記外部カメラからの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると前記デコード手段に通知する第2通知手段と:を有し、
前記デコード手段は、前記第1通知手段及び第2通知手段からの通知を受けた後、デコード処理を構成する分割された前記デコードの各ブロックのうち少なくとも1つのブロックの処理後にデコードを中断し;
前記第1バッファ及び前記第2バッファに蓄積した画像データをバスラインを介して画像用メモリへ送ることで、当該バスラインを介して画像用メモリに画像データを転送する処理を最大バッファ容量となる時間内に開始し;
前記デコード手段は転送終了後にデコードを再開することを特徴とする情報読取装置。
【請求項3】
前記第1バッファにおける前記内部カメラからの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると前記デコード手段に通知する第1通知手段と:
前記第2バッファにおける前記外部カメラからの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると前記デコード手段に通知する第2通知手段と:を有し、
前記デコード手段は、前記第1通知手段及び第1通知手段からの通知を受けた後、前記デコード処理を構成する分割された前記デコードの各ブロックのうち少なくとも1つのブロックの処理後にデコードを中断することを特徴とする請求項1の情報読取装置。
【請求項4】
前記第1バッファは、前記デコード手段を構成するCPUのバッファであり、
前記第2バッファは、ゲートアレーにより構成されることを特徴とする請求項1〜請求項3のいずれか1の情報読取装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate