Kompresja wideo

Kompresji wideo to metoda kompresji danych , który ma zmniejszyć ilość danych, minimalizując wpływ na wizualną jakość wideo . Zaletą kompresji wideo jest obniżenie kosztów przechowywania i przesyłania plików wideo.

Historia i standardy

Pierwsze próby kompresji wideo sięgają lat pięćdziesiątych XX wieku , ale dopiero w latach osiemdziesiątych pojawiły się pierwsze realne rozwiązania. Pierwszym standardem wideo jest H.120 , opublikowany w 1984 roku przez CCITT . Ten pierwszy standard wykorzystuje technikę DPCM i ma bardzo ograniczone funkcjonalności: maksymalna przepływność 2 Mbit / s, tylko poziom szarości i niezadowalająca jakość.

Organizacje normalizacyjne odgrywają bardzo ważną rolę w rozwoju i rozpowszechnianiu technik kompresji wideo. Zainicjowany przez CCITT w latach 80. XX wieku, a następnie przez jego następcę ITU-T . Te działania normalizacyjne są koordynowane przez ITU-R , a następnie przez ISO i IEC .

Podstawy algorytmów kompresji wideo

Sekwencje wideo charakteryzują się bardzo dużą redundancją statystyczną, zarówno w dziedzinie czasu, jak i przestrzeni.

Podstawową właściwością statystyczną, na której opierają się techniki kompresji, jest korelacja między pikselami . Ta korelacja jest zarówno przestrzenna, sąsiednie piksele bieżącego obrazu są podobne, jak i czasowe, piksele przeszłych i przyszłych obrazów są również bardzo zbliżone do bieżącego piksela.

W związku z tym zakłada się, że znaczenie danego piksela obrazu można przewidzieć na podstawie sąsiednich pikseli tego samego obrazu (przy użyciu technik kodowania wewnątrzobrazowego) lub pikseli sąsiedniego obrazu (przy użyciu technik międzyobrazowych). Intuicyjnie widać, że w pewnych okolicznościach, na przykład podczas zmiany ujęcia sekwencji wideo, korelacja czasowa między pikselami między sąsiednimi obrazami jest niewielka lub nawet zerowa. W tym przypadku najbardziej odpowiednie są tak zwane techniki kodowania Intra , które pozwalają wykorzystać korelację przestrzenną w celu uzyskania wydajnej kompresji danych.

Algorytmy kompresji wideo typu MPEG wykorzystują transformację zwaną DCT (dla dyskretnej transformacji kosinusowej lub „  dyskretnej transformacji kosinusowej  ”) na blokach 8 × 8 pikseli, aby efektywnie analizować przestrzenne korelacje między sąsiednimi pikselami tego samego obrazu. Zaproponowano inne metody, wykorzystujące fraktale , falki , a nawet dopasowaną pościg .

Jeśli jednak korelacja między pikselami w sąsiednich klatkach jest wysoka, to znaczy w przypadkach, gdy dwie kolejne klatki mają podobną lub identyczną zawartość, pożądane jest zastosowanie tak zwanej techniki kodowania międzykodowego , na przykład DPCM ( Differential PCM ), który wykorzystuje prognozowanie czasowe (skompensowana prognoza ruchu między klatkami).

W klasycznym schemacie kompresji wideo, adaptacyjna kombinacja między dwoma ruchami (czasowym i przestrzennym) informacji jest wykorzystywana do uzyskania znaczącej kompresji danych (hybrydowe kodowanie wideo DPCM / DCT).

Próbkowanie w dół i interpolacja

Większość technik kompresji (niewłaściwie nazywanych kodowaniem z powodu utraty informacji), które zostaną opisane w tej części, przeprowadza próbkowanie i kwantyzację przed zakodowaniem informacji. Podstawową koncepcją próbkowania w dół jest zmniejszenie wymiarów (poziomych i pionowych) obrazu wideo, a tym samym zmniejszenie liczby pikseli do zakodowania.

Niektóre aplikacje wideo również zmniejszają próbkowanie ruchu w czasie, aby zmniejszyć liczbę klatek na sekundę przed zakodowaniem. Dlatego odbiornik musi dekodować obrazy i interpolować je przed wyświetleniem.

Tę technikę kompresji można uznać za jedną z najbardziej podstawowych, która uwzględnia fizjologiczne cechy oka i usuwa nadmiarowość zawartą w danych wideo.

Ludzkie oczy są bardziej wrażliwe na zmiany światła niż koloru. Z powodu tej wady wzroku, większość algorytmów kompresji wideo reprezentują obrazy w YUV barw przestrzeni , która zawiera jeden składnik jasności i dwa chroma . Następnie składowe chromatyczne są próbkowane w dół zgodnie ze składową luminancji ze stosunkiem Y: U: V specyficznym dla konkretnego zastosowania (na przykład w MPEG-2 stosunek wynosi 4: 1: 1 lub 4: 2: 2).

Przewidywanie ruchu z kompensacją

Przewidywanie z kompensacją ruchu lub kompensacja ruchu to skuteczny sposób na zmniejszenie czasowych nadmiarowości między ramkami i jest używany w formatach MPEG-1 i MPEG-2 jako predykcja dla kodowania DPCM. Koncepcja kompensacji ruchu opiera się na szacowaniu ruchu między klatkami wideo; jeśli wszystkie elementy sceny wideo są przestrzennie zbliżone, ruch między klatkami można opisać ograniczoną liczbą parametrów (wektory ruchu pikselowego).

Najlepszą prognozę piksela daje przewidywanie ruchu poprzedniej klatki. Kodowanie informacji o ruchu dla każdego piksela obrazu nie jest konieczne.

Jeśli korelacja przestrzenna między wektorami ruchu jest wystarczająco wysoka, wektor ruchu może reprezentować blok sąsiednich pikseli.

Bloki te często składają się z grupy 16x16 pikseli i tylko jeden wektor ruchu jest szacowany, kodowany i przesyłany dla każdego bloku.

Wniosek

Połączenie technik predykcji z kompensacją ruchu i transformacji DCT można zdefiniować jako kluczowe elementy kompresji wideo typu MPEG. Trzecią charakterystyczną cechą jest to, że techniki te są używane do małych bloków obrazu (często 16x16 pikseli do kompensacji ruchu i 8x8 pikseli do kodowania DCT).

Z tych powodów kodowanie MPEG jest częścią hybrydowych algorytmów DPCM / DCT.

Podstawowy schemat kodowania międzyramkowego

Podstawowa technika kompresji MPEG-1 (i MPEG-2) opiera się na strukturze makrobloku. Algorytm koduje pierwszą ramkę sekwencji za pomocą kodowania wewnątrzramkowego (ramka I). Każda kolejna ramka jest kodowana z wykorzystaniem predykcji międzyramkowej (ramki P); tylko dane z ramki zakodowanej przed chwilą (ramki I lub P) zostaną użyte do predykcji. Każdy kolor ramki jest podzielony na bloki makr.

Każdy makroblok zawiera dane dotyczące jasności i chrominancji: 4 bloki jasności (Y1, Y2, Y3, Y4) i dwa bloki chrominancji (U, V), każdy po 8x8 pikseli; co daje stosunek jasności do nasycenia koloru 4: 1: 1.

Schemat blokowy kodowania DCT / DPCM

Pierwsza klatka sekwencji wideo (klatka I) jest kodowana w trybie wewnątrzklatkowym bez żadnego odniesienia do przeszłych lub przyszłych klatek. DCT jest stosowane do każdego bloku jasności i barwy 8x8, każdy z 64 współczynników DCT jest równomiernie kwantowany (Q). Po kwantyfikacji mniejszy współczynnik (współczynnik ciągły znany jako DC) jest traktowany inaczej niż pozostałe (współczynniki AC). Współczynnik DC odpowiada średniej intensywności bloku i jest kodowany metodą predykcji różnicowej DC. Pozostałe niezerowe współczynniki są następnie kodowane zygzakiem, jak w kodowaniu JPEG.

Schemat blokowy dekodowania DCT / DPCM

Dekoder wykonuje operację odwrotną. Rozpoczyna się od wyodrębnienia i dekodowania danych o różnych współczynnikach DCT dla każdego bloku. Przy rekonstrukcji (Q *) niezerowych współczynników, wykonuje odwrotne DCT (DCT -1 ) i odtwarzane są wartości kwantyzacji pikseli bloków. Wszystkie bloki każdego obrazu są dekodowane i rekonstruowane.

Aby zakodować ramki P, poprzednie ramki N-1 (ramki I lub P) są tymczasowo przechowywane w FS (pamięć ramek). Kompensacja ruchu (MC) jest wykonywana na podstawie makrobloków. Wideo bufor jest konieczne (Vb) w celu zapewnienia stałej szybkości transmisji strumienia wideo.

Warunki wypełnienia

Cechą zapewnianą przez algorytm MPEG-1 jest możliwość aktualizacji informacji o makroblokach do dekodera tylko wtedy, gdy jest to konieczne (w przypadku zmiany zawartości bloku w porównaniu z zawartością tego samego bloku poprzedniego obrazu). Kluczem do wydajnego kodowania sekwencji wideo z małą przepływnością na sekundę jest właściwy wybór algorytmu przewidywania. Standard MPEG rozróżnia głównie trzy metody (typy MB):

Funkcje MPEG-1

Aby uzyskać dostęp do obsługi multimediów, algorytm MPEG-1 został zaprojektowany do obsługi różnych funkcji, takich jak dostęp losowy, szybkie wyszukiwanie do przodu (FF-szybkie do przodu) i do tyłu (FR-szybkie do tyłu) w strumieniu wideo itp.

Aby uwzględnić te cechy i czerpać więcej korzyści z kompensacji ruchu i interpolacji ruchu, algorytm MPEG-1 wprowadza koncepcję przewidywanych i dwukierunkowo interpolowanych obrazów (ramki B).

Rozważane są trzy rodzaje ramek:

Użytkownik może ustawić sekwencję różnych typów ramek zgodnie z potrzebami aplikacji. Zwykle sekwencja wideo zakodowana tylko przy użyciu ramek I (IIIII ...) zapewnia wysoki stopień swobodnego dostępu, FF / FR i edycji, ale bardzo niski współczynnik kompresji. Sekwencja wideo zakodowana tylko przy użyciu ramek P (IPPPPPPIPPPP ...) Umożliwia średni stopień dostępu swobodnego i FF / FR.

Jeśli użyjemy trzech typów ramek (IBBPBBPBBIBBP…), otrzymamy wysoki stopień kompresji i rozsądny stopień dostępu swobodnego i FF / FR, ale znacznie wydłużymy czas kodowania. W przypadku zastosowań takich jak wideotelefonia lub wideokonferencja ten czas może stać się nie do zniesienia.

MPEG-2

Algorytm MPEG-2 został zaprojektowany tak, aby mieć jakość co najmniej równoważną jakości NTSC / PAL i lepszą niż CCIR 60 .

Zasadniczo algorytm MPEG-2 jest identyczny z algorytmem MPEG-1 i dlatego jest zgodny. Każdy dekoder MPEG-2 musi mieć możliwość dekodowania prawidłowego strumienia wideo MPEG-1. Dodano kilka algorytmów, aby dostosować się do nowych potrzeb. MPEG-2 jest używany do przetwarzania obrazów z przeplotem.

MPEG-2 wprowadza koncepcję „profili” i „poziomów”, aby zapewnić zgodność z systemami, które nie obsługują wszystkich tych funkcji.

Każdy poziom określa zakres różnych parametrów przydatnych do kodowania.

Główny poziom obsługuje maksymalną gęstość 720 pikseli w poziomie i 576 pikseli w pionie, szybkość obrazu 30 klatek na sekundę i szybkość 15 Mbit / s.

Bibliografia

Powiązane artykuły

Uwagi i odniesienia

  1. Christine Fernandez-Maloigne, Frédérique Robert-Inacio, Ludovic Macaire, Digital Color: akwizycja, percepcja, kodowanie i renderowanie , Paris, Lavoisier, coll.  „Traktat IC2”, 348  str. ( ISBN  978-2-7462-2555-8 ) , str.  249

Linki zewnętrzne