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.

Cuprins

[modificare] 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.

[modificare] Profiluri

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 Yes Yes Yes Yes Yes Yes Yes
B Slices Nu Yes Yes Yes Yes Yes Yes
SI and SP Slices Nu Yes Nu Nu Nu Nu Nu
Multiple Reference Frames Yes Yes Yes Yes Yes Yes Yes
In-Loop Deblocking Filter Yes Yes Yes Yes Yes Yes Yes
CAVLC Entropy Coding Yes Yes Yes Yes Yes Yes Yes
CABAC Entropy Coding Nu Nu Yes Yes Yes Yes Yes
Flexible Macroblock Ordering (FMO) Yes Yes Nu Nu Nu Nu Nu
Arbitrary Slice Ordering (ASO) Yes Yes Nu Nu Nu Nu Nu
Redundant Slices (RS) Yes Yes Nu Nu Nu Nu Nu
Data Partitioning Nu Yes Nu Nu Nu Nu Nu
Interlaced Coding (PicAFF, MBAFF) Nu Yes Yes Yes Yes Yes Yes
4:2:0 Chroma Format Yes Yes Yes Yes Yes Yes Yes
Monochrome Video Format (4:0:0) Nu Nu Nu Yes Yes Yes Yes
4:2:2 Chroma Format Nu Nu Nu Nu Nu Yes Yes
4:4:4 Chroma Format Nu Nu Nu Nu Nu Nu Yes
8 Bit Sample Depth Yes Yes Yes Yes Yes Yes Yes
9 and 10 Bit Sample Depth Nu Nu Nu Nu Yes Yes Yes
11 to 14 Bit Sample Depth Nu Nu Nu Nu Nu Nu Yes
8x8 vs. 4x4 Transform Adaptivity Nu Nu Nu Yes Yes Yes Yes
Quantization Scaling Matrices Nu Nu Nu Yes Yes Yes Yes
Separate Cb and Cr QP control Nu Nu Nu Yes Yes Yes Yes
Separate Color Plane Coding Nu Nu Nu Nu Nu Nu Yes
Predictive Lossless Coding Nu Nu Nu Nu Nu Nu Yes
Baseline Extended Main High High 10 High 4:2:2 High 4:4:4

Predictive

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

[modificare] Implementări și diferite produse

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

QuickTime Nero Digital x264 Mainconcept Elecard Telestream
I and P Slices Yes Yes Yes Yes Yes Yes
B Slices Yes Yes Yes Yes Yes Yes
SI and SP Slices Nu Nu Nu Nu Nu Nu
Multiple Reference Frames Yes Yes Yes Yes Yes Yes
In-Loop Deblocking Filter Yes Yes Yes Yes Yes Yes
CAVLC Entropy Coding Yes Yes Yes Yes Yes Yes
CABAC Entropy Coding Nu Yes Yes Yes Yes Yes
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 Yes Yes Yes Nu
4:2:0 Chroma Format Yes Yes Yes Yes Yes Yes
Monochrome Video Format (4:0:0) Nu Nu Nu Nu Yes Nu
4:2:2 Chroma Format Nu Nu Nu Nu Nu Yes
4:4:4 Chroma Format Nu Nu Nu Nu Nu Nu
8 Bit Sample Depth Yes Yes Yes Yes Yes Yes
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 Yes Yes Yes Yes Yes
Quantization Scaling Matrices Nu Nu Yes Nu Nu Nu
Separate Cb and Cr QP control Nu Nu Yes Yes Yes Nu
Separate Color Plane Coding Nu Nu Nu Nu Nu Nu
Predictive Lossless Coding Nu Nu Yes Nu Yes Nu
Film Grain Modelling Nu Nu Nu Nu Nu Nu
QuickTime Nero Digital x264 Mainconcept Elecard Telestream

[modificare] Legături externe

Unelte personale
Spații de nume

Variante
Vizualizări
Acțiuni
Navigare
Participare
Tipărire/exportare
Trusa de unelte
În alte limbi