JBIG2

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

JBIG2 ist ein Verfahren zur Bildkompression von Binärbildern für sowohl verlustfreie als auch verlustbehaftete Kompression. JBIG2 wurde von der „Joint Bi-level Image Experts Group“[1] entwickelt und wurde im Jahre 2000 als internationaler Standard ITU T.88 und 2001 als ISO/IEC 14492 veröffentlicht. Es ist eine Weiterentwicklung von JBIG.

Funktionsweise[Bearbeiten]

Obwohl der JBIG2-Standard sich nur auf die Decodierung bezieht, wird vom Encoder erwartet, dass die Seiten der Eingabedokumente in drei Typen von Regionen eingeteilt werden: Text, Grafik und generische Regionen. Letztere gibt Objekte wieder, die sich weder als Text, noch als Bild klassifizieren lassen, zum Beispiel Linien oder Rauschen.

Eine Textregion besteht aus einer Anzahl von Symbolen, die auf einem Hintergrund platziert werden. Typischerweise entspricht ein Symbol einem Zeichen (z. B. Buchstaben), das in einem Text vorkommt. Die Symbole werden in einem Symbolwörterbuch gespeichert und können durch Angabe ihres Indizes wiederverwendet werden. Die Speicherung im Wörterbuch erfolgt entweder als codierte Bitmap oder als Verfeinerung eines anderen Wörterbucheintrags, wobei lediglich die Differenz zur Vorlage gespeichert wird. Bei der verlustbehafteten Komprimierung verweisen auch geringfügig unterschiedliche Symbole auf denselben Symbolwörterbucheintrag.

Rastergrafiken werden durch Rekonstruktion von Graustufenbildern komprimiert und häufig auftretende Muster werden in einer Bibliothek gespeichert. Verlustfreie und verlustbehaftete Kodierung werden wie bei Textregionen gehandhabt.

Die vom Encoder festgelegten Regionen müssen nicht disjunkt sein. Mögliche Überlappungsflächen werden mittels anzugebender Verknüpfungsoperatoren (OR, AND, XOR, XNOR oder REPLACE) verrechnet.

JBIG2-Dateien sind in Segmente unterteilt. Eine Dokumentenseite besteht beispielsweise aus einem Seiteninformationssegment, einem Symbolwörterbuchsegment, einem Textregionssegment, einem Musterwörterbuchsegment, einem Halbtonregionssegment und einem End-of-Page-Segment. Die Wörterbuchsegmente enthalten Rastergrafiken, die von den Regionssegmenten referenziert werden. Weil Symbole und Muster unterschiedlicher Seiten sich auf das gleiche Wörterbuchsegment beziehen können, findet eine seitenübergreifende Komprimierung statt. Segmente sind eindeutig nummeriert und bestehen aus einem Segmentkopf, einem Datenkopf und Daten. Der Segmentkopf enthält die Segmentnummer, wenn andere Segmente im Datenteil referenziert werden auch deren Segmentnummern, und die Seitennummer auf der die decodierte Grafik platziert werden soll oder bei globalen Segmenten den Wert 0.

Kompressionsverfahren[Bearbeiten]

Zur Kompression werden drei unterschiedliche Verfahren verwendet:

Verwendung[Bearbeiten]

JBIG2 Daten können als eigenständige Dateien oder eingebettet in andere Dateiformate wie beispielsweise PDF (ab Version 1.4) vorkommen.

Quelloffene Dekoder für JBIG2 sind jbig2dec[2] (geschrieben in C) und jbig2-imageio[3] (geschrieben in Java).

Nachteile[Bearbeiten]

Durch den Rückgriff auf nicht identische Symbole bei der verlustbehafteten Komprimierung kann eine ungeeignete Parametrierung bei der Kompression zur Verfälschung (im Gegensatz zu visuell als solchen erkennbaren Fehlern anderer Kompressionsverfahren) kleiner Dokumentdetails (z.B. Zahlen) führen; vgl. das im August 2013 entdeckte Scankopierer-Problem.[4]

Einzelnachweise[Bearbeiten]

  1. Official JBIG Homepage
  2. jbig2dec Homepage
  3. jbig2 Plugin für Java's Image I/O
  4. Xerox-Scankopierer verändern geschriebene Zahlen

Weblinks[Bearbeiten]