• Accueil
  • À propos
  • Accrom\(\alpha\)th en PDF
  • Commanditaires
  • Contact
  • Contributions des lecteurs
  • Sites amis

Logo

Les images sur la Toile, un défi de taille

Par Marc Bergeron
Volume 7.2 - été-automne 2012

Les sites Web que nous visitons sur la Toile sont maintenant inondés d’images. Cela constitue naturellement un problème de taille, car une quantité énorme d’informations doit être transférée du serveur jusqu’à notre ordinateur. Pour accélérer le traitement de ces images, il faut compresser celles-ci. Ce procédé diminue le poids de l’image en ne sacrifiant pas ou presque pas la qualité.

Il existe plusieurs formats de compression d’images: JPEG, PNG, GIF, RAW, … Chacun possède ses avantages. Par exemple, avec la compression au format PNG, il n’y a pas de perte de qualité et celui-ci gère la transparence de l’image (très utile pour de beaux effets visuels sur votre site préféré), mais le fichier sera habituellement plus volumineux que si nous avions utilisé la compression au format JPEG. Ce dernier est justement l’un des plus utilisés, car il est bien adapté aux images ayant plusieurs couleurs différentes comme les photographies. Regardons de plus près l’algorithme de compression JPEG dans lequel les mathématiques interviennent à plusieurs étapes.

melange-couleursPremière étape:

Changement de repère
Sur l’écran d’un ordinateur, une image est divisée en points appelés pixels. La couleur du pixel affichée sera habituellement donnée par trois nombres entre 0 et 255 (norme RVB) le premier représente l’intensité de rouge; le deuxième, l’intensité de vert et le dernier, l’intensité de bleu. Le rouge, le vert et le bleu sont les longueurs d’onde détectées par les 3 types de cônes situés sur la rétine de nos yeux. Le mélange de ces trois couleurs permet de recréer toutes les couleurs détectables par l’humain. Une image peut donc être décomposée en trois images élémentaires (voir illustrations). Remarquons que dans l’image ii), la carrosserie de l’automobile nous semble presque noire. Cela est dû au fait qu’il n’y a pratiquement pas de teinte de vert sur celle-ci.

Avant de procéder à la compression au format JPEG, il faudra effectuer un changement de repère1 du système à trois composantes RVB (rouge, vert, bleu) vers le système LMN (luminance, chrominance1, chrominance2).

La luminance
La luminance2 contient l’information des niveaux de gris de l’image. Pour la définir, il faut remarquer que la sensibilité de nos yeux n’est pas la même pour les couleurs de base (rouge, vert et bleu). La figure suivante représente les trois couleurs en noir et blanc (plus précisément en niveaux de gris):

Luminance apparente du rouge, du vert et du bleu

Luminance apparente du rouge, du vert et du bleu

Étant donné que le vert est presque au milieu du spectre visible, cette couleur aura la plus grande luminance apparente, suivie par le rouge et le bleu. Après des tests expérimentaux effectués par la Commission internationale de l’éclairage (CIE), la luminance (L) a été définie par la formule suivante:

\[L = 0,299 R + 0,587 V + 0,114 B,\: (^*)\]

où R, V, B sont les composantes du système RVB comprises entre 0 et 255. On remarque que L sera aussi compris entre 0 et 255.

decomposition

Les chrominances
La chrominance1 (notée M) varie linéairement avec l’écart entre le niveau de bleu et la luminance du pixel. Donc,

\[M = a(B – L) + b. \: (^{**})\]

Pour que M soit compris entre 0 et 255 (après troncature), nous trouvons a = 0,56434 et b =128. En utilisant l’égalité (*) et (**), nous obtenons, en gardant 5 décimales,

\[M=–0,16874R–0,33126V \\+0,5B +128\]

La chrominance2, pour sa part, contient l’information de l’écart entre le niveau de rouge et la luminance \((a (R – L) + b,\) où \(a = 0,71327\) et \(b = 128).\)

Par le même procédé, nous obtenons

\[N=0,5R– 0,41869V – 0,08131B+128.\]

Alors, notre image initiale (dans le système RVB) sera maintenant décomposée en trois images dans le système LMN; (voir illustrations ci-dessous). Nous constatons aisément que la luminance est de loin la plus importante composante du système LMN.

chrominance

compression-4

Deuxième étape:

Compression des chrominances
Pour l’instant, nous n’avons pas diminué la taille du fichier image. Étant donné que nos yeux sont moins sensibles aux chrominances (donc aux écarts entre les couleurs), nous allons compresser une première fois en diminuant la quantité d’informations sur les chrominances:

  1. Considérons le tableau contenant les valeurs de chrominance1 associées à chaque pixel.
  2. Partageons celui-ci en plusieurs petits tableaux de 4 nombres (2 lignes par 2 colonnes).
  3. Gardons seulement la moyenne des 4 nombres de chaque petit tableau.

Par exemple, prenons une « image » de 4 pixels par 4 pixels que nous avons décomposée dans le système LMN et regardons la chrominance1 (M) pour chacun des pixels:

Compression-figure1

Naturellement, cette compression sera aussi effectuée sur la chrominance2. Donc, l’image de 4 pixels par 4 pixels, avant compression, est décrite par 16 nombres pour la chrominance1 (M), 16 pour la chrominance2 (N) et 16 pour la luminance (L), pour un total de 48 nombres. Après la compression, elle est décrite par 4 nombres pour M, 4 pour N et nous gardons les 16 nombres de L, pour un total de 24 nombres. La taille de notre fichier image sera diminuée de moitié!

Lorsque nous voudrons afficher l’image à partir de ce fichier compressé, lors de la décompression, chaque nombre gardé pour la chrominance1 (ou chrominance2) sera reproduit quatre fois.

Compression-figure2

Troisième étape:

Compression de la luminance
Étant donné l’importance des valeurs de la luminance, celles-ci ne pourront pas être compressées comme précédemment. La conséquence serait une grande perte de la qualité de l’image à la décompression. Le format JPEG utilise plutôt la transformée en cosinus discrète (TCD) où interviennent les fonctions trigonométriques. Ce procédé, énormément utilisé en télécommunication et dans le traitement des sons et des images, permet d’extraire des informations plus importantes que d’autres d’un ensemble de données. L’idée de base de la TCD est de réorganiser les données sur la luminance en soulignant les contrastes entre les pixels plutôt que de garder les informations sur chacun des pixels individuellement. Les contrastes les moins importants sont tout simplement éliminés, diminuant par le fait même la taille de notre fichier image.

Voici un exemple très simplifié qui nous permettra de mieux comprendre le mécanisme derrière la TCD (pour quelques détails sur le vrai calcul de la TCD, voir l’encadré):

Considérons les valeurs de luminance pour 4 pixels:

\[L= \left ( \begin{array}{r c l} 120 & & 124 \\ 123 & & 128 \end{array} \right ) \]

Le premier élément du tableau deviendra la somme de toutes les valeurs (495). Le deuxième élément sera la somme des valeurs de la première colonne moins les valeurs de la deuxième colonne (-9). Ce nombre représente le contraste entre la partie gauche et la partie droite du tableau. Le troisième élément sera la somme des valeurs de la première ligne moins la somme des valeurs de la deuxième ligne (-7). Cela représente le contraste entre la partie du haut et celle du bas. Finalement, le quatrième élément sera la somme de la diagonale principale moins la somme de la diagonale secondaire (1). Le tableau deviendra:

\[L= \left ( \begin{array}{r c l} 495 & & -9 \\ -7 & & 1 \end{array} \right ) \]

(Soulignons qu’il est facile, à partir de ce dernier tableau, de retrouver le tableau initial). Mais quel est l’avantage de cette réorganisation des données? Notre œil sera davantage sensible aux grandes valeurs du tableau. Sans entrer dans les détails, la com- pression consistera à éliminer les plus petites valeurs (en valeur absolue) et réduira alors la taille du fichier image, car il y aura moins de valeurs pour décrire la luminance (dans notre exemple, seules les valeurs 495, -9 et -7 seraient gardées).

Naturellement, le chemin inverse sera encore possible, mais à cause des données éliminées, il y aura une perte de qualité de l’image.

Conclusion

Pour convertir au format JPEG, nous devons donc calculer les composantes LMN, compresser les deux composantes de chrominance, puis finalement compresser la luminance à l’aide de la TCD. Un fichier au format JPEG pourra être le 1/4 de la taille du fichier original avec une perte minime de qualité. On comprend pourquoi le format JPEG est extrêmement utilisé sur le Web.

compression-1

compression-2

compression-3

Pour en s\(\alpha\)voir plus !

  • ROUSSEAU, Christiane et SAINT-AUBIN, Yvan. Mathématiques et technologie ( p. 379-406). Édition Springer, 2008.
    http://www-ljk.imag.fr/membres/Valerie.Perrier/SiteWeb/node6.html

PDF

  1. Les changements de repère ont déjà été partiellement expliqués dans Accromath, été-automne 2011, p. 22 ↩
  2. La luminance est définie par l’intensité lumineuse divisée par unité de surface émettrice. Elle n’est ni plus ni moins la sensation visuelle de la lumière. Si nous sommes éblouis par une lampe de poche ou lorsque nous avons de la difficulté à distinguer les détails dans une pièce sombre, c’est la luminance qui est en cause. ↩
  • ● Version PDF
Partagez
  • tweet

Tags: Applications

Articles récents

  • Le mouvement brownien : Du pollen de Brown à l’origine de la finance moderne

    Michel Adès, Matthieu Dufour, Steven Lu et Serge Provost
  • Le problème des \(N\) corps

    Christiane Rousseau
  • Comprendre la structure des nombres premiers

    Andrew Granville

Sur le même sujet

  • La quête de la Licorne

    France Caron
  • Jouer efficacement au Sudoku

    Marc Laforest

Volumes

  • Volume 18.1 – hiver-printemps 2023
  • Volume 17.2 – été-automne 2022
  • Volume 17.1 – hiver-printemps 2022
  • Journée internationale des mathématiques: Accromath multilingue
  • Volume 16.2 – été-automne 2021
  • Volume 16.1 – hiver-printemps 2021
  • Volume 15.2 – été-automne 2020
  • Thème spécial: Les mathématiques sont partout
  • Volume 15.1 – hiver-printemps 2020
  • Volume 14.2 – été-automne 2019
  • Volume 14.1 – hiver-printemps 2019
  • Volume 13.2 – été-automne 2018
  • Volume 13.1 – hiver-printemps 2018
  • Volume 12.2 – été-automne 2017
  • Volume 12.1 – hiver-printemps 2017
  • Volume 11.2 – été-automne 2016
  • Volume 11.1 – hiver-printemps 2016
  • Volume 10.2 – été-automne 2015
  • Volume 10.1 – hiver-printemps 2015
  • Volume 9.2 – été-automne 2014
  • Volume 9.1 – hiver-printemps 2014
  • Volume 8.2 – été-automne 2013
  • Volume 8.1 – hiver-printemps 2013
  • Volume 7.2 – été-automne 2012
  • Volume 7.1 – hiver-printemps 2012
  • Volume 6.2 – été-automne 2011
  • Volume 6.1 – hiver-printemps 2011
  • Volume 5.2 – été-automne 2010
  • Volume 5.1 – hiver-printemps 2010
  • Volume 4.2 – été-automne 2009
  • Volume 4.1 – hiver-printemps 2009
  • Volume 3.2 – été-automne 2008
  • Volume 3.1 – hiver-printemps 2008
  • Volume 2.2 – été-automne 2007
  • Volume 2.1 – hiver-printemps 2007
  • Volume 1 – été-automne 2006
  • Article vedette

    Auteurs

    • Michel Adès
    • Antoine Allard
    • Jean Aubin
    • Marie Beaulieu
    • Rosalie Bélanger-Rioux
    • Claude Bélisle
    • Marc Bergeron
    • Pierre Bernier
    • André Boileau
    • Véronique Boutet
    • Pietro-Luciano Buono
    • Massimo Caccia
    • Jérôme Camiré-Bernier
    • France Caron
    • Philippe Carphin
    • Kévin Cazelles
    • Laurent Charlin
    • Pierre Chastenay
    • Noémie Chenail
    • Jocelyn Dagenais
    • Marie-France Dallaire
    • Jean-Lou de Carufel
    • Jean-Marie De Koninck
    • Lambert De Monte
    • Jean-Paul Delahaye
    • Marc-André Desautels
    • Florin Diacu
    • Jimmy Dillies
    • Nicolas Doyon
    • Philippe Drobinski
    • Hugo Drouin-Vaillancourt
    • Louis J. Dubé
    • Thierry Duchesne
    • Matthieu Dufour
    • Stéphane Durand
    • Thomas Erneux
    • Philippe Etchécopar
    • Julien Fageot
    • Charles Fleurent
    • Jérôme Fortier
    • Marlène Frigon
    • Jean-François Gagnon
    • André Garon
    • Christian Genest
    • Denis Gilbert
    • Jonathan Godin
    • Frédéric Gourdeau
    • Samuel Goyette
    • Andrew Granville
    • Jean Guérin
    • Hervé Guillard
    • Abba B. Gumel
    • James A. Hanley
    • Alain Hertz
    • Bernard R. Hodgson
    • Isabelle Jalliffier-Verne
    • Guillaume Jouvet
    • Tomasz Kaczynski
    • Patrick Labelle
    • Marc Laforest
    • Nadia Lafrenière
    • Josiane Lajoie
    • Alexis Langlois-Rémillard
    • Simon-Olivier Laperrière
    • René Laprise
    • Steffen Lauritzen
    • Denis Lavigne
    • Adrien Lessard
    • Steven Lu
    • Jean Meunier
    • Erica Moodie
    • Normand Mousseau
    • Johanna G. Nešlehová
    • Pierre-André Noël
    • Dmitry Novikov
    • Ostap Okhrin
    • Laurent Pelletier
    • Jean-François Plante
    • Serge B. Provost
    • Annie Claude Prud'Homme
    • Benoît Rittaud
    • Louis-Paul Rivest
    • Serge Robert
    • André Ross
    • Christiane Rousseau
    • Guillaume Roy-Fortin
    • Yvan Saint-Aubin
    • Maria Vittoria Salvetti
    • Charles Senécal
    • Vasilisa Shramchenko
    • Robert Smith?
    • Anik Trahan
    • Shophika Vaithyanathasarma
    • William Verreault
    • Redouane Zazoun

Sujets

Algèbre Applications Applications des mathématiques Changements climatiques Climat Construction des mathématiques COVID-19 Cristallographie cryptographie GPS Gravité Géométrie Histoire des mathématiques Imagerie Infini Informatique Informatique théorique intelligence artificielle Jeux mathématiques Logique mathématique Lumière Mathématiques de la planète Terre Mathématiques et architecture mathématiques et art Mathématiques et arts Mathématiques et astronomie Mathématiques et biologie Mathématiques et développement durable Mathématiques et littérature Mathématiques et musique Mathématiques et médecine Mathématiques et physique Mathématiques et transport Modélisation Nombres Portrait d'un mathématicien Portrait d'un physicien Probabilités Probabilités et statistique Racines Rubrique des Paradoxes Section problèmes Théorie des groupes Éditorial Épidémiologie

© 2023 Accromath