A partire da Android 13, i client di app possono richiedere al codificatore video di esportare le statistiche di codifica per ogni frame video codificato. Con le statistiche ottenute dal codificatore video, le app possono ottimizzare le proprie attività di codifica video, come la codifica multipass e la preelaborazione dei frame prima della 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 i dati statistici come mostrato nella tabella seguente.
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 dell'encoder 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 QP medio per blocco per frame.All'implementazione della chiave
KEY_VIDEO_QP_AVERAGE
si applicano le seguenti regole:L'encoder SoC deve arrotondare la media delle QPS del blocco al numero intero più vicino prima di emettere in 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 vengono codificati coefficienti e non vengono codificate informazioni QP significative nel frame.
KEY_PICTURE_TYPE
descrive il tipo di immagine del frame codificato comePICTURE_TYPE_I
,PICTURE_TYPE_P
,PICTURE_TYPE_B
, oPICTURE_TYPE_UNKNOWN
.KEY_VIDEO_ENCODING_STATISTICS_LEVEL
descrive il livello di informazioni sulle statistiche di codifica emesse dall'encoder video, come segue:Quando il codificatore non genera informazioni sulle statistiche di codifica, questa chiave viene impostata su
VIDEO_ENCODING_STATISTICS_LEVEL_NONE
.Quando l'encoder genera
KEY_VIDEO_QP_AVERAGE
eKEY_PICTURE_TYPE
per ogni frame, questa chiave viene impostata suVIDEO_ENCODING_STATISTICS_LEVEL_1
.
Vedi VideoEncodingStatisticsTest
per un'implementazione di riferimento.
Convalida
Esegui il test VideoEncodingStatisticsTest
CTS per verificare che la parte relativa al QP medio delle statistiche di codifica video
funzioni correttamente: CTS esegue due codifiche dello stesso video di input, una con una
bitrate più alta e un'altra con una bitrate più bassa. CTS confronta quindi i due 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 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);