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. Bu 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:
Kodlama
- Harita oluşturma özelliğinden yararlanın
- Harita sıkıştırması elde etme
- Harita kapsayıcı oluşturma işlemi elde edin
Kod çözme
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:
- Bilgisiz izleyicilere geleneksel SDR resminin gösterilmesi için geriye dönük uyumlu olmalıdır.
- Çok fazla yer kaplamamalıdır.
Ayrıca görüntüleme tekniği:
- Kod çözme için yoğun işleme gerekmez.
- Ekranın HDR ve SDR beyaz noktaları arasındaki oranlara uyum sağlayabilir. Bu oranlar cihazlar arasında önemli ölçüde farklılık gösterebilir veya tek bir cihazda bile zaman içinde değişebilir.
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öreceli ton ilişkilerini (sahnedeki nesneler arasında) değiştirme
Bağımlılıklar
Aşağıda bu spesifikasyonla ilgili normatif referanslar verilmiştir:
- Adobe XMP Spesifikasyonu Bölüm 3: Dosyalarda Depolama
- ISO 16684-1:2019 XMP Spesifikasyonu Bölüm 1
- ISO/IEC 14496-12 ISO temel medya dosya biçimi
- T.81 (09/92) Sürekli tonlu fotoğrafların dijital sıkıştırılması ve kodlanması
- CIPA DC-x 007-2009 Çoklu Resim Biçimi Teknik Belgesi
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 bir nominal en yüksek parlaklık üretir.
HDR ekran
- HDR içerik için tasarlanmış bir ekran. Bu ekranlar genellikle SDR ekranlardan daha yüksek nominal pik parlaklık (genellikle 800 cd/m2 veya daha yüksek) üretir ve genellikle SDR ekranlara kıyasla daha iyi kontrast oranlarına sahiptir.
Birincil görsel
- GContainer dosyasında, ikincil medya dosyalarının eklendiği bir resmin 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 yerel ton eşleme olarak da bilinen aralık sıkıştırma gibi işlemler gerekir. Bu azaltma işleminde, yerel kontrastı mümkün olduğunca korurken vurguların kırpılması veya gölgelerin bastırılmasını önlemek 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 noktası
- Belirli bir zamanda ekrandaki SDR içeriğin maksimum doğrusal parlaklık değeri.
HDR beyaz noktası
- Belirli bir zamanda ekrandaki HDR içeriğin maksimum doğrusal parlaklık değeri. Bu değer genellikle SDR beyaz noktasından daha 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 Min. içerik artırma değerinden büyük veya bu değere eşittir.
Minimum içerik artışı (eşitliklerde
min_content_boost
)- Bu değer, içerik üreticinin SDR işleme kıyasla HDR ekranda gösterilen bir görüntünün ne kadar koyulaşabileceğini belirlemesine olanak tanır. Bu değer, belirli bir resim için sabit bir değerdir.
- Örneğin, değer 0,5 ise herhangi bir piksel için, görüntülenen HDR yorumlamanın doğrusal parlaklığı, SDR yorumlamanın doğrusal parlaklığının (en az) 0,5 katı olmalıdır.
- Uygulamada bu değer genellikle 1,0'a eşit veya 1,0'dan biraz daha azdır.
- Her zaman Maks. içerik artışı değerinden küçük veya bu değere eşit olmalıdır.
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 artışı 4,0 ve maksimum görüntülü reklam artışı 3,0 ise görüntülü reklam artışı 3,0 olur. Sınırlayıcı faktör ekran özellikleri olduğundan pikseller SDR'den 3 kat daha parlak gösterilir.
- 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 yorumu.
Uyarlanmış HDR yorumu
- Hedef HDR yorumu mevcut ekran geliştirmesine uyarlandıktan sonra ekranda gösterilen nihai HDR yorumu.
Kazanç haritası (eşitliklerde
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 dokümanda, tek kanallı bir harita örneği gösterilmektedir.
clamp(x, a, b)
- x değerini [a, b] aralığına sabitleyin.
exp2(x)
- Taban 2'nin üssü; 2x.
floor(x)
- x değerine 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
- Genişletilebilir Meta Veri Platformu. Meta verileri bir resim kapsayıcısına kodlama yöntemini tanımlayan standart. ISO 16684-1:2011(E) XMP Spesifikasyonu Bölüm 1 tarafından tanımlanmıştır.
Çok Resimli Format
- 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, bir görüntünün birincil görüntü olarak kabul edildiği bir görüntü kapsayıcıda birden fazla görüntüyü depolama yöntemidir. Ek resimler alternatif sürümler veya yardımcı olarak kabul edilir. XMP meta verileri, ek resimlerin 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.
Kodlama
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, genellikle daha yüksek dinamik aralıktaki parlaklık verilerini geleneksel SDR ekranların alt aralığına sıkıştırmak için bir aralık sıkıştırma işlemi gerçekleştirir. Kazanç haritası, orijinal, daha yüksek dinamik aralıktaki parlaklık verilerini kurtarmak için yeterli veriyi 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 resmini açıklar:
SDR'(x, y)
, üç kanallı, doğrusal olmayan (genellikle gama kodlu) birincil resimdir.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 birincil renklerini koruyan doğrusal bir renk alanına.
Ysdr(x, y)
işlevi 0,0 ile 1,0 aralığında tanımlanır ve standart dinamik aralık birincil görüntü doğrusal parlaklık değeridir:
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 kodlamalı 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 resminin renk profili, HDR resminin 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ünün parlaklık değerini (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)
fonksiyonu, Yhdr(x, y)
fonksiyonu ile Ysdr(x, y)
fonksiyonu 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 durumlarda pixel_gain(x, y)
işlevinin davranışı uygulamaya göre 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, sıfır olmayan bir offset_sdr
kullanarak da bu senaryoyu önlemek mümkündür.
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ımlanmadığı için pixel_gain(x, y)
'ın sıfır olduğu durumlarda recovery(x, y)
işlevinin davranışı uygulama tarafından 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 güçlendirme değeri 1,0 veya daha büyük olmalıdır. Minimum içerik artışı [0,0; 1,0] aralığında olmalıdır.
recovery(x, y)
hücresindeki değerler [0,0, 1,0] aralığıyla sınırlıdır.
Kazanç haritası ikincil bir resim JPEG'sinde depolanır ve bu nedenle 8 bit, imzasız tam sayı değerleri kullanılarak, dolayısıyla [0, 255] aralığında kodlanmalıdır. Her değer bir recovery(x, y)
değerini temsil eder ve ikincil görüntünün 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, recovery(x, y)
değerlerinin 0,0 ile 1,0 arasında değişen 8 bitlik, imzalanmamış bir tam sayı temsiliyle 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 verileriyle birincil bir 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üğü uygulamaya göre tanımlanır ve birincil görüntünün çözünürlüğünden farklı olabilir. Kazanç haritası, depolama için birincil görüntüden farklı bir çözünürlüğe ölçeklendirilirse örnekleme yöntemi doğrusal veya daha iyi olmalıdır ve uygulama tarafından tanımlanır.
Kazanç haritasının yönü, birincil görüntünün yönüyle eşleşmelidir. Mevcutsa depolanan kazanç haritası resmindeki yön meta verileri (EXIF'te olduğu gibi) kullanılmaz.
Varsa kazanç haritasının renk profili kullanılmaz.
Harita kapsayıcısı kazanma
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 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.
Öğenin semantik değerleri
Item:Semantic
mülkü, kapsayıcı dizinindeki her medya öğesinin uygulamaya özgü anlamını tanımlar.
Değer | Açıklama |
---|---|
Birincil | Medya öğesinin, kapsayıcıda görüntülemeye hazır 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
Kazanç haritası meta verileri, birincil görüntünün HDR temsilini oluşturmak 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ılan kazanç haritası biçiminin sürümü. Bu sürüm "1.0"dur. Required. |
hdrgm:BaseRenditionIsHDR | Boole | Birincil görüntünün dinamik aralığını belirtir. "Yanlış", birincil görüntünün SDR olduğunu ve kazanç haritasının HDR oluşturmak için görüntüyle birleştirilebileceğini gösterir. "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 | Gerçek veya sıralı gerçek dizisi | map_min_log2 değerlerini depolar. 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 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. 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 | Gerçek veya sıralı gerçek dizisi | map_gamma değerini saklar. 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ğerini saklar. Bu, kazanç haritası oluşturma ve uygulama sırasında SDR 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) şeklindedir. |
hdrgm:OffsetHDR | Gerçek veya sıralı gerçek dizisi | offset_hdr değerini saklar. 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. 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)'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, ekran artışına bağlı olarak 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. Bu, haritanın tamamen uygulandığı maksimum görüntüleme güçlendirme değerinin log2 kadarı. 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. |
Örnek kazanç haritası XMP
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ç haritası resmi, CIPA DC-x 007-2009 Çok Resimli Biçim'de tanımlandığı gibi ek bir resim olarak depolanmalıdır. Bu bölüme Bağımlılar bölümünden ulaşabilirsiniz.
Kod çözme
Bu bölümde, uygun bir JPEG dosyasından kazanç haritasının nasıl kodu çözüleceği açıklanmaktadır.
Biçimin sinyali
Bu biçime uygun bir JPEG dosyası, birincil resmin XMP paketinde hdrgm:Version="1.0"
varlığıyla tanımlanabilir. Burada hdrgm
, ad alanı URI'si http://ns.adobe.com/hdr-gain-map/1.0/
'dir.
Kazanç haritası resmini bulma
Görselin ayrıştırılması ve kodunu çözme hakkında ayrıntılı bilgi için aşağıdaki GContainer ayrıntıları bölümüne bakın. XMP rdf:Directory
içerisindeki "GainMap" anlamsal öğesi,
kazanç harita görüntüsünün konumunu belirtmek için 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
Gerekli bir alan yoksa veya herhangi bir alan geçersiz bir değere sahipse meta veriler geçersiz 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ışı, mevcut HDR beyaz noktası ile 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ına göre belirlenir.
hdrgm:BaseRenditionIsHDR
"False" 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ı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 kolorimetrik olarak doğru olmalıdır.
GContainer ayrıntıları
Bu bölümde, bu biçimin GContainer XML meta verileriyle uyumlu olması için ek koşullar açıklanmaktadır. 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ığı şekilde birincil resim dosyasına 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/
'tür. Varsayılan ad alanı ön eki Container
'tir.
Birincil resim, dosya kapsayıcısındaki sonraki medya dosyasının sırasını ve özelliklerini tanımlayan XMP meta verilerinde bir Container:Directory
öğesi içerir. Kapsayıcıdaki her dosyanın Container:Directory
içinde karşılık gelen bir medya öğesi vardır. Medya öğesi, dosya kapsayıcısındaki konumu ve her bir birleştirilmiş dosyanın temel özelliklerini açıklar.
Kapsayıcı öğesi, birincil resmin XMP meta verilerine kodlanır ve kapsayıcıdaki medya öğelerinin dizini tanımlar. Medya öğeleri, kapsayıcı dosyasında 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 |
---|---|---|
Container:Directory | Sıralı Yapı Dizisi | Her biri container'ı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 Öğe XMP uzantısının XMP ad alanı URI'si http://ns.google.com/photos/1.0/container/item/
'tür. 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ü ve Item:Semantic
özelliklerini içermelidir.
İkincil resim medya öğeleri Item:Length
özelliklerini 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
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. Değeri belirtilmeyen medya öğesi kaynaklarında Item:Padding
değeri 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 özgü anlamını belirten 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 öğesinin anlamını açıklığa kavuşturmak için kullanılan, uygulama tarafından tanımlanan 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 olan ve medya öğesi kaynağı içindeki medya verilerinin göreli URI'sini içeren bir URI dizesi. Varsayılan olarak birincil resim kaynağı kullanılı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. |
Örnek 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. Dosyadaki tek bir kazanç haritası resmi kullanarak hem Ultra HDR meta verilerini hem de ISO 21496-1 meta verilerini tek bir JPEG dosyasında kodlayabilirsiniz.
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, bu spesifikasyonun sürümleri arasındaki değişiklikler hakkında bilgiler yer almaktadır.
v1.1
Ultra HDR spesifikasyonunun bu sürümündeki tüm değişiklikler bilgilendirme amaçlıdır ve ISO 21496-1 uyumluluğuyla ilgilidir. Gerçek dosya biçiminde değişiklik yapılmaz.
- ISO 21496-1 Uyumluluğu bölümünü ekleyin.
v1.0
İlk Ultra HDR spesifikasyon yayını.