9 Punkte von GN⁺ 2025-06-26 | 2 Kommentare | Auf WhatsApp teilen
  • Das PNG-Dateiformat wurde nach 20 Jahren grundlegend überarbeitet und gewinnt damit seine frühere Bedeutung zurück
  • In die neue Spezifikation fließen zahlreiche moderne Technologien ein, darunter offizielle Unterstützung für HDR, APNG (Animationen) und Exif-Daten
  • Adobe, Apple, Google und weitere große IT-Unternehmen sowie Broadcast-Anbieter haben gemeinsam an der Entwicklung gearbeitet
  • Die aktuelle Spezifikation wird bereits von Chrome, Safari und Photoshop sowie weiteren Programmen unterstützt
  • Weitere Updates sind geplant, darunter bessere Komprimierungstechniken und paralleles Encoding/Decoding

Einleitung: Die Rückkehr von PNG und seine Bedeutung

  • Das PNG-Dateiformat wurde kürzlich nach fast 20 Jahren Stillstand mit einer neuen Spezifikation aktualisiert
  • Bedeutende Institutionen wie die Library of Congress, Library and Archives Canada und das Nationalarchiv Australiens empfehlen PNG als offizielles bevorzugtes Format
  • Mit der neuen Spezifikation gewinnt PNG am Markt wieder an Wettbewerbsfähigkeit und zeigt neue Innovationskraft

Neue Funktionen und Merkmale

Angemessene HDR-Unterstützung und Zukunftskompatibilität

  • Das neue PNG bietet Unterstützung für HDR (High Dynamic Range)
  • Ein Vergleichsbild der Farbräume Rec. 2020 und Rec. 709 zeigt, dass der größere Bereich (das äußere Dreieck) die Farben darstellt, die ein HDR-Bild wiedergeben kann
  • Diese HDR-Informationen benötigen zusätzlich nur 4 Byte (plus den bestehenden PNG-Chunk-Overhead)
  • Chris Lilley und weitere frühe Autoren sowie führende technische Experten waren beteiligt und erläutern die neue Technik klar

Offizielle Anerkennung von APNG (Animated PNG)

  • Animated PNG (APNG), ursprünglich von Mozilla vorgeschlagen und von Firefox unterstützt, wurde ebenfalls in die offizielle Spezifikation aufgenommen
  • Früher wurde es nur von einigen Programmen unterstützt, inzwischen ist es in vielen Anwendungen breit etabliert

Offizielle Unterstützung für Exif-Daten

  • Über Exif lassen sich Metadaten wie Urheberrechtsangaben, Kamerainformationen und GPS-Daten speichern
  • Das ist besonders nützlich für Bildproduktion, Archivierung und Rechteverwaltung

Allgemeine Verbesserungen und Fehlerkorrekturen

  • Auch Fehlerkorrekturen (Errata) und Klarstellungen der bisherigen Spezifikation wurden vorgenommen

Hintergrund und Entwicklungsprozess

  • Die letzte PNG-Spezifikation wurde vor rund 20 Jahren veröffentlicht (dreieinhalb Jahre vor dem iPhone)
  • Die Entwicklung wurde wieder aufgenommen, nachdem die W3C Timed Text Working Group (Standardisierung von Untertiteltechnologien) den Bedarf an HDR-Unterstützung in PNG angesprochen hatte
  • Nach dem Vorschlag beteiligten sich Adobe, Apple, BBC, Google, MovieLabs, W3C und weitere wichtige Technologieorganisationen gemeinsam daran
  • So entstand ein starkes Konsortium, das PNG zu einem Bildformat der nächsten Generation weiterentwickelte
  • Derzeit werden bereits zwei weitere Folge-Updates vorbereitet

Bereits breit im Einsatz

  • Die aktuelle PNG-Spezifikation wird bereits von Chrome, Safari, Firefox, iOS/macOS, Photoshop, DaVinci Resolve und Avid Media Composer sowie vielen weiteren Programmen unterstützt
  • Auch bei Broadcast-Anbietern sowie zugehöriger Hardware und Tooling wird die Unterstützung ausgebaut
  • Broadcast-Grafiken wie Nachrichtenticker und Sportergebnis-Banner sind Beispiele für den Einsatz des neuen HDR-PNG

Ausblick

  • In der nächsten Version soll die HDR- & SDR-Kompatibilität weiter verbessert werden
  • Zusätzlich werden noch bessere Komprimierungsverfahren und paralleles Encoding/Decoding vorangetrieben
  • Die vierte Edition soll ein vergleichsweise kurzes Update werden; anschließend ist auf Basis weiterer Forschung zu Komprimierungstechniken eine fünfte Edition geplant

2 Kommentare

 
carnoxen 2025-06-26

Anfangs wurde APNG von den Gremien mit der Begründung abgelehnt, es sei kein Standard für Bilder, und jetzt wird es endlich anerkannt.

 
GN⁺ 2025-06-26
Hacker-News-Kommentare
  • Gibt sich als Autor zu erkennen und sagt, dass Fragen jederzeit willkommen sind

    • Betont, dass dieses PNG kein völlig neues Format ist, sondern eine aktualisierte Version des bestehenden Formats

    • Weist darauf hin, dass es eine sehr hohe Abwärtskompatibilität bietet

    • Erklärt, dass auch alte Programme neue PNG-Dateien so gut wie möglich lesen können und zum Beispiel weiterhin erkennen, dass es sich um ein Foto eines roten Apfels handelt

    • Fasst die Kernpunkte zusammen, weil es Verwirrung darüber geben könnte, wie PNG intern funktioniert

      • Eine PNG-Datei besteht aus verschiedenen Daten-Chunks
      • Jeder Chunk hat einen Namen, sodass Programme unbekannte oder nicht benötigte Chunks einfach überspringen können
      • Es wird ausdrücklich gesagt, dass es nur genau einen Bildstream gibt
    • Äußert den Wunsch nach Beispieldateien, die die Funktionen der neuen PNG-Spezifikation nutzen, insbesondere nach einer Demo-Seite, auf der man Animationen oder HDR-Bilder direkt herunterladen und die Programmkompatibilität testen kann

    • Sagt, dass er Metaformate und universelles Tooling unterstützt

      • Nennt als Beispiel Strukturen wie Office Open XML oder ePub, die sich allein mit zip- und XML-Bibliotheken parsen lassen
      • Erklärt aus eigener Erfahrung, dass PNG zwar fast eine Struktur ähnlich dem Interchange File Format (im Folgenden IFF) hat, die Spezifikation aber bislang leicht abwich, sodass es unmöglich war, PNG und IFF-basierte Dateien mit einem vollständig universellen IFF-Parser gleichzeitig zu parsen
      • Sagt, dass IFF leicht zu implementieren ist und Stärken bei der Datenkompression hat, bisher aber nur in begrenzten Einsatzgebieten wie alten Spieldaten oder AIFF-/RIFF-Audio verwendet wurde, und sieht die unbefriedigende Kompatibilität zwischen PNG und IFF als einen Grund dafür, dass kein universelles Tooling entstanden ist
      • Hofft, dass PNGv3, falls PNG-Dateien damit offiziell zu IFF-Dateien werden, auf Basis der Verbreitung von PNG ein universelles IFF-Ökosystem erweitern könnte, etwa mit etwas wie libiff, und sich auch für neue Formatdefinitionen nutzen ließe
      • Erwähnt, dass er tatsächlich selbst PNG-/IFF-Parser gebaut hat und dass es nicht einfach ist, PNG nur leicht anzupassen, um IFF-Kompatibilität zu erreichen, während zugleich die Abwärtskompatibilität, insbesondere für Hardware-Parser, erhalten bleiben muss
      • Schlägt vor, die von PNG verwendete abgewandelte IFF-Struktur als neuen Metaformat-Standard (IFF 2.0) gesondert zu dokumentieren
      • Wünscht sich, dass IFF 2.0 offizielle Profile definiert, etwa eines, mit dem PNGv2 kompatibel ist, sowie Profile, die auch IFFv1 wie AIFF/RIFF abdecken, um universelles IFF-Tooling voranzubringen
      • Darüber hinaus könnte in einem neuen Greenfield-Profil für moderne Umgebungen zum Beispiel statt CRC ein moderner Hash für Integritätsprüfungen verwendet werden, ein erweiterter Zeichensatz für Chunk-Namen eingeführt werden oder eine Struktur, die Attributinformationen pro Chunk effizient speichert
      • Solche Strukturen sollten sowohl IFFv1 als auch PNGv2 transkodierbar machen, und er hält eine strategische Deklaration von Profilen, ähnlich wie HTML5 HTML4 und XHTML kombiniert und kompatibel macht, für wünschenswert
      • Betont abschließend, dass der Fokus eher auf den Designzielen lag als auf Details, nämlich darauf, die Fremdheit zwischen altem und neuem Format zu minimieren und das Tool-Ökosystem auszubauen
  • In seinem webbasierten Zeichen-Tool verwendet er den Trick, die JSON-Repräsentation eines Dokuments im Kommentar-Feld eines PNG zu speichern

    • Dadurch kann die gespeicherte Datei direkt auch als Bild verwendet und später wieder in den Editor geladen werden

    • Ein Vorteil ist, dass sich im Download-Ordner nicht unverständliche JSON-Dateien ansammeln

    • Es ist zwar interessant, aber schwer zu erklären, warum die Datei als .png gespeichert wird oder warum die Daten verschwinden, wenn man sie etwa in Paint öffnet und wieder speichert

    • Krita speichert Pinsel-Einstellungen ebenfalls so, was unerwartete Probleme verursachen kann, wenn sehr viele Daten enthalten sind

    • Macromedia Fireworks nutzte schon vor 20 Jahren PNG als Standard-Speicherformat

      • Damals wurde darin natürlich kein JSON gespeichert
    • Viele Frontends für KI-Bildgenerierung verwenden etwas Ähnliches

      • Sie speichern Prompt oder Einstellungen in den Bildkommentaren, sodass sich schon durch das Öffnen des Bildes die Konfiguration wiederherstellen oder wie bei ComfyUI sogar der gesamte Workflow laden lässt
      • Er meint, dass diese Methode in Bildbearbeitungs-Tools tatsächlich recht verbreitet ist
    • Macromedia Fireworks speicherte Fireworks-Dateien in PNG,

      • die Illustrator-(AI)-Datei von Adobe ist in Wirklichkeit ein PDF,
      • und die PSD-Datei von Photoshop kann auch innerhalb eines TIFF gespeichert werden
      • Deshalb sieht man in Photoshop mehrere Ebenen, während andere Software nur eine einzelne Ebene anzeigt
  • Diese Spezifikation ist eher eine ausdrückliche Festschreibung dessen, was bereits breit implementiert ist

    • Selbst wenn man es als nächstes PNG bezeichnet, hätte man es auch PNG2 nennen können, falls dafür neue Decoder nötig sind

    • JPEG-XL erfüllt bereits die Bedingungen, die die meisten sich von einem verlustfreien Codec wünschen

      • Das Problem sind Encoding-/Decoding-Geschwindigkeit und Ressourcenbedarf
    • Der derzeit beste verlustfreie Bild-Codec ist HALIC

    • Im HALIC-Diskussions-Thread heißt es allerdings, dass LEA 0.5 in der Praxis besser sei

    • Ehrlich gesagt habe er JPEG XL eine Zeit lang ignoriert, weil er dachte, es sei nur für „riesige Bilder“ gedacht

    • Er verwendet png in seinem Computer-Vision-Tool zur Bildannotation (XLabel)

      • Klassenlabels werden direkt in den Bildmetadaten gespeichert, sodass keine separaten Textdateien nötig sind
      • Für solche Einsatzzwecke würde er künftig gern ein erweitertes Format schaffen
    • Die verlustfreie Kompression von WebP gehört zwar zur Branchen-Spitze, wird aber trotzdem nicht breit genutzt

      • Das deutet darauf hin, dass nicht die absolute Bestleistung bei verlustfreier Kompression entscheidend ist, sondern eher die Akzeptanz im Ökosystem
    • Probleme bei Encoding- und Decoding-Geschwindigkeit können sich mit der Zeit verbessern

      • Das hat es im jpg-Ökosystem in der Vergangenheit tatsächlich gegeben
  • Dass offiziell Exif-Daten unterstützt werden, ist die beste Nachricht

    • Man konnte zwar schon vorher benutzerdefinierte Daten in den Header schreiben, aber Exif-Unterstützung ist sehr willkommen

    • Nebenbei fragt er sich, ob Exif Felder für Gyroskopdaten (Drehung) oder Beschleunigung (Schwerkraft) hat

      • Bei Fotos aus der Google-Kamera-App fehlen solche Informationen, was später bei automatischer Korrektur oder Panorama-Zusammensetzung oft schade ist
    • Es gibt ein Feld für Beschleunigung (Exif.Photo.Acceleration) und eines für Höhe (Exif.Photo.CameraElevationAngle), 3 Achsen werden aber nicht vollständig unterstützt

      • Es gibt zwar Umweltsensoren bzw. Umgebungsbedingungen, aber nur die spezifischen Punkte, die von den Verfassern der Spezifikation festgelegt wurden
      • Exif.Photo.MakerNote ist ein freier Bereich, in dem Hersteller beliebige Informationen speichern können, und die Größenbeschränkung ist groß genug, um sogar 9-Achsen-Daten unterzubringen
    • Exif kann bei der Bilddarstellung Verwirrung darüber auslösen, wie Rotation behandelt werden soll

      • Alte und neue Decoder können dasselbe Bild je nach Vorhandensein von Exif-Rotation unterschiedlich anzeigen
      • Da es keine konkreten Empfehlungen für Decoder in Bezug auf Exif-Rotation gibt, treten Bugs wie doppelte Rotation häufig auf, etwa wenn Desktop-Umgebung und Bibliothek beide separat rotieren
      • Es gibt nur eine vage Empfehlung nach dem Motto: „Wenn der Decoder nicht gesondert weiß, ob den Exif-Daten zu vertrauen ist, sollten die Exif-Daten nur als historische Aufzeichnung betrachtet werden“
      • Für vollständige Abwärtskompatibilität hält er eine klare Anweisung wie „niemals rotieren“ für notwendig
    • Es gibt kein standardisiertes Feld, um Daten vom Beschleunigungssensor oder Trägheitsnavigationssystem einer Kamera zu speichern

    • Tatsächlich entfernen viele Websites beim Upload den Großteil der Exif-Daten

      • Der Grund ist, dass manche Felder für Datenschutzverletzungen oder Standortverfolgung missbraucht werden könnten
    • Persönlich wünscht er sich, dass statt Exif eher XMP verwendet wird

      • Exif ist strukturell seltsam und läuft im Kern darauf hinaus, ein TIFF-Bild in ein PNG einzubetten
  • Diese PNG-Spezifikation schreibt offiziell fest, was bereits breit praktiziert wird

    • Der beste Codec muss überall funktionieren, in jeder App, in OS-Shells oder APIs, unter Linux usw.

    • Formate wie HEIC oder AV1 lassen sich ohne Unterstützung auf Betriebssystemebene kaum einmal in der Vorschau ansehen

    • Ein Format, das nicht richtig verbreitet ist, sollte nicht zum Plattform-Standard werden

    • Er arbeitet mit vielen Bildformaten, einschließlich seltener Formate, die nur in bestimmten Fachbereichen verwendet werden

      • Unterschiedliche Formate wirklich zu unterstützen, ist eine enorme Herausforderung
      • Bibliotheken schreiben oberflächlich vielleicht, sie unterstützten jpg/tif/heic, aber ob sie dann auch ohne Probleme etwa 30-GB-jpeg-Dateien oder sämtliche Metadaten beherrschen, ist eine andere Frage
    • Diese neue Spezifikation könnte sogar verwirrender sein als HEIC oder AV1

      • Man kann vor dem Öffnen der Datei überhaupt nicht wissen, welcher Codec in dem PNG steckt
  • Zum ersten Mal sieht er, dass HDR nicht eindeutig im Sinn von erweitertem Helligkeits- und Kontrastumfang verwendet wird, sondern im Sinn eines „größeren Farbraums“

  • Er fragt sich, ob es nicht schon zu spät ist

    • Und JPEG XL bietet bereits alle Funktionen wie verlustbehaftete/verlustfreie Kompression, Animation, HDR, Exif usw. sowie fortgeschrittene Kompressionstechniken wie Finite-State Entropy und ZStandard

    • Eine separate Aktualisierung von PNG sei nicht nötig, man solle einfach JPEG XL verwenden

    • Die Realität ist jedoch, dass „man muss es nur übernehmen“ eben nicht funktioniert

      • Browser-Unterstützung für JPEG XL: Nach 5 Jahren unterstützt es immer noch nur ein einziger Browser
      • Wenn Browser-Anbieter es nicht implementieren, können Entwickler und Nutzer neue Formate in der Praxis nicht einsetzen
    • Zur Erwähnung von „fortgeschrittenen Kompressionstechniken (ZStandard usw.)“

      • ZStandard ist für die Kompression von Zahlen mit gleichmäßigen Änderungen, etwa Gradienten, eher nicht gut geeignet
      • Bzip2 ist in dieser Hinsicht besser und eignet sich eher, wenn wie im Beispiel zwei Variablen, innere und äußere Wiederholung, Farbkanälen entsprechen
      • Reale Daten sind wegen Rauschen nicht so einfach, aber solche Algorithmusvergleiche weichen trotzdem oft von der Praxis ab
    • „PNG muss nicht aktualisiert werden, man sollte einfach JPEG XL übernehmen“

      • Dann müsse man wohl mit Google reden
      • Tatsächlich hat Google die Unterstützung für JPEG XL in Chrome aufgegeben (zugehöriges Issue), wodurch die Ausbreitung des Ökosystems blockiert wurde
    • Er versteht nicht, warum noch ein weiterer Standard bzw. eine weitere Variante geschaffen wird

      • Es sei ohnehin schon verwirrend genug, und trotzdem entstünden immer neue Standards ohne erkennbares Alleinstellungsmerkmal
  • Jetzt könnte man GIF durch APNG ersetzen, also mit Alpha-Blending, transparentem Hintergrund und verlustfreier Kompression, und damit könnte die Web-Ästhetik der 2000er zurückkehren

    • Er fragt sich, ob es auch einen Standard für Animated SVG gibt

      • Früher habe er schon JavaScript-basiertes SVG gesehen, etwa für Chatbot-Avatare, wisse aber nicht, ob es dafür ein Standard-Framework gibt
    • Animated SVG gibt es

      • Wichtige SVG-Animationselemente sind set, animate, animateTransform, animateMotion
      • Weitere Erklärung: Material zu SVG-Animation
    • Soweit er weiß, werden heute statt GIFs oft stumme Videos wie mp4 verwendet, weil sie besser komprimiert sind

      • Er fragt sich, ob Animated PNG gegenüber Videoformaten wie AV1 konkurrenzfähig ist
    • Die meisten Dienste, die GIF-Uploads unterstützen, haben fast überhaupt keine Unterstützung für APNG oder animated WEBP

      • Die Backend-Unterstützung ist praktisch null, was sehr frustrierend ist
    • Wenn man kurze Videos in animierte Grafiken umwandelt, war WEBP ohnehin besser als APNG

      • Wenn GIF als Zwischenformat verwendet wird, ist APNG immerhin konkurrenzfähig
      • Heute ist AVIF die beste Wahl
    • Vor einigen Jahren hat er die Lottie-(Bodymovin)-Bibliothek verwendet

      • Animationen wurden in Adobe After Effects erstellt, dann als svg und json exportiert und mit lottie JS einfach im Web eingesetzt
      • Er hatte das Gefühl, dass es bei Vektor-Webanimationen an guten Tools und guter DX (Developer Experience) fehlt
      • Er würde auch gern mehr über Tools und DX rund um animated PNG erfahren
  • Unter den Behauptungen im PR, „viele Programme unterstützen die neue PNG-Spezifikation bereits“,

    • ist die Aussage, dass Photoshop APNG unterstützt, falsch

      • Obwohl die APNG-Erkennung als zweiter Punkt unter „What's new“ stand, war er enttäuscht, dass Photoshop es in Wirklichkeit nicht unterstützt
    • Photoshop unterstützt den HDR-Teil, aber nicht den APNG-Teil

  • Jemand erwähnt, dass Menschen Unsicherheit bei Zeit- und Datumsangaben softwareseitig konsistent verwalten können sollten

    • Es brauche eine Möglichkeit, vage Zeitinformationen wie „Foto 2025 gescannt, Inhalt um Ostern, irgendwann zwischen 1920 und 1940“ zu verwalten

    • In EXIF gibt es das Feld DateTimeDigitized

    • In Google Fotos und Apple Fotos kann man ein Datum direkt festlegen, es wird aber tatsächlich nicht in EXIF gespeichert

      • Beim Wechsel auf eine andere Plattform geht bei Bildern ohne EXIF dadurch auch die Datumsinformation verloren