2D-Code
# 2D-Code

Als 2D-Code (englisch 2D Barcode oder Matrix Barcode) werden optoelektronisch lesbare Schriften bezeichnet, die aus verschieden breiten Strichen oder Punkten und dazwischen liegenden Lücken mit möglichst hohem Kontrast bestehen. Im Gegensatz zu den eindimensionalen Strichcodes (englisch Barcode) sind die Daten nicht nur in einer Richtung (eindimensional) codiert, sondern in Form einer Fläche über zwei Dimensionen, wovon sich die Bezeichnung ableitet. Der Vorteil ist eine höhere Dichte an Nutzinformation. Der Begriff Code steht in diesem Zusammenhang nicht für eine Art von Verschlüsselung, sondern für Abbildungen von Daten in Symbolen.

Die Daten in einem 2D-Code werden mit optischen Lesegeräten, wie Kamera-Scannern, maschinell gelesen und elektronisch weiterverarbeitet. Verbreitete Anwendungen von 2D-Codes liegen unter anderem im Bereich der Logistik zur Warenkennzeichnung und zum Mobile-Tagging. Aufgrund der höheren Speicherdichte werden sie auch zur optischen Datenspeicherung verwendet. Beispielsweise werden digitale Audiosignale bei dem Lichttonverfahren zwischen den Perforationslöchern des Films in Form von 2D-Codes abgelegt.

## Einteilung

Die einfachste Form von 2D-Codes stellen die gestapelten eindimensionalen Strichcodes dar (englisch Stacked Barcode), die dabei in mehreren Zeilen angeordnet werden. Beispiele von gestapelten Strichcodes sind PDF417 und Codablock. Bei dem Postcode RM4SCC handelt es sich um keinen echten 2D-Code, allerdings wird zusätzliche Information in der zweiten Dimension über die Strichlänge kodiert.

Array-Codes erhalten die Information in Form einer rechteckförmig angeordneten Matrix wie der QR-Code, DataMatrix oder Aztec-Code. Punktcodes verwenden einzelne Punkte zur Informationscodierung.

Daneben existieren 2D-Codes, welche die Information in Kreisringen anordnen, wie beispielsweise der ShotCode. Der Übergang zu höherdimensionalen Codes mit drei oder mehr Dimensionen erfolgt beispielsweise über die verwendeten Farben, wie dies bei dem High Capacity Color Barcode (HCCB) der Fall ist.

## Gestapelte Codes

### Codablock

Codablock wurde von Heinrich Oehlmann als gestapelte Variante zu den Standard-Strichcodes Code39 und Code128 zwischen 1990 und 1994 in Deutschland entwickelt. Codablock lässt sich am anschaulichsten mit einem Zeilenumbruch eines Texteditors vergleichen. Sobald eine Zeile voll ist, wird die nächste umbrochen, wobei jeder Zeile die Zeilennummer und dem fertigen Block die Anzahl der Zeilen eingefügt wird. Am Ende folgt eine Prüfsumme.

### Code 49

Der Code 49 ist ein Barcode mit drei Fehlerkorrekturverfahren und erfüllt daher erhöhte Sicherheitsanforderungen gegenüber anderen Kennzeichnungsverfahren. Code 49 ist der erste mehrreihige Code und wurde 1987 für logistische Anwendungen in der Raumfahrt von David Allais bei Intermec (USA) entwickelt.

### PDF417

PDF417 steht für „Portable Data File“. Im Unterschied zu anderen gestapelten Barcodes wie Codablock, Code 16k oder Code49 erfordert er keine vollständige Zeilenkongruenz. Maximal 2000 Zeichen können in einem PDF417 gespeichert werden. Der PDF417 ist kein echter Matrix-Code wie der DataMatrix-Code. Es gibt einstellbare Fehlerkorrekturstufen (0–9). In Bezug auf Dateninhalt im Verhältnis zur Größe schneidet der PDF417 im Vergleich zu DataMatrix sehr schlecht ab. Sinnvoll (wenn auch nicht besonders effizient) ist der Einsatz im Zusammenhang mit Laserscannern, die keine Matrixsymbologien erfassen können. Sobald Kamerasysteme als Scanner verwendet werden, sind echte Matrix-Codes das Mittel der Wahl. Der PDF417 wurde ursprünglich von der Firma Symbol Technologies entwickelt. Inzwischen ist der PDF417 auch in einer ISO-/IEC-Norm spezifiziert.

## Matrix-Codes

Matrix-Codes konnten bisher nur mit CCD-Kamerascannern gelesen werden. Die Ausrichtung im CCD-Bild spielt praktisch keine Rolle, so dass die Lesung omnidirektional möglich ist. Mobiltelefone mit eingebauter Kamera können im Prinzip jeden Code lesen und interpretieren, da der Code als Bild aufgenommen und dann mittels Mustererkennung verarbeitet wird. Die Fähigkeit hängt somit ausschließlich von der benutzten Software (App) ab. Inzwischen haben einige Scannerhersteller Laserscanner entwickelt, die eine automatische x/y-Abtastung vornehmen und aus den gewonnenen Daten ein Bild erzeugen. Damit lassen sich Matrix-Codes auch mit Laserscannern erfassen. Diese haben etwas günstigere optische Eigenschaften als Kameras.

### QR-Code

QR-Code steht für Quick-Response-Code, ein in Japan sehr verbreiteter zweidimensionaler Code. Der QR-Code wurde 1994 von Denso (Japan) entwickelt. Er ist quadratisch und anhand seiner Suchhilfen, ineinander geschachtelten hellen und dunklen Quadraten in drei Ecken, leicht zu erkennen. Die Symbolelemente sind Quadrate, von denen sich mindestens 21×21 und maximal 177 × 177 Elemente im Symbol befinden. Es existieren vier Fehlerkorrektur-Stufen, die eine Rekonstruktion bei Beschädigungen von 7 % (Stufe L) bis zu 30 % (Stufe H) zulassen. Es können je Code mehr als 4000 alphanumerische Zeichen kodiert werden. Größere Inhalte lassen sich auf bis zu 16 einzelne Codes aufteilen. Der Micro-QR-Code nimmt bis zu 35 Ziffern auf.

Norm: ISO/IEC 18004

### DataMatrix

Beim DataMatrix-Code ergänzt die Reed-Solomon-Fehlerkorrektur um redundante Daten. Zwischen ca. 30 % und 60 % der Codewörter sind dadurch Codewörter für die Fehlerkorrektur. Damit können einige fehlerhafte Module korrigiert werden, ohne die Dekodierung zu gefährden. Der Code ist in der internationalen Norm ISO/IEC 16022 definiert. Diese 2D-Codeart gewinnt zurzeit stark an Bedeutung. Beispiele sind die elektronische Briefmarke (Internetmarke), Teilekennzeichnungen in der Automobilindustrie, der Luft- und Raumfahrtindustrie sowie in der Medizintechnik.

Wenn der DataMatrix-Code mit der Fehlerkorrekturmethode ECC200 und zusammen mit der GS1-Datenstruktur verwendet wird, dann nennt man das Resultat GS1 DataMatrix. (Die EAN-Organisationen haben sich alle in GS1 umbenannt, also wurde aus der CCG in Köln GS1 Germany.)

* Norm: ISO/IEC 16022
* GS1-Datenstruktur: ISO/IEC 15418 mit Referenz auf die ANSI MH10.8.2

### MaxiCode

Der MaxiCode wurde 1989 bei UPS zur schnellen Identifizierung, Verfolgung und Sortierung von Paketen entwickelt. Er enthält die UPS-Kontrollnummer, das Gewicht, die Serviceart der Sendung und die Adressangaben. Die konzentrischen Kreise in der Mitte (sog. Bull’s Eye) sollen Scannern helfen, den Code zu finden. Die einzelnen Punkte haben im Gegensatz zu anderen 2D-Codes eine hexagonale Form.

### Aztec-Code

Der Aztec-Code ist eine eigenständige 2D-Codeart. Er ist in der Norm ISO/IEC 24778 festgeschrieben. In der unten aufgeführten Literatur Band 2 ist der Aztec-Code ebenfalls beschrieben. Die Deutsche Bahn, die Österreichischen Bundesbahnen und die Schweizerischen Bundesbahnen verwenden diesen 2D-Code auf ihren Online-Tickets bzw. Mobile-Tickets (MMS) der DB. Des Weiteren verwendet auch die US-Regierung diesen Code zum Speichern der biometrischen Daten bei der Ein- und Ausreise (US-VISIT-Programm).

### JAB-Code

Der JAB-Code (von Just Another Bar Code) ist eine farbige Weiterentwicklung der zweidimensionalen Bar-Codes durch das Fraunhofer-Institut für Sichere Informationstechnologie. Wegen der zusätzlichen Farbcodierung besitzt er eine höhere Datendichte als die schwarz-weißen Codes.

### Han-Xin-Code

Der Han-Xin-Code ist ein Matrixcode, der von dem chinesischen AIM und GS1 (Article Numbering Center China, ANCC) entwickelt und 2007 als chinesischer Standard (GB/T 21049-2007) erklärt wurde.

Seine Besonderheit ist die Unterstützung von chinesischen Schriftzeichen. Auch daher ist diese Code-Form in Europa weitgehend unbekannt – er wird nur von wenigen Barcode-Leser-Apps unterstützt. In China ist der Code vor allem in der Industrie weit verbreitet. Der Quellcode ist Public Domain.

Der Han-Xin-Code ist normiert und in der ISO/IEC JTC1 SC31 erfasst.

## Punktcodes

Punktcodes, englisch Dotcode, sind zweidimensionale optische Codierungen mit hoher Informationsdichte und guter Lesesicherheit. Das Hauptanwendungsgebiet ist die Kennzeichnung von verschiedensten Materialien mit spezifischen Drucktechniken, insbesondere Präge- und Gravurtechniken. Ferner kann der Code sogar mit Bohrtechniken erstellt werden. Anwendungen: z. B. bei der Markierung von Achsen auf der Stirnseite. Der Code ist nicht identisch mit dem offenen Data Matrix Code nach ISO/IEC 16022 und DIN V 66401.

Beispiele für echte Dotcodes sind der Dot Code A oder der Snowflake Code oder der BeeTagg. Der DataMatrix Code gemäß ISO/IEC 16022 ist kein Dot Code. Es gibt aber Anwendungen und Beschriftungsverfahren, die in sogenannten DPM-(Direct Part Marking)-Verfahren (z. B. Dot Peening) auch mit DataMatrix Codes arbeiten. Die einzelnen Module dieser Dot-Codes, basierend auf Datamatrix, sind nicht mehr quadratisch und zusammenhängend, sondern rund und separiert. In industriellen Anwendungen zur Teilekennzeichnung ist dies inzwischen eine häufige Anwendung, die die echten Dotcodes verdrängt oder gar nicht erst zum Zuge kommen lässt.

Eigenschaften: kompakter Code, Flexibilität in der Anpassung von Informationen auf einer gegebenen Fläche; er ist omnidirektional lesbar.

## Sonderformen

### Composite-Codes

Composite-Codes, auch Doppelcode-Symbole genannt, setzen sich zusammen aus einem linearen Barcode (1D) und einem 2D-Code, der sich direkt darüber befindet.

### RM4SCC

Der englisch Royal Mail 4 State Customer Code RM4SCC ist ein alphanumerischer Code (nur Großbuchstaben) aus Großbritannien, wird aber inzwischen auch in anderen Ländern (Schweiz, Österreich, Dänemark, Australien) verwendet. Der Weltpostverein hat auch entsprechende Spezifikationen herausgegeben.

Der RM4SCC ist an sich ein 1D-Code, nutzt aber die zweite Dimension in Form von unterschiedlich langen Strichen zur Codierung, um Bildverzerrungen, die durch die sehr hohen Druckgeschwindigkeiten in Postsortieranlagen beim Direktdruck gegeben sind, in größeren Bereichen als andere Codes zu tolerieren.

