[ Découverte du MPEG-4 part 10 / AVC, ou H.264
Décembre 2004 par planetenumerique
4.38/5 (29 votes)

Découverte du MPEG-4 part 10 / AVC, ou H.264


On en entend beaucoup parler avec les discussions sur la TNT (Télévision numérique terrestre) par exemple. Cet article présente le standard de compression vidéo MPEG-4-part 10 /AVC, ou H.264 (ISO/IEC 14496-10).
L’intro est longue, mais l’article aussi, et il y a des images :-) courage.

La compression H.264

Au fait : Il y a deux groupes principaux de standardisation dans le domaine de la compression vidéo. Ils sont constitués de professionnels de différents sociétés.

D’une part le Video Coding Experts Groups (VCEG) de l‘ITU (International Telecommunications Union) travaille plus pour les applications de type videoconference - faible latence, débits très faibles . D’autre part le comité MPEG de l’ISO/IEC, qui travaille plus pour les applications de type TV, HDTV, VCD, DVD - débits et qualité un peu plus élevés.
Après s’être réunis pour la définition en commun du standard MPEG-2/H.262, ces deux groupes ont à nouveau mis leurs travaux en commun au sein du JVT (Joint Video Team) pour aboutir un nouveau standard, adopté de manière identique des deux côtés mais sous un nom différent : ITU-T H.264 et ISO MPEG-4 part 10 /AVC.

Les standards MPEG précédents spécifiaient le format du flux binaire résultant, mais pas tous les outils permettant de l’obtenir. Ceci a permis à des sociétés de développer leurs propres règles de décision, leur permettant ainsi de distinguer leurs produits par une meilleure qualité d’image à débit égal que les concurrents. D’autre part environ 5 générations d’encodeurs MPEG-2 se sont succédées, permettant en final d’obtenir la même qualité pour la moitié du débit des encodeurs de première génération.

Au contraire, le standard MPEG-4 AVC H.264 définit les outils, regroupés en profils. Aux trois initialement spécifiés (Baseline, Main et Extended) vient tout juste de s’en rajouter un nouveau : le high profile. Chaque profil a ensuite différents niveaux de capacité, appellés « levels » (ex 14 en main profile).

Tous comportent des outils communs : les slices (parties d’images) I et P (images Intra ou Prédites) et l’encodage CAVLC.

  • Le profil Baseline ajoute le groupement de slices, avec gestion de redondance, l’ordonancement arbitraire (ASO arbitrary ordering), et l’ordonnancement flexible des Macro-blocs (FMO - Flexible Macroblock ordering), visant un large spectre d’applications à faible latence.
  • Le profil Main ajoute le support de l’entrelacé (MBAFF et PAFF), les slices bidirectionnelles B, et l’encodage CABAC. Il cible les applications de qualité Broadcast. En particulier, les images B peuvent inclure des blocs provenant de plusieurs images de référence (jusqu’à +/- 9 - en pratique à partir de 2, le gain n’est plus sensible) ce qui permet une réduction de débit d’encore 10-15%, suivant le GOP (Group Of Picture, soit le nombre d’images entre deux images I). Le CABAC quant à lui permet également une réduction du débit de l’ordre de 10 à 15% par rapport au CAVLC.
  • Le profil Extended inclut tous les outils du Baseline, plus les B-slices, le partitionnement de données et les slices SI et SC (qui permettent des fonctions liées au streaming comme la commutation rapide entre flux (zapping) à différent débits, l’avance et retour rapide, etc...).
  • Le profil High vient juste d’être normalisé, et est plus un sur-ensemble du Main Profile.

Les étapes d’encodage

Il y a plusieurs étapes successives. Les prochains paragraphes s‘attachent à la prédiction Intra (compression spatiale) et Inter (compression temporelle), le filtre de boucle de réduction d’effet de blocs (deblocking filter), la transformée entière avec quantification, et l’encodage du flux.
La figure de l’encodeur complet montre une double boucle. La première correspond à la reconstruction des images de référence à partir du flux transmis et la deuxième sert à l’évaluation de la compensation de mouvement, en interne à la décision. La régulation du débit de sortie peut également être considérée comme une troisième boucle, avec taille programmable de buffer VBV.

Notez cet article en cliquant une étoile: (4.38/5)
29 votes

Formulaire Erreur

Des erreurs, omissions, fautes d'orthographe, .. ? aidez-moi en le signalant. Merci

Vos commentaires

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Suivre les commentaires : RSS 2.0 | Atom