SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Notions sur la compression des images
                                 dernière modification : 25 mars 2000




Les encyclopédies les plus complètes comportent environ 25 000 pages contenant du texte et des
images . On peut considérer chaque page comme une image qui, numérisée à 300 dpi, occupe un volume
de 1 Mo. Au total, la numérisation de l'ouvrage conduit à 25 Go. Il est clair que ce volume est
impossible à stocker sur des supports actuels à accès convenable. Il faut donc effectuer une
"compression" des données afin d'en réduire le volume .




1 - Généralités
Une information I codée en binaire peut l'être de diverses manières : description I1 ( n1 bits),
description I2( n2 bits), description I3 (n3 bits), ...... Parmi toutes ces descriptions "équivalentes", il y
en a une qui est moins volumineuse que les autres .Par rapport à celle-ci, les autres descriptions
contiennent des données redondantes . Imaginons deux descriptions I1 et I2, respectivement de n1
bits et de n2 bits. On définit les caractéristiques suivantes :

            q   rapport de compression de I1 par rapport à I2 : C=n1/n2
            q   redondance relative de I1 par rapport à I2 : R=1-1/C

    s   Si n1 = n2, alors C = 1 et R = 0 ; la description I1 ne contient pas de données redondantes par
        rapport à la description I2.
    s   Si n2 << n1, alors C tend vers l'infini et R --> 1 ; la description I1 contient une forte redondance
        par rapport à la description I2.
    s   Si n1 << n2, alors C --> 0 et R tend vers l'infini ; la description I2 contient une forte redondance
        par rapport à la description I1 .

Il existe trois types de redondance que nous allons examiner ci-dessous : la redondance de codage, la
redondance interpixel, la redondance psychovisuelle.




1.1 - Redondance de codage

Soit une image à niveaux de gris numérotés de 0 à N-1 . On désigne par nk le nombre de pixels
possédant le niveau k et par n le nombre total de pixels. Compte tenu du grand nombre de pixels, on
définira la probabilité pour qu'un pixel possède le niveau k par

                                  p(k)=nk/n                  k = 0, 1, 2, ..........N-1

On effectue le codage de chaque niveau k par un nombre binaire de longueur l(k). La longueur moyenne
du codage d'un pixel est donc




La valeur de < l > influe nécessairement sur le volume de la description.

exemple : soit 8 niveaux de gris notés de 0 à 7 . Admettons que nous ayons les probabilités suivantes :

p(0) = 0,19   p(1) = 0,25    p(2) = 0,21           p(3) = 0,16      p(4) = 0,08           p(5) = 0,06   p(6) = 0,03   p(7)
= 0,02

a) effectuons un premier codage I1 : simple codage en binaire de longueur fixe 3 : < l > = 3


                                               k           code 1        l(k)
                                               0            000           3
                                               1            001           3
                                               2            010           3
                                               3            011           3
                                               4            100           3
                                               5            101           3
                                               6            110           3
                                               7            111           3


b) effectuons un second codage I2 ( de longueur variable) : < l > = 2,7


                                           k          code 2         l(k)
                                           0          11             2
                                           1          01             2
                                           2          10             2
                                           3          001            3
                                           4          0001           4
                                           5          00001          5
                                           6          000001         6
7     000000       6


Le rapport de compression et la redondance relative de I1 par rapport à I2 sont       C = 3/2.7 = 1,11
R = 0,099

On notera que dans le 2ème codage, les mots courts correspondent aux niveaux les plus fréquents
tandis que les mots longs correspondent aux niveaux les plus rares .




1.2 - Redondance interpixel

La redondance interpixel porte sur le constat suivant : bien souvent, le niveau d'un pixel peut être
prédit à partir des niveaux des pixels environnants. Pour " mesurer " cette redondance, on calcule des
coefficients d'autocorrélation entre des pixels distants de Dn ; par exemple, le long d'une ligne on
posera




où n est le nombre de pixels d'une ligne, x et y les coordonnées d'un pixel et I(x,y) le niveau de gris ou
de couleur du pixel. En général, les valeurs de g pour les faibles valeurs de Dn indiquent une forte
corrélation impliquant que l'information portée par un pixel particulier peut être souvent prédite par
l'information portée par les pixels voisins. .




1.3 - Redondance psychovisuelle

L'oeil humain perçoit une image de manière particulière; il sait reconnaître des détails qui portent plus
d'information que d'autres. Par suite, on peut éliminer les détails qui ont très peu d'importance sans
dégrader de manière significative la qualité de l'image; cette opération est une quantification (
opération irréversible).

La codification IGS (Improved Gray Scale) est une méthode de codage permettant de prendre en
compte le préoccupations développées ci-dessus. Supposons que l'on ait une image originale à 256
niveaux de gris. On peut réduire le volume de l'image en codant sur 16 niveaux par des méthodes
développées au chapitre sur le traitement d'image; malheureusement ces méthodes appliquées
brutalement font apparaître des effets quelquefois inesthétiques ou purement artificiels (passages
brusques d'un niveau de gris à un autre, faux contours notamment). La codification IGS est un moyen
d'adoucir le procédé. Le principe est le suivant : le codage à 256 niveaux s'effectue sur 8 bits
séparables en poids forts (4 bits) et poids faibles (4 bits); pour des pixels successifs, le codage IGS à
16 niveaux (donc sur 4 bits) s'obtient en tenant compte du codage sur 8 bits des pixels précédents et
en ne retenant que les bits de poids forts. La figure ci-dessous donne l'algorithme précis
correspondant.
1.4 - Critères de confiance

Etant donné une image originale dont le niveau d'un pixel (x,y) est noté I(x,y) et une image compressée
puis décompressée dont le niveau d'un pixel (x,y) est noté I'(x,y), on peut définir deux types de
critères permettant de juger la qualité de la compression:

    q   des critères objectifs, basés sur le calcul de l'erreur quadratique moyenne e et du rapport
        signal/bruit r :




          où l'image est prise ici de dimension MxN.

    q   des critères subjectifs qui peuvent se résumer à une échelle d'appréciation effectuée par un
        échantillon d'usagers :

          1 = excellent       2 = bien       3 = passable       4 = limite       5 = mauvais          6=
inutilisable




1.5 - Modélisation de la compression d'image

Un système de compression comporte un encodeur à une extrémité du processus (source)et un
décodeur à l'autre extrémité du processus (utilisation). Entre le codage de l'information source et le
décodage pour utilisation existe un canal qui est la cause principale de l'opération de compression; par
exemple, le canal pourra être un réseau de transmission de données ou tout simplement un dispositif
de stockage. La figure ci-dessous précise la chaîne d'opérations relatives à la
compression/décompression d'informations.
L'encodeur est double; il consiste en un encodeur de source et en un encodeur de canal. L'encodeur de
source comprend trois étages :

    q   le mapping qui effectue la transformation des données dans un format permettant de réduire
        les redondances interpixels
    q   la quantification qui réduit les redondances psychovisuelles
    q   le codage qui réduit précisément les redondances de .....codage.

De ces trois opérations, seule la quantification est une opération irréversible ( puisque des données
sont abandonnées).

L'encodeur de canal est nécessaire quand le canal est " bruiteux "; il s'agit alors de coder les données
dans un format permettant de réduire au maximum les erreurs dûes au passage de l'information dans
le canal, c'est à dire d'accroître l'immunité au bruit ; pour les canaux du type réseau de transmission
de données les codes de Hamming sont les plus connus et les plus utilisés; ils permettent de détecter
les erreurs et de les auto-corriger.

A l'autre extrémité de la chaîne, on trouve tout d'abord le décodeur de canal qui effectue l'opération
inverse de l'encodeur de canal, puis le décodeur de source qui ne se compose que de deux étages

    q   le décodage qui rétablit les redondances de codage
    q   le mapping inverse qui rétablit les redondances interpixel

La quantification inverse évidemment n'a pas de sens, puisque l'opération directe est irréversible.

Les systèmes de compression utilisés réellement ne comportent pas nécessairement tous les blocs
fonctionnels de la figure précédente. On peut d'ailleurs distinguer 2 catégories de systèmes de
compression

    q   Si I'(x,y) = I(x,y), le système de compression est idéal ; il correspond à la compression sans
        pertes appelée quelquefois compactage.
    q   Si I'(x,y) <> I(x,y), le système de compression admet une distorsion; il correspond à la
        compression avec pertes.
2 - Compression sans pertes ou compactage
Certaines applications nécessitent une compression sans perte d'information (domaine médical). Dans
ce cas, l'opération de quantification n'interviendra pas et seules les opérations réversibles de mapping
et de codage seront utilisées.

Plusieurs méthodes sont employées parmi lesquelles le codage à longueur variable, le codage en plans de
bits et le codage prédictif.

2.1 - Codage à longueur variable.

La philosophie de base de cette méthode est la réduction de la redondance de codage par affectation
de codes " longs " pour les items rares et de codes " courts " pour les items fréquents.

Le codage de Huffman est un code appartenant à la famille des codages à longueur variable. Son
principe réside en trois étapes :

    q   1ère étape : les symboles de l'information à coder sont comptabilisés puis classés par ordre de
        probabilité décroissante.
    q   2ème étape : on effectue des réductions de source en sommant les deux probabilités les plus
        basses ce qui donne la probabilité d'un symbole " composé "; les autres probabilités restant
        inchangées, on réordonne la liste ans l'ordre des probabilités décroissantes. On continue ainsi
        de manière dichotomique jusqu'à obtenir 2 seules probabilités.
    q   3ème étape : on procède au codage en faisant en sens inverse le cheminement précédent.

La figure ci-dessous indique les trois étapes sur un exemple simple.
Le code une fois créé, une table définit simplement l'encodeur comme le décodeur.

On remarquera que la construction du code de Huffman peut être laborieuse : 256 niveaux de gris
correspondent à 254 réductions de source, puis à 254 définitions de codes. On est alors amené à faire
sur la méthode précédente un certain nombre de modifications simplificatrices :

    q   code de Huffman tronqué : les m symboles les plus fréquents sont codés avec la méthode
        Huffman; pour les autres symboles, on utilise un codage constitué d'un préfixe ( par exemple
        10) suivi d'un numéro binaire à partir de 0.
    q   B-code : ce code est constitué de bits appelés bits de continuation ( notés ici C) et de p bits
        d'information (p fixé) représentant un numéro binaire. Tous les p bits, on aura évidemment un
        groupe C mais quand on change de symbole les bits de C changent. La figure ci-dessous indique,
        pour l'exemple déjà traité , le code résultant.




    q   séparation en blocs : les symboles sont divisés en s groupes. Un symbole est codé par son
        numéro binaire dans le groupe précédé par le drapeau de groupe. La numérotation suit les
        probabilités décroissantes. Une variante de cette méthode consiste à coder chaque symbole
        dans un groupe donné par le code de Huffman correspondant au lieu du numéro binaire.

Une autre famille de codages est celle des codages arithmétiques. Ses caractéristiques sont les
suivantes :

1) il n'y a pas de correspondance biunivoque entre les symboles et les codes;

2) un message est une séquence de symboles sources correspondant à un mot de code unique;

3) le mot de code définit un intervalle de nombres réels compris entre 0 et 1;

4) quand le nombre de symboles d'un message s'accroît, l'intervalle devient plus petit et le nombre de
bits décrivant l'intervalle est plus grand.

La figure ci-dessous explicite le procédé de codage.
Le procédé a toutefois des limites : l'emploi d'un caractère de fin ( ici m4) limitant le message et la
précision des calculs (n'importe quel nombre dans l'intervalle [ 0,33288, 0,33360[ représente le
message).




2.2. Codage en plans de bits

Il s'agit ici de réduire la redondance interpixel. Le principe d'un codage en plans de bits consiste en la
décomposition d'un image à plusieurs niveaux en une série d'images binaires, puis chaque image binaire
est compressée.

Codé sur m bits, le niveau d'un pixel s'exprime comme un nombre binaire compris entre 0 et 2m-1. On
peut donc exprimer ce niveau sous forme d'un polynôme

                        am-12m-1 + am-22m-2 + ........ + a121 + a020   (m niveaux)

Chaque coefficient du polynôme( 0 ou 1) correspond à la présence d'un point noir ou blanc dans un plan
de niveau p :
Ceci permet donc la décomposition de l'image en m images binaires.

Il y a toutefois un inconvénient à la méthode : si un léger changement de niveau de gris se présente, il
peut entraîner un changement sur toutes les images binaires de la décomposition. Ainsi le niveau 127 =
(0111111)2 et le niveau 128 = (10000000)2 sont des niveaux très voisins; pourtant leurs bits de codage
sont tous différents. On remédie à cette difficulté en employant un code Gray qui à tout code am-1 am-
2 ..... a1 a0 fait correspondre le code gm-1 gm-2 ..... g1 g0 tel que gm-1 = am-1 et gi = ou exclusif(ai ,ai+1
) pour 0 <= i <= m-2.

Ainsi 127 = (0100000)Gray et 128 = (11000000)Gray et un seul bit change.

Il reste maintenant à coder de manière compressée les images binaires. La méthode CAC ( Constant
Area Coding) consiste à diviser l'image binaire en blocs de taille mxn pixels; un bloc sera soit tout noir,
soit tout blanc, soit mixte. On affecte le code 0 pour le type le plus fréquent, 10 et 11 pour les deux
autres; bien entendu, si le bloc est mixte ce code est un préfixe qui doit être suivi du codage des mn
bits.

Une autre méthode populaire est le RLC ( Run Length Coding) : chaque ligne d'image est découpée en
blocs de bits successifs de même niveau (appelés runs); un code est affecté à chaque bloc , par
exemple un code en longueur variable. Comme il s'agit d'images binaires, il suffit de spécifier la valeur
(noir ou blanc) du premier bloc de la ligne ou supposer que chaque ligne commence avec un bloc " blanc "
de longueur éventuellement nulle.




2.3. Codage prédictif

Le codage prédictif est utilisé pour réduire la redondance interpixel : le niveau du pixel à coder est
calculé (" prédit ") à partir des n pixels précédents, mais seule la différence entre le niveau réel et la
prédiction est codée. La figure ci-dessous montre le diagramme fonctionnel d'un système de codage et
de décodage prédictifs ; l'indice n correspond au rang d'un pixel.




La prédiction J(x,y) est donnée usuellement par une expression de la forme




où les coefficients réels aij sont des poids statistiques affectés aux pixels précédents. Une application
simple de cette formule est le codage prédictif d'un pixel à partir du pixel situé juste au dessus :

                                             J(x,y) = I(x,y-1)

Il est bien évident que les premiers pixels doivent être codés en absolu.




3.   Compression avec pertes

Les méthodes de compression avec pertes incluent une quantification par rapport aux méthodes de
compression sans pertes. On distingue principalement les méthodes à codage prédictifs, extensions
des méthodes vues précédemment, et les méthodes par transformation.




3.1. Codages prédictifs

La figure i-dessous explicite le dispositif de compression où l'indice n est relatif au rang d'un pixel. On
notera que la quantification s'applique à la différence entre le niveau réel et le niveau prédit et que ce
résultat est codé.




                                                                                                    >

Une application illustrative du procédé est la modulation Delta définie par :




Si l'on applique cet algorithme avec α = 1 et ξ = 3,5 à la suite de pixels de niveaux 21, 25, 21, 24, 22,
22 on aura successivement

pixel 0 : niveau I0 = 21;        initialisation à K0 = 21
pixel 1 : niveau I1 = 25    J1 =K0 = 21       e1 = I1 - J1 = 4 > 0  e1 = 3,5     K1 = J1 + e1 = 24,5
pixel 2 : niveau I2 = 21    J2 = K1 =24,5 e2 = I2 - J2 = -3,5 < 0     e2 = -3,5     K2 = J2 + e2 = 21
pixel 3 : niveau I3 = 24    J3 = K2 = 21       e3 = I3 - J3 = 3 > 0   e3 = 3,5      K3 = J3+ e3 = 24,5
pixel 4 : niveau I4 = 22    J4 = K3 = 24,5 e4 = I4 - J4 = -2,5 < 0     e4 = -3,5    K4 = J4 + e4 = 21
pixel 5 : niveau I5 = 22    J5 = K4 = 21       e5 = I5 - J5 = 1 > 0  e5 = 3,5       K5 = J5 + e5 = 24,5

La suite 21 3,5 -3,5     3,5 -3,5 3,5 sera ensuite envoyée dans le codeur réduisant la
redondance de codage (certainement importante ici).

Les prédicteurs employés ci-dessus sont assez arbitraires; dans la réalité on peut trouver des
prédicteurs " optimaux " minimisant la différence en. On ne développera pas cet aspect ici.




3.2. Codage par transformation

Contrairement au codage prédictif qui agit directement sur la géométrie de l'image, le codage par
transformation effectue une transformation de l'image du domaine spatial dans un autre domaine que
l'on pourrait appeler fréquentiel; plus précisément la transformation appliquée à l'image convertit
l'ensemble des pixels en un ensemble de coefficients. La figure suivante montre la chaîne d'opérations
nécessaires pour compresser et décompresser une image.




L'image supposée carrée et comportant NxN pixels est divisée en (N/n)2 sous-images de taille nxn.
Sur chacune de ces sous-images, on applique une transformation linéaire qui fournit une série de
coefficients. I(x,y) désignant un pixel d'une sous-image nxn et J(u,v) représentant sa transformée par
une transformation h, on a la relation linéaire suivante




On peut aussi écrire, puisque l'ensemble des pixels de l'image initiale correspond à une matrice carrée
nxn I de niveaux I(x,y)




avec




                                                                                  >

On peut donc considérer l'image initiale I comme une superposition coefficientée d'images de base
Huv. Toutefois, le nombre de ces images étant généralement important, il peut être utile de faire une
approximation et de supprimer les images de base pour lesquelles la contribution est très faible.
Introduisons à cet effet un masque w(u,v) égal à 0 si le coefficient J(u,v) satisfait un critère de
troncature et égal à 1 sinon. On obtient alors l'approximation
Les transformations h utilisées sont principalement la transformation de Karhunen-Loeve, la
transformation de Fourier discrète, la transformation en cosinus discrète (DCT); cette dernière est la
plus populaire ( mais non la plus performante); elle est définie ci-dessous :




Le critère de troncature est issu de deux méthodes principales : la méthode du codage zonal qui est
basée sur l'examen des variances s2(J(u,v) et la méthode du codage à seuil qui est basée sur l'emploi
d'un seuil de grandeur des coefficient J(u,v); on verra plus loin dans l'étude de JPEG un exemple
concret d'application de cette dernière méthode.




4. Standards de compression d'image - JPEG


Des méthodes de compression d'images sont standardisées et obéissent donc à un processus
clairement défini et connu. Les deux principaux standards sont à l'heure actuelle JPEG pour les images
fixes et MPEG pour les images animées. Nous n'examinerons ici, mais avec assez de détails, que le cas
de JPEG.

Le Joint Photographic Expert Group (JPEG) correspond à la succession de trois opérations : application
d'une transformation DCT; quantification; codage. Le décodeur effectue exactement en sens inverse
ces opérations. Des circuits intégrés existent qui effectuent automatiquement les opérations de
codage et de décodage.

Pour comprendre le processus de compression JPEG, étudions un exemple. Une image quelconque est
tout d'abord divisée en sous-images correspondant à des blocs 8x8 de pixels. La figure (a) donne un
exemple d'une telle sous-image I où chaque pixel est représenté par un niveau de gris de 0 à 255.
Chaque niveau est diminué de 27 = 128 (b) ce qui fournit une image I'. Puis on applique une
transformation par DCT (c) d'où le tableau de coefficients J.
La quantification ou troncature est appliquée en suivant la méthode du codage à seuil :




où Z(u,v) est une matrice de normalisation. La matrice Z employée est donnée à la figure (d). Le
résultat (e) est donné par une suite obtenue par balayage zig-zag de la matrice J* (f) :

-25    -2      0     -3     -2    -5       2    -4     1   -4   1    1    5    0    2     0   0   -1
2 0    0 0      0   0 -1    -1   EOB

où EOB est le caractère de fin de bloc.

La suite des opérations est plus complexe : on effectue un codage particulier pour le coefficient le
plus important (coefficient DC), puis un autre codage pour les autres coefficients (coefficients AC):
1) On calcule la différence entre le coefficient DC ( premier coefficient) de J* et celui de la sous-
image précédemment traitée ( par exemple -15); le résultat, -10, permet de déterminer, à partir de la
table JPEG des catégories (a), la catégorie à prendre en compte (4) pour obtenir, dans la table JPEG
de luminance (b), le code de base (101) et la longueur totale du code (7). Il faut donc compléter le code
de base à 3 bits par 4 bits complémentaires; ceux-ci sont générés par la règle suivante : si la
différence DCl - DC l-1 est positive, on prend les K bits (où K est la catégorie précédemment
déterminée) les moins significatifs de DCl ; si la différence DCl - DCl-1 est négative, on prend le K bits
les moins significatifs de DCl et on retranche 1. Nous sommes ici dans le second cas : -11 = (0101)2. On
a donc finalement pour le code de DC : 1010101.

2) Pour le codage des coefficients AC, on utilise les tables données en (a) et (c) où cette dernière
table est donnée partiellement. On notera sur (c) que le nombre de " 0 " devant un coefficient AC non
nul est pris en considération. On peut ainsi, pour chaque coefficient AC, déterminer sa catégorie, puis
son code de base et sa longueur; les bits complémentaires sont obtenus avec la règle suivante : si le
coefficient est positif, on prend les bits les moins significatifs; si le coefficient AC est négatif, on
retranche 1 et on prend les bits les moins significatifs. Ainsi :

       -2 ---------> catégorie 2 --------->code de base 01 et longueur 4 -------------> code 0101

       -3 ---------> catégorie 2 --------->code de base 111001 et longueur 8 --------> code
11100100

etc.....

En définitive, on obtient la suite codée :

1010101 0101 11100100 0101 1000010 0110 100011 001 100011 001 001 100101 11100110 110110 0110
11110100 000 1010

Il est intéressant de calculer le gain en compression ainsi obtenu. La sous-image 8x8 était codée sur
256 niveaux, donc elle représente, non compressée, un volume de 8x8x8 = 512 bits; Le nombre de bits
de la sous-image compressée est 94 bits. Le rapport de compression est donc 5,45.




Bibliographie

R.C.GONZALES, R.E.WOODS                 Digital Image Processing     Addison Wesley
                                        Traitement numérique des     Presses Polytechniques et
M.KUNT,G.GRANDLUND,M.KOCHER
                                        images                       Universitaires Romandes
Compression des images - Exercices
                                  dernière modification : 21/03/2000




Exercice 1
On considère l'image suivante en 4 couleurs 0 (noir), 1, 2, 3 (blanc) :




       1) Si on utilise un codage de l'image initiale défini par la table ci-dessous, quelle est la
       taille du fichier correspondant en bits ?


                                               couleur code
                                                  0      00
                                                  1       01
                                                  2       10
                                                  3       11


       2) On utilise une technique de compression d'image basée sur l'utilisation du code
       suivant :


                                               couleur code
                                                  0       11
1      01
                                         2      10
                                         3     001


Quelle est la taille du fichier avec cette compression ? En déduire le rapport de
compression.
Compression d'images - Solution des
                 Exercices
                                 dernière modification : 21/03/2000




Exercice 1

1) taille : 512 bits

2) taille : 619 bits
  C = 1,2 (il s'agit d'une très mauvaise compression !)

Weitere ähnliche Inhalte

Andere mochten auch

ETAPA II: MEJORAS ACCESO AL C.C. LA CASCADA
ETAPA II: MEJORAS ACCESO AL C.C. LA CASCADAETAPA II: MEJORAS ACCESO AL C.C. LA CASCADA
ETAPA II: MEJORAS ACCESO AL C.C. LA CASCADADon Huskey
 
Departamento San jose Oriente
Departamento San jose OrienteDepartamento San jose Oriente
Departamento San jose OrienteNicolas Lopez
 
Actividad5.infraestructura.pki.juan carrillo
Actividad5.infraestructura.pki.juan carrilloActividad5.infraestructura.pki.juan carrillo
Actividad5.infraestructura.pki.juan carrilloJuan
 
Grammar
GrammarGrammar
GrammarIngrid
 
Insolites et amusantes
Insolites et amusantesInsolites et amusantes
Insolites et amusantesRenée Gasser
 
Azores Isla De San Miguel
Azores Isla De San MiguelAzores Isla De San Miguel
Azores Isla De San Miguelubisabel
 
MASTER UPV-EHU. El modelo urbanístico y de vivienda vasco
MASTER UPV-EHU. El modelo urbanístico y de vivienda vasco MASTER UPV-EHU. El modelo urbanístico y de vivienda vasco
MASTER UPV-EHU. El modelo urbanístico y de vivienda vasco Javier Buron Cuadrado
 
Sociedad De La Informacion
Sociedad De La InformacionSociedad De La Informacion
Sociedad De La Informaciondamianbonaudi15
 
Situación 3
Situación  3Situación  3
Situación 3MEP
 
La croissance belge reste positive
La croissance belge reste positive La croissance belge reste positive
La croissance belge reste positive lesoirbe
 
The Friki Times #8
The Friki Times #8The Friki Times #8
The Friki Times #8khancerberos
 
2.4. Changement Climatique : Partenariat entre les départements sectoriels, l...
2.4. Changement Climatique : Partenariat entre les départements sectoriels, l...2.4. Changement Climatique : Partenariat entre les départements sectoriels, l...
2.4. Changement Climatique : Partenariat entre les départements sectoriels, l...Barijaona Ramaholimihaso
 
Emercadeo.net.Estudio SEO Posicionamiento WEB 2008 Colombia
Emercadeo.net.Estudio SEO Posicionamiento WEB 2008 ColombiaEmercadeo.net.Estudio SEO Posicionamiento WEB 2008 Colombia
Emercadeo.net.Estudio SEO Posicionamiento WEB 2008 ColombiaLuis Chaquea
 
SAS Forums Soft Computing Big Data Applications Marketing
SAS Forums Soft Computing Big Data Applications MarketingSAS Forums Soft Computing Big Data Applications Marketing
SAS Forums Soft Computing Big Data Applications MarketingSoft Computing
 

Andere mochten auch (20)

ETAPA II: MEJORAS ACCESO AL C.C. LA CASCADA
ETAPA II: MEJORAS ACCESO AL C.C. LA CASCADAETAPA II: MEJORAS ACCESO AL C.C. LA CASCADA
ETAPA II: MEJORAS ACCESO AL C.C. LA CASCADA
 
Departamento San jose Oriente
Departamento San jose OrienteDepartamento San jose Oriente
Departamento San jose Oriente
 
Actividad5.infraestructura.pki.juan carrillo
Actividad5.infraestructura.pki.juan carrilloActividad5.infraestructura.pki.juan carrillo
Actividad5.infraestructura.pki.juan carrillo
 
Grammar
GrammarGrammar
Grammar
 
Superbe chute
Superbe chuteSuperbe chute
Superbe chute
 
Insolites et amusantes
Insolites et amusantesInsolites et amusantes
Insolites et amusantes
 
Aac 2015 adcifre shs
Aac 2015 adcifre shsAac 2015 adcifre shs
Aac 2015 adcifre shs
 
Azores Isla De San Miguel
Azores Isla De San MiguelAzores Isla De San Miguel
Azores Isla De San Miguel
 
RETOS EDUCATIVOS
RETOS EDUCATIVOSRETOS EDUCATIVOS
RETOS EDUCATIVOS
 
MASTER UPV-EHU. El modelo urbanístico y de vivienda vasco
MASTER UPV-EHU. El modelo urbanístico y de vivienda vasco MASTER UPV-EHU. El modelo urbanístico y de vivienda vasco
MASTER UPV-EHU. El modelo urbanístico y de vivienda vasco
 
Sociedad De La Informacion
Sociedad De La InformacionSociedad De La Informacion
Sociedad De La Informacion
 
Situación 3
Situación  3Situación  3
Situación 3
 
La croissance belge reste positive
La croissance belge reste positive La croissance belge reste positive
La croissance belge reste positive
 
The Friki Times #8
The Friki Times #8The Friki Times #8
The Friki Times #8
 
2.4. Changement Climatique : Partenariat entre les départements sectoriels, l...
2.4. Changement Climatique : Partenariat entre les départements sectoriels, l...2.4. Changement Climatique : Partenariat entre les départements sectoriels, l...
2.4. Changement Climatique : Partenariat entre les départements sectoriels, l...
 
Emercadeo.net.Estudio SEO Posicionamiento WEB 2008 Colombia
Emercadeo.net.Estudio SEO Posicionamiento WEB 2008 ColombiaEmercadeo.net.Estudio SEO Posicionamiento WEB 2008 Colombia
Emercadeo.net.Estudio SEO Posicionamiento WEB 2008 Colombia
 
SAS Forums Soft Computing Big Data Applications Marketing
SAS Forums Soft Computing Big Data Applications MarketingSAS Forums Soft Computing Big Data Applications Marketing
SAS Forums Soft Computing Big Data Applications Marketing
 
Wordpress
WordpressWordpress
Wordpress
 
Abrazos
AbrazosAbrazos
Abrazos
 
Noticias Agosto 09
Noticias Agosto 09Noticias Agosto 09
Noticias Agosto 09
 

Ähnlich wie D226 chapitre 6

representation_numerique_de_l_information_annote.ppt
representation_numerique_de_l_information_annote.pptrepresentation_numerique_de_l_information_annote.ppt
representation_numerique_de_l_information_annote.pptphysikcollege
 
dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...
dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...
dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...SamiraElMargae1
 
Chapitre-2_SYSTEMES DE NUMERATION ET CODAGE.pdf
Chapitre-2_SYSTEMES DE NUMERATION ET CODAGE.pdfChapitre-2_SYSTEMES DE NUMERATION ET CODAGE.pdf
Chapitre-2_SYSTEMES DE NUMERATION ET CODAGE.pdfRazaneLAMARA
 
Numeration et codage_de_linfo
Numeration et codage_de_linfoNumeration et codage_de_linfo
Numeration et codage_de_linfoyarsenv47
 
Tp transcodage logique combinatoire
Tp transcodage logique combinatoireTp transcodage logique combinatoire
Tp transcodage logique combinatoirebilal001
 
Les mathématiques au service du transport de l’information
Les mathématiques au service du transport de l’informationLes mathématiques au service du transport de l’information
Les mathématiques au service du transport de l’informationDany-Jack Mercier
 
td_devoirs_2013.pdf
td_devoirs_2013.pdftd_devoirs_2013.pdf
td_devoirs_2013.pdfMeryemH2
 
0. les réseaux le code binaire-hexa
0. les réseaux   le code binaire-hexa0. les réseaux   le code binaire-hexa
0. les réseaux le code binaire-hexaTruc Much
 
Tp1 architecture m.zarboubi
Tp1 architecture m.zarboubiTp1 architecture m.zarboubi
Tp1 architecture m.zarboubiMOHAMED ZARBOUBI
 
Cour d'informatique c++
Cour d'informatique c++Cour d'informatique c++
Cour d'informatique c++AHMADELHADDADI
 
Joue à la crypto ! (french)
Joue à la crypto ! (french)Joue à la crypto ! (french)
Joue à la crypto ! (french)Ange Albertini
 
TD systèmes logiques.pdf----------------
TD systèmes logiques.pdf----------------TD systèmes logiques.pdf----------------
TD systèmes logiques.pdf----------------NasriMohsen2
 
examen en DSP 2023.pdf
examen en DSP 2023.pdfexamen en DSP 2023.pdf
examen en DSP 2023.pdfkamouf
 

Ähnlich wie D226 chapitre 6 (20)

Codage_Information.pptx
Codage_Information.pptxCodage_Information.pptx
Codage_Information.pptx
 
representation_numerique_de_l_information_annote.ppt
representation_numerique_de_l_information_annote.pptrepresentation_numerique_de_l_information_annote.ppt
representation_numerique_de_l_information_annote.ppt
 
Compression JPEG
Compression JPEGCompression JPEG
Compression JPEG
 
dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...
dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...
dokumen.tips_cours-3-chiffrement-par-bloc-cole-normale-ferradi-1997-le-des-co...
 
Chapitre-2_SYSTEMES DE NUMERATION ET CODAGE.pdf
Chapitre-2_SYSTEMES DE NUMERATION ET CODAGE.pdfChapitre-2_SYSTEMES DE NUMERATION ET CODAGE.pdf
Chapitre-2_SYSTEMES DE NUMERATION ET CODAGE.pdf
 
Numeration et codage_de_linfo
Numeration et codage_de_linfoNumeration et codage_de_linfo
Numeration et codage_de_linfo
 
Tp transcodage logique combinatoire
Tp transcodage logique combinatoireTp transcodage logique combinatoire
Tp transcodage logique combinatoire
 
Les mathématiques au service du transport de l’information
Les mathématiques au service du transport de l’informationLes mathématiques au service du transport de l’information
Les mathématiques au service du transport de l’information
 
td_devoirs_2013.pdf
td_devoirs_2013.pdftd_devoirs_2013.pdf
td_devoirs_2013.pdf
 
sujet 1.pptx
sujet 1.pptxsujet 1.pptx
sujet 1.pptx
 
Ch1 questions
Ch1 questionsCh1 questions
Ch1 questions
 
0. les réseaux le code binaire-hexa
0. les réseaux   le code binaire-hexa0. les réseaux   le code binaire-hexa
0. les réseaux le code binaire-hexa
 
Réseaux partie 2.ppt
Réseaux partie 2.pptRéseaux partie 2.ppt
Réseaux partie 2.ppt
 
Video
VideoVideo
Video
 
Tp1 architecture m.zarboubi
Tp1 architecture m.zarboubiTp1 architecture m.zarboubi
Tp1 architecture m.zarboubi
 
Cour d'informatique c++
Cour d'informatique c++Cour d'informatique c++
Cour d'informatique c++
 
Joue à la crypto ! (french)
Joue à la crypto ! (french)Joue à la crypto ! (french)
Joue à la crypto ! (french)
 
bhaj_inspiration.pdf
bhaj_inspiration.pdfbhaj_inspiration.pdf
bhaj_inspiration.pdf
 
TD systèmes logiques.pdf----------------
TD systèmes logiques.pdf----------------TD systèmes logiques.pdf----------------
TD systèmes logiques.pdf----------------
 
examen en DSP 2023.pdf
examen en DSP 2023.pdfexamen en DSP 2023.pdf
examen en DSP 2023.pdf
 

D226 chapitre 6

  • 1. Notions sur la compression des images dernière modification : 25 mars 2000 Les encyclopédies les plus complètes comportent environ 25 000 pages contenant du texte et des images . On peut considérer chaque page comme une image qui, numérisée à 300 dpi, occupe un volume de 1 Mo. Au total, la numérisation de l'ouvrage conduit à 25 Go. Il est clair que ce volume est impossible à stocker sur des supports actuels à accès convenable. Il faut donc effectuer une "compression" des données afin d'en réduire le volume . 1 - Généralités Une information I codée en binaire peut l'être de diverses manières : description I1 ( n1 bits), description I2( n2 bits), description I3 (n3 bits), ...... Parmi toutes ces descriptions "équivalentes", il y en a une qui est moins volumineuse que les autres .Par rapport à celle-ci, les autres descriptions contiennent des données redondantes . Imaginons deux descriptions I1 et I2, respectivement de n1 bits et de n2 bits. On définit les caractéristiques suivantes : q rapport de compression de I1 par rapport à I2 : C=n1/n2 q redondance relative de I1 par rapport à I2 : R=1-1/C s Si n1 = n2, alors C = 1 et R = 0 ; la description I1 ne contient pas de données redondantes par rapport à la description I2. s Si n2 << n1, alors C tend vers l'infini et R --> 1 ; la description I1 contient une forte redondance par rapport à la description I2. s Si n1 << n2, alors C --> 0 et R tend vers l'infini ; la description I2 contient une forte redondance par rapport à la description I1 . Il existe trois types de redondance que nous allons examiner ci-dessous : la redondance de codage, la redondance interpixel, la redondance psychovisuelle. 1.1 - Redondance de codage Soit une image à niveaux de gris numérotés de 0 à N-1 . On désigne par nk le nombre de pixels
  • 2. possédant le niveau k et par n le nombre total de pixels. Compte tenu du grand nombre de pixels, on définira la probabilité pour qu'un pixel possède le niveau k par p(k)=nk/n k = 0, 1, 2, ..........N-1 On effectue le codage de chaque niveau k par un nombre binaire de longueur l(k). La longueur moyenne du codage d'un pixel est donc La valeur de < l > influe nécessairement sur le volume de la description. exemple : soit 8 niveaux de gris notés de 0 à 7 . Admettons que nous ayons les probabilités suivantes : p(0) = 0,19 p(1) = 0,25 p(2) = 0,21 p(3) = 0,16 p(4) = 0,08 p(5) = 0,06 p(6) = 0,03 p(7) = 0,02 a) effectuons un premier codage I1 : simple codage en binaire de longueur fixe 3 : < l > = 3 k code 1 l(k) 0 000 3 1 001 3 2 010 3 3 011 3 4 100 3 5 101 3 6 110 3 7 111 3 b) effectuons un second codage I2 ( de longueur variable) : < l > = 2,7 k code 2 l(k) 0 11 2 1 01 2 2 10 2 3 001 3 4 0001 4 5 00001 5 6 000001 6
  • 3. 7 000000 6 Le rapport de compression et la redondance relative de I1 par rapport à I2 sont C = 3/2.7 = 1,11 R = 0,099 On notera que dans le 2ème codage, les mots courts correspondent aux niveaux les plus fréquents tandis que les mots longs correspondent aux niveaux les plus rares . 1.2 - Redondance interpixel La redondance interpixel porte sur le constat suivant : bien souvent, le niveau d'un pixel peut être prédit à partir des niveaux des pixels environnants. Pour " mesurer " cette redondance, on calcule des coefficients d'autocorrélation entre des pixels distants de Dn ; par exemple, le long d'une ligne on posera où n est le nombre de pixels d'une ligne, x et y les coordonnées d'un pixel et I(x,y) le niveau de gris ou de couleur du pixel. En général, les valeurs de g pour les faibles valeurs de Dn indiquent une forte corrélation impliquant que l'information portée par un pixel particulier peut être souvent prédite par l'information portée par les pixels voisins. . 1.3 - Redondance psychovisuelle L'oeil humain perçoit une image de manière particulière; il sait reconnaître des détails qui portent plus d'information que d'autres. Par suite, on peut éliminer les détails qui ont très peu d'importance sans dégrader de manière significative la qualité de l'image; cette opération est une quantification ( opération irréversible). La codification IGS (Improved Gray Scale) est une méthode de codage permettant de prendre en compte le préoccupations développées ci-dessus. Supposons que l'on ait une image originale à 256 niveaux de gris. On peut réduire le volume de l'image en codant sur 16 niveaux par des méthodes développées au chapitre sur le traitement d'image; malheureusement ces méthodes appliquées brutalement font apparaître des effets quelquefois inesthétiques ou purement artificiels (passages brusques d'un niveau de gris à un autre, faux contours notamment). La codification IGS est un moyen d'adoucir le procédé. Le principe est le suivant : le codage à 256 niveaux s'effectue sur 8 bits séparables en poids forts (4 bits) et poids faibles (4 bits); pour des pixels successifs, le codage IGS à 16 niveaux (donc sur 4 bits) s'obtient en tenant compte du codage sur 8 bits des pixels précédents et en ne retenant que les bits de poids forts. La figure ci-dessous donne l'algorithme précis correspondant.
  • 4. 1.4 - Critères de confiance Etant donné une image originale dont le niveau d'un pixel (x,y) est noté I(x,y) et une image compressée puis décompressée dont le niveau d'un pixel (x,y) est noté I'(x,y), on peut définir deux types de critères permettant de juger la qualité de la compression: q des critères objectifs, basés sur le calcul de l'erreur quadratique moyenne e et du rapport signal/bruit r : où l'image est prise ici de dimension MxN. q des critères subjectifs qui peuvent se résumer à une échelle d'appréciation effectuée par un échantillon d'usagers : 1 = excellent 2 = bien 3 = passable 4 = limite 5 = mauvais 6= inutilisable 1.5 - Modélisation de la compression d'image Un système de compression comporte un encodeur à une extrémité du processus (source)et un décodeur à l'autre extrémité du processus (utilisation). Entre le codage de l'information source et le décodage pour utilisation existe un canal qui est la cause principale de l'opération de compression; par exemple, le canal pourra être un réseau de transmission de données ou tout simplement un dispositif de stockage. La figure ci-dessous précise la chaîne d'opérations relatives à la compression/décompression d'informations.
  • 5. L'encodeur est double; il consiste en un encodeur de source et en un encodeur de canal. L'encodeur de source comprend trois étages : q le mapping qui effectue la transformation des données dans un format permettant de réduire les redondances interpixels q la quantification qui réduit les redondances psychovisuelles q le codage qui réduit précisément les redondances de .....codage. De ces trois opérations, seule la quantification est une opération irréversible ( puisque des données sont abandonnées). L'encodeur de canal est nécessaire quand le canal est " bruiteux "; il s'agit alors de coder les données dans un format permettant de réduire au maximum les erreurs dûes au passage de l'information dans le canal, c'est à dire d'accroître l'immunité au bruit ; pour les canaux du type réseau de transmission de données les codes de Hamming sont les plus connus et les plus utilisés; ils permettent de détecter les erreurs et de les auto-corriger. A l'autre extrémité de la chaîne, on trouve tout d'abord le décodeur de canal qui effectue l'opération inverse de l'encodeur de canal, puis le décodeur de source qui ne se compose que de deux étages q le décodage qui rétablit les redondances de codage q le mapping inverse qui rétablit les redondances interpixel La quantification inverse évidemment n'a pas de sens, puisque l'opération directe est irréversible. Les systèmes de compression utilisés réellement ne comportent pas nécessairement tous les blocs fonctionnels de la figure précédente. On peut d'ailleurs distinguer 2 catégories de systèmes de compression q Si I'(x,y) = I(x,y), le système de compression est idéal ; il correspond à la compression sans pertes appelée quelquefois compactage. q Si I'(x,y) <> I(x,y), le système de compression admet une distorsion; il correspond à la compression avec pertes.
  • 6. 2 - Compression sans pertes ou compactage Certaines applications nécessitent une compression sans perte d'information (domaine médical). Dans ce cas, l'opération de quantification n'interviendra pas et seules les opérations réversibles de mapping et de codage seront utilisées. Plusieurs méthodes sont employées parmi lesquelles le codage à longueur variable, le codage en plans de bits et le codage prédictif. 2.1 - Codage à longueur variable. La philosophie de base de cette méthode est la réduction de la redondance de codage par affectation de codes " longs " pour les items rares et de codes " courts " pour les items fréquents. Le codage de Huffman est un code appartenant à la famille des codages à longueur variable. Son principe réside en trois étapes : q 1ère étape : les symboles de l'information à coder sont comptabilisés puis classés par ordre de probabilité décroissante. q 2ème étape : on effectue des réductions de source en sommant les deux probabilités les plus basses ce qui donne la probabilité d'un symbole " composé "; les autres probabilités restant inchangées, on réordonne la liste ans l'ordre des probabilités décroissantes. On continue ainsi de manière dichotomique jusqu'à obtenir 2 seules probabilités. q 3ème étape : on procède au codage en faisant en sens inverse le cheminement précédent. La figure ci-dessous indique les trois étapes sur un exemple simple.
  • 7. Le code une fois créé, une table définit simplement l'encodeur comme le décodeur. On remarquera que la construction du code de Huffman peut être laborieuse : 256 niveaux de gris correspondent à 254 réductions de source, puis à 254 définitions de codes. On est alors amené à faire sur la méthode précédente un certain nombre de modifications simplificatrices : q code de Huffman tronqué : les m symboles les plus fréquents sont codés avec la méthode Huffman; pour les autres symboles, on utilise un codage constitué d'un préfixe ( par exemple 10) suivi d'un numéro binaire à partir de 0. q B-code : ce code est constitué de bits appelés bits de continuation ( notés ici C) et de p bits d'information (p fixé) représentant un numéro binaire. Tous les p bits, on aura évidemment un groupe C mais quand on change de symbole les bits de C changent. La figure ci-dessous indique, pour l'exemple déjà traité , le code résultant. q séparation en blocs : les symboles sont divisés en s groupes. Un symbole est codé par son numéro binaire dans le groupe précédé par le drapeau de groupe. La numérotation suit les probabilités décroissantes. Une variante de cette méthode consiste à coder chaque symbole dans un groupe donné par le code de Huffman correspondant au lieu du numéro binaire. Une autre famille de codages est celle des codages arithmétiques. Ses caractéristiques sont les suivantes : 1) il n'y a pas de correspondance biunivoque entre les symboles et les codes; 2) un message est une séquence de symboles sources correspondant à un mot de code unique; 3) le mot de code définit un intervalle de nombres réels compris entre 0 et 1; 4) quand le nombre de symboles d'un message s'accroît, l'intervalle devient plus petit et le nombre de bits décrivant l'intervalle est plus grand. La figure ci-dessous explicite le procédé de codage.
  • 8. Le procédé a toutefois des limites : l'emploi d'un caractère de fin ( ici m4) limitant le message et la précision des calculs (n'importe quel nombre dans l'intervalle [ 0,33288, 0,33360[ représente le message). 2.2. Codage en plans de bits Il s'agit ici de réduire la redondance interpixel. Le principe d'un codage en plans de bits consiste en la décomposition d'un image à plusieurs niveaux en une série d'images binaires, puis chaque image binaire est compressée. Codé sur m bits, le niveau d'un pixel s'exprime comme un nombre binaire compris entre 0 et 2m-1. On peut donc exprimer ce niveau sous forme d'un polynôme am-12m-1 + am-22m-2 + ........ + a121 + a020 (m niveaux) Chaque coefficient du polynôme( 0 ou 1) correspond à la présence d'un point noir ou blanc dans un plan de niveau p :
  • 9. Ceci permet donc la décomposition de l'image en m images binaires. Il y a toutefois un inconvénient à la méthode : si un léger changement de niveau de gris se présente, il peut entraîner un changement sur toutes les images binaires de la décomposition. Ainsi le niveau 127 = (0111111)2 et le niveau 128 = (10000000)2 sont des niveaux très voisins; pourtant leurs bits de codage sont tous différents. On remédie à cette difficulté en employant un code Gray qui à tout code am-1 am- 2 ..... a1 a0 fait correspondre le code gm-1 gm-2 ..... g1 g0 tel que gm-1 = am-1 et gi = ou exclusif(ai ,ai+1 ) pour 0 <= i <= m-2. Ainsi 127 = (0100000)Gray et 128 = (11000000)Gray et un seul bit change. Il reste maintenant à coder de manière compressée les images binaires. La méthode CAC ( Constant Area Coding) consiste à diviser l'image binaire en blocs de taille mxn pixels; un bloc sera soit tout noir, soit tout blanc, soit mixte. On affecte le code 0 pour le type le plus fréquent, 10 et 11 pour les deux autres; bien entendu, si le bloc est mixte ce code est un préfixe qui doit être suivi du codage des mn bits. Une autre méthode populaire est le RLC ( Run Length Coding) : chaque ligne d'image est découpée en blocs de bits successifs de même niveau (appelés runs); un code est affecté à chaque bloc , par exemple un code en longueur variable. Comme il s'agit d'images binaires, il suffit de spécifier la valeur (noir ou blanc) du premier bloc de la ligne ou supposer que chaque ligne commence avec un bloc " blanc " de longueur éventuellement nulle. 2.3. Codage prédictif Le codage prédictif est utilisé pour réduire la redondance interpixel : le niveau du pixel à coder est calculé (" prédit ") à partir des n pixels précédents, mais seule la différence entre le niveau réel et la
  • 10. prédiction est codée. La figure ci-dessous montre le diagramme fonctionnel d'un système de codage et de décodage prédictifs ; l'indice n correspond au rang d'un pixel. La prédiction J(x,y) est donnée usuellement par une expression de la forme où les coefficients réels aij sont des poids statistiques affectés aux pixels précédents. Une application simple de cette formule est le codage prédictif d'un pixel à partir du pixel situé juste au dessus : J(x,y) = I(x,y-1) Il est bien évident que les premiers pixels doivent être codés en absolu. 3. Compression avec pertes Les méthodes de compression avec pertes incluent une quantification par rapport aux méthodes de compression sans pertes. On distingue principalement les méthodes à codage prédictifs, extensions des méthodes vues précédemment, et les méthodes par transformation. 3.1. Codages prédictifs La figure i-dessous explicite le dispositif de compression où l'indice n est relatif au rang d'un pixel. On notera que la quantification s'applique à la différence entre le niveau réel et le niveau prédit et que ce
  • 11. résultat est codé. > Une application illustrative du procédé est la modulation Delta définie par : Si l'on applique cet algorithme avec α = 1 et ξ = 3,5 à la suite de pixels de niveaux 21, 25, 21, 24, 22, 22 on aura successivement pixel 0 : niveau I0 = 21; initialisation à K0 = 21 pixel 1 : niveau I1 = 25 J1 =K0 = 21 e1 = I1 - J1 = 4 > 0 e1 = 3,5 K1 = J1 + e1 = 24,5 pixel 2 : niveau I2 = 21 J2 = K1 =24,5 e2 = I2 - J2 = -3,5 < 0 e2 = -3,5 K2 = J2 + e2 = 21 pixel 3 : niveau I3 = 24 J3 = K2 = 21 e3 = I3 - J3 = 3 > 0 e3 = 3,5 K3 = J3+ e3 = 24,5 pixel 4 : niveau I4 = 22 J4 = K3 = 24,5 e4 = I4 - J4 = -2,5 < 0 e4 = -3,5 K4 = J4 + e4 = 21 pixel 5 : niveau I5 = 22 J5 = K4 = 21 e5 = I5 - J5 = 1 > 0 e5 = 3,5 K5 = J5 + e5 = 24,5 La suite 21 3,5 -3,5 3,5 -3,5 3,5 sera ensuite envoyée dans le codeur réduisant la redondance de codage (certainement importante ici). Les prédicteurs employés ci-dessus sont assez arbitraires; dans la réalité on peut trouver des prédicteurs " optimaux " minimisant la différence en. On ne développera pas cet aspect ici. 3.2. Codage par transformation Contrairement au codage prédictif qui agit directement sur la géométrie de l'image, le codage par transformation effectue une transformation de l'image du domaine spatial dans un autre domaine que l'on pourrait appeler fréquentiel; plus précisément la transformation appliquée à l'image convertit
  • 12. l'ensemble des pixels en un ensemble de coefficients. La figure suivante montre la chaîne d'opérations nécessaires pour compresser et décompresser une image. L'image supposée carrée et comportant NxN pixels est divisée en (N/n)2 sous-images de taille nxn. Sur chacune de ces sous-images, on applique une transformation linéaire qui fournit une série de coefficients. I(x,y) désignant un pixel d'une sous-image nxn et J(u,v) représentant sa transformée par une transformation h, on a la relation linéaire suivante On peut aussi écrire, puisque l'ensemble des pixels de l'image initiale correspond à une matrice carrée nxn I de niveaux I(x,y) avec > On peut donc considérer l'image initiale I comme une superposition coefficientée d'images de base Huv. Toutefois, le nombre de ces images étant généralement important, il peut être utile de faire une approximation et de supprimer les images de base pour lesquelles la contribution est très faible. Introduisons à cet effet un masque w(u,v) égal à 0 si le coefficient J(u,v) satisfait un critère de troncature et égal à 1 sinon. On obtient alors l'approximation
  • 13. Les transformations h utilisées sont principalement la transformation de Karhunen-Loeve, la transformation de Fourier discrète, la transformation en cosinus discrète (DCT); cette dernière est la plus populaire ( mais non la plus performante); elle est définie ci-dessous : Le critère de troncature est issu de deux méthodes principales : la méthode du codage zonal qui est basée sur l'examen des variances s2(J(u,v) et la méthode du codage à seuil qui est basée sur l'emploi d'un seuil de grandeur des coefficient J(u,v); on verra plus loin dans l'étude de JPEG un exemple concret d'application de cette dernière méthode. 4. Standards de compression d'image - JPEG Des méthodes de compression d'images sont standardisées et obéissent donc à un processus clairement défini et connu. Les deux principaux standards sont à l'heure actuelle JPEG pour les images fixes et MPEG pour les images animées. Nous n'examinerons ici, mais avec assez de détails, que le cas de JPEG. Le Joint Photographic Expert Group (JPEG) correspond à la succession de trois opérations : application d'une transformation DCT; quantification; codage. Le décodeur effectue exactement en sens inverse ces opérations. Des circuits intégrés existent qui effectuent automatiquement les opérations de codage et de décodage. Pour comprendre le processus de compression JPEG, étudions un exemple. Une image quelconque est tout d'abord divisée en sous-images correspondant à des blocs 8x8 de pixels. La figure (a) donne un exemple d'une telle sous-image I où chaque pixel est représenté par un niveau de gris de 0 à 255. Chaque niveau est diminué de 27 = 128 (b) ce qui fournit une image I'. Puis on applique une transformation par DCT (c) d'où le tableau de coefficients J.
  • 14. La quantification ou troncature est appliquée en suivant la méthode du codage à seuil : où Z(u,v) est une matrice de normalisation. La matrice Z employée est donnée à la figure (d). Le résultat (e) est donné par une suite obtenue par balayage zig-zag de la matrice J* (f) : -25 -2 0 -3 -2 -5 2 -4 1 -4 1 1 5 0 2 0 0 -1 2 0 0 0 0 0 -1 -1 EOB où EOB est le caractère de fin de bloc. La suite des opérations est plus complexe : on effectue un codage particulier pour le coefficient le plus important (coefficient DC), puis un autre codage pour les autres coefficients (coefficients AC):
  • 15. 1) On calcule la différence entre le coefficient DC ( premier coefficient) de J* et celui de la sous- image précédemment traitée ( par exemple -15); le résultat, -10, permet de déterminer, à partir de la table JPEG des catégories (a), la catégorie à prendre en compte (4) pour obtenir, dans la table JPEG de luminance (b), le code de base (101) et la longueur totale du code (7). Il faut donc compléter le code de base à 3 bits par 4 bits complémentaires; ceux-ci sont générés par la règle suivante : si la différence DCl - DC l-1 est positive, on prend les K bits (où K est la catégorie précédemment déterminée) les moins significatifs de DCl ; si la différence DCl - DCl-1 est négative, on prend le K bits les moins significatifs de DCl et on retranche 1. Nous sommes ici dans le second cas : -11 = (0101)2. On a donc finalement pour le code de DC : 1010101. 2) Pour le codage des coefficients AC, on utilise les tables données en (a) et (c) où cette dernière table est donnée partiellement. On notera sur (c) que le nombre de " 0 " devant un coefficient AC non nul est pris en considération. On peut ainsi, pour chaque coefficient AC, déterminer sa catégorie, puis son code de base et sa longueur; les bits complémentaires sont obtenus avec la règle suivante : si le coefficient est positif, on prend les bits les moins significatifs; si le coefficient AC est négatif, on retranche 1 et on prend les bits les moins significatifs. Ainsi : -2 ---------> catégorie 2 --------->code de base 01 et longueur 4 -------------> code 0101 -3 ---------> catégorie 2 --------->code de base 111001 et longueur 8 --------> code
  • 16. 11100100 etc..... En définitive, on obtient la suite codée : 1010101 0101 11100100 0101 1000010 0110 100011 001 100011 001 001 100101 11100110 110110 0110 11110100 000 1010 Il est intéressant de calculer le gain en compression ainsi obtenu. La sous-image 8x8 était codée sur 256 niveaux, donc elle représente, non compressée, un volume de 8x8x8 = 512 bits; Le nombre de bits de la sous-image compressée est 94 bits. Le rapport de compression est donc 5,45. Bibliographie R.C.GONZALES, R.E.WOODS Digital Image Processing Addison Wesley Traitement numérique des Presses Polytechniques et M.KUNT,G.GRANDLUND,M.KOCHER images Universitaires Romandes
  • 17. Compression des images - Exercices dernière modification : 21/03/2000 Exercice 1 On considère l'image suivante en 4 couleurs 0 (noir), 1, 2, 3 (blanc) : 1) Si on utilise un codage de l'image initiale défini par la table ci-dessous, quelle est la taille du fichier correspondant en bits ? couleur code 0 00 1 01 2 10 3 11 2) On utilise une technique de compression d'image basée sur l'utilisation du code suivant : couleur code 0 11
  • 18. 1 01 2 10 3 001 Quelle est la taille du fichier avec cette compression ? En déduire le rapport de compression.
  • 19. Compression d'images - Solution des Exercices dernière modification : 21/03/2000 Exercice 1 1) taille : 512 bits 2) taille : 619 bits C = 1,2 (il s'agit d'une très mauvaise compression !)