+\contentsline {figure}{\numberline {3.1}{\ignorespaces \IeC {\`A} gauche : d\IeC {\'e}termination des vecteurs $f_{in}$ et $f_{out}$. \IeC {\`A} droite : code de Freeman d'un vecteur en fonction de sa direction, l'origine \IeC {\'e}tant suppos\IeC {\'e}e au pixel central, en noir. }}{43}{figure.3.1}
+\contentsline {figure}{\numberline {3.2}{\ignorespaces \IeC {\'E}volution du contour lors de la segmentation d'une image de 512$^2$ pixels. La convergence est obtenue \IeC {\`a} l'it\IeC {\'e}ration 14 apr\IeC {\`e}s 44~ms pour un total de 256 n\oe uds.}}{46}{figure.3.2}
+\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Initialisation : 4 n\oe uds}}}{46}{figure.3.2}
+\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {It\IeC {\'e}ration 1 : 8 n\oe uds 3~ms}}}{46}{figure.3.2}
+\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {It\IeC {\'e}ration 2 : 16 n\oe uds 1~ms}}}{46}{figure.3.2}
+\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {It\IeC {\'e}ration 3, 32 n\oe uds 1~ms}}}{46}{figure.3.2}
+\contentsline {subfigure}{\numberline {(e)}{\ignorespaces {It\IeC {\'e}ration 7 : 223 n\oe uds 3~ms}}}{46}{figure.3.2}
+\contentsline {subfigure}{\numberline {(f)}{\ignorespaces {It\IeC {\'e}ration 10 : 244 n\oe uds 3~ms}}}{46}{figure.3.2}
+\contentsline {subfigure}{\numberline {(g)}{\ignorespaces {It\IeC {\'e}ration 13 : 256 n\oe uds 3~ms}}}{46}{figure.3.2}
+\contentsline {subfigure}{\numberline {(h)}{\ignorespaces {It\IeC {\'e}ration 14 : 256 n\oe uds 3~ms}}}{46}{figure.3.2}
+\contentsline {figure}{\numberline {3.3}{\ignorespaces Influence du contour initial sur la segmentation. Le contour final 1 est celui de la figure \ref {fig-snakecpu-cochon512}.}}{46}{figure.3.3}
+\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Initialisation 2 }}}{46}{figure.3.3}
+\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {Contour final 2 : 273 n\oe uds 87~ms}}}{46}{figure.3.3}
+\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {Contour final 1 : 256 n\oe uds 44~ms}}}{46}{figure.3.3}
+\contentsline {figure}{\numberline {3.4}{\ignorespaces Segmentation de l'image de test en 4000$^2$ pixels.}}{47}{figure.3.4}
+\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {$d_{max}=16$ et $l_{min}=8$, 1246 n\oe uds en 1.3~s}}}{47}{figure.3.4}
+\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {$d_{max}=128$ et $l_{min}=32$, 447 n\oe uds en 0.7~s}}}{47}{figure.3.4}
+\contentsline {figure}{\numberline {3.5}{\ignorespaces Segmentation de l'image de test en 4000$^2$ pixels avec une cible de petite taille. Le contour initial est celui utilis\IeC {\'e} \IeC {\`a} la figure \ref {fig-snakecpu-cochon4k}.}}{47}{figure.3.5}
+\contentsline {figure}{\numberline {3.6}{\ignorespaces \IeC {\'E}volution du co\IeC {\^u}t relatif des trois fonctions les plus consommatrices en temps de calcul en fonction de la taille de l'image \IeC {\`a} traiter.}}{48}{figure.3.6}
+\contentsline {figure}{\numberline {3.7}{\ignorespaces Calcul des images cumul\IeC {\'e}es $S_x$ et $S_x^2$ en trois \IeC {\'e}tapes successives. a) cumul partiel bloc par bloc et m\IeC {\'e}morisation de la somme de chaque bloc. b) cumul sur le vecteur des sommes partielles. c) ajout des sommes partielles \IeC {\`a} chaque \IeC {\'e}l\IeC {\'e}ment des blocs cumul\IeC {\'e}s.}}{50}{figure.3.7}
+\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {D\IeC {\'e}tail des op\IeC {\'e}rations effectu\IeC {\'e}es par le \textit {kernel} \texttt {compute\_block\_prefixes()}. La valeur $bs$ correspond au nombre de pixels de chaque bloc, qui est aussi le nombre de threads ex\IeC {\'e}cut\IeC {\'e} par chaque bloc de la grille de calcul.}}}{50}{figure.3.7}
+\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {D\IeC {\'e}tail des op\IeC {\'e}rations effectu\IeC {\'e}es par le \textit {kernel} \texttt {scan\_blocksums()}.}}}{50}{figure.3.7}
+\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {D\IeC {\'e}tail des op\IeC {\'e}rations effectu\IeC {\'e}es par le \textit {kernel} \texttt {add\_sums2prefixes()}.}}}{50}{figure.3.7}
+\contentsline {figure}{\numberline {3.8}{\ignorespaces Structuration des donn\IeC {\'e}es en m\IeC {\'e}moire du GPU pour l'\IeC {\'e}valuation en parall\IeC {\`e}le de l'ensemble des \IeC {\'e}volutions possibles du contour.}}{51}{figure.3.8}
+\contentsline {figure}{\numberline {3.9}{\ignorespaces Comparaison des cycles de d\IeC {\'e}placement des n\oe uds. Ligne du haut : version s\IeC {\'e}quentielle. Ligne du bas : version parall\IeC {\`e}le. Les segments en rouge sont des segments du contour non \IeC {\'e}valu\IeC {\'e}s, alors que ceux en pointill\IeC {\'e}s sont les paires ayant re\IeC {\c c}u les meilleures \IeC {\'e}valuations parmi les 8 d\IeC {\'e}placements possibles des n\oe uds correspondant.}}{52}{figure.3.9}
+\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Contour de r\IeC {\'e}f\IeC {\'e}rence.}}}{52}{figure.3.9}
+\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {D\IeC {\'e}placement du n\oe ud $N_1$. Le crit\IeC {\`e}re est am\IeC {\'e}lior\IeC {\'e}.}}}{52}{figure.3.9}
+\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {D\IeC {\'e}placement du n\oe ud $N_2$. Le crit\IeC {\`e}re est am\IeC {\'e}lior\IeC {\'e}.}}}{52}{figure.3.9}
+\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {D\IeC {\'e}placement en parall\IeC {\`e}le de tous les n\oe uds. Les segments du contour n'ont pas \IeC {\'e}t\IeC {\'e} \IeC {\'e}valu\IeC {\'e}s. On ne peut pas dire, a priori si le crit\IeC {\`e}re est am\IeC {\'e}lior\IeC {\'e}.}}}{52}{figure.3.9}
+\contentsline {subfigure}{\numberline {(e)}{\ignorespaces {D\IeC {\'e}placement en parall\IeC {\`e}le des n\oe uds impairs. Le crit\IeC {\`e}re est am\IeC {\'e}lior\IeC {\'e}.}}}{52}{figure.3.9}
+\contentsline {subfigure}{\numberline {(f)}{\ignorespaces {D\IeC {\'e}placement en parall\IeC {\`e}le des n\oe uds pairs. Un seul segment n'a pas \IeC {\'e}t\IeC {\'e} \IeC {\'e}valu\IeC {\'e}.}}}{52}{figure.3.9}