H.264

Infos
H.264, ou MPEG-4 AVC, est une norme de codage video développée conjointement par l'UIT-T Q.6/SG16 Video Coding Experts Group (VCEG) ainsi que l'ISO/CEI Moving Picture Experts Group (MPEG) et est le produit d'un effort de partenariat connu sous le nom Joint Video Team (JVT). La norme UIT-T H.264 et la norme ISO/CEI MPEG-4 Part 10 (ISO/CEI 14496-10) sont techniquement identiques, et la technologie employée est aussi connue sous le nom AVC, pour
H.264

H.264, ou MPEG-4 AVC, est une norme de codage video développée conjointement par l'UIT-T Q.6/SG16 Video Coding Experts Group (VCEG) ainsi que l'ISO/CEI Moving Picture Experts Group (MPEG) et est le produit d'un effort de partenariat connu sous le nom Joint Video Team (JVT). La norme UIT-T H.264 et la norme ISO/CEI MPEG-4 Part 10 (ISO/CEI 14496-10) sont techniquement identiques, et la technologie employée est aussi connue sous le nom AVC, pour Advanced Video Coding. La première version de la norme a été approuvée en et la plus récente date de . Le JVT travaille actuellement sur le concept de scalabilité en élaborant une extension à la norme H.264, il s'agit des spécifications Scalable Video Coding (SVC).

Historique

Le nom H.264 provient de la famille de normes vidéo H.26x définies par l'UIT-T. Dans le cadre de MPEG, le nom AVC a été choisi par analogie avec le codec audio AAC MPEG-2 part 7 qui avait été nommé ainsi pour le différencier du codec audio MPEG-2 part 3. La norme est habituellement appelé H.264/AVC (ou AVC/H.264 ou H.264/MPEG-4 AVC ou MPEG-4/H.264 AVC) pour souligner l'héritage commun. Le nom H.26L, rappelant son lien avec l'UIT-T est nettement moins commun mais toujours utilisé. De temps en temps, il est aussi appelé « le codec JVT », en référence à l'organisation JVT qui l'a développé. Il existe un précédent dans l'élaboration d'une norme de codage vidéo commune entre MPEG et l'UIT-T avec MPEG-2 et H.262 qui sont identiques. Cependant, ce codec a été développé dans le cadre de MPEG, l'UIT-T se contentant de l'adopter ensuite et de l'éditer en son sein.

Objectifs et Applications

À l'origine, l'UIT-T lança le projet H.26L en 1998 dans le but de créer une nouvelle architecture de codec ayant pour but un gain en efficacité de codage d'un rapport au moins égal à 2 par rapport aux standards existants (MPEG-2, H.263 et MPEG-4 Part 2). Un autre but était de créer une interface simple pour pouvoir adapter le codec aux différents protocoles de transport (commutation de paquets et de circuits). Le codec a été développé en s'assurant qu'il serait transposable sur plate-formes à un coût raisonnable, c'est-à-dire en tenant compte des progrès réalisés par l'industrie des semi-conducteurs en matière de design et des procédés. En 2001, le projet H.26L avait atteint ses objectifs en taux de compression comme le démontrèrent des tests subjectifs réalisés par… MPEG. C'est à ce moment que l'ITU-T et MPEG décidèrent d'un commun accord de créer le Joint Video Team (JVT) dans le but de standardiser le codec ensemble et de l'adapter aux différents besoins de l'industrie (vidéophonie, streaming, télévision, mobile). En effet, les applications traditionnellement visées par l'ITU-T concernent les bas débits (vidéophonie, mobile), applications pour lesquelles H.26L était optimisé, alors que les membres de MPEG désiraient l'adapter à d'autres formats (télévision, HD). Des outils algorithmiques comme le support de l'entrelacé ont été ajoutés et une réduction de la complexité a été accomplie. Le codec H.264/AVC est donc adapté à une très grande variété de réseaux et de systèmes (par exemple, pour la diffusion de la télévision, le stockage HD-DVD et Blu-Ray, le streaming RTP/IP , et des systèmes de téléphonie propre à l'ITU-T). À la suite de la première version de la norme, le JVT a développé quelques extensions, connues sous le nom Fidelity Range Extensions (FRExt). Ces extensions ont pour but de prendre en charge une précision de quantification accrue (ajout des codages 10-bit et 12-bit) et une meilleure définition de la chrominance (ajout des structures de quantification YUV 4:2:2 et YUV 4:4:4) et visent des applications professionnelles (Studio). Plusieurs autres fonctionnalités ont aussi été adoptées pour améliorer la qualité subjective en haute définition (ajout d'une transformée 8×8 en plus de la transformée 4×4 existante, ajout de matrices de quantification) ou pour des besoins spécifiques (codage sans perte, support d'autres espaces de couleurs). Le travail de conception sur les Fidelity Range Extensions a été finalisé en , et figé en . Depuis la fin du développement de la version originale de la norme en , le JVT a fait publier 4 versions approuvés par l'UIT-T et MPEG, correspondant à l'ajout de FRExt et à des corrections.

Caractéristiques détaillées

H.264/AVC(MPEG-4 Part 10) comprend de nombreuses techniques nouvelles qui lui permettent de compresser beaucoup plus efficacement les vidéos que les normes précédentes (H.261, MPEG-1, MPEG-2, MPEG-4 Part 2/ASP) et fournit plus de flexibilité aux applications dans un grand nombre d'environnements réseau. Dans ces fonctionnalités principales sont inclus :
- Une compensation de mouvement pouvant être effectuée par rapport à plusieurs images de référence déjà codées. Le choix de l'image de référence intervient au niveau macroblock et sous-macroblock. Ceci permet d'utiliser dans certains cas jusqu'à 32 images de référence (contrairement aux précédentes normes, qui étaient limitées à une ou dans le cas d’images B conventionnelles, à deux) et jusqu'à 4 références différentes pour un même macroblock. Cette fonctionnalité particulière permet habituellement des améliorations modestes au niveau du débit et de la qualité dans la plupart des scènes. Mais dans certains types de scènes, comme par exemple les scènes contenant des flashs rapides et répétitifs ou des scènes réapparaissant fréquemment, il permet une réduction du débit réellement significative.
- Une compensation de mouvement pouvant utiliser 7 tailles de blocs différentes (16×16, 16×8, 8×16, 8×8, 8×4, 4×8 4×4) permet une segmentation très précise de zones se déplaçant.
- Une précision au quart de pixel pour la compensation de mouvement, permettant une description très précise du déplacement des zones en mouvement. Pour la chrominance, la précision de la compensation de mouvement se fait même au huitième de pixel.
- Une compensation de mouvement pondérée (Weighted Prediction) par des poids et des décalages permettant à un codeur de construire des prédictions s'adaptant au changement de luminance et de chrominance de la scène courante. Ceci apporte en particulier un gain pour les scènes comportant des transitions dues à des flashs ou des fondus entre scènes effectués au montage.
- Un filtrage anti-blocs (deblocking filte), effectué dans la boucle de codage et opéré sur les blocs 4×4, permettant de réduire les artefacts caractéristiques du codage avec transformation en bloc.
- Une transformée entière effectuée sur des blocs de taille 4×4 pixels (proche de la DCT classique). Pour les nouveaux profils issus des extensions FRExt, une transformée supplémentaire de taille 8×8 a été ajoutée.
- Une transformée de Hadamard effectuée sur les coefficients moyens de la transformée spatiale primaire (pour la chroma et éventuellement la luminance dans certains cas) pour obtenir encore plus de compression là où l'image est adoucie.
- Une prédiction spatiale sur le bord des blocs voisins pour un codage « intra » (plutôt que la seule prédiction sur les coefficients continus présente dans MPEG-2 Part 2 et la prédiction sur les coefficients de la transformée de H.263+ et MPEG-4 Part 2).
- Un codage arithmétique (CABAC: Context-adaptive binary arithmetic coding), qui est une technique sophistiquée de codage entropique qui produit d'excellents résultats en terme de compression mais possède une grande complexité (non disponible dans les profils baseline et extended).
- Un codage adaptatif de type Huffman à longueur variable (CAVLC : Context-adaptive Huffman variable-length coding), qui est une alternative moins complexe que CABAC pour le codage des tables de coefficients de transformation. Bien que moins complexe que CABAC, CAVLC est plus élaboré et plus efficace que les méthodes habituellement utilisées jusqu'à présent pour coder les coefficients.
- Une technique simple et hautement structurée de codage à longueur variable (VLC : Variable length coding) pour de nombreux éléments de syntaxe non codés par CABAC ou CAVLC, considéré comme du code Golomb exponentiel (Exp-Golomb) .
- Une couche d'abstraction réseau (NAL : Network abstraction layer) est définie pour permettre l'usage de la même syntaxe vidéo dans de nombreux environnements réseau, ceci inclut des possibilités telles que des paramètres de séquence (SPS : Sequence parameter set) et d'image (PPS : picture parameter set) qui offrent plus de robustesse et de flexibilité que les conceptions antérieures.
- Les tranches de commutation (appelées SP et SI) permettent à un codeur de diriger un décodeur pour que ce dernier puisse s'insérer dans un flux vidéo entrant, ceci permet du streaming vidéo à débit variable et un fonctionnement en « trick mode » (mode truqué). Quand un décodeur saute au milieu d'un flux vidéo en utilisant cette technique, il peut se synchroniser avec les images présentes à cet endroit malgré l'utilisation d'autres images (ou pas d'images) comme références préalables au déplacement.
- L'ordonnancement flexible des macroblocs (FMO : Flexible macroblock ordering, alias slice groups) et l'ordonnancement arbitraire des tranches (ASO : Arbitrary slice ordering) sont des techniques de restructuration de l'ordonnancement des régions fondamentales de l'image (macroblocs). Typiquement utilisées pour améliorer la résistance aux erreurs et aux pertes, ces techniques peuvent également être utilisées à d'autres fins.
- Le partitionnement des données (DP : Data partitioning) donne la possibilité de séparer les éléments de syntaxe d'importance plus ou moins élevée dans différents paquets de données. Ceci permet d'appliquer un niveau de protection inégal (UEP : Unequal error protection) aux erreurs en fonction de l'importance des données et d'améliorer ainsi la fiabilité du flux.
- Les tranches redondantes (RS : Redundant slices) permettent d'améliorer la résistance aux erreurs et aux pertes en permettant au codeur de transmettre une version additionnelle de tout ou partie de l'image dans une qualité moindre qui pourra être utilisée si le flux principal est corrompu ou perdu.
- Un processus automatisé simple de prévention contre la création accidentelle de faux codes de démarrage. Il s'agit de séquences binaires spéciales qui sont placées au sein des données, permettant un accès aléatoire au flux de données ainsi qu'une resynchronisation en cas de perte temporaire du flux.
- Des informations supplémentaire d'amélioration (SEI : Supplemental enhancement information) et des informations d'état qualitatif de la vidéo (VUI : Video usability information) sont des informations supplémentaires qui peuvent être insérées dans le flux pour améliorer son usage pour un grand nombre d'applications.
- Des images auxiliaires peuvent être utilisées pour des usages tels que le mixage par alpha channel.
- La numérotation des images permet la création de sous-séquences (permettant une scalabilité temporelle par l'inclusion optionnelle d'images supplémentaires entre d'autres images) ainsi que la détection et la dissimulation de la perte d'images entières (qui peuvent se produire en cas de perte de paquets réseau ou d'erreurs de transmission).
- Le comptage de l'ordre des images permet de conserver l'ordre des images et du son dans des images décodées isolément des informations de minutage (ce qui permet à un système de transporter, contrôler et/ou changer l'information de minutage sans affecter le contenu des images). Ces techniques, ainsi que plusieurs autres, aident H.264 à dépasser significativement les standards précédents, dans une grande variété de circonstances et dans une grande variété d'environnements d'application. H.264 peut fonctionner souvent nettement mieux que la vidéo MPEG-2 en obtenant la même qualité avec un bitrate diminué de moitié, voire plus. Comme de nombreuses autres normes vidéo du groupe ISO/CEI MPEG, le H.264/AVC dispose d'une application logicielle de référence, qui peut être gratuitement téléchargée (voir la section ''
-
Sujets connexes
ATEME   ATI   Advanced Audio Coding   Advanced Television Systems Committee   Allemagne   Apple, Inc.   Artefact   Avchd   Baladeur   British Sky Broadcasting   Broadcom   Codage arithmétique   Commission électrotechnique internationale   DVD Studio Pro   Disque Blu-ray   Europe   FFmpeg   Ffdshow   France   Grande-Bretagne   H.261   H.263   HDTV   IChat   IPod   Internet   Internet Engineering Task Force   Internet Protocol   Irlande   Japon   Libavcodec   Licence publique générale GNU   Licence publique générale limitée GNU   Luminance   MPEG-1   MPEG-2   MPEG-4   MPlayer   Mac OS X   Mac OS X 10.4   Moving Picture Experts Group   NHK   NVIDIA   Nero AG   News Corporation   Nippon Television   Organisation internationale de normalisation   PlayStation Portable   Premier ministre français   Quantification (signal)   STMicroelectronics   Semi-conducteur   TV Asahi   Tokyo Broadcasting System   Transformée de Hadamard   Téléphonie   Télévision   Union internationale des télécommunications   VLC media player   Vidéo à la demande   X264   YUV  
#
Accident de Beaune   Amélie Mauresmo   Anisocytose   C3H6O   CA Paris   Carole Richert   Catherinettes   Chaleur massique   Championnat de Tunisie de football D2   Classement mondial des entreprises leader par secteur   Col du Bonhomme (Vosges)   De viris illustribus (Lhomond)   Dolcett   EGP  
^