• Aucun résultat trouvé

Exemple de fragment de document SVG utilisant l'attribut externalResourcesRequired

Descriptions de scènes multimédia : représentations et optimisations

- 108 -

Chapitre 5 – Descriptions de scènes, création et distribution

Ainsi, dans le langage SVG, on peut afficher des éléments blocs par blocs. Cette technique est très avantageuse mais possède un inconvénient. Comme l'ordre d'affichage dans un document SVG est déterminé par l'ordre de déclaration dans le document, les blocs affichés en premier seront les blocs correspondant au fond, ce qui peut être ennuyeux car dans la plupart des scènes, le contenu important est placé au premier plan, donc en dernier dans le document. En prenant en compte cette particularité, on peut dans certains cas, construire les contenus de sorte que les informations importantes soient mises au début du document, mais ce n'est pas systématiquement possible.

5.4 Conclusion

Dans ce chapitre, nous avons présenté deux aspects de la chaîne de distribution de descriptions de scènes multimédia : la partie création et la partie distribution. Nous avons exposé brièvement l'état de l'art des méthodes d'édition de descriptions de scènes pour souligner le fait que les descriptions de scènes crées par des outils d'édition automatique nécessitaient des optimisations pour obtenir une représentation des scènes plus compacte à transmettre et moins complexe à lire. Nous avons également présenté l'état de l'art des différents modes de distribution des contenus multimédia, pour souligner les spécificités des descriptions de scènes lorsqu'il s'agit de leur diffusion. Nous avons notamment présenté les problèmes de la diffusion de document de scène qui pour l'instant est limité au mode téléchargement progressif. Nous avons également introduit les concepts de scalabilité et d'adaptation de flux multimédia. Dans les chapitres suivants, nous proposons des méthodes pour résoudre ces différents problèmes, notamment pour les scènes animées.

Chapitre 6

Méthodes pour la représentation efficace de

scènes multimédia animées

6.1 Introduction

Dans les chapitres précédents, nous avons présenté notre analyse de l'état de l'art des langages de descriptions de scènes. Nous avons décrit les principaux formats existants et présenté une synthèse des mécanismes d'animation de scènes, des méthodes de compression de scènes, des méthodes d'interactivité et des méthodes d'édition et de distribution de scènes.

Le constat que nous faisons à la suite de cette analyse est qu'il n'existe à l'heure actuelle aucune méthode pour représenter une scène multimédia animée qui satisfasse les critères suivants : qui soit à la fois efficace en débit, qui offre des propriétés de streaming, de scalabilité, et qui permette une maîtrise de la consommation mémoire et de la charge de calcul au niveau du lecteur. Dans ce chapitre, nous proposons un ensemble de méthodes pour permettre la représentation efficace de scènes multimédia fortement animées satisfaisant ces critères. Nous nous intéressons précisément à améliorer l'efficacité des différentes méthodes existantes dans les domaines de la compression, de la diffusion et de l'adaptation. Nous présentons ces différentes améliorations au travers d'expériences effectuées avec les différents langages présentés dans le chapitre 1.

6.2 Cas d'étude : le dessin animé

Tout au long de ce chapitre, nous illustrerons nos travaux sur une catégorie de scènes où l’animation est particulièrement importante. Il s’agit des contenus graphiques vectoriels animés de type dessins animés ou bandeaux publicitaires en 2D. Cette catégorie de scènes est très répandue sur Internet et y représente pour l’instant la majeure partie des contenus synthétiques animés. Les propositions, que nous donnons dans ce chapitre, visent à permettre la consommation de ces contenus sur des terminaux autres que les PC connectés à Internet, comme par exemple les terminaux mobiles connectés à un réseau 3G.

Descriptions de scènes multimédia : représentations et optimisations

- 112 -

Pour comprendre les propositions qui suivent, nous décrivons dans un premier temps les hypothèses de travail. Nous présentons brièvement les processus de création des contenus animés auxquels nous nous sommes intéressés. Nous verrons que ces processus peuvent être facilement généralisés à la création de scènes multimédia complètes et ainsi que notre méthode de représentation de scènes peut être généralisée.

Le processus de création de contenu vectoriel animé, du type dessin animé, et plus généralement de scènes multimédia animées, est un processus artistique qui implique des scénaristes et graphistes. Il s’agit d’un processus long et complexe qui a besoin d’être optimisé pour permettre la création de séquences longues, de manière efficace, surtout lorsque les scènes font appel à de nombreux objets graphiques synthétiques. De nombreux logiciels spécifiques, différents de ceux présentés dans le chapitre 5, existent pour faciliter ce processus. Ces logiciels utilisent souvent des formats de représentations internes propriétaires et ensuite permettent l’export, la publication, généralement dans un format vidéo ou dans le format Flash. Les propositions de représentation que nous décrivons dans ce chapitre ont vocation à être intégrées dans les fonctions d’export de ces outils. On distingue deux catégories d’outils qui se différentient sur le format des données entrantes : des dessins réalisés informatiquement ou des dessins sur support papier :

• Il existe de nombreux outils professionnels, et non professionnels, de la première catégorie. On peut citer le logiciel Flash ou le logiciel de dessin vectoriel Illustrator [93] combiné avec le logiciel Mobile Designer [94] pour effectuer les animations. Ces logiciels permettent de créer des dessins animés comme illustré dans la Figure 6.1. Le processus de création de chaque trame d’animation d'un objet graphique vectoriel est un processus long si l'on décide de créer chaque image séparément. L’utilisation des mécanismes d'animation par interpolation décrit dans le chapitre 2 permet d’accélérer ce processus en limitant le nombre d'image clés à créer. Les logiciels précédemment cités utilisent ces mécanismes d'interpolation.

Figure 6.1 – Exemple de dessin animé paramétrique créé avec Mobile Designer

La seconde catégorie utilise des dessins sur support papier. Ces logiciels, comme ePegs et Toon Boom Studio [92], sont les logiciels historiques du domaine et sont encore ceux qui sont utilisés le plus par l’industrie de production des dessins animés de type classique (Tex Avery, Hanna & Barbera), notamment pour la télévision. En effet, la qualité visuelle des dessins obtenus sur papier est jugée meilleure, et la création d'un dessin sur papier par un graphiste professionnel n'est pas nécessairement plus longue que la création informatisée. De plus, la

Chapitre 6 – Méthodes pour la représentation efficace de scènes multimédia animées

richesse visuelle de l'animation est souvent jugée insuffisante quand elle est produite par interpolation. Nous avons travaillé sur la base de contenus produits par cette seconde catégorie de logiciels.

Nous supposerons que le processus de création de contenu graphique vectoriel animé pour lequel nos propositions s'appliquent est le suivant :

• des dessinateurs créent les objets graphiques (personnages, décors) sur support papier ;

• les supports papiers sont acquis par scanner ;

• certaines images issues du scanner sont analysées et transformées dans un format vectoriel ;

• les dessinateurs ajoutent, à certaines images, les aplats ou gradients de couleurs aux éléments graphiques à l’aide d’un logiciel dédié ;

• les trames du scénario d’animation, appelées "prises de vues", sont créées par empilement des dessins précédents ;

• l'animation est produite par ajout et positionnement de nouveaux dessins dans une pile ou par suppression de dessins précédents ;

• et enfin, les mouvements de caméra sont ajoutés en changeant le positionnement de certains dessins.

Ce processus de création de scènes produit généralement des objets graphiques composés d’un décor sur lequel évoluent des personnages. Les dessins des personnages sont généralement composés de zones de couleur uniforme, souvent bordées d’un trait de couleur différente. Enfin, l’animation produite par ce processus se traduit par une liste d’actions à entreprendre à chaque instant : ajout d’un nouvel élément à afficher, suppression d’un élément qui était affiché dans l’image précédente, transformation d’un élément, mouvement de caméra. Les exemples de la Figure 6.2 montrent des dessins animés, ici produit par Hanna & Barbera, typiquement produits en suivant ce processus de création.

Descriptions de scènes multimédia : représentations et optimisations

- 114 -

Ce processus de création est intéressant car il s'étend de manière naturelle à la création de scènes multimédia animées et interactives complètes, c'est-à-dire comprenant également des éléments média de type audio/vidéo et du texte. En effet, aux dessins acquis par scanner, il suffit d'ajouter les éléments médias audio/vidéo/texte. Le placement et le positionnement des objets dans la prise de vue peuvent rester identiques pour ces nouveaux objets. Aux commandes de mise à jour de la feuille de prise de vue, on ajoute des commandes de démarrage et d'arrêt des éléments média. Enfin, une étape supplémentaire peut être facilement ajoutée à la fin de ce processus pour intégrer à la scène des capacités d'interactivité.

6.3 Choix d'une représentation

Le processus précédent aboutit donc à une liste d'objets visuels synthétiques ou non synthétiques à utiliser dans la scène, ainsi qu'à une suite d'actions à entreprendre à un instant précis pour composer une trame. Sur ces bases, nous nous sommes intéressés à déterminer la représentation de scènes la plus appropriée à la fois pour la liste des objets visuels et pour les actions d'animation.

Naturellement, la représentation de scènes utilisée par le langage Flash, utilisant les notions de dictionnaire et de liste d'affichage paraît la plus appropriée pour représenter la scène initiale. Cependant, nous avons opté pour une représentation arborescente de la scène parce que, outre le fait qu'elle permette de représenter les notions de dictionnaire et de liste d'affichage dont nous avons besoin ici, elle nous apporte plus de flexibilité dans l'organisation des objets dans la scène, ce qui peut être très utile pour la phase de création. Nous pouvons, par exemple, définir des sous-dictionnaires pour les images, les textes, et les autres catégories d'objets utilisés dans la scène.

Le processus de création des scènes animées, auxquelles nous nous intéressons, produit une liste d'actions. Le modèle d'animation par mise à jour est dans ce cas le plus approprié. Nous avons cependant introduit une hypothèse de travail supplémentaire : l’exclusion de l’utilisation de langage de script. En effet, l'exécution de scripts nécessite un interpréteur qui est coûteux en ressource mémoire et processeur au niveau du lecteur de contenu.

A partir de ces choix (représentation arborescente et animation par mises à jour sans utilisation de script), nous avons expérimenté l’utilisation des formats standards décrit précédemment (MPEG-4 BIFS, MPEG-4 LASeR, W3C SVG). Ces expérimentations ont eu pour but la réalisation de convertisseurs de contenus, à partir de scènes décrites dans le format Flash ou dans le format propriétaire de l'outil MediaPegs. Nous présentons ici les problèmes de représentation de ces scènes dans ces nouveaux formats : la représentation des concepts de liste d’affichage, de dictionnaire ainsi que la représentation des mises à jour.

Chapitre 6 – Méthodes pour la représentation efficace de scènes multimédia animées

6.3.1 MPEG-4 BIFS

Nous nous sommes tout d’abord intéressés au format MPEG-4 BIFS qui nous paraissait le plus proche du format Flash. Nos travaux ont été publiés sur ce sujet à la conférence CORESA [09] et dans la revue T-CSVT [03].

6.3.1.1 Problèmes et solutions

Nous proposons de représenter la scène initiale, c'est-à-dire la feuille de prise de vue initiale, en primitives BIFS selon la structure XMT-A décrite dans le Code 6.1.

<Group DEF="root"> <children> <Switch whichChoice="-1"> <choice> <Group DEF="Formes"> <children> <Shape DEF="FormeVide"/> </children> </Group> … </choice> </Switch> <OrderedGroup> <children> <Transform2D DEF="Couche1"> <children><Shape USE="FormeVide"/></children> </Transform2D> <Transform2D DEF="Couche2"> <children><Shape USE="FormeVide"/></children> </Transform2D> … </children> </OrderedGroup> </children> </Group>

Code 6.1 – Exemple de représentation d’une scène initiale de dessin animé dans le format XMT-A

Cette représentation utilise un arbre de scène à deux branches. La première, matérialisée par le nœud

Switch, permet de définir une branche de l’arbre BIFS qui ne sera pas rendu à l'écran, ici grâce à l'attribut whichChoice dont la valeur est -1. Les éléments définis dans cette branche ne seront jamais visibles sauf s’ils sont référencés ailleurs dans l’arbre, en utilisant la primitive USE décrite dans le chapitre 3. C'est le cas par exemple de la forme géométrique nommée FormeVide. La seconde branche est matérialisée par un nœud OrderedGroup qui définit un sous arbre dont les enfants correspondent aux différentes couches de la prise de vue, ici matérialisées par les noeuds

Transform2D. Chaque couche, identifiée par un nom de la forme "Couchei", est vide au départ. L'animation de la feuille de prise de vue est décrite par un ensemble de mise à jour BIFS. Les éléments sont ajoutés ou enlevés au dictionnaire, plus particulièrement à la branche "Formes", comme illustré dans le Code 6.2.

Descriptions de scènes multimédia : représentations et optimisations

- 116 -

<par begin="0.0">

<Insert atNode="Formes" atField="children" position="END"> <Transform2D DEF="Forme1"> … </Transform2D> </Insert> </par> <par begin="10.0"> <Delete atNode="Forme1"/> </par>

Code 6.2 – Représentation d’une mise à jour du dictionnaire dans le format MPEG-4 XMT-A

Un élément du dictionnaire est inséré dans la liste d’affichage par remplacement du ou des enfants d'une couche "Couchei" par une référence (USE) sur l'élément en question. On peut également modifier les propriétés d’affichage de chaque couche pour simuler les changements de caméra (zoom, pan) en modifiant les attributs de transformation du noeud "Couchei". Ces deux opérations sont décrites en XMT-A dans le Code 6.3.

<par begin="2.0">

<Replace atNode="Couche1" atField="scale" value="1.5 1.5"/>

<Replace atNode="Couche1" atField="translation" value="-302.0 960.0"/> <Replace atNode="Couche1" atField="children" position="0">

<Transform2D USE="Forme1"/> </Replace>

</par>