Dieses Bild ist das Original für die Vergleiche. Es wurde von einer Powershot A70 von Canon im JPG Format aufgenommen. Dateigröße = 1273 KB

Diese Seite soll ein etwas ausführlicherer Vergleich der drei in der Wikipedia verwendeten Grafikformate JPG, PNG und GIF sein, da sich immer noch Gerüchte und Vorurteile über die einzelnen Formate halten. Gleichzeitig soll diese Seite Optimierungstipps geben.
DIESE SEITE IST EXPLIZIT ZUM UNDOGMATISCHEN (!) BEARBEITEN FÜR ALLE ANGEMELDETEN WIKIPEDIANER FREIGEGEBEN.

Einzelbeschreibungen

Bearbeiten

JPG ist ein verlustbehaftetes Format. Durch jedes weitere Speichern verliert ein Bild an Qualität. Der Grad an Qualitätsverlust (Kompressionsgrad) kann jedoch kontrolliert werden. JPG nutzt die Stärken und Schwächen des menschlichen Auges, um bei möglichst geringer Dateigröße ein subjektiv möglichst verlustfreies Bild abzuspeichern. Die (verlustbehafteten) Kompressionsalgorithmen eignen sich besonders für sanfte Farbübergänge, wie sie häufig auf Fotos existieren. Besonders harte Farbübergänge, wie sie besonders in Grafiken, Cartoons etc. vorkommen, führen nach starker JPG-Kompression zu sogenannten Kompressionsartefakten. Da JPG von Anfang an für Fotografien entworfen wurde, speichert es konsequenterweise bis zu 256*256*256 = ca 16,7 Mio. Farben1. Das Format JPG kennt keine Transparenzen. Zu beachten ist, dass (außer in einigen pathologischen Fällen) JPG immer mit einem Qualitätsverlust einhergeht (selbst bei Programmeinstellungen wie "Qualität=100"). Bei für JPG geeigneten Bildtypen und einer ausreichenden Qualitätsstufe ist dieser Qualitätsverlust allerdings kaum sichtbar.

Galerie von Bildern in unterschiedlicher JPG-Kompression:

           
Qualität 90 70 50 30 10
Kompression 10 30 50 70 90
Dateigröße 567KB 268KB 187KB 134KB 66KB

1) Bei Graustufen-JPGs sind es nur 256 Graustufen. Es gibt auch JPG-Varianten, die eine Farbtiefe von 16 Bit (und damit maximal 216 Farben) haben, aber diese werden kaum genutzt.

 
Die GIF Version des Originals, Dateigröße=1938KB

GIF selbst ist ein verlustfreies Format. GIF-Bilder können nur maximal 256 Farben enthalten, die jedoch aus 256*256*256 Farben ausgewählt werden können. Bei der Erstellung einer GIF Datei muß deshalb das erstellende Programm Bilder die mehr als 256 Farben enthalten auf die maximal möglichen 256 Farben umkonvertieren wobei es aus den 16,7 Mio. möglichen Farben die am besten passenden auswählen muß. Trotzdem gehen dabei Farbinformationen verloren. Bilder mit 256 Farben oder weniger können mit GIF jedoch völlig verlustlos gespeichert werden. Die Farben werden in der Palette des Bildes indiziert, d.h. festgelegt, was die Dateigröße von Bildern erheblich verringern kann. Um bei der Betrachtung eines GIF Bildes jedoch den Eindruck von mehr als 256 Farben zu erwecken wenden manche Programme das Dithering oder andere Methoden an. Bis Juni 2005 gab es Länder, in denen der GIF Kompressionsalgorithmus (LZW) patentrechtlich geschützt war, was zur Entwicklung von PNG führte. Dateigrößen indizierter Bilder (das können auch PNGs sein) lassen sich weiter verringern durch Verringern der Farbenzahl, was für typische Grafiken nicht notwendigerweise eine Verringerung der Bildqualität bedeutet, sehr wohl jedoch für umgewandelte Fotos.

  • GIF-Bilder können animiert werden, d.h. in einer einzigen Datei können mehrere Bilder abgespeichert sein, die nacheinander angezeigt werden. Dies wird beispielsweise für animierte Smileys genutzt.
  • GIF ermöglicht im Gegensatz zu JPG Transparenz, allerdings nur binäre Transparenz, d.h., nur "an/aus"-Transparenz.
 
Die schwarz-weiß PNG Version des Originals, Dateigröße=1291KB

PNG ist ein verlustfreies Format (vereinfacht: BMP & ZIP) und wurde als Reaktion auf den Patentschutz von GIF entworfen. PNG-Bilder können bis zu   Farben enthalten, aber nicht animiert sein. Zwar gibt es mit MNG einen „Animationsabkömmling“ von PNG, der derzeit jedoch von kaum einem Browser unterstützt wird. Bei PNG-Bildern gibt es wie bei GIF (und anders als im JPG) auch die Möglichkeit, das Bild indiziert, d.h. mit bis zu 256 Farben, abzuspeichern. Um Dateigrößen von PNG und GIF zu vergleichen, muss man das PNG-Bild ebenso indiziert abspeichern wie das zu vergleichende GIF.

PNG kann Transparenz darstellen, und zwar über die Möglichkeit von GIF hinaus, nämlich in bis zu 65536 Transparenzstufen. Bei Bildern mit Farbtabelle werden die Farbeinträge der Farbtabelle mit einem Transparenzwert verknüpft (1). Bei Bildern mit mehr als 256 Farben werden die Transparenzwerte in einem Alphakanal, also direkt in jedem Pixel, abgelegt (2). PNG-Bilder mit mehr als binärer Transparenz (d.h., mehr als Transparenz ja/nein) werden im Internet Explorer von Microsoft bis einschließlich Version 6 jedoch nicht korrekt dargestellt. Im Falle (1) wird die Transparenz vom Internet Explorer in binäre Transparenz umgewandelt, wobei Transparenzwerte unter 50% als undurchsichtig und über 50% als durchsichtig betrachtet werden. Im Falle (2) wird das gesamte Bild standardmäßig mit einem grauen Hintergrund hinterlegt. Diese Hintergrundfarbe kann durch das Hinzufügen eines so genannten bKGD-Chunks, z.B. mit TweakPNG, geändert werden. Ab Version 7 des IE werden alle PNGs korrekt angezeigt, wenngleich es noch Probleme mit Farbkorrektur-Daten gibt.

Vergleich der Dateigrößen

Bearbeiten

Bei PNG kommt es sehr auf den Grad der Optimierung an. Die oftmals unzureichende PNG-Komprimierung durch Programme liegt an zwei Dingen:
(1) bei Bildern mit Farbtabelle die Verwendung einer höheren Fabtiefe als nötig (bei einem Bild mit 16 Farben etwa 8 bpp anstatt der nötigen 4 bpp), und
(2) die Verwendung eines nicht optimierten Komprimierungsmoduls. Programme zur Optimierung von PNGs erfüllen meist entweder den einen oder den anderen Zweck.

pngrewrite: (1)
pngcrush, OptiPNG, PNGOUT: (2)

  • pngrewrite mit nachfolgendem OptiPNG ist zur Optimierung eine gute Allround-Lösung. Wirklich das letzte Byte kann man jedoch mit pngrewrite+PNGOUT herausquetschen, allerdings benötigt PNGOUT bei zu großen Dateien unerträglich lange zur Optimierung.
  • Eine bequeme Lösung, um aus Adobe Photoshop sehr kleine optimierte PNGs zu gewinnen:
    a) Umwandeln in indizierte Farben und Speichern als GIF.
    b) Umwandeln des GIF in PNG per PNGGaunlet (unter Windows, drag+drop).
    Ergebnis sind Dateien, die meist zwischen 10 und 25% kleiner sind als die betreffenden GIFs.

Angegeben wird hier die Größe des PNG Bildes nach dem Speichern mit GIMP (Kompressionsgrad 9), sowie die Größe, wenn die Datei anschließend mit dem Programm pngcrush optimiert wird. (Hinweis: hier wurde es versäumt, vorher pngrewrite zu benutzen, weshalb die PNG-Dateigrößen womöglich höher sind als nötig. Bei korrekter Optimierung ist PNG bei jedem Bild mit Farbtabelle kleiner als GIF.)

Art des Bildes JPG Dateigröße (Qualität=90%) GIF Dateigröße PNG Dateigröße (GIMP) PNG Dateigröße (GIMP & pngcrush)
original 1273 KB - 3767 KB 3400 KB
indiziert (256 Farben) - 1938 KB 1726 KB 1701 KB
schwarz-weiß 506 KB' 2236 KB 1354 KB 1291 KB


Man sieht, dass optimierte PNGs stets kleiner sind als gleichwertige GIFs. .

Selbstverständlich variieren die Resultate von Bild zu Bild. Insbesondere für Grafiken, und vor allem für solche mit weniger als 256 Farben, können sich erheblich andere Dateigrößen ergeben. Das ausgewählte Bild dürfte jedoch hinreichend repräsentativ für vieler Arten von Fotografien sein. Einwände gegen diese Aussage bitte auf die Diskussionsseite.

Praktischer Vergleich der drei Formate an einem Motiv

Bearbeiten
     
GIF JPEG PNG
Anmerkungen Bei genauem Hinsehen macht sich hier die Beschränkung auf 256 Farben bemerkbar. Das Bild wirkt durch Dithering grobkörnig. Hier wird bei genauem Hinsehen der Schärfeverlust durch die zu starke verlustbehaftete Komprimierung sichtbar. PNG-Fotos wie dieses sind am schärfsten und naturgetreuesten. Dennoch ist hier PNG nicht sinnvoll, da die Datei bei nur unwesentlichen Qualitätsvorteilen gegenüber JPG erheblich größer ist.

Vergleich von JPG und PNG

Bearbeiten
 
JPG-Version (Q=95) minus PNG-Version von Bild:Chromosom.svg Mit stark erhöhten Kontrasten

Bei Grafiken, die häufig im Gegensatz zu Fotografien harte Kantenübergänge haben, gibt es bei JPG-Bildern das Problem des Gibbsschen Phänomens. Im nebenstehenden Bild hatten vor der Kontrasterhöhung 95,1% aller Pixel eine Helligkeit von 3 (von 255) oder weniger. Einzelne Pixel hatten jedoch Helligkeitswerte bis zu 40.

Abgesehen vom nicht vernachlässigbaren Qualitätsverlust ergibt sich bei der Speicherung von derartigen Bildern als JPG das Problem, dass die Änderung von Bildelementen (z.B. Änderung von Text oder Farbänderungen mit Floodfill) oft nicht oder nur schwer möglich ist. Bei der Verkleinerung der Bilder für die Thumbnails werden JPG-Bilder erneut komprimiert. Hier treten die Komprimierungsartefakte oft noch deutlicher hervor, da die problematischen Bildbereiche (Kantenübergänge) dichter beieinander liegen.

Bearbeiten

PNG-Neukomprimierungstools: