Ultra HDR Resim Biçimi v1.0

Giriş

Bu belge, JPEG resim dosyasında logaritmik aralık kazanımı harita görüntüsünü kodlayan yeni bir dosya biçiminin davranışını tanımlar. Yeni biçimi desteklemeyen eski okuyucular, resim dosyasından geleneksel düşük dinamik aralık resmini okur ve görüntüler.Bu biçimi destekleyen okuyucular, birincil resmi kazanç haritasıyla birleştirir ve uyumlu ekranlarda yüksek dinamik aralıklı resim oluşturur.

Bu belgenin geri kalanında, bu biçimin kullanılması için gereken süreçler açıklanmaktadır. Bu biçime uyan bir resmin yaşam döngüsü genel olarak şu şekildedir:

  1. Kodlama

    1. Harita oluşturma elde edin
    2. Harita sıkıştırması elde edin
    3. Harita kapsayıcısı oluşturma elde etme
  2. Kod çözülüyor


Örnek
İlişkili meta veriler ve ofset bilgileriyle birlikte Ultra HDR resim biçimi dosya düzeni

Şekil 1. Örnek dosya düzeni ve ilgili meta veriler.

Motivasyon

Bu dosya biçiminin amacı, ek bilgileri SDR görüntü dosyalarında kodlamaktır. Bu dosyalar, optimum HDR oluşturmalarını tek bir dosyada üretmek için görüntüleme tekniğiyle birlikte kullanılabilir.

Bunun pratik olması için dosya biçimi şu özelliklere sahip olmalıdır:

  • Naif görüntüleyenlerde geleneksel SDR görüntüsünün gösterilmesi için geriye dönük uyumlu olun.
  • Fazladan alan kaplamaz.

Ayrıca, görüntüleme tekniği şunları sağlamalıdır:

  • Kodu çözmek için yoğun işlem yapmak gerekmez.
  • Ekranların HDR ve SDR beyaz noktaları arasındaki her orana uyum sağlayabilirsiniz. Bu noktalar cihazlar arasında, hatta tek bir cihazda geçici olarak farklılık gösterebilir.

Son olarak, tekniğin önceki işlemlerin tümünü hiçbir zaman olmaksızın yapabilmesi gerekir:

  • Öne çıkan anlardan klipler oluşturuluyor.
  • Ezici gölgeler.
  • Yerel kontrastı değiştirme veya sıkıştırma.
  • Göreli ton ilişkilerinin değiştirilmesi (sahnedeki nesneler arasındaki).

Bağımlılıklar

Aşağıda, bu spesifikasyon için normatif referanslar verilmiştir:

Tanımlar

  • SDR ekran

    • HDR içerikleri görüntülemek için tasarlanmamış geleneksel bir ekran. Bu ekranlar genellikle yaklaşık 400 cd/m2 veya daha düşük bir nominal en yüksek parlaklık üretir.
  • HDR ekran

    • HDR içerikler için tasarlanmış ekran. Bu ekranlar, genellikle SDR ekranlara kıyasla daha yüksek bir nominal en yüksek parlaklık (genellikle 800 cd/m2 veya daha yüksek) üretir ve ayrıca SDR ekranlara göre daha iyi kontrast oranlarına sahiptir.
  • Birincil görsel

    • Bir GContainer dosyasındaki ikincil medya dosyaları eklenmiş bir görüntünün ilk örneği. Birincil görüntü, dosya kapsayıcısında sonraki ikincil medya öğesi dosyalarının sırasını ve özelliklerini tanımlayan GContainer XMP meta verilerini içerir.
  • İkincil resim

    • Bir GContainer dosyasında birincil resme eklenen sonraki medya öğesi dosyaları.
  • Aralık sıkıştırma

    • Fotoğrafçılıkta, gerçek dünya sahneleri genellikle SDR ekranın temsil edebileceğinden daha dinamik bir aralığa sahiptir. Bir görüntünün dinamik aralığını azaltmak için aralık sıkıştırma gibi (yerel ton eşleme olarak da adlandırılır) işlemler gerekir. Bu azaltmanın, yerel kontrastı mümkün olduğunca korurken parlak alanları kırpmayı veya gölgeleri sıkıştırmayı önlemesi gerekir.Resimdeki büyük parlaklık kenarlarının boyutunu azaltmaya çalışırsınız. Bu da genel kontrasta daha fazla katkıda bulunur. Küçük parlaklık kenarlarının boyutunu korumaya çalışırken ayrıntılardır.Birçok farklı uygulama olsa da, böyle bir işlem günümüzde çoğu modern dijital fotoğraf makinesinde standarttır.
  • SDR beyaz nokta

    • Zaman içinde bir ekrandaki SDR içeriğinin maksimum doğrusal parlaklığı.
  • HDR beyaz nokta

    • Zamandaki belirli bir noktada bir ekrandaki HDR içeriğinin maksimum doğrusal parlaklığı. Bu değer genellikle SDR beyaz noktasından daha yüksektir.
  • Güçlendirme

    • HDR beyaz noktasının SDR beyaz noktasına bölümü.
  • Maksimum içerik güçlendirme (denklemlerde max_content_boost)

    • Bu değer, içerik oluşturucunun bir resmin HDR ekranında gösterildiğinde SDR işleme göre ne kadar parlak olacağını kısıtlamasını sağlar.
    • Bu değer, belirli bir görsel için sabittir. Örneğin, değer dörtse herhangi bir piksel için görüntülenen HDR görüntüsünün doğrusal parlaklığı, en fazla 4 kat daha fazla doğrusal parlaklık olmalıdır. Pratikte bu, sahnenin daha parlak kısımlarının 4 kata kadar daha parlak gösterilebileceği anlamına gelir.
    • Pratikte bu değer genellikle 1, 0'dan büyüktür.
    • Her zaman Min. içerik güçlendirme'den büyük veya bu değere eşittir.
  • Minimum içerik güçlendirme (denklemlerde min_content_boost)

    • Bu değer içerik oluşturucunun, bir resmin HDR ekranda gösterildiğinde SDR oluşturma işlemine göre ne kadar koyu alabileceğini kısıtlamasına olanak tanır.Bu değer, belirli bir görsel için sabittir.
    • Örneğin, değer 0, 5 ise herhangi bir piksel için görüntülenen HDR görüntüsünün doğrusal parlaklığı, SDR oluşturma işleminin doğrusal parlaklığının (en az) 0, 5 katı olmalıdır.
    • Pratikte bu değer genellikle 1,0'a eşit veya 1,0'dan daha küçüktür.
    • Her zaman Maksimum içerik güçlendirme değerinden düşük veya buna eşittir.
  • Maksimum görüntülü reklam artışı (denklemlerde max_display_boost)

    • Belirli bir zamanda, bir ekranın desteklediği maksimum kullanılabilir artış. Bu değer, cihaz ayarlarına ve ortam ışığı koşulları ya da ekranda kaç tane parlak piksel olduğu gibi diğer faktörlere bağlı olarak zaman içinde değişebilir.
    • Örneğin, bu değer 4,0 ise ekran, SDR beyaz noktasından en fazla dört kat daha parlak bir piksel görüntüleyebilir. Ekran her zaman en az SDR beyaz kadar parlak olarak HDR beyazı gösterebileceği için bu değer her zaman >= 1, 0'dır.
  • Ekran güçlendirme

    • Maksimum içerik artışı ve maksimum görüntüleme artışından daha azına eşittir. Bu değer her zaman >= 1,0'dır.
    • Örneğin, maksimum içerik artışı 4,0 ve maksimum görüntüleme artışı 3,0 ise görüntü artışı 3,0 olur. Ekran özellikleri sınırlayıcı faktör olduğundan, pikseller SDR'ye göre 3 kat daha parlaktır.
    • Başka bir örnek olarak, maksimum içerik artışı 4,0 ve maksimum görüntüleme artışı 5,0 ise görüntü artırması 4,0 olur. İçeriğin amacı sınırlayıcı faktör olduğundan, pikseller SDR'ye göre 4 kat daha parlak görüntülenir.
  • Hedef HDR oluşturma

    • İçerik üreticiye göre ideal HDR oluşturma.
  • Uyarlanmış HDR oluşturma

    • Hedef HDR oluşturma mevcut ekran güçlendirmesi için uyarlandıktan sonra ekranda gösterilen son HDR oluşturma işlemi.
  • Harita elde edin (denklemlerde recovery(x, y))

    • Hedef HDR işlemini üretmek için SDR oluşturmada her pikselin ne kadar parlaklık uygulanacağını gösteren harita. Bu harita tek kanallı veya çok kanallı olabilir. Çok kanallı harita, kırmızı, yeşil ve mavi gibi her renk kanalı için ayrı bir kazanç olduğunu gösterir. Bu belgede tek kanallı harita örneği gösterilmektedir.
  • clamp(x, a, b)

    • x değerini [a, b] aralığına sabitleyin.
  • exp2(x)

    • Taban 2 üssü; 2x.
  • floor(x)

    • x'e eşit veya x'ten küçük en yakın tam sayıyı döndürür.
  • log2(x)

    • 2. taban logaritma; log2(x)
  • pow(b, x)

    • Üs alma; bx.
  • XMP

  • Çoklu Resim Biçimi

    • Çoklu Resim Biçimi, JPEG kodlu birden fazla görüntüyü tek bir JPEG dosyasında depolamak için Kamera ve Görüntüleme Ürünleri Birliği (CIPA) tarafından geliştirilen bir tekniktir.
    • Daha fazla bilgi için CIPA DC-x 007-2009 Multi-Resim Biçimi'ne ilişkin teknik belgeye bakın.
  • GContainer

    • GContainer, bir resmin birincil resim olarak kabul edildiği bir görüntü kapsayıcısında birden fazla görüntü depolamak için kullanılan bir yöntemdir. Ek resimler, alternatif versiyonlar veya yardımcı resimler olarak kabul edilir. XMP meta verileri, ek resimlerin varlığını ve anlamını bildirmek için kullanılır. Daha fazla bilgi edinmek için GContainer ayrıntıları bölümüne bakın.

Kodla

Bu bölümde, uyumlu bir JPEG dosyasının nasıl kodlanacağı açıklanmaktadır. JPEG biçimi hakkında daha fazla bilgi için Bağımlılıklar bölümündeki T.81 (09/92) Kesintisiz tonlu hareketsiz resimlerin dijital olarak sıkıştırılması ve kodlanması bölümüne bakın.

Harita oluşturma elde edin

Kamera görüntüleme ardışık düzenleri, daha yüksek dinamik aralık parlaklık verilerini daha düşük geleneksel SDR ekranlar aralığına sıkıştırmak için genellikle bir aralık sıkıştırma işlemi gerçekleştirir. Kazanç haritası, orijinal, daha yüksek dinamik aralık parlaklığı verilerini kurtarmak için yeterli veriyi depolayacak bir mekanizma sağlar.

Bu bölümde yer alan aşağıdaki hesaplamalarda, kayan nokta aritmetiği olduğu varsayılır.

Aşağıdaki işlevler SDR görüntüsünü tanımlar:

  • SDR'(x, y), üç kanallı, doğrusal olmayan (genellikle gama kodlamalı) birincil görüntüdür.
  • SDR(x, y), üç kanallı birincil resmin doğrusal sürümüdür. Bu boyut, birincil resim renk alanının doğrusal sürümüne dönüştürülerek elde edilir. Örneğin, sRGB aktarım işlevi bulunan bir renk alanından sRGB renk primerlerini koruyan doğrusal bir renk alanına geçiş yapabilirsiniz.

Ysdr(x, y) işlevi 0,0-1,0 aralığında tanımlanır ve standart dinamik aralıktaki birincil resim doğrusal parlaklığıdır:

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

HDR görüntüsü için de benzer tanımlar vardır.

  • HDR'(x, y), üç kanallı, doğrusal olmayan, yani PQ veya HLG kodlamalı bir resimdir.
  • HDR(x, y), üç kanallı doğrusal HDR görüntüdür.

Yhdr(x, y), HDR görüntünün belirli bir noktasındaki parlaklıktır:

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

Yhdr(x, y), 0,0 ile maksimum içerik güçlendirme aralığında tanımlanmıştır.

SDR ve HDR resimler aynı çözünürlükte olmalıdır. SDR görüntünün renk profili, HDR resmin renk alanını tanımlar.

Örneğin, SDR birincil resminin Display-P3 renk profili varsa HDR resmi, profilin birincil renklerine göre tanımlanır. Yani HDR görüntüde Display-P3 primerleri de bulunur.

Kazanç haritası, istenen HDR görüntü parlaklığını (Yhdr(x, y)) ve standart aralık parlaklık görüntüsünü (Ysdr(x, y)) içeren iki doğrusal görüntüden hesaplanır.

pixel_gain(x, y) işlevi, Yhdr(x, y) işlevi ile Ysdr(x, y) işlevi arasındaki oran olarak tanımlanır:

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

Ysdr(x, y) ve offset_sdr değerlerinin ikisinin de sıfır olduğu pixel_gain(x, y) işlev davranışı, uygulama tarafından tanımlanır.

Örneğin uygulamalar, pixel_gain(x, y)'yi 1,0 olarak tanımlayarak Ysdr(x, y) ve offset_sdr öğelerinin sıfır olduğu durumu ele alabilir. Alternatif olarak, uygulamalarda sıfır olmayan bir offset_sdr kullanarak bu senaryodan kaçınabilirsiniz.

Uygulama sırasında offset_sdr ve offset_hdr değerleri seçilebilir.

Kazanç haritası, maksimum içerik artışı ve minimum içerik artışına göre pixel_gain(x, y) değerini logaritmik bir alanda kodlayan skaler bir işlevdir:

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)

log2(0) tanımlanmamış olduğundan pixel_gain(x, y) sıfır olan recovery(x, y) işlev davranışı uygulama olarak tanımlanır.

map_gamma, 0,0'dan büyük olması gereken ve uygulama tarafından seçilen bir kayan nokta sayısıdır.

Maksimum içerik artırma ve minimum içerik güçlendirme değerleri, uygulama tarafından tanımlanır ve içerik oluşturucu tarafından rastgele belirlenebilir. Maksimum içerik güçlendirme en az 1,0 olmalıdır. Minimum içerik güçlendirme değeri (0,0, 1,0] aralığında olmalıdır.

recovery(x, y) içindeki değerler, [0,0, 1,0] aralığıyla sınırlıdır.

Kazanç haritası ikincil bir resim JPEG dosyasında depolanır ve bu nedenle 8 bit, imzalanmamış tam sayı değerleri kullanılarak (yani [0, 255] aralığında) kodlanmalıdır. Her değer bir recovery(x, y) değerini temsil eder ve ikincil resmin bir pikselinde depolanır.

8 bitlik imzasız tam sayı depolama için kodlanmış değer aşağıdaki şekilde tanımlanır:

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

Kodlama işlevinin hesaplanması, kayan nokta üzerinde yapılır ve belirtilen şekilde yuvarlanarak sonda 8 bitlik imzalanmamış tam sayı sonucuna dönüştürülür.

Bu kodlama, recovery(x, y) değerlerinin 0,0 ile 1,0 arasında 8 bitlik imzasız tam sayı gösterimiyle sonuçlanır. Kodlanmış kazanç haritası, JPEG olarak ikincil bir resim öğesinde depolanmalıdır. Uygulama, JPEG kodlaması sırasında kullanılacak sıkıştırma miktarını seçer.

Kazanç haritası ikincil bir resimde depolandıktan sonra MPF ve GContainer XMP meta verilerine sahip birincil resme eklenir. Birincil resim GContainer dizini, kazanç harita görüntüsü için bir öğe içermelidir.

Depolanan kazanç haritasının çözünürlüğü uygulama tarafından tanımlanır ve birincil görüntüden farklı olabilir. Kazanç Haritası'nın, depolama için birincil görüntüden farklı bir çözünürlüğe ölçeklenmesi durumunda, örnekleme yöntemi iki doğrusal veya daha iyi olmalıdır ve uygulama tanımlanır.

Kazanç haritasının yönü, birincil resmin yönüyle eşleşmelidir. Varsa, saklanan kazanç harita görüntüsündeki yön meta verileri EXIF'de olduğu gibi kullanılmaz.

Varsa, kazanç haritasının renk profili kullanılmaz.

Harita kapsayıcı kazan

Renk profili

Resmin renk profili, birincil resim için ICC Profili aracılığıyla belirtilmelidir.

XMP özellikleri

Birincil resim, HDR kazanç harita biçimi için ekstra anlamsal bilgilere sahip en az iki resim tanımlamak üzere XMP meta verileri içerir.

Aşağıdaki alt bölümlerde bu biçime özgü ayrıntılar yer alır. GContainer'a genel uygunlukla ilgili ek bilgiler GContainer ayrıntıları bölümünde belirtilmiştir.

Aşağıdaki tablolarda açıklanan özellik değerleri, belirtilen XMP temel değer türlerinin XMP basit değerleri olarak depolanır.

Öğe semantik değerleri

Item:Semantic özelliği, kapsayıcı dizinindeki her medya öğesinin uygulamaya özel anlamını tanımlar.

Değer Açıklama
Birincil Medya öğesinin, kapsayıcıda görüntülenmeye hazır birincil resim olduğunu belirtir. Dizin bir "Birincil" öğe içermelidir.
GainMap Medya öğesinin bir kazanç haritası olduğunu belirtir. Dizin en fazla bir "GainMap" öğesi içerebilir.

HDR Edinme harita meta verileri

Kazanç haritası meta verileri, birincil görüntünün HDR gösterimini üretmek için kazanç haritasının nasıl yorumlanıp uygulanacağıyla ilgili bilgileri kodlar.

Kazanç haritası meta verisi XMP uzantısının XMP ad alanı URI'si şudur: http://ns.adobe.com/hdr-gain-map/1.0/. Varsayılan ad alanı öneki hdrgm şeklindedir.

Bu meta veri, kazanç harita görüntüsünün XMP paketinde depolanır ve aşağıdaki özellikler, kazanç harita görüntüsü XMP'nin rdf:Description öğesinde görünmelidir:

Ad Tür Açıklama
hdrgm:Sürüm Metin Kullanılan kazanç harita biçiminin sürümü. Bu sürüm "1.0"dır. Required.
hdrgm:TemelOluşturmaHDR Boole Birincil resmin dinamik aralığını gösterir. "False" değeri, birincil görüntünün SDR olduğunu ve kazanç haritasıyla birlikte bir HDR oluşturma işlemi oluşturulabileceğini belirtir. "True" değeri, birincil görüntünün HDR olduğunu ve kazanç haritasının SDR işlemini oluşturmak için bu görüntüyle birleştirilebileceğini belirtir. "False" (Yanlış) olmalıdır. İsteğe bağlı; varsayılan değer "False"'tır.
hdrgm:GainMapMin Reel veya sıralı Real dizisi map_min_log2 değerlerini depolar. Bu, belirli bir pikselde hedef HDR oluşturma için izin verilen minimum içerik artışı oranı olan log2 minimum içerik artışıdır. Bu değer, SDR resmin değerine göre (bölünmüş) elde edilir. Tek bir Real veya sıralı bir Real dizisi olabilir. Sıralı bir Reals dizisi, tüm kanallar için geçerli olan bir öğe, sırasıyla Kırmızı, Yeşil ve Mavi kanallar için üç öğe içerebilir. hdrgm:GainMapMax değerinden küçük veya buna eşit olmalıdır. İsteğe bağlı; varsayılan değer 0,0'dır.
hdrgm:GainMapMax Reel veya sıralı Real dizisi map_max_log2 değerlerini depolar. Bu, belirli bir pikselde hedef HDR oluşturma için izin verilen maksimum içerik artışı oranı olan maksimum içerik güçlendirmesinin log2 değeridir. Bu değer, SDR resmin değerine (bölünmüş) göre gösterilir. Tek bir Real veya sıralı bir Real dizisi olabilir. Sıralı bir Reals dizisi, tüm kanallar için geçerli olan bir öğe, sırasıyla Kırmızı, Yeşil ve Mavi kanallar için üç öğe içerebilir. hdrgm:GainMapMin değerinden büyük veya buna eşit olmalıdır. Zorunludur.
hdrgm:Gama Reel veya sıralı Real dizisi map_gamma değerlerini depolar. Bu, depolanan harita değerlerine uygulanacak gamadır. Tek bir Real veya sıralı bir Real dizisi olabilir. Sıralı bir Reals dizisi, tüm kanallara uygulanan bir öğe, sırasıyla Kırmızı, Yeşil ve Mavi kanallar için üç öğe içerebilir. 0,0'dan büyük olmalıdır. İsteğe bağlı; varsayılan değer 1,0'dır.
hdrgm:OfsetSDR Reel veya sıralı Real dizisi offset_sdr değerlerini depolar. Bu, kazanç haritası oluşturma ve uygulama sırasında SDR piksel değerlerine uygulanacak göreli konumdur. Tek bir Real veya sıralı bir Real dizisi olabilir. Sıralı bir Reals dizisi, tüm kanallar için geçerli olan bir öğe veya sırasıyla Kırmızı, Yeşil ve Mavi kanallar için üç öğe içerebilir. 0,0 veya daha büyük olmalıdır. İsteğe bağlı.Varsayılan değer 0,015625'tir (1/64).
hdrgm:OfsetHDR Reel veya sıralı Real dizisi offset_hdr değerlerini depolar. Bu, harita oluşturma ve uygulama sırasında HDR piksel değerlerine uygulanacak göreli konumdur. Tek bir Real veya sıralı bir Real dizisi olabilir. Sıralı bir Reals dizisi, tüm kanallar için geçerli olan bir öğe veya sırasıyla Kırmızı, Yeşil ve Mavi kanallar için üç öğe içerebilir. 0,0 veya daha büyük olmalıdır. İsteğe bağlı.Varsayılan değer 0,015625'tir (1/64).
hdrgm:HDRKapasiteMin Gerçek hdr_capacity_min değerini depolar. Bu, haritanın uygulandığı minimum görüntüleme artırma değerinin log2 kadarıdır. Bu değer, görüntü artışına göre kazanç haritasının ne kadar uygulanacağını da etkiler. 0,0 veya daha büyük olmalıdır. İsteğe bağlı; varsayılan değer 0,0'dır.
hdrgm:HDRCapacityMax Gerçek hdr_capacity_max değerini depolar. Haritanın tamamen uygulandığı maksimum görüntüleme artırma değerinin log2 kadarı. Bu değer, görüntü artışına göre kazanç haritasının ne kadar uygulanacağını da etkiler. hdrgm:HDRCapacityMin sayısından büyük olmalıdır. Zorunludur.

Örnek kazanç haritası XMP

Aşağıdaki geçerli kazanç eşlemesi XMP paketi örneği, Giriş bölümünde gösterilen örnek dosyadan alınan meta verileri içerir.

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

Kazanç haritasının MPF depolama alanı

Kazanç haritası görüntüsü, Bağımlılıklar bölümünde belirtildiği şekilde CIPA DC-x 007-2009 Çok Resimli Biçimi'nde tanımlandığı şekilde ek resim olarak depolanmalıdır.

Kodu çöz

Bu bölümde, uygun bir JPEG dosyasından kazanç haritası kodunun nasıl çözüleceği açıklanmaktadır.

Biçimin sinyali

Bu biçime uygun bir JPEG dosyası, birincil resmin XMP paketinde hdrgm:Version="1.0" bulunmasıyla tanımlanabilir. Burada hdrgm, ad alanı URI'sidir http://ns.adobe.com/hdr-gain-map/1.0/.

Kazanç haritası görüntüsünü bulun

Görüntüyü ayrıştırma ve kodunu çözmeyle ilgili ayrıntılar için aşağıdaki GContainer ayrıntıları bölümüne bakın. XMP rdf:Directory içindeki bir "GainMap" semantik öğesi, bir kazanç harita görüntüsünün konumunu işaret etmek amacıyla kullanılır. Alternatif olarak, bir kazanç haritasının konumunu belirlemek için MPF Endeksi IFD ve tarama görüntülerinin XMP'si kullanılır.

Geçersiz meta verileri işleme

Zorunlu bir alan yoksa veya geçersiz değere sahip bir alan varsa meta veriler geçersiz olarak kabul edilir. Bir değer, belirtilen türe göre ayrıştırılamadığı veya beklenen aralığın dışında olduğu için geçersiz olabilir.

Geçersiz meta verilerle karşılaşılırsa kazanç eşlemesi yok sayılmalı ve SDR görüntüsü gösterilmelidir.

Ekran

HDR kazanç harita biçiminde kodlanan dosyalar, geleneksel SDR ekranlarda veya daha yüksek parlaklık çıkışı yapabilen HDR ekranlarda oluşturulabilir.

Uyarlanmış HDR oluşturmayı oluşturmak için kazanç haritasını kullanma

Bu bölümde yer alan aşağıdaki hesaplamalarda, kayan nokta aritmetiği olduğu varsayılır.

encoded_recovery(x, y), kazanç harita görüntüsünden tek kanallı, 8 bitlik, imzalanmamış tam sayı değeridir.

Kazanç haritası birincil resimden farklı bir çözünürlükteyse encoded_recovery(x, y), birincil resim genişliği ve yüksekliği aralığında x ve y kazanç haritası resminin filtrelenmiş bir örneklemesiyle belirlenir. Filtreleme yöntemi çift doğrusal veya daha iyi olmalıdır ve uygulama tanımlıdır.

map_gamma, hdrgm:Gamma meta veri alanı tarafından belirlenir.

log_recovery(x, y), logaritmik bir alanda normalleştirilmiş kayan nokta piksel kazancıdır:

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

Maksimum ekran güçlendirme, mevcut HDR beyaz noktası arasındaki oran ile geçerli SDR beyaz noktası arasındaki oran olarak tanımlanan skaler kayan nokta değeridir. Bu değer, görüntülü reklam sistemi tarafından sağlanır ve zamanla değişebilir.

hdr_capacity_max, hdrgm:HDRCapacityMax meta veri alanı tarafından belirlenir. hdr_capacity_min, hdrgm:HDRCapacityMin meta veri alanı tarafından belirlenir.

hdrgm:BaseRenditionIsHDR "False" (Yanlış) olduğunda weight_factor aşağıdaki şekilde belirlenir:

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)

hdrgm:BaseRenditionIsHDR "Doğru" olduğunda ikinci denklem şu şekilde olur:

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

gain_map_max, hdrgm:GainMapMax meta veri alanı tarafından belirlenir. gain_map_min, hdrgm:GainMapMin meta veri alanı tarafından belirlenir. offset_sdr, hdrgm:OffsetSDR meta veri alanı tarafından belirlenir. offset_hdr, hdrgm:OffsetHDR meta veri alanı tarafından belirlenir.

Doğrusal olarak uyarlanmış HDR oluşturma şu şekilde hesaplanabilir:

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

Gerekirse uygulama, verileri ekranın beklediği alana yerleştirmek için HDR(x, y) öğesine bir dönüşüm uygulayabilir. Bu tür dönüşümler renksel olarak doğru olmalıdır.

GContainer ayrıntıları

Bu bölümde, bu biçimin GContainer XML meta verilerine uyması gibi ek gereksinimler açıklanmaktadır. Meta veriler, ISO 166841:2011(E) XMP Spesifikasyonu Bölüm 1'e göre serileştirilir ve Adobe XMP Specification Part 3 Storage in Files bölümünde açıklandığı gibi birincil resim dosyasının içine yerleştirilir. Birincil resim dosyası, RDF/XML olarak biçimlendirilmiş aşağıdaki öğeleri içerir.

XMP paket gereksinimleri

XMP paketi, ad alanı URI'sı http://ns.adobe.com/hdr-gain-map/1.0/ aracılığıyla kazanç haritası meta verisi XMP uzantısını içermelidir. Varsayılan ad alanı öneki hdrgm'dir.

XMP paketi, hdrgm:Version="1.0" öğesini tanımlayacaktır.

Kapsayıcı öğesi

GContainer XMP uzantısının XMP ad alanıdır. http://ns.google.com/photos/1.0/container/ Varsayılan ad alanı öneki Container şeklindedir.

Birincil resim, XMP meta verilerinde dosya kapsayıcısında sonraki medya dosyasının sırasını ve özelliklerini tanımlayan bir Container:Directory öğesi içerir. Kapsayıcıdaki her dosyaya, Container:Directory içinde karşılık gelen bir medya öğesi vardır. Medya öğesi, dosya kapsayıcısındaki konumu ve birleştirilen her bir dosyanın temel özelliklerini açıklar.

Kapsayıcı öğe, birincil resmin XMP meta verilerine kodlanır ve kapsayıcıdaki medya öğeleri dizinini tanımlar. Medya öğeleri, kapsayıcı dosyasında dizindeki medya öğesi öğeleriyle aynı sırada tutulmalı ve sıkı bir şekilde paketlenmelidir.

Dizin yalnızca bir "Birincil" resim öğesi içerebilir ve bu, dizindeki ilk öğe olmalıdır.

Öğe adı Tür Açıklama
Kapsayıcı:Dizin Sıralı Yapı Dizisi Her biri kapsayıcının düzenini ve içeriğini tanımlayan bir Container:Item struct içeren sıralı struct dizisi.

Öğe öğesi

Öğe öğeleri, her bir medya öğesinin uygulama tarafından nasıl kullanıldığını açıklar.

GContainer Öğesi XMP uzantısının XMP ad alanı URI'si şudur: http://ns.google.com/photos/1.0/container/item/. Varsayılan ad alanı öneki Item şeklindedir.

İlk medya öğesi, birincil resim olmalıdır.Öğe MIME türü değerlerinde listelenen Item:Semantic = "Primary" ve bir Item:Mime belirtmelidir.

Birincil resim öğesinin uzunluğu, birincil resmin dosya kapsayıcısının başından başlayarak MIME türüne göre ayrıştırılmasıyla belirlenir.

Medya öğeleri, medya öğesinin sonu ile bir sonraki medya öğesinin başlangıcı arasında ek dolgu belirten bir Item:Padding özelliği içerebilir. Container:Directory içindeki son medya öğesinde mevcut olduğunda Item:Padding, öğenin sonu ile dosyanın sonu arasındaki dolguyu belirtir.

Her medya öğesi Item:Mime türü ve Item:Semantic özellikleri içermelidir. İkincil resim medya öğeleri, Item:Length özellikleri içermelidir.

Sıralı medya öğeleri, kaynak verilerini dosya kapsayıcısı içinde paylaşabilir. İlk medya öğesi, kaynağın dosya kapsayıcısındaki konumunu belirler ve sonraki paylaşılan medya öğelerinde Item:Length değeri 0 olarak ayarlanır. Kaynak verilerinin kendisinin bir kapsayıcı olması durumunda, kaynak içindeki medya öğesi verilerinin konumunu belirlemek için Item:URI kullanılabilir.

Kapsayıcıdaki medya öğesi kaynaklarının konumu; birincil resim kodlamasının uzunluğu, önceki ikincil medya öğesi kaynaklarının Item:Length değerleri ve önceki tüm Item:Padding değerleri toplanarak belirlenir. Item:Padding, değerini belirtmeyen medya öğesi kaynaklarında 0 olarak kabul edilir.

Özellik adı Tür Açıklama
Öğe:MIME Metin Kapsayıcıdaki medya öğesinin MIME türünü gösteren basit dize. Tanım için Öğe MIME türü değerleri bölümüne göz atın. Required.
Öğe:Anlamsal Metin Medya öğesinin uygulamaya özel anlamını gösteren basit dize. Tanım için Öğe semantik değerleri bölümüne bakın. Required.
Ürün:Uzunluk Tam sayı Öğenin bayt cinsinden pozitif tam sayı uzunluğunu içeren basit dize. Uzunluk 0, medya öğesi kaynağının önceki medya öğesiyle paylaşıldığını gösterir. İkincil medya öğeleri için gereklidir. Birincil resim medya öğesi için isteğe bağlıdır.
Öğe:Etiket Metin Aynı Item:Semantic öğesine sahip birden fazla öğe öğesini netleştirmek için kullanılan uygulama tanımlı dize. İsteğe bağlıdır.
Öğe:Dolgu Tam sayı Medya öğesinin sonu ile sonraki medya öğesinin başlangıcı veya Container:Directory içindeki son medya öğesinde kullanıldığında dosyanın sonu arasında ek dolgunun olduğu bayt cinsinden pozitif bir tam sayı uzunluğu içeren dize. Mevcut değilse 0 değeri varsayılır. İsteğe bağlı.
Öğe:URI Metin ISO/IEC 14496-12 bölüm 8.11.9'a uygun olan ve medya öğesi kaynağındaki medya verilerinin göreli URI'sını içeren bir URI dizesi. Varsayılan değer, birincil resim kaynağıdır. ISO temel medya dosyası biçimi, ISO/IEC 14496-12 MIME türleri için isteğe bağlıdır. Aksi takdirde kullanılamaz.

Öğe MIME türü değerleri

Item:Mime özelliği, her medya öğesi verilerinin MIME türünü tanımlar.

Değer Açıklama
resim/jpeg JPEG resmi.

Örnek GContainer XMP

Aşağıdaki geçerli GContainer XMP paketi örneğinde, Giriş bölümünde gösterilen örnek dosyadan alınmış meta veriler bulunmaktadır.

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