pp jpeg

Transkrypt

pp jpeg
Kompresja sekwencji obrazów
- algorytm MPEG-2
Moving Pictures Experts Group (MPEG) - 1988
•
ISO - International Standard Organisation
•
CCITT - Comité
Comité Consultatif International
de Té
Téléphonie et Té
Télégraphie
•
CCIR - Comité
Comité Consultatif de la Radiodiffusion
Pierwszy raport z prac (MPEG(MPEG-1) - 1990
dr inż
inż. Jacek Jarnicki
1
Pierwsza demonstracja wynikó
wyników - 1991
Raport z opisem MPEGMPEG-2 - 1994
•
MPEGMPEG-1 - kodowanie sekwencji obrazó
obrazów
i dź
dźwię
więku dla potrzeb zapisu na dyskach
kompaktowych i wizyjnych
•
MPEGMPEG-2 - kodowanie sekwencji obrazó
obrazów
i dź
dźwię
więku gł
głównie dla potrzeb przekazu
telewizyjnego
dr inż
inż. Jacek Jarnicki
2
1
Potrzeba kompresji - proste oszacowanie:
sekwencja obrazó
obrazów (film czarnoczarno-biał
biały):
- rozdzielczość
rozdzielczość 640 x 480 punktó
punktów,
- 8 bitó
bitów na punkt ( 256 stopni szaroś
szarości ),
- 25 klatek (ramek) na sekundę
sekundę,
- dźwię
więk 44 kHz,
kHz, 16 bitó
bitów na pró
próbkę
bkę, stereo,
640 x 480 x 8 x 25 + 44 x 103 x 16 x 2 ≈ 60 Mb/s
pojemność
pojemność dysku kompaktowego:
640 MB = 5120 Mb → ∼ 85 s filmu
dr inż
inż. Jacek Jarnicki
3
Norma MPEG-2 - dokumenty
ISO/TEC DIS 1381813818-1 – SYSTEM opisuje synchronizację
synchronizację
i przełą
czanie sygnał
przełączanie
sygnałów dź
dźwię
więkowych i wizyjnych.
ISO/TEC DIS 1381813818-2 – VIDEO opisuje sposó
sposób kodowania
sygnał
sygnału video, udostę
udostępnia odś
odśwież
wieżanie wraz z przeplotem.
ISO/TEC DIS 1381813818-3 – AUDIO opisuje kodowanie
dźwię
więków, rozszerzenie dla kodowania wielu kanał
kanałów
(dź
ź
wię
ę
k
ó
w
surround,
,
dź
ź
wię
ę
k
ó
w
wieloję
ę
zycznych).
(d wi
surround d wi
wieloj
ISO/TEC DIS 1381813818-4 – Testy Poró
Porównawcze opisuje
czynnoś
czynności sł
służące
żące do okreś
określenia charakterystyki kodowania
i dekodowania oraz do testowania zgodnoś
zgodności z innymi
częś
ciami standardu.
częściami
dr inż
inż. Jacek Jarnicki
4
2
Norma MPEG-2 - dokumenty c.d.
ISO/TEC DIS 1381813818-5 – Symulacja Programowa jest
opisem technicznym programowego wykonania pierwszych
trzech częś
ci standardu.
części
ISO/TEC DIS 1381813818-6 – Rozszerzenie Systemu – Komendy
i Kontrola Cyfrowego Przetwarzania Medió
Mediów opisuje
protokó
protokół dla aplikacji klient – serwer.
ISO/TEC DIS 1381813818-9 – Specyfikacja Interfejsu do
Przetwarzania Aplikacji Wysokiej Jakoś
Jakości w Czasie
Rzeczywistym definiuje zależ
zależnoś
ności czasowe dla transmisji
MPEGMPEG-2 w czasie rzeczywistym.
+ Dodatki
dr inż
inż. Jacek Jarnicki
5
Ogó
Ogólny algorytm kompresji sekwencji obrazó
obrazów
1. Pró
Próbkowanie i kwantowanie kolejnych ramek
obrazu
2. Kodowanie ramek
ramki
Pró
Próbkowanie
i kwantowanie
ramki
Kodowanie
ramek
dr inż
inż. Jacek Jarnicki
strumień
strumień bitó
bitów
6
3
1. Pró
Próbkowanie i kwantowanie kolejnych ramek
Wynik pró
próbkowania i kwantowania ramki - trzy
tablice liczb opisują
opisujące obraz w kategoriach
modelu „telewizyjnego”
telewizyjnego” ( YIQ lub YUV ).
Stosuje się
się nastę
następują
pujące schematy pró
próbkowania:
4:4:4
4:2:2
4:2:0
4:1:1
próbki luminancji
próbki chrominancji
dr inż
inż. Jacek Jarnicki
7
Typowe rozmiary tablic dla ramki (PAL- 625 linii):
Y
720 x 576
U
720 x 576
V
720 x 576
4:4:4
8 bitów/punkt
8 bitów/punkt
8 bitów/punkt
Y
U
V
720 x 576
360 x 576
360 x 576
4:2:2
8 bitów/punkt
8 bitów/punkt
8 bitów/punkt
Y
U
V
720 x 576
360 x 288
360 x 288
4:2:0
8 bitów/punkt
8 bitów/punkt
8 bitów/punkt
Y
U
V
720 x 576
180 x 576
TV
180 x 576
4:1:1
8 bitów/punkt
luminancja
8 bitów/punkt
chrominancja
dr inż
inż. Jacek Jarnicki
8 bitów/punkt
chrominancja
8
4
2. Kodowanie ramek
• Określenie porządku kodowania
• Kodowanie kolejnych ramek według
określonego porządku
2.1. Okreś
Określenie porzą
porządku kodowania
Przykładowy porządek kodowania ramek:
... II
B
B
BB
B
B
PP
B
B
PP
B
B
B
B
II ...
• Ramka typu I (Intra)
• Ramka typu P (Predicted)
• Ramka typu B (Bidirectional)
dr inż
inż. Jacek Jarnicki
9
2.1.1. Kodowanie ramek typu I (Intra)
Ramki typu I koduje się
się używają
ywając algorytmu JPEG.
Jest to najdokł
najdokładniejszy sposó
sposób kodowania ramek
wykorzystywany w algorytmie MPEGMPEG-2.
2.1.2. Kodowanie ramek typu P (Predicted)
Kodowanie obrazu przy pomocy wektoró
wektorów ruchu
Zał
Założenia:
• ramki został
ci
zostały podzielone na mniejsze częś
części
(makrobloki), częś
ci te dalej bę
części
będą traktowane
niezależ
niezależnie,
• ramki „bliskie”
bliskie” są do siebie dość
dość podobne.
dr inż
inż. Jacek Jarnicki
10
5
Podstawowa zasada:
(x,y)
kodowany makroblok
mkod
m
kod
ramka odniesienia
(x, y)
(xo, yo)
[u, v]= [xo- x, yo- y]
wektor ruchu
mm0 o
makroblok odniesienia
Jeś
Jeśli mo jest „podobny”
podobny” do mkod , to w przybliż
przybliżeniu mkod
moż
można zapisać
zapisać jako
m kod (i , j ) = m o (i + u , j + v )
dr inż
inż. Jacek Jarnicki
11
Tak wię
więc, dla zakodowania makrobloku mkod
przy zał
założeniu, że zapisana jest ramka odniesienia,
wystarczy podać
podać jedynie wektor ruchu [u,
[u, v].
v].
Zastosowanie powyż
powyższej zasady w praktyce wymaga
jednak udzielenia odpowiedzi na szereg pytań
pytań.
• Jaki rozmiar powinien mieć
mieć makroblok ?
• Któ
Która ramka jest ramką
ramką odniesienia ?
Poprzednia ? Nastę
Następna ?
• Co to znaczy „podobny”
podobny” makroblok ?
• W jakim obszarze ramki odniesienia poszukiwać
poszukiwać
„podobnego”
podobnego” makrobloku ?
• Co zrobić
zrobić, gdy nie ma „podobnego”
podobnego” makrobloku ?
dr inż
inż. Jacek Jarnicki
12
6
Kodowanie ramek typu P (Predicted)
Predicted) c.d.
• Rozmiar makrobloku wynosi 16 X16 pikseli
(norma MPEGMPEG-2).
• Ramką
Ramką odniesienia jest najbliż
najbliższa poprzednia
ramka typu I lub P (norma MPEGMPEG-2).
• Co to znaczy „podobny”
podobny” makroblok i w jakim
obszarze go poszukiwać
poszukiwać, norma MPEGMPEG-2 nie
precyzuje. Metoda poszukiwania wektora ruchu
[u, v]
v] zależ
zależy w tym przypadku od implementacji.
• Jeż
Jeżeli metoda poszukiwania wektora ruchu
dopuszcza wynik negatywny, makroblok koduje
się
się używają
ywając algorytmu JPEG (norma MPEGMPEG-2).
dr inż
inż. Jacek Jarnicki
13
Wyznaczanie wektora ruchu (przykł
(przykład metody)
ramka kodowana
ramka odniesienia
(x,y)
(x-64, y-64)
kodowany makroblok
(x-64, y+63)
m kod (16 x 16)
(x,y)
mo (16 x 16)
(x+63, y-64)
(x+63, y+63)
obszar poszukiwania
• W obszarze poszukiwania bada się wszystkie
możliwe położenia makrobloku mo i wybiera to,
które minimalizuje kryterium d(u,v ).
dr inż
inż. Jacek Jarnicki
14
7
d (u , v ) =
1 15 15
∑ ∑ m kod ( x + i , y + j ) − m o ( x + i + u , y + j + v )
256 i = 0 j = 0
przy czym
− 64 ≤ u , v ≤ 63
Liczby u,v są skł
składowymi poszukiwanego wektora
ruchu.
Wektor ruchu [u,
[u, v]
v] zawsze bę
będzie znaleziony.
Bezpoś
Bezpośrednie rozwią
rozwiązanie zadania poszukiwania
[u,v]
u,v] dla jednego makrobloku wymaga obliczenia
wartoś
wartości funkcji d(u,v ), tyle razy ile pikseli zawiera
obszar poszukiwania, czyli 16384 razy.
Liczą
Licząc wartość
wartość d(u,v),
d(u,v), należ
należy ró
również
wnież wykonać
wykonać
kilkaset operacji arytmetycznych.
dr inż
inż. Jacek Jarnicki
15
Kodowanie ramek typu P - algorytm
1o Podzielić
Podzielić kodowaną
kodowaną ramkę
ramkę na makrobloki.
2o Wykorzystują
Wykorzystując ramkę
ramkę odniesienia wyznaczyć
wyznaczyć
wektory ruchu dla makroblokó
makrobloków.
3o Dla zakodowanej przy pomocy wektoró
wektorów ruchu
ramki wyznaczyć
wyznaczyć i zakodować
zakodować błąd
łąd predykcji.
• Na podstawie ramki odniesienia i wektoró
wektorów
ruchu, zrekonstruować
zrekonstruować kodowaną
kodowaną ramkę
ramkę
• Obliczyć
Obliczyć różnicę
nicę ramki źródłowej i ramki
zrekonstruowanej - wynikiem jest tak zwany
obraz błę
du predykcji.
błędu
• Zakodować
du predykcji przy
Zakodować obraz błę
błędu
pomocy algorytmu JPEG (inna tablica
kwantyzacji). dr inż
16
inż. Jacek Jarnicki
8
2.1.3. Kodowanie ramek typu B (Bidirectional)
Ramkę
Ramkę typu B koduje się
się wykorzystują
wykorzystując najbliż
najbliższe,
poprzednią
poprzednią i nastę
następną
pną ramkę
ramkę typu I lub P.
Przykł
Przykładowo:
T1
... II
BB
T2
BB
BB
PP
T2
T1
T2
T1
T1
BB
PP ...
T2
czas
Dla ró
mogą być
być
różnych ramek typu B czasy T1 i T2 mogą
różne.
dr inż
inż. Jacek Jarnicki
17
Wyznacza się
[u2, v2].
się dwa wektory ruchu [u
[u1, v1] i [u
ramka odniesienia 2
T2
(x2, y2)
(x, y)
czas
m2
ramka kodowana
T1
(x,y)
kodowany makroblok
m
mkod
kod
ramka odniesienia 1
[u2, v2]= [x2 - x, y2 - y]
makroblok odniesienia
(x, y)
(x1, y1)
[u1, v1]= [x1 - x, y1 - y]
m11
makroblok odniesienia
m kod (i , j ) =
T2
T1
m 1 (i + u1 , j + v 1 ) +
m 2 (i + u 2 , j + v 2 )
T1 + T2
T1 + T2
dr inż
inż. Jacek Jarnicki
18
9
Kodowanie ramek typu B - algorytm
1o Podzielić
Podzielić kodowane ramki na makrobloki.
2o Wykorzystują
Wykorzystując ramki odniesienia wyznaczyć
wyznaczyć
pary wektoró
wektorów ruchu dla makroblokó
makrobloków.
3o Dla zakodowanej przy pomocy wektoró
wektorów ruchu
ramki wyznaczyć
wyznaczyć i zakodować
zakodować błąd
łąd predykcji.
• Na podstawie ramek odniesienia i par
wektoró
wektorów ruchu, zrekonstruować
zrekonstruować kodowaną
kodowaną
ramkę
ramkę
• Obliczyć
Obliczyć różnicę
nicę ramki źródłowej i ramki
zrekonstruowanej - wynikiem jest obraz błę
du
błędu
predykcji.
• Zakodować
du predykcji przy pomocy
Zakodować obraz błę
błędu
algorytmu JPEG.
dr inż
inż. Jacek Jarnicki
19
3. Kolejność
Kolejność kodowania i dekodowania ramek
Kodowanie:
... II
1
BB
BB
PP
BB
BB
PP ...
2
3
4
5
6
7
Zapis, transmisja, dekodowanie:
... II
1
PP
BB
BB
PP
BB
BB ...
4
2
3
7
5
6
dr inż
inż. Jacek Jarnicki
20
10
4. Ograniczenia systemu MPEGMPEG-2
PPoozzio
iom
m
PPrróóbbkki/i/
wwie
ierrsszz
W
Wie
ierrsszzee
/r/raam
mkkęę
RRaam
mkki/i/
sseekkuunnddęę
PPrróóbbkki i
lu
lum
min
inaannccjij/is
/s
MMbb/s
/s
W
Wyyssookki i
11992200
11115522
6600
6622.6
.66688.8
.80000
8800
W
Wyyssookki i
11444400
GGłó
łówwnnyy
11444400
11115522
6600
4477.0
.00011.6
.60000
6600
772200
557766
3300
1100.3
.36688.0
.00000
1155
NNis
iskki i
335522
228888
3300
33.0
.04411.2
.28800
44
dr inż
inż. Jacek Jarnicki
21
11

Podobne dokumenty