Ab Android 13 können App-Clients die Video-Encoder können Codierungsstatistiken für jeden codierten Videoframe exportieren. Mit die über den Video-Encoder abgerufen werden, können Apps Videos Codierungsaufgaben wie Multipass-Codierung und Frame-Vorverarbeitung Codierung.
Zum Exportieren von Videocodierungsstatistiken müssen SoC-Anbieter den Videoencoder ändern wie unter Updates für den Videoencoder-Treiber beschrieben.
Statistikdaten zur Videocodierung
Unter Android 13 exportiert der Video-Encoder Statistiken wie in der folgenden Tabelle dargestellt.
Name der Encoder-Statistik | Beschreibung |
---|---|
Durchschnittliche Block-QP pro Frame | Der Durchschnitt aller Block-QPs im Videoframe, die in den Bitstream codiert sind |
Bildtyp | Typ I oder P oder B |
Entwickler können mithilfe der Methode
MediaFormat
für Entwickler.
Updates des Video-Encoder-Treibers
Um den Export von Videocodierungsstatistiken zu unterstützen, müssen SoC-Anbieter die Video-Encoder-Treiber. Die folgenden Schlüssel werden in der Codec 2.0-Basis in Android 13:
Mit
KEY_VIDEO_QP_AVERAGE
wird pro Frame beschrieben. durchschnittliche Block-QP.Für die Implementierung des
KEY_VIDEO_QP_AVERAGE
gelten die folgenden Regeln Schlüssel:Der SoC-Encoder muss den Durchschnitt der Block-QPs auf den nächsten vor der Ausgabe an Codec 2.0.
Der Durchschnittswert wird nur aus einer Luma-Ebene berechnet.
Der SoC-Encoder muss
INT_MAX
zurückgeben, wenn alle Blöcke im aktuellen dass sich ein Frame im übersprungenen Modus befindet. Diese Bedingung tritt auf, wenn keine Koeffizienten codiert und im Frame sind keine relevanten QP-Informationen codiert.
KEY_PICTURE_TYPE
beschreibt den Bildtyp des codierten Frames alsPICTURE_TYPE_I
,PICTURE_TYPE_P
,PICTURE_TYPE_B
, oderPICTURE_TYPE_UNKNOWN
.Mit
KEY_VIDEO_ENCODING_STATISTICS_LEVEL
wird die Ebene der Codierung der vom Video-Encoder ausgegebenen Informationen zur Statistik:Wenn der Encoder keine Informationen zu Codierungsstatistiken generiert, Dieser Schlüssel ist auf
VIDEO_ENCODING_STATISTICS_LEVEL_NONE
festgelegt.Wenn der Encoder
KEY_VIDEO_QP_AVERAGE
undKEY_PICTURE_TYPE
generiert für jeden Frame ist dieser Schlüssel aufVIDEO_ENCODING_STATISTICS_LEVEL_1
festgelegt.
Weitere Informationen finden Sie unter VideoEncodingStatisticsTest
.
für eine Referenzimplementierung.
Zertifizierungsstufe
Führen Sie den VideoEncodingStatisticsTest
aus.
CTS-Test, um zu bestätigen, dass der durchschnittliche QP-Teil der Videocodierungsstatistiken
einwandfrei funktioniert: CTS führt zwei Codierungen für dasselbe Eingabevideo aus, eine mit einer
eine höhere und eine mit einer niedrigeren Bitrate. CTS vergleicht dann
durchschnittliche QP-Werte aus den beiden Codierungen exportiert. Wenn die durchschnittliche QP aus der Codierung
mit der niedrigeren Bitrate höher als die durchschnittliche QP der Codierung mit der
CTS-Pässe.
Wenn Sie überprüfen möchten, ob das Exportieren von Videocodierungsstatistiken beim
aktiviert ist, verwenden Sie den Schlüssel VIDEO_ENCODING_STATISTICS_LEVEL_NONE
so:
format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);