Procédé de gestion de mémoire dans un terminal client, signal, programme d'ordinateur et terminal correspondants.
1. Domaine de l'invention
Le domaine de l'invention est celui de la restitution de contenus multimédia sur un terminal de radiocommunication, par exemple de type radiotéléphone, PDA (en anglais "Personal Digital Assistant", en français "assistant numérique personnel"), ordinateur portable, etc.
Plus précisément, l'invention repose sur la gestion de mémoire dans un tel terminal et la restitution simultanée de contenus multimédia en mode de chargement continu, encore appelé mode "streaming", ou en mode de chargement progressif, mode dans lequel la consommation du contenu par le terminal débute avant la fin du téléchargement de ce contenu.
On entend notamment par contenu multimédia un ensemble composé d'au moins une scène graphique animée, encore appelée scène multimédia, et d'une série de commandes permettant de faire évoluer cette scène d'un état à un autre. Une scène multimédia correspond notamment à l'agencement d'un ensemble d'objets graphiques dans le temps et dans l'espace, avec lesquels l'utilisateur du terminal de radiocommunication peut interagir.
L'invention trouve des applications dans tous les domaines nécessitant une représentation des signaux sous forme d'un agencement spatio-temporel d'objets graphiques, avec interactivité, et notamment aux domaines permettant au client de consommer les scènes multimédia en mode streaming, ou progressif.
2. Art antérieur
Des techniques de transmission d'un contenu multimédia vers un terminal de radiocommunication et de restitution d'un tel contenu sur un tel terminal sont déjà connues.
Ces terminaux proposent également des techniques mettant en oeuvre une configuration de gestion de mémoire dans un terminal de radiocommunication existent également. Un première technique s'applique aux transmissions utilisant le protocole
de communication HTTP ("Hyper Text Transport Protocol"). Ce protocole de communication prévoit un paramètre, au niveau de la couche transport, indiquant que le contenu transporté doit être mis en mémoire, appelée mémoire "cache", dans le terminal de communication. Ce paramètre indique au terminal client qu'il doit conserver le contenu en question en cache, pour une certaine durée.
Un inconvénient de cette technique est que le paramètre d'indication de mémorisation en cache s'applique à la totalité du contenu transporté, ce qui n'est pas toujours nécessaire, et peut conduire à un encombrement inutile de la mémoire cache, au détriment de données transmises plus tard. De plus, cette technique ne permet pas non plus au terminal de mémoriser un contenu en cache, tout en le restituant simultanément, en mode streaming par exemple.
Une autre technique connue est l'insertion dans une scène multimédia d'une autre scène multimédia destinée à être mise en mémoire cache dans le terminal de radiocommunications. Cette technique permet de répondre aux besoins de transmission anticipée de scènes multimédia, destinées à être mémorisées pour une restitution ultérieure.
Un inconvénient de cette technique est encore une fois de nécessiter la mise en cache, là encore, de la totalité du contenu transmis. Un autre inconvénient de cette technique est que le rendu d'un contenu multimédia sous forme d'une sous-scène insérée dans une scène principale est beaucoup plus coûteux en terme de ressources que celui du même contenu organisé sous forme d'une seule scène.
De plus, un autre inconvénient de cette technique est de ne pas permettre simultanément la restitution et la mise en cache de la sous-scène. En effet, avant d'être restituée, la sous-scène doit être transmise et mise en mémoire cache entièrement.
Enfin, la sous-scène destinée à être mise en cache doit être accompagnée d'une commande indiquant au terminal qu'il doit la restituer après l'avoir chargée entièrement.
3. Objectifs de l'invention
L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur.
Plus précisément, un objectif de l'invention, selon au moins un mode de réalisation, est de fournir une technique permettant à un terminal client de gérer la mémoire cache, notamment pour permettre la mémorisation d'une partie d'un contenu multimédia seulement.
L'invention a également pour objectif de permettre cette gestion de mémoire tout en conservant la restitution en mode de chargement continu ou progressif de ce contenu.
Un autre objectif de l'invention, selon au moins un mode de réalisation, est de fournir une telle technique permettant une configuration précise de la gestion de mémoire dans le terminal client, notamment en termes de délimitation des éléments du contenu multimédia destinés à être mémorisés dans le terminal. Notamment, l'invention a pour objectif de fournir une telle technique présentant de meilleures performances en termes de gestion de mémoire dans le terminal d'une partie d'un contenu multimédia et de restitution simultanée de ce contenu en mode de chargement continu ou progressif.
Il est à noter que la formulation de ces objectifs repose sur l'identification d'un problème nouveau, non suggéré par l'état de l'art.
4. Exposé de l'invention
L'invention propose une solution nouvelle qui ne présente pas l'ensemble de ces inconvénients de l'art antérieur, sous la forme d'un procédé de gestion de mémoire dans un terminal de communication mobile apte à traiter des informations représentatives d'une scène multimédia se présentant sous la forme d'un contenu multimédia comprenant des éléments multimédia, comprenant une étape de réception de ladite scène multimédia.
Selon l'invention, un tel procédé comprend les étapes suivantes, mises en oeuvre simultanément : - une étape de restitution de ladite scène en mode de chargement continu
ou progressif sur ledit terminal ; une étape de mémorisation d'une portion dudit contenu multimédia représentatif de ladite scène multimédia, ladite portion étant préidentifiée dans ledit contenu multimédia. Ainsi, le procédé selon l'invention permet de restituer une scène multimédia, en mode de chargement continu ou progressif, tout en mémorisant des portions pré-identifïées de cette scène, afin de pouvoir les restituer ultérieurement, sans faire de requêtes à un serveur externe, mais uniquement en les récupérant dans la mémoire local du terminal. La mémorisation est sélective, puisque seule une (ou plusieurs) partie du contenu est mémorisée. Cette opération s'effectue simultanément à la restitution de la scène, sans perturbation pour celle-ci.
De façon préférentielle, l'étape de mémorisation est associée à une étape de gestion d'une table affectant à une adresse distante de ladite portion, dans un serveur, une adresse locale dans ladite mémoire dudit terminal, de façon qu'un appel à ladite adresse distante soit systématiquement transformé en un appel à ladite adresse locale.
De cette façon, le terminal met en oeuvre une correspondance entre une adresse distante, correspondant par exemple à l'adresse d'accès sur un serveur à la portion de la scène à mémoriser, et une adresse en mémoire locale du terminal.
Ainsi, quand le terminal doit restituer une portion de la scène, par exemple suite à une requête de l'utilisateur, cela se traduit classiquement par un appel à l'adresse distante d'accès à la portion en question. Selon l'invention, cet appel à l'adresse distante est en fait transformé en un appel à l'adresse locale correspondant à l'emplacement en mémoire du terminal de la portion préalablement mémorisée (si, bien sûr, cette portion a déjà été transmise et mémorisée).
Selon un aspect particulier de l'invention, l'étape de mémorisation d'une portion pré-identifïée dudit contenu multimédia est mise en oeuvre en fonction d'au moins un indicateur de mémorisation.
Avantageusement, ledit un indicateur de mémorisation est associé à une zone de configuration du fichier de description de ladite scène multimédia et est défini par une information selon laquelle une portion pré-identifîée dudit contenu multimédia représentatif de ladite scène doit être stockée dans ladite mémoire dudit terminal client ou non.
Cette zone de configuration du fichier de description de la scène peut se situer à n'importe quel emplacement du fichier. Il peut s'agir par exemple d'un entête de fichier.
Ainsi, cet indicateur de mémorisation permet la détermination de la portion de scène à mémoriser, et le terminal, quand il le reconnaît, sait qu'il doit mémoriser une portion de scène, simultanément à la restitution de la scène.
En particulier, la zone de configuration du fichier de description de ladite scène multimédia comprend en outre au moins un paramètre définissant une durée maximum de stockage de ladite portion dudit contenu multimédia dans la mémoire dudit terminal client.
Ce paramètre permet ainsi au terminal de savoir la durée pendant laquelle il doit conserver en mémoire la portion de scène, ce qui permet une meilleure gestion de la mémoire, en libérant l'espace occupé par une portion de scène comme spécifié par ce paramètre de péremption. De façon préférentielle, la zone de configuration du fichier de description de ladite scène multimédia définit en outre au moins un des paramètres appartenant au groupe comprenant : une adresse distante de ladite portion dudit contenu multimédia stockée dans ladite mémoire dudit terminal client; - une information selon laquelle ladite portion dudit contenu multimédia doit être stockée dans ladite mémoire dudit terminal client, au-delà d'une session utilisateur.
Ainsi, la zone de configuration du fichier de description permet également de donner des indications au terminal concernant la portion à mémoriser, en précisant l'adresse à laquelle la portion est accessible (par exemple sur un serveur
distant).
De plus, un paramètre de cette zone de configuration peut permettre d'indiquer au terminal si la portion à mémoriser doit l'être au-delà de la session utilisateur, par exemple dans le cas où la portion de la scène est réutilisable dans d'autres scènes multimédia, dont la restitution peut être requise dans une autre session utilisateur.
Selon un aspect particulier de l'invention, ledit indicateur de mémorisation forme moyen de discrimination entre au moins une portion dudit contenu multimédia de ladite scène multimédia devant être stockée dans ladite mémoire dudit terminal client et au moins une autre portion ne devant pas l'être.
Ainsi, l'indicateur de mémoire permet de ne mémoriser qu'une portion, ou plusieurs portions d'une scène multimédia, alors que d'autres portions ne le sont pas. Grâce à cet indicateur, le terminal sait quelle portion de la scène doit être mémoriser et quelle portion ne doit pas l'être. De façon préférentielle, ledit au moins un indicateur de mémorisation se présente sous la forme d'un signal temporel déterminant que la portion de ladite scène multimédia reçue avant ledit signal doit être mémorisée alors que la portion de ladite scène multimédia reçue après ledit signal ne doit pas être mémorisée. Le terminal sait qu'à partir de la détection de cet indicateur temporel il ne doit plus mémoriser le reste de la scène.
Un autre aspect de l'invention concerne un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, comprenant des instructions de code de programme pour la mise en œuvre du procédé de gestion de mémoire d'un terminal client tel que décrit ci-dessus.
Un autre aspect de l'invention concerne un signal représentatif d'une scène multimédia se présentant sous la forme d'un contenu multimédia comprenant un ensemble d'éléments multimédia, transmise en mode de chargement continu entre au moins un terminal serveur de scènes multimédia et au moins un terminal client sur lequel ladite scène est restituée. Un tel signal comprend au moins un
indicateur de mémorisation dans ledit terminal client, d'une portion dudit contenu multimédia représentatif de ladite scène multimédia, ledit indicateur étant directement interprétable par le procédé de gestion de mémoire dans un terminal.
Finalement, un autre aspect de l'invention concerne un terminal de radiocommunication comprenant des moyens de réception d'une scène multimédia se présentant sous la forme d'un contenu multimédia comprenant des éléments multimédia. Un tel terminal comprend notamment les moyens suivants, mis en oeuvre simultanément : des moyens de restitution de ladite scène en mode de chargement continu sur ledit terminal, des moyens de mémorisation d'une portion dudit contenu multimédia représentatif de ladite scène multimédia, ladite portion étant préidentifiée dans ledit contenu multimédia.
5. Liste des figures D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : la figure 1 illustre un exemple de procédé de gestion de mémoire mis en oeuvre dans un terminal client selon un mode de réalisation particulier de l'invention ; la figure 2 présente un exemple de fichier de description d'une scène multimédia selon un mode de réalisation particulier de l'invention ; la figure 3 présente un exemple d'une partie de la structure simplifiée d'un terminal client mettant en œuvre une technique de gestion de mémoire selon un mode de réalisation particulier de l'invention.
6. Description d'un mode de réalisation de l'invention
Le principe général de l'invention repose sur la mémorisation d'une portion d'une scène multimédia, simultanément à la restitution de la scène, dans un terminal client.
Ainsi, le procédé selon l'invention permet la mise en mémoire d'une portion d'une scène multimédia sans altérer la restitution simultanée de la même scène multimédia, en mode de chargement continu ou progressif.
On présente, en relation avec la figure 1, un exemple de mise en oeuvre du procédé de gestion de mémoire dans un terminal client, selon un mode de réalisation particulier de l'invention.
On considère un flux multimédia, décrit conformément à ce mode de réalisation de l'invention (voir plus loin la description de la figure 2), transmis par un serveur à un terminal client. Le procédé de gestion de mémoire selon l'invention comprend d'abord une étape 10 de réception, par le terminal client, de la scène multimédia transmise dans le flux, et deux étapes simultanées, l'une de restitution 11 de la scène en mode streaming ou progressif, l'autre de mémorisation 12 d'une portion de la scène. Bien sûr, l'étape de mémorisation 12 n'est active que lorsque les données en cours de réception correspondent à une portion de la scène devant être stockée. Ainsi, quand le terminal client détecte un indicateur de mise en mémoire (décrit plus loin en relation avec la figure 2) pour une portion de la scène, il mémorise la portion en question, tout en poursuivant la restitution de la scène.
Pour l'utilisateur, cette étape de mémorisation n'est pas visible et n'interfère pas avec la restitution. Au contraire, la mémorisation de certaines portions de la scène permet une meilleure gestion d'une scène multimédia au sein du terminal, en utilisant les portions mémorisées localement au lieu d'aller les chercher sur un serveur à chaque fois que la scène en a besoin, et donc une réduction des données transmises et une meilleure fluidité dans l'évolution d'une scène multimédia. Cette étape 12 de mémorisation est associée, selon le présent mode de réalisation, à une étape 121 de gestion d'une table d'adresses, dans laquelle sont associées une adresse distante, pouvant correspondre par exemple à l'adresse utilisée pour la requête à la scène, encore appelée URL ("Uniform Resource Locator" en anglais), et une adresse locale de mémorisation de la portion de la scène dans le terminal.
On considère, au cours de la restitution de la scène en mode streaming, ou en mode progressif, une portion de la scène devant être restituée à un instant donné, par exemple suite à une action de l'utilisateur.
Cette restitution d'une portion de la scène correspond à une requête, c'est- à-dire un appel 13 à une adresse distante, définissant le moyen d'accéder à la portion en question.
La gestion de mémoire selon ce mode de réalisation permet de savoir, grâce à la table d'adresses, si cette portion est mémorisée dans le terminal. Si tel est le cas, le terminal récupère la portion en question en mémoire, de façon à la restituer lors d'une étape 14 de restitution.
Pour récupérer en mémoire la portion de la scène correspondant à l'appel 13 d'une adresse distante, par exemple l'URL de la requête à la scène, le terminal recherche, dans la table d'association d'adresses préalablement renseignée (au moment de la mémoire de la portion), l'adresse locale où la portion est mémorisée. Ainsi, le terminal peut retrouver localement la portion mémorisée au lieu d'effectuer une requête correspondant à l'adresse distante.
Plus précisément, on présente maintenant, en relation avec la figure 2, les paramètres de description d'une scène multimédia permettant au terminal de gérer des portions de scène en mémoire, dans le présent mode de réalisation. On considère une scène multimédia décrite dans un fichier de description
20, lui-même transmis d'un serveur vers un terminal client. Le terminal client reçoit ce fichier de description 20 de la scène et le traite de manière à pouvoir restituer la scène.
Selon ce mode de mise en œuvre particulier, un fichier 20 de description d'une scène multimédia comprend un en-tête 21 (ou une zone de configuration placée dans le fichier de description), dans lequel sont définis des paramètres permettant notamment au terminal de gérer des portions de scène en mémoire.
Notamment, un indicateur de mémorisation 22 permet au terminal de savoir si une ou plusieurs portions de la scène doivent être mémorisées ou non. Ainsi, l'indicateur 22 peut par exemple être un booléen, égal à 1 pour indiquer une
demande de mise en mémoire et égal à O dans le cas contraire.
Selon une variante de ce mode de mise en œuvre, la seule présence de cet indicateur, quelle que soit sa valeur, peut signifier une requête de mise en mémoire, et par conséquent l'absence de cet indicateur implique qu'aucune mémorisation n'est requise.
Dans une autre variante, l'indicateur 22 peut être un signal temporel, c'est- à-dire transmis à un certain moment de la transmission de la scène multimédia, indiquant que la portion de la scène reçue par le terminal avant cet indicateur doit être mise en mémoire, et la portion reçue après ne doit pas l'être. D'une manière générale, cet indicateur permet au terminal de savoir si une ou plusieurs portions de la scène doivent être mises en mémoire.
L'en-tête 21 du fichier de description 20 comprend également un paramètre de péremption, définissant une durée maximale de stockage 23 de la portion de la scène dans la mémoire du terminal client. Ce paramètre, encore appelé TTL ("Time To Live" en anglais), permet de définir la durée de vie en mémoire dans un terminal d'une portion d'une scène multimédia.
Par exemple, on considère un en-tête de fichier, ou une zone de configuration de fichier, comprenant un indicateur de mémorisation (spécifiant une demande de mémorisation d'une portion d'une scène multimédia), suivi d'une durée maximale de stockage égale à une minute.
Après traitement de ce fichier de description de la scène, et particulièrement de son en-tête, le terminal client va mémoriser la portion de scène en question pendant une minute, et va libérer la mémoire à la fin de cette minute.
L'en-tête 21 du fichier peut également comprendre une adresse, appelée adresse distante 24, correspondant au moyen d'accéder à une portion de la scène pour sa restitution. Cette adresse distante peut correspondre par exemple à l'URL utilisée dans la requête à la scène, c'est-à-dire l'adresse permettant d'accéder au serveur hébergeant toutes les données correspondant à la scène.
Dans le cas de cet exemple, le procédé de gestion de mémoire mis en oeuvre dans le terminal va mémoriser, en même temps que la portion de scène considérée, l'adresse distante correspondant à l'accès à cet élément, et lui associer l'adresse locale dans la mémoire du terminal. Cette association d'adresse, gérée dans une table d'adresses, permet au terminal d'accéder à la portion de scène en mémoire au lieu de faire une requête à l'adresse distante.
Selon une variante de ce mode de réalisation particulier de l'invention, le paramètre d'adresse distante ne figure pas dans l'en-tête du fichier. Le terminal peut alors se servir de l'adresse de référencement utilisée pour obtenir la portion de scène à mémoriser comme adresse de mémoire locale, qui lui permettra ensuite de retrouver localement la portion de scène.
On considère maintenant un autre paramètre 25, nommé "permanent", de l'en-tête du fichier, permettant d'indiquer au terminal que la ou les portions de la scène à mémoriser doivent être conservées en mémoire au-delà de la session client.
Ce paramètre "permanent" peut être par exemple un booléen indiquant, quand il est égal à 1, que la portion de la scène à mettre en mémoire doit être conservée en mémoire au-delà de la session client pendant la durée maximale de stockage spécifiée dans le paramètre 23. Quand il est égal à 0, le terminal sait que la portion mémorisée ne doit pas être conservée au-delà de la session client.
Selon une variante, on peut prévoir que ce paramètre 25 indique, par sa seule présence dans l'en-tête du fichier, et quelle que soit sa valeur, que la portion de la scène mémorisée doit être conservée au-delà de la session utilisateur. Ce paramètre permet au terminal de conserver des portions de scène multimédia pouvant servir à la restitution de plusieurs scènes différentes, et permet ainsi des économies en terme de données transmises, certaines données n'étant pas retransmises car déjà en mémoire dans le terminal.
Ce paramètre « permanent » peut également être appelé « non transient ». Selon un exemple de mise en oeuvre du procédé de gestion de mémoire,
on peut considérer les paramètres suivants dans l'en-tête du fichier de description de la scène multimédia : indicateur de mémorisation 22 : "Cacheable" ; durée maximale de stockage 23 : "clientCacheTtl" ; - paramètre 25 : "permanent".
On peut obtenir alors l'exemple suivant d'un en-tête du fichier de description : <header cacheable="true" clientCacheTtl="lmn" permanent="true"/>
On présente finalement, en relation avec la figure 3, une partie de la structure simplifiée d'un terminal client mettant en œuvre une technique de gestion de mémoire selon le mode de réalisation particulier décrit ci-dessus.
Un tel terminal client comprend une mémoire 31 constituée d'une mémoire tampon, une unité de traitement 32, équipée par exemple d'un microprocesseur μP, et pilotée par le programme d'ordinateur 33, mettant en œuvre le procédé de gestion de mémoire selon l'invention.
A l'initialisation, les instructions de code du programme d'ordinateur 33 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 32. L'unité de traitement 32 reçoit en entrée un flux multimédia comprenant au moins une scène multimédia. Le microprocesseur de l'unité de traitement 32 met en œuvre les étapes du procédé de gestion de mémoire décrit précédemment, selon les instructions du programme d'ordinateur 33, pour restituer la scène multimédia en mode de chargement continu ("streaming") ou progressif et mémoriser une portion de la scène. Pour cela, le terminal client comprend, outre la mémoire tampon 31, des moyens de restitution de la scène multimédia en mode streaming ou progressif et des moyens de mémorisation d'une portion de la scène. Ces moyens sont pilotés par le microprocesseur de l'unité de traitement 32.
L'unité de traitement 32 permet donc, simultanément, la restitution de la scène et la mémorisation de portions de la scène.