Solutions d'encodage en H.264 sous environnement Windows et Linux
[15 mn de lecture - paru le 5/11/2006 10:56:52 PM - Public : Débutant]
|
   
|
Auteur
1 Explications du codec
1.1 Petit historique
A l'aube de l'avènement des HD-DVD / Blu-Ray, de la vidéo à la demande, de la vidéo sur téléphone,etc le monde des technologies ne peut plus se contenter des normes de compressions actuelles comme le MPEG-2 actuellement utilisé pour les DVD ou la TNT, ou le MPEG-4 Part 2 dont on connait les codecs dérivés comme le DivX ou le XviD. En effet, pour répondre aux attentes des nouvelles technologies, il faut des codecs pouvant transmettre une image parfaite pour un minimum de bande passante. Le MPEG-2 donne une image de grande qualité, mais nécessite des flux de données de grande taille. Et le MPEG-4 permet de minimiser la taille des flux mais la qualité des vidéos s'écroule lorsque la taille de ces flux devient trop faible (réseaux téléphoniques).
C'est donc principalement pour répondre à ces nouvelles attentes que la JVT (Joint Video Team), composée des groupes MPEG (Moving Pictures Expert Group) et VCEG (Video Coding Expert Group), s'est lancée dès 1998 dans le projet d'élaborer une nouvelle norme de codec. Le projet est alors appellé « Le projet H.26L ». Une première version de la norme voit le jour en mai 2003. A l'heure actuelle, il y a eu 4 versions de la norme et la dernière remonte à mars 2005. A noter que la participation de MPEG dans le développement du H.264 explique le fait que le conteneur courremment utilisé pour générer des flux H.264 soit le mp4 (mais il est possible d'intégrer un flux vidéo H.264 dans un conteneur avi ou mkv).
1.2 Rapide description de la norme
Pour améliorer l'efficacité de codage, la JVT s'est penchée sur plusieurs aspects du codage d'une vidéo. Cette norme doit être très adaptative de façon à pouvoir être intégrée à tous types de systèmes et utilisable sur tous types de réseaux. Ainsi, les principales techniques utilisée dans la norme H.264 pour coder les images sont la prédiction, la transformation, la quantification et le Codage.
Pour rappel, un des principes de base utilisés pour coder une vidéo est de décomposer chaque image en plusieurs parties appellées macro-block. Dans une vidéo, toutes les images ne sont pas encodées complètement. Une première image est codée, puis les images suivantes sont codées par rapport à la précédente. En effet, on ne code que les parties de l'image (macro-blocks) qui diffèrent de l'image précédente.
Ainsi, la prédiction dans le H.264 se compose de types de prédiction. La première est l'intra-prédiction.
Elle permet de localiser les macro-blocks identiques au sein d'une même image et ainsi permet d'éviter des redondances inutiles. L'autre type de prédiction est l'inter-prédiction. Elle permet de localiser les macro-blocks identique entre deux images différentes et ainsi ne coder que les macro-blocks différents. Cette technique est épaulée par une autre caractéristique très propre au H.264, les tailles de macro-blocks peuvent être plus petites qu'avant (jusqu'à 4px) ET une image peut être découpée en différents macro-blocks de différentes tailles !
La prédiction étant une des parties les plus importante de la norme H.264 et cet article n'ayant pas pour vocation de décrire le fonctionnement de cette norme, nous ne nous attarderons pas sur les autres propriétés du H.264.
1.3 Quelles sont les différences entre AVC, H.264, x264...
Sur internet, beaucoup de noms circulent pour désigner le H.264 : AVC, H.264, x264, MPEG-4 Part 10, etc.
Une petite mise au point s'impose donc.
Après la mise au point de cette norme de codage, il fallait bien lui trouver un nom. Hors, deux groupes de développeurs avaient travaillé sur le projet : l'UIT-T VCEG et l'ISO/CEI MPEG.
Les deux groupes ont donc voulu donner un nom à cette norme. L'UIT-T, déjà à l'origine des normes H.26x l'a donc nommée : H.264.
MPEG, quant à lui, à l'origine des normes MPEG-x et de la norme AAC (Advanced Audio Coding) l'a nommée : MPEG-4 AVC (ou aussi MPEG-4 Part 10).
Le nom usuel de cette norme est H.264/AVC.
Et me direz vous, « Et le x264 dans tout ça ? »...
Hé bien le x264 fait en fait référence à une bibliothèque gratuite et sous GPL (General Public Licence) permettant d'encoder au format H.264/AVC.
Avec toutes ces infos, nous pouvons maintenant rentrer dans le vif du sujet et découvrir comment encoder en utilisant cette norme.
|