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. So kam es 2013 zum Scankopierer-Vorfall.

Seit dem 16. März 2015 hat das Bundesamt für Sicherheit in der Informationstechnik (BSI) die JBIG2-Kompression als ungeeignet für das rechtssichere ersetzende Scannen eingestuft.[4] Zu dem gleichen Schluss kommt die „Koordinationsstelle für die dauerhafte Archivierung elektronischer Unterlagen“ der Schweiz.[5] [6]

Vertauschung von Pattern bei Scankopierern[Bearbeiten]

Im August 2013 wurde erstmals öffentlich, dass Kopiergeräte der Firma Xerox Ziffern in den erstellten Scans vertauschten.[7] Der Bug wurde erst 8 Jahre nach Veröffentlichung entdeckt, da auf einer Bauplankopie die angegeben Ziffern der Raumgrößen nicht zur Zeichnung passten.[8] Der Fehler konnte von vielen Benutzern auf weiteren Modellen reproduziert werden.[9]

Kritisiert wurde, dass ein für den professionellen Einsatz entworfener Kopierer nicht durch das einfache Umstellen der Scanqualität die Möglichkeit bieten sollte, die Datenintegrität zu verletzen. Diese Qualitätsstufe mit dem Namen "Normal" nutzte JBIG2 und vertauschte Schriftzeichen, insbesondere bei Schriftgröße 7.[8] Die Anzahl aller betroffenen Geräte wurde auf 200.000–300.000 geschätzt.[8] Bei Dosierungsangaben von Medikamenten, Bauplänen für Brücken oder im Finanzwesen - beispielsweise - können diese Falschdaten unvorhersehbare Konsequenzen bedeuten. Die fehlerhafte Implementierung von JBG2, bzw. die schlechte Parametrisierung betraf allerdings nur das Einscannen, nicht das Kopieren, Drucken oder Faxen.[10] Wichtige Großunternehmen, aber auch staatliche Einrichtungen wie das Militär nutzten die fehlerhafte Qualitätsstufe über 8 Jahre hinweg.[8]

Einzelnachweise[Bearbeiten]

  1. Official JBIG Homepage
  2. jbig2dec Homepage
  3. jbig2 Plugin für Java's Image I/O
  4. BSI TR-03138 Ersetzendes Scannen (RESISCAN)
  5. Studien JBIG2-Komprimierung
  6. BSI überarbeitet Richtlinie RESISCAN, verbietet JBIG2
  7. Xerox-Scankopierer verändern geschriebene Zahlen
  8. a b c d David Kriesel: Traue keinem Scan, den du nicht selbst gefälscht hast
  9. Offensichtlich noch weitere Xerox-Geräte betroffen
  10. Infoblatt zum Scankopierer-Vorfall der Firma Xerox

Weblinks[Bearbeiten]