SDR ও HDR কম্পোজিশন মিশিয়ে তৈরি করা

এই পৃষ্ঠায় মিক্সড SDR ও HDR কম্পোজিশনের জন্য SDR কন্টেন্ট ডিমিং ফিচারের প্রয়োজনীয়তা, কনফিগারেশন ও যাচাইকরণ সম্পর্কে বর্ণনা করা হয়েছে।

Android 13-এ স্ক্রিনে SDR ও HDR কম্পোজিশন একসাথে দেখানোর জন্য নিম্নলিখিত ফিচারগুলি যোগ করে উন্নত করা হয়েছে:

  • SDR-এর সাথে মানানসই রেঞ্জে HDR লুমিন্যান্স টোন ম্যাপ করা।

    libtonemap ব্যবহার করে, হার্ডওয়্যার কম্পোজার (HWC), SurfaceFlinger এবং অ্যাপের মধ্যে টোন ম্যাপিং সামঞ্জস্যপূর্ণ করা যেতে পারে। OEM, ভেন্ডর এবং ফ্রেমওয়ার্ক কম্পোনেন্টের মধ্যে শেয়ার করার জন্য নিজস্ব টোন ম্যাপিং কার্ভ ইমপ্লিমেন্ট করতে পারে।

  • HDR কন্টেন্টের সাথে একই সাথে দেখানো হলে স্ক্রিনে SDR কন্টেন্ট অন্ধকার হয়ে যায়।

    স্ক্রিনে HDR কন্টেন্ট থাকলে, HDR কন্টেন্টের বর্ধিত লুমিন্যান্স রেঞ্জের সাথে মানানসই করার জন্য স্ক্রিনের উজ্জ্বলতা বাড়ানো হয়। স্ক্রিনে থাকা যেকোনও SDR কন্টেন্ট স্ক্রিনের উজ্জ্বলতা বাড়ার সাথে সাথে অটোমেটিক ডিম হয়ে যায় যাতে SDR কন্টেন্টের পারসেপচুয়াল ব্রাইটনেস পরিবর্তন না হয়। HDR কন্টেন্টের সাথে SDR কন্টেন্ট দেখানো হলে, OEMs বিল্ট-ইন ডিসপ্লে কনফিগার করে তা ডিম করতে পারে।

OEM সংক্রান্ত প্রয়োজনীয়তা

SDR কন্টেন্ট ডিম করার মাধ্যমে HDR ও SDR কন্টেন্টের জন্য উন্নত কম্পোজিশন ব্যবহার করতে, এইসব প্রয়োজনীয়তা পূরণ করতে হবে:

  • HWC-এর AIDL ভার্সন প্রয়োগ করুন, যার মধ্যে ডিভাইসের কালার পাইপলাইনে হার্ডওয়্যার-অ্যাক্সিলারেটেড ডিমিংয়ের জন্য সহায়তা অন্তর্ভুক্ত। প্রয়োজনীয় ক্ষমতা প্রয়োগ করার জন্য HWC-এর জন্য AIDL দেখুন।

  • HWC-তে হার্ডওয়্যার ওভারলে সঠিকভাবে ডিম করার জন্য ওভারলেয়ের লিনিয়ার লাইট স্কেল করতে নির্দিষ্ট হার্ডওয়্যার প্রয়োজন। পর্যাপ্ত হার্ডওয়্যার ছাড়া ইমপ্লিমেন্টেশনের ক্ষেত্রে SurfaceFlinger-এর মাধ্যমে GPU-তে কম্পোজিশন ডিফার করতে হয়, যার ফলে ব্যাটারির চার্জ দ্রুত শেষ হয়ে যায় এবং সম্ভাব্য কম-কোয়ালিটির ডিমিং হয়।

  • ডিভাইসে অন্তত একটি HDR প্রযুক্তি কাজ করতে হবে যা Display.getHdrCapabilities-এর মাধ্যমে রিপোর্ট করা হয়েছে।

কনফিগারেশন

বিল্ট-ইন ডিসপ্লে ডিভাইসের বৈশিষ্ট্য অনুযায়ী মিক্সড SDR ও HDR কন্টেন্ট কম্পোজিশন ফিচার কনফিগার করা যায়, যাতে ব্যাটারি লাইফ, বার্ন-ইন ও কন্টেন্ট ফিডেলিটির মধ্যে ট্রেড-অফ প্রতিষ্ঠা করা যায়।

উন্নত কম্পোজিশন চালু ও টিউন করার কাজটি ডিসপ্লে কনফিগারেশনের মাধ্যমে করা হয়, যার স্কিমা display-device-config.xsd-এ থাকে। ডিসপ্লে কনফিগারেশন সেট করার জন্য নিম্নলিখিত নতুন মূল এলিমেন্টগুলি গুরুত্বপূর্ণ:

  • sdrHdrRatioMap এলিমেন্ট SDR ডিম করা চালু করে এবং স্ক্রিনে HDR কন্টেন্ট থাকলে, SDR হোয়াইট পয়েন্টে HDR দেখানোর জন্য স্ক্রিনের উজ্জ্বলতা ম্যাপ করার জন্য একটি লুক-আপ টেবিল (LUT) নির্ধারণ করে।

    sdrHdrRatioMap সংজ্ঞায়িত করা থাকলে, স্ক্রিনের উজ্জ্বলতা নিয়ন্ত্রণ করার অংশ হিসেবে, DisplayManagerService SurfaceFlinger-এর সাথে কাঙ্ক্ষিত SDR হোয়াইট পয়েন্টের ব্যাপারে যোগাযোগ করে, যাতে SurfaceFlinger প্রতিটি লেয়ারের জন্য উপযুক্ত ডিমিং রেশিও HWC-তে পাঠাতে পারে।

    sdrHdrRatioMap সংজ্ঞায়িত করা না থাকলে, SDR ডিমিং চালু করা হয় না, এমনকি HWC প্রয়োগে SDR ডিমিং কাজ করলেও।

  • minimumHdrPercentOfScreen এলিমেন্ট, যার ভ্যালু ০ থেকে ১০০ পর্যন্ত হতে পারে, সেটি প্যানেলের হাই ব্রাইটনেস মোড কখন চালু করা যাবে তা কন্ট্রোল করে। Android 13-এর মাধ্যমে, এই থ্রেশহোল্ড টিউন করা যায় যাতে আরও বেশি পরিস্থিতিতে হাই ব্রাইটনেস মোড চালু করা যায়, যেমন ছবির-মধ্যে-ছবি সিনারিও। AOSP-এর আগের ভার্সন এই ভ্যালু ৫০% হিসেবে ফিক্স করেছে।

ডিসপ্লে কনফিগারেশনের মূল এলিমেন্টের জন্য নিম্নলিখিত কোড ব্লক দেখুন:

<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>

Caveats

টোন ম্যাপিং ও SDR কন্টেন্ট ডিমিং ফিচার চালু করলে, নিম্নলিখিত পরিস্থিতি হতে পারে:

  • ডিভাইসে চালানো HDR কন্টেন্টের ফিডেলিটি বাড়তে পারে, কারণ SDR কন্টেন্টের এলিমেন্টগুলি আবছা হয়ে যায়।

  • নিম্নলিখিত পরিস্থিতিতে ব্যাটারির আয়ু কমে যেতে পারে:

    • GPU-তে ডিমিং অপারেশন ডিফার করে এমন HWC ইমপ্লিমেন্টেশন GPU ব্যবহার বৃদ্ধি করতে পারে।

    • হাই ব্রাইটনেস মোড চালু করার জন্য কম থ্রেশহোল্ডের অনুমতি দেয় এমন ডিসপ্লে কনফিগারেশন, বেশি ব্রাইটনেসে স্ক্রিন চালানোর জন্য পাওয়ার ড্র বাড়িয়ে দিতে পারে।

  • হাই ব্রাইটনেস মোডে বেশি সময় থাকার কারণে স্ক্রিন হেল্থ প্রভাবিত হতে পারে, এর ফলে ডিসপ্লে হেল্থের সাথে বার্ন-ইন হওয়ার মতো দীর্ঘমেয়াদী সমস্যা হতে পারে।

যাচাইকরণ

HWC-এর টেস্ট স্যুটের অংশ হিসেবে অন্তর্ভুক্ত VTS টেস্ট, OEM-রা ডিম করার সঠিকতা চেক করতে এবং ইনপুট ডিম করার অনুপাত যাচাই করতে ব্যবহার করতে পারে।

এই ফিচারের যাচাইকরণ ডিভাইস নির্ভর, তাই এটি কাজ করে কিনা তা বোঝার জন্য কোনও CTS বা GTS টেস্ট নেই।

ডিম করা SDR এলিমেন্টের ছবির কোয়ালিটি গ্রহণযোগ্য কিনা তা যাচাই করার জন্য OEM-কে ম্যানুয়াল টেস্ট রান করতে হবে। ডিভাইস যে HDR স্ট্যান্ডার্ডে চলে, OEM সেই স্ট্যান্ডার্ডের কন্টেন্ট SurfaceView-এর মাধ্যমে চালাতে পারে। এর ফলে, HDR কন্টেন্টের সাথে চলা কোনও SDR এলিমেন্ট অতিরিক্ত উজ্জ্বল হয়ে যায় না।

ইস্যু

SDR ছবি ডিম করলে ব্ল্যাক ক্রাশ হতে পারে অথবা আসল ছবির অন্ধকারাচ্ছন্ন অঞ্চলে তথ্য হারিয়ে যেতে পারে। ডার্ক কালার ভ্যালুগুলি ছোট ডার্ক কোডের সেটে একত্রিত হওয়ার কারণে এটি হয়।

ডিম করার জন্য এমন কোনও প্রয়োগ যা গ্রহণযোগ্য নয় এমন ব্ল্যাক ক্রাশ তৈরি করে, সেটিকে অবশ্যই ডিদারিং অ্যালগরিদম প্রয়োগ করতে হবে, যা চূড়ান্ত ছবিতে নয়েজ ইনজেক্ট করে যাতে ব্যান্ডিং এফেক্ট কমে যায়।

HWC প্রয়োগ করার ফলে কালার পাইপলাইনের উপযুক্ত লোকেশন থেকে ছবি ডিথার করা না গেলে, SurfaceFlinger-কে GPU-তে ডিম ও ডিথারিং প্রয়োগ করার অনুরোধ করতে হবে।

এছাড়াও, SDR এলিমেন্টের জন্য ডিম করার পরিমাণ সীমিত করতে, ইমপ্লিমেন্টেশন sdrHdrRatioMap-এর ভ্যালু অ্যাডজাস্ট করতে পারে। উজ্জ্বলতা খুব কম লেভেলে ডিম করার জন্য GPU ব্যবহার করতে হয়, এর ফলে ছবির কোয়ালিটি উন্নত হয়, তবে ব্যাটারির আয়ু কমে যেতে পারে।