JPEG File Interchange Format
# JPEG File Interchange Format

Le JPEG File Interchange Format, abrégé JFIF, est une norme (recommandation T.81 de UIT-T) pour faciliter l'échange de fichiers contenant des images enregistrées avec la compression JPEG.

## Explications

La norme JFIF spécifie comment stocker certaines informations complémentaires concernant une image JPEG.

La présence des informations JFIF ou JFXX n'est pas obligatoire dans un fichier ayant une extension de fichier .jpeg ou .jpg; c'est une recommandation pour éviter que le rendu de deux images JPEG ne soit différent avec deux logiciels de visualisation différents.

Les informations JFIF se présentent sous la forme d'un bloc de données, un segment, situé vers le début du fichier JPEG. Ce bloc commence toujours par les deux octets FF E0.

Le segment JFIF est plus ou moins redondant avec un autre segment d'informations, appelé "Exif", qui commence par les octets FF E1. Certains fichiers JPEG contiennent seulement un bloc JFIF, d'autres seulement un bloc EXIF, et d'autres contiennent un bloc JFIF et un bloc EXIF.

### Structure du segment JFIF

| Champ | Taille (octets) | Description |
| - | - | - |
| Code (marqueur) APP0 | 2 | Toujours 0xFFE0 |
| Longueur | 2 | Longueur du segment, en excluant les deux octets précédents |
| Identifiant | 5 | Toujours la chaîne de caractère Ascii "JFIF" terminée par un octet nul (0x4A46494600) |
| Version | 2 | La version actuelle est 1.2 qui s'écrit avec le premier octet à 0x01, et le deuxième octet à 0x02 |
| Unité de densité | 1 | Type de densité des pixels 0 - Indéterminé 1 - Pixels par pouce 2 - Pixels par centimètre |
| Densité X (horizontal) | 2 | Entier indiquant le nombre de pixel par unité de densité |
| Densité Y (vertical) | 2 | Entier indiquant le nombre de pixel par unité de densité |
| tw (thumbnail width) | 1 | Taille horizontale de la miniature en pixels |
| th (thumbnail height) | 1 | Taille verticale de la miniature en pixels |
| Thumbnail data | 3 × tw × th | Miniature en RGB 24 bit, non compressé (il existe la norme JFXX qui permet d'avoir un format plus complexe de la miniature) |

## Usage

Le format JFIF est complémentaire du GIF et du PNG pour la publication d'image sur le World Wide Web. Bien que plus intéressante pour des photographies ou des images lourdes, la compression JPEG provoque une perte d'information (algorithme de compression destructif) pouvant aboutir à une perte de qualité visible si l'utilisateur privilégie un taux de compression élevé, particulièrement lorsque l'image contient des changements nets de couleur ou peu de couleurs (par exemple des logos, captures d'écran, diagrammes, etc.). Le format JFIF ne gère ni les animations ni la transparence.

## Autres formats de fichiers

La compression JPEG est également utilisée :

* dans les formats d'image :
   * TIFF
   * JNG
* dans les formats d'animation :
   * MJPEG
   * MNG (via JNG)
* dans les formats de document :
   * PDF
   * SWF
   * etc.
