Maksymalna wideokompresja

Hasła DVD i DivX przywołują jednoznaczne skojarzenia z tematem cyfrowego wideo. Wygląda jednak na to, że musimy uzupełnić nasz słownik pojęć o nowe wyrażenie, a mianowicie o H.264. Jest to najważniejszy chyba po MPEG-2 standard, który będzie powszechnie używany przez wiele następnych lat zarówno w świecie komputerów osobistych, jak i domowego sprzętu audio-wideo. Jeszcze do niedawna o H.264 można było mówić jako o standardzie przyszłości, lecz dziś dostępnych jest kilka niemal pełnych implementacji tej technologii. Dla każdego pasjonata metod kompresji wideo najciekawszą obecnie implementacją H.264 jest opracowywany na licencji GPL kodek x264.

W gąszczu standardów

Zanim jednak omówimy informacje na temat tego ciekawego projektu, warto przybliżyć podstawowe wiadomości na temat MPEG-4. Otóż pod tą jedną wspólną nazwą tak naprawdę kryje się wiele różnych podstandardów. W gruncie rzeczy MPEG-4 jest bardzo szerokim standardem (ISO 14496), który w równym stopniu opisuje techniki tworzenia interaktywnych menu (podobnie jak na płytach DVD), metody kodowania dźwięku i wideo, jak i podpisy czy też struktury kontenera MP4. H.264 to najnowszy podstandard, opisany dokładnie przez normę ISO 14496-10, określający tzw. zaawansowane kodowanie wideo (AVC – Advanced Video Coding). Można się także spotkać z określeniem tej techniki jako MPEG-10. Niezależnie jednak od nazw normy te tak naprawdę opisują te same metody kompresji obrazu. W odróżnieniu od MPEG-4 ASP (Advanced Simple Profile) metoda AVC/H.264 oferuje skuteczniejsze metody kodowania tzw. entropijnego – CAVLC (Context-Adaptive Variable Length Coding) oraz CABAC (Context-Adaptive Binary Arithmetic Coding). Szczegółowy opis działania tych technik zamieściliśmy na s. 16, CHIP 7/2004. To, która zostanie użyta podczas kodowania, zależy od tzw. profilu H.264. Specyfikacja definiuje cztery profile kodowania: Baseline, Main, Extended oraz High Profile.

Zalety nowego kodeka

Niezależnie jednak od technologicznych udoskonaleń, wprowadzonych przez nową specyfikację, dla typowego użytkownika najważniejsze będą praktyczne zyski ze stosowania H.264. Wprowadzenie nowego profilu kodowania AVC ma za zadanie poprawienie stopnia upakowania danych wideo bez widocznej utraty jakości. Z założenia używanie zaawansowanego kodowania ma przynieść nawet 40-procentowy wzrost kompresji danych w stosunku do profilu ASP. Jednak takie założenie nie zawsze ma potwierdzenie w praktyce. Podczas moich eksperymentów z kodekiem x264 nie zaobserwowałem aż takiej różnicy w stosunku do efektów pracy XviD-a. O ile korzystanie ze sprawdzonej techniki MPEG-4 ASP gwarantuje uzyskanie zadowalającej jakości obrazu zazwyczaj przy bitracie 900 kb/s, o tyle w wypadku MPEG-4 AVC porównywalną jakość można uzyskać przy przepływności rzędu 750-780 kb/s. Różnica ta, jak widać, nie sięga 40%, lecz mimo to uważam za bardzo duże osiągnięcie, że przy tak niskim bitracie obraz nawet w dynamicznych scenach miał akceptowalną jakość.

Warto zauważyć, iż x264 jest kodekiem darmowym (GPL), który wciąż jest rozwijany. W przyszłości można więc liczyć na to, że na skutek różnych optymalizacji będziemy mógli z jego pomocą uzyskać jeszcze lepsze rezultaty. Sytuacja x264 przypomina rozwój XviD-a, który w początkowej fazie rozwoju ustępował komercyjnemu DivX-owi. Z czasem XviD “dojrzał” i ostatecznie stał się znacznie bardziej popularny niż DivX.

Kontener AVI

Omawiając praktyczne aspekty wykorzystania kodeka x264, należy wspomnieć o tym, że jest on dostępny w formie biblioteki DLL dla podsystemu Video for Windows. Dzięki temu bez problemu możemy go stosować do kodowania materiału wideo w plikach AVI, korzystając z choćby popularnego VirtualDuba. Instalacja kodeka w Oknach polega na pobraniu odpowiednich plików ze strony projektu http://x264.nl/, a następnie kliknięciu prawym przyciskiem zbioru x264vfw.inf i wybraniu z menu opcji Zainstaluj. Po takiej operacji przystępujemy do konfigurowania kodeka.

Prosta konfiguracja

Korzystanie z dowolnego kodeka jest możliwe dopiero w programie do edycji wideo, choćby takim jak VirtualDub. Aby dostać się do panelu ustawień kodeka x264, wystarczy, że otworzymy we wspomnianej aplikacji dowolny plik wideo i wybierzemy z menu Video | Compression. W nowo otwartym oknie zobaczymy listę zainstalowanych w systemie kodeków (VFW), a wśród nich x264 – H264/AVC encoder. Po podświetleniu jego nazwy naciskamy znajdujący się obok przycisk Configure .

W głównym oknie kodeka zobaczymy trzy podstawowe tryby kompresji. Pierwsza w kolejności jest jednoprzebiegowa kompresja z zadanym bit-rate’em (

Single Pass – Bitrate

), ograniczająca “na sztywno” przepływność bitową obrabianego materiału. Podobna do niej jest jednoprzebiegowa kompresja z tzw. kwantyzatorem (

Single Pass – Quantizer

) – ograniczeniem będzie tu ogólnie mówiąc jakość generowanego obrazu. W praktyce najważniejszym ustawieniem jest kodowanie wieloprzebiegowe (

Multipass

), pozwalające optymalnie dobrać bitrate, tak aby zachować jak najlepszą jakość wideo. Dostępna tutaj opcja Fast first pass pozwala znacznie szybciej wykonać obliczenia statystyczne związane z pierwszym przebiegiem kodowania (będą one mniej precyzyjne). W praktyce jednak statystyki z pierwszego przebiegu są i tak weryfikowane podczas następnej fazy przetwarzania kodeka, można więc bez większych problemów korzystać z tej opcji.

Więcej:bezcatnews