Ultra HDR Resim Biçimi v1.1

Giriş

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

Bu dokümanın geri kalanında, bu biçimi kullanmak için gereken süreçlerin yöntemleri açıklanmaktadır. Bu biçime uygun bir resmin yaşam döngüsü genel hatlarıyla şöyledir:

  1. Kodlama

    1. Harita oluşturma özelliğinden yararlanın
    2. Harita sıkıştırması elde edin
    3. Harita kapsayıcısı oluşturma
  2. Kod çözme


İlişkili meta veriler ve ofset bilgileri içeren örnek Ultra HDR resim biçimi dosyası düzeni

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

Motivasyon

Bu dosya biçiminin amacı, SDR resim dosyalarına ek bilgileri kodlayarak tek bir dosyada en uygun HDR yorumlarını oluşturmak için ekran tekniğiyle birlikte kullanılabilecekleri bir ortam sağlamaktır.

Bunun pratik olması için dosya biçiminin şunları yapması gerekir:

  • Naif görüntüleyenlerde geleneksel SDR görüntünün gösterilmesi için geriye dönük uyumluluğa sahip olun.
  • Çok fazla yer kaplamamalıdır.

Ayrıca görüntüleme tekniği:

  • Kod çözme için yoğun işleme gerekmez.
  • Bir ekranın HDR ve SDR beyaz noktaları arasındaki tüm orana uyum sağlayabilirsiniz. Bu beyaz noktalar cihazlar arasında önemli ölçüde farklılık gösterebilir, hatta tek bir cihazda zaman olarak bile farklılık gösterebilir.

Son olarak, teknik aşağıdakileri yapmadan önceki tüm işlemleri yapabilmelidir:

  • Öne çıkanlar kesiliyor.
  • Gölgeleri azaltma.
  • Yerel kontrastı değiştirme veya sıkıştırma.
  • Göreli ton ilişkilerinin değiştirilmesi (sahnedeki nesneler arasında).

Bağımlılıklar

Aşağıda bu spesifikasyonla ilgili normatif referanslar verilmiştir:

Tanımlar

  • SDR ekran

    • HDR içerik göstermek için tasarlanmamış geleneksel bir ekran. Bu ekranlar genellikle yaklaşık 400 cd/m2 veya daha düşük nominal pik parlaklık üretir.
  • HDR ekran

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

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

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

    • Fotoğrafçılıkta, gerçek dünyaya ait sahneler genellikle SDR ekranlarının temsil edebileceğinden daha dinamik bir aralığa sahiptir. Bir resmin dinamik aralığını azaltmak için aralık sıkıştırma (yerel ton eşleme olarak da bilinir) gibi işlemler gerekir. Bu azaltma işleminin, yerel kontrastı mümkün olduğunca korurken parlak alanları kırpmayı veya gölgeleri bozmayı önlemesi gerekir.Resimdeki büyük parlaklık kenarlarının boyutunu azaltmaya çalışırsınız. Bu, resmin genel kontrastını daha fazla etkiler. Bir yandan da ayrıntılar olan küçük parlaklık kenarlarının boyutunu korumaya çalışırsınız. Birçok farklı uygulama olmasına rağmen bu tür bir işlem günümüzde çoğu modern dijital kamerada standarttır.
  • SDR beyaz nokta

    • Belirli bir zamanda ekrandaki SDR içeriğin maksimum doğrusal parlaklık değeri.
  • HDR beyaz nokta

    • Belirli bir zamanda ekrandaki HDR içeriğin maksimum doğrusal parlaklık değeri. Bu değer genellikle SDR beyaz noktasından yüksektir.
  • Artırma

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

    • Bu değer, içerik üreticinin bir HDR ekranda gösterilen bir görüntünün SDR versiyonuna kıyasla ne kadar parlak olabileceğini kısıtlamasına olanak tanır.
    • Bu değer, belirli bir resim için sabit bir değerdir. Örneğin, değer dörtse belirli bir piksel için görüntülenen HDR oluşturma işleminin doğrusal parlaklığı, SDR oluşturma işleminin doğrusal parlaklığının en fazla 4 katı 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 Minimum içerik artışı değerinden büyük veya bu değere eşit olmalıdır.
  • Minimum içerik artışı (eşitliklerde min_content_boost)

    • Bu değer, içerik üreticinin HDR ekranda gösterilen bir görüntünün SDR görüntüye kıyasla ne kadar koyu olabileceğini kısıtlamasına olanak tanır.Bu değer, belirli bir resim için sabittir.
    • Örneğin, değer 0, 5 ise belirli bir piksel için görüntülenen HDR oluşturma işleminin 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 yalnızca 1,0'dan küçüktür.
    • Her zaman Maksimum içerik güçlendirme değerinden küçük veya bu değere eşittir.
  • Maksimum görüntülü reklam artışı (eşitliklerde max_display_boost)

    • Belirli bir zamanda bir ekran tarafından desteklenen maksimum artış. Bu değer, cihaz ayarlarına ve ortam ışığı koşulları ya da ekrandaki parlak piksel sayısı 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. Ekranda her zaman en az SDR beyaz kadar parlak HDR beyazlar gösterilebileceği için bu değer her zaman >= 1, 0'dır.
  • Görüntülü reklam geliştirme

    • Maksimum içerik artışı ve maksimum görüntüleme artışı arasından en düşük değere eşittir. Bu değer her zaman >= 1,0'dır.
    • Örneğin, maksimum içerik güçlendirme 4,0 ve maksimum görüntüleme güçlendirme 3,0 ise ekran güçlendirme 3,0 olur. Ekran özellikleri sınırlayıcı faktör olduğundan, pikseller SDR'den 3 kat daha parlak olarak görüntülenir.
    • Başka bir örnek vermek gerekirse, maksimum içerik artışı 4,0 ve maksimum görüntülü reklam artışı 5,0 ise görüntülü reklam artışı 4,0 olur. İçeriğin amacı sınırlayıcı faktör olduğundan pikseller SDR'den 4 kat daha parlak gösterilir.
  • Hedef HDR yorumu

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

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

    • Hedef HDR yorumunu oluşturmak için SDR yorumunda her pikselin ne kadar parlatılacağını gösteren bir harita. Bu harita tek kanallı veya çok kanallı olabilir. Çok kanallı harita, kırmızı, yeşil ve mavi gibi her bir renk kanalı için ayrı bir kazanç gösterir. Bu belgede, tek kanallı harita durumu gösterilmiştir.
  • clamp(x, a, b)

    • x değerini [a, b] aralığına sıkıştırın.
  • exp2(x)

    • Taban 2'nin ü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 oluşturma; bx.
  • XMP

  • Çoklu Resim Biçimi

    • Multi-Picture Format, JPEG kodlamalı birden fazla resmi tek bir JPEG dosyasında depolamak için Kamera ve Imaging Products Association (CIPA) tarafından geliştirilen bir tekniktir.
    • Daha fazla bilgi için ilgili bağımlılığa, CIPA DC-x 007-2009 Çoklu Resim Biçimi Teknik Belgesi'ne bakın.
  • GContainer

    • GContainer, birden fazla resmi tek bir resim kapsayıcısında depolama yöntemidir. Bu yöntemde bir resim birincil resim olarak kabul edilir. Ek resimler alternatif sürümler veya yardımcı olarak kabul edilir. XMP meta verileri, ek görüntülerin varlığını ve anlamını iletmek için kullanılır. Daha fazla bilgi için GContainer ayrıntıları bölümüne bakın.

Kodla

Bu bölümde, uygun 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) Sürekli tonlu fotoğrafların dijital sıkıştırılması ve kodlanması başlıklı makaleyi inceleyin.

Harita oluşturma özelliğinden yararlanın

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

Bu bölümdeki aşağıdaki hesaplamalar, kayan nokta aritmetiği kullanılarak yapılmıştır.

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

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

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

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

HDR resmi için de benzer tanımlar vardır.

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

Yhdr(x, y), HDR resmin 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 görüntünün renk alanını tanımlar.

Örneğin, SDR birincil resmin Display-P3 renk profili varsa HDR resmi, söz konusu profilin birincil renklerine göre tanımlanır. Bu, HDR resmin Display-P3 birincil renklerine de sahip olduğu anlamına gelir.

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

pixel_gain(x, y) işlevi, Yhdr(x, y) işleviyle 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 sıfır olduğu pixel_gain(x, y) işlevi davranışı, uygulama tarafından tanımlanır.

Örneğin, uygulamalar pixel_gain(x, y) değerini 1,0 olarak tanımlayarak Ysdr(x, y) ve offset_sdr değerlerinin sıfır olduğu durumları ele alabilir. Alternatif olarak, uygulamalar sıfır olmayan bir offset_sdr kullanarak bu senaryoyu önler.

Uygulama işleminde offset_sdr ve offset_hdr değerleri seçilebilir.

Kazanç haritası, pixel_gain(x, y) değerini maksimum içerik artışı ve minimum içerik artışına göre logaritmik bir alanda kodlayan bir skaler 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) değerinin sıfır olduğu recovery(x, y) işlevi davranışı uygulama 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 güçlendirme ve minimum içerik artışı değerleri, uygulama tanımlıdır ve içerik üretici tarafından isteğe bağlı olarak belirlenebilir. Maksimum içerik artışı 1,0'dan büyük veya bu değere eşit 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'inde depolandığından 8 bitlik, işaretsiz tam sayı değerleri kullanılarak kodlanmalıdır. Bu nedenle, [0, 255] aralığında olmalıdır. Her değer bir recovery(x, y) değerini temsil eder ve ikincil resmin bir pikselinde depolanır.

8 bitlik imzalanmamış tam sayı depolama alanı için kodlanmış değer aşağıdaki gibi tanımlanır:

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

encode işlevinin hesaplaması kayan noktada yapılır ve sonunda, belirtildiği şekilde yuvarlanarak 8 bitlik işaretsiz tam sayı sonucuna dönüştürülür.

Bu kodlama, 0,0 ile 1,0 arasında recovery(x, y) değerlerinin 8 bitlik işaretsiz 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ç eşlemesi ikincil bir görüntüde depolandıktan sonra, MPF ve GContainer XMP meta verileri içeren birincil resme eklenir. Birincil görüntü GContainer dizini, kazanç haritası resmi için bir öğe içermelidir.

Depolanan kazanç haritasının çözünürlüğü uygulamaya göre tanımlanır ve birincil görüntünün çözünürlüğünden 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. Bu yöntemde uygulama tanımlanmıştır.

Kazanç haritasının yönü, birincil resmin yönüyle eşleşmelidir. Mevcut olduğunda, depolanan kazanç haritası 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ısı elde etme

Renk profili

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

XMP özellikleri

Birincil görüntü, HDR kazanç haritası biçimi için ekstra anlamsal bilgilerle en az iki resmi tanımlamak üzere XMP meta verileri içerir.

Aşağıdaki alt bölümlerde bu biçime özgü ayrıntılar yer almaktadır. GContainer'a genel uygunlukla ilgili ek bilgilere GContainer ayrıntıları bölümünden ulaşabilirsiniz.

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

Öğenin semantik değerleri

Item:Semantic özelliği, kapsayıcı dizindeki her bir medya öğesinin uygulamaya özgü anlamını tanımlar.

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

HDR kazanç haritası meta verileri

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

Kazanç haritası meta verisi XMP uzantısı için XMP ad alanı URI'si http://ns.adobe.com/hdr-gain-map/1.0/'tür. Varsayılan ad alanı ön eki hdrgm'tir.

Bu meta veriler, kazanç haritası resminin XMP paketinde depolanır ve kazanç haritası resmi XMP'sinin rdf:Description bölümünde aşağıdaki özellikler görünmelidir:

Ad Tür Açıklama
hdrgm:Version Metin Kullanımdaki kazanç haritası biçiminin sürümü. Bu sürüm "1.0"dır. Required.
hdrgm:BaseRenditionIsHDR Boole Birincil görüntünün dinamik aralığını belirtir. "False" değeri, birincil görüntünün SDR olduğunu ve kazanç haritasıyla HDR oluşturma işlemi elde etmek için birleştirilebileceğini belirtir. "True", birincil görüntünün HDR olduğunu ve kazanç haritasının SDR yorumunu oluşturmak için birincil görüntüyle birleştirilebileceğini gösterir. "False" olmalıdır. İsteğe bağlı; varsayılan değer "False".
hdrgm:GainMapMin Reel veya sıralı Real dizisi map_min_log2 değerini saklar. Bu, belirli bir pikselde hedef HDR yorumunun doğrusal parlaklığının SDR görüntününkine göre (bölünmesiyle) izin verilen minimum oranı olan minimum içerik artışı log2'dir. Tek bir Real veya sıralı bir Real dizisi olabilir. Sıralı bir Real dizisi olduğunda, bu dizi 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. 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 Gerçek veya sıralı gerçek dizisi map_max_log2 değerini saklar. Bu, belirli bir pikselde hedef HDR yorumunun doğrusal parlaklığının SDR resmininkine göre izin verilen maksimum oranıdır (SDR resminin oranıyla bölünür). Tek bir gerçek değer veya gerçek değerlerden oluşan bir dizi olabilir. Sıralı bir Real dizisi olduğunda, bu dizi 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. hdrgm:GainMapMin veya daha büyük olmalıdır. Zorunludur.
hdrgm:Gama Reel veya sıralı Real dizisi map_gamma değerlerini depolar. Bu, kayıtlı harita değerlerine uygulanacak gamadır. Tek bir gerçek değer veya gerçek değerlerden oluşan sıralı bir dizi olabilir. Sıralı bir gerçek dizisi olduğunda, 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'dan büyük olmalıdır. İsteğe bağlı; varsayılan değer 1,0'dur.
hdrgm:OffsetSDR Gerçek veya sıralı gerçek dizisi offset_sdr değerlerini depolar. Bu, kazanç haritası oluşturma ve uygulama sırasında SDR piksel değerlerine uygulanacak ofsettir. Tek bir Real veya sıralı bir Real dizisi olabilir. Düzenli bir gerçek dizisi olduğunda, 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 (1/64) şeklindedir.
hdrgm:OffsetHDR Reel veya sıralı Real dizisi offset_hdr değerlerini depolar. Bu, kazanç haritası oluşturma ve uygulama sırasında HDR piksel değerlerine uygulanacak ofsettir. Tek bir gerçek veya sıralı bir gerçek dizisi olabilir. Sıralı bir Real değerleri dizisi, sırasıyla 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 (1/64)'tür.
hdrgm:HDRCapacityMin Gerçek hdr_capacity_min değerini depolar. Bu değer, haritanın uygulandığı minimum görüntülü reklam artışı değerinin log2'sidir. Bu değer, kazanç haritasının görüntüleme artışı temel alınarak 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. Bu, haritanın tamamen uygulandığı maksimum görüntülü reklam artışı değerinin log2'sidir. Bu değer, kazanç haritasının görüntüleme artışı temel alınarak ne kadar uygulanacağını da etkiler. hdrgm:HDRCapacityMin değerinden büyük olmalıdır. Zorunludur.

XMP kazanç haritası örneği

Aşağıdaki geçerli kazanç haritası 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ç harita görüntüsü, Bağımlılıklar bölümünde belirtildiği gibi, CIPA DC-x 007-2009 Çoklu Resim Biçimi'nde tanımlandığı gibi ek resim olarak depolanmalıdır.

Kodu çöz

Bu bölümde, uygun bir JPEG dosyasından kazanç haritasının 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ı resmini bulma

Görüntünün ayrıştırılması ve kodunun çözülmesiyle ilgili ayrıntılar için aşağıdaki GContainer ayrıntıları bölümüne bakın. Kazanç haritası resminin konumunu belirtmek için XMPrdf:Directory içinde bir "GainMap" semantik öğesi kullanılır. Alternatif olarak, kazanç haritasının konumunu belirlemek için MPF dizini IFD ve tarama resimlerinin XMP'si kullanılır.

Geçersiz meta verileri işleme

Zorunlu bir alan yoksa veya geçersiz değere sahip herhangi bir alan varsa meta veri geçersiz olarak kabul edilir. Bir değer, belirtilen tü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ç haritası yok sayılır ve SDR resmi gösterilir.

Ekran

HDR kazanç haritası biçiminde kodlanmış dosyalar, geleneksel SDR ekranlarda veya daha yüksek parlaklık çıkışı sunabilen HDR ekranlarda oluşturulabilir.

Uyarlanmış HDR yorumunu oluşturmak için kazanç haritasını kullanın 

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

encoded_recovery(x, y), kazanç haritası resmindeki tek kanallı, 8 bitlik, işaretsiz tam sayı değeridir.

Kazanç haritası birincil resimden farklı bir çözünürlüğe sahipse encoded_recovery(x, y), birincil resim genişliği ve yüksekliği aralığında x ve y için kazanç haritası resminin filtrelenmiş örneklemesi ile belirlenir. Filtreleme yöntemi doğrusal veya daha iyi olmalıdır ve uygulama tanımlanmıştı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 artış değeri, mevcut HDR beyaz noktası arasındaki oranla mevcut SDR beyaz noktası arasındaki oran olarak tanımlanan skaler bir kayan nokta değeridir. Bu değer, ekran sistemi tarafından sağlanır ve zaman içinde değişebilir.

hdr_capacity_max, hdrgm:HDRCapacityMax meta veri alanına göre belirlenir. hdr_capacity_min, hdrgm:HDRCapacityMin meta veri alanı tarafından belirlenir.

hdrgm:BaseRenditionIsHDR "False" (Yanlış) olduğunda weight_factor aşağıdaki gibi 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ına göre belirlenir. gain_map_min, hdrgm:GainMapMin meta veri alanı tarafından belirlenir. offset_sdr, hdrgm:OffsetSDR meta veri alanına göre belirlenir. offset_hdr hdrgm:OffsetHDR meta veri alanına göre belirlenir.

Doğrusal olarak uyarlanan HDR oluşturma işlemi aşağıdaki gibi 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 uygun olması için ek koşullar belirtilmiştir. Meta veriler, ISO 166841:2011(E) XMP Spesifikasyonu Bölüm 1'e göre serileştirilir ve Adobe XMP Spesifikasyonu Bölüm 3 Dosyalarda Depolama bölümünde açıklandığı gibi birincil resim dosyasının içine yerleştirilir. Birincil resim dosyası, RDF/XML biçiminde aşağıdaki öğeleri içerir.

XMP paketi gereksinimleri

XMP paketi, http://ns.adobe.com/hdr-gain-map/1.0/ ad alanı URI'si üzerinden kazanç harita meta verileri XMP uzantısını içermelidir. Varsayılan ad alanı ön eki hdrgm'tir.

XMP paketi hdrgm:Version="1.0" değerini tanımlamalıdır.

Kapsayıcı öğesi

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

Birincil görüntü, XMP meta verisinde, dosya kapsayıcıda 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ştirilmiş her bir dosyanın temel özelliklerini açıklar.

Kapsayıcı öğesi, birincil görüntünün XMP meta verilerine kodlanır ve kapsayıcıdaki medya öğelerinin dizinini tanımlar. Medya öğeleri, kapsayıcı dosyada dizindeki medya öğesi öğeleriyle aynı sırada yer almalı ve sıkıca paketlenmelidir.

Dizin yalnızca bir "Birincil" resim öğesi içerebilir ve bu öğe 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'u içeren ordered struct dizisi.

Öğe öğesi

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

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

İlk medya öğesi birincil resim olmalıdır. Item:Semantic = "Primary" ve Öğe MIME türü değerleri bölümünde listelenen bir Item:Mime belirtilmelidir.

Birincil resim öğesinin uzunluğu, dosya kapsayıcının başından başlayarak birincil resim MIME türüne göre ayrıştırılarak 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 bulunduğunda Item:Padding, öğenin sonu ile dosyanın sonu arasındaki dolguyu gösterir.

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

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

Kapsayıcıdaki medya öğesi kaynaklarının konumu; birincil görüntü kodlamasının uzunluğu, önceki ikincil medya öğesi kaynaklarının Item:Length değerleri ve ondan önceki tüm Item:Padding değerlerinin toplanmasıyla 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ü belirten basit dize. Tanım için Öğe MIME türü değerleri bölümüne bakın. Required.
Öğe: Anlamsal Metin Medya öğesinin uygulamaya özel anlamını gösteren basit dize. Tanım için Öğe anlamsal değerleri bölümüne bakın. Required.
Öğe:Uzunluk Tam sayı Öğenin bayt cinsinden pozitif tam sayı uzunluğunu içeren basit dize. 0 uzunluğu, 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 değerine sahip birden fazla öğe öğesini belirginleştirmek için kullanılan, uygulama tanımlı dize. İsteğe bağlıdır.
Öğe:Dolgu Tam sayı Medya öğesinin sonu ile bir sonraki medya öğesinin başlangıcı veya Container:Directory içindeki son medya öğesinde kullanıldığında dosyanın sonu arasındaki ek dolgunun bayt cinsinden pozitif tam sayı uzunluğunu içeren bir dize. Mevcut olmadığında 0 değeri varsayılır. İsteğe bağlıdır.
Öğe:URI Metin ISO/IEC 14496-12 bölüm 8.11.9'a uygun bir URI dizesi. Bu dize, medya öğesi kaynağındaki medya verilerinin göreli URI'sini içerir. Varsayılan değer, birincil görüntü 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 verisinin MIME türünü tanımlar.

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

Örneği GContainer XMP

Aşağıdaki geçerli GContainer XMP paketi örneğinde, Giriş bölümünde gösterilen örnek dosyadan alınan meta veriler yer almaktadı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>

ISO 21496-1 Uyumluluğu

ISO 21496-1, kazanç haritası meta verilerini bir resim dosyasında kodlamak için alternatif bir kapsülleme mekanizması sağlar. Dosyada tek bir kazanç haritası resmi kullanarak hem Ultra HDR meta verilerini hem de ISO 21496-1 meta verilerini tek bir JPEG dosyasında kodlayabilirsiniz.

ISO 21496-1 meta verileri, her iki JPEG resminde de APP1 XMP segmentinden hemen sonra görünür

Şekil 2. Ultra HDR ve ISO 21496-1 meta verisi içeren örnek dosya düzeni.

Platformlar arası maksimum uyumluluk için, JPEG dosyalarının kazanç haritalarıyla kendi kodlamasını veya kod çözme işlemini uygulayan Android uygulamaları ve uygulamaları hem Ultra HDR v1 hem de ISO 21496-1 meta verileri için kodlamayı ve kod çözmeyi desteklemelidir. Uygulama veya uygulama, kodlama işlemi sırasında her iki meta veri biçimini de kodlamalıdır. Kod çözme işlemi sırasında her iki meta veri türü de mevcutsa uygulama veya uygulama, ISO 21496-1 meta verilerini kullanmayı tercih etmelidir.

Değişiklik Günlüğü

Bu bölümde, söz konusu spesifikasyonun sürümleri arasındaki değişikliklerle ilgili bilgiler yer alır.

v1.1

Ultra HDR spesifikasyonunun bu sürümünde yapılan tüm değişiklikler bilgilendirme amaçlı olup ISO 21496-1 uyumluluğuyla ilgilidir. Gerçek dosya biçiminde değişiklik yapılmaz.

v1.0

İlk Ultra HDR spesifikasyonu yayını.