Brevet FR2857123A1 — publié le 20050107

La présente invention concerne d'une manière générale les animations, par exemple construites selon la technique appelée Flash développée par la société Macromedia. Cette technique permet de fabriquer un fichier contenant une animation qui peut être jouée sur un ordinateur. II est possible d'inclure une ou des image(s) au format JPEG2000 dans cette animation. Une description de ce format est disponible à l'adresse internet: http:llwww.jpeg.org. On s'intéresse plus particulièrement à la création d'une telle animation. Dans le cadre d'une application client-serveur, on souhaite que les images JPEG2000 incluses dans l'animation respectent une bande passante. L'outil de création d'animations Flash comporte un testeur de bande passante. Il est donc possible de détecter un dépassement de bande passante. Cependant, aucune aide n'est proposée au créateur de l'animation pour résoudre ce problème. Le document US 6 185 625 propose une méthode selon laquelle l'utilisateur du terminal client fixe les paramètres de qualité qui seront utilisés pour jouer l'animation. Ces informations sont transmises au serveur, et l'animation est 30 codée de manière spécifique en fonction des paramètres fixés par l'utilisateur. L'animation codée est ensuite transmise au terminal client. Cette méthode implique donc un codage spécifique de l'animation avant sa transmission. Cela peut retarder la transmission. En outre, l'utilisateur du terminal client doit posséder des connaissances techniques pour fixer les paramètres de qualité de manière 5 appropriée. Dans le document Low complexity video coding for receiver-driven layered multicast , de S. Mc Canne, Jacobson et M. Vetterli, paru dans IEEE Journal of Selected Areas in Communications, Vol. 15, N 6, août 1997, pages 983-1001, un serveur émet des données selon un format hiérarchique. Les données sont donc organisées en un flux de base et des flux de rehaussement. Chaque client s'abonne à un ensemble de niveaux de hiérarchie en fonction de la charge du lien qui le relie au serveur. Dans ce système le serveur n'a pas de rôle actif. En outre, ce système présente des inconvénients: - le codage est peu efficace en raison du nombre important d'en-têtes dans chaque niveau de hiérarchie, - les routeurs du réseau doivent pouvoir bloquer ou laisser passer les flux correspondants aux différents niveaux de qualité demandés par les clients. - les requêtes d'abonnement et de désabonnement sont 20 nombreuses, ce qui diminue la bande passante effective, - le temps de convergence du système est assez élevé. La présente invention vise à remédier aux inconvénients de la technique antérieure, en fournissant un procédé et un dispositif d'aide à la création d'animations qui permettent d'adapter le contenu de l'animation à une bande passante déterminée. A cette fin, l'invention propose un procédé d'aide à la création d'une animation destinée à être jouée sur un terminal distant après téléchargement 30 depuis un serveur, l'animation comportant au moins une image numérique, caractérisé en ce qu'il comporte les étapes de: proposition de plusieurs modes d'animation pour l'image numérique, écriture du mode sélectionné par un utilisateur dans un fichier contenant les données de l'animation, - écriture des données de mise en oeuvre de l'animation dans ledit fichier. L'invention permet d'adapter le contenu de l'animation à la bande passante, mais également aux souhaits du créateur de l'animation. Selon un premier mode de réalisation caractéristique, les propositions de mode d'animation comportent: - un agrandissement de l'image par interpolation, - un agrandissement de l'image par interpolation suivi d'un agrandissement par téléchargement de données supplémentaires, le 15 téléchargement résultant d'un ordre d'agrandissement, - un agrandissement de l'image par téléchargement de données supplémentaires, le téléchargement étant préalable à un ordre d'agrandissement. Ainsi, le créateur de l'animation choisit le mode d'agrandissement de 20 l'image qui sera utilisé lorsque l'utilisateur du terminal client demandera cet agrandissement. Selon un second mode de réalisation, les propositions de mode d'animation comportent: - une animation avec une contrainte de vitesse de téléchargement, - une animation avec une contrainte de qualité d'image téléchargée. Dans ce cas, le créateur de l'animation choisit de privilégier soit la qualité de l'animation, soit la vitesse de téléchargement de l'animation. Bien entendu, les deux modes de réalisation peuvent être mis en oeuvre séparément ou en combinaison. Selon une caractéristique préférée du second mode de réalisation, le procédé comporte les étapes de: - détection des images dépassant une bande passante prédéterminée, - détermination d'une liste de versions possibles respectant la bande passante pour chaque image détectée, - sélection d'une version pour chaque image détectée, si l'animation avec contrainte de vitesse de téléchargement est sélectionnée. Selon une caractéristique préférée, la détermination d'une liste de versions possibles respectant la bande passante pour chaque image détectée comporte la maximisation d'un critère débit/distorsion. Ce critère est simple à mettre en oeuvre. Selon une caractéristique préférée du second mode de réalisation, le procédé comporte les étapes de: - détection des images dépassant une bande passante 15 prédéterminée, - détermination, pour chaque image détectée, de données supplémentaires à transmettre progressivement et permettant de reconstruire l'image à sa résolution et à sa qualité maximales, tout en respectant la bande passante pour chaque image détectée, si l'animation avec contrainte de qualité d'image téléchargée est sélectionnée. Selon une caractéristique préférée, l'animation est une liste de requêtes de type JPIP. Selon une caractéristique préférée, l'animation est incluse dans un fichier de type SWF. Selon une caractéristique préférée, l'image numérique est une image de type JPEG2000. Corrélativement, l'invention concerne un dispositif d'aide à la création d'une animation destinée à être jouée sur un terminal distant après téléchargement depuis un serveur, l'animation comportant au moins une image numérique, caractérisé en ce qu'il comporte: - des moyens de proposition de plusieurs modes d'animation pour 5 l'image numérique, - des moyens d'écriture du mode sélectionné par un utilisateur dans un fichier contenant les données de l'animation, - des moyens d'écriture des données de mise en oeuvre de l'animation dans ledit fichier. Le dispositif selon l'invention comporte des moyens de mise en oeuvre des caractéristiques précédemment exposées et présente des avantages analogues à ceux précédemment présentés. L'invention concerne aussi un appareil numérique incluant le dispositif selon l'invention ou des moyens de mise en oeuvre du procédé selon l'invention. Cet appareil numérique est par exemple un appareil photographique numérique, un caméscope numérique, un scanner, une imprimante, un photocopieur, un télécopieur. Les avantages du dispositif et de l'appareil numérique sont identiques à ceux précédemment exposés. Un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé selon l'invention. Un programme d'ordinateur lisible par un microprocesseur et comportant une ou plusieurs séquence d'instructions est apte à mettre en oeuvre les procédés selon l'invention. Les caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture d'un mode préféré de réalisation illustré 30 par les dessins ci-joints, dans lesquels: - la figure 1 est un mode de réalisation d'un dispositif mettant en oeuvre l'invention, - la figure 2 représente un dispositif selon l'invention, - la figure 3 représente un premier mode de réalisation de procédé selon l'invention, - la figure 4 représente trois méthodes d'agrandissement d'image mis 5 en oeuvre dans la présente invention, - la figure 5 représente un premier mode de réalisation de procédé de lecture d'animation selon l'invention, - la figure 6 représente un second mode de réalisation de procédé selon l'invention, - la figure 7 représente des boîtes de dialogue utilisées dans le second mode de réalisation de procédé selon l'invention, - la figure 8 représente un mode de réalisation de détermination d'une liste d'image dépassant une bande passante prédéterminée, - la figure 9 représente une structure de liste d'images, - la figure 10 représente un mode de réalisation de détermination de différentes versions d'une image respectant une bande passante prédéterminée. Selon le mode de réalisation choisi et représenté à la figure 1, un serveur 1 est relié à un terminal client 2 par l'intermédiaire d'un réseau de communication 3. Le serveur 1 met en oeuvre le dispositif de création de fichier décrivant une image numérique selon l'invention et le terminal client 2 met en oeuvre le dispositif de lecture de fichier décrivant une image numérique selon l'invention. Le serveur 1 et le terminal client 2 sont des ordinateurs dont un exemple d'architecture est décrit dans la suite. Le serveur comporte une mémoire destinée à mémoriser une animation 4. Dans le premier mode de réalisation, l'animation 4 comporte trois 30 images respectivement référencées 5, 6 et 7. Le serveur comporte également un fichier 9 au format SWF qui comporte une description de l'animation au format ActionScript. Le format SWF est le format dit Flash défini par la société Macromédia. Le logiciel Flash MX de création de contenu au format flash de cette société est disponible via Internet à l'adresse: http:/lwww.macromedia.com/softwarelflashl. Le livre intitulé Flash MX de Guylaine Monnier, aux éditions 5 Dunod, Paris, 2002, décrit ce logiciel. Selon l'invention, le dispositif de création de fichier décrivant une image numérique comporte: - des moyens (P) de proposition de plusieurs modes d'animation 10 pour l'image numérique, - des moyens (M) d'écriture du mode sélectionné par un utilisateur dans un fichier contenant les données de l'animation, - des moyens (D) d'écriture des données de mise en oeuvre de l'animation dans ledit fichier. Ces moyens sont intégrés au serveur ou dans un dispositif relié au serveur. Le serveur 1 et le terminal client 2 comportent des moyens de connexion au réseau 3. Le terminal client 2 comporte des moyens de réception et de mémorisation de données. Ces moyens sont classiques et ne sont pas décrits ici. Le terminal client 2 comporte une fenêtre d'affichage 8 dans laquelle l'animation 4 est affichée, après avoir été téléchargée depuis le serveur 1. Comme représenté à la figure 2, le serveur 1 est par exemple un microordinateur 10 connecté à différents périphériques, par exemple une caméra numérique 107 (ou un scanner, ou tout moyen d'acquisition ou de stockage d'image) reliée à une carte graphique et fournissant des informations à traiter selon l'invention. Le dispositif 10 comporte une interface de communication 112 reliée au réseau 3 apte à transmettre des données numériques à traiter ou inversement à transmettre des données traitées par le dispositif. Le dispositif 10 comporte également un moyen de stockage 108 tel que par exemple un disque dur. II comporte aussi un lecteur 109 de disque 110. Ce disque 110 peut être une disquette, un CD-ROM ou un DVD-ROM, par exemple. Le disque 110 comme le disque 108 peuvent contenir des données traitées selon l'invention ainsi que le ou les programmes mettant en oeuvre l'invention qui, une fois lu par le dispositif 10, sera stocké dans le disque dur 108. Selon une variante, le programme permettant au dispositif de mettre en oeuvre l'invention, pourra être stocké en mémoire morte 102 (appelée ROM sur le dessin). En seconde variante, le programme pourra être reçu pour être stocké de façon identique à celle décrite précédemment par l'intermédiaire du réseau de communication 113. Le dispositif 10 est relié à un microphone 111. Les données à traiter selon l'invention seront dans ce cas du signal audio. Ce même dispositif possède un écran 104 permettant de visualiser les données à traiter ou de servir d'interface avec l'utilisateur qui peut ainsi paramétrer certains modes de traitement, à l'aide du clavier 114 ou de tout autre moyen (souris par exemple). L'unité centrale 100 (appelée CPU sur le dessin) exécute les instructions relatives à la mise en oeuvre de l'invention, instructions stockées dans la mémoire morte 102 ou dans les autres éléments de stockage. Lors de la mise sous tension, les programmes de traitement stockés dans une mémoire non volatile, par exemple la ROM 102, sont transférés dans la mémoire vive RAM 103 qui contiendra alors le code exécutable de l'invention ainsi que des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention. De manière plus générale, un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé selon l'invention. Le bus de communication 101 permet la communication entre les différents éléments inclus dans le micro-ordinateur 10 ou reliés à lui. La représentation du bus 101 n'est pas limitative et notamment l'unité centrale 100 est susceptible de communiquer des instructions à tout élément du micro- ordinateur 10 directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 10. Le terminal client 2 est lui aussi un ordinateur ayant une architecture similaire à celle du serveur 1. La figure 3 représente un premier mode de réalisation de procédé de création de l'animation, selon l'invention. Ce procédé est mis en oeuvre dans le serveur 1 et comporte des étapes El à E5. Le procédé est réalisé sous la forme d'un algorithme qui peut être mémorisé en totalité ou en partie dans tout moyen de stockage d'information capable de coopérer avec le microprocesseur. Ce moyen de stockage est lisible par un ordinateur ou par un microprocesseur. Ce moyen de stockage est intégré ou non au dispositif, et peut être amovible. Par exemple, il peut comporter une bande magnétique, une disquette ou un CD-ROM (disque compact à mémoire figée). Le créateur de l'animation utilise le logiciel Flash MX pour créer des animations au format Flash. Cette création a pour résultat un fichier de type SWF écrit dans le langage ActionScript. L'utilisateur crée des objets qui sont principalement de type 20 vectoriel: par exemple des rectangles, des lignes ou des cercles. Il définit également leur animation. L'utilisateur peut inclure des images dans l'animation, bien que cellesci ne soient pas des données vectorielles, mais des données de type bitmap , c'est-à-dire se présentant sous la forme d'un ensemble de pixels. Lorsque l'animation est jouée sur le terminal client, l'utilisateur à la possibilité à tout moment de changer la taille de l'animation. Ceci ne pose pas de problème pour les données vectorielles, qui sont par définition indépendante de l'échelle d'affichage. En revanche, lorsque l'on souhaite agrandir une image, il faut en principe ajouter des pixels, donc ajouter de l'information. Pour ce faire, différentes méthodes sont possibles. On s'intéresse ici au cas où des images sont incluses dans l'animation. Ainsi, l'étape El est un test pour déterminer si une image est à inclure dans une animation Flash. On suppose que la réponse est positive. Il est alors nécessaire de choisir une méthode d'agrandissement pour chaque image. Ce choix est fait par l'utilisateur, par exemple par l'intermédiaire d'une fenêtre de dialogue. Dans l'exemple choisi, trois méthodes d'agrandissement sont possibles. L'étape suivante E2 est la sélection d'un attribut Ti, T2 ou T3 en fonction de la méthode d'agrandissement choisie par l'utilisateur. La figure 4 représente les trois méthodes d'agrandissement possibles. La méthode d'agrandissement T1 est une interpolation ou suréchantillonnage de l'image. Ainsi, l'image est agrandie sans information supplémentaire. Aucune donnée supplémentaire n'est à transmettre depuis le serveur. L'interpolation peut être effectuée de la manière suivante. On considère une ligne de 500 pixels {xi} avec i variant de 0 à 499. On souhaite former par interpolation une ligne de 700 pixels {Al avec j variant entre 0 et 699. Les pixels yA sont déterminés par la formule suivante: yj = xE(700xi/500) avec E(...) qui désigne la partie entière. Une formule similaire est appliquée sur les colonnes de l'image. Les calculs à effectuer sont très rapides et peuvent être considérer comme instantanés par rapport à la vitesse d'affichage de l'animation. En conséquence, un agrandissement de l'animation est effectué sans interruption de son déroulement. La méthode d'agrandissement T2 est une combinaison du mode précédent avec un processus dit de fetching . Ce processus consiste à télécharger les données JPEG2000 présentes sur le serveur et permettant d'afficher l'image à la taille demandée par l'utilisateur du terminal client. Ce téléchargement est relativement lent par rapport à l'affichage de l'animation. Pour ne pas perturber l'animation, un agrandissement par interpolation est effectué. Comme précisé plus haut, l'interpolation est très rapide, il n'y a donc pas d'interruption du déroulement de l'animation. Lorsque toutes les données JPEG2000 permettant d'afficher l'image à la taille demandée par l'utilisateur du terminal client ont été téléchargées et décodées, l'image interpolée est remplacée par l'image ainsi reconstruite. Cette opération est instantanée et ne modifie pas le déroulement de l'animation. La méthode d'agrandissement T3 est un processus dit de prefetching . Cette technique est décrite dans le document US 6 396 507. On suppose ici que l'utilisateur du terminal client va certainement agrandir l'animation. Dans cette hypothèse, un téléchargement anticipé des données nécessaires à l'agrandissement de l'image est effectué. Ces données sont mémorisées dans le terminal client, en attente d'un ordre d'agrandissement donné par l'utilisateur. Lorsque cet ordre survient, les données sont décodées et l'image est affichée à sa nouvelle résolution dans l'animation. Ce décodage est quasi instantané et il n'y a donc pas d'interruption dans l'animation. II est à noter que si l'ordre d'agrandissement survient avant que les données nécessaires n'aient été complètement téléchargées, la méthode d'agrandissement T2 est appliquée. Dans ce cas, l'image est tout d'abord agrandie par interpolation, puis lorsque les données nécessaires ont été reçues et décodées, l'image interpolée est remplacée par l'image décodée à la résolution correspondant à l'agrandissement de l'animation. En référence à nouveau à la figure 3, l'étape E2 est suivie de l'étape E3 qui est l'écriture de la description de l'image dans un fichier SWF. La description comporte la référence du fichier image sur le serveur, c'està-dire l'adresse réseau du serveur dans lequel est mémorisée l'image, ainsi que le nom et l'adresse du fichier JPEG2000 sur le serveur. La description comporte également la résolution initiale d'affichage de l'image. L'étape suivante E4 est l'écriture de l'indicateur d'agrandissement respectif pour chaque image de l'animation. Pour cela, une variable respective pour chaque image est crée, et cette variable reçoit une valeur représentative de l'indicateur. L'étape suivante E5 est l'écriture des fonctions d'implémentation des méthodes d'agrandissement correspondant à chacun des indicateurs affectés aux images de l'animation. Ainsi, suivant les animations, et selon l'exemple choisi où trois méthodes sont possibles, une, deux ou trois fonctions sont écrites à cette 10 étape. La fonction implémentant la méthode Ti comporte les éléments suivants: -Création d'un objet clip vide appelé conteneur. -Chargement de l'image par l'intermédiaire de la fonction loadMovie (qui sert à charger indifféremment des images ou des vidéos) : conteneur. loadMovie( nom-fichier_image.jp2 ) ; L'image est alors chargée en mémoire coté client et disponible pour affichage. Dans ce cas, lorsque l'animation est jouée sur le terminal client, le plug-in Flash se charge de décoder l'image JPEG2000 avant affichage et d'interpoler l'image lorsque la taille de l'animation est modifiée. La fonction implémentant la méthode T2 comporte les éléments suivants: Création d'un objet clip vide appelé conteneur. - Chargement de l'image par l'intermédiaire de la fonction loadMovies: conteneur.loadMovies( nom-fichier image.jp2 , resolution1). Dans ce mode d'appel à la fonction loadMovie, le second paramètre permet d'identifier la partie des données à charger (il s'agit de celles correspondant à la résolution indiquée). - Si l'évènement d'agrandissement est détecté, chargement de la partie complémentaire de données: on( zoom) {conteneur.loadMovie( nomfichier_image.jp2 , resolution2)} Dans ce mode d'appel à la fonction loadMovie, le second paramètre permet d'identifier la partie des données à charger (il s'agit cette fois des données permettant de passer de la résolution 1 précédemment chargée à la résolution 2 qui est celle correspondant à l'agrandissement à une taille supérieure). Lorsque l'animation est jouée sur le terminal client, le plug-in Flash effectue le décodage JPEG2000 nécessaires avant l'affichage de la première image, l'interpolation immédiatement après la commande d'agrandissement, et le décodage JPEG2000 avant l'affichage de la deuxième image. La fonction implémentant la méthode T3 comporte les éléments suivants: Création d'un objet clip vide appelé conteneur9. - Création d'un objet clip vide appelé conteneur2. - Chargement de l'image par l'intermédiaire de la fonction loadMovies: conteneur.loadMovies( nom-fichier_image.jp2 , resolution1). - Chargement de la version haute résolution de l'image par l'intermédiaire de la fonction loadMovies: conteneur2.loadMovies( nom- fichier image.jp2 , resolution2). Lorsque l'animation est jouée sur le terminal client, le plug-in Flash effectue le décodage JPEG2000 nécessaire avant l'affichage de la première image et le décodage JPEG2000 avant l'affichage de la deuxième image. La figure 5 représente un mode de réalisation de procédé de décodage de l'animation, selon l'invention. Ce procédé est mis en oeuvre dans le terminal client 2 et comporte des étapes E10 à E22. Le procédé est réalisé sous la forme d'un algorithme qui peut être mémorisé en totalité ou en partie dans tout moyen de stockage d'information capable de coopérer avec le microprocesseur. Ce moyen de stockage est lisible par un ordinateur ou par un microprocesseur. Ce moyen de stockage est intégré ou non au dispositif, et peut être amovible. Par exemple, il peut comporter une bande magnétique, une disquette ou un CD-ROM (disque compact à mémoire figée). L'étape E10 est la requête du fichier SWF correspondant à l'animation souhaitée par l'utilisateur du terminal client. Le fichier est transmis 5 via le réseau 3. L'étape suivante El 1 est l'exécution du fichier SWF. Cette exécution comporte l'affichage des images qu'il contient à leur résolution initiale. L'étape suivante E12 est une initialisation pour considérer la première image de l'animation. L'étape suivante E13 est la lecture de l'attribut de l'image courante. L'étape suivante E14 est la lecture des fonctions d'agrandissement correspondant à l'image courante. Ces fonctions sont mémorisées dans le terminal client. L'étape suivante E15 comporte un test pour déterminer si l'attribut courant est l'attribut T3. Si la réponse est positive, des données nécessaires à l'agrandissement sont téléchargées sans attendre qu'un ordre d'agrandissement soit effectivement passé par l'utilisateur. Si la réponse est négative, l'étape E15 ne comporte pas ce téléchargement. Dans tous les cas, l'étape E15 est suivie de l'étape E16 qui est un test pour déterminer s'il reste au moins une image à considérer dans l'animation. Si la réponse est positive, alors l'étape E16 est suivie de l'étape E17 à laquelle une image suivante est considérée. L'étape E17 est suivie de l'étape 25 El 3 précédemment décrite. Lorsque la réponse est négative à l'étape E16, cette étape est suivie de l'étape E18 à laquelle un ordre d'agrandissement est reçu. Le logiciel qui joue l'animation est le logiciel Flash disponible à l'adresse internet: http://www.macromedia.com/downloads/. Ce logiciel est de type dit plug-in et permet de jouer les animations contenues dans des fichiers SWF. Au cours du déroulement de l'animation, il est possible d'avoir accès à un menu déroulant qui comporte une option agrandissement 200% . On suppose donc qu'à cette étape, l'utilisateur a validé cette option. L'étape suivante E19 est une initialisation pour considérer la 5 première image de l'animation. L'étape suivante E20 est l'application de la procédure d'agrandissement à l'image courante. L'étape E20 est suivie de l'étape E21 qui est un test pour déterminer s'il reste au moins une image à considérer dans l'animation. Si la réponse est positive, alors l'étape E21 est suivie de l'étape E22 à laquelle une image suivante est considérée. L'étape E22 est suivie de l'étape E18 précédemment décrite. Lorsque la réponse est négative à l'étape E21, le traitement est terminé. Un second mode de réalisation de l'invention est décrit en référence aux figures suivantes. On veut garantir que le temps de transmission d'une animation reste compatible avec une bande passante minimum entre le serveur et un client, la 20 bande passante ayant été fixée par le créateur de l'animation. On suppose que l'animation comporte des images de type JPEG2000. Selon l'invention, ces images sont modifiées pour être adaptées à la bande passante prédéterminée en privilégiant soit la qualité d'image soit le temps de transmission. La figure 6 représente un mode de réalisation de procédé d'aide à la création de l'animation, selon l'invention. Ce procédé est mis en oeuvre dans le serveur 1 et comporte des étapes E101 à E112. Le procédé est réalisé sous la forme d'un algorithme qui peut être mémorisé en totalité ou en partie dans tout moyen de stockage d'information capable de coopérer avec le microprocesseur. Ce moyen de stockage est lisible par un ordinateur ou par un microprocesseur. Ce moyen de stockage est intégré ou non au dispositif, et peut être amovible. Par exemple, il peut comporter une bande magnétique, une disquette ou un CD-ROM (disque compact à mémoire figée). On suppose ici que l'animation comporte une vidéo cadencée à une fréquence de F images par seconde. La vidéo comporte N images dont un nombre Nc sont des images clés codées selon la norme JPEG2000. Les images situées entre deux images clés sont construites par interpolation à partir de ces deux images clés. On s'intéresse ici aux images JPEG2000. Il s'agit ici de mettre en oeuvre un testeur de bande passante. Lelogiciel de création de contenu Flash MX de la société Macromedia comporte un tel outil. Le testeur de bande passante nécessite les informations suivantes: - la taille en octet de chaque image de l'animation, - un marqueur indiquant si l'image est de type JPEG2000, et - la résolution temporelle, ou fréquence, des images de la séquence. L'étape E101 est la définition d'une bande passante maximale BPmax. La bande passante BPmax est la bande passante maximale qui ne doit pas être dépassée par l'animation de manière à garantir que le temps de transmission entre le serveur et un terminal client soit compatible avec un affichage de bonne qualité de l'animation sur le terminal client. Par exemple, si la bande passante d'un terminal client est de 50 kbit/s, une seconde de l'animation ne doit pas être représentée par un ensemble de données supérieur à 50 kbits. Sinon, il pourra y avoir des pertes de données ou des retards de transferts de données. L'animation sera alors affichée de façon saccadée sur le terminal client. La bande passante BPmax est choisie par le créateur de l'animation. Une fois cette bande passante définie, les terminaux clients devront disposer au 30 moins de cette bande passante pour garantir une réception et une visualisation correctes de l'animation. L'étape suivante E102 est la détection des images de l'animation qui ne sont pas compatibles avec la bande passante BPmax. Cette étape est détaillée dans la suite. Elle a pour résultat une liste L d'images non compatibles avec la bande passante BPmax. Il est à noter que les testeurs de bande passante connus permettent de détecter les images de l'animation qui ne sont pas compatibles avec la bande passante BPmax, mais ne proposent aucun moyen pour résoudre ce problème, contrairement à la présente invention. L'étape suivante E103 est l'affichage d'une boîte de dialogue dont un 10 exemple de réalisation est représenté à la figure 7. Si la liste L est vide, alors toutes les images de la vidéo sont compatibles avec la bande passante BPmax. La boîte de dialogue BI est alors affichée. Lorsque l'utilisateur clique sur le bouton OK de la boîte BI, alors 15 l'étape E103 est suivie de l'étape E112 qui termine le traitement selon l'invention et qui est un retour à l'outil de création. Si la liste L est non vide, alors il existe au moins une image qui n'est pas compatible avec la bande passante BPmax. La boite de dialogue B2 est alors affichée. Elle informe l'utilisateur de ce dépassement de bande passante et lui propose d'assurer ou non la compatibilité des images avec la bande passante BPmax. L'utilisateur peut choisir d'assurer ou non la compatibilité des images avec la bande passante BPmax. Il peut aussi ignorer l'information qui lui est donnée à cette étape. L'étape suivante E104 est un test pour déterminer si l'utilisateur à choisi d'ignorer le dépassement de bande passante. Si la réponse est positive, alors cette étape est suivie de l'étape El 11 qui termine le traitement selon l'invention et qui est un retour à l'outil de création. Si la réponse est négative à l'étape E104, alors cette étape est suivie de l'étape E105 qui est une estimation de la qualité de différentes versions d'une image de la liste L. Cette étape est décrite dans la suite et a pour résultat, pour chaque image dépassant la bande passante disponible, une liste des versions possibles utilisables respectant la bande passante BPmax. L'étape suivante E106 la sélection d'une version, pour chaque image de la liste L, qui respecte la bande passante BPmax. Pour une image donnée, la taille en octets maximale D pour que l'image respecte la bande passante BPmax est telle que: D BPmax/F, où F est la fréquence des images de la vidéo. On sélectionne donc les versions qui satisfont cette condition. Dans le cas où il n'existe aucune version qui satisfait cette condition, le traitement selon l'invention n'est pas possible. Par exemple, une boite de dialogue est affichée pour signaler le problème au créateur de l'animation et lui proposer de modifier manuellement l'image. On suppose dans la suite qu'il existe au moins une version satisfaisant la condition ci-dessus. Parmi ces versions, on sélectionne par exemple celle qui minimise la distorsion par rapport à la résolution et la qualité sélectionnées par le créateur de l'animation. En d'autres termes, un critère débit/distorsion est maximisé. L'étape suivante E107 est un test pour déterminer si l'utilisateur à répondu oui à la question de savoir s'il souhaite assurer la compatibilité avec la bande passante choisie (figure 7). Lorsque la réponse est positive, cette étape est suivie de l'étape E109 à laquelle l'animation modifiée est affichée. L'utilisateur peut valider les modifications à l'étape E110 qui est alors suivie de l'étape El11. S'il ne valide pas les modifications, l'animation n'est pas modifiée. A l'étape El11, une liste de requêtes JPIP est formée et mémorisée dans un fichier destiné à être téléchargé, interprété puis joué sur un terminal client. Ce fichier, ou script d'animation, est par exemple au format SWF. Les requêtes JPIP sont établies selon un protocole en cours de normalisation, dont une description peut être trouvée à l'adresse internet: http:/lwww.jpeg.org. L'étape El11 est suivie de l'étape E112 précédemment décrite. Lorsque la réponse est négative à l'étape E107, le créateur de l'animation souhaite préserver la qualité de son animation aux dépends de la fluidité d'affichage pour les terminaux clients possédant une faible bande passante. L'étape E107 est alors suivie de l'étape E108 à laquelle des données supplémentaires sont définies pour préserver la qualité de l'animation. En effet, dans ce cas, un affichage progressif de l'image est effectué sur le terminal client, à partir de la version sélectionnée à l'étape E106. Ainsi, des délais d'attente ou des pertes d'informations sont évitées pour les terminaux clients ayant une bande passante faible. Les données supplémentaires sont envoyées progressivement au terminal client pour permettre de reconstruire l'image à sa résolution et à sa qualité maximales, tout en restant compatibles avec la bande passante BPmax. S'il n'est pas possible de respecter la bande passante BPmax, alors on recherche les données supplémentaires qui permettent de reconstruite une version de l'image qui se rapproche le plus de sa résolution et de sa qualité maximales, tout en restant compatibles avec la bande passante BPmax. L'étape E108 est suivie de l'étape E109 précédemment décrite. Un mode de réalisation de l'étape E102 de détermination des images qui ne respectent pas la bande passante est décrit en référence à la figure 8, sous la forme d'un algorithme comportant des étapes E200 à E209. L'étape E200 est la lecture de la valeur de la bande passante BPmax. L'étape suivante E201 est la lecture de la valeur de la fréquence F d'affichage des images de la vidéo. L'étape suivante E202 est la création d'une liste L vide. La liste L est associée à un tableau T illustré à la figure 9, contenant des données sur 25 chaque image dépassant la bande passante BPmax. Pour chaque image de la liste L, les données suivantes sont mémorisées dans le tableau T: - l'indice temporel de l'image, - son codage ou non selon JPEG2000, - sa taille en octets, - la taille à laquelle le créateur de l'animation souhaite afficher l'image dans l'animation, - le niveau de qualité Qumax fixé par le créateur. L'étape suivante E203 est une initialisation à laquelle un paramètre i est initialisé à la valeur 0 pour considérer la première image de la vidéo. L'étape suivante E204 est la lecture de la taille D; en octets de l'image courante. L'étape suivante E205 est un test pour déterminer si l'image courante respecte la bande passante BPmax. Il s'agit de vérifier si l'image peut être transmise en un temps inférieur à 1/F. Pour cela, on vérifie si l'inégalité : F.D; Si la réponse est négative, cela signifie que l'image courante ne respecte pas la bande passante. Dans ce cas, l'étape E205 est suivie de l'étape E206 à laquelle l'image courante est inscrite dans la liste L, avec les données énoncées précédemment. Si la réponse est positive à l'étape E205, cela signifie que l'image courante respecte la bande passante. Dans ce cas, l'étape E205 est suivie de l'étape E207 qui est un test pour vérifier s'il reste au moins une image de la vidéo à traiter. Si la réponse est positive, alors cette étape est suivie de l'étape 20 E208 pour considérer l'image suivante dans la vidéo. L'étape E208 est suivie de l'étape E204 précédemment décrite. Si la réponse est négative à l'étape E207, alors cette étape est suivie de l'étape E209 qui est un test pour déterminer su la liste L est vide ou si elle contient au moins une image. L'étape E209 est suivie de l'étape E103 précédemment décrite. Un mode de réalisation de l'étape E105 d'estimation de la qualité de différentes versions d'une image de la liste L est décrit en référence à la figure 10, sous la forme d'un algorithme comportant des étapes E300 à E317. On considère ici une image de la liste L. L'étape E300 est la lecture de l'indice temporel de cette image. L'étape suivante E301 est un test pour déterminer si l'image en cours de traitement est une image JPEG2000. Si la réponse est négative, cette étape est suivie de l'étape E302 à laquelle le créateur de l'animation est invité à réaliser une optimisation manuelle de l'image, par une compression plus forte ou une diminution de la taille de l'image, par exemple. Si la réponse est positive à l'étape E301, alors cette étape est suivie de l'étape E303 qui est la lecture de l'image codée. Un décodeur JPEG2000 récupère alors des informations haut niveau relatives à cette image. Ces informations sont: - la résolution spatiale maximale de l'image HxW, où H et W sont la hauteur et la largeur de l'image exprimées en nombre de pixels. - le nombre de niveau de résolution Rmax utilisés pour représenter l'image. L'étape suivante E304 est le calcul de la taille de l'image et du 15 nombre de niveaux de résolution qui sont utilisés dans le traitement suivant. La taille est fournie par les formules: h = min(H, hu) w = min(W, wu) où hu et wu sont la hauteur et la largeur de l'image exprimées en nombre de pixels, fixées par le créateur de l'animation. Le nombre de niveaux de résolution est fourni par les formules: Rumax = min(R(h, w), Rmax), Où R(h, w) est le niveau de résolution pour lequel l'image a une 25 hauteur et une largeur respectivement inférieure ou égale à la hauteur h et à la largeur w. L'étape suivante E305 est le décodage de l'image à la résolution Rumax et au niveau de qualité Qumax. L'étape suivante E306 est la mémorisation de l'image ainsi décodée et reconstruite Iv(Rumax, Qumax) pour servir d'image de référence. L'étape suivante E307 est une initialisation à laquelle deux variables R et Q sont initialisées à la valeur zéro. La variable R représente le niveau de résolution courant et la variable Q représente le niveau de qualité courant. La valeur zéro pour ces deux variables correspond aux niveaux de résolution et de qualité les plus bas. L'étape suivante E308 est l'obtention de l'image Iv(R, Q) correspondant au niveau de résolution courant R et au niveau de qualité courant Q. L'image Iv(R, Q) est obtenue par une requête JPIP. L'étape suivante E309 est la mémorisation de données 10 correspondant à l'image Iv(R, Q) dans le tableau T associé à la liste L (figure 9). Ces données sont: - la taille D(Iv(R, Q)) de l'image Iv(R, Q), exprimée en octets, - le niveau de résolution courant R, - le niveau de qualité courant Q. L'étape suivante E310 est le décodage de l'image courante Iv(R, Q). L'étape suivante E311 est un agrandissement de l'image courante décodée pour former une image agrandie Iv(Rumax, Q) à la résolution Rumax. Bien entendu, si les résolutions R et Rumax sont égales, il n'y a pas d'agrandissement. L'étape suivante E312 est une comparaison de l'image agrandie Iv(Rumax, Q) avec l'image de référence Iv(Rumax, Qumax). Ainsi, la dégradation de qualité de l'animation est estimée, dans le cas du remplacement de l'image de référence par l'image agrandie Iv(Rumax, Q). Cette estimation est par exemple l'écart quadratique moyen entre les 25 deux images. A l'étape E313, le résultat Dist(Iv(R, Q)) de l'estimation est mémorisé dans le tableau T associé à la liste L (figure 9). L'étape suivante E314 est un test pour déterminer si la qualité courante Q est strictement inférieure à la valeur Qumax. Si la réponse est positive, alors cette étape est suivie de l'étape E315 à laquelle la qualité Q est incrémentée de une unité. L'étape E315 est suivie de l'étape E308 précédemment décrite. Si la réponse est négative à l'étape E314, alors cette étape est suivie de l'étape E316, qui est un test pour déterminer si la résolution courante R est strictement inférieure à la valeur Rumax. Si la réponse est positive, alors cette étape est suivie de l'étape E317 à laquelle la résolution R est incrémentée de une unité et la qualité courante Q est mise à la valeur zéro. L'étape E317 est suivie de l'étape E308 précédemment décrite. Si la réponse est négative à l'étape E316, alors toutes les versions possibles de l'image considérée de la liste L ont été déterminées. Ce traitement est répété pour toutes les images de la liste L. 10 Bien entendu, la présente invention n'est nullement limitée aux modes de réalisation décrits et représentés, mais englobe, bien au contraire, toute variante à la portée de l'homme du métier. REVENDICATIONS 1. Procédé d'aide à la création d'une animation destinée à être jouée sur un terminal distant après téléchargement depuis un serveur, l'animation 5 comportant au moins une image numérique, caractérisé en ce qu'il comporte les étapes de: - proposition (E2, E103) de plusieurs modes d'animation pour l'image numérique, - écriture (E4, E108, El 11) du mode sélectionné par un utilisateur 10 dans un fichier contenant les données de l'animation, - écriture (E5, E108, El 11) des données de mise en oeuvre de l'animation dans ledit fichier. 2. Procédé selon la revendication 1, caractérisé en ce que les 15 propositions de mode d'animation comportent: - un agrandissement (T1) de l'image par interpolation, - un agrandissement (T2) de l'image par interpolation suivi d'un agrandissement par téléchargement de données supplémentaires, le téléchargement résultant d'un ordre d'agrandissement, - un agrandissement (T3) de l'image par téléchargement de données supplémentaires, le téléchargement étant préalable à un ordre d'agrandissement. 3. Procédé selon la revendication 1, caractérisé en ce que les 25 propositions de mode d'animation comportent: - une animation avec une contrainte de vitesse de téléchargement, - une animation avec une contrainte de qualité d'image téléchargée. 4. Procédé selon la revendication 3, caractérisé en ce qu'il comporte 30 les étapes de: - détection (E102) des images dépassant une bande passante prédéterminée, - détermination (E105) d'une liste de versions possibles respectant la bande passante pour chaque image détectée, - sélection (E106) d'une version pour chaque image détectée, si l'animation avec contrainte de vitesse de téléchargement est sélectionnée. 5. Procédé selon la revendication 4, caractérisé en ce que la détermination (E105) d'une liste de versions possibles respectant la bande passante pour chaque image détectée comporte la maximisation d'un critère débit/distorsion. 6. Procédé selon la revendication 3, caractérisé en ce qu'il comporte les étapes de: - détection (E102) des images dépassant une bande passante prédéterminée, - détermination (E108), pour chaque image détectée, de données supplémentaires à transmettre progressivement et permettant de reconstruire l'image à sa résolution et à sa qualité maximales, tout en respectant la bande passante pour chaque image détectée, si l'animation avec contrainte de qualité d'image téléchargée est sélectionnée. 7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que l'animation est une liste de requêtes de type JPIP. 8. Procédé selon l'une quelconque des revendications 1 à 7, 25 caractérisé en ce que l'animation est incluse dans un fichier de type SWF. 9. Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce que l'image numérique est une image de type JPEG2000. 10. Dispositif d'aide à la création d'une animation destinée à être jouée sur un terminal distant après téléchargement depuis un serveur, l'animation comportant au moins une image numérique, caractérisé en ce qu'il comporte: - des moyens de proposition de plusieurs modes d'animation pour l'image numérique, - des moyens d'écriture du mode sélectionné par un utilisateur dans 5 un fichier contenant les données de l'animation, - des moyens d'écriture des données de mise en oeuvre de l'animation dans ledit fichier. 11. Dispositif selon la revendication 10, caractérisé en ce que les 10 moyens de propositions de mode d'animation sont adaptés à proposer: - un agrandissement (T1) de l'image par interpolation, - un agrandissement (T2) de l'image par interpolation suivi d'un agrandissement par téléchargement de données supplémentaires, le téléchargement résultant d'un ordre d'agrandissement, - un agrandissement (T3) de l'image par téléchargement de données supplémentaires, le téléchargement étant préalable à un ordre d'agrandissement. 12. Dispositif selon la revendication 10, caractérisé en ce que les moyens de propositions de mode d'animation sont adaptés à proposer: - une animation avec une contrainte de vitesse de téléchargement, - une animation avec une contrainte de qualité d'image téléchargée. 13. Dispositif selon la revendication 12, caractérisé en ce qu'il 25 comporte: - des moyens de détection des images dépassant une bande passante prédéterminée, - des moyens de détermination d'une liste de versions possibles respectant la bande passante pour chaque image détectée, - des moyens de sélection d'une version pour chaque image détectée, si l'animation avec contrainte de vitesse de téléchargement est sélectionnée. 14. Dispositif selon la revendication 13, caractérisé en ce que les moyens de détermination d'une liste de versions possibles respectant la bande passante pour chaque image détectée sont adaptés à maximiser un critère débit/distorsion. 15. Dispositif selon la revendication 12, caractérisé en ce qu'il comporte: - des moyens de détection des images dépassant une bande 10 passante prédéterminée, - des moyens de détermination, pour chaque image détectée, de données supplémentaires à transmettre progressivement et permettant de reconstruire l'image à sa résolution et à sa qualité maximales, tout en respectant la bande passante pour chaque image détectée, si l'animation avec contrainte de qualité d'image téléchargée est sélectionnée. 16. Dispositif selon l'une quelconque des revendications 10 à 15, caractérisé en ce qu'il est adapté à créer une animation sous la forme d'une liste de requêtes de type JPIP. 17. Dispositif selon l'une quelconque des revendications 10 à 16, caractérisé en ce qu'il est adapté à inclure l'animation dans un fichier de type SWF. 18. Dispositif selon l'une quelconque des revendications 10 à 17, caractérisé en ce qu'il est adapté à créer une animation comportant au moins une image numérique qui est une image de type JPEG2000. 19. Dispositif selon l'une quelconque des revendications 10 à 18, 30 caractérisé en ce que les moyens de proposition et écriture sont incorporés dans: - un microprocesseur (100), - une mémoire morte (102) comportant un programme pour traiter les données, et - une mémoire vive (103) comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit programme. 20. Appareil de traitement (10) d'une image numérique, caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 9. 21. Appareil de traitement (10) d'une image numérique, caractérisé en ce qu'il comporte le dispositif selon l'une quelconque des revendications 10 à 19.