Une image d'une vidéo non compressée occupe une taille d'environ 1 Mo. Afin
d'obtenir une vidéo paraissant fluide il est nécessaire d'avoir une fréquence
d'au moins 25 ou 30 images par seconde, ce qui produit un flux de données d'environ 30 Mo/s,
soit plus de 1.5 Go par minute. Il est évident que ce type de débit est
peu compatible avec les espaces de stockage des ordinateurs personnels ni même avec les connexions
réseau de particuliers ou de petites ou moyennes entreprises.
Ainsi, afin de pallier cette difficulté, il est possible de recourir
à des algorithmes permettant de réduire significativement les flux de données
en compressant / décompressant les données vidéos. On appelle ces algorithmes
CoDec (pour COmpression / DECompression).
La première idée qui vient à l'esprit après s'être interessé
à la compression d'images est d'appliquer .
Le principe du Motion JPEG (noté MJPEG ou M-JPEG, à ne pas confondre avec le MPEG)
consiste à appliquer successivement l'algorithme de compression JPEG aux différentes
images d'une séquence
vidéo.
Etant donné que le M-JPEG code séparément
chaque image de la séquence il permet d'accéder aléatoirement
à n'importe quelle partie d'une vidéo.
Ainsi son débit de 8 à 10 Mbps le rend utilisable dans les studios
de montage numérique.
Dans de nombreuses séquences vidéos, de nombreuses scènes sont fixes ou
bien changent très peu,
c'est ce que l'on nomme la redondance temporelle.
Lorsque seules les lèvres de l'acteur bougent, presque seuls les pixels de la
bouche vont être modifiés d'une image à l'autre, il suffit donc de
ne décrire seulement le changement d'une image à l'autre. C'est là
la différence majeure entre le MPEG (Moving Pictures Experts Group) et le M-JPEG.
Cependant cette méthode aura beaucoup moins d'impact sur une scène d'action.
Le groupe MPEG a été établi en 1988 dans le but
de développer des standards internationaux de compression, décompression, traitement
et codage d'image animées et de données audio.
Il existe plusieurs standards MPEG :
- le MPEG-1, développé en 1988, est un standard pour la compression
des données vidéos et des canaux audio associés (jusqu'à 2 canaux
pour une écoute stéréo). Il permet le stockage de vidéos à un
débit de 1.5Mbps dans une qualité proche des cassettes VHS sur un support CD appelé
VCD (Vidéo CD).
- le MPEG-2, un standard dédié originalement à la télévision
numérique (HDTV) offrant une qualité élevé à un débit
pouvant aller jusqu'à 40 Mbps, et 5 canaux audio surround. Le MPEG-2 permet de plus une identification
et une protection contre le piratage. Il s'agit du format utilisé par les DVD vidéos.
- le MPEG-4, un standard destiné à permettre le codage de données multimédia
sous formes d'objets numériques, afin d'obtenir une plus grande interactivité,
ce qui rend son usage particulièrement adapté au Web et aux périphériques mobiles.
- le MPEG-4, un standard visant à fournir une représentation standard des données audio
et visuelles afin de rendre possible la recherche d'information dans de tels flux de données.
Ce standard est ainsi également intitulé Multimedia Content Description
Interface.
- le MPEG-21, en cours d'élaboration, dont le but est de fournir un cadre de travail (en anglais framework)
pour l'ensemble des acteurs du numériques (producteurs, consommateurs, ...)
afin de standardiser la gestion de ces contenus, les droits d'accès, les droits d'auteurs, ...
La norme MPEG-1 représente chaque image comme un ensemble de blocs 16 x 16.
Elle permet d'obtenir une résolution de:
- 352x240 à 30 images par seconde en NTSC
- 352x288 à 25 images par seconde en PAL/SECAM
Le MPEG-1 permet d'obtenir des débits de l'ordre de 1.2 Mbps (exploitable sur un lecteur de CD-ROM).
Le MPEG-1 permet d'encoder une vidéo grâce à plusieurs techniques :
- Intra coded frames (Frames I, correspondant à un codage interne): les images sont codées séparément
sans faire référence aux images précédentes
- Predictive coded frames (frames P ou codage prédictif): les images sont décrites par différence avec les images précédentes
- Bidirectionally predictive coded frames (Frames B): les images sont décrites par différence
avec l'image précédente et l'image suivante
- DC Coded frames: les images sont décodées en faisant des moyennes par bloc
Ces images sont codées uniquement en utilisant le codage JPEG, sans
se soucier des images qui l'entourent. De telles images sont nécessaires dans une vidéo MPEG car ce sont
elles qui assurent la cohésion de l'image (puisque les autres sont décrites par rapport aux images qui les
entourent), elles sont utiles notamment pour les flux vidéo qui peuvent être pris en cours de route (télévision),
et sont indispensables en cas d'erreur dans la réception. Il y en a donc une ou deux par seconde dans une vidéo
MPEG.
Ces images sont définies par différence par rapport à l'image précédente.
L'encodeur recherche les différences de l'image par rapport à la précédente
et définit des blocs, appelés macroblocs (16x16 pixels) qui se superposeront
à l'image précédente.
L'algorithme compare les deux images bloc par bloc et à partir d'un certain seuil de différence,
il considère le bloc de l'image précédente différent de celui de l'image en cours
et lui applique une compression JPEG.
C'est la recherche des macroblocs qui déterminera la vitesse de l'encodage, car plus
l'algorithme cherche des "bons" blocs, plus il perd de temps...
Par rapport aux frames-I (compressant directement), les frames-P demandent d'avoir toujours en
mémoire l'image précédente.
De la même façon que les frames P, les frames B sont travaillées par différences
par rapport à une image de référence, sauf que dans le cas des frames B cette
différence peut s'effectuer soit sur la précédente (comme dans les cas des frames P)
soit sur la suivante, ce qui donne une meilleure compression, mais induit un retard (puisqu'il faut connaître
l'image suivante) et oblige à garder en mémoire trois images (la précédente, l'actuelle
et la suivante).
Ces images donnent une résolution de très basse qualité mais
permettent une décompression très rapide, cela sert notamment lors
de la visualisation en avance rapide car le décodage "normal"
demanderait trop de ressources processeur.
Afin d'optimiser le codage MPEG, les séquences d'images sont dans la pratique codées suivant une suite
d'images I, B, et P (D étant comme on l'a dit réservé à l'avance
rapide) dont l'ordre a été déterminé expérimentalement. La
séquence type appelée GOP (Group Of Pictures ou en français groupes d'images) est la suivante:
IBBPBBPBBPBBI
Une image I est donc insérée toutes les 12 frames.
|