Was ist eine J2C-Datei?
Eine J2C-Datei enthält einen rohen Codestream für JPEG 2000 statt der Boxen und Metadatenstruktur eines Containers aus der JP2-Familie. Derselbe elementare Bitstream ist auch unter den Erweiterungen .j2k und .jpc verbreitet. Er enthält vor allem komprimierte Bildabtastwerte.
So funktionieren J2C-Dateien
Eine Datei mit der Erweiterung .j2c besteht aus einem einzelnen Codestream für JPEG 2000 ohne umgebende Struktur. .j2k und .jpc sind andere Namen für denselben Stream, keine eigenständigen Formate. Die Codestream-Syntax ist in Anhang A von ITU-T T.800 | ISO/IEC 15444-1 definiert. Sie beginnt mit dem SOC-Marker, unmittelbar gefolgt vom SIZ-Markersegment. Dieses gibt die Größe des Referenzrasters und der Kacheln, die Anzahl der Komponenten sowie die Bittiefe und Abtastabstände jeder Komponente an. Weitere Markersegmente beschreiben Encoding-Stil, Quantisierung und Progression. Der EOC-Marker beendet den Stream. Das reicht aus, damit ein Decoder Abtastwerte rekonstruieren kann. Da Auflösungsstufen, Qualitätsschichten, Kacheln und Progressionsreihenfolge im Stream selbst codiert sind, ist für das Decodieren mit reduzierter Auflösung oder das teilweise Decodieren kein Container erforderlich. Was die Abtastwerte bedeuten, sagt der Codestream jedoch nicht. Das JP2-Dateiformat ergänzt diese Ebene: Es bettet den Codestream in Boxen ein, darunter mindestens eine Colour Specification Box und optional eine Intellectual Property Box für Rechteinformationen.
Wichtige Fakten
- Wie erkenne ich eine Datei mit der Erweiterung
.j2c? An ihren ersten Bytes, nicht an ihrem Namen. Ein Codestream beginnt mitFF 4F FF 51, dem SOC-Marker gefolgt vom SIZ-Marker. Eine JP2-Datei beginnt dagegen mit der 12 Byte langen Signaturbox00 00 00 0C 6A 50 20 20 0D 0A 87 0A, gefolgt von einer File Type Box. Der registrierte Medientyp für einen reinen Codestream istimage/j2c, der sowohlj2cals auchj2kals Dateierweiterungen aufführt.image/jp2ist der Typ für das boxenbasierte Dateiformat. - Gibt die Datei an, in welchem Farbraum ihre Abtastwerte vorliegen? Nein. Laut der Registrierung von
image/j2centhält ein Codestream für JPEG 2000 keine Informationen zum Farbraum des Bildes. Dieser wird vorausgesetzt oder separat angegeben. Eine JP2-Datei muss mindestens eine Colour Specification Box enthalten. Eine Datei mit der Erweiterung.j2chat kein entsprechendes Element. Wer einen reinen Codestream anzeigt oder konvertiert, stützt sich daher auf eine Annahme oder auf Informationen, die an anderer Stelle gespeichert sind. - Kann jeder Decoder für JPEG 2000 Teil 1 jede Datei mit der Erweiterung
.j2clesen? Nicht unbedingt. Laut der Registrierung kann ein Codestream Funktionen aus jedem Teil der Familie JPEG 2000 verwenden. Welche Funktionen ein Decoder benötigt, wird durch den Parameter Rsiz im SIZ-Markersegment zusammen mit dem CAP-Markersegment signalisiert. Die führenden Bytes unterscheiden diese nicht: OpenJPEG erkennt beispielsweise High-Throughput-Codestreams vom Typ.jhcanhand derselben Vier-Byte-Signatur, die es für.j2cverwendet. - Ist eine Datei mit der Erweiterung
.j2cverlustfrei oder verlustbehaftet? Die Endung sagt das nicht aus, der Stream teilweise schon. In einem Codestream nach Teil 1 halten die Markersegmente für den Encoding-Stil fest, ob der irreversible Wavelet-Filter 9-7 oder der reversible Wavelet-Filter 5-3 verwendet wurde. Der irreversible Filter führt zu verlustbehaftetem Encoding. Der reversible Filter ermöglicht verlustfreies Encoding, belegt es aber nicht: T.800 weist darauf hin, dass die reversible Mehrkomponententransformation, die nur mit dem Filter 5-3 verwendet wird, in gekürzten Codestreams für verlustbehaftete Kompression eingesetzt werden kann. Ein Codestream, der die Erweiterungen aus Teil 2 (T.801 | ISO/IEC 15444-2) verwendet, kann in demselben Feld andere Werte enthalten, die jeweils einen im Stream selbst definierten Transformationskern auswählen.
Wann J2C-Dateien relevant sind
Ein Decoder muss einen reinen Codestream für JPEG 2000 akzeptieren, statt vorauszusetzen, dass jede Mediendatei JP2-Container-Metadaten enthält. Workflows, die Farb- oder Rechteinformationen benötigen, müssen diese möglicherweise aus einer anderen Quelle beziehen.
Quellen
- IANA-Medientypregistrierung: image/j2c (einzelner Codestream für JPEG 2000)
- Empfehlung ITU-T T.800 (06/2019) | ISO/IEC 15444-1: Kernsystem für das Encoding von JPEG 2000, abgelöste Ausgabe mit frei verfügbarem Text (Anhang A: Codestream-Syntax, Anhang G: Komponententransformationen, Anhang I: JP2-Dateiformat)
- Empfehlung ITU-T T.801 (06/2021) | ISO/IEC 15444-2: Erweiterungen für JPEG 2000, abgelöste Ausgabe mit frei verfügbarem Text (Anhang A, Tabelle A.10: erweiterte Transformationswerte)
- RFC 3745: MIME-Typregistrierungen für JPEG 2000 (image/jp2 und verwandte boxenbasierte Typen)
- Formatbeschreibung der Library of Congress: JPEG 2000 Teil 1, Kernsystem für das Encoding
- OpenJPEG-Quellcode: opj_decompress.c (Tabelle der Dateierweiterungen und Signaturerkennung)