H.264, MPEG-4 Part 10, sau AVC (de la Codare Video Avansată), este un standard de codare video digitală care se remarcă printr-o rată de compresie ridicată. A fost scris de către Video Coding Experts Group (VCEG) de la ITU împreună cu Moving Picture Experts Group (MPEG) de la ISO/IEC, ca produs colectiv al parteneriatului cunoscut sub numele de Joint 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. Introducere H.264 este numele corespunzător linei de standarde video H.26x a ITU-T, iar AVC se înrudeşte cu partea MPEG a colaborără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 de MPEG-2 a apărut de asemenea din parteneriatul dintre MPEG şi ITU-T, iar codecul video MPEG-2 este cunoscut în comunitatea ITU-T drept H.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 suport DVD, reţele cu comutare RTP/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 drept YUV 4:2:2 şi YUV 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. Profiluri 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ţionale all-Intra profiles, care sunt definite ca subseturi simple ale profilelor corespunztoare. Sunt folosite pentru aplicaţii profesionale : - High 10 Intra Profile
- High 4:2:2 Intra Profile
- High 4:4:4 Intra Profile
- CAVLC 4:4:4 Intra Profile
| | 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 |
|---|
Niveluri | 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 |
|---|
Comparaţie între programele de codare (encoder) | | 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 |
|---|
|