Przejdź na skróty do treści. | Przejdź do nawigacji

Zapamiętaj mnie Przypomnij hasło Rejestracja
Wersja mobilna
Newsletter
Zgłoś uwagę
RSS

Artykuły

rozwiń
Strona główna Artykuły Innowacje H.264: Standard dla wszystkich filmów

Kodeki wideo

H.264: Standard dla wszystkich filmów

Od internetowych klipów przez przenośne odtwarzacze wideo do filmów HD – nowoczesny format wideo H.264 działa na wszystkich platformach. I gwarantuje znacznie wyższą jakość niż kodek dinozaur MPEG-2.

Apple stosuje go w iPodach z funkcją wideo i zwiastunach sieciowych, natomiast Adobe we Flash Playerze. Również gdy oglądamy filmiki na YouTube, w polskiej telewizji HD czy programach IPTV przekazy przygotowuje właśnie on – kodek H.264. Od rozwiązań HD do sieciowych klipów – format ten, znany również jako AVC (Advanced Video Coding), staje się najważniejszym standardem wideo, który wypiera MPEG-2. Nic dziwnego, bowiem H.264 ma od strony technicznej znacznie więcej do zaoferowania: dobrze działa przy niskich transferach danych i na odtwarzaczach przenośnych, a także sprawdza się podczas kodowania filmów HD i w telewizji cyfrowej.

Standardem dla płyt HD staje się Blu-ray, coraz mocniej wypierający DVD. Dla niebieskiego krążka przewidziano 3 kodeki, ale i na tym polu H.264 pobił konkurentów – VC-1 Microsoftu pozostaje zjawiskiem marginesowym, zaś MPEG-2 przepadł z kretesem. Podobnie rzecz ma się z kamerami. Nawet DivX w wersji 7 przesiada się na H.264. Co więcej, są duże szanse na to, że jeszcze w tym roku H.264 będzie masowo stosowany w sprzętowych odtwarzaczach BD.

Podstawy: Jak działają kodeki wideo

H.264 nie wynalazł kodowania wideo na nowo. Zasadniczo działa tak samo jak MPEG-2: film to nic innego jak obrazy (ramki) odtwarzane w tempie – w zależności od standardu  – pomiędzy 24 a 30 razami na sekundę. Kodek MPEG-2 grupuje ten strumień w tzw. GOP-y (Group of Pictures), zwykle po 12 klatek dla każdej sekundy.

Pierwszy obraz każdego GOP-a to Intra-Frame (I-Frame). Kodek kompresuje ją jako specyficzny JPEG. W tym celu dzieli ramkę na makrobloki o wielkości 16×16 pikseli, a następnie w przypadku każdego przeprowadza konwersję do przestrzeni kolorów YCrCb, zapisując piksele w postaci: (Y, Cb, Cr), gdzie Y oznacza luminancję (jasność), a dwie pozostałe są składowymi koloru niebieskiego (b) oraz czerwonego (r). Wydzielone wartości łączy się na nowo. Ponieważ oko ludzkie lepiej postrzega drobne zmiany jasności niż kolorów, ta pierwsza ma wyższy priorytet i zostaje przepisana bez strat, czyli jako makroblok 16×16. W obydwu kanałach barw odrzuca się natomiast wartość co drugiego piksela, więc do ich opisu wystarczą dwie matryce 8×8 albo jedna 16×8. Otrzymane wartości są przekształcane w dziedzinę częstotliwości, która opisuje, jak mocno składowe jasności i obydwu kolorów zmieniają się w makrobloku. W procesie kwantyzacji odrzuca się następnie najrzadziej występujące ekstrema.

Pozostałe ramki w GOP-ie to tak zwane Inter-Frame’y. Kodek tworzy je na podstawie I-Frame’a za pomocą wektorów ruchu (Motion Estimation). Inter-Frame’y są dwojakiego rodzaju i inaczej się je koduje: makrobloki w P-Frame’ach (Predictive) wykorzystują I-Frame albo poprzednią P-Frame jako obraz odniesienia; B-Frame’y (Bi-Predictive) używają do tego celu zarówno poprzednich, jak i następnych I- albo P-Frame’ów.

Zaletą B-Frame’ów jest to, że mogą opisywać za pomocą wektorów ruchu części obrazów, które wywodzą się również z ramek następujących po nich. W efekcie B-Frame’y zajmują najmniej miejsca ze wszystkich ramek. Co to oznacza? Im więcej B-Frame’ów w kodowanym filmie, tym mniejsza będzie jego wynikowa wielkość.

Tak jak w przypadku I-Frame’ów, kodek zapamiętuje w makroblokach P- i B-Frame’ów oprócz wektorów ruchu również częstotliwości. Ale nie jako wartości absolutne, lecz różnicowe, w stosunku do bloku odniesienia, z którego wektor ruchu został wyprowadzony.

Transformacja: Mniejsze bloki to wyższa jakość

Dotąd pisaliśmy wyłącznie o wspólnych cechach kodeków MPEG-2 i H.264. Jednak gdy mowa o szczegółach, pojawiają się podstawowe różnice dotyczące transformacji w dziedzinę częstotliwości. Kodek MPEG-2 dzieli makrobloki na bloki o wielkości 8×8, na których przeprowadza następnie dyskretną transformację cosinusową (DTC). Reguła podziału jest następująca: dominujące obszary obrazu opisują niskie częstotliwości, a detale – wysokie.

Po transformacji blok zostaje posortowany na nowo, jako macierz współczynników DC. Wartość z jej lewego górnego rogu opisuje zarówno najniższą częstotliwość, jak i przeciętną jasność bloku. Ponieważ istnieje duże podobieństwo pomiędzy leżącymi obok siebie współczynnikami DC, kodek zapamiętuje je nie jako wartości absolutne, lecz jako różnicę w stosunku do poprzednika. Pozostałe współczynniki sortowane są tak, że w kierunku na prawo i w dół umieszcza się te odpowiadające coraz wyższym częstotliwościom, które kodują całe bogactwo detali. Powód? Przy wysokich częstotliwościach oko gorzej rozróżnia niuanse jasności i kolorów, więc ich wartości dają się bardziej zaokrąglać bez straty jakości.

H.264 odżegnuje się od zaokrągleń stoswanych w DC i stosuje transformację całkowitą (Integer Transformation) na blokach 4×4, a przy lepszej jakości 8×8. Przesiadka na transformację 4×4 jest konieczna, ponieważ w przeciwieństwie do MPEG-2, H.264 potrafi kodować z jej użyciem również Intra- i Inter-Frame’y. Przewaga mniejszych bloków uwidacznia się, gdy w określonej części ramki kwantyzacja odcina zbyt wiele informacji o obrazie. Przesiadka ma jeszcze inną zaletę: transformacja całkowita stosowana w H.264 pozwala na dokładniejsze odtworzenie podziału częstotliwości niż DCT.

Kwantyzacja: Elastyczne wielkości

Właściwa redukcja danych odbywa się w następnym kroku: chodzi o kwantyzację. W najlepszym przypadku kodek dopasowuje wartości częstotliwości do wymagań ludzkiego postrzegania – niskie zapamiętuje, a większość wysokich usuwa ze strumienia danych. W tym celu na każdy blok nakłada macierz kwantyzacji.

Kodek MPEG-2 dzieli przy tym poszczególne wartości częstotliwości przez odpowiadające jej parametry macierzy. Po drodze często gubi się przez to najwyższe częstotliwości. Inaczej jest w przypadku H.264, który nie dzieli wartości, lecz zastępuje tę operację dodawaniem i odejmowaniem macierzowym. Ma to tę zaletę, że podczas tego procesu w H.264 nie występują błędy zaokrągleń. Dla parametrów kwantyzacji H.264 ma aż 51 stopni. Nie zwiększają się one jednak liniowo, jak w MPEG-2, lecz logarytmicznie. To oznacza, że dla niskich częstotliwości są one dokładniejsze niż dla wysokich – co bardziej odpowiada postrzeganiu ludzkiego oka.

Ponieważ H.264 obsługuje zarówno bloki o wielkości 8×8, jak i 4×4, potrzebuje dla każdego z tych rozwiązań macierzy kwantyzacji. W sumie musi mieć ich aż cztery, ponieważ używa innych do Intra-Frame’ów, a innych do Inter-Frame’ów. Powód? Wartości różnicowe Inter-Frame’ów dają się mocniej kompresować. Stąd parametry kwantyzacji są w nich dużo wyższe niż w Intra-Frame’ach.

Standardowa macierz H.264 sama w sobie zapewnia dobre wyniki nawet przy mocno zróżnicowanych szybkościach przepływu danych. Ale doświadczony użytkownik może zastosować własną macierz, która sprawdzi się nawet w przypadku tak wysokich transferów, do jakich dochodzi w Blu-rayu. Zostanie ona zapamiętana w kodowanym filmie, aby dekoder mógł ją wykorzystać podczas odtwarzania, stosując poprawną kwantyzację odwrotną. Należy jednak pamiętać, że niestandardowa kwantyzacja odgrywa istotną rolę w redukcji danych. Jeśli kodek w odtwarzaczu nie będzie umiał jej prawidłowo odtworzyć, jakość obrazu może znacznie się pogorszyć.

I-Frame’y: Efektywniejsza kompresja

Kodek MPEG-2 po przeprowadzeniu DCT i kwantyzacji kończy pracę nad I-Frame’em. H.264 stosuje dodatkowo predykcję przestrzenną (Spatial Prediction), która jeszcze mocniej kompresuje ramki. Podobnie jak współczynniki DC związane z MPEG-2 albo JPEG, wszystkie wartości opisuje się w tym przypadku jako różnice pomiędzy sąsiednimi blokami. Ponieważ kodek zaczyna pracę od lewego górnego rogu każdej ramki, umiejscowione tam i przetworzone już makrobloki stają się odniesieniem dla pozostałych.

Dodaj komentarz 7 komentarzy
domeks18
domeks18 2009.06.29 13:53
Dobry artykuł, wreszcie coś dla bardziej zainteresowanych.
kruper11
kruper11 2009.06.29 14:19
bardzo ciekawy art... pozdrawiam ;)
Sewer
Sewer 2009.06.29 18:26
Artykuł bardzo dobry i ciekawy.
wojtekwx
wojtekwx 2009.06.29 21:11
świetnie, że niektóre technologie są wypierane przez nowsze... MPEG-2 to rzeczywiście dinozaur, a wymagania HD są o wiele większe...
Gość IP: 83.17.64.* 2009.11.10 01:14
Swietny artykul. Polecam kazdemu kto chce rozpoczac przygode z H264:D
magisterek
magisterek 2009.11.11 17:53
Spośród wspomnianych ... testowałem Nero Digital, Main Concept, Divx7 orax x264. Pierwszy mimo wszystkich ustawień na maxa robi to naprawdę tandetnie, Main Concept ma plus za prędkość, jakość na średnim poziomie. Divx7 jest daleko w tyle. Na największą uwagę zasługuje nadal x264 - uzywam na co dzień łącznie z pakietem MeGui, mnogość profili, autoaktualizacje, open-source, pełna konfiguracja z każdym detalem pobija konkurencję na łeb i na szyję.
janus_w
janus_w 2010.12.02 14:24
Najlepszym i pierwszym, który daje filmy w super jakości serwisem był i jest YourLiveCinema.TV (Kinol.TV YourCinema.TV) a daje wszystkie filmy przekodowane najlepszym na świecie koderem, a więc H.264 - jego implementacją, czyli x264. Jak jeszcze nie znacie, to poznajcie, bo filmy tam puszczają już ponad 3,5 roku. Najpierw używali kodera DivX w serwisie NAPISY.info, a od ponad dwóch lat używają kapitalnego H.264 i domen wyżej podanych. Jak nie znacie, to zobaczcie i potem się wypowiedzcie! Naprawdę warto bo wszystko za frico tam mają! :)
AUTOR: edward krzywy
DODANO: 29.06.2009
LICZBA WYŚWIETLEŃ: 16853
Sonda
Wyraź swoją opinię

Telefony

Play.pl
Cena: 1.00
  • Dotykowy wyświetlacz 3,2 cala
  • Obsługa serwisów społecznościowych
  • Wi-Fi oraz GPS
  • Aparat fotograficzny 5 Mpix
Cena: 1.00
  • Konsola PSP-E1000
  • Cztery przyciski akcji
  • Wyjście słuchawkowe i złącze USB
  • Wyświetlacz z powłoką antyodblaskową
CENEO Kup najtaniej
devolo dLAN duo Starter Kit devolo dLAN duo Starter Kit
Dostępny w 3 sklepach
Sprawdź CENY tego produktu
Apple MacBook Air (MC965PL/A) Apple MacBook Air (MC965PL/A)
Dostępny w 32 sklepach
Sprawdź CENY tego produktu
Black Point Q2612A LJ 1010/1012/1015/1018/1020/3015 Black Point Q2612A LJ 1010/1012/1015/1018/1020/3015
Dostępny w 66 sklepach
Sprawdź CENY tego produktu
Philips 42PFL3606 Philips 42PFL3606
Dostępny w 26 sklepach
Sprawdź CENY tego produktu

Video

nowe filmy