Kompresja MP3

Kompresja audio oparta na modelu psychoakustycznym osiągająca współczynnik kompresji 10:1.

Dźwięk Danych: Dlaczego Potrzebujemy Kompresji Audio

Dźwięk cyfrowy zrewolucjonizował sposób, w jaki doświadczamy muzyki, podcastów i filmów. Pozwala na idealne powielanie i łatwą dystrybucję, ale ma to swoją cenę: ogromne rozmiary plików. Aby zrozumieć rewolucję, jaką przyniósł format MP3, musimy najpierw pojąć skalę danych wymaganych dla nieskompresowanego dźwięku o wysokiej jakości.

Standardem dla dźwięku o jakości CD jest metoda cyfrowej reprezentacji o nazwie . Metoda ta przechwytuje dźwięk, wykonując tysiące migawek analogowej fali dźwiękowej co sekundę. Dla standardowej płyty CD parametry te to:

  • Częstotliwość Próbkowania: Fala dźwiękowa jest próbkowana 44,10044,100 razy na sekundę (44.144.1 kHz). Ta częstotliwość jest wystarczająca do uchwycenia wszystkich częstotliwości w zakresie słuchu ludzkiego.
  • Głębia Bitowa: Każda próbka jest zapisywana z 16-bitową precyzją. Oznacza to, że istnieje 2162^{16}, czyli 65,536, możliwych poziomów głośności dla każdej próbki, co zapewnia duży zakres dynamiki.
  • Kanały: Standardowa muzyka jest stereofoniczna, co oznacza, że istnieją dwa oddzielne kanały audio, jeden dla lewego i jeden dla prawego głośnika.

Obliczmy szybkość transmisji danych dla nieskompresowanego dźwięku CD:

44,100 proˊbek/s×16 bitoˊw/proˊbkę×2 kanały=1,411,200 bitoˊw na sekundę (bps)44,100 \text{ próbek/s} \times 16 \text{ bitów/próbkę} \times 2 \text{ kanały} = 1,411,200 \text{ bitów na sekundę (bps)}

Jest to często wyrażane jako 1,4111,411 kilobitów na sekundę (kbps).

Typowa trzyminutowa piosenka wymagałaby zatem około 32 megabajtów pamięci. Cały album zająłby ponad 650 megabajtów, czyli całą pojemność płyty CD. Pobieranie takiego pliku na wczesnym połączeniu internetowym trwałoby całą noc. Format MP3 wszystko zmienił. Jego celem było zmniejszenie rozmiaru pliku o współczynnik 10:1 lub nawet 12:1, zamieniając plik 32 MB w łatwy do zarządzania plik 3 MB, przy jednoczesnym zachowaniu jak najwyższej postrzeganej jakości dźwięku. Osiągnął to nie za pomocą czystej matematyki, ale dzięki zrozumieniu niedoskonałości ludzkiego ucha.

Psychoakustyka: Sekret Sukcesu MP3

Geniusz kompresji leży w dziedzinie nauki zwanej . Zamiast traktować każdy bit danych audio jako równie ważny, algorytm MP3 tworzy , aby zdecydować, które części dźwięku prawdopodobnie nie usłyszymy. Odrzucając te niesłyszalne informacje, osiąga ogromną redukcję rozmiaru pliku. Proces ten nazywa się kodowaniem percepcyjnym. Opiera się on na kilku kluczowych zjawiskach ludzkiego słuchu.

Maskowanie Słuchowe: Dźwiękowy Płaszcz Niewidka

Maskowanie słuchowe jest kamieniem węgielnym kompresji MP3. Opisuje ono efekt, w którym głośny dźwięk, „masker”, uniemożliwia usłyszenie cichszego dźwięku, sygnału „maskowanego”. Jeśli dźwięk i tak będzie niesłyszalny dla słuchacza, nie ma potrzeby marnować cennych danych na jego kodowanie. Istnieją dwa podstawowe rodzaje maskowania.

Maskowanie Częstotliwościowe

Głośny dźwięk o określonej częstotliwości zamaskuje cichsze dźwięki o pobliskich częstotliwościach, które występują w tym samym czasie. Wyobraź sobie, że próbujesz usłyszeć cichy szum liści, podczas gdy obok przejeżdża głośny pociąg towarowy. Huk pociągu (masker) całkowicie zagłusza szum liści (dźwięki maskowane). Koder MP3 analizuje spektrum audio, identyfikuje głośne częstotliwości maskujące i oblicza „krzywą maskowania”. Wszelkie składniki dźwiękowe, które znajdują się poniżej tej krzywej, są uznawane za niesłyszalne i odrzucane. Im głośniejszy masker i im bliższa częstotliwość cichego dźwięku, tym skuteczniejsze maskowanie.

Maskowanie Czasowe

Maskowanie występuje również w czasie. Głośny dźwięk może zasłonić cichsze dźwięki, które pojawiają się tuż przed nim lub po nim.

  • Maskowanie Następcze: Po głośnym, ostrym dźwięku, takim jak uderzenie perkusji, ucho i mózg potrzebują chwili na odzyskanie pełnej czułości. Cichsze dźwięki występujące bezpośrednio po tym (do 200 milisekund) są skutecznie maskowane i mogą być kodowane z mniejszą liczbą bitów lub całkowicie usunięte.
  • Maskowanie Wsteczne: Co ciekawe, głośny dźwięk może również zamaskować słaby dźwięk, który wystąpił kilka milisekund przed nim. Dzieje się tak z powodu sposobu, w jaki nasz mózg przetwarza informacje słuchowe. Mózg potrzebuje nieco więcej czasu na przetworzenie głośniejszych dźwięków, więc sygnał nerwowy głośnego dźwięku może skutecznie "dogonić" i nadpisać percepcję cichego dźwięku, który wydarzył się tuż przed nim.

Potok Kodowania MP3: Dogłębna Analiza

Aby zaimplementować te zasady psychoakustyczne, koder MP3 używa złożonego potoku do przetwarzania danych audio. Dzieli dźwięk na części, analizuje je, decyduje, co wyrzucić, a następnie pakuje pozostałe informacje tak wydajnie, jak to tylko możliwe.

  1. Analiza Częstotliwości (Bank Filtrów):

    Pierwszym krokiem jest rozłożenie sygnału audio z przebiegu czasowego na jego składowe częstotliwości. Jest to podobne do tego, jak pryzmat rozszczepia białe światło na tęczę kolorów. Koder używa zestawu filtrów matematycznych (w szczególności hybrydowego banku filtrów, często obejmującego i Zmodyfikowaną Dyskretną Transformatę Kosinusową, czyli MDCT), aby podzielić dźwięk na 32 oddzielne podpasma częstotliwości.

  2. Analiza Modelu Psychoakustycznego:

    Równolegle model psychoakustyczny analizuje ten sam fragment audio. Jego zadaniem jest bycie "ekspertem słuchu". Identyfikuje on dominujące dźwięki w każdym podpaśmie i, w oparciu o zasady maskowania słuchowego, oblicza Stosunek Sygnału do Maski (SMR) dla każdego pasma. SMR to kluczowa wartość: reprezentuje, ile jest "miejsca" na ukrycie szumu kwantyzacji. Wskazuje on następnemu etapowi: "W tym paśmie częstotliwości każdy szum poniżej tego określonego poziomu będzie niesłyszalny."

  3. Kwantyzacja i Alokacja Bitów:

    To jest kluczowy stratny krok, w którym dane są nieodwracalnie odrzucane. to proces zmniejszania precyzji danych liczbowych. Celem kodera jest wprowadzenie szumu kwantyzacji (błędu wynikającego z tego zaokrąglenia), ale ukształtowanie go w taki sposób, aby zawsze pozostawał poniżej progu maskowania obliczonego przez model psychoakustyczny. Proces alokacji bitów jest regulowany przez docelową przepływność (np. 128 kbps). Koder ma ograniczony "budżet" bitów do wydania na każdą ramkę audio.

    • Dla podpasm, w których próg maskowania jest wysoki (tzn. gdzie można ukryć dużo szumu), koder używa bardzo zgrubnej kwantyzacji, przydzielając bardzo mało bitów.
    • Dla podpasm, w których sygnał jest wrażliwy, a próg maskowania jest niski, używa drobniejszej kwantyzacji, przydzielając więcej bitów, aby zachować jakość.
    • Dla podpasm, w których cały sygnał jest poniżej Absolutnego Progu Słyszalności, przydziela zero bitów i całkowicie odrzuca dane.

    Koder często stosuje strategię "rezerwuaru bitów". Jeśli prosty fragment (np. solo na flecie) wymaga mniej bitów, niż pozwala na to docelowa przepływność, zaoszczędzone bity trafiają do rezerwuaru. Te zaoszczędzone bity mogą być następnie wykorzystane do bardziej złożonego fragmentu (np. crescendo całej orkiestry), aby utrzymać jakość.

  4. Kodowanie Entropijne (Huffmana):

    W ostatnim etapie strumień skwantyzowanych współczynników częstotliwości jest kompresowany za pomocą techniki bezstratnej. MP3 używa kodowania Huffmana. Tworzy ono niestandardowy zestaw kodów, przypisując najkrótsze kody do najczęściej występujących wartości liczbowych, a dłuższe kody do rzadszych. Skutecznie to pakuje skwantyzowane dane, kończąc proces kompresji. Wynik jest następnie składany w ramkę MP3, która zawiera nagłówek i skompresowane dane.

Bitrate: Regulator Jakości i Rozmiaru

Kiedy tworzysz plik MP3, najważniejszym ustawieniem, które wybierasz, jest . Bitrate, mierzony w kilobitach na sekundę (kbps), dyktuje ostateczny rozmiar pliku i ma najbardziej bezpośredni wpływ na postrzeganą jakość dźwięku.

Popularne przepływności i ich typowe zastosowania:

  • 32-64 kbps: Zazwyczaj uważane za niską jakość, odpowiednie dla treści mówionych, takich jak podcasty czy audiobooki, gdzie klarowność mowy jest ważniejsza niż pełna wierność muzyczna.
  • 128 kbps: Przez długi czas uważane za „standard” przyzwoitej jakości muzyki. Oferuje współczynnik kompresji około 11:1 w porównaniu do audio CD. Większość słuchaczy uzna to za akceptowalne, ale bardziej wymagające uszy mogą zauważyć brak ostrości, zwłaszcza w wysokich częstotliwościach (jak talerze perkusyjne).
  • 192 kbps: Często nazywane "jakością bliską CD". Na tym poziomie artefakty kompresji stają się bardzo trudne do wykrycia dla większości ludzi na standardowym sprzęcie. Zapewnia dobrą równowagę między rozmiarem pliku a jakością.
  • 256-320 kbps: Wysoka jakość. Przy 320 kbps, najwyższym standardzie dla MP3, dla zdecydowanej większości słuchaczy niemożliwe jest odróżnienie skompresowanego pliku od oryginalnego, nieskompresowanego audio z CD w ślepym teście odsłuchowym.

CBR kontra VBR

Istnieją dwa główne sposoby zastosowania wybranej przepływności:

  • Constant Bitrate (CBR): Koder używa tej samej liczby bitów dla każdej ramki audio, niezależnie od jej złożoności. Sekunda ciszy zajmuje tyle samo miejsca, co sekunda złożonego finału orkiestrowego. Jest to przewidywalne, ale nieefektywne.
  • Variable Bitrate (VBR): To znacznie inteligentniejsze podejście. Koder analizuje dźwięk i przydziela więcej bitów do złożonych, trudnych do skompresowania fragmentów, a mniej bitów do prostych lub cichych fragmentów. Skutkuje to lepszą ogólną jakością przy danym średnim rozmiarze pliku. Większość nowoczesnych plików MP3 używa VBR.
    Kompresja MP3 | Teleinf Edu