FR 2784253 A1 20000407 FR 9812465 A 19981005 1 2784253 Procédé et dispositif de navigation et de sélection de services ou de chaines audiovisuels L'invention concerne la diffusion et la réception des applications multimédia ou d'émissions audiovisuelles diffusées et plus particulièrement un procédé et un dispositif de navigation et de sélection de services ou chaines audiovisuels. Ces dispositifs et procédés peuvent être basés sur la signalisation qui accompagne les données des services ou chaines audiovisuels comme par exemple le DVB. io Dans le monde actuel de l'audiovisuel, la multiplication des chaines et services a pour effet d'offrir à l'utilisateur un choix de plus en plus important et de plus en plus complexe. Important en nombre de sorte que les chaines et services proposés peuvent dépasser la centaine. Complexe dans leur dénomination de sorte que l'utilisateur ne peut retenir le nom de tous les chaines et services. La simple association entre un nombre correspondant au numéro de la chaine ou du service avec son contenu n'est pas simple quand le nombre de chaines et de services excède une certaine limite. Dès lors, l'utilisateur ne peut lui-même mémoriser toutes les chaines et services ni même ordonner ces chaines ou services dans son esprit. Cette multiplication de chaines et de services s'est développée grâce aux progrès techniques aussi bien dans les moyens de transmission que dans les moyens de reception des applications multimedia. En effet, les informations correspondant aux applications multimedia sont transmises par multiplexage de paquets de données dans le flux de données numériques permettant ainsi d'augmenter la capacité des transmission et réception des données. - Afin de permettre à l'utilisateur de " naviguer " et d'effectuer son choix parmi les chaines ou services qui lui sont proposés, un guide de programme électronique est à sa disposition. Ce guide de programmes communément appelé " EPG " ou " electronic program guide ", est une application logicielle qui peut être utilisée dans un environnement de télévision aussi bien numérique qu'analogique. L'environnement de la télévision numérique dont s'inspire la présente invention est décrit de mani;re détaillée dans les spécifications du standard 2 2784253 DVB (digital vidéo broadcasting). On peut se référer par exemple aux spécifications DVB établies par l'ETSI (European Telecommunications Standards Institute) publiées en septembre 1997 sous la référence EN 300 468 - vl.3.1 ou sous la référence REN/JTC-OODVB-43. Selon ce standard DVB, les informations concernant les programmes et les événements diffusés sont contenues dans les informations de service ou, en terme anglais, les " service information SI ". Elles sont diffusées périodiquement en fonction de la bande passante disponible et de la fréquence des demandes d'informations de la part de l'utilisateur. io Dans le cadre de la presente invention, l'utilisateur peut " naviguer " et effectuer son choix au moyen des touches de programme P+ ou P- de la télécommande. Ces touches de programme permettent soit d'incrémenter soit de décrémenter le numéro de la chaine ou du service en cours de visualisation sans avoir à appuyer sur la touche correspondant au numéro. L'incrémentation ou la décrémentation peut s'effectuer de manière ponctuelle, isolée. Mais elle peut s'effectuer aussi de manière continue en maintenant la touche de programme P+ ou P- appuyée. Dans ce dernier cas, le choix de la chaine ou du service n'est déterminé que lors du relachement de la pression sur les touches P+ ou P-, ce zapping est communément appelé le " zapping virtuel " ou bien en terme anglais le " continuous surfing ". Ce zapping virtuel existe à l'heure actuelle mais dans un environnement ou le nombre de choix est limité et avec une efficacité et une maniabilité réduite. Par conséquent, afin de permettre à ce zapping virtuel de répondre aux exigences de l'utilisateur, il est nécessaire d'implémenter un dispositif et un procédé de navigation et de sélection de services ou chaines audiovisuels qui fonctionnent aussi bien dans l'environnement numérique que dans l'environnement analogique. Un premier problème auquel doit répondre ce dispositif et ce procédé de navigation et de sélection est de disposer d'une mémoire facilement accessible et capable de changer en fonction du flux de données diffusé par l'émetteur afin de donner une image stable pour l'interface utilisateur et de fournir les informations en temps voulu. 3 2784253 Un second problème réside dans la gestion des informations reçues de l'émetteur et restituées à l'utilisateur, car le zapping virtuel nécessite une taille de mémoire importante et une gestion rapide afin de faire face aux changements de flux. Un troisième problème réside dans la gestion de l'incohérence qui peut apparaître transitoirement dans les changements des flux de données. Résumé de l'invention Un des buts de l'invention est donc de permettre à l'utilisateur io d'effectuer une sélection rapide de chaines ou des services au moyen du zapping virtuel. Un autre but de l'invention est aussi d'augmenter la performance de ce zapping virtuel en améliorant le temps de réponse du système pour permettre un affichage quasi-instantanné du programme demandé. Il en découle aussi que l'invention a pour but de donner à tout instant une image de la liste des services disponibles à l'utilisateur. Un des buts de l'invention est aussi de donner une image stable des flux de données transmis tout en étant aussi fidèle que possible à la réalité. L'invention a pour objet un procédé de navigation et de sélection de services dont chaque service est associé à une identification. Ce procédé comporte un moyen pour décoder et convertir des signaux diffusés en signaux vidéo/audio/données pour les transmettre à une pluralité d'appareils multimedia en fonction du signal de commande d'un appareil de commande comportant une touche de programme permettant d'incrémenter ou de décrémenter la sélection du programme en cours de visualisation. Il comprend les étapes suivantes: * initialisation et mise à jour d'une base de données (300) contenant une liste des services disponibles pour l'utilisateur; * en réponse d'un premier signal de commande de l'appareil de commande, visualisation',de l'identification des services disponibles de la liste de services, service par service de manière à ce que l'utilisateur puisse effectuer son choix; et 4 2784253 en réponse d'un second signal de commande de l'appareil de commande, visualisation du service sélectionné sur ladite pluralité d'appareils multimédia. Le dispositif de navigation et de sélection de services selon la présente invention comprend: * une base de données contenant une liste des services disponibles pour l'utilisateur; * un moyen de visualisation de l'identification des services disponibles de la liste de services, service par service de manière à ce que l'utilisateur puisse effectuer son choix, en réponse d'un premier signal de commande de l'appareil de commande; et À un moyen de sélection du service choisi par l'utilisateur, en réponse d'un second signal de commande de l'appareil de commande. D'autres caractéristiques 'et avantages de I 'invention apparaîtront à travers la description d'un mode de réalisation non limitatif. Ce mode de réalisation est illustré par les figures ci-jointes. Description des figures Figure 1 represente une vue générale de l'environnement de l'invention et notamment de la situation du middleware dans l'architecture du software. Figure 2 est une representation de la base de donnée du service serveur et ses inter-relations avec les éléments logiciels du système. Figure 3 montre une' représentation du service serveur en modèle objet avec ses composants et ses liens avec des composants externes. Le service serveur est la partie du middleware qui est principalement concernée par le zapping virtuel. Figure 4 représente ['architecture interne de la base de données du service serveur ainsi que ses liens avec les flux de données. 2784253 Description détaillée de l'invention La figure 1 représente une vue générale de l'environnement de l'invention et notamment de l'implémentation du middleware (définition donnée plus loin dans la description) dans l'architecture du software (ou logiciel global du système) qui est fondée sur l'OpenTV (nom commercial d'un système de télévision interactive). Le middleware est définie comme étant la partie du logiciel située juste en dessous de l'interface utilisateur dont la structure ne decoule pas du type de navigation et qui est tenu de fournir le contrôle et les données nécessaires à cette interface utilisateur. Cette figure donne une illustration statique et dynamique de l'implémentation. Le module des applications (160) qui échange des informations avec un interface utilisateur (190) et un module relié à l'externe (180) est connecté d'une part au middleware (170) et d'autre part au module Viaccess (150). Ces deux derniers sont par ailleurs connectés au module OpenTV (100) de manière bidirectionnelle. Dans cette configuration o la pièce centrale est le module Open TV, ce dernier est connecté au module du télétel (110), au module d'adaptation du driver (120), et au module OS Kernel (140). Le module d'adaptation du driver (120) est par ailleurs connecté au module du driver (130), à l'os Kernel et au module Viaccess. Il est aussi connecté de manière bidirectionnelle au loader (198) qui permet ainsi d'amorcer le démarrage du système. Dans la présente configuration, le module de l'OpenTV (100) intègre d'une part l'interpreteur pour les applications multimédia et d'autre part les bibliothèques consacrées à la télévision interactive comme les graphiques, les interactions, les piles de diffusion, les piles de communication, etc. Tout autre système présentant les mêmes fonctions peut tout aussi bien le remplacer. Les signaux numériques qui sont transmis sont sous forme de paquets. Ils sont séparés pour représenter chacun un type d'informations ou une " voie ". Ainsi les signaux de télévision numérique comportent une voie vidéo, une voie audio et une " voie de service ". C'est dans cette voie de 6 2784253 service que sont prévues des tables d'informations des événements communément appelées " service information ". Les paquets audio ou vidéo filtrés par un démultiplexeur (non représenté) sont stockés dans des zones prédéfinies d'une mémoire tampon (non représentée). Dans un environnement numérique, chaque flux regroupe une pluralité de " services " qui peuvent être à leur tour regroupés dans un bouquet numérique pouvant rassembler des " services " de plusieurs diffuseurs. Par conséquent, dans cet environnement complexe, il est souhaitable que les signaux émis pour chaque " service " contiennent des io informations qui peuvent être extraites directement. L'environnement décrit ci-dessus est cité à titre d'exemple. La présente invention peut être utilisé dans un autre environnement dans lequel les notions de " services " ou de bouquets sont substituées par d'autres notions, du moment que les signaux reçus par les abonnées contiennent les informations qui permettent d'identifier les " services ", " programmes ", " émissions " ou " événements " qu'ils reçoivent. Le standard MPEG-2 donne un exemple d'organisation générale des " services information " dans un contexte de télévision numérique européenne selon le standard DVB. Ce contexte est illustré uniquement à titre d'exemple pour la compréhension de la présente invention. Les tables les plus typiquement utiles pour le zapping virtuel sont la NIT, BAT pour la liste des services, SDT pour les noms des services et EIT pour les noms des evenements. Le " service d'information " (SI) qui est principalement constitué de ces tables fournit entre autres des informations qui sont les suivantes: * Une table d'association de bouquet " BAT " qui fournit les informations relatives aux bouquets comme le nom des " services " qui sont fournis. * Une table NIT, qui donne principalement des informations sur les caractéristiques physiques du flux (frequences sur lesquelles sont émis les differents flux). * Une table de description des " services " (SDT) qui contient les données décrivant les " services " dans le système. * Une table d'information des événements " EIT " qui contient les données 7 2784253 sur les événements ou programmes comme le nom, le début, la durée etc. * Une table des statuts courant " RST " qui donne les statuts (en cours ou non) d'un événement. * Une table agenda " TDT " qui donne des informations sur l'heure courante et la date. Cette table est mise à jour de manière à s'adapter aux heures locales et à être exacte. Cette description n'est pas exhaustive, d'autres tables peuvent être mises en place pour contenir d'autres informations qui sont utiles dans le cadre de la présente invention. La figure 2 décrit une représentation de la base de données du service serveur et ses inter-relations avec les éléments logiciels du système dans l'exécution de la fonction du zapping virtuel. Le zapping virtuel dont la fonction a été précédemment expliquée, permet à l'utilisateur de faire défiler un à un les chaines ou services de manière croissante ou décroissante dans un menu sans pour autant faire visualiser le programme ou l'événement sur l'écran du téléviseur. Ce défilement est de l'ordre de 0,4 seconde par chaine ou service. Quand la pression des touches de programmes P+ ou P- est relachée, la connection est établie et le programme ou l'événement correspondant est visualisé sur l'écran. Le procédé du zapping virtuel s'opère en plusieurs étapes. A la première pression de la touche P+ ou P-, le middleware notifie que le service doit changer en identifiant le nouveau service demandé au moyen du " service identifier ". La réponse ainsi que le service demandé sont ensuite transmis au middleware dans les 0,4 seconde. Si l'utilisateur ne relache pas la touche, un méchanisme automatique basé sur un compteur du temps ou " timer " relance ce processus. Le procédé continue donc ainsi de suite et jusqu'à ce que l'utilisateur relache la pression signifiant qu'il est satisfait avec le service ou le programme fourni. Cette figure 2 décrit le principal élément du module service serveur avec les points d'entrée (ou méthode) qu'il offre au module interface utilisateur (UI). Certaines de ces méthodes permettent à l'UI de consulter la liste courante des services, de 8 2784253 connaître les noms des services. Un couple de méthode Lock/Unlock permet de suspendre/reprendre la mise à jour de la base de donnée depuis le flux pour que l'UI dispose temporairement d'une image cohérente (bien qu'éventuellement depassée) de la liste des services. La figure 3 montre une représentation du module " service serveur " en modèle objet avec ses composants internes et ses liens avec des composants externes. Le module du service serveur comprend une composante principal io qui est une base de données (300). Elle est connectée à trois autres composants que sont un installateur (310), un module de vérification de flux de données (320) et un module de vérification de noms (330). Ces quatres composants sont par ailleurs connectés à un module de l'interface utilisateur (340), à un contrôleur (350), à un module du service information (360) de Open TV (ou système similaire) et à un module de gestion des tables du service information (370) de Open TV. Dans l'exécution des fonctions, I'installateur (310) efface en premier lieu la base de données (300), ceci est réalisé au moyen d'une fonction FlushDatabase. Puis il fait la comparaison entre plusieurs listes tirées des tables NIT et BAT de manière à prendre les éléments en commun. Ceci dépend bien sûr de l'environnement qui est mis en place. Dans le mode installation, le but est de savoir quand la base de données dispose des données complètes concernant certains services particuliers qui doivent etre reconnus dès le début. La liste des services est chargée dès le démarrage (lue dans la NIT et BAT). Mais cette liste ne contient que les numeros de services et leur identification DVB, les informations "utilisateur" ne sont pas encore chargées, ceci afin d'éviter d'attendre que toutes les données soient téléchargées. Ensuite, le mode de propagation permet de savoir si les données doivent être enregistrées immédiatement dans la base de données. Dès lors que le téléchargement des services est terminé, toutes les listes des services sont construites et la base de données disponible est mise à jour. Un " timer " est enclenché pour envoyer un message notifiant que la base de données est ou sera remplie. 9 2784253 La base de données (300) dispose d'une structure qui lui permet de répondre rapidement aux commandes de l'utilisateur et dont une description détaillée est donnée à la figure 4. Pour ce faire, cette base de données doit être capable d'interpréter les instructions qui lui sont demandées. La fonction du contrôleur (350) est de coopérer avec le module installateur (310) pour initialiser la base de données (300). Cette dernière acquiert des informations sur le service information grâce au module du service information (360) du système Open TV. Une fois que ces informations sont acquises, elles peuvent être fournies au module de o10 vérification de flux (320) et au module de vérification de noms (330). Le module de vérification de nom (330) exécute les fonctions suivantes: Il traduit les noms du service dans un language compréhensible du DVB-SI. II informe le contrôleur que la connection est établi. Puis il met à jour l'information dans le système de Open TV. Le module de vérification de flux (320) quant à lui met à jour les informations pour chaque flux de données détecté figurant dans la liste des services qui sont à la disposition de l'utilisateur. Dès que les informations du service demandé sont acquises et que l'image est stable, la base de données (300) envoie un message au module interface utilisateur (340) notifiant que la transmission est prête. Ce dernier procède alors à la lecture de la base de données pour faire visualiser le service ou le programme demandé sur I 'écran. La figure 4 représente l'architecture interne de la base de données du service serveur ainsi que ses liens avec les flux de données. La base de données peut être divisée en deux parties. La première partie concerne l'acquisition des informations dont le but est d'obtenir des données du module de service (360) du système Open TV et de traiter aussi des messages de notifications de sorte que les informations reçues ne sont pas stables mais en constante évolution avec le modification du flux. La seconde partie concerne la restitution des informations dont le but est de fournir une version stable des données aux utilisateurs. Elle est controlée par la partie d'acquisition. Son but est de fournir une copie des 2784253 données du flux DVB aussi stable que possible. De ce fait, elle assume une double fonction. D'une part, elle administre les requêtes de l'utilisateur et fournit un tri de la base de données. D'autre part, elle assure le rôle de base données dont la structure est identique à celle de la partie d'acquisition. Le contenu de la partie acquisition est bien entendu relié à la partie restitution. Cette base de données (300) met en oeuvre plusieurs classes. Certaines peuvent être accédées immédiatement par l'utilisateur. D'autres peuvent être accédées si l'utilisateur le souhaite. Ces classes sont décrites de manière détaillées dans les spécifications DVB établies par l'ETSI io mentionnées précédemment. Dans sa constitution, cette base de données comprend plusieurs composants: un module interne de service (412) associé à un module de connection de service (416). Ces modules contiennent des données qui peuvent être accédées par un module dedié à la télévision (440), un module dédié à la radio (430), un module dédié au téléchargement (420) et un module gestion des listes de service (410). Le module dédié à la télévision accède aussi aux données d'un module d'événement (442) qui peut à son tour être associé à d'autres modules contenant des données annexes sur les événements. Il s'agit par exemple des modules contenant les détails (446) ou les extensions (444) sur les événements. Comme il a été mentionné précédemment, ces modules ne contiennent pas tous des informations qui sont nécessaires immédiatement. Seuls le module service (412), le module connection de service (416), et le module événement (442) en contiennent. Le module service (412) enregistre effectivement des informations sur l'identification du réseau d'origine, du transpondeur, du service, de la chaine ainsi des informations sur le type de DVB etc. Le module de connection de service (416) contient des informations sur le type de connection, le nom de la connection, l'identification de la chaine de connection et le type de connection DVB. Le module événement (442) contient quant à lui les informations sur l'identification de l'événement, le début de l'évenement, la durée, le nom de l'évenement, et son statut. Telle que constituée, la base de données (300) est sujette à différentes manipulations. Lorsque la liste des services change, c'est notamment le cas lorsque la table BAT ou NIT change, la base de données est effacée et la liste de services est reconstruite pour tous les services de manière à modifier et à mettre à jour la base de données disponible après que le timer a expiré. De même lorsqu'un service change dans la flux DVB, sa copie dans la partie acquisition de la base de données est mise à jour ainsi les données qui lui sont associées comme les informations relatives à sa connection. De io cette manière la base de données disponible n'est mise à jour que lors de la prochaine réception d'un message de mise à jour de la base de données. Ceci se présente notamment, dans le cas o la table d'information des événements " EIT " change dans le flux DVB. Lorsque le service en cours change, les informations spécifiques connectées au service sont mises à jour dans la partie acquisition des données. La base de données disponible n'est mis à jour que si l'occasion se présente, notamment lors de la prochaine réception du message de mise à jour de la base de données. ( Le message de mise à jour de la base de données a pour but de mettre à jour la totalité de la base de données. La mise à jour débute tout d'abord pour chaque service puis ensuite pour le service en cours. Après la modification de la base de données, le mode de propagation démarre afin d'accéler la modification. Un message est alors envoyé à l'utilisateur pour l'informer que la totalité de la base de données a été modifiée. Ce couple de méthode Lock/Unlock permet ainsi de suspendre/reprendre la mise à jour de la base de données depuis le flux. Ainsi l'interface utilisateur dispose d'une image cohérente de la liste des services. Il est important de noter que le terme de décodeur est utilisé dans cette description de manière générique. Il peut être remplacé par un boîtier de composants électroniques dont les fonctionnalités sont celles par un exemple d'un " network computer " qui est relié à un réseau de téléphone ou de télécommunication quelconque. 12 2784253 Revendications 1. Procédé de navigation et de sélection de services dont chaque service est associé à une identification, comportant un moyen pour décoder et convertir des signaux diffusés en signaux vidéo/audio/données pour les transmettre à une pluralité d'appareils multimedia en fonction du signal de commande d'un appareil de commande comportant une touche de programme permettant d'incrémenter ou de décrémenter la sélection du programme en cours de visualisation, caractérisé en ce qu'il comprend les étapes suivantes: * initialisation et mise à jour d'une base de données (300) contenant une liste des services disponibles pour l'utilisateur; À en réponse d'un premier signal de commande de l'appareil de commande, visualisation de l'identification des services disponibles de la liste de services, service par service de manière à ce que l'utilisateur puisse effectuer son choix; et * en réponse d'un second signal de commande de l'appareil de commande, visualisation du service sélectionné sur ladite pluralité d'appareils multimédia. 2. Procédé selon la revendication 1, dans lequel les signaux diffusés sont transmis dans une pluralité de flux, comprenant en outre les étapes suivantes: À suspension de la mise à jour de la base des données depuis les flux afin de mettre à la disposition de l'utilisateur une image cohérente de la liste des services; et À reprise de la mise à jour de la base de données en fonction d'un timer périodique. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que la mise à jour de la base de données comprend les étapes suivantes: * comparaison entre plusieurs listes tirés des flux de manière à prendre les services en commun; 13 2784253 installation d'un nombre limité de données nécessaires immédiatement dans la base de données; et * propagation des données de manière à contruire la liste des services complète après réception de tous les flux transmis afin de permettre la lecture de la base de données pour faire visualiser le service demandé. 4. Procédé selon l'une quelconque des revendications précédentes caractérisé en ce que les données sont extraites des tables du standard DVB-SI. 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que les services sont des chaînes audiovisuelles. 6. Dispositif de navigation et de sélection de services dont chaque service est associé à une identification, comportant un moyen pour décoder et convertir des signaux diffusés en signaux vidéo/audio/données pour les transmettre à une pluralité d'appareils multimedia en fonction du signal de commande d'un appareil de commande comportant une touche de programme permettant d'incrémenter ou de décrémenter la sélection du programme en cours de visualisation; caractérisé en ce qu'il comprend: * une base de données (300) contenant une liste des services disponibles pour l'utilisateur; À un moyen de visualisation de l'identification des services disponibles de la liste de services, service par service de manière à ce que l'utilisateur puisse effectuer son choix, en réponse d'un premier signal de commande de l'appareil de commande; et À un moyen de sélection du service choisi par l'utilisateur, en réponse d'un second signal de commande de l'appareil de commande. 7. Dispositif selon la revendication 6, dans lequel les signaux diffusés sont dans une pluralité de flux, caractérisé en ce qu'un méchanisme de suspension et de reprise associé à un timer périodique permette la mise à jour de la base de données (300) depuis les flux de manière à ce que 14 2784253 l'utilisateur dispose d'une image cohérente. 8. Dispositif selon la revendication 6 ou 7, caractérisé en ce que la base de données est de constituée de deux composants: * un composant d'acquisition des données des flux transmis pour les traiter de manière à suivre l'évolution des changements des données du flux; et un composant de restitution des données stables et cohérentes avec la liste des services disponibles à l'utilisateur. 9. Dispositif selon la revendication 8, caractérisé en ce que la base de données contienne un moyen interne (412) d'indentification de service associé à un moyen (416) d'identification de connection de services, un moyen (442) d'identification d'événement, un moyen (420) de téléchargement des données des flux de données et un moyen de gestion des listes de service (410). 10. Dispositif selon la revendication 9, caracterisé caracterisé en ce que ledit moyeninterne (412) d'indentification de service associé audit moyen (416) d'identification de connection de services et ledit moyen (442) d'identification d'événement contiennent des informations qui nécessitent une mise à jour immédiate.