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 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 |
---|---|
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 | 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 alla base del codec 2.0 in Android 13:
KEY_VIDEO_QP_AVERAGE
descrive il valore per frame media dei blocchi.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 comePICTURE_TYPE_I
,PICTURE_TYPE_P
,PICTURE_TYPE_B
oPICTURE_TYPE_UNKNOWN
.KEY_VIDEO_ENCODING_STATISTICS_LEVEL
descrive il livello di le informazioni statistiche emesse dal codificatore video, come segue:Quando l'encoder non genera informazioni sulle statistiche di codifica, Questa chiave è 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
.
Per un'implementazione di riferimento, consulta VideoEncodingStatisticsTest
.
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 dell'encoding con la velocità in bit inferiore è superiore al QP medio dell'encoding con la velocità in bit superiore, il CTS viene superato.
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);