A partire da Android 13, i client app possono richiedere all'encoder video di esportare le statistiche di codifica per ogni frame video codificato. Con le statistiche ottenute dal codificatore video, le app possono ottimizzare le 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 modificare il driver del codificatore video come descritto in Aggiornamenti al driver del codificatore video.
Dati delle statistiche di codifica video
Con Android 13, il codificatore video esporta i dati delle statistiche come mostrato nella tabella seguente.
Nome delle statistiche del codificatore | Descrizione |
---|---|
QP medio del blocco per frame | La media di tutti i QP dei blocchi nel frame video codificati nel bitstream. |
Tipo di immagine | Digita I, P o B |
Gli sviluppatori possono recuperare le informazioni statistiche per ogni frame utilizzando la classe per sviluppatori
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. In Android 13 sono state aggiunte le seguenti chiavi nella base di Codec 2.0:
KEY_VIDEO_QP_AVERAGE
descrive il QP medio per frame.Le seguenti regole si applicano all'implementazione della chiave
KEY_VIDEO_QP_AVERAGE
:Il codificatore SoC deve arrotondare la media dei QP del blocco all'intero più vicino prima di emetterla in Codec 2.0.
Il valore medio viene calcolato solo da un piano di luminanza.
Il codificatore SoC deve restituire
INT_MAX
se tutti i blocchi nel frame corrente sono in modalità ignorata. 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 dal codificatore video, come segue:Quando il codificatore non genera informazioni sulle statistiche di codifica, questa chiave è impostata su
VIDEO_ENCODING_STATISTICS_LEVEL_NONE
.Quando il codificatore genera
KEY_VIDEO_QP_AVERAGE
eKEY_PICTURE_TYPE
per ogni frame, questa chiave è impostata suVIDEO_ENCODING_STATISTICS_LEVEL_1
.
Per un'implementazione di riferimento, consulta VideoEncodingStatisticsTest
.
Convalida
Esegui il test VideoEncodingStatisticsTest
CTS per verificare che la parte QP media delle statistiche di codifica video
funzioni correttamente: CTS esegue due codifiche dello stesso video di input, una con una
velocità in bit più elevata e l'altra con una velocità in bit inferiore. CTS confronta quindi i due valori QP medi esportati dalle due codifiche. Se la QP media della codifica
con bitrate inferiore è superiore alla QP media della codifica con bitrate
superiore, il test CTS viene superato.
Per convalidare la disattivazione della funzionalità di esportazione delle statistiche di codifica video quando
è abilitata, utilizza il tasto VIDEO_ENCODING_STATISTICS_LEVEL_NONE
nel seguente modo:
format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);