République Algérienne Démocratique et populaire Ministère de l’Enseignement Sup
République Algérienne Démocratique et populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique Université A/Mira – Bejaïa Faculté de Technologie Département de Génie électrique Réalisé par : -Haddouche Tinhinane -Abdelli Yasmine Groupe : G1 Réseau et Télécommunication 2019/2020 1 TP N° :01(compression JPEG). Introduction L’image est l’un des moyens les plus importants qu’utilise l’homme pour communiquer avec autrui. C’est un moyen de communication universel dont la richesse du contenu permet aux êtres humains de tout âge et de toute culture de se comprendre. C’est aussi le moyen le plus efficace pour communiquer, chacun peut analyser l’image à sa manière, pour en dégager une impression et d’en extraire des informations précises. De ce fait, le traitement d’images est l’ensemble des méthodes et techniques opérant sur celles-ci, dans le but de rendre cette opération possible, plus simple, plus efficace et plus agréable, d’améliorer l’aspect visuel de l’image et d’en extraire des informations jugées pertinentes. 2 Partie 1 : 1- Transformer une image en composantes : La première notion que nous allons abordé est de visualiser une image en composantes RGB et en composantes YCrCb. Pour réaliser ces opérations nous utilisons le logiciel Simulink. a- Cette première partie va consister à charger une image et à la visualiser en mode monodimensionnel et tridimensionnel. ●Dans la librairie « Video and Image Processing Bblockset »_source, on recopie le module Image from file. Puis on charge l’image « test.png », en clique 2 fois sur le module, et on recopie le module fichier dans « File name». pour visualiser cette image, dans la librairie «Sinks » on recopie le bloc et on le relie a la source : « Video viewer », on stocke le fichier dans nos documents sous le nom : « test.RGB »on va voir donc une image en couleur : 3 ●Dans le même fichier nous allons observer cette image en composantes RGB. on duplique la source et 3 fois le bloc Video Viewer, on va choisir dans les paramètres du bloc image, la rubrique image signal, le menu « separate color signals », on va voir 3 sortie on relie chacune a un bloc image viewer : On lance le programme et on va obtenir ces 3 images : ⮚Commentaire : Une image est composée de pixels, ils sont définis par la combinaison de valeur de luminosité du rouge, une valeur de luminosité du vert et une valeur de luminosité de bleu sur une échelle allant de 0 (valeur absolue) à 255(luminosité maximale de la couleur). Chaque composante représentant un niveau de couleur primaire. La somme vectorielle des trois composantes donne une couleur unique dans l’espace des couleurs. Donc l’image couleur est représentée par 3 matrices représentant respectivement l’intensité en rouge(R), vert(G) et bleu(B). 4 b- Maintenant, nous allons transformer une image initialement en composantes RGB, en une image en composantes YCrCb : On duplique le programme précédent sous le nom « testYCrCb », on intercale le bloc « color space conversion » entre les 2 blocs source et visualisation : Les résultats : 5 ⮚Commentaire : Le Video viewer donne une image en composante Y, correspond à la luminance, il s’agit d’une conversion de l’image couleur en une image en nuances de gris. Le Video viewer 1 représente une image en composante Cb correspond à la chrominance bleue qui est une composante bleue moins Y. Le Video viewer 2 représente une image en composante Cr correspond à la chrominance rouge qui est comme étant la composante rouge moins Y. Le signal Y, bien que noir et blanc, contient en effet toutes les informations pour les trois couleurs, et Cb et Cr étant des différences par rapport à Y. En effet l'œil humain est moins sensible aux détails de l'information de couleur (chrominance) que de ceux de l'intensité (luminance). Il est par conséquent possible de dégrader la chrominance d’une image tout en gardant une bonne qualité. c- Cette dernière étape va consister à transformer une image en composantes YCrCb, équivalent au format 4 :2 :2, en une image au format 4 :2 :0 : En lance le programme et on va voir ce résultat : 6 Les transformations inverses : Remarque On ne retrouve pas l’image de départ. ⮚Commentaire : Le 4:2:2 est un sous-échantillonnage qui consiste à supprimer les informations de la chrominance sur une colonne sur deux. La colonne restante possède alors la moyenne des chrominances des deux colonnes. Lors de la décompression, il suffira de recopier cette information sur la colonne vide. Le 4:2:0 est un sous-échantillonnage qui effectue le même processus que le 4:2:2 mais en effectuant aussi cette opération sur les lignes. On divise donc ici par 4 l’information de la chrominance. 2- Comprendre la DCT 7 a) Dans un premier temps on va considérer x variable continue (x= [0 :01 :8]), a l’aide du matlab on trace les 8fonctions de base de DCT : ●Le programme Les résultats ●Les conventions de ces fonctions en image 8 - Dans un deuxième temps, on va considérer x variable discrète (x= [0,7]), on trace les 8 fonctions de base de la DCT : ●Le programme 9 Les résultats ●Les conventions de ces fonctions en image - On prend une forme d’onde m= [128 128 128 128 128 128 128 128] 10 On affiche cette séquence, sa DCT et la DCT inverse sous forme d’image et de vecteur : On calcule p(x,4) : 11 U=4,x=[1:8] ,N=8 P(x,u)=sqrt(2/N)*cos((pi*u/2*N)*(2*x+1) On trouve ce resultat : t=[1.1428 1.1428 1.1428 1.1428 1.1428 1.1428 1.1428 1.1428]. Conclusion 12 3- Codage de Huffman : a) La table de fréquence : M=CCTIRMTDXMCITCR. S={C, T, I, R, M, D, X} S C T I R M D X fréquenc e 4 3 2 2 2 1 1 b) L’arborescence de Huffman : 1 1 2 1 1 0 4 2 0 1 2 1 8 1 4 0 15 2 0 0 3 1 7 4 0 13 c) Le code binaire associé : C 00 T 01 I 100 R 101 M 110 D 1110 X 1111 d) Le nombre de bits de la suite compactée : NB=(4*2)+(3*2)+(2*3)+(2*3)+(2*3)+4+4=40 bits ●Le taux de compression (on comparera au cas où l’on aurait codé chaque caractère sur 10bits :NB<NB’) : NB’=15*10=150bits T=NB/NB’=40/150=0.2666 Le code de Huffman : Code optimal à longueur variable produisant la longueur moyenne L des mots du code la plus faible • Technique de codage très souvent utilisée comme “surcouche” à d’autres méthodes de compression (ex: image JPEG...). Mais elle nécessite la connaissance préalable des probabilités d’apparition des symboles de source. Dans le cas d’une image à compresser, Partie 2 : (compression d’une image) Précédemment, nous avons travaillé sur les différentes transformations nécessaires pour effectuer une compression des données. Maintenant, nous allons mettre à profit tout ceci et à partir d’un bloc 8*8 pixels qui représente un bloc de la luminance de l’image couleur spirale, nous effectuerons toutes ces transformations en nous aidant du logiciel matlab. Soit la matrice 8*8 de coefficients compris entre 0 et 255 qui représentent cette image spirale : 14 A=[43 42 41 40 39 38 37 64 ; 44 21 20 19 18 17 36 63 ; 45 22 7 6 5 16 35 62 ; 46 23 8 1 4 15 34 61 ; 47 24 9 2 3 14 33 60 ; 48 25 10 11 12 13 32 59 ; 49 26 27 28 29 30 31 58 ; 50 51 52 53 54 55 56 57] - On va ouvrir une feuille de travail Matlab. Le fichier sera nommé « image », on recopie la matrice A, puis on va la visualiser : - L’image en couleur : 15 - L’image en niveau de gris : - Maintenant on va ouvrir une nouvelle figure que l’on va partager en4 afin d’observer plusieurs images à la fois : - Avant d’effectuer une DCT, nous allons représenter la matrice D 16 - L’image de ces coefficients : - La matrice transposée : 17 - L’image de ces coefficients : - La DCT s’exprime de la façon suivante : 18 C=D*A*DT. DCT=round(C). - L’image de ces coefficients : - L’étape suivante de cette compression est la quantification : 19 - L’image qui représente la matrice de quantification ainsi que ces coefficients : - L’opération de quantification est une division terme à terme qui dans matlab se note : DCTQ=round (DCT./Q) . L’image de cette nouvelle transformation et ces coefficients : ●Commentaire : 8- 20 - La valeur de coefficient DC=36 - les valeurs de coefficients AC=[-6 10 -3 4 0 1 0 -6 1 -2 0 -1 0 0 0 8 -2 0 0 0 0 0 0 -2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] Les résultats après le balayage : Le codage du reste de la matrice DCT quantifiée va se faire en parcourant les éléments dans l'ordre imposé par une séquence particulière uploads/s3/ abdelli-yasmine-et-haddouche-tinhinane-groupe1-tp1-rar3145326163958089880-2-1900812287.pdf
Documents similaires










-
26
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 02, 2021
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 1.3847MB