FR2848673A1 - Procede de conversion d'images pour presentation sous forme bitmap - Google Patents

Procede de conversion d'images pour presentation sous forme bitmap Download PDF

Info

Publication number
FR2848673A1
FR2848673A1 FR0215992A FR0215992A FR2848673A1 FR 2848673 A1 FR2848673 A1 FR 2848673A1 FR 0215992 A FR0215992 A FR 0215992A FR 0215992 A FR0215992 A FR 0215992A FR 2848673 A1 FR2848673 A1 FR 2848673A1
Authority
FR
France
Prior art keywords
bitmap
point
points
polygon
polygons
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0215992A
Other languages
English (en)
Other versions
FR2848673B1 (fr
Inventor
Francois Maurice
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TUX ULTRASOUND SAS, FR
Original Assignee
Thales Ultrasonics SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales Ultrasonics SAS filed Critical Thales Ultrasonics SAS
Priority to FR0215992A priority Critical patent/FR2848673B1/fr
Priority to PCT/EP2003/050766 priority patent/WO2004055545A1/fr
Priority to AU2003286195A priority patent/AU2003286195A1/en
Publication of FR2848673A1 publication Critical patent/FR2848673A1/fr
Application granted granted Critical
Publication of FR2848673B1 publication Critical patent/FR2848673B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/52Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S15/00
    • G01S7/52017Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S15/00 particularly adapted to short-range imaging
    • G01S7/52053Display arrangements
    • G01S7/52057Cathode ray tube displays
    • G01S7/5206Two-dimensional coordinated display of distance and direction; B-scan display
    • G01S7/52063Sector scan display
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S15/00Systems using the reflection or reradiation of acoustic waves, e.g. sonar systems
    • G01S15/88Sonar systems specially adapted for specific applications
    • G01S15/89Sonar systems specially adapted for specific applications for mapping or imaging
    • G01S15/8906Short-range imaging systems; Acoustic microscope systems using pulse-echo techniques
    • G01S15/8977Short-range imaging systems; Acoustic microscope systems using pulse-echo techniques using special techniques for image reconstruction, e.g. FFT, geometrical transformations, spatial deconvolution, time deconvolution
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/52Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S15/00
    • G01S7/52017Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S15/00 particularly adapted to short-range imaging
    • G01S7/52023Details of receivers
    • G01S7/52044Scan converters

Abstract

Le procédé de conversion d'images de l'invention, qui s'applique en particulier à l'échographie ultrasonore, consiste essentiellement, avant les tirs, à préparer un tableau de données et des tableaux d'index en rangeant les points de bitmap dans l'ordre des quadrilatères visibles tels que reçus dans l'ordre des tirs, puis, au cours des tirs, à préparer une structure de données, incluant, pour chaque quadrilatère visible, les luminances de ses quatre sommets, et à la fin de chaque tir, à calculer les luminances de tous les nouveaux points de la bitmap que l'on peut afficher.

Description

PROCEDE DE CONVERSION D'IMAGES POUR PRESENTATION SOUS FORME BITMAP
La présente invention se rapporte à un procédé de conversion d'images pour présentation sous forme bitmap.
L'acquisition d'images dans des domaines tels que l'échographie médicale, les radars, les lidars ou les sonars est généralement réalisée par 5 des " tirs " de faisceaux d'émission, leurs échos étant recueillis dans la direction des faisceaux d'émission. Ces échos se traduisent, à la réception, par des valeurs de luminance de points disposés, après traitement de données, sur les différentes directions des faisceaux, qui sont généralement parallèles ou radiaux. Or, les dispositifs d'affichage couramment utilisés ont 10 un affichage " bitmap " et sont soit des écrans à balayage de type télévision ou à pixels à disposition matricielle (écrans à cristaux liquides). Les pixels de ces dispositifs d'affichage ont en général une densité plus élevée que celle des échos et une disposition différente. Il est donc nécessaire, pour constituer une image " bitmap ", de convertir les différents points recueillis, 15 ou plus exactement leurs luminances respectives, en points à disposition matricielle, et d'interpoler entre les points recueillis afin de pouvoir présenter une image " bitmap " sans lacunes.
La présente invention a pour objet un procédé de conversion d'images acquises selon des " tirs " parallèles et/ou radiaux en images de 20 type bitmap, procédé qui permette un traitement le plus rapide possible.
Le procédé conforme à l'invention consiste, consiste, avant une séquence de tirs, et pour un format d'affichage bitmap donné, à déterminer pour chaque point de la bitmap, s'il appartient à un polygone d'analyse, chaque polygone d'analyse étant défini par au moins deux points consécutifs 25 d'un tir et par les deux points de même rang du tir suivant, et si oui, à le chaîner au dernier point de la bitmap trouvé dans ce polygone, à déterminer sa position dans le polygone, à réorganiser les données ainsi recueillies selon l'ordre d'arrivée des points dans l'ordre des tirs, à repérer le dernier point de chaque polygone non vide, à associer à chacun des polygones 30 vides un point déterminé de la bitmap, puis, pendant les tirs, à produire pour chaque point reçu un opérande comportant les luminances d'au moins quatre des sommets du polygone dont le point en question est le dernier sommet reçu qui l'identifie, à ranger ces opérandes dans l'ordre de réception des points correspondants, et, à la fin de chaque tir, à calculer la luminance de chaque point contenu dans chacun des polygones pris dans l'ordre de réception des sommets les identifiant, ce calcul étant fait selon une loi d'interpolation appropriée à partir des luminances d'au moins les sommets 5 du polygone contenant le point en question, le passage d'un polygone au suivant étant commandé lors de la détection du dernier point contenu dans ce polygone, à mémoriser les luminosités des points ainsi calculés et à produire l'image bitmap en lisant les luminosités des points ainsi mémorisés.
De façon avantageuse, les polygones sont des quadrilatères.
Selon une autre caractéristique de l'invention, pendant le traitement d'un ensemble de points de la bitmap, on force le chargement en mémoire cache des données nécessaires au traitement d'un ensemble suivant de points de la bitmap.
Selon encore une autre caractéristique de l'invention, les 15 coefficients de la loi d'interpolation sont stockés dans une table adressée par la position des points dans le polygone examiné.
Selon encore une autre caractéristique de l'invention, on constitue une table de données contenant les adresses cartésiennes de chaque point de la bitmap et sa position relative à l'intérieur du polygone correspondant.
Selon encore une autre caractéristique de l'invention, ladite table de données est organisée dans l'ordre croissant des tirs et des polygones acquis et qu'elle contient une information signalant le dernier point du polygone en question.
Selon encore une autre caractéristique de l'invention, on constitue 25 une table contenant les opérandes de luminance des sommets de chaque polygone, dans l'ordre d'acquisition de ces polygones, avant de calculer les luminances des points de la bitmap.
Selon encore une autre caractéristique de l'invention, on constitue une table donnant, pour chaque tir, les indices du premier et du dernier 30 polygones visibles dans la bitmap.
Selon encore une autre caractéristique de l'invention, on constitue une table globale donnant, pour chaque tir, les adresses de la première entrée et de la dernière entrée du tableau de données bitmap pour une bitmap donnée.
Selon encore une autre caractéristique de l'invention, le point de bitmap associé à chacun des polygones vides est le même pour tous ces polygones. Selon encore une autre caractéristique de l'invention, le point 5 produit pour chacun des polygones vides est un point du bord de la bitmap, qui est blanchi ou noirci à la fin du calcul de la bitmap selon la couleur du fond de la bitmap.
Selon encore une autre caractéristique de l'invention, le procédé est appliqué à l'un au moins des domaines suivants: imagerie médicale 10 ultrasonore, caméra acoustique, radar, appareil de RMN.
La présente invention sera mieux comprise à la lecture de la description détaillée d'un mode de mise en oeuvre, pris à titre d'exemple non limitatif et illustré par le dessin annexé, sur lequel: la figure 1 est un diagramme simplifié relatif à un procédé de 1 5 conversion d'images de l'art antérieur; et la figure 2 est un diagramme simplifié servant à expliquer le procédé de l'invention.
L'invention est décrite ci-dessous en référence à la conversion d'images d'échographie médicale, mais il est bien entendu qu'elle n'est pas 20 limitée à cette seule application, et qu'elle peut être mise en oeuvre pour la conversion d'images fournies par divers appareils fonctionnant selon le principe de " tirs ", et balayant une portion d'espace, que ces tirs soient parallèles entre eux et/ou radiaux, comme par exemple les radars, les sonars, le RMN, On a représenté en figure 1, de façon simplifiée, deux lignes de tir consécutives et immatérielles 1, 2 d'une sonde d'échographie.
Ces deux lignes sont radiales (divergentes), mais les explications cidessous restent valables si ces lignes sont parallèles entre elles. Le rang de la ligne 1, dans l'ordre de tir des différentes lignes est i, et celui de la ligne 30 2 est i+1. Sur chacune de ces deux lignes, on a représenté les échos consécutifs par des points: pour la ligne 1, ils sont références Pj-1, Pj, Pj+1, Pj+2, ... et... Qj-1, Qj, Qj+1, Qj+2... pour la ligne 2, les indices...j-1,j, j+1, ...
correspondant à des mêmes distances de tir d'une ligne à la suivante. On a, d'autre part, représenté trois lignes consécutives et immatérielles 3, 4, 5 35 parallèles entre elles et sur lesquelles sont alignés les points régulièrement espacés d'une image bitmap (matricielle) telle qu'affichée sur un écran de moniteur à tube cathodique ou un écran à cristaux liquides ou à plasma. Sur le dessin, qui est représenté relativement loin de la sonde de laquelle partent les lignes de tir, la densité des points bitmap est plus élevée que celle des 5 points P et Q des lignes 1 et 2, mais il est bien entendu qu'au voisinage de la sonde, l'inverse peut être vrai. Sur la figure 1, les lignes 3, 4, 5 passent entre les points Pj et Pj+l d'une part, et entre les points Qj et Qj+l, et dix des points de ces trois lignes sont compris dans le quadrilatère 6 dont les quatre sommets sont Pj, Pj+l, Qj, Qj+1. Soit A un de ces dix points, situé sur la 10 ligne 4. Ce point, comme tous les autres points de la bitmap, a des coordonnées cartésiennes x et y, et sa luminance est notée Lx,y car elle dépend de sa position par rapport aux points " lumineux " Pj, Pj+1, Qj et Qj+1, qui sont les seuls points lumineux au voisinage immédiat de A. On pourrait également tenir compte des points non immédiatement voisins de A 1 5 et situés sur les lignes 1 et 2 et/ou sur les lignes précédente et suivante, mais, en général, cela complique le calcul sans améliorer notablement l'image bitmap.
De façon bien connue, la luminance Lxy du point A est calculée de la façon suivante. Soient Lij, Li,j+1, Li+l,j et Li+1,j+1, les luminances 20 respectives des points Pj, Pj+1, Qj, Qj+1 et a, b, c, d des coefficients dépendant des distances relatives du point A auxdits quatre sommets du quadrilatère 6. On a alors: Lxy = aLij + bLi,j+l + cLi+lj + dLi+l,j+l Une telle combinaison linéaire de quatre luminances n'est pas la 25 seule façon possible de calculer Lxy, qui peut être calculée selon d'autres types de combinaison (non linéaire, avec plus de quatre points, ...).
A partir de ces données, le processus de conversion effectue les étapes El à E5 suivantes: El - Dès la fin du calcul de la luminosité d'un point de la bitmap, il 30 détermine les coordonnées (x,y) du prochain point à afficher.
E2 - Il détermine le quadrilatère d'analyse auquel appartient ce prochain point.
E3 - Il calcule les coefficients d'interpolation (a, b, c, d) relatifs à ce prochain point.
E4- Il calcule la luminance de ce prochain point à partir des coefficients d'interpolation précités.
E5 - Il stocke cette valeur de luminance dans la mémoire définissant la bitmap.
En général, chaque tir et les données de luminance qui en résultent ont lieu en séquence, et il peut être avantageux, aussitôt après avoir effectué deux tirs successifs, de calculer les luminances de tous les points de la bitmap situés entre les lignes (lignes de tir) relatives à ces deux tirs. On connaît deux approches différentes pour mettre en oeuvre le processus de conversion rappelé ci-dessus.
Selon la première approche, les étapes El à E5 sont réalisées en temps réel, au fur et à mesure de l'acquisition des données de la luminance.
Le brevet US-A-5 957 846, par exemple, décrit un algorithme permettant de 15 réaliser l'étape El en adressant une bitmap par exploration polaire (rotation d'une ligne de balayage autour d'un point fixe situé à l'intersection des lignes de tir). Ce procédé requiert peu de mémoire de stockage, mais nécessite beaucoup de calculs.
Selon une deuxième approche, qui s'applique lorsque les points 20 de la bitmap ont une position fixe d'une trame d'image à la suivante par rapport aux quadrilatères d'analyse, les étapes El à E3 sont calculées une fois pour toutes. On produit alors un tableau de données, stockées en mémoire. Ce tableau comporte les coordonnées successives (x, y) des points de la bitmap, leurs quadrilatères d'appartenance, leurs coefficients 25 d'interpolation. Les données de ce tableau sont ensuite appelées en temps réel, au fur et à mesure des tirs successifs pour les calculs de l'étape E4. Ce procédé est techniquement réalisable depuis que les mémoires des processeurs courants sont suffisamment grandes (typiquement, la capacité de mémoire requise est de quelques mégaoctets).
Actuellement, la deuxième approche a tendance à supplanter la première du fait qu'elle est plus rapide et requiert moins de moyens de calcul que la première, les processeurs actuels les plus performants étant suffisants pour réaliser en temps réel les calculs nécessaires. Cependant, la mise en oeuvre de cette deuxième approche est relativement complexe et ne peut 35 pas être faite sur des ordinateurs personnels courants, en particulier si l'on utilise des sondes ultrasonores à grand nombre d'éléments piézoélectriques. En effet, le nombre de points compris dans un quadrilatère d'analyse est variable (de zéro à l'ensemble de la bitmap), selon le facteur de zoom et la localisation du quadrilatère. De plus, certains quadrilatères 5 peuvent ne contenir aucun point de bitmap. Il en résulte une complexité dans la logique de déroulement et de branchement de l'algorithme, qui passe beaucoup de temps à chercher le prochain quadrilatère non vide, ce temps passé " improductif ", étant trop important par rapport au temps mis à calculer la luminance des points de la bitmap. Une autre conséquence est 10 qu'il est difficile d'anticiper le déroulement précis du processus. Ceci est gênant en particulier lorsque l'on veut utiliser un processeur d'ordinateur personnel pour réaliser la conversion. En effet, un tel processeur dispose d'une mémoire cache beaucoup plus rapide que la mémoire centrale (de grande capacité en général), mais cette mémoire cache est de capacité 1 5 limitée, et ne permet pas de stocker l'intégralité du tableau de données tel que défini selon le procédé connu.
La présente invention permet d'utiliser les instructions de préchargement en mémoire cache pour y stocker à l'avance les données du tableau de données qui seront demandées dans un futur proche et 20 prévisible. Elle n'est donc plus tributaire du recours à la mémoire centrale dont les temps d'accès sont trop lents. Ceci est rendu possible grâce à un déroulement de programme très simple permettant d'identifier à coup sr les instants o l'on doit précharger en mémoire cache les données à utiliser ultérieurement. Le procédé de l'invention organise le tableau de données relatif aux points de la bitmap et à leurs données associées quadrilatère par quadrilatère, ces quadrilatères étant classés dans l'ordre de leur formation, c'est-à-dire dans l'ordre de réception de leur dernier sommet (sommet inférieur droit): par exemple pour le cas de la figure 1, le quadrilatère 6 (dont 30 le dernier sommet reçu est Qj+1) vient aussitôt après le quadrilatère 6A (dont le dernier sommet reçu est Qj), et il est immédiatement suivi du quadrilatère 6B (dont le dernier sommet reçu est Qj+2).
Le seul branchement attendu se produit donc lorsque l'on a traité le dernier point de bitmap d'un quadrilatère et que l'on doit passer au point à 35 traiter suivant (le branchement consiste à répondre à la question: " le point venant après celui qui vient d'être traité est-il situé dans le quadrilatère suivant ? "). Le problème est qu'il peut se produire des cas o le prochain quadrilatère contenant au moins un point de la bitmap ne soit pas le suivant, mais le deuxième ou le troisième voisin. Ce genre de situation se présente 5 en particulier lorsque les quadrilatères sont ceux d'une zone proche de la sonde. Dans une telle zone, la densité des points d'analyse (échos reçus par la sonde) est supérieure à la densité des points de la bitmap. Il n'y a donc pas, en moyenne, un point de bitmap par quadrilatère d'analyse.
Le procédé de l'invention permet de résoudre cette difficulté grâce 10 à une caractéristique expliquée ci-dessous en référence à la figure 2. Sur cette figure 2, on a représenté plusieurs lignes de tir successives divergentes 7 à 13 (issues d'une sonde non représentée) et le contour 14 d'une image bitmap dans la position de visualisation désirée de cette image par rapport à ces lignes de tir. Dans l'exemple représenté sur cette figure, l'image est 15 zoomée et la bitmap ne représente pas l'intégralité de l'image acquise. La bitmap intersecte par exemple les lignes de tir 8 à 12. Pour simplifier le dessin, on n'a représenté des points d'analyse que pour les lignes 9 et 10.
Les points d'analyse sont, de façon générale, référencés Pij, l'indice i étant le numéro d'ordre du tir et l'indice j le numéro d'ordre du point sur la ligne de 20 tir considérée. Sur la ligne 9 (i = 9), les cinq points d'analyse contenus dans le contour 14 sont, respectivement, P9,j, P9,j+1, ... P9,j+4 (j est le rang du premier point de la ligne 9 visible dans le contour 14). Sur la ligne 10 (i = 10), les cinq points d'analyse contenus dans le contour 14 sont, respectivement: P1Oj, P10,j+1, ... P10,+ 4. Les quadrilatères d'analyse sont repérés par 25 exemple par les coordonnées de leur sommet supérieur gauche. Ainsi, les quadrilatères compris entre les lignes 9 et 10 et comprenant des points visibles dans la bitmap 14 sont les quadrilatères référencés par les points P9,j-1 à P9, j+4. La règle adoptée par l'invention est que si le premier quadrilatère comprenant des points visibles dans la bitmap est Pij et si le 30 dernier quadrilatère comprenant des points visibles dans la bitmap est (Pi+n,j+n) alors tous les quadrilatères intermédiaires seront supposés contenir chacun au moins un point visible, pour lequel une luminance sera calculée et affichée. Dans le cas o un de ces quadrilatères intermédiaires n'inclut aucun point de la bitmap, on lui associe un point factice unique, 35 commun à tous les quadrilatères vides, par exemple le premier point de la bitmap (le premier en haut, à gauche). On n'effectue aucun calcul pour les quadrilatères antérieurs à Pij et ceux postérieurs à Pi+n,j+n. Ainsi, plutôt que de perdre du temps à effectuer un branchement, le procédé de l'invention consiste à parcourir systématiquement tous les quadrilatères de Pij à 5 Pi+n,j+n et à effectuer pour chacun d'eux au moins un calcul de luminance.
Si un quadrilatère est vide ou s'il ne contient qu'un seul point de la bitmap, on considère qu'il contient un point unique (factice ou réel) et ce point est aussi considéré comme dernier point du quadrilatère, ce qui est signalé par un bit spécial (décrit ci-dessous). Si un quadrilatère comporte plusieurs points, le 10 dernier d'entre eux (dans le sens du balayage de la bitmap) est également signalé par un bit spécial. Ce bit spécial commande l'incrémentation de la lecture du tableau de données (tableau de luminances des sommets des quadrilatères) pour passer à la lecture des données relatives au quadrilatère suivant (vide ou non) dès la fin des calculs relatifs au dernier point du 15 quadrilatère en cours d'analyse. Ainsi, on évite la perte de temps causée par la recherche du quadrilatère non vide suivant.
On va maintenant décrire en détail le déroulement du processus de conversion d'image selon la présente invention.
1) - Préparation du tableau de données et de tableaux d'index Cette phase débute dès que l'on a fait un choix de géométrie d'image ou de facteur de zoom et que l'on veut commencer l'analyse.
Il n'est pas nécessaire de l'optimiser, car on dispose typiquement de 25 quelques dixièmes de seconde pour cette phase sans que cela crée une gêne pour l'utilisateur de l'échographe.
Cette phase se déroule de la façon suivante. Pour chaque point (de coordonnées rectangulaires x, y) de la bitmap, on détermine s'il appartient à un quadrilatère d'analyse. Si oui, on le chaîne au dernier 30 point trouvé dans ce quadrilatère, si ce dernier point existe. On détermine aussi la position de ce point dans le quadrilatère.
Dans le présent exemple, cette position est dénommée " POS " et sa valeur se compose de la partie fractionnaire de i (indice de tir), sur 5 bits et de la partie fractionnaire de j (indice du point 35 analysé sur la ligne de tir), sur 3 bits. Les paramètres i et j sont les coordonnées polaires des points traités, obtenues par transformation des coordonnées cartésiennes des points de la bitmap (ces coordonnées cartésiennes sont x et y) . On utilise le chaînage précité pour ranger les données par ordre croissant de leurs quadrilatères 5 d'appartenance. Le tableau comporte une entrée par point de bitmap situé dans un de ces quadrilatères. Chaque entrée du tableau (sur 32 bits par exemple) comporte donc les données suivantes (relatives à un seul point): l l'adresse (en x, y) du point de bitmap considéré, codée linéairement (par exemple sur 23 bits); > sa position (" POS ") dans son quadrilatère (par exemple sur 8 bits, comme précisé ci-dessus) ; et > un drapeau (" flag ") qui est validé si le point en question 1 5 est le dernier point du quadrilatère (par exemple sur 1 bit).
Lorsque le quadrilatère analysé ne comporte aucun point visible de la bitmap, on génère une entrée comportant une valeur nulle en tant qu'adresse dans la bitmap (point supérieur gauche), une valeur 20 nulle pour la position dans le quadrilatère examiné et 1 pour le bit de drapeau. A la fin de cette phase de préparation, on dispose aussi d'un tableau d'index indiquant, pour chaque tir, la première et la dernière entrées du tableau de données relatif à ce tir, ainsi que les numéros 25 d'ordre du premier et du dernier quadrilatères visibles pour ce tir.
2 - Pendant les tirs De façon à accélérer le calcul final, qui comporte quatre 30 multiplications et trois additions pour obtenir la luminance de chaque point, l'invention prévoit d'utiliser les instructions à opérandes multiples disponibles avec les processeurs INTEL (instructions de type SIMD ou MMX). Parmi ces instructions, il y a en particulier une opération qui réalise en une seule fois quatre multiplications et deux 35 additions. Sachant qu'en général un quadrilatère peut contenir plusieurs points de la bitmap (sauf les cas particuliers au voisinage de la sonde cités cidessus), il est avantageux de générer à chaque fois que l'on reçoit une nouvelle donnée de tir un opérande multiple qui concatène les quatre valeurs de luminance des sommets du 5 quadrilatère dont le dernier point reçu est le sommet bas droit. Ces données sont en volume limité, et peuvent donc toutes résider dans la mémoire cache du processeur pour le calcul ultérieur de la luminance des points de bitmap. Selon un exemple de réalisation, les quatre valeurs de luminance (La, Lb, Lc, Ld) sont définies chacune sur 16 10 bits et concaténées en un opérande de 64 bits, et d'autre part, les quatre coefficients (a, b, c, d), définis également sur 16 bits, sont concaténés, dans le même ordre, en un opérande de 64 bits. Ensuite, La, Lb, Lc et Ld sont respectivement multipliés par a, b, c, d, et une première addition consiste à additionner simultanément d'une part aLa + bLb, ce qui donne un résultat partiel E, et d'autre part cLc + dLd, ce qui donne un autre résultat partiel F, ces deux résultats partiels étant concaténés en un mot de 64 bits, et enfin à effectuer une seconde addition E + F. 3 - A la fin de chaque tir.
A la fin de chaque tir, on réalise l'opération de conversion, réduite à sa plus simple expression, à savoir une boucle de calcul portant sur l'ensemble des entrées du tableau de données relatives au 25 tir en question, ce tableau étant formé pendant la phase de préparation. Cette boucle effectue les calculs cités ci-dessus, à savoir la multiplication des luminances des quatre sommets du quadrilatère en cours d'analyse par les coefficients d'interpolation du point de bitmap considéré. Les luminances ont été acquises pendant les tirs et 30 mémorisées en mémoire cache et les coefficients sont stockés dans un tableau constant d'opérandes multiples, résidant également en mémoire cache. Ce tableau de coefficients est indexé par la valeur (" POS ") de l'entrée considérée du tableau de données. En utilisant les instructions SIMD du processeur précité, il suffit d'une opération de 35 multiplication - accumulation suivie d'une addition, et d'une normalisation par décalage (mise à l'échelle). On obtient ainsi directement la luminance du point de bitmap analysé, qu'il suffit de stocker dans la mémoire de bitmap à son adresse, qui est fournie par l'entrée considérée du tableau de données. Si le drapeau associé à 5 l'entrée en cours du tableau de données est mis (c'est-à-dire s'il correspond au dernier point compris dans le quadrilatère analysé), il faut incrémenter l'index du tableau de données de luminances constitué pendant les tirs. Cet index pointe alors sur les luminances du quadrilatère suivant.
Ces deux opérations forment le corps, très compact, du programme de calcul de l'image bitmap. On voit que, quel que soit le résultat de la deuxième opération liée à l'état du drapeau, le programme de calcul consomme exactement une entrée du tableau de données par parcours de la boucle. On peut donc prédire 15 précisément l'instant o l'on aura besoin de données du tableau de données, et utiliser, si elle existe, l'instruction de préchargement dans la mémoire cache du processeur. Par exemple, dans le cas o ce processeur est un Pentium IIITM, et de l'exemple numérique cité cidessus, une ligne de mémoire cache représente 256 bits, et l'optimum 20 est donc de réaliser une précharge (dite " prefetch ") de la mémoire cache tous les 8 points calculés.
Lorsque l'ensemble de la bitmap a été calculé, il faut noircir (ou blanchir, selon le choix de la couleur du fond d'image) le point supérieur gauche de la bitmap qui détient une information de 25 luminance liée au dernier quadrilatère situé en zone visible, mais ne contenant lui- même aucun point de la bitmap.

Claims (12)

REVENDICATIONS
1. Procédé de conversion d'images acquises selon des tirs parallèles et/ou divergents en image du type bitmap, caractérisé par le fait qu'il consiste, avant une séquence de tirs, et pour un format d'affichage bitmap donné, à déterminer pour chaque point de la bitmap, s'il appartient à 5 un polygone d'analyse, chaque polygone d'analyse étant défini par au moins deux points consécutifs d'un tir et par les deux points de même rang du tir suivant, et si oui, à le chaîner au dernier point de la bitmap trouvé dans ce polygone, à déterminer sa position dans le polygone, à réorganiser les données ainsi recueillies selon l'ordre d'arrivée des points dans l'ordre des 10 tirs, à repérer le dernier point de chaque polygone non vide, à associer à chacun des polygones vides un point déterminé de la bitmap, puis, pendant les tirs, à produire pour chaque point reçu un opérande comportant les luminances d'au moins quatre des sommets du polygone dont le point en question est le dernier sommet reçu qui l'identifie, à ranger ces opérandes 1 5 dans l'ordre de réception des points correspondants, et, à la fin de chaque tir, à calculer la luminance de chaque point contenu dans chacun des polygones pris dans l'ordre de réception des sommets les identifiant, ce calcul étant fait selon une loi d'interpolation appropriée à partir des luminances d'au moins les sommets du polygone contenant le point en question, le passage d'un 20 polygone au suivant étant commandé lors de la détection du dernier point contenu dans ce polygone, à mémoriser les luminosités des points ainsi calculés et à produire l'image bitmap en lisant les luminosités des points ainsi mémorisés.
2. Procédé selon la revendication 1, caractérisé par le fait que le 25 polygone est un quadrilatère.
3. Procédé selon la revendication 1 ou 2, caractérisé par le fait que, pendant le traitement d'un ensemble de points de la bitmap, on force le chargement en mémoire cache des données nécessaires au traitement d'un ensemble suivant de points de la bitmap.
4. Procédé selon l'une des revendications précédentes, caractérisé par le fait que les coefficients de la loi d'interpolation sont stockés dans une table adressée par la position des points dans le polygone examiné.
5. Procédé selon l'une des revendications précédentes, caractérisé par le fait que l'on constitue une table de données contenant les adresses cartésiennes de chaque point de la bitmap et sa position relative à l'intérieur du polygone correspondant.
6. Procédé selon la revendication 5, caractérisé par le fait que ladite table de données est organisée dans l'ordre croissant des tirs et des polygones acquis et qu'elle contient une information signalant le dernier point du polygone en question.
7. Procédé selon l'une des revendications précédentes, 10 caractérisé par le fait que l'on constitue une table contenant les opérandes de luminance des sommets de chaque polygone, dans l'ordre d'acquisition de ces polygones, avant de calculer les luminances des points de la bitmap.
8. Procédé selon l'une des revendications précédentes, caractérisé par le fait que l'on constitue une table donnant, pour chaque tir, 15 les indices du premier et du dernier polygones visibles dans la bitmap.
9. Procédé selon l'une des revendications 5 à 8, caractérisé par le fait que l'on constitue une table globale donnant, pour chaque tir, les adresses de la première entrée et de la dernière entrée du tableau de données bitmap pour une bitmap donnée.
10. Procédé selon l'une des revendications précédentes, caractérisé par le fait que le point de bitmap associé à chacun des polygones vides est le même pour tous ces polygones.
11. Procédé selon l'une des revendications précédentes, caractérisé par le fait que le point produit pour chacun des polygones vides 25 est un point du bord de la bitmap, qui est blanchi ou noirci à la fin du calcul de la bitmap selon la couleur du fond de la bitmap.
12. Procédé selon l'une des revendications précédentes, caractérisé par le fait qu'il est appliqué à l'un au moins des domaines suivants: imagerie médicale ultrasonore, caméra acoustique, radar, appareil 30 de RMN.
FR0215992A 2002-12-17 2002-12-17 Procede de conversion d'images pour presentation sous forme bitmap Expired - Lifetime FR2848673B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR0215992A FR2848673B1 (fr) 2002-12-17 2002-12-17 Procede de conversion d'images pour presentation sous forme bitmap
PCT/EP2003/050766 WO2004055545A1 (fr) 2002-12-17 2003-10-29 Procede de conversion d'images pour presentation sous forme bitmap
AU2003286195A AU2003286195A1 (en) 2002-12-17 2003-10-29 Method for image conversion for bitmap display

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0215992A FR2848673B1 (fr) 2002-12-17 2002-12-17 Procede de conversion d'images pour presentation sous forme bitmap

Publications (2)

Publication Number Publication Date
FR2848673A1 true FR2848673A1 (fr) 2004-06-18
FR2848673B1 FR2848673B1 (fr) 2005-02-18

Family

ID=32338879

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0215992A Expired - Lifetime FR2848673B1 (fr) 2002-12-17 2002-12-17 Procede de conversion d'images pour presentation sous forme bitmap

Country Status (3)

Country Link
AU (1) AU2003286195A1 (fr)
FR (1) FR2848673B1 (fr)
WO (1) WO2004055545A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006113445A1 (fr) * 2005-04-14 2006-10-26 Verasonics, Inc. Systeme d'imagerie ultrasonore avec un traitement oriente de pixels
US10914826B2 (en) 2008-06-26 2021-02-09 Verasonics, Inc. High frame rate quantitative doppler flow imaging using unfocused transmit beams

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5957846A (en) * 1995-06-29 1999-09-28 Teratech Corporation Portable ultrasound imaging system
US6362817B1 (en) * 1998-05-18 2002-03-26 In3D Corporation System for creating and viewing 3D environments using symbolic descriptors

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5957846A (en) * 1995-06-29 1999-09-28 Teratech Corporation Portable ultrasound imaging system
US6362817B1 (en) * 1998-05-18 2002-03-26 In3D Corporation System for creating and viewing 3D environments using symbolic descriptors

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006113445A1 (fr) * 2005-04-14 2006-10-26 Verasonics, Inc. Systeme d'imagerie ultrasonore avec un traitement oriente de pixels
US8287456B2 (en) 2005-04-14 2012-10-16 Verasonics, Inc. Ultrasound imaging system with pixel oriented processing
US9028411B2 (en) 2005-04-14 2015-05-12 Verasonics, Inc. Ultrasound imaging system with pixel oriented processing
US9649094B2 (en) 2005-04-14 2017-05-16 Verasonics, Inc. Ultrasound imaging system with pixel oriented processing
EP1874192B1 (fr) 2005-04-14 2017-06-07 Verasonics, Inc. Systeme d'imagerie ultrasonore avec un traitement oriente de pixels
US10914826B2 (en) 2008-06-26 2021-02-09 Verasonics, Inc. High frame rate quantitative doppler flow imaging using unfocused transmit beams

Also Published As

Publication number Publication date
WO2004055545A1 (fr) 2004-07-01
FR2848673B1 (fr) 2005-02-18
AU2003286195A1 (en) 2004-07-09

Similar Documents

Publication Publication Date Title
FR2690770A1 (fr) Système et procédé de visualisation pour jeux vidéo.
Liu et al. Three dimensional single molecule localization using a phase retrieved pupil function
Ye et al. Single image surface appearance modeling with self‐augmented cnns and inexact supervision
FR2920899A1 (fr) Structure de donnees en tranches et procede de chargement d'une simulation basee sur des particules utilisant une structure de donnees en tranches dans un gpu, etc
EP0458692B1 (fr) Procédé de visualisation d'une partie de l'image d'une structure physique
FR2696573A1 (fr) Procédé et dispositif d'examen acoustique à retournement temporel.
FR2752975A1 (fr) Procede de reconstruction d'une image tridimensionnelle d'un objet, en particulier une image tridimentionnelle angiographique
FR2580840A1 (fr) Poste d'affichage graphique video et systeme de traitement de donnees graphiques pour poste de travail de conception assistee par ordinateur
EP0840252A1 (fr) Procédé de traitement d'image numérique pour l'extraction automatique d'objets en forme de rubans
FR2771201A1 (fr) Mappage de texture anisotrope utilisant l'analyse de silhouette ou d'empreinte dans un systeme informatique de generation d'images
FR2698983A1 (fr) Procédé et appareil de recyclage d'un tampon vidéo.
FR2611270A1 (fr) Procede et dispositif de determination d'un champ de deformation par photoelasticimetrie
FR2593009A1 (fr) Procede d'homogeneisation d'une image issue d'une conversion de coordonnees et transformateur numerique d'images utilisant un tel procede
EP2511842A1 (fr) Consultation de maquettes numériques à partir de postes légers
FR2966623A1 (fr) Procede d’estimation de l’occultation dans un environnement virtuel
FR2848673A1 (fr) Procede de conversion d'images pour presentation sous forme bitmap
Michel et al. Real time multiscale rendering of dense dynamic stackings
EP2504816B1 (fr) Procede d'estimation de diffusion de la lumiere
CA2651465C (fr) Procede de codage et systeme d'affichage sur un ecran d'une maquette numerique d'un objet sous forme d'une image de synthese
FR2587520A1 (fr) Appareil et procedes d'affichage a fenetre a acces direct en memoire
EP2502206A2 (fr) Procede d'estimation de diffusion de la lumiere
FR2741521A1 (fr) Procede d'acquisition automatique de l'angle doppler, en echographie, et agencement pour la mise en oeuvre du procede
EP0161176A1 (fr) Dispositif pour l'obtention de tracés continus sur l'écran d'une console de visualisation commandée par un processeur graphique
FR3015222A1 (fr) Procede de traitement d'images medicales par suivi de regard
Jeong et al. A Collaborative Digital Pathology System for Multi‐Touch Mobile and Desktop Computing Platforms

Legal Events

Date Code Title Description
CA Change of address

Effective date: 20150109

CD Change of name or company name

Owner name: TUX ULTRASOUND SAS, FR

Effective date: 20150109

PLFP Fee payment

Year of fee payment: 14

PLFP Fee payment

Year of fee payment: 15

PLFP Fee payment

Year of fee payment: 16

PLFP Fee payment

Year of fee payment: 18

PLFP Fee payment

Year of fee payment: 19

PLFP Fee payment

Year of fee payment: 20