module inscription newsletter haut de page forum mobile

Rejeter la notice

Nouvelle Formation Prise de son : les inscriptions sont ouvertes !
Maîtrisez la qualité de vos prises de son avec notre formation théorique et pratique de 3 jours ! Du 14 au 16 mai 2024 à Paris.

Comprendre et voir la compression Mpeg

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 fonctionnem

Publié par jcf le 1 Juin 2008 dans Autres articles
► Commentaires 0
    Recos : 0
    Vues : 42 857
  1. jcf
    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, le XDCAM HD et le XDCAM EX utilisent des flux Mpeg2 construits sur des GOP de 6 à 12 images à 18, 25 ou 35 Mbps. Le XDCAM HD 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 (contraint par la vitesse fixe de défilement de la bande) peut provoquer parfois des artefacts visibles de compression (dans les scènes subites très dynamique, genre flash de photographes ou animal qui passe devant la caméra).

    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  h264_block_size-small.png
    Optimisation spatiale du H264 selon la complexité de l'image: 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

    {vimeo}1080458{/vimeo}


    Flux XDCAM HD - Mpeg2 - GOP 12 images - 35 Mbps (GOP identique HDV):
    Blocks et GOP fixe de 12 images (Type Intra@500 Ko) 

    {dailymotion}x5mvi4{/dailymotion}


    Flux HDV - Mpeg2 - GOP 12 images - 25 Mbps (GOP identique XDCAM HD):
    Blocks et GOP fixe de 12 images (Type Intra@300 Ko)

    {dailymotion}x5mv6m{/dailymotion}

    Extrait du livre "Comprendre la vidéo numérique 2ème édition couleur" / baie des anges

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


    {include_content_item 1016}   

     

Partager cette page

► Commentaires 0

Vous ne souhaitez rien louper du Repaire ?