X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/these_gilles.git/blobdiff_plain/d77325cc1ec33fa6968b1ae96b0c66df6120a06a..de66b573538c6949bbc090e4e7ac4af93a868bbd:/THESE/these.lof?ds=sidebyside diff --git a/THESE/these.lof b/THESE/these.lof index 5e7bab4..6eae3f9 100644 --- a/THESE/these.lof +++ b/THESE/these.lof @@ -33,48 +33,85 @@ \contentsline {subfigure}{\numberline {(c)}{\ignorespaces {$f=5$ et $t=2$, PSNR=29.0~dB MSSIM=0.39}}}{19}{figure.2.6} \contentsline {subfigure}{\numberline {(d)}{\ignorespaces {$f=5$ et $t=5$, PSNR=29.0~dB MSSIM=0.40}}}{19}{figure.2.6} \contentsline {figure}{\numberline {2.7}{\ignorespaces Filtrage par BM3D, PSNR=29.3~dB MSSIM=0.41}}{19}{figure.2.7} -\contentsline {figure}{\numberline {2.8}{\ignorespaces Illustration pr\IeC {\'e}-chargement en m\IeC {\'e}moire partag\IeC {\'e}e mise en \oe uvre dans \cite {zheng2011performance} pour l'impl\IeC {\'e}mentation, entre autres, du filtre bilat\IeC {\'e}ral. a) en vert le bloc de threads associ\IeC {\'e} aux pixels centraux. b-e) les blocs de pixels successivement pr\IeC {\'e}-charg\IeC {\'e}s en m\IeC {\'e}moire partag\IeC {\'e}e. f) la configuration finale de la ROI en m\IeC {\'e}moire partag\IeC {\'e}e.}}{22}{figure.2.8} -\contentsline {figure}{\numberline {2.9}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par analyse simple d'histogramme. Colonne de gauche : image d'entr\IeC {\'e}e. Colonne centrale : histogramme des niveaux de gris. Colonne de droite : r\IeC {\'e}sultat de la segmentation.}}{24}{figure.2.9} -\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Image initiale comportant deux zones : le fond et le cochon (la cible)}}}{24}{figure.2.9} -\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {Histogramme des niveaux de gris}}}{24}{figure.2.9} -\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {Image binaire repr\IeC {\'e}sentant la segmentation. Seuil estim\IeC {\'e} \IeC {\`a} 101 apr\IeC {\`e}s 4 it\IeC {\'e}rations.}}}{24}{figure.2.9} -\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {Image initiale bruit\IeC {\'e}e}}}{24}{figure.2.9} -\contentsline {subfigure}{\numberline {(e)}{\ignorespaces {Histogramme des niveaux de gris}}}{24}{figure.2.9} -\contentsline {subfigure}{\numberline {(f)}{\ignorespaces {Image binaire repr\IeC {\'e}sentant la segmentation. Seuil estim\IeC {\'e} \IeC {\`a} 99 apr\IeC {\`e}s 5 it\IeC {\'e}rations.}}}{24}{figure.2.9} -\contentsline {figure}{\numberline {2.10}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par simplification de graphe de type \textit {Normalized cut} pour un nombre $s$ de segments variant de 2 \IeC {\`a} 5.}}{26}{figure.2.10} -\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {$s = 2$}}}{26}{figure.2.10} -\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {$s = 3$}}}{26}{figure.2.10} -\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {$s = 4$}}}{26}{figure.2.10} -\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {$s = 5$}}}{26}{figure.2.10} -\contentsline {figure}{\numberline {2.11}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme \textit {k-means} pour un nombre $s$ de segments variant de 2 \IeC {\`a} 5. Chaque couleur est associ\IeC {\'e}e \IeC {\`a} un segment. Les couleurs sont choisies pour une meilleure visualisation des diff\IeC {\'e}rents segments.}}{27}{figure.2.11} +\contentsline {figure}{\numberline {2.8}{\ignorespaces Performances relatives des filtres m\IeC {\'e}dians impl\IeC {\'e}ment\IeC {\'e}s sur GPU dans libJacket/ArrayFire, PCMF et BVM et ex\IeC {\'e}cut\IeC {\'e}s sur deux mod\IeC {\`e}le de g\IeC {\'e}n\IeC {\'e}rations diff\IeC {\'e}rentes.}}{21}{figure.2.8} +\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Sur GPU GTX260. Courbe tir\IeC {\'e}e de \cite {5402362}}}}{21}{figure.2.8} +\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {Sur GPU C2075. Courbe tir\IeC {\'e}e de \cite {sanchez2013highly}}}}{21}{figure.2.8} +\contentsline {figure}{\numberline {2.9}{\ignorespaces Illustration pr\IeC {\'e}-chargement en m\IeC {\'e}moire partag\IeC {\'e}e mise en \oe uvre dans \cite {zheng2011performance} pour l'impl\IeC {\'e}mentation, entre autres, du filtre bilat\IeC {\'e}ral. a) en vert le bloc de threads associ\IeC {\'e} aux pixels centraux. b-e) les blocs de pixels successivement pr\IeC {\'e}-charg\IeC {\'e}s en m\IeC {\'e}moire partag\IeC {\'e}e. f) la configuration finale de la ROI en m\IeC {\'e}moire partag\IeC {\'e}e.}}{22}{figure.2.9} +\contentsline {figure}{\numberline {2.10}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par analyse simple d'histogramme. Colonne de gauche : image d'entr\IeC {\'e}e. Colonne centrale : histogramme des niveaux de gris. Colonne de droite : r\IeC {\'e}sultat de la segmentation.}}{25}{figure.2.10} +\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Image initiale comportant deux zones : le fond et le cochon (la cible)}}}{25}{figure.2.10} +\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {Histogramme des niveaux de gris}}}{25}{figure.2.10} +\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {Image binaire repr\IeC {\'e}sentant la segmentation. Seuil estim\IeC {\'e} \IeC {\`a} 101 apr\IeC {\`e}s 4 it\IeC {\'e}rations.}}}{25}{figure.2.10} +\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {Image initiale bruit\IeC {\'e}e}}}{25}{figure.2.10} +\contentsline {subfigure}{\numberline {(e)}{\ignorespaces {Histogramme des niveaux de gris}}}{25}{figure.2.10} +\contentsline {subfigure}{\numberline {(f)}{\ignorespaces {Image binaire repr\IeC {\'e}sentant la segmentation. Seuil estim\IeC {\'e} \IeC {\`a} 99 apr\IeC {\`e}s 5 it\IeC {\'e}rations.}}}{25}{figure.2.10} +\contentsline {figure}{\numberline {2.11}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par simplification de graphe de type \textit {Normalized cut} pour un nombre $s$ de segments variant de 2 \IeC {\`a} 5.}}{27}{figure.2.11} \contentsline {subfigure}{\numberline {(a)}{\ignorespaces {$s = 2$}}}{27}{figure.2.11} \contentsline {subfigure}{\numberline {(b)}{\ignorespaces {$s = 3$}}}{27}{figure.2.11} \contentsline {subfigure}{\numberline {(c)}{\ignorespaces {$s = 4$}}}{27}{figure.2.11} \contentsline {subfigure}{\numberline {(d)}{\ignorespaces {$s = 5$}}}{27}{figure.2.11} -\contentsline {figure}{\numberline {2.12}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme \textit {mean-shift} pour un rayon de voisinage $r$ de 100, 50, 35 et 25 pixels permettant d'obtenir un nombre $s$ de segments variant respectivement de 2 \IeC {\`a} 5. Le volume minimal admis pour un segment est fix\IeC {\'e} \IeC {\`a} 100 pixels. Chaque couleur est associ\IeC {\'e}e \IeC {\`a} un segment. Les couleurs sont choisies pour une meilleure visualisation des diff\IeC {\'e}rents segments.}}{28}{figure.2.12} -\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {$r=100 \Rightarrow s = 2$}}}{28}{figure.2.12} -\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {$r=50 \Rightarrow s = 3$}}}{28}{figure.2.12} -\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {$r=35 \Rightarrow s = 4$}}}{28}{figure.2.12} -\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {$r=25 \Rightarrow s = 5$}}}{28}{figure.2.12} -\contentsline {figure}{\numberline {2.13}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme dit du \textit {snake}, dans sa version originale. Les param\IeC {\`e}tres d'\IeC {\'e}lasticti\IeC {\'e}, de raideur et d'attraction ont \IeC {\'e}t\IeC {\'e} fix\IeC {\'e}s respectivement aux valeurs 5, 0.1 et 5. }}{30}{figure.2.13} -\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Les \IeC {\'e}tats initial et suivant chacune des trois premi\IeC {\`e}res it\IeC {\'e}rations}}}{30}{figure.2.13} -\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la septi\IeC {\`e}me it\IeC {\'e}ration}}}{30}{figure.2.13} -\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la dixi\IeC {\`e}me it\IeC {\'e}ration}}}{30}{figure.2.13} -\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la centi\IeC {\`e}me it\IeC {\'e}ration. C'est le contour final.}}}{30}{figure.2.13} -\contentsline {figure}{\numberline {2.14}{\ignorespaces \IeC {\'E}volution du nombre de pixels actifs pour les it\IeC {\'e}ration successives de l'impl\IeC {\'e}mentation de l'algorithme push-relabel de \cite {graphcutscuda}. Les petites images montrent la localisation des pixels actifs apr\IeC {\`e}s chaque it\IeC {\'e}ration, en blanc.}}{33}{figure.2.14} -\contentsline {figure}{\numberline {2.15}{\ignorespaces Segmentation d'une image couleur de 512$\times $512 pixels par l'impl\IeC {\'e}mentation GPU quick-shift de \cite {fulkerson2012really}.}}{34}{figure.2.15} -\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Image originale}}}{34}{figure.2.15} -\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {$\tau =10$ et $\sigma =2$}}}{34}{figure.2.15} -\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {$\tau =10$ et $\sigma =10$}}}{34}{figure.2.15} -\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {$\tau =20$ et $\sigma =10$}}}{34}{figure.2.15} -\contentsline {figure}{\numberline {2.16}{\ignorespaces Segmentation d'une image couleur de 2256$\times $3008 pixels.}}{35}{figure.2.16} +\contentsline {figure}{\numberline {2.12}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme \textit {k-means} pour un nombre $s$ de segments variant de 2 \IeC {\`a} 5. Chaque couleur est associ\IeC {\'e}e \IeC {\`a} un segment. Les couleurs sont choisies pour une meilleure visualisation des diff\IeC {\'e}rents segments.}}{28}{figure.2.12} +\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {$s = 2$}}}{28}{figure.2.12} +\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {$s = 3$}}}{28}{figure.2.12} +\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {$s = 4$}}}{28}{figure.2.12} +\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {$s = 5$}}}{28}{figure.2.12} +\contentsline {figure}{\numberline {2.13}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme \textit {mean-shift} pour un rayon de voisinage $r$ de 100, 50, 35 et 25 pixels permettant d'obtenir un nombre $s$ de segments variant respectivement de 2 \IeC {\`a} 5. Le volume minimal admis pour un segment est fix\IeC {\'e} \IeC {\`a} 100 pixels. Chaque couleur est associ\IeC {\'e}e \IeC {\`a} un segment. Les couleurs sont choisies pour une meilleure visualisation des diff\IeC {\'e}rents segments.}}{29}{figure.2.13} +\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {$r=100 \Rightarrow s = 2$}}}{29}{figure.2.13} +\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {$r=50 \Rightarrow s = 3$}}}{29}{figure.2.13} +\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {$r=35 \Rightarrow s = 4$}}}{29}{figure.2.13} +\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {$r=25 \Rightarrow s = 5$}}}{29}{figure.2.13} +\contentsline {figure}{\numberline {2.14}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme dit du \textit {snake}, dans sa version originale. Les param\IeC {\`e}tres d'\IeC {\'e}lasticit\IeC {\'e}, de raideur et d'attraction ont \IeC {\'e}t\IeC {\'e} fix\IeC {\'e}s respectivement aux valeurs 5, 0.1 et 5. }}{30}{figure.2.14} +\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Les \IeC {\'e}tats initial et suivant chacune des trois premi\IeC {\`e}res it\IeC {\'e}rations}}}{30}{figure.2.14} +\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la septi\IeC {\`e}me it\IeC {\'e}ration}}}{30}{figure.2.14} +\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la dixi\IeC {\`e}me it\IeC {\'e}ration}}}{30}{figure.2.14} +\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la centi\IeC {\`e}me it\IeC {\'e}ration. C'est le contour final.}}}{30}{figure.2.14} +\contentsline {figure}{\numberline {2.15}{\ignorespaces \IeC {\'E}volution du nombre de pixels actifs pour les it\IeC {\'e}ration successives de l'impl\IeC {\'e}mentation de l'algorithme push-relabel de \cite {graphcutscuda}. Les petites images montrent la localisation des pixels actifs apr\IeC {\`e}s chaque it\IeC {\'e}ration, en blanc.}}{33}{figure.2.15} +\contentsline {figure}{\numberline {2.16}{\ignorespaces Segmentation d'une image couleur de 512$\times $512 pixels par l'impl\IeC {\'e}mentation GPU quick-shift de \cite {fulkerson2012really}.}}{35}{figure.2.16} \contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Image originale}}}{35}{figure.2.16} -\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {Image segment\IeC {\'e}e par mean-shift standard}}}{35}{figure.2.16} -\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {Image segment\IeC {\'e}e par mean-shift kd-tree}}}{35}{figure.2.16} -\contentsline {figure}{\numberline {2.17}{\ignorespaces Segmentation d'images issues d'examens IRM par la m\IeC {\'e}thode des level set \IeC {\`a} bande \IeC {\'e}troite.}}{36}{figure.2.17} -\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Cerveau 256$\times $256$\times $256 en 7~s}}}{36}{figure.2.17} -\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {Reins et aorte, 256$\times $256$\times $272 en 16~s}}}{36}{figure.2.17} -\contentsline {figure}{\numberline {2.18}{\ignorespaces Extraction de contour par la version GPU de l'algorithme gPb. Les images sont issues de la base BSDS \cite {martin2001database}}}{38}{figure.2.18} +\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {$\tau =10$ et $\sigma =2$}}}{35}{figure.2.16} +\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {$\tau =10$ et $\sigma =10$}}}{35}{figure.2.16} +\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {$\tau =20$ et $\sigma =10$}}}{35}{figure.2.16} +\contentsline {figure}{\numberline {2.17}{\ignorespaces Segmentation d'une image couleur de 2256$\times $3008 pixels.}}{35}{figure.2.17} +\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Image originale}}}{35}{figure.2.17} +\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {Image segment\IeC {\'e}e par mean-shift standard}}}{35}{figure.2.17} +\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {Image segment\IeC {\'e}e par mean-shift kd-tree}}}{35}{figure.2.17} +\contentsline {figure}{\numberline {2.18}{\ignorespaces Segmentation d'images issues d'examens IRM par la m\IeC {\'e}thode des level set \IeC {\`a} bande \IeC {\'e}troite.}}{37}{figure.2.18} +\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Cerveau 256$\times $256$\times $256 en 7~s}}}{37}{figure.2.18} +\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {Reins et aorte, 256$\times $256$\times $272 en 16~s}}}{37}{figure.2.18} +\contentsline {figure}{\numberline {2.19}{\ignorespaces Segmentation d'une image d'\IeC {\'e}paule en 1024$^2$ pixels issue d'un examen IRM par l'impl\IeC {\'e}mentation du snake GVF de \cite {snakegvf06}. Le contour est repr\IeC {\'e}sent\IeC {\'e} en rougeet le contour final est obtenu en 11~s. }}{37}{figure.2.19} +\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Contour initial}}}{37}{figure.2.19} +\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {Contour final}}}{37}{figure.2.19} +\contentsline {figure}{\numberline {2.20}{\ignorespaces Extraction de contour par la version GPU de l'algorithme gPb. Les images sont issues de la base BSDS \cite {martin2001database}}}{38}{figure.2.20} \addvspace {10\p@ } +\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} \addvspace {10\p@ } \addvspace {10\p@ }