1 gwiazdka2 gwiazdki3 gwiazdki4 gwiazdki5 gwiazdek (głosów: 2, średnia ocena: 5,00)
Loading...Loading...

Kodeki audio

W rozdziale:

Kodeki audio

Jeśli nie planujesz pozostać w epoce filmowej sprzed 1927 r., w swoich filmach będziesz też potrzebować ścieżki dźwiękowej. Podobnie jak kodeki wideo, kodeki audio są algorytmami kodowania strumienia dźwiękowego. I podobnie jak w przypadku kodeków wideo istnieją stratne i bezstratne kodeki audio. Ścieżki dźwiękowe tworzone przy użyciu bezstratnych algorytmów są zbyt duże, aby używać ich w internecie. Dlatego skoncentrujemy się tylko na kodekach stratnych.

W istocie algorytmy stratne dzielą się na kilka kategorii. Dźwięku używa się także w sytuacjach, w których obraz nie jest potrzebny (np. w rozmowach telefonicznych) i istnieje cała kategoria kodeków audio zoptymalizowanych do kodowania mowy. Nie należy ich używać np. do zgrywania płyt CD na komputer, ponieważ śpiew artysty brzmiałby jak głos czterolatka śpiewającego do mikrofonu. Ale używa się ich w PBX Asterisk, ponieważ transfer jest drogi, a te kodeki bardzo dobrze kompresują ludzki głos radykalnie zmniejszając ilość danych, które trzeba przesłać. Ze względu na brak obsługi w przeglądarkach i wtyczkach do przeglądarek algorytmy kompresji mowy nigdy nie znalazły zastosowania w sieci. Dlatego skoncentrujemy się tylko na kodekach audio ogólnego przeznaczenia.

Jak napisałem wcześniej, gdy „oglądasz film wideo”, twój komputer wykonuje przynajmniej trzy czynności na raz:

  1. interpretuje format kontenera;
  2. dekoduje strumień wideo;
  3. dekoduje strumień audio i wysyła dane dźwiękowe do głośników.

Kodek audio umożliwia wykonanie trzeciego punktu z tej listy — dekodowanie strumienia audio i zamienienie go na cyfrowe fale zamieniane następnie w dźwięk przez głośniki. Podobnie jak w przypadku kodeków wideo, projektanci stosują rozmaite sztuczki, aby zminimalizować ilość danych w strumieniu dźwiękowym. A ponieważ mowa jest o stratnych kodekach audio, w trakcie procesu nagrywanie kodowanie dekodowanie słuchanie następuje strata jakości. Różne kodeki usuwają różne informacje, ale wszystkie działają w tym samym celu: zmniejszyć ilość danych jednocześnie ukrywając ich ubytki tak, aby ludzkie ucho nie mogło ich wychwycić.

Jednym z pojęć, które nie dotyczą wideo są kanały. Dźwięk wysyłamy do głośników, prawda? A ile masz u siebie głośników? Jeśli siedzisz przy komputerze, to możliwe że masz tylko dwa głośniki: jeden po lewej i jeden po prawej stronie. Ja mam trzy: lewy, prawy i jeden na podłodze. Tak zwane systemy surround mogą mieć nawet sześć i więcej głośników odpowiednio rozmieszczonych w pomieszczeniu. Do każdego głośnika przekazywany jest określony kanał nagrania. Ogólnie rzecz biorąc chodzi o to, że słuchacz jest otoczony z sześciu stron głośnikami, z których każdy obsługuje inny kanał dźwiękowy, co daje wrażenie jakby się znajdowało w centrum słuchanych wydarzeń. Czy to działa? Rynek ten jest wart miliardy dolarów, a więc chyba tak.

Większość ogólnych kodeków audio obsługuje dwa kanały dźwiękowe. Podczas nagrywania dźwięk jest rozdzielany na lewy i prawy kanał. Podczas kodowania oba kanały są zapisywane w jednym strumieniu dźwiękowym, a w czasie dekodowania każdy z nich zostaje odkodowany i wysłany do odpowiedniego głośnika. Niektóre kodeki audio obsługują więcej kanałów i zapamiętują który kanał jest który, dzięki czemu odtwarzacz może je kierować do właściwych głośników.

Istnieje bardzo dużo kodeków audio. Czy wspominałem, że kodeków wideo też jest dużo? Zapomnij o tym. Kodeków audio jest cała masa, ale w sieci liczą się tak naprawdę tylko trzy: MP3, AAC oraz Vorbis.

MPEG-1 Audio Layer 3

MPEG-1 Audio Layer 3 to popularny format MP3. Jeśli nigdy nie słyszałeś o „empetrójkach”, to nie wiem, jak Cię ratować. Walmart sprzedaje przenośne odtwarzacze muzyki, które nazywa odtwarzaczami MP3. Walmart. Anyway…

Pliki MP3 mogą zawierać maksymalnie 2 kanały dźwiękowe. Mogą mieć różną szybkość transmisji bitów: 64 kbps, 128 kbps, 192 kbps i wiele innych od 32 do 320. Wyższa szybkość transmisji bitów oznacza większy rozmiar pliku i lepszą jakość dźwięku, chociaż parametry te nie są ze sobą powiązane liniowo. (128 kbps brzmi lepiej niż dwa razy 64 kbps, a 256 kbps nie brzmi tak dobrze, jak dwa razy 128 kbps.) Ponadto w formacie MP3 możliwe jest kodowanie ze zmienną szybkością transmisji bitów, co oznacz, że niektóre części strumienia są skompresowane bardziej, a inne mniej. Przykładowo okresy ciszy można zakodować w gorszej jakości, a gdy rozpocznie się część skomplikowanej formy muzycznej jakość tę można polepszyć. W formacie MP3 możliwe jest też kodowanie ze stałą szybkością transmisji bitów, co oczywiście nazywa się kodowaniem ze stałą szybkością transmisji bitów.

Standard MP3 nie określa szczegółowo sposobu kodowania dźwięku (ale za to zawiera dokładne instrukcje, jak go dekodować). Dlatego w koderach używane są różne psychoakustyczne modele pozwalające uzyskać bardzo różne wyniki, ale wszystkie można odkodować w tym samym odtwarzaczu. Najlepszym darmowym koderem jest otwarty projekt LAME. Jest on prawdopodobnie najlepszym koderem w ogóle do wszystkich zastosowań oprócz najniższych szybkości transmisji bitów.

Format MP3 (ustandaryzowany w 1991 r.) jest obciążony patentami, co wyjaśnia dlaczego nie można odtwarzać plików MP3 w Linuksie, chyba że zainstaluje się dodatkowe oprogramowanie. Praktycznie każdy przenośny odtwarzacz muzyki obsługuje pliki MP3, a ponadto format ten może być też wykorzystywany w kontenerach wideo. Adobe Flash odtwarza zarówno pliki MP3 jak i strumienie audio w formacie MP3 w kontenerze wideo MP4.

Advanced Audio Coding

Kodek Advanced Audio Coding jest szerzej znany pod nazwą AAC. Standard tego formatu opracowano w 1997 r., ale czasy świetności zaczęły się, gdy firma Apple zaczęła go stosować jako domyślny format w sklepie iTunes. Pierwotnie wszystkie pliki AAC „kupione” w iTunes były zaszyfrowane przy użyciu algorytmu DRM Apple o nazwie FairPlay. Obecnie niektóre utwory w tym sklepie są dostępne bez zabezpieczeń w plikach AAC. Apple nazywa je „iTunes Plus”, bo to brzmi o wiele lepiej niż nazywanie wszystkiego „iTunes Minus”. Format AAC jest obciążony patentami, a ceny licencji można znaleźć w internecie.

Format AAC pozwala uzyskać lepszą jakość dźwięku od MP3 przy takiej samej szybkości transmisji bitów oraz można go używać do kodowania z dowolną szybkością transmisji bitów. (W MP3 liczba możliwych szybkości jest ograniczona, a górną granicę stanowi 320 kbps.) W AAC można zakodować do 48 kanałów dźwiękowych, chociaż nikt tego nie robi. Kolejną cechą odróżniającą AAC od MP3 są profile, które są czymś podobnym do profili w H.264 i zostały utworzone w tym samym celu. Profil o niskim poziomie złożoności jest przeznaczony do odtwarzania dźwięku na bieżąco na urządzeniach ze słabszymi procesorami, natomiast wyższe profile dają dźwięk lepszej jakości przy takiej samej szybkości transmisji bitów, ale bardziej pracochłonnym kodowaniu i dekodowaniu.

Aktualnie wszystkie produkty formy Apple, wliczając iPody, AppleTV oraz QuickTime obsługują wybrane profile AAC zarówno w samodzielnych plikach jak i strumieniach audio w kontenerze wideo MP4. Adobe Flash obsługuje wszystkie profile AAC w MP4, podobnie jak otwarte odtwarzacze wideo MPlayer i VLC. Do kodowania można używać otwartej biblioteki FAAC. Obsługę jej można włączyć za pomocą opcji kompilacji w mencoder i ffmpeg.

Vorbis

Vorbis jest często nieprawidłowo nazywany „Ogg Vorbis”. (Ogg to tylko format kontenera, a strumienie audio Vorbis można osadzać także w innych kontenerach.) Vorbis nie jest obciążony żadnymi znanymi patentami, dzięki czemu standardowo obsługują go wszystkie najważniejsze wersje Linuksa i urządzenia przenośne z otwartym oprogramowaniem układowym Rockbox. Przeglądarka Mozilla Firefox 3.5 obsługuje pliki dźwiękowe Vorbis w kontenerze Ogg oraz wideo Ogg ze ścieżką dźwiękową w formacie Vorbis. Także telefony komórkowe z systemem Android odtwarzają pliki dźwiękowe w formacie Vorbis. Strumienie dźwiękowe Vorbis są najczęściej osadzane w kontenerach Ogg i WebM, ale można ich używać także w kontenerach MP4 i MKV(a po zastosowaniu pewnych sztuczek także w AVI). Vorbis obsługuje dowolną liczbę kanałów dźwiękowych.

Istnieją otwarte kodery i dekodery Vorbis, np. OggConvert (koder), ffmpeg (dekoder), aoTuV (koder) oraz libvorbis (dekoder). Dostępne są też składniki QuickTime dla systemu Mac OS X i filtry DirectShow dla systemu Windows.

Dodaj komentarz









Newsletter

Subskrybując nasz newsletter masz pewność, że nie ominie Cię żadna nowość w serwisie!