DE19604767A1 - Verfahren und Vorrichtung zum Dekodieren von unaufgelösten, komplexen Strichkodesymbologieprofilen mit verschiedenen Breiten - Google Patents

Verfahren und Vorrichtung zum Dekodieren von unaufgelösten, komplexen Strichkodesymbologieprofilen mit verschiedenen Breiten

Info

Publication number
DE19604767A1
DE19604767A1 DE19604767A DE19604767A DE19604767A1 DE 19604767 A1 DE19604767 A1 DE 19604767A1 DE 19604767 A DE19604767 A DE 19604767A DE 19604767 A DE19604767 A DE 19604767A DE 19604767 A1 DE19604767 A1 DE 19604767A1
Authority
DE
Germany
Prior art keywords
spaces
shapes
width
wide
resolved
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
DE19604767A
Other languages
English (en)
Inventor
H 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 DE19604767A1 publication Critical patent/DE19604767A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1486Setting the threshold-width for bar codes to be decoded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Description

Die vorliegende Erfindung bezieht sich auf eine Vorrichtung zum Dekodieren von Profilen, die von maschinenlesbaren Symbolen erzeugt werden, und insbesondere auf Ver­ fahren und eine Vorrichtung zum Dekodieren unaufgelöster Profile.
Strichkodesymbologien ("Strichkodes") werden weitverbreitet zur Datenaufnahme verwendet. Die ersten entwickelten Strichkodes, wie etwa U.P.C., EAN, Code 39, Coda­ bar, Inverleave 2 of 5 und Code 93 können als "lineare Symbologien" bezeichnet werden, da Daten in einem vorgegebenen Symbol entlang einer Achse oder Richtung dekodiert werden. Lineare Symbologien kodieren im allgemeinen Daten als parallele Anordnungen von abwechselnden Streifen unterschiedlicher Breite mit niedriger Reflektivität, den so­ genannten "Strichen", die von von solchen Strichen leeren Zwischenräumen getrennt wer­ den, die eine höhere Reflektivität besitzen, den sogenannten "Leerräumen". Jedes eindeuti­ ge Muster von Strichen und Leerräumen innerhalb einer vorgegebenen Breite definiert ein bestimmtes Datenzeichen. Ein vorgegebenes lineares Symbol kodiert Datenzeichen entlang seiner Länge in der Form verschiedener Gruppen von eindeutigen Strich- und Leerraummu­ stern.
Einfachere lineare Symbologien, wie etwa der Code 39, verwenden zwei Element­ breiten. Ein "Element" ist ein einziger Strich oder ein einziger Leerraum, und bei Zwei- Breiten-Symbologien umfaßt jedes Zeichen in dem Symbol im allgemeinen eine Kombina­ tion aus vier schmalen und breiten Elementen: einen Strich mit einfacher Breite, einen Leer­ raum mit einfacher Breite, einen Strich mit doppelter Breite oder einen Leerraum mit doppel­ ter Breite. Komplexere Symbologien verwenden eine größere Anzahl von Breiten für jedes Element. Zum Beispiel verwendet die U.P.C.-Symbologie vier Breiten, wodurch eine Kom­ bination von acht Elementen ermöglicht wird. Die Code-49-Symbologie verwendet sechs Elementbreiten. Die PDF417-Symbologie verwendet Leerräume mit sechs möglichen Brei­ ten und Striche mit acht möglichen Breiten, wobei jedes Symbolzeichen vier Striche und vier Leerräume mit einer konstanten Länge von 17 mal der X-Dimension besitzt. Die "X- Dimension" ist die nominale Breitendimension der schmalsten Striche und Leerräume in eine Strichkodesymbologie. Die breiten Striche und Leerräume in der Symbologie basieren auf ganzzahligen Vielfachen der X-Dimension. Zum Beispiel ist das größte Element in der U.P.C.-Symbologie vier mal breiter als das schmalste Element, während in PDF417 der breiteste Strich acht mal breiter als der schmalste Strich ist.
Derzeit verfügbare Strichkodeleser übertragen Licht auf einen Strichkode, das dann auf einen Lichtsensor innerhalb des Lesers zurückreflektiert wird. Der Sensor erzeugt auf der Basis des von dem Strichkode reflektierten Lichts ein Profil. Das Strichkode-"Profil" ist im allgemeinen ein analoges Signal, das das modulierte, von den Leerräumen reflektierte und von den Strichen in dem Strichkode absorbierte Licht darstellt und somit das Muster der Striche und Leerräume in einem gegebenen Strichkode darstellt. In einem gegebenen Profil entspricht ein Maximum im allgemeinen einem Leerraum (hohe Reflektivität), wäh­ rend ein Minimum einem Strich entspricht (niedrige Reflektivität verglichen mit einem Leerraum), und die Breite jedes Maximums oder Minimums zeigt im allgemeinen die Breite des entsprechenden Strichs oder Leerraums an, dessen Reflektivität das Maximum bezie­ hungsweise das Minimum erzeugt. Derzeit verfügbare Leser bestimmen die Kanten in dem Profil, wobei sie typischerweise elektronische Schwellwert- oder andere Rechteckwellen- Erzeugungsschaltkreise verwenden, die das Profil entweder in einen hohen oder einen niedrigen Wert umwandeln. Der Leser dekodiert dann das "quadrierte" Signal auf der Basis der Übergänge oder Kanten zwischen den hohen und niedrigen Werten.
Einige Strichkodeleser verwenden in der Hand zu haltende Stifte, die die Oberfläche kontaktieren, auf der der Strichkode gedruckt ist. Solche Leser erzeugen oft Profile mit einem scharfen Kontrast zwischen den Maxima und Minima, und somit sind die von dem Profil dargestellten Leerräume und Striche leicht von den Schaltkreisen in dem Leser zu detektieren. Jedoch erfordern stiftförmige Leser, daß der Stift die Oberfläche berührt, auf der der Strichkode gedruckt ist, und sind somit in Situationen, in denen der Benutzer den Strichkode physisch nicht berühren will oder kann, unpraktisch. Ein in der Hand gehaltener Leser, der von dem Benutzer verlangt, daß er manuell jeden Strichkode berührt, ist zeitrau­ bend und verringert die Produktivität.
Strichkodeleser des kontaktfreien Typs, wie etwa Laserscanner oder lineare Leser mit ladungsgekoppelter Vorrichtung ("CCD") sind derzeit verfügbar. Leser des Lasers­ cannertyps verwenden einen Abtaststrahl aus Laserlicht, der auf einen Strichkode auftrifft und von diesem reflektiert wird. Ein Photodetektor empfängt das reflektierte Licht und wandelt es in ein moduliertes elektrisches Signal um, das das Profil des Strichkodes umfaßt.
Bild- oder auf Sicht basierende Leser verwenden zweidimensionale Halbleiterfelder, Vidikons oder andere, geeignete Licht empfangende Elemente, die ein Bild eines Strichko­ des empfangen und, auf der Basis des davon reflektierten Lichts, das Bild verarbeiten, um das Profil zu erzeugen.
Auf Grund optischer Systembeschränkungen, die Lesern des Laser- und Bildtyps inhärent sind, besitzen diese Leser eine bestimmte Feldtiefe, innerhalb derer Strichkodes gelesen werden können. Einige Leser des Laser- und Bildtyps verwenden Autofokussyste­ me, um die Feldtiefe des Leser zu erhöhen. Jedoch sind auch Leser mit Autofokussystemen durch die Feldtiefe des Autofokussystems eingeschränkt. Zusätzlich sind Autofokussysteme teuer und langsam.
Wenn der Leser einen Strichkode außerhalb seiner Feldtiefe abtastet oder abbildet, wird das resultierende Profil ein "Schließen" aufweisen. Positiver Tintenverlauf in einem Strichkode oder übermäßiges Rauschen in einem Profil können ebenfalls ein Schließen erzeugen. Schließen in einem Strichkodeprofil wird durch einige erkennbare Maxima und Minima aber auch durch Wellen in der Mitte des Profils angezeigt. Schließen in einem Strichkodeprofil zeigt im allgemeinen an, daß die breiten Element in dem Profil aufgelöst werden, daß aber die schmalen Elemente nicht aufgelöst werden. Hinsichtlich der Leser wird ein Leerraum oder Strich "aufgelöst", wenn der Leser in der Lage ist, ein Maximum oder ein Minimum in dem Profil zu identifizieren, das dem vorgegebenen Leerraum oder Strich entspricht. Einige Profile können schmale Elemente durch schmale Maxima, Minima oder Wellen darstellen, die visuell erkennbar sind, aber die von den derzeitigen Lesern im wesentlichen nicht detektierbar sind.
Derzeit verwendete Leser sind nicht in der Lage, Profile mit Schließen zu dekodie­ ren. Diese Leser verwenden elektronische Schaltkreise wie etwa Schwellwertschaltkreise oder andere Verfahren, um die Kanten des Strichkodeelemente zu finden, die in einem Profil dargestellt sind. Um jedes Element in einem Strichkode zu dekodieren, lokalisieren diese elektronischen Schaltkreise eine Kante eines Elements als einen Punkt, wo zum Bei­ spiel die Reflektanz in dem Profil einen vorgegebenen Abstand von einem Maximum oder einem Minimum erreicht. Derzeit verfügbare Leser können keine Profile dekodieren, wo die schmalen Elemente nicht fokussiert sind oder im Profil verloren gehen (zum Beispiel durch Profilschließen), da die schmalen Element keine deutlichen Maxima oder Minima erzeugen und somit die elektronischen Schaltkreise nicht in der Lage sind, irgendwelche Kanten in dem Profil zu lokalisieren, die diesen Elementen entsprechen würden. Da die gegenwärtigen elektronischen Schaltkreise die schmalen Elemente in einem Profil nicht lokalisieren können, wenn ein Schließen auftritt, können die Schaltkreise den Strichkode nicht dekodieren.
Aufgrund der Mängel solcher Schaltkreise muß ein Benutzer eines in der Hand gehaltenen, kontaktfreien Lesers ohne Autofokus den Abstand, mit dem der Benutzer den Leser von dem Strichkode hält, solange einstellen, bis der Strichkode für den Leser in der Feldtiefe liegt (also fokussiert ist). Sobald er fokussiert ist, kann der Schaltkreis den Strich­ kode dekodieren. Wenn ein Benutzer versucht, Strichkodes in verschiedenen Abständen zu lesen, muß der Benutzer den Leser dauernd bewegen, um einen vorgegebenen Strichkode in den Brennpunkt des Lesers zu bewegen, um den Strichkode zu lesen. Folglich ist, auch wenn kontaktfreie Leser die Notwendigkeit eines Kontaktierens der Oberfläche, auf der der Strichkode gedruckt ist, eliminieren, das Lesen jedes Strichkodes immer noch zeitraubend, da der Benutzer den Leser in eine bestimmte Brennpunktposition des Lesers bewegen muß. Wenn der Leser in einer festen Position montiert ist (und keine Autofokusfähigkeiten be­ sitzt) und die zu lesenden Strichkodes in verschiedenen Abständen an dem Leser vorbeige­ hen, wenn zum Beispiel der Leser über einem Förderband montiert ist, auf dem Kisten unterschiedlicher Höhe bewegt werden, damit Strichkodes auf den Oberseiten der Kisten gelesen werden, werden nur die Strichkodes innerhalb der festen Feldtiefe des Lesers deko­ diert.
Zusammengefaßt ist der Erfinder sich keiner Vorrichtung und keines Verfahrens außer dem seinigen zum Dekodieren von verschiedenen Typen von Strichkodesymbologien bewußt, wenn solche Profile ein Schließen zum Beispiel aufgrund von Symbolen, die au­ ßerhalb der Feldtiefe des Leser gelesen werden, von von der Elektronik oder aufgedruckten Mängeln erzeugtem Rauschen oder dann, wenn ein Leser versucht Symbole mit einer X- Dimension kleiner als die, die der Leser lesen kann, zu lesen, aufweisen. Weiterhin ist sich der Erfinder keiner Verfahren und Vorrichtungen zum Dekodieren komplexer Strichkode­ symbologien, wie etwa des PDF417, bewußt.
Wie in den beigefügten Patentansprüchen definiert, stellt die vorliegende Erfindung in einem allgemeinen Sinne ein Verfahren zum Dekodieren eines maschinenlesbaren Sym­ bols dar, das kodierte Information darstellt. Das Symbol umfaßt eine Mehrzahl von ge­ trennten, zweidimensionalen, geometrischen Formen, wobei die Formen und Leerräume zwischen den Formen Größen mit wenigstens ersten, zweiten und dritten Breiten in einer Richtung besitzen. Die zweiten und dritten Breiten sind größer als die erste Breite. Das Verfahren umfaßt die Schritte des: (i) Empfangens von Licht, das von dem Symbol reflek­ tiert wird, und des Erzeugens eines Ausgangssignals daraus, das die Reflektanz der Formen und Leerräume, die das Symbol umfaßt, darstellt; (ii) Empfangens des Ausgangssignals und Erzeugens eines breiten Merkmalsignals, das wenigstens einige der Formen und Leerräume mit den zweiten und dritten Breiten auflöst, das aber nicht in der Lage ist, wenigstens eini­ ge der Formen und Leerräume mit der ersten Breite aufzulösen; (iii) Empfangens des breiten Merkmalsignals und Bestimmens, welche der Formen und Leerräume aufgelöst sind, indem eine Mehrzahl von Bereichen in dem breiten Merkmalsignal, die den aufgelösten Formen und Leerräumen entsprechen, identifiziert werden; (iv) Bestimmens der Größe jeder der aufgelösten Formen und Leerräume; (v) Erzeugens einer verlorenen Elementmatrix in Ab­ hängigkeit von dem breiten Merkmalssignal und der Größe der aufgelösten Formen und Leerräume; und (vi) Bestimmens der in dem Symbol kodierten Information auf der Basis der verlorenen Elementmatrix und der Größe der aufgelösten Formen.
Auf ähnliche Weise stellt die vorliegende eine Vorrichtung zum Dekodieren des maschinenlesbaren Symbols zur Verfügung. Die Vorrichtung umfaßt einen Sensor, der Licht empfangt, das von dem maschinenlesbaren Symbol reflektiert wird, und erzeugt ein Ausgangssignal daraus, das die Reflektanz der Formen und Leerräume darstellt, die das Symbol umfaßt. Ein Empfänger empfängt das Ausgangssignal und erzeugt ein großes Formsignal, das wenigstens einige der Formen und Leerräume mit den zweiten und dritten Breiten angibt, aber nicht in der Lage ist, ein Signal zu erzeugen, das wenigstens einige der Formen und Leerräume mit der ersten Breite angibt. Ein Prozessor verarbeitet das große Formsignal und erzeugt ein Signal, das die in dem Symbol enthaltene Information angibt. Der Prozessor (i) bestimmt, welche der Formen und Leerräume aufgelöst werden, indem eine Mehrzahl von Bereichen in dem großen Formsignal, die jeweils einer der aufgelösten Formen und Leerräume entsprechen, identifiziert wird; (ii) bestimmt die Größe der aufgelö­ sten Formen und Leerräume; (iii) erzeugt eine verlorene Elementmatrix in Abhängigkeit von dem großen Formsignal und der Größe der aufgelösten Formen und Leerräume, und (iv) erzeugt auf der Basis der verlorenen Elementmatrix und der Größe der aufgelösten Formen ein Signal, das die in dem Symbol kodierte Information angibt.
Weitere Merkmale und damit verbundene Vorteile der vorliegenden Erfindung werden aus dem Studium der nachfolgenden Beschreibung in Verbindung mit den beige­ fügten Zeichnungen deutlich.
Fig. 1 zeigt ein Blockdiagramm eines Datensammlungs-Symbologielesers nach der vorliegenden Erfindung, der ein Strichkodesymbol liest.
Fig. 2 zeigt das vergrößerte Strichkodesymbol der Fig. 1.
Fig. 3 ist ein Beispiel eines nicht aufgelösten Profils des Symbols der Fig. 2, das von dem Leser der Fig. 1 erzeugt wird, der eine Blende von ungefähr 2,6 mal der X-Dimension des Symbols besitzt.
Fig. 4 zeigt ein weiteres vergrößertes Strichkodesymbol.
Fig. 5 zeigt ein Beispiel eines unaufgelösten Profils des Symbols der Fig. 4, das von dem Leser der Fig. 1 erzeugt wird, der eine Blende von ungefähr 2,6 mal der X-Dimension des Symbols besitzt.
Fig. 6 ist ein vergrößertes PDF417-Symbol.
Fig. 7 ist ein Beispiel eines Profils der zweiten Reihe des Symbols der Fig. 6, das von dem Leser der Fig. 1 erzeugt wird, der eine Blende von ungefähr 1,8 mal der X-Di­ mension des Symbols besitzt.
Fig. 8 ist ein Beispiel eines Profils der zweiten Reihe des Symbols der Fig. 6, das von dem Leser der Fig. 1 erzeugt wird, der eine Blende von ungefähr 2,0 mal der X-Di­ mension des Symbols besitzt.
Fig. 9 ist ein Beispiel eines Profils der zweiten Reihe des Symbols der Fig. 6, das von dem Leser der Fig. 1 erzeugt wird, der eine Blende von ungefähr 2,2 mal der X-Di­ mension des Symbols besitzt.
Fig. 10 ist ein Beispiel eines Profils der zweiten Reihe des Symbols der Fig. 6, das von dem Leser der Fig. 1 erzeugt wird, der eine Blende von ungefähr 2,4 mal der X-Di­ mension des Symbols besitzt.
Fig. 11 ist ein Beispiel eines Profils der zweiten Reihe des Symbols der Fig. 6, das von dem Leser der Fig. 1 erzeugt wird, der eine Blende von ungefähr 2,6 mal der X-Di­ mension des Symbols besitzt.
Fig. 12 ist ein Beispiel eines Profils der zweiten Reihe des Symbols der Fig. 6, das von dem Leser der Fig. 1 erzeugt wird, der eine Blende von ungefähr 2,8 mal der X-Di­ mension des Symbols besitzt.
Fig. 13 ist ein Beispiel eines Profils der zweiten Reihe des Symbols der Fig. 6, das von einem Bilddarsteller des Lesers der Fig. 1 erzeugt wird, der ungefähr 98 CCD-Bild­ punkte besitzt, wobei in dem Profil die Abstände zwischen den Mittelpunkten der Maxima und Minima in dem Profil und die Breiten der Maxima und Minima bezüglich dem Profil angezeigt sind.
Die Fig. 14A, 14B und 14C sind Flußdiagramme, die zusammen ein erfindungsgemäßes Verfahren zum Dekodieren unaufgelöster Profile zeigt, das von dem Leser der Fig. 1 verwendet wird.
Fig. 15 zeigt eine Vergrößerung des Profils der Fig. 13 mit einigen Zwischen- Schließungsschwellwerten und den gemessenen Breiten von aufgelösten Elementen bei ausgewählten Zwischenschwellwerten, die bezüglich des Profils angezeigt sind.
Fig. 16 zeigt das Profil der Fig. 15, wobei die Größen der aufgelösten Elemente bezüglich des Profils angezeigt sind.
Fig. 17 ist eine Tabelle, die ein Beispiel von Zwischenwerten zeigt, die während der in dem Flußdiagramm der Fig. 14A, 14B und 14C gezeigten Schritte für das Verfahren nach der vorliegenden Erfindung zum Dekodieren unaufgelöster Profile bestimmt werden.
Fig. 18 ist ein Beispiel eines Profils ähnlich dem Profil der Fig. 16, das aber von der dritten Reihe der Symbole der Fig. 6 erzeugt wurde.
Fig. 19 ist ein Blockdiagramm, das einen alternativen Datensammlungs-Symbolo­ gieleser zeigt, der die vorliegende Erfindung verwendet.
Wie in Fig. 1 gezeigt, umfaßt ein Datensammlungs-Symbologieleser 50 nach der vorliegenden Erfindung eine Lichtquelle 52, die eine Datensammlung oder -symbol 53 (in Fig. 2 genauer gezeigt) beleuchtet. Wie hierin verwendet, bezieht sich "Datensammlungs- Symbologie" auf ein Symbol einer linearen, gestapelten, Flächen- oder anderen maschinen­ lesbaren Symbologie. Eine "gestapelte" Symbologie, wie sie hierin verstanden wird, bezieht sich auf jedwede Symbologie, wie etwa auf PDF417 und Code 49, die allgemeine mehrere benachbarte Reihen von Symbolen verwendet, wobei jedes Reihe mehrere Zeichen besitzt, die durch Gruppen von Strichen und Leerräume unterschiedlicher Breiten gebildet werden. Eine Flächensymbologie, wie sie hierin verstanden wird, bezieht sich auf jedwede Symbolo­ gie, wie etwa auf Data Matrix oder Code One, die eine Matrix von Datenzellen anstelle von einer oder mehreren Reihen von Strichen und Leerräumen verwendet. Statt einer bestimm­ ten Symbologie anzugehören, ist das Symbol 53 ein beispielhaftes Symbol, das ein theoreti­ sches Muster mit 2-breiten Leerräumen zeigt, die von einer Vielzahl von Elementen ähnli­ cher Größe umgeben sind, um die Auswirkungen solcher umgebender Elemente zu be­ stimmen, wie hiernach detaillierter diskutiert wird.
Ein Sensor 54 in dem Leser 50 empfängt das von dem Symbol 53 reflektierte Licht und wandelt das empfangene Licht in ein elektrisches Signal um. Zum Beispiel kann die Lichtquelle 52 ein abrasternder Laser sein, während der Sensor 54 seinerseits ein Photode­ tektor sein kann. Alternativ kann die Lichtquelle 52 eine LED, eine Blitzlampe, eine In­ frarotlichtquelle oder ein anderes Licht emittierendes Element sein, während der Sensor 54 ein CCD, ein Halbleiterfeld, ein Vidikon oder eine andere Flächenabbildungsvorrichtung sein kann, die in der Lage ist, das empfangene Licht in elektrische Signale umzuwandeln.
Ein Empfänger oder Wandler 56 empfängt das elektrische Signal von dem Sensor 54 und wandelt es in ein Signal um, das von einem programmierten Computer oder einem Prozessor 60 zu verarbeiten ist. Typischerweise erzeugt der Sensor 54 ein analoges Signal, das das modulierte Licht darstellt, das von den Elementen in dem Symbol 53 reflektiert wird. Es ist wichtig, daß, wenn der Prozessor 60 ein digitaler Computer ist, der Wandler 56 das Profil aus einem von dem Sensor 54 erzeugten Analogsignal in einem mehrwertiges digitales Signal umwandelt, das numerisch die verschiedenen Amplituden des Analogsignals darstellt. Der Wandler 56 und/oder der Prozessor 60 sind mit einem Speicher 57 verbun­ den, um das Profil in digitaler Form zu speichern.
Der Sensor erzeugt ein Profil, wie das in Fig. 3 gezeigte, das von dem von dem Symbol 53 empfangenen, modulierten Licht und der Größe einer Blende 61, die sich vor dem Lichtdetektor in dem Sensor befindet, abhängt. Die vertikale Skala in den meisten Profilen ist in Prozent der Reflektanz von 0% bis 100%. Die horizontale Skala in den meisten Profilen ist nicht absolut bekannt und ist in relativen Einheiten, wie etwa der Abstand über das Symbol oder die Zeit. Wenn ein Profil dekodiert wird, ist es nicht notwendig, den horizontalen Abstand in Maßeinheiten zu kennen, sondern die relative Breite oder Abstände zwischen Elementen, die durch Maxima oder Minima in den Profilen dargestellt sind.
In den meisten Lesern muß die Blende 61 kleiner als die minimale Größe eines Elements (also die X-Dimension) in einem Datensammlungssymbol sein, das von dem Leser gelesen werden soll, damit ein Profil erzeugt wird, das in angemessener Weise alle Elemente in dem Symbol auflöst. Fig. 3 zeigt jedoch ein Schließungsprofil, das von einer Blende 61 erzeugt wird, die 1,8 mal die X-Dimension des Symbols 59 (also fast größer als 2X) ist. Die meisten Strichkodeleser verwenden eine kreisförmige Blende 61, deren Durch­ messer ungefähr gleich 0,8X ist. Das Symbol 53, von dem das Profil der Fig. 3 erzeugt wurde, ist ein Symbol mit kleinerem, positivem Tintenverlauf. Zusätzlich zu der großen Blende 61 führt die schlechte Druckqualität weiter zu einem Schließen in den Profilen, wie unten in größerem Detail erklärt wird. Weiterhin erzeugt auch ein Versuch einer Abbildung eines Symbols unter Verwendung eines Abbildungsvorrichtung mit einer Auflösung, die geringer als die X-Dimension eines Symbols ist, ebenfalls zu einem Schließen in den Profi­ len.
Wie in Fig. 2 identifiziert, umfaßt die linke Seite des Symbols 53 einige 2-breite Leerräume 70, die von einer Vielzahl ähnlich großer Elemente, wie etwa 1-breite Striche 62, 2-breite Striche 64, 3-breite Striche 66 und 4-breite Striche 68 umgeben sind. Die rechte Seite des Symbols 53 zeigt 2-breite Leerräume 70, die von weiteren 2-breiten Leer­ räumen, 3-breiten Leerräumen 71 und 4-breiten Leerräumen 73 getrennt sind. Die 2-breiten Leerräume 70 sind von anderen Leerräumen durch 1-breite Striche 62 getrennt, die hierin als "Singlets" bezeichnet werden. Die Breite der Elemente in dem Symbol 53 ist in Fig. 2 unter dem Symbol als eine Zahlenkette gezeigt.
Die 2-, 3- und 4-breiten Striche 64, 66 und 68 in Fig. 2 erzeugen Minima 74, 76 und 78, die jeweils in Fig. 3 gezeigt sind, die alle weniger als 30% Reflektanz besitzen. Demgegenüber erzeugen die 2-, 3- und 4-breiten Leerräume 70, 71 und 73 in Fig. 2 Minima 80, 81 und 83, die jeweils in Fig. 3 gezeigt sind, die alle mehr als 60% Reflek­ tanz besitzen. Der 1-breite Strich 62 jedoch erzeugt jedoch ein Minimum 72 mit einer Re­ flektanz deutlich größer als 30%, während der 1-breite Leerraum 69 kein erkennbares Maximum erzeugt, und somit sind die 1-breiten Elemente in dem Profil der Fig. 3 nicht aufgelöst.
Zum Beispiel zeigt Fig. 3 zwei 1-breite Leerräume 69′ in dem Symbol 53, die von 1-breiten Strichen 62 eingeschlossen sind, die zusammen einen 2-breiten Leerraum 70′ trennen. Der 2-breite Leerraum 70′ erzeugt ein Maximum 80′ und die 1-breiten Striche 62, die die 1-breiten Leerräume 69′ einschließen, erzeugen die flachen Minima 72′ in dem Profil der Fig. 3. Die 1-breiten Leerräume 69′ erzeugen kein erkennbares Maximum.
Im allgemeinen sind die unaufgelösten, 1-breiten oder "schmalen" Elemente in einem Schließungsprofil, wenn überhaupt, durch kleine Maxima, Minima, Umkehrpunkte oder andere Wellen in der Mitte des Profils dargestellt. Umgekehrt sind die 2-breiten oder größeren oder "breiten" Elemente durch hohe Maxima oder tiefe Minima dargestellt, die sich bis nahe zur Spitze oder zum Boden des Profils erstrecken. Wie in Fig. 3 gezeigt, gehen die höchsten Maxima zum Beispiel bis zu einer Reflektanz von 85%, und die tiefsten Minima gehen bis zu etwa 5% Reflektanz, was den aufgelösten breiten Leerräumen bezie­ hungsweise Strichen in dem Symbol 53 entspricht. Als Ergebnis weist, wenn zwei breite Elemente, wie etwa zwei 2-breite Leerräume, von einem schmalen Element (z. B. einem 2- breiten Strich 62) getrennt werden, das resultierende Schließungsprofil zwei hohe Maxima auf, die in dem Profil nebeneinander zu liegen scheinen. Das schmale Element zeigt ein ausreichend signifikantes Minimum, das von den meisten Lesern detektiert werden könnte, da die benachbarten breiten Elemente eine hohe Reflektanzdifferenz relativ zum Kontrast des schmalen Elements besitzen.
Auf ähnliche Weise zeigt, wenn ein breiter Leerraum von einem breiten Strich durch zwei schmale Elemente (z. B. einen 1-breiten Strich und einen 1-breiten Leerraum) ge­ trennt wird, das resultierende Schließungsprofil ein hohes Maximum und ein niedriges Minimum auf, die in dem Profil einander gegenüber zu liegen scheinen. Zum Beispiel zeigt der rechte Bereich des Symbols 53 einen 4-breiten Leerraum 73, der durch einen dazwi­ schen liegenden, 1-breiten Strich 62 und einen 1-breiten Leerraum 69 von einem 2-breiten Strich 64 getrennt wird. Der 4-breite Leerraum 73 und der 2-breite Strich 64 erzeugen das Maximum 83 beziehungsweise das Minimum 74. Die schmalen Elemente erzeugen kein erkennbares Maximum, da die benachbarten, breiten Elemente eine große Reflektanzdiffe­ renz relativ zum Kontrast der schmalen Elemente besitzen. Folglich erzeugen die schmalen Element kein ausreichend substantielles Bild, um in dem Profil ein signifikantes Maximum oder Minimum zu erzeugen. Statt dessen erzeugen die schmalen Elemente ein Graubild, das seinerseits Wellen in der Mitte des Profils erzeugt.
Das Symbol 53 der Fig. 2 zeigt 2-breite Leerräume 70, die von 4-breiten, 3-breiten, 2-breiten und 1-breiten Strichen 68, 66, 64 beziehungsweise 62 in der linken Hälfte des Symbols umgeben sind, während die rechte Hälfte des Symbols 2-breite Leerräume zeigt, die von 4-breiten, 3-breiten, 2-breiten und 1-breiten Leerräumen 73, 71, 70 beziehungs­ weise 69 umgeben sind. Mit anderen Worten zeigt das Symbol 53 2-breite Leerräume 70, die symmetrisch von Paaren ähnlich großer Elemente (z. B. symmetrischer Elementumge­ bungen) umgeben sind. Im allgemeinen sind Elemente ähnlicher Größe hierin gleich nume­ riert. Auf ähnliche Weise sind Maxima oder Minima in einem Profil, die von Elementen einer gegeben Größe erzeugt werden, hierin gleich numeriert.
Das Profil der Fig. 3 und alle hierin beschriebenen Profile zeigen Abstände in belie­ bigen Einheiten zwischen den Mitten der aufgelösten Elemente entlang der Spitze des Pro­ fils. In der vorliegenden Erfindung können die verwendeten Einheiten ein Vielfaches der von dem Prozessor 60 verwendeten Quantisierung sein. Alternativ können die Einheiten ein Vielfaches der mit dem Prozessor verbundenen Taktrate sein, oder die Einheiten können mit der Auflösung des Sensors 54 verbunden sein. Das Profil der Fig. 3 und anderer Figuren hierin zeigen auch die Breiten der aufgelösten Elemente, wie etwa der von den 2-brei­ ten Leerräumen 70 erzeugten Maxima 80, in beliebigen Einheiten, wie sie an einer oberen Schließungsgrenze 90 gemessen werden. Die obere Schließungsgrenze 90 und eine untere Schließungsgrenze 95 umschließen eine "Grauzone" oder Schließungsbereich 110 in der Mitte des Profils. Der Schließungsbereich 110 enthält die unaufgelösten 1-Elemente in dem dargestellten Symbol 53, wenn überhaupt, in Form von Wellen oder Umkehrpunkten in der Mitte des Profils.
Es ist wichtig, daß die 2-breiten Leerräume 70, die von breiten Strichen umgeben sind, wie links in dem Profil gezeigt, die gleiche Breite von 13 besitzen, so wie sie an der oberen Schließungsgrenze 90 gemessen wird. Mit anderen Worten besitzt ein 2-breiter Leerraum, der von einer beliebigen Kombination von 2-breiten bis n-breiten Strichen umge­ ben wird, die gleiche Breite an der Schließungsgrenze 90 oder die gleiche "Schließungs­ breite". Auf ähnliche Weise besitzen, wie rechts in dem Profil gezeigt, die 2-breiten Leer­ räume 70 Maxima 80 mit den identischen Schließungsbreiten von 21, wenn sie von 3-brei­ ten und 4-breiten Leerräumen umgeben sind (wie bei den Maxima 81 und 83 gezeigt).
In der Nähe der Mitte des Profils, ist der 2-breite Leerraum 70′ auf beiden Seiten von drei schmalen Elementen umgeben, die hierin als "Triplett" bezeichnet werden, also ein 1-breiter Strich 62, ein 1-breiter Leerraum 69′ und ein weiterer 1-breiter Strich 62. Der 2-breite Strich 70′, der auf beiden Seiten von Tripletts umgeben wird, erzeugt eine Schlie­ ßungsbreite von 20, was etwas weniger als die Breite von 21 aber mehr als die Breite von 13 ist. Insgesamt zeigt das Profil der Fig. 3, daß die Breite eines aufgelösten Leerraums 70, wie sie an der oberen Schließungsgrenze 90 gemessen wird, von der "Umgebung" abhängt, die das Element umgibt oder an es angrenzt. Wenn er von breiten Strichen umgeben wird, erzeugt der 2-breite Leerraum 70 eine Schließungsbreite von 13. Wenn er von breiten Strichen umgeben wird, erzeugt der 2-breite Leerraum 70 eine Schließungsbreite von 13. Wenn er von Singlets und größeren Zwischenräumen umgeben wird, erzeugt der 2-breite Leerraum eine Schließungsbreite 21, währende er, wenn er von Tripletts umgeben wird, eine Schließungsbreite von 20 erzeugt. Der Ausdruck "Umgebung", wie er hierin verwen­ det wird, bezieht sich im allgemeinen auf das Element oder die Elemente unmittelbar links und rechts neben einem gegebenen Element.
Fast alle Datensammlungssymbole umfassen Kombinationen von Elementen ver­ schiedener Größe neben und angrenzend an ein gegebenes Element, also unsymmetrische Elementumgebungen. Fig. 4 zeigt ein Symbol 53′ mit, beginnend von der linken Seite, einem ersten 2-breiten Leerraum 70, der von einem Paar von Tripletts umgeben ist, gefolgt von einem 2-breiten Leerraum 70, der von einem Triplett und einem 2-breiten Strich 64 umgeben ist. Danach kommt ein dritter 2-breiter Leerraum 70, der von zwei 2-breiten Strichen 64 umgeben ist. Ein vierter 2-breiter Leerraum 70 ist von einem 2-breiten Strich und einem Singlett (zum Beispiel einem 1-breiten Strich 62) umgeben. Ein fünfter 2-breiter Leerraum 70 ist von zwei Singlets umgeben, während ein sechster 2-breiter Leerraum von einem Singlett und einem 3-breiten Strich 66 umgeben ist. Ein siebter 2-breiter Leerraum 70 ist auf ähnliche Weise von dem 3-breiten Strich 66 und einem 1-breiten Strich 62 umge­ ben, während ein achter 2-breiter Leerraum von dem 1-breiten Strich 62 und einem "Du­ blett", also einem 1-breiten Strich und einem 1-breiten Leerraum, umgeben ist. Die rechte Seite des Symbols 53′ ist mit der linken Seite identisch aber invertiert, um 2-breite Striche 64 in einer Vielzahl von Umgebungen zu zeigen.
Das Schließungsprofil der Fig. 5, das von dem Symbol 53′ der Fig. 4 genommen ist, zeigt die Abstände zwischen den Mittelpunkten der aufgelösten Elemente entlang der Spit­ ze, und die Breite der aufgelösten Elemente, wie sie an der oberen Schließungsgrenze 90 (für die aufgelösten Leerraume) und der unteren Schließungsgrenze 95 (für die aufgelösten Striche) gemessen wird. Das Profil zeigt sechs Basiselement-Schließungsumgebungen: Singlett/Singlett, Singlett/Dublett, Triplett/Triplett, Singlett/2-breit, Triplett/2-breit und 2- breit/2-breit. Es ist wichtig, daß das Profil der Fig. 5 zeigt, daß ein vorgegebenes, aufgelö­ stes Element, wie etwa ein 2-breiter Leerraum 70, Maxima 80 erzeugt, die verschiedene Schließungsbreiten besitzen, wie sie an der oberen Schließungsgrenze 90 gemessen werden. Die 2-breiten Leerräume 70 erzeugen Schließungsbreiten, die von 15, wenn sie von 2-brei­ ten Strichen 64 umgeben werden (die 2-breite/2-breite-Umgebung) bis 25 reichen, wenn sie von 1-breiten Strichen 62 (Singlet/Singlet-Umgebung) umgeben werden. Der 3-breite Leerraum 71 erzeugt das Maximum 81 mit einer Schließungsbreite von 30. Allein auf der Schließungsbreite von 30 für das Maximum 81 basierend, könnte das Maximum als ein 2- breiter Leerraum interpretiert werden, wenn man den breiten Bereich der für die 2-breiten Leerräume gemessen Schließungsbreiten betrachtet.
Insgesamt zeigt das Profil der Fig. 5, daß es schwierig sein kann, zu identifizieren, von welcher Größe ein gegebenes, aufgelöstes Element ist, wenn seine Größe nur durch seine Schließungsbreite an den oberen beziehungsweise unteren Schließungsgrenzen 90 beziehungsweise 95 gemessen wird. Dies trifft insbesondere für komplexe Symbologien zu, die viele Elementbreiten verwenden, wie zum Beispiel PDF417. Ein Beispiel eines PDF417-Symbols 102 ist in Fig. 6 gezeigt. Wie oben erwähnt, verwendet die PDF417- Symbologie acht Elementbreiten für Striche und sechs Elementbreiten für Leerräume. Auf Grund der sechs möglichen Umgebungen, die aufgelöste Elemente umgeben, kann es schwierig sein, die Größe eines vorgegebenen, aufgelösten Elements (z. B. ob ein Minimum einem 3-breiten oder einem 4-breiten Strich entspricht) auf der Basis seiner Schließungs­ breite zu bestimmen, wie sie an der Schließungsgrenze gemessen wird.
Die Fig. 7 bis 12 zeigen, wie die 1-breiten Elemente in dem Symbol 53 unaufge­ löst oder "verloren" werden in Profilen, die von dem Sensor 54 erzeugt werden, wenn dessen Blende 61 von 1,8X bis 2,8X zunimmt. Zusätzlich zeigen die Fig. 7 bis 12, wie sich die Schließungsweiten von aufgelösten Elementen, wie sie an den oberen und unteren Schließungsgrenzen 90 und 95 gemessen werden, abhängig von den Umgebungen, die die aufgelösten Elemente umgeben, unterscheiden. Zahlen entlang den Spitzen der Profile 7 bis 12 geben den Abstand zwischen den Mittelpunkten aufgelöster Elemente in beliebigen Einheiten an. Horizontale Linien, die mit "oben" und "unten" bezeichnet sind, sind die oberen und unteren Schließungsgrenzen 90 und 95, welche Linien sind, die gerade oberhalb der höchsten Minima in den Leerräumen und gerade unterhalb der niedrigsten Maxima in den Strichen gezogen sind. Zahlen entlang der oberen und unteren Schließungsgrenzen 90 und 95 geben die Breiten der aufgelösten Elemente an, wie sie an den Grenzen gemessen werden. (Die Bestimmung der Schließungsgrenzen wird hiernach in größerem Detail disku­ tiert.)
Fig. 7 zeigt ein etwas aufgelöstes Profil, das von der zweiten Reihe von oben des Symbols 102 mit einer Blende 61 von 1,8X des Sensors 54 erzeugt wird. Fig. 7 ist ein etwas aufgelöstes Profil, da die untere Schließungsgrenze 95 höher ist (eine höhere Reflek­ tanz besitzt) als die obere Schließungsgrenze 90. Die Profileder Fig. 7 bis 12 sind "Rück­ wärtsabtastungen" in dem Sinne, daß die linke Seite der Profile das Stopzeichen der PDF417-Symbologie darstellt, während die rechte Seite des Profils das Startzeichen dar­ stellt. Als Ergebnis ist das Symbol 102 "von oben nach unten" im dem Sinne gezeigt, in dem es auf der linken Seite mit dem Stopzeichen beginnt und auf der rechten Seite mit dem Startzeichen endet. Das Symbol 102 umfaßt Element vieler Größen einschließlich 1-breite Striche 62, 2-breite Striche 64, 2-breite Leerräume 70, 1-breite Leerräume 69, einen 7- breiten Strich 65, einen 4-breiten Leerraum 74, einen 3-breiten Strich 66 und einen 8-brei­ ten Strich 67. Details über die PDF417-Symbologie stehen dem Fachmann zur Verfügung und sind ihm bekannt.
Wie in Fig. 7 gezeigt, erzeugen die 2-breiten Striche 64, der 3-breite Strich 66 und die größeren Striche, wie der 7-breite Strich 65 und der 8-breite Strich 67 Minima 74, 76, 75 und 77, die alle weniger als 20% Reflektanz besitzen. Die breiten Leerräume (also die 2-breiten Leerraume 70 und der 4-breite Leerraum 73) erzeugen alle Maxima mit mehr als 70% Reflektanz (also die Maxima 80 beziehungsweise 83). Die 1-breiten Striche 62 erzeu­ gen Minima 72, die gerade bei etwa 40% Reflektanz liegen. Die 1-breiten Leerräume 69 erzeugen Maxima 79, die gerade bis 54% Reflektanz ansteigen. Es ist wichtig, daß alle Minima in dem Profil der Fig. 7 von allen Maxima verschieden sind, so daß Standarddeko­ dierschaltkreise, wie etwa Schwellwertschaltkreise, möglicherweise die Übergänge von den Minima zu den Maxima in dem Profil in Fig. 7 lokalisieren kann. Durch die Lokalisierung der Übergänge der Minima zu den Maxima können Standarddekodierschaltkreise die Kan­ ten jedes der Elemente in dem Profil identifizieren und dadurch das Profil dekodieren.
Das Profil der Fig. 7 ist jedoch ein theoretisches Profil und weist daher kein Rau­ schen und andere Signalverarbeitungsprobleme auf, die es schwierig, wenn nicht unmög­ lich, machen, die Übergänge zwischen den Maxima und den Minima zu identifizieren. Typi­ sche Profile werden von Blenden 61 mit einer Größe von 0,8X erzeugt und ergeben Profile, in denen die 1-breiten Striche 62 und die 1-breiten Leerräume 69 Minima und Maxima mit Reflektanzen erzeugen, die im wesentlichen ähnlich den Minima und Maxima sind, die von den breiten Elementen erzeugt werden.
Die Fig. 7 bis 12 zeigen, daß, wenn die Größe der Blende 61 in dem Leser 50 von 1,8X bis 2,8X zunimmt und somit die zweite Reihe des Symbols 53 immer mehr defo­ kussiert wird, die 1-breiten Striche 62 und die 1-breiten Leerräume 69 Minima 72 bezie­ hungsweise Maxima 79 mit abnehmender Amplitude erzeugen, so daß bei einer Blende 61 von ungefähr 2,4X das in Fig. 10 gezeigte Profil kaum die Positionen dieser 1-breiten Ele­ mente anzeigt. Das Profil der Fig. 10 ist nicht mit Standarddekodierschaltkreisen dekodier­ bar, und die Fig. 8 und 9 sind wahrscheinlich nicht dekodierbar mit solchen Standardde­ kodierschaltkreisen. Die breiten Elemente, also die 2-breiten, 3-breiten und 7-breiten Stri­ che 64, 66 und 65 und die 2-breiten und 4-breiten Leerräume 70 und 73 sind immer noch erkennbar und besitzen einen erkennbaren Kontrast, zum Beispiel die Minima 74, 76 und 75 und die Maxima 80 und 83 in dem Profil der Fig. 10. Es ist wichtig, daß die Positionen der Minima und der Maxima der breiten Elemente im wesentlichen konstant bleiben, wenn die Blende 61 des Sensors 54 zunimmt, wie durch einen Vergleich der mittleren Abstände entlang der Oberkante in Fig. 7 mit den Abständen in Fig. 12 gezeigt wird. In Fig. 12 kommt es bei einer Zunahme der Blendenweite 61 auf 2,8X dazu, daß die Amplituden und somit der Kontrast zwischen den Minima 74 und den Maxima 80 der 2-breiten Striche 62 und der Zwischenräume 70 sich verringert, so daß diese 2-breiten Elemente auch nicht aufgelöst werden.
Es ist bekannt, daß mit einer Zunahme der Blende 61 die Feldtiefe abnimmt, so daß, wenn die Größe der Blende sich verdoppelt, die Feldtiefe ungefähr um die Hälfte verringert wird. Die in den Fig. 7 bis 12 gezeigten Profile können daher verwendet werden, um zu zeigen, was von dem Sensor 54 mit einer Blende 61 von 0,8X erzeugt wurde, wenn die Profile von dem Leser 50 mit einem geringfügig defokussierten Abstand (Fig. 7) bis zu einem stark defokussierten Abstand, der ungefähr doppelt so weit ist (Fig. 12), für das Symbol 102 erzeugt würden. Zusätzlich können die in den Fig. 7 bis 12 gezeigten Profi­ le verwendet werden, um einen defokussierten Laserscanner oder -stab, oder einen Leser des CCD-Typs mit zu wenigen Bildpunkten in seinem Feld für eine adäquate Auflösung eines vorgegebenen Bildes zu demonstrieren, wie hiernach in Bezug auf die Fig. 13, 15 und 16 erklärt wird.
Wie in den Fig. 14A, 14B und 14C gezeigt, beginnt ein Programm 100 zum Dekodieren unaufgelöster Profile unter Benutzung der vorliegenden Erfindung in Schritt 104 (Fig. 14A) mit dem Scannen oder Abbilden des Symbols, um sein Bild aufzunehmen. Das Programm 100 und alle Abläufe und Verfahren, die hierin beschrieben sind, werden im allgemeinen von dem Prozessor 60 durchgeführt und sind permanent in dem Speicher 57 gespeichert. In Schritt 104 gibt der Prozessor 60 den Lichtquellen 52 Anweisung, Licht auf das Symbol zu richten. Der Sensor 54 empfängt das modulierte Licht, das von dem Symbol reflektiert wurde, und erzeugt ein analoges Signalprofil. In Schritt 105 wandelt der Wandler 56 das analoge Signal in ein oder mehrere, mehrstufige, digitale Signalprofile um, die dann in den Prozessor 60 eingegeben werden. In Schritt 106 bestimmt der Prozessor 60, ob das Profil fokussiert ist, ob also alle Elemente in dem Symbol aufgelöst sind, und wenn das der Fall ist, dekodiert der Prozessor das Profil.
Wenn das Profil ein Schließen aufweist, wenn also einige Elemente in dem Symbol nicht aufgelöst werden, analysiert der Prozessor 60 in Schritt 107 das Profil, um die hö­ heren Maxima und die niedrigeren Minima in dem Profil zu identifizieren und die Schlie­ ßungsgrenzen zu bestimmen. Fig. 13 zeigt ein Profil von der zweiten Reihe des Symbols 102, wie es von einem zweidimensionalen Sensor, wie etwa von einem CCD-Sensor 54 erzeugt wird. Das Profil der Fig. 13 zeigt die Mittenabstände zwischen den aufgelösten Elementen entlang der Oberkante des Profils und die Schließungsbreiten der aufgelösten Elemente, wie sie an den oberen und unteren Schließungsgrenzen 90 und 95 gemessen werden.
Die Zackigkeit in dem Profil ist ein Ergebnis der Tatsache, daß eine endliche Anzahl von Bildpunkten zum Abbilden der zweiten Reihe des Symbols 102 verwendet wurde. Jede "Zacke" ist das Ergebnis des Auftragens eines Reflektanzwerts eines Bildpunkts. Das Ge­ samtergebnis auf einer makrokopischen Skala ist dasselbe, als würde das Symbol mit einer unendlichen Anzahl von Bildpunkten mit einer defokussierten Optik abgebildet, wie etwa mit einer Optik mit einer Blende, die deutlich größer als die X-Dimension ist (wie oben diskutiert wurde). Bei einem Vergleich des Profils der Fig. 13 mit den Profilen der Fig. 7 bis 12 ist das Profil der Fig. 13 ähnlich dem Profil der Fig. 11, das von einer Blende 61 mit 2,6X erzeugt wurde.
Die zweite Reihe des Symbols 102 enthält 90 Module, während der CCD-Sensor 54 nur 98 Bildpunkte enthält. Ein "Modul" ist die schmalste, nominale Breitenmaßeinheit in einem Strichkodesymbologie. Ein Modul ist daher auch allgemein gleich der X-Dimen­ sion. Das Verhältnis der Anzahl der Bildpunkte zu den Modulen kann das das Betaverhältnis bezeichnet werden. Da in dem Profil der Fig. 13 98 Bildpunkte verwendet wurden, um 90 Module abzubilden, ist das Betaverhältnis für das Profil gleich 1,1.
Die unaufgelösten, 1-breiten Elemente in dem Symbol 102 sind, wenn überhaupt, durch Wellen in der Mitte des Profils der Fig. 13 dargestellt und befinden sich allesamt innerhalb des Schließungsbereichs 110. Maxima oder Minima außerhalb des Schließungs­ bereichs 110 entsprechen den aufgelösten Elementen in dem Symbol 102, während alle Informationen in dem Profil innerhalb des Schließungsbereichs 110 unzuverlässig sind (also nicht detektierbar oder vom Rauschen oder von Druckfehlern nicht unterscheidbar). In dem Programm 100 muß der Prozessor 60 die Dekodierung eines Schließungsprofils beginnen, indem er bestimmt, welche Elemente in dem Profil aufgelöst sind. Daher überprüft der Prozessor 60 in Schritt 107 das Profil der Fig. 13, um zu bestimmen, wie oft das Profil eine Reihe von Reflektanzschwellwerten zwischen 0% und 100% Reflektanz erreicht oder kreuzt.
In Schritt 107 überprüft der Prozessor 60 wiederholt das Profil, indem er zunächst bestimmt, wie oft das Profil eine anfänglich vorgegebene Prozentreflektanzschwelle von 0% kreuzt. Der Prozessor 60 erhöht dann die Prozentreflektanzschwelle um 1% und be­ stimmt, wie oft das Profil diese Schwelle kreuzt. Danach erhöht der Prozessor 60 die Schwelle erneut um 1% (auf 2%) und bestimmt, wie oft das Profil die neue Prozentreflek­ tanzschwelle kreuzt, und fährt in dieser Weise bis zu 100% Reflektanz fort. Das Profil wird in dem Speicher 57 als eine Reihe von Reflektanzwerten gespeichert und kann daher wie­ derholt analysiert werden. Um den Ablauf zu verdeutlichen, zeichnet der Prozessor 60 in dem Programm 100 im wesentlichen horizontale Linien gleichen Abstands über das Profil der Fig. 13 mit z. B. 1%-Reflektanzintervallen und bestimmt dann, wie oft das Profil einen vorgegebenen Reflektanzschwellwert kreuzt.
Der Prozessor 60 überprüft die Anzahl, mit der das Profil vorgegebene Reflektanz­ werte kreuzt, um obere und untere Reflektanzbereiche zu lokalisieren und obere und untere Schließungsschwellwerte oder -grenzen 90 beziehungsweise 95 einzurichten. Der Prozes­ sor 60 richtet die obere Schließungsgrenze 90 innerhalb eines Bereichs von Reflektanz­ werten ein, die von den meisten der Maxima in dem Profil überragt werden. Auf ähnliche Weise richtet der Prozessor 60 die untere Schließungsgrenze 95 innerhalb eines Bereichs von Reflektanzwerten ein, die von den meisten der Minima unterschritten werden. Alterna­ tiv kann der Prozessor 60 das Profil überprüfen, das höchste Minimum lokalisieren und die obere Schließungsgrenze 90 an dem Reflektanzwert des höchsten Minimums in dem Profil einrichten. Der Prozessor 60 lokalisiert dann auf ähnliche Weise das niedrigste Maximum in dem Profil und richtet die untere Schließungsgrenze 95 als den Reflektanzwert des nied­ rigsten Maximums ein. In Schritt 107 identifiziert der Prozessor 60 auf die aufgelösten breiten Elemente, also die 2-breiten bis 8-breiten Leerräume und Striche, als Maxima und Minima in dem Profil, die sich oberhalb beziehungsweise unterhalb der Schließungsgrenzen 90 beziehungsweise 95 erstrecken. Verfahren und Vorrichtungen zum Einrichten der obe­ ren und unteren Schließungsgrenzen 90 beziehungsweise 95 und zum Identifizieren von Elementen, die aufgelöst werden, sind in größerem Detail in der US-Patentanmeldung des Erfinders mit der Seriennummer 08/327 972, angemeldet am 24. Oktober 1994, offenge­ legt. Der Fachmann wird jedoch feststellen, daß jedes Verfahren zum Feststellen, welche Elemente in einem vorgegebenen Profil aufgelöst sind, um die zuverlässige Information aus dem Profil zu extrahieren oder zu filtern, in Schritt 107 der vorliegenden Erfindung ver­ wendet werden kann.
Der Erfinder hat durch die Analyse unaufgelöster Profile, wie etwa der der Fig. 3, 5 und 7 bis 12, herausgefunden, daß die aufgelösten Elemente durch ihre benachbarten und angrenzenden Elemente verzerrt werden und solche Verzerrungen in eine reduzierte Gruppe von Umgebungen gruppiert werden können. Wenn ein betrachtetes, aufgelöstes Element neben einem anderen aufgelösten Element liegt, dann hat das benachbarte, aufge­ löste Element denselben Effekt auf das betrachtete, aufgelöste Element, und zwar unabhän­ gig von seiner Größe. Daher können alle aufgelösten Elemente von einer Breite von zwei bis acht Modulen, die neben einem vorgegebenen, aufgelösten Element liegen, für die Zwecke der Bestimmung der Verzerrungseffekte, die aufgelöstes Element auf ein vorgege­ benes, aufgelöstes Element hat, einfach als ein 2-breites Element betrachtet werden. Wenn zum Beispiel ein 2-breites Element von einem 3-breiten Element auf der einen Seite und einem 4-breiten Element auf der anderen Seite umgeben wird, kann das 2-breite Element einfach als von 2-breiten Elementen auf beiden Seiten umgeben betrachtet werden.
Wenn ein vorgegebenes, aufgelöstes Element neben unaufgelösten Elementen (also einem oder mehr 1-breiten Elementen) liegt, dann fallen die 1-breiten Elemente in eine oder zwei Kategorien: (i) einfache 1-breite Elemente oder Singlets, und (ii) mehr als Singlets, wie etwa Dubletts, Tripletts und so weiter. Alle "n-letts" größer als 1 beeinflussen ein benachbartes, aufgelöstes Element auf die gleiche Weise, so daß solche n-letts der Ein­ fachheit halber als Dubletts bezeichnet werden. Folglich kann ein vorgegebenes, aufgelöstes Element neben einer von drei möglichen Umgebungen liegen: Singlets, Dubletts oder 2- breiten Elementen.
Durch die Bestimmung der Umgebung, die ein vorgegebenes, aufgelöstes Element umgibt, kann die vorliegende Erfindung die Verzerrungseffekte einer solchen Umgebung auf das aufgelöste Element bestimmen. Wie oben erklärt, verzerrt die Umgebung, die ein vorgegebenes, aufgelöstes Element umgibt, das Element, so daß seine Breite, wie sie an der oberen oder unteren Schließungsgrenze 90 beziehungsweise 95 gemessen wird, in Abhän­ gigkeit von der Umgebung variiert. Die drei Umgebungen beeinflussen die aufgelösten Elemente in einer vorhersagbaren Weise. Daher kann die vorliegende Erfindung die Infor­ mation der Umgebung, die ein aufgelöstes Element umgibt, verwenden, um einen Ort zu bestimmen, an dem die Breite des Elements zu messen ist, statt die Breite des Elements an den oberen und unteren Schließungsgrenzen 90 und 95 zu messen. Basierend auf der Kenntnis, daß eine vorgegebene Umgebung ein aufgelöstes Element auf eine vorhersagbare Weise verzerrt, kann die vorliegende Erfindung Orte angeben, an denen die Breite der resultierende Elemente zu messen sind, die global auf ein vorgegebenes Profil anwendbar sind und die unabhängig von dem Betrag und dem Typ der Verzerrung sind, die insgesamt ein vorgegebenes Symbol beeinflussen. Vorzugsweise erzeugt die vorliegende eine Reihe von Schwellwerten innerhalb des Schließungsbereichs 110 zwischen den oberen und unteren Schließungsgrenzen 90 und 95, an denen die Breite eines vorgegebenen, aufgelösten Elements basierend auf der Umgebung des Elements zu messen ist.
Durch die Analyse von Profilen, wie etwa der Profile der Fig. 3, 5 und 7 bis 12, hat der Erfinder herausgefunden, daß der Betrag von Verzerrungen, der ein vorgegebenes Element basierend auf seiner Umgebung beeinflußt, innerhalb eines Faktors von zwei mit dem Typ der Umgebung korreliert. Als Ergebnis können vier quantisierte Schwellwerte für die obere Schließungsgrenze 90 verwendet werden, an denen die Breite der aufgelösten Leerräume zu messen sind: der halbe Abstand von der oberen Schließungsgrenze 90 zu unteren Schließungsgrenze 95, ein Viertel dieses Abstands, ein Achtel dieses Abstands und ein Sechszehntel dieses Abstands. Diese vier Schwellwerte sind durch die gestrichelten Linien in Fig. 15 gezeigt und sind mit den Bezugszeichen 170, 174, 178 und 180 bezeich­ net. Auf ähnliche Weise können vier Schwellwerte von der unteren Schließungsgrenze 95 verwendet werden, an denen die Breiten der aufgelösten Striche zu messen sind: der halbe Abstand von der unteren Schließungsgrenze 95 zur oberen Schließungsgrenze 90, ein Vier­ tel dieses Abstands, ein Achtel dieses Abstands und ein Sechszehntel dieses Abstands. Diese vier Schwellwerte sind durch die gestrichelten Linien in Fig. 15 gezeigt und sind mit den Bezugszeichen 170, 173, 177 und 179 bezeichnet.
Breite Elemente, die ein vorgegebenes, aufgelöstes Element umschließen, neigen dazu, das vorgegebene, aufgelöste Element mehr als schmale Elemente neben dem vor­ gegebenen, aufgelösten Element zu verzerren. Wenn daher ein vorgegebenes, aufgelöstes Element auf beiden Seiten von breiten Elementen umgeben ist, ist die Breite des vorgege­ benen, aufgelösten Elements an dem halben Abstand zwischen den oberen und unteren Schließungsgrenzen 90 und 95 (also an dem Schwellwert 170) zu messen. Wenn umge­ kehrt ein vorgegebenen, aufgelöstes Element auf beiden Seiten von Singlets umgeben ist, verzerren die Singlets das vorgegebene, aufgelöste Element nicht wesentlich, und daher ist die Breite des vorgegebenen, aufgelösten Elements an der oberen Schließungsgrenze 90 (für Leerräume) oder an der unteren Schließungsgrenze 95 (für Striche) zu messen. Die folgende Tabelle 1 zeigt auf der Basis der Umgebung eines Elements an, an welchen Schwellwert die Breite eines vorgegebenen Elements zu messen ist.
Tabelle 1
Geeignete Schwellwerte zum Messen der Breite von aufgelösten Elementen basieren auf ihren Umgebungen
Tabelle 1 zeigt an, daß für jeden vorgegebenen, aufgelösten Leerraum (also ein Element mit einer Größe von 2-breit und mehr), wenn seine Nachbarelemente ein 2-breiter und größerer Strich auf einer Seite und ein Dublett (zwei 1-breite Elemente) auf der ande­ ren Seite sind, die Breite des aufgelösten Elements an dem Schwellwert ein Viertel des Abstands von der oberen Schließungsgrenze 90 zur unteren Schließungsgrenze 95, also an dem Schwellwert 174, zu messen ist. Auf ähnliche Weise ist die Breite für jeden aufgelö­ sten Strich, wenn seine Umgebung aus Singletts auf jeder Seite besteht (er also von 1-brei­ ten Leerräumen umgeben wird), an der unteren Schließungsgrenze 95 zu messen. Ingesamt befinden sich die quantisierten Schwellwerte an Abständen zwischen den unteren und obe­ ren Schließungsgrenzen 90 und 95, die durch die Gleichung 1/2n bestimmt werden, wobei n gleich 0, 1, 2, 3 und 4 ist.
Wie in Fig. 14A gezeigt, bestimmt der Prozessor 60 in Schritt 108 die Umgebung, die alle aufgelösten Elemente umgibt. Der Prozessor 60 bestimmt, ob ein vorgegebenes, aufgelöstes Element von 2-breiten Elementen, Dubletts oder Singletts umgeben ist, indem er das Profil überprüft, das das aufgelöste Element umgibt. Zum Beispiel analysiert der Prozessor die Steigung des Profils in der Nähe jedes aufgelösten Elements.
Der Prozessor 60 stellt fest, daß ein vorgegebenes Element von einem Singlet be­ rührt wird, wenn das Profil eine Spitze mit einer steilen Steigung oder ein Minimum neben dem aufgelösten Element aufweist. Der Prozessor 60 unterscheidet Singletts von Tripletts oder von anderen n-letts, indem er das von dem Stoppmuster des Symbols 102 erzeugte Profil analysiert. Da das Symbol 102 ein PDF417-Symbol ist, besteht sein Stoppmuster aus einer Ruhezone, die der Reihe nach von einem 1-breiten Strich 62, einem 2-breiten Leer­ raum 70, einem 1-breiten Strich, einem 1-breiten Leerraum 69, einem 1-breiten Strich und einem 3-breiten Leerraum 71 gefolgt wird. Die "Ruhezone" ist ein Leerraum, dem jegliche Markierung fehlt, die dem Startzeichen eines Symbols vorangeht und dem Stoppzeichen folgt. Wie in Fig. 13 gezeigt, erzeugt der 1-breite Strich 62 zwischen der Ruhezone und dem 2-breiten Leerraum 70 das Minimum 72 mit der steilen Steigung, während das Triplett zwischen dem 2-breiten Leerraum 70 und dem 3-breiten Leerraum 71 ein Minimum 99 mit einer weniger steilen Steigung erzeugt, das einen diskontinuierlichen oder flachen Boden besitzt.
Der Prozessor 60 identifiziert Dubletts neben einem aufgelösten Element durch eine diskontinuierliche oder weniger steile Steigung im Vergleich zu aufgelösten Elementen unmittelbar nebeneinander, die keine 1-breiten Elemente dazwischen enthalten. In Fig. 13 umfassen das Minimum 75 und das Maximum auf der linken Seite des Minimums (die dem 7-breiten Strich 65 beziehungsweise dem 3-breiten Leerraum 71 entsprechen) ein Dublett dazwischen. Der Fachmann wird erkennen, daß andere Techniken zum Bestimmen der Umgebung, die jedes aufgelöste Element umgibt, in Schritt 108 nach der vorliegenden Erfindung verwendet werden kann.
In Schritt 109 unterteilt der Prozessor 60 den Schließungsbereich 110 in sechzehn gleiche Linien, Abschnitte oder Schwellwerte zwischen den oberen und unteren Schlie­ ßungsgrenzen 90 und 95. Die sechzehn Schwellwerte erlauben dem Prozessor 60, schnell die sieben Schwellwerte 170, 173, 174 und 177 bis 180 zwischen den oberen und unteren Schwellwerten 90 und 95 zu bestimmen. Der Prozessor 60 muß in Schritt 109 nicht die sechzehn Schwellwerte bestimmen, sondern kann nur die sieben Schwellwerte 170, 173, 174 und 177 bis 180 festlegen. In Schritt 111 analysiert der Prozessor 60 die Steigung des Profils auf der linken und der rechten Seite jedes aufgelösten Elements und bestimmt unter Verwendung der Tabelle 1 den geeigneten, quantisierten Schwellwert, an dem die Breite des aufgelösten Elements zu messen wird. Der Prozessor 60 mißt dann in Schritt 115 die Breite des aufgelösten Elements an dem geeigneten Schwellwert.
Fig. 15 zeigt das Profil der Fig. 13 mit den quantisierten Schwellwerten 170, 173, 174, 177, 178, 179 und 180 zwischen den oberen und unteren Schließungsgrenzen 90 und 95. Fig. 15 zeigt auch Linien durch die aufgelösten Elemente an den geeigneten Schwell­ werten, an denen die Breite eines vorgegebenen, aufgelösten Elements zu messen ist, und die angegebenen Zahlen geben die gemessenen Breiten an. Zum Beispiel bestimmt der Prozessor 60 in dem Programm 100 in Schritt 111, daß das erste Maximum 80 auf der linken Seite von einem Singlett und auf der rechten Seite von einem Dublett umgeben ist. In Tabelle 1 ist der geeignete Schwellwert für einen aufgelösten Leerraum der Schwellwert 180, der sich bei 1/16 des Abstands nach unten von der oberen Schließungsgrenze 90 zur unteren Schließungsgrenze 95 befindet. In Schritt 115 mißt der Prozessor 60 das Maximum 80 an dem Schwellwert 180 und bestimmt, daß das Maximum eine Breite von 8 besitzt (verglichen mit der Breite von 11 gemessen an der oberen Schließungsgrenze 90).
In Schritt 111 bestimmt der Prozessor, daß das erste aufgelöste Minimum 75 auf der linken Seite von einem Dublett und auf der rechten Seite von einem 2-breiten (tatsäch­ lich einem 4-breiten) Leerraum umgeben ist. In der Tabelle 1 ist der geeignete Schwellwert für den aufgelösten Strich der Schwellwert 173, der sich bei 1/4 des Abstands nach oben von der unteren Schließungsgrenze 95 zur oberen Schließungsgrenze 90 befindet. In Schritt 115 mißt der Prozessor 60, daß das Minimum eine Breite von 38 besitzt. Insgesamt mißt der Prozessor 60 in Schritt 15 die Breiten aller aufgelösten Elemente, wie sie an den ge­ eigneten Schwellwerten, basierend auf Tabelle 1, gemessen werden, und speichert sie.
In Schritt 115 lokalisiert der Prozessor 60 auch die Mittelpunkte der aufgelösten Maxima und Minima in dem Profil und mißt dann die Abstände zwischen den Mittelpunk­ ten und speichert sie. Der Prozessor 60 lokalisiert den Mittelpunkt jedes Maximums und Minimums in dem Profil, indem er zuerst die beiden Punkte lokalisiert, an denen ein vor­ gegebenes Maximum oder Minimum die oberen oder unteren Schließungsgrenzen 90 bezie­ hungsweise 95 kreuzt, und dann einen Mittelpunkt entlang dieser Grenze bestimmt, der auf dem halben Weg zwischen den beiden Punkten liegt. Der Prozessor 60 bestimmt die Ab­ stände zwischen den Mittelpunkten von identifizierten Maxima und Minima oder die "Mit­ telpunktsabstände" auf der Basis der Positionen der identifizierten Maxima und Minima bezüglich einer imaginären Achse senkrecht zu den Maxima und Minima (also einer Linie mit einer Reflektanz von y=100% für das Profil der Fig. 15). Alternativ kann der Prozessor 60 die Mittelpunkte jedes Maximums und Minimus in dem Profil durch Bestimmung der Position des höchsten oder niedrigsten Punkts für ein vorgegebenes Maximum beziehungs­ weise Minimum bestimmen. Die Bestimmung der Position der höchsten/tiefsten Punkte kann unter Verwendung bekannter Verfahren, wie etwa die Lokalisierung der Punkte, an denen die Steigung des Profils ihr Vorzeichen ändert (z. B. von positiv zu negativ), oder wenn die Amplitude sich von einem zunehmenden zu einem abnehmenden Wert oder um­ gekehrt ändert, bestimmt werden. Mit jeder Methode kann der Prozessor 60 die Mittel­ punkte 60 der aufgelösten Elemente in dem Profil trotz der Anwesenheit von Druckmän­ geln, wie etwa Flecken oder freie Stellen, starker oder leichter Tintenverlauf, geringem Kontrast oder anderm Rauschen in einem Symbol, lokalisieren und ist daher immun gegen­ über einer schlechten Druckqualität.
Nach dem Messen und Speichern der Abstände zwischen den aufgelösten Elemen­ ten und der Breite dieser Elemente in dem Profil sind alle zuverlässigen Daten aus dem Profil extrahiert. Daher benötigt der Prozessor 60 das gespeicherte, digitale Profil nicht mehr, und der Bereich des Speichers 57, der dieses Profil speichert, kann für andere Zwecke, wie etwa das Speichern des Profils des nächsten von dem Leser 50 gelesenen Symbols, verwen­ det werden.
In den Schritten 116 und 118 bestimmt der Prozessor eine geschätzte Breite der aufgelösten Elemente für 2-breite bis n-breite Elemente. Für PDF417-Symbole ist der größ­ te Leerraum 6-breit und der größte Strich ist 8-breit. Wegen Druckmängel sind die aufgelö­ sten Leerräume oft breiter als die aufgelösten Striche oder umgekehrt. Daher sind in einem Profil für eine vorgegebene Elementbreite die gemessenen Breiten der aufgelösten Striche oft nicht gleich den gemessenen Breiten der aufgelösten Leerräume (z. B. ist die gemessene Breite eines 2-breiten Leerraums oft nicht gleich der gemessenen Breite eines 2-breiten Strichs). Zusätzlich variieren die gemessenen Breiten, wenn die Breiten der aufgelösten Leerräume an der oberen Schließungsgrenze 90 und die Breiten der aufgelösten Striche an der unteren Schließungsgrenze 95 gemessen werden, in Abhängigkeit davon, wo die oberen und unteren Schließungsgrenzen für ein bestimmtes Profil ausgewählt worden sind.
Wenn der Tintenverlauf beinahe null ist, dann sind die Breiten aller 2-breiten Ele­ mente in dem Symbol 102 identisch (also haben die 2-breiten Striche dieselbe Breite wie die 2-breiten Leerräume). Als Ergebnis könnte die Breite der aufgelösten Elemente, wie sie an den geeigneten Schwellwerten gemessen wird, verwendet werden, um zu identifizieren, welche aufgelösten Elemente 2-breit, 3-breit, 4-breit und so weiter sind. Die vorliegende Erfindung verwendet aber vorzugsweise eine sicherere Methode, die die aufgelösten Ele­ menten dem Typ entsprechend trennt (also Striche gegenüber Leerräumen) und sie un­ abhängig dekodiert, wodurch ein vom Tintenverlauf unabhängiges Verfahrens zur Verfü­ gung gestellt wird. Ein solches Verfahren zum Dekodieren von Strichen unabhängig von Leerräumen ist in der Technik bekannt, wie etwa der Referenzdekodieralgorithmus in der Codabar-Symbologie. Der Prozessor 60 bestimmt in Schritt 116 der Fig. 14B aus den bekannten Werten in dem Profil eine X-Dimension für die Leerräume und eine X-Dimen­ sion für die Striche. Die X-Dimension für die PDF417-Symbologie und die meisten Symbo­ logien entspricht der Breite der 1-breiten Elemente. Zum Beispiel kann der Prozessor 60 feststellen, daß das Symbol 102 ein PDF417-Symbol ist, indem er das Profil analysiert und die beiden breiten Minima 75 und 77, die die 7-breiten beziehungsweise 8-breiten Striche in den Stopp- und Startzeichen für die PDF417-Symbologie darstellen, an den gegenüber­ liegenden Enden des Profils lokalisiert. Nach der Identifizierung des Profils als eines von einem PDF417-Zeichen kann der Prozessor 60 erkennen, daß die großen, aufgelösten Maxima neben den beiden großen Minima zwei 3-breiten Minima entsprechen.
Nach dem Messen der Elementbreiten in Schritt 115 mittelt der Prozessor 60 in Schritt 116 die beiden 3-breiten Breiten der Leerräume und teilt sie durch drei, um eine Abschätzung der X-Dimesion für alle Leerräume zu erhalten. Wie in Fig. 15 gezeigt, besit­ zen die beiden aufgelösten Maxima auf der linken Seite der großen Minima 75 und 77 gemessene Breiten von 19 beziehungsweise 21 (an den Schwellwerten 178 beziehungs­ weise 174), was einer X-Dimension von 6,67 entspricht (also ((18 + 21)/2)/3 = 6,67). Für die geschätzte X-Dimension erzeugt der Prozessor 60 in Schritt 118 eine geschätzte Breite für alle aufgelösten Leerräume, so daß zum Beispiel jeder aufgelöste Leerraum mit weniger als 2,5 mal der X-Dimension (2 × 6,67) ein 2-breiter Leerraum ist, jeder aufgelöste Leer­ raum zwischen diesem Wert und 3,5 mal der X-Dimension ein 3-breiter Leerraum ist und so weiter, wie in der nachfolgenden Tabelle gezeigt. Exemplarische Werte basierend auf der berechneten X-Dimension von 6,67 sind hiernach in Klammern gezeigt.
Tabelle 2
Geschätzte, aufgelöste Leerraumbreiten
Auf ähnliche Weise kann eine geschätzte X-Dimension für die aufgelösten Striche aus den Breiten der großen Minima 75 und 77 für die 7-breiten beziehungsweise 8-breiten Striche (an dem Schwellwert 173) abgeleitet werden. Wie in Fig. 15 gezeigt, besitzen die 7-breiten beziehungsweise 8-breiten Striche gemessene Breiten von 30 beziehungsweise 43, die in Schritt 116 zu einer geschätzten X-Dimension für die Striche von 5,4 führen (also (38 + 43)/15 = 5,4). Der Prozessor 60 kann dann in Schritt 118 eine geschätzte, aufgelöste Strichtabelle ähnlich der Tabelle 2 konstruieren, die hiernach in Tabelle 3 gezeigt ist. Bei­ spielhafte Werte basierend auf der berechneten X-Dimension von 5,4 sind in Tabelle 3 in Klammern gezeigt.
Tabelle 3
Geschätzte, aufgelöste Strichbreiten
Alternativ kann der Prozessor in Schritt 60 die X-Dimension auf der Basis des klein­ sten Mittenabstandswerts, der in dem Profil gemessen wird, bestimmen. Der kleinste Mit­ tenabstandswert entspricht im allgemeinen einem 2-breiten Strich neben einem 2-breiten Leerraum und wird hierin mit "STD" bezeichnet. Der Abstand zwischen dem Mittelpunkt eines Minimums, das den 2-breiten Strich darstellt, und dem Mittelpunkt des Maximums, das den 2-breiten Leerraum darstellt, umfaßt notwendigerweise 2 Elemente (also eine Hälf­ te eines 2-breiten Strichs und eine Hälfte eines 2-breiten Leerraums, oder 1 Element + 1 Element = 2 Elemente). Daher liefert ein Teilen von STD durch zwei die X-Dimension.
In dem Profil der Fig. 15 ist STD 12. Folglich ergibt die Division dieses STD durch 2 eine X-Dimension von 6. Um eine genauere X-Dimesion zu erhalten, kann der Prozessor 60 die kleinsten Mittenabstände mitteln, um die X-Dimension zu erzeugen. Während die folgende Diskussion ein STD von 12 und eine X-Dimension von 6 verwendet, muß das Programm 100 diese und andere hierin diskutierte Messungen nicht runden, wenn die be­ rechneten Ergebnisse keine ganze Zahl sind. Der Fachmann wird erkennen, daß jede Technik zum Abschätzen der Größe der X-Dimension und der Größe der großen Elementbreiten für die Striche und/oder Leerräume in den Schritten 116 und 118 der vorliegenden Erfindung verwendet werden kann.
In Schritt 119 vergleicht der Prozessor 60 die in Schritt 115 gemessenen Breiten mit Tabelle 2 (für die Leerräume) und mit Tabelle 3 (für die Striche), um die Größe eines gege­ benen, aufgelösten Elements zu identifizieren. Wie in Fig. 16 gezeigt, besitzt das erste aufgelöste Maximum 80, ein Leerraum, eine gemessene Breite von 8. Unter Bezugnahme auf Tabelle 2 ist die gemessene Breite von 8 weniger als 16,7 und daher entspricht das Maximum 80 einem 2-breiten Leerraum. Das erste Minimum in dem Profil, ein Strich, besitzt eine gemessene Breite von 38. Unter Bezugnahme auf Tabelle 3 erkennt der Prozes­ sor 60, daß die gemessene Breite von 38 weniger als 40,5 ist, aber größer als 35,1 ist. Da­ her bestimmt der Prozessor 60 entsprechend Tabelle 3 in Schritt 119, daß das erste Mini­ mum 75 einem 7-breiten Strich entspricht. Fig. 16 zeigt die Größe der aufgelösten Leerräu­ me mit den entsprechenden Maxima und die Größe der aufgelösten breiten Striche mit den entsprechenden Minima.
In Schritt 120 erzeugt der Prozessor 60 eine Tabelle, ein Feld oder eine "verlorene Elementmatrix", die ein Schlüssel zum Beenden der Dekodierung des Profils der Fig. 16 ist. Die verlorene Elementmatrix schätzt die verschiedenen Abstände zwischen aufgelösten Elementpaaren und bestimmt daraus die Anzahl der 1-breiten Elemente, die nicht aufgelöst oder zwischen den aufgelösten Elementen "verloren" sind. Die verlorene Elementmatrix kann auf Grund der nachfolgenden drei Eigenschaften, die allen Symbologien mit festen, vielfachen Breiten eigen sind, wie etwa auch der PDF417, erzeugt werden: (1) wenn ein aufgelöster Leerraum unmittelbar einem aufgelösten Strich folgt, dann sind null 1-breite Elemente dazwischen verloren; (2) wenn ein aufgelöster Strich einem aufgelösten Leerraum folgt oder umgekehrt, dann ist nur eine gerade Anzahl von 1-breiten Elementen dazwischen vorhanden, und (3) wenn zwei gleiche aufgelöste Elemente (z. B. zwei 3-breite Striche) in einem vorgegebenen Profil benachbart sind, dann ist nur eine ungerade Anzahl von 1-brei­ ten Elementen dazwischen vorhanden. Hierin bezieht sich allgemein "entgegengesetzte, aufgelöste Elemente" auf 2-breite oder größere Striche und 2-breite oder größere Leerräu­ me, die in einem vorgegebenen Profil einander benachbart sind, während "benachbarte, aufgelöste Elemente" sich auf zwei 2-breite oder größere Striche oder 2-breite oder größe­ re Leerräume bezieht, die in dem Profil einander benachbart sind. Die Ausdrücke "entge­ gengesetzt" und "benachbart" beziehen sich auf die "Parität" oder den Ort des Elements in dem Reflektanzprofil, so daß "benachbarte Elemente" jeweils ähnliche Reflektanzwerte besitzen, während "entgegengesetzte Elemente" jeweils sehr verschiedene Reflektanzwerte besitzen. Elemente mit entgegengesetzter Parität besitzen immer eine gerade Anzahl von 1-Elementen, die dazwischen verloren sind, während Elemente mit benachbarter Parität immer eine ungerade Anzahl von 1-breiten Elementen dazwischen verloren besitzen.
Für die PDF417-Symbologie basieren die Abstände zwischen den Mittelpunkten der aufgelösten Elemente in den Schließungsprofilen auf zehn möglichen Anordnungen für die aufgelösten Elementpaare: ein 2-breites Element neben einem anderen 2-breiten Element (hierin als "2-2"-Situation bezeichnet), ein 2-breites Element neben einem 3-breiten Ele­ ment (eine "2-3"-Situation), ein 2-breites Element neben einem 4-breiten Element (eine "2- 4"-Situation), ein 3-breites Element neben einem 4-breiten Element (eine "3-4"-Situation), ein 4-breites Element neben einem 4-breiten Element (eine "4-4"-Situation), ein 4-breites Element neben einem 5-breiten Element (eine "4-5"-Situation), ein 5-breites Element ne­ ben einem 5-breiten Element (eine "5-5"-Situation), ein 5-breites Element neben einem 6- breiten Element (eine "5-6"-Situation), ein 6-breites Element neben einem 6-breiten Ele­ ment (eine "6-6"-Situation), ein 6-breites Element neben einem 7-breiten Element (eine "6- 7"-Situation). Jede Elementpaarsituation von null bis zehn (ein Maximum in der PDF417- Symbologie) dazwischen verlorene 1-breite Elemente umfassen. Die verbleibenden, aufge­ lösten Elementpaarkombinationen haben denselben Mittenabstand wie die obigen zehn Anordnungen. Zum Beispiel hat ein 3-breites Element neben einem 3-breiten Element (eine "3-3"-Situation) denselben Mittenabstand wie der 2-4-Abstand (und dieselbe Anzahl von Gesamtelementen) für eine vorgegebene Anzahl von nicht aufgelösten Elementen dazwi­ schen. Daher können die 3-3- und 2-4-Abstände dieselbe Anzahl von 1-breiten Elementen, die verloren sind, in Abhängigkeit von dem Mittenabstand dazwischen umfassen. Auf ähnli­ che Weise hat ein 5-breites Element neben einem 2-breiten Element (eine "5-2"-Situation) denselben Mittenabstand wie der 3-4-Abstand für eine vorgegebene Anzahl von nicht auf­ gelösten Elementen dazwischen. Daher können die 2-5- und 3-4-Abstände dieselbe Anzahl von 1-breiten Elementen, die verloren sind, in Abhängigkeit von dem Mittenabstand da­ zwischen umfassen. (Die Code49-Symbologie hat sieben mögliche Anordnungen.) Ein Beispiel eines Modells einer verlorenen Elementmatrix, die, wie im folgenden beschrieben, für alle Symbologien mit vielfachen Breiten verwendet und vervollständigt werden kann, ist hiernach in Tabelle 4 gezeigt.
Tabelle 4
Verlorene Elementmatrix
Da die Mittelpunkte der aufgelösten Elementpaar von null oder einer ganzen An­ zahl von 1-breiten Elementen getrennt werden müssen, kann der Prozessor in Schritt 120 die verlorene Elementmatrix unter Verwendung verschiedener Methoden aufgefüllt wer­ den. Wie in der US-Patentanmeldung mit der Seriennummer 08/327 972, eingereicht am 24. Oktober 1994 erklärt, kann die verlorene Elementmatrix durch Verwendung der X- Dimension und des STD aufgefüllt werden. Der kleinste Abstand zwischen zwei entgegen­ gesetzten 2-breiten Elementen ist gleich dem Mittelwert des kürzesten Abstands für das Profil oder STD, was einem 2-breiten Strich unmittelbar neben einem 2-breiten Leerraum mit keinem 1-breiten Element dazwischen entspricht. Der nächstgrößte Abstand in 2-2- Situationen entspricht einem dazwischen verlorenen 1-breiten Element, was nur zwischen zwei aufgelösten Leerräumen oder zwei aufgelösten Strichen auftreten kann. Daher ent­ spricht der nächste Eintrag in der 2-2-Spalte dem STD plus der X-Dimension. Der nächst­ größte Abstand in der 2-2-Situation entspricht zwei verlorenen, 1-breiten Elementen oder STD + (2 × X-Dimension), was einem aufgelösten Strich entspricht, der einem aufgelösten Leerraum folgt oder umgekehrt. Für die 2-3-Situation entspricht der kürzeste Abstand zwischen einem 2-breiten Element unmittelbar neben einem 3-breiten Element dem STD plus ein halb mal die X-Dimension. Der nächstgrößte Abstand für die 2-3-Situation ent­ spricht STD + (1,5 × X-Dimension), und so weiter.
Die nachfolgende Tabelle 5 zeigt die verlorene Elementmatrix, die die Gleichungen zum Bestimmen der geschätzten Mittenabstände für aufgelöste Elementpaare unter Ver­ wendung der X-Dimension und des STD enthält.
Tabelle 5
Verlorene Elementmatrix unter Verwendung von STD und X-Dimension
Basierend auf den Gleichungen der Tabelle 5 füllt der Prozessor 60 in Schritt 120 die verlorene Elementmatrix mit den geschätzten Mittenabständen zwischen den aufgelö­ sten Elementen unter Verwendung der X-Dimension von 6 und dem STD von 12 auf. Daher entspricht der kleinste 2-2-Abstand dem STD von 12, der in der ersten Position unter der 2-2-Spalte der Tabelle 5 eingegeben wird. Der nächstgrößte Abstand in der 2-2- Spalte muß die Breite eine 1-breiten Elements umfassen und entspricht dem STD plus der X-Dimension oder 12 + 6 = 18. Der nächstgrößte Abstand muß die Breite von zwei 1- breiten Elementen umfassen und ist insgesamt 24, und so weiter, für alle Zellen in der 2-2- Spalte der Tabelle 5. Der kleinste 2-3-Mittenabstand entspricht dem STD von 12 plus der Hälfte der X-Dimension oder ist gleich 15, während der nächstgrößte Abstand die Breite eines einzigen 1-breiten Elements umfassen muß (also 15 plus die X-Dimension oder 21), und so weiter in der 2-3-Spalte der Tabelle 5. Der Prozessor 60 fährt fort die verlorene Elementmatrix auf ähnliche Weise für die verbleibenden Elementpaare aufzufüllen, während er die Gleichungen in Tabelle 5 für die berechneten STD und X-Dimensionen löst.
Alternativ kann der Prozessor 60 beginnen, die verlorene Elementmatrix unter Verwendung bekannter Werte in dem Profil aufzufüllen und dann rückwärts zu arbeiten. Der Prozessor 60, der zuvor das Symbol 102 als ein PDF417-Symbol identifiziert hat, weiß, daß die ersten beiden Maxima dem Abstand zwischen einem 2-breiten Leerraum und einem 3-breiten Leerraum in dem Stoppmuster entsprechen. (Wiederum ist das Profil der Fig. 16 eine Rückwärtsabtastung und beginnt daher mit dem Stoppzeichen.) Der gemessene Mittenabstand beträgt 37, was einem Abstand zwischen eine 2-breiten Leerraum und einem 3-breiten Leerraum entspricht. Da diese beiden aufgelösten Elemente Leerräume sind, die in dem Profil nebeneinander auftreten, kann nur eine ungerade Anzahl von 1-breiten Ele­ menten zwischen ihnen existieren. Basierend auf der Kenntnis, daß das Stoppmuster für die PDF417-Symbologie immer drei 1-breite Elemente zwischen den 2-breiten und 3-breiten Leerräumen umfaßt, existiert ein Strich-Leerraum-Strich-Triplett zwischen den beiden aufgelösten Leerräumen. Daher stellt der Prozessor 60 fest, daß ein Mittenabstand von ungefähr 37 zwischen einem 2-breiten Element und einem 3-breiten Element drei unaufge­ lösten 1-breiten Elementen dazwischen entspricht. Eine verlorene Elementmatrix kann daraus, wie hiernach gezeigt, aufgebaut werden.
Tabelle 6
Anfängliche verlorene Elementmatrix unter Verwendung bekannter Abstände aus Start/Stoppmustern
Der Prozessor 60 ist in der Lage, die Werte 42 und 70 in Tabelle 6 basierend auf der Kenntnis, daß der Mittenabstand von 42 zwischen dem 3-breiten Leerraum und dem 7- breiten Strich in dem Stoppmuster zwei unaufgelöste 1-breite Elemente (ein Strich- Leerraum-Dublett) umfaßt, einzufügen. Auf ähnliche Weise erkennt der Prozessor, daß das Startmuster in der PDF417-Symbologie einen 8-breiten Strich und einen 3-breiten Leer­ raum umfaßt, die sechs 1-breite Elemente umschließen. Als Ergebnis ist der gemessene Abstand von 70 für die 3-8-Situation in der obigen Tabelle 6 gezeigt.
Aus den drei in Tabelle 6 eingegebenen Werten kann der Prozessor den Rest der Werte der verlorenen Elementmatrix bestimmen. Zum Beispiel können die 2-3- und 3-7- Situationen in dem Stoppzeichen gemittelt werden, um eine geschätzte X-Dimension zu erzeugen: 37 + 42 = 79, die eine Summe von 12,5 X-Dimensionen einschließt, und eine X- Dimension von 6,32 erzeugen (also 79/12,5 = 6,32). Basierend auf der berechneten X-Di­ mension von 6,32 addiert und subtrahiert der Prozessor 60 die Hälfte diese Werts (also 3,16), um die verlorene Elementmatrix aufzufüllen, wie teilweise in Tabelle 7 gezeigt.
Tabelle 7
Beispielhafte verlorene Elementmatrix unter Verwendung bekannter Abstände in Start/Stoppmustern
Nach dem Auffüllen der verlorenen Elementmatrix in Schritt 120 vergleicht der Prozessor 60 in Schritt 122 den Mittenabstand, wie er in Schritt 115 gemessen wurde, mit den Eintragen in der Matrix, um den nächsten geschätzten Abstand in der Matrix zu finden. Basierend auf dem nächsten geschätzten Abstand in der Matrix bestimmt der Prozessor 60 die Anzahl der 1-breiten Elemente, die zwischen zwei aufgelösten, breiteren Elementen verloren sind, aus der linken Spate der Matrix. Der Prozessor 60 selektiert die geeignete Spalte in der Matrix basierend auf den Breiten der aufgelösten Elemente, die den Mitten­ abstand umg 46742 00070 552 001000280000000200012000285914663100040 0002019604767 00004 46623eben, wie er vorher in Schritt 119 bestimmt wurde. Als Überprüfung bestimmt der Prozessor 60 in Schritt 122, ob die aufgelösten Elemente entgegengesetzt oder benach­ bart sind, um sicherzustellen, daß die richtige Zeile in der Spalte auf der Basis der Parität der aufgelösten Elemente ausgewählt wird.
In Schritt 122 konstruiert der Prozessor 60 eine Dekodiertabelle, -feld oder -matrix, von der Fig. 17 ein Beispiel zeigt. Die Dekodiermatrix der Fig. 17 zeigt in Zeile 124 alle gemessenen Mittenabstände zwischen aufgelösten Elementpaaren, wie sie aus dem Profil der Fig. 16 genommen worden sind. Die Zeile 126 unter Zeile 124 und gegenüber dieser versetzt, zeigt alle gemessenen Breiten der aufgelösten Elemente, die die gemessenen Mit­ tenabstände in der Zeile 124 umgeben.
Die Zeile 128 enthält die Größe der aufgelösten Elemente. Der Prozessor füllt die Zeile 128 auf, indem er die gemessenen Breiten in Zeile 126 mit den geschätzten Breiten in den oben erwähnten Tabellen 2 oder 3 vergleicht. Wenn der Prozessor 60 zum Beispiel feststellt, daß ein Leerraum eine gemessene Breite in Zeile 126 von 19 besitzt, vergleicht der Prozessor diese Breite mit Tabelle 2 und stellt fest, daß die gemessene Breite von 19 am ehesten der geschätzten Breite für einen 3-breiten Leerraum entspricht. Daher füllt der Prozessor 60 die Zeile 128 mit einer entsprechenden "3" unter dem Wert "19" in Zeile 126 auf. Während der Prozessor 60 vorzugsweise jede gemessene Breite in Zeile 126 in Schritt 119 mit den Tabelle 2 und 3 vergleicht und die Zeile 128 vollständig auffüllt, bevor er zur weiteren Bearbeitung des Profils geht, kann der Prozessor 60 die Zeile auffüllen, indem er der Reihe nach jeden Mittenabstand in Zeile 124 von links nach rechts analysiert.
In den Zeilen 126 und 128 gibt ein positiver Wert einen Leerraum oder ein Maxi­ mum in dem Profil ein (hohe Reflektanz), während ein negativer Wert einen Strich oder ein Minimum angibt (niedrige Reflektanz). Zum Beispiel beziehen sich die Werte "19" und "-38" in der Zeile 126 auf die gemessenen Breiten eines aufgelösten Leerraums beziehungs­ weise Strichs, während sich die Werte "3" und "-7" in Zeile 128 auf einen 3-breiten Leer­ raum beziehungsweise einen 7-breiten Strich beziehen.
Basierend auf der Kenntnis der Start- und Stoppmuster in der PDF417-Symbologie, beginnt der Prozessor 60 in Schritt 122 mit dem Auffüllen der nicht aufgelösten, breiten Elemente zu Beginn und Ende des Profils. Danach vergleicht der Prozessor 60 den äußerst linken, gemessenen Mittenabstand in Zeile 124, um die Anzahl der verlorenen Elemente innerhalb dieses Abstands zu bestimmen, und fährt nach rechts entlang der Zeile 124 fort. Der Prozessor 60 muß nicht die gemessenen Mittenabstände von links nach rechts in der Zeile 124 analysieren, sondern kann zum Beispiel in der Mitte der Reihe der gemessen Mittenabstände in der Zeile beginnen.
Der erste Mittenabstand in der Zeile 124, der dem 7-breiten Strich folgt, beträgt 34 und wird von dem 7-breiten Strich zur linken und einem 4-breiten Leerraum zur rechten umgeben. Der Prozessor 60 vergleicht in Schritt 122 die gemessenen Mittenabstände mit den in Tabelle 7 zur Verfügung gestellten, geschätzten Mittenabstände in der richtigen Spalte. Daher würde in diesem Beispiel der 7-breite Strich neben einem 4-breiten Leerraum der "4-7"-Spalte in Tabelle 7 entsprechen, und der gemessene Mittenabstand von 34 ent­ spricht am ehesten dem geschätzten Abstand von 37 in der Tabelle insbesondere, da der nächst mögliche Abstand 49,6 beträgt. Basierend auf dem geschätzten Mittenabstand von 37 in Tabelle 7, bestimmt der Prozessor 60, daß null 1-breite Elemente zwischen dem 7- breiten Strich und dem 4-breiten Leerraum verloren sind.
Als Überprüfung vergleicht der Prozessor 60 in Schritt 122 auch die Parität der aufgelösten Elemente, die den gemessenen Mittenabstand umgeben, mit der Paritätsspalte der verlorenen Elemente in Tabelle 7. Der Prozessor 60 weiß aus Zeile 128, daß die aufge­ lösten Elemente, die den gemessenen Mittenabstand umgeben, ein Strich und ein Leerraum sind (der 7-breite Strich neben einem 4-breiten Leerraum), und daher werden die Elemente als entgegengesetzt betrachtet. Der Prozessor 60 erkennt in Schritt 122 aus Tabelle 7, daß die Parität für null verlorene Elemente entgegengesetzte, aufgelöste Elemente erfordert. Somit stimmt die Parität überein, was bestätigt, daß null 1-breite Elemente in der gemesse­ nen Mittendistanz von 34 verloren sind. Der Prozessor 60 beginnt in Schritt 122 die Zeile 130, die die Anzahl der unaufgelösten, 1-breiten Elemente, die zwischen den aufgelösten Elementen verloren sind, angibt, mit einem Wert von "0" unterhalb dem gemessenen Mitten­ abstand von 34 in der Zeile 124 obendrüber aufzufüllen.
Der nächste gemessene Mittenabstand beträgt 19 und liegt zwischen dem 4-breiten Leerraum auf der linken und einem 2-breiten Strich auf der rechten. Unter Spalte 2-4 der Tabelle 7 korreliert der gemessene Mittenabstand am ehesten mit dem geschätzten Mitten­ abstand von 21,2, und daher sind null 1-breite Elemente dazwischen verloren. Null verlore­ ne Elemente entsprechen einer entgegengesetzten Parität, und der 4-breite Leerraum neben dem 2-breiten Strich entsprechen entgegengesetzten Elementen, daher stimmt die Parität überein. Folglich speichert der Prozessor 60 eine 0 in Zeile 130 beziehungsweise gibt sie dort ein.
Der nächste gemessene Mittenabstand von Interesse beträgt 35 und liegt zwischen zwei 3-breiten Strichen. Unter Spalte 3-3 der Tabelle 7 korreliert der gemessene Mitten­ abstand am ehesten mit dem geschätzten Mittenabstand von 33,8, der zwei dazwischen verlorenen, 1-breiten Elementen entspricht. Zwei verlorene Elemente entsprechen einer entgegengesetzten Parität, wohingegen der 3-breite Strich neben einem weiteren 3-breiten Strich benachbarten Elementen entspricht, woraus sich ein Paritätskonflikt ergibt. Folglich wählt der Prozessor den nächst näheren geschätzten Abstandswert in Tabelle 7 unter der 3-3-Spalte aus, welcher 40,2 beträgt und drei 1-breiten Elementen entspricht, die zwischen den beiden 3-breiten Strichen verloren sind. Die Parität stimmt überein, und daher gibt der Prozessor 60 eine "3" in die Zeile 130 ein.
Der Prozessor 60 weiß, daß drei 1-breite Elemente zwischen den beiden 3-breiten Strichen verloren sind und nicht ein einziger 3-breiter Leerraum, da alle Elemente, die größer als 2-breit sind, aufgelöst werden und nur 1-breite Elemente verloren gehen. Da die Parität mit einem vorgegebenen Eintrag in Tabelle 7 übereinstimmen muß, ist das Verfah­ ren nach der vorliegenden Erfindung sehr fehlertolerant für Fehler in allen geschätzten Mittenabständen, geschätzten Breiten und so weiter. Die geschätzten oder gemessenen Abstände können um bis zu mehreren ganzzahligen Einheiten in beiden Richtungen abwei­ chen, bevor das Verfahren nach der vorliegenden Erfindung einen Fehler erzeugt. In diesem Beispiel beträgt der geschätzte Abstand in Tabelle 7, der dem gemessenen Mittenabstand von 35 am nächsten kommt und die geeignete Parität besitzt, 40,2 mit einer Differenz von 5,2 statt dem geschätzten Abstand von 27,5, der eine Differenz von 7,5 erzeugt. In der Tat kann bei der vorliegenden Erfindung der gemessen Mittenabstand um die Breite eines gan­ zen 1-breiten Elements (also einer ganzen X-Dimension) daneben liegen und immer noch richtig dekodiert werden.
Zeile 132 in Fig. 17 zeigt die resultierende Reihe von Elementbreiten, wenn der Prozessor 60 die Dekodiermatrix mit allen nicht aufgelösten 1-breiten Elementen in Zeile 130 auffüllt. Zum Beispiel zeigt Reihe 130, daß "3" Elemente zwischen dem ersten 3-brei­ ten Leerraum und dem 7-breiten Strich, die in Zeile 128 gezeigt sind, verloren sind. Daher erzeugt der Prozessor 60 die Zeile 132 als eine zusammengesetzte Zeile aus den Zeilen 128 und 130, mit einer "3" und einer "7" unter denselben Einträgen obendrüber in Zeile 128 und drei "1" dazwischen unter dem "3"-Eintrag in Zeile 130. Die positive und negative Unterscheidung zwischen Strichen und Leerräumen wird unterdrückt, da sie nicht notwen­ dig ist, sobald die schmalen Elemente gefunden sind. Daher ist der erste 7-breite Strich in dem Profil in Zeile 128 als "-7" gezeigt, aber in Zeile 132 als "7" gezeigt.
In Schritt 133 der Fig. 14B wandelt der Prozessor 60 die resultierende Reihe von Elementbreiten in Zeile 132 in eine Reihe von Elementen um, die in Zeichen analysiert werden, wie in Zeile 134 in Fig. 17 gezeigt. In Schritt 133 analysiert der Prozessor 60 jedes Symbolzeichen, um sicherzustellen, daß er die richtige Anzahl von Modulen für eine vor­ gegebene Symbologie umfaßt. Zum Beispiel umfaßt jedes Symbolzeichen der PDF417- Symbologie 17 Module. Daher kann in der PDF417-Symbologie die Gesamtzahl der Mo­ dule pro einzelnem Zeichen durch die folgende Gleichung dargestellt werden:
[b₁+s₁+b₂+s₂+b₃+s₃+b₄+s₄] = 17 Module (1)
wobei b₁ bis b₄ und s₁ bis s₄ die Größen der Striche beziehungsweise Leerräume in einem vorgegebenen Symbolzeichen darstellen. Jede Zeile in dem Symbol 102 umfaßt drei Sym­ bolzeichen zwischen den Start- und Stoppmustern. Die Gesamtzahl an Modulen in dem ersten Symbolzeichen, das dem Stoppmuster folgt, beträgt 17 und umfaßt daher die ge­ eignete Anzahl an Modulen (also 4 + 2 + 2 + 3 + 1 + 1 + 1 + 3 = 17). Die verbleibenden beiden Zeichen in Zeile 134 umfassen ebenfalls 17 Module.
Der Prozessor 60 kann in Schritt 133 auch feststellen, daß die Reihe von Elementen in Zeile 134 die geeignete Anzahl von Gesamtelementen für eine vorgegebene Symbologie enthält. In der PDF417-Symbologie muß jede Zeile in einem vorgegebenen Symbol eine Anzahl von Elementen besitzen, die auf der folgenden Formel basiert:
Anzahl der Elemente pro Zeile = 8C + 1 Element (2)
wobei C die Anzahl der Symbolzeichen ist. Wie oben erwähnt, umfaßt jede Zeile in dem Symbol 102 drei Symbolzeichen plus Start- und Stoppzeichen. Daher muß nach Gleichung (1) jede Zeile 41 Elemente umfassen. Zählen der Elementreihe in Zeile 124 und Addieren von eins zeigt, daß der Prozessor 60 genau 41 Elemente identifiziert hat. Daher hat der Prozessor 60 die richtige Anzahl von Elementen für die zweite Zeile des Symbols 102 identifiziert.
Wie oben erwähnt enthalten viele Symbologien eine Redundanz in ihren Kodie­ rungsschemata, die die vorliegende Erfindung verwendet, um verlorene, schmale Elemente in unaufgelösten Profilen zu lokalisieren. Zum Beispiel besitzen die Striche in dem Code 128 nur eine gerade Anzahl von Modulen. Daher erkennt, wenn der Prozessor 60 nach der vorliegenden Erfindung weiß, daß ein vorgegebenes Profil von einem Code 128 erzeugt wurde und der Prozessor aus der Dekodierungsmatrix feststellt, daß ein gegebener Strich eine ungerade Anzahl von Modulen umfaßt, der Prozessor, daß die Breite des Strichs feh­ lerhaft bestimmt wurde.
Die meisten gestapelten Symbologien umfassen eine Zeilenidentifikationsparität, die von den Laserscannern verwendet wird, um festzustellen, welche Zeile der Laserabtast­ strahl gerade abtastet. Zum Beispiel verwendet der Code 49 abwechselnde Zeilen mit Sym­ bolzeichen mit gerader oder ungerader Parität in einer vorgegebenen Zeile. Da die vorlie­ gende Erfindung vorzugsweise einen Leser des Abbildungstyps verwendet, kann der Pro­ zessor 60 zwischen Zeilen unterscheiden, ohne auf irgendeine Zeilenidentifikationsparität zurückzugreifen. Daher kann der Prozessor 60 die Redundanz der Zeilenidentifikations­ parität oder der Symbolzeichen-Selbstüberprüfungsparität in den Symbologien verwenden, um die festgestellen Breiten der breiten Elemente zu überprüfen und dann zu korrigieren, die zuvor in Schritt 119 falsch bestimmt wurden.
Daher überprüft der Prozessor in Schritt 133 auch für PDF417-Symbole die Zeilenidentifikations- oder "Cluster-"Parität für jedes Symbolzeichen. Die "Clusterparität" ist eine Standardzeilenidentifikations-Paritätsüberprüfung, die in der PDF417-Symbologie bekannt ist und dort verwendet wird. Bei der Clusterparitätsberechnung werden die Grö­ ßen der Striche in einem gegebenen Symbolzeichen abwechseln addiert und subtrahiert und dann wird das Modulo 9 des Ergebnisses genommen, um denselben Wert in einer gegebe­ nen Zeile zu erzeugen (ein Wert von 0, 3 oder 6). Die Clusterparitätsberechnung für die PDF417-Symbologie kann durch die folgende Gleichung zusammengefaßt werden:
(b₁-b₂+b₃-b₄+9)mod9 = 0, 3 oder 6 (3)
wobei b₁ bis b₄ die Größen der Striche sind, die sich von links nach rechts (von dem Start- zum Stoppzeichen) in einem vorgegebenen Symbolzeichen erstrecken.
Wenn die Reihe von Elementen in der Reihe 134 die richtige Anzahl von Modulen nach Gleichung (1), die richtige Anzahl von Elementen nach Gleichung (2) und die richtige Clusterparität nach Gleichung (3) umfaßt, dekodiert der Prozessor 60 in Schritt 136 die Symbolzeichen der Zeile 134 unter Verwendung bekannter Verfahren, die der gegebenen Symbologie eigen sind. Zum Beispiel umfaßt die PDF417-Symbologie einer höherwertige Fehlerkorrektur, Detektions- und Interpretationsmodule und -algorithmen, die der Prozes­ sor 60 durchführt, um die Symbolzeichen in Datenzeichen umzuwandeln.
Wenn der Prozessor 60 in Schritt 133 feststellt, daß die Reihe von Elementen in Zeile 134 eine falsche Anzahl von Modulen oder Elementen umfaßt oder die Clusterparität verletzt, dann identifiziert der Prozessor in Schritt 138 den Modul- oder Clusterparitäts- Fehler für jedes Symbolzeichen in Zeile 134. Zum Beispiel zeigt Fig. 18 ein nicht aufgelö­ stes Profil ähnlich dem der Fig. 16 aber aus der dritten Zeile des Symbols 102. Nach dem Durchführen der Schritte 104 bis 133 erzeugt der Prozessor 60 die folgende Reihe von Elementen, die in Symbolzeichen analysiert wurden:
121113117 24141112 21313121 34241111 31111118.
In Schritt 133 bestimmt der Prozessor nach Gleichung (2), daß die Reihe von Elementen 41 Elemente umfaßt und daher die richtige Anzahl von Elementen umfaßt. Die ersten, vierten und letzten Symbolzeichen enthalten die richtige Anzahl von Modulen nach Glei­ chung (1). Zusätzlich erzeugen die ersten, vierten und letzten Symbolzeichen nach Glei­ chung (3) eine Clusterparität von 0 und sind daher korrekt. Der Prozessor 60 identifiziert jedoch Fehler in den zweiten und dritten Symbolzeichen der Elementreihe.
Wenn man das dritte Symbolzeichen unter Gleichung (1) betrachtet, enthält es eine falsche Anzahl von Modulen:
2+1+3+1+3+1+2+1 = 14 ≠ 17 Module.
Das dritte Symbolzeichen erzeugt jedoch die richtige Clusterparität nach Gleichung (3):
(1 - 1 + 1 - 1 +9) mod9 = 0.
Daher muß die Größe der Striche richtig sein. Folglich muß die Größe von wenigstens eini­ gen der Leerräume falsch sein. Der Prozessor 60 erkennt, daß die Strichmessungen korrekt sein müssen, da die Striche, wenn sie größer wären, aufgelöst wurden, was zu einem völlig anderen Profil führen würde. Als Ergebnis müssen drei der vier Leerräume um ein Modul vergrößert werden, um nach Gleichung (1) die korrekte Anzahl von 17 Modulen für das Symbolzeichen zu erzeugen.
Der Prozessor 60 korrigiert in Schritt 140 alle Symbolzeichen, die ein oder mehr fehlende oder zusätzliche Module besitzen, so daß die Symbolzeichen die richtige Anzahl von Modulen besitzen (also 17 Module für die PDF417-Symbologie). Der Prozessor 60 analysiert jedes der breiten Elemente nach einem fehlerhaften Symbolzeichen. Da Gleichung (3) die richtige Clusterparität erzeugt hat, erkennt der Prozessor 60, daß die Fehler in den Leerräumen liegen, und analysiert daher die breiten Leerräume. Der breite Leerraum 150 in Fig. 18 ist richtig, da er die geringste Breite der vier Leerräume in dem dritten Symbol­ zeichen besitzt. Zusätzlich erkennt der Prozessor 160, daß der 2-breite Leerraum 150 einen Abstand von 12 von seinem Mittelpunkt nach rechts hat, was sehr unwahrscheinlich eine Messung für eine 2-3-Situation wäre. Folglich erhöht der Prozessor 60 in Schritt 140 die Größe jeder der drei Leerräume, die folgen (die Leerräume 152, 154 und 156 in Fig. 18), um eins, um die folgende Reihe von Elementen zu erzeugen:
21414131.
Bei der Analyse des zweiten Symbolzeichens erkennt der Prozessor 60 in Schritt 138, daß das Symbolzeichen die falsche Anzahl von Modulen nach Gleichung (1) besitzt:
2 + 4 + 1 + 4 + 1 + 1 + 1 + 2 = 16 ≠ 17.
Zusätzlich erkennt der Prozessor 60 in Schritt 138, daß die Clusterparität nach Gleichung (3) für das zweite Symbolzeichen ebenfalls nicht richtig ist:
(2 - 1 + 4 - 4 + 9) mod9 = 1.
(Es sei folgendes festgestellt: Da das Profil der Fig. 18 ein umgekehrter Scan ist, beginnen Clusterberechnungen mit am weitesten rechts liegenden Strich und gehen dann nach links.) Wie oben erwähnt, muß der Clusterparitätsalgorithmus zu einem Ergebnis von 0, 3 oder 6 führen. Da der Prozessor 60 weiß, daß des zweite Zeichen in der dritten Zeile des Symbols liegt, weiß der Prozessor, daß das Zeichen eine Clusterparität von 0 erzeugen muß. Als Ergebnis erkennt der Prozessor 60 basierend auf Gleichung (1) in Schritt 138, daß dem Symbolzeichen ein Modul fehlt und daß der Fehler in der geschätzten Breite einer der Stri­ che auftritt. Da der 1-breite Strich korrekt sein muß (sonst wäre er aufgelöst worden), muß der Fehler entweder in dem 2-breiten oder einem der 4-breiten Striche liegen.
In Schritt 140 versucht der Prozessor 60 den breiten Strich mit einem zusätzlichen oder einem fehlenden Modul zu identifizieren, erreicht aber nicht sofort ein Ergebnis. Da­ her analysiert der Prozessor 60 in Schritt 142 die Clusterparität der Gleichung (3) unter Verwendung einer Anzahl von Verfahren, z. B. rekursiver Berechnungen, und bestimmt, daß, wenn das äußerst rechte der 4-breiten oder 2-breiten Elemente um eins vergrößert würde, die Clusterparitätsgleichung ein Ergebnis von 0 erzeugen würde. Der Prozessor 60 bestimmt in Schritt 142, daß nur durch Vergrößern des äußerst linken, 4-breiten Strichs die Clusterparitätsgleichung eine 0 ergibt. Folglich erzeugt der Prozessor 60 in Schritt 142 die folgende Reihe von Elementen für das zweite Symbolzeichen:
25141112.
In Schritt 142 kann der Prozessor 60 alternativ alle möglichen Gleichungen, also die Clusterparitätsgleichung, die Gesamtelementgleichung und die Gesamtmodulgleichung, aufstellen und versuchen, vier der Unbekannten zu lösen. Zusätzlich kann der Prozessor 60 die Mittelabstände und die gemessenen Elementbreiten in dem Profil der Fig. 18 analysie­ ren, um festzustellen, welche der gemessenen Mittenabstände und der gemessenen Ele­ mentbreiten am deutlichsten von den geschätzten Abständen und geschätzten Breiten aus den Tabellen 6, 2 und 3 abweichen. Der Fachmann wird erkennen, daß jede Technik zum Bestimmen und korrigieren von Fehlern in der Reihe von Elementen, die aus der verlorenen Elementmatrix und/oder der Dekodiertabelle abgeleitet werden, in Verbindung mit der vorliegenden Erfindung verwendet werden kann. Nach dem Erzeugen der richtigen Reihe von Elementen für die fehlerhaften Symbolzeichen in den Schritten 138-142 dekodiert der Prozessor 60 in Schritt 144 die Symbolzeichen unter Verwendung bekannter Algorithmen.
Zusätzlich zu den oben beschriebenen Schritten kann das Programm 100 mehrere alternative oder zusätzliche Schritte aufweisen. Zum Beispiel kann das Programm 100 für den Fall, daß der Leser 50 viele Symbole liest, von denen die meisten defokussiert sind, schneller Schließungsprofile dekodieren, ohne Prozessorzeit bei Dekodieren eines Schlie­ ßungsprofils in Schritt 106 zu vergeuden. Statt dessen kann der Prozessor 60 sofort zu den Schritten übergehen, die zum Dekodieren eines Schließungsprofils notwendig sind (Schritte 107-144).
Während der Prozessor 60 die oberen und unteren Schließungsgrenzen 90 und 95 auf der Basis einer Zählung der Überkreuzungen der Maxima und Minima bestimmen kann, kann der Prozessor die Grenzen auch mit verschiedenen alternativen Verfahren in Schritt 107 bestimmen. Zum Beispiel kann der Prozessor 60 das Profil selbst überprüfen, um die oberen und unteren Schließungsgrenzen 90 und 95 zu erzeugen. Wie oben erklärt, befinden sich die Maxima in dem Profil der Fig. 16, sofern sie aufgelöst sind, an der Oberseite des Profils und stellen Leerräume in dem Symbol 102 dar. In dem in Fig. 16 gezeigten Schlie­ ßungsprofil sind die Maxima der 1-breiten Leerräume ziemlich niedrig in der Reflektanz, und es werden einige Maxima mit einer Reflektanz von ungefähr 35% gefunden. Der Pro­ zessor 60 überprüft daher in Schritt 107 das Profil, lokalisiert das niedrigste Maximum in dem Profil und erzeugt die niedrige Schließungsgrenze 95 als die Reflektanz des niedrig­ sten Maximums innerhalb des Profils.
Umgekehrt befinden sich die Mimina in dem Profil der Fig. 16, sofern sie aufgelöst werden, an der Unterseite des Profils und stellen die Striche in dem Symbol 102 dar. In den in Fig. 16 gezeigten Schließungsprofilen sind jedoch die Minima der 1-breiten Striche ziem­ lich hoch in der Reflektanz, und es werden einige Minima mit einer Reflektanz von 37% gefunden. Der Prozessor 60 überprüft daher in Schritt 107 auch das Profil, um das höchste Minimum in dem Profil zu orten, und erzeugt die untere obere Grenze 90 als die Reflektanz des höchsten Minimums innerhalb des Profils. Wenn das höchste Maximum über dem nied­ rigsten Minimum liegt, was Elementdefekte, wie etwa Flecken oder freie Stellen, aus­ schließt, die beim Drucken der Symbole erzeugt wurden, ist das Profil ein Schließungs­ profil, und keine schmalen Elemente können aufgelöst werden.
Weitere Verfahren zum Bestimmen der oberen und unteren Schließungsgrenzen 90 und 95 umfassen eine Analyse des Profils, um einen mittleren Reflektanzschwellwert zu bestimmen. Danach wählt der Prozessor 60 die obere Schließungsgrenze 90 als eine feste Reflektanzzunahme von der mittleren Reflektanz und die untere Schließungsgrenze 95 als eine feste Abnahme von der mittleren Reflektanz aus. Nach der Bestimmung der oberen und unteren Schließungsgrenzen 90 und 95 identifiziert der Prozessor 60 in Schritt 107 aufgelöste Elemente als solche Bereiche des Profils, die sich über oder unter die Schlie­ ßungsgrenzen erstrecken.
Der Prozessor 60 erzeugt die oberen und unteren Schließungsgrenzen 90 und 95, um zu bestimmen, welche Maxima und Minima in dem Profil aufgelösten Elementen ent­ sprechen. Alternative Verfahren zum Analysieren des Profils, um zu bestimmen, welche Maxima und Minima den aufgelösten Elementen entsprechen, umfassen die Analyse der Steigungen der einzelnen Maxima und Minima in dem Profil. Wenn zum Beispiel der Pro­ zessor 60 den Bereich des Profils der Fig. 16 von dem Maximum 83 an nach rechts analy­ siert, besitzt die Steigung des Profils einen großen negativen Wert, solange sich das Profil von dem Maximum 83 zum nächsten Minimum erstreckt. Der Prozessor 60 stellt daher fest, daß das Maximum 83 ein aufgelöster Leerraum ist. Zusätzlich bestimmt der Prozessor 60 aus der steilen Steigung, daß null 1-breite Elemente verloren sind. Alternativ besitzt bei der Analyse des Profils von dem Minimum 77 aus nach links zu dem hohen Maximum die Steigung einen stark negativen Wert, bis sich das Profil in den Schließungsbereich 110 erstreckt. Innerhalb des Schließungsbereichs 110 ändert sich das Vorzeichen der Steigung jedoch mehrere Male von negativ nach positiv und dann wieder zurück nach negativ, wäh­ rend sich das Profil zu dem hohen Maximum erstreckt. Der Prozessor 60 erkennt die Änderung in der Steigung innerhalb des Schließungsbereichs 1100 als einen Bereich innerhalb des Profils, der unaufgelöste, 1-breite Elemente enthält. Nach der Analyse der sich ändern­ den Steigungen in dem Profil kann der Prozessor 60 unter Verwendung bekannter ma­ thematischer Formeln die aufgelösten Maxima und Minima in dem Profil identifizieren.
In Schritt 116 kann der Prozessor 60 zusätzlich die Start- und Stoppzeichen oder linken und rechten Schutzmuster für ein Symbol identifizieren und den Typ des Symbols (also zu welcher Symbologie das Symbol gehört) auf der Basis der Start- und Stoppzeichen für das Symbol bestimmen. Zum Beispiel beginnen und enden bei der U.P.C.-A-Symbolo­ gie alle U.P.C.-A-Symbole mit Schutzmustern, die aus zwei 1-breiten Strichen bestehen, die einen 1-breiten Leerraum umschließen, und besitzen ein zentrales Schutzmuster, das aus fünf 1-breiten Leerräumen besteht, die durch zwei 1-breite Striche getrennt werden. Keine andere Symbologie weist solche Start/Stoppzeichen oder Schutzmuster auf. Der Prozessor 60 identifiziert ein Profil als ein von einem U.P.C.-A-Symbol erzeugtes, wenn das Profil unaufgelöste Bereiche am Beginn, Ende und in der Mitte aufweist.
Andere Symbologien verwenden ähnliche eindeutige Muster oder Merkmale, die der Prozessor 60 identifiziert, um den Typ des Symbols zu identifizieren, von dem ein gege­ benes Profil erzeugt wurde, selbst wenn das Profil aus einigen nicht aufgelösten Elementen hervorgeht. Alle Code 93-Symbole besitzen ein Stoppzeichen, das einen 4-breiten Strich besitzt, der von der Ruhezone durch zwei 1-breite Elemente getrennt ist. Der Prozessor 60 stellt fest, daß ein vorgegebenes, nicht aufgelöstes Profil von einem Code 93-Symbol er­ zeugt wurde, wenn er ein großes Minimum (der große Striche) an dem Ende des Profils neben einem hohen Maximum (der Ruhezone) identifiziert.
Wie oben erwähnt, besitzen alle PDF417-Symbole Start- und Stoppzeichen, die jeweils mit den größten Strichen beginnen, die in der Symbologie vorhanden sind, also 7- breite und 8-breite Striche. Bei der Analyse eines vorgegebenen Profils identifizierte der Prozessor 60 in Schritt 304 leicht ein PDF417-Profil, indem der die sehr breiten Minima am Beginn und am Ende des Profils lokalisiert. Wenn das Profil solche breiten Minima am Beginn und am Ende des Profils aufweist und der Prozessor weitere, kleinere Maxima und Minima in dem Profil identifiziert, stellt der Prozessor 60 fest, daß das Profil von einem PDF417-Symbol erzeugt worden ist.
Nach dem Identifizieren der Start/Stoppzeichen und dem Bestimmen des Typs des Symbols kann der Prozessor 60 in Schritt 116 feststellen, ob das Profil Beschleunigungs­ verzerrungen umfaßt. Beschleunigungsverzerrungen werden allgemein erzeugt, wenn die Bewegung des Lesestrahls über das Symbol beschleunigt wurde, während das Profil er­ zeugt wurde. Beschleunigungsverzerrungen sind in Profilen, die von in der Hand gehalte­ nen, stabförmigen Lesen erzeugt werden, üblich, aber solche Verzerrungen sind weniger schlimm in Laserscannern und auf Abbildungen basierenden Lesern.
Der Prozessor 60 stellt fest, ob ein Profil Beschleunigungsverzerrungen aufweist, indem er die Dimensionen des Startzeichens mit den Dimensionen des Stoppzeichens und/oder diese Dimensionen mit dem Gesamtdimensionen des Profils vergleicht. Bei einem U.P.C.-Symbol vergleicht der Prozessor 60 den Abstand zwischen dem Beginn des Profils bis zu seiner Mitte und von seiner Mitte bis zu seinem Ende. Der Prozessor 60 kann die Mitte des Profils in Fig. 3 durch Lokalisieren der Fläche, in der viele (wenigstens fünf) 1- breite Elemente unaufgelöst sind (was der Mitte des Schutzmusters entspricht), lokalisie­ ren. Wenn der Abstand von dem Beginn des Profils bis zu seinem Mittelpunkt deutlich von dem Abstand des Mittelpunkts des Profils bis zu seinem Ende differiert, wendet der Prozes­ sor 60 unter Verwendung bekannter Techniken einen Kompensationsfaktor an, um die Beschleunigungsverzerrung zu kompensieren.
Ähnliche Verfahren zum Feststellen, ob ein Profil Beschleunigungsverzerrungen enthält, stehen zur Verfügung, wenn man die Start- und Stoppmuster der verschiedenen Symbologien verwendet. Zum Bespiel vergleicht der Prozessor 60 in den PDF417-Symbo­ len die Breite des Minimums in dem Profil, das von den 7-breiten und 8-breiten Strichen an dem Beginn und am Ende des PDF417-Symbols erzeugt wird. Wenn die beiden Breiten deutlich voneinander abweichen, wendet der Prozessor 60 einen geeigneten Kompensa­ tionsfaktor auf der Basis des bekannten Verhältnis der Breiten dieser breiten Striche an.
In Schritt 116 kann der Prozessor 60 auch die X-Dimension mit verschiedenen alternativen Verfahren bestimmen. Zum Beispiel besitzen alle U.P.C.-A-Symbole eine feste Breite, die eine Gesamtheit von 95 Modulen umfaßt. Alle Code 49-Symbole besitzen eine feste Breite, die eine vorgegebene Anzahl von Modulen umfaßt, oder diskrete Breiten, die algorithmisch bestimmt werden können. Wenn die X-Dimension für ein gegebenes U.P.C.- A-Symbol 9 beträgt, dann besitzt das Symbol eine Gesamtbreite von der linken Kante sei­ ner linken Schutzmusters bis zur rechten Kante seines rechten Schutzmusters von 9 mal 95 also von 855.
Wenn also der Leser 50 ein Profil von einem U.P.C-A-Symbol mit einer sehr gerin­ gen Beschleunigungsverzerrung erzeugt, bestimmt der Prozessor 60 die X-Dimension einfach durch Teilen der Summe der Mittenabstände durch 97. Der summierte Mitten­ abstand wird durch 97 und nicht durch 95 geteilt, da die beiden zusätzlichen Module einem implizierten 2-breiten Leerraum an der Ruhezone, der einem der linken oder rechten Schutzmuster folgt. Wenn der Prozessor 60 feststellt, daß das Profil Beschleunigungs­ verzerrungen enthält, oder feststellt, daß das Profil aus einer Symbologie mit nicht festen Breiten erzeugt wurde, dann wird die X-Dimension wie oben beschrieben bestimmt.
Einige Symbole haben keine Fälle mit 2-breiten Elementen direkt nebeneinander (also kein STD), so daß der kleinste Mittenabstand ein 2-breites Element neben einem 3- breiten Element betrifft. Eine solche 2-3-Situation kann durch Vergleich des kleinsten Mittenabstands mit der Breite der Elemente, die den 2-3-Abstand umgeben, identifiziert werden. Wenn die Breiten der Elemente alle stark ungleich sind, dann stellt der Prozessor 60 fest, daß der kleinste Mittenabstand der 2-3-Situation in der oben beschriebenen Weise entspricht. Als Ergebnis kann der Prozessor 60 in Schritt 116 die X-Dimension erzeugen, indem er den kleinsten Mittenabstand durch 2,5 teilt.
Wie oben erwähnt, kann der Prozessor 60 die geschätzten Breiten und Mittenab­ stände in den obigen Tabellen mitteln. Für ähnlich aufgelöste Elemente, die während Schritt 115 analysiert oder gemessen werden, erneuert der Prozessor 60 die Breiten für alle gleichen 2-breiten und größeren Elemente in den Tabellen 2 und 3. Zum Beispiel besitzen die ersten drei Minima, die den Minima 75 und 74 in Fig. 16 folgt, gemessene Breiten von 15, 14 und 14. Entsprechend der Tabelle 2 entsprechen alle drei Breiten 3-breiten Strichen. Ein Mitteln dieser drei Breiten ergibt eine mittlere Breite für 3-breite Striche von 14,33. Eine Division dieses Mittelwerts durch 3 erzeugt eine geschätzte X-Dimesion von 4,78. Diese genauere X-Dimension unterscheidet sich von der zuvor geschätzten X-Dimension (6,77) um 1,99. Die genauere X-Dimension kann dann verwendet werden, um die obigen Tabellen (also die Tabellen 2, 3 und die verlorene Elementmatrix) zu erneuern.
Ähnliche Mittelwertbildungen können für die geschätzten Mittenabstände in der verlorenen Elementmatrix durchgeführt werden. Der Prozessor 60 kann in den Schritten 120 und 122 alternativ die Mittenabstände, die der Prozessor 60 überprüft, mitteln, um eine neue X-Dimension zu bestimmen und rekursiv die verlorene Elementmatrix zu erneuern. Zum Beispiel kann der Prozessor 60 in Schritt 120 mit der Überprüfung der kleinen Mitten­ abstände in dem Profil der Fig. 16 beginnen. Der Prozessor 60 mittelt dann diese Abstände und stellt die geschätzte X-Dimension und die obigen Tabellen neu ein, falls es notwendig ist. Der Prozessor 60 führt in den Schritten 120 und 122 mit der Analyse von Gruppen mit zunehmender Größe gemessener Mittenabstände fort und erneuert die geschätzten Wert entsprechend.
Solche iterativen Berechnungen und Mittelwertbildungen können eine genauere Darstellung der geschätzten Mittenabstände, X-Dimensionen und geschätzten Element­ breiten liefern und daher ein genaueres Dekodierverfahren für ein Schließungsprofil zur Verfügung stellen. Es ist wichtig, daß jeder Fehler, den der Prozessor 60 anfänglich für die X-Dimension oder andere geschätzte Breiten/Abstände berechnet, nicht weitergeführt oder vergrößert wird, da die obigen Tabellen für die Elemente mit größeren Breiten oder größe­ ren Mittenabständen erzeugt und aufgefüllt werden. Zusätzlich kann der Prozessor 60 in Schritt 118 die obigen Tabellen für verschiedene Profile verwenden statt diese Tabellen für jedes Profil wieder zu erstellen. Diese Alternative ist besonders zutreffend, wenn gestapelte Symbologien gelesen werden, wo jede Zeile wahrscheinlich ein unaufgelöstes Profil er­ zeugt, das ähnliche Verzerrungen besitzt, was typisch beim Lesen mit Lesern des Abbil­ dungstyps ist. Solch ein alternatives Verfahren wäre auch nützlich bei Laserscannern, wo der Laser in der Lage ist, den Ort des abtastenden Laserstrahls auf dem gelesenen Symbol zu bestimmen. Ein Leser, der oft viele defokussierte Symbole oder Symbole außerhalb der Standardauflösung des Lesers liest, kann die obigen Tabellen einmal erzeugen und dann diese Tabellen für ähnliche Symbole verwenden.
Der Prozessor 60 kann in Schritt 122 einen vorgegebenen, gemessenen Mitten­ abstand in einem Profil analysieren und dann die Parität der benachbarten, aufgelösten Elemente vergleichen, bevor die geeignete Spalte in Tabelle 7 bestimmt wird. Zum Beispiel wurde ein gemessener Mittenabstand von 35 zwischen zwei Strichen nur den Zeilen in Tabelle 7 entsprechen, die der benachbarten verlorenen Elementparität entsprechen. Als Ergebnis kann der Prozessor 60 schneller den richtigen, geschätzten Mittenabstand be­ stimmen, insbesondere, wenn nur eine der Breiten der aufgelösten Elemente bekannt war.
Zusammengefaßt stellt die vorliegende Erfindung ein Verfahren zum Lesen eines vorgegebenen, maschinenlesbaren Symbols in Abständen zur Verfügung, die deutlich jen­ seits des normalen Bereichs der Auflösung eines gegebenen Lesers liegen, liest Symbole mit X-Dimensionen, die kleiner sind als eine vorgegebene X-Dimension, die normalerweise von einem gegebenen Leser gelesen werden kann, und liest Profile, die Rauschen enthalten (das zum Beispiel durch elektrisches Rauschen oder durch Druckmängel erzeugt wird). Die vorliegende Erfindung hängt nicht von komplexen mathematischen Berechnungen ab und kann mit allen prozessorgesteuerten Lesern mit einer beliebigen optischen Konfiguration (z. B. Laserscannern, Stiften, CCD-Abbildevorrichtungen, usw.) verwendet werden. Die schmalen Elemente in einem vorgegebenen Symbol sind redundant und daher nicht erfor­ derlich, um ein Symbol entsprechend der vorliegenden Erfindung zu dekodieren. Der Pro­ zessor 60 muß in dem Programm 100 nur die Reflektanzinformation, den Ort der Mittel­ punkte der aufgelösten, breiten Elemente und die Breiten der aufgelösten Elemente an einer geeignet quantisierten Schließungsgrenze bestimmen, um alle nicht aufgelösten schmalen Elemente zu lokalisieren. Als Ergebnis kann die vorliegende Erfindung ein Profil dekodie­ ren, das eine solche Schließung aufweist, daß keines der 1-breiten Elemente in dem Profil erkennbar ist. Die vorliegende Erfindung beruht teilweise auf den Abständen zwischen den Mittelpunkten der aufgelösten Elemente und nicht auf den Kanten dieser aufgelösten Ele­ mente in einem Profil. Folglich ist das Verfahren nach der vorliegenden Erfindung immun gegenüber einer Zweideutigkeit bei Standarddekodierverfähren, die Kanten-zu-Kanten- Messungen in einem Profil verwenden. Zusätzlich kann die vorliegende Erfindung Profile dekodieren, die eine beträchtliche Menge an Rauschen enthalten, so daß die Kanten der Elemente in dem Profil nicht mehr mit Standarddekodierverfahren gefunden werden kön­ nen.
Die Anmeldung des Erfinders mit der Seriennummer 08/008 768, die am 22. Januar 1993 eingereicht wurde, stellt ein Verfahren zum Dekodieren von Schließungsprofilen, die von einfachen 2-breiten Symbologien, wie etwa dem Code 39, erzeugt werden, zur Verfü­ gung, indem es einfach die Maximum-zu-Maximum-Mittenabstände verwendet. Die An­ meldung des Erfinders mit der Seriennummer 08/327972, die am 24. Oktober 1994 einge­ reicht wurde, stellt ein Verfahren zum Dekodieren von Schließungsprofilen zur Verfügung, die von einfachen Symbologien mit mehrfachen Breiten, wie etwa der U.P.C., erzeugt wurden, und basiert auf den Mittenabständen und geschätzten Breiten der aufgelösten Elemente, wie sie an quantisierten Schwellwerten gemessen werden. Die vorliegende Erfin­ dung stellt ein Verfahren zum Dekodieren von Schließungsprofilen zur Verfügung, die von komplexen Symbologien mit mehrfachen Breiten, wie etwa dem PDF417 und dem Code 49, erzeugt wurden, und verwendet die Mittenabstände und die Breiten der aufgelösten Elemente, wie sie an quantisierten Schwellwerten gemessen werden. Eine Schwierigkeit beim Dekodieren unaufgelöster Profile, die von komplexen Symbologien mit mehrfachen Breiten erzeugt werden, besteht in der Unterscheidung der Größe der aufgelösten Elemen­ te, da die Breite dieser Elemente in Abhängigkeit von ihrer Umgebung verzerrt ist.
Der Fachmann erkennt, daß die oben beschriebene Erfindung ein Verfahren zum Dekodieren von unaufgelösten Profilen, die von maschinenlesbaren Symbolen erzeugt werden, zur Verfügung stellt. Auch wenn spezifische Ausführungsformen und Beispiele für die vorliegende Erfindung aus Darstellungsgründen beschrieben wurden, können verschie­ dene äquivalente Modifikationen durchgeführt werden, ohne vom Umfang und Wesen der Erfindung abzuweichen. Zum Beispiel kann der Prozessor 60 statt in den Schritten 110 bis 115 Elementbreiten an quantisierten Schwellwerten zu erzeugen und zu messen ein In­ tegrationsverfahren durchführen, um die Fläche unter der Kurve für jedes aufgelöstes Ele­ ment an den oberen und unteren Schließungsgrenzen 90 und 95 zu bestimmen. Die Fläche unter der Kurve kann dann verwendet werden, um die Tabellen 2 und 3 zu erzeugen und die Breiten der aufgelösten Elemente zu bestimmen.
Alternativ kann der Prozessor 60 die Durchführung der Schritte 108 bis 115 ver­ meiden und statt dessen die Breiten der aufgelösten Elemente auf der Basis eines geschätz­ ten Betrags von Tintenverlauf bestimmen. Wie oben erwähnt, führt Tintenverlauf oft in unterschiedlichem Maße zu variierenden Breiten der Elemente insbesondere zwischen Strichen und Leerräumen. Durch Verwendung eines Tintenverlauffaktors auf die an den oberen und unteren Schließungsgrenzen 90 und 95 gemessenen Breiten, kann der Prozes­ sor 60 wahrscheinlich die Breiten der aufgelösten Elemente an diesen beiden Grenzen be­ stimmen (statt sie an quantisieren Schwellwerten zu bestimmen).
Weiterhin kann der Prozessor 60 die Breite der aufgelösten Elemente bestimmen, indem er ein Gitter von Verzerrungen als eine Funktion des Schließungsverhältnisses er­ zeugt. Das "Schließungsverhältnis" ist ein Verzerrungsfaktor, der ein Schließungsprofil beeinflußt. Das Schließungsverhältnis kann als Differenz zwischen den Schließungsgrenzen geschätzt werden, und die Verzerrung kann für jedes Verhältnis und für jede der sechs oben erwähnten Elementumgebungen berechnet werden. Eine solche Lösung kann jedoch mühsam sein und ist nicht linear. Der Fachmann wird erkennen, daß jedwede Technik zum genauen Messen der Breite der aufgelösten Elemente in Verbindung mit der vorliegenden Erfindung verwendet werden kann.
Während die vorliegende Erfindung oben in Verbindung mit einem von dem Prozes­ sor 60 durchgeführten Verfahren beschrieben wurde, kann das Programm 100 auch durch Verwendung geeigneter Schaltkreise implementiert werden. Wie in Fig. 19 gezeigt, umfaßt der Leser 400 eine Lichtquelle 42, einen Sensor 54 und einen Empfänger 56, wie sie oben beschrieben wurden. Ein Detektionsschaltkreis 410 empfängt das von dem Empfänger 56 erzeugte Profil und stellt fest, welche Bereiche des Profils aufgelösten, breiten Elementen entsprechen. Wie oben für die Schritte 107-111 beschrieben, erzeugt der Schaltkreis 410 obere und untere Schließungsgrenzen, analysiert das Profil, um zu bestimmen, welche Bereiche des Profils sich oberhalb oder unterhalb den Grenzen erstrecken, und erzeugt ein aufgelöstes Elementsignal.
Ein Meßschaltkreis 412 empfängt das aufgelöste Elementsignal und mißt die Mit­ tenabstände zwischen den Elementen (wie in Schritt 115). Der Meßschaltkreis 412 mißt auch die Breite der aufgelösten Elemente an der geeigneten quantisierten Schließungs­ grenze und bestimmt, ob eine gemessene Elementbreite einem 2-breiten, 3-breiten oder größeren Element entspricht (Schritte 107-119). Ein Steigungsdetektionsschaltkreis 414 kann zusätzlich zu oder statt des Detektionsschaltkreises 410 verwendet werden, um fest­ zustellen, welche Elemente aufgelöst sind, welches die Größe der aufgelösten Elemente ist, und um festzustellen, ob kein 1-breites Element verloren ist (wie oben in Schritt 108 be­ schrieben). Zusätzlich kann der Schaltkreis 414 mit oder anstelle des Detektionsschalt­ kreises 410 arbeiten, um die quantisierten oberen und unteren Schließungsgrenzen zu er­ zeugen (Schritte 107 bis 119).
Ein Dekodierschaltkreis 416 führt im wesentlichen die Schritte 120-144 durch, wie sie hiervor in Verbindung mit der verlorenen Elementmatrix beschrieben wurden, und bestimmt die Anzahl und den Ort von 1-breiten Elementen, die innerhalb des Profils verlo­ ren sind. Der Dekodierschaltkreis 416 kann somit das Signal dekodieren, nachdem er den Ort und die Anzahl von in dem Profil verlorenen 1-breiten Elementen bestimmt hat. An­ stelle des Meßschaltkreises 412 kann der Dekodierschaltkreis 416 ein Mikroprozessor sein und die Größe eines gemessenen Elements (also ob es ein 2-breites, 3-breites, 4-breites, usw. Element ist) bestimmen.
Zusätzlich kann der Fachmann, auch wenn das Programm 100 und seine Alternati­ ven zum Bestimmen der Anzahl der in einem Profil verlorenen Elemente auf der Basis der Mittenabstände und der Breite aller aufgelösten Elemente an quantisierten Schließungs­ grenzen beschrieben wurde, die vorliegende Erfindung auf der Basis der hierin gegebenen, detaillierten Beschreibung modifizieren, um der vorliegenden Erfindung zu ermöglichen, die Anzahl der verlorenen 1-breiten Elemente auf der Basis der gemessenen Mittenabstände und geschätzten Breiten von nur einigen der breiten Elemente zu bestimmen. Weiterhin ist die vorliegende Erfindung hiervon graphisch beschrieben worden, um die Präsentation und ihr Verständnis zu erleichtern. Der Fachmann wird erkennen, daß der Leser 50 der vorlie­ genden Erfindung vorzugsweise ein vorgegebenes, unaufgelöstes Profil nicht graphisch analysiert und dekodiert. Zum Beispiel sind die verlorenen Element- und Dekodiermatrizen hiervor in einer bestimmten Form beschrieben und gezeigt worden (als die Tabellen 2 bis 7 und Fig. 17). Die vorliegende Erfindung muß jedoch solche Matrizen, wie sie hiervor gezeigt wurden, nicht als solche erzeugen, sondern führt statt dessen nur die notwendigen Abläufe und Berechnungen, wie etwa das Zählen der Anzahl von Schleifen in einem iterati­ ven Prozeß zum Bestimmen der Anzahl der verlorenen Elemente, durch, um die unaufge­ lösten Profile zu dekodieren. Während die vorliegende Erfindung hiervor als "messend" zum Beispiel an einem geeigneten, quantisierten Schwellwert beschrieben wurde, berechnet die vorliegende Erfindung vorzugsweise die Breite oder die Mittenabstände aus dem Profil durch Interpolation bezüglich des Profils insbesondere dann, wenn eine endliche Anzahl von Bildpunkten zum Erzeugen des Profils verwendet wird. Folglich ist die vorliegende Erfindung nicht durch diese Offenlegung eingeschränkt, sondern ihr Umfang wird allein durch die nachfolgenden Patentansprüche gegeben.

Claims (24)

1. Verfahren zum Dekodieren eines maschinenlesbaren Symbols (53), das kodierte Information darstellt, wobei das Symbol eine Mehrzahl von getrennten, zweidimensionalen, geometrischen Formen umfaßt, wobei die Formen und Leerräume zwischen den Formen Größen mit wenigstens ersten, zweiten und dritten Breiten in wenigstens einer Dimension besitzen, wobei die zweiten und dritten Breiten größer sind als die erste Breite, wobei die Formen eine geringere Reflektivität besitzen als die Leerräume, wobei das Verfahren da­ durch gekennzeichnet ist, daß es folgende Schritte umfaßt:
  • (i) Empfangen von Licht, das von dem Symbol reflektiert wird, und Erzeugen eines Ausgangssignals daraus, das die Reflektanz der Formen und Leerräume, die das Symbol umfaßt, darstellt;
  • (ii) Empfangen des Ausgangssignals und Erzeugen eines breiten Merkmalsignals, das wenigstens einige der Formen und Leerräume mit den zweiten und dritten Breiten auf­ löst, das aber nicht in der Lage ist, wenigstens einige der Formen und Leerräume mit der ersten Breite aufzulösen;
  • (iii) Empfangen des breiten Merkmalsignals und Bestimmen, welche der Formen und Leerräume aufgelöst sind, indem eine Mehrzahl von Bereichen in dem breiten Merkmal­ signal, die den aufgelösten Formen und Leerräumen entsprechen, identifiziert werden;
  • (iv) Bestimmen der Größe jeder der identifizierten Bereiche, die aufgelösten Formen und Leerräumen entsprechen;
  • (v) Erzeugen einer verlorenen Elementmatrix in Abhängigkeit von dem breiten Merkmalsignal und der Größe der identifizierten Bereiche, die den aufgelösten Formen und Leerräumen entsprechen; und
  • (vi) Bestimmen der in dem Symbol kodierten Information auf der Basis der verlore­ nen Elementmatrix und der bestimmten Größe jeder der identifizierten Formen.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Schritt zum Be­ stimmen einer Größe einen Schritt zum Definieren einer Mehrzahl von Schwellwerten und zum Messen einer Breite jeder der Mehrzahl von Bereichen in dem breiten Merkmalsignal an einer der Mehrzahl der Schwellwerte umfaßt.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß der Schritt zum Be­ stimmen der Größe folgende Schritte umfaßt:
Bestimmen der Steigung des breiten Merkmalsignals in der Nähe jeder der Mehr­ zahl von Bereichen; und
Bestimmen auf der Basis der bestimmten Steigung an welcher der Mehrzahl von Schwellwerten die Breite jeder der Mehrzahl von Bereichen zu messen ist.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß es außerdem einen Schritt zum Messen der Abstände bezüglich jedes der Mehrzahl von Bereichen in dem breiten Merkmalsignal umfaßt.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß der Schritt zum Erzeu­ gen einer verlorenen Elementmatrix folgende Schritte umfaßt:
Erzeugen einer verlorenen Elementmatrix, die die Anzahl der Formen und Leerräu­ me mit der ersten Breite, die zwischen den aufgelösten Formen und Leerräumen unaufge­ löst sind, identifiziert, wobei die verlorene Elementmatrix auf der Basis von geschätzten Abständen zwischen der Mehrzahl von Bereichen in dem breiten Merkmalssignal erzeugt wird; und
Bestimmen der Anzahl und des Ortes der Formen und Leerräume mit der ersten Breite durch Vergleich der gemessenen Abstände bezuglich der Mehrzahl der Bereiche in dem breiten Merkmalssignal mit den geschätzten Abständen in der verlorenen Elementma­ trix.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß der Schritt zum Mes­ sen eines Abstandes folgende Schritte umfaßt:
Identifizieren eines Mittelpunkts für jedes Element der Mehrzahl von Bereichen; und
Messen der Abstände zwischen den Mittelpunkten der Mehrzahl von Bereichen.
7. Verfahren nach Anspruch 5, wobei das Symbol aus einer Symbologie mit einer Parität stammt, wobei das Symbol eine vorgegebene Breite besitzt, und das Verfahren ferner dadurch gekennzeichnet ist, daß es folgende Schritte umfaßt:
Feststellen, ob alle der Formen und Leerräume in dem Symbol identifiziert wurden;
Feststellen, ob die vorgegebene Breite gleich einer Summe der festgestellten Grö­ ßen für alle der identifizierten Bereiche und der festgestellten Anzahl der Formen und Leer­ räume mit der ersten Breite ist;
Korrigieren einer festgestellten Größe für einen gegebenen, identifizierten Bereich auf der Basis der Parität in der Symbologie.
8. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß es weiterhin einen Schritt zum Bestimmen der Breite der Formen und Leerräume mit der ersten Breite auf der Basis des breiten Merkmalssignals umfaßt.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß der Schritt zum Be­ stimmen der Breite der Formen und Leerräume mit der ersten Breite folgende Schritte umfaßt:
Messen wenigstens eines Abstands bezüglich der Mehrzahl der Bereiche in dem breiten Merkmalssignal; und
Dividieren des gemessenen Abstands durch einen vorgegebenen Betrag, um die Breite der Formen und Leerräume mit der ersten Breite zu bestimmen.
10. Verfahren zum Dekodieren eines Profils, das von einem maschinenlesbaren Symbol (53) erzeugt wird, das kodierte Information darstellt, wobei das Symbol eine Mehrzahl von getrennten, zweidimensionalen, geometrischen Formen umfaßt, wobei die Formen und Leerräume zwischen den Formen Größen mit wenigstens ersten, zweiten und dritten Breiten in wenigstens einer Dimension besitzen, wobei die zweiten und dritten Brei­ ten größer sind als die erste Breite, wobei das Profil wenigstens einige der Formen und Leerräume mit den zweiten und dritten Breiten auflöst aber nicht wenigstens einige der Formen und Leerräume mit der ersten Breite auflöst, wobei die Leerräume eine höhere Reflektivität besitzen als die Formen, wobei das Verfahren dadurch gekennzeichnet ist, daß es folgende Schritte umfaßt:
Bestimmen, welche der Formen und Leerräume aufgelöst sind, durch Identifikation einer Mehrzahl von Bereichen in dem Profil, die den aufgelösten Formen und Leerräumen entsprechen;
Bestimmen der Größe der identifizierten Mehrzahl von Bereichen, die den aufgelö­ sten Formen und Leerräumen entsprechen;
Bestimmen der Anzahl und des Ortes der Formen und Leerräume mit der ersten Breite wenigstens teilweise basierend auf der festgestellten Größe der identifizierten Mehr­ zahl von Bereichen, die den aufgelösten Formen und Leerräumen entsprechen; und
Bestimmen der in dem Symbol kodierten Information auf der Basis der festgestell­ ten Größe der identifizierten Mehrzahl von Bereichen, die den aufgelösten Formen und Leerräumen entsprechen, und der Anzahl und Orte der Formen und Leerräume mit der ersten Breite.
11. Vorrichtung zum Dekodieren eines maschinenlesbaren Symbols (53), das ko­ dierte Information darstellt, wobei das maschinenlesbare Symbol eine Mehrzahl von ge­ trennten, zweidimensionalen Formen umfaßt, wobei die geometrischen Formen und Leer­ räume zwischen den Formen Größen mit wenigstens ersten, zweiten und dritten Breiten in wenigstens einer Dimension besitzen, wobei die zweiten und dritten Breiten größer sind als die erste Breite, dadurch gekennzeichnet, daß die Vorrichtung umfaßt:
einen Sensor (54), der Licht empfängt, das von dem maschinenlesbaren Symbol reflektiert wird, und ein Ausgangssignal daraus erzeugt, das die Reflektanz der Formen und Leerräume darstellt, die das Symbol umfaßt;
einen Empfänger (56), der das Ausgangssignal empfängt und ein großes Formsignal erzeugt, das wenigstens einige der Formen und Leerräume mit den zweiten und dritten Breiten angibt, aber nicht in der Lage ist, ein Signal zu erzeugen, das wenigstens einige der Formen und Leerräume mit der ersten Breite angibt; und
einen Prozessor (60) zum Verarbeiten des großen Formsignals und zum Erzeugen eines Signals, das die in dem Symbol kodierte Information angibt, wobei der Prozessor (i) bestimmt, welche der Formen und Leerräume aufgelöst werden, indem eine Mehrzahl von Bereichen in dem großen Formsignal, die jeweils einer der aufgelösten Formen und Leer­ räume entsprechen, identifiziert wird; (ii) die Größe der aufgelösten Formen und Leerräume bestimmt; (iii) eine verlorene Elementmatrix in Abhängigkeit von dem großen Formsignal und der Größe der aufgelösten Formen und Leerräume erzeugt, und (iv) auf der Basis der verlorenen Elementmatrix und der bestimmten Größe der aufgelösten Formen ein Signal erzeugt, das die in dem Symbol kodierte Information angibt.
12. Vorrichtung nach Anspruch 11, dadurch gekennzeichnet, daß der Prozessor eine Mehrzahl von Schwellwerten definiert und eine Breite jeder der Mehrzahl von Berei­ chen in dem großen Formsignal an einer der Mehrzahl der Schwellwerte mißt.
13. Vorrichtung nach Anspruch 12, dadurch gekennzeichnet, daß der Prozessor die Steigung des großen Formsignals in der Nähe jeder der Mehrzahl von Bereichen bestimmt und auf der Basis der bestimmten Steigung bestimmt, an welcher der Mehrzahl von Schwellwerten die Breite jeder der Mehrzahl von Bereichen zu messen ist.
14. Vorrichtung nach Anspruch 11, dadurch gekennzeichnet, daß der Prozessor Abstände zwischen jedem der Mehrzahl von Bereichen in dem breiten Merkmalsignal mißt.
15. Vorrichtung nach Anspruch 14, dadurch gekennzeichnet, daß die verlorene Elementmatrix die Anzahl der Formen und Leerräume mit der ersten Breite, die unaufge­ löst zwischen den aufgelösten Formen und Leerräumen sind, identifiziert, wobei der Pro­ zessor die verlorene Elementmatrix auf der Basis geschätzter Abstände zwischen der Mehr­ zahl von Bereichen in dem großen Formsignal erzeugt und wobei der Prozessor das die in dem Symbol kodierte Information angebende Signal erzeugt, indem er die Anzahl und den Ort der Formen und Leerräume mit der ersten Breite bestimmt, indem er die gemessenen Abstände bezüglich der Mehrzahl von Bereichen in dem großen Formsignal mit den ge­ schätzten Abständen in der verlorenen Elementmatrix vergleicht.
16. Vorrichtung nach Anspruch 14, dadurch gekennzeichnet, daß der Prozessor Abstände mißt durch Identifizieren eines Mittelpunkts für jedes Element der Mehrzahl von Bereichen in dem großen Formsignal und durch Messen der Abstände zwischen den Mittel­ punkten der Mehrzahl von Bereichen.
17. Vorrichtung nach Anspruch 11, dadurch gekennzeichnet, daß der Prozessor die Breite der Formen und Leerräume mit der ersten Breite auf der Basis des großen Form­ signals bestimmt.
18. Vorrichtung nach Anspruch 17, dadurch gekennzeichnet, daß der Prozessor die Breite der Formen und Leerräume mit der ersten Breite durch Messen wenigstens eines Abstands bezüglich der Mehrzahl der Bereiche in dem großen Formsignal und durch Divi­ dieren des gemessenen Abstands durch einen vorgegebenen Betrag bestimmt, um die Breite der Formen und Leerräume mit der ersten Breite zu bestimmen.
19. Vorrichtung nach Anspruch 11, dadurch gekennzeichnet, daß der Prozessor auf der Basis der gemessenen Breiten der Mehrzahl von Bereichen feststellt, welche der aufge­ lösten Formen und Leerräume die zweite Breite besitzen und welche der Formen und Leer­ räume die dritte Breite besitzen.
20. Vorrichtung zum Dekodieren eines maschinenlesbaren Symbols (53), das ko­ dierte Information darstellt, wobei das maschinenlesbare Symbol eine Mehrzahl von ge­ trennten, zweidimensionalen Formen umfaßt, wobei die geometrischen Formen und Leer­ räume zwischen den Formen Größen mit wenigstens ersten, zweiten und dritten Breiten in wenigstens einer Dimension besitzen, wobei die zweiten und dritten Breiten größer sind als die erste Breite, dadurch gekennzeichnet, daß die Vorrichtung umfaßt:
einen Sensor (54), der Licht empfängt, das von dem maschinenlesbaren Symbol reflektiert wird, und ein Ausgangssignal daraus erzeugt, das die Reflektanz der Formen und Leerräume darstellt, die das Symbol umfaßt;
einen Empfänger (56), der das Ausgangssignal empfängt und ein großes Formsignal erzeugt, das wenigstens einige der Formen und Leerräume mit den zweiten und dritten Breiten angibt, aber nicht in der Lage ist, ein Signal zu erzeugen, das wenigstens einige der Formen und Leerräume mit der ersten Breite angibt;
einen Detektionsschaltkreis (410), der bestimmt, welche der Formen und Leerräume aufgelöst werden, indem eine Mehrzahl von Bereichen in dem großen Formsignal, die jeweils einer der aufgelösten Formen und Leerräume entsprechen, identifiziert wird;
einen ersten Meßschaltkreis (412), der ein Abstandssignal erzeugt, das Abstände zwischen jedem der Mehrzahl von Bereichen in dem großen Formsignal angibt, und der ein Größensignal erzeugt, das die Größe der aufgelösten Formen und Leerräume angibt; und
einen Dekodierschaltkreis (416), der die Anzahl und die Orte der Formen und Leer­ räume mit der ersten Breite durch Analyse des Abstandssignals und des Größensignals bestimmt und der daraus ein Signal erzeugt, das die in dem Symbol kodierte Information angibt.
21. Vorrichtung nach Anspruch 20, dadurch gekennzeichnet, daß sie außerdem einen Steigungsdetektionsschaltkreis (414) umfaßt, der ein Steigungssignal für jeden der Mehrzahl von Bereichen des großen Formsignals erzeugt.
22. Vorrichtung nach Anspruch 20, dadurch gekennzeichnet, daß sie außerdem umfaßt:
einen Schwellwertschaltkreis (414), der eine Mehrzahl von Schwellwerten für das große Formsignal erzeugt und die Größen der aufgelösten Formen und Leerräume identifi­ ziert; und
einen zweiten Meßschaltkreis, der die Breite für jeden Bereich an einem Schwell­ wert mißt und ein Meßsignal erzeugt, wobei das Meßsignal angibt, welche der aufgelösten Formen und Leerräume den Formen und Leerräumen mit der zweiten Breite und welche der aufgelösten Formen und Leerräume den Formen und Leerräumen mit der dritten Breite entsprechen.
23. Vorrichtung nach Anspruch 20, dadurch gekennzeichnet, daß der Dekodier­ schaltkreis (416) ein Mikroprozessor ist.
24. Verfahren zum Dekodieren eines Profils, das von einem maschinenlesbaren Symbol (53) erzeugt wird, das kodierte Information darstellt, wobei das Symbol von einer Symbologie ist, die eine neue Identifikationsparität besitzt, und eine Mehrzahl von getrenn­ ten, zweidimensionalen, geometrischen Formen umfaßt, wobei die Formen und Leerräume zwischen den Formen Größen mit wenigstens ersten, zweiten und dritten Breiten in wenig­ stens einer Dimension besitzen, wobei die zweiten und dritten Breiten größer sind als die erste Breite, wobei das Profil wenigstens einige der Formen und Leerräume mit den zwei­ ten und dritten Breiten auflöst aber nicht wenigstens einige der Formen und Leerräume mit der ersten Breite auflöst, wobei die Leerräume eine höhere Reflektivität besitzen als die Formen, wobei das Verfahren dadurch gekennzeichnet ist, daß es folgende Schritte umfaßt:
Bestimmen der Größe der aufgelösten Formen und Leerräume; und
Bestimmen der in dem Symbol kodierten Information auf der Basis der festgestell­ ten Größe der aufgelösten Formen und Leerräume und der Parität des Symbols.
DE19604767A 1995-02-10 1996-02-09 Verfahren und Vorrichtung zum Dekodieren von unaufgelösten, komplexen Strichkodesymbologieprofilen mit verschiedenen Breiten Withdrawn DE19604767A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/386,745 US5514858A (en) 1995-02-10 1995-02-10 Method and apparatus for decoding unresolved complex multi-width bar code symbology profiles

Publications (1)

Publication Number Publication Date
DE19604767A1 true DE19604767A1 (de) 1996-08-14

Family

ID=23526874

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19604767A Withdrawn DE19604767A1 (de) 1995-02-10 1996-02-09 Verfahren und Vorrichtung zum Dekodieren von unaufgelösten, komplexen Strichkodesymbologieprofilen mit verschiedenen Breiten

Country Status (3)

Country Link
US (1) US5514858A (de)
JP (1) JPH0950473A (de)
DE (1) DE19604767A1 (de)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032861A (en) * 1995-01-03 2000-03-07 Lemelson; Jerome H. Method and apparatus for encoding and decoding bar codes with primary and secondary information and method of using such bar codes
US6543691B1 (en) * 1995-01-03 2003-04-08 Jerome H. Lemelson Method and apparatus for encoding and decoding bar codes with primary and secondary information and method of using such bar codes
US5969325A (en) * 1996-06-03 1999-10-19 Accu-Sort Systems, Inc. High speed image acquisition system and method of processing and decoding barcode symbol
US5811779A (en) * 1996-08-22 1998-09-22 General Electric Company Laser bar code reader system for a fuel rod in a boiling water nuclear reactor
US5861616A (en) * 1996-10-01 1999-01-19 Mustek Systems, Inc. Method and device for recognizing a waveform of an analog signal
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
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
US6321984B1 (en) 1997-02-25 2001-11-27 Dresser Equipment Group, Inc. Adjustable price fuel dispensing system
US20010001203A1 (en) * 2000-04-04 2001-05-17 Mccall Don C. Fuel dispensing system
ATE196954T1 (de) 1997-08-01 2000-10-15 Datalogic Spa Verfahren zum abtasten eines strichkodes
US7653571B2 (en) 1998-04-24 2010-01-26 Excentus Corporation System and method for generating price-per-gallon discounts for fuel
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
US7147161B2 (en) * 1998-06-12 2006-12-12 Symbol Technologies, Inc. Digitizing bar code symbol data
US6513714B1 (en) * 1998-09-14 2003-02-04 Psc Scanning, Inc. Character reconstruction and element level processing in bar code scanning system
US6454168B1 (en) 1998-09-14 2002-09-24 Psc Scanning, Inc. Correlation and stitching techniques in a bar code scanning system
US6585157B2 (en) 1998-09-14 2003-07-01 Psc Scanning, Inc. Symbology determination to aid decoding in a bar code scanning system
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
US7299989B2 (en) * 2000-12-15 2007-11-27 Symbol Technologies, Inc. System and method for decoding and encoding compensated optical codes
US6834803B2 (en) * 2000-12-15 2004-12-28 Symbol Technologies, Inc. Ink-spread compensated bar code symbology and compensation methods
US6672510B2 (en) * 2001-12-20 2004-01-06 Scannabar (3193519 Canada Inc.) Bar code arrangement for identifying positions along an axis
JP4070631B2 (ja) * 2003-02-21 2008-04-02 富士通株式会社 バーコード読取装置およびバーコード読取方法
US7823783B2 (en) 2003-10-24 2010-11-02 Cognex Technology And Investment Corporation Light pipe illumination system and method
US9070031B2 (en) 2003-10-24 2015-06-30 Cognex Technology And Investment Llc Integrated illumination assembly for symbology reader
US7604174B2 (en) 2003-10-24 2009-10-20 Cognex Technology And Investment Corporation Method and apparatus for providing omnidirectional lighting in a scanning device
US9536124B1 (en) 2003-10-24 2017-01-03 Cognex Corporation Integrated illumination assembly for symbology reader
US7823789B2 (en) 2004-12-21 2010-11-02 Cognex Technology And Investment Corporation Low profile illumination for direct part mark readers
US7874487B2 (en) * 2005-10-24 2011-01-25 Cognex Technology And Investment Corporation Integrated illumination assembly for symbology reader
US7204422B2 (en) * 2004-06-10 2007-04-17 Psc Scanning, Inc. System, circuit, and method for edge detection in a binary optical code
US7201322B2 (en) * 2004-06-10 2007-04-10 Psc Scanning, Inc. System, circuit, and method for edge detection in a binary optical code
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
US9292724B1 (en) 2004-12-16 2016-03-22 Cognex Corporation Hand held symbology reader illumination diffuser with aimer optics
US7617984B2 (en) 2004-12-16 2009-11-17 Cognex Technology And Investment Corporation Hand held symbology reader illumination diffuser
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 株式会社デンソーウェーブ バーコード読取り方法及びコンピュータプログラム
WO2007035863A2 (en) 2005-09-21 2007-03-29 Intermec Ip Corp. Radio frequency identification tags based on coalition formation
US7614563B1 (en) 2005-12-29 2009-11-10 Cognex Technology And Investment Corporation System and method for providing diffuse illumination in a symbology reader
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
JP2009075701A (ja) * 2007-09-19 2009-04-09 Canon Finetech Inc バーコード生成システム、バーコード生成プログラム、印刷装置およびテストチャート
US9734376B2 (en) 2007-11-13 2017-08-15 Cognex Corporation System and method for reading patterns using multiple image frames
US8267321B2 (en) * 2008-02-11 2012-09-18 International Business Machines Corporation Enhanced-density barcode
CN102057326A (zh) * 2008-06-06 2011-05-11 Opto电子有限公司 光学仪器的自动聚焦控制
JP5379626B2 (ja) * 2009-09-29 2013-12-25 日本電産サンキョー株式会社 スタック型バーコード情報読取方法及びスタック型バーコード情報読取装置
JP5683891B2 (ja) * 2010-10-07 2015-03-11 日本電産サンキョー株式会社 スタック型バーコード読取装置およびスタック型バーコード読取方法
US9361499B2 (en) 2014-10-09 2016-06-07 Cognex Corporation Barcode decoding
US10599902B2 (en) 2014-10-09 2020-03-24 Cognex Corporation Methods and apparatus for decoding under-resolved symbols
US9607200B2 (en) 2014-10-09 2017-03-28 Cognex Corporation Decoding barcodes
US9686428B2 (en) * 2015-02-26 2017-06-20 Konica Minolta, Inc. Equipment to determine line width of check image and image-forming apparatus using the same

Family Cites Families (20)

* 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
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
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
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
JPH0950473A (ja) 1997-02-18
US5514858A (en) 1996-05-07

Similar Documents

Publication Publication Date Title
DE19604767A1 (de) Verfahren und Vorrichtung zum Dekodieren von unaufgelösten, komplexen Strichkodesymbologieprofilen mit verschiedenen Breiten
DE112011102991B4 (de) Verfahren und Vorrichtung zur 3D-Vermessung durch Erfassung eines vorbestimmten Musters
US5814801A (en) Maxicode data extraction using spatial domain features exclusive of fourier type domain transfer processing
DE102015219541A1 (de) Dekodieren von strichcodes
DE69633908T2 (de) Anti-handzitter datenformatleser und verfahren
DE69625583T2 (de) Datenformleser
DE69728482T2 (de) Zweidimensionaler Codeleser
US5877486A (en) Method and apparatus for enhancing resolution of reflectance signals produced from machine-readable symbols
US5777309A (en) Method and apparatus for locating and decoding machine-readable symbols
DE60013101T2 (de) Zweidimensionales codemuster zum speichern biometrischer informationen und vorrichtung zum lesen dieser informationen
DE19722439A1 (de) Verfahren und Vorrichtung zur Auffindung und Dekodierung maschinenlesbarer Symbole einschließlich Datenmatrixsymbolen
US20040026511A1 (en) Guiding a scanning device to decode 2D symbols
EP0543593A2 (de) Verfahren zur Bestimmung von Wortgrenzen im Text
DE112013005794T5 (de) Dreidimensionaler Scanner und Betriebsverfahren
DE10123406A1 (de) Verfahren zum Erfassen von zweidimensionalen Codes
CN107633192A (zh) 一种基于机器视觉的复杂背景下条形码分割与识读方法
DE19624900A1 (de) Verfahren und Gerät zum Decodieren nicht aufgelöster Balkencode-Profile unter Verwendung eines Kantenfindungs-Schaltkreises
DE19924144C2 (de) Schiefekorrekturapparat und -verfahren
JPH07200712A (ja) バーコード読み取りの方法および装置
WO2008086498A2 (en) Methods and systems for optical code reading using virtual scan lines
CN102763121B (zh) 用于解码线性条码的方法
DE3718620C2 (de)
CN105512598A (zh) 一种qr码图像取样的自适应匹配识别方法
DE19705747A1 (de) Verfahren und Vorrichtung zur Ermittlung und Decodierung von maschinenlesbaren Symbolen
EP0643363B1 (de) Verfahren zum Vergleichen von Mustern basierend auf der Verwendung von Bildelementmatritzen und Bildelementvektoren

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee