Skocz do zawartości

Forum Elektronika uses cookies. Read the Polityka prywatności for more info. To remove this message, please click the button to the right:    I accept the use of cookies


Zdjęcie
- - - - -

Jak działa mp3? (mp3 = MPEG 1 Layer 3)


  • Please log in to reply
Brak odpowiedzi na ten temat

#1 Aniol

Aniol

    Legendarny elektro

  • Redaktor
  • 7624 Postów:

Napisany 30 grudzień 2006 - 09:28

Jak działa mp3? (mp3 = MPEG 1 Layer 3)


Początki

W roku 1987, w ramach międzynarodowego programu EUREKA, w niemieckim instytucie Fraunhofer IIS rozpoczęto prace nad radiofionią cyfrową (DAB - Digital Audio Broadcasting). W trakcie tych prac, w kooperacji z Uniwersytetem w Erlangen, przygotowano bardzo skuteczny algorytm zapisu sygnałów dźwiękowych, który stał się podstawą normy ISO - MPEG Audio Layer-3


Dźwięk CD

Dźwięk CD to 16-bitowe próbki wykonywane z częstotliwością 44,1 kHz dla każdego kanału z osobna. Jedna sekunda ma więc objętość 1411,2 kilobitów danych (16*44,1*2), co daje ok. 10,3 MB na minutę.


Model psychoakustyczny, kompresja stratna

Teoretycznie słyszymy dźwięki z zakresu od 20 Hz do 20 kHz, więc płyta CD oferuje nam pełną skalę doznań. Jednak w rzeczywistości większość ludzi jest głucha na wszystko powyżej 16-17 kHz. Na dodatek ucho najlepiej reaguje na pasmo 2 do 4 kHz (mowa mieści się w zakresie tzw. pasma telefonicznego - 0,5 do 2 kHz). Gdy słyszymy dźwięk o wysokim natężeniu, blokuje on percepcję fal o podobnej częstotliwości, lecz mniejszym natężeniu. Muszą być znacznie głośniejsze niż to wynika z normalnej charakterystyki ucha, abyśmy mogli je wychwycić. Mocny dźwięk zwie się maskującym, słabszy zaś - maskowanym. Zjawisko maskowania może pojawiać się nie tylko przy jednoczesnym pojawieniu się dwóch dźwięków o różnym natężeniu i podobnej częstotliwości. Istnieje ono także w funkcji czasu (ogranicza percepcję innych dźwięków w następnych sekundach).
Wykorzystując tę psychoakustyczną ułomność zmysłu, stworzono kodowanie podzakresowe SBC, którego podstawowym założeniem jest odrzucanie wszystkich zbędnych informacji o maskowanych częstotliwościach. A jako że jest ich sporo, efekt kodowania okazuje się rewelacyjny. Co prawda sygnał wyjściowy nie odpowiada oryginałowi, ale ucho ludzkie tego nie rozróżnia.


Algorytm koderów

Ogólny algorytm postępowania koderów jest następujący: sygnał wejściowy zostaje najpierw podzielony na podzakresy częstotliwościowe dla danej jednostki czasu (po ludzku: co jakiś czas branych jest ileś próbek pasma). Podzakresy porównywane są z orginałem i na podstawie analizy modelu psychoakustycznego koder określa próg słyszalności dla próbki. Następnie każda z próbek jest kwantowana (zamieniana na postać cyfrową) tak, by słowo ją opisujące było na tyle małe, żeby szum kwantowania nadal znajdował się poniżej progu słyszalności. Długość słowa uzyskuje się przez podzielenie wartości poziomu stosunku sygnału do szumu przez 6 (1 bit kwantyzacji to poprawa dynamiki o 6 dB) i zaokrąglenie wyniku wzwyż. Przykładowo, jeśli maskujący ma 70 dB, a maskowane przez niego dźwięki zanajdują się poniżej poziomu 50 dB, to różnica wynosi 20 dB i jest to stosunek sygnału do szumu w danym podzakresie. Błąd kwantowania w tym podzakresie może być duży, bo i tak szum zostanie zakyty dźwiękiem maskującym. Do opisu próbek wystarczą wtedy 4 bity (20/6) zamiast 16 jak w CD.
Z gotowych danych koder formuje strumień, dzieląc go na czasowe ramki, by dekoder się nie pogubił. Dodatkowo umieszcza informacje o układzie bitów na przestrzeni widma, czyli w którym miejscu ile bitów opisuje próbki. Algorytmy cyfrowego kodowania i dekodowania sygnałów dźwiękowych, takie jak MPEG Audio Layer-3, są asymetryczne. Oznacza to, że kodowanie wymaga dużo więcej operacji obliczeniowych niż dekodowanie. Dekoder jest prostrzy, bo nie wymaga modelu psychoakustycznego. Rozpakowywuje jedynie ramki, dekoduje próbki z podzakresów i mapowaniem przywraca do postaci sygnału audio.


MP3 to wcale nie MPEG-3!

Ten skrót wziął się jedynie z rozszerzenia plików. W rzeczywistości nazwa wywodzi się z MPEG-1 Layer 3. Zarówno standard MPEG-1, jak i MPEG-2 zawierają 3 warstwy obsługi kanałów audio: najprostszą i najstarszą Layer 1, Layer 2 i Layer 3 (powstałą w 1991 roku w instytucie Fraunhofer). Im wyższy numer warstwy, tym większa kompresja, a więc niższe pasmo transmisji i wielkość pliku wyjściowego. W Layer 1 kompresja sygnału wynosi 4:1, więc dane wędrują z szybkością 384 kbps. W Layer 2 stopień upakowania wzrósł do 6:1...8:1, co dało 256...192. Layer 3 to najbardziej zaawansowana technologia z kompresją nawet 10:1...12:1 umożliwiającą transmisję 128...112 kbps. We wszystkich trzech warstwach kodery dzielą sygnał na ramki zawierające po 384 próbki - po 12 z każdego z 32 podzakresów.


Różnice między warstwami

Layer 1 dzieli pasmo na podzakresy o tym samym rozrzucie częstotliwości, a model psychoakustyczny wykorzystuje tylko maskowanie częstotliwościowe. Layer 2 w filtrowaniu kieruje się trzema ramkami: poprzednią, obecną i następną, wykorzystuje więc element maskowania czasowego. Layer 3 wprowadza nierówny rozdział częstotliwości w podzakresach (uwzględnia różną czułość ucha ludzkiego dla różnych częstotliwości - z naciskiem na przedział 2 do 4 kHz), używa zaawansowanego maskowania czasowego, redukuje powtarzalność sygnałów stereo (gdy oba kanały mają te same lub bardzo podobne wartości w niższym przedziale pasma, są łączone w jeden strumień; człowiek nie wie, z jakiego kierunku rozchodzą się dźwięki poniżej pewnej częstotliwości, stąd idea subwooferów) i używa znanego algorytmu kompresji Huffmana.


Elastyczność normy

Norma ISO MPEG Audio Layer-3 określa format skompresowanych danych cyfrowego sygnału dźwiękowego, ale nie definiuje ściśle procesu kodowania. Tym sposobem realizacja procesu kodowania określa wynikową jakość odtwarzania dźwięków. Takie podejście umożliwia wprowadzanie ulepszeń do układu kodowania dźwięków zgodnie z normą i bez potrzeby wymiany istniejących dekoderów.





0 Użytkowników czyta ten temat

0 użytkowników, 0 gości, 0 anonimowych użytkowników