TTiZI - Wyklad 6 - kompresja wideo PDF

Title TTiZI - Wyklad 6 - kompresja wideo
Course Techniki transmisji i zobrazowania informacji
Institution Wojskowa Akademia Techniczna
Pages 127
File Size 1.6 MB
File Type PDF
Total Downloads 46
Total Views 127

Summary

kompresja wideo, dr piet...


Description

PRZEGLĄD STANDARDÓW KOMPRESJI OBRAZÓW RUCHOMYCH  W wykładzie przedstawiono wprowadzenie do kompresji obrazów ruchomych, charakterystykę wybranych standardów kompresji oraz przegląd kodeków i kontenerów wideo.  Wprowadzenie do kompresji prezentuje podstawowe techniki i narzędzia wspólne dla większości opracowanych metod kodowania.  Opisane standardy kompresji obrazów ruchomych, powstały jako efekt prac ITUT oraz Moving Picture Experts Group (MPEG), powołanych przez dwie organizację

międzynarodowe,

odpowiednio

Telecommunication Union) oraz ISO/IEC.

ITU

(ang.

International

 Pierwsze badania nad metodami kompresji obrazów wideo podjęto na początku lat 80-tych ubiegłego wieku. Rozpoczęto prace nad stworzeniem standardu przesyłania obrazu na potrzeby wideokonferencji z wykorzystaniem istniejącej infrastruktury

telekomunikacyjnej.

Tak

powstał

pierwszy

praktycznie

wykorzystywany standard kompresji obrazów ruchomych H.261.  Rozwój technologii i komputeryzacja niemalże każdej dziedzin życia i działalności człowieka, rozpowszechnienie szerokopasmowego dostępu do Internetu i stale rosnąca prędkość łączy, przyczyniły się do powstania kolejnych standardów kompresji obrazów wideo. Na rysunku 1 przedstawiono rozwój standardów kompresji obrazów ruchomych.

Rys. 1. Rozwój standardów kompresji obrazów wideo 

 Standardy H.262/MPEG-2 oraz H.264/AVC powstały przy współpracy ITU-T i Motion Picture Experts Group. H.264/AVC jest najnowocześniejszym spośród przedstawionych standardów i jest stale rozwijany. Prócz opisanych standardów opublikowanych

przez

organizację

międzynarodowe,

istnieje

wiele

komercyjnych standardów kompresji wideo opracowanych przez producentów oprogramowania.

1. WPROWADZENIE DO KOMPRESJI OBRAZÓW RUCHOMYCH  Techniki kompresji obrazów ruchomych są dynamicznie rozwijane. Kolejne standardy kompresji powstawały najczęściej jako rozwinięcie wcześniej opracowanych algorytmów w celu poprawy oferowanej przez nie jakości obrazu i szybkości procesu kompresji. Z tego powodu posiadają wiele wspólnych technik kodowania sekwencji wideo.

Dyskretna transformata kosinusowa  Dwuwymiarowa dyskretna transformata kosinusowa (ang. Two-dimensional Discrete Cosine Transform, 2D-DCT) jest wykorzystywana we wszystkich prezentowanych

standardach

kompresji

jako

podstawowe

narzędzie

przekształcenia bloków próbek N×N w ciąg współczynników DCT. Rozmiar bloku jest określony w standardzie kompresji i najczęściej wynosi 8×8 próbek. Dwuwymiarową dyskretną transformatę kosinusową macierzy próbek o wymiarze N×N definiujemy jako macierz, której elementami są liczby wyznaczone zgodnie z zależnością:

F (u, v) 

N 1 N 1 u (2i  1)    v (2 j  1)  2 C (u )C (v ) f (i, j ) cos    cos  2N N   2N   i 0 j  0

przy czym  1 dla u 0   2 C (u )   ;   1w przeciwnym razie

 1 dla v  0  2 C (v )     1 w przeciwnym razie

(1.1)

Dla bloków o wymiarach 8×8 próbek zależność (1.1) przyjmuję postać: 7 7 1  u (2i  1)   v(2 j  1)  F (u , v )  C (u )C ( v)  f (i, j) cos  cos   16 16 4     i  0 j 0

dla

u , v  0, 1,  , 7,

przy czym

 1 dla u  0  2 C (u )   ;   1w przeciwnym razie

 1 dla v  0  2 C (v )     1 w przeciwnym razie

(1.2)

 Współczynnik znajdujący się w lewym górnym rogu (o indeksie 0, 0) otrzymanej macierzy 8×8 nazywany jest współczynnikiem DC (ang. direct current). Współczynnik DC ma wartość 8-krotnej średniej ze wszystkich próbek w danym bloku. Pozostałe 63 współczynniki nazywane są współczynnikami AC (ang. alternate current). Otrzymane wartości współczynników transformaty DCT zawierają więcej danych niż pierwotny zbiór próbek. Aby zapewnić zmniejszenie

wymagań

dotyczących

pamięci

przeprowadzana

jest

kwantyzacja elementów transformaty.  Dyskretne przekształcenie kosinusowe zyskało dużą popularność w algorytmach kompresji obrazów. DCT w porównaniu na przykład z dyskretną transformatą Fouriera umożliwia osiągnięcie wyższego zagęszczenia energii dla większości skorelowanych sygnałów źródłowych.

Kwantyzacja i kodowanie  Kwantyzacja współczynników DCT polega na przeskalowaniu każdego z nich

poprzez podzielenie jego wartości przez odpowiedni współczynnik

kwantyzacji zapisany w tablicach kwantyzacji. Tablice kwantyzacji są różnie definiowane

w

poszczególnych

implementacjach

standardów

kompresji.

Zazwyczaj dąży się do takiego dobrania elementów tablic kwantyzacji, aby w wyniku

tego

procesu,

współczynniki

DCT

odpowiadające

małym

częstotliwościom zostały skwantowane z większą dokładnością od pozostałych. Współczynniki odpowiadające najwyższym częstotliwościom po skwantowaniu i zaokrągleniu zostają przyrównane do zera. Przykładowa tablica współczynników kwantyzacji dla składowej luminancji została przedstawiona w tabeli 1.

Tabela 1. Przykładowa tablica kwantyzacji 8 16 19 22 26 27 29 34 16 16 22 24 27 29 34 37 19 22 26 27 29 34 34 38 22 22 26 27 29 34 37 40 22 26 27 29 32 35 40 48 26 27 29 32 35 40 48 58 26 27 29 34 38 46 56 69 27 29 35 38 46 56 69 83

 Po zakończeniu procesu kwantyzacji otrzymane współczynniki są zapisywane w jednowymiarowej

tablicy

w

porządku

zygzakowatym

(ang.

zigzag),

przedstawionym na rysunku 2. Taki sposób uporządkowania został opisany przez A. G. Teschera w 1978 roku i umożliwia umieszczenie współczynników odpowiadającym niskim częstotliwościom przed pozostałymi współczynnikami. Zapewnia to większą efektywność kodowania skwantowanych współczynników. Uporządkowany w ten sposób ciąg skwantowanych współczynników poddawany jest kompresji bezstratnej, tzw. kodowaniu długości serii (ang. run-length encoding), na przykład z wykorzystaniem algorytmu Huffmana.

Rys. 2. Porządek zygzakowaty skwantowanych współczynników DCT [

Przestrzeń barw  Jednym z modeli przestrzeni barw stosowanym do prezentacji obrazu cyfrowego jest model opisany współrzędnymi RGB. Jego nazwa powstała ze złożenia pierwszych liter angielskich nazw barw składowych: R – red (czerwonej), G – green (zielonej) oraz B – blue (niebieskiej). Z połączenia barw składowych w różnych proporcjach otrzymuje się barwy pochodne. Barwa każdego piksela jest opisana za pomocą trzech składowych o wartościach z przedziału

0; 2 B  1

, gdzie

B oznacza liczbę bitów głębi koloru. Dla najczęściej stosowanej 24-bitowej głębi koloru, każda składowa jest opisana 8 bitami i przyjmuje wartości z przedziału od 0 do 255.

 Innym wykorzystywanym modelem przestrzeni barw jest YUV. Jego powstanie jest związane z wprowadzeniem modelu zintegrowanego sygnału kolorowego

na

potrzeby

transmisji

telewizyjnej.

Aby

zapewnić

kompatybilność ze starszymi odbiornikami czarno-białymi, rozdzielono opis jasności od barwy. YUV składa się ze składowej luminancji oraz dwóch składowych chrominancji.  Konwersja przestrzeni barw do modelu YUV jest często wykorzystywana w technice kompresji, gdyż pozwala zmniejszyć liczbę danych o kolorze. Wykorzystuje się przy tym fakt, że oko ludzkie jest bardziej wrażliwe na zmiany jasności. W standardach kompresji obrazów ruchomych stosuje się najczęściej model YUV w postaci 4:2:0, 4:2:2. Opis ten określa stosunek liczby próbek luminancji do liczby próbek dwóch składowych chrominancji oraz ich relacje przestrzenne.

Kompensacja i estymacja ruchu  W większości metod kompresji sekwencji obrazów ruchomych wykorzystuję się kompensację ruchu. Stosuje się przy tym podobieństwo sąsiednich klatek obrazu wideo i przeprowadza się translację obszarów obrazu. W bardziej złożonych algorytmach kompresji możliwe są także inne przekształcenia obrazu, takie jak rotacja czy przeskalowanie. Kodowanie makrobloków (ang. macroblocks) obrazu jest przeprowadzane przez znalezienie w obrazie stanowiącym klatkę odniesienia makrobloku, który jest najlepszym przybliżeniem makrobloku referencyjnego. W przypadku kompresji klatek dwuprzewidywanych (typu B) położenie makrobloku jest określane z wykorzystaniem poprzednich i kolejnych klatek obrazu. Dla klatek typu P wykorzystuje się tylko obszary następnych klatek jako punkty odniesienia.

 Kolejnym procesem jest wyznaczenie wektorów przesunięcia makrobloków obrazu – estymację ruchu. Stosowane algorytmy estymacji ruchu wyszukują w obrazie makrobloki i śledzą obiekty ruchome. Po odszukaniu najlepiej dopasowanego makrobloku wprowadzają opis wektorowy pozycji, w której makroblok ma być umieszczony. Istnieje wiele metod wyznaczania wektorów przemieszczenia.

Standard

MPEG-1

najczęściej

wykorzystuję

metodę

dopasowania bloków obrazu. W zaawansowanych algorytmach kompresji obrazów ruchomych (H.264/AVC) wprowadzono podział bloku o wymiarach 16×16 piksela na 4 części (4×4), z których każda jest opisana własnym wektorem przemieszczenia. Pozwala to na lepsze odwzorowanie ruchu, zwiększenie jakości obrazu klatek przewidywanych i zmniejszenie efektu blokowości. Wektory ruchu

opisujące

przemieszczenie

bloków

obrazu

skompresowanego kodekiem x264 przedstawiono na rysunku.

materiału

Rys. 3. Wektory przemieszczenia wykorzystywane w procesie estymacji ruchu

2.

CHARAKTERYSTYKA

WYBRANYCH

STANDARDÓW

KOMPRESJI OBRAZÓW RUCHOMYCH  W poniższym punkcie przedstawiono międzynarodowe standardy kompresji obrazów ruchomych. Opisano wykorzystywane mechanizmy i techniki kompresji sekwencji wideo dla różnych zastosowań. 2.1. H.120  H.120 był pierwszym standardem kodowania cyfrowego materiału wideo. Został opublikowany przez międzynarodowy komitet CCITT (franc. Comité Consultatif International Téléphonique et Télégraphique) w 1984 roku. W 1988 roku została ustalona kolejna specyfikacja standardu uwzględniająca zmiany zaproponowane przez inne organizacje, a w 1993 roku została opublikowana przez ITU (ang. International Telecommunication Union) jego ostateczna forma.

 Standard ten nie zyskał szerokiego zastosowania, pomimo kilku implementacji, jednakże doprowadził do rozwoju prac i badań nad kompresją obrazu wideo i opracowania następcy – standardu H.261.  Standard H.120 zakładał przepływność bitową strumienia wideo (ang. bitrate) na poziomie 1544 kbit/s dla obrazu w standardzie NTSC (ang. National Television System Committee) oraz 2048 kbit/s dla obrazu w standardzie PAL (ang. Phase Alternating Line).  W pierwszej wersji H.120 (1984) zastosowano takie mechanizmy jak: różnicowa modulacja impulsowo-kodowa, kwantyzacja skalarna, kodowanie ze zmienną długością słowa kodowego (ang. variable-length coding, VLC). Do kolejnej wersji standardu wprowadzono mechanizm kompensacji ruchu oraz predykcji drugiego planu.

 Standard H.120 nie oferował wystarczającej jakości obrazu wideo dla jego praktycznego wykorzystania. Stało się jasne, że dla poprawy jakości materiału wideo bez zwiększania przepływności bitowej strumienia, konieczne jest użycie efektywniejszej metody kompresji przetwarzającej całe grupy pikseli, a nie każdy z osobna. Rozwiązanie to zostało zastosowane w kolejnych standardach, między innymi w H.261, który można uznać za pierwszy standard kompresji wprowadzony do praktycznego użytku.

2.2. H.261  W roku 1984, komitet CCITT (obecnie ITU-T) rozpoczął pracę nad stworzeniem standardu

przesyłania

obrazu

dla

potrzeb

wideokonferencji

z

wykorzystaniem sieci cyfrowych z integracją usług (ISDN). Idea zakładała przesyłanie obrazu i dźwięku pomiędzy użytkownikami, umożliwiając im kontakt głosowy i wizualny na odległość. Standard H.261 powstał na podstawie wcześniej opracowanego standardu H.120 jako jego bezpośredni następca. Transmisja dźwięku i sygnału wideo wiązała się z przesyłaniem bardzo dużej liczby informacji, dlatego też rozpoczęto prace nad metodami kompresji danych audiowizualnych.

 Grupę standardów kompresji podzielono na dwie klasy, H dla obrazu wideo oraz G dla sygnału audio, pracujące z szybkością p  64 kbit/s, gdzie p  1; 30 w zależności od liczby używanych kanałów sieci ISDN. Umożliwia zatem przesyłanie danych z przepływnością bitową na poziomie od 64 kbit/s do 1,92 Mbit/s. Rodzinę standardów p  64 przedstawiono w tabeli 2. Tabela 2. Rodzina standardów p×64 Nazwa standardu Przeznaczenie wideo H.261 komunikacja H.221 zestawienie połączeń H.230 system terminala H.320 protokół kontrolny H.242 dźwięk towarzyszący G.711 dźwięk wysokiej jakości G.722 mowa G.728

 H.261 jako pierwszy stosowany w praktyce standard kompresji wideo, został wykorzystany do opracowania kolejnych standardów takich jak MPEG-1 Part 2, H.262/MPEG-2 Part 2, H.263, MPEG-4 Part 2 oraz H.264/MPEG-4 Part 10.  Dlatego też standard MPEG posiada wiele cech wspólnych z rodziną p  64 . Oba standardy korzystają z techniki podziału kompresowanego strumienia na warstwy oraz makrobloki, a także wykorzystują dyskretną transformatę kosinusową. Zastosowanie kompensacji ruchu, wektory ruchu, pomijanie pustych klatek oraz wykorzystanie kodowania ze zmienną długością słowa kodowego to cechy wspólne.

 Istotną różnicą jest rodzaj stosowanej kompresji. Standard H.261 zapewnia tzw. kompresję symetryczną – proces kompresji i dekompresji jest realizowany w czasie rzeczywistym, co wymusza ich szybki przebieg. Kodowanie MPEG wykorzystuje metodę kompresji asymetrycznej. Proces kodowania nie jest realizowany w czasie rzeczywistym i wymaga dużego nakładu mocy obliczeniowej, natomiast proces dekodowania przeprowadzany jest na bieżąco, np. podczas odtwarzania materiału wideo.  Standard H.261 odróżnia się od standardu MPEG także przebiegiem procesu kwantyzacji oraz ilością warstw strumienia. H.261 przeprowadza kompresje strumienia wideo podzielonego na cztery warstwy, natomiast standard MPEG wykorzystuje podział klatki obrazu na 6 warstw. Dodatkowo standard H.261 używa w procesie predykcji jedynie klatek typu P, nie występują tu klatki typu B.

 W H.261 kodowane są obrazy o dwóch standardach: CIF (ang. Common Intermediate Format) albo QCIP (ang. Quarter Common Intermediate Format) z pewnymi

ograniczeniami.

Nominalna

rozdzielczość

standardu

CIF

to

360×288 pikseli dla składowej luminancji oraz 180×140 dla składowych chrominancji, jednakże kodowanych jest tylko 352 z 360 kolumn, co sprawia że efektywny rozmiar obrazu jest mniejszy i wynosi 352×288 pikseli (luminancja) oraz 176×144 pikseli (chrominancja). Podobnie jest w przypadku QCIF, którego nominalna rozdzielczości obrazu stanowi jedną czwartą rozdzielczości CIF, czyli dla składowej luminancji wynosi 180×144 pikseli (efektywny obszar 176×144) oraz dla składowych chrominancji 90×72 pikseli (obszar efektywny 88×72).

 Obraz wideo w standzie H.261 można przedstawić na czterech warstwach.  Główną warstwą jest warstwa obrazu, rozpoczynająca się od nagłówka (ang. picture header) poprzedzającego odpowiednio 3 albo 12 grup bloków (ang. Group of Blocks, GOB). Grupę bloków stanowi zestaw 33 makrobloków. Każda GOB tworzy tablicę o trzech wierszach i jedenastu kolumnach o rozmiarach 176×48 pikseli, na format CIF składa się więc 12 grup bloków, a na QCIF trzy.  Kolejną warstwą jest warstwa grup makrobloków zbudowana z nagłówka i 33 makrobloków. Następną warstwą jest warstwa makrobloków. Każdy makroblok składa się z nagłówka makrobloku oraz 6 bloków obrazu.  W nagłówku makrobloków znajdują się dane wektorów przemieszczenia, opisujące zmiany położenia elementów sceny.

 Ostatnia warstwa zawiera zakodowane elementy bloków oraz 8-bitowy znacznik końca bloku (ang. End Of Block, EOB). Poszczególne warstwy zostały przedstawione na rysunku 4. 3 albo 12 GOB (Grup Bloków)

nagłówek klatki

nagłówek GOB

do 33 makrobloków

nagłówek makrobloku blok0 blok1

VLC VLC



… blok5

VLC EOB

Rys.4. Warstwy obrazu wideo w standardzie H.261

2.3. H.263  Standard ten powstał jako kontynuacja H.261 i podobnie do poprzednika miał znaleźć zastosowanie w komunikacji audiowizualnej, jednakże o niższej przepływności bitowej strumienia – poniżej 64 kbit/s. W praktyce znalazł o wiele szersze zastosowania. Standard H.263 został wykorzystany do kompresji animacji i filmów Flash Video, na potrzeby takich serwisów internetowych jak, na przykład YouTube czy Google Video oraz został zaimplementowany w kodeku RealVideo.  Wprowadzono w nim wiele ulepszeń, w celu poprawy efektywności i elastyczności kompresji, takich jak: nieograniczone wektory przemieszczenia (ang. Unrestricted Motion Vector, UMV), składniowe kodowanie arytmetyczne (ang. syntax-based arithmetic coding), zaawansowana predykcja ruchu (ang. advanced prediction) oraz interpolacja dwukierunkowa.

 Pozwala na kodowanie obrazu w pięciu standardach: sub-QCIF, QCIF, CIF, 4CIF oraz 16CIF, tabela 3. Tabela 3. Liczba wyświetlanych pikseli dla obsługiwanych formatów obrazu Liczba pikseli dla Liczba pikseli dla składowej składowej luminancji Format chrominancji obrazu pozioma pionowa pozioma pionowa (dx) (dy) (dx) (dy) sub-QCIF 128 96 64 48



QCIF

176

144

88

72

CIF

352

288

176

144

4CIF

704

576

352

288

16CIF

1408

1152

704

576

 Standard H.263 (wersja 1) posiada cztery tryby pracy, przełączane w zależności od wykonywanych zadań. W następnej wersji, standard (H.263+) wzbogacono o dodatkowe 12 trybów, a ostatnia wersja (H.263++) oferuje łącznie 19 trybów pracy, poprawiających wydajność kodowania, odporność na błędy oraz elastyczność.  Pierwszy z trybów pracy H.263 wprowadza użycie nieograniczonych wektorów przemieszczeń, w trybie domyślnym wektory ruchu opisują tylko przemieszczenie w granicach obrazu. Tryb ten umożliwia odwoływanie się wektorów ruchu do punktów leżących poza obrysem obrazu. Zastosowane rozwiązanie pozwala uzyskać lepsze parametry obrazu podczas przemieszczania obiektu na scenie lub poza scenę. Przemieszczający się blok jest śledzony aż do całkowitego opuszczenia obszaru obrazu.

 Dodatkowo rozszerzono zasięg wektorów przemieszczeń dopuszczając ich większe długości oraz wprowadzono opcjonalne ustawienia dla kodowania o zmiennej długości słowa (ang. variable-length coding, VLC) danych opisujących wektory ruchu. Uzyskano w ten sposób większą odporność kodowania na błędy transmisji. Kolejny tryb zamienia domyślne kodowanie ze zmienną długością słowa kodowego na kodowanie arytmetyczne zorientowane składniowo (ang. syntax-based arithmetic coding).  Następny tryb wprowadzony w pierwszej wersji standardu H.263 uaktywnia zaawansowane narzędzia predykcji przemieszczenia. Procesy estymacji oraz kompensacji ruchu zostały poprawione poprzez użycie czterech wektorów ruchu dla każdego makrobloku, zamiast jednego. Makroblok o wymiarach 16×16 próbek (dla składowej luminancji) zostaje podzielony na cztery części o wymiarach 8×8, z których każda jest opisana niezależnym wektorem.

 Uzyskuje się w t...


Similar Free PDFs