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

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

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

Android ने कई चरणों में एचडीआर टेक्नोलॉजी को सपोर्ट किया है:

Android 7

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

Android 13

Android 14

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

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

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

Android 9

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

Android 13

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

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

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

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 फ़ाइल में एन्कोड किया जाता है.

पीएनजी फ़ाइल को कोड में बदलने के लिए, यह तरीका अपनाया जाता है:

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

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

PNG चंक का लेआउट

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

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