Admin ]

Affichage optimisé : 1280x1024. Nous sommes le  samedi 15 décembre 2018
Vous êtes ici : Accueil  /  4- Signal, acquisition, traitement, stockage
MPEG-4 AVC (H264) et MPEG-H/HEVC (H265)
samedi 25 janvier 2014, par gerla
Evolution des standards de compression vidéo

La vidéo numérique n’en a pas fini d’évoluer. Les volumes transférés sur les réseaux croissants, les terminaux de reproduction des images eux-mêmes en évolution (2k, 4k, tablettes, etc.) rendent nécessaires de nouveaux outils de compression et d’amélioration des rendus. Deux axes de travail dominent :

rechercher un meilleur taux de compression pour permettre de diminuer le volume des données transmises sur les réseaux tout en permettant un rendu des images plus précis et satisfaire aux exigences de qualités liés aux évolutions technologiques de la UHD (Ultra Haute Définition) ;

mieux utiliser les structures de calculs parallèles disponibles dans les processeurs graphiques et autres composants dédiés.

Le standard de compression MPEG-4 part 10 ou AVC (H264) est actuellement le plus utilisé mais une solution plus efficace est déjà standardisée sous le label MPEG-H part 2 ou HEVC (H265). Les techniques de compression H264-AVC et H265-HEVC mettent en œuvre une approche hybride basée sur les redondances spatiales et les redondances temporelles contenues dans une séquence vidéo. On retrouve ici des notions déjà abordées avec MPEG-2 (H262) . Revoir l’article « compression vidéo MPEG1/2 » sur ce site.

1- Schéma de compression MPEG-4 AVC (H264) ,

La séquence d’images est traitée image par image (YUV codés 4 :2 :0) , chaque image étant elle-même divisée en tranches (slices), chaque tranche étant elle-même divisée en macroblocs de 16x16 pixels (figure 1) , chaque macrobloc pouvant lui-même être partitionné en rectangles plus petits. L’unité de codage est le bloc 4x4.

(JPG)

Le schéma général de la compression et décompression AVC (Advanced Video Coding) est résumé par la (figure 2) . Le codeur fonctionne sur base d’une boucle qui permet d’utiliser les données déjà codées d’une image (ou partie d’image) pour coder les données vidéo entrantes. Cette boucle est également à la base du décodeur .

(JPG)

En général, une image (ou une tranche) est codée :

Intra (I). L’image est codée sur elle-même. Le codage utilise une prédiction des pixels (bloc 4x4 ou 16x16) et un codage de la différence résiduelle ;

Inter utilisant le mode P (Predictive), l’image étant codée par rapport à l’image précédente et faisant intervenir la compensation de mouvement  ;

Inter utilisant le mode B (Bidirectional) mais l’image est codée à partir de plusieurs images de référence (jusqu’16) passées ou suivantes

Dans le codage Intra, chaque macrobloc est prédit à partir de données déjà codées et reconstruites (IQ et IDCT). Ce schéma permet de garantir une prédiction identique dans le codeur et dans le décodeur.

2- Notion de prédiction Intra,

L’idée repose sur le fait que dans une image, les blocs de pixels au voisinage ont des contenus plus ou moins communs. Pour coder un nouveau bloc (bloc courant) , il n’est pas nécessaire de prendre en compte la globalité de la valeur des pixels qui constituent le bloc.

Il est plus judicieux de comparer les pixels de chaque bloc à une valeur calculée à partir des pixels voisins de façon à ne coder que les différences (le résiduel, revoir la figure 2 ).

Le codage utilise une transformée de Fourier ( DCT entière -Discrete Cosine Transform- ou ICT -Integer Cosine Transform-) et une quantification Q. Une erreur (de quantification) est introduite lors de la quantification.

Afin de minimiser l’impact de cette erreur, il faut comparer les valeurs des pixels d’un bloc à coder aux valeurs reconstruites d’un bloc déjà codé. Le mode de construction d’un bloc à partir de ses voisins déjà codés puis décodés (IQ et IDCT) est appelé prédiction. Plusieurs modes de prédiction (figure 3) sont mis en compétition afin d’optimiser l’efficacité de la compression.

(JPG)

La prédiction peut être effectuée sur la base de bloc 4x4 pixels ou 16x16 pixels. Quatre modes de prédiction 16x16 (non représentés sur la figure 3) sont également en compétition. La figure 4 illustre l’implantation des fonctions nécessaires au codage Intra des macroblocs (MC). Le codage Intra seul est utilisé dans la caméra vidéo .

(JPG)

3- Notion de prédiction Inter, compensation de mouvement,

La prédiction Inter est basée sur l’analyse de redondances temporelles entre les images d’une séquence. A partir d’images codées (jusqu’à 32 images peuvent être prises en référence , figure 5 ), les modèles de prédiction utilisent l’ estimation et la compensation de mouvement appliquées à une large gamme de taille de blocs (revoir la figure 1 ) et une définition fine des vecteurs de mouvement pouvant aller à une résolution au quart de pixel (pour la luminance).

Coder un vecteur de mouvement pour chaque bloc occupe un nombre significatif de bits. Afin de réduire notablement ces volumes de codes, chaque vecteur de mouvement est prédit à partir des vecteurs des blocs au voisinage. Dans ces conditions, seule la différence entre le vecteur courant et celui prédit est codée et transmise au décodeur du récepteur final.

(JPG)

4- Profils, niveaux et outils de calcul MPEG-4 AVC (H264) ,

Dans le standard, chaque profil définit l’ensemble des outils de codage et d’algorithmes permettant de générer un flux compatible avec un type d’application (caractéristiques du récepteur). Les niveaux déterminent des contraintes à certains paramètres du flux audio-vidéo. Cela permet de limiter les ressources nécessaires au décodeur. Le débit est compris entre 64 kbps (en Basique) et 240 Mbps (en Etendu).

Dans la première version du standard H264 / AVC, 3 profils ont été définis :

Basique (Baseline), plus particulièrement destiné à la vidéo téléphonie, vidéoconférence ;

Principal (Main), destiné à la télévision et au stockage. Il est progressivement remplacé par le High Profile  ;

Etendu (Extended), adapté aux services multimédias à travers Internet. Ce profil permet d’améliorer la résistance aux erreurs de transmission. Il existe également des profils destinés aux applications professionnelles.

Proche de la DCT classique, une transformée entière est effectuée sur les blocs de 4x4 pixels. Une transformée de Hadamard effectuée sur les coefficients DC des macroblocs permet de réduire le volume de données transmises.

Plusieurs codeurs entropiques (Huffman) peuvent être utilisés. Le codage adaptatif à longueur variable CAVLC (Context Adaptative Huffman Variable Lenght Coding) peut être utilisé quelque soit le profil. Le codage CABAC (Context-Adaptive Binary Arithmetic Coding), complexe, est disponible en profil principal. 52 échelles de quantifications sont également disponibles.

Dans le profil principal, l’encodeur et le décodeur peuvent prendre encharge les images constituées de trames entrelacées (application à la télévision). Les tranches et/ou images sont codées IPB (Intra, B, P). Dans le profil de base, les tranches et/ou images sont codées IP (Intra, P). Dans le profil étendu, les tranches et /ou images peuvent également être codées le SI (Switch Intra) et le SP Switch Predictive) pour améliorer le passage d’un train binaire à un autre ayant un débit différent.

5- Schéma de compression MPEG-H, HEVC (H265) ,

Globalement, la compression HEVC (High Efficiency Video Coding ou H265) utilise un schéma de codage semblable à AVC (revoir la figure 2) avec des outils mis en œuvre largement améliorés :

• Le découpage en macroblocs de l’image est remplacé par système appelé le CTU (Coding Tree Unit) dont la dimension est déterminée par les fonctions de codage ;

• Le nombre de prédictions spatiales utilisées en compétition pour le codage Intra est augmenté ;

• Les images Inter sont décrites à partir des vecteurs de mouvement.

Structuration de l’image, partition

Le codage vidéo (4 :2 :0) est basé sur le Coding Tree Unit (CTU) composé d’un Coding Tree Bloc CTB de luminance Y et de 2 CTB de chrominance UV (figure 6) .

Le CTU est lui-même décomposable en Coding Units (CU), chaque CU étant scindé en Prediction Unit (PU) et en Transform Unit (TU).

La dimension d’un CTU (ou CTB de luminance) peut être de 16x16 ou 32x32 ou 64x64 échantillons (la plus grande partition permettant un meilleur taux de compression). La segmentation récursive selon quadtree (arbre quaternaire) permet de diviser un CU en 4 quadrants, chacun d’eux étant susceptible d’être divisés. La décomposition de l’espace est faite de façon à faire apparaître une cohérence des sous-espaces en fonction de contraintes déterminées par les fonctions de codage.

(JPG)

Amélioration des prédicteurs (PU)

Comme en H264 / AVC, la prédiction Intra (sur de blocs carrés) est faite à partir des blocs au voisinage (revoir la figure 3 ). Les directions de prédiction sont augmentées (amélioration de la précision du bloc prédit et par conséquent, réduction du résiduel correspondant, donc diminution du débit).

La décision entre codage Inter et Intra est faite au niveau du CU. La prédiction Inter peut être effectuée sur des blocs carrés ou rectangulaire AMP (Asymetric Motion Partitioning).

La prédiction Intra met en compétition des redondances spatiales et temporelles (AMVP -Adaptation Motion Vector Prédiction- ; Merge mode). La précision de mouvement peut être au quart de pixel de luminance.

Comparaison H264-AVC et HEVC (figure 7).

(JPG)

Coding Structure TU, Décodage

La taille des blocs sur lesquels opère la transformée varie de 4x4 à 32x32 échantillons. Il peut y avoir un chevauchement de TU sur PU.

Le codage Intra utilise une DCT. Sur les blocs de 4x4 échantillons de Y, une DST (Discrete Sine Transform) peut également être mise en œuvre.

Les CTU peuvent être regroupés en régions rectangulaires de l’image ou tuiles ( tiles en anglais) qui peuvent être décodées en parallèle . Les tuiles sont indépendantes des slices. Un autre schéma de parallel processing reposant sur les slices divisés en lignes, peut être mis en œuvre.

6- En conclusion,

Cette approche des techniques de compression AVC et HEVC est très loin d’être exhaustive. Il s’agit d’un premier pas pour aborder les principes de quelques évolutions mises en œuvre. Cet article vise simplement à se replonger dans les techniques de compression d’image.

Compte tenu des évolutions mises en œuvre dans HEVC / H265 (voir également la figure 7), on retiendra qu’il n’y a pas de rétro compatibilité entre HEVC et AVC. En d’autres termes, quand la télévision et les supports HEVC se développeront, les anciens récepteurs AVC (TVHD, MPEG-4) seront obsolètes et ce, quelque soit la définition de l’image reproduite à l’écran. Il est urgent de se renseigner sur les fonctions réellement intégrées dans un écran 2K / 4K (UHD) avant d’investir dans un projet d’équipement.

Un petit cocorico : en France, le projet 4EVER supportant une recherche collaborative est financé par les pouvoirs publics.

voir aussi ...
du même auteur ... gerla
Document(s) associé(s) :
6.4 ko