Eksportuj statystyki kodowania wideo

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 układów SoC muszą zmienić sterownik kodera wideo zgodnie z instrukcjami podanymi w artykule Aktualizacje sterownika kodera wideo.

Dane statystyk kodowania filmów

W Androidzie 13 koder wideo eksportuje dane statystyczne zgodnie z tabelą poniżej.

Nazwa statystyk kodera Opis
Średni QP bloku na klatkę Średnia ze wszystkich blokowych pytań QP w klatce wideo zakodowanych w strumieniu bitowym
Typ zdjęcia Typ I lub P lub B

Deweloperzy mogą pobierać informacje statystyczne o każdym ujęciu za pomocą klasy dla deweloperów MediaFormat.

Aktualizacje sterownika kodera wideo

Aby umożliwić eksportowanie statystyk kodowania wideo, dostawcy SoC muszą zmienić sterownik kodera wideo. W wersji podstawowej kodeka 2.0 w Androidzie 13 dodano te klucze:

  • KEY_VIDEO_QP_AVERAGE opisuje klatkę. uśrednionej liczby żądań QP.

    W przypadku implementacji klucza KEY_VIDEO_QP_AVERAGE obowiązują te reguły:

    • Przed przesłaniem do kodeka 2.0 enkoder SoC musi zaokrąglić średnią QP bloku do najbliższej liczby całkowitej.

    • Średnia wartość jest obliczana tylko na podstawie samolotu luma.

    • Koder SoC musi zwrócić INT_MAX, jeśli wszystkie bloki w bieżącym klatku są w trybie pominięcia. Ten stan występuje, gdy nie są kodowane żadne współczynniki i nie są kodowane żadne istotne informacje QP w ramce.

  • KEY_PICTURE_TYPE określa typ obrazu zakodowanej ramki jako PICTURE_TYPE_I, PICTURE_TYPE_P, PICTURE_TYPE_B, lub PICTURE_TYPE_UNKNOWN.

  • KEY_VIDEO_ENCODING_STATISTICS_LEVEL określa poziom następujące statystyki kodowania:

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 a druga – o niższej. CTS porównuje następnie 2 wyeksportowane średnie wartości QP z 2 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 funkcja eksportowania statystyk kodowania wideo jest wyłączona, 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);