<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Fehlerkorrektur</title> <link rel="stylesheet" type="text/css" href="../include/dvdisaster.css"> </head> <body> <!-- Title header --> <table width="100%" cellpadding="0" border="0"> <tr> <td align="left"> <span class="fxxl"><b>dvdisaster</b></span> <i>Version 0.72.6 / 0.79 (devel-3)</i> </td> <td align="right"> <span class="fxxl"> </span><a href="http://dvdisaster.net/de/">Zur Internet-Version</a> <a href="../cs/howtos61.html"></a> <a href="../en/howtos61.html"></a> <a href="../ru/howtos61.html"></a> </td> </tr> </table> <!-- Language chooser or separator --> <table width="100%" cellpadding="0" border="0"> <tr> <td colspan="2" class="hsep"></td> </tr> <tr><td colspan="2" style="height: 10px"> </td></tr> </table> <!-- Main body (Navigation, actual page content, optional news column) --> <table width="100%" cellspacing=0> <tr> <!-- Navigation --> <td style="background-color:#f0f0f0; vertical-align:top; width:20%;"> <table width="100%" cellpadding="10"> <tr> <td> <span class="fs"><b>Inhalt</b></span> <table width="100%" cellpadding="0" cellspacing="0"> <tr> <td class="hsep"></td> </tr> </table><p> <table width="100%"> <tr><td colspan=3><span class="fs"><a href="news.html">Neuigkeiten</a></span></td></tr> <tr><td></td><td></td><td style="height:10px;"></td></tr> <tr><td colspan=3><span class="fs"><a href="index.html">Überblick</a></span></td></tr> <tr><td></td><td></td><td style="height:10px;"></td></tr> <tr><td colspan=3><span class="fs"><a href="howtos.html">Typische Anwendungen</a></span></td></tr> <tr><td style="width:1%; vertical-align:top;">·</td><td colspan=2><span class="fs"><a href="howtos60.html">Das große Bild</a></span></td></tr> <tr><td></td><td style="vertical-align:top; font-size:small;">-</td><td><span class="fs">Fehlerkorrektur</span></td></tr> <tr><td></td><td style="vertical-align:top; font-size:small;">-</td><td><span class="fs"><a href="howtos62.html">richtige Anwendung</a></span></td></tr> <tr><td></td><td style="vertical-align:top; font-size:small;">-</td><td><span class="fs"><a href="howtos63.html">falsche Anwendung</a></span></td></tr> <tr><td style="width:1%; vertical-align:top;">·</td><td colspan=2><span class="fs"><a href="howtos10.html">Datenträger auf Lesefehler prüfen</a></span></td></tr> <tr><td style="width:1%; vertical-align:top;">·</td><td colspan=2><span class="fs"><a href="howtos20.html">Fehlerkorrektur-Daten als Datei erzeugen</a></span></td></tr> <tr><td style="width:1%; vertical-align:top;">·</td><td colspan=2><span class="fs"><a href="howtos30.html">Fehlerkorrektur-Daten auf dem Datenträger ablegen</a></span></td></tr> <tr><td style="width:1%; vertical-align:top;">·</td><td colspan=2><span class="fs"><a href="howtos40.html">Datenträger-Abbild rekonstruieren</a></span></td></tr> <tr><td style="width:1%; vertical-align:top;">·</td><td colspan=2><span class="fs"><a href="howtos50.html">Informationen über Abbilder und Fehlerkorrektur-Daten anzeigen</a></span></td></tr> <tr><td style="width:1%; vertical-align:top;">·</td><td colspan=2><span class="fs"><a href="howtos90.html">Abbild-Kompatibilität überprüfen</a></span></td></tr> <tr><td style="width:1%; vertical-align:top;">·</td><td colspan=2><span class="fs"><a href="howtosa0.html">Bedienelemente</a></span></td></tr> <tr><td></td><td></td><td style="height:10px;"></td></tr> <tr><td colspan=3><span class="fs"><a href="download.html">Herunterladen</a></span></td></tr> <tr><td></td><td></td><td style="height:10px;"></td></tr> <tr><td colspan=3><span class="fs"><a href="qa.html">Fragen und Antworten</a></span></td></tr> <tr><td></td><td></td><td style="height:10px;"></td></tr> <tr><td colspan=3><span class="fs"><a href="feedback.html">Fehler berichten</a></span></td></tr> </table> </td> </tr> </table> </td> <td></td> <!-- Actual page contents --> <td style="vertical-align:top; width:77%;" rowspan="2"> <!-- Insert actual page content below --> <h3 class="top">Die Idee der Fehlerkorrektur</h3> <table width="100%"> <tr valign="top"> <td><img src="../images/bad-cd.png" alt="Symbol: Beschädigter Datenträger (teilweise unlesbar)"></td> <td> </td> <td><img src="../images/ecc.png" alt="Symbol: Eigenständige Fehlerkorrektur-Datei"></td> <td> </td> <td rowspan="3"> In dem Beispiel auf der letzten Seite haben wir gesehen, daß dvdisaster die Daten aus den noch lesbaren Teilen des defekten Datenträgers und den Fehlerkorrektur-Daten wiederherstellt.<p> Ein grundlegendes Verständnis der Fehlerkorrektur ist auf jeden Fall hilfreich, um dvdisaster nutzbringend einzusetzen. Bei der Gelegenheit können wir mit der ab und zu gemachten Vermutung aufräumen, daß die Fehlerkorrektur-Daten nur eine Kopie der letzten 20% des Datenträgers seien. So einfach geht es nun auch wieder nicht ;-) </td> </tr> <tr> <td align="right" class="w65x">80%<img src="../images/rdiag-arrow.png" alt="Symbol: Diagonaler Pfeil nach rechts"></td> <td> </td> <td align="left" class="w65x"><img src="../images/ldiag-arrow.png" alt="Symbol: Diagonaler Pfeil nach links">20%</td> <td> </td> </tr> <tr> <td> </td> <td> <img src="../images/good-image.png" alt="Symbol: Vollständiges Abbild"></td> <td> </td> <td> </td> </tr> </table><p> <b>Beispiel: Annas Schreibtisch-PIN</b><p> Anna besitzt einen Schreibtisch, dessen Schubladen nur aufgehen, wenn man die Zahlenkombination "8 6 2 3" eingibt. Da die Schubladen keinen wertvollen Inhalt enthalten, beschließt Anna die Zahlenkombination auf dem Schreibtisch zu notieren:<p> <img src="../images/ecc-example1.png" alt="Zahlenkombination 8 6 2 3"><p> Allerdings befürchtet sie, daß eine der Zahlen durch einen Tintenfleck unlesbar werden könnte. Daher schreibt sie zusätzlich noch die Summe der vier Zahlen dazu ("+" und "=" - Zeichen sind nur zur Verdeutlichung dazugeschrieben):<p> <img src="../images/ecc-example2.png" alt="8+6+2+3=19"><p> Nach einer Weile wird tatsächlich eine Zahl durch einen Tintenfleck verdeckt:<p> <img src="../images/ecc-example3.png" alt="8+(unlesbar)+2+3=19"><p> Das ist aber kein Problem, da Anna sich die fehlende Zahl <i>x</i> durch Umstellen der Gleichung wieder ausrechnen kann:<p> 8 + x + 2 + 3 = 19, also<p> x = 19 - 8 - 2 - 3, demnach ist x = 6.<p> Man kann sich leicht davon überzeugen, daß auf diese Weise jede Zahl aus den anderen vier Zahlen wieder berechnet werden kann. Das Rechenbeispiel verdeutlicht außerdem die grundlegenden Eigenschaften der Fehlerkorrektur: <p> <table><tr><td><img src="../images/ecc-example4.png" alt="8+6+2+3 (CD)=19 (ecc)"></td><td> </td> <td class="valignt"> Zu einer gegebenen Menge von Daten (hier die Zahlenfolge "8 6 2 3") kann man zusätzliche Fehlerkorrektur-Daten berechnen (hier die Summe "19"), mit denen sich verlorengegangene Daten wieder errechnen lassen.<p> Bei dvdisaster ist es ganz ähnlich; hier ist die zu schützende Zahlenfolge nichts anderes als das ISO-Abbild einer CD, DVD oder BD.</td> </tr></table><p> Der Begriff der <b>Redundanz</b> läßt sich damit wie folgt erklären: <ul> <li>Zu 4 Eingabezahlen wird eine weitere "Fehlerkorrektur-Zahl" berechnet. 1 von 4 (oder 1/4) entspricht einer Redundanz von 25%.</li> <li> Aus der Fehlerkorrektur-Zahl kann eine andere Zahl wieder berechnet werden, also höchstens 25% der Daten. Die Kapazität der Fehlerkorrektur entspricht der Redundanz.</li> <li> Der zusätzliche Speicherverbrauch durch die Fehlerkorrektur-Daten entspricht ebenfalls der gewählten Redundanz, also 25%</li> </ul> In dvdisaster wird der Begriff der Redundanz entsprechend verwendet. Außerdem kann man sich durch Nachrechnen überlegen, daß <ul> <li>keine Daten wiederhergestellt werden können, wenn der Datenverlust größer als die Redundanz ist (für zwei oder mehr fehlende Zahlen kann die Gleichung nicht eindeutig gelöst werden).</li> <li>die Fehlerkorrektur-Daten berechnet werden müssen, wenn noch alle Daten vorhanden sind.</li> </ul><p> Das hier gezeigte Summenbeispiel läßt sich allerdings nicht zur einer Fehlerkorrektur verallgemeinern, die mehr als einen fehlenden Datenwert korrigieren kann. Dazu braucht man ein mächtigeres Gleichungssystem, das sich auch für mehrere fehlende Werte (= Variablen) eindeutig lösen läßt. Der in dvdisaster verwendete <a href="http://de.wikipedia.org/wiki/Reed-Solomon-Code">Reed-Solomon-Kode</a> hat diese Eigenschaften; er ist jedoch mit der üblichen Schulmathematik nicht anschaulich zu erklären. Daher mögen an weiterführenden Informationen interessierte Leser die entsprechende Literatur aus der Kodierungstheorie hinzuziehen. <!-- do not change below --> </td> <!-- end of page contents --> </tr> </table> <!-- end of main body table --> <!-- Page footer --> <table width="100%" cellpadding="0" border="0"> <tr><td colspan="2" style="width:100%; height:10px;"></td> </tr> <tr><td colspan="2" class="hsep"></td> </tr> <tr> <td align="center"> <span class="fs"> <i> Copyright 2004-2014 Carsten Gnörlich.<br> Die unveränderte Wiedergabe und Verteilung dieses gesamten Textes in beliebiger Form ist gestattet, sofern dieser Hinweis erhalten bleibt. </i> </span> </td> </tr> <tr><td colspan="2" class="hsep"></td> </tr> </table> </body> </html>