FR 2891081 A1 20070323 FR 0509646 A 20050921 La présente invention concerne un procédé et un dispositif d'élaboration d'un DVD-Vidéo ainsi qu'un programme, un support d'enregistrement et un module d'instanciation pour ce procédé. Dans la suite de ce texte, les termes techniques utilisés sont ceux définis par la norme sur le DVD-Vidéo et dans la norme sur les langages SGML (Standard Generalized Markup Language) et XML (Extended Markup Language). On rappelle ici qu'une structure de DVD-Vidéo telle que définie dans la norme sur le DVD-Vidéo est une structure arborescente ou hiérarchisée dans laquelle chaque élément de la structure peut comporter des sous éléments, eux-mêmes comportant des sous éléments et ainsi de suite jusqu'au plus petit élément constituant une terminaison de l'arborescence. Par exemple, les éléments racine de la structure d'un DVD-Vidéo sont formés d'un élément VMG (Video Manager) et d'un ou plusieurs éléments VTS (Video Title Set) ou titre. L'élément VMG est lui-même composé d'un élément VMGI (Video Manager Information), d'un élément VMGM-VOBS (Video Object Set for VMG Menu) et d'un élément VMGI (BUP) de sauvegarde. De même, chaque élément VTS est formé d'un élément VTSI (Video Title Set Information), d'un élément VTSM VOBS (Video Object Set for the VTS Menu), d'un élément VTSTT VOBS (Video Object Set for titles in VTS) et d'un élement VTSI (BUP) de sauvegarde. L'élément VTSI contient des données de commande pour l'élément VTS. L'élément VTSI est enregistré dans un 30 fichier VTS ## O.IFO sur le disque DVD. L'élément VTSM VOBS contient le contenu de tous les types de menus de l'élément VTS. Ce contenu est enregistré dans un fichier VTS ## O.VOB sur le disque DVD-Vidéo. L'élément VTSTT VOBS contient le contenu multimédia (audio et vidéo) qui doit être joué par le lecteur DVD. Ce contenu étant enregistré dans des fichiers VTS ## @.VOB. Ici, le symbole ## représente un nombre à deux digits 5 et le symbole @ représente un nombre à un digit. Les éléments VOBs, c'est-à-dire par exemple, les éléments VTSM VOBS et VTSTT VOBS, comprennent des cellules individuelles liées les unes aux autres par des PGC (Program Chain's). Chaque cellule contient les ressources audio et vidéo susceptibles d'être jouées par un lecteur DVD. Les ressources sont de quatre types: -des flux de données vidéo codées au format MPEG 1 ou 2 ou des images ( Slideshow dans la norme sur le DVD-15 Vidéo), - des flux de données audio, - des sous images ( Sub-pictures dans la norme DVD-Vidéo), et -des données de navigation pour produire 20 l'interactivité nécessaire avec l'utilisateur pour naviguer dans le DVD-Vidéo. Chaque PGC peut contenir du code DVD-Vidéo écrit dans un langage de programmation développé pour les DVD-Vidéo, de manière à fournir l'interactivité nécessaire à l'utilisation du DVD-Vidéo. Par exemple, ce code DVD-Vidéo permet de définir l'action qui doit être exécutée par un lecteur de DVD en réponse à l'enfoncement d'une touche prédéterminée d'une télécommande du lecteur DVD. Le code DVD-Vidéo est écrit à l'aide de mnémoniques de bas niveau correspondant chacun à un code binaire exécutable par un lecteur DVD-Vidéo. L'ensemble des fichiers (fichiers avec les extensions.IFO, .VOB et.BUP) définissant la structure du DVD-Vidéo ainsi que les ressources audio, vidéo, images et sous images destinées à être enregistrées sur le disque DVD pour former un disque DVD-Vidéo sont appelées Images du DVDVidéo . Au plus bas niveau, l'image d'un DVD-Vidéo correspond à un code binaire formé de 0 et de 1. Pour éviter d'avoir à écrire directement en code binaire, un langage de programmation de bas niveau comprenant des mnémoniques représentant la structure du DVD-Vidéo ont été définis. Ces mnémoniques sont très proches du code binaire et permettent de contrôler précisément le code binaire obtenu. Toutefois, élaborer à l'aide de ces mnémoniques un DVD-Vidéo ayant une structure de navigation complexe s'avère long et fastidieux. En effet, cela s'apparente dans le monde de l'informatique à programmer en langage assembleur, par exemple. Pour remédier à cet inconvénient, des procédés d'élaboration ( authoring en anglais) introduisant des couches d'abstractions ont été proposés. Par exemple, un tel procédé est divulgué dans la demande WO 03/094519 au nom de ZOO DIGITAL GROUP. La couche d'abstraction a pour but de permettre au programmeur de se concentrer sur le résultat à obtenir sans se soucier de l'implémentation en langage de bas niveau. Par exemple, le procédé divulgué dans WO 03/094519 permet au programmeur de définir des composants représentant des menus du DVD-Vidéo ainsi que des transitions entre ces composants. Ces transitions représentent, par exemple, les déplacements possibles entre les différents menus. De plus, les composants peuvent être paramétrés de sorte qu'un seul composant paramétré permet de représenter de multiples exemplaires de composants non paramétrés. Lors de la compilation, les composants paramétrés et les transitions sont développés, de manière à obtenir une structure arborescente non paramétrée et cette structure arborescente non paramétrée est automatiquement transformée en une image de DVD-Vidéo. Dans les procédés d'élaboration ayant recours à une couche d'abstraction, la transformation des composants et des transitions en une structure de DVD-Vidéo est réalisée automatiquement par un compilateur. Dès lors, le programmeur ne peut pas toujours contrôler précisément la structure du DVD-Vidéo obtenu. Par exemple, dans certains cas, c'est le compilateur qui effectue automatiquement à la place du programmeur le choix entre différentes structures de DVD-Vidéo possibles pour obtenir le résultat souhaité spécifié au niveau de la couche d'abstraction. Plus précisément, étant donné la grande flexibilité de la norme DVD-Vidéo, il est possible de créer des structures de DVD- Vidéo différentes et pourtant permettant d'obtenir un même résultat final, tel que, par exemple, une arborescence de navigation donnée entre différents menus d'un DVD-Vidéo. Toutefois, selon le DVD-Vidéo élaboré, une structure particulière du DVD-Vidéo peut se révéler être plus performante qu'une autre ou plus compatible, même si les résultats affichés sont sensiblement les mêmes. L'invention vise donc à remédier à cet inconvénient en proposant un procédé d'élaboration d'un DVD-Vidéo permettant de faciliter l'élaboration de DVD-Vidéo tout en permettant un contrôle précis de la structure du DVD-Vidéo. L'invention a donc pour objet un tel procédé d'élaboration comportant: a) une étape de création d'un modèle pour une portion d'une structure de DVDVidéo, ce modèle comportant: - des balises d'un langage SGML (Standard Generalized Markup Language) définissant au moins un PGC (Program Chain) et des éléments de ce PGC, l'imbrication de ces balises les unes dans les autres définissant une organisation hiérarchisée des éléments du PGC, au moins une valeur d'attribut instanciable constituée d'une chaîne de caractères en lieu et place d'une valeur d'attribut pour une balise, cette valeur d'attribut instanciable contenant au moins un caractère prédéterminé permettant d'identifier cette chaîne de caractères comme étant une valeur d'attribut instanciable, b) une étape d'instanciation du modèle lors de laquelle chaque valeur d'attribut instanciable est automatiquement remplacée par une valeur donnée pour obtenir une instance du modèle, et c) une étape de génération d'une image du DVD-Vidéo propre à être lue par un lecteur de DVD-Vidéo, chaque 15 instance étant compilée lors de cette étape. Pour faciliter l'élaboration du DVD-Vidéo tout en contrôlant précisément la structure de celui-ci, le procédé ci-dessus exploite le fait que de nombreuses portions de la structure du DVD-Vidéo peuvent être similaires les unes aux autres. Par similaire, on désigne ici le fait qu'une portion de la structure diffère d'une autre portion de la structure uniquement par la valeur d'un nombre restreint de valeurs d'attributs. Par exemple, pour un DVD-Vidéo implémentant un quiz, les portions de la structure correspondant chacune à une question sont souvent similaires les unes aux autres. Plus précisément, il arrive souvent que les seules différences entre des portions de structures correspondant à différentes questions soient les suivantes: - les ressources vidéo et audio utilisées pour chaque question sont différentes d'une question à l'autre, et - la bonne réponse à sélectionner pour chaque question ne correspond pas toujours à la même touche de la télécommande d'une question à l'autre. Ainsi, de nombreuses parties d'une structure de DVD-5 Vidéo peuvent être similaires sans pour autant être identiques. Dans ce contexte, avec le procédé ci-dessus, lors de l'étape a) le programmeur peut créer un modèle pour la portion de la structure du DVDVidéo correspondant à une question. Ce modèle est un modèle de bas niveau lui permettant de définir explicitement l'organisation de cette portion de structure ainsi que le contenu de cette portion de structure commun à chaque question. Plus précisément, les balises utilisées à cet effet lui permettent de définir précisément une organisation hiérarchisée pour chaque PGC. En particulier, les balises lui permettent de choisir l'organisation qu'il souhaite implémenter parmi l'ensemble des organisations possibles pour implémenter la portion de structure correspondant à une question. Grâce à ceci, contrairement à ce qui se passe avec des procédés connus d'élaboration d'un DVD-Vidéo ayant recours à des couches d'abstraction, le programmeur peut contrôler précisément l'organisation et le contenu de la portion de structure commune à chaque question. Ensuite, lors de l'étape b), des instances du modèle sont créées. Par exemple, une instance est créée pour chaque question du quiz. Lors de cette étape b), seules les valeurs données sont à fournir. Autrement dit, le programmeur n'a pas à redéfinir ou à réécrire explicitement l'organisation et le contenu commun de chaque portion de structure similaire. Au contraire, l'organisation et le contenu commun de chaque instance sont déduits automatiquement du modèle, de sorte que la création des différentes portions de structures similaires les unes aux autres est grandement facilitée. Les modes de réalisation de ce procédé d'élaboration peuvent comporter une ou plusieurs des caractéristiques suivantes. - le modèle contient un code DVD-Vidéo entre les balises, au moins une portion de ce code étant remplacée par une variable instanciable constituée d'une chaîne de caractères contenant au moins un caractère prédéterminé permettant d'identifier cette chaîne de caractères comme étant une variable instanciable, et entre les étapes b) et c), le procédé comporte une étape de résolution de liens lors de laquelle la valeur de chaque variable instanciable est automatiquement définie en fonction des instances créées; - l'étape a) comporte: - une opération d'écriture à l'aide de mnémoniques de bas niveau et de valeurs d'attributs d'une portion de structure de DVD-Vidéo définissant un ou plusieurs PGC, et une étape de transformation automatique de cette portion de structure en un modèle de structure de DVD-Vidéo en remplaçant au moins une valeur d'attribut par une valeur d'attribut instanciable; - lors de l'étape b) les valeurs données sont obtenues automatiquement à partir d'une base de données. Les modes de réalisation du procédé d'élaboration présentent en outre les avantages suivants: - l'utilisation de variables instanciables dans le code DVD-Vidéo dont les valeurs sont susceptibles d'être définies automatiquement lors de la résolution de liens, permet d'accélérer la création du code DVD-Vidéo de chaque instance, - la transformation automatique d'une portion d'une structure de DVD-Vidéo en un modèle permet d'accélérer la création de ce modèle, et - la lecture des valeurs données lors de l'étape b) 5 dans une base de données permet d'accélérer l'étape d'instanciation. L'invention a également pour objet un programme d'ordinateur et un support d'enregistrement comportant des instructions pour la mise en oeuvre du procédé d'élaboration ci-dessus, lorsque ces instructions sont exécutées par un calculateur électronique. L'invention a également pour objet un dispositif de création d'un DVDVidéo comportant: - un module de création d'un modèle d'une portion d'une structure de DVD-Vidéo, ce modèle comportant: - des balises d'un langage SGML (Standard Generalized Markup Language) définissant au moins un PGC (Program Chain) et des éléments de ce PGC, l'imbrication de ces balises les unes dans les autres définissant une organisation hiérarchisée des éléments du PGC, au moins une valeur d'attribut instanciable constituée d'une chaîne de caractères en lieu et place d'une valeur d'attribut pour une balise, cette valeur d'attribut instanciable contenant au moins un caractère prédéterminé permettant d'identifier cette chaîne de caractères comme étant une valeur d'attribut instanciable; - un module d'instanciation du modèle créé apte à remplacer automatiquement chaque valeur d'attributs instanciable du modèle par une valeur donnée pour obtenir une instance du modèle, et - un compilateur propre à compiler chaque instance du modèle pour générer une image du DVD-Vidéo lisible par un lecteur DVD-Vidéo. Les modes de réalisation de ce dispositif peuvent comporter une ou plusieurs des caractéristiques suivantes: - le module de création est apte à créer un modèle comportant un code DVD-Vidéo entre les balises, au moins une portion de ce code étant remplacée par une variable instanciable constituée d'une chaîne de caractères contenant au moins un caractère prédéterminé qui permet d'identifier cette chaîne de caractères comme étant une variable instanciable, et il comporte un module de résolution de liens apte à définir automatiquement la valeur de chaque variable instanciable en fonction des instances créées; - le module de création comporte: - un sous-module d'écriture d'une portion d'une structure de DVD-Vidéo définissant un ou plusieurs PGC à l'aide de mnémoniques de bas niveau et de valeurs d'attributs, et un sous-module de transformation apte à transformer automatiquement la portion de structure de DVD- Vidéo écrite à l'aide du module d'écriture en un modèle de structure de DVD-Vidéo en remplaçant au moins une valeur d'attribut par une valeur d'attribut instanciable; - le module d'instanciation est apte à obtenir automatiquement les valeurs données aux valeurs d'attributs instanciables à partir d'une base de données. L'invention a également pour objet un module d'instanciation apte à être mis en oeuvre dans le dispositif ci-dessus. L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins sur lesquels: - la figure 1 est une illustration schématique de l'architecture d'un dispositif d'élaboration d'un DVDVidéo, - les figures 2A A 2E sont des illustrations de ressources de type image utilisées lors de l'élaboration d'un DVD-Vidéo à l'aide du dispositif de la figure 1, la figure 3 est une illustration d'une ressource de type sous image utilisée lors de d'élaboration d'un DVD-Vidéo à l'aide du dispositif de la figure 1, - la figure 4 est un extrait de listing d'un modèle d'une portion de structure de DVD-Vidéo utilisable dans le dispositif de la figure 1, - la figure 5 est une illustration d'une image visible lors de la lecture d'un DVD-Vidéo élaboré à l'aide 15 du dispositif de la figure 1, - la figure 6 est un organigramme d'un procédé d'élaboration d'un DVDVidéo, et - la figure 7 est un extrait d'un listing de script mis en oeuvre dans le procédé de la figure 6. La figure 1 représente un dispositif 2 d'élaboration d'un DVD-Vidéo. Ce dispositif 2 comprend un programme 4 d'élaboration d'un DVD-Vidéo exécutable par un calculateur électronique 6. Typiquement, le calculateur 6 est un calculateur programmable apte à exécuter des instructions enregistrées sur un support 8 d'enregistrement d'informations. A cet effet, le support 8 contient des instructions pour l'exécution du procédé de la figure 6. Le calculateur 6 est raccordé à une interface 9 homme/machine permettant l'affichage et la saisie d'informations. L'interface 8 est, par exemple, réalisée à l'aide d'un écran 10 et d'un clavier 12. Le logiciel 4 comprend: - un module 20 de création d'un modèle d'une portion de structure de DVD-Vidéo, - un module 22 d'instanciation du modèle créé à l'aide du module 20, - un module 23 de résolution de liens, et - un compilateur 24 apte à générer l'image d'un DVDVidéo propre à être lue par un lecteur de DVD-Vidéo en compilant les instances générées par le module 22. Le module 20 comprend un sous-module 26 d'écriture en langage de bas niveau de la structure d'un DVD-Vidéo, et un sous-module 28 de transformation automatique d'une portion de structure de DVD-Vidéo écrite à l'aide du module 26 en un modèle instanciable par le module 22. Des compilateurs tel que le compilateur 24 et des modules d'écriture tel que le sous-module 26 sont déjà connus. Par exemple, le module 24 et le sous-module 26 sont ceux d'un logiciel 30 commercialisé sous la marque SCENARIST par la société SONIC (voir www.sonic.com). Les modules 22, 23 et le sous-module 28 font partie d'un logiciel 32 spécifiquement conçus pour échanger des informations avec le logiciel 30. A cet effet, les logiciels 30 et 32 comportent respectivement des modules 34 et 36 d'exportation des données qu'ils génèrent dans un fichier texte et d'importation des données présentes dans un tel fichier texte dans le logiciel. Ici, le fichier texte exporté ou importé est au format Script de SCENARIST. Le dispositif 2 comporte également des moyens de stockage d'informations représentés ici sous la forme d'une 30 mémoire 40 destinée à contenir: des ressources vidéo et audio 42 utilisés lors l'élaboration du DVD-Vidéo, - au moins un modèle 44 d'une portion de structure de DVD-Vidéo, et éventuellement, une base de données 46 contenant des valeurs données utilisables lors de l'instanciation d'un modèle. Les figures 2A à 2E représentent chacune une image 5 faisant partie des ressources 42. Par exemple, chaque image est enregistrée dans un fichier au format BITMAP . Chacune des cinq images comporte: - la même photo 50 d'une situation du code de la route, - le texte de deux questions dans les cadres Q1 et Q2, pour la question Q1, deux cadres R1.1 et R1.2 et pour la question Q2 également deux cadres R2.1 et R2.2, - un cadre 54 destiné à afficher les réponses sélectionnées par l'utilisateur ou les réponses aux questions, quatre boutons d'une télécommande référencés A à D et un bouton V de validation, et - trois voyants 60 à 62 servant à indiquer le temps 20 restant avant la fin du temps alloué pour répondre aux questions Q1 et Q2. Le cadre R1.1 indique que si l'utilisateur estime que la réponse à la question Q1 est oui , le bouton A doit être sélectionné. Le cadre R1.2 indique que le bouton B doit être sélectionné si la réponse à la question est non . De même, les cadres R2.1 et R2.2 indiquent que les boutons C et D correspondent respectivement à une réponse oui et non . Les images des figures 2A A 2D diffèrent uniquement par la couleur des voyants 60 à 62. Plus précisément, sur l'image de la figure 2A, aucun des voyants 60 à 62 n'est allumé. Sur la figure 2B, seul le voyant 60 est allumé. Sur la figure 2C, seul le voyant 61 est allumé et sur la figure 2D, seul le voyant 62 est allumé. L'image de la figure 2E est identique à celle de la figure 2A à l'exception du fait que les réponses correctes aux questions Q1 et Q2 sont affichées en surbrillance, c'est-à-dire ici les réponses R1.2 et R2. 1. La figure 3 représente une sous-image 70 enregistrée en tant que ressource 42. La sous-image 70 est destinée à se superposer sur l'une des images des figures 2B à 2D. Plus précisément, elle comporte deux caractères 72 et 73 correspondant aux réponses sélectionnées par l'utilisateur du DVD-Vidéo. La sous image 70 comporte également cinq ovales 76 à 80 destinés à se superposer respectivement sur les boutons A à D et sur le bouton de validation. Les ovales 76 à 80 sont ici utilisés pour désigner quels sont les boutons sélectionnables par l'utilisateur ainsi que pour désigner le bouton actuellement sélectionné. Il existe actuellement des sous-images similaires à la sous image 70 correspondant chacune à l'une des combinaison de deux lettres possible choisie dans l'ensemble [A; B; C; D]. Ici, les ressources 42 comportent également une ressource audio correspondant à la lecture des questions Q1 et Q2 ainsi que des réponses R1.1, R1.2, R2.1 et R2.2. Une autre ressource vidéo correspond à la lecture des réponses exactes aux questions Q1 et Q2. Pour chaque question relative à une situation du code de route, il existe donc cinq images, des sous-images et deux ressources audio enregistrées en tant que ressources vidéo et audio 42. La figure 4 représente un listing d'un exemple de modèle défini en langage XML. Sur ce listing, les numéros à gauche représentent les numéros de lignes. La balise d'ouverture et la balise de fermeture désignent le début et la fin de la définition d'un modèle d'une portion de structure de DVDVidéo (lignes 1 et 25). La balise d'ouverture comporte plusieurs attributs: - Template name qui permet d'indiquer le nom de ce modèle, Name qui permet d'indiquer le nom d'une 10 instance, LocalPath qui permet d'indiquer le chemin d'accès aux ressources utilisées par l'instance, Holder qui permet de désigner le chemin d'accès où doit être classée l'instance au sein d'une 15 arborescence, - Paraml qui permet d'indiquer le numéro d'une question, - Param2 qui permet d'indiquer le numéro de la réponse à la question, et - Param3 qui permet de définir le temps alloué pour répondre à la question. On notera que les valeurs des attributs Name , LocalPath et Holder sont formées de chaînes de caractères comportant chacune au moins un caractère spécial, ici, le caractère @. Le caractère @ est ici utilisé pour indiquer qu'il s'agit d'une valeur d'attribut instanciable destinée à être remplacée par une valeur d'attribut donnée lors de l'instanciation de ce modèle. Les valeurs des attributs Paraml , Param2 et Param3 sont ici respectivement égales à NumQuestion , Solution et Durée . Les trois chaînes de caractères NumQuestion , Solution et Durée sont des chaînes de caractères prédéterminées utilisées pour identifier respectivement trois valeurs d'attributs instanciable: @1, @2 et @3. Ces chaînes de caractères permettent de donner une information compréhensible pour le programmeur sur la nature de ces attributs @1, @2 et @3. La ligne 3 du listing de la figure 4 comporte la balise ainsi qu'un attribut Value dont la valeur d'attribut est 33422335 . La balise est utilisée pour indiquer le début de la définition des commandes que l'utilisateur peut exécuter à l'aide de sa télécommande. La valeur d'attributs 33422335 ne comporte aucun caractère prédéterminé susceptible de permettre au module 22 de la reconnaître comme étant une valeur d'attribut instanciable. Cette valeur d'attribut est donc constante et sera identique pour chacune des instances créées du modèle. Ici, la valeur 33422335 indique que l'utilisateur peut uniquement utiliser les touches de déplacement et la touche de validation de sa télécommande. Cette balise est uniquement située entre les balises et . Par conséquent, cette définition est héritée par l'ensemble des éléments fils situés entre les balises et . Par exemple, cette définition s'applique à chaque élément PGC défini dans ce modèle. Ce procédé d'héritage de propriétés s'applique également aux valeurs d'attributs. Ainsi, les attributs d'un élément fils peuvent hériter de la valeur de l'attribut de l'élément père. Les balises d'ouverture (ligne 4) et de fermeture (ligne 23) sont utilisées pour définir un PGC. Les attributs Name , Duration et Type de la balise permettent de définir respectivement le nom du PGC, sa durée et son type. Ici le PGC décrit est conçu pour gérer l'image de la figure 2A. Comme précédemment, le caractère spécial @ dans la valeur d'attributs de l'attribut Name indique qu'il s'agit d'une valeur d'attribut instanciable. La valeur d'attribut Audio de l'attribut Duration indique que ce PGC doit durer le même temps que celui nécessaire pour écouter l'ensemble de la ressource audio qui lui est associé. La valeur d'attribut Slide pour l'attribut Type indique que la ressource vidéo est ici un transparent ( SlideShow en anglais). Entre les balises et sont compris d'autres balises permettant de définir l'organisation et 10 les éléments contenus dans ce PGC. A la ligne 5, une balise et ses attributs Name et Type définissent qu'elle est l'unique ressource vidéo référencée par ce PGC. Ici, la valeur d'attribut @T @J 1 est identique au nom du PGC et indique qu'il s'agit d'une valeur d'attribut instanciable. Cette valeur aurait donc pu être héritée de l'élément parent. La valeur d'attribut Still indique que la ressource vidéo est une image fixe. Cette valeur d'attribut est une valeur constante et donc identique pour chacune des instances du modèle. A la ligne 6, la balise et l'attribut Name permet de référencer la ressource audio utilisée dans ce PGC. Plus précisément, le nom de la ressource utilisée est ici @T @J 1 . Il s'agit d'une valeur d'attribut instanciable. Les balises d'ouverture (ligne 7) et de fermeture (ligne 12) encadre la définition d'un code DVD-Vidéo. L'attribut Type permet d'indiquer si le code doit être exécuté avant que les ressources vidéo et audio soient jouées ( Pre-command dans la norme DVDVidéo), ou pendant que ces ressources vidéo et audio sont jouées ou encore après que ces ressources audio et vidéo aient été jouées ( Post-command dans la norme DVDVidéo). La valeur Pre de l'attribut Type indique ici que le code entre les lignes 7 et 12 doit être exécuté avant que les ressources ne soient jouées. A l'inverse la valeur Post de l'attribut Type 5 indique que le code entre les lignes 13 et 15 doit être exécuté après que les ressources aient été jouées. Les balises et (lignes 8 à 11 et 14) encadrent chaque ligne de code DVD-Vidéo. Ici, le code indiqué entre ces balises aux lignes 8 à 11 et à la ligne 14 est écrit en utilisant les mnémoniques compris par le logiciel Scenarist. La signification de ces mnémoniques ne sera donc pas donnée ici puisqu'elle peut être trouvée dans la documentation du logiciel Scenarist. Ces mnémoniques sont normalement identiques à ceux définis par la norme DVD-Vidéo. Les lignes 8 à 10 contiennent trois valeurs d'attributs instanciables respectivement @1, @2 et @3 ainsi qu'une instruction ≈[...] . L'instruction [...] retourne à la valeur de l'expression qui est située entre les crochets. On remarquera également que le code indiqué sur les lignes 10 et 11 comprend des variables dont le nom est formé d'une chaîne de caractères comportant le caractère prédéterminé $ (ici les variables $FLODA(1) et $FLOD(4) ) ce qui indique que ces variables sont des variables instanciables. Par exemple, le code DVD-Vidéo de la ligne 11 indique que si la variable GPRM4 est supérieure ou égale à 2, alors le prochain PGC à exécuter est celui désigné par la variable $FLOD(4). Ici, ceci permet de sauter directement au PGC gérant l'affichage des réponses aux questions (c'est-àdire ici celui gérant la ressource illustrée sur la figure 2E) sans passer par les PGC gérant les ressources illustrées sur les figures 2B à 2D consistant à poser une question et à attendre une réponse à cette question de la part de l'utilisateur. Ainsi, dans un mode d'apprentissage du DVD-Vidéo il est possible de consulter uniquement les réponses aux questions. Le code DVD-Vidéo de la ligne 14 indique que le PGC suivant à exécuter est le PGC désigné par la variable $FLOD(1), c'est-à-dire celui gérant l'image de la figure 2B. Les balises d'ouverture (ligne 16) et de 10 fermeture (ligne 22) encadrent la définition d'un flux de sous-images. La valeur d'attributs Button pour l'attribut Type de la balise à la ligne 17 indique que le code défini à la ligne 18 doit uniquement être exécuté lorsqu'un bouton prédéterminé de la télécommande est enfoncé. Chaque ligne de code correspond à un bouton prédéterminé. Ainsi, ici la première ligne de code est exécutée lorsque le premier bouton est enfoncé. Il aurait également été possible d'ajouter une deuxième ligne exécutée lorsque le deuxième bouton est enfoncé, et ainsi de suite. Le code DVD-Vidéo de la ligne 18 indique que l'on saute directement à la fin du PGC si l'un des boutons est appuyé. Ceci permet de raccourcir l'exécution de ce PGC et de passer plus rapidement à la suite. La balise (ligne 21) permet de définir la sous-image de ce flux. Ici, la valeur RemoteS de l'attribut Template est la valeur 0 de l'attribut Instance indique que la sous image utilisée ici correspond à l'instance numéro 0 du modèle appelé RemoteS . Ce modèle de sous image est définit à l'aide de balises XML et peut comporter une ou plusieurs valeurs d'attributs instanciables de façon similaire à ce qui est décrit pour ce modèle de PGC. La balise (ligne 22) et les valeurs des attributs Template et Instance permettent de définir une surbrillance ( HighLight en anglais). Ici, les valeurs d'attributs RemoteS et 0 indique que cette surbrillance correspond à l'instance numéro 0 du modèle de surbrillance appelé RemoteS . Les modèles de sous-images et de surbrillance RemoteS sont construits à l'aide de balises XML définies spécifiquement pour des modèles de sousimages et de surbrillance. La construction du modèle RemoteS est similaire à ce qui a été décrit pour le modèle de PGC, de sorte que la description détaillée de ce modèle RemoteS est omise. Ici, quatre autres modèles de PGC sont définis correspondant respectivement aux ressources illustrées sur les figures 2B A 2E. Chacune de ces définitions de modèle de PGC est encadrée par des balises et . La définition de ces autres modèles de PGC se fait de façon similaire à ce qui a été décrit ci-dessus. Dès lors, pour simplifier la figure 4, à la ligne 24, la définition des quatre autres PGC est omise. Cette omission est indiquée sur la ligne 24 par trois points. Le fonctionnement du dispositif 2 va maintenant être décrit dans le cas particulier d'un DVD-Vidéo appelé ici 25 DVD du code de la route. Le DVD du code de la route est destiné à aider les utilisateurs à se préparer à la partie écrite de l'examen du permis de conduire en France. Le DVD du code de la route permet d'afficher des séries de 40 questions relatives au code de la route auxquelles l'utilisateur peut répondre en sélectionnant à l'aide de sa télécommande les boutons A à D. Plus précisément, à l'aide d'un menu principal, l'utilisateur peut choisir entre au moins deux modes: un mode d'entraînement ou d'examen et un mode d'apprentissage. Dans chacun de ces modes de fonctionnement, la navigation entre les différentes informations à afficher est la même pour chaque question. Par exemple, en mode d'entraînement, le lecteur DVD affiche d'abord l'image de la figure 2A. Pendant l'affichage de l'image de la figure 2A, la ressource audio associée à cette figure 2A est jouée par le lecteur DVD. Lorsque le lecteur de DVD a fini de jouer la ressource audio, l'image de la figure 2B est automatiquement présentée pendant un temps proportionnel au nombre de réponses que doit fournir l'utilisateur. Ensuite, l'image de la figure 2C est affichée pendant un temps prédéterminé, par exemple 3 secondes, puis l'image de la figure 2D est affichée pendant un temps prédéterminé, par exemple de 3 secondes. Pendant l'affichage des images des figures 2B à 2D, l'utilisateur a la possibilité à l'aide de sa télécommande de sélectionner successivement deux boutons choisis parmi les boutons A A D pour répondre aux questions Q1 et Q2. La sélection d'un premier bouton commande l'affichage de la sous image indiquant quelle est le bouton sélectionné. Cette sous image s'affiche dans le cadre 54. Ensuite l'utilisateur sélectionne un second bouton pour répondre à la question Q2. La sous image affichée dans le cadre 54 est alors remplacée par une autre sous image contenant les deux lettres correspondant aux deux boutons sélectionnés par l'utilisateur. La figure 5 représente l'image affichée après que l'utilisateur ait sélectionné les boutons A et C. Après avoir affiché l'image de la figure 5, le lecteur de DVD affiche automatiquement la question suivante. En mode d'apprentissage, pour chaque question, le lecteur de DVD affiche l'image de la figure 2E. Dans cette image, les réponses exactes aux questions sont indiquées en surbrillance. En même temps que l'image de la figure 2E est affichée, le lecteur DVD joue une ressource audio correspondant à la lecture des réponses exactes. Comme on le comprendra, la structure de navigation du DVD du code de la route est particulièrement complexe. En particulier, les portions de la structure du DVD du code de la route correspondant à chacune des questions sont répétées autant de fois qu'il y a de questions. Le procédé d'élaboration de ce DVD-Vidéo va maintenant être décrit en regard de la figure 6. Initialement, lors d'une étape 100, les différentes ressources audio, vidéo, images et sous images nécessaires à la réalisation du DVD du code de la route sont créées puis enregistrées dans la mémoire 40 en tant que ressources 42. Ensuite, lors d'une étape 102, le logiciel Scenarist est utilisé pour créer un squelette de la structure du DVDVidéo. Ce squelette comprend l'ensemble des portions de la structure du DVD du code de la route qui sont non répétitives. Par exemple, ce squelette comprendra la définition de la partie d'introduction précédant l'affichage du menu principal, la définition d'un menu principal permettant de choisir l'un des modes de fonctionnement du DVD du code de la route. Une fois le squelette créé, lors d'une étape 104, le module 34 exporte ce squelette dans un fichier texte comprenant des instructions lisibles et directement compréhensibles par un humain. Le format de ce fichier texte est, par exemple, propre au logiciel Scenarist. Lors d'une étape 106, la base de données 46 est créée. Par exemple, cette base de données comprend une table appelée Series et définissant 41 champs. Le premier champ contient un identifiant d'une série de 40 questions. Cet identifiant sera, par exemple, de la forme S##, où chaque symbole # représente un digit compris entre 0 et 9. Les autres champs sont numérotés de 1 à 40 et sont destinés à contenir les réponses respectivement aux questions 1 à 40. Ici, la réponse à une question se présente sous la forme d'une chaîne de caractères comportant une ou plusieurs des lettres choisies dans l'ensemble {A, B, C, D}. Ensuite, lors d'une étape 108, un modèle de la portion de structure du DVD du code de la route correspondant à une question est créé. Plus précisément, lors d'une opération 110, à l'aide du module d'écriture 26, la structure du DVD du code de la route correspondant à une seule question est écrit en utilisant les mnémoniques de bas niveau définis dans le logiciel Scenarist. Ensuite, lors d'une opération 112, le module 34 exporte la structure ainsi définie dans un fichier au même 20 format que celui obtenu lors de l'étape 104. Lors d'une opération 114, le sous-module 28 transforme automatiquement le script exporté lors de l'opération 112, en un modèle d'une portion de structure vidéo utilisant les balises XML définies en regard de la figure 4. A cet effet, au moins l'une des valeurs du script exporté est remplacée par une valeur d'attribut instanciable. Ici l'opération de transformation 114 aboutit à l'obtention du modèle dont un extrait est représenté sur la figure 4. Les opérations 110 à 114 sont réitérées pour chaque 30 portion répétitive de la structure du DVD vidéo, de manière à obtenir pour chacune de ces portions un modèle. On notera que lors de l'étape 108, le programmeur définit précisément l'organisation et le contenu du modèle de portion de structure qu'il créé. En particulier, il peut 2891081 23 choisir explicitement entre différentes organisations possibles de ce modèle de portion de structure. Par exemple, plutôt que de définir un PGC pour chacune des ressources illustrées sur les figures 2A à 2E, le programmeur aurait pu choisir de ne définir qu'un seul PGC par question contenant des références aux cinq ressources illustrées sur les figures 2A A 2E. Ensuite, le module 22 procède à une étape 116 d'instanciation automatique du modèle créé lors de l'étape 108 puis à une étape 117 de résolution automatique de liens. A cet effet, le module 22 exécute un script. La figure 7 représente un extrait du listing de ce script écrit dans un langage de programmation interprétable par le logiciel Angel Script disponible sur le site Internet suivant: www.angelcode.com. Les numéros de lignes sont indiqués sur la gauche de la figure 7. Les lignes 1 à 24 exécutent l'étape 116 d'instanciation et correspondent à une implémentation du module 22, tandis que l'étape 117 de résolution de lien est réalisée à la ligne 25. Ce script étant écrit dans un langage de programmation connu, seules les lignes nécessitant des explications particulières seront décrites ici. Avant la ligne 1, la variable numserie est initialisée avec le numéro d'une série de questions. Par 25 exemple, ici, ce numéro est 01 . Ensuite, entre les lignes 2 et 24, le script construit 40 instances du modèle de la figure 4. Les lignes 4 à 6 transforment le numéro de question i en une chaîne de deux caractères. Par exemple, lors de la première exécution de la boucle, le numéro de la question est 01 . La ligne 7 combinée à la ligne 1 permet de construire la requête SQL (Structure Queries Language) permettant d'obtenir la réponse à la question numéro i en interrogeant la base de données 46. Les lignes 8 et 9 déclenchent l'exécution de la requête SQL et le stockage de la réponse à la question 5 numéro i dans la variable sqlres . Les lignes 10 à 18 permettent de transformer la réponse stockée dans la variable sqlres en une valeur numérique enregistrée dans une variable res . Ensuite, les lignes 19 à 21 remplacent les valeurs d'attributs @1, @2 et @3 respectivement par les valeurs des variables i-1, res et int (sglres.Len()) . Sglres.Len() calcule la longueur de la chaîne de caractères formant la réponse. La fonction int transforme cette longueur de chaîne de caractères en un entier. Ainsi, la valeur d'attributs @3 est remplacée par une valeur proportionnelle au nombre de réponses à fournir à la question. A la ligne 22, la fonction Build_Card construit l'instance numéro i du modèle. Cette fonction admet quatre paramètres. Le premier paramètre dont la valeur est ici MaxiCard désigne le nom du modèle à utiliser. Ce nom de modèle doit correspondre à la valeur de l'attribut TemplateName dans la balise . Ensuite, les paramètres i et S + Numserie correspondent respectivement aux valeurs destinées à remplacer les chaînes de caractères @J et @T. Ainsi, pour la première instance construite, la valeur d'attributs @T @J est remplacée par la valeur S01 01 . A la ligne 23, l'instance créée est ajoutée au groupe des instances créées. Une fois que l'ensemble des instances du modèle ont été créées, à la ligne 25, une fonction Scp_Build() réalise l'étape 117. Cette fonction Scp Build() correspond à l'implémentation logicielle du module 23. Lors de l'étape 117, la valeur des variables instanciables de chaque instance du modèle est définie en tenant compte de l'ensemble des instances créées. Par exemple, la valeur des variables instanciables est définie en fonction de l'identifiant attribué à chacune des instances, c'est-à-dire ici, la valeur de l'attribut Name de la balise ou encore du nombre d'instances créées. Par exemple, c'est lors de l'étape 118, que la chaîne de caractères $FLOD(4) est remplacée par l'adresse relative de la définition du PGC gérant la ressource illustrée sur figure 2E. Une fois la résolution de lien terminée, la fonction Scp Build() insère aussi les instances créées dans le fichier exporté lors de l'étape 104. A cette occasion, chaque instance est ajoutée dans le fichier exporté sous la forme de texte utilisant les mnémoniques définis par le logiciel Scenarist de manière à ce que, lors d'une étape 118, le module 34 puisse importer ce fichier modifié. Une fois l'importation du fichier réalisé, le sous-module 26 peut être utilisé pour achever l'élaboration du 25 DVD-Vidéo, lors d'une étape 120. Une fois que la structure et le code de l'ensemble du DVD-Vidéo a été élaboré, lors d'une étape 122, l'image du DVD-Vidéo est construite. Lors de cette étape 122, le compilateur 24 compile le projet élaboré et en particulier les instances créées lors de l'étape 116. Enfin, lors d'une étape 124, l'image du DVD-Vidéo est gravée sur un disque DVD, par exemple. De nombreux autres modes de réalisation du dispositif et du procédé de la figure 6 sont possibles. Par exemple, la le sous-module 28 est remplacé, en variante, par un éditeur de texte permettant au programmeur de transformer manuellement l'exemple de structure d'une question du DVD du code de la route en un modèle de questions. La base de données 46 peut également être omise. Dans ce cas là, lors de la création de chaque instance, le module 22 est adapté pour acquérir auprès du programmeur chaque valeur d'attribut instanciable. Les logiciels 30 et 32 sont, en variante, exécutés par des calculateurs électroniques distants reliés l'un à l'autre par l'intermédiaire d'un réseau grande distance de transmission d'informations. Ici, les valeurs d'attributs instanciables ont été décrites comme étant placées à l'intérieur de la balise ouvrante. En variante, ces valeurs d'attributs instanciables sont placées entre la balise ouvrante et la balise fermante correspondante. On remarquera que les ressources 42 sont créées indépendamment des instances. Ceci permet d'optimiser la gestion des ressources 42 en permettant, par exemple, que plusieurs instances se réfèrent à la même ressource. REVENDICATIONS 1. Procédé d'élaboration d'un DVD-Vidéo, caractérisé en ce que le procédé comporte: a) une étape (108) de création d'un modèle pour une portion d'une structure de DVD-Vidéo, ce modèle comportant. - des balises d'un langage SGML (Standard Generalized Markup Language) définissant au moins un PGC (Program Chain) et des éléments de ce PGC, l'imbrication de ces balises les unes dans les autres définissant une organisation hiérarchisée des éléments du PGC, au moins une valeur d'attribut instanciable constituée d'une chaîne de caractères en lieu et place d'une valeur d'attribut pour une balise, cette valeur d'attribut instanciable contenant au moins un caractère prédéterminé permettant d'identifier cette chaîne de caractères comme étant une valeur d'attribut instanciable, b) une étape (116) d'instanciation du modèle lors de laquelle chaque valeur d'attribut instanciable est automatiquement remplacée par une valeur donnée pour obtenir une instance du modèle, et c) une étape (122) de génération d'une image du DVDVidéo propre à être lue par un lecteur de DVD-Vidéo, chaque 25 instance étant compilée lors de cette étape. 2. Procédé selon la revendication 1, caractérisé en ce que le modèle contient un code DVD-Vidéo entre les balises, au moins une portion de ce code étant remplacée par une variable instanciable constituée d'une chaîne de caractères contenant au moins un caractère prédéterminé permettant d'identifier cette chaîne de caractères comme étant une variable instanciable, et en ce que entre les étapes b) et c), le procédé comporte une étape (117) de résolution de liens lors de laquelle la valeur de chaque variable instanciable est automatiquement définie en fonction des instances créées. 3. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l'étape a) comporte: - une opération (110) d'écriture à l'aide de mnémoniques de bas niveau et de valeurs d'attributs d'une portion de structure de DVD-Vidéo définissant un ou plusieurs PGC, et - une étape (114) de transformation automatique de cette portion de structure en un modèle de structure de DVD-Vidéo en remplaçant au moins une valeur d'attribut par une valeur d'attribut instanciable. 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que lors de l'étape b) les valeurs données sont obtenues automatiquement à partir d'une base de données. 5. Programme d'ordinateur, caractérisé en ce qu'il comporte des instructions pour la mise en oeuvre d'un procédé d'élaboration d'un DVDVidéo conforme à l'une quelconque des revendications précédentes, lorsque les instructions sont exécutées par un calculateur électronique. 6. Support d'enregistrement d'informations, caractérisé en ce qu'il comporte des instructions pour la mise en oeuvre d'un procédé d'élaboration d'un DVD-Vidéo conforme à l'une quelconque des revendications 1 à 4, lorsque ces instructions sont exécutées par un calculateur électronique. 7. Dispositif d'élaboration d'un DVD-Vidéo, 30 caractérisé en ce que ce dispositif comporte: - un module (20) de création d'un modèle d'une portion d'une structure de DVD-Vidéo, ce modèle comportant. - des balises d'un langage SGML (Standard Generalized Markup Language) définissant au moins un PGC (Program Chain) et des éléments de ce PGC, l'imbrication de ces balises les unes dans les autres définissant une organisation hiérarchisée des éléments du PGC, - au moins une valeur d'attribut instanciable constituée d'une chaîne de caractères en lieu et place d'une valeur d'attribut pour une balise, cette valeur d'attribut instanciable contenant au moins un caractère prédéterminé permettant d'identifier cette chaîne de caractères comme étant une valeur d'attribut instanciable. - un module (22) d'instanciation du modèle créé apte à remplacer automatiquement chaque valeur d'attributs instanciable du modèle par une valeur donnée pour obtenir une instance du modèle, et - un compilateur (24) propre à compiler chaque instance du modèle pour générer une image du DVD-Vidéo lisible par un lecteur DVD-Vidéo. 8. Dispositif selon la revendication 7, caractérisé en ce que le module de création est apte à créer un modèle comportant un code DVD-Vidéo entre les balises, au moins une portion de ce code étant remplacée par une variable instanciable constituée d'une chaîne de caractères contenant au moins un caractère prédéterminé qui permet d'identifier cette chaîne de caractères comme étant une variable instanciable, et en ce qu'il comporte un module (23) de résolution de liens apte à définir automatiquement la valeur de chaque variable instanciable en fonction des instances créées. 9. Dispositif selon la revendication 7 ou 8, caractérisé en ce que le module (20) de création comporte: - un sous-module (26) d'écriture d'une portion d'une structure de DVD-Vidéo définissant un ou plusieurs PGC à l'aide de mnémoniques de bas niveau et de valeurs d'attributs, et un sousmodule (28) de transformation apte à transformer automatiquement la portion de structure de DVD- Vidéo écrite à l'aide du module d'écriture en un modèle de structure de DVD-Vidéo en remplaçant au moins une valeur d'attribut par une valeur d'attribut instanciable. 10. Dispositif selon l'une quelconque des revendications 7 à 9, caractérisé en ce que le module d'instanciation (22) est apte à obtenir automatiquement les valeurs données aux valeurs d'attributs instanciables à partir d'une base de données. 11. Module d'instanciation d'un modèle d'une portion d'une structure de DVD-Vidéo apte à être mis en oeuvre dans un dispositif selon l'une quelconque des revendications 7 à 10, caractérisé en ce que le module d'instanciation est apte à remplacer automatiquement chaque valeur d'attribut instanciable du modèle par une valeur donnée pour obtenir une instance du modèle.