एसडीआर और एचडीआर, दोनों तरह के कंपोज़िशन

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

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

  • एचडीआर ल्यूमिनेंस को एसडीआर के साथ काम करने वाली रेंज में टोन मैप करना.

    libtonemap का इस्तेमाल करके, हार्डवेयर कंपोज़र (एचडब्ल्यूसी), SurfaceFlinger, और ऐप्लिकेशन के बीच टोन मैपिंग को एक जैसा बनाया जा सकता है. ओईएम, टोन मैपिंग की अपनी कर्व लागू कर सकते हैं. इन्हें वेंडर और फ़्रेमवर्क कॉम्पोनेंट के बीच शेयर किया जा सकता है.

  • एचडीआर कॉन्टेंट के साथ एसडीआर कॉन्टेंट को एक साथ दिखाने पर, एसडीआर कॉन्टेंट की चमक कम हो जाती है.

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

ओईएम से जुड़ी ज़रूरी शर्तें

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

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

  • एचडब्ल्यूसी में हार्डवेयर ओवरले को सही तरीके से डिम करने के लिए, खास हार्डवेयर की ज़रूरत होती है. इससे ओवरले की लीनियर लाइट को स्केल किया जा सकता है. ज़रूरी हार्डवेयर के बिना लागू किए गए सिस्टम में, SurfaceFlinger को कंपोज़िशन को GPU पर ट्रांसफ़र करना पड़ता है. इससे बैटरी खत्म होती है और डिसप्ले की रोशनी कम हो सकती है.

  • डिवाइस में कम से कम एक ऐसी एचडीआर टेक्नोलॉजी होनी चाहिए जिसके बारे में Display.getHdrCapabilities ने बताया है.

कॉन्फ़िगरेशन

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

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

  • sdrHdrRatioMap एलिमेंट, एसडीआर डिमिंग की सुविधा चालू करता है. साथ ही, यह एक लुक-अप टेबल (एलयूटी) तय करता है. इसकी मदद से, स्क्रीन पर एचडीआर कॉन्टेंट मौजूद होने पर, एचडीआर की स्क्रीन की चमक को एसडीआर के वाइट पॉइंट पर मैप किया जाता है.

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

    अगर sdrHdrRatioMap को तय नहीं किया गया है, तो एसडीआर डिमिंग की सुविधा चालू नहीं होगी. भले ही, एचडब्ल्यूसी लागू करने की सुविधा में एसडीआर डिमिंग की सुविधा काम करती हो.

  • minimumHdrPercentOfScreen एलिमेंट की वैल्यू 0 से 100 के बीच होती है. इससे यह कंट्रोल किया जाता है कि किसी पैनल के हाई ब्राइटनेस मोड को कब चालू किया जा सकता है. Android 13 में, इस थ्रेशोल्ड को ट्यून किया जा सकता है, ताकि ज़्यादा स्थितियों में हाई ब्राइटनेस मोड को चालू किया जा सके. जैसे, पिक्चर-इन-पिक्चर मोड में. AOSP के पिछले वर्शन में, इस वैल्यू को 50% पर सेट किया गया था.

डिस्प्ले कॉन्फ़िगरेशन के मुख्य एलिमेंट के लिए, यहां दिया गया कोड ब्लॉक देखें:

<displayConfiguration>
    ...
    <highBrightnessMode>
        ...
        <!--Percentage of the screen that must be covered by HDR layers until high brightness mode is enabled.
        <minimumHdrPercentOfScreen>...</minimumHdrPercentOfScreen>
        <!--sdrHdrRatioMap, backed by spline, must have at least two entries -->
        <sdrHdrRatioMap>
            <point>
                <sdrNits>...</sdrNits>
                <hdrRatio>...</hdrRatio>
            </point>
            <point>
                <sdrNits>...</sdrNits>
                <hdrRatio>...</hdrRatio>
            </point>
            <!--More interpolation points may be added –->
            ...
        </sdrHdrRatioMap>
        ...
    </highBrightnessMode>
    ...
</displayConfiguration>

सीमाएं

टोन मैपिंग और एसडीआर कॉन्टेंट को कम करने की सुविधा चालू करने पर, ये समस्याएं हो सकती हैं:

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

  • इन स्थितियों में, बैटरी लाइफ़ कम हो सकती है:

    • एचडब्ल्यूसी लागू करने वाले ऐसे तरीके जो डिमिंग की कार्रवाइयों को जीपीयू पर भेजते हैं, उनसे जीपीयू का इस्तेमाल बढ़ सकता है.

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

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

Validation

ओईएम, वीटीएस टेस्ट का इस्तेमाल कर सकते हैं. ये टेस्ट, एचडब्ल्यूसी के टेस्ट सुइट का हिस्सा होते हैं. इनकी मदद से, डिमिंग की सुविधा सही तरीके से काम कर रही है या नहीं, यह पता लगाया जा सकता है. साथ ही, इनपुट डिमिंग रेशियो की पुष्टि की जा सकती है.

इस सुविधा की पुष्टि, डिवाइस पर निर्भर करती है. इसलिए, इसे सपोर्ट करने के लिए कोई सीटीएस या GTS टेस्ट नहीं है.

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

समस्याएं

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

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

जिन HWC को कलर पाइपलाइन में सही जगह पर इमेज को डिटर करने में समस्या आ रही है उन्हें SurfaceFlinger से अनुरोध करना होगा कि वह GPU पर डिमिंग और डिटरिंग लागू करे.

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