Exportar estadísticas de codificación de video

A partir de Android 13, los clientes de la aplicación pueden solicitar al codificador de video que exporte estadísticas de codificación para cada cuadro de video codificado. Con las estadísticas obtenidas del codificador de video, las aplicaciones pueden optimizar sus tareas de codificación de video, como la codificación multipaso y el preprocesamiento de fotogramas antes de la codificación.

Para exportar estadísticas de codificación de video, los proveedores de SoC deben cambiar el controlador del codificador de video como se describe en Actualizaciones del controlador del codificador de video .

Datos estadísticos de codificación de vídeo.

Con Android 13, el codificador de video exporta datos estadísticos como se muestra en la siguiente tabla.

Nombre de las estadísticas del codificador Descripción
QP de bloque promedio por cuadro El promedio de todos los QP de bloque en el cuadro de video que están codificados en el flujo de bits
tipo de imagen Tipo I o P o B

Los desarrolladores pueden recuperar información estadística para cada fotograma utilizando la clase de desarrollador MediaFormat .

Actualizaciones del controlador del codificador de video

Para admitir la exportación de estadísticas de codificación de video, los proveedores de SoC deben cambiar el controlador del codificador de video. Se agregan las siguientes claves en la base Codec 2.0 en Android 13:

  • KEY_VIDEO_QP_AVERAGE describe el QP promedio del bloque por cuadro.

    Las siguientes reglas se aplican a la implementación de la clave KEY_VIDEO_QP_AVERAGE :

    • El codificador SoC debe redondear el promedio de los QP del bloque al entero más cercano antes de emitir al Codec 2.0.

    • El valor medio se calcula únicamente desde un plano luminoso.

    • El codificador SoC debe devolver INT_MAX si todos los bloques del fotograma actual están en modo omitido. Esta condición ocurre cuando no se codifican coeficientes y no se codifica información QP significativa en el cuadro.

  • KEY_PICTURE_TYPE describe el tipo de imagen del marco codificado como PICTURE_TYPE_I , PICTURE_TYPE_P , PICTURE_TYPE_B o PICTURE_TYPE_UNKNOWN .

  • KEY_VIDEO_ENCODING_STATISTICS_LEVEL describe el nivel de información estadística de codificación emitida por el codificador de video, de la siguiente manera:

Consulte VideoEncodingStatisticsTest para obtener una implementación de referencia.

Validación

Ejecute la prueba CTS VideoEncodingStatisticsTest para validar que la parte QP promedio de las estadísticas de codificación de video funcione correctamente: CTS ejecuta dos codificaciones del mismo video de entrada, una con una tasa de bits más alta y otra con una tasa de bits más baja. Luego, CTS compara los dos valores QP promedio exportados de las dos codificaciones. Si el QP promedio de la codificación con la tasa de bits más baja es mayor que el QP promedio de la codificación con la tasa de bits más alta, CTS pasa.

Para validar la desactivación de la función de exportación de estadísticas de codificación de video cuando está habilitada, use la tecla VIDEO_ENCODING_STATISTICS_LEVEL_NONE de la siguiente manera:

format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);