Android 16'da Android TV için Media Quality Framework'ü kullanıma sunuluyor. Bu framework'ün amacı, görüntü kalitesi (PQ) ve ses kalitesi (AQ) ayarlamaları için standartlaştırılmış bir API oluşturmaktır. Buradaki temel amaç, farklı Android TV cihazlarda bu ayarlamalar için birleşik bir yaklaşım sunmaktır. Bu standartlaştırılmış çerçeve, tutarlı bir Android API'leri seti sunarak uygulama geliştiriciler, orijinal ekipman üreticileri (OEM'ler) ve çip üzerinde sistem (SoC) satıcıları için geliştirmeyi basitleştirmeyi amaçlar. Özellikle çip üzerinde sistem (SoC) satıcıları için Android çerçevesinin PQ ve AQ yapılandırmasını işlemesine olanak tanıyarak farklı uygulama geliştiricilerle işbirliği yapmanın ek yükünü azaltır.
Sonuç olarak, Google ve Android platformu için parçalanmayı azaltmaya, kaliteyi ve ölçeklenebilirliği artırmaya, yeni özellikler sunmaya ve birleşik AQ/PQ kullanıcı arayüzü ile geliştirilmiş kullanıcı deneyimi için temel oluşturmaya yardımcı olur.
Medya Kalitesi çerçevesi, TV izleme deneyimini iyileştirmek için çeşitli kullanım alanlarını destekler. Profiller ve ayarlar, paket adına (uygulama) veya giriş kimliğine göre yönetilebilir. Ayrıca, profiller sistem uygulamaları veya izin verilenler listesindeki uygulamalar tarafından oluşturulabilir ve yalnızca sahibi tarafından güncellenebilir ya da kaldırılabilir.
Daha net olarak ifade etmek gerekirse çerçeve, Resim ve Ses Profillerini yönetir. Resim parametrelerine örnek olarak parlaklık, kontrast ve keskinlik verilebilir. Ses parametrelerine örnek olarak ise bas ve tiz verilebilir.
Bu profiller; genel varsayılan profilleri ayarlama, MediaCodec kullanarak yayın profilleri ayarlama, belirli medya uygulamaları için uygulama varsayılan profillerini ayarlama ve HDMI gibi belirli girişler için TV giriş resmi profillerini ayarlama gibi çeşitli bağlamlarda uygulanabilir. Çerçeve ayrıca durum değişikliklerini (HDR gibi durumlar için farklı parametre kümelerine izin vererek) destekler, devam eden işleme için etkin resim profillerini yönetir ve ortam arka ışığı özelliklerini işler.
Android ekibi, Media Quality çerçevesini desteklemek için ekosistem iş ortaklarımızla birlikte çalışıyor.
Bileşenler
Medya Kalitesi Çerçevesi, uygulama, çerçeve ve donanım katmanlarında birlikte çalışan çeşitli temel bileşenlerden oluşur.
- Medya Kalitesi Yöneticisi (SDK API): Uygulamaların resim ve ses profillerini yönetmesine olanak tanıyan, uygulamaya yönelik SDK API'si.
- Medya Kalitesi Hizmeti: Temel işletme mantığını içeren, profilleri, izinleri ve HAL ile iletişimi yöneten bir sistem hizmeti.
- Medya Kalitesi Veritabanı: Tüm resim ve ses profillerini depolayan bir SQLite veritabanı.
- Medya Kalitesi Sözleşmesi: Uygulamalar ve çerçeve arasındaki iletişim için kullanılan standartlaştırılmış parametreleri ve veri yapılarını tanımlar.
- Medya Kalitesi HAL: SoC tedarikçilerinin, resim ve ses profili değişikliklerini temel donanıma iletmek için uyguladığı Donanım Soyutlama Katmanı.
Özellikler
Medya Kalitesi Çerçevesi, medya kalitesini yönetmek için esnek ve güçlü bir sistem sağlamak üzere çok çeşitli özellikleri destekler.
Profil Yönetimi
- Uygulama tarafından yönetilen profiller: Uygulamalar, özelleştirilmiş bir deneyim için kendi profillerini oluşturabilir, güncelleyebilir ve silebilir.
- Varsayılan profiller: Sistem uygulamaları, belirli uygulamalar veya TV girişleri (ör. HDMI 1) için varsayılan profiller ayarlayabilir.
- Global varsayılan profil: Belirli bir profil ayarlanmadığında uygulanan, sistem genelinde yedek profil.
Genel İş Akışı
Aşağıdaki şemalarda, yaygın medya kalitesi işlemleri için arama sıraları gösterilmektedir.
Resim Profili Oluşturma ve Uygulama
- Bir sistem uygulaması, medya uygulamasına profil oluşturma izni vermek için
setPictureProfileAllowList()işlevini çağırır. - Medya uygulaması, profil değişiklikleriyle ilgili bildirimler almak için
PictureProfileCallbackkaydeder. - Medya uygulaması,
PictureProfilenesnesiylecreatePictureProfile()işlevini çağırır. MediaQualityServiceisteği işler, profili veritabanına kaydeder ve kayıtlı geri çağırma işlevini (onPictureProfileAdded()veyaonError()) kullanarak uygulamayı başarı ya da başarısızlık konusunda bilgilendirir.
Akış Başına Resim Profili Ayarlama
Bu iş akışı, bir uygulamanın oynatma sırasında video içeriğine nasıl belirli bir profil uygulayabileceğini gösterir.
- Medya uygulaması, kullanılabilir resim profillerinin listesini almak için
MediaQualityManagersorgusunu gönderir. - Uygulama, akış için seçilen profili belirlemek ve ayarlamak üzere
MediaCodec.setParameterskullanır. - Çerçeve, bu seçimi Media Quality (MQ) HAL'e ileterek profil kimliğini ve parametrelerini aktarır.
- Son olarak, MQ HAL bu parametreleri Composer HAL'e gönderir. Composer HAL, video akışını belirtilen resim profiliyle oluşturur.
Global Varsayılan Profil Ayarlama
Yalnızca sistem uygulamaları, belirli bir profil atanmamış tüm içerikler için yedek olarak kullanılan genel varsayılan profili ayarlayabilir.
- Sistem uygulaması, çerçeveden kullanılabilir resim profillerinin listesini alır.
- Uygulama daha sonra
setDefaultPictureProfile(id)işlevini çağırarak bu profillerden birini yeni genel varsayılan olarak seçer. - Çerçeve, bu profilin parametrelerini Media Quality HAL'a gönderir. Bu HAL daha sonra değişiklikleri uygular.
Media Quality SDK API
Media Quality SDK API, uygulamaların çerçeveyle etkileşim kurması için gerekli araçları sağlar. Ana giriş noktası android.media.quality paketidir.
android.media.quality
Bu paket, medya kalitesini yönetmeye yönelik temel sınıfları içerir.
| Sınıf | Açıklama |
|---|---|
MediaQualityManager |
MQF ile etkileşim kurmak için kullanılan merkezi sınıf. |
PictureProfile |
Belirli bir mod için resim parametrelerinin tamamını temsil eden bir veri sınıfı. |
SoundProfile |
Ses parametreleri için bir veri sınıfı. |
MediaQualityContract |
Önceden tanımlanmış tüm parametre anahtarları için sabitleri içeren bir sınıf. |
MediaQualityManager
Başlıca yöntemler şunlardır:
| Yöntem | Açıklama |
|---|---|
createPictureProfile(PictureProfile profile) |
Yeni bir resim profili oluşturur. Özel izinler gerektirir veya uygulamanın izin verilenler listesinde olması gerekir. |
updatePictureProfile(PictureProfile profile) |
Mevcut bir resim profilini günceller. Yalnızca profilin oluşturucusu tarafından çağrılabilir. |
removePictureProfile(String profileId) |
Profili siler. Yalnızca profilin oluşturucusu tarafından çağrılabilir. |
getAvailablePictureProfiles() |
Mevcut tüm resim profillerinin listesini döndürür. |
setDefaultPictureProfile(String profileId) |
Genel varsayılan resim profilini ayarlar. MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE izni gerektirir. |
registerPictureProfileCallback(PictureProfileCallback cb) |
Profil değişikliklerini dinlemek için bir geri çağırma kaydeder. |
PictureProfile Nesnesi
PictureProfile nesnesi, belirli bir resim moduyla ilgili tüm bilgileri kapsar.
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
}
Medya Kalitesi Donanım Soyutlama Katmanı
Medya Kalitesi HAL, AIDL tabanlı bir arayüzdür ve hardware/interfaces/tv/mediaquality/aidl/ içinde tanımlanır. SoC tedarikçileri, cihazlarında Medya Kalitesi Çerçevesi'ni etkinleştirmek için bu arayüzü uygulamalıdır. HAL, Android çerçevesindeki MediaQualityService ile temel donanım arasında iletişim köprüsü görevi görür ve resim ile ses ayarlamalarını uygulamaktan sorumludur.
HAL, AIDL paketlenebilirlerini kullanarak resim ve ses profillerini yönetir. Bu işlem, çerçeveden profil değişikliklerini almayı ve donanım düzeyinde yapılan ayarlamaları çerçeveye bildirmeyi içerir.
Modüller
HAL arayüzü, birkaç önemli AIDL dosyasından oluşur:
| HAL Dosyası | Açıklama |
|---|---|
IMediaQuality.aidl |
Dinleyicileri ayarlamak ve donanım özelliklerini keşfetmek için kullanılan, Media Quality hizmetinin ana arayüzü. |
IPictureProfileChangedListener.aidl |
Çerçevenin, HAL'ı (özellikle de composer HAL gibi bir bileşeni) resim profilindeki değişiklikler konusunda bilgilendirmek için kullandığı bir dinleyici arayüzü. |
IPictureProfileAdjustmentListener.aidl |
HAL'ın, donanım düzeyinde yapılan ayarlamaları çerçeveye bildirmek için kullandığı bir dinleyici arayüzü. Örneğin, kullanıcı bir ayarı doğrudan donanım uzaktan kumandasını kullanarak değiştirdiğinde. |
PictureParameter.aidl |
Kontrast ve keskinlik gibi ayarlanabilen tüm standart resim parametrelerini tanımlayan bir AIDL birliği. |
PictureProfile.aidl |
HAL katmanında bir PictureProfile nesnesini temsil eden, profil kimliği ve ilişkili parametrelerini içeren AIDL parcelable. |
ISoundProfileChangedListener.aidl |
Çerçeve, ses profilindeki değişiklikleri HAL'ye bildirmek için bir dinleyici arayüzü kullanır. |
ISoundProfileAdjustmentListener.aidl |
HAL'ın, donanım düzeyinde yapılan ses ayarlamaları hakkında çerçeveyi bilgilendirmek için kullandığı bir dinleyici arayüzü. |