COMMENT DIFFUSER EFFICACEMENT UNE VIDÉO MULTICODEC

Photo de JESS R
JESS R

Au cours de la dernière décennie, la majorité des flux vidéo envoyés sur l'internet ont été codés à l'aide du codec vidéo ITU-T H.264 / MPEG-4 AVC. Développé au début des années 2000, ce codec est aujourd'hui largement pris en charge par un grand nombre d'appareils et de plateformes informatiques, avec un taux de pénétration remarquable de 97,93 %.

Image1

Cependant, en ce qui concerne la technologie, ce codec est assez ancien. Ces dernières années, deux nouveaux codecs ont été introduits : HEVC des groupes de normalisation ITU-T et MPEG , et AV1 de l'Alliance for Open Media. Tous deux revendiquent un gain d'au moins 50 % en termes d'efficacité de compression par rapport au H.264/AVC.

En théorie, ces gains devraient conduire à une réduction significative des coûts de la diffusion en continu. Toutefois, dans la pratique, ces nouveaux codecs ne peuvent atteindre que des sous-ensembles particuliers d'appareils ou de navigateurs web existants. Le HEVC, par exemple, n'aurait atteint que 18,73 %, principalement sur les appareils Apple et les appareils avec prise en charge matérielle du HEVC. La prise en charge de l'AV1 par les navigateurs web est plus élevée, mais il n'est pas pris en charge par les appareils Apple et la plupart des plateformes de décodeurs existantes.

Image2

Cette situation soulève une question : Compte tenu de la prise en charge fragmentée des nouveaux codecs par les différents appareils, comment concevoir un système de diffusion en continu qui atteigne tous les appareils avec la plus grande efficacité possible ?

Dans cet article de blog, nous tenterons de répondre à cette question en présentant le concept de diffusion en continu multicodec et en expliquant les éléments et technologies clés que nous avons conçus pour prendre en charge la plate-forme Brightcove Video Cloud.

DIFFUSION EN CONTINU À DÉBIT ADAPTATIF 101

Avant de commencer à parler de la diffusion en continu multicodec, examinons brièvement les grands principes de fonctionnement des systèmes de diffusion en continu à débit binaire adaptatif (ABR) de l'ère moderne. La figure ci-dessous présente un schéma conceptuel d'un tel système. Pour des raisons de simplicité, nous nous concentrerons sur le cas de la livraison de VOD.

Image8

Lorsqu'une ressource vidéo est préparée pour la diffusion en continu ABR, elle est généralement transcodée en plusieurs rendus (ou flux de variantes). Ces rendus ont généralement des débits binaires, des résolutions et d'autres paramètres de codecs et de présentation différents.

Une fois tous les rendus générés, ils sont placés sur le serveur d'origine. Avec l'ensemble des rendus, le serveur d'origine reçoit également un fichier manifeste spécial, décrivant les propriétés des flux encodés. Ces manifestes sont généralement présentés dans les formats HLS ou MPEG DASH. La diffusion ultérieure du contenu encodé vers les appareils des utilisateurs se fait via HTTP et en utilisant un réseau de diffusion de contenu (CDN), ce qui garantit la fiabilité et l'évolutivité du système de diffusion.

Pour lire le contenu vidéo, les appareils des utilisateurs utilisent un logiciel spécial, appelé client de diffusion en continu. Dans sa forme la plus simple, un client de diffusion en continu peut être un JavaScript exécuté par un navigateur web. Il peut également s'agir d'une application personnalisée ou d'un lecteur vidéo fourni par le système d'exploitation (OS). Mais quelle que soit l'implémentation, la plupart des clients de diffusion en continu comprennent une logique de sélection adaptative des flux/renditions pendant la lecture.

Par exemple, si le client constate que la bande passante observée est trop faible pour permettre la lecture en temps réel du flux actuel, il peut décider de passer à un flux à plus faible débit. Cela permet d'éviter la mise en mémoire tampon. Dans le cas contraire, si la bande passante est suffisante, le client peut choisir de passer à un débit plus élevé, ce qui signifie un flux de meilleure qualité et conduit à une meilleure qualité d'expérience. C'est cette logique qui rend la diffusion en continu adaptative. C'est également la raison pour laquelle les vidéos sont toujours transcodées en plusieurs flux (généralement 5 à 10).

Le système décrit dans le diagramme ci-dessus comporte deux composants supplémentaires : Le système d'analyse, qui collecte les statistiques de lecture des CDN et des clients de streaming, et le générateur d'échelle d'encodage ABR, qui définit le nombre et les propriétés des rendus à créer. Dans le système de nuage vidéo de Brightcove, ce bloc correspond à notre module d'encodage contextuel (CAE).

LES ÉCHELLES DE CODAGE ET LA QUALITÉ POUVANT ÊTRE OBTENUE PAR LE SYSTÈME DE DIFFUSION EN CONTINU

Examinons maintenant un exemple d'échelle de codage pouvant être utilisée pour la diffusion en continu. Cet exemple particulier a été créé par l'IAO de Brightcove pour le contenu vidéo de films d'action.

Capture d'écran 2021-03-23 à 8.37.41 AM

Comme on peut facilement le constater, l'échelle de codage définit cinq flux, permettant la diffusion de vidéos avec des résolutions allant de 216p à 1080p et utilisant environ 260 à 4200Kbps de bande passante. Tous les flux sont produits par le codec H.264/AVC. La dernière colonne de ce tableau énumère les scores de qualité visuelle perçue estimés pour la lecture de ces rendus sur l'écran d'un PC. Ces valeurs sont rapportées à l'aide de l'échelle MOS ( Mean Opinion Score ). Un score MOS de cinq signifie que la qualité est excellente, tandis qu'un score de un signifie que la qualité est mauvaise.

Nous traçons ensuite les points (débit, qualité) correspondant aux rendus, ainsi que la meilleure qualité réalisable par le système de diffusion en continu avec une largeur de bande de réseau variable. Il s'agit d'une fonction en escalier, représentée en bleu.

Image3

Dans la figure ci-dessus, nous incluons également un graphique de la fonction dite du modèle de taux de qualité [1-3], décrivant les meilleures valeurs de qualité possibles qui peuvent être obtenues par le codage du même contenu avec le même codeur. Cette fonction est représentée par une courbe rouge en pointillés.

Comme on peut facilement le comprendre, avec une conception adéquate de l'échelle, les points de rendu deviennent un sous-ensemble de points du modèle de taux de qualité, et la fonction progressive décrivant la qualité pouvant être atteinte par la diffusion en continu devient une approximation de ce modèle. Ce qui influence la qualité du système de diffusion en continu est le nombre de rendus dans l'échelle de codage, ainsi que le placement des rendus le long de l'axe de la bande passante. Plus la fonction en escalier qui en résulte est proche du modèle qualité-taux, meilleure est la qualité pouvant être fournie par le système de diffusion en continu.

Cela signifie que les profils/échelles de codage pour la diffusion en continu ABR doivent être conçus avec soin. C'est la raison pour laquelle la plupart des systèmes de diffusion en continu modernes utilisent des générateurs de profils spéciaux pour effectuer cette étape de manière dynamique, en tenant compte des propriétés du contenu, des réseaux et d'autres contextes pertinents.

Des détails supplémentaires sur les méthodes mathématiques qui peuvent être employées pour la construction de modèles de taux de qualité et la génération d'échelles de codage optimales peuvent être trouvés dans les références [1-5].

STREAMING MULTI-CODEC : GRANDS PRINCIPES

Maintenant que nous avons expliqué les concepts clés, nous pouvons nous intéresser à la diffusion en continu multicodec.

Pour être plus précis, prenons l'exemple d'une échelle de codage, générée à l'aide de deux codecs : H.264/AVC et HEVC. Là encore, l'IAO de Brightcove a été utilisé pour la produire.

Capture d'écran 2021-03-23 à 8.38.05 AM

Les graphiques des points de rendu, les modèles de taux de qualité et la qualité pouvant être obtenue par les clients de streaming décodant les flux H.264 et HEVC sont présentés dans la figure ci-dessous.

Image4

Comme on peut facilement l'observer, la fonction du modèle de taux de qualité pour HEVC est systématiquement meilleure que le modèle de taux de qualité pour H.264/AVC. De même, les rendus HEVC devraient également offrir de meilleurs compromis qualité-taux que les rendus encodés à l'aide de l'encodeur H.264/AVC.

Toutefois, étant donné qu'il n'y a généralement que quelques points de rendu et qu'ils peuvent être placés de manière éparse et entrelacée, cela peut créer des régions de débits binaires où les rendus H.264/AVC peuvent offrir une meilleure qualité que le rendu HEVC le plus proche d'un débit binaire inférieur ou égal. De telles régions dans la figure ci-dessus sont observées lorsque les fonctions de pas pour les clients H.264/AVC dépassent les mêmes fonctions pour les clients HEVC.

Qu'est-ce que cela signifie ? Cela signifie qu'avec une échelle à deux codecs le décodage des seuls flux codés HEVC n'aboutit pas automatiquement à la meilleure qualité possible ! Une qualité encore meilleure peut être obtenue par des clients qui commutent sélectivement et intelligemment entre les flux H.264/AVC et HEVC. Le graphique ci-dessous illustre la qualité pouvant être obtenue par de tels "clients à deux codecs".

Image5

Dans cet exemple, le client à deux codecs peut effectuer neuf étapes d'adaptation au lieu de cinq dans les échelles HEVC ou H.264 uniquement. Cela permet une meilleure utilisation de la bande passante disponible sur le réseau et la fourniture d'une meilleure qualité globale.

PRISE EN CHARGE DE LA FONCTIONNALITÉ MULTICODEC DANS LES CLIENTS DE DIFFUSION EN CONTINU EXISTANTS

Comme nous venons de le voir, la capacité du client de diffusion en continu non seulement à décoder, mais aussi à passer de manière intelligente et transparente entre les flux H.264/AVC et HEVC est extrêmement importante. Cela permet d'obtenir une meilleure qualité et de générer moins de flux/renditions, ce qui réduit les coûts de la diffusion en continu.

Cependant, tous les clients de streaming existants n'ont pas cette capacité. Les exemples les plus connus sont les lecteurs natifs des appareils Apple récents : iPhones, iPads, ordinateurs Mac, etc. Ils peuvent décoder les flux H.264/AVC et HEVC et passer de l'un à l'autre de manière transparente. Les versions récentes des navigateurs Chrome et Firefox prennent en charge la méthode dite "change Type", qui permet techniquement aux clients de streaming basés sur JavaScript de passer d'un codec à l'autre.

Les clients de diffusion en continu de nombreuses plateformes dotées de décodeurs matériels, comme les SmartTV, les décodeurs, etc. ne peuvent décoder que les flux H.264/AVC ou HEVC, et ne passeront pas à un autre codec au cours d'une session de diffusion en continu. Et naturellement, il existe de nombreux appareils anciens qui ne peuvent décoder que les flux codés en H.264/AVC.

Cet espace fragmenté de clients de diffusion en continu et leurs capacités doivent être pris en compte au stade de la génération de l'échelle de codage, en définissant correctement les manifestes HLS et DASH, et en concevant le système de diffusion pour la diffusion en continu multicodec. Dans la section suivante, nous examinerons brièvement la manière dont nous avons relevé tous ces défis dans la plate-forme de nuage vidéo de Brightcove.

PRISE EN CHARGE DE PLUSIEURS CODECS DANS LA PLATEFORME VIDEOCLOUD DE BRIGHTCOVE

Brightcove Video Cloud est une plate-forme vidéo en ligne de bout en bout qui comprend tous les éléments constitutifs du système de diffusion en continu ABR que nous avons examiné dans cet article de blog.

Par exemple, la génération d'échelles de codage dans ce système est réalisée à l'aide de la technologie CAE de Brightcove. Pour l'utilisateur/opérateur du système, cela se manifeste par la présence de plusieurs profils d'ingestion CAE préconfigurés permettant des déploiements de streaming H.264-, HEVC-, ainsi que des déploiements de codecs mixtes.

Capture d'écran 2021-03-23 à 8.38.40 AM

Lorsque le profil d'acquisition multiplateforme étendu HEVC (CAE) à codecs mixtes est sélectionné, le résultat sera une échelle à codecs mixtes, avec des flux H.264 et HEVC présents. Ce profil peut produire de trois à douze flux de sortie pour les deux codecs, couvrant une gamme de résolutions allant de 180p à 1080p et avec des débits binaires allant de 250Kbps à 4200Kbps. Le générateur de profils CAE définit tout le reste automatiquement, sur la base des caractéristiques du contenu et des statistiques de lecture observées pour le compte.

Dans Video Cloud, les manifestes et les segments médias sont produits conformément à une variété de normes et de profils de diffusion en continu (par exemple HLS v3, HLS v7, MPEG DASH, Smooth, etc.). Ils sont tous générés de manière dynamique, en fonction des préférences et des capacités des appareils de réception. En outre, certaines règles de filtrage(règles de diffusion) peuvent également être appliquées. Par exemple, si une demande de lecture provient d'un appareil ancien qui ne peut prendre en charge que le format H.264/AVC et HLS v3, il ne proposera qu'un manifeste HLS v3 avec des segments basés sur TS, et ils n'incluront que des flux codés en H.264/AVC.

En revanche, pour les appareils plus récents capables de décider des flux H.264/AVC et HEVC, le système de distribution peut produire un manifeste comprenant à la fois des flux codés H.264/AVC et HEVC. La déclaration de flux à codecs mixtes dans les manifestes se fait conformément aux lignes directrices de déploiement HLS et DASH-IF. Des exemples conceptuels de ces déclarations sont présentés ci-dessous.

Capture d'écran 2021-03-23 à 8.38.40 AM

Comme on l'a vu, dans HLS, les rendus de codecs mixtes peuvent être inclus dans l'ordre naturel dans la liste de lecture principale. Dans MPEG DASH, cependant, ils doivent être listés séparément, dans différents ensembles d'adaptation, triés en fonction de chaque codec. Pour permettre la commutation entre les rendus de codecs mixtes dans DASH, un descripteur SupplementalProperty spécial est inclus dans chaque ensemble d'adaptation.

Pour aider les clients à prendre les bonnes décisions lorsqu'ils passent d'un flux encodé à un autre à l'aide de différents codecs, il est possible d'utiliser des attributs spéciaux de qualité relative. Dans HLS, ils sont appelés attributs SCORE, les valeurs les plus élevées indiquant une meilleure qualité. Dans MPEG DASH, ils sont appelés attributs "Quality Ranking", mais avec des valeurs plus faibles indiquant une meilleure qualité. Cependant, ces deux attributs sont facultatifs et ne sont pris en charge que par quelques appareils clients existants. Pour s'assurer que tous les périphériques/clients ne se trompent pas en passant d'un flux multicodec à l'autre, Brightcove Video Cloud propose une option de filtrage des manifestes qui ne laisse dans les manifestes finaux visibles par les clients que les rendus dont les valeurs de qualité augmentent progressivement.

La diffusion finale des flux multicodecs dans Video Cloud est gérée par une configuration CDN à deux niveaux, garantissant une grande efficacité (faible débit d'origine) et une grande échelle et fiabilité de diffusion des flux. Pour plus de détails sur les différentes configurations et techniques d'optimisation employées par le nuage vidéo de Brightcove, consultez notre récent article [3] ou la documentation produit de Brightcove.

CONCLUSIONS

Grâce à la combinaison de toutes les fonctionnalités et de tous les outils décrits pour la prise en charge de la diffusion en continu multicodec, l'activation et le déploiement avec Brightcove Video Cloud peuvent se faire en quelques minutes.

Si vous diffusez un volume important de flux vers des appareils Apple ou d'autres mobiles et décodeurs compatibles HEVC, l'utilisation du HEVC et de la diffusion en continu multi-codec peut permettre de réduire considérablement le trafic et les coûts du réseau CDN, sans compromettre la portée des appareils existants.

Les outils que nous avons conçus garantissent que ces déploiements se feront avec des coûts de déploiement minimaux et en assurant une qualité et une fiabilité élevées pour atteindre tous les appareils.

RÉFÉRENCES

[1] Y. Reznik, K. Lillevold, A. Jagannath, J. Greer, et J. Corley, "Optimal design of encoding profiles for ABR streaming," Proc. Packet Video Workshop, Amsterdam, Pays-Bas, 12 juin 2018. [2] Y. Reznik, X. Li, K. Lillevold, A. Jagannath et J. Greer, "Optimal Multi-Codec Adaptive Bitrate Streaming", Proc. IEEE Int. Conf. Multimedia and Expo (ICME), Shanghai, Chine, 8-12 juillet 2019. [3] Y. Reznik, X. Li, K. Lillevold, R. Peck, T. Shutt et P. Howard, "Optimizing Mass-Scale Multiscreen Video Delivery", SMPTE Motion Imaging Journal, vol. 129, no. 3, pp. 26 - 38, 2020. [4] Y. Reznik, "Average Performance of Adaptive Streaming", Proc. Data Compression Conference (DCC'21), Snowbird, UT, mars 2021. [5] Y. Reznik, "Efficient multi-codec streaming" - exposé à la retraite technique de l'APH, 2021.

Partager

Brightcove a aidé un fabricant d'équipements de diagnostic à réduire le temps et les dépenses consacrés à la salle de classe tout en améliorant la réussite ...
Brightcove a aidé la place de marché automobile la plus reconnue à gérer son énorme vidéothèque et à la rentabiliser...
Pour préserver l'intégrité de leur marque, les enseignes de distribution ont besoin de lecteurs vidéo personnalisables qui leur permettent d'ajuster les couleurs, la police...

PRÊT À COMMENCER ?

Contactez-nous pour savoir comment nous pouvons améliorer vos efforts de marketing vidéo et vous aider à générer les résultats et le retour sur investissement dont vous avez besoin.