Chapitre 3

Réalisation

Ce chapitre est consacré à l'implémentation des attributs et des relations spatio-temporelles dans le prototype Madeus. Il commence par décrire l'architecture actuelle de Madeus, avec notamment la description des principaux modules. La section 2 présente le langage de spécification. La section 3 présente la mise en oeuvre dans le système de présentation. Enfin la section 4 donne les principales idées pour la prise en compte de la spécification dans le système d'édition.

[Table des matières]

1 Architecture de Madeus

[Table des matières]

1.1 Vue globale

Le système Madeus est composé de quatre parties principales qui interagissent tout au long d'une session d'édition/présentation : l'interface utilisateur, le système d'édition, le gestionnaire temporel et spatial, et le système de présentation (c.f. Fig 1 ).

L'interface utilisateur regroupe les moyens graphiques offerts à l'utilisateur comme les boutons, les formulaires et les palettes pour réaliser les opérations d'édition et de présentation.

Le système d'édition regroupe un ensemble de fonctions permettant de construire ou de modifier de façon interactive un document multimédia par la définition de relations temporelles et de liens hypermédia. Il permet aussi le chargement en mémoire d'un document et sa sauvegarde en fin de session d'édition.

Le gestionnaire temporel prend en charge toute la gestion des opérations d'édition et de présentation qui concernent la dimension temporelle du document. De la même façon, le gestionnaire spatial concerne la dimension spatiale du document.

Le système de présentation restitue le document à l'utilisateur en assurant l'ordonnancement de ses éléments, la gestion des ressources et la prise en compte de l'environnement d'exécution (interactions de l'utilisateur, indéterminisme des durées, etc.).

Image Madeus_Architecture.gif
Fig 1. Architecture générale de Madeus

[Table des matières]

1.2 Fonctionnement des principaux modules

Cette section décrit le fonctionnement des modules liés à l'implémentation des attributs et relations spatio-temporelles. Ce sont les modules nécessaires à l'exécution d'un document Madeus : le médiateur d'objets, le graphe temporel et spatial, et l'ordonnanceur.

[Table des matières]

1.2.1 Le médiateur d'objet

Le médiateur objet met en correspondance la progression temporelle du document et les opérations qui permettent de restituer le contenu du document à l'utilisateur. Ce médiateur assure les traitements spécifiques sur les média de base, comme la décompression d'une vidéo ou d'un son. Il permet aussi l'allocation des ressources.

A chaque objet du document est associé un contexte permettant d'indiquer l'état de sa présentation. Cet état est défini par les informations suivantes :

[Table des matières]

1.2.2 Les contraintes temporelles et spatiales

À partir des objets et des relations temporelles à base d'intervalles spécifiés dans le document multimédia, un arbre abstrait est construit puis un graphe temporel à base d'instant est produit (c.f. Fig 2 ).

De plus, à partir des relations spatiales, un graphe de contraintes est construit en utilisant l'algorithme DeltaBlue .

Image RepInterne.gif
Fig 2. Arbre abstrait et graphe temporel dans Madeus

[Table des matières]

1.2.3 L'ordonnanceur

L'ordonnanceur se situe au coeur du système de présentation multimédia. Après le chargement du document et la production du graphe temporel et spatial, le démarrage effectif est pris en charge par l'ordonnanceur. C'est ce module qui coordonne les différentes activités de présentation du document et assure sa progression temporelle. Cette progression est réalisée par une horloge associée au document, dont les tops définissent le pas de progression de la présentation.

[Table des matières]

2 Langage de spécification spatio-temporel

Cette section propose une syntaxe pour spécifier les attributs, les relations et les événements spatio-temporelles. L'objectif est de proposer une extension du langage de Madeus (c.f. 3.3).

[Table des matières]

2.1 Sous-intervalles et attributs

Au sein de la déclaration d'un objet, délimitée par les marques <OBJECT> et <EOBJECT>, les attributs spatio-temporels, conformément au modèle présenté en 0, se spécifient selon le schéma générique suivant :

<STNomAttribut> // marque de début d'un attribut spatio-temporel

<INT> // marque de début d'un sous-intervalle

<NAME> nom

<DUR> durée

<FUNCTION> fonction

<INT>

...

...

<ESTNomAttribut> // marque de fin d'un attribut spatio-temporel


NomAttribut est le nom de l'attribut considéré (POS, STYLE, etc.), nom l'identificateur du sous-intervalle,durée la durée du sous-intervalle et fonction la fonction caractérisque de ce sous-intervalle. Cette fonction peut dépendre du temps absolu écoulé depuis de début du sous-intervalle (noté T), ou du temps normalisé (noté TNORM). De plus, pour simplifier la tâche de l'auteur, la marque <FUNCTION> peut être remplacée par des fonctions prédéfinies pour chaque attribut. Ainsi, pour l'attribut position (<POS>) on a les fonctions suivantes :

pour l'attribut couleur : et pour l'attribut taille de caractères : Par exemple, la figure Fig 3 montre une partie de la spécification de l'objet déclaré dans scénario 4, qui correspond au déplacement d'un texte, d'un effet de fondu et d'un effet de zoom (c.f. 0.0.0).
<OBJECT>
<NAME> Platini
<DUR>  5.0
<STPOS>
<INT>
<NAME> PosI1
<DUR>  5.0
<SEGMENT> 10 10 50 50
<ESTPOS>
<STCOLOR>
<INT>
<NAME> ColorI1
<DUR> 5.0
<SHADING> 0.0 0.0 0.0 1.0 1.0 1.0
<ESTCOLOR>
<STFONTSIZE>
<INT>
<NAME> SizeI1
<DUR> 5.0
<ZOOM> 12 16
<ESTFONTSIZE>
<EOBJET>
Fig 3. Déclaration des intervalles spatio-temporels du scénario 4

Le nom du sous-intervalle est préfixé par le nom de l'intervalle englobant. Par exemple, le sous-intervalle PosI1 (Fig 3 ) est référencé sous son nom complet Platini.PosI1.

[Table des matières]

2.2 Les relations

Les relations spatiales dépendantes du temps sont spécifiées comme suit : Les relations temporelles dépendantes de l'espace sont spécifiés en utilisant la notion d'événements. Ceux-ci sont déclarés au sein de l'objet via la marque <EVENT> dont la syntaxe est la suivante :

<EVENT> { <SOURCE> Objet

<CONDITION> conditions

<ACTIONS> actions }

<SOURCE> correspond à l'objet émetteur de l'événement, <CONDITION> spécifie la liste des conditions pour émettre l'événement et <ACTION> donne la liste des actions à effectuer. Par exemple, ci-dessous, le sous-intervalle B.I2 commence lorsque l'objet A est à la position (50, 50) :

<EVENTS> { <SOURCE> A 
           <CONDITION> <POS> 50 50 
           <ACTIONS> : lancer B.I2 }
[Table des matières]

2.3 Cohérence

Nous avons vu dans la section 0.0 qu'il existait une relation d'exclusion mutuelle entre les sous-intervalles spatio-temporels d'un même attribut au sein d'un même objet. Or, pour le moment, il n'est pas possible d'exprimer l'exclusion mutuelle car il est difficile de vérifier sa cohérence . Par conséquent, l'auteur doit explicitement spécifier les relations temporelles entre les sous-intervalles d'un même objet.

[Table des matières]

2.4 Localisation des relations

Dans la version actuelle de Madeus, les relations temporelles et spatiales sont spécifiées après la déclaration des objets. Comme les objets sont caractérisés par un seul intervalle, le besoin de spécifier les relations dans la déclaration de l'objet est inutile. Ce n'est plus le cas avec l'introduction des sous-intervalles. Les relations temporelles et spatiales entre les sous-intervalles d'un même objet doivent être déclarées en même temps que l'objet lui-même afin de rendre le code déclaratif plus lisible. Les relations entre les intervalles d'objets différents sont, comme avant (c.f. 3.3), spécifiées après la déclaration des objets. De plus, sont spécifiées à cet endroit les relations entre les sous-intervalles d'objets différents.

[Table des matières]

3 Implémentation de la spécification spatio-temporelle dans le système de présentation

[Table des matières]

3.1 Séparation Objet-Intervalle

Dans la version actuelle de Madeus, un objet est identifié à un intervalle. L'introduction des sous-intervalles nécessite la création d'une structure indépendante regroupant les attributs (implémentés par des variables) d'un objet. Ainsi, un intervalle regroupe les informations temporelles, un pointeur sur l'objet correspondant et un pointeur sur l'intervalle englobant lorsqu'il s'agit d'un sous-intervalle.

[Table des matières]

3.2 Création d'un nouvel objet : le sous-intervalle

Les sous-intervalles peuvent être vus comme un type particulier d'objet, dont la particularité est qu'il n'a pas d'existence physique (le sous-intervalle n'est pas visualisé). À ce type d'objet sont associées des actions dont l'objectif est de réaliser la modification des attributs et des relations de l'objet référencé par l'intervalle englobant.

[Table des matières]

3.3 Les actions

Les actions portent soit sur les attributs, soit sur les relations.

[Table des matières]

3.3.1 Les attributs

Nous distinguons deux actions pour chaque attribut. La première consiste en la modification de sa valeur au début du sous-intervalle. Elle permet ainsi de réaliser la spécification d'une valeur constante pendant un sous-intervalle.

La seconde action est de modifier régulièrement la valeur de l'attribut conformément à la spécification de la fonction. Une étape d'initialisation est nécéssaire pour interpréter et codifier la spécification de la fonction. Concrètement, lorsque l'auteur spécifie la trajectoire d'un objet via la marque <SEGMENT>, le système calcule le pas de déplacement sur l'axe vertical et horizontal. Ensuite, le fonctionnement est identique à celui de l'ordonnanceur.

[Table des matières]

3.3.2 Les relations spatiales

Les trois types de relations spatiales (intemporelles, temporisées et pontuelles) se réalisent grâce à trois actions différentes. Chacune de ces actions porte sur la mise en place d'une contrainte spatiale entre deux objets. Seule la durée de cette contrainte change.

Pour les relations spatiales ponctuelles, la contrainte spatiale est ajoutée au graphe des contraintes spatiales, puis le résolveur spatial est appelé afin de maintenir la solution du système de contraintes. La contrainte est alors enlevée du graphe.

Pour les relations spatiales temporisées le principe est le même sauf que la relation est associé à un chronomètre initialisé à la durée de la relation. La relation est ajoutée au système de contraintes lorsque l'intervalle temporel commence, puis une fois la durée passée, la relation est retirée du système de contraintes. De plus, il est nécessaire d'appeler régulièrement, c'est-à-dire à chaque top d'horloge (1.2.3), le résolveur de maintien du système de contraintes à cause de la dynamique des objets.

Enfin, les relations intemporelles sont les plus simples puisqu'elles sont établies pendant leur déclaration. Le résolveur est aussi appelé à chaque pas de l'horloge (c.f. 1.2.3) afin de maintenir une solution.

[Table des matières]

3.3.3 Les événéments

Les événements sont stockés dans une table. Lorsqu'un pas d'un attribut est joué et que pour ce pas donné les conditions sont respectées, alors les actions associées sont exécutées.

[Table des matières]

4 Environnement d'édition

L'édition d`un document multimédia s'effectue en deux phases : La nature dynamique des éléments manipulés ainsi que la définition de leur ordonnancement temporel empêche la fusion de ces deux phases. Le principe du wysiwygnote1, fort utile lors de l'édition d'un document conventionnel ne peut donc pas s'appliquer complètement à l'édition de documents mutimédia. Néanmoins, Madeus permet de s'en rapprocher grâce à la possibilité d'enchaîner de façon directe ces deux phases.

La prise en compte de la spécification des attributs et des relations spatio-temporelles doit respecter la même philosophie de Madeus, c'est-à-dire un fort couplage entre l'édition et la présentation.

Les outils d'édition tels que Flash (c.f. 2.2.2) utilisent le concept de keyframe pour définir des instants clés. L'idée est de reprendre ce concept pour éditer les sous-intervalles spatio-temporelles. Une commande de navigation supplémentaire pourrait être ajoutée pour naviguer entre les instants clés des sous-intervalles (l'instant initial et final) de l'objet et de l'attribut sélectionné ().

[Table des matières]

5 Expérimentation

Un expérimentation de ce modèle d'implémentation a été effectué au sein du prototype Madeus. La spécification des attributs spatio-temporels a été testée sur les attribut position, couleur et taille de caractères. Les fonctions de déplacement linéaire et de dégradé ont été testées. Concernant les relations, toutes les relations spatiales de Madeus ont été étendues aux relations spatio-temporelles. Enfin, la synchronisation spatiale est implémentée en utilisant les événements sur les objets de type vidéo et audio.

Notes :

(1)

What You See Is What You Get.