Brevet FR3008838A1 — publié le 20150123

PROCEDE DE DIFFUSION ADAPTATIVE DE FLUX MULTIMEDIA EN UTILISANT UN INDICE D'ENERGIE L'objet de l'invention concerne un procédé permettant une diffusion adaptative de flux multimédia (choix de la représentation à télécharger), entre un serveur et un ou des terminaux en utilisant un critère d'énergie consommée par le terminal. Elle s'applique, par exemple, pour des terminaux mobiles ayant une autonomie limitée en particulier lorsqu'un utilisateur souhaite visualiser des vidéos diffusées sur Internet. Généralement, le contenu de données est distribué via des serveurs gérés par des fournisseurs de service. Ainsi, de façon à recevoir un contenu spécifique, un utilisateur va émettre une requête auprès d'un serveur qui stocke ce contenu. L'utilisateur recevra ces données généralement sur un téléphone mobile, une tablette ou tout autre dispositif équivalent. La généralisation des accès haut débit, réseaux 4G par exemple, ainsi que l'avènement du standard de compression de codage vidéo à efficacité élevée HEVC (High Efficiency Video Coding) vont conduire à un usage de la vidéo en ligne plus important que celui observé aujourd'hui. Le problème de l'autonomie de terminaux mobiles est donc un problème crucial. Actuellement, des techniques de réduction de consommation sont connues pour pallier en partie ce problème. Ces techniques sont mises en oeuvre par les fabricants de circuits intégrés. Elles reposent sur l'observation dynamique de l'utilisation des processeurs des terminaux mobiles et ajustent les fréquences de travail et les tensions d'alimentation électrique en fonction du résultat, ce qui va donc modifier la puissance consommée. Malheureusement, la réactivité de ces dispositifs n'est pas suffisante et pourrait être améliorée. Des travaux sont menés pour améliorer le comportement du terminal afin que l'ajustement de fréquence/tension d'alimentation du processeur soit plus dynamique et fonction de la complexité de l'image à décoder, permettant ainsi de gérer l'énergie nécessaire, mais ceci aura sans doute une limite liée à la nature du flux à décoder. Les solutions actuelles de diffusion adaptative des flux ou en anglo-saxon « adaptive streaming », quelque soit le standard utilisé, adoptent une stratégie de sélection des segments ou morceaux de média audio/vidéo à télécharger, basée uniquement sur le couple résolution/débit. Ainsi, si les conditions de réseau sont bonnes, le terminal va pouvoir sélectionner et décoder des segments de résolution élevée et de débit élevé, conduisant à une complexité de décodage élevée. Le groupe de travail «green MPEG» propose d'introduire un troisième critère de sélection des segments vidéo à télécharger qui est la consommation d'énergie. Un objectif de la présente invention est de proposer un procédé qui repose sur l'utilisation d'un indice exprimant en relatif l'énergie nécessaire pour le décodage et la restitution visuelle et sonore d'un flux (ou représentation) par rapport au flux le plus gourmand pour un contenu d'informations donné, ceci de manière indépendante du codeur utilisé pour coder les segments et du processeur du terminal. Le procédé selon l'invention repose notamment sur le calcul, pour chaque représentation de données multimédia produite par le codeur, d'un fournisseur de services, d'un indice lié à l'énergie nécessaire pour le décodage et la restitution de ces données par rapport à la représentation qui génère la consommation énergétique la plus forte. Le procédé s'applique de façon préférentielle à des terminaux fonctionnant sur batterie mais peut aussi avoir un intérêt pour un dispositif alimenté sur le secteur. L'invention concerne un procédé de diffusion adaptative de flux de données multimédia ou représentation Fi provenant d'un fournisseur de services, lors d'un téléchargement entre un terminal de réception et un serveur, en fonction d'un critère d'énergie, caractérisé en ce qu'il comporte au moins les étapes suivantes : - déterminer, pour N représentations, un indice d'énergie en calculant pour chacune des représentations Fi, une valeur d'énergie Ei(ti) consommée pour décoder et restituer la représentation Fi , la valeur maximale d'énergie Emax associée à la représentation la plus consommatrice d'énergie, et les valeurs des rapports correspondant Ei(ti), mémoriser ces valeurs dans un fichier E max manifest associant à une représentation Fi, un indice Ei(ti) E max - déterminer en fonction de l'énergie disponible pour le terminal de réception, la représentation Fi du contenu à télécharger, - mesurer la consommation d'énergie utilisée par le terminal au cours de la restitution de la représentation Fi, et choisir une autre représentation Fi si la réserve d'énergie du terminal est insuffisante pour restituer en totalité le contenu multimédia sur la base de la représentation F. Selon un mode de réalisation, on utilise un indicateur d'économie d'énergie PSRi =1 Ei(ti)pour contrôler le choix de la représentation à télécharger. E max Les valeurs des rapports Ei(ti)sont, par exemple, calculées en temps E max réel et le fichier manifest mis à jour en conséquence. Les données traitées par le procédé sont des données vidéo et les valeurs d'énergies des représentations sont basées sur une estimation de la complexité de décodage de la représentation et de la consommation du rétro-éclairage de l'écran du terminal utilisateur en fonction de la luminance des pixels des données vidéo. L'invention concerne aussi un système pour gérer le choix de la représentation ou flux de données multimédia provenant d'un fournisseur de services, lors d'un téléchargement entre un terminal de réception et un serveur, en fonction de l'énergie dont dispose le terminal caractérisé en ce que le fournisseur de services comprend un module adapté à calculer un indice d'énergie correspondant au rapport de l'énergie nécessaire pour décoder et restituer une représentation Fi par rapport à la représentation qui génère la consommation d'énergie la plus forte, un fichier manifest comprenant pour N flux Fi ledit indice d'énergie Ei(ti) le serveur E max mémorisant ledit fichier et les données multimédia, et le terminal de réception comprenant un module de calcul de l'énergie consommée pour la restitution d'un flux Fi, un lecteur multimédia adapté à choisir la représentation Fi en fonction de la valeur d'énergie mesurée, des moyens de communication avec le serveur. Selon un mode de réalisation, le terminal de réception est un terminal mobile comprenant un écran et la représentation est un flux vidéo, le module du fournisseur de services est adapté à estimer la complexité de décodage de ce flux vidéo, et le module adapté à estimer la consommation du rétro-éclairage de l'écran du terminal utilisateur. L'invention concerne un terminal de réception d'au moins une représentation multimédia Fi en provenance d'un serveur, ledit terminal comprenant au moins un module de calcul de l'énergie consommée pour la restitution de ladite représentation sur un ou plusieurs segments ledit terminal étant caractérisé en ce 5 qu'il comporte un module adapté à choisir de manière automatique ou manuelle une représentation parmi plusieurs desdites représentations, lesdites représentations étant définies par un indicateur de consommation d'énergie de la représentation dudit flux par rapport à la représentation dudit flux ayant la consommation maximale. Selon un mode de réalisation, le choix automatique est effectué par 10 comparaison d'un paramètre représentatif d'une durée dudit flux avec une donnée représentative de l'énergie disponible sur le terminal. Le terminal comprend, par exemple, un lecteur de données vidéo et un écran permettant la visualisation des données vidéo. 15 D'autres caractéristiques et avantages du procédé selon l'invention apparaîtront mieux à la lecture de la description qui suit d'un exemple de réalisation donné à titre illustratif et nullement limitatif annexé des figures qui représentent : - La figure 1, les modules de base d'un fournisseur de service, utilisés pour calculer l'indice d'énergie associé à un flux de données du côté codeur du 20 système, - La figure 2, le système de la figure 1 associé à un module de mise en forme des flux de données, - La figure 3, un système complet comprenant le système du côté codeur, un serveur et un terminal mobile, et 25 - La figure 4, un diagramme des échanges entre les acteurs du système. La description qui suit est donnée à titre illustratif et nullement limitatif pour bien faire comprendre le procédé selon l'invention dans le cas d'une représentation ou flux vidéo qu'un utilisateur souhaite télécharger sur son terminal. Le mot terminal 30 dans l'exemple donné désigne un téléphone mobile, une tablette ou tout dispositif connecté permettant de recevoir des flux multimédia. Il peut être utilisé, sans sortir du cadre de l'invention dans le cas de flux ou données multimédia, audio, etc. Le terme flux multimédia peut désigner des programmes variés, tels que des jeux vidéo, des films, de la musique, qui sont distribués à travers des réseaux de communication. Le contenu source multimédia est scindé en plusieurs segments d'une taille qui peut être variable, qui sont ensuite codés (par exemple comprimés) avec différentes valeurs de débits et/ou de résolutions constituant ainsi les diverses représentations disponibles. Ces représentations sont stockées sur un serveur et accompagnées d'un fichier d'index pouvant être dynamique (fichier manifest) décrivant la nature et l'adresse de stockage des représentations disponibles. Le terme « représentation » dans la présente description désigne donc un ensemble de données codées avec des paramètres de compression choisis, ou flux de données. Une représentation est fournie à un instant donné pour une durée pouvant être prédéfinie par l'application ou non définie dans le cas d'une application en direct ou « live ». La figure 1 représente un exemple d'une architecture 20 fournisseur de services, dans lequel les données vidéo Di sont transmises à un premier codeur 100 qui va produire un flux comprimé correspondant à une première représentation vidéo F1, le flux est codé à une première valeur de débit Qi et une valeur de résolution P1. Cette représentation vidéo F1 est transmise à un décodeur 110 et à un module 120 adapté à calculer la complexité de décodage de cette représentation vidéo. Le codeur 100 fournit par ailleurs des informations sur la luminance des données multimedia à un module 130 adapté à calculer la luminance des pixels associés aux images vidéo. Les modules de calcul de complexité de décodage et le module de calcul de luminance sont reliés à un processeur 140. Lors de la préparation d'une représentation, il est possible de générer des segments de divers débit /résolution vidéo, mais aussi sur un même couple débit/résolution, de générer des segments induisant des consommations différentes du terminal de réception. A un instant donné ti qui est associé à une représentation vidéo Fi, le module 120 estime la complexité de décodage Cd(Fi) de la représentation vidéo F. Le module, 130 estime, par exemple en utilisant un histogramme de luminance, la tension d'alimentation nécessaire Ca(Fi) à l'affichage des données vidéo sur un écran utilisateur, ceci pour une représentation Fi donnée. Le processeur 140 va ensuite calculer les tensions d'alimentation requises pour le décodage et la restitution de la représentation Fi et les traduire en une valeur d'énergie totale Ei(Fi) On exécute cette étape pour les N codeurs 101, 102, ...10N du système qui génèrent N représentations différentes, N débits QN, N résolutions PN. Chaque codeur 1 oi est relié à un module 12; pour calculer la complexité de décodage d'une représentation vidéo et à un module 13; adapté à calculer la luminance des pixels. Sans sortir du cadre de l'invention les codeurs pourraient être reliés à un module permettant de calculer la complexité de décodage de chaque représentation vidéo, et à un module unique adapté à calculer la luminance des pixels. Le processeur 140 détermine ensuite la valeur la plus élevée Emax de l'énergie Ei(ti) parmi les N valeurs Ei(ti). La valeur de l'énergie Ei(ti) pour une représentation Fi tient compte de la luminance des pixels et de la complexité de décodage de la représentation, par exemple en nombre de cycles de traitement. A partir de ces valeurs d'énergie, le processeur 140 va déterminer une valeur de rapport EiN/Emax pour une représentation Fi donnée à un instant donné, consommation.d'énergie.pour.une.représentation.donnée.Fi valeur. max imale.des.consommations.d'énergie.pour.les.N.représentations Le calcul de ce rapport est calculé pour chacune des représentations et remis à jour régulièrement. Le processeur 140 va définir ensuite pour chacune des représentations un ratio d'économie d'énergie PSR (Power Saving Ratio) PSRi =1 Ei(ti) Le système va donc disposer d'un fichier dans lequel, pour une représentation donnée Fi à un instant ti, il associe un indice PSRi représentatif de l'énergie ou de l'économie d'énergie pouvant être réalisée lorsque l'on choisit de télécharger une représentation plutôt qu'une autre. Ce rapport peut être normalisé sur une échelle quelconque (par exemple de 0 à 10 ou sur 16 valeurs). L'échelle sera par exemple choisie en fonction de la précision de contrôle des processeurs des terminaux. La valeur de ce rapport PSRi est incluse comme une métadonnée associée à une représentation dans un fichier manifest 150. Le flux le plus gourmand en énergie est identifié par une valeur nulle de PSR. Pour chaque autre représentation, on indique une valeur relative de PSRi. Les valeurs relatives sont par exemple exprimées, soit en %, soit sous forme discrétisée sur une échelle graduée, par exemple par des valeurs +1, +2,.,etc. E max Le fichier manifest 150 peut être mis à jour régulièrement, afin de tenir à jour l'état relatif de consommation d'énergie des représentations. En fonction de la stratégie des terminaux, ce fichier manifest pourra être analysé plus ou moins régulièrement, ceci en fonction notamment de la précision requise par l'application. Par exemple pour une application demandant une réactivité forte, le procédé va regarder les informations du fichier manifest pour chaque segment qu'il va télécharger, alors que pour d'autres types d'application, l'information ne sera fournie que sur le programme dans son ensemble. Il est également possible de déclencher une requête tous les « n » segments. Les flux ou représentations des données issues des codeurs 101, 102, ...10N sont mis en forme et encapsulés, figure 2, au moyen d'un module 160 adapté afin que les représentations soient dans un format accessible aux terminaux. Les données mises en forme ainsi que le fichier manifest 150 sont transmis au serveur 30. Le serveur comprend plusieurs mémoires, une mémoire 301 permettant de stocker les flux de données. Le fichier manifest 150 comprenant pour chaque représentation Fi la valeur de PSR; est mémorisé sur le serveur 30. Le serveur contient aussi un gestionnaire permettant de gérer dynamiquement les requêtes d'un utilisateur. La figure 3 et la figure 4 illustrent un exemple d'échanges entre un terminal de réception 40, le serveur 30 et un fournisseur de services 10. Le fournisseur de services transmet 500 un fichier manifest au serveur définissant ainsi l'ensemble des représentations disponibles. L'utilisateur ou terminal comprend par exemple, une alimentation 401 (pouvant être une batterie dans le cas d'un terminal mobile), un processeur 402 sur lequel fonctionne un lecteur multimédia 405, adapté pour exécuter les étapes du procédé selon l'invention, un écran d'affichage 403, un module de surveillance 404 de la consommation d'énergie de l'alimentation, un ou plusieurs haut-parleurs 406, des moyens de communication 407 avec le serveur, ces moyens de communication étant connus de l'homme du métier. Le terminal de réception 40 émet, 501, vers le serveur 30 une requête Rq de téléchargement d'une représentation vidéo Fi contenant une émission qu'il souhaite visualiser, par exemple. Le lecteur du terminal va déterminer en fonction de l'état du réseau (largeur de bande disponible déterminée à partir de la capacité et de la charge du réseau), la représentation à télécharger parmi les N représentations disponibles décrites dans le fichier manifest. Il commence à télécharger et jouer la représentation Fi, 502, et en même temps il surveille, 504, la consommation d'énergie de la batterie 401 pour le décodage et la restitution de la représentation F. A partir de la valeur de durée totale du contenu multimedia que souhaite télécharger l'utilisateur (cas de la Vidéo à la demande), de sa consommation d'énergie dans le temps, par exemple, en regardant la vitesse à laquelle la batterie du terminal mobile se décharge, le lecteur du terminal va estimer s'il aura suffisamment d'énergie pour télécharger la totalité du contenu. Si oui, il va continuer à télécharger la représentation F. Dans le cas contraire, le ou les processeurs de l'utilisateur vont calculer de combien ils doivent réduire leur consommation d'énergie, par exemple de x% par rapport à la représentation courante. A partir des abaques processeur (puissance consommée / tension d'alimentation), le ou les processeurs peuvent traduire cette réduction de consommation d'énergie de x% en ratio de type PSR de y%. La représentation courante consommée étant elle-même définie comme étant à z% de la représentation la plus consommatrice, le « lecteur » va ensuite rechercher, 504, dans le fichier manifest une représentation Fi, 505, ayant un rapport de z + (1-z/100)*y% ce qui lui permettra de télécharger le contenu jusqu'à son terme. Pour d'autres cas d'applications où la durée du contenu n'est pas un paramètre connu à l'avance, par exemple dans le cas d'applications en direct ou« live », on peut imaginer que le terminal mobile soit conçu pour afficher la durée d'utilisation possible s'il continue à consommer la représentation choisie. La sélection de flux ne serait alors plus gérée automatiquement mais l'utilisateur, sur la base de cet indicateur de durée restante possible, pourrait intervenir au moyen d'un bouton ou autre afin de pouvoir changer de flux et trouver un flux moins consommateur en énergie. Le procédé selon l'invention présente notamment les avantages suivants : le codeur est capable de déterminer une valeur de rapport d'économie d'énergie pour chaque représentation par rapport à la valeur maximale de consommation d'énergie ce qui rend le procédé indépendant du type de codeur utilisé et du type de terminal qui recevra ces flux. Le terminal de réception est capable d'adapter la représentation à utiliser en fonction de l'énergie restante de sa batterie s'il connaît la durée d'utilisation souhaitée ou de fournir la durée d'utilisation possible de la représentation courante. L'indice d'énergie utilisé pour choisir le flux de données à télécharger est indépendant du processeur de l'utilisateur et du codeur utilisé par le fournisseur de services. REVENDICATIONS1 - Procédé de diffusion adaptative de flux de données multimédia ou représentation Fi provenant d'un fournisseur de services (20), lors d'un téléchargement entre un terminal de réception (40) et un serveur (30), en fonction d'un critère d'énergie, caractérisé en ce qu'il comporte au moins les étapes suivantes : - déterminer, pour N représentations, un indice d'énergie en calculant pour chacune des représentations Fi, une valeur d'énergie Ei(ti) consommée pour décoder et restituer la représentation Fi , la valeur maximale d'énergie Emax associée à la représentation la plus consommatrice d'énergie, et les valeurs des rapports correspondant Ei(ti), mémoriser ces valeurs dans un fichier E max manifest (150) associant à une représentation Fi, un indice Ei(ti) E max - déterminer en fonction de l'énergie disponible pour le terminal de réception (40), la représentation Fi du contenu à télécharger, - mesurer la consommation d'énergie utilisée par le terminal au cours de la restitution de la représentation Fi, et choisir une autre représentation Fi si la réserve d'énergie du terminal est insuffisante pour restituer en totalité le contenu multimédia sur la base de la représentation F. 2 - Procédé selon la revendication 1 caractérisé en ce que l'on utilise l'indicateur d'économie d'énergie PSRi =1 Ei(ti)pour contrôler le choix de la représentation à E max télécharger. 3 - Procédé selon la revendication 1 ou 2 caractérisé en ce que les valeurs des rapports Ei(ti)sont calculées en temps réel et le fichier manifest (150) mis à jour en E max conséquence. 4 - Procédé selon l'une des revendications 1 à 3 caractérisé en ce que les données sont des données vidéo et en ce que les valeurs d'énergies des représentations sont basées sur une estimation de la complexité de décodage de la représentation et dela consommation du rétro-éclairage de l'écran du terminal utilisateur en fonction de la luminance des pixels des données vidéo. - Système pour gérer le choix de la représentation ou flux de données multimédia 5 provenant d'un fournisseur de services (20), lors d'un téléchargement entre un terminal de reception (40) et un serveur (30), en fonction de l'énergie dont dispose le terminal caractérisé en ce que le fournisseur de services (10) comprend un module (12i, 13i) adapté à calculer un indice d'énergie correspondant au rapport de l'énergie nécessaire pour décoder et restituer une représentation Fi par rapport à la représentation qui génère la consommation d'énergie la plus forte, un fichier manifest (150) comprenant pour N flux Fi ledit indice d'énergie Ei(ti) le serveur (30) E max mémorisant ledit fichier (150) et les données multimédia, et le terminal de réception comprenant un module (404) de calcul de l'énergie consommée pour la restitution d'un flux Fi, un lecteur multimédia (405) adapté à choisir la représentation Fi en fonction de la valeur d'énergie mesurée, des moyens de communication (407) avec le serveur. 6 - Système selon la revendication 5 caractérisé en ce que le terminal de réception est un terminal mobile comprenant un écran (130) et en que la représentation est un flux vidéo, le module (12) du fournisseur de services est adapté à estimer la complexité de décodage de ce flux vidéo, et le module (13) adapté à estimer la consommation du rétro-éclairage de l'écran du terminal utilisateur. 7 - Terminal de réception d'au moins une représentation multimédia Fi en provenance d'un serveur (30), ledit terminal comprenant au moins un module (404) de calcul de l'énergie consommée pour la restitution de ladite représentation sur un ou plusieurs segments ledit terminal étant caractérisé en ce qu'il comporte un module (402) adapté à choisir de manière automatique ou manuelle une représentation parmi plusieurs desdites représentations, lesdites représentations étant définies par un indicateur de consommation d'énergie de la représentation dudit flux par rapport à la représentation dudit flux ayant la consommation maximale.8 - Terminal de réception d'un flux multimédia selon la revendication 7, caractérisé en ce que le choix automatique est effectué par comparaison d'un paramètre représentatif d'une durée dudit flux avec une donnée représentative de l'énergie disponible sur le terminal. 9 - Terminal de réception selon l'une des revendications 8 ou 9 caractérisé en ce qu'il comporte un écran (130) et un lecteur de données vidéo.