H.264/MPEG-4 AVC

standard kodowania wideo

AVC (ang. Advanced Video Coding) – standard kodowania sekwencji wizyjnych przyjęty w roku 2003 jako 10. część standardu ISO MPEG-4 oraz jako rekomendacja ITU-T H.264. Projekt x264 zajmuje się stworzeniem otwartej implementacji tego standardu w postaci kodera. Istnieje również OpenH264 autorstwa Cisco na licencji Simplified BSD License[1].

Schemat blokowy warstwy kodowania wideo kodera H.264 z oceną jakości percepcyjnej

Efektywność kompresji formatu AVC dzięki wprowadzeniu nowych rozwiązań jest o wiele większa niż poprzednich standardów: MPEG-1, MPEG-2 czy MPEG-4 część 2 (którego popularne implementacje to DivX i Xvid).

Innowacje

edytuj

Do najważniejszych innowacji AVC można zaliczyć:

Profile kompresji

edytuj
  • Profil PodstawowyBaseline Profile (BP) Głównie dla aplikacji o najniższym wykorzystaniu kodera, ten profil wykorzystywany jest przede wszystkim do wideokonferencji oraz urządzeń i aplikacji przenośnych.
  • Profil GłównyMain Profile (MP) Uniwersalny dla klientów przekazów strumieniowych np. satelitarnych DVB-S2 oraz naziemnych DVB-T i DVB-T2 o rozdzielczości nieprzekraczającej 720×576 pikseli.
  • Profil WysokiHigh Profile (HiP) Głównie wykorzystywany dla klientów przekazów strumieniowych o wysokiej rozdzielczości np. satelitarnych DVB-S2 oraz naziemnych DVB-T i DVB-T2. Skuteczniejszy od Main Profile, ponieważ jest w stanie w pełni skorzystać z rozdzielczości 1280×720i, 1280×720p oraz 1920×1080i. Stosowany jest również do kompresji filmów na dyskach HD DVD i Blu-ray.

Charakterystyka

edytuj
Ograniczony

Podstawowy

Podstawowy Rozszerzony Główny Wysoki Wysoki 10 Wysoki 4:2:2 Wysoki 4:4:4

Predykcyjny

I and P Slices Tak Tak Tak Tak Tak Tak Tak Tak
B Slices Nie Nie Tak Tak Tak Tak Tak Tak
SI and SP Slices Nie Nie Tak Nie Nie Nie Nie Nie
Multiple Reference Frames Tak Tak Tak Tak Tak Tak Tak Tak
In-Loop Deblocking Filter Tak Tak Tak Tak Tak Tak Tak Tak
CAVLC Entropy Coding Tak Tak Tak Tak Tak Tak Tak Tak
CABAC Entropy Coding Nie Nie Nie Tak Tak Tak Tak Tak
Flexible Macroblock Ordering (FMO) Nie Tak Tak Nie Nie Nie Nie Nie
Arbitrary Slice Ordering (ASO) Nie Tak Tak Nie Nie Nie Nie Nie
Redundant Slices (RS) Nie Tak Tak Nie Nie Nie Nie Nie
Data Partitioning Nie Nie Tak Nie Nie Nie Nie Nie
Interlaced Coding (PicAFF, MBAFF) Nie Nie Tak Tak Tak Tak Tak Tak
4:2:0 Chroma Format Tak Tak Tak Tak Tak Tak Tak Tak
Monochrome Video Format (4:0:0) Nie Nie Nie Nie Tak Tak Tak Tak
4:2:2 Chroma Format Nie Nie Nie Nie Nie Nie Tak Tak
4:4:4 Chroma Format Nie Nie Nie Nie Nie Nie Nie Tak
8 Bit Sample Depth Tak Tak Tak Tak Tak Tak Tak Tak
9 and 10 Bit Sample Depth Nie Nie Nie Nie Nie Tak Tak Tak
11 to 14 Bit Sample Depth Nie Nie Nie Nie Nie Nie Nie Tak
8x8 vs. 4x4 Transform Adaptivity Nie Nie Nie Nie Tak Tak Tak Tak
Quantization Scaling Matrices Nie Nie Nie Nie Tak Tak Tak Tak
Separate Cb and Cr QP control Nie Nie Nie Nie Tak Tak Tak Tak
Separate Color Plane Coding Nie Nie Nie Nie Nie Nie Nie Tak
Predictive Lossless Coding Nie Nie Nie Nie Nie Nie Nie Tak
Ograniczony

Podstawowy

Podstawowy Rozszerzony Główny Wysoki Wysoki 10 Wysoki 4:2:2 Wysoki 4:4:4

Predykcyjny

Poziomy

edytuj
Numer poziomu Max liczba makrobloków na sekundę Max rozmiar klatki (makrobloków) Max bit rate wideo (VCL) dla profili Podstawowego, Rozszerzonego i Głównego Max bit rate wideo (VCL) dla profilu Wysokiego Max bit rate wideo (VCL) dla profilu Wysokiego 10 Max bit rate wideo (VCL) dla profili Wysoki 4:2:2 i Wysoki 4:4:4 Predykcyjny Przykłady najwyższych możliwych rozdzielczości @
liczby klatek
(max pomieszczenie klatek)
w Poziomie
1 1485 99 64 kbit/s 80 kbit/s 192 kbit/s 256 kbit/s 128×96@30.9 (8)
176×144@15.0 (4)
1b 1485 99 128 kbit/s 160 kbit/s 384 kbit/s 512 kbit/s 128×96@30.9 (8)
176×144@15.0 (4)
1.1 3000 396 192 kbit/s 240 kbit/s 576 kbit/s 768 kbit/s 176×144@30.3 (9)
320×240@10.0 (3)
352×288@7.5 (2)
1.2 6000 396 384 kbit/s 480 kbit/s 1152 kbit/s 1536 kbit/s 320×240@20.0 (7)
352×288@15.2 (6)
1.3 11880 396 768 kbit/s 960 kbit/s 2304 kbit/s 3072 kbit/s 320×240@36.0 (7)
352×288@30.0 (6)
2 11880 396 2 Mbit/s 2.5 Mbit/s 6 Mbit/s 8 Mbit/s 320×240@36.0 (7)
352×288@30.0 (6)
2.1 19800 792 4 Mbit/s 5 Mbit/s 12 Mbit/s 16 Mbit/s 352×480@30.0 (7)
352×576@25.0 (6)
2.2 20250 1620 4 Mbit/s 5 Mbit/s 12 Mbit/s 16 Mbit/s 352×480@30.7(10)
352×576@25.6 (7)
720×480@15.0 (6)
720×576@12.5 (5)
3 40500 1620 10 Mbit/s 12.5 Mbit/s 30 Mbit/s 40 Mbit/s 352×480@61.4 (12)
352×576@51.1 (10)
720×480@30.0 (6)
720×576@25.0 (5)
3.1 108000 3600 14 Mbit/s 14 Mbit/s 42 Mbit/s 56 Mbit/s 720×480@80.0 (13)
720×576@66.7 (11)
1280×720@30.0 (5)
3.2 216000 5120 20 Mbit/s 25 Mbit/s 60 Mbit/s 80 Mbit/s 1280×720@60.0 (5)
1280×1024@42.2 (4)
4 245760 8192 20 Mbit/s 25 Mbit/s 60 Mbit/s 80 Mbit/s 1280×720@68.3 (9)
1920×1080@30.1 (4)
2048×1024@30.0 (4)
4.1 245760 8192 50 Mbit/s 62.5 Mbit/s 150 Mbit/s 200 Mbit/s 1280×720@68.3 (9)
1920×1080@30.1 (4)
2048×1024@30.0 (4)
4.2 522240 8704 50 Mbit/s 62.5 Mbit/s 150 Mbit/s 200 Mbit/s 1920×1080@64.0 (4)
2048×1080@60.0 (4)
5 589824 22080 135 Mbit/s 168.75 Mbit/s 405 Mbit/s 540 Mbit/s 1920×1080@72.3 (13)
2048×1024@72.0 (13)
2048×1080@67.8 (12)
2560×1920@30.7 (5)
3680×1536@26.7 (5)
5.1 983040 36864 240 Mbit/s 300 Mbit/s 720 Mbit/s 960 Mbit/s 1920×1080@120.5 (16)
4096×2048@30.0 (5)
4096×2304@26.7 (5)
5.2 2073600 36864 240 Mbit/s 300 Mbit/s 720 Mbit/s 960 Mbit/s 1,920×1,080@172.0 (16)

3,840×2,160@66.8 (5)

4,096×2,160@60.0 (5)

Numer poziomu Max liczba makrobloków na sekundę Max rozmiar klatki (makrobloków) Max bit rate wideo (VCL) dla profili Podstawowego, Rozszerzonego i Głównego Max bit rate wideo(VCL) dla profilu Wysokiego Max bit rate wideo(VCL) dla profilu Wysokiego 10 Max bit rate wideo(VCL) dla profili Wysokiego 4:2:2 i Wysokiego 4:4:4 Predykcyjny Przykłady najwyższych możliwych rozdzielczości @
liczby klatek
(max pomieszczenie klatek)
w Poziomie

Współczesność

edytuj

Obecnie standard kodowania H.264/AVC wykorzystywany jest do transmisji telewizji wysokiej rozdzielczości w wielu cyfrowych platformach satelitarnych, oraz, między innymi, jako jeden z podstawowych formatów w oprogramowaniu QuickTime.

Głównym konkurentem H.264/AVC jest WMV firmy Microsoft, przyjęty przez amerykańskie stowarzyszenie SMPTE jako standard VC-1, oraz AVS opracowany przez konsorcjum stworzone przez rząd chiński.

W wyniku rezultatów badań nad udoskonalaniem formatu H.263, grupa JVT (Joint Video Team), łącząca zespoły ekspertów z organizacji ISO oraz ITU, rozpoczęła prace nad standardem kodowania H.26L, który uległ tak dalekim modyfikacjom w porównaniu do algorytmu H.263, że został następnie przemianowany na H.264.

Polski Komitet Normalizacyjny opracował polskie tłumaczenie normy ISO/IEC 14496-10:2004 (standardu kodowania H.264/AVC)[2].

Patenty

edytuj

Ostatni patent wygasa 29 listopada 2027[3]. Dlatego też istnieją kampanie promujące porzucenie tego formatu na rzecz Ogg Theora i WebM. Powodem jest także fakt, że o ile użycie do transmisji niekomercyjnej filmu zapisanego w tym formacie w Internecie jest bezpłatne, to samo oprogramowanie do odtworzenia musi pokryć opłatę licencyjną. Inną propozycją (np. Nokii)[4] jest wykorzystanie formatu ITU h.261, którego część została zdefiniowana w lub przed listopadem 1988. Definicja z 1990 H.261 miała pozostałe fragmenty niezawarte w definicji z 1988[5].

Przypisy

edytuj

Linki zewnętrzne

edytuj