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:
Codierung
- Kartenerstellung nutzen
- Kartenkomprimierung
- Kartencontainer erstellen
Decodierung
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:
- Adobe XMP Specification Part 3: Storage in Files
- ISO 16684-1:2019 XMP-Spezifikation Teil 1
- ISO/IEC 14496-12 ISO-Basismediendateiformat
- T.81 (09/92) Digitale Komprimierung und Codierung von Standbildern Bilder
- Whitepaper des Multi-Picture-Formats CIPA DC-x 007-2009
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
- Erweiterbare Metadatenplattform. Ein Standard, der eine Methode für Metadaten in einen Image-Container zu codieren; definiert durch ISO 16684-1:2011(E) XMP-Spezifikation Teil 1.
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>