JFIF signifie JPEG File Interchange Format, et JPEG signifie Joint Photographic Experts Group. JFIF est le format de fichier qui stocke les données d'image JPEG, afin que différents programmes et ordinateurs puissent les ouvrir.
La version JFIF est un champ de métadonnées à l'intérieur d'un fichier JPEG. Elle vous indique à quelle version de la spécification JFIF le fichier se conforme, par exemple 1.01 ou 1.02. Vous trouvez ce champ dans les fichiers JPG, car JFIF est un format réservé aux images JPEG.
Ce que JFIF ajoute à une image JPEG
La norme JPEG définit la façon dont les données d'image sont compressées. Un fichier JFIF est un fichier JPEG normal avec un bloc de données supplémentaire, appelé segment APP0. Ce bloc se trouve directement après le marqueur qui commence l'image.
Les données dans le segment APP0 commencent par le texte JFIF. Le segment stocke des informations que les données d'image compressées ne contiennent pas :
- La version JFIF
- La densité de pixels horizontale et verticale, avec une unité de résolution en pouces, centimètres, ou sans unité
- Le rapport d'aspect des pixels, qu'un programme déduit à partir des 2 valeurs de densité
- Un petit aperçu facultatif de l'image, appelé vignette
JFIF définit aussi le modèle de couleur. Une image JFIF a 1 canal de luminance uniquement, ou 3 canaux dans l'espace colorimétrique YCbCr.
Quels fichiers le portent
Le type MIME image/jpeg a été défini pour les images JPEG au format JFIF. Les extensions de fichier .jpg, .jpeg, .jpe, .jif et .jfif appartiennent toutes à ce format. Ainsi, un fichier dont le nom se termine par .jfif contient le même type d'image qu'un fichier .jpg.
Les appareils photo numériques enregistrent généralement les photos JPEG au format Exif à la place. Exif stocke principalement ses métadonnées dans un segment APP1, et ce segment doit lui aussi se trouver directement après le début de l'image. Comme les deux segments doivent venir en premier, un fichier ne peut pas suivre JFIF et Exif en même temps.
Certains programmes écrivent encore un segment JFIF devant le segment Exif. Dans un tel fichier, vous voyez à la fois une version JFIF et une version Exif.
À quoi ressemblent les valeurs
La version JFIF est stockée sur 2 octets. Le premier octet contient la version majeure et le second la version mineure. La version 1.02 est stockée comme les octets 01 et 02.
ExifTool affiche le champ sous le nom JFIFVersion. Il affiche le numéro majeur, un point, puis un numéro mineur à 2 chiffres. Les registres de formats répertorient 3 versions de JFIF :
1.00: une version précoce de la spécification1.01: la version qui précède 1.021.02: la version du 1er septembre 1992
D'où vient la valeur
Le programme qui enregistre le fichier JPEG écrit le segment APP0 et le numéro de version qu'il contient. L'UIT a publié JFIF en tant que Recommandation T.871 en 2011, et l'ISO et la CEI publient le même texte sous la référence ISO/IEC 10918-5. Cette norme est basée sur la version 1.02, et les fichiers qui la respectent doivent stocker la valeur 1.02.
Les programmes basés sur la bibliothèque libjpeg écrivent 1.01 par défaut. Sa documentation indique de définir 1.02 lorsqu'un programme ajoute un segment d'extension de la version 1.02. Ainsi, un fichier enregistré aujourd'hui peut afficher 1.01 ou 1.02.
Pourquoi cela est important pour votre fichier
La version indique à un programme s'il peut lire les données JFIF. La spécification précise qu'un fichier peut généralement être décodé lorsque sa version majeure correspond à la version majeure que le programme prend en charge.
La version indique aussi quels types de vignettes le fichier peut contenir. Un segment d'extension appelé JFXX n'est autorisé qu'à partir de la version 1.02. Le segment JFXX peut contenir une vignette compressée en JPEG ou une vignette non compressée.
Un fichier JPEG sans version JFIF n'a pas de segment JFIF. Ceci est normal pour les photos qu'un appareil photo a enregistrées au format Exif.