Wikipedia · einfach zusammengefasst · Stand
Bildkompression
Bildkompression ist die Reduzierung des Speicherbedarfs eines digitalen Bilds. Wie bei jeder Anwendung der Datenkompression geht es darum, …
Inhalt4 Abschnitte
Grundprinzip der Bildkompression
Bildkompression verringert den Speicherbedarf eines digitalen Bilds. Dazu werden Bilddaten entweder so umgeformt, dass sie vollständig wiederherstellbar bleiben, oder es werden Informationen entfernt, deren Verlust kaum wahrnehmbar ist. Viele Grafikformate sind veraltet oder unterstützen keine Kompression, weil sie vor allem zum Austausch zwischen Grafikprogrammen dienen.
Entscheidend ist der Unterschied zwischen verlustfreier und verlustbehafteter Kompression: Bei verlustfreier Kompression bleiben alle Informationen erhalten; bei verlustbehafteter Kompression wird Bildqualität zugunsten kleinerer Dateien vermindert. Anders als bei Textdateien oder Programmen ist ein kleiner Informationsverlust bei Bildern normalerweise nicht erkennbar. Einen festen Grenzpunkt, bis zu dem Kompression problemlos möglich wäre, gibt es nicht. Besteht eine Verlusttoleranz, kann der Kompressionsfaktor größer sein als bei vollständig verlustfreier Speicherung.
Verlustfreie Verfahren und Formate
Verlustfreie Kompression entfernt Redundanzen, also unnötige Wiederholungen, ohne Information zu verlieren. Wiederkehrende Bitfolgen können beispielsweise einmal in einem Wörterbuch gespeichert und danach nur noch durch ihre Nummer dargestellt werden. Bekannte Verfahren sind Lauflängenkodierung, LZW und Huffman-Kodierung. Auch allgemeine Verfahren zur Kompression von Text oder anderen Daten können verwendet werden.
PNG nutzt Deflate, eine Kombination aus LZ77 und Huffman-Kodierung. Zusätzlich verwendet PNG prädiktive Kodierung, auch „Vorfilter“ genannt: Nächste Farbwerte werden vorhergesagt, und gespeichert werden nur die Abweichungen von den tatsächlichen Bilddaten. Beim Öffnen einer PNG-Datei wird das ursprüngliche Bild genau wiederhergestellt.
GIF verwendet nur Lempel-Ziv-Welch und erzielt deshalb meist eine schlechtere Kompression als PNG. Pro Einzelbild kann GIF höchstens 256 Farben anzeigen. Seine Farbtabelle enthält bis zu 256 frei auswählbare Einträge aus 256³ ≈ 16,7 Millionen möglichen Farbwerten. Das genügt meist für einfache Zeichnungen und Schwarz-Weiß-Fotografien, nicht aber für Farbfotos oder umfangreiche Farbverläufe. Solche Bilder müssen auf 256 oder weniger Farben reduziert werden; Farbquantisierung und Dithering-Effekte können besonders bei großen Bildern störend sichtbar sein. GIF unterstützt dafür Animationen.
BMP ist verlustfrei und erlaubt Farbtiefen von 1, 4, 8, 16, 24 oder 32 bpp (Bits pro Pixel); bei 16 und 32 bpp müssen nicht alle Bits genutzt werden. RAW-Dateien vieler digitaler Spiegelreflexkameras speichern alle vom Kamerasensor empfangenen Lichtdaten, sind meist groß und liegen in verschiedenen Versionen vor. JPEG XL bietet sowohl verlustfreie als auch verlustbehaftete Kompression und erzielte 2021 bei verlustloser Kompression für die Bitrate deutlich bessere Werte als die meisten anderen Verfahren. Auch Lossless JPEG, JPEG 2000, JPEG XR, HEIF, AVIF und WebP unterstützen verlustfreie Kompression; WebP erzielte in derselben Studie ebenfalls eine gute Kompressionsrate.
Gute Ergebnisse entstehen besonders bei großen Flächen gleicher Farbe oder exakt gleichen Mustern; bei PNG können auch Farbverläufe günstig sein. Die Umwandlung eines verlustbehaftet gespeicherten Bilds in ein verlustfreies Format stellt die ursprünglichen Bilddaten nicht wieder her.
Verlustbehaftete Kompression
Verlustbehaftete Kompression soll Informationsverluste unmerklich oder zumindest ästhetisch erträglich machen. Sie nutzt aus, dass kleine Farbänderungen für das Auge nicht sichtbar sind. Wie verlustbehaftete Audiokompression orientiert sie sich an der menschlichen Wahrnehmung, doch das Wahrnehmungsmodell ist bei Bildkompression nicht ausdrücklich formuliert und in Algorithmen eingebaut, sondern eher intuitiv.
JPEG transformiert ein Bild mit der Diskreten Kosinustransformation, JPEG 2000 mit einer Wavelet-Transformation. Dadurch entsteht eine äquivalente Darstellung durch Koeffizienten zu Basisfunktionen. Bei JPEG sind dies Amplituden von Ortsfrequenzen; bei JPEG 2000 handelt es sich um eine Art Mittelwerte über 4, 16, 64, … Pixel. Bei der Quantisierung werden diese Koeffizienten verändert: Kleine verschwinden, größere werden auf den nächstbesten Wert gesetzt. Dadurch benötigen sie weniger Bits. Anschließend erfolgt eine verlustlose Datenkompression.
JPEG 2000 setzte sich bisher nicht durch, weil die Algorithmen für Digitalkameras und andere tragbare Geräte rechenaufwändig sind und rechtliche Unklarheiten zu Softwarepatenten bestehen. JPEG XR erging es ähnlich. JPEG XL verfolgt dagegen eine quelloffene Entwicklung und erlaubt Anpassungen des Rechenaufwands beim Encoding. Zu starke JPEG-Kompression erzeugt besonders Blockartefakte durch die Einteilung in kleine Blöcke sowie Ringing an harten Farbübergängen, das mit dem Verhalten der Diskreten Kosinustransformation zusammenhängt. JPEG XL soll Blockartefakte mit zwei Filtern verringern.
HEIF, AVIF und WebP sind weitere wichtige verlustbehaftete Formate. Sie nutzen für Videocodecs entwickelte Methoden erneut für Standbilder; dadurch konnte ihre Entwicklung besonders effizient erfolgen. Fraktale Bildkompression nutzt die Selbstähnlichkeit, die nach der Chaostheorie fast jedes Bild aufweist. Für Gruppen von beispielsweise 8×8 Bildpunkten werden ähnliche Gruppen der nächstkleineren Größenordnung, etwa 4×4 Punkte, im gleichen Bild gesucht. Gespeichert werden Positionen ähnlicher Referenzgruppen statt der eigentlichen Gruppen. Das ähnelt einem Codebook-Verfahren, wobei das Codebook im Bild selbst liegt und nicht separat gespeichert werden muss. Die Suche kann aufwändig sein und verwendet gegebenenfalls neuronale Netze; die Dekodierung ist jedoch nicht aufwändiger als bei herkömmlichen Verfahren.
Eignung und Vergleich der Formate
Die Eignung hängt stark von der Bildart ab. Computergrafiken mit harten Kanten, etwa einfache Grafiken oder Screenshots, lassen sich meist verlustfrei besser komprimieren. Im genannten Vergleich benötigte PNG 1007 Byte, GIF 1847 Byte, JPEG 4273 Byte und WebP lossless 908 Byte. JPEG bildete trotz der großen Datei sichtbare Artefakte, während PNG das Bild originalgetreu wiedergab und besser als GIF komprimierte. JPEG XL mit verlustloser Kompression erreichte 644 Byte. Fast artefaktfreie verlustbehaftete Darstellung war mit AVIF bei mittleren Qualitätseinstellungen möglich: AVIF benötigte 739 Byte, AVIF mit dem Testmodell AVM 510 Byte.
Für Fotografien und ähnliche nichtgrafische Bilder ist JPEG unter den verbreiteten Formaten bisher die erste Wahl, wenn Speicherbedarf wichtig ist. Neuere Smartphones verwenden teilweise HEIF. PNG ist für Fotografien meist ungeeignet, weil die Dateien erheblich größer werden; GIF ist zusätzlich auf 256 Farben pro Einzelbild beschränkt.
Im professionellen Bereich, etwa in der Druckvorstufe, werden meist verlustfreie Formate oder Vektorgrafiken genutzt. Mehrfache Bearbeitung und Bildqualität sind dort wichtiger als Speicherverbrauch. Üblich ist TIFF, da es auch das in Druckereien verwendete CMYK-Farbmodell unterstützt. Verlustfreie Rohdatenformate bieten für Fotografien die größten Möglichkeiten und die beste Qualität. JPEG 2000 gehört zu den Mischformaten, bei denen verlustfreie und verlustbehaftete Komprimierung kombiniert werden können. Für Animationen waren GIF und SVG verbreitet; auch WebP, JPEG XL und AVIF unterstützen Animationen.
Neben Dateigröße und Qualität zählt der Rechenaufwand. Höher auflösende Bildsensoren erhöhen die nötigen Rechenoperationen und damit auch den Energiebedarf, auf mobilen Geräten zulasten des Akkus. Auf Internetservern kann die Kompression Wartezeiten verursachen oder durch die Auslastung mehrerer CPU-Kerne andere Aktivitäten verzögern. Neuere Verfahren wie WebP, JPEG XL und AVIF können daher zugunsten einer niedrigeren Kompressionsrate den Berechnungsaufwand erheblich verringern.