H.264

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

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[modificare | modificare sursă]

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[modificare | modificare sursă]

Standardul include următoarele șapte seturi de capabilități, care sunt numite profile și au diferite aplicații:

  • Baseline Profile (BP): În principal pentru aplicațiile cu un cost redus, cu resurse computaționale limitate, videoconferință și aplicații mobile.
  • Main Profile (MP): Scopul original a fost un profil mainstream pentru aplicații de transmitere și stocare, importanța acestui profil a scăzut când profilul High profile a fost dezvoltat pentru acel tip de aplicații.
  • Extended Profile (XP): Cu scopul de a fi un profil pentru transmitere video, acest profil are compresie relativ mare și protejat împotriva pierderilor de date.
  • High Profile (HiP): Principalul profil pentru aplicații de transmitere și stocare pe disc, în particular pentru aplicații în televiziunea de înaltă definiție (de exemplu acest profil este folosit pentru stocarea filmelor pe discuri HD DVD și Blu-ray D).
  • High 10 Profile (Hi10P): Acest profil depășește capabilitățile produselor destinate consumatorului obișnuit, având la bază High Profile — a adăugat suport pentru până la 10 biți per sample a preciziei imaginii decodate.
  • High 4:2:2 Profile (Hi422P): Destinat aplicațiilor profesionale, folosește video interlaced.
  • High 4:4:4 Predictive Profile (Hi444PP): Acest profil are la bază tot High 4:2:2 Profile — suportând un chroma sampling de 4:4:4 , până la 14 biți per sample, și în plus codare regională fără pierdere și codarea fiecărei imagini ca trei plane color separate.

Î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[modificare | modificare sursă]

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

Implementări și diferite produse[modificare | modificare sursă]

Comparație între programele de codare (encoder)[modificare | modificare sursă]

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

Legături externe[modificare | modificare sursă]