Les trois principes qui ont guid´e la conception de l’architecture 3P (architecture en
Pipeline, Pr´echargement m´emoire et Parall´elisation), ont pour objectif de tirer profit au
maximum des ressources mat´erielles des cartes de type SoPC. Dans ce chapitre, nous
pr´esentons les performances atteintes par notre architecture 3P pour la r´etroprojection
TEP 3D. Apr`es une description de l’impl´ementation sur une plateforme SoPC, nous
pr´esenterons et analyserons la qualit´e de reconstruction, le comportement du cache
3D-AP et l’efficacit´e de reconstruction.
1 Impl´ementation sur une plateforme SoPC
Nous d´ecrivons ici tout d’abord la plateforme SoPC utilis´ee avec les modules annexes
autour de l’architecture 3P, puis l’occupation des ressources mat´erielles des Virtex par
notre architecture 3P.
1.1 Plateforme SoPC utilis´ee
L’architecture 3P a ´et´e impl´ement´ee sur une plateforme SoPC disposant d’une
in-terface PCI avec une station PC hˆote afin de permettre les ´echanges de donn´ees avec le
syst`eme sur la carte (voir figure 4.1). Cette derni`ere contient entre autres : un Virtex 2
Pro de Xilinx (VP30), deux m´emoires externes (une SDRAM de 32 Mo et une SRAM de
2 Mo) et un bridge PCI, r´ealis´e sur un FPGA Spartan. La transmission de donn´ees entre
le PC et la carte via la m´emoire SRAM a n´ecessit´e la mise en place d’un syst`eme de
syn-chronisation. Le SoPC (Virtex 2 Pro VP30) est constitu´e d’un processeur PPC et d’une
matrice FPGA avec plus de 30 000 portes logiques ´equivalentes. Le processeur PPC est
en charge de la synchronisation des calculs et des communications avec l’architecture 3P
impl´ement´ee sur la matrice FPGA.
En plus des ´el´ements incontournables de l’architecture d’un syst`eme (bus PLB et
OPB, contrˆoleurs m´emoire...), est impl´ement´e sur la matrice FPGA un module d’´echange
de donn´ees entre l’architecture 3P et le processeur PPC. C’est via ce module que les
param`etres de configuration de l’architecture 3P (taille du bloc, param`etres du cache,
Rétro PPC DOCM BRAM SDRAM Ctl SRAM Ctl InteruptCtl UART Pont PCI SDRAM SRAM Switch IOCM PCI Rétro 3D
Carte de developpement Avnet
3D Cache 3D−AP 3D−AP 3D−AP Cache Cache PLB 3D Rétro OPB PLB 64 32 32 32 Virtex II Pro Cache 3D−AP
Fig. 4.1 – Carte de d´eveloppement Avnet
constantes de calcul...), les valeurs des voxels reconstruits et les signaux de
synchroni-sation entre le PPC et l’architecture 3P sont ´echang´es. Par ailleurs, une interface PLB
entre l’architecture 3P et le bus PLB permet au cache d’acc´eder directement et
efficace-ment `a la m´emoire externe. Au sein de cette interface, une hi´erarchisation des donn´ees
est faite en lignes, plans et pages m´emoire en phase avec le fonctionnement propre du
cache 3D-AP.
1.2 Ressources mat´erielles utilis´ees
Les ressources mat´erielles utilis´ees par l’architecture 3P pour une taille de bloc de
16
2·3 voxels sont pr´esent´ees dans le tableau 4.1. L’architecture permet une fr´equence
de fonctionnement de 35 MHz sur un Virtex 2 Pro. Le contrˆole de la r´etroprojection et
le contrˆole du cache racine ´etant partag´es entre lesnunit´es de l’architecture 3P, le coˆut
additionnel d’une unit´e est de seulement 800 slices et de 12 multiplieurs. Les tailles des
caches m´emoire feuille et racine sont respectivement de 2 Ko et 18 Ko. Ainsi jusqu’`a 9
unit´es de r´etroprojection peuvent ˆetre mise sur un virtex 2 Pro VP30. Aux slices utilis´es
pour la r´etroprojection 3D et le cache 3D-AP, il faut ajouter ceux de l’interface PLB
(environ 10%pour 9 unit´es) et du syst`eme autour (bus m´emoire, contrˆoleur m´emoire...).
Un Virtex 4 (V4FX60 ou V4FX100) permettrait de mettre jusqu’`a 13 unit´es. Dans
ce cas c’est le nombre de multiplieurs qui limite le nombre d’unit´es et non le nombre de
slices comme pour le Virtex 2 Pro. Dans la suite, nous avons utilis´e 1, 4 (2·2·1blocs de
voxels) ou 8 unit´es (2·2·2blocs de voxels). Nous avons pr´ef´er´e reconstruire des macros
blocs constitu´es de 2·2·2 blocs plutˆot que de3·3·1 blocs afin d’avoir une hauteur
de macro-bloc plus importante. Cela permet tout d’abord de b´en´eficier d’un plus grand
taux de r´eutilisation ´etant donn´e le plan suppl´ementaire que n´ecessite l’interpolation
lin´eaire selon la dimension λ (voir chapitre 3). Par ailleurs une hauteur de macro-bloc
2. QUALIT ´E DE RECONSTRUCTION 149
importante implique une taille de cache plus importante selon la dimension axiale λ. Or
le cache est plus difficile `a param´etrer lorsqu’une dimension de la zone de cache est tr`es
petite (inf´erieure `a 3).
1 unit´e 4 unit´es 9 unit´es
R´etroprojection 3D
slices CLB 573 1817 3924
(4.2%) (13.3%) (28.6%)
Multiplieurs 12 48 108
(9%) (35%) (79%)
Cache 3D-AP
slices CLB 672 2830 4804
(4.9%) (20.6%) (35.1%)
RAMs 2 Ko 24 Ko 36 Ko
(0.6%) (7.8%) (11.7%)
R´etroprojection 3D + Cache 3D-AP
slices CLB 1245 4637 8728
(9.1%) (32.9%) (63.7%)
Tab. 4.1 – Ressources mat´erielles utilis´ees par l’architecture 3P de r´etroprojection 3D
pour une fr´equence de fonctionnement de 35 Mhz. Entre parenth`eses est indiqu´e le
pourcentage d’occupation des ressources du Virtex 2 Pro VP30
2 Qualit´e de reconstruction
L’architecture 3PA-PET correspond `a une version en arithm´etique `a virgule fixe
de l’algorithme de r´etroprojection Voxel driven avec Interpolation Bilin´eaire (VIB). De
plus, les donn´ees du sinogramme et du volume sont cod´ees en entier sur respectivement
16 bits et 32 bits, alors que ces donn´ees sont `a l’origine des r´eels en virgule flottante
(le sinogramme apr`es filtrage ne correspond plus au simple comptage d’´ev´enements sur
chaque paire de d´etecteurs).
Afin d’´evaluer la qualit´e de reconstruction de notre impl´ementation mat´erielle sur
FPGA de la r´etroprojection 3D, nous avons utilis´e une version logicielle “bit-true” de
notre architecture, qui effectue au bit pr`es les mˆemes op´erations en virgule fixe que
l’architecture 3PA-PET. Nous pr´esentons tout d’abord les donn´ees et crit`eres utilis´es
puis nous comparons cette r´etroprojection en virgule fixe avec la r´etroprojection en
virgule flottante.
2.1 Donn´ees utilis´ees
Les donn´ees utilis´ees proviennent du logiciel de reconstruction STIR d´evelopp´e par
[Thielemans 06] dans la suite du projet PARAPET
1. STIR est un logiciel Open Source
multiplateforme permettant la reconstruction 2D et 3D `a l’aide d’algorithmes
analy-tiques (r´etroprojection filtr´ee) et it´eratifs (ML-EM). Il est utilis´e pour la recherche mais
´egalement en clinique. Nous avons tout d’abord g´en´er´e des volumes num´eriques, appel´es
phantoms, `a l’aide de STIR comme par exemple le phantom de la figure 4.2, ou bien `a
l’aide de Matlab comme le phantom Shepp Logan de la figure 4.3. Nous avons ensuite
simul´e l’acquisition des donn´ees en utilisant le projecteur de STIR. Enfin, nous avons
effectu´e la correction d’arc, les filtrages (filtre rampe en 2D et de Colsher en 3D) et la
compl´etion des sinogrammes pour l’algorithme 3D-RP (estimation du volume par
r´etro-projection 2D puis r´etro-projection du volume en utilisant des anneaux virtuels du scanner).
Ces corrections ont ´et´e effectu´ees `a l’aide d’ex´ecutables cr´e´es `a partir du code C++ de
STIR .
Les jeux de donn´ees utilis´es (volume 3D et sinogramme 4D) ainsi g´en´er´es
corres-pondent `a l’acquisition d’un scanner HR+ (32 anneaux avec un span de 9 soit 5
seg-ments). Le volume a une taille de 128
2·63. Pour l’algorithme 3D-RP, les 5 segments
sont constitu´es de sinogrammes 2D correspondant d’une part au processus
d’acquisi-tion et d’autre part `a la compl´etion des donn´ees. Le sinogramme 4D poss`ede ainsi 65
sinogrammes 2D (63 acquis + 2 compl´et´es) pour le segment 0, 77 sinogrammes 2D (53
acquis + 24 compl´et´es) pour les segments +1 et -1, et 91 sinogrammes 2D (35 acquis +
56 compl´et´es) pour les segments +2 et -2. Les sinogrammes 2D sont de taille269·96ce
qui correspond `a 96 angles de projection et 269 bins par angleφ (288 avant correction
d’arc). Le nombre d’angles de projection qui est de 144 pour le format standard a du
ˆetre r´eduit `a 96 afin de pouvoir stocker le sinogramme dans les 32 Mo de la SDRAM de
la carte de d´eveloppement Avnet.
Par ailleurs, afin de pouvoir effectuer en un temps acceptable une reconstruction 3D
`
a l’aide du simulateur VHDL de Modelsim, nous avons ´egalement g´en´er´e avec STIR un
jeux de donn´ees de taille r´eduite (quelques Ko). Ces mini volumes ont pour taille9
2·17
ou16
2·17. De plus, un format de scanner sur mesure a ´et´e d´efini `a l’aide de STIR. Le
mini-scanner ainsi d´efini, poss`ede 9 anneaux, 5 segments et 18 angles de projection.
1
Le projet PARAPET ´etait un projet Europ´een dont l’objectif ´etait d’am´eliorer les techniques de
reconstruction volumique en tomographie par ´emission de positons (TEP), notamment en d´eveloppant
les approches it´eratives impl´ement´ees sur des architectures parall`eles. STIR est bas´e sur les biblioth`eques
logicielles PARAPET d´evelopp´e dans le cadre du projet PARAPET.
Dans le document
Adéquation Algorithme Architecture pour la reconstruction 3D en imagerie médicale TEP
(Page 168-171)