Brevet FR2855702A1 — publié le 20041203

-'l La présente invention concerne un procédé de traitement d'ensembles de données de description de contenus multimédia, pour la fourniture d'une pluralité d'ensembles de sortie à partir d'un unique ensemble d'entrée. L'invention concerne également l'utilisation d'un tel procédé. On connaît des procédés de génération d'ensembles de données de description de contenus multimédia, notamment selon le standard DVB (de l'anglais "Digital Video Broadcast"). Une fois générés, ces ensembles sont destinés à être transmis à des moyens de stockage distants sous forme de fichiers, ou bien tout simplement à être diffusés avec les contenus multimédia auxquels ils sont associés. Cependant, la taille de 10 ces ensembles de données ne peut pas être modifiée une fois que ceux- ci sont générés, notamment pour répondre à des contraintes du réseau de diffusion, ou des contraintes des moyens de stockage distants. Autrement dit, une fois que l'ensemble de données de description est généré par l'opérateur de service ou de réseau, il est transmis à destination des récepteurs sans pouvoir être modifié dynamiquement. Sur un réseau de diffusion DVB, dans le cadre d'un transfert de données MPEG2, le débit instantané disponible est élevé et constant, ce qui permet de transmettre aisément ces ensembles de données de description. Par contre, sur un réseau de type Internet, pour lequel la qualité de service est variable, la transmission de ces ensembles de données peut poser des problèmes, lorsqu'ils sont trop volumineux. En conclusions, ce 20 qui ne pose pas de problème en diffusion classique devient problématique dans le contexte d'lnternet. L'invention vise à remédier à cet inconvénient en fournissant un procédé de traitement d'ensembles de données de description permettant de prendre en compte des contraintes du réseau de diffusion ou des moyens de stockage destinataires des 25 ensembles de données, lors de la génération de ces ensembles de données. L'invention a donc pour objet un procédé de traitement d'ensembles de données de description de contenus multimédia pour la fourniture d'une pluralité d'ensembles de sortie à partir d'un unique ensemble d'entrée, caractérisé en ce qu'il comporte les étapes suivantes: - on affecte des coefficients de priorité à au moins une partie des données de description de l'ensemble d'entrée; - on associe à un nombre prédéterminé d'ensembles de sortie, des seuils de coefficients de priorité ; et - on répartit les données dans les ensembles de sortie en fonction des 35 coefficients de priorité affectés aux éléments de l'ensemble d'entrée et des seuils associés à chacun des ensembles de sortie. Ainsi, en fonction des coefficients de priorité affectés à chacune des données de description, celles-ci sont réparties dans des ensembles de sortie différents associés à des priorités différentes. Ceci permet de choisir quel ensemble de sortie sera transmis à un destinataire, en fonction des contraintes du réseau pour parvenir à ce destinataire ou en fonction des capacités de stockage du destinataire. Un procédé de traitement d'ensembles de données selon l'invention peut en outre comporter les caractéristiques suivantes: - on affecte un coefficient de priorité spécifique prédéterminé aux données de description devant être contenues dans tous les ensembles de sortie; - chaque donnée de description à laquelle est affectée un coefficient de priorité autre que ledit coefficient de priorité spécifique est contenue dans un unique ensemble de sortie déterminé en fonction des seuils associés aux ensembles de sortie; - chaque donnée de description à laquelle est affectée un coefficient de 15 priorité autre que ledit coefficient de priorité spécifique est contenue dans un ou plusieurs ensembles de sortie déterminés en fonction des seuils associés aux ensembles de sortie, de sorte que toutes les données d'un ensemble de sortie quelconque sont contenues dans tout autre ensemble de sortie comportant des données moins prioritaires que celles dudit ensemble de sortie 20 quelconque; - le procédé comporte en outre une étape de transmission d'au moins l'un des ensembles de sortie vers un destinataire en fonction des capacités de moyens de transmission des données de description vers le destinataire; le procédé comporte en outre une étape de transmission d'au moins l'un 25 des ensembles de sortie vers un destinataire en fonction des capacités de moyens de stockage du destinataire; - le procédé comporte en outre une étape de transmission d'au moins l'un des ensembles de sortie vers un destinataire en fonction d'un niveau de souscription de l'usager à un service prédéterminé; - le procédé comporte en outre une étape de transmission d'au moins l'un des ensembles de sortie vers un destinataire en fonction d'un paiement effectué préalablement pour l'accès à cet ensemble de sortie. L'invention a également pour objet l'utilisation d'un procédé de traitement d'ensembles de données de description tel que défini précédemment, pour le traitement 35 d'un fichier de données XML. Enfin, I'invention a également pour objet un programme d'ordinateur adapté pour le traitement d'ensembles de données de description de contenus multimédia, pour la fourniture d'une pluralité d'ensembles de sortie à partir d'un unique ensemble d'entrée, caractérisé en ce qu'il comporte: des moyens de lecture d'un ensemble de coefficients de priorité affectés à au moins une partie des données de description de l'ensemble d'entrée; des moyens de lecture d'un ensemble de seuils de coefficients de priorité associés à un nombre prédéterminé d'ensembles de sortie; et - des moyens de répartition des données dans les ensembles de sortie en 10 fonction des coefficients de priorité affectés aux éléments de l'ensemble d'entrée et des seuils associés à chacun des ensembles de sortie. L'invention sera mieux comprise à l'aide de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés dans lesquels: - la figure 1 représente schématiquement la structure d'un système de mise 15 en oeuvre d'un procédé de traitement d'ensembles de données selon l'invention; - la figure 2 représente les étapes successives d'un procédé selon l'invention; - la figure 3 illustre symboliquement des fichiers de sortie fournis par un 20 procédé selon un premier mode de réalisation de l'invention; - la figure 4 illustre symboliquement des fichiers de sortie fournis par un procédé selon un second mode de réalisation de l'invention; - la figure 5 représente schématiquement la structure générale d'un premier système permettant l'utilisation d'un procédé selon l'invention; et - la figure 6 représente schématiquement la structure générale d'un second système permettant l'utilisation d'un procédé selon l'invention. Le système représenté sur la figure 1 comporte un ensemble 10 de données XML (de l'Anglais " eXtended Markup Language ") d'entrée destiné à être traité par un filtre 12, pour la fourniture en sortie du filtre d'une pluralité d'ensembles de sortie 141, 142, , 30 14n, chacun de ces ensembles de sortie comportant une partie des données XML contenues dans l'ensemble 10. On notera que les données XML ne constituent qu'un exemple de données de description et que l'invention peut également s'appliquer à des données de description conformes à un autre standard. Le filtre 12 est par exemple un programme exécutable stocké par un microordinateur (non représenté). Le filtre 12 est adapté pour recevoir en entrée un fichier 16 de coefficients de priorité associés à chacune des données de description de l'ensemble 10 de données XML. Chaque donnée XML est soit un élément délimité par une balise ouvrante et une balise fermante de même nom dans l'ensemble de données XML 10, soit un attribut rattaché à un élément. Le fichier 16 associe alors à chaque donnée XML un coefficient de priorité. Le filtre 12 est également adapté pour recevoir en entrée un fichier 18 comportant des seuils de coefficients de priorité, ces seuils étant associés respectivement aux ensembles 141,142, ... 14.4n Dans un mode de réalisation préféré, on affecte aux données des coefficients de 10 priorité d'autant plus élevés que les données associées à ces coefficients sont de priorité faible. Ainsi, on affecte un coefficient de priorité égal à zéro, pour les données de description les plus importantes, c'est-à-dire celles qui doivent être contenues dans tous les ensembles de sortie 141, 142, ..., 14n. On affecte ensuite des coefficients strictement positifs aux autres données, déterminés en fonction de leur importance. Enfin, en ce qui 15 concerne les données de description les moins importantes, on peut ne pas leur affecter de coefficient de priorité, si l'on considère que l'absence de coefficient correspond à un coefficient infini. Dans un mode préféré de réalisation, le fichier 18 de seuils de coefficients de priorité comporte n valeurs de seuils N1, ..., Nn. Le filtre 12 est alors configuré pour: - recopier dans l'ensemble 14, les données associées au coefficient de priorité nul et les données associées aux coefficients de priorité inférieurs ou égaux à N1; - recopier dans l'ensemble 142 les données associées au coefficient de 25 priorité nul et les données associées aux coefficients de priorité strictement supérieurs à N1 et inférieurs ou égaux à N2; - recopier dans l'ensemble 14n les données associées au coefficient de priorité nul et les données associées aux coefficients de priorité strictement 30 supérieurs à Nn.1 et inférieurs ou égaux à Nn. En variante, le filtre 12 peut aussi être configuré pour recopier dans un ensemble supplémentaire 14n+1 les données associées au coefficient de priorité nul et les données associées aux coefficients de priorité strictement supérieurs à Nn, notamment les données qui ne sont associées à aucun coefficient de priorité. Il en résulte que les ensembles fournis en sortie 141, 142, ..., 14, (et éventuellement 14n+l) ont la propriété d'être complémentaires, c'est-à-dire que les données de description qu'ils contiennent sont distinctes, à l'exception des données de description associées au coefficient de priorité nul. Les ensembles de sortie 141, 142, ..., 14n sont ensuite destinés à être transmis à travers un réseau de transmission de données ou à être stockés dans des moyens de stockage d'un ou plusieurs destinataires. Dans le cas d'une application à des données de description de contenus audiovisuels, l'ensemble de sortie 14, comporte les données les plus importantes, par exemple le titre ou la durée d'un film, alors que les autres ensembles 142, ..., 14n (et éventuellement 14,+0) comportent des données de moins en moins importantes, telles que 10 par exemple les acteurs ou la date de réalisation d'un film. Pour illustrer plus précisément le système qui vient d'être décrit, I'ensemble de données d'entrée est par exemple une table XML telle que la table suivante, inspirée des spécifications du forum TV-Anytime: 35 Concert La fée Chevalier Roi 30 Un fichier de construction des coefficients de priorité est par exemple le fichier suivant: //étape de tri par ordre chronologique de date Opération (field=(dateTime) Schedule/Event/PublishedTimeO, mode=" tri >) 35 Filtre ( //suppression des événements passés (Merlin) Event[((dateTime) EventDescription/PublishedTime() + (duration) EventDescription/PublishedDuration()) 2000-05-31 T14:30:00 1: remove 5) //affectation d'une priorité max aux événements courant et suivant Filtre( Programinformation[position()≤2]: 1 Programinformation[positionO> 2 & positionO Les données de la table d'entrée peuvent avoir des relations d'héritage entre elles, de sorte qu'une donnée parent (par exemple la donnée TVAMain) ayant au moins un 25 descendant peut hériter du coefficient de priorité de ce descendant. Il permet la génération du fichier 16 de coefficients de priorité suivant (présenté sous forme d'un tableau): Elément Priorité/état 1 1 1 Supprimé Supprimé Supprimé Supprimé Supprimé 1 1 1 1 1 1 1 1 1 3 3 3 3 3 65000 Concert 65000 1 La fée 1 3 Chevalier 3 1 Roi 1 Le fichier 18 de seuils est par exemple le fichier suivant: Niveau N1 = 2 Niveau N2 = 4 Niveau N3 = 65000 o le nombre 65000 représente l'infini. L'application du filtre 12 à la table XML précédente avec les fichiers 16 et 18 donnés en exemple donne deux tables XML de sortie 144 et 142. La première table XML 141 comporte les données suivantes: 10 15 Concert 10 La fée 15 La deuxième table XML 142 comporte les données suivantes: 20 2000-05-31 T1 7:10:00/> 25 P1 YOMODTO 1H35MOOS/> Chevalier 35 La figure 2 représente les étapes successives du procédé de traitement mis en oeuvre par le filtre 12. Ce procédé comporte une première étape 30 d'initialisation et de lecture des données fournies en entrée du filtre 12, notamment de lecture des fichiers 16 et 18. Lors 5 de cette étape, un indice i est initialisé à 1, une borne inférieure Binf est initialisée à zéro et une borne supérieure Bsup est initialisée à Ni = Nj. Lors de l'étape 32 suivante, on crée un fichier fi, correspondant au ième ensemble de sortie 14j. Ensuite, lors d'une étape 34 de lecture de l'ensemble 10 de données d'entrée, le 10 filtre 12 cherche puis lit une donnée XML de l'ensemble d'entrée 10 associée à un coefficient de priorité strictement supérieur à Binf et inférieur ou égal Bsup, ou égal à zéro. Lors de l'étape 36 suivante, le filtre 12 accède à la balise correspondant à cette donnée XML et insère la donnée XML dans le fichier de sortie fi. Lors de l'étape de test 38 suivante, le filtre 12 vérifie s'il a lu la dernière donnée XML de l'ensemble d'entrée 10. Si ce n'est pas le cas, on revient à l'étape 34, pour poursuivre la lecture des données XML dans l'ensemble 10 de données d'entrée. Si la dernière donnée XML a été lue, on passe à une étape 40 de validation et de sauvegarde du fichier de sortie fi. Ensuite, lors d'une étape de test 42, on vérifie si le fichier de sortie généré fi est le dernier fichier de sortie devant être généré. Si ce n'est pas le cas, on passe à une étape 44 d'incrémentation. Lors de cette étape 44, I'indice i est incrémenté d'une unité, puis l'on affecte à Binf la valeur Ni-, et à Bsup la valeur Ni. On passe ensuite de nouveau à l'étape 32 pour la création d'un 25 nouveau fichier fi. Sinon, c'est-à-dire si lors de l'étape de test 42 on constate qu'on a généré le dernier fichier de sortie 14n, on passe à une étape 46 de fin de procédé. La figure 3 représente la complémentarité des ensembles de sortie fournis par le procédé de traitement de données de description, conformément au mode de réalisation 30 décrit précédemment. Seuls trois ensembles de sortie sont représentés et sont notés 14'l, 14'2 et 14'3. Dans ce cas, lorsque des données de description sont contenues dans l'un des ensembles de sortie, elles ne sont pas présentes dans les autres ensembles, à l'exception des données de priorité associées au coefficient nul. Ainsi, en fonction des capacités du réseau, ou en fonction des capacités de stockage du destinataire, on 35 transmet l'un uniquement, deux, ou bien trois des ensembles de sortie générés par le filtre 12. En variante, la figure 4 représente les ensembles de sortie fournis par le procédé de traitement de données de description, conformément à un autre mode de réalisation. Seuls trois ensembles de sortie sont représentés et sont notés 14"4, 14"2 et 14"3 pour les distinguer de ceux fournis par le mode de réalisation précédent. Dans ce cas, l'ensemble 5 14"1 comporte toutes les données associées aux coefficients de priorité inférieurs N1. L'ensemble 14"2 contient toutes les données de description associées aux coefficients de priorité inférieurs à N2 et l'ensemble 14"3 comprend toutes les données de description associées aux coefficients de priorité inférieurs N3. Par conséquent, I'ensemble 14"3 contient toutes les données de description de l'ensemble 14"2, qui lui-même contient 10 toutes les données de description de l'ensemble 14"l. Ainsi, dans ce mode de réalisation, en fonction des capacités du réseau, ou en fonction des capacités de stockage du destinataire, on transmet l'un uniquement des ensembles de sortie générés par le filtre 12. Le système représenté sur la figure 5 illustre une première utilisation du procédé 15 décrit précédemment, dans le mode de réalisation tel que décrit en référence à la figure 3, dans le cadre d'une application de diffusion. Il comporte un serveur 70' comprenant des moyens de stockage de l'ensemble 10 de données d'entrée. Le filtre 12 est en outre implémenté sur ce serveur 70'. Le fichier 18 de seuils comporte par exemple trois valeurs seuils et le filtre 12 est 20 configuré pour fournir les trois ensembles de sortie 14'l, 14'2 et 14'3, à partir de ces valeurs seuils. Le serveur 70' est relié à un réseau de transmission de données 72, tel que le réseau Internet, pour diffuser ces ensembles de sortie à différents destinataires, en utilisant la fonction Multicast du réseau Internet. Ainsi, par exemple un premier destinataire est un terminal 74 relié au réseau 72 de transmission de données au moyen d'une ligne ADSL à 512 Kbits/s. Un deuxième destinataire est un terminal 76 relié au réseau 72 de transmission de données au moyen d'une ligne ADSL à 1024 Kbits/s. Enfin, un troisième destinataire est un terminal 78 relié au réseau 72 de 30 transmission de données au moyen d'une ligne ADSL à 2048 Kbits/s. Les données de description sont diffusées par le serveur 70' aux terminaux 74, 76 et 78 de la façon suivante, en fonction des capacités de leur raccordement au réseau 72: - seul l'ensemble de données 14'4 est reçu par le terminal 74; - les ensembles de données 14'4 et 14'2 sont reçus par le terminal 76; et 35 - les ensembles de données 14'", 14'2 et 14'3 sont reçus par le terminal 78. Le système représenté sur la figure 6 illustre une seconde utilisation du procédé décrit précédemment, dans le mode de réalisation tel que décrit en référence à la figure 4. Ce système comporte un serveur 70" relié au réseau 72 de transmission de données. Le filtre 12 est en outre implémenté sur ce serveur 70". Le fichier 18 de seuils comporte par exemple trois valeurs seuils et le filtre 12 est configuré pour fournir les trois ensembles de sortie 14"1, 14"2 et 14"3, à partir de ces valeurs seuils. Un premier terminal 80, tel qu'un téléphone mobile GSM, est relié au réseau 72 de transmission de données et est adapté pour émettre une requête r1 vers le serveur 70". 10 Cette requête contient des informations sur la nature du terminal 80 (téléphone mobile GSM) et donc sur ses capacités à stocker une réponse à cette requête (par exemple, le serveur limitera sa réponse à 2 Ko pour ce terminal). Un deuxième terminal 82, par exemple un assistant numérique personnel, est relié au réseau 72 de transmission de données et est adapté pour émettre une requête r2 vers 15 le serveur 70". Cette requête contient des informations sur la nature du terminal 82 (assistant numérique personnel) et donc sur ses capacités à stocker une réponse à cette requête (par exemple, le serveur limitera sa réponse à 3 Ko pour ce terminal). Enfin, un troisième terminal 84, par exemple un micro-ordinateur, est relié au réseau 72 de transmission de données et est adapté pour émettre une requête r3 vers le serveur 20 70". Cette requête contient des informations sur la nature du terminal 84 (microordinateur) et donc sur ses capacités à stocker une réponse à cette requête (par exemple, le serveur limitera sa réponse à 10 Ko pour ce terminal). En conséquence, les données de description sont transmises par le serveur 70" aux terminaux 80, 82 et 84 de la façon suivante, en fonction des capacités de leur 25 raccordement au réseau 72: - seul l'ensemble de données 14"4 est transmis au terminal 80; - seul l'ensemble de données 14"2 est transmis au terminal 82; et - seul l'ensemble de données 14"3 est transmis au terminal 84. REVENDICATIONS 1. procédé de traitement d'ensembles de données de description de contenus multimédia, pour la fourniture d'une pluralité d'ensembles de sortie (141, 142, ..., 14,) à 5 partir d'un unique ensemble d'entrée (10), caractérisé en ce qu'il comporte les étapes suivantes: - on affecte des coefficients de priorité (16) à au moins une partie des données de description de l'ensemble d'entrée (10); - on associe à un nombre prédéterminé d'ensembles de sortie (141, 142, ... . 10 14n), des seuils (18) de coefficients de priorité ; et - on répartit les données dans les ensembles de sortie (141, 142, ..., 14n) en fonction des coefficients de priorité (16) affectés aux éléments de l'ensemble d'entrée et des seuils (18) associés à chacun des ensembles de sortie. 2. Procédé de traitement d'ensembles de données selon la revendication 1, 15 caractérisé en ce qu'on affecte un coefficient de priorité spécifique prédéterminé aux données de description devant être contenues dans tous les ensembles de sortie (141, 142, ..., 14). 3. Procédé de traitement d'ensembles de données selon la revendication 2, caractérisé en ce que chaque donnée de description à laquelle est affectée un coefficient 20 de priorité autre que ledit coefficient de priorité spécifique est contenue dans un unique ensemble de sortie déterminé en fonction des seuils (18) associés aux ensembles de sortie. 4. Procédé de traitement d'ensembles de données selon la revendication 2, caractérisé en ce que chaque donnée de description à laquelle est affectée un coefficient 25 de priorité autre que ledit coefficient de priorité spécifique est contenue dans un ou plusieurs ensembles de sortie déterminés en fonction des seuils (18) associés aux ensembles de sortie, de sorte que toutes les données d'un ensemble de sortie quelconque sont contenues dans tout autre ensemble de sortie comportant des données moins prioritaires que celles dudit ensemble de sortie quelconque. 5. Procédé de traitement d'ensembles de données selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il comporte en outre une étape de transmission d'au moins l'un des ensembles de sortie (141, 142, . , 14,) vers un destinataire (74, 76, 78) en fonction des capacités de moyens de transmission des données de description vers le destinataire...CLMF: 6. Procédé de traitement d'ensembles de données selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comporte en outre une étape de transmission d'au moins l'un des ensembles de sortie (141, 142, . , 14n) vers un destinataire (80, 82, 84) en fonction des capacités de moyens de stockage du destinataire...CLMF: 7. Procédé de traitement d'ensembles de données selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comporte en outre une étape de transmission 5 d'au moins l'un des ensembles de sortie (141, 142, ... 14n) vers un destinataire (80, 82, 84) en fonction d'un niveau de souscription de l'usager à un service prédéterminé...CLMF: 8. Procédé de traitement d'ensembles de données selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comporte en outre une étape de transmission d'au moins l'un des ensembles de sortie (141, 142, . , 14n) vers un destinataire (80, 82, 10 84) en fonction d'un paiement effectué préalablement pour l'accès à cet ensemble de sortie (141, 142, .. ., 14n)...CLMF: 9. Utilisation d'un procédé de traitement d'ensembles de données selon l'une quelconque des revendications 1 à 8 pour le traitement d'un fichier de données XML (10). 10. Programme d'ordinateur (12) adapté pour le traitement d'ensembles de données 15 de description de contenus multimédia, pour la fourniture d'une pluralité d'ensembles de sortie (141, 142, ..., 14,) à partir d'un unique ensemble d'entrée (10), caractérisé en ce qu'il comporte: - des moyens (30) de lecture d'un ensemble de coefficients de priorité (16) affectés à au moins une partie des données de description de l'ensemble 20 d'entrée (10); - des moyens (30) de lecture d'un ensemble de seuils (18) de coefficients de priorité associés à un nombre prédéterminé d'ensembles de sortie (141, 142, 14n), ;et - des moyens (34, 36) de répartition des données dans les ensembles de 25 sortie (141, 142, ...., 14n) en fonction des coefficients de priorité (16) affectés aux éléments de l'ensemble d'entrée et des seuils (18) associés à chacun des ensembles de sortie.