Kiedyś dawno temu natknąłem się na podobny test w internecie i od tej pory testuję sobie w ten sposób kodeki audio. Sprawa polega na skompresowaniu specjalnie przygotowanego do tego celu dźwięku i sprawdzeniu zmian w jego dynamice. Sygnał taki składa się z wygenerowanych na całym zakresie pasma słyszalnego dźwięków o różnych częstotliwościach oddalonych od siebie mniej więcej o te same odległości.

O co w tym w ogóle chodzi ?
Kodeki kompresując dźwięk zmniejszają jego dynamikę przez co pogarsza się jego jakość (zmniejsza selektywność, więcej szumów itp.). Ważne jest aby była ona jak największa. Czyli mówiąc prościej im większa dynamika po kompresji tym lepszy kodek.

Co to właściwie jest dynamika dźwięku ?
Jest to stosunek sygnału do szumu, czyli różnica pomiędzy poziomem sygnału testowego o określonych parametrach (tutaj 0 dB) a poziomem szumów, podana w dB. Inaczej mówiąc różnica pomiędzy najcichszym a najgłośniejszym sygnałem jaki maże być odtworzony bez przekraczania określonych zniekształceń.



Rozmiar: 136083 bajtów

Podsumowanie.
1) Kodek LAME 3.96
72 dB właściwie w całym paśmie, dopiero powyżej 18000 Hz dynamika spada ale tego nie słychać (mało kto w ogóle cokolwiek słyszy w tym zakresie). Uzyskany wynik jest bardzo dobry.
Inne wyniki :
Przykładowy plik *.wav o wielkości 47,6 MB
- czas kodowania - 15 s (AMD Barton 2600+) - wielkość pliku wynikowego 8,65 MB

2) Kodek MPC 1.14
Jak widać na rysunku zastosowano tu metodę zmniejszania się dynamiki wraz ze zwiększaniem się częstotliwości, od 96 dB w okolicach 0-2000 Hz (kodowanie właściwie bezstratne), aż do 52 dB w okolicach 18000 Hz (jakość kasety magnetofonowej). Czyli jakość wysokich tonów jest z pewnością niższa niż w kodeku mp3, za to zyskano na wielkości pliku. Kodek bazuje na sprytnym oszustwie, najlepiej koduje obszary, które świetnie słyszymy 800 Hz do 1500 Hz (widać to idealnie na rysunku). Dlatego odnosi się wrażenie, że jest lepszy niż mp3 (bo w tych pasmach częstotliwości rzeczywiście jest).
Inne wyniki :
Przykładowy plik *.wav o wielkości 47,6 MB
- czas kodowania - 15 s (AMD Barton 2600+) - wielkość pliku wynikowego 7,09 MB

Werdykt: Zarówno LAME jak i MPC to wyśmienite kodeki. Żaden z nich nie jest dużo lepszy od drugiego. Generalnie jednak jakość uzyskanych plików jest praktycznie nie do odróżnienia od oryginału. Niezależnie co wybierzecie będzie to dobre :).

Pozdrawiam

Uaktualnienie



Rozmiar: 90132 bajtów

No tak, przy zastosowaniu kodeka w wersji 1,15s i ustawieniu quality na 10 otrzymałem wynik, absolutnie rewelacyjny. Chcę przy okazji zauważyć, iż kodek ten prezentuje zupełnie inne podejście do kompresji niż LAME (dla którego cały zakres częstotliwości osiąga tą samą dynamikę przy danych parametrach). Częstotliwości, które uznano za kluczowe są kodowane lepiej niż pozostałe (widać to dokładnie na wykresie, więc komentarz jest zbędny).

Wypadało by teraz napisać, iż przy takich ustawieniach Musepack Encoder pokonuje swego rywala, jednak wychwycenie różnicy między nimi przy takich ustawieniach to już zupełnie inna sprawa ... czy możliwa ?, sprawdźcie sami.

Dodam jeszcze, iż 78 dB osiągnięte przez LAME-a jest również wynikiem świetnym i w żaden sposób nie przekreśla go przy stosowaniu do kompresji dźwięku.