Ultra HDR-Bildformat (Version 1.0)

Einführung

In diesem Dokument wird das Verhalten eines neuen Dateiformats definiert, das ein Abbildung zur Verstärkung des logarithmischen Bereichs in einer JPEG-Bilddatei Ältere Leser, die keine unterstützen das neue Format, lesen und zeigen die herkömmlichen niedrigen Dynamik Bereichsbild aus der Bilddatei.Leser, die das Format unterstützen, das primäre Bild mit der Verstärkungskarte und rendern kompatiblen Displays.

Der Rest dieses Dokuments beschreibt die Methoden der Prozesse, die zur dieses Formats nutzen. Der Lebenszyklus eines Bildes, das den in dieses Format lautet:

  1. Codierung

    1. Kartenerstellung nutzen
    2. Kartenkomprimierung
    3. Kartencontainer erstellen
  2. Decodierung


Beispiel
Dateilayout im Ultra HDR-Bildformat mit zugehörigen Metadaten und Offset
informationen

Abbildung 1: Layout der Beispieldatei und relevante Metadaten.

Ziel

Ziel dieses Dateiformats ist es, zusätzliche Informationen im SDR-Bild zu codieren. -Dateien, die in Kombination mit der Anzeigetechnik verwendet werden können, um ihre optimalen HDR-Aufnahmen in einer einzigen Datei ansehen.

Damit dies praktikabel ist, muss das Dateiformat folgende Anforderungen erfüllen:

  • Abwärtskompatibel sein, sodass bei naiven Betrachtenden das herkömmliche SDR-Bild angezeigt wird.
  • Es sollte nicht zu viel zusätzlichen Speicherplatz in Anspruch nehmen.

Außerdem muss die Anzeigetechnik:

  • Keine intensive Verarbeitung zum Decodieren erforderlich.
  • Er muss sich an jedes Verhältnis zwischen HDR- und SDR-Weißpunkten eines Displays anpassen, Diese können je nach Gerät bzw. auf einem Gerät vorübergehend .

Und schließlich muss die Technik in der Lage sein, alle vorhergehenden Aktionen auszuführen. ohne jemals:

  • Erstellen von Clips mit Highlights
  • Reißende Schatten.
  • Ändern oder Komprimieren des lokalen Kontrasts
  • Ändern relativer tonaler Beziehungen (zwischen Objekten in der Szene)

Abhängigkeiten

Im Folgenden finden Sie normative Referenzen für diese Spezifikation:

Definitionen

  • SDR-Display

    • Ein herkömmliches Display, das nicht für die Darstellung von HDR-Inhalten geeignet ist Diese Displays erzeugen in der Regel eine nominale Spitzenhelligkeit von etwa 400 cd/m2 oder weniger.
  • HDR-Display

    • Ein für HDR-Inhalte konzipiertes Display Diese Displays erzeugen in der Regel eine eine minimale Spitzenhelligkeit gegenüber einem SDR-Display, in der Regel Mindestens 800 cd/m2, aber in der Regel auch ein besserer Kontrast. als bei SDR-Bildschirmen.
  • Primäres Bild

    • Die erste Instanz eines Images in einer GContainer-Datei mit sekundären Medien angehängten Dateien. Das primäre Image enthält GContainer XMP-Metadaten Festlegen der Reihenfolge und der Eigenschaften der nachfolgenden sekundären Medienelemente Dateien im Dateicontainer.
  • Sekundäres Bild

    • Nachfolgende Medienelementdateien, die an das primäre Bild in einem GContainer-Datei.
  • Bereichskomprimierung

    • In der Fotografie haben Szenen in der realen Welt oft mehr Dynamik als SDR-Anzeige kann darstellen. Vorgänge wie die Bereichskomprimierung, Local Tone Mapping, sind erforderlich, um den Dynamikumfang eines Bild. Bei dieser Reduzierung muss verhindert werden, dass Spitzlichter beschnitten oder zerkleinert werden. Schatten, während der lokale Kontrast so weit wie möglich erhalten bleibt.Sie versuchen, große Leuchtdichtekanten im Bild reduzieren, die zum den globalen Kontrast stärker hervorheben, während gleichzeitig versucht wird, die Größe des kleine Luminanzkanten, also die Details.Obwohl es viele verschiedene Implementierungen gibt, ist ein solcher Vorgang in den meisten modernen Digitalkameras heute.
  • SDR-Weißpunkt

    • Die maximale lineare Leuchtdichte von SDR-Inhalten auf einem Display bei einer bestimmten zu einem bestimmten Zeitpunkt.
  • HDR-Weißpunkt

    • Die maximale lineare Leuchtdichte von HDR-Inhalten auf einem Display bei einer bestimmten zu einem bestimmten Zeitpunkt. Dieser Wert ist in der Regel höher als der SDR-Weißpunkt.
  • Verstärkung

    • Der HDR-Weißpunkt geteilt durch den SDR-Weißpunkt.
  • Steigerung des Inhalts (max_content_boost in Gleichungen)

    • Mit diesem Wert kann der Creator festlegen, wie viel heller ein Bild auf einem HDR-Display relativ zur SDR-Wiedergabe erhalten.
    • Dieser Wert ist eine Konstante für ein bestimmtes Bild. Wenn zum Beispiel der Parameter ist für jedes Pixel die lineare Helligkeit des Die angezeigte HDR-Wiedergabe muss höchstens der 4-fachen linearen Leuchtdichte von die SDR-Wiedergabe. In der Praxis bedeutet dies, dass die helleren Teile kann die Szene bis zu viermal heller dargestellt werden.
    • In der Praxis liegt dieser Wert in der Regel über 1, 0.
    • Immer größer oder gleich Min. Inhaltssteigerung.
  • Min. Inhaltsanstieg (min_content_boost in Gleichungen)

    • Mit diesem Wert kann der Creator festlegen, Bild auf einem HDR-Display relativ zum SDR Wiedergabe starten.Dieser Wert ist eine Konstante für ein bestimmtes Bild.
    • Wenn der Wert beispielsweise 0,5 beträgt, dann gilt für jedes Pixel die lineare Die Leuchtdichte der angezeigten HDR-Wiedergabe muss mindestens dem 0,5-Fachen der lineare Leuchtdichte der SDR-Wiedergabe.
    • In der Praxis ist dieser Wert normalerweise gleich oder kleiner als 1, 0.
    • Immer kleiner oder gleich Maximaler Content-Boost.
  • Maximale Display-Optimierung (max_display_boost in Gleichungen)

    • Der maximal verfügbare Boost, der von einem Display an einem bestimmten Punkt unterstützt wird . Dieser Wert kann sich im Laufe der Zeit ändern, je nach Geräteeinstellungen und anderen Faktoren wie Umgebungslicht-Bedingungen oder die Anzahl der hellen Pixel auf dem Bildschirm.
    • Lautet der Wert beispielsweise 4, 0, kann das Display Es wird ein Pixel angezeigt, das höchstens viermal heller als die SDR ist. Weißpunkt. Dieser Wert ist immer größer als 1,0, da die Anzeige immer HDR-Weiß, das mindestens so hell ist wie SDR-Weiß.
  • Display-Boost

    • Entspricht dem kleineren Wert der maximalen Inhaltsoptimierung und der maximalen Display-Optimierung. Dieses value ist immer >= 1,0.
    • Beträgt die maximale Inhaltsoptimierung beispielsweise 4,0 und die maximale Display-Optimierung 3,0, Display-Boost 3,0. Pixel werden dreimal so hell angezeigt als SDR, da die Anzeigefähigkeiten der begrenzende Faktor sind.
    • Ein weiteres Beispiel: Die maximale Inhaltsoptimierung beträgt 4, 0 und die maximale Display-Optimierung. bei 5,0 und Display-Boost bei 4,0. Pixel werden bis zu 4-fach angezeigt. heller als SDR, weil die Absicht des Inhalts der begrenzende Faktor ist.
  • Ziel-HDR-Wiedergabe

    • Die ideale HDR-Wiedergabe, meint der Creator.
  • Angepasste HDR-Wiedergabe

    • Die endgültige HDR-Wiedergabe, die nach dem Die HDR-Zielwiedergabe wird an die aktuelle Display-Optimierung angepasst.
  • Karte mit Verstärkung (recovery(x, y) in Gleichungen)

    • Eine Karte, die angibt, um wie viel jedes Pixel bei der SDR-Wiedergabe aufgehellt werden soll, um die gewünschte HDR-Wiedergabe zu erzeugen. Diese Karte kann einkanalig oder für mehrere Kanäle. In einer Multi-Channel-Karte wird für jeden Kanal wie Rot, Grün und Blau. In diesem Dokument wird erläutert, im Fall der Single-Channel-Zuordnung.
  • clamp(x, a, b)

    • Setzen Sie den Wert x an den Bereich [a, b].
  • exp2(x)

    • Potenzierung mit Basis 2; 2x
  • floor(x)

    • Gibt die nächste Ganzzahl zurück, die gleich oder kleiner als x ist.
  • log2(x)

    • Logarithmus zur Basis 2; Log2(x)
  • pow(b, x)

    • Exponentiierung: bx.
  • XMP

  • Multi-Picture-Format

    • Das Multi-Picture-Format ist eine von Kamera und Imaging entwickelte Technik Products Association (CIPA) zum Speichern mehrerer JPEG-codierter Bilder in eine einzelne JPEG-Datei.
    • Weitere Informationen finden Sie in der entsprechenden Abhängigkeit im Whitepaper der CIPA. DC-x 007–2009 Multi-Picture Format
  • GContainer

    • GContainer ist eine Methode zum Speichern mehrerer Images in einem Image. Container, wobei ein Image als primäres Image gilt. Beliebig zusätzliche Bilder werden als alternative Versionen oder Hilfsbilder betrachtet. XMP-Metadaten dienen dazu, das Vorhandensein und die Bedeutung zusätzliche Bilder. Weitere Informationen finden Sie im GContainer- Details angezeigt.

Codieren

In diesem Abschnitt wird beschrieben, wie Sie eine konforme JPEG-Datei codieren. Weitere Informationen finden Sie unter T.81 (09/92) Digitale Komprimierung und Codierung von Standbildern Images im Abschnitt „Abhängigkeiten“ finden Sie weitere Informationen. über das JPEG-Format.

Kartenerstellung nutzen

Pipelines für die Kameraaufnahme führen in der Regel eine Bereichskomprimierung durch, Luminanzdaten mit höherem Dynamikumfang in den unteren Bereich herkömmlicher SDR-Displays Die Verstärkungskarte bietet einen Mechanismus, um ausreichend Daten zu speichern, die ursprünglichen Leuchtdichtedaten aus dem höheren Dynamikbereich wiederherstellen.

Bei den folgenden Berechnungen in diesem Abschnitt wird von einer Gleitkommaarithmetik ausgegangen.

Die folgenden Funktionen beschreiben das SDR-Image:

  • SDR'(x, y) sind die nicht linearen drei Kanäle (in der Regel gammacodiert). primäres Bild.
  • SDR(x, y) ist die lineare Version des primären Bilds mit drei Kanälen. Umwandlung in eine lineare Version der primären Bildfarbe erhalten Leerzeichen. Aus einem Farbraum mit einer sRGB-Transferfunktion zu einem linearen Farbraum, der sRGB-Grundfarben beibehält.

Die Funktion Ysdr(x, y) ist im Bereich von 0,0 bis 1,0 definiert Lineare Leuchtdichte des primären Bilds (Standard Dynamic Range):

Ysdr(x, y) = primary_color_profile_to_luminance(SDR(x, y))

Ähnliche Definitionen gibt es auch für das HDR-Bild.

  • HDR'(x, y) ist die nicht lineare, d. h. ein PQ- oder HLG-codierte Bild.
  • HDR(x, y) ist das lineare HDR-Bild mit drei Kanälen.

Yhdr(x, y) ist die Leuchtdichte an einem bestimmten Punkt des HDR-Bildes:

Yhdr(x, y) = primary_color_profile_to_luminance(HDR(x, y))

Yhdr(x, y) ist im Bereich von 0,0 bis zur maximalen Inhaltsoptimierung definiert.

Die SDR- und HDR-Bilder müssen dieselbe Auflösung haben. Das Farbprofil des SDR image definiert den Farbraum des HDR-Bilds.

Wenn das primäre SDR-Bild zum Beispiel ein Display-P3-Farbprofil hat, wird das HDR-Bild relativ zu den Primärfarben des Profils definiert. Dieses bedeutet, dass das HDR-Bild auch über Display-P3-Primärfarben verfügt.

Die Verstärkungskarte wird aus zwei linearen Bildern berechnet, die das gewünschte HDR-Bild enthalten Helligkeit Yhdr(x, y) und dem Standardbereich-Leuchtdichtebild Ysdr(x, y).

Die pixel_gain(x, y)-Funktion ist als Verhältnis zwischen den Yhdr(x, y)-Werten und der Ysdr(x, y)-Funktion:

pixel_gain(x, y) = (Yhdr(x, y) + offset_hdr) / (Ysdr(x, y) + offset_sdr)

Verhalten der Funktion pixel_gain(x, y), bei dem Ysdr(x, y) und offset_sdr wobei beide Nullen implementierungsdefiniert sind.

Beispielsweise eignen sich Implementierungen für den Fall, dass Ysdr(x, y) und offset_sdr sind beide null, indem pixel_gain(x, y) als 1,0 definiert wird. Alternativ können Sie Implementierungen vermeiden dieses Szenario auch durch die Verwendung eines offset_sdr ungleich null.

Bei der Implementierung können die Werte offset_sdr und offset_hdr ausgewählt werden.

Die Verstärkungskarte ist eine Skalarfunktion, die pixel_gain(x, y) in einem Logarithmischer Bereich, relativ zum maximalen und minimalen Inhaltssteigerung:

map_min_log2 = log2(min_content_boost)
map_max_log2 = log2(max_content_boost)

log_recovery(x, y) = (log2(pixel_gain(x, y)) - map_min_log2)
                   / (map_max_log2 - map_min_log2)
clamped_recovery(x, y) = clamp(log_recovery(x, y), 0.0, 1.0)
recovery(x, y) = pow(clamped_recovery(x, y), map_gamma)

Das Verhalten der Funktion recovery(x, y), bei dem pixel_gain(x, y) null ist, ist Implementierung definiert, da log2(0) nicht definiert ist.

map_gamma ist eine Gleitkommazahl, die größer als 0,0 und gleich Implementierung ausgewählt werden.

Die Werte für die maximale Inhaltsoptimierung und die min. Inhaltsoptimierung sind Implementierung definiert und kann willkürlich vom Creator festgelegt werden. Max.Inhaltssteigerung muss größer oder gleich 1,0 sein. Mindestwert für die Inhaltserhöhung muss im Bereich (0.0, 1.0] liegen.

Die Werte in recovery(x, y) sind auf den Bereich [0.0, 1.0] beschränkt.

Die Verstärkungskarte wird in einer sekundären Bild-JPEG-Datei gespeichert und muss daher codiert werden. mit 8-Bit-Ganzzahlwerten ohne Vorzeichen, die daher im Bereich [0, 255] liegen. Jeder Wert stellt einen recovery(x, y)-Wert dar und wird in einem Pixel der sekundären Bild.

Bei 8-Bit-Ganzzahlspeichern ohne Vorzeichen wird der codierte Wert als Folgendes:

encoded_recovery(x, y) = floor(recovery(x, y) * 255.0 + 0.5)

Die Berechnung der Codierungsfunktion erfolgt als Gleitkommazahl das Ende auf das vorzeichenlose 8-Bit-Ganzzahlergebnis durch Rundung wie angegeben.

Diese Codierung führt zu einer vorzeichenlosen 8-Bit-Ganzzahldarstellung von recovery(x, y)-Werte von 0,0 bis 1,0. Die codierte Verstärkungskarte muss ein sekundäres Bildelement als JPEG-Datei hochladen. Durch die Implementierung wird festgelegt, Komprimierung, die während der JPEG-Codierung verwendet wird.

Nachdem die Verstärkungskarte in einem sekundären Bild gespeichert wurde, wird sie an ein primäres Bild angehängt. mit MPF- und GContainer-XMP-Metadaten. Das primäre GContainer-Image muss ein -Element für das Verstärkungskartenbild enthalten.

Die Auflösung der gespeicherten Verstärkungskarte ist implementierungsdefiniert und kann von der Auflösung des primären Bildes abweicht. Für den Fall, dass die Zur Speicherung wird die Auflösung der Karte vom primären Bild abweichen. Die Stichprobenmethode muss bilinear sein oder besser sein und die Implementierung ist definiert.

Die Ausrichtung der Verstärkungskarte muss mit der des Hauptbilds übereinstimmen. Wenn alle Ausrichtungsmetadaten im gespeicherten Verstärkungskartenbild, wie in EXIF, nicht verwendet wird.

Falls vorhanden, wird das Farbprofil der Verstärkungskarte nicht verwendet.

Kartencontainer abrufen

Farbprofil

Das Farbprofil des Bildes muss über ein ICC-Profil für die primäres Bild.

XMP-Attribute

Das Hauptbild enthält XMP-Metadaten, um mindestens zwei Bilder mit zusätzlichen semantische Informationen für das HDR-Verstärkungskartenformat.

Die folgenden Unterabschnitte enthalten Details zu diesem Format. Zusätzliche Informationen Informationen zur allgemeinen Konformität mit GContainer sind in den GContainer-Details.

In den folgenden Tabellen beschriebene Attributwerte werden als einfache XMP-Datei gespeichert der angegebenen XMP-Basiswerttypen

Semantische Werte von Elementen

Das Attribut Item:Semantic definiert die anwendungsspezifische Bedeutung jedes Medienelements im Containerverzeichnis.

Wert Beschreibung
Primär Gibt an, dass das Medienelement das primäre Bild ist und angezeigt werden kann. im Container befinden. Das Verzeichnis muss einen „Primär“ enthalten ein.
Verstärkungskarte Gibt an, dass das Medienelement eine Verstärkungskarte ist. Das Verzeichnis enthält möglicherweise höchstens eine „GainMap“ ein.

HDR-Effekt für Kartenmetadaten

Kartenmetadaten codieren Informationen zur Interpretation und Anwendung der Verstärkung um die HDR-Darstellung des primären Bildes zu erzeugen.

Der XMP-Namespace-URI für die XMP-Erweiterung für GainMap-Metadaten lautet http://ns.adobe.com/hdr-gain-map/1.0/ Das Standard-Namespace-Präfix ist hdrgm

Diese Metadaten werden im XMP-Paket des GainMap-Bildes und im Folgenden gespeichert: Eigenschaften müssen in rdf:Description des XMP-Bilds für die Verstärkung angegeben sein:

Name Typ Beschreibung
hdrgm:Version Text Die Version des verwendeten GainMap-Formats. Diese Version ist "1.0". Required.
hdrgm:BaseRenditionIsHDR Boolesch Gibt den dynamischen Bereich des Hauptbilds an. „Falsch“ gibt die ist SDR und die Verstärkungskarte kann damit kombiniert werden, HDR-Wiedergabe. „Wahr“ gibt an, dass das primäre Bild HDR ist und die Verstärkungskarte damit die SDR-Wiedergabe erstellt werden kann. Muss „False“ sein. Optional: Der Standardwert ist „False“.
hdrgm:VerstärkungMapMin Reelles oder geordnetes Array von Real Speichert den Wert bzw. die Werte von map_min_log2. Dies ist log2 Min. der Inhaltsoptimierung. Dies ist das zulässige Mindestverhältnis. der linearen Leuchtdichte der HDR-Zielwiedergabe im Verhältnis zu (dividiert) des SDR-Bildes bei einem gegebenen Pixel. Kann ein einzelner Real oder ein ein geordnetes Array von Real. Ein geordnetes Array von Real kann einen Wert enthalten: die für alle Kanäle gilt, oder drei Elemente für die Blaue Kanäle Muss kleiner oder gleich sein hdrgm:GainMapMax Optional: Der Standardwert ist 0,0.
hdrgm:GainMapMax Reelles oder geordnetes Array von Real Speichert den Wert bzw. die Werte von map_max_log2. Dies ist log2 max. Content-Optimierung. Dies ist das maximal zulässige Verhältnis. der linearen Leuchtdichte der HDR-Zielwiedergabe im Verhältnis zu (geteilt des SDR-Bildes bei einem gegebenen Pixel. Kann ein einzelner Real oder ein ein geordnetes Array von Real. Ein geordnetes Array von Real kann einen Wert enthalten: die für alle Kanäle gilt, oder drei Elemente für die Blaue Kanäle Muss größer oder gleich sein hdrgm:GainMapMin Erforderlich.
hdrgm:Gamma Reelles oder geordnetes Array von Real Speichert den Wert bzw. die Werte von map_gamma. Dies ist der Gammawert für die auf die gespeicherten Kartenwerte angewendet werden. Kann ein einzelnes Real-Objekt oder ein geordnetes Array von Reale. Ein geordnetes Array von Real kann ein Element enthalten, das oder drei Elemente für die roten, grünen und blauen Kanäle . Muss größer als 0,0 sein. Optional: Standardwert ist 1.0
hdrgm:OffsetSDR Reelles oder geordnetes Array von Real Speichert den Wert bzw. die Werte von offset_sdr. Das ist der Offset werden beim Generieren und Anwenden der Verstärkungskarte auf die SDR-Pixelwerte angewendet. Kann ein einzelner Real oder ein geordnetes Array von Real sein. Wenn ein geordnetes Array von Reale Werte: Es kann ein Element enthalten, das für alle Kanäle gilt, oder drei Elemente. für den roten, grünen und blauen Kanal. Muss mindestens 0,0 sein. Optional: Der Standardwert ist 0,015625 (1/64).
hdrgm:HDR Offset Reelles oder geordnetes Array von Real Speichert den Wert von offset_hdr. Das ist der Offset werden bei der Generierung und Anwendung der Verstärkungskarte auf die HDR-Pixelwerte angewendet. Kann ein einzelner Real oder ein geordnetes Array von Real sein. Wenn ein geordnetes Array von Reale Werte: Es kann ein Element enthalten, das für alle Kanäle gilt, oder drei Elemente. für den roten, grünen und blauen Kanal. Muss mindestens 0,0 sein. Optional: Der Standardwert ist 0,015625 (1/64).
hdrgm:HDRCapacityMin Real Speichert den Wert von hdr_capacity_min. Dies ist log2 des minimalen Werts für die Display-Optimierung, für den die Karte verwendet wird überhaupt angewendet. Dieser Wert wirkt sich auch darauf aus, wie stark die Verstärkungskarte angewendet wird, Display-Boost. Muss mindestens 0,0 sein. Optional: Standard Wert 0,0.
hdrgm:HDRCapacityMax Real Speichert den Wert von hdr_capacity_max. Dies ist log2 des maximalen Werts für die Display-Optimierung, für den die Karte verwendet wird vollständig angewendet. Dieser Wert wirkt sich auch darauf aus, wie stark die Verstärkungskarte angewendet wird basierend auf dem Display-Boost. Muss größer sein als hdrgm:HDRCapacityMin Erforderlich.

Beispiel für Verstärkungskarte (XMP)

Das folgende Beispiel eines gültigen XMP-Pakets für die Verstärkung enthält die aufgenommenen Metadaten aus der Beispieldatei, die im Abschnitt Einführung veranschaulicht wurde.

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.5.0">
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <rdf:Description rdf:about=""
     xmlns:hdrgm="http://ns.adobe.com/hdr-gain-map/1.0/"
     hdrgm:Version="1.0"
     hdrgm:GainMapMin="-0.57609993"
     hdrgm:GainMapMax="4.7090998"
     hdrgm:Gamma="1"
     hdrgm:OffsetSDR="0.015625"
     hdrgm:OffsetHDR="0.015625"
     hdrgm:HDRCapacityMin="0"
     hdrgm:HDRCapacityMax="4.7090998"
     hdrgm:BaseRenditionIsHDR="False"/>
  </rdf:RDF>
</x:xmpmeta>

MPF-Speicherung der Verstärkungskarte

Das Verstärkungskartenbild muss als zusätzliches Bild gemäß der Definition in CIPA gespeichert werden. DC-x 007–2009 Multi-Picture-Format, wie im Abhängigkeiten.

Decodieren

In diesem Abschnitt wird beschrieben, wie die Verstärkungskarte aus einer konformen JPEG-Datei decodiert wird.

Signal des Formats

Eine JPEG-Datei in diesem Format kann durch das Vorhandensein von hdrgm:Version="1.0" im XMP-Paket des primären Bildes, wobei hdrgm der Wert Namespace-URI http://ns.adobe.com/hdr-gain-map/1.0/.

Bild der Verstärkungskarte suchen

Weitere Informationen zum Parsen und Decodieren des Images finden Sie in den folgenden GContainer- Details angezeigt. Eine „GainMap“ semantisches Element im XMP rdf:Directory wird verwendet, um den Standort einer Verstärkungskarte zu signalisieren. Alternativ können der MPF-Index-IFD und das Scannen von Bildern Mithilfe von XMP wird bestimmt, die Position einer Karte mit Verstärkung.

Umgang mit ungültigen Metadaten

Metadaten gelten als ungültig, wenn ein Pflichtfeld nicht vorhanden ist Feld enthält einen ungültigen Wert. Ein Wert ist möglicherweise ungültig, für den angegebenen Typ geparst werden kann oder außerhalb des erwarteten Bereichs liegt.

Bei ungültigen Metadaten sollte die Gain Map ignoriert und der SDR Bild angezeigt werden soll.

Anzeige

Dateien, die im HDR-Verstärkungskartenformat codiert sind, können auf oder auf HDR-Displays mit höherer Leuchtdichte .

Verwenden Sie die Verstärkungskarte, um die angepasste HDR-Wiedergabe zu erstellen

Bei den folgenden Berechnungen in diesem Abschnitt wird von einer Gleitkommaarithmetik ausgegangen.

encoded_recovery(x, y) ist der 8-Bit-Ganzzahlwert ohne Vorzeichen für einen einzelnen Kanal. aus der Verstärkungskarte.

Weist die Verstärkungskarte eine andere Auflösung als das Primärbild auf, encoded_recovery(x, y) wird stattdessen durch eine gefilterte Stichprobe des Kartenbild für x und y über den Bereich der Breite und Höhe des primären Bildes . Die Filtermethode muss mindestens bilinear sein und ist Implementierung definiert.

map_gamma wird durch das Metadatenfeld hdrgm:Gamma bestimmt.

log_recovery(x, y) ist die normalisierte Gleitkomma-Pixelzunahme in einer Logarithmischer Raum:

recovery(x, y) = encoded_recovery(x, y) / 255.0
log_recovery(x, y) = pow(recovery(x, y), 1.0 / map_gamma)

Die maximale Display-Verstärkung ist ein skalarer Gleitkommawert, der als Verhältnis zwischen des aktuellen HDR-Weißpunkts und geteilt durch den aktuellen SDR-Weißpunkt. Dieses wird vom Anzeigesystem bereitgestellt und kann sich im Laufe der Zeit ändern.

hdr_capacity_max wird durch das Metadatenfeld hdrgm:HDRCapacityMax bestimmt. hdr_capacity_min wird durch das Metadatenfeld hdrgm:HDRCapacityMin bestimmt.

weight_factor wird so festgelegt, wenn hdrgm:BaseRenditionIsHDR gleich „Falsch“:

unclamped_weight_factor = (log2(max_display_boost) - hdr_capacity_min)
                        / (hdr_capacity_max - hdr_capacity_min)
weight_factor = clamp(unclamped_weight_factor, 0.0, 1.0)

Wenn hdrgm:BaseRenditionIsHDR „Wahr“ ist, lautet stattdessen die zweite Gleichung:

weight_factor = 1.0 - clamp(unclamped_weight_factor, 0.0, 1.0)

gain_map_max wird durch das Metadatenfeld hdrgm:GainMapMax bestimmt. gain_map_min wird durch das Metadatenfeld hdrgm:GainMapMin bestimmt. offset_sdr wird durch das Metadatenfeld hdrgm:OffsetSDR bestimmt. offset_hdr wird durch das Metadatenfeld hdrgm:OffsetHDR bestimmt.

Die linear angepasste HDR-Wiedergabe kann so berechnet werden:

log_boost(x, y) = gain_map_min * (1.0f - log_recovery(x, y))
                + gain_map_max * log_recovery(x, y)
HDR(x, y) = (SDR(x, y) + offset_sdr) * exp2(log_boost(x, y) * weight_factor)
          - offset_hdr

Bei Bedarf kann die Implementierung eine Transformation auf HDR(x, y) anwenden, um den Parameter in dem von der Anzeige vorgesehenen Bereich enthält. Solche Transformationen müssen farbmetrisch korrekt ist.

GContainer-Details

In diesem Abschnitt werden zusätzliche Anforderungen aufgeführt, die dazu führen, dass dieses Format den mit GContainer-XML-Metadaten. Die Metadaten werden gemäß ISO-Standards 166841:2011(E) XMP Specification Part 1 und eingebettet in der primären Bilddatei, wie in Adobe XMP Specification Part 3 beschrieben. Speicher in Dateien. Die primäre Bilddatei enthält die folgenden Elementen, die als RDF/XML formatiert sind.

XMP-Paketanforderungen

Das XMP-Paket muss die XMP-Erweiterung für GainMap-Metadaten über die Namespace-URI http://ns.adobe.com/hdr-gain-map/1.0/. Der Standard-Namespace ist hdrgm.

Das XMP-Paket muss hdrgm:Version="1.0" definieren.

Container element

Der XMP-Namespace für die GContainer XMP-Erweiterung lautet http://ns.google.com/photos/1.0/container/ Das Standard-Namespace-Präfix ist Container

Das Hauptbild enthält ein Container:Directory-Element in den XMP-Metadaten. Reihenfolge und Eigenschaften der nachfolgenden Mediendatei in der Datei definieren Container. Jede Datei im Container verfügt über ein entsprechendes Medienelement im Container:Directory Im Medienelement wird der Speicherort in der Datei beschrieben. -Container und die grundlegenden Eigenschaften jeder verketteten Datei.

Das Containerelement wird in den XMP-Metadaten des primären Bildes und definiert ein Verzeichnis mit Medienelementen im Container. Medienelemente müssen sich befinden in derselben Reihenfolge wie die Medienelementelemente in der und muss eng gepackt sein.

Das Verzeichnis darf nur ein primäres Element enthalten Bildelement und es muss das erste sein, im Verzeichnis gespeichert.

Element name Typ Beschreibung
Container:Verzeichnis Geordnetes Array von Strukturen Geordnetes Array von Strukturen, die jeweils ein Container:Item enthalten Struktur der Definition des Layouts und der Inhalte des Containers.

Elementelement

Mit Element-Elementen wird beschrieben, wie jedes Medienelement von der Anwendung verwendet wird.

Der XMP-Namespace-URI für die XMP-Erweiterung für GContainer-Artikel lautet http://ns.google.com/photos/1.0/container/item/ Das Präfix des Standard-Namespace ist Item.

Das erste Medienelement muss das primäre Bild sein.Er muss Item:Semantic = "Primary" und einen Item:Mime angeben, der in MIME-Typ-Werte für Elemente:

Die Länge des primären Bildelements wird durch Parsen des primären basierend auf seinem MIME-Typ, beginnend am Anfang des Dateicontainers.

Medienelemente können ein Item:Padding-Attribut enthalten, das zusätzliche Abstand zwischen dem Ende des Medienelements und dem Anfang des nächsten Medienelements ein. Wenn es im letzten Medienelement im Container:Directory vorhanden ist, Item:Padding gibt den Abstand zwischen dem Ende des Elements und dem Ende des Elements an. -Datei.

Jedes Medienelement muss den Typ Item:Mime und Item:Semantic-Attribute enthalten. Die sekundären Bildmedienelemente müssen Item:Length-Attribute enthalten.

Sequenzielle Medienelemente können Ressourcendaten innerhalb des Dateicontainers teilen. Die bestimmt das erste Medienelement den Speicherort der Ressource im Dateicontainer. und für nachfolgende freigegebene Medienelemente ist „Item:Length“ auf „0“ festgelegt. Für den Fall, dass sind die Ressourcendaten selbst ein Container. Mit Item:URI lässt sich ermitteln, den Speicherort der Medienelementdaten innerhalb der Ressource.

Der Standort der Medienelementressourcen im Container wird durch Addition der Werte die Länge der primären Bildcodierung, die Item:Length-Werte des vorherigen sekundären Medienelementressourcen und alle vorherigen Item:Padding Werte. Item:Padding wird für Medienelementressourcen als 0 angesehen, die dies nicht tun und geben dessen Wert an.

Attributname Typ Beschreibung
Element:MIME Text Einfache Zeichenfolge, die den MIME-Typ des Medienelements im Container. Eine Definition finden Sie im Abschnitt mit den MIME-Typ-Werten des Elements. Required.
Artikel:Semantisch Text Einfacher String, der die anwendungsspezifische Bedeutung der Medien angibt ein. Eine Definition finden Sie im Abschnitt „Semantische Werte für Elemente“. Required.
Artikellänge Ganzzahl Einfacher String mit einer positiven Ganzzahl für das Element in Byte. Länge 0 gibt an, dass die Medienelementressource mit der vorherigen geteilt wird Medienelement. Erforderlich für sekundäre Medienelemente. Optional für die primäre Bild-Medienelement.
Element:Label Text Von der Implementierung definierter String zur Unterscheidung mehrerer Elemente Elemente mit derselben Item:Semantic. Optional.
Artikel:Polster Ganzzahl Ein String mit einer positiven Ganzzahl für zusätzliche Länge in Byte. Abstand zwischen dem Ende des Medienelements und dem Anfang des nächsten Medienelement oder das Ende der Datei, wenn es auf dem letzten Medienelement im Container:Directory Wenn kein Wert vorhanden ist, wird ein Wert von 0 angenommen. Optional:
Element:URI Text Ein URI-String gemäß ISO/IEC 14496-12, Abschnitt 8.11.9, der den relativer URI der Mediendaten in der Medienelementressource. Standardwert ist der primären Bildressource. Optional für MIME-Typen im ISO-Basismediendateiformat ISO/IEC 14496-12. Darf nicht anderweitig verwendet werden.

MIME-Typ-Werte des Elements

Das Attribut Item:Mime definiert den MIME-Typ der einzelnen Medienelemente Daten.

Wert Beschreibung
Bild/JPEG JPEG-Bild.

GContainer-XMP-Beispiel

Das folgende Beispiel für ein gültiges GContainer-XMP-Paket enthält Metadaten aus der Beispieldatei, die im Abschnitt Einführung veranschaulicht wurde.

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.1.2">
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <rdf:Description
     xmlns:Container="http://ns.google.com/photos/1.0/container/"
     xmlns:Item="http://ns.google.com/photos/1.0/container/item/"
     xmlns:hdrgm="http://ns.adobe.com/hdr-gain-map/1.0/"
     hdrgm:Version="1.0">
      <Container:Directory>
        <rdf:Seq>
          <rdf:li rdf:parseType="Resource">
            <Container:Item
             Item:Semantic="Primary"
             Item:Mime="image/jpeg"/>
          </rdf:li>
          <rdf:li rdf:parseType="Resource">
            <Container:Item
             Item:Semantic="GainMap"
             Item:Mime="image/jpeg"
             Item:Length="66171"/>
          </rdf:li>
        </rdf:Seq>
      </Container:Directory>
    </rdf:Description>
  </rdf:RDF>
</x:xmpmeta>