Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR PROTECTING AND CORRECTING A MULTIMEDIA SCENE INFORMATION
Document Type and Number:
WIPO Patent Application WO/2003/007615
Kind Code:
A1
Abstract:
The invention concerns an error-protection method for an information called initial information, describing or modifying a multimedia scene, said scene being represented by a set of elementary graphic and/or audio objects constituting the scene, said initial information enabling reproduction or modification of at least one of said objects. The method consists in forming groups of elementary objects, each of said groups comprising at least one of said objects, a group being adapted to contain one or more other groups in a tree-like structure, each group thus formed being independently error-protected, and in generating an additional information identifying each of said groups. The invention also concerns the corresponding error correction method.

Inventors:
GEGOUT CEDRIC (FR)
GUILLAUME GABRIEL (FR)
PICAUD MICHAEL (FR)
Application Number:
PCT/FR2002/002107
Publication Date:
January 23, 2003
Filing Date:
June 19, 2002
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FRANCE TELECOM (FR)
GEGOUT CEDRIC (FR)
GUILLAUME GABRIEL (FR)
PICAUD MICHAEL (FR)
International Classes:
H04N7/24; (IPC1-7): H04N7/24
Foreign References:
EP1113614A22001-07-04
US5680322A1997-10-21
Other References:
DUCLA-SOARES L ET AL: "Error resilience and concealment performance for MPEG-4 frame-based video coding", SIGNAL PROCESSING. IMAGE COMMUNICATION, ELSEVIER SCIENCE PUBLISHERS, AMSTERDAM, NL, vol. 14, no. 6-8, May 1999 (1999-05-01), pages 447 - 472, XP004165388, ISSN: 0923-5965
SIGNES J ET AL: "MPEG-4'S BINARY FORMAT FOR SCENE DESCRIPTION", SIGNAL PROCESSING. IMAGE COMMUNICATION, ELSEVIER SCIENCE PUBLISHERS, AMSTERDAM, NL, vol. 15, no. 4/5, January 2000 (2000-01-01), pages 321 - 345, XP000989994, ISSN: 0923-5965
BATTISTA S ET AL: "MPEG-4: A MULTIMEDIA STANDARD FOR THE THIRD MILLENNIUM, PART 1", IEEE MULTIMEDIA, IEEE COMPUTER SOCIETY, US, vol. 6, no. 4, October 1999 (1999-10-01), pages 74 - 83, XP000880606, ISSN: 1070-986X
Attorney, Agent or Firm:
Maillet, Alain (5 place Newqua, B.P. 70250 Dinard Cedex, FR)
Download PDF:
Claims:
REVENDICATIONS
1. 1) Méthode de protection contre les erreurs d'une information, dite information initiale, décrivant ou modifiant une scène multimédia, ladite scène étant représentée par un ensemble d'objets graphiques et/ou sonores élémentaires la composant, ladite information initiale permettant de reproduire ou de modifier au moins l'un desdits objets, caractérisée en ce que l'on forme des groupes d'objets élémentaires, chacun desdits groupes comprenant au moins l'un desdits objets, un groupe pouvant contenir un ou plusieurs autres groupes selon une structure arborescente, chaque groupe ainsi formé étant indépendamment protégé contre les erreurs, et que l'on génère une information additionnelle identifiant chacun desdits groupes.
2. Méthode de protection contre les erreurs selon la revendication 1, caractérisée en ce que, pour l'un au moins desdits groupes, l'information additionnelle contient une liste ordonnée des groupes ou des objets le composant, l'ordre de la liste donnant les priorités de correction respectives de ces derniers.
3. Méthode de protection contre les erreurs selon la revendication 1, caractérisée en ce qu'un groupe étant composé d'autres groupes selon une structure arborescente, l'information additionnelle donne l'ordre de composition de ces derniers.
4. Méthode de protection selon la revendication 1, caractérisée en ce que l'information additionnelle donne l'ordre d'apparition des différents groupes lors de la reproduction ou de la modification de ladite scène.
5. Méthode de protection selon la revendication 1, caractérisée en ce qu'un codage canal est appliqué sur chacun des groupes.
6. Méthode de protection contre les erreurs selon l'une des revendications précédentes, caractérisée en ce que, ladite information initiale décrivant ladite scène multimédia selon un arbre de composition, chaque noeud dudit arbre représentant un ou une pluralité desdits objets élémentaires, lesdits groupes sont choisis parmi les noeuds dudit arbre.
7. Méthode de protection contre les erreurs selon la revendication 6, caractérisée en ce que l'information initiale est formulée selon l'un des formats VRML, MPEG4, Flash.
8. Méthode de protection contre les erreurs selon l'une des revendications précédentes, caractérisée en ce que l'information additionnelle est adjointe à l'information initiale préalablement à sa transmission ou son enregistrement.
9. Méthode de protection contre les erreurs selon l'une des revendications précédentes, caractérisée en ce que ladite information additionnelle est formulée selon un langage (SDML) de type XML, adapté à décrire les relations de composition entre groupes.
10. Méthode de protection contre les erreurs selon la revendication 9, caractérisée en ce que chaque groupe est identifié par un premier attribut (xbifs_id) donnant le nom dudit groupe au moyen d'une déclaration d'identification (name=) dudit langage et qu'un groupe peut également tre identifié par un second attribut (alt_xbifs_iS) donnant un nom alternatif audit groupe, le nom alternatif étant utilisé si le groupe n'est pas accessible sous ledit nom.
11. Méthode de protection contre les erreurs selon la revendication 9, caractérisée en ce que la scène multimédia faisant appel à une pluralité de médias, un média étant constitué d'un son, d'une image ou d'une vidéo, chacun desdits médias est identifié par un attribut (media_id) donnant le nom dudit média au moyen d'une déclaration d'identification (name=) dudit langage et qu'un média peut également tre identifié par un second attribut (alt_media_id) donnant un nom alternatif audit média, le nom alternatif étant utilisé si le média n'est pas accessible sous ledit nom.
12. Méthode de protection contre les erreurs selon la revendication 9, caractérisée en ce que ladite information additionnelle comprend au moins une référence à un fichier formaté dans ledit langage, ledit fichier étant identifié par un attribut (file_id) donnant le nom dudit fichier.
13. Méthode de protection contre les erreurs selon la revendication 9, caractérisée en ce que ladite information additionnelle comprend au moins une référence paramétrée à un URL utilisant une pluralité de paramètres, chaque paramètre étant identifié par un attribut (field name) donnant le nom dudit paramètre, chaque paramètre pouvant prendre une ou plusieurs valeurs (field value).
14. Méthode de protection contre les erreurs selon la revendication 9, caractérisée en ce que l'information additionnelle comprend au moins une déclaration associant à une action de l'utilisateur de la scènemultimédia un fichier dudit langage, le fichier étant destiné à tre chargé lorsque ladite action a lieu.
15. Méthode de protection contre les erreurs selon les revendications 10 et 11, caractérisée en ce que ladite information additionnelle comprend au moins une référence d'un premier groupe, d'un média, d'un élément textuel ou d'un élément traduisant une action d'un utilisateur de la scène multimédia, à un second groupe indiquant que le premier groupe, ledit média, ledit élément textuel ou ledit élément traduisant ladite action entre dans la composition dudit second groupe, chaque référence étant associée à un lien de composition (hook), chaque lien de composition étant identifié par un attribut (hook_id) au moyen d'une déclaration d'identification dudit langage.
16. Méthode de protection contre les erreurs selon la revendication 15, caractérisée en ce que ladite information additionnelle comprend une description arborescente de la scène multimédia à partir d'un groupe racine associé à la scène multimédia ellemme, chaque groupe autre que le groupe racine étant lié à un groupe de niveau inférieur par un lien de composition, le groupe racine (body) étant spécifié par le nom d'un groupe au moyen une déclaration (root=) dudit langage.
17. Méthode de protection contre les erreurs selon la revendication 15, caractérisée en ce qu'un premier groupe peut tre inséré dans un second groupe au moyen d'une commande d'insertion <xbifs name='xbifs_id', hook='hook id'>, ladite commande d'insertion spécifiant le nom (xbifs_id) du premier groupe et l'attribut d'identification (hook id) d'un lien de composition relatif au second groupe.
18. Méthode de protection contre les erreurs selon la revendication 9, caractérisée en ce que, si un premier groupe ou un média constitué d'un son, d'une image ou d'une vidéo, est lié à un second groupe pour la protection contre les erreurs, le lien entre ce premier groupe ou ce média et ce second groupe est identifié au moyen d'une déclaration de dépendance (dependsOnXBIFS) dudit langage.
19. Méthode de protection contre les erreurs selon la revendication 18, caractérisée en ce que, si un ordre de priorité est fixé entre des sousgroupes d'un mme groupe, les priorités attribuées aux dits sousgroupes sont identifiés par des déclarations de valeurs de piorité (priority value) dudit langage.
20. Méthode de protection contre les erreurs selon la revendication 9, caractérisée en ce que, si un média est lié à une autre média ou si un groupe est lié à un média pour la protection contre les erreurs, les liens entre ces médias ou entre ce groupe et ce média sont identifiés au moyen d'une déclaration de dépendance (dependsOnMedia) dudit langage.
21. Méthode de protection contre les erreurs selon la revendication 20, caractérisée en ce que, si un ordre de priorité est fixé entre différents médias, une valeur de priorité (priority value) est attribuée à chacun desdits médias au moyen d'une déclaration de priorité dudit langage.
22. Méthode de correction d'erreurs affectant une information décrivant ou modifiant une scène multimédia, ladite information étant fournie par une source après avoir été préalablement protégée contre les erreurs par une méthode de protection selon l'une des revendications précédentes, caractérisée en ce que, si une erreur est détectée dans ladite information, on détermine au moyen de l'information additionnelle, le groupe de plus bas niveau dans lequel est localisée ladite erreur.
23. Méthode de correction d'erreurs selon la revendication 22, caractérisée en ce que l'on transmet à la source une information identifiant le groupe erroné et que ladite source retransmet les objets élémentaires constituant ledit groupe erroné.
24. Méthode de correction d'erreurs selon la revendication 22, caractérisée en ce que l'on transmet à la source une information identifiant l'objet dans lequel est localisée ladite erreur, que ladite source en déduit au moyen de l'information additionnelle, le groupe dans lequel est localisée ladite erreur et que la source retransmet les objets élémentaires constituant le groupe erroné.
25. Méthode de correction d'erreurs selon la revendication 23 ou 24, caractérisée en ce que, si le groupe erroné comporte une liste ordonnée d'objets élémentaires le constituant, les objets élémentaires sont corrigés selon ledit ordre.
26. Méthode de correction d'erreurs selon l'une des revendications 22 à 25, caractérisée en ce que la localisation d'erreur est obtenue par un décodage canal.
27. Serveur d'information multimédia, ladite information ayant été préalablement protégée contre les erreurs par une méthode de protection selon l'une des revendications 1 à 21, caractérisé en ce qu'il est adapté à analyser ladite information additionnelle et à transmettre des flux binaires correspondant aux différents objets, à recevoir une information identifiant un groupe erroné et à retransmettre les flux binaires correspondant aux objets appartenant au groupe erroné.
28. Serveur d'information multimédia, ladite information ayant été préalablement protégée contre les erreurs par une méthode de protection selon l'une des revendications 1 à 21, caractérisé en ce qu'il est adapté à analyser ladite information additionnelle et à transmettre des flux binaires correspondant aux différents objets, à recevoir une information identifiant un objet erroné et à en déduire le groupe de plus bas niveau contenant ladite erreur puis à retransmettre les flux binaires correspondant aux objets appartenant au groupe erroné.
29. Terminal de reproduction d'une scène multimédia transmise par une source, l'information décrivant la scène multimédia ayant été préalablement protégée contre les erreurs par une méthode de protection selon l'une des revendications 1 à 21, ledit terminal étant adapté à extraire de ladite information des flux binaires correspondants aux objets de ladite scène, caractérisé en ce qu'il est adapté à identifier, en cas d'erreur, l'objet dans lequel est localisée ladite erreur et à transmettre à ladite source, sur un canal de retour, une information identifiant ledit objet.
30. Terminal de reproduction d'une scène multimédia transmise par une source, l'information décrivant la scène multimédia ayant été préalablement protégée contre les erreurs par une méthode de protection selon l'une des revendications 1 à 21, ledit terminal étant adapté à extraire de ladite information des flux binaires correspondants aux objets de ladite scène, caractérisé en ce qu'il est adapté à recevoir et analyser l'information additionnelle générée par ladite méthode de protection, et, en cas d'erreur, à identifier à partir de l'information additionnelle le groupe de plus bas niveau dans lequel est localisée ladite erreur, puis à transmettre à ladite source, sur un canal de retour, une information identifiant ledit groupe.
31. Terminal de reproduction d'information multimédia selon la revendication 29 ou 30, caractérisé en ce qu'il est adapté à effectuer un décodage canal sur lesdits flux binaires et à indiquer, en cas d'erreur détectée par ledit décodage de l'un des flux, l'objet erroné correspondant.
32. Signal de description de scène multimédia, caractérisé en ce qu'il transporte une information additionnelle générée à partir d'une information multimédia au moyen de la méthode de protection selon l'une des revendications 1 à 21.
Description:
Méthode de protection et de correction d'une information de scène multimédia La présente invention concerne de manière générale une méthode permettant de protéger contre des erreurs éventuelles un document décrivant une scène multimédia ou un document décrivant une modification d'une scène multimédia ainsi qu'une méthode de correction des erreurs affectant un document ainsi protégé. L'invention concerne également un serveur et un terminal de réception capables de mettre en oeuvre ladite méthode de correction.

Nous appelerons par la suite scène multimédia un arrangement spatio-temporel d'objets sonores et/ou graphiques, vidéo ou images, synthétiques ou naturels susceptible de représentation en 2 ou 3 dimensions. Ces dernières années ont vu le développement de techniques de représentation orientée objet de scènes multimédia comme celles utilisées dans le langage VRML (Virtual Reality Modeling Language), les formats MPEG-4, FLASH ou SMIL. Une telle représentation orientée objet décrit la composition de la scène multimédia selon une structure arborescente d'objets graphiques et/ou sonores. Les feuilles de l'arbre sont des objets de base ou primitives et les noeud intermédiaires sont des objets composites. A partir de cette description et

des primitives, il est possible de reconstuire la scène d'origine. Ainsi, par exemple, MPEG-4 utilise une structure syntaxique appelée BIFS (Binary Format for Scenes) de type arborescent. Les objets graphiques et/ou sonores sont placés dans des flux élémentaires ES (Elementary Stream) pour tre transmis, un objet pouvant tre transporté dans un ou plusieurs flux. Un descripteur d'objet identifie les flux servant à son transport.

Les techniques de compositions de scènes multimédia les plus avancées distinguent la phase de création du contenu multimédia de la phase d'adaptation et du traitement du contenu en vue de son émission vers un récepteur distant. La phase de création est réalisée par un auteur (infographiste) qui va définir le scénario de son animation ou application graphique multimédia sans tenir compte des contraintes dues à l'émission du contenu et à son transport. Lors de la phase d'adaptation, un traitement spécifique du contenu va permettre de l'insérer dans des canaux de transport spécifiques (par exemple, dans un canal MPEG-2 Transport Stream) et de satisfaire des contrats de qualité de service. Cette phase est souvent faite de façon automatique.

En particulier, la phase d'adaptation du contenu multimédia pour son transport sur un réseau donné n'opère que sur le contenu final à émettre et ne tient pas compte de l'agencement et de la hiérarchie des objets de base qui composent la scène multimédia. Cette phase d'adaptation est fonction des paramètres du réseau de transport utilisé (bande passante, estampilles temporelles, charge du terminal receveur, etc. ) qui doivent tre a priori recalculés à chaque fois à partir du contenu. En outre, cette phase ne prend en compte la protection contre les erreurs des objets et des médias que dans leur ensemble. Elle n'est donc pas efficace si l'on souhaite retransmettre seulement une des parties de la scène.

L'objectif de la présente invention est de proposer une méthode d'adaptation de contenu multimédia qui ne présente pas les inconvénients précités. En particulier, l'objet de l'invention est de proposer une méthode de protection contre les erreurs qui soit adaptée au contenu de la scène multimédia et indépendante des caractéristiques du réseau.

Cet objectif est atteint par la mise en oeuvre d'une méthode de protection contre les erreurs d'une information, dite information initiale, décrivant ou modifiant une scène multimédia, ladite scène étant représentée par un ensemble d'objets graphiques et/ou sonores élémentaires la composant, ladite information initiale permettant de reproduire ou de modifier au moins l'un desdits objets, dans laquelle l'on forme des groupes d'objets élémentaires, chacun desdits groupes comprenant au moins l'un desdits objets, un groupe pouvant contenir un ou plusieurs autres groupes selon une structure arborescente, chaque groupe ainsi formé étant indépendamment protégé contre les erreurs, et que l'on génère une information additionnelle identifiant chacun desdits groupes.

Avantageusement, pour l'un au moins desdits groupes, l'information additionnelle contient une liste ordonnée des groupes ou des objets le composant, l'ordre de la liste donnant les priorités de correction respectives de ces derniers.

Si les groupes sont arrangés selon une structure arborescente, un groupe pouvant contenir un autre groupe, l'information additionnelle donne l'ordre de composition de ces derniers.

Selon une variante l'information additionnelle donne l'ordre d'apparition des différents groupes lors de la reproduction ou de la modification de ladite scène.

Avantageusement, un codage canal peut tre appliqué sur chacun des groupes.

Si ladite information initiale décrit elle-mme ladite scène multimédia selon un arbre de composition, chaque noeud dudit arbre représentant un ou une pluralité desdits objets élémentaires, lesdits groupes peuvent tre choisis parmi les noeuds dudit arbre.

L'information initiale sera par exemple formulée selon l'un des formats VRML, MPEG-4, Flash.

Selon un premier mode de réalisation, l'information additionnelle est adjointe à l'information initiale préalablement à sa transmission ou son enregistrement.

Avantageusement, ladite information additionnelle est formulée selon un langage (SDML) de type XML, adapté à décrire les relations de composition entre groupes.

Chauqe groupe peut tre identifié par un premier attribut (xbifs_id) donnant le nom dudit groupe au moyen d'une déclaration d'identification (name=) dudit langage et, éventuellement, par un second attribut (alt_xbifs_id) donnant un nom alternatif audit groupe, le nom alternatif étant utilisé si le groupe n'est pas accessible sous ledit nom.

Si la scène multimédia fait appel à une pluralité de médias, un média étant constitué d'un son, d'une image ou d'une vidéo, chacun desdits médias peut tre identifié par un attribut (media_iS) donnant le nom dudit média au moyen d'une déclaration d'identification (name=) dudit langage et éventuellement par un second attribut (alt_media_icI) donnant un nom alternatif audit média, le nom alternatif étant utilisé si le média n'est pas accessible sous ledit nom.

L'information additionnelle peut comprendre au moins une référence à un fichier formaté dans ledit langage, ledit fichier étant identifié par un attribut (file_id) donnant le nom dudit fichier. L'information additionnelle peut égalment comprendre au moins une référence paramétrée à un URL utilisant une pluralité de paramètres, chaque paramètre étant identifié par un attribut (field name) donnant le nom dudit paramètre, chaque paramètre pouvant prendre une ou plusieurs valeurs (field value).

L'information additionnelle peut encore comprendre au moins une déclaration associant à une action de l'utilisateur de la scène-multimédia un fichier dudit langage, le fichier étant destiné à tre chargé lorsque ladite action a lieu.

En outre, l'information additionnelle peut comprendre au moins une référence d'un premier groupe, d'un média, d'un élément textuel ou d'un élément traduisant une action d'un utilisateur de la scène multimédia, à un second groupe indiquant que le premier groupe, ledit média, ledit élément textuel ou ledit élément traduisant ladite action entre dans la composition dudit second groupe, chaque référence étant associée à un lien de composition (hook), chaque lien de composition étant identifié par un attribut (hook_id) au moyen d'une déclaration d'identification dudit langage.

Typiquement, ladite information additionnelle contient une description arborescente de la scène multimédia à partir d'un groupe racine associé à la scène multimédia elle-mme, chaque groupe autre que le groupe racine étant lié à un groupe

de niveau inférieur par un lien de composition, le groupe racine (body) étant spécifié par le nom d'un groupe au moyen une déclaration (root=) dudit langage.

Un premier groupe peut tre inséré dans un second groupe au moyen d'une commande d'insertion <usbifs name='xbifs_id', hook='hook_id'>, ladite commande d'insertion spécifiant alors le nom (xbifs_id) du premier groupe et l'attribut d'identification (hook_id) d'un lien de composition relatif au second groupe.

Si un premier groupe ou un média constitué d'un son, d'une image ou d'une vidéo, est lié à un second groupe pour la protection contre les erreurs, le lien entre ce premier groupe ou ce média et ce second groupe est identifié au moyen d'une déclaration de dépendance (dependsOnXBIFS) dudit langage.

Si un ordre de priorité est fixé entre des sous-groupes d'un mme groupe, les priorités attribuées aux dits sous-groupes sont identifiées par des déclarations de valeurs de piorité (priority value) dudit langage.

De mme, si un média est lié à une autre média ou si un groupe est lié à un média pour la protection contre les erreurs, les liens entre ces médias ou entre ce groupe et ce média sont identifiés au moyen d'une déclaration de dépendance (dependsOnMedia) dudit langage.

Si un ordre de priorité est fixé entre différents médias, une valeur de priorité (priority value) est attribuée à chacun desdits médias au moyen d'une déclaration de priorité dudit langage.

L'invention concerne également une méthode de correction d'erreurs affectant une information décrivant ou modifiant une scène multimédia, ladite information étant fournie par une source après avoir été préalablement protégée contre les erreurs par la méthode de protection exposée ci-dessus. Selon cette méthode de correction, si une erreur est détectée dans ladite information, on détermine au moyen de l'information additionnelle, le groupe de plus bas niveau dans lequel est localisée ladite erreur.

Selon une variante de réalisation, on transmet à la source une information identifiant le groupe erroné et ladite source retransmet les objets élémentaires constituant ledit groupe erroné.

Selon une autre variante de réalisation, on transmet à la source une information identifiant l'objet dans lequel est localisée ladite erreur, ladite source en déduisant alors, au moyen de l'information additionnelle, le groupe dans lequel est localisée ladite erreur. La source retransmet ensuite les objets élémentaires constituant le groupe erroné.

Si le groupe erroné comporte une liste ordonnée d'objets élémentaires le constituant, les objets élémentaires sont corrigés selon ledit ordre.

Avantageusement, la localisation d'erreur est obtenue au moyen d'un décodage canal.

L'invention concerne encore un serveur d'information multimédia, ladite information ayant été préalablement protégée contre les erreurs par la méthode de protection exposée plus haut. Ce serveur est adapté à analyser ladite information additionnelle et à transmettre des flux binaires correspondant aux différents objets, à recevoir une information identifiant un groupe erroné et à retransmettre les flux binaires correspondant aux objets appartenant au groupe erroné.

L'invention concerne également un serveur d'information multimédia, ladite information ayant été préalablement protégée contre les erreurs par la méthode de protection exposé plus haut. Ce serveur est adapté à analyser ladite information additionnelle et à transmettre des flux binaires correspondant aux différents objets, à recevoir une information identifiant un objet erroné et à en déduire le groupe de plus bas niveau contenant ladite erreur puis à retransmettre les flux binaires correspondant aux objets appartenant au groupe erroné.

L'invention concerne aussi un terminal de reproduction d'une scène multimédia transmise par une source, l'information décrivant la scène multimédia ayant été préalablement protégée contre les erreurs par la méthode de protection exposée plus haut. Ce terminal est adapté à extraire de ladite information des flux binaires correspondants aux objets de ladite scène, à identifier, en cas d'erreur, l'objet dans lequel est localisée ladite erreur et à transmettre à ladite source, sur un canal de retour, une information identifiant ledit objet.

L'invention concerne en outre un terminal de reproduction d'une scène multimédia transmise par une source, l'information décrivant la scène multimédia ayant été préalablement protégée contre les erreurs par la méthode de protection exposée plus haut. Ce terminal est adapté à extraire de ladite information des flux binaires correspondants aux objets de ladite scène, à recevoir et analyser l'information additionnelle générée par ladite méthode de protection, et, en cas d'erreur, à identifier à partir de l'information additionnelle le groupe de plus bas niveau dans lequel est localisée ladite erreur, puis à transmettre à ladite source, sur un canal de retour, une information identifiant ledit groupe.

Ce terminal de reproduction est avantageusement adapté à effectuer un décodage canal sur lesdits flux binaires et à indiquer, en cas d'erreur détectée par ledit décodage de l'un des flux, l'objet erroné correspondant.

L'invention concerne enfin un signal de description de scène multimédia, transportant une information additionnelle générée à partir d'une information multimédia au moyen de la méthode de protection exposée plus haut.

Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description faite en relation avec les dessins joints, parmi lesquels : La Fig. 1 représente de manière schématique la création de groupes d'objets utile à la méthode de protection contre les erreurs selon l'invention ; La Fig. 2 illustre la méthode de protection contre les erreurs et de leur correction selon un mode de réalisation de l'invention.

L'idée générale à la base de l'invention est la création d'un méta-langage de type XML au dessus du langage de description de la scène multimédia, permettant de décrire les parties de la scène multimédia qui sont considérées comme indépendantes.

Ces dernières sont représentées sous forme de groupes d'objets au sens du langage de description, ces groupes étant organisés de manière arborescente. Ainsi un groupe peut lui-mme tre constitué de groupes plus simples et ainsi de suite. Chaque groupe est considérée comme une entité élémentaire pour la protection et la correction des erreurs. Ainsi, si une erreur est détectée dans une scène multimédia, il suffira de

déterminer le groupe de plus bas niveau au sein de l'arborescence dans lequel l'erreur est localisée. Seuls les objets élémentaires appartenant à ce groupe erroné seront corrigés, de préférence par retransmission. La retransmission peut tre déclenchée par une requte ou un défaut d'acquittement dans un certain délai (par exemple selon une technique d'ARQ ou d'hybrid ARQ) si l'on dispose d'un canal de retour entre le récepteur et l'émetteur multimédia ou bien par retransmission systématique (technique dite de carrousel de données employé dans MPEG-2) si l'on n'en dispose pas. Dans le premier cas on évite de retransmettre inutilement des éléments de la scène non affectés par l'erreur.

Par la suite il sera fait référence au méta-langage, évoqué plus haut, sous l'acronyme SDML pour Scene Description Markup Language.

La Fig. 1 représente la manière dont les groupes d'objets sont créés. La partie gauche de la Fig. montre une représentation arborescente d'une scène multimédia dans laquelle chaque noeud de l'arbre correspond à un objet, l'objet de plus haut niveau ou objet racine, Oo, correspondant à la scène elle-mme. L'arborescence donne les relations de composition de la scène. La ligne en traits interrompus indique une relation de dépendance entre deux objets On et Om, l'objet Op étant supposé indépendant des deux premiers. Cette relation de dépendance est déterminée, par exemple par l'auteur de la scène, lorsqu'il considère que deux objets sonores ou graphiques doivent tre conjointement protégés contre les erreurs. La relation de dépendance contre les erreurs peut également tre implicite, par exemple lorsqu'un objet utilise les propriétés ou les paramètres d'un autre objet. Enfin, la relation de dépendance entre objets peut tre automatiquement générée par l'outil de création lors de la composition de la scène. La partie de droite de la Fig. représente l'arborescence après regroupement des objets 0 et Om. Le noeud Gnm représente le couple d'objets On et Om et le noeud Gp représente le seul objet Op. Les objets On et Om sont conjointement protégés alors que l'objet Op est protégé indépendamment des deux premiers. En opérant de proche en proche, on obtient ainsi un nouvel arbre dont les noeuds sont des groupes d'objets (ou, en représentation développée, des sous-arbres), indépendants au sens de la protection contre les erreurs. Le noeud de plus haut niveau

ou groupe racine, correspond à la scène elle-mme. Les noeuds de plus bas niveau peuvent ne contenir qu'un seul objet (par ex. une primitive graphique) ou une pluralité d'objets. Les relations entre groupes et les opérations entre groupes sont décrites, comme nous le verrons plus loin, au moyen du langage SDML.

Il est important de noter que la description initiale de la scène (partie haute de la <BR> <BR> Fig. ) peut ne pas tre arborescente, par exemple si la scène ne fait pas l'objet d'une description orientée objet et est simplement représentée comme une simple juxtaposition d'éléments graphiques (par ex. simples blocs) et/ou sonores. En revanche la description en termes de groupes est arborescente, le groupe de plus haut niveau étant, on le rappelle, identifiée avec la scène elle-mme.

Avantageusement, on partira néanmoins d'une représentation orientée objet. De très nombreux outils de création de contenu multimédia adopte une approche orientée objet où l'auteur doit d'abord indiquer la scène graphique initiale (racine de l'arbre de composition qui désigne comment la scène est composée) puis insère de proche en proche des sous-objets graphiques de natures différentes (média, animations, description d'objets ou de sous-scènes graphiques, actions de navigation offertes à l'utilisateur) en partant d'une description de la scène haut-niveau et an allant vers les comportements spatio-temporels précis (c'est-à-dire de bas-niveau) des objets graphiques et/ou sonores. La représentation sous forme de groupes indépendants présente l'avantage de conserver la méthodologie orientée objet.

Le format de stockage interne de ces outils de création de contenus multimédia garde une structure interne, sous forme d'arbre de composition, de la scène compatible avec cette approche orientée objet. Ainsi, mme si l'auteur n'est pas familier avec l'approche orientée objet, il en utilise cependant les fondements de base. Il est possible à partir d'outils standards (comme 3D Studio MAX (Kinetix6t)), Director <BR> <BR> (Macomedia (g)), CosmoWorlds (CosmoSoftwaret)), etc. ) de traduire la structure de la scène en termes de groupes au format du langage SDML. Selon un mode de réalisation particulier, on pourra utiliser un plug-in d'exportation utilisant le Software Development Kit du logiciel 3D Studio MAX décrivant la scène en langage SDML.

Il n'existe pas de façon univoque de décrire une scène sous forme de groupes, en langage SDML. Un telle description passe d'abord par le choix d'un découpage de la scène en groupes de base (ou groupes de plus bas niveau) puis par celui des liens de dépendance entre les différents groupes.

La Fig. 2 illustre la méthode de protection et de correction selon un mode de réalisation de l'invention. Lors de la phase de création, l'auteur compose une scène multimédia en précisant les groupes de base, leur ordre de composition et, le cas échéant, leur ordre de priorité en cas de correction d'erreur. Ces informations sont fournies au format du langage SDML. Avant de transmettre le contenu multimédia sur un réseau de transport, on pourra appliquer un codage canal sur les flux binaires correspondant aux différents groupes. Ainsi, la protection contre les erreurs assurée par le codage canal suivra la partition en groupes indépendants. Avantageusement, les groupes dont le coût de retransmission est faible ne seront pas protégés par codage canal.

Il faut noter que, hormis le codage canal éventuel, le contenu multimédia ne subit pas de modification.

Le contenu multimédia (éventuellement protégé par codage canal) est transmis par un serveur au terminal multimédia d'un utilisateur. Selon une première variante de réalisation, le serveur lit la description SDML puis transmet les flux binaires correspondant au contenu de la scène. Selon une seconde variante de réalisation, la description SDML est transmise au récepteur avec le contenu.

A la réception par le terminal, un décodeur de description de scène graphique et plus généralement multimédia (DDSG) analyse la decription de scène et recrée une structure interne permettant de reproduire, animer ou modifier ladite scène. Le DDSG est un assimilable à un automate à états qui, dans un premier temps, analyse les flux de description de scène (à la suite d'un éventuel démultiplexage) correspondant aux différents objets et construit ensuite la structure interne, sauf si la description de scène est incompatible avec les spécifications du langage utilisé (Flash, SMIL, MPEG-4, <BR> <BR> VRML, etc. ). Dès qu'une erreur, typiquement une erreur de syntaxe, est détectée dans un flux de description de scène, ou qu'une incohérence ou encore une incompatibilité

de format est détectée (ces différentes situations seront désignées par la suite sous le terme générique d'erreur), le descripteur de scène détermine dans la structure interne l'endroit où l'erreur est survenue. En revanche, si l'erreur ne porte pas sur la syntaxe ou le format, par exemple si elle affecte une valeur numérique dans un flux, le DDSG ne le détectera pas. Néanmoins, si un codage canal est prévu (ou un simple CRC), il sera possible de déterminer dans quel objet cette erreur est localisée. Dans la première variante de réalisation, le terminal retransmet au serveur, sur une voie de retour, une information donnant la localisation de l'objet erroné. Le serveur détermine alors au moyen de la description SDML le groupe qui est affecté par l'erreur. Dans la seconde variante de réalisation, le terminal connaît la définition des groupes (puisqu'il dispose lui-mme de la description SDML) et renvoie au serveur directement l'identité du groupe concerné. Le serveur retransmet alors au terminal les flux binaires relatifs aux objets appartenant au groupe erroné.

Nous illustrerons la méthode de correction par un exemple. Soit la description au format VRML de la scène multimédia suivante : DEF ID_1 Group { children [ DEF ID2 Shape { appearance Appearance { material Material {<BR> } geometry Sphere { radius 1.1 }

} DEF ID3 Sound { source AudioClip { url ["od : 1"] } location 0.0 0.0 1.0 direction 0 0 2 spatialize TRUE background DEF ID4 Background {<BR> skyColor [ 0. 0 1. 0 1. 0 } #end of ID_1 Cette scène peut se structure naturellement en un noeud racine Group contenant 3 sous-groupes, chaque sous-groupe comprenant chacun un objet : Shape, Sound, Background. Une erreur sur l'un de ces objets n'a a priori pas de conséquence sur un autre de ces objets. La scène graphique est ici agencée par l'insertion de 3 groupes dans le groupe racine Group. Supposons que le sous-groupe Shape subisse une erreur de transmission. On aura par exemple une valeur erronée du rayon (radius) de la sphère (w1. 1) ou encore une erreur de syntaxe sur le terme radius. Supposons que l'erreur porte sur la syntaxe : DEF ID2 Shape

appearance Appearance { material Material { } geometry Sphere { raKius 1. 1 } Le DDSG est capable, au moment où il analyse la description de l'objet Shape d'identifier une erreur dans le terme raKius et renvoie par conséquent au serveur l'information qu'une erreur de transmission a été reçue dans l'objet ID2. Le DDSG indique alors à l'application du terminal qui reproduit le contenu multimédia l'erreur et sa localisation. Si le terminal ne dispose pas de canal de retour, l'application peut attendre une éventuelle retransmission de l'objet pour le corriger (par ex. utilisation d'un carrousel de données). Dans le cas où le terminal dispose d'un canal de retour (par exemple Upstream en MPEG-4), il convient de distinguer en fonction de la variante de réalisation.

Dans la première variante, l'identification (ID2) de l'objet erroné est transmis au serveur qui détermine le groupe de plus bas niveau contenant ledit objet. En l'occurrence, puisqu'il existe un groupe de mme nom (ID2) ne contenant que cet objet, seul ce dernier sera retransmis. Si en revanche, si les objets ID2, ID3 et ID4 avaient été reconnus dépendants les uns des autres pour la protection contre les erreurs, tous les objets du plus petit groupe contenant ID2, ici le groupe racine ID1, devraient tre retransmis.

Dans la seconde variante, le terminal connaît la description SDML et pourra directement déterminer le groupe erroné. Le serveur reçoit l'identificateur de ce

groupe sur la voie de retour et se borne à retransmettre les flux relatifs aux objets du groupe erroné.

Dans les deux variantes, la description SDML est utilisée pour déterminer le groupe erroné. La description SDML de la scène de l'exemple précédent est : < ? xml version= » 1.0 » encoding= » US-ASCII » ? > < ! DOCTYPE sdml SYSTEM « SDML. DTD » > <sdml version= » 1.0 » > <! --spécification du groupe racine de la scène--> <body root= » Group » > < !--spécification des sous-groupes constituant le groupe racine--> <xbifs name= » sphère » hook= » ID1 »/> <xbifs name= » son3D » hook= » ID1 »/> <xbifs name= » arrière-plan » hook= » ID1 »/> </body> </sdml> Le terme « xbifs » (pour eXtended BIFS) désigne conventionnellement un groupe dans le langage SDML (quel que soit le langage original de description de la <BR> <BR> scène : MPEG-4, VRML, FLASH etc. ). Ici, trois groupes, respectivement intitulés « sphère », « son 3D » et « arrière-plan » sont créés et rattachés au groupe racine.

Supposons qu'une erreur de transmission ait été détectée dans ID2. La description SDML indique que les groupes « sphère », « son 3D » et « arrière-plan » sont indépendants. Par conséquent le groupe erroné est « sphère » et le flux relatif à « sphère » sera retransmis par le serveur.

Bien que l'invention ait été illustrée en Fig. 2 dans le cadre d'une protection contre les erreurs d'une scène multimédia préalablement à sa transmission (par un serveur à un terminal) et à la correction des erreurs par retransmission, il est clair qu'elle peut également s'appliquer à la protection contre les erreurs préalablement au

stockage d'une scène sur un support d'enregistrement et à la correction des erreurs par relecture du support.

Nous présenterons ci-après la syntaxe du langage SDML et tout d'abord la syntaxe des différents attributs : Identificateur de version (Version_id) 'Description : Un identificateur de version est utilisé pour spécifier une version du langage SDML. S'il n'est pas présent une erreur est notifiée.

Syntaxe : Un identificateur de version utilise la syntaxe usuelle : major [. minor [. build] ], où major, minor et build sont des entiers précédés de façon optionnelle par des 0.

Utilisé par les éléments suivants : <sdml> (version attribut) Exemple : <sdml version="1.0"/> XBIFS identificateur (xbifs_id) 'Description : Un xbifs identificateur fournit une référence non ambiguë vers un xbifs dans la base de données multimédia. Si le xbifs ne peut pas tre retrouvé alors une erreur est notifiée (sauf si un xbifs alternatif est présent).

Syntaxe : Un xbifsid doit suivre la syntaxe spécifiée par la base de donnée multimedia.

Utilisé par les éléments suivants : <body> (root attribut) <xbifs> (name attribut) Exemples : <body root="VIRTUAL SHOP"/>

<xbifs name="products/phones/OLA"hook="productl"/> XBIFS alternatif identificateur (alt_xbifs_id) 'Description : Un xbifs alternatif identificateur est un xbifs identificateur qui est utilisé si le xbifs référencé par le xbifsid n'est pas accessible. Si le xbifs référencé par un identificateur alternatif n'est pas accessible alors une erreur est notifiée par le compositeur de scène.

Syntaxe : La syntaxe est la mme que celle du xbifsid, excepté le fait que"NONE"est utilisé si aucun xbifs alternatif n'est à insérer.

Utilisé par les éléments suivants : <xbifs> (alt attribut) Exemples : <xbifs name="products/phones/OLA"hook="product 1" alt="products/phone/genericphone"/> Média identificateur (media_id) 'Description : Un tel attribut est utilisé pour spécifier un identificateur d'un média. Un média est soit une image, un son ou une vidéo. Un tel média peut tre stocké dans la base de données multimédia ou fournit par le serveur SDML.

Syntaxe : Si le média est extrait de la base de données, l'identificateurde média est donné par un identificateur compatible avec la structure de la base de données. Si le média est fourni par le serveur SDML, l'identificateur doit tre une URL préfixé par"ext :" Utilisé par les éléments suivants : <media> (name attribut)

Exemples : <média name="shop/logo/logoft"hook="LOGO"/> <média name="ext : http ://sdml. fr/logoft. gif hook="LOGO"/> Média alternatif identificateur (alt_media_id) 'Description : Un identificateur alternatif de média est un identificateur de média qui est utilisé si le média référencé par un médiaid n'est pas accessible. Si le média référencé par l'identificateur alternatif n'est pas accessible, une erreur est notifiée par le compositeur de scène.

Syntaxe : La syntaxe est la mme que celle du mediaid, excepté le mot"NONE"qui est utilisé si aucun média alternatif ne doit tre inséré.

Utilisé par les éléments suivants : <media> (alt attribut) Exemples : <média name="ext : http ://sdml. fr/logoft. gif" hook="LOGO" alt="shop/logo/logoft"/> Identificateur de hook (hook_id) 'Description : Un identificateur de hook fournit une référence non ambiguë à un hook fourni par un XBIFS. Si le hook n'est pas défini par le XBIFS ou si son type (xbifs, text ou action) ne correspond pas au type requis alors une erreur est notifiée par le compositeur de scènes.

Syntaxe : Un identificateur de hook commence avec une lettre ou un underscore, et peut tre suivi par des caractères alpha-numeriques (lettres, nombres ou underscores).

Utilisé par les éléments suivants ; <xbifs> (hook attribut) <text> (hook attribut)

<action> (hook attribut) Exemples : <xbifs name="products/phones/OLA"hook="product-1"/> Position (position) 'Description : Une position fournit une position non ambiguë d'un xbifs dans un environnement 2D ou 3D (éventuellement 2D et temporel ou 3D et temporel) au sein d'un autre xbifs, suivant l'origine définie dans ce xbifs. Si la dimension et la position ne correspondent pas à la dimension du xbifs, le compositeur de scène notifie une erreur. <BR> <BR> <P>'Syntaxe :<BR> La syntaxe est : x, y [, z] (éventuellement [, t] ? ) où x, y, and z sont des nombres.

Utilisé par les éléments suivants : <xbifs> (position attribut) Exemples : <xbifs name="products/phones/OLA"position="10, 10, 30"/> Identificateur de fichier SDML (SDMLfile_id) 'Description : Un Identificateur de fichier SDML fournit une référence non ambiguë vers un fichier SDML. Si ce fichier SDML n'est pas accessible alors une erreur est notifiée par le serveur.

Syntaxe : Les identificateurs de fichiers SDML utilisent la syntaxe normalisée des URI (c'est à-dire des URL sans paramètres). Les paramètres des URL peuvent tre supportés mais doit tre séparé par"&"au lieu de"&"en raison de la limite de la syntaxe XML.

Utilisé par les éléments suivants : <action> (url attribut)

Exemples : <action url="file ://next scene. sdml" hook="action next"/> <action url="http ://www. francetelecom. fr/new_products. sdml" <BR> <BR> hook="actiongotonewproducts"/><BR> <action url="http : //www. shop. com ? action=buy& ; product=ola"<BR> hook="action 1"/> Nom de Field (field name) 'Description : Un tel attribut est utilisé pour donner un nom à un paramètre dans une URL.

Syntaxe : Le Nom de Field utilise la syntaxe normalisée des URL Utilisé par les éléments suivants : <field> (name attribut) Exemples : <Nom de Field="product"value="ola"/> Valeur de Field (field value) 'Description : Un tel attribut est utilisé pour spécifier la valeur d'un paramètre dans un URL.

Syntaxe : Field values utilisent la syntaxe normalisée des paramètres des URL.

Utilisé par les éléments suivants : <field> (value attribut) Exemples : <Nom de Field="action"value="buy"/> Valeur de Priorité (priority-value) Description :

Un tel attribut est utilisé pour spécifier la priorité d'un descendant par rapport à ces frères dans l'arbre de composition. La valeur la plus grande indique que le descendant doit tre traité avant les autres.

Syntaxe : Les valeurs de Priorité utilisent la syntaxe normalisée des paramètres entiers.

Utilisé par les éléments suivants : <field> (priority attribut) <media> (priority attribut) <xbifs> (priority attribut) <action> (priority attribut) Exemples : <Nom de Field="action"value="buy"priority=0/> Identificateur de dépendance par rapport à un média (dependsOnMedia_id) 'Description : Un tel attribut est utilisé pour spécifier qu'un xbifs ou un média dépend d'un autre média. Un identificateur de dépendance fournit une référence non ambiguë à un média.

'Syntaxe : Les identificateurs de dépendance suivent la syntaxe de la base de données multimédia.

Utilisé par les éléments suivants : <xbifs> (dependsOnMédia attribut) <media> (dependsOnMédia attribut) Exemples : <xbifs name="phones/Ola"dependsOnMedia=" ext : http : //sdml. fr/vitrineft. gif"/> XBIFS Dependence identificateur (dependsOnXBIFS_id) Description :

Un tel attribut est utilisé pour spécifier qu'un xbifs ou un média dépend d'un autre xbifs. Un identificateur de dépendance fournit une référence non ambiguë à un xbifs dans la base de donnée multimédia.

Syntaxe : Les identificateurs de dépendance suivent la syntaxe de la base de donnée multimédia.

Utilisé par les éléments suivants : <xbifs> (dependsOnXBIFS attribut) <media> (dependsOnXBIFS attribut) Exemples : <xbifs name="phones/Ola"dependsOnXBIFS="vitrine"/> <média name="ext : http : //sdml. fr/logoft. gif'dependsOnXBIFS="graphics/logo<BR> 15/> Nous donnerons ci-après la syntaxe des élements dans le langage SDML.

<sdml> - Description : L'élément <SDML> est l'élément racine requis dans un document SDML. Il fournit des informations à propos du langage du document.

- Syntaxe : <SDML version= « version id » l> où version_id spécifie la version utilisée par ce document (par défaut 1.0) - Elément Parent : Aucun - Elément Fils : <head> (optionnel et unique) <body> (requis et unique) - Exemples <sdml version="1. 0"> <BR> <BR> <body root="VIRTUALSHOP"><BR> <Ibody>

</sdml> <head> - Description : Cet élément est un élément optionnel qui fournit des informations à propos du document (e. g. meta-information, paramètres de cache, etc. ). Dans la version SDML 1.0, cet élément est vide.

- Syntaxe : <head/> - Elément Parent : <sdml> - Elément Fils : Aucun (dans la version 1.0 version) - Exemple : <head/> <body> - Description : <body> est l'élément racine de la description de scène. Il doit spécifier l'identificateur de la racine XBIFS de la scène.

- Syntaxe : <body root= « xbifsid »/> où root spécifie l'identificateur de la racine XBIFS de la scène (requis) - Elément Parent : <sdml> - Elément Fils : <xbifs> (optionnel) <text> (optionnel) <action> (optionnel) <media> (optionnel) - Exemples : <body root="MAVITRINE"/>

<text> - Description : L'élément <text> est utilisé pour insérer une value textuelle dans la description de la scène. Le texte est inséré dans le hook spécifié dans le XBIFS (i. e. le XBIFS spécifié par le père <body> ou l'élément <xbifs>).

- Syntaxe : <text hook= « hook-id » length= « integer » > body </text> où - hook donne une référence à un hook textuel fourni par le XBIFS père (requis) length donne le nombre de caractères par lignes de texte (optionnel) Si cette valeur n'est pas spécifiée, le texte ne doit pas tre coupé. body spécifie la valeur du texte à insérer (optionnel) - Elément Parent : <body> <xbifs> - Elément Fils : Aucun - Exemples : <body root="HOME_PAGE"> <texthook="username">Nemo</text> </body> <xbifs> - Description : Le <xbifs> element est utilisé pour insérer un XBIFS dans la scène. Le XBIFS est insérer dans le XBIFS père (i. e. le XBIFS spécifié par le père <body> ou l'élément <xbifs>), au hook spécifié ou à la position spécifiée.

- Syntaxe :

<xbifs name="xbifs id"hook="hook id"alt="alt xbifs id"l> <xbifs name="xbifs_id"position="position"alt="alt xbifs id"l> où : - name spécifie l'identificateur du XBIFS à insérer (requis) - hook spécifie le hook fournit par le XBIFS père où le XBIFS doit tre inséré (exclue par la position) - position spécifie la position explicite (suivant le XBIFS père) où le XBIFS doit tre inséré (exclue par hook) ait spécifie le XBIFS alternatif à utiliser si le XBIFS référencé par l'attribut nom n'est pas accessible (optionnel) - Elément Parent : <body> <xbifs> - Elément Fils : <xbifs> (optionnel) <text> (optionnel) <action> (optionnel) <media> (optionnel) - Exemples : <body root="VIRTUAL-SHOP"> <xbifs name="products/pones/OLA"hook="product-1"/> </body) <body root="VIRTUALSHOP"> <xbifs name="VENDOR"position="150, 150, 10"/> </body> <action> - Description : L'element <action> est utilisé pour spécifier le fichier SDML à charger en réponse à une action effectuée par l'utilisateur à partir de la scène courante.

L'élément <action> associe un Identificateur de fichier SDML à un hook action fournit par le XBIFS père.

- Syntaxe : <action url= « SDMLf ìle_id » hook= « hook_id »/> où : - url spécifie l'identificateur du fichier SDML à charger en réponse à une action du client (requis) - hook spécifie le hook, fournit par le XBIFS père, qui doit tre associé à un fichier SDML.

- Elément Parent : <body> <xbifs> - Elément Fils : <field> (optionnel) - Exemples : <body root="HOMEPAGE"> <texthook="username">Nemo</text> <action hook="actiongotomenu"url="file : //menu. sdml"/> </body> <field> - Description : L'élément <field> spécifie les paramètres à ajouter à un fichier SDML (suivant la syntaxe normalisée des URL).

- Syntaxe : <Nom de Field= « field-name » value= « field value »/> où : - Name spécifie le nom du field (requis) - Value spécifie la valeur du field (par défaut NULL) - Elément Parent : <action> - Elément Fils : Aucun

- Exemples : <body root="HOMEPAGE"> <text hook="username">Nemo</text> <action hook="goto_my_menu"url="http ://www. server. com/usermenu"> <Nom de Field="user"value="Nemo"/> <Nom de Field="id"value="512332"/> </action> </body> <media> - Description L'élément <media> est utilisé pour insérer un média dans un XBIFS.

- Syntaxe <média name="media_id"hook="hook_id"alt="alt_media_id"/> où : name spécifie l'identificateur d'un média (requis) - hook spécifie le hook fournit par le XBIFS père où le média doit tre inséré (requis) - ait spécifie l'identificateur du media alternatif (optionnel) - Elément Parent : <xbifs> <body> - Elément Fils : Aucun - Exemples : <body root="HOME_PAGE"> <média hook="LOGO"name="ext : http ://www. ft. com/img/logo. gif"alt= logo/logoFT"/> </body>

Un document SDML se présente de manière générale sous la forme ou DTD (Document Type Declaration) suivante : < ? xml version= » 1.0 » encoding= » ISO-8859-1 » ? > <!-- SDML (Scene Description Markup Language) DTD v1. 0 - > <!-- HISTORY V1.0 : Creation (Gabriel GUILLAUME DIH/HDM) - ><BR> fizz ENTITIES - > < ! ENTITY % hookable « (xbifs text action) » > <!-- ELEMENTS - > < ! ELEMENT sdml (head ?, body) > < ! ATTLIST sdml version CDATA'1. 0'> < ! ELEMENT head EMPTY> <! ELEMENT body (% hookable ; ) *> < ! ATTLIST body root CDATA #REQUIRED> < ! ELEMENT text (#PCDATA) > < ! ATTLIST text hook CDATA #REQUIRED> <! ELEMENT xbifs (% hookable ; ) *> < ! ATTLIST xbifs name CDATA #REQUIRED

hook CDATA #IMPLIED dependsOnMédia CDATA #IMPLIED dependsOnXBIFS CDATA #IMPLIED priority CDATA #IMPLIED position CDATA #IMPLIED> < ! ELEMENT action (field) *> < ! ATTLIST action hook CDATA #REQUIRED priority CDATA #IMPLIED url CDATA #REQUIRED> < ! ELEMENT field EMPTY> < ! ATTLIST field name CDATA #REQUIRED priority CDATA #IMPLIED value CDATA #REQUIRED> Nous donnerons deux exemples de documents SDML, le premier relatif à une page Web personnelle et le second à une boutique virtuelle de téléphones mobiles.

Page Web personnelle : < ? xml version= » 1. 0 » encoding= » US-ASCII » ? > < ! DOCTYPE sdml SYSTEM « SDML. DTD » > <sdml version= » 1.0 » > <body root= » HOMEPAGE » > < !-- nom de l'utilisateur--> <text hook= » user_name » >Jean-Claude</texV < !-- les liens--> <text hook= » lien-intitulel » >Ma Météo</text>

<action hook= » lienactionl » url= » http : //www. server. fr/meteo. sdml »/> <text hook= » lien intitule2 » >Ma Bourse</text> <action hook= » lien action2 » url= » » http : //www. server. fr/meteo. sdml »/> </body> </sdml> Dans ce document, un seul groupe (ou XBIFS) est spécifié, à savoir le groupe racine HOME PAGE. Il comprend un élément textuel relatif au nom de l'utilisateur, deux autres éléments textuels ('Ma météo'et'Ma bourse') et deux éléments de type 'action'associés à des liens ('http : //www. server. fr/meteo. sdml',<BR> 'http : //www. server. fr/meteo. sdml') vers d'autres scènes. Les'hooks'définissent les relations de composition entre le groupe racine et ses différents éléments.

Boutique virtuelle : < ? xml version= » 1.0 » encoding= » US-ASCII » ? > < ! DOCTYPE sdml SYSTEM « SDML. DTD » > <sdml version= » 1.0 » > <body root= » PHONES_SHOP/ROOM » > < !-- the special offers--> <xbifs name= » PHONESSHOP/COUNTER » hook= » special offers » > <text hook="title">Special offers</text> <xbifs name= » PHONESSHOP/PRODUCTDESC » hook= » place_l » > <xbifs name= » PHONESSHOP/PHONES/OLA » hook= » product »/> <text hook= » price » >200 f</text> <text hook= » name » >OLA</text> <action hook= » buy » url= » http ://www. eopm. fr/PhonesShop » >

<Nom de Field= » action » value= » buy »/> <Nom de Field= » product name » value= » OLA »/> <Nom de Field= » product code » value= » FF4G6 »/> </action> </xbifs> <xbifs name= » PHONE_SHOP/PRODUCT_DESC » hook= » place_2 » > <xbifs name= » PHONES_SHOP/PHONES/NOK71 10 » hook= » product »/> <text hook= » price » >2154 f</text> <text hook= » name » >Nok 7110</text> <action hook= » buy » url= » http : //www. eopm. fr/PhonesShop » > <Nom de Field= » action » value= » buy »/> <Nom de Field= » product_name » value= » nok7 1 10 »/> <Nom de Field= » product code » value= » F2DD45 »/> </action> </xbifs> </xbifs> < !-the new products--> <xbifs name= » PHONES SHOP/COUNTER » hook= » new_products » > <text hook="title">New products</text> <xbifs name= » PHONES SHOP/PRODUCT DESC » hook= » place_1 » > <xbifs name= » PHONES SHOP/PHONES/ERICS » hook= » product »/> <text hook= » price » >200 $</text> <text hook= » name » >ERICS</text> <action hook= » buy » url= » http : //www. eopm. fr/PhonesShop » > <Nom de Field= » action » value= » buy »/> <Nom de Field= » product name » value= » erics »/> <Nom de Field= » product code » value= » FJ9009 »/> </action> </xbifs>

</xbifs> <actionhook= » shopping_basket » url= » http : //www. eopm. fr/PhonesShop ? action=sb »<BR> /> </body> </sdml> Ce document plus complexe décrit une boutique virtuelle ('PHONES SHOP/ROOM'), avec un département pour les offres spéciales ('special_offers') et un département pour les autres produits ('new-Products').

L'utilisateur peut acheter un telephone en sélectionant un produit et contrôler le contenu son caddie à tout moment.

Le document utilise les groupes suivants : - le groupe racine'PHONES_SHOP/ROOM'décrit la pièce principale de la boutique. Il comprend lui-mme deux groupes (ici 2 instances de 'PHONES-SHOP/COUNTER'spécifiés par les liens de composition'special offers'et'new products') ainsi qu'un élément action ('shopping basket').

- le groupe'PHONES SHOP/COUNTER'décrit un comptoir de la boutique.

Ce groupe comprend à son tour trois groupes (ici 3 instances de 'PHONES-SHOP/PRODUCT DESC'apparaissant en place_1 et place_2 dans le département'special offers'et en place_1 pour le département'new products'), ainsi qu'un élément textuel ('special offers'ou'new products').

- le groupe'PHONES SHOP/PRODUCT DESC'décrit un produit. Ce groupe comprend lui mme un autre groupe (décrivant un téléphone, voir ci- dessous), ainsi que 2 élements textuels ('price'et'name') et un élément action ('buy').

- les groupes PHONESSHOP/PHONES/OLA, NOK7110, and ERICS décrivent des téléphones.