TopSłownik technicznyH.264 - standard kodowania obrazu

H.264 - standard kodowania obrazu

W 2003 roku został przyjęty standard H.264, znany także jako AVC (Advanced Video Coding), jako 10. część standardu MPEG-4.

 

Standard H.264, podobnie jak we wcześniejszych MPEG-2 oraz MPEG-4, wykorzystuje kompresję różnicową, tzn. aktualny obraz jest tworzony na podstawie jednego lub kilku poprzednich oraz różnic, które wystąpiły pomiędzy nimi w tym czasie. Jednak w H.264 zastosowano szereg ulepszeń. Z jednej strony znacząco zwiększają one zapotrzebowanie na moc obliczeniową podczas kodowania, lecz z drugiej istotnie redukują prędkość transmisji przy niezmienionej jakości obrazu.

 

Ważnym elementem kompresji H.264 jest przewidywanie obrazów (predykcja międzyobrazowa). Polega ona na przewidywaniu kolejnego kodowanego obrazu na podstawie obrazów poprzednio zakodowanych i zdekodowanych. Działa ona dokładnie tak samo jak w koderze i dekoderze, dzięki czemu dekoder może odtworzyć zakodowany obraz na podstawie błędu przewidywania obrazu, wyznaczonego w koderze jako różnica między oryginalnym obrazem kodowanym a jego predykcją. Nie przesyła się zatem następujących po sobie obrazów, a jedynie błędy predykcji (przewidywania), które przy dobrych algorytmach nie zawierają dużo informacji i można je zakodować za pomocą niewielu bitów.

 

W kompresji H.264 możemy wyróżnic 3 rodzaje ramek: I – Intra Coded, P – Predictive, B – Bi-predictive.

 

Rys. 1. Przykładowy zapis poszczególnych klatek sekwencji, w której występują trzy rodzaje ramek

 

t - Czas

Ramki typu I zawierają kompletne informacje o danym obrazie. Ramki P zawierają informacje o zmianach pomiędzy sąsiednimi ramkami P lub I (wynikowy obraz tworzony jest na podstawie właśnie tych informacji). Ramki B są to obrazy kodowane z wykorzystaniem dwóch obrazów odniesienia, mianowicie jednego przed obrazem kodowanym i jednego prezentowanego w danej sekwencji po obrazie kodowanym. W obrazach typu B najbardziej podobne bloki (makrobloki) próbek są wybierane z obu obrazów odniesienia albo są wyznaczane jako średnie z bloków z obu obrazów odniesienia. Rozmiar poszczególnych ramek zależy oczywiście od wielu czynników. Można przyjąć w przybliżeniu, że ramki P stanowią około 60% rozmiaru ramek typu I, a ramki B mogą mieć tylko 10% ich objętości. Można zatem łatwo wywnioskować, że im więcej w danej sekwencji występuje po sobie ramek typu B, tym większa jest jej kompresja. Niekoniecznie wiąże się to z pogorszeniem jakości obrazu.

 

Poniżej zaprezentowano przykładowe porównanie jakości dla trzech standardów kompresji jako szczytową wartość stosunku sygnał-szum (PSNR — Peak Signal-to-Noise Ratio) w zależności od szybkości transmisji bitów.

 

Rys. 2. Porównanie formatów H.264, MPEG-4 i JPEG

 

X - Szybkość transmisji bitów

Y - Szczytowa wartość stosunku sygnał-szum (PSNR)

Poniżej wymieniono niektóre z ulepszeń i modyfikacji wyróżniające H.264 na tle starszych standardów, wykorzystujących kodowanie hybrydowe z międzyobrazową predykcją (międzyobrazowym przewidywaniem) z kompensacją ruchu.

 

1. Zmienny rozmiar bloków dla kompensacji ruchu. Kompensacji ruchu można dokonywać nie tylko w odniesieniu do całych makroblokoów, ale także dla ich części. Przypisywane są im wtedy osobne wektory ruchu. Najmniejsze bloki mają rozmiar (4x4) punkty luminancji. Dzięki temu uzyskuje się mniejsze błędy predykcji, które mogą być przedstawione za pomocą niewielu bitów.


2. Przewidywanie ruchu z dokładnością do 1/4 odstępu próbkowania obrazu. Duża dokładność wektorów ruchu pozwala na bardziej precyzyjną predykcję z kompensacją ruchu.


3. Wykorzystywanie wielu obrazów odniesienia - wykorzystanie pamięci długookresowej, przydatnej w predykcji obszarów odsłanianych.


4. Kierunkowa predykcja (przewidywanie) wewnątrzobrazowe dla makrobloków kodowanych wewnątrzobrazowo.


5. Filtr deblokujący usuwa efekty blokowe, pojawiające się w obrazach predykcji przy silnej kompresji.


6. Transformacja kosinusowa operuje na małych blokach - (4x4) próbek luminancji oraz (2x2) próbek chrominancji, co pozwala na lepszą adaptację do lokalnych właściwości obrazu.


7. Adaptacyjne kodowanie entropijne: CAVLC (Context-Adaptive Variable Length Coding) – ze zmienną długością słowa oraz CABAC (Context-Based Binary Arithmetic Coding) – bardziej skomplikowane adaptacyjne kodowanie arytmetyczne, pozwalające na uzyskanie silniejszej kompresji.

Aby w pełni wykorzystać możliwości standardu H.264, w koderze powinny być dokonywane optymalne wybory pomiędzy różnymi możliwymi trybami kodowania. Zastosowanie H.264 ma duże znaczenie dla systemów CCTV, gdyż zmniejszenie prędkości transmisji obrazów bez utraty jakości umożliwia transmisję dla większej liczby kanałów w lepszej jakości.