DE19624900A1 - Verfahren und Gerät zum Decodieren nicht aufgelöster Balkencode-Profile unter Verwendung eines Kantenfindungs-Schaltkreises - Google Patents
Verfahren und Gerät zum Decodieren nicht aufgelöster Balkencode-Profile unter Verwendung eines Kantenfindungs-SchaltkreisesInfo
- Publication number
- DE19624900A1 DE19624900A1 DE19624900A DE19624900A DE19624900A1 DE 19624900 A1 DE19624900 A1 DE 19624900A1 DE 19624900 A DE19624900 A DE 19624900A DE 19624900 A DE19624900 A DE 19624900A DE 19624900 A1 DE19624900 A1 DE 19624900A1
- Authority
- DE
- Germany
- Prior art keywords
- width
- counts
- count
- bars
- symbol
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1452—Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Length Measuring Devices By Optical Means (AREA)
Description
Die vorliegende Erfindung bezieht sich auf ein Verfahren und Geräte zum Decodieren
von Balkencode-Symbolen und insbesondere zum Decodieren von Symbolen, die nicht
aufgelöst sind oder sich außerhalb des Fokus befinden.
Verfahren zum Decodieren von Balkencoden sind nach dem Stand der Technik bekannt
und setzen allgemein "Wellenformer"-Schaltkreise ein, um die Kanten oder Übergänge
beim Reflektieren von Signalen, die von Balkencode-Symbolen erzeugt werden, zu fin
den. Ein Reflexions-Signal- oder ein Balkencode-"Profil" ist allgemein ein analoges Si
gnal, das das modulierte Licht darstellt, das von Flächenbereichen eines hohen Refle
xionsvermögens, oder "Zwischenräumen", reflektiert ist, und durch Flächenbereiche ei
nes niedrigen Reflexionsvermögens, oder "Balken", absorbiert ist, und zwar in einem
Balkencode-Symbol, und stellt dadurch das Muster der Balken und Zwischenräume in
dem Symbol dar. In einem gegebenen Profil entspricht ein Peak allgemein einem Zwi
schenraum (hohe Reflektivität), während ein Tal einem Balken (niedrige Reflektivität) re
lativ zu dem Zwischenraum entspricht, und die Breite jedes Peaks oder jedes Tals gibt
allgemein die Breite des entsprechenden Balkens oder Zwischenraums an, dessen Re
flexionsvermögen den Peak oder das Tal produzierte. Die meisten Wellenformer-Schalt
kreise quadrieren im wesentlichen das Profil basierend auf Übergängen oder Kanten
zwischen Peaks und Tälern in dem Profil aus. Zähl-Schaltkreise produzieren dann eine
Reihe von Zählungen, die die Breiten der Balken und Zwischenräume anzeigen.
Ein einfacher Wellenform-Schaltkreis ist in dem US-Patent Nr. 3,909,594 für Allais et al
beschrieben, während ein komplexerer Wellenform-Schaltkreis in dem US-Patent Nr.
4,335,301 für Palmer et al beschrieben ist. Diese und andere Wellenform-Schaltkreise
verwenden viele unterschiedliche Schemata, um dasselbe Ziel zu realisieren, das be
deutet die Signale zu separieren, die von den Balken und Zwischenräumen ausgehen
bzw. ausstrahlen, und um die Dauer der Signale zu bestimmen. Das Auffinden von Kan
ten in Profilen wurde allgemein in einem Artikel von Scan-Tech, Periodicas 4A 1987,
"Verification - New Insight for an Old Debate", beschrieben. Allgemein fallen Wellen
form-Schaltkreise in einen von drei Typen: (1) einfacher, einer Spannung folgender
Schaltkreis, (2) Schaltkreise, die die zweite Ableitung des Profils auffinden, und (3)
Schaltkreise, die einen "globalen Schwellwert" unter Verwendung von Informationen von
breiteren Elementen bestimmen.
Ein "Element" ist ein einzelner Balken oder ein einzelner Zwischenraum. Deshalb um
faßt in einer Symbologie einer 2-Breite, wie beispielsweise ein Code 39, jedes
Symbol-Zeichen allgemein eine Kombination aus zwei schmalen und zwei breiten Elementen:
ein Balken einer Einzel-Breite, ein Zwischenraum einer Einzel-Breite, ein Balken einer
Doppel-Breite und ein Zwischenraum einer Doppel-Breite. Komplexere Symbologien
setzen eine größere Anzahl von Breiten für Balken und/oder Zwischenräume ein.
In allen Wellenform-Schaltkreisen, die heutzutage in Verwendung sind, werden, wenn
sich die Profile außerhalb des Fokus befinden, die schmalen Elemente nicht alle aufge
löst und die Schaltkreise schlagen fehl, genug Informationen zu liefern, um das Symbol
zu decodieren. Dieser Nachteil wurde in der US-Patentanmeldung Nr. 5,389,770 des Er
finders mit dem Titel "Method and Apparatus for Decoding Unresolved Bar Code Pro
files" überwunden. Der Erfinder entdeckte, daß dann, wenn eine Balkencode-Leseein
richtung ("Leseeinrichtung") ein Balkencode-Symbol außerhalb seiner Tiefenschärfe ab
tastet oder abbildet, das sich ergebende Profil eine "Schließung" liefern wird. Eine
Schließung in einem Balkencode-Profil ist durch einige erkennbare Peaks und Täler er
sichtlich, schlägt allerdings auch in der Mitte des Profils Wellen. Eine Schließung in ei
nem Balkencode-Profil zeigt allgemein an, daß die breiten Elemente in dem Profil aufge
löst sind, daß allerdings die schmalen Elemente unaufgelöst sind. In Bezug auf Leseein
richtungen wird ein Zwischenraum oder ein Balken "aufgelöst", wenn die Leseeinrich
tung in der Lage ist, einen Peak oder ein Tal in dem Profil zu identifizieren, das dem ge
gebenen Zwischenraum oder Balken entspricht, und die Breite dieses Elements. Einige
Profile können schmale Elemente durch schmale Peaks, Täler oder Wellungen darstel
len, die visuell erkennbar sind, die allerdings im wesentlichen durch derzeitige Wellen
form-Schaltkreise nicht erfaßbar sind.
Das Gerät und das Verfahren des Erfinders, das in dem US-Patent Nr. 5,389,770 (das
′770-Patent") ausgeführt ist, konvertiert das Profil in ein digitales Mehrstufen-Signal, das
in einem Speicher gespeichert und analysiert wird. Ein Mikroprozessor identifiziert die
höheren Peaks und die niedrigeren Täler in dem digitalisierten Profil, begrenzt die Pe
aks und Täler als aufgelöste Elemente und identifiziert potentiell breite Elemente (z. B.
Balken und Zwischenräume einer 2-Breite). Der Mikroprozessor verifiziert die breiten
Elemente und mißt dann die Abstände zwischen diesen breiten Elementen. Der Mikro
prozessor analysiert das Profil und mißt Abstände, einschließlich Start- und Stop-Zei
chen, um einen Einheitsabstand oder eine X-Dimension von dem Profil zu bestimmen.
Die "X-Dimension" ist eine nominale Breiten-Dimension der schmalsten Balken und Zwi
schenräume in der Balkencode-Symbologie. Die breiteren Balken und Zwischenräume
in dieser Symbologie sind auf ganzzahligen Vielfachen der X-Dimension basierend. Ba
sierend auf dem Einheits-Abstand konstruiert der Mikroprozessor eine Matrix zum Be
stimmen der Anzahl der schmalen Elemente, die nicht aufgelöst oder "verloren" zwi
schen aufgelösten breiten Elementen sind. Basierend auf den gemessenen Abständen
zwischen aufgelösten Elementen werden alle nicht aufgelösten, schmalen Elemente
identifiziert, und das Profil wird dann darauffolgend decodiert.
Ein Nachteil des Verfahrens gemäß dem ′770-Patent ist derjenige, daß ein Mikroprozes
sor schneller als solche, die in typischen Leseeinrichtungen eingesetzt sind, erforderlich
ist, um schnell ein Symbol zu decodieren. Ein anderer Nachteil ist derjenige, daß das
Verfahren erfordert, daß das Profil in das Mehrniveau-Digital-Signal konvertiert werden
muß. Typische Leseeinrichtungen verwenden Wellenformer- und Zeit
abstimmungs-Schaltkreise, um analoge, elektrische Signale von einem optisch-elektrischen Wandler
in eine Reihe von Zeitabstimmungs-Zählungen zu konvertieren, die die Breiten der Bal
ken und Zwischenräume nachahmen. Demzufolge könnte entweder eine typische Lese
einrichtung keine Profile außerhalb des Fokusbereichs decodieren oder der Wellen
form-Schaltkreis müßte durch einen Analog-Digital-Wandler, einen leistungsstärkeren
Mikroprozessor und eine Software ersetzt werden, um das Verfahren unter dem
′770-Patent durchzuführen.
Die vorliegende Erfindung erkennt, daß die meisten standardmäßigen Balkencode-Sym
bologien Informationen in sowohl den Balken als auch den Zwischenräumen codieren.
Demzufolge werden schmale Elemente nicht aufgelöst, wobei die Profile, die daraus er
zeugt werden, drei Bereiche mit einem unterschiedlichen Reflexionsvermögen besitzen:
(1) die aufgelösten Zwischenräume, die hoch im Reflexionsvermögen sind, (2) der
Schließ-Bereich, der mittelmäßig im Reflexionsvermögen ist und nicht aufgelöste
schmale Elemente enthält, und (3) die aufgelösten Balken, die im Reflexionsvermögen
niedrig sind. Wenn eine Symbologie verwendet werden würde, bei der die Anzahl der
reflektierenden Bereiche, die in einem ungelösten Zustand umfaßt sind, auf zwei redu
ziert werden würden, könnten einfachere Wellenform-Schaltkreise und langsamere Mi
kroprozessoren wieder verwendet werden, um nicht aufgelöste Profile unter typischen
Leseeinrichtungen zu decodieren.
Die vorliegende Erfindung beschreibt ein Verfahren und ein Gerät zum Decodieren nicht
aufgelöster Balkencode-Profile, wobei das Profil aus bestimmten Balkencode-Symbolo
gien erzeugt wird. Spezifisch ist die vorliegende Erfindung vorzugsweise zur Verwen
dung mit Symbologien geeignet, die entweder alle schmale Balken oder alle schmale
Zwischenräume einsetzen. Ohne breite Elemente eines bestimmten Typs interpretieren
standardmäßige Wellenform-Schaltkreise Gruppen aus nicht aufgelösten Elementen als
breite Elemente desselben Typs. Zum Beispiel interpretieren in einer Symbologie, die
nur schmale Balken einsetzt, standardmäßige Wellenform-Schaltkreise Gruppen aus
schmalen Balken und Zwischenräumen in einem nicht aufgelösten Profil von der Symbo
logie als breite Balken. Demzufolge ist ein standarmäßiger Wellenform-Schaltkreis in
der Lage, genug Informationen aus dem Profil aufzufinden, um einem einfachen Mikro
prozessor zu ermöglichen, erfolgreich das nicht aufgelöste Profil zu decodieren.
In einem weiten Sinne verkörpert die vorliegende Erfindung ein Verfahren zum Decodie
ren eines maschinenlesbaren Symbols, das codierte Informationen darstellt, wobei das
Symbol eine Anzahl von relativ beabstandeten, zweidimensionalen, geometrischen
Formen eines ersten und eines zweiten Typs besitzt. Die Form des ersten Typs besitzt
ein erstes Reflektionsvermögen und die Form des zweiten Typs besitzt ein zweites Re
flektionsvermögen, das sich von dem ersten Reflexionsvermögen unterscheidet. Die
Formen des ersten Typs besitzen eine erste Breite in mindestens einer Richtung und die
Formen des zweiten Typs besitzen die erste Breite und mindestens eines zweite Breite
in der einen Dimension. Die zweite Breite ist größer als die erste Breite.
Das Verfahren zum Decodieren des Symbols umfaßt die Schritte: (a) Empfangen von
Licht, das von dem Symbol reflektiert ist, und Produzieren des Ausgangssignals davon,
das das Reflexionsvermögen der Formen des ersten und des zweiten Typs darstellt, die
das Symbol aufweisen; (b) Empfangen des Ausgangssignals und Produzieren eines
Zählsignals, das mindestens einige der Formen des zweiten Typs identifiziert, der die
zweite Breite besitzt, und der falsch mindestens eine Gruppe der Formen des ersten
und des zweiten Typs identifiziert, der die erste Breite besitzt, und zwar als eine Pseu
do-Form des zweiten Typs, der eine gesamte Breite ungefähr gleich einer Summe der
ersten Breiten der ersten Gruppe besitzt; (c) Empfangen des Zählsignals und Zerteilen
der einen Gruppe, die falsch identifiziert ist, als die Pseudo-Form des zweiten Typs in
Formen des ersten und des zweiten Typs; und (d) Bestimmen der Informationen, die in
dem Symbol codiert sind, basierend auf dem Zählsignal und der zerteilten einen
Gruppe.
Die vorliegende Erfindung verkörpert auch ein Gerät zum Decodieren des maschinen
lesbaren Symbols. Das Gerät umfaßt einen elektro-optischen Wandler, der Licht emp
fängt, das von dem maschinenlesbaren Symbol reflektiert ist, und produziert ein Aus
gangssignal davon, das das Reflexionsvermögen der Formen und Zwischenräume, die
das Symbol aufweist, darstellt. Ein eine Zählung erzeugender Schaltkreis, der mit dem
elektro-optischen Wandler gekoppelt ist, empfängt das Ausgangssignal und produziert
ein Zählsignal, das mindestens einige Formen des zweiten Typs identifiziert, die die
2-Breite besitzen, und der falsch mindestens eine Gruppe der Formen des ersten und
des zweiten Typs identifiziert, der eine erste Breite besitzt, als eine Pseudo-Form des
zweiten Typs, die eine Gesamtbreite ungefähr gleich einer Summe der ersten Breiten
der einen Gruppe besitzt. Ein Prozessor, der mit dem die Zählung erzeugenden Schalt
kreis gekoppelt ist, verarbeitet das Zählsignal und produziert ein Signal, das für die
Information, die in dem Symbol codiert ist, kennzeichnend ist. Der Prozessor empfängt
das Zählsignal und zerteilt die eine Gruppe, die falsch identifiziert ist, und zwar als die
Pseudo-Form des zweiten Typs, in Formen des ersten und des zweiten Typs. Der Pro
zessor bestimmt die Information, die in dem Symbol codiert ist, basierend auf dem Zähl
signal und der zerteilten, einen Gruppe.
Andere Merkmale und zugeordnete Vorteile der vorliegenden Erfindung werden aus
dem Studium der nachfolgenden, detaillierten Beschreibung, zusammen mit den beige
fügten Zeichnungen, ersichtlich.
Fig. 1 zeigt ein Blockdiagramm eines Balkencode-Symbol-Lesegeräts der vorliegenden
Erfindung.
Fig. 2 stellt ein Code 53 Symbol von der bevorzugten Symbologie der vorliegenden Er
findung dar, die Balken einer einzelnen Elementen-Breite besitzt, die Elementen-Breiten
entsprechen, die unterhalb des Symbols aufgelistet sind.
Fig. 3 zeigt ein Balkencode-Profil, das durch das Lesegerät der Fig. 1 von dem Sym
bol der Fig. 2 erzeugt ist, wobei die Öffnungsgröße 1,2mal der X-Dimension
entspricht.
Fig. 4 zeigt ein Balkencode-Profil, das durch das Lesegerät der Fig. 1 von dem Sym
bol der Fig. 2 erzeugt ist, wobei die Öffnungsgröße 1,4mal der X-Dimension
entspricht.
Fig. 5 zeigt ein Balkencode-Profil, das durch das Lesegerät der Fig. 1 von dem Sym
bol der Fig. 2 erzeugt ist, wobei die Öffnungsgröße 1,6mal der X-Dimension
entspricht.
Fig. 6 zeigt ein Balkencode-Profil, das durch das Lesegerät der Fig. 1 von dem Sym
bol der Fig. 2 erzeugt ist, wobei die Öffnungsgröße 1,8mal der X-Dimension
entspricht.
Fig. 7 zeigt ein Balkencode-Profil, das durch das Lesegerät der Fig. 1 von dem Sym
bol der Fig. 2 erzeugt ist, wobei die Öffnungsgröße 2,0mal der X-Dimension
entspricht.
Fig. 8 zeigt ein Balkencode-Profil, das durch das Lesegerät der Fig. 1 von dem Sym
bol der Fig. 2 erzeugt ist, wobei die Öffnungsgröße 2,2mal der X-Dimension
entspricht.
Fig. 9 zeigt ein Balkencode-Profil, das durch das Lesegerät der Fig. 1 von dem Sym
bol der Fig. 2 erzeugt ist, wobei die Öffnungsgröße 2,4mal der X-Dimension
entspricht.
Fig. 10 zeigt ein Balkencode-Profil, das durch das Lesegerät der Fig. 1 von dem
Symbol der Fig. 2 erzeugt ist, wobei die Öffnungsgröße 2,6mal der X-Dimension
entspricht.
Fig. 11 zeigt ein Balkencode-Profil, das durch das Lesegerät der Fig. 1 von dem
Symbol der Fig. 2 erzeugt ist, wobei die Öffnungsgröße 2,8mal der X-Dimension
entspricht.
Fig. 12 zeigt ein Balkencode-Profil, das durch das Lesegerät der Fig. 1 von dem
Symbol der Fig. 2 erzeugt ist, wobei die Öffnungsgröße 3,0mal der X-Dimension
entspricht.
Fig. 13 zeigt ein Balkencode-Profil, das durch das Lesegerät der Fig. 1 von dem
Symbol der Fig. 2 erzeugt ist, wobei die Öffnungsgröße 3,2mal der X-Dimension
entspricht.
Fig. 14A zeigt Reihen von Zeitabstimmungs-Zählungen, die durch das Lesegerät der
Fig. 1 produziert sind, und zwar basierend auf dem Profil der Fig. 3, wenn das Lese
gerät das Profil von links nach rechts abtastet.
Fig. 14B zeigt eine Reihe von Zeitabstimmungs-Zählungen, die durch das Lesegerät
der Fig. 1 basierend auf dem Profil der Fig. 3 produziert sind, wenn das Lesegerät
das Profil von rechts nach links abtastet.
Fig. 15 zeigt eine bildliche Darstellung von Elementen, wenn der Wellen
formungs-Schaltkreis des Lesegeräts der Fig. 1 das Profil der Fig. 8 interpretiert, wobei die ent
sprechenden Elementen-Breiten unterhalb der bildlichen Darstellung aufgelistet sind.
Fig. 16A zeigt eine Reihe von Zeitabstimmungs-Zählungen, die durch das Lesegerät
der Fig. 1 basierend auf dem Profil der Fig. 11 produziert sind, wenn das Lesegerät
das Profil von links nach rechts abtastet.
Fig. 16B zeigt eine Reihe von Zeitabstimmungs-Zählungen, die durch das Lesegerät
der Fig. 1 basierend auf dem Profil der Fig. 11 produziert sind, wenn das Lesegerät
das Profil von rechts nach links abtastet.
Fig. 17A und 17B zusammen stellen ein Flußdiagramm der Basisschritte dar, die
durch das Lesegerät der Fig. 1 zum Lesen und Decodieren von Balkencode-Symbolen
unter dem Verfahren der vorliegenden Erfindung durchgeführt werden.
Fig. 18A und 18B zusammen stellen ein Flußdiagramm eines allgemeinen Elemen
tenauffindeverfahrens dar, das durch das Lesegerät der Fig. 1 durchgeführt wird.
Wie die Fig. 1 zeigt, umfaßt ein Balkencode-Lesegerät 140 eine elektro-optische Vor
richtung 141, wie beispielsweise eine Leseabtasteinrichtung, ein rasternder Laser oder
einen auf einem Handlesekopf basierender optischer Wandler. Die elektro-optische Vor
richtung 141 empfängt Licht, das von einem Datensammel- oder Balkencode-Symbol
153 reflektiert ist, über eine Öffnung 161 und produziert ein analoges, elektrisches Si
gnal oder ein analoges Profil (oder zur Abkürzung "Profil"). Ein "Datensammelsymbol",
wie es hier verwendet wird, bezieht sich auf ein Symbol von einem linearen, gestapelten
Flächenbereich und anderen maschinenlesbaren Symbologien, allerdings auf eine Sym
bologie, die vorzugsweise einen Elementen-Typ (Balken oder Zwischenraum) besitzt,
der eine einzelne Breite besitzt, während der andere Elementen-Typ eine variable Breite
besitzt (eine "Einzel-Breiten-Symbologie"). Alternativ kann die elektro-optische Vorrich
tung 141 eine 1- oder 2-dimensionale CCD, eine Hableiterfeldanordnung, ein Vidicon,
oder eine andere Flächenbereichs-Abbildungseinrichtung, die zum Wandeln von emp
fangenem Licht in elektrische Signale geeignet ist, sein. Die elektro-optische Vorrichtung 141
kann auch eine Lichtquelle, wie beispielsweise eine LED, eine Blitzlampe, eine in
frarote Lichtquelle oder ein anderes Licht emittierendes Element umfassen.
Wellenformer- und Zählschaltkreise 142 empfangen die analogen, elektrischen Signale
von der elektro-optischen Vorrichtung 141 und produzieren Zählsignale. Wie vorstehend
erläutert ist, sind Wellenformer-Schaltkreise und Zähl-Schaltkreise ausreichend nach
dem Stand der Technik bekannt und Fachleute auf dem betreffenden Fachgebiet kön
nen aus allen solchen Schaltkreisen, die in Verbindung mit der vorliegenden Erfindung
verwendet werden können, auswählen. Die Wellenformer- und Zähl-Schaltkreise 142
können kollektiv als Zeitabstimmungs-Zählgenerator bezeichnet werden, der das analo
ge, elektrische Signal von der elektro-optischen Vorrichtung 141 in einen String bzw. ei
ne Zeichenfolge aus Zählwerten konvertiert, die die Breite der Balken und Zwischenräu
me, wie sie durch die elektro-optische Vorrichtung 141 abgebildet werden, wiedergibt.
Das Zählsignal, das vollständiger nachfolgend beschrieben wird, wird zu einer zentralen
Verarbeitungseinheit ("CPU") 144 eingegeben. Ein Speicher 146, der mit der CPU 144
gekoppelt ist, speichert Daten für die CPU, die das nachfolgend beschriebene Pro
gramm gemäß der vorliegenden Erfindung umfaßt. Die CPU 144 verarbeitet das Zählsi
gnal und gibt Daten, codiert in dem Symbol, oder andere Informationen zu einem
Host-Computer 151, oder einem anderen Gerät oder zu anderen Anwendungen, durch einen
Anschluß oder eine Leitung 149 aus.
Wie vorstehend angeführt ist, setzt die vorliegende Erfindung vorzugsweise eine Einzel
breiten-Symbologie ein. Verschiedene Einzel-Breiten-Symbologien sind nach dem
Stand der Technik bekannt, zum Beispiel Zwei-aus-Fünf-Code und BC412. BC412 wird
im Detail in dem US-Patent Nr. 5,380,998 für Bossen et al. beschrieben. BC412 kann
unter der vorliegenden Erfindung decodiert werden, besitzt allerdings verschiedene
Nachteile. Zum Beispiel kann BC412 gelegentlich als ein gültiges Symbol von einer an
deren Symbologie, wie beispielsweise als Code 39, verschachtelt Zwei-aus-Fünf und
Codabar (d. h. leidet unter "Autodiskriminierungs-Fehler") decodiert werden. BC412 ist
auch dazu geneigt, Unter-Segmente der Symbologie, bezeichnet als "kurze Abtastun
gen", zu lesen, wo Bereiche eines gegebenen Symbols gültig decodiert sind, allerdings
das gesamte Symbol selbst nicht vollständig decodiert ist. BC412 kann leicht unter Ver
wendung der Verfahren der vorliegenden Erfindung decodiert werden, wenn die
Leseeinrichtung 140 so programmiert ist, um nur BC412 zu decodieren und um nur
Symbole zu decodieren, die eine vorbestimmte Anzahl von Symbolzeichen besitzen.
Ein Zwei-aus-Fünf-Code leidet ähnlich unter vielen derselben Nachteile wie BC412, al
lerdings mit einem geringeren Grad, da ein Zwei-aus-Fünf-Code einen 3-Balken- und
3-Abstands-Start- und Stop-Zeichen entgegengesetzt zu einem Einzel-Balken-Start-Zei
chen, das in BC412 verwendet wird, verwendet. Start- und Stop-Zeichen, die sechs Ele
mente besitzen, ermöglichen einer Leseeinrichtung, leichter den Beginn und das Ende
eines Symbols zu erkennen, um dadurch kurze Abtastungen zu vermeiden. Ein Zwei
aus-Fünf-Code besitzt allerdings eine geringere Informationsdichte und besitzt ein we
sentlich schwächeres Fehlererfassungsschema als BC412. Demzufolge ist die bevor
zugte Symbologie, die durch die Verfahren und das Gerät der vorliegenden Erfindung
eingesetzt ist, weder BC412 noch Zwei-aus-Fünf-Code, allerdings anstelle davon Code
53, der im Detail in der US-Patentanmeldung Serial No. 081433,835, angemeldet am 4.
Mai 1995, beschrieben ist. Code 53 besitzt die Vorteile einer hohen Informationsdichte,
eines vollen Zeichensatzes, robuster Start- und Stop-Zeichen, eines strengen Fehlerer
fassungsschemas und einer Einrichtung zum Erfassen des Fokus-Zustands des
Lesegeräts.
Code 53 ist eine typische "Balkencode-Symbologie", die als eine "lineare Symbologie"
bezeichnet werden kann, da Daten in einem gegebenen Symbol entlang einer Achse
oder Richtung decodiert werden. Symbologien, wie beispielsweise lineare Symbologien,
codieren "Daten-Zeichen" (z. B. durch eine Person lesbare Zeichen) als "Symbol-Zei
chen", die im wesentlichen parallele Anordnungen von alternierenden Balken und Zwi
schenräumen sind, die einzigartige Gruppen aus Mustern bilden, um spezifische
Daten-Zeichen zu codieren. Daten-Zeichen umfassen nicht nur durch eine Person lesbare Zei
chen, sondern auch spezielle Funktions-Zeichen, wie beispielsweise Start- oder
Stop-Zeichen. Jede einzigartige Gruppe oder jedes Muster aus Balken und Zwischenräumen
innerhalb einer vorbestimmen Breite definiert ein bestimmtes Symbol-Zeichen und dem
zufolge ein bestimmtes Daten-Zeichen oder mehrere Daten-Zeichen. Ein gegebenes li
neares Symbol oder ein "Balkencode-Symbol" (oder kurz gesagt "Symbol") codiert ver
schiedene Daten-Zeichen entlang seiner Länge als verschiedene Gruppen einzigartiger
Balken- und Zwischenraum-Muster.
Ein beispielhaftes Symbol 153 für einen Code 53 ist in Fig. 2 dargestellt. Das Symbol
153 codiert die Daten-Zeichen "C", "O", "D", "E", "Zwischenraum", "5", "3", ein "Start 0"-Zeichen
154, ein Modulus 153 Prüf-Zeichen CK (gleich dem Daten-Zeichen "P") und
ein "Stop"-Zeichen 155. Das Symbol 153 stellt jedes Symbolzeichen dar, das vier Bal
ken und vier Zwischenräume besitzt, die mittels einer diagonalen Markierung an der
Oberseite des Zeichens gekennzeichnet sind, die sich von dem letzten Zwischenraum
des Zeichens weg erstrecken, der hier zum Zwecke der Darstellung hinzugefügt ist. Die
Daten-Zeichen für das Symbol 153 sind oberhalb deren entsprechender Symbol-Zei
chen dargestellt. Die Breiten der Elemente in dem Symbol 153 sind unterhalb eines
Strings bzw. einer Zeichenfolge aus einstelligen Ziffern, die sequentiell die Breiten der
Elemente in dem Symbol von links nach rechts darstellen, gezeigt. Die Breiten der Ele
mente sind als Gruppen aus einstelligen Ziffern dargestellt, die in die Breiten für indivi
duelle Symbol-Zeichen mittels eines Komma, hinzugefügt zu Darstellungszwecken, ge
gliedert sind.
Einer linksseitigen Ruhe- bzw. Pausen-Zone 177 folgend, ist das erste Symbol-Zeichen
das Start 0-Zeichen 154, das den String aus Elementen-Breiten von 12111214 besitzt.
Anders ausgedrückt besitzt das Start 0-Zeichen 154 den nachfolgenden String aus Ele
menten: einen Balken 162 mit einer 1-Breite, einen Zwischenraum 170 mit einer
2-Breite, einen Balken 162 mit einer 1-Breite, einen Zwischenraum 169 mit einer
1-Breite, einen Balken 162 mit einer 1-Breite, einen Zwischenraum 170 mit einer
2-Breite, einen Balken 162 mit einer 1-Breite und einen Zwischenraum 173 mit einer
4-Breite. Erkennbar sind alle Zwischenräume durch Balken 162 einer 1-Breite separiert.
(Die "Ruhe-Zone" ist ein freier Raum, der keine dunklen Markierungen besitzt, die ei
nem Symbol vorangehen oder ihm folgen.) Das Start 0-Zeichen zeigt an, daß das Sym
bol 153 ein Teil einer Symbologie des Code′s 53 ist, so daß die Leseeinrichtung 140 au
tomatisch zwischen dem Symbol 153 und Symbolen von anderen Symbologien diskrimi
nieren kann. "Autodiskrimination" bezieht sich typischerweise auf die Fähigkeit einer
Balkencode-Abtasteinrichtung oder -Leseeinrichtung Symbole von mehr als einer Sym
bologie zu erkennen und korrekt zu decodieren. Wie an der rechten Seite des Symbols
153 dargestellt ist, umfaßt, einer rechtsseitigen Ruhe-Zone 177′ vorausgehend, das
Stop-Symbol-Zeichen den nachfolgenden String aus Zwischenräumen, die alle durch
Balken 162 eine 1-Breite separiert sind: drei Zwischenräume 170 einer 2-Breite gefolgt
durch einen abschließenden Zwischenraum 171 einer 3-Breite.
Die elektro-optische Vorrichtung 141 der Leseeinrichtung 140 (Fig. 1) tastet das Sym
bol 153 (Fig. 2) ab, um ein analoges Profil, wie es in den Fig. 3 bis 13 dargestellt
ist, zu produzieren, das das modulierte Licht darstellt, das von dem Symbol und dem Zu
stand des Fokus der Leseeinrichtung (basierend z. B. auf einer Größe der Öffnung 161)
empfangen ist. Die vertikale Skala auf dem Profil ist das prozentuale Reflektionsvermö
gen, das von 0% bis 100% reicht. Die horizontale Skala ist nicht absolut bekannt, son
dern stellt vielmehr relative Einheiten dar, wie beispielsweise einen Abstand über das
Symbol oder die Zeit. Wenn ein Profil decodiert wird, ist es notwendig, die horizontale
Beabstandung in Meßeinheiten im Gegensatz zu den relativen Breiten oder Abständen
zwischen den Elementen, die durch Peaks oder Täler in dem Profil dargestellt sind, zu
kennen.
In den meisten Leseeinrichtungen muß die Öffnung 161 kleiner als die minimale Größe
eines Elements (d. h. die X-Dimension) in einem Symbol, das durch die Leseeinrichtung
gelesen werden soll, sein, um so ein Profil zu produzieren, das adäquat alle Elemente in
dem Symbol auflöst. Die meisten Balkencode-Leseeinrichtungen setzen eine kreisförmi
ge Öffnung 161 ein, deren Durchmesser gleich ungefähr 0,8mal der X-Dimension, oder
"0,8X", ist.
Die Fig. 3 bis 13 stellen dar, wie die Elemente der 1-Breite in dem Symbol 153 nicht
aufgelöst werden oder in Profilen "verloren" gehen, das durch die elektro-optische Vor
richtung 141 produziert wird, wenn sich die Öffnung 161 von 1,2X auf 3,2X vergrößert.
Fig. 7 stellt ein in gewisser Weise aufgelöstes Profil dar, das durch die elektro-opti
sche Vorrichtung 141 von dem Symbol 153 produziert ist, wobei die Öffnung 161 unge
fähr gleich 1,2X ist. Fig. 3 zeigt ein in gewisser Weise aufgelöstes Profil, da nicht alle
der Peaks von annähernd gleicher Amplitude sind.
Wie in dem Profil der Fig. 3 dargestellt ist, produzieren Balken 162 der 1-Breite Täler
172, die ein Reflexionsvermögen geringer als 30% besitzen. Im Gegensatz dazu produ
zieren Zwischenräume 170 einer 2-Breite, Zwischenräume 171 einer 3-Breite und Zwi
schenräume 173 einer 4-Breite Peaks 180,181 und 183 jeweils, die ein
Reflexionsvermögen von wenigstens 90% besitzen. Die linke und die rechte Ruhe-Zone
177 und 177′ produzieren jeweilige Peaks oder konstante Signale 187 und 187′, die
auch ein ungefähres Reflexionsvermögen von 90% besitzen. Die Zwischenräume 169
einer 1-Breite produzieren Peaks 179, die ein ungefähres Reflexionsvermögen von 70%
besitzen. Es ist wichtig anzumerken, daß alle Täler in dem Profil der Fig. 3 von allen
Peaks unterschieden sind und demzufolge ein standardmäßiger Decodierschaltkreis,
wie beispielsweise ein Wellenformer- und Zähl-Schaltkreis 142, wahrscheinlich die
Übergänge von Tälern zu Peaks in dem Profil zuordnen, und wird dadurch eine Reihe
von sich gut verhaltenden Zählungen produzieren, wie beispielsweise diejenigen, die in
den Fig. 14A und 14B dargestellt sind. Wie aus der Besprechung nachfolgend er
kennbar wird, sind die Reihen Zählungen in den Fig. 14A und 14B "sich gut verhal
tend", da Elemente, die ähnliche Breiten besitzen, Zählungen produzieren, die ähnliche
Werte besitzen. Durch Zuordnung der Übergänge von Tälern zu Peaks können die Wel
lenformer-Zählschaltkreise 142 die Kanten jedes der Elemente in dem Symbol 153 von
dem Profil der Fig. 3 identifizieren und dadurch das Symbol decodieren.
Das Profil der Fig. 3 ist allerdings ein theoretisches Profil und ihm fehlen Rauschen
und andere Signalverarbeitungsprobleme, die es schwierig gestalten, wenn nicht sogar
unmöglich, für typische Wellenformer- und Zähl-Schaltkreise 142, Übergänge zwischen
Peaks und Tälern zu identifizieren. Typische Profile, die durch die Öffnungen 161 pro
duziert sind, besitzen eine Größe von 0,8X, die durch Zwischenräume 169 mit einer
1-Breite als Peaks, die Reflexionsvermögen im wesentlichen ähnlich zu den Peaks, die
durch die breiten Elemente (d. h. Elemente, die von einer 2-Breite und größer sind) pro
duziert sind, darstellen.
Die Fig. 3 bis 13 demonstrieren, daß, falls sich die Größe der Öffnung 161 in der Le
seeinrichtung 140 von 1,2X zu 2,3X erhöht, und demzufolge das Symbol 153 weiter au
ßerhalb des Fokus gelangt, die Zwischenräume 169 einer 1-Breite Peaks 179 einer ab
nehmenden Amplitude produzieren. Mit einer Öffnung 161 von etwa 2,2X zeigt das Pro
fil, das in Fig. 8 dargestellt ist, gerade noch die Positionen der Balken 162 einer
1-Breite an, die Zwischenräume 169 einer 1-Breite umranden oder definieren. Anders
ausgedrückt tendieren, wenn das Symbol 153 weiter außerhalb des Fokus gelangt, Clu
ster aus Peaks 179 und Täler 172, die angrenzend an Balken 162 einer 1-Breite und
Zwischenräumen 169 einer 1-Breite produziert sind, dazu, ineinander zu verschmelzen.
Wie in den Profilen der Fig. 9 bis 13 dargestellt ist, produzieren Cluster aus Zwischen
räumen 169 einer 1-Breite und angrenzende Balken 162 einfach große, abgeflachte Tä
ler 175 und 176, die vollständiger nachfolgend besprochen werden.
Die Profile der Fig. 6 bis 13 sind nicht unter Verwendung standardmäßiger Wellen
former- und Zähl-Schaltkreise 142 decodierbar. Die breiten Elemente, z. B. die Zwi
schenräume 170, 171 und 173 einer 2-Breite, 3-Breite und 4-Breite jeweils, produzieren
im wesentlichen hohe Peaks 180, 181 und 183 jeweils, die einen signifikanten Kontrast
zu den Tälern 172 besitzen. Es ist wichtig, daß die Positionen aller Täler und Peaks für
die breiten Elemente und viele der schmalen Elemente (d. h. Elemente einer 1-Breite) ef
fektiv konstant bleiben, wenn sich die Öffnung 161 der Leseeinrichtung 140 vergrößert.
In den Profilen der Fig. 12 und 13 tendieren, wenn sich die Öffnung 161 auf 3X und
darüber erhöht, die Peaks 180, die durch die Zwischenräume 170 der 2-Breite und die
Täler 172 produziert werden, dazu, sich zu verringern, da die Zwischenräume einer
2-Breite auch nicht aufgelöst werden.
Es ist bekannt, daß sich dann, wenn sich die Größe einer Öffnung 161 erhöht, die
Schärfentiefe verringert, so daß, wenn sich die Größe einer Öffnung verdoppelt, die
Schärfentiefe ungefähr auf die Hälfte reduziert wird. Die Profile, die in den Fig. 3 bis
13 dargestellt sind, können deshalb auch dazu verwendet werden, Profile zu demon
strieren, die durch die Leseeinrichtung 140 produziert werden würden, die eine festge
legte Öffnung 161 von 0,8X besitzt, allerdings wo die Profile durch die Leseeinrichtung
140 von einem Abstand leicht außerhalb des Fokus (Fig. 3) zu einem Abstand im we
sentlichen außerhalb des Fokus von über 2mal so weit (Fig. 13) für das Symbol 153
erzeugt werden. Die Profile der Fig. 3 bis 13 können auch dazu verwendet werden,
eine CCD-Leseeinrichtung zu demonstrieren, die zwei kleine Pixel in ihrer CCD-Feld
anordnung besitzen, um adäquat eine gegebene Abbildung aufzulösen.
Ein Rauschen und eine schlechte Druckqualität können auch eine Schließung in Profi
len produzieren, die nicht in Bezug auf die Optiken in der Leseeinrichtung 140 oder den
Zustand des Fokus davon gesetzt sind. Der Zustand des Fokus der Leseeinrichtung 140
kann durch ein Verhältnis der Größe der Öffnung 161 zu der Größe der schmalen Ele
mente in dem Symbol 153 (d. h. X-Dimensionen) definiert werden. Am häufigsten
verwendete Wellenform- und Zähl-Schaltkreise 142 können alle der Elemente zuordnen
und sich gut verhaltende Zählungen für Öffnungsgrößen geringer als 1,6X produzieren,
obwohl sich die Leseeinrichtung 140 geringfügig außerhalb des Fokus bei 1,6X
befindet.
Um zunächst ein sich im Fokus befindliches Beispiel zu betrachten, produzieren der
Wellenform- und der Zähl-Schaltkreis 142, der das Profil der Fig. 3 von der elektro-op
tischen Vorrichtung 141 aufnimmt, eine Reihe von Zeitabstimmungszählungen, wie sol
che, die in Fig. 14A dargestellt sind, wenn die Schaltkreise das Profil von links nach
rechts verarbeiten. Fig. 14B stellt eine Reihe von Zählungen dar, die durch den Wel
lenformer- und den Zähl-Schaltkreis 142 von einer Abtastung des Symbols 153 durch
die elektro-optische Vorrichtung 141 in einer Richtung von rechts nach links (eine "um
gekehrte Abtastung") produziert sind. Der Wellenformer- und der Zähl-Schaltkreis 142
konvertieren das Profil der Fig. 3 in ein Rechteckwellen-Signal und produzieren dann
eine Reihe von Zeitabstimmungszählungen, die Zeitintervalle zwischen Übergängen in
den Rechteckwellen-Signalen reflektieren. Deshalb konvertieren der Wellenformer- und
der Zählschaltkreis 142 die Täler 172, die durch die Balken 162 einer 1-Breite produ
ziert sind, in Balkenzählungen 192 einer 1-Breite in den Fig. 14A und 14B, so daß
alle im wesentlichen den gleichen Wert haben. Der Wellenformer- und der Zähl-Schalt
kreis 142 produzieren ähnliche Zwischenraum-Zählungen 199 einer 1-Breite, Zwischen
raum-Zählungen 190 einer 2-Breite, Zwischenraum-Zählungen 191 einer 3-Breite und
Zwischenraum-Zählungen 193 einer 4-Breite, basierend auf den Peaks 179, 180,181
und 183 jeweils.
Wie die Fig. 14A zum Beispiel zeigt, produzieren der Wellenformer- und der
Zähl-Schaltkreis 142 Balken-Zählungen 192 einer 1-Breite in dem Start 0-Zeichen 154, das
von 326 bis 289 reicht. In den Reihen der Zählungen in den Fig. 14A und 14B (und
in den Fig. 16A und 16B, die nachfolgend beschrieben sind) werden die Zählungen,
die durch die Balken 162 einer 1-Breite produziert sind, alle mit demselben Bezugszei
chen 192 bezeichnet. Ähnlich sind Zählungen entsprechend den Elementen derselben
Breite mit denselben Bezugszeichen bezeichnet (z. B. produzieren der Zwischenräume
170 einer 2-Breite Zwischenraum-Zählungen 190 einer 2-Breite).
Für das Stop-Zeichen 155 produzieren der Wellenform- und der Zähl-Schaltkreis 142
Balken-Zählungen 192 einer 1-Breite, die von 235 bis 245 reichen. Die Disparität zwi
schen Zeitabstimmungszählungen für Balken einer 1-Breite, die von dem Start 0-Zei
chen 154 und dem Stop-Zeichen 155 produziert sind, resultieren aus Beschleunigungs
verzerrungen. Beschleunigungsverzerrungen werden allgemein dann produziert, wenn
der Lesestrahl über das Symbol 153 beschleunigt wird, wenn die elektro-optische Vor
richtung 141 das Profil produziert. Beschleunigungsverzerrungen sind in Profilen, die
durch eine in der Hand gehaltene Abtastkopf-Leseeinrichtung erzeugt sind, allgemein
vorhanden, allerdings können solche Verzerrungen in Laserabtast- und in auf einer Ab
bildung basierenden Leseeinrichtungen auftreten.
Unter Berücksichtigung nun eines Beispiels außerhalb des Fokus produzieren, wenn
das Symbol 153 nicht aufgelöst wird, die Gruppen oder Cluster aus Balken 162 einer
1-Breite und aus angrenzenden Zwischenräumen 169 einer 1-Breite abgeflachte Täler
175 und 176 in dem Profil der Fig. 9. Der Wellenformer- und der Zähl-Schaltkreis 142
interpretieren die Täler 175 und 176 als breite Balken. Ein Symbol 153′, das in Fig. 15
dargestellt ist, ist eine Darstellung eines Balken- und Zwischenraum-Musters, wenn der
Wellenformer- und der Zähl-Schaltkreis 142 das Profil der Fig. 9 interpretiert.
Das Symbol 153′ ist kein Symbol, das aus einer bekannten Balkencode-Symbologie pro
duziert ist. Die Balken 162 einer 1-Breite, die den Zwischenraum 169 einer 1-Breite in
dem Start 0-Zeichen 154 umranden, produzieren das Tal 176 in dem Profil der Fig. 9,
das durch den Wellenformer- und den Zähl-Schaltkreis 142 als ein Pseudo-Balken 166
einer 3-Breite in dem Symbol 153′ interpretiert wird. Ähnlich enthält das Symbol 153
zwei Fälle für vier Balken 162 einer 1-Breite, die drei Zwischenräume 169 einer 1-Breite
separieren, was die breiten, abgeflachten Täler 175 produziert. Der Wellenformer- und
der Zähl-Schaltkreis 142 interpretieren die Täler 175 als Pseudo-Balken 165 einer
7-Breite, wie dies in dem Symbol 153′ dargestellt ist.
Ein "Pseudo-Element" ist ein breites Element, das für die Symbologie, aus der das Sym
bol erzeugt wurde, ungültig ist. Zum Beispiel existieren in der Symbologie des Code′s 53
keine breiten Balken. Pseudo-Elemente entsprechen Cluster angrenzender Elemente ei
ner 1-Breite, die nur in Gruppierungen einer ungeraden Anzahl von 3 oder größeren
Elementen einer 1-Breite auftreten. Deshalb entsprechen Pseudo-Elemente in der Sym
bologie des Code′s 53 einem Zwischenraum einer 1-Breite zwischen zwei Balken einer
1-Breite (ein Pseudo-Balken der 3-Breite), zwei Zwischenräumen einer 1-Breite, die
durch drei Balken einer 1-Breite separiert sind (ein Pseudo-Balken einer 5-Breite), drei
Zwischenräumen einer 1-Breite, die durch vier Balken einer 1-Breite separiert sind (ein
Pseudo-Balken einer 7-Breite), usw. Wie nachfolgend gesehen werden wird, kann, da
Pseudo-Elemente nur in ungeraden Vielfachen der X-Dimension auftreten, die vorlie
gende Erfindung Symbole außerhalb des Fokus mit einem hohen Grad einer Toleranz
decodieren.
Fig. 16A stellt eine Reihe von Zeitabstimmungs-Zählungen dar, die durch den Wellen
former- und den Zähl-Schaltkreis 142 basierend auf dem Profil der Fig. 9 produziert
sind. Fig. 16B stellt eine Reihe von Zählungen dar, die durch eine umgekehrte Abta
stung erzeugt sind. Wie in Fig. 16A dargestellt ist, produzieren die Täler 172, die durch
die Balken 162 einer 1-Breite erzeugt sind, noch die Balken-Zählungen 192 der
1-Breite, die im wesentlichen denselben Wert besitzen (etwa 285 an dem Beginn der
Abtastung und etwa 235 an dem Ende der Abtastung). Das Tal 176 (Fig. 9) allerdings
produziert eine Balken-Zeitabstimmungs-Zählung 196 einer 3-Breite von 877 (Fig.
16A), die als der Pseudo-Balken 166 einer 3-Breite (Fig. 15) interpretiert wird. Das
Stop-Zeichen 155 in der Symbologie des Code′s 53 verbleibt allerdings aufgelöst, gerade
wenn es sich außerhalb des Fokus befindet. Die Täler 172 und die Peaks 180 und 181
auf der rechten Seite des Profils der Fig. 9 produzieren Balken-Zählungen 192 einer
1-Breite, die Zwischenraum-Zählungen 190 einer 2-Breite und die Zwischenraum-Zäh
lungen 191 einer 3-Breite jeweils in Fig. 16A. Als Folge kann die CPU 144 das
Stop-Zeichen 155 erkennen, sogar wenn es sich außerhalb des Fokus befindet, da die elek
tro-optische Vorrichtung 141 noch ein aufgelöstes Profil von diesem Symbol-Zeichen
produziert, und demzufolge produzieren der Wellenformer- und der Zähl-Schaltkreis 142
sich gut verhaltende Zählungen.
In den Fig. 14A, 14B, 16A und 16B sind nur bestimmte Zählungen durch Bezugszei
chen angegeben. Allerdings kann man, basierend auf dem Symbol 153, das Profil der
Fig. 3 und die Reihen der Zählungen der Fig. 14A sequentiell von links nach rechts
der Reihen der Elemente in dem Symbol zu den Peaks und den Tälern in dem Profil und
den individuellen Zählungen anpassen. Umgekehrt kann man sequentiell von rechts
nach links die Elemente des Symbols 153 zu den Peaks und den Tälern des Profils der
Fig. 3 mit den Zählungen in Fig. 14B vergleichen. Eine ähnliche Anpassung kann zwi
schen den Zählungen der Fig. 16A und 16B, dem Profil der Fig. 9 und dem Symbol
153′ der Fig. 15, durchgeführt werden. Für viele Gruppen der Zählungen in den
Fig. 14A, 14B, 16A und 16B zeigen Klammern und ein angrenzendes Daten-Zeichen an,
zu welchem Daten-Zeichen in dem Symbol 153 die bestimmte Gruppe aus Zählungen
entspricht. Zum Beispiel sind in Fig. 14A die ersten zwei Gruppen aus acht Zählungen,
die dem Start 0-Zeichen 154 folgen, durch die Daten-Zeichen "C" und "O" jeweils
angezeigt.
Wie nun die Fig. 17A und 17B zeigen, beginnt ein Programm 200 zum Decodieren
nicht aufgelöster Profile gemäß der vorliegenden Erfindung an einem Schritt 202 (Fig.
17A), wo die CPU 144 die elektro-optische Vorrichtung 141 veranlaßt, das Symbol 153
abzutasten oder abzubilden, um ein Profil zu produzieren. Die Wellenformer- und die
Zähl-Schaltkreise 142 produzieren dann Reihen aus Zählungen basierend auf dem Pro
fil. Das Programm 200, und alle Programme und Verfahren, die hier beschrieben sind,
werden allgemein durch die CPU 144 durchgeführt und sind permanent innerhalb des
Speichers 146 gespeichert.
In dem Schritt 202 prüft die CPU 144 die Reihen aus Zählungen, um die linke oder rech
te Ruhe-Zone 177 und 177′ jeweils zu finden, die dem Symbol 153 vorausgeht oder die
sem folgt. Wie in Fig. 14A dargestellt ist, produziert die linke Ruhe-Zone 177 eine linke
Ruhe-Zonen-Zählung 197. Die CPU 144 identifiziert die Ruhe-Zone durch Zuordnen ei
ner Zählung, die etwa 10mal größer als Zählungen, die danach folgen, ist. Zum Beispiel
ist die linke Zeitabstimmungs-Zonen-Zählung eine 197 von 7816 eine mehr als 10mal
größere als die Zählungen, die danach folgen, d. h. die Zählungen für das Start 0-Zei
chen 154. Die CPU 144 kann im Schritt 202 ähnlich die rechte Ruhe-Zone 177′ von ei
ner rechten Ruhe-Zonen-Zählung 197′ von 5157 in Fig. 14B von der umgekehrten Ab
tastung des Symbols 153 zuordnen.
Allgemein werden die Schritte des Programms 200 (und andere Programme, die hier be
schrieben sind) nur auf die Reihen der Zählungen der Fig. 14A angewandt. Basierend
auf dem Beispiel der Fig. 14A kann man, falls es erwünscht ist, einfach dieselben
Schritte auf die Reihen der Zählungen in den Fig. 14B, 16A oder 16B anwenden.
Wie allerdings nachfolgend dargestellt ist, werden bestimmte Schritte auf die Zählungen
der Fig. 14B, 16A oder 16B angewandt, um dabei zu helfen, Aspekte der Erfindung
klarzustellen.
In einem Schritt 204 führt, falls die CPU 144 nicht eine der Ruhe-Zonen von den Reihen
der Zählungen zuordnen kann, dann die CPU ein generelles Elementenfindungspro
gramm 300 durch, das nachfolgend in Bezug auf die Fig. 18A und 18B besprochen
ist. Unter der Annahme, daß die CPU 144 die linke Ruhe-Zone 197 zuordnet, erkennt
dann, in einem Schritt 206, die CPU, daß die erste Zählung, die der Ruhe-Zone nach
folgt, einem Balken entspricht, da sie einen Übergang von der Ruhe-Zone (ein erster
Zwischenraum) zu dem ersten Element in dem Symbol 153 darstellt, das ein Balken sein
muß. Deshalb entspricht jede andere Zählung, die der linken oder rechten
Ruhe-Zonen-Zählung 197 und 197′ jeweils folgt, Balken in dem Symbol 153. In einem Schritt 206
analysiert die CPU 144 die ersten vier alternierenden Zählungen, um zu bestimmen, ob
sie im wesentlichen alle ähnlich sind und Balken 162 einer 1-Breite entsprechen, und
zwar durch Einsetzen irgendeiner Anzahl bekannter Algorithmen, um zu bestimmen, ob
verschiedene Zählungen im wesentlichen ähnlich sind. Zum Beispiel bestimmt die CPU
144 in einem Schritt 206, ob jede dieser Zählungen größer als eine Hälfte deren Durch
schnitts und geringer als 1,5mal deren Durchschnitts ist. Anders ausgedrückt bestimmt
die CPU 144 in einem Schritt 206, ob die Breiten der ersten vier Balken in dem Symbol
153 größer als eine Hälfte deren durchschnittlicher Breite und geringer als 1,5mal de
ren durchschnittlicher Breite sind.
Für die sich im Fokus befindlichen Zählungen der Fig. 14A sind die ersten vier alter
nierenden Zählungen, die der Ruhe-Zonen-Zählung 197 folgen, 326, 324, 289 und 289.
Diese Zählungen sind alle größer als eine Hälfte deren Durchschnitts und geringer als
1,5mal deren Durchschnitts und deshalb entsprechen alle Balken 162 einer 1-Breite.
Für die außerhalb des Fokus liegenden Zählungen der Fig. 16A jedoch sind die ersten
vier alternierenden Zählungen 296, 877, 285 und 281. Die zweite Zählung von 877 ent
spricht einer Balken-Zählung 196 einer 3-Breite für den Pseudo-Balken 166 einer
3-Breite. Die Zählung von 877 ist größer als 1,5mal deren Durchschnitts und deshalb
erkennt die CPU 144, daß die Zählungen der Fig. 16A den Zählungen entsprechen,
die von einem nicht aufgelösten Profil produziert sind.
In einem Schritt 208 bestimmt die CPU 144 eine X-Dimension (d. h. eine Breite der Ele
mente einer 1-Breite) durch Dividieren einer Summe der ersten vier Balken-Zählungen
192 durch vier, wenn die ersten vier alternierenden Zählungen größer als die Hälfte de
ren durchschnittlicher Breite und geringer als 1,5mal deren Durchschnitts sind. Für die
Zählungen der Fig. 14A produziert die CPU 144 im Schritt 208 eine durchschnittliche
X-Dimension von dem Start 0-Zeichen 154 von:
(326 + 324 + 289 + 289)/4 = 307.
Wenn die ersten vier alternierenden Zählungen nicht größer als die Hälfte deren Durch
schnitts und geringer als 1,5mal deren Durchschnitts sind, dann erkennt die CPU 144,
daß sich das Symbol 153 außerhalb des Fokus befindet, wie dies durch das Symbol
153′ dargestellt ist. Wie in Fig. 16A dargestellt ist, ist die zweite, alternierende Zählung
von 877 größer als 1,5mal der Durchschnittsbreite der vier ersten Balkenzählungen.
Deshalb ignoriert im Schritt 208 die CPU 144 diese Zählung und mittelt die ersten drei
Balkenzählungen, die größer als die Hälfte deren Durchschnitts sind und kleiner als
1,5mal deren Durchschnitts sind, um eine X-Dimension zu produzieren von:
(296 + 285 + 281)/3 = 287.
In einem Schritt 210 bestimmt die CPU 144, ob sich das Symbol 153 im Fokus befindet,
und den Typ eines Symbols (d. h. zu welcher Symbologie das Symbol gehört) durch ver
gleichen der ersten acht Reihen von Zählungen mit einer Durchsichtstabelle, um zu be
stimmen, ob sich die Zählungen einem Start- oder Stop-Zeichen von einer bekannten
Symbologie anpassen. Der Speicher 146 umfaßt vorzugsweise eine Durchsichtstabelle
für die Symbologie des Code′s 53, die anzeigt, daß das Start 0-Zeichen 154 aus den
Reihen der Elementen-Breiten 1211214 besteht. Die CPU 144 analysiert jede der ersten
acht Zählungen in Fig. 14A, gefolgt durch die Ruhe-Zonen-Zählung 197, um zu bestim
men, welche Elementen-Breite jeder der Zählungen basierend auf der X-Dimension, die
in dem Schritt 208 vorstehend bestimmt ist, entspricht. Die Tabelle 1 nachfolgend stellt
ein Beispiel eines Verfahrens dar, mit dem die CPU 144 Zählungen mit Vielfachen der
X-Dimension vergleicht, um die Breite eines Elements in dem Symbol 153 zu
vergleichen.
Die CPU 144 erkennt in dem Schritt 210, daß die erste Zählung 326 einem Element ei
ner 1-Breite entspricht (d. h. es ist ungefähr gleich zu der X-Dimension von 307), wäh
rend die zweite Zählung von 687 einem Element einer 2-Breite entspricht (ungefähr
zweimal der X-Dimension oder 314). Die darauffolgenden Zählungen von 324, 352, 289,
711, 289 und 1335 entsprechen Elementen-Breiten von 1, 1, 1, 2, 1 und 4. Deshalb be
stimmt die CPU 144 eine Reihe von Elementen-Breiten basierend auf den ersten acht
Zählungen, vergleicht diese Breiten mit der Durchsichtstabelle in dem Speicher 146 und
bestimmt, daß die ersten acht Zählungen in der Fig. 14A dem Start 0-Zeichen 154 in
der Symbologie des Code′s 53 entsprechen. Basierend auf Strings anderer
Elementen-Breiten, die in dem Speicher 146 gespeichert sind, kann die Leseeinrichtung 140 auto
matisch zwischen anderen Symbologien diskriminieren.
In einem Schritt 212 ordnet die CPU 144 die andere Ruhe-Zone 177 von den Reihen
der Zählungen (d. h. an dem Ende der Reihen der Zählungen) zu, mittelt die ersten vier
Balken angrenzend an die andere Ruhe-Zonen-Zählung und bestimmt eine andere
X-Dimension für das Symbol 153. Deshalb ordnet für die Zählungen der Fig. 14A die
CPU 144 die rechte Ruhe-Zone 177′ von der rechten Ruhe-Zonen-Zählung 197′ zu.
Deshalb mittelt die CPU 144 die ersten vier Balken, die Zählungen 245, 235, 239 und
233 besitzen, um eine geschätzte X-Dimension von 238 zu bestimmen. Die CPU 144
vergleicht die Reihen der Zählungen, die der rechten Ruhe-Zonen-Zählung 197′ voraus
gehen, mit der Durchsichtstabelle, die in dem Speicher 146 gespeichert ist, um zu be
stätigen, daß die Reihen der Zählungen dem Stop-Zeichen 155 entsprechen.
In einem Schritt 214 (Fig. 17B) bestimmt die CPU 144, ob das Profil, das von dem
Symbol 153 produziert ist, Beschleunigungsverzerrungen umfaßt. Die CPU 144 ver
gleicht die X-Dimension, die in dem Schritt 208 bestimmt ist, mit der X-Dimension, die in
dem Schritt 212 bestimmt ist. Wenn sich die X-Dimensionen unterscheiden, dann um
faßt das Profil, das von dem Symbol 153 produziert ist, Beschleunigungsverzerrungen.
Für die beispielhaften Zählungen der Fig. 14A unterscheidet sich die X-Dimension, die
vorstehend im Schritt 208 mit 307 bestimmt ist, von der X-Dimension, die vorstehend im
Schritt 212 mit 238 bestimmt ist, und deshalb bestimmt die CPU 144, daß eine leichte
Verzögerungsverzerrung aufgetreten ist, als die elektro-optische Vorrichtung 141 das
Profil der Fig. 3 produzierte. Wenn die CPU 144 eine Beschleunigungs- oder Verzöge
rungsverzerrung (allgemein "Beschleunigung-Verzerrung") im Schritt 214 erfaßt, berech
net die CPU einen geeigneten Beschleunigungs-Verzerrungs-Kompensationsfaktor un
ter Verwendung von Verfahren und Unterprogrammen, die durch den Fachmann auf
dem betreffenden Fachgebiet bekannt sind.
Im Schritt 216 beginnt die CPU 144 nach einer linken oder rechten Ruhe-Zonen-Zäh
lung 197 oder 197′ und analysiert jedes Symbol-Zeichen als Gruppe von acht Zählun
gen entsprechend den acht Elementen, oder als Gruppen aus 13mal der X-Dimension,
und bestimmt eine Reihe von acht Elementen-Breiten für das Symbol-Zeichen. Die CPU
144 wendet auch irgendeinen Beschleunigungskorrekturfaktor an, um sicherzustellen,
daß jede Elementen-Breite korrekt bestimmt ist.
Zum Beispiel analysiert für das erste Daten-Zeichen "C" in der Reihe von Zählungen der
Fig. 14A die CPU 144 im Schritt 216 die acht Reihenauszählungen, die dem Start
0-Zeichen 154 folgen, als 311,1318, 302, 988, 306, 335, 309 und 350. Die CPU 144 prüft
die Zählungen und schätzt eine Breite des Elements in dem Symbol 153 ab, das die
Zählung basierend auf der Tabelle 1 vorstehend produziert. Zum Beispiel ist, unter der
Annahme zur Vereinfachung einer geschätzten X-Dimension, ohne irgendeine Be
schleunigungs-Verzerrungskompensation, von 272,5, die erste Zählung von 311 größer
als die Hälfte der durchschnittlichen X-Dimension und geringer als 1,5mal der
X-Dimension. Deshalb bestimmt die CPU 144, daß die erste Zählung von 311 einem
Element (einem Balken einer 1-Breite) entspricht. Die nächste Zählung von 1318 ist grö
ßer als 3,5mal der X-Dimension und geringer als 4,5mal der X-Dimension, wobei sie
deshalb einem Element (einem Zwischenraum) einer 4-Breite entspricht.
Wenn die CPU 144 nicht in der Lage ist, die Breite eines Elements der Zählung inner
halb einer annehmbaren Fehlerbreite zu bestimmen, dann analysiert die CPU jedes
Symbol-Zeichen basierend auf 13mal der X-Dimension. Für die ersten 13 X-Dimensio
nen, die dem Start-Zeichen 154 folgen, dividiert die CPU jede Zählung durch die ge
schätzte X-Dimension, um 13 X-Dimensionen für ein einzelnes Symbol-Zeichen zu ana
lysieren. Tabelle 2 nachfolgend zeigt ein Beispiel, wie die CPU 144 13 X-Dimensionen
die dem Start 0-Zeichen 154 folgen, auswählt:
Fig. 14A stellt die verbleibenden Gruppen von acht Zählungen dar, die in deren ent
sprechende Daten-Zeichen aus "O", "D", "E" "[Zwischenraum]", "5" und "3" und das
Prüf-Zeichen CK (entsprechend dem Daten-Zeichen "P") zergliedert sind. Fig. 14B
stellt ähnlich verschiedene Gruppen aus acht Zählungen dar, die in Daten-Zeichen
zergliedert sind (allerdings natürlich in einer umgekehrten Reihenfolge gegenüber derje
nigen der Fig. 14A).
Die Zählungen der Fig. 14A und 14B entsprechen den Zählungen, die dann erfolgt
sind, wenn sich das Symbol 153 im Fokus befindet. Die Fig. 16A und 16B entspre
chen allerdings Zählungen, die dann erzeugt sind, wenn sich das Symbol 153 außerhalb
des Fokus befindet. Deshalb umfaßt die Reihe der Zählungen Zählungen, die
Pseudo-Elementen entsprechen. In den Reihen aus Zählungen der Fig. 16A analysiert die CPU
144 im Schritt 216 die ersten acht Zählungen, der linken Ruhe-Zonen-Zählung 197 fol
gend, als 296, 636, 877, 652, 877, 652, 285,1256, 281 und 1250. Basierend auf Tabelle
1 bestimmt die CPU 144, daß diese acht Zählungen den nachfolgenden Reihen aus Ele
menten-Breiten entsprechen: 1, 2, 3, 2, 1, 4, 1 und 4.
Die CPU 144 erkennt, daß der String aus Elementen-Breiten nicht einem gültigen Zei
chen in der Symbologie des Code′s 53 entspricht. Durch Zerteilen der Zählungen in
X-Dimensionen erkennt die CPU 144 auch, daß der String der Elementen-Breiten gleich
18-mal der X-Dimension ist. Tabelle 3 nachfolgend demonstriert die Anzahl der
X-Dimensionen:
Unter dem Code 53 besitzen alle Symbole (mit Ausnahme des Stop-Zeichens) eine Brei
te von 13mal der X-Dimension. Deshalb erkennt die CPU 144, daß der String der Ele
menten-Breiten nicht einem gültigen Symbol-Zeichen entspricht.
Deshalb dividiert im Schritt 218 die CPU 140 alle Zählungen, die Balken größer als 1 in
nerhalb des Strings der Zählungen entsprechen, in individuelle Elemente einer 1-Breite.
Deshalb analysiert, unter der Kenntnis, daß jede andere Zählung einem Balken einer
1-Breite entsprechen muß, und deshalb ungefähr gleich der X-Dimension sein muß, die
CPU 144 sequentiell alle alternierenden Zählungen nicht gleich zu der X-Dimension und
dividiert sie in Elemente einer 1-Breite. Ein Analysieren der ersten sechs Zählungen, der
linken Ruhe-Zonen-Zählung 197 folgend, erkennt die CPU 144, im Schritt 218, daß die
dritte Zählung von 877 einem Balken einer 1-Breite entsprechen sollte und deshalb
gleich ungefähr 272,5 (die beispielhafte X-Dimension) sein sollte. Unter Dividieren der
Zählung von 877 durch die X-Dimension dividiert die CPU 144 die Zählung in drei X-Di
mensionen (der Zwischenraum 169 einer 1-Breite zwischen den Balken 162 einer
1-Breite in dem Start 0-Zeichen 154 (Fig. 2).
Gelegentlich wird ein Pseudo-Element zwischen zwei Symbol-Zeichen auftreten. Des
halb dividiert in einem Schritt 220 die CPU 144 alle Elemente einer 1-Breite in einem
Pseudo-Element heraus, die zwischen zwei Symbol-Zeichen aufgetreten sind, so daß
jedes der Symbol-Zeichen 13 X-Dimensionen enthält. Zum Beispiel bestimmt, unter
Analysieren der nächsten fünf Zählungen als 281, 1250, 290, 923 und 2107 in Fig.
16A, die CPU 144, in einem Schritt 220, daß die Zählung von 2107 drei Zwischenräu
men einer 1-Breite entspricht, die durch vier Balken einer 1-Breite separiert werden.
Deshalb entspricht die Zählung 2107 sieben Elementen. Wenn die CPU 144 acht Ele
mente mit insgesamt 13mal der X-Dimension für jedes Symbol-Zeichen sammelt, er
kennt die CPU, daß die Zählungen 281, 1250, 290 und 923 den vier Elementen entspre
chen, die Breiten von 1, 4, 1 und 3 haben. Deshalb entsprechen vier der sieben X-Di
mensionen, die in der Zählung von 2107 verkörpert sind, vier Elementen für das erste
Symbol-Zeichen, während die verbleibenden drei X-Dimensionen in der Zählung 2107
Elementen für das nächste Symbol-Zeichen entsprechen. Anders ausgedrückt besteht
das erste Symbol-Zeichen aus Elementen, die Breiten von 1, 4, 1, 3, 1, 1, 1, und 1 ha
ben, während die ersten drei Elementen-Breiten in dem zweiten Symbol-Zeichen 1, 1
und 1 sind. Die erste Gruppe aus Zählungen, die dem Start 0-Zeichen 154 folgen, ent
spricht dem Daten-Zeichen, während die zweite Gruppe aus Zählungen dem Daten-Zei
chen "O" entspricht, wie dies in Fig. 16A dargestellt ist. Die CPU 144 fährt in den
Schritten 216, 218 und 220 durch die Reihen der Zählungen der Fig. 16A fort, um alle
Balken als Balken einer 1-Breite oder als Pseudo-Elemente zu identifizieren. Die Pseu
do-Elemente werden dann in deren jeweiligen Elemente einer 1-Breite aufgebrochen,
und jedes Pseudo-Element an einer Grenze zwischen zwei Symbol-Zeichen wird weiter
hin zwischen Symbol-Zeichen dividiert bzw. gegliedert.
Nach einer Bestimmung der Breiten der Elemente aus den Reihen der Zählungen deco
diert die CPU 144, in einem Schritt 224, das Symbol in Daten-Zeichen durch Vergleich
jeder Reihe aus acht Elementen-Breiten mit der Durchsichtstabelle in dem Speicher
146. In dem Schritt 224 wendet die CPU 144 auch das geeignete Zeichen-Prüfschema
für die Symbologie an, falls ein solches vorhanden ist, und zwar unter Verwendung ir
gendwelcher Prüf-Zeichen in dem Symbol, um die decodierten Daten-Zeichen zu verifi
zieren. Zum Beispiel wendet die CPU 144 das Fehlererfassungsverfahren, das in der
vorstehend angeführten US-Patentanmeldung des Erfinders beschrieben ist, an und
vergleicht das Ergebnis mit dem Prüf-Zeichen CK. Falls irgendwelche anderen Fehlerer
fassungsverfahren oder Fehlerkorrektur-Zeichen zu dem Symbol hinzugefügt worden
sind, dann führt die CPU 144, in dem Schritt 224, die geeigneten
Prüf/Fehlerkorrektur-Algorithmen aus. Die decodierten Daten-Zeichen können dann über die Leitung 149 zu
dem Host-Computer 151 oder einer geeigneten Anwendung ausgegeben werden.
Zu Zeitpunkten, zu denen die linke und die rechte Ruhe-Zone 177 und 177′ verrauscht
sein können, oder aufgrund von anderen Faktoren, könnte die linke und die rechte Ru
he-Zonen-Zählung 197 und 197′ schwierig in den Reihen der Zählungen zu lokalisieren
sein. Zum Beispiel können der Wellenformer- und der Zähl-Schaltkreis 142 eine Zäh
lung aus der Ruhe-Zone produzieren, die nicht ungefähr 10mal größer als die kleinste
Zählung in der Reihe der Zählungen ist. Deshalb führt die CPU 144 das Programm 300
durch, um die Balken der 1-Breite in den Reihen der Zählungen für die Symbologie des
Code′s 53 zu lokalisieren (oder das Element einer einzelnen Breite für andere
Einzel-Breiten-Symbologien). Wie die Fig. 18A zeigt, geht die CPU 144, die dahingehend
fehlgeschlagen ist, die Ruhe-Zone in dem Schritt 204 (Fig. 17A) zu lokalisieren, zu der
Mitte der Reihe der Zählungen über, um die Balken einer 1-Breite in den Reihen der
Zählungen zu lokalisieren, wobei die CPU 144 zu der Mitte der Reihen der Zählungen
springt, da die Mitte der Zählungen am wahrscheinlichsten den Zählungen entspricht,
die von einem Symbol, im Gegensatz zu einem Rauschen, usw., produziert sind.
Die CPU 144 erkennt, daß, der linken oder der rechten Ruhe-Zonen-Zählung 197 und
197′ folgend, das erste Element einem Balken entspricht und alternierende Elemente
danach ähnlich zu Balken entsprechen. In ähnlicher Weise entsprechen die erste Zäh
lung, die dem ersten Balken folgt, und alle alternierenden Zählungen danach den Zwi
schenräumen. Allerdings ist, falls die CPU 144 innerhalb der Mitte der Zählungen be
ginnt, die CPU anfänglich nicht in der Lage, zu bestimmen, ob eine ausgewählte Zäh
lung einem Balken oder einem Zwischenraum entspricht.
Deshalb findet in einem Schritt 304 die CPU 144 die kleinste Zählung in der Mitte der
Reihe der Zählungen, die dem kleinsten Element von dem Symbol 153 entspricht. Wie
die Zählungen der Fig. 16A zeigen, findet die CPU 144, in einem Schritt 304, die Zäh
lung von 269 (innerhalb der Reihe der Zählungen entsprechend dem Daten-Zeichen
"E"). In einem Schritt 306 erklärt die CPU 144, daß die Zählung von 269 dem
Element-Typ einer 1-Breite der Einzel-Breiten-Symbologie (d. h. ein Balken in der Symbologie
des Code′s 53) entspricht.
In einem Schritt 308 verifiziert die CPU 144, daß die Zählung 269 dem kleinsten Ele
ment entspricht, und zwar durch Verifizieren, daß die nächsten paar (z. B. drei) alternie
renden Elemente ungefähr dieselbe Breite besitzen. Deshalb erkennt die CPU 144, daß
die nächsten, alternierenden Zählungen gleich zu 284, 280 und 254 sind, die im wesent
lichen ähnlich zu der anfänglich ausgewählten Zählung von 269 sind. Demzufolge be
stätigt in dem Schritt 308 die CPU 144, daß die Zählung von 269 den Balken einer
1-Breite in dem Symbol 153 entspricht und daß jede andere Zählung auch einem Balken
entspricht. Die CPU 144 kehrt deshalb zu dem Schritt 208 in dem Decodier-Programm
200 zurück, bestimmt eine X-Dimension, versucht das Start- und das Stop-Zeichen zu
zuordnen, usw.
Wenn sich das Symbol 153 außerhalb des Fokus befindet, dann werden alle Zwischen
räume einer 1-Breite verloren sein. Deshalb ordnet durch Zuordnen der kleinsten Zäh
lung in der Mitte der Reihe der Zählungen die CPU 144 nicht variabel die Balken einer
1-Breite in dem Symbol aus der Reihe der Zählungen zu. Die CPU 144 analysiert die
drei nächsten alternierenden Zählungen, da sie am wahrscheinlichsten den kleinsten
Betrag einer Beschleunigungs-Verzerrung haben werden.
Die CPU 144 bestimmt allerdings zu diesem Zeitpunkt nicht, ob sich das Symbol im Fo
kus befindet. Deshalb könnte, wenn sich das Symbol 153 im Fokus befindet, allerdings
rauschbehaftete Ruhe-Zonen besitzt, die CPU 144 in dem Schritt 308 anfänglich eine
Zählung auswählen, die einem Zwischenraum entspricht. Zum Beispiel ergibt sich, wenn
die CPU 144 die Zählung 335 in den Reihen der Zählungen der Fig. 14A auswählt (in
nerhalb des Daten-Zeichens "5") und die nächsten drei alternierenden Zählungen analy
siert, der nachfolgende String aus Zählungen: 339, 348 und 1227. Die CPU 144 erkennt
in dem Schritt 308, daß die dritte, alternierende Zählung von 1227 im wesentlichen nicht
gleich zu der anfänglich ausgewählten Zählung von 335 ist. Demzufolge schiebt sich, in
dem Schritt 310, die CPU 144 über eine Zählung (d. h. ein Element) in dem String aus
Zählungen und verifiziert, daß der nächste String aus drei alternierenden Zählungen
dieselbe Breite besitzt. Unter Auswählen der Zählung von 271 und Analysieren der
nächsten drei alternierenden Zählungen von 258, 253 und 262 bestätigt die CPU 144, in
dem Schritt 310, daß die zweite, ausgewählte Zählung von 271 einem Balken einer
1-Breite in den Reihen der Zählungen der Fig. 14A entspricht. Danach kehrt, in dem
Schritt 310, die CPU 144 zu dem Schritt 208 zurück, um das Programm 200 zu decodie
ren, schätzt die X-Dimension ab, versucht das Start- und Stop-Zeichen zuzuordnen,
usw.
Wenn sich das Symbol 153 außerhalb des Fokus befindet, kann die CPU 144 nicht im
mer die Balken einer 1-Breite in der Mitte der Reihe der Zählungen zuordnen. Zum Bei
spiel werden, wenn die CPU 144 anfänglich die Zählung von 269 in Fig. 16A auswählt
(innerhalb des "Zwischenraum"- Daten-Zeichen) die nächsten drei alternierenden Zäh
lungen 249, 257 und 1984 gezählt. Als Folge ordnet dann, in dem Schritt 312, die CPU
144 die größten Elementen-Breiten in der Mitte der Zeitabstimmungs-Zählungen zu.
Wenn sich das Symbol 153 außerhalb des Fokus befindet, dann entspricht das größte
Element innerhalb der Reihen der Zeitabstimmungs-Zählungen wahrscheinlich einem
Pseudo-Element, das aus Zwischenräumen einer 1-Breite besteht, die durch Balken ei
ner 1-Breite voneinander separiert sind. Deshalb ordnet, unter Analysieren der Reihen
der Element-Zählungen für die größte Zählung, die CPU 144, in dem Schritt 312, die
Zählung von 1984 zu (zwischen den Daten-Zeichen "5" und "3"), und erklärt, daß die
Zählung von 1984 ein Balken in der Symbologie des Code′s 53 ist. Für andere Symbolo
gien, wie beispielsweise Symbologien, die nur Zwischenräume einer 1-Breite einsetzen,
würde die CPU, in dem Schritt 312, das größte Element innerhalb der Reihen der Ele
mente als ein Zwischenraum deklarieren.
In dem Schritt 314 ordnet die CPU 144 die drei nächsten, kleinsten Zählungen entspre
chend den Zwischenräumen zu und mittelt diese, um den durchschnittlichen, schmalen
Zwischenraum zu bestimmen, der ein Zwischenraum einer 2-Breite ist, wenn sich das
Symbol außerhalb des Fokus befindet. Deshalb mittelt die CPU 144 die Zählungen von
591, 581 und 580 in der Reihe der Zählungen der Fig. 16A, um die durchschnittliche
Breite von 584 für die Zwischenräume einer 2-Breite in dem sich außerhalb des Fokus
befindenden Symbols 153′ zu bestimmen. Im Schritt 316 ordnet die CPU 144 die drei
nächsten, kleinsten Zählungen entsprechend Balken einer 1-Breite zu und mittelt diese,
um die Breite des durchschnittlichen, schmalen Balkens zu bestimmen. Deshalb mittelt,
von der anfänglich ausgewählten Zählung von 1984, die CPU die Balken-Zählungen von
242, 235 und 231 im Schritt 316, um eine durchschnittliche Breite von 236 für die Balken
einer 1-Breite zu bestimmen.
In einem Schritt 318 bestimmt die CPU 144 eine abgeschätzte X-Dimension von 273,3
für das Symbol als eine Summe des durchschnittlichen, schmalen Balkens und des
durchschnittlichen, schmalen Zwischenraums, dividiert durch drei (der Zwischenraum ei
ner 2-Breite plus der Balken einer 1-Breite, dividiert durch drei, gleich der geschätzten
X-Dimension). Danach kehrt die CPU 144 zu dem Schritt 210 in dem Decodier-Pro
gramm 200 zurück, versucht, das Start- und das Stop-Zeichen basierend auf der X-Di
mension, die in dem Schritt 318 berechnet ist, zuzuordnen, usw.
Wie vorstehend erläutert ist, schafft die vorliegende Erfindung ein Verfahren und ein
Gerät zum Decodieren von sich außerhalb des Fokus befindlichen Symbolen von Ein
zel-Breiten-Symbologien unter Verwendung standardmäßiger Wellenform- und
Zähl-Schaltkreisen 124. Profile, die von sich außerhalb des Fokus befindlichen Symbolen
produziert sind, lösen die Einzel- (1-Breite) Elemente der Symbologien (wie beispiels
weise die Balken in der Symbologie des Code′s 53) als entweder Elemente einer
1-Breite oder als Pseudo-Elemente auf. Ein standardmäßiger Wellenform- und
Zähl-Schaltkreis, der mit einer standardmäßigen CPU gekoppelt ist, kann das Symbol deco
dieren, da die Pseudo-Balken leicht in eine ungrade Anzahl alternierender Balken einer
1-Breite und Zwischenräume unterteilt werden können. Die vorliegende Erfindung ist all
gemein vorstehend anhand eines Decodierens von sich außerhalb des Fokus befindli
chen Symbolen unter Verwendung eines beispielhaften Programms beschrieben wor
den. Allerdings können andere Decodier-Programme oder Schritte anstelle davon ver
wendet werden. Zum Beispiel können alle Zählungen entsprechend den Zwischenräu
men separat aus den Zählungen entsprechend der Balken bestimmt werden. Als Folge
vergleicht die CPU 144 Zählungen oder ähnliche Elemente, um deren Breiten zu bestim
men. Die vorliegende Erfindung kann auch andere bekannte Decodierverfahren einset
zen, wie beispielsweise eine Decodierung Kante zu Kante (Elementenpaare) für indivi
duelle Elemente in dem Symbol 153, Faktor R Decodierverfahren, Normalisierung, usw.
Während die detaillierte Beschreibung vorstehend teilweise anhand von spezifischen
Beispielen angegeben worden ist, werden Fachleute auf dem betreffenden Fachgebiet
erkennen, daß viele andere Variationen verwendet werden können, um das Ziel der of
fenbarten Erfindung zu erreichen. Fachleute auf dem betreffenden Fachgebiet werden
erkennen, daß die vorliegende Erfindung in zahlreichen anderen Daten-Zeichen-Codier-An
wendungen verwendbar ist, und zur Verwendung mit irgendeiner anderen
Einzel-Breiten-Symbologie, und an Leseeinrichtungen für solche Symbologien anpaßbar ist.
Während die vorliegende Erfindung vorstehend in Bezug auf ein Verfahren beschrieben
worden ist, das durch die CPU 144 durchgeführt wird, können die Programme 200 und
300 unter Verwendung eines geeigneten Schaltkreises, wie beispielsweise logische
Gatter, ausgeführt werden. Demgemäß kann ersichtlich werden, daß verschiedene äqui
valente Modifikationen der vorstehend beschriebenen Ausführungsformen vorgenom
men werden können, ohne den allgemeinen Gedanken und den Schutzumfang der Er
findung zu verlassen. Deshalb ist die vorliegende Erfindung nur durch die beigefügten
Ansprüche eingeschränkt.
Claims (21)
1. Verfahren zum Decodieren eines Balkencode-Symbols, das eine Vielzahl Zeichen
darstellt, wobei das Balkencode-Symbol eine Vielzahl relativ zueinander beabstan
deter Balken, die eine erste Breite besitzen und Zwischenräume zwischen den Bal
ken, die die erste Breite besitzen, umfaßt, wobei einer der Balken und der Zwi
schenräume breite Elemente besitzt, die mindestens eine zweite Breite besitzen,
während der andere der Balken und Zwischenräume nur die erste Breite besitzt,
und wobei die zweite Breite größer als die erste Breite ist, wobei das Verfahren ei
nes Decodierens des Balkencode-Symbols die Schritte aufweist:
Empfangen von Licht, das von dem Balkencode-Symbol reflektiert ist, und Produ zieren eines Ausgangssignals daraus, das ein Reflexionsvermögen der Balken und der Zwischenräume, die das Balkencode-Symbol aufweist, darstellt;
Empfangen des Ausgangssignals und Produzieren eines Zählsignals, das eine Reihe von Zählungen besitzt, die mindestens einige der breiten Elemente identifi ziert, und die falsch mindestens eine Gruppe der Balken und Zwischenräume iden tifiziert, die die erste Breite besitzen, als ein pseudo-breites Element, das eine Ge samtbreite ungleich einer Summe der ersten Breiten der Balken und der Zwischen räume in der mindestens einen Gruppe besitzen;
Bestimmung einer schmalen Breite der Balken und der Zwischenräume, die die er ste Breite besitzen, basierend auf dem Zählsignal;
Dividieren des pseudo-breiten Elements durch die schmaleren Breiten, um die Bal ken und Zwischenräume zu identifizieren, die die erste Breite in der mindestens ei nen Gruppe besitzen; und
Bestimmen der Informationen, die in dem Balkencode-Symbol codiert sind, basie rend auf dem Zählsignal und den Balken und Zwischenräumen, die die erste Breite besitzen abgeteilt von dem pseudo-breiten Element.
Empfangen von Licht, das von dem Balkencode-Symbol reflektiert ist, und Produ zieren eines Ausgangssignals daraus, das ein Reflexionsvermögen der Balken und der Zwischenräume, die das Balkencode-Symbol aufweist, darstellt;
Empfangen des Ausgangssignals und Produzieren eines Zählsignals, das eine Reihe von Zählungen besitzt, die mindestens einige der breiten Elemente identifi ziert, und die falsch mindestens eine Gruppe der Balken und Zwischenräume iden tifiziert, die die erste Breite besitzen, als ein pseudo-breites Element, das eine Ge samtbreite ungleich einer Summe der ersten Breiten der Balken und der Zwischen räume in der mindestens einen Gruppe besitzen;
Bestimmung einer schmalen Breite der Balken und der Zwischenräume, die die er ste Breite besitzen, basierend auf dem Zählsignal;
Dividieren des pseudo-breiten Elements durch die schmaleren Breiten, um die Bal ken und Zwischenräume zu identifizieren, die die erste Breite in der mindestens ei nen Gruppe besitzen; und
Bestimmen der Informationen, die in dem Balkencode-Symbol codiert sind, basie rend auf dem Zählsignal und den Balken und Zwischenräumen, die die erste Breite besitzen abgeteilt von dem pseudo-breiten Element.
2. Verfahren nach Anspruch 1, wobei das Balkencode-Symbol eine Ruhe-Zone an
grenzend an einen ersten Balken in dem Balkencode-Symbol umfaßt und wobei
der Schritt eines Bestimmens einer schmalen Breite und der Zwischenräume, die
die erste Breite besitzen, den Schritt eines Zuordnens, aus der Reihe der Zählun
gen in dem Zählsignal, der Ruhe-Zone angrenzend an den ersten Balken umfaßt.
3. Verfahren nach Anspruch 2, wobei der Schritt eines Bestimmens einer schmalen
Breite der Balken und der Zwischenräume, die die erste Breite besitzen, die Schrit
te umfaßt:
Auswahl verschiedener alternierender Zählungen in dem Zählsignal in der Nähe zu der Ruhe-Zone; und
Mittelung der verschiedenen, alternierenden Zählungen, um die schmale Breite zu bestimmen.
Auswahl verschiedener alternierender Zählungen in dem Zählsignal in der Nähe zu der Ruhe-Zone; und
Mittelung der verschiedenen, alternierenden Zählungen, um die schmale Breite zu bestimmen.
4. Verfahren nach Anspruch 3, wobei der Schritt einer Auswahl verschiedener alter
nierender Zählungen nur Zählungen auswählt, die größer als ein erster, vorbe
stimmter Wert und geringer als ein zweiter, vorbestimmter Wert sind.
5. Verfahren nach Anspruch 2, wobei der Schritt eines Bestimmens einer schmalen
Breite der Balken und der Zwischenräume, die die erste Breite besitzen, die Schrit
te umfaßt:
Identifizieren von Start- oder Stop-Zeichen in dem Balkencode-Symbol basierend auf bestimmten Zählungen in dem Zählsignal, die in der Nähe zu der Ruhe-Zone liegen;
Auswahl verschiedener alternierender Zählungen aus den bestimmten Zählungen in dem Zählsignal;
Bestimmen, ob die ausgewählten, verschiedenen alternierenden Zählungen in dem Zählsignal ungefähr gleich sind;
Bestimmen, daß sich das Balkencode-Symbol außerhalb des Fokus befindet, falls alle der ausgewählten, verschiedenen, alternierenden Zählungen nicht gleich sind; und
Mittelung nur der verschiedenen, alternierenden Zählungen, die ungefähr gleich sind, um die schmale Breite zu bestimmen.
Identifizieren von Start- oder Stop-Zeichen in dem Balkencode-Symbol basierend auf bestimmten Zählungen in dem Zählsignal, die in der Nähe zu der Ruhe-Zone liegen;
Auswahl verschiedener alternierender Zählungen aus den bestimmten Zählungen in dem Zählsignal;
Bestimmen, ob die ausgewählten, verschiedenen alternierenden Zählungen in dem Zählsignal ungefähr gleich sind;
Bestimmen, daß sich das Balkencode-Symbol außerhalb des Fokus befindet, falls alle der ausgewählten, verschiedenen, alternierenden Zählungen nicht gleich sind; und
Mittelung nur der verschiedenen, alternierenden Zählungen, die ungefähr gleich sind, um die schmale Breite zu bestimmen.
6. Verfahren nach Anspruch 2, das weiterhin die Schritte aufweist:
Bestimmen, daß die Ruhe-Zone nicht aus der Reihe der Zählungen zugeordnet werden kann;
Auswahl einer Zählung in einer Mitte der Reihe der Zählungen; und
Bestimmen, ob die ausgewählte Zählung zu den anderen der Balken und Zwi schenräume, die nur die erste Breite besitzen, entspricht.
Bestimmen, daß die Ruhe-Zone nicht aus der Reihe der Zählungen zugeordnet werden kann;
Auswahl einer Zählung in einer Mitte der Reihe der Zählungen; und
Bestimmen, ob die ausgewählte Zählung zu den anderen der Balken und Zwi schenräume, die nur die erste Breite besitzen, entspricht.
7. Verfahren nach Anspruch 6, wobei der Schritt einer Auswahl einer Zählung in einer
Mitte der Reihe der Zählungen eine Zählung auswählt, die einen kleinen Wert ver
glichen mit den Zählungen in der Nähe der ausgewählten Zählung besitzt, und wo
bei der Schritt eines Bestimmens, ob die ausgewählte Zählung zu den anderen der
Balken und Zwischenräumen entspricht, die nur die erste Breite besitzen, die
Schritte umfaßt:
Prüfen verschiedener alternierender Zählungen, die der ausgewählten Zählung folgen;
Bestimmen, ob die verschiedenen, alternierenden Zählungen im Vergleich zu der ausgewählten Zählung annähernd gleich sind; und
Bestätigen, daß die ausgewählte Zählung den anderen der Balken und Zwischen räume entspricht, die nur die erste Breite besitzen, wenn die verschiedenen, alter nierenden Zählungen ungefähr gleich zu der ausgewählten Zählung sind.
Prüfen verschiedener alternierender Zählungen, die der ausgewählten Zählung folgen;
Bestimmen, ob die verschiedenen, alternierenden Zählungen im Vergleich zu der ausgewählten Zählung annähernd gleich sind; und
Bestätigen, daß die ausgewählte Zählung den anderen der Balken und Zwischen räume entspricht, die nur die erste Breite besitzen, wenn die verschiedenen, alter nierenden Zählungen ungefähr gleich zu der ausgewählten Zählung sind.
8. Verfahren nach Anspruch 7, das weiterhin die Schritte aufweist:
Bestimmen, daß die verschiedenen, alternierenden Zählungen nicht ungefähr gleich zu der ausgewählten Zählung sind;
Bestimmen einer angrenzenden Zählung angrenzend an die ausgewählte Zählung und verschiedener anderer Zählungen, die der angrenzenden Zählung folgen;
Bestimmen, ob die verschiedenen anderen Zählungen im Vergleich zu der angren zenden Zählung annähernd gleich sind; und
Bestätigen, daß die angrenzende Zählung der anderen der Balken und Zwischen räume entspricht, die nur die erste Breite besitzen, wenn die anderen Zählungen annähernd gleich zu der angrenzenden Zählung sind.
Bestimmen, daß die verschiedenen, alternierenden Zählungen nicht ungefähr gleich zu der ausgewählten Zählung sind;
Bestimmen einer angrenzenden Zählung angrenzend an die ausgewählte Zählung und verschiedener anderer Zählungen, die der angrenzenden Zählung folgen;
Bestimmen, ob die verschiedenen anderen Zählungen im Vergleich zu der angren zenden Zählung annähernd gleich sind; und
Bestätigen, daß die angrenzende Zählung der anderen der Balken und Zwischen räume entspricht, die nur die erste Breite besitzen, wenn die anderen Zählungen annähernd gleich zu der angrenzenden Zählung sind.
9. Verfahren nach Anspruch 8, das weiterhin die Schritte aufweist:
Bestimmen, daß die anderen Zählungen nicht ungefähr gleich zu der angrenzen den Zählung sind; und
Auswahl einer neuen Zählung in der Mitte der Reihe der Zählungen als entspre chend zu den anderen der Balken und Zwischenräume, die nur die erste Breite be sitzen, wobei die neue Zählung einen großen Wert verglichen mit Zählungen in der Nähe zu der neuen Zählung besitzt.
Bestimmen, daß die anderen Zählungen nicht ungefähr gleich zu der angrenzen den Zählung sind; und
Auswahl einer neuen Zählung in der Mitte der Reihe der Zählungen als entspre chend zu den anderen der Balken und Zwischenräume, die nur die erste Breite be sitzen, wobei die neue Zählung einen großen Wert verglichen mit Zählungen in der Nähe zu der neuen Zählung besitzt.
10. Verfahren nach Anspruch 9, wobei der Schritt eines Bestimmens einer schmalen
Breite der Balken und Zwischenräume, die die erste Breite besitzen, die Schritte
umfaßt:
Auswahl, in dem Zählsignal, verschiedener Balken-Zählungen entsprechend zu Balken in dem Balkencode-Symbol und verschiedener Zwischenraum-Zählungen entsprechend den Zwischenräumen in dem Balkencode-Symbol, wobei die ausge wählten Balken- und Zwischenraum-Zählungen in der Nähe zu der neuen Zählung in der Reihe der Zählungen liegen;
Bestimmen eines Werts aus den ausgewählten Balken und Zwischenraum-Zählun gen; und
Dividieren des Werts durch einen bestimmten Betrag, um die Breite der Balken und Zwischenräume, die die erste Breite besitzen, zu bestimmen.
Auswahl, in dem Zählsignal, verschiedener Balken-Zählungen entsprechend zu Balken in dem Balkencode-Symbol und verschiedener Zwischenraum-Zählungen entsprechend den Zwischenräumen in dem Balkencode-Symbol, wobei die ausge wählten Balken- und Zwischenraum-Zählungen in der Nähe zu der neuen Zählung in der Reihe der Zählungen liegen;
Bestimmen eines Werts aus den ausgewählten Balken und Zwischenraum-Zählun gen; und
Dividieren des Werts durch einen bestimmten Betrag, um die Breite der Balken und Zwischenräume, die die erste Breite besitzen, zu bestimmen.
11. Verfahren nach Anspruch 2, wobei der Schritt einer Bestimmung einer schmalen
Breite die Schritte umfaßt;
Identifizieren von Start- und Stop-Zeichen in dem Balkencode-Symbol basierend auf Start- und Stop-Zählungen in dem Zählsignal, die in der Nähe der Ruhe-Zone sind;
Bestimmen einer ersten, schmalen Breite der Balken und Zwischenräume, die eine erste Breite besitzen, basierend auf den Start-Zählungen in dem Zählsignal;
Bestimmen einer zweiten, schmalen Breite der Balken und Zwischenräume, die die erste Breite besitzen, basierend auf den Stop-Zählungen in dem Zählsignal;
Bestimmen, ob das Zählsignal eine Beschleunigungs-Verzerrung besitzt, und zwar durch Vergleich der ersten und der zweiten schmalen Breite; und
Anwenden eines Kompensationsfaktors auf das Zählsignal, um die Beschleuni gungs-Verzerrung zu kompensieren, wenn das Zählsignal eine Beschleunigung oder Verzerrung umfaßt.
Identifizieren von Start- und Stop-Zeichen in dem Balkencode-Symbol basierend auf Start- und Stop-Zählungen in dem Zählsignal, die in der Nähe der Ruhe-Zone sind;
Bestimmen einer ersten, schmalen Breite der Balken und Zwischenräume, die eine erste Breite besitzen, basierend auf den Start-Zählungen in dem Zählsignal;
Bestimmen einer zweiten, schmalen Breite der Balken und Zwischenräume, die die erste Breite besitzen, basierend auf den Stop-Zählungen in dem Zählsignal;
Bestimmen, ob das Zählsignal eine Beschleunigungs-Verzerrung besitzt, und zwar durch Vergleich der ersten und der zweiten schmalen Breite; und
Anwenden eines Kompensationsfaktors auf das Zählsignal, um die Beschleuni gungs-Verzerrung zu kompensieren, wenn das Zählsignal eine Beschleunigung oder Verzerrung umfaßt.
12. Verfahren nach Anspruch 1, das weiterhin die Schritte aufweist:
Identifizieren von Start- oder Stop-Zeichen in dem Balkencode-Symbol basierend auf dem Zählsignal; und
Bestimmen eines Typs einer Symbologie, aus der das Balkencode-Symbol erzeugt wurde, basierend auf dem identifizierten Start- oder Stop-Zeichen in dem Balkencode-Symbol.
Identifizieren von Start- oder Stop-Zeichen in dem Balkencode-Symbol basierend auf dem Zählsignal; und
Bestimmen eines Typs einer Symbologie, aus der das Balkencode-Symbol erzeugt wurde, basierend auf dem identifizierten Start- oder Stop-Zeichen in dem Balkencode-Symbol.
13. Verfahren nach Anspruch 12, wobei der Schritt eines Bestimmens eines Typs einer
Symbologie bestimmt, daß das Balkencode-Symbol aus der Symbologie des
Code′s 53 erzeugt wurde, und wobei die anderen Balken und Zwischenräume, die
nur die erste Breite besitzen, dem Balken entsprechen.
14, Verfahren nach Anspruch 1, wobei der Schritt eines Zerteilens des pseudo-breiten
Elements durch die schmale Breite das pseudo-breite Element in nur eine ungera
de Anzahl von Balken und Zwischenräumen unterteilt, die die erste Breite
besitzen.
15. Verfahren nach Anspruch 1, wobei der Schritt eines Zerteilens des pseudo-breiten
Elements durch die schmale Breite, um die Balken und Zwischenräume zu identifi
zieren, die die erste Breite in der mindestens einen Gruppe besitzen, die Schritte
umfaßt:
Zerteilen der Reihe der Zählungen in separate Zeichen; und
falls das pseudo-breite Element zwischen zwei separate Zeichen fällt, dann Zertei len des pseudo-breiten Elements in die Balken und Zwischenräume, die die erste Breite besitzen, zwischen den zwei Zeichen, durch Dividieren des pseudo-breiten Elements durch die schmale Breite.
Zerteilen der Reihe der Zählungen in separate Zeichen; und
falls das pseudo-breite Element zwischen zwei separate Zeichen fällt, dann Zertei len des pseudo-breiten Elements in die Balken und Zwischenräume, die die erste Breite besitzen, zwischen den zwei Zeichen, durch Dividieren des pseudo-breiten Elements durch die schmale Breite.
16. Verfahren zum Decodieren eines maschinenlesbaren Symbols, das codierte Infor
mationen darstellt, wobei das Symbol eine Vielzahl von relativ zueinander beab
standeter, zwei-dimensionaler, geometrischer Formen eines ersten und eines zwei
ten Typs umfaßt, wobei die Form des ersten Typs ein erstes Reflexionsvermögen
und die Form des zweiten Typs ein zweites Reflexionsvermögen, das sich von dem
ersten Reflexionsvermögen unterscheidet, besitzen, wobei die Form des ersten
Typs eine erste Breite in mindestens einer Dimension besitzt und die Form des
zweiten Typs die erste Breite und mindestens eine zweite Breite in der einen Di
mension besitzt, wobei die zweite Breite größer als die erste Breite ist, wobei das
Verfahren zum Decodieren des Symbols die Schritte aufweist:
Empfangen von Licht, das von dem Symbol reflektiert ist, und Produzieren eines Ausgangssignals daraus, daß das Reflektionsvermögen der Formen des ersten und des zweiten Typs darstellt, die das Symbol aufweist;
Empfangen des Ausgangssignals und Produzieren eines Zählsignals, das minde stens einige der Formen des zweiten Typs, der die zweite Breite besitzt, identifi ziert und der falsch mindestens eine Gruppe der Formen des ersten und des zwei ten Typs identifiziert, die die erste Breite besitzen, und zwar als eine Pseudo-Form des zweiten Typs, der eine Gesamtbreite ungefähr gleich zu einer Summe der er sten Breite einer Gruppe besitzt
Empfangen des Zählsignals und Zerteilen der einen Gruppe falsch Identifizierter als die Pseudo-Form des zweiten Typs in Form des ersten und des zweiten Typs; und
Bestimmen der Informationen, die in dem Symbol codiert sind, basierend auf dem Zählsignal und der zerteilten, einen Gruppe.
Empfangen von Licht, das von dem Symbol reflektiert ist, und Produzieren eines Ausgangssignals daraus, daß das Reflektionsvermögen der Formen des ersten und des zweiten Typs darstellt, die das Symbol aufweist;
Empfangen des Ausgangssignals und Produzieren eines Zählsignals, das minde stens einige der Formen des zweiten Typs, der die zweite Breite besitzt, identifi ziert und der falsch mindestens eine Gruppe der Formen des ersten und des zwei ten Typs identifiziert, die die erste Breite besitzen, und zwar als eine Pseudo-Form des zweiten Typs, der eine Gesamtbreite ungefähr gleich zu einer Summe der er sten Breite einer Gruppe besitzt
Empfangen des Zählsignals und Zerteilen der einen Gruppe falsch Identifizierter als die Pseudo-Form des zweiten Typs in Form des ersten und des zweiten Typs; und
Bestimmen der Informationen, die in dem Symbol codiert sind, basierend auf dem Zählsignal und der zerteilten, einen Gruppe.
17. Verfahren nach Anspruch 16, das weiterhin den Schritt eines Bestimmens einer
Breite der Form des ersten und des zweiten Typs, die die erste Breite besitzen, ba
sierend auf dem Zählsignal, aufweist, und wobei der Schritt eines Empfangens des
Zählsignals und eines Zerteilens der einen Gruppe falsch identifizierter als die
Pseudo-Form, die einzelne Form durch die bestimmte Breite dividiert.
18. Verfahren nach Anspruch 16, wobei das Symbol mindestens eine Ruhe-Zone und
einen eines Start- und eines Stop-Zeichens angrenzend an die Ruhe-Zone besitzt
und wobei der Schritt eines Empfangens des Zählsignals und eines Zerteilens der
einen Gruppe falsch identifizierter, und zwar als die Pseudo-Form, die Schritte
umfaßt:
Zuordnen des einen des Start- und des Stop-Zeichens in dem Zählsignal durch Zu ordnen von Zählungen in dem Zählsignal, die der Ruhe-Zone entsprechen, und
Bestimmen, ob sich das Symbol im Fokus befindet, basierend auf den zugeordne ten Zählungen, die dem einen des Start- und des Stop-Zeichens entsprechen.
Zuordnen des einen des Start- und des Stop-Zeichens in dem Zählsignal durch Zu ordnen von Zählungen in dem Zählsignal, die der Ruhe-Zone entsprechen, und
Bestimmen, ob sich das Symbol im Fokus befindet, basierend auf den zugeordne ten Zählungen, die dem einen des Start- und des Stop-Zeichens entsprechen.
19. Verfahren nach Anspruch 18, das weiterhin die Schritte aufweist:
Bestimmen, daß die Ruhe-Zone nicht von dem Zählsignal zugeordnet werden kann;
Auswählen einer Zählung in einer Mitte des Zähsignals; und
Bestimmen, ob die ausgewählte Zählung den Formen des ersten Typs entspricht.
Bestimmen, daß die Ruhe-Zone nicht von dem Zählsignal zugeordnet werden kann;
Auswählen einer Zählung in einer Mitte des Zähsignals; und
Bestimmen, ob die ausgewählte Zählung den Formen des ersten Typs entspricht.
20. Gerät zum Decodieren eines maschinenlesbaren Symbols, das codierte Informatio
nen darstellt, wobei das maschinenlesbare Symbol eine Vielzahl von relativ zuein
ander beabstandeter, zwei-dimensionaler Formen des ersten und des zweiten
Typs umfaßt, wobei die Formen des ersten Typs ein erstes Reflexionsvermögen
besitzen und die Formen des zweiten Typs ein zweites Reflexionsvermögen besit
zen, das sich von dem ersten Reflexionsvermögen unterscheidet, wobei die For
men des ersten Typs eine erste Breite in mindestens einer Dimension besitzen und
die Formen des zweiten Typs die erste Breite und mindestens eine zweite Breite in
der einen Dimension besitzen, wobei die zweite Breite größer als die erste Breite
ist, wobei das Gerät aufweist:
einen elektro-optischen Wandler, der Licht empfängt, das von dem maschinenles baren Symbol reflektiert ist, und ein Ausgangssignal davon produziert, das das Re flexionsvermögen der Formen und der Zwischenräume, die das Symbol aufweist, darstellt;
einen eine Zählung erzeugenden Schaltkreis, der mit dem elektro-optischen Wandler gekoppelt ist, der das Ausgangssignal empfängt und ein Zählsignal pro duziert, das mindestens einige der Formen des zweiten Typs, der die zweite Breite besitzt, identifiziert, und der falsch mindestens eine Gruppe der Formen des ersten und des zweiten Typs, der die erste Breite besitzt, als eine Pseudo-Form des zwei ten Typs identifiziert, der eine gesamte Breite ungefähr gleich einer Summe der er sten Breiten der einen Gruppe besitzt; und
einen Prozessor, der mit dem die Zählung erzeugenden Schaltkreis gekoppelt ist, der das Zählsignal verarbeitet und ein Signal erzeugt, das für die Information, die in dem Symbol codiert ist, kennzeichnend ist, wobei der Prozessor (i) das Zählsi gnal aufnimmt und die eine Gruppe, die falsch identifiziert ist, und zwar als die Pseudo-Form des zweiten Typs, in Formen des ersten und des zweiten Typs zer teilt, und (ii) Bestimmen der Information, die in dem Symbol codiert ist, basierend auf dem Zählsignal und der dividierten einen Gruppe.
einen elektro-optischen Wandler, der Licht empfängt, das von dem maschinenles baren Symbol reflektiert ist, und ein Ausgangssignal davon produziert, das das Re flexionsvermögen der Formen und der Zwischenräume, die das Symbol aufweist, darstellt;
einen eine Zählung erzeugenden Schaltkreis, der mit dem elektro-optischen Wandler gekoppelt ist, der das Ausgangssignal empfängt und ein Zählsignal pro duziert, das mindestens einige der Formen des zweiten Typs, der die zweite Breite besitzt, identifiziert, und der falsch mindestens eine Gruppe der Formen des ersten und des zweiten Typs, der die erste Breite besitzt, als eine Pseudo-Form des zwei ten Typs identifiziert, der eine gesamte Breite ungefähr gleich einer Summe der er sten Breiten der einen Gruppe besitzt; und
einen Prozessor, der mit dem die Zählung erzeugenden Schaltkreis gekoppelt ist, der das Zählsignal verarbeitet und ein Signal erzeugt, das für die Information, die in dem Symbol codiert ist, kennzeichnend ist, wobei der Prozessor (i) das Zählsi gnal aufnimmt und die eine Gruppe, die falsch identifiziert ist, und zwar als die Pseudo-Form des zweiten Typs, in Formen des ersten und des zweiten Typs zer teilt, und (ii) Bestimmen der Information, die in dem Symbol codiert ist, basierend auf dem Zählsignal und der dividierten einen Gruppe.
21. Gerät nach Anspruch 20, wobei der Prozessor eine Breite der Formen und der Zwi
schenräume bestimmt, die eine erste Breite besitzen, basierend auf dem Zählsi
gnal, und die eine Gruppe durch die vorbestimmte Breite dividiert.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/493,669 US5539191A (en) | 1995-06-22 | 1995-06-22 | Method and apparatus for decoding unresolved bar code profiles using edge finding circuitry |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE19624900A1 true DE19624900A1 (de) | 1997-01-02 |
Family
ID=23961218
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE19624900A Withdrawn DE19624900A1 (de) | 1995-06-22 | 1996-06-21 | Verfahren und Gerät zum Decodieren nicht aufgelöster Balkencode-Profile unter Verwendung eines Kantenfindungs-Schaltkreises |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5539191A (de) |
| JP (1) | JPH096884A (de) |
| DE (1) | DE19624900A1 (de) |
Families Citing this family (35)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6321986B1 (en) | 1993-11-05 | 2001-11-27 | Intermec Ip Corporation | Robust machine-readable symbology and method and apparatus for printing and reading same |
| US6149059A (en) * | 1993-11-05 | 2000-11-21 | Intermec Ip Corporation | Bar code symbology capable of encoding bytes, words, 16-bit characters, etc. and method and apparatus for printing and reading same |
| US6422476B1 (en) | 1993-11-05 | 2002-07-23 | Intermec Ip Corp. | Method, apparatus and character set for encoding and decoding data characters in data carriers, such as RFID tags |
| US5811781A (en) * | 1993-11-05 | 1998-09-22 | Intermec Corporation | Bar code symbology capable of encoding 16-bit characters, and method and apparatus for printing and reading same |
| US6371375B1 (en) | 1995-09-25 | 2002-04-16 | Intermec Ip Corp. | Method and apparatus for associating data with a wireless memory device |
| US5877486A (en) * | 1996-10-11 | 1999-03-02 | Intermec Ip Corp. | Method and apparatus for enhancing resolution of reflectance signals produced from machine-readable symbols |
| US5798513A (en) * | 1996-12-03 | 1998-08-25 | Intermec Corporation | Method and apparatus for decoding unresolved profiles produced from relief formed 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 |
| US5936224A (en) * | 1996-12-11 | 1999-08-10 | Intermec Ip Corporation | Method and apparatus for reading machine-readable symbols by employing a combination of multiple operators and/or processors |
| US6128414A (en) * | 1997-09-29 | 2000-10-03 | Intermec Ip Corporation | Non-linear image processing and automatic discriminating method and apparatus for images such as images of machine-readable symbols |
| US7147161B2 (en) * | 1998-06-12 | 2006-12-12 | Symbol Technologies, Inc. | Digitizing bar code symbol data |
| US6328213B1 (en) | 1998-06-12 | 2001-12-11 | Symbol Technologies, Inc. | Method of processing an analog electrical signal containing information representative of reflected light from coded indicia, wherein the electrical signal contains edge transitions |
| US6164542A (en) * | 1998-11-03 | 2000-12-26 | Intermec Ip Corp. | Method and apparatus for decoding unresolved symbol profiles produced from a reduced data set |
| US6478223B1 (en) | 2000-01-12 | 2002-11-12 | Intermec Ip Corporation | Machine-readable color symbology and method and apparatus for reading same with standard readers such as laser scanners |
| US8682077B1 (en) | 2000-11-28 | 2014-03-25 | Hand Held Products, Inc. | Method for omnidirectional processing of 2D images including recognizable characters |
| JP4202101B2 (ja) * | 2002-10-10 | 2008-12-24 | 富士通株式会社 | バーコード認識方法、および認識用デコード処理装置 |
| US7181066B1 (en) | 2002-12-26 | 2007-02-20 | Cognex Technology And Investment Corporation | Method for locating bar codes and symbols in an image |
| JP4257131B2 (ja) * | 2003-02-21 | 2009-04-22 | 富士通株式会社 | バーコード読取装置およびバーコード読取方法 |
| US20060027657A1 (en) | 2004-08-04 | 2006-02-09 | Laurens Ninnink | Method and apparatus for high resolution decoding of encoded symbols |
| US7175090B2 (en) | 2004-08-30 | 2007-02-13 | Cognex Technology And Investment Corporation | Methods and apparatus for reading bar code identifications |
| US7963448B2 (en) | 2004-12-22 | 2011-06-21 | Cognex Technology And Investment Corporation | Hand held machine vision method and apparatus |
| US9552506B1 (en) | 2004-12-23 | 2017-01-24 | Cognex Technology And Investment Llc | Method and apparatus for industrial identification mark verification |
| JP4254724B2 (ja) * | 2005-02-16 | 2009-04-15 | 株式会社デンソーウェーブ | バーコード読取り方法及びコンピュータプログラム |
| US7158057B1 (en) * | 2005-09-07 | 2007-01-02 | Seiko Epson Corporation | Circuitry and methods for high speed data encoding |
| EP1938483B1 (de) | 2005-09-21 | 2015-07-08 | Intermec IP Corp. | Verfahren und system eines stochastischen kommunikationsprotokolls für etiketten der hochfrequenzidentifikation (rfid) auf der basis einer koalitionsbildung wie etwa für die kommunikation von etikett zu etikett |
| US8120461B2 (en) | 2006-04-03 | 2012-02-21 | Intermec Ip Corp. | Automatic data collection device, method and article |
| US8108176B2 (en) | 2006-06-29 | 2012-01-31 | Cognex Corporation | Method and apparatus for verifying two dimensional mark quality |
| US8002173B2 (en) * | 2006-07-11 | 2011-08-23 | Intermec Ip Corp. | Automatic data collection device, method and article |
| US8169478B2 (en) * | 2006-12-14 | 2012-05-01 | Cognex Corporation | Method and apparatus for calibrating a mark verifier |
| US7546955B2 (en) * | 2007-03-16 | 2009-06-16 | Intermec Ip Corp. | Systems, devices, and methods for reading machine-readable characters and human-readable characters |
| US9734376B2 (en) | 2007-11-13 | 2017-08-15 | Cognex Corporation | System and method for reading patterns using multiple image frames |
| US9361499B2 (en) | 2014-10-09 | 2016-06-07 | Cognex Corporation | Barcode decoding |
| US9607200B2 (en) | 2014-10-09 | 2017-03-28 | Cognex Corporation | Decoding barcodes |
| US10599902B2 (en) | 2014-10-09 | 2020-03-24 | Cognex Corporation | Methods and apparatus for decoding under-resolved symbols |
| JP7021651B2 (ja) * | 2019-03-01 | 2022-02-17 | オムロン株式会社 | シンボル境界特定装置、シンボル境界特定方法および画像処理プログラム |
Family Cites Families (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US1985035A (en) * | 1930-11-05 | 1934-12-18 | Westinghouse Electric & Mfg Co | Card sorter |
| US2612994A (en) * | 1949-10-20 | 1952-10-07 | Norman J Woodland | Classifying apparatus and method |
| GB1086092A (en) * | 1963-11-05 | 1967-10-04 | Svenska Dataregister Ab | Data record and method of manufacture |
| GB1280677A (en) * | 1968-06-27 | 1972-07-05 | Rca Corp | Article designating and identification system |
| US3784792A (en) * | 1972-03-29 | 1974-01-08 | Monarch Marking Systems Inc | Coded record and methods of and apparatus for encoding and decoding records |
| US3909594A (en) * | 1973-12-26 | 1975-09-30 | Interface Mechanisms Inc | Circuit for establishing a reference voltage in bar code readers |
| US4013893A (en) * | 1975-08-07 | 1977-03-22 | Welch Allyn, Inc. | Optical bar code scanning device |
| US4056710A (en) * | 1976-04-16 | 1977-11-01 | Coherent Radiation | System for decoding bar code |
| US4335301A (en) * | 1979-09-27 | 1982-06-15 | Interface Mechanisms, Inc. | Wave shaping circuit for electro-optical code readers |
| US4379224A (en) * | 1981-05-26 | 1983-04-05 | Honeywell Inc. | Apparatus for interpreting Code 39 bar code data |
| JPS61131074A (ja) * | 1984-11-29 | 1986-06-18 | Yokohama Rubber Co Ltd:The | 凹凸バ−コ−ドの読取方法 |
| US4782220A (en) * | 1986-09-29 | 1988-11-01 | Mars, Incorporated | Method and apparatus for bar code data autodiscrimination |
| EP0287913B1 (de) * | 1987-04-22 | 1993-03-03 | Abbott Laboratories | Abtaster und Format eines optischen Codes |
| FR2622992B1 (fr) * | 1987-11-06 | 1990-02-09 | Thomson Semiconducteurs | Procede de lecture de codes a barres |
| FR2635207B1 (fr) * | 1988-08-02 | 1990-10-19 | Sud Systemes | Procede et dispositif de traitement d'un signal electrique analogique en vue d'obtenir un signal binaire parametrable representatif de sa composante significative |
| US5229591A (en) * | 1988-10-21 | 1993-07-20 | Symbol Technologies, Inc. | Scanning system with adjustable light output and/or scanning angle |
| JP2886545B2 (ja) * | 1989-03-03 | 1999-04-26 | 富士通株式会社 | マージン認識方法及びバーコード読取り装置 |
| US5080456A (en) * | 1990-02-26 | 1992-01-14 | Symbol Technologies, Inc. | Laser scanners with extended working range |
| US5268562A (en) * | 1990-03-30 | 1993-12-07 | National Film Board Of Canada | Optical dual sensor bar code scanning system |
| US5231293A (en) * | 1991-10-31 | 1993-07-27 | Psc, Inc. | Bar code reading instrument which prompts operator to scan bar codes properly |
| DE4208082C1 (en) * | 1992-03-13 | 1993-02-11 | Agfa-Gevaert Ag, 5090 Leverkusen, De | Reading bar=code on edge of photographic film - ascertaining code start and end and thus length by relative speed between film and sensor arrangement |
| US5276315A (en) * | 1992-05-14 | 1994-01-04 | United Parcel Service Of America, Inc. | Method and apparatus for processing low resolution images of degraded bar code symbols |
| US5389770A (en) * | 1993-01-22 | 1995-02-14 | Intermec Corporation | Method and apparatus for decoding unresolved bar code profiles |
-
1995
- 1995-06-22 US US08/493,669 patent/US5539191A/en not_active Expired - Lifetime
-
1996
- 1996-06-18 JP JP8156793A patent/JPH096884A/ja active Pending
- 1996-06-21 DE DE19624900A patent/DE19624900A1/de not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| JPH096884A (ja) | 1997-01-10 |
| US5539191A (en) | 1996-07-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE19624900A1 (de) | Verfahren und Gerät zum Decodieren nicht aufgelöster Balkencode-Profile unter Verwendung eines Kantenfindungs-Schaltkreises | |
| DE69728482T2 (de) | Zweidimensionaler Codeleser | |
| DE69433492T2 (de) | Verfahren und Vorrichtung zum Dekodieren von Streifencodes durch unabhängige Analyse von Streifen und Zwischenräumen | |
| DE10025332B4 (de) | Verfahren zum Lesen eines zweidimensionalen Barcodes | |
| DE69625583T2 (de) | Datenformleser | |
| EP1196885B1 (de) | Leseanordnung für informationsstreifen mit optisch kodierter information | |
| EP1078219B1 (de) | Erfassung der räumlichen struktur einer dreidimensionalen oberfläche | |
| DE69332771T2 (de) | Verfahren und Vorrichtung zum Dekodieren von strichkodierten Symbolen | |
| DE69521040T2 (de) | Verfahren und vorrichtung zum dekodieren von balkencodebildern mittels informationen aus vorhergehenden abtastzeilen | |
| DE69523965T2 (de) | Erkennungsverfahren für eine zweidimensionale Kodierung | |
| DE69835358T2 (de) | Verfahren zur Korrektur der Verzerrung beim Abtasten eines optischen Codes | |
| DE69518098T2 (de) | Verfahren und Vorrichtung zum Lesen eines optischen zweidimensionalen Kodes | |
| DE69527450T2 (de) | Bildverarbeitungsvorrichtung zur Identifikation eines Eingangsbildes und damit ausgerüstetes Kopiergerät | |
| DE69709165T2 (de) | Vorrichtung und verfahren zur dekodierung von streifencode-symbolen durch quotenanalyse der modulformate | |
| DE19604767A1 (de) | Verfahren und Vorrichtung zum Dekodieren von unaufgelösten, komplexen Strichkodesymbologieprofilen mit verschiedenen Breiten | |
| DE102015219541A1 (de) | Dekodieren von strichcodes | |
| DE10123406A1 (de) | Verfahren zum Erfassen von zweidimensionalen Codes | |
| DE19722439A1 (de) | Verfahren und Vorrichtung zur Auffindung und Dekodierung maschinenlesbarer Symbole einschließlich Datenmatrixsymbolen | |
| DE19705747A1 (de) | Verfahren und Vorrichtung zur Ermittlung und Decodierung von maschinenlesbaren Symbolen | |
| DE2829808A1 (de) | Verfahren und vorrichtung zum lesen von zeichen | |
| DE19711873C2 (de) | Verfahren und Vorrichtung zum Lesen eines Strichcodes | |
| DE69734639T2 (de) | Mehrdimensionale Adressräume | |
| EP1288843A2 (de) | Verfahren zur Erkennung eines Codes | |
| DE102019209653A1 (de) | Signalverarbeitungsverfahren für photoelektrischen Kodierer | |
| DE102012222505B4 (de) | Verfahren zum Erfassen dreidimensionaler Daten eines zu vermessenden Objekts, Verwendung eines derartigen Verfahrens zur Gesichtserkennung und Vorrichtung zur Durchführung eines derartigen Verfahrens |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8139 | Disposal/non-payment of the annual fee |