Kompresujemy AVI

Kompresja przydaje się nie tylko do archiwizacji zdjęć z wakacji. Często pamiątką z udanego urlopu jest kaseta wideo. Jak zapisać film, który przeniosłeś na dysk twardy, żeby móc go pokazać znajomym?

Kompresja przydaje się nie tylko do archiwizacji zdjęć z wakacji. Często pamiątką z udanego urlopu jest kaseta wideo. Jak zapisać film, który przeniosłeś na dysk twardy, żeby móc go pokazać znajomym?

Nawet jeśli nie masz ambicji udostępniania wszystkim znajomym nagrań wideo z wakacji, może przygotowałeś prezentację wideo, którą chciałbyś utrwalić na CD i rozdać podczas konferencji. Niestety, jeśli w tej dziedzinie stawiasz dopiero pierwsze kroki, z pewnością podczas zapisu klipu natrafisz na problem wyboru algorytmu kompresji danych wideo.

Po co?

Kwestia właściwej decyzji w tym względzie jest bardzo ważna. Wybór opcji "no compression" w programie do edycji wideo, którego użyłeś, w praktyce uniemożliwi obejrzenie Twojego klipu wprost z płyty CD. Nie wierzysz? Łatwo to wyliczyć. Załóżmy, że przygotowałeś film w formacie 320x240 punktów przy piętnastu klatkach na sekundę. Każda klatka klipu ma objętość około 320x240x3 bajtów (3 bajty to 24 bity użyte do zakodowania barwy każdego punktu obrazu). Konieczność przesłania piętnastu takich klatek w ciągu jednej sekundy oznacza przepływ strumienia danych z prędkością około 3,375 MB/s. Minimalne wymagania wobec napędu CD (teoretyczne, bo w praktyce trudno utrzymać tak szybki transfer przez dłuższy czas) to 22-krotna prędkość odtwarzania. Jakby tego było mało, minutowy klip wideo zapisany bez kompresji zajmie (przy podobnych parametrach) około 197 MB. Prosty zabieg, jak redukcja objętości palety barw używanej przy kodowaniu (zamiast 24 na przykład 16 bitów kodujących kolor) nie powoduje na ogół dużej degradacji jakości, ale korzyść nie jest duża (dla klipu 320x240x16 przy piętnastu klatkach na sekundę strumień koniecznych do przesyłu danych to ponad 2 MB/s).

W celu ułatwienia przesyłu, archiwizacji i prezentacji danych wideo udostępniono możliwość używania tzw. kodeków (ang. Codec - chip, algorytm lub program realizujący kompresję i dekompresję danych). Z logicznego punktu widzenia stanowią one "wtyczki" do systemu, realizujące określony schemat kompresji i dekompresji.

Kompresja pliku wideo

Kompresja pliku wideo

Najpopularniejsze kodeki wideo to Cinepak i Indeo w kolejnych wersjach. Oprócz nich istnieje całe mnóstwo innych, lepiej lub gorzej radzących sobie z "upakowywaniem" plików wideo. Skuteczność takich algorytmów jest bardzo duża. W praktyce rozmiar wejściowego zbioru można zmniejszyć dziesięciokrotnie (!) bez zauważalnego pogorszenia jakości nagrania. Niestety, tylko kilka z nich jest na stałe wbudowanych w Windows. Duża część wymaga oddzielnego instalowania. Na szczęście te, które znajdują się w najnowszych wersjach systemu operacyjnego, całkiem dobrze radzą sobie z materiałami filmowymi różnego typu.

Skompresowanie filmu to dopiero połowa sukcesu. Jeśli chcesz, żeby

mogło go obejrzeć jak najwięcej użytkowników, nie wymagaj, żeby mieli specjalne oprogramowanie do dekompresji. W praktyce do Twojej dyspozycji jest więc zaledwie kilka najpopularniejszych algorytmów. Oddzielna kwestia to format zapisu pliku. Ze względu na łatwość odtwarzania i popularność wybrałem AVI - dysponując odpowiednim oprogramowaniem można, oczywiście, pokusić się o zapis zbioru MOV czy MPG.

Sprawdź kodery-dekodery

Dostęp do listy kodeków zainstalowanych w Twoim systemie jest bardzo prosty. Wystarczy, że klikniesz dwukrotnie ikonę Mój komputer, następnie wybierzesz Panel Sterowania i klikniesz ikonę Multimedia. Potem wybierz kartę Urządzenia (w Windows 95: Zaawansowane) i rozwiń listę Kodery-dekodery kompresujące wideo (Codec, kompresja wideo).

W praktyce

Postanowiłem sprawdzić, czym różnią się filmy zakodowane przy użyciu kilku kodeków, które z pewnością znajdują się w Twoim systemie. Do tego celu przygotowałem kilkunastosekundowy klip wideo, który utrwaliłem podczas zeszłorocznej wycieczki do Gdańska. Zaplanowałem przygotowanie pliku, który można będzie odtworzyć z płyty na dwukrotnym napędzie (maks. 300 KB/s).

Intel Video Interactive

Kodeki Indeo w wersjach 4 i 5, mimo podobnej nazwy bardzo się różnią od wersji 3.2. Zastosowanie techniki wavelet stawia jednak wysokie wymagania komputerom używanym do dekompresji. W wersji piątej, oprócz jakości poprawiono też wydajność algorytmu kompresji - kodowanie filmu trwa znacznie krócej. Piąta wersja korzysta też z możliwości procesorów MMX.

Rozmiar klatki wynosi 320x240 punktów, liczba klatek na sekundę - 15. Przed kompresją plik, 274-klatkowy klip AVI, miał objętość 60,2 MB. Do pracy wykorzystałem Ulead MediaStudio 2.5 - płyta z tym programem dołączona była do mojej karty przechwytującej.

Test polegał na kompresji przygotowanego materiału. Lista zastosowanych przeze mnie kodeków jest krótka, ale nic nie stoi na przeszkodzie, abyś do swoich celów użył zupełnie innych algorytmów. Wiele z kompresorów można ściągnąć z Internetu. Część z nich to specjalizowane algorytmy - może któryś z nich będzie idealnie odpowiadał Twoim potrzebom.

Wyniki mojego eksperymentu są interesujące. Zdecydowanie dyskwalifikują one proste kodeki typu Microsoft Video 1 czy RLE. Uzyskiwana przy ich użyciu jakość była bardzo zła. Może RLE sprawdziłby się lepiej w przypadku animacji - w klipie wideo, który przygotowałem, brakowało jednak prostych, jednolitych powierzchni.


Zobacz również