Bilder schrumpfen

Die digitale Fotografie und andere Quellen produzieren eine immer größer werdende Bilderflut. Effiziente Kompressionsverfahren zur Speicherung und Übertragung von Grafiken und Bildern sind daher gefragt. Mit JPEG2000 kündigt sich ein Standard an, der heutigen Verfahren in vielerlei Hinsicht überlegen ist.

In Pocket speichern vorlesen Druckansicht 23 Kommentare lesen
Lesezeit: 16 Min.
Von
  • Manfred Bertuch
Inhaltsverzeichnis

Zur Zeit der Mailboxen und DFÜ-Netze stand lediglich das von CompuServe entwickelte GIF (Graphics Interchange Format) für die Kompression von Bilddateien zur Verfügung. Es stellte die Ausgangsdatei zwar originalgetreu wieder her, konnte Fotografien aber nur auf rund ein Viertel komprimieren und war noch dazu lizenzpflichtig. Speicherung und Versand detailreicher Bilder war daher sehr aufwendig. In den 80er-Jahren begann die Joint Photographic Experts Group mit der Entwicklung des eigens auf reale Echtfarbbilder zugeschnittenen Verfahrens JPEG. Es war erstmals in der Lage, Fotografien bei minimalem Qualitätsverlust um das 10- bis 20fache zu komprimieren. Die Übertragung größerer Bildermengen über Modems war damit technisch gelöst, und die Bildermassen in den Netzen wurden allgegenwärtig.

Bei Kompressionsfaktoren von 30 und höher offenbart JPEG allerdings seine Schwächen in Form hässlicher Block- und Moiré-Muster, die das Resultat schnell unbrauchbar machen. In geschlossenen Anwendungen, die keinen Datenaustausch erfordern, ist daher schon seit Jahren ein Verfahren in Gebrauch, das bei höheren Kompressionsfaktoren wesentlich bessere Eigenschaften besitzt. So sind etwa die Abbildungen auf der CD-Ausgabe des Otto-Katalogs nicht mittels JPEG komprimiert, und auch das FBI speichert seine Fingerabdruckkartei auf andere Weise.

Mehr Infos

Für die Verkleinerung der Dateigrößen um den Faktor 40 stehen Wavelet-Verfahren zur Verfügung, die deutlich weniger Bildfehler produzieren. Es lag daher nahe, sich auf einheitliche Kodierparameter und ein Dateiformat zu einigen, um das Wavelet-Verfahren allgemein nutzbar zu machen. Die aus über hundert Experten bestehende JPEG2000-Gruppe hat sich in den vergangenen vier Jahren dieser Aufgabe gewidmet, und im Dezember letzten Jahres verabschiedete die International Standards Organization das Verfahren als ISO/IEC-Standard 15444-1. Die Veröffentlichung des Standards steht noch aus, Einzelheiten kann man aber auch der letzten Entwurfsfassung entnehmen (siehe ‘Online-Quellen’), die sich wahrscheinlich nicht mehr wesentlich geändert hat.

Sieht man sich die Unterschiede zwischen JPEG und JPEG2000 an, sind die besseren Eigenschaften der Wavelet-Komprimierung leicht nachvollziehbar. Zunächst einmal liegt den Ansätzen dasselbe Prinzip zugrunde. Beide übersetzen die Farbwerte der Bildpunkte in ein Frequenzspektrum, indem sie in Zeilen- und Spaltenrichtung eine Spektralanalyse durchführen. Allein dadurch verringert sich die Datenmenge nicht, da die Transformation genauso viele Frequenzkoeffizienten (Amplitudenwerte) liefert wie das Bild vorher Pixel besaß. Im ‘Frequenzraum’ bietet sich jedoch deswegen ein Ansatz für die Kompression, weil der Bildinhalt in einem Teil der Koeffizienten konzentriert ist und alle anderen Koeffizienten nur relativ kleine Werte besitzen. Viele Bildelemente sind zum Beispiel einfarbig oder bestehen aus einem sanften Farbverlauf. Sie lassen sich leicht durch einen einzelnen ‘Gleichstrom’-Koeffizienten oder wenige langsame Schwingungen beschreiben. Hohe Frequenzen sind dagegen oft nur schwach vertreten und besitzen Werte nahe null.

Mehr Infos

Anforderungen an JPEG2000

  • weniger auffällige Bildfehler bei höheren Kompressionsraten
  • Eignung für Zwei-Ton-Bilder (Strichskizzen, Fax), Grafiken, Graustufen- und Farbbilder mit bis zu 16 Bit pro Farbkanal, sowie für Dokumente mit kombinierten Text- und Bildinhalten
  • Region of Interest (ROI) mit geringerer oder verlustfreier Kompression für Anwendungen in der Wissenschaft, Medizin und Druckvorstufe
  • übergroße Bilder mit mehr als 64k x 64k Pixel
  • progressive Übertragung, um verschiedene Pixel-Auflösungen für unterschiedliche Endgeräte (Bildschirm, Drucker, Fax ... ) aus einem Codestream erzeugen zu können
  • Existenz einer oberen Grenze für Übertragungsraten und Speicherbedarf, um die Geräteentwicklung zu vereinfachen
  • Robustheit gegenüber Bitfehlern bei drahtloser Übertragung (mobiles Internet, Satelliten-Fernerkundung)
  • Zusatzkanäle etwa für stufenlose Transparenz
  • Sicherheitsaspekte: Metadaten zur Bildbeschreibung und für Copyright-Informationen (Watermarking)
  • Rückwärtskompatibel zu JPEG und Verträglichkeit mit der Texturkompression (VTC) von MPEG-4

Da das Ausgangsbild nicht originalgetreu wiederhergestellt werden soll, müssen die Farbtöne bei der Rekonstruktion nicht genau getroffen werden. Man kann die Koeffizienten daher mehr oder weniger stark runden (Quantization), um auf diese Weise die Datenmenge das erste Mal zu reduzieren. Dabei berücksichtigt man die physiologischen Eigenschaften des Auges und rundet hohe Frequenzen viel stärker als niedrige. Die hohen Frequenzen beschreiben die feinen Details, und kleine Abweichungen fallen dort bei normaler Betrachtung weniger stark auf als bei den großen Bildelementen. Viele hohe Koeffizienten mit kleinen Werten werden dadurch zu null und müssen nicht mehr explizit gespeichert werden. Besonders dieser Schritt verringert die Datenmenge drastisch.

Abschließend komprimieren beide Verfahren die quantifizierten Koeffizienten noch dadurch, dass sie die am häufigsten auftretenden Koeffizienten durch möglichst kurze Bitfolgen kodieren. Dieses Prinzip der Entropiekodierung findet sich nicht nur beim Morsealphabet, sondern außerdem bei den gängigen Dateipackern. Damit sind die Gemeinsamkeiten zwischen JPEG und der Wavelet-Kompression auch schon vollständig beschrieben.

Der entscheidende Unterschied zwischen JPEG und dem Wavelet-Verfahren besteht in der Art der Transformation für die Berechnung der Frequenzkoeffizienten. JPEG setzt hierzu die diskrete Kosinustransformation (DCT) ein, die mit einem Satz kontinuierlicher Schwingungszüge arbeitet. Die Wavelet-Transformation benutzt dagegen einzelne Schwingungspakete - eben die Wavelets. Da es einen ganzen Zoo verschiedener Wavelets gibt, wäre es ideal, das jeweils für das vorliegende Bild optimale ‘Mother-Wavelet’ zu benutzen. Der Einfachheit halber hat man sich bei der Basisversion von JPEG2000 aber für zwei universelle Wavelets entschieden; eins für den verlustbehafteten Modus und eins für die verlustfreie Kompression.

Mittels solcher Wavelets zerlegt JPEG2000 den Bildinhalt in unterschiedliche Frequenzbereiche (Abb. 1).

Folge der örtlich nicht begrenzten Schwingungszüge bei der DCT ist, dass die JPEG-Koeffizienten den Bildinhalt weiträumig beschreiben, während sich die Wavelet-Koeffizienten nur auf eine begrenzte Region beziehen. Eine geringe Genauigkeit bei hohen Koeffizienten führt bei JPEG daher zu ausgedehnten Moiré-Mustern. Mit Wavelets erhält man dagegen nur eine lokale Störung, die Details lediglich leicht verschwommen erscheinen lässt. Da das menschliche Auge auf leichte Unschärfen bei weitem nicht so empfindlich reagiert wie auf Moiré- oder die Klötzchenmuster, sind mit Wavelets je nach Anwendung Kompressionsfaktoren bis zu 100 möglich.

Der für JPEG typische Klötzcheneffekt hat noch eine andere Ursache. Die DCT ist leider wenig rechnerfreundlich, da ihr Aufwand überproportional (n · log(n)) mit der Bildgröße wächst. JPEG behandelt das Bild deswegen nicht als Ganzes, sondern in Blöcken aus 8 x 8 Pixeln, damit bei großen Bildern die Rechenzeiten nicht zu stark anwachsen. Bei stärkerer Kompression speichert JPEG auch langsame Schwingungen und damit die großen Farbflächen so ungenau, dass die Blöcke farblich nicht mehr aneinander passen und als Mosaikmuster sichtbar werden.

Dagegen wächst der Aufwand für die Wavelet-Transformation nur linear mit der Bildgröße; sie kann daher auch größere Bilder ohne Stückelung behandeln. JPEG2000 sieht allerdings trotzdem eine Zerlegung in rechteckige Bereiche vor, um den Speicherbedarf beim Zugriff auf die Bildspalten begrenzen zu können. Auch die Möglichkeit, wichtige Bildteile (Region of Interest, ROI) weniger stark zu komprimieren, erfordert die Definition von Blöcken. Der lokale Charakter der Wavelet-Koeffizienten verhindert aber auch hier, dass die Blockgrenzen sichtbar werden.

Eine andere Besonderheit von JPEG2000 ist die Art der Entropiekodierung. Die Wahl fiel diesmal auf die leistungsfähige arithmetische Kodierung, was ebenfalls zu den geringeren Dateigrößen gegenüber JPEG beiträgt. Leider ist die auf Geschwindigkeit optimierte Variante der arithmetischen Kodierung eine lizenzpflichtige Entwicklung von IBM. Um die Verbreitung von JPEG2000 nicht zu behindern, wird IBM das Verfahren voraussichtlich für diese Anwendung kostenlos zur Verfügung stellen. Die Diskussion ist zwar noch nicht ganz abgeschlossen, aber auch alle anderen Firmen, die eigenes Know-how beisteuerten, wollen nicht auf ihren Lizenzen bestehen. JPEG benutzt meistens das einfachere Huffman-Verfahren und sieht arithmetische Kodierung lediglich als Option vor, die aber in der Praxis so gut wie nie genutzt wird.

Man hätte viele Möglichkeiten verschenkt, wenn man die Wavelet-Transformation lediglich für ein besseres JPEG-Verfahren eingesetzt hätte. JPEG2000 besitzt nicht nur die besseren Kompressionseigenschaften, sondern ist von vornherein für ein großes Spektrum unterschiedlicher Anwendungsbereiche ausgelegt. Zum Beispiel ist die Robustheit gegenüber Übertragungsfehlern bei UTMS, mobilem Internet und in der Raumfahrt wichtig. Der lokale Charakter der Koeffizienten sorgt dafür, dass Bitfehler im empfangenen Datenstrom sich nur örtlich begrenzt auswirken. Für den Einsatz in Wissenschaft und Medizin ist die Eignung für Grafiken ebenso berücksichtigt wie die Definition einer Region of Interest mit nur minimaler oder verlustfreier Kompression.

Der Übertragung in langsamen Kanälen kommt eine andere Eigenschaft der Wavelet-Kompression zugute. Man kann die Koeffizienten progressiv anordnen, so dass bereits die ersten empfangenen Kilobyte ein grobes Vorschaubild ergeben, das sich im Laufe der Übertragung mit immer mehr Details anreichert. Der Anwender kann die Übertragung jederzeit beenden, wenn die Darstellung seinen Qualitätsanspruch erreicht hat. Aus dem gleichen Grund lassen sich aus einer komprimierten Datei sehr schnell Thumbnails extrahieren.

Den progressiven Bildaufbau demonstriert sehr schön die von www.jpeg.org erhältliche Java-Demo. Sie zeigt die Transformation in den Frequenzraum und rekonstruiert anschließend das Ausgangsbild aus einer schrittweise zunehmenden Anzahl von Koeffizienten. Man taktet seinen Rechner am besten auf 100 MHz herunter, um den Vorgang bequem verfolgen zu können. Die Demo läuft auch mit größeren Bilder aus 512 x 512 Pixeln, wenn man die Fenstergröße in der HTML-Quelle verdoppelt.

Zahlreiche Anwendungen auf der Basis seines proprietären Wavelet-Verfahrens hat bereits das Berliner Entwicklerbüro Luratech entwickelt. Auf ihrem Webserver stellt die Firma ein Plug-in für gängige Browser zur Verfügung, das Lurawave-Dateien dekodiert und ebenfalls nach dem Prinzip der schrittweisen Detailanreicherung funktioniert. Auch der verbreitete Bildbetrachter ACDsee oder der bei nicht kommerzieller Nutzung kostenlose Viewer/Konverter Irfanview unterstützen das propietäre LWV-Format von Luratech. Eigenen Experimenten mit Wavelet-Kompression steht also nichts im Wege, die erwähnten Tools sind aber auf die Betriebssysteme aus Redmond beschränkt. Für Linux und andere Plattformen sind bei Luratech SDKs erhältlich.

Natürlich arbeitet Luratech auch an JPEG2000-konformer Software. Ein Plug-in für Photoshop sowie SDKs für Windows und Macintosh sind bereits als Beta-Demo verfügbar. Gegenüber dem Luratech-Verfahren erzeugt JPEG2000 noch einmal um 10 bis 20 Prozent kleinere Dateien, da das LWV-Format noch keine arithmetische Kodierung benutzt.

Eine hübsche JPEG2000-Demo bietet die Firma Aware. Das Windows-Programm zeigt in drei Fenstern das Originalbild sowie eine JPEG2000- und eine JPEG-Version bei wählbaren Kompressionsgrößen. Man kann sich kaum bequemer ein Bild von den Vorzügen der Wavelet-Kompression machen.

Von Image Power ist ‘Power Compressor V1.5’ für 99 US-$ oder als 30-Tage-Testversion in einer Windows-Version erhältlich. Er bietet zusätzlich einen Viewer für den Internet Explorer in Form eines ActiveX-Control. Versionen für Macintosh, Linux und Handhelds sollen folgen. Am gleichen Ort findet man den kostenlosen, nicht kommerziellen JPEG2000-Codec JasPer. Die beiden Programme für das Komprimieren und Entpacken sind allerdings nur umständlich über Kommandozeilen-Parameter zu bedienen und enthalten keinen Viewer. Man muss die erzeugten JP2-Dateien wieder in ein anderes Standardformat entpacken, um sie betrachten zu können. Der Quellcode des JasPer-Codecs lässt sich auch auf verschiedenen Unix-Systemen übersetzen.

Eine vollständig in Java implementierte Version von JPEG2000 findet man unter http://jj2000.epfl.ch. Das Projekt von EPFL, ERICSSON and Canon unterstützt die Formate Portable GrayMap (PGM), Portable PixMap (PPM) sowie PGX und liegt als Windows- und Unix-Archiv vor.

Image Power ist auch für den ersten JPEG2000-Chip ‘Blackbird JPEG2000 Core’ verantwortlich, der 40-mal schneller als Software Codecs arbeitet und sich für FPGA- und ASIC-Designs eignet. Er soll einen Durchsatz von 20 bis 80 MByte/s erreichen und bewältigt beispielsweise Bildfolgen in VGA-Auflösung mit 640 x 480 Pixeln mit einer Rate von 30 bis 60 Bildern/s. Die Leistung eines Softwarekompressors liegt auf einem 1 GHz schnellen Pentium-III-System dagegen bei rund 5 MByte/s. Die PCI-Karte mit dem JPEG2000-Chip soll 1495 US-$ kosten.

Der jetzt verabschiedete erste Teil des Standards berücksichtigt die Speicherung, Übertragung und den Austausch von Bildern. Für weitere Anwendungen sind zur Zeit eine Reihe von Ergänzungen in der Entwicklung. So soll der zweite Teil optionale Features festlegen, wie eine spezielle Quantifizierung (Trellis Coded Quantization), anwenderdefinierte Wavelets, weitere Transformations- und ROI-Verfahren, gemischte Kodierungen mit fester und variabler Länge, weitere Kodieralgorithmen und noch höhere Fehlertoleranz.

Mit Motion-JPEG2000 beschäftigt sich der dritte Teil. Ihm liegt das Verfahren des ersten Teils zugrunde, und unter anderem definiert er ein Dateiformat (MJ2), das auch Informationen wie die Bildrate und den Ton speichert. Den Formatwildwuchs des jetzigen Motion-JPEG will man natürlich nicht wiederholen.

Der vierte Teil des Standards legt die Conformance-Testprozedur fest, und der fünfte beschreibt Referenzsoftware. Zu dieser gehören der bereits erwähnte JasPer-Codec und die Java-Implementierung. Teil sechs befasst sich mit einem Dateiformat für Dokumente mit Text, Grafik und Bildelementen (compound image file format), und Teil sieben enthält schließlich technische Richtlinien für die Umsetzung von Teil eins.

Aufgrund der zahlreichen Vorzüge will die Industrie den neuen Standard relativ schnell anwenden und im Laufe des nächsten Jahres erste Produkte herausbringen. Natürlich bietet ein neuer Standard entsprechende Möglichkeiten für das Marketing. Canon und Hewlett-Packard entwickeln bereits JPEG2000-Hardware für ihre professionellen Imaging-Systeme, und auch digitale Kameras sollen mit dem neuen Verfahren arbeiten. Die Vorzüge haben allerdings ihren Preis. JPEG2000 ist etwa zwei- bis dreimal rechenintensiver als der Vorgänger. Mit dem neuen Standard bleiben daher Stromverbrauch und Reaktionszeit digitaler Kameras und anderer mobiler Geräte trotz schnellerer Prozessoren kritische Größen, da auch die Bildauflösungen weiter wachsen werden.

Zudem sind nicht in allen Bereichen hohe Erwartungen an JPEG2000 angebracht. Die Bildqualität ist bei hohem Qualitätsanspruch, wo man ohnehin nur bis zum Faktor 15 oder weniger komprimiert, nicht besser als beim gegenwärtigen JPEG-Verfahren. Kommt es wie bei professionellen Kameras lediglich auf die Speicherung mit mäßiger Kompression an, ist das rechenaufwendige JPEG2000 also nicht unbedingt sinnvoll. Auch der verlustfreie Modus ist mit einer Kompression um den Faktor zwei dem speziellen JPEG-LS unterlegen. Die besonderen Vorzüge wie eingebettete Ansichten unterschiedlicher Qualität, Region of Interest und Bitfehlertoleranz werden dem neuen Standard bei Bilddatenbanken, professioneller Bildverarbeitung sowie wissenschaftlichen, medizinischen, mobilen und Internetanwendungen aber schnell zum Durchbruch verhelfen.

Manfred Bertuch
war langjähriger Redakteur der c’t - arbeitet jetzt als freier Autor für die Themengebiete Grafik und Multimedia in Berlin.

[1] Dr. Wilhelm Berghorn, Tobias Boskamp, Steven Schönfeld, Prof. Dr. Hans-Georg Stark; Winzig mit Wavelets; Aktuelle Verfahren zur Bilddatenkompression; c’t 26/99, S. 186

Mehr Infos

iX-TRACT

  • Die Überarbeitung des JPEG-Standards soll höhere Kompressionsfaktoren bei besserer Bildqualität ermöglichen und ist für ein großes Spektrum unterschiedlicher Anwendungsbereiche ausgelegt - von der professionellen Bildbearbeitung bis zu Internet-Applikationen.
  • Der neue Standard JPEG2000, dessen erster von sieben Teilen verabschiedet ist, basiert auf dem Wavelet-Verfahren, das für die Transformation zur Berechnung der Frequenz-Koeffizienten einzelne Schwingungspakete nutzt.
  • Zwei universelle Wavelets gehören zur Basisversion von JPEG2000: eins für den verlustbehafteten Modus und eins für die verlustfreie Kompression.
  • Erste Viewer und Entwickungswerkzeuge, zum Teil basierend auf proprietären Wavelet-Verfahren, sind bereits kostenlos verfügbar.