Eredet és tágabb használat
A Reed–Solomon-kódokat Irving S. Reed és Gustave Solomon írta le 1960-ban. Egész szimbólumokon, általában bájtokon dolgoznak, nem egyes biteken, ezért jól kezelik a sérülések sorozatát, például egy karcolást vagy elkenődést.
Ugyanez a kódcsalád védi az adatot a CD-, DVD- és Blu-ray-lemezeken, egyes digitális televíziós és műholdas összeköttetésekben, valamint más 2D vonalkódokban, köztük a Data Matrix ECC 200-ban, az Aztec-kódban és a PDF417-ben.
Hogyan használja a QR-kód
A QR-kód minden 8 bites kódszót a GF(256) véges test elemeként kezel, amelyet az x^8 + x^4 + x^3 + x^2 + 1 primitív polinommal építenek fel (hexadecimálisan 0x11D). Az adatkódszavakat elosztják egy generátorpolinommal, a maradék pedig a hozzájuk fűzött hibajavító kódszavak lesznek.
A nagyobb kódok az adatukat több blokkra osztják, mindegyiknek saját hibajavító kódszavaival. A blokkokat a kódszavak rácsba helyezésekor összefésülik, így egyetlen sérült folt sok blokk között oszlik el, és nem terhel túl egyet.
Mennyit tud kijavítani
Ha egy blokkban n hibajavító kódszó van, a dekódoló legfeljebb n/2 ismeretlen helyű kódszót, vagy legfeljebb n ismert helyű kódszót, úgynevezett törlést tud kijavítani. A vegyes esetekre az a szabály vonatkozik, hogy minden hiba kétszer, minden törlés egyszer számít.
Ezért olvasható be az a kód is, amelynek egy tiszta, sík területét logó fedi: egy okos olvasó a lefedett területet törlésként kezelheti, míg a véletlenszerű sérülést nehezebb kijavítani, mert a dekódolónak előbb meg kell találnia.
- Ismeretlen hibák: az EC-kódszavak számának legfeljebb fele
- Törlések (ismert helyek): legfeljebb az EC-kódszavak száma
- Test: GF(256), polinom: 0x11D
- A blokkokat összefésülik, hogy a sorozatos sérülés szétoszoljon