WO2004055545A1 - Method for image conversion for bitmap display - Google Patents

Method for image conversion for bitmap display Download PDF

Info

Publication number
WO2004055545A1
WO2004055545A1 PCT/EP2003/050766 EP0350766W WO2004055545A1 WO 2004055545 A1 WO2004055545 A1 WO 2004055545A1 EP 0350766 W EP0350766 W EP 0350766W WO 2004055545 A1 WO2004055545 A1 WO 2004055545A1
Authority
WO
WIPO (PCT)
Prior art keywords
bitmap
point
points
polygon
polygons
Prior art date
Application number
PCT/EP2003/050766
Other languages
French (fr)
Inventor
François Maurice
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 AU2003286195A priority Critical patent/AU2003286195A1/en
Publication of WO2004055545A1 publication Critical patent/WO2004055545A1/en

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

Definitions

  • the present invention relates to a method for converting images for presentation in bitmap form.
  • the acquisition of images in fields such as medical ultrasound, radars, lidars or sonars is generally carried out by “shots” of emission beams, their echoes being collected in the direction of the emission beams . These echoes are reflected, on reception, by luminance values of points arranged, after data processing, on the different directions of the beams, which are generally parallel or radial.
  • the commonly used display devices have a “bitmap” display and are either television type or pixel type scanning screens with a matrix layout (liquid crystal screens). The pixels of these display devices generally have a higher density than that of the echoes and a different arrangement.
  • the subject of the present invention is a method of converting images acquired using parallel and / or radial “shots” into bitmap type images, a method which allows processing as quickly as possible.
  • the method according to the invention consists, consists, before a sequence of shots, and for a given bitmap display format, in determining for each point of the bitmap, if it belongs to an analysis polygon, each polygon d analysis being defined by at least two consecutive points of a shot and by the two points of the same rank of the next shot, and if so, to chain it to the last point of the bitmap found in this polygon, to determine its position in the polygon, to reorganize the data thus collected according to the order of arrival of the points in the order of the shots, to locate the last point of each non-empty polygon, to associate with each of the empty polygons a determined point of the bitmap, then , during the shootings, to produce for each point received an operand comprising the luminances of at least four of the vertices of the polygon whose point in question is the last vertex received which identifies it, to arrange these operands in the order of reception of the corresponding points, and, at the end of each shot, to calculate the
  • the polygons are quadrilaterals. According to another characteristic of the invention, during the processing of a set of points of the bitmap, the loading into cache memory of the data necessary for processing a following set of points of the bitmap is forced.
  • the coefficients of the interpolation law are stored in a table addressed by the position of the points in the polygon examined.
  • a data table is made up containing the Cartesian addresses of each point of the bitmap and its relative position inside the corresponding polygon. According to yet another characteristic of the invention, said data table is organized in ascending order of shots and of acquired polygons and that it contains information signaling the last point of the polygon in question.
  • a table is created containing the luminance operands of the vertices of each polygon, in the order of acquisition of these polygons, before calculating the luminances of the points of the bitmap.
  • a table is created giving, for each shot, the indices of the first and last polygons visible in the bitmap.
  • a global table is created giving, for each shot, the addresses of the first entry and of the last entry of the bitmap data table for a given bitmap.
  • the bitmap point associated with each of the empty polygons is the same for all these polygons.
  • the point produced for each of the empty polygons is a point on the edge of the bitmap, which is whitened or blackened at the end of the calculation of the bitmap according to the background color of the bitmap.
  • the method is applied to at least one of the following fields: ultrasound medical imaging, acoustic camera, radar, NMR apparatus.
  • Figure 1 is a simplified diagram relating to a method of converting images of the prior art.
  • Figure 2 is a simplified diagram for explaining the method of the invention.
  • bitmap raster
  • the density of the bitmap points is higher than that of the P and Q points of lines 1 and 2, but it is understood that in the vicinity of the probe, the reverse may be true.
  • the lines 3, 4, 5 pass between the points Pj and Pj + 1 on the one hand, and between the points Qj and Qj + 1, and ten of the points of these three lines are included in the quadrilateral 6 whose four vertices are Pj, Pj + 1, Qj, Qj + 1. Let A be one of these ten points, located on line 4.
  • This point like all the other points of the bitmap, has Cartesian coordinates x and y, and its luminance is noted Lx, y because it depends on its position relative at the "luminous" points Pj, Pj + 1, Qj and Qj + 1, which are the only luminous points in the immediate vicinity of A.
  • the luminance Lxy of point A is calculated as follows. Let Lij, Li, j + 1, Li + 1, j and Li + 1, j + 1, be the respective luminances of the points Pj, Pj + 1, Qj, Qj + 1 and a, b, c, d of the dependent coefficients relative distances from point A to said four vertices of quadrilateral 6. We then have:
  • Lxy aLij + bLij + 1 + cLi + 1j + dLi + 1j + 1
  • Such a linear combination of four luminances is not the only possible way to calculate Lxy, which can be calculated according to other types of combination (nonlinear , with more than four points, ).
  • E2 It determines the analysis quadrilateral to which this next point belongs.
  • E3 It calculates the interpolation coefficients (a, b, c, d) relative to this next point.
  • E4 It calculates the luminance of this next point from the above-mentioned interpolation coefficients.
  • E5 It stores this luminance value in the memory defining the bitmap. In general, each shot and the resulting luminance data take place in sequence, and it may be advantageous, immediately after making two successive shots, to calculate the luminances of all the points of the bitmap located between the lines (lines of shot) relating to these two shots. Two different approaches are known for implementing the conversion process recalled above.
  • steps E1 to E5 are carried out in real time, as the luminance data is acquired.
  • Patent US-A-5 957846 describes an algorithm allowing step E1 to be carried out by addressing a bitmap by polar exploration (rotation of a scanning line around a fixed point located at the intersection of the lines shooting). This process requires little storage memory, but requires a lot of calculations.
  • the steps E1 to E3 are calculated once and for all.
  • This table contains the successive coordinates (x, y) of the points of the bitmap, their quadrilaterals of belonging, their interpolation coefficients.
  • the data in this table are then called in real time, as successive shots are taken for the calculations in step E4. This process is technically feasible since the memories of current processors are sufficiently large (typically, the memory capacity required is a few megabytes).
  • the second approach tends to supplant the first because it is faster and requires less computing means than the first, the current most efficient processors being sufficient to perform the necessary calculations in real time.
  • the implementation of this second approach is relatively complex and cannot be done on common personal computers, especially if one uses ultrasonic probes with a large number of piezoelectric elements. Indeed, the number of points included in an analysis quadrilateral is variable (from zero to the entire bitmap), depending on the zoom factor and the location of the quadrilateral. In addition, some quadrilaterals may not contain any bitmap points.
  • the present invention makes it possible to use the precharging instructions in cache memory to store therein in advance the data of the data table which will be requested in the near and foreseeable future. It is therefore no longer dependent on the use of the central memory whose access times are too slow. This is made possible thanks to a very simple program sequence making it possible to identify with certainty the moments when we must preload in cache the data to be used later.
  • the method of the invention organizes the data table relating to the points of the bitmap and their associated data quadrilateral by quadrilateral, these quadrilaterals being classified in the order of their formation, that is to say in the order of reception of their last vertex (lower right vertex): for example in the case of FIG. 1, quadrilateral 6 (whose last vertex received is Qj + 1) comes immediately after quadrilateral 6A (whose last vertex received is Qj) , and it is immediately followed by quadrilateral 6B (whose last vertex received is Qj + 2).
  • the method of the invention makes it possible to resolve this difficulty by virtue of a characteristic explained below with reference to FIG. 2.
  • FIG. 2 several successive divergent lines of fire 7 to 13 have been represented (originating from a probe shown) and the outline 14 of a bitmap image in the desired viewing position of this image with respect to these lines of fire.
  • the image is zoomed and the bitmap does not represent the entire acquired image.
  • the bitmap intersects, for example, firing lines 8 to 12.
  • analysis points have only been represented for lines 9 and 10.
  • the analysis points are, in general, referenced Pi j , the index i being the sequence number of the shot and the index j the sequence number of the point on the firing line considered.
  • the five analysis points contained in contour 14 are, respectively, P9j, P9J + 1, ... P9J + 4 (j is the rank of the first point of line 9 visible in outline 14).
  • the five analysis points contained in contour 14 are, respectively: P10J, P10, j + 1, ... P10, + 4.
  • the analysis quadrilaterals are identified for example by the coordinates of their upper left vertex.
  • the quadrilaterals between lines 9 and 10 and comprising points visible in bitmap 14 are the quadrilaterals referenced by points P9, j-1 to P9, j + 4.
  • the rule adopted by the invention is that if the first quadrilateral comprising points visible in the bitmap is Pij and if the last quadrilateral comprising points visible in the bitmap is (Pi + nj + n) then all the intermediate quadrilaterals will be assumed to contain each at least one visible point, for which a luminance will be calculated and displayed. In the case where one of these intermediate quadrilaterals does not include any point of the bitmap, we associate with it a unique dummy point, common to all the empty quadrilaterals, for example the first point of the bitmap (the first one at the top, on the left). No calculation is made for the quadrilaterals prior to Pij and those posterior to Pi + n j + n.
  • the method of the invention consists in systematically traversing all the quadrilaterals from Pij to Pi + nj + n and performing for each of them at least one luminance calculation. If a quadrilateral is empty or if it contains only one point of the bitmap, it is considered to contain a single point (dummy or real) and this point is also considered as the last point of the quadrilateral, which is indicated by a special bit (described below). If a quadrilateral has several points, the last of them (in the direction of scanning the bitmap) is also indicated by a special bit.
  • This special bit controls the incrementation of the reading of the data table (luminance table of the vertices of the quadrilaterals) to pass to the reading of the data relating to the next quadrilateral (empty or not) at the end of the calculations relating to the last point of the quadrilateral Analyzing. This avoids the loss of time caused by the search for the next non-empty quadrilateral.
  • This phase begins as soon as you have made a choice of image geometry or zoom factor and want to start the analysis.
  • this position is called
  • POS POS and its value consists of the fractional part of i (firing index), on 5 bits and the fractional part of j (index of the point analyzed on the firing line), on 3 bits.
  • the parameters i and j are the polar coordinates of the treated points, obtained by transformation of the Cartesian coordinates of the points of the bitmap (these Cartesian coordinates are x and y).
  • the above chaining is used to arrange the data in ascending order of their quadrilaterals of belonging.
  • the table has one entry per bitmap point located in one of these quadrilaterals. Each entry in the table (on 32 bits for example) therefore contains the following data (relating to a single point):
  • index table indicating, for each shot, the first and last entries in the data table relating to this shot, as well as the serial numbers of the first and of the last quadrilateral visible for this shot.
  • the invention provides for using the instructions with multiple operands available with the INTEL processors (instructions of the SIMD or MMX type).
  • these instructions there is in particular an operation which carries out at one time four multiplications and two additions. Knowing that in general a quadrilateral can contain several points of the bitmap (except the special cases in the vicinity of the probe cited above), it is advantageous to generate each time that we receive a new data of shooting a multiple operand which concatenates the four values of luminance of vertices of the quadrilateral whose last point received is the bottom right vertex.
  • the four luminance values (La, Lb, Le, Ld) are each defined on 16 bits and concatenated into a 64-bit operand, and on the other hand, the four coefficients (a, b, c , d), also defined on 16 bits, are concatenated, in the same order, into a 64-bit operand.
  • La, Lb, Le and Ld are respectively multiplied by a, b, c, d, and a first addition consists in simultaneously adding on the one hand aLa + bLb, which gives a partial result E, and on the other hand cLc + dLd, which gives another partial result F, these two partial results being concatenated into a 64-bit word, and finally performing a second addition E + F.
  • the conversion operation is carried out, reduced to its simplest expression, namely a calculation loop covering all of the entries in the data table relating to the shot in question, this table being formed during the preparation phase.
  • This loop performs the calculations mentioned above, namely the multiplication of the luminances of the four vertices of the quadrilateral being analyzed by the interpolation coefficients of the bitmap point considered.
  • the luminances were acquired during the shots and stored in cache memory and the coefficients are stored in a constant array of multiple operands, also residing in cache memory.
  • This table of coefficients is indexed by the value (“POS”) of the entry considered in the data table.
  • the calculation program consumes exactly one entry in the data table per path of the loop. We can therefore accurately predict the moment when we will need data from the data table, and use, if it exists, the preload instruction in the processor cache memory.
  • this processor is a Pentium III TM
  • a line of cache memory represents 256 bits, and the optimum is therefore to carry out a preload (called "prefetch" ) of the cache memory every 8 calculated points.

Abstract

The invention concerns an image conversion method applicable in particular to ultrasound echography, which essentially consists, prior to the shots, in preparing a data table and index tables by ordering the bitmap points into visible quadrilaterals as received in the sequence of shots, then, during shots, in preparing a data structure including, for each visible quadrilateral, the values of its four peaks, and after each shot, in calculating the values of all the points of the bitmap which can be displayed.

Description

PROCEDE DE CONVERSION D'IMAGES POUR PRESENTATION SOUS IMAGE CONVERSION PROCESS FOR PRESENTATION UNDER
FORME BITMAPBITMAP FORM
La présente invention se rapporte à un procédé de conversion d'images pour présentation sous forme bitmap.The present invention relates to a method for converting images for presentation in bitmap form.
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 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 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, 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.The acquisition of images in fields such as medical ultrasound, radars, lidars or sonars is generally carried out by “shots” of emission beams, their echoes being collected in the direction of the emission beams . These echoes are reflected, on reception, by luminance values of points arranged, after data processing, on the different directions of the beams, which are generally parallel or radial. However, the commonly used display devices have a “bitmap” display and are either television type or pixel type scanning screens with a matrix layout (liquid crystal screens). The pixels of these display devices generally have a higher density than that of the echoes and a different arrangement. It is therefore necessary, to constitute a “bitmap” image, to convert the various points collected, or more exactly their respective luminances, into points with a matrix layout, and to interpolate between the points collected in order to be able to present a “bitmap” image without gaps.
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 type bitmap, procédé qui permette un traitement le plus rapide possible.The subject of the present invention is a method of converting images acquired using parallel and / or radial “shots” into bitmap type images, a method which allows processing as quickly as 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 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 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 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.The method according to the invention consists, consists, before a sequence of shots, and for a given bitmap display format, in determining for each point of the bitmap, if it belongs to an analysis polygon, each polygon d analysis being defined by at least two consecutive points of a shot and by the two points of the same rank of the next shot, and if so, to chain it to the last point of the bitmap found in this polygon, to determine its position in the polygon, to reorganize the data thus collected according to the order of arrival of the points in the order of the shots, to locate the last point of each non-empty polygon, to associate with each of the empty polygons a determined point of the bitmap, then , during the shootings, to produce for each point received an operand comprising the luminances of at least four of the vertices of the polygon whose point in question is the last vertex received which identifies it, to arrange these operands in the order of reception of the corresponding points, and, at the end of each shot, to calculate the luminance of each point contained in each of the polygons taken in the order of reception of the vertices identifying them, this calculation being made according to an appropriate interpolation law from the luminances of at least the vertices of the polygon containing the point in question, the passage from one polygon to the next being controlled when the last point contained in this polygon is detected, to memorize the luminosities of the points thus calculated and to produce the bitmap image by reading the luminosities of the points thus memorized.
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.Advantageously, the polygons are quadrilaterals. According to another characteristic of the invention, during the processing of a set of points of the bitmap, the loading into cache memory of the data necessary for processing a following set of points of the bitmap is forced.
Selon encore une autre caractéristique de l'invention, les coefficients de la loi d'interpolation sont stockés dans une table adressée par la position des points dans le polygone examiné.According to yet another characteristic of the invention, the coefficients of the interpolation law are stored in a table addressed by the position of the points in the polygon examined.
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.According to yet another characteristic of the invention, a data table is made up containing the Cartesian addresses of each point of the bitmap and its relative position inside the corresponding polygon. According to yet another characteristic of the invention, said data table is organized in ascending order of shots and of acquired polygons and that it contains information signaling the last point of the polygon in question.
Selon encore une autre caractéristique de l'invention, 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.According to yet another characteristic of the invention, a table is created containing the luminance operands of the vertices of each polygon, in the order of acquisition of these polygons, before calculating the luminances of the points of the 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 polygones visibles dans la bitmap.According to yet another characteristic of the invention, a table is created giving, for each shot, the indices of the first and last polygons visible in the 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.According to yet another characteristic of the invention, a global table is created giving, for each shot, the addresses of the first entry and of the last entry of the bitmap data table for a given bitmap. According to yet another characteristic of the invention, the bitmap point associated with each of the empty polygons is the same for all these polygons.
Selon encore une autre caractéristique de l'invention, le point 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.According to yet another characteristic of the invention, the point produced for each of the empty polygons is a point on the edge of the bitmap, which is whitened or blackened at the end of the calculation of the bitmap according to the background color of the 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 ultrasonore, caméra acoustique, radar, appareil de RMN.According to yet another characteristic of the invention, the method is applied to at least one of the following fields: ultrasound medical imaging, acoustic camera, radar, NMR apparatus.
La présente invention sera mieux comprise à la lecture de la description détaillée d'un mode de mise en œuvre, pris à titre d'exemple non limitatif et illustré par le dessin annexé, sur lequel :The present invention will be better understood on reading the detailed description of an embodiment, taken by way of nonlimiting example and illustrated by the appended drawing, in which:
• la figure 1 est un diagramme simplifié relatif à un procédé de conversion d'images de l'art antérieur ; et• Figure 1 is a simplified diagram relating to a method of converting images of the prior art; and
• la figure 2 est un diagramme simplifié servant à expliquer le procédé de l'invention.• Figure 2 is a simplified diagram for explaining the method of the 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 limitée à cette seule application, et qu'elle peut être mise en œuvre 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.The invention is described below with reference to the conversion of medical ultrasound images, but it is understood that it is not limited to this single application, and that it can be implemented for the conversion of images supplied by various apparatuses operating on the principle of "shots", and scanning a portion of space, whether these shots are parallel to each other and / or radial, such as for example radars, sonars, NMR,. .. There is shown in Figure 1, in a simplified manner, two consecutive and intangible lines of fire 1, 2 of an ultrasound probe.
Ces deux lignes sont radiales (divergentes), mais les explications ci-dessous 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 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 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 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+1 d'une part, et entre les points Qj et Qj+1, et dix des points de ces trois lignes sont compris dans le quadrilatère 6 dont les quatre sommets sont Pj, Pj+1, Qj, Qj+1. Soit A un de ces dix points, situé sur la 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 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.These two lines are radial (divergent), but the explanations below remain valid if these lines are parallel to each other. The rank of line 1, in the firing order of the different lines is i, and that of line 2 is i + 1. On each of these two lines, the consecutive echoes are represented by points: for line 1, they are references Pj-1, Pj, Pj + 1, Pj + 2, ... and ... Qj-1, Qj, Qj + 1, Qj + 2 ... for line 2, the indices ... j-1, j, j + 1, ... corresponding to the same shooting distances from one line to the next. On the other hand, three consecutive and immaterial lines 3, 4, 5 are shown which are parallel to each other and on which the points are regularly aligned. spaced from a bitmap (raster) image as displayed on a CRT monitor screen or a liquid crystal or plasma screen. In the drawing, which is shown relatively far from the probe from which the firing lines start, the density of the bitmap points is higher than that of the P and Q points of lines 1 and 2, but it is understood that in the vicinity of the probe, the reverse may be true. In FIG. 1, the lines 3, 4, 5 pass between the points Pj and Pj + 1 on the one hand, and between the points Qj and Qj + 1, and ten of the points of these three lines are included in the quadrilateral 6 whose four vertices are Pj, Pj + 1, Qj, Qj + 1. Let A be one of these ten points, located on line 4. This point, like all the other points of the bitmap, has Cartesian coordinates x and y, and its luminance is noted Lx, y because it depends on its position relative at the "luminous" points Pj, Pj + 1, Qj and Qj + 1, which are the only luminous points in the immediate vicinity of A. We could also take into account the points not immediately adjacent to A and located on lines 1 and 2 and / or on the previous and next lines, but, in general, this complicates the calculation without significantly improving the bitmap image.
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+1,j et Li+1,j+1, les luminances 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 :As is well known, the luminance Lxy of point A is calculated as follows. Let Lij, Li, j + 1, Li + 1, j and Li + 1, j + 1, be the respective luminances of the points Pj, Pj + 1, Qj, Qj + 1 and a, b, c, d of the dependent coefficients relative distances from point A to said four vertices of quadrilateral 6. We then have:
Lxy = aLij + bLij+1 + cLi+1j + dLi+1j+1 Une telle combinaison linéaire de quatre luminances n'est pas la 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, ...).Lxy = aLij + bLij + 1 + cLi + 1j + dLi + 1j + 1 Such a linear combination of four luminances is not the only possible way to calculate Lxy, which can be calculated according to other types of combination (nonlinear , with more than four points, ...).
A partir de ces données, le processus de conversion effectue les étapes E1 à E5 suivantes :From this data, the conversion process performs the following steps E1 to E5:
E1 - Dès la fin du calcul de la luminosité d'un point de la bitmap, il détermine les coordonnées (x,y) du prochain point à afficher.E1 - As soon as the brightness of a point in the bitmap has been calculated, it determines the coordinates (x, y) of the next point to be displayed.
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 œuvre le processus de conversion rappelé ci-dessus.E2 - It determines the analysis quadrilateral to which this next point belongs. E3 - It calculates the interpolation coefficients (a, b, c, d) relative to this next point. E4 - It calculates the luminance of this next point from the above-mentioned interpolation coefficients. E5 - It stores this luminance value in the memory defining the bitmap. In general, each shot and the resulting luminance data take place in sequence, and it may be advantageous, immediately after making two successive shots, to calculate the luminances of all the points of the bitmap located between the lines (lines of shot) relating to these two shots. Two different approaches are known for implementing the conversion process recalled above.
Selon la première approche, les étapes E1 à 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 957846, par exemple, décrit un algorithme permettant de réaliser l'étape E1 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.According to the first approach, steps E1 to E5 are carried out in real time, as the luminance data is acquired. Patent US-A-5 957846, for example, describes an algorithm allowing step E1 to be carried out by addressing a bitmap by polar exploration (rotation of a scanning line around a fixed point located at the intersection of the lines shooting). This process requires little storage memory, but requires a lot of calculations.
Selon une deuxième approche, qui s'applique lorsque les points de la bitmap ont une position fixe d'une trame d'image à la suivante par rapport aux quadrilatères d'analyse, les étapes E1 à 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 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 œuvre de cette deuxième approche est relativement complexe et ne peut 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 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 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é 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.According to a second approach, which applies when the points of the bitmap have a fixed position from one image frame to the next with respect to the analysis quadrilaterals, the steps E1 to E3 are calculated once and for all. We then produce an array of data, stored in memory. This table contains the successive coordinates (x, y) of the points of the bitmap, their quadrilaterals of belonging, their interpolation coefficients. The data in this table are then called in real time, as successive shots are taken for the calculations in step E4. This process is technically feasible since the memories of current processors are sufficiently large (typically, the memory capacity required is a few megabytes). Currently, the second approach tends to supplant the first because it is faster and requires less computing means than the first, the current most efficient processors being sufficient to perform the necessary calculations in real time. However, the implementation of this second approach is relatively complex and cannot be done on common personal computers, especially if one uses ultrasonic probes with a large number of piezoelectric elements. Indeed, the number of points included in an analysis quadrilateral is variable (from zero to the entire bitmap), depending on the zoom factor and the location of the quadrilateral. In addition, some quadrilaterals may not contain any bitmap points. This results in a complexity in the logic of the unfolding and connection of the algorithm, which spends a lot of time looking for the next non-empty quadrilateral, this time spent "unproductive", being too large compared to the time taken to calculate the luminance points in the bitmap. Another consequence is that it is difficult to anticipate the precise course of the process. This is particularly troublesome when you want to use a personal computer processor to perform the conversion. Indeed, such a processor has a cache memory much faster than the central memory (large capacity in general), but this cache memory is of limited capacity, and does not allow to store the entire data table as as defined by the known method.
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 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 sûr 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 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).The present invention makes it possible to use the precharging instructions in cache memory to store therein in advance the data of the data table which will be requested in the near and foreseeable future. It is therefore no longer dependent on the use of the central memory whose access times are too slow. This is made possible thanks to a very simple program sequence making it possible to identify with certainty the moments when we must preload in cache the data to be used later. The method of the invention organizes the data table relating to the points of the bitmap and their associated data quadrilateral by quadrilateral, these quadrilaterals being classified in the order of their formation, that is to say in the order of reception of their last vertex (lower right vertex): for example in the case of FIG. 1, quadrilateral 6 (whose last vertex received is Qj + 1) comes immediately after quadrilateral 6A (whose last vertex received is Qj) , and it is immediately followed by quadrilateral 6B (whose last vertex received is 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 à 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 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.The only expected branching therefore occurs when we have processed the last bitmap point of a quadrilateral and we have to move on to the next point to be processed (branching consists in answering the question: "the point coming after the one who has just been treated is it located in the next quadrilateral? "). The problem is that there can occur cases where the next quadrilateral containing at least one point of the bitmap is not the next, but the second or the third neighbor. This kind of situation arises in particular when the quadrilaterals are those of an area close to the probe. In such an area, the density of the analysis points (echoes received by the probe) is greater than the density of the points in the bitmap. There is therefore not, on average, one bitmap point per analysis quadrilateral.
Le procédé de l'invention permet de résoudre cette difficulté grâce à 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 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 Pi j, 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 tir considérée. Sur la ligne 9 (i = 9), les cinq points d'analyse contenus dans le contour 14 sont, respectivement, P9j, P9J+1, ... P9J+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 : P10J, P10,j+1, ... P10,+4. Les quadrilatères d'analyse sont repérés par 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 dernier quadrilatère comprenant des points visibles dans la bitmap est (Pi+nj+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, 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 à Pi+nj+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 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 quadrilatère en cours d'analyse. Ainsi, on évite la perte de temps causée par la recherche du quadrilatère non vide suivant.The method of the invention makes it possible to resolve this difficulty by virtue of a characteristic explained below with reference to FIG. 2. In this FIG. 2, several successive divergent lines of fire 7 to 13 have been represented (originating from a probe shown) and the outline 14 of a bitmap image in the desired viewing position of this image with respect to these lines of fire. In the example shown in this figure, the image is zoomed and the bitmap does not represent the entire acquired image. The bitmap intersects, for example, firing lines 8 to 12. To simplify the drawing, analysis points have only been represented for lines 9 and 10. The analysis points are, in general, referenced Pi j , the index i being the sequence number of the shot and the index j the sequence number of the point on the firing line considered. On line 9 (i = 9), the five analysis points contained in contour 14 are, respectively, P9j, P9J + 1, ... P9J + 4 (j is the rank of the first point of line 9 visible in outline 14). On line 10 (i = 10), the five analysis points contained in contour 14 are, respectively: P10J, P10, j + 1, ... P10, + 4. The analysis quadrilaterals are identified for example by the coordinates of their upper left vertex. Thus, the quadrilaterals between lines 9 and 10 and comprising points visible in bitmap 14 are the quadrilaterals referenced by points P9, j-1 to P9, j + 4. The rule adopted by the invention is that if the first quadrilateral comprising points visible in the bitmap is Pij and if the last quadrilateral comprising points visible in the bitmap is (Pi + nj + n) then all the intermediate quadrilaterals will be assumed to contain each at least one visible point, for which a luminance will be calculated and displayed. In the case where one of these intermediate quadrilaterals does not include any point of the bitmap, we associate with it a unique dummy point, common to all the empty quadrilaterals, for example the first point of the bitmap (the first one at the top, on the left). No calculation is made for the quadrilaterals prior to Pij and those posterior to Pi + n j + n. Thus, rather than wasting time making a connection, the method of the invention consists in systematically traversing all the quadrilaterals from Pij to Pi + nj + n and performing for each of them at least one luminance calculation. If a quadrilateral is empty or if it contains only one point of the bitmap, it is considered to contain a single point (dummy or real) and this point is also considered as the last point of the quadrilateral, which is indicated by a special bit (described below). If a quadrilateral has several points, the last of them (in the direction of scanning the bitmap) is also indicated by a special bit. This special bit controls the incrementation of the reading of the data table (luminance table of the vertices of the quadrilaterals) to pass to the reading of the data relating to the next quadrilateral (empty or not) at the end of the calculations relating to the last point of the quadrilateral Analyzing. This avoids the loss of time caused by the search for the next non-empty quadrilateral.
On va maintenant décrire en détail le déroulement du processus de conversion d'image selon la présente invention.We will now describe in detail the progress of the image conversion process according to the present invention.
1) - Préparation du tableau de données et de tableaux d'index1) - Preparation of the data table and index tables
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.This phase begins as soon as you have made a choice of image geometry or zoom factor and want to start the analysis.
Il n'est pas nécessaire de l'optimiser, car on dispose typiquement de quelques dixièmes de seconde pour cette phase sans que cela crée une gêne pour l'utilisateur de l'échographe.It is not necessary to optimize it, because we typically have a few tenths of a second for this phase without this creating discomfort for the user of the ultrasound system.
Cette phase se déroule de la façon suivante. Pour chaque pointThis phase takes place as follows. For each 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 point trouvé dans ce quadrilatère, si ce dernier point existe. On détermine aussi la position de ce point dans le quadrilatère.(of rectangular coordinates x, y) of the bitmap, we determine if it belongs to an analysis quadrilateral. If yes, we chain it to the last point found in this quadrilateral, if this last point exists. We also determine the position of this point in the quadrilateral.
Dans le présent exemple, cette position est dénomméeIn the present example, this position is called
« 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 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 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) :“POS” and its value consists of the fractional part of i (firing index), on 5 bits and the fractional part of j (index of the point analyzed on the firing line), on 3 bits. The parameters i and j are the polar coordinates of the treated points, obtained by transformation of the Cartesian coordinates of the points of the bitmap (these Cartesian coordinates are x and y). The above chaining is used to arrange the data in ascending order of their quadrilaterals of belonging. The table has one entry per bitmap point located in one of these quadrilaterals. Each entry in the table (on 32 bits for example) therefore contains the following data (relating to a single point):
> l'adresse (en x, y) du point de bitmap considéré, codée linéairement (par exemple sur 23 bits) ;> the address (in x, y) of the bitmap point considered, linearly coded (for example on 23 bits);
> sa position (« POS ») dans son quadrilatère (par exemple sur 8 bits, comme précisé ci-dessus) ; et> its position (“POS”) in its quadrilateral (for example on 8 bits, as specified above); and
> un drapeau (« flag ») qui est validé si le point en question est le dernier point du quadrilatère (par exemple sur 1 bit).> a flag which is validated if the point in question is the last point of the quadrilateral (for example on 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 nulle pour la position dans le quadrilatère examiné et 1 pour le bit de drapeau.When the analyzed quadrilateral has no visible point in the bitmap, an entry is generated with a null value as an address in the bitmap (upper left point), a zero value for the position in the examined quadrilateral and 1 for the bit flag.
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 d'ordre du premier et du dernier quadrilatères visibles pour ce tir.At the end of this preparation phase, there is also an index table indicating, for each shot, the first and last entries in the data table relating to this shot, as well as the serial numbers of the first and of the last quadrilateral visible for this shot.
- Pendant les tirs- During the shots
De façon à accélérer le calcul final, qui comporte quatre 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 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 ci-dessus), 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 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, Le, Ld) sont définies chacune sur 16 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, Le 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.In order to accelerate the final calculation, which comprises four multiplications and three additions to obtain the luminance of each point, the invention provides for using the instructions with multiple operands available with the INTEL processors (instructions of the SIMD or MMX type). Among these instructions, there is in particular an operation which carries out at one time four multiplications and two additions. Knowing that in general a quadrilateral can contain several points of the bitmap (except the special cases in the vicinity of the probe cited above), it is advantageous to generate each time that we receive a new data of shooting a multiple operand which concatenates the four values of luminance of vertices of the quadrilateral whose last point received is the bottom right vertex. These data are in limited volume, and can therefore all reside in the cache memory of the processor for the subsequent calculation of the luminance of the bitmap points. According to an exemplary embodiment, the four luminance values (La, Lb, Le, Ld) are each defined on 16 bits and concatenated into a 64-bit operand, and on the other hand, the four coefficients (a, b, c , d), also defined on 16 bits, are concatenated, in the same order, into a 64-bit operand. Then, La, Lb, Le and Ld are respectively multiplied by a, b, c, d, and a first addition consists in simultaneously adding on the one hand aLa + bLb, which gives a partial result E, and on the other hand cLc + dLd, which gives another partial result F, these two partial results being concatenated into a 64-bit word, and finally performing a second addition E + F.
- A la fin de chaque tir.- At the end of each shot.
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 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 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 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é à 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 incrementer 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 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 III™, et de l'exemple numérique cité ci- dessus, une ligne de mémoire cache représente 256 bits, et l'optimum est donc de réaliser une précharge (dite « prefetch ») de la mémoire cache tous les 8 points calculés.At the end of each shot, the conversion operation is carried out, reduced to its simplest expression, namely a calculation loop covering all of the entries in the data table relating to the shot in question, this table being formed during the preparation phase. This loop performs the calculations mentioned above, namely the multiplication of the luminances of the four vertices of the quadrilateral being analyzed by the interpolation coefficients of the bitmap point considered. The luminances were acquired during the shots and stored in cache memory and the coefficients are stored in a constant array of multiple operands, also residing in cache memory. This table of coefficients is indexed by the value (“POS”) of the entry considered in the data table. Using the SIMD instructions of the aforementioned processor, all it takes is a multiplication operation - accumulation followed by an addition, and a offset normalization (scaling). The luminance of the bitmap point analyzed is thus obtained directly, which it suffices to store in the bitmap memory at its address, which is provided by the input considered in the data table. If the flag associated with the current entry of the data table is set (i.e. if it corresponds to the last point included in the analyzed quadrilateral), the index of the luminance data table must be incremented formed during the shots. This index then points to the luminances of the next quadrilateral. These two operations form the very compact body of the bitmap image calculation program. It can be seen that, whatever the result of the second operation linked to the state of the flag, the calculation program consumes exactly one entry in the data table per path of the loop. We can therefore accurately predict the moment when we will need data from the data table, and use, if it exists, the preload instruction in the processor cache memory. For example, in the case where this processor is a Pentium III ™, and from the digital example cited above, a line of cache memory represents 256 bits, and the optimum is therefore to carry out a preload (called "prefetch" ) of the cache memory every 8 calculated points.
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 luminance liée au dernier quadrilatère situé en zone visible, mais ne contenant lui-même aucun point de la bitmap. When the entire bitmap has been calculated, you must blacken (or whiten, depending on the choice of background color) the upper left point of the bitmap which holds luminance information linked to the last quadrilateral located in the area visible, but does not itself contain any point of the bitmap.

Claims

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 à 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 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 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 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.1. Method for converting images acquired according to parallel and / or divergent shots into a bitmap type image, characterized in that it consists, before a sequence of shots, and for a given bitmap display format, to be determined for each point of the bitmap, if it belongs to an analysis polygon, each analysis polygon being defined by at least two consecutive points of a shot and by the two points of the same rank of the next shot, and if so , to chain it to the last point of the bitmap found in this polygon, to determine its position in the polygon, to reorganize the data thus collected according to the order of arrival of the points in the order of shots, to locate the last point of each non-empty polygon, to associate with each of the empty polygons a determined point of the bitmap, then, during the shots, to produce for each point received an operand comprising the luminances of at least four of the vertices of the polygon whose point in question is there th last vertex received which identifies it, put these operands in the order of reception of the corresponding points, and, at the end of each shot, calculate the luminance of each point contained in each of the polygons taken in the order of reception of the vertices identifying them, this calculation being made according to an appropriate interpolation law from the luminances of at least the vertices of the polygon containing the point in question, the passage from one polygon to the next being controlled upon detection of the last point contained in this polygon, to memorize the luminosities of the points thus calculated and to produce the bitmap image by reading the luminosities of the points thus memorized.
2. Procédé selon la revendication 1 , caractérisé par le fait que le polygone est un quadrilatère.2. Method according to claim 1, characterized in that the polygon is a quadrilateral.
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. 3. Method according to claim 1 or 2, characterized in that, during the processing of a set of points of the bitmap, the loading in cache memory of the data necessary for the processing of a following set of points of the 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é. 4. Method according to one of the preceding claims, characterized in that the coefficients of the interpolation law are stored in a table addressed by the position of the points in the polygon examined.
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. 5. Method according to one of the preceding claims, characterized in that one constitutes a data table containing the Cartesian addresses of each point of the bitmap and its relative position inside the corresponding polygon.
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.6. Method according to claim 5, characterized in that said data table is organized in ascending order of shots and acquired polygons and that it contains information signaling the last point of the polygon in question.
7. Procédé selon l'une des revendications précédentes, 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.7. Method according to one of the preceding claims, characterized in that a table is created containing the luminance operands of the vertices of each polygon, in the order of acquisition of these polygons, before calculating the luminances of the bitmap points.
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, les indices du premier et du dernier polygones visibles dans la bitmap.8. Method according to one of the preceding claims, characterized in that a table is created giving, for each shot, the indices of the first and last polygons visible in the 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. 9. Method according to one of claims 5 to 8, characterized in that one constitutes a global table giving, for each shot, the addresses of the first entry and of the last entry of the bitmap data table for a bitmap given.
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.10. Method according to one of the preceding claims, characterized in that the bitmap point associated with each of the empty polygons is the same for all these polygons.
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 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.11. Method according to one of the preceding claims, characterized in that the point produced for each of the empty polygons is a point on the edge of the bitmap, which is whitened or blackened at the end of the calculation of the bitmap according to the color of the bitmap background.
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 de RMN. 12. Method according to one of the preceding claims, characterized in that it is applied to at least one of the following fields: ultrasound medical imaging, acoustic camera, radar, NMR apparatus.
PCT/EP2003/050766 2002-12-17 2003-10-29 Method for image conversion for bitmap display WO2004055545A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2003286195A AU2003286195A1 (en) 2002-12-17 2003-10-29 Method for image conversion for bitmap display

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0215992 2002-12-17
FR0215992A FR2848673B1 (en) 2002-12-17 2002-12-17 IMAGE CONVERSION METHOD FOR PRESENTATION IN BITMAP FORM

Publications (1)

Publication Number Publication Date
WO2004055545A1 true WO2004055545A1 (en) 2004-07-01

Family

ID=32338879

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2003/050766 WO2004055545A1 (en) 2002-12-17 2003-10-29 Method for image conversion for bitmap display

Country Status (3)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006113445A1 (en) 2005-04-14 2006-10-26 Verasonics, Inc. Ultrasound imaging system with pixel oriented processing
KR101820422B1 (en) 2008-06-26 2018-02-28 베라소닉스, 인코포레이티드 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

Also Published As

Publication number Publication date
AU2003286195A1 (en) 2004-07-09
FR2848673A1 (en) 2004-06-18
FR2848673B1 (en) 2005-02-18

Similar Documents

Publication Publication Date Title
FR2690770A1 (en) System and method of visualization for video games.
Ye et al. Single image surface appearance modeling with self‐augmented cnns and inexact supervision
US10157496B2 (en) Item model based on descriptor and images
Olsson et al. Tiled shading
FR2920899A1 (en) SLIDE DATA STRUCTURE AND METHOD FOR CHARGING A PARTICLE-BASED SIMULATION USING A SLICED DATA STRUCTURE IN A GPU, ETC
EP0925556A2 (en) Method for reconstructing the three-dimensional image of an object, in particular a three-dimensional angiographic image
JP2000357241A (en) Irradiation device and method for volume data in rendering pipeline
EP1259939B1 (en) Automatic perception method and device
US20130262463A1 (en) Method and system to provide smart tagging of search input
EP2511842B1 (en) Digital model lookup from lightweight stations
Zhu et al. Deep kernel density estimation for photon mapping
FR2966623A1 (en) METHOD FOR ESTIMATING OCCULTATION IN A VIRTUAL ENVIRONMENT
Michel et al. Real time multiscale rendering of dense dynamic stackings
WO2004055545A1 (en) Method for image conversion for bitmap display
CA2651465C (en) Method of coding and system for displaying on a screen a numerical mock-up of an object in the form of a synthesis image
WO2011057997A2 (en) Method for estimating light scattering
EP3327652A1 (en) Automatic selection of items for a computerized graphical advertisement display using a computer-generated multidimensional vector space
EP1021734A1 (en) Method for representing on a display screen a multidirectional data field in particular data supplied by a passive listening sonar, and system for implementing said method
FR2741521A1 (en) METHOD OF AUTOMATICALLY ACQUIRING DOPPLER ANGLE, IN ULTRASOUND, AND ARRANGEMENT FOR IMPLEMENTING THE METHOD
Jeong et al. A Collaborative Digital Pathology System for Multi‐Touch Mobile and Desktop Computing Platforms
FR2674044A1 (en) Arrangement for predicting an instruction address resulting from a branch in a digital data processing system
WO2011058007A2 (en) Method for estimating light scattering
EP0230158B1 (en) Echographic image digital processor with interpolation capability
EP1341080A1 (en) Program instruction processing system
CN113298613A (en) Information interaction method and device

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP