Pinagmulan at mas malawak na gamit
Inilarawan nina Irving S. Reed at Gustave Solomon ang mga Reed–Solomon code noong 1960. Gumagana ang mga ito sa buong simbolo, karaniwang mga byte, sa halip na isang bit lang, kaya mahusay sila sa paghawak ng magkakasunod na pinsala tulad ng gasgas o mantsa.
Ang parehong pamilya ng mga code ay nagpoprotekta ng data sa mga CD, DVD at Blu-ray disc, sa ilang digital na telebisyon at satellite link, at sa iba pang 2D barcode kabilang ang Data Matrix ECC 200, Aztec code at PDF417.
Paano ito ginagamit ng mga QR code
Tinatrato ng QR code ang bawat 8-bit na codeword bilang elemento ng finite field na GF(256), na binuo gamit ang primitive polynomial na x^8 + x^4 + x^3 + x^2 + 1 (hex 0x11D). Hinahati ang mga data codeword sa isang generator polynomial, at ang natira ang nagiging mga error correction codeword na idinadagdag sa mga ito.
Hinahati ng mas malalaking code ang kanilang data sa ilang block, na bawat isa ay may sariling mga error correction codeword. Iniinterleave ang mga block kapag inilalagay ang mga codeword sa grid, kaya ang iisang sirang bahagi ay kumakalat sa maraming block sa halip na daigin ang isa.
Gaano karami ang kaya nitong ayusin
Kapag may n error correction codeword sa isang block, kayang itama ng decoder ang hanggang n/2 codeword na hindi alam ang posisyon, o hanggang n codeword na alam ang posisyon, na tinatawag na erasure. Sumusunod ang mga halo-halong kaso sa tuntuning bawat error ay binibilang na dalawa at bawat erasure ay isa.
Kaya nababasa pa rin ang code na may malinis at patag na lugar na tinakpan ng logo: maaaring ituring ng matalinong reader ang natakpang rehiyon bilang mga erasure, samantalang mas mahirap ayusin ang random na pinsala dahil kailangan muna itong mahanap ng decoder.
- Mga hindi alam na error: hanggang kalahati ng bilang ng mga EC codeword
- Mga erasure (alam ang posisyon): hanggang sa bilang ng mga EC codeword
- Field: GF(256), polynomial 0x11D
- Ini-interleave ang mga block para ikalat ang magkakasunod na pinsala