Eksportowanie statystyk kodowania filmów

Od Androida 13 klienci aplikacji mogą poprosić koder wideo o eksportowanie statystyk kodowania dla każdego zakodowanego 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 obrazu 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 obsługiwać eksportowanie statystyk 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 określa średni QP bloku na ramkę.

    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 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 test CTS VideoEncodingStatisticsTest, aby sprawdzić, czy średnia wartość QP w statystykach kodowania wideo działa prawidłowo. CTS wykonuje kodowanie tego samego filmu wejściowego dwukrotnie: raz z wyższym bitrate, a drugi raz z niższym bitrate. Zespół CTS porównuje te 2 usługi wyeksportowano średnie wartości QP z dwóch kodowań. Jeśli średni QP z kodowania o niższym bitrate jest wyższy niż średni QP z kodowania o wyższym bitrate, CTS przechodzi test.

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