Android 13'ten itibaren uygulama istemcileri, video kodlayıcıdan her kodlanmış video karesi için kodlama istatistiklerini dışa aktarmasını talep edebilir. Video kodlayıcıdan elde edilen istatistikler sayesinde uygulamalar, çoklu geçişli kodlama ve kodlama öncesinde kare ön işleme gibi video kodlama görevlerini optimize edebilir.
Video kodlama istatistiklerini dışa aktarmak için SoC satıcılarının video kodlayıcı sürücüsünü Video kodlayıcı sürücüsüne yönelik güncellemeler bölümünde açıklandığı şekilde değiştirmesi gerekir.
Video kodlama istatistik verileri
Android 13'te video kodlayıcı, istatistik verilerini aşağıdaki tabloda gösterildiği gibi dışa aktarır.
Kodlayıcı istatistiklerinin adı | Tanım |
---|---|
Çerçeve başına ortalama blok QP'si | Bit akışına kodlanan video çerçevesindeki tüm blok QP'lerin ortalaması |
Resim türü | Tip I veya P veya B |
Geliştiriciler, MediaFormat
geliştirici sınıfını kullanarak her kareye ilişkin istatistik bilgilerini alabilir.
Video kodlayıcı sürücüsüne yönelik güncellemeler
Video kodlama istatistiklerinin dışa aktarımını desteklemek için SoC satıcılarının video kodlayıcı sürücüsünü değiştirmesi gerekir. Android 13'teki Codec 2.0 tabanına aşağıdaki anahtarlar eklenmiştir:
KEY_VIDEO_QP_AVERAGE
kare başına ortalama blok QP'sini açıklar.KEY_VIDEO_QP_AVERAGE
anahtarının uygulanması için aşağıdaki kurallar geçerlidir:SoC kodlayıcının Codec 2.0'a yayınlamadan önce blok QP'lerinin ortalamasını en yakın tam sayıya yuvarlaması gerekir.
Ortalama değer yalnızca bir luma düzleminden hesaplanır.
Geçerli çerçevedeki tüm bloklar atlanmış moddaysa SoC kodlayıcının
INT_MAX
döndürmesi gerekir. Bu durum, hiçbir katsayı kodlanmadığında ve çerçevede hiçbir önemli QP bilgisi kodlanmadığında ortaya çıkar.
KEY_PICTURE_TYPE
kodlanmış çerçevenin resim türünüPICTURE_TYPE_I
,PICTURE_TYPE_P
,PICTURE_TYPE_B
veyaPICTURE_TYPE_UNKNOWN
olarak tanımlar.KEY_VIDEO_ENCODING_STATISTICS_LEVEL
, video kodlayıcıdan yayılan kodlama istatistik bilgilerinin düzeyini aşağıdaki şekilde açıklar:Kodlayıcı, kodlama istatistikleri hakkında hiçbir bilgi üretmediğinde bu anahtar
VIDEO_ENCODING_STATISTICS_LEVEL_NONE
olarak ayarlanır.Kodlayıcı her kare için
KEY_VIDEO_QP_AVERAGE
veKEY_PICTURE_TYPE
oluşturduğunda, bu anahtarVIDEO_ENCODING_STATISTICS_LEVEL_1
olarak ayarlanır.
Referans uygulaması için VideoEncodingStatisticsTest
bakın.
Doğrulama
Video kodlama istatistiklerinin ortalama QP bölümünün doğru çalıştığını doğrulamak için VideoEncodingStatisticsTest
CTS testini çalıştırın: CTS, aynı giriş videosunun biri daha yüksek bit hızına ve diğeri daha düşük bit hızına sahip iki kodlamasını çalıştırır. CTS daha sonra iki kodlamadan dışa aktarılan iki ortalama QP değerini karşılaştırır. Daha düşük bit hızına sahip kodlamanın ortalama QP'si, daha yüksek bit hızına sahip kodlamanın ortalama QP'sinden yüksekse CTS geçer.
Dışa aktarılan video kodlama istatistikleri özelliğinin etkinleştirildiğinde kapatılmasını doğrulamak için VIDEO_ENCODING_STATISTICS_LEVEL_NONE
anahtarını aşağıdaki şekilde kullanın:
format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);