Jump to: navigation, search

Compression d'images

Revision as of 16:22, 10 June 2018 by Frankiezafe (Talk | contribs) (Pourquoi compresser?)

Cette page présente quelques algorithmes courants de compression d'images.

Pourquoi compresser?

Pour comprendre en quoi la compression des images est nécessaire en informatique , nous allons faire un rapide retour sur la structure d'une image numérique[1].

Une image en informatique est une liste de pixels stockée en 1 dimension et lue bloc par bloc pour en faire une surface.

Sur le disque dur, une image est organisée comme ceci:

Image-data-model-memory.png

Les premiers bytes du fichiers contiennent un manuel d'utilisation, expliquant quelles sont ses dimensions, l'emplacement des différentes zones de mémoires et éventuellement une signature caractéristique du type de compression (codec) utilisée. Une fois dépassé, le reste des bytes du fichiers contient les informations de couleur qui permettront d'allumer les pixels de l'écran. La tâche d'un logiciel d'affichage et/ou de traitement d'image est de lire le manuel et de convertir les informations en une grille de pixels. Après cette opération, l'image est affichable sur un écran 2D[2].

Image-data-model-onscreen.png

Le stockage de chaque pixel dans une liste occupe beaucoup de place en mémoire. Pour pouvoir visualiser et manipuler l'image, il est courant de la décompresser dans la RAM. Cette mémoire étant optimisée pour cet usage (l'accès en lecture et en écriture est très rapide), elle permet de manipuler les images sans qu'elles soient compressées. Sa capacité est par contre beaucoup plus réduite que celle des disques durs, et elle se remplit très vite puisqu'elle utilise les fichiers non compressés.

Le stocakge en ROM n'a pas les mêmes performance que la RAM. La ROM est lente mais par contre permet de stocker de grosses quantité de données. C'est en grande majorité pour améliorer ROM que la compression a été mise au point en image.

  • Son premier rôle est de réduire la quantité de mémoire utilisée pour un fichier. Si une compression diminue par 10 le poids des fichiers sur le disque dur, il pourrat donc en contenir 10x plus!
  • Son deuxième rôle est d'accélérer l'accès au fichier. En comparaison de la RAM, un disque dur est lent en lecture. Si un fichier compressé contient 10x moins d'informations que son équivalent non-compressé, la lecture de ses informations sera plus rapide. Le facteur 10 n'est pas nécessairement vrai ici. Dans le cas de petits fichiers, la différence n'est pas aussi marquante puisqu'il faut ajouter au temps de lecture le temps que l'OS prend à le retrouver dans le disque.

https://en.wikipedia.org/wiki/Image_compression

https://en.wikipedia.org/wiki/Image_file_formats

https://en.wikipedia.org/wiki/Comparison_of_graphics_file_formats

https://en.wikipedia.org/wiki/Data_compression

Comparaison

Original JPEG 20% GIF 12 couleurs
Compressions-comparaison.png

Photos

  • original, 417.2 kB

Flag-Of-Palestine-Arab-Man-Waving-1081797.jpg

PNG

  • 1.9 MB

Flag-Of-Palestine-Arab-Man-Waving-1081797 png.png

JPEG

Le JPEG utilise une compression spaciale des informations de l'image.

  • qualité à 60% - 163 kB

Flag-Of-Palestine-Arab-Man-Waving-1081797 60pc-delta.jpg

  • qualité à 40% - 157.5 kB

Flag-Of-Palestine-Arab-Man-Waving-1081797 40pc-delta.jpg

  • qualité à 20% - 140.8 kB

Flag-Of-Palestine-Arab-Man-Waving-1081797 20pc-delta.jpg

  • qualité à 3% - 73.2 kB

Flag-Of-Palestine-Arab-Man-Waving-1081797 01pc-delta.jpg

GIF

  • palette de 256 couleurs - 1.1 MB

Flag-Of-Palestine-Arab-Man-Waving-1081797 256palette-delta.jpg

  • palette de 102 couleurs - 970.7 kB

Flag-Of-Palestine-Arab-Man-Waving-1081797 102palette-delta.jpg

  • palette de 12 couleurs - 651.9 kB

Flag-Of-Palestine-Arab-Man-Waving-1081797 12palette-delta.jpg

Graphique

  • original, 30.3 kB

Godot logo.png

JPEG

  • qualité à 60% - 14.5kB

Godot logo 60pc jpg.png

  • cqualité à 20% - 11,3kB

Godot logo 20pc jpg.png

  • qualité à 3% - 5.6kB

Godot logo 03pc jpg.png

GIF

  • palette de 20 couleurs - 40.1kB

Godot logo 20palette gif.png

  • palette de 5 couleurs - 37.3kB

Godot logo 5palette gif.png

  • palette de 20 couleurs - 21.2kB

Godot logo 2palette gif.png

Références

  1. La notion fondamentales de l'image en informatique sont expliquée sur cette page: les unités en informatique, le pixel est .
  2. Les informations stockées dans une image sur le disque ne sont en rien différentes de celle d'un fichier son, d'une vieo, d'un programme ou d'un driver. C'est ce header et/ou à l'extension de fichier qui vont permettre de lire correctement un fichier.