Reed–Solomon-fejlrettelse

Kaldes også: Reed-Solomon-kode, RS-kode, Reed–Solomon error correction

Definition

Reed–Solomon-fejlrettelse er den matematik, der lader en beskadiget QR-kode stadig kunne scannes. Den tilføjer kontrolkodeord til dataene, så en læser kan genopbygge manglende eller forkerte bytes op til en fastsat grænse.

Oprindelse og bredere brug

Reed–Solomon-koder blev beskrevet af Irving S. Reed og Gustave Solomon i 1960. De arbejder med hele symboler, som regel bytes, frem for enkelte bit, hvilket gør dem gode til at håndtere sammenhængende skade som en ridse eller en plet.

Den samme kodefamilie beskytter data på cd'er, dvd'er og Blu-ray-diske, i visse digitale tv- og satellitforbindelser og i andre 2D-stregkoder, herunder Data Matrix ECC 200, Aztec-kode og PDF417.

Sådan bruger QR-koder det

En QR-kode behandler hvert kodeord på 8 bit som et element i det endelige legeme GF(256), opbygget med det primitive polynomium x^8 + x^4 + x^3 + x^2 + 1 (hex 0x11D). Datakodeordene divideres med et generatorpolynomium, og resten bliver de fejlrettelseskodeord, der føjes til dem.

Større koder deler deres data i flere blokke, hver med sine egne fejlrettelseskodeord. Blokkene interleaves derefter, når kodeordene placeres i gitteret, så en enkelt plet skade spredes ud over mange blokke i stedet for at overvælde én.

Hvor meget den kan rette

Med n fejlrettelseskodeord i en blok kan en dekoder rette op til n/2 kodeord, hvis position er ukendt, eller op til n kodeord, hvis position er kendt, såkaldte sletninger. Blandede tilfælde følger reglen om, at hver fejl tæller dobbelt og hver sletning én gang.

Derfor kan en kode med et rent, fladt område dækket af et logo stadig scannes: en snedig læser kan behandle det tildækkede område som sletninger, mens tilfældig skade er sværere at rette, fordi dekoderen først skal finde den.

  • Ukendte fejl: op til halvdelen af antallet af EC-kodeord
  • Sletninger (kendte positioner): op til antallet af EC-kodeord
  • Legeme: GF(256), polynomium 0x11D
  • Blokke interleaves for at sprede sammenhængende skade

Ofte stillede spørgsmål

Hvad er Reed–Solomon i en QR-kode?

Det er den fejlrettelsesmetode, der tilføjer ekstra kodeord til dataene. En scanner bruger dem til at genopbygge kodeord, der er beskadiget eller ulæselige.

Hvem opfandt Reed–Solomon-koder?

Irving S. Reed og Gustave Solomon, som udgav dem i 1960. Koderne bruges nu i optiske diske, kommunikation og de fleste 2D-stregkoder.

Hvorfor kan en QR-kode med et logo i midten stadig virke?

Logoet dækker moduler, som Reed–Solomon-fejlrettelse kan genopbygge. Det virker, så længe det tildækkede område holder sig inden for fejlrettelsens kapacitet, og søgemønstrene er frie.

Kilder og standarder

Alle begreber