Hallo zusammen,
mal eine Perspektive aus Entwicklerseite.
Ich muss mich mehr oder weniger mit allen kameratauglichen Formaten auseinandersetzen, da ich den Anspruch habe, Metadaten verlustfrei zu bearbeiten und zu speichern. (Kommt aus den Anfängertagen von Exif, als Picture Publisher es schaffte, eine Motorola Signatur in Intel kodierte Exif-Daten zu schreiben und überhaupt kaum ein Programm Exif schreiben konnte. Oder MS versuchte, mit MSOffset die MakerNotes einen Versatz in Exifs zu geben, aber beim 2. Mal den alten Offset nicht berücksichtigte!(Inzwischen korrigiert!)) Übrigens ging das bei TIFFs von Olympus schief, weil dessen MakerNotes Version 2 auch Daten außerhalb der MakerNotes in den Tiff-Raum schrieb. Aber das sind andere Geschichtem.
Die Bilder-Kernformate waren stets das Tiff-Kontainer-Format(TIFF Baseline 6, Exif-Tiff, EP-Tiff(Manche RAW-Files sind EP-Tiff), BigTiff, Exif-Metadaten, die meisten RAW-Formate, DNG) und JPEG in allen Variationen (JFIF 1-1.02, EXIF-JPEG, MPO(Pano, Stereo, Blickwinkel oder offene Bildersammlung), 2 weitere Stereo Formate (Stereo Still Image, JPEG Stereo(JPS)). Ausnahme: "PC-Steinzeit" BMP (auch diverse und aktuelle Formate. Wird auch Windows intern als DIBs verwendet), Kodak Photo CD, PCX, GIF(256 Farben) und eines der Universal-Formate: PNG
Dann kam JPEG 2000 (Apple QuickTime als Vorläufer von ISO BMFF-Container-Format) und JPEG XR (TIFF-Struktur und neu auch ISO BMFF Format). JPEG 2000 kam nicht in die Gänge. Schnelle Bibliotheken verwendeten lizenzbehaftete Codecs, die Open Source Bibliotheken waren schnarch langsam. Folge: Konnte sich nicht durchsetzen.
Dann kamen die Video-Container-Formate für Einzelbilder auf Basis ISO-BMFF-Container, WebP , Canon CR3, JPEG XL und natürlich HEIF.
JPEG XR, Tiff, PNG und WebP können auch Transparenz, wenn nötig. WebP wie HEIF auch Video-Sequenzen.
Ich habe mich vor Jahren für JPEG XR für schnellen Zugriff auf den Hauptrechner für kleinere Dateien entschieden. Vollständige Integration inkl. Suche in Windows.
Unterstützt wirklich alle Standard-Metadatenformate: Exif, IPTC/IIM, XMP. Backups laufen nach wie vor auf JPEG.
WebP kann wie JPEG XL und HEIF kein IPTC/IIM (Schnellerer Zugriff durch klare Anweisungen anstatt Text-Interpretation über XMP mit all seinen Varianten...) Zumindest nicht nativ. Auch können diese Formate nur über Exif Desktop Publishing Werte (DPI) übernehmen. Und ja, ich brauche das, wenn ich Bilder nativ integriere. Ich will nicht regelmäßig über "mehrere Meter" große Bilder auf Zielgröße zuziehen. Zudem wird oft nach den vorgegebenen DPI aufgerastert. Auch in Vektorprogrammen. Die neuen Formate werden alle nicht unterstützt... Das zum Thema Akzeptanz.
Alle Formate wachsen und fallen mit der Unterstützung von Standard-Bibliotheken für Entwickler. Auf der Windows-Seite wird viel mit GDI+ und WIC erledigt. Spezialanwendungen greifen oft auf OpenSource-Bibliotheken wie IJG (Independent JPEG Group) LIB in diversen Varianten, TIFF LIB, PNG LIB, LIBRaw, Google WebP Lib, ISOBMFF Lib, LibDE265 und LibHeif als Beispiele. Aber... in jede Fremd-Bibliothek muss man sich einarbeiten, manchmal sie sogar anpassen. Kommt so was wie Exif 3.0 mit neuen Datentypen, hängt man in den Seilen mit der Tiff-Lib. (Eines der Gründe, warum ich, so oft ich kann, auf eigene Bibliotheken zurück greife. Die kenn ich auch nach Jahren noch so intensiv, dass einigermaßen schnell eine Anpassung erfolgen kann. Was ich an Coding der Codecs nicht verstehe, hole ich mir von diversen Libs, sonst werde ich wahnsinnig..., und konzentriere mich auf dann da auf die korrekte Struktur der Files, nicht auf den Codec selbst.) Man glaubt es nicht, aber trotz teilweiser strikter Beschreibungen gibt es eine Vielzahl Programme, die fehlerhaft die Dateien schreiben. Die fehlerhaften Dateien muss man auch lesen können, sonst hagelt es Abstürze. Und die fehlerhaften Dateien schreiben nicht nur kleine Software-Schmieden sondern auch große Software-Häuser.
GDI+ unterstützt seit neuestem HEIF, aber nicht das MS eigene und auch ISO zertifizierte universelle JPEG XR-Format (Kann wirklich im Gegensatz zu HEIF alle bekannten Pixelformate). Es kann auch nicht das neue JPEG XL. WIC kann mit Bezahlung von 99 Ct. das HEIF Format. (Das Bildformat ist eigentlich kostenlos, nur für Video-Codec müsste man zahlen, aber .... na ja. Bei Win 11 soll's besser laufen). Zudem gibt es für den Codec inzwischen Hardware-Unterstützung wegen TV und Videos bei neueren Grafikkarten.
Das spricht dafür, dass HEIF eine breitere Unterstützung bekommt, als viele andere "neuen JPEG-Formate" zuvor. Auch einige Kamera-Hersteller greifen auf den HEIF-Codec zurück. Warum eine Bibliothek, die man für kleine/große Video-Dateien nützt, nicht auch für Bilder verwenden? (Auch wenn mich das Format gerade in den Wahnsinn treibt, liegt aber zum Teil an ISO-BMFF. Schön genormt, aber man kommt an die Papers nur mit Kohle oder durch Leaks. Ich habe 4 verschiedene Image-Muster und jedes wird anders geschrieben, teilweise ohne sich an ISO-Vorgaben zu halten.... Ohne Original ISO-BMFF Struktur-Beschreibung großer MIST mit Reverse Engineering).
Nachteil: Wieder nur Exif und XMP. IPTC/IIM kann privat implementiert werden, wie bei PNG, WebP, JPEG XL und diverse andere. Aber leider können das dann andere Programme meist nicht lesen. Das "Deprecated Siegel ist von IPTC/IIM wieder entfernt worden. Gab nach Jahrzehnten sogar ein Versionsupdate)
Übrigens: HEIF ist nicht das erste Format, dass mehrere Bilder bzw. auch strukturierte Bilderansammlungen speichern kann: TIFF, PSD, MPO und andere proprietäre Bildformate können mehrere zusammenhängende oder unabhängige Bilder speichern. Somit auch Stacks.
Zugegeben ist MPO etwas tricky, da der Zeiger auf das nächste Bild geschrieben werden muss; genau auf das Ende des Vorgängerbildes, lange bevor man soweit ist. Aber das kennt man eh von komplizierteren Tiff-Files und deren Abkömmlingen. Also 2-Pass Verfahren oder Speicherstellen merken und schreiben, wenn die Adresse bekannt ist (Geht nicht bei Vorwärts-Streams, nur bei Random Access).
Und wer jetzt glaubt, die Video-Kontainer sind einfacher: Nein, es gibt dort auch Dateioffsets mit 8-Byte Long-Zeiger. Definitiv komplizierter als Tiff oder JPEG, weil viel zu viele Nebenschauplätze, die alle formatabhängig(!) berücksichtigt werden müssen. Das ist auch einer der Gründe, warum das Format keiner anfassen mag, der nicht unbedingt muss. Kameras haben es da einfacher. Die müssen einfach ihre Vorlagen füllen und nicht wie Software jeden Schei... interpretieren können.
Just my 2 Cents zu dem Thema.
Schönen Gruß
Werner