QR Code ist eine Abkürzung und steht für Quick Response Code. Grundsätzlich handelt es sich hierbei um ein zweidimensionales barcodeähnliches Symbol. Jeder QR Code enthält exakt drei charakteristische Finder Patterns (oben links, oben rechts und unten links), wie in Abbildung 1 zu sehen ist.
Abb. 1: digital -> analog -> digital
QR Codes werden zum Speichern digitaler Daten in analoger Form benutzt. Das bedeutet die Daten liegen zunächst digital (z.B. auf einem Computer) vor. Dann wird daraus ein QR Code generiert, welcher anschließend analog zwischengespeichert wird (z.B. auf Papier gedruckt). In dieser Form kann das Symbol einfach abfotografiert und ausgelesen werden. Dadurch werden die Daten wieder digitalisiert. In Abbildung 1 ist dieser Prozess mit der URL http://martinstoev.de skizziert.
QR Codes wurden 1994 von der Firma Denso, einer Tochtergesellschaft von Toyota, erfunden. Das primäre Ziel war die Automatisierung und Kontrolle der Produktion von Autobauteilen. Auf jedes Teil wurde so ein Symbol geklebt, welches dieses genauer spezifizierte. Mit dem richtigen Handscanner konnten ein Mitarbeiter die charakteristischen Merkmale eines Bauteils abfragen. (vgl. [WIKI])
Im Jahr 2000 wurde der QR Code mit der ISO/IEC18004:2000 offiziell zum Standard erhoben. Sechs Jahre später gab es einige Erweiterungen, die in der ISO/IEC18004:2006 festgehalten sind. Der Standard ist aber abwärtskompatibel geblieben.
Seit 1994 wurden viele verschiedene QR Code Modelle entwickelt (z.B. Model 1, Model 2, Micro QR usw.). Diese Arbeit befasst sich ausschließlich mit dem Model 2, weil es am weitesten verbreitet ist und auch alle wichtigen Aspekte des Standards enthält.
Es gibt viele verschiedene Möglichkeiten digitale Daten abzulegen, aber QR Codes stechen mit ihren Hauptfeatures (vgl. [SJ08] S. 62ff.) hervor. Die vier am häufigsten genannten Leistungsmerkmale sind:
Abb. 2: Rotiertes, verzerrtes und verschmutztes Symbol
Obwohl es sich bei QR Codes um zweidimensionale Symbole handelt, werden sie durch die Finder Patterns sehr schnell gefunden. Das bedeutet die Position in einem Bild wird schnell und korrekt ermittelt. Zusätzlich ist die Suche im Bild von der Orientierung (bzw. Drehung) des Symbols unabhängig. Wenn der QR Code über Kopf steht, wird er trotzdem richtig erkannt.
Selbst wenn das zu decodierende Bild, wie in Abbildung 2, verformt oder verzerrt ist, können die Daten oft trotzdem ausgelesen werden. Beispiele hierfür sind QR Codes auf unebenen Flächen oder schräg fotografierte Symbole.
QR Codes können, abhängig vom gewählten Fehlerkorrektur Niveau, auch bei bis zu 30% Verschmutzung noch korrekt erkannt werden. Dabei wird die Nachricht mit Hilfe der eingebauten Fehlerkorrekturmaßnahmen wiederhergestellt.
Das Masking unterdrückt bestimmte Muster im Code. Beispielsweise ist es für die Erkennung notwendig das Finder Pattern Muster 1:1:3:1:1 in den Daten zu unterdrücken. Außerdem ist es von Vorteil, wenn ein Symbol keine großen weißen oder schwarzen Flächen enthält. Eine XOR-Maske garantiert diese Eigenschaften, sodass das Symbol schnell und sicher erkannt wird.
Im QR Code Standard sind mehrere Zeichensätze definiert. Da die QR Codes in Japan entwickelt wurden, gibt es sogar den Kanjii Zeichensatz (japanische Schrift). Dadurch können die Zeichen in den Symbolen sehr effizient abgespeichert werden.
Selbstverständlich sind QR Codes nicht die einzige Möglichkeit kostengünstig digitale Daten in analoger Form abzulegen. Es gibt auch andere Code Standards.
Es wird zwischen 1-D und 2-D Codes unterschieden. Zu den eindimensionalen Codes gehört unter anderem der Code-128, also der übliche Barcode, der sich auf sämtlichen Produkten im Supermarkt befindet. Hier gibt es einen Tradeoff zwischen Datendichte und Komplexität. Zum einen haben zweidimensionale Codes eine höhere Datendichte, aber dies führt gleichzeitig auch zu komplexeren Strukturen und Mustern, die erkannt werden müssen. (vgl. [QRC])
Der Unterschied zwischen allgemeinen 2-D Codes und QR Codes liegt in den schon erwähnten Hauptfeatures der QR Codes. Letztere können schnell erkannt und decodiert werden, ihre Orientierung ist irrelevant und sie verfügen über eine hohe Fehlerkorrekturrate. Weitere Vorteile sind die leichte Erweiterung für eigene Zwecke, auf die später noch genauer eingegangen wird.
In den letzten Jahren haben QR Codes eine weite Verbreitung im Segment der mobilen Endgeräte gefunden. Dies hat zwei Hauptgründe, zum einen wird in vielen Handys eine gute Kamera verbaut und zum zweiten gibt es für alle gängigen Plattformen (kostenlose) QR Code Reader Software (z.B. Quickmark Reader, BeeTagg Reader, Kaywa Reader, Neo Reader, usw.) für das Auslesen der Symbole. Es gibt auch viele kostenfreie QR Code Generatoren im Internet (z.B. ZXing). So ist es für jeden ohne großen Aufwand möglich den QR Code Standard zu nutzen.
Interessant wird es, sobald der Decodingprozess erweitert wird, sodass die Daten im QR Code mit der richtigen Applikation geöffnet werden. Beispielsweise wird eine URL sofort im Browser geöffnet oder Zugangsinformationen über drahtlose Netzwerke werden sofort übernommen um sich ins WLAN zu verbinden.
Das Ziel der Nutzung von QR Codes im Mobile Computing Segment ist die Minimierung des Aufwandes auf Seiten des Nutzers um analoge Informationen ins Gerät zu übertragen. Anstatt die Daten manuell abzutippen, wobei Flüchtigkeitsfehler unvermeidlich sind, können die Informationen zuverlässig abfotografiert und decodiert werden.