अल्ट्रा एचडीआर इमेज फ़ॉर्मैट v1.1

परिचय

इस दस्तावेज़ में, एक नए फ़ाइल फ़ॉर्मैट के काम करने के तरीके के बारे में बताया गया है. यह फ़ॉर्मैट, लॉगारिदमिक रेंज गेन मैप इमेज को JPEG इमेज फ़ाइल में बदल देता है. नए फ़ॉर्मैट के साथ काम न करने वाले लेगसी रीडर, इमेज फ़ाइल से सामान्य तौर पर कम डाइनैमिक रेंज वाली इमेज को पढ़ते और दिखाते हैं.इस फ़ॉर्मैट के साथ काम करने वाले रीडर, मुख्य इमेज को गेन मैप से जोड़ते हैं. साथ ही, इसके साथ काम करने वाले डिसप्ले पर हाई डाइनैमिक रेंज वाली इमेज रेंडर करते हैं.

इस दस्तावेज़ में आगे, इस फ़ॉर्मैट का इस्तेमाल करने के लिए ज़रूरी प्रोसेस के तरीकों के बारे में बताया गया है. इस फ़ॉर्मैट के मुताबिक, किसी इमेज का लाइफ़ साइकल इस तरह का होता है:

  1. एन्कोडिंग

    1. मैप जनरेशन
    2. मैप को कंप्रेस करना
    3. मैप कंटेनर जनरेशन की सुविधा पाना
  2. डिकोड करना


अल्ट्रा एचडीआर इमेज फ़ॉर्मैट फ़ाइल लेआउट का उदाहरण, जिसमें उससे जुड़ा मेटाडेटा और ऑफ़सेट की जानकारी शामिल है

पहली इमेज. फ़ाइल लेआउट और काम के मेटाडेटा का उदाहरण.

वजह

इस फ़ाइल फ़ॉर्मैट का मकसद, एसडीआर इमेज फ़ाइलों में अतिरिक्त जानकारी को कोड में बदलना है. इस जानकारी का इस्तेमाल, डिसप्ले तकनीक के साथ किया जा सकता है, ताकि एक ही फ़ाइल में एचडीआर के बेहतरीन वर्शन तैयार किए जा सकें.

यह सुविधा काम की हो, इसके लिए फ़ाइल फ़ॉर्मैट में ये चीज़ें होनी चाहिए:

  • पुराने सिस्टम के साथ काम करने की सुविधा हो, ताकि नए दर्शकों को सामान्य एसडीआर इमेज दिखे.
  • यह बहुत ज़्यादा जगह नहीं लेता है.

इसके अलावा, डिसप्ले तकनीक को ये शर्तें पूरी करनी होंगी:

  • डिकोड करने के लिए ज़्यादा प्रोसेसिंग की ज़रूरत नहीं होती.
  • डिसप्ले के एचडीआर और एसडीआर वाइट पॉइंट के बीच किसी भी रेशियो में बदलाव किया जा सकता है. यह रेशियो, डिवाइसों के बीच काफ़ी अलग-अलग हो सकता है. यह एक ही डिवाइस पर भी समय के साथ बदल सकता है.

आखिर में, इस तकनीक से पहले की सभी कार्रवाइयां करने में सक्षम होना चाहिए, यह ज़रूरी नहीं है:

  • हाइलाइट क्लिप करना.
  • शैडो को क्रश करना.
  • लोकल कंट्रास्ट को बदलना या कंप्रेस करना.
  • मिलते-जुलते टोनल संबंधों को बदलना (सीन में मौजूद ऑब्जेक्ट के बीच).

डिपेंडेंसी

इस स्पेसिफ़िकेशन के लिए, यहां दिए गए रेफ़रंस मान्य हैं:

परिभाषाएं

  • एसडीआर डिसप्ले

    • एक सामान्य डिसप्ले, जिसे एचडीआर कॉन्टेंट दिखाने के लिए डिज़ाइन नहीं किया गया है. आम तौर पर, इन डिसप्ले की पीक ब्राइटनेस 400 cd/m2 या उससे कम होती है.
  • एचडीआर डिसप्ले

    • एचडीआर कॉन्टेंट के लिए डिज़ाइन किया गया डिसप्ले. आम तौर पर, इन डिसप्ले में एसडीआर डिसप्ले से नॉमिनल पीक चमक ज़्यादा होती है. आम तौर पर, इन डिसप्ले की चमक 800 cd/m2 या इससे ज़्यादा होती है. साथ ही, इनमें एसडीआर डिसप्ले के मुकाबले कंट्रास्ट अनुपात भी बेहतर होते हैं.
  • मुख्य इमेज

    • GContainer फ़ाइल में मौजूद इमेज का पहला इंस्टेंस, जिसमें सेकंडरी मीडिया फ़ाइलें जोड़ी गई हैं. प्राइमरी इमेज में GContainer XMP मेटाडेटा होता है, जिसमें फ़ाइल कंटेनर में मौजूद सेकंडरी मीडिया आइटम फ़ाइलों के क्रम और प्रॉपर्टी के बारे में बताया जाता है.
  • दूसरी इमेज

    • GContainer फ़ाइल में, मुख्य इमेज के बाद जोड़ी गई मीडिया आइटम फ़ाइलें.
  • रेंज कंप्रेस करना

    • फ़ोटोग्राफ़ी में, असल दुनिया के सीन में अक्सर ज़्यादा डाइनैमिक रेंज होती है, जितनी कि एसडीआर डिसप्ले दिखा सकता है. रेंज कंप्रेसन जैसे ऑपरेशन, इमेज की डाइनैमिक रेंज को कम करने के लिए ज़रूरी होते हैं. इन्हें लोकल टोन मैपिंग भी कहा जाता है. इस कमी से, हाइलाइट को क्लिप करने या शैडो को क्रश करने से बचाना चाहिए. साथ ही, जहां तक हो सके, लोकल कंट्रास्ट को बनाए रखना चाहिए.आप इमेज में चमक के बड़े किनारों के साइज़ को कम करने की कोशिश करते हैं, जो इसके ग्लोबल कंट्रास्ट को ज़्यादा अहमियत देते हैं. साथ ही, छोटे चमक वाले किनारों के साइज़ को सुरक्षित रखने की कोशिश करते हैं. हालांकि, इसे लागू करने के कई तरीके हैं, लेकिन आज के ज़्यादातर डिजिटल कैमरों में यह सुविधा स्टैंडर्ड के तौर पर उपलब्ध है.
  • एसडीआर व्हाइट पॉइंट

    • किसी डिसप्ले पर, किसी तय समय पर SDR कॉन्टेंट का ज़्यादा से ज़्यादा लीनियर ल्यूमिनेंस.
  • एचडीआर व्हाइट पॉइंट

    • किसी समय पर डिसप्ले पर एचडीआर कॉन्टेंट की ज़्यादा से ज़्यादा लीनियर ल्यूमिनेंस. आम तौर पर यह वैल्यू, एसडीआर के व्हाइट पॉइंट से ज़्यादा होती है.
  • बूस्ट

    • एचडीआर व्हाइट पॉइंट को एसडीआर व्हाइट पॉइंट से भाग दिया जाता है.
  • कॉन्टेंट के लिए मैक्स बूस्ट (समीकरणों में max_content_boost)

    • इस वैल्यू की मदद से, कॉन्टेंट क्रिएटर यह तय कर सकता है कि एसडीआर रेंडरेशन के मुकाबले, एचडीआर डिसप्ले पर इमेज कितनी ज़्यादा चमकदार दिखेगी.
    • यह वैल्यू किसी खास इमेज के लिए एक जैसी रहती है. उदाहरण के लिए, अगर वैल्यू चार है, तो किसी भी पिक्सल के लिए, दिखाए गए एचडीआर रेंडरेशन का लीनियर ल्यूमिनेंस, एसडीआर रेंडरेशन के लीनियर ल्यूमिनेंस से ज़्यादा से ज़्यादा चार गुना होना चाहिए. इसका मतलब है कि सीन के चमकीले हिस्सों को चार गुना ज़्यादा चमकीला दिखाया जा सकता है.
    • आम तौर पर, यह वैल्यू 1.0 से ज़्यादा होती है.
    • यह हमेशा कॉन्टेंट के लिए मिलने वाले कम से कम बूस्टर से ज़्यादा या उसके बराबर होना चाहिए.
  • कॉन्टेंट बूस्ट की कम से कम वैल्यू (समीकरणों में min_content_boost)

    • इस वैल्यू की मदद से, कॉन्टेंट क्रिएटर यह तय कर सकता है कि एसडीआर रेंडरेशन के मुकाबले, एचडीआर डिसप्ले पर इमेज कितनी गहरे रंग की हो सकती है. यह वैल्यू किसी खास इमेज के लिए एक जैसी रहती है.
    • उदाहरण के लिए, अगर वैल्यू 0.5 है, तो किसी भी पिक्सल के लिए, दिखाए गए HDR रेंडरेशन का लीनियर ल्यूमिनेंस, एसडीआर रेंडरेशन के लीनियर ल्यूमिनेंस से कम से कम 0.5 गुना होना चाहिए.
    • आम तौर पर, यह वैल्यू 1.0 के बराबर या उससे थोड़ी कम होती है.
    • यह हमेशा कॉन्टेंट के लिए ज़्यादा से ज़्यादा बूस्टर से कम या उसके बराबर होता है.
  • डिसप्ले में ज़्यादा से ज़्यादा बढ़ोतरी (समीकरणों में max_display_boost)

    • किसी तय समय पर, किसी डिसप्ले के लिए उपलब्ध ज़्यादा से ज़्यादा बूसट. यह वैल्यू, समय के साथ बदल सकती है. यह डिवाइस की सेटिंग और अन्य बातों पर निर्भर करती है. जैसे, आस-पास की रोशनी की स्थिति या स्क्रीन पर कितने चमकदार पिक्सल हैं.
    • उदाहरण के लिए, अगर यह वैल्यू 4.0 है, तो डिसप्ले ऐसा पिक्सल दिखा सकता है जो SDR के व्हाइट पॉइंट से ज़्यादा से ज़्यादा चार गुना ज़्यादा चमकदार हो. यह वैल्यू हमेशा 1.0 से ज़्यादा होती है, क्योंकि डिसप्ले हमेशा एचडीआर व्हाइट को कम से कम एसडीआर व्हाइट के तौर पर दिखा सकता है.
  • डिसप्ले बूस्ट

    • यह कॉन्टेंट के लिए ज़्यादा से ज़्यादा और विज्ञापन के लिए ज़्यादा से ज़्यादा बूस्टर में से कम वैल्यू होती है. यह वैल्यू हमेशा >= 1.0 होती है.
    • उदाहरण के लिए, अगर कॉन्टेंट के लिए ज़्यादा से ज़्यादा बूस्टर 4.0 और डिसप्ले के लिए ज़्यादा से ज़्यादा बूस्टर 3.0 है, तो डिसप्ले के लिए बूस्टर 3.0 होगा. पिक्सल, एसडीआर के मुकाबले तीन गुना ज़्यादा चमकदार दिखते हैं, क्योंकि डिसप्ले की क्षमताएं सीमित होती हैं.
    • दूसरे उदाहरण के लिए, अगर कॉन्टेंट बूस्ट की ज़्यादा से ज़्यादा वैल्यू 4.0 है और मैक्स डिसप्ले बूस्ट 5.0 है, तो डिसप्ले बूस्ट की वैल्यू 4.0 होगी. पिक्सल, एसडीआर के मुकाबले 4 गुना ज़्यादा चमकदार होते हैं, क्योंकि इसमें कॉन्टेंट का मकसद सीमित होता है.
  • एचडीआर रेंडरिंग को टारगेट करें

    • कॉन्टेंट क्रिएटर के हिसाब से सबसे सही एचडीआर क्वालिटी.
  • एडैप्टेड एचडीआर रेंडरिंग

    • मौजूदा डिसप्ले बूस्ट के लिए टारगेट एचडीआर रेंडरिंग को अपनाने के बाद, डिसप्ले पर दिखाया जाने वाला आखिरी एचडीआर रेंडरिंग.
  • गेन मैप (समीकरणों में recovery(x, y))

    • टारगेट एचडीआर रेंडरेशन बनाने के लिए, एसडीआर रेंडरेशन में हर पिक्सल को कितना चमकाना है, यह बताने वाला मैप. यह मैप, एक चैनल या कई चैनलों का हो सकता है. मल्टी-चैनल मैप से, हर कलर चैनल के लिए अलग-अलग गेन का पता चलता है. जैसे, लाल, हरा, और नीला. इस दस्तावेज़ में, एक चैनल वाले मैप का उदाहरण दिया गया है.
  • clamp(x, a, b)

    • वैल्यू x को [a, b] की रेंज में क्लैंप करें.
  • exp2(x)

    • आधार 2 का घातांक; 2x.
  • floor(x)

    • x से कम या उसके बराबर, सबसे करीब पूर्णांक दिखाता है.
  • log2(x)

    • आधार 2 का लॉगरिदम; log2(x)
  • pow(b, x)

    • घातांक; bx.
  • XMP

    • एक्सटेंसिबल मेटाडेटा प्लैटफ़ॉर्म. एक ऐसा स्टैंडर्ड जो मेटाडेटा को इमेज कंटेनर में कोड में बदलने के तरीके के बारे में बताता है. इसे ISO 16684-1:2011(E) XMP स्पेसिफ़िकेशन पार्ट 1 से तय किया गया है.
  • मल्टी-पिक्चर फ़ॉर्मैट

    • मल्टी-पिक्चर फ़ॉर्मैट एक ऐसी तकनीक है जिसे कैमरा ऐंड इमेजिंग प्रॉडक्ट असोसिएशन (सीआईपीए) ने एक JPEG फ़ाइल में, JPEG कोड में बदली गई कई इमेज सेव करने के लिए बनाया है.
    • ज़्यादा जानकारी के लिए, इससे जुड़ी डिपेंडेंसी के लिए, CIPA का व्हाइट पेपर DC-x 007-2009 मल्टी-पिक्चर फ़ॉर्मैट देखें.
  • GContainer

    • GContainer, एक इमेज कंटेनर में कई इमेज को स्टोर करने का एक तरीका है. इसमें एक इमेज को मुख्य इमेज माना जाता है. कोई भी अतिरिक्त इमेज, वैकल्पिक वर्शन या सहायक मानी जाती है. XMP मेटाडेटा का इस्तेमाल, किसी भी अतिरिक्त इमेज की मौजूदगी और उसके मतलब के बारे में बताने के लिए किया जाता है. ज़्यादा जानकारी के लिए, GContainer की जानकारी सेक्शन देखें.

कोड में बदलना

इस सेक्शन में, ज़रूरी शर्तें पूरी करने वाली JPEG फ़ाइल को कोड में बदलने का तरीका बताया गया है. JPEG फ़ॉर्मैट के बारे में ज़्यादा जानकारी के लिए, डिपेंडेंसी सेक्शन में T.81 (09/92) डिजिटल कम्प्रेशन और कोडिंग ऑफ़ कंटिन्यूअस-टोन स्टिल इमेज देखें.

मैप जेनरेशन बढ़ाएं

कैमरा इमेजिंग पाइपलाइन आम तौर पर रेंज कंप्रेस करने की प्रोसेस करती हैं, ताकि ज़्यादा डाइनैमिक रेंज के ल्यूमिनेंस डेटा को, सामान्य SDR डिसप्ले की कम रेंज में कंप्रेस किया जा सके. गेन मैप, मूल और ज़्यादा डाइनैमिक रेंज के ल्यूमिनेंस डेटा को वापस पाने के लिए ज़रूरी डेटा को सेव करने का तरीका उपलब्ध कराता है.

इस सेक्शन में दी गई गणनाओं में, फ़्लोटिंग पॉइंट अंकगणित का इस्तेमाल किया गया है.

यहां दिए गए फ़ंक्शन, एसडीआर इमेज के बारे में बताते हैं:

  • SDR'(x, y), तीन चैनल वाली, नॉन-लीनियर (आम तौर पर गामा-कोड वाली) मुख्य इमेज होती है.
  • SDR(x, y), तीन चैनल वाली प्राइमरी इमेज का लीनियर वर्शन है. इसे प्राइमरी इमेज के कलर स्पेस को लीनियर वर्शन में बदलकर पाया जाता है. उदाहरण के लिए, sRGB ट्रांसफ़र फ़ंक्शन वाले कलर स्पेस से, ऐसे रेखीय कलर स्पेस में ट्रांसफ़र करना जो sRGB कलर प्राइमरी को बनाए रखता है.

Ysdr(x, y) फ़ंक्शन की रेंज 0.0 से 1.0 तक होती है. यह स्टैंडर्ड डाइनैमिक रेंज वाली प्राइमरी इमेज का लीनियर ल्यूमिनेंस होता है:

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

एचडीआर इमेज के लिए भी ऐसी ही परिभाषाएं मौजूद हैं.

  • HDR'(x, y), तीन चैनलों वाली नॉन-लीनियर इमेज है. इसका मतलब है कि यह PQ या HLG में एन्कोड की गई इमेज है.
  • HDR(x, y), तीन चैनल वाली लीनियर एचडीआर इमेज है.

Yhdr(x, y), एचडीआर इमेज के किसी बिंदु पर चमक होती है:

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

Yhdr(x, y) की वैल्यू 0.0 से लेकर कॉन्टेंट के लिए तय किए गए ज़्यादा से ज़्यादा बूस्टर तक हो सकती है.

एसडीआर और एचडीआर इमेज का रिज़ॉल्यूशन एक जैसा होना चाहिए. एसडीआर इमेज की कलर प्रोफ़ाइल, एचडीआर इमेज के कलर स्पेस को तय करती है.

उदाहरण के लिए, अगर एसडीआर प्राइमरी इमेज में Display-P3 कलर प्रोफ़ाइल है, तो एचडीआर इमेज को उस प्रोफ़ाइल के प्राइमरी कलर के हिसाब से तय किया जाता है. इसका मतलब है कि एचडीआर इमेज में Display-P3 के बुनियादी रंग भी होंगे.

गेन मैप की गिनती दो लीनियर इमेज से की गई है, जिनमें ज़रूरी एचडीआर इमेज की ल्यूमिनेंस, Yhdr(x, y), और स्टैंडर्ड रेंज ल्यूमिनेंस इमेज Ysdr(x, y) शामिल है.

pixel_gain(x, y) फ़ंक्शन को Yhdr(x, y) फ़ंक्शन और Ysdr(x, y) फ़ंक्शन के बीच के अनुपात के तौर पर परिभाषित किया गया है:

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

pixel_gain(x, y) फ़ंक्शन का काम करने का तरीका, लागू करने के तरीके के हिसाब से तय होता है. ऐसा तब होता है, जब Ysdr(x, y) और offset_sdr, दोनों शून्य हों.

उदाहरण के लिए, लागू करने की प्रोसेस में, pixel_gain(x, y) को 1.0 के तौर पर तय करके, Ysdr(x, y) और offset_sdr, दोनों के शून्य होने की स्थिति को मैनेज किया जा सकता है. इसके अलावा, लागू करने की सुविधा में शून्य offset_sdr का इस्तेमाल करके, ऐसी स्थिति से बचा जा सकता है.

लागू करने पर offset_sdr और offset_hdr की वैल्यू चुनी जा सकती है.

गेन मैप एक स्केलर फ़ंक्शन है, जो pixel_gain(x, y) को लॉगारिद्मिक स्पेस में कोड में बदलता है. इसमें ज़्यादा से ज़्यादा कॉन्टेंट बूस्ट और कम से कम कॉन्टेंट बूस्ट के मुकाबले होते हैं:

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)

recovery(x, y) फ़ंक्शन का व्यवहार, जहां pixel_gain(x, y) शून्य है, लागू करने के तरीके के हिसाब से तय होता है, क्योंकि log2(0) की वैल्यू तय नहीं है.

map_gamma एक फ़्लोटिंग पॉइंट नंबर है, जो 0.0 से ज़्यादा होना चाहिए. इसे लागू करने के दौरान चुना जाता है.

कॉन्टेंट के लिए ज़्यादा से ज़्यादा और कम से कम बूस्टर की वैल्यू, लागू करने के तरीके के हिसाब से तय की जाती हैं. क्रिएटर इन वैल्यू को अपनी पसंद के मुताबिक तय कर सकता है. कॉन्टेंट के लिए तय की गई ज़्यादा से ज़्यादा बढ़ोतरी, 1.0 या इससे ज़्यादा होनी चाहिए. कम से कम कॉन्टेंट बूस्ट, 0.0, 1.0] की रेंज में होना चाहिए.

recovery(x, y) में वैल्यू, [0.0, 1.0] की रेंज में होनी चाहिए.

गेन मैप को सेकंडरी इमेज JPEG में सेव किया जाता है. इसलिए, इसे 8-बिट, बिना साइन वाली पूर्णांक वैल्यू का इस्तेमाल करके एन्कोड किया जाना चाहिए. इसकी रेंज [0, 255] होनी चाहिए. हर वैल्यू, recovery(x, y) वैल्यू को दिखाती है और इसे सेकंडरी इमेज के एक पिक्सल में सेव किया जाता है.

बिना साइन वाले 8-बिट इंटिजर स्टोरेज के लिए, कोड में बदली गई वैल्यू को इस तरह से तय किया गया है:

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

एन्कोड किए गए फ़ंक्शन का हिसाब फ़्लोटिंग पॉइंट में किया जाता है. इसके बाद, उसे बताए गए तरीके से पूर्णांक में बदलकर, आखिर में 8-बिट वाले बिना साइन वाले इंटीजर में बदला जाता है.

कोड में बदलने के इस तरीके से, recovery(x, y) वैल्यू को 8-बिट के तौर पर बिना साइन इन वाले इंटीजर के रूप में दिखाया जाता है. वैल्यू 0.0 से 1.0 तक होती है. कोड में बदले गए गेन मैप को, JPEG के तौर पर सेकंडरी इमेज आइटम में सेव किया जाना चाहिए. लागू करने की प्रोसेस, JPEG कोड में बदलने के दौरान इस्तेमाल किए जाने वाले कम्प्रेशन की मात्रा चुनती है.

गेन मैप को सेकंडरी इमेज में सेव करने के बाद, उसे MPF और GContainer XMP मेटाडेटा के साथ प्राइमरी इमेज में जोड़ दिया जाता है. मुख्य इमेज GContainer डायरेक्ट्री में, गेन मैप इमेज के लिए कोई आइटम होना चाहिए.

सेव किए गए गेन मैप का रिज़ॉल्यूशन, लागू करने के तरीके के हिसाब से तय होता है. यह रिज़ॉल्यूशन, मुख्य इमेज के रिज़ॉल्यूशन से अलग हो सकता है. अगर स्टोरेज के लिए, गेन मैप को प्राइमरी इमेज से अलग रिज़ॉल्यूशन में स्केल किया जाता है, तो सैंपलिंग का तरीका, बायलाइनियर या उससे बेहतर होना चाहिए. साथ ही, इसे लागू करने का तरीका तय किया जाना चाहिए.

गेन मैप का ओरिएंटेशन, प्राइमरी इमेज से मेल खाना चाहिए. अगर मौजूद है, तो सेव किए गए गेन मैप इमेज में मौजूद ऑरिएंटेशन मेटाडेटा का इस्तेमाल नहीं किया जाता. जैसे, EXIF में.

अगर यह मौजूद है, तो गेन मैप की कलर प्रोफ़ाइल का इस्तेमाल नहीं किया जाता.

मैप कंटेनर पाना

कलर प्रोफ़ाइल

मुख्य इमेज के लिए, ICC प्रोफ़ाइल के ज़रिए इमेज की कलर प्रोफ़ाइल को दिखाया जाना चाहिए.

XMP एट्रिब्यूट

मुख्य इमेज में XMP मेटाडेटा होता है, ताकि एचडीआर गेन मैप फ़ॉर्मैट के लिए, अतिरिक्त सेमैटिक जानकारी वाली कम से कम दो इमेज तय की जा सकें.

नीचे दिए गए सबसेक्शन में, इस फ़ॉर्मैट के बारे में खास जानकारी दी गई है. GContainer के साथ काम करने के सामान्य तरीके के बारे में ज़्यादा जानकारी, GContainer की जानकारी सेक्शन में दी गई है.

नीचे दी गई टेबल में बताई गई एट्रिब्यूट वैल्यू, तय किए गए XMP बुनियादी वैल्यू टाइप की XMP सिंपल वैल्यू के तौर पर सेव की जाती हैं.

आइटम की सिमेंटिक वैल्यू

Item:Semantic प्रॉपर्टी, कंटेनर डायरेक्ट्री में मौजूद हर मीडिया आइटम के ऐप्लिकेशन का मतलब तय करती है.

वैल्यू ब्यौरा
मुख्य इससे पता चलता है कि मीडिया आइटम, कंटेनर में मुख्य इमेज है और इसे दिखाने के लिए तैयार है. डायरेक्ट्री में एक "प्राइमरी" आइटम होना चाहिए.
GainMap इससे पता चलता है कि मीडिया आइटम, गेन मैप है. डायरेक्ट्री में ज़्यादा से ज़्यादा एक "GainMap" आइटम हो सकता है.

एचडीआर गेन मैप मेटाडेटा

गेन मैप मेटाडेटा, प्राइमरी इमेज का एचडीआर वर्शन बनाने के लिए, गेन मैप को समझने और लागू करने के तरीके के बारे में जानकारी कोड में बदलता है.

गेन मैप मेटाडेटा XMP एक्सटेंशन के लिए XMP नेमस्पेस यूआरआई, http://ns.adobe.com/hdr-gain-map/1.0/ है. नेमस्पेस का डिफ़ॉल्ट प्रीफ़िक्स hdrgm है.

यह मेटाडेटा, गेन मैप की इमेज के XMP पैकेट में सेव किया जाता है. साथ ही, गेन मैप की इमेज XMP के rdf:Description में ये प्रॉपर्टी दिखनी चाहिए:

नाम टाइप ब्यौरा
hdrgm:Version टेक्स्ट इस्तेमाल किए जा रहे गेन मैप फ़ॉर्मैट का वर्शन. यह वर्शन "1.0" है. Required.
hdrgm:BaseRenditionIsHDR बूलियन प्राइमरी इमेज की डाइनैमिक रेंज दिखाता है. "गलत" से पता चलता है कि मुख्य इमेज एसडीआर है और एचडीआर रेंडरेशन बनाने के लिए, गेन मैप को इसके साथ जोड़ा जा सकता है. "सही" से पता चलता है कि मुख्य इमेज एचडीआर है और एसडीआर रेंडरेशन बनाने के लिए, गेन मैप को इसके साथ जोड़ा जा सकता है. यह "गलत" होना चाहिए. ज़रूरी नहीं; डिफ़ॉल्ट वैल्यू "गलत है" है.
hdrgm:GainMapMin रीयल या क्रम से लगाए गए रीयल का कलेक्शन map_min_log2 की वैल्यू सेव करता है. यह कम से कम कॉन्टेंट बूस्ट का log2 है. यह किसी पिक्सल पर, टारगेट एचडीआर रेंडरेशन के लिए, लीनियर ल्यूमिनेंस के कम से कम अनुमति वाले अनुपात को एसडीआर इमेज के अनुपात से (इसमें divide किया गया) सेट करता है. यह एक रीयल वैल्यू या रीयल वैल्यू का क्रम से लगाया गया ऐरे हो सकता है. रीयल के क्रम में लगाए गए कलेक्शन में, एक ऐसा आइटम हो सकता है जो सभी चैनलों पर लागू होता हो. इसके अलावा, इसमें लाल, हरे, और नीले चैनलों के लिए, तीन आइटम भी हो सकते हैं. यह hdrgm:GainMapMax से कम या इसके बराबर होना चाहिए. ज़रूरी नहीं; डिफ़ॉल्ट वैल्यू 0.0 है.
hdrgm:GainMapMax रीयल या क्रम से लगाए गए रीयल का कलेक्शन map_max_log2 की वैल्यू सेव करता है. यह ज़्यादा से ज़्यादा कॉन्टेंट बूस्ट का log2 है. यह किसी पिक्सल पर, टारगेट एचडीआर रेंडरेशन के लिए लीनियर ल्यूमिनेंस के ज़्यादा से ज़्यादा अनुपात को एसडीआर इमेज के अनुपात से (इसमें divide किया गया) सेट करता है. यह एक रीयल वैल्यू या रीयल वैल्यू का क्रम से लगाया गया ऐरे हो सकता है. रीयल के क्रम में लगाए गए कलेक्शन में, एक ऐसा आइटम हो सकता है जो सभी चैनलों पर लागू होता हो. इसके अलावा, इसमें लाल, हरे, और नीले चैनलों के लिए, तीन आइटम भी हो सकते हैं. यह वैल्यू, hdrgm:GainMapMin से ज़्यादा या इसके बराबर होनी चाहिए. ज़रूरी है.
hdrgm:Gamma रीयल या क्रम से लगाए गए रीयल का कलेक्शन map_gamma की वैल्यू सेव करता है. यह स्टोर की गई मैप वैल्यू पर लागू होने वाला गामा है. यह एक रीयल वैल्यू या रीयल वैल्यू का क्रम से लगाया गया ऐरे हो सकता है. रीयल के क्रम में लगाए गए कलेक्शन में, एक आइटम ऐसा हो सकता है जो सभी चैनलों पर लागू होता हो. इसके अलावा, इसमें लाल, हरे, और नीले चैनलों के लिए, तीन आइटम भी हो सकते हैं. 0.0 से ज़्यादा होना चाहिए. ज़रूरी नहीं; डिफ़ॉल्ट वैल्यू 1.0 है.
hdrgm:ऑफ़सेटSDR रीयल या क्रम से लगाए गए रीयल का कलेक्शन offset_sdr की वैल्यू सेव करता है. यह ऑफ़सेट है, जिसे मैप जनरेट करने और उसे लागू करने के दौरान एसडीआर पिक्सल की वैल्यू पर लागू किया जाता है. यह एक रीयल वैल्यू या रीयल वैल्यू का क्रम से लगाया गया कलेक्शन हो सकता है. अगर रीयल के लिए व्यवस्थित किए गए कलेक्शन में एक आइटम है, तो यह सभी चैनलों पर लागू होगा. इसके अलावा, अगर इसमें तीन आइटम हैं, तो ये रेड, ग्रीन, और ब्लू चैनलों पर लागू होंगे. यह वैल्यू 0.0 या उससे ज़्यादा होनी चाहिए. ज़रूरी नहीं; डिफ़ॉल्ट वैल्यू 0.015625 (1/64) है.
hdrgm:ऑफ़सेटएचडीआर रीयल या क्रम से लगाए गए रीयल का कलेक्शन offset_hdr की वैल्यू सेव करता है. यह गेन मैप जनरेट करने और लागू करने के दौरान, HDR पिक्सल वैल्यू पर लागू होने वाला ऑफ़सेट है. यह एक रीयल वैल्यू या रीयल वैल्यू का क्रम से लगाया गया कलेक्शन हो सकता है. अगर रीयल के लिए व्यवस्थित किए गए कलेक्शन में एक आइटम है, तो यह सभी चैनलों पर लागू होगा. इसके अलावा, अगर इसमें तीन आइटम हैं, तो ये रेड, ग्रीन, और ब्लू चैनलों पर लागू होंगे. यह वैल्यू 0.0 या उससे ज़्यादा होनी चाहिए. ज़रूरी नहीं; डिफ़ॉल्ट वैल्यू 0.015625 (1/64) है.
hdrgm:HDRCapacityMin रीयल hdr_capacity_min की वैल्यू सेव करता है. यह डिसप्ले में बढ़ोतरी की कम से कम वैल्यू का log2 हिस्सा है, जिसके लिए मैप लागू किया जाता है. इस वैल्यू से इस बात पर भी असर पड़ता है कि डिसप्ले बूस्ट के आधार पर गेन मैप को कितना लागू करना है. यह वैल्यू 0.0 या उससे ज़्यादा होनी चाहिए. ज़रूरी नहीं; डिफ़ॉल्ट वैल्यू 0.0 है.
hdrgm:HDRक्षमतामैक्स रीयल hdr_capacity_max की वैल्यू सेव करता है. यह मैप को पूरी तरह से लागू करने के लिए, ज़्यादा से ज़्यादा डिसप्ले बूस्ट वैल्यू का log2 है. इस वैल्यू से इस बात पर भी असर पड़ता है कि डिसप्ले बूस्ट के आधार पर गेन मैप को कितना लागू करना है. यह वैल्यू, hdrgm:HDRCapacityMin से ज़्यादा होनी चाहिए. ज़रूरी है.

गेन मैप XMP का उदाहरण

मान्य गेन मैप XMP पैकेट के नीचे दिए गए उदाहरण में, परिचय सेक्शन में दी गई उदाहरण फ़ाइल से लिया गया मेटाडेटा शामिल है.

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

गेन मैप का एमपीएफ़ स्टोरेज

गेन मैप की इमेज को अतिरिक्त इमेज के तौर पर सेव करना चाहिए, जैसा कि CIPA-x 007-2009 मल्टी-पिक्चर फ़ॉर्मैट में बताया गया है. इसके बारे में डिपेंडेंसी सेक्शन में बताया गया है.

डिकोड करें

इस सेक्शन में, JPEG फ़ाइल से गेन मैप को डिकोड करने का तरीका बताया गया है.

फ़ॉर्मैट का सिग्नल

इस फ़ॉर्मैट के मुताबिक बनी JPEG फ़ाइल की पहचान, प्राइमरी इमेज के XMP पैकेट में hdrgm:Version="1.0" की मौजूदगी से की जा सकती है. यहां hdrgm, नेमस्पेस यूआरआई http://ns.adobe.com/hdr-gain-map/1.0/ है.

गेन मैप इमेज ढूंढना

इमेज को पार्स और डिकोड करने के बारे में ज़्यादा जानने के लिए, नीचे दिया गया GContainer के बारे में जानकारी सेक्शन देखें. XMP में मौजूद "GainMap" सिमैंटिक आइटम rdf:Directory का इस्तेमाल, गेन मैप की इमेज की जगह के बारे में बताने के लिए किया जाता है. इसके अलावा, गेन मैप की जगह का पता लगाने के लिए, एमपीएफ़ इंडेक्स आईएफ़डी और स्कैनिंग इमेज के एक्सएमपी का इस्तेमाल किया जाता है.

अमान्य मेटाडेटा को मैनेज करना

अगर कोई ज़रूरी फ़ील्ड मौजूद नहीं है या किसी फ़ील्ड में अमान्य वैल्यू दी गई है, तो मेटाडेटा को अमान्य माना जाता है. कोई वैल्यू अमान्य हो सकती है, क्योंकि उसे तय किए गए टाइप के हिसाब से पार्स नहीं किया जा सकता या वह तय की गई सीमा से बाहर है.

अगर अमान्य मेटाडेटा मिलता है, तो गेन मैप को अनदेखा किया जाना चाहिए और एसडीआर इमेज दिखाई जानी चाहिए.

डिसप्ले

एचडीआर गेन मैप फ़ॉर्मैट में एन्कोड की गई फ़ाइलों को, सामान्य एसडीआर डिसप्ले या ज़्यादा चमक वाले आउटपुट वाले एचडीआर डिसप्ले, दोनों पर रेंडर किया जा सकता है.

एचडीआर में बदले गए वीडियो बनाने के लिए, गेन मैप का इस्तेमाल करना 

इस सेक्शन में दी गई गणनाओं में, फ़्लोटिंग-पॉइंट अंकगणित का इस्तेमाल किया गया है.

encoded_recovery(x, y), गेन मैप इमेज से मिली सिंगल-चैनल, 8-बिट, बिना साइन वाली पूर्णांक वैल्यू है.

अगर गेन मैप का रिज़ॉल्यूशन, प्राइमरी इमेज से अलग है, तो encoded_recovery(x, y) का पता लगाने के लिए, प्राइमरी इमेज की चौड़ाई और ऊंचाई की सीमा के आधार पर, x और y के लिए गेन मैप इमेज की फ़िल्टर की गई सैंपलिंग का इस्तेमाल किया जाता है. फ़िल्टर करने का तरीका बायलीनियर या बेहतर होना चाहिए. साथ ही, इसे लागू किया जाना चाहिए.

map_gamma की वैल्यू, hdrgm:Gamma मेटाडेटा फ़ील्ड से तय होती है.

log_recovery(x, y), लॉगारिदमिक स्पेस में नॉर्मलाइज़ किया गया फ़्लोटिंग पॉइंट पिक्सल गेन है:

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

मैक्स डिसप्ले बूस्ट, एक अदिश फ़्लोटिंग पॉइंट वैल्यू है. इसे मौजूदा एचडीआर व्हाइट पॉइंट के बीच के अनुपात और मौजूदा एसडीआर व्हाइट पॉइंट से भाग दिया जाता है. यह वैल्यू, डिसप्ले सिस्टम से मिलती है और समय के साथ बदल सकती है.

hdr_capacity_max की वैल्यू, hdrgm:HDRCapacityMax मेटाडेटा फ़ील्ड से तय होती है. hdr_capacity_min की वैल्यू, hdrgm:HDRCapacityMin मेटाडेटा फ़ील्ड से तय होती है.

hdrgm:BaseRenditionIsHDR के "गलत" होने पर, weight_factor का पता इस तरह लगाया जाता है:

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 "सही" है, तो दूसरा समीकरण इस तरह दिखता है:

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

gain_map_max की वैल्यू, hdrgm:GainMapMax मेटाडेटा फ़ील्ड से तय होती है. gain_map_min की वैल्यू, hdrgm:GainMapMin मेटाडेटा फ़ील्ड से तय होती है. offset_sdr की वैल्यू, hdrgm:OffsetSDR मेटाडेटा फ़ील्ड से तय होती है. offset_hdr hdrgm:OffsetHDR मेटाडेटा फ़ील्ड से तय होता है.

लीनियर एडेप्टेड एचडीआर रेंडरेशन का हिसाब इस तरह लगाया जा सकता है:

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

ज़रूरत पड़ने पर, लागू करने की प्रोसेस में HDR(x, y) पर ट्रांसफ़ॉर्म लागू किया जा सकता है, ताकि डेटा को डिसप्ले के हिसाब से जगह पर रखा जा सके. इस तरह के किसी भी बदलाव के लिए, रंग को सही तरीके से बदलना ज़रूरी है.

GContainer की जानकारी

इस सेक्शन में, अन्य ज़रूरी शर्तों के बारे में बताया गया है, ताकि यह फ़ॉर्मैट GContainer एक्सएमएल मेटाडेटा के मुताबिक हो. मेटाडेटा को ISO 166841:2011(E) XMP स्पेसिफ़िकेशन पार्ट 1 के हिसाब से क्रम में लगाया जाता है. साथ ही, इसे मुख्य इमेज फ़ाइल में एम्बेड किया जाता है, जैसा कि Adobe XMP स्पेसिफ़िकेशन पार्ट 3 स्टोरेज इन फ़ाइल्स में बताया गया है. मुख्य इमेज फ़ाइल में ये आइटम होते हैं, जिन्हें RDF/XML फ़ॉर्मैट में फ़ॉर्मैट किया जाता है.

XMP पैकेट से जुड़ी ज़रूरी शर्तें

XMP पैकेट में नाम स्थान यूआरआई http://ns.adobe.com/hdr-gain-map/1.0/ के ज़रिए गेन मैप मेटाडेटा XMP एक्सटेंशन शामिल होगा. डिफ़ॉल्ट नेमस्पेस प्रीफ़िक्स hdrgm है.

XMP पैकेट में hdrgm:Version="1.0" की जानकारी होगी.

कंटेनर एलिमेंट

GContainer XMP एक्सटेंशन के लिए XMP नेमस्पेस, http://ns.google.com/photos/1.0/container/ है. नेमस्पेस का डिफ़ॉल्ट प्रीफ़िक्स Container है.

प्राइमरी इमेज में XMP मेटाडेटा में Container:Directory एलिमेंट होता है, जो फ़ाइल कंटेनर में मौजूद अगली मीडिया फ़ाइल के क्रम और प्रॉपर्टी के बारे में बताता है. कंटेनर की हर फ़ाइल के लिए, Container:Directory में एक मीडिया आइटम होता है. मीडिया आइटम, फ़ाइल कंटेनर में मौजूद जगह और जोड़ी गई हर फ़ाइल की बुनियादी प्रॉपर्टी के बारे में बताता है.

कंटेनर एलिमेंट को मुख्य इमेज के XMP मेटाडेटा में कोड में बदला जाता है. साथ ही, यह कंटेनर में मीडिया आइटम की डायरेक्ट्री तय करता है. मीडिया आइटम कंटेनर फ़ाइल में उसी क्रम में होने चाहिए जिसमें डायरेक्ट्री में मीडिया आइटम एलिमेंट मौजूद हैं. साथ ही, आइटम को अच्छी तरह से पैक किया जाना चाहिए.

डायरेक्ट्री में सिर्फ़ एक "प्राइमरी" इमेज आइटम हो सकता है. यह डायरेक्ट्री का पहला आइटम होना चाहिए.

एलिमेंट का नाम टाइप ब्यौरा
Container:Directory क्रम में लगाए गए स्ट्रक्चर क्रम से लगाए गए स्ट्रक्चर का कलेक्शन. हर स्ट्रक्चर में एक Container:Item स्ट्रक्चर होता है, जिसमें कंटेनर के लेआउट और कॉन्टेंट की जानकारी होती है.

आइटम एलिमेंट

आइटम एलिमेंट से पता चलता है कि ऐप्लिकेशन में हर मीडिया आइटम का इस्तेमाल कैसे किया जाता है.

GContainer आइटम XMP एक्सटेंशन के लिए XMP नेमस्पेस यूआरआई http://ns.google.com/photos/1.0/container/item/ है. नेमस्पेस का डिफ़ॉल्ट प्रीफ़िक्स Item होता है.

पहला मीडिया आइटम, मुख्य इमेज होना चाहिए.  इसमें Item:Semantic = "Primary" और सामान के MIME टाइप की वैल्यू में दी गई Item:Mime की जानकारी होनी चाहिए.

मुख्य इमेज आइटम की लंबाई, मुख्य इमेज को पार्स करके तय की जाती है. यह पार्स करने के लिए, फ़ाइल कंटेनर की शुरुआत से लेकर MIME टाइप तक का इस्तेमाल किया जाता है.

मीडिया आइटम में Item:Padding एट्रिब्यूट शामिल हो सकता है. इससे, मीडिया आइटम के आखिर और अगले मीडिया आइटम की शुरुआत के बीच अतिरिक्त पैडिंग तय की जा सकती है. Container:Directory में आखिरी मीडिया आइटम पर मौजूद होने पर, Item:Padding से आइटम के आखिर और फ़ाइल के आखिर के बीच के पैडिंग के बारे में पता चलता है.

हर मीडिया आइटम में Item:Mime टाइप और Item:Semantic एट्रिब्यूट होने चाहिए. सेकंडरी इमेज मीडिया आइटम में Item:Length एट्रिब्यूट होने चाहिए.

क्रम में चलने वाले मीडिया आइटम, फ़ाइल कंटेनर में संसाधन का डेटा शेयर कर सकते हैं. पहला मीडिया आइटम, फ़ाइल कंटेनर में रिसॉर्स की जगह तय करता है. इसके बाद शेयर किए गए मीडिया आइटम के लिए, Item:Length को 0 पर सेट किया जाता है. अगर रिसॉर्स डेटा खुद एक कंटेनर है, तो Item:URI का इस्तेमाल रिसॉर्स में मीडिया आइटम के डेटा की जगह तय करने के लिए किया जा सकता है.

कंटेनर में मीडिया आइटम रिसॉर्स की जगह तय करने के लिए, प्राइमरी इमेज को एन्कोड करने में लगने वाले समय, पहले से मौजूद सेकंडरी मीडिया आइटम रिसॉर्स की Item:Length वैल्यू, और पहले से मौजूद सभी Item:Padding वैल्यू को जोड़ा जाता है. Item:Padding को मीडिया आइटम संसाधनों पर 0 माना जाता है जो इसकी वैल्यू नहीं बताते.

विशेषता नाम टाइप ब्यौरा
आइटम:MIME टेक्स्ट कंटेनर में मौजूद मीडिया आइटम के MIME टाइप की जानकारी देने वाली आसान स्ट्रिंग. इसकी परिभाषा जानने के लिए, आइटम के MIME टाइप की वैल्यू वाला सेक्शन देखें. Required.
आइटम:सेमैंटिक टेक्स्ट मीडिया आइटम के लिए, ऐप्लिकेशन के हिसाब से दी गई आसान स्ट्रिंग. परिभाषा के लिए, आइटम की सिमेंटिक वैल्यू सेक्शन देखें. Required.
आइटम:लंबाई पूर्णांक ऐसी आसान स्ट्रिंग जिसमें आइटम की लंबाई बाइट में, धनात्मक पूर्णांक के तौर पर दी गई हो. लंबाई 0 से पता चलता है कि मीडिया आइटम का संसाधन, पिछले मीडिया आइटम के साथ शेयर किया गया है. सेकंडरी मीडिया आइटम के लिए ज़रूरी है. मुख्य इमेज के लिए वैकल्पिक है.
आइटम:लेबल टेक्स्ट लागू करने के लिए तय की गई स्ट्रिंग, जिसका इस्तेमाल एक ही Item:Semantic वाले कई आइटम एलिमेंट के बीच अंतर करने के लिए किया जाता है. ज़रूरी नहीं.
आइटम:पैडिंग पूर्णांक एक स्ट्रिंग, जिसमें मीडिया आइटम के आखिर और अगले मीडिया आइटम के शुरू होने के बीच, अतिरिक्त पैडिंग के बाइट में एक सकारात्मक पूर्णांक की लंबाई होती है. इसके अलावा, Container:Directory में आखिरी मीडिया आइटम पर इस्तेमाल करने पर, फ़ाइल के आखिर में भी यह पैडिंग होती है. अगर यह वैल्यू मौजूद नहीं है, तो 0 मानी जाती है. ज़रूरी नहीं.
आइटम:यूआरआई टेक्स्ट ISO/IEC 14496-12 सेक्शन 8.11.9 के मुताबिक यूआरआई स्ट्रिंग, जिसमें मीडिया आइटम संसाधन में मौजूद मीडिया डेटा का रिलेटिव यूआरआई शामिल होता है. डिफ़ॉल्ट रूप से, मुख्य इमेज का संसाधन इस्तेमाल किया जाता है. ISO बेस मीडिया फ़ाइल फ़ॉर्मैट ISO/IEC 14496-12 MIME टाइप के लिए ज़रूरी नहीं है. इसका इस्तेमाल किसी और काम के लिए नहीं किया जा सकता.

आइटम के MIME टाइप की वैल्यू

Item:Mime एट्रिब्यूट, हर मीडिया आइटम के डेटा के MIME टाइप के बारे में बताता है.

वैल्यू ब्यौरा
image/jpeg JPEG इमेज.

GContainer XMP का उदाहरण

नीचे दिए गए एक मान्य GContainer XMP पैकेट के उदाहरण में, उदाहरण वाली फ़ाइल से मेटाडेटा लिया गया है. इस फ़ाइल के बारे में शुरुआती जानकारी सेक्शन में बताया गया है.

<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 के साथ काम करना

ISO 21496-1, इमेज फ़ाइल में गेन मैप मेटाडेटा को एन्कोड करने के लिए, एन्कैप्सुलेट करने का एक वैकल्पिक तरीका उपलब्ध कराता है. फ़ाइल में मौजूद एक गेनमैप इमेज का इस्तेमाल करके, एक JPEG फ़ाइल में अल्ट्रा एचडीआर मेटाडेटा और ISO 21496-1 मेटाडेटा, दोनों को कोड में बदला जा सकता है.

दोनों JPEG इमेज में, APP1 XMP सेगमेंट के तुरंत बाद ISO 21496-1 मेटाडेटा दिखता है

दूसरी इमेज. अल्ट्रा एचडीआर और ISO 21496-1 मेटाडेटा वाले फ़ाइल लेआउट का उदाहरण.

ज़्यादा से ज़्यादा क्रॉस-प्लैटफ़ॉर्म के साथ काम करने के लिए, Android के ऐसे वर्शन और ऐप्लिकेशन जो गेन मैप की मदद से, JPEG फ़ाइलों को खुद एन्कोड या डिकोड करते हैं, उन्हें Ultra HDR v1 और ISO 21496-1 मेटाडेटा, दोनों के लिए एन्कोड और डिकोड करने की सुविधा देनी चाहिए. एन्कोड करने के दौरान, लागू करने वाले टूल या ऐप्लिकेशन को दोनों मेटाडेटा फ़ॉर्मैट को एन्कोड करना चाहिए. अगर डिकोड करने के दौरान, दोनों तरह के मेटाडेटा मौजूद हैं, तो लागू करने वाले या ऐप्लिकेशन को ISO 21496-1 मेटाडेटा का इस्तेमाल करना चाहिए.

लॉग बदलें

इस सेक्शन में, इस स्पेसिफ़िकेशन के वर्शन के बीच हुए बदलावों के बारे में जानकारी दी गई है.

v1.1

अल्ट्रा एचडीआर से जुड़ी खास बातों के इस वर्शन में किए गए सभी बदलावों से जानकारी मिलती है. साथ ही, ये बदलाव इस बारे में भी हैं कि ISO 21496-1 के साथ यह वर्शन काम करता है या नहीं. हालांकि, फ़ाइल के असल फ़ॉर्मैट में कोई बदलाव नहीं होगा.

v1.0

अल्ट्रा एचडीआर की खास बातों के बारे में शुरुआती पब्लिकेशन.