DE19736202A1 - Strichcode-Symbolisierung mit der Fähigkeit, 16-Bit-Zeichen zu codieren, und Verfahren und Apparat zum Drucken und zum Lesen derselben - Google Patents

Strichcode-Symbolisierung mit der Fähigkeit, 16-Bit-Zeichen zu codieren, und Verfahren und Apparat zum Drucken und zum Lesen derselben

Info

Publication number
DE19736202A1
DE19736202A1 DE19736202A DE19736202A DE19736202A1 DE 19736202 A1 DE19736202 A1 DE 19736202A1 DE 19736202 A DE19736202 A DE 19736202A DE 19736202 A DE19736202 A DE 19736202A DE 19736202 A1 DE19736202 A1 DE 19736202A1
Authority
DE
Germany
Prior art keywords
symbol
characters
character
groups
code
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
DE19736202A
Other languages
English (en)
Inventor
Sprague H 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 DE19736202A1 publication Critical patent/DE19736202A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06018Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking one-dimensional coding
    • G06K19/06028Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking one-dimensional coding using bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K1/00Methods or arrangements for marking the record carrier in digital fashion
    • G06K1/12Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
    • G06K1/121Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by printing code marks
    • 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

Querverweis auf zugeordnete Anmeldungen
Diese Anmeldung ist eine teilweise Weiterführung der Anmel­ dung mit Seriennummer 08/295 382, die am 24. August 1994 einge­ reicht wurde und nun U.S. Patent Nr. 5 557 092 ist, die wiederum eine teilweise Weiterführung der Anmeldung mit Seriennummer 08/147 376 ist, welche am 5. November 1993 eingereicht und nun aufgegeben wurde.
Technisches Feld
Diese Erfindung bezieht sich auf eine neue, maschinenlesbare Symbolisierung und Vorrichtungen und Verfahren zum Lesen oder Drucken von Strichcodesymbolen der Symbolisierung.
Hintergrund der Erfindung
Strichcode-Symbolisierungen wurden zuerst in dem U.S. Patent Nr. 1 985 035 durch Kermode offengelegt und kurz darauf in den 1930er Jahren in U.S. Patent Nr. 2 020 925 durch Young mit Zuweisung an Westinghouse erweitert. Diese frühen Symbolisierun­ gen wurden gedruckt durch Erzeugen einer Vielfalt von gleich­ breiten Elementen mit niedrigerem Rückstrahlungsgrad, oder "Strichen", die durch Elemente mit höherem Rückstrahlungsgrad, oder "Zwischenräumen" getrennt wurden. Ein "Element" ist ein Strich oder ein Zwischenraum. Diese frühen Symbolisierungen und viele heute benutzten "Strichcode-Symbolisierungen" können als "lineare Symbolisierungen" bezeichnet werden, weil Daten in einem gegebenen Symbol entlang einer Achse oder Richtung deco­ diert werden. Symbolisierungen, wie etwa lineare Symbolisie­ rungen, codieren "Datenzeichen" (z. B. menschenlesbare Zeichen) als "Symbolzeichen", die allgemein parallele Anordnungen von abwechselnden Strichen und Zwischenräumen sind, welche einzig­ artige Gruppen von Mustern sind, um spezifische Datenzeichen zu codieren. Datenzeichen schließen nicht nur menschenlesbare Zeichen ein, sondern auch spezielle Zeichen, wie etwa Start-, Stop- oder Umschaltzeichen, die gewisse funktionale Daten vorsehen. Jede einzigartige Gruppe oder jedes einzigartige Muster von Strichen und Zwischenräumen innerhalb einer vorbe­ stimmten Breite definiert ein bestimmtes Symbolzeichen, und damit ein bestimmtes Datenzeichen oder bestimmte Datenzeichen.
Die bekannte U.P.C.-Symbolisierung wurde generisch von Savir und Laurer von IBM als ein (7,2) "n,k-Code" in 1974 beschrieben. Ein "n,k-Code" ist als eine Symbolisierung definiert, bei dem jedes Symbolzeichen eine Anzahl "k" von Strichen und Zwischen­ räumen hat, und dessen Gesamtlänge "n" Module lang ist. Deshalb codiert die U.P.C.-Symbolisierung zwei Striche und zwei Zwi­ schenräume in jedem Symbolzeichen, und jedes Symbolzeichen ist sieben Module lang. Ein "Modul" ist die kleinste nominale Brei­ tenmaßeinheit in einer Strichcode-Symbolisierung (ein Strich oder Zwischenraum der Breite Eins). "Nominal" bezieht sich auf den beabsichtigten Wert eines spezifischen Parameters, unabhän­ gig von Druckfehlern, usw. Unter üblichen Zähltechniken kann die Anzahl der möglichen Symbolzeichen ermittelt werden durch die Erkenntnis, daß in sieben Modulen sechs Stellen sind, an denen ein Übergang auftreten kann, und daß für zwei Striche und zwei Zwischenräume drei interne Übergänge auftreten. Deshalb ist die Anzahl der einzigartigen Symbolzeichen für die U.P.C.-Symbo­ lisierung einfach 6 über 3, was gleich 20 ist. Ähnlich sind in der Code-128-Symbolisierung, die eine (11,3)-Symbolisierung ist, 252 einzigartige Symbolzeichen verfügbar (10 über 5).
Die als U.P.C., EAN, Code-11 und Codabar bekannten Strich­ code-Symbolisierungen sind alle Strichcode-Symbolisierungs­ standards, die nur numerische Datenzeichen unterstützen, und einige wenige Spezialzeichen, wie etwa "+" und "-". Die U.P.C.- Symbolisierung ist sowohl eine Strichcode-Symbolisierung als auch ein Industriestandard, in dem sie durch die Industrie in einer Standardanwendung (Verbrauchsgüter) angenommen wurde. Der Strichcodestandard Code-39 war der erste alphanumerische Strich­ code-Symbolisierungsstandard, der entwickelt wurde. Jedoch war er auf 43 Zeichen begrenzt.
Code-93 ist eine über Code-39 hinausgehende Verbesserung. Jedes Code-93-Zeichen hat neun Module, die entweder schwarz oder weiß sein können (entweder ein Strich oder ein Zwischenraum). Jedes Symbol im Code-93-Standard enthält drei Striche und drei Zwischenräume (sechs Elemente), deren Gesamtlänge neun Module lang ist. Code-93 ist mit neun Modulen und drei Strichen pro Zeichen deshalb eine (9,3)-Symbolisierung, die 56 mögliche Zeichen enthält (8 über 5). Aus Gründen der Kante-zu-Kante- Decodierung definiert der Code-93-Symbolisierungsstandaid nur 48 einzigartige Zeichen, und ist deshalb in der Lage, 47 Zeichen in seiner Symbolisierung plus einen Start-/Stop-Code zu definieren. Die 47 Zeichen schließen die numerischen Zeichen 0-9, die alphabetischen Zeichen A-Z, einige zusätzliche Zeichen und vier Umschaltcodes ein.
Die Computer-Industrie benutzt ihre eigenen Zeichencodie­ rungsstandards, nämlich den "American Standard Code for Infor­ mation Interchange (ASCII)". ASCII definiert eine Symbolisie­ rung, die 128 Zeichen und Symbole enthält. Jedes Zeichen in ASCII wird durch einen einzigartigen 7-Bit-Code dargestellt. Da Code-39 und Code-93 auf weniger als 50 Zeichen begrenzt sind, sind diese Standards ungeeignet, um jedes ASCII-Zeichen darzu­ stellen. Die vier Umschaltcodes in Code-93 erlauben es jedoch diesem Standard, eindeutig alle 128 ASCII-Zeichen darzustellen. Ein Nachteil ist, daß eine Serie von zwei Code-93-Zeichen benö­ tigt werden, um ein einziges ASCII-Zeichen darzustellen. Damit sind Strichcode-Etiketten, die ASCIT-Zeichen darstellen, zweimal so lang wie Etiketten, die Zeichen in der Code-93-Symbolisierung darstellen.
Neue Strichcode-Symbolisierungsstandards, wie etwa Code-128, wurden entwickelt, um den komplette ASCII-Zeichensatz zu codie­ ren, jedoch leiden diese Standards unter gewissen Mängeln, ein­ schließlich der Forderung von Umschaltcodes oder anderer voran­ gehender Symbole, um gewisse Zeichen darzustellen. Alle diese Symbolisierungen verlangen vermehrte Verarbeitungszeit und Ver­ waltungsaufwand, um den gesamten ASCII-Zeichensatz zu verarbei­ ten.
Die Computer-Industrie ist über die Grenzen des ASCII-Zei­ chensatzes hinausgewachsen. In dem Maße, in dem die Computer­ märkte gewachsen sind, hat sich ein Bedarf zur Unterstützung zusätzlicher, nicht durch den ASCII-Zeichensatz definierter Sprachen eingestellt. Neue Zeichensätze wurden entwickelt, um Bündel von Zeichen in verwandten Sprachen aufzunehmen. Der ursprüngliche 7-Bit-ASCII-Zeichensatz wurde auf 8 Bit erweitert, und damit werden zusätzliche 128 Zeichen oder Datenwerte vorge­ sehen. Dieser zusätzliche Satz von 128 Zeichenwerten (die "oberen 128") ermöglichten zusätzliche Zeichen, die in den dar­ zustellenden, verwandten romanischen Sprachen (d. h., Franzö­ sisch, Deutsch, Spanisch, usw.) vorkommen.
In dem Maße, wie die Computermärkte international wuchsen, ergab sich jedoch der Bedarf, noch mehr Sprachen in dem Zeichen­ satz zu berücksichtigen. Insbesondere verlangten die asiatische Märkte einen in den Computern benutzbaren Zeichensatz, der Tau­ sende von einzigartigen Zeichen unterstützt. Um jedes dieser Zeichen eindeutig zu definieren, war ein 16-Bit-Codierungsstan­ dard erforderlich.
Verschiedene 16-Bit-Codierungsstandards, wie etwa Unicode, JISC-6226-1983 und andere wurden kürzlich entwickelt. Der unicode-Zeichencodierungsstandard ist ein einheitlicher Text- und Zeichencodierungsstandard fester Länge. Der Unicode-Standard kann bis zu 65536 Zeichen enthalten und enthält gegenwärtig über 28000 Zeichen, die auf die Weltschriften abbilden, einschließ­ lich Griechisch, Hebräisch, Latein, Japanisch, Chinesisch, Koreanisch und Taiwanesisch. Der Unicode-Standard ist nach dem ASCII-Zeichensatz modelliert. Unicode-Zeichenwerte sind konsis­ tent 16 Bit lang, ohne Rücksicht auf die Sprache, so wird keine Fluchtsequenz oder Steuerungscode benötigt, um irgendein Zeichen in irgendeiner Sprache zu spezifizieren. Die Unicode-Zeichen­ codierung behandelt Symbole, alphabetische Zeichen und ideogra­ phische Zeichen gleichartig, so daß sie in verschiedenen Compu­ ter-Anwendungen gleichzeitig und mit gleichen Möglichkeiten benutzt werden können. Computer-Programme, die Unicode-Zeichen­ codierung benutzen, um Zeichen darzustellen, die aber Text nicht anzeigen oder drucken, können unverändert bleiben, wenn neue Schriften oder Zeichen eingeführt werden.
Neue Computer-Betriebssysteme beginnen, diese umfassenden 16- Bit-Standards zu unterstützen, z. B. WINDOWS NT, das von Micro­ soft Corporation aus Redmond, Washington hergestellt wird. Der Datenerfassungsindustrie ist es jedoch nicht gelungen, mit der Computer-Industrie Schritt zu halten. Gegenwärtig existiert kein System zur leichten Codierung der 16-Bit-Computer-Zeichencodes in Strichcodezeichen. Deshalb besteht ein Bedarf, diese 16-Bit-Com­ puter-Zeichenstandards in der Datenerfassungsindustrie zu unterstützen, insbesondere für Strichcode-Symbolisierungen.
Ferner sind die meisten alphanumerischen Strichcode-Symboli­ sierungen ineffizient, wenn sie benutzt werden, um lange Serien von Nummern zu codieren. Bei der Codierung einer Serie von Dezi­ malziffern unter Benutzung des Code-93, z. B., werden die 26 Strichcodezeichen, die die 26 alphabetischen Zeichen darstellen, nicht benutzt. Deshalb besteht ein Bedarf dafür, daß diese alphanumerischen Strichcode-Symbolisierungen effizienter eine lange Folge von Ziffern darstellen.
Es ist bekannt, daß Datenzeichen, die mit nahezu allen Symbolisierungen codiert sind, fehlerhaft sein können, wenn sie durch einen Laserscanner oder anderen Strichcodeleser decodiert werden. Um Fehler zu reduzieren, enthalten gewisse Symbolisie­ rungen Prüfzeichen. Ein "Prüfzeichen" ist ein innerhalb eines gegebenen Strichcodezeichens eingeschlossenes Symbolzeichen (üblicherweise am Ende der Symbolzeichen, obgleich die Plazie­ rung für seine Funktion unwichtig ist), dessen Wert benutzt wird, eine mathematische Prüfung durchzuführen, die bestimmt, ob das Symbol korrekt decodiert wurde.
Z. B. hat die bekannte Code-39-Symbolisierung ein optionales Modulo-43-Prüfzeichen, das in dem letzten Symbolzeichen in einem Symbol eingeschlossen werden kann. Das Code-39-Prüfzeichen wird berechnet durch Bestimmung eines Zeichenwertes für jedes Daten­ zeichen in einer ursprünglichen Nachricht, durch Addieren aller Zeichenwerte und durch Teilen der Summe durch 43. Das Prüfzei­ chen ergibt sich aus dem Rest, der aus einer solchen Division resultiert, und wird an das Ende des aus der Nachricht codierten Etiketts angehängt. Ein "Zeichenwert" oder "Symbolcode" ist eine Nummer, die ein Datenzeichen in einer gegebenen Symbolisierung darstellt. Z.B. hat das Zeichen "A" in der Code-39-Symbolisie­ rung einen Zeichenwert von "10".
Die Code-39-Symbolisierung verwendet 43 Symbolzeichen, was eine Primzahl von Symbolzeichen ist. Deshalb ergibt sich unter Benutzung von Modulo-43-Mathematik für die Erzeugung eines Prüf­ zeichens ein einzigartiges Prüfzeichen für jede gegebene Folge von Datenzeichen. Die U.P.C.-Symbolisierung verwendet jedoch ein Modulo-10-Prüfzeichen. Da 10 keine Prüfzahl ist und die Faktoren 1, 2 und 5 hat, erkennt deshalb eine Modulo-10-Prüfung weniger Fehler. Folglich verwendet die U.P.C.-Symbolisierungsanwendungs­ umgebung eine Datenbasis mit einer Tabelle, um solch einen Mangel des Prüfschemas auszugleichen.
Andere Symbolisierungen verbessern die Benutzung der Prüfzei­ chen durch Anwendung von Fehlerkorrekturzeichen. Wie bei Prüf­ zeichen werden Fehlerkorrekturzeichen mathematisch aus anderen Symbolzeichen in einem Symbol oder Etikett berechnet. Fehler­ korrekturzeichen sind Symbolzeichen in einem Etikett, die für Korrektur durch Löschung, Fehlerkorrektur und/oder Fehlererken­ nung verwendet werden. Eine Löschung ist ein fehlendes, nicht- abgetastetes oder undecodierbares Symbolzeichen; die Position des Symbolzeichens ist unbekannt, nicht aber sein Wert. Eine Löschung kann sich aus Abschnitten eines Symbols mit unzurei­ chendem Kontrast, aus einen Symbol außerhalb der Blickfelds des Lesers oder aus einem verwischten Abschnitt ergeben. Ein Fehler ist ein fehl-decodiertes oder fehl-lokalisiertes Symbolzeichen, dessen Position als auch Wert unbekannt ist. Ein Fehler kann sich aus Zufallsflecken oder Leerstellen in einem Symbol erge­ ben, wenn dieses Symbol gedruckt wird.
Bei einem Fehler ermöglicht das Fehlerkorrekturzeichen einem Leser, diese Zeichen in einem Symbol zu lokalisieren und Fehler mit bekanntem Wert und Platz zu korrigieren. Zwei Fehlerkorrek­ turzeichen sind erforderlich, um jeden Fehler zu korrigieren; ein Fehlerkorrekturzeichen, um das fehlerhafte Symbolzeichen zu lokalisieren, und das zweite Fehlerkorrekturzeichen, um zu bestimmen, welchen Wert das fehlerhafte Symbolzeichen gehabt haben sollte. Bei einer Löschung ermöglichen die Fehlerkorrek­ turzeichen einem Leser, diese Zeichen zu benutzen, um fehler­ hafte oder fehlende Symbolzeichen zu korrigieren, die bekannte Plätze haben. Folglich wird nur ein Fehlerkorrekturzeichen für jede Löschung benötigt.
Einige Symbolisierungen, wie etwa Code-One und PDF417, haben viele Fehlerkorrekturzeichen. Die Code-Qne-Symbolisierung z. B. wurde besonders mit 27%-50% der Symbolzeichen für Fehlerkor­ rektur entworfen. Folglich ermöglicht die Code-One-Symbolisie­ rung sehr sichere Decodierung, die mathematisch betrachtet viele Größenordnungen genauer ist als andere Symbolisierungen, die einfach nur Prüfzeichen verwenden. Jedoch benötigen solche Feh­ lerkorrekturzeichen notwendigerweise zusätzlichen Platz in einem Etikett und verringern deshalb die Informationsdichte des Eti­ ketts. Zusätzlich sind Code-One- und PDF417-Symbolisierungen Bereichs- oder Stapel-Symbolisierungen. Folglich verlangen sie komplexere und deshalb teurere Leser, um sie zu decodieren.
Typische Strichcodescanner lesen Strichcodes durch Erzeugen unterschiedlicher analoger Wellenformen von Strichcodes mit unterschiedlichen Strichen und Zwischenräumen. Wenn der Scanner dabei versagt, die kleinsten Elemente mit Breite Eins vollstän­ dig aufzulösen, werden nur die breiteren Elemente (d. h. Elemente mit Breite Zwei oder breiter) aufgelöst. Ein Strich oder Zwi­ schenraum ist "aufgelöst", wenn der Abtaster in der Lage ist, eine Spitze oder ein Tal in der Wellenform zu identifizieren, die bzw. das mit einem gegebenen Strich bzw. Zwischenraum korrespondiert. Insgesamt besteht ein Bedarf, eine Symbolisie­ rung vorzusehen, die alle Mängel der bekannten Symbolisierungen überwindet, die in der Lage ist, decodiert zu werden, wenn ein Symbolzeichen unaufgelöst oder außer Fokus ist, und die in hohem Maße sicher ist.
Zusammenfassung der Erfindung
Die vorliegende Erfindung löst die obigen Probleme und sieht zusätzlichen Nutzen durch Codierung der durch 16-Bit-Codierungs­ standards dargestellte Zeichen in einer neuen Symbolisierung vor. Ein Verfahren für die Decodierung von 16-Bit-Zeichen dar­ stellenden Strichcodesymbolen in menschenlesbare Zeichen wird beschrieben, und umgekehrt. Die vorliegende Erfindung ermög­ licht, daß internationale Zeichen als Strichcodeetiketten codiert und gedruckt werden, die durch Strichcodeleser gelesen werden können.
Die neue Strichcode-Symbolisierung nach der vorliegenden Erfindung codiert direkt ein Symbolzeichen für jedes menschen­ lesbare Zeichen in bekannten 16-Bit-Datenzeichencodierungsstan­ dards, wie etwa Unicode. Die Symbolisierung verwendet sechs Striche und sechs Zwischenräume für jedes Symbol, hat eine Gesamtbreite von 21 Modulen für jedes Symbolzeichen und ist damit eine (21,6)-Symbolisierung. Striche und Zwischenräume in Symbolzeichen mit mehr als sechs Modulen in der Breite werden verworfen, wie auch Ketten von mehr als sechs benachbarten Elementen der Breite Eins. Folglich ist die Symbolisierung mit Handleser abtastbar, leicht druckbar und kann selbst außer Fokus gelesen werden. Paritätscodes werden angewendet, um den Hamming-Ab­ stand zwischen Symbolzeichen zu maximieren, und dadurch die Datensicherheit der Symbolisierung zu verbessern (d. h. die Gesamtbreite aller Striche in jedem Symbolzeichen ist gleich einer geraden Zahl). Folglich codiert die vorliegende Symboli­ sierung vorzugsweise 80077 Datenzeichen. Durch Verwendung einer Primzahl von Symbolzeichen sieht die Symbolisierung robuste Fehlerkorrektur- und Fehlererkennungsfähigkeiten vor. Die codierten Datenzeichen schließen nicht nur die Unicode-Zeichen ein, sondern auch komprimierte drei- und vierziffrige numerische Zeichen, und komprimierte Paare von alphanumerischen Zeichen, wobei jedes als ein einzelnes, einzigartiges Symbolzeichen codiert wird. Ein Satz von Startzeichen in der Symbolisierung bezeichnet nicht nur den Start eines gegebenen Etiketts, sondern codiert auch Datenzeichen darin, oder kann benutzt werden, um zu unterschiedlichen Zeichensätzen zu wechseln oder auf sie einzu­ rasten.
Die vorliegende Erfindung codiert Zeichen, die durch einen 16-Bit-Codierungsstandard dargestellt werden, in eine einzig­ artige Strichcode-Symbolisierung, die geschaffen wurde, um jeden 16-Bit-Code durch ein Strichcodesymbol darzustellen. Ein Codie­ rungsverfahren schließt die Schritte ein: Bestimmen eines Zei­ chencodes mit mindestens 16 Bit für ein ausgewähltes Zeichen, Umwandeln des Zeichencodes in einen Strichcode und Drucken eines Strichcodesymbols, das mit dem Strichcode korrespondiert. Der Schritt des Umwandelns des 16-Bit-Zeichencodes in einen Strich­ code enthält den Schritt des Erzeugens des Strichcodes entweder über eine Tabelle oder über einen Algorithmus. Das umgekehrte Verfahren wird durchgeführt durch Lesen eines Strichcodesymbols, das durch das obige Verfahren gedruckt wurde.
Andere Merkmale und zugeordnete Vorteile der vorliegenden Erfindung werden offensichtlich aus dem Studium der folgenden detaillierten Beschreibung, zusammen mit den begleitenden Zeich­ nungen.
Kurze Beschreibung der Zeichnungen
Fig. 1 ist ein Blockdiagramm eines Strichcodesymboldruck­ apparats nach der vorliegenden Erfindung.
Fig. 2 ist ein Flußdiagramm, das die durch den Druckapparat von Fig. 1 ausgeführten Grundschritte zum Drucken von Strich­ codesymbolen zeigt, welche einzigartig 16-Bit-Zeichencodes dar­ stellen.
Fig. 3 ist ein Beispiel eines Etiketts mit Strichcodesymbol­ zeichen und menschenlesbaren Zeichen, die nach der vorliegenden Erfindung gedruckt oder gelesen werden.
Fig. 4 ist ein Flußdiagramm, das verschiedene Schritte zeigt, die in einem Schritt des Flußdiagramms von Fig. 2 ausgeführt werden.
Fig. 5 ist ein Datenumsetzdiagramm, das die Datentransforma­ tion von Zeichen in Strichcodesymbole zeigt, die durch den Apparat von Fig. 1 gedruckt werden.
Fig. 6 ist ein Blockdiagramm eines Strichcodesymbollese­ apparats nach der vorliegenden Erfindung.
Fig. 7 ist ein Flußdiagramm, das die Grundschritte zeigt, die durch den Leseapparat von Fig. 6 zum Lesen eines einen 16-Bit-Zeichen­ code darstellenden Strichcodesymbols ausgeführt werden.
Fig. 8 ist ein Datenumsetzdiagramm, das die Datentransforma­ tion von Strichcodesymbolen zeigt, die durch den Apparat von Fig. 5 gelesen wurden.
Fig. 9 zeigt exemplarische Etiketten nach dem Code-128-Stan­ dard und der vorliegenden Symbolisierung, deren beide die Datenzeichenkette 00000521775138957172 codieren.
Fig. 10 zeigt exemplarische Etiketten nach dem Code-128-Stan­ dard und der vorliegenden Symbolisierung, deren beide die Datenzeichenkette A1234BC5678DE9012 codieren.
Genaue Beschreibung der bevorzugten Ausführungsformen
Wie hier allgemein benutzt, gelten im Folgenden die Defini­ tionen: "Datenzeichen" bezeichnen menschenlesbare Zeichen, ein­ schließlich Symbole, numerische Zeichen, alphabetische Zeichen und ideographische Zeichen, sowie nicht-lesbare Zeichen, wie etwa Funktionscodes, Umschaltcodes, usw.; "numerische Kette" bezeichnet eine Folge von numerischen Zeichen, typisch Dezimal­ ziffern; "16-Bit-Code" oder "16-Bit-Zeichencode" bezeichnet eine hexadezimale oder dezimale Darstellung eines Zeichens in einen 16-Bit-Codierungsstandard, wie etwa Unicode; "Strichcode-Symbo­ lisierung" bezeichnet einen Satz von maschinenlesbaren oder Symbolzeichen zur einzigartigen Darstellung eines Satzes von Datenzeichen; "Strichcodestandard" bezeichnet eine Strichcode­ symbolisierung, die durch Datenerfassungsanwendungen anerkannt oder regelmäßig benutzt werden (z. B. Code-128); "Symbolcode" bezeichnet einen Code, wie etwa eine ganze Zahl, die ein Daten­ zeichen in einer Strichcode-Symbolisierung darstellt; "Symbol­ zeichen" bezeichnet die einzigartigen geometrischen Formen oder Strich-/Zwischenraum-Muster, die in einer Strichcode-Symbolisie­ rung benutzt werden, um bestimmte Datenzeichen darzustellen; und "Zähler" bezeichnen einen einzigartigen Satz elektrischer Sig­ nale, die erzeugt werden, wenn ein Symbolzeichen gelesen wird, das mit einem Datenzeichen in einer Strichcode-Symbolisierung korrespondiert.
Z. B. wird in dem 16-Bit-Zeichencodierungsstandard Unicode das Datenzeichen "A" durch den 16-Bit-Code "0041" in hexadezimaler Notation und "65" in dezimaler Notation dargestellt. Das Zeichen "A" hat einen Symbolcode von "10" im Strichcodestandard Code-93. Der Symbolcode 10 im Code-93 korrespondiert mit einem Symbol­ zeichen mit einem Muster von einem Strich mit zwei Modulbreiten, gefolgt von: einem Zwischenraum von einer Modulbreite, einem Strich von einer Modulbreite, einem Zwischenraum von einer Modulbreite, einem Strich von einer Modulbreite und einem Zwi­ schenraum von drei Modulbreiten. Die mit dem Drucken dieses Symbols verbundenen Zähler sind allgemein einzigartig für jeden Drucker, und würden für einen thermischen Drucker die Zeitspanne zwischen den Übergängen zwischen Strichen und Zwischenräumen darstellen, um passend das Heizelement des Druckers zu aktivie­ ren, wenn das wärmeempfindliche Papier an ihm vorbeizieht, wobei die Striche senkrecht zur Richtung des Etiketts durch den Drucker positioniert werden. Alternativ können die Zähler anzei­ gen, welche Punkte oder Thermaldruckelemente zu aktivieren sind, wenn die Striche parallel zur Richtung des Etiketts durch den Drucker liegen.
Eine neue Strichcode-Symbolisierung nach der vorliegenden Erfindung, "Han Ma" genannt, wird erzeugt, um einzigartig jeden 16-Bit-Code in jedem 16-Bit-Zeichencode durch ein Symbolzeichen darzustellen. Die Symbolisierung der vorliegenden Erfindung muß mindestens 65536 Symbolzeichen haben, um die 16-Bit-Zeichencodes in z. B. dem Unicode-Standard darzustellen. Um mindestens 65536 Symbolzeichen für die Darstellung der 16-Bit-Zeichencodes zu haben, sind Symbolzeichensätze mit 20-22 Module verfügbar. Die Tabelle 1 unten zeigt die Gesamtzahl der für Symbolisierungen verfügbaren Zeichen in einem vernünftigen Bereich von k (d. h. der Anzahl von Strichen/Zwischenräumen in jedem Symbolzeichen).
Tabelle 1
Die Gesamtzahl der möglichen Zeichen für n,k-Sätze mit n = 20 bis 22 und k = 4 bis 8
Wie aus Tabelle 1 erkannt werden kann, können die Sätze, die 20 Module und 5 und 6 Striche (und Zwischenräume) pro Symbol­ zeichen verwenden, bis zu 92378 Datenzeichen bzw. 75582 Zeichen darstellen. Diese "20er-Sätze" sind ausreichend, um die 65536 16-Bit-Codes im Unicode-Datenzeichencodierungsstandard darzu­ stellen. Jedoch werden die Sätze mit 21 Modulen vorgezogen, weil die größere Anzahl von Symbolzeichen (bis zu 167960) eine ver­ besserte Datensicherheit, Fehlerkorrektur und andere, weiter unten beschriebene Vorteile bieten.
Solch ein großer Satz erlaubt die Verwendung von Paritäts­ codes. Wie den in der Technik Bewanderten bekannt ist, kann er Hamming-Abstand zwischen Symbolzeichen durch Beseitigung aller Symbolzeichen mit einem Hamming-Abstand von Eins und Verwendung nur der Symbolisierung der verbleibenden Symbolzeichen maximiert werden. Die Symbolisierung verwendet Parität in ihren Symbol­ zeichen dadurch, daß sie z. B. vorsieht, daß die Summe der Module aller Striche in jedem Symbolzeichen gleich einer geraden Zahl ist.
Ohne Parität wird ein zweites Fehlererkennungs- oder Prüfzei­ chen benötigt, um der korrespondierenden Verringerung der Lese­ sicherheit entgegenzuwirken. Folglich muß eine Nachricht oder Kette von mehr als 20 Zeichen, die unter einer Symbolisierung ohne Parität codiert wurden, mit nur einem Prüfzeichen gleich­ ziehen mit derselben Nachricht, wenn sie unter einer Symbolisie­ rung mit Parität codiert wird, weil die Symbolisierung nur ein Modul/Symbolzeichen spart. Daraus folgt, daß die Symbolisie­ rung nach der vorliegenden Erfindung verbesserte Informations­ dichte durch Verwendung von Parität vorsieht, besonders für kür­ zere Ketten von Datenzeichen.
Zusätzlich erlaubt Parität Fehlerkorrektur mit nur einem Symbolzeichen durch Vorsehen der Kenntnis des Fehlerorts in einer Kette von Symbolzeichen. Falls z. B. ein Symbolzeichen in einem Etikett eine ungerade Parität hat, erkennt ein Leser, daß das Zeichen fehlerhaft ist. Das einzelne Fehlerkorrekturzeichen (weiter unten diskutiert) kann dann das fehlerhafte Symbolzei­ chen korrigieren und ersetzen. Da die vorliegende Erfindung Parität verwendet, sind nur die Sätze in Tabelle 1 mit einer Anzahl von Symbolzeichen größer als 131072 ( 2 × 65536) ver­ fügbar. Die (21,5)- und (21,6)-Sätze sind qualifiziert, wie auch alle drei der Sätze mit n = 22 und die Sätze mit n < 22. Um jedoch so kurze Symbolzeichen wie möglich vorzusehen (um die Informationsdichte zu vergrößern), verwendet die vorliegende Symbolisierung einen Satz mit n = 21. Von den zwei Sätzen mit n = 21 hat der (21,5)-Satz mehr Symbolzeichen mit unerwünscht großen Elementen (unten diskutiert). Deshalb wird die Benutzung des (21,6)-Satzes von der vorliegenden Erfindung bevorzugt.
Von den 167690 Symbolzeichen, die im (21,6)-Satz verfügbar sind, werden ungefähr die Hälfte in der vorliegenden Symbolisie­ rung wegen der Anforderung der Parität nicht benutzt. Zusätzlich werden alle Symbolzeichen mit mehr als sechs Modulen vorzugs­ weise entfernt. Ein Maximum von Elementen mit sechs Modulbreiten wird bevorzugt, weil der Druckkopf eines Thermaldruckers zu heiß werden könnte, wenn er Striche mit mehr als sechs Modulbreiten druckt. Ebenso können Zwischenräume mit mehr als sechs Modulen vom Leser als das Ende eines Symbols oder Etiketts interpretiert werden (d. h. als eine ruhige Zone). Ferner kann die vorliegende Symbolisierung durch Entfernung der sehr breiten Elemente leicht bei Benutzung von handgeführten Strichcodelesern ohne wesent­ liche Beschleunigungsverzerrungen decodiert werden. Falls alle Symbolzeichen mit Elementen von mehr als sechs Modulen entfernt werden, können 81796 Datenzeichen dargestellt werden. Diese Zahl von Datenzeichen ist größer als die Zahl der im Unicode dargestellten Datenzeichen.
Um Decodierung außer Fokus in höchstem Maße zu erleichtern, ist es ferner wünschenswert, das Vorkommen von langen Ketten mit Elementen der Breite Eins zu begrenzen. Wie in den U.S.-Patenten des Erfinders Nr. 5 389 770 mit dem Titel "Method and Apparatus for Decoding Unresolved Bar Code Profiles"; Nr. 5 486 689 mit dem Titel "Method and Apparatus for Decoding Unresolved Multi- Width Bar Code Symbology Profiles"; und Nr. 5 514 858 mit dem Titel "Method and Apparatus for Decoding Unresolved Complex Multi-Width Bar Code Symbology Profiles" können Symbolprofile außer Fokus durch Bestimmung der Anzahl von Elementen der Breite Eins decodiert werden, die zwischen Elementen erkannter Breite "verloren" gegangen sind. Falls eine Anzahl von Elementen der Breite Eins z. B. 12 übersteigt, dann vergrößern sich die Schwie­ rigkeiten unter den in diesen Patenten beschriebenen Decodie­ rungstechniken. Ähnlich sind Ketten von Elementen mit mehr als der Breite 12 schwierig zu decodieren (z. B. bei Benutzung von handgeführten Lesern), und sie haben dieselbe Lesetoleranz wie die Elemente mit einer Breite größer Sechs.
Deshalb entfernt die Symbolisierung der vorliegenden Erfin­ dung alle Symbolzeichen mit mehr als sechs Elementen der Breite Eins an jedem Ende eines Symbolzeichens. Folglich ist die läng­ ste Kette der Elemente der Breite Eins in irgendeinem Etikett 12 (für zwei benachbarte Symbolzeichen, endet eins mit sechs Ele­ menten der Breite Eins, während das andere mit sechs Elementen der Breite Eins beginnt). Daraus folgt, daß eine Gesamtzahl von 80130 Symbolzeichen in dem (21,6)-Satz verfügbar sind, nachdem alle Symbolzeichen mit mehr als sechs Elementen der Breite Eins an irgendeinem Ende eines Symbolzeichens entfernt worden sind.
Die Symbolisierung der vorliegenden Erfindung verwendet vor­ zugsweise die größte Primzahl von Symbolzeichen in dem (21,6)- Satz, während sie immer noch die oben beschriebenen Merkmale behält. Durch Verwendung einer Primzahl von Symbolzeichen hat die vorliegende Symbolisierung die stärksten Prüfungen und erleichtert Fehlerkorrektur. Wegen des Entwurfs des Startzei­ chens (unten beschrieben) wird die Gesamtzahl von 80130 Symbol­ zeichen um 48 Zeichen verringert, was 80082 nutzbare Symbolzei­ chen ergibt. Die größte Primzahl kleiner als 80082 ist 80077, was die Gesamtzahl der Symbolzeichen unter der vorliegenden Symbolisierung ist.
Die Subtraktion der 65536 Unicode-Datenzeichen von 80077 Symbolzeichen ergibt 14 594 zusätzliche Symbolzeichen. Die Sym­ bolisierung der vorliegenden Erfindung verwendet vorzugsweise 11000 der so verbleibenden Symbolzeichen, um numerische Werte hoher Dichte zu codieren, und den Rest, um alphanumerische Zei­ chen doppelter Dichte zu codieren. Alle verbleibenden Zeichen werden dann für vielfache Startzeichen und Spezialzeichen benutzt, wie unten beschrieben.
Das Startzeichen wird gewählt, um einzigartig bezüglich ande­ rer Symbolisierungen zu sein, um dadurch Selbstunterscheidungs­ fehler zu vermeiden. Zusätzlich wird das Startzeichen ausge­ wählt, um eine Untermenge eines Symbolzeichens zusein, wobei der Anfangsteil eines jeden Symbolzeichens derselbe ist, aber sein Endteil variiert. Dies ermöglicht Daten und/oder Funktionalitä­ ten im Startzeichen unterzubringen, zusätzlich zur Identifizie­ rung der vorliegenden Symbolisierung unter anderen Symbolisie­ rungen, und zur Bestimmung der Abtastrichtung.
Ein geeignetes Startzeichen kommt am Ende der Symbolzeichen vor, die durch die weiter unten gegebene Routine für den (21,6)- Satz erzeugt wird. Idealerweise sollte das Startzeichen in der Lage sein, irgendein Symbolzeichen aus dem gesamten doppel­ alphanumerischen Satz (unten beschrieben) zu enthalten. Die letzten Zeichen, die unten in dem (21,6)-Satz erzeugt werden, beginnen mit 64 . . . (ein Strich der Breite von sechs Modulen, gefolgt durch einen Zwischenraum der Breite von vier Modulen). Es gibt nur drei solcher Symbolzeichen in dem (21,6)-Satz. Symbolzeichen, die mit 63 . . . beginnen, führen zu nur 21 Zeichen, diejenigen, die mit 622 . . . beginnen, führen zu 24 Symbolzeichen, und diejenigen, die mit 621 . . . beginnen, führen zu 76 Symbol­ zeichen. Deshalb verwendet die vorliegende Symbolisierung Start­ zeichen, die alle mit der Folge 621 . . . beginnen (ein Strich der Breite sechs, gefolgt von einem Zwischenraum der Breite zwei, gefolgt von einem Strich der Breite eins). Die anderen Symbol­ zeichen (diejenigen, die mit 64 . . ., 63 . . . und 62 . . . beginnen) werden verworfen, so daß die Startzeichen die letzten Symbol­ zeichen in der vorliegenden Symbolisierung sind. Durch Vorsehen der Startzeichen als letzte Symbolzeichen in der Symbolisierung kann die vorliegende Symbolisierung schneller decodiert und ver­ arbeitet werden, da der Leser alle Symbolzeichen mit höheren Werten ignorieren kann (Symbolzeichen mit Symbolcodes größer als 80007), nachdem das Startzeichen lokalisiert und decodiert wurde.
Das Stopzeichen der vorliegenden Symbolisierung ist so kurz wie möglich, um die Informationsdichte zu vergrößern. Dazu unterscheidet sich das Stopzeichen von anderen bekannten Stop­ zeichen und von anderen Symbolzeichen in der Symbolisierung. Deshalb verwendet die Symbolisierung der vorliegenden Erfindung ein Stopzeichen mit einem einzelnen Strich der Breite von drei Modulen. Indem es nur drei Module breit ist, während der erste Strich in jedem Etikett sechs Module breit ist, ist das Stop­ zeichen genau halb so breit wie der erste Strich des Startzei­ chens. Dies ermöglicht einem Leser, leicht ein Etikett zu finden, das nach der vorliegenden Symbolisierung codiert wurde; falls der erste Strich ungefähr doppelt so breit wie der letzte Strich ist, dann wurde wahrscheinlich ein nach der vorliegenden Symbolisierung codiertes Etikett durch den Leser lokalisiert.
Zusätzlich kann der Leser leicht aus der bekannten Breite des ersten und des letzten Strichs in irgendeinem Etikett das X-Maß des Symbols bestimmen. Ferner kann ein Leser Beschleunigungsver­ zerrungen durch Messen der Veränderung der Breite zwischen dem ersten und dem letzten Strich bestimmen. Darüber hinaus kann der Leser ein Verhältnis der Breiten des Start- und Stopzeichens zu den benachbarten Symbolzeichen vergleichen, um zu bestätigen, daß das Verhältnis 2/7 bzw. 1/7 ist. Dies ergibt eine gute Prüfung für den Leser, das das gegenwärtig gelesene Etikett ein Etikett nach der vorliegenden Symbolisierung ist.
Da 65536 der Symbolzeichen verwendet werden, um die Unicode-Zeichen­ codes zu codieren, und 11000 verwendet werden, um Zahlen hoher Dichte zu codieren, verbleiben 3470 Symbolzeichen. Die verbleibenden Symbolzeichen werden verwendet für alphanumerische Zeichen doppelter Dichte, um weiter die Informationsdichte der vorliegenden Symbolisierung zu verbessern. Durch Codierung von alphanumerischen Zeichen doppelter Dichte kann ein einzelnes Symbolzeichen zwei alphanumerische Zeichen darstellen (die alphanumerischen Zeichen A-Z, die numerischen Zeichen 0-9 und andere Datenzeichen) . Da 59² gleich 3481 ist, und 58² gleich 3364 ist, kann die vorliegende Symbolisierung 58 Zeichen doppel­ ter Dichte mit den verbleibenden 3470 Symbolzeichen codieren. Nachfolgend verbleibende Symbolzeichen werden für Spezialzwecke, wie etwa Markieren eines nicht-voreingestellten Zeichensatzes benutzt werden, wie hier beschrieben. Allgemein beschreibt die folgende Tabelle 2 die Zuordnung aller 80077 Symbolzeichen nach der vorliegenden Symbolisierung.
Tabelle 2
Verwendung der 80077 Symbolzeichen nach der vorliegenden Symbolisierung
Das folgende, beispielhafte Computer-Software-Programm "HanCode9", das in der bekannten Programmiersprache BASIC geschrieben wurde, erzeugt den kompletten Symbolzeichensatz der vorliegenden Symbolisierung gemäß dem hier spezifizierten Entwurf und der erfinderischen Aspekte.
Die obige Routine HanCode9 erzeugt ein anfängliches Symbol­ zeichen von 111112111155, wobei die erste Zahl die Anzahl der Module in dem ersten Strich anzeigt, die zweite Zahl die Anzahl der Module im ersten Zwischenraum anzeigt, usw. Dieses Symbol­ zeichen wird vorzugsweise dem ersten vierziffrigen, numerischen Kompressionszeichen zugewiesen. Das letzte Zeichen in jedem der zugewiesenen Sätze von Datenzeichen wird in der Tabelle 3 unten angegeben.
Tabelle 3
Zuweisung der 80077 Symbolzeichen nach der vorliegenden Symbolisierung
Die Zuordnung der Symbolzeichen in der Tabelle 3 ist will­ kürlich und wird hier einfach zum Zweck eines Beispiels gemacht. Der vierziffrige, numerische Komprimierungszeichensatz wird von dem drei ziffrigen, numerischen Komprimierungszeichensatz gefolgt. Beide numerische Komprimierungszeichensätze sehen ein Mittel hoher Dichte der Codierung langer Ziffernketten vor. Der Komprimierungszeichensatz mit 58 Paaren alphanumerischer Zeichen folgt z. B. denselben ersten 58 Zeichen im Code-128-Standard. Die 16-Bit-Zeichencodes sind aus dem Unicode-Zeichensatz. Die 71 Startsymbolzeichen bestehen vorzugsweise aus den ersten 58 alphanumerischen Datenzeichen. Die folgenden Startsymbolzeichen sind wie folgt: ein Fülldatenzeichen, ein Funktion-1-Fülldaten­ zeichen, ein Funktion-1-Datenzeichen, gefolgt von den numeri­ schen Werten 0-9 und schließlich ein MH10.8.3-Kopf-/Schluß­ zeichen. Das Fülldatenzeichen ist eigentlich ein Null-Daten­ zeichen. Das Funktion-1-Fülldatenzeichen und die zehn Funktion- 1-Datenzeichen mit 0-9 können jeweils benutzt werden, um spezielle Industrie-bezogene Funktionen vorzusehen. Alternativ können Startzeichen und reservierte Zeichen als Umschalt- oder Einrastzeichen benutzt werden, oder als Einschalt- oder Imita­ tionszeichen durch andere Symbolisierungsstandards, wie etwa dem Code-128-Standard, oder um einen anderen Zeichensatz zu definie­ ren. Das MH10.8.3-Kopf-/Schlußzeichen ist ein ANSI-2D-Symboli­ sierungsstandard, der auf volle Köpfe und Endfolgen aufweitet und einem Standardformat folgt, das den in der Technik Bewan­ derten bekannt ist.
Da die vorliegende Symbolisierung eine Primzahl von Symbol­ zeichen verwendet, kann die vorliegende Erfindung ein robustes Fehlererkennungschema zusätzlich zu selbstprüfenden Eigenschaf­ ten der Parität der Symbolzeichen anwenden. Das Fehlererken­ nungsschema der vorliegenden Erfindung beinhaltet die Multipli­ kation des Symbolcodes des Symbolzeichens nächst dem Prüfzeichen mit Eins, Multiplikation des Symbolcodes des übernächsten Sym­ bolzeichens mit Zwei, und mit Fortführung nach links nach diesem Muster. Allgemein wird ein Prüfzeichen e₁ einer jeden Kette von Symbolzeichen oder Etiketts bestimmt auf der Basis der folgenden Gleichung:
e₁ = (Sn * n) + (Sn-1 * (n-1) ) + (Sn-2 * (n-2)) . . . (1)
wobei S der Symbolcode eines jeden Symbolzeichens ist, Sn der Symbolcode des ersten (am weitesten links stehenden) Symbolzei­ chens ist, und wobei n die Anzahl der Symbolzeichen in einem gegebenen Etikett ist. Das Startzeichen kann als ein Fehler­ erkennungszeichen nach der vorliegenden Symbolisierung benutzt werden, und irgendeines von solchen codierten Etiketten wird immer noch leicht lokalisierbar und decodierbar sein. Die Start­ zeichen sind nach der vorliegenden Symbolisierung fehlererkenn­ bar und -korrigierbar. Das ist besonders vorteilhaft, da die Startzeichen Datenzeichen enthalten. Fehlerkorrektur/-erken­ nungsberechnung nach Gleichung (1) verlangt, daß die Symbol­ zeichen mit einem Nullwert beginnen. Nach der exemplarischen Ausführungsform der vorliegenden Symbolisierung beginnen die Symbolcodes mit einem Wert von Eins. Deshalb sollten die Sym­ bolcodes S in Gleichung (1) tatsächlich um Eins niedriger sein als die Symbolcodes nach der exemplarischen Ausführungsform.
Ein exemplarisches Computer-Software-Programm, das in der konventionellen BASIC Programmiersprache geschrieben wurde, berechnet das Fehlererkennungs- und -korrekturzeichen e₁.
Ein anderes Zeichen kann zu dem Etikett hinzugefügt werden, um entweder eine extrem hohe Datensicherheit oder um Fehler­ korrektur eines einzelnen Symbolzeichens zu ermöglichen. Die vorliegende Symbolisierung ist deshalb eine fehlerkorrigierende, lineare Strichcode-Symbolisierung. Das Gewichtungsschema ist daßelbe wie das für das Fehlererkennungszeichen, indem es die­ selbe Gleichung (1) anwendet. Das Verfahren wendet einfach eine einzige Lösung einer linearen Gleichung an, um den korrekten Wert eines einzelnen Symbolzeichenfehlers zu bestimmen, voraus­ gesetzt, daß seine Position durch eine inkorrekte Zeichenparität bekannt ist.
Fig. 1 zeigt einen Symbolzeichendruckapparat 100 nach der vorliegenden Erfindung. Der Apparat besteht aus einem Drucker 102, einer zentralen Verarbeitungseinheit (CPU) 104, einem Speicher 106, einer Tastatur 107 und einem Zusatzspeicher 108. Der Drucker 102 ist von einem allgemein bekannten Typ, der Strichcodes und menschenlesbare Zeichen drucken kann. Die in der Technik Bewanderten können von solchen Printern die auswählen, die für die Benutzung nach der vorliegenden Erfindung geeignet sind. Die CPU 104 ist elektrisch mit einem Host-Computer 105 oder einem anderen Apparat oder einer Anwendung über eine Anschlußstelle oder Leitung 109 gekoppelt. Die CPU 104 führt eine Routine (Fig. 2) aus, die in dem Speicher 106 und/oder dem Zusatzspeicher 108 gespeichert ist, und wandelt einen 16-Bit-Zeichen­ code in Zähler um, die zum Drucker 102 geschickt werden. Der Drucker 102 interpretiert diese Zähler und wandelt sie in gedruckte Symbolzeichen um, typisch in der Form eines Strich­ codeetiketts. Ein "Etikett" bezieht sich allgemein auf irgendein Papier, Tuch, Plastik, Metall oder anderes biegsames oder star­ res Material, das geeignet für die Aufnahme von einem oder mehrerer Symbolzeichen und/oder Datenzeichen ist, die darauf gedruckt oder gebildet werden. Die in der betroffenen Technik Bewanderten werden jedoch erkennen, daß der Begriff "Etikett" sich auch auf irgendwelche Symbolzeichen bezieht, die auf einem Gegenstand aufgedruckt sind, wie etwa Verpackung für ein Verbrauchsgut.
Das gedruckte Etikett kann sowohl Symbolzeichen als auch die korrespondierenden menschenlesbaren Zeichen einschließen. Ein Beispiel für ein Etikett 101, das nach der vorliegenden Erfin­ dung gelesen oder gedruckt wird, ist in Fig. 3 gezeigt. In der bevorzugten Ausführungsform wird standardmäßig ein 16-Bit-Daten­ zeichencodierungsstandard benutzt, z. B. Unicode, JISC-6226-1983, Big Five (BF) oder KSC 5609-1987. Der JISC-6226-1983-Standard ist der japanische Industriestandard-Zeichensatz, der die Kanji- und Katakana-Zeichen in 16-Bit-Codes abbildet. Dieser Zeichen­ standard ist ähnlich zu Unicode, der, wie oben bemerkt, die Kanji- und Katakana-Zeichen unter anderem einschließt. Jedoch wird jedem Datenzeichen in dem JISC-6226-1983-Standard ein unterschiedlicher 16-Bit-Code für das gleichwertige Datenzeichen im Unicode-Standard zugewiesen.
Fig. 2 zeigt die Schritte, die durch den Druckapparat 100 von Fig. 1 für das Drucken eines Strichcodeetiketts mit vielfachen Symbolzeichen und mit korrespondierenden Datenzeichen ausgeführt werden. In Schritt 110 wird eine Kette von Datenzeichen ausge­ wählt, eingegeben oder bestimmt, z. B. als Eingabe unter Benut­ zung der Tastatur 107. Die Kette von Datenzeichen kann auch in die CPU 104 über die Leitung 109 von dem Host-Computer 105 ein­ gegeben werden. Wenn eine Taste auf der Tastatur 107 gedrückt wird, wird der Tastenanschlag in einen "Scancode" umgewandelt, der von der Tastatur zu der Vorrichtung übertragen wird, mit der die Tastatur verbunden ist (z. B. dem Druckapparat 100 oder dem Host-Computer 105). Dieser Scancode stellt die bestimmte Taste der Tastatur dar, die gedrückt wurde, und bezieht sich auf irgendein bestimmtes Zeichen oder einen Code in einem Daten­ zeichensatz, wie etwa ASCII oder Unicode.
In Schritt 112 teilt oder gliedert die CPU 104 die gewählten Zeichen in verschiedene Sätze von Datenzeichen, wie etwa Buch­ staben, Ziffern, 16-Bit-Zeichen, usw. auf. Datenzergliede­ rungstechniken sind in der betroffenen Technik wohlbekannt. In Schritt 114 definiert die CPU 104 irgendwelche Spezialzeichen, wie etwa Funktionszeichen (die als Startzeichen oder Spezial­ zeichen codiert werden könnten). In Schritt 116 bestimmt die CPU 104 eine optimierte Kette von Symbolzeichen auf der Basis der ausgewählten Datenzeichen. Falls z. B. mehr als zwei aufeinander­ folgende Datenzeichen numerisch sind, dann bestimmt die CPU, daß die numerischen Komprimierungszeichen angewendet werden sollten, um die Zahl der Symbolzeichen zu verringern und dadurch die Informationsdichte des sich ergebenden Etiketts zu vergrößern.
In Schritt 118 bestimmt die CPU 104 den Symbolcode für jedes Datenzeichen. Eine Tabelle von Datenzeichen und ihre entspre­ chenden Symbolcodes wird vorzugsweise in dem Zusatzspeicher 108 gespeichert, zusammen mit den Zählern für die korrespondierenden Symbolzeichen. Alternativ können die Symbolcodes automatisch aus der Kenntnis der Datenzeichen berechnet werden (wie oben bezüg­ lich der HanCode9-Routine bemerkt). In Schritt 120 erzeugt die CPU 104 das Prüfzeichen durch Anwendung der oben beschriebenen Prüfzeichenroutine von Gleichung (1). In Schritt 122 wählt die CPU 104 ein geeignetes X-Maß für das Symbol, teilweise auf der Basis der Anzahl der zu druckenden Symbolzeichen. In Schritt 124 wählt die CPU 104 andere Formatoptionen, wie etwa Drucken des Symbols mit menschenlesbaren Datenzeichen, oder andere Format­ optionen, die den in der Technik Bewanderten bekannt sind. In Schritt 126 gibt die CPU 126 die entsprechenden Codes und andere Signale an den Drucker 102 aus, der wiederum das Symbol als eine Serie von Symbolzeichen (und möglicherweise Datenzeichen) druckt, um das Strichcodeetikett zu bilden.
Mit Bezug auf Fig. 4, wird ein Flußdiagramm gezeigt, das in größerem Detail die spezifischen Schritte zeigt, die unter dem Schritt 118 der Routine 111 ausgeführt werden. Nachdem eine Kette von Datenzeichen in Schritt 110 bestimmt worden ist, liest die CPU 104 in Schritt 172 für jedes gegebene Datenzeichen den entsprechenden Zeichencode aus einer Tabelle aus. Die CPU 104 wandelt den Scancode in einen korrespondierenden ASCII-Code oder einen Unicode-Code (16-Bit-Code) nach solchen Standards um. Die CPU 104 hat eine Tabelle oder erzeugt algorithmisch den 16-Bit-Code oder anderen Code für jedes gegebene Datenzeichen. Bei der Codierung von Unicode-Datenzeichen z. B. hat jedes Datenzeichen einen einzigartigen 16-Bit-Code für jedes Datenzeichen nach dem Unicode-Standard.
In Schritt 174 holt die CPU 104 den einzigartigen Symbolcode in der vorliegenden Symbolisierung, der den 16-Bit-Code aus einer im Speicher 106 oder im Zusatzspeicher 108 gespeicherten Tabelle darstellt. Alternativ können die Symbolcodes algorith­ misch erzeugt werden auf der Basis der Werte der Datenzeichen. Falls z. B. ein gegebenes Datenzeichen einen korrespondierenden Wert in dem Unicode-Standard besitzt, könnte sein korrespondie­ render Symbolcode einfach der Unicode-Wert plus eine Konstante sein.
In Schritt 176 holt die CPU 104 die Zähler für das Drucken der Symbolzeichen, die jeden Symbolcode darstellen. Die Zähler für ein passendes Startzeichen und Stopzeichen werden ebenfalls geholt. Der Speicher 106 oder der Zusatzspeicher 108 speichern die Symbolcodes und korrespondierenden Zähler.
In der bevorzugten Ausführungsform können die Symbolzeichen auch mit den menschenlesbaren Datenzeichen gedruckt werden. Des­ halb holt die CPU 104 in Schritt 176 die Fontdaten für ein Datenzeichen, die für den Druck des Datenzeichens benötigt werden. Die Fontdaten versorgen den Drucker 102 mit bestimmten Daten, die benötigt werden, um das durch jedes Symbolzeichen dargestellte einzigartige Datenzeichen zu drucken. Bei einem Punktmatrixdrucker (nicht gezeigt) instruieren die Fontdaten den Drucker, wie das einzigartige Datenzeichen zu drucken ist. Die Fontdaten sind entweder im Speicher 106 oder im Zusatzspeicher 108 gespeichert.
In Schritt 178 bestimmt die CPU 104, ob alle ursprünglich in Schritt 110 ausgewählten Datenzeichen in der Kette umgewandelt worden sind. Falls zusätzliche Datenzeichen in der Kette ver­ bleiben, dann wird der einzigartige 16-Bit-Code oder ein anderer Code für das nächste Datenzeichen in Schritt 172 gefunden, sein korrespondierender Symbolcode wird in Schritt 174 geholt und der jeweilige Font und die Symbolzeichenzähler werden in Schritt 176 geholt. Dieser Prozeß wird wiederholt, bis alle Datenzeichen umgewandelt worden sind. Danach wird in Schritt 126 der Strich­ code durch den Drucker gedruckt mit sowohl den Symbolzeichen als auch den zugeordneten menschenlesbaren Datenzeichen.
Fig. 5 zeigt die Transformation eines Datenzeichens nach einem 16-Bit-Codestandard in ein Strichcodeetikett mit sowohl den Symbolzeichen als auch den menschenlesbaren Datenzeichen, unter Benutzung der in Fig. 4 gezeigten Schritte. Die Trans­ formation beginnt mit einem ausgewählten Datenblock (Block 180). Das Datenzeichen wird in einen 16-Bit-Code umgewandelt, der durch einen 16-Bit-Codierungsstandard wie etwa Unicode zugewie­ sen wird (Block 182). Der 16-Bit-Code für das Datenzeichen wird in einen Symbolcode umgewandelt (Block 184). Die Symbolcodes werden dann in die Zähler gewandelt, die die Striche und Zwi­ schenräume darstellen und für das Drucken des Symbolzeichens notwendig sind (Block 186). Die den Strichen und Zwischenräumen zugeordneten Zähler werden dann als Symbolzeichen gedruckt (Block 188), um das Strichcodeetikett zu erzeugen (Block 190).
Jedes korrespondierende, menschenlesbare Datenzeichen wird ebenfalls mit den Symbolzeichen gedruckt. Wie hier beschrieben, stellt jeder 16-Bit-Code ein einzigartiges Datenzeichen dar. Der 16-Bit-Code wird auf die Fontdaten abgebildet, die für das Drucken des einzigartigen Datenzeichens notwendig sind (Block 192). Die Fontdaten werden dann als menschenlesbare Datenzeichen gedruckt (Block 194), um das Strichcodeetikett zu erzeugen (Block 190). Falls z. B. die Datenzeichen mit einem Punktmatrix­ drucker gedruckt werden, dann sind die Fontdaten die geeigneten Signale, den Punktmatrixdrucker anzutreiben, um so das Daten­ zeichen zu drucken. Dieses Datenzeichen wird zusammen mit den Symbolzeichen nach der vorliegenden Symbolisierung (d. h. Block 188) auf das vervollständigte Strichcodeetikett gedruckt (Block 190), wie in Fig. 3 gezeigt. Die Zähler und Fontdaten werden bei der Umwandlung eines jeden Zeichens gespeichert, und dann wird das gesamte Etikett gedruckt, nachdem alle Datenzeichen umgewan­ delt worden sind. Alternativ werden die Symbolzeichen und die Datenzeichen nacheinander gedruckt, nachdem jedes menschen­ lesbare Datenzeichen in gedruckte Symbolzeichen und Datenzeichen im Strichcodeetikett gedruckt wurden.
Die obigen Schritte werden durch den Druckapparat 100 ausge­ führt, um ein Etikett mit dem exemplarischen Symbolzeichensatz zu erzeugen, der mit der obigen BASIC-Routine zusammen mit Fehlerkorrektur- und -erkennungs- als auch einigen alphanume­ rischen Datenzeichen geschaffen wurde. Das Etikett 101 von Fig. 3 kann in einer Personenidentifizierungsanwendung benutzt werden. Die in dem Etikett 101 codierten Datenzeichen sind "H85299301 Miew Mnn Shaun", wobei der "Name" in Wirklichkeit aus drei chinesischen Zeichen besteht, die in dem Unicode-Zeichen­ satz durch die 16-Bit-Codes 33494, 25991 und 23665 dargestellt werden. Die Unicode-Datenzeichen werden durch Symbolcodes in der vorliegenden Symbolisierung dargestellt, die sich aus 14363 plus ihren Unicode-16-Bit-Codes ergeben. Das erste Datenzeichen in dem Etikett 101 codiert ein "H", welches das vierzigste Start­ zeichen ist. Da sowohl die Symbolzeichen der vorliegenden Sym­ bolisierung als auch der Unicode-Zeichensatz mit einem Wert von Eins beginnen, ist es eine Ordnungszahl, während die Prüfzeichen berechnet werden durch Werte, die mit Null beginnen, und deshalb sind die Prüfzeichenwerte um Eins niedriger als die Ordnungs­ zahl. Folglich sind die zu codierenden Daten:
Tabelle 4
Prüfzeichenwert und Gewichtung bezüglich des Symbolcodes für das exemplarische Etikett von Fig. 3
Ein mit den oben angegebenen Gewichtungswerten berechnetes Fehlerkorrekturzeichen für das Etikett 101 ist 21662. Ein Prüf­ zeichen wird unter Benutzung einer neuen Kette von Gewichtungs­ werten berechnet, die mit 7 enden, und sein Wert ist 27208. Die Symbolcodes werden dann in die obige BASIC-Routine eingegeben, um die folgenden Symbolzeichen zu erzeugen:
Tabelle 5
Symbolzeichen und korrespondieren Strich-/Zwischenraummuster für die Symbolzeichen in dem Etikett von Fig. 3
Fig. 3 zeigt das sich ergebende Etikett, das mit einem 10- mil-X-Maß mit den korrespondierenden Datenzeichen gedruckt wird (d. h. Identifizierungsnummer und Name der Person). Das sich ergebende Etikett hat tatsächlich sowohl Identifizierungsnummer als auch Name codiert und hat Fehlerkorrektur und mächtige Fehlererkennung.
Die Symbolisierung der vorliegenden Erfindung kann auch leicht unter Benutzung eines Strichcodeleseapparats gelesen werden, wie etwa einem Strichcodeleseapparat 140, der in Fig. 6 gezeigt wird. Der Strichcodeleseapparat 140 hat einen Standard-Strich­ codeleser 142. Der Strichcodeleser 142 enthält eine elek­ trooptische Vorrichtung 143, wie etwa einen Laserscanner, raste­ risierenden Laser oder einen handgeführten optischen Wandler. Alternativ kann die elektrooptische Vorrichtung 143 in dem Leser 142 ein ein- oder zweidimensionales CCD, Halbleiterfeld, Vidicon oder andere Feldabbildner enthalten, die in der Lage sind, emp­ fangenes Licht in elektrische Signale zu wandeln. Die elektro­ optische Vorrichtung 143 in dem Leser 142 kann auch eine Licht­ quelle wie etwa ein LED, eine Blitzlichtbirne, eine Infrarot­ quelle oder ein anderes lichtausstrahlendes Element enthalten. Wie hier allgemein benutzt, bezieht sich der Begriff "Leser" auf irgendeine Vorrichtung, die in der Lage ist, das von einem Strichcode empfangene, modulierte Licht in elektrische Signale zu wandeln. Den in der Technik Bewanderten sind Leser bekannt, und ein jeglicher für die Benutzung in der vorliegenden Erfin­ dung geeigneter Leser kann ausgewählt werden. Die von dem Strichcodeleser 142 gelesenen Daten werden in eine CPU 144 ein­ gegeben. Ein Speicher 146 und ein Zusatzspeicher 148 sind mit der CPU 144 verbunden. Die von dem Strichcodeleser 142 eingege­ benen Daten werden durch die CPU 144 verarbeitet und an einen Host-Computer 147 oder anderen Apparat oder Anwendung über die Anschlußstelle oder Leitung 149 ausgegeben.
Fig. 7 zeigt die Schritte, die nach einer Routine 150 durch den Leseapparat 140 von Fig. 6 zum Lesen von Strichcodesymbolen mit Symbolzeichen aus der vorliegenden Symbolisierung ausgeführt werden. In Schritt 151, tastet oder bildet der Strichcodeleser 142 die Symbolzeichen eines Strichcodeetiketts ab und bestimmt eine Folge von Zählern. Wie den in der Technik Bewanderten bekannt ist, bestimmen die Übergänge zwischen den Strichen in den Symbolzeichen zusammen mit einem Zeitglied innerhalb des Leseapparats 140 die Zähler des gelesenen Symbolzeichens. Die Zähler wiederum werden benutzt, um die Breite der Elemente in einem gegebenen Symbol zu bestimmen. In Schritt 152 analysiert die CPU 144 die Zähler, um die ruhigen Zonen an beiden Seiten des Symbols zu lokalisieren.
In Schritt 154 wählt die CPU 144 die ersten zwölf Sätze von Zählern aus, die die erste Kette von zwölf Elementbreiten dar­ stellen. In Schritt 156 teilt die CPU 144 die zwölf Sätze von Zählern durch 21 und normalisiert das Ergebnis, um die Breite der einzelnen Elemente abzuschätzen. In Schritt 158 vergleicht die CPU 144 die Breiten der ersten zwölf Elemente mit der Kette von Breiten eines der Startzeichen und mit der umgekehrten Kette von Breiten des Stopzeichens. Falls die letzten zwölf Elemente in der Kette mit den zwölf Elementen eines der Startzeichen in Umkehrung korrespondiert, erkennt die CPU 144, daß das Symbol in umgekehrter Richtung abgetastet wurde, und erkennt deshalb, daß das Symbol von recht nach links (anstatt traditionell von links nach rechts) zu lesen ist. In Schritt 158 bestimmt die CPU 144 auch, welches der verschiedenen Startzeichen lokalisiert wurde, um das Datenzeichen, das Funktionszeichen oder das im Start­ zeichen codierte Füllzeichen zu bestimmen.
In Schritt 160 wählt die CPU 144 die nächsten 12 Elemente aus, und teilt in Schritt 162 die Summe der Elemente (Zähler) durch 21 und normalisiert das Ergebnis. In Schritt 164 bestimmt die CPU 144 den Symbolcode für die gewählten zwölf Elemente. In Schritt 164 prüft die CPU 144 auch die Parität der gewählten zwölf Elemente. Falls die Summe der Striche gleich einer geraden Zahl ist, dann stimmt die Parität. In Schritt 166 bestimmt die CPU 144, ob das Etikett irgendwelche zusätzlichen Elemente enthält, und falls das so ist, verzweigt sie zurück zu Schritt 160, um die Schritte 160 bis 164 erneut auszuführen, bis alle Symbolzeichen in Symbolcodes umgewandelt sind.
In Schritt 168 bestimmt die CPU 144, ob irgendwelche ungül­ tigen/nicht-decodierbaren Symbolzeichen erzeugt worden sind. Falls einige Symbolzeichen als nicht-decodierbar erkannt werden, dann verzweigt die Routine zurück zu Schritt 160 und die CPU 144 führt anderen bekannte Decodierungsverfahren aus, wie etwa Kante-zu-Kante-Decodierung (Elementpaare) für einzelne Elemente in dem Symbol. Alternativ führt die CPU 144 in Schritt 168 Strich-zu-Strich- oder Zwischenraum-zu-Zwischenraum-Vergleiche oder Faktor-R-Decodierungsverfahren aus, die den in der Technik Bewanderten bekannt sind.
In Schritt 168 kann die CPU 144 auch verifizieren oder bestimmen, ob die Symbolzeichen fokussiert sind. Die CPU 144 analysiert die Signale, die von dem Strichcodeleser 142 für die Symbolzeichen erzeugt werden, um zu bestimmen, ob die CPU die breiten Elemente erkennen kann, aber bei der Erkennung der Elemente der Breite Eins versagt. Falls die CPU 144 bei der Erkennung der Elemente der Breite Eins in einem oder mehreren Symbolzeichen versagt, verwirft die CPU die Decodierungsroutine, sieht unfokussierte Daten für die CPU vor oder führt andere Funktionen aus, indem sie etwa den Benutzer aufmerksam macht, daß das Symbol nicht fokussiert ist. Falls die CPU 144 ausrei­ chend programmiert ist, kann sie die unfokussierten Daten auf der Basis der oben erwähnten Patente dieses Erfinders decodie­ ren.
Falls das Symbol fokussiert ist oder falls die CPU 144 die unfokussierten Daten decodiert, so daß alle Symbolcodes gültig sind (d. h. auf Datenzeichen abbilden), dann führt die CPU 144 in Schritt 170 die Prüfberechnung auf der Basis des letzten Symbol­ zeichens aus. Die CPU 144 wendet auf alle Symbolcodes die oben beschriebenen Prüfzeichenberechnungsverfahren an, um zu bestim­ men, ob das Ergebnis dem Symbolcode des Prüfzeichens gleicht. Falls nicht, dann führt die CPU 144 Fehlerkorrektur aus. Alter­ nativ kann die CPU 144 Fehlerkorrektur in Schritt 164 ausführen, wenn die Parität geprüft wird. Falls die Prüfung stimmt, dann wandelt die CPU 144 in Schritt 171 die Symbolcodes in Daten­ zeichen auf der Basis einer Tabelle durch Holen der passenden Datenzeichen aus dem Speicher 146 oder dem Zusatzspeicher 148 um, je nachdem, wo die passenden Daten gespeichert sind. Die Datenzeichen können dann angezeigt oder in anderen Anwendungen durch die CPU 144 benutzt oder über die Leitung 149 an den Host-Com­ puter ausgegeben werden. Alternativ kann die CPU 144 die Symbolcodes einfach über die Leitung 149 an den Host-Computer 147 ausgeben, der wiederum Wandlung in die korrespondierenden Datenzeichen durchführt.
Fig. 8 zeigt die Transformation eines Strichcodeetiketts in ein Datenzeichen oder eine Datenzeichenkette unter Benutzung der in Fig. 7 gezeigten Schritte. Die Transformation beginnt mit einem Strichcodeetikett mit verschiedenen Symbolzeichen (Block 200), wie etwa das Etikett 101. Das Etikett 101 wird gelesen und die den Strichen und Zwischenräumen dieses Etiketts zugeordneten Zähler werden durch den Strichcodeleser 142 und die CPU 144 bestimmt (Block 202). Die Zähler werden in Symbolcodes gewandelt (Block 204). Jeder Symbolcode wird dann z. B. in einen 16-Bit-Code, eine Ziffernkette, usw. gewandelt (Block 206). Der 16- Bit-Code wird dann auf sein korrespondierendes, menschenlesbares Datenzeichen abgebildet (Block 208). Das Datenzeichen wird dann durch die CPU 144 zur Benutzung in einer passenden Anwendung abgegeben (z. B. auf einem Computer-Bildschirm angezeigt).
Mit Bezug auf Fig. 9 und 10 sieht die vorliegende Symboli­ sierung nicht nur die oben beschriebenen Vorteile vor, sondern sieht auch verbesserte Informationsdichte oder Effizienz vor. Beide Etiketten von Fig. 9 und Fig. 10 wurden mit einem X-Maß von 0,20 Zoll gedruckt. Durch Vorsehen von drei- und vierziff­ rigen, komprimierten, numerischen Datensätzen wird die Effizienz der vorliegenden Symbolisierung bei Vielfachen von vierziffrigen Datenzeichen maximiert, wobei die Dichte selbst besser ist als die von Code-128. Code-128 hat eine Dichte von 5,5 Modulen pro Ziffer, während die vorliegende Symbolisierung 5,25 Module pro Ziffer codieren kann. Bei weniger maximierter Effizienz für andere Ketten von Datenzeichen ist die Dichte der vorliegenden Symbolisierung etwas geringer als die von Code-128. Die folgende Tabelle faßt die Dichte numerischer Symbolzeichen für die vor­ liegende Symbolisierung (Han Ma) mit Vergleich zu Code-128 zusammen, welches die lineare Symbolisierung mit gegenwärtig höchster Dichte für lange numerische Ziffernketten ist. Die folgende Tabelle nimmt an, daß das passende Startzeichen für die Symbolisierungen in beiden Fällen benutzt wird.
Tabelle 6
Vergleich der Effizienz der Codierung von Ziffernketten zwischen Code-128 und der vorliegenden Symbolisierung
Wie in Fig. 9 gezeigt, wurden sowohl ein Code-128-Etikett 220 und ein nach der vorliegenden Symbolisierung codiertes Etikett 222 mit Codierung einer Standardkette numerischer Ziffern nach dem UCC-SSCC-18-Standard gezeigt (welches die numerische Kette 00000521775138957172 ist) . Wie gezeigt ist das Etikett 222 nach der vorliegenden Symbolisierung nur geringfügig länger als das Etikett 220, das nach dem Code-128 codiert wurde.
Der Zeichensatz für Paare alphanumerischer Zeichen nach der vorliegenden Symbolisierung sieht 10,5 Module pro Symbolzeichen vor, was geringfügig besser als Code-128 ist, welcher 11 Module pro Symbolzeichen vorsieht, aber schlechter als Code-93 ist, der 9 Module pro Datenzeichen vorsieht. Code 128 kann einen größeren Zeichensatz codieren, im Vergleich zu Code-93, der einen Daten­ zeichensatz geringeren Ausmaßes hat. Insgesamt ist die alpha­ betische und numerische Dichte für die vorliegende Symbolisie­ rung in gewissen Maße vergleichbar mit der Dichte der bekannten Code-128- und Code-93-Standards. Wenn jedoch 16-Bit-Zeichen nach der vorliegenden Symbolisierung codiert werden, verlangt Code-93 bis zu 27 Module pro Zeichen, während Code-128 bis zu 33 Module pro Zeichen verlangen würde (falls er 16-Bit-Daten innerhalb seines Datenzeichensatzes codieren kann). Die vorliegende Symbo­ lisierung verlangt nur 21 Module, um 16-Bit-Zeichen zu codieren.
Wie in Fig. 10 gezeigt, codieren ein nach dem Code-128-Stan­ dard codiertes Etikett 224 und ein nach der vorliegenden Symbolisierung codiertes Etikett 226 eine Kette von gemischten alphabetischen und numerischen Datenzeichen von "A1234BC5678DE9012". Wie in Fig. 10 gezeigt, ist das nach der vorliegenden Symbolisierung codiertes Etikett 226 wesentlich kürzer und hat deshalb eine größere Informationsdichte als das nach dem Code-128-Standard codiertes Etikett 224.
Viele alternative Ausführungsformen der vorliegenden Erfin­ dung sind möglich, wie von den in der betroffenen Technik Bewan­ derten erkannt wird. Eine erste alternative Ausführungsform hat einen größeren Zeichensatz als der oben beschriebene Symbolzei­ chensatz mit 80077 Zeichen. Wie oben bemerkt enthält die vorlie­ gende Symbolisierung vorzugsweise Parität, keine Elemente mit einer Breite von gleich oder mehr als sieben Modulen, und keine Ketten von mehr als sechs Elementen der Breite Eins an einem der Enden eines Symbolzeichens. Während die oben beschriebene Symbo­ lisierung gewisse Vorteile bekommt durch Plazierung des Start­ zeichens als das zuletzt erzeugte Symbolzeichen nach der obigen Software-Routine HanCode9, sieht die erste alternative Ausfüh­ rungsform zusätzliche Symbolzeichen vor. Nach der ersten alter­ nativen Ausführungsform ist die Symbolzeichenzuweisung im wesentlichen identisch der von Tabelle 3, außer daß alle die 621. . Startzeichen verwendet werden, so daß der Symbolcode­ bereich sich bis 80082 erstreckt. Das letzte Symbolzeichen in dem Satz ist dann 621311211111, was eine Menge von 76 solcher Symbolzeichen vorsieht.
Nach der ersten alternativen Ausführungsform sind 48 Symbol­ zeichen zusätzlich verfügbar. Wie oben bemerkt, verwendet jedoch die vorliegende Symbolisierung vorzugsweise eine Primzahl von Symbolzeichen. Die größte Primzahl kleiner als 80130 ist 80111. Folglich werden die letzten 19 Symbolzeichen nach der ersten alternativen Ausführungsform verworfen. Die obige Software-Rou­ tine HanCode9 kann leicht angepaßt werden, um diese Symboli­ sierung der ersten alternativen Ausführungsform zu erzeugen. Nach einer solchen angepaßten Software-Routine würde das letzte, durch die Routine erzeugte Symbolzeichen 631111121121 sein, was mit dem Symbolcode 80111 korrespondiert.
Nach der zweiten alternativen Ausführungsform wird eine Sym­ bolisierung vorgesehen, die eine größere Wahrscheinlichkeit der erfolgreichen Decodierung erlaubt. Wie oben bemerkt, ist ein wohlbekanntes Verfahren der Decodierung die "Kante-zu-Kante"- Decodierung, oder alternativ, die Elementpaar-Decodierung. Sol­ che Decodierung ist besonders leicht zu verwirklichen, wenn eine Symbolisierung keine mehrdeutigen Symbolzeichen hat. Mehrdeutig­ keit wird im wesentlichen ausgeschlossen, wenn jedes Symbolzei­ chen in der Symbolisierung mindestens einen Strich der Breite Eins hat.
Das obige Software-Programm HanCode9 wird modifiziert nach der zweiten, alternativen Ausführungsform durch Ersetzen der Instruktionen:
durch die folgenden Instruktionen:
Die mit 200 etikettierte, logische Anweisung in den obigen Modifikationen zur HanCode9-Routine fügt die Beschränkung hinzu, daß jedes Symbolzeichen mindestens einen Strich der Breite Eins haben muß. Aus dieser Begrenzung folgt, daß die Gesamtzahl der Symbolzeichen nach der zweiten, alternativen Ausführungsform auf 79948 reduziert wird. Die größte Primzahl kleiner als 79948 ist 79943. Um genügend Startzeichen für die Codierung von Daten zu habe, wird die Zahl der Komprimierungssymbolzeichen von Paaren alphanumerischer Zeichen von 58 auf 57 reduziert, um eine Gesamtmenge von 3249 solcher Symbolzeichen vorzusehen. Die modi­ fizierte HanCode9-Routine erzeugt die folgenden Symbolzeichen, die wie folgt zugewiesen werden.
Tabelle 7
Zuweisung der 79943 Symbolzeichen nach der vorliegenden Symbolisierung
Nach der oben beschriebenen Symbolisierung ist das erste erzeugte Symbolzeichen 111112111155.
Eine dritte alternative Ausführungsform sieht ein neues Stop­ muster für die obigen Symbolisierungen vor. Während der oben offengelegte Strich der Breite Drei ausreichend für die Decodie­ rung der vorliegenden Symbolisierung ist, verlangt er vom Lese­ apparat 140, sich auf das Startzeichen in einem gegebenen Eti­ kett für alle Informationen zu verlassen. Die dritte alternative Ausführungsform erweitert das Stopzeichen durch Vorsehen eines zweiten Strichs der Breite Drei, der vom ersten Strich der Breite Drei durch einen Zwischenraum der Breite Eins getrennt ist (d. h. daraus ergibt sich das Muster 313). Folglich wird durch einfaches Hinzufügen von vier zusätzlichen Modulen ein verbessertes Stopzeichen vorgesehen. Das Stopzeichen der dritten alternativen Ausführungsform ist leicht von anderen Symbolisie­ rungen zu unterscheiden, aber ist zusätzlich ausreichend unter­ scheidbar, um so eindeutig ein umgekehrtes Abtasten der vorlie­ genden Symbolisierung zu identifizieren. Solch ein Stopzeichen mit zwei Strichen ist besser geeignet zur Messung des X-Maßes eines gegebenen Etiketts, und ist deshalb besser für die Bestim­ mung der Beschleunigung. Ferner ist die Summe der Elemente in dem Stopzeichen 7, was ebenfalls ein geradzahliger Teiler von 21 ist. Schließlich ist das Muster leicht bei einer nicht-fokus­ sierten Lesebedingung zu erkennen.
Die in der Technik Bewanderten werden erkennen, daß die oben beschriebene Erfindung ein effizientes Mittel für die Codierung von durch 16-Bit-Zeichencodes dargestellten Datenzeichen oder numerischen Ziffernketten in Symbolzeichen vorsieht, und dann für die Rückwandlung jener Symbolzeichen in Datenzeichen oder Ziffernketten. Das oben beschriebene System unterstützt die auf­ kommenden 16-Bit-Zeichencodierungsstandards in den Datenerfas­ sungsmärkten und kann damit in weltweiten Anwendungen benutzt werden. Damit erlauben die oben beschriebene Symbolisierung und Systeme leicht, Daten in Computer-Formaten in Strichcodeformate umzuwandeln und umgekehrt. Die oben beschriebene Symbolisierung und Systeme erlauben die effiziente und kompakte Darstellung langer numerischer und alphanumerischer Ketten durch die vorlie­ gende Symbolisierung. Die vorliegende Symbolisierung kann unter Benutzung einer einfachen Computer-Programmroutine algorithmisch bestimmt werden. Die Startzeichen der vorliegenden Symbolisie­ rung haben erweiterte Funktionalität und die Start- und Stopzei­ chen sind einzigartig in Bezug auf andere Symbolisierungen. Der Zeichensatz der vorliegenden Symbolisierung hat selbstprüfende Eigenschaften und verwendet eine Primzahl von Symbolzeichen, um hohe Grade der Symbolcode vorzusehen, während auch Fehlerkor­ rektur vorgesehen wird. Die vorliegende Symbolisierung ist hand­ geführt abtastbar, leicht druckbar und kann aber bei Nicht-Fokus­ sierung mit bekannten Techniken decodiert werden.
Ein Teil der hier vorgelegten Offenlegung enthält Material, für das der Erfinder und/oder der Zugewiesene (der Copyright-Be­ sitzer) Copyright-Schutz beansprucht. Der Copyright-Besitzer hat keine Einwände gegen die Faksimile-Wiedergabe des Patent­ dokuments oder der Patentoffenlegungsschrift durch irgendjeman­ den, wie sie in den Dateien oder Akten des Patent- oder Waren­ zeichenamts erscheint, aber reserviert alle anderen Copyrights.
Obgleich spezifische Ausführungsformen von oder Beispiele für die vorliegende Erfindung zum Zweck der Veranschaulichung beschrieben wurde, können verschiedene gleichwertige Modifika­ tionen gemacht werden, ohne vom Geist und Umfang der Erfindung abzuweichen. Wenn z. B. der Speicher 106 oder 146 hinreichend groß ist, um alle von der CPU 104 oder 144 für das Codieren, das Decodieren, das Drucken oder das Lesen von Strichcodeetiketten benötigten Daten zu enthalten, dann ist der Zusatzspeicher 108 oder 148 unnötig und kann damit entfallen. Alternativ können die von der CPU 104 oder 144 benötigten Daten in dem Zusatzspeicher 108 oder 148 enthalten sein, und damit den Bedarf für einen großen Speicher 106 oder 146 oder den Bedarf für diesen Speicher überhaupt beseitigen. Ferner braucht der Druckapparat 100 oder der Leseapparat 140 nur einen begrenzten Datenzeichensatz zu benutzen. Nur die von der CPU 104 oder 144 benötigten Daten, die diesen Datenzeichensatz darstellen, sind in dem Speicher 106 oder 146 gespeichert. Der Zusatzspeicher 108 oder 148 ist unnötig und kann damit beseitigt werden.
Hinsichtlich der Symbolisierung können die Symbolzeichen nach der (21,6)-Symbolisierung in unterschiedlichen Sätzen von Daten­ zeichen als oben mit Bezug auf Tabelle 3 beschrieben zugewiesen werden. Die in der betroffenen Technik Bewanderten können eine (21,6)-Symbolisierung erzeugen, die einige oder alle oben vorge­ stellten Merkmale erfüllt, aber nicht notwendigerweise so, wie in den obigen exemplarischen Ausführungsformen ausgeführt. Solch eine (21,6)-Symbolisierung könnte die Datenzeichen zu korrespon­ dierenden Symbolzeichen in einer unterschiedlichen Weise zuwei­ sen, oder könnte sogar solch eine Zuweisung pseudo-zufällig durchführen. Nach einer solchen pseudo-zufälligen Zuweisung von Datenzeichen zu Symbolzeichen wird die Symbolisierung das Vor­ kommen ähnlicher Datentypen mit ähnlichen Mustern von Strichen und Zwischenräumen reduzieren, so daß eine geringe Veränderung in der Breite eines gegebenen Elements als ein unterschiedliches Datenzeichen gelesen würde (z. B. ein 16-Bit-Zeichen anstatt eines komprimierten numerischen Zeichens).
Zusätzliche Fehlerkorrekturzeichen können zu jedem Etikett hinzugefügt werden, um weiter die Fähigkeit zur Korrektur von Fehlern im Etikett zu vergrößern. Die Funktion-1-Startzeichen oder jedes andere der reservierten Symbolzeichen können benutzt werden, um auf einen Mode zur Codierung anderer Sätze von Daten­ zeichen wie etwa andere 16-Bit-Zeichen einzurasten. Da der Stan­ dardsymbolzeichensatz die Unicode-Zeichen codiert, kann z. B. bei Einrastung ein Satz der JISC-6226-1983-Zeichen codiert werden. Zusätzlich kann die vorliegende Erfindung die Ausführungen der hier drin beschriebenen U.S.-Patente und/oder -anmeldungen ver­ körpern, um zusätzlichen Nutzen und Funktionalität vorzusehen. Z.B. kann die vorliegende Symbolisierung ein Startzeichen mit zwischen Elemente der Breite Zwei zwischengeschobenen Elementen der Breite Eins haben, um zu bestimmen, ob ein Etikett außer Fokus ist, wir durch die U.S.-Patentanmeldung mit der Serien­ nummer 08/433 835 ausgeführt wurde, die am 4. Mai 1995 einge­ reicht wurde und den Titel "Single Width Barcode Symbology With Full Character Set Utilizing Robust Start/Stop Characters And Error Detection Scheme." Die oben referierten U.S.-Patente und -anmeldungen werden hier durch Referenz eingebracht als ob sie in ihrer Gesamtheit ausgeführt werden.
Diese oder andere Auswechselungen können bei der Erfindung im Licht der obigen, detaillierten Beschreibung gemacht werden. Allgemein sollten die Begriffe in den folgenden Ansprüchen nicht verstanden werden, daß sie die Erfindung auf bestimmte, in der Spezifikation und den Ansprüchen offengelegte Ausführungsformen begrenzen, sondern sollten verstanden werden, daß sie alle Appa­ rate, Verfahren und Symbolisierungen für die direkte Codierung mindestens von 16-Bit-Zeichensätzen einschließen. Dementspre­ chend ist die Erfindung nicht durch die Offenlegung begrenzt, sondern statt dessen wird sein Umfang vollständig durch die folgenden Ansprüche bestimmt.

Claims (40)

1. Ein Verfahren für das Umwandeln von Datenzeichen in maschi­ nenlesbare Symbole, wobei jedes Symbol ein Muster aus dunklen Formen und hellen Zwischenräume zwischen den Formen hat, und wobei ein ausgewähltes, menschenlesbares Zeichen durch einen Zeichencode mit mindestens 16 Bit dargestellt wird, und das Verfahren enthält die Schritte:
Bestimmen eines Zeichencodes mit mindestens 16 Bit für das ausgewählte, einzelne Datenzeichen, wobei das ausgewählte Daten­ zeichen und der ausgewählte, einzelne Zeichencode aus einem Standardsatz von mehr als 6 400 Datenzeichen ausgewählt ist, und wobei jedes Zeichen in dem Datenzeichensatz einen korrespondie­ renden Zeichencode hat;
Umwandeln des ausgewählten, einzelnen Zeichencodes in einem einzelnen, ausgewählten Symbolcode; und
Drucken eines einzelnen Symbols, das mit dem einzelnen, aus­ gewählten Symbolcode korrespondiert, wobei das einzelne Symbol und der einzelne, ausgewählte Symbolcode aus einem Symbolsatz in einer Symbolisierung ausgewählt wird, und wobei eine Anzahl von Symbolen in dem Symbolsatz in der Symbolisierung mindestens gleich einer Anzahl von Datenzeichen in dem Satz menschenles­ barer Zeichen ist.
2. Verfahren nach Anspruch 1, wobei die Schritte des Bestimmens, des Umwandelns und des Druckens für jedes Datenzeichen in einer ausgewählten Kette von Datenzeichen wiederholt werden.
3. Verfahren zum Umwandeln nach Anspruch 1, wobei der Schritt des Umwandelns den Schritt des Holens des Symbols aus einer Tabelle gespeicherter Symbolcodes enthält.
4. Verfahren nach Anspruch 1, wobei der Standardsatz der Daten­ zeichen der Unicode-Standard ist, und wobei der Schritt des Bestimmens eines Zeichencodes einen 16-Bit-Code aus dem Unicode- Standard bestimmt.
5. Verfahren nach Anspruch 1, das ferner den Schritt des Druckens eines ausgewählten, menschenlesbaren Zeichens mit dem gedruckten, einzelnen Symbol enthält, und das menschenlesbare Zeichen mit dem ausgewählten, einzelnen Datenzeichen korrespon­ diert.
6. Verfahren nach Anspruch 1, das ferner die Schritte enthält:
Auswählen einer Vielzahl von Ziffern;
Umwandeln der Vielzahl von Ziffern in einen einzelnen Symbol­ code; und
Drucken eines einzelnen, zusätzlichen Symbols, das mit dem einzelnen Symbolcode korrespondiert, wobei das einzelne, zusätz­ liche Symbol und der einzelne Symbolcode aus der Symbolisierung ausgewählt sind.
7. Verfahren nach Anspruch 1, das ferner den Schritt des Druckens eines Startsymbols enthält, wobei das Startsymbol aus einem Satz von Startsymbolen in der Symbolisierung ausgewählt ist, und wobei jedes der Startsymbole einen ersten Abschnitt hat, der identisch mit jedem der Startsymbole in dem Satz der Startsymbole ist, und einen zweiten Abschnitt hat, der einzig­ artig für jedes der Startsymbole in dem Satz der Startsymbole ist, und wobei der einzigartige Abschnitt mindestens ein Daten­ zeichen codiert.
8. Verfahren nach Anspruch 1, wobei jedes Symbol in der Symboli­ sierung in dem Schritt des Druckens aus dem Satz der Symbole ausgewählt ist, wobei der Satz der Symbole eine Primzahl von Symbolen hat.
9. Verfahren nach Anspruch 1, das ferner die Schritte enthält:
Berechnen eines Prüfwertes auf der Basis des Zeichencodes;
und
Drucken eines Prüfsymbols, das mit dem berechneten Prüfwert korrespondiert, wobei das Prüfsymbol und der Prüfwert aus der Symbolisierung ausgewählt ist.
10. Verfahren nach Anspruch 1, wobei der Schritt des Druckens die algorithmische Erzeugung eines ausgewählten Musters von dunklen Formen und hellen Zwischenräumen zwischen den Formen für das einzelne Symbol einschließt, basierend auf dem einzelnen, ausgewählten Symbolcode.
11. Verfahren zum Bedrucken einer Oberfläche mit mindestens einem Strichcodesymbol, wobei das Verfahren den Schritt enthält: Vorsehen benachbart positionierter Gruppen sequentieller Marken, wobei die Gruppen sechs Marken an ausgewählt bemessenen Abstän­ den innerhalb der Gruppe enthält, und die Marken aus einer Viel­ zahl unterschiedlicher Breiten ausgewählt sind, die ganzzahlige Vielfache einer ersten Breite sind, und wobei die Gruppen sechs leere Zwischenräume innerhalb jeder der Gruppen enthält, und jeder der leeren Zwischenräume aus einer Vielzahl von unter­ schiedlichen Breiten ausgewählt ist, die ganzzahlige Vielfache einer zweiten Breite sind, wo jede Gruppe eine Gesamtbreite hat, die im wesentlichen gleich 21 mal der ersten oder der zweiten Breite ist.
12. Verfahren nach Anspruch 11, wobei der Schritt des Vorsehens benachbart positionierter Gruppen sequentieller Marken das Vor­ sehen bis zu 81796 unterschiedliche Gruppen von Marken und leeren Zwischenräumen zwischen den Marken enthält, die bis zu 81796 unterschiedliche Muster darstellen.
13. Verfahren nach Anspruch 11, wobei der Schritt des Vorsehens benachbart positionierter Gruppen sequentieller Marken das Vor­ sehen einer Gruppe sequentieller Marken in dem Symbol enthält, die ein Prüfzeichen darstellt, wobei die eine Gruppe aus einer von 81796 oder 80130 Gruppen von Marken und leeren Zwischen­ räumen ausgewählt ist.
14. Verfahren nach Anspruch 11, wobei der Schritt des Vorsehens benachbart positionierter Gruppen sequentieller Marken das Vor­ sehen von Gruppen sequentieller Marken und leerer Zwischenräume enthält, die die Vielzahl unterschiedlicher Breiten haben, wobei die Vielzahl unterschiedlicher Breiten nicht größer ist als sechs mal die erste bzw. zweite Breite.
15. Verfahren nach Anspruch 11, wobei der Schritt des Vorsehens benachbart positionierter Gruppen sequentieller Marken das Vor­ sehen von mindestens 65536 Gruppen sequentieller Marken enthält, die einen Satz von Datenzeichen nach einem 16-Bit-Codestandard identifizieren.
16. Verfahren nach Anspruch 11, wobei der Schritt des Vorsehens benachbart positionierter Gruppen sequentieller Marken das Vor­ sehen einer Vielzahl von Gruppen sequentieller Marken enthält, die Startzeichen darstellen, wobei ein erster Teil der Start­ zeichen identisch ist, und ein zweiter Teil bezüglich jedes der Startzeichen einzigartig ist, und wobei der einzigartige Teil mindestens ein Datenzeichen codiert.
17. Verfahren nach Anspruch 11, wobei der Schritt des Vorsehens benachbart positionierter Gruppen sequentieller Marken das Vor­ sehen jeder Gruppe sequentieller Marken und leerer Zwischenräume enthält, daß sie nicht mehr als sechs benachbarte Marken und leere Zwischenräume hat, die an einem Ende der Gruppe einmal die erste bzw. zweite Breite haben.
18. Verfahren nach Anspruch 11, wobei der Schritt des Vorsehens benachbart positionierter Gruppen sequentieller Marken den Schritt der automatischen Erzeugung der Gruppen sequentielle Marken enthält, wobei die Vielzahl unterschiedlicher Breiten der Marken und der leeren Zwischenräume nicht größer als sechs mal die erste bzw. die zweite Breite ist, und jede Gruppe weniger als sieben benachbarte Marken und leere Zwischenräume an einem Ende der Gruppe hat, die einmal die erste bzw. zweite Breite haben.
19. Verfahren nach Anspruch 11, wobei der Schritt des Vorsehens benachbart positionierter Gruppen sequentieller Marken das Vor­ sehen einer Vielzahl von Gruppen sequentieller Marken enthält, die Startzeichen darstellen, welche einzigartig bezüglich anderer Symbolisierungsstandards sind.
20. Verfahren nach Anspruch 11, wobei die erste und zweite Breite in dem Schritt des Vorsehens näherungsweise gleich sind.
21. Verfahren nach Anspruch 11, wobei der Schritt des Vorsehens benachbart positionierter Gruppen sequentieller Marken das Vor­ sehen mindestens eines Satzes von Gruppen sequentieller Marken enthält, die jede drei oder mehr numerische Datenzeichen dar­ stellen.
22. Verfahren nach Anspruch 11, wobei der Schritt des Vorsehens benachbart positionierter Gruppen sequentieller Marken das Vor­ sehen einer ersten und einer zweiten Gruppe sequentieller Marken in dem Symbol enthält, die erste und zweite Fehlerkorrektur­ zeichen darstellen.
23. Verfahren nach Anspruch 11, wobei der Schritt des Vorsehens benachbart positionierter Gruppen sequentieller Marken das Vor­ sehen von 80111 Gruppen enthält.
24. Verfahren nach Anspruch 11, wobei der Schritt des Vorsehens benachbart positionierter Gruppen sequentieller Marken das Vor­ sehen jeder Gruppe enthält, daß sie mindestens eine Marke mit einmal der ersten Breite hat.
25. Eine Strichcodestruktur, die enthält: eine Vielzahl von benachbart positionierter Striche mit Zwischenräumen zwischen den Strichen hat, Gruppen von mindestens vier Strichen und vier Zwischenräumen, die individuelle Datenzeichen definieren, wobei jede Gruppe mindestens vier Striche und vier Zwischenräume hat, die aus einer Vielzahl von unterschiedlichen Breiten ausgewählt sind, welche geradzahlige Vielfache der ersten bzw. der zweiten Breite sind, und wobei jede Gruppe eine Gesamtbreite gleich mindestens zwanzigmal der ersten oder zweiten Breite hat.
26. Strichcodestruktur nach Anspruch 25, wobei die Gruppen von Strichen und Zwischenräumen bis zu 81796 unterschiedliche Grup­ pen vorsehen, die bis zu 81796 unterschiedliche Datenzeichen darstellen.
27. Strichcodestruktur nach Anspruch 25, wobei die Gruppen von Strichen und Zwischenräumen eine Gruppe vorsieht, die ein Prüf­ zeichen darstellt, wobei die eine Gruppe aus mindestens 65536 der 81796 Gruppen von Strichen und Zwischenräumen ausgewählt ist.
28. Strichcodestruktur nach Anspruch 25, wobei die Vielfalt unterschiedlicher Breiten nicht größer als sechs mal der ersten oder zweiten Breite ist.
29. Strichcodestruktur nach Anspruch 25, wobei die Gruppen min­ destens 65536 Gruppen von Strichen und Zwischenräumen vorsehen, die einen Satz von Datenzeichen nach einem 16-Bit-Codestandard identifizieren.
30. Strichcodestruktur nach Anspruch 25, wobei die Gruppen von Strichen und Zwischenräumen eine Vielfalt von Gruppen vorsehen, die Startzeichen darstellen, wobei ein erster Teil jedes der Startzeichen identisch ist, während ein zweiter Teil bezüglich jedes der Startzeichen einzigartig ist, und wobei der einzig­ artige Teil mindestens ein Datenzeichen codiert.
31. Strichcodestruktur nach Anspruch 25, wobei jede Gruppe höchstens sechs benachbarte Striche und Zwischenräume an einem Ende der Gruppe hat, die einmal die erste bzw. zweite Breite haben.
32. Strichcodestruktur nach Anspruch 25, wobei die Vielzahl der Gruppen der Striche und Zwischenräume Startzeichen darstellen, welche einzigartig bezüglich anderer Symbolisierungsstandards sind.
33. Strichcodestruktur nach Anspruch 25, wobei die erste und zweite Breite näherungsweise gleich sind.
34. Strichcodestruktur nach Anspruch 25, wobei mindestens ein Satz von Gruppen der Striche und Zwischenräume numerische Komprimierung von Datenzeichen identifiziert.
35. Strichcodestruktur nach Anspruch 25, wobei jede Gruppe sechs Striche und sechs Zwischenräume enthält und eine Gesamtbreite gleich 21 mal der ersten bzw. zweiten Breite hat, und wobei die Gruppen bis zu 80077 unterschiedliche Gruppen vorsehen, die bis zu 80077 unterschiedliche Datenzeichen darstellen.
36. Strichcodestruktur nach Anspruch 25, wobei die Gruppen von Strichen und Zwischenräumen erste und zweite Gruppen vorsehen, die ein erstes und ein zweites Fehlerkorrekturzeichen darstel­ len.
37. Strichcodestruktur nach Anspruch 25, wobei jede Gruppe min­ destens einen Strich mit einmal der ersten Breite hat.
38. Ein Verfahren zum Decodieren eines Strichcodeetiketts, das auf einer Oberfläche gebildet ist, und das Verfahren enthält die Schritte:
Abbilden des Strichcodeetiketts, um ein Signal zu erzeugen, das für jedes einer Vielzahl von Symbolzeichen darauf kennzeich­ nend ist;
Analysieren des Signals, um die Symbolzeichen zu identifizie­ ren, wobei jedes Symbolzeichen durch sechs Striche und sechs Zwischenräume gekennzeichnet ist, und jeder Strich und jeder Zwischenraum aus einem ganzzahligen Vielfachen einer ersten bzw. zweiten Breite ausgewählt ist, und wobei jedes Symbolzeichen eine Gesamtbreite angenähert gleich 21 mal der ersten oder zweiten Breite ist; und
Umwandeln jedes Symbolzeichens in einen korrespondierenden Symbolcode.
39. Eine Strichcodestruktur, die eine Vielzahl von benachbart positionierten Strichen mit dazwischen liegend Zwischenräumen hat, wobei Gruppen von Strichen und Zwischenräumen individuelle Datenzeichen definieren, und wobei eine Untermenge der Gruppen von Strichen und Zwischenräumen einen Satz von Startzeichen definieren, wobei jede Gruppe in der Untermenge einen ersten Abschnitt hat, der identisch mit jedem der anderen Gruppen in der Untermenge ist, und einen zweiten Abschnitt hat, der einzig­ artig für jede der Gruppen in der Untermenge ist, und wobei der einzigartige Abschnitt mindestens ein Datenzeichen codiert.
40. Ein Verfahren zum Umwandeln einer ausgewählten, numerischen Kette in maschinenlesbare Symbole, wobei die numerische Kette mindestens drei Ziffern hat, und das Verfahren enthält die Schritte:
Erzeugen eines einzelnen, ausgewählten Symbolcodes für die mindestens drei Ziffern in der ausgewählten, numerischen Kette; und
Drucken eines einzelnen Symbols, das mit dem einzelnen, aus­ gewählten Symbolcode korrespondiert, wobei das einzelne Symbol und der einzelne, ausgewählte Symbolcode aus einem Satz von Symbolen in einer Symbolisierung ausgewählt ist.
DE19736202A 1996-08-21 1997-08-20 Strichcode-Symbolisierung mit der Fähigkeit, 16-Bit-Zeichen zu codieren, und Verfahren und Apparat zum Drucken und zum Lesen derselben Withdrawn DE19736202A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/701,304 US5811781A (en) 1993-11-05 1996-08-21 Bar code symbology capable of encoding 16-bit characters, and method and apparatus for printing and reading same

Publications (1)

Publication Number Publication Date
DE19736202A1 true DE19736202A1 (de) 1998-02-26

Family

ID=24816827

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19736202A Withdrawn DE19736202A1 (de) 1996-08-21 1997-08-20 Strichcode-Symbolisierung mit der Fähigkeit, 16-Bit-Zeichen zu codieren, und Verfahren und Apparat zum Drucken und zum Lesen derselben

Country Status (3)

Country Link
US (2) US5811781A (de)
JP (1) JPH10171913A (de)
DE (1) DE19736202A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005066887A1 (en) * 2003-12-18 2005-07-21 Electronic Data Systems Corporation New data glyph format

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321986B1 (en) * 1993-11-05 2001-11-27 Intermec Ip Corporation Robust machine-readable symbology and method and apparatus for printing and reading same
US6422476B1 (en) 1993-11-05 2002-07-23 Intermec Ip Corp. Method, apparatus and character set for encoding and decoding data characters in data carriers, such as RFID tags
US6149059A (en) * 1993-11-05 2000-11-21 Intermec Ip Corporation Bar code symbology capable of encoding bytes, words, 16-bit characters, etc. and method and apparatus for printing and reading same
US6371375B1 (en) 1995-09-25 2002-04-16 Intermec Ip Corp. Method and apparatus for associating data with a wireless memory device
US5798513A (en) * 1996-12-03 1998-08-25 Intermec Corporation Method and apparatus for decoding unresolved profiles produced from relief formed symbols
US6056195A (en) * 1997-12-23 2000-05-02 Spain; Wanda Hudgins Method and apparatus for printing bar coded labels in different languages
US6279828B1 (en) * 1999-03-01 2001-08-28 Shawwen Fann One dimensional bar coding for multibyte character
US6398113B1 (en) * 1999-12-23 2002-06-04 Ncr Corporation System and methods for collaborative bar code error detection and correction
US6717580B1 (en) * 2000-02-02 2004-04-06 America Online, Inc. Method and apparatus using a list of <minimum, size, gap, offset > quadruple to encode unicode characters in an upper/lowercase mapping
US20010035964A1 (en) * 2000-04-20 2001-11-01 Hiroyasu Kurashina Tape cartridge, tape printing method, tape printing apparatus, and label-producing method
US6540143B1 (en) * 2000-05-19 2003-04-01 Fujitsu Limited System and method for recovering bar code errors
AU2001263225A1 (en) * 2000-05-30 2001-12-11 Digital:Convergence Corporation Unique bar code
KR20010111097A (ko) * 2000-06-07 2001-12-17 이수용 영문전용 바코드 프린터를 이용한 한글 인쇄를 위한 시스템
US20020016750A1 (en) * 2000-06-20 2002-02-07 Olivier Attia System and method for scan-based input, storage and retrieval of information over an interactive communication network
US6732932B2 (en) * 2000-10-12 2004-05-11 Symbol Technologies, Inc. Bar code symbology with integrated user-interface graphic pattern
US6928225B2 (en) * 2001-04-03 2005-08-09 Schott Glas Method and assembly for mounting at least one optical fiber
JP4803906B2 (ja) * 2001-06-07 2011-10-26 株式会社キーエンス 光学式情報読取装置の設定用バーコードの生成方法、光学式情報読取装置の設定変更方法、設定用バーコード生成プログラムおよび記録媒体
US6607130B2 (en) * 2001-09-14 2003-08-19 Microworks, Inc. System and method for printing application and printer independent bar codes
US6705218B2 (en) * 2001-12-20 2004-03-16 The Jolt Company, Inc. Method and apparatus for printing a beverage label having a static part and a variable part
US7025269B2 (en) * 2003-04-24 2006-04-11 Watson Label Products Corp. Barcodes including embedded security features and space saving interleaved text
US7156311B2 (en) * 2003-07-16 2007-01-02 Scanbuy, Inc. System and method for decoding and analyzing barcodes using a mobile device
US20070034701A1 (en) * 2003-09-17 2007-02-15 Tsube Sangyou K.K. Recognition code based on combination of element cells, and recognition code sheet
US7387250B2 (en) * 2003-12-04 2008-06-17 Scanbuy, Inc. System and method for on the spot purchasing by scanning barcodes from screens with a mobile device
JP4079891B2 (ja) * 2004-01-29 2008-04-23 株式会社キングジム バーコードデータ作成システム、バーコードデータ作成方法、及び、バーコードデータ作成プログラム
US7341456B2 (en) * 2004-03-25 2008-03-11 Mcadams John B Braille type device, system, and method
US7296747B2 (en) * 2004-04-20 2007-11-20 Michael Rohs Visual code system for camera-equipped mobile devices and applications thereof
US7309015B2 (en) * 2004-07-14 2007-12-18 Scanbuy, Inc. Mobile device gateway providing access to instant information
US7710598B2 (en) 2004-08-23 2010-05-04 Harrison Jr Shelton E Polychromatic encoding system, method and device
JP4254724B2 (ja) * 2005-02-16 2009-04-15 株式会社デンソーウェーブ バーコード読取り方法及びコンピュータプログラム
US7905409B2 (en) * 2005-05-20 2011-03-15 Senshin Capital, Llc Print medium feature encoding and decoding
WO2007035863A2 (en) 2005-09-21 2007-03-29 Intermec Ip Corp. Radio frequency identification tags based on coalition formation
JP2007114837A (ja) * 2005-10-18 2007-05-10 Seiko Epson Corp Hri文字付きバーコードの生成方法、hri文字付きバーコードの生成装置、印刷装置、プログラム
US7431213B2 (en) * 2005-11-15 2008-10-07 Xerox Corporation Barcode printing system
US8016187B2 (en) * 2006-02-21 2011-09-13 Scanbury, Inc. Mobile payment system using barcode capture
US8120461B2 (en) 2006-04-03 2012-02-21 Intermec Ip Corp. Automatic data collection device, method and article
US8150163B2 (en) 2006-04-12 2012-04-03 Scanbuy, Inc. System and method for recovering image detail from multiple image frames in real-time
US7738717B1 (en) * 2006-06-27 2010-06-15 Verizon Services Corp. Systems and methods for optimizing bit utilization in data encoding
US8002173B2 (en) 2006-07-11 2011-08-23 Intermec Ip Corp. Automatic data collection device, method and article
US7546955B2 (en) * 2007-03-16 2009-06-16 Intermec Ip Corp. Systems, devices, and methods for reading machine-readable characters and human-readable characters
US8011596B2 (en) * 2008-02-13 2011-09-06 Hand Held Products, Inc. Machine readable 2D symbology printable on demand
US20100078482A1 (en) * 2008-09-26 2010-04-01 United States Of America As Represented By The Secretary Of The Army Dynamic Barcode System
CN102498698B (zh) * 2009-07-14 2015-11-25 DPiD有限公司 用于管理唯一标识符的注册表的装置和方法
US20120193424A1 (en) * 2011-01-31 2012-08-02 King Abdul Aziz City For Science And Technology Method of encoding and decoding data on a matrix code symbol
US8670976B2 (en) * 2011-03-31 2014-03-11 King Abdulaziz City for Science & Technology System and methods for encoding and decoding multi-lingual text in a matrix code symbol
CN107534489B (zh) * 2015-05-19 2019-12-27 日本电信电话株式会社 光通信系统以及光通信方法
JP7419084B2 (ja) * 2020-01-28 2024-01-22 東芝テック株式会社 リーダ、方法、プログラム
CN115034346B (zh) * 2022-06-01 2023-04-07 浙江省标准化研究院(金砖国家标准化(浙江)研究中心、浙江省物品编码中心) 基于gs1编码的产品唯一赋码方法、装置、存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4079482A (en) * 1976-05-27 1978-03-21 Yeh Chan H Electronic data processing of Chinese characters
US4307293A (en) * 1980-08-04 1981-12-22 Burroughs Corporation Optical reader kit for letter sorting machines
DE3330261A1 (de) * 1983-08-22 1985-03-07 Gregor GmbH & Co. KG, Wien Verfahren zum codieren bzw. dekodieren von informationen, vorrichtung zum aufbringen der codierten information auf eine druckform bzw. zum uebertragen der information von der druckform auf einen anderen informationstraeger und die druckform selbst
EP0299383B1 (de) * 1987-07-11 1994-11-23 Hirokazu Yoshida Verfahren zum Lesen von Blättern mit Identifikationscode
US5204515A (en) * 1987-07-11 1993-04-20 Teiryo Sangyo Co., Ltd. Method of reading identification code sheets using borders to determine scan angle
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
CA2011296A1 (en) * 1989-05-15 1990-11-15 Douglas C. Bossen Presence/absence bar code
US5612531A (en) * 1993-03-08 1997-03-18 Symbol Technologies, Inc. Bar code reader with multiple sensitivity modes using variable thresholding comparisons
JP2738098B2 (ja) * 1990-01-08 1998-04-08 株式会社デンソー 光走査装置
US5387783A (en) * 1992-04-30 1995-02-07 Postalsoft, Inc. Method and apparatus for inserting and printing barcoded zip codes
US5420403A (en) * 1992-05-26 1995-05-30 Canada Post Corporation Mail encoding and processing system
US5298731A (en) * 1992-12-23 1994-03-29 International Business Machines Corporation Method for printing and reading for orthogonal bar code patterns
US5557092A (en) * 1993-11-05 1996-09-17 Intermec Corporation Apparatus and method for 16-bit and numeric data collection using bar code symbologies
FR2715751A1 (fr) * 1994-01-28 1995-08-04 Canon Research Centre France S Procédé de codage d'informations sous forme de codes à barres, procédé de lecture de ces derniers et dispositifs mettant en Óoeuvre ces procédés.
US5602382A (en) * 1994-10-31 1997-02-11 Canada Post Corporation Mail piece bar code having a data content identifier
US5619027A (en) * 1995-05-04 1997-04-08 Intermec Corporation Single width bar code symbology with full character set utilizing robust start/stop characters and error detection scheme
US5539191A (en) * 1995-06-22 1996-07-23 Intermec Corporation Method and apparatus for decoding unresolved bar code profiles using edge finding circuitry
US5777310A (en) * 1995-11-06 1998-07-07 Intermec Corporation Problem reduction with low level information integration in bar code decoding
US5767498A (en) * 1996-09-17 1998-06-16 Ncr Corporation Bar code error scanner

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005066887A1 (en) * 2003-12-18 2005-07-21 Electronic Data Systems Corporation New data glyph format
US7175096B2 (en) 2003-12-18 2007-02-13 Electronic Data Systems Corporation Data glyph format

Also Published As

Publication number Publication date
US5939700A (en) 1999-08-17
JPH10171913A (ja) 1998-06-26
US5811781A (en) 1998-09-22

Similar Documents

Publication Publication Date Title
DE19736202A1 (de) Strichcode-Symbolisierung mit der Fähigkeit, 16-Bit-Zeichen zu codieren, und Verfahren und Apparat zum Drucken und zum Lesen derselben
US6024289A (en) Method and apparatus for encoding and decoding single byte characters in double byte character set of machine-readable symbologies, such as bar code symbologies
US6279828B1 (en) One dimensional bar coding for multibyte character
JP4975109B2 (ja) 2次元コード及びそのデコード方法、その2次元コードを適用する印刷出版物
US6149059A (en) Bar code symbology capable of encoding bytes, words, 16-bit characters, etc. and method and apparatus for printing and reading same
US4939354A (en) Dynamically variable machine readable binary code and method for reading and producing thereof
US5124536A (en) Dynamically variable machine readable binary code and method for reading and producing thereof
US5053609A (en) Dynamically variable machine readable binary code and method for reading and producing thereof
US5619027A (en) Single width bar code symbology with full character set utilizing robust start/stop characters and error detection scheme
JP2788521B2 (ja) ラベル生成装置
DE3911702C2 (de)
US5126542A (en) Dynamically variable machine readable binary code and method for reading and producing thereof
US4079482A (en) Electronic data processing of Chinese characters
US6012638A (en) Machine-readable symbology and method and apparatus for printing and reading same
KR960706146A (ko) 바코드 기호표시법을 이용한 16비트 및 수치데이타 수집장치 및 방법(Apparatus and method for 16-bit and numeric data collection using bar code symbalogies)
DE3626563A1 (de) Frankiermaschine mit codierter graphikinformation im freistempel
DE60221278T2 (de) System und verfahren zum einbetten von zeichen in einen strich eines strichcodes
CN101180631B (zh) 印刷介质特征编码与解码
US7878414B2 (en) Code and a method for coding and encoding information
WO1995012863A1 (en) Apparatus and method for 16-bit and numeric data collection using bar code symbologies
Coueignoux Character generation by computer
CN106626845A (zh) 灰度二维码的印制方法
US20070140567A1 (en) Method, system and computer program for encoding and decoding a pixelized target graphic symbol
DE3943680C2 (de) Optisch lesbare Kennzeichnung
JP7293725B2 (ja) 物体と情報とを関連付ける装置

Legal Events

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