Kodowanie i kompresja 1 Kompresja wideo

Transkrypt

Kodowanie i kompresja 1 Kompresja wideo
Kodowanie i kompresja
Streszczenie
Studia Wieczorowe
Wykład 10, 2007
1 Kompresja wideo
Dane wideo jako sekwencja skorelowanych obrazów (ramek).
Specyfika danych wideo:
• drobne zmiany kolorów w kolejnych ramkach (niezależnie w każdej ramce) niezauważalne statycznie, irytujace
˛ w sekwencji;
• rozmyte kraw˛edzie zauważalne statycznie, lecz nieistotne przy dużej dynamice
sekwencji.
Specyfika zastosowań:
• wideokonferencje: symetria mi˛edzy kodowaniem i dekodowaniem.
• dane wideo: kodowanie może mieć wi˛eksze wymagania obliczeniowe.
1.1 Kompensacja ruchu (oparta na blokowaniu)
Stosujemy predykcj˛e zawartości bieżacej
˛ ramki w oparciu o ramk˛e ja˛ poprzedzajac
˛ a.˛
Dokładniej:
• Dzielimy ramk˛e bieżac
˛ a˛ na bloki rozmiaru M × M .
• Dla każdego bloku bieżacej
˛ ramki badamy jego podobieństwo (wg ustalonej miary) do obszarów rozmiaru M × M w ramce poprzedniej, znajdujacych
˛
si˛e w
ustalonym otoczeniu tego bloku.
• Jeśli podobieństwo odpowiednio duże (do najbardziej podobnego bloku z ramki
poprzedniej, spośród porównywanych): kodujemy blok bieżacy
˛ poprzez wektor
ruchu (równy wzgl˛ednemu położeniu wzgl˛edem kodowanego bloku) i wartości
różnic pomi˛edzy blokiem bieżacym
˛
i blokiem z poprzedniej ramki (traktowanym
w ten sposób jako wartość przewidywana, predykcja).
• Jeśli podobieństwo małe: zakodowana postać bloku zawiera oryginalne wartości
z bloku (i informacj˛e o tej formie kodowania).
Inne warianty i szczegóły:
1
• kodujac
˛ bieżac
˛ a˛ ramk˛e, najlepiej porównywać jej bloki do bloków poprzedniej,
ale w postaci w jakiej b˛edzie ona po odkodowaniu (uwzgl˛edniajac,
˛ że po stronie
dekodera tylko ta postać b˛edzie znana);
• uproszczony wariant kompensacji może polegać na tym, że w przypadku odpowiednio dużego podobieństwa do bloku z poprzedniej ramki, nie kodujemy różnic
mi˛edzy blokami, przyjmujemy że sa˛ identyczne;
• jeśli ramka “nast˛epna” jest znana (b˛edzie kodowana w inny sposób i przesłana
wcześniej), stosuje si˛e kompensacj˛e z dwustronna˛ predykcja˛ (bidirectional) –
próbujemy kompensacji w odniesieniu do poprzedniej i nast˛epnej ramki.
• Kompresja wektorów ruchu:
Najwydajniejsza ze stosowanych metod (np. w MPEG) koduje ciag
˛ wektorów
ruchu kolejnych bloków metoda˛ predykcyjna.˛ Wartość predykcji wektora dla
danego bloku B to średnia wektorów bloku nad B i z lewej strony B. Nast˛epnie kodowanie arytmetyczne lub inne.
1.1.1 Miary podobieństwa i czas obliczeń
1. Bład
˛ bezwzgl˛edny, bład
˛ średniokwadratowy: dla kwadratowych bloków B i C o
rozmiarze b × b:
b X
b
1 X
|Bij − Cij |
b2 i=1 j=1
b X
b
1 X
(Bij − Cij )2
2
b i=1 j=1
Wada: dla każdego przesuni˛ecia konieczne liczenie bł˛edu „od nowa”.
2. miara wewn˛etrznej projekcji (integral projection):
¯
¯
¯ b
¯
¯
b ¯X
b
b ¯X
b
¯
X
X
X
¯ b
¯ X
¯
¯
¯
¯
B
−
C
+
¯
B
−
C
ij
ij ¯
ij
ij ¯
¯
¯
¯
¯ j=1 i=1
i=1 ¯j=1
j=1
i=1
Zaleta: wyznaczanie różnic dla wi˛ekszości przesuni˛eć możliwe w czasie rz˛edu b
(wykorzystujac
˛ wartości wyznaczone dla przesuni˛eć zbadanych wcześniej).
Zastosowanie: wybór bloków-kandydatów w oparciu o t˛e miar˛e i wyznaczenie
najlepiej pasujacego
˛
z zastosowaniem miary bardziej dokładnej.
3. Przeszukiwanie z rosnacym
˛
krokiem.
Badamy wszystkie wektory przesuni˛eć w najbliższym sasiedztwie
˛
i wektory z
ustalonym skokiem w dalszym sasiedztwie.
˛
2
Uzasadnienie: rozmazanie szybko przesuwajacych
˛
si˛e obiektów jest mniej zauważalne.
4. Metoda kolejnych uściślen.
Krok 1: badanie wektorów ruchu z ustalonym krokiem wi˛ekszym od 1, wybór
najlepszego.
Krok 2: badanie wektorów ruchu z krokiem 1, w sasedztwie
˛
wektora wybranego
w Kroku 1.
5. Metody oparte na przestrzennych zależnościach mi˛edzy blokami: oparte na założeniu, że przesuwajace
˛ si˛e obiekty sa˛ wi˛eksze od rozmiaru bloku.
Predykcja wektora ruchu w oparciu o wartości wektora ruchu już zakodowanych
bloków z bieżacej
˛ ramki, znajdujacych
˛
si˛e w bliskim sasiedztwie.
˛
Dla poprawienia predykcji, stosuje si˛e podział bloków na „szachownic˛e” i koduje kolejne jej
„kolory” wykorzystujac
˛ te, które zostały zakodowane wcześniej.
6. Metody oparte na czasowych zależnościach mi˛edzy blokami: wydajne w przypadku ruchu jednostajnego.
Predykcja wektora ruchu bloku B w bieżacej
˛ ramce w oparciu o wartość wektora
ruchu bloku na tej samej pozycji w ramce poprzedniej.
7. Dwuwymiarowe przeszukiwanie binarne.
Parametry: blok B w bieżacej
˛ ramce na pozycji (a, b), obszar poszukiwań ograniczony do bloków w odległości co najwyżej d w poziomie i d w pionie.
Krok 1. Wyznaczamy krok s = 2blog de−1 . Blok B porównywany jest z blokami
poprzedniej ramki na pozycjach (lewych górnych narożników): (a, b), (a, b + s),
(a, b − s), (a + s, b), (a − s, b).
Krok 2. Wybieramy blok o najwi˛ekszym podobieństwie, oznaczmy jego pozycj˛e
przez (x, y). Jeśli (x, y) = (a, b), to s := s/2. W przeciwnym razie (a, b) :=
(x, y).
Krok 3. Jeśli s = 1: wybieramy najbardziej podobny do B blok spośród dziewi˛eciu najbliższych w sasiedztwie
˛
(a, b). W przeciwnym razie powrót do Kroku 2.
UWAGA: pomijamy porównania z blokami znajdujacymi
˛
si˛e w dalszym sasiedztwie
˛
od
B niż sasiedztwo
˛
wyznaczone przez parametr d.
1.2 Reprezentacja sygnału wideo i obrazów kolorowych
Standardowe parametry:
3
• sekwencja zawiera 30 klatek (ramek) na sekund˛e; ramka to 525 wierszy
• każda ramka dzielona na dwa pola: pierwsze zawiera nieparzyste wiersze, drugie
wiersze parzyste;
• pojedyncze pole wysyłane co 1/60 sekundy (co daje wrażenie wi˛ekszej cz˛estotliwości).
Reprezentacja sygnału kolorowego:
• Podział na trzy składowe: RGB (red, green, blue).
• Dla zachowania zgodności z sygnałem „czarno-białym”: podział na składowe
Y Cb Cr (Y: luminacja, odpowiada obrazowi monochromatycznemu; Cb Cr : chrominacja, definiuja˛ składowe koloru)
• Składowe Y Cb Cr wyznaczane z RGB poprzez zastosowanie przekształcenia liniowego (podobnie odwrotnie):
Y = 0, 299R + 0, 587G + 0, 114B
Cb = B − Y
Cr = R − Y
• Spróbkowane analogowe wartości Y Cb Cr sa˛ normalizowane i kwantyzowane.
Po normalizacji uzyskujemy Ys ∈ [0, 1] oraz Crs , Cbs ∈ [−1/2, 1/2]. Wartości
wynikowe to liczby 8-bitowe oznaczane Y U V :
Y = 219Ys + 16
U = 224Cbs + 128
V = 224Crs + 128
Próbkowanie (rekomendacja 601):
• Każda składowa spośród YUV może być próbkowana z inna˛ cz˛estotliwościa.˛
Cz˛estotliwości to wielokrotności 3,725MHz, określamy je jako trzy liczby y : u :
v, odpowiadajace
˛ cz˛estościom y ∗ 3, 725, u ∗ 3, 725 i v ∗ 3, 725 MHz próbkowania
składowych Y, U oraz V.
• Najpopularniejszy schemat próbkowania to 4 : 3 : 2, który odpowiada (po wyeliminowaniu cz˛eści sygnału nie odpowiadajacej
˛ wizji) 720 próbkom na wiersz dla
luminacji i 360 próbkom na wiersz dla chrominacji (?).
4
1.3 Wideokonferencje, czyli oszcz˛edne kodowanie (H.261)
1. Ramki dzielimy na bloki rozmiaru 8 × 8.
2. Stosujemy kompensacj˛e ruchu.
3. Różnice mi˛edzy predykcja˛ a wartościami rzeczywistymi kodujemy za pomoca˛
DCT.
Kompensacja ruchu z zastosowaniem makrobloków:
• cztery bloki pikseli rozmiaru 8 × 8 sa˛ organizowane w jeden makroblok;
• na makroblok składaja˛ si˛e cztery bloki luminacji i po jednym z każdego bloków
chrominacji (zakładamy czterokrotnie wi˛eksza˛ cz˛estość próbkowania luminacji)
• dopasowanie (wektor ruchu) ustalamy tylko na podstawie luminacji, porównujemy bloki w odległości maksymalnie 15 pikseli w lewo/prawo, gór˛e/dół.
• wektor ruchu dla chrominacji powstaje przez podzielenie przez dwa wektora ruchu
dla luminacji.
• tryb intra: bez kompensacji (za małe podobieństwa); tryb inter: z kompensacja.˛
Dalsze usprawnienia i etapy:
• Dla wygładzenia kraw˛edzi w blokach używanych do predykcji, stosowane jest
filtrowanie (choć może być wyłaczone).
˛
Pozwala to uniknać
˛ dużych wartości
współczynników wysokocz˛estotliwościowych.
• Kroki kwantyzacji decyduja˛ o stopniu kompresji i jakości odtworzenia: dlatego
moga˛ być zmieniane w zależności od przepustowości łacza
˛ komunikacyjnego.
• Makrobloki łaczone
˛
sa˛ w grupy bloków (GOB): 3 wiersze po 11 makrobloków.
Kwantyzator ustalany jest dla całego GOB (i przesyłany w jego nagłówku), chyba
że przesłany zostanie nowy nagłówek przed końcem GOB.
Sterowanie pr˛edkościa˛ (utrzymywanie stałej pr˛edkości wyjściowej):
• dobór długości kroku kwantyzatora (p. makrobloki);
• pomijanie ramek.
5
1.4 MPEG-1
Ogólny schemat kodowania podobny do H.261: podział obrazu na bloki, kompensacja ruchu, DCT dla wartości odchyleń od predycji, kwantyzacja współczynników po
DCT (jak w JPEG; ale tablice kwantyzacji moga˛ być różne dla różnych ramek jak w
H.261).
Uwaga: MPEG-1 nie uwzgl˛ednia przeplotu.
Problem w H.261: każda ramka wyznaczana na podstawie poprzedniej, dane moga˛ być
odtwarzane tylko w sposób sekwencyjny.
Zapewnienie swobodnego (a nie tylko sekwencyjnego!) dost˛epu do różnych fragmentów danych:
• Ramki I: kodowane bez odwołań do innych ramek.
• Ramki P: kodowanie predykcyjne, predykcja w oparciu o poprzedzajac
˛ a˛ ramk˛e P
lub I (ta,˛ która bliżej).
• Ramki B: predykcja dwukierunkowa, w oparciu o najbliższe ramki typu I i P
(przed nia˛ i za nia).
˛
Typowa kolejność ramek (chronologiczna, dalej powtarza si˛e cykl 1-12):
I
1
B B
2 3
P B
4 5
B P
6 7
B B
8 9
P B B
10 11 12
I
13
Uwzgl˛edniajac
˛ zależności mi˛edzy ramkami, kolejność w strumieniu bitowym dla powyższej
sekwencji ramek b˛edzie nast˛epujaca:
˛
I
1
P
4
B B P
2 3 7
B B
5 6
P
10
B
8
B I B
9 13 11
B
12
Sterowanie pr˛edkościa˛ w MPEG:
• na poziomie sekwencji: usuwanie (cz˛eści) ramek typu B (nie maja˛ żadnego wpływu
na pozostałe).
• na poziomie ramek: zwi˛ekszanie kroku kwantyzacji, pomijanie składowych wysokocz˛estotliwościowych.
Wyniki: 25 ramek na sekunk˛e o wielkości 352 × 288 pikseli możliwe przy przepustowości 1,5 megabita na sekund˛e.
6
1.5 MPEG-2
Standard niezależny od aplikacji, modularny:
1. profile (algorytm):
(a) prosty: nie używa ramek B,
(b) główny: podobny do MPEG-1,
(c) podejście warstwowe, najpierw strumień danych o gorszej jakości, potem
strumienie poprawiajace:
˛ snr-skalowalny (ciagi
˛ poprawiajace
˛ uściślaja˛ wartości
współczynników po DCT), przestrzennie skalowalny (ciagi
˛ poprawiajace
˛
dodaja˛ wi˛ecej próbek), czasowo skalowalny (dodatkowe ramki), wysoki.
2. poziomy (ograniczenia): niski (352×240), główny, wysoki 1440, wysoki (1920×
1080).
Inne metody kompresji (w porównaniu z MPEG-1):
• uwzgl˛ednienie przeplotu: kompresja pól a nie ramek (P), w kodowaniu drugiego
pola ramki, wykorzystywane poprzednie (i pola z ramki poprzedniej).
• dodatkowe tryby: kompensacja ruchu 16 × 8 (wybór kompensacji spośród kompensacji dla górnej i dolnej połowy bloku); dualna podstawowa kompensacja
ruchu (dwie predykcje, uśrednienie).
MPEG-4, MPEG-7: podejście abstrakcyjne, interfejs do opisu danych multimedialnych.
Literatura:
1. D. Salomon, Data compression. The Complete Reference. 3rd Edition. Springer,
2004.
2. K. Sayood, Kompresja danych, Read Me, 2002.
7