|
Forum Index | Read LUG: Policy/Rules Messages Threads Digests | Post New Message | Search!
Hi All,
as several people have had a go at explaining, errors occur when reading
digital data from most forms of media, even hard disks! Error correction
codes were invented to overcome these (and other communications) problems.
The codes used on a CDDA disk are quite complex. They can compensate for a
burst error of approximately 3000 consequtive bits. Or, another way of
looking at it, of 2msecs of stereo audio data. This easily copes with
radial scratches. But it may not cope with scratches along the path of the
disk (circumferential). This is why CD cleaners are designed the way they
are. So that if they scratch the disk (dust etc. trapped) then it is likely
that the scratch will be radial and not circumferential.
The scheme works like this:
- Each sample has some extra bits added to it to allow some errors to be
corrected, and a larger range of errors detected. If the damage is too
great then it is not possible to correct or even detect all possible errors.
- the samples and error correcting codes are lined up together in rows until
there are 256 of them
- the data is then read out in columns
- extra error correction bits are applied to the column data
By slicing the data into columns the burst errors are distributed over many
samples at 1 error bit per sample. Each sample has error correcting
capability of several bits wrong per sample. So a bad burst error gets
distributed over many samples and so is easily corrected.
Once it is no longer possible to correct all the errors than the BAD data is
interpolated. ie. starting with the last known GOOD data draw line to the
next known GOOD bit of data. If the burst error is long enough that the
algorithm runs out of range then it starts drawing silence (drop outs).
Everything digital uses error correction! Everything.
Ray
Forum Index | Read LUG: Policy/Rules Messages Threads Digests | Post New Message | Search! © 1994-2008, All Rights Reserved. |