Standard MP3
Historia Standard MPEG-1 - "Layer3" został opracowany w niemieckim instytucie Fraunhofer, a konkretnie w departamencie "Audio i Multimedia", gdzie około 30 inżynierów pracuje nad rozwojem oraz implementacja "w czasie rzeczywistym" algorytmów przetwarzania sygnałów dla potrzeb komunikacji audiowizualnej. Prace rozpoczęto w roku 1987, przy ścisłej współpracy z uniwersytetem Erlangen, w celu opracowania zaawansowanego algorytmu kodowania sygnałów audio dla przyszłych stacji nadawczych ( Np. Eureka 147, DAB radio). W roku 1991 prace nad algorytmem kodowania "Layer3" zostały ukończone i stał się on najbardziej optymalnym sposobem kodowania sygnałów audio w rodzinie określanej przez międzynarodowe normy ISO-MPEG. Używając tego algorytmu (znanego powszechnie w Internecie jako MP3, ze względu na rozszerzenie) do kodowania plików audio, jakość "prawie CD" tj. stereo, 44KHz, 16 bitów, można uzyskać przy 112-128kbps ( stopień kompresji 11:1-13:1). 2
Psychoakustyka Dźwięk zapisany w formie nieskompresowanej na przykład na CD zawiera więcej informacji niż jest w stanie przetworzyć ludzki mózg. Gdy dźwięk składa się z kilku tonów o zbliżonej częstotliwości lub, gdy jeden z tonów jest znacznie głośniejszy niż inne, niektóre tony mogą w ogóle nie zostać wychwycone przez ludzki mózg. Niektóre częstotliwości są odbierane przez ludzkie ucho lepiej, inne gorzej 3
Psychoakustyka Słuch ludzki odbiera częstotliwości leżące w zakresie 20Hz 20 khz. Częstotliwości położone w środku pasma słyszymy lepiej niż skrajne. Czułość ucha w zakresie wysokich częstotliwości spada wraz z wiekiem oraz pod wpływem długotrwałego narażenia na dźwięk o dużym natężeniu. Większość dorosłych ludzi nie jest w stanie usłyszeć prawie nic o częstotliwości powyżej 16 khz. Ludzki mózg pełni rolę filtru, który uwypukla informacje ważniejsze i odrzuca informacje nadmiarowe. 4
5
Idea kompresji MP3 Kompresja MP3 oparta jest o matematyczny model psychoakustyczny ludzkiego ucha. Idea kompresji mp3 polega na wyeliminowaniu z sygnału tych danych, które są dla człowieka niesłyszalne lub, które słyszymy bardzo słabo. Kompresja MP3 jest połączeniem metody kompresji stratnej z kompresją bezstratną 6
Etapy kodowania MP3 Kodowanie MP3 opiera się o dwie metody kompresji stratną i bezstratną 1 etap koder eliminuje z sygnału składowe słabo słyszalne i niesłyszalne dla człowieka (kompresja stratna) 2 etap uzyskane dane poddawane są dodatkowej kompresji w celu eliminacji nadmiarowości (kompresja bezstratna) 7
Etapy kodowania MP3 etap 1 Sygnał wejściowy jest dzielony na mniejsze fragmenty zwane ramkami o czasie trwania ułamka sekundy Na podstawie sygnału kodera widmowy rozkład gęstości mocy, czyli ustala jak przydzielić bity poszczególnym częstotliwościom pasma akustycznego, aby zapewnić możliwie najwierniejsze zakodowanie sygnału Pasmo akustyczne dzielone jest na podpasam w celu uzyskania lepszej efektywności kodowania poprzez zastosowanie niewielkich modyfikacji algorytmu dla każdego z nich Na podstawie zadanej przez użytkownika gęstości strumienia bitowego (ang. Bitrate) koder ustala maksymalną liczbę bitów przydzielonych dla każdej ramki (liczba bitów = długość ramki * bitrate) 8
Etapy kodowania MP3 etap 1 Widmo sygnału dla każdej ramki porównywane jest z matematycznymi modelami psychoakustycznymi. W wyniku tego porównania koder określa, które ze składowych dźwięku jako najlepiej słyszalne muszą zostać odwzorowane najwierniej, a które można zakodować w przybliżeniu lub w ogóle pominąć Strumień bitów podawany jest ponownej kompresji poprzez kodowanie Hoffmana. Celem tej operacji jest usunięcie nadmiarowości z danych przetworzony w pierwszym etapie, czyli dodatkowe kompresja (bezstratna) Kolejne ramki poprzedzone nagłówkami są składane w pojedynczy ciąg bitów ( strumień bitowy). Nagłówki zawierają metainformacje określające parametry poszczególnych ramek 9
Kompresja stratna i bezstratna Algorytmy kompresji można podzielić na 2 klasy: Kompresja bezstratna (ang. lossles compression) Kompresja stratna (ang. lossy compression) 10
Kompresja bezstratna Dane odtworzone z postaci skompresowanej są identyczne z oryginałem. Wykorzystywana jest tam, gdzie nie można sobie pozwolić na utratę jakichkolwiek danych np. kompresja plików tekstowych, programów itp. Przykładem kompresji bezstratnej może być kompresja algorytmem LZW wykorzystywanym do tworzenia plików ZIP 11
Kompresja stratna Dane odtworzone z postaci skompresowanej różnią się od oryginału. Ta metoda kompresji wykorzystywana jest tam, gdzie ubytek zostaje niezauważony lub nie wpływa znacząco na efekt końcowy. Dzięki zastosowaniu tej metody można uzyskać mniejsze pliki, kosztem utraty mniej istotnych danych. Przykładem kompresji stratnej może być algorytm JPEG. Wykorzystuje on fakt, że w wielu przypadkach ilość informacji zawartych w obrazie, jest znacznie większa, niż trzeba do oddania jego zawartości z rozsądną jakością. 12
Maskowanie Maskowanie polega na przysłanianiu sygnałów słabszych sąsiadujących z sygnałami znacznie głośniejszymi, które je zagłuszają. Przysłanianie to polega na inteligentnemu przypisaniu większej ilości bitów sygnałowi, który będzie lepiej słyszalny dla człowieka, a mniejszej dla sygnału, który jest trudny do wychwycenia. Rozróżniamy 2 rodzaje maskowania: Maskowanie równoczesne Maskowanie czasowe 13
Maskowanie równoczesne Efekt maskowania równoległego opiera się o fakt, że człowiek nie jest w stanie odróżnić dwóch dźwięków o zbliżonej częstotliwości, jeśli jeden z nich jest znacznie głośniejszy od drugiego (przypadek A). Możliwe jest to dopiero wtedy, gdy sygnały mają zupełnie różne częstotliwości (przypadek B) 14
Maskowanie równoczesne Maskowanie równoczesne polega na eliminacji składowych o mniejszym natężeniu, które mają zbliżoną częstotliwość do dźwięku o większym natężeniu. 15
Maskowanie czasowe Efekt maskowania czasowego opiera się o fakt, że słuch ludzki nie może rozróżnić dwóch odrębnych dźwięków, jeśli pojawią się one w zbyt krótkim odstępie czasu W przypadku równoczesnego wystąpienia dźwięku o małym natężeniu równocześnie z dźwiękiem głośniejszym, nie będziemy w stanie usłyszeć tego pierwszego Maskowanie czasowe polega na eliminacji składowych o mniejszym natężeniu, które wystąpiły zbyt krótkim odstępie czasu przed lub po dźwięku o większym natężeniu 16
Maskowanie czasowe 17
Strumień bitowy Gęstość strumienia bitowego (ang. Bitrate) jest to współczynnik kompresji sygnału algorytmem MP3 Określa ona ile bitów przypadającą na sekundę finalnego zapisu. Ustawienie odpowiedniej wartości strumienia bitowego jest kompromisem między jakością a rozmiarem pliku wynikowego 18
Tryby CBR i VBR Kompresja MP3 może przebiegać: ze stałą gęstością strumienia bitowego (ang. constant bitrate) zmienną gęstością strumienia bitowego (ang. variable bitrate) Tryb CBR koduje sygnał w taki sposób, że każda jego sekunda będzie zawierała tą samą ilość bitów. Tryb VBR koduje sygnał uwzględniając jego dynamikę, dzięki czemu przydziela więcej bitów fragmentom sygnału, który zawiera dużo ważnych informacji, oraz mniej bitów dla części sygnału, które są mniej skomplikowane. Kompresja w trybie VBR wymaga podania przedziału tolerancji, w jakim może się zmieniać gęstość strumienia bitowego 19
Częstotliwość próbkowania Dla zapisu na płytach CD standardowa częstotliwość próbkowania wynosi 44,1 khz, natomiast dla zapisu ludzkiej mowy wystarczy jedynie 8kHz. 20
Swoboda implementacji Ciekawostką jest to, że specyfikacja formatu MP3 zawarta w dokumencie ISO/IEC 11172-3, nie określa dokładnie sposobu samego kodowania, a jedynie prezentuje ogólny zarys techniki, i określa wymagany poziom zgodności zapisu z normą. Innymi słowy, ustala ona kryteria, jakie musi spełniać struktura pliku, by można było go sklasyfikować jak zgodny ze standardem MP3. Podejście ma na celu promowanie różnorodności implementacji koderów i dekoderów MP3 realizowanych przez różnych producentów. Specyfikacja ISO pełni jedynie rolę bazowego zestawu reguł, określających sposób funkcjonowania standardu tak, aby za pomocą dowolnego kodera można było wygenerować plik odtwarzany przez dowolny dekoder. 21
Dodatkowe zagadnienia dotyczące kodowania Rezerwa Bitowa Ponieważ zadana gęstość strumienia bitowego obowiązuje dla każdej ramki, w przypadku bardzo złożonych fragmentów może okazać się niewystarczająca i koder nie będzie w stanie zapewnić żądanej jakości zapisu w ramach przydzielonej liczby bitów. Aby zapobiec temu zjawisku standard MP3 zapewnia możliwość skorzystania z dodatkowej rezerwy umożliwiającej zapisanie nadmiarowych danych. Rezerwa ta powstaje w miejscu pustych fragmentów ramek, w których po zakodowaniu sygnału zostało trochę miejsca. 22
Dodatkowe zagadnienia dotyczące kodowania Łączenie kanałów zapisu stereofonicznego Dzięki ludzkiej niezdolności do lokalizacji w przestrzeni źródeł dźwięku o niskich częstotliwościach standard MP3 przewiduje możliwość łączenia kanałów stereofonicznych w jeden za pomocą opcji joint stereo. Pliki stworzone tą metodą zajmują znacznie mniej miejsca (prawie dwukrotnie, gdyż zamiast dwóch kanałów zapisany zostaje tylko jeden), ale niestety w wielu przypadkach zastosowani tej techniki znacznie wpływa na jakość sygnału (orientację przestrzenną) i należy ją stosować tylko wtedy, gdy zależy nam na małej objętości pliku Dodatkową możliwością podczas kodowania sygnału z funkcją joint stereo jest stereofonia różnicowa. Polega ona na zapisaniu dwóch ścieżek kanału środkowego będącego sumą sygnałów R i L oraz kanał boczny będący ich różnicą, który służy później do rekonstrukcji sygnału oryginalnego podczas odtwarzania pliku. 23
Kodowanie Hoffmana Dane uzyskane w procesie kodowania percepcyjnego poddawane są drugiemu etapowi kompresji bezstratnej kodowaniu Hoffmana Jest to jedna z najprostszych i łatwych w implementacji metod kompresji bezstratnej. Została opracowana w 1952 roku przez Amerykanina Davida Huffmana. Algorytm Huffmana nie należy do najefektywniejszych systemów bezstratnej kompresji danych, dlatego też praktycznie nie używa się go samodzielnie. Często wykorzystuje się go jako ostatni etap w różnych systemach kompresji, zarówno bezstratnej jak i stratnej. 24
Kodowanie Hoffmana Kodowanie Huffmana to system przypisywania skończonemu zbiorowi symboli, o z góry znanych prawdopodobieństwach, kodów o zmiennej liczbie bitów. Później symbole te są zastępowane odpowiednimi bitami na wyjściu. Symbole te to najczęściej po prostu Bajty, choć nie ma żadnych przeszkód żeby było nimi coś innego. Algorytm Huffmana jest algorytmem niedeterministycznym, ponieważ budowanie słów kodowych dla danych symboli nie jest jednoznaczne. Podczas budowania drzewa, gdy napotkamy więcej niż dwa węzły o takich samych prawdopodobieństwach, nie jest określone, które i w jakiej kolejności mamy brać pod uwagę. Jednak średnia długość kodu pozostaje taka sama. Kod Huffmana nie jest kodem prefiksowym. Oznacza to, że żadne słowo kodowe nie jest początkiem innego słowa. 25
Struktura pliku MP3 Plik MP3 składa się z ogromnej liczby ramek, z których każda odpowiada ułamkowi sekundy zapisu rekonstruowanego przez dekoder. Każda ramka poprzedzona jest nagłówkiem zawierającym 32 bity dodatkowych informacji opisujących następujące po nim właściwe dane. Na początku lub końcu pliku mogą znajdować się znaczniki ID3, które zawierają dane o autorze, tytule, prawach autorskich itp. 26
Nagłówek Nagłówek zawiera dodatkowe informacje opisujące następujące po nich informacji w ramkach 27
Składniki nagłówka Nagłówek składa się z: A) bloku synchronizującego o długości 11 bitów. Blok ten umożliwia synchronizację dekodera z odbieranym strumieniem bitów (dzięki niemu można Np. przeskoczyć do innego fragmentu utworu). B) dwubitowego identyfikatora zawierającego informację o klasie algorytmu MPEG 28
Składniki nagłówka C) dwubitowego identyfikatora niosącego informację o warstwie algorytmu (I, II, III lub nieokreślony). D) bitu zabezpieczenia (wartość 0 powoduje dodanie sumy kontrolnej bezpośrednio za nagłówkiem). E) kodu gęstości strumienia bitowego o długości 4 bitów, który określa gęstość strumienia bitowego dla danej ramki. 29
Składniki nagłówka F) dwubitowego kodu częstotliwości próbkowania (samplerate; np. 441 khz) G) bitu wypełnienia, który pozwala na skompensowanie ewentualnych różnic w długościach ramek, wynikających z konieczności utrzymania zadanej gęstości strumienia bitowego H) bitu prywatnego, pozwalającego na uruchamianie funkcji specyficznych dla oprogramowania dekodującego 30
Składniki nagłówka I) dwubitowej informacji o kanałach, która odpowiada za sposób zakodowania kanałów w danej ramce ( mono, stereo, joint stereo) J) rozszerzonej informacji o kanałach o długości dwóch bitów, stosowane w trybie joint stereo do przechowywania informacji o sposobie kodowania niskich częstotliwości K) bitu znacznika blokady kopiowania, służącego do blokowania możliwości kopiowania pliku ograniczonego prawami autorskimi 31
Składniki nagłówka L) jednobitowego znacznika oryginału ( 0 = kopia, 1= oryginał) M) dwubitowego znacznika preemfazy sygnalizującego użycia tej funkcji w oryginalnym zapisie 32
Składniki nagłówka - Podsumowanie A) blok synchronizujący B) identyfikator zawierający informację o klasie algorytmu MPEG C) identyfikator niosącego informację o warstwie algorytmu (I, II, III lub nieokreślony) D) bit zabezpieczenia E) kod gęstości strumienia bitowego F) kod częstotliwości próbkowania G) bit wypełnienia, H) bit prywatny I) informacja o kanałach J) rozszerzona informacja o kanałach K) znacznik blokady kopiowania L) znacznik oryginału M) znacznik preemfazy 33
Składniki nagłówka Schemat blokowy 34
Znaczniki ID3 Znaczniki id3 zawierają dodatkowe informacje o pliku w formacie mp3 takie jak autor, tytuł, informacje o prawach autorskich, warunki udostępniania utworu, dowód własności pliku, miniatury graficzne i komentarze. Znaczniki id3 pozwalają klasyfikować utwory do poszczególnych kategorii oraz opatrywać je numerami identyfikacyjnymi 35
Najpopularniejsze dekodery (palyery) Najpopularniejszymi programami służącymi do odsłuchiwania plików MP3 są: Winamp (na platformach Windows i Mac OS) Windows Media Player (platforma Windows, instalowany wraz z systemem) XMMS (w Linuksie). 36
Najpopularniejsze kodery plików MP3 Najpopularniejszymi programami służącymi do kompresji plików w stanadardzie MP3 są: Audio Grebber ( platforma Windows) Audio Catalyst (platforma Windows) Sound Jam (platforma Mac OS) CD Paranoia (platforma Linux) 37
Zalety standardu MP3 Duży stopień kompresji - stosując kompresję MP3 uzyskujemy plik wynikowy o rozmiarze ok. 10 razy mniejszym od oryginału Możemy sterować stopniem kompresji dostosowując go do indywidualnych potrzeb Metoda ta pozwala uzyskać sygnał o stosunkowo dobrej jakości Dekompresja wymaga znacznie mniej mocy obliczeniowej niż kompresja Standard ten jest swobodnie dostępny oraz nieskrępowany zabezpieczeniami Twórcy standardu bezpłatnie udostępnili kod źródłowy programów kodujących i dekodujących, dzięki czemu standard ten stał się niezwykle popularny 38
Wady standardu MP3 Jest to metoda kompresji stratnej, co uniemożliwia zrekonstruowanie sygnału oryginalnego Kompresja wymaga stosunkowo dużo mocy obliczeniowej 39
Dziękuję za uwagę 40