Reed–Solomon-felkorrigering

Kallas också: Reed–Solomon-kod, RS-kod, Reed–Solomon error correction

Definition

Reed–Solomon-felkorrigering är den matematik som gör att en skadad QR-kod ändå går att skanna. Den lägger till kontrollkodord till data så att en läsare kan återskapa saknade eller felaktiga byte, upp till en fastställd gräns.

Ursprung och bredare användning

Reed–Solomon-koder beskrevs av Irving S. Reed och Gustave Solomon 1960. De arbetar med hela symboler, oftast byte, i stället för enskilda bitar, vilket gör dem bra på att hantera skadeskurar som en repa eller en fläck.

Samma kodfamilj skyddar data på cd-, dvd- och Blu-ray-skivor, i vissa digital-tv- och satellitlänkar och i andra 2D-streckkoder, däribland Data Matrix ECC 200, Aztec Code och PDF417.

Hur QR-koder använder den

En QR-kod behandlar varje kodord på 8 bitar som ett element i den ändliga kroppen GF(256), uppbyggd med det primitiva polynomet x^8 + x^4 + x^3 + x^2 + 1 (hex 0x11D). Datakodorden divideras med ett generatorpolynom, och resten blir de felkorrigeringskodord som läggs till efter dem.

Större koder delar upp sina data i flera block, var och ett med egna felkorrigeringskodord. Blocken interfolieras sedan när kodorden placeras i rutnätet, så att en enskild skadad fläck sprids över många block i stället för att överväldiga ett.

Hur mycket den kan rätta

Med n felkorrigeringskodord i ett block kan en avkodare rätta upp till n/2 kodord vars position är okänd, eller upp till n kodord vars position är känd, så kallade utplåningar (erasures). Blandade fall följer regeln att varje fel räknas dubbelt och varje utplåning en gång.

Därför kan en kod med en ren, jämn yta övertäckt av en logotyp ändå skannas: en smart läsare kan behandla det övertäckta området som utplåningar, medan slumpmässig skada är svårare att rätta eftersom avkodaren först måste hitta den.

  • Okända fel: upp till hälften av antalet EC-kodord
  • Utplåningar (kända positioner): upp till antalet EC-kodord
  • Kropp: GF(256), polynom 0x11D
  • Block interfolieras för att sprida skadeskurar

Vanliga frågor

Vad är Reed–Solomon i en QR-kod?

Det är den felkorrigeringsmetod som lägger till extra kodord till data. En skanner använder dem för att återskapa kodord som är skadade eller oläsliga.

Vem uppfann Reed–Solomon-koderna?

Irving S. Reed och Gustave Solomon, som publicerade dem 1960. Koderna används nu i optiska skivor, kommunikation och de flesta 2D-streckkoder.

Varför kan en QR-kod med en logotyp i mitten ändå fungera?

Logotypen täcker moduler som Reed–Solomon-felkorrigeringen kan återskapa. Det fungerar så länge det övertäckta området håller sig inom felkorrigeringens kapacitet och sökmönstren är fria.

Källor och standarder

Alla begrepp