Система качества мультимедиа, Система качества медиа, Система качества медиа, Система качества медиа

The Media Quality framework is being introduced in Android 16 for Android TV with the objective of establishing a standardized API for Picture Quality (PQ) and Audio Quality (AQ) adjustments. The primary goal is to provide a unified approach to these adjustments across different Android TV devices. This standardized framework aims to simplify development for app developers, original equipment manufacturers (OEMs), and system-on-chip (SoC) vendors by offering a consistent set of Android APIs. For SoC vendors specifically, it allows the Android framework to handle PQ and AQ configuration, reducing the overhead of collaborating with different application developers.

В конечном итоге, для Google и платформы Android это помогает уменьшить фрагментацию, улучшить качество и масштабируемость, предоставить новые функции и заложить основу для единого пользовательского интерфейса AQ/PQ и улучшить пользовательский опыт.

Система управления качеством мультимедиа поддерживает различные сценарии использования для улучшения качества просмотра телепередач. Профили и настройки можно управлять по имени пакета (приложения) или по идентификатору входа. Кроме того, профили могут создаваться системными приложениями или приложениями из списка разрешенных, и их обновление или удаление может осуществляться только их владельцем.

В частности, эта система управляет профилями изображения и звука. Примерами параметров изображения являются яркость, контрастность и резкость, а примерами параметров звука — низкие и высокие частоты.

These profiles can be applied in various contexts, including setting global default profiles, streaming profiles using MediaCodec , setting app default profiles for specific media apps, and setting TV input picture profiles for specific inputs like HDMI. The framework also supports status changes (allowing different parameter sets for states like HDR), manages active picture profiles for ongoing processing, and handles ambient backlight features.

Команда Android сотрудничает с нашими партнерами по экосистеме для поддержки фреймворка Media Quality.

Компоненты

Структура обеспечения качества мультимедиа состоит из нескольких ключевых компонентов, которые взаимодействуют на уровне приложения, структуры и оборудования.

Диаграмма стандартизации PQ AQ
Рисунок 1. Взаимодействие компонентов системы оценки качества медиаконтента.
  • Менеджер качества мультимедиа (SDK API) : API SDK, доступный для приложений, позволяющий управлять профилями изображения и звука.
  • Служба качества мультимедиа : системная служба, содержащая основную бизнес-логику, управляющая профилями, разрешениями и взаимодействием с HAL.
  • База данных качества мультимедиа : база данных SQLite, в которой хранятся все профили изображения и звука.
  • Контракт на качество медиаконтента : определяет стандартизированные параметры и структуры данных, используемые для обмена данными между приложениями и фреймворком.
  • Media Quality HAL : уровень аппаратной абстракции, который производители 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, который затем применяет изменения.

API 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 содержит всю информацию, необходимую для заданного режима изображения.

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

The Media Quality HAL is an AIDL-based interface defined in hardware/interfaces/tv/mediaquality/aidl/ . SoC vendors must implement this interface to enable the Media Quality Framework on their devices. The HAL serves as the communication bridge between the MediaQualityService in the Android framework and the underlying hardware, responsible for applying picture and sound adjustments.

HAL управляет профилями изображения и звука с помощью пакетов AIDL. Это включает в себя получение изменений профиля от платформы и уведомление платформы о любых корректировках, внесенных на аппаратном уровне.

Модули

Интерфейс HAL состоит из нескольких ключевых файлов AIDL:

Файл HAL Описание
IMediaQuality.aidl Основной интерфейс сервиса «Качество мультимедиа», используемый для настройки слушателей и определения возможностей оборудования.
IPictureProfileChangedListener.aidl Интерфейс слушателя, который используется фреймворком для уведомления HAL (в частности, такого компонента, как HAL композитора) об изменениях в профиле изображения.
IPictureProfileAdjustmentListener.aidl Интерфейс прослушивания, который HAL использует для уведомления платформы о корректировках, внесенных на аппаратном уровне, например, когда пользователь изменяет настройку непосредственно с помощью аппаратного пульта дистанционного управления.
PictureParameter.aidl Объединение AIDL, определяющее все стандартные параметры изображения, такие как контрастность и резкость, которые можно регулировать.
PictureProfile.aidl Объект AIDL parcelable, представляющий собой объект PictureProfile на уровне HAL, содержащий идентификатор профиля и связанные с ним параметры.
ISoundProfileChangedListener.aidl Интерфейс слушателя, который используется фреймворком для уведомления HAL об изменениях звукового профиля.
ISoundProfileAdjustmentListener.aidl Интерфейс слушателя, который HAL использует для уведомления системы о корректировках звука, внесенных на аппаратном уровне.