অ্যান্ড্রয়েড স্ক্রিনশটগুলিতে HDR

হাই ডাইনামিক রেঞ্জ (HDR) ভিডিও প্রবর্তনের পর থেকে, স্ট্রিমিং পরিষেবাগুলি HDR ভিডিও স্ট্রিমিং শুরু করেছে, ফুল-স্ক্রিন অভিজ্ঞতার উপর ফোকাস করে৷ সম্প্রতি, সোশ্যাল মিডিয়া অ্যাপগুলি HDR ভিডিও এবং আল্ট্রা HDR-এর জন্য সমর্থন চালু করেছে, যা বিভিন্ন অ্যাপ জুড়ে HDR গ্রহণে ক্রমবর্ধমান আগ্রহের ইঙ্গিত দেয়।

HDR-এর জন্য অ্যান্ড্রয়েড সমর্থন

কয়েক বছর ধরে HDR প্রযুক্তির জন্য Android-এর সমর্থনের মাইলফলকগুলি নিম্নরূপ:

অ্যান্ড্রয়েড 7

  • HDR ভিডিও ডিকোডিং এবং প্রদর্শনের জন্য প্রাথমিক সমর্থন।
  • HDR ক্ষমতার ক্রমাগত অগ্রগতি।

অ্যান্ড্রয়েড 13

  • HDR ভিডিও ক্যাপচার, এনকোডিং এবং প্রদর্শনের জন্য এন্ড-টু-এন্ড সমর্থন।
  • মিশ্র এসডিআর এবং এইচডিআর কম্পোজিশনের পরিচিতি, এসডিআর এবং এইচডিআর-এর মধ্যে বিভিন্ন প্রদর্শনযোগ্য লুমিনেন্স রেঞ্জ সংজ্ঞায়িত করে।

অ্যান্ড্রয়েড 14

এইচডিআর-এর সাথে স্ক্রিনশট সমর্থনও বিবর্তিত হয়েছে এবং বছরের পর বছর ধরে বেশ কয়েকটি পরিবর্তন হয়েছে।

HDR স্ক্রিনশট ক্ষমতার অগ্রগতি

এই বিভাগটি সাম্প্রতিক Android আপডেটগুলিতে HDR স্ক্রিনশট ক্ষমতার অগ্রগতি ট্র্যাক করে৷

অ্যান্ড্রয়েড 9

সারফেসফ্লিংগার, অ্যান্ড্রয়েডের গ্রাফিক্স কম্পোজিটর, HDR ভিডিও সমর্থন প্রবর্তন করে। HDR ভিডিও এবং স্ক্রিনশটগুলির GPU রেন্ডারিং একটি জটিল বহুপদী টোন ম্যাপারের সাথে সমর্থিত। এই টোন-ম্যাপিং বক্ররেখা সর্বদা ডিসপ্লে টোন-ম্যাপারের সমতুল্য নয়, তাই স্ক্রিনশটগুলি অন-স্ক্রীন সামগ্রী থেকে আলাদা।

অ্যান্ড্রয়েড 13

একটি টোন ম্যাপিং প্লাগইন SurfaceFlinger-এর GPU রেন্ডারিং ব্লকে যোগ করা হয়েছে, যা OEM কে তাদের ডিসপ্লের টোন-ম্যাপিং বক্ররেখার সাথে মেলে একটি GPU শেডার প্রদান করতে সক্ষম করে। স্ক্রিনশটগুলি প্রায় স্ক্রীনে যা আছে তার সাথে মিলে যায়, তবে নিম্নলিখিত পার্থক্যগুলির সাথে:

  • স্ক্রিনশটগুলি SDR ফর্ম্যাটে থাকে৷ ফলস্বরূপ, যখন একটি HDR দৃশ্যের সাথে দেখা হয়, তখন স্ক্রিনশটের মধ্যে থাকা HDR অঞ্চলগুলি ম্লান দেখায়।
  • SDR লুমিন্যান্স ম্যানেজ করা হয় না, ফলে স্ক্রিনশটের মধ্যে SDR কন্টেন্ট HDR কন্টেন্টের মতো উজ্জ্বল দেখায়।

অন্য কথায়, স্ক্রিনশটে ক্যাপচার করা যেকোনো HDR ভিডিও SDR ভিডিওতে রূপান্তরিত হয়।

অ্যান্ড্রয়েড 14

আল্ট্রা এইচডিআর স্ক্রিনশটিংয়ের জন্য একটি উল্লেখযোগ্য চ্যালেঞ্জ। ভিডিওগুলির বিপরীতে, চিত্রগুলি সাধারণত UI ফ্রেমবাফারের মধ্যে রেন্ডার করা হয়, যার দুটি প্রধান প্রভাব রয়েছে:

  • চিত্রগুলিতে টোনম্যাপিং সহ চিত্র প্রক্রিয়াকরণ থাকতে পারে না, যা আশেপাশের UI থেকে আলাদা৷
  • অ্যাপগুলি তাদের UI রেন্ডার করার সময় উত্স-ভিত্তিক টোন ম্যাপিংয়ের জন্য দায়ী৷

এই চ্যালেঞ্জ উপশম করতে, তিনটি সম্ভাব্য স্ক্রিনশট বাস্তবায়ন রয়েছে:

  • একটি আল্ট্রা এইচডিআর ইমেজের HDR বিশদ সংরক্ষণ করুন, যার ফলে স্ক্রিনশটে একটি অন্ধকার অ্যাপ UI দেখাবে।
  • আল্ট্রা এইচডিআর ইমেজ ক্লিপিংয়ের কারণে অ্যাপের UI বিবরণ সংরক্ষণ করুন।
  • HDR হাইলাইট ক্লিপ করার সময় অ্যাপ UI উজ্জ্বল করে আপস করুন।

Android 14 অ্যাপ UI উজ্জ্বল করার এবং HDR হাইলাইটগুলি ক্লিপ করার তৃতীয় পদ্ধতি প্রয়োগ করে।

Android 15-QPR1

SurfaceFlinger স্ক্রিনশটগুলির জন্য একটি স্থানীয় টোন-ম্যাপিং অ্যালগরিদম অন্তর্ভুক্ত করে। এই প্রক্রিয়া জড়িত:

  • ইনপুট ইমেজকে ছোট ইমেজে ভাগ করা।
  • প্রতিটি ছবিতে সর্বাধিক আলোকসজ্জা গণনা করা, এবং প্রতিটি বিভাগের মধ্যে কম আলোক মান বাতিল করা।
  • ব্লারিং এবং রিস্যাম্পলিং এর মাধ্যমে গণনাকৃত আলোকগুলিকে ইন্টারপোলেট করা।
  • ইন্টারপোলেটেড লুমিন্যান্স মানের উপর ভিত্তি করে ইনপুট ইমেজে একটি প্যারামিটারাইজড রেইনহার্ড টোনম্যাপার প্রয়োগ করা হচ্ছে।

এই অ্যালগরিদমটি Android 14 এবং Android 15-QPR1 এর মধ্যে উল্লেখযোগ্য স্ক্রিনশট উন্নতি দেখায়, যেমনটি নিম্নলিখিত উদাহরণগুলিতে দেখানো হয়েছে:

  • উদাহরণ 1 হল আল্ট্রা এইচডিআর সমন্বিত একটি Chrome পৃষ্ঠার উপরে ওভারলেড করা একটি HDR ভিডিওর একটি স্ক্রিনশট৷ UI রঙগুলি বেশিরভাগই নতুন বাস্তবায়নে সংরক্ষিত থাকে এবং ছবিটি আর ক্লিপ করা হয় না।

    অ্যান্ড্রয়েড 14 Android 15-QPR1
    Android 14-এ উদাহরণ 1Android 15qpr-এ উদাহরণ 1

    চিত্র 1. উদাহরণ 1 এর জন্য Android 14 এবং Android 15-QPR1 এর তুলনা।

  • উদাহরণ 2 হল একটি HDR ভিডিওর একটি স্ক্রিনশট যা পরবর্তী স্ক্রিনশট সহ সেটিংসের উপরে ওভারলেড করা হয়েছে৷ অ্যান্ড্রয়েড 14-এ, স্ক্রিনশটের রঙগুলি ধারাবাহিকভাবে গাঢ় হয়। Android 15-QPR1-এ, টোনম্যাপার সঠিকভাবে UI রঙের প্রতিলিপি করে এবং সংরক্ষণ করে।

    অ্যান্ড্রয়েড 14 Android 15-QPR1
    Android 14-এ উদাহরণ 2Android 15qpr-এ উদাহরণ 2

    চিত্র 2. উদাহরণ 2-এর জন্য Android 14 এবং Android 15-QPR1-এর তুলনা।

অ্যান্ড্রয়েড 16

আল্ট্রা এইচডিআর- এর মতো, এইচডিআর স্ক্রিনশট রেন্ডারিংয়ের সময় HDR উপস্থাপনা পুনরুদ্ধার করতে স্ক্রিনশট ফাইলে একটি গেইনম্যাপ সংরক্ষণ করে। যাইহোক, আল্ট্রা এইচডিআর থেকে ভিন্ন, স্ক্রিনশটটি পিএনজি স্ক্রিনশট গ্রহণকারী সিস্টেমগুলির সাথে পিছিয়ে থাকা সামঞ্জস্যের জন্য একটি PNG ফর্ম্যাটে থাকে।

স্ক্রিনশট প্রজন্মের বিবরণ নিম্নরূপ:

  • ডিভাইসে HDR বিষয়বস্তু প্রদর্শিত হলে, FP16 পিক্সেল ব্যবহার করে একটি স্ক্রিনশট তৈরি করা হয়।
  • Android 15-QPR1- এ বর্ণিত স্থানীয় টোন-ম্যাপার একটি 8-বিট বেস SDR রেন্ডিশন তৈরি করে।
  • একটি 8-বিট গেইনম্যাপ তৈরি করা হয় HDR রেন্ডিশনের সাথে SDR বেস রেন্ডিশনকে একত্রিত করে।
  • SDR বেস রেন্ডিশন এবং গেইনম্যাপ একটি একক PNG ফাইলে এনকোড করা হয়েছে।

PNG এনকোডিং বিবরণ নিম্নরূপ:

  • গেইনম্যাপটি একটি PNG ইমেজ হিসাবে এনকোড করা হয়েছে, যার মধ্যে একটি gmAP খণ্ড রয়েছে, এতে গেইনম্যাপের জন্য ISO 21496-1 মেটাডেটা রয়েছে।
  • এসডিআর বেস রেন্ডিশনটি একটি পিএনজি ইমেজ হিসাবে এনকোড করা হয়েছে, যার মধ্যে একটি জিএমএপি অংশ রয়েছে, যার মধ্যে ISO 21496-1 মেটাডেটা রয়েছে। এই পিএনজি ইমেজে একটি জিডিএটি খণ্ডও রয়েছে, যেখানে সম্পূর্ণ এনকোডেড গেইনম্যাপ পিএনজি রয়েছে।

নিম্নলিখিত চিত্রটি PNG খণ্ডগুলির বিন্যাস দেখায়:

Layout of the PNG chunks

চিত্র 3. PNG খণ্ডগুলির বিন্যাস।

Android 16-এর সাথে, PNG কোডেক এই PNG গুলির এনকোডিং এবং ডিকোডিং উভয়ই সমর্থন করে। অ্যাপ্লিকেশানগুলি আল্ট্রা এইচডিআরের মতো একই পদ্ধতিতে একটি গেইনম্যাপ সহ একটি PNG প্রদর্শন করতে পারে৷