Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
TwojePC.pl © 2001 - 2024
RECENZJE | Audiotechnika: dźwięk cyfrowy - czy analog naprawdę był lepszy?
    

 

Audiotechnika: dźwięk cyfrowy - czy analog naprawdę był lepszy?


 Autor: Przemysław Rel | Data: 11/04/13

Kompresja stratna i bezstratna

Dźwięk o jakości CD Audio charakteryzuje się dużą objętością. Przy stereofonicznym nagraniu o 16-bitowej głębi bitów i częstotliwości próbkowania 44,1kHz, każda sekunda składa się z 1,411,200 bitów, czyli 1378kb/s, co ostatecznie daje nam rozmiar 172kB.

Aby było możliwe przesyłanie dźwięku o takiej jakości przez internet, potrzebny byłby nieprzerwany strumień 1378 kilobitów na sekundę. Nie jest to może szczególnie dużo dziś, kiedy domowe łącza o prędkości 60 Megabitów nie wywołują większego szoku, ale cofając się ponad 10 lat wstecz, kiedy coraz popularniejsze stawały się internetowe stacje radiowe okazuje się, że jednak jest to dość sporo.

Nie ma dziś chyba takiej osoby, która nie wie co to jest „empetrójka”. Pliki z rozszerzeniem mp3 to dla wielu po prostu plik z muzyką. Nie każdy zastanawia się jak to się dzieje, że podczas gdy nieskompresowany plik WAV zajmuje 70MB przestrzeni dyskowej, ten sam fragment dźwięku w postaci pliku mp3 „waży” już np. jedynie 7MB. Jeśli czytasz ten artykuł, pewnie chcesz się dowiedzieć, więc... zaczynamy.

Zacznę może od wyjaśnienia czym jest kompresja. Jest to też pojęcie znane niemal każdemu użytkownikowi komputerów – prędzej czy później musi nastąpić sytuacja, że potrzebujemy coś rozpakować lub skompresować, bo np. używane przez nas konto pocztowe nie chce przepuścić nieco przerośniętego dokumentu, krzycząc, że plik jest zbyt duży. Taka kompresja danych polega na (również w dużym uproszczeniu) wyszukiwaniu podobnych ciągów zer i jedynek oraz zapisywaniu informacji o nich. Pewne ciągi bitów po prostu powtarzają się – dla przykładu, jeśli w pliku zapisane jest dwadzieścia zer występujących jedno po drugim, można skrócić ten zapis z 00000000000000000000 do „20 zer”. Popularne dziś formaty kompresji, takie jak zip, rar, czy 7zip, używają bardzo wyrafinowanych metod kompresji danych. Rozpoznają typ pliku i dobierają odpowiednie, skomplikowane algorytmy, których zadaniem jest zmniejszenie rozmiaru pliku, ale nie uszkodzenie go. Po rozpakowaniu archiwum musi być utworzony plik identyczny z oryginalnym.

W przypadku dźwięku, podobnie jak w grafice, stosowane są dwie metody kompresji: stratna i bezstratna. Każdy internauta widział obrazki w formacie JPG, które wyglądają fatalnie – przekłamania kolorów, artefakty w postaci kwadracików. To jest właśnie przykład kompresji stratnej, dość skrajny, gdyż odpowiednio dobrane parametry kompresji powinny pozwolić na uzyskanie obrazu o takiej jakości, że widz nie powinien być świadom, że ogląda rzecz pozbawioną szczegółów. Kiedy kopiujemy zdjęcia z telefonu lub aparatu, najczęściej widzimy pliki JPG – zajmują po kilka megabajtów, ale mało kto zdaje sobie sprawę z tego, że są one właśnie skompresowane z utratą szczegółów. Algorytmy stosowane przez producenta aparatu są tak dobrane, abyśmy nie zdawali sobie z tego sprawy – aby utrata szczegółów następowała w obszarach tak mało widocznych, że... można by rzecz, niewidocznych.

Na podobnej zasadzie działa kompresja stratna dźwięku. Formaty typu mp3, aac, czy ogg, stosują pewne skomplikowane działania matematyczne, których zadaniem jest ograniczenie liczby szczegółów. Skoro dorosły człowiek z reguły nie słyszy dźwięków powyżej 15-16kHz, to po co mają one zajmować miejsce na dysku? Można je po prostu w drastyczny sposób obciąć i wyrzucić lub zastosować pewne rozwiązania służące zmniejszeniu ich szczegółowości – i tak mało kto to usłyszy, a jeśli nawet ktoś usłyszy, to pewnie się nie zorientuje.

Tak w uproszczeniu działają empetrójki, ale za chwilę trochę bardziej zagłębimy się w ten temat. Nie chcę, aby ten artykuł był aż tak trywialny. Zanim to nastąpi, słów kilka o kompresji bezstratnej. Możemy duży plik WAVE skompresować za pomocą np. WinRara. Ulegnie on nierzadko dość znacznemu zmniejszeniu, ale... pewnie dałoby się zrobić to lepiej oraz to jest to dodatkowe utrudnienie. Plik trzeba najpierw rozpakować, zanim uda się go odtworzyć. Programiści wpadli więc na pomysł, że można opracować bardziej efektywne metody kompresji dźwięku poprzez zastosowanie algorytmów przeznaczonych specjalnie dla dźwięku i utworzyć format, który byłby odtwarzalny bezpośrednio przez oprogramowanie oraz np. przenośne odtwarzacze. Najpopularniejszy okazał się być FLAC – nietrudno znaleźć przenośne odtwarzacze potrafiące go odczytać, potrafią to też domowe sprzęty hi-fi, nie wspominając już o telefonach komórkowych.

Wspominałem już wcześniej o tym, że w najlepszym wypadku człowiek słyszy częstotliwości maksymalnie do ok. 20kHz. Dużą rolę w tej kwestii pełni nie tylko ucho, będące mechanicznym wzmacniaczem dźwięku, ale także sam mózg. Większość dorosłych osób nie słyszy wysokich dźwięków powyżej 16kHz, ani niższych (bardziej basowych) niż 20Hz. Uszy najbardziej wyczulone są na zakres od 2 do 5kHz.

Format stratnej kompresji dźwięku, taki jak MP3, bierze to pod uwagę. Niskie i wysokie częstotliwości są obcinane całkowicie przy niższej jakości, zaś przy wyższej – tracą na szczegółowości. To nie wszystko – brane są pod uwagę inne tzw. psychoakustyczne właściwości audio. Na przykład, przysłanianie (maskowanie) częstotliwości. Dwa dźwięki o podobnej częstotliwości, np. 100 i 110Hz, o różnej sile natężenia, odtwarzane równocześnie. Jeśli jeden z nich będzie głośniejszy, jest duża szansa, że na tyle przysłoni ten cichszy, że usłyszymy tylko jeden z nich – ten głośniejszy. Algorytmy stosowane przez kompresory starają się ocenić takie sytuacje i zdecydować o ewentualnym całkowitym wycięciu dźwięków, których nie usłyszymy.

Do zakodowania dźwięku w formacie MP3 potrzebujemy pierw źródła, czyli nieskompresowanego dźwięku w formacie PCM (czyli zwykły Wave). Na początku, koder dzieli strumień audio na krótkie sekcje i analizuje je za pomocą specjalnych filtry (Fast Fourier Transformation – FFT, Discrete Cosine Transformation – DCT). Każda sekcja dzielona jest następnie na 32 grupy, w których umieszczane są dźwięki należące tylko do specyficznych przedziałów częstotliwości (np. jedna grupa zawiera tylko najniższe częstotliwości). Każda z nich analizowana jest oddzielnie i przydzielany jest im priorytet: które z nich są najbardziej słyszalne, które można zapisać z większą ilością bitów, a które z mniejszą (poświęcając więcej bitów np. na wokal). Później wszystko grupowane jest z powrotem, ale znów dzielone na tzw. ramki. Koder analizuje następnie każdą z nich i ponownie przypisuje mniejszą lub większą ilość danych (bitów) do jej opisania.

Występuje także jeszcze jedna opcja, z której korzysta większość koderów MP3. Mianowicie: joint-stereo. Metoda ta pozwala na zapisanie większej jakości dźwięku przy tym samym rozmiarze pliku w pewien ciekawy sposób. Często jest tak, że pewne dźwięki są identyczne w obu kanałach – np. perkusja, czy wokal, znajdują się z reguły w samym centrum. Po co więc opisywać te same dane dla obu kanałów dwukrotnie? Joint-stereo (inaczej middle/side stereo) polega na tym, w dwóch kanałach dźwięku nie są zapisywane kanały lewy i prawy oddzielnie – w jednym zapisywane są wszystkie dźwięki, które są identyczne dla obu kanałów stereo, zaś w drugim zapisywana jest różnica między nimi. Czytając dokumentację LAME można znaleźć zalecenie, by nie wyłączać trybu joint-stereo, gdyż jest to tryb o najwyższej jakości.

W ten sposób utworzony plik można następnie odtworzyć za pomocą specjalnego dekodera, który odwraca ten proces, ale jest przy tym dużo prostszy i potrzebuje znacznie mniejszej mocy obliczeniowej.

Głównym czynnikiem wpływającym na jakość utworzonej empetrójki jest tzw. przepływność bitów, czyli liczba bitów opisująca każdą sekundę zarejestrowanego dźwięku. Jak wspomniałem wcześniej, każda sekunda nieskompresowanego strumienia PCM (Wave) opisana jest za pomocą 1378 kilobitów. W przypadku formatu MP3 mamy do czynienia z wartościami typu 128, 160, 192, czy maksymalnie 320 kilobitów na sekundę. Możliwe jest też zapisanie dźwięku z tak niskimi wartościami jak 16kb/s – spada jednak wtedy maksymalna częstotliwość dźwięku i jest to dość skrajna metoda zapisu np. audycji radiowych. Widzimy zatem, że przepływność bitów empetrójki znacznie mniejsza ilość danych, bezpośrednio przekładając się na rozmiar pliku na dysku oraz na wymagania co do szybkości przesyłu danych przez internet w przypadku transmisji „na żywo” w sieci.

Wszystkie inne metody kodowania dźwięku metodami stratnymi działają na mniej więcej podobnej zasadzie. Warto pamiętać o tym, że MP3 to format bardzo stary – początki jego opracowywania sięgają 1991 roku. Dostępne dziś metody w postaci AAC (formatu opracowanego 6 lat później przez to samo konsorcjum Fraunhofer, które opracowało MP3), OGG Vorbis i inne, najczęściej potrafią zapisać dźwięk znacznie bardziej szczegółowy niż MP3. Dla przykładu, uważa się, że Ogg Vorbis o jakości 160kb/s posiada jakość zbliżoną lub lepszą do MP3 320kb/s.







Polub TwojePC.pl na Facebooku

Rozdziały: Audiotechnika: dźwięk cyfrowy - czy analog naprawdę był lepszy?
 
 » Wstęp
 » Kilka słów ogólnie o dźwięku i zapisie analogowym
 » Długość fali i częstotliwość
 » Zapis cyfrowy
 » Kompresja stratna i bezstratna
 » Kompresja dynamiki, czyli wojna głośności
 » Podsumowanie
 » Kliknij, aby zobaczyć cały artykuł na jednej stronie
Wyświetl komentarze do artykułu »