Wideo w pigułce

Słowo “kodek” powstało jako zlepek wyrazów koder i dekoder, co sugeruje związek raczej z kryptografią niż z filmem. Jednak w świecie cyfrowego wideo kodek to po prostu algorytm kompresji, czyli pewien przepis mówiący procesorowi, w jaki sposób potraktować kolejne klatki filmu, aby znacząco zredukować jego rozmiar. Zanim jednak przyjrzymy się poszczególnym kodekom, przybliżmy najważniejsze zagadnienia związane z kompresją materiału wideo.

Pojedyncza, nieskompresowana klatka wideo zawiera ponad 1 MB informacji. Każda sekunda w systemie PAL to aż 25 takich klatek. Łatwo policzyć, że przeciętny rozmiar pełnometrażowego filmu wyniósłby około 140 GB. Dysponując łączem o przepustowości 1 Mb/s, pobieralibyśmy taki plik z Sieci przez co najmniej dwa tygodnie. Pytanie tylko, gdzie byśmy go zapisali? Jasno widać, że cyfrowe wideo oprócz kamer, nośników i obiektywów wymaga przede wszystkim sprawnych algorytmów, które potrafią bez widocznej utraty jakości wyraźnie zredukować wielkość pliku wideo.

Spadkobierca JPEG-a

Film to ciąg następujących po sobie obrazów, więc kompresja zaczyna się właśnie od nich. Dokładniej: od spostrzeżenia, że oko ludzkie znacznie lepiej postrzega drobne różnice jasności od niewielkich różnic barwy. Ten pomysł przyczynił się do powstania bardzo wydajnego algorytmu kompresji JPEG. Dzieli on fragmenty obrazu na bloki 8×8 pikseli, wewnątrz których przeprowadza dyskretną transformatę kosinusową (DCT). W każdym bloku informacje o jasności i barwie (YUV) poszczególnych punktów przekształcane są na częstotliwości, które odzwierciedlają rozkład jasności (luminancja) i kolorów (chrominancja). W wyniku tego najmniejszym szczegółom obrazu odpowiadają najwyższe częstotliwości widma będącego efektem działania transformaty. Później w procesie kwantyzacji te najwyższe częstotliwości są odfiltrowywane, co sprawia, że wielkość pliku graficznego maleje. Uzyskany w ten sposób ciąg bajtów zostaje dodatkowo skompresowany bezstratnym algorytmem Huffmana i trafia na dysk już jako plik z rozszerzeniem JPG lub JPEG.

MPEG to zatwierdzony przez organizację ISO standard kompresji wideo. Definiuje on, jakie sposoby oszukania zmysłu wzroku mogą stosować kodeki zgodne z jego specyfikacją. Oprócz trików stosowanych przy JPEG-u, które wydajnie zmniejszają rozmiar poszczególnych klatek, MPEG opisuje również metody kompresji specyficzne dla filmu. Najważniejszą z nich jest korzystanie z ramek kluczowych, które jako jedyne przechowują dokładną informację o obrazie w danym punkcie wideo. Pozostałe klatki są kodowane jako różnica między najbliższymi ramkami kluczowymi, co znacząco redukuje ilość informacji.

Od MPEG-1 do MPEG-4

Standard MPEG-1, na bazie którego powstał format Video-CD, zapewniał jakość filmu na poziomie VHS-u. Kolejna, druga odsłona MPEG-a została opracowana z myślą o kinie domowym. W odróżnieniu od poprzedniej wersji znacznie zwiększono tu rozdzielczość. Najbardziej znanym zastosowaniem MPEG-2 jest DVD.

Standard MPEG-4 stworzono, mając na uwadze transfer wideo przez Internet. Specyfikacja przewiduje nawet kilkakrotną redukcję rozmiaru filmu w porównaniu z MPEG-2 przy zachowaniu tej samej jakości. Praktycznymi realizacjami MPEG-4 są m.in. DivX czy XviD. Ich przewaga nad konkurentami z poprzedniej generacji polega na efektywnym wykorzystywaniu algorytmów, które uwzględniają typowe sekwencje występujące w nagraniach wideo. Większość z tych nowości zbadaliśmy w redakcyjnym teście (patrz: $(LC153382:”Jak testowaliśmy kodeki”)$).

MPEG-4 niejedno ma imię

Zazwyczaj określenie MPEG-4 kojarzy nam się jednoznacznie z darmowym XviD-em lub też komercyjnym DivX-em. W rzeczywistości jednak wspomniane produkty są konkretną implementacją zaledwie jednego z podstandardów ISO 14496-2 Advanced Simple Profile (ASP). Wspomniany MPEG-4 ASP często jest mylnie nazywany w skrócie MPEG-4, co prowadzi do nieporozumień. W rzeczywistości MPEG-4 to niezwykle szeroki zestaw standardów opracowanych przez organizację Moving Picture Experts Group (MPEG). Na przykład w dokumencie ISO 14496-1 opisano sposób tworzenia animowanych i interaktywnych menu, podobnych do tych znanych z płyt DVD. Z kolei ISO 14496-3 zawiera definicję metod kompresji dźwięku – Advanced Audio Coding (AAC). Nie tak dawno do standardu dołączone zostały także normy definiujące kontener multimedialny MP4 oraz format napisów.       Najciekawszą zmianą w standardzie MPEG-4 w ciągu ostatnich lat było rozszerzenie go o kolejny tzw. profil kodowania danych wideo, który opisano w dokumencie ISO 14496-10. Standard ten znany jest również pod nazwą MPEG-4 AVC (Advanced Video Coding). O zmianach wprowadzanych przez ten typ kompresji pisaliśmy już w CHIP-ie 7/2004 (patrz: $(LC106523:Lepszy niż DivX)$), s16. Wśród prezentowanych kodeków tylko będący we wczesnej fazie rozwoju X.264 oraz komercyjny Nero Digital realizują ten typ kompresji. Generalnie jednak praktyczną implementację niemal całego standardu MPEG-4 znajdziemy tylko i wyłącznie we wspomnianym produkcie firmy Nero.

W naszym porównaniu znajdują się więc kodeki, które mimo że pochodzą z tej samej rodziny MPEG-4, różnią się między sobą stopniem zaawansowania algorytmów redukcji danych. Kodeki pracujące w trybie MPEG-4 ASP z założenia powinny ustępować nowszej odmianie MPEG-4 AVC (H.264). Należy jednak pamiętać o tym, że norma MPEG-4 definiuje tylko standard, jego implementacją muszą się jednak zająć programiści tworzący kodek.

Dane techniczne i wyniki testu kodeków
DivX 5.2.1DivX 6.0.2XviD 1.1.0 beta 23ivx D4 4.5.1X.264 Video CodecWindows Media Video 9Nero Digital1)
WWW [http://]www.divx.com/www.divx.com/www.koepi.org/www.3ivx.com/x264.nl/www.microsoft.com/www.nerodigital.com/
System operacyjnyWindows XP, Mac OSWindows XPWindows XPWindows 98/Me/XP, Mac OS, Unix, Linux,Windows XPWindows XPWindows XP
Cenafreeware19,99 USDfreeware 19,95 USDfreewarefreeware29,99 euro
Wyniki pomiarów i ocena jakości filmów
Średni czas kompresji 12-sekundowej sekwencji wideo [s]12152012325323
Średni współczynnik kompresji w stosunku do filmu DV [%]3)90%91%93%89%92%2)91%2)87%
Średni rzeczywisty współczynnik kompresji [%]4)98,81%98,87%99,08%98,69%98,98%2)98,15%2)98,42%
Średnia rzeczywista krotność kompresji5)84891087698 2)54 2)63
Jakość nagrania (1-5)6)3,53,54,03,02,02,54,5
Błędy obrazunnnnttn
Funkcjonalność
Kompatybilność z odtwarzaczami stacjonarnymittnnnnn
Kompresja jednoprzebiegowa VBR/CBRt/nt/nt/tt/tt/nn/tn/n
Kompresja jednoprzebiegowa o stałej jakościnnttttt
Kompresja dwuprzebiegowa/wieloprzebiegowat/tn/tt/nt/nt/tt/nt/n
Kalkulator bitrate’u/usuwanie przeplotut/nt/tt/nn/nn/nn/tn/t
Podwyższanie jakości kosztem czasu kompresjittntntt
Kontrola kwantyzacji ramektttntnn
Zaawansowana kontrola ramek kluczowychnntntnn
Zmiana wymiarów filmu podczas kompresjittnnntt
Usuwanie linii brzegowych nagarania (cropping)ttnnntt
Ogólna ergonomia i zrozumiałość interfejsu (1-5)6)4424245
KomentarzOptimum równowagi pomiędzy osiągami, kompatybilnością i ergonomią. Możliwość poprawy jakości obrazu dzięki algorytmom psychowizualnym.Lepsza kompresja niż w wersji 5, ale wyraźnie wolniejsze działanie. Trudna obsługa dla mało zaawansowanych użytkowników.Zapewnia najlepsze kompresję i jakość przy akceptowalnym czasie pracy. Zaawansowany mechanizm zarządzania ramkami kluczowymi, ale niezbyt ergonomiczny interfejs.Duża szybkość kodowania, ale przy niższych wartościach bitrate’u materiał wyjściowy pozostawia wiele do życzenia. Prosty w obsłudze interfejs.Zdecydowanie najgorszy, szczególnie pod względem jakości obrazu, z testowanych kodeków. Jedyną jego zaletą jest wysoki współczynnik kompresji. Kodek najwolniejszy ze wszystkich. Ma jednak bardzo wygodny i intuicyjny interfejs. Pozwala również na prostą konfigurację bufora i lepiej wykorzystuje kompresję VBR.“Kodek-kombajn”. Wbrew reklamie, parametry nie są rewelacyjne, ale niewątpliwym jego atutem pozostaje prostota obsługi. Do poprawnego działania potrzebuje DirectX 9.0.
t – jest, n – nie ma, 1) – ze względu na brak informacji o ustawieniach bitrate’u nie należy go porównywać z pozostałymi kodekami, 2) – wynik nie uwzględnia ostatniej sekwencji, która w przypadku tych kodeków została skompresowana z błędami, 3) – określa, o ile się zmniejszyła objętość filmu w stosunku do nagrania z kamery DV, 4) – określa, o ile się zmniejszyła objętość filmu w stosunku do materiału nieskompresowanego, 5) – określa, ile razy zmniejszyła się objętość filmu w stosunku do materiału nieskompresowanego, 6) – wartości określane przez zespół redakcyjny na podstawie subiektywnych odczuć
Więcej:bezcatnews