Title: Limage manipule
1- Limage manipulée
- Chapitre 2 compressions dimages numériques
- Pierre Courtellemont / Laurent Mascarilla
- L3i Département Informatique
- pcourtel_at_univ-lr.fr
2- Compression avec et sans perte
- Une image, un son, peuvent être enregistrés ou
transférés sous une forme plus compacte, en
saccordant de perdre un peu de linformation
quils transportent la partie la moins
importante pour lil ou loreille. - Ces procédés de compression font appel à des
modèles psychoacoustiques ou psychovisuels. Pour
appliquer ces modèles, on est la plupart du
temps, contraint à changer lespace de
représentation. Ainsi, on utilise des
transformées (FFT, DCT, DWT) qui permettent
deffectuer les suppressions dans le domaine
fréquentiel. - Mais on utilise aussi tous les artifices qui
permettent de compacter linformation en recodant
intelligemment les données en fonction de
linformation quelles véhiculent.
3Exemple. Reprenons limage déjà utilisée
Réduite à 800600 pixels, limage couleur
nécessite 1 440 000 octets soit environ 1,37
Mo. Enregistrons la en JPEG qualité 20 (sur une
échelle de 0 à 100). Limage présente il est vrai
quelques artéfacts.
4Limage fait maintenant 21 ko. (21 113 octets
exactement) Cherchons à calculer quelle place
peut prendre 1 pixel de cette image. 21 113 8
(bits) / 800 / 600 0.35 bit / pixel Comment
est-il possible de coder autant de couleurs
possibles sur 0.35 bit (soit moins de 1 bit qui
ne permet que de coder que du noir OU du blanc
? Bien sûr, il sagit dun calcul de moyenne
une partie dimage uniforme (1 seule couleur)
peut se coder par 2 valeurs la première codant
la couleur, la seconde le nombre de pixels ayant
cette même couleur. Mais on saperçoit vite que
cela ne suffit pas pour arriver à 0.35 bit on
naurait que quelques couleurs dans limage
5Pour arriver à un tel résultat, on a été obligé
de perdre une certaine quantité dinformation, la
moins importante pour lil. Peut-on prévoir
jusquoù il est possible de descendre SANS perte
? Cest lobjet de la théorie de linformation
6- Approche intuitive de lInformation
- On ne peut pas prévoir lévolution ultérieure
dune grandeur aléatoire ! - La connaissance de sa valeur à linstant présent
apporte donc un renseignement, on dit que le
signal transporte de linformation. - Les images, les sons peuvent être perçues comme
une suite de données apportant plus ou moins
dinformation en fonction de la probabilité
quont les événements de se produire. - Plutôt que sur une suite de valeurs de pixel
dune image, on va raisonner sur les caractères
dun texte quelconque. - Dans un texte français, toutes les lettres nont
pas la même probabilité dapparaître. Pourtant,
dans un texte non compressé, toutes les lettres
prennent la même place (1 octet).
7- Lidée est de coder différemment les données si
une lettre intervient très souvent, on la code
par un code le plus court possible (sur 1 bit,
ou 2 bits par exemple). Ce qui veut dire quil
faudra prévoir des codes plus longs pour dautres
lettres, mais ce qui nest pas grave si ces
lettres sont peu nombreuses. - On va essayer de formaliser tout cela en
cherchant une définition de linformation. - Cette grandeur, que lon perçoit de façon
intuitive, nest pas facile à définir
quantitativement, il est cependant naturel de lui
attribuer certaines propriétés - - cest une grandeur toujours positive,
- - elle est additive, toute contribution du signal
apporte une quantité dinformation qui sajoute à
celle que lon possède déjà, - - elle est liée à la probabilité associée à
lévènement la quantité dinformation doit être
dautant plus grande que la probabilité est
faible.
8Remarque information ou incertitude ? Il
sagit bien de la même notion abordée dun point
de vue différent - a priori, par l'incertitude
qui règne sur la réalisation dun événement E, -
a posteriori, par l'information apportée par la
réalisation de cet événement. On pourra parler
dincertitude ou dinformation, ou encore de
self-information. Nous allons voir également que
linformation peut être définie comme le nombre
déléments nécessaires à la codification de
lévénement considéré, dans un code donné. (Par
exemple, le nombre de bits nécessaires au codage
de cet événement en binaire).
9- Prenons un exemple.
- - Lincertitude sur le résultat de la loterie
nationale est plus grande que celle qui précède
un lancer de dé linformation est une fonction
croissante. - Tirons une carte dans un jeu de 32 cartes puis
lançons un dé. Linformation sajoute, alors que
le nombre de cas possibles se multiplie - Inf(326) Inf(32) Inf(6)
- Les fonctions mathématiques qui répondent à ces
conditions sont les fonctions logarithmiques - Inf I(n) log(n)
- Toutes les bases de logarithmes sont utilisables.
10Prenons maintenant un exemple où les événements
ne sont pas équiprobables. Exemple, il y a 8
trèfles dans un jeu de 32 cartes mais 4 as
seulement. Lincertitude dobtenir un as est plus
grande que celle dobtenir un trèfle, qui a une
probabilité plus grande de sortir Linformation
diminue avec la probabilité de lévénement. Finale
ment, I log(1/p) - log(p) En codage, cest
la base 2 qui est utilisée. Linformation va
donner le nombre de bits nécessaire pour coder un
message .
11Exemple codage en binaire Considérons les
chiffres décimaux. Dans un nombre, tous les
chiffres ont la même chance chacun a une chance
sur 10 dapparaître dans un nombre. I - log2
(1/10) log(10) / log(2) 3,32
bits. Effectivement, si on prend 3 bits, on peut
coder 23 8 données différentes. Avec 4 bits, on
peut réaliser 16 combinaisons différentes. Il
nous en faut que 10 dans un codage à longueur
fixe, on choisira 4 mais il y a une part de
redondance .
12Entropie Quand les événements émis par une source
ne sont pas équiprobables, pour calculer la
quantité dinformation reçue, il faut faire une
moyenne sur tous les événements possibles si Pi
est la probabilité dun événement i, la quantité
moyenne dinformation est
Cette quantité ne dépend que de la source cest
son entropie. Une source qui transmet les
résultats obtenus par lancer de dés (Résultats
équiprobables P(i) 1/6 quelque soit i) a pour
entropie
13Supposons le dé pipé. Les résultats ne sont plus
équiprobables, on peut montrer alors que
lentropie est plus faible Supposons que le
chiffre 2 a 1 chance sur 2 de sortir. Les
probabilités sont alors P(1)P(3)P(4)P(5)P(6)
0.5/50.1 et P(2)0.5 et lentropie
Lentropie dune source sera maximale lorsque
tous les messages quelle émet seront
équiprobables).
14Un exemple historique Si on considère les 26
lettres de lalphabet lespace (27 symboles),
lentropie vaut 4,75 dans le cas dune source
émettant les caractères de manière
équiprobable. Shannon a estimé les fréquences
relatives des lettres dans un texte anglais.
Après lespace 0.182, la lettre e est la plus
probable 0.107, puis t avec 0.086 jusquà
z avec 0.001. Avec ces chiffres, lentropie
tombe à 4,03. (un peu moins en français) Si on
tient compte des dépendances entre une lettre et
la suivante ( source markovienne dordre 2 ),
par le calcul dentropie conditionnelle, on
obtient 3,32 La prise en compte de 8 lettres
consécutives dans la langue anglaise donne une
entropie conditionnelle de 1,86. Comme 1,86/4,75
0,4 environ, la notion dentropie ( désordre)
signifie quil ne reste que 40 de liberté de
choisir une lettre pour écrire en anglais. Les
60 dus à la structure du langage représente la
redondance, inutile à coder.
15A titre de curiosité XFOML RHKHJFFJUJ
ZLPWCFWCKCYJFFJEYVKCQSGHYDQPAAMKBZAACIBZLHJQD est
une séquence aléatoire, OCRO HLI RGWR NMIEL VIS
EU LL NBNESEBYA TH EEI ALHENHTTPA OOBTTVA NAH
BRL est une séquence respectant les fréquences
dapparition des lettres de la langue
anglaise. Pour réaliser une séquence
correspondant à un source markovienne dordre 2,
il faut procéder ainsi on met dans 27 urnes,
des couples de lettres. Dans une urne donnée,
tous les couples commencent par la même lettre,
la seconde dans les proportions respectant
lanalyse de la langue anglaise. Quand on tire un
couple dans une urne, on choisit comme urne
suivante celle contenant les couples commençant
par la seconde lettre du 1er tirage et ainsi de
suite.
16ON IE ANTSOUTINYS ARE T INCORE ST BE S DEAMY
ACHIN DILONASIVE TUCOOWE AT TEASONARE FUSO TIZIN
ANDY TOBE SEACE CTISBE est une séquence obtenue
ainsi et IS NO IST LAT WHEY CRATICT FROURE BIRS
GROCID PONDENOME OF DEMONSTRURES OF THE REPTAGIN
IS REGOACTIONA OF CRE est une séquence
respectant les probabilités de triplets de
lettres (source markovienne dordre 3). On
commence à pouvoir prononcer.
17Extension dune source Considérons une source S
à N symboles constituant un alphabet A. Les
événements de S peuvent être regroupés par blocs
de m événements. Un bloc peut alors être
considéré comme un nouveau symbole dun nouvel
alphabet B (à Nm symboles). La nouvelle source
constituée sur B est appelée extension dordre m
de S, et est notée Sm. La probabilité dun
symbole bj est donnée par
Lentropie dun événement de Sm est lentropie
dun bloc de m événements de S HmmH.
18Petite parenthèse Une énigme très connue
illustrant les probabilités conditionnelles
Le jeu des 3 portes Un cadeau est derrière
lune des 3 portes. On désigne une porte. Le
présentateur (Lagaffe ?) ouvre lune des 2 autres
(il sait où se trouve le cadeau) et propose
léchange . Faut-il changer de choix ou le
maintenir ? Et celle-ci, beaucoup plus difficile
un singe tape sur un clavier indéfiniment au
rythme de 1 touche par seconde. Verra t-on
apparaître abracadabra au bout dun temps
moyen plus grand, identique ou plus petit que
abracadabrx ?
19Théorème du codage de source sans bruit Soit une
source sur un alphabet A et une extension Sm de
cette source sur un alphabet B. Si L(Bj) est la
longueur en bits du mot M(Bj), alors la longueur
moyenne du code est finalement
pour le codage des blocs de m événements. La
longueur moyenne par événement est donc L/m, ce
qui mesure lefficacité du code choisi. Le
théorème peut sénoncer ainsi
20Interprétation Quelque soit le degré
dextension m de la source, quel que soit le code
M(Bj) utilisé, on peut toujours trouver un code
permettant à la longueur moyenne de code de
sapprocher encore plus de lentropie (sans
jamais latteindre). Sapprocher de lentropie se
fait au prix dune augmentation de lordre de
lextension (et donc dune complexité plus
grande). On retiendra simplement lentropie
constitue une borne inférieure absolue à la
longueur moyenne dun code, quelque soit ce code.
21- Application Codes à longueur variables (codes
entropiques ) ou VLC (Variable Length Coding) - Question citer un très vieux code à longueur
variable, qualifiable dentropique - Lorsque les codes sont à longueur variable,
comment distinguer un symbole du suivant ? - Cette opération peut être faite par insertion
dun caractère réservé, ce qui augmente la taille
résultante. - Lautre solution consiste à utiliser des codes
préfixés. - Chaque nouveau code ne peut être le début (
préfixe) dun code déjà existant. Chaque nouveau
mot codé devient lui-même préfixe, et ne peut
être utilisé. - Aucun mot nest le début dun autre mot.
22Algorithme de Huffman Lalgorithme de Huffman
est certainement le plus utilisé en raison de sa
gratuité, sa simplicité et son efficacité.Un
grand nombre de normes de compression dimages le
préconisent. Cest le cas de JPEG et MPEG en
particulier.Lalgorithme de Huffmann a été
décrit pour la première fois en 1952.
Lalgorithme crée des codes de longueurs
variables en fonction des probabilités fournies
par un modèle, ou la connaissance de la séquence
complète.
23Exemple Soit un message de 36 caractères,
composé des caractères A, B, C, D et E qui
apparaissent selon les fréquences suivantes
Symboles A B C D E Fréquences 7 6 5 14
4Le graphe ci-dessous fait apparaître les
symboles depuis le plus fréquent (D) jusquau
moins fréquent (E).Les symboles C et E
fusionnent vers un même nud de poids 549
24Puis les symboles ou nuds de poids les plus
faibles sont à nouveau considérés il sagit ici
de 2 symboles à nouveau A et B Le processus
est renouvelé avec le nud de poids 9 et celui de
poids 13.
Il reste enfin à fusionner le nud de poids 22 et
le symbole restant, de poids 14
25La deuxième phase de lalgorithme consiste à
redescendre ce graphe binaire, en affectant à
la branche conduisant au poids le plus faible, la
valeur 0 par exemple, et 1 à lautre. On obtient
26Le codage obtenu est donc D (occurrence 14)
0A (occurrence 7) 111B (occurrence 6)
110C (occurrence 5) 101E (occurrence 4)
100 Quelle est la longueur moyenne de code ? 1
bit pour D qui apparaît 14 fois dans le message,
3 bits pour les autres qui apparaissent 22 fois
en tout. lm (114 373635
34)/3680/362.22 Pouvait-on faire mieux ? La
réponse est donnée par la valeur de lentropie du
message H(14/36)log2(36/14)(7/36)log2(36/7)
(6/36)log2(36/6)(5/36)log2(36/5)(4/36)log2(36
/4) 2.168 Nous voyons que la longueur moyenne
de code donné par lalgorithme dHuffman est très
proche du plancher théorique de lentropie.
27Autres codages sans perte Codages par longueur
de plages Solution adoptée dans la méthode
appelée RLE (Run Length Encoding) ou RLC (Run
Length Coding). On forme, en lisant limage
ligne par ligne, des couples longueur de plage,
intensité, où la longueur de plage est le nombre
de pixels consécutifs ayant la valeur
intensité.Cest une méthode très simple si
limage comporte de nombreuses plages de
valeurs identiques cest particulièrement vrai
dans le cas dimages avec aplats (Ex. logos,
images graphiques), ou le codage des coefficients
DCT quantifiés dans lalgorithme de type JPEG.
28- Exemple soit la suite suivante, correspondant
à des niveaux de gris prélevés dans une ligne
dimage - 11, 11, 15, 16, 16, 16, 16, 25, 25, 25, 31, 31,
31, 31, 31, 8 - Le codage par plage dun tel signal donne la
suite des paires de nombres suivantes (2, 11),
(1, 15), (4, 16), (3, 25), (5, 31), (1, 8)
fournissant un nouveau codage de la ligne - 2 11 1 15 4 16 3 25 5 31 1 8
- Les méthodes de type RLE correspondent aux
schémas les plus courants de compression des
images (dans les formats BMP, TGA, TIFF, SGI,
PICT, ). Efficace dans les images simples, il
devient mauvais sur les images complexes (scènes
naturelles).
29Parfois les méthodes de type RLE sont associées à
des lectures par plans de bits. Chaque octet est
considéré selon leurs n de bits on considère
tous les bits de rang 7, tous les bits de rang 6
etc. Les techniques RLE sont alors plus efficaces
et sont généralement combinées à des techniques
destructrices, par la suppression des bits de
poids faibles, ce qui dans le cas des images, ne
provoque pas de modification visuelle. Pour
profiter pleinement de longueurs de plages, il
faut éviter les transitions (comme entre 7 0111
et 8 1000 en binaire, par lutilisation de
codes adjacents comme le Gray réfléchi).
30Méthodes à base de dictionnaires Dans la
pratique, on peut observer des corrélations qui
sétendent au delà de plages consécutives un
motif peut réapparaître plus loin par
exemple.Dans les méthodes précédentes, un tel
motif serait à nouveau codé, ce qui conduit à
coder de linformation inutile. Les codages par
dictionnaire sont fondés sur la constitution
dune suite de motifs, apparaissant dans le flux
du message.Ces motifs remplissent un
dictionnaire, où ils sont indexés, et lorsque les
motifs réapparaissent, ils sont simplement codés
par leur index dans ce dictionnaire. Ils se
rapprochent des algorithmes à extension de source
(dans laquelle la notion dextension est élargie)
et seront efficaces pour les sources longues,
codés sur des alphabets restreints, ce qui permet
denvisager la présence de motifs récurrents. Les
codages de ce type les plus connus appliquent les
algorithmes de type LZ ou lune de ses nombreuses
variantes (LZ77, LZ78, LZW, LZSS). Ces noms
viennent de celui de leurs auteurs Lempel, Ziv,
Welch, ou de ceux leur ayant apporté des
améliorations (Storer et Szymanski).
31Lalgorithme LZW permet de coder un motif par un
simple index mais il faut remplir le dictionnaire
par tous les caractères isolés dabord. Avant de
commencer le codage, une initialisation remplit
les premiers emplacements de la table avec tous
les symboles de lalphabet utilisé. Un motif
courant B (buffer) est initialisé à vide.Le
caractère suivant C est concaténé à droite pour
former un motif BC, recherché dans le
dictionnaire. Sil sy trouve déjà, BC devient le
nouveau motif courant BBC et on concatène avec
un nouveau caractère. Lorsque le motif nest pas
trouvé, la dernière chaîne reconnue est codée par
son adresse dans la table on code lindex de B
et le nouveau motif BC est ajouté au dictionnaire
le dernier caractère qui fait que la chaîne
nest pas présente en table (caractère innovant)
est concaténé à la dernière chaîne reconnue (qui
a donné lieu à lémission de son code dadresse)
et lensemble constitue une nouvelle chaîne
stockée au premier emplacement libre de la table
de traduction.La construction reprend à partir
du caractère innovant on commence alors avec un
nouveau motif courant BC.
32Exemple Soit la chaîne dentrée utilisant 3
caractères a b a c b a c b a b a b a a a a a a
a La table des chaînes préfixes correspondantes
est la suivante a 1 b 2 c 3 (symboles
élémentaires), puis ab 4 ba 5 ac 6 cb 7
bac 8 cba 9 aba 10 abaa 11 aa 12 aaa
13 aaaa 14 La chaîne codée devient donc 1 2 1
3 5 7 4 10 1 12 13, liste qui sera codée en
binaire. Décodage A essayer ! Aucune autre
information nest nécessaire le dictionnaire
est reconstruit au fur et à mesure !
33LZ77 est utilisé dans les outils de compression
de type ZIP gzip sous linux, pkzip sous DOS,
winzip sous windows, stuffit sous MacIntoshLZW
est souvent plus efficace et fait lobjet dune
norme pour les images (formats GIF et TIFF). LZW
nétait plus gratuit depuis janvier 1995, et cela
après une longue période de liberté qui avait
favorisé son utilisation. Cet algorithme a été
ensuite couvert par un brevet américain détenu
par Unisys. Une licence de Unisys était
obligatoire pour toute utilisation.Les images au
format PNG (Portable Network Graphics) utilise
une variante de lalgorithme LZ77 ce format a
été spécifié par le consortium W3C qui lui
octroie un certain nombre davantages par rapport
à GIF et JPEG. Le format PNG (et lalgorithme
LZ77) est dans le domaine public.
34- Le format BMP
- Format de fichier qui utilise le format bitmap
interne de Windows (format DIB entête). Une
copie décran est au format BMP. - Cest un format permettant le codage dimages de
dimensions jusquà 65536x65536 pixels. - Un fichier BMP peut contenir une image en mode
RVB, en couleurs indexées, en niveaux de gris ou
en noir et blanc (binaire, mais convertie en
niveaux de gris).Une compression peut être
utilisée, elle est de type RLE (non destructive). - Le domaine de prédilection du format BMP est la
bureautique sous Windows. - Avantages qualité, et rapidité sous Windows.
- Inconvénients compression peu efficace.
35- Le format GIF
- Format de fichier créé en 1987 par la société
Compuserve.GIF est lacronyme de Graphic
Interface Format. - Cest un format ne supportant quun seul mode
colorimétrique, les images en couleurs indexées,
utilisant une palette de 2 à 256 couleurs.GIF
utilise une compression systématique (non
destructrice) LZW.Cest un format qui permet un
mode de transparence, laffichage progressif et
la possibilité de créer des animations.Le
domaine dutilisation concerne Internet, les
logos et graphiques simples -
- Avantages transparence, animations,
universalité, - Inconvénients mauvaise qualité dimage pour les
images de plus de 256 couleurs, compression peu
efficace (par rapport aux compressions avec perte)
36- Très utilisé dans les pages WEB, son attrait
principal réside dans le fait qu'il accepte une
couleur de transparence. Mais attention, cela
veut bien dire qu'une seule couleur sera
considérée comme transparente, ce qui signifie
que l'image finale GIF posée sur un fond bariolé
risque de présenter un effet de crénelage sur
l'ensemble de son pourtour. - Contrairement à la version actuelle, la version
antérieure (87a) ne permettait pas d'utiliser de
couleur de transparence. - En ce qui concerne le format animé du GIF, il
faut savoir que son poids est proportionnel au
nombre d'images qu'il comporte et qu'il permet
également de se voir attribuer de la
transparence. - La version GIF 89a permet également dinclure du
texte aux images.
37- La limitation du format GIF tient dans le passage
obligé par lutilisation dune palette (256
couleurs indexées au maximum). Cette limitation
du nombre de couleurs peut être considérée comme
une méthode de compression (destructive) pour les
images comportant initialement plus de couleurs.
Le résultat est visuellement mauvais pour les
images complexes (photographies), même si la
palette peut être adaptative à limage et des
couleurs intermédiaires peuvent être simulées par
la technique du tramage. - La compression de type LZW est plus efficace
quune compression RLE mais est sensible au bruit
dans les images (les performances sont largement
accrues par une simple mise à 0 du dernier bit)
et est entreprise ligne par ligne la taille
résultante peut varier en fonction de
lorientation dune image rectangulaire !
38Exemple. Soit une image naturelle quelconque
Prenons 1 ligne de cette image, modifions sa
hauteur pour obtenir un dégradé aléatoire
39Enregistrement en GIF 256 couleurs 259 k octets
Une petite rotation de 90
Enregistrement en GIF 256 couleurs 26 k octets
40- Le format PNG
- PNG Portable Network GraphicIl sagit du
3ème format Internet, c'est-à-dire le 3ème
format reconnu par les navigateurs (après GIF et
JPEG). - Un fichier PNG peut contenir des images RVB, en
niveaux de gris, en 256 couleurs indexées, ou
bitmap. - Un niveau de transparence peut être enregistré
sous la forme dune couche alpha. - PNG utilise une compression sans perte, et permet
un affichage progressif. - Domaine dutilisation Internet.
-
- Avantages couche alpha pour transparence,
affichage progressif - Inconvénients compression peu efficace et
compatibilité des navigateurs seulement à partir
de leur version 4. - Ce format est donc un des rares formats, avec le
GIF et le JPEG, à être reconnu par les
navigateurs Internet. Il est pourtant moins
utilisé car il ne présente pas d'avantages
décisifs par rapport aux deux formats précédents,
en taille de fichiers.
41- En revanche, comparé au format GIF, il permet la
sauvegarde de données de transparence sur les 8
bits dune couche alpha. Il en résulte l'absence
d'effet d'escalier sur une forme détourée qu'elle
soit présentée sur un fond bariolé ou bien
quelconque. Il y a 256 valeurs possibles
dopacité pour chaque pixel de limage !Malgré
cela il reste un format boudé par les concepteurs
de pages web. Les concepteurs de logiciels ont
pourtant poussé à son utilisation une licence
devait être contractée pour lire ou écrire du GIF
(à cause de lalgorithme LZW payant), tandis que
lalgorithme de compression du PNG, proche du
LZ77 est du domaine public. - Il existe 2 formats de fichier PNG
- Le PNG 8 est très comparable au GIF. Les tailles
de fichiers obtenues sont comparables au GIF
(souvent inférieures avec les logiciels comme
Fireworks, dont cest le format natif) sinon
souvent très légèrement supérieures au GIF,
surtout en mode entrelacé. Ce mode permet un
affichage à 7 passes qualité 1/64, 1/32,
Lorsque 20 à 30 de limage sont atteints,
limage est comparable au niveau 50 pour le GIF.
42- Le PNG 24 permet denregistrer des images 24 bits
avec transparence. Il peut intégrer le codage de
la correction Gamma et intégrer des
méta-données.Attention, tous les navigateurs qui
supportent le PNG ne reconnaissent pas cette
option de transparence (Netscape le reconnaît
mais pas Internet Explorer !). - Le PNG est donc peu utilisé les navigateurs ne
linterprètent pas toujours bien, et ne tirent
pas encore profit de toutes ses possibilités
(couche alpha, gamma, etc.). De plus les
différents logiciels doptimisation dimages pour
le web (comme Image Ready ou Fireworks) ne
lutilisent pas de la même façon seul
Fireworks, dont il est le format natif, semble en
tirer pleinement profit et le compresse mieux
quun GIF.Utilisation préférentielle petites
images graphiques (logos, dessins) en mode PNG8,
même utilisation que JPEG pour le mode PNG24,
mais en moins performant, utile pour la
transparence que ne permet pas JPEG (pour tirer
profit de la couche alpha de transparence avec
IE, il existe des javascripts).
43Quelques exemples surprenants
1. Image originale 256 256 pixels, contenant
exactement 256 couleurs différentes
Limage pèse donc 2562563 196608 octets
44La même image enregistrée (avec Fireworks) en
PNG-8 256 couleurs 596 octets !
336 octets sous Paint Shop Pro en PNG-8, 2
couleurs
et 1645 octets avec Photoshop 7, et 7 couleurs
! (501 octets avec Photoshop CS2)
45Le tramage permet de donner lillusion de
couleurs supplémentaires. Regardons ce que donne
loption tramage 100 de type diffusion
8 couleurs ici seulement !
2 couleurs 3,62 k octets 4 couleurs 6,52 k
octets 8 couleurs 8,5 k octets 16 couleurs
12,03 k octets 32 couleurs 13,5 k octets 64
couleurs 21,18 k octets 128 couleurs 14,54 k
octets 256 couleurs 1,65 k octets
Pourquoi une diminution sur la fin ? Expliquez !
46- Compression avec perte application au codage
des images - Dans les méthodes de compression avec distorsion
appliquées à des images, on peut trouver - - des techniques de quantification (scalaire ou
vectorielle),- des techniques de prédiction,-
des méthodes de transformation,- des méthodes
fractales - Plusieurs des méthodes précédentes semploient
souvent successivement dans un même schéma de
compression. Les méthodes de prédiction et de
transformation cherchent à supprimer une première
redondance et passer dans un espace où la
compression pourra sopérer en respectant des
critères psychovisuels. Quelle sapplique aux
données directement ou indirectement, cest très
souvent une phase de quantification qui
correspond à la partie destructrice de la
compression.
47Les méthodes de transformation Elles sont
utilisées sur les signaux acoustiques comme sur
les images. Ces transformations sopèrent sur des
blocs. Transformations linéaires, elles
sécrivent à laide dune matrice de passage,
calculant à partir déchantillons ni, des
composantes transformées, ou coefficients
transformés nu.Après transformation, les blocs
perdent leur nature initiale et leur sens
physique. La transformation est donc provisoire,
et doit être réversible. On montre quil est
possible de trouver des transformations linéaires
qui, quelles que soient les valeurs ni, celles
des nu deviennent très différentes les unes des
autres. Si les valeurs de nu sont très grandes
pour certaines, lannulation des plus petites
nentraîne quune distorsion réduite la
compression est labandon dun certain nombre de
composantes. La compression peut également
utiliser une quantification non uniforme des nu.
48Il existe des transformées qui garantissent -
une grande disparité entre les valeurs de ses
composantes,- une importance psychophysique
réduite pour les plus petites des composantes
transformées. La DCT (Discret Cosin Transform)
présente ces avantages, plus quelques autres par
rapport à dautres transformées possibles (FFT)
coefficients réels, parité évitant des
discontinuités Elle est la plus proche de la
transformée optimale (la KLT) pour laquelle il
ny a pas dalgorithme rapide. La distorsion
introduite par cette méthode est issue - de
lannulation des composantes les plus petites,-
de la quantification des autres les composantes
obtenues nu sont réelles (même si les ni sont des
entiers). Les composantes sont quantifiées par
division puis arrondies et les coefficients
diviseurs sont différents pour chaque composante
ils tiennent compte à la fois du taux de
compression voulu, et de limpact psychophysique
de chaque composante.
49La transformation DCT bidimensionnelle sécrit
avec
La DCT est unitaire AT.AI et ses
coefficients sont réels. Ainsi, A-1 AT,
permettant décrire la DCT inverse par
lexpression
La DCT a été retenue comme transformation par le
consortium JPEG.
50 Petite histoire du format JPEG Lhistoire
commence à la fin des années 80, lorsque le CCITT
(Consultative Committe for International
Telegraph and Telephone) et lISO (International
Standardisation Organisation ) appuyés par divers
groupes industriels et universitaires, décident
de créer une norme internationale pour la
compression des images. La mise en place dun
standard international était devenue nécessaire
pour archiver ou pour faciliter léchange des
images dans des domaines aussi variés que les
photos satellites, limagerie médicale, la
télécopie couleur, ou la cartographie Cest
ainsi que fut créé le groupe JPEG (Joint
Photographic Experts Group) pour établir des
spécifications pour les codages de limage, sans
et avec distorsion.Le groupe JPEG avait retenu
les contraintes suivantes - possibilité
daffichage séquentiel ou progressif,-
possibilité de modes de compression sans
dégradation,- possibilité dimplémentation hard
ou soft,- utilisation compatible avec les
performances des réseaux de type Numéris.
51Les objectifs étaient ambitieux on imposait
dobtenir avec - 2.25 bits/pixel une image
visuellement identique à loriginale,- 0.75
bit/pixel une image de qualité excellente,-
0.25 bit/pixel une image de qualité visuelle
moyenne,- 0.08 bit/pixel une image encore
reconnaissable ! Des algorithmes candidats ont
été comparés sur 5 images couleur 16 bits. 3
techniques ont été pré-retenues en 1987. La
technique à base de DCT a été retenue en 1988...
La norme parut en 1993 ! La qualité de limage
doit être paramétrable. Les données sont dautant
plus compressées que la qualité exigée est
faible.
52On peut noter que lil est beaucoup plus
sensible à de faibles variations dintensité
lumineuse (luminance) quà celles de la couleur
(chrominance) les informations sur la couleur
peuvent donc être davantage compressées que
celles sur la luminance. Ainsi si limage
initiale est codée sous une forme RVB, une
séparation luminance-chrominance peut être
dabord effectuée. On utilise une transformation
conduisant à un codage YC1C2 Y0.299R0.587V0.1
14BCrR-Y et CbB-Y avec une compression plus
importante sur ces plans.
53La transformation DCT La transformation est
réalisée sur des blocs de 8 x 8 pixels. En effet,
les matrices doivent être carrées et une taille
plus grande serait trop coûteuse en temps de
calcul.Considérons la matrice S des valeurs des
pixels du bloc considéré de MxM pixels
On considère la matrice A, formée par les
éléments aij
54Cette matrice A sécrit
La transformation sobtient par
C At x S x A Les factorisations et
développements spécifiques au cas 8x8 permettent
deffectuer la transformation en 40
multiplications et 56 additions (le calcul direct
donne 512 multiplications et autant dadditions).
55La DCT est donc effectuée sur chaque matrice 8x8
de valeurs de pixels, et elle donne une matrice
8x8 de coefficients significatifs de fréquences
spatiales lélément (0,0) est représentatif de
la valeur moyenne du bloc et est appelé
coefficient DC, les autres (coefficients AC)
fournissent la puissance spectrale selon chaque
fréquence 2D spatiale. La DCT est conservatrice
(si on ne prend pas en compte les erreurs
darrondis quelle introduit). La matrice C
transformée par DCT présente la propriété de
regrouper les valeurs les plus élevées dans le
coin supérieur gauche de la matrice (les valeurs
devenant dautant plus faibles que lon
sapproche du coin inférieur droite, donc que
lon se situe dans les " hautes fréquences ").
Ainsi le maximum dinformation sur limage se
trouve concentré sur la partie supérieure gauche
de la matrice.
56(No Transcript)
57Exemple On considère la Matrice S des valeurs
s(i,j) des pixels dun bloc S 140 144 147
140 140 155 179 175 144 152 140 147 140 148 167
179 152 155 136 167 163 162 152 172 168 145 156
160 152 155 136 160 162 148 156 148 140 136 147
162 147 167 140 155 155 140 136 162 136 156 123
167 162 144 140 147 148 155 136 155 152 147 147
136
58On obtient après transformation la matrice des
composantes transformées, (après un arrondi
destiné à obtenir des entiers) C 1209 -17
14 -8 23 -9 -13 -18 20 -34 26 -9
-10 10 13 6 -10 -23 -1 6 -18 3
-20 0 -8 -5 14 -14 -8 -2 -3
8 -3 9 7 1 -11 17 18 15 3
-2 -18 8 8 -3 0 -6 8
0 -2 3 -1 -7 -1 -1 0 -7
-2 1 1 4 -6 0
59La quantificationLa quantification représente la
phase non conservatrice du processus de
compression JPEG. Elle réduit le nombre de bits
nécessaires chaque valeur de la matrice DCT est
divisée par un nombre (quantum), fixé par une
table (mémorisée sous la forme dune matrice 8 x
8) de quantification, puis arrondie à lentier le
plus proche.La valeur du quantum est dautant
plus élevée que lélément correspondant de la
matrice DCT contribue peu à la qualité de
limage, donc quil se trouve éloigné du coin
supérieur gauche.Cest pourquoi les matrices de
quantification comportent généralement des
valeurs constantes selon des diagonales
ascendantes mais croissantes dune diagonale à la
suivante.Les matrices de quantification doivent
être connues du décodeur et transmises avec
limage. Dans la norme JPEG, seules 4 matrices de
quantification différentes peuvent être
transmises dans 1 image. Les matrices dépendent
du logiciel utilisé. Un exemple de matrice de
quantification Q est donné ci-dessous
6016Q 16 11 10 16 24 40 51 6112 12 14
19 26 58 60 5514 13 16 24 40 57 69
5614 17 22 29 51 87 80 6218 22 37 56
68 109 103 7724 35 55 64 81 104 113 9249
64 78 87 103 121 120 10172 92 95 98 112 100
103 99 La matrice quantifiée devient donc
(arrondie ici en nombres entiers) C.Q 1209
-24 22 -8 15 -3 -4 -426 -45 29 -7 -6
2 3 1-11 -28 -1 4 -7 0 -4 0-9
-4 10 -7 -2 0 0 2-2 6
3 0 -2 2 2 32 0 -5 2 1
0 0 -12 0 0 0 0 0 0
00 -1 0 0 0 0 0 0
61Ce sont les éléments de cette matrice qui vont
être codés par lalgorithme. On remarque la
grande valeur du premier coefficient (1,1) de
cette matrice. Ce coefficient exprime la valeur
moyenne des valeurs de niveau gris du bloc de
limage (après transformation). Sur un bloc
uniforme, cest la seule valeur non nulle des
coefficients. Cette valeur est souvent très
proche dun bloc au suivant dans limage ce
coefficient sera codé dune manière différente de
tous les autres, par un codage différentiel le
coefficient DC dun bloc est corrélé avec le
coefficient DC du bloc précédent.
E(k)DC(k)-DC(k-1). Il sagit dun codage de type
Differential Pulse Code Modulation (DPCM). Il
sagit donc dun codage de type prédictif.La
suite des coefficients DC subit alors un codage
de type Huffman. Les autres coefficients
(coefficients AC) vont être codés en parcourant
les éléments dans lordre imposé par une séquence
particulière en zigzag
62Cette lecture en zigzag a pour but de rapprocher
des valeurs identiques et de reporter le maximum
de valeurs nulles vers la fin de la séquence.
Dans lexemple précédent, on obtient -24 26
-11 -45 22 -8 29 -28 -9 -2 -4 -1 -7 15 -3 -6 4 10
6 2 2 0 3 -7 -7 2 -4 -4 3 0 -2 2 0 -1 0 0 1 2 0 2
2 3 -1 0 0 0 0 Cette séquence est alors codée en
utilisant un codage de type RLC (de type
longueur plage nulle, valeur ) auquel est
appliqué ensuite un codage de Huffman
63Dans lexemple précédent, plusieurs sources de
distorsion sont prévisibles - lorsquon a
arrondi les coefficients de la matrice C pour
obtenir des entiers. A partir de C arrondie, on
peut calculer la transformation DCT inverse. On
obtient sur cet exemple 140 143 146 139 140
154 178 174144 152 139 147 140 148 166 178152
154 136 166 162 160 151 171166 144 155 160 152
154 136 159161 148 156 148 140 137 146 161147
165 140 154 154 140 136 161136 155 123 166 161
143 140 145148 154 137 153 152 147 146 136 et
la différence à la matrice originale est donc
64 0 1 1 1 0 1 1 10 0 1 0 0 0 1
10 1 0 1 1 2 1 12 1 1 0 0 1 0 11
0 0 0 0 -1 1 10 2 0 1 1 0 0 10 1
0 1 1 1 0 20 1 -1 2 0 0 1 0 Mais la
distorsion vient essentiellement de la
quantification volontaire appliquée aux
coefficients (matrice C.Q) de lexemple.
Appliquons la transformée inverse. Nous obtenons
139 140 139 137 142 156 177 187144 145 141
144 146 156 171 183154 151 146 155 155 157 161
173162 154 152 155 152 149 149 161160 154 152
149 144 139 144 156151 152 146 151 148 140 142
153144 147 140 154 153 144 141 145146 146 141
151 152 146 141 138
65La différence à loriginale est donc 1 4
8 3 -2 -1 2 -120 7 -1 3 -6 -8 -4
-4-2 4 -10 12 8 5 -9 -16 -9 4 5 0
6 -13 -12 -6 4 -1 -4 -3 3 6-4 15 -6 4
7 0 -6 9-8 9 -17 13 9 0 -1 22 9
-5 4 0 1 6 -2 Lorsquon souhaite des
taux de compression élevés (généralement, les
logiciels proposent une qualité de limage sur
une échelle de 0 à 10 ou 0 à 100), la matrice de
quantification supprime plus encore de
coefficients en partant du coin inférieur droit.
Au taux de compression le plus élevé (qualité la
plus faible), seul le coefficient DC est conservé
le bloc de 8x8 pixels est remplacé par la
valeur moyenne des valeurs du bloc.
66Pour dautres exemples Applet
67Remarques - Cest aux frontières des blocs que
la compression devient de plus en plus visible
lorsque le taux de compression devient plus
élevé. - lalgorithme de compression nécessite
une puissance de traitement égale pour la
compression et la décompression (due en grande
partie à la transformation DCT ou DCT inverse), -
la norme JPEG nimpose pas de format de fichier.
68Le principe de compression JPEG se prête bien à
un affichage progressif, important dans le cas de
débit faible, pour transmettre dabord
linformation importante de limage puis les
détails. Lorsque cette fonctionnalité nest pas
utilisée, on parle de JPEG baseline. Les
solutions peuvent reposer sur plusieurs principes
Transmettre dabord les coefficients
correspondant aux basses fréquences puis les
coefficients correspondant aux hautes fréquences
cela est possible grâce à la méthode adoptée
(DCT) La DCT inverse est appliquée aux
coefficients DC puis à des sous matrices (par ex
4x4). Transmettre dabord les bits de poids
forts puis les bits de poids faible. Il sagit du
mode appelé approximation successive toutes
les composantes de la DCT sont concernées, mais
seulement les bits de poids fort de chaque
valeur.- Utiliser les 2 méthodes précédentes de
façon mixée. La norme JPEG prévoit tous ces
modes progressifs.