(57)【要約】    【課題】  内部カメラ及び外部カメラで複数の情報コードをそれぞれ短時間で読み取り得る情報読取装置を提供する。    【解決手段】  ＣＰＵ２２のバッファ２２ｂ、ゲートアレー２６のバッファ２６ｂに蓄積した画像データをデジタルバス２８を介して間欠的に画像用メモリ２４へ送る休止時間にデコードを行うことで、内部カメラ１２、外部カメラ１１２から送られる画像データのＣＰＵ２２のバッファ２２ｂ、ゲートアレー２６のバッファ２６ｂへの蓄積と、デコードとを同時に行うことが可能となり、内部カメラ１２及び外部カメラ１１２からの画像の取り込みとデコードとの時間を短くすることができる。【選択図】  図４
2008186363.tif 000002
【特許請求の範囲】
【請求項１】
内部カメラで撮像した画像をデコードすると共に、接続された外部カメラで撮像した画像をデコード可能な情報読取装置であって、
前記内部カメラから送られる画像データを第１バッファに蓄積する第１画像データ蓄積手段と：
前記外部カメラから送られる画像データを第２バッファに蓄積する第２画像データ蓄積手段と：
前記第１バッファ及び第２バッファに蓄積した画像データをバスラインを介して間欠的に送り、画像用メモリに保持させる画像データ転送手段と：
該画像用メモリに保持された画像データを前記バスラインを介して取得し、デコードするデコード手段と：を備え、
前記第１バッファ及び第２バッファの容量を、前記デコード手段によるデコード処理をブロック毎に分割し、分割されたブロックを処理する処理時間のうち最も長くなる処理時間においても、前記第１画像データ蓄積手段及び前記第２画像データ蓄積手段による前記内部カメラ及び前記外部カメラからの画像データの蓄積が継続可能なように調整するバッファ容量調整手段を有し：
前記デコード手段は、分割された前記デコードの各ブロックのうち少なくとも１つのブロックの処理後にデコードを中断し；
中断中に前記第１バッファ及び第２バッファに蓄積した画像データをバスラインを介して画像用メモリへ送ることで、当該バスラインを介して画像用メモリに画像データを転送する処理を最大バッファ容量となる時間内に開始し；
前記デコード手段は、転送終了後にデコードを再開することを特徴とする情報読取装置。
【請求項２】
内部カメラで撮像した画像をデコードすると共に、接続された外部カメラで撮像した画像をデコード可能な情報読取装置であって、
前記内部カメラから送られる画像データを第１バッファに蓄積する第１画像データ蓄積手段と：
前記外部カメラから送られる画像データを第２バッファに蓄積する第２画像データ蓄積手段と：
前記第１バッファ及び第２バッファに蓄積した画像データをバスラインを介して間欠的に送り、画像用メモリに保持させる画像データ転送手段と：
該画像用メモリに保持された画像データを前記バスラインを介して取得し、デコードするデコード手段と：を備え、
前記第１バッファにおける前記内部カメラからの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると前記デコード手段に通知する第１通知手段と：
前記第２バッファにおける前記外部カメラからの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると前記デコード手段に通知する第２通知手段と：を有し、
前記デコード手段は、前記第１通知手段及び第２通知手段からの通知を受けた後、デコード処理を構成する分割された前記デコードの各ブロックのうち少なくとも１つのブロックの処理後にデコードを中断し；
前記第１バッファ及び前記第２バッファに蓄積した画像データをバスラインを介して画像用メモリへ送ることで、当該バスラインを介して画像用メモリに画像データを転送する処理を最大バッファ容量となる時間内に開始し；
前記デコード手段は転送終了後にデコードを再開することを特徴とする情報読取装置。
【請求項３】
前記第１バッファにおける前記内部カメラからの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると前記デコード手段に通知する第１通知手段と：
前記第２バッファにおける前記外部カメラからの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると前記デコード手段に通知する第２通知手段と：を有し、
前記デコード手段は、前記第１通知手段及び第１通知手段からの通知を受けた後、前記デコード処理を構成する分割された前記デコードの各ブロックのうち少なくとも１つのブロックの処理後にデコードを中断することを特徴とする請求項１の情報読取装置。
【請求項４】
前記第１バッファは、前記デコード手段を構成するＣＰＵのバッファであり、
前記第２バッファは、ゲートアレーにより構成されることを特徴とする請求項１〜請求項３のいずれか１の情報読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、製造ライン上を搬送される製品等に貼り付けられているバーコード、ＱＲコード（登録商標）等の光学情報を読み取る情報読取装置に関するものである。
【背景技術】
【０００２】
バーコード等の光学情報は、ＰＯＳシステムの他、製造ライン上を搬送される製品に貼り付けることで、これを光学的に読み取り、製品の識別などにも用いられている。ここで、製品にバーコードが２つ取り付けられ、同時に読み取る場合には、２台の情報読取装置を併設することで対応している。特許文献１には、２つの画像を２台のカメラで撮像し合成する合成画像生成用撮像システムが開示されている。
【特許文献１】特開２００４−２９７２８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
２台の情報読取装置を併設する場合、導入コストが２倍になる。常時、２つのバーコードを同時に読み取る場合には、導入コストの上昇は受け入れ得る。しかし、１つのバーコードを読み取る場合と、２つのバーコードを読み取る場合とが製造ライン上で発生する際には、情報読取装置を２台併設することは望ましいことではない。一方、１台の情報読取装置に、カメラを２個取り付けることも考え得るが、読み取りに掛かる時間が倍になり、迅速な読み取りができなくなる。
【０００４】
上記目的を達成するため、本発明は、内部カメラ及び外部カメラで複数の情報コードをそれぞれ短時間で読み取り得る情報読取装置を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、請求項１の発明は、内部カメラ１２で撮像した画像をデコードすると共に、接続された外部カメラ１１２で撮像した画像をデコード可能な情報読取装置であって、
前記内部カメラ１２から送られる画像データを第１バッファ２２ｂに蓄積する第１画像データ蓄積手段２２と：
前記外部カメラ１１２から送られる画像データを第２バッファ２６ｂに蓄積する第２画像データ蓄積手段２６と：
前記第１バッファ２２ｂ及び第２バッファ２６ｂに蓄積した画像データをバスライン２８を介して間欠的に送り、画像用メモリ２４に保持させる画像データ転送手段と：
該画像用メモリ２４に保持された画像データを前記バスライン２８を介して取得し、デコードするデコード手段と：を備え、
前記第１バッファ２２ｂ及び第２バッファ２６ｂの容量を、前記デコード手段によるデコード処理をブロック毎に分割し、分割されたブロックを処理する処理時間のうち最も長くなる処理時間においても、前記第１画像データ蓄積手段及び前記第２画像データ蓄積手段による前記内部カメラ１２及び前記外部カメラ１１２からの画像データの蓄積が継続可能なように調整するバッファ容量調整手段を有し：
前記デコード手段は、分割された前記デコードの各ブロックのうち少なくとも１つのブロックの処理後にデコードを中断し；
中断中に前記第１バッファ２２ｂ及び第２バッファ２６ｂに蓄積した画像データをバスライン２８を介して画像用メモリ２４へ送ることで、当該バスライン２８を介して画像用メモリ２４に画像データを転送する処理を最大バッファ容量となる時間内に開始し；
前記デコード手段は、転送終了後にデコードを再開することを技術的特徴とする。
【０００６】
請求項２の発明は、内部カメラ１２で撮像した画像をデコードすると共に、接続された外部カメラ１１２で撮像した画像をデコード可能な情報読取装置であって、
前記内部カメラ１２から送られる画像データを第１バッファ２２ｂに蓄積する第１画像データ蓄積手段と：
前記外部カメラ１１２から送られる画像データを第２バッファ２６ｂに蓄積する第２画像データ蓄積手段と：
前記第１バッファ２２ｂ及び第２バッファ２６ｂに蓄積した画像データをバスライン２８を介して間欠的に送り、画像用メモリ２４に保持させる画像データ転送手段と：
該画像用メモリ２４に保持された画像データを前記バスライン２８を介して取得し、デコードするデコード手段と：を備え、
前記第１バッファ２２ｂにおける前記内部カメラ１２からの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると前記デコード手段に通知する第１通知手段と：
前記第２バッファ２６ｂにおける前記外部カメラ１１２からの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると前記デコード手段に通知する第２通知手段と：を有し、
前記デコード手段は、前記第１通知手段及び第２通知手段からの通知を受けた後、デコード処理を構成する分割された前記デコードの各ブロックのうち少なくとも１つのブロックの処理後にデコードを中断し；
前記第１バッファ２２ｂ及び前記第２バッファ２６ｂに蓄積した画像データをバスライン２８を介して画像用メモリ２４へ送ることで、当該バスライン２８を介して画像用メモリ２４に画像データを転送する処理を最大バッファ容量となる時間内に開始し；
前記デコード手段は転送終了後にデコードを再開することを技術的特徴とする。
【発明の効果】
【０００７】
請求項１の情報読取装置では、第１バッファ、第２バッファに蓄積した画像データをバスラインを介して間欠的に画像用メモリへ送る休止時間にデコードを行うことで、内部カメラ、外部カメラから送られる画像データの第１バッファ、第２バッファへの蓄積と、デコードとを同時に行うことが可能となり、内部カメラ及び外部カメラからの画像の取り込みとデコードとの時間を短くすることができる。ここで、第１バッファ、第２バッファの容量を、デコード処理の分割されたブロックを処理する処理時間のうち最も長くなる処理時間においても、内部カメラ、外部カメラからの画像データの蓄積が継続可能なように調整する。そして、デコード処理を構成する分割されたデコードの各ブロックのうち少なくとも１つのブロックの処理後にデコードを中断することで、第１バッファ、第２バッファに蓄積した画像データをバスラインを介して間欠的に画像用メモリへ送る休止時間にデコードを行い、当該バスラインを介して画像用メモリに画像データを保持させる間欠送りを妨げないようにでき、内部カメラ、外部カメラからの画像データが第１バッファ、第２バッファの容量を超え、該第１バッファ、第２バッファに保持されない事態を生じせしめない。
【０００８】
請求項２の情報読取装置では、第１バッファ、第２バッファに蓄積した画像データをバスラインを介して間欠的に画像用メモリへ送る休止時間にデコードを行うことで、内部カメラ、外部カメラから送られる画像データの第１バッファ、第２バッファへの蓄積と、デコードとを同時に行うことが可能となり、内部カメラ及び外部カメラからの画像の取り込みとデコードとの時間を短くすることができる。ここで、第１バッファ、第２バッファにおける内部カメラ、外部カメラからの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると、蓄積完了が間近であることをデコード手段に通知し、該デコード手段は、通知を受けた後、デコード処理を構成する分割されたデコードの各ブロックのうち少なくとも１つのブロックの処理後にデコードを中断することで、第１バッファ、第２バッファに蓄積した画像データをバスラインを介して間欠的に画像用メモリへ送る休止時間にデコードを行い、当該バスラインを介して画像用メモリに画像データを保持させる間欠送りを妨げないようにできる。
【０００９】
請求項３の情報読取装置では、第１バッファ、第２バッファに蓄積した画像データをバスラインを介して間欠的に画像用メモリへ送る休止時間にデコードを行うことで、内部カメラ、外部カメラから送られる画像データの第１バッファ、第２バッファへの蓄積と、デコードとを同時に行うことが可能となり、内部カメラ及び外部カメラからの画像の取り込みとデコードとの時間を短くすることができる。ここで、第１バッファ、第２バッファの容量を、デコード処理の分割されたブロックを処理する処理時間のうち最も長くなる処理時間においても、内部カメラ、外部カメラからの画像データの蓄積が継続可能なように調整する。更に、第１バッファ、第２バッファにおける内部カメラ、外部カメラからの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると、蓄積完了が間近であることをデコード手段に通知する。デコード手段は、通知を受けた後、デコード処理を構成する分割されたデコードの各ブロックのうち少なくとも１つのブロックの処理後にデコードを中断することで、第１バッファ、第２バッファに蓄積した画像データをバスラインを介して間欠的に画像用メモリへ送る休止時間にデコードを行い、当該バスラインを介して画像用メモリに画像データを保持させる間欠送りを妨げないようにできる。
【００１０】
請求項４の情報読取装置では、外部カメラからの画像データを蓄積する第２バッファがゲートアレーからなるため、外部カメラからの画像データを当該ゲートアレーに一旦蓄積し、バスラインを介して間欠的に送り、画像用メモリに保持させることができる。このため、ゲートアレーに蓄積した画像データをバスラインを介して間欠的に画像用メモリへ送る休止時間にデコードを行うことで、外部カメラから送られる画像データのゲートアレーへの蓄積と、デコードとを同時に行うことが可能となり、外部カメラからの画像の取り込みとデコードとの時間を短くすることができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の情報読取装置を情報コード読取装置に適用した実施形態について図を参照して説明する。まず、第１実施形態に係る情報コード読取装置１０の構成概要を図１、図２に基づいて説明する。
図１は、第１実施形態の情報コード読取装置１０の説明図である。情報コード読取装置１０は、内部カメラ１２を備え、製品２００の側面に付けられたＱＲコードＱ１を読み取り、コンピュータ１２０側にデコード結果を送信する。該情報コード読取装置１０は、更に、汎用の外部カメラ１１２が接続可能であり、外部カメラ１１２によって撮像された製品２００上面のＱＲコードＱ２のデコード結果をコンピュータ１２０に出力することができる。
【００１２】
図２は情報コード読取装置１０の構成を示すブロック図である。情報コード読取装置１０は、主に、照明光源１６、結像レンズ１４、ＣＣＤから成る受光センサ１２、受光センサ１２からのアナログ出力をＡ／Ｄ変換するＡ／Ｄ変換器３２、Ａ／Ｄ変換された画像信号を処理するメイン回路２０、コンピュータ１２０との間の信号を制御する信号のやりとりを制御する信号ＩＦ３４、種々の制御を行う制御ＩＦ３６，読み取り音を出力するブザー３８、外部カメラ１１２を接続するためのコネクタ４０等から構成されている。ケーブル１８を介して接続される外部カメラ１１２には、専用の照明光源１１６が設けられている。
【００１３】
図３は、ＣＣＤからなる内部カメラ１２と、ＣＭＯＳセンサから成る外部カメラ１１２との信号出力を示している。ＣＣＤからなる内部カメラ１２は、アナログの画像信号を出力するため、Ａ／Ｄ変換器３２により８ビットのデジタル信号に変換し、図２中に示すメイン回路２０へ出力される。ＣＭＯＳセンサから成る外部カメラ１１２は、８ビットの画像信号を出力するため、メイン回路２０へ直接出力される。ここで、内部カメラ１２にＣＣＤを用いたが、ＣＭＯＳセンサを用いることも可能であり、また、外部カメラ１１２にＣＣＤを用いることも可能である。
【００１４】
図４は、メイン回路２０の回路構成を示すブロック図である。
画像データからの情報コードのデコードを行うメイン回路２０は、ＣＰＵ２２と、ＤＲＡＭからなる画像用メモリ２４と、ゲートアレー２６とから成り、ＣＰＵ２２と画像用メモリ２４とゲートアレー２６とは、画像信号を転送するためのデジタルバス２８で接続されている。ＣＰＵ２２はバッファ２２ｂを内蔵し、ゲートアレー２６もバッファ２６ｂを内蔵している。ここで、画像用メモリ２４はＳＤＲＡＭで構成することもでき、ゲートアレー２６はＦＰＧＡ（Field Programable Gate Array)で構成することもできる。内部カメラ１２からＡ／Ｄ変換器（図４中で図略）でデジタル信号に変換された画像信号は、カメラインタフェイスを介してＣＰＵ２２へ送られ、ＣＰＵ２２のバッファ２２ｂに一旦蓄積される。そして、データ量が一定にまで蓄えられると画像用メモリ２４へデジタルバス２８を介して転送される。一方、外部カメラ１１２からの信号は、外部カメラインタフェースを介して送られゲートアレー２６のバッファ２６ｂに一旦蓄積される。そして、データ量が一定にまで蓄えられると画像用メモリ２４へデジタルバス２８を介して転送される。ＣＰＵ２２は、画像用メモリ２４に蓄えられた画像データをデジタルバス２８を介して取り出し、情報コードのデコードを行う。
【００１５】
図５は、ゲートアレー２６内に設けられ、外部カメラ１１２の接続を検出するＤフリップフロップ２６ｆの接続を示す説明図であり、図６は該Ｄフリップフロップ２６ｆの状態遷移を示す図表である。Ｄフリップフロップ２６ｆのＤ端子は、電源電圧Ｖccが印加され、ＣＥ入力端子には、ＣＰＵ２２からのイネーブル命令が出力され、Ｃ入力端子には外部カメラ１１２からの制御信号が出力され、ＣＬＲ端子には、ＣＰＵ２２からのクリア命令が出力される。Ｑ出力端子は、ＣＰＵ２２側に外部カメラの検出を出力する。即ち、図６中に示すように外部カメラ１１２からの制御信号が印加されると、Ｑ出力端子からＣＰＵ２２側に外部カメラ検出信号（１）を出力する。Ｄフリップフロップ２６ｆのクロック源としては、例えば、外部カメラからの水平同期信号、垂直同期信号、外部カメラへの入力に対する応答、外部カメラから出力される画像転送用クロック等を用いることができる。
【００１６】
図７（Ａ）は画像用メモリ２４の外部カメラ接続無しの場合の画像用メモリの割り振りを、図７（Ｂ）は外部カメラ接続有りの場合の画像用メモリの割り振りを示す説明図である。外部カメラが接続されていない場合には、図７（Ａ）に示すように、開始アドレス０ＸＡＡＡＡから、内部カメラで撮像した１画面目の画像データを保持し、開始アドレス０ＸＢＢＢＢから、内部カメラで撮像した２画面目の画像データを保持し、開始アドレス０ＸＣＣＣＣから、内部カメラで撮像した３画面目の画像データを保持し、開始アドレス０ＸＤＤＤＤから、内部カメラで撮像した４画面目の画像データを保持することで、４画面分の内部カメラの画像データを保持する。
【００１７】
他方、外部カメラが接続された場合には、図７（Ｂ）に示すように、開始アドレス０ＸＡＡＡＡから、内部カメラで撮像した１画面目の画像データを保持し、開始アドレス０ＸＢＢＢＢから、外部カメラで撮像した１画面目の画像データを保持し、開始アドレス０ＸＣＣＣＣから、内部カメラで撮像した２画面目の画像データを保持し、開始アドレス０ＸＤＤＤＤから、外部カメラで撮像した２画面目の画像データを保持することで、２画面分の内部カメラの画像データと２画面分の外部カメラの画像データとを保持する。
【００１８】
図８は、ＣＰＵ２２での画像用メモリ２４の割り振り処理を示すフローチャートである。ＣＰＵ２２は、内部カメラから送られた画像データをバッファ２２ｂに蓄え、蓄えた画像データをバッファ２２ｂから画像用メモリ２４へ転送した後、時間（Ｘms）待機し（Ｓ１２）、図５を参照して上述したＤフリップフロップ２６ｆのＣＬＲ端子を１から０にリセットする（Ｓ１４）。そして、Ｑ出力端子の出力が１、即ち、外部カメラの接続有りか検出する（Ｓ１８）。ここで、外部カメラの接続有り（Ｑ出力端子の出力１）の場合には（Ｓ１８：Ｙｅｓ）、外部カメラが従来未接続（Mode=0)かを判断する（Ｓ２８）。外部カメラが従来未接続（Mode=0)の場合、即ち、今回の処理で接続を検出した際には（Ｓ２８：Ｙｅｓ）、外部カメラの接続を検出し（Ｓ３０）、図７（Ｂ）を参照して上述したように画像用メモリを割り振り（Ｓ３２）、後述する画像転送処理を開始する（Ｓ２２）。他方、外部カメラが従来から接続されており、画像用メモリの割り振りが既に完了している場合には（Ｓ２８：Ｎｏ）、直ちに画像転送処理を開始する（Ｓ２２）。
【００１９】
一方、外部カメラの接続無し（Ｑ出力端子の出力０）の場合には（Ｓ１８：Ｎｏ）、外部カメラが従来接続（Mode=1)されているかを判断する（Ｓ２０）。外部カメラが従来接続（Mode=1)されている場合、即ち、今回の処理で外部カメラの取り外しを検出した際には（Ｓ２０：Ｙｅｓ）、外部カメラの取り外しを検出し（Ｓ２４）、図７（Ａ）を参照して上述したように画像用メモリを割り振り（Ｓ２６）、画像転送処理を開始する（Ｓ２２）。他方、外部カメラが従来から接続されておらず、画像用メモリの割り振りが既に完了している場合には（Ｓ２０：Ｎｏ）、直ちに画像転送処理を開始する（Ｓ２２）。
【００２０】
引き続き、第１実施形態の情報コード読取装置１０での画像データの転送について図４及び図９を参照して説明する。図９（１）は内部カメラ１２からの画像信号のＣＰＵ２２のバッファ２２ｂへの送信を示し、図９（２）はバッファ２２ｂからのデジタルバス２８を介しての画像用メモリ２４への転送を示し、図９（３）は外部カメラ１１２からの画像信号のゲートアレー２６への送信を示し、図９（４）はゲートアレー２６からのデジタルバス２８を介しての画像用メモリ２４への転送を示すタイミングチャートである。第１実施形態では、デジタルバス２８の空き時間に、画像データをＣＰＵ２２のバッファ２２ｂからデジタルバス２８を介して画像用メモリ２４へ転送し、同様に、ゲートアレー２６からデジタルバス２８を介して画像用メモリ２４へ転送する。
【００２１】
図１０を参照して第１実施形態の情報コード読取装置１０での画像取り込みとデコードとの処理について説明する。図１０（Ａ）は従来技術での画像取り込みとデコードとの処理について説明図である。従来技術では、内部カメラ及び外部カメラで画像を取り込んだ後、内部カメラの画像のデコードと外部カメラの画像のデコードとを行っていた。
【００２２】
図１０（Ｂ）は第１実施形態の情報コード読取装置１０での画像取り込みとデコードとの処理について説明図である。
第１実施形態では、画像取り込みとデコードとを同時に行う。即ち、内部カメラで画像を取り込んでいる最中に、外部カメラで取り込んだ画像のデコードを行い、外部カメラで画像を取り込んでいる最中に、内部カメラで取り込んだ画像のデコードを行う。このため、図１０（Ａ）に示す従来技術の方法に対して、内部カメラの画像のデコード時間をＴ１分短縮でき、また、外部カメラから画像のデコード時間をＴ２分短縮することができる。
【００２３】
この処理タイミングについて、更に、図１１及び図１２を参照して説明する。
図１１（Ａ）及び図１１（Ｂ）は、画像データ転送とデコードとの関係を示すタイミングチャートである。
図１１（Ａ）中で、（３）は内部カメラからの画像信号のＣＰＵ２２のバッファ２２ｂへの送信、及び、外部カメラから画像信号のゲートアレー２６への送信を示し、（４）はバッファ２２ｂからのデジタルバス２８を介しての画像用メモリ２４への転送、及び、ゲートアレー２６からのデジタルバス２８を介しての画像用メモリ２４への転送を示し、（５）は、ＣＰＵ２２による画像用メモリ２４からデジタルバス２８を介して画像を取得してのデコード処理を示している。第１実施形態では、上述したように、画像データを継続的に取得し、デジタルバス２８を介して画像用メモリ２４へ画像データを間欠的に転送し、この空き時間を利用してＣＰＵ２２はデコードを行う。このため、画像データの取得と、デコードとを同時に行うことができる。
【００２４】
第１実施形態では、画像用メモリ２４へ画像データを間欠的に転送し、この空き時間を利用してデコードを行うために、間欠転送の前にデコードを一旦停止（中断）し、転送後にデコードを再開する。ここで、図１１（Ｂ）中では、画像の転送と、デコードとがかち合った場合を示している。デコードの一旦停止が遅れ、デコードとデータの転送とが重なると、即ち、デジタルバス２８の利用がかち合うと、画像データの取りこぼしが生じる可能性がある。
【００２５】
図１２は、画像データの転送周期と転送時間との関係を示すタイミングチャートである。図中（３）は内部カメラからの画像信号のＣＰＵ２２のバッファ２２ｂへの転送、及び、外部カメラから画像信号のゲートアレー２６への転送を示し、（４）はバッファ２２ｂからのデジタルバス２８を介しての画像用メモリ２４への転送、及び、ゲートアレー２６からのデジタルバス２８を介しての画像用メモリ２４への転送を示している。バッファ２２ｂ、ゲートアレー２６に蓄える画像データの量を少なくし、転送周期を短くすると転送時間は短くなり、反対に、バッファ２２ｂ、ゲートアレー２６に蓄える画像データの量を多くし、転送周期を長くすると転送時間は長くなる。
【００２６】
第１実施形態では、デコード処理の中断を可能にするため、図１３に示すようにデコード処理をブロック（ステップ）毎に分割する。即ち、中断が可能な処理（分割が可能なデコード処理の最小処理単位）毎に分割しておく。そして、各ステップでの処理時間を記憶しておき、最も長くかかるステップでの処理を基準に中断のタイミングを決定する。
【００２７】
更に、第１実施形態では、デコード処理を中断するために、画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達するとゲートアレー２６側から通知信号がＣＰＵ２２側に出力され、ＣＰＵ２２は、バッファ２２ｂに設定したバッファサイズを検出する。図１４（Ａ）は、ＣＰＵ２２のバッファ２２ｂの構造を示している。３２byteで構成されるバッファ２２ｂは、画像データの蓄積がｎ１（＝１６byte）に達したことを検出すると、検出フラグを立て（検出フラグを立てることを便宜上ＣＰＵ２２からＣＰＵ２２への予告通知と呼ぶ）、デコードの中断処理を開始する。同様に、図１４（Ｂ）は、ゲートアレー２６のバッファ２６ｂの構造を示している。３２byteで構成されるバッファ２６ｂは、画像データの蓄積がｎ２（＝１６byte）に達したことを検出すると、ＣＰＵ２２側へデコードの中断処理を開始させるための通知を出力する。
【００２８】
更に、第１実施形態では、上述したデコードの最も時間が長くかかるステップで、上記ｎ１（＝１６byte）、ｎ２（＝１６byte）での通知後にデコードを中断しても、最も時間が長くかかるステップでの処理を中断する以前に、最大バッファ容量（３２byte）に達してしまう場合には、バッファ容量を増やす。即ち、ＣＰＵ２２のバッファ２２ｂの容量を図１４（Ａ）に示す３２byteから図１４（Ｃ）に示すように３６byteに増やし、同様に、ゲートアレー２６のバッファ２６ｂの容量を図１４（Ｂ）に示す３２byteから図１４（Ｄ）に示すように３６byteに増やす。
【００２９】
上述した第１実施形態のゲートアレー２６での画像蓄積及び転送処理について、図１５のフローチャートを参照して説明する。このゲートアレー２６での画像蓄積及び転送の処理は、ＣＰＵ２２のバッファ２２ｂで同様に行っているが、ここではゲートアレー２６に関してのみ説明する。
先ず、外部カメラ１１２から送られた画像データのバッファ２６ｂへの蓄積を図１４（Ｂ）を参照して上述したように開始する（Ｓ５２）。そして、所定のタイミング（ｎ２＝１６byte）に達したかを判断し（Ｓ５４）。所定のタイミングに達すると（Ｓ５４：Ｙｅｓ）、ＣＰＵ２２側に完了予告を通知する（Ｓ５６）。そして、画像データが３２byteに達して、蓄積が完了したら（Ｓ５８：Ｙｅｓ）、デジタルバス２８がＣＰＵ２２側からのバッファ２２ｂの画像転送に使われているかを判断し（Ｓ６０）、ＣＰＵ２２側からのバッファ２２ｂの画像転送中は待機し（Ｓ６０：Ｎｏ）、ＣＰＵ２２側からのバッファ２２ｂの画像転送中でない場合には（Ｓ６０：Ｙｅｓ）、画像データを図９（２）を参照して上述したように、デジタルバス２８を介して画像用メモリ２４に転送し（Ｓ６２）、転送の完了をＣＰＵ２２側に通知する（Ｓ６４）。
【００３０】
引き続き、ＣＰＵ２２側でのデコード処理について、図１６のフローチャートを参照して説明する。
上述した画像データ転送終了の通知を受けると（Ｓ７２：Ｙｅｓ）、図１３を参照して上述したデコードの各ステップ（Step Ａ、Step Ｂ、・・・Step Ｘ）の処理を行い（Ｓ７４）、各ステップの処理に要した時間を記憶していく（Ｓ７６）。例えば、Step Ａ＝３ms、Step Ｂ＝６ms・・・。そして、ゲートアレー２６から、及び、ＣＰＵ２２の内部処理で、完了予告が通知があるかを判断する（Ｓ７８）。完了予告が有るまでは（Ｓ７８：Ｎｏ）、デコードが終了したかを判断し（Ｓ８２）、デコードが終了するまで（Ｓ８２：Ｎｏ）、Ｓ７４に戻り、各ステップの処理を継続する。ここで、ゲートアレー２６から、又は、ＣＰＵ２２の内部処理で完了予告の通知があると（Ｓ７８：Ｙｅｓ）、処理中のステップを完了した時点でデコードを中断し（Ｓ８０）、Ｓ７２に戻り、画像データの転送完了まで待機し、転送完了後にデコードを再開する（Ｓ７４）。
【００３１】
上記処理を繰り返し、デコードが完了すると（Ｓ８２：Ｙｅｓ）、上述したＳ７２で記憶した各ステップの処理時間中で最長時間のステップを特定する（Ｓ８４）。ここでは、Step Ｂが６msで最長であったとする。そして、この最長時間（６ms）が、バッファ転送から次の転送までの空き時間に対して長いか否か、具体的には、図１４（Ａ）、図１４（Ｂ）を参照して上述したｎ１、ｎ２での予告通知を受けてから、既に開始している最も時間の掛かるStep Ｂの処理の完了後にデコード処理を中断しても、次の画像データの転送を妨げないか判断する（Ｓ８６）。ここで、最長時間がバッファ転送から次の転送までの空き時間に対して長い場合には（Ｓ８６：Ｙｅｓ）、図１４（Ｃ）、図１４（Ｄ）を参照して上述したように、ＣＰＵ２２のバッファ２２ｂ、ゲートアレー２６のバッファ２６ｂの容量を大きくする（Ｓ８８）。
【００３２】
一方、反対に、最長時間が次の転送までの空き時間に対して短い場合には（Ｓ８６：Ｎｏ）、最長時間が次の転送までの空き時間に対して非常に短いかを判断する（Ｓ９２）。非常に短くない場合には（Ｓ９２：Ｎｏ）、バッファ容量を調整することなく処理を終了する。他方、非常に短い場合には（Ｓ９２：Ｙｅｓ）、バッファ容量を小さくする（Ｓ９４）。具体的には図１４（Ｃ）、図１４（Ｄ）を参照して上述したように、ＣＰＵ２２のバッファ２２ｂ、ゲートアレー２６のバッファ２６ｂの容量を３６byteから、図１４（Ａ）、図１４（Ｂ）に示すように３２byteまで減らす。
【００３３】
第１実施形態で、デコードの度に、処理時間中で最長時間のステップを特定するのは、読み取り条件、情報コードの種類等によって、処理時間中で最長時間のステップが異なり、また、処理時間自体が変化するからである。第１実施形態では、前回の同じ条件で同じ情報コードの種類を読み取る場合には、円滑に処理を進めることができる。
【００３４】
第１実施形態の情報コード読取装置１０では、ＣＰＵ２２のバッファ２２ｂ、ゲートアレー２６のバッファ２６ｂに蓄積した画像データをデジタルバス２８を介して間欠的に画像用メモリ２４へ送る休止時間にデコードを行うことで、内部カメラ１２、外部カメラ１１２から送られる画像データのＣＰＵ２２のバッファ２２ｂ、ゲートアレー２６のバッファ２６ｂへの蓄積と、デコードとを同時に行うことが可能となり、内部カメラ１２及び外部カメラ１１２からの画像の取り込みとデコードとの時間を短くすることができる。ここで、ＣＰＵ２２のバッファ２２ｂ、ゲートアレー２６のバッファ２６ｂの容量を、デコード処理の分割されたブロックを処理する処理時間のうち最も長くなる処理時間においても、内部カメラ１２、外部カメラ１１２からの画像データの蓄積が継続可能なように調整する。更に、ＣＰＵ２２のバッファ２２ｂ、ゲートアレー２６のバッファ２６ｂにおける内部カメラ１２、外部カメラ１１２からの画像データが最大バッファ容量となる前の、事前に設定したバッファサイズに達すると、蓄積完了が間近であることをＣＰＵ２２に通知する。ＣＰＵ２２は、通知を受けた後、デコード処理を構成する分割されたデコードの各ブロックのうち少なくとも１つのブロックの処理後にデコードを中断することで、ＣＰＵ２２のバッファ２２ｂ、ゲートアレー２６のバッファ２６ｂに蓄積した画像データをデジタルバス２８を介して間欠的に画像用メモリ２４へ送る休止時間にデコードを行い、当該デジタルバス２８を介して画像用メモリ２４に画像データを保持させる間欠送りを妨げないようにできる。
【００３５】
第１実施形態の情報コード読取装置１０では、外部カメラ１１２からの画像データを蓄積するゲートアレー２６のバッファ２６ｂがゲートアレー２６に内蔵されているため、外部カメラ１１２からの画像データを当該ゲートアレーに一旦蓄積し、デジタルバス２８を介して間欠的に送り、画像用メモリ２４に保持させることができる。このため、ゲートアレーに蓄積した画像データをデジタルバス２８を介して間欠的に画像用メモリ２４へ送る休止時間にデコードを行うことで、外部カメラ１１２から送られる画像データのゲートアレーへの蓄積と、デコードとを同時に行うことが可能となり、外部カメラ１１２からの画像の取り込みとデコードとの時間を短くすることができる。
【００３６】
第１実施形態の情報コード読取装置１０は、外部カメラが取り付けられず、内部カメラ１２の画像を処理する場合にも、画像取り込みとデコードとを同時に行う。この動作を図１７を参照して説明する。
図１７（Ａ）は従来技術での画像取り込みとデコードとの処理について説明図である。従来技術では、内部カメラで画像を取り込んだ後、内部カメラの画像のデコードを行っていた。図１７（Ｂ）は第１実施形態の情報コード読取装置１０での画像取り込みとデコードとの処理について説明図である。第１実施形態では、画像取り込みとデコードとを同時に行う。即ち、内部カメラで画像を取り込んでいる最中に、前回内部カメラで取り込んだ画像のデコードを行う。このため、図１７（Ａ）に示す従来技術の方法に対して、内部カメラの画像のデコード時間を短縮できる。
【００３７】
[第２実施形態]
本発明の第２実施形態に係る情報コード読取装置１０について図１８、図１９を参照して説明する。第２実施形態の情報コード読取装置１０の機械的な構成に関しては第１実施形態と同様であるため、説明を省略する。
上述した第１実施形態では、デコードの分割したステップの最長時間に応じてバッファ容量を調整した。これに対して、第２実施形態では、バッファ容量を一定として、ステップの最長時間に応じて通知信号（完了予告）のタイミングを調整する。図１８（Ａ）は、ＣＰＵ２２のバッファ２２ｂの構造を示している。３２byteで構成されるバッファ２２ｂは、例えば画像データの蓄積がｎ１（＝１６byte）に達したことを検出すると、検出フラグを立て（検出フラグを立てることを便宜上ＣＰＵ２２からＣＰＵ２２への予告通知と呼ぶ）、デコードの中断処理を開始する。同様に、図１８（Ｂ）は、ゲートアレー２６のバッファ２６ｂの構造を示している。３２byteで構成されるバッファ２６ｂは、画像データの蓄積がｎ２（＝１６byte）に達したことを検出すると、ＣＰＵ２２側へデコードの中断処理を開始させるための通知を出力する。
【００３８】
第２実施形態では、上述したデコードの最も時間が長くかかるステップで、上記ｎ１（＝１６byte）、ｎ２（＝１６byte）での通知後にデコードを中断しても、最も長くかかるステップでの処理を中断する以前に、最大バッファ容量（３２byte）に達してしまう場合には、通知信号（完了予告）のタイミングを早くする。即ち、図１８（Ｃ）に示すようにＣＰＵ２２のバッファ２２ｂでの画像データの蓄積がｎ１（＝１４byte）に達した際に、通知信号（完了予告）を出力する。同様に、図１８（Ｄ）に示すようにゲートアレー２６のバッファ２６ｂでの画像データの蓄積がｎ２（＝１４byte）に達した際に、通知信号（完了予告）を出力する。
【００３９】
第２実施形態のＣＰＵ２２側でのデコード処理について、図１９のフローチャートを参照して説明する。
Ｓ７２〜Ｓ８０までの処理は、図１６を参照して上述した第１実施形態と同様であるため説明を省略する。
デコードが完了すると（Ｓ８２：Ｙｅｓ）、上述したＳ７２で記憶した各ステップの処理時間中で最長時間のステップを特定する（Ｓ８４）。ここでは、Step Ｂが６msで最長であったとする。そして、この最長時間（６ms）が、バッファ転送から次の転送までの空き時間に対して長いか否か、具体的には、図１８（Ａ）、図１８（Ｂ）を参照して上述したｎ１、ｎ２での予告通知を受けてから、既に開始している最も時間の掛かるStep Ｂの処理の完了後にデコード処理を中断しても、次の画像データの転送を妨げないか判断する（Ｓ８６）。ここで、最長時間がバッファ転送から次の転送までの空き時間に対して長い場合には（Ｓ８６：Ｙｅｓ）、図１８（Ｃ）、図１８（Ｄ）を参照して上述したように、完了予告の通知タイミングを早くする（Ｓ８８）。
【００４０】
一方、反対に、最長時間が次の転送までの空き時間に対して短い場合には（Ｓ８６：Ｎｏ）、最長時間が次の転送までの空き時間に対して非常に短いかを判断する（Ｓ９２）。非常に短くない場合には（Ｓ９２：Ｎｏ）、完了予告の通知タイミングを調整することなく処理を終了する。他方、非常に短い場合には（Ｓ９２：Ｙｅｓ）、完了予告の通知タイミングを遅くする（Ｓ９４）。具体的には図１８（Ｃ）、図１８（Ｄ）を参照して上述したように、ＣＰＵ２２のバッファ２２ｂでの画像データの蓄積がｎ１（＝１４byte）に達した際に、通知信号（完了予告）を出力し、同様にゲートアレー２６のバッファ２６ｂでの画像データの蓄積がｎ２（＝１４byte）に達した際に、通知信号（完了予告）を出力していたとする。これを図１８（Ａ）、図１８（Ｂ）を参照して上述したように、ｎ１（＝１６byte）に達した際に、ｎ２（＝１６byte）に達した際に、通知信号（完了予告）を出力するように調整する。
【００４１】
[第３実施形態]
本発明の第３実施形態に係る情報コード読取装置１０について説明する。
第１、第２実施形態では、通知信号（完了予告）があった際に、実行中のステップ処理が終了した時点でデコードを中断した。これに対して、第３実施形態では、画像データの転送を妨げない範囲でデコード処理を継続する。
【００４２】
第３実施形態のＣＰＵ２２側でのデコード処理について、図２０のフローチャートを参照して説明する。
Ｓ７２〜Ｓ７６、及び、Ｓ８２〜Ｓ９４までの処理は、図１６を参照して上述した第１実施形態と同様であるため説明を省略する。
ここで、完了予告通知が成されると（Ｓ７８：Ｙｅｓ）、Ｓ７６で記憶したステップの処理時間に基づき、現在進行しているステップに引き続いて次ぎのステップの処理を画像データの転送前に完了できるかを判断する（Ｓ１０２）。ここで、転送前に完了できる場合には（Ｓ１０２：Ｙｅｓ）、次のステップを行う（Ｓ１０４）。Ｓ１０２及びＳ１０４の処理を繰り返すことで可能な範囲までデコードを進め、次のステップ処理が画像データの転送前に完了できなくなると（Ｓ１０２：Ｎｏ）、進行中のステップの処理を終えることでデコードを中断する（Ｓ８０）。
【００４３】
第３実施形態では、デジタルバスを空き時間を最大限まで利用してデコード処理が進められる利点がある。
【産業上の利用可能性】
【００４４】
上述した実施形態では、外部カメラを１台のみ接続した例を例示したが、本発明の画像取り込みとデコードとを同時に行う構成は、２台以上の外部カメラを取り付ける際にも適用可能である。
【図面の簡単な説明】
【００４５】
【図１】本発明の第１実施形態に係る情報コード読取装置の説明図である。
【図２】第１実施形態の情報コード読取装置の構成概要を示すブロック図である。
【図３】内部カメラと外部カメラの構成の説明図である。
【図４】メイン回路の回路構成を示すブロック図である。
【図５】外部カメラの接続を検出するＤフリップフロップの接続を示す説明図である。
【図６】Ｄフリップフロップの状態遷移を示す図表である。
【図７】図７（Ａ）は画像用メモリの外部カメラ接続無しの場合の画像用メモリの割り振りを、図７（Ｂ）は外部カメラ接続有りの場合の画像用メモリの割り振りを示す説明図である。
【図８】ＣＰＵでの画像用メモリの割り振り処理を示すフローチャートである。
【図９】図９（１）は内部カメラからの画像信号のＣＰＵのバッファへの送信を示すタイミングチャートであり、図９（２）はバッファからのデジタルバスを介しての画像用メモリへの転送を示すタイミングチャートであり、図９（３）は外部カメラからの画像信号のゲートアレーへの送信を示すタイミングチャートであり、図９（４）はゲートアレーからのデジタルバスを介しての画像用メモリへの転送を示すタイミングチャートである。
【図１０】図１０（Ａ）は従来技術での画像取り込みとデコードとの処理について説明図であり、図１０（Ｂ）は第１実施形態の情報コード読取装置１０での画像取り込みとデコードとの処理について説明図である。
【図１１】図１１（Ａ）及び図１１（Ｂ）は、画像データ転送とデコードとの関係を示すタイミングチャートである。
【図１２】画像データの転送周期と転送時間との関係を示すタイミングチャートである。
【図１３】第１実施形態のデコード処理の分割を示す説明図である。
【図１４】図１４（Ａ）及び図１４（Ｃ）はＣＰＵのバッファの構造を示す説明図であり、図１４（Ｂ）及び図１４（Ｄ）はゲートアレーのバッファの構造を示す説明図である。
【図１５】第１実施形態のゲートアレー、ＣＰＵでの画像蓄積及び転送処理を示すフローチャートである。
【図１６】第１実施形態に係る情報コード読取装置のＣＰＵでのデコード処理を示すフローチャートである。
【図１７】図１７（Ａ）は従来技術での画像取り込みとデコードとの処理について説明図であり、図１７（Ｂ）は第１実施形態の情報コード読取装置１０での画像取り込みとデコードとの処理について説明図である。
【図１８】図１８（Ａ）及び図１８（Ｃ）は第２実施形態の情報コード読取装置でのＣＰＵのバッファの構造を示す説明図であり、図１８（Ｂ）及び図１８（Ｄ）はゲートアレーのバッファの構造を示す説明図である。
【図１９】第２実施形態に係る情報コード読取装置のＣＰＵでのデコード処理を示すフローチャートである。
【図２０】第３実施形態に係る情報コード読取装置のＣＰＵでのデコード処理を示すフローチャートである。
【符号の説明】
【００４６】
１０…情報コード読取装置
１２…内部カメラ
２０…メイン回路
２２…ＣＰＵ
２２ｂ…バッファ
２４…画像用メモリ
２６…ゲートアレー
２６ｂ…バッファ
２８…デジタルバス
１１２…外部カメラ
【図１】
2008186363.tif 000003
【図２】
2008186363.tif 000004
【図３】
2008186363.tif 000005
【図４】
2008186363.tif 000006
【図５】
2008186363.tif 000007
【図６】
2008186363.tif 000008
【図７】
2008186363.tif 000009
【図８】
2008186363.tif 000010
【図９】
2008186363.tif 000011
【図１０】
2008186363.tif 000012
【図１１】
2008186363.tif 000013
【図１２】
2008186363.tif 000014
【図１３】
2008186363.tif 000015
【図１４】
2008186363.tif 000016
【図１５】
2008186363.tif 000017
【図１６】
2008186363.tif 000018
【図１７】
2008186363.tif 000019
【図１８】
2008186363.tif 000020
【図１９】
2008186363.tif 000021
【図２０】
2008186363.tif 000022