Module VIS-AMR - Master MITIC TP4 : Compression d`images

Transcription

Module VIS-AMR - Master MITIC TP4 : Compression d`images
Module VIS-AMR - Master MITIC
TP4 : Compression d’images
Angélique Drémeau, Josselin Gautier
[email protected]
11 Janvier 2011
But du TP : Introduction aux différentes normes de compression d’images fixes et vidéos.
1
Introduction
Dans ce TP, on analysera quelques normes standard courantes, telles que GIF, TIFF, JPEG,
JPEG 2000, MPEG et H.264. Pour cela, on utilisera trois logiciels différents :
– Le logiciel The Gimp, que vous pourrez lancer à partir du menu Demarrer → P rogrammes →
Images, (ou à partir de la version portable disponible, disponible sur internet) vous permettra
d’enregistrer une image fixe sous différents formats.
– L’application ImageComparateurV0.jar, que vous trouverez dans le répertoire
www.irisa.fr/temics/staff/gautier/mitic/TP4/, vous permettra de comparer deux images fixes
en format PPM ASCII en mesurant le PSNR (cf. définition ci-dessous) et en affichant l’image
différence, constituée de la valeur obtenue par soustraction de l’image dégradée à l’image de
référence, pixel à pixel.
– Le logiciel VcDemo, que vous pourrez lancer à partir du menu Demarrer → P rogrammes →
Images, vous permettra de comparer les normes JPEG et JPEG2000, et d’étudier les deux
algorithmes de compression d’images vidéos MPEG et H.264.
Copiez puis collez dans le répertoire de votre choix les images et l’application ImageComparateurV0.jar situées dans www.irisa.fr/temics/staff/gautier/mitic/TP4/.
2
Compression d’images fixes
Quelques définitions préalables
– On définit le taux de compression comme étant le rapport du volume de l’image initiale
sur le volume de l’image compressée :
α=
volumeImageInitiale
volumeImageCompressee
Par exemple, si le volume de l’image initiale est de 20Ko et le volume de l’image compressée
est de 5Ko, le taux de compression sera de 4, on dira alors que l’on a un taux de compression
de 4 :1.
– On définit également le nombre moyen de bits utilisés pour le codage d’un pixel, appelé
également débit binaire (bitrate), par le rapport du nombre de bits q de chaque pixel sur le
taux de compression :
q
b=
α
Par exemple, si le taux de compression est de 4 :1 et l’image est codée sur 256 niveaux de
gris (ie sur 8 bits), le débit binaire sera de 8/4 = 2 bits par pixel.
Attention : cette définition n’est valable que pour les images fixes, pour les images vidéos, le
1
débit binaire correspond à une vitesse de lecture (nombre d’octets par seconde) des données
numériques.
– On définit enfin le Peak Signal to Noise Ratio (P SN R) mesurant la qualité de reconstruction de l’image compressée par rapport à l’image initiale par l’expression suivante :
P SN R = 10 × log(
d2
)
EQM
où EQM est l’erreur quadratique moyenne entre l’image compressée et l’image initiale.
2.1
Le format PPM ASCII
Les images que vous allez manipuler sont en format PPM ASCII. Ouvrez l’image SaintSauveur.ppm dans un éditeur de texte et identifiez les éléments suivants :
– le ”magic number”, caractéristique du format PPM ASCII,
– le nombre de colonnes de l’image,
– le nombre de lignes de l’image,
– la valeur maximale des nuances par canal,
– le codage successif de chaque pixel (constitué, pour une image RGB, de 3 valeurs consécutives).
2.2
Le format GIF
Lancez le logiciel The Gimp et ouvrez l’image Saint-Sauveur.ppm.
Instruction 1 Enregistrez l’image en format GIF en spécifiant ”Convertir en couleurs indexées en
utilisant les réglages par défaut” puis ”Commentaire GIF : ... ”, sous le nom Saint-Sauveur.gif.
Fermez l’image.
Instruction 2 Rouvrez l’image Saint-Sauveur.gif et enregistrez-la en format PPM ASCII sous le
nom Saint-Sauveur-gif.ppm.
Lancez l’application ImageComparateurV0.jar.
Instruction 3 Chargez l’image Saint-Sauveur.ppm sous l’onglet ”Image Référence” et l’image
Saint-Sauveur-gif.ppm sous l’onglet ”Image dégradée”. Puis cliquez sur ”Comparer”.
Question 1 Relevez le PSNR et enregistrez l’image différence après avoir éventuellement amélioré
le contraste.
Question 2 Le codage effectué est-il avec ou sans perte ? Justifiez.
Reprenez les instructions 1,2,3 et les questions 1,2 avec l’image Lena256B.ppm.
Question 3 Concluez sur les performances du format GIF selon la dynamique de l’image (couleurs
ou niveaux de gris...).
2.3
Le format TIFF
Sous The Gimp, ouvrez l’image Saint-Sauveur.ppm.
Instruction 4 Enregistrez l’image en format TIFF en spécifiant ”Aucune compression” sous le
nom Saint-Sauveur.tif puis en spécifiant ”Compression LZW” sous le nom Saint-Sauveurlzw.tif. Fermez les images obtenues après chaque compression.
Instruction 5 Rouvrez les images Saint-Sauveur.tif et Saint-Sauveur-lzw.tif et enregistrez-les en
format PPM ASCII sous les noms Saint-Sauveur-tif.ppm et Saint-Sauveur-lzw-tif.ppm.
Lancez l’application ImageComparateurV0.jar.
Instruction 6 Chargez l’image Saint-Sauveur.ppm sous l’onglet ”Image Référence” et successivement les images Saint-Sauveur-tif.ppm puis Saint-Sauveur-lzw-tif.ppm sous l’onglet ”Image
dégradée”. Puis cliquez sur ”Comparer”.
2
Question 4 Dans chacun des cas, le codage effectué est-il avec ou sans perte ? Justifiez.
Question 5 Comparez le volume occupé sur le disque par les images Saint-Sauveur.tif et SaintSauveur-lzw.tif. Quel est le gain apporté par la compression LZW ?
2.4
Le format JPEG
Le codage JPEG permet de fixer un coefficient de qualité de manière à ajuster l’importance de la
compression. Ce coefficient Q est exprimé en pourcentage avec 100 représentant la meilleure qualité.
Sous The Gimp, ouvrez l’image Saint-Sauveur.ppm.
Instruction 7 Enregistrez l’image en format JPEG avec une qualité de 75 puis de 10 sous les
noms Saint-Sauveur-75.jpg et Saint-Sauveur-10.jpg.
Question 6 Quelle remarque peut-on faire sur la conservation des couleurs par l’algorithme JPEG ?
(Pour une meilleure observation des images, vous pouvez les convertir en PPM ASCII et les
comparer à l’image de référence Saint-Sauveur.ppm par l’ImageComparateur).
Reprenez l’instruction 7 avec l’image Lena256B.ppm.
Lancez le logiciel VcDemo.
Ouvrez l’image Lena256B.bmp avec la commande ”File → Open Image” puis l’outil de compression JPEG avec la commande ”Linear Transforms → DCT Coding : JPEG”.
Question 7 Lancez la compression JPEG en faisant uniquement varier le coefficient de qualité Q
dans l’onglet ”Bitrate” et remplir le tableau suivant :
Q
b
α
P SN R
100
90
75
50
25
10
5
Le bitrate b et le P SN R sont indiqués dans la fenêtre de compression JPEG, en dessous des
paramètres d’entrée.
Tracez la courbe P SN R = f (b).
Question 8 Quel est le principal défaut visuel pour les forts taux de compression ?
Question 9 Comment relier cette perte d’information à la stratégie utilisée par la norme ?
2.5
Le format JPEG 2000
Toujours sous VcDemo, fermez la fenêtre de compression JPEG en cliquant sur le bouton ”Cancel” et conservez uniquement l’image Lena256B.bmp.
Avec la commande ”Linear Transforms → Wavelet Coding : JPEG 2000”, affichez l’outil de compression JPEG 2000.
Question 10 De la même façon que pour JPEG, lancez plusieurs fois l’algorithme de compression
(toujours sur Lena256B.bmp) en faisant varier uniquement le bitrate (b) et remplir le tableau
suivant :
b
0.1 0.2 0.3 0.4 0.5 0.75 1 1.5 3
α
P SN R
Tracez la courbe P SN R = f (b) sur le même graphe que celle tracée précédemment pour
JPEG.
Question 11 Quel est le principal défaut visuel pour les forts taux de compression ?
Question 12 Comparez les valeurs de P SN R obtenues pour des bitrates semblables avec la compression JPEG et JPEG 2000.
Question 13 Quel est l’avantage de cette transformation par rapport à celle utilisée dans JPEG ?
3
2.6
Résumé des différents taux de compression
Question 14 Relevez les volumes occupés sur le disque des images obtenues par les compressions
précédentes et remplissez le tableau suivant :
Image
GIF
TIF sans compression
TIF avec compression LZW
JPEG de qualité 75
JPEG de qualité 10
Saint Sauveur
Lena
Pour chacune des deux images, tracer la courbe V olume = f (Compression) correspondante.
3
3.1
Compression d’images vidéos
Le format MPEG
Fermez la fenêtre de compression JPEG 2000 en cliquant sur le bouton ”Cancel” et les images
compressées correspondantes.
Avec la commande ”File → Open Sequence”, ouvrez la vidéo Vectra21Frames.yuv.
Avec la commande ”Video Compression → Video Player”, affichez le lecteur vidéo. Cliquez sur le
bouton ”Play” pour visualiser la séquence.
Avec la commande ”Video Compression → Mpeg-1/2 Encoder”, affichez l’outil de compression
MPEG.
Spécifiez le nom et l’emplacement du fichier vidéo de sortie en cliquant sur le bouton ”Save as...”.
Et enfin, cliquez sur le bouton ”MPEG1”.
3.1.1
Influence du débit
Sous l’onglet ”Gop”, choisir ”IBB3(PBB)”, qui correspond au schéma classique de la compression MPEG.
Question 15 Lancer plusieurs fois l’algorithme de compression en faisant varier le bitrate (b) sous
l’onglet ”Rate” et remplir le tableau suivant :
b (en Mbits/s)
Volume global (en Ko)
P SN R(Y )
0.128
0.384
0.768
1.15
2.0
3.5
5.0
8.0
Tracez la courbe P SN R(Y ) = f (b).
Question 16 Comment justifiez-vous l’évolution du débit et de la qualité image par image ?
3.1.2
Influence du Group Of Pictures (GOP)
Avec la commande ”File → Open MPEG Stream”, ouvrez la vidéo que vous venez d’enregistrer
au format MPEG1.
Avec la commande ”Video Compression → Mpeg-1/2 Deccoder”, affichez l’outil de décompression
MPEG.
Effectuez les instructions suivantes :
– Sous l’onglet ”Operation”, cliquez sur ”Coded Difference”. Cette option grise les blocs de
l’image qui ne sont pas codés d’une frame à l’autre.
– Sous l’onglet ”Display”, cochez ”Color Display” et ”Motion Vector Overlay”. La première
option permet de visualiser la vidéo en couleur et la deuxième affiche (sous forme de traits
blancs) les vecteurs mouvement qui sont codés et transmis par blocs, d’une frame à l’autre.
– Sous l’onglet ”Video”, choisissez ”Frame-by-frame” pour visualiser la vidéo frame après frame.
Cliquez sur ”Apply”. Pour chaque frame, à la question ”Decode frame x in bitstream”, cliquez sur
”oui”.
Attention : pour connaı̂tre le type de frame décodée, reportez-vous au nom au-dessus de la vidéo
et non à la séquence donnée dans la fenêtre de résultat.
4
Question 17 A quoi reconnait-on les différentes frames (I,P,B) qui forment le Gop ?
Question 18 Comment justifiez-vous que la voiture, qui roule, présente aussi peu de vecteurs
mouvement ?
3.2
Le format H.264
De nouveau sur la vidéo Vectra21Frames.yuv, ouvrez l’outil de compression H.264 avec la commande ”Video Compression → H.264 Encoder”.
Cet outil vous permet de jouer, entre autres, sur les paramètres suivants :
– Onglet ”Intra-Frame” :
– I-Frames : période de répétition des frames I.
– QP First : pas de quantification de la première frame I.
– QP Remain : pas de quantification des autres frames I.
– Onglet ”B-Frames” :
– B-Frames : nombre de frames B à insérer dans le Gop.
– QP : pas de quantification des frames B.
En modifiant ces paramètres, vous pouvez ainsi comparer la qualité de la compression (PSNR(Y)
et volume de la vidéo comprimée) en fonction de la taille du Gop et de la finesse des quantifications
réalisées sur les différentes frames.
Travail à rendre pour la semaine prochaine (au plus tard, le
mardi 18/01/2011 au soir)
Donnez les réponses aux questions numérotées de 1 à 18.
5