A partir de Android 13, los clientes de apps pueden solicitar que el codificador de video exporte estadísticas de codificación para cada fotograma de video codificado. Con las estadísticas obtenidas del codificador de video, las apps pueden optimizar sus tareas de codificación de video, como la codificación de varios pasos y el procesamiento previo de fotogramas antes de la codificación.
Para exportar estadísticas de codificación de video, los proveedores de SoC deben cambiar el codificador de video como se describe en Actualizaciones del controlador del codificador de video.
Datos de estadísticas de codificación de video
Con Android 13, el codificador de video exporta estadísticas datos, como se muestra en la siguiente tabla.
Nombre de las estadísticas del codificador | Descripción |
---|---|
Promedio de QP de bloque por fotograma | El promedio de todas las QP de bloque en el fotograma del video que están codificadas en el flujo de bits |
Tipo de imagen | Tipo I, P o B |
Los desarrolladores pueden recuperar información estadística para cada fotograma mediante el
MediaFormat
desarrollador.
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 de codificador de video. Las siguientes claves se agregan en la base del códec 2.0 en Android 13:
KEY_VIDEO_QP_AVERAGE
describe la métrica por fotograma. QP de bloque promedio.Las siguientes reglas se aplican a la implementación de
KEY_VIDEO_QP_AVERAGE
. clave:El codificador de SoC debe redondear el promedio de las QP del bloque a la cifra más entero antes de emitirse al códec 2.0.
El valor promedio se calcula solo a partir de un plano de luma.
El codificador de SoC debe mostrar
INT_MAX
si todos los bloques de la fotograma están en el modo omitido. Esta condición ocurre cuando no hay coeficientes y no hay información significativa de QP codificada en el marco.
KEY_PICTURE_TYPE
describe el tipo de imagen del marco codificado comoPICTURE_TYPE_I
PICTURE_TYPE_P
PICTURE_TYPE_B
, oPICTURE_TYPE_UNKNOWN
.KEY_VIDEO_ENCODING_STATISTICS_LEVEL
describe el nivel de codificación de la información de estadísticas emitida por el codificador de video, de la siguiente manera:Cuando el codificador no genera información sobre las estadísticas de codificación, esta clave se configura como
VIDEO_ENCODING_STATISTICS_LEVEL_NONE
.Cuando el codificador genera
KEY_VIDEO_QP_AVERAGE
yKEY_PICTURE_TYPE
para cada fotograma, esta tecla se establece enVIDEO_ENCODING_STATISTICS_LEVEL_1
.
Consulta VideoEncodingStatisticsTest
para una implementación de referencia.
Validación
Ejecuta VideoEncodingStatisticsTest
.
Prueba de CTS para validar que la parte promedio de QP de las estadísticas de codificación de video
Funciona correctamente: CTS ejecuta dos codificaciones del mismo video de entrada, una con una
una tasa de bits más alta y otra con una menor. Luego, el CTS compara ambos
los valores de 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 el
una tasa de bits más alta, se aprueba el CTS.
Para validar que se desactive la función de exportación de estadísticas de codificación de video cuando
Usa la clave VIDEO_ENCODING_STATISTICS_LEVEL_NONE
de la siguiente manera:
format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);