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

نقدّم إطار عمل "جودة الوسائط" في نظام التشغيل 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. يُرسِل إطار العمل هذا الخيار إلى طبقة تجريد الأجهزة (HAL) الخاصة بجودة الوسائط (MQ)، مع تمرير معرّف الملف الشخصي ومَعلماته.
  4. أخيرًا، يرسل MQ HAL هذه المَعلمات إلى Composer HAL، الذي يعرض بث الفيديو باستخدام ملف تعريف الصورة المحدّد.

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

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

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

Media Quality SDK API

توفّر واجهة برمجة التطبيقات الخاصة بحزمة Media Quality 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 لإبلاغ إطار العمل بالتعديلات التي تم إجراؤها على الصوت على مستوى الجهاز.