Un flux vidéo est composé d'une succession d'images, 25 par seconde en Europe (30 par seconde aux USA), composant l'illusion du mouvement. Chaque image est décomposée en lignes horizontales, chaque ligne pouvant être considérée comme une succession de points. La lecture et la restitution d'une image s'effectue donc séquentiellement ligne par ligne comme un texte écrit : de gauche à droite puis de haut en bas.
L'image d'un téléviseur est une succession de balayages horizontaux, de gauche à droite, partant du haut, et finissant en bas de l'écran. Au commencement de la télévision, la qualité des éléments phosphorescents du tube est fort médiocre. De ce fait, quand le faisceau balaye le bas de l'écran, le haut a déjà disparu, d'où un phénomène de scintillement, ressenti fortement par l'œil humain pour 25 Hz ou 30 Hz.
La solution la plus simple eût été d'accélérer la cadence de balayage, mais ceci imposait également d'augmenter la cadence des images, ce qui était inutile d'un point de vue cinématographique (le mouvement est perçu de la même façon), et fort coûteux en matériel et en bande passante.
Une solution plus astucieuse fut de doubler la cadence de balayage, en omettant une ligne sur deux, afin de garder une quantité d'information constante. Ainsi, une première passe affiche toutes les lignes impaires en deux fois moins de temps que pour une image entière et une seconde passe affiche les lignes manquantes paires : c'est ce que l'on appelle l'entrelacement.
On obtient bien le même nombre de lignes de balayages pour une image, et on balaye deux fois l'écran pour afficher une seule image. On désigne par le terme « trame » ("field" en anglais) une passe de balayage. Une image est donc constituée de deux trames, puisqu'il faut deux balayages pour définir l'image ("frame" en anglais).
Les caméras, qui fonctionnent comme un « téléviseur inversé », adoptèrent elles aussi cet entrelacement du balayage. Dans la première moitié du temps d'une image, une 1re prise de vue définit toutes les lignes impaires, et une moitié d'image plus tard, une seconde prise de vue définit les lignes paires.
Ce qu'il faut bien comprendre ici, c'est que les deux prises de vues sont distantes dans le temps (d'une moitié d'image). Et même si ces deux prises de vue sont complémentaires d'un point de vue spatial (les deux balayages se complètent dans le cadre), ces deux prises de vue n'affichent pas le même contenu
Si un sujet se déplace dans le champ, il aura une position différente sur chacune des deux trames : on a alors un effet de zig-zag sur chaque frame.
Ce problème est en partie résolu par un dispositif de lames cristallines biréfringentes qui "étalent" les détails en dédoublant les rayons lumineux. Il en découle une perte de définition qui confèrent aux système PAL et SECAM une résolution verticale multipliée par 0.7 (facteur de Kell) et qui n'est plus réellement que de 400 lignes environ.
Du fait de la capture en deux trames de 1/50 s chacune, c'est le temps de pose en vidéo (25i).
Il existe dorénavant de plus en plus d'appareils vidéo capables d'afficher 25, 50 ou 60 images complètes par seconde, l'affichage n'est plus entrelacé, on parle alors de balayage progressif. Parmi les appareils capables d'un tel affichage on trouve : les ordinateurs (leur carte vidéo et leur écran), certains vidéoprojecteurs, les téléviseurs haut de gamme, certaines platines DVD et quelques rares caméscopes.
C'est le mode de capture choisi pour les films tournés en HDTV ou en D-cinéma destinés à être transférés et projetés en 35 mm.
Les 25 images progressives (25p) confèrent alors aux caméras un temps de pose de 1/25 s ce qui est trop long en terme de résolution temporelle. On préfère alors limiter le temps d'intégration des trames à 1/50 s (obturateur électronique).
Les premières caméras vidéo, fonctionnant sur le même principe que les téléviseurs, analysaient l'image formée par l'objectif à l'aide d'un tube cathodique. Depuis la fin des années 1980, elles sont dotées de capteurs Charge-Coupled Device : CCD ou Dispositif à Transfert de Charges (DTC) en français.
Le transfert de ces charges peut se faire de 3 manières différentes : transfert interligne (capteur IT : Inteline Transfer), transfert trame (capteur FT : Frame Transfer) qui nécessite un obturateur mécanique et est rarement utilisé ou transfert FIT (Frame Interline Transfer).
Au début du XXIe siècle, les fabricants de capteurs ont décidé d'abandonner cette technologie et construisent désormais des capteurs CMOS (Complementary Metal Oxide Semi-conductor). On trouve cependant encore sur le marché des camescopes semi-professionnels utilisant la technologie dite "tri-CCD" qui permet d'améliorer notablement le traitement des couleurs.
- 4 têtes de lecture avancée (Avance) permettent de lire le signal vidéo présent sur la bande quelques trames avant les têtes d’enregistrement. Cette fonction dite de « pre-read » permet d’apporter une modification sur un programme enregistré sans nécessiter plus d’un magnétoscope. En mode enregistrement, l’ancien signal lu par ces têtes de lecture avancées peut en effet être récupéré et traité par un équipement externe (mélangeur, correcteur colorimétrique…), puis réenregistré exactement à sa place d’origine. Cette fonction très intéressante doit faire l'objet d’une grande précaution d’utilisation car l’opération est irréversible.
- 4 têtes dites « têtes confidence » (Confi) lisent les pistes après les têtes d’enregistrement afin de permettre la vérification de l’enregistrement en cours (avec un léger décalage temporel).
- 4 autres têtes permettent la lecture en Betacam analogique.
- 4 têtes permettent l’enregistrement numérique des données
- 2 têtes servent à l’effacement des données audio et vidéo
Le procédé de l’acquisition vidéo analogique et de sa conversion en numérique peut s’assimiler au passage du langage oral au langage écrit. Pour prendre en note le discours oral d’une personne, cette dernière ne doit pas parler trop rapidement, dans tel cas il devient difficile d’écouter et de transcrire simultanément. Certes la personne pourrait ralentir son débit de parole mais si l’on assimile ces paroles avec le signal vidéo analogique, on comprend aisément que le débit ne peut pas être ralenti. On procède donc à l’échantillonnage du discours, c’est-à-dire que l’on ne saisit que des « morceaux » de message pour les retranscrire par la suite. La précision de la retranscription dépend donc directement du nombre d’échantillons de discours prélevés. Pour la vidéo, le phénomène est identique : il est nécessaire avant toute chose de connaître le signal et de savoir quels sont les signaux à numériser
Format d'enregistrement
Afin que la réponse d’un enregistreur soit optimale dans les hautes fréquences il est primordial que l’entrefer de la tête de lecture soit parfaitement
H.264
H.264, ou MPEG-4 AVC (Advanced Video Coding), 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 mai 2003 et la plus récente date de mars 2005.
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. Cependant, ce codec a été
développé dans le cadre du MPEG, l'UIT-T se contentant de l'adopter ensuite et de l'éditer en son sein.
Dans le cadre du MPEG, l'acronyme AVC (Advanced Video Coding) fut 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 (le fameux MP3).
La norme est habituellement appelée H.264/AVC (ou AVC/H.264 , 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 (Joint Video Team) qui l'a développé. Il existe un précédent dans l'élaboration d'une norme de codage
vidéo commune entre le MPEG et l'UIT-T avec MPEG-2 et H.262 qui sont
identiques.
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 juillet 2004, et
figé en septembre 2004.
Depuis la fin du développement de la version originale de la norme en mai 2003, 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 ((en)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 ( (en)deblocking filter), 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 ( (en)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 ( (en)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 ((en)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) [?NDT: Exponential-Golomb (Exp-Golomb) code].
Une couche d'abstraction réseau ((en)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 ((en)SPS : Sequence parameter set) et
d'image ((en)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 ((en)FMO : Flexible macroblock ordering, alias slice groups) et l'ordonnancement arbitraire
des tranches ((en)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 ((en)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 ((en)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 ((en)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 ((en)SEI : Supplemental enhancement information) et des informations d'état qualitatif de la vidéo
((en)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 Liens externes ci-dessous).
Le principal objectif de cette application est de donner des exemples des différentes possibilités du H.264/AVC, plutôt que de fournir
un produit réellement utilisable et performant.
Une application matérielle de référence est aussi en cours de normalisation par le groupe MPEG.
H.264
Profils
Le standard inclut les 6 ensembles de caractéristiques suivants, qui sont appelés des profils, chacun ciblant une classe d'applications précise :
- Baseline Profile (BP): Principalement pour les applications bas-coût qui utilisent peu de ressources, ce profil est très utilisé dans les applications mobiles et de visio-conférence.
- Main Profile (MP): À l'origine, prévu pour les applications grand public de diffusion et de stockage, ce profil a perdu de l'importance quand le profil High a été ajouté avec le même objectif.
- Extended Profile (XP): Prévu pour la diffusion en flux (streaming) des vidéos, ce profil a des capacités de robustesse à la perte de données et de changement de flux.
- High Profile (HiP): Le profil principal pour la diffusion et le stockage sur disque, en particulier pour la télévision haute définition (ce profil a été adopté pour les disques HD DVD et Blu-ray ainsi que pour la télévision numérique française haute définition).
- High 10 Profile (Hi10P): Ce profil va au-delà des applications grand public et s'appuie sur le profil High — ajoutant jusqu'à 10 bits de précision par pixel.
- High 4:2:2 Profile (Hi422P): Le profil principal pour les applications professionnelles, il s'appuie sur le profil High 10 — ajoutant le support pour la quantification 4:2:2 jusqu'à 10 bits par pixel.
- High 4:4:4 Profile (Hi444P) [obsolète]: Ce profil s'appuie sur le profil High 4:2:2 — ajoutant le support pour la quantification 4:4:4, jusqu'à 12 bits par pixel et en plus le support pour un mode sans perte efficace. Note : Le profil High 4:4:4 est en cours de suppression du standard en faveur d'un nouveau profil 4:4:4 en cours de développement.



