Ok, natürlich war mir klar, daß das PNG-Format nicht gerade optimal komprimiert. Ich habe es aber ungeachtet dessen trotzdem verwendet, um Einzel-Frames oder auch ganze Sequenzen von Bildern zu rendern. Nun habe ich gestern abend im Blender-Meetup eine Hinweis auf den Artikel „Why you should not use PNG files for image sequences“ entdeckt und ihn mir durchgelesen. Darin ist die Rede davon, daß als PNG gerenderte Bild-Sequenzen bis zu 20 mal (!) langsamer rendern als TIFFs oder EXRs. Das ist natürlich schon ein Argument, weshalb ich jetzt auf TIFF umgestellt habe, das es auch mit optionaler LZW-Kompression (LZW steht für Lempel-Ziv-Welch) gibt.
Schlagwort: PNG
LZW-Kompression
In der Online-Ausgabe der „Encyclopedia of Graphics File Formats“ von Murray/van Ryper habe ich einen längeren Artikel zur LZW-Kompression entdeckt. Dieser verlustfreie Kompressions-Algorithmus – „LZW“ steht dabei für Lempel-Ziv-Welch – wurde ursprünglich von Jacob Ziv und Abraham Lempel entwickelt und später von Terry Welch modifiziert. Dieser patentgeschützte Algorithmus war ein Grund für die Entwicklung des PNG-Formats.
Weiterführender Link: Eine ausführliche Geschichte des PNG-Formats (gesprochen: ping!).
PNG8 und PNG24

Voriges Jahr bin ich beim Surfen auf eine Berliner Website gestoßen, in der jemand – der Kontext waren Grafikformate fürs Web – den Begriff PNG24 benutzt und den Eindruck erweckt hat, als ob PNG lediglich 24-bit unterstützen würde, was ja nicht stimmt. Nun habe ich heute auf der PNG Homepage in der FAQ einen Artikel entdeckt, der das Mysterium aufklärt.
Weiterführender Link: Mein Beitrag „PNG-Unterformate“.
PNG und JPG

Aus reiner Bequemlichkeit lade ich nicht nur Screenshots, sondern auch Fotos überwiegend als PNGs hier ins Blog hoch. Dabei sind PNG-Dateien teilweise im Vergleich zu JPGs bis zu zehnmal (!) größer. Umgekehrt erlebe ich – wenn auch nicht bei mir – den Fall, daß Bilder, die besser als indiziertes PNG abgespeichert würden, als JPGs zur Verfügung stehen – ergo viel zu groß sind. Dahinter steckt wohl, daß die Betreffenden nicht genügend über diese beiden Formate wissen. Während das Gros der verfügbaren Grafikprogramme lediglich die gebräuchlichen Standard-Features des PNG-Formats unterstützt, bietet beispielsweise ImageMagick die Option an, auf die fünf Kompressionsfilter von PNG (none
, sub
, up
, average
und paeth
) zuzugreifen, was – je nach Bilddaten – die Dateigröße nochmal verkleinern kann.
Die Features beider Formate in kurzer Übersicht:
JPEG:
Eignet sich aufgrund der verlustbehafteten Kompression am besten für Fotos. Max. Farbtiefe: 24 bit, das sind etwas über 16,7 Millionen Farben. Als JPG abgespeicherte Bilder können auch – optional – progressiv aufgebaut werden – ein Feature, das aber eher früher Sinn machte, als man/frau noch mit 56k-Modems im Internet unterwegs war. „Progressiv“ bedeutet, daß zuerst eine niedrig-auflösende Version aufgebaut wird, bis das Bild vollständig geladen ist. In JPG-Dateien können auch Text-Kommentare wie Copyright-Vermerke oder auch verwendete Software abgespeichert werden. Ebenfalls unterstützt wird das sogenannte sub-sampling, bei dem das Bild in Blöcke zu je vier Pixeln aufgeteilt wird. Bei einem sub-sampling von 4:4:4 wird die gesamte Bildinformation gespeichert, bei 4:2:2 und 4:1:1 wird, soviel ich weiß, die Helligkeitskomponente voll abgespeichert, während für die Farbinfomationen für jeden Viererblock ein Durchschnittswert gebildet wird.
PNG:
PNG (Portable Network Graphics; gesprochen: ping) unterstützt max. 64 bit – d. h. insgesamt 18,45 Trillionen (!) Farben – RGBA, was auf normalen Monitoren gar nicht mehr darstellbar ist, und eignet sich eher für Bilder mit größeren Farbflächen, z. B. Screenshots oder Logos. Die Kompression erfolgt verlustfrei mit einem LZ77-Algorithmus. Wie weiter oben bereits erwähnt, sind in PNG darüber hinaus fünf Kompressionsfilter implementiert. Ein Feature von PNG ist die Transparenz, wobei im Gegensatz zu GIF bei indizierten PNGs 256 Transparenzstufen unterstützt werden, während bei GIF ein Pixel entweder nur transparent oder nur deckend sein kann. Indizierte PNGs mit Farbpalette können besser als vergleichbare GIFs komprimieren; die Farbtiefe reicht hier von 256 Farben auf der einen bis zu zwei Farben auf der anderen Seite. Bei nicht-indizierten PNGs wird ein bis zu 16-bit großer Alpha-Kanal unterstützt.
Weiterführender Link:
Eine ausführliche Geschichte von PNG (englisch), zu finden auf der PNG Homepage.
Intuitives Arbeiten

Wie bei allem – so denke ich jedenfalls – kommt intuitives Arbeiten in erster Linie durch Übung. Ich mache jetzt ja schon seit mindestens 1996 Grafik; mit Webdesign bzw. HTML habe ich dann ein Jahr später angefangen. Da ich schon als Kind gemalt habe, war die Einarbeitung in Computergrafik für mich nicht schwer. Trotzdem bin ich – im Rückblick – erstaunt, wie mühelos ich 1996 den Einstieg in die Grafiksoftware gefunden habe, die ich – das war bei debis Systemhaus in Fellbach, wo ich Technische Dokumentation von Router-Netzwerken gemacht habe – damals benutzt habe. An Programmen hatte ich die damalige Version von Visio installiert; darüber hinaus hatte ich den „Designer“ von Micrografx, mit dem ich vor allem Präsentationsfolien erstellt habe, und zum Konvertieren von Visio in GIF – PNG gabe es damals noch nicht – hatte ich Paint Shop Pro, der 1996 noch von JASC entwickelt und vertrieben wurde.

Um 1998 – ich benutzte damals noch Windows 95 – habe ich mir die Corel SelectEdition gekauft, zu der u. a. Corel PHOTO-PAINT gehörte, und – nachdem ich mir zu Lernzwecken eine Demo-Version des damaligen Photohshop installiert hatte – 2002 habe ich schließlich mit dem Gimp angefangen, den ich bis heute – und gern – benutze.
Ich würde hier zu gerne ein paar Sachen posten, die ich damals – besonders in meiner Windows-Zeit – gemacht habe, allerdings habe ich die betreffenden Disketten 2016, als ich nach Ludwigsburg umgezogen bin, weggeworfen (und welcher PC hat denn heute noch ein Diskettenlaufwerk?).
Eine Grafik habe ich noch im Internet Archive gefunden; es handelt sich dabei um ein Logo, das ich um 2002 für das auf Java basierende Projekt „Neurogrid“ entworfen habe:

Mehr zu diesem Projekt könnt ihr auch in folgendem Beitrag nachlesen.
11:21 Uhr
War gerade einkaufen und beim Trölsch frühstücken. Obwohl ich dort seit Jahren Stammkunde bin, sind die Bedienungen nicht besonders freundlich. Draußen die eine Bettlerin, wie ihre Kollegin auf der gegenüberliegenden Straßenseite mit nackten Füßen.
Habe – erst mal für mich – eine Übersicht über die von CinePaint unterstützten Dateiformate (ich zähle 23) geschrieben, bin aber noch nicht fertig. Neben den gebräuchlichen Formaten wie PNG, TIFF oder JPG sind auch Kodak Cineon bzw. DPX – was im Prinzip fast dasselbe ist – sowie FITS, ein Dateiformat, das von der NASA verwendet wird, darunter. Ich dachte eben, so eine Übersicht könnte für den einen oder anderen nützlich sein.
PNG-Logo (5)
Erhielt folgenden Render des PNG-Logos von Greg Roelofs, einem der PNG-Entwickler:

Renderer: POV-Ray. Der PNG-Schriftzug ist besser als mein Versuch; auch ist der Alpha-Kanal besser:

Na ja, es hat jedenfalls Spaß gemacht, das PNG-Logo nachzubauen.
PNG-Logo (4)
Hier das fertige PNG-Logo. Ich habe die Transparenz des Schriftzuges noch etwas verstärkt und die großen Kugeln etwas kleiner gemacht. Mit dem Gimp habe ich ein paar kleine weiße „Blitzlicher“ im Schriftzug entfernt, da ich sie mit Modifizierung der Render-Einstellungen nicht wegbekommen habe.

Und hier der Alpha-Kanal. Schwarz ist transparent, weiß deckend und grau ist teiltransparent:

PNG-Logo (3)
Hier das soweit erst mal fertige PNG-Logo mit Apha-Kanal:

Und hier noch mit Schlagschatten, damit der Kontrast zwischen dem weißen Hintergrund und dem Logo nicht zu groß ist:

PNG-Logo (2)
Da ich die POV-Ray-Szene des PNG-Logos nicht so modfizieren konnte, dass der Hintergrund transparent wird (ich kenne mich in POV-Ray praktisch nicht aus), habe ich beschlossen, dieses Logo in Blender nachzubauen. Hier ein erster Test-Render:

Und: Eine geshadete Version:

Zum Vergleich hier nochmal das Original-Logo:

To-do:
- Den PNG-Schriftzug a) heller und b) transparenter machen. √
- Die Perspektive der Kamera korrigieren.
- Die Kugeln a) in der Größe variieren und b) farbig und metallisch machen.