Historia animacji komputerowych sięga lat 70. XX wieku. Wtedy komputery osiągnęły moc obliczeniową i rozmiary pamięci pozwalające wyświetlać sekwencje zapisanych obrazków. Ponieważ powszechne w użyciu były jedno-bitowe wyświetlacze monochromatyczne, to wyświetlane przez nie animacje przedstawiały obrazy tylko za pomocą dwóch kolorów: białego i czarnego. Żaden format zapisu animacji monochromatycznych nie zdobył na tyle popularności, aby mieć wpływ na przyszłe standardy zapisu. Jednak ducha tamtej mody można dostrzec do dziś w animowanych kursorach myszki (patrz rysunek 1)
Rysunek 1: Kursor w kształcie klepsydry z animowanym przesypującym się piaskiem
lub ikonkach w monochromatycznych telefonach komórkowych.
W latach 80. na komputerach klasy IBM PC najszerzej stosowanym sposobem zapisu animacji był format „gl” z programu GRASP [grasp] (ang. GRaphic Animation System for Professionals, patrz rysunek 2) .
Rysunek 2: GRASP najpopularniejszy program do animacji na PC w latach 80.
Mimo iż format „gl” dzierży palmę pierwszeństwa, żaden jego potomek nie dotrwał do dziś.
Pierwszym formatem zapisu animacji, który zdobył uznanie i popularność, był GIF. Jest to format zapisu obrazów statycznych. Firma CompuServe, która jest autorem tego standardu, przedstawiła go w 1987 roku w wersji GIF87a. 2 lata później pojawiła się wersja GIF89a. Została ona rozbudowana w porównaniu do poprzedniej o możliwości przechowywania kilku obrazów w jednym pliku i przechowywania metadanych, które mogą służyć do kontroli odtwarzanych obrazów. Dzisiaj wszyscy znamy GIF-y głównie ze stron WWW, gdzie służą jako przyciski i drobne ozdobniki.
„Fliki”, jak utarło się określać pliki w formatach FLI i FLC, to format zapisu animacji, którego rozkwit przypada na początek lat 90. ubiegłego wieku. Ojcostwo tego standardu przypisuje się firmie Autodesk, która jest autorem programów „Autodesk Animator” i „Autodesk Animator Pro” (patrz rysunek 3).
Rysunek 3: klatka z filmu demonstrującego możliwości programu Autodesk Animator
FLI obsługiwał tylko obraz o rozmiarach 320x200 pikseli i 256 kolorową paletę (8 bitów na piksel). W FLC, który jest rozwinięciem FLI, rozdzielczość pikseli jest dowolna – definiowana w nagłówku, natomiast kolor może być zapisywany za pomocą 15 bitów na piksel. W obu wersjach do kompresji obrazu stosuje się algorytm RLE (ang. Run-length Encoding), ale ma to ograniczony sens przy kolorach RGB, ponieważ może prowadzić do nadmiernego rozrostu pliku.
FLI jest pierwszym formatem, w którym zastosowano tzw. klatki delta. Są to takie klatki filmu, które nie zostają zapisane w pełnej jakości obrazu, ale są wyliczane z poprzednich lub następnych klatek. W przypadku flików tylko pierwsza klatka filmu jest klatką kluczową, zawierającą zapisany pełny obraz. Pozostałe klatki zawierają zapisane tylko te piksele, które zmieniły się w porównaniu z poprzednią klatką. Wadą zastosowania tylko jednej klatki kluczowej i wyliczania następnej zawsze z poprzedniej jest brak możliwości przewijania – przeskakiwanie klatek powoduje powstanie w odtwarzaczu „kaszy”.
Zaletami flików są bardzo małe wymagania sprzętowe przy odtwarzaniu i doskonała jakość w przypadku filmów przedstawiających schematy, diagramy, ruchomy tekst i inne animacje zawierające obrazy złożone z dużych jednobarwnych powierzchni. Mimo tych zalet format ten nie jest już stosowany i został całkowicie wyparty przez pochodne formatu MPEG.
Kodek to skrót od słów kodowanie i dekodowanie. Tym terminem określa się oprogramowanie odpowiedzialne za skompresowanie i zapisanie oraz odczyt i dekompresję strumienia wideo.
W standaryzację kodeków zaangażowały się dwie duże instytucje normalizacyjne: ISO i ITU-T (Międzynarodowa Unia Telekomunikacji). Historię publikowanych przez nie standardów przedstawia diagram 4.
Rysunek 4: historia kodeków stosowanych w przemyśle – źródło: [Sullivan]Sullivan
Ponieważ istnieje ogromna liczba kodeków, zarówno stworzonych przez międzynarodowe instytucje, jak i przez amatorów, przedstawione zostaną tylko najważniejsze z nich.
Ten mało znany standard został opracowany z myślą o przesyłaniu wideo-rozmów i wideokonferencji. Potrafi przesyłać ruchome obrazy o rozmiarach 352x288 pikseli (CIF – Common Intermediate Format) i 176x144 pikseli (QCIF – Quarter CIF). Metody kompresji zastosowane w tym standardzie stały się podstawą dla późniejszych rozwiązań, takich jak MPEG, MPEG-2 i MPEG-4. Najważniejsze rozwiązania w H.261 to:
• kompensacja ruchu bloków 16x16 pikseli – patrz diagram 5,
• dyskretna transformata cosinusowa (DCT) na blokach 8x8 pikseli – metoda sprawdziła się w kompresji J-PEG,
• skanowanie zygzakiem.
Rysunek 5: jednokierunkowa kompensacja ruchu – źródło: [Sullivan]Sullivan
Rozmiary strumienia były przygotowane z myślą o przesyłaniu przez łącza ISDN – ich szybkość była wielokrotnością 64 kbit/s (od 64 do 2048 kbit/s). Międzynarodowa Unia Telekomunikacji (ITU-T) zatwierdziła standard H.261 w 1990 roku [Sullivan].
Rysunek 6: dwukierunkowa kompensacja ruchu – źródło: [Sullivan]Sullivan
• MPEG – używany w płytach VideoCD, zapewnia jakość porównywalną z taśmą VHS. Najważniejszą wartością dodaną w porównaniu do H.261 jest dwukierunkowa kompensacja ruchu (patrz diagram 6), w której klatki „B” są wyliczane nie tylko z poprzedniej, ale też z następnej klatki.
• Motion JPEG – nieformalny standard oznaczający strumień MPEG, MPEG-2 lub Quicktime, całkowicie pozbawiony kompresji międzyklatkowej (np. kompensacji ruchu) – składający się wyłącznie z klatek „I” (patrz diagramy 5 i 6). Inaczej mówiąc, jest to film złożony z obrazków JPEG poukładanych jeden za drugim. Ponieważ zapis tego rodzaju strumienia nie wymaga dużej mocy obliczeniowej to format ten znalazł zastosowanie w urządzeniach, takich jak kamerki internetowe.
• MPEG-2 (H.262) – nosi dwie nazwy nadane mu odpowiednio przez ISO i ITU-T i jest pierwszym standardem kodowania filmów uzgodnionym wspólnie przez obie organizacje. Jest obecnie powszechnie wykorzystywany – między innymi na płytach DVD-Video oraz w cyfrowej telewizji DVB. Najważniejszymi cechami dodanymi w porównaniu do MPEG-1 są: wsparcie dla zapisu filmu z przeplotem (tak, jak to robią analogowe kamery) oraz wsparcie dla różnych sposobów skalowania obrazu. Do prawidłowego działania MPEG-2 wymaga strumienia danych o szybkości co najmniej 2-3 Mbit/s. W przypadku DVD jest to 6-8 MBbit/s.
• H.263 – to kodek stworzony z myślą o wideokonferencjach, który pod względem jakości, wydajności kompresji i zapotrzebowania na przepustowość łącza przewyższa swoich poprzedników. Najważniejsze pomysły zastosowane w H.263 to korekcja błędów i nadmiarowe klatki.
• MPEG-4 – to kodek, który bazował na H.263, ale dodał do niego dużo zaawansowanych rozwiązań. Został opublikowany jako zespół pod-standardów „ISO 14496”.
Zyskał popularność dzięki optymalizacji rozmiaru pliku i jakości umieszczonego w nim filmu. Dzięki temu umożliwiał zgranie zawartości płyt DVD-Video do plików o względnie mniejszych rozmiarach – z zachowaniem wysokiej jakości. MPEG-4 został zaimplementowany między innymi w kodekach DivX, Xvid i 3vix (patrz rysunek 7). Teoretycznie różne implementacje tego samego kodeka powinny dawać w rezultacie obraz tej samej jakości, niestety tak nie jest. Według testów przeprowadzonych przez serwis Doom9 najwyższą jakością odznacza się darmowa implementacja Xvid [doom9].
Rysunek 7: Logotypy popularnych kodeków stosowanych w sieciach P2P. Xvid jest darmową implementacją komercyjnego DivXa.
• H.264 (MPEG-4 AVC) – to drugi po MPEG-2 standard uzgodniony wspólnie przez ISO i ITU-T oraz noszący podwójną nazwę. Opisuje go norma „ISO 14496-10” i dlatego bywa też mylnie nazywany MPEG-10. Celem przyświecającym twórcom tego zestawu regulacji było:
• poprawienie efektywności kodowania,
• uzyskanie większej odporności na błędy (np. na utratę pakietów),
• zachowanie zdolności działania przy niskiej szybkości transferu,
• przyjazność sieciowa, która oznacza, że film zakodowany tym kodekiem może być przenoszony przez różne protokoły sieciowe i zapisywany w wielu formatach plików (kontenerach).
Film w wysokiej rozdzielczości (HD) zakodowany za pomocą H.264 może zachować tę samą jakość co MPEG-2, wymagając tylko połowy jego pasma przepustowości. Należy jednak zwrócić uwagę, że do prawidłowego działania – podobnie jak MPEG-2 – wymaga strumienia o przepustowości co najmniej 2-3 Mbit/s [Jan Rychter].
MPEG-4 AVC to cały zespół różnorodnych norm przewidujących 4 profile kodowania:
1. Baseline,
2. Main,
3. Extended,
4. High Profile.
Mimo że oficjalne zatwierdzenie standardu nastąpiło w marcu 2003 roku, do dzisiaj trwają prace nad różnymi jego rozszerzeniami, które zwiększają elastyczność i możliwość profesjonalnych zastosowań tego kodeka. W tej chwili jest on używany w:
• odtwarzaczach płyt Blue-ray jako jeden z 3 obowiązkowo obsługiwanych kodeków,
• telewizji cyfrowej DVB – w Polsce rekomendowany jako norma dla telewizji naziemnej,
• sprzedaży filmów przez internet w sklepie iTunes firmy Apple,
• oprogramowaniu Flash firmy Adobe (pełna implementacja od wersji 10).
Można się spodziewać, że H.264 znajdzie powszechne zastosowanie na całym świecie, a jego popularność przebije obecnego lidera – MPEG-2.
• RealVideo – to kodek firmy RealNetworks, który został dostosowany do przesyłania telewizji na żywo przez protokół RTSP, a także jest zapisywany w kontenerach „rm” tej samej firmy. Bazą technologiczną do rozwoju rodziny kodeków RealVideo były standardy H.263 i H.264. Do odtwarzania filmów w tym standardzie potrzebny jest odtwarzacz RealPlayer (patrz rysunek 8) lub HelixPlayer. Niestety pierwszy z nich został uznany za złośliwe oprogramowanie (ang. malware), a drugi nie jest już rozwijany.
Rysunek 8: Logotypy produktów komercyjnych: RealPlayer firmy RealNetworks i WindowsMedia firmy Microsoft.
• WMV – Windows Media Video (patrz rysunek 8) to rodzina kodeków firmy Microsoft, których technologia wywodzi się ze standardu MPEG-4. Obecnie występują 3 wersje tego produktu: WMV7, WMV8 i WMV9.
• VC-1 (WMV9AP) – to kodek Windows Media Video 9 Advanced Profile firmy Microsoft, który został opublikowany jako standard przez organizację SPMTE. Jest to rozbudowana wersja kodeka WMV9, ale nie jest z nim całkowicie zgodna. VC-1 stał się jednym z trzech obowiązkowych kodeków wymaganych od urządzeń BlueRay i HD DVD.
• VP6 – kodek stworzony przez firmę On2 Technologies został zastosowany w formacie FlashVideo przez firmę Macromedia (obecnie Adobe) i jest używany w oprogramowaniu FlashPlayer od wersji 8. Niezwykłymi cechami tego kodeka, na tle konkurencji, była wysoka jakość obrazu i krótki czas oczekiwania od rozpoczęcia buforowania do rozpoczęcia odtwarzania filmu. Te zalety doprowadziły do ogólnoświatowego sukcesu oprogramowania FlashVideo, które jest obecnie powszechnie stosowane do zamieszczania filmów na stronach internetowych.
• Theora – wywodzi się od kodeka firmy On2 o nazwie VP3, jest to otwarty standard, całkowicie wolny od opłat i ograniczeń patentowych. Jest dostępny darmowy aplet Javy o nazwie „Cortado”, który umożliwia odtwarzanie Theory na stronie internetowej. Pod względem technologicznym Theora musi uznać wyższość kodeka On2 VP6.
• Dirac – otwarty standard, stworzony i wdrażany przez telewizję BBC. Jest rozwijany na zasadach wolnego oprogramowania. Najbardziej znanym jego zastosowaniem była transmisja Olimpiady w Pekinie. Pod względem technologicznym ten kodek należy do innej rodziny niż wszystkie dotychczas opisane. Zamiast dyskretnej transformaty cosinusowej zastosowano w nim trójwymiarową transformację falkową. Mimo iż początkowo był projektowany, aby odwzorować jakość analogowego sygnału PAL, nadaje się także do przekazywania sygnału bardzo wysokiej rozdzielczości. Jego zaletami są jakość obrazu porównywalna z H.264 – obecnym liderem rynku – i możliwości rozbudowy do wyższych wymagań w przyszłości.
Kontenery są często mylone z kodekami. Oznaczają po prostu format zapisu pliku. Ich główną funkcją jest umożliwienie synchronizacji obrazu, dźwięku i napisów. Dlatego wewnątrz kontenerów strumienie danych są podzielone na części, a następnie ułożone tak, że różne typy strumieni przeplatają się ze sobą.
Popularne kontenery wideo to na przykład:
• AVI – Audio Video Interleave – znany format z rozszerzeniem „.avi”, zaproponowany przez firmę Microsoft w 1992 roku i od tamtej pory cieszący się największą popularnością wśród kontenerów. Ogromna liczba kodeków jest dostosowana do przenoszenia w plikach AVI, co dodatkowo zwiększa ich popularność. Jednak format ten starzeje się i w porównaniu do nowszych rozwiązań brakuje mu możliwości przenoszenia napisów i obsługi innego kształtu pikseli niż kwadratowe.
• MPEG-PS, MPEG-TS – pliki zwykle z rozszerzeniami „.mpg” lub „.vob” (na płytach DVD). Te kontenery zostały zdefiniowane razem ze standardami MPEG i MPEG-2. Są stosowane w produktach, takich jak: DVD, HD DVD i Blue-Ray. Odtwarzacze tego formatu są dostępne na wszystkich popularnych systemach operacyjnych.
• RealMedia – pliki zwykle z rozszerzeniami „.rm” lub „.rmvb”. Pierwsze z rozszerzeń odpowiada formatowi przechowującemu strumienie o stałej przepływności, a drugie o zmiennej przepływności. Wdrożony przez firmę RealNetworks w celu przechowywania danych zakodowanych przy użyciu kodeków RealAudio i RealVideo.
• QuickTime – pliki zwykle z rozszerzeniami „.mov” lub „.mp4” (patrz rysunek 9). Format wydany przez firmę Apple jako część produktu „QuickTime Multimedia Framework“. Spośród innych formatów wyróżnia go przydatność do edycji filmów – po dokonaniu zmian w strumieniach plik może być natychmiast zapisany bez ponownego przekodowywania.
Rysunek 9: Logotyp kontenera „Quicktime” firmy Apple
• OGG – pliki zwykle z rozszerzeniami „.ogg” lub „.ogv”; otwarty standard, darmowy i wolny od ograniczeń patentowych – rozwijany przez fundację Xiph.Org do współpracy z kodekami wideo Theora, Dirac i dźwięku Vorbis, Speex. Oprócz strumieni audio i wideo kontener Ogg może także przechowywać tekst zawierający np. napisy z transkrypcją filmu.
• Matroska – pliki zwykle z rozszerzeniem „.mkv”. Podobnie jak Ogg jest to projekt rozwijany na zasadach wolnego oprogramowania. Autorzy kontenera mają na względzie rozszerzalność i możliwość dostosowania do zmieniających się wymagań w przyszłości.
• ASF – pliki zwykle z rozszerzeniem „.wmv”. Advanced Systems Format został zaprojektowany przez firmę Microsoft i wydany jako część produktu „Windows Media Framework”. Kontener ten jest stosowany w produktach Microsoftu zarówno do zapisu plików, jak i do przesyłania strumieni wideo przez sieć.
• 3GP – pliki zwykle z rozszerzeniem „.mp4” lub „.3gp”. Jest to uproszczona wersja kontenera QuickTime dostosowana do możliwości telefonów komórkowych i palmtopów. Format został przygotowany do współpracy z urządzeniami w standardzie UMTS – telefonii 3 generacji.
Copyright © 2008-2010 EPrace oraz autorzy prac.