À partir d'Android 13, les clients de l'application peuvent demander à l'encodeur vidéo d'exporter les statistiques d'encodage pour chaque image vidéo encodée. Grâce aux statistiques obtenues à partir de l'encodeur vidéo, les applications peuvent optimiser leurs tâches d'encodage vidéo telles que l'encodage multipasse et le prétraitement des images avant l'encodage.
Pour exporter les statistiques d'encodage vidéo, les fournisseurs de SoC doivent modifier le pilote de l'encodeur vidéo comme décrit dans Mises à jour du pilote de l'encodeur vidéo .
Données statistiques d'encodage vidéo
Avec Android 13, l'encodeur vidéo exporte les données statistiques comme indiqué dans le tableau suivant.
Nom des statistiques du codeur | Description |
---|---|
QP de bloc moyen par image | La moyenne de tous les QP de bloc dans la trame vidéo qui sont codés dans le flux binaire |
Type d'image | Tapez I ou P ou B |
Les développeurs peuvent récupérer des informations statistiques pour chaque image à l'aide de la classe de développement MediaFormat
.
Mises à jour du pilote de l'encodeur vidéo
Pour prendre en charge l'exportation des statistiques d'encodage vidéo, les fournisseurs de SoC doivent modifier le pilote de l'encodeur vidéo. Les clés suivantes sont ajoutées dans la base Codec 2.0 sous Android 13 :
KEY_VIDEO_QP_AVERAGE
décrit le QP moyen du bloc par image.Les règles suivantes s'appliquent à l'implémentation de la clé
KEY_VIDEO_QP_AVERAGE
:L'encodeur SoC doit arrondir la moyenne des QP du bloc à l'entier le plus proche avant d'émettre vers le Codec 2.0.
La valeur moyenne est calculée uniquement à partir d'un plan de luminance.
L'encodeur SoC doit renvoyer
INT_MAX
si tous les blocs de la trame actuelle sont en mode ignoré. Cette condition se produit lorsqu'aucun coefficient n'est codé et qu'aucune information QP significative n'est codée dans la trame.
KEY_PICTURE_TYPE
décrit le type d'image de la trame codée commePICTURE_TYPE_I
,PICTURE_TYPE_P
,PICTURE_TYPE_B
ouPICTURE_TYPE_UNKNOWN
.KEY_VIDEO_ENCODING_STATISTICS_LEVEL
décrit le niveau d'informations 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 le test VideoEncodingStatisticsTest
CTS pour valider que la partie QP moyenne des statistiques d'encodage vidéo fonctionne correctement : CTS exécute deux encodages de la même vidéo d'entrée, un avec un débit binaire plus élevé et un autre avec un débit binaire inférieur. CTS compare ensuite les deux valeurs QP moyennes exportées à partir des deux codages. Si le QP moyen du codage avec le débit binaire le plus faible est supérieur au QP moyen du codage avec le débit binaire le plus élevé, CTS réussit.
Pour valider la désactivation de la fonctionnalité d'exportation des statistiques d'encodage vidéo lorsqu'elle est activée, utilisez la clé VIDEO_ENCODING_STATISTICS_LEVEL_NONE
comme suit :
format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);