Esporta statistiche di codifica video

A partire da Android 13, i client delle app possono richiedere codificatore video per esportare le statistiche di codifica per ciascun fotogramma video codificato. Con le statistiche ottenute dal codificatore video, le app possono ottimizzare i loro come la codifica multipass e la pre-elaborazione dei fotogrammi codifica.

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

Dati statistici di codifica video

Con Android 13, il codificatore video esporta le statistiche come mostrato nella tabella seguente.

Nome delle statistiche del codificatore Descrizione
Media QP blocco per frame La media di tutti i QP a blocchi nel frame video che sono codificati nel flusso di bit
Tipo di immagine Di tipo I, P o B

Gli sviluppatori possono recuperare le informazioni statistiche per ogni frame utilizzando il metodo MediaFormat per gli sviluppatori.

Aggiornamenti al driver del codificatore video

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

  • KEY_VIDEO_QP_AVERAGE descrive la metrica per frame media blocco di QP.

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

    • Il codificatore SoC deve arrotondare la media dei QP di blocco al più vicino un valore intero prima di essere inviato 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 nella sono in modalità saltata. Questa condizione si verifica quando non esistono coefficienti e nessuna informazione QP significativa viene codificata nel frame.

  • 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 le informazioni statistiche emesse dal codificatore video, come segue:

Vedi VideoEncodingStatisticsTest per un'implementazione di riferimento.

Convalida

Esegui VideoEncodingStatisticsTest. Test CTS per verificare che la parte media del QP delle statistiche di codifica video funziona correttamente: CTS esegue due codifiche dello stesso video in ingresso, una con un una maggiore velocità in bit e un'altra con una minore velocità in bit. CTS mette quindi a confronto i due i valori QP medi esportati dalle due codifiche. Se il QP medio dalla codifica con la velocità in bit più bassa è superiore al QP medio della codifica con con velocità in bit superiore, pass CTS.

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

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