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

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

Android 16

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

स्क्रीनशॉट जनरेट करने की प्रोसेस में ये शामिल हैं:

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

पीएनजी को कोड में बदलने की प्रोसेस में ये शामिल हैं:

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

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

PNG चंक का लेआउट

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

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