Kompresja

Kompresja Audio

Techniki kodowania audio percepcyjnego używane w formatach MP3, AAC i innych.

Cyfrowy Dźwięk: Reprezentacja i Rozmiar Danych

Muzyka odtwarzana w Spotify, podcasty i ścieżki dźwiękowe filmów, w tym materiałów z Netflixa, są przechowywane jako dane cyfrowe. Ich rozmiar trzeba ograniczać, aby biblioteka mieściła się na urządzeniu przenośnym, a transmisja przez sieć komórkową była możliwa. Jednym ze sposobów jest kompresja audio.

Nieskompresowany zapis audio zajmuje dużo miejsca, ponieważ sygnał analogowy trzeba opisać próbkami. Do cyfrowej reprezentacji takiego sygnału służy . PCM jest zapisem próbek, nie mechanizmem zmniejszania ich liczby, więc rozmiar rośnie wraz z częstotliwością próbkowania, głębią bitową, liczbą kanałów i czasem nagrania. Obejmuje ona dwa etapy:

  1. Próbkowanie: Analogowa fala dźwiękowa jest mierzona w regularnych odstępach czasu. Dla jakości CD stosuje się 44,100 próbek na sekundę. Częstotliwość ta wynika z twierdzenia Nyquista-Shannona i pozwala reprezentować pasmo do około 20 kHz.
  2. Kwantyzacja: Amplituda każdej próbki otrzymuje wartość liczbową. Dla jakości CD używa się 16 bitów na próbkę, co daje 2162^{16}, czyli 65,536 poziomów. Liczba bitów określa głębię bitową. Wartość próbki jest zaokrągleniem amplitudy do jednego z tych poziomów, więc sam zapis PCM może zawierać błąd kwantyzacji.

Rozmiar standardowego, trzyminutowego, nieskompresowanego nagrania stereo można oszacować następująco:

44,100 proˊbek/sekundę×16 bitoˊw/proˊbkę×2 kanały (stereo)×180 sekund44,100 \text{ próbek/sekundę} \times 16 \text{ bitów/próbkę} \times 2 \text{ kanały (stereo)} \times 180 \text{ sekund}

≈254,016,000 bitoˊw\approx 254,016,000 \text{ bitów}

≈31.75 megabajtoˊw (MB)\approx 31.75 \text{ megabajtów (MB)}

Ponad 30 megabajtów na jedno nagranie szybko zwiększa wymagania biblioteki złożonej z kilku albumów. Taka przepływność może też przekraczać możliwości części połączeń internetowych. W obliczeniu trzeba odróżnić bity od bajtów oraz jednostki dziesiętne od binarnych. Formaty bezstratne, takie jak FLAC, często zmniejszają rozmiar o około 50% bez usuwania próbek, zależnie od materiału. może przy określonych ustawieniach zmniejszyć rozmiar pliku o 90% lub więcej.

Percepcyjne Kodowanie Audio: Modelowanie Słyszalności

Kompresja bezstratna usuwa redundancję i pozwala odtworzyć wszystkie próbki. Kodowanie stratne wykorzystuje właściwości ludzkiego słuchu, aby ograniczyć zapis informacji o mniejszym znaczeniu percepcyjnym. Zajmuje się tym . Kodeki MP3 i AAC stosują jej modele w procesie kodowania percepcyjnego.

Kodeki takie jak MP3 i AAC wykorzystują próg słyszenia i maskowanie słuchowe do sterowania szumem kwantyzacji. Model kodera jest przybliżeniem pomiarów słuchu, dlatego próg maskowania zależy od poziomu sygnału, częstotliwości, czasu trwania i wybranego modelu.

Zasada 1: Absolutny Próg Słyszalności (ATH)

Czułość słuchu zależy od częstotliwości. opisuje ten poziom dla całego pasma. Największa czułość przypada zwykle na zakres od 2 do 5 kHz, natomiast dla bardzo niskich i bardzo wysokich częstotliwości próg jest wyższy. Krzywa ATH jest wartością odniesienia, a koder uwzględnia także maskery obecne w konkretnym fragmencie.

Koder wyznacza przybliżony próg dla analizowanego fragmentu. Składnik poniżej tego progu może zostać pominięty, ponieważ w danych warunkach odsłuchu pozostaje niewykrywalny. Jest to redukcja wynikająca z modelu słyszalności, której zakres zależy od sygnału i ustawień kodera.

Zasada 2: Maskowanie Słuchowe

Maskowanie słuchowe oznacza zmniejszenie słyszalności jednego dźwięku pod wpływem innego, zwykle głośniejszego składnika. oblicza te zależności, aby ograniczyć precyzję zapisu tam, gdzie szum kwantyzacji pozostanie poniżej progu maskowania. Wyróżnia się maskowanie częstotliwościowe i czasowe:

Maskowanie Częstotliwościowe (Symultaniczne)

Głośny składnik może maskować cichszy dźwięk występujący w tym samym czasie i w podobnym paśmie. Przykładem jest szept podczas głośnego koncertu rockowego. Krzywa maskowania ma największą wartość w pobliżu częstotliwości maskera i zwykle opada wraz z odległością częstotliwościową.

Maskowanie Czasowe (Niesymultaniczne)

Maskowanie ma również wymiar czasowy. Głośny dźwięk może ograniczyć słyszalność cichszego składnika występującego tuż przed nim lub tuż po nim.

  • Maskowanie następcze (Post-Masking): Po głośnym, nagłym dźwięku, na przykład uderzeniu w talerz perkusyjny, czułość słuchu wraca stopniowo. Cichsze dźwięki pojawiające się bezpośrednio po nim mogą być maskowane przez okres do 200 milisekund.
  • Maskowanie wsteczne (Pre-Masking): Głośny dźwięk może osłabić percepcję cichszego składnika występującego kilka milisekund przed nim. W wielu opisach przyjmuje się około 5 milisekund. Wartość 20 milisekund może dotyczyć okna analizy kodera i nie jest ogólną granicą pre-maskingu.

Koder nie traktuje tych zjawisk jako bezwarunkowego przyzwolenia na usunięcie danych. Ustawia poziom szumu z zapasem, ponieważ warunki odsłuchu i różnice między słuchaczami zmieniają słyszalność. Przy krótkich transjentach może przełączać się na krótsze okno analizy, aby ograniczyć pre-echo, czyli słyszalny szum pojawiający się przed impulsem.

MP3: Główne Etapy Kodowania

Kodek MP3 łączy analizę psychoakustyczną z hybrydowym bankiem filtrów, kwantyzacją i kodowaniem entropijnym. Kolejne etapy mogą być realizowane w różnej kolejności wewnętrznej zależnie od implementacji, lecz ich role pozostają podobne.

  1. Ramkowanie: Wejściowy strumień PCM jest dzielony na ramki. Koder analizuje także nakładające się okna, aby zachować ciągłość na granicach ramek i reagować na zmiany sygnału. W MPEG-1 Layer III jedna ramka obejmuje 1152 próbki audio, a część danych może korzystać z rezerwuaru bitów poprzednich ramek.
  2. Hybrydowa transformacja częstotliwościowa: MP3 używa hybrydowego banku filtrów. Polifazowy bank podziału na 32 podpasma jest połączony z przełączalną . Taka reprezentacja ułatwia opis energii w pasmach, w których modelowane jest maskowanie. Długie i krótkie okna MDCT pozwalają dobrać rozdzielczość częstotliwościową do sygnału ustalonego albo transjentu.
  3. Analiza Psychoakustyczna: Równolegle sygnał jest podawany do modelu psychoakustycznego. Model identyfikuje składniki maskujące i wyznacza próg maskowania dla pasm częstotliwości w danym fragmencie. Wynikiem jest mapa dopuszczalnego poziomu szumu kwantyzacji, którą koder wykorzystuje przy podziale bitów. Model może rozróżniać składowe tonalne i szumowe, a wynik jest obliczany po stronie kodera, bez zwiększania złożoności dekodera.
  4. Kwantyzacja i Alokacja Bitów: To stratny etap procesu. Współczynniki częstotliwości są kwantyzowane z precyzją wyznaczoną przez budżet bitów i wyniki modelu psychoakustycznego:
    • Składowe, dla których dopuszczalny poziom szumu jest wysoki, mogą być kwantyzowane z mniejszą precyzją, a część współczynników może przyjąć wartość zero.
    • Składowe istotniejsze dla odbioru otrzymują więcej bitów. Koder dobiera parametry tak, aby szum kwantyzacji pozostawał możliwie blisko lub poniżej progu maskowania w poszczególnych pasmach.
  5. Kodowanie Entropijne (Huffmana): Skompresowany strumień skwantyzowanych współczynników jest kodowany bezstratnie przy użyciu tablic Huffmana. Częściej występujące wartości otrzymują krótsze kody, co zmniejsza liczbę bitów przed zapisaniem ramek MP3. Ten etap nie odrzuca kolejnych informacji, lecz zapisuje już skwantyzowane wartości w krótszej reprezentacji. MP3 może dodatkowo korzystać z rezerwuaru bitów między ramkami, a każda ramka zawiera także informacje sterujące potrzebne dekoderowi.

Z punktu widzenia dekodera opisane etapy są odwracalne poza wcześniejszą kwantyzacją stratną. Dekoder odczytuje ramkę, dekoduje kody Huffmana i rekonstruuje próbki przy użyciu parametrów zapisanych w strumieniu. Model psychoakustyczny pozostaje po stronie kodera, więc dekoder nie musi powtarzać analizy słyszalności.

Powiązane artykuły