Skip to content

Commit 48a86b7

Browse files
committed
add some info about RS03 in readme
1 parent 3d1bf46 commit 48a86b7

File tree

1 file changed

+38
-18
lines changed

1 file changed

+38
-18
lines changed

README.md

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -44,37 +44,57 @@ with this version 10+ years from now. Regression tests are here to ensure this i
4444

4545
For a more detailed explanation of the algorithms, please refer to the [codecs specification PDF](documentation/codecs.pdf).
4646

47-
:one: **RS01** creates error correction files which are stored separately from the image they belong to.
47+
:arrow_forward: **RS01** creates error correction files which are stored separately from the image they belong to.
4848
The artefact is an **ecc** file, which must be stored on another media than the one we're protecting.
4949

50-
:two: **RS02** creates error correction data which is added to the medium to protect, we call this *augmenting* the image we're protecting.
50+
:arrow_forward: **RS02** creates error correction data which is added to the medium to protect, we call this *augmenting* the image we're protecting.
5151
Damaged sectors in the error correction information reduce the data recovering capacity,
5252
but do not make recovery impossible - a second medium for keeping or protecting the error correction information is not required.
53+
Intelligent adaptive reading is also available when reading a damaged RS02-protected disc: dvdisaster will only attempt
54+
to read the minimum amount of required sectors to be able to rebuild the image, using a so-called "divide and conquer"
55+
seeking mechanism, cutting off up to 90% of the time required to read and recover a damaged media.
5356

54-
:three: **RS03** is a further development of RS01 and RS02. It can create both error correction files and
57+
:arrow_forward: **RS03** is a further development of RS01 and RS02. It can create both error correction files and
5558
augmented images, with the following added features:
5659

57-
- RS03 can use multiple CPU cores and is therefore **much** faster than RS01/RS02 on modern hardware.
58-
- RS03 error correction files are - contrary to RS01, and to a lesser extent RS02 - robust against damage.
59-
- RS03 is more robust, but also more restrictive: The augmented image must completely fill the medium now while the size of augmented images can be freely chosen in RS02.
60-
The changes for parallel computation and higher robustness make RS03 a bit less space efficient,
61-
e.g. RS03 error correction data has slighly less (around -3%) error correction capacity than its RS01/RS02 counterparts on images with equal size.
60+
- It can use multiple CPU cores and is therefore **WAY** faster than RS01/RS02 on modern hardware.
61+
- RS03 augmented images and error correction files are - contrary to RS01, and to a lesser extent RS02 - robust against
62+
damage of the dvdisaster-added recovery data itself
63+
64+
There are, however, a few cons that must be noted:
65+
66+
- In image mode, the RS03 augmented image file size will be picked up from a predefined list of well-known medium sizes,
67+
while the size of augmented images can be freely chosen in RS02. This is the "price to pay" for the added robustness
68+
of the correction data.
69+
- In image mode, intelligent adaptive reading is not available for RS03-protected images. The "divide and conquer"
70+
algorithm will still be used, but dvdisaster will not stop as soon as enough sectors have been recovered to rebuild
71+
the image: it'll attempt to read them all until you stop it, or until it tried to read all the sectors. You can still
72+
stop it manually and attempt a "verify" of the resulting image file, to see if enough data has been read for recovery,
73+
otherwise resuming the adaptive reading until this is the case.
74+
- The changes for parallel computation and higher robustness make RS03 a tiny bit less space efficient, e.g. RS03 error
75+
correction data has slighly less (around -3%) error correction capacity than its RS01/RS02 counterparts on images with
76+
equal size. This is usually considered a cheap price to pay for the added robustness against corruption.
6277

6378
Rough comparison table:
6479

65-
| Codecs | RS01 | RS02 | RS03 |
66-
|------------------|--------------------------------|--------------------------------|--------------------------------|
67-
| Robustness\* | :star: | :star::star::star: | :star::star::star::star::star: |
68-
| Speed | :star::star: | :star: | :star::star::star::star::star: |
69-
| Space efficiency | :star::star::star::star::star: | :star::star::star::star::star: | :star::star::star::star: |
70-
| Augmented images | :x: | :heavy_check_mark: | :heavy_check_mark: |
71-
| Separate files | :heavy_check_mark: | :x: | :heavy_check_mark: |
80+
| Codecs | RS01 | RS02 | RS03 |
81+
|--------------------------------------|--------------------------------|--------------------------------|--------------------------------|
82+
| Create ECC-augmented images | :x: | :heavy_check_mark: | :heavy_check_mark: |
83+
| Create separate ECC files | :heavy_check_mark: | :x: | :heavy_check_mark: |
84+
| Robustness :one: | :star: | :star::star::star: | :star::star::star::star::star: |
85+
| Space efficiency | :star::star::star::star::star: | :star::star::star::star::star: | :star::star::star::star: |
86+
| Computational generation speed :two: | :star::star: | :star: | :star::star::star::star::star: |
87+
| Computational repair speed :two: | :star::star::star: | :star::star::star: | :star::star::star: |
88+
| Damaged media recovery speed :three: | :four: | :star::star::star: | :star: |
89+
| Supports custom augmented image size | :four: | :heavy_check_mark: | :x: |
90+
91+
:one: Robustness against corruption of the dvdisaster-added ECC parts themselves. The higher the ranking, the less it is likely than a few badly located damaged sectors render the whole correction impossible because they affect dvdisaster metadata on-disc. For example corruption of the first dozens of sectors of an image can make RS02 entirely unusable regardless of the redundancy.
7292

73-
\*Robustness against corruption of the dvdisaster-added ECC parts themselves
93+
:two: When algorithm is CPU-bound, i.e. generating or repairing an image stored on a SSD/NVMe drive.
7494

75-
A rough decision chart follows:
95+
:three: Using adaptive reading when supported (RS02), linear reading otherwise (RS03), assuming a badly damaged media, taking into account the time the drive takes to try to read damaged sectors.
7696

77-
![dvdisaster codec decision chart](https://i.imgur.com/QTgiack.png)
97+
:four: Only applicable to augmented images.
7898

7999
# :bulb: Rationale
80100

0 commit comments

Comments
 (0)