Asal-usul dan penggunaan yang lebih luas
Kode Reed–Solomon dijelaskan oleh Irving S. Reed dan Gustave Solomon pada 1960. Kode ini bekerja pada simbol utuh, biasanya byte, bukan bit tunggal, sehingga andal menangani kerusakan beruntun seperti goresan atau noda.
Keluarga kode yang sama melindungi data pada CD, DVD, dan cakram Blu-ray, di sebagian siaran televisi digital dan tautan satelit, serta pada barcode 2D lain termasuk Data Matrix ECC 200, Aztec code, dan PDF417.
Cara QR code memakainya
QR code memperlakukan setiap codeword 8-bit sebagai elemen medan hingga GF(256), yang dibangun dengan polinomial primitif x^8 + x^4 + x^3 + x^2 + 1 (heks 0x11D). Codeword data dibagi dengan polinomial pembangkit, dan sisanya menjadi codeword koreksi kesalahan yang ditambahkan di belakangnya.
Kode yang lebih besar membagi datanya menjadi beberapa blok, masing-masing dengan codeword koreksi kesalahan sendiri. Blok-blok itu kemudian di-interleave saat codeword ditempatkan di kisi, sehingga satu area kerusakan tersebar ke banyak blok, bukan membebani satu blok saja.
Seberapa banyak yang bisa diperbaiki
Dengan n codeword koreksi kesalahan dalam sebuah blok, decoder dapat mengoreksi hingga n/2 codeword yang posisinya tidak diketahui, atau hingga n codeword yang posisinya diketahui, disebut erasure. Kasus campuran mengikuti aturan bahwa setiap kesalahan dihitung dua kali dan setiap erasure sekali.
Itulah sebabnya kode dengan area bersih dan rata yang tertutup logo masih bisa di-scan: pembaca yang cerdas dapat memperlakukan area tertutup sebagai erasure, sementara kerusakan acak lebih sulit diperbaiki karena decoder harus menemukannya lebih dulu.
- Kesalahan tak diketahui: hingga setengah jumlah codeword EC
- Erasure (posisi diketahui): hingga sejumlah codeword EC
- Medan: GF(256), polinomial 0x11D
- Blok di-interleave untuk menyebar kerusakan beruntun