FR 2765983 A1 19990115 FR 9709120 A 19970711 Signal de données de modification d'une scène graphique, procédé et dispositif correspondants. Le domaine de l'invention est celui de la restitution de scènes graphiques animées, par exemple sur un terminal multimédia. Plus précisément, l'invention concerne la modification de scènes animées, c'est-à-dire la réalisation de changements ponctuels, commandés à distance par exemple par un serveur distant, d'une scène graphique restituée sur un terminal. Par scène graphique, on entend ici l'agencement d'objets graphiques, vidéo et image dans le temps et dans l'espace. De telles scènes graphiques peuvent être en deux ou trois dimensions, et contenir divers types de primitives graphiques. L'invention trouve des applications dans tous les cas où il peut être nécessaire de modifier la structure d'une scène graphique, ou d'un élément la composant. Ainsi, l'invention peut être utilisée dans un grand nombre d'applications multimédia avancées. En particulier, l'invention peut s'appliquer avantageusement pour: - les services de télévision numériques et de communication avancés, dans lesquels il prévu d'échanger des messages sous forme graphique. I1 est par exemple possible d'ajouter des messages sous forme vidéo pour établir une visio-conférence en superposition d'une vidéo numérique traditionnelle. On peut également prévoir d'ajouter des messages publicitaires ou des logos sur une scène existante; - les applications multi-utilisateurs dans lesquelles on est capable de faire une modification ponctuelle d'une scène à distance. Par exemple, il est envisageable d'ajouter un nouveau "message" sous forme graphique dans un ou plusieurs terminaux distants. I1 est également possible de remplacer certains objets, ou bien de remplacer la totalité de la scène; - les services de consultation multimédia utilisant des objets graphiques 2D ou 3D. Des formats de description de scènes graphiques sont déjà connus. La norme ISO/IEC DIS 14772-1 décrit ainsi le format VRML 2.0. Le groupe de normalisation MPEG-4 a défini également un format de description de scène, appelé BIFS (Binary Format for Scene (format binaire pour scène)), qui s'inspire de VRML 2.0. Le format BIFS est notamment présenté dans "The MPEG-4 Systems Verification Model" (ISO/IEC JTC1/SC29/WG 11-N1693, MPEG 97, avril 1997). Ce format de description de scène a pour but de décrire les relations spatiotemporelles entre les divers objets graphiques d'une scène. Pour cela, il définit un certain nombre de noeuds, ou objets, représentant toutes les primitives graphiques que l'on veut représenter. Chacun de ces noeuds comprend des champs pré-définis qui représentent les caractéristiques de ces noeuds. En d'autres termes, le format BIFS permet de transmettre une structure de scène sous la forme d'une description paramétrique, ou un script. L'inconvénient de cette technique est que, si elle prévoit l'animation d'une scène graphique, elle ne permet pas la modification à distance de celle-ci. I1 n'est par exemple pas possible d'ajouter un nouvel objet, d'en supprimer ou d'en ajouter un autre,... Ces fonctions sont toutefois nécessaires, notamment dans les applications envisagées ci-dessus. On connaît déjà le format dit "External Authoring Interface" (consultable sur le serveur http:/www.sgi.com) qui propose grâce à une interface normalisée en langage "Java" (marque déposée) de modifier les paramètres de la scène. I1 est également possible de pré-programmer des changements dans la scène par des connexions entre champs, qui sont des mécanismes de passage d'événements, encore appelés "ROUTE" en VRML et dans le format BIFS décrit par le groupe MPEG-4. Les "ROUTE" permettent de définir des connexions de façon que, lorsque un premier champ change de valeur, le second champ auquel il est connecté par une "ROUTE" prend également la même valeur. Cependant, ces deux méthodes ont des inconvénients majeurs: - l"'external API" est utilisée pour modifier la scène VRML à l'aide d'une application en langage "Java". Cette application "Java" peut être téléchargée depuis un serveur. Cependant, cette méthode présente les deux inconvénients suivants: le téléchargement d'une classe "Java" est coûteux en ressources de transmission; ce mode suppose que tout terminal implémentant ce mécanisme contienne une machine virtuelle "Java". Les exigences sur le terminal sont donc importantes. - par ailleurs, ces deux méthodes supposent que l'on connaît les paramètres de modification de scène a priori. Ceci n'est évidemment pas le cas lors de l'utilisation d'animation dans une application de communication. Le système MPEG-4 a développé une première version de format de mise à jour de scène, mais elle n'est ni complète ni optimale. L'invention a notamment pour objectif de pallier ces inconvénients de l'état de la technique. Plus précisément, un objectif de l'invention est de fournir un signal de données, ainsi qu'un procédé et un dispositif pour sa mise en oeuvre, qui permettent une modification à distance simple à mettre en oeuvre et qui consomment peu de ressources de transmission de tout type de scènes graphiques. En d'autres termes, l'invention a notamment pour objectif de fournir une technique de modification à distance de scènes graphiques qui répondent à au moins un des critères suivants: - simplicité de la mise en forme et de l'interprétation des données; - faible consommation en moyens de mémorisation et/ou en ressources de transmission; - capacité à modifier tout type d'objet et tout type de scène graphique; - possibilité de modifier des objets, ou noeuds, de façon quelconque, c'est-à-dire non prédéfinie. Un autre objectif de l'invention est de fournir une telle technique, permettant la réalisation de terminaux multimédia simples et peu coûteux, c'est-à-dire ne nécessitant ni des moyens de calcul importants, ni de gros moyens de mémorisation de données. Un objectif de l'invention est encore de fournir une telle technique, pouvant fonctionner sur des réseaux de transmission à bas débit. L'invention a également pour objectif de fournir une telle technique, qui soit compatible avec les normes VRML et MPEG4. Ces objectifs, ainsi que d'autres qui apparaîtront plus clairement par la suite, sont atteints selon l'invention à l'aide d'un signal de données de modification d'une scène graphique, destinée à des moyens de construction d'images pouvant être présentées sur au moins un écran, ledit signal comprenant des trames de mise àjour de ladite scène graphique, portant au moins une des commandes appartenant au groupe comprenant les commandes suivantes: - insertion d'un élément de ladite scène graphique; - modification d'un élément de ladite scène graphique; - suppression d'un élément de ladite scène graphique, lesdits moyens de construction mettant à jour ladite scène en fonction desdites trames de mise ajour. Les opérations de modification d'une scène graphique sont ainsi très simples, et demandent peu de ressources de transmission. Ce signal peut donc être transmis sur des réseaux à faibles débits, et ne nécessitent pas de moyens importants dans les terminaux les recevant. Par "élément", on entend notamment les objets, ou noeuds, les champs d'un noeud, les valeurs d'un champ, les connexions entre deux champs, la scène complète. Ainsi, lesdites commandes d'insertion d'un élément peuvent comprendre des commandes d'insertion d'au moins un des éléments appartenant au groupe comprenant: - insertion d'un nouvel objet; - insertion d'une nouvelle valeur dans un champ vectoriel (ou multiple) existant; - insertion d'un nouvelle connexion entre deux champs de deux objets existants ("ROUTE"). De même, lesdites commandes de suppression d'un élément peuvent comprendre des commandes de suppression d'au moins un des éléments appartenant au groupe comprenant: - suppression d'un objet existant; - suppression d'une valeur dans un champ vectoriel existant; - suppression d'une connexion existante entre deux champs de deux objets existants ("ROUTE"). Lesdites commandes de remplacement d'un élément peuvent quant à elles comprendre des commandes de remplacement d'au moins un des éléments appartenant au groupe comprenant: - remplacement d'un objet existant par un nouvel objet; - remplacement d'un champ de caractérisation d'un objet par un nouveau champ de caractérisation; - remplacement d'une valeur d'un champ de caractérisation vectoriel; - remplacement d'une connexion existante entre deux champs de deux objets existants ("ROUTE") - remplacement d'une scène graphique. Enfin, on prévoit avantageusement une commande de remplacement de la scène graphique existante par une nouvelle scène. Selon un mode de réalisation avantageux de l'invention, lesdites commandes comprennent: - un premier champ désignant le type de commande, parmi au moins certains des types suivants : insertion, suppression, remplacement et remplacement de scène graphique; - un deuxième champ désignant le type d'élément concerné, parmi les éléments suivants, selon le type de commande: objet, champ, valeur de champ vectoriel et connexion; - un troisième champ définissant les éléments concernés. L'invention concerne également un procédé de transmission d'un tel signal. Ce procédé comprend notamment une étape de mise àjour de ladite scène graphique, dans laquelle on assure la transmission de trames de mise à jour de ladite scène graphique, portant au moins une des commandes appartenant au groupe comprenant les commandes suivantes: - insertion d'un élément de ladite scène graphique; - modification d'un élément de ladite scène graphique; - suppression d'un élément de ladite scène graphique; - remplacement de la scène graphique. De même, l'invention concerne encore un dispositif de restitution d'une scène graphique, destinée à être présentée sur au moins un écran, comprenant des moyens de mise à jour de ladite scène, à partir de trames de mise à jour de ladite scène graphique, portant au moins une des commandes appartenant au groupe comprenant les commandes suivantes: - insertion d'un élément de ladite scène graphique; - modification d'un élément de ladite scène graphique; - suppression d'un élément de ladite scène graphique; - remplacement de la scène graphique. D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivantes d'un mode de réalisation préférentiel de l'invention, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels: - la figure 1 illustre le principe général de la mise en oeuvre de l'invention; - la figure 2 présente, de façon schématique la structure d'une trame de mise à jour selon l'invention; - la figure 3 présente le détail de la sémantique des commandes élémentaires de la trame de la figure 2; - la figure 4 présente un premier exemple d'utilisation de la technique de l'invention; - la figure 5 décrit un second exemple d'utilisation de la technique de l'invention. La figure 1 présente donc un synoptique d'un terminal, par exemple compatible avec la norme MPEG-4, et prenant en compte le signal, ou flux, de modification de scène de l'invention. Ce terminal comprend des moyens 11 de création de la scène d'origine, à partir d'un flux de données 12, au format BIFS. En d'autres termes, le terminal charge la scène graphique. Celle-ci est décrite en termes d'objets, ou noeuds. On rappelle que le but du format de description de scène BIFS est de décrire les relations spatio-temporelles entre les objets graphiques d'une scène. Pour cela le format BIFS définit un certain nombre de noeuds représentant toutes les primitives graphiques que l'on veut pouvoir représenter. Les noeuds sont des entités qui représentent une primitive graphique. Par exemple, on peut définir les noeuds Sphere, Cone, Transform... Chacun de ces noeuds ont des champs qui caractérisent le noeud, et qui sont envoyés dans la description de scène juste après la déclaration du noeud. Certains de ces noeuds sont déclarés comme pouvant être référencés. Pour être référencés, on associe un identifiant unique au noeud concerné. Certains des champs sont déclarés comme pouvant être modifiés de l'extérieur, d'autres comme étant des valeurs fixées. Les valeurs modifiables pourront être atteintes par le mécanisme de mise àjour de l'invention. Enfin, les descriptions au format BIFS et VRML comprennent également des entités particulières appelées "ROUTE". Les "ROUTE" sont les déclarations qui permettent dans le langage de description de scène de spécifier le passage d'événements entre deux champs de deux noeuds de la scène. Selon l'invention, certains de ces noeuds peuvent être déclarés comme modifiables, ce qui permettra de les modifier dans le futur. Ceci peut s'exprimer par le mécanisme "DEF" dans VRML, et un mécanisme similaire dans le système MPEG-4. Une fois cette scène chargée, soit par requête de l'utilisateur (mode interactif), soit de manière automatique à un certain instant (mode passif, dit encore push model ), une trame de mise à jour 13, appelée "BIFS-update", peut être chargée pour modifier un ou plusieurs éléments de la scène, en cas de besoin. La modification est assurée par le décodeur 14, qui reçoit la trame 13 et qui effectue les commandes correspondantes. On obtient ainsi une image animée 15, que l'on peut présenter (16) à l'utilisateur. Le cas échéant, celui-ci peut intervenir (17), à l'aide d'une interface appropriée. Cette intervention provoque, le cas échéant, une nouvelle modification. Chaque commande de modification peut avoir 4 formes de base: insertion d'un champ; modification d'un champ; suppression d'un champ; remplacement de toute la scène. Chaque commande élémentaire peut s'appliquer soit sur un seul noeud, un champ vectoriel ou simple, ou encore une "ROUTE". Une quatrième commande est prévue pour le remplacement complet d'une scène. On prévoit donc les commandes de modifications suivantes: Commandes d'insertion: - insérer un nouveau noeud dans une famille de noeuds ("grouping node") existant. On fournit l'identifiant du noeud de type "grouping node" dans lequel on doit insérer un nouveau noeud, "NodeId". Ensuite, on a trois choix pour insérer un nouveau noeud: il est inséré soit à la fin du champ "children" (enfant) du "grouping node", au début, ou à une certaine position repérée par son indice Index. Enfin on envoie la valeur du nouveau noeud à insérer. insérer une nouvelle valeur dans un champ multiple. On fournit l'identifiant du noeud à modifier, "Id", l'indice du champ concerné par la modification, repéré par "fieldNb". Ensuite, on a trois choix pour insérer une nouvelle valeur: celle-ci est insérée soit à la fin du champ multiple, au début, ou à une certaine position repérée par son indice Index. Enfin, on envoie la valeur à insérer. Cette valeur peut être un nouveau noeud, ou bien une nouvelle valeur d'un type quelconque. insérer une nouvelle "ROUTE". Cette "ROUTE" est spécifiée par la spécification du noeud de départ repéré par "idl" et du champ concerné "fieldl", et du noeud repéré par son identifiant "id2" et le champ à modifier "field 2" dans ce noeud. Commande de suppression: on peut supprimer un noeud en donnant son identifiant "id". Il est également possible de supprimer une valeur particulière d'un champ multiple, encore appelée valeur indexée ("idxValue"). Pour cela, on fournit comme précédemment l'identifiant du noeud à modifier, id, le champ concerné par la modificaion repéré par "fieldNb". Enfin, on envoie une certaine position repérée soit par son indice "Index", soit par le fait qu'il s'agit de la première du champ multiple, soit enfin par le fait qu'il s'agit de la dernière valeur du champ multiple. -enfin, on peut supprimer une "ROUTE" en indiquant son identifiant "RouteId". . Commandes de remplacement de valeur: - il est possible de remplacer un noeud en fournissant son identifiant "Id" suivi de la nouvelle valeur du noeud. - on peut remplacer un champ spécifique d'un noeud donné. Pour cela, il faut fournir l'identifiant du noeud à modifier, "Id", le champ concerné par la modification repéré par "FieldNb". Ce champ peut lui-même être un nouveau noeud, un champ à valeur multiple ou un champ à valeur simple. - il est également possible de modifier une valeur spécifique d'un champ multiple. Pour cela, on envoie l'identifiant du noeud à modifier, "Id", et le champ concerné par la modification repéré par "FieldNb", et enfin la position dans le champ multiple repérée soit par son indice "Index", soit par le fait qu'il s'agit de la première du champ multiple, soit enfin par le fait qu'il s'agit de la dernière valeur du champ multiple. Ensuite, on fournit la nouvelle valeur du champ. - I1 est enfin possible de modifier une "ROUTE", en envoyant son identifiant, suivi de la nouvelle "ROUTE" comme spécifiée dans les paragraphes précédents. Commande de remplacement de scène : il est enfin possible de remplacer la totalité de la scène en donnant simplement la nouvelle valeur de la scène totale. La trame "BIFS-update" 13 peut donc être construite selon le schéma de la figure 2. Elle comprend une commande de mise à jour 21, suivi d'un indicateur "continu" 22, valant (par exemple) "0" s'il n'y a plus de commande à suivre dans la trame, et valant "1" sinon (dans l'exemple). La syntaxe des commandes élémentaires peut par exemple être celle illustrée en figure 3. A un premier niveau 31, on associe un code spécifique aux quatre types de commandes, par exemple: - 0: insertion (insert); - 1: suppression (delete) - 2: remplacement (replace); - 3: remplacemenr d'une scène (replacescene). A un deuxième niveau 32, on donne un code spécifique à chaque type d'élément concerne. Ainsi, pour l'insertion, ou l'effacement on distingue: - 0: insertion d'un objet (node); - 1: insertion d'une valeur dans un champ vectoriel (IdxValue); - 2: insertion d'une "ROUTE". Pour les remplacements, on distingue: - 0: remplacement d'un objet (node); - 1: remplacement d'un champ (FieldValue); - 2: remplacement d'un paramètre de champ vectoriel (IdxValue); - 3: remplacement d'une "ROUTE". Enfin, à un troisième niveau 33, on précise les paramètres précis de chaque élément concerné. Ainsi, on indique, de la façon déjà décrite plus haut: - insertion d'un objet : nouvel identifiant de l'objet, et liste des champs, selon la structure décrite ci-dessus; - insertion de paramètres : identifiants du noeud (nodeId) et du champ (field Nb), et positionnement de l'insertion, sous la forme: - code: - 0: début (première valeur); - 1: index de la valeur; - 2: fin (dernière valeur). - valeur correspondante (value). - insertion d'une "ROUTE" : identifiant du noeud source (idl) du champ du noeud source (field 1), identifiant du noeud destinataire (id2), champ du noeud destinataire (field 2); - effacement d'un objet ou d'une "ROUTE" : identifiant de l'élément correspondant; - effacement d'un paramètre: identifiants du noeud, du champ, index, et éventuellement positionnement de la supression; - remplacement d'un objet : identifiant de l'objet, nouvelle valeur de l'objet; - remplacement d'un champ : identifiants du noeud et du champ, nouvelle valeur du champ; - remplacement d'un paramètre : identifiants du noeud et du champ, index du paramètre, nouvelle valeur; - remplacement d'une "ROUTE" : identifiant de la "ROUTE", identifiants du noeud source et du champ source, identifiant du noeud destinataire et du champ destinataire; - remplacement d'une scène : valeur d'une nouvelle scène. On notera que la structure proposée permet de coder sur seulement 2 bits le premier niveau 31, et sur seulement 2 bits le second niveau 32. La figure 4 illustre un premier exemple d'utilisation de la technique de modification proposé selon l'invention, dans le cadre d'une application de télécommerce. A l'initialisation, les utilisateurs 41 et 42 se connectent sur le serveur d'application 43, via leurs terminaux multimédia 44 et 45. Le serveur 43 leur présente une boutique virtuelle par exemple. Le serveur 46 de mise àjour, ou d"'update", informé de cette connexion, peut alors envoyer alors des messages graphiques publicitaires, sous la forme "d'ajout d'objets" pour informer des dernières promotions. Les objets ajoutés apparaissent alors dans la scène présentée par les terminaux. De même, il est possible de supprimer un objet (correspondant par exemple à un objet retiré de la vente), ou de modifier un élément quelconque de la scène. La figure S illustre une autre application de l'invention, à savoir l'enseignement interactif. L'utilisateur de cette application d'enseignement à distance charge une scène initiale depuis son CD-Rom 51, restituée par le décodeur de scène 52. Ensuite, un professeur ou d'autres élèves connectés en réseau font apparaître, en utilisant la représentation "BIFS-Update" selon l'invention, de nouvelles données au tableau 53 pour illustrer le cours. Ces nouvelles données sont décodées par le décodeur 54 de flux d"'update". On décrit maintenant de façon détaillée un exemple de flux de données de modification de scène. Dans cet exemple, on visualise un cube au moment initial, animé dès que l'utilisateur clique sur l'objet. Ensuite, on insère une sphère. Puis, on change l'interpolation des positions pour qu'elle concerne la sphère. Enfin, on supprime le Cube de la scène. Cet exemple est donné dans un format VRML mais peut être aisément transcnt dans sa version binaire en BIFS. La scène originale est donnée par: DEF T Transform ( translation 0 0 -5 children [ DEF TOUCH TouchSensor() Shape ( appearance Appearance ( material DEF M Material f diffuseColor 0.5 0 0 geometry DEF CUBE Cubez size 11 1 DEF TIME TimeSensor DEF INTER CoordinateInterpolator key [0.0, 1.0] keyValue [-5 0 5, 5 0 -5] ROUTE TOUCH.touchTime TO TIME.startTime ROUTE TIME.fraction TO INTER.keyValue ROUTE INTER.value changed TO T.translation Un utilisateur distant peut alors modifier la scène de la manière suivante: Ajout d'un objet (sphère): 0 Commande d'insertion 0 On insère d'un objet dans un "grouping" node T On ajoute a l'objet T 2 On ajoute cet objet à la fin DEF T2 Transform { Nouveau noeud transform contenant une sphère est translation 10 10 0 ajouté children [ Shape f geometry Sphere() . Modification d'une "ROUTE" 2 Commande de remplacement de valeur 4 Remplacement d'une ROUTE 2 On remplace la route 2 ( la troisième dans le fichier) INTER On route vers le noeud "inter" 3 Le champ numéro 3 (value changed) T2 La transformation T2 7 Le champ translation du noeud Transform Ainsi, l'animation va maintenant porter sur la nouvelle sphère insérée. Suppression d'un objet (le cube): 1 Commande de suppression 2 Suppression de noeud CUBE On supprime le cube de la scène REVENDICATIONS 1. Signal de données de modification d'une scène graphique, destinée à des moyens de construction d'images pouvant être présentées sur au moins un écran, caractérisé en ce qu'il comprend des trames de mise à jour de ladite scène graphique, portant au moins une des commandes appartenant au groupe comprenant les commandes suivantes: - insertion d'un élément de ladite scène graphique; - modification d'un élément de ladite scène graphique; - suppression d'un élément de ladite scène graphique, lesdits moyens de construction mettant à jour ladite scène en fonction desdites trames de mise àjour. 2. Signal selon la revendication 1, caractérisé en ce que lesdites commandes d'insertion d'un élément comprennent des commandes d'insertion d'au moins un des éléments appartenant au groupe comprenant: insertion d'un nouvel objet; insertion d'une nouvelle valeur dans un champ vectoriel existant; - insertion d'un nouvelle connexion entre deux champs de deux objets existants ("ROUTE"). 3. Signal selon l'une quelconque des revendications 1 et 2, caractérisé en ce que lesdites commandes de suppression d'un élément comprennent des commandes de suppression d'au moins un des éléments appartenant au groupe comprenant: - suppression d'un objet existant; - suppression d'une valeur dans un champ vectoriel existant; - suppression d'une connexion existante entre deux champs de deux objets existants ("ROUTE"). 4. Signal selon l'une quelconque des revendications 1 à 3, caractérisé en ce que lesdites commandes de remplacement d'un élément comprennent des commandes de remplacement d'au moins un des éléments appartenant au groupe comprenant: - remplacement d'un objet existant par un nouvel objet; - remplacement d'un champ de caractérisation d'un objet par un nouveau champ de caractérisation; - remplacement d'une valeur d'un champ de caractérisation vectoriel; - remplacement d'une connexion existante entre deux champs de deux objets existants ("ROUTE") - remplacement d'une scène graphique. 5. Signal selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il comprend également une commande de remplacement de la scène graphique existante par une nouvelle scène. 6. Signal selon l'une quelconque des revendications 1 à 5, caractérisé en ce que lesdites commandes comprennent: - un premier champ désignant le type de commande, parmi au moins certains des types suivants : insertion, suppression, remplacement et remplacement de scène graphique; - un deuxième champ désignant le type d'élément concerné, parmi les éléments suivants, selon le type de commande: objet, champ, valeur de champ vectoriel et connexion; - un troisième champ définissant les éléments concernés. 7. Procédé de transmission de données de mise à jour d'une scène graphique, destinée à être présentée sur au moins un écran, caractérisé en ce qu'il comprend une étape de mise à jour de ladite scène graphique, dans laquelle on assure la transmission de trames de mise à jour de ladite scène graphique, portant au moins une des commandes appartenant au groupe comprenant les commandes suivantes: - insertion d'un élément de ladite scène graphique; - modification d'un élément de ladite scène graphique; - suppression d'un élément de ladite scène graphique; - remplacement de la scène graphique. 8. Dispositif de restitution d'une scène graphique, destinée à être présentée sur au moins un écran, caractérisé en ce qu'il comprend des moyens de mise à jour de ladite scène, à partir de trames de mise à jour de ladite scène graphique, portant au moins une des commandes appartenant au groupe comprenant les commandes suivantes: - insertion d'un élément de ladite scène graphique; - modification d'un élément de ladite scène graphique; - suppression d'un élément de ladite scène graphique; - remplacement de la scène graphique.