Chapitre 7 - fichiers images

Transcription

Chapitre 7 - fichiers images
7
FICHIERS-IMAGES
DEFINITION
Nous avons déjà donné une définition du fichier-image, c’est un fichier informatique, un enregistrement séquentiel de valeurs binaires, représentant les points élémentaires d’une image (les pixels).
Les points peuvent être représentés en niveaux de gris (cas d’une image en noir &
blanc), ou en couleur.
Nous savons aussi (chapitre notions théoriques), que les niveaux de gris sont
appelés “luminance” et les informations de couleur “chrominance”. Dans le cas d’un
signal vidéo, la seule composante de luminance restitue l’image en noir & blanc.
Actuellement, tous les systèmes de capture d’image se doivent de fournir une
représentation la plus fidèle possible de la réalité, la couleur est donc indispensable.
Les fichiers-images utilisent tous le système colorimétrique RVB. Chacune des trois
composantes primaires est représentée par 256 gradations d’intensité, fournissant une
palette de 16,7 millions de teintes différentes (256 x 256 x 256 = 2563 = 16,7 M).
CONSTITUTION
Pour faciliter leur manipulation, les images informatiques avec leurs pixels sont
associées à un repère à deux dimensions.
Les pixels sont repérés par un couple de coordonnées (x,y) et trois valeurs de
couleur, Rouge, Vert et Bleu. Il faudrait donc 5 nombres pour définir un pixel,
-52-
comme le montre la figure 23 ci-dessous.
Origine
Pixel N°1
x
Pixel N°640
Ecran
X
y
Image
(R,V,B)
Couleurs primaires RVB
fournies par le tube à
rayons cathodiques du
moniteur
Y
Pixel N°307200
Fig 23 - Image informatique Un tel système exige énormément de valeurs. Une image VGA (640 X 480 pixels)
demenderait un total de 5 X 640 X 480 = 1.536.000 nombres. Un tel volume à conduit à
adopter un premier système dans lequel la dimension des images est connu, et les
couples (x,y) superflus, en copiant le principe mis en oeuvre en télévision, trame =
succession de points dans une succession de lignes.
Ainsi pour une image les points sont-ils rangés dans l’ordre suivant : 1er point =
coin supérieur gauche, dernier point = coin inférieur droit. C’est leur numéro qui donne
leur position.
Une image VGA couleur, codée de cette façon ne demande plus que 640 X 480 X
3 = 921.000 nombres.
Les valeurs sont rangées à la suite, et un pixel est ainsi repéré sachant qu’il occupe
trois positions successives (R,V,B) dans la chaîne enregistrée constituant le fichier.
Chaque valeur est codée en binaire, sur 8 bits (un octet). Pour faciliter l’écriture des
nombres binaires (il faut écrire 8 symboles à chaque fois) les informaticiens préfèrent la
numérotation hexadécimale (en base 16) où un octet est représenté par 2 symboles.
Le tableau 7 de l’annexe B permet de passer d’un système à l’autre.
Un fichier contenant la représentation mathématique d’une image VGA dans ce
format affiche donc un volume de 921.000 octets ou pour utiliser une écriture plus
pratique :
900 Ko.
Un tel format existe toujours sous windows quand vous travaillez avec paintbrush.
Les pixels sont rangés dans des fichiers reconnaissables à leur extension “BMP”. Ce
type de représentation porte le nom de BitMap. Facile à gérer, ce système consomme
énormément d’espace mémoire. Le logo de Windows 95 qui apparaît au démarrage de
votre ordinateur est enregistré dans ce format (bien qu’il affiche l’extension sys).
C’est aussi le type d’enregistrement adopté dans les appareils haut de gamme,
pour lesquels la qualité l’emporte sur la place mémoire, car c’est structurellement le plus
proche de l’image.
Il faut cependant savoir que l’affichage d’un fichier-image est un peu plus compliqué
que ce que montre la figure 30. La raison est essentiellement technique et provient de la
structure de la carte vidéo, nous pouvons néanmoins nous satisfaire du fonctionnement
simplifié vu ci-dessus pour le reste de l’explication.
-53-
Si 16,7 millions de couleurs vous paraissent trop importantes, ou si votre système
ne peut gérer autant de couleurs, vous pouvez coder les couleurs avec seulement 16
gradations par primaire, ce qui donne 256 couleurs, valeur suffisante pour un affichage
sur écran LCD par exemple. Le format “GIF” utilisé massivement sur INTERNET utilise
ce mode de représentation.
Avec 256 couleurs, il ne vous faut que 4 bits (24=16 ), donc 12bits (un octet et demi)
par pixel . La taille du fichier est immédiatement divisé par un facteur 2 . Notre image
VGA ne “pèserait” plus que 450 Ko.
L’ordinateur sur lequel vous travaillez, pour restituer correctement l’image, doit
cependant savoir quel type d’espace colorimétrique (16,7 M ou 256) il faut employer, les
dimensions de l’image, son nom, la date à laquelle il a été crée etc..
Ces informations annexes indispensables doivent être rajoutées aux données
propres de l’image. En général, elles sont regroupées au début du fichier, dans une zone
appelée “en-tête” (Header).
Le nom du fichier, son type, sa date d’enregistrement, sa longueur (en octets), sont
par contre gérés par le système d’exploitation de l’ordinateur (MS-DOS, Windows,
UNIX, MAC-OS etc...) et sont physiquement distincts du fichier lui-même.
Un fichier-image est par conséquent constitué d’un en-tête contenant des informations utiles à son affichage et d’une succession de données représentant les éléments
de l’image (les pixels), et il est identifié par le système d’exploitation par son nom, son
type, le nombre de données qu’il contient etc...
Les informations relatives au fichier (nom, type, date etc...) sont celles qui apparaîssent à l’écran après la commande DOS “dir”, ou dans la fenêtre de l’explorateur windows.
Le contenu même du fichier ne peut être visualisé que par un logiciel spécialisé comme
par exemple “PC Tools”.
Le tableau 8 de l’annexe B montre le début du contenu d’un fichier image avec ses
codes hexadécimaux. (Ne le perdez pas, nous y reviendrons bientôt).
Avec le système MS-DOS, le nom peut avoir 8 caractères de long et le type est
repéré par une extension de 3 lettres séparée du nom par un point. Ce système codé :
“DOS 8.3” est aussi celui utilisé par les cartes CompactFlash.
Maintenant que nous savons ce qu’est un fichier, il faut nous pencher sur un
problème beaucoup plus crucial : la longueur de ce dernier.
Le volume considérable que représente les informations picturales, le temps de
traitement qu’elles necessitent et le prix des composants mémoire qui en limite l’extension ont obligé les informaticiens à trouver d’autres formes de stockage que le très
rustique BMP .
Le défi n’est rien de moins que d’arriver à représenter correctement une image avec
un volume d’information pouvant être réduit à au moins 1/20ème de celui d’origine (Les
spécialistes disent 1:20) . Ce taux de diminution est appelé taux de compression, et les
recherches actuelles dans ce domaine font état d’un taux de 1:250 !
LA COMPRESSION de DONNEES
Ce terme englobe toutes les astuces, les méthodes et les techniques mises en
oeuvre pour arriver à représenter les mêmes informations avec moins de données numériques et par la même, produire une diminution de la longueur du fichier.
-54-
Le principe de base est toujours le même : diminuer par un moyen ou un autre, la
longueur des codes binaires représentant les informations.
Il faut savoir que le système de codage le plus ancien et celui universellement
utilisé pour le codage est le code ASCII (American Standard Code for Information
Interchange) ou code standard américain pour l’échange d’informations.
Dans ce code, les symboles (essentiellement des lettres, des chiffres, des signes
de ponctuation et quelques autres ) sont tous représentés par un nombre binaire de
longueur fixe, l’octet.(revoir les notions théoriques, § informatique)
Un octet pouvant prendre 256 valeurs différentes, le code ASCII peut donc
visualiser 256 symboles d’une langue donnée.
Ce système n’est pas du tout adapté au codage des images. Il a pourtant fait l’objet
de recherches poussées sur la compression quand son apparus les besoins de transmission à distance de documents textuels.
Le temps de transmission d’un fichier, et tout ce que celà implique en termes de
rentabilité, est lié à sa longueur, et donc à la dimension de son code de représentation.
Les premiers axes de recherche ont portés naturellement sur des solutions de remplacement du code ASCII, capables de représenter un texte de façon plus consise, sans en
altérer l’intégrité.
Ces méthodes sont basées sur des codes de longueur variables, dans lesquels les
lettres apparaissant le plus souvent dans une langue, sont représentées avec des codes
courts (cas de la lettre “e” en français), et celles étant le moins utilisées (le “w” en
français) avec des codes plus longs.
Etendue à des signes quelconques avec un inventaire statistique de leur apparition
dans le corps d’un fichier donné, ce genre de méthodes est appelé “statistiques” ou
“entropiques”.
Une des plus connues porte le nom de codage de HUFFMANN.
Il existe aussi une méthode basée sur des répétitions dans un fichier des mêmes
symboles, avec un système de notation du nombre de répétitions et du signe répété. Le
système le plus efficace de compression de ce type est le RLE (Run Lenght Encoding)
ou codage de longueur de séquence.Dans le cas d’une image, les zones de même
couleur comme un grand ciel bleu uniforme, vont donner une suite de pixels de même
teinte, donc des codes binaires identiques.
Si il y a 200 pixels bleus, on n’enregistrera pas 600 valeurs mais un couple
constitué de 3 valeurs RVB et d’un nombre indiquant le nombre de fois qu’il faut répéter
la séquence (200 dans notre cas). Le gain est flagrant : la portion de ciel ne prend plus
600 octets mais seulement 4 (200, R, V, B). Le taux de compression ponctuel est de
1:150 !
Un troisième axe porte sur l’utilisation d’un dictionnaire dynamique, dans lequel les
symboles répétitifs rencontrés plusieurs fois sont ajoutés au dictionnaire de base (le
code ASCII) . On ajoute effectivement de nouveaux codes , mais dans le cas de
nombreuses séquences, ce n’est plus le code qu’on envoie, mais sa position dans le
dictionnaire.
Sur des fichiers contenant des motifs répétitifs, le gain peut s’avérer très important.
Ce système a été inventé par trois chercheurs qui lui ont donné son nom :
le codage LZW , ou LEMPEL-ZIV-WELCH . Mis à profit dans un logiciel très connu,
-55-
utilisé pour comprimer toutes sortes de fichiers : PKZIP, c’est aussi le mode de
compression adopté dans le format “GIF” de Compuserve (non utilisé en photo numérique).
Il existe encore de nombreuses autres méthodes comme le codage arithmétique, la
méthode de Fano-Shanon, celle de Teuhola-Raita, celle du codage adaptatif des fréquences...
Ce qu’il est important de retenir, c’est que ces méthodes, ou une de leurs variantes
seront utilisées pour comprimer les images dans les appareils photo numériques.
Mais toutes ces méthodes font partie de la famille des systèmes de compression
conservative. Les fichiers , après la phase de décompression qu’ils ont subie, restent
parfaitement identiques aux originaux, ils ne subissent aucune altération.
La compression des images pour être vraiment efficace et offrir des taux élevés,
utilise par contre d’autres procédés d’analyse qui font que l’image compressée n’est plus
identique à l’originale. Elle va subir une altération qualitative qui reste cependant
acceptable et imperceptible à l’oeil pour peu que l’on n’exige pas des taux de compression radicaux.
Ces systèmes qui altèrent la qualité de l’image et par conséquent le contenu du
fichier sont appelés par opposition, des systèmes de compression non-conservative.
LES TYPES DE FICHIERS GRAPHIQUES
Les photos numériques et leur fichiers-images associés, entrent dans la catégorie
plus vaste et plus ancienne des fichiers graphiques, par opposition aux fichiers textes,
systèmes ou exécutables.
Sous MS-DOS, la distinction s’opère par l’extension, suffixe de trois lettres. Ainsi,
un texte sera identifié par l’extension “TXT”, un programme par “COM” ou “EXE”, les
drivers par “SYS” etc...
Dans le domaine graphique, les formats sont pléthoriques. De l’antique “BMP” au
“PCX” en passant par les “TIF”, “WMF”, “PIC” ,”GIF” ou autres “JPG” , il y a l’embarras du
choix.
D’évolutions technologiques en besoins qualitatifs, le monde des formats ne cesse
de se développer.
Dans tous les cas, les logiciels de retouche d’image permettent de travailler sur un
grand nombre de formats différents, et autorisent même la traduction d’un format à un
autre.
Pour la photo numérique heureusement, seuls queques uns sont utilisés indépendament des formats spécifiques à certaines marques, dits “propriétaires”. On recense
trois formats principaux : BMP, TIFF et JPEG.
Ces formats sont ceux des fichiers fournis par l’appareil et stockés après transmission sur le disque et provenant de la mémoire FLASH interne.
Leur représentation informatique avec triplets RVB ne correspond pas au type
d’informations assuré par le capteur d’image de l’appareil.
Le capteur contient un certain nombre de photosites quasiment équivalent au
nombre de pixels de l’image. Si chaque photosite de donne qu’une valeur, le nombre
total d’informations ne peut donc pas correspondre au nombre de triplets RVB du fichier.
-56-
Ceci provient du système de traitement des couleurs propre au capteur qui fait que
les photosites sont masqués par un système de filtres colorés et associés 2 par 2 de
façon logicielle dans l’appareil pour reconstituer les informations colorimétriques de
chaque pixel.
Le chapitre relatif aux capteurs d’image étudie tout ceci en détail.
Le format BMP
Ce format toujours en vigueur sous windows, n’est pas très efficace en termes de
volume de stockage. Il est utilisé néanmoins sur les appareils professionnels où le
stockage s’effectue sur un ordinateur ou un système annexe et pour lesquels la qualité
est le facteur prépondérant. Les données sont codées sous forme de valeurs R,V,B, sur
8 ou 10 bits, enregistrées à la suite sans aucune compression.
C’est la raison pour laquelle les professionnels utilisent plus souvent la notion de
poids du fichier que celle de dimensions de l’image.
Techniquement, le fichier est constitué d’un en-tête contenant les dimensions, le
type d’espace colorimétrique et le nombre de bits par primaire.
En photo numérique grand public, ce format n’est jamais implémenté tel quel, mais
parfois une variante est utilisée restant néanmoins complètement associée au constructeur.
Le format TIFF
Originellement développé conjointement par les sociétés ALDUS et MICROSOFT,
il a pour objectif de fournir un format universel facilement transportable sur des PC ou
des Macintosh. TIFF est l’acronyme de Tagged Image File Format (format de fichierimage avec marqueurs).
Standard très souple, il en existe de nombreuses variantes destinées à gérer les
images noir & blanc, à niveaux de gris, couleurs 24 bits, avec ou sans compression.
L’utilisation dans l’en-tête du fichier de marqueurs de longueurs fixes (les tags),
autorise une très grande souplesse, une grande richesse fonctionnelle et une portabilité
maximum. Il est reconnu par toutes les applications graphiques ou de PAO.
Les données peuvent être brutes et donc non compressées, ou compressées selon
la méthode LZW.
C’est le format retenu par VIVITAR pour l’exportation de ces fichiers-images sur le
Vivicam 3000. Cet appareil utilisant un procédé de compression non standardisé (les
ondelettes), le format TIFF a donc été retenu pour sa portabilité car l’extension “SVI”
n’est reconnue par aucun logiciel du commerce.
L’examen du tableau 8 de l’annexe B (le début d’un fichier d’une photo prise avec
un vivicam 3000) montre le début d’un fichier TIFF. Dès le premier coup d’oeil à la fin de
l’extrait, on apperçoit le nom “SoundVision - SoundVisionMini” qui rappelle ainsi que le
vivicam 3000 est en fait manufacturé par la société SOUNDVISION et se trouve être le
clone du modèle SoundVisionMini de cette dernière.
Tous les fichiers TIFF commencent par les deux octets “h49” “h49” (le petit “h”
indique la notation hexadécimale) ou “4D” “4D” qui sont les codes ASCII des caractères
alphabétiques respectivement “I” ou “M”.
Le I indique INTEL et le M MOTOROLA, les deux principaux fournisseurs de
micro-processeurs respectivement pour les IBM-PC et les MACINTOSH.
-57-
Cette distinction est importante pour l’ordre dans lequel sont rangées les octets
représentant des valeurs numériques. Pour les micro-processeurs Motorola, l’ordre est
normal, à savoir valeur la plus significative à gauche. Pour les micro-processeurs Intel
par contre, cet ordre est inversé, ce qui implique une petite gymnastique pour la
conversion.
Le troisième octet “2A” = 42 en décimal représente le numéro de version du
standard TIFF : 42 dans notre cas. Les 4 octets suivants après remise en ordre (le h49
indique que nous sommes chez Intel) donnent h0008= 8, qui est la longueur de l’en-tête.
Nous trouvons donc 8 octets plus loin la valeur h15=21 qui est le nombre de “tags”
du fichier. Ces tags ont une longueur fixe de 12 octets et sont identifiés par un numéro
normalisé qui fait toute la richesse du système. La figure 24 montre la structure d’un
fichier TIFF.
Version N°42
Nbre de marqueurs (21)
Marqueur (Tag) 12 octets
INTEL
49 49 2A 00 08 00 00 00 15 00 FE 00 04 00 01 00 00 00 00 00 00 00 00 01 04 00 ...
Octet (hexadécimal)
Début du fichier
Fin du fichier
N° du marqueur (254 ici)
Type de donnée du marqueur (entier long ici)
Longueur de l’en-tête
Fig.24 - Structure d’un fichier TIFF (Vivicam 3000) Ces marques sont rangées par ordre croissant de numéro ; Ainsi, le premier mar
queur que nous rencontrons est-il le N° h00FE= 254, qui est l’identifiant
“NewSubFileType”. Sa valeur est “long”, c’est-à-dire codée sur 4 octets et représente au
niveau binaire des indicateurs d’état (Flags). Nous connaissont son type de données en
regardant le 3ème octet du marqueur : les valeurs peuvent être :
1 : octet
2 : offset (ce n’est pas une valeur, mais un déplacement)
3 : entier (2 octets)
4 : entier long (4 octets)
5 : rationnel (fraction de deux entiers dans l’ordre numérateur/diviseur)
Nous trouvons ici 4, donc un entier long . Comme il reste 8 octets, nous prenons
les 4 premiers (poids le moins significatif) et donc h0001= 1. Ce 1 indique que le fichier
ne contient qu’une image normale et pas une version réduite.
En continuant de la sorte, on recense les 21 marqueurs utilisés par SoundVision.
Certains sont propres à cette société mais d’autres sont standards et indispensables à
un décodeur qui voudrait afficher l’image.
Ces marqueurs sont :
N°2 h100
ImageWidth (largeur de l’image en PIXELS)
N°3 h101
ImageLenght (hauteur de l’image en PIXELS)
N°4 h103
Compression (type de compression mise en oeuvre)
N°5 h106
PhotométricInterpretation (type de données N&B, RVB ...)
-58-
N°6 h111
N°7 h115
N°8 h116
N°9 h117
N°10 h11A
N°11 h11B
N°12 h128
N°13 h131
N°14 h132
StripOffset (déplacement de l’origine à la première bande
d’image).
SamplesPerPixel (nombre d’échantillons par pixel )
RowsPerStrip (nombre de lignes par bandes)
StripBytesCount (nombre d’octets par bande)
XResolution (nombre de pixels horizontaux par unité de lon
gueur.
YResolution (nombre de pixels verticaux par unité de lon
gueur)
ResolutionUnit (unité de mesure, Cm ou inches)
Software (nom du logiciel créateur du fichier)
DateTime (date et heure de la prise de vue)
Les 7 derniers marqueurs ne sont pas documentés. Les calculs necessaires à l’obtention des informations sus-citées s’ils ne sont pas vraiment compliqués, sont fastidieux
pour qui n’est pas équipé d’une calculatrice héxadécimale.Aussi nous donnons-vous
ces informations “en clair”.
largeur : 960 pixels
Hauteur : 800 pixels
Pas de compression
couleurs RVB
début des données images : 16384 octets après le début du fichier.
3 octets par pixel
800 lignes par bande
2.304.000 octets par bande
unité de mesure : pouce
Nbre de pixels horizontaux : 306 par pouce
Nbre de pixels verticaux : 314 par pouce
Créateur : SoundVision
Date et heure : 2 mai 98 à 17H10’15”
Le fichier affiche un embonpoint conséquent : 2.266 Ko (2,21 Mo)! inutile donc
d’essayer de l’enregistrer sur une modeste disquette. Si vous devez l’envoyer par e-Mail,
et que vous avez la malchance de tomber à un moment où la transmission n’est que de
600 octets/secondes, votre correspondant attendra près d’une heure et votre note de
téléphone en subira le contre-coup.
C’est le prix à payer en échange d’un format facilement transposable et exploitable.
La solution n’étant pas satisfaisante, un groupe de personnes ayant de gros
intérêts (surtout financiers) dans les systèmes de transmission et d’affichage des images
informatiques a longuement réfléchi à un autre système plus efficace et pouvant devenir
un standard en la matière.
Ce groupe de travail, par ses efforts coordonnés a produit un nouveau procédé de
représentation des images avec un concept entièrement nouveau, le standard “JPEG” .
Le standard JPEG
Le nom est l’acronyme de Joint Photographic Experts Group, un regroupement
d’organismes de normalisation dont font partie l’ ISO , le CIE et le CCITT.
-59-
Les premiers travaux remontent à l’année 1986 où le cahier des charge fut établi :
produire un procédé de compression des images photographiques numérisées, indépendant de la résolution ou des dimensions, pouvant être facilement implanté dans des
composants électroniques “câblés”, assurant une exellente qualité d’affichage, un volume pouvant descendre au 1/20ème du même fichier en “bitmap” tout en étant
facilement exploitable sur des machines peu puissantes.
Les premiers résultats furent atteint en mars 1987, avec le choix des différentes
solutions techniques et les premières lignes directrices. Trois ans après, un rapport intitulé
“compression et codage numériques des images fixes à tons continus” enregistré depuissous le N° ISO 10918-1 constitue désormais la norme du standard JPEG.
La norme décrit un format de fichier, le “JFIF” (Jpeg File Interchange Format), qui
établit les règles de structuration d’un fichier-image selon les considérations du JPEG.
Comme pour le TIFF, on retrouve un en-tête, des marqueurs spécifiques et les
données afférentes aux pixels. Le format est assez souple et autorise des implémentations libres pour les différents producteurs.
Si jusqu’à maintenant les types de compression étudiés étaient conservatifs, la
norme JPEG introduit une compression non-conservative des images, qui entraîne une
perte des informations relatives aux pixels, et donc une diminution de la qualité picturale.
Tout l’art mis en oeuvre dans le procédé réside dans un savant compromis entre
volume informatif et qualité relative.
Le principe de base est la perception finale d’une image par un observateur
humain.Une analyse poussée des mécanismes de la vision a permis de mettre en
évidence certaines caractéristiques propres à l’idée de “qualité” que l’on peut ressentir à
l’observation . Les plus familières portent le nom “d’illusions d’optique”. La figure 25
ci-dessous en montre quelques-unes.
Parmis les plus connues et celles mis en oeuvre par le JPEG, ont peut citer :
- Les effets de bord
- L’acuité visuelle
- Le contraste relatif
- Le mélange des couleurs etc...
Fig.25 - Les illusions d’optique -60-
Une autre caractéristique, plus technique celle-là, a conduit à un autre type de
représentation des informations picturales, non plus sous forme spatiale, comme le
montre la figure 30, mais sous forme fréquentielle.
Dans une image, les pixels sont repérés par leur position verticale et horizontale
(x,y), auquelle est associée les trois valeurs colorimétriques RVB. Le défaut du système
est que le nombre de pixels, et donc de valeurs, ne peut être diminué sous peine de voir
l’image perdre sa structure dimensionnelle.
Le standard JPEG spécifie un passage à des coefficients de fréquence, c’est-à-dire
que les valeurs sont représentées par leur présence ou leur absence dans un domaine
prédéfini, le spectre.
Ce concept est le plus productif mais aussi plus difficile à apréhender. Des
ouvrages entiers lui sont dédiés, aussi est-ce une gageure que de vouloir le résumer à
quelques lignes.
La figure 26 illustre la différence entre les deux modes de représentations. L’outil
mathématique mis en oeuvre par le JPEG et qui permet le passage d’un domaine spatial
(largeur, hauteur, intensité représentés par les valeurs x,y et octet de couleur) à un domaine de fréquence (u,v) s’appelle la transformation en cosinus discrète. En anglais :
DCT (Discrete Cosine Transform)
Amplitude
f
F
f
2F
4F
F 2F 4F
f
f
a)
b)
Fig.26 - représentations temporelle (a) et spectrale (b)Les formules mathématiques sont reportées au tableau 9 de l’annexe B.
Les mathématiciens chevronnés auront certainement fait le rapprochement avec les
transformées de Fourrier dont les fondements théoriques sont à la base de tout le
procédé : l’idée est la même, tout signal périodique peut être décomposé en signaux de
fréquences multiples (les harmoniques). Le signal d’origine peut donc être reconstruit
par une somme de fréquences, dont le nombre de termes va determiner la fidélité de
restitution.
Pour faciliter les calculs, la transformation s’effectue sur une surface carrée de 8
pixels de côté. Les résultats sont rangés dans une matrice de dimensions identiques,
mais cette fois, la position des valeurs n’est plus spatiale (8 pixels horizontaux et 8 pixels
verticaux, soit une portion d’image de 64 pixels) mais agencée, grâce à la structure de la
formule mathématique, selon un schéma qui va ranger les plus fortes valeurs au coin
supérieur gauche de la matrice (indices (0,0)) et les plus faibles au coin inférieur droit
(indice (7,7).
Ces nouvelles valeurs sont ensuite pondérées par des coefficients judicieusement
-61-
choisis pour annuler certains éléments de la matrice. C’est le choix de ces coefficients
qui va determiner le niveau de dégradation de l’image, en éliminant certaines composantes, car il se trouve justement que les valeurs ainsi supprimées correspondent à des
fréquences élevées, donc difficilement perceptibles par l’oeil (revoir le chapitre notions
théoriques, paragraphe relatif au seuil de perception).
Les valeurs numériques plus élevées correspondent aux très faibles fréquences,
celles que nous sommes capable de percevoir.
Une autre faiblesse exploitée est celle qui fait que l’oeil est beaucoup moins
sensible aux variations de teintes (la chrominance) qu’à celles de luminosité.
Ceci est mis à profit dans la norme en transformant l’espace colorimétrique RVB en
un nouvel espace YCrCb (c’est le CCIR 601) par les formules suivantes :
Y= 0,299R + 0,587V + 0,114B
Cb= 0,169R - 0,331V + 0,5B
Cr= 0,5R - 0,419V - 0,081B
en prenant pour les composantes de chrominance la moyenne de deux valeurs adjacentes mais en gardant intacte la composante de luminance.
Les valeurs obtenues sont toujours dans l’intervalle (0,255) pour chaque composante, ceci a fait croire, à tort, à certains que le JPEG diminuait l’espace colorimétrique
et le ramenait à 256 couleurs comme un vulgaire GIF.L’image est toujours codée sur
16,7 Millions de couleurs !
Cette simple opération (déjà mise à profit pour le standard PAL en télévision, où
deux lignes adjacentes sont supposées avoir les mêmes couleurs) implique une réduction de 1/3 du volume global d’informations (chaque composante Y,Cb et Cr occupe 1/3
du volume total, si on prend la moitié de Cb et la moitié de Cr, on arrive bien à 1/3 + 1/6
+ 1/6 = 2/3 du total).
Ainsi, la DCT intervient 3 fois sur des “pavés” d’image de 8 X 8 pixels, une fois pour
la luminance, et une fois pour chaque composante Cb et Cr.
Après ces différentes opérations qui réduisent déjà considérablement le flot de
données, on applique enfin le procédé de compression conservatif de Huffman qui à
partir de sa table de codage dynamique va réduire la longueur des codes individuels.
La méthode de Huffman peut aussi être complétée par une compression RLE pour
les nombreux zéros que comportent les matrices.
Les données sont finalement stockées dans un fichier auquel on ajoute un en-tête
contenant différentes informations, pour produire un fichier-image au format “JFIF”.Ce
fichier portera l’extension “JPG” sous DOS/Windows.
On peut donc résumer ainsi l’algorithme de réalisation d’un fichier “JFIF”, selon les
directives de la norme ISO 10918-1 :
1) Transcodage de l’espace RVB à celui YCbCr
2) Sous-échantillonage en blocs de 8 pixels carrés, avec 1 bloc pour Y et 1/2 bloc
pour Cb et 1/2 bloc pour Cr (on voit parfois l’écriture 2:1:1).
3) Codage par fonction en cosinus discrète
4) Pondération des résultats par calcul matriciel avec une “table de quantisation”
-62-
5) Compression des données par la méthode de Huffman (ou arithmétique)
6) Constitution du fichier par ajout d’un en-tête aux valeurs enregistrées.
L’avantage des tables de quantisation, est que l’on peut choisir le facteur de
qualité, (noté Q), ou si vous préférez le taux de compression.
Sur un appareil photo numérique, le facteur de qualité est en général accessible en
trois niveaux comme par exemple sur les KODAK DC-200/210 avec
“supérieure”,
“améliorée” et “bonne” pour des taux moyens de compression respectifs de 1:8, 1:11,
1:20. Voici ci-dessous un petit tableau comparatif pour un codeur JPEG standard :
Fichier original TIFF non compressé
2.918 Ko
Fichier JPEG Q=95
409 Ko Taux 1:7
Fichier JPEG Q=75 (défaut)
176 Ko Taux 1:16
Fichier JPEG Q=50
118 Ko Taux 1:25
Fichier JPEG Q=30
87,7 Ko
Taux 1:33
Le taux peut aussi être fixé par logiciel, à partir de l’ordinateur, comme sur le
VIVICAM 3000, ou être fixe et non accessible comme sur le PC-500. Dans ce dernier
cas, et si le poids du fichier vous semble quand même trop important, vous avez toujours
le recours de passer par un logiciel de retouche d’image et de sauvegarder le fichier
préalablement ouvert sous un format “JPG” avec la possibilité de modifier le facteur de
qualité. Dans “PhotoImpact”, le bouton “option” vous permet de choisir un facteur de
qualité allant de 1 à 100.
En règle générale, sans indication contraire, le facteur de qualité standard est de
75% (Q=75).
Pour rester dans des considérations pratiques, nous allons maintenant analyser un
fichier-image au format “JPG” (voir figure 27 ci-dessous) en provenance d’un CASIO
QV-300. L’image est au format VGA et le fichier pèse 59 Ko.
Il nous faut auparavant étudier la structure d’un en-tête de fichier JPEG et
“décortiquer” les différents marqueurs.
Nom du champ
SOI (Start Of Image
Marker)
App0
Longueur
Identificateur
Version
Unités
Longueur
2 octets
Valeur
hFFD8
2 octets
2 octets
5 octets
2 octets
1 octet
Densité-X
Densité-Y
Vignette-X
Vignette-Y
App0 (optionnel)
Longueur
Identificateur
Code d’extension
2 octets
2 octets
1 octet
1 octet
2 octets
2 octets
5 octets
1 octet
hFFE0
variable (ces 2 octets sont comptés )
h4A46494600 (“JFIF”)
h0102 (version 1.02)
h00=pas d’unités
h01=points par pouce
h02=points par Cm
variable
variable
variable
variable
hFFE0
variable
h4A46585800 (“JFXX”)
h10=vignette codée en JPEG
h11=vignette en 1octet par pixel
h12=vignette en 3 octets par pixel
-63-
SOI
2 octets
hFFD8
DQT
2 octets
hFFDB
(marqueur de table de valeurs de quantisation )
EOI (End Of Image 2 octets
hFFD9
Marker)
Il existe aussi d’autres marqueurs (voir tableau 10 annexe B ) dont la position est
relative :
DHT (define Huffman Table segment marker) de valeur hFFC4
EOI (End Of Image Marker ) de valeur hFFD9
La version actuelle est la 1.02, mais beaucoup de fichiers sont encore en 1.01.
valeurs de la table
Densité X (300 Dpi)
SOI
Longueur (16 ici)
Version (1.01)
Vignette X x Y (aucune)
FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 01 2C 01 2C 00 00 FF DB 00 84 00 08 04 ....
App0
“JFIF” (code ASCII)
1er octet du fichier
Densité Y (300 Dpi)
Unités (pouces)
Longueur de la table (132)
Marqueur de début
de table de
quantisation
Fig.27 - Fichier JPG CASIO QV-300Après les 132 octets de la table de quantisation, se trouve un nouveau marqueur
SOF0 “Start Of Frame N°0” (hFFC0) de longueur h11 (17 octets). Ce marqueur contient
les données suivantes :
Nom du champ
SOF0
longueur
précision
Hauteur d’image
Largeur d’image
Nombre de composants
Composant N°1(Y)
Echantillonage
N° de table de Quant.
Composant N°2 (Cb)
Echantillonage
N° de table de Quant.
Composant N°3 (Cr)
Echantillonage
N° de table de Quant.
Longueur
2 octets
2 octets
1 octet
2 octets
2 octets
1 octet
1 octet
1 octet
1 octet
1 octet
1 octet
1 octet
1 octet
1 octet
1 octet
Contenu
hFFC0
h11=17 octets
h08=8 bits)
h01E0=480 pixels)
h0280=640 pixels)
h03= 3 composants : Y, Cb, Cr
h01=1er comp.
h22= 2 : 2
h00= 1ère table
h02=2ème comp.
h11= 1 : 1
h01= 2ème table
h03=3ème comp.
h11= 1 : 1
h01= 2ème table
On trouve ensuite le marqueur de début de tables de Huffman (hFFC4) de longueur 418 octets, puis un marqueur SOS “Start Of Scan” (hFFDA) qui précède toutes
les données compressées de l’image, pour arriver enfin au marqueur de fin d’image EOI
“End Of Image marker” (hFFD9) à la fin du fichier.
-64-
Ce fichier est tout à fait représentatif d’un fichier JFIF “basique”, il contient le minimum vital pour être exploitable par n’importe quel décodeur JPEG. Il existe depuis la
version 1.02, une extension de l’en-tête avec un marqueur supplémentaire qui autorise
l’ajout de données non necessaires à la restitution de l’image.
Cette possibilité est mise à profit sur le PC-500 d’EPSON dont nous vous proposons brièvement l’analyse. Le début du fichier (basse résolution, 240 X 320) est donné
ci-dessous :
FF D8 FF E0 00 10 4A 46 49 46 00 01 02 01 00 90
00 90 00 00 FF E0 08 7F 4A 46 58 58 00 10 FF D8
FF DB 00 43 .....
Le début est identique au précédent avec les valeurs suivantes : version 1.02,
résolution 144 Dpi.
Juste après nous retrouvons un marqueur App0 d’extension, reconnaissable à
l’identificateur “JFXX” (en ASCII). Ce marqueur affiche la structure suivante:
Nom
Appo
Longueur
Identificateur
Code d’extension
Longueur
2 octets
2 octets
5 octets
1 octet
Valeur
hFFE0
h087F (2175 octets)
h4A46585800 (ASCII=“JFXX”)
h10 = vignette codée JPEG (cas ici)
h11 = vignette codée 1octet/pixel
h12 = vignette codée 3 octets/pixel
Epson utilise ce marqueur pour ajouter des informations techniques aux images et
y adjoindre une vignette (Thumbnail) de 60 X 80 pixels.
C’est cette image réduite qui s’affiche sous forme de “planche contact” dans le
logiciel “EPSON Photo!” quand l’appareil est relié à l’ordinateur.
Les données concernant la vignette suivent immédiatement le marqueur SOI
(hFFD8), et comme étant codées en JPEG, necessitent toutes les informations indispensables à leur affichage, raison pour laquelle nous retrouvons des tables de quantisation
et des tables de Huffman (marqueurs hFFDB et hFFC4) .
La vignette fait partie intégrante du marqueur App0, ce qui fait que celui-ci affiche
une longueur de 2175 octets.
Le début de l’image (marqueur SOF0 = hFFC0) suit 170 octets plus loin et apporte
les informations suivantes :
Dimensions de la vignette 60 x 80 (h003c X h0050)
3 composantes, avec Y echantilloné en 2 : 1 ( la dimension horizontale est
gardée intacte, seule est échantillonée par un facteur 2 la dimension verticale).
Les autres données sont identiques à celles de l’image entière.
Après les données de la vignette, terminées 2175 octets plus loin par un marqueur
EOI, suivent les informations relatives aux photos et apparaissant “en clair”.
Parmi ces informations, dont certaines gardent leur caractère ésotériques, on voit
quand même que les appareils d’EPSON sont fabriqués en OEM par SANYO et on peut
en trouver d’autres comme par exemple :
La date, la vitesse d’obturation, l’utilisation du flash (0=non, 1=oui), la résolution
-65-
(1=basse, 2=haute),la protection ( 0=non, 1=oui), le type d’appareil ( SR22), le N° de
série (bizzare ici), la version du logiciel interne : le “firmware” (V22-75 ici), le nombre de
photos prises par l’appareil depuis sa sortie d’usine (intéressant en cas d’achat d’occasion) , le facteur de qualité en %, certains paramètres ésotériques liés à l’espace
colorimétrique (la correction GAMMA entre autres), le poids de l’image, le poids de la
vignette etc ... jusqu’au marqueur hFFDB, qui avec les tables, indique le début des
données de l’image.
Les noms de fichiers sont au format windows 95, c’est-à-dire pouvant aller jusqu’à
256 caractères. Le constructeur exploite cette particularité en utilisant une identification
univoque comprenant la date complète (en clair) et un numéro incrémental pour chaque
vue. Si l’on est sous DOS, le nom est tronqué, et le numéro est ajouté après un “tilde”.
Le modèle PC-600 quant à lui produit des fichiers semblables mais pas similaires.
Les informations sont naturellement différentes en raison des possibilités photographiques avancées de l’appareil de même que le format d’image.
La signature du constructeur indique cependant “SEIKO EPSON”, ce qui tendrait à
montrer un changement de partenaire, ou du moins une discrètion plus “contractuelle”
d’un éventuel OEM.
Une personne intéréssée par l’écriture d’un logiciel donnant un apperçu de l’image
sous forme de vignette, ainsi que tous les paramètres de prise de vue, possède
désormais la matière d’oeuvre necessaire. De tels logiciels (“extractors” en Anglais )
existent dèjà pour certains appareils en version “shareware”.
Les formats de fichier que nous venons de survoler, adhérant tous au standard
“JFIF”, sont très appropriés pour le stockage brut des données. L’extension apportée par
les marqueurs supplémentaire peut s’avérer insuffisante dans certains cas, surtout pour
toutes les applications liées à la photographie numérique.
Ces limitations et le cheminement vers un nouveau standard JPEG 2000 ont
conduit certains constructeurs à modifier les caractéristiques de base du “JFIF” ,
favorisant ainsi l’apparition de formats alternatifs.
Le format FlashPix
Apparu officielement en juin 1996 sous l’impulsion conjuguée de 4 grands constructeurs : Kodak, Microsoft, Hewlett-Packard et Live Picture, ce nouveau format veut
s’imposer comme standard de représentation graphique.
Le concept principal, basé plus sur les besoins de représentation de l’image que
sur son stockage, part du constat que le standard JFIF est exellent pour compacter une
image, mais se trouve être médiocre pour l’exploitation.
Le standard utilise ainsi plusieurs représentations de l’image, avec des résolutions
différentes. A l’opposé du JFIF qui stocke l’image avec une seule résolution, toujours la
plus élevée possible, FlashPix offre une résolution “à géométrie variable”, qui assure une
parfaite adéquation avec le média d’affichage.
L’affichage sur écran qui demande 72 Dpi ou l’impression jet d’encre de haute
qualité à 300 Dpi en passant par une impression offset à 90 Lpi, ne demandent pas la
même qualité d’image.
L’objectif du format est donc de fournir une image adaptée au besoin final, en ne
-66-
demandant qu’un minimum de temps de calcul, un minimum de ressources système et
bien sûr, un espace de stockage réduit.
Ceci s’obtient au détriment d’un fichier original plus lourd sur le disque, mais
paradoxallement moins encombrant en mémoire vive , jusqu’à 80% de moins qu’en TIFF.
Un fichier-image au format FlashPix est environ 1/3 de fois plus volumineux que son
homologue en TIFF (non compressés tous deux ). Cette “surcharge pondérale” est dûe à
la redondance des images et à la présence de champs d’enregistrement informatifs tels
les paramètres photographiques de la prise de vue, les caractéristiques de l’appareil ou
encore la description textuelle des photos.
La clé de voûte réside dans l’utilisation d’un stockage hiérarchique des images,
avec pour unité, un pavé carré de 64 pixels de côté et une progression de raison 2.
On obtient ainsi une 1ère image de 64 pixels de côté, puis une 2ème de 128 pixels
de côté, puis une 3ème de 256 pixels, et ainsi de suite jusqu’à la résolution maximum.
La figure 28 ci-dessous illustre cette architecture.
Chaque pavé élémentaire peut être compressé en JPEG, non-compressé ou compressé en monochrome (si il contient 4096 pixels de même couleurs = 1 seul octet !).
Image stockée
Image originale stockée
à résolution croissante
pavé minimum
64 X 64 pixels
Données de visualisation
à la résolution
minimum pour
l’application
demandée
Données de visualisation
Données annexes
EN-TETE
Données annexes
Fichier Flashpix applicatif (objet)
EN-TETE
Fichier Flashpix original (source)
Fig.28 - Structure d’un fichier FlashPix Pour respecter le rapport largeur/hauteur, un système de coordonnées spécial est
utilisé pour repérer les éléments d’image à travers les différentes résolutions, dans
lequel l’unité est prise comme étant l’image la plus grande.
Le passage d’une représentation à une autre s’effectue grâce au changement de
coordonnées, et l’affichage des images par un système de gestion de paramètres de
visualisation qui opère par calcul sur des matrices prédéfinies classées en grandes
familles.
On trouve ainsi des matrices de transformations géométriques ( rotation, translation, réduction, agrandissement), de traitement colorimétriques (changement de couleurs, transcodage d’espace, corrections colorimétriques, balance, luminosité,
contraste), et de filtrage.
Le logiciel de traitement d’image va utiliser ces paramètres pour modifier l’image
-67-
objet (celle sur laquelle l’on travaille), avec la résolution minimum requise, à partir de
l’image source (celle en haute définition stockée sur disque).
Il est clair que cette façon de procéder va réduire le temps de traitement et l’espace
RAM. Les modifications apportées sont visibles immédiatement mais n’affectent pas
l’image originale.
La sauvegarde de l’image cible, avec ses paramètres permet un gain de place non
négligeable, en ce sens où ne sont enregistrés que les données necessaire à la
représentation optimum sur le média concerné.
Il est à noter cependant que pour les appareils photo numériques, l’image stockée
est toujours celle offrant la meilleure résolution.
Sur les appareils Kodak DC200/210 par exemple, l’utilisateur a le choix entre deux
formats d’exportation : le FlashPix (extension “FPX”) ou le JFIF (extension “JPG”).
La même image exportée en “JPG” occupe 270 Ko alors qu’en “FPX” elle occupe
495 Ko. Ces valeurs n’ont cependant rien à voir avec le poids réel de la photo tel qu’elle
est stockée dans la mémoire FLASH de l’appareil. C’est le logiciel qui assure la mise en
forme des fichiers en ajoutant l’en tête adéquat aux données brutes.
Le fichier-image possède une structure assez particulière de stockage dans lequel
les données sont enregistrées en secteurs de 512 octets aves des identificateurs de
chaînage et de position proche de celui utilisé par MS-DOS.
La complexité du système avec ses secteurs et ses tables de chaînage rend ici très
difficile l’analyse d’un fichier type. Les lecteurs néanmoins interessés peuvent obtenir les
spécifications techniques du format, regroupées dans un ouvrage édité par Kodak sous
le nom de “FlashPix format & architecture white paper” et disponible gratuitement par
téléchargement sur le site internet du constructeur (http://www.kodak.com/go/flashpix).
Le format FlashPix est naturellement celui retenu par KODAK pour l’enregistrement
sur ses CD-Photo (400 fichiers de 1.6 Mo), la capacité de stockage étant particulièrement adaptée aux volumineux fichiers générés par le standard pour des images en haute
résolution .
Il y a quand même une ombre au tableau : peu de logiciels reconnaissent ce format.
Les autres formats
Il existe encore quelques autres formats d’image dédiés aux appareils numériques,
ainsi Kodak (encore !) et FUJI ont-ils conjointement développé un autre format, en
octobre 1996, le EXIF pour EXchangeable Image File format. La version 1.0 a été adopté
par le JEIDA, le Japan Electronic Industry Development Association, sous la référence
JEIDA -49-1998.
A la fin de l’année 1997, la société CANON et quelques 20 autres constructeurs
d’origine variée ont aussi défini un autre format de fichier : le CIFF , pour Camera
Interchange File Format.
Les deux formats sont très proches et utilisent toujours la compression JPEG mais
diffèrent légèrement du standard JFIF quant aux données annexes et à leur présentation.
Les fichiers produits sont néanmoins lisibles et exploitable par n’importe quel décodeur
supportant la norme JPEG.
-68-
Une autre voie radicalement différente a par contre été suivie par la société
SoundVision, avec son SoundVision Mini (dont le Vivicam3000 est un clone) en effectuant des recherches sur la compression par ondelettes (Wavelets).
Le fichier obtenu (extension SVI “Sound Vision Image”) pour une image de 960 X
800 pixels, en qualité supérieure, affiche un poids de 101 Ko, à comparer au poids du
même fichier en JPG (Q=75) : 114 Ko .
Le gain n’est pas flagrant, vu sous l’angle du volume. C’est un autre aspect qu’il
faut apréhender, celui de la qualité de l’image pour un volume réduit.
La compression par ondelette permet des taux de compression de l’ordre de 1:200
sur certaines images ! La qualité d’une image compressée par le procédé des ondelettes
reste encore exellente comparée au même taux de compression JPEG, où la qualité est
déja fortement dégradée à partir d’un facteur Q de 50.
Le principe théorique mis en oeuvre dans le procédé est relativement récent (il
remonte au début des années 80) et repose sur la même constatation que celle déjà
effectuée dans la transformation par cosinus discrète, à savoir le passage d’un domaine
spatial à un domaine fréquentiel.
On retrouve le principe de décomposition d’un signal principal en une somme de
signaux de fréquences et d’amplitude différentes.
La grande différence réside en la possibilité de modifier les intervalles d’étude du
signal en faisant intervenir des coefficients variables. On arrive ainsi à mieux cerner une
fonction donnée en modifiant l’echelle d’analyse.
Ce principe a donné son nom au procédé de décomposition en ondelettes, appelé
aussi analyse multi-résolution.
La réalisation pratique d’un compresseur par ondelette est en fait basée sur des
fondements conceptuels assez proches des systèmes que nous avons jusqu’à maintenant étudiés.
La société RICOH a réalisé un système complet, le CREW , traduisez Compression
with Reversible Wavelets, qu’elle a récemment soumis au comité JPEG pour en faire une
nouvelle norme de compression d’image.
Les détails techniques sous-jacents étant simplifiés, on peut résumer ainsi le
procédé: La décomposition en ondelettes opère sur les valeurs d’image (les valeurs
numériques des pixels) et les transforme en les faisant passer par des filtres (des
fonctions mathématiques assez simples) appelés “miroir” et “quadrature”.
Ces filtres interviennent en favorisant ou non certaines valeurs, le filtre favorisant
les valeurs élevées est appelé passe-haut (H), et celui favorisant les valeurs peu élevées
est nommé passe-bas (L). (Voir tableau 10 annexe B, les formules mathématiques).
Les valeurs obtenues en combinant les filtres représentent les informations présentes dans l’image en termes de contours (transitions rapides de valeurs), dans trois
directions de l’espace : verticale, horizontale et diagonale.
Chez RICOH, ces filtres sont appelés “Détails” et “Lissage” et les résultats sont
représentés avec un nombre de bits différents (de 8 pour les détails à 4 pour l’original ).
L’avantage du système d’analyse est qu’il est linéaire, (contrairement au système
de DCT du procédé JPEG qui fournit une matrice carrée dont la représentation bidimen-69-
sionnelle est engendrée par les formules et indispensable à la quantisation) et donc
beaucoup moins gourmand en puissance de calcul et autorise une scrutation de l’image
sur toute sa surface très proche de celle mise en oeuvre sur un écran.
A ce stade, aucun gain en volume n’est obtenu, mais l’image de départ est
transformée comme le montre la figure 29 ci-dessous :
Image originale
de résolution 1/2
IMAGE ORIGINALE
LL
LH
HL
HH
Données des contours
sens vertical
Données des
contours
sens horizontal
Données des contours
sens diagonal
Fig. 29 - 1er filtrage Le filtrage est ensuite appliqué plusieurs fois de suite. On obtient finalement une
structure comme celle que montre la figure 30 ci-dessous:
Fig. 30 - Filtage successif Le filtrage permet d’obtenir à chaque passe des valeurs numériques de plus en plus
significatives, sachant que chaque rectangle situé au coin supérieur gauche représente
l’image d’origine, de résolution réduite de moitié mais avec de plus en plus de détails.
L’opération suivante se résume à ordonner les valeurs ainsi obtenues en les
comparant à des valeurs de seuil en se déplaçant en “zig-zag” à travers les sous-images.
On obtient ainsi une liste de valeurs progressives allant de la plus forte à des valeurs
nulles.
Le résultat obtenu est similaire à celui produit par la transformée en cosinus
discrète (où le système de parcours des matrices de valeur est aussi en “zig-zag” ), à la
grande différence que pour l’instant le procédé est réversible, et non destructif pour une
résolution donnée, c’est à dire que la transformée mise en oeuvre est idempotente, ou
pour être plus clair, possède la propriété de restituer le même résultat si on l’applique à
-70-
elle-même.
En d’autres termes, la même image traitée plusieurs fois avec les mêmes paramètres ne sera pas altérée, contrairement au compresseur JPEG qui à chaque passage
introduit une perte de qualité irréversible. Cette dégradation est une des faiblesses du
système JPEG qui ne peut pour cette raison être appliquée plusieurs fois à la même
image, fût-elle légèrement modifiée.
Il suffit ensuite de coder la suite de valeurs avec une méthode à base de dictionnaire comme celle de Huffman.
Tout ceci est très brièvement résumé, mais il faut savoir que les implémentations
des différents industriels sont adaptées et comportent des variations subtiles. Le
fonctionnement global suit cependant le schéma exposé ci-dessus.
En général, ces opérations suivent une étape de trancodage d’espace colorimétrique comme par exemple l’espace YUrVr utilisé par Ricoh dont les équations sont
données ci-dessous :
Yr = (R + 2G + B ) / 4
Ur = R - G
Vr = B - G
Les équations inverses (passage au RVB) sont un peu plus longues et permettent
une reconstruction sans perte de précision.
Dans le cas du CREW, les données sont groupées par couches de résolution,
précédées d’une zone descriptive (les fameux marqueurs ou “tags”), de la plus significative à la moins représentative (cette structure est appelée “pyramidale” ches Ricoh) .Le
décodeur “voit” de la sorte l’image défiler avec une résolution croissante.
Cet ordonnancement autorise de plus une fonction particulière (mise à profit dans
le travail sur les images satellitaires) qui offre la possibilité de définir des “zones
d’intérêt”, qui dessinent une fenêtre sur l’image avec une résolution différente. Ce n’est
pas un “zoom” sur une surface agrandie, c’est un regard “en profondeur” de la surface
sélectionnée, offrant plus de détail que le reste de l’image qui peut rester à une
résolution beaucoup plus basse.
Ce procédé d’analyse du fichier permet d’extraire l’image correcte pour un média
donné sans avoir à décoder toutes les données c’est aussi une des raisons qui font que
les images codées avec les ondelettes ont une meilleure qualité que celles obtenues
avec le JPEG à taux de compression égal, car dans le procédé par ondelettes, il n’y a
pas de découpage de l’image par blocs de pixels comme c’est le cas en JPEG (ce sont
ces blocs qui finissent par apparaitre quand on exige un taux de compression trop élevé
[avec Q<50 par ex.] )
Ce système de compression qui semble très prometteur n’est pour l’instant exploité
commercialement que par quelques sociétés comme par exemple l’Américaine SUMMUS
avec son logiciel “4U2C” (For you to see) représenté en France par la société “Image
Etc...” .
Le logiciel existe en version “Plug-In” gratuite pour le navigateur internet NETSCAPE.
Un autre logiciel, “Lightning Strike” est lui commercialisé par la société “Infinet Op”.
-71-
La compression par ondelettes est néanmoins utilisée depuis longtemps par le FBI
Américain pour son système de gestion de base de données d’empreintes digitales.
Peut-être RICOH, dans un de ses prochains appareils va-t-il nous etonner ? car
force est de constater que dans le domaine de la photo numérique, le standard JPEG est
sans conteste le plus répandu et celui qui offre, pour l’instant, l’ouverture la plus grande
dans le monde du traitement d’images numériques.
Une nouvelle version est prévue sous l’appelation “JPEG 2000” et préfigure déjà le
nouveau standard en matière de représentation d’images numériques.
-72-