Kompresja obrazów ruchomych MPEG
Transkrypt
Kompresja obrazów ruchomych MPEG
Przetwarzanie i transmisja danych multimedialnych Wykład 10 Kompresja obrazów ruchomych MPEG Przemysław Sękalski [email protected] 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. 2. 3. 4. 5. Systems Video Audio Compilance testing 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. 2. 3. 4. 5. Poziom systemowy (dźwięk i obraz razem) Poziom grup obrazów Poziom pojedynczego obrazu Poziom warstw 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 Cb (R,G,B) = ( B – Y ) / 2 + 128 Cr (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 Cb • 1 blok 8 x 8 chrominancji Cb 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 BB PI P BP 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 Rodzaj kodowania 0 1 2 3 4 5 6 7 8 9 10 11 Porządek obrazów oglądanych 0 3 2 1 4 5 8 6 7 9 11 10 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 mkod moŜna zapisać przy wykorzystaniu bloku odniesienia m0 jako: mkod(i,,j)=m0(i+u,,j+v), gdzie [u,v]=[x0-x, y0-y] jest wektorem ruchu. Czyli przy załoŜeniu, Ŝe makroblok odniesienia jest juŜ zakodowany, aby zapisać mkod 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 m0 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 [u1, v1], [u2, v2] 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