PROCEDE D ' APPROXIMATION DES POLYGONES ET DES POLYEDRES
La présente invention concerne le domaine du traitement d'image numérique. On distingue généralement deux types de représentation d'images numériques. Dans la représentation d'image dite matricielle, encore appelée
« en mode point » (en anglais « bitmap » ou « raster »), une image est représentée par une matrice de pixels. Une image matricielle est caractérisée par sa largeur et sa longueur, et le nombre de bits par pixel qui détermine le nombre de nuances de gris ou de couleurs pouvant être représentées. Le concept d'une trame plane de pixel est parfois étendu à un volume tridimensionnel formé de petits pavés appelés « voxels », définissant ainsi une image en 3D.
Les images matricielles ne peuvent pas être agrandies sans perte de qualité apparente, même en utilisant de meilleurs dispositifs d'affichage.
Dans la représentation d'image dite vectorielle, une image est représentée par un ensemble de points et de formules indiquant comment relier ces points entre eux. Une image vectorielle est donc représentée par des objets géométriques, comprenant des points et des segments de droite et/ou courbes reliant les points entre eux, associés à des attributs de forme, de position, de couleur etc. Une image vectorielle permet une résolution d'image quasi infinie. Ainsi, à la différence des images matricielles, les images vectorielles peuvent facilement s'afficher sous différentes échelles et s'adaptent à la qualité du dispositif d'affichage.
La présente invention concerne plus particulièrement le domaine du traitement d'une image numérique vectorielle.
Les techniques de réduction polygonale sont fréquemment utilisées dans le traitement numérique d'image vectorielle, par exemple dans les applications de cartographie numérique, de modélisation et animation 3D, pour réduire le nombre de points d'une ligne polygonale, tout en conservant son aspect topologique, c'est-à-dire en restant fidèle graphiquement à la ligne polygonale originale.
Ces techniques ont ainsi pour effet notamment de permettre à une station de travail manipulant des objets de définition d'image vectorielle, de réduire la taille de la mémoire occupée tout en permettant la visualisation à l'écran d'une approximation fidèle de la géométrie des objets manipulés. Certaines de ces techniques se caractérisent par exemple par un coefficient, dit de réduction, mesurant la grossièreté de l'approximation réalisée. Certaines de ces techniques sont applicables exclusivement à des lignes polygonales ouvertes (encore appelées objets filaires), d'autres à des lignes polygonales fermées (encore appelées objets zonals), d'autres encore aux lignes polygonales ouvertes et fermées. Certaines ont pour conséquence la création de points qui n'existaient pas dans l'objet original.
On connaît par exemple la technique de réduction Douglas-Peucker décrite ci-dessous.
Sur la figure 1a est représenté un objet filaire L1. Cette ligne polygonale ouverte L1 comprend PO, P1 ,....Pn points reliés par des segments de droite (dans le cas considéré, n=14).
La technique de réduction Douglas-Peucker comprend une première étape selon laquelle on calcule la distance Di entre chacun des points Pi et son projeté orthogonal P'i sur la droite (POPn) passant par les extrémités de l'objet filaire L1 , PO et Pn, pour chaque point en-dehors des points PO et Pn, par lesquels passe la droite de projection, soit pour i=1 à n-1.
On compare ensuite chacune de ces distances Di, pour i=1 à n-1 , à un coefficient de réduction C fixé préalablement. Puis pour chaque i, i=1 à n-1 , tel que Di < C, le point Pi est éliminé du tracé. Dans le cas représenté en figure 1a, aucun point n'est donc éliminé à ce stade.
Ensuite, on détermine le point le plus éloigné de la droite (POPn), c'est- à-dire le point Pj pour lequel la distance Dj est la plus grande parmi les distances Pi, pour i= 1 à n-1. Ce point Pj ainsi déterminé sera conservé dans le tracé final, qui est représenté en figure 1d. Dans le cas considéré en figure 1a, ce point à conserver est le point P5.
On considère alors de la partie L1/[P0-PJ] de la ligne polygonale L1 située entre le point PO et Pj, ici PO et P5. On considérera l'autre partie L1 /[Pj-Pn] de la ligne polygonale L1 après avoir achevé le traitement de la partie L1/[P0-PJ].
Sur la ligne polygonale ouverte L1/[Po-P5], en référence à la figure 1 b, on réitère le processus, à savoir le calcul de la distance/)/ entre chacun des points Pi, pour i = 1 à j-1 , et son projeté orthogonal sur la droite (P0P5) passant par PO et P5, pour chaque point en-dehors des points PO et P5, par lesquels passe la droite de projection, soit pour i=1 à j-1 , soit dans le cas considéré i=1 à 4. On compare ensuite chacune de ces distances D] , pour i=1 à j-1 , au coefficient de réduction C. Puis pour chaque i, i=1 à j-1 , tel que Di < C, le point Pi est éliminé du tracé. Le point P4 est ainsi éliminé.
Ensuite, on détermine le point le plus éloigné de la droite (POPj), c'est- à-dire dans le cas considéré en figure 1 b, le point P2, qui sera conservé dans le tracé final, qui est représenté en figure 1d.
On considère alors, en référence à la figure 1c, la partie L1/[Po-p2] de la ligne polygonale L1 située entre les points PO et P2. On considérera l'autre partie L1/[p2-P5] de la ligne polygonale L1 après avoir achevé le traitement de la partie L1/[PO-P2]- Et on continue ainsi en traitant similairement le tronçon L1/p2- P5], puis le tronçon Li/pj.pn]. Lors de ces itérations, les points P1 , P3, P8 et P13 sont éliminés. A la fin de processus, la ligne polygonale résultante comprend les points PO, P2, P5, P6, P7, P9, P10, P11 , P12 et P14 et est représentée en figure 1d.
Ce processus est également applicable à un objet zonal. Dans un tel cas, pour définir les points PO, Pn à partir desquels débuter le processus récursif, il suffit de choisir deux points successifs dans l'ensemble des points qui constituent l'objet zonal. Toutefois, le choix de ces deux points successifs a une incidence sur l'objet réduit obtenu. Pour illustration, la figure 2a représente un objet zonal L2. Cet objet L2 est une ligne polygonale fermée comportant les points AO à A12.
Si on choisit comme point PO le point AO et comme point Pn le point A12, l'objet réduit obtenu est la ligne polygonale fermée, représentée en figure
2c et comportant les points AO, A5, A8, A12, les points A1 à A4, A6, A7, A9 à A11 ayant été supprimés par le processus de réduction polygonale Douglas- Peucker.
Si on choisit comme point PO le point A5 et comme point Pn le point A6, l'objet réduit obtenu est une ligne polygonale fermée, représentée en figure
2b et comportant les points AO, A5, A6, A8, A11 , les points A1 à A4, A7, A19,
A10, A12 ayant été supprimés par le processus de réduction polygonale
Douglas-Peucker.
Ce phénomène de non invariance du résultat du processus de réduction polygonale, par commutation des points initiaux PO, Pn considérés, conduit ainsi, entre autres, à des aberrations lors des traitements effectués sur les objets, notamment lors du traitement de deux objets zonals ayant une partie de leurs points en commun.
Il existe donc un besoin pour un processus de réduction polygonale, permettant de définir, à l'aide d'un nombre réduit de données, des images vectorielles et évitant de tels défauts de non invariance du résultat du processus de réduction polygonale, par commutation de points.
A cet effet, suivant un premier aspect, l'invention propose un procédé de traitement d'une image numérique, cette image étant définie dans une première représentation par un premier ensemble 2D ou 3D de sommets et de segments reliant lesdits sommets entre eux. Le procédé comprend un processus comportant les étapes suivantes : pour au moins certains sommets considérés du premier ensemble, calculer pour chaque sommet considéré une valeur associée ; - détecter le ou les sommets associés à la valeur minimale calculée ;
- déterminer une deuxième représentation de l'image à l'aide d'un second ensemble de sommets extraits du premier ensemble et de segments reliant lesdits sommets du second ensemble entre eux, en excluant au moins un desdits sommets détectés du second ensemble. La valeur calculée représente, lorsque le premier ensemble est en 2D, l'aire d'un triangle reliant le sommet considéré à deux sommets reliés, par un segment du premier ensemble, audit sommet considéré.
La valeur calculée représente, lorsque le premier ensemble est en 3D, un volume déterminé en fonction d'au moins le volume d'un tétraèdre dont trois faces sont des triangles reliant le sommet considéré à deux sommets voisins du sommet considéré, un sommet voisin étant un sommet relié par un segment du premier ensemble au sommet considéré ou un sommet relié par deux segments respectifs du premier ensemble à deux sommets reliés chacun par un segment du premier ensemble au sommet considéré.
Ainsi, pour appliquer le processus de réduction selon l'invention, on définit pour chaque sommet considéré d'un objet de définition de l'image vectorielle, une structure 2D, lorsque la représentation de l'image est en 2D, ou une structure 3D, lorsque la représentation de l'image est en 3D, délimitée par au moins un triangle dont les sommets sont le sommet considéré et deux sommets voisins dans l'objet. Cette caractéristique selon l'invention est commune au cas 2D et au cas 3D. Les sommets voisins sont en 2D les sommets de l'objet reliés par un segment au point considéré, et en 3D sont les sommets reliés par un segment au sommet considéré et les sommets de l'objet reliés par deux segments respectifs à deux sommets reliés chacun par un segment au sommet considéré.
Un tel procédé de traitement permet ainsi d'obtenir des objets de définition d'une image vectorielle comportant un nombre réduit de sommets par rapport aux objets composés des sommets initiaux. L'objet réduit conserve une forme fidèle à la forme de l'objet initial.
Un tel procédé présente l'avantage de ne pas présenter le défaut de non invariance par commutation de points. Dans un mode de réalisation, le processus est réitéré N fois, avec
N >1 , définissant N représentations successives de l'image associées chacune à un ensemble de sommets et de segments respectifs, cette disposition permet d'obtenir une progression dans la fourniture de détails de l'image.
Avantageusement, la valeur calculée représente, lorsque la représentation de l'image est en 3D, un volume déterminé en fonction de la somme des volumes de quatre tétraèdres, tels que trois faces de chacun desdits tétraèdres sont des triangles reliant le sommet considéré à deux sommets voisins du sommet considéré, où un sommet voisin étant un sommet
relié par un segment au sommet considéré ou un sommet relié par deux segments respectifs à deux sommets reliés chacun par un segment au sommet considéré, et tels que chaque premier tétraèdre parmi les quatre tétraèdres comporte une première arête commune à un deuxième tétraèdre et une seconde arête commune à un troisième tétraèdre, lesdits deuxième et troisième tétraèdres étant distincts du premier tétraèdre. Cette disposition permet d'obtenir des représentations comportant un nombre limité de sommets, mais fidèles à la représentation initiale.
Dans un mode de réalisation, lorsque la représentation de l'image est en 2D, si la valeur minimale est égale aux valeurs associées à un premier sommet du premier ensemble et à un deuxième sommet du premier ensemble qui est relié par un segment au premier sommet, on n'exclue qu'un seul desdits premier et second sommets pour déterminer une deuxième représentation de l'image. Cette disposition permet d'éviter l'élimination subite d'un trop grand nombre de points.
Suivant un deuxième aspect, l'invention a trait à un procédé de communication entre un serveur comprenant des moyens d'obtention de données indiquant la différence entre une première représentation d'une image et une deuxième représentation de ladite image, déterminée selon un procédé conforme au premier aspect de l'invention, et un terminal client ayant préalablement stocké des données de définition de la deuxième représentation. Ce procédé de communication comporte les étapes suivantes :
- émission par le terminal client d'un message à destination du serveur requérant la fourniture de données relative à la première représentation de l'image ;
- en réponse au message reçu, envoi par le serveur audit terminal client de données indiquant la différence entre ladite première représentation de l'image et la deuxième représentation de l'image
- réception desdites données par le terminal client, puis reconstruction par le terminal client de la première représentation de l'image en fonction desdites données reçues et des données de définition de la deuxième représentation préalablement stockées dans le terminal client.
Avantageusement, les données de définition de la deuxième représentation comportent des données de définition d'au moins une ligne polygonale comportant des sommets et des segments, lesdites données étant associées à des identifiants de triangles composant ladite ligne polygonale. Les données transmises par le serveur indiquent les coordonnées d'un sommet exclu selon le procédé de traitement, de la ligne polygonale dans la deuxième représentation, et l'identifiant d'au moins un triangle et selon lequel la reconstruction de la première représentation de l'image est réalisée par le terminal client en fonction d'au moins lesdits coordonnées et identifiant indiqués.
Suivant un troisième aspect, l'invention propose un dispositif de traitement d'une image numérique, comprenant des moyens pour mettre en œuvre les étapes d'un procédé suivant le premier aspect de l'invention.
Suivant un quatrième aspect, l'invention propose un terminal client adapté pour mettre en œuvre les étapes qui lui incombent d'un procédé de communication suivant le second aspect de l'invention.
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 3 représente un système dans lequel est mise en œuvre l'invention dans un mode de réalisation ; les figures 4a à 4g représentent les lignes polygonales obtenues après un nombre N d'itérations d'un processus dans un mode de réalisation de l'invention, allant de N= 1 pour la figure 4a, à N= 7 pour la figure 4g ; - la figure 5a illustre un découpage en triangle de la ligne polygonale se trouvant en figure 4g ;
- la figure 5b illustre un découpage en triangle de la ligne polygonale se trouvant en figure 4f ;
- la figure 6a illustre un découpage en triangle d'une ligne polygonale ; - la figure 6b illustre un découpage en triangle de la ligne polygonale obtenue après l'insertion du point B5 par rapport à la ligne polygonale de la figure 6a ; la figure 7a représente une ligne polygonale ;
- la figure 7b illustre un découpage en triangle de la ligne polygonale obtenue après l'insertion des points C4 et C5 par rapport à la ligne polygonale de la figure 7a ;
- la figure 8 représente deux lignes polygonales adjacentes ; - la figure 9 représente un élément volumique tel que défini par un premier ensemble de données de définition ; la figure 10 représente des sommets et des segments de l'élément volumique représentés en figure 9 ; la figure 11 représente les quatre tétraèdres, associés à un sommet S, considérés dans un mode de réalisation de l'invention ;
- la figure 12 représente les quatre tétraèdres, associés à un sommet S, considérés dans un autre mode de réalisation de l'invention ;
- la figure 13 représente l'élément volumique obtenu après une itération d'un processus de réduction dans un mode de réalisation de l'invention sur la base de l'élément volumique représenté en figure 9 ; la figure 14 représente l'élément volumique obtenu après une itération d'un processus de réduction dans un mode de réalisation de l'invention sur la base de l'élément volumique représenté en figure 13.
La figure 3 représente un système 1 comprenant une pluralité de terminaux clients TC1 , ...,TCn. Chaque terminal client TC1 , ..., TCn est relié par l'intermédiaire d'un réseau 2, par exemple le réseau Internet, à un serveur
S. Le serveur S est connecté à une base de données BDD, directement ou via le réseau 2.
Le serveur S comporte un module de traitement 10. Chaque terminal client TC1 , ..., TCn par exemple en référence à la figure 3, le terminal TC1 , comporte une zone mémoire 4, une interface, par exemple comportant une souris 5 et un clavier 6, adaptée pour capturer des commandes de l'utilisateur du terminal TC1 , un écran d'affichage 7 pour afficher des images, et un module de contrôle 8 adapté pour déterminer les données des images à afficher en fonction des commandes de l'utilisateur reçues par le clavier 6 et/ou la souris 5, et pour fournir ces données à l'écran d'affichage 7.
Le module de contrôle 8 est en outre adapté pour échanger des informations avec le serveur S par l'intermédiaire du réseau 2.
Parmi les commandes que peut saisir l'utilisateur du terminal client TC1 figurent par exemple des commandes de zoom avant, de zoom arrière, de translation par rapport à une image en cours d'affichage sur l'écran 7.
La base de données BDD comporte une pluralité de zones ZO, ..., Zp dédiées chacune au stockage de données décrivant une image vectorielle respective I0 , ... Ip .
Dans la zone ZO relative à l'image I0 , image en 2D (deux dimensions)
sont stockées l'ensemble M0 des données de définition de l'image vectorielle
I0 permettant de construire l'image vectorielle, afin d'en permettre la
visualisation à l'aide d'un écran d'affichage.
L'ensemble M0 des données de définition comporte notamment les données de définition O1 0 , ..., O°0 d'un nombre égal à io de lignes polygonales O1 ,..., O10. Les données de définition d'une ligne polygonale indiquent les données nécessaires pour construire la ligne polygonale, en vue de la visualiser sur un écran, notamment les coordonnées des sommets et leur ordre dans la ligne polygonale. Dans un mode de réalisation particulier, l'ordre est indiqué implicitement , par l'ordre de succession des coordonnées dans les données de définition de la ligne polygonale.
Dans une phase préalable de construction des représentations de l'image I0 , le module de traitement 10 applique sur chaque ligne polygonale
O1 ,..., O10 telle que définie par les données O1 0 , ..., O°0 le processus Prod décrit ci-dessous. Pour une ligne polygonale fermée, comportant n+1 sommets successifs AO, A1 A2, ... An, avec deux sommets successifs Ai, Ai+1 reliés par un segment pour i=0 à n-1 et An étant relié par un segment à AO, on considère les n+1 triangles suivants : le triangle TTO=(An, AO, A1 ), les triangles TTj=(Aj-I , Aj, Aj+1), pour j=1 à n-1 et le triangle TTn=(An-I , An, AO).
Chacun de ces triangles TTO, ..., TTn relie ainsi un sommet de la ligne polygonale, respectivement AO, ..., An, aux deux sommets de la ligne polygonale qui lui sont reliés par un segment.
On calcule ensuite l'aire de chacun de ces n+1 triangles TTO, ..., TTn, et on élimine les points Aj telle que l'aire du triangle TTj est inférieure ou égale à l'aire de chaque triangle TTi, avec i=0 à n, en respectant la contrainte suivante (contrainte qui permet d'éviter, pour certains polygones réguliers, l'élimination en une étape de n points sur les n+1 points A1 ,..., An) :
Si il existe j, j G [0,n], tel que l'aire du triangle TTj est égale à l'aire du triangle Tj+1 (avec TTn+1 =TT0) et est inférieure ou égale à l'aire de chaque triangle TTi, i G [0,n], on élimine Aj ou Aj+1 (avec An+1 =A0), mais pas les deux points Aj ou Aj+ 1.
L'application de ce processus Prod sur une ligne polygonale définie par les données O] , j= 1 à io, résulte en une ligne polygonale réduite, définie par les données O) et comportant un nombre de sommets inférieurs à celui que comprend la ligne polygonale initiale, mais de forme géométrique fidèle à la forme initiale.
Une seconde contrainte est respectée lors de l'application du processus Prod , lorsque deux lignes polygonales adjacentes sont définies dans l'ensemble de données M0. Deux lignes polygonales L3, L4 sont dites adjacentes lorsqu'elles comportent un tronçon commun T, comportant au moins deux sommets ou plus, comme représenté en figure 8 (L3 et L4 sont par exemple des lignes polygonales représentant des départements limitrophes). La seconde contrainte est de ne jamais éliminer les points d'extrémité Pd et Pf du tronçon commun T entre deux lignes polygonales adjacentes L3, L4.
Une fois que le serveur S a appliqué le processus de réduction polygonale Prod décrit ci-dessus, il mémorise dans la base BDD l'ensemble
M1 des données de définition de la représentation de l'image vectorielle I0
résultante, comportant les données de définition O1 1 , - --, O[ ι 0 des représentations obtenues suite à l'application d'une itération du processus Prod sur chacune des io lignes polygonales.
Ce processus Prod est réitéré k fois par le serveur S, définissant k représentations correspondantes de l'image vectorielle IO résultante, définies respectivement par les ensembles de données M1 ,..., Mk . Chaque ensemble
de données M1 , i=1 à k, comporte les données de définition O) , j= 1 à i0 , des
représentations obtenues suite à l'application d'une ième itération du processus Prod sur les i0 lignes polygonales.
A titre d'illustration, l'une des lignes polygonales, par exemple la ligne polygonale p, est une ligne polygonale identique à la ligne polygonale fermée
L2 représentée en figure 2a. Elle comporte les points AO à A12, chaque point pris selon cet ordre étant relié par un segment au point précédent et au point suivant, AO et A12 étant également reliés par un segment.
Cette ligne polygonale Op es\. définie dans l'ensemble de données M0 , par les données de définition Op . Celle-ci indique les points AO à A12 et les segments les reliant un à un selon cet ordre. La figure 4a représente la ligne polygonale obtenue après une itération du processus Prod . Les points A2 et A9 ont été supprimés car les aires des triangles TT2=(A1 , A2, A3) et TT9=(A8, A9, A10) sont égales et sont les aires minimum parmi les aires des triangles TTO à TT12. Même si l'aire du triangle TT10 = (A9, A10, A11 ) est égale à l'aire de TT9, le point A10 a été conservé afin de respecter la première contrainte indiquée plus haut. La ligne polygonale fermée réduite représentée en figure 4a, comporte les 11 points ordonnés suivants : A1 , A3 à A8, A10, A11 et A12, chaque point selon cet ordre étant relié au suivant et A12 étant relié à AO et est définie dans l'ensemble de données M1 , par les données de définition
. La figure 4b représente la ligne polygonale obtenue après une deuxième itération du processus Prod . Le point A7 a été supprimé car le triangle (A6, A7, A8) présentait une aire inférieure aux aires des triangles (AO, A1 , A3), (A1 , A3, A4), (A3, A4, A5), (A4, A5, A6), (A8, A10, A11 ), (A10, A11 , A12), (A11 , A12, AO). La ligne polygonale fermée réduite représentée en figure 4b, définie dans l'ensemble de donnéesM2, par les données de définition Oj ,
comporte les 10 points ordonnés suivants : A1 , A3 à A6, A8, A10, A11 et A12, chaque point selon cet ordre étant relié au suivant et A12 étant relié à AO.
Sur les figures 4c à 4g sont représentées en traits pleins les lignes polygonales obtenues après chaque itération supplémentaire du processus Prod , et en traits pointillés le ou les sommets et segments ayant été supprimés à l'itération courante.
La figure 4g, correspondant à la 7eme itération du processus Prod , représente une ligne polygonale comportant 4 points A1 , A5, A8, A12, chaque point selon cet ordre étant relié par un segment au suivant et A12 étant relié à A1. Cette ligne polygonale réduite est définie par les données de définition Op η dans l'ensemble de donnéesM7.
Comme on le voit, plus le nombre d'itérations du processus Prod est grand, moins la ligne polygonale finalement obtenue comporte de points et donc plus le volume des données de définition de la ligne polygonale est faible. Ce procédé de réduction polygonale peut s'appliquer de façon similaire à une ligne polygonale ouverte comportant n+1 sommets, PO,..., Pn, chaque point selon cet ordre étant relié au suivant, PO n'étant relié qu'à P1 et Pn n'étant relié qu'à Pn-1 par un segment. On ne considère alors que les n-1 triangles (PO, P1 , P2), (P1 , P2, P3), ..., (Pn-2, Pn-1 , Pn) lors de la première itération et de la même façon lors des itérations suivantes, les points PO et Pn ne feront chacun partie que d'un seul triangle considéré.
Ce procédé de réduction polygonale selon l'invention ne présente pas de défaut de non invariance par commutation de points et permet d'éviter des aberrations graphiques lors du traitement d'objets correspondant à des lignes polygonales adjacentes.
Une fois cette phase préalable de construction des représentations de l'image I0 est réalisée par le serveur S et que les données de définition des
représentations sont stockées dans la base de données BDD, ces données peuvent être transmises par le serveur S à des terminaux clients. En référence à la figure 1 , lorsque l'utilisateur du terminal client TC1 commande la visualisation de l'image I0 par l'intermédiaire du clavier 6 et/ou
de la souris 5, le terminal TC1 envoie, via le réseau 2, un premier message à destination du serveur S, requérant la transmission à destination du terminal
TC1 , des données de l'image I0 .
En réponse à ce premier message, le serveur S extrait l'ensemble M* des données de définition de la représentation de l'image vectorielle I0
correspondant à la kième itération du processus de la base BDD et l'envoie au terminal client TC1. Cet ensemble est celui, parmi les k+1 représentations,
M0 , M1 ,..., Mk de l'image I0 , qui comporte le volume de données le plus
faible, puisqu'il contient le plus faible nombre de sommets. L'ensemble M* des
données de définition de la représentation de l'image vectorielle I0 ,
comportant les données de définition
, ..., Of0 correspondant au résultat de la kième itération du processus Prod sur les lignes polygonales O1 ,..., O10 , est reçu par le terminal TC1 , puis exploité par le module de contrôle 8, qui construit l'image vectorielle à afficher en fonction de l'ensemble Mk des données de définition reçu, et qui fournit les éléments nécessaires à l'écran 7 pour permettre l'affichage de cette image.
Les données reçues sont en outre mémorisées dans la mémoire 4. Lorsque l'utilisateur du terminal client TC1 commande, par l'intermédiaire du clavier 6 et/ou de la souris 5, un zoom d'indice positif z sur une portion de l'image en cours d'affichage sur l'écran 7, le module de contrôle 8 détermine en fonction de la portion zoomée, quels sont les objets vectoriels concernés par ce zoom, puis il envoie un deuxième message au serveur S, indiquant les identifiants de ces objets, parmi lesquels figurent dans un mode de réalisation, l'identifiant de la ligne polygonale Op , et indiquant en outre l'indice z du zoom commandé par le client.
En réponse à ce deuxième message, le serveur S, en fonction de l'indice z de zoom, détermine quel est le numéro de l'itération du processus Prod à considérer, entre 0 et k-1.
Dans le cas où le numéro de l'itération à considérer est k-1 (par exemple z = +1 ), le serveur S détermine, puis envoie au terminal TC1 , les données nécessaires pour qu'à partir de l'ensemble de données Mk envoyé en réponse au premier message et de ces données supplémentaires déterminées, le terminal TC1 soit en mesure de reconstruire la portion zoomée de l'image, correspondant à la (k-1)ième itération du processus Prod sur certaines des lignes polygonales O1 ,..., O10. Ces données supplémentaires indiquent donc les différences entre des données Ok~ι et Ok .
Par exemple, pour la ligne polygonale Op concernée par le zoom, et si k=7, le serveur S détermine les données supplémentaires nécessaires pour indiquer les différences entre les données de définition Op k envoyées en réponse au premier message (correspondant à la ligne polygonale réduite représentée en figure 4g), et les données de définition Ok~ι (correspondant à la ligne polygonale réduite représentée en figure 4h). Ces données supplémentaires à indiquer définissent l'insertion entre le sommet A5 et le sommet A1 , du sommet A3.
Les données supplémentaires envoyées par le serveur S en réponse au deuxième message du terminal TC1 et concernant la ligne polygonale Op indiquent donc les coordonnées du sommet A3, et l'indication du segment (A5, A1 ) à supprimer, à remplacer par les nouveaux segments (A5, A3) et (A3, A1 ) résultant de l'insertion du sommet A3.
Dans un mode de réalisation, préalablement à la mémorisation des données de définition O{ des différentes représentations des lignes polygonales dans la base BDD, le module de traitement 10 du serveur S identifie les n-2 triangles décrits par chaque polygone défini par les données de définition O/ , i= 1 à io, j= 1 à k (chaque triangle ayant au moins une arête commune avec un autre de ces triangles et les triangles n'ayant pas de zones communes entre eux en-dehors des arêtes), conformément à la loi de triangulation de Delaunay. Cette loi est de façon classique mise en œuvre dans les techniques d'accélération graphique notamment dans le cadre de données
d'images vectorielles destinées aux terminaux mobiles. Le module 10 affecte un identifiant T1 , ... Tn-2 à chacun de ces triangles, chaque identifiant de triangle étant mémorisé dans les données O/ , en association aux sommets composant ce triangle. Les références T1 , ..., Tn ci-dessous identifient les triangles ainsi déterminés selon la triangulation de Delaunay.
Par exemple, en référence à la ligne polygonale réduite représentée en figure 4g, définie par les données de définition Op k , le triangle T1 est le triangle
(A5, A8, A1) et le triangle T2 est (A8, A1 , A12), comme représenté en figure 5a.
En référence à la ligne polygonale réduite représentée en figure 4h, définie par les données de définition Ok~ι , le triangle T1 est le triangle (A8, A5,
A3), le triangle T2 est (A8, A3, A1 ) et le triangle T3 est (A8, A1 , A12),
L'insertion du point A3 par rapport à la ligne polygonale réduite représentée en figure 4g, provoque ainsi le remplacement du triangle (A5, A8, A1 ) en deux triangles (A8, A5, A3) et (A8, A3, A1), le triangle (A8, A1 , A12) restant inchangé comme représenté en figure 5b.
Dans un tel cas, les données supplémentaires envoyées par le serveur
S en réponse au deuxième message du terminal TC1 et concernant la ligne polygonale Op indiquent donc les coordonnées du sommet A3, l'identifiant,
T1 , du triangle mémorisé dans les données Ok transmises en réponse au premier message, qui est remplacé lors de l'insertion du sommet A3, par deux triangles selon les données Ok~ι , et l'identifiant du sommet A8 du triangle T1 mémorisé dans les données Ok , qui n'est pas relié, par une arête des triangles T1 et T2 mémorisés dans les données Ok~ι , au point inséré A3. Le triangle (A8, A1 , A12) correspondant à l'identifiant T2 mémorisé dans les données Ok , correspond à l'identifiant T3 dans les données Ok~ι .
Dans certains cas, l'insertion d'un point pour déterminer une ligne polygonale correspondant à une ième itération du processus Prod affecte
deux des triangles décrits par la ligne polygonale correspondant à une itération (i+1 )ième du processus Prod .
Par exemple, en référence à la ligne polygonale réduite représentée en figure 6a, définie par les données de définition Op k_x , le triangle T1 est le triangle (B1 , B4, B3) et le triangle T2 est (B1 , B2, B3).
En référence à la ligne polygonale réduite représentée en figure 6b, définie par les données de définition 0*z| , le triangle T1 est le triangle (B1 , B4,
B5), le triangle T2 est (B5, B2, B3) et le triangle T3 est (B1 , B2, B5).
L'insertion du point B5 par rapport à la ligne polygonale réduite représentée en figure 6a, ne laisse donc ni le triangle (B1 , B4, B3), ni le triangle (B1 , B2, B3) inchangé.
Dans un tel cas, les données supplémentaires envoyées par le serveur S en réponse au deuxième message du terminal TC1 et concernant la ligne polygonale Op_x indiquent les coordonnées du sommet B5, les identifiants T1 , T2 des deux triangles identifiés dans les données Op k_x transmises en réponse au premier message, qui ne correspondent pas à des triangles identifiés dans les données O*zJ , et les identifiants des deux sommets B1 , B2 des triangles T1 et T2 qui ne sont pas reliés, par un segment de la ligne polygonale
, au point inséré B5. Par ailleurs, en référence à la ligne polygonale réduite représentée en figure 7a et formant un triangle, définie par les données de définition Op k_2 , le triangle T1 décrit par cette ligne polygonale est le triangle (C1 , C2, C3).
La ligne polygonale réduite représentée en figure 7b est définie par les données de définition
, et comprend deux sommets supplémentaires C4, C5, qui correspondent à deux sommets supprimés lors de la même kième itération du processus Prod .
Dans un tel cas, où les deux sommets supprimés étaient espacés par un autre sommet dans le polygone OpZι 2 , le triangle T1 = (C1 , C2, C3) est remplacé par les trois triangles décrits par la ligne polygonale réduite
représentée en figure 7b, avec T1 = (C1 , C2, C3), T2 = (C1 , C3, C5) et T3 = (C1. C2. C4).
Dans un tel cas, les données supplémentaires envoyées par le serveur
S en réponse au deuxième message du terminal TC1 et concernant la ligne polygonale Op_2 indiquent l'identifiant T1 du triangle identifié dans les données
Op k_2 transmises en réponse au premier message, qui ne correspond pas à un triangle identifié dans les données OpZ2 , les coordonnées du sommet C4 en association avec les identifiants des deux sommets C1 , C2 du triangle T1 = (C1 , C2, C3) ne sont pas reliés, par un segment de la ligne polygonale
, au point inséré C4, les coordonnées du sommet C5 en association avec les identifiants des deux sommets C1 , C3 du triangle T1 = (C1 , C2, C3) ne sont pas reliés, par un segment de la ligne polygonale Op kZι 2 , au point inséré C5.
Lorsque le terminal client TC1 reçoit les données supplémentaires ainsi déterminées par le serveur S, il reconstruit les données Ok~ι , i= 1 à I0 en
fonction de ces données supplémentaires et des données Ok compris dans l'ensemble de données Mk .
Un tel procédé d'échanges entre un terminal client et un serveur a pour effet de permettre non seulement une réduction du volume de données transmis entre le serveur S et le terminal client TC1 , mais a également pour effet d'accélérer l'étape de reconstruction par le terminal client de la représentation de l'image souhaitée.
Dans le mode de réalisation décrit, le traitement des données numériques pour obtenir une ou plusieurs représentations d'images est exécuté par un module de traitement dans le serveur S. Dans un autre mode de réalisation, ce traitement est effectué par un module de traitement distinct du serveur S, puis les représentations d'image obtenues sont stockées dans la base BDD, pour fourniture ensuite par le serveur S aux terminaux clients TC.
Dans le mode de réalisation décrit ci-dessus, les ensembles de données M0 , M1 ,..., Mk sont stockées dans la base BDD. Dans un mode de réalisation, l'ensemble de données Mk est stockées, puis les données
supplémentaires indiquant les différences entre l'ensemble de données Mk~ι et l'ensemble de données Mk , et plus généralement les différences entre l'ensemble de données Mι~ι et l'ensemble de données M1 , i= 1 à k, sont stockées. L'invention ne crée pas de points, dans l'objet réduit, qui n'existaient pas dans l'objet original. Cela permet d'éviter la transmission au terminal client lors de la reconstruction, de coordonnées de points qui ne sont utilisées que de façon intermédiaire.
L'invention permet ainsi de réduire le volume des données transférées entre un serveur et un terminal client pour permettre l'affichage d'une image vectorielle dans une première représentation. A débit constant de la liaison utilisée pour le transfert, le temps nécessaire pour ce transfert est donc réduit.
Dans un mode de réalisation de l'invention, dans la zone Z1 relative à l'image /1 en 3D (trois dimensions) sont stockées l'ensemble N0 des données de définition de l'image vectorielle /1 permettant de construire l'image vectorielle, pour en permettre la visualisation à l'aide d'un écran d'affichage. L'ensemble N0 des données de définition comporte notamment les données de définition R1 0 , ..., R,0 d'un nombre égal à H d'éléments volumiquesi^ ,..., Rd .
Les données de définition d'un tel élément volumique indiquent les données nécessaires pour afficher une représentation de l'élément volumique.
Dans l'exemple considéré, un élément volumique, par exemple l'élément volumique R1 , dans sa représentation définie par les données de
définition R1 0 , est représenté en figure 9. Il est délimité par un nombre fini de sommets S(x,y,z) en surface de l'élément volumique avec (x,y,z) G A, ensemble de triplets déterminés et en nombre fini, tel que dans le cas décrit, x et y sont des valeurs discrètes régulières et z des valeurs quelconques.
Soit un sommet S(x,y,z) défini par R1 0 qui est relié par un segment respectif à chacun des sommets suivants S1 , S2, S3, S4 s'ils existent, représentés en figure 10 : S1 de coordonnées (x, y-1 , z1 ) G A, S2 de
coordonnées (x+1 , y, z2) G A, S3 de coordonnées (x, y+1 , z3) e A et S4 de coordonnées (x-1 , y, z4) G A.
On nomme points voisins d'un sommet S de l'élément volumique R1 les
sommets S1 , S2, S3, S4 ainsi définis, qui sont donc reliés par un segment au sommet S, et les sommets S5, S6, S7, S8 de l'élément volumique R1 , tels que
chacun de ces sommets S5, S6, S7, S8 est relié par un segment respectif à deux des sommets S1 , S2, S3, S4.
Les quadruplets de sommets (S, S1 , S5, S2), (S, S2, S6, S3), (S, S3, S7, S4) et (S, S4, S8, S1 ) définissent les zones de surfaces respectives s'appuyant sur le sommet S et les points voisins de S.
Dans une phase préalable de construction des représentations de l'image II , le module de traitement 10 du serveur S applique sur chaque élément volumiquei?! ,..., Rn défini par les données ^1 0 , ..., R^ , le processus
Proc2 décrit ci-dessous en référence à l'élément volumique R1 .
Pour chaque sommet S(x,y,z) défini dans les données de définition R1 , ayant des points voisins S1 , S2, S3, S4, S5, S6, S7 et S8 tels que définis ci- dessus, on définit quatre tétraèdres Tel , Te2, Te3, Te4, chacun de ces tétraèdres ayant pour sommets S et trois des points parmi les huit points voisins S1 , S2, S3, S4, S5, S6, S7 et S8. Dans le mode de réalisation considéré, en référence à la figure 11 , le tétraèdre Tel , dont les faces apparaissent hachurées, a pour sommets les points S, S7, S3, S6, le tétraèdre Te2 a pour sommets les points S, S2, S5, S6, le tétraèdre Te3 a pour sommets les points S, S1 , S5, S8 et le tétraèdre Te4 a pour sommets les points S, S4, S7, S8. Ainsi chaque tétraèdre Tei, i=1 à 4, a une première arête commune avec un tétraèdre Tej, i=1 à 4 et j≠i, et une seconde arête commune avec un tétraèdre Tek, k=1 à 4 et k≠i et k≠j.
Puis on calcule le volume Vi de chaque tétraèdre Tei, i=1 à 4, ainsi défini pour le sommet S(x,y,z), et enfin un volume global absolu, égal à la somme ∑s(x,y,z) des valeurs absolues des volumes Vi calculés, associée à
chaque sommet S(x,y,z) du type indiqué plus haut, qui est défini dans les données de définition R1 .
Un volume global nul signifie que les 9 points S, S1 , S2, S3, S4, S5, S6, S7 et S8 sont dans le même plan. Un volume global élevé indique qu'au moins l'un des quatre tétraèdres possède un sommet éloigné de sa base.
On élimine ensuite, parmi les sommets S(x,y,z) définis dans les données de définition^0 , le ou les sommets associés au volume global le plus petit, c'est-à-dire tels que quel soit le sommet S'(x',y',z') défini dans les données de définition ^1 0 , la somme ∑s(x,y,z) des volumes associée à S(x,y,z), est inférieure ou égale à la somme ∑s (x',y',z) des volumes associée S'(x',y',z').
On obtient ainsi une représentation Rl de l'élément volumique R1 comportant un nombre de sommets réduit par rapport à ceux définis dans les données de définition R1 .
Les quatre segments, définis dans les données de définition R1 , qui reliaient un sommet supprimé S à chaque sommet S1 , S2, S3, S4 tel que décrits ci-dessus sont également supprimés dans les données de définition i?/ .
Une fois que le serveur S a appliqué le processus Proc2 ci-dessus, il mémorise l'ensemble N1 des données de définition de la représentation de l'image vectorielle /1 résultante, comportant les données de définition Rl , - --, Rlι des représentations obtenues suite à l'application d'une itération du processus Proc2 sur chacune des iiéléments volumiques.
Ce processus Proc2 est réitéré k' fois par le serveur S, définissant k' représentations correspondantes de l'image vectorielle /1 résultante, définies respectivement par les ensembles de données N1 ,..., Nk ' . Chaque ensemble
de données N1 , i=1 à k', comporte les données de définition^ , j= 1 à I1 , des
représentations obtenues suite à l'application d'une ième itération du processus Proc2 sur les H éléments volumiques.
A titre d'illustration, les représentations correspondant aux données de définition
et R1 figurent respectivement sur les figures 13 et 14, à partir de la
représentation définie par les données de définition R° de l'élément volumique R1 et représentée en figure 9.
Dans un autre mode de réalisation de l'invention, en référence à la figure 12, on choisit différemment, pour la mise en œuvre du processus Proc2, les tétraèdres Tel , Te2, Te3, Te4 : le tétraèdre Tel (hachuré) a pour sommets les points S, S3, S4, S7, le tétraèdre Te2 a pour sommets les points S, S4, S1 , S8, le tétraèdre Te3 a pour sommets les points S, S1 , S2, S5 et le tétraèdre Te4 a pour sommets les points S, S2, S3, S6.
Ainsi chaque tétraèdre Tei, i=1 à 4, a une première arête commune avec un tétraèdre Tej, i=1 à 4 et j≠i, et une seconde arête commune avec un tétraèdre Tek, k=1 à 4 et k≠i et k≠j.
Comme on le voit, plus le nombre d'itérations du processus Proc2 est grand, moins la représentation des éléments volumiques finalement obtenue comporte de sommets et donc plus le volume des données de définition des éléments volumiques, et donc de l'image 3D correspondante, est faible.
Une fois que cette phase préalable de construction des représentations de l'image ^l est réalisée par le serveur S et que les données de définition des représentations obtenues sont stockées dans la base de données BDD, ces données peuvent être transmises par le serveur S à des terminaux clients TC1..., TCn.
En référence à la figure 1 , lorsque l'utilisateur du terminal client TC1 commande la visualisation de l'image /1 par l'intermédiaire du clavier 6 et/ou de la souris 5, le terminal TC1 envoie, via le réseau 2, un premier message à destination du serveur S, requérant la transmission à destination du terminal TC1 , des données de l'image II .
En réponse à ce premier message, le serveur S envoie l'ensemble Nk' des données de définition de la représentation de l'image vectorielle ^l correspondant à la k'ième itération du processus. Cet ensemble est celui, parmi les k'+1 représentations, N0 , N1 ,..., Nk de l'image/1 , qui comporte le volume de données le plus faible, puisqu'il contient le plus faible nombre de sommets. L'ensemble Nk des données de définition de la représentation de
l'image vectorielle II , comportant les données de définition R*' , ..., R^ correspondant au résultat de la k'ième itération du processus Proc2 sur les éléments volumiques R1 ,..., Rn , est reçu par le terminal TC1 , puis exploité par le module de contrôle 8, qui construit l'image vectorielle à afficher en fonction de l'ensemble Nk des données de définition reçu, et qui fournit les éléments nécessaires à l'écran 7 pour permettre l'affichage de cette image.
Les données reçues sont en outre mémorisées dans la mémoire 4.
Lorsque l'utilisateur du terminal client TC1 commande, par l'intermédiaire du clavier 6 et/ou de la souris 5, un zoom d'indice positif z sur une portion de l'image en cours d'affichage sur l'écran 7, le module de contrôle 8 détermine en fonction de la portion zoomée, quels sont les objets vectoriels concernés par ce zoom, puis il envoie un deuxième message au serveur S, indiquant les identifiants de ces objets, parmi lesquels figurent dans un mode de réalisation, l'identifiant pi, P2...pq des q éléments volumiques RPι ,..., Rp , concernés par le zoom et indiquant en outre l'indice z du zoom commandé par le client.
En réponse à ce deuxième message, le serveur S, en fonction de l'indice z de zoom, détermine quel est le numéro de l'itération du processus Proc2 à considérer, entre 0 et k'-1. Dans le cas où le numéro de l'itération à considérer est k'-1 (par exemple z = +1 ), le serveur S détermine, en fonction de l'identifiant des éléments volumiques concernés et de l'indice z du zoom transmis par le client TC1 , puis envoie au terminal TC1 , les données nécessaires pour qu'à partir de l'ensemble de données Nk< envoyé en réponse au premier message et de ces données supplémentaires déterminées, le terminal TC1 soit en mesure de reconstruire la portion d'image zoomée, correspondant à certains des éléments volumiques de l'ensemble de données A^"1.
Ces données supplémentaires indiquent donc les différences entre les données R*'~ι et Rf , pour i= pi, P2...pq. Par exemple, pour l'élément volumique concerné R1 par le zoom, ces données supplémentaires indiquent les coordonnées des sommets
supplémentaires définis par les données de définition i?f comparés aux sommets définis par les données de définition R*'~ι (c'est-à-dire les sommets supprimés par la k'ième itération du processus Proc2).
Lorsque le terminal client TC1 reçoit les données supplémentaires ainsi déterminées par le serveur S, il reconstruit les données R*''1 , i= pi à pq en fonction de ces données supplémentaires et des données R* compris dans l'ensemble de données Nk< .
Dans un mode de réalisation, les étapes du processus Prod et/ou du Proc2 sont réalisées suite à l'exécution par des moyens de calcul du module de traitement 10, d'instructions d'un programme informatique.
Un tel procédé d'échanges entre un terminal client et un serveur a pour effet de permettre non seulement une réduction du volume de données transmis entre le serveur S et le terminal client TC1 , mais également a pour effet d'accélérer l'étape de reconstruction par le terminal client de la représentation de l'image souhaitée.
Dans les modes de réalisation décrits ci-dessus, les images 2D, respectivement 3D étaient associées à des représentations 2D, respectivement 3D, de points et de segments reliant les points.
Considérons à présent une image bitmap 2D, par exemple un tableau de KxL pixels PiJ, avec i entier = 1 à K et j entier = 1 à L. A chaque pixel PiJ est associée une indication de couleur, par exemple un niveau de gris naj. Dans un autre mode de réalisation de l'invention, on définit cette image 2D, dans une représentation, par un ensemble 3D de sommets S(i, j, Z g), où (i, j, Z jj) sont les coordonnées des points S(i, j, Z jj), avec i entier = 1 à K et j entier = 1 à L, et z ij = riGij , le niveau de gris associé au pixel PiJ.
Puis on applique, sur la représentation 3D ainsi définie, une itération ou plusieurs itérations d'un processus similaire au processus Proc2 décrit plus haut, pour obtenir une ou plusieurs représentations 3D composée de sous- ensembles respectifs de l'ensemble 3D de points S(i, j, Z jj) initiaux. Des échanges entre des terminaux et un serveur peuvent être mis en œuvre comme indiqué précédemment pour fournir depuis un serveur et aux terminaux, les éléments de définition d'une première représentation, puis
ultérieurement des éléments permettant aux terminaux de construire des représentations 3D plus détaillées que la première représentation 3D précédemment transmise.
A partir d'une représentation 3D transmise ou construite par un terminal et définie par un sous-ensemble de l'ensemble 3D des KxL points S(i, j, z ij) initiaux, ce sous-ensemble étant constitué des pxr points S(i, j, z g) avec i =H , ...ip , j= ji, ..,jr ,une image 2D peut être déterminée par le terminal, comprenant les pixels PiJ, avec i =H , ...ip , j= ji, ..,jr , associés chacun aux niveau de gris Zy. Dans cette image 2D déterminée par le terminal, des niveaux de gris respectifs sont déterminés par le terminal pour les pixels Pi'j' tels que Pi'j' € { PiJ, avec i =H , ...ip , j= ji, ..,jr }, par exemple à l'aide d'une technique d'interpolation de certains au moins des niveaux de gris associés aux pixels PiJ, avec i =h, ...iP , j= ji, ..,jr.
Cette représentation 3D d'une image 2D a été décrite ci-dessus avec une coordonnée z indiquant un niveau de gris. D'autres applications sont envisageables, par exemple où z est égale à une fonction des valeurs de luminance et chrominances associées au pixel, ou encore z indique une valeur associée au pixel, par exemple une température etc.