(57)【要約】【課題】微分信号のピーク位置からの遅延を最小限にすると共にノイズを抑制し、正確な二値化信号を得ることができるようにする。【解決手段】二値化回路１５０は、スライス信号Ssigのレベルと微分信号Asigのレベル、この微分信号Asigのピーク位置の近くを示す正方向オフセット信号Psig及び負方向オフセット信号Msigのレベルを夫々比較して二値化信号BIN_B，POFF_COMP，MOFF_COMPを生成し、これらの二値化信号BIN_B，POFF_COMP，MOFF_COMPを合成して読取信号を二値化した二値化信号を生成するものである。これにより、微分信号Asigのピーク位置から遅延した二値化信号BIN_Bの立上り及び立下りのエッジを、微分信号Asigのピーク位置の近くを示す二値化信号POFF_COMPの立下りエッジと二値化信号MOFF_COMPの立上りエッジにより補正することができる。【選択図】図３
2011014053.tif 000002
【特許請求の範囲】
【請求項１】
読取対象に向けて照射した光の反射光の強度を示す読取信号を微分して微分信号を求め、
前記微分信号を正方向にオフセットした正方向プレオフセット信号と、前記微分信号を負方向にオフセットした負方向プレオフセット信号を生成し、
さらに、前記正方向プレオフセット信号より所定レベルだけ低く前記微分信号をオフセットした正方向オフセット信号と、前記負方向プレオフセット信号より所定レベルだけ高く前記微分信号をオフセットした負方向オフセット信号を生成し、
前記負方向プレオフセット信号のピーク値を保持すると共に前記正方向プレオフセット信号のボトム値を保持してスライス信号を生成し、
前記スライス信号のレベルと前記微分信号のレベルを比較して第１の二値化信号を生成し、
前記スライス信号のレベルと前記正方向オフセット信号のレベルを比較して第２の二値化信号を生成し、
前記スライス信号のレベルと前記負方向オフセット信号のレベルを比較して第３の二値化信号を生成し、
前記第１〜第３の二値化信号を合成して前記読取信号を二値化した二値化信号を生成することを特徴とする二値化方法。
【請求項２】
前記第１〜第３の二値化信号を合成する際に、
前記第１〜第３の二値化信号のエッジを検出し、
前記第２及び第３の二値化信号から前記第１の二値化信号が遅れる最大量を示す最大遅れ量をメモリから取得し、
前記第３の二値化信号の立上りエッジ及び前記第２の二値化信号の立下りエッジから前記最大遅れ量の範囲内に前記第１の二値化信号のエッジが検出された場合は、前記第１の二値化信号の立上りエッジを前記第３の二値化信号の立上りエッジにより補正し、前記第１の二値化信号の立下りエッジを前記第２の二値化信号の立下りエッジにより補正することを特徴とする請求項１に記載の二値化方法。
【請求項３】
前記第２の二値化信号と前記第３の二値化信号を合成して簡易二値化信号を生成し、前記簡易二値化信号を前記第１の二値化信号と共に外部の処理系に出力することを特徴とする請求項１又は２に記載の二値化方法。
【請求項４】
読取対象に向けて照射した光の反射光の強度を示す読取信号を微分して微分信号を求める微分信号発生器と、
前記微分信号を正方向にオフセットした正方向プレオフセット信号を生成する正方向プレオフセット信号発生器と、
前記微分信号を負方向にオフセットした負方向プレオフセット信号を生成する負方向プレオフセット信号発生器と、
さらに、前記正方向プレオフセット信号より所定レベルだけ低く前記微分信号をオフセットした正方向オフセット信号を生成する正方向オフセット信号発生器と、
前記負方向プレオフセット信号より所定レベルだけ高く前記微分信号をオフセットした負方向オフセット信号を生成する負方向オフセット信号発生器と、
前記負方向プレオフセット信号のピーク値を保持すると共に前記正方向プレオフセット信号のボトム値を保持してスライス信号を生成するスライス信号発生器と、
前記スライス信号のレベルと前記微分信号のレベルを比較して第１の二値化信号を生成する二値化信号発生器と、
前記スライス信号のレベルと前記正方向オフセット信号のレベルを比較して第２の二値化信号を生成する正方向比較信号発生器と、
前記スライス信号のレベルと前記負方向オフセット信号のレベルを比較して第３の二値化信号を生成する負方向比較信号発生器と、
前記第１〜第３の二値化信号を合成して前記読取信号を二値化した二値化信号を生成する二値化信号生成器とを備えることを特徴とする二値化回路。
【請求項５】
前記第２の二値化信号と前記第３の二値化信号を合成して簡易二値化信号を生成する論理回路を備え、
前記論理回路により生成された簡易二値化信号を前記第１の二値化信号と共に外部の処理系に出力すると共に、前記二値化信号生成器により前記第１〜第３の二値化信号を合成して二値化信号を生成する処理を停止することを特徴とする請求項４に記載の二値化回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読取対象に照射して反射した光量を読み取って二値化する二値化方法および二値化回路に関し、特にコード記号のような光反射率の異なる部分で構成される読取対象の情報を読み取るものに関する。
【背景技術】
【０００２】
光学的情報読取装置、例えばバーコードスキャナは、よく知られるように黒バー（あるいは単にバー）と白バー（あるいはスペース）とで構成されるバーコードの画像にレーザー光線等を投射し、その反射光を受光して電気的処理を施すことによって、そのコード情報を読み取るものである。このバーコードスキャナは、バーコードを照射する光源、バーコードからの拡散反射光を捉える光学系や受光素子、受光素子からの出力信号をデジタル化する回路及びデジタル信号を演算処理してデコードする回路などで構成される。
【０００３】
バーコードスキャナによれば、取得した電気信号の波形からバーコードの白黒の変曲点を求め（二値化）、変曲点の幅情報に対して適合するバーコードを探すこと（デコード）でバーコードを読み取ることができる。このため、白と黒の変曲点を検出することがバーコードの読み取りにおいて重要な要因となる。この変曲点は、電気信号を微分した微分信号のピーク位置から求められる。
【０００４】
バーコードの複数の変曲点のうち、１つでも変曲点が検出できない場合には、バーコードを読み取ることができなくなる。変曲点の検出ができなくなる主な要因は、レンズの性能（収差や回折）、サンプリングレート（又は画素数）、ノイズ等がある。
【０００５】
一般的に、レーザー光線を用いたバーコードスキャナでは、遠方側でＳ／Ｎ比（Signal to Noise ratio）の低下が顕著に現れるため読み取りが困難になる。また、ＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）などのラインセンサを用いたバーコードスキャナでは、主にレンズの性能限界や画素数で読み取りが困難になる場合がある。
【０００６】
ＯＣＲ（光学文字読み取り装置）では、原稿の白、文字の黒と認識するため、例えば、ＣＣＤで読み取った原稿の画像データをＡ／Ｄ変換し、画像処理を行っている技術がある。この技術では、原稿読み取りデータの最大値（白側）と最小値（黒側）の差をＡ／Ｄ変換の基準電圧とすることでダイナミックレンジを大きくでき、この基準電圧に基づいてＡ／Ｄ変換することにより二値化の精度を上げている（特許文献１参照）。
【０００７】
また、文字読み取りと似たものとして、バーコード／二次元コード読み取り技術がある。ＯＣＲと基本的に同じ方法が採用できるが、コード記号の多くはブロック状白領域及び黒領域とから構成されることから、閾値を高輝度と低輝度と別の処理を行って二値化する方法も行われている。例えば、コード記号の領域を幾つかのブロックに分け、処理対象となる領域の平均輝度値に基づいて低輝度閾値を設定する。この低輝度閾値に満たない輝度値を除外した後の輝度値を用いて平均輝度値を算出し、この平均輝度値に基づいてブロックの二値化閾値を設定して当該ブロックの画像を二値化する。これにより、輝度ムラを解消できるので画像を高品質に二値化することが可能となる（特許文献２参照）。
【０００８】
また、光ピックアップ装置においても二値化技術が必要である。光ピックアップにおいて、対物レンズをそのシフト範囲の最内周位置および最外周位置にそれぞれシフトさせた状態で、光ヒップアップを光ディスクの半径方向で移動させる。このとき、閾値生成回路は、それぞれの状態で二値化前信号を二値化するのに最適な第１閾値および第２閾値を求め、両閾値の平均値を最終閾値として閾値レジスタに設定する。シーク動作時には、上記の最終閾値で二値化前信号が二値化される。このように、二値化する最適値が最も大きくなる、または最も小さくなる対物レンズのシフト範囲の最内周位置および最外周位置でそれぞれ第１閾値および第２閾値を求め、両者の平均値を上記所定の閾値としている（特許文献３参照）。
【０００９】
以上の特許文献１〜３から分かるように、いかに二値化処理における閾値（あるいはスライス値）を設けるかによって、二値化の精度が変わっている。続いて、図１０を参照して、従来例に係る二値化方法の一例について詳細に説明する。図１０に示す縦軸は電圧のレベルを示し横軸は時間を示す。図１０に示す微分信号Asigは、バーコードの画像にレーザー光線等を投射し、その反射光を受光して得られた入力信号を微分した信号である。バーコードのバーとスペースの境界は、微分信号Asigのピーク位置、例えば図１０に示すピーク位置Ｐ１，Ｐ２などにより得られる。
【００１０】
この例では、入力信号を二値化するために入力信号から微分信号Asigを生成し、その微分信号Asigからスライス信号Ssig_1を生成し、微分信号Asigとスライス信号Ssig_1を比較して二値化信号BIN_Cを生成する。例えば、微分信号Asigのプラス側（正方向側）にオフセットをかけたプラスオフセット信号Psig_1とマイナス側（負方向側）にオフセットをかけたマイナスオフセット信号Msig_1を生成する。
【００１１】
スライス信号Ssig_1は、微分信号Asigのレベル以下のときはマイナスオフセット信号Msig_1のピークホールドをとり、微分信号Asigのレベル以上のときはプラスオフセット信号Psig_1のボトムホールドをとることで生成する。ここで微分信号Asigのレベルとスライス信号Ssig_1のレベルを比較する。微分信号Asigのレベルがスライス信号Ssig_1のレベルよりも大きい場合はローレベルの二値化信号BIN_Cを生成する。また、微分信号Asigのレベルがスライス信号Ssig_1のレベルよりも小さい場合はハイレベルの二値化信号BIN_Cを生成する。これにより、バーコードのバーとスペースを示す二値化信号BIN_Cを生成することができる。
【００１２】
ところで、図１０に示す二値化信号BIN_Cは、微分信号Asigのピーク位置Ｐ１から遅延ｔ１が生じる問題がある。これは、微分信号Asigをオフセットした信号に基づいてスライス信号Ssig_1を求めているので遅延ｔ１が生じてしまう。この遅延ｔ１が大きいと誤差が生じて、正確な二値化信号を求めることが困難になる。
【００１３】
遅延ｔ１を小さくするためには、微分信号Asigをオフセットする量を小さくすることで解決できる。例えば図１１に示す微分信号Asigのプラス側にオフセットをかけたプラスオフセット信号Psig_2とマイナス側にオフセットをかけたマイナスオフセット信号Msig_2を生成する。この場合、それぞれのオフセット量は、図１０に示したオフセット量より小さくなっている。
【００１４】
図１１に示すスライス信号Ssig_2は、図１０に示したスライス信号Ssig_1様に微分信号Asigのレベル以下のときはマイナスオフセット信号Msig_2のピークホールドをとり、微分信号Asigのレベル以上のときはプラスオフセット信号Psig_2のボトムホールドをとることで生成する。ここで微分信号Asigのレベルとスライス信号Ssig_2のレベルを比較する。微分信号Asigのレベルがスライス信号Ssig_2のレベルよりも大きい場合はローレベルの二値化信号BIN_C1を生成する。また、微分信号Asigのレベルがスライス信号Ssig_2のレベルよりも小さい場合はハイレベルの二値化信号BIN_C1を生成する。
【００１５】
図１１に示す二値化信号BIN_C1は、微分信号Asigのピーク位置Ｐ１から遅延ｔ２が生じている。この遅延ｔ２は、図１０に示した遅延ｔ１よりも少なくなっている。これは、図１１に示すプラスオフセット信号Psig_2とマイナスオフセット信号Msig_2のオフセット量が、図１０に示したプラスオフセット信号Psigとマイナスオフセット信号Msigのオフセット量よりも小さいからである。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開平９−１２８５２３号公報
【特許文献２】特開２００１−８０３２号公報
【特許文献３】特開２００６−６５９０９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
しかしながら、オフセット量を小さくするとノイズが乗りやすくなる問題がある。例えば図１２に示すスライス信号Ssig_3は、図１１に示したスライス信号Ssig_2と同様にマイナスオフセット信号Msig_3とプラスオフセット信号Psig_3に基づいて生成されている。このスライス信号Ssig_3と微分信号Asig_3を比較して二値化信号BIN_C2を生成する。オフセット量を小さくしたために、図１２に示す二値化信号BIN_C2は、通常、ローレベルを出力する部分が複数のハイレベルを出力してノイズが乗った信号となっている。
【００１８】
他方、ノイズを避けるためにオフセット量を大きくすると、図１０に示した遅延ｔ１がさらに大きくなる問題がある。例えば図１３に示すスライス信号Ssig_4は、図１１に示したスライス信号Ssig_2と同様にマイナスオフセット信号Msig_4とプラスオフセット信号Psig_4に基づいて生成する。生成されたスライス信号Ssig_4と微分信号Asigを比較して二値化信号BIN_C3を生成する。オフセット量を大きくしたために、図１３に示す二値化信号BIN_C3の遅延ｔ３は、図１０に示した二値化信号BIN_C1の遅延ｔ１よりも多くなっている。
【００１９】
本発明は、このような従来例に係る課題を解決したものであって、微分信号のピーク位置からの遅延を最小限にすると共にノイズを抑制し、正確な二値化信号を得ることができるようにした二値化方法および二値化回路を提供することを目的とする。
【課題を解決するための手段】
【００２０】
上述した課題を解決するために、本発明に係る二値化方法は、読取対象に向けて照射した光の反射光の強度を示す読取信号を微分して微分信号を求め、前記微分信号を正方向にオフセットした正方向プレオフセット信号と、前記微分信号を負方向にオフセットした負方向プレオフセット信号を生成し、さらに、前記正方向プレオフセット信号より所定レベルだけ低く前記微分信号をオフセットした正方向オフセット信号と、前記負方向プレオフセット信号より所定レベルだけ高く前記微分信号をオフセットした負方向オフセット信号を生成し、前記負方向プレオフセット信号のピーク値を保持すると共に前記正方向プレオフセット信号のボトム値を保持してスライス信号を生成し、前記スライス信号のレベルと前記微分信号のレベルを比較して第１の二値化信号を生成し、前記スライス信号のレベルと前記正方向オフセット信号のレベルを比較して第２の二値化信号を生成し、前記スライス信号のレベルと前記負方向オフセット信号のレベルを比較して第３の二値化信号を生成し、前記第１〜第３の二値化信号を合成して前記読取信号を二値化した二値化信号を生成するものである。
【００２１】
また、本発明に係る二値化回路は、読取対象に向けて照射した光の反射光の強度を示す読取信号を微分して微分信号を求める微分信号発生器と、前記微分信号を正方向にオフセットした正方向プレオフセット信号を生成する正方向プレオフセット信号発生器と、前記微分信号を負方向にオフセットした負方向プレオフセット信号を生成する負方向プレオフセット信号発生器と、さらに、前記正方向プレオフセット信号より所定レベルだけ低く前記微分信号をオフセットした正方向オフセット信号を生成する正方向オフセット信号発生器と、前記負方向プレオフセット信号より所定レベルだけ高く前記微分信号をオフセットした負方向オフセット信号を生成する負方向オフセット信号発生器と、前記負方向プレオフセット信号のピーク値を保持すると共に前記正方向プレオフセット信号のボトム値を保持してスライス信号を生成するスライス信号発生器と、前記スライス信号のレベルと前記微分信号のレベルを比較して第１の二値化信号を生成する二値化信号発生器と、前記スライス信号のレベルと前記正方向オフセット信号のレベルを比較して第２の二値化信号を生成する正方向比較信号発生器と、前記スライス信号のレベルと前記負方向オフセット信号のレベルを比較して第３の二値化信号を生成する負方向比較信号発生器と、前記第１〜第３の二値化信号を合成して前記読取信号を二値化した二値化信号を生成する二値化信号生成器とを備えるものである。
【００２２】
本発明において、前記第１〜第３の二値化信号を合成する際に、前記第１〜第３の二値化信号のエッジを検出し、前記第２及び第３の二値化信号から前記第１の二値化信号が遅れる最大量を示す最大遅れ量をメモリから取得し、前記第３の二値化信号の立上りエッジ及び前記第２の二値化信号の立下りエッジから前記最大遅れ量の範囲内に前記第１の二値化信号のエッジが検出された場合は、前記第１の二値化信号の立上りエッジを前記第３の二値化信号の立上りエッジに補正し、前記第１の二値化信号の立下りエッジを前記第２の二値化信号の立下りエッジに補正する。
【発明の効果】
【００２３】
本発明に係る二値化方法および二値化回路によれば、スライス信号のレベルと微分信号のレベル、この微分信号のピーク位置の近くを示す正方向オフセット信号及び負方向オフセット信号のレベルを夫々比較して第１〜第３の二値化信号を生成し、これらの第１〜第３の二値化信号を合成して読取信号を二値化した二値化信号を生成するものである。
【００２４】
これにより、微分信号のピーク位置から遅延した第１の二値化信号の立上り及び立下りのエッジを、微分信号のピーク位置の近くを示す第２の二値化信号の立下りエッジと第３の二値化信号の立上りエッジにより補正することができる。従って、微分信号のピーク位置を正確に検出することができるので、二値化信号を精度良く生成できる。さらに、第２及び第３の二値化信号により第１の二値化信号を補正するので、第１の二値化信号を生成する際のオフセット量を大きくとることができ、第１の二値化信号を生成時のノイズを抑制できる。
【図面の簡単な説明】
【００２５】
【図１】本発明に係るバーコードスキャナ１００の構成例を示す概略図である。
【図２】二値化信号BIN_B，MOFF_COMP，POFF_COMPの生成例を示す波形図である。
【図３】二値化回路１５０の構成例を示すブロック図である。
【図４】二値化信号生成器１５１の構成例を示すブロック図である。
【図５】二値化信号BIN_B，MOFF_COMP，POFF_COMPに基づいて二値化信号BINを生成する例を示す図である。
【図６】二値化回路１５０の動作例を示すフローチャートである。
【図７】第２の実施例としての二値化信号生成器１５１Ａの構成例を示すブロック図である。
【図８】二値化信号MOFF_COMP，POFF_COMPを合成して二値化信号BIN_Aを生成する例を示す図である。
【図９】コードスキャナ２００の構成例を示すブロック図である。
【図１０】従来例に係る二値化信号BIN_Cの生成例を示す波形図である。
【図１１】オフセット量を小さくした場合における従来例の二値化信号BIN_C1の生成例を示す波形図である。
【図１２】オフセット量を小さくした場合における従来例の二値化信号BIN_C2の生成例を示す波形図である。
【図１３】オフセット量を大きくした場合における従来例の二値化信号BIN_C3の生成例を示す波形図である。
【発明を実施するための形態】
【実施例１】
【００２６】
続いて、図面を参照しながら、本発明を実施するための形態について説明する。図１に示すバーコードスキャナ１００は、半導体レーザーによるレーザー光源５０、集光レンズ５２、開口絞り５３、スキャニングミラー５４、結像レンズ５５、光電変換器５６及び二値化回路１５０を備えている。
【００２７】
バーコードスキャナ１００は、レーザー光源５０の発光点５１から出力されるレーザー光線を集光レンズ５２に通過させた後、開口絞り５３で径を絞り、スキャニングミラー５４により偏向させて、読み取り対象物５７上に設けられたバーコード４１に対して照射し、バーコード４１上をレーザー光線のビームスポットにより走査できるように構成している。
【００２８】
スキャニングミラー５４は、図１では平面鏡として示しているが、実際には正多角形柱上で側面が鏡面となっているポリゴンミラーを用いてもよい。結像レンズ５５には、読み取り対象物５７により反射されてきた走査レーザー光線を入射させ、信号変換手段である光電変換器５６上に結像させる。光電変換器５６は、反射光を強度に応じたアナログの電気信号に変換して信号処理回路１６０に出力する。信号処理回路１６０は、前置信号処理部１６１、二値化回路１５０及びデコーダ１６２を備えている。前置信号処理部１６１は、微分信号の取り出しや増幅ゲイン調整、ノイズ処理などを行う。二値化回路１５０は、前置信号処理部１６１により処理された信号から二値化データを生成する。デコーダ１６２は二値化データから情報をデコードする。
【００２９】
続いて、図２〜図５を参照して二値化回路１５０について説明する。図２に示す縦軸は電圧のレベルを示し横軸は時間を示す。図３に示す二値化回路１５０は３種類の二値化信号BIN_B，POFF_COMP，MOFF_COMPを作成する。ここでは、その３種類の二値化信号BIN_B，POFF_COMP，MOFF_COMPの作成方法について説明する。
【００３０】
図３に示す二値化回路１５０は、微分信号発生器１、正方向プレオフセット信号発生器２、負方向プレオフセット信号発生器３、正方向オフセット信号発生器４及び負方向オフセット信号発生器５を備えている。
【００３１】
微分信号発生器１は、読取対象に向けて照射した光の反射光の強度を示す読取信号を微分して図２に示す微分信号Asigを生成する。正方向プレオフセット信号発生器２は、この微分信号Asigを正方向にオフセットして図２に示す正方向プレオフセット信号PrePsigを生成する。このオフセット量は、従来のオフセット量の２倍程度に設定する。例えば、微分信号Asigにおける最低電圧と最大電圧の電位差（peak to peak）を１Ｖにした場合、従来のオフセット量が約８５ｍＶであり本発明のオフセット量が約１７０ｍＶである。負方向プレオフセット信号発生器３は、微分信号Asigを負方向にオフセットして図２示す負方向プレオフセット信号PreMsigを生成する。このオフセット量も、従来のオフセット量の２倍程度に設定する。このように、本発明のオフセット量を従来のオフセット量の２倍程度に設定するので、負方向プレオフセット信号PreMsigのピーク値を保持すると共に正方向プレオフセット信号PrePsigのボトム値を保持してスライス信号Ssigを生成する場合に、ノイズの影響を抑制できる。
【００３２】
正方向オフセット信号発生器４は、正方向プレオフセット信号PrePsigより所定レベルだけ低く微分信号Asigをオフセットして図２に示す正方向オフセット信号Psigを生成する。この所定レベルは、例えば２０ｍｖ程度である。負方向オフセット信号発生器５は、負方向プレオフセット信号PreMsigより所定レベル、例えば２０ｍＶだけ高く微分信号Asigをオフセットして図２に示す負方向オフセット信号Msigを生成する。
【００３３】
また、二値化回路１５０は、スライス信号発生器６、二値化信号発生器７、正方向比較信号発生器８及び負方向比較信号発生器９を備えている。スライス信号発生器６は、負方向プレオフセット信号PreMsigのピーク値を保持すると共に正方向プレオフセット信号PrePsigのボトム値を保持して図２に示すスライス信号Ssigを生成する。
【００３４】
この例で、スライス信号発生器６は、スライス信号Ssigのレベルが微分信号Asigのレベルよりも低い状態から微分信号Asigとクロスした場合、スライス信号Ssigを正方向プレオフセット信号PrePsigのレベルにリセットする。また、スライス信号発生器６は、スライス信号Ssigのレベルが微分信号Asigのレベルよりも高い状態から微分信号Asigとクロスした場合、スライス信号Ssigを負方向プレオフセット信号PreMsigのレベルにリセットする。
【００３５】
二値化信号発生器７は、スライス信号Ssigのレベルと微分信号Asigのレベルを比較して図２に示す第１の二値化信号BIN_Bを生成する。正方向比較信号発生器８は、スライス信号Ssigのレベルと正方向オフセット信号Psigのレベルを比較して図２に示す第２の二値化信号POFF_COMPを生成する。負方向比較信号発生器９は、スライス信号Ssigのレベルと負方向オフセット信号Msigのレベルを比較して図２に示す第３の二値化信号MOFF_COMPを生成する。
【００３６】
上述したように、スライス信号Ssigを生成する際のオフセット量を大きくとることでノイズを拾わないが、二値化信号BIN_Bは微分信号Asigのピーク位置Ｐ１からの遅延が大きくなる。
【００３７】
正方向オフセット信号Psigを作成する際、正方向プレオフセット信号PrePsigからオフセットを小さくすることで、二値化信号POFF_COMPの立下りエッジＥｇ７はピーク位置Ｐ２に対して遅延が小さくなる。同様に、負方向オフセット信号Msigを作成する際、負方向プレオフセット信号PreMsigからオフセットを小さくすることで、二値化信号MOFF_COMPの立上りエッジＥｇ８はピーク位置Ｐ１に対して遅延が小さくなる。
【００３８】
これらの二値化信号BIN_B，POFF_COMP，MOFF_COMPを合成して読取信号を二値化した二値化信号を生成する。例えば、二値化信号BIN_B，POFF_COMP，MOFF_COMPを合成する際に、二値化信号BIN_B，POFF_COMP，MOFF_COMPのそれぞれのエッジを検出し、二値化信号POFF_COMP，MOFF_COMPから二値化信号BIN_Bが遅れる最大量を示す最大遅れ量を取得する。
【００３９】
この例で、この最大遅れ量はレジスタなどのメモリに保存されている。例えば、バーコードスキャナ１００の読み取りモードが複数パターン存在した場合、各読み取りモードに合わせた最大遅れ量をメモリに保存しておき、各モードの選択に合わせて最大遅れ量をメモリから読み出して適用する。例えば、バーコードスキャナ１００から対象物に印刷されたバーコードまでの距離が短い場合に適用する読み取りモードの場合には、最大遅れ量を大きく設定する。また、バーコードまでの距離が長い場合に適用する読み取りモードの場合には、最大遅れ量を小さく設定する。
【００４０】
二値化信号MOFF_COMPの立上りエッジ及び二値化信号POFF_COMPの立下りエッジから最大遅れ量の範囲内に二値化信号BIN_Bのエッジが検出された場合は、二値化信号BIN_Bの立上りエッジを二値化信号MOFF_COMPの立上りエッジに補正し、二値化信号BIN_Bの立下りエッジを二値化信号POFF_COMPの立下りエッジに補正する。これにより、微分信号Asigのピーク位置を正確に検出することができるので、二値化信号を精度良く生成できる。
【００４１】
なお、二値化信号POFF_COMPは、二値化信号POFF_COMPの立下り〜立上りまでは、スライス信号Ssigと正方向オフセット信号Psigのレベル差が大きいのでノイズをほとんど拾わない。また、二値化信号MOFF_COMPは、二値化信号MOFF_COMPの立上り〜立下りまでは、スライス信号Ssigと負方向オフセット信号Msigのレベル差が大きいのでノイズをほとんど拾わない。従って、二値化信号BIN_Bのエッジを補正する際に、二値化信号MOFF_COMPの立上りエッジと二値化信号POFF_COMPの立下りエッジを正確に求めることができる。
【００４２】
続いて、図４を参照して二値化信号BIN_B，POFF_COMP，MOFF_COMPを合成する例について説明する。図４に示す二値化信号生成器１５１は、カウンター１１、エッジ検出部１２〜１４、書き込み用のバッファ１５及びＦＩＦＯ（First-In First-Out）１６を備えている。
【００４３】
エッジ検出部１２は、二値化信号発生器７から入力した二値化信号BIN_Bの立上りエッジ及び立下りエッジを検出してＦＩＦＯ１６及び合成部２１に出力する。エッジ検出部１３は、正方向比較信号発生器８から入力した二値化信号POFF_COMPの立下りエッジを検出して書き込み用のバッファ１５に出力する。エッジ検出部１４は、負方向比較信号発生器９から入力した二値化信号MOFF_COMPの立上りエッジを検出して書き込み用のバッファ１５に出力する。
【００４４】
カウンター１１は、en_DIGI信号によってカウンターを動作させるかどうかが制御される。このen_DIGI信号がハイレベルとなった後、さらにTIMING信号がハイレベルとなった位置からカウンターを動作させる。カウンター１１は、カウントしたカウント値を書き込み用のバッファ１５、遅延部２２及び比較部１９に出力する。
【００４５】
書き込み用のバッファ１５は、エッジ検出部１３から出力された二値化信号POFF_COMPの立下りエッジにおけるカウント値及び二値化信号POFF_COMPを示す書き込みバッファサイン信号を一時的に保存する。また、書き込み用のバッファ１５は、エッジ検出部１４から出力された二値化信号MOFF_COMPの立上りエッジにおけるカウント値及び二値化信号MOFF_COMPを示す書き込みバッファサイン信号を一時的に保存する。これらのカウント値及び書き込みバッファサイン信号は、二値化信号POFF_COMPの立下りエッジ及び二値化信号MOFF_COMPの立上りエッジが検出される度に更新される。
【００４６】
ＦＩＦＯ１６は、エッジ検出部１２から入力した二値化信号BIN_Bの立上り又は立下りのエッジのタイミングに基づいて書き込み用のバッファ１５に保存されたカウント値及び書き込みバッファサイン信号を保存する。
【００４７】
すなわち、ＦＩＦＯ１６には、二値化信号BIN_Bの立上りエッジの直前に位置する二値化信号MOFF_COMPの立上りエッジのカウント値が保存される。また、ＦＩＦＯ１６には、二値化信号BIN_Bの立下りエッジの直前に位置する二値化信号POFF_COMPの立下りエッジのカウント値が保存される。
【００４８】
なお、エッジ検出部１２から出力されるＦＩＦＯ書き込み時のタイミングを示す二値化信号BIN_Bは、二値化信号MOFF_COMPの立上りと二値化信号POFF_COMPの立下りのタイミングに比べタイミングを若干遅らせたものを利用する。これは、二値化信号BIN_Bのエッジと二値化信号MOFF_COMPの立上りエッジ、二値化信号POFF_COMPの立下りエッジが同一タイミングになると、書き込み用のバッファ１５にカウント値を書き込むと同時にＦＩＦＯ１６にバッファ１５のカウント値を書き込んでしまい、正しいピーク位置の情報が得られないからである。以上の処理により二値化信号BIN_Bのエッジの手前にある一番近い二値化信号MOFF_COMPの立上り又は二値化信号POFF_COMPの立下りのカウント値を記憶することができる。
【００４９】
また、二値化回路１５０は、読み込み用のバッファ１７、加算部１８、比較部１９、バッファ制御部２０及び合成部２１を備えている。読み込み用のバッファ１７は、ＦＩＦＯ１６に書き込まれた二値化信号MOFF_COMPの立上り及び二値化信号POFF_COMPの立下りにおけるカウント値を読み込む。加算部１８は、読み込み用のバッファ１７からのカウント値と遅れ量の最大値であるDET_INTERVAL（以下遅れ量DET_ITVLという）とを加算する。
【００５０】
比較部１９は、加算部１８により加算した値（カウント値＋遅れ量DET_ITVL）とエッジの位置を示すフレームのカウント値とを常に比較する。比較部１９は、フレームのカウント値が、加算部１８により加算した値（カウント値＋遅れ量DET_ITVL）と一致した場合には、エッジの検出を示す信号を合成部２１及びバッファ制御部２０に出力する。また、比較部１９は、フレームのカウント値が、加算部１８により加算した値（カウント値＋遅れ量DET_ITVL）よりも大きい場合には二値化信号BIN_Bが遅れ量DET_ITVL以上遅れているので、エッジの未検出を示す信号を合成部２１及びバッファ制御部２０に出力する。バッファ制御部２０は、読み込み用のバッファ１７の読み出しタイミングを制御する。
【００５１】
合成部２１は、二値化信号BIN_Bが遅れ量DET_ITVL以上遅れていない場合には、二値化信号MOFF_COMPの立上りエッジ又は二値化信号POFF_COMPの立下りエッジを二値化信号BINとして出力する。例えば、図５に示す二値化信号BIN_Bの立上りエッジＥｇ１が検出された点より手前で、一番近くに位置する二値化信号MOFF_COMPの立上りエッジＥｇ２により、二値化信号BIN_Bの立上りエッジＥｇ１を補正して二値化信号BINの立上りエッジＥｇ３を生成する。
【００５２】
また、二値化信号BIN_Bの立下りエッジＥｇ４が検出された点より手前で、一番近くに位置する二値化信号POFF_COMPの立下りエッジＥｇ５により、二値化信号BIN_Bの立下りエッジＥｇ４を補正して二値化信号BINの立上りエッジＥｇ６を生成する。これにより、二値化信号BINの立上りエッジＥｇ３及び立上りエッジＥｇ６を微分信号Asigのピーク位置に近づけることができる。従って、微分信号Asigを二値化した二値化信号BINを精度良く取得することができる。
【００５３】
なお、リアルタイムで処理するために、二値化信号MOFF_COMP立上りエッジＥｇ２から遅れ量DET_ITVL後のタイミングで二値化信号BINを変化させることでピーク位置の補正が可能となる。同様に、リアルタイムで処理するために、二値化信号POFF_COMP立下りエッジＥｇ５から遅れ量DET_ITVL後のタイミングで二値化信号BINを変化させることでピーク位置の補正が可能となる。
【００５４】
また、合成部２１は、二値化信号BIN_Bが遅れ量DET_ITVL以上遅れている場合、二値化信号BIN_Bのエッジが検出された時点で、二値化信号BIN_Bのエッジを二値化信号BINとして出力する。すなわち、二値化信号MOFF_COMPの立上りエッジ又は二値化信号POFF_COMPの立下りエッジと二値化信号BIN_Bのエッジの差が遅れ量DET_ITVL以上である場合、二値化信号BIN_Bのエッジを二値化信号BINとして出力する。
【００５５】
図４に示す二値化回路１５０は遅延部２２を備えている。遅延部２２は、遅れ量DET_ITVL、TIMING信号及びカウンター１１からカウント値の出力タイミングを遅れ量DET_ITVLだけ遅らせて後段に出力する。これは、図５に示したように二値化信号BINが遅れ量DET_ITVLだけ遅れて出力されることに合わせた処理である。
【００５６】
続いて図６を参照して、二値化回路１５０の動作例について説明する。図６に示すステップＳＴ１で、読取対象に向けて照射した光の反射光の強度を示す読取信号を取得してステップＳＴ２に移行する。ステップＳＴ２で、微分信号発生器１は、読取信号を微分して図２に示した微分信号Asigを生成してステップＳＴ３に移行する。
【００５７】
ステップＳＴ３で、正方向プレオフセット信号発生器２は、微分信号Asigを正方向にオフセットして正方向プレオフセット信号PrePsigを生成する。また、負方向プレオフセット信号発生器３は、微分信号Asigを負方向にオフセットして負方向プレオフセット信号PreMsigを生成する。これらの正方向及び負方向のオフセット量は、従来のオフセット量の２倍程度に設定する。続いてステップＳＴ４に移行する。
【００５８】
ステップＳＴ４で、正方向オフセット信号発生器４は、正方向プレオフセット信号PrePsigより所定レベル、例えば約２０ｍｖだけ低く微分信号Asigをオフセットして正方向オフセット信号Psigを生成する。また、負方向オフセット信号発生器５は、負方向プレオフセット信号PreMsigより所定レベル、例えば約２０ｍＶだけ高く微分信号Asigをオフセットして負方向オフセット信号Msigを生成する。続いてステップＳＴ５に移行する。
【００５９】
ステップＳＴ５で、スライス信号発生器６は、負方向プレオフセット信号PreMsigのピーク値を保持すると共に正方向プレオフセット信号PrePsigのボトム値を保持してスライス信号Ssigを生成してステップＳＴ６に移行する。
【００６０】
ステップＳＴ６で、二値化信号発生器７は、スライス信号Ssigのレベルと微分信号Asigのレベルを比較して第１の二値化信号BIN_Bを生成する。正方向比較信号発生器８は、スライス信号Ssigのレベルと正方向オフセット信号Psigのレベルを比較して第２の二値化信号POFF_COMPを生成する。負方向比較信号発生器９は、スライス信号Ssigのレベルと負方向オフセット信号Msigのレベルを比較して第３の二値化信号MOFF_COMPを生成する。続いてステップＳＴ７に移行する。ステップＳＴ７で、二値化信号生成器１５１は、二値化信号BIN_B，POFF_COMP，MOFF_COMPを合成して読取信号を二値化した二値化信号BINを生成して終了となる。
【００６１】
このように、本発明に係る二値化方法および二値化回路１５０によれば、スライス信号Ssigのレベルと微分信号Asigのレベル、この微分信号Asigのピーク位置の近くを示す正方向オフセット信号Psig及び負方向オフセット信号Msigのレベルを夫々比較して二値化信号BIN_B，POFF_COMP，MOFF_COMPを生成し、これらの二値化信号BIN_B，POFF_COMP，MOFF_COMPを合成して読取信号を二値化した二値化信号BINを生成するものである。
【００６２】
これにより、微分信号Asigのピーク位置から遅延した二値化信号BIN_Bの立上り及び立下りのエッジを、微分信号Asigのピーク位置の近くを示す二値化信号POFF_COMPの立下りエッジと二値化信号MOFF_COMPの立上りエッジにより補正することができる。従って、微分信号Asigのピーク位置を正確に検出することができるので、二値化信号BINを精度良く生成できる。さらに、二値化信号POFF_COMP，MOFF_COMPにより二値化信号BIN_Bを補正するので、二値化信号BIN_Bを生成する際のオフセット量を大きくとることができ、二値化信号BIN_Bを生成時のノイズを抑制できる。
【実施例２】
【００６３】
続いて図７及び図８を参照して第２の実施例としての二値化信号生成器１５１Ａについて説明する。図７に示す二値化信号生成器１５１Ａは、二値化信号を生成する処理をＬＳＩ（Large Scale Integration）内で処理せずに外部で二値化処理する場合の例である。
【００６４】
論理回路２３は、二値化信号POFF_COMPを正論理で入力して二値化信号MOFF_COMPを負論理で入力して論理和を演算し、その結果を負論理で出力する。例えば、図８に示すように論理回路２３は、二値化信号MOFF_COMPと二値化信号POFF_COMPを合成して簡易二値化信号の一例である二値化信号BIN_Aを生成する。この例で、論理回路２３は、二値化信号MOFF_COMPの立上りエッジと二値化信号POFF_COMPの立下りエッジを示す二値化信号BIN_Aを生成する。この二値化信号BIN_Aを外部の処理系２４に出力する。二値化信号MOFF_COMPと二値化信号POFF_COMPを合成（多重化）しているので二値化信号BIN_Aを伝送する伝送路を１本にできる。
【００６５】
二値化信号生成器１５１Ａは、二値化信号BIN_Bも外部の処理系２４に出力する。外部の処理系２４には、二値化信号BIN_A，BIN_Bのエッジを検出するエッジ検出部や書き込み用及び読み込み用のバッファ、ＦＩＦＯ、加算部、比較部、合成部などを備える。これにより、二値化信号を生成する処理をＬＳＩ（Large Scale Integration）内で処理せずに外部で行うことができるようになる。
【００６６】
なお、上述の例では、レーザー光線を用いたバーコードスキャナ１００を用いて説明したが、ＣＭＯＳなどのラインセンサを用いた図９に示すコードスキャナ２００に上述の二値化回路１５０を設けるようにしてもよい。
【００６７】
例えば図９に示すコードスキャナ２００は、光学ヘッド部７２及びデコーダ部７６で構成される。光学ヘッド部７２は、レンズ７３、固体撮像素子の一例であるＣＭＯＳイメージセンサ（以下、ＣＭＯＳ７４という）を備える。さらに、光学ヘッド部７２は、光源の一例であるＬＥＤ７５を有する。
【００６８】
レンズ７３は、例えば、光学レンズであり、図示しない二次元コード等の画像であるコード記号を光学ヘッド部７２内に取り込む。レンズ７３にはＣＭＯＳ７４が設けられる。ＣＭＯＳ７４は、レンズ７３が取り入れたコード記号を撮像し、該撮像したコード記号をアナログのコード記号データからデジタルの輝度値で表現されるコード記号データに変換してデコーダ部７６に出力する。
【００６９】
レンズ７３の近傍にはＬＥＤ７５が設けられる。ＬＥＤ７５は、後述するＡＳＩＣ７７によって点灯制御される。ＬＥＤ７５は、コード記号をレンズ７３で光学ヘッド部７２に取り入れる際に、コード記号に光を照射する。ＬＥＤ７５がコード記号に光を照射することによって、より鮮明なコード記号を光学ヘッド部７２に取り入れることができる。
【００７０】
デコーダ部７６は、ＡＳＩＣ７７、記憶手段であるＲＡＭ７８及びＲＯＭ７９、第１のＩ／Ｏインターフェース（以下、Ｉ／Ｏ８０という）及び第２のＩ／Ｏインターフェース（以下、Ｉ／Ｏ８１という）を備える。
【００７１】
ＡＳＩＣ７７は、ＣＭＯＳ７４及びＬＥＤ７５の制御、二値化処理等を行う。ＡＳＩＣ７７にはＲＡＭ７８及びＲＯＭ７９が接続される。ＲＡＭ７８は、コード記号データ等のデータを記憶する。ＲＯＭ７９は、コードスキャナ２００を起動させるプログラム等を記憶する。
【００７２】
また、ＡＳＩＣ７７にはＩ／Ｏ８０及びＩ／Ｏ８１が接続される。Ｉ／Ｏ８０は、光学ヘッド２部とデータ通信を行うインターフェースである。Ｉ／Ｏ８０にはＣＭＯＳ７４及びＬＥＤ７５が接続され、ＣＭＯＳ７４から出力されたコード記号データをＡＳＩＣ７７に出力したり、ＡＳＩＣ７７から出力されたＬＥＤ７５を点灯させる点灯信号をＬＥＤ７５に出力したりする。
【００７３】
Ｉ／Ｏ８１は、外部装置とデータ通信を行うインターフェースである。例えば、Ｉ／Ｏ８１には図示しないホストコンピュータが接続され、当該Ｉ／Ｏ８１は、ＡＳＩＣ７７によって二値化処理されたコード記号データをホストコンピュータに送信する。ホストコンピュータは、二値化処理されたコード記号データを受信して、各種処理を行う。
【００７４】
ここでは、二次元等のコード記号をデコードする装置として説明したが、ＡＳＩＣ７７に文字デコードプログラムを組み込めば、読み取り対象が文字であっても二値化処理した後、文字情報をデコードできる。
【産業上の利用可能性】
【００７５】
本発明は、光を読取対象に照射して反射した光量を読み取って二値化する二値化方法および二値化回路に適用して極めて好適である。
【符号の説明】
【００７６】
１・・・微分信号発生器、２・・・正方向プレオフセット信号発生器、３・・・負方向プレオフセット信号発生器、４・・・正方向オフセット信号発生器、５・・・負方向オフセット信号発生器、６・・・スライス信号発生器、７・・・二値化信号発生器、８・・・正方向比較信号発生器、９・・・負方向比較信号発生器、２３・・・論理回路、１００・・・バーコードスキャナ、１５０・・・二値化回路、１５１，１５１Ａ・・・二値化信号生成器
【図１】
2011014053.tif 000003
【図２】
2011014053.tif 000004
【図３】
2011014053.tif 000005
【図４】
2011014053.tif 000006
【図５】
2011014053.tif 000007
【図６】
2011014053.tif 000008
【図７】
2011014053.tif 000009
【図８】
2011014053.tif 000010
【図９】
2011014053.tif 000011
【図１０】
2011014053.tif 000012
【図１１】
2011014053.tif 000013
【図１２】
2011014053.tif 000014
【図１３】
2011014053.tif 000015