JPEG - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Une photo de fleur compressée en JPEG, avec des compressions de plus en plus fortes, de gauche à droite.

La norme JPEG est une norme qui définit le format d'enregistrement et l'algorithme de décodage pour une représentation numérique compressée d'une image fixe.

Introduction au JPEG

JPEG est l’acronyme de Joint Photographic Experts Group. C’est un comité d’experts qui édite des normes de compression pour l’image fixe. La norme communément appelée JPEG, de son vrai nom ISO/IEC IS 10918-1 | ITU-T Recommendation T.81, est le résultat de l’évolution des travaux qui ont débuté dans les années 1978 à 1980 avec les premiers essais en laboratoire de compression d’images.

Le groupe JPEG qui a réuni une trentaine d’experts internationaux, a spécifié la norme en 1991. Mais la norme officielle et définitive n'a été adoptée qu'en 1992. Pratiquement, seule la partie concernant le codage arithmétique est brevetée, et par conséquent protégée par IBM, son concepteur.

JPEG normalise uniquement l’algorithme et le format de décodage. Le processus d'encodage est laissé libre à la compétition des industriels et universitaires, du moment que l’image produite est décodable par un décodeur standard. La norme propose un jeu de fichiers de tests appelés fichiers de conformance qui permettent de vérifier qu'un décodeur respecte bien la norme. Un décodeur est alors dit conforme s’il est capable de décoder tous les fichiers de conformance.

Le brevet de la norme JPEG a été déposé par l'entreprise Forgent, mais il a été remis en cause par le bureau américain des brevets (USPTO), qui l'a invalidé le 24 mai 2006 pour antériorité existante à la suite d'une plainte de la Public Patent Foundation qui considère ce brevet invalide. Mais depuis le 27 septembre 2007, la société Global Patent Holdings, filiale d'Acacia Research Corporation, a à son tour revendiqué la paternité de ce format.

JPEG définit deux classes de processus de compression :

  • avec pertes ou compression irréversible. C’est le JPEG « classique ». Il permet des taux de compression de 3 à 100.
  • sans pertes ou compression réversible. Il n’y a pas de pertes d’information et il est donc possible de revenir aux valeurs originales de l’image. Les gains en termes de compression sont alors plus modestes, avec un taux de compression de l’ordre de 2. Cette partie fait l’objet d’une norme spécifique JPEG-LS.

Syntaxe et structure

JPEG peut désigner soit l'encodage d'une image, soit le format de fichier. En effet, différents formats de fichiers (TIFF, PDF, JPG, ...) peuvent contenir une image encodée en JPEG. On parlera dans ce paragraphe du format de fichier (aussi appelé JIFF pour JPEG image file format). Un fichier JPEG est constitué d'une séquence de segments commençant par un marqueur. Un marqueur se compose de la valeur 0xFF suivie d'un octet identifiant le type de marqueur. Certains marqueurs ne contiennent que ces deux octets; d'autres sont suivis de deux octets spécifiant la taille en octets des données du segment. Cette taille inclue ces deux octets de taille mais pas ceux du marqueur.

Marqueurs JPEG courants
Abréviation Valeur Contenu Nom Commentaires
SOI 0xFFD8 aucun Start Of Image Premiers octets du fichier
SOF0 0xFFC0 taille variable Start Of Frame (Baseline DCT) Indique une image encodée par "baseline DCT", et spécifie la largeur, la hauteur, le nombre de composantes et le sous-échantillonnage des composantes (par exemple 4:2:0).
SOF2 0xFFC2 taille variable Start Of Frame (Progressive DCT) Indique une image encodée par "progressive DCT", et spécifie la largeur, la hauteur, le nombre de composantes et le sous-échantillonnage des composantes (par exemple 4:2:0).
DHT 0xFFC4 taille variable Define Huffman Table(s) Spécifie une ou plusieurs tables d'Huffman.
DQT 0xFFDB taille variable Define Quantization Table(s) Spécifie une ou plusieurs tables de quantification.
DRI 0xFFDD deux octets Define Restart Interval Spécifie l'intervalle entre les marqueurs RSTn, en macroblocs. Ce marqueur est suivi de deux octets indiquant sa taille de sorte qu'il puisse être traité comme n'importe quel segment de taille variable.
SOS 0xFFDA taille variable Start Of Scan Commence un parcours de haut en bas de l'image. Dans les encodages baseline DCT, il n'y a généralement qu'un seul parcours. Les images progressive DCT contiennent habituellement plusieurs parcours. Ce marqueur spécifie quelle tranche de données il contient et il est immédiatement suivi par des données codées entropiquement.
RSTn 0xFFD0 … 0xFFD7 aucun Restart Inséré tous les r macroblocs, où r est l'intervalle DRI (cf marqueur DRI). Il n'est pas utilisé s'il n'y a pas de marqueur DRI. Les trois bits de poids faible du code de marqueur varient en boucle de 0 à 7.
APPn 0xFFEn taille variable Application-specific Ce marqueur permet d'inclure des informations qu'un programme de visualisation peut ignorer tout en restant capable de décoder l'image. Par exemple, un fichier JPEG Exif utilise un marqueur APP1 pour enregistrer des méta données, organisées selon une structure proche du formatage TIFF.
COM 0xFFFE taille variable Commentaire Contient un commentaire textuel.
EOI 0xFFD9 aucun End Of Image Derniers octets du fichier
Page générée en 0.177 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales | Partenaire: HD-Numérique
Version anglaise | Version allemande | Version espagnole | Version portugaise