Brevet FR2919748A1 — publié le 20090206

PROCÉDÉ ET SYSTÈME ASSOCIÉ DE TRANSFORMÉE EN ONDELETTES AU FIL DE L'EAU POUR DES DONNÉES MULTIDIMENSIONNELLES MASSIVES L'invention concerne le domaine du traitement des images bi ou tri-dimensionnelles et plus particulièrement les transformées en ondelettes d'images multidimensionnelles. Les nouveaux procédés d'acquisition d'images volumiques 3D peuvent générer des PetaOctets (1024x1024 GigaOctets) de données brutes numériques. Ces données volumiques peuvent être de différentes natures comme, par exemple, des cubes sismiques, des images médicales (coupes de scanners...)...Une double problématique se pose au regard de cette quantité de données : d'une part, le stockage est coûteux et d'autre part, le temps de traitement est excessif, par exemple pour manipuler, visualiser, transmettre ou compresser ces données avec ou sans pertes. Cette double problématique existe également au regard de l'acquisition et exploitation d'images surfaciques 2D, par exemple des coupes de scanner haute définition. Le développement spectaculaire des systèmes d'acquisition de données sismiques 3D, comme par exemple le système développé à l'Ifremer (Geoscience 336 û 2004, pp. 579-585), a permis l'acquisition d'objets 3D de plus en plus détaillés. L'exemple le plus parlant est la campagne Hydratech faite au large de la Norvège, qui a permis l'acquisition d'objets 3D de très grandes résolutions. Par exemple, l'objet sismique 3D de la figure 1 a nécessité plusieurs jours de scannage et a produit un fichier qui pèse 150 gigas octets. Le problème se pose lorsqu'il s'agit de manipuler, traiter et visualiser ces très grands volumes de données. En effet, la visualisation de l'objet ou sa compression nécessite son chargement en totalité dans la mémoire vive avant traitement ce qui n'est pas possible dans les solutions actuelles, car sa taille énorme requerrait plusieurs centaines de gigas octets de mémoire vive !! Un premier but de l'invention est de proposer une solution permettant le traitement de ces objets multidimensionnels de très grandes tailles en utilisant un minimum de ressources (espace disque et mémoire vive). Un autre but de l'invention est d'optimiser le temps de calcul de tels traitements au regard des ressources utilisées. Il est connu d'utiliser l'analyse multirésolution pour la décomposition d'objets complexes afin de faciliter la navigation dans ses données, l'affichage, la transmission, la compression, ... L'idée principale de l'analyse multirésolution est de décomposer (au moyen d'un filtrage) un objet 2D ou 3D de départ Co en deux ensembles : un objet CI plus grossier de plus basse résolution et de taille plus petite (voir figure 2) et un ensemble de détails hautes fréquences DI. En répétant ce processus, on arrive à obtenir une représentation multirésolution de l'objet original (différentes versions CI, C2, C3...) selon le niveau de détails souhaité (voir figures 3 et 4). A la fin de l'étape de l'analyse, on obtient un objet basse résolution CN et un ensemble de détails DI, D2 . DN. L'étape de synthèse subséquente à la représentation multirésolution consiste à reconstruire, au moyen d'un filtrage, l'objet en partant de sa version la plus grossière CN et en ajoutant à chaque fois l'ensemble de détails correspondant. A la fin de l'étape de synthèse, l'objet de départ Co est récupéré. La figure 1 4(a) illustre le principe de l'analyse multirésolution par décomposition et la figure 4(b) illustre le principe de la synthèse. La transformée en ondelettes est largement utilisée dans le domaine du traitement du signal, notamment compression, et s'applique particulièrement bien à l'analyse multirésolution. Pour la mise en oeuvre logicielle ou matérielle de cette transformée, il est courant d'utiliser les transformées par bancs de filtres ou les transformées par schéma lifting...DTD: L'art antérieur propose déjà de découper le volume 3D en plusieurs sous-blocs et les traiter indépendamment les uns des autres (Journal of VLSI Signal Processing, 41, pp. 209-223, 2005). Ce document décrit notamment un procédé de conversion de données brutes numériques multidimensionnelles correspondant à des points composant une image 2D ou 3D, le procédé comprenant une étape de dimensionnement d'une fenêtre de parcours de l'image, le parcours de ladite image et pour chaque sous-bloc parcouru le calcul de la transformée en ondelettes desdites données brutes du sous-bloc et enfin une étape de sauvegarde. La technique exposée revient à considérer l'image 3D comme étant la concaténation de plusieurs petits cubes de taille mémoire admissible pour le traitement. Ensuite, le calcul de la transformée en ondelettes est effectué sur chaque sous-cube comme étant un objet à part entière. Une fois le calcul de tous les sous cubes effectué, une étape de fusion est effectuée pour obtenir le résultat final. Ce procédé est schématisé par la figure 5. L'objet 3D de départ passe par une étape de fragmentation pour générer les différents sous cubes. Sur chacun de ces sous- cubes, on applique la transformée en ondelettes. Enfin, on applique une étape de fusion. Du fait de la fragmentation et du traitement sous-bloc par sous-bloc, la mémoire requise pour le traitement est réduite. Néanmoins, cette solution présente plusieurs inconvénients. D'une part, l'étape préliminaire de fragmentation réalise un découpage de l'image selon des sous-multiples des dimensions de l'image. Il en résulte le besoin de connaître a priori la taille totale de l'image afin d'effectuer cette étape. Une telle solution ne peut donc pas s'appliquer à une image en cours d'acquisition. Un autre but de l'invention est de permettre le traitement d'images de grandes dimensions au fur et à mesure de leur acquisition. On note également que la détermination de la taille totale de l'image requiert soit le chargement intégral de l'image, soit au moins la lecture de l'ensemble des données de l'image. D'autre part, le traitement des voxels aux bords des blocs ne dépend pas des voxels dans les blocs adjacents mais plutôt de voxels virtuels ajoutés par symétrie. Cela engendre des effets de blocs sur le résultat final, similaires à ceux obtenus avec JPEG en imagerie 2D. Un autre but de l'invention est d'éliminer tout artefact de type "effet de bloc". Egalement, lit y a lieu d'ajouter au temps de traitement, le temps associé à deux autres étapes : une étape de fragmentation et une étape de fusion qui nécessitent des accès au disque dur, augmentant notablement le temps de calcul eu égard au volume de données des images 3D traitées. Le temps de traitement en est alors accru. Un but de l'invention est de diminuer le temps de traitement pour la conversion des données de l'image. Encore d'autre part, un espace disque supplémentaire est nécessaire pour sauvegarder les différents blocs et les calculs effectués sur ceux-ci. Cet espace disque est égal à la taille de l'objet. Par exemple pour l'objet de la figure 1, il faut compter 150 gigas octets d'espace de stockage supplémentaire sur le disque dur. Un autre but de l'invention est alors de diminuer la consommation d'espace mémoire lors du traitement des données. Notamment, la mémoire vive disponible est généralement limitée. Il existe alors un besoin de permettre le traitement d'images multidimensionnelles de grande taille en tenant compte de l'espace mémoire vive disponible. Les mêmes limitations sont présentes pour les objets 2D de grandes dimensions et les solutions par sous-blocs similaires à celle exposée précédemment. On connaît également des procédés de traitement d'image appliqués à l'acquisition d'images satellitaires et à la vidéo. Les méthodes utilisées pour le traitement vidéo considèrent un axe de filtrage privilégié, l'axe temporel, selon lequel est effectué un filtrage glissant par fenêtre, les deux autres axes étant traités par une transformée (par exemple en ondelettes) 2D conventionnelle. Dans cette solution, un chargement complet des images ou trames est effectué en mémoire à chaque instant de la vidéo, par exemple des images de taille 1920x1080 pixels si l'on considère le format vidéo HD 1080i ou 1080p. Ce chargement complet des images requiert des ressources importantes en mémoire vive dont l'invention vise à en limiter la taille. En effet, une coupe 2D d'un cube 3D (par exemple figure 1) peut avoir une très grande résolution, supérieure à 8000x8000 pixels, ce qui rend délicate l'application d'une approche vidéo (2D+t) car elle nécessiterait le stockage en mémoire vive de plusieurs coupes 2D de très grande résolution, ce qui est difficile voire impossible pour des systèmes actuels. En outre, le fait de privilégier un axe pour la conversion entraîne des complications dans l'exploitation de l'image convertie. Par exemple pour une image 3D dont une direction (O,z) de conversion est privilégiée, la visualisation d'une coupe selon le plan (O,x,y) nécessite la synthèse de toute l'image 3D. Il y a donc un besoin à ne pas privilégier un axe car l'ensemble des dimensions doit être considéré de façon équivalente. Un autre but de l'invention est alors de proposer une solution de conversion d'images de grandes tailles ne favorisant pas une dimension particulière de l'image multidimensionnelle. Dans le cas de l'acquisition satellitaire, le satellite effectue une rotation autour de la terre et une acquisition simultanée par un capteur monodimensionnel. L'image 2D acquise est ainsi infinie dans la direction de déplacement du satellite. Au même titre que la vidéo, les procédés utilisés réalisent alors une conversion en privilégiant l'axe de déplacement et en chargeant l'intégralité de l'image 1 D acquise à un instant donné par le capteur. Les mêmes problématiques que pour la conversion vidéo s'appliquent. Au moins un des buts indiqués précédemment est atteint par la présente invention par la détermination d'une fenêtre de parcours de l'image en cours d'acquisition en fonction de la taille de la mémoire vive disponible indépendamment de la connaissance de la taille totale de l'image et par l'application d'une transformée en ondelettes multidimensionnelle sur le sous-bloc défini par la fenêtre à chaque emplacement de son parcours. La fenêtre parcourt ensuite l'image au fur et à meure de son acquisition. On peut ainsi procéder au calcul de la transformée sans connaissance a priori de l'image finale et, grâce à l'approche par sous-blocs, au traitement d'images de grande dimension. A cet effet, l'invention a tout d'abord pour objet un procédé de conversion de données brutes numériques multidimensionnelles correspondant à des points composant une image 2D ou 3D de taille inconnue, le procédé comprenant : - une étape de dimensionnement d'une fenêtre multidimensionnelle pour le parcours de ladite image, ledit dimensionnement étant fonction de la taille d'une mémoire tampon ; - une étape de parcours de ladite image comprenant le déplacement de ladite fenêtre dans l'image selon les axes (dimensionnels) de l'image ; - à chaque position de ladite fenêtre dans l'image : o une étape d'acquisition et de chargement, dans ladite 10 mémoire tampon, des données brutes (Xk) de la partie de ladite image définie par la fenêtre ; o une étape de conversion comprenant une étape de calcul de la transformée en ondelettes multidimensionnelle de ladite partie chargée à l'aide d'au moins un filtre à support 15 compact pour générer des coefficients basse fréquence (Sk) et haute fréquence (dk) ; o une étape de sauvegarde desdits coefficients générés. On entend par "taille inconnue" le fait que la taille de l'image 20 selon les divers axes de celle-ci est soit inconnue du fait que le traitement de conversion est effectué au fur et à mesure ("au fil de l'eau") de l'acquisition de données sans connaître la fin de cette acquisition, soit déterminable mais non calculée et non utilisée pour la procédé de conversion (par exemple si les 25 données sont déjà stockées sur un disque dur, il est possible de déterminer les dimensions de l'image résultante mais l'invention ne requiert pas une telle connaissance). Les données brutes numériques (notées xk pour le point k) sont des données représentant une valeur numérique de mesure 30 physique, par exemple la luminance en un point (pixel, voxel) par échographie, sondage, scannage, rayon X, .... Elles sont généralement acquises selon trois axes orthogonaux. La transformée en ondelettes est effectuée à partir des données brutes en mémoire vive. La fenêtre utilisée est régulière, de type fenêtre 2D dans le cas d'images surfaciques et de type cube ou parallélépipède dans le cas d'une image volumique. La "partie définie par la fenêtre regroupe l'ensemble des points englobés/enfermés par les contours de la fenêtre apposée sur l'image. Un "filtre à support compact" est bien connu de l'homme de l'art. Un filtre à support compact est tel que les coefficients du filtre sont nuls en dehors d'une certaine fenêtre (filtre de largeur finie) qui correspond au support du filtre . En d'autres termes le filtre est à réponse impulsionnelle finie. L'utilisation de filtres à support compact permet d'effectuer des transformées en ondelettes en utilisant un nombre limité de données brutes d'origine, et donc d'effectuer de telles transformées sur des sous-blocs de l'image finale et non l'intégralité de l'image. Selon l'invention, le dimensionnement de la fenêtre de parcours indépendamment de la taille de l'image et le parcours de l'image par cette fenêtre permettent de traiter l'image au fil de son acquisition sans connaissance à priori de l'image dans son intégralité (autres points et/ou taille finale). Pour simplifier les calculs et donc diminuer les ressource et le temps nécessaire, il est prévu que lesdits filtres sont des filtres 25 séparables monodimensionnels. En particulier, ladite étape de calcul comprend : - successivement selon chacun des axes dimensionnels de ladite partie chargée, une étape de calcul de la transformée 30 monodimensionnelle en ondelettes séparables de chacune des lignes s'étendant selon ledit axe, ladite étape de calcul de transformée de chacune des lignes comprenant : o pour chaque point (k) d'une ligne de ladite partie chargée, le calcul d'un coefficient (sk, dk) par transformée en ondelettes séparables à partir des données stockées en mémoire tampon. Ainsi, on effectue une décomposition de la conversion en un parcours ligne par ligne selon successivement les deux ou trois dimensions de l'image et par le calcul des coefficients locaux de transformée en ondelettes séparables. Cette approche permet de calculer les coefficients finaux de conversion par multipasse (selon chacune des dimensions) en utilisant des filtres plus simples et ainsi de simplifier considérablement les calculs qui en découlent. Dans un rnode de réalisation, ladite transformée en ondelettes monodimensionnelle est une transformée par banc de filtres : n Sk = hox2k + hi (x2ki + x2k+i n dk = gox2k+l + gi (x2k+l -i + x2k+l+i ) où sk et dk sont les coefficients (sk : basse fréquence ; dk : détails haute fréquence) de la transformée calculés respectivement aux points 2k et 2k+ 1 le long de la ligne parcourue, et {h;} et {gi} sont respectivement les coefficients de filtres symétriques passe-bas et passe-haut. Selon une alternative, ladite transformée en ondelettes monodimensionnelle est une transformée par schéma lifting à 2N pas : d = x2k+l o S = x2k k30 L,,+ ii2 o dn-1 _ E a2n+I/sn-1 + st-1) `,./n? 1 d k+i-i k+i v 1=1 L,,, i 2 sn = s~'-' + a2n(dn + dn ) y n k k-i k-1+1 i=1 sont les coefficients de la transformée calculés respectivement aux points 2k et 2k+1 le long de la ligne 5 parcourue, et {a'`} sont les coefficients des opérateurs de prédiction et de mise à jour du schéma lifting. Il est également envisagé que lesdits filtres sont des filtres multidimensionnels non séparables, auquel cas le calcul des 10 coefficients de conversion est réalisé en une seule passe mais nécessite des ressources de calcul plus puissantes. De par l'utilisation des filtres à support compact, le calcul des coefficients est dit "local". Notamment, l'étape de calcul de la 15 transformée en ondelettes multidimensionnelle peut comprendre le calcul en un point (k) d'un desdits coefficients (sk, dk) de transformée en ondelettes et la substitution, en mémoire tampon, de la donnée associée au point (k) par ledit coefficient (sk, dk) calculé. 20 Cette substitution permet de diminuer la taille de mémoire nécessaire au stockage des coefficients de transformée. En effet, on peut effectuer cette substitution dès que la donnée à écraser n'est plus utile pour le calcul de coefficients ultérieurs, ce qui est le cas de par l'utilisation de filtres à support compact. 25 Cette approche est compatible aussi bien avec des filtres non séparables qu'avec des filtres séparables pour lesquels les passes multiples selon les différentes dimensions de l'image/de la partie chargée nécessitent le remplacement des anciennes données par les coefficients (intermédiaires) calculés pour chaque 30 nouvelle passe. où s`V et dN k k Afin de n'effectuer la substitution que lorsque la donnée à écraser n'est plus utile, il est prévu, avant ladite étape de substitution, que ledit coefficient calculé (sk, dk) est stocké temporairement dans une mémoire temporaire (Temp). Notamment, lorsque la transformation en ondelettes met en oeuvre des filtres séparables monodimensionnels de largeur maximale (M), il est envisagé que ladite mémoire temporaire (Temp) est un registre à décalage de taille au moins égale à LM/2], où H J est la fonction partie entière inférieure. Ainsi, le décalage introduit par le registre permet d'attendre que le filtre de transformée en ondelettes ait "glissé" d'un nombre suffisant de points pour permettre l'écrasement par substitution d'une donnée (d'un point) par un coefficient calculé et stocké dans le registre. Du fait de la nature monodimensionnelle du filtre, cette mémoire temporaire est de dimension réduite. En alternative, lorsque la transformation en ondelettes met en oeuvre des filtres séparables monodimensionnels de largeur maximale (M), il est également envisagé que la taille de ladite mémoire temporaire (Temp) est au moins égale à la valeur maximale des dimensions de ladite partie chargée en mémoire tampon et ladite substitution comprend la copie de ladite mémoire temporaire dans ladite mémoire tampon lorsque tous les coefficients (sk, dk) de ladite ligne parcourue sont calculés et stockés dans la rnémoire temporaire (Temp). Ainsi, lors du calcul de la transformée par ondelettes ligne par ligne selon les deux ou trois dimensions de la zone chargée, l'on stocke les coefficients de l'ensemble d'une ligne avant d'effectuer la substitution de la ligne entière par tous les coefficients calculés. En effet, les données ne sont plus utiles une fois la ligne entièrement calculée puisque les filtres sont monodimensionnels (les données d'une même ligne s'auto-suffisent pour le calcul des coefficients). Une mémoire temporaire plus grande pour stocker temporairement des données selon plusieurs dimensions peut être prévue dans le cas de filtres non séparables. Dans un mode de réalisation, le procédé comprend, une étape d'ordonnancement desdits coefficients (sk, dk) pour séparer les coefficients basses fréquences (sk) et hautes fréquences (dk). Cet ordonnancernent est effectué de sorte à conserver les positions relatives des coefficients dans l'image. Il peut être effectué : - une fois que lesdits coefficients (sk, dk) ont été calculés pour la totalité de la partie chargée et ont été substitués dans la mémoire tampon, ou - dans le cas de filtres séparables monodimensionnels, à la fin du calcul de transformée d'une ligne entière parcourue ou à la fin du calcul des transformées selon tout un axe dimensionnel de l'image. Notamment, les coefficients sont ensuite sauvegardés séparément dans un fichier numérique relatif aux basses fréquences (coefficients sk) et un ou plusieurs fichiers numériques relatifs aux détails haute fréquence (coefficients dk). Il est ainsi possible, à partir du seul fichier des coefficients basse fréquence, de synthétiser l'image finale avec une résolution plus basse. Dans l'approche multi-résolution permettant de travailler par la suite à différents niveaux de résolution de l'image, il est prévu que le procédé comprend, pour chaque position de ladite fenêtre, une pluralité d'itérations de ladite étape de conversion, ladite étape de calcul de transformée en ondelettes d'une itération étant effectuée sur les coefficients (sk, dk) générés lors de l'itération antérieure. Il est couramment pratiqué de une à cinq itérations. Le nombre d'itérations peut cependant être supérieur selon la résolution initiale de l'image. Notamment, lorsque les coefficients sont substitués dans la mémoire vive, l'étape de calcul de la transformée en ondelettes reste inchangée puisqu'elle s'applique non plus aux anciennes valeurs stockées en mémoire vive mais aux coefficients nouvellement calculés et stockés dans la mémoire vive. Selon les dimensions choisies de la fenêtre, ledit parcours comprend le déplacement de ladite fenêtre, selon successivement chacun des axes de l'image, d'un pas égal à la dimension de ladite fenêtre selon l'axe de déplacement. Il est également envisagé que ledit dimensionnement de la fenêtre est également fonction de la longueur des filtres utilisés pour la transformation en ondelettes. Afin d'éviter les effets de bords connus dans les solutions de l'art antérieur du type fragmentation en sous-blocs, il est prévu que lors dudit chargement, on charge également des données brutes (xk) associées à des points externes à la fenêtre et voisins des bordures de ladite fenêtre, de sorte à effectuer ladite transformée en ondelettes des points internes au voisinage desdites bordures en tenant compte desdites données des points voisins externes. Les points voisins choisis sont ceux qui entrent dans le calcul des coefficients au niveau des points de la partie chargée au voisinage des frontières de la fenêtre et dépendent de la largeur des filtres utilisés. Lorsque des filtres séparables monodimensionnels de largeur 2p+1 sont utilisés, on charge "p" pixels/voxels en plus par ligne à parcourir de chaque côté de la fenêtre. Les points "internes" sont les points englobés/enfermés dans les contours de la fenêtre considérée, au contraire des points "externes". Afin d'accroître la vitesse de conversion de l'image entière ou de s'adapter à la vitesse d'acquisition des données, il est envisagé de paralléliser lesdites étapes de chargement et de conversion pour au moins deux fenêtres distinctes le long dudit parcours de l'image. L'invention a également pour objet un système pour la mise en oeuvre du procédé. Le système pour la conversion de données brutes numériques (xk) multidimensionnelles correspondant à des points (k) composant une image 2D ou 3D de taille inconnue, comprend : - des moyens de dimensionnement d'une fenêtre multidimensionnelle pour le parcours de ladite image, ledit dimensionnement étant fonction de la taille d'une mémoire tampon ; - des moyens agencés pour parcourir ladite image par déplacement de ladite fenêtre dans l'image selon les axes de l'image ; - des moyens d'acquisition et de chargement agencés pour acquérir et charger, à chaque position de ladite fenêtre dans l'image, dans ladite mémoire tampon, des données brutes (xk) de la partie de ladite image définie par la fenêtre ; - des moyens de conversion agencés pour calculer la transformée en ondelettes multidimensionnelle de ladite partie chargée à l'aide d'au moins un filtre à support compact pour générer des coefficients basse fréquence (sk) et haute fréquence (dk) ; - des moyens de sauvegarde aptes à sauvegarder en mémoire lesdits coefficients générés. L'invention a également pour objet un procédé de synthèse d'un plan dans une image 3D convertie par transformée en ondelettes comme présenté ci-dessus, comprenant une étape de détermination de l'ensemble desdites parties de l'image intersectées par ledit plan, une étape de transformée inverse en ondelettes des coefficients desdites parties déterminées et une étape de synthèse dudit plan à partir des données calculées lors de l'étape de transformée inverse. Notamment, l'étape de transformée inverse est réitérée selon le niveau de résolution souhaité. Egalement, il peut être prévu une étape de transmission des coefficients desdites parties depuis un serveur vers un calculateur, le calculateur effectuant ladite étape de transformée inverse au fur et à mesure de la réception desdites parties. L'invention s'applique notamment au traitement (transformée en ondelettes) au fil de l'acquisition d'images médicales par scanner, d'images de prospection terrestre, par exemple des images sismiques, ou d'autres données massives ne permettant pas d'être stockées en totalité en mémoire ou encore en cours d'acquisition (donc inconnues dans leur totalité à l'instant t). L'invention sera mieux comprise à l'aide de la description détaillée ci-dessous et des figures annexées dans lesquelles : - Fig. 1 représente deux vues (Fig. la et 1 b) d'un exemple de visualisation d'un cube sismique 3D ; - Fig. 2 illustre une étape du processus de l'analyse multirésolution pour l'objet appelé "Mercury" selon deux vues (Fig. 2a et Fig. 2b) ; - Fig. 3 illustre l'objet "Mercury" à différents niveaux de simplification/décomposition (Fig. 3a à 3d); - Fig. 4 illustre le principe de l'analyse (Fig. 4a) et de la synthèse (Fig. 4b) multirésolution ; -Fig. 5 décrit schématiquement une solution connue pour le traitement des données 3D massives ; - Fig. 6 illustre la forme des bancs de filtres considérés (filtre passe bas en Fig. 6a et filtre passe haut en Fig. 6b); - Fig. 7 illustre un exemple de transformée en ondelettes par schéma lifting à 2 pas ; - Fig. 8 illustre les coefficients de l'opérateur de prédiction ou de mise à jour du nième pas lifting pour le schéma de transformée de la Fig. 7 ; - Fig. 9 représente schématiquement les différentes étapes de la méthode proposée selon la présente invention ; -Fig. 10 illustre différentes méthodes (Fig. 10a à 10c) pour la 20 gestion des bords ; - Fig. 11 illustre la gestion des bords avec l'approche classique (b) et avec l'approche adoptée dans la présente invention (c) ; - Fig. 12 montre l'évolution des mémoires tampon et supplémentaire utilisées au fur et à mesure de l'avancement du 25 traitement ; - Fig. 13 illustre l'évolution de R (ratio taille à charger en mémoire sur taille mémoire utilisée en raison de la gestion des bords) et Sr (taille des données à charger en mémoire) en fonction de la taille x de la zone à traiter pour le filtre 9/7 ; - Fig. 14 représente l'organigramme d'un exemple de réalisation de l'invention ; - Fig. 15 montre l'évolution de la zone à filtrer respectivement selon l'axe x (Fig. 15a), y (Fig. 15b) et z (Fig. 15c) au cours de l'execution de l'algorithme ; - Fig. 16 est un histogramme de la mémoire RAM utilisée pour le traitement de différents objets ; et - Fig. 17 est un graphique représentant le temps de calcul en fonction de la taine de l'objet 3D. Rappel sur les transformées en ondelettes Pour le calcul de la transformée en ondelettes, on utilise les transformées les plus courantes dans le domaine de la compression d'images et de vidéos et qui se divisent en deux grandes familles : les transformées par bancs de filtres et les transformées par schéma lifting. Dans le cas des transformées par bancs de filtres, on utilise les filtres les plus courants qui sont le filtre biorthogonal 9/7 Daubechies et le filtre 5/3 (les deux nombres indiquent respectivement la longueur Lh du filtre passe bas et la longueur Lg dufiltre passe haut) et le filtre de Haar mais la méthode reste valide pour tous les filtres à support compact. La figure 6 montre la forme des bancs de filtres considérés. Les filtres passe haut (figure 6b û coefficients {h1}) et passe bas (figure 6a û coefficients {g;}) sont symétriques de longueurs impaires. Les formules qui permettent le calcul des coefficients basses fréquences notés Sk et les coefficients d'ondelettes hautes 30 fréquences dk du signal d'entrée Xk sont données par: ,, fk =hox,k+ h,(x2k-i+x2k+i) (1a) dk = go x2k+l + gi (x2k+l -i + x2k+l+, ) (lb) Pour l'application de ces formules, les points Xk du signal d'entrée sont tels que Xk et xk+1 sont des points voisins le long d'une même dimension. La transformée par schéma lifting est une transformée en ondelettes de deuxième génération introduite par Sweldens en 1996 et qui consiste à séparer le signal en deux canaux (transformée polyphase) et d'appliquer ensuite des opérations de prédictions et de mise à jour pour obtenir la basse fréquence (BF) et la haute fréquence (HF) du signal. La figure 7 montre un étage lifting composé par deux pas lifting : P représentant l'opération de prédiction et U celle de mise à jour (U=update). Notons (LI, L2, ..., LN) un schéma lifting à N pas (N/2 étages) où L2n+1 désigne le nombre de coefficients du néme opérateur de prédiction et L2n désigne le nombre de coefficients du néme opérateur de mise à jour. L'opérateur de chaque pas lifting est symétrique de longueur paire. La figure 8 montre la forme des coefficients de l'opérateur de prédiction ou de mise à jour. Les formules qui calculent le coefficient d'ondelettes d'indice k du néme étage lifting (noté s"et d") du signal d'entrée Xk sont : d0 = x,k+l o S = x,k (2a) (2b) dp = d~ 1 a2p+l(sp 1 k+1-i + s +i1) Vp 1 (2c) dp + dp k-i ) k-l+i Vp >_ 1 (2d) p Le filtre transverse 5/3 peut être implémenté à l'aide d'un schéma lifting (2,2) et le filtre 9/7 par le schéma lifting à deux 30 étages (4 pas lifting) (2,2,2,2). Le rendement et le temps de calcul de la méthode dépendent énormément du type et de la taille du filtre utilisé. Le procédé de conversion selon l'invention va maintenant être décrit plus en détail en référence tout d'abord à la figure 9. Notamment, l'exemple présenté ci-après s'appuie sur l'utilisation de transformées en ondelettes séparables. Le procédé comprend les différentes étapes suivantes : - le signal d'entrée est pour cet exemple un objet 3D volumique. La première étape 10 consiste en l'acquisition des données pour le chargement de celles-ci dans une mémoire buffer 20. Le traitement ultérieur local (le calcul de la transformée en ondelettes) sera appliqué sur ces données chargées. Lors de l'étape d'acquisition, sont définies la partie à charger et la charge dans le buffer 20. Le rendement de la méthode est fortement lié à la manière d'acquérir les données. Cette acquisition peut consister en la lecture d'un fichier déjà existant en mémoire ou l'acquisition concrète de nouvelles mesures par un capteur, type scanner, au fur et à mesure du traitement. L'acquisition réalisée est dite régulière en ce sens qu'elle repose sur un échantillonnage régulier, typiquement des lignes régulièrement espacées selon les trois dimensions de l'image (repère orthogonal), les points étant préférablement alignés les uns avec les autres. Les données d'acquisition sont la luminance Xk en un point k de l'image. La valeur k est un indice incrémenté au fur et à mesure de l'acquisition de telle sorte que deux points voisins ont des indices voisins. Le point k peut également être exprimé selon ses coordonnées dans le repère orthogonal : Xk,Yk,Zk Le buffer 20 est la mémoire réservée par l'utilisateur pour le calcul de la transformée en ondelettes. La taille de cette mémoire définit la taille de la zone de l'objet que l'algorithme peut traiter et définit donc la quantité de données xk à charger dans le buffer 20 lors de l'étape 10. Plus sa taille est grande et plus l'algorithme va être rapide. - l'étape de gestion des bords 12 permet de traiter les problèmes de bords qui peuvent se présenter éventuellement lors du calcul de la transformée ; 10 - l'étape suivant de transformée 14 permet de calculer la transformée en ondelettes de la zone de l'objet 3D chargée dans le buffer 20 ; - enfin, la sauvegarde 16 permet de séparer les images de 15 basses résolutions ou basses fréquences BF (Ci) et les détails de hautes fréquences HF (Di) de l'objet 3D, et de les sauvegarder dans les fichiers 22, 24 appropriés sur le disque. La sauvegarde 16 relance (18) le processus pour la partie suivante si l'objet n'a pas été traité dans sa totalité, c'est-à-dire 20 par l'acquisition 10 d'une autre partie de l'objet pour traitement. La gestion des bords (12) nécessite les éléments suivants : Il y a plusieurs manières pour gérer les bords comme par 25 exemple la symétrie, la réplication des voxels, l'ajout de pixels identique au pixel en cours de traitement... mais l'utilisation de ces méthodes sur les différentes zones chargées va introduire un effet de blocs et une reconstruction qui peut ne pas être exacte. Pour résoudre ce, problème le calcul est réalisé en utilisant les 30 vrais voxels lorsqu'ils sont disponibles (c'est-àdire lorsque le bord de la zone à traiter ne correspond pas à un bord de l'image). Puisque les filtres utilisés sont des filtres à support compact, on5 est capable de déterminer le nombre et l'emplacement des voxels à utiliser pour le calcul des coefficients aux bords. Ce qui veut dire que l'on charge le vrai voxel lorsqu'il existe, sinon l'on adopte une des approches classiques de symétrie. Dans ce cas, on propose d'effectuer la symétrie par rapport au dernier voxel disponible (cf fig.10(c)) mais les autres approches restent valides. Supposons par exemple que l'on traite la partie P (cf. fig 1 1(a)) d'un objet 3D. L'approche classique charge cette zone P en mémoire et effectue ensuite la symétrie des voxels chargés (parties S figure 1 1(b)) et ce, quel que soit la position du bloc à traiter dans l'objet 3D. Selon l'invention, on charge en mémoire la zone à traiter, plus un certain nombre de voxels existant dans l'objet 3D nécessaires pour éviter les effets de bords (partie R de la figure 1 1(c)). Les voxels inexistants (par exemple dans le cas où l'on traite un bloc sur le bord de l'objet 3D cf. figure 1 1(c)) sont alors symétrisés comme décrit précédemment (partie S de la figure 1 1(c)). Il est à noter que lorsque le bloc traité ne se situe pas sur l'un des bords de l'objet 3D, alors aucun traitement de symétrisation n'est nécessaire car dans ce cas de figure, tous les voxels nécessaires au filtrage (parties R) existent dans l'objet 3D et sont chargés en mémoire. L'effet de bord introduit par le traitement local des données est ainsi évité. Les zones R ont une épaisseur (perpendiculaire au plan de la fenêtre) de LL/2i voxels (L largeur du filtre utilisé). Après le chargement de la zone à traiter avec les bords correspondants (parties S et R), on calcul les coefficients en ondelettes. Pour cela, on utilise les mêmes équations de filtrage (formules 1 ou 2) mais en changeant les indices. Ainsi, pour les transformées par bancs de filtres on a : L,, /2 s~. = hox2k + h.(x2l_; + x2k+,) k= Lh/2.. T+Lh/2 L,/2 dk = gox2,,, + + x2k+i+r) k= Lg/2.. T+Lg/2 et pour les transformées par schéma lifting: d = x,k+, k= L/2.. T+L/2 dp = d-' - k0 S = X2k p-1 +Sp-') A+1-i k k= L/2.. T+L/2 V p 1 k= L/2.. T+L/2 L2 /2 s~ = sk ' + d' d ) V p 1 k= L/2.. T+ L/2 k-i Avec T la taille de la zone à traiter selon la direction considérée. Comme indiqué précédemment, la partie de l'image chargée dépend directement de la taille du buffer disponible 20. Ci-après, le calcul de la taille mémoire nécessaire pour le traitement : La taille de la mémoire vive 20 nécessaire pour le filtraqe d'un bloc, hors qestion des bords se calcule comme suit : Les calculs de l'espace mémoire nécessaire pour le traitement au fil de l'eau pour les transformées par bancs de filtres, calculs ci-dessous fait en référence aux filtres biorthogonaux, restent valides pour les transformées par schéma lifting à 2 pas en changeant les coefficients et les longueurs des filtres. Soit Lh et Lg respectivement la longueur du filtre passe haut et 20 passe bas et soit M = Max (Lh, Lg). (3) Pour traiter une partie de l'image de dimension D=x*y*z, (4) on a besoin d'un Buffer 20 de dimension B : 25 B = (x+L)*(y+L)*(z+L) avec L = M-1 (5) Puisque le même filtre est utilisé lors du filtrage pour chacune des trois dimensions (filtrage par filtres séparables), on a donc le même besoin en mémoire supplémentaire pour gérer les bords qui est donné par M pour chaque côté. H Désigne la 30 partie entière inférieure. Or M est impair, car les filtres sont de longueur impaire, donc I `2 I = 2 1 . Le nombre de ajouter dans chaque axe est donc donné par : L=2* =M-1 2 En développant l'équation 5 on trouve que 5 B=L3+L2(x+y+Z)+L(xz+yz+xy)+xyz Pour le filtre 9/7 on a L = 8 et en supposant que x aura B(x) = 512 192x + 24x2 + x3 (8) Cette équation donne la taille de la zone à traiter à chaque 10 itération pour le filtre 9/7, en fonction de la taille du buffer 20. Par exemple, si l'on dispose de 1 Mo de Ram (20) et que l'on code les coefficients d'ond&ettes en float (32 bits) on a : B(x) = 1048576 octets pour 262144 coefficients. Pour trouver la taille x d'un bord du bloc en nombre de 15 coefficients, on résout l'équation suivante : x3 + 24x2 + 192x - 261632 = 0 ce qui donne sl= -40.0000 +55.4256i s2=-40.0000 -55.4256i 20 s3= 56.0000 Or x est un entier positif d'où la solution x = 56. On peut donc choisir comme fenêtre délimitant la zone à charger (10) dans le buffer 20 un cube de côté 56 voxels au plus. D'autres configurations de fenêtres peuvent être utilisées, 25 notamment des parallélépipèdes plus ou moins allongés en fonction des pratiques. On note également que la présente méthode permet de diminuer la zone de traitement (fenêtre) à un unique pixel/voxel : x=1. Le traitement des bords tel qu'exposé ci-après permet cette 30 approche au pixel près au contraire des méthodes connues de fragmentation qui, en raison d'une gestion des bords peu z on =y= efficaces, requièrent des fenêtres au moins aussi large qu'un demi-filtre. Il faut ajouter à cette zone une autre zone mémoire 26 pour le calcul et la sauvegarde partielle des coefficients. En effet, pour le calcul de Sk, on doit faire une convolution en utilisant la formule (1a) et donc, on a besoin de connaître les valeurs des voxels x(k_ MI)...Xk...X(k+~L1 2 2 Ce qui veut dire qu'on ne peut sauvegarder dans le buffer les valeurs S(k_IMI)..sk_l, précédemment calculées, qu'après le calcul 2 des coefficients utilisant X(k_ I M I )... X. D'où le besoin d'une zone 2 mémoire supplémentaire 26 de taille [kf] pou r sauvegarder temporairement les coefficients d'ondelettes calculés. La figure 12 montre l'évolution du contenu des mémoires utilisées au fur et à mesure qu'on avance dans le traitement de la zone chargée. Pour réduire le temps de calculs (éliminer les décalages effectués dans le registre à décalage), on surdimensionne cette mémoire supplémentaire en fixant sa taille à la valeur maximale des dimensions de la zone chargée (max ()cc, yc, zc), avec xc, yc, z, les dimensions de la zone à traiter). La taille mémoire nécessaire pour la gestion des bords se calcule comme suit : La taille de la zone nécessaire pour la gestion des bords est fonction du filtre utilisé. D'après l'équation (6) on a L = M-1. Soit Sb la taille de la zone ajoutée en mémoire pour gérer les bords. Puisque la zone à traiter a une forme parallélépipédique, on va ajouter des voxels aux six faces, ce qui donne : Sh = 2*(x*y* i)+2*(x*z* i)+2*(y*z* 2) (9) Après toutes simplifications faites, on obtient : Sh =L*(x*y+x*z+y*z) (10) On détermine ainsi le ratio taille mémoire totale sur taille mémoire du bloc : Supposons que la zone à traiter soit un cube. Soit S la taille de cette zone. En utilisant (4) on a S=x3. La zone chargée en mémoire sera égale à ST=S+Sb. En utilisant (10) on obtient : S,.=x3+3Lx2 (11) Calculons le rapport ST sur S,, qui correspond au rapport de la taille totale de l'image à traiter (avec gestion des bords) par rapport à la taille de l'image sans les bords : S' 3 R(x)= =1+L (12) St, x 15 La courbe R en fonction de x pour le filtre 9/7 est donnée sur la figure 13. Pour minimiser le temps de traitement on a intérêt à prendre une dimension x qui minimise R (donc x grand). Car plus le bloc est petit, plus on va faire d'accès disque supplémentaire pour gérer les bords des différentes parties. On a 20 donc intérêt à avoir des gros blocs. On choisit x de façon que le rapport R soit le plus petit possible en tenant compte de l'espace mémoire disponible. En effet, plus x augmente plus les besoins en mémoire vive augmente. Sur la figure 11, on trouve aussi la courbe de ST en fonction de x. Pour le filtre 9/7 on peut prendre x 25 = 200 car à partir de cette valeur commence le palier et la variation de la courbe devient faible. Pour cette valeur de x on aura besoin à peu près de 25 Mo de mémoire RAM. L'organigramme de l'algorithme de calcul de la transformée 30 au fil de l'eau pour les transformées par bancs de filtres est donné par la figure 14. L'algorithme reste valide pour les transformées par schéma lifting à 2 pas en changeant les10 coefficients des filtres. Pour les schémas lifting à N pas avec N>2 il faut apporter quelques modifications à l'algorithme en ajoutant les autres étages de calcul des coefficients des pas d'indices supérieur à 2. Ce qui veut dire que le filtrage en x (cf. organigramme de la figure 14) est composé de N/2 blocs de filtrage où chaque bloc effectue un pas de prédiction et un pas de mise à jour. Les étapes de l'algorithme sont les suivantes : 1. Ouverture du fichier d'entrées en lecture ou acquisition directe depuis un capteur ; 2. Ouvrir les fichiers de sorties en écriture, ceux où ont lieu la sauvegarde des coefficients calculés. On note qu'avec un niveau de décomposition d'une image 3D, il y a lieu de prévoir un fichier pour les coefficients basse résolution (basse fréquence) et sept pour les sept bandes hautes fréquences. 3. Tant qu'il reste des échantillons non traités faire 3.1. Charger, par lecture ou acquisition (10) la partie à traiter définie par la fenêtre (zone de dimension x*y*z) calculée 20 précédemment. 3.2. La gestion des bords (12) est intégrée au calcul de la transformée (voir ci-dessous 3.3 à 3.5) en utilisant la zone de dimension (x+L)*(y+L)*(z+L) en non uniquement x*y*z. 25 Du fait des filtres séparables monodimensionnels utilisés, l'algorithme procède par passages sur les lignes successivement selon les trois dimensions (x, y, z). 3.3. On cornmence par le parcours selon l'axe y : 30 pour i parcourant l'axe z (1 : z+L) 3.3.1. pour j parcourant l'axe x (1 : x+L) 3.3.1.1. pour k parcourant l'axe y (L/2 : y+L/2) (figure 15(a) û cube moins les deux tranches latérales d'épaisseur L/2) n 3.3.1.'1.1. calculer sk =hox(;,,k,i)+h,(x(~,k-,,i)+x(;,2k+l,1) 3.3.1.1.2. calculer dk = gOx(j,2k+l,i) + gi (x( j,2k+1-1,i) + x(j 2k+l+l,i) ) 3.3.1.1.3. ranger Sk et dk dans vect, où vect représente un vecteur de float de dimension d=max(x, y, z) qui représente la mérnoire supplémentaire 26 3.3.1.2. ordonner vect afin de séparer les coefficients BF et HF 3.3.1.3. recopier le contenu de Vect 26 dans le même 10 emplacement dans le buffer 20 3.4. On poursuit par le passage selon l'axe x pour i parcourant l'axe z (1 : z+L) 3.4.1. pour j parcourant l'axe y (L/2 : y+L/2) 3.4.1.1. pour k parcourant l'axe x (L/2 : x+L/2) (figure 15 15(b) ù cube fig.15(a) moins les deux tranches supérieures et inférieures d'épaisseur L/2) 3.4.1.1.1. calculer sk = hox(2kj,) (2k_1 i) + x(,k+1,l,i)) n 3.4.1.1.2. calculer dk = gox(2k+1,j,i) + gr(x(2k+1-1.) + x(2k+1+l,j,i)) 3.4.1.1.3. ranger Sk et dk dans vect 20 3.4.1.2. ordonner Vect 3.4.1.3. recopier le contenu de Vect dans le même emplacement dans le buffer 3.5.On finit par le parcours selon l'axe z pour i parcourant l'axe y (L/2 : y+L/2) 25 3.5.1. pour j parcourant x (L/2 : x+L/2) 3.5.1.1. pour k parcourant l'axe z ((L/2 : z +L/2) (figure 15(c) - cube fig.15(b) moins les deux tranches avant et arrière d'épaisseur L/2) n 3.5.1.1.1. calculer sk =hox(J,,,2k)+ hl(x(;,2k-1)+x(ji2k+l)) 3.5.1.1.2. calculer n dk = gox(j,i,2k+1) + gl (x(j,i,2k+1-1) + x(j,i,2k+1+1) ) 3.5.1.1.3. ranger Sk et dk dans vect 3.5.1.2. ordonner Vect 3.5.1.3. recopier le contenu de Vect dans le même emplacement dans le buffer 3.6. on sauvegarde (16) les coefficient basse résolution Sk dans le fichier approprié. 3.7. on sauvegarde (16) les coefficient haute résolution dk dans les fichiers approprié. 3.8.On déplace la fenêtre de sélection dans l'objet 3D si toutes les parties n'ont pas été traitées (18). 4. fermer (19) les fichiers de sorties et d'entrées. Pour réaliser une décomposition multi-échelle, les étapes 3.3 à 3.5 sont réitérées (selon le niveau de décomposition choisi, de 1 à 5 généralement) à partir des coefficients calculés lors de l'itération précédentes et stockés dans le buffer 20. On procède à l'étape 3.6 que lorsque ces itérations sont finies. Il est de noter que le traitement d'une partie de l'objet ne dépend pas du résultat des autres parties de l'objet 3D. Cette propriété est très importante car elle permet le traitement distribué de l'objet par plusieurs machines en même temps en donnant à chaque machine la partie de l'objet à traiter. Ce qui représente un atout important pour réduire encore plus le temps de calcul en utilisant des techniques comme les grilles de calculs et surtout lorsqu'il s'agit de traiter des objets de très grandes tailles. Résultats obtenus par le procédé selon l'invention. Tout les tests on été effectués avec un ordinateur équipé d'un processeur Intel E6400 cadencé à 2.13 Ghz, 2 Go de RAM et un disque dur Western Digital de 250 Go. Le filtre utilisé dans cet exemple, est le filtre de Haar lifté calculé sur les entiers, ce qui signifie que les valeurs de coefficients d'ondelettes obtenues seront entières. L'algorithme a été implémenté en C++. Les résultats obtenus à partir de la méthode que nous proposons montre bien que la taille mémoire nécessaire est très petite même pour traiter des objets gigantesques. De plus, le traitement est effectué en un temps très réduit par rapport à la taille de l'objet, sans utiliser d'espace disque supplémentaire. Le tableau suivant donne les temps de calculs et la taille mémoire utilisée pour effectuer une transformée en ondelettes sur un niveau de résolution (analyse sur un niveau de résolution) pour différentes tailles d'objets. Les objets correspondent à des cubes sismiques 3D mails des résultats identiques seraient obtenus sur d'autres types de données volumiques 3D (par exemple des données médicales). Les objets obj1 et obj2 et obj3 sont des objets qui ont été générés pour les tests. Objet traité Taille de Taille de Mémoire Temps du l'objet l'objet utilisée traitement initial basse pour le entre l'objet fréquence traitement initial et obtenu l'objet final Mercury 566 Mo 71 Mo 3 Mo 55 secs (fig.2) Obj1 4,52 Go 565 Mo 7 Mo 7 min 40 secs Obj2 36,16 Go 4,52 Go 13 Mo 55 min 13 secs Obj3 72,33 Go 9,04 Go 26 Mo 1 h et 57 min Tableau 1 : Coût mémoire et temps de calculs pour l'analyse de différents objets 3D. L'objet final correspond à l'objet après un niveau d'analyse par la transformée en ondelettes au fil de l'eau . Calculons maintenant le coût de codage sans pertes des différentes sous bandes obtenues par la décomposition (la sous-bande BF et les sous-bandes HF). Pour cela nous allons calculer l'entropie de Shannon de chaque sous-bande par la formule : n H = 1p(i)logz(p(i)) bits/voxel (13) où n correspond au nombre de niveaux de luminance possibles que peut prendre un voxel d'une sous-bande donnée. Dans le cas d'une transformée sur les entiers et pour l'exemple proposé ici, n=256 pour la sous-bande basse fréquence, et n=512 pour chaque sous-bande de hautes fréquences. La valeur p(i) correspond à la probabilité d'apparition du niveau de luminance i. L'entropie de la totalité de l'objet après transformation en ondelettes sur N niveaux est donné par la formule suivante : HT = HN(0)*D(N)+ D(i) H(j) bits/voxel (14) D(0) D(0) 1=1 avec Hi(j) est l'entropie de la jème sous-bande du niveau i (i=0 correspond à la sous-bande BF) et D(i) la taille de l'objet au niveau i (nombre de voxels dans l'objet au niveau i). D(0) est la taille de l'objet d'origine. Le coût total en octets de l'objet après transformation sur N niveaux est donné par : C = 8 HN(0) *D(N)+1 (D(i) H1(j) octets J-1 7 (15) Le tableau suivant donne l'entropie et le coût de codage de l'objet Mercury sur un niveau de décomposition en ondelettes. Entropie en bpv Objet Mercury Dimensions (voxels) 1300*858*260 Dimensions des sous bandes 650*429*130 (voxels) Entropie de la sous bande 0 (BF) 7,252453 Entropie de la 1ère sous bande HF 5,548126 Entropie de la 2e" sous bande HF 4,739920 Entropie de la 3ère sous bande HF 3,840312 Entropie de la 4è~e sous bande HF 5,442115 Entropie de la 5è'e sous bande HF 4,021207 Entropie de la Gère sous bande HF 3,369744 Entropie de la 7èfe sous bande HF 2,756940 Taille initiale de l'objet 16 bpv soit 566 Mo Entropie de l'objet initial 7,281342 bpv soit 252 Mo Entropie de l'objet transformé 4,422760 bpv soit 152.9 Mo Tableau 2 : calcul des entropies exprimées en bits par voxel (bpv) de l'objet Mercury pour un niveau de décomposition en ondelettes. Nous remarquons que l'entropie théorique de Shannon de l'objet après une transformée en ondelettes sur un niveau de décomposition est très inférieure au coût de l'objet original sans transformation. Cet exemple illustre donc la faculté de la transformée en ondelettes à représenter sans perte et de façon plus compacte l'information. D'un point de vue pratique, l'utilisation de codeurs entropiques sophistiqués tels que les codeurs arithmétiques contextuels permettraient d'obtenir des résultats encore meilleurs de compression sans perte. II est à noter que l'invention peut également être mise en oeuvre avec pertes. La figure 16 montre la quantité mémoire nécessaire pour le traitement de différents objets au fil de l'eau. Il peut être observé que la mémoire utilisée est très petite et ne dépasse pas 5 % pour Obj3 ce qui fait à peu près 26 Mo de RAM. Sur la figure 17 est tracée la courbe du temps de calcul en fonction de la taille de l'objet traité. II peut être observé que le temps de traitement est linéaire par rapport à la taille du fichier ce qui rend notre méthode capable de traiter des objets dépassant les téraoctets. En calculant la pente de la droite trouvé on peut faire sortir une fonction qui nous calcul le temps de calcul (sec) en fonction de la taille de l'objet (Mo). Cette fonction f est donnée par l'expression suivante f(S) = S / 10,61 où S représente la taille de l'objet en Mo. Pour un objet qui fait 500 Go le temps de traitement sera à peu près égal à 13 heures ce qui est rapide par rapport à la taille de l'objet puisque seulement la lecture du fichier binaire de l'objet 3D nécessiterait à peu près 4H en se basant sur un débit moyen de 40 Mo/s pour un disque standard. L'exploitation de l'image 3D ainsi convertie et des coefficients calculés nécessite une synthèse des données. Cette synthèse peut être réalisée au fil de l'eau. La mise en oeuvre au fil de l'eau de l'étape de synthèse ne nécessite pas de calculs ou de ressources supplémentaires. En effet, la synthèse est exactement l'inverse de l'étape d'analyse et ne demande pas de calculs supplémentaires. Les tests montrent qu'on obtient les mêmes temps et coûts que ceux qui sont obtenus pour l'analyse (tableau 1). Mais l'avantage de notre méthode est que nous sommes capables d'effectuer une synthèse locale des données. De par l'utilisation de filtres à support compact, on procède à une synthèse locale des données. Dans l'imagerie 3D, on est toujours confronté à des volumes énormes, et l'expert a besoin de visionner non pas tout l'objet en même temps (impossible à charger vu sa taille), mais plutôt une version basse résolution de l'objet pour se localiser et naviguer dans le volume et les trois plans X, Y et Z en haute résolution (fig.1). Avec l'approche proposée, on est capable de se localiser facilement grâce à la propriété spatio-fréquentielle des ondelettes et de l'implémentation dyadique. Après cette étape de localisation, on cherche les coefficients nécessaires pour remonter tous les niveaux des plans X, Y et Z à partir de la basse résolution. Pour afficher le plan transversal Y par exemple, on n'a pas besoin de faire la synthèse de tout l'objet et après l'extraire mais tout simplement de rechercher juste les détails nécessaires pour effectuer la synthèse de ce plan. Cette caractéristique est très importante surtout lorsque l'on manipule des objets à distance car on ne peut pas se permettre de transmettre tout l'objet à cause de sa taille. On envoie donc que les coefficients d'ondelettes qui permettent de remonter les différents niveaux de résolutions jusqu'au niveau le plus détaillé. L'analyse peut commencer dès la réception des premiers coefficients d'ondelettes et cela permet de reconstituer le plan du niveau le plus résolu progressivement au fur et à mesure que l'on reçoit les coefficients, contrairement aux systèmes actuels qui passent directement du niveau le moins détaillé au niveau le plus détaillé en un seul coup. Il est aussi possible de faire une analyse locale au sein même du plan, car les plans de coupe peuvent atteindre des résolutions dépassant 8000 * 8000 pixels (impossible à afficher dans leur totalité avec les écrans actuels dont la résolution maximale est de 2560*1600 pour les écrans 30 pouces). On peut donc faire l'analyse juste de la partie qui va être affichée ce qui permettra un gain au niveau bande passante, car on va envoyer moins de données, et un gain au niveau temps de calcul, car on va réduire encore plus la zone à traiter. L'approche adoptée par la présente invention est basée sur le traitement des données au fur et à mesure de leur acquisition ou lecture ce qui permet une réduction maximale de la taille de mémoire vive nécessaire pour le traitement. L'invention permet ainsi : - de traiter l'objet sans le fragmenter ; - d'utiliser pour cela une taille mémoire minimale qui peut être définie par l'utilisateur ; - d'obtenir un résultat de filtrage identique à celui que l'on aurait obtenu si la totalité de l'objet avait été chargée en mémoire. En effet, contrairement aux algorithmes actuels qui traitent les objets volumiques 3D par fragmentation, entraînant des artefacts aux bords des blocs fragmentés, l'approche proposée effectue une gestion du filtrage aux bords des blocs qui élimine tout artefact de type effet de bloc dû à la fragmentation ; - une navigation aléatoire dans l'objet 3D transformé est possible. Par exemple, une extraction de trois plans x, y et z de n'importe quelle zone de l'objet est possible (cf. fig. 3) et une reconstruction en pleine résolution de ces trois plans est possible sans faire la transformée inverse de tout l'objet.25 REVENDICATIONS 1. Procédé de conversion de données brutes numériques (xk) multidimensionnelles correspondant à des points (k) composant une image 2D ou 3D de taille inconnue, le procédé comprenant : - une étape de dimensionnement d'une fenêtre multidimensionnelle pour le parcours de ladite image, ledit dimensionnement étant fonction de la taille d'une mémoire tampon ; - une étape de parcours de ladite image comprenant le déplacement de ladite fenêtre dans l'image selon les axes de l'image ; - à chaque position de ladite fenêtre dans l'image : o une étape d'acquisition et de chargement, dans ladite 15 mémoire tampon, des données brutes (xk) de la partie de ladite image définie par la fenêtre ; o une étape de conversion comprenant une étape de calcul de la transformée en ondelettes multidimensionnelle de ladite partie chargée à l'aide d'au moins un filtre à support 20 compact pour générer des coefficients basse fréquence (sk) et haute fréquence (dk) ; o une étape de sauvegarde desdits coefficients générés. 2. Procédé selon la revendication précédente, dans lequel 25 lesdits filtres sont des filtres séparables monodimensionnels. 3. Procédé selon la revendication précédente, dans lequel ladite étape de calcul comprend : - successivement selon chacun des axes de ladite partie 30 chargée, une étape de calcul de la transformée monodimensionnelle en ondelettes séparables de chacune des lignes s'étendant selon ledit axe, ladite étape de calcul de transformée de chacune des lignes comprenant : 36 o pour chaque point (k) d'une ligne de ladite partie chargée, le calcul d'un coefficient (sk, dk) par transformée en ondelettes séparables à partir des données stockées en mémoire tampon. 4. Procédé selon la revendication précédente, dans lequel ladite transformée en ondelettes monodimensionnelle est une transformée par banc de filtres : n sk = hox2k + hi (x2k-i + x2k+i ) n dk = go x2k+l + gl (x2k+l-i + x2k+l+i 1= où sk et dk sont les coefficients de la transformée calculés respectivement aux points 2k et 2k+1 le long de la ligne parcourue (Li), et {hi} et {gj} sont respectivement les coefficients des filtres 15 symétriques passe-bas et passe-haut. 5. Procédé selon la revendication 3, dans lequel ladite transformée en ondelettes monodimensionnelle est une transformée par schéma lifting à 2N pas : 10 20 L,n+i / 2 dn _ dn-1 _ a2n+1(sn-1 + Sn ') d n > 1 dk "-1 k+, où s" et d" k 25 respectivement aux points 2k et 2k+1 le long de la ligne parcourue (Li), et {an} sont les coefficients des opérateurs de prédiction et de mise à jour du schéma lifting. i=1 L,ni z a2,n(dn + dn ) k -, i.1 coefficients de la sn = Sn + n 1 sort les V n > 1 transformée calculés 6. Procédé selon la revendication 1, dans lequel lesdits filtres sont des filtres multidimensionnels non séparables. 7. Procédé selon l'une quelconque des revendications précédentes, dans lequel l'étape de calcul de la transformée en ondelettes multidimensionnelle comprend le calcul en un point (k) d'un desdits coefficients (sk, dk) de transformée en ondelettes et la substitution, en mémoire tampon, de la donnée (xk) associée au point (k) par ledit coefficient (sk, dk) calculé. 8. Procédé selon la revendication précédente, dans lequel, avant ladite étape de substitution, ledit coefficient calculé (sk, dk) est stocké temporairement dans une mémoire temporaire (Temp). 9. Procédé selon la revendication précédente, dans lequel la transformation en ondelettes met en oeuvre des filtres séparables monodimensionnels de largeur maximale (M) et ladite mémoire temporaire (Temp) est un registre à décalage de taille au moins égale à [M/2j, où [j est la fonction partie entière inférieure. 10. Procédé selon la revendication 8, dans lequel la transformation en ondelettes met en oeuvre des filtres séparables monodimensionnels de largeur maximale (M), la taille de ladite mémoire temporaire (Temp) est au moins égale à la valeur maximale des dimensions de ladite partie chargée en mémoire tampon et ladite substitution comprend la copie de ladite mémoire temporaire dans ladite mémoire tampon lorsque tous les coefficients (sk, dk) de ladite ligne (Li) calculés et stockés dans la mémoire temporaire (Temp). 11. Procédé selon l'une des revendications 7 à 10, comprenant, une fois que lesdits coefficients (sk, dk) ont été calculés pour la totalité de la partie chargée et ont été substitués dans la mémoiretampon, une étape d'ordonnancement desdits coefficients (sk, dk) pour séparer les coefficients basse fréquence (sk) et haute fréquence (dk). 12. Procédé selon l'une quelconque des revendications précédentes, comprenant, pour chaque position de ladite fenêtre, une pluralité d'itérations de ladite étape de conversion, ladite étape de calcul de transformée en ondelettes d'une itération étant effectuée sur les coefficients (sk, dk) générés lors de l'itération antérieure. 13. Procédé selon l'une quelconque des revendications précédentes, dans lequel ledit parcours comprend le déplacement de ladite fenêtre, selon successivement chacun des axes de l'image, d'un pas égale à la dimension de ladite fenêtre selon l'axe de déplacement. 14. Procédé selon l'une quelconque des revendications précédentes, dans lequel ledit dimensionnement de la fenêtre est également fonction de la longueur des filtres utilisés pour la transformation en ondelettes. 15. Procédé selon l'une quelconque des revendications précédentes, dans lequel, lors dudit chargement, on charge également des données brutes (xk) associées à des points externes à la fenêtre et voisins des bordures de ladite fenêtre, de sorte à effectuer ladite transformée en ondelettes des points au voisinage desdites bordures en tenant compte desdites données des points voisins externes. 16. Procédé selon l'une quelconque des revendications précédentes, dans lequel on parallélise lesdites étapes de chargement et de conversion pour au moins deux fenêtres distinctes le long dudit parcours de l'image. 17. Système pour la conversion de données brutes numériques (xk) multidimensionnelles correspondant à des points (k) composant une irnage 2D ou 3D de taille inconnue, le système comprenant : - des moyens de dimensionnement d'une fenêtre multidimensionnelle pour le parcours de ladite image, ledit dimensionnement étant fonction de la taille d'une mémoire tampon ; - des moyens agencés pour parcourir ladite image par déplacement de ladite fenêtre dans l'image selon les axes de l'image ; -des moyens d'acquisition et de chargement agencés pour acquérir et charger, à chaque position de ladite fenêtre dans l'image, dans ladite mémoire tampon, des données brutes (xk) de la partie de ladite image définie par la fenêtre ; - des moyens de conversion agencés pour calculer la transformée en ondelettes multidimensionnelle de ladite partie chargée à l'aide d'au moins un filtre à support compact pour générer des coefficients basse fréquence (sk) et haute fréquence (dk) ; - des moyens de sauvegarde aptes à sauvegarder en mémoire lesdits coefficients générés. 18. Procédé de synthèse d'un plan dans une image 3D convertie par transformée en ondelettes selon l'une quelconque des revendications 1 à 16, comprenant une étape de détermination de l'ensemble desdites parties de l'image intersectées par ledit plan, une étape de transformée inverse en ondelettes des coefficients desdites parties déterminées et une étape de synthèse dudit plan à partir des données calculées lors de l'étape de transformée inverse.