Exigences concernant les codecs vidéo pour l'API Meet Media

Cette page présente les exigences de base concernant les codecs vidéo du client de l'API Google Meet Media pour garantir une bonne expérience utilisateur.

Exigences fonctionnelles

Cette section spécifie les exigences concernant les types et les fonctionnalités de codecs.

Fonctionnalité Exigence
Profil AV1 VP9 VP8
Main Profile 0 N/A
Évolutivité Le décodeur doit être compatible avec l'évolutivité temporelle, l'évolutivité spatiale ou les deux, si cela est requis par la spécification de codage pour un type et un profil de codec donnés.
Format vidéo brut

Le codec doit être capable de traiter les résolutions impaires (par exemple, lorsque la largeur ou la hauteur de la frame ne sont pas des multiples de 2, comme 133 x 141). Pour les formats de sous-échantillonnage de la chrominance, le nombre d'échantillons de chrominance par dimension doit être arrondi à l'entier supérieur lorsqu'il est dérivé du nombre d'échantillons de luminance.

Il n'est pas autorisé de recadrer, de mettre en forme ou de redimensionner l'image. La résolution du frame de sortie doit correspondre à celle du frame d'entrée.

Exigences opérationnelles

Cette section spécifie les exigences pour diverses conditions dans lesquelles le codec vidéo est censé fonctionner. Le non-respect de ces exigences peut limiter l'utilisation du codec à un sous-ensemble de scénarios, mais ne l'empêche pas nécessairement d'être utilisé. Par exemple, si le nombre maximal d'instances de codec est inférieur à celui requis, le codec peut toujours être utilisé avec des codecs d'autres types ou implémentations.

Paramètre Exigence
Résolution minimale (en pixels) ≤ 128 x 128
Résolution maximale (en pixels) ≥ 2 880 x 1 800
Fréquence d'images minimale (FPS) ≤ 1
Fréquence d'images maximale (FPS) ≥ 30
Débit minimal (kbit/s) ≤ 30
Débit maximal (kbit/s) ≥ 5 000
Nombre maximal d'instances de décodeur ≥ 3
Débit de décodage total maximal, en pixels par seconde ≥ 3 × 2 880 × 1 880 × 30

Exigences liées à la compétence Performances

Cette section spécifie les exigences relatives aux performances du codec. Le non-respect de ces exigences peut avoir un impact important sur l'expérience utilisateur et bloquera presque certainement l'utilisation du codec.

Paramètre Exigence
Temps de traitement maximal entre les frames, en secondes ≤ 1 / max(30, encode_target_frame_rate_fps)
Temps de traitement maximal des images clés, en secondes ≤ 2 / max(30, encode_target_frame_rate_fps)

Le temps de traitement des frames correspond à la différence de temps entre deux événements : 1) le codec fournit le frame et 2) le codec reçoit le frame. Le temps de traitement moyen des images est calculé sur une fenêtre glissante d'au moins 10 secondes et contenant au moins 10 images. Le temps de traitement maximal des frames correspond à la valeur la plus élevée parmi tous les temps de traitement des frames individuels.

Le débit est calculé en divisant le nombre d'images traitées, y compris celles supprimées, par le delta temporel entre les deux événements suivants : 1) le codec fournit la dernière image et 2) le codec fournit la première image.

Scénarios de test

Voici des cas de test que vous pouvez utiliser :

Tests
Débit de décodage Décodez jusqu'à trois flux 2880 x 1880 x 30 simultanément et vérifiez que les décodeurs ne violent pas les exigences de performances.
Conformité du décodeur Décodez un ensemble de flux de bits pré-encodés. La sortie du décodeur de test doit correspondre à celle d'un décodeur de référence (libvpx pour VP8 et VP9, libaom pour AV1).
Évolutivité temporelle Décodez des vidéos avec plusieurs couches temporelles (2 et 3). Le résultat du décodeur de test doit correspondre à celui du décodeur de référence.
Évolutivité spatiale Décodez des vidéos avec plusieurs couches spatiales (2 et 3). Le résultat du décodeur de test doit correspondre à celui du décodeur de référence.