Poradnik MP3 cz.1

To proste – mamy płytę, za chwilę „empetrójkę” i odtwarzacz: wszystko gra. Warto jednak poznać kilka sztuczek, by zwiększyć satysfakcję wynikającą z obcowania ze skompresowanymi plikami muzycznymi.

mp3Początki przygody z plikami MP3 są podobne dla większości użytkowników: dostajemy kilka „empetrójek”, ściągamy jakiś odtwarzacz (najczęściej Winampa) i słuchamy. Dopiero wraz z upływem czasu orientujemy się, że to jeszcze nie wszystko, co możemy zrobić ze skompresowanymi dźwiękami. Pojawiają się pierwsze pytania, czasami problemy: jak poprawnie zakodować muzykę z płyty, jakim programem hurtowo zmienić tzw. tagi itp. Poniżej przedstawiono kilkanaście odpowiedzi na najczęściej pojawiające się pytania, dotyczące MP3.

1. Odtwarzanie

Czy dźwięk generowany przez kolejne wersje Winampa zawsze brzmi tak samo?
Nie, autorzy Winampa, podobnie jak twórcy wielu innych aplikacji, wymieniają niekiedy biblioteki dekodujące pliki MP3 na zupełnie nowe ich wersje, pochodzące od innych dostawców. Programiści z firmy Nullsoft takiej zamiany dokonywali czterokrotnie, a Winamp napędzany był trzema całkowicie różnymi „silnikami”. Aż do wersji 1.92 pliki dekodowane były za pomocą wolnej i zawierającej sporo błędów biblioteki AMP. Wraz z premierą wersji 2.00 Winamp zyskał nowy dekoder Nitrane, napisany przez programistów Nullsoftu. Wkrótce biblioteka ta stała się przedmiotem sporu patentowego, co zmusiło autorów do zastąpienia jej oprogramowaniem niemieckiego Instytutu Fraunhofera. Po rozwiązaniu konfliktów prawnych Nitrane powrócił w Winampie 2.23 i… znów został zamieniony na biblioteki Instytutu Fraunhofera w chwili wydania wersji 2.666. Jeżeli dodać do tego, że ten sam dekoder jest zwykle doskonalony w kolejnych wydaniach programu, okaże się, że muzyka odtwarzana przez niemal każdą wersję aplikacji może brzmieć nieco inaczej. Różnice te są oczywiście stosunkowo niewielkie, lecz każdy z nas chce mieć świadomość, że używa najlepiej brzmiącej odmiany Winampa. Taką opinią cieszą się wydania korzystające z dekodera fraunhoferowskiego, czyli wszystkie wersje, począwszy od 2.666.

2. Kodowanie

Czy kodując dźwięk do MP3 za pomocą różnych koderów, lecz stosując te same parametry (bitrate, tryby stereofonii), uzyskam zawsze ten sam efekt?
Nie, każdy koder MP3 kompresuje muzykę w nieco inny sposób, inaczej wybiera elementy nagrania, które są pakowane silniej, i te podlegające mniejszej kompresji. W rezultacie pliki MP3 o identycznej objętości skompresowane z tego samego materiału źródłowego będą brzmiały inaczej. Obecnie za najlepszy darmowy koder MP3 uważany jest LAME – najnowsza wersja 3.93 generuje pliki dorównujące pod względem jakości nagraniom tworzonym za pomocą doskonałego, komercyjnego oprogramowania Instytutu Fraunhofera.

3. Stały czy zmienny bitrate?

Większość plików MP3 kompresowana jest ze stałym bitrate’m. Słyszałem jednak, że nagrania o zmiennej przepływności są lepsze. Czy to prawda?
Tak, nagrania MP3 o zmiennej przepływności (VBR), tworzone przez nowoczesne kodery, pozwalają na uzyskanie możliwie najlepszej, stałej w czasie trwania całego utworu jakości przy zachowaniu rozsądnych rozmiarów plików. Dzięki dynamicznej regulacji objętości kolejnych ramek pliku MP3 możliwe jest zaoszczędzenie miejsca w mało skomplikowanych fragmentach nagrań i przeznaczenie tak uzyskanej przestrzeni na wierniejsze opisanie bardziej złożonych części.
Małą popularność plików VBR tłumaczyć należy przede wszystkim kwestiami historycznymi: stare kodery MP3 miały niekiedy problemy z poprawnym rozpoznawaniem stopnia złożoności muzyki, co powodowało, że tworzone przez nie pliki typu VBR zawierały źle brzmiące fragmenty.

4. LAME a wysokie tony

LAME jest podobno doskonałym koderem, a tymczasem w utworzonych przez niego plikach MP3 brakuje wysokich tonów. Dlaczego?
Zanim LAME zacznie kompresować muzykę, domyślnie poddaje ją filtracji dolnoprzepustowej. W ten sposób z nagrań zostają całkowicie usunięte wszystkie dźwięki o częstotliwościach wyższych niż 16-18 kHz (w zależności od wybranej przepływności) i dopiero tak przekształcona muzyka podlega kodowaniu. Paradoksalnie takie „okaleczenie” nagrań jest często korzystne. Zaletą procesu jest oszczędność miejsca – wysokoczęstotliwościowe składowe muzyki podlegają najsłabszej kompresji i ich poprawne przeniesienie do pliku MP3 wymagałaby opisania ich wieloma parametrami. Usuwając wysokie tony jeszcze przed kompresją, oszczędza się miejsce, które znacznie korzystniej można wykorzystać dla wierniejszego oddania składowych o niskich i średnich częstotliwościach, na które ucho ludzkie jest znacznie bardziej czułe.
Choć brak wysokich częstotliwości można łatwo zauważyć, poddając pliki MP3 analizie widmowej za pomocą któregoś z edytorów muzycznych (np. CoolEdit 2000), nie zawsze jest on odczuwalny przez słuchaczy. Z odtworzeniem dźwięków o częstotliwości powyżej 18 kHz nie poradzą sobie niemal żadne komputerowe głośniczki czy tanie słuchawki, a zdolność do ich słyszenia nie jest wcale powszechna u ludzi.
Jeżeli jednak mimo wszystko zależy nam na tym, aby LAME nie usuwał z naszych nagrań wysokich tonów, wystarczy użyć podczas kompresji parametru -k, co wyłączy wstępną filtrację sygnału.

5. Ograniczenia sprzętowe

Głośniki mojego komputera nie przenoszą skrajnych częstotliwości. Czy można to wykorzystać podczas tworzenia MP3?
Tak, jeżeli słuchawki albo głośniki nie potrafią odtworzyć bardzo wysokich albo bardzo niskich tonów, szkoda przeznaczać w plikach MP3 miejsce dla niesłyszalnych dźwięków. Powinniśmy zatem zmierzyć, jakie częstotliwości są poprawnie przenoszone przez nasz sprzęt. Wykorzystajmy edytor muzyczny wyposażony w funkcję generowania tonów o zadanych częstotliwościach (np. wspomniany już CoolEdit 2000). Stwórzmy w nim sinusoidę o częstotliwości np. 20 kHz i spróbujmy jej posłuchać – jeżeli nie usłyszymy nic, należy obniżać częstotliwości o ok. 1 kHz i przeprowadzać kolejne odsłuchy aż do odnalezienia górnej granicy pasma przenoszenia. W podobny sposób określamy też dolną częstotliwość graniczną, która w większości przypadków leżeć będzie w zakresie 50-100 Hz.
Dysponując wiedzą o paśmie przenoszenia naszego sprzętu, możemy przystąpić do kodowania plików MP3. Górną granicę filtracji ustalamy za pomocą parametru -highpass, a dolną -lowpass, po których wpisujemy częstotliwości wyrażone w kilohercach. Parametry nakazujące filtrację sygnału w zakresie 100 Hz-15 kHz powinny więc wyglądać tak:

-lowpass 0.1 -highpass 15

Oczywiście parametry te można także zadać w łatwiejszy sposób w niemal każdej nakładce na LAME, gdzie są one nazywane Highpass filtering frequency i Lowpass filtering frequency.