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