Kodowanie i kompresja Streszczenie Studia Wieczorowe Wykład 10, 2007



Podobne dokumenty
Kompresja sekwencji obrazów - algorytm MPEG-2

Kompresja sekwencji obrazów

Kompresja video (MPEG)

Założenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

Kwantyzacja wektorowa. Kodowanie różnicowe.

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Przedmowa 11 Ważniejsze oznaczenia 14 Spis skrótów i akronimów 15 Wstęp 21 W.1. Obraz naturalny i cyfrowe przetwarzanie obrazów 21 W.2.

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

Kodowanie transformujace. Kompresja danych. Tomasz Jurdziński. Wykład 11: Transformaty i JPEG

Transformaty. Kodowanie transformujace

Zastosowanie kompresji w kryptografii Piotr Piotrowski

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Wykład II. Reprezentacja danych w technice cyfrowej. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

2 Kryptografia: algorytmy symetryczne

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

Kodowanie predykcyjne

Wybrane metody kompresji obrazów

Joint Photographic Experts Group

Cyfrowe przetwarzanie i kompresja danych. dr inż.. Wojciech Zając

Kompresja danych DKDA (7)

Transformata Fouriera

Kompresja obrazów w statycznych - algorytm JPEG

Kodowanie źródeł sygnały video. Sygnał video definicja i podstawowe parametry

Przetwarzanie i transmisja danych multimedialnych. Wykład 6 Metody predykcyjne. Przemysław Sękalski.

3. Macierze i Układy Równań Liniowych

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

Python: JPEG. Zadanie. 1. Wczytanie obrazka

TECHNIKI MULTIMEDIALNE

Akwizycja obrazów. Zagadnienia wstępne

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A

Nowoczesne metody emisji ucyfrowionego sygnału telewizyjnego

Podstawowe funkcje przetwornika C/A

Kodowanie podpasmowe. Plan 1. Zasada 2. Filtry cyfrowe 3. Podstawowy algorytm 4. Zastosowania

Kompresja Danych. Streszczenie Studia Dzienne Wykład 13, f(t) = c n e inω0t, T f(t)e inω 0t dt.

Przedstawiamy Państwu tekst będący

Teoria przetwarzania A/C i C/A.

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Akwizycja i przetwarzanie sygnałów cyfrowych

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 2 AiR III

Odtwarzanie i kompresja wideo

Filtracja obrazu operacje kontekstowe

PRACA DYPLOMOWA STUDIA PIERWSZEGO STOPNIA. Łukasz Kutyła Numer albumu: 5199

Przetwarzanie obrazów rastrowych macierzą konwolucji

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

dr inż. Piotr Odya dr inż. Piotr Suchomski

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 12,

dr inż. Piotr Odya Wprowadzenie

Złożoność obliczeniowa zadania, zestaw 2

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Fundamentals of Data Compression

Kwantyzacja wektorowa. Plan 1. Zasada działania 2. Projektowanie. Algorytm LBG 3. Kwantyzatory strukturalne 4. Modyfikacje

Audio i video. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Kompresja dźwięku w standardzie MPEG-1

Inżynieria obrazów cyfrowych. Ćwiczenie 5. Kompresja JPEG

dr inż. Jarosław Forenc

Klasyfikacja metod kompresji

5. Rozwiązywanie układów równań liniowych

Przetwarzanie i transmisja danych multimedialnych. Wykład 10 Kompresja obrazów ruchomych MPEG. Przemysław Sękalski.

Podstawy Informatyki dla Nauczyciela

Wstęp do techniki wideo

Ekonometria. Modele regresji wielorakiej - dobór zmiennych, szacowanie. Paweł Cibis pawel@cibis.pl. 1 kwietnia 2007

27 stycznia 2009

Hierarchiczna analiza skupień

FFT i dyskretny splot. Aplikacje w DSP

Klasyfikacja metod kompresji

Parametryzacja obrazu na potrzeby algorytmów decyzyjnych

Systemy plezjochroniczne (PDH) synchroniczne (SDH), Transmisja w sieci elektroenergetycznej (PLC Power Line Communication)

Micha Strzelecki Metody przetwarzania i analizy obrazów biomedycznych (2)

Eksperymentalna analiza częstotliwości wyboru trybów zaawansowanego kodowania wizyjnego.

Filtracja obrazu operacje kontekstowe

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

NIEOPTYMALNA TECHNIKA DEKORELACJI W CYFROWYM PRZETWARZANIU OBRAZU

Optymalizacja ciągła

Aproksymacja funkcji a regresja symboliczna

Konfiguracja kodeka 3ivx 4.5.1

Przetwarzanie i transmisja danych multimedialnych. Wykład 7 Transformaty i kodowanie. Przemysław Sękalski.

Kodowanie informacji

Metody numeryczne Wykład 4

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Kompresja video. Plan 1. Korelacje czasowe 2. Standardy wideokonferencji 3. Standardy MPEG 4. Video w sieci ATM

Luty 2001 Algorytmy (7) 2000/2001

Zygmunt Wróbel i Robert Koprowski. Praktyka przetwarzania obrazów w programie Matlab

Sieci neuronowe - projekt

Metody numeryczne I Równania nieliniowe

STEROWANIE MASZYN I URZĄDZEŃ I. Laboratorium. 8. Układy ciągłe. Regulator PID

Cyfrowe przetwarzanie i kompresja danych

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

Przetwarzanie obrazu

Analiza obrazu. wykład 1. Marek Jan Kasprowicz Uniwersytet Rolniczy Marek Jan Kasprowicz Analiza obrazu komputerowego 2009 r.

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe

Kodowanie Huffmana. Platforma programistyczna.net; materiały do laboratorium 2014/15 Marcin Wilczewski

LABORATORIUM. Pomiar poziomu mocy akustycznej w komorze pogłosowej. Instrukcja do zajęć laboratoryjnych

Symulacja sygnału czujnika z wyjściem częstotliwościowym w stanach dynamicznych

Sygnał a informacja. Nośnikiem informacji mogą być: liczby, słowa, dźwięki, obrazy, zapachy, prąd itp. czyli różnorakie sygnały.

a) 7 b) 19 c) 21 d) 34

WYKŁAD 12. Analiza obrazu Wyznaczanie parametrów ruchu obiektów

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 3 AiR III

Transkrypt:

1 Kompresja wideo Kodowanie i kompresja Streszczenie Studia Wieczorowe Wykład 10, 2007 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, irytujące w sekwencji; rozmyte krawędzie zauważalne statycznie, lecz nieistotne przy dużej dynamice sekwencji. Specyfika zastosowań: wideokonferencje: symetria między kodowaniem i dekodowaniem. dane wideo: kodowanie może mieć większe wymagania obliczeniowe. 1.1 Kompensacja ruchu (oparta na blokowaniu) Stosujemy predykcję zawartości bieżącej ramki w oparciu o ramkę ją poprzedzającą. Dokładniej: Dzielimy ramkę bieżącą na bloki rozmiaru M M. Dla każdego bloku bieżącej ramki badamy jego podobieństwo (wg ustalonej miary) do obszarów rozmiaru M M w ramce poprzedniej, znajdujących się 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żący poprzez wektor ruchu (równy względnemu położeniu względem kodowanego bloku) i wartości różnic pomiędzy blokiem bieżącym 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ę o tej formie kodowania). Inne warianty i szczegóły: 1

kodując bieżącą ramkę, najlepiej porównywać jej bloki do bloków poprzedniej, ale w postaci w jakiej będzie ona po odkodowaniu (uwzględniając, że po stronie dekodera tylko ta postać będzie 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ędzy blokami, przyjmujemy że są identyczne; jeśli ramka następna jest znana (będzie kodowana w inny sposób i przesłana wcześniej), stosuje się kompensację z dwustronną predykcją (bidirectional) próbujemy kompensacji w odniesieniu do poprzedniej i następnej ramki. Kompresja wektorów ruchu: Najwydajniejsza ze stosowanych metod (np. w MPEG) koduje ciąg wektorów ruchu kolejnych bloków metodą predykcyjną. Wartość predykcji wektora dla danego bloku B to średnia wektorów bloku nad B i z lewej strony B. Następnie kodowanie arytmetyczne lub inne. 1.1.1 Miary podobieństwa i czas obliczeń 1. Błąd bezwzględny, błąd średniokwadratowy: dla kwadratowych bloków B i C o rozmiarze b b: 1 b b B b 2 ij C ij 1 b 2 i=1 j=1 b b (B ij C ij ) 2 i=1 j=1 Wada: dla każdego przesunięcia konieczne liczenie błędu od nowa. 2. miara wewnętrznej projekcji (integral projection): b b b b B ij C ij + b B ij i=1 j=1 j=1 j=1 i=1 b C ij i=1 Zaleta: wyznaczanie różnic dla większości przesunięć możliwe w czasie rzędu b (wykorzystując wartości wyznaczone dla przesunięć zbadanych wcześniej). Zastosowanie: wybór bloków-kandydatów w oparciu o tę miarę i wyznaczenie najlepiej pasującego z zastosowaniem miary bardziej dokładnej. 3. Przeszukiwanie z rosnącym krokiem. Badamy wszystkie wektory przesunięć w najbliższym sąsiedztwie i wektory z ustalonym skokiem w dalszym sąsiedztwie. 2

Uzasadnienie: rozmazanie szybko przesuwających się obiektów jest mniej zauważalne. 4. Metoda kolejnych uściślen. Krok 1: badanie wektorów ruchu z ustalonym krokiem większym od 1, wybór najlepszego. Krok 2: badanie wektorów ruchu z krokiem 1, w sąsedztwie wektora wybranego w Kroku 1. 5. Metody oparte na przestrzennych zależnościach między blokami: oparte na założeniu, że przesuwające się obiekty są większe od rozmiaru bloku. Predykcja wektora ruchu w oparciu o wartości wektora ruchu już zakodowanych bloków z bieżącej ramki, znajdujących się w bliskim sąsiedztwie. Dla poprawienia predykcji, stosuje się podział bloków na szachownicę i koduje kolejne jej kolory wykorzystując te, które zostały zakodowane wcześniej. 6. Metody oparte na czasowych zależnościach między blokami: wydajne w przypadku ruchu jednostajnego. Predykcja wektora ruchu bloku B w bieżącej ramce w oparciu o wartość wektora ruchu bloku na tej samej pozycji w ramce poprzedniej. 7. Dwuwymiarowe przeszukiwanie binarne. Parametry: blok B w bieżącej 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 = 2 log d 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ększym podobieństwie, oznaczmy jego pozycję 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ęciu najbliższych w sąsiedztwie (a, b). W przeciwnym razie powrót do Kroku 2. UWAGA: pomijamy porównania z blokami znajdującymi się w dalszym sąsiedztwie od B niż sąsiedztwo wyznaczone przez parametr d. 1.2 Reprezentacja sygnału wideo i obrazów kolorowych Standardowe parametry: 3

sekwencja zawiera 30 klatek (ramek) na sekundę; 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ększej częstotliwoś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 C b C r (Y: luminacja, odpowiada obrazowi monochromatycznemu; C b C r : chrominacja, definiują składowe koloru) Składowe Y C b C r wyznaczane z RGB poprzez zastosowanie przekształcenia liniowego (podobnie odwrotnie): Y = 0, 299R + 0, 587G + 0, 114B C b = B Y C r = R Y Spróbkowane analogowe wartości Y C b C r są normalizowane i kwantyzowane. Po normalizacji uzyskujemy Y s [0, 1] oraz C rs, C bs [ 1/2, 1/2]. Wartości wynikowe to liczby 8-bitowe oznaczane Y UV : Próbkowanie (rekomendacja 601): Y = 219Y s + 16 U = 224C bs + 128 V = 224C rs + 128 Każda składowa spośród YUV może być próbkowana z inną częstotliwością. Częstotliwości to wielokrotności 3,725MHz, określamy je jako trzy liczby y : u : v, odpowiadające częstoś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ęści sygnału nie odpowiadającej wizji) 720 próbkom na wiersz dla luminacji i 360 próbkom na wiersz dla chrominacji (?). 4

1.3 Wideokonferencje, czyli oszczędne kodowanie (H.261) 1. Ramki dzielimy na bloki rozmiaru 8 8. 2. Stosujemy kompensację ruchu. 3. Różnice między predykcją a wartościami rzeczywistymi kodujemy za pomocą DCT. Kompensacja ruchu z zastosowaniem makrobloków: cztery bloki pikseli rozmiaru 8 8 są organizowane w jeden makroblok; na makroblok składają się cztery bloki luminacji i po jednym z każdego bloków chrominacji (zakładamy czterokrotnie większą częstość 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ę/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 kompensacją. Dalsze usprawnienia i etapy: Dla wygładzenia krawędzi w blokach używanych do predykcji, stosowane jest filtrowanie (choć może być wyłączone). Pozwala to uniknąć dużych wartości współczynników wysokoczęstotliwościowych. Kroki kwantyzacji decydują o stopniu kompresji i jakości odtworzenia: dlatego mogą być zmieniane w zależności od przepustowości łącza komunikacyjnego. Makrobloki łączone są 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ędkością (utrzymywanie stałej prędkoś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 mogą być różne dla różnych ramek jak w H.261). Uwaga: MPEG-1 nie uwzględnia przeplotu. Problem w H.261: każda ramka wyznaczana na podstawie poprzedniej, dane mogą być odtwarzane tylko w sposób sekwencyjny. Zapewnienie swobodnego (a nie tylko sekwencyjnego!) dostępu do różnych fragmentów danych: Ramki I: kodowane bez odwołań do innych ramek. Ramki P: kodowanie predykcyjne, predykcja w oparciu o poprzedzającą ramkę P lub I (tą, która bliżej). Ramki B: predykcja dwukierunkowa, w oparciu o najbliższe ramki typu I i P (przed nią i za nią). Typowa kolejność ramek (chronologiczna, dalej powtarza się cykl 1-12): I B B P B B P B B P B B I 1 2 3 4 5 6 7 8 9 10 11 12 13 Uwzględniając zależności między ramkami, kolejność w strumieniu bitowym dla powyższej sekwencji ramek będzie następująca: I P B B P B B P B B I B B 1 4 2 3 7 5 6 10 8 9 13 11 12 Sterowanie prędkością w MPEG: na poziomie sekwencji: usuwanie (części) ramek typu B (nie mają żadnego wpływu na pozostałe). na poziomie ramek: zwiększanie kroku kwantyzacji, pomijanie składowych wysokoczęstotliwościowych. Wyniki: 25 ramek na sekunkę o wielkości 352 288 pikseli możliwe przy przepustowości 1,5 megabita na sekundę. 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 poprawiające: snr-skalowalny (ciągi poprawiające uściślają wartości współczynników po DCT), przestrzennie skalowalny (ciągi poprawiające dodają więcej 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ędnienie 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