[go: up one dir, main page]

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-Schaltkreises

Info

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
Application number
DE19624900A
Other languages
English (en)
Inventor
Sprague Ackley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intermec Technologies Corp
Original Assignee
Intermec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intermec Corp filed Critical Intermec Corp
Publication of DE19624900A1 publication Critical patent/DE19624900A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1452Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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

Technisches Sachgebiet
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.
Hintergrund der Erfindung
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.
Zusammenfassung der Erfindung
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.
Kurze Beschreibung der Zeichnungen
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.
Detaillierte Beschreibung der derzeit bevorzugten Ausführungsform der Erfindung
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.
Tabelle 1
Abschätzung von Elementen-Breiten basierend auf Zählungen und der X-Dimension
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:
Tabelle 2
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:
Tabelle 3
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
DE19624900A 1995-06-22 1996-06-21 Verfahren und Gerät zum Decodieren nicht aufgelöster Balkencode-Profile unter Verwendung eines Kantenfindungs-Schaltkreises Withdrawn DE19624900A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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