= Introduction aux formats d'images numériques = = Blabla = Cette page est un résumé de ce qui s'est dit lors de l'atelier correspondant au cours du chantier. Si vous avez oublié des choses ou si vous n'avez pas eu l'occasion de participer Ã| l'atelier, vous pourrez toujours revenir jeter un coup d'oeil ici.

La page est découpée en deux parties, une partie générale qui présente les informations pour commencer et une partie plus (trop?) technique qui permet Ã| celles ou ceux qui le désirent d'aller plus loin.

= Non-Geek = = Qu'est ce qu'une image numérique? = Une image numérique est un fichier composé de deux parties principales (comme la plupart des fichiers informatiques):

  • un header: ou en-tête, qui permet de déterminer des informations générales sur le fichier. Par exemple, la taille de l'image, son type de compression, sa résolution...
  • un corps de texte: qui contient les informations concernant l'image proprement dite. == BMP (format d'image non compressé) ==

Une image non compressée se présente sous la forme d'un tableau de pixels. A chaque pixel (= point de l'image) correspond une valeur définissant la couleur.

La couleur est codée sur 3 octets?StrongUnOctet/strongEstUnNombreBinaireDeHuitChiffres/SaValeurEstCompriseEnD%c3%83%c2%a9cimalEntre0Et255))" >FootNote(Un octet est un nombre binaire de huit chiffres. Sa valeur est comprise en décimal entre 0 et 255)). Chaque octet représente une couleur, soit rouge, vert ou bleu. Ce système de codage est appelé RVB?FootNote(ou RGB en anglais). Si les trois valeurs sont égales, on obtient au final une couleur grise plus ou moins sombre. Les trois valeurs Ã| 0 correspondent Ã| une couleur noire, et réciproquement, les trois valeurs Ã| 255 correspondent Ã| une couleur blanche.

Le codage RGB correspond Ã| la version complémentaire du codage des couleurs classique, utilisé lorsqu'on mélange des couleurs en peinture par exemple.


image


Pour réduire la taille d'une image BMP, on pourra souvent réduire le nombre de ces couleurs (sur un seul octet au lieu de trois, voire simplement sur un bit (= un chiffre binaire, vaut 0 ou 1) pour des images en noir et blanc. Lors du codage en un octet seulement, cela correspond soit Ã| des niveaux de gris (cas ou les trois valeurs RVB sont au même niveau), soit Ã| l'association de chaque valeur Ã| une couleur spécifique. Cette association est appelée une *palette de couleurs*. La correspondance valeur <=> couleur est précisée dans le header.

== ?JPeG == Une image codée en ?JPeG est une image compressée. Ce format est destructif, ce qui veut dire que la sauvegarde répétée d'images au format jpeg donne lieu Ã| une dégradation qui risque de se voir après un certain nombre de fois. Cependant, cette destruction (qui vise Ã| simplifier l'image, et donc Ã| réduire sa taille) est faite pour être invisible Ã| l'oeil nu sur des images complexes (type photo).

Pour des images simples, par exemple des logos, on pourra voir par contre la dégradation assez facilement en zoomant un peu.


image


Conclusion: La compression jpeg est donc conseillée dans le cas de photographies que l'on ne compte pas retoucher.

== GIF == Une image codée en GIF est une image compressée. Le gif utilise deux méthodes complémentaires: la palettisation (réduction du nombre de couleurs de façon Ã| en avoir entre 2 et 256) et la définition de zones homogènes. Plus l'image est constituée de grandes zones homogènes, plus la compression sera efficace. La compression de photos est déconseillée en gif du fait du grand nombre de couleurs nécessaire et de la petite taille des zones de couleur homogène. Le gif permet également de définir une couleur qui sera vue comme transparente. Il permet également de faire des animations (série d'images qui seront lues les unes après les autres, donnant une illusion de mouvement).

Le gros problème du gif, c'est qu'il n'est pas libre. Ce qui signifie que les applications qui veulent compresser en gif doivent payer une license. Ce qui signifie également que l'utilisation d'images gif peut donner lieu au paiement de royalties.

Conclusion: Le gif est conseillé pour faire des animations, et également dans le cadre de site webs. Du fait de son format non libre, il est néanmoins conseillé de préférer le png.

== PNG == Une image codée en png est une image compressée aussi (décidemment). La compression est non destructrice. Elle peut éventuellement passer par une palettisation. Un png peut, en plus de la transparence disponible pour le gif, définir des niveaux d'opacité (couleurs plus ou moins transparentes)

Conclusion: Le png est un format polyvalent, qui, s'il compresse légèrement moins bien que les deux autres(jpeg et gif), dispose de fonctionnalités supplémentaires et n'est pas destructif. En plus, il est libre...

= Formats The Gimp, Photoshop, PaintShopPro, Topshop... = Ces types de formats sont des formats compressés légèrement, mais incluant en plus toute une série d'informations supplémentaires, notamment les calques (ou layers, puisque les images sous ce type d'applications peuvent être découpées en couches)

= Images vectorielles = Les images vectorielles, contrairement aux autres formats d'images décrits précédemment, ne stockent pas les informations sous la forme d'un tableau de pixels, mais sous la forme d'une liste d'élément, précisant leur type (par exemple rectangle), leur orientation et leur position dans l'image et par rapport aux autres éléments de celle-ci, et leur style (type de bordure, de remplissage, degré de transparence...).

Ce type de format permet d'évacuer le problème de mise Ã| l'échelle, ce qui fait qu'on n'a jamais de problème de pixellisation. = Pour aller plus loin = = Octets = En binaire, 1 vaut 1(=2 Ã| la puissance 0), 10 vaut 2 (=2 Ã| la puissance 1), et 100000000 vaut 256 (2 Ã|  la puissance 8). Un octet entièrement Ã|  un (11111111) ( 100000000 - 1) vaut donc 256 - 1 = 255.

De façon plus générale, pour convertir un nombre binaire en décimal, il faut prendre chacun de ses chiffres ( ou digit), obtenir leur valeur décimale (= 2 Ã| la puissance (nombre de 0 après le 1) et les sommer. 10001011 vaut donc 2^7 + 2^3 + 2^1 + 2^0 = 128+8+2+1 = 139

= Codage des couleurs = A côté du système RVB, il existe un système appelé Teinte-Luminance-Saturation basé sur ces trois valeurs. Elles sont codées sur un octet chacune, comme pour le système RVB.

  • La teinte est la valeur de la couleur de base.
  • La luminance est la quantité de lumière (= de blanc) apportée Ã| la teinte. Une valeur de luminance de 255 (=luminance max) équivaut Ã| un pixel

blanc quelle que soit sa teinte d'origine.

  • La saturation correspond Ã| la pureté de la teinte. Une saturation nulle correspond Ã| un pixel en gris.

= Oeil humain = Une propriété de l'oeil humain couramment utilisée dans le domaine de l'informatique est le fait qu'il ne distingue pas chaque point de couleur séparément, mais va faire une sorte de moyenne entre celui ci et tous les points adjacents, si ceux ci sont suffisament proches.

Par ailleurs l'oeil humain est incapable de distinguer plus d'une trentaine de niveaux de gris différents. Dans le cas de couleurs, il est un peu plus efficace, mais sa sensibilité varie grandement selon la teinte des couleurs.

= Matériel et RVB = Au niveau matériel, chaque point d'un écran est composé de trois sous-points, un rouge, un vert et un bleu. Ces points sont ensuite plus ou moins allumés (selon la couleur qui est demandée) et l'oeil humain fusionne ensuite les trois couleurs.

Pour les imprimantes, on utilise le même principe, mais avec l'autre système de couleurs (Cyan, Magenta, Jaune) auquel on ajoute le noir. C'est ce qu'on appelle la quadrichromie. L'imprimante va poser des points de chaque couleur, et laisser l'oeil humain faire le mélange.

image


= Compression ?JPeG =

La compression ?JPeG se base sur la transformée de fourier. En gros, cela part du principe que l'on peut remplacer un signal (par exemple une ligne de couleurs d'une image) par la somme d'un certain nombre de courbes sinusoïdales (que l'on appelle des harmoniques).


image


Le nombre d'harmoniques nécessaires pour représenter un signal peut être infini. Dans le cadre d'une compression d'image, on se limitera donc aux premières harmoniques (celles qui ont la taille la plus importante) et on abandonnera les autres (ce qui correspond Ã| la perte de qualité mentionnée précédemment).