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

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

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

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

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

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

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

ओईएम के लिए ज़रूरी शर्तें

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

  • HWC के एआईडीएल वर्शन को लागू करें. इसमें डिवाइस की कलर पाइपलाइन में, हार्डवेयर की मदद से स्क्रीन की रोशनी कम करने की सुविधा शामिल है. ज़रूरी सुविधाओं को लागू करने के लिए, HWC के लिए 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>

सीमाएं

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

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

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

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

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

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

पुष्टि करें

OEM, डिमिंग की सही स्थिति की जांच करने और इनपुट डिमिंग रेशियो की पुष्टि करने के लिए, वर्चुअल टेस्टिंग सिस्टम (वीटीएस) टेस्ट का इस्तेमाल कर सकते हैं. ये टेस्ट, एचडब्ल्यूसी के टेस्ट सुइट में शामिल होते हैं.

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

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

समस्याएं

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

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

ऐसे एचडब्ल्यूसी लागू करने वाले जो कलर पाइपलाइन में सही जगह पर इमेज को डिटर करने में असमर्थ हैं उन्हें अनुरोध करना होगा कि SurfaceFlinger, जीपीयू पर डिमिंग और डिटरिंग लागू करे.

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