FR 2589265 A1 19870430 FR 8515989 A 19851028 Processeur numérique d'imaqes échoqraphiques, à interpolation L'invention, faite au Laboratoise de Biophysique de l'UER de COCHIN-PORT ROYAL, concerne les processeurs numériques de traitement d'images échographiques permettant de fournir, à partir d'une mémoire d'image contenant des échantillons successifs du signal d'écho suivant plusieurs lignes d'exploration, des signaux destinés à un organe de visualisation à balayage de type télévision (dit Raster scan en terminologie anglosaxonne). Elle concerne plus particulièrement les processeurs capable de fonctionner en temps réel, c'est-à-dire de traiter les informations acquises en mode dynamique, à une cadence qui est généralement de l'ordre de 2 MHz/s. Les dispositifs d'échographie possèdent en général une mémoire d'image, qui permet de conserver l'image échographique obtenue à l'aide d'une sonde de balayage. Parmi les dispositifs d'échographie, certains fournissent des échantillons répartis le long de lignes d'exploration parallèles les unes aux autres, obtenus par balayage électronique à l'aide d'un réseau rectili- néaire de transducteurs. Les échantillons se placent alors aux noeuds d'un réseau rectangulaire. D'autres dispositifs sont à balayage sectoriel mécanique ou électronique et fournissent des échantillons répartis le long de lignes d'exploration divergentes. Dans ce der- nier cas, le processeur numérique associé à la mémoire doit permettre de transformer les coordonnées polaires des échantillons en coordonnées rectangulaires pour permettre la visualisation sur un organe à balayage de type télévision. De plus, cette transformation doit éviter les artefacts liés à la numérisation de lignes obliques par une matrice de mémoire rectangulaire. On connait des processeurs remplissant cette dernière fonction. Le document FR 25 31 783 décrit en particulier un processeur de constitution particulière- ment simple. Des solutions beaucoup plus ccmplexes ont été décrites dans d'autres documents, par exemple FR-A-2 493 649 ou 2 494 022. Les dispositifsdécrits dans ces brevets effectuent une interpolation entre échantillons successifs pour améliorer l'impression visuelle. Mais, dans tous les cas, le processeur ne laisse à l'exploitant du dispositif d'échographie que très peu de liberté pour modifier l'image après sa mise en mémoire. En général, le dispositif ne permet que de modifier le contraste de l'image par modification de l'affectation des niveaux de gris. L'invention vise à fournir un processeur d'images permettant d'effectuer, en plus des fonctions classiques de mise en mémoire, d'interpolation et éventuellement de conversion de balayage sectoriel en affichage de type télévision, des règlages réalisés par voie numérique sur informations stockées en mémoire et correspondant à ceux qui ne sont jusqu'ici applicables qu'à l'information directement reçue de la sonde (et non pas à l'information mémorisée). L'invention vise plus particulièrement à fournir un processeur numérique capable de fonctionner à la cadence requise pour une imagerie dynamique tout en restant de constitution relativement simple. Dans ce but, l'invention propose notamment un processeur comportant: une mémoire d'image comportant plusieurs pages de mémoire accessibles simultanément et organisées en rangées et colonnes, chacune des colonnes contenant tous les échantillons d'une même ligne d'exploration et les rangées correspondant chacune à des échantillons ayant le même retard d'échantillonnage par rapport à l'émission, les échantillons étant répartis entre pages de façon que quatre points constituant un même voisinage autour d'un pixel reconstruit soient dans quatre pages différentes; un calculateur d'adresses permettant de déter- miner, pour chaque pixel à reconstruire, appartenant à une matrice rectangulaire de balayage, les adresses des quatre échantillons du voisinage un opérateur d'interpolation permettant de déterminer la valeur du pixel à partir des quatre échantillons du voisinage; 10. et des moyens pour appliquer au signal de sortie de l'opérateur une correction fonction de la profondeur de l'échantillon, donc du retard d'échantillonnage. Un tel dispositif permet de compenser de façon simple la variation de l'absorption en fonction de la profondeur de l'écho. Un même processeur suivant l'invention est utilisable pour traiter, sans modification des circuits et moyennant un changement simple du logiciel, aussi bien une image obtenue par balayage sectoriel qu'une image constituée d'échantillons prélevés sur des lignes d'exploration parallèles. Le processeur permet dans tous les cas de sélectionner aisément, sur une image figée en mémoire, le format de présentation et l'agrandissement avant d'effectuer par exemple une photographie. L'invention sera mieux comprise à la lecture de la description qui suit d'un mode particulier d'exécu- tion, donné à titre d'exemple non limitatif. La description se réfère aux dessins qui l'accompagnent, dans lesquels: - la Figure 1 est un schéma de balayage sectoriel, indiquant les notations qui seront adoptées pour décrire l'invention. - la Figure 2 est un schéma montrant une répartition des échantillons en rangées et colonnes en mémoire d'image. - la Figure 3 est un schéma à grande échelle destinée à faire apparaître les notations utilisées pour le calcul d'interpolation. - la Figure 4 est un synoptique montrant la constitution générale d'un processeur suivant l'inven- tion. - la Figure 5 est un synoptique du calculateur d'adresses du processeur de la Figure 4. - la Figure 6 est un synoptique de principe de l'interpolateur du processeur de la Figure 4. _ la Figure 7 est un synoptique de principe de moyens de correction utilisables dans le processeur de la Figure 4. Le processeur qui sera maintenant décrit est destiné à être incorporé à un échographe utilisant une sonde à balayage sectoriel, telle que celle décrite dans le document FR 25 09 486. Un tel échographe permet de stocker une image sous forme d'échantillons répartis suivant des lignes d'exploration divergeant à partir d'un point dans un secteur angulaire 8. On désignera par Nm le nombre de lignes et par nm le nombre d'échantil- lons prélevé, à intervalles de temps égaux, sur chaque ligne d'exploration. Les échos qui se succèdent le long d'une ligne sont numérisés à une fréquence f, généra- lement de quelques MHz, après avoir été soumis à une amplification logarithmique et avoir subi une détection d'enveloppe. Souvent, on adoptera un balayage à N = 128 m lignes de chacune n = 512 échantillons. m Les échantillons ainsi recueillis sont stockés dans une mémoire numérique de dimension suffisante pour une image complète. Pour présenter sur un écran à balayage de type télévision l'information contenue dans la mémoire en respectant la répartition géométrique des échos, il faut effectuer une transformation de coordon- nées et affecter une valeur à chacun des pixels répartis sur l'écran suivant des lignes de balayage (direction X) se succédant dans la trame de représentation suivant la direction Y orthogonale à X. Souvent on exploitera la symétrie du balayage sectoriel en prenant l'origine des X au milieu de l'écran de visualisation, l'origine des Y étant en haut de l'écran et correspondant au point de divergence des lignes d'exploration. La valeur du pixel de coordonnées (X, Y) est idéalement celle de l'échantillon stocké dans la mémoire à l'adresse de (n, N) telle que: n = x2 + y2 N - Nm/2 = (1/AO) arctg X/Y mais, étant donné que l'on ne dispose que d'échantillons discrets, on obtiendra en général pour n et N des valeurs comportant une partie décimale. La partie entière de ces valeurs correspondra à l'un des échan- tillons du voisinage du pixel à afficher sur l'écran. Sur la figure 3 (qui correspond à un fragment de la partie droite de la figure 1), on voit que la valeur (brillance par exemple) à attribuer au pixel (X,Y) peut être calculée à partir des quatre points du voisinage qui entourent (X,Y) dans la mémoire d'images par interpolation, à condition de disposer des valeur A n et A N: (X, Y) = (N, n). I (AN, An) + (N+1, n). I (1-AN, An) + (N, n+1). I (AN, 1-An) + (N+1, n+1). I (1-AN, 1- An) Dans cette formule, la fonction I est la fonc- tion d'interpolation. Pour des raisons de simplicité on utilisera généralement l'interpolation bilinéaire de la forme: I (AN, An) = (1 - AN) . (1 - An) On peut évidemment utiliser d'autres fonctions faisant intervenir quatre points, sans aucune compli- cation. On peut même, mais en compliquant notablement le système, faire intervenir plus de quatre points dans une direction et/ou dans l'autre. On voit que, pour chacun des pixels de la matrice de visualisation, il faut calculer les valeurs N+ AN et n + An qui correspondent à ces coordonnées X, Y. Il faut ensuite extraire de la mémoire d'image les quatre points du voisinage et effectuer sur les quatre valeurs numériques correspondantes les calculs d'inter- polation pour obtenir la valeur exacte du pixel X, Y et cela sur chaque pixel d'une ligne du balayage horizon- tal. Dans le cas d'un balayage télévision standard, le calcul doit être renouvelé 512 fois par ligne, c'est- à-dire en 125 ns au maximum. Le processeur dont le schéma est donné en figure 3 répond à cette nécessité. Il est associé à un appareil d'échographie 10 que l'on supposera de type classique, muni d'une sonde 12 de balayage sectoriel dans un angle 8 et à un organe de visualisation 14 qu'on supposera être un moniteur de télévision. L'appareil d'échographie 10 fournit, sur sa sortie de données, un signal représentatif de l'écho reçu, après une amplification qui est généralement logarithmique. Le processeur 16 comporte un échantillonneur d'entrée muni d'un convertisseur analogique-numérique 18 qui numérise chaque échantillon, fréquemment sous forme d'un mot de six éléments binaires ou bits à une fréquence fixée par une horloge 19 qui cadence l'ensemble du système. La sortie du convertisseur 18 attaque une mémoire d'image 20 de capacité suffisante pour stocker un nombre de mots au moins égal au nombre d'échantillons recueillis dans une image échographique-complète. La mémoire d'image 20 est une mémoire vive, statique ou dynamique, organisée en colonnes et rangées. Dans une même colonne seront stockés tous les n mots m d'une même ligne d'exploration (en général 512 mots). Les n rangées correspondront alors chacune à un temps m d'échantillonnage donné. Pour utiliser la symétrie de l'image, les parties gauche et droite de cette dernière seront généralement placées dans des boîtiers différents, & des adresses identiques pour des points symétriques par rapport à l'axe de l'image. Conformément à l'invention, et pour permettre d'accéder simultanément aux quatre échantillons entourant un même pixel, les échantillons de deux lignes successives sont rangées dans des pages différentes et accessibles simultanément de la mémoire d'image (pages qui peuvent être matérialisées par des boîtiers diffé- rents). De même, deux échantillons successifs sur une même ligne d'exploration sont également rangés dans des pages différentes et accessibles simultanément. Ainsi, quatre échantillons voisins entourant un pixel à recons- truire seront dans quatre pages différentes et seront accessibles simultanément. Les quatre échantillons correspondant à un pixel symétrique du premier du premier par rapport à l'axe de l'image, stockés dans quatre autres pages, pourront être également relues en même temps. Dans la pratique, diverses répartitions d'échan- tillons sont possibles. A titre de simple exemple, on peut affecter deux boîtiers aux lignes paires, deux boîtiers aux lignes impaires d'exploration et, pour chaque ligne, ranger les échantillons pairs dans un boîtier et les échantillons impairs dans l'autre. Le processeur 16 comporte un calculateur d'adresse 22 permettant, pour chaque pixel d'une ligne de visualisation à son tour,de déterminer les adresses des quatre échantillons à prélever et les valeurs de An et AN, qui seront utilisées pour l'interpolation. En général, le calcul des adresses s'effectuera sur chaque ligne du balayage télévision à son tour, c'est-à-dire pour des valeurs croissantes de Y, et pour chaque ligne, pour des pixels successifs à partir de la ligne médiane de l'image. On exploitera généralement la symétrie de l'image pour calculer simultanément les adresses pour les parties droite et gauche de cette image. La figure 5 montre une constitution possible du calculateur d'adresses. Les valeurs de X et Y à partir desquelles sont calculées les adresses des échantillons utilisés au cours du calcul sont déduites des impulsions d'horloge provenant du moniteur de télévision 14 à la cadence de balayage des pixels dans une ligne et à la cadence des retours de ligne. Le signal d'horloge à la cadence de balayage des pixels est appliqué sur l'entrée 24 d'un compteur 26 initialisé, à partir de l'horloge de ligne, à une valeur négative correspondant au demi-nombre de pixels sur une ligne. La sortie du compteur 26 fournit en conséquence X qui est appliqué à l'entrée d'une matrice de transcodage 28, généralement constituée par une mémoire morte programmable, qui fournit X2. De façon similaire, un signal d'horloge à la cadence de ligne est appliqué sur l'entrée 30 d'un compteur de lignes 32 qui fournit Y à une seconde matrice de transcodage 34, similaire à la matrice 28. Les sorties des matrices 28 et 34 sont appliquées aux deux entrées d'un additionneur 36 qui fournit X + y2 Une nouvelle matrice de transcodage, qui sera généralement encore une mémoire morte pr- grammable 38, fournit IX2 + y2 sous forme d'un mot de plusieurs bits, 10 à 14 bits en général. Les bits de poids fort, en nombre correspondant à celui requis pour représenter les points disponibles en mémoire d'image, fournissent l'adresse n du point du voisinage situé en haut du pixel, à gauche de ce dernier dans la partie droite de l'image. Les bits de poids faible fournissent la valeur d'interpolation An. Dans le mode de réalisation montré en figure 5, la fonction X/Y est calculée en effectuant une somme itérative de 1/Y. Pour cela, la sortie du compteur 32 est appli- quée à une mémoire morte 40 qui fournit 1/Y. La valeur de 1/Y est appliquée à l'entrée d'un additionneur 42 qui reçoit également la sortie d'un registre 44 relié à la sortie de l'additionneur. L'accumulation s'effectue ainsi sur X pas successifs de façon à fournir X/Y sous la forme: X X/Y= E 1/Y la valeur de X/Y est également appliquée à l'entrée d'une mémoire morte programmable 46 qui fournit arctg X/Y. Les bits de poids fort de cette sortie fournissent N tandis que les bits de poids faible fournissent AN. Par simple addition d'une unité on dispose également de n + 1 et N + 1. Le schéma de la figure 5 est complété par des moyens d'initialisation et des moyens (non représentés) affectant des valeurs arbitraires pour le calcul des pixels de la première et de la dernière ligne de balayage de l'image télévision. La valeur (X,Y) à affecter aux pixels de coordonnées X,Y est déterminée à partir des valeurs contenues dans la mémoire d'image 20, par un interpolateur 48 (Figure 4). Cet interpolateur 48 peut avoir la constitution de principe montrée en figure 6. Il reçoit, sur quatre entrées, les mots représentant les échantillons stockés en mémoire 20 aux adresses N, n; N, n+ 1; N + 1, n; et N + 1, n + 1. Ces adresses sont fournies directement par le calculateur 22 à la mémoire d'image 20. L'interpolateur montré en figure 6 comporte quatre matrices de calcul identique 50, constituées par des mémoires mortes programmables, destinées chacune à multiplier la valeur affectée à l'un des points du voisinage par le coefficient d'interpolation approprié, An, AN, 1 - An ou 1 - AN (deux de ces valeurs étant obtenues par complémentation à l'aide d'inverseurs 52. Les sorties des mémoires 50 sont appliquées à des sommateurs 54 et 56 qui fournissent en sortie la valeur (X,Y) à affecter aux pixels X, Y. Les résultats fournis par l'interpolateur peuvent être appliqués directement à un circuit 58 ayant une mémoire de ligne et un convertisseur N/A, attaquant le moniteur vidéo 14. Cependant, le processeur suivant l'invention comporte avantageusement des moyens permettant d'effectuer, sur l'information contenue en mémoire d'image 20, des traitements de compensation, de l'atténuation en profondeur et/ou de modification du format de présentation de l'image échographique. Le processeur dont le schéma est montré en figure 4 comporte par exemple un circuit de correction de gain 60 permettant de compenser les variations d'absorption par le milieu en fonction de la profondeur de l'écho. Le circuit de correction de gain 60 schématisé en figure 7 utilise le fait que les échos subissent une amplification logarithmique avant d'être stockés en mémoire d'image 20. De ce fait, une correction d'ampli- fication revient à une addition. Si, ce qui est le cas le plus fréquent, l'amplification a doit varier exponen- tiellement en fonction de la profondeur 1 de l'écho, la correction se résume à une addition puisque log [a (1). exp (a 1)] = log a (1) + " 1 Dans le mode de réalisation illustré, la valeur de a est introduite dans le processeur à l'aide d'un clavier 62 et elle est stockée dans la mémoire de travail d'un micro-processeur 64. Le micro-processeur 64 calcule les valeurs de la fonction a 1 et les stocke dans une mémoire vive 66, à des adresses successives correspondant à une série de valeurs ouvrant toute la plage de variation de la profondeur 1. Au cours de l'opération de chargement de la mémoire 66, le commu- tateur d'adressage 68 est dans la position montrée en traits pleins. Ultérieurement, lors de l'exploitation, la mémoire 66 présente sur sa sortie la valeur d'amplification correspondant à l'adresse la plus proche de X2 + Y2. La correction proprement dite est effec- tuée dans un additionneur 70 qui reçoit la sortie de la mémoire 66 et celle de l'interpolateur 48. La valeur corrigée (brillance du pixel) apparaît sur la sortie de l'additionneur 70. _ __ Il est important de noter que la valeur de X2+y2 est disponible du fait que son calcul est néces- saire pour l'interpolation, et que le fait d'effectuer la correction lors de la restitution (au lieu de la faire avant écriture en mémoire des échantillons) n'implique pas de complication appréciable. La mémoire du circuit 58, constituant tampon, sera généralement organisée en deux pages ayant chacune une contenance correspondant au nombre de pixels d'une ligne de balayage télévision. L'une des pages est remplie par les données correspondant à une ligne, pen- dant que l'autre est lue par le convertisseur fournis- sant le signal vidéo analogique appliqué au moniteur 14. Le circuit 60 peut comporter également des moyens permettant d'effectuer d'autres traitements, telle que la modification du contraste et le traitement non linéaire du niveau de brillance. Il suffit pour cela d'utiliser une matrice de transcodage constituée par une mémoire programmable. Le processeur qui vient d'être décrit est appli- cable sans modification de ses circuits au traitement des signaux fournis par une sonde de balayage rectili- néaire. Il suffit pour cela que le calculateur d'adresses 22 comporte des boîtiers de mémoire morte contenant un second programme dans lequel la fonction arctg X/Y est remplacée par une fonction linéaire de X. Dans le cas d'un tel balayage, il est particu- lièrement aisé de modifier l'agrandissement de l'image et de sélectionner une zone particulière de cette dernière en vue de l'affichage. Il suffit en effet dans ce cas d'introduire, à l'aide du clavier 62, les coor- données d'un des angles de la zone rectangulaire à visualiser et l'agrandissement souhaité. Le calculateur d'adresses pourra déterminer, à partir de ces éléments, les valeurs n, An, N et AN correspondant à chacun des pixels à visualiser, en effectuant uniquement des multiplications et des additions. Il est également possible, sans rien perdre de la rapidité du dispositif et au prix d'une simple augmentation du nombre des boîtiers de mémoire morte, de donner une possibilité de choix du format de visuali- sation. On dispose en effet en mémoire de l'ensemble des échantillons et il suffit que l'ensemble des valeurs de X et Y soient affectées d'un facteur de proportionnalité par les mémoires mortes 28, 34 et 40, pour que seule une fraction de l'image enregistrée soit visua- lisée, avec un agrandissement correspondant à la fraction retenue. Au prix d'une sujétion qui est généralement sans inconvénient réel (l'image visualisée reste symétrique par rapport à la ligne centrale d'exploration) , on peut disposer de plusieurs formats selectionnables par simple choixentre plusieurs jeux de mémoires, ce qui n'implique qu'un coût additionnel faible. REVENDICATIONS: 1. Processeur numérique de traitement d'images échographiques, caractérisé en ce qu'il comprend: une mémoire.d'image (20) comportant plusieurs pages de mémoire accessibles simultanément et organisées en rangées et colonnes, chacune des colonnes contenant tous les échantillons d'une même ligne d'exploration et les rangées correspondant chacune à des échantillons ayant le même retard d'échantillonnage par rapport à l'émission, les échantillons étant répartis entre pages de façon que quatre points constituant un même voisinage autour d'un pixel reconstruit soient dans quatre pages différentes; un calculateur d'adresses (22) permettant de déterminer, pour chaque pixel à reconstruire, appartenant à une matrice rectangulaire de visualisa- tion, les adresses en mémoire des quatre échantillons du voisinage; un opérateur d'interpolation (48) permettant de déterminer la valeur du pixel à partir des quatre échantillons du voisinage; et des moyens (60) pour appliquer au signal de sortie de l'opérateur une correction fonction de la profondeur de l'échantillon, donc du retard d'échantillonnage. 2. Processeur numérique de traitement d'images échographiques, caractérisé en ce qu'il comprend: une mémoire d'image (20) comportant plusieurs pages de mémoire accessibles simultanément et organisées en rangées et colonnes, chacune des colonnes contenant tous les échantillons d'une même ligne d'exploration et les rangées correspondant chacune à des échantillons ayant le même retard d'échantillonnage par rapport à l'émission, les échantillons étant répartis entre pages de façon que quatre points constituant un même voisinage autonr d'un pixelreconstruit soient dans quatre pages différentes un calculateur d'adresses (22) permettant de déterminer, pour chaque pixel à reconstruire, appartenant à une matrice rectangulaire de visualisa- tion, les adresses en mémoire des quatre échantillons du voisinage, l'opérateur comprenant plusieurs jeux de mémoires mortes de codage, chaque jeu correspondant à l'affectation de la totalité de pixels de la matrice rectangulaire de visualisation à une fraction différente du contenu de mémoire de façon à autoriser la sélection parmi plusieurs formats de visualisation. 3. Processeur selon la revendication 1 ou 2, caractérisé en ce que, en vue de permettre l'affichage d'une image obtenue par balayage sectoriel sur un organe de visualisation à balayage de type télévision, le calculateur d'adresse (22) comporte des moyens permettant de déterminer, à partir des coordonnées X, Y d'un pixel sur l'organe de visualisation, les adresses des quatre échantillons du voisinage du point et des valeurs d'interpolation entre ces quatre points. 4. Processeur selon la revendication 3, caracté- risé en ce que le calculateur d'adresses (22) comporte des mémoires mortes programmables de détermination des valeurs X2 + y2 et arctg X/Y sous forme de mots de plusieurs bits dont les bits de poids fort fournissent l'adresse d'un des échantillons du voisinage et les bits de poids faible des valeurs d'interpolation. 5. Processeur selon la revendication 4, caractérisé en ce que les mémoires mortes comprennent plusieurs jeux de boîtiers fournissant X2, y2 et 1/Y, pour plusieurs formats de présentation différents et un seul jeu de mémoires mortes fournissant ix2 + y2 à partir de X2 et y2 et arctg X/Y à partir de 1/Y. 6. Processeur selon l'une quelconque des revendications 1 à 5, caractérisé en ce que l'opérateur d'interpolation (48) comporte des mémoires mortes programmables de codage (50) identiques, réalisées de façon à multiplier chacune la valeur d'un des échantillons du voisinage avec une valeur de pondération fournie par le calculateur d'adresses. 7. Processeur selon l'une quelconque des reven- dications précédentes, caractérise en ce que les moyens (62) de correction comportent un micro processeur-de calcul d'atténuation en fonction de la profondeur, une mémoire adressable (66) de stockage de l'atténuation pour diverses valeurs de la profondeur, et un addition- neur monté de façon à recevoir d'une part la valeur de l'écho après amplification 'Logarithmique de ce dernier et d'autre part la valeur de l'atténuation.