Ouvrez n'importe quel fichier .jpg dans un editeur hexadecimale. Les deux premiers octets :
FF D8
C'est le marqueur Start of Image (debut d'image). Chaque fichier JPEG commence par lui. Chaque decodeur JPEG sur Terre le recherche. Les octets suivants indiquent au decodeur quelle variante de JPEG est utilisee, quel espace colorimetrique est attendu et ou commencent les donnees de pixels. Le format est plus ancien que le navigateur Web, mais il represente encore environ 57% de toutes les images diffusees sur le Web moderne, selon le Web Almanac 2025.
La crise de stockage qui a cree JPEG
En 1986, une image en niveaux de gris brute de 640 x 480 occupait 307 Ko d'espace disque. Une image couleur a la meme resolution necessitait 921 Ko. A une epoque ou un disque dur de 20 Mo coutait des centaines de dollars et ou les disquettes de 1,44 Mo etaient le support d'echange standard, une seule photo non compressee pouvait remplir les deux tiers d'une disquette.
Le besoin etait evident : un format de compression standard pour les images a tons continus -- des photographies, pas des dessins au trait. Plusieurs groupes travaillaient sur le probleme. Le Joint Photographic Experts Group, forme en 1986 par l'ISO/IEC et l'ITU-T, a fusionne les meilleures idees en un seul projet. Apres six ans d'affinage, la norme a ete publiee en 1992 sous le nom d'ISO/IEC 10918-1.
JPEG n'a jamais ete concu pour etre le seul format d'image. Il a ete cree pour un seul travail : rendre les photographies assez petites pour etre stockees et transmises. Il accomplit ce travail en supprimant des informations dans un ordre tres precis.
Pourquoi JPEG compresse si bien
La compression JPEG est un pipeline, pas un algorithme unique. Chaque etape supprime des donnees que le systeme visuel humain est le moins susceptible de remarquer.
1. Conversion d'espace colorimetrique (RGB -> YCbCr)
Votre ecran affiche du RGB. JPEG stocke du YCbCr. Le canal Y porte la luminance (luminosite). Cb et Cr portent la chrominance (difference de bleu et difference de rouge). Cela compte parce que l'oeil humain possede environ 2,5 millions de cellules cones reglees sur la luminosite et seulement 100 000 reglees sur la couleur. Nous voyons les details de luminance bien mieux que les details de couleur.
2. Sous-echantillonnage chromatique (Chroma Subsampling)
La plupart des JPEG utilisent un sous-echantillonnage 4:2:0. Pour chaque 4 echantillons de luminance, il y a 1 echantillon Cb et 1 echantillon Cr. Cela signifie que les canaux de chrominance sont stockes a un quart de la resolution du canal de luminance. Pour une image de 4000 x 3000, le plan Y est en pleine resolution. Les plans Cb et Cr sont de 2000 x 1500 chacun. Vous venez de reduire les donnees brutes d'environ 50% avant meme que la compression reelle ne commence, et la plupart des spectateurs ne s'en apercoivent jamais.
3. La transformee en cosinus discrete (DCT)
L'image est divisee en blocs de 8 x 8 pixels. Chaque bloc est soumis a une DCT, qui convertit les donnees spatiales (valeurs de pixels) en donnees de frequence (la vitesse a laquelle les valeurs changent dans le bloc). Le resultat est une matrice de 8 x 8 coefficients. La valeur en haut a gauche est le coefficient DC -- la luminosite moyenne du bloc. Les 63 autres sont des coefficients AC representant des details de plus en plus haute frequence.
Les coefficients haute frequence codent les textures fines : cheveux, herbe, bruit. Les coefficients basse frequence codent les formes larges : cieux, murs, teintes de peau.
4. Quantification
C'est ici que la perte se produit. JPEG applique une table de quantification a chaque bloc DCT. La table est une seconde matrice de 8 x 8 de diviseurs. Chaque coefficient DCT est divise par son quantificateur correspondant et arrondi a l'entier le plus proche.
La table de quantification standard frappe les coefficients haute frequence le plus durement :
16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
18 22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99
Un coefficient haute frequence de, disons, 7 est divise par 121 et arrondi a 0. Il est parti. Irreversible. Le decodeur ne le voit jamais. C'est la compression avec perte : les donnees sont detruites, pas simplement recodees.
A une qualite de 90, les quantificateurs sont divises par un facteur d'echelle plus petit. A une qualite de 50, le facteur d'echelle est plus eleve. Plus de coefficients deviennent nuls. Le fichier devient plus petit. L'image devient plus floue.
5. Codage entropique
Apres la quantification, les coefficients restants sont balayes en zigzag, encodes par plages (RLE), puis compresses avec un codage de Huffman. Cette etape est sans perte. Elle ne fait que compacter les donnees deja detruites plus efficacement.
Le resultat : une image RGB non compressee de 12 MP fait 36 Mo. Sauvegardee en JPEG qualite 90 avec sous-echantillonnage 4:2:0, elle tombe a ~3,5 Mo. C'est une reduction de 10:1 avec une perte de qualite visible uniquement sous grossissement.
A quel point est-ce vraiment avec perte ?
Les dommages ne sont pas uniformement repartis.
| Qualite | Taille typique (12 MP) | Impact visuel |
|---|---|---|
| 95+ | ~8 Mo | Quasi invisible ; prefere pour l'archivage |
| 90 | ~3,5 Mo | Adoucissement mineur ; standard pour les appareils photo |
| 75 | ~1,8 Mo | Flou visible dans les details fins ; defaut Web |
| 50 | ~1,0 Mo | Artefacts de blocage evidents au zoom a 100% |
| 30 | ~600 Ko | Banding de couleur, bruit de moustique, inutilisable pour l'impression |
Trois artefacts distincts apparaissent a mesure que la qualite diminue :
- Blocage : Bords de grille 8 x 8 visibles, particulierement dans les degrades lisses comme les cieux.
- Anneaux (Ringing) : Halos oscillants autour des bords a fort contraste (texte sur fond).
- Saignement de couleur : Le sous-echantillonnage chromatique etale la couleur au-dela des limites nettes.
Le vrai probleme est la perte de generation (Generation Loss). Ouvrez un JPEG, editez-le, enregistrez-le a nouveau en JPEG. Chaque enregistrement relance l'ensemble du pipeline : RGB -> YCbCr -> sous-echantillonnage -> DCT -> quantification. Les erreurs d'arrondi se cumulent. Apres 10 generations, une image peut ressembler a une aquarelle. Apres 50, elle est meconnaissable.
Le decalage vers le vert et autres bizarreries de recompression
Re-sauvegardez un JPEG suffisamment de fois et vous remarquerez peut-etre une derive de la temperature de couleur. Certaines images prennent une legere dominante verte. D'autres derivent vers le magenta. La raison est enfouie dans les canaux de chrominance.
JPEG stocke Cb et Cr a une resolution reduite et les quantifie agressivement. Chaque enregistrement introduit une erreur d'arrondi dans les deux canaux. La conversion vers RGB utilise cette matrice :
R = Y + 1.402 x (Cr - 128)
G = Y - 0.344136 x (Cb - 128) - 0.714136 x (Cr - 128)
B = Y + 1.772 x (Cb - 128)
Remarquez que le vert est calcule a partir de Cb et Cr. Lorsqu'une quantification repetee pousse Cb vers le haut et Cr vers le bas, meme d'un seul pas de quantification, le canal G derive. Un biais positif dans Cb pousse le vert vers le bas. Un biais negatif dans Cr pousse le vert vers le haut. L'interaction n'est pas symetrique car les coefficients -0.344136 et -0.714136 ont des amplitudes differentes. Le resultat : une accumulation lente de vert dans certaines regions de l'image, particulierement la ou les valeurs de chrominance d'origine etaient deja proches des limites de quantification.
Ce n'est pas un effet garanti. Il depend des tables de quantification de l'encodeur, du mode de sous-echantillonnage et du contenu de l'image. Mais il est reel, reproductible, et l'une des raisons pour lesquelles les workflows professionnels evitent de re-sauvegarder des JPEGs.
Si JPEG est si defectueux, pourquoi tout le monde l'utilise ?
JPEG n'est pas populaire parce qu'il est parfait. Il est populaire parce qu'il est suffisant et universel.
- Pas de blocage par brevet : Le brevet JPEG de base (detenu par Forgent Networks) a expire en 2006. Le format est libre de droits.
- Decodage materiel : Chaque appareil photo, telephone, imprimante et navigateur dispose d'un decodeur JPEG en silicium ou en C hautement optimise. Le rendu coute presque rien.
- Assez bon : Pour les reseaux sociaux, les sites d'actualites et les pieces jointes de courriel, un JPEG qualite 75 est indiscernable de la source sur un ecran de telephone.
- Inertie de l'ecosysteme : Les systemes de gestion de contenu, les CDN, les bibliotheques d'images et les archives heritees parlent tous JPEG. Les remplacer necessite plus qu'un meilleur format. Il faut un meilleur format plus une raison de migrer des petaoctets d'actifs existants.
Les formats qui auraient du gagner
Plusieurs formats ont essaye de detrôner JPEG. Aucun n'a completement reussi.
| Format | Avec perte | Sans perte | Transparence | Animation | Profondeur de bits max | Avantage cle |
|---|---|---|---|---|---|---|
| JPEG | Oui | Non | Non | Non | 8 bits | Support universel |
| PNG | Non | Oui | Oui | Non | 16 bits | Sans perte parfait, alpha |
| WebP | Oui | Oui | Oui | Oui | 8 bits | 25-35% plus petit que JPEG, natif navigateur |
| HEIC | Oui | Oui | Oui | Oui | 16 bits | ~50% plus petit que JPEG, defaut Apple |
| AVIF | Oui | Oui | Oui | Oui | 12 bits | Meilleure compression aujourd'hui, libre de droits |
| JPEG XL | Oui | Oui | Oui | Oui | 32 bits | Recompression JPEG sans perte, decodage progressif |
PNG a resolu le probleme sans perte mais produit des fichiers 5 a 10 fois plus gros que JPEG pour les photos. Il domine les captures d'ecran, les ressources d'interface et les graphiques.
WebP (Google, 2010) bat JPEG en taille et ajoute la transparence et l'animation. Il est maintenant livre dans chaque grand navigateur. Le Web Almanac 2025 place WebP a 11% des images LCP, contre 7% en 2024. C'est le chemin de mise a niveau sur aujourd'hui.
HEIC (Apple, 2017) utilise la compression HEVC dans un conteneur ISOBMFF. Il est ~40-50% plus petit que JPEG et contient plusieurs images par fichier. Il domine l'ecosysteme Apple et stagne partout ailleurs a cause des pools de brevets HEVC.
AVIF (AOM, 2019) derive de la video AV1. Il atteint les meilleurs ratios de compression de tout format largement supporte -- environ 30% plus petit que WebP a qualite equivalente. L'inconvenient est la vitesse de decodage. Les images AVIF peuvent prendre 2 a 3 fois plus longtemps a s'afficher que JPEG sur les appareils mobiles, consommant de la batterie et retardant le Largest Contentful Paint.
JPEG XL (ISO/IEC 18181, 2021) est techniquement superieur a tous les autres. Il compresse 50-60% plus petit que JPEG. Il decode rapidement. Il supporte le decodage progressif : une image utilisable apparait apres le telechargement d'a peine ~1% du fichier. Plus important encore, il peut recompresser les JPEG existants sans perte pour des economies d'environ 20% avec recuperation bit-pour-bit de l'original. Aucun autre format ne peut faire cela.
Ou nous en sommes
JPEG XL a eu une enfance difficile. Google a ajoute un support experimental a Chrome en 2021, puis l'a supprime le 31 octobre 2022 -- la "decision d'Halloween". La raison invoquee : benefice incremental insuffisant par rapport aux formats existants. Le contre-coup a ete immediat. Le probleme Chromium est devenu le deuxieme le plus suivi de l'histoire du projet. Google a ete accuse de proteger AVIF, un format lie a l'Alliance for Open Media que Google a co-fondee.
Fin 2025, Chromium a fait volte-face. Un nouveau decodeur Rust (jxl-rs) a atterri dans Chrome Canary. Chrome 145, sorti en fevrier 2026, a livre le support JPEG XL derriere un drapeau (flag). Safari le supporte depuis 2023. Firefox Nightly integre le meme decodeur Rust. JPEG XL n'est pas encore active par defaut, mais il est de retour dans la base de code.
AVIF, quant a lui, est le choix pragmatique pour 2026. Le support navigateur est large. Les encodeurs s'ameliorent. Cloudinary et Cloudflare diffusent tous deux AVIF automatiquement via la negociation d'en-tete Accept. La page mediane diffusant AVIF ou WebP affiche 81% de bons taux LCP contre 64% pour les pages JPEG uniquement, selon les donnees CoreDash.
Le fond de l'affaire
JPEG est un compromis vieux de 33 ans. Il sacrifie la resolution des couleurs, la texture haute frequence et la precision numerique en echange de tailles de fichiers qui ont rendu la photographie numerique viable dans les annees 1990. Les artefacts sont bien connus. La perte de generation est reelle. La derive verte se produit.
Pourtant, JPEG persiste pour la meme raison que QWERTY persiste : le cout de changement est superieur a la douleur de rester.
La voie pratique vers l'avant est en couches :
- Conservez des masters de haute qualite. Archivez les originaux en PNG, TIFF ou JPEG qualite 95+. Ne reeditez jamais a partir d'une exportation Web qualite 75.
- Servez les formats modernes dynamiquement. Utilisez un CDN ou un service d'images qui negocie AVIF, WebP ou JPEG XL en fonction de l'en-tete
Acceptdu navigateur. Stockez un master ; laissez le bord convertir a la demande. - Ne re-encodez pas les JPEGs en masse. Chaque generation detruit des donnees. Si vous avez besoin de fichiers plus petits, re-encodez a partir du master, pas a partir d'un autre JPEG.
JPEG ne mourra pas subitement. Il s'eteindra de la meme maniere que GIF s'est eteint : toujours supporte partout, s'ouvrant toujours dans chaque visionneuse, mais de plus en plus depasse par des formats qui font le meme travail avec moins d'octets et moins d'artefacts. La difference est que cette fois, les formats de remplacement gagnent reellement.


