Произход и по-широка употреба
Кодовете на Рийд–Соломон са описани от Ървинг С. Рийд и Густав Соломон през 1960 г. Те работят с цели символи, обикновено байтове, а не с отделни битове, което ги прави добри при пакетни повреди като драскотина или петно.
Същото семейство кодове защитава данните на CD, DVD и Blu-ray дискове, в някои цифрови телевизионни и сателитни връзки и в други 2D баркодове, включително Data Matrix ECC 200, Aztec code и PDF417.
Как го използват QR кодовете
QR кодът третира всяка 8-битова кодова дума като елемент на крайното поле GF(256), построено с примитивния полином x^8 + x^4 + x^3 + x^2 + 1 (шестнадесетично 0x11D). Кодовите думи с данни се делят на пораждащ полином, а остатъкът става кодовите думи за коригиране на грешки, добавени към тях.
По-големите кодове разделят данните си на няколко блока, всеки със собствени кодови думи за коригиране на грешки. След това блоковете се преплитат при поставянето на кодовите думи в мрежата, така че едно петно повреда да се разпредели между много блокове, вместо да претовари един.
Колко може да поправи
При n кодови думи за коригиране на грешки в блок декодерът може да поправи до n/2 кодови думи с неизвестна позиция или до n кодови думи с известна позиция, наречени заличавания (erasures). Смесените случаи следват правилото, че всяка грешка се брои двойно, а всяко заличаване – веднъж.
Затова код с чиста, равна област, закрита от лого, пак може да се сканира: умен четец може да третира закритата област като заличавания, докато случайната повреда е по-трудна за поправяне, защото декодерът първо трябва да я намери.
- Неизвестни грешки: до половината от броя на кодовите думи за коригиране на грешки
- Заличавания (известни позиции): до броя на кодовите думи за коригиране на грешки
- Поле: GF(256), полином 0x11D
- Блоковете се преплитат, за да се разпредели пакетната повреда