(57)【要約】【課題】極値を保存するためのメモリの記憶容量を節約し、２値化処理に必要とされる時間やバーコード読取手段への負荷を低減すること。【解決手段】バーコード読取装置１０Ａを、光源５０と、光源５０からの光をバーコード記号に走査するための走査ミラー２０と、バーコード記号での反射光を集める集光ミラー３０と、集光された光信号を電気信号に変換するセンサ６０と、センサ６０により生成された電気信号から微分信号を生成する微分処理部８０と、生成された微分信号の極値を検出する極値検出部９０Ａと、検出された極値が有効な極値か否かを判断する極値有効性判断部１００Ａと、極値有効性判断部１００Ａより有効と判断される極値に関する情報が記憶されるメモリ１０１Ａと、メモリ１０１Ａに記憶された極値に関する情報に基づいて２値化処理を行うバーコード幅データ生成部１３０Ａとから構成する。【選択図】      図１
2009110413.tif 000002
【特許請求の範囲】
【請求項１】
光源と、
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、
前記バーコード記号で反射した反射光を集光する集光手段と、
前記集光手段で集光された光信号を電気信号に変換するセンサ手段と、
前記センサ部により生成された前記電気信号から微分信号を生成する微分処理手段と、
前記微分処理手段によって生成された前記微分信号の極値を検出する極値検出手段と、
前記極値検出手段によって検出された前記極値が有効な極値か否かを判断する極値有効性判断手段と、
前記極値有効性判断手段によって有効と判断される極値に関する情報が記憶されるメモリと、
前記メモリに記憶された極値に関する情報に基づいて２値化処理を行うバーコード幅生成手段とを備えることを特徴とするバーコード読取装置。
【請求項２】
前記極値有効性判断手段は、前記極値検出手段によって検出された第２の極値と、前記極値よりも前に検出され、かつメモリに保存されている最新の第１の極値との間の時間間隔を計測し、計測した間隔が所定間隔よりも大きいか否かを判断し、前記時間間隔が前記所定間隔よりも大きい場合のみ、前記第２の極値に関する情報をメモリに保存することを特徴とする請求項１に記載のバーコード読取装置。
【請求項３】
バーコード信号の周波数を計測する周波数測定部を有し、
前記極値有効性判断部は、計測されたバーコード信号の周波数に基づいて前記所定間隔を設定することを特徴とする請求項２に記載のバーコード読取装置。
【請求項４】
前記極値有効性判断手段は、前記極値検出手段によって検出された第２の極値と、前記極値よりも前に検出され、かつメモリに保存されている最新の第１の極値との間に存在する、サンプリングレートに基づいたサンプリングされたデータ数が所定個数よりも多いか否かを判断し、前記データ数が前記所定の個数よりも多い場合のみ、前記第２の極値に関する情報を前記メモリに保存することを特徴とする請求項１に記載のバーコード読取装置。
【請求項５】
前記極値有効性判断手段は、前記極値検出手段によって検出された第２の極値と、前記第２の極値よりも前に検出され、かつメモリに保存されている最新の第１の極値とがそれぞれ同極性である場合、前記第１の極値と第２の極値とのそれぞれの電圧値を比較し、電圧値の高い方の極値を有効と判断することを特徴とする請求項１に記載のバーコード読取装置。
【請求項６】
前記極値有効性判断手段は、前記第２の極値が有効と判断された場合、前記第２の極値に関する情報をメモリに保存すると共に、前記第１の極値に関する情報を前記メモリから消去することを特徴とする請求項６に記載のバーコード読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード読取装置に関し、特にバーコード記号の読取信号にノイズが多い場合にメモリの記憶容量が節約されるバーコード読取装置に関する。
【背景技術】
【０００２】
バーコード記号は、商品販売、物流、生産工程などにおける物品の管理情報を表記する手段として広汎に用いられている。
【０００３】
図１３は、バーコード記号を読み取るための一般的なバーコード読取装置の構成を概略的に示すブロック図である。図１４は、図１３に示されているバーコード読取装置内の信号の一例を示す図である。
【０００４】
このバーコード読取装置１０Ｅは、駆動制御部２０ａと、この駆動制御部２０ａにより制御される走査ミラー２０と、集光ミラー３０と、反射ミラー４０と、光源制御部５０ａと、この光源制御部５０ａにより制御される光源５０と、センサ６０と、光電変換部７０と、微分処理部８０と、ピークホールド／ボトムホールド検出部９０Ｅと、閾値設定部１００Ｅと、比較部１１０Ｅと、バーコード幅データ生成部１２０Ｅとを有している。
【０００５】
バーコード記号２００は、図１４に一例として示されているように、複数の太いエレメントと細いエレメントのセットからなる。エレメントからの光の反射率は、比較的低い。その反射率は、エレメントの太さに応じて変化するため、変換後の電圧信号（光電変換信号）には、ほぼエレメントの太さに応じた極小値が生じる。
【０００６】
光電変換部７０は、微分処理部８０に接続され、この電圧信号を微分処理部８０に入力する。入力された電圧信号は、微分処理部８０で、微分信号に変換される。このような微分信号の一例が図１４に示されている。図示されている微分信号は、回路内の信号処理により光電変換信号よりも遅延している。
【０００７】
微分処理部８０は、ピークホールド／ボトムホールド検出部９０Ｅと比較部１１０Ｅとに接続され、この微分信号をこれらに入力する。ピークホールド／ボトムホールド検出部９０Ｅは、ノイズと信号との区別が行なわれる。ピークホールド／ボトムホールド検出部９０Ｅは、閾値設定部１００Ｅに接続され、ピークホールド／ボトムホールド検出部９０Ｅの出力（ピークホールド値、ボトムホールド値）は、閾値設定部１００Ｅに入力される。この閾値設定部１００Ｅでは、ピークホールド値とボトムホールド値とを所定の比率により分圧し、閾値となる閾値信号を出力する。閾値設定部１００Ｅは、比較部１１０Ｅに接続されている。比較部１１０Ｅでは、上記の微分信号と閾値信号とを比較することにより、微分信号のうち閾値以上のレベルを有する信号を有効な信号とし、複数の比較信号として出力する。一方、閾値信号未満のレベルの信号はノイズと判断される（図１９に示されている例では、細いエレメントに対応する信号は、有効性を判断する閾値よりも低く有効な信号として判断されない）。バーコード幅データ生成部１２０Ｅは、これら比較信号から、バーコード幅データを生成する。
【０００８】
特許文献１では、２値化処理を行なった後に、所定の範囲より小さいパルスを無視することによりノイズを除去することが開示されている。
【特許文献１】特開平１０−３２０４９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述の特許文献１に開示されている一連の信号処理方法の中で、Ａ／Ｄ変換を行ない、デジタル信号処理を行なう処理方法においては、ノイズが多い場合には、処理するデータ量が多くなるため、信号を記憶する記憶手段に大きな記憶容量が必要となる。
【００１０】
また、図１４に拡大図で示されているように、微分信号にノイズが多い場合には、上述のように所定の範囲よりも小さいパルスを無視することや、図１３に示されている従来例で説明されたように電圧の閾値による有効性の判断のみでは、バーコードエッジを正確に検出することに対して十分とはいえない。
【００１１】
本発明は、このような問題点を鑑みてなされてものであり、極値を保存するためのメモリの記憶容量を節約することができ、２値化処分に必要とされる時間やバーコード読取手段への負荷を低減することができるバーコード読取装置を提供することを目的としている。
【課題を解決するための手段】
【００１２】
本発明の一態様によれば、  
光源と、  
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、  
前記バーコード記号で反射した反射光を集光する集光手段と、  
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、  
前記センサ部により生成された電気信号から微分信号を生成する微分処理手段と、  
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、  
前記極値検出手段によって検出された極値のうち有効な極値か否かを判断する極値有効性判断手段と、  
前記極値有効性判断手段によって有効と判断される極値に関する情報が記憶されるメモリと、  
前記メモリに記憶された極値に関する情報に基づいて２値化処理を行うバーコード幅生成手段とを備えることを特徴とするバーコード読取装置が提供される。
【発明の効果】
【００１３】
本発明によれば、極値を保存するためのメモリの記憶容量を節約することができる。また、本発明によれば、２値化処分に必要とされる時間やバーコード読取手段への負荷を低減することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【００１５】
[第１実施形態]  
図１は、本発明の第１実施形態によるバーコード読取装置１０Ａの構成の概略を示すブロック図である。
【００１６】
このバーコード読取装置１０Ａは、駆動制御部２０ａと、この駆動制御部により制御される走査ミラー２０と、集光ミラー３０と、反射ミラー４０と、光源制御部５０ａと、この光源制御部５０ａにより制御される光源５０と、センサ６０と、光電変換部７０と、微分処理部８０と、極値検出部９０Ａと、極値有効性判断部１００Ａと、閾値設定部１１０Ａと、比較部１２０Ａと、バーコード幅データ生成部１３０Ａとを有している。極値有効性判断部１００Ａは、メモリ１０１Ａと、極値間時間計測部１０２Ａと、時間比較部１０３Ａとを備えている。
【００１７】
以下で、これらの各構成要素の動作について述べる。光源制御部５０ａは、光源５０に制御線を介して接続されている。この光源５０は、光を発生させる。光源５０により発生された光は、反射ミラー４０に到達し反射される。反射ミラー４０により反射された光は、走査ミラー２０に到達する。走査ミラー２０は、駆動制御部２０ａにより制御線を介して制御されることにより、光をバーコード記号２００への走査光としてバーコード記号２００の左右両方向に繰り返し走査させる。バーコード記号２００による走査光の反射光は、再び走査ミラー２０に到達し、反射される。この反射光は、集光ミラー３０により、センサ６０に集められる。センサ６０で受光された反射光は、センサ６０により、電流信号に変換される。センサ６０は、光電変換部７０に接続され、光電変換部７０は、この電流信号を電圧信号に変換する。
【００１８】
光電変換部７０は、微分処理部８０に接続され、この電圧信号を微分処理部８０に入力する。入力された電圧信号は、微分処理部８０で、微分信号に変換される。
【００１９】
第１実施形態の微分処理部８０は、極値検出部９０Ａに接続され、この微分信号を極値検出部９０Ａに入力する。この極値検出部９０Ａは、バーコード信号のエッジ、すなわち微分信号の極値を検出する。（検出された極値は、電圧値だけでなく、時間データも有している。すなわち、極値の電圧値と時間とが検出される。）
極値検出部９０Ａは、極値有効性判断部１００Ａに接続されている。この極値有効性判断部１００Ａは、メモリ１０１Ａと、極値間時間計測部１０２Ａと、時間比較部１０３Ａとを備え、これらは、互いに接続されている。
【００２０】
極値有効性判断部１００Ａは、以下で述べるように極値間の時間データの大小から有効な極値かどうかを判断する。極値有効性判断部１００Ａは、閾値設定部１１０Ａに接続されている。閾値設定部１１０Ａは、比較部１２０Ａに接続されている。比較部１２０Ａは、閾値と極値有効性判断部１００Ａで有効とされた極値との比較を行ない、極値の有効性を再度判断する。比較部１２０Ａは、バーコード幅データ生成部１３０Ａに接続されている。
【００２１】
バーコード幅データ生成部１３０Ａは、極値の時間データに基づいてバーコードの幅データを生成する。（このようなバーコード幅データ生成部１３０Ａの処理を、以下では、２値化処理と称することがある。）
図２は、以上で述べたバーコード読取装置１０Ａの処理の詳細を示すフローチャートである。このフローチャートは、バーコード読取装置１０Ａの動作のうち、センサ６０が集光ミラー３０からの反射光を受光した後の動作を示している。
【００２２】
まず、センサ６０で得られた反射光を光電変換部７０により光電変換し電圧信号に変換する（ステップＳ１０Ａ）。光電変換により得られた電圧信号を微分処理部８０において微分、フィルタリングを行なうことにより微分信号に変換する（ステップＳ２０Ａ）。
【００２３】
極値検出部９０Ａは、この微分信号をＡ／Ｄ変換し（ステップＳ３０Ａ）、デジタルサンプリングデータに変換する。続いて、極値の検出が行なわれたことがあるかどうかを判定するためのフラグＬに０を代入することによりリセットする（ステップＳ４０Ａ）。
【００２４】
さらに、極値検出部９０Ａは、このデジタルサンプリングデータからバーコードのエッジに相当する極値を検出する（ステップＳ５０Ａ）。続いて、フラグＬ＝０であるかどうかが判定される（ステップＳ６０Ａ）。検出された極値が最初の極値であった場合（ステップＳ６０ＡをＹＥＳに分岐）、フラグＬに値１が代入され（ステップＳ７０Ａ）、検出された極値は、極値有効性判断部１００Ａのメモリ１０１Ａに仮に有効として保存される（ステップＳ１１０Ａ）。この場合の保存は、極値の値と時間データとを対にして経時データの形式で行なわれる。有効な極値とは、バーコード幅データを生成するための極値として有効という意味である。
【００２５】
続いて、極値の検出が終了したかどうかが判定される（ステップＳ１２０Ａ）。すなわち、前記デジタルサンプリングデータの中にまだ極値が残っているかどうかが判定される。まだ極値の検出が終わっていない場合には、このステップＳ１２０ＡをＮＯに分岐し、ステップＳ５０Ａに戻る。このステップＳ１２０ＡをＹＥＳに分岐する場合については、後述する。
【００２６】
フローが、ステップＳ５０Ａに戻ると、上述のように極値検出部９０Ａによる、極値の検出が再び行なわれる。第１実施形態における極値検出部９０Ａによる極値の検出は、極小値と極大値とを交互に検出するように行なわれる。すなわち、上述のように極値有効性判断部１００Ａのメモリ１０１Ａに保存された１つ目の極値が極大値であれば、ここで検出される極値は、極小値である。逆に、保存された１つ目の極値が極小値であれば、ここで検出される極値は、極大値である。
【００２７】
以下では、最初に仮に有効として保存された極値が極大値であるとしてフローの説明を進める。最初に仮に有効として保存された極値が極小値の場合は、以下の説明で極大値と極小値とを相互に読み替えればよい。
【００２８】
続いて、上記のように、再び、最後に検出された極値が最初の極値であるかどうかが判定される（Ｌ＝０であるかどうかの判定）（ステップＳ６０Ａ）。この場合、上記のように、ステップＳ７０でＬに値１を代入したので、このステップＳ５０ＡをＮＯに分岐する。
【００２９】
直前に仮に有効とされて保存された極値データが、メモリ１０１Ａから読み出される（ステップＳ８０Ａ）。もし、最初の極値が仮に有効と判断されて保存された後、仮に有効として保存された極値がないならば、この読み出される極値データは、最初に（ステップＳ６０ＡをＹＥＳに分岐して）ステップＳ１１０Ａで保存されたデータである。もし、最初の極値が仮に有効と判断された保存された後、さらに仮に有効として保存された極値があれば、その極値のデータが読み出されることになる。
【００３０】
極値有効性判断部１００Ａの極値間時間計測部１０２Ａは、保存され読み出された極値と、検出された極値との間の時間（それぞれの時間データの間の差）を計測する（ステップＳ９０Ａ）。続いて、極値有効性判断部１００Ａの時間比較部１０３Ａは、計測された極値間の時間と、あらかじめ設定されていた所定の時間とを比較する（ステップＳ１００Ａ）。この所定の時間は、調節可能なパラメータであってもよい。以下では、この比較の結果、極値間の時間が所定の時間より長い場合（ステップＳ１００ＡをＹＥＳに分岐）と、極値間の時間が所定の時間以下である場合（ステップＳ１００ＡをＮＯに分岐）とに分けてそれぞれ説明する。
【００３１】
まず、極値間の時間が所定の時間より短い場合（ステップＳ１００ＡをＹＥＳに分岐）、フローは、ステップＳ１１０Ａに再び進み、検出された極値を有効な極値として保存する。図３は、第１実施形態における微分信号と検出された対応する極値との一例を示す図である。極値Ａ０が、最初の極値（極大値）であり、上述のように仮に有効として最初に保存された極値である。
【００３２】
図３で、区間αに示されている極大値Ａ０、極小値Ａ１が、極値間の時間が所定の時間より長い場合に該当する。この場合、上述のように、極小値Ａ１が２番目に仮に有効な極値として保存される（ステップＳ１１０Ａ）。続いて図３に示されている信号の場合、まだ極値の検出が終了していないので、フローは、ステップＳ５０Ａに戻る（ステップＳ１２０ＡをＮＯに分岐）。
【００３３】
続いてステップＳ５０Ａでは、Ａ２が極値として検出され、この極値Ａ２に関して、直前に仮に有効として新たに保存された極値Ａ１を極値間の時間の計測の起点としてステップＳ５０ＡからＳ９０Ａが反復される。この結果、図３に示されている例では、極値Ａ２も仮に有効な極値として保存される。この例で、仮に有効として極値有効性判断部１００Ａのメモリ１０１Ａに保存された極値は、極大値（Ａ０）、極小値（Ａ１）、極大値（Ａ２）のように極大値と極小値が交互になる。ノイズが検出されない限りこの関係を継続しながら仮に有効な極値の保存が行なわれる。
【００３４】
次に、極値間の時間間隔が所定の時間以下である場合（ステップＳ１００ＡをＮＯに分岐）、フローは、新たに検出された極値をノイズとして判定し、この極値を保存しない。この場合、フローは、ステップＳ４０に戻る。図３では、区間βに示されている極大値Ａ２が上述のように仮に有効な極値として保存された場合に、極小値Ａ３は、この極大値Ａ２との時間間隔が所定時間以下であるため、ノイズと判断される。この場合、この極小値Ａ３は、保存されない。
【００３５】
続いて、ステップＳ５０Ａでは、極値の検出が再び行なわれる。この場合、図３に示されている信号では直後の極値は、極大値Ａ４である。しかしながら、直前に仮に有効として保存された極値Ａ２が極大値であるため、ここでは極値検出部９０Ａは、極大値Ａ４を検出しない。上述のように、第１実施形態の極値検出部９０Ａは、極大値と極小値とを互いに交互に検出するからである。結果としてこの極大値Ａ４は、検出されずにスキップされ、次の極小値Ａ５が極値として検出される。
【００３６】
このような処理が繰り返されて、全ての極値の検出が終了すると、フローは、ステップＳ１２０ＡをＹＥＳに分岐する。
【００３７】
以上では、極小値がノイズである場合に、直後の極大値が検出されずにスキップされ、次の極小値が検出される例を述べた。しかしながら、上述のように、極大値がノイズであれば、直後の極小値が検出されずにスキップされ、次の極大値が検出される。
【００３８】
続いて、仮に有効として保存された極値を全て読み出したかどうかが判定される（ステップＳ１３０Ａ）。全ての極値を読み出したと判定された場合には、後述するように２値化処理を行なう。まだ、全ての極値を読み出していないと判定された場合には、上述のステップＳ１１０Ａで極値有効性判断部１００Ａのメモリ１０１Ａに仮に有効として保存された極値が１つ読み出される（ステップＳ１４０Ａ）。
【００３９】
閾値設定部１１０Ａは、この読み出された極値の有効性を判断するための閾値を有している。
【００４０】
比較部１２０Ａでは、この読み出された極値の絶対値が所定の閾値よりも大きいかどうかが判定される（ステップＳ１５０Ａ）。極値の絶対値が所定の閾値以下である場合、この極値は、ノイズであると判定される。この結果、この極値は、バーコード幅データを生成するために有効な極値とならない。この場合、フローはステップＳ１３０Ａに戻る。逆に、極値の絶対値が閾値よりも大きいと判断された場合には、この極値は、バーコード幅データを生成するために用いられる有効な極値であるとして、比較部１２０Ａに保存される（ステップＳ１６０Ａ）。この後、フローは、ステップＳ１３０Ａに戻る。
【００４１】
全ての保存されたデータが読み出されたと判断された場合（ステップＳ１３０ＡをＹＥＳに分岐）には、続いて２値化処理が行なわれる（ステップＳ１７０Ａ）。バーコード幅データ生成部１３０Ａは、有効な極値として比較部１２０Ａに保存された極値の時間データを用いて２値化処理を行なう。
【００４２】
図４は、２値化処理の詳細を示すフローチャートである。まず、比較部１２０Ａに記憶された全ての有効な極値をバーコード幅データ生成部１３０Ａに読み出したかどうかを判定する（ステップＳ１７０Ａ１）。このステップＳ１７０Ａ１をＮＯに分岐する場合、比較部１２０Ａから有効と判断された極値を読み出し（ステップＳ１７０Ａ２）、読み出された極値をバーコード幅データ生成部１３０Ａに保存する（ステップＳ１７０Ａ３）。この処理をステップＳ１７０Ａ１がＹＥＳに分岐するまで行い、続いて読み出し保存された極値からバーコード幅データを生成する（ステップＳ１７０Ａ４）。
【００４３】
この２値化処理の結果は、このバーコード読取装置１０Ａに接続されたデコーダ（図示されていない）に出力される（ステップＳ１８０Ａ）。バーコード読取装置１０Ａは、デコーダから出力結果に基づいた処理中止の命令がこない限り、上記の処理を反復するために、光電変換に戻りローデータの取得を再開する（ステップＳ１０Ａ）。
【００４４】
以上説明したように、本実施形態によれば、極値間の時間差を計測してノイズを判定し、ノイズと判定された極値の保存を行なわないことにより、ノイズを含めて全ての極値データを一旦保存する処理方法よりも必要なメモリの記憶容量を小さくすることができる。また、特に、ノイズの発生が多い場合、検出されたノイズを２値化処理に用いないことにより、２値化処理に必要とされる時間や装置への負荷が低減される。
【００４５】
[第２実施形態]  
図５は、本発明の第２実施形態によるバーコード読取装置１０Ｂの構成の概略を示すブロック図である。本実施形態の構成部について、前述した第１の実施形態と同等の構成部には同じ参照符号を付して、その詳細な説明を省略する。
【００４６】
このバーコード読取装置１０Ｂは、駆動制御部２０ａと、この駆動制御部により制御される走査ミラー２０と、集光ミラー３０と、反射ミラー４０と、光源制御部５０ａと、この光源制御部５０ａにより制御される光源５０と、センサ６０と、光電変換部７０と、微分処理部８０と、極値検出部９０Ｂと、極値有効性判断部１００Ｂと、閾値設定部１１０Ｂと、比較部１２０Ｂと、バーコード幅データ生成部１３０Ｂとを有している。極値有効性判断部１００Ｂは、メモリ１０１Ｂと、極値間時間計測部１０２Ｂと、時間比較部１０３Ｂと、極値極性比較部１０４Ｂと、極値電圧比較部１０５Ｂとを備えている。
【００４７】
以下で、これらの各構成要素の動作について述べる。しかし、駆動制御部２０ａ、走査ミラー２０と、集光ミラー３０と、反射ミラー４０と、光源制御部５０ａと、光源５０と、センサ６０と、光電変換部７０と、微分処理部８０との動作は、第１実施形態と同様であるため、ここでは説明を省略する。
【００４８】
第１実施形態の微分処理部８０は、極値検出部９０Ｂに接続され、この微分信号を極値検出部９０Ｂに入力する。この極値検出部９０Ｂは、バーコード信号のエッジ、すなわち微分信号の極値を検出する。（検出された極値は、電圧値だけでなく、時間データも有している。すなわち、極値の電圧値と時間とが検出される。）
極値検出部９０Ｂは、極値有効性判断部１００Ｂに接続されている。この極値有効性判断部１００Ｂは、メモリ１０１Ｂと、極値間時間計測部１０２Ｂと、時間比較部１０３Ｂと、極値極性比較部１０４Ｂと、極値電圧比較部１０５Ｂとを備え、これらは、互いに接続されている。
【００４９】
極値有効性判断部１００Ｂは、以下で述べるように極値間の時間データの大小からのみではなく、同一の極性の２つの極値に関して、さらに、電圧の比較も行い、この結果、ノイズと思われる一方のみを無効とすることにより、有効な極値かどうかを判断する（ここで「極性」とは、極大及び極小の区別のことである。例えば、２つの極大値は、同一の極性を有する極値である。２つの極小値も同一の極性を有する極値である。これに対して、１つの極大値と１つの極小値とは、異なる極性を有する極値である）。
【００５０】
極値有効性判断部１００Ｂは、閾値設定部１１０Ｂに接続されている。閾値設定部１１０Ｂは、比較部１２０Ｂに接続されている。比較部１２０Ｂは、閾値と極値有効性判断部１００Ｂで有効とされた極値との比較を行ない、極値の有効性を再度判断する。比較部１２０Ｂは、バーコード幅データ生成部１３０Ｂに接続されている。
【００５１】
図６は、以上で述べたバーコード読取装置１０Ｂの処理の詳細を示すフローチャートである。このフローチャートは、図５を参照して述べたバーコード読取装置１０Ｂの動作のうち、センサ６０が集光ミラー３０からの反射光を受光した後の動作を示している。
【００５２】
まず、センサ６０で得られた反射光を光電変換部７０により光電変換し電圧信号に変換する（ステップＳ１０Ｂ）。光電変換により得られた電圧信号を微分処理部８０において微分、フィルタリングを行なうことにより微分信号に変換する（ステップＳ２０Ｂ）。極値検出部９０Ｂは、この微分信号をＡ／Ｄ変換し（ステップＳ３０Ｂ）、デジタルサンプリングデータに変換する。次に、極値の検出がすでに行なわれたことを示すフラグＬに値０を代入してリセットする（ステップＳ４０Ｂ）。
【００５３】
極値検出部９０Ｂは、このデジタルサンプリングデータからバーコードのエッジに相当する極値を検出する（ステップＳ５０Ｂ）。続いて、フラグＬの値が０であるかどうかを判定する（ステップＳ６０Ｂ）。検出された極値が最初の極値であった場合、Ｌ＝０であり、このステップＳ６０ＢをＹＥＳに分岐する。この場合、フラグＬに値１が代入され（ステップＳ７０Ｂ）、検出された極値は、極値有効性判断部１００Ｂのメモリ１０１Ｂに仮に有効として保存される（ステップＳ８０Ｂ）。保存は、極値の値と時間データとを対にして経時データの形式で行なわれる。
【００５４】
続いてフローは、ステップＳ５０Ｂに戻り、極値を新たに検出する。第２実施形態における極値検出部９０Ｂによる極値の検出は、第１実施形態の極値検出部９０Ａと異なり、必ずしも、極小値と極大値とを交互に検出するように行なわれない。すなわち、上述のように極値有効性判断部１００Ａのメモリ１０１Ａに保存された１つ目の極値が極大値であっても、ここで検出される極値は、極小値又は極大値である（上述した極値どうしの「極性」に関係なく極値の検出が行なわれる）。続くステップＳ６０Ｂでは、このフローが最終的な処理を行なうまで、常にＮＯに分岐する（Ｌ＝１であるため）。
【００５５】
続いて、新たに検出された極値との比較のために、極値有効性判断部１００Ｂのメモリ１０１Ｂに最後に保存された極値のデータを読み出す（ステップＳ９０Ｂ）。もし、最初の極値が仮に有効と判断されて保存された後、仮に有効として保存された極値がないならば、この読み出される極値データは、最初に（ステップＳ６０ＢをＹＥＳに分岐して）ステップＳ８０Ｂで保存されたデータである。もし、最初の極値が仮に有効と判断された保存された後、さらに仮に有効として保存された極値があれば、その極値のデータが読み出されることになる。
【００５６】
極値有効性判断部１００Ｂの極値極性比較部１０４Ｂは、この読み出された極値と、最も直近に実行されたステップＳ５０Ｂで検出された極値との極性を判定する（ステップＳ１００Ｂ）。この場合、これら２つの極値の極性が同一ならば（ステップＳ１００をＹＥＳに分岐）、ステップＳ１４０Ｂに進む。この場合の処理については、別のフローチャートを参照して詳述する。ここでは、まず、これら２つの極値の極性が異なるとして説明する（ステップＳ１００ＢをＮＯに分岐）。
【００５７】
２つの極値の極性が異なる場合の処理は、第１実施形態の処理と同様である。極値有効性判断部１００Ｂの極値間時間計測部１０２Ｂは、保存され読み出された極値と、検出された極値との間の時間（それぞれの時間データの間の差）を計測する（ステップＳ１１０Ｂ）。続いて、極値有効性判断部１００Ｂの時間比較部１０３Ｂは、計測された極値間の時間と、あらかじめ設定されていた所定の時間とを比較する（ステップＳ１２０Ｂ）。この所定の時間は、調節可能なパラメータであってもよい。
【００５８】
この比較の結果、極値間の時間が所定の時間より長い場合（ステップＳ１２０ＢをＹＥＳに分岐）には、新たに検出された極値を仮に有効として極値有効性判断部１００Ｂのメモリ１０１Ｂに保存する（ステップＳ１３０Ｂ）。続いて、極値の検出が終了したかどうかが判別される（ステップＳ１５０Ｂ）。極値の検出が終了したと判定される場合（ステップＳ１５０ＢをＹＥＳに分岐）については以下で述べる。極値の検出がまだ終了していない場合（ステップＳ１５０ＢをＮＯに分岐）には、ステップＳ５０Ｂに戻る。
【００５９】
一方、極値間の時間が所定の時間以下である場合（ステップＳ１００ＡをＮＯに分岐）、あらたに検出された極値を保存せずにステップＳ１５０Ｂに進む。この場合、ステップＳ５０Ｂに戻るとあらたに極値の検出を行なうことになる。しかし、上述したように、第２実施形態での極値の検出は、極性に関わらず行なわれるので極値検出部９０Ｂは、極値をスキップせずに検出する。
【００６０】
以下では、ステップ１００Ｂで、仮に有効として保存した極値とあらたに検出された極値の極性が同じ場合（ステップ１００ＢをＹＥＳに分岐）について説明する。
【００６１】
図７は、極値電圧による有効性判断処理の詳細を示すフローチャートである。  
まず、仮に有効として保存された極値が極大値であるかどうかを判定する（ステップＳ１４０Ｂ１）。図６に示されているメインフローでステップＳ１４０Ｂの処理が行なわれるのは、比較される２つの極値の極性が同じ場合であるから、ステップＳ１４０Ｂ１は、これら２つの極値が極大値であるかどうか判定しているのと同等である。まず、これら２つの極値が極大値である場合（ステップＳ１４０Ｂ１をＹＥＳに分岐）について詳述する。これら２つの極値が極小値である場合（ステップＳ１４０Ｂ１をＮＯに分岐）の処理は、同様であるから後で簡単に説明する。
【００６２】
２つの極値が極大値である場合、次に仮に有効として保存され比較のために読み出された極値が検出された極値より大きいかどうかが判定される（ステップＳ１４０Ｂ２）。この判定は、極値有効性判断部１００Ｂの極値電圧比較部１０５Ｂが行なう。保存されていたほうの極値が検出された極値よりも大きい場合には（ステップＳ１４０Ｂ２をＹＥＳに分岐）、保存されていた極値をそのまま残し、新たに検出された極値は、保存されずに破棄され、サブフローを終了しメインフロー（図６）に戻る。逆に、仮に有効として保存された極値の方が検出された極値以下である場合（ステップＳ１４０Ｂ２をＮＯに分岐）には、仮に有効として保存した極値は無効とされメモリから削除され（ステップＳ１４０Ｂ３）、代わりに新たに検出された極値が仮に有効として保存される（ステップＳ１４０Ｂ４）。その後、サブフローを終了しメインフロー（図６）に戻る。
【００６３】
図８（Ａ）、（Ｂ）は、極値電圧による有効性判断処理の一例である。図８（Ａ）、（Ｂ）のいずれも上述のように、２つの極値が極大値である場合について示している。図８（Ａ）は、極大値が２値化処理で本来ピークとして用いられるところ付近に生じた極大値に関する極値電圧による有効性判断処理の一例を示している。一方、図８（Ｂ）は、極大値が２値化処理で本来ボトムとして用いられるところ付近に生じた極大値に関する極値電圧による有効性判断処理の一例を示している。
【００６４】
図８（Ａ）に凡例として示されているように、図６に示されているフローのステップＳ１２０Ｂの所定の時間は、簡単のため、これら本来のピークとボトムとの間隔のスケールより小さいが、ノイズの時間間隔よりは大きく取られている。したがって、図６に示されているメインのフローで、ステップＳ１００ＢをＮＯに分岐しても、極性の異なる極値（この場合は、極小値を意味する）がステップＳ１３０Ｂで仮に有効な極値として保存されることはない。この結果、以下の説明では、図８をステップＳ１４０Ｂ１からＳ１４０Ｂ３を行なった処理だけを説明する。
【００６５】
図８（Ａ）では、最初に保存されている極値（Ａ１）は、検出された極値（Ａ３）より小さい。（上述のように極小値Ａ２、Ａ３、Ａ４は、検出されても直前の極大値との時間間隔が所定の時間より小さいため保存されないので以下では説明しない。）最大の極大値は、Ａ５である。この状況では、ステップＳ１４０Ｂ２をＮＯに分岐する。この結果、極値Ａ１はメモリ１０１Ｂから削除され、あらたにＡ３がメモリに仮に有効な極値として保存される。（Ａ３とＡ４との時間間隔を比較する際の起点はＡ３の時間データに移動する。以下も同様である。）Ａ３の電圧がＡ５の電圧より大きいので同様に、Ａ３はメモリ１０１Ｂから削除され新たにＡ５のデータが保存される。次に、Ａ５とＡ７の電圧を比較するとＡ５の方が大きいので、初めて図７に示されているサブフローは、Ｓ１４０Ｂ２でＹＥＳに分岐する。結局、極大値としてＡ５が有効となり、以降はメインフローのステップＳ１１０ＢからＳ１３０Ｂを反復して有効な極値（極小値）を探索する。
【００６６】
図８（Ｂ）では、ボトム付近に最初に保存された極値Ａ１があり、その後、Ａ２からＡ１２まで極大値が上昇し、Ａ１３で極大値は下降に転じている。図８（Ａ）と同じ説明になるので説明を省略するが、保存される極値はＡ１からＡ１１まで変化し、それ以前の極大値Ａ１からＡ９はメモリ１０１Ｂに保存されない。結局この場合も、極大値は、ピーク近くまで探索が進みその後は下げ止まり、以降は、メインフローのステップＳ１１０ＢからＳ１３０Ｂを反復して有効な極値（極小値）を探索する。
【００６７】
図７に示されているサブフローでステップＳ１４０Ｂ５からＳ１４０Ｂ７までに進む場合は、極小値同士の比較が問題となるが、図８を参照して説明した極大値の移動のように、極小値が移動することにより最も適当な位置（ボトム付近）が探索される。この過程は、極大値を用いた有効性判断処理と同様であるから説明を省略する。
【００６８】
図７のサブフローで極値の電圧を比較する場合の基準となる電圧は、あらかじめ設定された基準電圧からでもかまわないし、有効性を判断している極値を判断される極値より以前に検出された極値でもかまわない。
【００６９】
極値の検出が終了すると（ステップＳ１５０ＢをＹＥＳに分岐）、次に仮に有効として保存されたデータの読み込みが終了しているかどうかが判定される（ステップＳ１６０Ｂ）。終了している場合（ステップＳ１６０ＢをＹＥＳに分岐）には、２値化処理に進むが、このことは後述する。
【００７０】
まだ終了していない場合（ステップＳ１６０ＢをＮＯに分岐）、まだ読み出されていない仮に有効として保存されたデータの読出しが行なわれる（ステップＳ１７０Ｂ）。
【００７１】
閾値設定部１１０Ｂは、この読み出された極値の有効性を判断するための閾値を有している。
【００７２】
比較部１２０Ｂでは、この読み出された極値の絶対値が所定の閾値よりも大きいかどうかが判定される（ステップＳ１８０Ｂ）。極値の絶対値が所定の閾値以下である場合、この極値は、ノイズであると判定される。この結果、この極値は、バーコード幅データを生成するために有効な極値とならない。この場合、フローはステップＳ１６０Ｂに戻る。逆に、極値の絶対値が閾値よりも大きいと判断された場合には、この極値は、バーコード幅データを生成するために用いられる有効な極値であるとして、比較部１２０Ｂに保存される（ステップＳ１９０Ｂ）。この後、フローは、ステップＳ１６０Ｂに戻る。
【００７３】
全ての保存されたデータが読み出されたと判断された場合（ステップＳ１６０ＢをＹＥＳに分岐）には、続いて２値化処理が行なわれる（ステップＳ２００Ｂ）。バーコード幅データ生成部１３０Ｂは、有効な極値として比較部１２０Ｂに保存された極値の時間データを用いて２値化処理を行なう。２値化処理の詳細は、図４を参照して説明した第１実施形態と同様であるので説明を省略する。
【００７４】
この２値化処理の結果は、このバーコード読取装置１０Ａに接続されたデコーダ（図示されていない）に出力される（ステップＳ２１０Ｂ）。バーコード読取装置１０Ｂは、デコーダから出力結果に基づいた処理中止の命令がこない限り、上記の処理を反復するために、光電変換に戻りローデータの取得を再開する（ステップＳ１０Ｂ）。
【００７５】
[第３実施形態]  
図９は、本発明の第３実施形態によるバーコード読取装置１０Ｃの構成の概略を示すブロック図である。
【００７６】
このバーコード読取装置１０Ｃは、駆動制御部２０ａと、この駆動制御部により制御される走査ミラー２０と、集光ミラー３０と、反射ミラー４０と、光源制御部５０ａと、この光源制御部５０ａにより制御される光源５０と、センサ６０と、光電変換部７０と、微分処理部８０と、極値検出部９０Ｃと、極値有効性判断部１００Ｃと、閾値設定部１１０Ｃと、比較部１２０Ｃと、バーコード幅データ生成部１３０Ｃと、周波数計測部１４０Ｃとを有している。
【００７７】
極値有効性判断部１００Ｃは、第１実施形態の極値有効性判断部１００Ａと同様の構成でも、第２実施形態の極値有効性判断部１００Ｂと同様の構成でもよい。この場合、いずれの構成を採用するかに応じて極値検出部９０Ｃの極値検出の方法を変えなければならない。すなわち、極値を仮に有効として保存されている極値と極性が同一の極値を検出することを許すか、異なる極性の極値しか検出しないことにするかを規定しなければならない。
【００７８】
以下の説明では、極値有効性判断部１００Ｃの構成は、第１実施形態と同等であると仮定する。したがって、極値有効性判断部１００Ｃは、メモリ１０１Ｃと、極値間時間計測部１０２Ｃと、時間比較部１０３Ｃとを備えている。しかし、極値有効性判断部１００Ｃの構成と動作とを第２実施形態と同等とすることもできる。極値有効性判断部１００Ｄが、第２実施形態の極値有効性判断部１００Ｂと同様の構成である場合、極値有効性判断部１００Ｄは、さらに、極値極性比較部１０４Ｄと、極値電圧比較部１０５Ｄとを備えている。
【００７９】
以下で、これらの各構成要素の動作について述べる。しかし、駆動制御部２０ａ、走査ミラー２０と、集光ミラー３０と、反射ミラー４０と、光源制御部５０ａと、光源５０と、センサ６０と、光電変換部７０と、微分処理部８０との動作は、第１実施形態と同様であるため、ここでは説明を省略する。
【００８０】
第３実施形態の微分処理部８０は、極値検出部９０Ｃに接続され、この微分信号を極値検出部９０Ｃに入力する。この極値検出部９０Ｃは、バーコード信号のエッジ、すなわち微分信号の極値を検出する。（検出された極値は、電圧値だけでなく、時間データも有している。すなわち、極値の電圧値と時間とが検出される。）
極値検出部９０Ｃは、極値有効性判断部１００Ｃに接続されている。この極値有効性判断部１００Ｃの構成は、上述のように、ここでは、第１実施形態と同様であるとする。
【００８１】
極値有効性判断部１００Ｃは、閾値設定部１１０Ｃに接続されている。閾値設定部１１０Ｃは、比較部１２０Ｃに接続されている。比較部１２０Ｃは、閾値と極値有効性判断部１００Ｃで有効とされた極値との比較を行ない、極値の有効性を再度判断する。比較部１２０Ｃは、バーコード幅データ生成部１３０Ｃに接続されている。第３実施形態では、このバーコード幅データ生成部１３０Ｃに周波数計測部１４０Ｃが接続されている。この周波数計測部１４０Ｃの出力は、極値有効性判断部１００Ｃに入力されている。
【００８２】
図１０は、以上で述べたバーコード読取装置１０Ｃの処理の詳細を示すフローチャートである。このフローチャートは、図９を参照して述べたバーコード読取装置１０Ｃの動作のうち、センサ６０が集光ミラー３０からの反射光を受光した後の動作を示している。
【００８３】
まず、このバーコード読取装置１０Ｃがまだ２値化処理を１度も行なっていないことを示すフラグＮに値０を代入することによりリセットする（ステップＳ１０Ｃ）。このステップＳ１０Ｃは、バーコード読取装置が反復して動作しても再び実行されることはない。
【００８４】
センサ６０で得られた反射光を光電変換部７０により光電変換し電圧信号に変換する（ステップＳ２０Ｃ）。光電変換により得られた電圧信号を微分処理部８０において微分、フィルタリングを行なうことにより微分信号に変換する（ステップＳ３０Ｃ）。極値検出部９０Ｃは、この微分信号をＡ／Ｄ変換し（ステップＳ４０Ｃ）、デジタルサンプリングデータに変換する。次に、極値の検出がすでに行なわれたことを示すフラグＬに値０を代入してリセットする（ステップＳ５０Ｃ）。
【００８５】
極値検出部９０Ｃは、このデジタルサンプリングデータからバーコードのエッジに相当する極値を検出する（ステップＳ６０Ｃ）。続いて、フラグＬの値が０であるかどうかを判定する（ステップＳ７０Ｃ）。検出された極値が最初の極値であった場合、Ｌ＝０であり、このステップＳ７０ＣをＹＥＳに分岐する。この場合、フラグＬに値１が代入され（ステップＳ８０Ｃ）、検出された極値は、極値有効性判断部１００Ｃのメモリ１０１Ｃに仮に有効として保存される（ステップＳ１５０Ｃ）。保存は、極値の値と時間データとを対にして経時データの形式で行なわれる。
【００８６】
続いてフローは、ステップＳ７０Ｃに戻り（ステップＳ１６０ＣをＮＯに分岐）、極値を新たに検出する。第３実施形態における極値検出部９０Ｃによる極値の検出は、ここでは、上述のように第１実施形態と同様に極小値と極大値とを交互に検出すると仮定されている。続くステップＳ７０Ｃでは、このフローが最終的な処理を行なうまで、常にＮＯに分岐する（Ｌ＝１であるため）。
【００８７】
続いて、新たに検出された極値との比較のために、極値有効性判断部１００Ｃのメモリ１０１Ｃに最後に保存された極値のデータを読み出す（ステップＳ９０Ｃ）。もし、最初の極値が仮に有効と判断されて保存された後、仮に有効として保存された極値がないならば、この読み出される極値データは、最初に（ステップＳ７０ＣをＹＥＳに分岐して）ステップＳ１５０Ｃで保存されたデータである。もし、最初の極値が仮に有効と判断された保存された後、さらに仮に有効として保存された極値があれば、その極値のデータが読み出されることになる。
【００８８】
極値有効性判断部１００Ｃの極値間時間計測部１０２Ｃは、保存され読み出された極値と、検出された極値との間の時間（それぞれの時間データの間の差）を計測する（ステップＳ１００Ｃ）。
【００８９】
続いて、このバーコード読取装置１０Ｃが既に２値化処理を行なったかどうかを判定する。具体的には、ステップＳ１０Ｃで代入されたＮの値がまだ維持されているかどうかが判定される（後述するように、１度でも２値化処理を行なうとこのフラグＮの値は変化する）（ステップＳ１１０Ｃ）。
【００９０】
まだ、２値化処理が行なわれていない場合にはＮ＝０が維持されている（ステップＳ１１０ＣをＹＥＳに分岐）。この場合、極値間の時間間隔との比較のための所定の時間がこのバーコード読取装置１０Ｃであらかじめ定められている値に設定される。例えば、この値は、極値有効性判断部１００Ｃのメモリ１０１Ｃに記憶されておりそこから読み出されるようにされてもよい。また、この値が調節可能であってもよい。（ステップＳ１１０ＣをＮＯに分岐する場合については後述する。）
続いて、極値有効性判断部１００Ａの時間比較部１０３Ａは、計測された極値間の時間と、所定の時間とを比較する（ステップＳ１４０Ｃ）。
【００９１】
極値間の時間が所定の時間より短い場合（ステップＳ１４０ＣをＹＥＳに分岐）、フローは、ステップＳ１５０Ｃに再び進み、検出された極値を有効な極値として保存する。そしてまだ極値の検出が終了していない場合（ステップＳ１６０ＣをＮＯに分岐）には、フローは、ステップＳ６０Ｃに戻り、極値の検出を行なう。
【００９２】
極値間の時間間隔が所定の時間以下である場合（ステップＳ１４０ＣをＮＯに分岐）、フローは、新たに検出された極値をノイズとして判定し、この極値を保存しない。この場合、フローは、ステップＳ６０Ｃに戻り、極値の検出を行なう。
【００９３】
このような処理が繰り返されて、全ての極値の検出が終了すると、フローは、ステップＳ１６０ＣをＹＥＳに分岐する。
【００９４】
続いて、仮に有効として保存された極値を全て読み出したかどうかが判定される（ステップＳ１７０Ｃ）。全ての極値を読み出したと判定された場合には、後述するように２値化処理を行なう。まだ、全ての極値を読み出していないと判定された場合には、上述のステップＳ９０Ｃで極値有効性判断部１００Ｃのメモリ１０１Ｃに仮に有効として保存された極値が１つ読み出される（ステップＳ１８０Ｃ）。
【００９５】
閾値設定部１１０Ｃは、この読み出された極値の有効性を判断するための閾値を有している。
【００９６】
比較部１２０Ｃでは、この読み出された極値の絶対値が所定の閾値よりも大きいかどうかが判定される（ステップＳ１９０Ｃ）。極値の絶対値が所定の閾値以下である場合、この極値は、ノイズであると判定される。この結果、この極値は、バーコード幅データを生成するために有効な極値とならない。この場合、フローはステップＳ１７０Ｃに戻る。逆に、極値の絶対値が閾値よりも大きいと判断された場合には、この極値は、バーコード幅データを生成するために用いられる有効な極値であるとして、比較部１２０Ｃに保存される（ステップＳ２００Ｃ）。この後、フローは、ステップＳ１７０Ｃに戻る。
【００９７】
全ての保存されたデータが読み出されたと判断された場合（ステップＳ１７０ＣをＹＥＳに分岐）には、続いて２値化処理が行なわれる（ステップＳ２１０Ｃ）。バーコード幅データ生成部１３０Ｃは、有効な極値として比較部１２０Ｃに保存された極値の時間データを用いて２値化処理を行なう。この２値化処理の詳細は、図４に参照して第１実施形態に関して説明したのでここでは説明を繰り返さない。
【００９８】
この２値化処理の結果は、このバーコード読取装置１０Ｃに接続されたデコーダ（図示されていない）に出力される（ステップＳ２２０Ｃ）。同時に、この出力結果は、周波数計測部１４０Ｃにも入力され、周波数計測部１４０Ｃは、２値化処理の信号から周波数の計測を行ない、結果を保存する（ステップＳ２３０Ｃ）。
【００９９】
２値化処理を行なったことを示すフラグＮに値１を代入する（ステップＳ２４０Ｃ）。バーコード読取装置１０Ｃは、デコーダから出力結果に基づいた処理中止の命令がこない限り、上記の処理を反復するために、光電変換に戻りローデータの取得を再開する（ステップＳ２０Ａ）。
【０１００】
このように、１度２値化処理を経由すると、フラグＮに値１が代入されるので、上述のステップＳ１１０Ｃでは、常にＮＯに分岐するようになる。そして、続いて、所定の時間は、上述のステップＳ２３０Ｃで計測され保存された周波数から演算され求められる（ステップＳ１３０Ｃ）。この演算は、周波数計測部１４０Ｃで行なわれてもよいし、周波数計測部１４０Ｃから保存された周波数を入力された極値有効性判断部１００Ｃの時間比較部１０３Ｃが行なってもよい。所定の時間を求める方法の例として、周波数の逆数の最小値、最大値、平均などのいずれか１つ又は複数を用いて、その値に係数をかけることにより所定の時間を求めることが考えられる。
【０１０１】
以上の説明から明らかなように、第３実施形態では、１度、２値化処理を経ると以後は、極値間の時間との比較のための所定の時間を直前の２値化処理の出力結果に基づく周波数計測部１４０Ｃの計測結果に基づいて求める。
【０１０２】
[第４実施形態]  
図１１は、本発明の第３実施形態によるバーコード読取装置１０Ｄの構成の概略を示すブロック図である。
【０１０３】
このバーコード読取装置１０Ｃは、駆動制御部２０ａと、この駆動制御部により制御される走査ミラー２０と、集光ミラー３０と、反射ミラー４０と、光源制御部５０ａと、この光源制御部５０ａにより制御される光源５０と、センサ６０と、光電変換部７０と、微分処理部８０と、極値検出部９０Ｄと、極値有効性判断部１００Ｄと、閾値設定部１１０Ｄと、比較部１２０Ｄと、バーコード幅データ生成部１３０Ｄとを有している。
【０１０４】
極値有効性判断部１００Ｄは、第１実施形態の極値有効性判断部１００Ａと同様の構成でも、第２実施形態の極値有効性判断部１００Ｂと同様の構成でもよい。すなわち、極値有効性判断部１００Ｄは、第１実施形態の極値有効性判断部１００Ａと同様の構成である場合、メモリ１０１Ｄと、極値時間計測部１０２Ｄと、時間比較部１０３Ｄとを備えている。極値有効性判断部１００Ｄが、第２実施形態の極値有効性判断部１００Ｂと同様の構成である場合、さらに、極値極性比較部１０４Ｄと、極値電圧比較部１０５Ｄとを備えている。第４実施形態でメモリ１０１Ｄに保存されるのは、極値の電圧値と極値のサンプリングデータ内の順番である。
【０１０５】
いずれの構成を採用するかに応じて極値検出部９０Ｄの極値検出の方法を変えなければならない。すなわち、極値を仮に有効として保存されている極値と極性が同一の極値を検出することを許すか、異なる極性の極値しか検出しないことにするかを規定しなければならない。以下の説明では、極値有効性判断部１００Ｄの構成は、第１実施形態と同等であると仮定するが、極値有効性判断部１００Ｄの構成と動作とを第２実施形態と同等とすることもできる。
【０１０６】
さらに、第４実施形態の極値有効性判断部１００Ｄの極値時間計測部１０２Ｄと時間比較部１０３Ｄとは、第１及び第２実施形態と異なり、比較される２つの極値の時間間隔ではなく、これら極値の間のサンプリングデータ数に基づいて動作する。具体的には、極値時間計測部１０２Ｄは、比較される２つの極値の間のサンプリングデータ数を検出し、時間比較部１０３Ｄは、この検出されたサンプリングデータ数を所定のデータ数と比較する。微分処理部８０により微分信号をＡ／Ｄ変換するサンプリングレートは、少なくとも１回の走査の間は一定であるため、サンプリングデータ数による比較は、極値間の時間による比較と同等である。
【０１０７】
図１２は、以上で述べたバーコード読取装置１０Ｄの処理の詳細を示すフローチャートである。このフローチャートは、図１１を参照して述べたバーコード読取装置１０Ｄの動作のうち、センサ６０が集光ミラー３０からの反射光を受光した後の動作を示している。第４実施形態のフローは、この場合、第１実施形態のフロー（図２）とステップＳ９０Ｄ、Ｓ１００Ｄを除いて同等である。（第４実施形態のフローは、極値有効性判断部１００Ｄの構成が第２実施形態と同様の構成である場合には、第２実施形態のフロー（図６）と、ステップＳ１１０Ｂ、Ｓ１２０Ｂを除いて同様である。）図１２のフローチャートについて詳細な説明はしない。
【０１０８】
なお、第３実施形態のように、２値化処理に用いられる信号の周波数計測を行なう構成をさらに設けて、この計測結果から極値間の時間の比較に用いられる所定の時間を求め、これをサンプリングレートにより割ることにより、所定のデータ数に換算することが考えられる。このように、第４実施形態は、適当な変更を行なうことにより第３実施形態にも適用可能である。
【０１０９】
以上で、実施形態を用いて、本発明によるバーコード読取装置を説明してきた。これらの実施形態で、極値間の時間を計測又はサンプリングデータ数を計測してから極値の有効性を判断してきたが、直前に仮に有効として判断されてから、所定の時間又は所定のサンプリングデータ数になるまで極値の検出を行なわない実施形態も考えられる。
【図面の簡単な説明】
【０１１０】
【図１】本発明の第１実施形態によるバーコード読取装置の構成を概略的に示すブロック図である。
【図２】本発明の第１実施形態によるバーコード読取装置の処理を示すフローチャートである。
【図３】第１実施形態における微分信号と検出された対応する極値との一例を示す図である。
【図４】２値化処理の詳細を示すフローチャートである。
【図５】本発明の第２実施形態によるバーコード読取装置の構成を概略的に示すブロック図である。
【図６】本発明の第２実施形態によるバーコード読取装置の処理を示すフローチャートである。
【図７】極値電圧による有効性判断処理の詳細を示すフローチャートである。
【図８】（Ａ）は、極大値が２値化処理で本来ピークとして用いられるところ付近に生じた極大値に関する極値電圧による有効性判断処理の一例を示している。（Ｂ）は、極大値が２値化処理で本来ボトムとして用いられるところ付近に生じた極大値に関する極値電圧による有効性判断処理の一例を示している。
【図９】本発明の第３実施形態によるバーコード読取装置の構成の概略を示すブロック図である。
【図１０】本発明の第３実施形態によるバーコード読取装置の処理を示すフローチャートである。
【図１１】本発明の第４実施形態によるバーコード読取装置の構成の概略を示すブロック図である。
【図１２】本発明の第４実施形態によるバーコード読取装置の処理を示すフローチャートである。
【図１３】従来のバーコード読取装置の構成の概略を示すフローチャートである。
【図１４】従来のバーコード読取装置内の信号の一例を示す図である。
【符号の説明】
【０１１１】
１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅ…バーコード読取装置、  ２０ａ…駆動制御部、  ２０…走査ミラー、  ３０…集光ミラー、  ４０…反射ミラー、  ５０ａ…光源制御部、  ５０…光源、  ６０…センサ、  ７０…光電変換部、  ８０…微分処理部、  ９０Ａ、９０Ｂ、９０Ｃ、９０Ｄ…極値検出部、  ９０Ｅ…ピークホールド／ボトムホールド検出部、  １００Ａ…極値有効性判断部、  １０１Ａ…メモリ、  １０２Ａ…極値間時間計測部、  １０３Ａ…時間比較部、  １００Ｂ…極値有効性判断部、  １０１Ｂ…メモリ、  １０２Ｂ…極値間時間計測部、  １０３Ｂ…時間比較部、  １０４Ｂ…極値極性比較部、  １０５Ｂ…極値電圧比較部、  １００Ｃ…極値有効性判断部、１０１Ｃ…メモリ、  １０２Ｃ…極値間時間計測部、  １０３Ｃ…時間比較部、  １００Ｄ…極値有効性判断部、  １０１Ｄ…メモリ、  １０２Ｄ…極値時間計測部、  １０３Ｄ…時間比較部、  １０４Ｄ…極値極性比較部、  １０５Ｄ…極値電圧比較部、  １００Ｅ…閾値設定部、  １１０Ａ、１１０Ｂ、１１０Ｃ、１１０Ｄ…閾値設定部、  １１０Ｅ…比較部、  １２０Ａ、１２０Ｂ、１２０Ｃ、１２０Ｄ…比較部、  １２０Ｅ…バーコード幅データ生成部、  １３０Ａ、１３０Ｂ、１３０Ｃ、１３０Ｄ…バーコード幅データ生成部、  １４０…バーコード幅データ生成部、  １４０Ｃ…周波数計測部、  ２００…バーコード記号。
【図１】
2009110413.tif 000003
【図２】
2009110413.tif 000004
【図３】
2009110413.tif 000005
【図４】
2009110413.tif 000006
【図５】
2009110413.tif 000007
【図６】
2009110413.tif 000008
【図７】
2009110413.tif 000009
【図８】
2009110413.tif 000010
【図９】
2009110413.tif 000011
【図１０】
2009110413.tif 000012
【図１１】
2009110413.tif 000013
【図１２】
2009110413.tif 000014
【図１３】
2009110413.tif 000015
【図１４】
2009110413.tif 000016