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

Prédiction Intra and Inter

La prédiction et encodage Intra exploitent la redondance spatiale de l’image. Celle-ci est décomposée en Macroblocks (MBs), chacun de 16x16 pixels. Ce principe est identique au MPEG-2 et MPEG-4 part-2, mais les techniques suivantes sont spécifiques au standard H.264 (MPEG-4 - part 10/AVC) :

  • Les Macroblocks de 16x16 pixels peuvent être décomposés en 7 types de Macroblocks plus petits (16x8, 8x8, 8x4, 4x4 pixels)
  • 4 nouvelles prédictions pour les Macroblocks 16x16 (vertical, horizontal, DC et plan)
  • 7 nouvelles prédictions pour les Macroblocks 4x4 (vertical, horizontal, plusieurs diagonal)

La prédiction Inter exploite la redondance temporelle, en comparant une image :

  • à la précédente (création d’une image P, ou Prédite)
  • à celle précédente et celle suivante (création d’une image B, ou Bidirectionnelle)

La détection de mouvement peut réaliser le calcul des vecteurs de mouvement avec une précision d’un pixel, d’un demi ou d’un quart de pixel.
Ce principe est identique au MPEG-2 et MPEG-4 part-2, mais les techniques suivantes sont spécifiques au standard H.264 (MPEG-4 - part 10/AVC) :

  • Les trames P et B peuvent toutes les deux prendre en référence une trame future,
  • Les trames B peuvent être utilisées elles-mêmes comme référence
  • Les objets référencés peuvent provenir de trames différentes
    Ceci permet pour chaque trame de prendre en référence plus d’objets, définis dans plusieurs trames, avec un seul vecteur de mouvement à transmettre, au lieu de retransmettre des objets similaires au moyen de blocs codés Inter. Tout cela concourt à la réduction de débit.

Le filtre de deblocking (diminution de l’effet de blocs)

  • Un filtre de deblocking est appliqué après décompression de l’image en cours, pour créer une nouvelle image de référence. Le H.264 spécifie que les décodeurs doivent inclure le même filtre de deblocking (c’est nouveau par rapport au MPEG-2 et MPEG-4 part-2). Ainsi comme il est connu et identique pour tous, il peut être pris en compte dans l’encodeur, ce qui permet d’optimiser encore un peu plus le flux transmis.

La transformée entière et les pas de quantisation

  • Une transformée entière est utilisée, pour éviter les erreurs d’arrondi (qui se traduisent en MPEG-2/4 par des différences d’images en sortie du décodeur, comme en MPEG-2/4 où la transformée est la DCT (Discrete Cosine Transform). Noter également que la transformée est réalisée sur des blocs 4x4.
  • 52 pas de quantification sont définis (le MPEG-4 en a 31), dans une progression logarithmique (+12% / pas), ce qui permet une plus grande finesse.

Le Bitstream encoding, ou encodage final du flux binaire

  • Deux nouveaux procédés sont définis, en remplacement du VLC (Variable Length Coding, aussi utilisé dans les ZIP, comme le LZW) : Le « Context Adaptive Variable Length Coding » (CAVLC) et le « Context Adaptive Binary Arithmetic Coding » (CABAC). Les contextes sont définis au fur et à mesure, et un peut être choisi parmi 398. Le CABAC permet un gain supplémentaire de compression de l’ordre de 10 à 15% par rapport au CAVLC. Ceci permet d’encoder en moyenne moins d’un bit pour une information, c’est pourquoi on parle de compression statistique.

La bitstream regulation, ou régulation de débit
Ceci ne fait pas partie à proprement parler du standard lui-même, mais c’est un savoir-faire indispensable pour développer un encodeur de qualité, à même de répondre aux besoins des professionnels. Les types de régulation habituels sont :

  • VBR : « Variable Bit-Rate », ou débit variable - lorsqu’on veut une qualité vidéo constante, et qu’on n’a pas de contrainte de variation du flux. Certains encodeurs proposent également une version améliorée, avec une contrainte de débit maximum, pour écrêter les pics trop importants pour un décodeur par exemple.
  • CBR : « Constant Bit-Rate », ou débit constant - lorsqu’il y a une contrainte forte de bande passante. Typiquement une liaison satellite qui autorise 2Mbps, ou 512 kbps perdra des paquets si on essaye de passer 513kbps... (Dans ce cas, on va surtout tester la robustesse du décodeur suite aux pertes de paquets !). Dans ce mode CBR, l’encoder régule le débit en modifiant en permanence le coefficient de quantification (entraînant donc des variations de qualité de l’image). La régulation est faite en simulant dans l’encodeur un buffer virtuel (VBV) simulant la taille mémoire des décodeurs, de manière également à ce que les buffers de ceux-ci ne soient jamais ni complètement pleins, ni vides...
    Dans Nero Recode, Ateme a également développé un nouveau mode : ABR (Average Bit-Rate), qui est un compromis entre les deux précédents, et orienté vers l’encodage de fichiers. Dans ce cas, il y a une consigne de débit qui est calculée à partir de la taille de fichier résultant souhaitée et de sa durée. Ainsi la consigne est un objectif à moyen terme (et non court terme comme le CBR), ce qui permet lorsque c’est nécessaire (images avec beaucoup de détails ou d’action) d’utiliser un débit plus élevé, en crête, puis de compresser un peu plus que nécessaire le reste du temps, pour respecter la contrainte. Ceci permet la meilleure qualité, en 2 passes comme en une passe.
    Mon conseil : téléchargez la toute dernière version Nero Recode 2.2, qui va faire beaucoup de bruit, avec son codec H.264 en plus du MPEG-4 ASP !

Merci de votre attention ! Et désolé pour les anglicismes, mais à tout traduire, on ne sait plus de quoi on parle. Donc vous l’avez compris, les standards sont écrits en anglais (UK, pas US, pour les puristes)...

A+
FX78 (fx (at) mccr78 (point) com)

NB : je vous invite à partager mes autres passions, modélisme et chant !
Et si vous voulez me faire un cadeau, utilisez mon compte Paypal (fx (at) mccr78 (point) com), peut-être ainsi je pourrais m’offrir une carte DVB (type Nexus ou Twinhan VisionDTV ) ou d’encodage MPEG-4 temps réel ?

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