Académique Documents
Professionnel Documents
Culture Documents
Faculté de Technologie
TP N° :01(compression JPEG).
Réalisé par :
-Haddouche Tinhinane
-Abdelli Yasmine
Groupe : G1 Réseau et Télécommunication
2019/2020
1
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 :
⮚ 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 :
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
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
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 4 3 2 2 2 1 1
e
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
- 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 :
16
- L’image de ces coefficients :
- La matrice transposée :
17
- L’image de ces coefficients :
18
C=D*A*DT.
DCT=round(C).
19
- L’image qui représente la matrice de quantification ainsi que 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 appelée séquence zigzag :
Cette séquence a la propriété de parcourir les éléments en commençant par les basses fréquences et
de traiter les fréquences de plus en plus hautes. Puisque la matrice DCT quantifiée contient
21
beaucoup de composantes de hautes fréquences nulles, l'ordre de la séquence zigzag va engendrer
de longues suites de 0 consécutifs. Deux mécanismes sont mis en œuvre pour comprimer la matrice
DCT quantifiée. D'une part, les suites de valeurs nulles sont simplement codées en donnant le
nombre de 0 successifs. D'autre part, les valeurs non nulles seront codées en utilisant une méthode
statistique de type Huffman ou arithmétique.
22