Format obrazu Ultra HDR w wersji 1.0

Wprowadzenie

Ten dokument określa sposób działania nowego formatu pliku, który koduje logarytmiczny obraz mapy wzmocnienia zakresu w pliku graficznym JPEG. czytelnicy starszego typu, obsługują nowy format, odczytuj i wyświetlaj konwencjonalne niskiej dynamiki. z pliku graficznego.Czytelnicy obsługujący ten format łączą się główny obraz z mapą wzmocnienia, a obraz o wysokim zakresie dynamiki po wyświetleniu zgodnych wyświetlaczy.

W pozostałej części tego dokumentu opisujemy metody stosowane w procesie korzystać z tego formatu. Ogólnie rzecz biorąc, cykl życia obrazu do tego formatu:

  1. Kodowanie

    1. Generowanie map
    2. Zwiększ kompresję mapy
    3. Wygeneruj kontener mapy
  2. Dekodowanie


Przykład
Układ pliku w formacie obrazu Ultra HDR z metadanymi i przesunięciem
informacje

Rysunek 1. Przykładowy układ pliku i odpowiednie metadane.

Motywacja

Ten format pliku służy do zakodowania dodatkowych informacji w obrazie SDR które można stosować w połączeniu z metodą wyświetlania jak uzyskać optymalną jakość obrazu HDR w jednym pliku.

Aby było to praktyczne, format pliku musi:

  • Zapewniać zgodność wsteczną, dzięki czemu zwykły obraz SDR nie jest przeznaczony dla nudnych odbiorców.
  • Nie zajmują za dużo dodatkowego miejsca.

Dodatkowo metoda wyświetlania musi:

  • Dekodowanie nie wymaga dużego przetwarzania.
  • dostosować się do dowolnego proporcji między punktami bieli HDR i SDR wyświetlacza, które mogą znacznie się różnić w zależności od urządzenia lub nawet w konkretnym tempie. urządzenia.

Technika musi też mieć możliwość wykonania wszystkich poprzednich działań. bez przeszkód:

  • Klipy z najciekawszymi momentami.
  • Niszczenie cieni.
  • Zmienianie lub kompresowanie lokalnego kontrastu.
  • zmienianie względnych relacji tonalnych (między obiektami na scenie).

Zależności

Oto odniesienia normatywne do tej specyfikacji:

Definicje

  • Wyświetlacz SDR

    • Standardowy wyświetlacz nieprzeznaczony do wyświetlania treści HDR. Te Wyświetlacze zazwyczaj dają nominalną szczytową jasność około 400 cd/m2 lub mniej.
  • Wyświetlacz HDR

    • Wyświetlacz przeznaczony do wyświetlania treści HDR. Zwykle generują one nominalna szczytowa jasność większa niż wyświetlacz SDR, zwykle 800 cd/m2 lub więcej i zwykle mają też lepszy kontrast niż w przypadku SDR.
  • Obraz główny

    • Pierwsze wystąpienie obrazu w pliku GContainer z multimediami plików. Obraz główny zawiera metadane XMP GContainer określając kolejność i właściwości następnego dodatkowego elementu multimedialnego w kontenerze plików.
  • Drugi obraz

    • Kolejne pliki elementów multimedialnych, które są dołączone do obrazu głównego w Plik GContainer.
  • Kompresja zakresu

    • W przypadku fotografii rzeczywiste sceny często mają większy zakres dynamiki niż Wyświetlacz SDR może reprezentować. Operacje, takie jak kompresja zakresu, są tzw. mapowaniem tonów lokalnych, są niezbędne do zmniejszenia zakresu dynamicznego . Redukcja nie pozwala na obcinanie najciekawszych fragmentów ani miażdżenie. przy jednoczesnym zachowaniu lokalnego kontrastu.Próbujesz zmniejszają rozmiar dużych krawędzi luminancji na obrazie, co przyczynia się globalnego kontrastu, starając się zachować rozmiar lub małe krawędzie luminancji, czyli szczegóły.Chociaż na rynku jest wiele w różnych zastosowaniach, taka operacja jest standardem w większości współczesnych aparatami cyfrowymi.
  • Punkt bieli SDR

    • Maksymalna luminancja liniowa treści SDR na wyświetlaczu przy określonym w czasie rzeczywistym.
  • Punkt bieli HDR

    • Maksymalna luminacja liniowa treści HDR na wyświetlaczu o określonej w czasie rzeczywistym. Ta wartość jest zwykle wyższa niż punkt bieli SDR.
  • Wzmocnienie

    • Punkt bieli HDR podzielony przez punkt bieli SDR.
  • Maksymalne ulepszenie treści (max_content_boost w równaniach)

    • Ta wartość pozwala twórcy treści ograniczyć jasność obrazu które można uzyskać podczas wyświetlania na wyświetlaczu HDR względem jakości SDR.
    • Jest to stała wartość dotycząca konkretnego zdjęcia. Na przykład, jeśli plik wartość wynosi cztery, natomiast dla każdego piksela luminacja liniowa oddanie w technologii HDR musi być co najwyżej 4-krotnie większe od luminancji liniowej w wersji SDR. W praktyce oznacza to, że jaśniejsze elementy scena może być wyświetlana nawet 4 razy jaśniejsze.
    • W praktyce ta wartość jest zwykle większa niż 1, 0.
    • Wartość ta jest zawsze większa niż lub równa wartości Min. wzmocnienie treści.
  • Minimalne wzmocnienie treści (min_content_boost w równaniach)

    • Ta wartość pozwala twórcy treści ograniczyć ilość ciemnego obrazu obraz wyświetlany na wyświetlaczu HDR jest bardziej niż SDR wersji.Jest to stała wartość dotycząca konkretnego zdjęcia.
    • Jeśli np.wartość wynosi 0,5, to dla dowolnego piksela wykres liniowy luminancja wyświetlonego odwzorowania HDR musi być (co najmniej) 0,5 raza większa luminancji linearnej dla obrazu SDR.
    • W praktyce ta wartość jest zwykle równa 1, 0 lub mniejsza.
    • Wartość ta jest zawsze mniejsza lub równa wartości Maksymalne wzmocnienie treści.
  • Maksymalne wzmocnienie wyświetlacza (max_display_boost w równaniach)

    • Maksymalne dostępne wzmocnienie obsługiwane przez wyświetlacz w danym momencie obecnie się znajdujesz. Ta wartość może się z czasem zmieniać w zależności od ustawień urządzenia i innych czynników czynników takich jak warunki otoczenia czy liczba jasnych pikseli na ekranie.
    • Jeśli np.wartość to 4, 0, wyświetlacz może wyświetlać który jest maksymalnie 4 razy jaśniejszy niż SDR. punkt bieli. Ta wartość wynosi zawsze >= 1,0, ponieważ wyświetlacz zawsze może biel HDR musi być co najmniej tak jasna jak biała SDR.
  • Wzmocnienie wyświetlacza

    • Wartość ta jest równa maksymalnej wartości maksymalnego wzmocnienia treści i maksymalnemu wzmocnieniu wyświetlania. Ten zawsze wynosi >= 1,0.
    • Jeśli na przykład maksymalne wzmocnienie treści to 4,0, a wzmocnienie wyświetlacza – 3,0, to wzmocnienie wyświetlacza to 3,0. Piksele są wyświetlane nawet trzykrotnie jaśniejsze. niż SDR, ponieważ możliwości wyświetlaczy są czynnikiem ograniczającym.
    • Inny przykład: jeśli maksymalne wzmocnienie treści to 4,0, a maksymalne wzmocnienie wyświetlania to 5,0, a wzmocnienie wyświetlacza – 4,0. Piksele są wyświetlane nawet 4x. jest jaśniejszy niż SDR, ponieważ czynnikiem ograniczającym są intencje filmu.
  • Docelowe odwzorowanie HDR

    • Zdaniem twórcy idealnego efektu HDR.
  • Dostosowana jakość HDR

    • Ostateczne ujęcie HDR widoczne na ekranie, po i dostosowuje obraz w docelowym HDR do aktualnego wzmocnienia obrazu.
  • Mapa wzmocnienia (recovery(x, y) w równaniach)

    • mapa pokazująca, o ile rozjaśnić każdy piksel w wersji SDR, aby uzyskać docelową wersję HDR. Ta mapa może być jednokanałowa lub wielokanałowa. Mapa wielokanałowa pokazuje osobny wzmocnienie dla każdego kanału kolorów, takich jak czerwony, zielony i niebieski. Ten dokument pokazuje, w przypadku mapy jednokanałowej.
  • clamp(x, a, b)

    • Umieść wartość x w zakresie [a, b].
  • exp2(x)

    • potęgowanie przy podstawie 2; 2x.
  • floor(x)

    • Zwraca najbliższą liczbę całkowitą równą x lub mniejszą.
  • log2(x)

    • Logarytm o podstawie 2; log2(x)
  • pow(b, x)

    • Wygaśnięcie; Bx.
  • XMP,

  • Format z wieloma obrazami

    • Format Multi-Picture Format to technika opracowana przez zespoły Camera and Imaging Stowarzyszenie Produktów (CIPA) służące do przechowywania wielu obrazów w formacie JPEG pojedynczy plik JPEG.
    • Więcej informacji znajdziesz w związku z tym raportem: Raport dotyczący CIPA Format wielu obrazów DC-x 007-2009.
  • kontener

    • GContainer to metoda przechowywania wielu obrazów na jednym obrazie w którym jeden obraz jest uważany za obraz główny. Dowolne są uznawane za wersje alternatywne lub pomocnicze. Metadane XMP służą do informowania o obecności i znaczeniu dodatkowe zdjęcia. Aby uzyskać więcej informacji, zapoznaj się z narzędziem GContainer szczegóły.

Kodowanie

Ta sekcja zawiera informacje na temat kodowania zgodnego pliku JPEG. Patrz T.81 (09/92) Kompresja cyfrowa i kodowanie ciągłego tonu images, w sekcji Zależności znajdziesz więcej informacji. o formacie JPEG.

Generowanie map

Potoki umożliwiające obrazowanie z kamery zwykle wykonują operację kompresji zakresu, aby kompresuj dane o wyższym zakresie luminancji do niższego zakresu SDR. Mapa zysku to mechanizm przechowywania danych, pozwala odzyskać oryginalne dane o luminancji o wyższym zakresie dynamiki.

W poniższych obliczeniach w tej sekcji zakładamy, że jest to arytmetyka zmiennoprzecinkowa.

Te funkcje opisują obraz SDR:

  • SDR'(x, y) to 3-kanałowy, nieliniowy (zwykle zakodowany gamma) główny obraz.
  • SDR(x, y) to liniowa wersja 3-kanałowego obrazu głównego, uzyskane przez przekształcenie do liniowej wersji podstawowego koloru zdjęcia kosmosu. Na przykład z przestrzeni kolorów z funkcją przenoszenia sRGB do liniowa przestrzeń kolorów, która zachowuje kolory podstawowe sRGB.

Funkcja Ysdr(x, y) jest zdefiniowana w zakresie od 0,0 do 1,0 i jest luminancja liniowa obrazu podstawowego w standardowym zakresie dynamicznym:

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

Podobne definicje istnieją dla obrazu HDR.

  • HDR'(x, y) to 3-kanałowa nieliniowa, czyli zakodowana w formacie PQ lub HLG .
  • HDR(x, y) to trzykanałowy liniowy obraz HDR.

Yhdr(x, y) to luminancja w danym punkcie obrazu HDR:

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

Pole Yhdr(x, y) jest zdefiniowane w zakresie od 0,0 do maksymalnego zwiększenia ilości treści.

Obrazy SDR i HDR muszą mieć tę samą rozdzielczość. Profil kolorów SDR określa przestrzeń kolorów obrazu HDR.

Jeśli na przykład obraz główny SDR ma profil kolorów Display-P3, obraz HDR jest określany na podstawie kolorów podstawowych tego profilu. Ten oznacza, że zdjęcie HDR ma też kolory podstawowe Display-P3.

Mapa wzmocnienia jest obliczana na podstawie 2 obrazów liniowych zawierających żądany obraz HDR luminancja i Yhdr(x, y) oraz obraz o luminancji standardowego zakresu (Ysdr(x, y)).

Funkcja pixel_gain(x, y) jest zdefiniowana jako stosunek między Yhdr(x, y) i funkcji Ysdr(x, y):

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

Działanie funkcji pixel_gain(x, y), w którym Ysdr(x, y) i offset_sdr są zarówno wartość 0, jak i 0 jest zdefiniowana przez implementację.

Implementacje mogą na przykład obsługiwać przypadek, w którym Ysdr(x, y) i Parametr offset_sdr ma wartość 0, ponieważ pixel_gain(x, y) ma wartość 1,0. Ewentualnie implementacje pozwalają też uniknąć tego scenariusza przez stosowanie wartości offset_sdr innej niż 0.

Implementacja może wybrać wartości offset_sdr i offset_hdr.

Mapa wzmocnienia to funkcja skalarna, która koduje pixel_gain(x, y) w przestrzeń logarytmiczna w odniesieniu do maksymalnego zwiększenia liczby treści i minimalnego zwiększenia ilości treści:

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)

Działanie funkcji recovery(x, y), w którym pixel_gain(x, y) ma wartość 0, to zdefiniowano implementację, ponieważ zasada log2(0) jest niezdefiniowana.

map_gamma to liczba zmiennoprzecinkowa, która musi być większa niż 0,0 i jest wybrane przez implementację.

Wartości maksymalnego wzmocnienia treści i min. wzmocnienia treści to: jest brane pod uwagę w przypadku danego wdrożenia i może decydować twórca treści. Maksymalne wzmocnienie treści nie może być mniejsze niż 1,0. Minimalne wzmocnienie treści musi być włączone mieści się w zakresie (0,0, 1,0].

Wartości w polu recovery(x, y) mogą się mieścić w zakresie [0,0, 1,0].

Mapa wzmocnienia jest zapisana jako obraz dodatkowy JPEG i dlatego musi być zakodowany przy użyciu 8-bitowych, bez znaku całkowitych wartości liczbowych, więc mieszczą się w zakresie [0–255]. Każda wartość reprezentuje wartość recovery(x, y) i jest zapisywany w jednym pikselu drugorzędnej .

W przypadku 8-bitowej pamięci całkowitej z nieoznaczonym znakiem zakodowana wartość jest zdefiniowana jako :

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

Obliczanie funkcji kodowania odbywa się w postaci zmiennoprzecinkowej i jest konwertowane na koniec 8-bitowej liczby całkowitej bez znaku, zaokrąglając zgodnie ze wskazówkami.

W ten sposób powstaje 8-bitowa reprezentacja liczb całkowitych bez znaku recovery(x, y) wartości z zakresu od 0,0 do 1,0. Zakodowana mapa wzmocnienia musi być przechowywana w dodatkowego elementu graficznego w formacie JPEG. Implementacja wybiera ilość kompresję używaną podczas kodowania JPEG.

Po zapisaniu mapy wzmocnienia w obrazie dodatkowym jest ona dołączana do obrazu podstawowego z metadanymi MPF i GContainer XMP. Obraz główny GContainer katalog musi zawierać element obrazu mapy wzmocnienia.

Rozdzielczość zapisanej mapy wzmocnienia jest zdefiniowana przez implementację niż rozdzielczość zdjęcia głównego. W przypadku, gdy zysk Mapa jest skalowana do innej rozdzielczości niż zdjęcie główne, musi być dwuliniowa lub lepsza i musi być zdefiniowana przez implementację.

Orientacja mapy wzmocnienia musi być zgodna z orientacją zdjęcia głównego. Jeśli wszystkie metadane orientacji w zapisanym obrazie mapy wzmocnienia, jak w przypadku formatu EXIF, nie jest używany.

Jeśli jest dostępny, profil kolorów mapy wzmocnienia nie jest używany.

Kontener mapy

Profil kolorów

Profil kolorów zdjęcia musi być wskazany za pomocą profilu ICC dla główny obraz.

Atrybuty XMP

Obraz główny zawiera metadane XMP, które definiują co najmniej 2 obrazy z dodatkowymi z informacjami semantycznymi dla formatu mapy wzmocnienia wzmocnienia HDR.

Szczegółowe informacje o tym formacie znajdziesz w podsekcjach poniżej. Dodatkowe informacje informacje o ogólnej zgodności z kontenerem GContainer są określone w Szczegóły kontenera GContainer.

Wartości atrybutów opisane w poniższych tabelach są przechowywane jako proste XMP wartości podstawowych typów wartości XMP.

Wartości semantyczne elementu

Właściwość Item:Semantic określa znaczenie specyficzne dla aplikacji każdego elementu multimedialnego w katalogu kontenera.

Wartość Opis
Główny Wskazuje, że element multimedialny jest obrazem głównym, gotowym do wyświetlenia. w kontenerze. Katalog musi zawierać jeden element „Primary” elementu.
Mapa zysku Wskazuje, że element multimedialny to mapa zysku. Katalog może zawierać maksymalnie 1 wartość „GainMap” elementu.

Metadane mapy z wzmocnieniem HDR

Metadane mapy Wzbogacenie kodują informacje o tym, jak interpretować i stosować wzmocnienie mapy, aby uzyskać reprezentację HDR głównego zdjęcia.

Identyfikator URI przestrzeni nazw XMP dla rozszerzenia XMP metadanych mapy zysku to http://ns.adobe.com/hdr-gain-map/1.0/ Domyślny prefiks przestrzeni nazw to hdrgm

Te metadane są przechowywane w pakiecie XMP obrazu mapy wzmocnienia oraz właściwości muszą występować w elemencie rdf:Description obrazu mapy wzmocnienia XMP:

Nazwa Typ Opis
hdrgm:Wersja Tekst Używana wersja formatu mapy wzmocnienia wzmocnienia. To jest wersja „1.0”. Required.
hdrgm:RenditionIsHDR Wartość logiczna Wskazuje zakres dynamiczny obrazu głównego. „Fałsz” wskazuje Głównym obrazem jest SDR, a mapę wzmocnienia można połączyć z nim, aby uzyskać Odwzorowanie HDR. „Prawda” wskazuje, że główne zdjęcie to HDR, a mapa wzmocnienia można połączyć z nią w celu wygenerowania wersji SDR. Musi mieć wartość „False”. Opcjonalnie; domyślna wartość to „False”.
hdrgm:GainMapMin Rzeczywista lub uporządkowana tablica wartości rzeczywistych Zapisuje wartości zmiennej map_min_log2. To jest log2 minimalnego zwiększenia ilości treści, czyli minimalny dozwolony współczynnik luminancji liniowej docelowej wartości HDR względem (podzielonej wartości od) obrazu SDR z określonym pikselem. Może to być pojedynczy element Real lub uporządkowanej tablicy wartości rzeczywistych. Uporządkowana tablica wartości rzeczywistych może zawierać jeden dotyczy wszystkich kanałów lub trzech elementów dla koloru czerwonego, zielonego Kanały niebieskie. Wartość nie może być większa niż hdrgm:GainMapMax Opcjonalnie; domyślna wartość to 0,0.
hdrgm:GainMapMax Rzeczywista lub uporządkowana tablica wartości rzeczywistych Zapisuje wartości zmiennej map_max_log2. To jest log2 maksymalnego dozwolonego współczynnika treści, czyli maksymalnego dozwolonego współczynnika luminancji liniowej dla odzwierciedlenia celu HDR względem (podzielonej wartości od) obrazu SDR z określonym pikselem. Może to być pojedynczy element Real lub uporządkowanej tablicy wartości rzeczywistych. Uporządkowana tablica wartości rzeczywistych może zawierać jeden dotyczy wszystkich kanałów lub trzech elementów dla koloru czerwonego, zielonego Kanały niebieskie. Wartość nie może być mniejsza niż hdrgm:GainMapMin Wymagany.
hdrgm:gamma Rzeczywista lub uporządkowana tablica wartości rzeczywistych Zapisuje wartości zmiennej map_gamma. Jest to wartość gamma zostaną zastosowane do zapisanych wartości mapy. Może to być pojedynczy obiekt rzeczywisty lub uporządkowany tablica Prawda. Uporządkowana tablica wartości rzeczywistych może zawierać jeden element, który ma zastosowanie do wszystkich kanałów lub trzy elementy dla kanałów czerwonego, zielonego i niebieskiego . Wartość musi być większa niż 0,0. Opcjonalnie; Wartość domyślna to 1.0.
hdrgm:OffsetSDR Rzeczywista lub uporządkowana tablica wartości rzeczywistych Zapisuje wartości zmiennej offset_sdr. Jest to przesunięcie mają zastosowanie do wartości pikseli SDR podczas generowania i stosowania mapy wzmocnienia. Może to być pojedyncza tablica wartości rzeczywistych lub uporządkowana tablica wartości rzeczywistych. Gdy uporządkowana tablica może zawierać jeden element, który dotyczy wszystkich kanałów lub trzech elementów. odpowiednio czerwony, zielony i niebieski. Wartość musi być równa 0,0 lub większa. Opcjonalnie; domyślna wartość to 0,015625 (1/64).
hdrgm:offset (HDR) Rzeczywista lub uporządkowana tablica wartości rzeczywistych Zapisuje wartości zmiennej offset_hdr. Jest to przesunięcie zastosować do wartości pikseli HDR podczas generowania mapy wzmocnienia i jej stosowania. Może to być pojedyncza tablica wartości rzeczywistych lub uporządkowana tablica wartości rzeczywistych. Gdy uporządkowana tablica może zawierać jeden element, który dotyczy wszystkich kanałów lub trzech elementów. odpowiednio czerwony, zielony i niebieski. Wartość musi być równa 0,0 lub większa. Opcjonalnie; domyślna wartość to 0,015625 (1/64).
hdrgm:HDRCapacityMin Prawdziwe Zapisuje wartość parametru hdr_capacity_min. To jest log2 minimalnej wartości wzmocnienia wyświetlania, której dotyczy mapa w ogóle nie zastosowano. Ta wartość wpływa również na stopień zastosowania mapy zysku funkcji wzmocnienia wyświetlacza. Wartość musi być równa 0,0 lub większa. Opcjonalnie; domyślna wynosi 0,0.
hdrgm:HDRCapacityMax Prawdziwe Zapisuje wartość parametru hdr_capacity_max. To jest log2 maksymalnej wartości wzmocnienia wyświetlania, której dotyczy mapa w całości zastosowano. Ta wartość wpływa też na stopień zastosowania mapy wzmocnienia na podstawie wzmocnienia sygnału. Musi być większe niż hdrgm:HDRCapacityMin Wymagany.

Przykładowa mapa zysku XMP

Poniższy przykład prawidłowego pakietu XMP z mapą wzmocnienia zawiera pobrane metadane z przykładowego pliku pokazanego w sekcji Wprowadzenie.

<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>

Przechowywanie MPF mapy wzmocnienia

Obraz mapy wzmocnienia musi być zapisany jako obraz dodatkowy zgodnie z definicją w CIPA DC-x 007-2009 Multi-Picture Format, jak określono w Zależności.

Dekoduj

W tej sekcji opisano sposób zdekodowania mapy wzmocnienia z zgodnego pliku JPEG.

Sygnał formatu

Plik JPEG zgodny z tym formatem może zostać rozpoznany na podstawie obecności hdrgm:Version="1.0" w pakiecie XMP obrazu podstawowego, gdzie hdrgm to wartość Identyfikator URI przestrzeni nazw http://ns.adobe.com/hdr-gain-map/1.0/.

Zlokalizuj obraz mapy wzmocnienia

Szczegółowe informacje o analizowaniu i dekodowaniu obrazu znajdziesz w sekcji GContainer szczegóły. A „GainMap” semantyczny element w XMP rdf:Directory jest używany do sygnalizowania lokalizacji obrazu mapy wzmocnienia. Można również użyć IFD indeksu MPF i skanowania obrazów XMP jest używany do określania lokalizację mapy zysku.

Obsługa nieprawidłowych metadanych

Metadane są uznawane za nieprawidłowe, jeśli brakuje wymaganego pola lub jeśli takie pole występuje pole zawiera nieprawidłową wartość. Wartość może być nieprawidłowa, ponieważ nie jest można przeanalizować do określonego typu lub dlatego, że wykracza poza oczekiwany zakres.

W przypadku wykrycia nieprawidłowych metadanych należy zignorować mapę wzmocnienia i przesłać SDR. obrazu.

Wyświetlacz

Pliki zakodowane w formacie mapy wzmocnienia wzmocnienia HDR mogą być renderowane na konwencjonalnych wyświetlaczy SDR lub wyświetlaczach HDR o większej luminancji. dane wyjściowe.

Użyj mapy wzmocnienia, aby utworzyć dostosowane odwzorowanie HDR

W poniższych obliczeniach w tej sekcji przyjęto arytmetykę zmiennoprzecinkową.

encoded_recovery(x, y) to jednokanałowa, 8-bitowa, nieoznaczona wartość całkowita z obrazu mapy wzmocnienia.

Jeśli mapa wzmocnienia ma inną rozdzielczość niż zdjęcie główne, Wartość encoded_recovery(x, y) jest określana na podstawie filtrowanej próbki danych uzyskać obraz mapy dla wartości x i y w zakresie szerokości i wysokości głównego obrazu, . Metoda filtrowania musi być dwuliniowa lub lepsza i musi być implementacji.

Wartość map_gamma jest określana przez pole metadanych hdrgm:Gamma.

log_recovery(x, y) to znormalizowane wzmocnienie piksela zmiennoprzecinkowego w przestrzeń logarytmiczna:

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

Maksymalne wzmocnienie wyświetlania to skalarna wartość zmiennoprzecinkowa zdefiniowana jako stosunek między aktualnego punktu bieli HDR podzielona przez bieżący punkt bieli SDR. Ten jest dostarczana przez system wyświetlania i może się zmieniać z czasem.

Wartość hdr_capacity_max jest określana przez pole metadanych hdrgm:HDRCapacityMax. Wartość hdr_capacity_min jest określana przez pole metadanych hdrgm:HDRCapacityMin.

Pole weight_factor jest określane w następujący sposób, gdy hdrgm:BaseRenditionIsHDR jest „Fałsz”:

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)

Gdy hdrgm:BaseRenditionIsHDR ma wartość „Prawda”, zamiast tego drugie równanie ma postać:

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

Wartość gain_map_max jest określana przez pole metadanych hdrgm:GainMapMax. Wartość gain_map_min jest określana przez pole metadanych hdrgm:GainMapMin. Wartość offset_sdr jest określana przez pole metadanych hdrgm:OffsetSDR. offset_hdr zależy od pola metadanych hdrgm:OffsetHDR.

Zaadaptowane liniowo przekształcenie HDR można obliczyć w ten sposób:

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

W razie potrzeby implementacja może zastosować do HDR(x, y) przekształcenie, aby umieścić w miejscu oczekiwanym przez wyświetlacz. Wszelkie takie przekształcenia muszą być poprawna kolorowo.

Szczegóły kontenera GContainer

W tej sekcji określono dodatkowe wymagania, dzięki którym ten format będzie zgodny za pomocą metadanych XML w GContainer. Metadane są zserializowane zgodnie z normą ISO 166841:2011(E) XMP Specification Part 1 (Specyfikacja XMP) wewnątrz głównego pliku graficznego zgodnie z opisem w części 3 specyfikacji Adobe XMP Miejsce na dane w Plikach. Główny plik obrazu zawiera tych elementów w formacie RDF/XML.

Wymagania dotyczące pakietów XMP

Pakiet XMP powinien zawierać rozszerzenie XMP metadanych mapy wzmocnienia poprzez tag identyfikator URI przestrzeni nazw http://ns.adobe.com/hdr-gain-map/1.0/. Domyślna przestrzeń nazw prefiks to hdrgm.

Pakiet XMP powinien zdefiniować element hdrgm:Version="1.0".

Element kontenera

Przestrzeń nazw XMP rozszerzenia GContainer XMP to http://ns.google.com/photos/1.0/container/ Domyślny prefiks przestrzeni nazw to Container

Obraz główny zawiera element Container:Directory w metadanych XMP określając kolejność i właściwości kolejnego pliku multimedialnego w pliku. kontenera. Każdy plik w kontenerze ma swój element multimedialny w Container:Directory Element multimedialny opisuje lokalizację w pliku. kontenera i podstawowych właściwości każdego dołączonego pliku.

Element kontenera jest kodowany w metadanych XMP obrazu głównego i definiuje katalog elementów multimedialnych w kontenerze. Elementy multimedialne muszą znajdować się w pliku kontenera w tej samej kolejności co elementy elementu multimedialnego w i musi być ciasno zapakowany.

Katalog może zawierać tylko jedną kategorię „Główny” elementu graficznego i musi on być pierwszy elementu w katalogu.

Nazwa elementu Typ Opis
Kontener:katalog Uporządkowana tablica struktur Uporządkowana tablica elementów struct, z których każda zawiera element Container:Item struct definiującego układ i zawartość kontenera.

Element elementu

Elementy elementu opisują sposób, w jaki każdy element multimedialny jest używany przez aplikację.

Identyfikator URI przestrzeni nazw XMP dla rozszerzenia XMP elementu GContainer to http://ns.google.com/photos/1.0/container/item/ Domyślny prefiks przestrzeni nazw jest Item.

Pierwszy element multimedialny musi być obrazem głównym.Musi zawierać Item:Semantic = "Primary" oraz Item:Mime wymienione w Wartości typów MIME elementów.

Długość głównego elementu ze zdjęciem jest określana na podstawie analizy obrazu podstawowego zgodnie z jej typem MIME, zaczynając od początku kontenera pliku.

Elementy multimedialne mogą zawierać atrybut Item:Padding określający dodatkowe dopełnienie między końcem elementu multimedialnego a początkiem następnego elementu multimedialnego elementu. Gdy ten element znajduje się przy ostatnim elemencie multimedialnym w tabeli Container:Directory, Item:Padding oznacza dopełnienie między końcem elementu a końcem elementu .

Każdy element multimedialny musi zawierać typ Item:Mime i atrybuty Item:Semantic. Elementy multimedialne z obrazami dodatkowymi muszą zawierać atrybuty Item:Length.

Sekwencyjne elementy multimedialne mogą udostępniać dane zasobów w kontenerze plików. pierwszy element multimedialny określa lokalizację zasobu w kontenerze pliku, a kolejne udostępnione elementy multimedialne mają Item:Length na 0. W przypadku, gdy dane zasobów same w sobie są kontenerem, funkcja Item:URI może zostać użyta do określenia lokalizacja danych elementu multimedialnego w zasobie.

Lokalizacja zasobów elementu multimedialnego w kontenerze jest określana przez zsumowanie długość kodowania obrazu głównego, wartości Item:Length pary klucz-wartość poprzedzające dodatkowe zasoby elementów multimedialnych i wszystkie poprzedzające zasoby Item:Padding . Wartość Item:Padding jest uznawana za 0 w przypadku zasobów elementów multimedialnych, które nie określ jego wartość.

Nazwa atrybutu Typ Opis
Element:Mim Tekst Prosty ciąg znaków wskazujący typ MIME elementu multimedialnego w kontenera. Definicję znajdziesz w sekcji Wartości typów MIME elementów. Required.
Element:semantyczny Tekst Prosty ciąg znaków wskazujący znaczenie mediów specyficzne dla aplikacji elementu. Definicję znajdziesz w sekcji Wartości semantyczne elementów. Required.
Element:Długość Liczba całkowita Prosty ciąg znaków zawierający dodatnią liczbę całkowitą (w bajtach) elementu. Długość 0 oznacza, że zasób elementu multimedialnego jest udostępniany poprzednim element multimedialny. Wymagany w przypadku dodatkowych elementów multimedialnych. Opcjonalny dla instancji głównej graficzny element multimedialny.
Element:Etykieta Tekst Ciąg zdefiniowany przez implementację służący do rozróżniania wielu elementów elementy z tym samym ustawieniem Item:Semantic. Atrybut opcjonalny.
Element:dopełnienie Liczba całkowita Ciąg zawierający dodatnią liczbę całkowitą (w bajtach) dodatkowej dopełnienie między końcem elementu multimedialnego a początkiem następnego elementu element multimedialny lub koniec pliku, jeśli zostanie użyty w ostatnim elemencie multimedialnym w Container:Directory Jeśli wartość nie jest podana, przyjmuje się wartość 0. Opcjonalne.
Element:URI Tekst Ciąg znaków identyfikatora URI zgodny z normą ISO/IEC 14496-12 w sekcji 8.11.9, zawierający względny identyfikator URI danych multimedialnych w zasobie elementu multimedialnego. Wartość domyślna to który jest podstawowym zasobem obrazu. Opcjonalny dla typów MIME podstawowy format pliku multimedialnego ISO/IEC 14496-12. Można ich użyć w inny sposób.

Wartości typu MIME elementu

Atrybut Item:Mime określa typ MIME każdego elementu multimedialnego. i skalowalnych danych.

Wartość Opis
obraz/JPEG Obraz JPEG.

Przykładowy XMP GContainer

Poniższy przykład prawidłowego pakietu XMP GContainer zawiera metadane pobrane z przykładowego pliku pokazanego w sekcji Wprowadzenie.

<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>