Graphisme 2D et Images Numériques
(*) Cours réalisé grâce aux documents de Gaëtan Rey et Stéphane Lavirotte
et grâce aux informations de Wikipedia
Présentation: Stéphane Lavirotte Auteurs: … et al*
Histoire et évolution de l’image
Introduction
2 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Historique 1/3
Pourquoi l’image ?
– L’homme a besoin de représenter ce qu’il voit pour
Communiquer,
Se souvenir,
Se divertir, …
Types d’images
– Dessins, – Gravures, – Peintures,
Historique 2/3
De puis quand utilise-t-on l’image ?
– Les peintures et les dessins animaliers de la grotte Chauvet (Ardèche) : il y a 30 000 ans.
– Les hiéroglyphes égyptiens : il y a 6000 ans
4 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Historique 3/3
L’ère de la photographie
– Littéralement : « peindre avec la lumière ».
– Depuis Aristote, on savait mettre la réalité en boîte !!!
– La date officielle de l'invention de la photographie est 1839
date à laquelle Arago (1786 - 1853) présente à l'Académie des sciences l‘invention de Daguerre (1787 - 1851), le daguerréotype, qui est en fait une amélioration de celle de Niépce (1765 - 1833).
(Wikipédia)
– Le premier procédé véritablement pratique de photographie en couleur, l’autochrome, inventé par les frères Louis (1864 - 1948) et Auguste (1862 - 1954 ) Lumière en 1903.
L’image informatique 1/3
Avant les années 80s
– Le calcul scientifique se fait dans de grands centres sur des
"mainframes" et le traitement par lots est de mise :
Un opérateur reçoit les programmes sous forme de cartes perforées.
Il fourni un listing quelque temps plus tard.
Les données à analyser sont stockées que sur bande magnétique (...Kbytes)
L'espace disque est coûteux et inaccessible à l'utilisateur
– Les sorties graphiques sont obtenues de façon laborieuse:
Hardware : le matériel de traçage est cher et délicat à opérer,
Software : les utilisateurs normaux doivent programmer
entièrement leur sortie graphique : il faut souvent lire 1 carte perforée par point
Les dessins sont collés sur le document (scotch double-face)
6 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
L’image informatique 2/3
Dans les années 80s, arrivent :
– Les micro-ordinateurs personnels,
– Les réseaux qui relient ces ordinateurs entre eux et aux mainframes
– Les imprimantes laser, qui remplacent rapidement les traceurs – Les terminaux qui permettent le travail interactif depuis son
bureau. Ces terminaux sont d'abord ASCII, puis graphique, puis en couleur.
– L’augmentation de la capacité de stockage
locale: disques des ordinateurs
de transport: cassettes audio (DAT), vidéo (Exabyte), …
L’image informatique 3/3
Problèmes
– Il n'y a aucune compatibilité entre
Les différents systèmes d'exploitation,
Le pilotage des divers matériels graphiques
– Aucune application graphique n'est portable
D'une machine à l'autre,
D’un terminal graphique à l'autre sur une même machine
=> Nécessité de définir un standard
8 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
L’image informatique
Les années 90 une nouvelle ère qui voit
– La disparition des mini-ordinateurs, remplacés par des stations de travail avec CPU, mémoire, disques..
– L'apparition des terminaux X (terminaux graphiques) – Le standard X11 qui équipe les stations de travail, les
terminaux X, et fonctionne à travers le réseau Ethernet (TCP/IP)
– L'explosion des réseaux qui permettent les applications de type client-serveur
– Les imprimantes PostScript:
La disparition des métafichiers autres que PostScript et PostScript Encapsulé
Définitions
Images
Bitmap vs Vectoriel
10 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Afficher sur un écran: le Pixel
Technologie d’affichage
– L’image s’affiche sur un écran (ou moniteur) – Système de coordonnées
– Chaque point est un élément phosphorescent – Point dénommé pixel (PICture ELement)
Elément minimal adressable par le contrôleur vidéo
Rectangulaire, approximativement carré
Image = ensemble de pixels
– Tableau 2D de pixels
x
y 0
Définition vs Résolution
Ecran ou Image
– Définition = nombre de (pixel) constituant l'image
« dimension informatique » (le nombre de colonnes de l'image que multiplie son nombre de lignes)
Pour un écran:
– VGA = 640x480 – XGA = 1024x768 – …
– Résolution = nombre de points par unité de
longueur (1 pouce)
Points par Pouce (PPP), en anglais DPI (Dots Per Inch)
Utilisé pour la numérisation
2,54cm
12 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Si on double la Résolution
Combien de points obtient-on pour une image dont on
double la résolution ?
Un peu de vocabulaire
Le Point Par Pouce (PPP) est une unité de précision
Elle est communément utilisée pour définir
– La résolution d'un scanner (on parle de « finesse de numérisation »)
– La résolution d'une imprimante (on parle de « précision de l'impression »).
Plus cette valeur est élevée et meilleure est la qualité.
Exemple
– Ainsi, une résolution de 300 ppp signifie que l'image a une définition de 300 points, sur une longueur de 2,54 cm. Le point, dès lors, mesure 2,54 cm / 300 = 8,467 μm.
14 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Codage des couleurs
Chaque pixel contient une valeur
– La valeur stockée est codée sur un certain nombre de bits déterminant la couleur ou l'intensité du pixel
Bitmap noir et blanc: 1 bit = 20 possibilités (noir / blanc)
Bitmap 16 couleurs ou 16 niveaux de gris: 4 bits = 24 =16 possibilités
Bitmap 256 couleurs ou 256 niveaux de gris: 1 octet (8 bits) = 28 = 256 possibilités
Palette de couleurs (colormap): défition d’une palette, ou table des couleurs, contenant l'ensemble des couleurs pouvant être utilisées dans l'image. Chaque couleur associée à un indice (image en
couleurs indexées). Codage sur 8 bits = 256 couleurs utilisables
La Transparence
C’est une caractéristique permettant de définir le
niveau d'opacité des éléments d'une image, c'est-à-dire la possibilité de voir à travers l'image des éléments
graphiques située derrière celle-ci.
Il existe deux modes de transparence :
– La transparence simple s'applique pour une image indexée et consiste à définir parmi la palette de couleurs une des couleurs comme transparente
– La transparence par couche alpha (ou canal alpha, en anglais alpha channel) consiste à rajouter pour chaque pixel de
l'image un octet définissant le niveau de transparence (de 0 à 255).
16 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Les calques
Une image numérique peut être le résultat de la combinaison des contenus de différents calques.
On doit penser l'image comme une superposition de transparents ou de filtres. Cela permet d'organiser au mieux son image, d'optimiser les possibilités de
création sur l'image, et de gagner en temps de travail et en terme d'efficacité
– on dispose un ou plusieurs éléments sur chaque calque qu'on peut à tout moment supprimer, modifier sans altérer
l'ensemble des autres calques.
Formats
Images Bitmap
18 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
L'image Bitmap
L'image Bitmap (image matricielle) est une image numérique représentée par une matrice de points
– On code tout les points de l’image. Si elle représente une ligne droite, on code chaque point de la ligne.
Avantages d'une image bitmap
– Format proche du hardware (sauf processeur dédié) – Adaptable aux images complexes
– Adapté aux traitements d'images (si utilisée en mode nuancé)
Inconvénients d'une image bitmap
– Modifications spatiales difficiles
Calcul de la Taille d’une Image
Poids d’une image en octet (1 octet = 8 bits)
– Une image est un tableau 2D
– Chaque case contient une valeur sur 1 bit, 4 bits, 8 bits, 16 bits, 24 bits ou 32 bits
– Nombre de points d’une image = nb lignes x nb colonnes – Poids d’une image = nombre de points x taille info couleur
Exemple d’une image 640 x 480 en vraie couleurs
– 640 x 480 = 307.200 points
– Chaque point est codé sur 24 bits – 24 bits / 8 = 3 octets
– Nb points x taille = 307.200 x 3 = 921.600 octets – 1 Ko = 1024 octets = 210
– Donc 921.600 octets / 1024 = 900 Ko
20 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Exemple de Tailles d’Images
Met en évidence la quantité de mémoire vidéo nécessaire pour l’affichage de l’image
Définition de
l'iImage Noir et Blanc
(1 bit) 256 Couleurs
(8 bits) 65000 Couleurs
(16 bits) True Color (24 bits)
320x200 7.8 Ko 62.5 Ko 125 Ko 187.5 Ko
640x480 37.5 Ko 300 Ko 600 Ko 900 Ko
800x600 58.6 Ko 468.7 Ko 937.5 Ko 1.4 Mo
1024x768 96 Ko 768 Ko 1.5 Mo 2.3 Mo
1280x1024 160 Ko 1.25 Mo 2.5 Mo 3.75 Mo
1920x1080 253 Ko 1.98 Mo 3.96 Mo 5.93 Mo
Taille Image ≠ Taille du Fichier
Le format d’une image est
– une représentation informatique de l'image,
– associée à des informations sur la façon dont l'image est codée et fournissant éventuellement des indications sur la manière de la décoder et de la manipuler.
La plupart des formats sont composés
– d'un en-tête contenant des attributs (dimensions de l'image, type de codage, LUT, etc.),
– des données (l'image proprement dite)
– une zone de métadonnées (metadata en anglais) servant à préciser les informations concernant l'image comme :
La date, l'heure et le lieu de la prise de vue,
les caractéristiques physiques de la photographie (sensibilité ISO, vitesse d'obturation, usage du flash…)
22 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Une image qui se dessine
Formats Vectoriels
L’Image Vectorielle
L'image vectorielle est constituée de traits et de courbes définis par des éléments mathématiques appelés primitives graphiques
– On code une description de l'image (traits, surfaces,...)
Pour une droite on stocke que les 2 extrémités
Avantages des images vectorielles
– Adaptable à chaque périphérique (car ajustable, coordonnées relatives, adaptable aux drivers intelligents, ...)
– Stockage moins encombrant (la taille ne dépend que de la complexité du document lui même)
– Adapté aux objets mathématiques et leur extension (voiture, avion , ...)
Inconvénients des images vectorielles
– Mal adapté aux images quelconques
– Difficulté de traitement d'une partie de l'image
24 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Les formats en détail
Formats d’Images
Format d‘Images Bitmap
Quelques précautions à prendre concernant les formats d'images:
– Il est important de bannir les formats propriétaires et de leur préférer des formats libres de tous droits,
– Il faut prendre garde aux différentes versions que peut recouvrir un format particulier.
Ex: cas pour le format TIFF qui varie selon les versions et qui fait que certaines versions de TIFF ne sont pas reconnues par certains logiciels.
Les 5 formats les plus courants (voir annexes):
– BMP – GIF – JPEG – PNG – TIFF
Des données sauvegardées dans les images
26 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Tableau Récapitulatif
Compression des données
Nombre de couleurs supportées
Affichage
progressif Animations Transparence JPEG Oui, réglable
(avec perte) 16 millions Oui Non Non
JPEG 2000 (av/ss perte) Oui 16 millions Oui Non Oui
GIF (sans perte) Oui 256 (palette) Oui Oui Oui
PNG (sans perte) Oui
de 256 (palette) jusqu'à 16
millions (et +) Oui Non Oui (couche alpha)
MNG Oui de 256 (palette)
jusqu'à 16 Oui Oui Oui (couche alpha)
Comparaison de Formats
Cas d’étude pour une imagette
– Dessin de petite taille avec peu de couleurs
– La même image sauvegardée dans deux formats
Une image en jpg, la même image en gif
Qui est qui ? Quel est le plus petit fichier ?
Présentation: Stéphane Lavirotte - Auteurs: ... et al* 28
Format GIF 318 octets
Format JPG 706 octets
Formats Propriétaires
Création de formats par les grandes firmes
– Evite d’avoir un accès facile aux données – Evite de payer des royalties à d’autres
Exemple d’un format ROM Nintendo
– .rgcn: Nintendo Character Graphics Resource
L'image de l'image (ça paraît stupide, mais c'est comme ça)
– . rlcn - Nintendo Colour Resource
Une palette de couleurs (qui peut être commune à plusieurs images)
– .rcsn - Nintendo Screen Resource
Annexes
30 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Compléments Historiques
Graphical Kernel System 1/9
En 1985, l'ISO définit le premier standard graphique GKS
– avec pour objectif de traiter tous les périphériques (écran, imprimantes, …) sur un pied d'égalité
quel que soit leur nombre dans une application graphique,
quel que soit leur constructeur.
Les fabricants interfacent leurs produits avec le standard GKS
Les applications graphiques deviennent portables
32 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Graphical Kernel System 2/9
Les concepts de GKS sont toujours d'actualité
Le concept de primitive et d'attribut graphiques
– GKS identifie et normalise le contenu d'une page et le décrit avec 4 primitives graphiques:
traits,
surfaces,
textes,
polylines;
– Chaque primitive possède des attributs:
épaisseur,
contour ou remplissage,
Graphical Kernel System 3/9
Le concept de primitive et d'attribut graphiques
– GKS définit ~300 opérations sur les primitives et leurs attributs
Ces opérations constituent le NOYAU (KERNEL) de GKS.
– Dans chaque langage de programmation PASCAL, FORTRAN ..., GKS définit une syntaxe pour chaque opération
En FORTRAN, CALL GPL (N, X, Y) trace une polyline de N-1 segments par les N points de coordonnées X(N),Y(N)
– La notion d'attribut courant
les attributs d'une primitive doivent être définis avant une
opération du KERNEL sur cette primitive et restent valides pour les opérations suivantes sur les primitives de ce type.
34 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Graphical Kernel System 4/9
Le concept de station de travail (workstation)
– Il s'agit indifféremment d'une fenêtre sur un écran, d'une
imprimante, d'un traceur... où par ex. le CALL GPL(N, X, Y) sera effectué
– Une station de travail
est référencée logiquement par un workstation ID
est référencée physiquement par un workstation type (variable entière)
– ex. 7878 pour la Falco, 12201 pour un fichier PostScript GKS;
le workstation type se réfère à un logiciel de gestion appelé driver, lequel pilote le hardware attaché à la workstation
Graphical Kernel System 5/9
Le concept de station de travail (workstation)
– Il n'y a pas limitation sur le nombre de workstations utilisées dans un même programme.
On peut afficher sur un ou plusieurs écrans, tout en fabriquant un ou plusieurs fichiers qui seront imprimés ou tracés ultérieurement
– Dans une application, une workstation est successivement définie, ouverte, activée, sélectionnée, fermée
36 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Graphical Kernel System 6/9
Le concept de métafichier
– Le métafichier
stocke dans un format défini les primitives et attributs graphiques d'une page
est un fichier ASCII que l'on peut échanger par réseau (mail, ftp ASCII, …)
permet le transport de l'information graphique; une "image"
(illustration) stockée dans un métafichier peut, en principe, être reprise par la même ou par une autre application
Graphical Kernel System 7/9
GKS contient des concepts graphiques nouveaux (pour l’époque)
– le locateur,
– les transformations,
– la précision d'une fonte, – le clipping,
– la segmentation... (un segment est un objet composé de plusieurs primitives)
38 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Graphical Kernel System 8/9
Les défaults de GKS
– Il faut beaucoup d'effort pour écrire un programme de haut niveau graphique en n'utilisant que les 4 primitives de base.
– Il manque les fonctionnalités nécessaires à la présentation de données sous forme d'histogrammes, axes, lego plots, échelles logarithmiques... (qui existaient déjà dans HPLOT bien avant GKS)
– En dépit de l'ISO, 9 différentes implémentations de GKS existent et présentent quelques différences entre elles.
GKS GRAL de GTS-GRAL (Darmstadt puis CERN)
UNIGKS de UNIRAS...
Graphical Kernel System 9/9
Les défaults de GKS
– Des standards graphiques sont hors GKS
GDDM sur IBM/VM,
GL sur Silicon Graphics et IBM-RS 6000, DI 3000 (USA)
– Le stockage ASCII des informations graphiques sur métafichier est gourmand en taille de fichier;
– De plus, si la relecture de l'information du métafichier est possible, la manipulation n'en est pas aisée
40 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
BitMaP
BMP
BMP (1)
Le format BMP est un des formats les plus simples
développé conjointement par Microsoft et IBM, ce qui explique qu'il soit particulièrement répandu sur les
plates formes Windows et OS/2.
Un fichier BMP est un fichier bitmap, c'est-à-dire un fichier d'image graphique stockant les pixels sous
forme de tableau de points et gérant les couleurs soit en couleur vraie soit grâce à une palette indexée.
Le format BMP a été étudié de manière à obtenir un bitmap indépendant du périphérique d'affichage (DIB, Device independent bitmap).
42 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
BMP (2)
La structure d'un fichier BMP est la suivante
– En-tête du fichier (en anglais file header)
– En-tête du bitmap (en anglais bitmap information header, appelé aussi information Header)
– Palette (optionnellement) – Corps de l'image
BMP (3)
Entête du fichier
– Elle fournit des informations sur le type de fichier (Bitmap), sa taille et indique où commencent les informations concernant l'image à proprement parler.
– Elle est composé de quatre champs :
La signature (sur 16 bits), indiquant qu'il s'agit d'un fichier BMP à l'aide des deux caractères.
– BM, 424D en hexadécimal, indique qu'il s'agit d'un Bitmap Windows.
– BA indique qu'il s'agit d'un Bitmap OS/2.
– CI indique qu'il s'agit d'une icone couleur OS/2.
– CP indique qu'il s'agit d'un pointeur de couleur OS/2.
– IC indique qu'il s'agit d'une icone OS/2.
– PT indique qu'il s'agit d'un pointeur OS/2.
La taille totale du fichier en octets (codée sur 32 bits)
Un champ réservé (sur 32 bits)
L'offset de l'image (sur 32 bits), en français décalage, c'est-à-dire l'adresse relative du début des informations concernant l'image par rapport au début du fichier
44 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
BMP (4)
Entête de l'image
– elle fournit des informations sur l'image, notamment ses dimensions et ses couleurs.
– L'entête de l'image est composé de 11 champs :
La taille de l'entête de l'image en octets (codée sur 32 bits). Les valeurs hexadécimales suivantes sont possibles suivant le type de format
BMP :
– 28 pour Windows 3.1x, 95, NT, ...
– 0C pour OS/2 1.x – F0 pour OS/2 2.x
La largeur de l'image (sur 32 bits), c'est-à-dire le nombre de pixels horizontalement (en anglais width)
La hauteur de l'image (sur 32 bits), c'est-à-dire le nombre de pixels verticalement (en anglais height)
BMP (5)
Entête de l'image
La méthode de compression (sur 32 bits). Cette valeur vaut
– 0 pour aucune compression
– 1 pour un codage RLE de 8 bits par pixel – 2 pour un codage RLE de 4 bits par pixel
– 3 pour un codage bitfields, signifiant que la couleur est codé par un triple masque représenté par la palette
– 4 pour un codage JPEG – 5 pour un codage PNG
La taille totale de l'image en octets (sur 32 bits).
46 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
BMP (6)
Entête de l'image
La résolution horizontale (sur 32 bits), c'est-à-dire le nombre de pixels par mètre horizontalement
La résolution verticale (sur 32 bits), c'est-à-dire le nombre de pixels par mètre verticalement
Le nombre de couleurs de la palette (sur 32 bits)
Le nombre de couleurs importantes de la palette (sur 32 bits). Ce champ peut être égal à 0 lorsque chaque couleur a son
importance.
BMP (7)
Palette de l'image
– La palette est optionnelle. Lorsqu'une palette est définie, elle contient successivement 4 octets pour chacune de ses entrées représentant :
La composante bleue (sur un octet)
La composante verte (sur un octet)
La composante rouge (sur un octet)
Un champ réservé (sur un octet)
48 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
BMP (8)
Codage de l'image
– Le codage de l'image se fait en écrivant successivement les bits correspondant à chaque pixel, ligne par ligne en commençant par le pixel en bas à gauche.
Les images en 2 couleurs utilisent 1 bit par pixel, ce qui signifie qu'un octet permet de coder 8 pixels
Les images en 16 couleurs utilisent 4 bits par pixel, ce qui signifie qu'un octet permet de coder 2 pixels
Les images en 256 couleurs utilisent 8 bits par pixel, ce qui signifie qu'un octet code chaque pixel
Les images en couleurs réelles utilisent 24 bits par pixel, ce qui signifie qu'il faut 3 octets pour coder chaque pixel, en prenant soin de respecter l'ordre de l'alternance bleu, vert et rouge.
Graphics Interchange Format
GIF
50 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
GIF (1)
Le format GIF (Graphic Interchange Format) créé par la société Compuserve. Il était sous brevet Unisys. Le
dernier brevet sur le GIF a expiré le 11 août 2006.
Il existe deux versions de ce format de fichier développées respectivement en 1987 et 1989 :
– GIF 87a supportant la compression LZW, l'entrelacement (permettant un affichage progressif), une palette de 256
couleurs et la possibilité d'avoir des images animées (appelées GIFs animés) en stockant plusieurs images au sein du même fichier.
GIF (2)
Ce format supporte de 2 à 256 couleurs parmi 16.8 millions dans sa palette.
Compression
– L'algorithme de compression permet une compression sans perte mais dont l'efficacité dépend de plusieurs facteurs
de l' existence de zones "homogènes".
de l'orientation de l'image
– Ceci est simplement dû au fait que la lecture des données de l'image se fait en commençant par le pixel en haut et à gauche et se fait en ligne.
52 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
GIF (3)
Transparence
– La transparence est possible.
Entrelaçage
– L'entrelaçage (différent selon le navigateur) est possible mais il fait que les images ont en général un poids en octets plus
important que celles dont les données ne sont pas entrelacées (différence qui peut parfois s'avérer relativement importante).
Animation
– Les animations sont supportées par ce format (attention à l'entrelaçage).
Usages
Joint Photographic Experts Group
JPEG
54 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
JPEG (1)
Le JPEG (Joint Photographic Expert Group) est la
représentation d'une norme ISO et il est libre de droits.
Il permet une représentation en vraies couleurs (16 millions).
La compression utilisée est une compression avec perte.
– Le but premier de l'algorithme utilisé est de permettre un taux de compression important dans le but que les modifications
apportées sur l'image ne soient pas visibles à l'oeil (ce qui est vrai pour les taux de compression les plus faibles mais qui n'est plus vrai pour les taux de compression les plus élevés).
JPEG (2)
Attention, une compression de 10% ne signifie pas une perte de 10% des informations (la perte n'est pas
linéaire, et dépend des données de chaque image).
De plus, il faut être vigilant car l'échelle de compression n'est pas forcément la même selon les logiciels (ce n'est pas standardisé du tout).
Attention également, chaque fois qu'une image JPEG est enregistrée, il y a perte car il y a compression. Il
n'est également pas possible d'utiliser le format JPEG sans perte de données (même avec le taux de
compression le plus faible).
56 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
JPEG (3)
Transparence
– Ce format ne supporte pas la transparence.
– La raison en est que pour qu'une transparence existe, il faut
"indiquer" dans le fichier que les pixels de telle ou telle couleur ne seront pas affichés à l'écran lors de la lecture des données de l'image.
– Le problème est que lorsque la compression s'effectue avec perte, à la décompression un pixel peut très bien ne pas avoir la même couleur, ce qui signifie que l'effet de la transparence pourrait changer après compression, chose qui n'est pas
acceptable.
JPEG (4)
Entrelaçage
– Ce format supporte l'entrelaçage. La visualisation de l'image s'effectue d'abord à très faible qualité (faible encombrement) puis la qualité augmente au fur et à mesure des passages
jusqu'à atteindre la qualité finale de l'image.
Animation
– Ce format ne supporte pas les animations.
Usages
– Représentation de prédilection : les images "naturelles" avec des grands dégradés de couleurs (transition douce de
couleurs).
58 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
JPEG 2000 (1)
Le format JPEG présente un inconvénient majeur :
–
la qualité de l'image après modification.
–
C'est pourquoi, les membres du groupe JPEG, se sont remis à travailler sur l'élaboration d'un nouveau format de codage d'images plus performant : Le JPEG 2000.
Le format JPEG 2000 permet
–
dans une zone définie, des manipulations géométriques tels que la rotation, la permutation du paysage par
rapport au portait.
–
de définir une ou plusieurs zones d'une image afin d'en préserver la qualité. En effet, ce système permet de
dégrader les régions les moins stratégiques de l'image
JPEG 2000 (2)
De plus, un code d'erreur, permet de détecter si une
erreur est survenue lors de la transmission des données de l'image. Malheureusement, le JPEG 2000 ne permet pas la correction de ses erreurs.
Compression
– Le format JPEG 2000 est basé sur un système d'ondelette qui permet une compression plus importante tout en préservant la qualité de l'image (la perte de qualité est imperceptible à l'œil nu). Le seul point faible de la compression à ondelette est le téléchargement obligatoire d'un plug-in.
Nombre de couleurs supportées
– Le JPEG 2000 supporte 16 millions de couleurs
Transparence
– Le JPEG 2000 gère la transparence.
60 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
PNG
PNG (1)
PNG (Portable Network Graphics) est un format libre de droit qui émane des recommandations du
consortium W3 (1996).
– Il est recommandé de l'utiliser sur internet même si son principal inconvénient est de ne pas être reconnu par les navigateurs d'ancienne génération
Nombre de couleurs supportées
– 3 types d'images sont possibles: vraies couleurs, niveaux de gris et 8 bits basée sur l'utilisation d'une palette.
62 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
PNG (2)
Compression
– La compression est sans perte et réputée pour son efficacité...
Transparence
– La transparence est supportée avec la possibilité d'utiliser des masques (fusion de 2 images)
Entrelaçage
– L'affichage entrelacé est possible
Animation
– il ne supporte pas les animations. Il existe cependant son équivalent qui supporte les animations: le format MNG
MNG (1)
Le MNG (Multiple-image Network Graphics) est libre de droit et étroitement lié au format d'image PNG.
La version 1.0 des spécifications sont sortie le 31 janvier 2001. MNG est très récent et n’est pas aussi largement soutenu que le PNG.
La structure des fichiers au format MNG est
fondamentalement identique à celle des fichiers PNG, différant seulement
– dans la signature et
– dans l'utilisation d’unités d’information discrètes fournissant une grande variété de dispositifs d'animation.
Les images utilisées dans l'animation sont stockées dans le fichier MNG comme une encapsulation
d’images au format PNG ou JNG.
64 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
MNG (2)
Deux versions de MNG de complexité réduite ont été également créées. Elles permettent à des applications d'inclure le support de MNG à un certain degré, sans devoir mettre toutes les spécifications de MNG
– MNG-LC (Low Complexity)
– MNG-VLC (Very Low Complexity).
Très peu de navigateurs Web supportent ce format.
– Néanmoins plusieurs navigateurs Web tels que Netscape Navigator et Konqueror affichent déjà MNG
– Mozilla a retiré le support de MNG dans la version 1.5a et dans toutes les futures versions et ne semble pas se vouloir le
APNG
Le format APNG (Animated Portable Network
Graphics) est une autre extension du format PNG. Il est par conséquent libre de droits
Le format APNG est specialement conçu pour faire des animations graphiques pour le web.
MNG est un autre format d'images animées très lié à PNG. L'avantage d'APNG est la taille réduite de la librairie et sa compatibilité avec de vieilles
implémentations de PNG.
66 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Tagged Image File Format
TIFF
TIFF (1)
Attention aux différentes (pour ne pas dire multiples) versions existantes de ce format d'images qui rendent sa diffusion parfois difficile.
Statut par rapport aux brevets
– Aldus corporation.
Nombre de couleurs supportées
– 16 millions.
Compression
– Ce format d'images peut être avec ou sans compression. De plus, il existe différents modes de compressions (sans perte) possibles que l'on peut choisir (ou pas) lors de l'enregistrement du fichier. Toutes ces possibilités expliquent la multitude des formats TIFF que l'on peut rencontrer et qui est à l'origine de problèmes de compatibilités entre logiciels.
68 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
TIFF (2)
Transparence
– Ce format ne supporte pas la transparence.
Entrelaçage
– Ce format ne supporte pas l'entrelaçage.
Animation
– Ce format ne supporte pas les animations.
Usage
– Tous usages (sauf internet).
– Format non utilisé sur internet car trop volumineux.
Des informations stockées dans les images
Metadonnées dans les Images
70 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Exif (1)
L' Exif (Exchangeable image file format) est une spécification de format de fichier pour les images utilisées par les appareils photographiques
numériques.
Il a été établi par le JEIDA (Japan Electronic Industry Development Association ). Cette spécification repose sur des formats existants tels que
– JPEG,
– TIFF version 6.0
– RIFF format de fichier audio WAVE,
en y ajoutant des balises de métadonnées.
Exif (2)
Les métadonnées définies dans ce format couvrent un large éventail de données, dont :
– Information de la date et de l'heure. Les appareils numériques enregistrent la date et l'heure de la prise de vue et l'insèrent dans les métadonnées.
– Les réglages de l'appareil. Cela comprend des informations statiques telles que la marque et le modèle de l'appareil et des informations variables telles que l'orientation, l'ouverture, la vitesse d'obturation, la longueur de focale, la sensibilité...
– Des informations géographiques provenant d'un éventuel système GPS connecté à l'appareil.
– Description et information des droits d'auteur.
72 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Exif (3)
Les données Exif sont incorporées au fichier d'image lui-même.
Le format Exif est essentiellement destiné à être généré lors de la création du fichier et à n'être jamais modifié ensuite
– Certains éléments peuvent être endommagés en cas de modification d'autres éléments.
– Pour ajouter ou modifier des métadonnées (titre, mot clé, etc.) d'utiliser un autre format comme XMP ou IPTC.
La spécification Exif n'est plus maintenue car il n'y a
XMP (1)
Le XMP (Extensible Metadata Platform) est un format de
métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme.
Il a été lancé par Adobe Systems (qui possède la marque XMP et le contrôle des spécification) en avril 2001 en étant intégré à la version 5.0 d'Adobe Acrobat.
XMP permet d'enregistrer sous forme d'un document XML des informations relatives à un fichier : titre, auteur,
historique des modifications, etc.
XMP défini différentes méthodes pour stocker ce document XML au sein même de fichiers
– JPEG, JPEG 2000, GIF, PNG, TIFF – HTML,
– Adobe Illustrator, PSD, PostScript, etc.
74 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
XMP (2)
Bien qu'ouvert à tout type de données pouvant intégrer un document XML, XMP prédéfini la façon de stocker un certain nombre d'informations les plus courantes, en reprenant en particulier des éléments de Dublin Core et d'Exif.
Avantages
– Stocker les métadonnées au sein même du fichier permet de
garantir l'association métadonnées-fichier et facilite les échanges – Grâce à XML, le format est aisément extensible sans créer de
problème de compatibilité
– L'usage d'Unicode permet l'intégration de texte en n'importe quelle langue (ce qui n'est pas le cas avec des solutions
concurrentes et plus anciennes comme IPTC ou Exif)
IPTC
L’IPTC (International Press Telecommunications Council) est un consortium fondé en 1965 et réunissant les principales agences de presses du monde.
– Sa tâche consiste à développer et maintenir des standards techniques destinés à faciliter l'échange des données dans ce domaine.
– Les standards de l'IPTC sont employés par la quasi totalité des grandes agences de presse du monde.
L'IPTC regroupe actuellement environ 55 entreprises et
organisations actives dans le monde de la presse, provenant de tous les continents excepté l'Amérique du Sud.
Métadonnées
– L'IPTC a défini un standard informatique pour le stockage des métadonnées (titre, auteur, agence, copyright, etc.) relatives aux images de presse, utilisé en particulier dans les fichiers JPEG et TIFF.
– Une version a été adaptée pour s'appuyer sur une solution alternative plus récente et performante, XMP.
76 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Une image qui se dessine
Formats Vectoriels
PostScript
78 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
PostScript (1)
Historique
– Créé vers la fin des années 70 par John Gaffney de the Evans &
Sutherland Computer Corporation
– Développé par Design System puis Adobe Systèmes
Incorporated continua le développement comme un langage outil indépendant pour le formatage de page.
– Malgré ses qualités et ses extensions comme EPS (Encapsulated PostScript), PostScript n'est guère populaire que sur les plates- formes Unix tandis que son avatar, le PDF, est très utilisé sur les plates-formes Macintosh et Windows.
– Cependant il reste le format le plus utilisé bien que la plus part
PostScript (2)
Il repose sur des formulations vectorielles de ses éléments.
Ce langage inter plates-formes permet d'obtenir un fichier unique comportant tous les éléments constituant la page (textes, images, polices, couleurs, etc.).
Le Postscript est indissociable de l'environnement dans
lequel il sera exécuté. Étant donné le caractère totalement dynamique de ce langage, il sera en fait interprété.
– L'interpréteur est composé d'une pile, et d'un ou plusieurs dictionnaires.
La pile sert de stockage temporaire pour les paramètres des fonctions, puis pour leurs résultats.
Les dictionnaires permettent le stockage des variables, ainsi que du code des fonctions.
– Exemple ghostscript et ghostview
80 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
PostScript (3)
Nous pouvons commencer par dessiner grâce a PostScript en considérant le géométrie de la page.
– Les coordonnées des points sur la pages ont comme unité le pixel qui représente 1/72eme de pouce dans le langage
PostScript.
– Le point en bas et à gauche de la page a pour coordonnées (0,0)
– la taille de la page par defaut (type letter) est
horizontalement de 612 pixels
verticalement de 792 pixels.
– Autre type pour les pages
PostScript (4)
La deuxième étape est de placer le pinceau à la
position initiale du tracé. Ceci peut être réalisé par la commande
x y moveto
– Où x et y sont respectivement l'abscisse et l'ordonné où va être placé le pinceau
– Où x et y sont considérés comme des nombres entiers correspondant à des pixels.
– En PostScript les arguments sont avant les commandes !
82 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
PostScript (5)
Maintenant nous sommes prêt à tracer une ligne.
Commençons avec une figure simple : le segment. La commande pour réaliser ceci est
xx yy lineto
– Où xx et yy sont les coordonnées du point correspondant a la fin du segment. Son point de départ est la position courante du pinceau x et y.
Exemple
% initialisation % 100 100 moveto
% Dessin d’un rectangle % 300 100 lineto
PostScript (5)
Autres exemples de commandes
– Déplacement relatif au point précédent
x y rmoveto
– Dessin de ligne relatif au point précédent
x y rlineto
– Modifier l’épaisseur de trait
x setlinewidth
– Dessin d’arc de cercle
x y r a b arc
84 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Scalable Vector Graphics
SVG
SVG (1)
SVG (Scalable Vector Graphics ) est une spécification du
W3C. C'est un format de fichier basé sur XML permettant de décrire des ensembles de graphiques vectoriels.
Il existe 3 spécifications SVG rédigées par le W3C :
– SVG : spécification complète
– SVG Mobile : spécifications allegées dédiées aux systèmes embarqués
– SVG Print : spécification dédiée pour l'impression de documents
SVG 1.1 et SVG Mobile sont des recommandations du W3C depuis le 14 janvier 2003.
– SVG 1.2 est toujours en Working draft (brouillon)
– SVG Mobile 1.2 est en Last call for comments (dernier brouillon)
86 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
SVG (2)
Avantages du langage SVG
– interopérable : étant issu du XML, il offre la possibilité d'utiliser tous les outils XML dont les parsers, les outils de
transformations, les bases de données, les feuilles de style...
– ouvert : les spécifications sont publiques et leur implémentation est libre
– complet : support des formes de base, des dégradés, d'animations, d'effets, du texte, de script (Javascript)
SVG (3)
<?xml version="1.0" encoding="utf-8"?>
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:ev="http://www.w3.org/2001/xml-events"
version="1.1"
baseProfile="full"
x="0" y="0"
width="300" height="200"
id="svg2">
<title>Rectangles</title>
<defs
id="defs4" />
<g
id="layer1">
<rect
width="300" height="120"
x="0" y="20«
fill="green" id="rect1306" />
</g>
</svg>
88 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
SVG (4)
SVG peut être visualisé nativement avec certains navigateurs Web
– Konqueror – Opera
– Mozilla Firefox
– ou à l'aide d'un plug-in pour d'autres.
Certaines interfaces graphiques l'utilisent pour la gestion et l'affichage d'icônes, et d'interface
– X.org – GNOME
Pour en savoir plus sur les formats
Quelques Références
90 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Références (1)
Historique
– http://www.hominides.com/html/art/grotte-chauvet.htm – http://fr.wikipedia.org/wiki/Hi%C3%A9roglyphe
GIF
– http://fr.wikipedia.org/wiki/Graphics_Interchange_Format
JPEG
– http://fr.wikipedia.org/wiki/JPEG
PNG
– http://fr.wikipedia.org/wiki/Portable_Network_Graphics
TIFF
Références (2)
APNG
– http://fr.wikipedia.org/wiki/APNG
Exif
– http://exif.org/
PostScript
– http://melusine.eu.org/syracuse/postscript/
– http://fr.wikipedia.org/wiki/PostScript
SVG
– http://www.yoyodesign.org/doc/w3c/svg1/
– http://svgfr.org/
– http://fr.wikipedia.org/wiki/SVG
92 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
La Couleur
RVB
Le RVB (RGB)
– Rouge, vert et bleu sont les trois couleurs primaires en synthèse additive
– Les 24 bits d'une couleur se décomposent en 3 fois 8 bits :
8 bits sont consacrés à la teinte primaire rouge
8 bits sont consacrés à la teinte primaire vert
8 bits sont consacrés à la teinte primaire bleu.
94 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
CMJN
Le CMJN (CMYK)
– Le cyan, le magenta et le jaune sont les trois couleurs primaires en synthèse soustractive
TSL
Le TSL (HSL)
– Contrairement aux espaces RVB et CMYK, le système HLS est indépendant du support.
la teinte (en anglais Hue), correspondant à la perception de la couleur (T-shirt mauve ou orange),
la saturation, décrivant la pureté de la couleur, c'est-à-dire son caractère vif ou terne (T-shirt neuf ou délavé),
la luminance, indiquant la quantité de lumière de la couleur, c'est- à-dire son aspect clair ou sombre (T-shirt au soleil ou à l'ombre).
96 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
TSV
Le TSV (HSV)
– HSV(Hue, Saturation, Value) est un espace colorimétrique.
– Le modèle HSV, ou HSB (Hue, Saturation, Brightness), defini un espace de couleur en fonction de ses trois composants
– Teinte, le type de couleur (comme rouge, bleu, jaune...):
– Saturation, l'intensité de la couleur:
Parfois appelé "pureté"
Plus faible est la saturation d'une couleur, plus l'image sera
"grisée" et plus elle apparaitra fade
– Valeur, la "brillance" de la couleur
YUV
Le YUV
– La premier représente la luminance et les deux autres représentent la chrominance.
– YUV est utilisé dans les systèmes de diffusion télévisuelle PAL et NTSC.
– Le modèle YUV se rapproche beaucoup plus de la perception humaine des couleurs que le RGB, mais pas autant que HSV.
– Dans le traitement des signaux vidéo couleur, on ajuste les
coefficients des signaux U et V de telle sorte que la valeur crête à crête soit égale à la valeur maximale de Y, soit 0,7 V.
Y = 0,299R + 0,587V + 0,114B U = 0,492(B− Y)
= − 0,147R − 0,289V + 0,436B V = 0,877(R − Y)
= 0,615R − 0,515V − 0,100B
98 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
YDbDr
Le YDbDr
–
YDbDr est l'espace colorimétrique utilisé dans la norme de télévision couleur SÉCAM.
–
Y est la luminance, et Db et Dr sont les différences de couleur rouge et bleue.
–
Les composantes YDbDr entretiennent les relations suivantes avec les composantes de l'espace de couleur RGB
Y = + 0.299R + 0.587G + 0.114B Db = + 1.505(B - Y)
Et l’Œil Humain…
Le gamut de l'œil humain
– Soit un espace à 3 dimensions basé sur les composantes Rouge, Vert, Bleu où tous les points ont une position définie dans un repère orthonormé par les 3 coordonnées (r,v,b).
– L'œil humain n'est capable de percevoir qu'une partie de cet espace.
– L'ensemble des points de cet espace qui correspond aux
possibilités visuelles de l'œil humain forme un patatoïde, qui, projeté sur un plan convenablement orienté, donne une figure en forme de fer à cheval.
100 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Le Gamut de l’œil humain
Le gamut de l'œil humain
Ou comment réduire la taille physique des données
La Compression des Données
102 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Compression (1)
Pourquoi compresser les données?
– De nos jours, la puissance des processeurs augmente plus vite que les
capacités de stockage, et énormément plus vite que la bande passante des réseaux, car cela demande d'énormes changements dans les
infrastructures de télécommunication.
– Pour pallier ce manque, on réduit la taille des données en exploitant la puissance des processeurs plutôt qu'en augmentant les capacités de stockage et de transmission des données.
Qu'est-ce que la compression de données?
– La compression consiste à réduire la taille physique de blocs d'informations.
Un compresseur utilise un algorithme qui sert à optimiser les données en utilisant des considérations propres à celles-ci.
Un décompresseur est nécessaire pour reconstruire les données originelles
Compression (2)
Le quotient de compression, aussi parfois appelé ratio de compression, est une mesure de la performance d'un algorithme de compression de données
informatiques.
– Le degré de réduction de la taille des données obtenues par une méthode de compression peut être évalué au moyen du quotient défini par la formule :
Q = taille initiale/taille finale
– Plus une compression sera forte, plus le quotient de compression sera lui aussi élevé.
Image d’origine = 800 Ko
Image compressée = 50 Ko
Quotient de compression = 800/50 = 16
104 Présentation: Stéphane Lavirotte - Auteurs: ... et al*
Compression (3)
Le taux de compression est défini comme étant le rapport du volume des données après compression sur le volume initial des données.
– De ce fait, plus le taux de compression est faible, plus la taille du fichier compressé résultant est faible.
Le taux de compression exprimé en pourcentage ainsi défini est donné par la formule :
( [Volume final] / [Volume initial] )* 100.
Taux de compression = (50/800)*100 = 6.25%
Le gain de compression est défini comme le gain en volume rapporté au volume initial des données.
– Cette définition est en fait complémentaire de la première. Plus le taux de compression est élevé, plus la taille du fichier compressé résultant est
faible.
– La formule correspondante exprimée en pourcentage s’écrit :
([Volume initial] - [Volume final])/[Volume initial] * 100
Compression (4)
Compression physique et logique
– La compression physique agit directement sur les données
il s'agit de regarder les données redondantes d'un train de bits à un autre.
– La compression logique est effectuée par un raisonnement logique en substituant une information par une information équivalente.
Compression symétrique et asymétrique
– Dans le cas de la compression symétrique, la même méthode est utilisée pour compresser et décompresser l'information
Il faut donc la même quantité de travail pour chacune de ces opérations.
C'est ce type de compression qui est généralement utilisée dans les transmissions de données.
– La compression asymétrique demande plus de travail pour l'une des deux opérations.
On recherche souvent des algorithmes pour lesquels la compression est plus lente que la décompression.
Des algorithmes plus rapides en compression qu'en décompression peuvent être nécessaire lorsque l'on archive des données auxquelles on n'accède peu souvent.
106 Présentation: Stéphane Lavirotte - Auteurs: ... et al*