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 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 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 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);