• Nie Znaleziono Wyników

Metody kompresji obrazu

N/A
N/A
Protected

Academic year: 2021

Share "Metody kompresji obrazu"

Copied!
12
0
0

Pełen tekst

(1)

1

K

ATEDRA

S

YSTEMÓW

M

ULTIMEDIALNYCH

L

ABORATORIUM

TRANSMISJA I REJESTRACJA SYGNAŁÓW

Ćwiczenie nr 5:

M

ETODY KOMPRESJI OBRAZU WIZYJNEGO

Opracowanie:

mgr inż. Bartosz Kunka dr inż. Piotr Odya

1. Wprowadzenie

Zagadnienie kompresji obrazu wizyjnego jest niezwykle popularne we współczesnym świecie. Znaczna częśd informacji jest przekazywana za pomocą materiału wizyjnego. Upowszechnienie komputerów oraz rozwój Internetu pozwalają na przesyłanie danych multimedialnych w czasie rzeczywistym oraz w coraz szerszym paśmie. Rewolucja nastąpiła także w sposobie oglądania filmów. Technika cyfrowa wyparła z rynku analogowe magnetowidy VHS, zastępując je odtwarzaczami DVD, gwarantującymi znacznie lepszą jakośd obrazu, oraz komputerami, które umożliwiają oglądanie filmów praktycznie w dowolnym formacie.

Dostępnośd materiałów wizyjnych na tak szeroką skalę jest możliwa dzięki stosowaniu kompresji wideo. Kompresja ogranicza objętośd danych wizyjnych, wpływając jednocześnie na ich jakośd. Jakośd obrazu wizyjnego można oceniad subiektywnie, a także obiektywnie, dokonując pomiaru odpowiednich parametrów obrazu za pomocą specjalistycznego oprogramowania.

Celem tego dwiczenia jest zapoznanie studenta z algorytmami kompresji wideo, kodekami oraz z parametrami kodowania wpływającymi na jakośd skomprymowanego obrazu wizyjnego.

2. Obraz wizyjny

Zanim zostaną zaprezentowane metody kompresji wideo, należy w pierwszej kolejności wyjaśnid strukturę obrazu wizyjnego. Obraz wizyjny to sekwencja nieruchomych obrazów wyświetlanych w jednostce czasu. Te nieruchome obrazy nazywane są klatkami (ang. frames). W ciągu jednej sekundy wyświetlanych jest 25 klatek (ang. frames per second – fps)1 – schematyczną strukturę obrazu wizyjnego przedstawiono na rys. 1. Widz percypuje ciągły obraz ruchomy, a nie pojedyncze klatki, dzięki bezwładności wzroku, który nie jest w stanie odróżnid tak szybko zmieniających się obrazów.

1

25 – liczba klatek na sekundę stosowana w Polsce i w innych krajach, używających telewizyjnego standardu PAL; standard NTSC (stosowany m.in. w Stanach Zjednoczonych i Japonii) oparty jest na 30 klatkach na sek.; w kinematografii stosuje się 24 klatki na sekundę.

(2)

2 Rys. 1. Struktura obrazu wizyjnego w standardzie PAL;

klatki – pojedyncze nieruchome obrazy

3. Kompresja obrazu wizyjnego – podstawy teoretyczne

W pierwszej kolejności należy zastanowid się dlaczego warto stosowad kompresję obrazu ruchomego. Proste obliczenie jasno wskazuje, że nieskompresowany obraz wizyjny zawiera ogromną ilośd danych:

standard PAL

rozdzielczośd luminancji (Y) 720x576 rozdzielczośd chrominancji (CB, CR) 360x576

liczba klatek na sekundę 25

głębia koloru [bit] 8

720x576 · 25 · 8 + 2·(360x576 · 25 · 8) =

166 Mbit/s

Tak ogromna ilośd danych w znaczący sposób utrudniłaby oglądanie i przetwarzanie obrazów wizyjnych na komputerze, nie wspominając o ich przesyłaniu przez Internet. Dlatego pojawiła się potrzeba stosowania kompresji obrazu.

Kompresja to proces odwracalny. W pierwszej kolejności dokonuje się kodowania

(ang. encoding) obrazu wizyjnego do postaci o mniejszej ilości danych. Proces odwrotny to

dekodowanie (ang. decoding), pozwalające odtworzyd wejściowy obraz wizyjny przy użyciu

mniejszej ilości informacji. Zatem efektywne zmniejszanie rozmiaru danych reprezentujących obraz wizyjny jest możliwe dzięki kodekom (ang. codecs).

W ogólnym przypadku zadaniem kodeka jest odnalezienie pikseli, których wartości różnią się między kolejnymi klatkami. Może byd to wykonywane poprzez podział obrazu na grupy pikseli, zwane makroblokami (ang. macroblocks) oraz reprezentowanie ich za pomocą liczb, dzięki którym możliwe jest odtworzenie elementów obrazu. Na takiej zasadzie działają kodeki wykorzystujące dyskretną transformatę kosinusową, np. MPEG. Rys. 2 przedstawia przykład obrazu złożonego z siatki makrobloków. Wewnątrz bloków kodek przechowuje informacje o poprzednich klatkach, dzięki czemu zrekonstruowanie całej klatki polega na zapamiętaniu różnic pomiędzy tymi blokami, a nie całymi obrazami. Działa to bardzo efektywnie w przypadku obrazu wideo, zawierającego niewiele ujęd dynamicznych. Przykładami takich nagrao są wywiady do kamery (nieruchome tło, nieznaczne ruchy głowy i ust). Mimo złożoności całego procesu jest on stabilny i pozwala na uzyskanie bardzo dobrych

(3)

3 Rys. 2. Podział obrazu na makrobloki

rezultatów. Inna sytuacja występuje w przypadku ujęd zawierających dużo ruchu – np. ujęcia śledzenia jakiegoś poruszającego się obiektu/osoby – tu praktycznie każdy piksel ulega zmianie pomiędzy dwoma klatkami. Stąd, ilośd danych – w przypadku takich ujęd – będzie stosunkowo większa.

Podstawowe pojęcia

Dla usystematyzowania pojęd, które bezpośrednio wiążą się z kompresją wideo, zamieszczono poniższy schemat, ukazujący relacje zachodzące pomiędzy kodekiem, kontenerem danych i algorytmem kompresji. Schemat nie zawiera wszystkich możliwych nazw kodeków, kontenerów i algorytmów kompresji – rys. 3 przedstawia nazwy najczęściej spotykane.

Rys. 3. Relacja pomiędzy kodekiem, kontenerem danych i algorytmem kompresji

4. Metody kompresji obrazu wizyjnego

Należy zwrócid uwagę na fakt, że w cyfrowym obrazie wizyjnym kolor piksela/pikseli zdefiniowany jest w standardzie YUV, a nie w RGB. Dokonanie konwersji koloru znacząco wpływa na zmniejszenie ilości danych. W standardzie YUV wyróżnia się trzy składowe: Y (luminancja) oraz U i V, będące składowymi chrominancji. W związku z tym, że oko ludzkie jest mniej wrażliwe na zmiany sygnału chrominancji niż luminancji, sygnały chrominancji poddawane są silniejszej kompresji niż luminancja. Składowa Y jest zapisywana dla każdego piksela osobno. Składowe chrominancji U i V opisują natomiast grupy pikseli o wielkości 2x2 piksele. Oznacza to, że powstaje grupa złożona z 4 pikseli, które mają taki sam kolor, ale mogą różnid się luminancją.

(4)

4

Kompresja obrazu jest procesem służącym do zmiany wielkości danych przechowujących dane o obrazie lub sekwencji obrazów. Podstawowym parametrem wskazującym na jakośd kompresji jest stopieo kompresji, wyrażony ilorazem:

|

|

|

|

in out

S

S

CR

CR – compression rate (stopieo kompresji), Sout – wielkośd danych po kompresji,

Sin – wielkośd danych przed kompresją.

Kompresję stosuje się głównie w celu uzyskania lepszych prędkości przesyłania danych. Należy jednak podkreślid, że zysk podczas transmisji jest okupiony koniecznością poświęcenia czasu na zdekodowanie danych (zwykle dzieję się to „w locie” tj. podczas odtwarzania). Jakośd kompresji zależy silnie od rodzaju danych.

U

WAGA

.

Stratna kompresja obrazu wizyjnego zawsze ogranicza ilośd danych

potrzebnych do odtworzenia zakodowanego obrazu, wpływając destrukcyjnie na jego jakośd. Różne algorytmy kompresji kodują obraz wizyjny z różną efektywnością. Kompresję obrazu wizyjnego można podzielid na dwie główne grupy: kompresję

wewnątrzklatkową (ang. intraframe compression) i kompresję międzyklatkową (ang.

interframe compression).

Kompresja wewnątrzklatkowa polega na niezależnym kompresowaniu każdej klatki – kompresja obrazów statycznych. Edycja materiału wizyjnego skomprymowanego w tym formacie jest podobna do edycji materiału nieskomprymowanego, podczas której system przetwarzania danych nie musi wykorzystywad innych klatek, aby zdekodowad informacje niezbędne do wygenerowania potrzebnego obrazu. Przykładem formatu opartego na kompresji wewnątrzklatkowej jest format DV.

Kompresja międzyklatkowa wykorzystuje fakt, iż kolejne klatki w sekwencji obrazu wizyjnego niewiele się od siebie różnią. Możliwa jest zatem redukcja nadmiaru informacji czasowej między kolejnymi klatkami. Redukcja informacji czasowej polega na wyszukiwaniu różnic między kolejnymi klatkami i odpowiednim ich kodowaniu.

5. Wybrane standardy kompresji obrazu wizyjnego

o

H.264

 jeden z najnowszych standardów kompresji obrazu wizyjnego,

 proces kodowania składa się z następujących operacji:

 predykcja: proces przewidywania treści kolejnych obrazów,

 obliczanie transformaty kosinusowej (DCT): proces przejścia z dziedziny czasu do dziedziny częstotliwości,

 kodowanie danych wyjściowych: proces przygotowania danych do transmisji lub zapisu.

(5)

5 o

MPEG

Standard MPEG jest przykładem kompresji międzyklatkowej. Struktura obrazu wizyjnego w tym standardzie opiera się o trzy typy klatek: I (intra), P (predicted) i B (bidirectional):

klatka I: klatka kluczowa; kompletna klatka poddana wyłącznie kompresji

przestrzennej (np. DCT – jak JPEG);

klatka P: klatka różnicowa, oparta na poprzedniej klatce I oraz zestawie

współczynników predykcji ruchu;

klatka B: klatka różnicowa, oparta na poprzedniej i następnej klatce I oraz zestawie

współczynników predykcji ruchu.

a) b)

Rys. 5. Organizacja klatek w standardzie MPEG: a) struktura obrazu wizyjnego; b) wpływ uszkodzonej klatki na inne.

Obecnie najczęściej spotykanymi implementacjami standardu MPEG są: MPEG-2 i MPEG-4.

6. Parametry kompresji obrazu wizyjnego

W niniejszym rozdziale opisano najważniejsze parametry kompresji obrazu wizyjnego. Dobór parametrów kompresji jest często dokonywany w taki sposób, aby dopasowad parametry zakodowanego obrazu do wymogów technicznych (przepustowości łącza, objętości nośnika, itp.).

Jakośd (ang. Quality)

Niektóre kodeki mają możliwośd zmiany wartości tylko jednego parametru, który nazwano po prostu jakością. Jakośd obrazu wizyjnego jest bezpośrednio związana z rozmiarem pliku zakodowanego filmu: im większa jakośd, tym większy rozmiar. Przykładem kodeka, w którym można zmienid wartośd tylko tego jednego parametru jest kodek Cinepak firmy Radius.

Przepływnośd bitowa (ang. Bitrate)

Współczynnik określający, ile bitów danych zostało użytych do zapisania obrazu w ciągu jednej sekundy, np. 1024 kb/s (lub z ang. kbps – kb per second)

(6)

6

CBR – Constant Bitrate – stała przepływnośd

Polega na zapisie określonego czasu nagrania zawsze przy pomocy tej samej liczby bitów (przypadających na jednostkę czasu), niezależnie od stopnia skomplikowania zapisywanych danych. To rozwiązanie jest proste i między innymi dlatego znajduje zastosowanie w strumieniowaniu (streaming) danych multimedialnych, kiedy istotna jest maksymalna, a nie średnia przepustowośd.

VBR – Variable Bitrate – zmienna przepływnośd

Oznacza zróżnicowanie ilości danych wyjściowych przypadających na poszczególne segmenty czasowe w zależności od złożoności danych wejściowych w tych segmentach. Zmienna przepływnośd ma utrzymad stałą jakośd sygnału wyjściowego, a nie stałą ilośd danych przypadających na daną jednostkę czasu. Technika VBR jest preferowana w przypadku przechowywania danych (w odróżnieniu od streamingu) ze względu na bardziej efektywne wykorzystanie objętości danych - więcej miejsca przeznaczane jest na bardziej skomplikowane segmenty, mniej zaś na segmenty zawierające dane o mniejszej złożoności. Zmienna przepływnośd utrudnia kompresję i dekompresję, lecz daje lepszą jakośd przy tej samej wielkości pliku.

Kodowanie jedno i dwu-przebiegowe (ang. One-, Two-pass) One-pass

Kodowanie jednoprzebiegowe oznacza, że plik kodowany jest raz. Jest to najprostsza możliwośd - można ją wybrad, gdy nie zależy nam na optymalizacji pliku wynikowego.

Two-passes

Kodowanie dwuprzebiegowe polega na tym, że plik multimedialny jest poddawany kompresji w dwóch etapach. Najpierw przeprowadzana jest analiza filmu i obliczanie parametrów każdej klatki. Ustalone w ten sposób dane (m.in. poziom ruchu, stopieo jasności czy złożonośd obrazu) są zapisywane w oddzielnym pliku dziennika. W drugim etapie program wykorzystuje zawartośd tego pliku, aby skompresowad go skuteczniej i uzyskad lepszą jakośd obrazu. Kodowanie dwuprzebiegowe znacznie wydłuża czas kodowania obrazu wizyjnego (o ok. 80%).

Typ kwantyzacji (ang. Quantization type)

Wybór odpowiedniego typu kwantyzacji ma spory wpływ na jakośd komprymowanego obrazu:

– H.263 – wygładzanie obrazu, stosuje się do kompresji z niskim bitrate. – MPEG – zachowuje ostrośd obrazu przy wysokim bitrate.

– MPEG-Custom – to kwantyzacja typu MPEG, lecz z możliwością użycia dowolnej

matrycy kwantyzacji (innej, niż domyślna). Istnieją matryce dla poszczególnych rodzajów źródeł oraz dla różnych przepływności.

(7)

7

FourCC

Znacznik FourCC (ang. Four Character Code), który zostaje umieszczony w pliku zawierającym skomprymowany obraz wizyjny. Służy on do identyfikacji kodeka, którego użyto do kompresji. Przykładowe znaczniki FourCC: DIVX, XVID, MP4V.

Poniżej (dla porównania) zestawiono obrazy, które charakteryzują się różnymi zniekształceniami, w zależności od zastosowanego kodeka wideo.

oryginał Cinepak firmy Radius – 100 kbit/s

H.261 – 100 kbit/s MPEG-4 Video – 100 kbit/s

Rys. 6. Wpływ wybranych kodeków na jakośd pojedynczej klatki obrazu wizyjnego

7. Opis procedury kodowania obrazu wizyjnego

Kodowanie obrazu wizyjnego można przeprowadzid w programie VirtualDub. Kolejne kroki kodowania obrazu opisano poniżej:

W programie VirtualDub wczytad plik wejściowy: File > Open video file (skrót Ctrl+O).  W menu Audio zaznaczyd No audio.

 W menu Video zaznaczyd Full processing mode.

 Z menu Video wybrad Compression (skrót klawiszowy Ctrl+P). Wybrad pakiet kodeków ffdshow Video Codec,a następnie nacisnąd przycisk Configure. Należy wybrad odpowiedni kodek z listy dostępnych kodeków i ustawid parametry

(8)

8

kompresji. Zwrócid uwagę na to, by wszystkie kodeki korzystały z klatek B. Wybór kodeka zatwierdza się przez naciśnięcie przycisku OK.

 Zapisad plik: File > Save as AVI (klawisz F7). Najlepiej jest nadawad plikom nazwy opisowe tak, by łatwo można było je zidentyfikowad (np. movie1_xvid_low.avi). Po naciśnięciu przycisku Zapisz rozpocznie się proces kompresji.

8. Zadania

1. W katalogu C:\Technologie multimedialne\nazwisko1 nazwisko2\ stworzyd podkatalog

kompresja. W tym podkatalogu będą zapisywane pliki wynikowe.

2. Za pomocą programu VirtualDub dokonad kompresji przygotowanych plików wizyjnych

zapisanych w katalogu C:\Technologie multimedialne\!cw09

Badaniu podlegają następujące kodeki: MPEG-2, MPEG-4, h.264, Windows Media Video 9. Każdy plik zapisad z dwoma przepływnościami bitowymi.

Uwaga! Wartości przepływności bitowej (low i high) zostaną podane przez prowadzącego i powinny byd takie same dla wszystkich kodeków.

W przypadku wszystkich kodeków (poza WMV9) i niższej wartości przepływności pliki należy zakodowad jednoprzebiegowo (opcja: 1 przebieg - średni bitrate) oraz dwuprzebiegowo (najpierw tryb 2 przebiegi - 1-szy przebieg, a następnie wybrad opcję 2 przebiegi - 2-gi przebieg wewnętrzny). W przypadku kodowania dwuprzebiegowego i drugiego przebiegu w oknie Rozmiar (kB) podawad rozmiar pliku uzyskanego w wyniku kodowania jednoprzebiegowego.

3. Zapisad z jaką prędkością (w klatkach na sekundę – fps) odbywa się proces kompresji dla

poszczególnych kodeków (rys. 7).

Rys. 7. Okno postępu procesu kompresji – na czerwono zaznaczono prędkośd kompresji

4. Dokonad porównania jakości otrzymanych plików oglądając je w Windows Media

Playerze. Pojedyncze klatki najlepiej oglądad w VirtualDub-ie.

5. Wypełnid sprawozdanie dołączone do niniejszej instrukcji.

(9)

9

9. Opracowanie

Formatka sprawozdania do dwiczenia laboratoryjnego znajduje się na ostatniej stronie niniejszej instrukcji. Formatkę należy przynieśd ze sobą na zajęcia i wypełniad ją sukcesywnie w miarę wykonywania kolejnych zadao. Sprawozdanie należy oddad prowadzącemu bezpośrednio po zakooczeniu laboratorium.

10. Bibliografia

A. Beach, Kompresja dźwięku i obrazu wideo, Helion.

D. Mitrovic, Video Compression, University of Edinburgh.

Doom9 – wiele artykułów i informacji praktycznych na temat kodowania obrazu w standardach MPEG: http://www.doom9.org/

Standardy MPEG: http://www.chiariglione.org/mpeg/

MPEG standards and FAQs: http://www.mpeg.org/MPEG/starting-points.html

(10)

TRANSMISJA I REJESTRACJA SYGNAŁÓW

Ćw. 9

Metody kompresji obrazu wizyjnego

Wykonujący: Ocena:

Grupa:

Data wykonania dwiczenia:

plik ……….. wielkośd pliku

współczynnik kompresji prędkośd kompresji jakośd - obraz ruchomy jakośd - obraz statyczny plik oryginalny MPEG-2 low, 1 przebieg low, 2 przebiegi high, 1 przebieg MPEG-4 low, 1 przebieg low, 2 przebiegi high, 1 przebieg h.264 low, 1 przebieg low, 2 przebiegi high, 1 przebieg WMV9 low, 1 przebieg high, 1 przebieg

plik……….. wielkośd pliku współczynnik kompresji prędkośd kompresji jakośd - obraz ruchomy jakośd - obraz statyczny plik oryginalny MPEG-2 low, 1 przebieg low, 2 przebiegi high, 1 przebieg MPEG-4 low, 1 przebieg low, 2 przebiegi high, 1 przebieg h.264 low, 1 przebieg low, 2 przebiegi high, 1 przebieg WMV9 low, 1 przebieg high, 1 przebieg

Jakośd oceniad w skali 1-10, gdzie 10 jakośd pliku oryginalnego

Współczynnik kompresji obliczad jako stosunek wielkości pliku przed kompresją do jego wielkości po kompresji (np.: 10:1 lub 4,7:1).

(11)

1) Porównad jakośd obrazu i prędkośd kompresji dla poszczególnych kodeków. ... ... ... ... ... ... ... ... ... ... ...

2) Czy wszystkie formaty zapewniają tę samą jakośd obrazu statycznego? Uzasadnid odpowiedź.

Aby ocenid jakośd obrazu, użyj programu VirtualDub i w razie potrzeby powiększ okno zawierające klatkę obrazu.

... ... ... ... ... ... ... ...

3) Który kodek pozwala na uzyskanie najwyższej jakości przy najniższej przepływności? Co może byd tego przyczyną? ... ... ... ... ... ... ... ...

(12)

4) Czy są różnice w jakości obrazu dla kodowanie jedno- i dwuprzebiegowego? Z czego to wynika? ... ... ... ... ... ... ... ... ... 5) Własne spostrzeżenia, wnioski i komentarze.

... ... ... ... ... ... ... ... ... ... ... ... ... ...

Cytaty

Powiązane dokumenty

Na przykład dla obrazu Lena przy r = 11, różnica wartości entropii między fazą 3 a 6 wynosi 0.01558 bita, co przekłada się na ponad 510 bajtów w skali całego obrazu

Ana- liza wartości prędkości pojazdu w momencie minimalnej odległości pieszy-pojazd nie jest w tym przypadku przydatna, ponieważ w wielu sytuacjach typu C prędkość V Smin

Niemniej, nie w ydaje się, podobnie jak w wątku rosyjskim, żeby prowokację za­ m ierzyło środowisko żydowskie, bo tekst ten jest przede wszystkim

Owe daty uogólnione (częstotliwość w danym roku inicjacji lub wystąpień) sygnalizują zmiany nastrojów oraz postaw światopoglądowych czy poli­ tycznych. Niekiedy

[r]

Użytkownik będąc przeprowadzany przez szkolenie powinien widzieć pasek postępu nauki i mieć możliwość przejścia do kolejnego tematu, a także cofnięcia się (Np. za

if S zawiera dwie litery dołącz 0 do słowa kodu jednej litery i 1 do słowa kodu drugiej litery;. else if S zawiera więcej niż dwie litery podziel S na

Wykłady (WY) Seminaria (SE) Ćwiczenia audytoryjne (CA) Ćwiczenia kierunkowe - niekliniczne (CN) Ćwiczenia kliniczne (CK) Ćwiczenia laboratoryjne (CL) Ćwiczenia w