Die verschiedenen CD-Formate sind etwas umständlich, und die offiziellen Spezifikationen ("rotes Buch" für Audio-CD, "gelbes Buch" für Daten-CD) sind nicht frei verfügbar. Einige Details finden Sie in verfügbaren Standards wie Ecma-130.
Die ursprüngliche Audio-CD (auch als CD-DA bezeichnet) wurde der Schallplatte nachempfunden, dh es wird auch eine spiralförmige Spur mit kontinuierlichen Audiodaten verwendet (auf der DVD wurden später kreisförmige Spuren verwendet). In diesen Audiodaten sind auf sehr komplexe Weise 8 Unterkanäle (P bis W) verschachtelt, von denen der Q-Unterkanal Zeitinformationen (buchstäblich in Minuten / Sekunden / Sekundenbruchteilen) und die aktuelle Spurnummer enthält. Für den ursprünglichen Zweck war dies ausreichend: Für kontinuierliches Spielen wurde das Objektiv nur leicht angepasst, um der Spur zu folgen. Zum Suchen bewegte sich das Objektiv, während der Q-Unterkanal decodiert wurde, bis die richtige Spur gefunden wurde. Diese Positionierung ist etwas grob, aber völlig ausreichend, um Musik zu hören.
Noch heute können viele Computer-CD-Laufwerke die Linse nicht vollständig genau positionieren und die Decodierschaltung synchronisieren, so dass das Lesen von Audio-Samples an einer genauen Position beginnt. Aus diesem Grund haben viele CD-Ripping-Programme einen "Paranoia" -Modus, in dem sie überlappende Lesevorgänge durchführen und die Ergebnisse vergleichen, um diesen "Jitter" auszugleichen. Als Teil des Audiostreams unterliegt der Unterkanal auch Jitter, und aus diesem Grund erhalten Sie unterschiedliche Unterkanaldateien, wenn Sie auf ein CD-Laufwerk rippen, das nicht genau positioniert werden kann.
Als die Daten-CD-Spezifikation (CD-ROM) entwickelt wurde, um die CD-DA-Spezifikation zu erweitern, wurde die Wichtigkeit erkannt, Daten genau zu adressieren und zu lesen, so dass der Audiorahmen von 2352 Byte in 12 Sync-Bytes und 4 Header-Bytes (z die Sektoradresse), wobei die verbleibenden 2336 Bytes für Daten und eine zusätzliche Fehlerkorrekturstufe verbleiben. Mit diesem Schema können Sektoren exakt adressiert werden, ohne sich nur auf die Q-Kanal-Informationen verlassen zu müssen. Daher tritt der Jitter-Effekt nicht auf, Sie erhalten immer die gleichen Daten, wenn Sie eine CD-ROM sichern, und es ist keine zusätzliche Cleverness beim Sichern erforderlich.
Bearbeiten Sie mit mehr Details:
Laut Ecma-130 werden die Daten stufenweise verschlüsselt: 24 Bytes bilden einen F1-Frame , die Bytes von 106 dieser Frames werden auf 106 F2-Frames verteilt , die 8 zusätzliche Bytes an Fehlerkorrektur erhalten. Diese Rahmen wiederum erhalten jeweils ein zusätzliches Byte ("Steuerbyte"), um sie zu F3-Rahmen zu machen . Das zusätzliche Byte enthält die Unterkanalinformationen (ein Unterkanal für jede Bitposition). Eine Gruppe von 98 F3-Frames wird als Abschnitt bezeichnet , und die 98 zugeordneten Steuerbytes enthalten zwei Synchronisationsbytes und 96 Bytes echte Unterkanaldaten. Der Q-Unterkanal hat zusätzlich 16 Bits CRC-Fehlerkorrektur in diesen 96 Bits.
Die Idee dahinter ist, Daten auf der Oberfläche der Festplatte so zu verteilen, dass Kratzer, Schmutz usw. nicht viele fortlaufende Bits beeinträchtigen. Die Fehlerkorrektur kann also die verlorenen Daten wiederherstellen, solange die Kratzer dies nicht tun zu groß.
Infolgedessen muss die Hardware des CD-Laufwerks nach dem Neupositionieren des Objektivs einen vollständigen Abschnitt lesen, um festzustellen, wo sich das Objektiv im Datenstrom befindet. Die Entwürfelung der verschiedenen Stufen erfolgt durch Hardware, die sich selbst mit den 2 Synchronisationsbytes im Steuerbyte-Datenstrom synchronisieren muss. Alle CD-Laufwerksmodelle benötigen eine andere Synchronisierungszeit als andere Modelle (Sie können dies testen, indem Sie von zwei verschiedenen Laufwerken lesen, sofern vorhanden), je nachdem, wie die Hardware implementiert ist. Außerdem benötigen viele Modelle nicht immer genau dieselbe Zeit für die Synchronisierung, sodass sie etwas früher oder später starten und die entschlüsselten Daten nicht immer auf demselben Byte ausgeben können.
Wenn das Ripping-Programm einen READ CD
(0xBE) -Befehl ausgibt, liefert es eine Übertragungslänge und eine Startadresse (oder besser gesagt eine Q-Kanal-Zeit). Das Laufwerk positioniert das Objektiv, entwürfelt die Bilder, extrahiert den Q-Kanal, vergleicht die Zeit und beginnt mit der Übertragung, wenn es die richtige Zeit findet. Diese Übertragung beginnt nicht immer mit demselben Byte wie oben beschrieben, sodass das Ergebnis mehrerer READ CD
Befehle gegeneinander verschoben werden kann. Aus diesem Grund sehen Sie unterschiedliche Unterkanaldateien von Ihrem Ripper.
Abhängig von der Hardware und den Umständen, unter denen das Objektiv eingestellt wird, ist es mehr oder weniger zufällig, wenn die Übertragung einige Proben zu früh oder einige Proben zu spät beginnt. Das einzige Muster, das Sie in den Ergebnissen sehen werden, ist, dass die Verschiebungen ein Vielfaches der Übertragungslänge sind.
Einige Laufwerksmodelle verfügen tatsächlich über genaue Hardware, die die Übertragung immer zur gleichen Zeit startet. Der Standard definiert ein Bit in der Modus-Seite 0x2a ("CD / DVD-Funktionen und mechanische Status-Seite"), das angibt, ob dies der Fall ist, aber die Praxis zeigt, dass einige Laufwerke, die behaupten, genau zu sein, dies tatsächlich nicht sind. (Unter Linux können Sie sg_modes
aus dem sg3-utiles
Paket die Modusseiten lesen, ich weiß nicht, welches Tool unter Windows verwendet werden soll).