Android डिवाइस के स्क्रीनशॉट में HDR

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

Android पर एचडीआर की सुविधा

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

Android 7

  • एचडीआर वीडियो को डिकोड करने और डिसप्ले करने की सुविधा.
  • एचडीआर की सुविधाओं में लगातार सुधार.

Android 13

Android 14

एचडीआर के साथ स्क्रीनशॉट लेने की सुविधा में भी समय के साथ कई बदलाव हुए हैं.

एचडीआर स्क्रीनशॉट लेने की सुविधाओं में हुए सुधार

इस सेक्शन में, Android के हाल ही के अपडेट में एचडीआर स्क्रीनशॉट की सुविधा के बारे में बताया गया है.

Android 9

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

Android 13

SurfaceFlinger के GPU रेंडरिंग ब्लॉक में टोन मैपिंग प्लगिन जोड़ा जाता है. इससे ओईएम को, अपने डिसप्ले की टोन-मैपिंग कर्व से मेल खाने वाला GPU शेडर उपलब्ध कराने में मदद मिलती है. स्क्रीनशॉट में मौजूद जानकारी, स्क्रीन पर मौजूद जानकारी से काफ़ी हद तक मिलती-जुलती है. हालांकि, इनमें ये अंतर हैं:

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

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

Android 14

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

  • इमेज में, टोनमैपिंग जैसी इमेज प्रोसेसिंग का इस्तेमाल नहीं किया जा सकता. साथ ही, इमेज प्रोसेसिंग ऐसी नहीं होनी चाहिए जो आस-पास के यूज़र इंटरफ़ेस (यूआई) से अलग हो.
  • यूज़र इंटरफ़ेस (यूआई) रेंडर करते समय, सोर्स के आधार पर टोन मैपिंग करने की ज़िम्मेदारी ऐप्लिकेशन की होती है.

इस समस्या को हल करने के लिए, स्क्रीनशॉट लेने की सुविधा को तीन तरीकों से लागू किया जा सकता है:

  • अल्ट्रा एचडीआर इमेज की एचडीआर बारीकियों को बनाए रखता है. इससे स्क्रीनशॉट में ऐप्लिकेशन का यूज़र इंटरफ़ेस (यूआई) गहरा हो जाता है.
  • ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) की जानकारी को सुरक्षित रखता है. इससे अल्ट्रा एचडीआर इमेज क्लिप होती है.
  • एचडीआर हाइलाइट को क्लिप करते समय, ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) की चमक को कम कर देता है.

Android 14 में, ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) को ज़्यादा चमकदार बनाने और एचडीआर हाइलाइट को क्लिप करने के लिए, तीसरे तरीके का इस्तेमाल किया जाता है.

Android 15-QPR1

SurfaceFlinger में, स्क्रीनशॉट के लिए लोकल टोन-मैपिंग एल्गोरिदम शामिल होता है. इस प्रोसेस में ये चरण शामिल हैं:

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

इस एल्गोरिदम की मदद से, Android 14 और Android 15-QPR1 के बीच स्क्रीनशॉट की क्वालिटी में काफ़ी सुधार हुआ है. यहां दिए गए उदाहरणों में यह दिखाया गया है:

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

    Android 14 Android 15-QPR1
    Android 14 में पहला उदाहरण Android 15qpr में पहला उदाहरण

    पहली इमेज. उदाहरण 1 के लिए, Android 14 और Android 15-QPR1 की तुलना.

  • दूसरे उदाहरण में, सेटिंग के ऊपर एचडीआर वीडियो का स्क्रीनशॉट दिखाया गया है. इसके बाद, अन्य स्क्रीनशॉट दिखाए गए हैं. Android 14 में, स्क्रीनशॉट के रंग लगातार गहरे होते जाते हैं. Android 15-QPR1 में, टोनमैपर यूज़र इंटरफ़ेस (यूआई) के रंगों को सही तरीके से दोहराता है और उन्हें सुरक्षित रखता है.

    Android 14 Android 15-QPR1
    Android 14 में दूसरा उदाहरण Android 15qpr में दूसरा उदाहरण

    दूसरी इमेज. उदाहरण 2 के लिए, Android 14 और Android 15-QPR1 की तुलना.

Android 16

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

स्क्रीनशॉट जनरेट करने से जुड़ी जानकारी यहां दी गई है:

  • डिवाइस पर एचडीआर कॉन्टेंट दिखाए जाने पर, FP16 पिक्सल का इस्तेमाल करके स्क्रीनशॉट जनरेट किया जाता है.
  • Android 15-QPR1 में बताया गया लोकल टोन-मैपर, 8-बिट का बेस एसडीआर रेंडरिंग जनरेट करता है.
  • एसडीआर बेस रेंडिशन को एचडीआर रेंडिशन के साथ मिलाकर, 8-बिट गेनमैट बनाया जाता है.
  • एसडीआर बेस रेंडिशन और गेनमैट को एक ही PNG फ़ाइल में एन्कोड किया जाता है.

PNG एन्कोडिंग की जानकारी यहां दी गई है:

  • गेनमैप को PNG इमेज के तौर पर एन्कोड किया जाता है. इसमें gmAP चंक शामिल होता है. इसमें गेनमैप के लिए ISO 21496-1 मेटाडेटा होता है.
  • एसडीआर की बेस रेंडिशन को PNG इमेज के तौर पर एन्कोड किया जाता है. इसमें gmAP चंक शामिल होता है. इसमें ISO 21496-1 मेटाडेटा का वर्शन होता है. इस PNG इमेज में gdAT चंक भी शामिल है. इसमें एन्कोड किए गए पूरे गेनमैट PNG की जानकारी होती है.

यहां दिए गए डायग्राम में, पीएनजी फ़ाइल के चंक का लेआउट दिखाया गया है:

PNG चंक का लेआउट

तीसरी इमेज. PNG चंक का लेआउट.

Android 16 में, PNG कोडेक इन PNG को एन्कोड और डिकोड, दोनों कर सकता है. ऐप्लिकेशन, अल्ट्रा एचडीआर की तरह ही, गेनमैट के साथ PNG दिखा सकते हैं.