Qu’est-ce qu’un fichier J2C ?
Un fichier J2C contient un flux codé JPEG 2000 brut plutôt que les boîtes et la structure de métadonnées d’un conteneur de la famille JP2. Le même flux binaire élémentaire circule aussi sous les extensions .j2k et .jpc. Il contient principalement des données d’échantillons d’image compressées.
Fonctionnement des fichiers J2C
Un fichier .j2c est un unique flux codé JPEG 2000 sans enveloppe ; .j2k et .jpc sont d’autres noms du même flux, et non des formats distincts. La syntaxe du flux codé est définie dans l’annexe A de ITU-T T.800 | ISO/IEC 15444-1. Il commence par le marqueur SOC, immédiatement suivi du segment de marqueur SIZ, qui indique la taille de la grille de référence et des tuiles, le nombre de composantes, ainsi que la profondeur de bits et l’espacement des échantillons de chaque composante. D’autres segments de marqueur décrivent le style de codage, la quantification et la progression, et le marqueur EOC termine le flux. Cela suffit à un décodeur pour reconstruire les valeurs des échantillons et, puisque les niveaux de résolution, les couches de qualité, les tuiles et l’ordre de progression sont codés dans le flux lui-même, le décodage à résolution réduite ou partiel ne dépend pas d’un conteneur. Ce que le flux codé ne précise pas, c’est la signification des échantillons. Le format de fichier JP2 existe pour ajouter cette couche : il enveloppe le flux codé dans des boîtes qui contiennent, entre autres, au moins une boîte de spécification des couleurs et, éventuellement, une boîte de propriété intellectuelle pour les informations sur les droits.
Points clés
- Comment reconnaître un fichier
.j2c? Par ses premiers octets, pas par son nom. Un flux codé commence parFF 4F FF 51, soit le marqueur SOC suivi du marqueur SIZ, tandis qu’un fichier JP2 commence par la boîte de signature de 12 octets00 00 00 0C 6A 50 20 20 0D 0A 87 0A, suivie d’une boîte de type de fichier. Le type de média enregistré pour un flux codé brut estimage/j2c, qui répertoriej2cetj2kcomme extensions de fichier ;image/jp2est le type du format de fichier structuré en boîtes. - Le fichier indique-t-il l’espace colorimétrique de ses échantillons ? Non. L’enregistrement de
image/j2cprécise qu’un flux codé JPEG 2000 ne contient pas d’informations sur l’espace colorimétrique de l’image et que celui-ci est implicite ou fourni hors bande. Un fichier JP2 doit contenir au moins une boîte de spécification des couleurs ; un fichier.j2cn’a pas d’équivalent. Quiconque affiche ou convertit un flux codé brut s’appuie donc sur une hypothèse ou sur des informations conservées ailleurs. - Tout décodeur JPEG 2000 partie 1 peut-il lire n’importe quel fichier
.j2c? Pas nécessairement. Selon l’enregistrement, un flux codé peut utiliser des fonctionnalités de n’importe quelle partie de la famille JPEG 2000, et les fonctionnalités nécessaires au décodeur sont signalées par le paramètre Rsiz dans le segment de marqueur SIZ, conjointement avec le segment de marqueur CAP. Les premiers octets ne permettent pas de les distinguer : OpenJPEG, par exemple, détecte les flux codés à haut débit.jhcavec la même signature de quatre octets que celle utilisée pour.j2c. - Un fichier
.j2cest-il sans perte ou avec perte ? Le suffixe ne le dit pas, mais le flux le précise en partie. Dans un flux codé de la partie 1, les segments de marqueur de style de codage indiquent si le filtre en ondelettes irréversible 9-7 ou réversible 5-3 a été utilisé. Le filtre irréversible correspond au codage avec perte. Le filtre réversible rend possible le codage sans perte sans le prouver, car T.800 précise que la transformation réversible à composantes multiples, utilisée uniquement avec le filtre 5-3, peut être employée dans des flux codés tronqués pour produire une compression avec perte. Un flux codé utilisant les extensions de la partie 2 (T.801 | ISO/IEC 15444-2) peut contenir d’autres valeurs dans le même champ, chacune sélectionnant un noyau de transformation défini dans le flux lui-même.
Quand les fichiers J2C sont utiles
Un décodeur doit accepter un flux codé JPEG 2000 brut plutôt que de supposer que chaque ressource possède des métadonnées de conteneur JP2. Les chaînes de traitement qui ont besoin d’informations sur les couleurs ou les droits peuvent devoir les obtenir d’une autre source.
Références
- Enregistrement du type de média auprès de l’IANA : image/j2c (flux codé JPEG 2000 unique)
- Rec. ITU-T T.800 (06/2019) | ISO/IEC 15444-1 : système de codage de base JPEG 2000, édition remplacée dont le texte est librement accessible (annexe A, syntaxe du flux codé ; annexe G, transformations des composantes ; annexe I, format de fichier JP2)
- Rec. ITU-T T.801 (06/2021) | ISO/IEC 15444-2 : extensions JPEG 2000, édition remplacée dont le texte est librement accessible (annexe A, tableau A.10, valeurs de transformation étendues)
- RFC 3745 : enregistrements des types MIME pour JPEG 2000 (image/jp2 et types associés structurés en boîtes)
- Description du format par la Bibliothèque du Congrès : JPEG 2000 partie 1, système de codage de base
- Code source d’OpenJPEG : opj_decompress.c (table des extensions et détection des signatures)