Brevet FR2939226A1 — publié le 20100604

AFFICHAGE NUMERIQUE D'OBJETS SELECTIONNABLES La présente invention se rapporte au domaine de l'affichage numérique d'objets tridimensionnels ou bidimensionnels, ces objets étant susceptibles d'être sélectionnés par un utilisateur. L'invention est plus particulièrement adaptée aux applications embarquées, par exemple de cartographie numérique, sur des terminaux mobiles, par exemple des téléphones portables, assistant personnel numérique ou PDA etc. De telles applications sont par exemple mises en oeuvre dans des terminaux mobiles aptes à communiquer avec un serveur. La figure 1 illustre un procédé d'affichage d'objets tridimensionnels, ces objets indicés i représentant par exemple une pluralité d'immeubles respectifs. Ces objets tridimensionnels sont paramétrés par une liste 100 de données d'images comprenant au moins des coordonnées 3D x;;, y;;, z;; de points. Ces points peuvent par exemple correspondre à des sommets de pavés représentant des immeubles. La liste de données d'image peut en outre comprendre des paramètres de vecteurs normaux n; à des surfaces des objets à représenter, des textures t;, des couleurs c;, ou autre. Pour afficher une représentation de ces objets tridimensionnels, certains paramètres d'affichage 101, par exemple une distance, un angle de vue, sont définis. A partir de la liste de données d'image et des paramètres d'affichage définis, des valeurs de pixels sont calculées lors d'une étape 102, par exemple par un moteur graphique ou moteur 3D. L'affichage sur un écran des valeurs de pixels calculées permet ainsi de représenter en deux dimensions les objets tridimensionnels selon les paramètres d'affichage définis (étape 103). Les calculs de l'étape 102 sont bien connus de l'homme du métier. La plupart des terminaux comprennent des moyens de calcul du type moteur graphique capables d'effectuer ces calculs. Les objets à représenter peuvent alternativement être des objets bidimensionnels, paramétrés par des données bidimensionnelles. Les paramètres d'affichage peuvent alors définir une position et distance par exemple et les calculs de l'étape 102 permettent d'obtenir des valeurs de pixels correspondant à une représentation 2D. Que les objets soient bidimensionnels ou tridimensionnels, lorsqu'un utilisateur modifie les paramètres d'affichage, par exemple pour zoomer, effectuer un déplacement et/ou changer d'angle de vue, des transformations sont appliquées aux données bidimensionnelles ou tridimensionnelles respectivement, et une nouvelle représentation est calculée. Un utilisateur peut en outre souhaiter sélectionner un objet affiché, typiquement en cliquant (à l'aide d'une souris par exemple) sur la représentation de cet objet, notamment pour avoir une description particulière de cet objet. Par exemple, dans le cas d'un objet représentant un immeuble, cette description pourrait comprendre le nom d'une société hébergée par ce bâtiment, le logo de cette société, l'adresse du bâtiment, ou autre. L'opération de cliquage permet de sélectionner un pixel (X, Y). Pour retrouver l'objet correspondant à ce pixel, un traitement relativement complexe est mis en oeuvre à partir de la représentation 2D calculée à l'étape 102. En effet, les limites visibles des objets sont calculées lors d'une étape 104, de sorte qu'une zone de pixels soit associée à chaque objet tridimensionnel (ou bidimensionnel). Des comparaisons sont ensuite menées lors d'une étape 105 afin de déterminer si le pixel (X, Y) choisi par l'utilisateur est dans une des zone 2D déterminées à l'étape 104. Le cas échéant, l'objet tridimensionnel (ou bidimensionnel) associé à cette zone 2D est considéré comme sélectionné (étape 106). Dans le cas d'un terminal relativement pauvre en ressources mémoire et/ou de calcul, les étapes 104, 105 et 106 ù qui permettent la sélection d'un objet tridimensionnel (ou bidimensionnel) représenté sur un écran, peuvent se révéler relativement délicates à effectuer, du fait de la complexité des traitements. Il existe donc un besoin pour concilier affichage d'objets 2D ou 3D et interactivité sur un terminal relativement pauvre en ressources mémoire et/ou de calcul. Selon un premier aspect, l'invention a pour objet un procédé d'affichage numérique sur un écran d'un terminal d'une image représentant un ensemble d'objets comprenant au moins un objet. Cet ensemble d'objets est paramétré par une première liste de données d'image ordonnée par objets, cette première liste comprenant au moins des coordonnées de points. On prévoit en outre une deuxième liste de données d'image comprenant pour chaque objet les coordonnées des points de la première liste de données d'image appartenant à cet objet, et un paramètre de valeur de pixel invariant par transformation géométrique et dont la valeur constitue un identifiant unique de l'objet. Une représentation bidimensionnelle dudit ensemble d'objets est calculée à partir de paramètres d'affichage et de la première liste de données d'image. Cette représentation bidimensionnelle est affichée sur un écran. On calcule en outre une représentation bidimensionnelle supplémentaire de l'ensemble d'objets, à partir de ces mêmes paramètres d'affichage et de la deuxième liste de données d'image. On dispose ainsi de deux représentations bidimensionnelles de l'ensemble d'objet : une représentation classique destinée à l'affichage, avec éventuellement des ombrages et des textures, et une représentation supplémentaire, dite � pseudo-représentation �, dans laquelle à chaque objet correspond un ensemble de pixels ayant une valeur de pixel identique. Par exemple, ce paramètre de valeur de pixel invariant par transformation géométrique peut comprendre un indice de couleur : si la représentation supplémentaire était affichée, chaque objet serait représenté par un aplat d'une même couleur, sans texture, ni ombrage. Les paramètres d'affichage, c'est-à-dire les transformations appliquées pour obtenir ces deux représentations, étant identiques, chaque objet est représenté par des ensembles de pixels de coordonnées identiques sur la représentation affichée et sur la pseudo-représentation. La pseudo-représentation permet ainsi d'associer aux pixels représentant un objet donné sur la représentation affichée une valeur de pixel identique, c'est-à-dire un identifiant de l'objet donné. Ainsi, si un utilisateur sélectionne un des pixels représentant cet objet donné sur la représentation affichée, il est possible de retrouver relativement facilement l'identifiant de cet objet. Ce procédé permet ainsi d'associer les objets à leurs représentations affichées, de manière relativement simple, en évitant les calculs de limites visibles des objets et les comparaisons de la position d'un pixel sélectionné à ces limites. En particulier, ce procédé peut permettre à un terminal relativement pauvre en ressources mémoire et/ou de calcul d'offrir à l'utilisateur des possibilités de sélection d'objets affichées. Avantageusement, en cas de sélection d'un pixel, on détermine à l'aide de la représentation bidimensionnelle supplémentaire une valeur de pixel associée au pixel sélectionné, et l'objet correspondant à la valeur de pixel déterminée est identifié. Les objets de l'ensemble donné peuvent être bidimensionnels ou tridimensionnels. Lorsque le paramètre de valeur de pixel comprend un indice de couleur, le nombre d'indices de couleurs envisageables est en général limité. Typiquement, pour la plupart des terminaux actuels, l'indice de couleur peut prendre seulement 65536 valeurs. Or il pourrait être envisagé que plus de 65536 objets soient affichés. Avantageusement, on peut prévoir que pour au moins un objet, le paramètre de valeur de pixel s'écrive en un n-uplet de n composantes, n>1, ce n-uplet constituant un identifiant unique de cet objet. L'étape de calcul de pseudo-représentation est effectuée n fois, en utilisant à chaque kième fois, 1 ≤k ≤n, la kième composante du n-uplet. Dit autrement, on prévoit non pas une seule deuxième liste, mais plusieurs, de façon à pouvoir coder le paramètre de valeur de pixels sur plusieurs deuxièmes listes. On obtient ainsi plusieurs pseudo-représentations, l'objet étant représenté par des pixels ayant les mêmes coordonnées spatiales pour chacune de ces représentations. Pour un pixel sélectionné sur la représentation affichée, on peut retrouver un n-uplet de valeurs de pixels à partir des n pseudo-représentations, ce n-uplet permettant d'identifier l'objet de façon unique, et ce même si le nombre d'objets affichés dépasse un nombre maximum de valeurs de pixels envisageable, par exemple 65536. L'invention n'est bien entendu pas limitée par cette optimisation. Selon un autre aspect, l'invention a pour objet un programme d'ordinateur comprenant des instructions pour mettre en oeuvre les étapes d'un procédé exposé ci-dessus, lors d'une exécution du programme par un processeur. Ce programme d'ordinateur peut par exemple être téléchargé par un terminal, par exemple de type PDA, en vue d'une exécution par un processeur de ce terminal. Selon encore un autre aspect, l'invention a pour objet un dispositif d'affichage numérique d'une image représentant un ensemble d'objets comprenant au moins un objet. Cet ensemble d'objets étant paramétré par une première liste de données d'images ordonnée par objets et comprenant au moins des coordonnées de points. Le dispositif comporte une unité de mémoire pour stocker, pour chaque objet, un paramètre de valeur de pixel invariant par transformation géométrique et dont la valeur constitue un identifiant unique de l'objet, l'ensemble des paramètres de valeur de pixel formant avec les coordonnées de points de la première liste une deuxième liste de données d'image. Des premiers moyens de traitement permettent de calculer une représentation bidimensionnelle de l'ensemble d'objets, à partir de paramètres d'affichage et de la première liste de données d'image. Des moyens d'affichage permettent d'afficher la représentation bidimensionnelle calculée par les premiers moyens de traitement. Des deuxièmes moyens de traitement reliés à l'unité de mémoire permettent de calculer une représentation bidimensionnelle supplémentaire, dite � pseudo-représentation �, de l'ensemble d'objets, à partir de paramètres d'affichage et de la deuxième liste de données d'image. Ce dispositif peut être intégré dans un processeur, ou bien encore comprendre un terminal, par exemple un téléphone mobile ou autre. D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture de la description qui va suivre. Celle-ci est purement illustrative et doit être lue en regard des dessins annexés sur lesquels : - La figure 1, déjà commentée, est un schéma explicatif d'un procédé d'affichage et de sélection d'un objet, connu de l'art antérieur, - La figure 2 est un schéma explicatif d'un exemple de procédé d'affichage et de sélection d'un objet, selon un mode de réalisation de l'invention, - La figure 3 montre un exemple de dispositif selon un mode de réalisation de l'invention. - La figure 4 est un schéma explicatif d'un exemple de procédé d'affichage et de sélection d'un objet, selon un mode de réalisation de l'invention, En référence à la figure 2, une première liste 200 de données d'images est ordonnée par objet, les objets étant ici indicés par la variable i. Cette liste 200 comporte des coordonnées 3D x;;, y;;, z;; de points correspondant par exemple aux sommets indicés j d'un pavé représentant l'objet i. La variable j indice les points d'un même objet. Cette liste 200 comprend en outre des paramètres, par exemple des coordonnées 3D, de vecteurs normaux, référencées n , à des surfaces des objets à représenter. Cette liste 200 comprend en outre des paramètres de textures référencées t; et des paramètres de couleurs référencées c;. Les paramètres de couleur c; peuvent avoir trois composantes, pour se conformer au modèle YUV par exemple. On prévoit également un jeu de paramètres d'affichages 201 par exemple une distance, un angle de vue. Ces paramètres d'affichage peuvent être définis par un utilisateur, qui indique par là quelle vue il souhaite afficher. A partir de la liste de données d'image 200 et des paramètres d'affichage 201, une représentation bidimensionnelle est calculée lors d'une étape 202, par exemple par un moteur graphique ou moteur 3D. L'affichage sur un écran des valeurs de pixels ainsi calculées permet ainsi de représenter en deux dimensions les objets tridimensionnels selon les paramètres d'affichage définis (étape 203). Les objets affichés peuvent avoir une texture, des ombres, de sorte que les pixels correspondant à ces objets n'ont pas tous un même indice de couleur. Les calculs de l'étape 202 sont bien connus de l'homme du métier. La plupart des terminaux comprennent des moyens de calcul du type moteur graphique capables d'effectuer ces calculs. Une deuxième liste 250 est établie à partir de la première liste 200. Cette deuxième liste comporte les coordonnées x;;, z;; de points de chaque objet de la liste 200. En outre, pour chaque objet, un indice de couleur p; est assigné à cet objet. Le choix de l'indice de couleur à assigner à chaque objet peut être effectué de façon aléatoire. On pourra simplement vérifier qu'une même couleur n'est affectée qu'au plus à un objet. Lors d'une étape 252, on calcule une pseudo-représentation de l'ensemble d'objets, à partir des paramètres d'affichage 201 et de la deuxième liste de données d'image 250. Pour plus de clarté, la figure 2 montre un exemple de pseudo représentation, sous la référence 204. En pratique, cette pseudoreprésentation est destinée à rester en mémoire, en vue d'une utilisation lors d'une éventuelle étape 205 décrite plus loin. La pseudo-représentation calculée peut comprendre une liste de données, par exemple des valeurs de coordonnées de pixels, et pour chaque couple de coordonnées, une valeur d'indice de couleur. Un affichage de cette pseudo-représentation ferait apparaître des aplats de couleurs, sans ombre ni texture. Chaque aplat 254, 254' serait composé de pixels occupant les mêmes positions que les pixels d'un objet correspondant sur la représentation affichée lors de l'étape 203. Sur la figure 2, seulement deux aplats 254, 254' sont représentés, chacun ayant une couleur représentée par des hachures particulières. Si un utilisateur clique, au moyen d'une souris par exemple, sur un pixel de l'écran sur lequel est affiché lors de l'étape 203 la représentation de l'ensemble d'objets, les coordonnées (X, Y) du pixel cliqué sont transmises à des moyens de traitement. Lors d'une étape 205, on retrouve, en utilisant la pseudoreprésentation, l'indice de couleur pio correspondant au pixel ayant ces coordonnées (X, Y). Or chaque valeur d'indice de couleur correspond au plus à un objet. A partir de cet indice de couleur pio, on peut donc identifier un objet indicé io, lors d'une étape 206. On peut prévoir une mémoire stockant pour chaque objet un ensemble d'informations. Par exemple, les objets peuvent correspondre à des immeubles ou des boutiques, et un ensemble d'informations relatif à un objet peut comprendre un nom d'entreprise, des heures d'ouverture, une image de logo, une texture particulière, une couleur particulière, un texte publicitaire, un message sonore, une animation, ou autre. Ainsi, si l'utilisateur clique sur un objet affiché à l'écran, des informations obtenues de cet ensemble d'informations peuvent être affichées. Par exemple, l'objet sélectionné peut s'afficher avec une couleur plus vive que sa couleur sur la représentation, se voir affecté d'une texture reprenant un motif de logo, ou autre. Si l'utilisateur clique ailleurs que sur un objet affiché à l'écran, l'étape 205 conduit à déterminer une valeur de pixel correspondant à une absence d'objet, par exemple une valeur choisie arbitrairement comme nulle. En pratique, l'indice de couleur p; peut comprendre un triplet de valeurs, de façon à se conformer par exemple au modèle YUV, ou bien encore RGB (de l'anglais � Red Green Blue �). La figure 3 montre un exemple de dispositif 300 selon un mode de réalisation de l'invention, par exemple un terminal de téléphonie mobile. Ce terminal 300 comporte une mémoire 301 structurée de façon à stocker des sous-ensembles de données, chaque sous-ensemble 306; correspondant à un objet donné. Un sous-ensemble 306; comprend un identifiant de l'objet correspondant, par exemple une valeur d'indice i, des coordonnées x;;, y;;, z;; de points, et un indice de couleur p;. Le sous-ensemble 306; peut en outre comprendre un paramètre de couleur d'affichage c;, laquelle peut être différente de l'indice de couleur p;, des coordonnées de vecteurs normaux n à des surfaces des objets à représenter, des paramètres de textures t;, ou autre. Le sous-ensemble 306; peut en outre comprendre des informations non représentées du type nom d'entreprise, heures d'ouverture, logo, ou autre. La valeur d'indice i, les coordonnées x;;, yij, z;;, la couleur d'affichage c;, les coordonnées de vecteurs normaux n , les textures t; pour l'ensemble des objets forment une première liste. La valeur d'indice i, les coordonnées x;;, y;;, z;; et l'indice de couleur p; l'ensemble des objets forment une deuxième liste. Alternativement, on peut prévoir deux mémoires distinctes pour stocker les données de la première liste et de la deuxième liste respectivement. L'invention n'est en rien limitée par le mode de stockage des données de la première et de la deuxième liste. Les données de la mémoire 301 peuvent par exemple être téléchargées suite à une demande de l'utilisateur. L'utilisateur peut indiquer quelle vue de l'ensemble d'objets correspondant aux données mémorisées il souhaite voir affichée, par exemple en demandant un zoom, ou un déplacement à droite. Des paramètres d'affichage correspondant à cette vue, par exemple une distance, un angle de vue, ou autre, sont stockés dans une mémoire 307. Des premiers moyens de traitement, par exemple une carte graphique 302, calculent à partir de la première liste et des paramètres d'affichage une représentation de l'ensemble d'objets. Les données correspondant à cette représentation sont stockées temporairement dans une mémoire 304. Ces données peuvent comprendre pour chaque pixel un couple de coordonnées de pixel et une valeur de couleur selon le modèle RGB par exemple. Des moyens d'affichage, par exemple un écran 305, permettent d'afficher cette représentation. L'utilisateur visionne ainsi des objets selon le point de vue demandé, et avec des ombrages et des textures à des fins de rendu plus réaliste. Le dispositif 300 comporte en outre des deuxièmes moyens de traitement, ici confondus avec les premiers moyens de traitement 302, pour calculer une pseudo-représentation à partir des données de la deuxième liste. Une mémoire 303 permet de stocker les données de cette deuxième liste. Ces données peuvent comprendre pour chaque pixel un couple de coordonnées de pixel et un indice de couleur pio associé à l'objet correspondant à ce pixel. La figure 4 montre un exemple de procédé selon un autre mode de réalisation de l'invention. Ce procédé est relativement similaire à celui de la figure 2. En particulier, les références 400, 401, 402, et 406 correspondent respectivement aux références 200, 201, 202 et 206 de la figure 2. Dans cet exemple, l'ensemble d'objets est susceptible de comprendre plus de 65536 objets. Le paramètre de valeur de pixel associé à au moins certains des objets s'écrit en un n-uplet {p(1) ...,p,n)} de n composantes, n>1, de façon à pouvoir identifier chaque objet de façon unique. On peut supposer que chaque objet est identifié avec un n-uplet, lequel peut éventuellement comprendre des valeurs nulles. L'étape de calcul d'une pseudo représentation est effectuée n fois. Lors de chaque étape 452(k), 1 k n, on utilise une liste 450(k) comprenant, outre les coordonnées xgi, yil, zqi, la kième composante p(k); . Lorsque l'utilisateur clique sur un pixel de coordonnées (X, Y), on retrouve, lors d'une étape 405, le n-uplet {p o~ ..., p,o~ } correspondant à ce pixel. Ce n-uplet {p o~ ...,p,o~ } est associé de manière unique à un objet donné, indicé io, de sorte qu'à partir du pixel cliqué on retrouve relativement facilement l'objet correspondant. Dans cet exemple, la première liste 400 comprend pour chaque objet plusieurs coordonnées de vecteurs normaux ,..., i 5 correspondant chacun à une face du bâtiment correspondant à l'objet. On peut également avoir plusieurs identifiants de texture tif, ti2 et/ou plusieurs paramètres de couleur ci,,..., ci,, correspondant par exemple chacune à une partie du bâtiment. REVENDICATIONS1. Procédé d'affichage numérique, sur un écran d'un terminal, d'une image représentant un ensemble d'objets comprenant au moins un objet, ledit ensemble d'objets étant paramétré par une première liste de données d'image (200) ordonnée par objets, ladite première liste comprenant au moins des coordonnées de points (x;;, y;;, z;;), le procédé comprenant a/ prévoir une deuxième liste de données d'image (250) comprenant pour chaque objet les coordonnées des points de la première liste de données d'image appartenant audit objet, et un paramètre de valeur de pixel (pi) invariant par transformation géométrique et dont la valeur constitue un identifiant unique dudit l'objet, b/ calculer (202) une représentation bidimensionnelle dudit ensemble d'objets, à partir de paramètres d'affichage et de la première liste de données d'image, c/ calculer (252) une représentation bidimensionnelle supplémentaire (204) dudit ensemble d'objets, à partir desdits paramètres d'affichage et de la deuxième liste de données d'image, et d/ afficher (203) la représentation bidimensionnelle calculée à l'étape b/ sur un écran. 2. Procédé d'affichage selon la revendication 1, comprenant en outre, en cas de sélection d'un pixel déterminer (205) à l'aide de la représentation bidimensionnelle supplémentaire (204) une valeur de pixel (pi) associée au pixel sélectionné, et identifier (206) l'objet correspondant à la valeur de pixel déterminée. 30 3. Procédé d'affichage selon l'une des revendications précédentes, dans lequel le paramètre de valeur de pixel (pi) invariant par transformation géométrique est un indice de couleur. 4. Procédé d'affichage selon l'une quelconque des revendications précédentes, dans lequel la première liste de données d'image (200) comprend, outre les coordonnées de points (xi;, yi;, zi;), l'un au moins des paramètres choisis parmi l'ensemble comprenant un paramètre de vecteur normal (n ), un paramètre de texture (ti), un paramètre de couleur (ci). 5. Procédé d'affichage selon l'une quelconque des revendications précédentes, dans lequel pour au moins un objet, le paramètre de valeur de pixel s'écrit en un n-uplet de n composantes, n>1, ledit n-uplet constituant un identifiant unique dudit objet, et l'étape cl est effectuée n fois, en utilisant à chaque kième fois, 1 k n, la kième composante du n-uplet. 6. Dispositif (300) d'affichage numérique d'une image représentant un ensemble d'objets comprenant au moins un objet, ledit ensemble d'objets étant paramétré par une première liste de données d'images (200) ordonnée par objets et comprenant au moins des coordonnées de points (xi;, yi;, zi;), ledit dispositif comprenant une unité de mémoire (301) pour stocker, pour chaque objet, un paramètre de valeur de pixel (pi) invariant par transformation géométrique et dont la valeur constitue un identifiant unique dudit objet, l'ensemble desdits paramètres de valeur de pixel formant avec les coordonnées de points de la première liste une deuxième liste de données d'image, des premiers moyens de traitement (302) pour calculer une représentation bidimensionnelle dudit ensemble d'objets, à partir de paramètres d'affichage et de la première liste de données d'image, des moyens d'affichage (305) pour afficher la représentation bidimensionnelle calculée par les premier moyens de traitement, 5des deuxièmes moyens de traitement (302) reliés à l'unité de mémoire pour calculer une représentation bidimensionnelle supplémentaire dudit ensemble d'objets, à partir de paramètres d'affichage et de la deuxième liste de données d'image. 7. Programme d'ordinateur comprenant des instructions pour mettre en oeuvre les étapes d'un procédé selon l'une des revendications 1 à 5 lors d'une exécution du programme par des moyens de traitement.