R-14-07, Programowanie, ! HTML, HTML 4 - Vademecum


Rozdział 14.
Dźwięk i obraz wideo

Spędzając miłe popołudnie na buszowaniu po sieci, odkrywasz nagle stronę zawierającą długą listę animacji, z których chciałbyś skorzystać. Świetnie, myślisz, i przeglądasz listę tytułów. I tu pojawia się problem: przy każdym z tytułów widnieje krótki opis, na przykład, taki:

`Luther's Banana' is a 1.2 megabyte AVI file with a CinePak codec and an
8-bit 22KHz two channel audio track.

Jeżeli rozumiesz ten opis, nie musisz czytać tego rozdziału. Przeczytaj, jeśli chciałbyś się dowiedzieć czegoś o dźwięku i obrazie w powiązaniu z sieciami lub, gdy zdecydowałeś, że musisz poznać znaczenie tych wszystkich dziwnych słów i liczb.

W tym rozdziale będziemy zajmować się cyfrowym dźwiękiem i obrazem wideo: jak działają, w jakich formatach można je przechować i które z nich nadają się do zastosowań sieciowych. Znajdziesz także kilka sugestii, skąd wziąć obraz i dźwięk oraz jak wykorzystać go na Twoich stronach sieciowych. Oto niektóre z tematów, jakie zostaną tu omówione:

Dźwięk — wiadomości podstawowe

Czy chcesz dowiedzieć się czegoś na temat dźwięku w komputerach? Nauczyć się tworzyć własne pliki dźwiękowe z muzyką, głosem, efektami specjalnymi lub innymi dziwnymi hałasami? Jeśli tak, czytasz właściwy tekst. W pierwszej części tego rozdziału dowiemy się kilku rzeczy o cyfrowym dźwięku w ogóle i o popularnych w sieci formatach plików, w których można go zapisywać. Opowiemy też o tym, jak na własny użytek zapisać dźwięk w formacie cyfrowym i jak wprowadzić go do sieci.

Fale dźwiękowe

Być może pamiętasz z lekcji fizyki, że dźwięk to drgania powietrza, rozchodzące się w postaci fali. Te drgania ludzkie ucho rejestruje jako dźwięk. Najprostsza fala dźwiękowa mogłaby wyglądać tak, jak to pokazuje rysunku. 14.1.

Rysunek 14.1.

Prosta fala dźwiękowa

0x01 graphic

O fali dźwiękowej musimy wiedzieć dwie ważne rzeczy. Po pierwsze, ma zawsze pewną amplitudę, definiowaną jako odległość od linii środkowej (oznaczającej wartość zerową dźwięku, czyli ciszę) do najwyższego lub najniższego punktu fali. Im większa amplituda, tym głośniejszy dźwięk.

Po drugie, ma również częstotliwość, która określa prędkość, z jaką porusza się fala (lub bardziej precyzyjnie — ilość fal przechodzących przez określony punkt w jednostce czasu). Przy wysokich częstotliwościach — tj. gdy fala przemieszcza się prędzej — słyszymy dźwięki wysokie, przy niskich, głębokie tony.

Prawdziwe dźwięki są znacznie bardziej skomplikowane niż ten opisany przez nas. Są one sumą wielu różnych, nakładających się na siebie fal. Amplituda i częstotliwość są jednak wśród tych wszystkich pojęć najważniejsze.

Konwersja fali dźwiękowej do postaci cyfrowej

Analogowa fala dźwiękowa (taka jak na rysunku 14.1) jest ciągłą linią. Poruszając się wzdłuż niej, możemy odczytać nieskończenie wiele wartości amplitudy. Aby przekształcić taką falę do postaci cyfrowej, komputer musi zmierzyć amplitudę w określonych odstępach czasowych. Każda zmierzona wartość amplitudy nazywana jest próbką (sample). Dlatego właśnie proces przekształcania dźwięku do postaci cyfrowej nazywany jest próbkowaniem dźwięku (ang. sampling). Rysunek 14.2 przedstawia, jak odczytywane są wartości amplitudy fali przy próbkowaniu.

Rysunek 14.2.

Próbkowanie dźwięku

0x01 graphic

Im więcej pobierzemy próbek, tym dokładniej uda nam się odwzorować prawdziwy kształt fali i tym doskonalszą jej imitację otrzymamy. Nie będzie to jednak identyczny dźwięk. Ponieważ oryginalna fala posiada nieskończenie wiele różniących się amplitud, nigdy nie uda nam się jej odtworzyć całkowicie wiernie. Jeżeli jednak pobierzemy próbki bardzo gęsto, osiągniemy tak duże podobieństwo do pierwowzoru, że ludzkie ucho nie zdoła wychwycić różnicy.

Ilość próbek pobieranych w ciągu sekundy zwana jest częstotliwością próbkowania (sample rate). Zwykle mierzymy tę częstotliwość w kilohercach (kHz). Obecnie używa się kilku różnych częstotliwości próbkowania; najpopularniejsze z nich to 11 kHz, 22 kHz i 44 kHz.

0x01 graphic

Liczby te są zaokrąglane dla wygody. Rzeczywiście używane częstotliwości wynoszą 11,025 kHz, 22,050 kHz i 44,1 kHz.

Oprócz częstotliwości próbkowania (sample rate) mamy też rozmiar próbkowania (sample size), zwany też rozdzielczością próbkowania (sample resolution). Ogólnie rzecz biorąc, do wyboru są dwie rozdzielczości: 8-bitowa i 16-bitowa. Rozdzielczość próbkowania należy sobie wyobrażać jako ilość pionowych odcinków, na które dzielimy amplitudę fali przy jej pomiarze, od dolnego do górnego wierzchołka.

Wartości, które chcemy mierzyć, same nie są zależne od przyjętej rozdzielczości, ale dokładność naszego pomiaru — tak. Jeśli do pomiaru, zamiast ośmioodcinkowej „podziałki”, zastosujemy szesnastoodcinkową, będziemy mogli odwzorować mniejsze różnice amplitudy i uzyskamy wierniejszy obraz (patrz rysunek 14.3). To zupełnie tak samo, jak z 16-bitowym i 24-bitowym kolorem. 24-bitowa paleta barw jest bogatsza i po­zwala lepiej odwzorowywać subtelne odcienie, ale także, korzystając z palety 16-bito­wej, możemy odtworzyć kolory oryginału z niezłym przybliżeniem.

Rysunek 14.3.

Rozdzielczość próbkowania

0x01 graphic

0x01 graphic

Częstotliwość próbkowania to liczba „próbek” dźwięku pobieranych na sekundę przy mierzeniu amplitudy fali. Wyrażamy ją w kilohercach (kHz). Rozdzielczość próbkowania jest zwykle 8-bitowa lub 16-bitowa. Ta druga rozdzielczość pozwala dokładniej zapisać wynik pomiaru, dzięki czemu możemy lepiej odwzorować oryginalny dźwięk.

Przy pobieraniu próbki dźwięku, rzeczywista wielkość zmierzonej amplitudy zaokrąglana jest do najbliższej kreski „podziałki”. W żargonie specjalistów określa się to jako kwantowanie(ang. quantizing). Jeśli korzystamy z 16-bitowej rozdzielczości próbkowania, mamy o wiele większą szansę, że zapisana wartość będzie bliższa zmierzonej wartości oryginalnej niż wtedy, gdy pracujemy z rozdzielczością 8-bitową (patrz rysunek 14.4).

Rysunek 14.4.

Pobieranie próbki dźwięku

0x01 graphic

Różnica pomiędzy oryginalną wartością, a zapisanym, zaokrąglonym wynikiem pomiaru zwana jest błędem kwantowania (ang. quantization error — to jeszcze jeden termin ze specjalistycznego żargonu). Duża ilość błędów kwantowania powoduje powstawanie świszczącego pogłosu w ostatecznie uzyskanym pliku audio.

Wszystko to, co powiedzieliśmy przed chwilą w tak zawiły sposób, sprowadza się do jed­nego prostego twierdzenia: 16 bitów jest lepsze niż 8 bitów. Po co więc było tyle gadać? No cóż, przynajmniej teraz wiesz dlaczego. Ogólna jakość dźwięku cyfrowego jest po­wiązana zarówno z częstotliwością próbkowania (sample rate), jak i rozdzielczością prób­kowania (sample size). Ponieważ jednak ludzkie ucho łatwiej wychwytuje błędy wynikające ze zbyt niskiej rozdzielczości, niż te, wynikające ze zbyt niskiej częstotliwości, należy przede wszystkim zwrócić uwagę na rozdzielczość. Jeśli to możliwe, zawsze korzys­taj z rozdzielczości 16-bitowej, a nie 8-bitowej. Pracując w 8 bitach, uży­waj największej z dostępnych częstotliwości próbkowania — pozwoli Ci to częściowo zrekompensować błędy.

Musisz także wiedzieć, że na jakość dźwięku ma wpływ również ilość kanałów, jakie zapi­szemy. Dźwięk można bowiem zapisywać przy użyciu wielu kanałów, zwykle czyni się tak w celu uzyskania stereofonicznego efektu. Przy jednym kanale mamy do czynienia z dźwiękiem mono, przy dwóch mamy stereo, przy czterech kwadrofonię i tak dalej. Zupełnie tak, jak w Twoim odbiorniku radiowym.

Im wyższa częstotliwość próbkowania, im wyższa rozdzielczość i im większa liczba kanałów, tym lepszej jakości dźwięk otrzymujemy. Przykładowo, dźwięk zapisany przy roz­dzielczości 8-bitowej i częstotliwości próbkowania 8 kHz przypomina to, co zwykle sły­szymy przez telefon. Natomiast 16-bitowy dźwięk stereofoniczny o częstotliwości 44 kHz odpowiada już standardowi CD. Niestety, zupełnie tak, jak w przypadku obrazów, lepsza jakość oznacza większe rozmiary pliku. Minuta 8-bitowej muzyki o częstotliwości 22 kHz zajmie około 1,25 MB na Twoim dysku, zaś minuta muzyki o jakości typowej dla odtwarzacza CD (16 bitów, 44 kHz) zajmie około 10 MB. Jak łatwo zgadnąć, stereo zajmie dwa razy więcej miejsca niż mono.

A co z kompresją? Jeżeli pliki audio zajmują tyle miejsca, dlaczego nie postąpić tak, jak to uczynili specjaliści od komputerowej grafiki i nie opracować mechanizmów kompresji, które pozwolą zredukować rozmiary plików? Niestety, jak twierdzą eksperci w tej dziedzinie (a nam wypada wierzyć im na słowo), pliki audio są niezmiernie trudne do skompresowania. W gruncie rzeczy nie ma w tym nic dziwnego, jeśli wziąć pod uwagę, jak bardzo złożone są fale dźwiękowe. Nie możemy w tym przypadku liczyć na odszukanie jakichś powtarzających się wzorów i jednolitych obszarów, które tak znakomicie ułatwiają kompresowanie obrazów. Wśród popularnych formatów zapisu dźwięku jest zaledwie kilka takich, które mają wbudowany mechanizm kompresji.

Odtwarzanie dźwięku cyfrowego w postaci analogowej

Udało nam się zakodować analogowy dźwięk w cyfrowej postaci. Teraz chcemy go odtworzyć. Komputer staje przed zadaniem przetworzenia zakodowanych danych — szeregu cyfrowych „próbek” dźwięku z powrotem do postaci analogowej fali.

Cyfrowy dźwięk składa się z milionów zapisanych próbek, z których każda odtwarzana jest przez określony odcinek czasu (ten sam, w jakim przedtem próbka została pobrana). Ponieważ w tym czasie zapisana wartość amplitudy dźwięku pozostaje stała, wytwarzana fala dźwiękowa ma zębaty, poszarpany kształt, a dźwięk brzmi nieco dziwacznie (patrz rysunek 14.5).

Rysunek 14.5.

Poszarpany sygnał analogowy

0x01 graphic

Z tego powodu stosuje się specjalne filtry analogowe, które wygładzają kształt fali dźwiękowej (patrz rysunek 14.6) wysyłanej z głośników Twojego komputera.

Rysunek 14.6.

Sygnał po wygładzeniu

0x01 graphic

Popularne formaty zapisu dźwięku

Teraz, gdy już wiemy, czym jest cyfrowy dźwięk, mówimy sposoby jego przechowywania. Niestety, do tej pory nie ma takiego formatu plików audio, który stałby się standardem w sieci, tak jak to się stało z formatami GIF oraz JPEG w przypadku obrazów. W użyciu jest wiele formatów, każdy z nich stosowany w innych przypadkach. W tym rozdziale opiszemy pobieżnie najpopularniejsze formaty i zakres ich zastosowań.

Format *-law (Mu-law), AU

Najbardziej rozpowszechnionym i najdostępniejszym z formatów zapisu dźwięku jest format *-law, wymawiany jak „mju-lo:” (a czasem „ju-lo:”, gdyż grecka litera * przypomina wyglądem literę „u”). Jest to format uniwersalny, dostępny na różnych platformach sprzętowych. Wykorzystywany jako standard zapisu dźwięku w systemach Sun oraz NeXT, format *-law został zaprojektowany w Stanach Zjednoczonych na użytek telekomunikacji. Jego europejskim odpowiednikiem jest A-law, który zwykle niczym się od niego nie różni. Także sam format *-law ma kilka odmian, z których wszystkie występują pod tą samą nazwą. Wszystkie mogą być jednak bez problemu odczytywane i odtwarzane na każdym sprzęcie, który przyjmuje format *-law. Pliki w formacie *-law zwane są czasem plikami AU, gdyż ich rozszerzenie to właśnie .au.

Dźwięk zapisany w formacie *-law jest monofoniczny, 8-bitowy, o częstotliwości 8KHz. Sposób kodowania dźwięku różni się od stosowanego w większości innych formatów o podobnych możliwościach. Dzięki temu format *-law ma lepszą dynamikę (zróżnicowanie pomiędzy cichymi i głośnymi dźwiękami) niż inne formaty o równie niskiej rozdzielczości i częstotliwości próbkowania. Za to wykazuje większą tendencję do występowania syczącego pogłosu.

0x01 graphic

Niektóre programy pozwalają zapisać dźwięk w formacie *-law z częstotliwością próbkowania wyższą niż 8 kHz. Jednak tak zapisany plik może nie dać się odtworzyć na innych platformach sprzętowych. Jeżeli zamierzasz korzystać z formatu *-law, pozostań lepiej przy typowej częstotliwości 8 kHz.

Jedyną zaletą formatu *-law jest jego szeroka kompatybilność sprzętowa. Pod wieloma adresami sieciowymi, pod którymi rozpowszechniane są pliki audio wysokiej jakości, zapisane w formatach, takich jak AIFF lub MPEG, znaleźć też można kopie tych plików zapisane w formacie *-law. Pozwala to poszerzyć krąg odbiorców.

Format AIFF/AIFC

AIFF (ang. Audio Interchange File Format) został opracowany przez firmę Apple. Pierwotnie przeznaczono go dla systemu Macintosh. Później zaadoptował go także system SGI. Jeśli chodzi o elastyczność użytkowania, AIFF jest doskonałym formatem. Pozwala zapisywać dźwięk mono lub stereo, z rozdzielczością 8- lub 16-bitową przy wielu różnych częstotliwościach próbkowania. Pliki w formacie AIFF mają rozszerzenie .aiff lub .aif.

Format AIFC to odmiana formatu AIFF z wbudowaną kompresją. Podstawowym algorytmem kompresji jest MACE (ang. Macintosh Audio Compression/Expansion) występujący w dwóch odmianach: MACE3 (kompresja 3:1) oraz MACE6 (kompresja 6:1). Kompresja MACE w obu swych wersjach jest kompresją stratną. Nie można więc oczekiwać, że dźwięk zapisany w formacie AIFC będzie miał jakość równie wysoką, jak zapisany w formacie AIFF. Nie powinno być natomiast żadnych problemów z odtwarzaniem. Odtwarzacze, które potrafią odczytać plik AIFF, potrafią też z reguły odczytać plik AIFC. Przy wyborze formatu AIFF lub AIFC powinniśmy się więc kierować wymaganiami co do jakości dźwięku z jednej strony, a wielkości pliku z drugiej.

Format SND systemu Macintosh

Format SND, czasem zwany po prostu „dźwiękiem systemowym Mac-a” — Macintosh System Sounds — wykorzystywany jest tylko w systemie Macintosh do zapisu rozmaitych prostych dźwięków, pisków i dzwonków, jakie towarzyszą pracy na komputerze. Pliki SND mogą zawierać cyfrowe próbki lub serię poleceń i być odtwarzane przez Macintosh Sound Manager. Pliki SND nie są zbytnio rozpowszechnione w sieci ze względu na kompatybil­ność wyłącznie z systemem Macintosh. Są za to łatwo dostępne, a ich konwersja do innego formatu dźwiękowego nie przysparza żadnych trudności.

Format WAVE systemu Windows

Format WAVE lub RIFF WAVE, zwany też WAV z powodu charakterystycznego dla niego rozszerzenia (.wav), został opracowany przez Microsoft dla systemu IBM. Z chwilą wprowadzenia tego formatu w wersji 3.1 systemu Windows, stał się on standardem dla komputerów IBM. Formaty WAVE oraz AIFF mają ze sobą wiele wspólnego, zwłaszcza pod względem elastyczności użytkowania. Również w plikach WAVE możemy zapisywać dźwięk z rozmaitą rozdzielczością, częstotliwością próbkowania i liczbą kanałów. Dodatkowo pliki WAVE mogą wykorzystywać kilka algorytmów kompresji. WAVE jest domyślnym formatem zapisu plików dźwiękowych w systemach Windows i z tego względu stał się najpopularniejszym formatem ogólnego przeznaczenia.

Format MPEG Audio

MPEG (ang. Moving Picture Experts Group) jest organizacją zajmująca się przede wszystkim standaryzacją metod kompresji cyfrowego obrazu wideo. Ponieważ jednak na taśmach wideo obrazowi towarzyszy zwykle dźwięk, również kompresja dźwięku znalazła się w kręgu zainteresowań tej grupy. Algorytm kompresji dźwięku formatu MPEG jest zdecydowanie zbyt skomplikowany, by go tu omawiać, innymi słowy, sama go nie rozumiem. Jeśli jednak będziesz zainteresowany tym tematem, to szczegółowe informacje znajdziesz w pliku MPEG FAQ na większości sieciowych stron, zajmujących się rozprowadzaniem plików FAQ w Usenecie. Adres jednej z tych stron podałam na końcu tego rozdziału.

Pliki dźwiękowe w formacie MPEG niezwykle szybko zdobyły popularność w sieci. Format MP3 oferuje doskonałe możliwości kompresji oraz wysoką jakość dźwięku, dzięki czemu wielu muzyków zdecydowało się rozprowadzać swoje utwory w tej postaci. Dostępnych jest także wiele programów odczytujących ścieżki dźwiękowe z płyt kompaktowych i zapisujących je w formacie MP3, co pozwala na zapisanie utworów muzycznych na dysku i późniejsze ich odtwarzanie. Dystrybucja tych plików bez zgody wydawcy płyty kompaktowej jest nielegalna, jednak wiele osób tworzy kopie piosenek na swój prywatny użytek. Doskonałą witryną poświęconą MP3 jest MP3.com http:// www.mp3.com/.

Format RealAudio

Pliki w formacie RealAudio wymagają odtwarzacza RealAudio lub odpowiedniego dodatku i są rozpowszechniane za pomocą serwera RealAudio. Obecnie występują w dwóch odmianach. Format 14.4 nadaje się do odtwarzania przy użyciu modemu 14,4 kb i szybszego, otrzymujemy monofoniczny dźwięk o jakości AM. Format 28.8 nadaje się do odtwarzania przy użyciu modemu 28,8 kb i szybszego, otrzymujemy monofoniczny dźwięk o jakości „prawie-FM”. Format RealAudio był początkowo tworzony jako format strumieniowany. W odróżnieniu od plików WAVE, które przed odtworzeniem trzeba pobrać w całości, pliki (lub raczej strumienie audio) RealAudio wymagają tylko pobrania i przechowania w buforze kilku sekund utworu lub transmisji, która następnie może być odtwarzana w czasie rzeczywistym. Dzięki temu ich wykorzystanie w Internecie jest znacznie bardziej praktyczne. Korzystając z plików RealAudio, użytkownicy mogą słuchać ich już w trakcie pobierania, nie muszą czekać, aż plik zostanie pobrany w całości.

Oba formaty, 14.4 oraz 28.8, wyposażone są w wysoce skuteczny algorytm stratnej kom­presji, zaprojektowany specjalnie dla nich. Pliki z dźwiękiem, zapisane w formacie RealAudio, są zwykle o wiele mniejsze, niż analogiczne pliki zapisane w formacie AIFF lub WAVE, ale też jakość dźwięku bywa zwykle niższa. Więcej informacji na temat formatu RealAudio możesz znaleźć na witrynie http://www.real.com/; z witryny tej będziesz także mógł skopiować odtwarzacz RealAudio Player oraz Serwer.

Windows Media

Firma Microsoft stworzyła format plików audio i wideo określany jako Advanced Streaming Format, którego można użyć do tworzenia plików audio strumieniowo przekazywanych przez Internet. Pliki te są bardzo elastyczne, można je kompresować do niewielkich rozmiarów i przesyłać łączami o niewielkiej przepustowości lub też zastoso­wać kompresję o mniejszym stopniu, aby zapewnić lepszą jakość odtwarzania. Pliki dźwiękowe Windows Media zostały zaprojektowane w celu zastąpienia strumieniowanych plików audio w formacie RealAudio G2 oraz plików MP3. Więcej informacji na temat technologii Windows Media można znaleźć pod adresem

http://www.microsoft.com/windows/windowsmedia/pl/default.asp .

Skąd brać pliki dźwiękowe?

Skąd brać pliki dźwiękowe do wykorzystania na stronach sieciowych? Jest wiele różnych źródeł: