dvdisaster Version 0.72.6 / 0.79 (devel-3)  To the Internet version
Contents

News
Overview
Howtos
·The big picture
-error correction
-correct usage
-incorrect usage
·Scanning media for errors
·Putting error correction data on a separate file
·Putting error correction data on the medium
·Recovering media images
·Getting information about images and error correction data
·Testing image compatibility
·Dialogs and buttons
Download
Questions and Answers
Bug reporting

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:

  • One "error correction number" is calculated for four input numbers. 1 of 4 (or 1/4) relates to a redundancy of 25%.
  • From one error correction number we can re-calculate exactly one missing number, or at most 25% of data. The redundancy is equivalent to the maximum capacity of the error correction.
  • Additional storage required for the error correction data is also determined by the redundancy (25% in the example).
dvdisaster uses the term of redundancy accordingly. In addition please observe that
  • no data can be recovered when the data loss exceeds the redundancy (the equation in the example can not be solved for two or more unknowns).
  • the error correction data must be calculated at a point in time where all data is still present / readable.

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.

Copyright 2004-2014 Carsten Gnörlich.
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.