Przetwarzanie i transmisja danych multimedialnych Wykład 10 Kompresja obrazów ruchomych MPEG Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych DMCS Wykład opracowano na podstawie ksiąŝki Wprowadzenie do kompresji danych A. Drozdek oraz Multimedia-algorytmy i standardy kompresji W. Skarbek Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 1
Plan wykładu MPEG co to jest? Idea i przyczyna MPEG 1 Kodowanie wideo Kodowanie dźwięku zarys MPEG 2 Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 2
Standard MPEG Jest to schemat kompresji danych multimedialnych Istniejące wersje: MPEG-1 MPEG-2 MPEG-4 prowadzone są badania nad MPEG-7, MPEG-21 Nazwa MPEG (Moving Pictures Experts Group) jest nazwą grupy roboczej ISO/IEC JTC1 SC29 WG11 (1988 rok) ISO: International Organization for Standardization IEC: International Electrotechnical Commission JTC1: Joint Technical Committee 1 SC29: Sub-committee 29 WG11: Work Group 11 Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 3
Motywacja MPEG Obraz PAL (ang. Phase Alternating Line) składa się z 25 klatek. Klatka to obraz o rozdzielczości 720x576 pikseli (24 bit/piksel) 1 sekunda filmu to 30 MB 1,5h film to ok. 150 GB jest rok 1988 postać cyfrowa filmu zajmie 224 krąŝki CD Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 4
Motywacja MPEG Obraz VGA 640x480 pikseli, 8 bitów na piksel (256 kolorów) Jedna klatka to ok. 2,5 Mb Transmisja wymaga przynajmniej 24 klatek czyli 60 Mb/s Plus dźwięk Próbkowany z częstotliwością 44,1 khz x 2 kanały (stereo) Transmisja wymaga 1,4 Mb/s Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 5
MPEG-1 Opis standardu zawarto w 5 dokumentach (11172-x) 1. Systems 2. Video 3. Audio 4. Compilance testing 5. Software Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 6
Struktura pakietowa MPEG-1 (Systems) Opis łączenia strumienia audio i wideo Składnia strumienia bitowego (SB) wraz z semantyką do kodowania i dekodowania elementarnych strumieni (SE) audio i wideo SE składa się z jednostek dostępu (access units) najmniejsza samodzielna (niezaleŝna) część SE, która moŝe być odtworzona (np. 1 klatka) SB składa się z paczek (zdefiniowany początek i koniec) zawierających jeden lub więcej pakietów. Podział na pakiety zaleŝy od kodera (zasoby sprzętowe) Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 7
MPEG 1 - czasy Systemowy koder docelowy STD Znaczniki czasowe DTS (decoding time stamp) Znaczniki czasowe PTS (presentation time stamp) zegar systemowy STC (System time clock) Rejestr SCR (system clock reference) Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 8
Wideo Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 9
MPEG-1 System hierarchiczny 1. Poziom systemowy (dźwięk i obraz razem) 2. Poziom grup obrazów 3. Poziom pojedynczego obrazu 4. Poziom warstw 5. Poziom Makrobloków (4 bloki 8x8 współczynników DCT reprezentujących luminancję i chrominancję) 6. Poziom bloków DCT Makroblok 6 warstw 1 obraz Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 10
Luminancja i chrominancja a RGB Luminancja określa jasność danego obiektu emitującego lub odbijającego światło Y (R,G,B) = 0,299 * R + 0,587 * G + 0,114 * B Chrominancja określa nasycenie C b (R,G,B) = ( B Y ) / 2 + 128 C r (R,G,B) = ( R Y ) / 1,6 + 128 Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 11
Etapy kodowania obrazu Próbkowanie i kwantowanie ramek obrazu Kodowanie ramek (DCT + Huffman) Próbkowanie i kwantowanie Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 12
Makroblok 2 x 2 bloki 8 x 8 luminancji 1 blok 8 x 8 chrominancji C b 1 blok 8 x 8 chrominancji C b rozdzielczość chrominancji jest dwa razy mniejsza w poziomie i pionie (/4) niŝ rozdzielczość luminancji (system widzenia człowieka) Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 13
Standard MPEG Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 14
Grupy obrazów Grupy obrazów: I-obrazy (Intra-coded pictures) kodowane niezaleŝnie D-obrazy zawierające tylko współczynniki DC z DCT P-obrazy (predictive-coded pictures) kodowane na podstawie poprzednich I-obrazów B-obrazy (bidirectionally predictive-coded pictures) kodowane na podstawie poprzednich i przyszłych obrazów typu I i P Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 15
MPEG 1 czasy raz jeszcze Systemowy koder docelowy STD Znaczniki czasowe DTS (decoding time stamp) Znaczniki czasowe PTS (presentation time stamp) zegar systemowy STC (System time clock) Rejestr SCR (system clock reference) Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 16
Kodowanie ramek Kodowanie ramek: Określenie porządku kodowania Kodowanie ramek wg tego porządku I B B P I P B P I P B P czas Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 17
Przykład I B B P I P B P I P B P 0 1 2 3 4 5 6 7 8 9 10 11 0 3 2 1 4 5 8 6 7 9 11 10 Rodzaj kodowania Porządek obrazów oglądanych Porządek obrazów przesyłanych Ramki I są kodowane w całości za pomocą algorytmu JPEG Ramki P i B są kodowane za pomocą wektorów ruchu (predykcja ruchu) Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 18
Podstawowe załoŝenia kodowania predykcyjnego: Ramki dzieli się na niezaleŝne makrobloki Ramki sąsiednie są do siebie podobne Kodowany blok m kod moŝna zapisać przy wykorzystaniu bloku odniesienia m 0 jako: m kod (i,,j)=m 0 (i+u,,j+v), gdzie [u,v]=[x 0 -x, y 0 -y] jest wektorem ruchu. Czyli przy załoŝeniu, Ŝe makroblok odniesienia jest juŝ zakodowany, aby zapisać m kod wystarczy podać tylko wektor ruchu. Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 19
Wektor ruchu ramki P Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 20
Przykład wyznaczania wektora ruchu W obszarze poszukiwań bada się wszystkie moŝliwe połoŝenia makrobloku m 0 i wybiera się to, które minimalizuje kryterium d(u,v) Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 21
Kodowanie ramek P i B Kodowanie ramek P algorytm: Podzielić kodowaną ramkę na makrobloki Wykorzystując ramkę odniesienia wyznaczyć wektory ruchu dla makrobloków Dla ramki zakodowanej przy pomocy wektorów ruchu wyliczyć i zakodować błąd predykcji: Zrekonstruować taką ramkę Obliczyć róŝnicę ramki źródłowej i zakodowanej Taki obraz zakodować JPEG-iem (ale przy uŝyciu innej tablicy kwantyzacji) Kodowanie ramek B Do kodowania ramek dwukierunkowych wykorzystuje się najbliŝszą następną i poprzednią ramkę I lub P Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 22
Ramki B Wyznacza się 2 wektory ruchu [u 1, v 1 ], [u 2, v 2 ] Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 23
Ramki B Sam algorytm jest podobny do algorytmu kodowania ramki P, tutaj takŝe wyznaczamy obraz błędu predykcji i zapisujemy go za pom. algorytmu JPEG Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 24
Ramki B W związku z predykcją ruchu kolejność odtwarzania i zapisu ramek w pliku róŝnią się Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 25
Audio Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 26
Kodowanie stratne oparte na modelach psychoakustycznych Model psychoakustyczny to matematyczny model mówiący jakie informacje o dźwięku są rozpoznawalne przez ludzkie ucho, jakie natomiast nie są. Źródło Wikipedia Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 27
Modele psychoakustyczne - własności Modele psychoakustyczne przewidują zwykle zakres słyszalności od 20 Hz-20 khz i maksymalną czułość w zakresie od 2 khz do 4 khz. Ponadto uwzględnia się maskowanie jednych dźwięków przez inne: maskowanie sąsiednich częstotliwości(maskowanie jednoczesne): ciche dźwięki o częstotliwościach zbliŝonych do częstotliwości dźwięku głośnego nie są słyszalne maskowanie dźwięków następujących (maskowanie pobodźcowe): głośny dźwięk potrafi zagłuszyć cichsze dźwięki następujące zaraz po nim maskowanie dźwięków poprzedzających (maskowanie wsteczne): cichy dźwięk poprzedzający w krótkim czasie dźwięk głośny nie jest słyszalny - ta własność układu słuchowego jest szczególnie ciekawa, gdyŝ nie da się jej wyjaśnić na gruncie adaptacji krótkoterminowej układu słuchowego; równocześnie pokazuje ona, Ŝe układ słuchowy nosi pewne cechy układu nieprzyczynowego. Źródło Wikipedia Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 28
MPEG layer 3 MP3 Pliki nie posiadają swojego nagłówka Dane są podzielone na ramki i kaŝda ramka ma swój nagłówek. Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 29
Pliki MP3 Rozmiar ramki: 144 * BitRate / SampleRate (kiedy bit paddingu=0) (144 * BitRate / SampleRate) +1 (kiedy bit paddingu=1) Znaczenia pól: ID - 1 MPEG-1; 0 - MPEG-2 Layer: Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 30
MP3 bitrate Bitrate Constant Bit Rate (CBR) Variable Bit Rate (VBR) dopiero w nowszych systemach Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 31
MP3 frequency i mode Frequency: Mode: dual channel w którym dźwięk jest zapisywany jako dwa odrębne kanały monofoniczne. stereo (stereo mode 0) w którym kaŝda ramka zapisywana jest algorytmem left/right stereo. joint stereo (stereo mode 1) w którym dla kaŝdej ramki wybierany jest najlepszy dla niej algorytm zapisu dźwięku stereo. Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 32
MP3 mode extension i emphasis Mode extension (tylko przy Joint Stereo): intensity stereo w którym sygnał stereo dla niektórych (głównie wysokich) częstotliwości kodowany jest jako monofoniczna wartość uzupełniona o wektor określający kierunek, z którego dochodzi dźwięk. W praktyce stosowany tylko przy niskiej przepływności (poniŝej 80 kbps). Emphasis: Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 33
MP3 nagłówek cd Protection: 0 - plik niechroniony 1- po nagłówku jest 16b CRC Padding: 0 - nie ma paddingu 1-1b paddingu Private, Copyright, Original: 0 - nie 1 - tak TAGi ID3 v1 - ostatnie 128 B pliku v2 - bloki mogące występować w dowolnym miejscu w pliku Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 34
MP3 ID3v1 ID3v1 KaŜde pole musi być zakończone bajtem 0 Ostatni B komentarza moŝe zawierać numer ścieŝki Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 35
Wideo raz jeszcze MPEG - 2 Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 36
MPEG - 2 Zapoczątkowany w 1991 roku Dedykowany do transmisji telewizyjnej i satelitarnej, wideokonferencji, rozproszone bazy danych itp Przetwarzanie większych obrazów z większą częstotliowścią Przeplot Profile: prosty SP, główny MP oraz skalowalne (ze względu na współczynnik sygnał/szum SNR, przestrzennie Spt, górny HP) Poziomy: niski LL, główny ML, wysoki high-1440, wysoki HL 11 klas (punktów zgodności) Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 37
za tydzień MPEG-4 i jego następcy Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 38
Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 10, 2006 39