[N] Magiczne 32 bity?

Zapis dźwięku w formacie 32-bitowym pojawił się w urządzeniach konsumenckich stosunkowo niedawno i, jak to bywa, natychmiast został otoczony legendą, jakoby czasy przesterowań i pracowitego dobierania poziomów odchodziły w niepamięć. Oto możemy nagrywać cokolwiek w jakikolwiek sposób, a na etapie obróbki, w programie edycyjnym, poziomy ustawimy sobie jak należy. Czyż nie byłoby to piękne? Co więcej, Zoom, znany producent rejestratorów audio, wypuścił w końcówce zeszłego roku model F3, który wręcz nie ma możliwości ustawiania poziomu nagrania - co najwyżej decydujemy o skalowaniu wykresu fali dźwiękowej na ekranie urządzenia czy poziomie kierowanym na analogowe wyjście. Myślę, że nadchodzi czas, by spojrzeć na całość bardziej trzeźwo i racjonalnie, bo... czary nie istnieją. To tylko skomplikowana technologia.

Od razu zastrzegę też, że w tekście pojawią się liczne uproszczenia, bo to jednak nie jest obrona dyplomu z elektroakustyki, niemniej dołożyłem wszelkich starań, by rzecz przedstawić rzetelnie, bez przekłamań i zrozumiale.

Jak nagrywa się dźwięk?

Dźwięk, jak zapewne wszyscy pamiętają ze szkoły, są to po prostu fale, które coś wzbudza (np. my mówiąc) i które rozchodzą się w jakimś ośrodku (np. w powietrzu). Bez ośrodka fale nie mają się w czym propagować, dlatego w próżni dźwięk się nie rozchodzi (wynikająca stąd ciekawostka - w różnych ośrodkach dźwięk rozchodzi się z różną prędkością).

Co jednak zrobić, by ten dźwięk utrwalić? Oczywiście, trzeba by go w jakiś sposób przechwycić i pomierzyć. Do "łapania" dźwięków wykorzystuje się mikrofony, które dysponują delikatną membraną - jeśli fala dźwiękowa uderza w tę membranę, powoduje powstawanie leciutkiego (naprawdę leciutkiego) prądu elektrycznego. A skoro mamy prąd, to już coś! Trafia on do specjalnego modułu, zwanego przedwzmacniaczem mikrofonowym (preampem), gdzie jest - jak łatwo odgadnąć - wzmacniany. Bo leciutki prąd łatwo zakłócić na przykład, więc wygodniej pracuje się z prądem nieco mocniejszym.

I teraz napotykamy na pewien problem - do tego momentu mieliśmy do czynienia ze zjawiskami ciągłymi, analogowymi, a potrzebujemy zapisać je w postaci strawnej dla komputera, czyli dyskretnej, cyfrowej. Co oznacza ciągłość? Fala nie przemieszcza się skokowo, tylko płynnie, prąd w mikrofonie i w przedwzmacniaczu także zmienia się płynnie. To jest ta analogowa strona zagadnienia. Pamięć komputera (i jego dysk) ma jednak skończoną pojemność, więc trzeba tę ciągłą falę "poszatkować", podzielić na skończoną liczbę kawałków - liczb.

Do tego służy trzeci element łańcucha, po mikrofonie i przedwzmacniaczu: konwerter analogowo-cyfrowy (ADC - Analog to Digital Converter). Już sama jego nazwa jasno mówi, co się w nim dzieje. W jakiś sposób prąd elektryczny jest zamieniany na kolejne liczby, reprezentujące go w pamięci urządzeń cyfrowych.

W dużym uproszczeniu konwerter ten działa następująco - na jego wejście pomiarowe trafia prąd z przedwzmacniacza, a konwerter cyklicznie odczytuje to wejście i zamienia zmierzone napięcie prądu na WARTOŚCI. Cyfrowe, dyskretne, twarde i zdecydowane.

Nie da się ukryć, że jest to ważny etap, od którego precyzji i sposobu realizacji zależy jakość uzyskanego nagrania. Pracą konwertera sterują dwa bardzo istotne parametry, z którymi, Czytelniku, na pewno się spotkałeś, jeśli nagrywałeś kiedykolwiek cokolwiek. Są to częstotliwość próbkowania oraz głębokość (głębia) bitowa.

Częstotliwość próbkowania

Ten parametr dość łatwo zrozumieć - oznacza on bowiem, jak często konwerter sprawdza swoje wejście, żeby zmierzyć prąd i dokonać jego zmiany na wartość cyfrową. Najpopularniejsze częstotliwości próbkowania to 44,1kHz i 48kHz, co oznacza odpowiednio 44 100 i 48 000 odczytów na sekundę (!). Dlaczego akurat tyle? Otóż człowiek słyszy w zakresie 20Hz-20kHz, a żeby to całe pasmo zapisać, potrzebujemy próbkować przynajmniej dwukrotnie częściej, co wynika z twierdzenia Nyquista–Shannona (przyjmijmy zatem, że tak po prostu jest).

Próbkować można jeszcze częściej - da się w ten sposób zredukować część zakłóceń, np. szum kwantyzacji, trzeba mieć tylko świadomość, że wraz ze wzrostem częstotliwości próbkowania rosną rozmiary plików oraz czas potrzebny na ich przetwarzanie, więc nie w każdym przypadku uzasadnione będzie próbkowanie z częstotliwością większą niż 48kHz (to taki nieformalny standard obecnie).

Głębokość bitowa

Wiemy już, że konwerter odczytuje częściej lub rzadziej swoje wejście. Ale w jaki sposób zamienia on wartość napięcia na konkretne liczby, czyli - mówiąc prościej - odczytuje "głośność" dźwięku? Tutaj pojawiają się tajemnicze bity i głębokość bitowa. Bit to wartość zero-jedynkowa. Może mieć wartość albo 0, albo 1. Gdybyśmy próbkowali z taką głębokością bitową, konwerter dostawałby wartość 1, gdy napięcie przekraczałoby jakiś próg, a wartość 0, gdyby tego progu nie przekraczało. Troszkę ubogo.

Zwiększenie liczby bitów do ośmiu, czyli głębokość ośmiobitowa sprawia, że napięcie można zamienić na liczby z przedziału 0:255 (28) albo -127:128 (co z punktu widzenia cyfrowego świata jest w zasadzie tym samym, a łatwiej jest mi narysować sinusoidę):

Wymyślając standard CD inżynierowie podjęli decyzję, że 16 bitów w połączeniu z próbkowaniem 44,1kHz będzie ekonomicznym kompromisem - danych nie będzie "za dużo", a jednocześnie pozwolą przenieść sensownie dźwięk do domeny cyfrowej. 216 to już wartości z przedziału 0:65 535 (albo -32 767:32 768) - innymi słowy, napięcie można zapisać cyfrowo już znacznie dokładniej niż przy ośmiu bitach.

16 bitów jest bardzo dobrą wartością jeśli chodzi o gotowy dźwięk. To znaczy taki, który tylko odtwarzamy. Ale w momencie, gdy dźwięk dopiero nagrywamy i go kształtujemy, przydałoby się jeszcze ciut więcej, stąd pojawiły się konwertery 24-bitowe. W tym momencie zakres wartości przyprawia o zawrót głowy - 224 to wszak wartości z zakresu 0:16 777 216 (-8 388 607:8 388 608).

Dlaczego 24 bity czasem nie wystarczają?

Mogłoby się wydawać, że próbkując bardzo często i stosując liczby 24-bitowe mamy wszystko pod kontrolą - fala dźwiękowa, reprezentowana na tym etapie przez przebiegi napięcia trafiające do konwertera, jest dostatecznie wiernie zamieniana na ciągi liczb z wielomilionowego zakresu. I faktycznie tak jest, pod jednym wszakże warunkiem - wartości napięcia, trafiające z przedwzmacniacza do konwertera, muszą znajdować się w odpowiednim zakresie.

To jest właśnie ta czynność, na którą wpływamy, określając poziom zapisu. Kręcąc gałeczką ustalamy, jak duże napięcie pobiegnie do konwertera i zostanie poddane konwersji do postaci cyfrowej. Jeśli napięcie będzie zbyt małe, czyli sygnał będzie zbyt cichy, to konwerter wykorzysta tylko część dostępnych mu liczb, więc odwzorowanie będzie mniej dokładne. Jeśli z kolei napięcie będzie zbyt duże, to dla tych zbyt dużych wartości konwerter przyjmie po prostu wartości maksymalne ze swojego zakresu - i to wówczas będziemy mieli do czynienia z cyfrowym przesterowaniem. Konwerter zwyczajnie nie będzie mógł przypisać coraz wyższemu napięciu wyższych wartości cyfrowych, bo już będzie na granicy, więc obojętnie jakie to będzie napięcie, zawsze dostanie po konwersji wartość np. 8 388 608. W programie do edycji dźwięku zobaczymy wówczas charakterystyczne "sprasowanie" szczytów, a dźwięk z głośnika raczej nie będzie przyjemny...

No i dlatego ważne jest, by odpowiednio ustawić poziom nagrywania - żeby nie był za niski (bo wtedy szum i sygnał użyteczny będą się różniły zbyt słabo) oraz żeby nie był zbyt wysoki (bo konwerter "sprasuje" głośniejsze dźwięki).

32 bity, ale nie każde

Z zapisem 32-bitowym jest pewien kłopot. A nawet całkiem sporo kłopotów. Na początku jednak oddzielmy dwa typy konwersji: stałoprzecinkową (fixed) od zmiennoprzecinkowej (float). Konwersja stałoprzecinkowa (albo całkowitoliczbowa - oba słowa są paskudne) polega z grubsza na tym samym, co konwersja 8, 16 czy 24-bitowa, zwiększa się tylko po raz kolejny zakres, bo mamy już 232, czyli 0:4 294 967 295 (-2 147 483 647:2 147 483 648). Jesteśmy zatem jeszcze dokładniejsi, choć ciągle podatni na cyfrowe przesterowanie, jeśli trafi się napięcie wyższe od zakładanego maksimum. To nie jest ten rodzaj konwersji, o który nam chodzi.

Konwersja zmiennoprzecinkowa, czyli owa "magiczna", polega na czymś innym - każdą wartość napięcia, wpadającą do konwertera, ten zamienia na liczbę rzeczywistą (powiedzmy, że to liczba rzeczywista - w każdym razie nie jest to liczba całkowita z zadanego przedziału). Dzięki temu nie dochodzi do cyfrowego przesterowania, bo po prostu nie ma "maksimum", którego nie da się przekroczyć. To znaczy, oczywiście maksimum istnieje - największa wartość, którą można w ten sposób zapisać to - bagatela - 3,4x1038, zaś najmniejsza to 1,2x10-38 (przy założeniu, że - jak powiedziałby matematyk - 8 bitów przypada na wykładnik, 23 bity na mantysę, a pozostały bit koduje znak).

Każda wartość napięcia jest zamieniana na jakąś liczbę rzeczywistą (czyli taką, która może mieć część ułamkową, w odróżnieniu od liczb całkowitych, które tej części nie mają). Zapis ten bardzo dobrze pasuje do analogowej postaci sygnału w postaci napięcia.

To właśnie dzięki takiemu formatowi w pliku można zapisać wartości przekraczające cyfrowe 0dB, jak również na etapie obróbki "odzyskać" szczegóły w głośnych lub cichych fragmentach, po prostu ściszając je lub pogłaśniając. Bo tutaj mamy (czy w teorii - powinniśmy mieć) dokładne odwzorowanie tego, co się działo z napięciem na wejściu konwertera.

Dla spragnionych sprawdzenia, jak się sprawy mają w praktyce zamieszczam link do pliku, nagranego w samochodzie. Plik jest ekstremalnie przesterowany, ale można go sobie wyedytować, ściszyć o np. 25dB i zobaczyć, że dostaniemy sygnał nie poucinany i sprasowany, tylko jak najbardziej nadający się do wykorzystania (pomijając samą treść nagrania ;))

Haczyk

Wszystko to jest zbyt piękne, by było prawdziwe, nie sądzicie? Tak jest w istocie. Z matematycznego punktu widzenia wszystko jest idealnie, ale w tym momencie - jak to bywa - napotykamy na ograniczenia świata rzeczywistego. W 32-bitowym, zmiennoprzecinkowym uniwersum moglibyśmy teoretycznie zapisywać sygnały o kosmicznej dynamice ponad 1500dB. Tyle tylko, że po pierwsze, takich sygnałów nawet nie znamy (najgłośniejsze sygnały w rodzaju wybuchu wulkanu czy startu rakiety nie przekraczają 200dB). W praktyce rzadko spotkamy się z sygnałami przekraczającymi 100dB. Nic zatem dziwnego, że cały obecny osprzęt, od mikrofonów przez przedwzmacniacze po konwertery cyfrowe operuje właśnie w tych granicach 100-130dB (i tak, zdaję sobie sprawę, jak wiele dzieli 100dB od 130dB - to w końcu skala logarytmiczna, a nie liniowa). Tak czy inaczej - to po drugie - nie mamy póki co magicznych elementów układanki, które przyjmą sygnał dowolnej głośności i zamienią go na 32-bitowe liczby zmiennoprzecinkowe.

Konstruktorzy stosują za to najczęściej sztuczkę z podwójnymi przedwzmacniaczami i konwerterami analogowo-cyfrowymi - każdy z nich dostaje do próbkowania inny zakres, z którym jest sobie w stanie poradzić, a potem dane z obu zakresów są łączone w jeden pełny sygnał 32-bitowy. Brzmi to prosto, a wcale proste nie jest, dlatego na razie rejestratorów 32-bitowych jest tak mało. Jak to już jednak w cyfrowych czasach bywało, i ta rewolucja z czasem spowszednieje i trafi wszędzie, tak jak 24 bity wyszły z drogich studiów nagraniowych i teraz spotkać można je nawet w budżetowych interfejsach audio.

Jest jednak pewne ALE. Jeśli do przesterowania sygnału dojdzie na wcześniejszym etapie, czyli w mikrofonie lub w przedwzmacniaczu, to najwspanialsza nawet konwersja na "cyfrę" niczego nie naprawi - dźwięk będzie przesterowany i tyle. Zazwyczaj nie jest łatwo do tego doprowadzić, bo to domena analogowa, jednak lepiej 32-bitową "magię" traktować jako sprzymierzeńca pozwalającego uratować materiał w razie wypadku, niż jako remedium na lenistwo...

Czy to się przyjmie?

Myślę, że ten format prędzej czy później zastąpi 24 bity. Jest zbyt wygodny, by go zignorować, a przy tym pliki tworzone z jego wykorzystaniem nie są jakoś drastycznie większe od 24-bitowych (wzrost o ok. 30%). Przy normalnym korzystaniu dostajemy w zasadzie to samo, co wcześniej, ale bez ryzyka ścięcia szczytów w nagraniu.

Jestem jednak zdecydowanym przeciwnikiem gloryfikacji tego formatu, z czym już się spotykam, czytając artykuły czy oglądając filmiki. Ludzie zaczynają naprawdę traktować ten format jako coś magicznego, co ratuje nagrania i uwalnia od konieczności ustawiania poziomu zapisu. Jak zwykle jestem przeciwny twierdzeniu, że "wszystko naprawi się w postprodukcji". Mimo zachłyśnięcia się technologią, stara prawda pozostaje w mocy - śmieci na wejściu = śmieci na wyjściu...

Dla chcących poczytać bardziej szczegółowo o tym zagadnieniu, polecam artykuł na stronie SoundDevices. O arytmetyce cyfrowej z kolei można poczytać tutaj.

Za konsultację i wytknięcie paru nieścisłości serdecznie dziękuję Tomkowi Stankiewiczowi z https://tostanki.pl oraz Panu Tomaszowi Wróblewskiemu z 0db.pl.

Komentarze