إطار عمل جودة الوسائط

نقدّم إطار عمل "جودة الوسائط" في نظام التشغيل Android 16 لأجهزة Android TV بهدف إنشاء واجهة برمجة تطبيقات موحّدة لتعديل جودة الصورة (PQ) وجودة الصوت (AQ). والهدف الأساسي هو توفير طريقة موحّدة لإجراء هذه التعديلات على جميع أجهزة Android TV المختلفة. يهدف إطار العمل الموحّد هذا إلى تبسيط عملية التطوير لمطوّري التطبيقات والمصنّعين الأصليين للأجهزة ومورّدي المنظومة على الرقاقة (SoC) من خلال توفير مجموعة متسقة من واجهات برمجة التطبيقات لنظام Android. بالنسبة إلى مورّدي المنظومات على الرقاقة (SoC) على وجه التحديد، يتيح ذلك لإطار عمل Android التعامل مع إعدادات جودة الصورة والصوت، ما يقلّل من تكلفة التعاون مع مطوّري التطبيقات المختلفين.

في النهاية، يساعد ذلك Google ونظام Android الأساسي في تقليل التجزئة وتحسين الجودة وقابلية التوسّع وتوفير ميزات جديدة ووضع الأساس لواجهة مستخدم موحّدة لجودة الصوت والفيديو وتحسين تجربة المستخدم.

يتيح إطار عمل "جودة الوسائط" حالات استخدام مختلفة لتحسين تجربة مشاهدة التلفزيون. يُرجى العِلم أنّه يمكن إدارة الملفات الشخصية والإعدادات حسب اسم الحزمة (التطبيق) وحسب معرّف الإدخال. بالإضافة إلى ذلك، يمكن للتطبيقات المدرَجة في القائمة المسموح بها أو تطبيقات النظام إنشاء ملفات شخصية. لا يمكن تعديل الملفات الشخصية أو إزالتها إلا من قِبل مالكها. وعلى وجه التحديد، يدير الإطار ملفات تعريف الصور والصوت. تشمل أمثلة مَعلمات الصورة السطوع والتباين والحدة. تشمل أمثلة مَعلمات الصوت الجهير والحاد. يمكن تطبيق هذه الملفات الشخصية في سياقات مختلفة، بما في ذلك ضبط ملفات شخصية تلقائية عامة، وملفات شخصية لبث المحتوى عبر MediaCodec، وضبط ملفات شخصية تلقائية للتطبيقات في تطبيقات وسائط معيّنة، وضبط ملفات شخصية لصور إدخال التلفزيون لمصادر إدخال معيّنة مثل HDMI. يتيح إطار العمل أيضًا تغييرات الحالة، ما يسمح باستخدام مجموعات مختلفة من المَعلمات للحالات مثل النطاق العالي الديناميكية (HDR)، وإدارة ملفات تعريف الصور النشطة للمعالجة المستمرة، والتعامل مع ميزات الإضاءة الخلفية المحيطة.

يتعاون فريق Android مع شركائنا في المنظومة المتكاملة لتوفير إطار عمل "جودة الوسائط".

المكونات

يتألف إطار عمل جودة الوسائط من عدة مكوّنات رئيسية تعمل معًا على مستوى التطبيق وإطار العمل وطبقات الأجهزة.

مخطّط بياني لتوحيد معايير جودة الصورة والصوت

الشكل 1: التفاعلات بين مكوّنات "إطار عمل جودة الوسائط"

  • أداة إدارة جودة الوسائط (واجهة برمجة التطبيقات لحزمة تطوير البرامج (SDK)): هي واجهة برمجة التطبيقات لحزمة تطوير البرامج (SDK) التي تواجه التطبيق وتسمح للتطبيقات بإدارة ملفات تعريف الصور والصوت.
  • خدمة جودة الوسائط: هي خدمة تابعة لنظام التشغيل تحتوي على المنطق التجاري الأساسي، وتدير الملفات الشخصية والأذونات والتواصل مع طبقة تجريد الأجهزة (HAL).
  • قاعدة بيانات جودة الوسائط: هي قاعدة بيانات SQLite تخزّن جميع ملفات تعريف الصور والصوت.
  • عقد جودة الوسائط: يحدّد المَعلمات الموحّدة وبُنى البيانات المستخدَمة للتواصل بين التطبيقات والإطار.
  • طبقة تجريد الأجهزة الخاصة بجودة الوسائط: هي طبقة تجريد الأجهزة التي ينفّذها مورّدو "النظام على شريحة" (SoC) لإرسال إشعارات بتغييرات ملفات تعريف الصور والصوت إلى الأجهزة الأساسية.

الميزات

يتوافق "إطار عمل جودة الوسائط" مع مجموعة كبيرة من الميزات لتوفير نظام مرن وفعّال لإدارة جودة الوسائط.

إدارة الملف الشخصي

  • الملفات الشخصية التي تديرها التطبيقات: يمكن للتطبيقات إنشاء ملفاتها الشخصية وتعديلها وحذفها لتوفير تجربة مخصّصة.
  • الملفات الشخصية التلقائية: يمكن لتطبيقات النظام ضبط ملفات شخصية تلقائية لتطبيقات أو مصادر إدخال معيّنة على التلفزيون (مثل HDMI 1).
  • الملف الشخصي التلقائي العام: هو ملف احتياطي على مستوى النظام يتم تطبيقه عندما لا يتم ضبط أي ملف شخصي محدّد.

سير العمل العام

توضّح المخططات التالية تسلسلات طلبات إجراءات جودة الوسائط الشائعة.

إنشاء ملف شخصي للصور وتطبيقه

إنشاء ملف شخصي للصور

الشكل 2: مخطط تسلسلي لإنشاء ملف شخصي للصور

  1. يطلب تطبيق نظام setPictureProfileAllowList() منح تطبيق موسيقى إذنًا بإنشاء ملفات شخصية.
  2. يسجّل تطبيق موسيقى PictureProfileCallback لتلقّي إشعارات بشأن التغييرات في الملف الشخصي.
  3. يستدعي تطبيق موسيقى createPictureProfile() باستخدام عنصر PictureProfile.
  4. يعالج MediaQualityService الطلب ويحفظ الملف الشخصي في قاعدة البيانات ويُعلم التطبيق بنجاح العملية أو تعذُّرها من خلال دالة الرجوع المسجّلة (onPictureProfileAdded() أو onError()).

ضبط ملف تعريف صورة لكل بث

يوضّح سير العمل هذا كيف يمكن لتطبيق ما تطبيق ملف شخصي معيّن على محتوى الفيديو أثناء التشغيل.

ضبط ملف تعريف صورة البث

الشكل 3: مخطط تسلسلي لضبط ملف تعريف صورة لكل بث

  1. يطلب تطبيق الوسائط من MediaQualityManager الحصول على قائمة بملفات صور شخصية متاحة.
  2. يستخدم التطبيق بعد ذلك MediaCodec.setParameters لاختيار الملف الشخصي المطلوب وضبطه لبث المحتوى.
  3. يُبلغ إطار العمل Media Quality (MQ) HAL بهذا الخيار، مع تمرير معرّف الملف الشخصي ومَعلماته.
  4. أخيرًا، يرسل MQ HAL هذه المَعلمات إلى Composer HAL، الذي يعرض بث الفيديو باستخدام ملف تعريف الصورة المحدّد.

ضبط ملف شخصي تلقائي عام

يمكن لتطبيقات النظام فقط ضبط الملف الشخصي التلقائي العام، والذي يعمل كخيار احتياطي لأي محتوى لم يتم تعيين ملف شخصي محدّد له.

  1. يسترد تطبيق النظام قائمة بملفات الصور الشخصية المتاحة من إطار العمل.
  2. يختار التطبيق بعد ذلك أحد هذه الملفات ليكون الإعداد التلقائي العام الجديد من خلال استدعاء setDefaultPictureProfile(id).
  3. يرسل إطار العمل مَعلمات الملف الشخصي إلى Media Quality HAL، الذي يطبّق التغييرات بعد ذلك.

Media Quality SDK API

توفّر واجهة برمجة التطبيقات الخاصة بحزمة تطوير البرامج (SDK) لجودة الوسائط الأدوات اللازمة للتطبيقات للتفاعل مع إطار العمل. نقطة الدخول الرئيسية هي حزمة android.media.quality.

android.media.quality

تحتوي هذه الحزمة على الفئات الأساسية لإدارة جودة الوسائط.

الفئة الوصف
MediaQualityManager الفئة المركزية للتفاعل مع MQF.
PictureProfile فئة بيانات تمثّل مجموعة كاملة من مَعلمات الصور لوضع معيّن.
SoundProfile فئة بيانات لمَعلمات الصوت
MediaQualityContract فئة تحتوي على ثوابت لجميع مفاتيح المَعلمات المحدّدة مسبقًا.

MediaQualityManager

تشمل الطرق الرئيسية ما يلي:

الطريقة الوصف
createPictureProfile(PictureProfile profile) لإنشاء ملف شخصي جديد باستخدام صورة يتطلّب أذونات خاصّة أو أن يكون التطبيق في قائمة التطبيقات المسموح بها.
updatePictureProfile(PictureProfile profile) تعديل ملف صور حالي يمكن للمستخدم الذي أنشأ الملف الشخصي فقط الاتصال به.
removePictureProfile(String profileId) لحذف ملف شخصي يمكن للمستخدم الذي أنشأ الملف الشخصي فقط الاتصال به.
getAvailablePictureProfiles() تعرض هذه الطريقة قائمة بجميع ملفات تعريف الصور المتاحة.
setDefaultPictureProfile(String profileId) تضبط هذه السمة ملف الصورة التلقائي العام. يتطلّب الحصول على إذن MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE.
registerPictureProfileCallback(PictureProfileCallback cb) تسجيل عملية ردّ اتصال لرصد التغييرات في الملف الشخصي

عنصر PictureProfile

يغلّف العنصر 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) الخاصة بجودة الوسائط

واجهة Media Quality HAL هي واجهة مستندة إلى AIDL ومحدّدة في hardware/interfaces/tv/mediaquality/aidl/. على مورّدي منظومة على رقاقة (SoC) تنفيذ هذه الواجهة لتفعيل "إطار عمل جودة الوسائط" على أجهزتهم. تعمل طبقة HAL كجسر للتواصل بين MediaQualityService في إطار عمل Android والأجهزة الأساسية، وهي مسؤولة عن تطبيق تعديلات على الصور والأصوات.

يدير HAL ملفات تعريف الصور والصوت باستخدام حِزم AIDL. ويشمل ذلك تلقّي تغييرات الملف الشخصي من إطار العمل وإرسال إشعار إلى إطار العمل بشأن أي تعديلات يتم إجراؤها على مستوى الجهاز.

الوحدات

تتألف واجهة HAL من عدة ملفات AIDL رئيسية:

ملف HAL الوصف
IMediaQuality.aidl الواجهة الرئيسية لخدمة "جودة الوسائط"، وتُستخدَم لضبط المستمعين والتعرّف على إمكانات الأجهزة.
IPictureProfileChangedListener.aidl واجهة متتبِّع يستخدمها إطار العمل لإبلاغ طبقة تجريد الأجهزة (HAL) (تحديدًا أحد المكوّنات، مثل مكوّن العرض HAL) بالتغييرات التي تطرأ على ملف صورة.
IPictureProfileAdjustmentListener.aidl واجهة مستمع تستخدمها طبقة تجريد الأجهزة (HAL) لإبلاغ إطار العمل بالتعديلات التي تم إجراؤها على مستوى الأجهزة، مثلاً عندما يغيّر المستخدم أحد الإعدادات مباشرةً من خلال جهاز تحكّم عن بُعد.
PictureParameter.aidl اتحاد AIDL يحدّد جميع معلَمات الصورة العادية، مثل التباين والحدة، التي يمكن تعديلها.
PictureProfile.aidl حزمة AIDL قابلة للتسلسل تمثّل كائن PictureProfile في طبقة HAL، وتحتوي على معرّف ملف شخصي والمَعلمات المرتبطة به.
ISoundProfileChangedListener.aidl واجهة متتبِّع يستخدمها إطار العمل لإعلام طبقة تجريد الأجهزة (HAL) بالتغييرات التي تطرأ على ملف صوتي.
ISoundProfileAdjustmentListener.aidl واجهة متتبِّع تستخدمها طبقة تجريد الأجهزة (HAL) لإبلاغ إطار العمل بالتعديلات التي تم إجراؤها على الصوت على مستوى الأجهزة.