Wie funktionieren QR-Codes? Aufbau, Technik und Funktionsweise
QR-Codes begegnen uns überall: auf Produktverpackungen, Plakaten, Visitenkarten und Speisekarten. Doch wie funktionieren QR-Codes eigentlich? Dieser Artikel erklärt die Technik hinter den schwarz-weißen Quadraten, vom grundlegenden Aufbau bis zur intelligenten Fehlerkorrektur.
Die Geschichte des QR-Codes
Der QR-Code wurde 1994 von Masahiro Hara bei Denso Wave entwickelt, einer Tochtergesellschaft des japanischen Automobilkonzerns Toyota. Das ursprüngliche Ziel: eine schnellere und zuverlässigere Methode zur Verfolgung von Fahrzeugteilen in der Produktion.
Die Abkürzung QR steht für "Quick Response", also "schnelle Antwort". Im Gegensatz zu herkömmlichen Barcodes sollte der neue Code deutlich mehr Informationen speichern und sich aus jedem Winkel scannen lassen.
Warum der QR-Code frei verfügbar ist
Denso Wave traf eine weitreichende Entscheidung: Das Unternehmen hält zwar das Patent am QR-Code, verzichtet aber auf dessen Ausübung. Dadurch kann jeder die Technologie kostenlos nutzen. Diese Offenheit hat maßgeblich zur weltweiten Verbreitung beigetragen.
Der Aufbau eines QR-Codes
Ein QR-Code besteht aus mehreren funktionalen Bereichen, die zusammen das Scannen und Dekodieren ermöglichen. Jedes Element erfüllt eine spezifische Aufgabe.
Positionsmarkierungen (Finder Pattern)
Die drei großen Quadrate in den Ecken sind das auffälligste Merkmal jedes QR-Codes. Diese Positionsmarkierungen ermöglichen es dem Scanner, den Code sofort zu erkennen und seine Ausrichtung zu bestimmen.
Jede Markierung besteht aus drei ineinander verschachtelten Quadraten:
- Äußeres schwarzes Quadrat (7x7 Module)
- Weißer Rahmen (5x5 Module)
- Inneres schwarzes Quadrat (3x3 Module)
Das Verhältnis von schwarz zu weiß zu schwarz beträgt immer 1:1:3:1:1. Dieses einzigartige Muster kann der Scanner aus jeder Richtung identifizieren.
Ausrichtungsmuster (Alignment Pattern)
Bei größeren QR-Codes (ab Version 2) erscheinen zusätzliche kleinere Quadrate im Datenbereich. Diese Ausrichtungsmuster helfen dem Scanner, Verzerrungen auszugleichen. Je größer der Code, desto mehr dieser Muster sind vorhanden.
Ein QR-Code der Version 7 enthält beispielsweise 6 Ausrichtungsmuster, während Version 40 (die größte Version) ganze 46 dieser Muster aufweist.
Timing-Pattern
Zwischen den Positionsmarkierungen verlaufen abwechselnd schwarze und weiße Module in einer horizontalen und einer vertikalen Linie. Diese Timing-Pattern helfen dem Scanner, die genaue Position jedes einzelnen Moduls im Raster zu bestimmen.
Formatinformationen
Direkt neben den Positionsmarkierungen befinden sich die Formatinformationen. Dieser Bereich speichert zwei wichtige Parameter:
| Information | Funktion |
|---|---|
| Fehlerkorrektur-Level | Gibt an, wie viel des Codes beschädigt sein darf |
| Masken-Pattern | Definiert das Muster zur Datenverteilung |
Die Formatinformationen sind doppelt vorhanden, um selbst bei teilweiser Beschädigung lesbar zu bleiben.
Versionsinformationen
QR-Codes ab Version 7 enthalten zusätzliche Versionsinformationen. Diese teilen dem Scanner mit, welche Größe der Code hat und wie die Daten strukturiert sind.
Datenbereich
Der gesamte verbleibende Platz steht für die eigentlichen Nutzdaten zur Verfügung. Hier werden die codierten Informationen in Form von schwarzen und weißen Modulen gespeichert. Die Daten werden in einem Zickzack-Muster von rechts unten nach links oben eingelesen.
Die Fehlerkorrektur: Reed-Solomon-Algorithmus
Eine der wichtigsten Eigenschaften von QR-Codes ist ihre Fehlertoleranz. Selbst wenn Teile des Codes beschädigt, verschmutzt oder verdeckt sind, lässt sich der Inhalt oft noch vollständig rekonstruieren.
Wie funktioniert die Fehlerkorrektur?
QR-Codes nutzen den Reed-Solomon-Algorithmus, ein mathematisches Verfahren zur Fehlererkennung und Fehlerkorrektur. Dabei werden zusätzliche Redundanzdaten zum eigentlichen Inhalt hinzugefügt.
Der Algorithmus kann zwei Arten von Fehlern beheben:
- Erasures (bekannte Fehlerpositionen): Der Scanner weiß, wo der Fehler liegt
- Errors (unbekannte Fehlerpositionen): Der Scanner muss den Fehler erst finden
Die vier Fehlerkorrektur-Level
Beim Erstellen eines QR-Codes können Sie zwischen vier Fehlerkorrektur-Stufen wählen:
| Level | Wiederherstellungsrate | Anwendungsfall |
|---|---|---|
| L (Low) | ca. 7% | Maximale Datenkapazität, geschützte Umgebung |
| M (Medium) | ca. 15% | Standard für die meisten Anwendungen |
| Q (Quartile) | ca. 25% | Industrieumgebungen, Print mit Logo |
| H (High) | ca. 30% | Raue Bedingungen, großflächige Logo-Integration |
Je höher das Fehlerkorrektur-Level, desto weniger Platz bleibt für die eigentlichen Daten. Ein QR-Code mit Level H kann bei gleicher Größe nur etwa halb so viele Zeichen speichern wie einer mit Level L.
Praktische Auswirkungen
Die Fehlerkorrektur ermöglicht es, Logos oder Grafiken in die Mitte des QR-Codes zu platzieren, ohne die Lesbarkeit zu beeinträchtigen. Mit Level H können bis zu 30% der Code-Fläche verdeckt sein, und der Code bleibt trotzdem funktionsfähig.
Bei der Erstellung von QR-Codes mit individuellem Design sollten Sie daher immer ein höheres Fehlerkorrektur-Level wählen.
Datenkapazität: Wie viel passt in einen QR-Code?
Die Speicherkapazität eines QR-Codes hängt von drei Faktoren ab: der Version (Größe), dem Fehlerkorrektur-Level und dem Datentyp.
QR-Code Versionen
Es gibt 40 verschiedene QR-Code Versionen. Version 1 besteht aus 21x21 Modulen, jede weitere Version fügt 4 Module pro Seite hinzu.
| Version | Module | Typische Verwendung |
|---|---|---|
| Version 1 | 21x21 | Kurze URLs, kleine Datensätze |
| Version 10 | 57x57 | Mittellange Texte, vCards |
| Version 20 | 97x97 | Längere Texte, komplexe Daten |
| Version 40 | 177x177 | Maximale Kapazität |
Maximale Kapazität (Version 40, Level L)
Je nach Codierungsmodus fasst ein QR-Code unterschiedlich viele Zeichen:
| Modus | Maximale Zeichen | Zeichensatz |
|---|---|---|
| Numerisch | 7.089 | Nur Ziffern 0-9 |
| Alphanumerisch | 4.296 | Ziffern, Großbuchstaben, Sonderzeichen |
| Byte/Binär | 2.953 | Alle 8-Bit-Zeichen (UTF-8) |
| Kanji | 1.817 | Japanische Schriftzeichen |
Für die meisten Anwendungen reichen deutlich kleinere Versionen aus. Eine typische URL benötigt Version 3 bis 5, eine digitale Visitenkarte (vCard) meist Version 6 bis 10.
So funktioniert das Scannen
Das Scannen eines QR-Codes durchläuft mehrere Schritte, die in Sekundenbruchteilen ablaufen.
Schritt 1: Bildaufnahme
Die Kamera nimmt ein Bild des QR-Codes auf. Moderne Smartphones erkennen QR-Codes automatisch im Kamera-Sucher, ohne dass ein separater Scanner nötig ist.
Schritt 2: Lokalisierung
Die Software sucht nach den drei Positionsmarkierungen. Sobald alle drei gefunden sind, kann die Ausrichtung und Größe des Codes bestimmt werden.
Schritt 3: Entzerrung
Falls der Code schräg fotografiert wurde, korrigiert die Software die perspektivische Verzerrung. Die Ausrichtungsmuster helfen dabei, auch gewölbte oder geknickte Codes zu lesen.
Schritt 4: Rasterung
Der Code wird in ein Raster aus einzelnen Modulen aufgeteilt. Jedes Modul wird als schwarz (1) oder weiß (0) interpretiert.
Schritt 5: Formatierung auslesen
Die Formatinformationen verraten das Fehlerkorrektur-Level und das verwendete Masken-Pattern.
Schritt 6: Demaskierung
Beim Erstellen eines QR-Codes wird ein Maskenmuster angewendet, um große einfarbige Flächen zu vermeiden. Diese Maskierung wird nun rückgängig gemacht.
Schritt 7: Dekodierung
Die Rohdaten werden ausgelesen und mithilfe des Reed-Solomon-Algorithmus auf Fehler geprüft und korrigiert.
Schritt 8: Interpretation
Der dekodierte Inhalt wird interpretiert. Je nach Datentyp öffnet sich eine Webseite, eine App, ein Kontakt wird angelegt oder eine andere Aktion ausgeführt.
QR-Code vs. Barcode: Die wichtigsten Unterschiede
Klassische Strichcodes (EAN, UPC) und QR-Codes haben grundlegend verschiedene Eigenschaften:
| Eigenschaft | Barcode (1D) | QR-Code (2D) |
|---|---|---|
| Datenrichtung | Horizontal | Horizontal und vertikal |
| Kapazität | Max. 20-25 Zeichen | Bis zu 7.089 Zeichen |
| Datentypen | Nur numerisch | Text, URLs, Binärdaten |
| Fehlerkorrektur | Keine | Bis zu 30% |
| Leserichtung | Eine Richtung | 360° aus jedem Winkel |
| Beschädigung | Unlesbar bei kleinstem Schaden | Toleriert bis zu 30% Beschädigung |
Der größte Vorteil von QR-Codes liegt in der zweidimensionalen Datenspeicherung. Während Barcodes Informationen nur in einer Zeile codieren, nutzt der QR-Code die gesamte Fläche. Das ermöglicht die enorme Kapazitätssteigerung.
Statische und dynamische QR-Codes
Ein weiterer wichtiger Unterschied betrifft die Veränderbarkeit der hinterlegten Daten.
Statische QR-Codes
Bei statischen Codes sind die Daten direkt im Code selbst gespeichert. Einmal erstellt, lässt sich der Inhalt nicht mehr ändern. Für eine neue URL benötigen Sie einen komplett neuen Code.
Dynamische QR-Codes
Dynamische QR-Codes enthalten nur eine kurze Weiterleitungs-URL. Das eigentliche Ziel wird auf einem Server gespeichert und kann jederzeit geändert werden. Zusätzlich ermöglichen sie Scan-Statistiken und Analysen.
| Merkmal | Statisch | Dynamisch |
|---|---|---|
| Inhalt änderbar | Nein | Ja |
| Scan-Tracking | Nein | Ja |
| Dateigröße | Abhängig vom Inhalt | Immer klein |
| Kosten | Kostenlos | Meist kostenpflichtig |
Für professionelle Anwendungen empfehlen sich dynamische Codes, da sie maximale Flexibilität bieten.
Häufig gestellte Fragen
Warum haben QR-Codes drei große Quadrate in den Ecken?
Die drei Positionsmarkierungen ermöglichen es dem Scanner, den QR-Code aus jedem Winkel zu erkennen und seine Ausrichtung zu bestimmen. Das einzigartige Muster mit dem Verhältnis 1:1:3:1:1 unterscheidet sich von allen anderen Elementen und wird deshalb sofort gefunden.
Funktioniert ein QR-Code auch, wenn er teilweise verdeckt ist?
Ja, dank der Reed-Solomon-Fehlerkorrektur können QR-Codes selbst bei Beschädigung gelesen werden. Je nach gewähltem Level lassen sich 7% (Level L) bis 30% (Level H) des Codes rekonstruieren. Deshalb funktionieren auch QR-Codes mit integriertem Logo.
Wie viele Daten kann ein QR-Code maximal speichern?
Die maximale Kapazität beträgt 7.089 numerische Zeichen oder 4.296 alphanumerische Zeichen. Diese Werte gelten für Version 40 (die größte Version mit 177x177 Modulen) bei niedrigstem Fehlerkorrektur-Level. In der Praxis reichen deutlich kleinere Codes für URLs, Kontaktdaten oder kurze Texte.
Warum ist der QR-Code kostenlos nutzbar?
Denso Wave, der Erfinder des QR-Codes, hält zwar das Patent, verzichtet aber bewusst auf dessen Durchsetzung. Diese Entscheidung fiel bereits in den 1990er Jahren und hat die weltweite Verbreitung der Technologie erst ermöglicht. Jeder kann QR-Codes erstellen und nutzen, ohne Lizenzgebühren zu zahlen.
Was ist der Unterschied zwischen QR-Code und Barcode?
Barcodes speichern Daten nur in einer Dimension (horizontal) und fassen maximal 20-25 Zeichen. QR-Codes nutzen zwei Dimensionen und speichern bis zu 7.089 Zeichen. Zusätzlich bieten QR-Codes Fehlerkorrektur und lassen sich aus jedem Winkel scannen, während Barcodes eine bestimmte Ausrichtung erfordern.