以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。なお、本発明は、図示例に限定されるものではない。
先ず、図1を参照して、本実施の形態の装置の外観構成を説明する。図1に、本実施の形態のハンディターミナル1の正面の外観構成を示す。
本実施の形態のバーコード読取装置としてのハンディターミナル1は、情報の入力受付け、情報の記憶、情報の送受信、及びバーコード読み取りなどの機能を有する携帯機器である。
図1に示すように、ハンディターミナル1は、筐体としてのケース2を備える。ハンディターミナル1は、ケース2の正面に、トリガキー12Aと、各種キー12Bと、表示部14と、スピーカ18Aと、を備える。ハンディターミナル1は、ケース2の側面に、トリガキー12Cを備える。また、ハンディターミナル1は、ケース2の先端に、イメージャモジュール21を備える。
トリガキー12A,12Cは、イメージャモジュール21によるスキャン開始の入力を受け付けるトリガキーである。各種キー12Bは、数字、文字等の入力キー、機能キー等からなり、各種情報の入力を受け付ける。表示部14は、イメージャモジュール21を用いたバーコード読み取り時のスルー画面、デコード結果等の表示情報を表示する。スピーカ18Aは、バーコード読み取りのデコード成功時のブザー音等を出力する。
次いで、図2を参照して、ハンディターミナル1の内部の機能構成を説明する。図2に、ハンディターミナル1の機能構成を示す。
図2に示すように、ハンディターミナル1は、デコード部としてのCPU(central Processing Unit)11と、操作部12と、RAM(Random Access Memory)13と、表示部14と、ROM(Read Only Memory)15と、通信部16と、フラッシュメモリ17と、音出力部18と、制御部としてのイメージャコントローラ19と、電圧昇圧部20と、イメージャモジュール21と、電源部22と、を備える。ハンディターミナル1のイメージャモジュール21及び電源部22を除く各部は、バス23を介して接続されている。イメージャモジュール21は、撮像部としての撮像素子211と、可変焦点レンズとしての液体レンズ212と、を有する。
CPU11は、ハンディターミナル1の各部を制御する。CPU11は、ROM15からプログラムを読み出してRAM13に展開し、RAM13に展開されたプログラムとの協働で各種処理を実行する。
CPU11は、バーコード読み取りプログラム151に従って、イメージャコントローラ19に、液体レンズ212を介してバーコードを撮像素子211に撮像させてフレーム画像の画像データを出力させるとともに、液体レンズ212の焦点位置を変化させる。イメージャコントローラ19は、1フレームの中で異なる焦点位置の複数の画像領域の画像データを撮像素子211に取得させる。また、CPU11は、イメージャコントローラ19に入力された画像データをRAM13に転送して記憶させるとともに、当該画像データに含まれるバーコード画像をデコードする。
また、CPU11は、撮像素子211からイメージャコントローラ19に入力された画像のラインデータを、RAM13にDMA(Direct Memory Access)転送し記憶させるDMA転送機能を有する。なお、DMA転送機能は、イメージャコントローラ19が有する構成としてもよい。
操作部12は、各種キー12B、トリガキー12A,12C等のキー群を有し、当該キー群の各キーへの押下入力を受け付け、その操作情報をCPU11に出力する。
RAM13は、揮発性の半導体メモリであり、各種データ及び各種プログラムを格納するワークエリアを有する。
表示部14は、LCD(Liquid Crystal Display)、EL(electroluminescent)ディスプレイ等で構成され、各種情報を表示する。
ROM15は、読み出し専用の半導体メモリである。ROM15には、バーコード読み取りプログラム151が記憶されている。
通信部16は、通信アンテナ、信号処理部、変調部、復調部等を備え、アクセスポイントを介してサーバ装置と通信する無線通信部である。通信部16は、送信情報の信号を信号処理部で処理し、変調部で変調して通信アンテナから電波としてアクセスポイントに送信情報を無線送信する。また、通信部16は、通信アンテナによりアクセスポイントから送信された電波を受信して復調部で復調し、その信号を信号処理部で信号処理して受信情報を取得する。
また、通信部16は、携帯電話通信方式により、基地局を介してサーバ装置と無線通信する無線通信部としてもよい。また、通信部16は、ハンディターミナル1を載置するクレードルを介してサーバ装置と有線通信する有線通信部としてもよい。
フラッシュメモリ17は、各種データを読み出し及び書き込み可能な不揮発性の半導体メモリである。
音出力部18は、音源部、アンプ、スピーカ18Aを備え、デコード成功時等のブザー音を出力する。音出力部18は、CPU11から入力されたブザー音出力の指示に応じて、音源部でブザー音の信号を生成し、アンプで増幅して、スピーカ18Aから音出力する。
イメージャコントローラ19は、イメージャモジュール21及び電圧昇圧部20の制御部である。イメージャコントローラ19は、ASIC(Application Specific Integrated Circuit)等の半導体回路により構成されているものとする。
イメージャコントローラ19は、撮像素子211から、キャプチャされた画像データの1フレームの出力タイミングに同期したフレーム同期信号と、画像データの1ラインの出力タイミングに同期したライン同期信号と、画像データに同期するためのクロック信号と、が入力される。イメージャコントローラ19は、これらフレーム同期信号、ライン同期信号及びクロック信号に基づいて、撮像素子211からの画像データの転送タイミングを監視する。そして、イメージャコントローラ19は、監視状況に応じて液体レンズ212駆動用の電圧昇圧部20の昇圧レベルをPWM(Pulse Width Modulation)信号でコントロールすることにより液体レンズ212の焦点をリアルタイムに変化させる。
また、イメージャコントローラ19は、入力される画像データのラインを指定するライン指定信号を生成して撮像素子211に出力する。
電圧昇圧部20は、イメージャコントローラ19から入力されたPWM信号に応じて、液体レンズ212に電圧を印加する。
イメージャモジュール21は、焦点を調整してバーコードを撮影するモジュールである。撮像素子211は、CMOS(Complementary Metal Oxide Semiconductor Image Sensor:相補性金属酸化膜半導体)イメージセンサであり、ラインを指定して画像データを出力することが可能な撮像素子である。撮像素子211は、液体レンズ212を含む光学系を介して入射された被写体像を露光し光電変換して被写体の画像データの電気信号に変換する。
撮像素子211は、イメージャコントローラ19から入力されたライン指定信号により指定されたラインの画像データを1ラインずつラインデータとしてイメージャコントローラ19に出力する。また、撮像素子211は、フレーム同期信号と、ライン同期信号と、クロック信号と、をイメージャコントローラ19に出力する。液体レンズ212は、イメージャモジュール21の光学系の一部を構成する光学素子であり、印加電圧に応じて高速で焦点位置を変更可能な可変焦点レンズである。液体レンズ212については、詳細に後述する。
電源部22は、二次電池等で構成され、ハンディターミナル1の各部に電力供給を行う。
次いで、図3及び図4を参照して、液体レンズ212を詳細に説明する。図3に、印加電圧の変化による液体レンズ212の焦点変化を示す。図4に、液体レンズ212及び撮像素子211の側面構成を示す。
図3に示すように、液体レンズ212は、液体部2121,2122と、容器2123と、電極2124と、を有する。液体部2121,2122は、互いに屈折率が異なり比重が同じ水溶液及び油である。容器2123は、液体部2121,2122を密閉した容器である。電極2124は、電圧を印加するために液体部2121,2122の周囲に設けられている電極である。
液体部2121側の電極2124と、液体部2122側の電極2124との間に、電源30が接続されている構成を考える。電源30により、液体部2121側の電極2124と、液体部2122側の電極2124との間に電圧を印加することで、液体部2121,2122の中央部分の界面がレンズのように湾曲することでレンズ機能を実現する。また、電源30の印加電圧を高くすることで、液体部2121,2122の中央部分の界面の湾曲が大きくなる。界面の湾曲が小さい場合に、液体レンズ212の焦点が遠方の距離の位置に合う。界面の湾曲が大きくなると、液体レンズ212の焦点も近接の距離の位置に合う。
また、液体レンズ212にかかる電圧の大きさに応じてレンズ曲率が変化するため、図17に示すようなレンズの移動が発生しないまま、電気的に高速に液体レンズ212のレンズ曲率を変化することができる。図4に示すように、このレンズ曲率変化により、液体レンズ212の焦点調整を行うことができる。そのため、従来のオートフォーカス機構と比べ、焦点変更にかかる時間が短くなるという利点がある。このように、液体レンズ212の特長として、印加する電圧レベルに応じてレンズ曲率が変化できることと、物理的な可動部がないため耐久性が高いことと、印加電圧レベルは高電圧だが電流が流れないため消費電力が少ないことと、が挙げられる。
次に、図5〜図16を参照して、ハンディターミナル1の動作を説明する。先ず、図5及び図6を参照して、通常の画像キャプチャ及びデコードを説明する。ここでは、液体レンズ212の焦点が固定されているものとする。図5に、撮像素子211の撮像及び画像データ転送の概要を示す。図6に、撮像素子211の通常の画像キャプチャ及びデコードに関する信号のタイミングチャートを示す。
図5に示すように、CMOSイメージセンサである撮像素子211は、CCD(Charge Coupled Device)イメージセンサと異なり、画像1フレーム中の1ラインごとにキャプチャ及びデータ転送を行う。撮像素子211は、センサ上部から1ラインずつ露光及び画像データ(ラインデータ)の転送を行う。撮像素子211がセンサ最下部のラインデータ転送を終えると、1フレーム分の画像データ転送終了となり、再び次フレームとしてセンサ最上部からの1ラインずつの露光及びラインデータ転送を行う。
そのため、撮像素子211は、図6に示すような、フレーム同期信号と、ライン同期信号と、クロック信号と、画像データ(ラインデータ)であるデータ信号と、をイメージャコントローラ19に出力する。イメージャコントローラ19は、フレーム同期信号及びライン同期信号に同期しながら、入力されたデータ信号をRAM13へ転送する。1フレーム分のデータ信号転送が終了すると、RAM13上には1フレーム分の画像データがストアされる。CPU11は、RAM13に記憶されている複数のラインデータに対して、デコードしやすいように、1フレームの画像データに合成する画像処理を施した上でバーコードのデコード処理を行う。このため、1回のデコード完了までには、1フレーム分のキャプチャ時間と、CPU11による画像処理及びデコードの処理時間と、が必要になる。
次いで、図7〜図10を参照して、1つのバーコードを撮像して焦点位置の異なる3分割した画像データを取得する場合の焦点調整、画像キャプチャ及びデコードを説明する。図7に、近距離又は遠距離に置かれたバーコード41のスキャンの様子を示す。図8に、焦点位置の異なる3分割したフレーム画像の撮像における撮像素子211のフレーム同期信号及びライン同期信号と、液体レンズ212の駆動電圧と、のタイミングチャートを示す。図9(a)に、3分割したフレーム画像の画像データF1を示す。図9(b)に、図9(a)の境界領域f1における拡大したラインデータを示す。図10(a)に、焦点位置Aのバーコード41を撮像した3分割したフレーム画像q1を示す。図10(b)に、焦点位置Bのバーコード41を撮像した3分割したフレーム画像q2を示す。
図7に示すように、ハンディターミナル1(イメージャモジュール21)からの焦点距離が近距離である焦点位置Aと、焦点距離が遠距離の焦点位置Bと、にバーコード41が置かれているものとする。一例として、この焦点位置A及び焦点位置Bに置かれたバーコード41に対して、ハンディターミナル1により画像キャプチャ及びデコードを行うケースを説明する。
図8に示すように、イメージャコントローラ19は、撮像素子211から出力されたフレーム同期信号及びライン同期信号を受信すると、それに同期して電圧昇圧部20へのPWM信号のDuty比率を変更し、液体レンズ212に印加される駆動電圧を変化させる。液体レンズ212は、印加される電圧レベルにより焦点位置が変化するため、イメージャコントローラ19は、フレーム同期信号及びライン同期信号に同期して焦点位置を変更できることとなる。
例えば、イメージャコントローラ19の制御により、フレーム開始時に撮像素子211の焦点を焦点位置Aに設定して撮像素子211からRAM13へラインデータ転送を行い、1フレーム中の3分の1のラインデータの転送が終わった時点で、撮像素子211の焦点を焦点位置Bに切り替える。そして、1フレーム中の3分の2のラインのラインデータ転送が終わった時点で再び、撮像素子211の焦点を焦点位置Aに切り替える。
このことにより、図9(a)に示すように、フレーム画像全体に3分の1だけ焦点位置が異なる画像データF1を取得できる。画像データF1は、焦点位置Aでの画像データF11,F13と、焦点位置Bでの画像データF12と、を有する。図9(b)に示すように、画像データF1において、画像データF11と画像データF12との境界領域f1において、ラインデータで焦点位置の境界が分かれている。
ハンディターミナル1によりバーコード41を近接(焦点位置A)から読み取る場合、撮像素子211の画角に対してバーコード画像の相対サイズが大きくなるため、焦点位置Aの画像領域までバーコードイメージが大きくなったイメージとなり、焦点位置Aの画像領域でデコードが可能となる。焦点距離があっていれば、焦点位置Aの設定値にもよるが、焦点調整をせずにデコードをすることが可能になる。図10(a)に示すように、バーコード41を近距離に置いた場合のフレーム画像q1は、上下の画像領域Q11,Q13と、その間の画像領域Q12と、を有するバーコード画像Q1を含む。画像領域Q11,Q13では、焦点が合っておりバーが鮮明である。画像領域Q12では、焦点が合っておらずバーがぼやけている。
反対に、ハンディターミナル1によりバーコード41を遠方(焦点位置B)から読み取る場合、撮像素子211の画角に対するバーコード画像の相対サイズが小さいため、焦点位置Bの画像領域に収まるような小さなサイズのイメージとなり、焦点位置Bの画像領域でデコードが可能となる。焦点距離があっていれば、焦点位置Bの設定値にもよるが、焦点調整をせずにデコードをすることが可能になる。図10(b)に示すように、バーコード41を遠距離に置いた場合のフレーム画像q2は、上下の画像領域Q21,Q23と、その間の画像領域Q22と、を有するバーコード画像Q2を含む。画像領域Q21,Q23では、焦点が合っておらずバーがぼやけており、画像領域Q22では、焦点が合っておりバーが鮮明である。
一次元バーコード画像のデコードは、例えば、フレーム画像の中央位置をデコードの初期位置として、そのバーに垂直な方向のバーコード画像のデコードをし、デコードが成功するまで、バーコードのバーに平行な方向の上方向又は下方向にデコード位置をずらしてデコードしていく。例えば、複数のバーコード結果が照合され、照合された場合に、デコードが成功となる。このため、バーコード画像のバーに垂直な方向の全長にわたり鮮明なエリアが存在することがデコード可能の条件となる。バーコード画像Q1,Q2ともに、焦点が合っておりバーが鮮明な画像領域Q11,Q13,Q22を含む。このようなバーコード画像を含むフレーム画像を取り込んだ場合、デコードをすることが可能である。
次いで、図11〜図13を参照して、1つのバーコードを撮像して焦点位置の異なる2ラインずつの画像データを取得する場合の焦点調整、画像キャプチャ及びデコードを説明する。図11に、焦点位置の異なる2ラインずつに分割した画像の撮像における撮像素子211の画像キャプチャフレーム同期信号及びライン同期信号と、液体レンズ212の駆動電圧と、のタイミングチャートを示す。図12(a)は、2ラインずつに分割したフレーム画像の画像データF2を示す。図12(b)は、図12(a)の境界領域f2における拡大したラインデータを示す。図13(a)は、焦点位置Aのバーコード41を撮像した2ラインずつに分割したバーコード画像Q3を含むフレーム画像q3を示す。図13(b)は、焦点位置Bのバーコード41を撮像した2ラインずつに分割したバーコード画像Q4を含むフレーム画像q4を示す。
図11に示すように、イメージャコントローラ19は、撮像素子211から出力されたフレーム同期信号及びライン同期信号を受信すると、それに同期して電圧昇圧部20へのPWM信号のDuty比率を変更し、液体レンズ212に印加される駆動電圧を変化させる。イメージャコントローラ19の制御により、フレーム開始時に撮像素子211の焦点を焦点位置Aに設定して撮像素子211からRAM13へラインデータ転送を行い、1フレーム中の2ラインのラインデータの転送が終わった時点で、撮像素子211の焦点を焦点位置Bに切り替える。そして、1フレーム中の次の2ラインのラインデータ転送が終わった時点で再び、撮像素子211の焦点を焦点位置Aに切り替える。この焦点の切り替え及びラインデータ転送を繰り返す。
このことにより、図12(a)に示すように、画面の縦方向に2ラインずつ焦点位置が異なる画像データF2を取得できる。画像データF2は、焦点位置Aでの画像データF21と、焦点位置Bでの画像データF22と、を交互に有する。図12(b)に示すように、画像データF2において、画像データF21と画像データF22との境界領域f2において、ラインデータで焦点位置の境界が分かれている。
図13(a)に示すように、バーコード41を近距離に置いた場合のフレーム画像q3は、画像領域Q31と、画像領域Q32と、を交互に有するバーコード画像Q3を含む。画像領域Q31では、焦点が合っておりバーが鮮明である。画像領域Q32では、焦点が合っておらずバーがぼやけている。
図13(b)に示すように、バーコード41を遠距離に置いた場合のフレーム画像q4は、画像領域Q41と、画像領域Q42と、を交互に有するバーコード画像Q4を含む。画像領域Q41では、焦点が合っておらずバーがぼやけており、画像領域Q42では、焦点が合っておりバーが鮮明である。
バーコード画像Q3,Q4ともに、焦点が合っておりバーが鮮明な画像領域Q31,Q42を含む。このようなバーコード画像を含むフレーム画像を取り込んだ場合、デコードをすることが可能である。図9(a)の画像データF1の取り込みでは、遠方に置かれたバーコード41を読み取る際に表示部14のスルー画面(撮像素子211の読み取り領域)の中央にバーコードイメージが来るように操作が必要である。これに対し、図12(a)の画像データF2の取り込みでは、遠方時において表示部14の画面のどの場所にバーコードイメージが来ても読み取りが可能になる。一方、2ラインごとにバーコードの画像データを区切ってしまうが、品質の高いバーコードに対しては問題なくスキャンすることが可能になる。
次いで、図14及び図15を参照して、CPU11で実行されるバーコード読み取り処理と、イメージャコントローラで実行されるスキャン制御処理と、を説明する。図14に、CPU11で実行されるバーコード読み取り処理と、イメージャコントローラで実行されるスキャン制御処理と、のフローチャートを示す。図15に、スキャン制御処理のフレームデータ取得処理のフローチャートを示す。
図14を参照して、CPU11で実行されるバーコード読み取り処理を説明する。バーコード読み取り処理は、イメージャモジュール21を用いてバーコードをスキャンし、取得したバーコードの画像データをデコードする処理である。ハンディターミナル1において、トリガキー12A,12Cがユーザにより押下入力されたことをトリガとして、CPU11は、ROM15から読み出されてRAM13に適宜展開されたバーコード読み取りプログラム151との協働で、バーコード読み取り処理を実行する。
先ず、CPU11は、初期設定を行い、イメージャモジュール21の起動の指示信号をイメージャコントローラ19に出力する(ステップS11)。ステップS11の初期設定は、例えば、撮像素子211からイメージャコントローラ19に入力された画像データ(ラインデータ)をRAM13にDMA転送する際のRAM13内の記憶領域の設定である。
そして、CPU11は、DMA機能により、撮像素子211からイメージャコントローラ19に入力されたラインデータをRAM13にDMA転送して記憶させる(ステップS12)。そして、CPU11は、イメージャコントローラ19からフレームデータ取得の終了割り込み信号を受信したか否かを判別する(ステップS13)。終了割り込み信号を受信していない場合(ステップS13;NO)、ステップS12に移行される。
終了割り込み信号を受信した場合(ステップS13;YES)、CPU11は、RAM13に記憶されている1フレーム分の複数のラインデータに対して、デコードしやすいように、1フレームの画像データに合成する画像処理を施し、画像処理後の画像データに含まれるバーコード画像のデコードを行う(ステップS14)。そして、CPU11は、ステップS14のデコードが成功したか否かを判別する(ステップS15)。
デコードが成功していない場合(ステップS15;NO)、CPU11は、フレームデータ(1フレームのラインデータ)の取得を指示するフレームデータ取得の指示信号をイメージャコントローラ19に出力し(ステップS16)、ステップS12に移行される。
デコードが成功した場合(ステップS15;YES)、CPU11は、スキャンの終了の指示信号をイメージャコントローラ19に出力する(ステップS17)。そして、CPU11は、デコード結果を表示部14に表示し、デコード成功のブザー音を音出力部18に鳴動させ(ステップS18)、バーコード読み取り処理を終了する。
次いで、イメージャコントローラ19で実行されるスキャン制御処理を説明する。スキャン制御処理は、イメージャモジュール21を用いてバーコードをスキャンし、焦点距離の異なる複数の領域を有するバーコード画像を含む画像データを取得する処理である。ハンディターミナル1において、イメージャコントローラ19は、バーコード読み取り処理のステップS11に対応して、CPU11から起動の指示信号が入力されたことをトリガとして、スキャン制御処理を実行する。
先ず、イメージャコントローラ19は、初期設定を行う(ステップS21)。ステップS21の初期設定は、例えば、イメージャモジュール21からの画像データの受信に関する設定である。そして、イメージャコントローラ19は、イメージャモジュール21の電源をオンする(ステップS22)。
そして、イメージャコントローラ19は、焦点位置パターンを設定する(ステップS23)。焦点位置パターンは、1フレームのフレーム画像における画像領域の分割数又は分割後の各画像領域のライン数と、分割した各画像領域における液体レンズ212の焦点位置と、のパターンである。例えば、図9(a)の例では、1フレームにおける画像領域の分割数を3とし、各画像領域の焦点位置を上から下へ順に焦点位置A,B,Aとする焦点位置パターンに設定する。図12(a)の例では、1フレームにおける分割後の画像領域のライン数を2とし、各画像領域の焦点位置を上から下へ順に、焦点位置A,B,A,…とする焦点位置パターンに設定する。
そして、イメージャコントローラ19は、ステップS23で設定された焦点位置パターンに応じて1フレームのフレーム画像の画像データを取得するフレームデータ取得処理を実行する(ステップS24)。ステップS24のフレームデータ取得処理は、詳細に後述する。
そして、バーコード読み取り処理のステップS16、S17に対応して、イメージャコントローラ19は、CPU11から、フレームデータ取得又は終了の指示信号が入力されたか否かを判別する(ステップS25)。指示信号が入力されていない場合(ステップS25;NO)、ステップS25に移行される。指示信号が入力された場合(ステップS25;YES)、イメージャコントローラ19は、ステップS25で入力された指示信号が、フレームデータ取得の指示信号であるか否かを判別する(ステップS26)。
フレームデータ取得の指示信号である場合(ステップS26;YES)、ステップS23に移行される。ステップS26からステップS23に移行された後、ステップS23において、焦点位置パターンは、前回の焦点位置パターンと異なるものが設定される。なお、分割数又は画像領域のライン数が変更されずに焦点位置のみを変更する焦点位置パターンや、分割数が1の焦点位置パターンを設定してもよい。また、あら予め設定された複数の焦点位置パターンから一つの焦点位置パターンが選択される。
フレームデータ取得の指示信号でない場合(ステップS26;NO)、終了の指示信号であり、イメージャコントローラ19は、イメージャモジュール21の電源をオフし(ステップS27)、スキャン制御処理を終了する。
図15を参照して、ステップS24のフレームデータ取得処理を説明する。先ず、ステップS23で設定された焦点位置パターンに応じて、1フレームのフレーム画像の分割数n、分割した各画像領域における液体レンズ212の焦点位置P(Li)、フレーム画像のライン数Li(=1)、変数i(=1)を初期設定する(ステップS241)。そして、液体レンズ212の焦点位置を焦点位置P(Li)に設定し、焦点位置P(Li)に対応するPWM信号を生成して電圧昇圧部20に出力する(ステップS12)。このPWM信号に応じて、液体レンズ212の焦点位置が変更又は維持される。
そして、イメージャコントローラ19は、ラインLiに対応するライン指定信号を撮像素子211に出力し、撮像素子211によりキャプチャされたフレーム画像のラインLiに対応するラインデータが入力される(ステップS23)。ステップS23で入力されたラインデータは、バーコード読み取り処理のステップS12においてCPU11によりRAM13へDMA転送される。
そして、イメージャコントローラ19は、変数i>1024/nであるか否かを判別する(ステップS244)。ステップS244の1024は、撮像素子211のフレーム画像の全ライン数であるものとする。撮像素子211として、フレーム画像の全ライン数が1024以外のものを使用してもよい。i>1024/nでない場合(ステップS244;NO)、イメージャコントローラ19は、変数iを1インクリメントし、ライン数Liを1インクリメントし(ステップS245)、ステップS243に移行される。
i>1024/nである場合(ステップS244;YES)、イメージャコントローラ19は、ライン数Li=1024であるか否かを判別する(ステップS246)。Li=1024でない場合(ステップS246;NO)、イメージャコントローラ19は、変数iを1に設定し、ライン数Liを1インクリメントし(ステップS247)、ステップS242に移行される。Li=1024である場合(ステップS246;YES)、イメージャコントローラ19は、1フレームの画像キャプチャの終了割り込み信号をCPU11に出力し(ステップS248)、フレームデータ取得処理を終了する。
ここで、図16を参照して、本実施の形態のハンディターミナル1におけるバーコード読み取り手順の一例を説明する。図16に、ハンディターミナル1におけるバーコード読み取り手順の一例を示す。
ここでは、スキャン制御処理のステップS23において、フレーム画像の分割数を3に固定し、1フレーム内の画像領域の焦点距離を、焦点距離F1,F4→焦点距離F2,F3→焦点距離F1,F4→…として繰り返し変更するケースを説明する。図18における従来のイメージャデバイスの説明と同様に、焦点位置F3に対応する距離にあるバーコードB3と、焦点位置F1に対応する距離にあるバーコードB1と、を順に読み取る例を考え、焦点位置F1,F2,F3,F4は、順に、被写体が近い位置から遠い位置へ並べた液体レンズの4段階の焦点位置とする。
ハンディターミナル1において、トリガキー12Aが押下され、CPU11によるバーコード読み取り処理が開始され、イメージャコントローラ19によるスキャン制御処理が開始される。最初の1フレームにおいて、スキャン制御処理のステップS23で、液体レンズ212の焦点位置が3分割の焦点位置F1→F4→F1に設定され、スキャン制御処理のステップS24でバーコードB3の画像キャプチャがなされ、バーコード読み取り処理のステップS14でデコードがなされる。そして、得られた画像データのバーコード画像の焦点が合っていないため、デコードに失敗し、バーコード読み取り処理のステップS16でフレームデータ取得の指示がなされる。次の1フレームにおいて、スキャン制御処理のステップS23で、液体レンズの焦点位置が3分割の焦点位置F2→F3→F2に設定され、スキャン制御処理のステップS24でバーコードB3の画像キャプチャがなされ、バーコード読み取り処理のステップS14でデコードがなされる。得られた画像データのバーコード画像の焦点が合っているため、デコードが成功し、バーコード読み取り処理のステップS18でバーコードB3のデコード結果が表示部14に表示される。
そして、同様にして、ハンディターミナル1において、トリガキー12Aが押下され、バーコード読み取り処理及びスキャン制御処理が開始される。最初の1フレームにおいて、スキャン制御処理のステップS23で、液体レンズ212の焦点位置が3分割の焦点位置F2→F3→F2に設定され、スキャン制御処理のステップS24でバーコードB1の画像キャプチャがなされ、バーコード読み取り処理のステップS14でデコードがなされる。そして、得られた画像データのバーコード画像の焦点が合っていないため、デコードに失敗し、バーコード読み取り処理のステップS16でフレームデータ取得の指示がなされる。次の1フレームにおいて、スキャン制御処理のステップS23で、液体レンズの焦点位置が3分割の焦点位置F1→F4→F1に設定され、スキャン制御処理のステップS24でバーコードB3の画像キャプチャがなされ、バーコード読み取り処理のステップS14でデコードがなされる。得られた画像データのバーコード画像の焦点が合っているため、デコードが成功し、バーコード読み取り処理のステップS18でバーコードB1のデコード結果が表示部14に表示される。
このように、図18の従来のオートフォーカス機構を有するイメージャデバイスのスキャン手順に比べて、ハンディターミナル1でのスキャン手順は、工程数が少なく、フレームの画像キャプチャ及びデコードの回数も少なく、バーコード読み取り時間が短縮されている。
以上、本実施の形態によれば、ハンディターミナル1は、液体レンズ212と、撮像素子211と、1フレームの画像データを取得する際に、液体レンズ212の焦点位置を変更し、1フレームの中で異なる焦点位置の複数の画像領域の画像データを撮像素子211から取得するイメージャコントローラ19と、前記制御部により取得された複数の画像領域の画像データに含まれるバーコード画像をデコードするCPU11と、を有する。このため、液体レンズ212を用いたバーコード読み取りにおいて、1フレームの画像データにつき、複数の焦点位置を有するバーコード画像をデコードでき、読み取り時間を短縮できる。
また、イメージャコントローラ19は、1フレームの画像データを取得する際に、1フレームの画像を所定の分割数でライン毎に分割した画像領域毎に、液体レンズ212の焦点位置を変更し、異なる焦点位置の複数の画像領域の画像データを撮像素子211から取得する。このため、フレーム画像を所望の分割数で容易に分割できる。
また、イメージャコントローラ19は、1フレームの画像データを取得する際に、1フレームの画像のうちの所定のライン数の画像領域毎に、液体レンズ212の焦点位置を変更し、異なる焦点位置の複数の画像領域の画像データを撮像素子211から取得する。このため、フレーム画像を所望のライン数で容易に分割できる。
また、ハンディターミナル1は、液体レンズ212を備える。このため、液体レンズ212により焦点位置を高速に変更でき、物理的な可動部がないため耐久性を高くすることができ、液体レンズ212に電流が流れないため消費電力を少なくすることができる。
また、撮像素子211は、CMOSイメージセンサであり、フレーム画像の1ライン毎に、露光と画像データの転送とを行う。このため、フレーム画像を分割した複数の画像領域の画像データを容易に得ることができる。
また、CPU11は、撮像素子211から取得した複数の画像領域の画像データを、1フレームの画像データに合成し、当該合成した画像データに含まれるバーコード画像をデコードする。このため、バーコード画像を容易にデコードできる。
また、イメージャコントローラ19は、デコードが失敗した場合に、前記可変焦点レンズの画像領域における焦点位置のパターンを変更して、異なる焦点位置の複数の画像領域の画像データを撮像素子211から取得する。このため、異なる焦点位置のパターンの複数の焦点位置を有するバーコード画像をデコードしていくことができ、読み取り時間をさらに短縮できる。
また、イメージャコントローラ19は、複数の異なる焦点位置のパターンから一つを選択して変更する。このため、焦点位置のパターンを容易に変更できる。
なお、上記実施の形態における記述は、本発明に係るバーコード読取装置の一例であり、これに限定されるものではない。
上記実施の形態では、焦点可変レンズとして、液体レンズ212を用いる構成としたが、これに限定されるものではない。例えば、印加電圧により屈折率が変化する「電気光学結晶」の一種であるKTN(タンタル酸ニオブ酸カリウム、KTa1−xNbxO3)を用いた可変焦点レンズ等、他の可変焦点レンズとしてもよい。
また、上記実施の形態では、イメージャコントローラ19がASIC等の半導体回路であることとして説明したが、これに限定されるものではない。例えば、イメージャコントローラ19が、CPU、RAM及びROMにより構成され、ROMから読み出されてRAMに展開されたプログラムとCPUとの協働により、イメージャコントローラ19が処理を実行する構成としてもよい。
また、上記実施の形態におけるハンディターミナルの各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱することのない範囲で適宜変更可能であることは勿論である。