Depuis un certain temps déjà, la vitesse de char­ge­ment compte parmi les prin­ci­paux ins­tru­ments de réglage dans le cadre de l’op­ti­mi­sa­tion d’un site Internet. Le temps perdu lorsque l’on accède à une page constitue un critère d’éva­lua­tion essentiel aussi bien pour les visiteurs que pour les moteurs de recherche. Un code plus court et compressé ou l’uti­li­sa­tion de mé­ca­nismes de cache font également partie des approches de solutions testées pour une présence en ligne rapide avec par exemple l’uti­li­sa­tion d’images com­pres­sées. En tant qu’éléments de design et d’arrière-plan, ces dernières sont intégrées en quantité dans de nombreux projets et leur influence sur le temps de char­ge­ment est souvent sous-estimée.

Le géant des moteurs de recherche Google s’est notamment attaqué à ce problème et a présenté dès 2010 avec WebP son propre format image libre de droits pour des sites Internet plus rapides. Mais en quoi consiste exac­te­ment ce format Web qui est né du codec vidéo VP8 ? Et comment fonc­tionne-t-il par rapport aux formats établis tels que JPEG ?

WebP, qu’est-ce que c’est ?

Le 30 septembre 2010, Google annonçait la parution d’un nouveau standard libre per­met­tant de com­pres­ser avec perte des images 24 bits sur le Web. La même année, Google rachetait On2 Tech­no­lo­gies, la société à l’origine du format vidéo VP8 qui a servi de modèle au nouveau format WebP. Par la suite, Google a complété le format WebP avec des fonc­tion­na­li­tés telles qu’un mode de com­pres­sion sans perte, la trans­pa­rence (canal alpha) et des ani­ma­tions. Ce format de com­pres­sion est pris en charge par Chrome depuis déjà fin 2010 mais également par Opera. Ces deux na­vi­ga­teurs s’opposent ainsi à une multitude d’autres na­vi­ga­teurs qui, jusqu’à présent, prennent uni­que­ment WebP en charge à titre ex­pé­ri­men­tal (à l’instar de Safari et Firefox dont les versions ré­gu­lières n’offrent aucune prise en charge). D’après les in­di­ca­tions de Microsoft, la société tra­vail­le­rait ac­tuel­le­ment à une prise en charge par son na­vi­ga­teur Edge.

Note

Vous trouverez des in­for­ma­tions ac­tua­li­sées en per­ma­nence sur la prise en charge de WebP par les na­vi­ga­teurs sur caniuse.com.

L’ensemble des logiciels pour le trai­te­ment et la pré­sen­ta­tion de WebP sont dis­po­nibles par défaut sous la licence BSD. Google utilise par exemple le format dans le Chrome Web Store et dans les ap­pli­ca­tions mobiles Google+.

Par quelles ca­rac­té­ris­tiques le format WebP se démarque-t-il ?

Depuis le départ, l’objectif du format WebP a été de réduire les images à une taille de fichier aussi faible que possible sur le Web. D’après les in­di­ca­tions de Google, la taille des images et des gra­phiques au format WebP est d’environ 30 % in­fé­rieure à celle des fichiers PNG ou JPEG avec la même qualité d’image. Alors que ces deux formats Web clas­siques tablent sur dif­fé­rentes méthodes de com­pres­sion (PNG sans perte, JPEG avec perte), le format WebP offre les deux pos­si­bi­li­tés. Grâce à cette flexi­bi­lité, le format convient aussi bien aux photos qu’aux images et gra­phiques de petite taille. Les ca­rac­té­ris­tiques de com­pres­sion ainsi que les autres pro­prié­tés centrales du format WebP peuvent être résumées de la façon suivante :

  • Com­pres­sion (avec perte) : la com­pres­sion avec perte à l’aide du format WebP est basée sur le codage keyframe (codage « image clé ») de VP8.
  • Com­pres­sion (sans perte) : la com­pres­sion sans perte à l’aide de WebP repose sur dif­fé­rentes tech­niques qui trans­for­ment les pa­ra­mètres et les données de l’image. Pour ce faire, l’al­go­rithme LZ77 est notamment utilisé.
  • Trans­pa­rence : le format WebP offre un canal alpha de 8 bits qui peut également être utilisé en cas de com­pres­sion RVB avec perte.
  • Mé­ta­don­nées : le format WebP peut contenir des mé­ta­don­nées EXIF et XMP qui sont ty­pi­que­ment générées par des caméras.
  • Profil de couleur : le format Google peut contenir des profils ICC intégrés (ensemble de données décrivant l’espace de couleurs).
  • Ani­ma­tions : le format WebP permet l’en­re­gis­tre­ment de séquences d’images.

Comment fonc­tionne la com­pres­sion WebP avec perte ?

La com­pres­sion avec perte à l’aide de WebP a recours à la même méthode que le codec VP8 basée sur les blocs afin de prédire des frames, c’est-à-dire des images in­di­vi­duelles. Chaque frame est ainsi divisé en segments plus petits également appelés ma­cro­blocs. Dans ces ma­cro­blocs, le codeur peut prédire des in­for­ma­tions de mouvement et de couleur re­don­dantes et les sous­traire du bloc. Le résultat de cette com­pres­sion pré­dic­tive se compose des in­for­ma­tions de bloc restantes et des in­for­ma­tions re­don­dantes séparées (contenant ty­pi­que­ment de nom­breuses valeurs nulles). Il est procédé à une quan­ti­fi­ca­tion et un codage en­tro­pique (re­pré­sen­ta­tion de ca­rac­tères à l’aide de certains modèles de bits). Dans ce cadre, l’étape de quan­ti­fi­ca­tion constitue le seul processus pour lequel des bits sont ef­fec­ti­ve­ment rejetés avec perte.

Note

La méthode de codage arith­mé­tique à laquelle le format WebP a recours est plus efficace que le codage Huffman utilisé par exemple pour JPEG. Il s’agit certes dans les deux cas de formes de codage en­tro­pique ; la méthode Huffman attribue toutefois à chaque caractère un nombre entier de bits alors que le codage arith­mé­tique de toute la séquence de caractère attribue un code en bits unique mais plus long. La com­plexité est par con­sé­quent plus grande en cas de codage arith­mé­tique mais la gé­né­ra­tion de re­don­dances spatiales est toutefois exclue (uni­que­ment re­don­dance de messages complets).

Fonc­tion­ne­ment de la com­pres­sion sans perte à l’aide de WebP

Dans le cas de la com­pres­sion WebP sans perte, la première étape consiste à trans­for­mer l’image. Les tech­niques suivantes peuvent notamment être utilisées dans le cadre de cette trans­for­ma­tion :

Trans­for­ma­tion sur la base de pré­dic­tions spatiales WebP utilise 13 modes de pré­dic­tion dif­fé­rents qui profitent du fait que les pixels voisins sont souvent en cor­ré­la­tion les uns avec les autres. La valeur actuelle du pixel est ainsi prédite à partir de pixels déjà décodés et seule la valeur ré­si­duelle est codée.
Trans­for­ma­tion de la couleur L’objectif de la trans­for­ma­tion de la couleur est la dé­cor­ré­la­tion des valeurs RVB de chaque pixel in­di­vi­duel. Pour cela, l’image est tout d’abord divisée en blocs avant que le rouge (R) soit trans­formé sur la base du vert (G) et le bleu (B) sur la base du vert et du rouge. La valeur verte est, quant à elle, conservée.
Trans­for­ma­tion par sous­trac­tion de vert En plus de la trans­for­ma­tion générale des couleurs, il est possible d’utiliser une variante dans le cadre de laquelle la valeur verte est sous­traite des valeurs rouge et bleue pour chaque pixel.
Trans­for­ma­tion sur la base d’une in­dexa­tion des couleurs Si trop peu de valeurs de pixels définies sont dis­po­nibles, le format WebP offre par ailleurs la pos­si­bi­lité d’une trans­for­ma­tion basée sur l’in­dexa­tion des couleurs. Dans ce cadre, le nombre de valeurs RVBA définies dans l’image est déterminé et si le nombre est trop faible, un clas­se­ment de ces valeurs est créé. Ce dernier est utilisé afin de remplacer les valeurs de pixel par les index cor­res­pon­dants.
Codage à partir d’un cache de couleurs La com­pres­sion WebP sans perte peut utiliser les fragments d’image déjà vus pour re­cons­truire les nouveaux pixels. Si aucun fragment approprié n’est dis­po­nible à cette fin, un cache de couleurs locales avec les 32 dernières couleurs utilisées sert de point de départ. Ce cache est actualisé en continu.

Les pa­ra­mètres et les données d’image trans­for­més sont codés de façon en­tro­pique en faisant in­ter­ve­nir une variante de l’al­go­rithme LZ77. Celle-ci utilise de petites valeurs pour les pixels à proximité.

En quoi les WebP animés se dis­tin­guent-t-ils ?

Grâce à la prise en charge des images animées, WebP constitue une al­ter­na­tive in­té­res­sante aux formats GIF ou APNG. Il dispose d’atouts tels qu’une pro­fon­deur de couleur de 24 bits et un canal alpha de 8 bits mais aussi un taux de com­pres­sion élevé. Con­trai­re­ment aux formats con­cur­rents, le format WebP permet à la fois une com­pres­sion des ani­ma­tions sans perte et avec perte. Le WebP animé tire également son épingle du jeu en termes de décodage : étant donné que WebP en­re­gistre des mé­ta­don­nées sur le fait que chaque frame contienne ou non des valeurs alpha, le décodeur n’a pas à convertir chaque frame in­di­vi­duel­le­ment pour obtenir cette in­for­ma­tion.

Note

Selon Google, la con­ver­sion de fichiers GIF en fichiers WebP avec perte réduit la taille du fichier de jusqu’à 64 % dans le cas d’un fichier WebP sans perte, le taux est tout de même de 19 %.

La tech­no­lo­gie keyframe du format WebP déjà évoquée révèle tout par­ti­cu­liè­re­ment ses atouts dans les ani­ma­tions qui bé­né­fi­cient d’une qualité élevée grâce aux images clés. De ce fait, le processus de décodage est également plus gourmand en termes de pro­ces­seur que dans le cas des GIF par exemple.

À quoi ressemble la structure du format WebP ?

Les fichiers WebP sont des fichiers con­te­neurs pour lesquels le format RIFF (Resource Inter­change File Format) développé par Microsoft et IBM est utilisé comme format conteneur. Un fichier au format WebP est par con­sé­quent composé d’un titre RIFF et des contenus WebP cor­res­pon­dants.

Le titre RIFF/WebP est ce faisant constitué des trois suites de 4 octets suivantes :

  • FourCC (Four Character Code) « RIFF » : spé­ci­fi­ca­teur de type composé des quatre ca­rac­tères ASCII R, I, F et F indiquant qu’il s’agit d’un fichier conteneur RIFF
  • File Size : in­di­ca­tion de la taille du fichier
  • FourCC « WEBP » : spé­ci­fi­ca­teur de type composé des quatre ca­rac­tères ASCII W, E, B et P indiquant que le conteneur RIFF contient un fichier WebP

À la suite du titre, on trouve les blocs du fichier WebP qui sont également appelés « chunks » dans les con­te­neurs RIFF. Chaque chunk a son propre titre auquel sont rat­ta­chées les in­for­ma­tions cor­res­pon­dantes. Les blocs possibles du niveau le plus haut sont « VP8 » (WebP avec perte), « VP8L » (WebP sans perte) et « VP8X » (WebP étendu). Ce dernier est marqué par des fichiers WebP contenant des in­for­ma­tions com­plé­men­taires telles que les mé­ta­don­nées EXIF (chunk « EXIF ») ou un profil de couleurs ICCP (chunk « ICCP »)) ainsi que WebP animé (chunk « ANIM »).

La structure complète des fichiers au format WebP se présente donc comme suit :

WebP par rapport à JPEG : Voici comment fonc­tionne WebP par rapport aux formats images

Si Google est leader dans le secteur des moteurs de recherche, JPEG ou JPG l’est in­con­tes­ta­ble­ment en ce qui concerne l’affichage des photos et des grandes images sur le World Wide Web. Plus d’un quart de siècle après sa parution, ce format image constitue une part es­sen­tielle du Web. Son principal avantage par rapport à des formats comme PNG, qui est tout aussi courant mais ma­jo­ri­tai­re­ment utilisé pour des images et des il­lus­tra­tions plus petites telles que des logos, des icônes, etc, réside in­du­bi­ta­ble­ment dans le fait que JPEG permet des économies d’espace disque con­si­dé­rables grâce à une com­pres­sion avec perte.

Pour ce qui est de ce point dé­ter­mi­nant, WebP se révèle toutefois encore plus efficace et flexible : d’une part, le format Google offre une méthode de com­pres­sion aussi bien avec que sans perte. D’autre part, les économies d’espace disque pour les images au format WebP sur­pas­sent celles des images JPEG. Le fait que JPEG autorise des images avec une taille maximale de jusqu’à 65 535 x 65 535 pixels alors que la limite du format WebP est de 16 383 x 16 383 pixels est né­gli­geable étant donné le champ d’ap­pli­ca­tion, à savoir le Web.

Note

L’avantage de com­pres­sion qu’offre WebP par rapport à JPEG est perdu en cas de très forte com­pres­sion (à partir d’un taux de com­pres­sion de 90 pour cent). Toutefois, bien que les images JPEG com­pres­sées de la sorte soient très pixe­li­sées, la même image au format WebP a encore une certaine valeur ajoutée.

Les avantages observés dans la com­pa­rai­son de WebP par rapport à JPEG se re­trou­vent également dans la com­pa­rai­son de WebP par rapport à GIF, où le format de Google offre également des avantages con­vain­cants en termes de qualité et de com­pres­sion. Le problème de WebP réside toutefois dans le fait qu’il n’est pas supporté par les na­vi­ga­teurs comme Firefox ou Microsoft Edge. Jusqu’à présent, les uti­li­sa­teurs de ces na­vi­ga­teurs ne voient pas les images et les ani­ma­tions au format WebP, ce qui explique pourquoi peu d’ex­ploi­tants de sites Internet optent aujourd’hui pour ce format.

Les données clés de la com­pa­rai­son de « WebP par rapport à JPEG » résumées sous forme de tableau :

WebP JPEG
Pu­bli­ca­tion 2010 1992
Extension(s) de fichier .webp .jpeg, .jpg
Ré­so­lu­tion maximale (en pixels) 16 383 x 16 383 65 535 x 65 535
Com­pres­sion (sans perte) oui Non
Com­pres­sion (avec perte) oui Oui
Trans­pa­rence (canal alpha) : oui Non
Espace de couleurs RVB oui Oui
Ani­ma­tions possibles oui Non
Ap­pli­ca­tions le prenant en charge limité (notamment Chrome, Opera, Gmail, IrfanView) Universel

Comment ouvrir et convertir les fichiers WebP ?

À l’heure actuelle, les fichiers au format WebP ne peuvent pas être ouverts avec les pro­grammes de vi­sua­li­sa­tion d’images tra­di­tion­nels de Windows, Linux et macOS. Toutefois, si vous souhaitez visionner des ani­ma­tions ou des images codées avec WebP, dif­fé­rentes pos­si­bi­li­tés s’offrent à vous.

Si vous disposez de Chrome ou Opera installé sur votre système, vous pouvez glisser-déposer le fichier concerné en toute sim­pli­cité dans une fenêtre ouverte de l’un de ces deux na­vi­ga­teurs. Étant donné que ces na­vi­ga­teurs prennent en charge WebP de façon native, vous pourrez visionner le contenu sans avoir besoin d’un autre logiciel. Cette solution n’est toutefois pas des plus con­for­table, notamment lorsque vous souhaitez visionner plusieurs images ou ani­ma­tions. Si vous ne souhaitez pas tra­vail­ler avec plusieurs fenêtres de na­vi­ga­teur et faire des va-et-vient entre celles-ci, vous devriez opter pour IrfanView. Cette vi­sion­neuse gratuite peut également supporter WebP une fois les plug-ins officiels installés. Ce programme est toutefois uni­que­ment dis­po­nible sous Windows.

Note

Si vous utilisez la couche de com­pa­ti­bi­lité Wine, vous pouvez également installer IrfanView sous macOS ou Linux afin d’ouvrir les fichiers WebP avec ce programme gratuit.

Dans l’espace dé­ve­lop­peur WebP, Google propose d’autre part toute une palette de solutions propres pour le travail avec WebP – tout d’abord la bi­blio­thèque libwebp que vous pouvez utiliser afin d’im­plé­men­ter le codage et le décodage WebP dans vos propres pro­grammes. Les outils suivants sont par ailleurs dis­po­nibles dans la suite té­lé­char­geable gra­tui­te­ment :

  • cwebp permet la com­pres­sion d’un fichier image à l’aide de WebP. Les formats de saisie possibles sont notamment PNG, JPEG et TIFF. Dans les options de l’outil, vous pouvez définir si le fichier doit être compressé avec ou sans perte.
  • dwebp est un outil qui vous permettra de convertir des fichiers WebP existants dans d’autres formats tels que PNG (option par défaut), BMP, TIFF ou PGM.
  • Avec vwebp, Google fournit une solution propre pour l’affichage d’images et d’ani­ma­tions WebP sur la base de OpenGL.
  • webpmux est l’outil dé­ter­mi­nant pour tra­vail­ler avec le format WebP étendu. Grâce à ce programme, vous pourrez par exemple créer des ani­ma­tions au format WebP ou compléter des fichiers images avec des mé­ta­don­nées et des profils ICC.
  • Avec gif2webp, vous pourrez convertir les fichiers GIF existants en fichiers WebP. Tout comme pour une com­pres­sion d’image ha­bi­tuelle, vous pourrez opter pour un codage avec ou sans perte.
Conseil

Sur ezgif.com, vous trouverez également de nombreux outils pour la création ou la con­ver­sion de fichiers WebP. Con­trai­re­ment aux ap­pli­ca­tions de Google, vous pouvez les utiliser sans ins­tal­la­tion, di­rec­te­ment dans votre na­vi­ga­teur.

Aller au menu principal