Reed–Solomon-feilretting

Kalles også: Reed-Solomon-kode, RS-kode, Reed-Solomon code

Definisjon

Reed–Solomon-feilretting er matematikken som lar en skadet QR-kode fortsatt skannes. Den legger til kontrollkodeord i dataene slik at en leser kan gjenopprette manglende eller feil byte, opp til en fastsatt grense.

Opprinnelse og bredere bruk

Reed–Solomon-koder ble beskrevet av Irving S. Reed og Gustave Solomon i 1960. De arbeider med hele symboler, vanligvis byte, i stedet for enkeltbiter, og det gjør dem gode til å håndtere skade i klumper, som en ripe eller en flekk.

Den samme kodefamilien beskytter data på CD-er, DVD-er og Blu-ray-plater, i noen digitale TV- og satellittforbindelser og i andre 2D-strekkoder, blant annet Data Matrix ECC 200, Aztec-kode og PDF417.

Hvordan QR-koder bruker den

En QR-kode behandler hvert kodeord på 8 biter som et element i det endelige legemet GF(256), bygget med det primitive polynomet x^8 + x^4 + x^3 + x^2 + 1 (hex 0x11D). Datakodeordene deles på et generatorpolynom, og resten blir feilrettingskodeordene som legges til etter dem.

Større koder deler dataene i flere blokker, hver med egne feilrettingskodeord. Blokkene flettes så sammen når kodeordene plasseres i rutenettet, slik at ett enkelt skadeområde spres over mange blokker i stedet for å overvelde én.

Hvor mye den kan rette

Med n feilrettingskodeord i en blokk kan en dekoder rette opp til n/2 kodeord med ukjent posisjon, eller opp til n kodeord med kjent posisjon, såkalte utslettinger (erasures). Blandede tilfeller følger regelen at hver feil teller to ganger og hver utsletting én gang.

Derfor kan en kode med et rent, jevnt område som er dekket av en logo, fortsatt skannes: en smart leser kan behandle det tildekkede området som utslettinger, mens tilfeldig skade er vanskeligere å rette fordi dekoderen først må finne den.

  • Ukjente feil: opp til halvparten av antallet EC-kodeord
  • Utslettinger (kjente posisjoner): opp til antallet EC-kodeord
  • Legeme: GF(256), polynom 0x11D
  • Blokkene flettes sammen for å spre skade i klumper

Vanlige spørsmål

Hva er Reed–Solomon i en QR-kode?

Det er feilrettingsmetoden som legger ekstra kodeord til dataene. En skanner bruker dem til å gjenopprette kodeord som er skadet eller uleselige.

Hvem fant opp Reed–Solomon-kodene?

Irving S. Reed og Gustave Solomon, som publiserte dem i 1960. Kodene brukes nå i optiske plater, kommunikasjon og de fleste 2D-strekkoder.

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

Logoen dekker moduler som Reed–Solomon-feilretting kan gjenopprette. Det fungerer så lenge det tildekkede området holder seg innenfor feilrettingskapasiteten og søkemønstrene er frie.

Kilder og standarder

Alle begreper