Brevet FR3124674A1 — publié le 20221230

Un procédé de traitement d’un flux vidéo comprenant une séquence d’images est proposé, qui comprend, à une unité de gestion de flux vidéo : démultiplexer le flux vidéo pour générer un flux vidéo élémentaire et des métadonnées relatives au flux vidéo ; générer des données de sous-titrage d’une image du flux vidéo élémentaire sur la base des métadonnées ; insérer des données d’horodatage de l’image dans les données de sous-titrage ; et multiplexer le flux vidéo élémentaire et les données de sous-titrage pour générer un flux vidéo enrichi. Figure de l’abrégé : Figure 2 PROCEDE DE TRAITEMENT DE FLUX VIDEO ET EQUIPEMENT POUR LA MISE EN ŒUVRE DU PROCEDE La présente divulgation se rapporte à un procédé de traitement de flux vidéo et un dispositif pour la mise en œuvre de ce procédé. Elle s’applique notamment à la mesure de latence dans une chaine de distribution d’un flux vidéo. Les données vidéo font en général l’objet d’un codage source visant à les compresser afin de limiter les ressources nécessaires à leur transmission et/ou à leur stockage. Il existe de nombreux standards de codage, tels que H.264/AVC, H.265/HEVC et MPEG-2, qui peuvent être utilisés à cette fin. On considère un flux vidéo comprenant un ensemble d’images. Dans les schémas de codage classique, les images du flux vidéo à encoder sont typiquement considérées selon une séquence d’encodage, et chacune est divisée en ensembles de pixels eux aussi traités séquentiellement. La distribution de contenus multimédia, tels que des flux vidéo, utilise typiquement une tête de réseau de distribution vidéo comprenant une unité d’encodage vidéo qui reçoit en entrée des contenus à encoder et délivre à une unité de mise en forme (parfois dénommée en anglais « packager ») des flux encodés dits « flux élémentaires ». Un contenu reçu en entrée est encodé selon une pluralité de profils d’encodage (un profil étant par exemple défini avec des paramètres de codec, de résolution et de débit). Les données produites par le packager sur la base des flux élémentaires sont typiquement fournies par le packager à un serveur de contenus, puis stockées sur des réseaux de distribution de contenus, appelés « CDN » (de l’anglais « Content Delivery Network »), fournissant des capacités de cache qui permettent d'améliorer la qualité des services, et de minimiser les temps d'accès et la latence pour la visualisation de contenus par un ou plusieurs terminaux de lecture (aussi couramment appelés « lecteurs vidéo »). Pour mesurer la latence dans une chaîne de diffusion audiovisuelle dans laquelle un flux vidéo est distribuée, une possibilité consiste à inscrire (le terme anglais « burn » est parfois utilisé pour désigner cette inscription ou ce marquage) la date courante dans le flux vidéo avant encodage, puis de comparer ce marqueur temporel avec la date au moment de l’affichage par un lecteur vidéo. Cependant, ce procédé requiert de modifier les images du flux vidéo en incrustant un élément supplémentaire (pour une mesure de latence une date), de sorte que certaines au moins des images du flux vidéo sur lequel la mesure est effectuée sont modifiées irrémédiablement. Ce procédé consistant à inscrire des informations utiles pour la mesure souhaitée dans le flux vidéo présente plusieurs inconvénients : d’une part, le flux vidéo est dégradé, ce qui empêche d’effectuer toute mesure dans un contexte de mise en production et limite les autres mesures qui seraient autrement possibles sur le flux, comme par exemple une mesure de comparaison de qualité entre le flux vidéo source et le flux vidéo en sortie de la chaîne de diffusion. D’autre part, il est uniquement possible de marquer une image non compressée, ce qui exclut toute mesure dans un élément de la chaine de diffusion ne traitant pas le flux décodé, tel que par exemple le packager, et réduit ainsi le nombre d’éléments de la chaine à partir desquels une mesure de latence peut être effectuée. Il existe ainsi un besoin pour un procédé de traitement de flux vidéo permettant d’éviter ou d’atténuer les inconvénients précités. Résumé La présente divulgation vient améliorer la situation. Selon un premier aspect, il est proposé un procédé de traitement d’un flux vidéo comprenant une séquence d’images, le procédé pouvant être mis en œuvre par une unité de gestion de flux vidéo, et comprenant : démultiplexer le flux vidéo pour générer un flux vidéo élémentaire et des métadonnées relatives au flux vidéo ; générer des données de sous-titrage d’une image du flux vidéo élémentaire sur la base des métadonnées ; insérer des données d’horodatage de l’image dans les données de sous-titrage ; et multiplexer le flux vidéo élémentaire et les données de sous-titrage pour générer un flux vidéo enrichi. Le procédé proposé selon le premier aspect pourra avantageusement être mis en œuvre au sein de tout dispositif, comme par exemple une unité de gestion de flux vidéo, configuré pour être mise en œuvre au sein d’une chaîne de diffusion audiovisuelle, par exemple selon un schéma de transport de flux vidéo de type MPEG2-TS (de l’anglais « Moving Picture Expert Group 2 - Transport Stream »), « HLS » (de l’anglais « HTTP Live Streaming », l’acronyme « HTTP » désignant le protocole « HyperText Transfer Protocol »), « MSS » (de l’anglais « Microsoft Smooth Streaming »), « HDS » (de l’anglais « HTTP Dynamic Streaming »), « MPEG-DASH » (de l’anglais « MPEG Dynamic Adaptive Streaming over HTTP »), ou « HAS » (de l’anglais « HTTP Adaptive Streaming »), ou en utilisant une technologie de diffusion télévisuelle de contenus multimédia sur un réseau de diffusion de télévision, par exemple selon un schéma de type « DVB » (de l’anglais « Digital Video Broadcast »), ou de type « ATSC » (de l’anglais « Advanced Television Systems Committee »), tel que, de manière non limitative, un encodeur vidéo, par exemple conforme à la spécification AV1 actuelle ou à ses évolutions, une unité de type mise en forme (« packager »), tout ordinateur, serveur, équipement de tête de réseau de diffusion audiovisuelle, équipement de réseau de diffusion audiovisuelle, etc. En outre, le procédé proposé selon le premier aspect pourra avantageusement être mis en œuvre dans tout dispositif configuré pour générer des données de sous-titrage et/ou des pistes de sous-titre, selon tout format défini ou normalisé, par exemple conforme à la spécification TTML (de l’anglais « Timed Text Markup Language »), DXFP (de l’anglais « Distribution Format Exchange Profile »), SMPTE-TT (de l’anglais « Society of Motion Picture and Television Engineers Timed Text »), EBU-TT (de l’anglais « European Broadcasting Union Timed Text »), IMSC1 (de l’anglais « Internet Media Subtitles and Captions », IMSC1.1, ou IMSC1.2, actuelle ou à ses évolutions. Selon un deuxième aspect, il est proposé un procédé de traitement d’un flux vidéo comprenant une séquence d’images, comprenant, à un dispositif de traitement de flux vidéo dans un système de traitement de flux vidéo, le dispositif de traitement de flux vidéo comprenant un capteur vidéo, le procédé proposé comprenant : effectuer une capture vidéo de données de sous-titrage d’une image du flux vidéo affichées sur l’écran d’affichage d’un lecteur vidéo du système de traitement vidéo lors de la lecture par le lecteur vidéo du flux vidéo en affichant sur l’écran d’affichage l’image et les données de sous-titrage de l’image, les données de sous-titrage comprenant des données d’horodatage de l’image du flux vidéo ; déterminer des données d’horodatage d’affichage de l’image et les données d’horodatage de l’image à partir des données de sous-titrage capturées sur l’écran d’affichage ; et déterminer une mesure de latence sur la base des données d’horodatage de l’image et des données d’horodatage d’affichage de l’image. Le procédé proposé permet avantageusement de déterminer une mesure de latence sans dégrader le flux vidéo utilisé pour sa mise en œuvre. En outre, le procédé proposé permet la mise en œuvre d’une mesure de latence automatisée. De plus, le procédé proposé selon le premier aspect peut être mis en œuvre dans un élément de chaine de diffusion traitant des flux compressés, de sorte qu’il permet des mesures de latence à différents niveaux de la chaine de diffusion. Le procédé proposé convient particulièrement bien, bien que de façon non exclusive, pour la mesure de latence et/ou pour la détection et la mesure de dérive de latence dans une chaîne de diffusion audiovisuelle, entre une unité de gestion de flux vidéo de la chaîne et un lecteur vidéo en bout de chaîne. Le procédé proposé n’est pas limité à des mises en œuvre au sein d’une unité de gestion de flux vidéo, et peut être mis en œuvre dans toute unité de traitement de flux vidéo configurée pour la mise en œuvre d’un procédé proposé selon le premier aspect (génération des données de sous-titrage) et/ou selon le deuxième aspect (capture et traitement des données de sous-titrage). L’unité de traitement de flux vidéo pourra être mise en œuvre sous forme logicielle, auquel cas elle prendra la forme d’un programme exécutable par un processeur, sous forme matérielle (ou « hardware »), comme un circuit intégré spécifique application (ASIC), un système sur puce (SOC), ou sous forme d'une combinaison d'éléments matériels et logiciels, auquel cas elle pourra comprendre une interface d’entrée, une mémoire couplées de manière opérationnelle avec au moins un processeur configuré pour la mise en œuvre du procédé proposé. En fonction du mode de réalisation choisi, l’unité de traitement de flux vidéo pourra être mise en œuvre, en tout ou partie, au sein d’un encodeur vidéo, d’un packager, d’un décodeur vidéo, d’un capteur vidéo et/ou de tout ordinateur configuré pour mettre en œuvre l’unité de traitement de flux vidéo. Les caractéristiques exposées dans les paragraphes suivants peuvent, optionnellement, être mises en œuvre. Elles peuvent être mises en œuvre indépendamment les unes des autres ou en combinaison les unes avec les autres. Dans un ou plusieurs modes de réalisation du procédé proposé selon le premier aspect, le procédé proposé peut en outre comprendre : générer une piste de sous-titres dédiée comprenant les données de sous-titrage, et multiplexer le flux vidéo élémentaire et la piste de sous-titres dédiée pour générer le flux vidéo enrichi. Dans un ou plusieurs modes de réalisation, la piste de sous-titres dédiée peut être associée à un code prédéfini utilisable sur un lecteur vidéo pour l’affichage des données de la piste sur l’écran du lecteur vidéo. Dans un ou plusieurs modes de réalisation du procédé proposé selon le premier aspect, les données de sous-titrage peuvent être respectivement générées pour chaque image d’une pluralité d’images du flux vidéo élémentaire sur la base des métadonnées, et le procédé proposé comprendre en outre : insérer, pour chaque image de la pluralité d’images, des données d’horodatage de l’image de la pluralité d’images dans les données de sous-titrage générées pour l’image de la pluralité d’images. Dans un ou plusieurs modes de réalisation du procédé proposé selon le deuxième aspect, le procédé proposé peut comprendre en outre : sélectionner, parmi un ensemble de modes de fonctionnement du lecteur vidéo comprenant un mode test et un mode production, le mode test. Dans le fonctionnement en mode test, la piste de sous-titres comprenant les données de sous-titrage des images du flux vidéo sera sélectionnable par un utilisateur du lecteur vidéo pour l’affichage des données de sous-titrage, et dans le fonctionnement en mode production, la piste de sous-titres comprenant les données de sous-titrage des images du flux vidéo ne sera pas sélectionnable par un utilisateur du lecteur vidéo pour l’affichage des données de sous-titrage. Dans un ou plusieurs modes de réalisation du procédé proposé selon le deuxième aspect, la capture vidéo peut comprendre une capture vidéo, lors de la lecture du flux vidéo par le lecteur vidéo, de données de sous-titrage respectives d’une pluralité d’images du flux vidéo affichées sur l’écran d’affichage du lecteur vidéo lors de la lecture par le lecteur vidéo du flux vidéo en affichant sur l’écran d’affichage des images de la pluralité d’images et les données de sous-titrage respectives des images, les données de sous-titrage respectives comprenant des données d’horodatage respectives des images de la pluralité d’images, et le procédé proposé peut comprendre en outre : déterminer des données d’horodatage d’affichage respectives des images et les données d’horodatage respectives des images à partir des données de sous-titrage respectives capturées sur l’écran d’affichage ; déterminer une pluralité de mesures de latence respectives sur la base des données d’horodatage respectives capturées pour la pluralité d’images et des données d’horodatage d’affichage respectives des images, et déterminer une mesure de dérive de latence sur la base de la pluralité de mesures de latence. Dans un ou plusieurs modes de réalisation, les métadonnées peuvent comprendre des informations de rythme d’affichage de l’image. Dans un ou plusieurs modes de réalisation, les données d’horodatage peuvent comprendre des données au format texte. Dans un ou plusieurs modes de réalisation, les données d’horodatage peuvent comprendre un code-barres, par exemple un code à réponse rapide. Dans un ou plusieurs modes de réalisation, les données d’horodatage peuvent représenter une date du démultiplexage du flux vidéo. Selon un autre aspect, un dispositif de traitement de flux vidéo est proposé, qui comprend : un processeur et une mémoire couplée de manière opérationnelle au processeur, dans lequel le processeur est configuré pour la mise en œuvre d’un mode de réalisation du procédé proposé selon le premier aspect. Selon un autre aspect, un dispositif de traitement de flux vidéo est proposé, qui comprend un dispositif de capture vidéo, comprenant un processeur et une mémoire couplée de manière opérationnelle au processeur, dans lequel le processeur est configuré pour la mise en œuvre d’un mode de réalisation du procédé proposé selon le deuxième aspect. Selon un autre aspect, un programme d’ordinateur, chargeable dans une mémoire associée à un processeur, et comprenant des portions de code pour la mise en œuvre d’un ou de plusieurs modes de réalisation d’un procédé proposé lors de l’exécution dudit programme par le processeur, est proposé. Un autre aspect concerne un ensemble de données représentant, par exemple par voie de compression ou d’encodage, un programme d’ordinateur tel que proposé. Selon un autre aspect, un support de stockage non-transitoire d’un programme exécutable par ordinateur est proposé, qui comprend un ensemble de données représentant un ou plusieurs programmes, lesdits un ou plusieurs programmes comprenant des instructions pour, lors de l’exécution desdits un ou plusieurs programmes par un ordinateur comprenant une unité de traitement couplée de manière opérationnelle à des moyens mémoire et à un module d’interface entrées/sorties, conduire l’ordinateur à mettre en œuvre un ou plusieurs modes de réalisation d’un procédé proposé. Selon un autre aspect, il est proposé un programme informatique comportant des instructions pour la mise en œuvre de tout ou partie d’un procédé tel que proposé dans les présentes lorsque ce programme est exécuté par un processeur. Selon un autre aspect, il est proposé un support d’enregistrement non transitoire, lisible par un ordinateur, sur lequel est enregistré un tel programme. D’autres caractéristiques, détails et avantages apparaîtront à la lecture de la description ci-après d'exemples de réalisation non limitatifs, en référence aux dessins annexés, dans lesquels : Fig. 1 montre un schéma de système de distribution de contenus multimédia pour la mise en œuvre du procédé proposé selon un ou plusieurs modes de réalisation. Fig. 2 montre un diagramme illustrant un exemple de mise en œuvre du procédé proposé selon un ou plusieurs modes de réalisation. Fig. 3 montre un schéma d’unité de traitement de flux vidéo et de lecteur vidéo illustrant un exemple de mise en œuvre du procédé proposé selon un ou plusieurs modes de réalisation. Fig. 4a montre un schéma illustrant un exemple d’architecture d’un dispositif pour la mise en œuvre d’un procédé proposé selon un ou plusieurs modes de réalisation. Fig. 4b montre un schéma illustrant un exemple d’architecture d’un dispositif pour la mise en œuvre d’un procédé proposé selon un ou plusieurs modes de réalisation. En fonction du mode de réalisation choisi, certains actes, actions, évènements ou fonctions de chacune des méthodes décrites dans le présent document peuvent être effectués ou se produire selon un ordre différent de celui dans lequel ils ont été décrits, ou peuvent être ajoutés, fusionnés ou bien ne pas être effectués ou ne pas se produire, selon le cas. En outre, dans certains modes de réalisation, certains actes, actions ou évènements sont effectués ou se produisent concurremment et non pas successivement. Bien que décrits à travers un certain nombre d’exemples de réalisation détaillés, le procédé de pilotage proposé et le dispositif pour la mise en œuvre d’un mode de réalisation du procédé comprennent différentes variantes, modifications et perfectionnements qui apparaîtront de façon évidente à l’homme de l’art, étant entendu que ces différentes variantes, modifications et perfectionnements font partie de la portée de la présente divulgation. De plus, différents aspects et caractéristiques décrits ci-dessus peuvent être mis en œuvre ensemble, ou séparément, ou bien substitués les uns aux autres, et l’ensemble des différentes combinaisons et sous-combinaisons des aspects et caractéristiques font partie de la portée de la présente divulgation. En outre, il se peut que certains systèmes et équipements décrits ci-dessus n’incorporent pas la totalité des modules et fonctions décrits pour les modes de réalisation préférés. Procédé de traitement d’un flux vidéo comprenant une séquence d’images, mis en œuvre par une unité de gestion de flux vidéo, et comprenant : démultiplexer le flux vidéo pour générer un flux vidéo élémentaire et des métadonnées relatives au flux vidéo ; générer des données de sous-titrage d’une image du flux vidéo élémentaire sur la base des métadonnées ; insérer des données d’horodatage de l’image dans les données de sous-titrage ; et multiplexer le flux vidéo élémentaire et les données de sous-titrage pour générer un flux vidéo enrichi. Procédé selon l’une quelconque des revendications précédentes, comprenant en outre : générer une piste de sous-titres dédiée comprenant les données de sous-titrage, et multiplexer le flux vidéo élémentaire et la piste de sous-titres dédiée pour générer le flux vidéo enrichi. Procédé selon la revendication 2, comprenant en outre : associer la piste de sous-titres dédiée à un code prédéfini utilisable sur un lecteur vidéo pour l’affichage des données de la piste sur l’écran du lecteur vidéo. Procédé selon l’une quelconque des revendications précédentes, dans lequel les données de sous-titrage sont respectivement générées pour chaque image d’une pluralité d’images du flux vidéo élémentaire sur la base des métadonnées, le procédé comprenant en outre : insérer, pour chaque image de la pluralité d’images, des données d’horodatage de l’image de la pluralité d’images dans les données de sous-titrage générées pour l’image de la pluralité d’images. Procédé de traitement d’un flux vidéo comprenant une séquence d’images, ledit procédé mis en œuvre par un dispositif de traitement de flux vidéo dans un système de traitement de flux vidéo, le dispositif de traitement de flux vidéo comprenant un capteur vidéo, et comprenant : effectuer une capture vidéo de données de sous-titrage d’une image du flux vidéo affichées sur l’écran d’affichage d’un lecteur vidéo du système de traitement vidéo lors de la lecture par le lecteur vidéo du flux vidéo en affichant sur l’écran d’affichage l’image et les données de sous-titrage de l’image, les données de sous-titrage comprenant des données d’horodatage de l’image du flux vidéo ; déterminer des données d’horodatage d’affichage de l’image et les données d’horodatage de l’image à partir des données de sous-titrage capturées sur l’écran d’affichage ; et déterminer une mesure de latence sur la base des données d’horodatage de l’image et des données d’horodatage d’affichage de l’image. Procédé selon la revendication 5, comprenant en outre : sélectionner, parmi un ensemble de modes de fonctionnement du lecteur vidéo comprenant un mode test et un mode production, le mode test, dans lequel, dans le fonctionnement en mode test, la piste de sous-titres comprenant les données de sous-titrage des images du flux vidéo est sélectionnable par un utilisateur du lecteur vidéo pour l’affichage des données de sous-titrage, et dans lequel, dans le fonctionnement en mode production, la piste de sous-titres comprenant les données de sous-titrage des images du flux vidéo n’est pas sélectionnable par un utilisateur du lecteur vidéo pour l’affichage des données de sous-titrage. Procédé selon la revendication 5, dans lequel la capture vidéo comprend une capture vidéo, lors de la lecture du flux vidéo par le lecteur vidéo, de données de sous-titrage respectives d’une pluralité d’images du flux vidéo affichées sur l’écran d’affichage du lecteur vidéo lors de la lecture par le lecteur vidéo du flux vidéo en affichant sur l’écran d’affichage des images de la pluralité d’images et les données de sous-titrage respectives des images, les données de sous-titrage respectives comprenant des données d’horodatage respectives des images de la pluralité d’images, le procédé comprenant en outre : déterminer des données d’horodatage d’affichage respectives des images et les données d’horodatage respectives des images à partir des données de sous-titrage respectives capturées sur l’écran d’affichage ; déterminer une pluralité de mesures de latence respectives sur la base des données d’horodatage respectives capturées pour la pluralité d’images et des données d’horodatage d’affichage respectives des images, et déterminer une mesure de dérive de latence sur la base de la pluralité de mesures de latence. Procédé selon l’une quelconque des revendications 1 à 4, dans lequel les métadonnées comprennent des informations de rythme d’affichage de l’image. Procédé selon l’une quelconque des revendications précédentes, dans lequel les données d’horodatage comprennent des données au format texte. Procédé selon l’une quelconque des revendications précédentes, dans lequel les données d’horodatage comprennent un code-barres. Procédé selon la revendication 10, dans lequel le code-barres est un code à réponse rapide. Procédé selon l’une quelconque des revendications précédentes, dans lequel les données d’horodatage représentent une date du démultiplexage du flux vidéo. Dispositif de traitement de flux vidéo, comprenant un processeur et une mémoire couplée de manière opérationnelle au processeur, dans lequel le processeur est configuré pour la mise en œuvre d’un procédé selon l’une quelconque des revendications 1 à 4. Dispositif de traitement de flux vidéo comprenant un dispositif de capture vidéo, un processeur et une mémoire couplée de manière opérationnelle au processeur, dans lequel le processeur est configuré pour la mise en œuvre d’un procédé selon l’une quelconque des revendications 5 à 12. Programme d’ordinateur, chargeable dans une mémoire associée à un processeur, et comprenant des portions de code pour la mise en œuvre des étapes d’un procédé selon l’une quelconque des revendications 1 à 11 lors de l’exécution dudit programme par le processeur.