toute l'information sur la réalisation vidéo numérique

les FORUMS du Repaire sur ce sujet...

Google cherche...

S'abonner aux Fils RSS du Repaire

 fils-rss-repaire-20.gif  Tous les contenus
 fils-rss-repaire-20.gif  News
 

 Tous les Fils RSS...

Comprendre et voir la compression Mpeg Version imprimable Suggérer par mail
Écrit par Jean-Charles Fouché   
01-06-2008
Si l'on parle souvent de compression spatiale (intra) et temporelle (inter) quand il s'agit de Mpeg2 ou Mpeg4, on peut avoir du mal à comprendre son fonctionnement, et ainsi comprendre les différences d'un format à l'autre.
C'est pourquoi nous allons tenter de visualiser l'envers du décor de la compression.

 
La compression spatiale (INTRA-image):
 

L'image est généralement décomposée en zones de 8 pixels sur 8 pixels, appelées "blocks" (la taille des blocks peut varier selon la technologie utilisée, notamment le Mpeg4).
Ces zones permettent à la compression de travailler sur une petite partie de l'image, et de trouver des solutions mathématiques pour en simplifier l'écriture sur disque et ainsi réduire le débit du flux (la fameuse bande passante en Mbps), sans que la qualité en souffre trop (dans la philosophie d'un Winzip). La compression peut s'effectuer sans perte (Lossless, comme Winzip) ou avec perte (Lossy, comme le Jpeg), cette dernière offrant une compression plus importante du fichier, et ainsi un débit plus léger.

  hdv-25mbps_small.png
Un flux Mpeg2 standard (Long GOP 12 images HDV/XDCAM) avec des blocks 8x8 et un GOP fixe
 

A la compression spatiale, qui ne travaille que dans le cadre de l'image fixe, s'ajoute une compression qui va travailler dans le cadre de la séquence vidéo, d'une image à l'autre: 

 

La compression temporelle (INTER-images):

Partant du principe que dans une séquence vidéo, d'une image à l'autre, peu de blocks changent, on ne va coder que les blocks de l'image qui changent (B et P) d'une image à l'autre, les autres blocks proviennent d'images de référence (I et P), placées avant ou après:

0503mpeg_031.gif

 Un groupe d'images (G.O.P.), encadré par des images complètes (I), devient alors la structure du flux qui se répète tout au long de la séquence vidéo. Des vecteurs de mouvement permettent ensuite de coder le déplacement des blocks à l'intérieur du GOP. Un GOP "mesure" habituellement 1/2 seconde, soit 12 images en Europe et 15 images aux USA.

  compression_temporelle01_small.png
Un flux H264 avec une structure variable selon la complexité de la scène (blocks et macroblocks), et des GOP à structure variable

 

Les technologies d'encodage Mpeg (Codecs Mpeg1, 2, 4 et H264...) utilisent ces méthodes pour faire baisser le débit général du flux vidéo tout en offrant une bonne qualité visuelle; on passe ainsi d'un flux brut HD SDI 1,5 Gbps à un flux à 100 Mbps en AVCintra (intra seul), et à un flux HDV Mpeg2 à 25 Mbps (intra+inter).

Le HDV et le XDCAM HD utilisent des flux Mpeg2 construits sur des GOP de 12 images à 18, 25 ou 35 Mbps. Le XDCAM offre un débit variable plus confortable dans les scènes dynamiques ou complexes jusqu'à 35 Mbps, là ou le HDV standard à 25 Mbps à bande peut provoquer parfois des artefacts visibles de compression.

Les camescopes AVCHD utilisent des flux Mpeg4 H264 avec compression spatiale et temporelle, pour un gain de l'ordre de 50% par rapport aux flux Mpeg2, notamment grace aux nouvelles techniques spatiales (pour 15%, taille de blocks/macroblocks variable...) et temporelle (pour 35%, taille de GOP variable...) du codec H264.

elecard1_gop_structure_small.png
optimisation temporelle du H264: structure variable selon le contenu vidéo

Les camescopes AVCIntra de Panasonic utilisent les seules méthodes H264 de compression spatiales uniquement (AVC = H264, intra = compression spatiale), sans utiliser les méthodes temporelles (pas de GOP, et donc peu de gain vis à vis du codec Mpeg2 de base). 

mp4_07_blocks_gp.png
Optimisation spatiale du H264: Blocks et macro blocks variables

 

Voici quelques exemples visuels pour mieux comprendre le fonctionnement de la compression spatio-temporelle :

Note 1: Pour chaque vidéo, vous trouverez:
- L'image encodée en haut à gauche, avec la découpe en blocks DCT (fixe pour le Mpeg2, variable pour le Mpeg4); L'apparition de flèches rouges et bleues montre à l'image la présence de vecteurs de mouvement
- La structure du GOP en bas, avec la tête de lecture sur l'image I, B ou P
- à droite le type d'image lors de la lecture: I, B ou P
- en haut à droite: un macro block DCT, avec  composition fixe (Mpeg2) ou variable (Mpeg4)

Note 2: Toutes les images montrent la structure réelle du flux compressé, il ne s'agit pas d'une "simulation" réalisée sur Photoshop ou autre. Les blocks, macroblocks, vecteurs de mouvement et type d'images (GOP) sont ainsi affichés en temps réel par analyse des flux (des logiciels d'analyse comme mosalina sont destinés à la vérification des flux). Je vais essayer de pubier un petit soft d'analyse Mpeg dans les semaines qui viennent dans le forum HD.

 

Un flux H264 Mpeg4: 


Blocks et GOP variable

 

Flux XDCAM HD - Mpeg2 - GOP 12 images - 35 Mbps (GOP identique HDV):

 

Blocks et GOP fixe de 12 images (Type Intra@500 Ko) 

Flux HDV - Mpeg2 - GOP 12 images - 25 Mbps (GOP identique XDCAM HD):

 


Blocks et GOP fixe de 12 images (Type Intra@300 Ko)


Pour mieux comprendre le processus global de compression, vous pouvez jouer avec le programme (PC) laboratoire de compression sur le forum .

jcf.jpg Jean-Charles Fouché

Jean-Charles Fouché est consultant, caméraman, formateur, réalisateur, auteur de nombreux ouvrages de référence sur la vidéo numérique.  Il est l'un des plus anciens et fidèles soutiens et contributeurs du Repaire. 

Page de présentation Liste des articles Site de Jean-Charles Fouché
  

 


Réagir sur ce sujet, compléter cette information sur les forums (5)
 
Contenu Suivant >
Le Repaire Numérique