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

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

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

অ্যান্ড্রয়েড বেশ কয়েকটি মাইলফলকের মাধ্যমে HDR প্রযুক্তিকে সমর্থন করেছে:

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

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

অ্যান্ড্রয়েড ১৩

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

অ্যান্ড্রয়েড ১৪

HDR স্ক্রিনশট সাপোর্টও বিকশিত ও পরিবর্তিত হয়েছে।

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

এই অংশে অ্যান্ড্রয়েড আপডেটে HDR স্ক্রিনশট সক্ষমতার অগ্রগতি বর্ণনা করা হয়েছে।

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

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

অ্যান্ড্রয়েড ১৩

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

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

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

অ্যান্ড্রয়েড ১৪

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

  • ছবিতে এমন কোনো ইমেজ প্রসেসিং, টোনম্যাপিং সহ, করা যাবে না যা তার চারপাশের UI থেকে ভিন্ন।
  • অ্যাপগুলো তাদের UI রেন্ডার করার সময় উৎস-ভিত্তিক টোন ম্যাপিংয়ের জন্য দায়ী।

এই প্রতিবন্ধকতা নিরসনের জন্য, স্ক্রিনশট নেওয়ার তিনটি সম্ভাব্য বাস্তবায়ন বিবেচনা করুন:

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

অ্যান্ড্রয়েড ১৪ অ্যাপের ইউআই উজ্জ্বল করা এবং এইচডিআর হাইলাইট ছেঁটে ফেলার তৃতীয় পদ্ধতিটি প্রয়োগ করে।

অ্যান্ড্রয়েড 15-QPR1

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

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

এই অ্যালগরিদমটি অ্যান্ড্রয়েড ১৪ এবং অ্যান্ড্রয়েড ১৫-কিউপিআর১ এর মধ্যে স্ক্রিনশটের মান উল্লেখযোগ্যভাবে উন্নত করে, যা নিম্নলিখিত উদাহরণগুলো থেকে স্পষ্ট হয়:

  • উদাহরণ ১ হলো আল্ট্রা এইচডিআর যুক্ত একটি ক্রোম পেজের উপরে বসানো একটি এইচডিআর ভিডিওর স্ক্রিনশট। নতুন এই বাস্তবায়নে ইউআই-এর রঙগুলো বেশিরভাগই অক্ষুণ্ণ থাকে এবং ছবিটি আর খণ্ডিত হয় না।

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

    চিত্র ১। উদাহরণ ১-এর জন্য অ্যান্ড্রয়েড ১৪ এবং অ্যান্ড্রয়েড ১৫-কিউপিআর১-এর তুলনা।

  • উদাহরণ ২ হলো একটি HDR ভিডিওর স্ক্রিনশট, যা সেটিংস এবং তার পরবর্তী স্ক্রিনশটগুলোর উপরে বসানো হয়েছে। অ্যান্ড্রয়েড ১৪-এ, স্ক্রিনশটের রঙগুলো ক্রমান্বয়ে গাঢ়তর হয়। অ্যান্ড্রয়েড ১৫-কিউপিআর১-এ, টোনম্যাপারটি UI-এর রঙগুলোকে সঠিকভাবে প্রতিলিপি করে এবং সংরক্ষণ করে।

    অ্যান্ড্রয়েড ১৪ অ্যান্ড্রয়েড 15-QPR1
    অ্যান্ড্রয়েড ১৪-এর উদাহরণ ২Android 15qpr-এর উদাহরণ ২

    চিত্র ২. উদাহরণ ২-এর জন্য অ্যান্ড্রয়েড ১৪ এবং অ্যান্ড্রয়েড ১৫-কিউপিআর১-এর তুলনা।

অ্যান্ড্রয়েড ১৬

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

স্ক্রিনশট তৈরি করার জন্য নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত:

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

পিএনজি এনকোডিং-এর সাথে নিম্নলিখিত বিষয়গুলো জড়িত:

  • গেইনম্যাপটি একটি PNG ইমেজ হিসেবে এনকোড করা হয়, যার মধ্যে একটি gmAP চাঙ্ক অন্তর্ভুক্ত থাকে, যেখানে গেইনম্যাপটির জন্য ISO 21496-1 মেটাডেটা থাকে।
  • SDR বেস রেন্ডিশনটি একটি PNG ইমেজ হিসেবে এনকোড করা হয়, যার মধ্যে একটি gmAP চাঙ্ক থাকে, যেখানে ISO 21496-1 মেটাডেটার সংস্করণটি সংরক্ষিত থাকে। এই PNG ইমেজটিতে একটি gdAT চাঙ্কও অন্তর্ভুক্ত থাকে, যেখানে এনকোড করা গেইনম্যাপ PNG-টির সম্পূর্ণ অংশ থাকে।

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

Layout of the PNG chunks

চিত্র ৩. পিএনজি খণ্ডগুলোর বিন্যাস।

অ্যান্ড্রয়েড ১৬-এর সাথে, পিএনজি কোডেক এই পিএনজি ফাইলগুলোর এনকোডিং এবং ডিকোডিং উভয়ই সমর্থন করে। অ্যাপগুলো আল্ট্রা এইচডিআর- এর মতোই গেইনম্যাপসহ একটি পিএনজি প্রদর্শন করতে পারে।