মিডিয়া কোয়ালিটি ফ্রেমওয়ার্ক, মিডিয়া কোয়ালিটি ফ্রেমওয়ার্ক, মিডিয়া কোয়ালিটি ফ্রেমওয়ার্ক, মিডিয়া কোয়ালিটি ফ্রেমওয়ার্ক

পিকচার কোয়ালিটি (PQ) এবং অডিও কোয়ালিটি (AQ) সমন্বয়ের জন্য একটি প্রমিত এপিআই (API) প্রতিষ্ঠার লক্ষ্যে অ্যান্ড্রয়েড টিভির জন্য অ্যান্ড্রয়েড ১৬-এ মিডিয়া কোয়ালিটি ফ্রেমওয়ার্ক চালু করা হচ্ছে। এর প্রধান উদ্দেশ্য হলো বিভিন্ন অ্যান্ড্রয়েড টিভি ডিভাইসে এই সমন্বয়গুলোর জন্য একটি সমন্বিত পদ্ধতি প্রদান করা। এই প্রমিত ফ্রেমওয়ার্কটি অ্যান্ড্রয়েড এপিআই-এর একটি সামঞ্জস্যপূর্ণ সেট প্রদানের মাধ্যমে অ্যাপ ডেভেলপার, অরিজিনাল ইকুইপমেন্ট ম্যানুফ্যাকচারার (OEM) এবং সিস্টেম-অন-চিপ (SoC) বিক্রেতাদের জন্য ডেভেলপমেন্ট প্রক্রিয়াকে সহজ করার লক্ষ্য রাখে। বিশেষ করে এসওসি (SoC) বিক্রেতাদের জন্য, এটি অ্যান্ড্রয়েড ফ্রেমওয়ার্ককে পিকিউ (PQ) এবং একিউ (AQ) কনফিগারেশন পরিচালনা করার সুযোগ দেয়, যা বিভিন্ন অ্যাপ্লিকেশন ডেভেলপারদের সাথে সহযোগিতার অতিরিক্ত বোঝা কমিয়ে দেয়।

পরিশেষে, গুগল এবং অ্যান্ড্রয়েড প্ল্যাটফর্মের জন্য এটি বিভাজন কমাতে, গুণমান ও প্রসারণযোগ্যতা উন্নত করতে, নতুন বৈশিষ্ট্য প্রদান করতে এবং একটি সমন্বিত AQ/PQ UI ও উন্নত ব্যবহারকারী অভিজ্ঞতার ভিত্তি স্থাপন করতে সাহায্য করে।

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

অ্যান্ড্রয়েড টিম মিডিয়া কোয়ালিটি ফ্রেমওয়ার্ককে সমর্থন করার জন্য আমাদের ইকোসিস্টেম পার্টনারদের সাথে কাজ করছে।

উপাদান

মিডিয়া কোয়ালিটি ফ্রেমওয়ার্কটি বেশ কয়েকটি মূল উপাদান নিয়ে গঠিত, যেগুলো অ্যাপ্লিকেশন, ফ্রেমওয়ার্ক এবং হার্ডওয়্যার স্তর জুড়ে একযোগে কাজ করে।

পিকিউ একিউ প্রমিতকরণ ডায়াগ্রাম

চিত্র ১. মিডিয়া কোয়ালিটি ফ্রেমওয়ার্কের উপাদানগুলোর মধ্যে পারস্পরিক ক্রিয়া

  • মিডিয়া কোয়ালিটি ম্যানেজার (SDK API) : এটি অ্যাপ্লিকেশন-মুখী SDK API, যা অ্যাপগুলোকে ছবি এবং শব্দ প্রোফাইল পরিচালনা করতে সাহায্য করে।
  • মিডিয়া কোয়ালিটি সার্ভিস : একটি সিস্টেম সার্ভিস যা মূল ব্যবসায়িক লজিক ধারণ করে এবং প্রোফাইল, অনুমতি ও HAL-এর সাথে যোগাযোগ পরিচালনা করে।
  • মিডিয়া কোয়ালিটি ডেটাবেস : একটি SQLite ডেটাবেস যা সমস্ত ছবি এবং শব্দ প্রোফাইল সংরক্ষণ করে।
  • মিডিয়া কোয়ালিটি কন্ট্রাক্ট : অ্যাপ এবং ফ্রেমওয়ার্কের মধ্যে যোগাযোগের জন্য ব্যবহৃত প্রমিত প্যারামিটার এবং ডেটা স্ট্রাকচার নির্ধারণ করে।
  • মিডিয়া কোয়ালিটি এইচএএল (HAL) : এটি একটি হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার যা এসওসি (SoC) বিক্রেতারা অন্তর্নিহিত হার্ডওয়্যারকে ছবি এবং শব্দ প্রোফাইলের পরিবর্তনগুলো জানানোর জন্য প্রয়োগ করে।

বৈশিষ্ট্য

মিডিয়া কোয়ালিটি ফ্রেমওয়ার্ক মিডিয়ার মান ব্যবস্থাপনার জন্য একটি নমনীয় ও শক্তিশালী ব্যবস্থা প্রদানে বহুবিধ বৈশিষ্ট্য সমর্থন করে।

প্রোফাইল ব্যবস্থাপনা

  • অ্যাপ-পরিচালিত প্রোফাইল : নিজস্ব অভিজ্ঞতা প্রদানের জন্য অ্যাপগুলো তাদের নিজস্ব প্রোফাইল তৈরি, হালনাগাদ এবং মুছে ফেলতে পারে।
  • ডিফল্ট প্রোফাইল : সিস্টেম অ্যাপগুলো নির্দিষ্ট অ্যাপ বা টিভি ইনপুটের (যেমন, HDMI 1) জন্য ডিফল্ট প্রোফাইল সেট করতে পারে।
  • গ্লোবাল ডিফল্ট প্রোফাইল : একটি সিস্টেম-ব্যাপী ফলব্যাক প্রোফাইল যা কোনো নির্দিষ্ট প্রোফাইল সেট করা না থাকলে প্রয়োগ করা হয়।

সামগ্রিক কর্মপ্রবাহ

নিম্নলিখিত ডায়াগ্রামগুলিতে সাধারণ মিডিয়া কোয়ালিটি অপারেশনগুলির কল সিকোয়েন্সগুলি চিত্রিত করা হয়েছে।

একটি ছবির প্রোফাইল তৈরি করুন এবং প্রয়োগ করুন

ছবি প্রোফাইল তৈরি করুন

চিত্র ২. ছবি প্রোফাইল তৈরির ক্রমিক চিত্র।

  1. একটি সিস্টেম অ্যাপ কোনো মিডিয়া অ্যাপকে প্রোফাইল তৈরি করার অনুমতি দেওয়ার জন্য setPictureProfileAllowList() কল করে।
  2. প্রোফাইল পরিবর্তনের বিজ্ঞপ্তি পাওয়ার জন্য মিডিয়া অ্যাপটি একটি PictureProfileCallback রেজিস্টার করে।
  3. মিডিয়া অ্যাপটি একটি PictureProfile অবজেক্ট সহ createPictureProfile() কল করে।
  4. MediaQualityService অনুরোধটি প্রক্রিয়া করে, প্রোফাইলটি ডেটাবেসে সংরক্ষণ করে এবং নিবন্ধিত কলব্যাকের ( onPictureProfileAdded() বা onError() ) মাধ্যমে অ্যাপকে সাফল্য বা ব্যর্থতার বিষয়ে অবহিত করে।

প্রতি-স্ট্রিম ছবির প্রোফাইল সেট করুন

এই কার্যপ্রবাহটি দেখায় যে, কীভাবে একটি অ্যাপ্লিকেশন প্লেব্যাকের সময় তার ভিডিও কন্টেন্টে একটি নির্দিষ্ট প্রোফাইল প্রয়োগ করতে পারে।

স্ট্রিম পিকচার প্রোফাইল সেট করুন

চিত্র ৩. প্রতি-স্ট্রিম পিকচার প্রোফাইল সেট করার সিকোয়েন্স ডায়াগ্রাম।

  1. উপলব্ধ পিকচার প্রোফাইলগুলির একটি তালিকা পেতে মিডিয়া অ্যাপটি MediaQualityManager কে জিজ্ঞাসা করে।
  2. এরপর অ্যাপটি স্ট্রিমটির জন্য কাঙ্ক্ষিত প্রোফাইল নির্বাচন ও সেট করতে MediaCodec.setParameters ব্যবহার করে।
  3. ফ্রেমওয়ার্কটি প্রোফাইল আইডি এবং এর প্যারামিটারগুলো প্রেরণ করে এই পছন্দটি মিডিয়া কোয়ালিটি (MQ) HAL-এর কাছে জানিয়ে দেয়।
  4. অবশেষে, MQ HAL এই প্যারামিটারগুলো Composer HAL-এর কাছে পাঠায়, যা নির্দিষ্ট পিকচার প্রোফাইল ব্যবহার করে ভিডিও স্ট্রিমটি রেন্ডার করে।

একটি গ্লোবাল ডিফল্ট প্রোফাইল সেট করুন

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

  1. সিস্টেম অ্যাপটি ফ্রেমওয়ার্ক থেকে উপলব্ধ পিকচার প্রোফাইলগুলোর একটি তালিকা সংগ্রহ করে।
  2. এরপর অ্যাপটি setDefaultPictureProfile(id) কল করার মাধ্যমে এই প্রোফাইলগুলোর মধ্যে একটিকে নতুন গ্লোবাল ডিফল্ট হিসেবে নির্বাচন করে।
  3. ফ্রেমওয়ার্কটি সেই প্রোফাইলের প্যারামিটারগুলো মিডিয়া কোয়ালিটি এইচএএল-এর কাছে পাঠায়, যা পরবর্তীতে পরিবর্তনগুলো প্রয়োগ করে।

মিডিয়া কোয়ালিটি এসডিকে এপিআই

মিডিয়া কোয়ালিটি এসডিকে এপিআই অ্যাপগুলোকে ফ্রেমওয়ার্কের সাথে ইন্টারঅ্যাক্ট করার জন্য প্রয়োজনীয় টুলস সরবরাহ করে। এর প্রধান এন্ট্রি পয়েন্ট হলো android.media.quality প্যাকেজ।

android.media.quality

এই প্যাকেজটিতে মিডিয়ার গুণমান ব্যবস্থাপনার জন্য প্রয়োজনীয় প্রধান ক্লাসগুলো রয়েছে।

শ্রেণী বর্ণনা
MediaQualityManager MQF-এর সাথে যোগাযোগের জন্য কেন্দ্রীয় ক্লাস।
PictureProfile একটি ডেটা ক্লাস যা একটি নির্দিষ্ট মোডের জন্য ছবির প্যারামিটারসমূহের একটি সম্পূর্ণ সেটকে উপস্থাপন করে।
SoundProfile শব্দ পরামিতিগুলির জন্য একটি ডেটা ক্লাস।
MediaQualityContract একটি ক্লাস যেখানে সমস্ত পূর্ব-নির্ধারিত প্যারামিটার কী-গুলির জন্য ধ্রুবকসমূহ রয়েছে।

মিডিয়া কোয়ালিটি ম্যানেজার

মূল পদ্ধতিগুলোর মধ্যে রয়েছে:

পদ্ধতি বর্ণনা
createPictureProfile(PictureProfile profile) একটি নতুন ছবি প্রোফাইল তৈরি করে। এর জন্য বিশেষ অনুমতির প্রয়োজন হয় অথবা অ্যাপটিকে অনুমোদিত তালিকায় থাকতে হবে।
updatePictureProfile(PictureProfile profile) বিদ্যমান ছবি প্রোফাইল আপডেট করে। শুধুমাত্র প্রোফাইলটির নির্মাতাই এটি ব্যবহার করতে পারবেন।
removePictureProfile(String profileId) একটি প্রোফাইল মুছে ফেলে। শুধুমাত্র প্রোফাইলটির নির্মাতাই এটি ব্যবহার করতে পারেন।
getAvailablePictureProfiles() উপলব্ধ সকল পিকচার প্রোফাইলের একটি তালিকা ফেরত দেয়।
setDefaultPictureProfile(String profileId) বিশ্বব্যাপী ডিফল্ট পিকচার প্রোফাইল সেট করে। এর জন্য MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE পারমিশন প্রয়োজন।
registerPictureProfileCallback(PictureProfileCallback cb) প্রোফাইল পরিবর্তনের তথ্য শোনার জন্য একটি কলব্যাক নিবন্ধন করে।

পিকচারপ্রোফাইল অবজেক্ট

PictureProfile অবজেক্টটি একটি নির্দিষ্ট পিকচার মোডের সমস্ত তথ্য ধারণ করে।

public final class PictureProfile {
  private String id;
  private int type; // System or Application
  private String name; // e.g., "Movie", "Game"
  private String inputId; // e.g., "HDMI1"
  private String packageName; // e.g., "com.google.android.youtube"
  private PersistableBundle parameters; // Bundle containing all PQ parameters
}

মিডিয়া কোয়ালিটি এইচএএল

মিডিয়া কোয়ালিটি HAL হলো একটি AIDL-ভিত্তিক ইন্টারফেস যা hardware/interfaces/tv/mediaquality/aidl/ সংজ্ঞায়িত। SoC বিক্রেতাদের অবশ্যই তাদের ডিভাইসে মিডিয়া কোয়ালিটি ফ্রেমওয়ার্ক সক্রিয় করার জন্য এই ইন্টারফেসটি ইমপ্লিমেন্ট করতে হবে। HAL অ্যান্ড্রয়েড ফ্রেমওয়ার্কের MediaQualityService এবং অন্তর্নিহিত হার্ডওয়্যারের মধ্যে যোগাযোগের সেতু হিসেবে কাজ করে, যা ছবি এবং শব্দের সামঞ্জস্য প্রয়োগের জন্য দায়ী।

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

মডিউল

HAL ইন্টারফেসটি বেশ কয়েকটি গুরুত্বপূর্ণ AIDL ফাইল দ্বারা গঠিত:

এইচএএল ফাইল বর্ণনা
IMediaQuality.aidl মিডিয়া কোয়ালিটি সার্ভিসের প্রধান ইন্টারফেস, যা লিসেনার সেট করতে এবং হার্ডওয়্যারের সক্ষমতা জানতে ব্যবহৃত হয়।
IPictureProfileChangedListener.aidl একটি লিসেনার ইন্টারফেস যা ফ্রেমওয়ার্কটি পিকচার প্রোফাইলের পরিবর্তন সম্পর্কে HAL-কে (বিশেষত, কম্পোজার HAL-এর মতো কোনো কম্পোনেন্টকে) অবহিত করতে ব্যবহার করে।
IPictureProfileAdjustmentListener.aidl একটি লিসেনার ইন্টারফেস যা HAL ব্যবহার করে হার্ডওয়্যার স্তরে করা পরিবর্তন সম্পর্কে ফ্রেমওয়ার্ককে অবহিত করতে, উদাহরণস্বরূপ, যখন কোনো ব্যবহারকারী সরাসরি হার্ডওয়্যার রিমোটের মাধ্যমে কোনো সেটিং পরিবর্তন করেন।
PictureParameter.aidl একটি AIDL ইউনিয়ন যা কনট্রাস্ট এবং শার্পনেসের মতো ছবির সমস্ত স্ট্যান্ডার্ড প্যারামিটার নির্ধারণ করে, যেগুলো সামঞ্জস্য করা যায়।
PictureProfile.aidl AIDL পার্সেলযোগ্য যা HAL লেয়ারে একটি PictureProfile অবজেক্টকে প্রতিনিধিত্ব করে, এবং এতে একটি প্রোফাইল আইডি ও এর সংশ্লিষ্ট প্যারামিটারগুলো থাকে।
ISoundProfileChangedListener.aidl একটি লিসেনার ইন্টারফেস যা ফ্রেমওয়ার্কটি সাউন্ড প্রোফাইলের পরিবর্তন সম্পর্কে HAL-কে অবহিত করতে ব্যবহার করে।
ISoundProfileAdjustmentListener.aidl একটি লিসেনার ইন্টারফেস যা HAL, হার্ডওয়্যার স্তরে করা শব্দ সমন্বয় সম্পর্কে ফ্রেমওয়ার্ককে অবহিত করতে ব্যবহার করে।