Kompresja wideo jest z jednej strony naszym przyjacielem, z drugiej wrogiem.

Gdyby nie ona, wielkie trudności sprawiałoby przetwarzanie tak dużej ilości danych w krótkim czasie – wyobraźmy sobie strumień wideo zapisany w standardzie 1080p – dwumegapikselowe klatki przesyłane z prędkością 24, 30 lub 60 fps – w ciągu sekundy trzeba by przetwarzać od 48- do 120-megapikselowych obrazów.

Z drugiej jednak strony kompresja powoduje obniżenie jakości obrazu – utratę szczegółów, które są widoczne w materiale nieskompresowanym. Dlatego dokonując kompresji obrazu należy znaleźć kompromis pomiędzy rozmiarem materiału, a jego jakością . Podczas kodowania materiału trzeba pamiętać o pojemności nośnika, na którym materiał ma się docelowo znaleźć, możliwościach sprzętowych urządzeń odtwarzających oraz brać pod uwagę jakość materiału wejściowego.

Aby zmniejszyć rozmiar strumienia wideo stosuje się kilka różny technik:

  • Kompresja szczegółów. Można tu znaleźć analogię ze stratną kompresją obrazów JPG – ogólne wrażenia z odbioru obrazu pozostają na tym samym poziomie przy jednoczesnej redukcji jego jakości.
  • Głębia kolorów. Dostępna w zakresie od 8 do 14 bitów. Jest to liczba bitów wykorzystywaną do reprezentacji koloru danego piksela. Większa głębia koloru oznacza szerszy zakres kolorów.. Kamery z nieco wyższej półki (tzw. “prosumer”) oraz lustrzanki HDSLR tworzą strumień wideo z 8-bitową głębią kolorów, a więc o 256 odcieniach dla każdego z kanałów kolorów. W przypadku 10-bitowego koloru mamy już do czynienia z 1024 odcieniami.
  • Podpróbkowanie kolorów. Okazuje się, że ludzkie oko jest bardziej wrażliwe na zmiany jasności (luminancji), aniżeli na zmianę kolorów (chrominancji). Fakt ten jest wykorzystywany w kamerach w procesie podpróbkowania kolorów (chroma subsampling), aby w ten sposób obciąć rejestrowane pasmo. Podczas rejestracji obrazu zapisywany jest on w formie stosunku liczby próbek luminancji (y) oraz składników różnicy kolorów (Cb i Cr). Gdy obraz nie jest skompresowany, wartość współczynnika próbkowania zapisywana jest jako 4:4:4, co oznacza że na cztery próbki luminancji przypada tyle samo próbek chrominancji. Profesjonalne kamery korzystają z subsamplingu 4:2:2, zaś większość HDSLR jedynie 4:2:0. System obrazu PAL posługuje się subsamplingiem w stosunku 4:2:0, zaś NTSC – 4:1:1. Szerzej o subsamplingu postaramy się napisać wkrótce.
Flir Vue

Podpróbkowanie kolorów. Copyright Brion VIBBER. Wikimedia Commons

Group of Pictures (GOP). Group of pictures, czyli Grupa obrazów, to dość skomplikowana metoda kompresji obrazu wideo. Zapisuje ona materiał w klatkach oznaczonych jako I oraz P (występują również klatki typu D i B pozwalające na jeszcze bardziej efektywną kompresję). Każda z grup obrazów rozpoczyna się od klatki typu I (intra coded picture). Jest to niezależna, zawierająca pełną informację o obrazie klatka (oczywiście także skompresowana innymi metodami). Klatki typu P (predicted frames) nie zawierają pełnej informacji o obrazie, a jedynie różnicę pomiędzy poprzednią klatką I lub P. Klatki B (bidirectional compressed images) również są klatkami typu delta, ale korzystają z informacji zarówno poprzedzających, jak i następujących klatek I oraz P (dzięki czemu są jeszcze „mniejsze” niż klatki P).

Struktura kompresji GOP

Struktura kompresji GOP

Im więcej klatek typu I zawiera strumień, tym łatwiej się go edytuje. Z drugiej strony większa liczba klatek typu I zwiększa rozmiar materiału wideo. Dlatego też wideo przygotowane dla przesyłu w Internecie zawiera w jednej grupie GOP tylko jedną klatkę typu I.

Strukturę GOP można określić dwoma liczbami, M i N. Dla przykładu, przy M=3 i N=12 pierwsza z liczb mówi o odległości pomiędzy klatkami I oraz P, natomiast druga o dystansie pomiędzy pełnymi obrazami (klatkami typu I). Jest to właśnie długość grupy GOP. W naszym przykładzie grupa GOP wygląda więc następująco: IBBPBBPBBPBBI. Długie struktury GOP (np. 15-klatkowe) są bardziej wydajne, jednakże gubi się przy tym sporo klatek typu I.

  • Bit Rate. System wideo (kamera lub odtwarzacz) musi doskonale „znać” swoje możliwości. Strumień wideo zapisywany lub odczytywany jest przecież przez cały czas pracy kamery lub odtwarzacza. Jeśli kamera wideo zapisuje materiał na karcie SD lub CF, nie może robić tego szybciej, aniżeli jest w stanie przetworzyć karta. Dlatego właśnie system kodowania kamery nie przekracza maksymalnej przepływności danych (bitrate), który może wynosić, przykładowo 17 Mbit/s. Wyższa przepływność danych wpływa na lepszą jakość obrazu, jednakże do przetworzenia większej ilości danych potrzebne są szybsze urządzenia/nośniki (np. karty pamięci).

Duża przepływność danych wcale nie musi świadczyć o dobrej jakości obrazu zapisywanego przez kamerę. Istotny jest również sprzętowy kodek zastosowany w rejestratorze.

– Kodeki kamery. Różne kamery potrafią przy tej samej przepływności danych zapisywać obraz wideo w innej jakości. Dla wolnego procesora kodowanie obrazu w czasie rzeczywistym za pomocą kodeka H.264 to nie lada wyzwanie. Na szczęście kodeki sprzętowe (część układu kamery przetwarzającego obraz) są coraz nowocześniejsze i wydajniejsze. Większe kamery spisują się lepiej od swych młodszych kuzynów, gdyż większa obudowa i lepsze chłodzenie pozwala na stosowanie wydajniejszych procesorów.

Kodeki wideo

Kodeki to programy, które pozwalają urządzeniom (kamerze, odtwarzaczowi, komputerowi) na przetwarzanie obrazu wideo – kodowanie lub jego dekodowanie (kompresję/dekompresję danych).Niektóre z urządzeń, takie jak np. odtwarzacze Blu-ray wykonują tylko jedną z tych czynności – dekodowanie strumienia wideo. Wszystkie te kodeki bazują na ogólnie przyjętych standardach.

Strumienie wideo są umieszczane w tzw. kontenerach multimedialnych. Częstym błędem jest stwierdzenie, że film został zakodowany jako .AVi lub .MOV, gdyż te rozszerzenia nazw plików nie definiują zastosowanego kodeka, a są jedynie kontenerem – pojemnikiem przechowującym dane. W kontenerze znajdują się informacje czym dany materiał został zakodowany. Jeśli system komputera lub urządzenie nie posiada zainstalowanego kodeka, nie poradzi sobie z odtworzeniem materiału wideo.

H.264

H.264 jest najważniejszym i najpopularniejszym używanym obecnie kodekiem HD. Jest to implementacja standardu MPEG-4 AVC i jest wykorzystywany w:

  • urządzeniach Blu-ray
  • oferowanym w Internecie wideo (np. na YouTube)
  • nadawaniu obrazu w jakości HD
  • Apple TV
  • urządzeniach przenośnych, takich jak iPad, iPhone, itp
  • kamerach cyfrowych HD

Kodeki wideo używane podczas przygotowania materiału wideo.

Pracę nad przygotowaniem materiału wideo do publikacji można podzielić na trzy etapy:

  1. przechwytywanie materiału wideo,
  2. edycja wideo,
  3. renderowanie materiału wideo dla konkretnego zastosowania (Internet, streaming, Blu-ray).

Literatura:

1. “Mastering HD Vide with your DSLR”, Uwe Steinmueller, Helmut Kraus.

2. “The Digital Filmmaking Handbook”, Ben Long, Sonja Schenk.

3. Wikipedia.org