The idea behind the error correction

Icon: Damaged medium (partially unreadable) Icon: Separate file with error correction data   The example from the previous page told us how dvdisaster reconstructs data by using the still readable parts of the medium together with the error correction data.

In order to get the most out of dvdisaster a basic understanding of the error correction method is helpful. And while we are at it we can refute a misunderstanding we sometimes hear - the error correction data is not simply a copy of the last 20% data sectors. That'd really be a cheap shot ;-)

80%Icon: Diagonal arrow right Icon: Diagonal arrow left20%
Icon: Complete image

Example: Anna's desk drawer PIN

Anna has got a desk whose drawers can only be opened after entering the numbers "8 6 2 3" into a code lock. Since the drawers do not contain any sensitive information she decides to note down the numbers directly on the desktop:

8 6 2 3

Anna is cautious and expects one of the numbers to become unreadable by accidentally pouring ink over it. Therefore she also notes down the sum of the four numbers (the "+" and "=" signs have only be added for clarity):

8+6+2+3=19

After a while one of the numbers indeed gets covered by an ink spot:

8+ +6+2+3=19

But this is not a problem as Anna can re-calculate the missing number x by rearranging the still readable parts of the equation:

8 + x + 2 + 3 = 19, hence

x = 19 - 8 - 2 - 3, and therefore x = 6.

It is easily seen that any one of the original five numbers can be recovered from the remaining four. The example also demonstrates some important properties of the error correction:

8+6+2+3 (medium)=19 (ecc)   For a given set of data (e.g. the numbers "8 6 2 3") additional error correction data (e.g. the sum "19") can be created so that a lost datum can be re-calculated from the remaining data.

The same principle is used in dvdisaster; the protected sequence of numbers is nothing else than the ISO image of a CD, DVD or BD.

The concept of redundancy can be explained as follows:

dvdisaster uses the term of redundancy accordingly. In addition please observe that

The above shown example does not generalize into an error correction scheme for recovering more than one missing data value. To do so a more powerful equation system is needed which can be solved for more than one missing value. dvdisaster uses a Reed-Solomon code which does have such properties; however the required math is not taught in school. Interested readers are therefore referred to the respective books in coding theory.