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.1 | DivX 6.0.2 | XviD 1.1.0 beta 2 | 3ivx D4 4.5.1 | X.264 Video Codec | Windows Media Video 9 | Nero Digital1) | ||||
WWW [http://] | www.divx.com/ | www.divx.com/ | www.koepi.org/ | www.3ivx.com/ | x264.nl/ | www.microsoft.com/ | www.nerodigital.com/ | |||
System operacyjny | Windows XP, Mac OS | Windows XP | Windows XP | Windows 98/Me/XP, Mac OS, Unix, Linux, | Windows XP | Windows XP | Windows XP | |||
Cena | freeware | 19,99 USD | freeware | 19,95 USD | freeware | freeware | 29,99 euro | |||
Wyniki pomiarów i ocena jakości filmów | ||||||||||
Średni czas kompresji 12-sekundowej sekwencji wideo [s] | 12 | 15 | 20 | 12 | 32 | 53 | 23 | |||
Ś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) | 84 | 89 | 108 | 76 | 98 2) | 54 2) | 63 | |||
Jakość nagrania (1-5)6) | 3,5 | 3,5 | 4,0 | 3,0 | 2,0 | 2,5 | 4,5 | |||
Błędy obrazu | n | n | n | n | t | t | n | |||
Funkcjonalność | ||||||||||
Kompatybilność z odtwarzaczami stacjonarnymi | t | t | n | n | n | n | n | |||
Kompresja jednoprzebiegowa VBR/CBR | t/n | t/n | t/t | t/t | t/n | n/t | n/n | |||
Kompresja jednoprzebiegowa o stałej jakości | n | n | t | t | t | t | t | |||
Kompresja dwuprzebiegowa/wieloprzebiegowa | t/t | n/t | t/n | t/n | t/t | t/n | t/n | |||
Kalkulator bitrate’u/usuwanie przeplotu | t/n | t/t | t/n | n/n | n/n | n/t | n/t | |||
Podwyższanie jakości kosztem czasu kompresji | t | t | n | t | n | t | t | |||
Kontrola kwantyzacji ramek | t | t | t | n | t | n | n | |||
Zaawansowana kontrola ramek kluczowych | n | n | t | n | t | n | n | |||
Zmiana wymiarów filmu podczas kompresji | t | t | n | n | n | t | t | |||
Usuwanie linii brzegowych nagarania (cropping) | t | t | n | n | n | t | t | |||
Ogólna ergonomia i zrozumiałość interfejsu (1-5)6) | 4 | 4 | 2 | 4 | 2 | 4 | 5 | |||
Komentarz | Optimum 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ć |