Alkuperä ja laajempi käyttö
Irving S. Reed ja Gustave Solomon kuvasivat Reed–Solomon-koodit vuonna 1960. Ne toimivat kokonaisilla symboleilla, yleensä tavuilla, eivät yksittäisillä biteillä, minkä vuoksi ne käsittelevät hyvin vaurioiden ryppäitä, kuten naarmua tai tahraa.
Sama koodiperhe suojaa dataa CD-, DVD- ja Blu-ray-levyillä, joissakin digitaalisen television ja satelliittien yhteyksissä sekä muissa 2D-viivakoodeissa, kuten Data Matrix ECC 200:ssa, Aztec-koodissa ja PDF417:ssä.
Miten QR-koodit käyttävät sitä
QR-koodi käsittelee jokaista 8-bittistä koodisanaa äärellisen kunnan GF(256) alkiona, joka on rakennettu primitiivisellä polynomilla x^8 + x^4 + x^3 + x^2 + 1 (heksa 0x11D). Datakoodisanat jaetaan generaattoripolynomilla, ja jakojäännös muuttuu niiden perään liitetyiksi virheenkorjauskoodisanoiksi.
Suuremmat koodit jakavat datansa useisiin lohkoihin, joilla kullakin on omat virheenkorjauskoodisanansa. Lohkot lomitetaan, kun koodisanat sijoitetaan ruudukkoon, jotta yksittäinen vaurio leviää monelle lohkolle eikä ylikuormita yhtä.
Kuinka paljon se voi korjata
Kun lohkossa on n virheenkorjauskoodisanaa, purkaja voi korjata enintään n/2 koodisanaa, joiden paikka on tuntematon, tai enintään n koodisanaa, joiden paikka tunnetaan ja joita kutsutaan katoamisiksi (erasure). Sekatapaukset noudattavat sääntöä, että jokainen virhe lasketaan kahdesti ja jokainen katoaminen kerran.
Tämän vuoksi koodi, jonka puhtaan tasaisen alueen peittää logo, voi silti skannautua: älykäs lukija voi käsitellä peitetyn alueen katoamisina, kun taas satunnaisen vaurion korjaaminen on vaikeampaa, koska purkajan täytyy ensin löytää se.
- Tuntemattomat virheet: enintään puolet EC-koodisanojen määrästä
- Katoamiset (tunnetut paikat): enintään EC-koodisanojen määrä
- Kenttä (kunta): GF(256), polynomi 0x11D
- Lohkot lomitetaan vaurioiden ryppäiden levittämiseksi