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 derselbenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record 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/06009—Record 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/06018—Record 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/06028—Record 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K1/00—Methods or arrangements for marking the record carrier in digital fashion
- G06K1/12—Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
- G06K1/121—Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by printing code marks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Record Information Processing For Printing (AREA)
- Printers Characterized By Their Purpose (AREA)
Description
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.
Diese Erfindung bezieht sich auf eine neue, maschinenlesbare
Symbolisierung und Vorrichtungen und Verfahren zum Lesen oder
Drucken von Strichcodesymbolen der Symbolisierung.
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.
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.
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.
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).
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.
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.
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:
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:
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.
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.
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.
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.
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.
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.
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.
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.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6149059A (en) * | 1993-11-05 | 2000-11-21 | Intermec Ip Corporation | Bar code symbology capable of encoding bytes, words, 16-bit characters, etc. and method and apparatus for printing and reading same |
US6422476B1 (en) | 1993-11-05 | 2002-07-23 | Intermec Ip Corp. | Method, apparatus and character set for encoding and decoding data characters in data carriers, such as RFID tags |
US6321986B1 (en) * | 1993-11-05 | 2001-11-27 | Intermec Ip Corporation | Robust machine-readable symbology 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 |
WO2001093187A2 (en) * | 2000-05-30 | 2001-12-06 | Digital: Convergence Corporation | 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 |
WO2005029398A1 (ja) * | 2003-09-17 | 2005-03-31 | Tsube Sangyou K.K. | エレメントセルの組み合わせによる認識コード及び認識コードシート |
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 |
WO2011006201A1 (en) * | 2009-07-14 | 2011-01-20 | Dpid Pty. Ltd. | Apparatus and method for managing register of unique identifiers |
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 |
EP3285417B1 (de) * | 2015-05-19 | 2020-03-11 | Nippon Telegraph And Telephone Corporation | Optisches kommunikationssystem und optisches kommunikationsverfahren |
JP7419084B2 (ja) * | 2020-01-28 | 2024-01-22 | 東芝テック株式会社 | リーダ、方法、プログラム |
CN115034346B (zh) * | 2022-06-01 | 2023-04-07 | 浙江省标准化研究院(金砖国家标准化(浙江)研究中心、浙江省物品编码中心) | 基于gs1编码的产品唯一赋码方法、装置、存储介质 |
Family Cites Families (19)
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 |
DE3852153T2 (de) * | 1987-07-11 | 1995-05-11 | 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 |
-
1996
- 1996-08-21 US US08/701,304 patent/US5811781A/en not_active Expired - Fee Related
-
1997
- 1997-08-20 DE DE19736202A patent/DE19736202A1/de not_active Withdrawn
- 1997-08-21 JP JP9262602A patent/JPH10171913A/ja active Pending
- 1997-11-12 US US08/967,622 patent/US5939700A/en not_active Expired - Fee Related
Cited By (2)
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 |
---|---|
US5811781A (en) | 1998-09-22 |
JPH10171913A (ja) | 1998-06-26 |
US5939700A (en) | 1999-08-17 |
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 | |
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 | |
US5557092A (en) | Apparatus and method for 16-bit and numeric data collection using bar code symbologies | |
DE69027762T2 (de) | Zweidimensionale Bilderschrift hoher Dichtigkeit | |
US5619027A (en) | Single width bar code symbology with full character set utilizing robust start/stop characters and error detection scheme | |
DE69830383T2 (de) | Kodierverfahren | |
KR101046162B1 (ko) | 이차원코드 및 코드 해독방법, 본 이차원코드를 이용한 인쇄출판물 | |
JP2788521B2 (ja) | ラベル生成装置 | |
DE60125862T2 (de) | Strichkode Vorrichtung | |
DE3911702C2 (de) | ||
DE69619147T2 (de) | Streifenkodekodierungssystem mit Vierzustandskoden | |
US5126542A (en) | Dynamically variable machine readable binary code and method for reading and producing thereof | |
US4079482A (en) | Electronic data processing of Chinese characters | |
CN109446862A (zh) | 用于数字指纹代码的解码器和编码器 | |
CN101180631B (zh) | 印刷介质特征编码与解码 | |
DE69503807T2 (de) | Strichcode-decodierung | |
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 | |
DE3854759T2 (de) | Datenkode auf einem kodeblatt und vorrichtung zur erkennung des kodes. | |
CN106626845A (zh) | 灰度二维码的印制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8139 | Disposal/non-payment of the annual fee |