Esporta statistiche di codifica video

A partire da Android 13, i client delle app possono richiedere al codificatore video di esportare le statistiche di codifica per ogni fotogramma video codificato. Grazie alle statistiche ottenute dal codificatore video, le app possono ottimizzare le proprie attività di codifica, come la codifica multipass e la pre-elaborazione dei fotogrammi, prima della codifica.

Per esportare le statistiche di codifica video, i fornitori di SoC devono modificare il driver del codificatore video come descritto in Aggiornamenti al driver del codificatore video.

Dati delle statistiche sulla codifica video

Con Android 13, il codificatore video esporta i dati statistici come illustrato nella seguente tabella.

Nome delle statistiche del codificatore Descrizione
QP blocco medio per frame La media di tutti i QP di blocco nel frame video codificati nel flusso di bit
Tipo di immagine Tipo I, P o B

Gli sviluppatori possono recuperare le informazioni statistiche per ogni frame utilizzando la classe sviluppatore MediaFormat.

Aggiornamenti al driver del codificatore video

Per supportare l'esportazione delle statistiche di codifica video, i fornitori di SoC devono modificare il driver del codificatore video. Le seguenti chiavi vengono aggiunte alla base del codec 2.0 in Android 13:

  • KEY_VIDEO_QP_AVERAGE descrive il valore medio del blocco per frame.

    All'implementazione della chiave KEY_VIDEO_QP_AVERAGE si applicano le seguenti regole:

    • Il codificatore SoC deve arrotondare la media dei QP di blocco al numero intero più vicino prima di inviarli al Codec 2.0.

    • Il valore medio viene calcolato solo da un piano luminario.

    • Il codificatore SoC deve restituire INT_MAX se tutti i blocchi nel frame corrente si trovano nella modalità saltata. Questa condizione si verifica quando non vengono codificati coefficienti e nel frame non vengono codificate informazioni QP significative.

  • KEY_PICTURE_TYPE descrive il tipo di immagine del frame codificato come PICTURE_TYPE_I, PICTURE_TYPE_P, PICTURE_TYPE_B o PICTURE_TYPE_UNKNOWN.

  • KEY_VIDEO_ENCODING_STATISTICS_LEVEL descrive il livello di informazioni sulle statistiche di codifica emesse dall'encoder video, come segue:

Consulta VideoEncodingStatisticsTest per un'implementazione di riferimento.

Convalida

Esegui il VideoEncodingStatisticsTest test CTS per confermare che la parte media del QP nelle statistiche di codifica video funziona correttamente: CTS esegue due codifiche dello stesso video in ingresso, una con una velocità in bit più alta e un'altra con una velocità in bit più bassa. CTS confronta quindi i due valori QP medi esportati dalle due codifiche. Se il QP medio della codifica con la velocità in bit più bassa è superiore al valore medio del QP della codifica con la velocità in bit più elevata, CTS supera il test.

Per convalidare la disattivazione della funzionalità di esportazione delle statistiche di codifica video quando è attivata, utilizza la chiave VIDEO_ENCODING_STATISTICS_LEVEL_NONE come segue:

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