(57)【特許請求の範囲】
【請求項１】
バーコードを読み取ってバーイメージを取得する読取手段と、
この読取手段により取得されたバーイメージに基づいて前記バーコードにおける各バー幅が細バーであるか太バーであるかを判定するためのバー幅基準値を算出する基準値算出手段と、
この基準値算出手段により算出されたバー幅基準値を用いて前記読取手段により読み取られたバーコードをデコードするデコード手段と、
を備えたバーコード読取装置において、
前記デコード手段による前記バーコードのデコードが成功した際に用いられた前記バー幅基準値を記憶する基準値記憶手段を更に備え、
前記デコード手段は、前記基準値記憶手段に記憶されたバー幅基準値を用いて前記読取手段により読み取られたバーコードをデコードし、当該デコードが成功した場合は、当該バー幅基準値を継続使用し、当該デコードが失敗した場合は、当該デコードの際に前記読取手段により取得されたバーイメージに基づいて前記基準値算出手段により新たにバー幅基準値を算出して、前記基準値記憶手段に記憶することを特徴とするバーコード読取装置。
【請求項２】
読取手段により読み取られたバーコードから取得されたバーイメージに基づいて当該バーコードにおける各バー幅が細バーであるか太バーであるかを判定するためのバー幅基準値を算出させるためのコンピュータが実行可能なプログラムコードと、
前記算出されたバー幅基準値を用いて前記読取手段により読み取られたバーコードをデコードさせるためのコンピュータが実行可能なプログラムコードと、
前記バーコードのデコードが成功した際に用いられた前記バー幅基準値を基準値記憶手段に記憶させるためのコンピュータが実行可能なプログラムコードと、
前記基準値記憶手段に記憶されたバー幅基準値を用いて前記読取手段により読み取られたバーコードをデコードさせ、当該デコードが成功した場合は、当該バー幅基準値を継続使用させ、当該デコードが失敗した場合は、当該デコードの際に前記読取手段により取得されたバーイメージに基づいて新たにバー幅基準値を前記基準値算出手段に算出させて、前記基準値記憶手段に記憶させるためのコンピュータが実行可能なプログラムコードと、
を含むプログラムを格納したことを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、バーコードを読み取ってデコードするバーコード読取装置、及び記憶媒体に関する。
【０００２】
【従来の技術】
一般に、コンピュータ等にデータを入力する手段として、例えば光学的に読み取りさせる手段では、パンチカードやマークシート等のＯＭＲから、文字をそのまま読み取るＯＣＲまで様々な手段がある。その中で、シンボルコードの一種として広く普及しているのがバーコードであり、このバーコードをリニアセンサー等で読み取ることにより、販売管理、物流管理、生産管理等におけるデータの入力を行なうバーコード読取装置が知られている。
【０００３】
バーコードのキャラクタ構成の方法には、細いバーと太いバーで構成する２値レベルバーコードと、基本モジュールを定数倍した数種類の太さのバーで構成するマルチレベルバーコードとの２つの体系があり、２値レベルバーコードは、細いバーと、太いバーとの２種類のバーによって構成されているので、バーコードを構成しているバー幅の細い、太いを判定することによってデコードすることができる。
【０００４】
このような２値レベルバーコードをデコードする際に、従来のバーコード読取装置では、通常、バーコードを読み取ってバーイメージを取得すると、太バー幅と細バー幅との比率等がバーコードの規格内に収まっているか否かを判定し、規格外であった場合には、エラー表示等を行なって再度バーイメージを取得し直す等のエラー処理を行ない、規格内であった場合には、白バー幅及び黒バー幅についてそれぞれの最細バー幅、最太バー幅を検出し、その検出したそれぞれの最細バー幅、最太バー幅によって白バーのバー幅判定基準値と黒バーのバー幅判定基準値とを算出し、その算出したバー幅判定基準値と取得したバーイメージの各バー幅とを比較することによってバー幅判定基準値より細い、太いを判定し、白バー及び黒バーの細、太パターンに応じて文字、数字等のキャラクタに変換してバーコードをデコードしていた。また、デコード方式によっては、バーイメージを構成する各キャラクタ単位毎にバー幅判定基準値を算出し、その算出したバー幅判定基準値に基づいて白バー幅及び黒バー幅の細い、太いを判定し、バーコードをデコードするものもあった。
【０００５】
【発明が解決しようとする課題】
しかしながら、一般的に、印刷状態の粗悪なバーコード、規格の範囲外のバーコードは少なく、ほとんどは正常で、規格内に収まったバーコードであり、また、実際に所定のフィールド内でバーコードを読み取る場合には、そのフィールド内のバーコードは、印刷状態やバーイメージの傾向について、特徴を持っていることが多く、同一のバー幅判定基準値を用いてバーコードをデコードできることが多い。このような場合にも、従来のバーコード読取装置では、バーコードを読み取る度に、バーイメージが規格内に収まっているか否かを判定し、バー幅判定基準値を算出し直しているため、デコードに時間がかかるという問題があった。また、バーイメージを構成する各キャラクタ単位毎にバー幅判定基準値を算出して、デコードを行なう場合には、一つのバーコードをデコードする際に、バー幅判定基準値の算出を何度も繰り返さなければならないため、さらにデコードに時間がかかるという問題があった。
【０００６】
本発明の課題は、デコードが成功した場合におけるバー幅判定基準値を保存して利用することによって、不要なバー幅判定基準値算出処理等を減らし、バーコードの高速デコードができるようにすることである。
【０００７】
【課題を解決するための手段】
請求項１記載の発明は、バーコードを読み取ってバーイメージを取得する読取手段と、この読取手段により取得されたバーイメージに基づいて前記バーコードにおける各バー幅が細バーであるか太バーであるかを判定するためのバー幅基準値を算出する基準値算出手段と、この基準値算出手段により算出されたバー幅基準値を用いて前記読取手段により読み取られたバーコードをデコードするデコード手段と、を備えたバーコード読取装置において、前記デコード手段による前記バーコードのデコードが成功した際に用いられた前記バー幅基準値を記憶する基準値記憶手段を更に備え、前記デコード手段は、前記基準値記憶手段に記憶されたバー幅基準値を用いて前記読取手段により読み取られたバーコードをデコードし、当該デコードが成功した場合は、当該バー幅基準値を継続使用し、当該デコードが失敗した場合は、当該デコードの際に前記読取手段により取得されたバーイメージに基づいて前記基準値算出手段により新たにバー幅基準値を算出して、前記基準値記憶手段に記憶することを特徴としている。
【０００８】
この請求項１記載の発明によれば、バーコードを読み取ってバーイメージを取得する読取手段と、この読取手段により取得されたバーイメージに基づいて前記バーコードにおける各バー幅が細バーであるか太バーであるかを判定するためのバー幅基準値を算出する基準値算出手段と、この基準値算出手段により算出されたバー幅基準値を用いて前記読取手段により読み取られたバーコードをデコードするデコード手段と、を備えたバーコード読取装置において、基準値記憶手段は、前記デコード手段による前記バーコードのデコードが成功した際に用いられた前記バー幅基準値を記憶し、前記デコード手段は、前記基準値記憶手段に記憶されたバー幅基準値を用いて前記読取手段により読み取られたバーコードをデコードし、当該デコードが成功した場合は当該バー幅基準値を継続使用し、当該デコードが失敗した場合は、当該デコードの際に前記読取手段により取得されたバーイメージに基づいて前記基準値算出手段により新たにバー幅基準値を算出して、前記基準値記憶手段に記憶する。
【０００９】
したがって、バーコードを読み取る度に、バー幅基準値を算出しなくても、デコードすることができるため、デコードの高速化を実現することが可能となる。また、デコードに失敗した場合には、取得したバーイメージに基づくバー幅基準値を新たに算出して、デコードするため、常に正確なバー幅基準値を用いてデコードすることができ、誤読回避が可能となる。
【００１０】
【発明の実施の形態】
以下、図を参照して本発明の実施の形態を詳細に説明する。図１〜図５は、本発明を適用した一実施の形態におけるコンピュータシステムを示す図である。まず構成を説明する。
【００１１】
図１は、本実施の形態におけるコンピュータシステム１の内部構成を示したブロック図である。この図１において、コンピュータシステム１は、ＣＰＵ２、入力装置３、ＲＡＭ４、バーコード読み取り部５、表示装置６、記憶装置７、及び記憶媒体８によって構成されており、記憶媒体８を除く各部はバス９によって接続されている。
【００１２】
ＣＰＵ（Central Processing Unit）２は、記憶装置７内に格納されているシステムプログラム及び当該システムに対応する各種アプリケーションプログラムの中から指定されたアプリケーションプログラムをＲＡＭ４内の図示しないプログラム格納領域に展開し、入力装置３から入力される各種指示あるいはデータをＲＡＭ４内に一時的に格納し、この入力指示及び入力データに応じて記憶装置７内に格納されたアプリケーションプログラムに従って各種処理を実行し、その処理結果をＲＡＭ４内に格納するとともに、表示装置６に表示する。そして、ＲＡＭ４に格納した処理結果を入力装置３から入力指示される記憶装置７内の保存先に保存する。
【００１３】
またＣＰＵ２は、バーコード読み取り部５から入力される電気信号をバーイメージとして認識し、ＲＡＭ４上に展開される判定フラグ４ａの状態に従って基準値格納ワークメモリ４ｂに格納されているバー幅判定基準値を使用するか否かを判別し、この判別結果、及び更新条件ワークメモリ４ｄに設定されている更新条件等に従って、デコード処理、バー幅判定基準値算出処理、傾向データ更新処理等を実行する。
【００１４】
入力装置３は、カーソルキー、数字入力キー及び各種機能キー等を備えたキーボード及びマウス等のポインティングデバイスを含み、キーボードにおいて押下されたキーの押下信号やマウスの位置信号をＣＰＵ２に出力する。表示装置６は液晶表示装置、ＣＲＴ（Cathode Ray Tube）表示装置等により構成され、ＣＰＵ２から入力される表示データを表示する。
【００１５】
ＲＡＭ（Random Access Memory）４は、ＣＰＵ２が前記各種アプリケーションプログラムを実行する際に各種データを展開するプログラム格納領域を形成するとともに、バーコード読み取り部５から入力された電気信号を展開するとともに、バーコードのデコード処理、バー幅判定基準値算出処理、傾向データ更新処理等に係るデータを展開するメモリ領域を形成する。
【００１６】
バーコード読み取り部５は、例えばレーザースキャナーのように、レーザー光線を走査する走査部と、反射光の強度を測定し、強度に応じた電気信号を出力する受光部と、この受光部から出力された電気信号を数値化するＡ／Ｄ変換回路等から構成され、光信号を電気信号に変換し、この電気信号をＣＰＵ２に出力する。
【００１７】
記憶装置７は、プログラムやデータ等が予め記憶されている記憶媒体８を有しており、この記憶媒体８は磁気的、光学的記憶媒体、若しくは半導体メモリで構成されている。この記憶媒体８は記憶装置７に固定的に設けたもの、若しくは着脱自在に装着するものであり、この記憶媒体８には前記システムプログラム及び当該システムに対応する各種アプリケーションプログラム、バー幅判定基準値算出処理プログラム、デコード処理プログラム、傾向データ更新処理プログラム及び各種処理プログラムで処理されたデータ等を記憶する。
【００１８】
また、この記憶媒体８に記憶するプログラム、データ等は、通信回線等を介して接続された他の機器から受信して記憶する構成にしてもよく、更に、通信回線等を介して接続された他の機器側に前記記憶媒体を備えた記憶装置を設け、この記憶媒体８に記憶されているプログラム、データを通信回線を介して使用する構成にしてもよい。
【００１９】
また、図２は、ＲＡＭ４内の各種データを格納している各種メモリを示す図である。この図２において、ＲＡＭ４は、判定フラグ４ａ、基準値格納ワークメモリ４ｂ、基準値バッファ４ｃ、更新条件ワークメモリ４ｄ、基準値テンポラリーメモリ４ｅ、黒細バーレジスタ４ｆ、黒太バー幅レジスタ４ｇ、白細バー幅レジスタ４ｈ、白太バー幅レジスタ４ｉ、黒バー基準値レジスタ４ｊ、及び白バー基準値レジスタ４ｋを形成する。
【００２０】
判定フラグ４ａは、基準値格納ワークメモリ４ｂに格納されているバー幅判定基準値を使用してデコード処理を行なうか否かの判定をするためのフラグが格納されており、基準値格納ワークメモリ４ｂに格納される基準値を使用する場合には、フラグが「ＯＮ」に設定され、使用しない場合には、フラグが「ＯＦＦ」に設定される。
【００２１】
基準値格納ワークメモリ４ｂは、設定された所定の回数連続してデコードに成功したバー幅判定基準値を格納しており、図３（ａ）に示すように「識別子」、「基準値１」、「基準値２」に属するデータから構成され、２値レベル、マルチレベル以外のバーコードの拡張用として可変領域が定義されており、終端に情報域の終了を示す識別子が設定される。「識別子」には、「２値レベル」、「マルチレベル」のいずれかが設定され、「識別子」が「２値レベル」である場合には、「基準値１」には、黒バー幅判定基準値が格納され、「基準値２」には、白バー幅判定基準値が格納される。「識別子」が「マルチレベル」である場合には、バー幅判定基準値が「基準値１」、「基準値２」のいずれか一方または両方に格納される。
【００２２】
基準値バッファ４ｃは、これまでに読み取ったバーコードの内、デコード処理が成功した場合において、そのデコード処理に使用したバー幅判定基準値を履歴として格納するリングバッファであり、図３（ｂ）に示すように「識別子」、「基準値１」、「基準値２」、「回数」に属するデータから構成されており、「識別子」には、「２値レベル」、「マルチレベル」のいずれかが設定される。「２値レベル」の場合には、「基準値１」には、黒バー幅判定基準値が格納され、「基準値２」には、白バー幅判定基準値が格納される。「マルチレベル」の場合には、バー幅判定基準値が「基準値１」、「基準値２」のいずれか一方または両方に格納される。「回数」には、このバー幅判定基準値に基づいてデコードが連続して成功した回数が格納される。また、基準値バッファ４ｃには、２値レベル、マルチレベル以外のバーコードの拡張用の可変領域が定義されており、終端に情報域の終了を示す識別子が設定される。この図３に示すような構成のデータがリング状に連なっており、前回デコードに成功したバー幅判定基準値に対するデータにポインタが設定される。
【００２３】
更新条件ワークメモリ４ｄは、図３（ｃ）に示すように、「設定回数」、「解除回数」、「変化率」、及び「動作モード」等の各種設定状態を格納する。「設定回数」には、所定の回数が設定され、その設定された回数分連続して同一バー幅判定基準値によるデコードが成功した場合には、ＣＰＵ２は、そのバー幅判定基準値を基準値格納ワークメモリ４ｂに格納し、判定フラグ４ａを「ＯＮ」に設定し、次回デコードの際には、そのバー幅判定基準値を使用してデコード処理を実行する。「解除回数」には、所定の回数が設定され、その設定された回数異なるバー幅基準値によってデコード処理が実行された場合には、ＣＰＵ２は、基準値格納ワーク４ｂに格納されたバー幅判定基準値を解除する。
【００２４】
「変化率」には、所定の範囲内の誤差であれば同一データとみなすための変化率が格納され、「動作モード」には、基準値格納ワーク４ｂに格納されたバー幅判定基準値を解除する際に、前回使用していたバー幅判定基準値に戻すか、基準値格納ワーク４ｂにバー幅判定基準値が格納されていない状態に戻すかの２つのモードのいずれかが設定される。これらの更新条件ワークメモリ４ｄに格納されている各種データの設定状態は、ユーザーが適宜変更することが可能である。
【００２５】
基準値テンポラリーメモリ４ｅは、デコードに成功したバー幅判定基準値を一時的に格納するワークメモリである。
【００２６】
黒細バー幅レジスタ４ｆ、黒太バー幅レジスタ４ｇ、白細バー幅レジスタ４ｈ、白太バー幅レジスタ４ｉ、黒バー基準値レジスタ４ｊ、及び白バー基準値レジスタ４ｋは、バー幅判定基準値を算出する際に、読み取ったバーイメージの最細黒バー幅、最太黒バー幅、最細白バー幅、最太白バー幅、黒バー幅判定基準値、及び白バー幅判定基準値をそれぞれ格納するレジスタである。
【００２７】
図４は、バー幅判定基準値の算出方法の具体例を示す図である。図４（Ａ）は、黒と白との太いバーと細いバーとで構成される２値レベルバーコードのバー幅判定基準値の算出方法を示している。この図４（Ａ）は、例えば、最も細い黒バーである黒細バー幅が１．２５ｍｍ、最も太い黒バーである黒太バー幅が２．８７５ｍｍ、最も細い白バーである白細バー幅が１．１２ｍｍ、最も太い白バーである白太バー幅が２．４６４ｍｍである場合の２値レベルバーコードのバー幅判定基準値の算出例を示している。
【００２８】
まず、基準値Ａに示すように、黒バー幅判定基準値Ａは、（黒細バー幅＋黒太バー幅）／２＝（１．２５＋２．８７５）／２＝２．０６２５ｍｍのように算出し、白バー幅判定基準値Ａは、（白細バー幅＋白太バー幅）／２＝（１．１２＋２．４６４）／２＝１．７９２ｍｍのように算出しする。一般に、バーコードを読み取ってデコードする際には、読み取ったバーイメージに基づいて、この基準値Ａに示すようなバー幅判定基準値を算出していたが、本実施の形態においては、次に読み取られるバーコードの幅が不明であるため、この基準値Ａに示すような絶対値を用いたバー幅判定基準値を使用することができないため、この基準値Ａに示すバー幅判定基準値とバーコードの最細バー幅との比率をバー幅判定基準値として算出する。そのため、基準値Ｂに示すように、黒バー幅判定基準値Ｂは、（（黒細バー幅＋黒太バー幅）／２）／黒細バー幅、で算出され、白バー幅判定基準値Ｂは、（（白細バー幅＋白太バー幅）／２）／白細バー幅、で算出され、図４（Ａ）に示す例では、黒バー幅判定基準値Ｂ＝（（１．２５＋２．８７５）／２）／１．２５＝１．６５、白バー幅判定基準値Ｂ＝（（１．１２＋２．４６４）／２）／１．１２＝１．６となる。
【００２９】
このように、最細バーに対する比率で基準値を算出しておくと、次にバーコードを読み取ってデコードする際に、最細白バー幅に対して白バー幅判定基準値Ｂを掛け、最細黒バーに対して黒バー幅判定基準値Ｂを掛けることによってバー幅が細いか太いかを判定するための値を白バー、黒バーに対してそれぞれ得ることができ、その値に基づいて細い、太いを判定し、デコード処理を実行することができる。
【００３０】
また、図４（Ｂ）は、基本モジュール幅の１、２、３倍の太さのバーから構成されるマルチレベルバーコードのバー幅判定基準値の算出方法を示す図である。この図４（Ｂ）は、例えば、９つのモジュールからなるマルチレベルバーコードのバー幅判定基準値の算出方法を示している。まず、基準値Ａに示すように、バー幅判定基準値Ａ＝（黒１＋白１＋黒２＋白２＋黒３）／９を算出する。ここで黒１は、黒１バーの幅であり、白１、黒２、白２、黒３も同様に、それぞれのバーの幅である。このバー幅判定基準値Ａは、基本となる一つのモジュール幅の絶対値を表しており、次に読み取るバーの太さが不明である場合には、このような絶対値のバー幅判定基準値は使用できないため、読み取ったバーイメージの最細バーに対する比率としてのバー幅判定基準値を算出しなければならない。そこで、基準値Ｂに示すようにバー幅判定基準値Ｂ＝（（黒１＋白１＋黒２＋白２＋黒３）／９）／最細バー幅、として算出する。このバー幅判定基準値Ｂであれば、次にバーコードを読み取ってデコードする際に、そのバーコードの最細バー幅にバー幅判定基準値Ｂを掛けることによりそのバーコードを構成する基本モジュール幅がすぐに算出され、それをもとにデコードすることができる。
【００３１】
図４（Ｂ）に示すようなマルチレベルバーコードをデコードする際には、記憶装置７内の記憶媒体８に、黒１バー幅レジスタ、黒２バー幅レジスタ、黒３バー幅レジスタ、白１バー幅レジスタ、白２バー幅レジスタ、及び白３バー幅レジスタ等を備える構成とする。
【００３２】
次に動作を説明する。本実施の形態におけるコンピュータシステム１内のＣＰＵ２により実行されるバーコードデコード処理について、図５に示すフローチャートを基に説明する。
【００３３】
ＣＰＵ２は、バーコード読み取り部５から読み取ったバーコードの電気信号が入力され、その電気信号をバーイメージとして認識すると、判定フラグ４ａの設定が、「ＯＮ」であるか、「ＯＦＦ」であるかを判別し、（ステップＳ１）、判定フラグ４ａの設定が「ＯＮ」であった場合には、基準値格納ワークメモリ４ｂに格納してあるバー幅判定基準値を読み込み、そのバー幅判定基準値に基づいて、デコード処理を試みる（ステップＳ２）。そして、デコード処理が成功したか否かを判別し（ステップＳ３）、デコード処理が成功した場合には、その処理結果を表示装置６に表示させて処理を終了する。デコード処理が成功しなかった場合、及び判定フラグ４ａの設定が「ＯＦＦ」であった場合には、ステップＳ４に移行する。
【００３４】
ステップＳ４では、読み取ったバーイメージが規格内に収まっているか否かを判別し、読み取ったバーイメージが、規格の範囲外であった場合には、表示装置６にエラー表示等の表示データを出力して表示させる等のエラー処理を実行して（ステップＳ１０）、処理を終了する。読み取ったバーイメージが規格の範囲内であった場合には、例えば、読み取ったバーコードが２値レベルバーコードである場合には、黒バー幅判定基準値と白バー幅判定基準値とを図４（Ａ）に示す基準値Ｂの算出方法に従って算出し、算出した黒バー幅判定基準値と白バー幅判定基準値とを、それぞれ黒バー基準値レジスタ４ｊ、白バー基準値レジスタ４ｋに格納し、例えば、読み取ったバーコードがマルチレベルバーコードである場合には、バー幅判定基準値を図４（Ｂ）に示す基準値Ｂの算出方法に従って算出し、算出したバー幅判定基準値を黒バー基準値レジスタ４ｊ、白バー基準値レジスタ４ｋのいずれか一方または両方に格納する（ステップＳ５）。
【００３５】
そして、ＣＰＵ２は、黒バー基準値レジスタ４ｊに格納された黒バー幅判定基準値と、白バー基準値レジスタ４ｋに格納された白バー幅判定基準値とに基づいてデコード処理を実行し（ステップＳ６）、デコード処理が成功したか否かを判別し（ステップＳ７）、デコード処理が成功した場合には、処理結果を表示装置６に表示させるとともに、そのデコード処理に用いたバー幅判定基準値を基準値テンポラリーメモリ４ｅに格納して（ステップＳ８）、傾向データ更新処理（図６）を実行して（ステップＳ９）、処理を終了し、デコード処理が成功しなかった場合には、エラー処理を実行して（ステップＳ１０）、処理を終了する。
【００３６】
次いで、ＣＰＵ２により実行される傾向データ更新処理（ステップＳ９）を図６に示すフローチャートを基に説明する。
【００３７】
ＣＰＵ２は、基準値テンポラリーメモリ４ｅに格納されている、今回算出したバー幅判定基準値を読み込み（ステップＳ２１）、基準値バッファ４ｃから、前回デコード処理に成功し、ポインタがおかれているバー幅判定基準値を読み込む（ステップＳ２２）。次いで、ＣＰＵ２は、更新条件ワークメモリ４ｄに格納されている変化率を読み込んで、今回算出したバー幅判定基準値と、基準値バッファ４ｃから読み込んだ前回デコード処理に成功したバー幅判定基準値とを比較して、その誤差が更新条件ワークメモリ４ｄに設定されている変化率の範囲内か否かを判別する（ステップＳ２３）。
【００３８】
変化率の範囲内であった場合には、前回デコード処理に成功したバー幅判定基準値に設定されている「回数」を＋１回更新して（ステップＳ２４）、ステップＳ２５に移行する。変化率の範囲外であった場合には、基準値バッファ４ｃに格納されているバー幅判定基準値の内、今回算出したバー幅判定基準値と比較して、誤差が更新条件ワークメモリ４ｄに設定されている変化率の範囲内になるものがある場合には、そのバー幅判定基準値の「回数」を１に更新してポインタをそのバー幅判定基準値に更新し、変化率の範囲内になるものがない場合には、基準値テンポラリーメモリ４ｅに格納されている今回算出したバー幅判定基準値を基準値バッファ４ｃに格納して「回数」を１に更新し、ポインタをそのバー幅判定基準値に更新して（ステップＳ２７）、ステップＳ２８に移行する。
【００３９】
ステップＳ２５では、ＣＰＵ２は、ステップＳ２４の処理で更新された連続成功回数が、更新条件ワークメモリ４ｄに設定されている設定回数以上か否かを判別し、設定回数以上であった場合には、基準値格納ワークメモリ４ｂにそのバー幅判定基準値を格納し、基準値判定フラグ４ａをＯＮに設定して（ステップＳ２６）、処理を終了する。設定回数未満であった場合には、そのまま処理を終了する。
【００４０】
ステップＳ２８では、基準値格納ワークメモリ４ｂに格納されているバー幅判定基準値と異なるバー幅判定基準値を用いてデコードを行なった回数が、更新条件ワークメモリ４ｄに設定されている解除回数以上か否かを判別する。解除回数以上であった場合には、更新条件ワークメモリ４ｄに設定されている動作モードが基準値格納ワークメモリ４ｂにバー幅判定基準値が格納されていない状態に戻すモードになっているか否かを判別し（ステップＳ２９）、バー幅判定基準値が格納されていない状態に戻すモードである場合には、基準値格納ワークメモリ４ｂに基準値が格納されていない状態に戻し、基準値判定フラグ４ａを「ＯＦＦ」に設定し（ステップＳ３０）、動作モードがバー幅判定基準値が格納されていない状態に戻すモードでない場合には、基準値格納ワークメモリ４ｂに格納されているバー幅判定基準値を前回格納されていたバー幅判定基準値に戻して（ステップＳ３１）、処理を終了する。そして、更新条件ワークメモリ４ｄに設定されている解除回数未満であった場合には、そのまま処理を終了する。
【００４１】
以上のように、ＣＰＵ２は、更新条件ワークメモリ４ｄに設定された所定の回数以上連続して同一のバー幅判定基準値を用いてデコード処理に成功した場合には、そのバー幅判定基準値を基準値格納ワークメモリ４ｂに格納し、判定フラグ４ａをＯＮに設定し、次回バーコードを読み取ってデコードする際に、基準値格納ワークメモリ４ｂに格納されたバー幅判定基準値を用いてバーコードのデコード処理を実行し、そのバー幅判定基準値を用いたデコード処理に失敗した場合には、バー幅判定基準値をあらためて算出し、その算出したバー幅判定基準値に基づいてデコード処理を実行する。そして、更新条件ワークメモリ４ｄに設定されている更新条件に従って、基準値格納ワークメモリ４ｂに格納されたバー幅判定基準値の解除及び更新を実行する。
【００４２】
したがって、読み取るバーコードの特徴がある傾向を持っており、同一バー幅判定基準値を用いてバーコードのデコード処理ができるような場合には、基準値格納ワークメモリ４ｂに格納されているバー幅判定基準値を用いてデコード処理を行なうことができるので、バーコードを読み取る度にバー幅判定基準値を算出する必要がなく、デコード処理の高速化が可能となる。また、基準値格納ワークメモリ４ｂに格納されているバー幅判定基準値を用いてデコード処理に失敗した場合には、バー幅判定基準値をあらためて算出し、その算出したバー幅判定基準値に基づいてデコード処理を行なうので、正確なバー幅判定基準値を用いたデコードが可能であり、デコード処理時の誤読も回避することができる。
【００４３】
また、傾向を求めるための連続成功回数や、同一傾向とみなすための誤差範囲等をユーザーによって設定可能としたことにより、運用、用途に合わせて傾向を決めて、バーコードを読み取り、デコード処理を行なうことができ、さらに、解除回数や動作モードを設定可能としたことにより、運用、用途の変更によって、バーコードの傾向が変化した場合にも対応することができる。
【００４４】
なお、上記実施の形態においては、バー幅判定基準値を算出する際に、２値レベルバーコードの場合には、最細バー幅と最太バー幅との平均値の最細バー幅に対する比率を算出し、マルチレベルバーコードの場合には、平均化した１モジュール幅の最細バー幅に対する比率を算出したが、これに限定されるものではなく、コンピュータシステム１が予め持っている算出方法によって算出したバー幅判定基準値の最細バーに対する比率を算出しても良く、その他細部の構成についても本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【００４５】
また、各キャラクタ単位毎にバー幅判定基準値を算出してデコード処理を実行するようなデコード方式の場合には、基準値格納ワークメモリ４ｂ及び、基準値バッファ４ｃを各キャラクタに対応するバー幅判定基準値をそれぞれ格納することが可能な構成としても良い。
【００４６】
【発明の効果】
請求項１及び請求項２記載の発明によれば、バーコードを読み取る度に、バー幅基準値を算出しなくても、デコードすることができるため、デコードの高速化を実現することが可能となる。また、デコードに失敗した場合には、取得したバーイメージに基づくバー幅基準値を新たに算出して、デコードするため、常に正確なバー幅基準値を用いてデコードすることができ、誤読回避が可能となる。
【図面の簡単な説明】
【図１】本発明を適用した一実施の形態としてのコンピュータシステム１の内部構成を示すブロック図である。
【図２】図１のＲＡＭ４内の各種データを格納している各種メモリを示す図である。
【図３】図２の各種メモリの構成を示す図である。
【図４】バー幅判定基準値の算出方法の具体例を示す図である。
【図５】図１のコンピュータシステム１において実行されるデコード処理を示すフローチャートである。
【図６】図１のコンピュータシステム１において実行される傾向データ更新処理を示すフローチャートである。
【符号の説明】
１    コンピュータシステム
２    ＣＰＵ
３    入力装置
４    ＲＡＭ
４ａ    判定フラグ
４ｂ    基準値格納ワーク
４ｃ    基準値バッファ
４ｄ    更新条件ワークメモリ
４ｅ    基準値テンポラリーメモリ
４ｆ    黒細バー幅レジスタ
４ｇ    白細バー幅レジスタ
４ｈ    白細バー幅レジスタ
４ｉ    白太バー幅レジスタ
４ｊ    黒バー基準値レジスタ
４ｋ    白バー基準値レジスタ
５    バーコード読み取り部
６    表示装置
７    記憶装置
８    記憶媒体
９    バス
【図１】
0003785527.tif 000002
【図２】
0003785527.tif 000003
【図３】
0003785527.tif 000004
【図４】
0003785527.tif 000005
【図５】
0003785527.tif 000006
【図６】
0003785527.tif 000007