Kerangka Kualitas Media

Framework Kualitas Media diperkenalkan di Android 16 untuk Android TV dengan tujuan membuat API standar untuk penyesuaian Kualitas Gambar (PQ) dan Kualitas Audio (AQ). Tujuan utamanya adalah menyediakan pendekatan terpadu untuk penyesuaian ini di berbagai perangkat Android TV. Framework standar ini bertujuan untuk menyederhanakan pengembangan bagi developer aplikasi, produsen peralatan asli (OEM), dan vendor system-on-chip (SoC) dengan menawarkan kumpulan Android API yang konsisten. Khusus untuk vendor SoC, framework ini memungkinkan framework Android menangani konfigurasi PQ dan AQ, sehingga mengurangi overhead kolaborasi dengan berbagai developer aplikasi.

Pada akhirnya, untuk platform Google dan Android, framework ini membantu mengurangi fragmentasi, meningkatkan kualitas dan skalabilitas, menyediakan fitur baru, serta meletakkan dasar untuk UI AQ/PQ Terpadu dan pengalaman pengguna yang lebih baik.

Framework Kualitas Media mendukung berbagai kasus penggunaan untuk meningkatkan pengalaman menonton TV. Perlu diperhatikan bahwa profil dan setelan dapat dikelola per nama paket (aplikasi), dan per ID input. Selain itu, profil dapat dibuat oleh aplikasi sistem, atau oleh aplikasi lain yang ada dalam daftar yang diizinkan. Profil hanya dapat diperbarui atau dihapus oleh pemilik profil. Secara khusus, framework ini mengelola Profil Gambar dan Suara. Contoh parameter gambar mencakup kecerahan, kontras, ketajaman. Contoh parameter suara mencakup bass dan treble. Profil ini dapat diterapkan dalam berbagai konteks, termasuk menetapkan profil default global, streaming profil melalui MediaCodec, menetapkan profil default aplikasi untuk aplikasi media tertentu, dan menetapkan profil gambar input TV untuk input tertentu seperti HDMI. Framework ini juga mendukung perubahan status, yang memungkinkan kumpulan parameter yang berbeda untuk status seperti HDR, mengelola profil gambar aktif untuk pemrosesan yang sedang berlangsung, dan menangani fitur lampu latar sekitar.

Tim Android bekerja sama dengan partner ekosistem kami untuk mendukung framework Kualitas Media.

Komponen

Framework Kualitas Media terdiri dari beberapa komponen utama yang bekerja sama di seluruh lapisan aplikasi, framework, dan hardware.

Diagram Standardisasi PQ AQ

Gambar 1. Interaksi antara komponen Framework Kualitas Media

  • Pengelola Kualitas Media (SDK API): SDK API yang menghadap aplikasi yang memungkinkan aplikasi mengelola profil gambar dan suara.
  • Layanan Kualitas Media: Layanan sistem yang berisi logika bisnis inti, mengelola profil, izin, dan komunikasi dengan HAL.
  • Database Kualitas Media: Database SQLite yang menyimpan semua profil gambar dan suara.
  • Kontrak Kualitas Media: Menentukan parameter dan struktur data standar yang digunakan untuk komunikasi antara aplikasi dan framework.
  • HAL Kualitas Media: Hardware Abstraction Layer yang diimplementasikan vendor SoC untuk mengomunikasikan perubahan profil gambar dan suara ke hardware yang mendasarinya.

Fitur

Framework Kualitas Media mendukung berbagai fitur untuk menyediakan sistem yang fleksibel dan canggih untuk mengelola kualitas media.

Pengelolaan Profil

  • Profil yang dikelola aplikasi: Aplikasi dapat membuat, memperbarui, dan menghapus profilnya sendiri untuk pengalaman yang disesuaikan.
  • Profil default: Aplikasi sistem dapat menetapkan profil default untuk aplikasi atau input TV tertentu (misalnya, HDMI 1).
  • Profil default global: Profil penggantian seluruh sistem yang diterapkan saat tidak ada profil tertentu yang ditetapkan.

Alur Kerja Keseluruhan

Diagram berikut mengilustrasikan urutan panggilan untuk operasi kualitas media umum.

Membuat dan Menerapkan Profil Gambar

Buat Profil Gambar

Gambar 2. Diagram urutan untuk membuat profil gambar

  1. Aplikasi sistem memanggil setPictureProfileAllowList() untuk memberikan izin aplikasi media untuk membuat profil.
  2. Aplikasi media mendaftarkan PictureProfileCallback untuk menerima notifikasi tentang perubahan profil.
  3. Aplikasi media memanggil createPictureProfile() dengan objek PictureProfile.
  4. MediaQualityService memproses permintaan, menyimpan profil ke database, dan memberi tahu aplikasi tentang keberhasilan atau kegagalan melalui callback terdaftar (onPictureProfileAdded() atau onError()).

Menetapkan Profil Gambar Per-Streaming

Alur kerja ini menunjukkan cara aplikasi dapat menerapkan profil tertentu ke konten videonya selama pemutaran.

Menetapkan Profil Gambar Streaming

Gambar 3. Diagram urutan untuk menetapkan profil gambar per-streaming

  1. Aplikasi media membuat kueri MediaQualityManager untuk mendapatkan daftar profil gambar yang tersedia.
  2. Aplikasi kemudian menggunakan MediaCodec.setParameters untuk memilih dan menetapkan profil yang diinginkan untuk streaming.
  3. Framework mengomunikasikan pilihan ini ke HAL Kualitas Media (MQ), dengan meneruskan ID profil dan parameternya.
  4. Terakhir, HAL MQ mengirimkan parameter ini ke HAL Composer, yang merender streaming video dengan profil gambar yang ditentukan.

Menetapkan Profil Default Global

Hanya aplikasi sistem yang dapat menetapkan profil default global, yang berfungsi sebagai penggantian untuk konten apa pun yang tidak memiliki profil tertentu yang ditetapkan.

  1. Aplikasi sistem mengambil daftar profil gambar yang tersedia dari framework.
  2. Aplikasi kemudian memilih salah satu profil ini untuk menjadi default global baru dengan memanggil setDefaultPictureProfile(id).
  3. Framework mengirimkan parameter profil tersebut ke HAL Kualitas Media, yang kemudian menerapkan perubahan.

Media Quality SDK API

Media Quality SDK API menyediakan alat yang diperlukan agar aplikasi dapat berinteraksi dengan framework. Titik entri utama adalah paket android.media.quality.

android.media.quality

Paket ini berisi class utama untuk mengelola kualitas media.

Class Deskripsi
MediaQualityManager Class pusat untuk berinteraksi dengan MQF.
PictureProfile Class data yang mewakili kumpulan lengkap parameter gambar untuk mode tertentu.
SoundProfile Class data untuk parameter suara.
MediaQualityContract Class yang berisi konstanta untuk semua kunci parameter yang telah ditentukan sebelumnya.

MediaQualityManager

Metode utama mencakup:

Metode Deskripsi
createPictureProfile(PictureProfile profile) Membuat profil gambar baru. Memerlukan izin khusus atau agar aplikasi berada dalam daftar yang diizinkan.
updatePictureProfile(PictureProfile profile) Memperbarui profil gambar yang ada. Hanya dapat dipanggil oleh pembuat profil.
removePictureProfile(String profileId) Menghapus profil. Hanya dapat dipanggil oleh pembuat profil.
getAvailablePictureProfiles() Menampilkan daftar semua profil gambar yang tersedia.
setDefaultPictureProfile(String profileId) Menetapkan profil gambar default global. Memerlukan izin MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE.
registerPictureProfileCallback(PictureProfileCallback cb) Mendaftarkan callback untuk memproses perubahan profil.

Objek PictureProfile

Objek PictureProfile merangkum semua informasi untuk mode gambar tertentu.

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 Kualitas Media

HAL Kualitas Media adalah antarmuka berbasis AIDL yang ditentukan dalam hardware/interfaces/tv/mediaquality/aidl/. Vendor SoC harus mengimplementasikan antarmuka ini untuk mengaktifkan Framework Kualitas Media di perangkat mereka. HAL berfungsi sebagai jembatan komunikasi antara MediaQualityService dalam framework Android dan hardware yang mendasarinya, yang bertanggung jawab untuk menerapkan penyesuaian gambar dan suara.

HAL mengelola profil gambar dan suara menggunakan parcelable AIDL. Hal ini melibatkan penerimaan perubahan profil dari framework dan memberi tahu framework tentang penyesuaian yang dilakukan di tingkat hardware.

Modul

Antarmuka HAL terdiri dari beberapa file AIDL utama:

File HAL Deskripsi
IMediaQuality.aidl Antarmuka utama untuk layanan Kualitas Media, yang digunakan untuk menetapkan pemroses dan menemukan kemampuan hardware.
IPictureProfileChangedListener.aidl Antarmuka pemroses yang digunakan framework untuk memberi tahu HAL (khususnya, komponen seperti HAL composer) tentang perubahan pada profil gambar.
IPictureProfileAdjustmentListener.aidl Antarmuka pemroses yang digunakan HAL untuk memberi tahu framework tentang penyesuaian yang dilakukan di tingkat hardware, misalnya, saat pengguna mengubah setelan langsung melalui remote hardware.
PictureParameter.aidl Gabungan AIDL yang menentukan semua parameter gambar standar, seperti kontras dan ketajaman, yang dapat disesuaikan.
PictureProfile.aidl Parcelable AIDL yang mewakili objek PictureProfile di lapisan HAL, yang berisi ID profil dan parameter terkait.
ISoundProfileChangedListener.aidl Antarmuka pemroses yang digunakan framework untuk memberi tahu HAL tentang perubahan pada profil suara.
ISoundProfileAdjustmentListener.aidl Antarmuka pemroses yang digunakan HAL untuk memberi tahu framework tentang penyesuaian suara yang dilakukan di tingkat hardware.