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ń.
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
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.