Wie QR-Codes funktionieren

Auch genannt: QR-Code-Kodierung, QR-Code-Dekodierung, Aufbau eines QR-Codes

Definition

Ein QR-Code wandelt Daten in Codewörter um, ergänzt eine Reed-Solomon-Fehlerkorrektur und legt die Bits in ein Raster rund um feste Muster, mit denen eine Kamera den Code findet, entzerrt und liest.

Von den Daten zum Muster

Zuerst wird ein Kodierungsmodus gewählt, der zu den Daten passt: numerisch, alphanumerisch, Byte oder Kanji. Der Encoder wandelt die Daten in Bits um, teilt sie in 8-Bit-Codewörter auf und fügt Reed-Solomon-Fehlerkorrekturcodewörter in der gewählten Stufe hinzu. Dann wählt er die kleinste Version, in die alles passt.

Die Codewörter werden im Zickzack in das Raster gelegt, wobei die festen Muster übersprungen werden. Zum Schluss wendet der Encoder eines von acht Maskenmustern an, um große leere Flächen oder verwirrende Formen aufzubrechen, und hinterlegt Maske und Fehlerkorrekturstufe in den Formatinformationen.

  • Kodierungsmodus wählen
  • Daten kodieren und Fehlerkorrekturcodewörter hinzufügen
  • Version (Größe) wählen
  • Such-, Takt- und Ausrichtungsmuster platzieren
  • Datenmodule einsetzen
  • Die beste von acht Masken anwenden und die Formatinformationen schreiben

Vom Kamerabild zu den Daten

Die Dekodierung läuft in umgekehrter Reihenfolge ab. Der Scanner findet die drei Suchmuster, deren Verhältnis von 1:1:3:1:1 aus Dunkel und Hell in den meisten Bildern auffällt, und legt mit ihnen sowie den Takt- und Ausrichtungsmustern das Raster fest. Er liest die Formatinformationen, entfernt die Maske und sammelt die Codewörter ein.

Die Reed-Solomon-Dekodierung repariert anschließend falsch gelesene Codewörter, bis zur Grenze der Fehlerkorrekturstufe. Ist zu viel beschädigt, schlägt das Lesen fehl, statt falsche Daten zu liefern. Deshalb erzeugen QR-Codes selten verstümmelte Ergebnisse.

Warum Größe und Kontrast wichtig sind

Jeder Schritt hängt davon ab, dass die Kamera dunkle von hellen Modulen unterscheiden kann. Kleine Module, schwacher Kontrast, Spiegelungen, Unschärfe oder eine fehlende Ruhezone bringen mehr Module in Zweifel, und die Fehlerkorrektur kann nur begrenzt viel auffangen. Kurze Daten, starker Kontrast und ein freier Rand machen dem Decoder die Arbeit am leichtesten.

Häufig gestellte Fragen

Woher weiß ein Smartphone, wo der QR-Code ist?

Es sucht die drei großen quadratischen Suchmuster in den Ecken. Ihr charakteristisches Verhältnis von 1:1:3:1:1 erlaubt es dem Scanner, sie aus jedem Winkel zu finden und die Ausrichtung zu bestimmen.

Warum haben QR-Codes ein Maskenmuster?

Die Maske kehrt Module nach einem festen Muster um, damit der Code keine großen einfarbigen Flächen und keine Formen hat, die wie Suchmuster aussehen. Der Encoder probiert alle acht Masken aus und behält die, die sich am zuverlässigsten lesen lässt.

Lässt sich ein QR-Code auf dem Kopf lesen?

Ja. Die Suchmuster verraten dem Scanner die Ausrichtung, daher lässt sich ein QR-Code in jeder Drehung lesen.

Quellen und Normen

Alle Begriffe