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 la scalabilité temporelle, la scalabilité spatiale ou les deux si la spécification de codage pour un type et un profil de codec donnés l'exige.
Format vidéo brut

Le codec doit être capable de traiter des résolutions impaires (par exemple, lorsque la largeur ou la hauteur du frame n'est pas un multiple de 2, par exemple 133 × 141). Pour les formats de chrominance sous-échantillonnés, le nombre d'échantillons de chrominance par dimension doit être arrondi à la hausse lorsqu'il est dérivé du nombre d'échantillons de luma.

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

Exigences opérationnelles

Cette section spécifie les exigences concernant les différentes conditions dans lesquelles le codec vidéo doit 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 concernant les 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)
Durée maximale de traitement des images clés, en secondes ≤ 2 / max(30, encode_target_frame_rate_fps)

Le temps de traitement du frame correspond à la différence de temps entre deux événements: 1) le codec envoie 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 contenant au moins 10 images. Le temps de traitement des images maximal est la valeur la plus élevée parmi toutes les valeurs de temps de traitement des images individuelles.

Le débit est calculé en divisant le nombre de frames traités, y compris ceux abandonnés, par le delta de temps entre les deux événements: 1) le codec envoie le dernier frame et 2) le codec envoie le premier frame.

Scénarios de test

Voici quelques cas de test que vous pouvez utiliser:

Tests
Débit de décodage Décodez jusqu'à trois flux 2880 × 1880 × 30 simultanément et vérifiez que les décodeurs ne enfreignent pas les exigences de performances.
Conformité du décodeur Décoder 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écodage de la 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 la vidéo avec plusieurs couches spatiales (2 et 3). La sortie du décodeur de test doit correspondre à la sortie du décodeur de référence.