Począwszy od Androida 13 klienty aplikacji mogą prosić o żądanie: kodera wideo do eksportowania statystyk kodowania dla każdej zakodowanej klatki wideo. Na statystyki uzyskane za pomocą kodera wideo – aplikacje mogą optymalizować filmy, zadania związane z kodowaniem, takie jak kodowanie wieloprzebiegowe i wstępne przetwarzanie ramek przed kodowanie.
Aby eksportować statystyki kodowania wideo, dostawcy SOC muszą zmienić koder wideo sterownika zgodnie z opisem w sekcji Aktualizacje sterownika kodera wideo.
Dane statystyczne dotyczące kodowania filmów
W Androidzie 13 koder wideo eksportuje statystyki jak w poniższej tabeli.
Nazwa statystyk kodera | Opis |
---|---|
Średnia liczba QP bloku na klatkę | Średnia ze wszystkich blokowych pytań QP w klatce wideo zakodowanych w strumieniu bitowym |
Typ zdjęcia | Wpisz I, P lub B |
Programiści mogą pobierać statystyki dotyczące każdej klatki za pomocą
MediaFormat
dla programistów.
Aktualizacje sterownika kodera wideo
Aby można było eksportować statystyki kodowania wideo, dostawcy układów SoC muszą zmienić sterownika kodera wideo. Poniższe klucze zostały dodane w Codec 2.0 w Android 13:
KEY_VIDEO_QP_AVERAGE
opisuje klatkę. uśredniona liczba zapytań blokujących.Poniższe reguły dotyczą implementacji
KEY_VIDEO_QP_AVERAGE
klucz:Enkoder SOC musi zaokrąglić średnią wartość QP bloku do najbliższej przed przesłaniem na kodek 2.0.
Średnia wartość jest obliczana tylko na podstawie samolotu luma.
Enkoder SOC musi zwracać wartość
INT_MAX
, jeśli wszystkie bloki w bieżącym są w trybie pomijania. Ten warunek występuje, gdy brak współczynników bez kodowania, a w ramce nie będą kodowane żadne istotne informacje o QP.
KEY_PICTURE_TYPE
określa typ obrazu zakodowanej ramki jakoPICTURE_TYPE_I
,PICTURE_TYPE_P
,PICTURE_TYPE_B
lubPICTURE_TYPE_UNKNOWN
.KEY_VIDEO_ENCODING_STATISTICS_LEVEL
określa poziom następujące statystyki kodowania:Jeśli koder nie generuje żadnych informacji o statystykach kodowania, ten klucz jest ustawiony na
VIDEO_ENCODING_STATISTICS_LEVEL_NONE
.Kiedy koder wygeneruje
KEY_VIDEO_QP_AVERAGE
iKEY_PICTURE_TYPE
dla każdej klatki ten klucz ma wartośćVIDEO_ENCODING_STATISTICS_LEVEL_1
.
Zobacz VideoEncodingStatisticsTest
jako przykład implementacji.
Weryfikacja
Uruchom VideoEncodingStatisticsTest
test CTS, aby sprawdzić, czy średnia wartość QP w statystykach kodowania wideo to średnia wartość QP.
działa poprawnie: CTS używa dwóch kodowania tego samego wejściowego wideo: jedno z kodowaniem
a druga – o niższej. Zespół CTS porównuje te 2 usługi
wyeksportowano średnie wartości QP z dwóch kodowań. Jeśli średnia QP z kodowania
o niższej szybkości transmisji bitów jest wyższa niż średnia QP z kodowania
mają większą szybkość transmisji bitów.
Aby sprawdzić, czy wyłączenie funkcji eksportowania statystyk kodowania wideo jest prawidłowe,
jest włączony, 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);