Format pliku MP3 składa się z ramek. Każda ramka zaczyna się od jedenastu bitów „1”, a także kilku bajtów metadanych kontrolujących przepływność i definiujących inne atrybuty. Każda ramka jest niezależna, została zaprojektowana w ten sposób do obsługi przesyłania strumieniowego.
Ramki mogą mieć CRC - kontrolę błędów. To jest opcjonalne.
System operacyjny prawdopodobnie spróbuje ponownie odczytać, jeśli napotka uszkodzone sektory na płycie CD (sprzęt CD ma swój własny mechanizm sprawdzania błędów, zanim koder MP3 cokolwiek zobaczy). Zakładając, że dekoder nie działa na bufor, dekoder nie otrzyma nowych danych podczas tego procesu i będzie musiał się zatrzymać. Jeśli system operacyjny nie może odczytać danych, może zgłosić błąd do systemu operacyjnego, który ostatecznie zostanie zgłoszony do procesu obsługującego koder MP3. Zależy od oprogramowania, co dzieje się dokładnie tutaj.
Kilka możliwych rzeczy może się zdarzyć, jeśli dane z płyty CD zostaną odczytane niepoprawnie i nadal trafią do dekodera (prawdopodobnie nie zdarzyłoby się to na komputerze, ale w samochodowym zestawie stereo lub innym urządzeniu innym niż komputer):
Dekoder MP3 szuka tych jedenastu 1 bitów, aby znaleźć początek ramki - jeśli ich nie znajdzie, prawdopodobnie przestanie dekodować do następnej ramki.
Jeśli dane nagłówka są złe, może odtwarzać ramkę przy niewłaściwej przepływności, ponieważ bajt wskazuje, która przepływność może być niepoprawna.
Jeśli bit CRC nagłówka jest ustawiony, a CRC nie pasuje, dekoder prawdopodobnie wyrzuci ramkę i nie odtworzy jej. Większość plików MP3 nie ma ustawionego bitu CRC.
Jeśli ładunek (dane po nagłówku) jest nieprawidłowy, dekoder MP3 spróbuje go odtworzyć.
Zadaniem dekodera jest pobieranie skompresowanych danych i generowanie nieskompresowanych danych w celu przekazania ich na „wyższy” poziom. Ten wyższy poziom faktycznie używa nieskompresowanych danych do sterowania urządzeniem audio. Zaryzykowałbym przypuszczenie, że większość konfiguracji koderów / sterowników audio ma bufor - o konfigurowalnym rozmiarze - w którym dekoder MP3 może gromadzić pewne dane dla sterownika audio i umożliwiać ponawianie odczytów.
W każdym razie, jeśli dekoder zatrzymał się, ponieważ nie otrzymuje danych, wyższy poziom faktycznie napędzający dźwięk może wykonać dowolną z poniższych czynności:
- Cisza wyjściowa na wyższym poziomie. Usłyszysz przerwę w dźwięku.
- Dekoder przestaje wypełniać dane do bufora audio, ale wyższy poziom kontynuuje odtwarzanie tego, co tam jest. Bufory audio są zazwyczaj „okrągłe”, co oznacza, że nie są zerowane, ale ciągle zastępowane nowymi danymi. Usłyszysz przeskakiwanie, które jest częścią poprzedniego odtwarzania dźwięku.
- Wyższy poziom jest inteligentny i próbuje interpolować to, co „powinno” być. Nie sądzę, że jest to bardzo powszechne.
Jeśli dekoder wyprowadza złe dane, usłyszysz szum lub trzask w dźwięku.
Odniesienia .