JPH03209584A - 2進走査信号を復号する方法 - Google Patents

2進走査信号を復号する方法

Info

Publication number
JPH03209584A
JPH03209584A JP1267977A JP26797789A JPH03209584A JP H03209584 A JPH03209584 A JP H03209584A JP 1267977 A JP1267977 A JP 1267977A JP 26797789 A JP26797789 A JP 26797789A JP H03209584 A JPH03209584 A JP H03209584A
Authority
JP
Japan
Prior art keywords
ratio
character
symbol
bar
width
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
Application number
JP1267977A
Other languages
English (en)
Inventor
Douglass Cherry Craig
クレイグ・ダグラス・チェリー
Andrew P Taussig
アンドリュー・ピーター・タウスィック
T Brooks Michael
マイケル・ティー・ブルックス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Newport Corp USA
Original Assignee
Spectra Physics Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Spectra Physics Inc filed Critical Spectra Physics Inc
Priority to JP1267977A priority Critical patent/JPH03209584A/ja
Publication of JPH03209584A publication Critical patent/JPH03209584A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
〔産業上の利用分野〕 本発明は、バー・コード・スキャナに関し、特に共通に
使用される多数の異なるコードのどれかで表現し得る形
式のラベル走査システムに関する。 〔従来の技術および解決しようとする課題〕多数の異な
るコ〜 ド・フォーマットにおける情報を有するラベル
は、典型的に多数の異なる用途において使用されている
。例えば、商品のパッケージに対し、あるいは商品のパ
ッケージに添付されたラベルに対して、一連の印刷され
たバー即ち暗い領域、およびその間に挟まれた白いスペ
ース即ち明るい領域として商品の識別情報を符号化する
ことは周知である。小売店舗における勘定場に置かれた
電気光学的スキャナが店員により使用され、商品の識別
データをコンピュータ端末に自動的に入力する。こむに
より、コンピュータが購入された商品の合計価格を決定
すると同時に、棚卸しおよび会計目的のため購入商品の
識別記録を格納するこ・とができる。 このような装置は小売店舗における勘定処理の効率を大
きく向上させ、更に適正な経営管理のため重要な営業デ
ータの集計を可能にするが、走査される商品の性格およ
び現在使用される多数の異なるバー・コードの故に、走
査の実施において諸問題に遭遇する。種々の商品の包装
は商品を客にアピールさせるよう設計され、その結果、
走査に際して有効なバー・コード記号を有するラベルが
走査される時生成されるものに類似する2進走査信号を
生しる色々なグラフィ゛ツクスおよびテキストを含む可
能性がある。更に、多数の異なるバー・コードが一般的
に使用されており、スキャナ回路は、これらコードで印
刷されたラベルを認識して復号することができなければ
ならない。 スキャナ・システムは、例え異なるバー・コードのいく
つかのラベルが1つの商品に添付されていても、店員に
よる介入なしにこれらの作業を自動的に遂行できること
が重要である。 しかし、それらのバー・コードはそのフォーマットが著
しく異なるため、相当の困難性がある。 −例として、3オブ9コード (Code 3 of 
9)は、1つの文字を表わすため1つの記号における2
つの巾の要素を用いる2進コードである。バーおよびス
ペースの44通りの定義されたパターンの各々は、5本
のバーおよび4本のスペースからなフている。各パター
ンは、前方向に・1つの文字を表わし、逆の方向には第
2の文字の外観を有する。一方、インターリーブド2オ
ブ5コード(Interleaved 2 of 、5
 code、)は、数字を表わすため2つの巾の要素を
用いる2進コートである。 lOの要素からなる長さの各フレーム即ち記号は2つの
文字を含み、最初の文字はバーのパターンにより表わさ
れ、2番目の文字はスペースのパターンにより表わされ
る。隣接する文字間には間隙がない。両方のコードにお
いて、記号が電気光学的スキャナにより実際に走査され
た方向と反対の方向かもしれない適正な走査方向は、文
字列の初めおよび終りにある開始および停止パターンに
よって決定される。 他の多くのバー・コードもまた一般に使用されており、
例えば、 Codabar、 Code 93 、 G
ode128 、 the Universal Pr
oduct Code (IJPCr)および欧州物品
番号(European Article Numbe
ring。 EAN)コードを含む。ラベルに使用される特定のコー
ドをオペレータが査定する必要もなくこれらコードのど
れかでラベルを復号する方法について需要があることは
理解されよう。 (課題を解決するための手段〕 この需要は、電気光学的走査装置がラベル上のバー・コ
ード記号を走査する時この装置により生じるあるピッ上
のシーケンスからなり、このシーケンスにおけるビット
がバー・コード記号を構成する明るいスペースと暗いス
ペースと対応する2進走査信号を復号するための本発明
による方法によって満たされる。本発明の方法は、(a
)記憶バッファが走査装置により最も後に生じた複数の
ビットを含むように2進走査信号をバッファに与え、(
b)大きな明るいスペースを定義する(示す)ビット・
シーケンスの一部を選択し、(C)この大きな明るいス
ペースを示すビットに続くビット・シーケンスに対し一
連のテストを行なフて、このようなビットが1つ以上の
いくつかのバー・コードの有効なバー・コード記号を走
査することにより生じたかを判定し、(d)有効なコー
ドからなるバー・コード記号を復号し、(e)シーケン
スにおける次のビットの一連のテストを行なって、この
ようなビットが前に復号されたバー・コード記号が有効
であるバー・コードのどれかにおいて有効なバー・コー
ド記号を走査することにより生じたかどうかを判定し、
−Cf)このバー・コード記号および前に復号されたバ
ー・コード記号とが有効であるコードのバー・コード記
号を復号し、(g)ラベルにおける全てのバー・コード
記号が復号されるまで前記ステップ(e)および(f)
を反復するステップからなる。 いくつかのバー・コードは、3オブ9コード、インター
リーブド2オブ5コード、Codabar、(:ode
 93 、 Gode 12g、およびUPC/ EA
Nからなるグループから選択された1つ以上のコードを
含んでいる。 一連のテストの1つは、予め設定された最小および最大
の要素比レベルによりテストされるビットの要素比の比
較であり、この要素比は記号を構成する暗いスペースの
最も狭い巾に対する記号を構成する暗いスペースの最も
広いものの++1の比である。 一連のテストの1つは、予め設定された最小および最大
の要素比レベルによりテストされるビットの要素比の比
較であり、この要素比は記号を構成する明るいスペース
の最も狭いものの巾に対する記号を構成yる明るいスペ
ースの最も広いものの巾の比である。 一連のテストの1つは、予め設定された最小マージン比
レベルによりテストされるビットのマージン比の比較で
あり、このマージン比は、大きな明るいスペースに隣接
する最初の記号を構成する最初のいくつかの明るいスペ
ースと暗いスペースの巾の和に対するあるラベルの記号
の前の大きな明るいスペースの巾の比である。 一連のテストの1つは予め設定された閾値比に対する予
め設定されたものによりテストされるビットの閾値比の
比較であり、この閾値比は記号内の特定の明るいスペー
スまたは暗いスペースの巾に対する記号を構成する最も
広い明るいスペースまたは暗いスペースの巾の比である
。 一連のテストの1つは、予め設定された最大および最小
文字比レベルによりテストされるビットの文字比の比較
であり、この文字比は前の記号を構成する明るいスペー
スおよび暗いスペースの巾の和に対する記号を構成する
明るいスペースおよび暗いスペースの巾の和の比である
。 一連のテストの1つは、予め設定された最大および最小
間隙比レベルによりテストされるビットの間隙比の比較
てあり、この間隙比は記号と隣接する記号との間の明る
いスペースの巾に対する記号を構成する明るいスペース
および暗いスペースの巾の和である。 一連のテストの1つは、予め設定された最大の狭い要素
比レベルによりテストされるビットの最大の狭い要素比
の比較であり、この最大の狭い要素比は茅己号における
最も狭い明るいスペースの巾に対する記号における最も
狭い暗いスペースの巾の最大比、あるいは言己号におけ
る最も狭い暗いスペースの巾に対する記号における最も
狭い明るいスペースの巾の最大比のより大きな方である
。 ステップ(d)は、復号されたバー・コード記号がシー
ケンスにおける更なるビットにテストおよび復号を行な
、う前に、後方あるいは前方の開始または終了記号であ
るかどうかを判定するため調べるステップを含む。 ステップ(g)は、ステップ(e)および(f)の反復
に先立ち、復号されたバー・コート記号の有効なセット
の1つである記号として復号されることを保証するため
、前記バー・コード記号を調べるステップを含む。 本方法は、予め設定された最小のマージン比レベルを有
する最後の記号を示すシーケンスにおけるビットのマー
ジン比の比較ステップを更に含むことができ、このマー
ジン比は、大きな明るいスペースに隣接する最後の記号
を構成する最後のいくつかの明るいスペースと暗いスペ
ースの巾の和に対するラベル上の記号の後の大きな明る
いスペースの巾の比である。 ビット・シーケンスにおけるビットが、いくつかのコー
ドにおいて有効であるバー・コード記号の走査により生
じたかどうかを判定するテストの少なくともある−もの
は、同時に行なうことができる。あるいはまた、このビ
ット・シーケンスにおけるビットがいくつかの記号にお
いて記号であるバー・コード記号の走査により生じたか
どうかを判定するテストは順次行なうことができる。 ステップ(a)乃至(g)は、プログラムされたディジ
タル・コンピュータによって行なうことができる。 (目的) 従って1本発明の目的は、電気光学的走査装置がバー・
コード記号の走査を行なう時この装置により生じるビッ
トのシーケンスからなる2進走査信号を復号する方法を
提供し、いくつかの異なるコードのどれが走査されるか
に拘らずバー・コード記号が自動的に復号される如き方
法を提供し、またバー・コード記号が誤ったバー・コー
ドにおいて復号されないような方法を提供することにあ
る。 (実施例) 図面は、本発明の方法を実施するため用いることができ
るスキャナ、記憶バッファおよびマイクロプロセッサを
示す概略図である。 本発明は、電気光学的走査装置がラベル上のバー・コー
トを走査する時、この走査装置により生じるビット・シ
ーケンスからなる2進走査信号を復号する方法に関する
ものである。このシーケンスにおけるビットは、それぞ
れバー間のスペースとこれらバー自体とにより画成され
る明るいスペースおよび暗いスペースの巾に対応してい
る。ラベルにおけるバーおよびスペースのある測定数値
である照合されるバー・コードを復号するための詳細な
アルゴリズムについて以下に述べる。本方法が実現され
る望ましい装置はプログラムされたマイクロプロセッサ
である。 しかし、ハードウェアによるデコーダ・システムは、計
算を容易にするため数的な比および限界の対応化および
ある調整を適当に用いることにより、同じラベルの受入
れ基準を用いることができる。 本発明において−用いられるアルゴリズムの開発におせ
る目標は、低い誤差率、早い応答、および種々のバー・
コードの自動識別との互換性であフた。低い誤差率は、
測定における全ての使用し得る情報が良好なラベルが存
在するがどうかを判定する際に使用されることを必要と
する。 使用される測定値および方法は、印刷および走査プロセ
スにおけるシステム的な誤差の効果を排除する。いくつ
かのコードを自動識別する間の早い応答は、不良コード
の状況であることの有効な実現および早期の認識を必要
とする。復号前の走査の捕捉、あるいは同時的なデータ
の捕捉および復号の如き色々なデータ捕捉法が支持され
得る。 本アルゴリズムは下記のガイドラインに従って1動く。 即ち、 A、ラベルにおける全てのバーおよびスペースがある方
法で有効性について調べられる。 B、ラベル・マージンが要求される。 C,ラベルは前方向または後方向に読出しできる。 D、ラベルの有効性テストは順次行なわれ、良好なラベ
ルに対する最も早いスクリーンから開始してテストに進
み、このテストは一般に比較的少ないラベルを除去する
か、さもなければ計算が比較的長くかかる。これらのテ
ストの詳細については、本文における各コードについて
の各車において記載する。本プロセス中のテストの失敗
は、異なるデコーダのアルゴリズムの試行を結果として
生じ、あるいは走査データにおける異なる点におけるラ
ベルを探索する。 E、あるラベルがその構造およびその要素の巾の分析に
基いて有効であることが判った後、検査合計の検証およ
びデコーダから送ら第1るべき最後のデータへの事後処
理の如き別の操作を行なうことができる。走査および復
号プロセスの効率は、ラベルの探索およびソフトウェア
・デコーダの呼出しのため使用される管理構造に依存す
る。 図においては、本文に開示されるアルゴリズムは、電気
光学的走査装置lOにより生じるビット・シーケンスか
らなる2進走査信号がバラ・ファ12において得られる
ことを前提とする。このビット・シーケンスは、走査装
置JOがあるバー・コード・ラベルを持つパッケージを
走査する時、この装置10により生成される。バッファ
12は、完全な走査パターン、即ち走査データの可動ウ
ィンドウを含む。ラベル上の記号の開始のための潜在的
な場所が、ラベルのマージンと対応し得るデータにより
定義される大きな白いスペースについて調べることによ
り識別される。(本論においてはその全てにわたり、[
白いスペース」および「明るいスペース」は区別なく使
用されることを理解すべきであるが、これはあるバー・
コード・パターンは真に白い背景面には印刷できないた
めである。同様、に、「バー」は「暗いスペース」1と
も呼ばれる。) Thompson−Mostek M
K68C200であることが望ましいマイクロプロセッ
サ14により行なわれるデコーダのアルゴリズムがこの
時アクセスされて、指定されたバッファの場所における
特定のコードにおける復号を試みる。必要に応じて、他
のマイクロプロセッサもまた使用できることが理解され
よう。 指定された各デコーダのアルゴリズムが、指定された場
所におけるラベルを復号しようとする。 もし良好なラベルが見出されなければ、全てか試みられ
るまて他のデコーダのアルゴリズムが同じデータについ
て使用することができる。もしどれもうまく行かなけれ
ば、バッファは別の可能なラベルについて探索される。 バッファは走査パターンの一回の掃引中に充填され、次
いで復号され、あるいはデータがバッファに対して連続
的に加えられ同時に復号される。望ましい実施態様にお
いては種々のアルゴリズムが順次アクセスされるが、選
択されたアルゴリズムは同時にアクセスできることが判
るであろう。有効なバー・コードが種々のコードについ
て認識されるテストは、復号に先立って行なわれる。あ
るいはまた、テストの一部が実施でき、迅速に実施でき
るテストが望ましく、次いで記号が復号される。次にテ
ストの残りを実−施することができる。本発明の完全な
ハードウェア構成では、実際の復号プロセスにおいて同
様な判定が用いられる。本発明の方法が行なわわるアル
ゴリズムについては、次章の4乃至9節において説明す
る。 4節・ 3オブ9コード 4.13オブ9コートの−的 詳細については引用文献を参照されたい。これは、英数
字お′よびいくつかの特殊文字を表わすため2つの巾の
要素を用いる2進コードである。 各文字パターンは、3つの巾の要素と6つの狭い要素と
を含む。狭い要素に対する広い要素の比率はラベル毎に
2:1乃至3:1の範囲にわたり変化し得るが、1つの
ラベル内では一定である。 隣接する文字間には間隙がある。44の定義されたバー
/スペース・パターンの各々は、5つのバーおよび4つ
のスペースからなる。各パターンは、前方向に1つの文
字を表わし、逆の方向では別の文字のように見える。実
際の走査方向は、ラベルの初めにおける2つあり得る有
効な文字、即ち通常の開始/停止文字、あるいは開始/
停止文字の逆のバージョンの一方を探すことにより決定
される。バーおよびスペースのサイズの系統的な歪みに
よる誤りを減少させるため、各文字毎の復号プロセスは
バーおよびスペースを個々に処理する。1つのラベルに
おけるデータ文字数は変更できる。32のデータ文字の
最大長さは共通に規定される。ラベルの連結、検査文字
、および128文字のAS(、TI文字を含む選択的な
特徴については、AIM仕様書に3己載されている。 4.2 ヱにじL去スヌ弓1皿−説 復号プロセスにおいて用いられる変数および定数は下記
に定義され、その後に復号アルゴリズムの簡単な説明が
続く。アルゴリズムの詳細な説明は後の4.3節で行な
われる。 4.2.1  犬■又1 状況変数の値は、デコーダの再開使用を許容するため全
体的に維持することができる。 −支数洛一       饗 i           データ・バッファにおけるそ
の時の要素に対する ポインタ。これは、 デコーダが呼出される時 常に1つのスペースを 指示する。 1ast char width    その時ノラヘ
ルテ復号current character abel tring forward continue ecode ound abel ata uffer される最後の文字に おける要素の巾の和。 これは文字間の間隙を 含まない。 復号5ARET八ASCII 文字 ASCII文字列として 復号された文字 プール関数、もし前方向 の復号ならば真 プール関数、その時の要 素におけるバッファが 良好なデータに見える間 は真 プール関数、ラベルがラ ベル文字列に入れられた 時は真 走査された要素の巾を 表わす数の列。これらは バーとスペースとの間て 交番しなければなら ない。 4.2.2 復」づL数 定数値は本節において識別される。この定数はアルボ“
リズムの記述において名称で呼ばれる。 m主1     値   −聚一一里−frame w
idth      to    1つの文字における
要、素および 間隙の数 threshold ratio    O,7広/狭
の判定点に対する文字に おける最も広い バーの巾の比率 min element rat?o   l 、5 
  ある文字にお番する最も狭いバー (スペース)に 対する最も広い バー(スペース )のI巾の比率に 対する下限 max  elemenL  rati。 max  narrow element rati。 max char rati。 min  char  radi。 5.0 3.0 1.25 ある文字におけ る最も狭いバー (スペース)に 対する最も広い バー(スペース )の巾の比率に 対する上限 最も狭いスペー スに対するある 文字における最 も狭いバーの最 大比率、または その逆 文字間の間隙を 含まない最後の 文字中に対する その時の文字に おける要素の和 の最大比率 文字間の間隙を max ap rati。 +111n ap rati。 min  margin  rati。 2.0 1.0 含まない最後の 文字i1に対する その時の文字に おける要素の和 の最小比率 前の文字間の間 隙に対するその 時の文字におけ る要素の和の最 大比率 前の文字間の間 隙に対するその 時の文字におけ る要素の和の最 小比率 ラベルの最初の 4つの要素の
【1] の和に対する ラベル前の白い スペースの巾の 最小比率 4.2.3  定1jυ」比 threshold raLio    これは狭い要
素と広い要素との間の差の中点 付近になるように選択 される。N:1の広/ 狭止の場合、中点を与え る値はt=(((N− 1)/2)+1)/Nと なる。N=3の場合は、 t= 、6666、N=2.5の 場合は、j=  、7000、 N=2の場合は、t: 、7500となる。ここでは 、7000をイ吏用する。もし 用途により 2.5:1以外 の固定比しか使用しな ければ、これは整合する ように最適化させ得 ない。もし単純な整数の 比ができるならば、t 23/32はN=2.3に対応 する。もしく全ての狭い 要素に対するテストの故 に)ラベルが4つの文字 $/+%における狭い 要素の巾における広い 変化の故に排除される ならば、比率は減少させ ln element element rati。 rati。 ることができる。 これは、広/狭止に対す る′2:1の最小特定値の 半分に設定される。これ および他の限度もまた特 定の用途に対しては変更 することができる。 これは、特定の公差値が 公称ラベルに対して用い られる時最も狭い要素に 対する最も広い要素の比 、、r)、”i51 率に基いて5.0に設定さ max  narrow rati。 elemenす れる。実際の最悪の比率 は(3* 、040+ 0.014)/(0−040−
0,014) = 5.15これは、バ一対スペース のサイズを制限する総丈 字11〕以外の唯一の比較で ある。これは、狭い要素 マイナス公差プラスαに 対する狭い要素プラス公 差の特定の比率に基、き、 仕様を越え走査の誤差 および印刷誤差を許容 する。仕様当たりの限度 は、(0,040+  、014)/ (0,[14(1−0,014) = 2.08゜3.
0を使用する。こわに 対する理論的な上限はな いが、さもなけわばその まま充分復号するラベル 255 )2 において見受けられるも 1110 max har har ap ratio。 raji。 rati。 のより大きな値には設定 すべきでない。 これらは、1つの文字内 の可能な走査点速度の変 化および文字要素に対す る走査および印刷誤差に 基いて選択される。使用 される特定の走査装置に 対するより良好なデータ が得られるまでは、1.25 および0.80を使用する。 これは、最も狭い間隙に 対する最も広い適法文字 における要素の巾(間隙 を除く)の和の比に基 〈。3:1の広/狭止を 有するラベルにおいて は、文字は公称要素中15 となる。0.040インチの min  gap  rati。 公称要素サイズにおいて は、最小間隙は0.040− 0.014即ち公称値0.65で ある。これは、比率151 0.65= 23を与える。仕様 の間隙中からの逸脱を許 すには30を使用する。 これは、最も広い間隙に 対する最も狭い適法文字 の要素の巾(間隙を除く )の和の比率に基く。 2:1の広/狭止を有 するラベルにおいては、 1つの文字は公称要素中 12となる。最も広い間隙 は、比率が1.275.3 2.26の場合に、仕様通り 1つの公称要素の5.3倍 となる。誤差に対する 余分マージンを許容1−る ため2を使用する。 min margin ratio    これは、厳
しい仕様の限度の実施とプログラム 効率との間の妥協値で ある。仕様通りの最小の 白いスペースは公称要素 サイズの10倍である。 2:1のラベルにおける ラベルの最初の4つの 要素の和は公称値の5倍 となり、3:1のラベル の場合には、公称値の 6倍となる。この結果5 乃至6要素の最小マー ジンとなり、このため、 仕様ラベルからの逸脱 および走査誤差を許容 する。 4.2.3  二股血互且ユ訴 データ・バッファは、効率のため潜在的なラベル・マー
ジンを示す大きな白いスペースを探すべきである。従フ
て、全てのデコーダはこの点からの処理を開始すること
ができ、探索プロセスの重複を避ける。デコーダは、こ
の位置で開始する良好なラベルを見出さなければ、再び
呼出しプログラムへ出る。デコーダが最初に呼出される
前に、状況変数のあるものが初期化されねばならない。 これら変数は下記の如く設定されるべきである。即ち、 i:大きな白いスペースに対する点に設定する。 データ・バッファを索引する如何なる操作の前に、適正
な呼出しが行なわれてデータがバッファにおいて使用で
きることを確認することを前提とする。 デコーダが呼出される毎に、最小マージン比により指定
される比較を行なう。もしこのテストが合格ならば、デ
コーダは前方または後方の開始文字パターンを探して、
文字中の要素を閾値比、最小要素比、最大要素比、およ
び最大狭い要素比を用いてテストする。もしこれが全て
OKならば、下記の値が制御される。即ち、 continue decode  :真for−wa
rd       :見出される文字に従って真また1
は偽 1ast char width  :開始文字におけ
る要素の和に設定 1abel strjng    : i+フレーム中
のその時の値に設定 i         :i+フレーム巾の干の時の値に
設定 次いで、誤差が生じるまで、あるいは終りの文字が見出
されるまで、ラベル要素、付属文字を経てラベルのスト
リングへ進む。各文字毎に、開始文字に対して行なわれ
たものと同じ検査が(Illinmargjn rat
ioを除いて)行なわれるとともに、更に 1Iax 
char ratio 、win char rati
o、maxgap ratioおよびlll1n ga
p ratioに対して文字量検査が行なわれる。もし
見出される文字が停止文字でなくかつ全てのテストが通
ったならば、状況変数は更噺される。即ち、 1ast char width  :丁度見出された
文字における要素の和に設定 1abel string    :見出された文字は
ラベル・ストリングに付属される 1         二iのその時の値プラスフレーム
巾に設定 もし文字が停、正文字であったならば、contjnu
edecodeを偽に設定し、LIIin margi
n ratioを用いて終りのマージンについて調べる
。もしOKならば、後方走査のだめのの補正を行なうた
めラベル・ストリングの反転、完全ASCIIコードへ
の拡張、ラベルの連結等の如き二次的な処理を行なう。 次−いで、もし全てがOKならば、見出されたラベルを
真に設定する。 良好な文字パターンについての検査は、文字中の最も広
いバーおよびスペースを見出し、それぞれを閾値比で乗
じ、次いでその結果を文字中の各バーおよびスペースと
比較して広い要素および狭い要素を識別することにより
行なわれる。この操作がバーおよびスペースを独立的に
取扱うことに注意。その結果は、一方はバーに対しまた
他方はスペースに対する2つの2進パターンとして記録
され、広い要素を表示する。9の3コードの文字パター
ンが広いバーを持たない(上記の手順に対しては全て広
いバーのように見える)ことが可能であるため、このこ
とを検出するため別のテストを行フて2進パターンを補
正しなければならない。2つの2進数を用いて、良好な
文字が読出されたかどうか、およびその値を示すテーブ
ル・エントリを見出す。もし良好な文字パターンが見出
されたならば、最も小さなバーおよびスペース、および
総丈字巾が決定される。最小および最大要素比−率につ
いてのテストは、全てが狭いバーである場合、を勘tに
人打てバーおよびスペースに対して独立的に行なわれる
。最大の狭い要素比テストは、バーおよびスペースの中
間の差を制限する。もしこれら全てのテストがOKなら
ば、良好な文字が見出されたことになる。 4.33オブ9コード  アルゴリズム復号アルゴリズ
ムは以下に示される。もしラベルの完全性テストが失敗
するならば、このアルゴリズムの終りが生じ、状況変数
が見出したラベルは偽に設定される。デコーダを呼出す
前に、iを可能なマージン(広い白のスペース)を指示
するよう設定する。走査データ・バッファにおける情報
は、データ・バッファのi番目の要素に対する要素(i
)と呼ばれる。復号プロセスの間、iはマージン即ち文
字間の間隙を指示するものと見做される。4.3.1か
ら始まるよう指定された如きステップに従う。 4.3.1  見出されたラベルを偽に設定4.3.2
  もし小さければ、フレーム巾カウントは調べられた
待機状態となるように使用できる。(最後のバッファの
場所に対してi+フレーム1Jを検査′1−る) 4.3.3  もしく要素(i ) <  min !
Ilarginratio * (要素(i + 1 
)の和)乃至要素(i+4))ならば、(margin
 too sa+all)を打切る。 4.3.4  開始パターンを探すためステップ4.3
.11.4.3.12および4.3.13を実施する。 もし見出されるバー・パターンが00110であり、見
出されるスペース・パターンが1000ならば、前方向
を真に設定し、あるいはもしバー・パターンが0110
0でありスペース・パターンが0001であるならば、
前方向を偽に設定する。もしいずれの組合せも見出され
なかフたならば、打切る(sLart char fo
undなし)。さもなければ、ステップ4.3.17か
ら開始する指定された手順を実施して、文字中の要素の
巾を検査する。も1ノこのテストを通らなければ、打切
る−(制限から外れた文字要素)。 さもなければ、continue decodeを真に
設定し、1ast char 宵1dtbをステップ4
.317に:おいて計算された文字にあける要素の和に
設定し、ラベル・ストリングを空に設定し、iをフレー
ムIIJに増分する。明瞭なラベル開始が見出される。 4.3.5  もし小さければ、フレーム1】カウント
は検査された待機状態となるように使用できる。(i+
フレーム巾を最後のバッファ場所に対して検査する) 4.3.6  ステ、ブ4.3.11から開始するよう
指示された手順を実施して、文字パターンを取得する。 もし適法なパターンが見出されなかったならば、con
tinue decodeを偽に設定して打切る(文字
JJt見出されない)。さもなければ、ステップ4.3
.17で開始する手順を実施して文字中の要素中を検査
する。もしこれらがテストを通らなければ、conti
nue decodeを後に設定して打切る(制限から
外れた文字要素)。 4.3.7  最後の文字巾に対す、るその時の文字に
おける要素の和の比率を計算する。もしこの比率がma
x char ratioより大きいかあるいはlll
1n char ratioより小さければ、cont
inuedecodeを偽に設定して打切る。 4.3.8  要素(i)に対するその時の文字におけ
る要素の和の比率を計算する。もしこの比率がmax 
gap ratioより大きいかあるいはmin ga
pratioより小さければ、continue de
codeを偽に設定して打切る。 4.3.9  ステップ4.3.6において見出された
その時の文字が“*”ならば、ステップ4.3.10へ
進む。さもなければ、ラベル・ストリングの長さが最大
許容ラベル長さであるならば、continue de
codeを偽に設定して打切る(ラベル・ストリング溢
れ)。さもなければ、最後の文字巾をその時の文字の巾
に設定し、フレーム巾をiに加算し1.その時の文字を
ラベル・ストリングに従属させる。ステップ4.3゜5
へ進む。 4 、 3 、 10  continu、e dec
odeを偽に設定する。もし要素(i+フレーム巾) 
<o+in marginratio * (要素(i
+6)乃至(i+9)の和)ならば、打切る。さもなけ
わば、前方向が偽の逆方向ラベル・ストリングであれば
、検査合計、完全ASCII文字セット、あるいは連結
(引用された仕様通り)の任意の操作を行なう。もしエ
ラーが見出されるならば、見出されたラベルを真に設定
して打切る。 4.3.11  本節は、アルゴリズムの主な流れから
引用され、従って実施の際これを呼出したステップへ戻
らなければならない。開始文字を探す時は最初の3つの
ステップ(11〜13)のみが行なわれる。良好な文字
パターンを探すためその時の文字の要素を調べる。9つ
の要素i+1乃至i+9において最も広いバーおよび最
も広いスペースを見出す。広/狭分岐点を見出すためこ
れらの各々を閾値比で乗じる。 4.3.12  バー・パターンを表わす2進数を「0
」に設定−する。要素i+1、i+3、i+5、i+7
およびi+9の各々については、問題となる要素がステ
ップ4.3.巾において計算されたバーの閾値より大き
ければ、バー・パターンを2で乗じ、次いでこれを1だ
け増分する。その時もしバー・パターンが2進数111
巾に等しければ、バー・パターンを「0」に設定する(
実際の文字は全て広いバーを持たないが、あるものは全
て狭く、これらがこのような調整を必要とする。)。 4.3.13  スペース・パターンを表わす2進数を
「0」に設定する。この時、要素1+2、i+4、i+
6およびi+8の各々について、もし問題となる要素が
ステップ4.3.巾において計算されたスペース閾値よ
り大きけわば、スペース・パターンを2で乗じ、次いで
これを1だけ増分する。 4.3.14  もしバー・パターンが「0」でなけれ
ば、ステップ4.3.15へ進む。さもなければ、文字
ポインタをスペース・パターンの値に従って設定す−る
。即ち、 スペース・パターン=7 文字ポインタ:44143 】342 441 もしスペース・パターンがこれら4つの値の1つでなけ
れば元に戻り、テストは失敗となる。さもなければ、ス
テップ4.3.16へ進む。 4.3.152つの索引テーブルを使用する。 スペース標識[0,、I S] =0.3.2.0.1
.0、Dl 0.4.0.0.0.0.0.0.0 バーの標識[0,,31コ=0.0.0.7.0.4.
10.0.0.2.9.0.6.0.0.0.0.1.
8.0.5.0.0.0.3.0.0.0.0.0.0
.0であり、どの文字がバーおよびスペースにより表わ
されるかを判定する。もしバ了の標識[バー・パターン
コ=0、あるいはスペース標識[スペース・パターン]
=0ならば元に戻グ、テストは失敗となる。さもなけれ
ば、文字ポインタを 10*(スペース標識[スペース/パターノコ−1)+
バー標識[バー・パターン] このプロセスは、9の3文字コードにおいて使用された
各バーおよびスペース・パターンを利用するものである
。 4.3.1644の文字のこれら2つのリストから前方
向文字および後方向文字を選択するため文字ポインタを
使用する。例えば、もし文字ポインタが2で前方向が偽
であれば、後方向リストから2番目の文字を11、等の
ように拾う。もし前方向が真であれば、その時の文字を
前方向文字リストにおける適正な文字に設定し、さもな
ければ、後方向文字リストを使用する。 前方向文字: 1234567890^BCDEFGHIJにL  M
  N  OP  Q  RS  T  U  V  
W  X  Y  Z  −j  $  /  +  
51後方向文字: AHGEDJCBIF1875403296U。 −YX*WVZK−RQONTMLSP!44/$主ア
ルゴリズムにおけるステップに戻る。 4.317  この節はアルゴリズムの主な流れから引
用されたもので、その実施の際これを呼出した時ステッ
プに戻らなければならない。本節は、適正な巾の比率に
ついLClつの文字内の要素のサイズを検査する。これ
は前に見出した最も広いスペースおよびバーおよびバー
・パターンの値を使用する。ここで、最も狭いバーおよ
びスペース、およびiに続く9つの要素(その時の文字
を構成する)を見出す。 4.318  もし最も狭いスペースに対する最も広い
スペースの比率が最大要素比率より大きいか、あるいは
最小要素比率よりも小さければ元に戻り、テストは失゛
敗したことになる。 4.3.19  もし最も狭いに対する最も広いバーの
比率が最大要素比率よりも大きければ、元に戻り、テス
トは失敗したことになる。 4.3.20  もしバー・パターンが0より大きくか
つ最も狭(7)バーに対する最も広いバーの比率が最小
要素比率よりも小さければ、元に戻り、テストは失敗し
たことになる。 4.3.21  もし最も狭いスペースに対するよりも
大きければ、元に戻り、テストは失敗したことになる。 4.3.22  もし最も狭いバーに対する最も狭いス
ペースの比率が最も大きな狭い要素比率よりも大きけれ
ば元に戻り、テストは失敗したことになる。 4.3’、230にならば、元に戻る。 脱朋 詳細については引用した文献を参照されたい。 これは、数字を表わすため2つの巾の要素を用いる2進
コードである。各フレーム(10要素)は2つの文字を
含み、その第1はバー・パターンにより表わされ、第2
はスペース・パターンにより表わされる。各文字パター
ンは、2つの広い要素と3つの狭い要素とを含んでいる
。狭い要素に対する広い要素の比率は、ラベル毎に2=
1から3:1の範囲にわたフて変化し得るが、1つのラ
ベル内では一定であるべきである。隣接する文字間には
間隙はない。実際の走査方向は、ラベルの初めと終りに
おける開始および停止パターンにおける差によって判定
される。各文字毎の復号プロセスは、バーおよびスペー
スのサイズの系統的な歪みの故の誤差を減少するため、
個々のバーおよびスペース(および、従って各文字)を
取扱う。1つのラベルにおけるデータ文字の数は可変で
あるが、文字は対をなして符号化されるため、この数は
偶数でなければならない。インターリーブド2オブ5コ
ードの復号の際使用される固定長さが共通に使用される
が、これはラベルの部分的な走査が一見妥当なデータを
生じることになる比較的高い可能性がある故である。 5.2 アルゴリズムの 復号プロセスにおいて使用される変数および定数は下記
の如く定義され、その後に復号アルゴリズムの簡単な記
事が続く。アルゴリズムの詳細な説明は、次の節に続く
。 5.2.1  犬■又1 状況変数の値は、デコーダの再開使用を許容するため全
体的に維持することかできる。 11jと1祢 :1 データ・バッファに おけるその時の要素に ast har 1dth abel tring forward continue ecode ound abel 対するポインタ。これ は、デコーダが呼出され る時、常にスペースを 指示する。 その時のラベルにおいて 復号された最後の文字対 における要素の巾の和 ASCIIストリングと して復号された文字 プール間数;前方向にお ける復号であるならば、 真 プール関数:その時の 要素におけるバッファが 良好なデータのように見 える間、真 プール開数;ラベルがう ata uffer ベル・ストリングに入れ られた時、真 走査される要素の巾を表 わす数列。これら数列 は、バーとスペースとの 間で交番しなければなら ない。 5.2.2 1fl効 定数の値は、本節において識別される。この定数は、ア
ルゴリズムの記述において名称により参照される。 一亙」区し1務二  U fraa+e width    10看 文字対における要素 の数 文字対におけるバー (スペース)の金山 に対する広巾/狭巾 の判定点の比率。 走査方向の決定の ための開始または threshold  ratio   O,2188
tart top 1.5 threshold 111n element rati。 1 ax element rati。  a x arrow element rati。 1.5 5.0 3.0 停止パターンの最初 のバーに対する2番 目のバーの比率 1つの文字における 最も狭いバー(スペ ース)に対する最も 広いバー(スペース )の巾の比率に対す る下限 1つの文字対におけ る最も狭いバー(ス ペース)に対する最 も広いバー(スペー ス)の比率に対する 上限 最も広いスペースに 対する比率文字にお ける最も狭いバーの 最大比率、またはそ の逆 char raしi。 10 char rati。 margin  scaler max  margtn char r a 1. i 。 1.25 0.80 最後の文字中に対す るその時の文字対に おける要素の和の最 大比率 最後の文字rfJに対す るその時の文字対に おける要素の和の 最小比率 最初の(最後の) 文字対の巾にその巾 を対比させ得るよう に、ラベルにおける 開始バーおよ゛び スペース要素を乗じ るため用いられる値 マージン・スケーラ により基準化される 開始(停止)パター ンの巾に対するその 時の文字対における +111n rati。 margin 3.0 要素の和の最大比率 ラベルの最初の2つ の要素の巾の和に対 するラベル前の白い スペースの巾の最小 比率 5.2.3  定IJLlル threshold  raLi。 この比率は、文字対に おける全類似要素に対す る狭い要素と広い要素の 比率間の差の中点付近に 選択される。N:1の 広/狭止の場合は、 中点を与える値はt= ((N+1)/2)/ (3+2*N)。N=3 の場合は、t = 0.2222; N = 2.5の場合は、t= 0.2188; N = 2の場合 は、t = 0.2143となる。 ’  0 ’+−’″)つく−r、 tart top threshold 本発明では、0.2188 (7/32)を使用する。 もしある用例のみに おいて 2.5:を以外の 固定比率を使用したなら ば、この値は整合する ように最適化することが できる。 この閾値は、検査中の パターンが開始または 停止パターンのいずれで あるかを判定する。開始 パターンは2つの狭い バーを有するが、停止 パターンは1つの狭い バーおよび1つの広い バーを有する。この閾値 は、狭い公称中(1)と 最小広/狭rl】比率(2) との中間にある。 +111n element a+aX element utax  narrow rati。 rati。 rati。 element この比率は、広/狭巾 比率に対する2:1の 最小仕様値の半分に設定 される。また、これと 他の限度値は特定の用途 において変更することも できる。 この比率は、仕様の公差 が公称ラベルに対tノで 適用される時、最も狭い 巾の要素に対する最も 広い巾の要素の比率に 基いて5.0に設定され る。実際の最悪の場合 の比率は(3* 0.040 + 0.0165) / (0,Q40 0.0165) = 5.8 この比率は、バ一対 スペースのサイズを制限 ゛幡−る総丈字巾以外の唯一 cbar ratio。 min  cl+ar  rati。 の比較である。これは、 狭い要素の仕様比率、 プラス狭い要素に対する 公差マイナス公差プラス αに基き、仕様を越える 走査誤差および印刷誤差 を許容する。仕様当たり の限度値は: (0,040+ 0.0165) / (0,040 0,0165) =2.40となる。 3.0を使用する。この値 に対する理論的な上限は ないが、さもなければ そのまま復号するに充分 であるラベルにおいて 見受けられるものより 大きな値に設定すべき てはない。 これらの、値は、1つの 文字対内の可能な走査点 min  margin  rati。 の速度の変動および文字 要素における走査および 印刷誤差に基いて選択 される。使用される特定 の走査装置に対するより 良好なデータが得られる まで、1.25および0.80を 使用する。 この値は、前の仕様上 限度値およびプログラム 効率の励行における妥協 である。仕様当たりの 最小の白いスペースは 公称要素サイズの10倍で ある。ラベルの最初の 29の要素の和は常に 2xである。ラベルに おける最も大きな要素は 3、Xであり得る。10と3 との中間点は6.5xで ある。使用される閾値比 は0.3で、最小マージン 6xを与える。 5.2.4  ユ糺脛皇JLIJユ 効率化のため、データ・バッファは、潜在的なラベルマ
ージンを示す大きな白いスペースについて探されるべき
である。従フて、全てのデコーダは、この点から処理を
開始することができ、探索プロセスの重複を避ける。も
しデコーダがこの位置で開始する良好なラベルを見出さ
なければ、再び呼出しプログラムへ戻る。デコーダが最
初に呼出される前に、状況変数のあるものを初期化しな
ければならない。これらは下記の如く設定されるべきで
−ある。即ち、 i:大きな白いスベニスを指示するように設定データ・
バッファを求める如何なる操作に先立ち、データがバッ
ファにおいて使用できることを確認するよう注意が払わ
れることを前提とする。 デコーダが呼出される毎に、最小マージン比により定め
られる比較を行なう。もしこのテストが通るならば、前
方向または後方向の開始パターンを求めて、最大の狭い
要素比、最小要素比および最大要素比を用いてパターン
における要素をテストする。もしこれが全てOKならば
、以下の変数が設定される。即ち、 conLinuedecode真 forward        見出されるバ、ターン
に従って、真または偽 1ast char width    開始パターン
*マージ、ン・スケーラにおける 要素の和に設定 1abel string      空に設定i  
        その時の値i+4に設定(もし前方向
が真なら ば、これはラベルに おける最初の文字対前の 要素を指示する。もし 前方向が偽ならば、これ はラベルにおける最後の 文字対の最後の要素を 指示する。)。 この時、このデコーダはラベルの要素を進み続け、誤差
が生じるまでラベル・ストリングに文字を従属させ、終
りパターンが見出され、さもなければ、データは得られ
ない。各文字毎に、閾値比を用いてテストし1、最小要
素比、最大要素比および最大の狭い要素比が、最大文字
比および最小文字比についての文字検査と共に加えられ
る。もし文字対が最初に見出されるならば、文字量検査
としてより緩やかな最大マージン文字比を使用する。も
し全てのテストが通ったならば、状況変数が更新される
。即ち、 1ast char width−:丁度見出された文
字対における要素の和に設定される。 1abel sluring  :見出された文字対は
ラベル・ストリングに従属される。 i    :iのその時の値プラスフレームI−IJに
設定される。 もしとれかσテストが失敗するならば、contjnu
edecodeは偽に設定される。 もし文字テストが失敗するならば、最小マージン比、最
大要素比、最小要素比、最大類似要素比、最大の狭い要
素比および最大マージン文字比を用いて、停止パターン
(逆方向の開始パターン)が見出されるかを調べるため
検査する。もしOKならば、任意の検査文字の評価の如
き二次的処理を行なう。次いで、もし全てがOKならば
、見出されたラベルを真に設定する。 良好な文字パターンについての検査は、文字対における
全てのバー(スペース)の巾を加算し、その結果を閾値
比で乗じ、この値を文字対における各バー(スペース)
に対する判定点として使用することにより行なわれる。 これ検査は、バーおよびスペースを独立的に取扱うこと
に注意されたい。その結果は、1つはバーについて、他
はスペースについて2つの2進パターンとして記録され
、1が広い要素を示す。この2つの2進数は、良好な文
字がそれぞれに読出されたか、およびどれが文字である
かを示すテーブルのエントリを見出すため用いられる。 対の両方の文字に対する良好な文字パターンが見出され
たならば、最も小さなバーおよびスペース、および総丈
字巾が決定される。最小および最大要素比についてのテ
ストは、バーおよびスペースに対して独立的に行なわれ
る。最大の狭い要素比のテストは、バーとスペースの中
間の差を制限する。もしこれらのテストが全てOKであ
れば、良好な文字対が見出されたことになる。 復号アルゴリズムは下記の如きものである。もしどれか
のラベル一致テストが失敗するならば、このアルゴリズ
ムからの退出が生じ、状況の変更可能な継続復号は偽に
設定される。デコーダの呼出しに先立ち、可能なマージ
ン(広い白のスペース)を指示するようにiを設定する
。走査データ・バッファにおける情報は、データ・バッ
ファの1番目あ要素に対する要素(i)と呼ばわる。復
号中、プロセスiがマージン、次の文字対の前のスペー
ス(前方向復号)、あるいはその時の文字対の最後のス
ペース(後方向復号)を指示するものとする。ステップ
5..1 1から始めて下記の規定するステップに従う
。 5.3.1  見出されたラベルを偽に設定。 5.3.2  もしこれより小さければ、フレーム巾カ
ウントが調べた待機状態になるように使用できる゛。(
最後のバッファの場所に対してi+フレーム巾を検査す
る) 5.3.3  もし要素(i ) < min mag
in rati。 *(要素(i+1)十要禦(i+2))、ならば、打切
る(マージンが小さ過ぎる)。 5.3.4  妥当な開始パターンを探す。 即ち、 要素(i+1)/要素(i+2 ) > IIIax 
narrowelement ratio 、または要
素(i+2)/要素(i + 1 ) > wax n
arrow ele+nent ratioかどうかを
検査する。もしそうであれば、打切る。もしそうでなけ
れば、走査の方向を決定し、要素(i+3)/要素(i
 + 1 ) > 5tart stoptl+rcr
、holdであるかどうかを判定する。−もしそうであ
れば、前方向を偽に設定し、さもなければ、前方向を真
に設定する(開始パターンは2つの狭いバーを持ち、後
方向の停止パターンは狭いバーの後に広いバーを有する
。)。もし前方向ならば、要素(i+2)/要素(i+
4)>躍inelemenL ratioであるか、ま
たは要素(i+4)/要素(i+2ン> vain e
lement ratioテあルカを調べる。もしそう
であれば、打切る(開始パターンにおける2′つのスペ
ースは等しい+j)ではない)。もし前方向であれば、
要素(i+1)/(i + 3 ) > mjn el
ement ratioも調べる。もしそうであれば、
打切る(2つのバーは同じ巾ではない)。もし前方−向
が偽ならば、要素(i−+−3)2/要素(i + 1
.) <  max eIement ratjoかど
うかを調べる。もしそうでなければ、打切る。さもなけ
わば、continue decodeを真に設定し、
1astchar widthを要素(i+1)および
(i+2)*マージン・スケーラの和に設定し、1ab
el stringを空に設定し、iを4だけ増分す、
る。明瞭なラベルの初めが見出されることになる。 5.3.5  もしフレーム巾より小さければ、カウン
ト・が検査のため使用でき(i→−フレーム巾をR後の
バッファの場所に一対して調べる)、待機する。 5.3.6  ステップ5.3.11で開始する指示さ
れた手順を行なって、文字パターンを得る。もし適法の
パターンが見出ざわなければ、ステップ5.3.9へ進
む(文字が見出されず、開始/停止パターンについで調
べる)。さもなけわば、ステップ5−3.14で始まる
手順を行ない、文字における要素の巾を調べる。 もしこの巾がテストに合格しなければ、ステップ5.3
.9へ進む−(文字の要素が制限から外れており、開始
/停止パターンについて調べる)。 5.3.7  その時のフレームにおりる要素の和の最
後の文字中に対する比率を計算1−る。もしこれが最初
の文字対である(ラベル・ストリングが空)ならば、こ
の比率が> max margin charrati
o 、あるいはく1イ′この比率) > maxmar
gi、n char ratioであるかを調べる。も
し干うてあれば、打切る(文字は見出されない)。もし
初めて終ったのでなく、従りてこの比率がa+aXcb
ar rat、ioより大きいか、あるいは−i n 
c h a rr a j 1.0より小さければ、ス
テップ5.3.9へ進む。 5.3.8 もしラベル・ストリングの長さが最大許容
ラベル長さであれば、cont、1nue decod
eを偽に設定する(ラベル・ストリングは溢れ)。 さもなりわば、1ast char widt、t+を
その時のフレームの巾に設定1ノ、フレーム巾をiに加
算し、復号さねた文字対をラベル・ストリングに従属さ
せる。(もし前方向が真ならば、バー文字*スペース文
字)をラベル−ストリングの終りに従属させる。もし前
方向が偽ならば、スペース文字*バー文字をラベル・ス
トリングの終りに従属させる。)ステップ5.3.5へ
進む。 5、 3. 9  coptinue decadeを
偽に設定する。 5.3.10  ラベルの可能な終りを調べる。 もしバッファで得られる4つのカウントより小さければ
、待機する。(i+4が!ljL後のバッファ場所より
小さいかあるいは等しいかを凋べる。)さもなければ、
(要素(i+4)/要素(i+2) + (i +3)
 ) > win margin rati。 かどうかを調べる。もしそうでなければ、打切る。もし
そうであれば、要素(i+3)/要素(i + 2 )
 > +IIax narrcw eleIIent 
ratioであるか、あるいは要素(i+2)/要素(
i +3) >wax narrow element
 ratioであるかを調べる。 もしそうであれば、打切る。もしそう、でなければ、要
素(i +2)十要素(i +3) * magins
caler/  1ast  char  width
が wax  wargin  charchar r
atioより小さいかを調べる。もしそうであわば、打
切る。もし7そうでなければ、前方向が真であるかどう
かであり、要素(i+1)/要素(i+3)がtaax
 eleIIent ratioより大きいか、あるい
はwin element ratioより小さいかを
調べる。もしそうであれば、打切る。もし前方向が偽な
らば、要素(i + 1 ) /要素(i+2)がwi
n element ratioより大きいか、あるい
は5 / min elea+ent rat、ioよ
り小ス、イかを調<Z)。 もしそうであれば、打切る。さもなければ、前方向が偽
であるかであり、ラベル・ストリングの逆方向となる。 従って、検査合計について任意の操作を行なう。もし誤
差が見出されなけわば、見出されたラベルを真に設定し
、打切る。 5.3.11  本節は、アルゴリズムの主な流れから
引用さも、実行の際この1つを呼出したステップへもど
らなければならない。もし前方向が真ならば、要素i+
1からi+フレーム[1〕が加算されることに−なる(
バーおよびスペース別々に)。もし前方向が偽ならば、
要素iからi+フレームl1l−1が加算される(バー
およびスペース別々に)。調べた詐りの対応する10個
の要素における最も広いバー、最も広いスペース、最も
狭いバーおよび最も狭いスペースを見出す。この和の各
々を閾値比て乗し”C広さと狭さの分岐点を見出す。 5.3.12  バー・バタ・−ンを表わす2進数を0
に設定する。もし前方(句が真ならば、要素をi+1、
i+3、i+5、i+7、i+9の順序で使用する。も
し前方向が偽ならば、要素をi+9、i+7、i+5、
i +3、i+1の順序で使用する。各要素毎に、バー
・パターンを2で乗じて、もし問題の要素がステップ5
.3.巾において計算されたバーの閾値よりも大きけお
ば、これを1だけ増分する。 5−3.13  スペース・パターンを表わす2進数を
0に設定する。もし前方向が真ならば、要素をi+2、
i+4、i+6、i+8、i+10の順序で使用する。 もし前方向が偽ならば、要素をi+8、i+6、i+4
、i+2.iの順序で使用する。各要素毎に、スペース
・パターンを2で乗して、問題の要素がステップ5.3
.巾において計算されたスペースの閾値よりも大きけれ
ば、こわを1だけ増分する。 5.3.14  バー・パターンにより生成された2進
数をポインタとして使用して、0の標識を付した以降の
リストから文字を選択する。例えば、もしこのパターン
が値2を持つならば、リストにおける3番目の要素を選
択する。以上を反復1)て、スペース・パターンを用い
てスペース文字を選択する。 文字リスト: XXX7X40XS29X6XXXX18X*XXX3
XXXXXXX もしバーまたはスペースのパターンのいずれかに対して
選択された文字がXであれば、主アルゴリズムに対して
不良パターンを表示し、さも主アルゴリズム−における
ステップへ戻る。 5.3.15  本節は、アルゴリズムの主な流れから
引用され、実行の際この1つのを呼出したステップへ戻
らねばならない。本節は、適正な巾の比率に対する文字
内の要素のサイズを検査する。本節は、最も広いスペー
スおよびバーおよび前に見出されたバー・パターンの値
を使用する。不良なパターン巾をスペース・パターン巾
に加算して、総丈字巾を得る。 5.3.16  もし最も狭いスペースに対する最も広
イスペースの比率は、 max element ra
ti。 より大きいか、あるいはmin element ra
ti。 よりも小さければ、戻り、テストは失敗に終る。 5.3.17  もし最も狭いバーに対する最も広いバ
ーの比率がa+ax element ratioより
も大きければ、戻り、テストは失敗に終る。 5.3.18  もし最も狭いバーに対する最も広いバ
ーの比率がll1in element ratioよ
りも小さければ、戻り、テストは失敗に終る。 5.3.19−bし最も狭いスペースに対する最も狭い
バーの比率が1IIax narrow elemen
t rati。 よりも大きければ、戻り、テストは失敗に終る。 5.3.20  もし最も狭いバーに対する最も狭いス
ペースの比率がIIIax narrow eleme
ntよりも大きけ才1ば、戻り、テストは失敗る。 5.2.21 0にならば、戻る。 詳細については引用された文献を参照されたい。 これは、2つの巾の要素を用いてlOの桁およびA、B
、C,Dで示された6つの文字−5:/、傘プラス4つ
の開始/停止文字を表わす2進コードである。この20
の文字パターンはそれぞれ7つ゛の要素を含む。広/狭
巾比は、ラベル間で2:1から3=1までの範囲にある
が、1つのラベル内では一定であるべきである。12の
文字は2つの巾の要素を含むが、他の8つは3つの巾の
要素を含む。その結果、2つの可能な公称文字rlJと
なる。文字は文字間の間隙により分割される。 可変数の文字が許されるが、32が共通の上限値である
。開始/停止文字はラベル情報の一部と考えられ、ある
構成においては制御の連結である。 任意の検査文字もまた定義される。 6.2 アルボ1ズムの 復号プロセスにおいて用いられる変数および定数は以下
に定義され、復号アルゴリズムの簡単な記述が後に続く
。アルゴリズムの詳細な記述は次の節に続く。 6.2.1  災父又1 状況変数の値は、デコーダの再開使用を許すように全体
的に維持することができる。 i奴皇主上        1 1     °     デ二−タ・バッファにおける
その時の要素に対する ポインタ 1ast char width    その時のラベ
ルにおいて復号される最後の文字に おける要素巾の和。これ は、文字間の間隙を含ま ない。 1abel sLring      A S CI 
I ストリングとして復号された文字 forward        ブール間数:前方向に
おける復号ならば、真 continue decode    ブール関数;
その時のound abel data  buffer 要素におけるバッファは 良好なデータに見える 間、真 プール間数;ラベルがラ ベル・ストリングに入れ られた時、真 走査された要素の巾を表 わす数列。これら数列は バーとスペース間で交番 しなければならない。 6−2−2L!づL数 定数値は本節耐おいて識別される。定数はアルゴリズム
の記事における名称により参照される。 疋双皇主3     I   1 fraIIIe width      8   文字
における要素の数プラス間隙 threshold      O,70広/狭中判定
点に対する文字における最 も広いバー(スペー ス)の巾の比率 lll1n  element  rati。 l1la× element rati。 max  narrow element rati。 max char r a−t i 。 ml口 char rati。 5.0 3.0 1.25 0.80 文字における最も狭 いバー(スペース) に対する最も広い バーの巾の比率に 対する下限 文字における最も狭 いバー(スペース) に対する最も広い バーの巾の比率に 対する上限 最も狭いスペースに 対する最も狭いバー の最大比率、または その逆 最後の文字巾に対 するその時の文字に おける要素の和の 最大比率。文字間の 間隙は含まない 最後の文字巾に対 gap rati。 ln gap rati。 win  margin  rati。 1.0 するその時の文字に おける要素の和の 最小比率。文字間の 間隙は含まない 前の文字間の間隙に 対するその時の文字 における要素の和の 最大・比率。 前の文字間の間隙に 対するその時の文字 における要素の和の 最小比率。 ラベルの最初の3つ の要素の巾の和に 対するラベル前の 白いスペースの巾の 最小比率。 6.2.3  定IJと」↓ threshold ratio    この比率は、
狭い要素と広い要素との間の差の 95 Q 9 狭い要素の巾における 中点付近になるように 選択される。N:1の 広/狭比率の場合には、 前記中点を与える数値は t= ((N−1)/2) + 1 ) *Nである。 N=3の場合には、t= 0、’666Bであり、N=2.5 の場合には、t= 0.7000; N = 2の場合に は、t = 0.7500である。 本発明では0.7000を使用 する。もしある用例のみ が2,5:1以外の固定比 率を使用したならば、 これは整合するように 最適化することができ る。文字$/+%に おける狭い要素のrIJに おける広い変動における :2600 6.009) = 4.16で ln +nax eleo+ent elenent rati。 rati。 広い変動により排除され るならば(全ての狭い 要素に対するテストの 故に)、比率は減少され 得る。 これは、広/狭比率に対 して2:1の最大仕様値 の半分に設定される。 これおよび他の制限値も また特定の用途に変更 することもで・きる。 この比率は、仕様公差が 公称ラベルに通用される 時、最も狭い巾の要素に 対する最も広い要素の比 率に基いて5.0に設定さ れる。実際の最悪の場合 の比率は(3*0.040+ 0.009)/  (0,040 max  narrow rati。 element ある。 この値は、バ一対スペー スのサイズを制限する 総丈字巾以外の唯一の 比較である。これは、 狭い要素マイナス公差、 プラスαに対する狭い 要素プラス公差の仕様 比率に基き、仕様を越 える走査誤差および印刷 誤差を許容する。仕様に よる限度値は(0,040+ 0.009) / (0,040 0,009) =1.58である。 3.0を使用する。この値 に対する理論的な上限は ないが、さもなければ そのまま充分に復号し 得るラベルにおいて見 IIlax m1n har har ratio。 rati。 受けられるものより 大きな値に設定すべきで ない。 これらの値は、文字内の 可能な走査点の速度の 変動および文字要素に おける走査および印刷 誤差に基いて選択され る。文字中は、2つの 広い要素または3つ、の 広い要素を含むデータの 故に変化し得る。3:1 の広/狭比率の場合は、 その結果11または13の 公称要素を含む文字を 生じ得る。このため、 他の差の根源を考慮に 入わる前に、文字rlに おけるIt/13または13/ Itの変動を生じる。使用 aX ap rati。 される特定の走査装置に 対する良好なデータが得 られるまで、1.25および 0.80を使用する。 この値は、最も狭い間隙 に対する最も広い適法 文字(間隙を、除く)に おける要素の巾の和の 比率に基く。3:1の 広、/狭止率を有する。 ラベルにおいては、最も 広い文字は13の公称要素 巾である。 0.040インチ の公称要素サイズに おいては、最小間隙は 0.040−0.009 、あるい は公称値0.78である。 このため、+310.78= 17 の比率を与える。仕様 間tillから外れることを in ap rati。 ll1in  n+argin  raLi。 2 t’> 0.’( 許容するには30を使用 する。 これは、最も広い間隙に 対する最も狭い適法文字 (間隙を除く)の要素の 巾の和の比率に基〈。 2:1の広/狭比率を 有するラベルにおいて は、狭い文字は9つの 公称要素中となる。 最も広い間隙は、比率 975.3 =1.7の場合に 仕様通りの公称要素の 5.3倍である。誤差に 対するある余分なマージ ンを許容するため1.5を 使用する。 この値は、厳密な仕様 限度とプログラムの効率 を励行する間の妥協で ある。仕様通りの最小の 白いスペースは、公称 ・を帷 要素サイズの10倍で ある。前方向のラベルに 対するラベルの最初の 3つの要素の和は、公称 値の3乃至5倍であり 得、後方向のラベルの 場合は、この値は公称値 の4乃至7倍であり 得る。その結果、3乃至 7の公称要素の最小 マージンとなり、これが 仕様ラベルおよび走査 の誤差の逸脱を許容 する。 6.2.4  =l]T焚〕コL尻抹 データ・バッファは、効率化のため、・潜在的なラベル
マージンを示す大きな白いスペースについて探されるべ
きである。従って、全てのデコーダは、この点から処理
を開始することができ、探索プロセスの重複を避りる。 もしデコーダがこの位置で開始する良好なラベルを見出
さなければ、再び呼出しプログラムへ戻る。デコーダが
最初に呼出される前に、状況変数のあるものを初期化し
なければならない。これらは下記の如く設定されるべき
である。即ち、 i:大きな白いスペースを指示するように設定データ・
バッファを求める如何なる操作に先立ち、データがバッ
ファにおいて使用できることを確認するよう注意が払わ
れることを前提とする。 デコーダが呼出される毎に、最小マージン比により定め
られる上ヒー較を行なう。もしこのテストが通るならば
、前方向または後方向の開始文字パターン(A、B、C
またはD)を求めて、最大の狭い要素比、最小要素比お
よび最大要素比を用いて文字における要素をテストする
。もしこれが全てOKならば、以下の変数が設定される
。 即ち、 continuedecode真 forward        見出されるパターンに
従フて、真または偽 1ast char width    開始文字にお
ける要素の和に設定 1abel string      空に設定i  
        その時の値i+フレーム巾に設定する
。 この時、このデコーダはラベルの要素を進み続け、誤差
が生じるまでラベル・ストリングに文字を従属させ、終
りの(A、B、CまたはD)文字が見出され、さもなけ
れば、データは得られない。各文字毎に、開始文字に対
して行なわれる同じ検査が、(を小マージン比を除いて
)最大文字比、最小文字比、最大間隙比および最小間隙
比に対する文字間の検査と共に加えられる。もし見出さ
れた文字が停止文字でなく、また全てのテストが通った
ならば、状況変数が更新される。 即ち、 1ast char width :丁度見出された文
字対における要素の和に設定される。 1abel string   :見出された文字対は
ラベル・ストリングに従属される。 i       :iのその時の値プラスフレーム巾に
設定される。 もしどれかのテストが失敗するならば、continu
edecodeは偽に設定される。 もし文字が停止文字でなければ、continuede
codeを偽に設定し、+nin margin ra
tioを用し1て後マージンについて検査する。もしO
Kならば、ラベル・ストリングの反転の如き二次的処理
を行ない、任意の検査文字、ラベルの連結等を評価する
。次いで、もし全てがOKならば、見出されたラベルを
真に設定する。 良好な文字パターンについての検査は、文字中の最も広
いバーおよびスペースを見出し、各々を閾値比で乗し、
その結果を文字における各バーおよびスペースと比較し
て広い要素および狭い要素を識別する。この検査は、バ
ーおよびスペースを独立的に取扱うことに注意されたい
。その結果は、バーまたはスペース当たり1ビツトずつ
、各々が広い要素を示す。Codabar文字パターン
が広いスペース(上記の手順においては全て広い得るた
め、2進数パターンを検出して補正するため個別のテス
トを行なわなければならない。 このプロセスから結果として得た2進数を用いて、良好
な文字が読出されかどうか、またどんな文字であったか
を示すテーブルのエントリを選択する。良好な文字パタ
ーンが見出されたならば、最も小さなバーおよびスペー
ス、および総丈字巾が決定される。最小および最大要素
比についてのテストは、見出される全ての狭いバーの場
合を勘定に入れてバーおよびスペースに対して独立的に
行なわれる。最大の狭い要素比のテストは、バーとスペ
ースの中間の差を制限する。もしこれらのテストが全て
OKであれば、良好な文字が見出されたことになる。 5、 3  Codabar   アルゴリズム復号ア
ルゴリズムについて以下に述べる。もしどれかのラベル
一致テストが失敗すると、このアルゴリズムからの退出
が生じ、状況変数継続復号を偽に設定する。呼出しに先
立ち、デコーダはiを生じ得るマージン(広い白のスペ
ース)に設定する。走査データ・バッファにおける情報
は、データ・バッファのi番目の要素に対し要素(i)
と呼ばれる。復号の間、プロセスiがマージン即ち文字
間の間隙に対し指示するものとされる。6.3.lから
始めて所定の如きステップに従う。 6.3.1  見出されたラベルを偽に設定6.3.2
  もし小さければ、フレーム巾カウントは待機である
と調べられるよう使用できる。 (最後のバッファ場所に対しi+フレーム巾を調べる。 ) 6.3.3  もし1lIin margin rat
io > (要素(i ) / (要素(i+1)乃至
要素(i+3)の和))ならば、打切る(マージンが小
さ過ぎる)。 6.3.4  ステップ6.3.11で始まる手順を使
用して、文字について調べる。もし前方向文字がA、B
、CまたはDならば、前方向を真に設定する。もし後方
向文字がA、B、CまたはDならば、前方向を偽に設定
する。もしそのいずれも見出されなかフたならば、打切
る(開始文字が見当たらず)。さもなけわば、ステップ
6.3゜16で始まる所定の手順を行なって、文字にお
ける要素の巾を調べる。もしこわらの巾がテストを通ら
なければ、打切る(限度から外れた文字の要素)、さも
なければ、continue decodeを真に設定
し、1ast char widthをステップ6.3
゜16において計算された文字における要素の和に設定
し、1abel stringを空に設定し、iをフレ
ーム巾だけ増分するー。明瞭なラベル開始が見出される
ことになる。 6.3.5  もし小さければ、フレーム中カウントは
待機であることが調べられるように使用できる。(最後
のバッファ場所に対しi+フレーム巾を調べる。) 6.3.6  ステップ6.3.11て始まる所定の手
順を行なって、文字パターンを得る。もし適法なパター
ンが見出されなかフたならば、continue de
codeを偽に設定して打切る(文字が見出されない)
。さもなければ;ステップ6゜3.16で始まる手順を
行なって、文字における要素1】を調べる。もしこれら
の巾がテストを通らなければ、continue de
codeを偽に設定して打切る(限度から外れた文字要
素)。 6.3.7  最後の文字中に対するその時の文字にお
ける要素の和の比率を計算する。もしこの比率がwax
 char raLioより大きいか、あるいはwin
 chaf ratioより小さければ、contin
uedecodeを偽に設定して打切る。 6、:l 8  要素(i)に対するその時の文字にお
ける要素の和の比、率、を計算する。もしこの比率が■
ax gap ratioより大きいか、あるいは■i
ngap ratioより小さければ、contjnu
e decodeを偽に設定して打切る。 6.3.9 −もし前方向が真ならば、その時の文字は
ステップ6.3.6において見出された前方向の文字で
あり、さもなければ、その時の文字は後方向の文字であ
る。もしその時の文字がA、B、CまたはDならば、ス
テップ6.3゜10へ進む。さもなければ、ラベル・ス
トリングの長さが最大許容ラベル長さであれば、con
tinuedecodeを偽に設定して打切る(ラベル
・ストリング溢れ)。さもなければ、最後の文字中をそ
の時の文字の巾に設定し、フレーム巾をiに加算して、
その時の文字をラベル・ストリングに従属させる。ステ
ップ6.3.5へ進む。 6、 3. 10  continue decode
を偽に設定する。もしmin margin rati
o >要素(i+フレーム巾)/(要素(i+5)乃至
要素(i+7)の和)−であれば、打切る。さもなけれ
ば、もし前方向が偽ならば、逆ラベル・ストリングとな
り、検査合計または連結のための任意の操作を行なう(
参照された仕抹通りに)。もし誤りが見出されなければ
、見出されたラベルを真に設定して打切る。 6.3.11  本節はアルゴリズムの主な流れから引
用されるものであり、ここで実行された時これを呼出し
たステップへ戻らねばならない。 その時の文字の要素が調べられて、良好な文字パターン
を探す。最も広いバーおよび最も広いスペースを7つの
要素i+1ならばi+7において見出す。これらの各々
を閾値比率で乗じて広/狭の分岐点を見出す。 6.3.1Sj広/狭パターンを表わす2進数を0に設
定する。要素i+1乃至i+7の各々毎に、もし問題の
要素がステップ4.3.巾において計算されるバーまた
はスペースの閾値よりも大きければ、パターンを2で乗
じてこれを1だけ増分する(適当にバーまたはスペース
の閾値を使用する)。 6.3.13  もし狭いスペースが見出されなかった
ならば、パターン毎に設定して1010101となる。 これは、文字に広いスペースが存在しない場合において
妥当し、使用される方法の故に全ての広いスペースであ
るように見える。 6.3.14  次に、パターンが許容値の1つである
かどうかを判定する。これを行なう1つの方法は、 1
28のエントリを有するテーブルを用いて、妥当なパタ
ーンについて調べ、これを1つの文字ストリングに対す
る標識に変換する。 もしパターン・テーブルにおけるエントリ(以下参照)
が見出されるパターンに対し0であるならば、テストは
失敗であり、元に戻る。さもなければ、文字ポインタを
パターン・テーブルに見出された値に設定する。 パターン・テーブル ( (0) (lO) (20) (30) (40) (50) (60) (70) 二数列[0,,127] = 0123456789) (0,0,0,1,0,0,2,0,0,3゜0.4,
5,0,6,0,0,0,7.00.8,0,0,9,
0,10,0,0,0゜0.0..0,11,0,0,
12.O,O,0゜0.13,0,0,14.O,O,
0,15,0゜0.0,0,0,0,0,0,16,0
,0,0゜0.0,0,0,0,0.17.0,0.1
B。 0.0.+9.0,20,0,0,0,0.0(80)
      0,21.0,0.22,0,0,0,0
,0゜(90’l     O,0,0,0,0,0,
23,0,0,0゜(+00)      0,0,0
,0,24,0,0,0,0.0゜(110)    
  0,0,0,0,0,0,0,0,0,0゜(12
0)      o、o、o、o、o、o、o、o);
6.3.15  文字ポインタを用いて、24の文字の
これら2つのリストから前方向文字および後方向文字を
選択する。 例えば、もし文字ポインタが2であれば、各リストから
2番目11、等の文字を拾う。 前方向文字: 012C−D4弓A67BX8X5 :
9X/、3X後方向文字: 389X$X7.−X54
XAID6/28:+0(:主アルゴリズムにおけるス
テップへ戻る。 6.3.16  本−節は、アルゴリズムの主な流れか
ら引用されたもので、ここで実行された時これを呼出し
たステップへ戻らなねばならない。本節は、適正な巾の
比率について1つの文字内の要素のサイズを検査する。 本節は、最も広いスペースおよびバーの値、および前に
見出されたバー・パターンを用いる。ここで、最も狭い
バーおよびスペース、およびiに続く7つの要素の和を
見出す(これはその時の文字を構成する)。 6.3.17  もし最も狭いバーに対する最も広いバ
ーの比率がa+ax element ratioより
大きいか、あるいはwin elelIlenL ra
tioより小さければ、元に戻り、テストは失敗したこ
とになる。 6.3.18  もし最も狭いスペースに対する最も広
イスペースの比率ga max element ra
ti。 より大きければ、元に戻り、テストは失敗したことにな
る。 6.3.19  もし広いいスペースが見出され、最も
狭いスペースに対する最も広いスペースの比率がwin
 element ratioよりも小さければ、元に
戻り、テスト社失敗したことになる。 6.3.20  もし最も狭いスペースに対する最も狭
いバーの比率がmax narrow element
よりも大きければ、元に戻り、テストは失敗したことに
なる。 6.3.21  もし最も狭いバーに対する最も狭イス
ペースの比率がIIIax narrow elea+
ent rati。 より大きければ、元に戻り、テストは失敗したことにな
る。 6.3.22 0にとなり、元に戻る。 詳細については引用した文献を参照されたい。 これは、使用される4つの異なる巾の要素を有する文字
当たり6つの要素からなる文字を用いるコードである。 最も狭い要素は、1つのモジュールr1】であると定義
され、他は2.3および4のモジュール巾となる。1つ
の文字は、9つのモジュール巾である。48の定義され
た文字パターンがあり、あるものは完全ASCII文字
セットの符号化のための一システムにおいて制御文字と
して用いられる。各ラベルが変更できる数のデータ文字
と、2つの文字数検査文字を含む。ラベルを′連結する
ための方法もまた定義される。走査方向は、前方向また
は後方向の開始文字を探すことにより認識される。この
コートは、同様な端かう端までの復号のため構成される
。2項の和か計算され、文字の復号のため使用される。 7.2. アルボ1ズムの 復号プロセスにおいて使用される変数および定数は下記
の如く定義され、その後に復号アルゴリズムの簡単な託
事が続く。アルゴリズムの詳細な説明は次の節に続く。 7.2.1  犬区叉1 状況変数の値は、デコーダの再開使用を許容するため全
体的に維持することができる。 3
【」タニg≧二名仁オ缶             
      1己i           データ・バ
ッファにおけるその時の要素に対する ポインタ。これは、デコ ーダが呼出される時、常 にスペースを指示する。 1asLchar widtb    その時<7) 
ラヘ、IL/、 ニオtA テ復号された最後の文字対 における要素の巾の和 1abel 5trin3      A S CI 
I Xト1)ンク゛として復号された文字 forward continue ecode ound abel ata uffer プール関数;前方向に おける復号であるなら ば、真 プール関数;その時の要 素におけるバッファが良 好なデータのように見え る間、真 プール関数;ラベルがラ ベル・ストリングに入れ られた時、真 走査される要素の巾を 表わす数列。これら数列 は、バーとスペースとの 間で交番しなければなら ない。 7−2−2 1」」【数 定数の値は、本節において識別される。この定数は、ア
ルゴリズムの記述において名称により参照される。 一亙Jαし1血−玖呈 frame  width       6Lhres
hold  racial しhreshold  raLio2 threshold  ratio3 IIIax   element rati。 1IIax  char  rati。 2 、5/9 3.5/9・ 4.5/9 8.0 1.25 gr−m−」」− 文字対における 要素の数 2つの項の和の 値を決定するた め使用される。 1つの文字対 における最も 狭いバー(ス ペース)に対 する最も広い バー(スペー ス)の比率に 対する上限 最後の文字中に 対するその時の 文字における要 素の和の最大比 率、文字間の間 隙は含まない。 sin  char  rat、i。 min  margjn rati。  top element rati。 0.80 1.0 2.0 最後の文字rlJに 対するその時の 文字における要 素の和の最小比 率、文字間の間 隙は含まない。 ラベルの最初の 2つの要素のI+] の和の3倍に対 するラベル前の 白いスペースの 巾の最小比率 最後のバーの 次のものに対 する停止文字の 最後のバーの[]J の比率、あるい はこの比の逆数 の最大値 7.2.3  定)1υ」出 Lhreshold raLio 1   この比率は
、2つの1千1ジユール要素(合計で threshold threshold rati。 rati。 2モジユール)の2項の 和と、1つのモジュール 要素と2つのモジュール 要素(合計で3つのモ ジュール)との間の差の 中点付近となるように 選択される。この値は 9つのモジュールの文字 サイズに正規化される。 閾値1と同様に、この値 は3つのモジュールと4 つのモジュールの2項の 相間の分岐点である。 この値は、4つのモジュ ールと5つのモジュール の2つの項の相間の分岐 char raLio。 min  char  rati。 min  margin  rati。 これらの値は、1つの 文字内の可能な走査点の 速度の変動および文字 要素における走査および 印刷誤差に基いて選択 される。使用される特定 の走査装置に対1−るより 良好なデータが得られる まで、1.25および0,80を 使用する。 この値は、厳しい仕様限 度値およびプログラム 効率の励行との間の妥協 である。仕様当たりの 最小の白いスペースは 公称モジュール・サイズ の10倍である。前方向 または後方向のラベルの 最初の2つの要素の和は 2つの公称モジュール である。この結果の 少なくとも3倍のマー ジンを調べることは、 6つの公称モジュールの 最小マージンであり、こ れが仕様ラベルからの 逸脱および走査誤差を 許容する。 5top element ratio   これは限
界値ではないが、最後のバーの巾が 停止文字における他の 要素の巾と略々同じで あることを調べるため 使用される。 7.2.4 −1し11号去韮 効率化のため、データ・バッファは、潜在的なラベル・
マージンを示す大きな白いスペースについて探されねば
ならない。従って、全てのデコーダは、この点から処理
を開始することができ、探索プロセスの重複を避ける。 もしデコーダがこの位置で開始する良好なラベルを見出
さなければ、再び呼出しプログラムに退出する。デコー
ダが最初に呼出される前に、状況変数のあるものを初期
化しなければならない。これらは下記の如く設定される
べきである。即ち、 i:大きな白いスペースを指示するように設定データ・
バッファを求める如何なる操作に先立ち、デーダがバッ
ファにおいて使用できることを確認するよう注意が払わ
れることを前提とする。 デコーダが呼出される毎に、最小マージン比により定め
られる比較を行なう。もしこのテストを通るならば、前
方向または後方向の開始文字パターンを求めて、閾値比
および最大要素比を用いて文字における要素をテスト′
1−る。もしこれが全てOKならば、以下の変数が設定
される。 即ち、 continuedecode真 forward       見出される文字に従つて
・、真または偽 1ast char width    開始文字にお
ける要素の和に設定 1abel string      空に設定i  
        その時の値i+フレーム巾のその時の
値に設定 この時、このデコーダはラベルの要素を進み続け、誤り
が生じるまでラベル・ストリングに文字を従属させ、終
り文字が見出され、さもなければ、データは得られない
。各文字毎に、開始文字に対して行なわれた同じ検査が
(最小マージン比を除いて)、最大文字比および最小文
字比についての文字量検査と共に用いられる。 もし見出された文字が停止文字でなく、また全てのテス
トが通フたならば、状況変数が更新される。即ち、 lasシchar widL++ :丁度見出された文
字における要素の和に設定される。 1abel spring   :見出された文字はラ
ベル・ストリングに従属される。 i      :iのその時の値プラス、フレーム巾に
設定される。 もしどれかのテストが失敗するなら&f、 conti
nuedecodeは偽に設定される。 もし文字が停止文字であったならば、continue
decodeを偽に設定し、最小マージン1ヒを用し)
で後のマージンについて調べる。もしOKならば、後方
向の走査のための補正を行なうためラベリレ・ストリン
グの反転、2つの検査文字の8平(i、イ壬意のラベル
連結等の如き二次的処理を行なう。次し1で、もし全て
が0にならば、見出されたラベルを真に設定する。 良好な文字パターンについての検査は、文字(総[1]
)における要素の和を見出し、次し1で3つの閾値比の
値の各々を総巾で乗じることにより3つの閾値を計算す
ることにより行なわれる。次に、4つの2項の和が計算
され、各相のサイズh〜2.3.4または5のモジュー
ルである力)どう力)の判定が行なわわる。その結果得
られる4つの11数を用いて適正な文字コードを索引す
る。もしラベルが後方向に走査されつつあるならば、2
項の和は文字の他の終りから計算される。最初に方向を
識別するため、前または後の開始文字を見出すことを行
なわねばならないが、他の全ての文字は常に1つの状態
を有することになる。もし良好な文字が見出されるなら
ば、最大要素比率が調べられる。このため、最も狭いバ
ーおよびスペースと最も広いバーおよびスペースを見出
すことが必要となる。もしこのテストがOKであれば、
文字は0にである。 7.3  Code98  ”アルゴリズム復号アルゴ
リズムは下記の如きものである。もしどれかのラベル一
致テストが失敗するならば、このアルゴリズム−からの
退出が生じ、状況変数継続復号は偽に設定される。デコ
ーダの呼出しに先立ち、iを可能なマージン(広い白の
スペース)に設定する。走査データ・バッファにおける
情報は、データ・バッファのi番目の要素に対する要素
(i)と呼ばれる。復号中、プロセスiがマージン即ち
スペースを指示するものとする。 ステップ7.3.1で始まる所定のステップに従う。 7.3.1  見出されたラベルを偽に設定。 7.3.2  もしこれより小さければ、フレームrl
カウントが調べられた待機状態になるように使用できる
。、(最後のバッファの場所に対し・てi+フレーム巾
を検査する) 7.3.2  もしそれより小さければ、フレーム中カ
ウントが調べられた待機になるように使用できる。(最
後のバッファの場所に対してi十フレーム巾を調べる。 ) 7.3.3  もしmin margin ratio
 > (要素(i)/3*(要素(i+1)および要素
(i+2))ならば、打切る(マージンが小さ過ぎる)
。 7.3.4  前方向を真に設定する。ステップ7.3
.12で始まる手順を用いて、文字を表わす16進数を
判定する。もしパターンが2225であるならば、ラベ
ルは実際に前方向である。 もしパターンが2552であれば、前方向を偽に設定す
る。もしいずれも見出されなかったならば、打切る(開
始文字は見出されない)。もし前方向が偽であり要素(
i+1)/要素(i・+3)〉5top elemen
t ratioであるか、あるいは要素(i + 3 
) /素子(i + 1 ) > 5top elem
entratioであれば、打切る。1さもなければ、
ステップ7.3.17で始まる所定の手順を行ない、文
字における素子の巾を調べる。もしこれらがテストを通
らなければ、打切る(文字の素子は限度外である)。さ
もなければ、continue decodeを真に設
定し、1ast char widLhをステップ7.
3.12で計算された文字における素子の和に設定し、
1abelストリングを空に設定し、iをフレーム巾だ
け増分する。明瞭なラベルの初めが見出されることにな
る。 7.3.5  もし小さければ、カウントが調べられた
待機となるよう使用できる。(i+フレーム巾を最後の
バッファの場所に対して調べる。)7.3.6  ステ
ップ7.3.12て開始する所定の手順を行なフて、文
字パターンを得る。 見出されたパターンと対応する文字を求める。 早い方法を用いるべきである。最初の1に対する各桁お
よび2つの桁において分岐しかつ枝葉における文字値を
有する判断ツリーを用いることができる。開始文字およ
び特殊文字のパターンは、さもなければ、使用されない
文字により示される。(デコーダから実際に送られる文
字は以降のステップにおいて選択される)。 2222 : char= ’7゜ 2223 : char= ’L’ 2224  二 char=  ’  (’   fw
d  5tart2225  二 char=  ’I
’3324 :  char= 3332 : char= ’Q’ 3333 : char= ’5’ 3334 : char= ’j’ ”$  char 334:l :  char= ’R’3344 : 
char= ’6” 3432 :  char= ”J’ 3433 :  char= ’Y’ 3443 :  char= ’&’ +  char 3542 : char= ’Z″ 2234 :  char= 2244 :  char= 2245 :  char= 2255 :  char= 2L12 :  char= 233:] :  char= ’W’2:1134 
: char= ’/’        4222 :
 cl+ar=2343 : cl+ar= ’H’ 
       4223 : char= ’#’ゞ/
  char 2344 : char= ’X’        4
233 : char=2354 ; char= ’
I’       4322 : char= ’D’
2443 : char= ”        432
3 : char= ’U’2552 : cl+ar
= ’)’        4332 : char=
 ’@’”!J  char 3222  :  char=  ’ 八’     
             4333  :  cha
r=  ’E’3223  :  char=  ’S
’                 4422  :
  char=  ’O嘗3224 : char= 
−%+       4423 : char= ’P
’3233 : char= ’B’        
4432 : c’har= ’V’3234  : 
 char=  罫’               
   4433  :  Char=  ’8’324
4 : char= ’C’ −4532: char
 = ’に’3]22 : char= ’4’   
     5:122 : char= ’$’332
3  :  cliar=  ’0’        
           5422  :  char=
  ’F’5522 : char= ’9 7.3.7  もし適法のパターンか見出されな力じた
ならば、continue decodeを偽に設定し
て打切る(文字は見出されない)。さもなけれ!f、ス
テップ7.3.17で始まる手順を行なフて、文字にお
ける要素の巾を調べる。もしこれらがテストを通らなけ
れば、continue decodeを偽に設定して
打切る(文字の要素は限度外である)。 7.3.8i後の文字rlに対するその時の文字におけ
る要素の和の比率を計算する。もしこの比率がmax 
char ratioより大きいか、あるいはmin 
char ratioより小さければ、 contr’
nuedecodeを偽に設定して打切る。 7.3.9  もしその時の文字が開始/停止であれば
、ステップ7.3.11へ進む。 7.3.10  もしラベル・ストリングの長さが最大
許容ラベル長さであれば、continue deco
deを偽に設定して打切る(ラベル・ストリング溢れ)
。さもなければ、i後の文字rlJをその時の文字の巾
に設定し、フレームIIをiに加算し、その時の文字を
ラベル−ストリングに従属させる。ステップ7.3.5
へ進む。 7 、 3 、  J f  continue de
codeを偽に設定する。もしmin IIlargi
n ratio>要素(i +a) 73*(要素(i
 +6)プラス要素(i+7)の和)ならば、打切る。 もし前方向が真であり、要素(i+7)/要素(i +
 5 ) > 5top eleo+entratio
 、あるいは要素(i+5)/要素(i+7 ) > 
5top element、 ratioならば、打切
る。 さもなければ、前方向が偽の逆ラベル・ストリングであ
わば、検査合計の計算を行なう。もしOKならば、シフ
ト文字についてラベルを探し、引用した仕様におけるテ
ーブルに従って、このシフト文字および後続文字をその
時の文字と置換する。シフト文字は下記の如きラベル・
ストリングで表わされる。即ち、 マル$は、!で−ある マル+は、&である マル%は、@である マル/は、#である 次に、連結の如き任意の操作を(引用された仕様に従っ
て)行なう。もし誤りか見出されなければ、見出された
ラベルを真に設定する。 打切る。 7.3.12  本節はアルゴリズムの主な流れから引
用されるもので、ここで実行された時これを呼出したス
テップへ戻らねばならない。その時の文字の要素は良好
な文字パターンを求めて調べられる。もし前方向が真な
らば、要素(i+1)乃至要素(i+6)を加算するこ
とにより総丈掌中を見出し、さもなければ、要素(i+
2)乃至要素(i+7)を加算することによる。次に、
もし前方向が真ならば、ステップ7.3.13へ進み、
さもなければ、7.3.14へ進む。 7.3.134つの2項の和T1乃至T4を下記の如く
計算する。即ち、 T1=要素(i−+1)十要素(i+2)T2=要素(
i+2)十要素(i +3)T3=要素(i+3)十要
素(°童+4)T4=要素(i +4)十要素(i+5
)ステップ7.3.15へ進む。 7.3.144つの2項の和T1乃至T4を下記の如く
計算する。即ち、 TI=要素(i + 6 )十要素(i+7)T2=要
素(i+5)十要素(i+6)T3=要素(i+4)十
要素(i +5)T4=要素(i+3)十要素(i+4
)7.3.15  閾値1、閾値2、閾値3の3つの閾
値を、総丈掌中に閾値比1乃至閾値比3を乗算すること
により計算する。 7.3,16 パターンの4つの桁D1乃至D4を、和
T1乃至T4の各々に対して下記の計算を行なうことに
より計算する。jl乃至4については、下記の計算を行
なう。即ち、 Dj=2;もしTj<閾値I Dj=3;もし閾値1<=Tj<閾値2Dj=4;もし
閾値2く=Tjく閾値3Dj=5;もし閾値3<=Tj 従って、パターンはD4+I6*D3+ 25δ*D2
+4096* D 1 (これらの値が計算される時シ
フトおよび加算によりこの計算を行なう)。主アルゴリ
ズムにおけるステップへ戻る。 5.3.17  本節はアルゴリズムの主な流れから引
用されるもので、ここで実行する際これを呼出したステ
ップへ戻らなければならない。本節は正しい巾の比率に
ついて文字内の素子のサイズを調べる。最゛も広いバー
およびスペース、および最も狭いバーおよびスペースを
見出す。 7.3.18  もし最も狭いバーに対する最も広いバ
ーの比率がmax element ratioよりも
大きければ、戻り、テストは失敗に終る。 7.3.19  もし最も狭いスペースに対する最も広
いスペースの比率がrnax narrow elem
entratioよりも大きければ、戻り、テストは失
敗に終る。 7.3.20 0にならば、戻る。 詳細については引用した文献を参照されたい。 これは、使用される4つの異なる巾の要素を有する文字
当たり6つまでの要素からなる文字を用いるコードであ
る。最も狭い要素は、1つのモジュール1Jであると定
義され 他は2.3および4のモジュール中である。1
つの文字は、11のモジュール中である。1つの文字に
おけるバーは、偶数のモジュール(偶数パリティ)から
なる。文字のパリティは、復号プロセスにおいて検査さ
れる。 定義された107の文字パターンがあり、3つの異なる
開始文字と、1つの停止文字と、文字の翻訳に対する3
つの異なるパターン(コードA、BまたはC)のどれを
用いるかを選択するいくつかの文字と、4つのデコーダ
制御関数とを含む。開始文字の選択が、文字の翻訳に対
してどのパターンが最初に用いられるかを決定する。各
ラベルは、変更可能な数のデータ文字と1つの文字数検
査文字とを含む。 ラベルを連結するための方法もまた定義される。 走査方向は、前方向−または後方向の開始または停止文
字を探すことにより認識される。このコードは、類似の
縁部毎の復号を行なうため構成される。2つの項の和が
計算され、文字を復号するため用いられる。 8・ 2. アルゴリズムの ・ 復号プロセスにおいて使用される変数および定数は下記
の如く定義され、その後に復号アルゴリズムの簡単な記
事が続く。アルゴリズムの詳細な説明は次の節に続く。 8.2−1  状況叉1 状況変数の値は、デコーダの再開使用を許容するため全
体的に維持することができる。 支気Ω主郵         ぜ i          データ・バッファにおけるその
時の要素に対するポイン タ。これは、デコーダが呼出 される時、常にスペースを 指示する。 1ast char width    その時のラベ
ルにおいて復号された最後の文字における 要素の巾の和 1abel string      A S CI 
Iストリングとして復号された文字 forvard        ブール関数:前方向に
おける復号であるならば、真 continue decode    ブール開数:
その時の要素にound abel data  buffer おけるバッファが良好なデー タのように見える間、真 プール関数;ラベルがラベ ル・ストリングに入れられた 時、真 走査される要素の巾を表わす 数列。これら数列は、バーと スペースとの間で交番しなけ ればならない。 s、z、2 [号定量 定数の値は、本節において識別される。この定数は、ア
ルゴリズムの記述において名称により参照される。 一定翌Ω主罫−飲呈    −記一一1−fra+ne
 width     −6−1ツの文字における要素
の数 threshold ratiol  2.5/11 
 2ツの項の和の値をthresbold ratio
2  :1.5/It   決定するため便用thre
shold ratio3 4.5/11   される
。 threshold ratio4 5.5/IIth
reshold rati05 6.5/11elem
ent rati。 ax cbar rati。 min  cbar  raLi。 min margin rati。 1.25 0.80 1つの文字における 最も狭いバー(ス ペース)に対する 最も広いバー(ス ペース)の比率に 対する上限 最後の文字巾に対 するその時の文字に おける要素の和の 最大比率、文字間の 間隙は含まない。 最後の文字巾に対 するその時の文字に おける要素の和の 最小比率、文字間の 間隙は含まない。 ラベルの最初の2つ の要素のrlJの和の2 倍に対するラベル前 の白いスペースの[]ノ top rati。 element 2.0 の最小比率 最初のバーに対する 停止文字の!&後のバ ーの巾の比率の最大 値、あるいはこの比 の逆数 8.2.3  定1Jυ1出 threshold  ratio  1thresh
old raLio  2 この比率は、2つの1モ ジュール要素(合計で2モ ジュール)の2項の和と、 1つのモジュール要素と2つ のモジュール要素(合計で 3つのモジュール)の2つの 項の和との間の差の中点付近 となるように選択される。こ の値は11のモジュールの文字 サイズに正規化される。 閾値1と同様に、この値は 3つのモジュールと4つのモ ジュールの2項の相間の分岐 Lt+reshold ratio  3 threshold ratio  4 threshold ratio  5 ax cbar ratio。 min cbar rati。 min margin rati。 点である。 この値は、4つのモジュール と5つのモジュールの2つの 項の相間の分岐点である。 この値は、5つのモジュール と6つのモジュールの2つの 項の相間の分岐点である。 この値は、6つのモジュール と7つのモジュールの2つの 項の相間の分岐点である。 これらの値は、1つの文字内 の可能な走査点の速度の変動 および文字要素における走査 および印刷誤差に基いて選択 される。使用される特定の 走査装置に対するより良好な データが得られるまで、1.25 および0.80を使用する。 この値は、厳しい仕様限度値 の励行とプロ゛クラム効率との 間の妥協である。仕様通りの 最小の白いスペースは公称モ ジュール・サイズの10倍で ある。前方向または後方向の ラベルの最初の2つの要素の 和は3つの公称モジュールで ある。この結果の少なくとも 2倍のマージンを調べること は、6つの公称モジュールの 最小マージンであり、これが 仕様ラベルからの逸脱および 走査誤差を許容する。 5top element ratio   コれは限
界値ではなく、最後のバーの巾が停止文字におけ る他の要素の巾と略々同じで あることを調べるため使用さ れる。 8.2.4  二紋虱lli方羞 効率化のため、データ・バッファは、潜在的なラベル・
マージンを示す大きな白いスペースについて探索されね
ばならない。従って、全てのデコーダは、この点から処
理を開始することができ、探索プロセスの重複を避ける
。もしデコーダがこの位置で開始す・る良好なラベルを
見出さなければ、再び呼出しプログラムに退出すること
になる。デコーダが最初に呼出される葭に、状況変数の
あるものを初期化しなければならない。これらは、下記
の如く設定されるべきである。 即ち、 i:大きな白いスペースを指示するように設定データ・
バッファを求める如何なる操作に先立ち、データがバッ
ファにおいて使用できることを確認するよう注意が払わ
れることを1)1f提とする。 デコーダが呼出される毎に、最小マージン比により定め
られる比較を行なう。もしこのテストを通るならば、前
方向または後方向の開始場よび停止文字パターンを求め
て、閾値比および最大要素比を用いて文字における要素
をテストする。もしこれが全てOKならば、以下の変数
が設定される。即ち、 continuedecode真 forward        見出される文字に従っ
て、真または偽 1ast char widLh    開始文字にお
ける要素の和に設定 1abel string      空に設定i  
        その時の値i+フレーム巾に設定 コード・セットA、B、Cの翻訳を行なう全ての処理は
、完全なラベルが見出された後に生じる。 次に、このデコーダはラベルの要素を進み続け、誤りが
生じるまでラベル・ストリングに文字を従属させ、終り
文字が見出され、さもなければ、デーダは得られない。 各文字毎に、開始文字に対して行なわれた同じ検査が(
最小マージン比を除いて)、最大文字比および最小文字
比についての文字量検査と共に用しAられる。もし見出
された文字が停止文字あるいは後方向開始文字でなく、
また全てのテストが通ったならば、状況変数が更新され
る。即ち、 1ast cl+ar width :丁度見出された
文字における要素の和に設定される。 1abel string   :見出された文字はラ
ベル・ストリングに従属される。 i        :iのその時の値プラス、フレーム
巾に設定される。 もしどれかのテストが失敗するならば、continu
edecodeは偽に設定される。 もし文字が停止あるいは後方向開始文字であフたならば
、continue decodeを偽に設定し、最小
マージン比を用いて後のマージンについて調べる。もし
0にならば、後方向の走査のための補正を行なうためラ
ベル・ストリングの反転、2つの検査文字の評価、任意
のラベル連結等の如き二次的処理を行なう。次いで、も
し全てがOKならば、見出されたラベルを真に設定する
。 良好な文字パターンについての検査は、文字(総巾)に
おける要素の和を見出し、次いで5つの閾値比の値の各
々を総巾で乗じることにより5つの閾値を計算すること
により行なわれる。次に、4つの2項の和が計算さね、
各相のサイズが2.3.4.5.6または7のモジュー
ルであるかどうかの判定が行なわれる。その結果得られ
る4つの桁数を用いて適正な文字コードを索引する。も
しラベルが後方向に走査されつつあるならば、2項の和
が文字の他の終りから計算され、その結果同じ和のセッ
トを生じる。最初に方向を識別するため、前方向の開始
文字および前方向または後方向の停止文字を見出すこと
を行なわねばならないが、他の全ての文字は常に1つの
状態を有することになる。 もし良好な文字が見出されるならば、最大要素比率が調
べられる。このため、最も狭いバーおよびスペースと最
も広いバーおよびスペースを見出すことが必要となる。 もしこのテストがOKであれば、文字はOKである。 8.3 コード 128′   アルボ1ズム復号アル
ゴリズムは下記の如きものである。もしどれかのラベル
一致テストが失敗するならば、このアルゴリズムからの
退出が生じ、状況変数維続復号は偽に設定される。デコ
ーダの呼出しに先立ち、iを可能なマージン(広い白の
スペース)に設定する。走査データ・バッファにおける
情報は、データ・バッファのi番目の要素に対する要素
(i)と呼ばれる。復号中、プロセスiがマージン即ち
スペースを指示するものとする。ステップ8.3.1で
始まる所定のステップに従う。 8.3.1  見出されたラベルを偽に設定。 8.3.2  もしこれより小さければ、フ1ノームr
13カウントが調べられた待機状態になるように使用で
きる。(ijj、後のバッファの場所に対してi+フレ
ーム巾を検査する) 8.3.3  もしmin margjn ratio
 > (要素(i)/2*(要素(i+1)および要素
(i+2)の和)ならば、打切る(マージンが小さ過ぎ
る)。 8.3.4  前方向を真に設定する。ステップ8゜3
.12で始まる手順を用いて、文字を表わす16進数値
を決定する。もしパターンが下記のいずれかであれば、
ラベル・ストリングを下記の如く、設定する。 パターン:  3255  ラベル・ストリング二文字
+03(開始A) 3233                     
 104(開始B) :12]5                    
  105(開始C) 3224                     
104(後方向停止) もしパターンが後方向の停止であフたならば、前方向を
偽に設定する。もし4つのパターンがいずれも見出され
なかったならば、打切る。ステップ8.3.7に規定さ
れる如く文字のパリティを検査する。もし不良であれば
、打切る(パリティ・エラー)。さもなければ1、ステ
ップ8.3.16で始まる所定の手順を行なって、文字
における要素の巾を検査する。もしこわらがテストを通
らなければ、打切る(限度外の文字要素)6さもなけれ
ば、も、し前方向が偽であり、要素(i+7)/要素(
i + 1 ) > 5top ele+nentra
tioであるか、あるいはもし前方向が偽であり、要素
(i+1)/素子(i +、 7 ) > 5top 
elementratioであれば、打切る。さもなけ
れば、continuedecodeを真に設定し、1
ast char widthをステップ8.3.11
で計算された文字における素子の和に設定し、jをフレ
ームrlJだけ増分する。明瞭なラベルの初めが見出さ
れることになる。 8.3.5  もし小さければ、8つのカウントか調べ
られた待機となるよう使用できる。(i+フレームII
Iを最後のバッファの場所に対して検査する。)8.3
.6  ステップ8.3.11で始まる所定の手順を行
ない、文字パターンを得る。見出されたパターンと対応
する文字を求める。早い方法を用いるへきである。最初
の1に対する各桁および2つの桁において分岐しかつ枝
葉における文字値を有する判断ツリーを用いることがで
きる。下記のテーブルは、文字変換にパターンを与える
。開始文字および特殊文字のパターンがさもなければ使
用されない文字により示される。(デコーダから実際に
送られる文字は以降のステップにおいて選択される)。 2225  char=92 3434  char=
13 4534  char=442234  cha
r=63 34t2  Char=51 4542  
char=222236  char=80 3443
  char=6 4543  char=82245
  char=33 3444  char=5:l 
 4552  char=602247  char=
93 3445  char=I4 455:l  c
har=182256  char=64 3453 
 char=2+  4554  char:3823
34  char=42 −3454  cl+ar=
7 4643  char=472:143  cha
r=69 3464  char=52 4752  
char=792345  ct+ar= 12 2354  char= 36 2356  char= 43 2365  char= 70 2443  char= 45 2445  char= 99 2454  char= 15 2465  char=46 2552  char= 95 2554  charIlloo 2563  char=83 2574  ehar= 95 3224  char−107 bkwd 5top 3233  char=104 start  b 3235  char=105 start  c 3244  char= 39 3246  char=49 465 543 553 554 652 663 223 225 234 245 322 324 332 333 334 335 cl+ar=72 cbar= 16 char= 9O ct+ar=I7 char=84 cl+ar= 85 char= 54 char−101 ct+ar=24 char= 55 char= 76 char= 19 cl+ar=57 cl+ar=9 char= 23 char= 20 222 224 233 244 323 333 334 422 424 432 433 442 443 char= 97 charJO2 char=86 char= 98 char=25 char=91 char= 26 char= 40 char= 50 char= 28 char= 11 char= 17 (har= 29 5444  char= 41 523 char= 67 533 534 cbar=32 char= 68 325!i  char−103”4343  cha
r=27 56:12  ehar==73sLarL
  a :1:12:l  char=65 4344  ch
ar=Io  5642  char=106f胃d 
5top 3325  cbar=81 4354  cbar=
58 5643  char =743333  ch
ar=30 4355  char=61 6322 
 char=87:J:134  char=3 44
23  cbar=34 6333  char=88
33:15  char=89 4425  char
=94 6423  char=563336  ch
ar=82 4433  char=1 6522  
char=783344  char=o  4434
  char=5 6532  ct+ar=5933
45  char=4.4443  char:48 
6533  char−乃3355  char=31
 4444  char=2 7422  char−
=623356  char= 66 4445  c
har=、35:+4:12  char=71 45
82  char=378.3.7  もし適法のバタ
ーコノが見出されなかったならば、continue 
decodeを偽に設定し、て打切る(文字は見出され
ない)。さもなけゎば、見出した詐りの文字値を下記の
テーブルに対する標識として用いることによりパリティ
について調へ、値Vを得る。次に、もしく V + 1
.75) / II<ハ(7)合31、または(V −
1,75) / II>バーの合計のいずれかであれば
、continue decadeを偽に設定して打切
る(パリティ・エラー)。さもなけhば、8.3.16
で始まる手順を行ない、文字における要素の1]を調べ
る。もしこれらがテストを通らなければ、contin
uedecodeを偽に設定して打切る(文字の要素は
限度外である)。 ■テーブル(0乃至107) (0)  6,6,6,4.4.4,4,4.4,4゜
(+o)  4,4.e、s、6,6.6.6;6.6
゜(20)  6,6,6,8,6,6,6,6,6,
6゜(30)  6.6,6.4.4.4.4.4,4
.’!。 (40)  4,4.6,6,6,6,6,6,8.J
(50)  6,6,6,8.6−.6.6.6,6,
6゜(60)  8,4.6,4,4,4,4.4,4
,4゜(70)     4,4,4,4,4.4,4
.8.4,6゜(80)  6,6,6,6,6,6,
6,6,6,8゜(90)  8,8,6,6,6,6
,6,6,6,8゜(+00)  8,8,8.4,4
,6,6.68.38 最後の文字t1に対するその時
の文字における要素の和の比率を計算する。もしこの比
率がmax char ratioより大きいか、ある
いはwin charratioより小さければ、 c
ontinue decodeを偽に設定して打切る。 8.3.9  もしラベル・ストリングの長さが最大許
容ラベル長さであれば、continue・decod
eを偽に設定して打切る(ラベル・ストリング溢れ)。 さもなければ、もしその時の文字が開始文字(103J
O4,106)あるいは停止(106)文字であわば、
ステップ8゜3.10へ進む。さもなけわば、1ast
 char widthをその時の文字の巾に設定し、
フレーム巾をiに加算し、その時の文字をラベル・スト
リングに従属させる。ステップ8.3.5へ進む。 8−3.  ! Ogontinue decodeを
偽に設定する。 もしmin +oargin ratio>要素(i+
8)/2*(要素(i+6)プラス要素(i+7)の和
)ならば、打切る。さもなければ、もし前方向が真であ
り、もし要素(i+7)/要素(i + 1 ) >5
top element、 rat、io、あるいは要
素(i+1)/要素(j+7)>stopelemen
t ratioならば、打切る。さもなければ、前方向
が偽の逆のラベル・ス[・リングであわば、検査合計計
算を行なう。もしOKならば、ラベル・ストリングを用
いて引用された仕様におけ、る文字テーブルを使用して
実際の出力ストリングを構成する。ラベル・ストリング
における値は、テーブルにおける「値」の欄に対するエ
ントリを与える。このルールに従って、データを翻訳す
る際その時のコードを記録する。 この4つの機能文字は、デコーダに対する制御ソフトウ
ェアと通信されるべきである。もしエラーが見出されな
けわば、見出されたラベルを真に設定する。 打切る。 8.3.11  本節はアルゴリズムの主な流れから引
用されるもので、ここで実行された時これを呼出したス
テップへ戻ら力ばならない。その時の文字の要素は良好
な文字パターンを求めて調べられる。もし前方向が真な
らば、ステップ8.3.12へ進ミ、さもなければ、8
.3.13へ進む。 8.3..12  総丈字中を要素i+1乃至i+6を
加算することにより見出す。4つの2項の和T1乃至T
4を下記の如く計算1−る。即ち、 T1=要素(i + 1 )十要素(i+2)T2=要
素(i+2)十要素(i + 3 )T3=要素(i+
3)十要素(i+4)T4=要素(i+4)十要素(i
 +5)バー合計=(i+1)十要素(i +3)十要
素(i+5)ン/総丈字中に設定する。ステップ8.3
.14へ進む。 8.3.13  総文字巾を要素(i+2)乃至(i+
7)を加算することにより見出す。4つの2項の和T1
乃至T4を下記の如く計算する。即ち、T1=要素(i
+6)十要素(i+7)T2=要素(i+5)十要素(
i +5)T3=要素(i +4)十要素(i +5)
T4=要素(i+、3)十要素(i+4)バー合計=(
要素(i+3)十要素(i+5)十要素(i+7)/総
文字巾)に設定する。 8.3.14  閾値1乃至閾値5の5つの閾値を、総
文字巾に閾値比1乃至閾値比5を乗じることにより計算
する。 8.3.15  パターンの4つの桁D1乃至D4を、
和T1乃至T4の各々に対して下記の計算を行なうこと
により計算する。jl乃至4については、下記の計算を
行なう。即ち、 Dj=2;もしTj〈閾値I Dj=3;もし閾値1〈=Tj〈閾値2Dj士4;もし
閾値2〈=Tjく閾値3Dj;5;もし閾値3く=Tj
〈閾値4Dj=6;もし閾値4<=Tj<閾値5Dj=
7;もし閾値5く=Tj 従って、パターンはD4+16*D3+ 256*D2
+4096* D 1に等しい(これらの値が計算され
る時シフトおよび加算によりこの計算を行なう)。主ア
ルゴリズム°におけるステップへ戻る。 8.3.16  本節はアルゴリズムの主な流れから引
用されるもので、ここで実行する際これを呼出したステ
ップへ戻らなければならない。本節は正しい巾の比率に
ついて文字内の要素のサイズを調べる。最も広いバーお
よびスペース、および最も狭いバーおよびスペースを見
出す。 8.3.17  もし最も狭いバーに対する最も広いバ
ーの比率がmax element: ratioより
も大きけわば、戻り、テストは失敗に終る。 8.3.18  もし最も狭いスペースに対する最も広
いスペースの比率がmax narrow eleme
nt ratioよりも大きければ、戻り、テストは失
敗に終る。 8.3.190にならば、戻る。 UPC/EANは、それぞれある固定数(4,6または
7)の数字桁を表わす1つ以上のセグメントからなって
いる。この情報は、セグメント単位で4乃至6の文字の
長さを持つように符号化される。 ラベルにおける各セグメントは、セグメントの捕捉順序
または走査の方向の如何に拘らず、独立的に走査され復
号されることができる。 9.1.1  基木璽諧 UPC/EANラベルの交互のバーおよびスペースの巾
はモジュールに照して定義される。1つのモジュールは
、ラベルを復号する時要素のサイズを計算するため使用
される正規化因子である。1つのモジュールは一般に、
ラベルの特定の部分を構成するグループの要素の最も小
さいものである。復号アルゴリズムにおいて用いられる
全ての測定および比率は、モジュール巾に基いている。 9.1.2  文主Ω璽1 1つのセグメントの各文字は、4つの要素と、2つのバ
ーと、2つのスペースのグループがらなっている。文字
は、各要素が1.2.3または4のモジュール巾である
7つのモジュールの一定の中を有する。これら4つの要
素の興なるパターンは、共にOから9の偶数および奇数
パリティを有する2゜の文字を生じるように、一義的に
復号することができる。パリティは1文字パターンのバ
ーを構成するモジュールの数により決定される。このパ
リティと、パターンが走査された方向く文字パターンが
スペースおよびバーのいずれから開始するが)は、セグ
メントと関連して用いられ、ラベルが前方向または後方
向のいずれがで走査されたがを判定する。 9.1.3  立りシ仁Z上11組造 1つのセグメントは、4つ乃至6つの明瞭な文字からな
る。7番目の文字は、パリティ・パターンを用いである
形式のセグメントに明瞭に符号化される。セグメントは
、一般に、左右の半分にグループ化されている。左側の
半分のセグメントおよび右側の半分のセグメントは、通
常、中央のバンドにより一つに繋がっている。中央のバ
ンドは、それぞれrlが1モジユールである5つの要素
(3つのスペース、2つのバー)のパターンを呈する。 この接合されたセグメントは、両側でマージン(比較的
大きな白のスペース)およびガード・バー・パターン(
1つのモジュールは3つの要素、1つのスペースで分け
られた2つ−のバー)により囲まれている。 左から右(前方向)に走査される時、左の半セグメント
における文字はスペースで始まる。セグメントは、中央
のバンドで終り、右側のセグメント文字(中央ハンドの
終りから走査される)はマーク(バー)で始まる。この
ため、セグメントにおける文字パターンが始まる要素の
形式が、ラベルが走査された相対的方向(マージンから
中央バンドへ、あるいは中央バンドからマージンへ)を
決定する。 セグメント文字により生成さするパリティ・パターンは
、左または右の半セグメントを識別するため用いられる
。これらの2つの情報片は、セグメントの形式および符
号化されたデータの順序を識別する。 ある形式の左の半セグメントは、対応する右半分が繋が
らない。これらセグメントは、左のマージンとガード・
バー・パターンと右側の中央バンド・パターンとを有す
る。この中央バンドは、右側の別の1モジユール・バー
を含み、最後のスペースをマージンから分離する。 9− 1−4Lぺ土Ω璽り 特定のラベル形式が−,1つ以上の一義的なセグメント
で形成される。UPC形式形式ベラベル合計+2の文字
に対して6文字の左右の半分を持つ。UPC形式E(ゼ
ロ消去)ラベルは、パリティ・パターンにおける7番目
の文字として符号化されるモジューロlO検査桁を持つ
1つの6文字左半分を有する。EAN−13は、13番
目の桁が左の半セグメントのパリティ・パターンで符号
化された2つの6文字半部を有する。 EAN−8ラベルは、符号化されたデータの8桁毎に1
つの左および1つの右の4文字半部を有する。 upc形式りのラベル(D−1乃至D−5)は、14乃
至32桁のデータを持つ4および6の両方の文字セグメ
ント形成ラベルの種々の組合せを有する。 セグメントの半分または対は、ラベル内でブロック間お
よびブロック間隙間の要素により分離されている。 これらは、実質的に7つのモジュールの最小公称中を持
つマージン要素である。 9.1.5.[且立立付迦ユj UPCのAおよびE、EAN13、およびEAN8は、
長さが2または5文字の補則的に符号化されたデータ(
主として雑誌および書籍業界において用いられるため、
周0期的データとも呼ばれる)によって右側のマージン
の後に付加することができる。データは右側のマージン
(公称7モジユール)に直ちに続き、3つの要素(1つ
のモジュール・、1つのモジュール・スペース、2つの
モジュール・バー)のカード・バー・パターンで示され
る。文字パターンは、2つの要素(1つのモジュール・
スペース、1つのモジュール・バー)により分離され、
1つのマージン要素が最後の文字の直後に続く。補則的
な符号化方式は、標準的なUPC/EANラベルの復号
と干渉しないように意図的設計されたものであるが、ま
たUPC/EANデコーダにおいて既に存在すφ復号方
式(文字パターン認識の如き)のあるものを利用する能
力も有する。その性格の故に、補則的な符号化法は、標
準的なUPC/EANラベル形式よりもエラーの影響を
受、け易い。 偶数 パリティ    奇 数パリティB、S  B2
52  TIT2  B10  B252  TIT0
3211  53  112 3231 2221−”
14  1222 3422122  33  221
2 433 1411  55  114+  254
 1132  24  23]1 545 1231 
 35  1:]21 4561114  22  4
1.11527 1312  44  21411 3
48  121:I     37I     ]+2
+    4:19:lI+2    42    2
113   32第9.1表:各UPC/、EAN文字
に対するバー(1)、スペース(Sl)および2項和(
T1)の情報。走査方向が文字がスペースから開始する
如きものである時、文字要素は逆にすべきである。 奇数および偶数の両パリティ文字を含むセグメントは反
転文字を含むことに注意されたい。 9.2 ′シー0アルゴリズムの “ 9.2.IL号旦仄丘11 復号プロセスに用いられる変数は以下に定義される。 状況変数の値は、デコータの再開使用を許容1−るため
全体的に維持することかできる。 一変1ノと各り一 1          データ・バッファにおけるその
時の要素に対1−るポイン タ。これは、テコータが呼出 される時、常にスペースを 指示する。 補則的なアドオン・データに current margin last ecode aint irst buffe−r element last。 har 1dth abel tring 対して分析されるその時の 要素に対するポインタ。 マージンになるよう決定され た最後のスペースに対する ポインタ。 データ・バッファにおける データが復号されたか不良と して排除された最後の点に 対するポインタ。このポイン タは、復号の試みが行なわれ なかったデータに対する後方 向における復号の試みを制限 する。 データ・バッファにおける 最も古い妥当データに対する ポインタ。 その時のセグメントにおいて 復号されたi後の文字におけ る要素のl】の和 ASSliストリンクとじて segment tring ddon tring wd ata available continue ecode ecode 格納された完全に形成された ラベルの復号された文字 ASCIIストリングとして 格納されたセグメントの復号 された文字。これらはセグ メント・ストアにおいて蓄え られる。 ASCIIストリングとして 格納されたアドオン・セグメ ントの復号された文字。 プール間数;バッファが前方 向における復号を行なう要素 を更に有するならば、真 プール関数;復号の際、その 時の要素におけるバッファが 良好なデータのように見える 時、真 前方向のバッファの復号を試 みる時は、真(もし後方向な らば、偽) kwd a ta available ddOn ata available canし1nue ecode ddon wd ecode ddon ound segment reverse プール開数:もしバッファが 後方向に復号を行なう要素を 更に有するならば、真 プール関数;もしバッファが アドオンのため復号を行なう 要素を更に有するならば、真 プール関数;復号の際、その 時の要素までのバッファが 良好なデータのように見える 時、真 プール関数;復号の際、前方 向におけるバッファの復号を 試みる時は、真(もし後方向 ならば、偽) プール関数:セグメントが セグメント・バッファに 入れられた時、真 プール間数:セグメントが 中央ハンドからマージンまで 復号されたならば、真 fou++d addon ound abel ariLy its addon arity segment t、ype segment tore ias プール開数:アドオン・セグ メントがアドオン・バッファ に入れられた時、真 プール関数;ラベルがラベ ル・ストリングに入れられた 時、真 復号されたセグメントのパリ ティ・パターンを表わす6つ のバーの列。1つのビットが 偶数パリティを示す。 復号されたアドオン・セグ メントのパリティ・パターン を表わす2または5ピツ・トの 列。1つの1ビツトは偶数 パリティを示す。 セグメント・バッファに おけるセグメントの形式を 示す変数(UPC−A右側、 EAN−13左側、等) ASCIIストリングとじて 復号されたセグメントを格納 するバッファ列 daLa buffer      走査された要素の
巾を表わす数列。これらはバーとスペー スとの間で交番しなければな らない。 (註)このアルゴリズムの実際の構成においては、上記
のいくつかを表わすため1つの変数を使用することが可
能である。これらの変数は、アルゴリズムの記述におけ
る更に明瞭にすることを許すため分離された。 9.2.2 1jづξ数 定数の値は、本節において識別される。この定数は、ア
ルゴリズムの記述において名称により参照される。 数 Lhreshold 1.2&:I  25/70  
  文字中に対する和の35770    比率として
表わされambiguity cale char rati。 1n char raLi。 magin  5caler 45/70 2/3 1.25 0.80 1.75 る2広の和の加重の 基底をなすよう用い られた判定点。 曖昧性の分解能に 対する文字の要素中 を基準化するため 利用される。 前の文字に対するそ の時の文字における 要素の和の最大比率 1 / wax char rati。 はmin char ratioで ある。 マージン・ガード・ バーの和(2つの バー、プラススペー スの2倍)を基準化 するため用いられ、 これを文字IJと比較 できるようにする max margin atjO +111n margin max  marg」口 c h a r rati。 rati。 1.375 因数 マージンに対するセ グメントの最初の共 用における要素の和 の最大比率(マージ ンは、マージン・ス ケーラ定数により乗 じられる)。1/ma x marginchar rati。 はrIJin margin charratioであ
る。 マージン要素として 許与するため、次の 2つのバー、プラス 次のスペース(次の 3つの要素、前後い ずれの方向)の2倍 の和に対する白のス ペースの最小比率。 ラベル・セグメント maX  like element 1.5 rati。 maX ar 10 ar addon  guard ratio。 addon  guard raLi。 2.5 1.5 とアドオン・セグメ ントとの間の適法間 隙を許与するため、 次の2つのバー、プ ラス次のスペース (次の3つの要素、 前後いずれの方向) の2倍の和に対する 白のスペースの最大 比率。 2つの1モジユール の広い要素の双方が バーであるか、ある いは共にスペースで ある時、こわら要素 の最大比率。 アドオン・セグメン トの最初のパー (最初の要素)に 対する2番目のパー (3番目の要素) の最大および最小 比率。 9.2.3  定)ぶり1出 threshold  1,2  &  3ambig
ujty cale これらの数値の選択について の詳細は、9.2.4.1節 に配転される。基本的には、 この値は文字(文字[1])に おける全ての要素の和に対 する文字の2項の和の公称 比率間の中点である。公称 比率は2/7.3/7. 4/7および5/7である ため、閾値は2.5/7 、3.5/7および4.5/
7として設定 される。 これは、偶数の1.7の曖昧 性を分解する時、9,2゜ 4.1節に述べるように、 スケールI2に対する定数と char rati。 して用いられる。12に対 するI、のあり得る比率が 1/3および1であるため、 ■2を273 (0,6667)で スケーリングした結果は xi2s;rび3/2の比率と なる。判定点として1の比率 を選択すると、これら2つの 極値間の中点付近となり、 これら要素の単純な大きさの 比較(即ち、どちらが大きい か)を許容する。 この値は、点の速度および ラベルの印刷公差において 生じ得る変動に基いて選択 される。使用される走査 装置について更なる情報が 得られるまで、1.25が用い られる。例えば、回転する 多角形スキャナは一般に、 argin caler 共振スキャナよりも小さな 点速度の変動を有する。 共振スキャナは、従って、 多角形スキャナよりも大きな 範囲の文字比率(大きなwax char ratio定数)を必要と することになる。 この数値は、マージン・ ガード・バンドに対する 「文字中」を計算するため 使用される。測定される巾 (パー+2*スペース)は 名目的には4モジユールで ある。7 / 4 (1,75)で 乗じれば、7つのモジュール の擬似+1J (公称文字中)を 生じる。この数値は次に、 ラベルにおける後の文字 と直接比較することがで きる。 maX  magln char rati。 min margin  raLi。 マージン「文字中」は直接 測定されるのではなく計算 されるため、その精度は 小さくなる。こる値 (2,0)は wax char ratioよりも寛やかに選択され
たものであるが、 それでも1つのセグメント における文字に対するマー ジン・ガード・バーの相互の 比較を許容する。 公称マージンの白のスペース は7つのモジュール巾で ある。1つのラベル内の最も 大きな要素は4モジユール である。判定点として中点 を選択すれば、5.5モジユー ルの値を得る。このマージン 比率は、ガート・バンドの バー、プラス、スペースの 2倍を用いて計算される。 max margin rati。 公称要素については、これ は4モジユールとなる。 従って、閾値点は5.5/4= 1.375に設定される。 この値は、補足的なアドオン ・セ・グメントとこれが付属 する標準的なUPC/EAN セグメントとの間の間隙の サイズを制限するため用い られる。アドオン・データ は、ラベルの一部をなさ ない走査データからやや 容易に作られる。間隙サイズ の上限は、ラベルの一部で ないデータが無効のアドオン を行なうことの防止を助け る。アドオン・セグメント のガード・バンドの巾の和 は、5つのモジュールで ある(スペースは2回加算 max  1ike raLi。 element max  addon  guard ratio。 win  addon  guard rati。 ar ar される)。3.0のmax marginratioは
、15までのモジュー ルの間隙を許容する。公称 間隙サイズは7モジユールで あるため、これは妥当ラベル における偏差に対する充分な 余地を与える。 この値は、2つの1モジユー ルの類似要素が同じである ことを検証するため用い られう。次に大きな要素 は2モジユールであり、 従って中点(1,5)はこの テストのための最善の 判定点となるように選択 される。 これら数値の基底は、バー ド・バンド・比率が名目的に 2となる(2番目のバーは 名目的に2モジユール巾で ある)点を除いて上記の ものと類似している。値1.5 および2.5が、比率の値1. 2および3の間の判定 スペースにおける中点で ある。 9.2.4  二封庶己dL!友払 9.2.4.1  文1f回1号 UPC/EANデコーダは、文字認識機能のほとんどに
対する「類似エツジ」測定法を用いることができる。即
ち、測定はバーの前(後)エツジから次のバーの後(前
)エツジまで行なわれる。デコーダが、バー/スペース
対における個々の要素の巾を加算して、2積和と呼ばれ
る適当な類似エツジ測定を決定する。upc文字の場合
は、2項の和、即ちT、およびT2が計算される。これ
らは、それぞれ、第1のバー、第1のスペース、および
第1のスペース、第1のスペース、第2のバーの和とし
て定義される。この定義および以降の定義は、復号され
る文字の最初の要素がバーであることを前提とする。 もし第1の要素がスペースであるならば、文字の4つの
要素の順序は反対でなけわばならない。和TおよびI2
は、2乃至5のモジュールの範囲の値を生成する。この
ため、和の16の可能な組合せ間を識別1゛る能力を提
供する(第9.1表)。この16の組合せの内12が結
果として一義的なUPC/EAN文字の定義をもたらす
。残りの4つは、・曖昧な文字対(偶奇パリティ1,7
および2,8)を示す。 この2項の和は、これらの文字を一義的に識別するに充
分な情報を与えるわけではなく、従フて更に測定を必要
とする。ごれらの測定の性格については、本節において
後で論述する。文字の最後のスペースは2項の和の生成
のためには使用されないことに注意。 こわは、文字の終りのスペースにおける誤りの公差が文
字の他の要素よりも遂かに大きいためである。 各2項の和のモジュールにおけるサイズを決定するため
、最初にこれを総文字巾(T)て除すことにより正規化
される。この総文字巾は7モジユールと定義されるため
、各相の干ジュールの大きさは総文字巾の1/7と関連
している。これらの51算を行なえば、T1の解釈に関
して下記の判定ルールを確立することができる。即ち、 7       丁 但し、xlはモジュールに藺する適当な判定閾値である
。 決定スペースにおける中点にあるxIに対する値を選択
することにより1下式を得る。即ち、0「述のように、
T1およびI2の4つの組合せのための曖昧な対の適正
文字を決定するためにより多くの情報か必要となる。T
、およびI2は、パリティ、および特定の曖昧な文字対
(1,7または2.8)を決定するのに充分な情報を提
供する。 この曖昧性の分解は、文字の第1のスペースと第2のバ
ー(−i字のそれぞれ第2と第3の要素)、あるいは第
1のバーと第1のスペース(第1と第2の要素)を利用
することにより行なうことができる。第2の要素に対す
る第3の要素の比率(13/12 )、および第2の要
素に対する第1の要素の比率(工、/1□)を計算して
T式を得る。即ち、 文−i    LL/ユL   LLZ上り偶  1 
     〜11 偶  7       1/:J          
1/3奇  1         1        
   1/2笥 7    3       2 偶  2       2          2偶 
 6       1/2         172奇
 2     172       3奇  8   
    2          1偶1.7を除いて、
各曖昧対の分解能はどの要素が大きいかの判定のみを必
要とすることに注意。 偶1.7は、比較に先立ち、基準化因数を必要とする。 中点の選択は、2/3の因数を得る。このため、文字の
曖昧さを分解するための判定剤は下記の通り。即ち、 偶1 7:12*X4>1.     偶 7、サモナ
ければ、偶 1 奇1 7:I2 >  1. −一→ 奇 1、さもな
ければ、奇 7 偶2 8:I、、  >  12      偶 2、
さもなければ、偶 8 奇2 8:I3  >−I2 −一→ 奇 8、さもな
けわば、奇 2 但し、Xイ=2/3=  0.66679.2.4.2
  セグメントの′−0適正なフレーミングは、セグメ
ントがマージンから中央バンドへ復号されることを要求
し、あるいはもしデコーダが直前に中央バンドで終るセ
グメントを認識したならば、中央バンドからマージンへ
復号されることを要求する。 スキャナがあるセグメントの一部、中央バンド、および
隣接するセグメント全体を通過した場合、復号は後方向
、即ち遭遇した許りのマージンから中央バンドの方向へ
行なわれることになる。 上記の文字認識法は常に「妥当なj文字を戻すため、真
に妥当しないデータを排除するある他の手段を用いなけ
ればならない。使用される主な方法は、セグメントの文
字間の相対的な巾の測定である。もし文字中の検査が合
格すれば、妥当パリティ・パターンの二次的な検査が行
なわわる。 9.2.4. 3−之ヱLyIL号 前に論議したように、UPC/EANラベルのセグメン
トは無作為な順序において走査することができるイ唯一
の例外は補足的なアドオン・データであり、これは妥当
U PC−AまたはEAN−8の右半部またはUPC−
Eセグメントと関連して復号されねばならない。ラベル
は、各セグメントにおける符号化された文字のパリティ
−パターンを用いることにより復号されたセグメントか
ら再構成される。第9.2表および第9.3表は、ラベ
ルのセグメントに対する妥当パリティ・パターン、およ
び種々のラベルを構成するセグメントの許された組合せ
を識別する。 多くのラベルは、同しセグメントの一部を含む。デコー
ダは、複雑さを減殺する順序にラベルを組立ててセグメ
ントの代替エラーを最小限度に抑えるように試みなけれ
ばならない。 例えば、デコーダは、はとのどのセグメントを含むため
、UPCD−5ラベルを最初に試みることにより開始す
べきである。もし不成功であればD−4ラーベル11、
等を試みるべきである。 人−一部 一パターン* 0EOEE 0EEOE 0EEEO EOOEE EEOOE EEEOO EOEOE EOEEO EEOEO EEOOO EOEOO EOOEO EOOOE 0EEOO 0OEEO 0OOEE 0EOEO 0EOOE 0OEOE ooooo。 EEEEE 00EEE EOO EEO OOE OEO EOE 0EE D      0000 EEE ヤグメントーバリティ・パターン (1) (2) (3) (4) (5) (6) (7) (8) (9) (o)   upc (1)       〃 (2)       〃 (3)       〃 (4)        // (5)       〃 (6)      〃 (7)       〃 (8)       〃 (9)       〃 (L)   UPC−A (R)UP(ニー八、E/1−13.VER5−DER
S−D )l 〃 〃 〃 7ノ EAN−8,VCl2 /ノ〃 ##′9 ・ 2 バー71ン ス一一一二り 第93  1ラベル ゛告 9.3  UP’CEAN    アレイ1 ム特定の
復号アルゴリズムは下記の如きものである。UPCアル
ゴリズムに入る前に、最初にセグメント・ストア・アレ
イがクリアされ、最後の復号点が最初のバッファ要素に
設定されねばならない。ポインタiは大きな白いスペー
スに設定されねばならない。前方向に復号する時、どん
なテストの失敗もアルゴリズムからの退出をもたらす結
果となり、conLinue decode変数が偽に
設定される。逆方向の復号の際は、どんなテストの失敗
もcontjnue decodeを偽に設定し、(後
方向への別の探索を阻止′1″るため)変更可能な最後
の復号点およびその時の要素のポイン−3x (i )
をその時のマージンに設定して、アルゴリズムを再開し
なければならない。 9.3.1  もし連続的な走査およびセグメントのな
い状態が暫時見出されるか、あるいはトリガーが丁度引
かれた詐りであるならば、セグメント・バッファをクリ
アする。このことは、異なる項目からのセグメントの組
合せを阻止して使用された走査ヘッドの特性に依存する
ように管理されねばならない。 9.3.2  あるマージンを後方向に探す。 もしiと最後の復号点との間の差が最小セグメントの大
きさ(4つの文字セグメント−26要素)と等しいかあ
るいはこれより大きけねば、ステップ9.3.10を行
なフて、逆方向にマージンについて検査する。もしマー
ジンが見出されたならば、 最後の文字巾をマージン・スケーラ* (要素(i−1)+2*要素(i−2)十要素(i−3
))に設定する。 −continue decod−eをiに設定する。 −その時のマージンをiに設定する。 −il?:1−(2*フレームrj]−t )に設定す
る(復号する次の文字の最初の要素を指示するため) −fwd decodeを偽に設定する。 −パリティ・ビットおよびセグメント・ストリングを空
にリセットする。 9.3.3  もしcontinue decodeが
偽であれば(マージンを後方向に見出さなかったならば
)、マージンを前方向に探し、もし調べられた前方向に
なるよう使用できるフレーム巾要素より少ない要素があ
れば、待機する(マージン・パターンを見出すに充分で
ない要素)。もし充分でなければ、ステップ9.3.1
0を行ない、前方向のマージンを調べる。マージンが見
出されれば、 1最後の文字巾をマージン・スケーラ*(要素(i+1
)+2*要素(i+2)十要素(i+3))に設定する
。 −continue decodeを真に設定する。 −その時のマージンをiに設定する。 −iをi+フレーム巾に設定する(復号する次の文字の
最初の要素を指示するため) −fwd decodeを真に設定する。 −バリティ・ビットおよびセグメント・ストリングを空
にリセットする。 9.3.4  もしcontinue decodeが
偽ならば、打切る(いずれの方向にもマージンを見出さ
なかった)。 9、:l  5  もしcontinue decod
eが真であり、fad decodeが偽ならば、ステ
ップ9.3.11を行なって、妥当セグメントを後方向
に探す。もしcontinue decodeが真であ
り、fwd decodeが真ならば、ステップ9.3
.16を行なって妥当セグメントを前方向に探す。 9.3.6  もしセグメントが見出されたならば、ス
テップ9.3.26を行なうことによりアドオンを調べ
る。 9.3.7  このステップは削除。 9.3.8  前に捕捉されたセグメント・ストリング
をセグメント・ストア・アレイに加算する。 見出されたセグメントを偽に設定し、セグメント・スト
リングを空に設定する。 9.3.9.1  もしconLinue decod
eが真でありfwd decodeが真ならば、ステッ
プ9.3.16を行なう(1つのラベルの次のセグメン
トの読出しを行なうよう試みる)。 9.3.9.2  ステップ9.3.38を行なうこと
によりラベルを作るよう試みる。もしラベルの作出が成
功したならば、見出したラベルを真に設定し、ラベル形
式を設定する。 9.3.9.3 戻り。 9.3.10  マージン検査アルゴリズム:もしfw
d decodeが真ならば、要素(i)/要素(i+
1)+2*要素(i+2)十要素(i+3 ) ) >
 min margin ratioであることを検査
する。もしf@d decodeが偽ならば、要素(i
)/要素(i−1)+2*要素(i−2)十要素(i 
+ 3 ) ) > lll1n margin ra
Lioであることを検査する。もし−fwd deco
deが偽ならば、要素(i)/要素(i−1)+2*要
素(i−2)+要素(i −3) >akin i+a
rgin rat:ioであることを検査する。もしO
Kでなければ、テストは失敗し、戻る。もしOKならば
、更にfwd decodeが真ならば、比率=要素(
i+1)/要素(i+3)を計算する。もしfwd d
ecodeが偽ならば、比率=要素(i−1)/要素(
1−3)となる。もし比率> ll1ax 1ike 
element radioあるいは(1/ratio
 ) > wax 1ike element  ra
tioであれば、テストは失敗に終り、戻る。さもなけ
れば、テストは通り、元に戻る。 9.3.11  後方向セグメント・アルゴリズムの取
得 データが後方向に得られるかどうかを判定する(i≧後
の復号点+1)、もし得られなければ、continu
e decodeを偽に設定してステップ9゜3.14
へ進む。 9゜3.12 ステップ9.3.21乃至9゜3.24
を用いて、存在し得るセグメント文字を取得する。もし
成゛功ならば、 一文字をセグメント・ストリングに加算する。 −パリティ・ビット・マツプを左に1ビツトだけシフト
する。 一文字が偶数パリティであるならば、1をマツプに加算
する。 1最後の文字巾をその時文字rlJに設定する。 −フレーム巾をiから差引く。 さもなければ、ステップ9.3.14へ進む。 9.3.13  もしセグメント・ストリングの長さが
6より大きければ、continue decodeを
後に設定し、ステップ9.3.15へ進む(セグメント
・スト・リングにおける文字が多過ぎる)。 さもなければ、ステップ9.3.11へ進む。 9.3.14 もしセグメント・ストリングの長さが4
または6でなければ、ステップ9.3゜15へ進む。さ
もなければ、もし要素(i)がバーでなければ、ステッ
プ9.3.15へ進む(フレーミングの問題)。さもな
ければ、もし文字巾が小さ過ぎなかったならば、ステッ
プ9゜3.15へ進む(中央バンドでない)。さもなけ
れば、復号された文字が曖昧文字(l、2.7または8
)でなければ、ステップ9.3.15へ進む(中央バン
ドでない)。さもなければ、最後の文字lJをその時の
1】に設定し、iを1だけ減分し、ステップ9.3.2
1乃至9.3.24を用いて別の文字を取得する。もし
成功せず、あるいは復号文字が曖昧文字でなければ、ス
テップ9.3.15へ進む。さもなければ、ステップ9
.3.25を用いて、セグメント・パリティ・マツプを
判定し、逆は偽に設定される。もしセグメント典型的が
OKならば、見出されたセグメントを真に設定し、セグ
メント文字がUPC−Aの右半分、あるいはEAN−8
の右半分、あるいはUPC−Dのnlであるかどうかを
調べ、セグメントがこれらの形式の1つ(逆方向に走査
された)であれば、セグメント・ストリング桁を逆にす
る。 9.3.15  最後の復号点をその時のマージンに設
定する。continue decodeを偽に設定し
、iをその時のマコジンに戻るよう設定する。アルゴリ
ズムの主要部へ戻る。 9.3.16  前方向のセグメント・アルゴリズムの
取得。 データが前方向で得られるかどうかを調べる(i≦最後
のバッファ要素+フレーム11)。もし得られなければ
、待機。 9.3.17  ステップ9.3.21乃至9゜3.2
4を用いて、可能なセグメント文字を取得する。もし成
功すれば、 一文字をセグメント・ストリングに加算する。 −パリティ・ビット・マツプを左に1ビツトだけシフト
する。 一文字が偶数パリティならば、1をマツプに加算する。 1最後の文字巾をその時の文字巾に設定する。 −フレーム巾をiに加算する。 さもなければ、ステップ9.3.19へ進む。 9.3.18  もしセグメント・ストリングの長さが
6より小さければ、ステップ9.3.16へ進む。さも
なければ、continue decodeを偽に設定
して元に戻る。、 9 、 3 、 19  continue deco
de を偽に設°定する。もしセグメント・ストリング
の長さが4または6ならば、元に戻る。さもなければ、
要素(i)がバーならば、ステップ9.3.20へ進む
。さもなければ、文字中が小さ過ぎなかフたならば、元
に戻る(中央バンドでない)。さもなければ、復号文字
が曖昧文字(1,2,7または8)でなければ、元に戻
る(中央バンドでない)。さもなければ、最後の文字中
をその時の巾に設定し、iを1だけ増分し、ステップ9
゜3.21乃至9.3−24を用いて別の文字を取得す
る。もし成功しないか、あるいは復号文字が曖昧文字で
なければ、元に戻る。さもなければ、ステップ9.3.
25を用いてセグメント・パリティ・マツプを復号する
(逆のフラッグが偽となる)。もしセグメント形式がO
Kでなければ、元に戻り、さもなければ、見出されたセ
グメントを真に設定して、セグメント形式がUPC−A
の右半分または−EAN−8の右半分、あるいはUPC
−Dnlであるかを調べ、セグメントがこれらの形式の
1つ(逆に1走査された)であればセグメント・ストリ
ング桁を反転する。次いで、conLinuedeco
deを真に設定しく中央ハントから外れるように復号を
試み)、iをi+フレーム[1]に設定し、元に戻る。 9.3.20  マージンで終るセグメントもし文字が
大き過ぎなければ、元に戻る(マージン文字でない)。 iを3だけ増分し、fwd decodeを偽に設定し
、ステップ9.3.10を行なってマージンを調べる。 fwd decodeを、偽に設定する。 もしマージンが0にでなければ元に戻り、さもなければ
、ステップ9.3.26を用いてセグメント・パリティ
・マツプを復号する(逆のフラッグは真)。もしセグメ
ント形式がOKでなければ元に戻り、さもなければ、見
出されたセグメントを真に設定し、セグメントが形式U
PC−Aの右半分、またはEAN−8右半分、あるいは
UP−CDnlでないかどうかを調べ、もしそうでなけ
れば、セグメント・ストリングを反転する(左に半分後
方向に走査)。ステップ9.3.8を行なう。最後の復
号点をiに設定し、その時のマージンをiに設定する。 ステップ9.3.26を行なフてアドオンを探す。ステ
ップ9.3.3に進み、別のラベル・セグメントを見出
すよう試みる。 9.3.21  文字の取得。 iか15i+3までの要素を加算して、文字巾を取得す
る。もし要素(i)がバーであれば、2項の和1を要素
(i)十要素(i+1)に、また2積和2を要素(i+
1)十要素(i+2)に設定1−る。さもなければ、2
順相1を要素(i+2)十要素(i+3)に、また2積
和2を要素(i+1)十要素(i+2)に設定する。比
率1を2順相17文字巾、比率2を2積和2/文字巾に
設定する。もし比率1く閾値1であれば、重みを0に設
定し、さもなければ、比率1く閾値2ならば、重みを4
へ設定し、さもなければ、比率1〈閾値3ならば、重み
を8に設定し、さもなければ、重みを12に設定する。 もし比率2〈閾値1ならば、何もせず、さもなければ、
比率2く閾値2ならば、重みを重み+1に設定し、さも
なければ比率2〈閾値3ならば、重みを重み+2に設定
し、さもなければ、重みを重み+3に設定する。 9.3.22  値の重みを用いて、下記の文字テーブ
ルに指標付けを行なう。即ち、 0:文字=6、偶数=真:8二文字=9、偶数=真:1
:文字=0、偶数=偽;9:文字=2、偶数=偽:2:
文字=4、偶数:真;lO二文字=1.偶数=真:3:
文字=3、偶数=偽、 II:文字=5、偶数=偽:4
二文字=9、偶数=偽:12二文字=6、偶数=偽;5
二文字=2、偶数=真:13二文字=0、偶数=真;6
:文字:=1、偶数=偽:14:文字=4、偶数=偽;
7:文字=5、偶数=真;15:文字=3、偶数=真;
例えば、もし重み=4ならば、復号文字=9、および偶
数パリティは偽に設定される。 9.3.23  曖昧性の検査 もし文字=2および要素(i)がスペースであり、偶数
が真であり、要素(i +2) >要素(i+1)であ
れば、文字を8に設定する。もし文字=2および要素(
i)がバーであり、偶数が真であり、かつ要素(i +
2) <要素(i+1)であれば、文字を8へ設定する
。もし文字=2および要素(i)がスペースであり、偶
数が偽であり、要素(i+2)>要素(i+1)であれ
ば、文字を8を設定する。 もし文字=2であり、要素(i)がバーであり、偶数が
偽であり、要素(i + 2 ) > (i + 1 
)であれば、文字を8に設定する。 もし文字=1であり、要素(i)がスペース、偶数が偽
であり、かつ要素(i)〉要素(i+1)であれば、文
字を7に設定する。 もし文字=1であり、要素(i)がスペース、偶数が真
であり、かつ要素(i+2)*暖味性スケール〉要素(
i+3)ならば、文字を7に設定する。 もし文1字=1であり、要素(i)がバー、偶数が真で
あり、かつ要素(i+1)*暖味性スケール〉要素(i
−)゛であれば、文字を7に設定する。 9.3.24  巾の検査 もし文字中/最後の文字中> IIIax char 
rati。 ならば、元に戻り、文字が大き過−ぎの表示を行なう。 もし文字中/最後の文字rl] < (1/ m1nc
har ratio)ならば、元に戻って文字が小さ過
ぎの表示を行なう。さもなければ、元に戻フて成功の表
示を行な、う。 9.3.25  セグメント・パリティ復号もし逆が真
であれば、パリティ・ビットの順序を反転する。もしセ
グメント・ストリングの長さが6であれば、セグメント
形式および下記の索引テーブルからの符号他桁を設定す
る。 即ち、 *oo (oooooo)、セグメント形式=UPCA
  L、符号他桁−〇 *07 (OOOEEE)、セグメント形式=UPCD
、  符号他桁=0 *OB (OOEOEE)、セグメント形式=EAN1
3L−1符号化桁=1 *OD (OOEEOE)、セグメント形式=EAN1
3  L、符号他桁=2 *OE (OOEEEO)、セグメント形式=EAN1
3  L、符号他桁=3 +13 (OEOOEE)、セグメント形式=EAN1
3  L、符号他桁=4 +15 (OEOEOE)、セグメント、形式=EAN
13  L、符号他桁=7 * 16 (OEOEEO)、セグメント形式=EAN
13  L、符号他桁=8 +19 (OEEOOE)、セグメント形式=EAN1
3  L、符号他桁=5 *IA (OEEOEO)、 セグメント形式=EAN
13  L、符号他桁=9 * I C(OEEEOO)’、セグメント形式=EA
N13  L、符号他桁=6 +23 (EOOOEE)、セグメント形式=UPCE
、  符号他桁=6 +25(EOOEOE)、セグメント形式=UPCE、
  −符号他桁−9 *26 (EOOEEO)、セグメント形式=UPCE
、  符号他桁=5 +29 (EOEOOE)、 セグメント形式=UPC
E、  符号他桁=8 *2A (EOEOEO)、−t!グメント形式=UP
CE、  符号化桁−7 12C(EOEEOO) 、セグメント形式=UPCE
、  符号化桁=4 131 (EEOOOE)、セグメント形式=UPCE
、  符号化桁=3 *32 (EEOOEO)、セグメント形式=UPCE
:   符号化桁=2 *34 (EEO,EOO)、セグメント形式=UPC
E、  符号化桁=1 *3B (EEEOOO)、セグメント形式=UPCE
、  符号化桁=0 *3F (EEEEEE)、セグメント形式=UPCA
  R1符号化桁二〇 例えば、2 A’のパリティ・ビット・マツプがセグメ
ント形式を−UPCEに、また符号化桁を7に設定する
ことになる。もしセグメント形式=UPCEであれば、
符号化桁をセグメント・ストリングの終りに加算する。 もしセグメント形式=EAN  13  Lであれば、
符号化桁をセグメント・ストリングの初めに加算する。 もしセグメント・ストリングの長さ=4ならば、セグメ
ント形式および下記のテーブルからの符号化桁を設定す
る。即ち、 *oo (oooo)、セグメント形式=ENA8  
L、    符号化桁=0*03 (OOEE)  セ
グメント形式=UPCD  n6、  符号化桁=6 $05 (OEOE)、セグメント形式=UPCD  
n5、  符号化桁=5 *0’6(OEEO)  セグメント形式=UPCD 
 n2、  符号化桁=2 *09 (EOOE)  セグメント形式=UPCD 
 n3、  符号化桁=3 IOA (EOEO)  セグメント形式=UPCD 
 n4、  符号化桁=4 *OC(EEOO)  セグメント形式=UPCD  
nl、  符号化桁=1 *OF (EEEE)、セグメント形式=ENA8  
R1符号化桁二〇 もしパリティ・ビット・マツプがテーブルに含まれてい
なければ、エラー表示を設定して元に戻る。 9.3.26  補足的アドオン・セグメントを調べる
。即ち、 continue decode addonを偽に設
定する。もし見出されたアドオンが真に設定されなかっ
たならば、見出したその時のセグメントを調べる。もし
その時のセグメント形式がUPCEであり、forwa
rd decodeおよび逆が偽(セグメントはマージ
ンから中央ボードへ後方向に復号された)ならば、ia
をその時のマージン−34(E−セグメントの巾)に設
定し、fwd decode addonを偽に、また
continue decode addonを真に設
定する。 もしその時のセグメント形式がUPCEおよびfyvd
 decodeが真であり、逆が偽(セグメントがマー
ジンから中央バンドへ前方向に復号された)ならば、i
aをその時のマージン+34(E−セグメントの11]
)に、fwd decode addonを真に、また
cor+Ljnue decode addonを真に
設定する。 もしその時のセグメントがUPCA右側あるいはEAN
  8右側であり、fwd decodeおよび逆が共
に真(中央バンドからマージンへの前方向復号)ならば
、iaをiに設定し、fwd decodeaddon
を真に設定し、continue decode ad
donを真に設定する。 もしその時のセグメントがUPCA右側またはEAN 
 8右側であり、fwd decodeが真であるが、
逆は偽である(マージンから中央バンドへの前方向復号
)ならば、iaをその時のマージンに、fwd dec
ode addonを偽に、またcontinuede
code addonを真に設定する。 もしその時のセグメントがUPCA右側またはEAN 
 8右側で°あり、fad decodeおよび逆が共
に偽である(マージンから中央バンドへの後方向復号)
ならば、iaをその時のマージンに設定し、fwd d
ecode addonを真に、またcontinue
decode addonを真に設定する。 9.3.27  もしcontinue decode
 addonが真(あり得るアドオンを含むセグメント
が見出された)ならば、アドオン・パリティ・ビットを
クリアして、ストリングをアドオンする。もしcont
inue decode addonが真であり、fw
d decodeaddonが真ならば、得られるアド
オン・データを真に設定する。もしこれより小さく要素
に相当するフレームl」がデータ・バッファ内にあれば
、待機する(aiが最後のバッファ場所−フレーム巾ヨ
リ大きイ)。もしcontinue decode a
ddonが真でありfwd decode addon
がであり、aiが13+第1のバッファ要素より大きい
かあるいはこれと等しい(少なくとも2つの文字のアド
オンを行なうに充分である)ならば、得られるアドオン
・データを真に設定し、さもなければ、これを偽に設定
する。−もし得られるアドオン・データが偽に設定され
るならば、continue decodeaddon
を偽に設定して元に戻る(アドオン・セグメントを行な
うには充分でない後方向データではない)。さもなけれ
ば、fwd decodeaddonが偽ならば、ステ
ップ9.3.31へ進む。 9.3.28  前方向のアドオン復号もしアドオン・
ストリングが空であれば、少なくとも2*フレームiJ
カウントがバッファにおいてに得られる(ai≦最後の
要素−2*フレーム巾)まで待機し、さもなければ(ア
ドオン・ストリングが空でなければ)、少なくともフレ
ーム巾カウントがバッファで得られる(ai≦最後の要
素−(フレーム巾+1))まで待機する。 9.3.29  もしアドオン・ストリングが空ならば
本節の全てを行なう。 要素(ai)/要素(a i + 1 )十要素(a 
i +2)十要素(ai+3)がwin Illarg
in ratioより大きいか、あるい−はmax m
argin ratioより小さいことを調べる。もし
OKならば、要素(ai+3)/要素(ai+2)がl
l1n addon guard barratioよ
り大きいか、あるいはmax addon guard
bar ratioより小さいかを調べる。もしOKな
らば、要素(ai+2)/要素(ai+1)がmax 
1ike elemenLraLioより小さいか、あ
るいは(1/max 1ike element ra
tio)より大きいかを調べる。もしOKならば、ad
don IasL charwidthを(要素(ai
+1)+2*要素(ai+2)十要素(ai+3))*
975に設定し、aiをai+フレームlコに設定する
。もしどのテストもOKであれば、continue 
decode addonを偽に設定する。 9.3.30  もし得られるアドオン・データが真で
あり、continue decode adonが示
であれば、ステップ9.3.21乃至9.3.23を行
なって、文字を取得しく直角IJは調べない)、さもな
ければ、元に戻る。もしアドオン・ストリングが空であ
れば、要素(ai−3)十要素(ai−2)を文字中に
加算し、さもなければ、要素(ai−2)十要素(ai
−1)を文字中に加算する。もし文字中/addon 
1ast char width> max clea
r raLioであるか、あるいはく(l/max c
har ratio)であれば、continue d
ecodeaddonを偽に設定し、さもなければ、復
号文字をアドオン・ストリングに縦続させ、aiをai
+フレーム+1J+ 2に設定し、1ast char
 wdilをchar widLhに設定し、パリティ
・ビット(偶数=1)をアドオン・パリティ・ビットに
従属させ、もしアドオン・ストリングが5つの要素(I
k大)を有するならば、continue decod
e addonを偽に設定する。 9.3.31  後方向の復号アドオンもしアドオン・
ストリングが空であり、ガード・バー プラス第1の文
字を作るにデータが充分(ai、!第1のバッファ素子
+2*フレーム巾)ならば、得られるアドオン・データ
を真に設定し、さもなければ(アドオン・ストリングが
空でなければ)、バッファに少なくともフレーム巾カウ
ントがあれば−(ai≧第1のバッファ素子子フレーム
1Jならば)、得られるアドオン・データを真に設定す
る。 9.3.32  もし得られるアドオン・データが真で
ありアドオン・ストリングが空ならば、本節の全てを行
なう。 素子(ai)/(素子(ai−1)十素子(ai−2)
十素子(ai−3))がmin margin rat
i。 より太きく l0ax a+argin ratioよ
り小さいことを調べる。もしOKならば、素子・(ai
−3)/素子(ai−2)がwin addon gu
ard bar rati。 より大きく、かつIIIax addon guard
 bar rati。 より小さいことを調べる。もし0にならば、素子(ai
−2)/素子(ai−1)が1IaX likeele
ment ratioより小さく、かつ(1/ max
 likeelement ratio )より大きな
ことを調べる。 もしOKならば、addon 1ast char w
idthを(素子(a i−1) +2* (a 1−
2)十素子(a i −3) ) * 975に設定し
、aiマイナス(2*フレーム巾−1)に設定する。も
しどれかノテストが0にでなければ、continue
 decodeaddonを偽に設定する。 9.3.33  もし得られるアドオン・データが真て
あり、continue decode addonが
真ならば、ステップ9..3.21乃至9.3.23を
行なって文字を取得しく巾は調べない)、さもなければ
、ステップ9.3.351\進む。もしアドオン・スト
リングが空であれば、素子(ai+5)+素子(ai+
6)を文字IJに加算し、さもなければ、素子(ai+
5)+素子(ai+4)を文字中に加算する。もし文字
中/ addon 1astcbar width>a
lax char ratioであるか、あるいは< 
(1/ a+ax char ratio)ならば、c
ontinuedecode addonを偽に設定し
、さもなければ復号文字をアドオン・ストリングに従属
させ、aiをai−フレーム−2に設定し、最後の文字
中を文字中に設定し、パリティ・ビット(偶数=1)を
アドオン・パリティ・ビットに従属させ、アドオン・ス
トリングが5つの素子(最大)を有するならば、con
tinue decode addonを偽に設定する
。 9.3.34  もし得られるアドオン・データが偽な
らば、continue decode addonを
偽に設定して、主要なアルゴリズムに戻る(充分な後方
向データが得られない)。 9.3.35  もしconLinue decode
 addonが真てあり、fwd decode ad
donが真ならば、ステップ9.3.28へ進む。もし
continue decodeatldonが真であ
り、rwd decode addonが偽ならば、ス
テップ9.3.31へ進む。さもなければ、もしアドオ
ン・ストリングの長さが2あるいは5に等しくなければ
、元に戻る(妥当なアドオンではない)。 9.3.36  もしアドオン・ストリングの長さが2
なら、ば、パリティを2桁のアドオンの値のa+od 
4として計算する(例えば、もしアドオン・ストリング
が「13」ならば、パリティは13 mad4 = 1
となる)。もし計算されたパリティがパリティ・ビット
と整合しなければ、打切る。 さもなければ、見出されたアドオンを真に設定し、アド
オン形式を2− charに、設定し、元に戻る。 9.3.37  もしアドオン・ストリングの長さが5
であわば、パリティを(3*アドオン・ストリングの数
1.3.5の和+9本数2および4の和) mad 1
口として計算する。パリティ桁を下記のテーブル(基準
値0から始まる)に指標付ける。 即ち、 (*18、*14、*12、*11、*OC1*06、
*03、*OA、*09、*05)もし指標付けされた
パリティ・パターンがアドオン・パリティ・ビットと等
しければ、見出されたアドオンを真に設定し、アドオン
形式を5−charに設定し、元に戻る。 9.3.38  ラベルの組立ての試み(1つのラベル
の妥当性を判定する方法は多くの方法があり得る。ここ
に示す1つの方法は、下記の如きラベルを作るため必要
なセグメントの補則を調べる。即ち、もしUPC−Dセ
グメントが見出されたならば、UPC−D5乃至Dlを
試みる。もしD(?グメントが見出されなか〕たならば
、UPC−Aを試み、次いでE A N −13を、次
にUPC−Eを、また次にEAN−8を試みる。評価さ
れる時各ブロックにおいて検査桁がテストされる。本ア
ルゴリズムにおいて用いられるセグメントの捕捉および
ラベルの組立て方法は簡単明瞭である。 より複雑な方法を用いることもできる。1つの方法は、
特定のセグメントが見出されたカウントを記録し、新た
に走査されたデータにより置換される時を管理するルー
ルを用いる。例えば、もし特定のUPC−A−Rセグメ
ントが一回見出されたならば、異なるものが見出され、
セグメント列における古いものを新しいものと交換する
。 もし古いものが二回以上見出さねたならば、古いものを
保持して新しいものを捨てる。このため、2以上の合計
を要求することだけで、あるエラーとなり勝ちなあるセ
グメント(UPC−E、EAN−8)を見出ることを要
求することを容易にする。別の方法は、それぞれ各セグ
メントが見出された回数に一対する1組の合計を有する
2つの完全セグメント列バッファを保持することである
。最初に、バッファおよび合計が全てクリアされる。各
セグメント形式の2つまでの異なるバージョンが何回見
出されたかに対する合計を以て集められる。もし特定の
セグメント形式の3番目のバージョンが見出されると、
これは捨てられる。次いて、良好なラベルが見出された
かどうかを判定するプロセスの間、各セグメント形式毎
に2つのカウントが調べらねる。もしデータの1つのバ
ージジンが他のものより邊かに頻繁に見出されたならば
、これは受入れられる。もしデータの2つのバージョン
が周波数が見出されたならば、これは受入れられない。 例えば、もし1つのUPC−Dセグメントの01234
5が3回見出され、また1つのUPC−Dセグメント0
1B345が2回見出されたならば、そのいずれも受入
れない。もし最初のものが4回見出され、2番目のもの
が1回見出されたならば、最初のものをOKとして受入
れる。) 9.3.38.1  もしセグメント・ストア・アレイ
がUPC−Dを含むならば、ステップ9゜3.28.2
へ進み、さもなければ、ステップ9.3.38.10へ
進む。 9.3.38.2  もしセグメント・ストア・アレイ
がUPC−A−Rを含むならば、ステップ9.3.38
.4へ進み、さもなければ、ステップ9.3.38.3
へ進む。 9.3.38.3  もしセグメント・ストア・アレイ
がUPC−D−n6、EAN−8−Lおよびブロックl
の検査合計計算が0にならば(ステップ’q、3.39
)、ラベル形式をUPC−DIに設定し、見出したラベ
ルを真に設定する。全ての場合に元に戻る。 9.3.38.4  もしブロック2検査合計計算がO
Kでなければ(ステップ9.3.39)、元に戻る。さ
もなければ、ステップ9.3.38゜5へ進む。 9.3.38: 5  もしセグメント・ストア・アレ
イがUPC−D−n4およびEAN−8−Rを含むなら
ば、ブロック5の検査金言1計算を行なう(ステップ9
.3.39)。もしOKならば、ステップ9.3.38
.6へ進み、さもなければ、ステップ9.3.38.8
へ進む。 9.3.38.6  もしセグメント・ストア・アレイ
がUPC−D−n3およびUPC−D−n6およびUP
C−D−nl、およびブロック7の検査合計計算がOK
ならば(ステップ9.3゜39)、ラベル形式をU P
 C−、D 5に設定し、見出されたラベルを真に設定
する。さもなければ、ステップ9.3.38.7へ進む
。 9.3.38−7  もしセグメント・ストア・アレイ
がUPC−D−nlおよびブロック4の検査合計計算が
OKならば(ステップ9.3゜39)、ラベル形式をU
PC−D4に設定し、見出したラベルを真に設定して元
に戻る。 さもなければ、ステップ9.3.38.8へ進む。 9.3.38.8・ もしセグメント・ストア・アレイ
がtJPc−D−n3およびUPC−D−n5、および
EAN−8−R1およびブロー7り6検査合計計算がO
Kならば(ステップ9.3゜39)、ラベル形式をLI
PC−D3に設定し、見出したラベルを真に設定し、元
に戻る。 さもなければ、ステップ9.3.38.9に進む。 9.3.38.9  もしセグメント・ストア・アレイ
がUPC−D−n2およびEAN−8−R1およびブロ
ック3の検査合計計算がOKならば(ステップ9.3.
39)、ラベル形式をU PC−D2に設定し、見出し
たラベルを真に設定する。全ての場合に元に戻る。 9.3.39.10  もしセグメント・ストア・アレ
イがUPC−A−Rを含むならば、ステップ9.3.3
8.11へ進む。さもなければ、ステップ9.3.38
.13へ進む。 9.3.38.11  もしセグメント・ストア・アレ
イがUPC−A−L、およびUPC−Aの検査合計計算
がOKならば(ステップ9.3゜39)、見出したラベ
ルを真に設定し、ラベル形式をUPC−Aに設定し、元
に戻る。ステップ9.3.38.12へ進む。 9.3.38.12  もしセグメント・ストア・アレ
イがEAN−13−LおよびEAN−13の検査合計計
算がOKならば(ステップ93゜39)、ラベル形式を
EAN−13に設定し、見出したラベルを真に設定する
。全ての場合に、元に戻る。 9.3.38.13  もしセグメント・ストア・アレ
イがUPC−A−Lを含むならば、元に戻る。さもなけ
れば、ステップ9.3.38゜14へ進む。 9.3.38.14  もしセグメント・ストア・アレ
イがUPC−E、およびUPC−E’の検査合計計算が
OKならば(ステップ9.3.39)、ラベル形式をU
PC−Eへ設定し、見出したラベルを真に設定し、元に
戻る。もしUPC−Eがバッファになかったならば、ス
テップ9.3゜38に進み、さも全ければ、元に戻る。 9.138.15  もしセグメント・ストア・アレイ
がEAN−8−LおよびEAN−8の検査合計計算がO
Kならば(ステップ9.3゜39)、ラベル形式をEA
N−8に設定し、見出したラベルを真に設定する。全て
の場合に、元に戻る。 9.3.39  検査合計計算 UPC仕様ルールを用いて、1つのブロックの検査合計
を計算する。種々のブロックの定義については第9,3
表参照。もしいずれかの検査合計が0でなけわば、テス
トは失敗したことになる。 各ブロック毎の検査合計は、1つのブロックの最も右の
文字から始めて、加重因数で乗じた文字の数値を加算す
ることにより計算される。この加重因数は3および1の
いずれかである。もし加重された文字のmod 10の
和が0ならば、検査合計は正しい。 事例二文字123456789104を有するブロック
6(UPC,D−3に見出される)の場合、和は3X4
+IXO+3X1+IX9+3X8+IX7+3X6+
IX5+3X4+3X2+lX1=100゜+00 m
od lo= Oであるから、これはOKである。 Thompson−MosLek MK68tlC20
0フィクロプロセッサを使用する場合の前述のアルゴリ
ズムのためのプログラム・リスト(アセンブリ言語)を
参考資料として示す。
【図面の簡単な説明】
図面は、本発明の方法を実施するため用いることができ
るスキャナ、記憶バッファおよびマイクロプロセッサを
示す概略図である。 IO・・・電気光学式走査装置、12・・・バッファ、
14・・・マイクロプロセッサ。

Claims (1)

  1. 【特許請求の範囲】 1、1つのラベル上のバー・コード記号を走査する際、
    電気光学式走査装置により生じるビット・シーケンスか
    らなる2進走査信号を復号する方法であって、該シーケ
    ンスにおけるビットは前記バー・コード記号を構成する
    明るいスペースおよび暗いスペースと対応する方法にお
    いて、 (a)記憶バッファが前記走査装置により最後に生成さ
    れた複数のビットを含むように前記2進走査信号を該バ
    ッファに対して供給し、 (b)大きな明るいスペースを画成する前記ビット・シ
    ーケンスの一部を選択し、 (c)前記の大きな明るいスペースを画成するものに続
    くシーケンスにおけるビットに一連のテストを行ない、
    このようなビットが1つ以上のいくつかのバー・コード
    において有効である1つのバー・コード記号を走査する
    ことにより生成されたかどうかを判定し、 (d)前記バー・コード記号が有効であるコード中のバ
    ー・コード記号を復号し、 (e)前記シーケンスにおける次のビットに一連のテス
    トを行ない、このようなビットが、前に復号されたバー
    ・コード記号が有効であるバー・コードのどれかにおい
    て有効なバー・コード記号を走査することにより生成さ
    れたかどうかを判定し、 (f)前記バー・コード記号および前に復号されたバー
    ・コード記号が有効であるコード中のバー・コード記号
    を復号し、 (g)前記ラベル上の全てのバー・コード記号が復号さ
    れるまで、前記ステップ(e)乃至(f)を反復するス
    テップからなる方法。 2、前記のいくつかのバー・コードが、3オブ9コード
    、インターリーブド2オブ5コード、コーダバー(Co
    dabar)、93コード、128コードおよびUPC
    /EANコードからなるグループから選定された1つ以
    上のコードを含む請求項1記載の方法。 3、前記一連のテストの1つは、予め設定された最小お
    よび最大の要素比率レベルに対するテストされるバーの
    要素比率の比較であり、該要素の比率は、前記記号を構
    成する暗いスペースの最も狭いものの巾に対する記号を
    構成する暗いスペースの最も広いものの巾の比率である
    請求項1記載の方法。 4、前記一連のテストの1つは、予め設定された最小お
    よび最大の要素比率レベルに対するテストされるバーの
    要素比率の比較であり、該要素比率は、前記記号を構成
    する明るいスペースの最も狭いものの巾に対する記号を
    構成する明るいスペースの最も広いものの巾の比率であ
    る請求項1記載の方法。 5、前記一連のテストの1つは、予め設定される最小マ
    ージン比率レベルに対するテストされるバーのマージン
    比率の比較であり、該マージン比率は、大きな明るいス
    ペースに隣接する第1の記号を構成する第1のいくつか
    の明るいスペースおよび暗いスペースの巾の和に対する
    あるラベルにおける記号の前にある大きな明るいスペー
    スに対するあるラベル上の記号の前にある大きな明るい
    スペースの巾の比率である請求項1記載の方法。 6、前記一連のテストの1つは、閾値比率に対するプリ
    セットに対するテストされるバーの閾値比率の比較であ
    り、該閾値比率は、前記記号内の特定の明るいスペース
    または暗いスペースの巾に対する記号を構成する最も広
    い明るいスペースまたは暗いスペースの巾の比率である
    請求項1記載の方法。 7、前記一連のテストの1つは、予め設定された最大お
    よび最小の文字比率レベルに対するテストされるバーの
    文字比率の比較であり、該文字比率は、前の記号を構成
    する明るいスペースおよび暗いスペースの巾の和に対す
    る記号を構成する明るいスペースおよび暗いスペースの
    巾の和の比率である請求項1記載の方法。 8、前記一連のテストの1つは、予め設定された最大お
    よび1小間隙比率レベルに対するテストされるバーの間
    隙比率の比較であり、該間隙比率は、前記記号と隣接す
    る記号との間の明るいスペースの巾に対する記号を構成
    する明るいスペースおよび暗いスペースの巾の和である
    請求項1記載の方法。 9、前記一連のテストの1つは、予め設定された最大の
    狭い要素比率レベルに対するテストされるバーの最大の
    狭い要素の比率の比較であり、該最大の狭い要素比率は
    、前記記号における最も狭い明るいスペースの巾に対す
    る記号における最も狭い暗いスペースの巾の最大比率と
    、前記記号における最も狭い暗いスペースの巾に対する
    記号における最も狭い明るいスペースの巾の最大比率と
    の大きな方である請求項1記載の方法。 10、前記ステップ(d)が、復号されたバー・コード
    記号が、テストおよび復号を前記シーケンスにおける更
    に別のビットに対し行なうに先立ち、後方向または前方
    向の初めまたは終りの記号のどちらであるかどうかを判
    定するため検査するステップを含む請求項1記載の方法
    。 11、前記ステップ(g)が、ステップ(e)および(
    f)の繰返しに先立ち、記号の有効セットの1つである
    記号として復号される ことを保証するため復号されたバー・コード記号を検査
    するステップを含む請求項1記載の方法。 12、予めセットされた最小マージン比率レベルにより
    最後の記号を定義する前記シーケンスにおけるビットの
    マージン比率の比較のステップを更に含み、該マージン
    比率は、大きな明るいスペースに隣接する最後の記号を
    構成する最後のいくつかの明るいスペースおよび暗いス
    ペースの巾の和に対する1つのラベルにおける記号に続
    く大きな明るいスペースの巾の比率である請求項1記載
    の方法。 13、前記ビット・シーケンスにおけるビットがいくつ
    かのコードにおいて有効であるバー・コード記号を走査
    することにより生成されたかどうかを判定するテストの
    少なくともいくつかが同時に行なわれる請求項1記載の
    方法。 14、前記ビット・シーケンスにおけるビットがいくつ
    かのコードにおいて有効であるバー・コード記号を走査
    することにより生成されたかどうかを判定するテストが
    順次に行なわれることを特徴とする請求項1記載の方法
    。 15、前記ステップ(b)乃至(g)がプログラムされ
    たディジタル・コンピュータにより行なわれる請求項1
    記載の方法。 16、前記一連のテストの1つは、いくつかの予めセッ
    トされた比率に対するテストされるビットの閾値比率の
    比較であり、該閾値比率は、前記記号の全巾に対する記
    号を構成するスペースの内の2つの巾の比率である請求
    項1記載の方法。 17、1つのラベル上のバー・コード記号を走査する際
    、電気光学式走査装置により生じるビット・シーケンス
    からなるディジタル走査信号を復号する方法であって、 (a)前記電気光学式走査装置により最後に生じた前記
    ディジタル走査信号のビットを格納し、 (b)大きな白いスペースを画成する前記ビットの一部
    を選択し、 (c)前記の大きな明るいスペースを画成するものの後
    に続くシーケンスにおける多数のビットに一連のテスト
    を行なって、このようなビットがいくつかのバー・コー
    ドの1つ 以上のにおいて有効である1つ以上のバー・コード記号
    を走査することにより生じたかどうかを判定し、 (d)前記のいくつかのバー・コードの1つ以上におい
    て有効である1つ以上のバー・ コード記号を走査することにより生じたと 判定されたビットを復号する、ステップからなる方法。 18、ディジタル走査信号を復号するため、 (e)復号されたシーケンスにおけるビットに対して一
    連の別のテストを行ない、このようなビットが前記のい
    くつかのバー・コードの1つ以上のにおいて有効である
    1つ以上のバー・コード記号を走査することにより生じ
    たことを検証するステップを更に含む請求項17記載の
    方法。 19、前記のいくつかのバー・コードが、3オブ9コー
    ド、インターリーブド2オブ5コード、コーダバー(C
    odabar)、93コード、128コードおよびUP
    C/EANコードからなるグループから選定された1−
    つ以上のコードを含む請求項17記載の方法。 20、前記ステップ(a)乃至(d)が、プログラムさ
    れたディジタル・コンピュータにより行なわれる請求項
    17記載の方法。
JP1267977A 1989-10-13 1989-10-13 2進走査信号を復号する方法 Pending JPH03209584A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1267977A JPH03209584A (ja) 1989-10-13 1989-10-13 2進走査信号を復号する方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1267977A JPH03209584A (ja) 1989-10-13 1989-10-13 2進走査信号を復号する方法

Publications (1)

Publication Number Publication Date
JPH03209584A true JPH03209584A (ja) 1991-09-12

Family

ID=17452204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1267977A Pending JPH03209584A (ja) 1989-10-13 1989-10-13 2進走査信号を復号する方法

Country Status (1)

Country Link
JP (1) JPH03209584A (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5098234A (ja) * 1973-12-26 1975-08-05
JPS575175A (en) * 1980-06-13 1982-01-11 Nec Corp Bar code reader
JPS57172478A (en) * 1981-04-17 1982-10-23 Teraoka Seiko Co Ltd Type deciding method for bar code of bar code reader
JPS6011973A (ja) * 1983-07-01 1985-01-22 Nec Corp バ−コ−ド読取装置
JPS61194578A (ja) * 1985-02-22 1986-08-28 Fujitsu Kiden Ltd バ−コ−ドの自動コ−ド選択方法
JPS6231485A (ja) * 1985-07-31 1987-02-10 Nec Corp バ−コ−ド読取装置
JPH01200490A (ja) * 1988-02-05 1989-08-11 Alps Electric Co Ltd 符号読取装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5098234A (ja) * 1973-12-26 1975-08-05
JPS575175A (en) * 1980-06-13 1982-01-11 Nec Corp Bar code reader
JPS57172478A (en) * 1981-04-17 1982-10-23 Teraoka Seiko Co Ltd Type deciding method for bar code of bar code reader
JPS6011973A (ja) * 1983-07-01 1985-01-22 Nec Corp バ−コ−ド読取装置
JPS61194578A (ja) * 1985-02-22 1986-08-28 Fujitsu Kiden Ltd バ−コ−ドの自動コ−ド選択方法
JPS6231485A (ja) * 1985-07-31 1987-02-10 Nec Corp バ−コ−ド読取装置
JPH01200490A (ja) * 1988-02-05 1989-08-11 Alps Electric Co Ltd 符号読取装置

Similar Documents

Publication Publication Date Title
US4879456A (en) Method of decoding a binary scan signal
JP2846442B2 (ja) 高密度二次元記号表示法での不揮発性電気光学式読み取り専用メモリ
US5821519A (en) Bar code scan stitching
Tatti et al. The long and the short of it: summarising event sequences with serial episodes
US5324923A (en) Apparatus for producing a dynamically variable machine readable binary code and method for reading and producing thereof
US5548110A (en) Optical error-detecting, error-correcting and other coding and processing, particularly for bar codes, and applications therefor such as counterfeit detection
JP2616921B2 (ja) ラベル識別装置
CA2191433C (en) Method and apparatus for decoding bar code symbols using independent bar and space analysis
US6126074A (en) Error correction in macro bar code symbols
JP4261779B2 (ja) データ圧縮装置および方法
KR950009492A (ko) 바코드 주사 스티칭
JPS6156552B2 (ja)
JP3115003B2 (ja) モジュール・サイズの比率解析を用いてバーコード記号を解読する方法および装置
JPH06199078A (ja) 符号化したデータを有する記録体
JPS6227434B2 (ja)
US5537431A (en) Method and apparatus for bar code reading and decoding
WO2006130467A1 (en) Nb/mb coding apparatus and method using both disparity independent and disparity dependent encoded vectors
CN1279441A (zh) 电子收款机系统
KR100388061B1 (ko) 4-상태 바코드 인쇄 및 판독 시스템과 그 제어 방법
JPH0664280A (ja) 除去可能な二次元コードを有する記録
CN112733568B (zh) 一维条码识别方法、装置、设备及存储介质
WO1990014638A1 (en) Reading method and apparatus for bar code
US5929420A (en) Method for reading distorted bar codes
Klein et al. Pattern matching in Huffman encoded texts
CN112069850A (zh) 基于二维码的服务提供方法、装置、设备及存储介质