• Aucun résultat trouvé

Application d'un cache 2D prédictif à l'accélération de la rétroprojection TEP 2D

N/A
N/A
Protected

Academic year: 2021

Partager "Application d'un cache 2D prédictif à l'accélération de la rétroprojection TEP 2D"

Copied!
24
0
0

Texte intégral

(1)

HAL Id: hal-00122552

https://hal.archives-ouvertes.fr/hal-00122552

Submitted on 19 Jan 2020

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de

Application d’un cache 2D prédictif à l’accélération de la rétroprojection TEP 2D

Stéphane Mancini, Nicolas Gac, Michel Desvignes, O. Bourrion, O. Rossetto

To cite this version:

Stéphane Mancini, Nicolas Gac, Michel Desvignes, O. Bourrion, O. Rossetto. Application d’un cache

2D prédictif à l’accélération de la rétroprojection TEP 2D. Traitement du Signal, Lavoisier, 2006, 23,

pp.Numéro 5-6. �hal-00122552�

(2)

Application d’un cache 2D pr´edictif ` a l’acc´el´eration de la r´etroprojection TEP 2D

2D PET backprojection acceleration through a 2D predictive cache

S. Mancini 1 , N. Gac 1 , M. Desvignes 1 , O. Bourrion 2 , O. Rossetto 2

1 Laboratoire des Images et des Signaux, Grenoble, France

2 Laboratoire de Physique Subatomique et Cosmologie, Grenoble, France

Mots cl´ es : imagerie TEP, Reconstruction, R´ etro-projection, Ad´ equation Algo- rithme Architecture, Partitionnement mat´ eriel/logiciel, System on Programmable Chip, Cache, FPGA

Key words : PET imaging, Reconstruction, Backprojection, Algorithm Architecture Adequacy, Hardware/software partitionning, System on Programmable Chip, Cache, FPGA

R´ esum´ e : Le d´ eveloppement et la diffusion des ´ equipements TEP passent par la r´ eduction des temps de calcul de la reconstruction des images acquises. Aussi cet article pr´ esente une solution mixte logicielle/mat´ erielle pour l’acc´ el´ eration de la reconstruction 2D sur une plateforme SOPC (System on Programmable Chip), la nouvelle g´ en´ eration de circuits reconfigurables. Le verrou technologique pos´ e par la latence des acc` es m´ emoire est lev´ e grˆ ace au cache 2D Adaptatif et Pr´ edictif (cache 2D-AP).

Abstract : Reduction of image reconstruction time is a key point for the development and spreading of PET scans. Thus this article presentes a hardware/software architecture which aims at accelerating the 2D reconstruction on a SoPC (System on Programmable Chip) plateform, the new generation of reconfigurable chip. Issue posed by the latency of memory accesses has been solved thanks to the 2D Aptative and Predictive cache (2D-AP cache).

1 Introduction

La tomographie d’´ emission de positons (TEP) est une imagerie nucl´ eaire fonc- tionnelle in vivo utilisant des marqueurs radioactifs qui permet de nombreuses explora- tions des syst` emes biologiques en raison de la vari´ et´ e des traceurs [6], compl´ ementaire aux autres techniques d’imagerie m´ edicale (IRM, Tomodensitom´ etrie X, etc ...). Cette imagerie consiste dans un premier temps ` a d´ etecter en co¨ıncidence les deux photons

´ emis dans des directions oppos´ ees apr` es annihilation du positon ´ emis lors du processus

de d´ esint´ egration du traceur. Puis, la reconstruction donne une estimation de la densit´ e

(3)

volumique du traceur qui est une mesure de l’activit´ e biologique associ´ ee au traceur.

De nombreux progr` es ont ´ et´ e r´ ealis´ es dans le domaine de l’imagerie nucl´ eaire mais la r´ esolution et la rapidit´ e de la reconstruction logicielle des images restent un frein majeur pour de nombreuses applications. Une reconstruction rapide, interactive, et de bonne qualit´ e est d’un int´ erˆ et essentiel pour les nombreuses applications de l’imagerie TEP mais reste difficile ` a atteindre avec les syst` emes actuels. Dans le domaine clinique, cela offre la possibilit´ e de repositionner le patient si besoin ou de diminuer les doses inject´ ees

`

a qualit´ e ´ egale. Dans le domaine ´ economique, cette am´ elioration r´ eduit les coˆ uts grˆ ace

`

a une meilleure disponibilit´ e du mat´ eriel. Dans le domaine de la recherche, les ´ etudes pharmacologiques sur le petit animal (micro TEP) dans de grandes s´ eries n´ ecessitent cette rapidit´ e.

L’acquisition des donn´ ees et la reconstruction d’image sont g´ en´ eralement effectu´ ees en deux ´ etapes distinctes, en ligne pour l’acquisition, hors ligne pour la reconstruction.

Les donn´ ees acquises sont des projections ou sinogrammes des donn´ ees physiologiques et la reconstruction d’images ou tomographie consiste ` a reconstruire l’image ` a partir de ces projections. La notion de tomographie se retrouve ´ egalement en imagerie X avec les scanners CT ou en imagerie mono photonique (SPECT). Deux grandes classes de m´ ethodes de tomographie existent :

– les m´ ethodes analytiques sont principalement bas´ ees sur la r´ etro-projection filtr´ ee et sont utilis´ ees dans les dispositifs commerciaux. Elles offrent un compromis ac- tuellement acceptable entre le temps de calcul et la qualit´ e d’image en terme de rapport signal ` a bruit et l’introduction des artefacts de reconstruction.

– les m´ ethodes alg´ ebriques et probabilistes mod´ elisent le probl` eme par un syst` eme lin´ eaire de grande dimension, dont la solution est obtenue de ce fait par une m´ e- thode it´ erative. Elles ont l’avantage de prendre en compte les ph´ enom` enes alt´ erant les hypoth` eses de base des m´ ethodes analytiques (diffusion, co¨ıncidences fortuites, etc..) et am´ eliore ainsi la qualit´ e des images reconstruites, au prix d’un coˆ ut de calcul important.

Nous nous sommes int´ eress´ es dans le cadre de cet article ` a l’algorithme classique de

r´ etro-projection, de la classe des m´ ethodes analytiques, pour sa diffusion actuelle sur les

diff´ erentes modalit´ es (X, PET, SPECT) et sa maturit´ e. Il est ` a la base de la reconstruc-

tion en 2D ou en 3D. Les m´ ethodes it´ eratives int` egrent une ´ etape de r´ etro-projection

filtr´ ee, dont le coˆ ut algorithmique est important dans le coˆ ut total. Il en existe de nom-

breuses impl´ ementations sur du mat´ eriel d´ edi´ e, sur des machines vectorielles, sur des

grappes de PC ou purement software. Notre objectif est de d´ emontrer l’int´ erˆ et des plates

formes SOPC dans ce cadre. L’analyse du probl` eme montre que la difficult´ e r´ eside prin-

cipalement dans la strat´ egie d’acc` es aux donn´ ees, non seulement de part le volume de

donn´ ees ` a utiliser mais aussi du fait de leur acc` es non s´ equentiel dans une structure

2D. Nous avons donc cherch´ e une solution efficace ` a ce goulot d’´ etranglement sur une

plate forme de test SOPC pour un algorithme de reconstruction 2D. Dans une premi` ere

partie, nous pr´ esentons un bilan de ces diff´ erentes approches pour la reconstruction par

r´ etro-projection filtr´ ee en TEP ou en Imagerie X, en 2D ou en 3D. Nous r´ esumons rapide-

ment l’algorithme de r´ etro-projection filtr´ ee et les points cl´ es de ce dernier. Les solutions

(4)

adapt´ ees sont alors propos´ ees avant d’ˆ etre ´ evalu´ ees.

Etat de l’art De nombreuses solutions ont d´ ej` a ´ et´ e ´ etudi´ ees pour acc´ el´ erer les temps d’acquisitions et de reconstruction. Le probl` eme essentiel de la reconstruction est celui de l’acc` es aux donn´ ees car la localit´ e spatiale en adresse et temporelle des donn´ ees (sino- gramme) utilis´ ees par la r´ etro-projection n’est en g´ en´ eral pas assur´ ee. En effet, lorsqu’une donn´ ee ` a l’adresse m´ emoire N est utilis´ ee, la donn´ ee suivante qui sera utilis´ ee n’est pas

`

a l’adresse N+1, et souvent, pas dans la mˆ eme page, ce qui g´ en` ere des d´ efauts de cache et ralentit le processeur. Les grandes voies ´ etudi´ ees sont l’optimisation algorithmique, la vectorisation ou parall´ elisation sur des machines sp´ ecifiques ou des grappes de calcul, les approches mat´ erielles utilisant des composants de type DSP ou plus r´ ecemment des cartes graphiques commerciales.

D’un point de vue algorithmique, en 2D, toutes les impl´ ementations de la r´ etro- projection ont une complexit´ e en O(N 3 ), o` u N est la taille de l’image ` a reconstruire.

Une version r´ ecursive [1] exploite une approche hi´ erarchique et it´ erative qui divise le probl` eme en sous probl` emes de tailles inf´ erieures plus simples ` a r´ esoudre et utilisant une interpolation. Bien que performantes, ces m´ ethodes introduisent des artefacts. Elles ne peuvent cependant prendre en compte les nombreuses g´ eom´ etries r´ eelles rencontr´ ees en pratiques [11]. Dans le cas tridimensionnel, les donn´ ees d’entr´ ees sont des sinogrammes 2D complets non disponibles dans le cadre de la TEP. La structure hi´ erarchique fortement non al´ eatoire complexifie l’acc` es aux donn´ ees et le gain r´ eel est de l’ordre de 50%, avec un choix des param` etres difficile et tr` es d´ ependant des images elles mˆ emes [15].

La vectorisation ou la parall´ elisation de la reconstruction a ´ et´ e et est un champ de recherche toujours tr` es actif. Les machines vectorielles pr´ esentent l’avantage de traiter avec une seule instruction (donc un seul cycle de chargement/d´ ecodage) un ensemble de donn´ ees bien localis´ ees, au sein d’un mˆ eme tableau. Quelques tentatives pour les exploiter en TEP ont ´ et´ e faites [8]. Elles pr´ esentent l’inconv´ enient d’ˆ etre peu ´ evolutives, ch` eres et peu nombreuses. Le principe dominant actuel dans la cat´ egorie SIMD est le Sym´ etrique Multiprocessing ou SMP. Le traitement des donn´ ees est distribu´ e sur plusieurs noeuds de calcul, permettant de r´ epartir la charge de calcul. Cette architecture est efficace lorsque les op´ erations r´ ealis´ ees en parall` eles sont ind´ ependantes et coˆ uteuses en temps devant les transmissions. Le volume des transactions ou ´ echanges doit ˆ etre limit´ e, sous peine de voir le canal de transmission satur´ e et r´ eduire consid´ erablement les performances. Ces noeuds de calculs sont localis´ es soit sur une mˆ eme machine et reli´ es par un bus (machine multi processeur) soit distribu´ es sur des machines distantes reli´ ees par un r´ eseau (grappes de PC).

Dans le cas des machines multi processeur, le nombre de noeuds de calcul est limit´ e, le coˆ ut de communication moyen, la m´ emoire est g´ en´ eralement partag´ ee. Notons que la rapidit´ e des bus n’a pas suivi la loi de Moore des processeurs et que ce d´ ecalage croissant exacerbe les probl` emes d’acc` es m´ emoires. Un des probl` emes majeurs, l’acc` es aux donn´ ees, n’est pas correctement pris en compte dans ce sch´ ema et la nature g´ en´ eraliste de cette architecture et des processeurs associ´ es limitent alors les gains de rapidit´ e [19].

Du fait de leur tr` es bon rapport prix/performance, la reconstruction sur des grappes

(5)

de PC a fait l’objet de nombreux travaux [17, 10]. L’avantage de cette architecture est l’ouverture vers un nombre ´ elev´ e de noeuds de calcul, potentiellement h´ et´ erog` ene. Le probl` eme majeur est celui de l’acc` es aux donn´ ees, le lien de communication ´ etant souvent physiquement un r´ eseau informatique classique qui limite alors les performances [21]. Sur les clusters, les communications sont souvent r´ ealis´ ees par passage de messages ` a l’aide de biblioth` eques telles que PVM, MPI ou autres. La diffusion d’une donn´ ee se fait par protocole de type unicast, une donn´ ee est transmise ` a un noeud unique. Dans le cadre de la reconstruction, une donn´ ee doit souvent ˆ etre utilis´ ee par plusieurs noeuds de calcul et les protocoles unicast g´ en` erent un trafic de contrˆ ole inutile. Bien que [18] ait montr´ e une faible efficacit´ e des broadcast MPI, [2] propose une reconstruction multicast efficace en UDP sur un faible nombre de noeuds (8). Augmenter le nombre de noeuds pose alors le probl` eme de la gestion des voxels reconstruits et du trafic g´ en´ er´ e. D’une mani` ere g´ en´ erale, les impl´ ementations vectorielles ou parall` eles classiques n’ont pas r´ esolu le probl` eme de l’acc` es aux donn´ ees.

Une solution originale a exploit´ e ces derni` eres ann´ ees les cartes graphiques standards de nos PC de bureau. L’id´ ee de base est d’utiliser le pipeline graphique haute perfor- mances inclus dans ces cartes [13]. Les premi` eres impl´ ementations avaient de fortes limi- tations, due ` a l’arithm´ etique enti` ere 8 bit de ces cartes, au manque de programmation interne au pipeline. Les nouvelles g´ en´ erations introduisent la possibilit´ e de r´ ealiser des op´ erations sur des tableaux en les programmant astucieusement [22]. Le principal pro- bl` eme reste la taille m´ emoire disponible sur les cartes, les communications m´ emoire/carte limitant alors les gains.

Les solutions mat´ erielles de type ASIC (TeraRecon) ont ´ et´ e implant´ e sur des machines commerciales, en g´ en´ eral sur les scanners CT de part de march´ e plus large que les scanners PET ou SPECT. [14, 9] sont des exemples de circuits d’acquisition. La difficult´ e de conception et le coˆ ut de ces dispositifs les rendent peu r´ eactifs aux avanc´ ees r´ ecentes et les d´ eveloppements sur ces cibles technologiques sont donc r´ eduits actuellement. Les solutions bas´ ees sur les DSP [16] sont efficaces mais pr´ esentent les mˆ emes limitations en puissance de calcul que les processeurs classiques, et le probl` eme de l’acc` es a des donn´ ees 2D reste complexe [7]. Au contraire, les FPGA, de part leur flexibilit´ e, leur reconfigurabilit´ e et les performances actuelles, sont un champ tr` es actif actuellement.

Leur premi` ere application en reconstruction concerne l’acquisition des donn´ ees [23], mais l’´ evolution technologique permet aujourd’hui d’envisager de porter les algorithmes de reconstruction sur FPGA [12, 4].

L’association de FPGA et de processeurs ` a usage g´ en´ eraux sur les plates formes SOPC

ouvre une voix prometteuse pour l’implantation et la maintenance des algorithmes mo-

dernes de reconstruction tomographique. Les performances temporelles attendues sont

proches des circuits d´ edi´ es, tout en conservant en grande partie la flexibilit´ e du logi-

ciel. Les points essentiels ` a prendre en compte lors de l’implantation sont les acc` es non

s´ equentiels et multiples aux donn´ ees, c’est ` a dire, les probl` emes de localit´ e spatiale et

temporelle.

(6)

2 Objectifs

2.1 L’algorithme

L’algorithme impl´ ement´ e effectue la r´ etro-projection des donn´ ees acquises par le scan- ner. Ces derni` eres, appel´ ees sinogrammes, forment la transform´ ee de Radon de la fonc- tion f repr´ esentant la densit´ e du taux d’´ emission radioactive du volume observ´ e. Le sinogramme est une matrice image ` a deux dimensions ` a K colonnes. Chaque colonne k correspond ` a la projection orthogonale de f sur r d´ etecteurs plac´ es orthogonalement sur une ligne inclin´ ee de l’angle θ k = k∗π K par rapport ` a l’axe x. Ainsi, le point du sino- gramme S(θ k , r) est la somme des pixels sur une Ligne De R´ eponse (LDR) du scanner qui est perpendiculaire ` a l’axe des d´ etecteurs et passe par le d´ etecteur r. A partir de ce sinogramme, l’algorithme reconstruit l’image f en r´ etro-projetant les K lignes du sinogramme dans l’espace image.

f (x, y) =

K

X

k=0

S(k, r k (x, y)) (1)

r k (x, y) = x cos( kπ

K ) − y sin( kπ

K ) + offset (2)

Cette m´ ethode n’est pas l’exacte transform´ ee de Radon inverse. En effet, elle produit des artefacts en ´ etoile et l’image reconstruite devient floue. Pour am´ eliorer la reconstruction, on peut filtrer le sinogramme mais cette ´ etape ´ etant ind´ ependante de la r´ etro-projection 2D, nous ne la d´ evelopperons pas dans cet article.

2.2 Le “challenge”

Le sinogramme ´ etant stock´ e en m´ emoire externe de type SDRAM, nous devons avoir une gestion efficace de la m´ emoire pour compenser la latence et permettre un haut degr´ e de parall´ elisme. Cette strat´ egie diff` ere de celle de [3] qui utilise plusieurs bancs de m´ emoires SRAM ind´ ependants avec une latence nulle pour am´ eliorer le d´ ebit m´ emoire.

Cette derni` ere constitue cependant une solution coˆ uteuse et il est possible d’obtenir de meilleures performances avec des m´ emoires SDRAM ` a faible coˆ ut malgr´ e leur latence importante.

Les caches standards ayant pour principe un acc` es lin´ eaire ` a la m´ emoire ne peuvent

ˆ etre une solution satisfaisante ´ etant donn´ e leur complexit´ e technologique et leur faible

taux de charge de donn´ ees utiles. En effet, les acc` es m´ emoires n´ ecessaires pour recons-

truire un pixel image f (x, y) suivent une sinuso¨ıde dans le sinogramme ce qui constitue

une faible localit´ e spatiale pour les adresses m´ emoire. Pour acc´ el´ erer ces acc` es m´ emoire,

un nouveau m´ ecanisme de cache est n´ ecessaire. Une pr´ ediction des points du sinogramme

dont a besoin l’unit´ e de calcul permettra au cache de charger les donn´ ees pendant le pro-

cessus de calcul.

(7)

2.3 Localit´ e temporelle et spatiale 2D

Reconstruction par blocs La localit´ e spatiale 2D et temporelle exploit´ ee par le cache 2D adaptatif et pr´ edictif est cr´ e´ ee en reconstruisant l’image f par blocs et en modifiant l’enchaˆınement des boucles de l’algorithme, le sinogramme ´ etant parcouru en phase. La reconstruction par blocs nous permet d’augmenter le taux de r´ eutilisation des donn´ ees du sinogramme selon r ` a k constant, ce qui est favorable ` a l’utilisation d’un cache. La taille du cache, qui correspond ` a la dur´ ee d’utilisation des donn´ ees, est r´ eduite en accroissant la localit´ e en k.

L’ensemble des donn´ ees n´ ecessaires ` a la reconstruction d’un bloc de f est l’union des sinuso¨ıdes n´ ecessaires ` a la reconstruction de chacun des pixels du bloc. Ces donn´ ees forment un “tube” de donn´ ees voisines du fait de la continuit´ e de la fonction qui associe

`

a chaque pixel de f l’ensemble de coordonn´ ees (k, r k (x, y)), k ∈ [0, π[. Lors de la recons- truction d’un bloc B, pour un k donn´ e, l’ensemble des donn´ ees (k, r k (x, y)), (x, y) ∈ B correspond ` a la projection du bloc B sur la ligne de d´ etecteur d’angle θ k .

Dans le cas particulier de la reconstruction d’un bloc carr´ e de taille n ∗ n, B n , (k, r k (x, y)), (x, y) ∈ B n est de hauteur maximale √

2n et minimale n. En moyenne, une donn´ ee du sinogramme est donc r´ eutilis´ ee au mieux n fois et n

2 au minimum. Le pre- mier cas correspond ` a θ k ∈ {0, π 2 }, le second ` a θ k ∈ { π 4 , 3 π 4 }. Dans ce dernier cas, au pire une donn´ ee sinogramme est utilis´ ee une fois et √

2n au mieux (c’est la projection d’un carr´ e sur sa diagonale). Bien entendu, toute forme de bloc qui permet un pavage de f convient (par exemple des hexagones, etc ...).

L’algorithme de reconstruction est maintenant le suivant : Pour chaque bloc B de f

∀(x, y) ∈ B, f (x, y) = 0

∀k ∈ {0, K − 1}

∀(x, y) ∈ B, f (x, y)+ = S(k, r k (x, y))

Compromis localit´ e/ressources Nous avons donc ` a trouver un compromis sur n dont l’augmentation d’une part am´ eliore l’efficacit´ e du cache mais accroˆıt d’autre part les ressources mat´ erielles du cache et la quantit´ e de m´ emoire n´ ecessaire aux variables interm´ ediaires. En effet, la hauteur du sinogramme m´ emoris´ e en cache ´ evolue avec √

2n et il faut stocker les n 2 valeurs interm´ ediaires de f (x, y) pour (x, y) ∈ B.

La valeur optimale de n d´ epend aussi des performances du cache qui sont fonctions,

entre autre, des dimensions de la zone en cache, du d´ ebit, et de la latence des acc` es ` a la

m´ emoire principale, comme nous le verrons au chapitre 3.1.

(8)

SDRAM

Backprojection 2D

2D−AP Cache

Data Data Adresses

P=(x,y)

Sinogram

Cached zones Accessed pixels

Fig. 1 – Concept du cache 2D-AP

3 Architecture

3.1 Le cache 2D adaptatif et pr´ edictif 3.1.1 Objectifs du cache 2D-AP

Le cache 2D-AP est l’´ el´ ement original de l’architecture propos´ ee en permettant aux unit´ es de calculs d’acc´ eder aux donn´ ees sans temps mort. Ceci est rendu possible grˆ ace ` a un m´ ecanisme g´ en´ erique de pr´ ediction des prochaines donn´ ees utilis´ ees. Le cache 2D-AP anticipe les acc` es au sinogramme 2D par une analyse de la s´ equence des coordonn´ ees de pixels requis par l’unit´ e de calcul pour pr´ edire les prochains acc` es ` a partir d’une hypoth` ese ` a vitesse de d´ eplacement constante sur l’image (les donn´ ees), ce qui est le cas de notre application. La reconstruction d’un bloc de pixels permet de produire une s´ equence d’acc` es au sinogramme qui tire partie au mieux des caract´ eristiques du cache 2D-AP.

3.1.2 Fonctionnement

La pr´ ediction de la zone en cache permet de r´ eduire le taux de d´ efaut de cache lorsque les acc` es pixels suivant se d´ eplacent sur l’image. Le centre et la taille de la zone sont d´ etermin´ es par le calcul de la moyenne et du pseudo ´ ecart type (PSD=pseudo standard deviation) des acc` es pixels. La moyenne et le PSD sont calcul´ es ` a l’aide de filtres passe- bas r´ ecursifs du premier ordre. En supposant une distribution uniforme des acc` es pixels autour de la moyenne, nous pouvons estimer que, pour une courte dur´ ee, ils sont dans un rectangle centr´ e sur la moyenne et dont les demi-largeurs valent deux fois le PSD sur chaque axe. La zone ainsi calcul´ ee est mise ` a jour lorsque la moyenne varie.

Un m´ ecanisme de pr´ ediction permet d’anticiper la position du centre du cache lorsque

les acc` es pixels suivent un chemin complexe dans l’image et r´ eduit ainsi le coˆ ut de la

latence des acc` es m´ emoire. La mise ` a jour ne se produit que lorsque la moyenne a

suffisamment vari´ ee et la nouvelle zone est centr´ ee sur une anticipation de la moyenne,

suppos´ ee se d´ eplacer ` a vitesse constante. Ainsi, une zone de garde est d´ efinie autour du

(9)

tx gx

ty gy

Guard zone Cached zone

Cache center Cache memory

Fig. 2 – Zones du cache 2D-AP

centre de la zone en cache et la mise ` a jour se fait lorsque la moyenne calcul´ ee sort de cette zone de garde, dans la direction de sortie, comme illustr´ ee figure 2.

Les principaux param` etres du cache sont les fr´ equences de coupure n´ ecessaires aux calculs de la moyenne et du PSD, a = (a x , a y ) et b = (b x , b y ), ainsi que les vitesses de d´ eplacement du m´ ecanisme de pr´ ediction, α = (α x , α y ). Nous avons aussi les param` etres de r´ eglage des dimensions des diff´ erentes zones du cache : les facteurs de proportionnalit´ e de la zone de garde, γ = (γ x , γ y ), de la taille du cache, τ = (τ x , τ y ) et de la vitesse du cache α = (α x , α y ).

L’´ etat du cache, ` a l’instant n, est d´ etermin´ e par les variables suivantes : – P = (x n , y n ), coordonn´ ees du point utilis´ e par l’unit´ e de traitement – P f = f a (P ) = (x f n , y f n ), moyenne des points utilis´ es

– d = |P − P f |, PSD courant (distance du point ` a la moyenne calcul´ ee) – d f = f b (d), PSD moyen

– c, centre courant du cache

– v, PSD courant du cache. Il d´ efinit : – g = γv, taille de la zone de garde – t = τ v, taille de la zone en cache – ∆ = αv, le d´ eplacement du cache

Les param` etres v, g et t et ∆ sont remis ` a jour ` a chaque d´ eplacement du cache.

– e = P − c, distance du point courant au centre du cache

Le bloc m´ emoire du cache 2D-AP a une taille fixe et d´ efinit la valeur maximum de t. A chaque d´ eplacement, seule la nouvelle partie de l’image en cache est charg´ ee, celle ´ etant

`

a l’ext´ erieur est ´ ecras´ ee par les nouvelles donn´ ees. En effet, la position des pixels de la zone dans la m´ emoire est calcul´ ee modulo la taille maximum. Un d´ efaut de cache se produit lorsqu’un pixel est hors de la zone en cache (e > t) et seul le pixel en d´ efaut est charg´ e depuis la m´ emoire externe.

Pour r´ eduire le coˆ ut mat´ eriel du contrˆ ole et obtenir de bonnes performances les

filtres passes bas pour le calcul des moyennes sont r´ ealis´ es ` a l’aide de simples additions

et d´ ecalages. Ce sont des filtres RII du premier ordre dont l’´ equation est s n = ce n +

(1 − c)s n−1 , e signal d’entr´ ee et s signal filtr´ e, et nous notons s = f c (e). Le param` etre

(10)

1 − c correspond ` a la constante de temps du filtre RC ´ equivalent. Lorsque les suites s et e sont repr´ esent´ ees en virgule fixe et c une puissance de 1 2 , nous ne r´ ealisons plus que des additions et d´ ecalages.

3.1.3 Architecture

L’architecture propos´ ee permet d’une part de construire rapidement un cache grˆ ace

`

a la modularit´ e du syst` eme par assemblage de composants et d’autre part la conception d’une hi´ erarchie m´ emoire complexe qui permet d’alimenter une partie op´ erative ` a partir de plusieurs niveaux de cache successifs.

Une architecture modulaire L’architecture modulaire du cache, repr´ esent´ ee figure 3(a), permet de construire rapidement une hi´ erarchie m´ emoire complexe. Le syst` eme est d´ e- compos´ e en ´ el´ ements qui s’interfacent par des bus de transfert d’imagettes de l’image lue, de lignes et de pixels, ce dernier bus ´ etant l’interface utilisateur. Le bus connect´ e aux analyseurs (“tracker” sur la figure 3(a)) propose un protocole unifi´ e qui permet de modifier le type d’analyseur pourvu que ce protocole soit respect´ e. Ainsi, nous disposons d’analyseurs de diff´ erents type (estimation de la moyenne et de la variance, estimation de la seule moyenne, ou suiveur lin´ eaire) dont le choix d´ epend de l’application et du niveau de hi´ erarchie.

Un mod` ele hi´ erarchique Une hi´ erarchie m´ emoire est construite en alimentant un cache de niveau inf´ erieur ` a partir d’un cache de niveau sup´ erieur, ainsi qu’illustr´ e fi- gure 3(c). Le cache parall` ele, repr´ esent´ e seul figure 3(b), g` ere des acc` es en parall` ele et le bus image est partag´ e ` a travers un contrˆ oleur de d´ eplacement commun, ce dernier r´ ealisant l’arbitrage. Les requˆ etes de mise ` a jour du cache inf´ erieur sont transform´ ees en acc` es au cache sup´ erieur. Il est ´ egalement possible de construire un syst` eme pour lequel plusieurs caches, avec chacun leur contrˆ oleur de d´ eplacement, partagent un bus image dot´ e d’un arbitre.

3.2 Analyse du cache et m´ ethode de r´ eglage 3.2.1 Mod` ele de coˆ ut de d´ eplacement

La dur´ ee d’une mise ` a jour du cache d´ epend du sens dans lequel celui-ci se d´ eplace et de l’organisation des donn´ ees en m´ emoire. En effet, dans le cas simple o` u les pixels sont rang´ es r´ eguli` erement par x croissant puis y croissant en m´ emoire le nombre de cycles de chargement correspond au chargement des lignes de cache ` a mettre ` a jour et leur nombre et longueur d´ ependent ´ evidemment du sens de d´ eplacement. La dur´ ee de mise ` a jour d´ epend des param` etres L, la latence du chargement d’une ligne, c’est ` a dire grosso-modo le temps d’acc` es au bus syst` eme, et de B, la bande passante, ou d´ ebit du bus, dans le meilleur cas (en mode burst). Nous avons donc, selon les cas suivants :

– Horizontal : D x = t y (L + δ B tx )

– Vertical : D y = δ t y (L + t B x )

(11)

Bus analyse

Data

Cache complet

System

tracker

X

tracker

Y

c

e

User

Control RAM

e c

c e

(CoreConnect)

Bus Bu s Image

Bus Pixel

e c

Master

Data

Bridge Ligne−Système

Bridge Image−Ligne Bus

Bus Line

memory

(a) Cache simple

Bus analyse

Data

Cache parallèle complet

System

c

e

tracker

Y

tracker

X

Control

e c

c e

(CoreConnect)

Bus Bu s Image

Bus Pixel

e c

Master

User

RAM

Data

Bridge Ligne−Système

Bridge Image−Ligne Bus

Bus Line

memory

(b) Cache parall` ele ` a contrˆ oleur de d´ eplacement commun

Bus analyse

Data

Bus analyse

Data System

Cache

Parallel cache

tracker

X

tracker

Y

c

e

c

e

tracker

Y

tracker

X

RAM

Control

e c

c e

(CoreConnect)

Bus Bu s Image

Bus Pixel

Master

Data

e c

c e

Bus Bu s Image

Bus Pixel

e c Data

User

RAM Control

Bridge Ligne−Système

Bridge Image−Ligne

Bridge Image−Pixel Bus

memory

memory Bus Line

(c) Cache hi´ erarchique

Fig. 3 – Architectures du cache 2D-AP hi´ erarchique

Pour r´ eduire la dur´ ee de mise ` a jour dans le cas d’un d´ eplacement horizontal, qui est le plus p´ enalisant, nous avons ` a r´ esoudre la contradiction entre :

– La r´ eduction de la taille de la zone en cache

– L’augmentation relative de ∆ t x , la zone mise ` a jour pour un d´ eplacement horizon- tal, par rapport ` a la latence L.

Une autre solution est de modifier l’organisation des donn´ ees en m´ emoire en r´ epartissant le terme B, qui correspond au nombre de pixels cons´ ecutifs en x charg´ es par cycle d’horloge. Si chaque mot m´ emoire contient un rectangle de taille (B x , B y ), nous avons :

– Horizontal : D x = B t y

y (L + δ B tx

x ) – Vertical : D y = δ B ty

y (L + B t x

x )

Dans ce mod` ele, la latence est potentiellement divis´ ee par B y , ou, du moins le temps d’acc` es au bus est partag´ e sur le chargement de plusieurs lignes dans le mˆ eme burst.

3.2.2 Analyse du cache simple

L’efficacit´ e du cache, mesur´ ee par l’inverse du nombre de cycles d’attente, est li´ ee ` a son comportement et ` a sa stabilit´ e et d´ epend de ses fr´ equences de coupure et vitesse de d´ eplacement. Nous cherchons ` a le r´ egler de mani` ere ` a permettre un compromis int´ eres- sant entre :

– La taille des m´ emoires internes du cache, qui doit ˆ etre minimis´ ee

– Le recouvrement des acc` es au cache et sa mise ` a jour, qui doit ˆ etre maximis´ e – Le taux de d´ efaut de cache, qui doit ˆ etre minimis´ e

En effet, la m´ ethode d’analyse par filtrage des coordonn´ ees induit n´ ecessairement un

retard de phase qui doit ˆ etre compens´ e par une estimation de la vitesse de d´ eplacement

(12)

du cache. Dans sa version actuelle, la vitesse est proportionnelle ` a la variance estim´ ee et le concepteur doit d´ eterminer ce param` etre α. Les fr´ equences de coupures a et b correspondent au nombre de points sur lesquels sont fait le calcul de la moyenne. Les contraintes impos´ ees par le calcul en virgule fixe limitent la fr´ equence de coupure la plus basse, donc le nombre de points pris en compte, mais cela est compens´ e par un facteur de sous-´ echantillonnage qui permet d’abaisser encore la fr´ equence de coupure lorsque les signaux sont tr` es basse fr´ equence.

Les r´ esultats de la section pr´ ec´ edente nous indiquent que pour compenser la latence de la m´ emoire, α doit ˆ etre assez grand et les fr´ equences de coupures assez basses. Cela permet d’obtenir des d´ eplacements du cache importants et ainsi de r´ eduire le coˆ ut du chargement des donn´ ees, particuli` erement dans le cas o` u l’on se d´ eplace horizontalement.

60 62 64 66 68 70 72 74

275 280 285 290 295 300 305 310

xc x xf

time

70 72 74 76 78 80 82 84 86

20 40 60 80 100 120 140 160 180 200

time

xc xf x

Fig. 4 – Poursuite a vitesse α > 2γ sans et avec stabilisation. En gras la position du centre du cache.

Le param` etre α a une grande influence sur la stabilit´ e de l’algorithme et n´ ecessite l’adjonction d’un m´ ecanisme de stabilisation. En effet, si α est sup´ erieur ` a 2γ, le processus de suivi devient instable car lors d’un d´ eplacement, le point P f est d´ epass´ e et n’est pas dans la nouvelle zone de garde, ce qui produit un nouveau d´ eplacement en sens inverse.

Pour obtenir de grandes vitesses de d´ eplacement et un suivi stable, le point P f est forc´ e ` a la valeur du nouveau centre du cache, ainsi qu’illustr´ e figure 4, et une contrainte de continuit´ e limite le d´ eplacement. Stabilis´ e, l’algorithme de pr´ ediction est efficace et permet de r´ eduire le nombre de d´ eplacements (c.f. figure 5).

Fig. 5 – Poursuite pour α = 1 et α = 3 (les niveaux de gris repr´ esentent le temps). Les triangles sont les points utilis´ es par l’algorithme (un snake dans ce cas), les rectangles les bords des zones en cache.

Le recouvrement des acc` es au cache et sa mise ` a jour correspond au nombre de cycles

pendant lesquels on peut faire des acc` es au cache avant qu’un d´ efaut ne se produise et

(13)

bloque les acc` es au cache 1 . Le recouvrement peut ˆ etre am´ elior´ e en accroissant l’´ ecart entre la zone de garde et la taille du cache car on peut estimer que la dur´ ee d’acc` es dans le cache est proportionnel ` a t− g, sur chaque direction. Nous avons donc int´ erˆ et ` a r´ eduire g, tout en accroissant α, mais ceci rend le cache instable.

Le r´ eglage des param` etres du cache est d´ elicat et n´ ecessite pour l’instant, en atten- dant de l’automatiser, une bonne compr´ ehension des diff´ erents crit` eres d’efficacit´ e pour trouver une solution adapt´ ee ` a l’application. A ce jour le r´ eglage du cache est fait ` a partir d’une s´ equence d’acc` es suppos´ ee difficile ` a suivre (variations ´ elev´ ees puis lentes) et d’un mod` ele de bus (latence et d´ ebit) puis valid´ ee exp´ erimentalement sur une plateforme ma- t´ erielle, car des simulations seraient trop longues, par la mesure des temps de calcul sur toutes les s´ equences. nous verrons que les r´ esultats obtenus sont conformes aux mod` eles de simulation.

3.2.3 Cache hi´ erarchique

Le r´ eglage d’un cache hi´ erarchique ` a un ou plusieurs niveaux n´ ecessite des r´ eglages diff´ erents selon le niveau dans la hi´ erarchie. En effet, les niveaux sup´ erieurs analysent les requˆ etes des caches “inf´ erieurs” qui correspondent ` a des chargements de zones de mise ` a jour alors que les caches “feuilles” analysent les requˆ etes de l’application.

Les caches du niveau n ont acc` es au cache de niveau n + 1 sur un bus ` a haut d´ ebit et latence r´ eduite ce qui permet son partage avec un tr` es bon taux de parall´ elisme. Le cache de niveau n est donc r´ egl´ e en premier, en supposant un cache de niveau sup´ erieur id´ eal puis le cache de niveau n + 1 est r´ egl´ e ` a son tour, et ainsi de suite jusqu’au cache racine. Les caches feuilles se partagent le Bus Image, et leur nombre influe sur le temps moyen d’acc` es au bus, celui-ci ´ etant de latence L quasi nulle (environ 1 ou 2 cycles) une fois le bus acquis.

La figure 6 illustre ce ph´ enom` ene pour un cache de 2 niveaux, avec 4 feuilles, chacune d’elle attach´ ee ` a une unit´ e de r´ etro-projection. Nous remarquons que chaque feuille fournie 131072 donn´ ees ` a son unit´ e de calcul mais le cache de niveau sup´ erieur fourni 40000 donn´ ees aux 4 feuilles. Le taux de r´ eutilisation d’une donn´ ee en cache feuille est de 131072 10000 = 13, ce qui est proche du taux th´ eorique pire cas de 16

2 = 11, 3 et meilleur cas de 16. A noter que, avec ce r´ eglage du cache, les 4*131072 acc` es m´ emoire (4 en parall` ele) se font en 183429 cycles d’horloge, soit une perte d’environ 50000 cycles d’horloge qui inclus les temps d’initialisation et les d´ efauts de cache (estim´ e ` a 2%). Ces performances peuvent ˆ etre am´ elior´ es pour obtenir un taux de d´ efaut de cache de 0%, tout simplement en augmentant la taille des feuilles mais au prix d’un accroˆıssement de la quantit´ e de m´ emoire interne. En r´ esum´ e, le cache hi´ erarchique permet bien de r´ eduire le d´ ebit sur le bus principal.

1 En effet, l’arrˆ et du transfert d’une ligne depuis la m´ emoire principale est coˆ uteux et il semble pr´ e-

f´ erable de ne pas l’interrompre pour faire un d´ efaut de cache. Les exp´ eriences faites sur l’application de

r´ etro-projection nous indiquent, dans ce cas particulier, qu’il n’est pas non plus int´ eressant d’interrompre

une mise ` a jour compl` ete pour faire un d´ efaut.

(14)

Feuille

-20 0 20 40 60 80 100 120 140

0 20000 40000 60000 80000 100000 120000 140000

resultat_x_0

x x_c x_min x_max x_cf x_g_min x_g_max x_f

0 50 100 150 200 250 300

0 20000 40000 60000 80000 100000 120000 140000

resultat_y_0

y y_c y_min y_max y_cf y_g_min y_g_max y_f

Racine

-20 0 20 40 60 80 100 120 140

0 5000 10000 15000 20000 25000 30000 35000 40000

resultat_x

x x_c x_min x_max x_cf x_g_min x_g_max x_f

0 50 100 150 200 250 300

0 5000 10000 15000 20000 25000 30000 35000 40000

resultat_y

y y_c y_min y_max y_cf y_g_min y_g_max y_f

x y

Fig. 6 – S´ equences d’acc` es dans un cache hi´ erarchique 3.3 Architecture syst` eme

Une plate-forme SOPC (System on Programmable Chip) a l’avantage de permettre une impl´ ementation efficace et ´ economique de la r´ etro-projection 2D. Pour davantage de flexibilit´ e, et ` a coˆ ut r´ eduit, le sinogramme et l’image reconstruite sont stock´ es en SDRAM, ou DDR-SDRAM, et la hi´ erarchie m´ emoire indispensable au recouvrement des calculs et acc` es m´ emoires, ` a grande latence, est construite ` a l’aide des blocs m´ emoire int´ egr´ es dans le circuit SOPC.

L’architecture pr´ esent´ ee figure 7(a) est ´ evalu´ ee sur une carte qui dispose d’une in- terface PCI avec une station hˆ ote pour permettre l’´ echange de donn´ ees avec le syst` eme.

Cette carte dispose d’un circuit Virtex 2 Pro 2VP20, de 32 MO de SDRAM et 128 MO de DDR-SDRAM et d’un bridge PCI, r´ ealis´ e sur un FPGA Spartan. Les donn´ ees sont

´ echang´ ees entre le PC hˆ ote et la carte grˆ ace ` a un m´ ecanisme de synchronisation.

L’architecture syst` eme est constitu´ ee :

– d’un processeur PPC en charge de la synchronisation des calculs et des communi- cations

– d’une unit´ e de r´ etro-projection avec son cache 2D-AP illustr´ e en figure 7(b).

– de m´ emoire externe

Pour b´ en´ eficier au maximum de la coh´ erence spatiale 2D et temporelle des calculs,

l’unit´ e de r´ etro-projection reconstruit un bloc de forme quelconque de pixels voisins de f .

Par souci de simplicit´ e les blocs sont des carr´ es de pixels mais des hexagones pourraient

ˆ etre utilis´ es. Les donn´ ees du sinogramme sont fournies ` a l’unit´ e de r´ etro-projection par

(15)

PPC

PC Host

DOCM IOCM

SDRAM BRAM Ctl SRAM

Ctl Interupt Ctl

UART

PCI Bridge

SDRAM

SRAM

Switch RS232

OPB PLB

32 64 32

32

2D Back projection Virtex II Pro

PCI Avnet evaluation Board

2D−AP Cache

(a) Architecture Syst` eme

Cosinus p(x,y) IT

IPIF

Results Parameters (x,y) Data

Glue logic

Cache 2D−AP Master Slave

2D−BackProjection PLB

(b) Unit´ e de r´ etro- projection simple

SDRAM

Cache 2D−AP

System bus

2D back projection

Cache 2D−AP

2D back projection

Cache 2D−AP

(c) Parall´ elisation de la r´ etro-projection

Fig. 7 – Architecture du syst` eme de r´ etro-projection

le cache 2D-AP qui se charge de leur transfert depuis la m´ emoire externe, le module

´ etant maˆıtre sur le bus PLB.

Pour r´ eduire les temps de calculs, l’unit´ e de r´ etro-projection est parall´ elis´ ee et une hi´ erarchie m´ emoire fournit les donn´ ees aux modules : chaque module obtient ses donn´ ees d’un cache 2D-AP qui lui mˆ eme les met ` a jour ` a partir d’un cache 2D-AP de niveau sup´ erieur. Dans notre exemple, nous nous arrˆ etons ` a un cache de niveau 2, comme illustr´ e figure 7(c).

Cette architecture m´ emoire originale permet de n’utiliser qu’une seule m´ emoire ex- terne qui contient tout le sinogramme, contrairement ` a la solution propos´ ee par [3], tout en autorisant :

– le recouvrement de la latence de la m´ emoire externe et du bus syst` eme – la r´ eduction du d´ ebit ` a la m´ emoire externe

Les performances de cette hi´ erarchie m´ emoire sont am´ elior´ ees lorsque la latence se r´ eduit et une connexion directe de la m´ emoire ` a l’unit´ e de r´ etro-projection permettrait de parall´ eliser massivement les unit´ es de r´ etro-projection.

4 R´ esultats

Les objectifs annonc´ es de cette impl´ ementations de la r´ etro-projection sont l’acc´ e- l´ eration des calculs ` a qualit´ e de reconstruction ´ egale. Cette derni` ere est une quantit´ e difficile ` a mesurer, car elle d´ epend effectivement de l’objectif final. Par exemple, en cli- nique, l’habitude et la subjectivit´ e des praticiens les conduit parfois ` a pr´ ef´ erer des images classiques issues des algorithmes de r´ etro-projection plutˆ ot que celles produites par des algorithmes it´ eratifs plus “performants”.

Dans un premier temps, nous nous int´ eressons ` a l’erreur commise lors de la recons-

truction qui peut ˆ etre consid´ er´ ee comme la somme de l’erreur de m´ ethode, due ` a l’al-

gorithme de r´ etro-projection, et de l’erreur d’impl´ ementation, due aux approximations

li´ ees au mat´ eriel et logiciel informatique. Nous montrons que notre impl´ ementation est

(16)

(a) Image originale (ana- lytique)

(b) Image reconstruite (c) Donn´ ee simul´ ee (d) Donn´ ee simul´ ee

Fig. 8 – Images reconstruites ` a partir de donn´ ees analytiques ou simul´ ees tr` es faible devant l’erreur de m´ ethode.

Dans un deuxi` eme temps, nous quantifions les gains de performances, tant en simu- lation qu’` a partir de m´ etriques mesur´ ees sur la plateforme par rapport ` a une machine s´ equentielle classique de mˆ eme g´ en´ eration technologique.

4.1 Qualit´ e de la reconstruction 4.1.1 Protocole de validation

Nous montrons que l’erreur de m´ ethode est tr` es largement pr´ epond´ erante sur l’er- reur d’impl´ ementation d` es que le nombre de bits significatifs utilis´ es pour les calculs en virgule fixe d´ epasse une certaine valeur (9 bits), ce qui justifie le terme de qualit´ e de reconstruction ´ egale.

Pour ´ evaluer l’erreur de m´ ethode, nous avons construit des sinogrammes ` a partir d’une image d´ efinie analytiquement et contenant des formes simples (carr´ e, cercle). Cette image est donc une r´ ef´ erence exacte de mˆ eme que les sinogrammes calcul´ es et permet d’´ evaluer l’erreur de m´ ethode.

Pour ´ evaluer l’erreur d’impl´ ementation, nous allons comparer les r´ esultats de recons- truction obtenus par diff´ erentes impl´ ementations : calcul en utilisant des r´ eels double pr´ ecision en virgule flottante, calcul en utilisant une notation en virgule fixe avec un nombre param´ etr´ e de d´ ecimales. Par ailleurs, le calcul de la transform´ ee de radon nous donne des coordonn´ ees de points image en valeur r´ eelle. Les interpolations test´ ees sont soit la troncature, soit l’interpolation lin´ eaire. Les images utilis´ ees pour cette ´ evalua- tion sont des sinogrammes simul´ es d’images c´ er´ ebrales et d’un fantˆ ome cylindrique. Les images d’origine ne sont pas disponibles et seule une inter-comparaison peut avoir lieue.

Pour quantifier la qualit´ e de reconstruction, nous calculons l’erreur quadratique moyenne de l’image I par rapport ` a l’image I ref de la mani` ere suivante :

eqm(I/I ref ) = r

P x max

x=0

P y max

y=0

I(x,y)−I

ref (x,y) I(x,y)+I ref (x,y)

2

x max ∗ y max (3)

(17)

La base de donn´ ee est constitu´ ee de :

– sinogrammes calcul´ ees de mani` ere analytique par transformation de Radon ` a partir de formes g´ eom´ etriques simples.[20]

– donn´ ees g´ en´ er´ ees par le simulateur monte carlo PET-SORTEO d’Anthonin Reil- hac. [5]

Pour les donn´ ees analytiques, l’image originale existe. Nous sommes donc en mesure de calculer l’erreur de m´ ethode : eqm(I reconstruit /I original ). Nous calculons ´ egalement pour l’ensemble des donn´ ees l’erreur quadratique moyenne entre diff´ erentes impl´ ementations de la r´ etro-projection et celle la plus exacte utilisant des r´ eels double pr´ ecision avec interpolation lin´ eaire.

4.1.2 Erreur de m´ ethode

Erreur quadratique moyenne : eqm · 10 −5 r´ eel interpol´ e r´ eel virgule fixe (2+15 bits) Dessins (analytique) 301.65 301.65 301.65

Fantˆ ome (analytique) 282.22 282.22 282.22 Tab. 1 – Erreurs de m´ ethode pour diff´ erentes impl´ ementations

Le Tableau 1 pr´ esente l’erreur quadratique moyenne de l’image reconstruite ` a partir de sinogrammes calcul´ es par transformation de Radon. Cette erreur est calcul´ ee par rapport ` a l’image d’origine et pour les diff´ erentes impl´ ementations de la r´ etro-projection : r´ eel, r´ eel avec interpolation lin´ eaire et virgule fixe avec 2+15=17 bits de pr´ ecision (2 pour la partie enti` ere et 15 pour la partie d´ ecimale). Elle caract´ erise l’erreur de m´ ethode inh´ erente ` a la r´ etro-projection qui n’est pas l’exacte transform´ ee inverse de la projection.

En effet, la r´ etro-projection laissent des r´ esidus r´ epartis en ´ etoile autour des points d’activit´ e (voir figure 8). L’erreur de m´ ethode est importante de l’ordre de 3% pour les diff´ erentes impl´ ementation.

4.1.3 Ecarts relatifs entre impl´ ementations

Les ´ ecarts entre images reconstruites pour diff´ erentes impl´ ementations de l’algorithme et celle en r´ eel interpol´ e sont pr´ esent´ es dans le tableau 2 et sur la figure 10.

Erreurs entre les m´ ethodes interpol´ ees et non interpol´ ees Nous observons que l’image reconstruite sans interpolation (figure 9(a)) est l´ eg` erement d´ ecal´ ee vers le bas, ce qui s’explique par l’origine des erreurs de calcul. Pour simplifier la d´ emonstration, nous faisons les calculs pour la reconstruction des pixels (x, 0) et (0, y).

Pour reconstruire le pixel f t (x, 0), nous calculons f t (x, 0) = P K

k=0 S(k, r k (x, 0)),

r k (x, 0) = E[x cos(θ k )+offset], ou encore r k (x, 0) = x cos(θ k )+ δr +offset avec δr ∈ [0, 1[,

et de moyenne 1 2 . Nous pouvons ´ ecrire δr = a sin(θ k ). La moyenne de a est non nulle car

sin(θ k ) ≥ 0. Nous avons donc f t (x, 0) = f (x, a), l’image reconstruite sans interpolation

est donc l’image reconstruire id´ eale d´ ecal´ ee de a pixels vers le bas.

(18)

Erreur quadratique moyenne : eqm · 10 5 r´ eel virgule fixe virgule fixe interpol´ e

4 bits 8 bits 15 bits 4 bits 8 bits 15 bits Dessins (analytique) 1.14 9.53 1.28 1.14 9.45 0.59 0.04 Fantˆ ome (analytique) 0.81 8.48 0.94 0.81 8.42 0.5 0.03 Cerveau (simul´ e) 3.27 13.08 3.38 3.27 12.77 0.97 0.11 Cylindre et inserts (simul´ e) 4.09 16.10 4.23 4.09 15.64 1.13 0.13 Tab. 2 – Ecarts entre l’image reconstruite pour diff´ erentes impl´ ementations de la r´ etro- projection avec celle en r´ eel interpol´ e

(a) Ecart r´ eel non inter- pol´ e

(b) Ecart virgule fixe (4 bits)

(c) Ecart virgule fixe (8 bits)

Fig. 9 – Ecart entre impl´ ementations par rapport ` a la m´ ethode “r´ eel interpol´ e” pour une image analytique

De la mˆ eme fa¸con, nous montrons qu’il n’y a pas de d´ ecalage horizontal car f t (0, y) = f (0, y), du fait de la sym´ etrie du cosinus autour de π 2 .

Erreurs entre les calculs virgule flottante et virgule fixe Les erreurs de recons- truction du calcul en virgule fixe s’accroissent lorsqu’on s’´ eloigne du centre de l’image (figures 10). En effet, les arrondis sur les valeurs des cosinus et sinus sont amplifi´ ees lors du calcul de x cos(θ k ) + y sin(θ k ). La pr´ ecision n´ ecessaire au codage des cosinus et sinus est tout simplement le nombre de bits n´ ecessaires ` a la repr´ esentation des coordonn´ ees x et y.

Discussion Le graphe de la figure 10 repr´ esente l’´ ecart entre les images reconstruites en virgule fixe et virgule fixe interpol´ ee avec celles reconstruites en r´ eel interpol´ e en fonction du nombre de bits codant la partie d´ ecimale. A partir de 12 bits, les impl´ ementations en entier offrent un r´ esultat quasiment ´ egal ` a l’impl´ ementation r´ ef´ erence en r´ eel interpol´ e.

L’´ ecart relatif entre les diff´ erentes impl´ ementations devient alors tr` es faible, plus de 300 fois inf´ erieur ` a l’erreur de m´ ethode (c.f. tableau 1).

Ainsi l’impl´ ementation en mat´ eriel qui est strictement ´ equivalente ` a l’impl´ ementation

software en entier n’alt` ere pas ou tr` es peu la qualit´ e de reconstruction.

(19)

0 5 10 15 20 25 30 35 40 45

2 4 6 8 10 12 14

eqm *10-5

Nombre de bits de la partie decimale

entier entier interpole

Fig. 10 – Erreur quadratique moyenne en fonction de la pr´ ecision des m´ ethodes en virgule fixe

4.2 Performances de l’architecture

Les mesures effectu´ ees sur la plate-forme et les r´ esultats de simulation nous montrent que la hi´ erarchie m´ emoire choisie est efficace et nous permet des acc´ el´ erations impor- tantes par la parall´ elisation des op´ erateurs et ceci en n’ayant qu’une m´ emoire externe qui contient toutes les donn´ ees. Les m´ etriques obtenues sont donn´ ees dans le tableau 3 et montrent une acc´ el´ eration quasi-lin´ eaire avec le nombre d’op´ erateurs. Elles correspondent

`

a la reconstruction d’une image x max ∗ y max = 320 ∗ 320 ` a partir d’un sinogramme de r´ esolution angulaire K = 512. L’image est reconstruite par blocs de taille 16 ∗ 16, qui est un bon compromis entre la taille du cache, les ressources mat´ erielles et l’efficacit´ e de la reconstruction (c.f. section 2).

Id´ ealement, nous devrions pouvoir r´ ealiser une reconstruction sans temps mort, c’est

`

a dire en x max ∗ y max ∗ K = 320 ∗ 320∗512 cycles d’horloge. Ces performances id´ eales sont alt´ er´ ees du fait d’une part de la synchronisation entre l’op´ erateur mat´ eriel et le PPC et d’autre part des performances du Cache 2D-AP sur le bus syst` eme. Les mesures effectu´ ees nous montrent que les simulations r´ ealis´ ees pour la reconstruction d’un bloc sont fiables et peuvent ˆ etre extrapol´ ees ` a la reconstruction d’une image compl` ete (r´ esultats de la reconstruction par 9 unit´ es).

L’ensemble du module a ´ et´ e d´ ecrit en VHDL g´ en´ erique param´ etrable pour explorer

rapidement les diff´ erentes configurations possibles. Le cache est enti` erement modulaire

de fa¸con ` a pouvoir mesurer l’efficacit´ e de diff´ erents type d’estimateurs pr´ edictifs et pour

pouvoir construire une hi´ erarchie par simple assemblage de blocs. Le tableau 4 donne

la complexit´ e du syst` eme en nombre de LUT pour une synth` ese sur cible Xilinx Vir-

tex II-Pro, avec les param` etres du cache qui nous donnent les performances annonc´ ees

pr´ ec´ edemment. Nous remarquons que l’accroissement de complexit´ e du cache, entre 2

et 4 unit´ es, est lin´ eaire ` a une constante pr` es, qui est la complexit´ e du cache de niveau

(20)

Syst` eme Cycles Temps @50 MHz Temps @175 MHz Logiciel

Pentium 3 (1 GHz) 3,5 s

PPC (VirtexII-Pro) 94 s 26 s

Mat´ eriel simple Id´ eal 52.10 6

(320 ∗ 320 ∗ 512)

1,1 s 0,3 s

Sans cache 52.10 6 ∗ 28 (Id´ eal∗Latence)

30 s 8,5 s

1 unit´ e 78.10 6 1,5 s 0,42 s

Mat´ eriel parall´ elis´ e

2 unit´ es 42.10 6 0,8 s 0,22 s

4 unit´ es 21.10 6 0,42 s 0,12 s

9 unit´ es 11.10 6 (simul´ e) 0,22 s 0,06 s

Tab. 3 – Performances de l’acc´ el´ eration de la r´ etro-projection

Module CLB FG

1 unit´ e 1078 2155 2 unit´ es 2253 4506 4 unit´ es 3877 7753

Tab. 4 – Synth` ese de l’IP et son cache 2D-AP sur cible Virtex II-Pro

sup´ erieur. Le placement routage sur un Virtex II-Pro nous permet d’atteindre 50 MHz et les tests de synth` ese sur les Virtex 4-FX, la g´ en´ eration suivante, nous montrent qu’il est possible d’atteindre une fr´ equence d’horloge 175 MHz.

5 Conclusion

Nous avons pr´ esent´ e dans cet article un syst` eme de reconstruction par r´ etro-projection 2D impl´ ement´ e et valid´ e sur une plateforme SOPC.

Ce syst` eme a ´ et´ e con¸cu d’une part pour r´ esoudre le goulot d’´ etranglement existant lors des acc` es en m´ emoire et de mani` ere ` a r´ eduire les erreurs de reconstruction dues aux calculs en virgule fixe. Lors de la reconstruction, les donn´ ees n´ ecessaires sont pr´ edites sta- tistiquement afin que le cache puisse les pr´ e-charger avant que l’unit´ e de r´ etro-projection ne les utilise effectivement. De plus, l’algorithme de r´ etro-projection a ´ et´ e impl´ ement´ e de fa¸con ` a augmenter la localit´ e spatiale 2D et temporelle, l’utilisation du cache en devient plus pertinente.

La r´ etro-projection est utilis´ ee par les algorithmes it´ eratifs plus sophistiqu´ es. Ces

derniers offrent une meilleure qualit´ e d’image mais en contrepartie ont un temps recons-

truction beaucoup plus long. La r´ ealisation pr´ esent´ ee dans cet article est une premi` ere

(21)

´ etape pour construire un syst` eme de reconstruction it´ eratif, adaptable et flexible. Im- pl´ ement´ e sur un SOPC, le module de r´ etro-projection 2D peut ˆ etre dupliqu´ e pour pa- rall´ eliser les calculs. Un mˆ eme module de cache peut ˆ etre partag´ e ou une hi´ erarchie de caches m´ emoire peut ˆ etre mise en place. Ainsi en s’appuyant sur la localit´ e temporelle et spatiale 2D, nous pouvons reconstruire simultan´ ement plusieurs pixels et la vitesse de reconstruction est alors notablement am´ elior´ ee.

6 Remerciements

Nous tenons ` a remercier toutes les personnes qui ont contribu´ e ` a ce projet et parti-

culi` erement Nicolas Costes et Anthonin Reilhac, du CERMEP, ` a Lyon, pour nous avoir

fournis des donn´ ees TEP.

(22)

St´ ephane Mancini est docteur (2000) et ing´ enieur (1996) de Telecom Paris. Il est actuellement maˆıtre de conf´ erence ` a l’EN- SERG/INPG en conception des SoC et effectue ses recherches au LIS sur la th´ ematique de l’Ad´ equation Algorithme Archi- tecture. Entre autre, il est responsable du projet ArchiTEP, qui vise ` a acc´ el´ erer la reconstruction TEP 2D et 3D.

Nicolas Gac est actuellement doctorant au LIS. Titulaire d’un diplˆ ome d’ing´ enieur au d´ epartement TELECOM de l’INP Grenoble et d’un DEA en SIPT, il effectue depuis Octobre 2004 une th` ese sur l’ad´ equation algorithme architecture pour la reconstruction 3D en imagerie m´ edicale TEP sous la direc- tion de Michel Desvignes et St´ ephane Mancini.

Michel Desvignes a obtenu son diplˆ ome d’ing´ enieur ` a l’ENSI- CAEN en 1985. Il a soutenu sa th` ese en 1990 puis son habili- tation ` a diriger les recherches en 2002 ` a l’Universit´ e de Caen.

Il est actuellement professeur ` a l’ENSERG/INPG en infor- matique. Ses activit´ es de recherche concernent le traitement d’images et la reconnaissance de formes, particuli` erement dans les domaines de l’imagerie m´ edicale et de la vid´ eo.

Olivier Bourrion , ing´ enieur en G´ enie ´ electrique option micro-

´

electronique de l’INSA Lyon, est ing´ enieur de recherche au Laboratoire de Physique Subatomique et de Cosmologie de Grenoble. Son domaine d’activit´ e principal est l’acquisition de donn´ ee, ce qui implique fr´ equemment la mise en œuvre de composants programmables et de micro-contrˆ oleurs.

Olivier Rossetto a obtenu en 1991 un doctorat en micro-

´

electronique de l’INP Grenoble. Depuis 1993, il est enseignant

chercheur ` a l’universit´ e Joseph Fourier de Grenoble, ou ses

domaines d’int´ erˆ et portent sur l’int´ egration VLSI de syst` emes

d’instrumentation et de traitement pour la physique des par-

ticules et les syst` emes d’imagerie m´ edicale TEP.

(23)

R´ ef´ erences

[1] Samit Basu and Yoram Bresler. O (n2logn) backprojection algorithm for tomogra- phy . IEEE Trans. Med. Imaging, 19(8) :1760–1773, 2000.

[2] D. Brasse, B. Humbert, C. Mathelin, M.C. Rio, and J.L. Guyonnet. Towards an inline reconstruction architecture for micro-CT systems. Phys. Med. Biol., 50 :5799–

5811, 2005.

[3] S. Coric, M. Leeser, E. Miller, and M. Trepanier. Parallel-beam backprojection : an FPGA implementation optimized for medical imaging. The Journal of VLSI Signal Processing-Systems for Signal, Image, and Video Technology, 39(3), 2005.

[4] Srdjan Coric, Miriam Leeser, Eric Miller, and Marc Trepanier. Parallel-beam back- projection : an FPGA implementation optimized for medical imaging. In FPGA

’02 : Proceedings of the 2002 ACM/SIGDA tenth international symposium on Field- programmable gate arrays, pages 217–226, New York, NY, USA, 2002. ACM Press.

[5] A. Reilhac et al. PET-SORTEO : validation and development of database of simu- lated PET volumes. IEEE Tr. Nucl. Sci., 52(5) :1321 – 1328, October 2005.

[6] P. Grangeat. La Tomographie medicale. Hermes, 2002.

[7] D. Kim, R. Managuli, and Y. Kim. Data cache and direct memory access in pro- gramming mediaprocessors. IEEE Micro, 21(4) :33–42, 2001.

[8] J.F. Lecomte. Quantification d’images tomographiques 3D et d´ etection appliqu´ ees

`

a l’imagerie c´ er´ ebrale fonctionnelle individuelle. PhD thesis, Universite de Caen, 1997.

[9] Mark W. Lenox, Tim Gremillion, Steve Miller, and John W. Young. Coincidence time alignment for planar pixellated positron emission tomography detector arrays . In IEEE Nuclear Science Symposium, pages 1952 – 1954. IEEE Computer Society, 2001.

[10] X. Li, J. Ni, and G . Wang . Parallel iterative cone beam CT image reconstruction on a PC cluster. Journal of X-Ray SCiences and technology, 13 :1–10, 2005.

[11] B. De Man and S. Basu. Distance-driven projection and backprojection in three dimensions. Phys. Med. Biol, 49 :2463–2475, 2004.

[12] A. Mehta and J. Rotem. FPGA co-processing solutions for signal processing appli- cations. ece, pages 25–26, 2005.

[13] K. Mueller and R. Yagel. Rapid 3D cone-beam reconstruction with SART using texture mapping hardware. IEEE Trans. Med. Imag, 19(12) :1227–1237, 2000.

[14] D.M. Pettersen, S. Mikkelsen, J. Talebi, and D. Meier. A readout ASIC for SPECT.

IEEE Trans. Nucl. Sci, 52(3) :764–771, 2005.

[15] T. Pipatsrisawat, A. Gacic, F. Franchetti, M. P¨ uschel, and J. M. Moura. Perfor-

mance analysis of the filtered backprojection image reconstruction algorithms. In

ICASSP 2005, volume 5, pages 153–156, 2005.

(24)

[16] K. Rajan and L. M. Patnaik. CBP and ART image reconstruction algorithms on media and DSP processors. Microprocessors and Microsystems, 25(5) :233–238, 2001.

[17] T. Rodet, L. Desbat, and P. Grangeat. Parallel algorithm based on a frequential decomposition for dynamic 3D computed tomography. In Parallel and Distributed Processing Symposium, pages 14–21. IEEE Computer Society, 2003.

[18] P. Sack and A.C. Elster. Fast mpi broadcasts through reliable multicasting. In 6th International Conference on Applied Parallel Computing Advanced Scientific Computing, volume 2367 of Lecture Notes In Computer Science, pages 445–453.

Springer Verlag, London, UK, June 2002.

[19] Ludwig G. Strauss and Antonia Dimitrakopoulou-Strauss George Kontaxa- kis and. Performance characteristics of iterative image reconstruction tech- niques for routine use in positron emission tomography. Alasbimn Journal, 2001.

http ://www.alasbimnjournal.cl/revistas/13/strausstotal.html.

[20] Peter Toft. The Radon Transform : Theory and Implementation. PhD thesis, Tech- nical University of Denmark, Copenhagen, 1996.

[21] S. Vollmar, C. Michel, J. T. Treffert, D. F. Newport, M. Casey, C. Knoss, K. Wien- hard, X. Liu, M. Defrise, and W.-D. Heiss. HeinzelCluster : accelerated reconstruc- tion for FORE and OSEM3D. IOP Phys. Med. Biol, 47 :2651–2658, 2002.

[22] Fang Xu and Klaus Mueller. Accelerating popular tomographic reconstruction algo- rithms on commodity PC graphics hardware. IEEE Trans. Nucl. Sci, 52(3) :654–664, 2005.

[23] J.W. Young, J.C. Moyers, and M. Lenox. FPGA based front-end electronics for a

high resolution PET scanner. IEEE Trans. Nuclear Science, 47 :1676–80, 2000.

Références

Documents relatifs

Plutˆ ot que n´ ecessiter de recompiler le module pour chaque nouvelle op´ eration, nous d´ esirons exposer une interface ` a l’utilisateur de fa¸ con ` a ce que deux ´

[r]

PR ´ EPARATION DES DONN ´ EES Pour pouvoir manipuler ce fichier (et faire des statistiques dessus), il faut le stocker dans une variable de type un peu sp´ ecial qu’on

chd Coronary heart disease binary response sbp systolic blood pressure (integer) tobacco cumulative tobacco (kg) (real)!. ldl low density lipoprotein cholesterol (real)

Introduction.- En langage C, l’acc`es ` a un ´el´ement d’un tableau peut se faire classiquement par le nom du tableau accompagn´e d’un index, mais aussi par un pointeur

— Sinon on place la taille de la ligne de commande dans DI et comme premier octet du tampon COMBUF, on appelle la sous-routine GETBATBYT pour ´ecarter le second caract`ere de passage

Statistique descriptive mono-vari´ e Bases de R Donn´ ees bi-vari´ ees Tests statistiques.. Objectifs

Si nous reprenons le calcul du graphe de visibilit´e de la sc`ene de la figure 5.8, qui nous posait probl`eme ` a cause des incoh´erences globales entre quatre points (figure 5.14),