Reed–Solomon-hibajavítás

Más néven: Reed–Solomon-kód, RS-kód, Reed-Solomon

Meghatározás

A Reed–Solomon-hibajavítás az a matematika, amely lehetővé teszi, hogy a sérült QR-kód még beolvasható legyen. Ellenőrző kódszavakat ad az adathoz, hogy az olvasó egy meghatározott határig újra tudja építeni a hiányzó vagy hibás bájtokat.

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

Gyakran ismételt kérdések

Mi a Reed–Solomon a QR-kódban?

Az a hibajavító módszer, amely extra kódszavakat ad az adathoz. A beolvasó ezekkel építi újra a sérült vagy olvashatatlan kódszavakat.

Ki találta fel a Reed–Solomon-kódokat?

Irving S. Reed és Gustave Solomon, akik 1960-ban publikálták őket. A kódokat ma optikai lemezeken, kommunikációban és a legtöbb 2D vonalkódban használják.

Miért működhet a QR-kód, ha a közepén logó van?

A logó olyan modulokat fed le, amelyeket a Reed–Solomon-hibajavítás újra tud építeni. Addig működik, amíg a lefedett terület a hibajavítási kapacitáson belül marad, és a keresőminták szabadok.

Források és szabványok

Minden fogalom