Katana VentraIP

Reed–Solomon error correction

Reed–Solomon codes are a group of error-correcting codes that were introduced by Irving S. Reed and Gustave Solomon in 1960.[1] They have many applications, including consumer technologies such as MiniDiscs, CDs, DVDs, Blu-ray discs, QR codes, Data Matrix, data transmission technologies such as DSL and WiMAX, broadcast systems such as satellite communications, DVB and ATSC, and storage systems such as RAID 6.

Reed–Solomon codes

nk + 1

q = pmn  (p prime)
Often n = q − 1.

[n, k, nk + 1]q-code

Reed–Solomon codes operate on a block of data treated as a set of finite-field elements called symbols. Reed–Solomon codes are able to detect and correct multiple symbol errors. By adding t = n − k check symbols to the data, a Reed–Solomon code can detect (but not correct) any combination of up to t erroneous symbols, or locate and correct up to t/2⌋ erroneous symbols at unknown locations. As an erasure code, it can correct up to t erasures at locations that are known and provided to the algorithm, or it can detect and correct combinations of errors and erasures. Reed–Solomon codes are also suitable as multiple-burst bit-error correcting codes, since a sequence of b + 1 consecutive bit errors can affect at most two symbols of size b. The choice of t is up to the designer of the code and may be selected within wide limits.


There are two basic types of Reed–Solomon codes – original view and BCH view – with BCH view being the most common, as BCH view decoders are faster and require less working storage than original view decoders.

Applications[edit]

Data storage[edit]

Reed–Solomon coding is very widely used in mass storage systems to correct the burst errors associated with media defects.


Reed–Solomon coding is a key component of the compact disc. It was the first use of strong error correction coding in a mass-produced consumer product, and DAT and DVD use similar schemes. In the CD, two layers of Reed–Solomon coding separated by a 28-way convolutional interleaver yields a scheme called Cross-Interleaved Reed–Solomon Coding (CIRC). The first element of a CIRC decoder is a relatively weak inner (32,28) Reed–Solomon code, shortened from a (255,251) code with 8-bit symbols. This code can correct up to 2 byte errors per 32-byte block. More importantly, it flags as erasures any uncorrectable blocks, i.e., blocks with more than 2 byte errors. The decoded 28-byte blocks, with erasure indications, are then spread by the deinterleaver to different blocks of the (28,24) outer code. Thanks to the deinterleaving, an erased 28-byte block from the inner code becomes a single erased byte in each of 28 outer code blocks. The outer code easily corrects this, since it can handle up to 4 such erasures per block.


The result is a CIRC that can completely correct error bursts up to 4000 bits, or about 2.5 mm on the disc surface. This code is so strong that most CD playback errors are almost certainly caused by tracking errors that cause the laser to jump track, not by uncorrectable error bursts.[7]


DVDs use a similar scheme, but with much larger blocks, a (208,192) inner code, and a (182,172) outer code.


Reed–Solomon error correction is also used in parchive files which are commonly posted accompanying multimedia files on USENET. The distributed online storage service Wuala (discontinued in 2015) also used Reed–Solomon when breaking up files.

Bar code[edit]

Almost all two-dimensional bar codes such as PDF-417, MaxiCode, Datamatrix, QR Code, and Aztec Code use Reed–Solomon error correction to allow correct reading even if a portion of the bar code is damaged. When the bar code scanner cannot recognize a bar code symbol, it will treat it as an erasure.


Reed–Solomon coding is less common in one-dimensional bar codes, but is used by the PostBar symbology.

Data transmission[edit]

Specialized forms of Reed–Solomon codes, specifically Cauchy-RS and Vandermonde-RS, can be used to overcome the unreliable nature of data transmission over erasure channels. The encoding process assumes a code of RS(NK) which results in N codewords of length N symbols each storing K symbols of data, being generated, that are then sent over an erasure channel.


Any combination of K codewords received at the other end is enough to reconstruct all of the N codewords. The code rate is generally set to 1/2 unless the channel's erasure likelihood can be adequately modelled and is seen to be less. In conclusion, N is usually 2K, meaning that at least half of all the codewords sent must be received in order to reconstruct all of the codewords sent.


Reed–Solomon codes are also used in xDSL systems and CCSDS's Space Communications Protocol Specifications as a form of forward error correction.

Lagrange interpolation of for i = 1 to n

BCH code

Berlekamp–Massey algorithm

Berlekamp–Welch algorithm

Chien search

Cyclic code

Folded Reed–Solomon code

Forward error correction

Gill, John (n.d.), (PDF), Stanford University, archived from the original (PDF) on June 30, 2014, retrieved April 21, 2010

EE387 Notes #7, Handout #28

Hong, Jonathan; Vetterli, Martin (August 1995), (PDF), IEEE Transactions on Communications, 43 (8): 2324–33, doi:10.1109/26.403765

"Simple Algorithms for BCH Decoding"

Lin, Shu; Costello, Jr., Daniel J. (1983), Error Control Coding: Fundamentals and Applications, Prentice-Hall,  978-0-13-283796-5

ISBN

(1960), "Encoding and Error Correction Procedures for the Bose-Chaudhuri Codes", IRE Transactions on Information Theory, IT-6 (4): 459–470, doi:10.1109/TIT.1960.1057586

Peterson, Wesley W.

; Solomon, Gustave (1960), "Polynomial Codes over Certain Finite Fields", Journal of the Society for Industrial and Applied Mathematics, 8 (2): 300–304, doi:10.1137/0108018

Reed, Irving S.

Welch, L. R. (1997), (PDF), Lecture Notes

The Original View of Reed–Solomon Codes

(1967), Nonbinary BCH decoding, International Symposium on Information Theory, San Remo, Italy, OCLC 45195002, AD0669824

Berlekamp, Elwyn R.

(1984) [1968], Algebraic Coding Theory (Revised ed.), Laguna Hills, CA: Aegean Park Press, ISBN 978-0-89412-063-3

Berlekamp, Elwyn R.

(1993), "The Ubiquitous Reed–Solomon Codes", SIAM News, 26 (1)

Cipra, Barry Arthur

(October 1965), "On Decoding BCH Codes", IEEE Transactions on Information Theory, 11 (4): 549–557, doi:10.1109/TIT.1965.1053825

Forney, Jr., G.

Koetter, Ralf (2005), , MIT Lecture Notes 6.451 (Video), archived from the original on 2013-03-13

Reed–Solomon Codes

MacWilliams, F. J.; (1977), The Theory of Error-Correcting Codes, North-Holland, ISBN 978-0-444-85010-2

Sloane, N. J. A.

; Chen, Xuemin (2012) [1999], Error-Control Coding for Data Networks, Springer, ISBN 9781461550051

Reed, Irving S.

(CMU)

Introduction to Reed–Solomon codes: principles, architecture and implementation

A Tutorial on Reed–Solomon Coding for Fault-Tolerance in RAID-like Systems

Algebraic soft-decoding of Reed–Solomon codes

Wikiversity:Reed–Solomon codes for coders

BBC R&D White Paper WHP031

Geisel, William A. (August 1990), , Technical Memorandum, NASA, TM-102162

Tutorial on Reed–Solomon Error Correction Coding

by Dr. Dave Forney (scholarpedia.org).

Concatenated codes

Reid, Jeff A. (April 1995), (PDF)

CRC and Reed Solomon ECC