Od Androida 13 klienci aplikacji mogą prosić koder wideo o eksportowanie statystyk kodowania dla każdej zakodowanej klatki wideo. Dzięki statystykom uzyskanym z enkodera wideo aplikacje mogą optymalizować zadania kodowania wideo, takie jak kodowanie wieloprzebiegowe i wstępne przetwarzanie klatek przed kodowaniem.
Aby eksportować statystyki kodowania wideo, dostawcy układów SoC muszą zmienić sterownik kodera wideo zgodnie z opisem w sekcji Aktualizacje sterownika kodera wideo.
Dane statystyczne dotyczące kodowania filmów
W Androidzie 13 koder wideo eksportuje dane statystyczne w sposób pokazany w tej tabeli.
| Nazwa statystyk kodera | Opis | 
|---|---|
| Średnia liczba bloków QP na klatkę | Średnia wszystkich wartości QP bloków w klatce wideo, które są zakodowane w strumieniu bitów. | 
| Typ obrazu | Wpisz I, P lub B | 
Deweloperzy mogą pobierać informacje o statystykach każdej klatki za pomocą klasy deweloperskiej MediaFormat.
Aktualizacje sterownika kodera wideo
Aby umożliwić eksportowanie statystyk kodowania wideo, dostawcy układów SoC muszą zmienić sterownik kodera wideo. W Androidzie 13 w bazie Codec 2.0 dodano te klucze:
- KEY_VIDEO_QP_AVERAGEopisuje średnią wartość QP bloku na klatkę.- W przypadku implementacji klucza - KEY_VIDEO_QP_AVERAGEobowiązują te reguły:- Koder SoC musi zaokrąglić średnią wartości QP bloku do najbliższej liczby całkowitej przed przekazaniem jej do Codec 2.0. 
- Średnia wartość jest obliczana tylko na podstawie płaszczyzny luminancji. 
- Koder SoC musi zwrócić - INT_MAX, jeśli wszystkie bloki w bieżącej klatce są w trybie pominięcia. Ten warunek występuje, gdy nie są kodowane żadne współczynniki i w klatce nie są kodowane żadne istotne informacje o QP.
 
- KEY_PICTURE_TYPEokreśla typ obrazu zakodowanej ramki jako- PICTURE_TYPE_I,- PICTURE_TYPE_P,- PICTURE_TYPE_Blub- PICTURE_TYPE_UNKNOWN.
- KEY_VIDEO_ENCODING_STATISTICS_LEVELokreśla poziom informacji o statystykach kodowania emitowanych przez koder wideo w ten sposób:- Jeśli koder nie generuje informacji o statystykach kodowania, ten klucz ma wartość - VIDEO_ENCODING_STATISTICS_LEVEL_NONE.
- Gdy koder generuje - KEY_VIDEO_QP_AVERAGEi- KEY_PICTURE_TYPEdla każdej klatki, ten klucz jest ustawiony na- VIDEO_ENCODING_STATISTICS_LEVEL_1.
 
Wzorcową implementację znajdziesz w sekcji VideoEncodingStatisticsTest.
Weryfikacja
Uruchom test VideoEncodingStatisticsTest CTS, aby sprawdzić, czy średnia część QP statystyk kodowania wideo działa prawidłowo: CTS uruchamia 2 kodowania tego samego filmu wejściowego – jedno z wyższą szybkością transmisji bitów, a drugie z niższą. Następnie CTS porównuje 2 wyeksportowane średnie wartości QP z 2 kodowań. Jeśli średnia wartość QP z kodowania z niższą szybkością transmisji jest wyższa niż średnia wartość QP z kodowania z wyższą szybkością transmisji, test CTS jest zaliczony.
Aby sprawdzić, czy funkcja eksportowania statystyk kodowania wideo jest wyłączona, gdy jest włączona, użyj klucza VIDEO_ENCODING_STATISTICS_LEVEL_NONE w ten sposób:
format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);
