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

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

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

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

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

উপাদান

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

PQ AQ স্ট্যান্ডার্ডাইজেশন ডায়াগ্রাম

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

  • মিডিয়া কোয়ালিটি ম্যানেজার (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 এই প্যারামিটারগুলি কম্পোজার HAL-এর কাছে পাঠায়, যা নির্দিষ্ট ছবির প্রোফাইল সহ ভিডিও স্ট্রিম রেন্ডার করে।

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

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

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

মিডিয়া কোয়ালিটি SDK API

মিডিয়া কোয়ালিটি SDK API অ্যাপগুলিকে ফ্রেমওয়ার্কের সাথে ইন্টারঅ্যাক্ট করার জন্য প্রয়োজনীয় সরঞ্জাম সরবরাহ করে। মূল প্রবেশ বিন্দু হল android.media.quality প্যাকেজ।

android.media.quality সম্পর্কে

এই প্যাকেজে মিডিয়ার মান পরিচালনার জন্য প্রাথমিক ক্লাস রয়েছে।

শ্রেণী বিবরণ
MediaQualityManager এমকিউএফ-এর সাথে যোগাযোগের জন্য কেন্দ্রীয় শ্রেণী।
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
}

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

মিডিয়া কোয়ালিটি এইচএএল হল একটি AIDL-ভিত্তিক ইন্টারফেস যা hardware/interfaces/tv/mediaquality/aidl/ তে সংজ্ঞায়িত করা হয়েছে। SoC বিক্রেতাদের তাদের ডিভাইসে মিডিয়া কোয়ালিটি ফ্রেমওয়ার্ক সক্ষম করার জন্য এই ইন্টারফেসটি বাস্তবায়ন করতে হবে। এইচএএল অ্যান্ড্রয়েড ফ্রেমওয়ার্কে 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 হার্ডওয়্যার স্তরে করা শব্দ সমন্বয়ের কাঠামোকে অবহিত করতে ব্যবহার করে।