Exif-Metadaten – ein guter Ansatz mit kleinen Fehlern
Ich wollte immer schon mal darüber vom Leder ziehen, was mich am Exif-Standard ärgert, und jetzt ist es so weit. Die von Digitalkameras mit jedem Bild gespeicherten Exif-Metadaten sind ja höchst praktisch, aber sie wären noch nützlicher, wenn es in diesem Industriestandard nicht so viel Murks gäbe.
Der Industriestandard Exif (kurz für „Exchangeable image file format for digital still cameras“) ist nunmehr 22 Jahre alt. Zusammen mit dem DCF-Standard („Design rule for camera file system“) beschreibt er, wie die von Digitalkameras erzeugten Bilddateien aufgebaut sein sollen und wie sie auf Speicherkarten gespeichert werden. Der Exif-Metadaten-Standard wird seit der Version 1.00 aus dem Jahre 1995 stetig weiterentwickelt, ursprünglich allein von der Japan Electronics and Information Technology Industries Association (JEITA), inzwischen gemeinsam mit der Camera & Imaging Products Association (CIPA). Aktuell ist Version 2.31, eingeführt im Juli 2016.
Wenn vom Exif-Standard die Rede ist, geht es meistens um Metadaten, aber der Standard beschreibt auch den Aufbau der gesamten Datei, die neben den eigentlichen Bilddaten und den Metadaten auch noch Vorschaubilder und andere Komponenten enthalten kann. Ihre Grundstruktur ist dem sehr flexiblen TIFF-Standard entlehnt, weshalb die von Digitalkameras erzeugten JPEG-Dateien eigentlich Exif-Dateien und technisch gesehen TIFF-Dateien sind – was übrigens auch für Raw-Dateien gilt.
Dank der Speicherung von Metadaten sowie den Belichtungswerten, der verwendeten Kamera, des Objektivs sowie dessen Brennweite und dem Datum und der Uhrzeit der Aufnahme lassen sich die Fotos später sortieren, man kann Statistiken erstellen, etwa über die Häufigkeit von Aufnahmen mit verschiedenen Brennweiten, und natürlich eignen sich die Metadaten, um herauszufinden, warum ein Foto so und nicht anders ausgefallen ist. Da Exif ein Standard ist – zwar nur ein japanischer Industriestandard, an den sich aber auch Hersteller aus anderen Ländern halten –, funktioniert das herstellerübergreifend mit allen Kameramodellen. Die Standardisierung hat aber auch einen Nachteil: Die Hersteller befolgen notgedrungen alle Teile der Spezifikation, und wenn es hier einen Missstand gibt, müssen alle warten, bis sich der Exif-Metadaten-Standard ändert – und das kann lange dauern.
Beispielsweise gab es bis zu der vor wenigen Monaten eingeführten Version 2.31 ein Problem mit allen Zeitangaben. Die Aufnahmezeit konnte zwar sekundengenau angegeben werden, aber weder als koordinierte Weltzeit (UTC) noch als Ortszeit mit der jeweiligen Zeitzone. Gespeichert wurde 21 Jahre lang nur die Ortszeit, so dass die Aufnahmedaten von den an verschiedenen Gegenden der Welt entstandenen Fotos nicht vergleichbar waren. Wenn man seine Aufnahmen zum Zwecke des Geocodings mit den Daten eines GPS-Loggers abgleichen will, gibt es daher Probleme, denn das GPS-Log enthält UTC-Zeitstempel, die Exif-Daten der Aufnahmen aber nur die Ortszeit. Erst wenn man beispielsweise in Lightroom die Zeitdifferenz zwischen Greenwich und dem Aufnahmeort angegeben hat, gelingt die Zuordnung von Bilddateien und Aufnahmeorten. Das ist um so ärgerlicher, als man im Kameramenü ja die Zeitzone angeben kann. Die fehlende Information ist vorhanden, konnte aber nicht gespeichert werden. Mit der aktuellen Exif-Version ist das nun möglich, aber nur die allerneuesten Kameramodelle unterstützen diese; Besitzer älterer Kameras müssen darauf hoffen, dass deren Hersteller Firmware-Updates herausbringen.
Version 2.31 löst keineswegs alle Probleme. Beispielsweise ist für Textdaten der ASCII-Zeichensatz vorgegeben – ein 7-Bit-Zeichensatz, in dessen Name „A“ für „American“ steht und der daher nur für Englisch und Latein ausreicht. Alle anderen Sprachen benötigen Zeichen, die in ASCII nicht enthalten sind. Dafür gibt es archaische Codes wie den vertikalen Tabulator, die noch aus der Fernschreiberzeit stammen. Nicht einmal ein achtes Bit ist vorgesehen, womit man Latin-1 oder eine der anderen ASCII-Erweiterungen nutzen könnte.
Diese Beschränkung macht sich zum Beispiel bei Feldern wie „Artist“ und „Copyright“ bemerkbar. Viele Kameras erlauben es, den eigenen Namen und den Text eines Copyright-Vermerks im Menü einzugeben, die dann in die Exif-Daten jeder Bilddatei geschrieben werden. Mir nützt das nichts, denn mein Name enthält ein „ß“, das im ASCII-Code nicht enthalten ist. Wenn ich als Kompromiss „Michael J. Hussmann“ eintrage und die Bilder später in meine Bilddatenbank importiere, taucht dort ein neuer Fotograf „Michael J. Hussmann“ auf – neben dem schon vorhandenen „Michael J. Hußmann“. Da ich dieses Feld also sowieso korrigieren muss, ist es einfacher, meinen Namen gar nicht erst im Kameramenü einzutragen. Im Deutschen sind nur das „ß“ und die Umlaute von der Beschränkung auf ASCII betroffen. Es ist aber schon kurios, dass ein japanischer Industriestandard keine Möglichkeit vorsieht, japanische Namen zu verwenden.
Hierfür gäbe es schon seit Jahren eine elegante Lösung. Man müsste nur den Zeichensatz austauschen und statt ASCII die Unicode-Variante UTF-8 vorgeben, wie sie auch die überwiegende Mehrzahl aller Websites weltweit verwendet. Damit stünden praktisch alle Zeichen zur Verfügung, die man irgendwo auf der Welt braucht. Der Japaner würde damit ebenso glücklich wie der Russe oder Chinese, der Araber oder Israeli – oder ich, was das betrifft. Mit UTF-8 statt ASCII bliebe die Rückwärtskompatibilität gewahrt, denn alle in ASCII enthaltenen Zeichen haben in UTF-8 den exakt gleichen Code. Man kann also die ASCII-Texte in vorhandenen Dateien als UTF-8 interpretieren und das Ergebnis wäre dasselbe. Wenn umgekehrt eine ältere Software die Exif-Daten einer neueren Datei liest, in der man von den erweiterten Möglichkeiten von UTF-8 Gebrauch gemacht hat, würden zwar komische Zeichen in den Texten auftauchen – aber schlimmer als die jetzige Situation, in der man Zeichen jenseits von ASCII gar nicht verwenden kann, wäre das auch nicht. Weiß der Himmel, warum JEITA und CIPA diesen Schritt bis heute scheuen.
Im Kameramenü kann man meist den Farbraum von JPEG-Bildern auswählen (für Raw-Dateien hat diese Einstellung keine Bedeutung, die eingebettete JPEG-Vorschau einmal ausgenommen). Hier stehen mindestens sRGB und Adobe RGB zur Wahl, manchmal auch Farbräume mit noch größerem Gamut wie eciRGB oder ProPhoto RGB. Der Exif-Standard stellt ein Feld „ColorSpace“ für diese Auswahl bereit, nur ist es gänzlich nutzlos. Hier sind nämlich nur zwei mögliche Werte spezifiziert, von denen einer für sRGB und der andere für „unkalibriert“ steht. Es läuft also auf sRGB oder gar nichts hinaus. Beim DCF-Standard ist man auf eine Behelfslösung verfallen: Wenn der Name einer Bilddatei mit einem Unterstrich beginnt, ist deren Farbraum Adobe RGB, andernfalls sRGB. Für andere Farbräume gibt es keine Lösung. Leider sind die Dateinamen wie einst unter MS-DOS auf acht Zeichen plus drei Zeichen für die Dateiendung beschränkt; mit dem Unterstrich im Dateinamen bleiben also nur noch sieben Zeichen, von denen vier für die Bildnummer reserviert sind. Notlösungen wie der Unterstrich wären unnötig, wenn der Exif-Standard eine vernünftige Auswahl von Farbräumen anbieten würde.
Das Feld „MaxApertureValue“ gibt die Lichtstärke des Objektivs an. Wer sich für knapp 10.000 Euro ein Leica Noctilux-M 0,95/50mm ASPH. gekauft hat, muss enttäuscht feststellen, dass sich dessen extrem hohe Lichtstärke von 1:0,95 nicht in die Exif-Daten eintragen lässt. Der Standard schreibt für „MaxApertureValue“ eine logarithmische Angabe vor, und diese müsste für Werte unter 1,0 negativ sein; die Exif-Spezifikation erlaubt aber nur positive Werte. Für den Blendenwert gibt es gleich zwei Felder, ein logarithmisches („ApertureValue“) und ein lineares („FNumber“), aber zu „MaxApertureValue“ fehlt eine lineare Alternative, die auch das Noctilux und ähnlich lichtstarke Objektive unterstützen könnte.
Und so geht es mit dem Exif-Metadaten-Standard weiter. Unter „ExposureProgram“ kann man den Modus der Belichtungssteuerung eintragen. Neben „P“, „A“, „S“ und „M“ sind vier Motivprogramme vorgesehen – „Kreativ“, „Action“, „Porträt“ und „Landschaft“. Aktuelle Kameramodelle haben oft 20 oder mehr Motivprogramme, nur lassen sie sich nicht eintragen. Man könnte die Spezifikation um die meist verwendeten Programme erweitern oder neben dem hier vorgesehenen Zahlencode ein freies Textfeld vorsehen, in dem die Kamera den Namen des Motivprogramms speichert, aber es bleibt bei den vier vorgegebenen Programmen, womit die Nützlichkeit dieser Angabe stark eingeschränkt ist.
Die Einstellungen von Kontrast, Sättigung und Schärfe lassen sich speichern, doch sind hier nur jeweils drei Werte für normal, stärker und schwächer vorgesehen. Heutzutage kann man diese Werte oft feiner einstellen, nur nicht in den Feldern des Exif-Standards.
Version 2.31 wartet dafür mit Erweiterungen auf, die niemand braucht – eine Angabe der Luftfeuchtigkeit etwa, die von praktisch keiner Kamera überhaupt gemessen wird, dazu der Luftdruck und die Beschleunigung. Auch eine Angabe des Kippwinkels bei der Aufnahme ist möglich, aber falls die Kamera eine elektronische Wasserwaage mit zwei Achsen hat, kann der zweite Winkel nicht angegeben werden. Ein klares Konzept des Exif-Metadaten-Standards lassen diese Erweiterungen vermissen, und da die Erweiterungen im stillen Kämmerlein geplant werden, ist es schwer, hierauf Einfluss zu nehmen oder gar den Weiterentwicklungsprozess zu beschleunigen.
»Wenn ich als Kompromiss „Michael J. Hussmann“ eintrage und die Bilder später in meine Bilddatenbank importiere, taucht dort ein neuer Fotograf „Michael J. Hussmann“ auf …«
Das ist weder falsch noch besonders überraschend.
Das geschilderte Problem findet man sehr häufig. Wenn es eine Norm gibt, halten sich die meisten Hersteller nicht daran, gibt es ein mehr oder weniger marktbeherrschende Firma, so hängen sich andere Firmen an, es entwickelt sich ein sogenannter Industriestandard. So einer ist entweder anders als die Norm oder erweitert diese, so dass die Norm gerade mal der kleinste gemeinsame Nenner ist.
Es ist zwar gut, solche Zustände, man kann sie auch Missstände nennen, aufzuzeigen, doch es ist eine brotlose Kunst. Das gilt ja in viel größerem Ausmaß dann, wenn man Geräte miteinander verbinden will, was ja selbst bei so gängigen Schnittstellen wie USB (2 und 3) oft nicht so problemlos wie erwartet funktioniert.