Reed-Solomon Error Correction Codes

There are two views of Reed-Solomon codes, Original view and BCH view, make sure which view you are reading about.

It seems to me, BCH view is most common used (QR codes, CD/DVD, FEC in communications like DVB or 100GbE), and can do both erasure and error corrections. Original view is mainly used for erasure codes in (distributed) storage systems.

Original view BCH view
Message As coefficients of polynomial
Codeword As values of at As coefficients of polynomial
Characteristic Vandermonde matrix Generator polynomial
Usuall small, for erasure codes in storage systems , usually
Basic encoding
Systematic encoding
Implementation More memory for or linear feedback shift register (LFSR)
Erasure decoding Inverse of matrix Forney algorithm
Error correction decoding Berlekamp-Welch (1983), Shuhong Gao (2002) PGZ (1960), Berlekamp-Massey (1967)

Reed-Solomon error correction in Python

decoder

Open In Colab

https://github.com/chenshuo/notes/blob/master/notebooks/ReedSolomonErasureCodes.ipynb

Reference

Tutorials

Starts here

Polynomial visualize

Finite Field

Error correction decoding in BCH view

Erasure decoding in original view

Videos

Course notes

Open source

Original view (Vandermonde Reed-Solomon)

BCH view

History and People

Authors