Brevet FR2912027A1 — publié le 20080801

UNITES DE CHARGEMENT POUR LA TRANSMISSION DE DONNEES MULTIMEDIA SUR UN RESEAU DE DIFFUSION La présente invention concerne le domaine de la transmission de données sur un réseau de diffusion (broadcast) et plus particulièrement un procédé de transmission d'une application numérique sur un réseau de diffusion, ladite application numérique comprenant une pluralité d'écrans E; agrégeant, chacun, des objets O pour composer un écran applicatif et les écrans E; présentant des liens vers d'autres écrans E; de façon à permettre une navigation entre les écrans applicatifs, le procédé comprenant la diffusion, sur ledit réseau, d'un carrousel d'unités de chargement de taille définie, l'ensemble desdites unités de chargement comprenant les écrans et les objets de l'application. La diffusion d'applications, par exemple d'applications interactives sur un réseau de diffusion télévisuel, est étroitement liée à la nature propre du réseau. Au contraire du réseau de type Internet, par lequel chaque utilisateur accède directement à l'information sur requête, les réseaux de diffusion mettent en oeuvre des accès indirects aux informations souhaitées par l'utilisateur. Puisque les données diffusées sur le réseau ne sont pas dédiées à un unique utilisateur mais à la masse de ceux-ci, ces données (celle de l'application numérique précitée, entre autres) sont diffusées en boucle sur le réseau (notion de carrousel). Le carrousel associé à l'application répète donc cycliquement sur le réseau l'ensemble des données composant l'application, à savoir les données d'écrans et les données d'objets. L'utilisateur qui accède au réseau à un instant donné doit en général attendre un cycle et demi du carrousel pour récupérer les données associées à un accès (notion d'accès indirect). On note ici que quelque soit la taille des données à récupérer en un même accès, le temps moyen de récupération de celles-ci ne dépasse pas un cycle et demi du carrousel. La demande internationale de brevet WO-01/01700 de la présente demanderesse concerne une application numérique qui peut être diffusée sur un tel réseau. L'application est exécutée (au moyen d'un lecteur adapté) sur un terminal connecté au réseau et qui récupère des données du carrousel au fur et à mesure de l'avancement dans l'exécution de cette application. L'application décrite dans la demande précitée comprend des écrans (screens) correspondant à des écrans visibles de l'application sur un terminal d'affichage, ces écrans étant composés d'une agrégation d'objets graphiques (draws) faisant appels à des fonctions natives du terminal pour l'affichage. En pratique, chaque écran liste un ensemble de références d'objets qui le constituent. La navigation d'écran à écran dans cette application, c'est-à-dire la faculté de l'utilisateur à passer d'un écran applicatif à un autre écran applicatif sur le terminal d'affichage, est réalisée par l'utilisation de règles définies par des stimuli (généralement liés à une action de l'utilisation sur un organe de contrôle ou à un événement sur le terminal) affectés à ces écrans et/ou objets, lesquels stimuli déclenchent des actions, notamment le chargement et le changement vers un nouvel écran. Ces règles définissent ainsi des "liens" entre écrans, le long uniquement desquels la navigation est possible. Un problème initial lié à la taille mémoire restreinte des terminaux pour l'affichage de ces contenus applicatifs a conduit à segmenter les données applicatives en des unités de chargement de petite taille par rapport à celle de la mémoire du terminal et à les diffuser dans le carrousel. De la sorte, le terminal ne télécharge sur le réseau que l'ensemble utile des unités de chargement relatives à l'écran en cours d'affichage. Néanmoins, la navigation d'écran à écran nécessite le chargement de nouvelles unités de chargement, ce qui requiert un temps de traitement. Un reproche récurrent portant sur les applications de ce type est relatif à la lenteur de cette navigation. Cette lenteur est due au grand nombre d'accès au réseau auxquels le terminal doit procéder. Un premier but de l'invention est ainsi de proposer une solution qui améliore la navigation entre écrans, notamment par la diminution du nombre d'accès au réseau. On connaît néanmoins une solution jugée insuffisante qui vise à améliorer la navigation. Cette solution repose sur un chargement anticipé des données liées à un écran ultérieur. En pratique, lorsque le terminal a fini de charger les données de l'écran courant et que celui-ci est enfin affiché, il télécharge les données liées aux autres écrans de l'application s'il dispose de place en mémoire. Cependant, si une demande de navigation intervient rapidement, aucune donnée ou trop peu ont déjà été chargée. Cette solution n'est donc pas satisfaisante au regard de la navigation souhaitée. Un autre but de l'invention est alors d'améliorer un éventuel chargement anticipé des données d'écrans et d'objets. En outre, pour arriver au chargement de l'ensemble des données liées à un écran souhaité, les solutions connues de l'art antérieur chargent un grand nombre de données inutiles, c'est-à-dire liées à d'autres écrans, occupant une place non négligeable dans la mémoire restreinte du terminal. Un autre but de l'invention est alors de prévoir un procédé de diffusion 20 optimisant la consommation des ressources mémoires des terminaux. La présente invention vise à résoudre au moins l'un de ces buts en formant les unités de chargement à partir de regroupements d'objets et d'écrans qui tiennent compte de l'utilisation répétée des objets par un 25 même ensemble d'écrans. A cet effet, l'invention a pour objet un procédé tel que présenté ci-dessus, comprenant les étapes suivantes : a) pour chaque objet O de l'application, la détermination de l'ensemble S des écrans associés audit objet soit par agrégation (l'objet est directement utilisé par l'écran et donc présent dans la liste décrivant 30 l'écran) dudit objet soit par référencement indirect dudit objet, un objet étant référencé (ou listé) indirectement par un premier écran lorsque ledit objet est agrégé (c'est-à-dire listé directement) par un deuxième écran accessible depuis le premier écran par un nombre de liens inférieur à une première valeur seuil, b) le regroupement sous forme de groupes G de l'ensemble des objets O présentant un même ensemble S déterminé précédemment de sorte à obtenir un couple G-S composé du groupe G d'objets et de l'ensemble S associé, c) la constitution desdites unités de chargement par regroupement desdits groupes G et des écrans E; de sorte que la taille des objets et écrans ainsi regroupés soit inférieure à la taille des unités de chargement. Comme indiqué précédemment, les écrans sont l'agrégation d'un ensemble d'objets, par exemple les données d'écran listent des références de ces objets. On distingue donc les objets agrégés par l'écran, c'est-à-dire directement et explicitement listé dans les données de l'écran des objets indirectement référencés par un écran. La description d'un écran peut prendre des formes très variées, depuis le fichier texte, le fichier balisé (type XML) à la base de données. La navigation entre écrans s'appuie sur la présence de "liens" tels que définis précédemment, c'est-à-dire de règles associées à un écran ou à des objets de cet écran et par lesquelles il est possible d'afficher un nouvel écran sur le terminal. On entend alors par "objet indirectement référencé (ou listé) par un écran" un objet agrégé (listé directement) par un autre écran lorsque cet autre écran est accessible par navigation depuis l'écran initial au travers d'un nombre de liens inférieur à une valeur seuil. Il s'agit donc des objets appartenant à un écran susceptible d'être atteint et affiché par l'utilisateur avec un nombre d'actions de navigation inférieur à ce seuil. Typiquement, on choisit comme valeur seuil 0 (permettant une optimisation du chargement des données de l'écran en cours au détriment des écrans susceptibles d'être affichés par la suite), 1 (permettant d'optimiser le pré-chargement des écrans directement accessibles par navigation depuis l'écran courant et donc améliorant nettement la rapidité de navigation) ou 2 (lorsque l'application numérique requiert une navigation entre écrans importante). Ainsi, par les étapes a) et b), on a regroupé tous les objets qui sont mis en oeuvre par les mêmes écrans de l'application susceptibles d'être atteints rapidement. A ce stade, on a diminué le nombre de groupes requis pour chacun des écrans utilisant les deux groupes qui ont été effectivement regroupés. Les unités de chargement sont alors constituées de sorte à conserver groupés ces objets mis en oeuvre par les mêmes écrans, de telle sorte qu'une fois cette unité de chargement chargée sur le terminal, un grand nombre d'objets associés aux écrans à venir sont déjà chargés. Ainsi, l'affichage de l'écran suivant dans la navigation ne requiert le chargement supplémentaire d'un nombre restreint d'autres unités de chargement. Le nombre d'accès ultérieur au carrousel est donc réduit en même temps que le temps d'attente pour l'affichage de l'écran suivant : la navigation est donc améliorée. L'invention s'applique à tout type d'application numérique transmise sur un réseau de diffusion, notamment des applications interactives pour terminaux de télévision numérique ou radio numérique. Des réseaux de vidéo diffusion connus sont le DVB (Digital Video Broadcast), l'ATSC (Advanced Television Systems Committee), l'ISDB 20 (Advanced Television Systems Committee). Les objets agrégés par les écrans regroupent un grand nombre d'objets élémentaires disparates, tels que des objets graphiques (draws), des images figées (stills), des cibles d'interaction (focus), des animations, des palettes de couleurs, ... Les écrans définissent également d'autres 25 paramètres tels les règles. Une description plus détaillée de ces éléments est fournie ci-après. Néanmoins, le nombre d'accès à effectuer par le terminal pour accéder à toutes les unités de chargement utiles dépend fortement de la 30 méthode de constitution de ces unités de chargement. L'invention propose également d'optimiser le nombre d'accès au réseau en prévoyant un remplissage des unités de chargement adapté, d'améliorer la navigation dans l'application par le chargement adapté des unités de chargement utiles directement et indirectement par l'écran souhaité en prévoyant le regroupement desdits groupes G et des écrans E; de sorte à minimiser, pour chaque écran E;, le nombre d'unités de chargement comprenant l'écran E; ou des objets listés directement par ledit écran. Dans un mode de réalisation, le regroupement desdits groupes G et des écrans E; comprend une pluralité d'itérations, chaque itération comprenant l'application d'une fonction d'évaluation à chaque paire desdits couples G-S, la détermination de la paire de couples G-S minimisant ou maximisant ladite fonction d'évaluation et le regroupement des deux groupes G ainsi déterminés pour former un nouveau groupe G' associé à l'union S' des deux ensembles S déterminés, lesdites unités de chargement étant constitués des groupes formés à l'issu de ladite pluralité d'itérations. On forme ainsi progressivement des (super) groupes, qui vont devenir à terme les unités de chargement, par la réunion de deux groupes selon des critères variables que l'on souhaite voir respectés. Notamment ces (super) groupes sont constamment de taille inférieure à celle des unités de chargement. Le nombre d'itération peut être défini à l'avance. Néanmoins, généralement, on procède de façon itérative jusqu'à ce que plus aucun regroupement ne soit possible, c'est-à-dire que la fonction d'évaluation n'est plus définie pour aucune des paires restantes. Dans un mode de réalisation visant à optimiser le remplissage des unités de chargement, ladite constitution des unités de chargement est réalisée selon un procédé du meilleur ajustement ("best fit") appliqué à la taille des objets et écrans par rapport à la taille des unités de chargement. Un tel procédé est efficace pour minimiser l'espace de données inutilisé à l'intérieur d'une unité de chargement. Pratiquement, on choisit le groupe G donnant le plus petit résidu, c'est-à-dire que G est choisi tel que taille(G)-taille(espace restant) soit minimal. On réitère cette étape jusqu'au remplissage de l'unité de chargement. Ainsi, il est prévu que ladite fonction d'évaluation comprend une première fonction qui retourne la différence entre une deuxième valeur seuil définie et la taille de l'union des deux groupes G de la paire, ladite détermination étant réalisée sur la minimisation de ladite fonction dans les valeurs positives, c'est-à-dire que l'on s'intéresse uniquement aux tailles d'union de groupes qui restent inférieures à la valeur seuil, notamment parce que l'on ne souhaite pas obtenir de groupes trop importants. Cette deuxième valeur seuil définie est généralement égale à la taille des unités de chargement. Afin d'assurer un regroupement efficace des objets associés à un même écran choisi, on prévoit que ladite fonction d'évaluation comprend la multiplication de ladite première fonction avec une deuxième fonction qui retourne la valeur 0 si les deux ensembles S de ladite paire contiennent chacun un écran prédéfini Edéf et 1 sinon. De ce fait, le résultat de la fonction d'évaluation est sensiblement faible pour les groupes concernant l'écran en question et relativement élevé pour les autres groupes. La minimisation et donc le regroupement sont, dans ce cas, réalisés par des groupes associés à l'écran en question. On assure ainsi le regroupement en un nombre limité d'unités de chargement des objets concernant cet écran. Afin de permettre un lancement rapide et efficace de l'application numérique sur le terminal, il convient de privilégier l'écran de démarrage (écran initial). Pour ce faire, ladite application numérique comprend un écran initial E0 sur lequel l'application démarre et ledit écran prédéfini Edéf est initialement l'écran initial E0. Cet écran Edéf peut éventuellement changer au cours de l'étape de regroupement afin de favoriser successivement plusieurs écrans, par exemple les écrans suivant la navigation la plus fréquente au travers du scénario. Cependant, dans cette version, la décision de regrouper peut être réalisée au hasard parmi l'ensemble des paires affichant un résultat nul (toutes les paires composées de groupes associés chacun à l'écran Edéf). Une alternative consiste alors à se prendre une valeur très faible à la place de 0 (par ex 10-3), ce qui permet d'indiquer efficacement les paires concernées par l'écran Edéf, et une valeur forte, par exemple 103, pour les autres. On optimise ainsi le nombre de groupes nécessaires à l'écran Edéf. A cet effet, ladite fonction d'évaluation comprend la multiplication de ladite première fonction avec une deuxième fonction qui retourne une première valeur faible si les deux ensembles S de ladite paire contiennent chacun un écran prédéfini Edéf et une deuxième valeur élevée sinon, ledit écran prédéfini Edéf étant modifié en un autre écran lorsque ladite deuxième fonction ne retourne plus de première valeur faible pour l'ensemble desdites paires de couples lors d'une desdites itérations. Pour chaque écran Edéf, le résultat de la fonction n'étant pas nul, il est possible d'optimiser le regroupement de groupes G en respectant un objectif de minimisation de l'espace perdu dans l'unité de chargement. Il est ensuite possible de traiter successivement l'ensemble des écrans du scénario en modifiant Edéf dès que plus aucune paire de groupe ne concerne l'ancien écran Edéf (la deuxième fonction ne retourne plus de valeur faible). Les changements d'écrans pour Edéf sont de préférence effectués en suivant sensiblement les écrans le long de la navigation du scénario. Certains terminaux permettent plusieurs accès simultanés au carrousel, généralement compris entre 2 et 10, typiquement quatre accès. Un intérêt se présente alors de favoriser l'accès à toutes les données d'un écran pendant un nombre de cycles de carrousel fixé. Dans ce contexte, il est préférable de restreindre ou limiter autant que possible le nombre d'unités de chargement liés à un écran. Dans ce dessin, il est prévu que ladite fonction d'évaluation comprend une troisième fonction qui retourne la taille de l'union des deux groupes G de la paire s'il existe un écran associé à ces deux groupes G (c'est-à-dire appartenant à chacun des deux ensembles S) pour lequel le regroupement de ces deux groupes G réduit le nombre d'unités de chargement comprenant des objets agrégés dans ledit écran et que ce nombre d'unités de chargement est supérieur à une troisième valeur seuil, et la fonction est indéfinie sinon (dans les autres cas), ladite détermination de la paire étant réalisée sur le minimisation de ladite fonction d'évaluation. Cette troisième valeur seuil est définie, généralement, comme un multiple (entier supérieur ou égal à 1) du nombre d'accès au carrousel que le terminal peut réaliser simultanément, de préférence ce multiple prend la valeur 1 ou 2. C'est-à-dire pour des terminaux ayant quatre accès simultanés au carrousel, on choisit comme valeur seuil `4' ou éventuellement `8' si on accepte le chargement d'un écran en plusieurs cycles du carrousel. Afin de permettre au terminal, à partir de la description d'un écran, de charger l'ensemble des unités de chargement pertinentes pour cet écran, il est prévu que suite auxdites itérations, on modifie lesdits écrans par l'inscription, dans les données correspondantes à chaque écran, de données d'identification des unités de chargement comprenant les objets agrégés par ledit écran (unités impératives). Ainsi, par simple lecture de la liste des écrans, le terminal accède aux identifiants des unités de chargement à récupérer impérativement pour l'exécution et l'affichage de cet écran. Dans un mode de réalisation mettant efficacement en oeuvre le processus de chargement par anticipation, il est prévu que l'étape de modification comprend également l'inscription de données d'identification des unités de chargement comprenant les objets référencés indirectement par ledit écran (unités utiles). En pratique, on n'inscrit en tant qu'unités de chargement utiles celles déterminées ci-dessus qui ne sont pas encore renseignées comme unités de chargement impératives. Les identifiants des unités utiles sont ainsi facilement accessibles au terminal depuis l'écran courant pour procéder au chargement par anticipation des objets et autres écrans. Dans un mode de réalisation visant à minimiser le nombre d'unités de chargement et à adapter ce nombre en fonction du nombre d'accès simultanés au carrousel que le terminal peut réaliser, il est prévu que, lors de l'une desdites itérations, si la taille de l'union des groupes G comprenant des objets associés à un premier écran E; est supérieure à une quatrième valeur seuil : on détermine le groupe G dont les objets agrégés par ledit écran E; et partagés avec au moins un autre écran occupent une taille minimale non nulle, on copie, dans un groupe associé uniquement audit écran, les objets agrégés par ledit écran déterminés précédemment, et on supprime ledit écran de l'ensemble S associé au groupe G déterminé précédemment. On favorise ainsi les objets agrégés par l'écran (donc les objets indispensables) au détriment des objets référencés indirectement. La quatrième valeur seuil est typiquement choisie en fonction du nombre d'accès simultanés au carrousel que le terminal peut réaliser. On choisit, soit ce nombre d'accès (quatre dans l'exemple mentionné ci-dessus) soit le double de ce nombre (par exemple huit). De la sorte, on évite le chargement d'une ou plusieurs unités de chargement dont une faible partie concerne l'écran en question tout en limitant le nombre de cycles du carrousel nécessaires à la récupération des données. En contrepartie de ce gain sur le chargement et la navigation, une copie de certains objets est réalisée conduisant à l'augmentation des données diffusées par le carrousel (soit ce dernier est plus lent, soit la bande passante allouée doit être augmentée pour conserver le même cycle). Dans le cas d'une telle copie, il convient alors d'indiquer à l'écran correspondant que les objets copiés sont accessibles dans la nouvelle unité de chargement et non dans l'ancienne, afin d'éviter le chargement inutile de cette dernière. Certaines applications numériques délivrées par ce biais comprennent au moins un objet mis à jour dynamiquement. On entend par "mis à jour dynamiquement" la capacité d'un objet utilisé par un écran à changer alors qu'il est utilisé par l'écran courant. Une telle mise à jour est généralement déclenchée par un signal parallèle (signal de synchronisation tel qu'exposé dans la demande de brevet FR-A-2803472) diffusé sur le réseau. Une alternative peut consister en un numéro de version évolutif présent dans les données du carrousel et associé à l'objet en question. En pratique, à la détection d'un "top" de synchronisation, le terminal est averti de la mise à jour d'un objet. Si celui-ci est en utilisation, le terminal charge le nouvel objet, et donc l'unité de chargement mise à jour, exécute l'écran en cours avec cet objet mis à jour dans un tableau d'affichage autre que celui utilisé pour l'affichage effectif à cet instant, puis bascule d'un tableau à l'autre pour rendre l'affichage comprenant le nouvel objet mis à jour. Un problème lié à cette mise à jour, notamment lorsque le terminal anticipe le chargement des écrans suivants, est qu'elle provoque le chargement des autres objets présents dans la même unité de chargement et donc éventuellement une mise à jour graphique (donc des traitements du terminal) de l'écran courant alors que l'objet mis à jour ne concerne qu'un écran ultérieur (uniquement chargé par anticipation). L'invention permet de résoudre ce problème en prévoyant que ledit regroupement sous forme de groupes G est réalisé séparément pour les objets dynamiques et les objets non dynamiques présentant un ensemble S non réduit à un unique écran. Particulièrement, on rajoute chaque objet dynamique identifié dans chacun des groupes liés à un unique écran listant cet objet dynamique. En effet, les objets dynamiques et non dynamiques qui ne sont utilisés que par un seul écran ne sont pas confrontés au problème précité et donc le traitement ci-dessus n'apparaît pas adapté. On procède donc à la distinction dynamique/non dynamique principalement pour les objets partagés (utilisés directement ou indirectement par au moins deux écrans). Dans un mode de réalisation, ladite application numérique comprend un écran initial E0 sur lequel l'application démarre et ledit regroupement desdits groupes G et des écrans comprend une étape préalable de regroupement de l'ensemble des groupes comprenant des objets agrégés par ledit écran initial Eo. De la sorte, le nombre d'unités de chargement comprenant des objets de l'écran initial est minimisé et l'écran principal de démarrage de l'application est privilégié. L'invention a également pour objet un système de transmission d'une application numérique sur un réseau de diffusion, ladite application numérique comprenant une pluralité d'écrans (E;) agrégeant, chacun, des objets (0) pour composer un écran applicatif et les écrans (E;) présentant des liens vers d'autres écrans (E;) de façon à permettre une navigation entre les écrans applicatifs, le système comprenant un premier module d'émission sur ledit réseau, d'un carrousel d'unités de chargement de taille définie, l'ensemble desdites unités de chargement comprenant les écrans et les objets de l'application, et un deuxième module de constitution desdites unités de chargement apte à : û déterminer, pour chaque objet (0) de l'application, l'ensemble (S) des écrans associés audit objet soit par agrégation dudit objet soit par référencement indirect dudit objet, un objet étant référencé indirectement par un premier écran lorsque ledit objet est agrégé par un deuxième écran accessible depuis le premier écran par un nombre de liens inférieur à une première valeur seuil, à regrouper, sous forme de groupes (G), l'ensemble des objets (0) présentant un même ensemble (S) déterminé précédemment de sorte à obtenir un couple (G-S) composé du groupe (G) d'objets et de l'ensemble (S) associé, et à constituer lesdites unités de chargement par regroupement desdits groupes (G) et des écrans (E;) de sorte que la taille des objets et écrans ainsi regroupés soit inférieure à la taille des unités de chargement. On comprendra mieux l'invention à l'aide de la description, faite ci-après à titre purement explicatif, d'un mode de réalisation de l'invention, en référence aux figures annexées : Fig. 1 représente des données numériques transmises en carrousel sur un réseau de diffusion pour la mise en oeuvre de la présente invention ; Fig. 2 illustre les regroupements d'objets constituant une application numérique en vue de la constitution de groupes et unités de chargement conformément au procédé selon l'invention ; et Fig. 3 est un exemple de données d'écrans correspondant à l'écran El de la Fig. 2. Le scénario (c'est-à-dire la navigation et les actions) d'une application de vidéo diffusion (application interactive sur un canal de télévision) est décrit dans une structure de données dont les noeuds représentent soit un écran E; soit un objet O mis en oeuvre dans un ou plusieurs écrans. Les arcs entre écrans sont des règles de navigation (ensemble d'un ou plusieurs stimuli et d'une ou plusieurs actions qui confèrent un sens de navigation). Les arêtes entre écran et objets correspondent à l'appartenance de l'objet à la définition de l'écran ; ces arêtes sont sous la forme d'une liste associée à chaque écran et listant les références de l'ensemble des objets le constituant. A l'exécution, l'application s'initialise sur un premier écran : l'écran initial E0. Comme évoqué précédemment, les objets sont de nature diverse. Les stills sont des images qui sont affichées dans le plan vidéo lorsqu'un écran est en mode plein écran, sans vidéo. Un focus est un élément graphique constitutif d'un écran qui est soit actif soit inactif, correspondant à deux états graphiques (draws). Un écran comprend généralement plusieurs focus dont un seul est actif à un moment donné, l'utilisateur déplaçant le focus actif. Des règles sont généralement associées à ces focus actifs, notamment des actions liées à l'appui d'une touche par l'utilisateur (stimulus). Une animation est une suite de draws à afficher successivement et en boucle avec un intervalle de temps égal au délai précisé. Un draw est une suite d'actions graphiques liée à une représentation graphique, par exemple de texte, de forme géométrique, de ligne, de point, d'épaisseur de trait, .... Une palette est une définition de couleurs et des composantes rouge, vert, bleu et transparence (alpha) constituant chaque couleur. Une règle est une suite d'action en réponse à un stimulus ; elle est donc définie par un stimulus et la suite d'actions. Les règles appartiennent à un écran et, il ne peut y avoir deux règles en réponse à un même stimulus. Les stimuli sont des entités qui entraînent l'interprétation par le lecteur de l'éventuelle règle de l'écran courant en réponse à ce stimulus, parexemple l'appui sur l'une des touches du terminal ou de la télécommande associée, la fin d'un temporisateur, une instruction de mise à jour, un événement système ou réseau, ... Les actions associées à ces stimuli sont des instructions que le lecteur du terminal exécute lorsque le stimulus est détecté. Des exemples d'actions sont la connexion d'un modem, le changement d'écran dans l'application (navigation vers un écran, retour en arrière dans la navigation), l'exécution de draws pour afficher de nouveaux éléments graphiques à l'écran, quitter l'application, ... Par ailleurs, les écrans sont les éléments de base constitutifs d'un scénario. L'invention s'adresse notamment à une extension de la notion d'écran applicatif telle qu'évoquée en lien avec la demande WO-01/01700 susmentionnée. Désormais un écran applicatif n'est pas nécessairement visible à l'affichage. Il s'agit d'un état défini dans le scénario par des objets et des règles. Un écran peut être non affiché sur le moniteur d'affichage mais exécuté par le terminal en attente d'un stimulus pour naviguer vers un nouvel écran lui aussi visible ou pas. Un écran comprend certains paramètres et référence des objets comme suit : û nom de l'écran ù mode graphique d'affichage (pleine dimension de l'écran d'affichage ou non) ; palette(s) draw(s) et liste de positions où dessiner les draws sur l'écran d'affichage focus, liste de positions où placer les focus sur l'écran d'affichage, numéro de contexte de focus mémorisant pour un écran le dernier focus actif en vue d'un retour ultérieur sur cet écran et touche de sélection de focus (par exemple la touche 'Ok' de la télécommande) animation(s) et liste de positions des animations à placer sur l'écran still(s) et liste de positions pour les stills à placer sur l'écran règles Notons qu'un même draw ou focus, comme tout autre objet, peut être utilisé plusieurs fois sur un même écran et partagés par plusieurs écrans. La réutilisation des objets comme les draws et les focus permet de réduire la taille des données à diffuser, donc le temps de cycle et les besoins en chargement et, au final, contribue à améliorer la vitesse d'exécution des scénarios applicatifs. Le déroulement de l'affichage d'un écran est le suivant : 1- l'ensemble des données nécessaires à l'affichage de l'écran est chargé dans le mémoire du décodeur si elles ne sont pas déjà présentes ; 2- un stimulus `ScreenLoaded' indiquant que toutes les données sont chargées est déclenché ; si une règle est associée à ce stimulus, elle est exécutée immédiatement et de manière synchrone ; 3- l'OSD (On Screen Display) de l'écran d'affichage est alloué ; 4- les draws qui constituent l'écran sont dessinés dans un buffer (mémoire tampon servant de tableau d'affichage) caché. L'aspect ON du focus initialement sélectionné et les aspects OFF des focus initialement non sélectionnés sont aussi dessinés dans le buffer caché ; 5- le contenu du buffer caché est copié dans le buffer visible. L'OSD est affiché sur l'écran de télévision ; 6- le stimulus `ScreenDisplayed' indiquant que l'écran graphique a été produit est déclenché. Si une règle est associée à ce stimulus, elle est exécutée immédiatement et de manière synchrone ; 7- le processus d'affichage des stills est lancé ; 8- les animations sont démarrées. Les étapes 2 à 6 sont exécutées de façon synchrone et, pendant le laps de temps nécessaire à leur exécution, le lecteur ne répond plus aux sollicitations et stimuli extérieurs. Lorsque l'on navigue d'un écran à un autre, les étapes suivantes sont exécutées : a- le stimulus `EndScreen' est déclenché. Si une règle est associée à ce stimulus, elle est exécutée ; b- les données manquantes et nécessaires à l'écran suivant sont chargées dans le mémoire du terminal ; c- les étapes 4 à 8 sont alors appliquées pour dessiner dans le buffer caché le nouvel écran et basculer sur celui-ci. La Fig. 1 représente les données diffusées sur un réseau de diffusion 10, notamment sur un canal alloué, par exemple un PID (program identifier en DVB). L'application est diffusée sous forme d'un carrousel consistant en la répétition des données de l'application (un train de données 1) de façon cyclique. Un temps de cycle (2) raisonnable pour des applications en télévision numérique est de l'ordre de 1 à 5 secondes. L'ensemble des écrans E; et objets O de l'application numérique est contenu dans un train 1 de diffusion du carrousel. Le train 1 comprend une pluralité d'unités de chargement (3) dans lesquelles sont rangés les écrans et objets. L'exemple de la Fig. 1 montre une unité de chargement 3 qui comprend, outre des données d'entête et de vérification (4), des pointeurs 5 listant chacun des objets Oi ou écrans Ei contenus dans la partie utile 6 de l'unité 3. Le nombre d'objets et d'écrans dans une unité de chargement 3 varie en fonction de la taille de ceux-ci. L'unité de chargement 3 présente une taille fixe de l'ordre de 1 à 16 kilo-octets (ko) ; on choisit généralement 2 ko, 4 ko ou 8 ko. Cette taille est adaptée aux capacités du terminal destinataire de l'application, lequel présente une mémoire de travail d'environ 100 ko. L'invention a pour but de ranger ces écrans Ei et objets Oi dans les unités de chargement 3 composant un train 1 du carrousel afin d'améliorer les performances de navigation entre autres. Le procédé visant à constituer ces unités de chargement 3 est maintenant présenté plus en détail en référence aux Fig. 2 et 3. Des moyens informatiques (logiciel, unité de traitement et mémoire associée) sont mis en oeuvre sur le serveur de diffusion du carrousel sur le réseau 10 afin de réaliser les étapes qui suivent. Etape 1 La structure de données du scénario est parcourue dans son intégralité. Pour chaque écran du scénario, on détermine les objets directement 25 référencés dans la liste de cet écran ainsi que les objets qui sont référencés par les écrans accessibles depuis cet écran par un seul lien de navigation. Les écrans accessibles depuis l'écran en question par un seul lien de navigation sont facilement déterminables en analysant les règles définies pour l'écran en question et en répertoriant les écrans 30 mentionnés dans des actions de type "changement d'écran". Pour la réalisation de cette étape, l'on considère également que les données d'écran (paramètres, références à des objets qu'il contient, ...) sont des objets uniquement référencés par l'écran qu'ils décrivent : OEi20 comprend toutes les données de l'écran E; et n'est référencé que par cet écran. On met alors à jour une table similaire à l'exemple fourni ci-dessous (tableau 1), en renseignant, pour chacun des objets déterminés précédemment, le champ "E(Ecrans)" de cette table avec le nom ou un identifiant de l'écran en question. Objet S = E(Ecrans) 01 E1 02 E1, E2, E5 O; E3,...,E~,...,Ek 0*, E1, Em On E1, Em Tableau 1 : table associative Objet -> Ensemble(Ecrans) Cette table permet de lister pour chaque objet du scénario l'ensemble des écrans qui lui sont liés (soit directement soit indirectement par un niveau de navigation). Etape 2 A partir de cette table, on regroupe tous les objets qui sont liés à un même ensemble d'écrans. On obtient alors la table associative Ensemble(Ecrans)->Ensemble(Objets) suivante : S = E(Ecrans) G = E(Objets) E1 01 E1 0*,,, E1, E2, E5 02, 08, 09 E3, ... , E~, ... , Ek O;, ... Em O*m El, Em On, ... Tableau 2 : table associative Ensemble(Ecrans) -> Ensemble(Obiets) Dans cet exemple, les objets 02, 08, 09 sont des objets partagés entre les écrans El, E2, E5. L'objet 0*m est un objet de type dynamique tel défini précédemment. Bien que celui-ci soit lié aux écrans El et Em, à ce stade du regroupement, on peut opérer un regroupement différent pour l'objet On non dynamique et l'objet O*m dynamique. Précisément, soit on crée un groupe séparé pour chacun des écrans listant cet objet dynamique, ce groupe regroupant alors tous les objets dynamiques listés (directement ou indirectement) par cet écran, soit on ajoute cet objet dynamique au groupe (s'il existe) qui comprend les objets uniquement listés par cet écran. La Fig. 2 illustre différents écrans El à E4 d'un scénario de navigation suivant les liens 20. Chaque écran liste (représenté par les traits discontinus 21) directement des objets O;, représentés sur la figure par trois cercles empilés dans les groupes G. Par exemple, les objets du groupe G8 sont directement listés par E2 et E4. On remarque alors que ces mêmes objets du groupe G8 sont indirectement listés par El car, par la navigation au travers d'un simple lien (de El à E2 ou El à E4), il est possible de passer de El à E2 ou E4. En revanche, les objets de G5 ne sont pas indirectement listés par El ou E4 car aucun lien de navigation permet de passer en un saut de El ou E4 à E3 (qui liste G5). A l'issue de cette étape, nous tendons vers le regroupement d'objets souhaité car, par rapport à l'étape 1, chaque regroupement effectué diminue de un le nombre de groupes requis pour les écrans utilisant les deux groupes regroupés. Etape 3 A partir du tableau 2, chaque ensemble d'objets ainsi formé constitue un groupe G; tel que représenté sur la Fig. 2. Ces groupes G; sont alors regroupés avec pour objectif de former les groupes les plus gros possible mais d'une taille inférieure à un seuil correspondant à la taille des données utiles 6 d'une unité de chargement 3. Eventuellement, on effectue ce regroupement en minimisant le nombre d'unités de chargement 3 contenant des objets listés par un écran donné, notamment on limite ce nombre d'unités de chargement 3 utilisées pour un écran au nombre ou au double du nombre d'accès simultanés au carrousel que le terminal d'exécution de l'application peut effectuer. On considère une fonction d'évaluation partielle de ((E(Ecrans), E(Objets)), (E(Ecrans), E(Objets)) vers un ensemble bien ordonné, par exemple les entiers naturels. Considérons un couple (E(Ecrans), E(Objets)), (E(Ecrans), E(Objets)) qui minimise cette fonction d'évaluation. On procède alors au regroupement de ces deux groupes en un seul. Cette étape est réitérée jusqu'à ce que plus aucun regroupement ne soit possible (c'est-à-dire que la fonction d'évaluation n'est définie pour aucun des couples restants). La table associative issue de l'étape 2 est alors mise à jour, à chaque itération, en regroupant les deux entrées de tables concernées par ce regroupement. Différentes fonctions d'évaluation peuvent être utilisées. Par exemple, on choisit comme fonction d'évaluation la fonction qui retourne la différence entre la taille de l'union des ensembles d'objets et la taille cible pour les unités de chargement si cette différence est positive ou nulle et est indéfinie autrement alors. Cette euristique à pour propriété de minimiser, en moyenne, la fragmentation mémoire lorsque l'on range des objets dans des groupes de taille fixe, c'est-à- dire qu'elle minimise le nombre total de groupes nécessaires au rangement d'une quantité donnée d'objets. En minimisant le nombre total de groupe, nous tendons ainsi à minimiser le nombre moyen de groupe nécessaires à chaque écran. La fonction d'évaluation peut choisir de favoriser le regroupement en un groupe de tous les groupes qui ont parmi leurs écrans utilisateurs l'écran initial de l'application avant de procéder à tout autre regroupement. Cette fonction peut aisément être construite à l'aide d'une composition lexicographique d'une part d'une fonction d'ordre que vaut 0 si les deux ensembles d'écrans considérés contiennent l'écran initial et 1 sinon et d'autre part de la fonction utilisées pour le best fit. Ainsi le démarrage de l'application ne requiert que le chargement d'un groupe. En jouant sur la fonction d'évaluation, on peut choisir de favoriser tel ou tel écran. Il est aussi possible de définir une fonction d'évaluation qui garantisse le nombre maximum de chargements à effectuer pour un écran. Pour un couple donné d'arguments, cette fonction est définie au critère de taille du groupe d'objets résultant de la fusion s'il existe un écran pour lequel le regroupement de ces groupes réduit le nombre de chargement et que le nombre de chargement de cet écran est supérieur à la limite fixée. La fonction est indéfinie dans les autres cas. D'autres fonctions d'évaluation peuvent être prévues notamment pour tenir compte de la proximité d'un écran avec les écrans voisins, par exemple les fonctions proposées ci-dessus peuvent être multipliées par une fonction qui renvoie une valeur nulle ou faible lorsque des écrans voisins (à un degré de liens défini, par exemple 1) sont présents dans chacun des ensembles d'écrans considérés. A la fin des différentes itérations, la table associative issu de l'étape 2 ne comprend qu'un nombre limité d'entrées fabriquées par les regroupements successifs des entrées initiales de la table. Les ensembles d'objets obtenus à l'issue de cette étape sont les unités de chargement qui seront utilisées. A ce stade, tous les objets et données d'écran (considérées comme objet pour les différentes étapes) sont regroupés dans les unités de chargement de façon optimisée. Ces différentes étapes sont aisément mises en oeuvre par des moyens logiciels. En référence à la Fig. 3, les données d'écrans E; ainsi ajoutées aux unités de chargement 3, LU1, ... sont modifiées pour renseigner des autres unités de chargement qui comportent des données liées ou listées par cet écran. Cette modification est effectuée lorsque les unités de chargement ont été conçues. Les données d'écran E; comprennent un champ 30 de listage des objets auxquels l'écran E; se rapporte et deux champs 31 et 32 respectivement dédiés au listage des unités de chargement indispensables et au listage des unités de chargement utiles pour le chargement par anticipation. L'exemple de la Fig. 3 s'appuie sur l'écran El de la Fig. 2. Les objets composant El sont uniquement présents dans les unités de chargement LUI et LU2 : le champ 31 indique donc ces deux unités. Selon le scénario de navigation exposé, l'écran El donne accès à E2 et E4 mais pas à E3. Les données composant E2 et E4 et non présentes dans les unités de chargement renseignées dans le champ 31 sont toutes contenues dans les unités de chargement UL3 et UL5. Ces deux unités sont donc renseignées dans le champ 32. L'unité UL4 ne contient pas de données qui soient immédiatement ou rapidement utiles lorsque l'on est sur l'écran El. Donc cette unité n'est pas renseignée pour El. En pratique, pour chaque écran E;, on parcourt la table associative obtenue à l'issue de l'étape 2 et on identifie chacune des entrées pour lesquelles l'écran E; est indiqué dans le champ E(Ecrans) et au moins un objet du champ E(Objets) est agrégé (listé directement) par E. Chaque entrée de la table correspondant à une unité de chargement, il est alors aisé de compléter les données 31 de E; par des données d'identification des unités de chargement identifiées. On effectue ensuite une seconde passe pour renseigner le champ 32 : on identifie tout d'abord par la structure de données du scénario, tous les écrans Ej voisins de E; ; puis on applique le même mécanisme ci-dessus (celui pour remplir le champ 31) pour identifier les unités de chargement des objets agrégés par les Ej. On s'assure néanmoins que si une unité de chargement est déjà référencée dans le champ 31 des unités indispensables, elle n'apparaît pas dans le champ 32 des unités utiles. Le lecteur du terminal, à réception de ces données, procède de façon impérative au chargement des unités UL1 et UL2 afin de disposer au plus vite des données nécessaires à l'affichage de l'écran El souhaité. Si plusieurs accès simultanés au carrousel sont possibles ou sinon dès qu'un accès indirect à celui-ci est possible, le lecteur entreprend le chargement des unités listées dans le champ 32. Ainsi, le terminal dispose des données qui sont susceptibles d'être utilisées rapidement lors de la navigation vers l'écran E2 ou E4 directement accessibles depuis El. REVENDICATIONS 1. Procédé de transmission d'une application numérique sur un réseau de diffusion, ladite application numérique comprenant une pluralité d'écrans (E;) agrégeant, chacun, des objets (0) pour composer un écran applicatif et les écrans (E;) présentant des liens vers d'autres écrans (E;) de façon à permettre une navigation entre les écrans applicatifs, le procédé comprenant la diffusion, sur ledit réseau, d'un carrousel d'unités de chargement (3, LUX) de taille définie, l'ensemble desdites unités de chargement comprenant les écrans et les objets de l'application, caractérisé en ce que le procédé comprend les étapes suivantes : pour chaque objet (0) de l'application, la détermination de l'ensemble (S) des écrans associés audit objet soit par agrégation dudit objet soit par référencement indirect dudit objet, un objet étant référencé indirectement par un premier écran lorsque ledit objet est agrégé par un deuxième écran accessible depuis le premier écran par un nombre de liens inférieur à une première valeur seuil, le regroupement sous forme de groupes (G) de l'ensemble des objets (0) présentant un même ensemble (S) déterminé précédemment de sorte à obtenir un couple (G-S) composé du groupe (G) d'objets et de l'ensemble (S) associé, la constitution desdites unités de chargement par regroupement desdits groupes (G) et des écrans (E;) de sorte que la taille des objets et écrans ainsi regroupés soit inférieure à la taille des unités de chargement. 2. Procédé de transmission selon la revendication 1, dans lequel le regroupement desdits groupes (G) et des écrans (E;) comprend une pluralité d'itérations, chaque itération comprenant l'application d'une fonction d'évaluation à chaque paire desdits couples (G-S), la détermination de la paire de couples (G-S) minimisant ou maximisantladite fonction d'évaluation et le regroupement des deux groupes (G) ainsi déterminés pour former un nouveau groupe (G') associé à l'union (S') des deux ensembles (S) déterminés, lesdites unités de chargement étant constitués des groupes formés à l'issue de ladite pluralité d'itérations. 3. Procédé de transmission selon la revendication 2, dans lequel ladite fonction d'évaluation comprend une première fonction qui retourne la différence entre une deuxième valeur seuil définie et la taille de l'union des deux groupes (G) de la paire, ladite détermination étant réalisée sur la minimisation de ladite fonction dans les valeurs positives. 4. Procédé de transmission selon la revendication précédente, dans lequel ladite fonction d'évaluation comprend la multiplication de ladite première fonction avec une deuxième fonction qui retourne la valeur 0 si les deux ensembles (S) de ladite paire contiennent chacun un écran prédéfini (Edéf) et 1 sinon. 5. Procédé de transmission selon la revendication précédente, dans lequel ladite application numérique comprend un écran initial (Eo) sur lequel l'application démarre, ledit écran prédéfini (Edéf) est initialement l'écran initial (Eo). 6. Procédé de transmission selon la revendication 3, dans lequel ladite fonction d'évaluation comprend la multiplication de ladite première fonction avec une deuxième fonction qui retourne une première valeur faible si les deux ensembles (S) de ladite paire contiennent chacun un écran prédéfini (Edéf) et une deuxième valeur élevée sinon, ledit écran prédéfini (Edéf) étant modifié en un autre écran lorsque ladite deuxième fonction ne retourne plus de première valeur faible pour l'ensemble desdites paires de couples lors d'une desdites itérations. 7. Procédé de transmission selon la revendication 2, dans lequel ladite fonction d'évaluation comprend une troisième fonction qui retourne la taille de l'union des deux groupes (G) de la paire s'il existe un écran associé à ces deux groupes (G) pour lequel le regroupement de ces deux groupes (G) réduit le nombre d'unités de chargement comprenant des objets agrégés dans ledit écran et que ce nombre d'unités de chargement est supérieur à une troisième valeur seuil, la fonction d'évaluation étant indéfinie sinon, ladite détermination de la paire étant réalisée sur le minimisation de 10 ladite fonction d'évaluation. 8. Procédé de transmission selon l'une des revendications 2 à 7, suite auxdites itérations, on modifie lesdits écrans (E;) par l'inscription, dans les données correspondantes (31) à chaque écran, de données 15 d'identification des unités de chargement comprenant les objets agrégés par ledit écran. 9. Procédé de transmission selon la revendication précédente, dans lequel ladite modification comprend également l'inscription (32) de 20 données d'identification des unités de chargement comprenant les objets référencés indirectement par ledit écran. 10. Procédé de transmission selon la revendication 2, dans lequel, lors de l'une desdites itérations, si la taille de l'union des groupes (G) 25 comprenant des objets associés à un premier écran (E;) est supérieure à une quatrième valeur seuil : on détermine le groupe (G) dont les objets agrégés par ledit écran (E;) et partagés avec au moins un autre écran occupent une taille minimale non nulle, 30 on copie, dans un groupe associé uniquement audit écran, les objets agrégés par ledit écran déterminés précédemment, et on supprime ledit écran de l'ensemble (S) associé au groupe (G) déterminé précédemment. 11. Procédé de transmission selon l'une quelconque des revendications précédentes, dans lequel au moins un objet est dynamiquement mis à jour, ledit regroupement sous forme de groupes (G) étant réalisé séparément pour les objets dynamiques et les objets non dynamiques présentant un ensemble S non réduit à un unique écran. 12. Procédé de transmission selon la revendication 1, dans lequel ladite application numérique comprend un écran initial (Eo) sur lequel l'application démarre, ledit regroupement desdits groupes (G) et des écrans comprenant une étape préalable de regroupement de l'ensemble des groupes comprenant des objets agrégés par ledit écran initial (Eo). 13. Système de transmission d'une application numérique sur un réseau de diffusion, ladite application numérique comprenant une pluralité d'écrans (E;) agrégeant, chacun, des objets (0) pour composer un écran applicatif et les écrans (E;) présentant des liens vers d'autres écrans (E;) de façon à permettre une navigation entre les écrans applicatifs, le système comprenant un premier module d'émission sur ledit réseau, d'un carrousel d'unités de chargement (3, LUX) de taille définie, l'ensemble desdites unités de chargement comprenant les écrans et les objets de l'application, et un deuxième module de constitution desdites unités de chargement apte à : ù déterminer, pour chaque objet (0) de l'application, l'ensemble (S) des écrans associés audit objet soit par agrégation dudit objet soit par référencement indirect dudit objet, un objet étant référencé indirectement par un premier écran lorsque ledit objet est agrégé par un deuxième écran accessible depuis le premier écran par un nombre de liens inférieur à une première valeur seuil, ù à regrouper, sous forme de groupes (G), l'ensemble des objets (0) présentant un même ensemble (S) déterminé précédemmentde sorte à obtenir un couple (G-S) composé du groupe (G) d'objets et de l'ensemble (S) associé, et ù à constituer lesdites unités de chargement par regroupement desdits groupes (G) et des écrans (E;) de sorte que la taille des objets et écrans ainsi regroupés soit inférieure à la taille des unités de chargement.