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 में पहला उदाहरण

    पहली इमेज. पहले उदाहरण के लिए, 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 इमेज को अल्ट्रा एचडीआर की तरह ही दिखा सकते हैं.