Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MANAGEMENT OF ADAPTIVE PROGRESSIVE DOWNLOAD OF A DIGITAL CONTENT WITHIN A RESTORATION TERMINAL OF A LOCAL COMMUNICATION NETWORK
Document Type and Number:
WIPO Patent Application WO/2019/220034
Kind Code:
A1
Abstract:
The invention relates to a method for managing the adaptive progressive download (HAS) of a digital content within a restoration terminal (30) of a local communication network, comprising a step of obtaining (310) a description file (7) for the digital content comprising a list of temporal segments (C1i@Nj) of said content, each associated with several encoding bitrates (Nj) for said content. According to the invention, such a method comprises: - a determination of an integer N≥2 of client modules (HAS-1-HAS-3) to be activated within said restoration terminal (30) in order to download said content; - a transmission (311) of a command to download at least one of said temporal segments with one of said encoding bitrates from said description file, to each of said N client modules to be activated; - N parallel downloads (312), by each of said N client modules, of said temporal segments with said encoding bitrates, in accordance with said transmitted command.

Inventors:
FONTAINE FABRICE (FR)
MARCHAND HERVÉ (FR)
Application Number:
PCT/FR2019/051030
Publication Date:
November 21, 2019
Filing Date:
May 06, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ORANGE (FR)
International Classes:
H04N21/436; H04N21/4402; H04N21/442; H04N21/61; H04N21/845
Foreign References:
US20150207743A12015-07-23
US20140281000A12014-09-18
Other References:
SUNAND TULLIMAS ET AL: "Multimedia streaming using multiple TCP connections", ACM TRANSACTIONS ON MULTIMEDIA COMPUTING COMMUNICATIONS ANDAPPLICATIONS, ASSOCIATION FOR COMPUTING MACHINERY, US, vol. 4, no. 2, 16 May 2008 (2008-05-16), pages 1 - 20, XP058145136, ISSN: 1551-6857, DOI: 10.1145/1352012.1352016
Download PDF:
Claims:
REVENDICATIONS

1. Procédé de gestion du téléchargement progressif adaptatif (HAS) d'un contenu numérique au sein d'un terminal (3-5 ; 30) de restitution d'un réseau de communication local (10), comprenant une étape d'obtention (310) (7) d'un fichier de description dudit contenu numérique, comprenant une liste de segments temporels (Cli@Nj) dudit contenu associés chacun à plusieurs débits d'encodage dudit contenu,

caractérisé en ce qu'il comprend :

une détermination (42) d'un nombre entier N>2 de modules clients (HAS-i) à activer au sein dudit terminal de restitution pour le téléchargement dudit contenu ;

une transmission à chacun desdits N modules clients à activer d'une commande de téléchargement de l'un au moins desdits segments temporels à l'un desdits débits d'encodage dudit fichier de description ;

N téléchargements en parallèle, par chacun desdits N modules clients, desdits segments temporels auxdits débits d'encodage, en accord avec ladite commande transmise.

2. Procédé de gestion selon la revendication 1, caractérisé en ce que ladite détermination du nombre N de modules clients à activer pour le téléchargement dudit contenu tient compte d'une préférence d'un utilisateur dudit terminal de restitution.

3. Procédé de gestion selon l’une quelconque des revendications 1 et 2, caractérisé en ce que ladite détermination du nombre N de modules clients à activer pour le téléchargement dudit contenu tient compte d'une dimension d'un écran dudit terminal de restitution.

4. Procédé de gestion selon l’une quelconque des revendications 1 à 3, caractérisé en ce que ladite détermination du nombre N de modules clients à activer pour le téléchargement dudit contenu tient compte d'une caractéristique dudit contenu appartenant au groupe comprenant : une durée dudit contenu ;

un type dudit contenu.

5. Procédé de gestion selon l’une quelconque des revendications 1 à 4, caractérisé en ce que ladite détermination du nombre N de modules clients à activer pour le téléchargement dudit contenu tient compte d'un nombre d'utilisateurs auxquels ledit contenu est restitué.

6. Procédé de gestion selon l’une quelconque des revendications 1 à 5, caractérisé en ce que ladite détermination du nombre N de modules clients à activer pour le téléchargement dudit contenu tient compte d'un profil d'un utilisateur auquel ledit contenu est restitué.

7. Procédé de gestion selon l’une quelconque des revendications 1 à 6, caractérisé en ce que ledit nombre N de modules clients est compris entre 2 et 5.

8. Procédé de gestion selon l'une quelconque des revendications 1 à 7, caractérisé en ce que, à l'issue de ladite détermination du nombre N de modules clients à activer, il comprend une phase d'initialisation dudit téléchargement, comprenant une incrémentation progressive du nombre i de modules clients auxquels sont transmis lesdites commandes de téléchargement de segments temporels, pour i variant de 1 à N.

9. Dispositif de gestion du téléchargement progressif adaptatif (HAS) d'un contenu numérique au sein d'un terminal de restitution d'un réseau de communication local, comprenant un module d'obtention d'un fichier de description dudit contenu numérique, comprenant une liste de segments temporels dudit contenu associés chacun à plusieurs débits d'encodage dudit contenu,

caractérisé en ce qu'il comprend :

une pluralité de modules clients de téléchargement dudit contenu, aptes à télécharger des segments temporels dudit contenu à l'un desdits débits d'encodage dudit fichier de description ;

un module de gestion desdits modules clients, apte à déterminer un nombre N de modules clients à activer pour le téléchargement dudit contenu, et à transmettre à chacun desdits N modules clients une commande de téléchargement, dédiée audit module client et comprenant un identifiant d'au moins un desdits segments temporels à l'un desdits débits d'encodage.

10. Terminal de restitution d'un contenu numérique, caractérisé en ce qu'il comprend un dispositif de gestion du téléchargement progressif adaptatif (HAS) d'un contenu numérique selon la revendication 9.

11. Produit programme d’ordinateur comprenant des instructions de code de programme pour la mise en oeuvre d'un procédé selon l’une quelconque des revendications 1 à 8, lorsqu'il est exécuté par un processeur.

Description:
Gestion du téléchargement progressif adaptatif d'un contenu numérique au sein d'un terminal de restitution d'un réseau de communication local.

1. Domaine de l'invention

Le domaine de l'invention est celui des contenus multimédia numériques, à savoir les contenus audio et/ou vidéo numériques. Plus précisément, l'invention concerne la gestion du téléchargement progressif adaptatif d'un contenu numérique au sein d'un réseau de communication local, tel qu'un réseau domestique.

2. Art antérieur et ses inconvénients

L'accès à un contenu multimédia, tel que la télévision ou la vidéo à la demande, depuis un réseau de type Internet, est possible aujourd'hui, pour la plupart des terminaux de restitution, notamment lorsqu'ils font partie d'un réseau de communication local, tel qu'un réseau domestique.

Le terminal émet généralement une requête à destination d'un serveur, en indiquant le contenu choisi et il reçoit en retour un flux de données numériques relatives à ce contenu. Dans le cadre d'un réseau de communication local, une telle requête transite par la passerelle d'accès au réseau, par exemple la passerelle résidentielle.

Le terminal est adapté pour recevoir ces contenus numériques sous forme de données multimédia et pour en faire une restitution. Cette restitution consiste à fournir au niveau du terminal le contenu numérique sous une forme accessible à l'utilisateur. Par exemple, des données reçues correspondant à une vidéo sont généralement décodées, puis restituées au niveau du terminal sous la forme d'un affichage de la vidéo correspondante avec sa bande-son associée. Dans la suite, par souci de simplification, on assimilera le contenu numérique à une vidéo et la restitution par le terminal, ou consommation par l'utilisateur du terminal, à une visualisation sur l'écran du terminal.

La diffusion de contenus numériques sur Internet est souvent basée sur des protocoles client-serveur de la famille HTTP (de l'anglais « Hyper Text Transport Protocol »). En particulier, le téléchargement en mode progressif des contenus numériques, aussi appelé streaming, permet de transporter et consommer les données en temps réel, c'est-à-dire que les données numériques sont transmises sur le réseau et restituées par le terminal au fur et à mesure de leur arrivée. Le terminal reçoit et stocke une partie des données numériques dans une mémoire tampon avant de les restituer. Ce mode de distribution est particulièrement utile quand le débit dont dispose l'utilisateur n'est pas garanti pour le transfert en temps réel de la vidéo.

Le téléchargement progressif adaptatif, en anglais HTTP Adaptative Streaming, d'abréviation HAS, permet de surcroît de diffuser et recevoir des données suivant différentes qualités correspondant par exemple à différents débits. Ces différentes qualités sont décrites dans un fichier de paramètres disponible en téléchargement sur un serveur de données, par exemple un serveur de contenus. Quand le terminal client souhaite accéder à un contenu, ce fichier de description permet de sélectionner le bon format pour le contenu à consommer en fonction de la bande passante disponible ou des capacités de stockage et de décodage du terminal client. Ce type de technique permet notamment de tenir compte des variations de bande passante sur la liaison entre le terminal client et le serveur de contenus.

Il existe plusieurs solutions techniques pour faciliter la distribution d'un tel contenu en streaming, comme par exemple les solutions propriétaires Microsoft ® Smooth Streaming, Apple ® HLS, Adobe ® HTTP Dynamic Streaming ou encore la norme MPEG-DASH de l'organisme ISO/IEC qui sera décrite ci-après. Ces méthodes proposent d'adresser au client un ou plusieurs fichiers de description intermédiaires, appelés aussi documents ou manifestes, contenant les adresses des différents segments aux différentes qualités du contenu multimédia.

Ainsi, la norme MPEG-DASH (pour l'anglais "Dynamic Adaptive Streaming over HTTP", en français « diffusion en flux adaptatif dynamique sur HTTP ») est un standard de format de diffusion audiovisuelle sur Internet. Il se base sur la préparation du contenu en différentes présentations de qualité et débit variables, découpées en segments de courte durée (de l'ordre de quelques secondes), également appelés « chunks ». Chacun de ces segments est rendu disponible individuellement au moyen d’un protocole d’échange. Le protocole principalement ciblé est le protocole HTTP, mais d’autres protocoles (par exemple FTP) peuvent également être utilisés. L’organisation des segments et les paramètres associés sont publiés dans un manifeste au format XML.

Le principe sous-jacent à cette norme est que le client MPEG-DASH effectue une estimation de la bande passante disponible pour la réception des segments, et, en fonction du remplissage de son tampon de réception, choisit, pour le prochain segment à charger, une représentation dont le débit :

assure la meilleure qualité possible,

et permet un délai de réception compatible avec le rendu ininterrompu du contenu.

Ainsi, pour s'adapter à la variation des conditions réseau, notamment en termes de bande passante, les solutions existantes de téléchargement adaptatif permettent au terminal client de passer d'une version du contenu encodée à un certain débit, à une autre encodée à un autre débit, au cours du téléchargement. En effet, chaque version du contenu est divisée en segments de même durée. Pour permettre une restitution en continu du contenu sur le terminal, chaque segment doit atteindre le terminal avant son instant programmé de restitution. La qualité perçue associée à un segment augmente avec la taille du segment, exprimée en bits, mais dans le même temps, des segments plus gros requièrent un temps de transmission plus important, et donc présentent un risque accru de ne pas être reçus à temps pour une restitution en continu du contenu.

Le terminal de restitution doit donc trouver un compromis entre la qualité globale du contenu, et sa restitution ininterrompue, en sélectionnant avec soin le prochain segment à télécharger, parmi les différents débits d'encodage proposés. Il existe pour ce faire différents algorithmes de sélection de la qualité du contenu en fonction de la bande passante disponible, qui peuvent présenter des stratégies plus ou moins agressives, ou plus ou moins sécuritaires.

En outre, dans le cadre d'un réseau de communication local, lorsque plusieurs téléchargements progressifs sont lancés en parallèle, par plusieurs terminaux de restitution, la bande passante totale disponible pour le téléchargement est divisée à parts égales entre les différents flux téléchargés. Ainsi, si dans un réseau de communication local, qui dispose d'une bande passante descendante de 6Mb/s, on lance simultanément le téléchargement d'une vidéo à la demande (par un premier client HAS installé par exemple sur un ordinateur personnel), d'une chaîne de télévision numérique (par un deuxième client HAS installé par exemple sur un téléviseur), et l'accès à un film en flux continu tel que proposé par exemple par Netflix ® (par un troisième client HAS installé par exemple sur un téléphone intelligent de type « smartphone »), la bande passante accessible à chacun de ces trois clients HAS est de 2Mb/s.

Par client HAS, on entend ici un composant logiciel ou matériel, ou un ensemble de composants matériels et logiciels, apte à récupérer les segments d'un contenu vidéo à différents débits d'encodage, en vue de leur restitution par un terminal de restitution sur lequel il est embarqué.

En effet, le protocole HTTP est basé sur des principes d'égalité d'accès à une ressource. Le protocole HTTP est en particulier basé sur des protocoles de type TCP-IP (ensemble des protocoles utilisés pour le transfert des données sur Internet) qui permettent de véhiculer les paquets de données entre les différents terminaux et serveurs et la passerelle d'accès. La passerelle d'accès qui reçoit les paquets de données acheminés selon TCP-IP ne leur affecte pas de priorité, ce qui aboutit à un partage égalitaire de la bande passante.

Or, il n'est pas toujours souhaitable de répartir équitablement la bande passante disponible, et il existe donc un besoin d’une technique permettant de contrôler le partage de la bande passante entre les différents clients HAS, dans le cadre du téléchargement adaptatif progressif de contenus numériques.

3. Exposé de l’invention

L’invention répond à ce besoin en proposant un procédé de gestion du téléchargement progressif adaptatif (HAS) d'un contenu numérique au sein d'un terminal de restitution d'un réseau de communication local, comprenant une étape d'obtention d'un fichier de description du contenu numérique, comprenant une liste de segments temporels du contenu associés chacun à plusieurs débits d'encodage du contenu.

Selon l'invention, un tel procédé de gestion comprend :

une détermination d'un nombre entier N>2 de modules clients à activer au sein du terminal de restitution pour le téléchargement du contenu ;

une transmission à chacun des N modules clients à activer d'une commande de téléchargement de l'un au moins des segments temporels à l'un des débits d'encodage du fichier de description ;

N téléchargements en parallèle, par chacun des N modules clients, des segments temporels aux débits d'encodage, en accord avec la commande transmise.

Ainsi, l’invention repose sur une approche tout à fait nouvelle et inventive de la gestion du téléchargement adaptatif progressif dans un réseau de communication local. En effet, l’invention propose d'instancier un nombre plus ou moins important de modules clients HAS au sein d'un terminal de restitution, de façon à permettre de contrôler plus finement le partage de la bande passante entre les différents terminaux de restitution du réseau de communication local. Lorsqu'il est nécessaire d'accroître la part de bande passante affectée à un terminal de restitution, on active un nombre plus élevé de modules clients HAS au sein de ce terminal ; ces modules clients HAS sont pilotés, afin de récupérer de manière parallélisée les différents segments, ou « chunks », vidéo. Pour ce faire, un manager de clients HAS est installé dans le terminal de restitution, et envoie des commandes de téléchargement aux différents modules clients, afin de leur indiquer quel segment temporel du contenu ils doivent télécharger, et à quel débit d'encodage. Le téléchargement en parallèle des différents segments par les différents modules clients HAS permet, si besoin, d'augmenter la bande passante consacrée au téléchargement et à la restitution du contenu par le terminal de restitution.

Selon un premier aspect de l'invention, la détermination du nombre N de modules clients à activer pour le téléchargement du contenu tient compte d'une préférence d'un utilisateur du terminal de restitution.

Ainsi, le client a la possibilité, depuis une interface du réseau de communication local par exemple, de donner une pondération, ou une priorité, à chacun des terminaux de restitution du réseau. Cette pondération peut prendre la forme d'une note, exprimée par exemple sous forme d'un nombre d'étoiles (de une à cinq par exemple), attribuée à chacun des terminaux de restitution du réseau. En fonction du choix du nombre d'étoiles, un nombre plus ou moins important de clients HAS sera instancié dans le terminal de restitution (de un à cinq par exemple). Selon un autre aspect de l'invention, qui peut être mis en oeuvre alternativement ou cumulativement avec le précédent, la détermination du nombre N de modules clients à activer pour le téléchargement du contenu tient compte d'une dimension d'un écran du terminal de restitution.

Ainsi, le nombre de modules clients HAS à activer peut être proportionnel à la taille de la diagonale de l'écran du terminal de restitution. En effet, on peut se contenter d'une qualité moindre, et donc d'un débit moins important, pour un écran de petite taille, tel que celui d'un « smartphone » par exemple (en français, téléphone intelligent ou ordiphone). A l'inverse, un grand écran de restitution, tel que celui d'un téléviseur de grande diagonale, peut nécessiter une qualité de restitution du contenu plus élevée, et donc une part plus importante de la bande passante disponible pour le téléchargement des segments du contenu.

Selon encore un autre aspect de l'invention, qui peut être mis en oeuvre alternativement ou cumulativement avec les précédents, la détermination du nombre N de modules clients à activer pour le téléchargement du contenu tient compte d'une caractéristique du contenu appartenant au groupe comprenant :

une durée dudit contenu ;

un type dudit contenu.

Selon ce mode de réalisation, une part plus importante de la bande passante disponible pour le téléchargement est par exemple affectée aux contenus de courte durée, par rapport aux contenus diffusés en direct (« live »), pour lesquels il est par exemple possible de revenir en arrière grâce à une option de type « TimeShifting » (en français, « décalage »). On peut aussi privilégier par exemple un contenu payant (par exemple de la vidéo à la demande), en lui accordant une plus grande part de la bande passante, par rapport à un contenu gratuit (par exemple un programme télévisuel d'une chaîne gratuite).

Selon encore un autre aspect de l'invention, qui peut être mis en oeuvre alternativement ou cumulativement avec les précédents, la détermination du nombre N de modules clients à activer pour le téléchargement du contenu tient compte d'un nombre d'utilisateurs auxquels le contenu est restitué.

Le nombre de personnes présentes devant l'écran du terminal de restitution peut être détecté, au moyen d'une caméra, ou d'une balise de type « Beacon Bluetooth Low Energy ». Si aucun utilisateur n'est présent, il est possible que le contenu ne soit téléchargé que pour sa bande son et sa composante audio : dans ce cas, on peut se contenter d'une qualité très basse pour le téléchargement des segments vidéo, et donc d'une bande passante très faible.

La qualité, et donc le nombre de modules clients HAS activés au sein du terminal de restitution, peuvent ensuite être choisis proportionnellement au nombre d'utilisateurs présents devant l'écran du terminal de restitution : plus le public est nombreux, plus la qualité de restitution dit être élevée.

Selon encore un autre aspect de l'invention, qui peut être mis en oeuvre alternativement ou cumulativement avec les précédents, la détermination du nombre N de modules clients à activer pour le téléchargement du contenu tient compte d'un profil d'un utilisateur auquel le contenu est restitué.

Ainsi, on peut tenir compte par exemple de l'âge ou du rôle des utilisateurs, en privilégiant par exemple la qualité pour les contenus destinés aux parents, plutôt qu'aux enfants.

Selon un autre aspect de l'invention, le nombre N de modules clients est compris entre 2 et 5, de façon à permettre une bonne modularité du partage de la bande passante, sans induire une trop grande complexité dans le terminal de restitution.

Selon encore un autre aspect de l'invention, à l'issue de la détermination du nombre N de modules clients à activer, un tel procédé comprend une phase d'initialisation du téléchargement, comprenant une incrémentation progressive du nombre i de modules clients auxquels sont transmises les commandes de téléchargement de segments temporels, pour i variant de 1 à N.

Il est en effet important de prévoir un algorithme de démarrage progressif, pour permettre une montée en puissance graduelle. Par exemple, le manager de client HAS peut commencer le téléchargement du contenu en activant un unique module client HAS, jusqu'à obtenir une qualité stable de restitution pendant X secondes (avec X par exemple égal à dix fois la durée d'un segment temporel), puis instancier un deuxième module client HAS, et ainsi de suite, en attendant toujours pendant une phase de stabilisation de la qualité de durée X, avant activation d'un module client additionnel.

L'invention concerne également un dispositif de gestion du téléchargement progressif adaptatif (HAS) d'un contenu numérique au sein d'un terminal de restitution d'un réseau de communication local, comprenant un module d'obtention d'un fichier de description du contenu numérique, comprenant une liste de segments temporels du contenu associés chacun à plusieurs débits d'encodage du contenu, qui comprend :

une pluralité de modules clients de téléchargement du contenu, aptes à télécharger des segments temporels du contenu à l'un des débits d'encodage du fichier de description ; un module de gestion des modules clients, apte à déterminer un nombre N de modules clients à activer pour le téléchargement du contenu, et à transmettre à chacun des N modules clients une commande de téléchargement, dédiée au module client et comprenant un identifiant d'au moins un des segments temporels à l'un des débits d'encodage. L'invention concerne encore un terminal de restitution d'un contenu numérique, qui comprend un tel dispositif de gestion du téléchargement progressif adaptatif (HAS) d'un contenu numérique.

L'invention concerne également un produit programme d’ordinateur comprenant des instructions de code de programme pour la mise en oeuvre d'un procédé tel que décrit précédemment, lorsqu'il est exécuté par un processeur.

L'invention vise également un support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé de gestion de téléchargement progressif adaptatif selon l'invention tel que décrit ci-dessus.

Un tel support d’enregistrement peut être n’importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu’une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d’enregistrement magnétique, par exemple une clé USB ou un disque dur.

D’autre part, un tel support d’enregistrement peut être un support transmissible tel qu’un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d’autres moyens, de sorte que le programme d'ordinateur qu'il contient est exécutable à distance. Le programme selon l’invention peut être en particulier téléchargé sur un réseau par exemple le réseau Internet.

Alternativement, le support d’enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l’exécution du procédé de contrôle d'affichage précité.

Le dispositif de gestion du téléchargement progressif adaptatif (HAS) d'un contenu numérique, le terminal de restitution et le programme d’ordinateur correspondants précités présentent au moins les mêmes avantages que ceux conférés par le procédé de gestion du téléchargement progressif adaptatif (HAS) d'un contenu numérique selon la présente invention.

4. Liste des figures

D’autres buts, caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description suivante, donnée à titre de simple exemple illustratif, et non limitatif, en relation avec les figures, parmi lesquelles :

La figure 1 représente une architecture de téléchargement progressif sur Internet basée sur l'utilisation du streaming adaptatif selon l'invention ;

la figure 2 illustre de façon schématique la structure matérielle d'un terminal de restitution intégrant un dispositif de gestion de téléchargement progressif adaptatif selon un mode de réalisation de l'invention; la figure 3 illustre un exemple de réalisation du téléchargement progressif adaptatif d'un contenu par un terminal de restitution de la figure 2 ;

la figure 4 présente un exemple d'algorithme permettant de déterminer le nombre de modules clients HAS à activer, correspondant à une phase d'initialisation de l'exemple de la figure 3.

5. Description détaillée de modes de réalisation de l'invention

Le principe général de l'invention repose sur l'activation d'un nombre plus ou moins important de modules clients HAS dans un lecteur de contenu (ou terminal de restitution), afin de permettre de contrôler plus finement le partage de la bande passante entre les différents terminaux de restitution d'un réseau de communication local, par rapport aux techniques de l'art antérieur.

On présente désormais, en relation avec la figure 1, une architecture de téléchargement progressif basée sur l'utilisation du streaming adaptatif selon l'invention.

Le terminal 3, par exemple un téléphone intelligent de type « smartphone », le terminal 4, par exemple un ordinateur portable, et le terminal 5, par exemple un ordinateur personnel de type PC se trouvent dans cet exemple situé dans un réseau local (LAN, 10) piloté par une passerelle domestique 6. Le contexte du réseau local est donné à titre d'exemple et pourrait être transposé aisément à un réseau Internet de type « best effort », un réseau d'entreprise, etc.

Un serveur de contenus numériques 2 se trouve selon cet exemple dans le réseau étendu (WAN, 1) mais il pourrait indifféremment être situé dans le réseau local (LAN, 10), par exemple dans la passerelle domestique 6 ou tout autre équipement capable d'héberger un tel serveur de contenus. Le serveur de contenus 2 reçoit par exemple des chaînes de contenus de télévision numérique en provenance d'un réseau de télévision diffusée, non représenté, et/ou des vidéos à la demande, et les met à disposition des terminaux clients.

Classiquement, au moins l'un des terminaux client 3-5 souhaite entrer en communication avec le serveur de contenus 2 pour recevoir un ou plusieurs contenus (films, documentaires, séquences publicitaires, etc.).

Il est fréquent, dans ce contexte client-serveur, de recourir, pour échanger les données entre le terminal client 3-5 et le serveur 2, à une technique de téléchargement progressif adaptatif, en anglais « adaptive streaming », abrégé en HAS basée sur le protocole HTTP. Ce type de technique permet notamment d’offrir une bonne qualité de contenus à l'utilisateur en tenant compte des variations de bande passante qui peuvent se produire sur la liaison entre le terminal client 3-5 et la passerelle de services 6, ou entre cette dernière et le serveur de contenus 2.

Classiquement, différentes qualités peuvent être encodées pour le même contenu d'une chaîne, correspondant par exemple à différents débits. Plus généralement, on parlera de qualité pour se référer à une certaine résolution du contenu numérique (résolution spatiale, temporelle, niveau de qualité associée à la compression vidéo et/ou audio) avec un certain débit. Chaque niveau de qualité est lui-même découpé sur le serveur de contenus en segments temporels (ou « fragments » de contenu, en anglais « chunks », ces trois mots étant utilisés indifféremment dans l'ensemble de ce document).

La description de ces différentes qualités et de la segmentation temporelle associée, ainsi que les fragments de contenu, sont décrits pour le terminal client et mis à sa disposition via leurs adresses Internet (URI : Universal Ressource Identifier). L'ensemble de ces paramètres (qualités, adresses des fragments, etc.) est en général regroupé dans un fichier de paramètres, dit fichier de description. On notera que ce fichier de paramètres peut être un fichier informatique ou un ensemble d'informations descriptives du contenu, accessible à une certaine adresse.

Le terminal 3-5 possède ses propres caractéristiques en termes de capacité de décodage, d'affichage, etc. Dans un contexte de téléchargement adaptatif progressif, il peut adapter ses requêtes pour recevoir et décoder le contenu demandé par l'utilisateur à la qualité qui lui correspond au mieux. Dans notre exemple, si les contenus sont disponibles aux débits 512 kb/s (kilobits par seconde) (Résolution 1, ou niveau 1, noté NI), 1024 kb/s (N2), 2048 kb/s (N3) et que le terminal client dispose d'une bande passante de 3000 kb/s, il peut demander le contenu à n'importe quel débit inférieur à cette limite, par exemple 2048 kb/s. De manière générale, on note « Ci@Nj » le contenu numéro i avec la qualité j (par exemple le j-ième niveau Nj de qualité décrit dans le fichier de description).

La passerelle de service 6 est dans cet exemple une passerelle domestique qui assure le routage des données entre le réseau étendu 1 et le réseau local 10, gère les contenus numériques en assurant notamment leur réception en provenance du réseau et leur décodage grâce aux décodeurs que l'on suppose ici intégrés à la passerelle 6 ou au terminal 3-5. En variante, les décodeurs peuvent se trouver ailleurs dans le réseau étendu 1 ou local 10, notamment au niveau d'un élément de type STB (de l'anglais Set-Top-Box) associé à un téléviseur (non représenté).

Dans cet exemple, pour visualiser un contenu, le terminal 3-5 interroge tout d'abord la passerelle de service 6 pour obtenir une adresse du document de description 7 du contenu (par exemple, Cl) souhaité. La passerelle de service 6 répond en fournissant au terminal l'adresse du fichier de description 7. Dans la suite, on supposera que ce fichier est un fichier de type manifest selon la norme MPEG-DASH (noté « C.mpd ») et on se référera indifféremment, selon le contexte, à l'expression « fichier de description » ou « manifest».

Alternativement, ce fichier peut être récupéré directement auprès d'un serveur Internet local ou externe au réseau local, ou se trouver déjà sur la passerelle de service ou sur le terminal au moment de la requête. Un exemple de fichier manifest (MPD) conforme à la norme MPEG-DASH et comportant la description de contenus disponibles dans trois qualités différentes (NI = 512 kb/s, N2 = 1024 kb/s, N3 = 2048 kb/s) des contenus fragmentés est présenté en annexe 1. Ce fichier manifest simplifié décrit des contenus numériques dans une syntaxe XML (de l'Anglais « eXtended Markup Language»), comprenant une liste de contenus sous forme de fragments classiquement décrits entre une balise ouvrante (<SegmentList>) et une balise fermante (</SegmentList>). La découpe en fragments permet notamment de s'adapter finement aux fluctuations de la bande passante. Chaque fragment correspond à une certaine durée (champ « duration ») avec plusieurs niveaux de qualité et permet de générer leurs adresses (URL - Uniform Resource Locator). Cette génération est faite dans cet exemple à l'aide des éléments « BaseURL » (« HTTP://server.com») qui indique l'adresse du serveur de contenus et « SegmentURL » qui liste les parties complémentaires des adresses des différents fragments :

- « Cl_512kb_l.mp4 » pour le premier fragment du contenu « Cl » à 512 kilobits par seconde (« kb ») au format MPEG-4 (« mp4 »),

- « Cl_512kb_2.mp4 » pour le second fragment,

- etc.

Une fois qu'elle dispose des adresses de fragments correspondant au contenu souhaité, la passerelle de service 6 procède à l'obtention des fragments via un téléchargement à ces adresses. On notera que ce téléchargement s'opère ici, traditionnellement, au travers d'une URL HTTP, mais pourrait également s'opérer au travers d'une adresse universelle (URI) décrivant un autre protocole (dvb://monsegmentdecontenu par exemple).

On suppose ici que le terminal 3 restitue un premier contenu référencé Cl (par exemple un contenu de vidéo à la demande), que le terminal 4 restitue un deuxième contenu référencé C2 (par exemple un film en flux continu tel que proposé par exemple par Netflix ® ) et que le terminal 5 restitue un troisième contenu référencé C3 (par exemple une chaîne de contenu télévisuel), tous trois décrits dans un fichier manifest 7.

Selon l'état de l'art, la stratégie habituellement privilégiée est d'acheminer les trois flux selon un débit égal, vers chacun des trois terminaux de restitution 3-5, qui instancient chacun un module client HAS.

Ainsi, si le lien de téléchargement ADSL (pour « Asymmetric Digital Subscriber Line ») depuis la passerelle domestique 6 présente une bande passante de 6 Mb/s, la bande passante accessible à chaque client HAS de chacun des terminaux de restitution 3-5 est de 2 Mb/s. La bande passante est donc partagée de manière équitable en fonction des clients HAS présents (un par terminal de restitution 3-5).

Le but du dispositif de gestion de téléchargement selon l'invention, qui sera décrit ultérieurement plus en détails à l'appui des figures 2 et 3, est de pouvoir opérer un contrôle de ce partage de la bande passante entre les différents terminaux.

Ce dispositif est situé dans le terminal de restitution (set top box, TV, appareil lecteur de flux multimédia en temps réel de type Chromecast ® ou Clé-TV ® , ...) et permet de piloter l'activation d'un ou plusieurs modules clients HAS au sein du terminal pour le téléchargement d'un contenu donné.

La figure 2 représente une architecture d'un terminal de restitution intégrant un tel dispositif de gestion de téléchargement adaptatif progressif selon un mode de réalisation de l'invention, par exemple l'un des terminaux 3-5 de la figure 1.

Il comprend, classiquement, des mémoires M associées à un processeur CPU. Les mémoires peuvent être de type ROM (de l'anglais « Read Only Memory ») ou RAM (de l'anglais « Random Access Memory ») ou encore Flash. Le terminal de restitution 3-5 communique avec le réseau local 10 et le réseau Internet étendu 1 via le module Ethernet ETH d'une part et éventuellement le module WIFI pour une communication locale sans fils. Le terminal de restitution 3-5 comprend en outre, conformément à l'invention, plusieurs modules (seulement deux ont été représentés ici, par souci de simplification) de téléchargement progressif adaptatif HAS aptes à demander un téléchargement progressif de l'un des contenus à l'une des qualités proposées dans un fichier de description 7. Le terminal selon l'invention comporte également un module MNG de gestion des modules de téléchargement progressif adaptatif HAS, ou modules clients HAS, capable de déterminer le nombre N de modules clients HAS à activer pour le téléchargement du contenu, et à transmettre à chacun de ces N modules clients une commande de téléchargement, indiquant à chaque module client HAS quels segments temporels, à quel débit d'encodage, il doit télécharger, en fonction des informations contenues dans le fichier de description 7.

Ce module MNG de gestion des modules clients HAS accède à un fichier de paramètres de restitution des contenus, grâce auxquels il peut déterminer le nombre optimum de modules clients HAS à activer pour la restitution d'un contenu donné. Ces paramètres peuvent être par exemple les préférences de l'utilisateur pour la restitution d'un contenu sur ce terminal, les caractéristiques d'affichage (taille de l'écran, fenêtre) du contenu, les paramètres d'âge/rôle des utilisateurs auxquels un contenu est destiné...

Les fichiers de description 7 peuvent être enregistrés par exemple dans les mémoires M du terminal de restitution 3-5 ou se trouver à l'extérieur.

Le terminal de restitution 3-5 selon l'invention peut aussi contenir d'autres modules comme un disque dur non représenté pour le stockage des fragments vidéo, un module de contrôle d'accès aux contenus, un module d'interface vidéo, d'autres modules lui permettant de communiquer avec l'extérieur via différents protocoles sur différents liens physiques, etc.EINotamment, le terminal de restitution 3-5 peut contenir un module d'interface E/S (non représenté), permettant à l'utilisateur de saisir une préférence de restitution du contenu, par exemple sous forme d'un nombre d'étoiles (de une à cinq par exemple), permettant au module MNG de déterminer le nombre de modules clients HAS à activer. Un tel module E/S peut prendre la forme d'une télécommande ou d'un écran tactile par exemple.

Le terminal 3-5 peut également intégrer un module d'interface avec une caméra ou une balise Bluetooth Low Energy ® , permettant au module MNG de gestion des modules clients HAS d'accéder à une information relative au nombre d'utilisateurs présents devant le terminal de restitution 3-5.

On notera que le terme module peut correspondre aussi bien à un composant logiciel qu'à un composant matériel ou un ensemble de composants matériels et logiciels, un composant logiciel correspondant lui-même à un ou plusieurs programmes ou sous-programmes d'ordinateur ou de manière plus générale à tout élément d'un programme apte à mettre en oeuvre une fonction ou un ensemble de fonctions telles que décrites pour les modules concernés. De la même manière, un composant matériel correspond à tout élément d'un ensemble matériel (ou hardware) apte à mettre en oeuvre une fonction ou un ensemble de fonctions pour le module concerné (circuit intégré, carte à puce, carte à mémoire, etc.).

Plus généralement, un tel terminal de restitution 3-5 comprend une mémoire vive (par exemple une mémoire RAM), une unité de traitement équipée par exemple d’un processeur CPU, et pilotée par un programme d’ordinateur, représentatif du module de gestion des modules clients HAS, stocké dans une mémoire morte (par exemple une mémoire ROM ou un disque dur). A l’initialisation, les instructions de code du programme d’ordinateur sont par exemple chargées dans la mémoire vive avant d’être exécutées par le processeur CPU de l’unité de traitement. La mémoire vive contient notamment le fichier de description manifest 7. Le processeur de l'unité de traitement pilote la détermination du nombre de modules clients HAS à activer, ainsi que le choix des segments temporels et des débits d'encodage associés à télécharger par chacun d'eux, et l'émission des commandes correspondantes vers chaque module client HAS.

La figure 2 illustre seulement une manière particulière, parmi plusieurs possibles, de réaliser le terminal de restitution 3-5, afin qu'il effectue les étapes du procédé détaillé ci-après, en relation avec les figures 3 et 4 (dans l'un quelconque des différents modes de réalisation, ou dans une combinaison de ces modes de réalisation). En effet, ces étapes peuvent être réalisées indifféremment sur une machine de calcul reprogrammable (un ordinateur PC, un processeur DSP ou un microcontrôleur) exécutant un programme comprenant une séquence d'instructions, ou sur une machine de calcul dédiée (par exemple un ensemble de portes logiques comme un FPGA ou un ASIC, ou tout autre module matériel).

Dans le cas où le terminal de restitution 3-5, et notamment le dispositif de gestion de téléchargement progressif adaptatif qu'il intègre, est réalisé avec une machine de calcul reprogrammable, le programme correspondant (c'est-à-dire la séquence d'instructions) pourra être stocké dans un médium de stockage amovible (tel que par exemple une disquette, un CD- ROM ou un DVD-ROM) ou non, ce médium de stockage étant lisible partiellement ou totalement par un ordinateur ou un processeur.

On présente désormais, en relation avec la figure 3, un exemple de réalisation du téléchargement progressif adaptatif d'un contenu par un terminal de restitution 30, qui correspond par exemple à l'un des terminaux 3-5 des figures 1 et 2.

Le terminal de restitution 30 comprend un lecteur de contenu V.P. (pour l'anglais « Video Player ») 301, un module MNG 302 de gestion des modules clients HAS, et plusieurs modules clients HAS, dont trois seulement ont été représentés ici, référencés HAS-1, HAS-2 et HAS-3. On notera que, dans la plupart des modes de réalisation de l'invention, le nombre de modules clients HAS-i est généralement compris entre deux et cinq. Le module MNG 302 de gestion des modules clients HAS est chargé d'instancier le nombre souhaité de clients HAS et de piloter les clients HAS- 1, HAS-2 et HAS-3 afin de récupérer de manière parallélisée les différents « chunks » vidéo.

Un serveur de contenu HAS 2 expose une vidéo Cl sous forme de « chunks » Cl,@Nj encodés à différents débits d'encodage Nj, où l'indice i désigne un identifiant temporel du « chunk » Cli@Nj.

Selon l'art antérieur, un module client HAS est chargé de venir récupérer ses « chunks » auprès du serveur de contenu HAS 2 en choisissant la qualité vidéo Nj en fonction de la ressource réseau disponible. On ne décrit pas ici plus en détail la façon dont le module client HAS choisit le débit d'encodage du prochain fragment vidéo à télécharger : il existe en effet de nombreux algorithmes permettant d'opérer ce choix, dont les stratégies sont plus ou moins sécuritaires ou agressives. On rappelle cependant que, le plus souvent, le principe général de tels algorithmes repose sur le téléchargement d'un premier fragment au débit d'encodage le plus faible proposé dans le manifeste, et sur l'évaluation du temps de récupération de ce premier fragment. Sur cette base, le module client HAS évalue si, en fonction de la taille du fragment et du temps mis pour le récupérer, les conditions réseau permettent de télécharger le fragment suivant à un débit d'encodage plus élevé. Certains algorithmes reposent sur une augmentation progressive du niveau de qualité des fragments de contenu téléchargés ; d'autres proposent de approches plus risquées, avec des sauts dans les niveaux des débits d'encodage des fragments successifs. Dans le cas classique, si un « chunk » vidéo dure 3 secondes, la récupération du « chunk » par le module client HAS ne doit pas excéder 3 secondes, afin de permettre une restitution sans interruption du contenu par le terminal de restitution 30. Il convient donc pour le module client HAS d'opérer le meilleur compromis entre une qualité de restitution, et donc un débit d'encodage, aussi élevés que possible, et le temps de téléchargement du fragment, qui doit être suffisamment faible pour permettre une restitution en contenu par le terminal 30.

Dans le mode de réalisation illustré en figure 3, en revanche, plusieurs modules clients HAS peuvent être activés en parallèles, comme décrit plus en détail ci-après. Dans le cas par exemple où trois modules clients HAS sont activés, qui téléchargent en parallèle les fragments vidéo successifs du contenu, chaque module client HAS dispose donc de 3 x 3 = 9 secondes pour récupérer son chunk vidéo.

Conformément à la figure 3, le module MNG 302 de gestion des clients HAS détermine tout d'abord le nombre de modules clients HAS-i à activer, en accédant par exemple à un fichier de paramètres de restitution. Une lecture de ce fichier lui permet par exemple de déterminer que l'utilisateur du terminal de restitution 30 lui a attribué une note de trois étoiles sur cinq, ou que le nombre de personnes présentes devant l'écran du terminal de restitution 30 est suffisamment élevé pour entraîner l'activation de plusieurs modules clients HAS, par exemple trois.

Le nombre de modules clients HAS à activer peut découler directement de la lecture du fichier de paramètres de restitution, qui peut se présenter par exemple sous la forme du Tableau 1. Il peut également résulter d'un calcul opéré par le module MNG de 302, selon un algorithme qui ne sera pas décrit ici plus en détail, qui peut être multicritère, et tenir compte de pondérations, par exemple affectées aux différents paramètres du Tableau 1.

Tableau 1

Le module MNG 302 active donc les trois modules clients HAS-1 à HAS-3, en vue du téléchargement et de la restitution par le terminal 30 du contenu Cl.

Au cours d'une étape référencée 310, le module MNG 302 récupère le fichier manifest 7 afin de découvrir les fragments disponibles du contenu vidéo Cl, et les différentes qualités vidéo Nj associées. Dans l'exemple de la figure 3, le contenu Cl est par exemple proposé sous forme de fragments de durée 3s, avec un premier débit d'encodage NI = 500 kb/s, un deuxième débit d'encodage N2 = 1000 kb/s, un troisième débit d'encodage N3 = 2000 kb/s, etc.

Au cours d'une étape référencée 311, le module de gestion MNG 302 pilote les modules clients HAS-1 à HAS-3, afin de télécharger de manière optimale les différents fragments Cli@Nj. Il y a autant de sessions TCP que de clients HAS, la récupération de bande passante est donc pondérée en fonction du nombre de clients.

Ainsi, si l'on suppose qu'en plus du terminal de restitution 30, deux autres terminaux sont en phase de téléchargement adaptatif de contenu dans le réseau local (par exemple les terminaux

3 et 4 de la figure 1), et que seul un module client HAS est activé dans chacun de ces deux autres terminaux, la répartition de la bande passante de 6 Mb/s se fait donc automatiquement par les mécanismes TCP de la manière suivante :

• Terminal 3 (par exemple affecté au téléchargement d'un programme de télévision en différé):

1 / (1 + 1 + 3) * 6 Mb/s = 1.5 Mb/s

• Terminal 4 (par exemple affecté au téléchargement d'une chaîne de télévision en direct):

1 / (1 + 1 + 3) * 6 Mb/s = 1.5 Mb/s

• Terminal 30 (par exemple affecté au téléchargement de vidéo à la demande) :

3 / (1 + 1 + 3) * 6 Mb/s = 3 Mb/s

Le client VOD du terminal 30 récupère donc la moitié de la bande passante totale, grâce à l'activation de trois modules clients HAS-1 à HAS-3 par le module MNG de gestion 302.

Pour optimiser le téléchargement du contenu Cl, et sa restitution par le terminal 30, le module de gestion MNG 302 adresse des commandes dédiées à chacun des modules clients HAS- i, de façon que chaque module client HAS-i récupère de manière autonome et parallélisée les différents fragments du contenu Cl, au cours d'une étape référencée 312.

Ainsi, en mode de fonctionnement stabilisé (i.e. en dehors de la phase d'initialisation ou de démarrage du téléchargement qui sera décrite plus en détail ci-après), le module MNG de gestion 302 adresse au module client HAS-1 une commande de téléchargement du fragment 01 C @N1 (soit le premier fragment temporel à un débit d'encodage de 500 kb/s) et du fragment C1 4 @N3 (soit le quatrième fragment temporel à un débit d'encodage de 2000 kb/s).

Le module client HAS-2 reçoit une commande de téléchargement du fragment C1 2 @N2 (soit le deuxième fragment temporel à un débit d'encodage de 1000 kb/s) et du fragment C1 5 @N4 (soit le cinquième fragment temporel à un débit d'encodage de 3000 kb/s). Enfin, le module client HAS-3 reçoit, du module de gestion MNG 302, une commande de téléchargement du fragment C1 3 @N3 (soit le troisième fragment temporel à un débit d'encodage de 2000 kb/s) et du fragment C1 6 @N3 (soit le sixième fragment temporel, également à un débit d'encodage de 2000 kb/s).

Le module de gestion MNG 302 calcule ainsi, en permanence, en fonction des conditions réseau, quel est le débit d'encodage optimum à utiliser pour permettre une restitution en continu du contenu par le terminal 30, et adresse les commandes correspondantes aux différents modules clients HAS-i, et ce jusqu'à la fin de la restitution du contenu Cl par le terminal 30.

On notera que, dans ce mode de réalisation, comme plusieurs fragments temporels sont récupérés en parallèle par les différents modules clients HAS-i, le temps maximal pour récupérer un fragment du contenu Cl est donc de N x 3 secondes, où N est le nombre de modules clients HAS-i activés par le module de gestion MNG 302, et où la durée d'un fragment temporel Cl r( S ) Nj est de trois secondes.

Les différents fragments téléchargés par les différents modules clients HAS-1 à HAS-3 sont transmis au lecteur vidéo V.P. 301 qui les décode pour leur restitution à l'utilisateur par le terminal 30.

L'algorithme mis en oeuvre par le module de gestion MNG 302 pour déterminer quel fragment à quel débit d'encodage doit être téléchargé par le module client HAS-i peut être l'un des algorithmes déjà existants de l'art antérieur, dès lors que le module de gestion MNG 302 tient compte du temps de récupération du fragment i-1 par le client HAS-j pour déterminer le débit d'encodage du fragment i par le client HAS-j+1. Cet algorithme ne sera donc pas décrit ici plus en détail. On notera cependant que les modules clients HAS-i sont sollicités les uns après les autres pour récupérer les fragments successifs du contenu : ainsi, de préférence, si le client HAS-1 récupère un fragment Cl,, le client HAS-2 récupère le fragment Cl i+1 , et le client HAS-3 récupère le fragment Cl i+2 , et ainsi de suite.

Cette description correspond au mode de fonctionnement stabilisé du dispositif de gestion de téléchargement progressif adaptatif du terminal de restitution 30. A l'initialisation, il peut s'avérer intéressant d'opérer une montée en charge progressive du téléchargement, en commençant par n'instancier qu'un module client HAS-1, puis attendre une phase de stabilisation avant d'activer un deuxième module client HAS-2, et ainsi de suite en alternant nouvelle activation et attente au cours d'une phase de stabilisation. Une activation immédiate de l'ensemble des modules clients HAS-i pourrait en effet occasionner un inconfort pour l'utilisateur, par exemple dans le cas d'un téléchargement d'une chaîne de contenu télévisuelle, dans le cas où il déciderait de « zapper ». Cette phase d'initialisation est illustrée en figure 4.

Au cours d'une phase de démarrage du téléchargement progressif adaptatif, on peut ainsi prévoir que le module de gestion MNG 302 détermine tout d'abord (42) le nombre optimum N de modules clients HAS-i à activer, par exemple en fonction du type de contenu (payant ou gratuit) choisi au cours d'une étape référencée 41 (ou plus généralement en utilisant le fichier de paramètres de restitution dont un exemple est donné dans le Tableau 1), puis active (43) le premier module client HAS-1 en lui adressant une commande de téléchargement (45) du premier fragment temporal Cli@Nl au débit d'encodage le plus bas proposé dans le manifeste 7 (ici par exemple Nl=512kb/s).

Le module de gestion MNG 302 initie alors un compteur (44), ou « timer », afin de vérifier que la qualité Q de restitution du contenu Cl est stable, par exemple pendant une durée de 10 fois la durée d'un fragment temporel, soit dans cet exemple 30 secondes. A l'issue de cette durée de 30 secondes de stabilité de la qualité de restitution (46), le module de gestion MNG 302 peut alors activer un deuxième module client HAS-2 (47), en lui adressant les commandes adéquates de téléchargement des fragments du contenu Cl. Il peut à nouveau attendre une durée de stabilisation de la qualité de trente secondes avant d'activer le troisième et dernier module client HAS-3. C'est seulement à l'issue de cette phase d'initialisation et de montée en charge progressive que les trois modules clients HAS-1 à HAS-3 peuvent fonctionner simultanément pour le téléchargement parallèle (48) des différents fragments du contenu Cl, selon les commandes reçues du module de gestion MNG 302, et conformément à l'exemple de la figure 3.

ANNEXE 1 : exemple de fichier manifest