H.264,MPEG-4 Part 10, sauAVC (de laCodareVideoAvansată), este un standard decodec video care se remarcă printr-o rată decompresie ridicată. Unencoder H.264 poate, fără a compromite calitatea imaginii, să reducă dimensiunea unuifișiervideodigital cu mai mult de 80% în comparație cu formatul MotionJPEG și cu 50% mai mult decât cu standardulMPEG-4. Acest lucru înseamnă că banda de transmisie devine mai încăpătoare, iar spațiul de stocare se reduce în mod semnificativ. Este de așteptat ca în următorii ani, H.264 să devină principalul standard decompresie video.
A fost scris de cătreVideo Coding Experts Group (VCEG) de laUniunea Internațională pentru Telecomunicații (UTI) împreună cu Moving Picture Experts Group (MPEG) de laISO/IEC, (International Electrotechnical Commission -Comisia Electrotehnică Internațională), ca produs colectiv al parteneriatului cunoscut sub numele deJoint Video Team (JVT). Standardul ITU-T H.264 și standardul ISO/IEC MPEG-4 Part 10 (fostul, ISO/IEC 14496-10) sunt identice din punct de vedere tehnic. Documentul final pentru prima versiune a standardului a fost finalizată în mai 2003.[1]
H.264 este numele corespunzător linei de standarde video H.26x aITU-T, iar AVC se înrudește cu parteaMPEG a colaborării care a definitivat standardul, și asta după ce eforturile inițiale din ITU-T denumeau standardul H.26L. De obicei, standardul este numit H.264/AVC (sau AVC/H.264 sau H.264/MPEG-4 AVC sau MPEG-4/H.264 AVC) pentru a sublinia moștenirea comună. Numele H.26L, care face referință la istoria ITU-T, este mult mai puțin cunoscut, dar se folosește totuși. Ocazional, el mai este numit și "codecul JVT", evocând organzația JVT care l-a dezvoltat. (Acest parteneriat și multiplele denumiri nu sunt un lucru nou, pentru că și codecul video cunoscut sub numele deMPEG-2 a apărut de asemenea din parteneriatul dintre MPEG și ITU-T, iar codecul video MPEG-2 este cunoscut în comunitatea ITU-T dreptH.262).
Scopul proiectului H.264/AVC a fost acela de a crea un standard care să asigure o bună calitate a imaginii în condițiile unor rate de codare a informației net inferioare (ex: jumătate sau chiar mai puțin) față de ceea ceea ce necesitau standardele anterioare (ex: față de MPEG-2,H.263, sau MPEG-4 Part 2), și asta fară să mărească prea mult complexitatea implementărilor care ar fi dus la prețuri ridicate pentru implementările practice. Un scop adiacent a fost acela de a asigura un mecanism flexibil care să permită standardului să fie utilizat pentru o gamă largă de aplicații (pentru transmisii cu rate de transfer atât reduse cât și înalte, pentru rezoluții video înalte sau joase) și de a funcționa bine cu o plajă cât mai largă de rețele și sisteme (ex: transmisii broadcast, stocări pe suportDVD, rețele cu comutareRTP/IP, și sisteme telefonice multimedia ITU-T).
JVT a încheiat recent munca de dezvoltare a unor extensii față de standardul original cunoscute sub numele de Fidelity Range Extensions (FRExt). Aceste extensii au menirea de a suporta codarea video la o rezoluție și mai înaltă prin mărirea acurateței probelor (incluzând codarea pe 10 biti și cea pe 12 biti) și informație de culoare la o rezoluție și mai înalta (incluzând structuri de probe cunoscute dreptYUV 4:2:2 șiYUV 4:4:4). Mai multe caracteristici noi au fost de asemenea introduse în proiectul Fidelity Range Extensions (precum comutația adaptativă între transformatele pe întreg între 4×4 și 8×8,matrice de cuantizare cu pondere perceptuală specifică pentru codări, codare eficientă fără pierderi între imagini, suport pentru spații de culori adiționale, și o transformată de culoare reziduală). Munca de proiectare pentru Fidelity Range Extensions a fost încheiată în iulie 2004, iar documentul a fost finalizat în septembrie 2004.
Standardul include următoarele șapte seturi de capabilități, care sunt numite profile și au diferite aplicații:
În plus, standardul conține acum patru profile adiționaleall-Intra profiles, care sunt definite ca subseturi simple ale profilelor corespunztoare. Sunt folosite pentru aplicații profesionale :
Baseline | Extended | Main | High | High 10 | High 4:2:2 | High 4:4:4 Predictive | |
---|---|---|---|---|---|---|---|
I and P Slices | Da | Da | Da | Da | Da | Da | Da |
B Slices | Nu | Da | Da | Da | Da | Da | Da |
SI and SP Slices | Nu | Da | Nu | Nu | Nu | Nu | Nu |
Multiple Reference Frames | Da | Da | Da | Da | Da | Da | Da |
In-Loop Deblocking Filter | Da | Da | Da | Da | Da | Da | Da |
CAVLC Entropy Coding | Da | Da | Da | Da | Da | Da | Da |
CABAC Entropy Coding | Nu | Nu | Da | Da | Da | Da | Da |
Flexible Macroblock Ordering (FMO) | Da | Da | Nu | Nu | Nu | Nu | Nu |
Arbitrary Slice Ordering (ASO) | Da | Da | Nu | Nu | Nu | Nu | Nu |
Redundant Slices (RS) | Da | Da | Nu | Nu | Nu | Nu | Nu |
Data Partitioning | Nu | Da | Nu | Nu | Nu | Nu | Nu |
Interlaced Coding (PicAFF, MBAFF) | Nu | Da | Da | Da | Da | Da | Da |
4:2:0 Chroma Format | Da | Da | Da | Da | Da | Da | Da |
Monochrome Video Format (4:0:0) | Nu | Nu | Nu | Da | Da | Da | Da |
4:2:2 Chroma Format | Nu | Nu | Nu | Nu | Nu | Da | Da |
4:4:4 Chroma Format | Nu | Nu | Nu | Nu | Nu | Nu | Da |
8 Bit Sample Depth | Da | Da | Da | Da | Da | Da | Da |
9 and 10 Bit Sample Depth | Nu | Nu | Nu | Nu | Da | Da | Da |
11 to 14 Bit Sample Depth | Nu | Nu | Nu | Nu | Nu | Nu | Da |
8x8 vs. 4x4 Transform Adaptivity | Nu | Nu | Nu | Da | Da | Da | Da |
Quantization Scaling Matrices | Nu | Nu | Nu | Da | Da | Da | Da |
Separate Cb and Cr QP control | Nu | Nu | Nu | Da | Da | Da | Da |
Separate Color Plane Coding | Nu | Nu | Nu | Nu | Nu | Nu | Da |
Predictive Lossless Coding | Nu | Nu | Nu | Nu | Nu | Nu | Da |
Baseline | Extended | Main | High | High 10 | High 4:2:2 | High 4:4:4 Predictive |
Număr Nivel | Macroblocks maxim per secundă | Frame size maxim(macroblocks) | Bit rate video maxim (VCL) pentru Baseline, Extended și Main Profiles | Bit rate video maxim (VCL) pentru High Profile | Bit rate video maxim (VCL) pentru High 10 Profile | Bit rate video maxim (VCL) pentru High 4:2:2 and High 4:4:4 | Exemple pentru o rezoluție mare @ frame rate (număr de frame-uri maxim stocat) pe nivel |
---|---|---|---|---|---|---|---|
1 | 1485 | 99 | 64 kbit/s | 80 kbit/s | 192 kbit/s | 256 kbit/s | 128x96@30.9 (8) 176x144@15.0 (4) |
1b | 1485 | 99 | 128 kbit/s | 160 kbit/s | 384 kbit/s | 512 kbit/s | 128x96@30.9 (8) 176x144@15.0 (4) |
1.1 | 3000 | 396 | 192 kbit/s | 240 kbit/s | 576 kbit/s | 768 kbit/s | 176x144@30.3 (9) 320x240@10.0 (3) 352x288@7.5 (2) |
1.2 | 6000 | 396 | 384 kbit/s | 480 kbit/s | 1152 kbit/s | 1536 kbit/s | 320x240@20.0 (7) 352x288@15.2 (6) |
1.3 | 11880 | 396 | 768 kbit/s | 960 kbit/s | 2304 kbit/s | 3072 kbit/s | 320x240@36.0 (7) 352x288@30.0 (6) |
2 | 11880 | 396 | 2 Mbit/s | 2.5 Mbit/s | 6 Mbit/s | 8 Mbit/s | 320x240@36.0 (7) 352x288@30.0 (6) |
2.1 | 19800 | 792 | 4 Mbit/s | 5 Mbit/s | 12 Mbit/s | 16 Mbit/s | 352x480@30.0 (7) 352x576@25.0 (6) |
2.2 | 20250 | 1620 | 4 Mbit/s | 5 Mbit/s | 12 Mbit/s | 16 Mbit/s | 352x480@30.7(10) 352x576@25.6 (7) 720x480@15.0 (6) 720x576@12.5 (5) |
3 | 40500 | 1620 | 10 Mbit/s | 12.5 Mbit/s | 30 Mbit/s | 40 Mbit/s | 352x480@61.4 (12) 352x576@51.1 (10) 720x480@30.0 (6) 720x576@25.0 (5) |
3.1 | 108000 | 3600 | 14 Mbit/s | 17.5 Mbit/s | 42 Mbit/s | 56 Mbit/s | 720x480@80.0 (13) 720x576@66.7 (11) 1280x720@30.0 (5) |
3.2 | 216000 | 5120 | 20 Mbit/s | 25 Mbit/s | 60 Mbit/s | 80 Mbit/s | 1280x720@60.0 (5) 1280x1024@42.2 (4) |
4 | 245760 | 8192 | 20 Mbit/s | 25 Mbit/s | 60 Mbit/s | 80 Mbit/s | 1280x720@68.3 (9) 1920x1088@30.1 (4) 2048x1024@30.0 (4) |
4.1 | 245760 | 8192 | 50 Mbit/s | 62.5 Mbit/s | 150 Mbit/s | 200 Mbit/s | 1280x720@68.3 (9) 1920x1088@30.1 (4) 2048x1024@30.0 (4) |
4.2 | 522240 | 8704 | 50 Mbit/s | 62.5 Mbit/s | 150 Mbit/s | 200 Mbit/s | 1920x1088@64.0 (4) 2048x1088@60.0 (4) |
5 | 589824 | 22080 | 135 Mbit/s | 168.75 Mbit/s | 405 Mbit/s | 540 Mbit/s | 1920x1088@72.3 (13) 2048x1024@72.0 (13) 2048x1088@67.8 (12) 2560x1920@30.7 (5) 3680x1536/26.7 (5) |
5.1 | 983040 | 36864 | 240 Mbit/s | 300 Mbit/s | 720 Mbit/s | 960 Mbit/s | 1920x1088@120.5 (16) 4096x2048@30.0 (5) 4096x2304@26.7 (5) |
Număr Nivel | Macroblocks maxim per secundă | Frame size maxim(macroblocks) | Bit rate video maxim (VCL) pentru Baseline, Extended și Main Profiles | Bit rate video maxim (VCL) pentru High Profile | Bit rate video maxim (VCL) pentru High 10 Profile | Bit rate video maxim (VCL) pentru High 4:2:2 and High 4:4:4 | Exemple pentru o rezoluție mare @ frame rate (număr de frame-uri maxim stocat) pe nivel |
QuickTime | Nero Digital | x264 | Mainconcept | Elecard | Telestream | |
---|---|---|---|---|---|---|
I and P Slices | Da | Da | Da | Da | Da | Da |
B Slices | Da | Da | Da | Da | Da | Da |
SI and SP Slices | Nu | Nu | Nu | Nu | Nu | Nu |
Multiple Reference Frames | Da | Da | Da | Da | Da | Da |
In-Loop Deblocking Filter | Da | Da | Da | Da | Da | Da |
CAVLC Entropy Coding | Da | Da | Da | Da | Da | Da |
CABAC Entropy Coding | Nu | Da | Da | Da | Da | Da |
Flexible Macroblock Ordering (FMO) | Nu | Nu | Nu | Nu | Nu | Nu |
Arbitrary Slice Ordering (ASO) | Nu | Nu | Nu | Nu | Nu | Nu |
Redundant Slices (RS) | Nu | Nu | Nu | Nu | Nu | Nu |
Data Partitioning | Nu | Nu | Nu | Nu | Nu | Nu |
Interlaced Coding (PicAFF, MBAFF) | Nu | Nu | Da | Da | Da | Nu |
4:2:0 Chroma Format | Da | Da | Da | Da | Da | Da |
Monochrome Video Format (4:0:0) | Nu | Nu | Nu | Nu | Da | Nu |
4:2:2 Chroma Format | Nu | Nu | Nu | Nu | Nu | Da |
4:4:4 Chroma Format | Nu | Nu | Nu | Nu | Nu | Nu |
8 Bit Sample Depth | Da | Da | Da | Da | Da | Da |
9 and 10 Bit Sample Depth | Nu | Nu | Nu | Nu | Nu | Nu |
11 to 14 Bit Sample Depth | Nu | Nu | Nu | Nu | Nu | Nu |
8x8 vs. 4x4 Transform Adaptivity | Nu | Da | Da | Da | Da | Da |
Quantization Scaling Matrices | Nu | Nu | Da | Nu | Nu | Nu |
Separate Cb and Cr QP control | Nu | Nu | Da | Da | Da | Nu |
Separate Color Plane Coding | Nu | Nu | Nu | Nu | Nu | Nu |
Predictive Lossless Coding | Nu | Nu | Da | Nu | Da | Nu |
Film Grain Modelling | Nu | Nu | Nu | Nu | Nu | Nu |
QuickTime | Nero Digital | x264 | Mainconcept | Elecard | Telestream |