Erklärung
Was ist ein QR Code?
Ein QR Code ist ein zweidimensionaler Barcode, der Text in einem Raster aus schwarzen und weißen Quadraten speichert. Dieser Ratgeber zerlegt einen — die Eckmarken, den Datenbereich, die Reparaturinformation — und erklärt, warum dieser Aufbau entscheidet, wie viel hineinpasst.
Ein QR Code ist ein Raster aus schwarzen und weißen Quadraten, das Text speichert. Mehr nicht. Er ist kein Link, kein Bild und kein Konto irgendwo: Er ist eine Art, Zeichen so zu schreiben, dass eine Kamera sie lesen kann.
Die Abkürzung steht für Quick Response, schnelle Antwort, und beschreibt das Problem, für das er erfunden wurde. 1994 zwang ein gewöhnlicher Barcode in der Fabrik von Denso Wave dazu, das Lesegerät an den Strichen auszurichten, und es passten nur rund zwanzig Zeichen hinein. Das Team um Masahiro Hara suchte etwas, das sich aus jedem Winkel lesen ließ und deutlich mehr speicherte. Die Lösung war der Schritt von einer Dimension zu zweien: statt Striche unterschiedlicher Breite ein Gitter, in dem jede Zelle — jedes Modul — ein Bit trägt.
Was die einzelnen Teile des Bildes sind
Wer einen QR Code aus der Nähe ansieht, erkennt, dass nicht alles zufällig ist. Es gibt Bereiche mit einer bestimmten Aufgabe.
Die drei großen Quadrate in den Ecken sind die Positionierungsmuster. Sie sind das Erste, wonach ein Lesegerät sucht, und ihr Ringverhältnis — schwarz, weiß, schwarz im Verhältnis 1:1:3:1:1 — ist ein Muster, das in einer Fotografie kaum je zufällig entsteht. Findet das Handy drei davon, kennt es drei der vier Ecken und damit den Winkel, in dem der Code steht. Deshalb lässt sich ein Code schief oder kopfüber genauso scannen: Die Ausrichtung ergibt sich daraus, welche Ecke kein Quadrat hat.
Das kleine Quadrat nahe der vierten Ecke ist das Ausrichtungsmuster. Es korrigiert die Verzerrung, wenn der Code auf einer gewölbten Fläche sitzt oder schräg fotografiert wird. Kleinere Codes haben es nicht, weil sie es nicht brauchen; ab einer gewissen Größe erscheinen mehrere.
Die beiden Linien aus abwechselnden Modulen zwischen den Eckquadraten sind die Taktmuster. Sie teilen dem Lesegerät die genaue Modulgröße mit, und erst das erlaubt es, das Gitter korrekt zu unterteilen, auch wenn das Foto etwas unscharf ist.
Der Rest sind Daten und Fehlerkorrektur, gemischt nach einer Reihenfolge, die die Norm festlegt.
Wie aus Text Quadrate werden
Der Vorgang hat drei Schritte, und es lohnt sich, sie zu verstehen, weil sie fast alle praktischen Entscheidungen erklären.
Zuerst wird der Text in Bits kodiert, im kompaktesten Modus, der dafür taugt. Stehen nur Ziffern darin, braucht jedes Zeichen rund 3,3 Bit. Kommen Großbuchstaben und einige Symbole vor, 5,5 Bit. Kommen Kleinbuchstaben vor, wird in den Byte-Modus gewechselt, und jedes Zeichen kostet acht Bit oder mehr.
Für das Deutsche hat das eine konkrete Folge, die anderswo nicht auftritt:
Umlaute und das ß kosten je zwei Bytes. Ein Netzname wie Bäckerei Grün ist
im kodierten Inhalt spürbar teurer als Baeckerei Gruen, und ein Text mit vielen
Umlauten erzeugt ein merklich dichteres Muster als derselbe Text ohne. Das ist
kein Grund, deutsche Rechtschreibung aufzugeben — aber es ist der Grund, warum
ein deutscher Inhalt bei gleicher Zeichenzahl ein feineres Muster ergeben kann
als ein englischer.
Zweitens wird die Fehlerkorrekturinformation mit einem Verfahren namens Reed-Solomon ergänzt. Das ist kein Zusatz: Es ist das, was einen Code funktionsfähig hält, wenn ein Teil verdeckt, zerkratzt oder schlecht gedruckt ist. Es gibt vier Stufen — L, M, Q und H —, die etwa 7 %, 15 %, 25 % und 30 % des Inhalts wiederherstellen. Je höher die Stufe, desto mehr Module belegt die Reparatur und desto weniger Platz bleibt für Daten.
Drittens wird alles in einem Zickzackweg im Gitter platziert und erhält eine Maske: ein Muster, das mit den Daten verrechnet wird, um große einfarbige Flächen oder Formen zu vermeiden, die den Eckquadraten ähneln. Der Kodierer probiert alle acht möglichen Masken durch und behält die mit dem ausgewogensten Bild. Deshalb können zwei Codes mit demselben Inhalt verschieden aussehen, wenn sie von verschiedenen Werkzeugen erzeugt wurden: Beide sind richtig.
Warum Sie die Größe nicht bestimmen
Die Zahl der Module pro Kante ist keine Vorliebe, sondern eine Folge. Das Format hat vierzig Versionen: Version 1 misst 21×21 Module, und jede folgende fügt vier Reihen und vier Spalten hinzu, bis Version 40 mit 177×177. Der Kodierer wählt die kleinste Version, in die Ihre Daten mit der gewünschten Korrekturstufe passen.
Daraus folgen die zwei nützlichsten Faustregeln, die es zu QR Codes gibt:
- Weniger Text, gröberer Code. Und grobe Module sind die, die einen kleinen Druck, eine mittelmäßige Kamera und ein saugendes Papier überstehen.
- Mehr Fehlerkorrektur, feinerer Code. Der Wechsel von M auf H kann bei gleichem Inhalt die Modulzahl deutlich erhöhen, also lohnt er sich nur, wenn Sie tatsächlich Beschädigung erwarten oder einen Teil mit einem Logo verdecken.
Was in der Sekunde des Scannens passiert
Wenn Sie die Kamera draufhalten, erledigt das Handy all das in wenigen Millisekunden: Es findet die drei Quadrate, leitet die Ausrichtung ab, berechnet die Modulgröße über die Taktmuster, korrigiert die Perspektive, liest die Bits, entfernt die Maske, wendet die Fehlerkorrektur an, um Fehlendes zu reparieren, und erhält den ursprünglichen Text.
Und dann — und erst dann — entscheidet es, was mit diesem Text geschehen soll.
Beginnt er mit https://, bietet es an, ihn zu öffnen. Beginnt er mit WIFI:,
bietet es die Verbindung an. Beginnt er mit BEGIN:VCARD, schlägt es vor, einen
Kontakt zu speichern. Dieses Präfix ist der einzige Unterschied zwischen einem
„WLAN QR Code“ und einem „Link-QR-Code“: Die Quadrate arbeiten exakt gleich, was
sich ändert, ist, was darin geschrieben steht.
Das zu verstehen verhindert den häufigsten Fehler des Formats — nämlich zu erwarten, dass ein Code etwas tut, worum sein Inhalt gar nicht bittet.