Коригиране на грешки по Рийд–Соломон

Известен още като: код на Рийд–Соломон, RS код, Reed-Solomon

Определение

Коригирането на грешки по Рийд–Соломон е математиката, която позволява на повреден QR код пак да се сканира. То добавя контролни кодови думи към данните, така че четецът да възстанови липсващи или грешни байтове до определена граница.

Прегледано от екипа на AriaQR ·

Коригиране на грешки по Рийд–Соломон

Произход и по-широка употреба

Кодовете на Рийд–Соломон са описани от Ървинг С. Рийд и Густав Соломон през 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
  • Блоковете се преплитат, за да се разпредели пакетната повреда

Често задавани въпроси

Какво е Рийд–Соломон в QR кода?

Това е методът за коригиране на грешки, който добавя допълнителни кодови думи към данните. Скенерът ги използва, за да възстанови повредени или нечетими кодови думи.

Кой е изобретил кодовете на Рийд–Соломон?

Ървинг С. Рийд и Густав Соломон, които ги публикуват през 1960 г. Днес кодовете се използват в оптични дискове, комуникации и повечето 2D баркодове.

Защо QR код с лого в средата пак може да работи?

Логото закрива модули, които коригирането на грешки по Рийд–Соломон може да възстанови. Работи, стига закритата област да е в рамките на капацитета за коригиране на грешки, а позиционните шаблони да са чисти.

Източници и стандарти

Всички термини