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 (Une information numérique (en anglais « digital ») est une information...) compressée d'une image fixe.
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 (Une norme, du latin norma (« équerre, règle ») désigne un...) 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 (De façon générale un codage permet de passer d'une représentation des...) arithmétique (L'arithmétique est une branche des mathématiques qui comprend la partie de la...) est brevetée, et par conséquent protégée par IBM (International Business Machines Corporation (IBM) est une société multinationale américaine...), son concepteur (Un concepteur est une personne qui imagine et réalise quelque chose. Ce mot vient du verbe...).
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 (L'acacia est un genre d'arbres et arbustes appartenant à la famille des Fabacées...) Research Corporation, a à son tour revendiqué la paternité de ce format.
JPEG définit deux classes de processus de compression :
JPEG peut désigner soit l'encodage d'une image, soit le format de fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce, un...). 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 (L’octet est une unité de mesure en informatique mesurant la quantité de...) identifiant (En informatique, on appelle identifiants (également appelé parfois en anglais login) les...) 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 (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent...) du segment. Cette taille inclue ces deux octets de taille mais pas ceux du marqueur.
Abréviation | Valeur | Contenu | Nom | Commentaires |
---|---|---|---|---|
SOI | 0xFFD8 | aucun | Start (STart était un magazine américain traitant de l'informatique et du jeu vidéo,...) 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 largeur d’un objet représente sa dimension perpendiculaire à sa longueur, soit...), la hauteur (La hauteur a plusieurs significations suivant le domaine abordé.), le nombre (La notion de nombre en linguistique est traitée à l’article « 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 (Le poids est la force de pesanteur, d'origine gravitationnelle et inertielle, exercée par la...) 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 (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou...) 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 |