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.).
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 :
-
une horloge qui mesure sa progression temporelle ;
-
des pointeurs vers les noeuds du graphe qui correspondent aux instants
de début et de fin des objets. À partir de ces pointeurs,
l'ordonnanceur peut retrouver les actions de synchronisation à effectuer
lors de la terminaison de chaque objet ;
-
un ensemble d'attributs de présentation, comme la taille, la position
géométrique, la couleur, etc.
[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 .
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
:
-
<ABSOLUTE> Left Top : positionnement absolu ;
-
<SEGMENT> ILeft ITop FLeft FTop : déplacement le long
d'un segment dont le point initial est (ILeft, ITop) et le point
final (FLeft, FTop) ;
-
<VECTOR> ILeft ITop HSpeed VSpeed : déplacement le long
d'une droite dont le point initial est (ILeft, ITop) et le vecteur
directeur est (HSpeed, VSpeed).
pour l'attribut couleur :
-
<ABSOLUTE_RGB> Red Green Blue : couleur absolue dans l'espace
RGB ;
-
<SHADING> IRed IGreen IBlue FRed FGreen FBlue : changement progressif
de la couleur (dégradé).
et pour l'attribut taille de caractères :
-
<ZOOM> ISize FSize : changement progressif de la 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 :
-
Relations spatiales ponctuelles
-
Par défaut, les noms des relations spatiales actuelles sont redéfinies
comme des relations ponctuelles.Par convention, la relation spatiale porte
sur l'instant final de l'intervalle du premier objet de la relation (opérande
gauche). Par exemple, la relation ci-dessous est valide lorsque le sous-intervalle
A.I1 se termine :
A.I1 Top_Align B
-
Relation spatiales intemporelles
-
Elles se caractérisent par le mot Always préfixé
au nom des relations spatiales actuelles :
A Always_Top_Align B
-
Relations spatiales temporisées
-
Ce type de relation se spécifie en précisant la durée
de la relation entre parenthèse. Par exemple, la relation ci-dessous
spécifie un alignement à gauche entre A et B pendant une
durée de 10 secondes :
A Left_Align(10s) B
Il est possible de référencer la durée d'un objet
ou d'un sous-intervalle composant un objet grâce à l'attribut
during. Par exemple, la relation ci-dessous est valide pendant la durée
de l'objet C :
A Left_Align(C.during) B
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
:
-
une phase d'édition proprement dite pendant laquelle l'auteur compose
ou modifie son document. L'opération de composition d'un document
consiste en la définition des éléments de base et
en la spécification de relations entre ces éléments
;
-
une phase de présentation pendant laquelle le document est joué
à l'auteur. Cette phase comporte un ensemble de commandes permettant
de naviguer dans le document.
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.