(57)【要約】【課題】コード読み取り装置の性能向上を図ること。【解決手段】フラッシュメモリ３００は、データの読み書きが可能な不揮発性の記憶領域であり、イメージセンサ７０に読み取られた画像データであるフレーム画像３１０、第１露光設定値３２０、第２露光設定値３３０及び最適露光値３５０を記憶する。コード読み取り装置３は、２つの露光設定値、即ち第１露光設定値３２０及び第２露光設定値３３０を交互に更新しながら露光を行っていく。最適露光値３５０は、前回の露光時に最適露光範囲内に到達した第１露光設定値３２０及び第２露光設定値３３０の何れかの露光設定値である。【選択図】      図２１
2008123563.tif 000002
【特許請求の範囲】
【請求項１】
複数の露光値を記憶する露光値記憶手段と、
異なる複数の初期値を、前記露光値記憶手段が記憶する複数の露光値として設定する初期設定手段と、
前記露光値記憶手段により記憶された複数の露光値それぞれに基づいてデジタルコードの光学像の露光を行う露光手段と、
この露光手段による露光の結果に基づいて前記露光値記憶手段により記憶されている複数の露光値を個々に更新する露光値更新手段と、
この露光値更新手段により更新された露光値が最適露光範囲に到達するまで、前記露光手段及び前記露光値更新手段による一連の処理を繰り返す繰り返し制御手段と、
を備えることを特徴とするコード読み取り装置。
【請求項２】
前記初期設定手段は、前記露光手段が露光可能な露光値の最大値と最小値とを前記初期値とすることを特徴とする請求項１記載のコード読み取り装置。
【請求項３】
前記露光値更新手段により更新された露光値が最適露光範囲に到達した際の露光値を最適露光値として記憶する最適値記憶手段を更に備え、
前記初期設定手段は、前記最適露光値を前記初期値とすることを特徴とする請求項１記載のコード読み取り装置。
【請求項４】
前記最適露光値の履歴を記録する履歴記録手段と、
この履歴記録手段により記録された最適露光値の平均値を算出する平均算出手段とを更に備え、
前記初期設定手段は、前記平均算出手段により算出された平均値を前記初期値とすることを特徴とする請求項３記載のコード読み取り装置。
【請求項５】
前記最適露光値の履歴を記録する履歴記録手段と、
この履歴記録手段により記録された最適露光値の平均値を算出する平均算出手段と、
この平均算出手段により算出された露光値の平均値に基づいてデジタルコードの光学像の露光を行って、当該デジタルコードの画像データを生成する画像生成手段と、
この画像生成手段により生成された画像データをデコードするデコード手段と、
を更に備えることを特徴とする請求項１記載のコード読み取り装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルコードの画像データを生成して、当該画像データのデコードを行うコード読み取り装置に関する。
【背景技術】
【０００２】
従来から、太さや間隔の異なるバーを並べ合わせることで様々な情報を符号化したバーコード（一次元コード）が知られているが、一次元コードの情報量の不足に対する要望から、点や線を縦横に複雑に組み合わせることより多くの情報を符号化する二次元コードが考案されて広く普及してきた（以下、一次元コード及び二次元コードを総称して「デジタルコード」という。）。
【０００３】
また、デジタルコードの画像データを生成してデコードすることで、当該デジタルコードにより符号化された情報を読み取るコード読み取り装置が広く普及している。コード読み取り装置は、レンズを透過したデジタルコードの光学像をイメージセンサで光電変換することにより生成した画像データをデコード（解読）する。
【０００４】
このようなコード読み取り装置の一例としては、レンズの焦点距離においてイメージセンサの読み取り範囲の中央位置に焦点が形成されるようにスポット光を照射するコード読み取り装置が知られている（特許文献１及び２参照）。
【特許文献１】特開平０８−１８０１２８号公報
【特許文献２】特開平０８−２５３５２９号公報
【０００５】
図３４（ａ）は、従来のコード読み取り装置１００のブロック図の一例である。ここで、コード読み取り装置１００の具体的な動作例を、図３４（ｂ）のタイムチャートを参照しながら簡単に説明する。
【０００６】
先ず、ＣＰＵ（Central Processing Unit）１０は、イメージセンサ７０のシャッター速度や絞り値による露光値をＲＡＭ（Random Access Memory）３０に露光設定値３３として記憶する。そして、ＣＰＵ１０は、イメージセンサ７０を露光設定値３３に基づいて制御して露光を行う。この露光は、イメージセンサ７０の内部で生成する垂直同期信号ＶｓｙｎｃがＬ（Ｌｏｗ）の間に行われる。従って、図３４（ｂ）のように、期間Ａ１には露光設定値３３の“Ａ”で露光を行って、その露光により得られた画像データをデータバッファ５３に出力する。また、イメージセンサ７０は、垂直同期信号Ｖｓｙｎｃをタイミングコントローラ５１に出力する。
【０００７】
タイミングコントローラ５１は、イメージセンサ７０から入力される画像データ（入力画像）を、垂直同期信号ＶｓｙｎｃがＬの間にデータバッファ５３に１ライン毎に蓄積記憶させる。このため、期間Ａ１の間にイメージセンサ７０が露光した入力画像Ａ１は、期間Ａ２の間にデータバッファ５３に１ライン毎に蓄積されてＲＡＭ３０に転送される。ＣＰＵ１０は、入力画像Ａ１のフレーム画像３１をデコードすると共に、入力画像Ａ１の露光量に基づいて露光設定値３３が適切な値となるように計算する。そして、露光設定値３３を“Ｂ”に更新して再度露光する。
【０００８】
期間Ａ２に露光された入力画像Ａ１−１がＲＡＭ３０に転送されている間、即ち期間Ｂ１の間に、イメージセンサ７０は露光設定値３３の“Ｂ”で露光を行う。イメージセンサ７０は、図３４（ｂ）に示すように同じ“Ａ”の露光設定値３３で２回の露光を行っているため、入力画像Ａ１−１は、入力画像Ａとほぼ同等の画像データとなる。
【０００９】
このため、ＣＰＵ１０が有するデコーダは、入力画像Ａ１，Ｂ１，Ｃ１，・・・，で逐次更新されるフレーム画像３１を１つおきにデコードする。このデコードに失敗した場合、即ち、露光設定値３３が適切でなかった場合は、図３５のように、ある環境下における最適な露光設定値の範囲（以下、この範囲を「最適露光範囲」という。）Ｒ１００に到達するまで、露光設定値３３を計算して更新していく。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、例えば、２次元コードのセルの大きさは、コード形式や情報量等によって変化する。しかし、特許文献１及び２のコード読み取り装置は、１つの単焦点のレンズを用いているため、当該レンズが読み取り可能な焦点距離の範囲内でデジタルコードの読み取りを行わなければならず、デジタルコード上にスポット光が照射されるように、デジタルコードとレンズ７１との距離をわざわざ調整しなければならない。
【００１１】
一般的なカメラのように、複数のレンズを組み合わせることで焦点を自動調整するオートフォーカス機能を採用すれば、ユーザは、手動で調整しなくてもよくなる。しかし、オートフォーカス機能での単焦点レンズの組み合わせのバランス調整は、非常に精細であるため時間がかかってしまい、更にその実現コストが嵩んでしまう。
【００１２】
また、例えば、近接用及び遠方用それぞれの単焦点レンズを備えることで、近接したデジタルコードと、遠方のデジタルコードとの両方の読み取りが可能となるが、この場合、各レンズを備える位置によって、レンズそれぞれが捉えるデジタルコードの構図が異なってしまう。このため、一方のレンズではデジタルコードの全体像を捉えることができても、他方では欠けが生じてしまうといったことがあった。
【００１３】
また、例えば、屋内の暗い場所でデジタルコードの読み取りを行った際に露光量が足りなく明瞭な画像データが得られないといったように、ユーザがコード読み取り装置を使用する環境によってイメージセンサの露光量は変動してしまい、デコードが困難になってしまう。
【００１４】
そのため、コード読み取り装置の使用環境における最適露光範囲Ｒ１００に到達するように初期値の露光設定値３３を逐次計算して更新していくが、図３５に示すように、露光設定値３３の初期値に対して最適露光範囲Ｒ２００が遠い場合、露光設定値３３が当該最適露光範囲Ｒ２００に到達するには時間がかかってしまう。
【００１５】
このため、最適露光範囲への到達時間を早めて、デジタルコードの読み取りを高速にするには、露光設定値３３や照明ＬＥＤ７３等の設定を、ユーザの使用環境に合わせて変更しなければならず、その操作は煩雑であり、専門的な知識が必要となってしまう。
【００１６】
また、図３４（ｂ）に示すように、イメージセンサ７０により生成された画像データを随時ＲＡＭ３０に転送することで、フレーム画像３１を逐次更新している。しかし、その転送される画像データがシステムバス９０上を占有する割合、即ち占有率が多くなってしまうため、コード読み取り装置１００全体の処理性能の負荷が大きくなり、更には消費電力の増大を引き起こしてしまう。このため、例えば、データ通信量の多いハンディターミナル等にコード読み取り装置を適用した場合、更にシステムバス９０の占有率が増大し、更なる処理性能の低下を招いてしまった。
【００１７】
本発明の課題は、コード読み取り装置の性能向上を図ることである。
【課題を解決するための手段】
【００１８】
請求項１記載の発明は、複数の露光値を記憶する露光値記憶手段と、異なる複数の初期値を、前記露光値記憶手段が記憶する複数の露光値として設定する初期設定手段と、前記露光値記憶手段により記憶された複数の露光値それぞれに基づいてデジタルコードの光学像の露光を行う露光手段と、この露光手段による露光の結果に基づいて前記露光値記憶手段により記憶されている複数の露光値を個々に更新する露光値更新手段と、この露光値更新手段により更新された露光値が最適露光範囲に到達するまで、前記露光手段及び前記露光値更新手段による一連の処理を繰り返す繰り返し制御手段とを備えることを特徴とする。
【発明の効果】
【００１９】
請求項１記載の発明によれば、異なる複数の初期値を記憶した露光値記憶手段の複数の露光値に基づいて露光を行って、当該露光値の更新を繰り返すため、複数の露光値が最適露光範囲に到達するまでの時間を短くすることができる。
【００２０】
請求項２記載の発明によれば、露光手段が露光可能な露光値の最大値と最小値とを初期値として設定することで、露光値が最適露光範囲に到達するまでの時間を安定させることができ、また、例えば、最適露光範囲が高かった場合には、最大値を設定した露光値がより早く最適露光範囲に到達するといったように、使用環境によっては高速に最適露光範囲に到達することができる。
【００２１】
請求項３記載の発明によれば、露光値更新手段により更新された露光値が最適露光範囲に到達した際の露光値を初期値に設定するため、コード読み取り装置の使用環境が変わらない場合は、より高速に最適露光範囲に到達することができる。
【００２２】
請求項４記載の発明によれば、最適露光値の履歴の平均値を初期値に設定することで、露光値が最適露光範囲に到達するまでの時間を、コード読み取り装置の使用環境に合わせて早めることができる。
【００２３】
請求項５記載の発明によれば、最適露光値の履歴の平均値、即ち、コード読み取り装置の使用環境に合わせた適正な露光値でデジタルコードの露光を行うことができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明のコード読み取り装置の実施形態について図１〜図３３を参照して詳細に説明する。コード読み取り装置は、イメージセンサで露光・結像することにより生成したデジタルコードの画像データをデコードすることで、当該デジタルコードによって符号化された情報（例えば、価格やシリアル番号等の商品管理情報、ＵＲＬやＥ−ｍａｉｌアドレス等がある。）を解読する装置である。
【００２５】
デジタルコードのコード形式には、１次元コード（バーコード）のＪＡＮ（Japan Article Number）、ｃｏｄｅ３９、ＩＴＦ（Interleaved Two of Five）等や、２次元コードのＱＲ（Quick Response）コード(ＱＲコードは（株）デンソーウェーブの登録商標)、ＰＤＦ４１７(ＰＤＦ４１７はシンボルテクノロジー社の登録商標)、ＤａｔａＭａｔｒｉｘコード(ＤａｔａＭａｔｒｉｘコードはデータマトリックス社の登録商標)、Ｍａｘｉコード(ＭａｘｉコードはＵＳＰ社の登録商標)等があり、ＣＰＵは、イメージセンサにより生成された画像データに対して、コード形式に適応したデコードを行う。
【００２６】
このコード読み取り装置は、例えば、ＰＯＳ（Point of Sales）システムのバーコードリーダ、バーコードスキャナ等に適用されるが、その適用例はこれに限られず、例えば、ハンディターミナルや携帯電話、ＰＤＡ（Personal Digital Assistant）の各種電子機器に適宜適用可能である。
【００２７】
〔第１実施形態〕
先ず、コード読み取り装置１の第１実施形態について図１〜図１０を参照して説明する。図１は、コード読み取り装置１の機能構成の一例を示すブロック図である。図１に示すようにコード読み取り装置１は、ＣＰＵ１０と、ＲＯＭ２０と、ＲＡＭ３０と、専用ＡＳＩＣ５０とがシステムバス９０に接続されて構成されている。
【００２８】
ＣＰＵ１０は、ＲＯＭ２０に記憶されたプログラムに基づいた処理を実行し、各機能部への指示やデータの入出力を行うことで、コード読み取り装置１を統括的に制御する。また、ＣＰＵ１０は、フレーム画像３１のデコードを行うデコーダとして機能する。
【００２９】
このフレーム画像３１は、第１イメージセンサＳａ及び第２イメージセンサＳｂによって生成されたデジタルコードの画像データである。ＣＰＵ１０は、フレーム画像３１を２値化した結果、デジタルコードが１次元コードであった場合、バーコードの長さ及び幅と、隣り合うバーの間隔とを算出して、その算出結果を元に情報の復元を行い、また、デジタルコードが２次元コードであった場合は、白黒のデータセルの配置パターンを元にデコード（復元）を行う。また、デコードして得られた情報に対して、フレーム画像３１のデジタルコードに含まれるチェックディジットによって誤り訂正を行う。尚、ＣＰＵ１０のデコード機能は、ＣＰＵ１０とは別個の電子回路でハード的に実現することとしてもよい。
【００３０】
ＲＯＭ２０は、各種初期設定やハードウェアの検査等を行うための初期プログラムや、コード読み取り装置１の動作に係る各種機能を実現するためのプログラムを格納する。
【００３１】
ＲＡＭ３０は、ＣＰＵ１０が実行する各種プログラムの実行に係るデータ等を一時的に保持する記憶領域である。図１によれば、ＲＡＭ３０は、上述したフレーム画像３１を記憶している。
【００３２】
専用ＡＳＩＣ５０は、コード読み取り装置１のために独自に設計・製造されたＬＳＩ（Large Scale Integration）であり、レンズユニット４０が有する第１イメージセンサＳａ及び第２イメージセンサＳｂそれぞれの露光制御と、これらのイメージセンサＳａ及びＳｂにより生成された画像データのＲＡＭ３０への転送とを行う。
【００３３】
図２にレンズユニット４０の構成例を示す。レンズユニット４０は、撮影レンズ４１と、プリズムＰと、近接用レンズ４３ａと、遠方用レンズ４３ｂと、第１イメージセンサＳａと、第２イメージセンサＳｂとを備えて構成される。
【００３４】
プリズムＰは、例えば、ハーフプリズムやペンタプリズム等により構成され、撮影レンズ４１を透過した入力画像Ｆｇの光路を図２の矢印Ｖａ及びＶｂの方向に分岐する。プリズムＰにより分岐された入力画像Ｆｇは、近接用レンズ４３ａ及び遠方用レンズ４３ｂそれぞれに投射される。
【００３５】
近接用レンズ４３ａと遠方用レンズ４３ｂとは、異なる焦点を持つ単焦点レンズであり、図３に示す読取深度特性及び分解能特性を有している。読取深度特性は、デジタルコードの読み取りが可能となるレンズから当該デジタルコードまでの距離（深さ）、即ちレンズがサポートする焦点距離の特性である。
【００３６】
図３（ａ）に示すように、近接用レンズ４３ａの読取深度特性はおよそ３０〜３５０ｍｍである。これは、近接用レンズ４３ａからの距離が約３０〜３５０ｍｍのデジタルコードをピンぼけすることなく明瞭に読み取りできることを表している。また遠方用レンズ４３ｂの読取深度特性はおよそ１３０〜６３０ｍｍである。
【００３７】
分解能特性は、読み取り及び識別が可能となるデジタルコードのバーの細さ又はセルの大きさの特性である。図３（ｂ）に示すように、近接用レンズ４３ａの分解能特性はおよそ０．０８〜０．３８ｍｍであり、遠方用レンズ４３ｂは、およそ０．２５〜１．２ｍｍである。
【００３８】
これは、例えば、２次元コードのセルの一辺の長さが０．８〜０．３８ｍｍである場合は、近接用レンズ４３ａを透過したデジタルコードのセルが識別可能であり、０．２５〜１．２ｍｍである場合は、遠方用レンズ４３ｂを透過したデジタルコードのセルが識別可能であることを表している。このように異なる特性を持つ近接用レンズ４３ａ及び遠方用レンズ４３ｂそれぞれに、撮影レンズ４１により捉えられた入力画像Ｆｇが投射されることとなる。
【００３９】
第１イメージセンサＳａ及び第２イメージセンサＳｂは、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサやＣＣＤ（Charge Coupled Device）の撮像素子を備えて構成され、デジタルコードの光学像、即ち入力画像Ｆｇを露光・走査することで、当該入力画像Ｆｇを光学的に読み取り（光電変換して）、画像データを生成する。
【００４０】
第１イメージセンサＳａは、近接用レンズ４３ａを透過した入力画像Ｆｇａの画像データを生成し、第２イメージセンサＳｂは、遠方用レンズ４３ｂを透過した入力画像Ｆｇｂの画像データを生成する。このため、レンズユニット４０全体として読取深度特性は、図３（ａ）のように近接用レンズ４３ａ及び遠方用レンズ４３ｂの読取深度特性それぞれを合成したおよそ３０〜６３０ｍｍとなり、分解能特性は、図３（ｂ）のように近接用レンズ４３ａ及び遠方用レンズ４３ｂの分解能特性を合成したおよそ０．０８〜１．２ｍｍとなる。
【００４１】
また、各イメージセンサは、水晶発振器等の発振回路を有して構成され、ピクセルクロック信号ＰＣＬＫ、水平同期信号Ｈｓｙｎｃ及び垂直同期信号Ｖｓｙｎｃを内部的に生成して、こられの信号に基づいて、ピクセル単位、ライン毎及びフレーム単位の走査を制御する。ピクセルクロック信号ＰＣＬＫは、１ピクセル（例えば、８ｂｉｔのデータ）毎の走査を制御するクロック信号である。水平同期信号Ｈｓｙｎｃは１ライン毎の走査を制御する同期信号、垂直同期信号Ｖｓｙｎｃは１フレーム毎の走査を制御する同期信号である。
【００４２】
イメージセンサは、入力される光学像をピクセルクロック信号ＰＣＬＫに基づいて露光・走査して、ピクセル単位の画像データを生成して専用ＡＳＩＣ５０に出力する。そして、水平同期信号ＨｓｙｎｃがＨ（Ｈｉｇｈ）の間に、ピクセルクロック信号ＰＣＬＫに基づいて１ピクセルずつ水平方向に走査することで１ラインの走査を行い、Ｌに切り替わったら当該走査するラインを垂直方向にずらす。尚、このＬの間は無効データ（ダミーデータ）を出力する。このため、専用ＡＳＩＣ５０は、水平同期信号Ｈｓｙｎｃに同期してデータを取得することで、ライン単位の有効な画像データのみを取得することができる。
【００４３】
また、イメージセンサは、垂直同期信号ＶｓｙｎｃがＬの間に、ピクセルクロック信号ＰＣＬＫ及び水平同期信号Ｈｓｙｎｃに基づいて走査して得られた１フレーム分の画像データを専用ＡＳＩＣ５０に出力し、Ｈの間に無効データを出力する。このため、専用ＡＳＩＣ５０は、垂直同期信号Ｖｓｙｎｃに同期してデータを取得することで、フレーム単位の有効な画像データのみを取得することができる。
【００４４】
第１イメージセンサＳａ及び第２イメージセンサＳｂそれぞれは、生成したピクセルクロック信号ＰＣＬＫ、水平同期信号Ｈｓｙｎｃ及び垂直同期信号Ｖｓｙｎｃを専用ＡＳＩＣ５０のセレクタ６１に出力する。
【００４５】
専用ＡＳＩＣ５０は、図１に示すように、タイミングコントローラ５１と、データバッファ５３と、ＲＡＭ３０に直接アクセスしてデータの読み書きを行うＤＭＡ５５と、ＡＥ（Auto Exposure）計算器５７、イメージセンサコントローラ５９及びセレクタ６１を備えて構成される。
【００４６】
セレクタ６１は、第１イメージセンサＳａから入力される入力画像Ｆｇａと、第２イメージセンサＳｂから入力される入力画像Ｆｇｂとを交互に選択して、データバッファ５３に出力する。
【００４７】
より具体的には、第１イメージセンサＳａ及び第２イメージセンサＳｂから出力される垂直同期信号Ｖｓｙｎｃに基づいて、図４に示すような周期の矩形波のセレクト信号６１ａを生成する。そして、このセレクト信号６１ａがＨのときに、第１イメージセンサＳａから入力される入力画像Ｆｇａの画像データをデータバッファ５３に出力する。また、このとき、第１イメージセンサＳａから入力されるピクセルクロック信号ＰＣＬＫ、水平同期信号Ｈｓｙｎｃ及び垂直同期信号Ｖｓｙｎｃをタイミングコントローラ５１に出力する。
【００４８】
一方、セレクト信号６１ａがＬのときは、第２イメージセンサＳａから入力される入力画像Ｆｇｂの画像データをデータバッファ５３に、ピクセルクロック信号ＰＣＬＫ、水平同期信号Ｈｓｙｎｃ及び垂直同期信号Ｖｓｙｎｃをタイミングコントローラ５１に出力する。
【００４９】
タイミングコントローラ５１は、セレクタ６１から入力されるピクセルクロック信号ＰＣＬＫ、水平同期信号Ｈｓｙｎｃ及び垂直同期信号Ｖｓｙｎｃに基づいて、データバッファ５３に入力される画像データの蓄積（バッファリング）を制御する回路部である。
【００５０】
データバッファ５３は、イメージセンサによって読み取られた入力画像の画像データを一旦蓄積した後にＤＭＡ５５に出力する回路部である。図１によれば、データバッファ５３は、バッファセレクタＢＳと、第１ラインバッファＬＢａと、第２ラインバッファＬＢｂとを備えて構成される。バッファセレクタＢＳは、セレクタ６１を介して入力された画像データを蓄積させるラインバッファを択一的に選択して切り替える回路部である。
【００５１】
ここで、タイミングコントローラ５１及びデータバッファ５３の動作を簡単に説明すると次のようになる。先ず、バッファセレクタＢＳは、タイミングコントローラ５１の制御に基づいて、セレクタ６１を介して入力される１ピクセルずつの画像データを第１ラインバッファＬＢａ及びＡＥ計算器５７に出力する。
【００５２】
そして、バッファセレクタＢＳが、第１ラインバッファＬＢａに１ライン分の画像データを出力した後に、タイミングコントローラ５１の制御に基づいてその出力先を第２ラインバッファＬＢｂに切り替えて、次の１ライン分の画像データを出力する。第２ラインバッファＬＢｂに画像データを蓄積している間、第１ラインバッファＬＢａに蓄積された１ライン分の画像データは、ＤＭＡ５５を介してＲＡＭ３０に転送されて、フレーム画像３１のデータ領域に書き込まれる。次いで、バッファセレクタＢＳが第１ラインバッファＬＢａに出力を切り替えると、第２ラインバッファＬＢｂに蓄積された画像データがＤＭＡ５５を介してＲＡＭ３０に書き込まれる。
【００５３】
このように、第１ラインバッファＬＢａ及び第２ラインバッファＬＢｂにはライン単位の画像データが記憶され、ＲＡＭ３０のフレーム画像３１のデータ領域には、イメージセンサで生成さえた入力画像の画像データが１ラインずつ書き込まれて、結果的に１フレーム分の画像データがフレーム画像３１として記憶されることとなる。
【００５４】
また、セレクタ６１が、第１イメージセンサＳａと、第２イメージセンサＳｂとを１フレームおきに交互に選択することで、フレーム画像３１は、第１イメージセンサＳａにより読み取られた入力画像Ｆｇａの画像データと、第２イメージセンサＳｂにより読み取られた入力画像Ｆｇｂの画像データとで交互に更新される。
【００５５】
ＡＥ計算器５７は、バッファセレクタＢＳから入力される画像データの露光量が適正露光となるように、露光値（シャッター速度及び絞り値）を計算する回路部である。イメージセンサコントローラ５９は、Ｉ２Ｃインターフェイス等により構成され、ＡＥ計算器５７により計算された露光値を、セレクタ６１を介して第１イメージセンサＳａ及び第２イメージセンサＳｂに出力し、各イメージセンサの露光設定値を変更する。このとき、セレクタ６１はセレクト信号６１ａに基づいて選択しているイメージセンサに対して、当該露光値を出力する。この露光値は、イメージセンサの次に露光・走査するフレームの入力画像の露光・走査に対して反映される。
【００５６】
次に、図４のタイムチャートを用いて、コード読み取り装置１の具体的な動作を説明する。尚、同図において、入力画像の読み取りを第１イメージセンサＳａから先に行うこととしているが、第２イメージセンサＳｂから行うこととしてもよく、例えば、デジタルコードとレンズユニット４０との距離を４００ｍｍ以上離して使用されるコード読み取り装置１の場合は、第２イメージセンサＳｂから行うようにしてもよく、その順序は適宜変更可能である。
【００５７】
先ず、第１イメージセンサＳａは、垂直同期信号ＶｓｙｎｃがＬの間に露光を行って、入力画像Ａ１，Ａ１−１，Ａ２，Ａ２−１，・・・，という順次で読み取りを行う。上述したように露光設定は２フレームおきに更新されるため、入力画像Ａ１と入力画像Ａ１−１と略同一の画像データであり、入力画像Ａ２と入力画像Ａ２−１とが略同一となる。また、第２イメージセンサＳｂも垂直同期信号Ｖｓｙｎｃに基づいて、入力画像Ｂ１，Ｂ１−１，Ｂ２，・・・，と順次読み取りを行う。
【００５８】
セレクタ６１は、セレクト信号６１ａがＨの間に第１イメージセンサＳａを選択して、入力される画像データをデータバッファ５３及びＤＭＡ５５を介してＲＡＭ３０に転送させる。従って、第１イメージセンサＳａが時刻ｔ１に露光開始して読み取られた入力画像Ａ１の画像データは、その読み取り終了後の時刻ｔ３にＲＡＭ３０に転送してフレーム画像３１にとして記憶される。
【００５９】
そして、時刻ｔ５には、セレクト信号６１ａがＬとなり、第２イメージセンサＳａが読み取った入力画像Ｂ１の画像データがＲＡＭ３０に転送される。このため、図４に示すようにＲＡＭ３０のフレーム画像３１は、入力画像Ａ１，Ｂ１，Ａ２，Ｂ２，・・・，といったように第１イメージセンサＳａ及び第２イメージセンサＳｂにより読み取られた入力画像の画像データで交互に更新される。また、露光設定値が変わらないまま露光されて得られた入力画像Ａ１−１や入力画像Ｂ１−１は、ＲＡＭ３０には転送されない。
【００６０】
ＣＰＵ１０は、入力画像Ａ１，Ｂ１，Ａ２，・・・，といった順に更新されていくフレーム画像３１を順次デコードして、フレーム画像３１のデジタルコードで符号化された情報を解読・取得する。
【００６１】
以上、第１実施形態によれば、プリズムＰを介することで、異なる焦点を持つ近接用レンズ４３ａと遠方用レンズ４３ｂとに、撮影レンズ４１を透過した入力画像Ｆｇを投射することができるため、第１イメージセンサＳａ及び第２イメージセンサＳｂそれぞれに入力されるデジタルコードの画像データは同一であり、その構図がずれてしまうことがない。
【００６２】
また、焦点を調整するための調整機構のような駆動部を設けることなく、２つのレンズで入力画像を捉えることができるため、落下や振動、衝撃といった外的要因による故障を減らすことができ、電源消費も少なくなる。
【００６３】
また、近接用レンズ４３ａを透過した入力画像Ｆｇａと、遠方用レンズ４３ｂを透過した入力画像Ｆｇｂとで交互にフレーム画像３１が更新されるため、異なる画質のフレーム画像３１を順次デコードできる。このため、従来のコード読み取り装置１００ように次のデコードまでの空き時間を無駄にすることがなく、デコードの効率化が図れる。
【００６４】
また、近接用レンズ４３ａ及び遠方用レンズ４３ｂを透過した入力画像Ｆｇａ及びＦｇｂをそれぞれデコードするため、コード読み取り装置１全体での見かけ上の読取深度特性及び分解能特性が広くなる。また、焦点を合わせるためのオートフォーカスを設ける必要がないため、高速に入力画像を読み取ることができる。
【００６５】
尚、レンズユニット４０は、上述した図２の構成例に限らず適宜変更可能である。次に、図５〜図７を用いてレンズユニット４０の構成を変えた場合の変形例を説明する。尚、以下の説明において、第１実施形態のコード読み取り装置１と同一の構成要素には、同一の符号を付してその詳細な説明を省略する。
【００６６】
〔第１実施形態の第１変形例〕
図５（ａ）は、第１変形例におけるレンズユニット４０ａの構成の一例を示す図である。
図５（ａ）によれば、レンズユニット４０ａは、撮影レンズ４１、プリズムＰ１、近接用レンズ４３ａ、遠方用レンズ４３ｂ、中域用レンズ４３ｃ及び第１〜第３イメージセンサＳａ〜Ｓｃを備えて構成される。
【００６７】
プリズムＰ１は、例えば、ダイクロイックプリズム等により構成され、撮影レンズ４１を透過した入力画像Ｆｇの光路を図５（ａ）のように３方向に分岐する。中域用レンズ４３ｃは、近接用レンズ４３ａ及び遠方用レンズ４３ｂとは異なる焦点を持つレンズであり、第３イメージセンサＳｃは、中域用レンズ４３ｃを透過した入力画像Ｆｇｃの読み取りを行う。
【００６８】
例えば、約３０〜３５０ｍｍの読取深度特性を持つ近接用レンズ４３ａと、約３００ｍｍ〜６５０ｍｍの中域用レンズ４３ｃと、約６００〜９００ｍｍの遠方用レンズ４３ｂとによってレンズユニッ４０１を構成することにより、全体の読取深度特性を約３０〜９００ｍｍと広くすることができる。
【００６９】
また、個々のレンズの読取深度特性の幅が狭い高性能なレンズを採用することで、レンズユニット４０の性能向上が期待でき、また、同様の効果が分解能特性についても得られる。尚、図５（ｂ）のように、レンズユニット４０ｂとして、近接用レンズ４３ａ、遠方用レンズ４３ｂ及び中域用レンズ４３ｃと、プリズムＰ２とを一体的に形成することとしてもよい。
【００７０】
〔第１実施形態の第２変形例〕
図６は、第２変形例におけるレンズユニット４０ｃの構成の一例を示す図である。図６によれば、レンズユニット４０ｃは、撮影レンズ４１と、反射ミラーＭと、近接用レンズ４３ａと、遠方用レンズ４３ｂと、第１及び第２イメージセンサＳａ及びＳｂとを備えて構成され、中空状のＴ字型に形成されている。
【００７１】
反射ミラーＭは、例えば、ステップモーター等により回転軸Ｐｂ１を中心に左右に振動・回転可能に構成され、撮影レンズ４１を透過した入力画像Ｆｇを矢印Ｖｃ及びＶｄ方向に反射することで、当該入力画像Ｆｇを近接用レンズ４３ａ及び遠方用レンズ４３ｂに投射する。
【００７２】
より具体的には、先ず、入力画像Ｆｇを矢印Ｖｃの方向へ反射させるために、入力画像Ｆｇの入射角が４５度になるような角度で、反射ミラーＭを図６のように一時停止する。そして、図６の実線で示した反射ミラーＭを、波線で示す反射ミラーＭまで時計回りに９０度回転させて一時停止する。これにより、入力画像Ｆｇは矢印Ｖｄの方向に反射して、遠方用レンズ４３ｂに入力される。
【００７３】
次に、波線で示す反射ミラーＭを反時計回りに９０度回転させて停止することで、矢印Ｖｃの方向に入力画像Ｆｇを反射させる。このように、反射ミラーＭの時計回り及び反時計回りの９０度回転を繰り返すことで、入力画像Ｆｇは近接用レンズ４３ａ及び遠方用レンズ４３ｂに交互に投射される。この回転の周期を短くすることで、入力画像Ｆｇの高速な読み取りが可能となる。
【００７４】
このように第２変形例によれば、反射ミラーＭを所定周期で回転することで、入力画像Ｆｇを近接用レンズ４３ａ及び遠方用レンズ４３ｂに交互に投射する。このため、第１イメージセンサＳａ及び第２イメージセンサＳｂの画像データの出力も交互となるため、画像データを選択するための第１実施形態のセレクタ６１を設ける必要がなくなる。従って、専用ＡＳＩＣ５０の回路構成の小型化及び簡略化ができる。
【００７５】
尚、分光手段をプリズムや反射鏡により実現することとしたが、その実現方法は適宜公知技術を採用可能であり、例えば、光ファイバーを用いて撮影レンズ４１を透過した入力画像Ｆｇの光路を分岐することとしてもよい。
【００７６】
〔第１実施形態の第３変形例〕
次に、図７（ａ）に、第３変形例におけるレンズユニット４０ｄの構成例を示す。図７（ａ）によれば、レンズユニット４０ｄは、撮影レンズ４１と、スライドユニットＳＵと、イメージセンサ４５とを備えて構成される。
【００７７】
スライドユニットＳＵは、図７（ａ）に示すように上下に区切られており、上側に近接用レンズ４３ａ、下側に遠方用レンズ４３ｂが設けられている。スライドユニットＳＵは、所定の周期で上下にスライド（振動）することで、撮影レンズ４１を透過した入力画像Ｆｇは、近接用レンズ４３ａと遠方用レンズ４３ｂとに交互に投射される。このため、イメージセンサ４５には、近接用レンズ４３ａを透過した入力画像Ｆｇと、遠方用レンズ４３ｂを透過した入力画像Ｆｇとが交互に入力される。
【００７８】
このように第３変形例によれば、近接用レンズ４３ａ及び遠方用レンズ４３ｂをスライドさせることで、入力画像Ｆｇの光路の分岐を行うことなく、１つのイメージセンサ４５に近接用レンズ４３ａ及び遠方用レンズ４３ｂそれぞれを透過した入力画像Ｆｇを投射することができる。このため、イメージセンサ４５を複数設ける必要がなくなる。
【００７９】
〔第１実施形態の第４変形例〕
次に、図７（ｂ）に、第４変形例におけるレンズユニット４０ｅの構成例を示す。図７（ｂ）によれば、レンズユニット４０ｅは、撮影レンズ４１と、回転盤４７と、イメージセンサ４５とを備えて構成される。
【００８０】
回転盤４７は、薄板状の円盤型に形成され、異なる焦点をそれぞれ持つ第１レンズ４９ａ（近接用レンズ４３ａ）、第２レンズ４９ｂ（遠方用レンズ４３ｂ）、第３レンズ４９ｃ及び第４レンズ４９ｄが回転軸Ｐｂ３を中心にして配設されている。この回転盤４７は、回転軸Ｐｂ３を中心に回転可能に構成される。このため、撮影レンズ４１を透過した入力画像Ｆｇは、回転盤４７の回転周期の応じて、第１レンズ４９ａ、第２レンズ４９ｂ、第３レンズ４９ｃ、第４レンズ４９ｄといった順に透過して、イメージセンサ４５に投射される。
【００８１】
このように第４変形例によれば、回転盤４７上に複数のレンズを配設することができるため、レンズユニット４０ｅの読取深度特性及び分解能特性の幅を更に広げることができ、また、第１変形例のように、個々のレンズの焦点を狭小にしてレンズユニット４０ｅの精度を上げることもできる。また、第３変形例と同様に、入力画像Ｆｇの光路の分岐を行わなくてもよいため、イメージセンサを複数設ける必要がない。
【００８２】
次に第５及び第６変形例について図８〜図１０を用いて説明する。第１実施形態におけるコード読み取り装置１は、第１イメージセンサＳａ及び第２イメージセンサＳｂそれぞれに生成されたデジタルコードの画像データを、セレクタ６１によって切り替えて順次取得することとしたが、第５及び第６変形例におけるコード読み取り装置１ａ及び１ｂは、その画像データを個々に独立した経路で取得するものである。尚、以下の説明において、第１実施形態のコード読み取り装置１と同一の構成要素には同一の符号を付して、その説明を省略する。
【００８３】
〔第１実施形態の第５変形例〕
図８に、第５変形例におけるコード読み取り装置１ａのブロック図を示す。図８によれば、コード読み取り装置１ａは、ＣＰＵ１０、ＲＯＭ２０、ＲＡＭ３０及び専用ＡＳＩＣ５０ａがシステムバス９０に接続されて構成されている。専用ＡＳＩＣ５０ａは、第１系統ブロック５０ａと、第２系統ブロック５０ｂと、ＤＭＡ５５と、ＡＥ計算器５７と、イメージセンサコントローラ５９とを備えて構成される。
【００８４】
第１系統ブロック５０ａは、第１イメージセンサＳａにより生成された画像データを第１フレームメモリＦＭａに記憶させるための処理系統であり、第２系統ブロック５０ｂは、第２イメージセンサＳｂにより生成された画像データを第２フレームメモリＦＭｂに記憶させるための処理系統である。第１フレームメモリＦＭａ及び第２フレームメモリＦＭｂは、ＲＡＭやフラッシュメモリ等により構成される記憶領域である。
【００８５】
第１系統ブロック５０ａは、タイミングコントローラ５１ａと、データバッファ５３ａと、メモリコントローラＭＣａとを有して構成される。タイミングコントローラ５１ａは、第１イメージセンサＳａから入力されるピクセルクロック信号ＰＣＬＫ、水平同期信号Ｈｓｙｎｃ及び垂直同期信号Ｖｓｙｎｃに基づいて、データバッファ５３ａに画像データを所定のデータ量分（例えば、１ライン分）蓄積させる。
【００８６】
メモリコントローラＭＣａは、第１フレームメモリＦＭａに対するデータの書き込みと、ＣＰＵ１０からの第１フレームメモリＦＭａへのアクセスとを制御する。より具体的には、１フレーム分の画像データがデータバッファ５３ａに入力されている間は、当該画像データを第１フレームメモリＦＭａに記憶させる。そして、１フレーム分の画像データの第１フレームメモリＦＭａへの記憶を終了すると、ＣＰＵ１０からの第１フレームメモリＦＭａへのアクセスを許可し、その間、第１フレームメモリＦＭａへの書き込みは行わない。これにより、ＣＰＵ１０は、第１イメージセンサＳａにより読み取られたデジタルコードの画像データのデコードを行う。
【００８７】
また、データバッファ５３ａは、第１イメージセンサＳａから入力された画像データをＡＥ計算器５７に出力する。ＡＥ計算器５７は、当該画像データから露光値を再計算し、当該露光値を露光設定値として第１イメージセンサＳａにイメージセンサコントローラ５９を介して出力する。
【００８８】
第２系統ブロック５０ｂは、タイミングコントローラ５１ｂと、データバッファ５３ｂと、メモリコントローラＭＣｂとを有して構成される。尚、第２系統ブロック５０ｂの処理は、第１系統ブロック５０ａと同様であるので、その説明を省略する。
【００８９】
以上、第５変形例によれば、第１イメージセンサＳａ及び第２イメージセンサＳｂそれぞれにより生成されたデジタルコードの画像データを第１フレームメモリＦＭａ及び第２フレームメモリＦＭｂにそれぞれ記憶する。このため、コード読み取り装置１ａのシステムメモリとして使用されるＲＡＭ３０の空き領域が増えるため、コード読み取り装置１ａの負荷を低減させることができる。尚、このようなコード読み取り装置１ａは、無線通信機能等の負荷の高い処理を行うハンディターミナル等に適用することで、その効果が好適に作用する。
【００９０】
〔第１実施形態の第６変形例〕
図９に、第６変形例におけるコード読み取り装置１ｂのブロック図を示す。図９によれば、コード読み取り装置１ｂは、ＣＰＵ１０、ＲＯＭ２０、ＲＡＭ３０及び専用ＡＳＩＣ５０ｂがシステムバス９０に接続されて構成されている。
【００９１】
専用ＡＳＩＣ５０ｂは、第１系統ブロック５２ａと、第２系統ブロック５２ｂと、ＤＭＡ５５と、ＡＥ計算器５７と、イメージセンサコントローラ５９と、メモリコントローラＭＣと、画像合成プロセッサ８２とを備えて構成される。
【００９２】
第１系統ブロック５２ａは、第１イメージセンサＳａにより生成された画像データを１ラインずつ画像合成プロセッサ８２に出力するための処理系統であり、第２系統ブロック５０ｂは、第２イメージセンサＳｂにより生成された画像データを１ラインずつ画像合成プロセッサ８２に出力するための処理系統である。
【００９３】
第１系統ブロック５２ａは、タイミングコントローラ５１ｃと、バッファセレクタＢＳａと、第１ラインバッファＬＢ１ａと、第２ラインバッファＬＢ２ａとを有して構成される。タイミングコントローラ５１ｃは、第１イメージセンサＳａから入力されるピクセルクロック信号ＰＣＬＫ、水平同期信号Ｈｓｙｎｃ及び垂直同期信号Ｖｓｙｎｃに基づいて、バッファセレクタＢＳａのラインバッファの選択と、画像データの出力とを制御する。
【００９４】
バッファセレクタＢＳａは、第１イメージセンサＳａから入力されるピクセル単位の画像データを第１ラインバッファＬＢ１ａ及び第２ラインバッファＬＢ１ｂに交互に１ラインずつ出力する。このとき、タイミングコントローラ５１ｃは、垂直同期信号Ｖｓｙｎｃに基づいて、その画像データの出力先を第１ラインバッファＬＢ１ａと第２ラインバッファＬＢ２ａとで交互に切り替えさせる。第１ラインバッファＬＢ１ａ及び第２ラインバッファＬＢ２ａには順次１ラインずつの画像データが蓄積され、この画像データが画像合成プロセッサ８２に出力される。
【００９５】
第２系統ブロック５２ｂは、タイミングコントローラ５２ｄ、バッファセレクタＢＳｂと、第１ラインバッファＬＢ１ｂと、第２ラインバッファＬＢ２ｂとを有して構成される。尚、第２系統ブロック５２ｂの処理は第１系統ブロック５２ａと同様であるので、その説明を省略する。
【００９６】
画像合成プロセッサ８２は、第１系統ブロック５２ａ及び第２系統ブロック５２ｂそれぞれから入力される画像データを合成する回路部である。第１系統ブロック５２ａ及び第２系統ブロック５２ｂからは、バッファセレクタＢＳａ及びＢＳｂのラインバッファの選択により１ライン毎の画像データが出力される。画像合成プロセッサ８２は、この１ライン毎の画像データに画像処理を施すことで合成して、メモリコントローラＭＣを介してフレームメモリＦＭに記憶する。
【００９７】
フレームメモリＦＭは、ＲＡＭやフラッシュメモリ等により構成される記憶領域である。メモリコントローラＭＣは、図８のメモリコントローラＭＣａ及びＭＣｂと同様に、フレームメモリＦＭに対するデータの書き込みと、ＣＰＵ１０からのフレームメモリＦＭへのアクセスの制御と行う。ＡＥ計算器５７は、画像合成プロセッサ８２により合成された画像データから露光値を再計算して、第１イメージセンサＳａ及び第２イメージセンサＳｂの露光設定値を変更する。
【００９８】
例えば、図１０（ａ）のように近接用レンズ４３ａの焦点が約５０〜３００ｍｍであり、遠方用レンズ４３ｂが約４００〜１０００ｍｍであった場合に、レンズユニット４０からの距離が３５０ｍｍの地点Ｐｔにあるデジタルコードの読み取りを行うこととする。この場合、近接用レンズ４３ａ及び遠方用レンズ４３ｂのそれぞれは、地点Ｐｔのデジタルコードに対して焦点（ピント）を合わせることが難しくなる。
【００９９】
このため、近接用レンズ４３ａを透過した入力画像Ｆｇと、遠方用レンズ４３ｂを透過した入力画像Ｆｇｂとは、図１０（ｂ）のようにピンぼけしてコントラストが低くなってしまう。そこで、画像合成プロセッサ８２がこの入力画像Ｆｇａ及びＦｇｂを合成することで、図１０（ｂ）のように明瞭な合成画像Ｆｇｓが得られる。
【０１００】
このように第６変形例によれば、第１イメージセンサＳａ及び第２イメージセンサＳｂそれぞれにより生成された画像データを合成し、この合成した画像データで露光値の再計算及びデコードを行う。このため、近接用レンズ４３ａ及び遠方用レンズ４３ｂそれぞれの焦点の合わない状態でデジタルコードを読み取ったとしても、当該デジタルコードのコントラストを高めることで、デコード率を上げることができる。また、近接用レンズ４３ａ及び遠方用レンズ４３ｂの焦点をはずれた位置のデジタルコードの読み取りも可能になる。
【０１０１】
〔第２実施形態〕
次に、本発明を適用したコード読み取り装置２の第２実施形態について図１１〜図２０を用いて説明する。尚、以下の説明において、従来のコード読み取り装置１００と同一の構成要素には同一の符号を付して、その説明を省略する。
【０１０２】
図１１は、コード読み取り装置２の機能構成の一例を示すブロック図である。図１１に示すように、コード読み取り装置２は、図３４（ａ）に示したコード読み取り装置１００にモード設定スイッチＳＷを更に備えた構成である。
【０１０３】
モード設定スイッチＳＷは、コード読み取り装置２の露光モードの設定・切り替えを行うための、例えば、ディップスイッチにより構成されるスイッチである。モード設定スイッチＳＷは、設定された露光モードを識別するためのモード値をＣＰＵ１０に出力する。
【０１０４】
露光モードは、コード読み取り装置２の露光時の環境に合わせて予め定めた露光設定とＬＥＤ設定との組み合わせであり、図１２（ａ）に示すように、デフォルトモード、屋外モード、窓際モード、屋内モード及び倉庫モードの５種がある。露光設定には、最大露光値と、フレームレイトとがあり、ＬＥＤ設定には輝度がある。
【０１０５】
図１２（ｂ）は、イメージセンサ７０が単位時間当たりに露光するフレーム数であるフレームレイトと、環境照度との関係を示す図であり、この関係を利用して、露光モードの露光設定及びＬＥＤ設定を定める。
【０１０６】
例えば、フレームレイトが１０ｆｐｓ（frame per second）の場合に、デジタルコードの画像データを明瞭に取得できる環境照度は、１５０〜６００Ｌｕｘ程度であり、フレームレイトを高くする、即ち露光時間を短く（シャッター速度を速く）すると、短い時間内に必要量の光量を露光する必要があるために図１２（ｂ）のように環境照度は高くなっていく。
【０１０７】
このような、フレームレイトと環境照度との関係から、例えば、倉庫内の暗い環境での露光時には、フレームレイトを低くすることで露光時間を長くし、ＬＥＤの輝度を高くすることで、充分な露光量が得られるように倉庫モードの露光設定及びＬＥＤ設定を定める。
【０１０８】
また、図１１によれば、ＲＯＭ２０は、コード読み取りプログラム２１を記憶し、ＲＡＭ３０は、フレーム画像３１と、露光設定値３３、最大露光値３５と、フレームレイト３７と、ＬＥＤ輝度３９、モード値３２とを記憶している。コード読み取りプログラム２１は、図１３及び１４に示すコード読み取り処理を実現するためのプログラムである。
【０１０９】
露光設定値３３は、イメージセンサ７０が実際に露光する際の露光値であり、露光が行われる度に、ＣＰＵ１０によりがその露光量が適正となるように露光値が計算されて更新される。モード値３２は、モード設定スイッチＳＷから出力されるモード値であり、初期状態では「０」が記憶される。
【０１１０】
最大露光値３５、フレームレイト３７及びＬＥＤ輝度３９は、ユーザにより設定された露光モードに応じて図１２（ａ）に示す各値がＣＰＵ１０によって設定される。尚、初期状態においては、露光モードはデフォルトモードに設定されて、最大露光値３５に「１００」、フレームレイト３７に「３０」、ＬＥＤ輝度３９に「１００」が記憶される。
【０１１１】
ＣＰＵ１０は、露光設定値３３及びＬＥＤ輝度３９に基づいてイメージセンサ７０を制御して露光を行う。また、水晶発振器等の発振回路を有しており、この発振回路から出力されるクロック信号に基づいて計時を行う。
【０１１２】
次に、コード読み取り装置２の具体的な動作を、図１３及び１４のフローチャートを用いて説明する。ＣＰＵ１０は、ＲＯＭ２０に記憶されたコード読み取りプログラム２１を読み出すことで、図１３に示すコード読み取り処理を開始すると共に経過時間の計時を始める。
【０１１３】
先ず、ＣＰＵ１０は、図１３に示すコード読み取り処理において、モード設定スイッチＳＷの状態を取り込んで（ステップＳ１）、図１４に詳細を示す露光モード設定処理を開始すると（ステップＳ３）、当該スイッチにより設定された露光モードのモード値３２を取得する（ステップＳ３１）。
【０１１４】
そして、その取得したモード値３２が“１”である、即ち屋外モードに設定されたと判定した場合は（ステップＳ３３；Ｙｅｓ）、ステップＳ４１に進み、最大露光値３５に「１００」、フレームレイト３７に「３０」、ＬＥＤ輝度３９に「５０」を記憶する。そして、ステップＳ４１の実行後は露光モード設定処理を終了して図１３に示すコード読み取り処理のステップＳ５に進む。
【０１１５】
また、モード値３２が“２”である、即ち窓際モードに設定されたと判定した場合は（ステップＳ３５；Ｙｅｓ）、ステップＳ４３に進み、最大露光値３５に「２００」、フレームレイト３７に「３０」、ＬＥＤ輝度３９に「５０」を記憶する。そして、ステップＳ４３の実行後は露光モード設定処理を終了して図１３に示すコード読み取り処理のステップＳ５に進む。
【０１１６】
また、モード値３２が“３”である、即ち屋内モードに設定されたと判定した場合は（ステップＳ３７；Ｙｅｓ）、ステップＳ４５に進み、最大露光値３５に「２００」、フレームレイト３７に「２０」、ＬＥＤ輝度３９に「１００」を記憶する。そして、ステップＳ４５の実行後は露光モード設定処理を終了して図１３に示すコード読み取り処理のステップＳ５に進む。
【０１１７】
また、モード値３２が“４”である、即ち倉庫モードに設定されたと判定した場合は（ステップＳ３９；Ｙｅｓ）、ステップＳ４７に進み、最大露光値３５に「２５０」、フレームレイト３７に「１０」、ＬＥＤ輝度３９に「１００」を記憶する。そして、ステップＳ４７の実行後は露光モード設定処理を終了して図１３に示すコード読み取り処理のステップＳ５に進む。
【０１１８】
モード値３２が“１”〜“４”の何れでもない、即ち、デフォルトモードのままであると判定した場合は（ステップＳ３９；Ｎｏ）、最大露光値３５、フレームレイト３７及びＬＥＤ輝度３９の設定・記憶を行わずに露光モード設定処理を終了して図１３に示すコード読み取り処理のステップＳ５に進む。
【０１１９】
図１３のコード読み取り処理に戻ると、ＣＰＵ１０は、フレームレイト３７に基づいて露光設定値３３に初期値を設定して（ステップＳ５）、露光設定値３３及びＬＥＤ輝度３９でイメージセンサ７０を制御して入力画像の露光（画像キャプチャ）を行う（ステップＳ７）。そして、当該露光により読み取った画像データをデータバッファ５３及びＤＭＡ５５を介してＲＡＭ３０に転送させた後（ステップＳ９）、フレーム画像３１のデコードを行う（ステップＳ１１）。
【０１２０】
そして、デコードの結果、デジタルコードにより符号化された情報が取得できて、当該デコードが成功したと判定した場合（ステップＳ１３；Ｙｅｓ）、ＣＰＵ１０は、コード読み取り処理を終了するが、失敗したと判定した場合（ステップＳ１３；Ｎｏ）、計時している経過時間が例えば、５秒を超えてタイムアウトとなったか否かを判定する（ステップＳ１５）。
【０１２１】
ＣＰＵ１０は、タイムアウトになったと判定した場合（ステップＳ１５；Ｎｏ）、コード読み取り処理を終了するが、タイムアウトになっていないと判定した場合（ステップＳ１４；Ｙｅｓ）；フレーム画像３１から露光量が最適となるように露光値を再計算して、露光設定値３３を更新する（ステップＳ１７）。
【０１２２】
尚、この露光値の再計算により最大露光値３５を超えた場合は、最大露光値３５を露光設定値３３として設定することで、露光量が一定量を超えないように制限する。ＣＰＵ１０は、その計算した露光値を露光設定値３３として設定した後、ステップＳ１３及びＳ１５の判定条件を満たすまでステップＳ７〜Ｓ１７の処理を繰り返す。
【０１２３】
以上、第２実施形態によれば、コード読み取り装置２が使用される環境に応じて予め定めた露光設定及びＬＥＤ設定毎に露光モードを設けて、ユーザにより設定された露光モードに応じて最大露光値３５、フレームレイト３７及びＬＥＤ輝度３９を設定する。このため、倉庫内や屋内といったユーザのコード読み取り装置２の使用環境に応じて、露光モードを適切に設定することで、コントラストの高い画像データが得られるようになる。
【０１２４】
また、モード設定スイッチＳＷで露光モードを選択することで、コード読み取り装置２の露光設定やＬＥＤ設定が自動的に選択されるため、ユーザは、露光設定やＬＥＤ設定等の設定変更を行わなくても良く、専門的な知識を要さない。
【０１２５】
尚、第２実施形態におけるコード読み取り装置２は、ユーザのモード設定スイッチＳＷの操作に基づいて露光モードを設定することとしたが、その設定方法はこれに限らず適宜変更可能である。
【０１２６】
次に、図１５〜図２０を用いてコード読み取り装置２の変形例について説明する。尚、以下の説明において、第２実施形態のコード読み取り装置２と同一の構成要素には、同一の符号を付してその詳細な説明を省略する。また、変形例におけるコード読み取り処理において、図１３及び１４に示したフローチャートと同一の処理ステップには、同一のステップ番号を付してその説明を省略する。
【０１２７】
〔第２実施形態の第１変形例〕
先ず、コード読み取り装置２の第１変形例について説明する。第１変形例におけるコード読み取り装置２は、図１１に示したコード読み取り装置１からモード切替スイッチＳＷを削除した構成である。
【０１２８】
図１５（ａ）は、第１変形例におけるコード読み取り処理を説明するためのフローチャートである。先ず、ＣＰＵ１０は、露光設定値３３に予め定められた初期値を記憶して初期設定を行った後（ステップＳ２）、図１５（ｂ）に示す露光モード設定処理を開始する。初期状態では、モード値３２は“０”であるから、ＣＰＵ１０は、露光モード設定処理における最大露光値３５、フレームレイト３７及びＬＥＤ輝度３９の設定を行わず、デフォルトモードを保持する。
【０１２９】
そして、入力画像の露光、データ転送及びデコードを行った後に（ステップＳ５〜Ｓ１１）、デコードに失敗し、更にタイムアウトではないと判定した場合は（ステップＳ１３→Ｓ１５；Ｎｏ）、露光値の再計算を行い（ステップＳ１７）、露光モード切替処理（図１５（ｂ）参照）を開始する。
【０１３０】
ＣＰＵ１０は、露光設定値３３が最大露光値３５より以上であると判定し（ステップＳ４１；Ｙｅｓ）、更に、モード値３２が４より小さいと判定した場合（ステップＳ４３；Ｙｅｓ）、モード値３２に１加算して当該モード値３２を更新する。即ち、露光設定値３３が最大露光値３５に達してしまい、現在の露光モードよりもモード値の高い露光モードがある場合は、モード値３２を次の露光モードのモード値に変更して、露光モード設定処理（ステップＳ３）で最大露光値３５、フレームレイト３７及びＬＥＤ輝度３９の設定を行う。
【０１３１】
このため、露光モードを、初期状態のデフォルトモード（モード値＝０）から、屋外モード（モード値＝１）、窓際モード（モード値＝２）、屋内モード（モード値＝３）、倉庫モード（モード値＝４）といった順にデコードに成功するまで切り替えることとなる。
【０１３２】
このように、第１変形例によれば、自動的に露光モードが順次切り替わってゆき、適切な露光モードが選択・設定されるため、ユーザは、露光モードの設定操作を行わなくてもよい。
【０１３３】
〔第２実施形態の第２変形例〕
次に、コード読み取り装置２ａの第２変形例について図１６〜図１８を用いて説明する。コード読み取り装置２ａは、図１１に示したコード読み取り装置２に、照度センサ８０を更に備えたものである。照度センサ８０は、コード読み取り装置２ａ本体の外光の照度を検出し、その検出した照度に応じた検知信号をＣＰＵ１０に出力する回路部である。
【０１３４】
また、図１６によれば、ＲＡＭ３０は、フレーム画像３１、露光設定値３３、最大露光値３５、フレームレイト３７、ＬＥＤ輝度３９及び照度３４を記憶している。ＣＰＵ１０は、照度センサ８０から出力される検出信号に基づいて照度を取得してＲＡＭ３０に記憶する。
【０１３５】
図１７は、第２変形例におけるコード読み取り処理を説明するためのフローチャートである。ＣＰＵ１０は、照度センサ８０から出力される検出信号から照度３４を取得して記憶した後（ステップＳ１−１）、図１８に示す露光モード設定処理を開始する（ステップＳ３−１）。
【０１３６】
第２変形例における露光モード設定処理では、取得した照度３４に基づいて露光モードの設定を行う。即ち、ＣＰＵ１０は、先ず、照度３４が８０００Ｌｕｘ以上であった場合（ステップＳ５１；Ｙｅｓ）、屋外モードとして最大露光値３５、フレームレイト３７及びＬＥＤ輝度３９を設定する（ステップＳ４１）。
【０１３７】
また、照度３４が１５００〜７９９９Ｌｕｘの間の場合は（ステップＳ５３；Ｙｅｓ）、窓際モードとして設定し（ステップＳ４２）、７５０〜１４４９Ｌｕｘの間の場合は（ステップＳ５５；Ｙｅｓ）、屋内モードとして設定し（ステップＳ４５）、７４９Ｌｕｘ以下である場合は（ステップＳ５５；Ｎｏ）、倉庫モードとして設定し（ステップＳ４７）。
【０１３８】
このように、第２変形例によれば、照度センサ８０が検出した照度に基づいて露光モードの設定を行うため、コード読み取り装置２ａが使用されている環境照度に適した露光モードを即座に選択して設定することができる。
【０１３９】
尚、照度センサ８０に基づいて露光モードを設定するだけではなく、例えば、紫外線を検出する紫外線センサを備えて、当該紫外線センサにより検出された紫外線が所定量を超えた場合には屋外モードに設定し、所定量未満であれば屋内モードに設定することとしてもよい。
【０１４０】
また、露光モードの種類は、図１２（ａ）に示したものに限らず、例えば、デジタルコードが記録される記録紙の色に基づいて露光モードを設定することとしてもよい。デジタルコードが記録される記録紙には、例えば、値札のように白地のものや、ダンボール紙のような有色のものがある。
【０１４１】
図１９（ａ）に示すように、白地の記録紙上に記録されたバーコードＣ１のフレーム画像３１は、図１９（ｂ）に示すようにコントラストがはっきりしているため、バーの幅や間隔の読み取りが容易である。しかし、図２０（ａ）に示すように、ダンボール紙に記録されたバーコードＣ３のフレーム画像３１は、図２０（ｂ）に示すように読み取りが困難となる。
【０１４２】
そこで、露光モードとして、ダンボールモードを予め設け、このダンボールモードのモード値は「５」、最大露光値を「２００」、フレームレイトを「３０」、ＬＥＤ輝度を「１００」として予め定める。そして、露光モードをダンボールモードに設定することで、図２０（ｃ）に示すようにフレーム画像３１のコントラストが高くなり、バーコードＣ３の読み取りが可能となる。
【０１４３】
尚、ダンボールモードへの設定の切り替えは、モード設定スイッチＳＷのユーザ操作に応じて行ってもよいし、また、一旦露光して得られたフレーム画像３１から記録紙の色を判別した、その判別した色に応じて行ってもよい。
【０１４４】
尚、図１２に示した露光モードと、ダンボールモードとを組み合わせることとしてもよく、これにより、工場等の屋内や倉庫内において、ダンボールに記録されたデジタルコードを読み取る際のデコード率が向上される。また、記録紙の色の他に、記録紙の材質に基づいた露光モードとして、例えば、ビニルからの反射光を抑えるようにフレームレイトを高く設定したビニルモードを設けることとしてもよい。
【０１４５】
〔第３実施形態〕
次に、本発明を適用したコード読み取り装置の第３実施形態について図２１〜図２７を用いて説明する。尚、第３実施形態におけるコード読み取り装置３について、図３４（ａ）に示したコード読み取り装置１００と同一の構成要素には、同一の符号を付してその説明を省略する。
【０１４６】
図２１（ａ）は、第３実施形態におけるコード読み取り装置３の機能構成の一例を示すブロック図である。図２１に示すように、コード読み取り装置３は、図３４（ａ）に示したコード読み取り装置１００のＲＡＭ３０をフラッシュメモリ３００に置き換えた構成である。
【０１４７】
フラッシュメモリ３００は、データの読み書きが可能な不揮発性の記憶領域であり、図２１（ａ）によれば、イメージセンサ７０に読み取られた画像データであるフレーム画像３１０、第１露光設定値３２０、第２露光設定値３３０及び最適露光値３５０を記憶する。
【０１４８】
上述したように、従来のコード読み取り装置１００は、１フレームおきに露光設定値を更新して露光を行ったが、第３実施形態のコード読み取り装置３は、２つの露光設定値、即ち第１露光設定値３２０及び第２露光設定値３３０を交互に更新しながら露光を行っていく。最適露光値３５０は、前回の露光時に最適露光範囲Ｒ３内に到達した第１露光設定値３２０及び第２露光設定値３３０の何れかの露光設定値である。
【０１４９】
ここで、図２１（ｂ）のタイムチャートを用いて、コード読み取り装置３の基本動作を説明すると次のようになる。先ず、ＣＰＵ１０は、第１露光設定値３２０に第１初期値ｖ１、第２露光設定値３３０に第２初期値ｖ２といった異なる初期値を設定する。
【０１５０】
そして、垂直同期信号ＶｓｙｎｃがＬとなっている間の１フレーム目の露光は、第１初期値ｖ１に設定された第１露光設定値３２０で行う。次いで、２フレーム目の露光は、第２初期値ｖ２に設定された第２露光設定値３３０で行う。
【０１５１】
この２フレーム目の露光の間、ＣＰＵ１０は、１フレーム目の露光で得られた画像データＤＴ１をフラッシュメモリ３００に転送してフレーム画像３１０として記憶させる。そして、画像データＤＴ１に基づいて露光値を計算して、当該露光値（計算値ＡＥ１）を第２露光設定値３３０として記憶する。
【０１５２】
そして、２フレーム目の露光が終了したら、当該露光により得られた画像データＤＴ２をフラッシュメモリ３００に転送すると共に、３フレーム目の露光を行う。この３フレーム目の露光は、計算値ＡＥ１に設定された第１露光設定値３１０で行う。そして、３フレーム目の露光の間に、ＣＰＵ１０は、２フレーム目の露光で得られた画像データＤＴ２をフラッシュメモリ３００に転送して、この画像データＤＴ２に基づいて露光値を計算して計算値ＡＥ２を算出する。４フレーム目の露光は、この計算値ＡＥ２（第２露光設定値３３０）で行う。
【０１５３】
このように、奇数番目のフレームの露光は第１露光設定値３２０で行って、この第１露光設定値３２０を逐次計算更新していく。また、偶数番目のフレームの露光は第２露光設定値３３０で行って、この第２露光設定値３３０を逐次更新していく。そして、この一連の処理を繰り返して露光設定値が最適露光範囲Ｒ３に到達するまで、２つの露光設定値によって交互に露光を行っていく。これにより、異なる露光設定値で露光した画像データがフレーム毎に順に得られるため、従来のように１つおきにデコードするといった無駄を削減し、効率のよいデコードが行える。
【０１５４】
次に、第１初期値ｖ１及び第２初期値ｖ２の設定方法と、その設定後に逐次計算・更新される第１露光設定値３２０及び第２露光設定値３３０の遷移例について説明する。
【０１５５】
図２２（ａ）及び（ｂ）は、イメージセンサ７０が露光可能な露光値の範囲（以下、この範囲を「露光可能範囲」という。）Ｒ１内における最大値ｍａｘ（例えば、２５５）を第１初期値ｖ１として、最小値ｍｉｎ（例えば、０）を第２初期値ｖ２として設定した場合の、第１露光設定値３２０及び第２露光設定値３３０の遷移例を示す図である。
【０１５６】
ここで、コード読み取り装置３が使用されたある環境下での最適露光範囲Ｒ３が図２２（ａ）に示すように、露光可能範囲Ｒ１内の中心値ｃ付近であるとする。第１露光設定値３２０は、１フレーム目、３フレーム目、５フレーム目といった奇数番目に計算されて、第１初期値ｖ１から順に計算値ＡＥ１，ＡＥ３，ＡＥ５，・・・，と最適露光範囲Ｒ３に近づいてゆく。
【０１５７】
これに対して、第２露光設定値３３０は、２フレーム目、４フレーム目、６フレーム目といった偶数番目に計算されて、第２初期値ｖ２から順に計算値ＡＥ２，ＡＥ４，ＡＥ６，・・・，と最適露光範囲Ｒ３に近づいてゆく。これにより、第１露光設定値３２０は、１１フレーム目の計算値ＡＥ９で最適露光範囲Ｒ３内に到達し、このときコントラストが高いフレーム画像３１０が得られるようになる。
【０１５８】
一方、図２２（ｂ）のように、最適露光範囲Ｒ３が中心値ｃから最小値側にずれている場合は、第２露光設定値３３０が計算値ＡＥ３と計算された６フレーム目に最適露光範囲Ｒ３内に到達する。このように、最適露光範囲Ｒ３が露光可能範囲Ｒ３の中心からずれた場合には、図２２（ａ）に示した遷移例よりも、第２露光設定値３３０が高速に最適露光範囲Ｒ３内に到達することができる。尚、図示は省略するが、最適露光範囲Ｒ３が露光可能範囲Ｒ３の中心から最大値側にずれた場合、第１露光設定値３２０が同様に最適露光範囲Ｒ３に早く到達するのは勿論である。
【０１５９】
図２３（ａ）及び（ｂ）は、フラッシュメモリ３００に記憶された最適露光値３５０を第１初期値ｖ１として設定し、最大値ｍａｘから最適露光値３５０を減算した露光設定値を第２初期値ｖ２として設定した場合の、第１露光設定値３２０及び第２露光設定値３３０の遷移例を示す図である。
【０１６０】
図２３（ａ）及び（ｂ）に示すように初期値ｖ１及び初期値ｖ２は、露光可能範囲Ｒ１の中心値ｃを中心として線対称な位置関係となり、最適露光値３５０は、図２２（ｂ）において最適露光範囲Ｒ３内に到達した計算値ＡＥ３とする。このため、図２２（ｂ）で使用したコード読み取り装置３と同等の環境下で当該装置が使用された場合は、第１露光設定値３２０として設定された第１初期値ｖ１は、図２３（ａ）に示すように既に最適露光範囲Ｒ３内であるため、第１露光設定値３２０及び第２露光設定値３３０の再計算を行う必要がない。
【０１６１】
一方、最適露光範囲Ｒ３が図２３（ｂ）のように中心値ｃの上側となる場合は、４フレーム目で計算された第２露光設定値３３０の計算値ＡＥ２が当該最適露光範囲Ｒ３内に到達する。このように、過去の露光時に最適露光範囲Ｒ３内に到達した露光設定値、即ち最適露光値３５０を初期値として設定することで、コード読み取り装置３の使用環境が変化した場合にも、比較的早く最適露光範囲Ｒ３内に安定するようになる。
【０１６２】
図２４（ａ）は、第１初期値ｖ１として最大値ｍａｘを設定し、この第１初期値ｖ１に対してオフセットを持たせた値を第２初期値ｖ２として設定した場合の、第１露光設定値３２０及び第２露光設定値３３０の遷移例を示す図である。
【０１６３】
第２初期値ｖ２は、第１初期値ｖ１よりも中心値ｃ側となるため、第２露光設定値３３０は、第１露光設定値３２０よりも早く最適露光範囲Ｒ３に到達する。また、最適露光範囲Ｒ３が第１初期値ｖ１と第２初期値ｖ２との間になる場合は、第１露光設定値３２０が最適露光範囲Ｒ３に早く到達する。
【０１６４】
尚、第１初期値ｖ１として最小値ｍｉｎを設定して、この第１初期値ｖ１に対してオフセットを持たせた値を第２初期値ｖ２として設定しても、同様の効果が得られるのは無論である。
【０１６５】
図２４（ｂ）は、第１露光設定値３２０及び第２露光設定値３３０の他に第３露光設定値３４０を設け、第１初期値ｖ１に最大値ｍａｘ、第２初期値ｖ２に最小値ｍｉｎ、第３露光設定値３４０の初期値である第３初期値ｖ３に中心値ｃを設定した場合の、これらの露光設定値の遷移例を示す図である。
【０１６６】
この場合、ＣＰＵ１０は、“３ｎ−２（ｎは自然数）”フレーム目に第１露光設定値３２０で、“３ｎ−１”フレーム目に第２露光設定値３３０で、“３ｎ”フレーム目に第３露光設定値３４０でそれぞれ露光を行うように制御して、その露光毎に各露光設定値の再計算を行う。
【０１６７】
図２４（ｂ）では、第３露光設定値３４０が６フレーム目で最適露光範囲Ｒ３内に到達している。また、最適露光範囲Ｒ３が最大値ｍａｘ側にあれば、第１露光設定値３２０がより早く当該最適露光範囲Ｒ３に到達するようになり、最小値ｍｉｎ側にあれば、第２露光設定値３３０がより早く当該最適露光範囲Ｒ３に到達するようになる。このように、複数の露光設定値を設けることで、最適露光範囲Ｒ３に早く到達する確率を向上させることができる。
【０１６８】
図２５（ａ）及び（ｂ）は、第１初期値ｖ１に最大値ｍａｘ、第２初期値ｖ２に最小値ｍｉｎを設定し、第１露光設定値３２０及び第２露光設定値３３０の平均値で各露光設定値を更新した場合の遷移例を示す図である。
【０１６９】
ＣＰＵ１０は、図２２（ａ）と同様に、１フレーム目で露光して得られたフレーム画像３１０から第１露光設定値３２０の計算値ＡＥ１を計算して、３フレーム目で当該計算値ＡＥ１に基づいた露光を行う。また、２フレーム目で得られたフレーム画像３１０から第２露光設定値３３０の計算値ＡＥ２を計算して、４フレーム目で当該計算値ＡＥ２に基づいた露光を行う。
【０１７０】
ＣＰＵ１０は、第１露光設定値３２０及び第２露光設定値３３０を更新後、その更新後の第１露光設定値３２０と第２露光設定値３３０の平均値ＡＥ１０を算出する。その算出した平均値ＡＶ１を第１露光設定値３２０に設定して５フレーム目の露光を行う。また、平均値ＡＶ１に設定された第１露光設定値３２０と、第２露光設定値３３０との平均値ＡＶ２を算出する。この算出した平均値ＡＶ２を第２露光設定値３３０として設定した後に６フレーム目の露光を行う。
【０１７１】
このように、第１露光設定値３２０と第２露光設定値３３０との平均値を随時算出して、その算出した平均値を各露光設定値に設定することで、例えば、図２５（ａ）のように、最適露光範囲Ｒ３が中心値ｃ付近である場合は、５フレーム目に第１露光設定値３２０が当該最適露光範囲Ｒ３に到達する。また、図２５（ｂ）のように、最適露光範囲Ｒ３が中心値ｃより下側である場合は、６フレーム目で第２露光設定値３３０が最適露光範囲Ｒ３に到達することができる。
【０１７２】
尚、図２３において前回の最適露光値３５０を初期値として設定することとしたが、１日、１週間、１ヶ月といった一定期間の間の最適露光値３５０をフラッシュメモリ３００に蓄積しておき、その最適露光値の平均値を算出して、当該平均値を露光設定値の初期値に設定することとしてもよい。
【０１７３】
図２６（ａ）は、比較的安定した環境下でコード読み取り装置３が使用されて際の、１ヶ月間に蓄積した最適露光値３５０の履歴を示す図である。この場合は、この最適露光値３５０の履歴の平均値ＡＶ３を算出して、この平均値ＡＶ１０を第１露光設定値３２０の第１初期値ｖ１に設定することで、より高速に露光設定値が最適露光範囲Ｒ３内に安定するようにすることができる。
【０１７４】
図２６（ｂ）は、コード読み取り装置３の使用環境が大きく変わった場合の、最適露光値３５０の履歴の一例である。ＣＰＵ１０は、この１ヶ月間の履歴内の最大の最適露光値（最大露光値Ｍａｘ）と、最小の最適露光値（最小露光値Ｍｉｎ）との差が所定値（例えば、５０）を超えた場合には、コード読み取り装置３の使用環境にばらつきがあると判断して、次のようにして２つの平均値を算出する。
【０１７５】
先ず、最適露光値の履歴の中から最大露光値Ｍａｘと、最小露光値Ｍｉｎとを抽出する。そして、最大露光値Ｍａｘ及び最小露光値Ｍｉｎとの平均を算出し、その平均を閾値ＢＬとして、最適露光値の履歴を二分する。そして、二分した一方の最適露光値の平均値ＡＶ１１と、他方の最適露光値の平均値ＡＶ１２とを算出して、これらの平均値を第１初期値ｖ１及び第２初期値ｖ２としてそれぞれ設定する。
【０１７６】
図２７は、平均値ＡＶ１１を第１初期値ｖ１として、平均値ＡＶ１２を第２初期値ｖ２として設定した場合の、第１露光設定値３２０及び第２露光設定値３３０の遷移例を示す図である。
【０１７７】
例えば、最適露光範囲Ｒ３が図２７（ａ）に示すように中心値ｃを境に最小値ｍｉｎ側であって、第１露光設定値３２０は、当該最適露光範囲Ｒ３内に既に含まれているため、露光設定値の計算を行わなくてもよい。また、最適露光範囲Ｒ３が図２７（ｂ）に示すように中心値ｃを境に最大値ｍａｘ側である場合は、４フレーム目で計算した第２露光設定値３３０の計算値ＡＥ２が最適露光範囲Ｒ３内に到達する。
【０１７８】
このため、コード読み取り装置３の使用環境にばらつきがあった場合にも、最適露光範囲Ｒ３に近いほうの平均値ＡＶ１１又はＡＶ１２が当該最適露光範囲Ｒ３に早く到達する。このように、過去の最適露光値３５０の履歴における平均値を初期値に設定することで、コード読み取り装置３の使用環境にばらつきがあっても、より高速に最適露光範囲Ｒ３に到達するようにできる。
【０１７９】
以上、第３実施形態によれば、露光設定値の初期値を異なる値で複数設定して、これらの初期値で始まる露光設定値を順次計算して更新する。これにより、コード読み取り装置３の使用環境が変わっても、露光設定値が最適露光範囲に到達するまでの時間を短くすることがでる。
【０１８０】
〔第４実施形態〕
次に、本発明を適用したコード読み取り装置の第４実施形態について図２８〜図３３を用いて説明する。尚、第４実施形態におけるコード読み取り装置４について、図１に示した従来のコード読み取り装置１と同一の構成要素には、同一の符号を付してその説明を省略する。
【０１８１】
図２８は、第４実施形態におけるコード読み取り装置４の機能構成の一例を示すブロック図である。図２８に示すように、コード読み取り装置４は、図１に示したコード読み取り装置１の専用ＡＳＩＣ５０を図２８の専用ＡＳＩＣ５０ｅに、レンズユニット４０をイメージセンサ７０に置き換えた構成である。
【０１８２】
専用ＡＳＩＣ５０ｅは、タイミングコントローラ５１ｅ、データバッファ５３及びＤＭＡ５５を有して構成される。タイミングコントローラ５１ｅは、図２９（ａ）に示す転送制御回路５１０を含んで構成され、イメージセンサ７０から出力されるピクセルクロック信号ＰＣＬＫ、水平同期信号Ｈｓｙｎｃ及び垂直同期信号Ｖｓｙｎｃに基づいて、バッファセレクタＢＳの第１ラインバッファＬＢａ及び第２ラインバッファＬＢｂへの１ライン毎、１フレームごとのデータ転送を制御する。
【０１８３】
転送制御回路５１０は、転送許可信号ＴＥを生成してバッファセレクタＢＳに出力することで、バッファセレクタＢＳの第１ラインバッファＬＢａ及び第２ラインバッファＬＢｂへのデータ転送を制御する回路であり、例えばＤフリップフロップ（Delay flip-flop）により構成される。
【０１８４】
また、タイミングコントローラ５１ｅは、ＣＰＵ１０の制御に基づいて、フレームスタートリクエスト信号ＦＳＲを内部的に生成して転送制御回路５１０に出力する。より具体的には、ＣＰＵ１０が任意のタイミングでタイミングコントローラ５１ｅにフレーム画像の転送開始の要求をタイミングコントローラ５１ｅに対して行う。タイミングコントローラ５１ｅは、ＣＰＵ１０の要求に応じて、一定期間の間、１（Ｈ）を保持するフレームスタートリクエスト信号ＦＳＲを生成して転送制御回路５１０に出力する。
【０１８５】
図２９（ａ）は、転送制御回路５１０の回路構成の一例、図２９（ｂ）は転送制御回路５１０の入出力する信号の関係を示す図、図３０は転送制御回路５１０の動作例を説明するためのタイムチャートである。ここで、転送制御回路５１０の具体的な動作例を図２９及び３０を参照して説明する。
【０１８６】
転送制御回路５１０は、タイミングコントローラ５１ｅにより生成されたフレームスタートリクエスト信号ＦＳＲと垂直同期信号Ｖｓｙｎｃとに基づいて、図２９（ａ）に示すように転送許可信号ＴＥを生成する。
【０１８７】
即ち、時刻ｔ１１にフレームスタートリクエスト信号ＦＳＲが１（Ｈ）になることで、画像データの転送要求が出力され、その後、時刻ｔ１５に垂直同期信号ＶｓｙｎｃがＨからＬに切り替わると、転送許可信号ＴＥが１（Ｈ）に立ち上がる。
【０１８８】
そして、フレームスタートリクエスト信号ＦＳＲが０（Ｌ）に切り替わった後（時刻ｔ１９）に、時刻ｔ２１に垂直同期信号ＶｓｙｎｃがＨからＬに切り替わると、転送許可信号ＴＥが０（Ｌ）に戻る。
【０１８９】
転送制御回路５１０は、この転送許可信号ＴＥをバッファセレクタＢＳに出力して、当該転送許可信号ＴＥが１（Ｈ）のときに、第１ラインバッファＬＢａ及び第２ラインバッファＬＢｂへの画像データの転送を許可する。
【０１９０】
次に、コード読み取り装置４の具体的な動作について図３１を用いて説明する。先ず、ＣＰＵ１０は、図３１のようなイメージャ転送制御信号ＴＣをイメージセンサ７０に出力することによって、垂直同期信号Ｖｓｙｎｃの出力と、当該イメージセンサ７０が生成した画像データの専用ＡＳＩＣ５０ｅへの出力とを開始させる。このイメージャ転送制御信号ＴＣがＨの間、画像データの転送が開始されて各回路部が稼働し、Ｌの間はデータ転送が為されないためスタンバイ状態にとなる。
【０１９１】
このとき、専用ＡＳＩＣ５０ｅには、イメージセンサ７０から出力される垂直同期信号ＶｓｙｎｃがＬになっている間に、画像データ（入力画像）が転送され、例えば、図３１のように、イメージャ転送制御信号ＴＣがＨの間に３回発振する垂直同期信号Ｖｓｙｎｃに同期して入力画像Ｃ１，Ｃ２及びＣ３が順次転送されてくる。
【０１９２】
そして、タイミングコントローラ５１ｅは、上述したようにして生成した転送許可信号ＴＥをバッファセレクタＢＳに出力することで、イメージセンサ７０から順次転送された入力画像のうちの１つの入力画像Ｃ２を取得してＲＡＭ３０に転送させる。ＣＰＵ１０は、この転送された入力画像Ｃ２のフレーム画像３１をデコードする。
【０１９３】
以上、第４実施形態によれば、転送制御回路５１０をタイミングコントローラ５１ｅに設けて、転送許可信号ＴＥを生成することで、イメージセンサ７０から順次転送されてくる入力画像のうち、フレームスタートリクエスト信号ＦＳＲによりデータ転送が要求された間の入力画像が取得されてＲＡＭ３０に転送される。このため、入力画像がシステムバス９０を占有する占有率を低めることができる。従って、コード読み取り装置４の回路が入力画像の処理のために常に活性状態となることがなくなり、当該装置の負荷を低減させることができ、更には省電力化も期待できる。
【０１９４】
尚、第４実施形態では、垂直同期信号Ｖｓｙｎｃに基づいて、転送許可信号ＴＥを生成することとしたが、水平同期信号Ｈｓｙｎｃに基づいて生成することとしてもよい。この場合、タイミングコントローラ５１ｅの内部に図３２に示すラインデータ転送制御回路５１２を設ける。
【０１９５】
このラインデータ転送制御回路５１２は、転送許可信号ＴＥ、垂直同期信号Ｖｓｙｎｃ及び水平同期信号Ｈｓｙｎｃからラインデータ転送許可信号ＬＴＥを生成する回路部であり、例えば、ＡＮＤ回路により構成される。即ち、転送許可信号ＴＥが１（Ｈ）、垂直同期信号Ｖｓｙｎｃが０（Ｌ）、水平同期信号Ｈｓｙｎｃが１（Ｈ）である場合に、１（Ｈ）を保持するラインデータ転送許可信号ＬＴＥを生成する。
【０１９６】
ラインデータ転送制御回路５１２は、このラインデータ転送許可信号ＬＴＥをバッファセレクタＢＳに出力して、当該ラインデータ転送許可信号ＬＴＥが１（Ｈ）のときに、第１ラインバッファＬＢａ及び第２ラインバッファＬＢｂへの画像データの転送を許可する。
【０１９７】
このため、図３３のように、転送許可信号ＴＥが１（Ｈ）、垂直同期信号ＶｓｙｎｃがＬとなっている間に、水平同期信号Ｈｓｙｎｃが立ち上がる度に、ラインデータ転送許可信号ＬＴＥも立ち上がる。そして、このラインデータ転送許可信号ＬＴＥがＨとなっている間に、１ライン毎の入力画像Ｃ２０２，Ｃ２０４，Ｃ２０６，・・・，が第１ラインバッファＬＢａ及び第２ラインバッファＬＢｂを介して転送されていく。
【０１９８】
このため、時刻ｔ３１（図３２及び３２参照）より以前に入力された入力画像Ｃ１のライン単位の入力画像Ｃ１１０はＲＡＭ３０に転送されない。従って、ＲＡＭ３０への入力画像のデータ転送を、更に精細に制御することができるようになる。
【０１９９】
尚、第２〜第４実施形態において、露光設置値の再計算や、イメージセンサ７０の露光設定の変更等をＣＰＵ１０がソフト的に実現することとするが、第１実施形態のコード読み取り装置１のようにＡＥ計算器５７及びイメージセンサコントローラ５９を設けてハード的に実現することとしてもよい。
【図面の簡単な説明】
【０２００】
【図１】第１実施形態におけるコード読み取り装置の機能構成の一例を示すブロック図。
【図２】第１実施形態におけるレンズユニットの構成例を示す図。
【図３】レンズユニットの読取深度特性及び分解能特性の一例を示す図。
【図４】第１実施形態におけるコード読み取り装置の動作例を説明するためのタイムチャート。
【図５】第１実施形態の第１変形例におけるレンズユニットの構成例を示す図。
【図６】第１実施形態の第２変形例におけるレンズユニットの構成例を示す図。
【図７】第１実施形態の第３変形例におけるレンズユニット（ａ）、第４変形例におけるレンズユニット（ｂ）の構成例を示す図。
【図８】第１実施形態の第５変形例におけるコード読み取り装置の機能構成の一例を示すブロック図。
【図９】第１実施形態の第６変形例におけるコード読み取り装置の機能構成の一例を示すブロック図。
【図１０】第１実施形態の第６変形例におけるコード読み取り装置の具体的な動作例を説明するための図。
【図１１】第２実施形態におけるコード読み取り装置の機能構成の一例を示すブロック図。
【図１２】露光モードを説明するための図。
【図１３】第２実施形態におけるコード読み取り処理を説明するためのフローチャート。
【図１４】第２実施形態における露光モード設定処理を説明するためのフローチャート。
【図１５】第２実施形態の第１変形例におけるコード読み取り処理（ａ）、露光モード設定処理（ｂ）を説明するためのフローチャート。
【図１６】第２実施形態の第２変形例におけるコード読み取り装置の機能構成の一例を示すブロック図。
【図１７】第２実施形態の第３変形例におけるコード読み取り処理を説明するためのフローチャート。
【図１８】第２実施形態の第３変形例における露光モード設定処理を説明するためのフローチャート。
【図１９】白地の記録紙に記録されたデジタルコードの読み取り例を説明するための図。
【図２０】ダンボールに記録されたデジタルコードの読み取り例を説明するための図。
【図２１】第３実施形態におけるコード読み取り装置の機能構成の一例を示すブロック図（ａ）、コード読み取り装置の動作を説明するためのタイムチャート（ｂ）。
【図２２】第１露光設定値及び第２露光設定値の遷移例を示す第１の図。
【図２３】第１露光設定値及び第２露光設定値の遷移例を示す第２の図。
【図２４】第１露光設定値及び第２露光設定値の遷移例を示す第３の図。
【図２５】第１露光設定値及び第２露光設定値の遷移例を示す第４の図。
【図２６】最適露光値の履歴の一例を示す図。
【図２７】第１露光設定値及び第２露光設定値の遷移例を示す第５の図。
【図２８】第４実施形態におけるコード読み取り装置の機能構成の一例を示すブロック図。
【図２９】転送制御回路の回路構成とその入出力する信号の関係を説明するための図。
【図３０】転送制御回路の動作例を説明するためのタイムチャート。
【図３１】第４実施形態におけるコード読み取り装置の動作例を説明するためのタイムチャート。
【図３２】ラインデータ転送制御回路の回路構成の一例を示す図。
【図３３】第４実施形態の変形例におけるコード読み取り装置の動作例を説明するためのタイムチャート。
【図３４】従来のコード読み取り装置の機能構成の一例を示すブロック図（ａ）、動作例を説明するためのタイムチャート（ｂ）。
【図３５】従来のコード読み取り装置の露光設定値の遷移例を示す図。
【符号の説明】
【０２０１】
１  コード読み取り装置
１０  ＣＰＵ（デコード手段、設定手段、判定手段、初期設定手段、露光値更新手段、繰り返し制御手段、平均算出手段）
２０  ＲＯＭ
３０  ＲＡＭ
３１  フレーム画像
４０  レンズユニット
４１  撮影レンズ
Ｐ  プリズム（分光手段）
４３ａ  近接用レンズ
４３ｂ  遠方用レンズ
Ｓａ  第１イメージセンサ（画像生成手段）
Ｓｂ  第２イメージセンサ（画像生成手段）
Ｖｓｙｎｃ  垂直同期信号
Ｈｓｙｎｃ  水平同期信号
５０  専用ＡＳＩＣ
５１  タイミングコントローラ（要求信号生成手段）
５３  データバッファ（転送手段）
ＢＳ  バッファセレクタ（転送手段）
ＬＢａ  第１ラインバッファ
ＬＢｂ  第２ラインバッファ
５５  ＤＭＡ
５７  ＡＥ計算器
５９  イメージセンサコントローラ
６１  セレクタ
８２  画像合成プロセッサ（合成手段）
ＦＭ  フレームメモリ（記憶手段）
ＳＷ  モード設定スイッチ（切替手段）
７０  イメージセンサ（露光手段、同期信号生成手段）
８０  照度センサ
３００  フラッシュメモリ（履歴記録手段）
３２０  第１露光設定値（露光値記憶手段）
３３０  第２露光設定値（露光値記憶手段）
３５０  最適露光値（最適値記憶手段）
５１０  転送制御回路（信号発生手段）
【図１】
2008123563.tif 000003
【図２】
2008123563.tif 000004
【図３】
2008123563.tif 000005
【図４】
2008123563.tif 000006
【図５】
2008123563.tif 000007
【図６】
2008123563.tif 000008
【図７】
2008123563.tif 000009
【図８】
2008123563.tif 000010
【図９】
2008123563.tif 000011
【図１０】
2008123563.tif 000012
【図１１】
2008123563.tif 000013
【図１２】
2008123563.tif 000014
【図１３】
2008123563.tif 000015
【図１４】
2008123563.tif 000016
【図１５】
2008123563.tif 000017
【図１６】
2008123563.tif 000018
【図１７】
2008123563.tif 000019
【図１８】
2008123563.tif 000020
【図１９】
2008123563.tif 000021
【図２０】
2008123563.tif 000022
【図２１】
2008123563.tif 000023
【図２２】
2008123563.tif 000024
【図２３】
2008123563.tif 000025
【図２４】
2008123563.tif 000026
【図２５】
2008123563.tif 000027
【図２６】
2008123563.tif 000028
【図２７】
2008123563.tif 000029
【図２８】
2008123563.tif 000030
【図２９】
2008123563.tif 000031
【図３０】
2008123563.tif 000032
【図３１】
2008123563.tif 000033
【図３２】
2008123563.tif 000034
【図３３】
2008123563.tif 000035
【図３４】
2008123563.tif 000036
【図３５】
2008123563.tif 000037