Różne formaty CD są nieco zaangażowane, a oficjalne specyfikacje („czerwona książka” dla płyty audio CD, „żółta książka” dla płyty CD z danymi) nie są dostępne za darmo. Ale niektóre szczegóły można znaleźć w dostępnych standardach, takich jak Ecma-130.
Oryginalna płyta audio CD (zwana także CD-DA) została modelowana na płycie winylowej, co oznacza, że wykorzystuje również spiralną ścieżkę ciągłych danych audio (DVD później wykorzystywało ścieżki okrągłe). Przeplatane w tych danych audio w bardzo złożony sposób jest 8 podkanałów (od P do W), z których podkanał Q zawiera informacje o taktowaniu (dosłownie w minutach / sekundach / ułamkach sekund) i bieżący numer ścieżki. W pierwotnym celu wystarczyło: w celu ciągłej gry obiektyw został lekko wyregulowany, aby podążać śladem. Aby szukać, soczewka poruszałaby się podczas dekodowania podkanału Q, dopóki nie zostanie znaleziona odpowiednia ścieżka. To ustawienie jest nieco zgrubne, ale całkowicie wystarczające do słuchania muzyki.
Do dziś wiele komputerowych napędów CD nie może całkowicie dokładnie ustawić obiektywu i zsynchronizować obwodów dekodujących, tak że odczyt próbek audio zaczyna się od dokładnej pozycji. Dlatego wiele programów do zgrywania płyt CD ma tryb „paranoi”, w którym nakładają się na siebie odczyty i porównują wyniki w celu dostosowania do tego „drgania”. W ramach strumienia audio podkanał również podlega fluktuacjom i dlatego podczas zgrywania na napędzie CD, który nie może dokładnie ustawić, otrzymujesz różne pliki subkanałowe.
Gdy specyfikacja CD z danymi (CD-ROM) została opracowana w celu rozszerzenia specyfikacji CD-DA, rozpoznano znaczenie dokładnego adresowania i odczytu danych, więc ramka dźwiękowa 2352 bajtów została podzielona na 12 bajtów synchronizacji i 4 bajty nagłówka (dla adres sektora), pozostawiając pozostałe 2336 bajtów danych i dodatkowy poziom korekcji błędów. Za pomocą tego schematu sektory można adresować dokładnie bez konieczności polegania wyłącznie na informacjach o kanale Q. Dlatego efekt fluktuacji nie ma zastosowania, zawsze dostajesz te same dane, kiedy zrzucasz CD-ROM, i nie jest wymagana dodatkowa sprytność w zrzucaniu.
Edytuj z większą ilością szczegółów:
Według Ecma-130 dane są szyfrowane etapami: 24 bajty tworzą ramkę F1 , bajty 106 z tych ramek są rozdzielane na 106 ramek F2 , które otrzymują 8 dodatkowych bajtów korekcji błędów. Każda z tych ramek z kolei otrzymuje dodatkowy bajt („bajt kontrolny”), aby przekształcić je w ramki F3 . Dodatkowy bajt zawiera informacje o podkanale (jeden podkanał na każdą pozycję bitu). Grupa 98 ramek F3 nazywana jest sekcją , a 98 powiązanych bajtów kontrolnych zawiera dwa bajty synchronizacji i 96 bajtów rzeczywistych danych subkanałowych. Dodatkowo podkanał Q ma 16 bitów korekcji błędów CRC w tych 96 bitach.
Ideą tego jest rozprowadzenie danych na powierzchni dysku w taki sposób, aby zadrapania, brud itp. Nie wpływały na wiele ciągłych bitów, więc korekcja błędów może odzyskać utracone dane, o ile rysy nie są za duży.
W rezultacie sprzęt napędu CD musi przeczytać całą sekcję po zmianie położenia soczewki, aby dowiedzieć się, gdzie jest ona w strumieniu danych. Odszyfrowanie różnych etapów odbywa się przez sprzęt, który musi zsynchronizować się z 2 bajtami synchronizacji w strumieniu bajtów kontrolnych. Wszystkie modele napędów CD potrzebują innego czasu na synchronizację niż inne modele (możesz to przetestować czytając z dwóch różnych napędów, jeśli je masz), w zależności od sposobu implementacji sprzętu. Ponadto wiele modeli nie zawsze synchronizuje się dokładnie w tym samym czasie, więc mogą rozpocząć nieco wcześniej lub później i wyodrębnić rozszyfrowane dane nie zawsze w tym samym bajcie.
Kiedy więc program zgrywający wydaje READ CD
polecenie (0xBE), podaje długość transferu i adres początkowy (a raczej czas kanału Q). Napęd ustawia soczewkę, rozszyfrowuje klatki, wyodrębnia kanał Q, porównuje czas, a gdy znajdzie właściwy czas, zaczyna przesyłać. Transfer ten nie zawsze zaczyna się od tego samego bajtu, jak wyjaśniono powyżej, więc wynik wielu READ CD
poleceń może zostać przesunięty względem siebie. Dlatego widzisz różne pliki subkanałów w swoim ripperie.
W zależności od sprzętu i okoliczności, w których obiektyw jest regulowany, jest mniej lub bardziej losowe, jeśli transfer rozpoczyna kilka próbek wcześniej lub kilka próbek późno. Zatem jedynym wzorem, który zobaczysz w wynikach, jest to, że przesunięcia są wielokrotnością długości transferu.
Niektóre modele napędów faktycznie mają dokładny sprzęt, który zawsze rozpocznie transfer w tym samym czasie. Standard definiuje nieco stronę trybu 0x2a („Możliwości CD / DVD i mechaniczna strona stanu”), która wskazuje, czy tak jest, ale rzeczywiste doświadczenia pokazują, że niektóre napędy, które twierdzą, że są dokładne, w rzeczywistości nie są. (W Linuksie możesz używać sg_modes
z sg3-utiles
pakietu do czytania stron trybu, nie wiem, jakiego narzędzia użyć w systemie Windows).