emotion picture

Barcodes

Analog Digital oder Digital Analog

Das Nyquist-Shannon-Theorem ist eine der Grundlagen der modernen Informationstheorie. Das Theorem besagt, dass ein kontinuierliches, begrenztes Signal mit der doppelten maximalen Frequenz abgetastet werden muss, um die Information verlustfrei zu übertragen. Wenn Ihnen das wenig sagt, dann sind sie nicht alleine, die Konsequenzen dieser Theorie jedoch begegnen uns täglich. Beispielsweise immer dann, wenn wir zum Telefon greifen oder Musik auf unserem MP3-Player hören: mit welcher Bitrate muss ein analoges Signal (Schall) abgetastet und somit als Bitfolge übertragen werden, so dass es verlustfrei oder zumindest bei der Rekonstruktion erkennbar bleibt? Die Übertragung von Information innerhalb eines Medienbruchs beschäftigt auch uns als Spezialisten der Dokumentenverarbeitung andauernd. Wie können wir elektronische Informationen möglichst verlustfrei übertragen, ohne dass der Aufwand dazu ins uferlose steigt? Zeichenerkennung hat ihre Grenzen und der Aufwand, Fehler zu vermeiden, kann einem schier unendlich erscheinen. Es wurden jedoch schon früh Techniken gesucht und gefunden, um digitale Informationen nahezu verlustfrei auf Papier oder ähnliche Medien zu übertragen. Barcodes sind das Thema. Eine Technik, die mit ähnlichen physikalischen Grenzen zu kämpfen hat wie das bekannte Nyquist-Shannon-Theorem.

Wer hat es erfunden?
Nein, dieses Mal waren es nicht die Schweizer. Obwohl, das kleine Land mit den vielen Bergen war auch hier wieder der Zeit ein paar Jahre voraus. Denn die Ladenkette mit dem grossen orangefarbigen „M“ hat an der Geschichte des Barcodes mitgeschrieben. Schon 1968 war Migros weltweiter Protagonist beim Versuch, Artikelbezeichnungen elektronisch zu lesen. Leider erfolglos: die Technik und die eingesetzte Verfahren waren noch in den Kinderschuhen und so blieb es bei Registrierkassen, die in dieser Zeit noch nicht mal das Wechselgeld automatisch berechnen konnten. Das war auch noch die Zeit, wo alle Transaktion doppelt auf Papier geschrieben wurden und mit der Aufbewahrung der Verkaufsquittungen aus den Filialen Lagerhallen gefüllt wurden. Diese Zeiten sind schon lange vorbei. Und nachdem unsere Schwesterfirma Uptime bei Migros ihr elektronisches Archiv ARTS für die elektronische Archivierung aller Kassentransaktionen eingerichtet hat, werden nun täglich über 2 Millionen Kassenbelege archiviert. Mit über 6 Milliarden elektronisch gespeicherten Kassenzetteln eines der grössten elektronischen Archive der Schweiz.



Aber zurück zum Barcode. Was Migros 1968 noch nicht gelang, wurde im Land der unbegrenzten Möglichkeiten nachgeholt. Dort war auch der Einzelhändler etwa grösser, und so gelang es Wal-Mart in den 70er Jahren mit seiner Markmacht soviel Druck auf seine Lieferanten auszuüben, dass diese ihre Artikel neu mit einem Strichcode versahen, was die Prozesse im Einzelhandel revolutionierte. 1977 rückte Deutschland zaghaft nach, als der Wuppertaler Gewürzhändler Wichartz als erster ein Produkt mit einem Strichcode bedrucken liess. Und 1979 wurde das DACH komplett, als die Supermarktkette BILLA zwei Filialen in Wien mit Scannern ausrüstete und den 1976 eingeführten EAN-Code zu benutzen versuchte.

Informationen in neuen Dimensionen
Die allerersten Versuche einen Barcode, also einen elektronisch lesbaren Code aus Strichen, zu verwenden, gehen auf das Jahr 1949 zurück. Die Vielfalt, die heute zur Verfügung steht ist gross. Jetzt haben wird Barcodes, die weit mehr können als die einfachen Striche abzubilden. Moderne zweidimensionale Barcodes codieren Informationen nicht nur in der Horizontalen sondern auch in der Vertikalen, was die Informationsdichte markant erhöht. Heute existieren auch Versuche mittels Farbe eine dritte Dimension der Informationsdichte abzubilden und das binäre Verhalten von Schwarz und Weiss zu verlassen. Und in animierten Grafiken können auf der gleichen Fläche mehrere, zeitlich wechselnde Barcodes abgebildet werden, was zum Begriff der vierdimensionalen Barcodes führte. Ein Verfahren, das sich auf Papier jedoch nur schwer abbilden lassen wird.

Beginnen in der eindimensionalen Welt
Gebräuchlich sind heute eindimensionale Strichcodes, die Informationen in einer Richtung halten (meistens von links nach rechts). Immer mehr werden auch zweidimensionale Barcodes eingesetzt, um eine grössere Datenmenge relativ einfach und sicher auf das Medium Papier zu transportieren. Doch zurück zur eindimensionalen Welt. Alle 1D-Barcodes haben mindestens zwei oder mehr Strichbreiten. Meisten verfügen die Barcodes über eine gewisse Mindestgrösse, die nicht unterschritten werden darf. Bei Barcode-Typologien mit 2 Strichbreiten ist meist auch das Verhältnis zwischen dem dünnen und dicken Strich genormt, in der Regel im Verhältnis 1:2 oder 1:3. Bei Barcodes mit mehreren Strichbreiten sind die dickeren Balken meistens Vielfache des Dünnsten.

Je nach Barcode sind weitere Regeln zu beachten. So benötigen viele Barcodes eine sogenannte Ruhezone vor dem Barcode, also eine weisse Fläche, die es dem Barcodeleser erlaubt, Beginn und Ende des Barcodes zweifelsfrei zu erkennen. Dies gilt es zu beachten, wenn man eigene Barcodes erstellt. Denn nicht jeder selbst erzeugte Barcode ist wirklich lesbar. Es lohnt sich die Spezifikationen genau zu lesen. Vor allem bei Barcodes, die aus Schriftarten (Fonts) erstellt werden, müssen mögliche Fehler aus Skalierungen durch Tests frühzeitig erkannt und beseitigt werden. Die meisten eindimensionalen Barcodes verfügen zudem auch über ein Start- und Stoppzeichen, aus dem der Barcodetyp und die Leserichtung erkennbar werden.

Die gebräuchlichsten eindimensionalen Barcodetypen

Die Handelsstrichcodes (EAN, UPC, IAN und JAN) sind die gebräuchlichsten. Diese Codes sollten aber nur im Umfeld von Artikelbezeichnungen eingesetzt werden. Denn die Bezeichnungen sind ab diesem Jahr weltweit als sogenannte Global Trade Item Number (GTIN) normiert. Setzt man diesen Typ selbst für die Dokumentverarbeitung ein, ist die Gefahr einer Verwechslung naturgemäss gegeben. In der Welt der Dokumentverarbeitung sind diese Codes darum nicht zu empfehlen. Das gleiche Prinzip gilt auch für Unterarten des EAN bzw. GTIN Codes, wie die ISBN für Buchbezeichnungen und die ISSN für die Zeitschriftenkennzeichnung.

Im Bereich der Dokumentenverarbeitung treffen wir darum meisten folgende Barcodetypen an: 2/5 Interleaved (2/5i), Code 39 und Code 128.

2/5 Interleaved (2/5i)
2/5i kann nur numerische Zeichen codieren, dies aber mit einer hohen Dichte, da sowohl die Balken als auch die Lücken Zeichen codieren. 2/5i kann darum nur mit einer geraden Zahl von Ziffern verwendet werden. Da auch nur ein Teil des Barcodes gelesen werden kann, sollte man die zu codierende Zahl immer mit einer selbst erstellten Prüfziffer, also ein Art Quersumme der codierten Ziffern, verwenden oder eine von vornherein bekannte und fixe Anzahl von Ziffern definieren, um falsche oder Teillesungen zu vermeiden.

Code 39
Code 39 ist ein älterer, alphanumerischer Code und vor allem in der Industrie weit verbreitet. Als Standard-Code kann er Ziffern, Grossbuchstaben und einige Sonderzeichnen beinhalten. Das *-Zeichen darf jedoch nicht codiert werden, da es Start und Stopp des Barcodes kennzeichnet. In der erweiterten Version kann er zusätzlich Kleinbuchstaben im ganzen ASCII-Zeichensatz codieren. Im erweiterten Satz sind jedoch pro zu codierendem Zeichen 2 Barcodezeichen notwendig, was die Informationsdichte stark reduziert.

Code 39 wurde deshalb so erfolgreich von der Industrie adaptiert, weil er hohe Drucktoleranzen zulässt. Was beim Drucken gut ist, muss nicht unbedingt gut beim Scannen sein. Die teilweise sehr feine Strickstruktur setzt eine hohe Scannauflösung voraus, damit der Barcode fehlerfrei gelesen werden kann. Dies führt in Scann- und Erfassungslösungen immer wieder zu Erkennungsproblemen, da die teilweise sehr feine Linienstruktur vor allem bei eher einfacher aufgebauten Scannern ohne intelligente Bildverbesserungsroutinen zu Treppenbildungen oder Lücken führen kann. Dies beeinflusst das Leseergebnis negativ.

Unser Favorit: Code 128
Code 128 löst Code 39 immer mehr ab. Die Gründe dafür liegen in der höheren Flexibilität der Informationscodierung und der hohen Informationsdichte. Der Barcode kann so lang wie benötigt sein. Alle ASCII-Zeichen können darin codiert werden. Gleichzeitig benötigt d Code 128 dafür den geringsten Platz für Zeichenlängen von 6 und mehr Zeichen. Dieser Barcode verbindet viele Vorzüge und ist auch für Scannlösungen gut lesbar, was uns dazu bringt diesen netten Typen etwa genauer zu betrachten.

Code 128 ist ein verschachtelter Code, in dem sowohl die Striche als auch die Lücken Information tragen. Striche und Lücken werden in der Breite (Einheit) um den Faktor 1 bis 4 variiert, was zu seiner hohen Informationsdichte führt. Jedes Zeichen im Code 128 besteht fix aus 11 schwarzen oder weissen Einheiten. Eine Kombination von 3 schwarzen und 3 weissen Balken in unterschiedlicher Breite ergibt das Zeichen. Die Summe der Einheiten ist dabei immer 11. (So bildet beispielsweise die Kombination 1x schwarz, 4x weiss, 2x schwarz, 1x weiss, 1x schwarz und 2x weiss das Zeichen i.) Das Stopp-Zeichen des Barcodes besteht als Einziges aus 13 Einheiten. Die Kombination von 6 Modulen der Breiten 1 bis 4 zur Summe 11 ermöglicht die Darstellung von genau 106 Zeichen.

Der Code wird von 3 speziellen Start-Zeichen (mit 11 Balken) begleitet, die die Bedeutung der Balken noch um den Faktor 3 erhöhen. Daraus ergeben sich die 3 128-Codetypen, nämlich A, B und C. Ein Wechsel zwischen den Typen ist auch innerhalb eines Barcodes möglich, was aber die Zahl der zusätzlich benötigten Start-Zeichen erhöht.

Code 128 ist vor allem bei der Abbildung einer geraden Zahl von Ziffern hoch effizient. Der Typ C des Barcode 128 codiert nämlich in einem Zeichen immer ein Ziffernpaar von 00 bis 99. Eine 6, 8, 10, 12stellige usw. Zahl kann somit extrem dicht und effizient in einem Barcode hinterlegt werden, was ihn im produktiven Einsatz zu unserem Favoriten macht.

Und immer mehr
Auch wenn Code 128 schon grosse Zahlen oder lange Zeichenketten effizient codieren kann, es bleibt meist nur ein einfacher Verweis auf externe Informationen. So wird der Buchhaltungsbeleg mit einem Barcode versehen, um ihn über einen Schlüssel wieder auffindbar zu machen usw. Einfacher wäre es, wenn der Barcode selber schon alle Informationen zum Beispiel einer Rechnung enthalten würde, so dass man sich die mühsame Datenerfassung am Bildschirm und danach die Referenzierung über die Barcodenummer ersparen könnte. Also warum nicht auf der Basis der bestehenden Barcodes einen Datencontainer entwickeln, der alle Informationen in lesbarer Form enthält?

1984, im berühmten Orwell Jahr, begann die Ära dieser Datencontainer auf Papier, als die Automotive Industry Action Group (AIAG) einen Anwendungsstandard publizierte, bei dem Fabrikationsteile mit Etiketten bestehend aus vier zusammengefügten Code 39-Barcodes ausgezeichnet wurden. Diese gestapelten Barcodes enthielten die Teilenummer, die Anzahl der Teile, den Lieferanten und die Seriennummer.

Der erste echte zweidimensionale Barcode entstand 1988 durch die Firma Intermec Corporation mit der Einführung des Codes 49. Die meisten der weiteren, kurz danach eingeführten Barcodes waren Abwandlungen von gestapelten eindimensionalen Barcodes. Echte zweidimensionale Barcodes (so genante Matrix-Codes) sind eine andere Entwicklung. Hier codieren die Daten den dargestellten Wert durch die Positionen von schwarzen und weissen Punkten innerhalb einer Matrix.

Masse oder Qualität oder beides?
Ein entscheidender Vorteil der eindimensionalen Barcodes ist, dass sie in sich selber redundant sind. Damit wird dem Problem des Informationsverlusts wirkungsvoll begegnet, womit wir eine heuristische Umsetzung des Nyquist-Theorems der Dokumentenverarbeitung haben. Denn egal, auf welcher Höhe der Barcode gelesen wird, die Information ist die Gleiche. Je grösser die Höhe des Barcode ist, umso höher ist die Wahrscheinlichkeit der richtigen Lesung. So können Verschmutzung und Beschädigungen tolerant verarbeitet werden. Dieser Vorteil schwindet bei Matrix oder gestapelten Barcodes, da ohne die Schaffung anderer Redundanzen ein verlorener oder verschmutzter Bereich automatisch Datenverlust bedeutet. Im schlimmsten Fall wird die ganze Information inkonsistent und damit unbrauchbar. Damit stellt sich der zweidimensionale Barcode (2D-Barcode) in eine Reihe mit den Zeichen unseres Alphabets, die in der horizontalen und vertikalen Anordnung von Punkten und Strichen ebenfalls eine Information darstellen.

Durch den Verlust der Redundanz in einer Dimension, wie sie noch beim alten Strichcode vorhanden war, müssen bei 2D-Barcodes andere Redundanzen geschaffen werden, um Informationen dicht und verlustfrei zu transportieren. Ein Fehler in der Lesung ist jedoch bei beinahe allen 2D-Barcodes einfach erkennbar, da die Barcodes Prüfinformationen enthalten, wie zum Beispiel irgendeine Form von Quersummen. Das grosse Problem der Erkennung alphanumerischer Zeichen, nämlich die Substitution eines Zeichens durch ein anderes, ist damit umgangen. Das Problem der Rückweisung jedoch, also der unsicheren oder nicht geglückten Erkennung, bleibt bestehen. Und ist bis heute auch nicht wirklich gelöst. Denn das äquivalente Nyquist-Theorem der Zeichenerkennung ist immer noch nicht gefunden und beinahe alle 2D-Barcodes lösen das Problem mehr oder minder erfolgreich mit einer redundanten Informationshaltung. Einfach gesagt ist ein 2D-Barcode in der Regel nicht ein Barcode sondern viele gleiche Barcodes, die durch Repetition und Verteilung der Informationen, die möglichen Erkennungsprobleme zu umgehen versuchen.

Die Qual der Wahl
Heute existieren über 70 verschieden 2D-Barcodes und Varianten mit ihren jeweiligen Stärken und Schwächen. Hier eine kleine Auswahl der im Bereich der Dokumentenverarbeitung am häufigsten Verwendeten. Alle hier beschrieben Barcodes werden auch von der 2D-Barcodelesung in CaptureSuite unterstützt.

PDF-417
PDF-417 ist ein gestapelter 1D-Barcode und wurde 1991 von der Firma Symbol Technologies auf den Markt gebracht. PDF steht für Portable Data Fill und der Code besteht aus 17 Modulen, von denen jeder 4 Balken und Zwischenräume enthält (darum der Begriff 417). Der Aufbau des Codes erlaubt es, zwischen 1000 und 2000 Zeichen pro Barcode zu hinterlegen, was mit der Abbildung der entsprechenden Redundanz zu 100 bis 340 Zeichen führt. Der Barcode wird durch eine Start- und Stopp-Gruppe begrenzt. Die Spezifikationen von PDF-417 sind frei zugänglich, was ihm zu einer hohen Verbreitung verhalf. Als Abwandlung des Standards existiert noch eine Micro-PDF-417 Spezifikation, die zum Einsatz kommt, wenn nicht so grosse Flächen für die Informationsabbildung zur Verfügung stehen (mit entsprechender Einschränkung bei den hinterlegten Informationen).

QR Code
Der QR Code (Quick Response Code) ist ein echter 2D- bzw. Matrix-Barcode, der von der Firma Nippondenso ID Systems entwickelt wurde. Auch die Spezifikationen von QR Codes sind wie bei PDF417 frei und ohne Lizenzgebühren zugänglich. Der QR Code ist quadratisch und kann einfach an den verschachtelten schwarzen und weissen Vierecken in 3 der 4 Ecken des Barcodes erkannt werden. Der Code enthält maximal 177 viereckige Module, die bis zu 7366 numerische Zeichen oder 4464 alphanumerische Zeichen enthalten können. Wie aus dem Namen des Erfinders zu erwarten: der QR Code kann auch japanische Kanji- and Kana-Zeichen abbilden. Aufgrund des einfachen Layouts der Barcode-Begrenzungen kann der QR Code recht gut durch Scann-Anwendungen gelesen werden und wird heute auch vielfach zur Informationsreferenzierung in der Werbung, zum Beispiel mittels Mobiltelefonen, verwendet.

Code 1 (Code One)
Code 1 wurde 1992 von Ted Williams erfunden und ist der erste lizenzfrei verwendbare 2D-Barcode. Code 1 benutzt eine Anordnung von vertikalen und horizontalen Balken, die durch die Mitte des Barcodes verlaufen. Der Barcode bildet ASCII-Zeichen, spezielle Funktionszeichen und binäre Daten ab und verfügt über eine Fehlererkennung. Code 1 Barcodes können in acht unterschiedlichen Grössen erstellt werden (Code 1A bis 1H). Die Bandbreite reicht von 13 alphanumerischen Zeichen in der Variante 1A bis hin zu 2218 Zeichen oder 3550 binären Informationen in der Version 1H. Der Barcode lässt sich in unterschiedlichen Formen abbilden (z. B. als L, U oder T Form). Code 1 wird heute hauptsächlich im medizinischen Umfeld und der Transportbranche, zum Beispiel für die Sortierung von Containern, eingesetzt.

Datamatrix
Datamatrix von Siemens ist ein interessanter 2D-Matrix-Code. Er wurde entwickelt, um viele Informationen in hoher Dichte zu transportieren. Der Barcode ist sehr hoch skalierbar und kann theoretisch bis zu 500 Millionen Zeichen auf einer Fläche von ca. 6,5 Quadratzentimeter abbilden. Die praktische Dichte im Bereich der Dokumentenverarbeitung wird jedoch von der Auflösung der eingesetzten Drucker und Scanner eingeschränkt. Der Barcode hat weitere interessante Merkmale. Die Informationen werden nach ihrer absoluten Position gelesen, was sie unempfindlicher gegenüber Druckproblemen macht. Der Code hat ein sehr hohes Mass an Redundanz, bei der die Information auf den ganzen Barcode mehrfach verteilt wird. Ein Datamatrix-Barcode kann auch noch gelesen werden, wenn Teile des Barcodes fehlen, beispielsweise abgerissen wurden oder verschmiert sind.

Jeder Barcode hat zwei berührende schwarze Kanten, während die jeweils gegenüberliegenden Kanten als regelmässige Abfolge von schwarzen und weissen Quadraten gedruckt werden. Dieses Muster erlaubt es die Orientierung und die Auflösung des Barcodes zu erkennen. 

Datamatrix existiert in zwei Versionen (ECC-000 bis ECC-140 und ECC-200). ECC-200 ist die aktuellere Version und verwendet ein sehr sicheres, nämlich das sogenannte Reed-Solomon Fehlerkorrekturverfahren.

Data Matrix besitzt eine variable, rechteckige Grösse in Form einer Matrix. Die Matrix besteht minimal aus einer quadratischen Anordnung von 10x10 Symbolelementen und maximal aus 144x144 Symbolelementen. Darüber hinaus ist auch eine rechteckige Darstellung von 8x18 und 16x48 Symbolelementen möglich. Es können 2334 ASCII-Zeichen (7 Bit) oder 1558 der erweiterten ASCII-Zeichen (8 Bit) oder 3116 Ziffern in der Maximalgrösse verschlüsselt werden. 

Folgende Eigenschaften machen Datamatrix zu unserem Favoriten bei den zweidimensionalen Barcodes: es ist ein sehr kompakter Code mit hoher Informationsdichte. In der Ausgabe ECC-200 ist ein sehr guter Fehlerkorrekturalgorithmus eingebaut. Auch bei einer Beschädigung von bis zu 25 Prozent des Barcodes, z. B. durch schlechte Druckqualität, ist der Code noch rekonstruierbar.

Weitere Informationen
Falls Sie mehr über den Einsatz von Barcodes wissen möchten oder Ihren Informations- und Dokumentkreislauf mit unseren Spezialisten besprechen möchten, so nehmen Sie noch heute mit uns Kontakt auf.

linkpfeilzurück zur Übersicht