Reed-Solomon-Fehlerkorrektur

Auch genannt: Reed-Solomon-Code, RS-Code, Reed-Solomon

Definition

Die Reed-Solomon-Fehlerkorrektur ist die Mathematik, mit der sich ein beschädigter QR-Code noch scannen lässt. Sie fügt den Daten Prüfcodewörter hinzu, mit denen ein Lesegerät fehlende oder falsche Bytes bis zu einer festen Grenze rekonstruieren kann.

Ursprung und weitere Verbreitung

Reed-Solomon-Codes wurden 1960 von Irving S. Reed und Gustave Solomon beschrieben. Sie arbeiten mit ganzen Symbolen, meist Bytes, statt mit einzelnen Bits, weshalb sie gut mit Schadensbündeln wie einem Kratzer oder einem Fleck umgehen.

Dieselbe Code-Familie schützt Daten auf CDs, DVDs und Blu-ray-Discs, in einigen digitalen Fernseh- und Satellitenverbindungen und in anderen 2D-Barcodes wie Data Matrix ECC 200, Aztec-Code und PDF417.

Wie QR-Codes sie nutzen

Ein QR-Code behandelt jedes 8-Bit-Codewort als Element des endlichen Körpers GF(256), aufgebaut mit dem primitiven Polynom x^8 + x^4 + x^3 + x^2 + 1 (hex 0x11D). Die Datencodewörter werden durch ein Generatorpolynom geteilt, und der Rest wird zu den angehängten Fehlerkorrekturcodewörtern.

Größere Codes teilen ihre Daten in mehrere Blöcke auf, jeder mit eigenen Fehlerkorrekturcodewörtern. Die Blöcke werden beim Platzieren der Codewörter im Raster verschränkt, sodass sich eine einzelne beschädigte Stelle auf viele Blöcke verteilt, statt einen zu überfordern.

Wie viel sie beheben kann

Bei n Fehlerkorrekturcodewörtern in einem Block kann ein Decoder bis zu n/2 Codewörter korrigieren, deren Position unbekannt ist, oder bis zu n Codewörter, deren Position bekannt ist, sogenannte Auslöschungen. Für gemischte Fälle gilt die Regel, dass jeder Fehler doppelt und jede Auslöschung einfach zählt.

Deshalb lässt sich ein Code mit einer sauberen, flachen Fläche unter einem Logo noch scannen: Ein kluges Lesegerät kann die verdeckte Region als Auslöschungen behandeln, während zufällige Schäden schwerer zu beheben sind, weil der Decoder sie erst finden muss.

  • Unbekannte Fehler: bis zur Hälfte der Anzahl der EC-Codewörter
  • Auslöschungen (bekannte Positionen): bis zur Anzahl der EC-Codewörter
  • Körper: GF(256), Polynom 0x11D
  • Blöcke werden verschränkt, um Schadensbündel zu verteilen

Häufig gestellte Fragen

Was ist Reed-Solomon in einem QR-Code?

Es ist das Fehlerkorrekturverfahren, das den Daten zusätzliche Codewörter hinzufügt. Ein Scanner nutzt sie, um beschädigte oder unlesbare Codewörter zu rekonstruieren.

Wer hat die Reed-Solomon-Codes erfunden?

Irving S. Reed und Gustave Solomon, die sie 1960 veröffentlichten. Die Codes werden heute bei optischen Datenträgern, in der Kommunikationstechnik und in den meisten 2D-Barcodes verwendet.

Warum funktioniert ein QR-Code mit einem Logo in der Mitte trotzdem?

Das Logo verdeckt Module, die die Reed-Solomon-Fehlerkorrektur rekonstruieren kann. Das klappt, solange die verdeckte Fläche innerhalb der Fehlerkorrekturkapazität bleibt und die Suchmuster frei sind.

Quellen und Normen

Alle Begriffe