7 Min. LesezeitTutorials

Fehlerkorrekturstufen bei QR-Codes: L, M, Q, H erklärt

Die Fehlerkorrekturstufen L, M, Q und H eines QR-Codes stellen 7, 15, 25 und 30 % eines beschädigten Codes wieder her. Mit Modulzahlen je Stufe und dem Hinweis, wann sich welche Stufe lohnt.

Marius Voß
DevRel · edge infra
Die QR-Code-Fehlerkorrekturstufen L, M, Q und H als Balken für 7, 15, 25 und 30 Prozent Wiederherstellung neben einem echten QR-Code

Fehlerkorrekturstufen bei QR-Codes bezeichnen die Menge redundanter Daten, die ein Code mitführt, damit ein Scanner rekonstruieren kann, was verschmiert, verkratzt oder von einem Logo verdeckt ist. Es gibt vier: L, M, Q und H, die grob 7 %, 15 %, 25 % und 30 % des Codes wiederherstellen. Wählen Sie M für die meisten Bildschirme und Kurzlinks und H, wenn ein Logo oder grobe Behandlung am Code zehren wird. Der Preis jeder Stufe ist die Dichte: mehr Module, kleinere Quadrate bei gleicher gedruckter Breite.

Dieser Zielkonflikt ist der Ausgangspunkt der meisten Geschichten von "mein QR-Code lässt sich nicht scannen", und deshalb rechnet dieses Tutorial mit echten Modulzahlen, statt zu beschwichtigen. Wenn Sie noch keinen Code erstellt haben, ist QR-Code erstellen der richtige Ausgangspunkt; dieser Beitrag handelt von der Wahl der Stufe, sobald Sie einen haben.

Was Fehlerkorrektur in einem QR-Code tatsächlich tut

Ein QR-Code speichert Ihre Daten als Bytes, sogenannte Codewörter. Daneben speichert er zusätzliche Codewörter, die mit der Reed-Solomon-Fehlerkorrektur berechnet werden, derselben Mathematikfamilie wie bei CDs. Wenn ein Scanner einen beschädigten Code liest, nutzt er diese zusätzlichen Codewörter, um herauszufinden, welche Daten-Codewörter falsch sind und wie sie hätten lauten sollen.

Die gewählte Stufe bestimmt, wie viele zusätzliche Codewörter es gibt. Denso Wave, das das Format erfunden hat, beschreibt die Fehlerkorrektur-Funktion als vier Stufen und vermerkt, dass eine höhere Stufe die Wiederherstellung verbessert, aber die Datenmenge und damit die Größe des Symbols erhöht. Die Wiederherstellungswerte unten sind die in ISO/IEC 18004 aufgeführten und auf Wikipedias QR-Code-Eintrag wiederholten.

  • Stufe L (Low): etwa 7 % der Codewörter wiederherstellbar.
  • Stufe M (Medium): etwa 15 %.
  • Stufe Q (Quartile): etwa 25 %.
  • Stufe H (High): etwa 30 %.

Beachten Sie das Wort "etwa". Der Prozentsatz zählt Codewörter, keinen Farbfleck. Betrachten Sie es als Reparaturbudget, nicht als Schadensgarantie.

Die vier QR-Code-Fehlerkorrekturstufen L, M, Q und H mit ungefährer Wiederherstellung von 7, 15, 25 und 30 Prozent und einem typischen Einsatz für jede

Der Dichte-Kompromiss: Warum höher nicht immer sicherer ist

Redundanz muss irgendwo untergebracht werden. Eine höhere Stufe drückt Ihre Daten in ein größeres Symbol. QR-Codes gibt es in den Versionen 1 bis 40, und die Seitenlänge beträgt 17 + 4 x Version Module: Version 1 ist 21 x 21 und Version 40 ist 177 x 177, laut Denso Waves Versions- und Kapazitätstabelle. Der Encoder wählt die kleinste Version, deren Kapazität bei Ihrer gewählten Stufe Ihre Daten aufnimmt.

Bei URLs sind diese Daten Text im Byte-Modus. Version 2 fasst 32 Bytes bei L, 26 bei M, 20 bei Q und 14 bei H. Version 8 fasst 192, 152, 108 und 84. Version 11 fasst 321, 251, 177 und 137.

Die Kosten zeigen sich bei Version 8: 192 Bytes bei L, 84 bei H. Dasselbe Raster, weniger als die Hälfte des Platzes für Ihre URL, weil der Rest Parität ist.

Warum ein dichterer Code schlechter scannt

Ein Handy muss jedes Modul auflösen. Drucken Sie den Code 3 cm breit, ergibt ein Raster mit 33 Modulen Module von etwa 0,9 mm Breite; ein Raster mit 61 Modulen etwa 0,5 mm. Dieselbe Kamera, dasselbe Licht, dieselbe zittrige Hand. Halb so viel Spielraum. Die Größenregeln in wie groß sollte ein QR-Code sein gehen davon aus, dass Sie mit einer vernünftigen Modulgröße arbeiten, und die Dichte ist es, die diese Annahme unbemerkt untergräbt.

Durchgerechnetes Beispiel: Eine URL auf jeder Stufe

Hier das Experiment, das ich durchführe, wann immer jemand sagt, man solle "einfach H einstellen". Ich nahm eine getrackte Kampagnen-URL mit 126 Zeichen: eine Domain, ein Pfad sowie die Parameter utm_source, utm_medium, utm_campaign und utm_content. Dann nahm ich einen Kurzlink mit 25 Zeichen, https://s.elido.me/qr7kP2, als anschauliches Beispiel. Beide im Byte-Modus. Ich habe jeden mit einem Standard-Encoder auf allen vier Stufen kodiert, und die obige Kapazitätstabelle sagt das Ergebnis voraus.

StufeWiederherstellungURL mit 126 ZeichenKurzlink mit 25 Zeichen
L~7%V6, 41 x 41V2, 25 x 25
M~15%V8, 49 x 49V2, 25 x 25
Q~25%V9, 53 x 53V3, 29 x 29
H~30%V11, 61 x 61V4, 33 x 33

Zwei Dinge springen ins Auge. Erstens wächst die lange URL von L nach H von 41 auf 61 Module pro Seite, das sind 1681 bis 3721 Module, etwa die 2,2-fache Fläche. Zweitens, und das erwähnt niemand: Der Kurzlink auf der stärksten Stufe H (33 x 33) ist immer noch kleiner als die lange URL auf der schwächsten Stufe L (41 x 41).

Zwei echte QR-Codes der Stufe H nebeneinander: eine Tracking-URL mit 126 Zeichen bei 61 mal 61 Modulen und ein Kurzlink mit 25 Zeichen bei 33 mal 33 Modulen, mit einer Modulzahl-Tabelle für alle vier Stufen

Die Nutzlast zählt mehr als die Stufe. Sie können für einen Kurzlink das maximale Reparaturbudget von 30 % kaufen und landen trotzdem bei einem lockereren, gröberen Code als dem "effizienten" Code der Stufe L für die lange URL.

Wann H sinnvoll ist und wann L oder M besser sind

Passen Sie die Stufe an das an, was dem Code tatsächlich widerfahren wird. Allgemeine Vorsicht ist keine Spezifikation.

Wählen Sie H (oder Q), wenn

  • Ein Logo oder Markenzeichen in der Mitte sitzt. Es verdeckt Module, die der Scanner rekonstruieren muss.
  • Der Code auf Verpackungen, einem Flyer in der Tasche, einem Aufkleber, einem Tisch, der abgewischt wird, oder irgendetwas im Freien gedruckt ist.
  • Die Oberfläche rau oder gewölbt ist und Sie die Ausführung nicht kontrollieren können.
  • Ein erneutes Scannen nicht möglich ist, etwa bei einem Code auf einem bereits versandten Produkt.

Elidos Hilfeartikel zu QR-Codes sagt dasselbe: Halten Sie ein Logo unter 20 % der Codefläche und wechseln Sie zu H, wenn Sie darüber hinausgehen oder mit Logo drucken.

Wählen Sie L oder M, wenn

  • Der Code auf einem Bildschirm erscheint: einer Folie, einer Webseite, einer Checkout-Bestätigung.
  • Die URL kurz ist und nichts sie verdecken oder verkratzen wird.
  • Der Platz knapp ist und der Code klein bleiben muss, sodass jedes Modul zählt.

M ist der praktische Standard. Denso Wave sagt, es sei die am häufigsten gewählte Stufe, und unser eigener Beitrag QR-Code lässt sich nicht scannen macht denselben Punkt von der Support-Seite aus: H ist der falsche Standard für einen schlichten Code, weil die zusätzliche Dichte mehr fehlgeschlagene Scans verursacht, als der Schutz vor Schäden verhindert.

Ein Hinweis zu Logos: Fehlerkorrektur repariert fehlende Module, sie behebt weder schlechten Kontrast noch Unschärfe noch einen beschnittenen Rand. Die Gestaltungsregeln, wie man das Budget für ein Logo ausgibt, stehen in Design markengerechter QR-Codes, einschließlich der Begründung, warum die drei Eckquadrate unberührt bleiben.

Das durchgerechnete Beispiel liefert eine Regel, die Sie heute anwenden können: Verkleinern Sie die Nutzlast, bevor Sie die Stufe erhöhen. Ein dynamischer QR-Code tut genau das. Statt das vollständige Ziel zu kodieren, kodiert er einen Kurzlink, und der Kurzlink leitet dorthin weiter, wohin Sie ihn zeigen lassen.

Einen Kurzlink zu kodieren hat drei Auswirkungen auf die Zuverlässigkeit:

  1. Das Raster bleibt bei einer niedrigen Version, sodass die Module bei jeder Druckgröße groß bleiben.
  2. Sie können sich Stufe Q oder H für ein Logo oder Druckabnutzung leisten, ohne dass der Code anschwillt.
  3. Die Tracking-Parameter liegen am Ziel, nicht im Muster, sodass eine Änderung eines Kampagnen-Tags nie einen neuen, dichteren Code erzwingt.

Es gibt einen vierten Vorteil, der mit Dichte nichts zu tun hat: Weil der Code auf einen Kurzlink zeigt, können Sie ihn später umleiten, ohne neu zu drucken, und bekommen Scan-Zahlen gratis. Bei einem statischen Code ist das Ziel ins Muster eingebrannt, sodass der einzige Weg, einen Tippfehler zu beheben, ein neuer Druck ist.

Wenn Sie das an Ihren eigenen Links ausprobieren möchten, lässt Sie der QR-Code-Generator die Stufe pro Code festlegen, mit M als Ausgangspunkt, und Plandetails stehen auf der Preisseite. Erstellen Sie aus demselben Kurzlink einen Code bei M und einen bei H, drucken Sie sie in 3 cm Breite und vergleichen Sie. Ich wette, dass Sie sie mit bloßem Auge kaum unterscheiden können, und das ist der Punkt.

Eine kurze Checkliste vor dem Druck

Gehen Sie sie der Reihe nach durch.

  1. Kürzen Sie zuerst die URL; belassen Sie die Tracking-Parameter am Ziel.
  2. Wählen Sie die Stufe anhand der Tabelle: M für Bildschirme und schlichten Druck, Q oder H für Logos und Abnutzung.
  3. Prüfen Sie die Version, die Ihr Generator gewählt hat. Fragen Sie sich bei einer URL jenseits von etwa Version 10, warum die Nutzlast so lang ist.
  4. Behalten Sie die Ruhezone: mindestens vier Module leeren Rand auf jeder Seite.
  5. Drucken Sie in der endgültigen Größe und scannen Sie mit zwei verschiedenen Handys bei normalem Licht.

Schritt 5 fängt ab, was keine Tabelle vorhersagt. Ein Logo, das auf dem Bildschirm klein aussah, kann mehr Module verdecken, als Sie vermuten.

Die Cornerstone-Serie lesen

Dieser Beitrag gehört zum Tutorials-Cluster, und sein Cornerstone ist QR-Code erstellen. Für die Größen- und Abstandsregeln, die entscheiden, ob Ihre Modulgröße ausreicht, siehe wie groß sollte ein QR-Code sein.

Weiterführend im Blog

Häufig gestellte Fragen

Welche Fehlerkorrekturstufe ist für einen QR-Code die beste?

Stufe M ist der sinnvolle Standard: Sie stellt etwa 15 % des Codes wieder her und hält das Raster klein. Denso Wave, der Erfinder des Formats, sagt, M sei die am häufigsten gewählte Stufe. Wechseln Sie zu Q oder H, wenn der Code ein Logo trägt oder auf etwas gedruckt wird, das verkratzt, gefaltet oder im Freien liegen gelassen wird.

Was bedeutet 30 % Fehlerkorrektur bei einem QR-Code?

Es bedeutet, dass ein Code der Stufe H noch dekodiert werden kann, wenn bis zu etwa 30 % seiner Daten-Codewörter unlesbar oder verdeckt sind. Der Code speichert zusätzliche Reed-Solomon-Paritätsdaten, und der Scanner nutzt sie, um das Fehlende zu rekonstruieren. Es ist eine Obergrenze für reparierbare Schäden, kein Versprechen, dass beliebige 30 % der Fläche wegfallen dürfen.

Macht eine höhere Fehlerkorrekturstufe einen QR-Code schwerer scanbar?

Indirekt ja. Höhere Stufen fügen Paritätsdaten hinzu, sodass dieselbe URL eine höhere Version mit mehr, kleineren Modulen braucht. Bei gleicher gedruckter Breite sind kleinere Module für eine Handykamera schwerer aufzulösen. Die Lösung ist eine kürzere Nutzlast, nicht eine niedrigere Stufe bei einem Code, der den Schutz braucht.

Brauche ich Stufe H, um ein Logo auf einen QR-Code zu setzen?

Verwenden Sie H, oder zumindest Q, bei jedem Code mit einem Logo in der Mitte. Das Logo verdeckt Module, und der Scanner behandelt sie als zu reparierenden Schaden. Halten Sie das Logo deutlich unter einem Viertel der Codefläche und fern von den drei Eckquadraten, damit für Abnutzung im Druck noch Reserve bleibt.

Lässt sich ein beschädigter QR-Code noch scannen?

Oft ja, innerhalb der Grenze der Stufe. Ein zerkratzter, verschmierter oder teilweise verdeckter Code wird dekodiert, wenn die verlorene Fläche innerhalb dessen bleibt, was seine Stufe reparieren kann, und die Eckquadrate intakt sind. Ein Code der Stufe L toleriert etwa 7 % Schaden, ein Code der Stufe H etwa 30 %.

Was ist die Standard-Fehlerkorrekturstufe eines QR-Codes?

Der Standard legt keine einheitliche Vorgabe fest; jeder Generator wählt seine eigene, und M ist die häufigste Wahl. Elidos QR-Playground startet bei M, mit L, Q und H über dasselbe Bedienelement verfügbar.

Elido testen

URL einfügen, kurzer Link in Sekunden

Kein Konto nötig. Link bleibt 30 Tage aktiv. Konto erstellen, um ihn dauerhaft zu behalten.

Kostenlos, keine Anmeldung erforderlich · 2 pro Tag

Elido testen

URL-Shortener mit EU-Hosting: eigene Domains, tiefe Analytik und eine offene API. Kostenloser Tarif - keine Kreditkarte nötig.

Tags
qr code error correction levels
qr code error correction
qr code level h
qr code version
reed-solomon qr code
qr code density

Weiterlesen