JPH0844809A - 多値レベル・バー・コードまたは二値レベル・バー・コードのデコーディング方法及び装置 - Google Patents
多値レベル・バー・コードまたは二値レベル・バー・コードのデコーディング方法及び装置Info
- Publication number
- JPH0844809A JPH0844809A JP7107712A JP10771295A JPH0844809A JP H0844809 A JPH0844809 A JP H0844809A JP 7107712 A JP7107712 A JP 7107712A JP 10771295 A JP10771295 A JP 10771295A JP H0844809 A JPH0844809 A JP H0844809A
- Authority
- JP
- Japan
- Prior art keywords
- bar code
- bar
- code
- module
- threshold
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10544—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
- G06K7/10821—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
- G06K7/1093—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing, after transfer of the image of the data-field to an intermediate store, e.g. storage with cathode ray tube
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
- G06K7/1486—Setting the threshold-width for bar codes to be decoded
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Artificial Intelligence (AREA)
- Toxicology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Character Input (AREA)
Abstract
(57)【要約】
【目的】 高速なデジタルのビデオ・データからバー・
コードをデコーディングするバー・コード・デコーディ
ング装置及び方法を提供する。 【構成】 プログラムできる高速数値演算モジュール10
がピクセル計数値を合計する一方、12個のラッチのアレ
イ8は、順次、走査長データを記憶する。多値レベル閾
値が確立され、与えられた要素のピクセル計数値が要素
毎のモジュールの数を定義するために使われるピクセル
計数値の複数の範囲と比較される。各要素のモジュール
計数値が、スタートまたはストップ・コード・パターン
と比較され、ルック・アップ・テーブル30が、スタート
・コードが検出されたあと、各要素のモジュール計数値
に基づくキャラクタ・デコーディングのために使われ
る。 【効果】 従来の装置で到達できない速度で、バー・コ
ードをデコードすることができる。
コードをデコーディングするバー・コード・デコーディ
ング装置及び方法を提供する。 【構成】 プログラムできる高速数値演算モジュール10
がピクセル計数値を合計する一方、12個のラッチのアレ
イ8は、順次、走査長データを記憶する。多値レベル閾
値が確立され、与えられた要素のピクセル計数値が要素
毎のモジュールの数を定義するために使われるピクセル
計数値の複数の範囲と比較される。各要素のモジュール
計数値が、スタートまたはストップ・コード・パターン
と比較され、ルック・アップ・テーブル30が、スタート
・コードが検出されたあと、各要素のモジュール計数値
に基づくキャラクタ・デコーディングのために使われ
る。 【効果】 従来の装置で到達できない速度で、バー・コ
ードをデコードすることができる。
Description
【0001】
【産業上の利用分野】本発明は、バー・コードの読み取
り方法及び装置に関する。そして、特に、多値レベル・
バー・コードまたは二値レベル・バー・コードをデコー
ディングする際に用いて好適なものに関する。
り方法及び装置に関する。そして、特に、多値レベル・
バー・コードまたは二値レベル・バー・コードをデコー
ディングする際に用いて好適なものに関する。
【0002】
【従来の技術】周知のように、バー・コードは、黒いバ
ーと介在している白いスペースのシーケンスと幅の比率
によって符合化された情報を含んでいる。そのコード
は、全バー・コード・パターンを横切って、回転してい
る鏡のようなものを用いて、光のスポットを速く掃引す
ることによって読み込むことができる。スペースからの
光の反射と黒いバーの吸収は、スキャナーの光検出器に
よって感知され、デコーダーにインプットされる信号の
レベルに変化を引き起こす。したがって、信号レベル
は、そのバーとスペースで変動し、そしてコード化され
たバー・パターンの標本となる。その走査(スキャン)
されたイメージは、一ビットのデータ・ストリームに変
換され、印刷されたバー・コードのバーとスペースがそ
れぞれクロック期間によって測定される。
ーと介在している白いスペースのシーケンスと幅の比率
によって符合化された情報を含んでいる。そのコード
は、全バー・コード・パターンを横切って、回転してい
る鏡のようなものを用いて、光のスポットを速く掃引す
ることによって読み込むことができる。スペースからの
光の反射と黒いバーの吸収は、スキャナーの光検出器に
よって感知され、デコーダーにインプットされる信号の
レベルに変化を引き起こす。したがって、信号レベル
は、そのバーとスペースで変動し、そしてコード化され
たバー・パターンの標本となる。その走査(スキャン)
されたイメージは、一ビットのデータ・ストリームに変
換され、印刷されたバー・コードのバーとスペースがそ
れぞれクロック期間によって測定される。
【0003】バー・コードをデコーディングする際の現
状の技術は、ソフトウェア及びハードウェアでデコーデ
ィングすることによって構成されている。ソフトウェア
の方法は、ハードウェア・デコーディングの構成に関し
て、非常に遅い。現在、最も小さい有効なバー・コード
のバーまたはスペースは、400 dpi(ドット/インチ)
システムにおいて約4ピクセルであり、そして、それ
は、走査長符号化された要素(run-length-encoded ele
ment)を完成するのに約400ナノ秒を要する。各ピクセ
ルはこれの約1/4である、そして、デコーダーは、たと
えそれが一ピクセルの遷移であっても、すべての起こり
うる遷移を処理することができなければならない。後続
するバー・コード・デコーダーが200ナノ秒の割合で走
査長符合化された要素をデコードすることができるなら
ば、約100のナノ秒のピクセルの走査長符合化された要
素は、処理においてエラーを発生する。
状の技術は、ソフトウェア及びハードウェアでデコーデ
ィングすることによって構成されている。ソフトウェア
の方法は、ハードウェア・デコーディングの構成に関し
て、非常に遅い。現在、最も小さい有効なバー・コード
のバーまたはスペースは、400 dpi(ドット/インチ)
システムにおいて約4ピクセルであり、そして、それ
は、走査長符号化された要素(run-length-encoded ele
ment)を完成するのに約400ナノ秒を要する。各ピクセ
ルはこれの約1/4である、そして、デコーダーは、たと
えそれが一ピクセルの遷移であっても、すべての起こり
うる遷移を処理することができなければならない。後続
するバー・コード・デコーダーが200ナノ秒の割合で走
査長符合化された要素をデコードすることができるなら
ば、約100のナノ秒のピクセルの走査長符合化された要
素は、処理においてエラーを発生する。
【0004】数多くのアプリケーションにおいて、走査
れた文書のビデオ・データのラスターが、そのビデオ・
データからリアルタイム・ビデオレートで抽出されるこ
とを要求されるバー・コードを含んでいる。この種の状
況においては、デジタルのビデオ・データから、連続的
に二値レベル及び多値レベル・バー・コードをデコード
する必要がある。用語“多値レベル”バー・コードは、
一定のバーまたはスペースに対して2以上の幅を利用す
るすべてのバー・コード・フォーマットについて言及
し、一方、二値レベル・バー・コードは、バー・コード
・キャラクタに対して2つの幅(幅が広いものと狭いも
の)だけを使うフォーマットについて言及する。
れた文書のビデオ・データのラスターが、そのビデオ・
データからリアルタイム・ビデオレートで抽出されるこ
とを要求されるバー・コードを含んでいる。この種の状
況においては、デジタルのビデオ・データから、連続的
に二値レベル及び多値レベル・バー・コードをデコード
する必要がある。用語“多値レベル”バー・コードは、
一定のバーまたはスペースに対して2以上の幅を利用す
るすべてのバー・コード・フォーマットについて言及
し、一方、二値レベル・バー・コードは、バー・コード
・キャラクタに対して2つの幅(幅が広いものと狭いも
の)だけを使うフォーマットについて言及する。
【0005】二値レベル及び多値レベル・バー・コード
についての以下の一般的な記述が、後述する詳細な記述
における概念のうちのいくつかを理解するためになされ
る。多くのバー・コード・フォーマットがある。二値レ
ベル・フォーマットのいくつかは、幅が広いバー及び幅
が狭いバー並びに幅が広いスペース及び幅が狭いスペー
スの組合せを使用する。これらの二値レベル・バー・コ
ードの狭いものに対する広いものの幅の比率は、約2.2
対1から2対1である。この比率は、いくつかのシステム
のスキャニング速度あるいはプリント品質によって変化
するかもしれない。多値レベル・バー・コードは、4レ
ベルの幅のフォーマットを使うことによって、より多く
のデータを各バー及びスペースの中に符合化する。
についての以下の一般的な記述が、後述する詳細な記述
における概念のうちのいくつかを理解するためになされ
る。多くのバー・コード・フォーマットがある。二値レ
ベル・フォーマットのいくつかは、幅が広いバー及び幅
が狭いバー並びに幅が広いスペース及び幅が狭いスペー
スの組合せを使用する。これらの二値レベル・バー・コ
ードの狭いものに対する広いものの幅の比率は、約2.2
対1から2対1である。この比率は、いくつかのシステム
のスキャニング速度あるいはプリント品質によって変化
するかもしれない。多値レベル・バー・コードは、4レ
ベルの幅のフォーマットを使うことによって、より多く
のデータを各バー及びスペースの中に符合化する。
【0006】バー・コードの固定されたサイズはない
が、しかし、むしろバーまたはスペースに対する(最小
値/最大値)の範囲がある。バースとペースの特定の物
理的な測定値がデコーディングに対して決定的なものと
ならないようにするため、比例または比率測定方法によ
る入力されたデータの自動スケーリング(標準化)が必
要とされる。この主題に関して追加の情報を含む文書
は、材料管理のための米国標準規格,文書番号NH10.8N-
1983(American National Standard For MaterialsHand
ling, Document NO. NH10.8N-1983)及び自動識別製造
業者による統一記号規格 USS-128(Uniform Symbology
Specification--USS-128)に見い出すことができる。
が、しかし、むしろバーまたはスペースに対する(最小
値/最大値)の範囲がある。バースとペースの特定の物
理的な測定値がデコーディングに対して決定的なものと
ならないようにするため、比例または比率測定方法によ
る入力されたデータの自動スケーリング(標準化)が必
要とされる。この主題に関して追加の情報を含む文書
は、材料管理のための米国標準規格,文書番号NH10.8N-
1983(American National Standard For MaterialsHand
ling, Document NO. NH10.8N-1983)及び自動識別製造
業者による統一記号規格 USS-128(Uniform Symbology
Specification--USS-128)に見い出すことができる。
【0007】“USS-128”(一般にコード128またはバー
・コード128として参照される)として知られている目
的の多値レベル・バー・コードの一般的な記述は、以下
に記述された実施例と関連した説明として使用される。
バー・コード128は、そのバー・コードのキャラクタ毎
に3個のバーと3個のスペースから成るマルチ・キャラク
タ・バー・コードである。そのバー・コードの全体のフ
ォーマットは、一連の個々のキャラクによって作られる
ものである。そのフォーマットは、(1)スタート・キャ
ラクタ、(2)変化する個数のデータ・キャラクタ、(3)チ
ェック・キャラクタ、そして(4)ストップ・キャラクタ
から成る。クワイエット・ゾーンは、時々、使われるも
のであるが、バー・コード列の前や後ろに指定された幅
をもつ白いスペースのエリアである。
・コード128として参照される)として知られている目
的の多値レベル・バー・コードの一般的な記述は、以下
に記述された実施例と関連した説明として使用される。
バー・コード128は、そのバー・コードのキャラクタ毎
に3個のバーと3個のスペースから成るマルチ・キャラク
タ・バー・コードである。そのバー・コードの全体のフ
ォーマットは、一連の個々のキャラクによって作られる
ものである。そのフォーマットは、(1)スタート・キャ
ラクタ、(2)変化する個数のデータ・キャラクタ、(3)チ
ェック・キャラクタ、そして(4)ストップ・キャラクタ
から成る。クワイエット・ゾーンは、時々、使われるも
のであるが、バー・コード列の前や後ろに指定された幅
をもつ白いスペースのエリアである。
【0008】各コード128キャラクタは、11個の“モジ
ュール”から成る。各キャラクタは、3個のバーと3個の
スペースを常に持つ。コード128は、1個の、2個の、3個
のまたは4個のモジュールの幅を持つ複数のスペースを
含む。1個の“モジュール”のバーまたはスペースが、
もっとも幅が狭いバーまたはスペースであり、一方、4
個のモジュール・カウント(計数値)をもつバーまたは
スペースがこのコードに対するもっとも広いものであ
る。1個のキャラクタが有効であるために、全6個のバー
及びスペースに対するモジュールの個数は、合計11個と
ならなければならず、また有効なコード・テーブルの中
になければならない。各要素またはモジュールは、どの
ようなピクセル数であってもよい。これは、その文書の
上のバー・コードの印刷された物理的なサイズとスキャ
ニング装置の解像度に依存する。モジュール長さ1の個
々のバーまたはスペースに対する最小の標準の限界は、
約0.007インチである。スキャニング・カメラ用の400 d
pi(ドット/インチ)では、これは、ピクセル毎に0.00
25インチであり、最小のバーまたはスペース幅に対して
約3個のピクセル幅である。USS-128フォーマットでは、
3個のスタート・コードと1個のストップ・コードがあ
る。スタート・コードは、そのバー・コードにおいてバ
ーまたはスペースの特定のレベルを区別するために使わ
れる複数の閾値に対してかみ合うようにするために使わ
れるものである。
ュール”から成る。各キャラクタは、3個のバーと3個の
スペースを常に持つ。コード128は、1個の、2個の、3個
のまたは4個のモジュールの幅を持つ複数のスペースを
含む。1個の“モジュール”のバーまたはスペースが、
もっとも幅が狭いバーまたはスペースであり、一方、4
個のモジュール・カウント(計数値)をもつバーまたは
スペースがこのコードに対するもっとも広いものであ
る。1個のキャラクタが有効であるために、全6個のバー
及びスペースに対するモジュールの個数は、合計11個と
ならなければならず、また有効なコード・テーブルの中
になければならない。各要素またはモジュールは、どの
ようなピクセル数であってもよい。これは、その文書の
上のバー・コードの印刷された物理的なサイズとスキャ
ニング装置の解像度に依存する。モジュール長さ1の個
々のバーまたはスペースに対する最小の標準の限界は、
約0.007インチである。スキャニング・カメラ用の400 d
pi(ドット/インチ)では、これは、ピクセル毎に0.00
25インチであり、最小のバーまたはスペース幅に対して
約3個のピクセル幅である。USS-128フォーマットでは、
3個のスタート・コードと1個のストップ・コードがあ
る。スタート・コードは、そのバー・コードにおいてバ
ーまたはスペースの特定のレベルを区別するために使わ
れる複数の閾値に対してかみ合うようにするために使わ
れるものである。
【0009】米国特許第4,873,426号は、1989年10月10
日発行され、“バー・コードの読み取りに対する技術”
(“Technique for Reading Bar Codes”)と題されて
いて、それによって、ビットマップ・イメージからバー
・コード・キャラクタが位置決め及びデコードされるこ
とができる方法を記述している。そのデコーディング
は、既知のパターンと比較されるビットマップ・イメー
ジのソフトウェア分析によって行われる。一般に、バー
・コードを検出するためのすべての種類のソフトウェア
の使用は、そのシステムへ入って来るデータを分析する
マイクロプロセッサーを組込まない方法と比較したもの
より、結果として非常に大きなデコーディング時間とな
る。
日発行され、“バー・コードの読み取りに対する技術”
(“Technique for Reading Bar Codes”)と題されて
いて、それによって、ビットマップ・イメージからバー
・コード・キャラクタが位置決め及びデコードされるこ
とができる方法を記述している。そのデコーディング
は、既知のパターンと比較されるビットマップ・イメー
ジのソフトウェア分析によって行われる。一般に、バー
・コードを検出するためのすべての種類のソフトウェア
の使用は、そのシステムへ入って来るデータを分析する
マイクロプロセッサーを組込まない方法と比較したもの
より、結果として非常に大きなデコーディング時間とな
る。
【0010】米国特許第4,687,912号は、1987年8月18日
に発行され、“バー・コード読み取り方法及び装置”
( "Bar Code Reading Method and Apparatus")と題さ
れていて、完全にソフトウェアで実行される方法を開示
し、そのソフトウェアは、どれがバーであるかまたはス
ペースであるか及びそのバーまたはスペースがどの幅の
レベルであるかを決定するための決定過程を援助する。
このタイプのソフトウェアの実行は、バー・コードの正
確なデコーディングを提供することを試みていて、また
スキャニング速度におけるわずかな変動または、そのバ
ー・コード印刷品質のわずかな変動を持つかもしれな
い。
に発行され、“バー・コード読み取り方法及び装置”
( "Bar Code Reading Method and Apparatus")と題さ
れていて、完全にソフトウェアで実行される方法を開示
し、そのソフトウェアは、どれがバーであるかまたはス
ペースであるか及びそのバーまたはスペースがどの幅の
レベルであるかを決定するための決定過程を援助する。
このタイプのソフトウェアの実行は、バー・コードの正
確なデコーディングを提供することを試みていて、また
スキャニング速度におけるわずかな変動または、そのバ
ー・コード印刷品質のわずかな変動を持つかもしれな
い。
【0011】米国特許第5,077,463号は、1991年12月31
日に発行されて、“バー・コード読み取り装置”(“Ba
r Code Reading Apparatus”)と題されていて、特定の
バー・コード・フォーマットの中で見つけられたガード
・バーのマージンを検出するために使われるハードウェ
ア・メカニズムを開示する。ガード・バーは、この例の
中では、そのバー・コードの中心にあるいくつかのフォ
ーマットやその前、後に典型的に位置する同じ幅を持つ
特定の幅の一対の垂直なバーと、それらの間のスペース
である。いくつかのバー・コード・フォーマットやデコ
ーダーは、次に続くことになっているバー・コード・キ
ャラクタに対してそのデコーダーを調整及び設定するた
めの手段としてガード・バーを使う。
日に発行されて、“バー・コード読み取り装置”(“Ba
r Code Reading Apparatus”)と題されていて、特定の
バー・コード・フォーマットの中で見つけられたガード
・バーのマージンを検出するために使われるハードウェ
ア・メカニズムを開示する。ガード・バーは、この例の
中では、そのバー・コードの中心にあるいくつかのフォ
ーマットやその前、後に典型的に位置する同じ幅を持つ
特定の幅の一対の垂直なバーと、それらの間のスペース
である。いくつかのバー・コード・フォーマットやデコ
ーダーは、次に続くことになっているバー・コード・キ
ャラクタに対してそのデコーダーを調整及び設定するた
めの手段としてガード・バーを使う。
【0012】米国特許第4,567,361号は、1986年1月28日
に発行され、“レチクル・バー・コード並びに読み取り
装置及び方法”(“Reticle Bar Code and Method and
Apparatus for Reading Same”)と題されていて、特定
のバー・コード・フォーマットとそのフォーマットを読
むための装置を記述している。そして、それは主に半導
体製造において使われるマイクロ・リソグラフィック・
レチクルで使用するために意図されていて、またフォー
マットの広く一般的なバー・コード・タイプであること
を意図したものではない。
に発行され、“レチクル・バー・コード並びに読み取り
装置及び方法”(“Reticle Bar Code and Method and
Apparatus for Reading Same”)と題されていて、特定
のバー・コード・フォーマットとそのフォーマットを読
むための装置を記述している。そして、それは主に半導
体製造において使われるマイクロ・リソグラフィック・
レチクルで使用するために意図されていて、またフォー
マットの広く一般的なバー・コード・タイプであること
を意図したものではない。
【0013】
【課題を解決するための手段】本発明は、デジタルのビ
デオ・データからバー・コードをデコーディングするバ
ー・コード・デコーディング装置及び方法を提供する。
この装置は、完全にハードウェアの使用で及び従来のバ
ー・コード・デコーディング装置で到達できない速度
で、バー・コードをデコードする。このシステムは多値
レベル・バー・コードおよび二値レベル・バー・コード
をデコードする。ただし、どの与えられた時間において
も、一つのフォーマット・バー・コードのみをデコード
する。システムは、8個の基本的なセクションから成る:
デオ・データからバー・コードをデコーディングするバ
ー・コード・デコーディング装置及び方法を提供する。
この装置は、完全にハードウェアの使用で及び従来のバ
ー・コード・デコーディング装置で到達できない速度
で、バー・コードをデコードする。このシステムは多値
レベル・バー・コードおよび二値レベル・バー・コード
をデコードする。ただし、どの与えられた時間において
も、一つのフォーマット・バー・コードのみをデコード
する。システムは、8個の基本的なセクションから成る:
【0014】(1)データ獲得と準備; (2)12個のラッチのアレイ; (3)プログラムできる、高速の数値演算モジュール; (4)多値レベル閾値の発生; (5)以前に生成された閾値によってそのデータを走査長
符合化されたピクセルから抽出する、閾値ロック・レン
ジ・コンパレーター; (6)スタート及びストップ・コード検出回路; (7)キャラクタ・デコードと、ルック・アップ・テーブ
ルと、その他のシーケンスとロジック;並びに (8)データの後処理とホスト・システムへの送出
符合化されたピクセルから抽出する、閾値ロック・レン
ジ・コンパレーター; (6)スタート及びストップ・コード検出回路; (7)キャラクタ・デコードと、ルック・アップ・テーブ
ルと、その他のシーケンスとロジック;並びに (8)データの後処理とホスト・システムへの送出
【0015】本発明はさらに、バー・コードの中でキャ
ラクタを形成する、あらかじめ決められた数の要素を有
するバーまたはスペース毎のあらかじめ決められた数の
モジュールを持っている要素を各々定義している、印刷
されたバー及びスペースを読むためのバー・コード読み
取り装置を提供する。その装置は、アイテムを走査し、
そしてデータ信号を生成するための手段、及びデータ信
号を要素毎の走査長計数値(run length count)に変換
するための手段を構成する。また、シーケンシャル・ラ
ッチ・アレイに次の要素の走査長計数値をロードし、そ
して、そのシーケンシャル・ラッチ・アレイの中であら
かじめ決められた数の要素に対する走査長計数値を合計
するための手段が用意されている。それから、シーケン
シャル・ラッチ・アレイの中の各ラッチにおける走査長
計数値は、その走査長計数値が有効なバー・コード要素
と関連する範囲内にあるかどうか決めるため、複数の閾
値と比較される。そして次に、各要素と関連したモジュ
ールの数を決定する。初期化パターンを認識し、そして
次に、初期化パターンの検出の後、各要素においてモジ
ュールの数に基いて、キャラクタ情報をデコードするた
め、ルックアップテーブルにアクセスするための手段が
用意されている。
ラクタを形成する、あらかじめ決められた数の要素を有
するバーまたはスペース毎のあらかじめ決められた数の
モジュールを持っている要素を各々定義している、印刷
されたバー及びスペースを読むためのバー・コード読み
取り装置を提供する。その装置は、アイテムを走査し、
そしてデータ信号を生成するための手段、及びデータ信
号を要素毎の走査長計数値(run length count)に変換
するための手段を構成する。また、シーケンシャル・ラ
ッチ・アレイに次の要素の走査長計数値をロードし、そ
して、そのシーケンシャル・ラッチ・アレイの中であら
かじめ決められた数の要素に対する走査長計数値を合計
するための手段が用意されている。それから、シーケン
シャル・ラッチ・アレイの中の各ラッチにおける走査長
計数値は、その走査長計数値が有効なバー・コード要素
と関連する範囲内にあるかどうか決めるため、複数の閾
値と比較される。そして次に、各要素と関連したモジュ
ールの数を決定する。初期化パターンを認識し、そして
次に、初期化パターンの検出の後、各要素においてモジ
ュールの数に基いて、キャラクタ情報をデコードするた
め、ルックアップテーブルにアクセスするための手段が
用意されている。
【0016】本発明のさらなるオプション、特徴及び長
所は、添付図面に関連して読まれるとき、以下の詳細な
記述から明白になる。また、他の特徴と利点は、添付図
面を考慮して読まれるとき、以下の実施例の記述を参照
して明らかになる。
所は、添付図面に関連して読まれるとき、以下の詳細な
記述から明白になる。また、他の特徴と利点は、添付図
面を考慮して読まれるとき、以下の実施例の記述を参照
して明らかになる。
【0017】
【実施例】図1のブロック図は、本発明の実施例におけ
る信号の全体の流れを示す。すべてのモジュールの機能
の説明は、実際のUSS-128(Uniform Symbol Specificat
ion)スタート・コード評価の例を用いて以下に記され
る。このコードは、1983年にオートマチック・アイデン
ティフィケーション・マニュファクチャリング株式会社
(Automatic Identification Manufacturers Inc.)に
よって標準として確立された。
る信号の全体の流れを示す。すべてのモジュールの機能
の説明は、実際のUSS-128(Uniform Symbol Specificat
ion)スタート・コード評価の例を用いて以下に記され
る。このコードは、1983年にオートマチック・アイデン
ティフィケーション・マニュファクチャリング株式会社
(Automatic Identification Manufacturers Inc.)に
よって標準として確立された。
【0018】デコードされる目標のバー・コード・フォ
ーマットに特有である開始パターンは、スタート・コー
ドと呼ばれ、そしてデータ獲得システム(データ・アク
イジション・システム)から独立したデータのインプッ
トの流れで見いだされなければならない。ほとんどのバ
ー・コード・フォーマットは、固定されたスタート・コ
ードを持つ。スタート・コードは、特定のバー・コード
・フォーマットにおいて特別なパターンまたは特別なキ
ャラクタであることができる。有効なスタート・コード
を見つけ、そのスタート・コード検出の発生において使
用された閾値を検出及び保持することすることが初期の
目的である。
ーマットに特有である開始パターンは、スタート・コー
ドと呼ばれ、そしてデータ獲得システム(データ・アク
イジション・システム)から独立したデータのインプッ
トの流れで見いだされなければならない。ほとんどのバ
ー・コード・フォーマットは、固定されたスタート・コ
ードを持つ。スタート・コードは、特定のバー・コード
・フォーマットにおいて特別なパターンまたは特別なキ
ャラクタであることができる。有効なスタート・コード
を見つけ、そのスタート・コード検出の発生において使
用された閾値を検出及び保持することすることが初期の
目的である。
【0019】そのデコーダーへの入力データのソース
は、電子データ・フォームにバー・コードの印刷された
イメージ1を変換するカメラ2のような何らかの光学また
は電子装置である。図1の中で示された光学装置(符号
2)は、そのバー・コードが印刷された表面のイメージ
の電子表現を得るためのカメラの利用を図示する。走査
カメラ2は、レーザー・スキャナー、CCDカメラまたはハ
ンド・ヘルド・ワンド(hand-held wand)の形をとるこ
とができる。また、複数の獲得装置からのデータは、非
常により高い率で受け取られた各ソースからのすべての
オリジナル・データに対して等価なマルチプレクス(多
重化)されたデータの流れを形成するように、圧縮され
ていてもよい。走査カメラ2は、アナログ−デジタル・
コンバーター(以下、“ADC”とする)を用いて光学の
イメージをデジタル化する。ADCは、グレイ・スケール
・イメージ・データを出力する。このイメージ・データ
は、劣ったプリント品質、文書の表面の欠陥またはその
文書もしくは光学の走査コンポーネント上のほこりを含
むすべての欠陥または不規則性を含んでいる。
は、電子データ・フォームにバー・コードの印刷された
イメージ1を変換するカメラ2のような何らかの光学また
は電子装置である。図1の中で示された光学装置(符号
2)は、そのバー・コードが印刷された表面のイメージ
の電子表現を得るためのカメラの利用を図示する。走査
カメラ2は、レーザー・スキャナー、CCDカメラまたはハ
ンド・ヘルド・ワンド(hand-held wand)の形をとるこ
とができる。また、複数の獲得装置からのデータは、非
常により高い率で受け取られた各ソースからのすべての
オリジナル・データに対して等価なマルチプレクス(多
重化)されたデータの流れを形成するように、圧縮され
ていてもよい。走査カメラ2は、アナログ−デジタル・
コンバーター(以下、“ADC”とする)を用いて光学の
イメージをデジタル化する。ADCは、グレイ・スケール
・イメージ・データを出力する。このイメージ・データ
は、劣ったプリント品質、文書の表面の欠陥またはその
文書もしくは光学の走査コンポーネント上のほこりを含
むすべての欠陥または不規則性を含んでいる。
【0020】それから、グレイ・スケール・データは、
ブロック4の中で、平均化する選択可能な走査線を供給
する高速デジタル信号処理フィルターと、ドット・マト
リックス・フィルターと、そして、最後にそのバー・コ
ードが印刷されている背景イメージからそのバー・コー
ドを抽出するためのイメージ・スレショルディングによ
って、デジタルで処理される。その出力は、走査された
イメージの黒と白を表す複数の“1”と複数の“0”の
ビット・ストリームである。
ブロック4の中で、平均化する選択可能な走査線を供給
する高速デジタル信号処理フィルターと、ドット・マト
リックス・フィルターと、そして、最後にそのバー・コ
ードが印刷されている背景イメージからそのバー・コー
ドを抽出するためのイメージ・スレショルディングによ
って、デジタルで処理される。その出力は、走査された
イメージの黒と白を表す複数の“1”と複数の“0”の
ビット・ストリームである。
【0021】図2は、出力走査長ピクセル計数値24、バ
ー/スペース検出データ28及びバー・コード・クロック
26へのピクセル・クロック42及びピクセル・データ40の
データ変換を図示する。ピクセル・データ40の遷移は、
文書上のイメージの白から黒または黒から白のエッジで
ある。そのイメージの白または黒の部分の物理的な長さ
は、走査長ピクセル・カウンター50によってカウントさ
れるピクセルの形で測定される。ピクセル・クロック42
でピクセル・データ遷移がないとき、走査長ピクセル・
カウンター50は、増分される。与えられた白または黒の
部分に対するピクセルの数は、走査長符号化されたピク
セル計数値として参照される。ピクセル・データ遷移検
出器44は、ピクセル・データにおける変化を検出して、
そして遷移クロック43を出力する。これによって、現在
の走査長符合化されたピクセル計数値41、バー/スペー
ス検出入力信号45及びオプションのスタート・ライン信
号が通過させられて、バー・コード・アクセラレータ・
メモリ54に書き込まれる。この後、走査長ピクセル・カ
ウンター50がクリアされる。データ利用可能信号52の断
定によってデータがバー・コード・アクセラレータ・メ
モリ54から利用可能であるとき、バー・コード・クロッ
ク発振器がバー・コード・クロック26を出力することが
可能になる。このゲート制御された同期バー・コード・
クロック26は、次の走査長ピクセル計数値24をクロック
出力する。ライン・スタート25とバー/スペース検出デ
ータ28は、その計数値24とともに、バーまたはスペース
の適切な決定がなされるようなデコーダーへ送出され
る。
ー/スペース検出データ28及びバー・コード・クロック
26へのピクセル・クロック42及びピクセル・データ40の
データ変換を図示する。ピクセル・データ40の遷移は、
文書上のイメージの白から黒または黒から白のエッジで
ある。そのイメージの白または黒の部分の物理的な長さ
は、走査長ピクセル・カウンター50によってカウントさ
れるピクセルの形で測定される。ピクセル・クロック42
でピクセル・データ遷移がないとき、走査長ピクセル・
カウンター50は、増分される。与えられた白または黒の
部分に対するピクセルの数は、走査長符号化されたピク
セル計数値として参照される。ピクセル・データ遷移検
出器44は、ピクセル・データにおける変化を検出して、
そして遷移クロック43を出力する。これによって、現在
の走査長符合化されたピクセル計数値41、バー/スペー
ス検出入力信号45及びオプションのスタート・ライン信
号が通過させられて、バー・コード・アクセラレータ・
メモリ54に書き込まれる。この後、走査長ピクセル・カ
ウンター50がクリアされる。データ利用可能信号52の断
定によってデータがバー・コード・アクセラレータ・メ
モリ54から利用可能であるとき、バー・コード・クロッ
ク発振器がバー・コード・クロック26を出力することが
可能になる。このゲート制御された同期バー・コード・
クロック26は、次の走査長ピクセル計数値24をクロック
出力する。ライン・スタート25とバー/スペース検出デ
ータ28は、その計数値24とともに、バーまたはスペース
の適切な決定がなされるようなデコーダーへ送出され
る。
【0022】図1の中のラッチ・アレイ8は、12個の入
力レジスターのアレイを含んでいる。これらのレジスタ
ーは、走査されたイメージの走査線に沿った黒及び白の
エリアの最後の12個の走査長符号化されたピクセル計数
値を保持する。そのイメージの黒または白の検出は、バ
ー/スペース検出信号28によって保持される。これらの
レジスターの中のデータは、プログラム可能な高速数値
演算モジュール10と閾値ブロック18の中の10個の閾値コ
ンパレーターの両方に供給される。プログラム可能な高
速数値演算モジュールは、指定されたバー・コード・フ
ォーマットに対する特定のバーやスペースの走査長符号
化されたピクセルの合計を計算するために使われる。こ
れらの数の合計は、スタート・コードで予想されたバー
またはスペースの指定された幅に対する上側及び下側の
閾値数を計算するために、またはスタート・コードが検
出された後、キャラクタをデコードするために、閾値発
生ブロック12の中のハードウェア乗算器に送られる。
力レジスターのアレイを含んでいる。これらのレジスタ
ーは、走査されたイメージの走査線に沿った黒及び白の
エリアの最後の12個の走査長符号化されたピクセル計数
値を保持する。そのイメージの黒または白の検出は、バ
ー/スペース検出信号28によって保持される。これらの
レジスターの中のデータは、プログラム可能な高速数値
演算モジュール10と閾値ブロック18の中の10個の閾値コ
ンパレーターの両方に供給される。プログラム可能な高
速数値演算モジュールは、指定されたバー・コード・フ
ォーマットに対する特定のバーやスペースの走査長符号
化されたピクセルの合計を計算するために使われる。こ
れらの数の合計は、スタート・コードで予想されたバー
またはスペースの指定された幅に対する上側及び下側の
閾値数を計算するために、またはスタート・コードが検
出された後、キャラクタをデコードするために、閾値発
生ブロック12の中のハードウェア乗算器に送られる。
【0023】図3は、出力関数A62と関数B64を有するプ
ログラム可能な高速数値演算モジュール10及びラッチア
レイ(符号68〜82の12個のラッチ、一部図示略)の構成
の一実施例を示す。関数Aと関数Bは、すべての5個のレ
ベルの閾値を発生するために、ハードウェアの乗算器計
数回路に送られる。バー・コード・クロック信号26が発
生するとき、バー・コード・アクセラレータ・メモリ54
から走査長符号化されたピクセル計数値24が出力される
(図2)。1番目のラッチ68にあったデータが2番目の
ラッチ70にクロックに同期して入力される、そして、そ
の2番目のラッチにあったデータが3番目のラッチ72に
クロックに同期して入力される、そして、すべての12個
のラッチに対して同様になる。閾値レンジング・コンパ
レーター・ブロックに対するラッチ72〜82に存在するデ
ータは、2周期のバー・コード・クロック26によって遅
延される。この2クロック分の遅延は、数値演算モジュ
ール10において数値演算を実行するため及び閾値発生段
において次に続くハードウェアの乗算器で実行される比
率による基準化を実行するために必要な2クロック周期
を許容するために必要である。走査長符号化されたデー
タ92〜101(図3)の一群は、新しく生成された閾値136
〜140(図4)が有効なると同時に、有効になるように
時間を調整される。
ログラム可能な高速数値演算モジュール10及びラッチア
レイ(符号68〜82の12個のラッチ、一部図示略)の構成
の一実施例を示す。関数Aと関数Bは、すべての5個のレ
ベルの閾値を発生するために、ハードウェアの乗算器計
数回路に送られる。バー・コード・クロック信号26が発
生するとき、バー・コード・アクセラレータ・メモリ54
から走査長符号化されたピクセル計数値24が出力される
(図2)。1番目のラッチ68にあったデータが2番目の
ラッチ70にクロックに同期して入力される、そして、そ
の2番目のラッチにあったデータが3番目のラッチ72に
クロックに同期して入力される、そして、すべての12個
のラッチに対して同様になる。閾値レンジング・コンパ
レーター・ブロックに対するラッチ72〜82に存在するデ
ータは、2周期のバー・コード・クロック26によって遅
延される。この2クロック分の遅延は、数値演算モジュ
ール10において数値演算を実行するため及び閾値発生段
において次に続くハードウェアの乗算器で実行される比
率による基準化を実行するために必要な2クロック周期
を許容するために必要である。走査長符号化されたデー
タ92〜101(図3)の一群は、新しく生成された閾値136
〜140(図4)が有効なると同時に、有効になるように
時間を調整される。
【0024】バー・コード・クロック26(図3)の有意
なエッジにおいて、次に続く閾値発生ブロック12によっ
て処理されることができるように、数値演算関数、関数
A62及び関数B64は、完了し、安定することが要求
される。これろ同時に新しいデータは、ラッチ・アレイ
8の中のラッチ68〜78から数値演算モジュールに供給さ
れる。数値演算モジュール10は、基本的に、プログラム
できる加算器である。それは、いくつかのバー・コード
・フォーマットのためには多くの数を加算しなければな
らないが、他のもののためにはほとんど加算をする必要
がない。他のフォーマットが2個の別々の合計、合計関
数A62及合計関数B64を必要とする一方、いくつかのフォ
ーマットは、ただ1つの合計のみを必要とする。
なエッジにおいて、次に続く閾値発生ブロック12によっ
て処理されることができるように、数値演算関数、関数
A62及び関数B64は、完了し、安定することが要求
される。これろ同時に新しいデータは、ラッチ・アレイ
8の中のラッチ68〜78から数値演算モジュールに供給さ
れる。数値演算モジュール10は、基本的に、プログラム
できる加算器である。それは、いくつかのバー・コード
・フォーマットのためには多くの数を加算しなければな
らないが、他のもののためにはほとんど加算をする必要
がない。他のフォーマットが2個の別々の合計、合計関
数A62及合計関数B64を必要とする一方、いくつかのフォ
ーマットは、ただ1つの合計のみを必要とする。
【0025】2つの関数は、以下のように表される: 関数A = C1(A) + C2(B) +...C10(J) 関数B = D1(A) + D2(B) +...D10(J) 定数C1〜C10及びD1〜D10は、“1”または“0”のプログ
ラム可能な定数である。
ラム可能な定数である。
【0026】定数C1〜C10及びD1〜D10は、関数A62また
はB64に対する合計に、それに関連した走査長符号化さ
れた値A〜Jを入れたり入れなかったりする、簡単にプロ
グラム可能な“1”または“0”の定数である。これらの
定数は、システムの初期化においてセット・アップされ
る。この方法は、関数A62に対するのバーの幅の合計又
は関数B64に対するスペース幅の合計を計算するため
に、特定のバーや特定のスペースを合計することを許容
する。バー・コード・フォーマットUSS-128の場合、一
つの関数だけが必要であり、それは、A〜Fの、数値演算
モジュール10の中の最初の6個の要素の合計である。こ
れらの6個の要素は、USS-128バー・コード・キャラクタ
における6個の要素に対応する。仮に、目標のバー・コ
ード・フォーマットがコード9の3であるとすると、関数
A62が、バー・コード・スタート・キャラクタ(2個の広
いものと3個の狭いもの)におけるすべての広いバーと
狭いバーを加算するようにプログラムされることがで
き、そして、関数B64が、コード9の3・スタート・キャ
ラクタ(1個の広いものと3個の狭いもの)におけるすべ
ての広いスペースと狭いスペースを加算するために使用
されることができる。閾値発生回路とともに合計を行う
関数は、必要に応じてその定数を変えることによって最
適化されることができる。
はB64に対する合計に、それに関連した走査長符号化さ
れた値A〜Jを入れたり入れなかったりする、簡単にプロ
グラム可能な“1”または“0”の定数である。これらの
定数は、システムの初期化においてセット・アップされ
る。この方法は、関数A62に対するのバーの幅の合計又
は関数B64に対するスペース幅の合計を計算するため
に、特定のバーや特定のスペースを合計することを許容
する。バー・コード・フォーマットUSS-128の場合、一
つの関数だけが必要であり、それは、A〜Fの、数値演算
モジュール10の中の最初の6個の要素の合計である。こ
れらの6個の要素は、USS-128バー・コード・キャラクタ
における6個の要素に対応する。仮に、目標のバー・コ
ード・フォーマットがコード9の3であるとすると、関数
A62が、バー・コード・スタート・キャラクタ(2個の広
いものと3個の狭いもの)におけるすべての広いバーと
狭いバーを加算するようにプログラムされることがで
き、そして、関数B64が、コード9の3・スタート・キャ
ラクタ(1個の広いものと3個の狭いもの)におけるすべ
ての広いスペースと狭いスペースを加算するために使用
されることができる。閾値発生回路とともに合計を行う
関数は、必要に応じてその定数を変えることによって最
適化されることができる。
【0027】図5は、以前に生成された合計、関数A62
及び関数B64がどのように閾値発生乗算器に適用される
かについて説明する。これらの合計は、5個のマルチプ
レクサ・スイッチ124〜128を通って、5個の乗算器129〜
133に送られる。5個のマルチプレクサ・スイッチ124〜1
28及び乗算器ポートYにおける5個の乗算器定数K1〜K5
は、ホスト・プロセッサー36によってプログラム可能で
ある。これらは、初期化において決定される。乗算器ポ
ートXに入力される合計関数とポートYに入力される定数
は、バー・コード・クロック26の有意なエッジで、その
乗算器にロードされる。同時に、前回の乗算結果がその
乗算器からクロックに同期して出力されて、閾値1信号1
36〜閾値5信号140として現れる。
及び関数B64がどのように閾値発生乗算器に適用される
かについて説明する。これらの合計は、5個のマルチプ
レクサ・スイッチ124〜128を通って、5個の乗算器129〜
133に送られる。5個のマルチプレクサ・スイッチ124〜1
28及び乗算器ポートYにおける5個の乗算器定数K1〜K5
は、ホスト・プロセッサー36によってプログラム可能で
ある。これらは、初期化において決定される。乗算器ポ
ートXに入力される合計関数とポートYに入力される定数
は、バー・コード・クロック26の有意なエッジで、その
乗算器にロードされる。同時に、前回の乗算結果がその
乗算器からクロックに同期して出力されて、閾値1信号1
36〜閾値5信号140として現れる。
【0028】閾値ブロック18(図1)の出力は、2個の
範囲外ベクトル20とバー・コード・ベクトル22に換算さ
れる。範囲外ベクトル20は、レジスタ・アレイ8の中の
イメージが有効なバー・コード・キャラクタとして許容
される範囲にないことを示す。もし範囲外ベクトル20が
範囲外でないことを示すならば、バー・コード・ベクト
ル22の20ビット(10個の閾値レンジ・コンパレーターの
各々から2ビット)は、分析され、そしてラッチ・アレ
イ8の中にある各要素がどのモジュール・サイズである
かを示す。分析された二値レベル・バー・コードは、あ
てはまる各要素に対して広いか狭いかを決定する10個の
閾値コンパレーター・ブロックの各々からの2ビットの
バー・コード・レベル・ビットのうちの1ビットだけを
必要とする。
範囲外ベクトル20とバー・コード・ベクトル22に換算さ
れる。範囲外ベクトル20は、レジスタ・アレイ8の中の
イメージが有効なバー・コード・キャラクタとして許容
される範囲にないことを示す。もし範囲外ベクトル20が
範囲外でないことを示すならば、バー・コード・ベクト
ル22の20ビット(10個の閾値レンジ・コンパレーターの
各々から2ビット)は、分析され、そしてラッチ・アレ
イ8の中にある各要素がどのモジュール・サイズである
かを示す。分析された二値レベル・バー・コードは、あ
てはまる各要素に対して広いか狭いかを決定する10個の
閾値コンパレーター・ブロックの各々からの2ビットの
バー・コード・レベル・ビットのうちの1ビットだけを
必要とする。
【0029】各バー・コード・フォーマットは、互いに
非常に異なるので、そのハードウェアの多くの機能は、
バー・コード・フォーマットの特性にあわせて配置可能
である必要がある。いくつかのフォーマットは、たとえ
ば、キャラクタ間スペースを有しており、またいくつか
は有していない。また、いくつかのフォーマットは、バ
ー・コード・フォーマットUSS-128のように、ただ一つ
の数値演算関数だけを必要とする(図3参照)。二値レ
ベル・バー・コード・フォーマットは、2個の数値演算
関数を使用して最適化されることができる。一方はバー
の幅を測定するために最適化され、もう一方はスペース
の幅を測定するために最適化されることができる。これ
は、読み取り比率と間違ったスタート・コードの検出を
改善する。セットアップ・プログラミングを必要とする
特定のエリアは、数値演算モジュール10(図1)、閾値
ブロック12、スタート/ストップ・コード検出回路16並
びにキャラクタ・デコード・ルックアップテーブル及び
ロジック回路30の中にある。すべてのプログラミング
は、初期化時にセットアップ機能として実行される。デ
コード過程において、ホスト・プロセッサは基本的にア
イドル状態にある。いったんバー・コードが検出され
て、そして読み取られたならば、ホスト・プロセッサ36
は、有効キャラクタ及びチェック・サムに対して、さら
にもし適当であるならば、目標とするバー・コード・フ
ォーマットに対して、デコードされたデータを評価す
る。ホスト・プロセッサ36は、必要に応じてハードウェ
アの再初期化を行う。
非常に異なるので、そのハードウェアの多くの機能は、
バー・コード・フォーマットの特性にあわせて配置可能
である必要がある。いくつかのフォーマットは、たとえ
ば、キャラクタ間スペースを有しており、またいくつか
は有していない。また、いくつかのフォーマットは、バ
ー・コード・フォーマットUSS-128のように、ただ一つ
の数値演算関数だけを必要とする(図3参照)。二値レ
ベル・バー・コード・フォーマットは、2個の数値演算
関数を使用して最適化されることができる。一方はバー
の幅を測定するために最適化され、もう一方はスペース
の幅を測定するために最適化されることができる。これ
は、読み取り比率と間違ったスタート・コードの検出を
改善する。セットアップ・プログラミングを必要とする
特定のエリアは、数値演算モジュール10(図1)、閾値
ブロック12、スタート/ストップ・コード検出回路16並
びにキャラクタ・デコード・ルックアップテーブル及び
ロジック回路30の中にある。すべてのプログラミング
は、初期化時にセットアップ機能として実行される。デ
コード過程において、ホスト・プロセッサは基本的にア
イドル状態にある。いったんバー・コードが検出され
て、そして読み取られたならば、ホスト・プロセッサ36
は、有効キャラクタ及びチェック・サムに対して、さら
にもし適当であるならば、目標とするバー・コード・フ
ォーマットに対して、デコードされたデータを評価す
る。ホスト・プロセッサ36は、必要に応じてハードウェ
アの再初期化を行う。
【0030】USS-128のような多値レベル・バー・コー
ドでは、その閾値が、すべての4個のバーまたはスペー
ス幅の上限及び下限となるように設計される。各バー・
コード128キャラクタは、11個のモジュールから成る。
各キャラクタは、常に3個のバーと3個のスペースを持
ち、そして1個の、2個の、3個のまたは4個のモジュール
の幅を持つバーとスペースから成る。1個のモジュール
の1個のバーまたはスペースがもっとも幅が狭いバーま
たはスペース要素であり、一方、4個のモジュール・カ
ウントがこのコードに対するもっとも広いものである。
キャラクタが有効であるために、全6個のバーとスペー
スに対するモジュールの数が、11個のモジュールになる
まで加算されなければならない、また有効なコード・テ
ーブルの中になければならない。各バーまたはスペース
要素は、どのようなピクセルの数であってもよい。もっ
とも幅が狭いバーまたはスペースに対する下限値は、0.
5のモジュールでセットされる。もっとも幅が狭いバー
またはスペースに対する上限値は、1.5モジュールでま
たは一番目と二番目のモジュール幅の間の中間でセット
される。より大きいバーとスペースは、ユニット・モジ
ュール・サイズまたは、もっとも幅が狭いバーもしくは
スペースの2倍、3倍もしくは4倍に等しい。モジュール2
の幅のバーまたはスペースに対する下限値は、モジュー
ル1のバーまたはスペースに対する上限値である、そし
て、すべての4個の幅に対して同様である。もし、走査
長符号化された計数値がレベル4の上側の閾値140に対し
て発生された閾値よりも大きいときには、範囲外信号が
発生される(図7、符号206)。もし、走査長符号化さ
れた計数値がレベル1の下側の閾値136(図5)に対して
発生された閾値よりも小さいときには、範囲外信号が発
生される(図7、符号208)。これらの2個の範囲外信号
は、ORゲート198によって、論理和がとられて、信号214
が得られる。この信号214は、スタート/ストップ・コ
ード検出回路とキャラクタ・デコード回路に対して、こ
のバーまたはスペース要素に対する現在の走査長符合化
された計数値が、どのバーまたはどのスペース幅の閾値
の範囲内にもないことを知らせる。
ドでは、その閾値が、すべての4個のバーまたはスペー
ス幅の上限及び下限となるように設計される。各バー・
コード128キャラクタは、11個のモジュールから成る。
各キャラクタは、常に3個のバーと3個のスペースを持
ち、そして1個の、2個の、3個のまたは4個のモジュール
の幅を持つバーとスペースから成る。1個のモジュール
の1個のバーまたはスペースがもっとも幅が狭いバーま
たはスペース要素であり、一方、4個のモジュール・カ
ウントがこのコードに対するもっとも広いものである。
キャラクタが有効であるために、全6個のバーとスペー
スに対するモジュールの数が、11個のモジュールになる
まで加算されなければならない、また有効なコード・テ
ーブルの中になければならない。各バーまたはスペース
要素は、どのようなピクセルの数であってもよい。もっ
とも幅が狭いバーまたはスペースに対する下限値は、0.
5のモジュールでセットされる。もっとも幅が狭いバー
またはスペースに対する上限値は、1.5モジュールでま
たは一番目と二番目のモジュール幅の間の中間でセット
される。より大きいバーとスペースは、ユニット・モジ
ュール・サイズまたは、もっとも幅が狭いバーもしくは
スペースの2倍、3倍もしくは4倍に等しい。モジュール2
の幅のバーまたはスペースに対する下限値は、モジュー
ル1のバーまたはスペースに対する上限値である、そし
て、すべての4個の幅に対して同様である。もし、走査
長符号化された計数値がレベル4の上側の閾値140に対し
て発生された閾値よりも大きいときには、範囲外信号が
発生される(図7、符号206)。もし、走査長符号化さ
れた計数値がレベル1の下側の閾値136(図5)に対して
発生された閾値よりも小さいときには、範囲外信号が発
生される(図7、符号208)。これらの2個の範囲外信号
は、ORゲート198によって、論理和がとられて、信号214
が得られる。この信号214は、スタート/ストップ・コ
ード検出回路とキャラクタ・デコード回路に対して、こ
のバーまたはスペース要素に対する現在の走査長符合化
された計数値が、どのバーまたはどのスペース幅の閾値
の範囲内にもないことを知らせる。
【0031】バー・コード・フォーマットUSS-128に対
する例として、以下の閾値は、次に述べる通りに設計さ
れることができる、閾値1信号136がモジュール1の下限
値に対応して、閾値2信号137がモジュール1の上限値と
モジュール2の下限値に対応する。閾値3信号138が、モ
ジュール2の上限値とモジュール3の下限値に対応する。
閾値4信号139が、モジュール3の上限値とモジュール4の
下限値に対応する。閾値5信号140が、モジュール4の上
限値にのみ対応する。
する例として、以下の閾値は、次に述べる通りに設計さ
れることができる、閾値1信号136がモジュール1の下限
値に対応して、閾値2信号137がモジュール1の上限値と
モジュール2の下限値に対応する。閾値3信号138が、モ
ジュール2の上限値とモジュール3の下限値に対応する。
閾値4信号139が、モジュール3の上限値とモジュール4の
下限値に対応する。閾値5信号140が、モジュール4の上
限値にのみ対応する。
【0032】バー/スペース閾値136〜140(図4)は、
バー・コード・クロックの有意のエッジ毎に生成され、
閾値ラッチ・ブロック116への入力に現れる。目標バー
・コード・フォーマットに対するスタート・コードが検
出されたならば、保持入力144はロー・レベル(Low)と
なり、そのラッチに、最後に計算された閾値を保持させ
る。ここその閾値は、通常固定される。目標イメージが
固定されていない率で走査されているか、あるいはイメ
ージ・スケールが変化しているかのどちらかの場合にお
いては、バー・コードの中の各新しいキャラクタの初め
に、新しい閾値を再獲得することが望ましい。これは、
そのイメージやスキャニング装置に閾値を適応させる。
ストップ・キャラクタが読まれるまで、閾値ラッチ・ブ
ロックは、通常その閾値を保持する。ストップ・キャラ
クタが取り逃がされた場合には、内部ロジックが読み取
りを終了する。
バー・コード・クロックの有意のエッジ毎に生成され、
閾値ラッチ・ブロック116への入力に現れる。目標バー
・コード・フォーマットに対するスタート・コードが検
出されたならば、保持入力144はロー・レベル(Low)と
なり、そのラッチに、最後に計算された閾値を保持させ
る。ここその閾値は、通常固定される。目標イメージが
固定されていない率で走査されているか、あるいはイメ
ージ・スケールが変化しているかのどちらかの場合にお
いては、バー・コードの中の各新しいキャラクタの初め
に、新しい閾値を再獲得することが望ましい。これは、
そのイメージやスキャニング装置に閾値を適応させる。
ストップ・キャラクタが読まれるまで、閾値ラッチ・ブ
ロックは、通常その閾値を保持する。ストップ・キャラ
クタが取り逃がされた場合には、内部ロジックが読み取
りを終了する。
【0033】その閾値は、閾値ラッチ・ブロック116か
ら10個の閾値ブロック104〜113に送られる。10個の閾値
ブロックの各々の構成要素は、図7内に示される。3個
のマグニチュード・コンパレータ170、172、174は、特
定のバー・コード要素に対する走査長符号化されたピク
セル計数値92〜101 (図4)を3個のレベル閾値182、18
4、186(図7)と比較するために提供される。これらの
マグニチュード・コンパレーターからの出力は、ライン
212及ライン210上の2ビットのバイナリ数値A1及びA0を
出力するプライオリティー・エンコーダー192へ供給さ
れる。それが省略時のものであるので、プライオリティ
ー・エンコーダー192への4番目の入力は必要でない。
さらに2個のマグニチュード・コンパレーター176と178
が、入力された計数値がモジュール4の上側の閾値188よ
り大きいかどうかか、あるいはモジュール1の下側の閾
値190より小さいかどうかをチェックするために使われ
る。これらのコンパレーターの目的は、それぞれの閾値
ブロックによって分析されている走査長符号化された要
素が、そのラッチアレイにおける他の該当するバー・コ
ード要素と比率的に比例しているかどうかを決定するこ
とである。もしシステムがバー・コード128デコーディ
ング用に設定されているならば、それらのコンパレータ
ーは、このバー・コード要素がモジュール長4(コンパ
レータ176)より大きいか、またはモジュール長1(コン
パレータ178)より小さい場合に、そのシステムに待機態
勢を取らせる。これは、2個の範囲外信号206及び208を
生成する。それらの信号は、ORゲート198で論理和がと
られ、2ビットのプライオリティー符合化されたバイナ
リ出力に対して優先権を有する完全な範囲外信号214を
出力する。有効なスタート・コード、ストップ・コード
または読み取られるべき有効なバー・コード・キャラク
タに対して、すべての範囲外信号が偽でなければなら
ず、そして、10対の2ビット・ワードがそのバー・コー
ド・フォーマットのキャラクタに対応している有効なパ
ターンのなかになければならない。スタート・コード要
素サイズ、キャラクタ要素サイズ、二値レベルまたは多
値レベル・バー・コード要素閾値の構成によって、パタ
ーン・マッチング・デコーダー・ルックアップ・テーブ
ルまたはスタート/ストップ・コード検出回路は、動作
用にある種の特定のビットを必要とするだけである。
ら10個の閾値ブロック104〜113に送られる。10個の閾値
ブロックの各々の構成要素は、図7内に示される。3個
のマグニチュード・コンパレータ170、172、174は、特
定のバー・コード要素に対する走査長符号化されたピク
セル計数値92〜101 (図4)を3個のレベル閾値182、18
4、186(図7)と比較するために提供される。これらの
マグニチュード・コンパレーターからの出力は、ライン
212及ライン210上の2ビットのバイナリ数値A1及びA0を
出力するプライオリティー・エンコーダー192へ供給さ
れる。それが省略時のものであるので、プライオリティ
ー・エンコーダー192への4番目の入力は必要でない。
さらに2個のマグニチュード・コンパレーター176と178
が、入力された計数値がモジュール4の上側の閾値188よ
り大きいかどうかか、あるいはモジュール1の下側の閾
値190より小さいかどうかをチェックするために使われ
る。これらのコンパレーターの目的は、それぞれの閾値
ブロックによって分析されている走査長符号化された要
素が、そのラッチアレイにおける他の該当するバー・コ
ード要素と比率的に比例しているかどうかを決定するこ
とである。もしシステムがバー・コード128デコーディ
ング用に設定されているならば、それらのコンパレータ
ーは、このバー・コード要素がモジュール長4(コンパ
レータ176)より大きいか、またはモジュール長1(コン
パレータ178)より小さい場合に、そのシステムに待機態
勢を取らせる。これは、2個の範囲外信号206及び208を
生成する。それらの信号は、ORゲート198で論理和がと
られ、2ビットのプライオリティー符合化されたバイナ
リ出力に対して優先権を有する完全な範囲外信号214を
出力する。有効なスタート・コード、ストップ・コード
または読み取られるべき有効なバー・コード・キャラク
タに対して、すべての範囲外信号が偽でなければなら
ず、そして、10対の2ビット・ワードがそのバー・コー
ド・フォーマットのキャラクタに対応している有効なパ
ターンのなかになければならない。スタート・コード要
素サイズ、キャラクタ要素サイズ、二値レベルまたは多
値レベル・バー・コード要素閾値の構成によって、パタ
ーン・マッチング・デコーダー・ルックアップ・テーブ
ルまたはスタート/ストップ・コード検出回路は、動作
用にある種の特定のビットを必要とするだけである。
【0034】図6は、スタート/ストップ・コード検出
回路16とプログラム可能なデコード・ロジックのブロッ
ク機能の詳細を図示する。スタート・コードとストップ
・コードは、あらゆるバー・コード・フォーマットの中
で完全に異なる。それらは、異なる要素長さと異なる要
素パターンを持つ。プログラム可能なスタート/ストッ
プ・コード検出回路ブロック16は、どのように特定のス
タートまたはストップ・コード・パターンが選択される
ことができて、また捜されることができるかを示す。バ
ー・コード・ベクトル22は、閾値レンジ・コンパレータ
ーからの20個のマッチング・パターン・ビットから成
る。ある種のビットだけが、目標バー・コード・フォー
マットに対して比較されなければならない。バー・コー
ド比較ベクトル224の使用によって、そのパターンは、
排他的ORゲート242を利用して突き合わせられるように
設定されることができる。そのパターンがマッチしたな
らば、このORゲート242の出力は、真になる。この信号
は、バー・コード無視ベクトル226の該当するビットと
論理和がとられる。これによって、このビットがスター
トまたはストップ・コード検出パターンに対して必要な
ビットであるかどうかが選択される。もし、そのビット
がそのバー・コードの検出において必要なければ、その
バー・コード無視ビット250は“ハイ”になり、そしてO
Rゲートの出力252が強制的に“ハイ”にされる。同様の
形態で、範囲外ベクトル20は、10個の個々の範囲外ビッ
トを含む。その範囲外ビット0(符号232)は、範囲外イネ
ーブル・ベクトル228からのビット234と論理積が取られ
ることが示されている。このイネーブル・ビットは、こ
の範囲外ビットがスタートまたはストップ・コード検出
のための比較において必要な要素であるかどうかを選択
する。もし、範囲外イネーブル・ビット234が“ロー”
であるならば、ANDゲート230の出力236は、常に“ロ
ー”である。これは、スタート/ストップ・コード検出
の一致が範囲外ビット0に対してなされないようにす
る。有効なスタートまたはストップ・コード検出信号24
0に対して、複数入力AND ゲート239へのすべての入力が
“ハイ”であることを必要とする。いくつかのバー・コ
ード・フォーマットは、そのスタートまたはストップ・
コード検出において複数のパターンを使用する。この場
合、検出回路16は、それらのアプリケーションのために
二重にされたり、あるいはカスタマイズされる。いった
んイニシャル・スタート・コードが検出されたならば、
スタート-ストップ論理スイッチ254は活性化(アクティ
ベイト)されて、以前にスタート・コード検出用に設定
されていたプログラム可能なベクトル(224、226及び22
8)を切り換え、ストップ・コード・キャラクタを捜
す。これは、スタートまたはストップ・コード検出のた
めに同じアレイが使われることを認める。
回路16とプログラム可能なデコード・ロジックのブロッ
ク機能の詳細を図示する。スタート・コードとストップ
・コードは、あらゆるバー・コード・フォーマットの中
で完全に異なる。それらは、異なる要素長さと異なる要
素パターンを持つ。プログラム可能なスタート/ストッ
プ・コード検出回路ブロック16は、どのように特定のス
タートまたはストップ・コード・パターンが選択される
ことができて、また捜されることができるかを示す。バ
ー・コード・ベクトル22は、閾値レンジ・コンパレータ
ーからの20個のマッチング・パターン・ビットから成
る。ある種のビットだけが、目標バー・コード・フォー
マットに対して比較されなければならない。バー・コー
ド比較ベクトル224の使用によって、そのパターンは、
排他的ORゲート242を利用して突き合わせられるように
設定されることができる。そのパターンがマッチしたな
らば、このORゲート242の出力は、真になる。この信号
は、バー・コード無視ベクトル226の該当するビットと
論理和がとられる。これによって、このビットがスター
トまたはストップ・コード検出パターンに対して必要な
ビットであるかどうかが選択される。もし、そのビット
がそのバー・コードの検出において必要なければ、その
バー・コード無視ビット250は“ハイ”になり、そしてO
Rゲートの出力252が強制的に“ハイ”にされる。同様の
形態で、範囲外ベクトル20は、10個の個々の範囲外ビッ
トを含む。その範囲外ビット0(符号232)は、範囲外イネ
ーブル・ベクトル228からのビット234と論理積が取られ
ることが示されている。このイネーブル・ビットは、こ
の範囲外ビットがスタートまたはストップ・コード検出
のための比較において必要な要素であるかどうかを選択
する。もし、範囲外イネーブル・ビット234が“ロー”
であるならば、ANDゲート230の出力236は、常に“ロ
ー”である。これは、スタート/ストップ・コード検出
の一致が範囲外ビット0に対してなされないようにす
る。有効なスタートまたはストップ・コード検出信号24
0に対して、複数入力AND ゲート239へのすべての入力が
“ハイ”であることを必要とする。いくつかのバー・コ
ード・フォーマットは、そのスタートまたはストップ・
コード検出において複数のパターンを使用する。この場
合、検出回路16は、それらのアプリケーションのために
二重にされたり、あるいはカスタマイズされる。いった
んイニシャル・スタート・コードが検出されたならば、
スタート-ストップ論理スイッチ254は活性化(アクティ
ベイト)されて、以前にスタート・コード検出用に設定
されていたプログラム可能なベクトル(224、226及び22
8)を切り換え、ストップ・コード・キャラクタを捜
す。これは、スタートまたはストップ・コード検出のた
めに同じアレイが使われることを認める。
【0035】プログラム可能なデコード・ロジック・セ
クション30は、目標バー・コード・フォーマットに対す
る特定のデコード動作を制御する。バー・コード・デコ
ード・ビット・セレクタ・マルチプレクサ256は、目標
フォーマットとそのフォーマットの要素に該当するバー
・コード・ベクトル22及び範囲外ベクトル20から該当す
るビットを選択する。これらのマルチプレクス(多重
化)されたビット282は、メモリ素子へのアドレスとし
てパターン・ビットを使用するバー・コード・デコーダ
ー・ルックアップ・テーブル回路258に送られる。メモ
リ素子の出力は、バー・コード・フォーマットによる実
際の1個のキャラクタまたは複数のキャラクタである。
バー/スペース要素カウンタ260のようなロジックは、
ラッチアレイを通してそれらの要素を順番に配列し、そ
して正しいデータを抽出するように、目標バー・コード
・フォーマットの要素計数値によってプログラムされ
る。統一商品コード(UPC;Universal Product Code)ま
たは欧州物品番号(European Article Numbering(EAN-
8))のようなバー・コード・フォーマットが使われる
場合、そのバー・コードがガード・バーのためのセンタ
ーにおいて切れ目を有しているため、このロジックは複
雑になる。また、センター・ガード・バーの後に符合化
されたデータ・フォーマットの変化がある。閾値ホール
ド・ロジック264は、有効なスタート・コード240を発生
する際に使われた、現在の閾値をラッチするために使わ
れる。その出力144は、図4の閾値ラッチ・ブロック116
に接続されている。
クション30は、目標バー・コード・フォーマットに対す
る特定のデコード動作を制御する。バー・コード・デコ
ード・ビット・セレクタ・マルチプレクサ256は、目標
フォーマットとそのフォーマットの要素に該当するバー
・コード・ベクトル22及び範囲外ベクトル20から該当す
るビットを選択する。これらのマルチプレクス(多重
化)されたビット282は、メモリ素子へのアドレスとし
てパターン・ビットを使用するバー・コード・デコーダ
ー・ルックアップ・テーブル回路258に送られる。メモ
リ素子の出力は、バー・コード・フォーマットによる実
際の1個のキャラクタまたは複数のキャラクタである。
バー/スペース要素カウンタ260のようなロジックは、
ラッチアレイを通してそれらの要素を順番に配列し、そ
して正しいデータを抽出するように、目標バー・コード
・フォーマットの要素計数値によってプログラムされ
る。統一商品コード(UPC;Universal Product Code)ま
たは欧州物品番号(European Article Numbering(EAN-
8))のようなバー・コード・フォーマットが使われる
場合、そのバー・コードがガード・バーのためのセンタ
ーにおいて切れ目を有しているため、このロジックは複
雑になる。また、センター・ガード・バーの後に符合化
されたデータ・フォーマットの変化がある。閾値ホール
ド・ロジック264は、有効なスタート・コード240を発生
する際に使われた、現在の閾値をラッチするために使わ
れる。その出力144は、図4の閾値ラッチ・ブロック116
に接続されている。
【0036】〔バー・コードUSS128に対するスタート・
コード検出のステップ-バイ-ステップの例〕 以下は、入力として雑音が多いピクセル・データを使用
している現実的な例であり、バー・コード・フォーマッ
トUSS-128におけるスタート・コードの読み取りをシミ
ュレートする。バー・コードUSS-128バージョンAのスタ
ート・コードが使用され、そしてそれは、その桁が、関
連しているモジュール幅に対応するバー-スペース・パ
ターン-211412(BSBSBS)を持っている。上記のパター
ン(211412)の中で、最も左の桁は、印刷されたページの
上の最も左のバーであり、したがって、それは、1番目
に走査され、入力される1番目の要素である。
コード検出のステップ-バイ-ステップの例〕 以下は、入力として雑音が多いピクセル・データを使用
している現実的な例であり、バー・コード・フォーマッ
トUSS-128におけるスタート・コードの読み取りをシミ
ュレートする。バー・コードUSS-128バージョンAのスタ
ート・コードが使用され、そしてそれは、その桁が、関
連しているモジュール幅に対応するバー-スペース・パ
ターン-211412(BSBSBS)を持っている。上記のパター
ン(211412)の中で、最も左の桁は、印刷されたページの
上の最も左のバーであり、したがって、それは、1番目
に走査され、入力される1番目の要素である。
【0037】ステップ1:走査長符号化されたピクセル
値が有効であると思われる場合(図3、符号24)、バー
コード・クロック26は“ハイ”になる。このクロック
は、ラッチ#1(68)に走査長ピクセル・データをシフト
する。各ラッチの中のデータは、有意なバー・コード・
クロック26のエッジで、右へ向かって次のラッチへシフ
トされる。有効なUSS-128スタート・コードAが次に走査
されることになっているのならば、最も左のバーは、ま
ず第一に走査されるべきものとなる。
値が有効であると思われる場合(図3、符号24)、バー
コード・クロック26は“ハイ”になる。このクロック
は、ラッチ#1(68)に走査長ピクセル・データをシフト
する。各ラッチの中のデータは、有意なバー・コード・
クロック26のエッジで、右へ向かって次のラッチへシフ
トされる。有効なUSS-128スタート・コードAが次に走査
されることになっているのならば、最も左のバーは、ま
ず第一に走査されるべきものとなる。
【0038】図8は、USS-128理想的なスタート・コー
ドAキャラクタ300を示す。現実の世界のアプリケーショ
ンにおいて、バーやスペースは正確にかつ同一に比例し
たサイズではない。多くの印刷アプリケーションにおい
て、バーは、スペースの上に滲み出するかもしれない。
バーのすべてのエッジが10%、隣接のスペースに滲み出
している同じバー・コード・キャラクタが図9に示され
ている。幅が狭いバーでは、これが、40%そのサイズを
増やし、そして、同じ40%だけ幅が狭いスペースを減少
させる。単位モジュールが10個のピクセルとしてランダ
ムに選ばれるならば、スタート・コード304の第一の要
素は、20の理想的なピクセル計数値を有するだろう。各
側に滲み出している10パーセントは、符号316で示され
た24のピクセル計数値にこれを広げる。雑音が多いスタ
ート・コードA 走査長符号化されたシーケンスは、符号
316〜326でそれぞれ示されるピクセル計数値24-6-14-36
-14-16を持つ。
ドAキャラクタ300を示す。現実の世界のアプリケーショ
ンにおいて、バーやスペースは正確にかつ同一に比例し
たサイズではない。多くの印刷アプリケーションにおい
て、バーは、スペースの上に滲み出するかもしれない。
バーのすべてのエッジが10%、隣接のスペースに滲み出
している同じバー・コード・キャラクタが図9に示され
ている。幅が狭いバーでは、これが、40%そのサイズを
増やし、そして、同じ40%だけ幅が狭いスペースを減少
させる。単位モジュールが10個のピクセルとしてランダ
ムに選ばれるならば、スタート・コード304の第一の要
素は、20の理想的なピクセル計数値を有するだろう。各
側に滲み出している10パーセントは、符号316で示され
た24のピクセル計数値にこれを広げる。雑音が多いスタ
ート・コードA 走査長符号化されたシーケンスは、符号
316〜326でそれぞれ示されるピクセル計数値24-6-14-36
-14-16を持つ。
【0039】ステップ2:いったんシーケンスのすべて
の6個の要素がシフトされた場合、図3(図示省略)の
ラッチ#6は第一の要素、すなわち24の計数値を保持し、
ラッチ#1(68)が最後の要素、すなわち16の計数値を保
持する。数値演算モジュール10は、関数Aだけを使用し
て、そしてラッチ1〜6(A-F)の出力を合計する。110個
のピクセルの高速合計は、出力62に現れる。
の6個の要素がシフトされた場合、図3(図示省略)の
ラッチ#6は第一の要素、すなわち24の計数値を保持し、
ラッチ#1(68)が最後の要素、すなわち16の計数値を保
持する。数値演算モジュール10は、関数Aだけを使用し
て、そしてラッチ1〜6(A-F)の出力を合計する。110個
のピクセルの高速合計は、出力62に現れる。
【0040】ステップ3:次のバー・コード・クロック
で、ラッチL1〜 L6(図3)の中のそれに関連したデー
タがラッチL2〜L7(L6〜L9は図示していない)へシフト
されている間に、110個のピクセルの以前に記述された
合計(図5のライン62上に現れる)は、5個のハードウ
ェア・スケーリング乗算器へクロックに同期して送出さ
れる。データ乗算器129〜133(図5)は、この適用では
すべてAにセットされる。関数Aによって定義された合計
はライン62上に現れる、そして、関連した定数K1〜K5に
はその合計が掛けられる(図5)。これらの乗算器の積
は、次に述べる通りの実際の閾値である:
で、ラッチL1〜 L6(図3)の中のそれに関連したデー
タがラッチL2〜L7(L6〜L9は図示していない)へシフト
されている間に、110個のピクセルの以前に記述された
合計(図5のライン62上に現れる)は、5個のハードウ
ェア・スケーリング乗算器へクロックに同期して送出さ
れる。データ乗算器129〜133(図5)は、この適用では
すべてAにセットされる。関数Aによって定義された合計
はライン62上に現れる、そして、関連した定数K1〜K5に
はその合計が掛けられる(図5)。これらの乗算器の積
は、次に述べる通りの実際の閾値である:
【0041】1.モジュール長さ1下限値:0.5モジュール
長より大きいかまたは小さいかのピクセルの合計 2.モジュール長1の上限値及びモジュール長2の下限値:
1.5モジュール長より大きいかまたは小さいかのピクセ
ルの合計 3.モジュール長2の上限値及びモジュール長3の下限値:
2.5モジュール長より大きいかまたは小さいかのピクセ
ルの合計 4.モジュール長3の上限値及びモジュール長4の下限値:
3.5モジュール長より大きいかまたは小さいかのピクセ
ルの合計 5.モジュール長4の上限値:4.5モジュール長より大きい
かまたは小さいかのピクセルの合計
長より大きいかまたは小さいかのピクセルの合計 2.モジュール長1の上限値及びモジュール長2の下限値:
1.5モジュール長より大きいかまたは小さいかのピクセ
ルの合計 3.モジュール長2の上限値及びモジュール長3の下限値:
2.5モジュール長より大きいかまたは小さいかのピクセ
ルの合計 4.モジュール長3の上限値及びモジュール長4の下限値:
3.5モジュール長より大きいかまたは小さいかのピクセ
ルの合計 5.モジュール長4の上限値:4.5モジュール長より大きい
かまたは小さいかのピクセルの合計
【0042】その乗算器への入力は、一つの8ビット定
数と一つの12ビット合計である。8ビット出力は、16ビ
ット乗算結果の最上位のビット15〜8までから取り出さ
れる。モジュール閾値(MT)は、与えられたモジュール
長1〜4の各々に対する上側及び下側の標準化された許容
できる限界であり、以下のものによって計算される: モジュール閾値(MT)=(0.55, 1.55, 2.55, 3.55,4.5
5) (なお、数値を丸めるため、0.05が各々の名目上の閾値
に加えられている。)
数と一つの12ビット合計である。8ビット出力は、16ビ
ット乗算結果の最上位のビット15〜8までから取り出さ
れる。モジュール閾値(MT)は、与えられたモジュール
長1〜4の各々に対する上側及び下側の標準化された許容
できる限界であり、以下のものによって計算される: モジュール閾値(MT)=(0.55, 1.55, 2.55, 3.55,4.5
5) (なお、数値を丸めるため、0.05が各々の名目上の閾値
に加えられている。)
【0043】定数K1〜K5は、6要素ピクセルの合計が掛
けられる整数であり、その結果は、種々の絶対モジュー
ル・サイズを定義する、標準化されていない上側及び下
側のピクセル計数値となる。
けられる整数であり、その結果は、種々の絶対モジュー
ル・サイズを定義する、標準化されていない上側及び下
側のピクセル計数値となる。
【0044】KN =(MT*256)÷11 ここで、11は与えられたキャラクタに対するすべてのモ
ジュールの合計であり、256は乗算器出力の16個の全体
のビットの高位8ビットを使用するためのオフセットで
あり、そして、モジュール閾値MTは各モジュール間の名
目上のモジュール閾値である。これは、次の定数を生成
する。 K1 = 12.8、K2= 36.1、K3= 59.3、K4= 82.6、K5= 105.9 もっとも近い整数は次の通りである。 K1 =12、K2=36、K3=59、K4=82、K5= 105
ジュールの合計であり、256は乗算器出力の16個の全体
のビットの高位8ビットを使用するためのオフセットで
あり、そして、モジュール閾値MTは各モジュール間の名
目上のモジュール閾値である。これは、次の定数を生成
する。 K1 = 12.8、K2= 36.1、K3= 59.3、K4= 82.6、K5= 105.9 もっとも近い整数は次の通りである。 K1 =12、K2=36、K3=59、K4=82、K5= 105
【0045】そのように、ラッチL3〜L8に対する110個
のピクセルの動作合計に対して、定義によって各キャラ
クタが11個のモジュールを有するので、有効な128個の
キャラクタに対して、一つのモジュール長さが10個のピ
クセル広さであることを演繹することができる。ピクセ
ル閾値は、下に示す表2の中で計算されている:
のピクセルの動作合計に対して、定義によって各キャラ
クタが11個のモジュールを有するので、有効な128個の
キャラクタに対して、一つのモジュール長さが10個のピ
クセル広さであることを演繹することができる。ピクセ
ル閾値は、下に示す表2の中で計算されている:
【0046】
【表1】
【0047】ここで、ピクセル閾値は、種々の絶対モジ
ュール・サイズを定義する、標準化されていない上側及
び下側のピクセル計数値として定義される。
ュール・サイズを定義する、標準化されていない上側及
び下側のピクセル計数値として定義される。
【0048】ステップ4:次の有意なバー・コード・ク
ロック・エッジについては図4及び図5を参照する。ラ
ッチL2〜L7の中の関連したデータは、ラッチL3〜L8へシ
フトされて、そして、閾値レンジ・ブロック104〜閾値
レンジ・ブロック109(図示されていない)で現れる、
そして、乗算された新しい閾値はその乗算器内で乗算器
ホールド・レジスター出力からリリースされる。これら
の閾値は、上記ように計算された定数倍した合計関数A
から計算されて、そして表2の中で示される。すべての6
個の閾値レンジ・ブロック104〜109(109は図4の中で
示されていない)は、入力された走査長符号化されたピ
クセル計数値92〜97(97は図4の中で示されていない)
と新しく計算された5個の閾値を比較する、複数の大き
さ比較を行う。もし計数値のどれかが4.55モジュール閾
値を越えるかまたは0.55モジュール閾値をより下に低下
するかしたならば、その要素に対する範囲外ビットが設
定されて、そして、有効なスタート・コード認識しな
い。閾値ブロックの出力は、表3の中で示される。
ロック・エッジについては図4及び図5を参照する。ラ
ッチL2〜L7の中の関連したデータは、ラッチL3〜L8へシ
フトされて、そして、閾値レンジ・ブロック104〜閾値
レンジ・ブロック109(図示されていない)で現れる、
そして、乗算された新しい閾値はその乗算器内で乗算器
ホールド・レジスター出力からリリースされる。これら
の閾値は、上記ように計算された定数倍した合計関数A
から計算されて、そして表2の中で示される。すべての6
個の閾値レンジ・ブロック104〜109(109は図4の中で
示されていない)は、入力された走査長符号化されたピ
クセル計数値92〜97(97は図4の中で示されていない)
と新しく計算された5個の閾値を比較する、複数の大き
さ比較を行う。もし計数値のどれかが4.55モジュール閾
値を越えるかまたは0.55モジュール閾値をより下に低下
するかしたならば、その要素に対する範囲外ビットが設
定されて、そして、有効なスタート・コード認識しな
い。閾値ブロックの出力は、表3の中で示される。
【0049】
【表2】
【0050】ステップ5:6個の閾値レンジ・ブロック10
4〜109(107〜109は図4の中で示されていない)からの
12個のバー/スペース・レベル・ビットは、スタート・
コード検出ブロック(図6,符号16)の中へ送られる。
閾値レンジ・ブロックからのそのデータが有効になった
後、その回路は、捜されているスタート・コードのマッ
チを捜す。USS-128スタート・コード“A”に対するモジ
ュール計数値は、2-1-1-4-1-2または1-0-0-3-0-1におけ
るゼロ・ベースである。スタート・コード・ブロック16
は、このパターンを認識するためにプログラムされる。
表3のカラム8の中の要素パターンは、スタート・コード
Aにマッチする閾値パターン1-0-0-3-0-1を持つ。これ
は、スタート・コード検出を生成する。
4〜109(107〜109は図4の中で示されていない)からの
12個のバー/スペース・レベル・ビットは、スタート・
コード検出ブロック(図6,符号16)の中へ送られる。
閾値レンジ・ブロックからのそのデータが有効になった
後、その回路は、捜されているスタート・コードのマッ
チを捜す。USS-128スタート・コード“A”に対するモジ
ュール計数値は、2-1-1-4-1-2または1-0-0-3-0-1におけ
るゼロ・ベースである。スタート・コード・ブロック16
は、このパターンを認識するためにプログラムされる。
表3のカラム8の中の要素パターンは、スタート・コード
Aにマッチする閾値パターン1-0-0-3-0-1を持つ。これ
は、スタート・コード検出を生成する。
【0051】有効なスタート・コードが検出されるなら
ば、閾値ラッチ・ブロック116は、現在の閾値で固定さ
れて、そして更新されない。その12個のバー/スペース
・レベル・ビット(BC11〜BC0)は、それから、PROM
(プログラマブル・リード・オンリ・メモリ)ルックア
ップ・テーブルに送られて(図6、符号258)、その次
の6つの要素がそのシステムにシフトされた後、バー-ス
ペース・パターンのASCII表現を抽出する。
ば、閾値ラッチ・ブロック116は、現在の閾値で固定さ
れて、そして更新されない。その12個のバー/スペース
・レベル・ビット(BC11〜BC0)は、それから、PROM
(プログラマブル・リード・オンリ・メモリ)ルックア
ップ・テーブルに送られて(図6、符号258)、その次
の6つの要素がそのシステムにシフトされた後、バー-ス
ペース・パターンのASCII表現を抽出する。
【0052】ステップ6:さらに6バー・コード・クロッ
ク周期26の後、次の有効なASCIIデータ・キャラクタを
同様の方法で調べる。
ク周期26の後、次の有効なASCIIデータ・キャラクタを
同様の方法で調べる。
【0053】ステップ7:6番目のバー・コード・クロッ
ク・サイクル毎に、有効なスタート・コードが検出され
た後、そのスタート/ストップ・コード検出論理回路
は、スタート・コードの検出に対するのと同様の方法
で、ストップ・コードのマッチを確認する。バーまたは
スペースがそのバー・コード内のキャラクタ内で取り逃
がされるならば、すべての以降のキャラクタの実際の読
み取りが、エラーになる。したがって、確信されたキャ
ラクタ・エッジに対して非同期でストップ・コードにつ
いて調べることが必要である。読み取られたキャラクタ
の数に対する上限値は、また、読み取りとデコーディン
グのシーケンスを終了する。
ク・サイクル毎に、有効なスタート・コードが検出され
た後、そのスタート/ストップ・コード検出論理回路
は、スタート・コードの検出に対するのと同様の方法
で、ストップ・コードのマッチを確認する。バーまたは
スペースがそのバー・コード内のキャラクタ内で取り逃
がされるならば、すべての以降のキャラクタの実際の読
み取りが、エラーになる。したがって、確信されたキャ
ラクタ・エッジに対して非同期でストップ・コードにつ
いて調べることが必要である。読み取られたキャラクタ
の数に対する上限値は、また、読み取りとデコーディン
グのシーケンスを終了する。
【0054】ステップ8:後処理段。いったんストップ
・コードがトリガされたならば、バー・コード・データ
は、ホスト・プロセッサによって分析する準備ができて
いる。そのプロセッサがバー・コード・デコーディング
を何もしなかった点に注意することが重要である! し
かし、そのプロセッサは、チェック・サム・キャラクタ
が正しいことの妥当性を検査して、そしてシフト・キャ
ラクタをあるいはたとえばコード・スイッチを二倍密度
数値フォーマット(double density numeric format)
に翻訳する。結果として生ずる文字列は、バー・コード
・データのユーザに送られる。
・コードがトリガされたならば、バー・コード・データ
は、ホスト・プロセッサによって分析する準備ができて
いる。そのプロセッサがバー・コード・デコーディング
を何もしなかった点に注意することが重要である! し
かし、そのプロセッサは、チェック・サム・キャラクタ
が正しいことの妥当性を検査して、そしてシフト・キャ
ラクタをあるいはたとえばコード・スイッチを二倍密度
数値フォーマット(double density numeric format)
に翻訳する。結果として生ずる文字列は、バー・コード
・データのユーザに送られる。
【0055】そのバー・コードのイメージが平面で対象
から得られるアプリケーションにおいて、そのバー・コ
ードのそのバーとスペースは、像を造られたバー・コー
ドの左側の上に、その右側の上と実質的には同じサイズ
の要素を持つ。このアプリケーションにおいては、その
バー・コードに対するデコード・プロセスの継続時間の
間、スタート・キャラクタが置かれていた後に確立され
た、ラッチされた閾値レベルを信頼することが適切であ
る。しかしながら、像を造られていた対象が円筒ような
曲がった性質のものであるアプリケーションにおいて
は、その中央または右側に現れるのと同じにそのバー・
コードの左側は現れない。これのようなアプリケーショ
ンにおいては、見られている弧の半径に基づいて、キャ
ラクタ毎あるいは2個のキャラクタ毎の後に新しい閾値
レベルを再確立することが望ましい。これは、そのバー
・コードがカーブさせられた表面の上にデコードされて
いるので起こるかもしれないゆがみを補う。その閾値
は、獲得されたバー・コードのチャージング面比率を適
応させるために徐々に調節される。
から得られるアプリケーションにおいて、そのバー・コ
ードのそのバーとスペースは、像を造られたバー・コー
ドの左側の上に、その右側の上と実質的には同じサイズ
の要素を持つ。このアプリケーションにおいては、その
バー・コードに対するデコード・プロセスの継続時間の
間、スタート・キャラクタが置かれていた後に確立され
た、ラッチされた閾値レベルを信頼することが適切であ
る。しかしながら、像を造られていた対象が円筒ような
曲がった性質のものであるアプリケーションにおいて
は、その中央または右側に現れるのと同じにそのバー・
コードの左側は現れない。これのようなアプリケーショ
ンにおいては、見られている弧の半径に基づいて、キャ
ラクタ毎あるいは2個のキャラクタ毎の後に新しい閾値
レベルを再確立することが望ましい。これは、そのバー
・コードがカーブさせられた表面の上にデコードされて
いるので起こるかもしれないゆがみを補う。その閾値
は、獲得されたバー・コードのチャージング面比率を適
応させるために徐々に調節される。
【0056】特別なリファレンスを詳細に、この発明は
それについて、実施例に対して述べた、しかし、変化と
修正がこの発明の精神と範囲の範囲内で生じられること
ができることは、理解される。
それについて、実施例に対して述べた、しかし、変化と
修正がこの発明の精神と範囲の範囲内で生じられること
ができることは、理解される。
【0057】
【図1】機能によって主なボックスを図示しているバー
・コード・デコーダーのブロック図である。
・コード・デコーダーのブロック図である。
【図2】ピクセル・クロック及びデータから走査長ピク
セル計数値バー・コード・アクセラレータ・メモリへの
変換方法とバー・コード・システム・クロックの発生に
ついて図示する図である。
セル計数値バー・コード・アクセラレータ・メモリへの
変換方法とバー・コード・システム・クロックの発生に
ついて図示する図である。
【図3】ラッチの構成、及びラッチ・データがメイン・
モジュールと、そして2クロック・サイクルの遅れの
後、閾値レンジング(範囲付け)・コンパレーター・ブ
ロックの両方にどのように供給されるのかを図示する図
である。
モジュールと、そして2クロック・サイクルの遅れの
後、閾値レンジング(範囲付け)・コンパレーター・ブ
ロックの両方にどのように供給されるのかを図示する図
である。
【図4】ラッチ・データ及び閾値からのバー・コード・
ベクトルの発生について図示する図である。
ベクトルの発生について図示する図である。
【図5】数値演算モジュールから5個の閾値を生成する
スケーリング乗算器までのデータの流れを図示する;
スケーリング乗算器までのデータの流れを図示する;
【図6】スタート/ストップ・コードが、その他の論理
セクションのいくつかのロケーションにおいて、どのよ
うに検出されるのかを図示する図である。
セクションのいくつかのロケーションにおいて、どのよ
うに検出されるのかを図示する図である。
【図7】10個の閾値ブロックの1つの回路図であり、そ
れは走査長ピクセル計数値及び5個の閾値の変換とその
ベクトルを3ビットのデータに換算することを図示する
図である。
れは走査長ピクセル計数値及び5個の閾値の変換とその
ベクトルを3ビットのデータに換算することを図示する
図である。
【図8】モジュールによってブレイクダウンされた理想
的なUSS-128スタート・コードAキャラクタを図示する図
である。
的なUSS-128スタート・コードAキャラクタを図示する図
である。
【図9】10%のバーが各スペースに滲み出している不十
分に印刷されたUSS-128スタート・コードAキャラクタと
各モジュールに対して結果として生じるピクセル計数値
を示す図である。
分に印刷されたUSS-128スタート・コードAキャラクタと
各モジュールに対して結果として生じるピクセル計数値
を示す図である。
1 イメージ 2 カメラ 4 データアクイジション及び信号処理ユニット 6 ピクセルクロック及びデータの走査長符号化ブロッ
ク 8 ラッチ・アレイ 10 プログラマブル高速数値演算モジュール 12 閾値発生ブロック 16 スタート/ストップ・コード検出回路 18 閾値ブロック・レンジ・コンパレータ 30 キャラクタ・デコード・ルックアップ・テーブル及
びロジック
ク 8 ラッチ・アレイ 10 プログラマブル高速数値演算モジュール 12 閾値発生ブロック 16 スタート/ストップ・コード検出回路 18 閾値ブロック・レンジ・コンパレータ 30 キャラクタ・デコード・ルックアップ・テーブル及
びロジック
Claims (10)
- 【請求項1】 バー・コードの中でキャラクタを形成し
ているあらかじめ決められた数の要素を持つバーまたは
スペースのような要素毎にあらかじめ決められた数のモ
ジュールを有している要素を各々が定義している印刷さ
れたバーとスペースを読み取るためのバー・コード読み
取り装置であって、 該装置は、以下のものから成る: a)アイテムを走査し、かつデータ信号を生成するための
手段; b)前記データ信号を要素毎のピクセルの走査長計数値に
変換するための手段; c)次の要素をシーケンシャル・ラッチ・アレイにロード
するための手段; d)前記シーケンシャル・ラッチ・アレイにおけるあらか
じめ決められた数の要素に対する前記走査長計数値を合
計するための手段; e)前記走査長計数値が有効なバー・コード要素と関連す
る範囲内にあるかどうかを決めるために、複数の閾値値
と前記シーケンシャル・ラッチ・アレイにおける各ラッ
チの中の前記走査長計数値を比較するための手段; f)各要素と関連したモジュールの数を決定するための手
段; g)初期化パターンを認識するための手段;及び h)前記初期化パターンの検出の後、各要素におけるモジ
ュールの数に基づくキャラクタ情報をデコードするため
にルック・アップ・テーブルにアクセスするための手
段。 - 【請求項2】 比較手段がモジュール計数値とストップ
・コード・パターンとをを比較し、それがマッチしたと
きに前記ルック・アップ・テーブルにアクセスするため
の手段が抑止される請求項1記載バー・コード読み取り
装置。 - 【請求項3】 スタート・コード・パターンのデコーデ
ィングが、前記バー・コードのデコーディングの時間の
間に、前記要素毎のモジュールを数を定義するために使
われる複数の閾値を確立する請求項2記載バー・コード
読み取り装置 - 【請求項4】 特定の要素のために走査長計数値合計の
複数の範囲を生成するための手段をさらに含む請求項1
記載バー・コード読み取り装置。 - 【請求項5】 与えられた要素が有効なバー・コード要
素より大きいかまたは小さいか決めるために複数の閾値
と該与えられた要素の走査長計数値を比較するための手
段をさらに含む請求項1記載バー・コード読み取り装
置。 - 【請求項6】 そのバー・コードの中でどれか一つの要
素でも有効なバー・コード要素サイズより大きいかまた
は小さい場合にスタート・コードを抑止するための手段
をさらに含む請求項1記載バー・コード読み取り装置。 - 【請求項7】 スタート・コードの検出の後、複数の閾
値をロックしそして保持するための手段をさらに含む請
求項1記載バー・コード読み取り装置。 - 【請求項8】 さらに、初期化パターンがあらかじめ決
められた数のキャラクタのどちらの側にもガード・バー
の形式をとる請求項1記載バー・コード読み取り装置。 - 【請求項9】 前記ガード・バーのあらかじめ決められ
たパターンを認識した後、第二のルック・アップ・テー
ブルを選択するための手段をさらに含む請求項8記載バ
ー・コード読み取り装置。 - 【請求項10】 バー・コードの中でキャラクタを形づ
くっているあらかじめ決められた数の要素と要素毎にあ
らかじめ決められた数のモジュールを有し、各々がバー
またはスペース毎にあらかじめ決められた数のモジュー
ルを持っている要素を定義する、印刷されたバーとスペ
ースを持っているバー・コードを読み取るための方法で
あって、該方法は以下の通りのステップから成ってい
る: a)アイテムを走査し、そしてデータ信号を生成し; b)前記データ信号をバーまたはスペース毎のピクセルの
走査長計数値に変換し; c)走査長データを順次記憶し; d)あらかじめ決められた数の要素が記憶された後、ピク
セル計数値を合計し; e)要素毎のモジュールの数を定義するため、各与えられ
た要素の計数値を複数の閾値と比較し、; f)各要素のモジュール計数値をあらかじめ決められた初
期化パターンと比較し;そして g)初期化パターンの検出が検出された後、各要素のモジ
ュール計数値に基づくキャラクタ情報をデコードするた
めルック・アップ・テーブルにアクセスする。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US236,431 | 1994-04-29 | ||
US08/236,431 US5468946A (en) | 1994-04-29 | 1994-04-29 | Method and apparatus for decoding multi-level bar codes or bi-level bar codes |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0844809A true JPH0844809A (ja) | 1996-02-16 |
Family
ID=22889483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7107712A Pending JPH0844809A (ja) | 1994-04-29 | 1995-05-01 | 多値レベル・バー・コードまたは二値レベル・バー・コードのデコーディング方法及び装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5468946A (ja) |
EP (1) | EP0680003A3 (ja) |
JP (1) | JPH0844809A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9536125B2 (en) | 2014-10-06 | 2017-01-03 | Fujitsu Limited | Data determination device, library device, and data determination method |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5619026A (en) * | 1995-01-04 | 1997-04-08 | International Business Machines Corporation | Grayscale barcode reading apparatus system including translating device for translating a pattern image into a sequence of bar widths and transition directions |
US5698833A (en) * | 1996-04-15 | 1997-12-16 | United Parcel Service Of America, Inc. | Omnidirectional barcode locator |
US5811777A (en) * | 1996-07-11 | 1998-09-22 | Intermec Corporation | Method and apparatus for utilizing specular light to image low contrast symbols |
US6367699B2 (en) | 1996-07-11 | 2002-04-09 | Intermec Ip Corp. | Method and apparatus for utilizing specular light to image low contrast symbols |
US5767497A (en) * | 1996-12-04 | 1998-06-16 | United Parcel Service Of America, Inc. | Method and apparatus for decoding bar code symbols using ratio analysis of module size |
US5992745A (en) * | 1997-04-30 | 1999-11-30 | Uniform Code Council, Inc. | N, k structure bar code character value determination method and system |
US6119941A (en) * | 1998-05-04 | 2000-09-19 | Intermec Ip Corp. | Automated help instructions for automatically or adaptively configuring a hand-held device, such as a bar code reader or hand-held personal computer |
US6250551B1 (en) | 1998-06-12 | 2001-06-26 | Symbol Technologies, Inc. | Autodiscrimination and line drawing techniques for code readers |
US6078698A (en) * | 1999-09-20 | 2000-06-20 | Flir Systems, Inc. | System for reading data glyphs |
US6760873B1 (en) * | 2000-09-28 | 2004-07-06 | Lsi Logic Corporation | Built-in self test for speed and timing margin for a source synchronous IO interface |
WO2002042926A1 (en) * | 2000-11-20 | 2002-05-30 | Ecrio Inc. | Method for downloading bar code encoded information with a mobile communication |
US6685093B2 (en) * | 2001-09-25 | 2004-02-03 | Ecrio, Inc. | System, method and apparatus for communicating information between a mobile communications device and a bar code reader |
US6877665B2 (en) | 2000-11-20 | 2005-04-12 | Ecrio, Inc. | System, method, and apparatus for communicating information encoded in a light-based signal using a fob device |
US6834803B2 (en) * | 2000-12-15 | 2004-12-28 | Symbol Technologies, Inc. | Ink-spread compensated bar code symbology and compensation methods |
US7299989B2 (en) * | 2000-12-15 | 2007-11-27 | Symbol Technologies, Inc. | System and method for decoding and encoding compensated optical codes |
US7967211B2 (en) * | 2001-09-25 | 2011-06-28 | Mobeam Inc. | Method and apparatus for communicating information from a mobile digital device to a bar code scanner |
EP1484761A1 (en) * | 2003-06-05 | 2004-12-08 | Deutsche Thomson-Brandt Gmbh | Recovery of RLL encoded bit stream from an asymmetric data channel |
JP3713039B1 (ja) * | 2004-04-30 | 2005-11-02 | メキキ・クリエイツ株式会社 | 勤務情報処理システム、装置、方法及びコンピュータプログラム |
US9412087B2 (en) | 2014-03-03 | 2016-08-09 | Aesynt Incorporated | System, method, and apparatus for mapping product identification to medication identification |
CN114091495B (zh) * | 2021-11-29 | 2022-08-05 | 深圳市智百威科技发展有限公司 | 一种条形码识别扫描系统及方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4567361A (en) * | 1983-05-23 | 1986-01-28 | Gca Corporation | Reticle bar code and method and apparatus for reading same |
JPS6011973A (ja) * | 1983-07-01 | 1985-01-22 | Nec Corp | バ−コ−ド読取装置 |
JPH0762858B2 (ja) * | 1985-06-06 | 1995-07-05 | 株式会社サトー | バーコード読取方法および装置 |
US4873426A (en) * | 1988-08-03 | 1989-10-10 | Image Business Systems Corporation | Technique for reading bar codes |
JP2886545B2 (ja) * | 1989-03-03 | 1999-04-26 | 富士通株式会社 | マージン認識方法及びバーコード読取り装置 |
JP2761265B2 (ja) * | 1989-11-07 | 1998-06-04 | 富士通株式会社 | バーコード読取方式 |
US4992650A (en) * | 1990-03-29 | 1991-02-12 | International Business Machines Corporation | Method and apparatus for barcode recognition in a digital image |
US5196685A (en) * | 1990-05-02 | 1993-03-23 | Eastman Kodak Company | Bar code reader |
US5210397A (en) * | 1990-05-03 | 1993-05-11 | Psc, Inc. | Differentiating and integrating circuit for translating bar code signals into corresponding pulses |
CA2048824A1 (en) * | 1990-09-28 | 1992-03-29 | William A. Blitz | System for decoding bar codes on job programming separators for electronic reprographic/printing machines |
EP0498678B1 (en) * | 1991-02-08 | 2000-05-10 | Fujitsu Limited | High speed scan bar code reader which can read more than one type of bar code |
-
1994
- 1994-04-29 US US08/236,431 patent/US5468946A/en not_active Expired - Lifetime
-
1995
- 1995-04-12 EP EP95200924A patent/EP0680003A3/en not_active Withdrawn
- 1995-05-01 JP JP7107712A patent/JPH0844809A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9536125B2 (en) | 2014-10-06 | 2017-01-03 | Fujitsu Limited | Data determination device, library device, and data determination method |
Also Published As
Publication number | Publication date |
---|---|
EP0680003A3 (en) | 2000-07-05 |
EP0680003A2 (en) | 1995-11-02 |
US5468946A (en) | 1995-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0844809A (ja) | 多値レベル・バー・コードまたは二値レベル・バー・コードのデコーディング方法及び装置 | |
CA2191433C (en) | Method and apparatus for decoding bar code symbols using independent bar and space analysis | |
EP0669593B1 (en) | Two-dimensional code recognition method | |
EP0542574B1 (en) | Bar code decoding apparatus and method | |
US6015089A (en) | High speed image acquisition system and method of processing and decoding bar code symbol | |
KR100828539B1 (ko) | 이차원 코드의 검출 방법, 검출 장치, 및 검출 프로그램을기억한 기억 매체 | |
US5302813A (en) | Multi-bit digitizer | |
US5241164A (en) | Method of decoding bar code symbols from partial scans | |
JPH096884A (ja) | 解読されないバー・コード・プロフィールをエッジ検出回路を用いてエンコードする方法および装置 | |
US5449893A (en) | Digitizer for bar code reader | |
US3909787A (en) | Candidate selection processor | |
US6547142B1 (en) | Method of scanning indicia using selective sampling | |
JP3115003B2 (ja) | モジュール・サイズの比率解析を用いてバーコード記号を解読する方法および装置 | |
JPH0612515A (ja) | Ccd/cmdカメラを使用して二次元バーコードを復号する方法及び装置 | |
JPH0564007A (ja) | 符号化復号化方法およびその装置 | |
US5537431A (en) | Method and apparatus for bar code reading and decoding | |
JP2001043308A (ja) | バーコード読取り方法及びバーコード読取りシステム | |
CA2044935C (en) | Bar-code reading apparatus | |
CN103034830B (zh) | 条码解码方法及装置 | |
EP0309655A2 (en) | Image processing apparatus and method | |
US8302866B2 (en) | Optical reader using distance map decoding | |
US6000618A (en) | Method of reading an object-applied bar code | |
US5357093A (en) | System and method for converting bar code scan line data into machine-readable code | |
JP3448404B2 (ja) | バーコード読取装置及びバーコード読取方法 | |
EP0825548B1 (en) | Laser bar code reader system for a fuel rod in a boiling water nuclear reactor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050301 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050802 |