Error Correction on optical media

in short:

ECC = Reed-Solomon Error correction Code , ECC corrects errors on the fly by rewriting the blocks within the same track.

in depth:

Errors are inevitable but by means of robust error correction systems, CD and DVD can have uncorrectable error rates as low as that specified for computers, i.e., 10-12 (one uncorrectable error in one trillion). Audio applications do not require this degree of accuracy.

Sources of error: Include dropouts from the media (oxide wear, fingerprints, scratches), signal degradation (reflection, intersymbol interference, impedance mismatches, RF interference).

Measures of error: The burst length is the maximum number of adjacent erroneous bits that can be fully corrected. The bit-error rate BER is the number of error bits per total bits. Optical disk systems can handle BERs of 1:100000 to 1:10000. The block error rate BLER is the rate of block or frames per second having at least one incorrect bit. The burst error length BEL is the number of consecutive blocks in error.

Methods of correction: Goal is to introduce redundancy to permit validity checking and error detection, error correction code ECC to replace errors with calculated valid data, and error concealment to substitute approximate data for uncorrectable invalid data. Redundancy includes repeating the data, adding single-bit parity bits (to check if odd or even), checksums (e.g., weighted checksums computed modulo 11), and cyclic redundancy check code CRCC.

CRCC uses a parity check word obtained by dividing a k-bit data block by a fixed number (generation polynomial g) and appended to the data block to creat the transmission polynomial v. When the data u is received, it is divided by the same g, and the result subtracted from the original checksum to yield the syndrome c: a zero sydrome indicates no error. Error correction can be accomplished using mathematical manipulation and modulo arithmetic ... Polynomial notation is the standard terminology in the field: e.g., the fixed number 1001011 (MSB leading) is represented as 1x26 + 0x25 + 0x24 + 1x23 + 0x22 + 1x21 + 1x20 or 26 + 23+ 21 + 20. CRCC is typically used as an error pointer and other methods are used for correction.

Error correction techniques employ block codes having row and column parity (CRCC are a subclass of linear block codes), convolutional or recurrent codes (which introduce a delay), and interleaving including cross-interleaving.

Reed-Solomon R-S codes (Irving Reed and Gustave Solomon 1960) employ polynomials derived from Galois fields to encode and decode block data. They are a subclass of q-ary BCH codes which are a subclass of Hamming codes . They are especially effective in correcting burst errors and are widely used in audio, CD, DAT, DVD, direct broadcast satellite, and other apps. Cross-Interleave Reed-Solomon Code CIRC is used in CDs. It includes the use of C2 then C1 encoders (C1 then C2 on decoding). The C1 level of CIRC is meant to correct small, random errors. The C2 level corrects larger errors and burst errors. Interleaving is used between the C2 (28,24) and C1 (32,28) encoders and deinterleaving is needed on decoding. (28, 24) means 28*8 bits are output for the original 24*8 bit input and the final output is 32 8-bit words of which 8 are for "parity" and 24 are actual data. The cross-interleaving stores one C2 word in 28 different blocks spanning a distance of 109 blocks using delay lines etc., crossing the data array in two directions (thus "cross"). With audio CDs, CIRC can correct burst errors up to 3874 consecutive erroneous bits or symbols (2.5 mm track length) and can well conceal 13,282 error bits (8.7 mm) and marginally conceal 15,500 bits. The CD standard requires a block error rate BLER [the number of data blocks that have any bad symbols at the initial C1 error correction stage] of less than 220 per second averaged over 10 seconds (50 would be typical). There are 7350 blocks/sec on a CD (a block or frame, derived from 24x8=192 bits input data, is 32x8=256 bits output to modulator). The resulting CD data rate = 1.4112 Mbps (input data rate, not including parity bits added by CIRC and EFM).so the maximum Redbook BLER of 220/sec (averaged over 10 sec) allows 3% of the blocks to be erroneous. E12 is the rate of single symbol errors at the C2 encoder, which are correctable. E22 expresses the rate of double symbol errors at the C2 encoder--these are the worst but still correctable errors [the first number is always the number of errors and the second number is always the decoder level]. E32 errors are triple bit errors at C2 and are uncorrectable and require interpolation--they should not appear in a new CD and are unacceptable in a CD-ROM. Other measures of error are the E11, E21, E31. The burst error count BST combines E21 & E22 and expresses the number of consecutive C2 block errors that occur in excess of a threshold value such as 7. A new CD might typically have a raw bit error rate of 1E-5 to 1E-6, BLER = 5, E11 = 5, E22 = 0 and E31 = 0 and should never have E32 uncorrectable errors. Digital audio data can be copied with high reliability.

Error concealment includes interpolation (may be low or high order, zero order simply holds the last good value) and muting.

Credits: "Principles of Digital Audio", by Ken C. Pohlmann