À partir d'Android 13, les clients d'application peuvent demander le encodeur vidéo pour exporter les statistiques d'encodage de chaque image vidéo encodée. Avec les statistiques obtenues par l'encodeur vidéo, les applications peuvent optimiser telles que l'encodage multipass et le prétraitement des frames avant l'encodage.
Pour exporter des statistiques d'encodage vidéo, les fournisseurs de SoC doivent modifier l'encodeur vidéo. comme décrit dans la section Mises à jour du pilote de l'encodeur vidéo.
Données statistiques sur l'encodage vidéo
Avec Android 13, l'encodeur vidéo exporte des statistiques comme indiqué dans le tableau suivant.
Nom des statistiques de l'encodeur | Description |
---|---|
QP moyen en bloc par image | Moyenne de tous les QP de bloc dans l'image vidéo qui sont encodés dans le flux de bits. |
Type d'image | Type I, P ou B |
Les développeurs peuvent récupérer des informations statistiques pour chaque image à l'aide du
MediaFormat
pour les développeurs.
Mises à jour du pilote de l'encodeur vidéo
Pour permettre l'exportation des statistiques d'encodage vidéo, les fournisseurs de SoC doivent modifier le et le pilote d'encodeur vidéo. Les clés suivantes sont ajoutées à la base Codec 2.0 dans Android 13:
KEY_VIDEO_QP_AVERAGE
décrit l'image par image QP moyen en bloc.Les règles suivantes s'appliquent à l'implémentation de
KEY_VIDEO_QP_AVERAGE
. clé:L'encodeur SoC doit arrondir la moyenne des QP du bloc à la valeur entier avant d'émettre vers Codec 2.0.
La valeur moyenne n'est calculée qu'à partir d'un plan Luma.
L'encodeur SoC doit renvoyer
INT_MAX
si tous les blocs de la couche actuelle image sont en mode "sauté". Cette condition se produit lorsqu'aucun coefficient n'est et qu'aucune information QP significative n'est encodée dans la trame.
KEY_PICTURE_TYPE
décrit le type d'image de l'image encodée sous la formePICTURE_TYPE_I
,PICTURE_TYPE_P
PICTURE_TYPE_B
, ouPICTURE_TYPE_UNKNOWN
.KEY_VIDEO_ENCODING_STATISTICS_LEVEL
décrit le niveau informations de statistiques d'encodage émises par l'encodeur vidéo, comme suit:Lorsque l'encodeur ne génère aucune information sur les statistiques d'encodage, cette clé est définie sur
VIDEO_ENCODING_STATISTICS_LEVEL_NONE
.Lorsque l'encodeur génère
KEY_VIDEO_QP_AVERAGE
etKEY_PICTURE_TYPE
Pour chaque image, cette clé est définie surVIDEO_ENCODING_STATISTICS_LEVEL_1
.
Voir VideoEncodingStatisticsTest
pour une implémentation de référence.
Validation
Exécutez la VideoEncodingStatisticsTest
.
Test CTS pour vérifier que la partie QP moyenne des statistiques d'encodage vidéo
fonctionne correctement: CTS exécute deux encodages pour la même vidéo d'entrée, l'un avec un
et un autre avec un débit inférieur. CTS compare ensuite les
les valeurs QP moyennes exportées des deux encodages. Si le QP moyen de l'encodage
dont le débit est inférieur est supérieur au QP moyen de l'encodage avec
débit plus élevé, passe CTS.
Pour valider la désactivation de la fonctionnalité d'exportation des statistiques d'encodage vidéo lorsque
utilisez la clé VIDEO_ENCODING_STATISTICS_LEVEL_NONE
comme suit:
format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);