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