Préparez-vous à un immense poste - oui, cela est devenu incontrôlable ...
Xkcd obligatoire:
Malheureusement, il n'existe pas de «meilleur» format simple. Certains sont très bien supportés, certains offrent une polyvalence extrême, certains offrent une compression sans perte, ...
La première partie de cette réponse ("Fonctionnalités" & "Bref aperçu des formats") parlera de détails techniques, tandis que la deuxième partie ("(Autres) choses à considérer") est plus orientée vers les aspects pratiques du choix du format. .
Caractéristiques:
Veuillez noter qu'il est presque impossible d'inclure chaque hack dans chaque format - par exemple, les GIF peuvent être enregistrés sans compression en ignorant la table LZW. Pourquoi je ne mentionne pas cela ci-dessous? Parce que 99% de tous les GIF que j'ai jamais rencontrés utilisaient LZW, parce que LZW est aujourd'hui une évidence en matière de puissance de calcul, et parce que ce post essaie de clarifier la situation pour les situations populaires, pas pour le département R&D d'ILM. Les photographes utiliseront leurs fichiers pour l'archivage, la publication et l'impression, ce sont donc les choses que je considère ici.
Les informations ont été recoupées entre les articles Wikipédia respectifs, les spécifications, la comparaison de Wiki et la liste de support des métadonnées d'exiftool .
| Bits per | | Supported by
Codec | Lossy | Channel | Metadata | Channels | Programs | Good for (IMHO)
-------------------------------------------------------------------------------------------------
BMP | n | <= 8 | - | RGBA | Most propr. & free | Archival
BPG | y | <= 14 | EXIF+XMP | RGBA | |
EXR | o | <= 32 | y(?) | RGBAD | | VFX workflow
FLIF | o* | <= 16 | EXIF+XMP | RGBA | | To be seen
GIF | n | <= 8* | XMP | RGB | Most propr. & free | GIFs ;-)
HEIF | o* | <= 16 | EXIF+XMP | RGB(A/D) | | To be seen
JPEG | y* | <= 8 | EXIF+IPTC+XMP | RGB | ~ all propr. & free | Online; Easy access
JP2K | o | <= 32 | EXIF+IPTC+XMP | RGBA | |
JXR | o | <= 32 | EXIF+IPTC+XMP | RGBA | |
PNG | n | <= 16 | EXIF+IPTC+XMP*| RGBA | Most propr. & free | CAD-drawings; Online
TGA | n | <= 8 | y(?) | RGBA | |
TIFF | o | <= 32 | EXIF+XMP | RGBA | Most propr. & free | Archival; Editing
WebP | o | <= 8 | EXIF+XMP | RGBA | |
Légende : o
... facultatif; n
... indisponible; y
... disponible; D
... Profondeur; *
... Regardez ci-dessous selon le texte.
Bref aperçu des formats:
BMP
Feature |
-----------------------------------------------------------------
Introduced | 1990
Open + Free | Both per Microsoft's Open Specification Promise
Colorspace | R:G:B[:A] (4:4:4[:4])
b/c/p | 1:0:0[:0], 5:6:5, 8:8:8[:8]
Compression | None [RLE in 5:6:4] (so: lossless)
Maximum Size | 4 GiB
Metadata | [ICC]
OS support | Virtually all OSs with a graphical interface
Légende : b/c/p
... bits par canal (par exemple R, G, B) par pixel. les choses [ ]
sont facultatives; ?
... deviner instruit / aucun indice.
Les fichiers `` bitmap '' sont codés en lignes et ne sont généralement pas compressés, donc un retournement de bit unique ne détruira qu'une seule ligne de l'image Tant qu'il ne retourne pas l'en-tête, ce qui rendra le décodage plus difficile - essayez-le par vous-même avec un HEX éditeur! . Comme il n'offre pas de (bonne) compression, les tailles de fichiers sont énormes, car il doit enregistrer les informations complètes pour chaque pixel. En raison de sa rigidité, il peut être bon pour l'archivage à long terme.
BPG
Feature |
---------------------------------------------------------------------
Introduced | 2014
Open + Free | Yes (but HEVC patents might be problematic)
Colorspace | R:G:B[:A] (4:4:4[:4]); Y:Cb:CR[:A] (4:2:0[:4] - 4:4:4[:4]);
| Y:Cg:Co[:A] (4:2:0[:4] - 4:4:4[:4]); C:M:Y:K (4:4:4:4)
b/c/p | 8 - 14
Compression | HEVC (lossy / lossless)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [XMP]
OS support | Linux, Mac, Windows (at least through browser decoding)
Légende : b/c/p
... bits par canal (par exemple R, G, B) par pixel. les choses [ ]
sont facultatives; ?
... deviner instruit / aucun indice.
«Better Portable Graphics» (BPG) utilise HEVC, que vous connaissez peut-être grâce au codec vidéo h.265 . Il était censé être le successeur de JPEG, mais n'a jamais été assez populaire. Avec l'essor du HEIF, qui est assez similaire à certains égards mais plus populaire, il est plausible que le HEIF soit préféré. HEVC est de loin supérieur en termes de compression par rapport au DCT JPEG - cependant, il ne se compare pas bien à tous mais aux débits inférieurs, car il a tendance à être flou.
EXR
Feature |
---------------------------------------------------------------------
Introduced | 1999
Open + Free | Yes
Colorspace | R:G:B[:A][:D] (4:4:4[:4][:4])
b/c/p | <= 32
Compression | [RLE]; [ZIP]; [PIZ]; ... [lossless (usual) / lossy]
Maximum Size | > 4 GiB
Metadata | [Yes (XMP-style)]
OS support | Linux, Mac, Windows (through library)
Légende : b/c/p
... bits par canal (par exemple R, G, B) par pixel. les choses [ ]
sont facultatives; ?
... deviner instruit / aucun indice.
OpenEXR a été conçu par Industrial Lights and Magic (ILM) comme format intermédiaire pour les workflows VFX. Il peut contenir plusieurs canaux à des profondeurs de bits très élevées, plusieurs images et métadonnées dans un seul fichier. Il propose différents algorithmes de compression - ou pas de compression du tout. L'EXR peut être comparé au TIFF - EXR offre plus d'options, tandis que le TIFF est de plus en plus populaire.
FLIF
Feature |
---------------------------------------------------------------------
Introduced | 2015
Open + Free | Yes
Colorspace | R:G:B[:A] (4:4:4[:4]) (CMYK and YCbCr in ToDo-List)
b/c/p | <= 16
Compression | MANIAC (variant of CABAC, used in AVC/HEVC) (lossless / lossy (1st generation))
Maximum Size | > 4 GiB
Metadata | [EXIF]; [ICC]; [XMP]
OS support | Linux, Mac, Windows (through provided viewer)
Légende : b/c/p
... bits par canal (par exemple R, G, B) par pixel. les choses [ ]
sont facultatives; ?
... deviner instruit / aucun indice.
Le «Free Lossless Image Format» (FLIF) utilise un dérivé de la compression HEVC sans perte. FLIF prétend avoir des taux de compression extrêmes par rapport à tous les autres formats de l'époque - alors que mes propres tests m'ont amené à le croire, il a vraiment besoin de puissance de calcul pour être utilisable (plusieurs minutes de temps d'encodage pour une seule image 24 MP avec une hyperthreaded 4,3 GHz hexacore n'est pas si bon: D) . Cependant, comme il s'agit d'un jeune codec, des améliorations pourraient être apportées. Il prend en charge les animations, les canaux alpha, le décodage progressif et même l'encodage avec perte (sans perte de génération supplémentaire après le premier encodage). Seul le temps montrera s'il réussira, et pour être honnête, je l'espère, car il semble offrir une solution unique pour de multiples problèmes.
GIF
Feature |
---------------------------------------------------------------------
Introduced | 1987
Open + Free | Yes
Colorspace | R:G:B[:A] (4:4:4[:4])
b/c/p | 2 (palette of 256 colors in total)
Compression | LZW (lossless)
Maximum Size | < 4 GiB
Metadata | [XMP]
OS support | Virtually all OSs with a graphical interface
Légende : b/c/p
... bits par canal (par exemple R, G, B) par pixel. les choses [ ]
sont facultatives; ?
... deviner instruit / aucun indice.
Alors que le "Graphics Interchange Format" (GIF) offre 8 bits par canal par pixel, il les réduira à une palette de couleurs de 256 couleurs (qui peut inclure une "couleur d'arrière-plan"). Il est principalement utilisé pour les animations - la seule chose que PNG ne peut pas faire mieux, car PNG en lui-même n'offre pas de support d'animation.
HEIF
Feature |
----------------------------------------------------------------------
Introduced | 2015
Open + Free | No (patents)
Colorspace | ? Y:Cb:Cr[:A/:D] (4:2:0[:4]) ?
b/c/p | <= 16
Compression | HEVC (lossy)
Maximum Size | < 4 GiB
Metadata | [EXIF]; [XMP]
OS support | Linux, Mac, Windows
Légende : b/c/p
... bits par canal (par exemple R, G, B) par pixel. les choses [ ]
sont facultatives; ?
... deviner instruit / aucun indice.
Le «format d'image haute efficacité» (HEIF) utilise également HEVC pour la compression. En plus des canaux de couleur, il peut également contenir un canal alpha ou une carte de profondeur (utilisé pour les effets de profondeur de champ logiciels ultérieurs ). De plus, une édition rudimentaire peut se produire sans perte. Selon les spécifications, il dispose également d'un mode de compression sans perte. Étant donné que tous les principaux systèmes d'exploitation le prennent en charge, il semble être le concurrent le plus probable pour une succession de JPEG (s'il en existe un).
JPEG
Feature |
----------------------------------------------------------------------
Introduced | 1991
Open + Free | Sort of (free library, but patent might apply)
Colorspace | Y:Cb:Cr (4:2:0 (typical) - 4:4:4)
b/c/p | 8
Compression | DCT (lossy)
Maximum Size | < 2 GiB
Metadata | [EXIF]; [ICC]; [IPTC]; [XMP]
OS support | Virtually all OSs with a graphical interface
Légende : b/c/p
... bits par canal (par exemple R, G, B) par pixel. les choses [ ]
sont facultatives; ?
... deviner instruit / aucun indice.
Le «Joint Photographic Experts Group» (JPEG) est sans doute le format d'image le plus utilisé aujourd'hui. Il utilise la transformation discrète en cosinus (DCT), qui est du type à perte. Il existe une spécification sans perte, mais elle n'est pas utilisée trop souvent. Certains programmes peuvent effectuer certaines actions rudimentaires (par exemple la rotation) sans perte, bien que cela nécessite également que la largeur et la hauteur de l'image soient divisibles par 8 (la taille de bloc de JPEG) - par exemple 800x640 fonctionnera, 804x643 ne fonctionnera pas. JPEG n'a pas d'option pour enregistrer les images en RVB - il transforme l'image en espace colorimétrique YCbCr et réduit souvent les informations sur les pixels de 4: 4: 4 (chaque pixel a tous les canaux) à 4: 2: 0 (chaque canal a une luminance, mais seulement chaque 4 ème pixel obtient une valeur Cb / Cr). Comme pour la plupart des conversions d'espace colorimétrique, cela peut entraîner des différences perceptibles, en particulier dans les couleurs extrêmes. JPEG est rapide à encoder et pas trop mal dans des paramètres de haute qualité, mais pour moi, les choses mentionnées ci-dessus ne me feraient pas pleurer si jamais elles disparaissaient - cela nous a bien servi, mais les formats d'image utilisés pourraient être un peu plus ... récent. Après tout, les ordinateurs ont bien évolué depuis 1991.
JP2k
Feature |
----------------------------------------------------------------------
Introduced | 2000 (duh...)
Open + Free | No (patents)
Colorspace | ? Y:Cb:Cr[:A] (4:4:4[:4]) ?
b/c/p | 8 - 32
Compression | Wavelet (lossy / lossless)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [IPTC]; [XMP]
OS support | Linux, Mac, Windows (at least through viewer programs)
Légende : b/c/p
... bits par canal (par exemple R, G, B) par pixel. les choses [ ]
sont facultatives; ?
... deviner instruit / aucun indice.
'JPEG 2000' (JP2k ou JP2) est le successeur officiel de JPEG. Il utilise des ondelettes au lieu du DCT, qui offre moins d'artefacts en blocs et est globalement plus polyvalent que JPEG. Malgré tout cela, il n'a jamais vraiment rattrapé JPEG.
JXR
Feature |
----------------------------------------------------------------------
Introduced | 2009
Open + Free | Yes (Microsoft Open Specification Promise)
Colorspace | Y:Cb:Cr[:A] (4:2:0[:4] - 4:4:4[:4]); Y:Cg:Co[:A] (? 4:2:0[:4] - 4:4:4[:4] ?);
| C:M:Y:K [4:4:4:4]
b/c/p | 8 - 32 (16 for CMYK)
Compression | DCT (lossy / lossless)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [IPTC]; [XMP]
OS support | Linux, Mac, Windows (at least through viewer programs)
Légende : b/c/p
... bits par canal (par exemple R, G, B) par pixel. les choses [ ]
sont facultatives; ?
... deviner instruit / aucun indice.
«JPEG Extended Range» (JPEG XR, JXR) est une autre tentative pour réussir JPEG. Son espace colorimétrique YCgCo est supérieur à YCbCr car il est entièrement réversible. Bien que certains logiciels le prennent en charge, il n'a jamais été aussi proche de la renommée d'autres formats.
PNG
Feature |
----------------------------------------------------------------------
Introduced | 1996
Open + Free | Yes
Colorspace | R:G:B[:A] (4:4:4[:4])
b/c/p | 8 - 16
Compression | DEFLATE (lossless)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [IPTC]; [XMP]
OS support | Virtually all OSs with a graphical interface
Légende : b/c/p
... bits par canal (par exemple R, G, B) par pixel. les choses [ ]
sont facultatives; ?
... deviner instruit / aucun indice.
«Portable Network Graphics» (PNG) a été introduit en tant que successeur de GIF. Bien qu'il soit sans perte par conception, les fichiers PNG peuvent être optimisés avec plusieurs outils, dont certains compresseront le fichier de manière perdue. PNG utilise la compression DEFLATE, il est donc assez efficace pour les graphiques (comme les dessins CAO, les captures d'écran, ...), mais moins efficace pour les photographies. Bien qu'il offre un support pour les métadonnées, certains programmes ont du mal à les lire. Merci pour l' avertissement , @mattdm !
TGA
Feature |
----------------------------------------------------------------------
Introduced | 1984
Open + Free | ? Yes
Colorspace | R:G:B[:A] (4:4:4[:4])
b/c/p | <= 8
Compression | RLE (lossless)
Maximum Size | ? < 2 GiB
Metadata | Rudimentary
OS support | ? Virtually all OSs with a graphical interface
Légende : b/c/p
... bits par canal (par exemple R, G, B) par pixel. les choses [ ]
sont facultatives; ?
... deviner instruit / aucun indice.
«Truevision TGA» / «TARGA» (TGA) est un format fie que je n'ai inclus que parce que tout le monde semble le savoir. Il a été introduit en 1984. Il prend en charge la compression sans perte (RLE) qui fonctionnera bien pour les graphiques, mais pas si bien pour les photographies.
TIFF
Feature |
----------------------------------------------------------------------
Introduced | 1986
Open + Free | ? Yes
Colorspace | R:G:B[:A] (4:4:4[:4]); Y:Cb:Cr[:A] (? 4:2:0[:4] - 4:4:4[:4] ?);
| C:M:Y:K (? 4:4:4:4 ?); L:a:b[:A] (? 4:4:4:[A] ?)
b/c/p | 8 - 32
Compression | [LZW (lossless)]; [ZIP (lossless)]; [JPEG (lossy)]
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [XMP]
OS support | Virtually all OSs with a GUI support >= 1 of the compression types
Légende : b/c/p
... bits par canal (par exemple R, G, B) par pixel. les choses [ ]
sont facultatives; ?
... deviner instruit / aucun indice.
Le 'Tagged Image File Format' (TIF ou TIF) existe également depuis longtemps. Il offre un support de couche (c'est-à-dire plusieurs images RGBA empilées). Les fichiers TIFF sont souvent utilisés comme fichiers intermédiaires car ils sont largement pris en charge et assez flexibles en termes de capacités.
WebP
Feature |
----------------------------------------------------------------------
Introduced | 2010
Open + Free | Yes
Colorspace | R:G:B:A (4:4:4[:4]) lossless; Y:Cb:Cr[:A] (4:2:0[:4]) lossy
b/c/p | 8
Compression | VP8 (lossless / lossy)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [XMP]
OS support | Linux, Mac, Windows (at least through browser decoding)
Légende : b/c/p
... bits par canal (par exemple R, G, B) par pixel. les choses [ ]
sont facultatives; ?
... deviner instruit / aucun indice.
'WebP' utilise VP8 (un format rival open source à AVC). Comme avec BPG, il n'a jamais fait le saut dans les appareils grand public, bien qu'il semble qu'il soit utilisé par de nombreux services Internet.
(Autre) Points à considérer:
Réencodage (perte de génération)
Le recodage d'un fichier sans perte ne changera rien - le recodage d'un fichier avec perte entraînera presque certainement des artefacts. JPEG peut gérer cela assez bien si vous enregistrez le fichier dans le même paramètre de qualité qu'auparavant.
Cette vidéo montre assez bien la perte de génération - la première image montre le fichier d'origine, tandis que toutes les autres montrent une recompression avec différents paramètres de qualité. (Notez que FLIF est en mode avec perte, donc la première image sera différente.)
Les artefacts ne seront pas nécessairement une condamnation à mort - par exemple pour une publication Web rapide ou un aperçu sur des appareils mobiles, ce n'est peut-être pas trop mal.
Longévité du codec
En écrivant cette réponse, je me suis dit "qui utiliserait TARGA de nos jours, de toute façon?" et ça m'a fait réfléchir: je n'hésiterais jamais à conduire une voiture fabriquée dans les années 80. Je n'hésiterais pas à regarder des photos prises dans les années 80. J'utiliserais n'importe quel appareil photo fabriqué à cette époque. Mais je n'utiliserais pas un codec aussi ancien. Pourquoi?
En fin de compte, il n'y a aucun moyen sûr de dire si un codec ou l'autre survivra à un certain laps de temps. Si HEIF devait remplacer JPEG sur tous les appareils grand public demain, combien de temps faudrait-il pour que les programmes cessent de prendre en charge JPEG? Combien de générations d'ordinateurs - et plus important encore: les systèmes d'exploitation - y aura-t-il avant que vous ne puissiez plus les ouvrir?
D'un autre côté, les codecs relativement simples comme TARGA ne demandent que des programmes relativement simples pour les lire, tandis que les codecs modernes et leurs décodeurs ont de multiples dépendances. Ainsi, bien que la simplicité soit mauvaise pour la compression, elle pourrait être bonne pour l'archivage dans un scénario apocalyptique. Merci @lijat de l' avoir signalé!
À mon avis, cela nécessite plusieurs angles à considérer: quel codec est assez populaire pour que le support ne tombe pas immédiatement? Quel codec est pris en charge par la communauté open source (car personne ne conservera les formats propriétaires d'une entreprise en faillite)? En outre, il semble qu'au moins toutes les décennies environ, on devrait voir s'il est nécessaire de passer à un nouveau codec mieux pris en charge (voir "Réencodage (perte de génération)") - vous ne voudriez pas, par exemple, votre collection TARGA sera illisible demain, non?
Au fait, cela est particulièrement inquiétant lorsque l'on pense aux fichiers RAW .
Support de programme (Longévité # 2)
Le codec le plus populaire et le meilleur ne sera pas assez bon si vous ne pouvez pas l'utiliser. Et même si je n'utiliserais pas de codecs inférieurs simplement parce qu'un programme particulier ne le prend pas en charge, il pourrait être mauvais d'utiliser un codec pris en charge correctement par un seul programme.
De quelles fonctionnalités ai-je besoin?
Personnellement, j'encode toujours la plupart de mes fichiers en JPEG - je peux les lire sur n'importe quel appareil et je peux à peine (voire pas du tout) voir les artefacts. 8 bits est assez bon pour la plupart des appareils et les canaux alpha ne sont pas vraiment nécessaires lors de la visualisation des images.
Pour tous les fichiers qui ne sont pas de type "édition unique", je conserve mes RAW ou au moins les TIFF 16 bits afin qu'ils soient toujours utilisables à l'avenir.
PSD? DNG?
"Photoshop Document" (PSD) est le format de style TIFF de Photoshop. Techniquement, il est assez similaire au TIF. Il existe également PSB, qui est la même chose uniquement pour les tailles de fichier supérieures à 4 Gio. Il n'y a rien de mal à l'utiliser, mais personnellement, je préfère le TIFF autant que possible.
"Digital Negative" (DNG) est une tentative de création d'une norme RAW ouverte. Bien que j'adore l'idée et qu'elle fonctionne plutôt bien, notez que certains éditeurs RAW ont des problèmes avec eux - par exemple, Capture One oublie généralement la balance des blancs de l'appareil photo, réglant ainsi le curseur sur 5000K, quelle que soit la valeur réelle. Dans le passé, d'autres programmes les ont montrés sous forme d'images blanches ou roses unies ou leur ont donné une teinte magenta. Si la taille du fichier ne vous concerne pas, vous pouvez inclure le RAW d'origine dans votre DNG - si vous en avez besoin à nouveau, vous pouvez simplement l'extraire à nouveau. Mes 2 cents? Essayez-le avec votre logiciel préféré - et s'il fonctionne bien, utilisez-le.
D'autres formats?
Comme cela était déjà devenu incontrôlable, je ne voulais pas aborder encore plus de formats d'image. Cependant, cela ne signifie pas que ceux qui ne sont pas répertoriés ne valent pas la peine d'être pris en considération.