Die verschiedenen CD-Formate sind etwas kompliziert und die offiziellen Spezifikationen ("Red Book" für Audio-CDs, "Yellow Book" für Daten-CDs) sind nicht frei verfügbar. Einige Details finden Sie jedoch in verfügbaren Standards wie Ecma-130.
Die ursprüngliche Audio-CD (auch CD-DA genannt) wurde auf der Vinyl-Schallplatte modelliert, was bedeutet, dass sie auch eine spiralförmige Spur kontinuierlicher Audiodaten verwendet (die DVD verwendet später kreisförmige Spuren). In sehr komplexer Weise in diesen Audiodaten verschachtelt sind 8 Unterkanäle (P bis W), von denen der Q-Unterkanal Timing-Informationen (wörtlich in Minuten / Sekunden / Sekundenbruchteilen) und die aktuelle Spurnummer enthält. Für den ursprünglichen Zweck war das ausreichend: Für ein kontinuierliches Spiel wurde das Objektiv nur leicht an die Spur angepasst. Um zu suchen, würde sich die Linse bewegen, 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 das Objektiv nicht vollständig positionieren und die Decodierschaltung synchronisieren, so dass das Lesen von Audio-Samples an einer exakten Position beginnt. Aus diesem Grund haben viele CD-Ripping-Programme einen "Paranoia" -Modus, in dem sie sich überschneiden und die Ergebnisse vergleichen, um diesen "Jitter" auszugleichen. Als Teil des Audiostreams ist auch der Unterkanal Jitter ausgesetzt. Aus diesem Grund erhalten Sie unterschiedliche Unterkanaldateien, wenn Sie auf einem CD-Laufwerk rippen, das nicht genau positioniert werden kann.
Als die Daten-CD (CD-ROM) -Spezifikation entwickelt wurde, um die CD-DA-Spezifikation zu erweitern, wurde die Bedeutung des genauen Adressierens und Lesens von Daten erkannt, so dass der Audiorahmen von 2352 Byte in 12 Sync-Bytes und 4 Header-Bytes (z die Sektoradresse), wobei die restlichen 2336 Bytes für Daten und eine zusätzliche Fehlerkorrekturstufe verbleiben. Mit diesem Schema können Sektoren genau adressiert werden, ohne sich nur auf die Q-Kanalinformationen zu verlassen. Daher ist der Jitter-Effekt nicht wirksam, Sie erhalten beim Ablegen einer CD-ROM immer dieselben Daten und es ist keine zusätzliche Klugheit beim Ablegen 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 in 106 F2-Frames aufgeteilt, die 8 zusätzliche Bytes Fehlerkorrektur erhalten. Diese Frames erhalten wiederum ein zusätzliches Byte ("Control-Byte"), um sie zu F3-Frames zu machen . Das zusätzliche Byte enthält die Unterkanalinformationen (einen Unterkanal für jede Bitposition). Eine Gruppe von 98 F3-Frames wird als Abschnitt bezeichnet, und die 98 zugehörigen Steuerbytes enthalten zwei Synchronisationsbytes und 96 Bytes realer Unterkanaldaten. Der Q-Unterkanal hat zusätzlich 16 Bit CRC-Fehlerkorrektur in diesen 96 Bit.
Die Idee dahinter ist, Daten auf der Oberfläche der Platte so zu verteilen, dass Kratzer, Schmutz usw. nicht viele kontinuierliche Bits beeinträchtigen, sodass die Fehlerkorrektur die verlorenen Daten wiederherstellen kann, solange die Kratzer nicht auftreten zu groß.
Folglich muss die Hardware des CD-Laufwerks einen vollständigen Abschnitt lesen, nachdem das Objektiv neu positioniert wurde, um herauszufinden, wo es sich im Datenstrom befindet. Die Entschlüsselung der verschiedenen Stufen erfolgt durch Hardware, die sich selbst mit den 2 Sync-Bytes im Control-Byte-Stream synchronisieren muss. Alle CD-Laufwerksmodelle benötigen für die Synchronisierung eine andere Zeit als andere Modelle (Sie können dies testen, indem Sie von zwei verschiedenen Laufwerken lesen, falls vorhanden), je nachdem, wie die Hardware implementiert ist. Außerdem benötigen viele Modelle nicht immer die gleiche Zeit für die Synchronisierung, sodass sie etwas zu früh oder zu spät starten können und die entschlüsselten Daten nicht immer im selben Byte ausgeben.
Wenn das Ripping-Programm einen READ CD
(0xBE) -Befehl ausgibt, liefert es also eine Übertragungslänge und eine Startadresse (oder besser: Q-Kanal-Zeit). Das Laufwerk positioniert das Objektiv, entschlüsselt die Einzelbilder, extrahiert den Q-Kanal, vergleicht die Zeit und wenn die richtige Zeit gefunden wird, beginnt die Übertragung. Diese Übertragung beginnt nicht immer mit demselben Byte, wie oben erläutert, sodass das Ergebnis mehrerer READ CD
Befehle gegeneinander verschoben werden kann. Aus diesem Grund sehen Sie verschiedene Unterkanaldateien von Ihrem Ripper.
Abhängig von der Hardware und den Umständen, wenn das Objektiv eingestellt wird, ist es mehr oder weniger zufällig, ob die Übertragung einige Samples zu früh oder einige Samples zu spät beginnt. Das einzige Muster, das Sie in den Ergebnissen sehen, ist also, dass die Verschiebungen ein Vielfaches der Übertragungslänge sind.
Einige Antriebsmodelle verfügen über genaue Hardware, die immer gleichzeitig übertragen wird. Der Standard definiert ein Bit in der Modeseite 0x2a ("CD- / DVD-Fähigkeiten und mechanische Statusseite"), das angibt, ob dies der Fall ist. In der Praxis ist es jedoch so, dass einige Laufwerke, die behaupten, genau zu sein, tatsächlich nicht der Fall sind. (Unter Linux können Sie die Modusseiten sg_modes
aus dem sg3-utiles
Paket lesen. Ich weiß nicht, welches Tool unter Windows verwendet werden soll.)