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

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

Exigences fonctionnelles

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

Fonctionnalité Exigence
Profil AV1 VP9 VP8
Main Profile 0 N/A
Évolutivité Le décodeur doit prendre en charge l'évolutivité temporelle, l'évolutivité spatiale ou les deux si la spécification de codage l'exige pour un type et un profil de codec donnés.
Format vidéo brut

Le codec doit être capable de traiter des résolutions impaires (par exemple, lorsque la largeur ou la hauteur de la frame ne sont pas des multiples de 2, comme 133 × 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.

Le recadrage, le remplissage ou la mise à l'échelle ne sont pas autorisés. La résolution de la frame de sortie doit correspondre à celle de la frame d'entrée.

Conditions de fonctionnement

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, pixels ≤ 128 × 128
Résolution maximale, pixels ≥ 2880 × 1800
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 ≥ 5000
Nombre maximal d'instances de décodeur ≥ 3
Débit de décodage total maximal, pixels par seconde ≥ 3 × 2880 × 1880 × 30

Exigences liées à la compétence Performances

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

Paramètre Exigence
Temps de traitement maximal entre les frames, secondes 1 / max(30, encode_target_frame_rate_fps)
Temps de traitement maximal des frames clés, 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 la frame et 2) le codec reçoit la frame. Le temps de traitement moyen des frames est calculé sur une fenêtre glissante d'une durée d'au moins 10 secondes contenant au moins 10 frames. Le temps de traitement maximal des frames est la valeur la plus élevée parmi toutes les valeurs de temps de traitement des frames individuelles.

Le débit est calculé comme le nombre de frames traitées, y compris celles supprimées, divisé par le delta de temps entre les deux événements : 1) le codec fournit la dernière frame et 2) le codec fournit la première frame.

Scénarios de test

Voici des scénarios de test que vous pouvez utiliser :

Tests
Débit de décodage Décodez simultanément jusqu'à trois flux 2 880 × 1 880 × 30 et vérifiez que les décodeurs ne contreviennent pas aux exigences de performances.
Conformité du décodeur Décodez un ensemble de flux binaires 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 une vidéo avec plusieurs couches temporelles (2 et 3). La sortie du décodeur de test doit correspondre à celle du décodeur de référence.
Évolutivité spatiale Décodez une vidéo avec plusieurs couches spatiales (2 et 3). La sortie du décodeur de test doit correspondre à celle du décodeur de référence.