X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/these_gilles.git/blobdiff_plain/1bdc5bd76352d829a51e2d6407ad331af7164113..5d5e214d54eab1411ef86a32e11fccfaa53dbc45:/THESE/these.aux diff --git a/THESE/these.aux b/THESE/these.aux index 6d83eac..6fb0412 100644 --- a/THESE/these.aux +++ b/THESE/these.aux @@ -24,15 +24,15 @@ \@writefile{lot}{\addvspace {10\p@ }} \citation{CUDAPG} \citation{CUDAPG} -\citation{CUDAPG} -\citation{CUDAPG} \@writefile{toc}{\contentsline {chapter}{\numberline {2}Les processeurs graphiques (GPU) NVidia\textregistered }{13}{chapter.2}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{ch-GPU}{{2}{13}{Les processeurs graphiques (GPU) NVidia\textregistered \relax }{chapter.2}{}} \@writefile{toc}{\contentsline {section}{\numberline {2.1}Pourquoi ?}{13}{section.2.1}} -\@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces Comparaison des structures d'un c\oe ur de GPU et d'un c\oe ur de CPU (d'apr\IeC {\`e}s \cite {CUDAPG}).}}{13}{figure.2.1}} -\newlabel{fig-gpucpu1}{{2.1}{13}{Comparaison des structures d'un c\oe ur de GPU et d'un c\oe ur de CPU (d'après \cite {CUDAPG})}{figure.2.1}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces Comparaison des structures d'un c\oe ur de GPU et d'un c\oe ur de CPU (d'apr\IeC {\`e}s \cite {CUDAPG}). ALU = Arithmetical \& Logical Unit.}}{13}{figure.2.1}} +\newlabel{fig-gpucpu1}{{2.1}{13}{Comparaison des structures d'un c\oe ur de GPU et d'un c\oe ur de CPU (d'après \cite {CUDAPG}). ALU = Arithmetical \& Logical Unit}{figure.2.1}{}} +\citation{CUDAPG} +\citation{CUDAPG} \citation{wong2010demystifying} \@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces Comparaison des performances des GPUs Nvidia et des CPU Intel (d'apr\IeC {\`e}s \cite {CUDAPG}).}}{14}{figure.2.2}} \newlabel{fig-gpucpu2}{{2.2}{14}{Comparaison des performances des GPUs Nvidia et des CPU Intel (d'après \cite {CUDAPG})}{figure.2.2}{}} @@ -46,12 +46,12 @@ \newlabel{fig-c2070}{{2.3}{15}{Organisation des GPU d'architecture Fermi, comme le C2070 (d'après www.hpcresearch.nl)}{figure.2.3}{}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Organisation en groupes de SMs }}}{15}{figure.2.3}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Constitution d'un SM.}}}{15}{figure.2.3}} -\@writefile{lot}{\contentsline {table}{\numberline {2.1}{\ignorespaces Caract\IeC {\'e}ristiques des diff\IeC {\'e}rents types de m\IeC {\'e}moire disponibles sur le GPU. Pour les m\IeC {\'e}moires cach\IeC {\'e}es, les latences sont donn\IeC {\'e}es selon l'acc\IeC {\`e}s \textit {sans-cache/L1/L2/}. Les mesures ont \IeC {\'e}t\IeC {\'e} obtenues \IeC {\`a} l'aide des microprogrammes de test de \cite {wong2010demystifying}.}}{15}{table.2.1}} -\newlabel{tab-gpu-memoire}{{2.1}{15}{Caractéristiques des différents types de mémoire disponibles sur le GPU. Pour les mémoires cachées, les latences sont données selon l'accès \textit {sans-cache/L1/L2/}. Les mesures ont été obtenues à l'aide des microprogrammes de test de \cite {wong2010demystifying}}{table.2.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}Le logiciel}{15}{subsection.2.2.2}} +\@writefile{lot}{\contentsline {table}{\numberline {2.1}{\ignorespaces Caract\IeC {\'e}ristiques des diff\IeC {\'e}rents types de m\IeC {\'e}moire disponibles sur le GPU. Pour les m\IeC {\'e}moires cach\IeC {\'e}es, les latences sont donn\IeC {\'e}es selon l'acc\IeC {\`e}s \textit {sans-cache/L1/L2}. Les mesures ont \IeC {\'e}t\IeC {\'e} obtenues \IeC {\`a} l'aide des microprogrammes de test de \cite {wong2010demystifying}.}}{16}{table.2.1}} +\newlabel{tab-gpu-memoire}{{2.1}{16}{Caractéristiques des différents types de mémoire disponibles sur le GPU. Pour les mémoires cachées, les latences sont données selon l'accès \textit {sans-cache/L1/L2}. Les mesures ont été obtenues à l'aide des microprogrammes de test de \cite {wong2010demystifying}}{table.2.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}Le logiciel}{16}{subsection.2.2.2}} \@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Repr\IeC {\'e}sentation d'une grille de calcul en 2D et des blocs de threads, \IeC {\`a} 2 dimensions, qui la composent.}}{16}{figure.2.4}} \newlabel{fig-threads}{{2.4}{16}{Représentation d'une grille de calcul en 2D et des blocs de threads, à 2 dimensions, qui la composent}{figure.2.4}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.3}l'Occupancy}{16}{subsection.2.2.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.3}l'Occupancy}{17}{subsection.2.2.3}} \citation{Caselles99topographicmaps} \citation{cutrona1990synthetic} \@writefile{toc}{\contentsline {chapter}{\numberline {3}Le traitement des images bruit\IeC {\'e}es}{19}{chapter.3}} @@ -65,10 +65,9 @@ \@writefile{toc}{\contentsline {section}{\numberline {3.2}Mod\IeC {\`e}les de bruit}{20}{section.3.2}} \newlabel{sec_bruits}{{3.2}{20}{Modèles de bruit\relax }{section.3.2}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Le bruit gaussien}{20}{subsection.3.2.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Le speckle}{20}{subsection.3.2.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Le speckle}{21}{subsection.3.2.2}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Le bruit ``sel et poivre''}{21}{subsection.3.2.3}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.4}Le bruit de Poisson}{21}{subsection.3.2.4}} -\@writefile{toc}{\contentsline {section}{\numberline {3.3}Les techniques de r\IeC {\'e}duction de bruit}{21}{section.3.3}} \citation{coil} \citation{Wang04imagequality} \@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Images 256$\times $256 en niveau de gris 8 bits utilis\IeC {\'e}es pour l'illustration des propri\IeC {\'e}t\IeC {\'e}s des filtres. a) l'image de r\IeC {\'e}f\IeC {\'e}rence non bruit\IeC {\'e}e. b) l'image corrompue par un bruit gaussien d'\IeC {\'e}cart type $\sigma =25$. c) l'image corrompue par un bruit impulsionnel \IeC {\`a} 25\%.}}{22}{figure.3.1}} @@ -76,6 +75,7 @@ \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Sans bruit}}}{22}{figure.3.1}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Bruit gaussien $\sigma =25$, PSNR=22.3~dB MSSIM=0.16}}}{22}{figure.3.1}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Bruit impulsionnel 25\%, PSNR=9.48~dB MSSIM=0.04}}}{22}{figure.3.1}} +\@writefile{toc}{\contentsline {section}{\numberline {3.3}Les techniques de r\IeC {\'e}duction de bruit}{22}{section.3.3}} \citation{tukey77} \citation{4287006} \@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Filtrage par convolution.}}{23}{figure.3.2}} @@ -87,29 +87,18 @@ \newlabel{sec-op-base}{{3.3.1}{23}{Les opérateurs de base\relax }{subsection.3.3.1}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1.1}Le filtre de convolution}{23}{subsubsection.3.3.1.1}} \newlabel{convoDef}{{3.1}{23}{Le filtre de convolution\relax }{equation.3.3.1}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1.2}Le filtre m\IeC {\'e}dian}{23}{subsubsection.3.3.1.2}} \citation{710815} \citation{1521458} \citation{4587843} -\citation{BuadesCM06} -\citation{bertaux2004speckle} \@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces R\IeC {\'e}duction du bruit impulsionnel par filtre m\IeC {\'e}dian.}}{24}{figure.3.3}} \newlabel{fig-ny-median}{{3.3}{24}{Réduction du bruit impulsionnel par filtre médian}{figure.3.3}{}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {M\IeC {\'e}dian 3$\times $3 une passe, PSNR=26.4~dB MSSIM=0.90}}}{24}{figure.3.3}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {M\IeC {\'e}dian 3$\times $3 deux passes, PSNR=34.4~dB MSSIM=0.98}}}{24}{figure.3.3}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {M\IeC {\'e}dian 5$\times $5 une passe, PSNR=35.1~dB MSSIM=0.98}}}{24}{figure.3.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1.2}Le filtre m\IeC {\'e}dian}{24}{subsubsection.3.3.1.2}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1.3}Le filtre bilat\IeC {\'e}ral}{24}{subsubsection.3.3.1.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces R\IeC {\'e}duction de bruit gaussien par filtrage bilat\IeC {\'e}ral de voisinage 5$\times $5. $\sigma _S$ et $\sigma _I$ sont les \IeC {\'e}carts type des fonctions gaussiennes de pond\IeC {\'e}ration spatiale et d'intensit\IeC {\'e}.}}{25}{figure.3.4}} -\newlabel{fig-ny-bilat}{{3.4}{25}{Réduction de bruit gaussien par filtrage bilatéral de voisinage 5$\times $5. $\sigma _S$ et $\sigma _I$ sont les écarts type des fonctions gaussiennes de pondération spatiale et d'intensité}{figure.3.4}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$\sigma _S=1.0$ et $\sigma _I=0.1$, PSNR=25.6~dB MSSIM=0.25}}}{25}{figure.3.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$\sigma _S=1.0$ et $\sigma _I=0.5$, PSNR=28.0~dB MSSIM=0.36}}}{25}{figure.3.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$\sigma _S=1.0$ et $\sigma _I=1.0$, PSNR=27.9~dB MSSIM=0.36}}}{25}{figure.3.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$\sigma _S=2.0$ et $\sigma _I=0.1$, PSNR=26.7~dB MSSIM=0.29}}}{25}{figure.3.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {$\sigma _S=2.0$ et $\sigma _I=0.5$, PSNR=27.9~dB MSSIM=0.39}}}{25}{figure.3.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {$\sigma _S=2.0$ et $\sigma _I=1.0$, PSNR=27.5~dB MSSIM=0.38}}}{25}{figure.3.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(g)}{\ignorespaces {$\sigma _S=5.0$ et $\sigma _I=0.1$, PSNR=26.8~dB MSSIM=0.29}}}{25}{figure.3.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(h)}{\ignorespaces {$\sigma _S=5.0$ et $\sigma _I=0.5$, PSNR=26.8~dB MSSIM=0.37}}}{25}{figure.3.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(i)}{\ignorespaces {$\sigma _S=5.0$ et $\sigma _I=1.0$, PSNR=25.9~dB MSSIM=0.36}}}{25}{figure.3.4}} +\citation{BuadesCM06} +\citation{bertaux2004speckle} \citation{Mallat:2008:WTS:1525499} \citation{Daubechies:1992:TLW:130655} \citation{1093941} @@ -119,60 +108,72 @@ \citation{1467423} \citation{Dabov06imagedenoising} \citation{Dabov09bm3dimage} -\@writefile{lof}{\contentsline {figure}{\numberline {3.5}{\ignorespaces Filtrage par d\IeC {\'e}composition en ondelettes et seuillage dur des coefficients inf\IeC {\'e}rieurs au seuil $T$.}}{26}{figure.3.5}} -\newlabel{fig-ny-dwt}{{3.5}{26}{Filtrage par décomposition en ondelettes et seuillage dur des coefficients inférieurs au seuil $T$}{figure.3.5}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$T=20$, PSNR=26.9~dB MSSIM=0.30}}}{26}{figure.3.5}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$T=35$, PSNR=27.6~dB MSSIM=0.36}}}{26}{figure.3.5}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$T=70$, PSNR=26.7~dB MSSIM=0.37}}}{26}{figure.3.5}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1.4}Les algorithmes de filtrage par dictionnaire}{26}{subsubsection.3.3.1.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}Les algorithmes de filtrage par patches}{26}{subsection.3.3.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1.4}Les algorithmes de filtrage par dictionnaire}{25}{subsubsection.3.3.1.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}Les algorithmes de filtrage par patches}{25}{subsection.3.3.2}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces R\IeC {\'e}duction de bruit gaussien par filtrage bilat\IeC {\'e}ral de voisinage 5$\times $5. $\sigma _S$ et $\sigma _I$ sont les \IeC {\'e}carts type des fonctions gaussiennes de pond\IeC {\'e}ration spatiale et d'intensit\IeC {\'e}.}}{26}{figure.3.4}} +\newlabel{fig-ny-bilat}{{3.4}{26}{Réduction de bruit gaussien par filtrage bilatéral de voisinage 5$\times $5. $\sigma _S$ et $\sigma _I$ sont les écarts type des fonctions gaussiennes de pondération spatiale et d'intensité}{figure.3.4}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$\sigma _S=1.0$ et $\sigma _I=0.1$, PSNR=25.6~dB MSSIM=0.25}}}{26}{figure.3.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$\sigma _S=1.0$ et $\sigma _I=0.5$, PSNR=28.0~dB MSSIM=0.36}}}{26}{figure.3.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$\sigma _S=1.0$ et $\sigma _I=1.0$, PSNR=27.9~dB MSSIM=0.36}}}{26}{figure.3.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$\sigma _S=2.0$ et $\sigma _I=0.1$, PSNR=26.7~dB MSSIM=0.29}}}{26}{figure.3.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {$\sigma _S=2.0$ et $\sigma _I=0.5$, PSNR=27.9~dB MSSIM=0.39}}}{26}{figure.3.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {$\sigma _S=2.0$ et $\sigma _I=1.0$, PSNR=27.5~dB MSSIM=0.38}}}{26}{figure.3.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(g)}{\ignorespaces {$\sigma _S=5.0$ et $\sigma _I=0.1$, PSNR=26.8~dB MSSIM=0.29}}}{26}{figure.3.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(h)}{\ignorespaces {$\sigma _S=5.0$ et $\sigma _I=0.5$, PSNR=26.8~dB MSSIM=0.37}}}{26}{figure.3.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(i)}{\ignorespaces {$\sigma _S=5.0$ et $\sigma _I=1.0$, PSNR=25.9~dB MSSIM=0.36}}}{26}{figure.3.4}} \citation{cmla2009Kes} +\@writefile{lof}{\contentsline {figure}{\numberline {3.5}{\ignorespaces Filtrage par d\IeC {\'e}composition en ondelettes et seuillage dur des coefficients inf\IeC {\'e}rieurs au seuil $T$.}}{27}{figure.3.5}} +\newlabel{fig-ny-dwt}{{3.5}{27}{Filtrage par décomposition en ondelettes et seuillage dur des coefficients inférieurs au seuil $T$}{figure.3.5}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$T=20$, PSNR=26.9~dB MSSIM=0.30}}}{27}{figure.3.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$T=35$, PSNR=27.6~dB MSSIM=0.36}}}{27}{figure.3.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$T=70$, PSNR=26.7~dB MSSIM=0.37}}}{27}{figure.3.5}} \@writefile{lof}{\contentsline {figure}{\numberline {3.6}{\ignorespaces Filtrage par NL-means pour diff\IeC {\'e}rentes combinaisons des param\IeC {\`e}tres de similarit\IeC {\'e} $f$ et de non localit\IeC {\'e} $t$.}}{27}{figure.3.6}} \newlabel{fig-ny-nlm}{{3.6}{27}{Filtrage par NL-means pour différentes combinaisons des paramètres de similarité $f$ et de non localité $t$}{figure.3.6}{}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$f=2$ et $t=2$, PSNR=28.5~dB MSSIM=0.37}}}{27}{figure.3.6}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$f=2$ et $t=5$, PSNR=28.6~dB MSSIM=0.38}}}{27}{figure.3.6}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$f=5$ et $t=2$, PSNR=29.0~dB MSSIM=0.39}}}{27}{figure.3.6}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$f=5$ et $t=5$, PSNR=29.0~dB MSSIM=0.40}}}{27}{figure.3.6}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.7}{\ignorespaces Filtrage par BM3D, PSNR=29.3~dB MSSIM=0.41}}{27}{figure.3.7}} -\newlabel{fig-ny-bm3d}{{3.7}{27}{Filtrage par BM3D, PSNR=29.3~dB MSSIM=0.41\relax }{figure.3.7}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3.4}Les impl\IeC {\'e}mentations sur GPU des algorithmes de filtrage}{27}{section.3.4}} \citation{convolutionsoup} \citation{4287006} \citation{6288187} \citation{5402362} \citation{chen09} -\citation{5402362} -\citation{sanchez2013highly} -\@writefile{toc}{\contentsline {section}{\numberline {3.4}Les impl\IeC {\'e}mentations GPU des algorithmes de filtrage}{28}{section.3.4}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.7}{\ignorespaces Filtrage par BM3D, PSNR=29.3~dB MSSIM=0.41}}{28}{figure.3.7}} +\newlabel{fig-ny-bm3d}{{3.7}{28}{Filtrage par BM3D, PSNR=29.3~dB MSSIM=0.41\relax }{figure.3.7}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.4.1}Le filtrage par convolution}{28}{subsection.3.4.1}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.4.2}Le filtre m\IeC {\'e}dian}{28}{subsection.3.4.2}} \newlabel{sec-median}{{3.4.2}{28}{Le filtre médian\relax }{subsection.3.4.2}{}} \citation{5402362} \citation{sanchez2013highly} +\citation{5402362} +\citation{sanchez2013highly} \citation{aldinucci2012parallel} \citation{5206542} \newlabel{fig-compare-jacket-pcmf1}{{3.8(a)}{29}{Subfigure 3 3.8(a)\relax }{subfigure.3.8.1}{}} \newlabel{sub@fig-compare-jacket-pcmf1}{{(a)}{29}{Subfigure 3 3.8(a)\relax }{subfigure.3.8.1}{}} \newlabel{fig-compare-jacket-pcmf2}{{3.8(b)}{29}{Subfigure 3 3.8(b)\relax }{subfigure.3.8.2}{}} \newlabel{sub@fig-compare-jacket-pcmf2}{{(b)}{29}{Subfigure 3 3.8(b)\relax }{subfigure.3.8.2}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.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.}}{29}{figure.3.8}} -\newlabel{fig-compare-jacket-pcmf}{{3.8}{29}{Performances relatives des filtres médians implémentés sur GPU dans libJacket/ArrayFire, PCMF et BVM et exécutés sur deux modèle de générations différentes}{figure.3.8}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.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}les de g\IeC {\'e}n\IeC {\'e}rations diff\IeC {\'e}rentes.}}{29}{figure.3.8}} +\newlabel{fig-compare-jacket-pcmf}{{3.8}{29}{Performances relatives des filtres médians implémentés sur GPU dans libJacket/ArrayFire, PCMF et BVM et exécutés sur deux modèles de générations différentes}{figure.3.8}{}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Sur GPU GTX260. Courbe tir\IeC {\'e}e de \cite {5402362}}}}{29}{figure.3.8}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Sur GPU C2075. Courbe tir\IeC {\'e}e de \cite {sanchez2013highly}}}}{29}{figure.3.8}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.3}Le filtre bilat\IeC {\'e}ral}{29}{subsection.3.4.3}} -\newlabel{sec-bilateral}{{3.4.3}{29}{Le filtre bilatéral\relax }{subsection.3.4.3}{}} \citation{zheng2011performance} \citation{zheng2011performance} \citation{zheng2011performance} -\@writefile{lof}{\contentsline {figure}{\numberline {3.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.}}{30}{figure.3.9}} -\newlabel{fig-prefetch-zheng}{{3.9}{30}{Illustration pré-chargement en mémoire partagée mise en \oe uvre dans \cite {zheng2011performance} pour l'implémentation, entre autres, du filtre bilatéral. a) en vert le bloc de threads associé aux pixels centraux. b-e) les blocs de pixels successivement pré-chargés en mémoire partagée. f) la configuration finale de la ROI en mémoire partagée}{figure.3.9}{}} \citation{PALHANOXAVIERDEFONTES} \citation{nlmeansgpubelge} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.3}Le filtre bilat\IeC {\'e}ral}{30}{subsection.3.4.3}} +\newlabel{sec-bilateral}{{3.4.3}{30}{Le filtre bilatéral\relax }{subsection.3.4.3}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.9}{\ignorespaces Illustration du pr\IeC {\'e}-chargement en m\IeC {\'e}moire partag\IeC {\'e}e mis 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.}}{31}{figure.3.9}} +\newlabel{fig-prefetch-zheng}{{3.9}{31}{Illustration du pré-chargement en mémoire partagée mis en \oe uvre dans \cite {zheng2011performance} pour l'implémentation, entre autres, du filtre bilatéral. a) en vert le bloc de threads associé aux pixels centraux. b-e) les blocs de pixels successivement pré-chargés en mémoire partagée. f) la configuration finale de la ROI en mémoire partagée}{figure.3.9}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.4.4}Les filtres par patches}{31}{subsection.3.4.4}} \@writefile{toc}{\contentsline {section}{\numberline {3.5}Les techniques de segmentation}{31}{section.3.5}} \citation{humphrey1924psychology} \citation{4310076} \@writefile{toc}{\contentsline {subsection}{\numberline {3.5.1}Analyse d'histogramme}{32}{subsection.3.5.1}} \newlabel{sec-histo}{{3.5.1}{32}{Analyse d'histogramme\relax }{subsection.3.5.1}{}} +\citation{Zahn:1971:GMD:1309266.1309359} \newlabel{fig-histo-cochon-a}{{3.10(a)}{33}{Subfigure 3 3.10(a)\relax }{subfigure.3.10.1}{}} \newlabel{sub@fig-histo-cochon-a}{{(a)}{33}{Subfigure 3 3.10(a)\relax }{subfigure.3.10.1}{}} \newlabel{fig-histo-cochon-b}{{3.10(b)}{33}{Subfigure 3 3.10(b)\relax }{subfigure.3.10.2}{}} @@ -193,16 +194,15 @@ \@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {Image initiale bruit\IeC {\'e}e}}}{33}{figure.3.10}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {Histogramme des niveaux de gris}}}{33}{figure.3.10}} \@writefile{lof}{\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.}}}{33}{figure.3.10}} -\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces Calcul du seuil de s\IeC {\'e}paration des segments de l'histogramme.}}{33}{algocfline.1}} -\newlabel{algo-histo-cochon}{{1}{33}{Analyse d'histogramme\relax }{algocfline.1}{}} -\citation{Zahn:1971:GMD:1309266.1309359} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.2}Partitionnement de graphe}{33}{subsection.3.5.2}} \citation{wu1993optimal} \citation{wang2001image} \citation{wang2003image} \citation{felzenszwalb2004efficient} \citation{shi2000normalized} +\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces Calcul du seuil de s\IeC {\'e}paration des segments de l'histogramme.}}{34}{algocfline.1}} +\newlabel{algo-histo-cochon}{{1}{34}{Analyse d'histogramme\relax }{algocfline.1}{}} \citation{shi2000normalized} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.2}Partitionnement de graphe}{34}{subsection.3.5.2}} \citation{ford1955simple} \citation{boykov2004experimental} \citation{chandran2009computational} @@ -239,15 +239,15 @@ \@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$r=25 \Rightarrow s = 5$}}}{37}{figure.3.13}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.5.4}Les contours actifs, ou \textit {snakes}}{37}{subsection.3.5.4}} \citation{KassWT88} -\citation{osher1988fronts} -\citation{adalsteinsson1994fast} -\citation{sethian1996fast} \@writefile{lof}{\contentsline {figure}{\numberline {3.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. }}{38}{figure.3.14}} \newlabel{fig-snake-tradi-cochon}{{3.14}{38}{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ètres d'élasticité, de raideur et d'attraction ont été fixés respectivement aux valeurs 5, 0.1 et 5. \relax }{figure.3.14}{}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Les \IeC {\'e}tats initial et suivant chacune des trois premi\IeC {\`e}res it\IeC {\'e}rations}}}{38}{figure.3.14}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la septi\IeC {\`e}me it\IeC {\'e}ration}}}{38}{figure.3.14}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la dixi\IeC {\`e}me it\IeC {\'e}ration}}}{38}{figure.3.14}} \@writefile{lof}{\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.}}}{38}{figure.3.14}} +\citation{osher1988fronts} +\citation{adalsteinsson1994fast} +\citation{sethian1996fast} \citation{cohen1993surface} \citation{ronfard1994region} \citation{ChesnaudRB99} @@ -255,31 +255,30 @@ \citation{GermainR01} \citation{arbelaez2011contour} \@writefile{toc}{\contentsline {subsection}{\numberline {3.5.5}M\IeC {\'e}thodes hybrides}{39}{subsection.3.5.5}} -\@writefile{toc}{\contentsline {section}{\numberline {3.6}Les impl\IeC {\'e}mentations GPU des techniques de segmentation}{39}{section.3.6}} \citation{fluck2006gpu} \citation{lefohn2003interactive} \citation{Vineet:2009:FMS:1572769.1572796} +\@writefile{toc}{\contentsline {section}{\numberline {3.6}Les impl\IeC {\'e}mentations sur GPU des techniques de segmentation}{40}{section.3.6}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.6.1}Calcul d'histogramme}{40}{subsection.3.6.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.6.2}Partitionnement de graphe}{40}{subsection.3.6.2}} \citation{dixit2005gpu} \citation{4563095} \citation{kohli2007dynamic} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.6.1}Calcul d'histogramme}{40}{subsection.3.6.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.6.2}Partitionnement de graphe}{40}{subsection.3.6.2}} \citation{graphcutscuda} \citation{graphcutscuda} -\citation{4563095} \citation{graphcutscuda} \citation{graphcutscuda} \citation{che2008performance} \citation{kddcup99} -\citation{5170921} -\citation{che2008performance} \@writefile{lof}{\contentsline {figure}{\numberline {3.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.}}{41}{figure.3.15}} \newlabel{fig-graphcutscuda}{{3.15}{41}{Évolution du nombre de pixels actifs pour les itération successives de l'implémentation de l'algorithme push-relabel de \cite {graphcutscuda}. Les petites images montrent la localisation des pixels actifs après chaque itération, en blanc}{figure.3.15}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.6.3}K-means, mean-shift et apparent\IeC {\'e}s}{41}{subsection.3.6.3}} +\citation{5170921} +\citation{che2008performance} \citation{kmeansgpuopengl} \citation{li2009mean} \citation{vedaldi2008quick} \citation{fulkerson2012really} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.6.3}K-means, mean-shift et apparent\IeC {\'e}s}{42}{subsection.3.6.3}} \citation{fulkerson2012really} \citation{fulkerson2012really} \citation{fulkerson2012really} @@ -288,24 +287,24 @@ \citation{lefohn2003interactive} \citation{rumpf2001level} \citation{rumpf2001level} -\citation{lefohn2005streaming} -\citation{cates2004gist} -\citation{jeong2009scalable} -\citation{jeong2009scalable} \@writefile{lof}{\contentsline {figure}{\numberline {3.16}{\ignorespaces Segmentation d'une image couleur de 512$\times $512 pixels par l'impl\IeC {\'e}mentation GPU quick-shift de \cite {fulkerson2012really}.}}{43}{figure.3.16}} \newlabel{fig-quickshift-yo}{{3.16}{43}{Segmentation d'une image couleur de 512$\times $512 pixels par l'implémentation GPU quick-shift de \cite {fulkerson2012really}}{figure.3.16}{}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image originale}}}{43}{figure.3.16}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$\tau =10$ et $\sigma =2$}}}{43}{figure.3.16}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$\tau =10$ et $\sigma =10$}}}{43}{figure.3.16}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$\tau =20$ et $\sigma =10$}}}{43}{figure.3.16}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.17}{\ignorespaces Segmentation d'une image couleur de 2256$\times $3008 pixels.}}{43}{figure.3.17}} -\newlabel{fig-meanshift-castle}{{3.17}{43}{Segmentation d'une image couleur de 2256$\times $3008 pixels}{figure.3.17}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image originale}}}{43}{figure.3.17}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Image segment\IeC {\'e}e par mean-shift standard}}}{43}{figure.3.17}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Image segment\IeC {\'e}e par mean-shift kd-tree}}}{43}{figure.3.17}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.6.4}Snakes et Level set}{43}{subsection.3.6.4}} +\citation{lefohn2005streaming} +\citation{cates2004gist} +\citation{jeong2009scalable} +\citation{jeong2009scalable} \citation{Roberts:2010:WGA:1921479.1921499} \citation{lefohn2003inter} +\@writefile{lof}{\contentsline {figure}{\numberline {3.17}{\ignorespaces Segmentation d'une image couleur de 2256$\times $3008 pixels.}}{44}{figure.3.17}} +\newlabel{fig-meanshift-castle}{{3.17}{44}{Segmentation d'une image couleur de 2256$\times $3008 pixels}{figure.3.17}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image originale}}}{44}{figure.3.17}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Image segment\IeC {\'e}e par mean-shift standard}}}{44}{figure.3.17}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Image segment\IeC {\'e}e par mean-shift kd-tree}}}{44}{figure.3.17}} \citation{snakegvf06} \citation{bauer2009segmentation} \citation{li2011robust} @@ -314,7 +313,6 @@ \citation{snakegvf06} \citation{snakegvf06} \citation{zheng2012fast} -\citation{li2011robust} \newlabel{fig-l7-brain}{{3.18(a)}{45}{Subfigure 3 3.18(a)\relax }{subfigure.3.18.1}{}} \newlabel{sub@fig-l7-brain}{{(a)}{45}{Subfigure 3 3.18(a)\relax }{subfigure.3.18.1}{}} \newlabel{fig-l7-reins}{{3.18(b)}{45}{Subfigure 3 3.18(b)\relax }{subfigure.3.18.2}{}} @@ -323,14 +321,7 @@ \newlabel{fig-l7-narrow}{{3.18}{45}{Segmentation d'images issues d'examens IRM par la méthode des level set à bande étroite}{figure.3.18}{}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Cerveau 256$\times $256$\times $256 en 7~s}}}{45}{figure.3.18}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Reins et aorte, 256$\times $256$\times $272 en 16~s}}}{45}{figure.3.18}} -\newlabel{fig-epaule-init}{{3.19(a)}{45}{Subfigure 3 3.19(a)\relax }{subfigure.3.19.1}{}} -\newlabel{sub@fig-epaule-init}{{(a)}{45}{Subfigure 3 3.19(a)\relax }{subfigure.3.19.1}{}} -\newlabel{fig-epaule-fin}{{3.19(b)}{45}{Subfigure 3 3.19(b)\relax }{subfigure.3.19.2}{}} -\newlabel{sub@fig-epaule-fin}{{(b)}{45}{Subfigure 3 3.19(b)\relax }{subfigure.3.19.2}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.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. }}{45}{figure.3.19}} -\newlabel{fig-snakegvf}{{3.19}{45}{Segmentation d'une image d'épaule en 1024$^2$ pixels issue d'un examen IRM par l'implémentation du snake GVF de \cite {snakegvf06}. Le contour est représenté en rougeet le contour final est obtenu en 11~s. \relax }{figure.3.19}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Contour initial}}}{45}{figure.3.19}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Contour final}}}{45}{figure.3.19}} +\citation{li2011robust} \citation{snakegvfopencl12} \citation{arbelaez2011contour} \citation{5459410} @@ -338,11 +329,19 @@ \citation{bresenham1965algorithm} \citation{martin2001database} \citation{martin2001database} -\@writefile{lof}{\contentsline {figure}{\numberline {3.20}{\ignorespaces Extraction de contour par la version GPU de l'algorithme gPb. Les images sont issues de la base BSDS \cite {martin2001database}}}{46}{figure.3.20}} -\newlabel{fig-gPb}{{3.20}{46}{Extraction de contour par la version GPU de l'algorithme gPb. Les images sont issues de la base BSDS \cite {martin2001database}\relax }{figure.3.20}{}} +\newlabel{fig-epaule-init}{{3.19(a)}{46}{Subfigure 3 3.19(a)\relax }{subfigure.3.19.1}{}} +\newlabel{sub@fig-epaule-init}{{(a)}{46}{Subfigure 3 3.19(a)\relax }{subfigure.3.19.1}{}} +\newlabel{fig-epaule-fin}{{3.19(b)}{46}{Subfigure 3 3.19(b)\relax }{subfigure.3.19.2}{}} +\newlabel{sub@fig-epaule-fin}{{(b)}{46}{Subfigure 3 3.19(b)\relax }{subfigure.3.19.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.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. }}{46}{figure.3.19}} +\newlabel{fig-snakegvf}{{3.19}{46}{Segmentation d'une image d'épaule en 1024$^2$ pixels issue d'un examen IRM par l'implémentation du snake GVF de \cite {snakegvf06}. Le contour est représenté en rougeet le contour final est obtenu en 11~s. \relax }{figure.3.19}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Contour initial}}}{46}{figure.3.19}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Contour final}}}{46}{figure.3.19}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.6.5}Algorithmes hybrides}{46}{subsection.3.6.5}} -\citation{volkov2010better} +\@writefile{lof}{\contentsline {figure}{\numberline {3.20}{\ignorespaces Extraction de contour par la version GPU de l'algorithme gPb. Les images sont issues de la base BSDS \cite {martin2001database}}}{47}{figure.3.20}} +\newlabel{fig-gPb}{{3.20}{47}{Extraction de contour par la version GPU de l'algorithme gPb. Les images sont issues de la base BSDS \cite {martin2001database}\relax }{figure.3.20}{}} \@writefile{toc}{\contentsline {section}{\numberline {3.7}Conclusion}{47}{section.3.7}} +\citation{volkov2010better} \citation{ChesnaudRB99} \citation{ChesnaudRB99} \@writefile{toc}{\contentsline {chapter}{\numberline {4}La segmentation par snake polygonal orient\IeC {\'e} r\IeC {\'e}gions}{49}{chapter.4}} @@ -449,6 +448,7 @@ \newlabel{tab-speedup-cumuls}{{4.3}{67}{Accélération constatée, pour le calcul des images cumulées, de l'implémentation GPU par rapport à l'implémentation CPU de référence}{table.4.3}{}} \@writefile{lot}{\contentsline {table}{\numberline {4.4}{\ignorespaces Comparaison des temps d'ex\IeC {\'e}cution de l'impl\IeC {\'e}mentation GPU par rapport \IeC {\`a} l'impl\IeC {\'e}mentation CPU de r\IeC {\'e}f\IeC {\'e}rence, appliqu\IeC {\'e}s \IeC {\`a} une m\IeC {\^e}me image dilat\IeC {\'e}e pour en adapter la taille.}}{67}{table.4.4}} \newlabel{tab-snake-results}{{4.4}{67}{Comparaison des temps d'exécution de l'implémentation GPU par rapport à l'implémentation CPU de référence, appliqués à une même image dilatée pour en adapter la taille}{table.4.4}{}} +\citation{bertaux2004speckle} \@writefile{toc}{\contentsline {chapter}{\numberline {5}R\IeC {\'e}duction de bruit par recherche des lignes de niveaux}{71}{chapter.5}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} @@ -495,146 +495,216 @@ \@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {Cinqui\IeC {\`e}me segment \IeC {\'e}valu\IeC {\'e}, associ\IeC {\'e} au motif $p_{5,4}$.}}}{76}{figure.5.4}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.2.2}Isolines \IeC {\`a} segments pre-\IeC {\'e}valu\IeC {\'e}s - mod\IeC {\`e}le PI-PD}{76}{subsection.5.2.2}} \newlabel{subsection-pipd-intro}{{5.2.2}{76}{Isolines à segments pre-évalués - modèle PI-PD\relax }{subsection.5.2.2}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {5.5}{\ignorespaces Histogramme des \IeC {\'e}carts angulaires entre la direction primaire de l'\textit {isoline} optimale et celle de l'\textit {isoline} s\IeC {\'e}lectionn\IeC {\'e}e, pour l'image du singe (Mandrill). Pour la tr\IeC {\`e}s grande majorit\IeC {\'e} des pixels, le mode de s\IeC {\'e}lection de l'\textit {isoline} ne g\IeC {\'e}n\IeC {\'e}re pas d'erreur sur la direction du premier segment.}}{77}{figure.5.5}} -\newlabel{fig-lniv-histo-singe}{{5.5}{77}{Histogramme des écarts angulaires entre la direction primaire de l'\textit {isoline} optimale et celle de l'\textit {isoline} sélectionnée, pour l'image du singe (Mandrill). Pour la très grande majorité des pixels, le mode de sélection de l'\textit {isoline} ne génére pas d'erreur sur la direction du premier segment}{figure.5.5}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {5.6}{\ignorespaces Histogrammes des \IeC {\'e}carts angulaires entre la direction primaire de l'\textit {isoline} optimale et celle de l'\textit {isoline} s\IeC {\'e}lectionn\IeC {\'e}e, pour les images de l'ensemble de test de S. Lansel. La r\IeC {\'e}partition des erreurs est semblable dans toutes ces images naturelles.}}{77}{figure.5.6}} -\newlabel{fig-lniv-histo-autres}{{5.6}{77}{Histogrammes des écarts angulaires entre la direction primaire de l'\textit {isoline} optimale et celle de l'\textit {isoline} sélectionnée, pour les images de l'ensemble de test de S. Lansel. La répartition des erreurs est semblable dans toutes ces images naturelles}{figure.5.6}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Airplane}}}{77}{figure.5.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Barbara}}}{77}{figure.5.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Boat}}}{77}{figure.5.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {Couple}}}{77}{figure.5.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {Elaine}}}{77}{figure.5.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {Finger}}}{77}{figure.5.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(g)}{\ignorespaces {Goldhill}}}{77}{figure.5.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(h)}{\ignorespaces {Lena}}}{77}{figure.5.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(i)}{\ignorespaces {Man}}}{77}{figure.5.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(j)}{\ignorespaces {Peppers}}}{77}{figure.5.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(k)}{\ignorespaces {Stream}}}{77}{figure.5.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(l)}{\ignorespaces {Zelda}}}{77}{figure.5.6}} +\newlabel{fig-lniv-imgslansel}{{5.2.1}{77}{Isolines évaluées semi-globalement\relax }{subfigure.5.5.13}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.5}{\ignorespaces Images non bruit\IeC {\'e}es de la base d'images en niveaux de gris de S. Lansel.}}{77}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {airplane}}}{77}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {boat}}}{77}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {barbara}}}{77}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {couple}}}{77}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {elaine}}}{77}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {fingerprint}}}{77}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(g)}{\ignorespaces {goldhill}}}{77}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(h)}{\ignorespaces {lena}}}{77}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(i)}{\ignorespaces {man}}}{77}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(j)}{\ignorespaces {mandrill}}}{77}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(k)}{\ignorespaces {peppers}}}{77}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(l)}{\ignorespaces {stream}}}{77}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(m)}{\ignorespaces {zelda}}}{77}{figure.5.5}} \newlabel{cx}{{5.9}{77}{Isolines à segments pre-évalués - modèle PI-PD\relax }{equation.5.2.9}{}} \newlabel{cx2}{{5.10}{77}{Isolines à segments pre-évalués - modèle PI-PD\relax }{equation.5.2.10}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {5.7}{\ignorespaces Exemple d'application du proc\IeC {\'e}d\IeC {\'e} d'allongement \IeC {\`a} une \textit {isoline} comprenant initialement 2 segments. la longueur des segments est $d=5$. Le proc\IeC {\'e}d\IeC {\'e} se r\IeC {\'e}p\IeC {\`e}te jusqu'\IeC {\`a} ce que le test GLRT \IeC {\'e}choue.}}{78}{figure.5.7}} -\newlabel{fig-lniv-pipd}{{5.7}{78}{Exemple d'application du procédé d'allongement à une \textit {isoline} comprenant initialement 2 segments. la longueur des segments est $d=5$. Le procédé se répète jusqu'à ce que le test GLRT échoue}{figure.5.7}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Isoline avec 2 segments $s_1$ et $s_2$ d\IeC {\'e}j\IeC {\`a} valid\IeC {\'e}s.}}}{78}{figure.5.7}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {La direction de $s_3$ est l'\IeC {\'e}l\IeC {\'e}ment $(i_2,j_2)$ de $I_{\Theta }$.}}}{78}{figure.5.7}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Le motif de $s_3$ est lu dans $p_5$ et appliqu\IeC {\'e} en $(i_2,j_2)$. $C_x$ et $C_{x^2}$ sont donn\IeC {\'e}es par $I_{\Sigma }(i_2,j_2)$ et le test GLRT est effectu\IeC {\'e}.}}}{78}{figure.5.7}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {Si l'allongement est valid\IeC {\'e}, $s_3$ est d\IeC {\'e}finitivement int\IeC {\'e}gr\IeC {\'e}.}}}{78}{figure.5.7}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.6}{\ignorespaces Histogramme des \IeC {\'e}carts angulaires entre la direction primaire de l'\textit {isoline} optimale et celle de l'\textit {isoline} s\IeC {\'e}lectionn\IeC {\'e}e, pour l'image du singe (Mandrill). Pour la tr\IeC {\`e}s grande majorit\IeC {\'e} des pixels, le mode de s\IeC {\'e}lection de l'\textit {isoline} ne g\IeC {\'e}n\IeC {\'e}re pas d'erreur sur la direction du premier segment.}}{78}{figure.5.6}} +\newlabel{fig-lniv-histo-singe}{{5.6}{78}{Histogramme des écarts angulaires entre la direction primaire de l'\textit {isoline} optimale et celle de l'\textit {isoline} sélectionnée, pour l'image du singe (Mandrill). Pour la très grande majorité des pixels, le mode de sélection de l'\textit {isoline} ne génére pas d'erreur sur la direction du premier segment}{figure.5.6}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.7}{\ignorespaces Histogrammes des \IeC {\'e}carts angulaires entre la direction primaire de l'\textit {isoline} optimale et celle de l'\textit {isoline} s\IeC {\'e}lectionn\IeC {\'e}e, pour les images de l'ensemble de test de S. Lansel. La r\IeC {\'e}partition des erreurs est semblable dans toutes ces images naturelles.}}{78}{figure.5.7}} +\newlabel{fig-lniv-histo-autres}{{5.7}{78}{Histogrammes des écarts angulaires entre la direction primaire de l'\textit {isoline} optimale et celle de l'\textit {isoline} sélectionnée, pour les images de l'ensemble de test de S. Lansel. La répartition des erreurs est semblable dans toutes ces images naturelles}{figure.5.7}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Airplane}}}{78}{figure.5.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Barbara}}}{78}{figure.5.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Boat}}}{78}{figure.5.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {Couple}}}{78}{figure.5.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {Elaine}}}{78}{figure.5.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {Finger}}}{78}{figure.5.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(g)}{\ignorespaces {Goldhill}}}{78}{figure.5.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(h)}{\ignorespaces {Lena}}}{78}{figure.5.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(i)}{\ignorespaces {Man}}}{78}{figure.5.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(j)}{\ignorespaces {Peppers}}}{78}{figure.5.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(k)}{\ignorespaces {Stream}}}{78}{figure.5.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(l)}{\ignorespaces {Zelda}}}{78}{figure.5.7}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.8}{\ignorespaces Exemple d'application du proc\IeC {\'e}d\IeC {\'e} d'allongement \IeC {\`a} une \textit {isoline} comprenant initialement 2 segments. la longueur des segments est $d=5$. Le proc\IeC {\'e}d\IeC {\'e} se r\IeC {\'e}p\IeC {\`e}te jusqu'\IeC {\`a} ce que le test GLRT \IeC {\'e}choue.}}{79}{figure.5.8}} +\newlabel{fig-lniv-pipd}{{5.8}{79}{Exemple d'application du procédé d'allongement à une \textit {isoline} comprenant initialement 2 segments. la longueur des segments est $d=5$. Le procédé se répète jusqu'à ce que le test GLRT échoue}{figure.5.8}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Isoline avec 2 segments $s_1$ et $s_2$ d\IeC {\'e}j\IeC {\`a} valid\IeC {\'e}s.}}}{79}{figure.5.8}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {La direction de $s_3$ est l'\IeC {\'e}l\IeC {\'e}ment $(i_2,j_2)$ de $I_{\Theta }$.}}}{79}{figure.5.8}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Le motif de $s_3$ est lu dans $p_5$ et appliqu\IeC {\'e} en $(i_2,j_2)$. $C_x$ et $C_{x^2}$ sont donn\IeC {\'e}es par $I_{\Sigma }(i_2,j_2)$ et le test GLRT est effectu\IeC {\'e}.}}}{79}{figure.5.8}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {Si l'allongement est valid\IeC {\'e}, $s_3$ est d\IeC {\'e}finitivement int\IeC {\'e}gr\IeC {\'e}.}}}{79}{figure.5.8}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.3}Mod\IeC {\`e}le PI-PD hybride}{79}{subsection.5.2.3}} \@writefile{loa}{\contentsline {algocf}{\numberline {4}{\ignorespaces Initialisations du mod\IeC {\`e}le PI-PD, en m\IeC {\'e}moire du GPU.}}{79}{algocfline.4}} \newlabel{algo-lniv-init}{{4}{79}{Isolines à segments pre-évalués - modèle PI-PD\relax }{algocfline.4}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.3}Mod\IeC {\`e}le PI-PD hybride}{79}{subsection.5.2.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {5.8}{\ignorespaces Situation de la r\IeC {\'e}gion servant \IeC {\`a} illustrer le comportant du mod\IeC {\`e}le PI-PD dans les zones \IeC {\`a} faible pente (LSR).}}{79}{figure.5.8}} -\newlabel{fig-lniv-lsr1}{{5.8}{79}{Situation de la région servant à illustrer le comportant du modèle PI-PD dans les zones à faible pente (LSR)}{figure.5.8}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image de r\IeC {\'e}f\IeC {\'e}rence non bruit\IeC {\'e}e.}}}{79}{figure.5.8}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {La r\IeC {\'e}gion de 11$\times $11 pixels \IeC {\'e}tudi\IeC {\'e}e.}}}{79}{figure.5.8}} \@writefile{loa}{\contentsline {algocf}{\numberline {5}{\ignorespaces \texttt {kernel\_precomp()} : g\IeC {\'e}n\IeC {\'e}ration des matrices $I_{\Theta }$ et $I_{\Sigma }$.}}{80}{algocfline.5}} \newlabel{algo-lniv-precomp}{{5}{80}{Isolines à segments pre-évalués - modèle PI-PD\relax }{algocfline.5}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.3.1}Le d\IeC {\'e}tecteur de zone \IeC {\`a} faible pente}{80}{subsubsection.5.2.3.1}} \@writefile{loa}{\contentsline {algocf}{\numberline {6}{\ignorespaces \texttt {kernel\_PIPD()} : gestion du processus d'allongement.}}{81}{algocfline.6}} \newlabel{algo-lniv-pipd}{{6}{81}{Isolines à segments pre-évalués - modèle PI-PD\relax }{algocfline.6}{}} -\newlabel{GLRT2}{{5.11}{81}{Le détecteur de zone à faible pente\relax }{equation.5.2.11}{}} -\newlabel{fig-lniv-lsr-tirages-a}{{5.9(a)}{82}{Subfigure 5 5.9(a)\relax }{subfigure.5.9.1}{}} -\newlabel{sub@fig-lniv-lsr-tirages-a}{{(a)}{82}{Subfigure 5 5.9(a)\relax }{subfigure.5.9.1}{}} -\newlabel{fig-lniv-lsr-tirages-b}{{5.9(b)}{82}{Subfigure 5 5.9(b)\relax }{subfigure.5.9.2}{}} -\newlabel{sub@fig-lniv-lsr-tirages-b}{{(b)}{82}{Subfigure 5 5.9(b)\relax }{subfigure.5.9.2}{}} -\newlabel{fig-lniv-lsr-tirages-c}{{5.9(c)}{82}{Subfigure 5 5.9(c)\relax }{subfigure.5.9.3}{}} -\newlabel{sub@fig-lniv-lsr-tirages-c}{{(c)}{82}{Subfigure 5 5.9(c)\relax }{subfigure.5.9.3}{}} -\newlabel{fig-lniv-lsr-tirages-d}{{5.9(d)}{82}{Subfigure 5 5.9(d)\relax }{subfigure.5.9.4}{}} -\newlabel{sub@fig-lniv-lsr-tirages-d}{{(d)}{82}{Subfigure 5 5.9(d)\relax }{subfigure.5.9.4}{}} -\newlabel{fig-lniv-lsr-tirages-e}{{5.9(e)}{82}{Subfigure 5 5.9(e)\relax }{subfigure.5.9.5}{}} -\newlabel{sub@fig-lniv-lsr-tirages-e}{{(e)}{82}{Subfigure 5 5.9(e)\relax }{subfigure.5.9.5}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {5.9}{\ignorespaces Comportement du mod\IeC {\`e}le PI-PD dans les zones de faible et \IeC {\`a} forte pente. On constate un manque de robustesse dans les zones \IeC {\`a} faible pente : les directions ne sont pas reproduites d'un tirage \IeC {\`a} l'autre, contrairement \IeC {\`a} celles de la zone de transition.}}{82}{figure.5.9}} -\newlabel{fig-lniv-lsr-tirages}{{5.9}{82}{Comportement du modèle PI-PD dans les zones de faible et à forte pente. On constate un manque de robustesse dans les zones à faible pente : les directions ne sont pas reproduites d'un tirage à l'autre, contrairement à celles de la zone de transition}{figure.5.9}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image de r\IeC {\'e}f\IeC {\'e}rence.}}}{82}{figure.5.9}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Image corrompue par le tirage de bruit $n^{\circ }1$}}}{82}{figure.5.9}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Image corrompue par le tirage de bruit $n^{\circ }2$}}}{82}{figure.5.9}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {Directions d\IeC {\'e}termin\IeC {\'e}es par le PI-PD pour le tirage $n^{\circ }1$}}}{82}{figure.5.9}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {Directions d\IeC {\'e}termin\IeC {\'e}e par le PI-PD pour le tirage $n^{\circ }2$}}}{82}{figure.5.9}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.3.1}Le d\IeC {\'e}tecteur de zone \IeC {\`a} faible pente}{81}{subsubsection.5.2.3.1}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.9}{\ignorespaces Situation de la r\IeC {\'e}gion servant \IeC {\`a} illustrer le comportant du mod\IeC {\`e}le PI-PD dans les zones \IeC {\`a} faible pente (LSR).}}{82}{figure.5.9}} +\newlabel{fig-lniv-lsr1}{{5.9}{82}{Situation de la région servant à illustrer le comportant du modèle PI-PD dans les zones à faible pente (LSR)}{figure.5.9}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image de r\IeC {\'e}f\IeC {\'e}rence non bruit\IeC {\'e}e.}}}{82}{figure.5.9}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {La r\IeC {\'e}gion de 11$\times $11 pixels \IeC {\'e}tudi\IeC {\'e}e.}}}{82}{figure.5.9}} +\newlabel{GLRT2}{{5.11}{82}{Le détecteur de zone à faible pente\relax }{equation.5.2.11}{}} \citation{BuadesCM06} -\@writefile{lof}{\contentsline {figure}{\numberline {5.10}{\ignorespaces Classification des pixels d'une image bruit\IeC {\'e}e, pour une valeur de seuil $T2=2$ du d\IeC {\'e}tecteur. b) Les pixels en noir sont ceux \IeC {\`a} qui le PI-PD sera appliqu\IeC {\'e}. Les pixels en blancs se verront appliquer une moyenne sur tout ou partie du voisinage.}}{83}{figure.5.10}} -\newlabel{fig-lniv-classification}{{5.10}{83}{Classification des pixels d'une image bruitée, pour une valeur de seuil $T2=2$ du détecteur. b) Les pixels en noir sont ceux à qui le PI-PD sera appliqué. Les pixels en blancs se verront appliquer une moyenne sur tout ou partie du voisinage}{figure.5.10}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image bruit\IeC {\'e}e}}}{83}{figure.5.10}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Classification des pixels. }}}{83}{figure.5.10}} +\newlabel{fig-lniv-lsr-tirages-a}{{5.10(a)}{83}{Subfigure 5 5.10(a)\relax }{subfigure.5.10.1}{}} +\newlabel{sub@fig-lniv-lsr-tirages-a}{{(a)}{83}{Subfigure 5 5.10(a)\relax }{subfigure.5.10.1}{}} +\newlabel{fig-lniv-lsr-tirages-b}{{5.10(b)}{83}{Subfigure 5 5.10(b)\relax }{subfigure.5.10.2}{}} +\newlabel{sub@fig-lniv-lsr-tirages-b}{{(b)}{83}{Subfigure 5 5.10(b)\relax }{subfigure.5.10.2}{}} +\newlabel{fig-lniv-lsr-tirages-c}{{5.10(c)}{83}{Subfigure 5 5.10(c)\relax }{subfigure.5.10.3}{}} +\newlabel{sub@fig-lniv-lsr-tirages-c}{{(c)}{83}{Subfigure 5 5.10(c)\relax }{subfigure.5.10.3}{}} +\newlabel{fig-lniv-lsr-tirages-d}{{5.10(d)}{83}{Subfigure 5 5.10(d)\relax }{subfigure.5.10.4}{}} +\newlabel{sub@fig-lniv-lsr-tirages-d}{{(d)}{83}{Subfigure 5 5.10(d)\relax }{subfigure.5.10.4}{}} +\newlabel{fig-lniv-lsr-tirages-e}{{5.10(e)}{83}{Subfigure 5 5.10(e)\relax }{subfigure.5.10.5}{}} +\newlabel{sub@fig-lniv-lsr-tirages-e}{{(e)}{83}{Subfigure 5 5.10(e)\relax }{subfigure.5.10.5}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.10}{\ignorespaces Comportement du mod\IeC {\`e}le PI-PD dans les zones de faible et \IeC {\`a} forte pente. On constate un manque de robustesse dans les zones \IeC {\`a} faible pente : les directions ne sont pas reproduites d'un tirage \IeC {\`a} l'autre, contrairement \IeC {\`a} celles de la zone de transition.}}{83}{figure.5.10}} +\newlabel{fig-lniv-lsr-tirages}{{5.10}{83}{Comportement du modèle PI-PD dans les zones de faible et à forte pente. On constate un manque de robustesse dans les zones à faible pente : les directions ne sont pas reproduites d'un tirage à l'autre, contrairement à celles de la zone de transition}{figure.5.10}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image de r\IeC {\'e}f\IeC {\'e}rence.}}}{83}{figure.5.10}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Image corrompue par le tirage de bruit $n^{\circ }1$}}}{83}{figure.5.10}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Image corrompue par le tirage de bruit $n^{\circ }2$}}}{83}{figure.5.10}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {Directions d\IeC {\'e}termin\IeC {\'e}es par le PI-PD pour le tirage $n^{\circ }1$}}}{83}{figure.5.10}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {Directions d\IeC {\'e}termin\IeC {\'e}e par le PI-PD pour le tirage $n^{\circ }2$}}}{83}{figure.5.10}} \@writefile{toc}{\contentsline {section}{\numberline {5.3}R\IeC {\'e}sultats}{83}{section.5.3}} -\@writefile{toc}{\contentsline {section}{\numberline {5.4}Conclusion}{84}{section.5.4}} -\@writefile{loa}{\contentsline {algocf}{\numberline {7}{\ignorespaces D\IeC {\'e}tecteur de zones \IeC {\`a} faible pente (LSR) \texttt {kernel\_LSR\_detector()}}}{85}{algocfline.7}} -\newlabel{algo-lniv-detecteur}{{7}{85}{Le détecteur de zone à faible pente\relax }{algocfline.7}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5.1}{\ignorespaces Temps de calcul et de transfert des impl\IeC {\'e}mentations compar\IeC {\'e}es. }}{86}{table.5.1}} -\newlabel{tab-lniv-chronos}{{5.1}{86}{Temps de calcul et de transfert des implémentations comparées. \relax }{table.5.1}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5.2}{\ignorespaces Comparaison image par image de la qualit\IeC {\'e} de d\IeC {\'e}bruitage du filtre PI-PD hybride propos\IeC {\'e} par rapport \IeC {\`a} BM3D pris comme r\IeC {\'e}f\IeC {\'e}rence de qualit\IeC {\'e} et \IeC {\`a} un moyenneur GPU 5$\times $5 pris comme r\IeC {\'e}f\IeC {\'e}rence de rapidit\IeC {\'e}. Les param\IeC {\`e}tres du PI-PD sont $l=5$, $n=25$, $T_{max}=1$ et $T2_{max}=2$. La colonne 'noisy' donne les mesures relatives \IeC {\`a} l'image d'entr\IeC {\'e}e corrompue par un bruit gaussien de moyenne nulle et d'\IeC {\'e}cart type $\sigma =25$.}}{87}{table.5.2}} -\newlabel{tab-lniv-results}{{5.2}{87}{Comparaison image par image de la qualité de débruitage du filtre PI-PD hybride proposé par rapport à BM3D pris comme référence de qualité et à un moyenneur GPU 5$\times $5 pris comme référence de rapidité. Les paramètres du PI-PD sont $l=5$, $n=25$, $T_{max}=1$ et $T2_{max}=2$. La colonne 'noisy' donne les mesures relatives à l'image d'entrée corrompue par un bruit gaussien de moyenne nulle et d'écart type $\sigma =25$}{table.5.2}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {6}Le filtre m\IeC {\'e}dian sur GPU}{89}{chapter.6}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.11}{\ignorespaces Motif de d\IeC {\'e}tection des zones \IeC {\`a} faible pente, pour le cas $\Theta =\Theta _4=45^{\circ }$. L'\IeC {\'e}l\IeC {\'e}vation des pixels permet juste de les distinguer selon 3 classes : l'\IeC {\'e}l\IeC {\'e}vation 1 est associ\IeC {\'e}e aux pixels de la r\IeC {\'e}gion $H$, l'\IeC {\'e}l\IeC {\'e}vation 0.5 est associ\IeC {\'e}e \IeC {\`a} ceux de la r\IeC {\'e}gion $L$ et l'\IeC {\'e}l\IeC {\'e}vation 0 d\IeC {\'e}signe les pixels n\IeC {\'\i }ntervnant pas dans la d\IeC {\'e}tection.}}{84}{figure.5.11}} +\newlabel{fig-lniv-detecteur}{{5.11}{84}{Motif de détection des zones à faible pente, pour le cas $\Theta =\Theta _4=45^{\circ }$. L'élévation des pixels permet juste de les distinguer selon 3 classes : l'élévation 1 est associée aux pixels de la région $H$, l'élévation 0.5 est associée à ceux de la région $L$ et l'élévation 0 désigne les pixels níntervnant pas dans la détection}{figure.5.11}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.12}{\ignorespaces Classification des pixels d'une image bruit\IeC {\'e}e, pour une valeur de seuil $T2=2$ du d\IeC {\'e}tecteur. b) Les pixels en noir sont ceux \IeC {\`a} qui le PI-PD sera appliqu\IeC {\'e}. Les pixels en blancs se verront appliquer une moyenne sur tout ou partie du voisinage.}}{84}{figure.5.12}} +\newlabel{fig-lniv-classification}{{5.12}{84}{Classification des pixels d'une image bruitée, pour une valeur de seuil $T2=2$ du détecteur. b) Les pixels en noir sont ceux à qui le PI-PD sera appliqué. Les pixels en blancs se verront appliquer une moyenne sur tout ou partie du voisinage}{figure.5.12}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image bruit\IeC {\'e}e}}}{84}{figure.5.12}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Classification des pixels. }}}{84}{figure.5.12}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.13}{\ignorespaces Comparaison des rendus des traitements compar\IeC {\'e}s. Rang\IeC {\'e}e du haut : les images compl\IeC {\`e}tes. Rang\IeC {\'e}e du bas : Zooms sur une zone de l'\IeC {\'\i }mage au dessus.}}{85}{figure.5.13}} +\newlabel{fig-lniv-exempleresultat}{{5.13}{85}{Comparaison des rendus des traitements comparés. Rangée du haut : les images complètes. Rangée du bas : Zooms sur une zone de l'ímage au dessus}{figure.5.13}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image \textit {airplane} bruit\IeC {\'e}e.}}}{85}{figure.5.13}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Image \textit {airplane} filtr\IeC {\'e}e par moyenneur 5$\times $5.}}}{85}{figure.5.13}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Image \textit {airplane} filtr\IeC {\'e}e par PI-PD hybride avec $l=5$, $n=25$, $T_{max}=2$ et $T2_{max}=2$.}}}{85}{figure.5.13}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {Image \textit {airplane} filtr\IeC {\'e}e par PI-PD hybride.}}}{85}{figure.5.13}} +\@writefile{toc}{\contentsline {section}{\numberline {5.4}Extension aux images couleurs}{85}{section.5.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.1}Expression du crit\IeC {\`e}re}{85}{subsection.5.4.1}} +\newlabel{eqlv0rgb}{{5.12}{85}{Expression du critère\relax }{equation.5.4.12}{}} +\citation{tid2008a} +\citation{psnrhvsm} +\citation{tid2008a} +\newlabel{eqlv1rgb}{{5.16}{86}{Expression du critère\relax }{equation.5.4.16}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.2}R\IeC {\'e}sultats}{86}{subsection.5.4.2}} +\newlabel{fig-lniv-tid2008ref}{{5.4.2}{87}{Résultats\relax }{subfigure.5.14.25}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.14}{\ignorespaces Images non bruit\IeC {\'e}es de la base tid2008.}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {I01}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {I02}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {I03}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {I04}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {I05}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {I06}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(g)}{\ignorespaces {I07}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(h)}{\ignorespaces {I08}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(i)}{\ignorespaces {I09}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(j)}{\ignorespaces {I10}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(k)}{\ignorespaces {I11}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(l)}{\ignorespaces {I12}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(m)}{\ignorespaces {I13}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(n)}{\ignorespaces {I14}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(o)}{\ignorespaces {I15}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(p)}{\ignorespaces {I16}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(q)}{\ignorespaces {I17}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(r)}{\ignorespaces {I18}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(s)}{\ignorespaces {I19}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(t)}{\ignorespaces {I20}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(u)}{\ignorespaces {I21}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(v)}{\ignorespaces {I22}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(w)}{\ignorespaces {I23}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(x)}{\ignorespaces {I24}}}{87}{figure.5.14}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(y)}{\ignorespaces {I25}}}{87}{figure.5.14}} +\newlabel{fig-lnivrgb-ex}{{5.4.2}{88}{Résultats\relax }{figure.5.14}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.15}{\ignorespaces Exemples de r\IeC {\'e}sultat de traitement par PI-PD RVB et par CBM3D pour deux images de la base tid2008 (une image naturelle et l'image de synth\IeC {\`e}se). Il peut \IeC {\^e}tre n\IeC {\'e}cessaire de zoomer sur le document num\IeC {\'e}rique pour visualiser les d\IeC {\'e}tails.}}{88}{figure.5.15}} +\newlabel{fig-lnivgrb-ex}{{5.15}{88}{Exemples de résultat de traitement par PI-PD RVB et par CBM3D pour deux images de la base tid2008 (une image naturelle et l'image de synthèse). Il peut être nécessaire de zoomer sur le document numérique pour visualiser les détails}{figure.5.15}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image I09 bruit\IeC {\'e}e, PSNR-HVS-M=23,70~dB.}}}{88}{figure.5.15}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Image I09 filtr\IeC {\'e}e par PI-PD, PSNR-HVS-M=27,62~dB.}}}{88}{figure.5.15}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Image I09 filtr\IeC {\'e}e par CBM3D, PSNR-HVS-M=33,26~dB.}}}{88}{figure.5.15}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {Image I25 bruit\IeC {\'e}e, PSNR-HVS-M=24,46~dB.}}}{88}{figure.5.15}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {Image I25 filtr\IeC {\'e}e par PI-PD, PSNR-HVS-M=24,62~dB.}}}{88}{figure.5.15}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {Image I25 filtr\IeC {\'e}e par CBM3D, PSNR-HVS-M=31,09~dB.}}}{88}{figure.5.15}} +\@writefile{toc}{\contentsline {section}{\numberline {5.5}Conclusion}{88}{section.5.5}} +\@writefile{loa}{\contentsline {algocf}{\numberline {7}{\ignorespaces D\IeC {\'e}tecteur de zones \IeC {\`a} faible pente (LSR) \texttt {kernel\_LSR\_detector()}}}{90}{algocfline.7}} +\newlabel{algo-lniv-detecteur}{{7}{90}{Le détecteur de zone à faible pente\relax }{algocfline.7}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5.1}{\ignorespaces Temps de calcul et de transfert des impl\IeC {\'e}mentations compar\IeC {\'e}es. }}{91}{table.5.1}} +\newlabel{tab-lniv-chronos}{{5.1}{91}{Temps de calcul et de transfert des implémentations comparées. \relax }{table.5.1}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5.2}{\ignorespaces Comparaison image par image de la qualit\IeC {\'e} de d\IeC {\'e}bruitage du filtre PI-PD hybride propos\IeC {\'e} par rapport \IeC {\`a} BM3D pris comme r\IeC {\'e}f\IeC {\'e}rence de qualit\IeC {\'e} et \IeC {\`a} un moyenneur GPU 5$\times $5 pris comme r\IeC {\'e}f\IeC {\'e}rence de rapidit\IeC {\'e}. Les param\IeC {\`e}tres du PI-PD sont $l=5$, $n=25$, $T_{max}=1$ et $T2_{max}=2$. La colonne 'noisy' donne les mesures relatives \IeC {\`a} l'image d'entr\IeC {\'e}e corrompue par un bruit gaussien de moyenne nulle et d'\IeC {\'e}cart type $\sigma =25$.}}{91}{table.5.2}} +\newlabel{tab-lniv-results}{{5.2}{91}{Comparaison image par image de la qualité de débruitage du filtre PI-PD hybride proposé par rapport à BM3D pris comme référence de qualité et à un moyenneur GPU 5$\times $5 pris comme référence de rapidité. Les paramètres du PI-PD sont $l=5$, $n=25$, $T_{max}=1$ et $T2_{max}=2$. La colonne 'noisy' donne les mesures relatives à l'image d'entrée corrompue par un bruit gaussien de moyenne nulle et d'écart type $\sigma =25$}{table.5.2}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5.3}{\ignorespaces Comparaison image par image de la qualit\IeC {\'e} de d\IeC {\'e}bruitage du filtre PI-PD RVB propos\IeC {\'e} par rapport \IeC {\`a} BM3D pris comme r\IeC {\'e}f\IeC {\'e}rence de qualit\IeC {\'e}. Les param\IeC {\`e}tres du PI-PD sont $l=4$, $n=50$, $T_{rvb-max}=5$. La colonne 'noisy' donne les mesures relatives \IeC {\`a} l'image d'entr\IeC {\'e}e corrompue par tirage de bruit gaussien sur chaque canal ( moyenne nulle, \IeC {\'e}cart type $\sigma =25$).}}{92}{table.5.3}} +\newlabel{tab-lniv-rvb}{{5.3}{92}{Comparaison image par image de la qualité de débruitage du filtre PI-PD RVB proposé par rapport à BM3D pris comme référence de qualité. Les paramètres du PI-PD sont $l=4$, $n=50$, $T_{rvb-max}=5$. La colonne 'noisy' donne les mesures relatives à l'image d'entrée corrompue par tirage de bruit gaussien sur chaque canal ( moyenne nulle, écart type $\sigma =25$)}{table.5.3}{}} +\@writefile{toc}{\contentsline {chapter}{\numberline {6}Le filtre m\IeC {\'e}dian sur GPU}{93}{chapter.6}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {6.1}Introduction}{89}{section.6.1}} -\@writefile{toc}{\contentsline {section}{\numberline {6.2}Les transferts de donn\IeC {\'e}es}{89}{section.6.2}} -\@writefile{loa}{\contentsline {algocf}{\numberline {8}{\ignorespaces Gestion des transferts m\IeC {\'e}moire vers et depuis le GPU.}}{90}{algocfline.8}} -\newlabel{algo-median-memcpy}{{8}{90}{Les transferts de données\relax }{algocfline.8}{}} -\@writefile{lot}{\contentsline {table}{\numberline {6.1}{\ignorespaces Temps de transfert vers et depuis le GPU, en fonction de la dimension de l'image et de la profondeur de niveaux de gris. La colonne ``M\IeC {\'e}moire globale'' donne les temps mesur\IeC {\'e}s lorsque cette seule m\IeC {\'e}moire est employ\IeC {\'e}e.}}{90}{table.6.1}} -\newlabel{tab-median-memcpy}{{6.1}{90}{Temps de transfert vers et depuis le GPU, en fonction de la dimension de l'image et de la profondeur de niveaux de gris. La colonne ``Mémoire globale'' donne les temps mesurés lorsque cette seule mémoire est employée}{table.6.1}{}} -\@writefile{toc}{\contentsline {section}{\numberline {6.3}Utilisation des registres}{90}{section.6.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.1}La s\IeC {\'e}lection de la valeur m\IeC {\'e}diane}{91}{subsection.6.3.1}} -\newlabel{fig-median-ffs3-a}{{6.1(a)}{92}{Subfigure 6 6.1(a)\relax }{subfigure.6.1.1}{}} -\newlabel{sub@fig-median-ffs3-a}{{(a)}{92}{Subfigure 6 6.1(a)\relax }{subfigure.6.1.1}{}} -\newlabel{fig-median-ffs3-b}{{6.1(b)}{92}{Subfigure 6 6.1(b)\relax }{subfigure.6.1.2}{}} -\newlabel{sub@fig-median-ffs3-b}{{(b)}{92}{Subfigure 6 6.1(b)\relax }{subfigure.6.1.2}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.1}{\ignorespaces Application de la s\IeC {\'e}lection de m\IeC {\'e}diane par oubli. a) \IeC {\`a} une fen\IeC {\^e}tre de $3\times 3$ pixels. b) Maximisation de l'ILP pour l'identification des extrema. }}{92}{figure.6.1}} -\newlabel{fig-median-ffs3}{{6.1}{92}{Application de la sélection de médiane par oubli. a) à une fenêtre de $3\times 3$ pixels. b) Maximisation de l'ILP pour l'identification des extrema. \relax }{figure.6.1}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {\IeC {\'E}tapes de la s\IeC {\'e}lection par oubli pour un filtre 3$\times $3.}}}{92}{figure.6.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Premi\IeC {\`e}re \IeC {\'e}tape d'identification des extrema pour un filtre 5$\times $5.}}}{92}{figure.6.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.2}Masquage des latences}{92}{subsection.6.3.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.2}{\ignorespaces Gestion des \IeC {\'e}l\IeC {\'e}ments communs aux fen\IeC {\^e}tres de deux pixels centraux voisins dans un filtre m\IeC {\'e}dian 5$\times $5. La liste initiale comprend les 14 premiers \IeC {\'e}l\IeC {\'e}ments communs, puis les 7 premi\IeC {\`e}res \IeC {\'e}tapes de s\IeC {\'e}lection sont conduites en commun avant que les 5 derni\IeC {\`e}res le soient en parall\IeC {\`e}le, mais de mani\IeC {\`e}re disjointe.}}{94}{figure.6.2}} -\newlabel{fig-median-overlap}{{6.2}{94}{Gestion des éléments communs aux fenêtres de deux pixels centraux voisins dans un filtre médian 5$\times $5. La liste initiale comprend les 14 premiers éléments communs, puis les 7 premières étapes de sélection sont conduites en commun avant que les 5 dernières le soient en parallèle, mais de manière disjointe}{figure.6.2}{}} -\newlabel{lst-median3}{{6.1}{94}{Kernel réalisant un filtre médian 3$\times $3 en registres}{lstlisting.6.1}{}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {6.1}Kernel r\IeC {\'e}alisant un filtre m\IeC {\'e}dian 3$\times $3 en registres.}{94}{lstlisting.6.1}} -\@writefile{toc}{\contentsline {section}{\numberline {6.4}R\IeC {\'e}sultats}{95}{section.6.4}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.3}{\ignorespaces Comparaison des d\IeC {\'e}bits (MP/s) atteints par notre impl\IeC {\'e}mentation not\IeC {\'e}e PRMF, avec les principales solutions de r\IeC {\'e}f\IeC {\'e}rence. De gauche \IeC {\`a} droite : PCMF, BVM, PRMF, ArrayFire (impossible en 4096$\times $4096)}}{95}{figure.6.3}} -\newlabel{fig-median-comp}{{6.3}{95}{Comparaison des débits (MP/s) atteints par notre implémentation notée PRMF, avec les principales solutions de référence. De gauche à droite : PCMF, BVM, PRMF, ArrayFire (impossible en 4096$\times $4096)\relax }{figure.6.3}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {image 512$\times $512 pixels.}}}{95}{figure.6.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {image 4096$\times $4096 pixels.}}}{95}{figure.6.3}} -\@writefile{lot}{\contentsline {table}{\numberline {6.2}{\ignorespaces Pourcentage du temps d'ex\IeC {\'e}cution pris par les transferts de donn\IeC {\'e}es en fonction de la taille de fen\IeC {\^e}tre du filtre, pour les profondeurs 8 and 16 bit sur GPU C2070.}}{96}{table.6.2}} -\newlabel{tab-median-coutcpy}{{6.2}{96}{Pourcentage du temps d'exécution pris par les transferts de données en fonction de la taille de fenêtre du filtre, pour les profondeurs 8 and 16 bit sur GPU C2070}{table.6.2}{}} -\@writefile{lot}{\contentsline {table}{\numberline {6.3}{\ignorespaces D\IeC {\'e}bits maximum effectifs $T_8$ and $T_{16}$ (en MP/s), respectivement pour les variantes 8 et 16 bits sur C2070.}}{96}{table.6.3}} -\newlabel{tab-median-debitmax}{{6.3}{96}{Débits maximum effectifs $T_8$ and $T_{16}$ (en MP/s), respectivement pour les variantes 8 et 16 bits sur C2070}{table.6.3}{}} +\newlabel{ch-median}{{6}{93}{Le filtre médian sur GPU\relax }{chapter.6}{}} +\@writefile{toc}{\contentsline {section}{\numberline {6.1}Introduction}{93}{section.6.1}} +\@writefile{toc}{\contentsline {section}{\numberline {6.2}Les transferts de donn\IeC {\'e}es}{93}{section.6.2}} +\@writefile{loa}{\contentsline {algocf}{\numberline {8}{\ignorespaces Gestion des transferts m\IeC {\'e}moire vers et depuis le GPU.}}{94}{algocfline.8}} +\newlabel{algo-median-memcpy}{{8}{94}{Les transferts de données\relax }{algocfline.8}{}} +\@writefile{lot}{\contentsline {table}{\numberline {6.1}{\ignorespaces Temps de transfert vers et depuis le GPU, en fonction de la dimension de l'image et de la profondeur de niveaux de gris. La colonne ``M\IeC {\'e}moire globale'' donne les temps mesur\IeC {\'e}s lorsque cette seule m\IeC {\'e}moire est employ\IeC {\'e}e.}}{94}{table.6.1}} +\newlabel{tab-median-memcpy}{{6.1}{94}{Temps de transfert vers et depuis le GPU, en fonction de la dimension de l'image et de la profondeur de niveaux de gris. La colonne ``Mémoire globale'' donne les temps mesurés lorsque cette seule mémoire est employée}{table.6.1}{}} +\@writefile{toc}{\contentsline {section}{\numberline {6.3}Utilisation des registres}{94}{section.6.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.1}La s\IeC {\'e}lection de la valeur m\IeC {\'e}diane}{95}{subsection.6.3.1}} +\newlabel{fig-median-ffs3-a}{{6.1(a)}{96}{Subfigure 6 6.1(a)\relax }{subfigure.6.1.1}{}} +\newlabel{sub@fig-median-ffs3-a}{{(a)}{96}{Subfigure 6 6.1(a)\relax }{subfigure.6.1.1}{}} +\newlabel{fig-median-ffs3-b}{{6.1(b)}{96}{Subfigure 6 6.1(b)\relax }{subfigure.6.1.2}{}} +\newlabel{sub@fig-median-ffs3-b}{{(b)}{96}{Subfigure 6 6.1(b)\relax }{subfigure.6.1.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.1}{\ignorespaces Application de la s\IeC {\'e}lection de m\IeC {\'e}diane par oubli. a) \IeC {\`a} une fen\IeC {\^e}tre de $3\times 3$ pixels. b) Maximisation de l'ILP pour l'identification des extrema. }}{96}{figure.6.1}} +\newlabel{fig-median-ffs3}{{6.1}{96}{Application de la sélection de médiane par oubli. a) à une fenêtre de $3\times 3$ pixels. b) Maximisation de l'ILP pour l'identification des extrema. \relax }{figure.6.1}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {\IeC {\'E}tapes de la s\IeC {\'e}lection par oubli pour un filtre 3$\times $3.}}}{96}{figure.6.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Premi\IeC {\`e}re \IeC {\'e}tape d'identification des extrema pour un filtre 5$\times $5.}}}{96}{figure.6.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.2}Masquage des latences}{96}{subsection.6.3.2}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.2}{\ignorespaces Gestion des \IeC {\'e}l\IeC {\'e}ments communs aux fen\IeC {\^e}tres de deux pixels centraux voisins dans un filtre m\IeC {\'e}dian 5$\times $5. La liste initiale comprend les 14 premiers \IeC {\'e}l\IeC {\'e}ments communs, puis les 7 premi\IeC {\`e}res \IeC {\'e}tapes de s\IeC {\'e}lection sont conduites en commun avant que les 5 derni\IeC {\`e}res le soient en parall\IeC {\`e}le, mais de mani\IeC {\`e}re disjointe.}}{98}{figure.6.2}} +\newlabel{fig-median-overlap}{{6.2}{98}{Gestion des éléments communs aux fenêtres de deux pixels centraux voisins dans un filtre médian 5$\times $5. La liste initiale comprend les 14 premiers éléments communs, puis les 7 premières étapes de sélection sont conduites en commun avant que les 5 dernières le soient en parallèle, mais de manière disjointe}{figure.6.2}{}} +\newlabel{lst-median3}{{6.1}{98}{Kernel réalisant un filtre médian 3$\times $3 en registres}{lstlisting.6.1}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {6.1}Kernel r\IeC {\'e}alisant un filtre m\IeC {\'e}dian 3$\times $3 en registres.}{98}{lstlisting.6.1}} +\@writefile{toc}{\contentsline {section}{\numberline {6.4}R\IeC {\'e}sultats}{99}{section.6.4}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.3}{\ignorespaces Comparaison des d\IeC {\'e}bits (MP/s) atteints par notre impl\IeC {\'e}mentation not\IeC {\'e}e PRMF, avec les principales solutions de r\IeC {\'e}f\IeC {\'e}rence. De gauche \IeC {\`a} droite : PCMF, BVM, PRMF, ArrayFire (impossible en 4096$\times $4096)}}{99}{figure.6.3}} +\newlabel{fig-median-comp}{{6.3}{99}{Comparaison des débits (MP/s) atteints par notre implémentation notée PRMF, avec les principales solutions de référence. De gauche à droite : PCMF, BVM, PRMF, ArrayFire (impossible en 4096$\times $4096)\relax }{figure.6.3}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {image 512$\times $512 pixels.}}}{99}{figure.6.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {image 4096$\times $4096 pixels.}}}{99}{figure.6.3}} +\@writefile{lot}{\contentsline {table}{\numberline {6.2}{\ignorespaces Pourcentage du temps d'ex\IeC {\'e}cution pris par les transferts de donn\IeC {\'e}es en fonction de la taille de fen\IeC {\^e}tre du filtre, pour les profondeurs 8 and 16 bit sur GPU C2070.}}{100}{table.6.2}} +\newlabel{tab-median-coutcpy}{{6.2}{100}{Pourcentage du temps d'exécution pris par les transferts de données en fonction de la taille de fenêtre du filtre, pour les profondeurs 8 and 16 bit sur GPU C2070}{table.6.2}{}} +\@writefile{lot}{\contentsline {table}{\numberline {6.3}{\ignorespaces D\IeC {\'e}bits maximum effectifs $T_8$ and $T_{16}$ (en MP/s), respectivement pour les variantes 8 et 16 bits sur C2070.}}{100}{table.6.3}} +\newlabel{tab-median-debitmax}{{6.3}{100}{Débits maximum effectifs $T_8$ and $T_{16}$ (en MP/s), respectivement pour les variantes 8 et 16 bits sur C2070}{table.6.3}{}} \citation{sanchezICASSP12} -\@writefile{lot}{\contentsline {table}{\numberline {6.4}{\ignorespaces Performances des filtres m\IeC {\'e}dians rapides en fonction des tailles d'image et de fen\IeC {\^e}tre du filtre, en variantes 8 et 16 bits de profondeursur GPU C2070.}}{97}{table.6.4}} -\newlabel{tab-median-chronos}{{6.4}{97}{Performances des filtres médians rapides en fonction des tailles d'image et de fenêtre du filtre, en variantes 8 et 16 bits de profondeursur GPU C2070}{table.6.4}{}} -\@writefile{toc}{\contentsline {section}{\numberline {6.5}Conclusion}{97}{section.6.5}} +\@writefile{lot}{\contentsline {table}{\numberline {6.4}{\ignorespaces Performances des filtres m\IeC {\'e}dians rapides en fonction des tailles d'image et de fen\IeC {\^e}tre du filtre, en variantes 8 et 16 bits de profondeursur GPU C2070.}}{101}{table.6.4}} +\newlabel{tab-median-chronos}{{6.4}{101}{Performances des filtres médians rapides en fonction des tailles d'image et de fenêtre du filtre, en variantes 8 et 16 bits de profondeursur GPU C2070}{table.6.4}{}} +\@writefile{toc}{\contentsline {section}{\numberline {6.5}Conclusion}{101}{section.6.5}} \citation{convolutionsoup} -\@writefile{toc}{\contentsline {chapter}{\numberline {7}Les filtres de convolution sur GPU}{99}{chapter.7}} +\@writefile{toc}{\contentsline {chapter}{\numberline {7}Les filtres de convolution sur GPU}{103}{chapter.7}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {7.1}Introduction}{99}{section.7.1}} -\@writefile{toc}{\contentsline {section}{\numberline {7.2}Impl\IeC {\'e}mentation g\IeC {\'e}n\IeC {\'e}rique de la convolution non s\IeC {\'e}parable}{99}{section.7.2}} -\@writefile{loa}{\contentsline {algocf}{\numberline {9}{\ignorespaces Convolution g\IeC {\'e}n\IeC {\'e}rique sur GPU}}{100}{algocfline.9}} -\newlabel{algo-convo-gene}{{9}{100}{Implémentation générique de la convolution non séparable\relax }{algocfline.9}{}} -\newlabel{lst-convo-gene3reg8}{{7.1}{100}{Kernel réalisant la convolution par un masque moyenneur 3$\times $3 dont les coefficients normalisés sont codés \textit {en dur}, dans les registres du GPU}{lstlisting.7.1}{}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {7.1}Kernel r\IeC {\'e}alisant la convolution par un masque moyenneur 3$\times $3 dont les coefficients normalis\IeC {\'e}s sont cod\IeC {\'e}s \textit {en dur}, dans les registres du GPU.}{100}{lstlisting.7.1}} -\@writefile{lot}{\contentsline {table}{\numberline {7.1}{\ignorespaces Performances des kernels effectuant la convolution non-s\IeC {\'e}parable sur le mod\IeC {\`e}le du listing \ref {lst-convo-gene3reg8}, sur GPU C2070. Le temps d'ex\IeC {\'e}cution correspond \IeC {\`a} la seule ex\IeC {\'e}cution du kernel. Le d\IeC {\'e}bit global int\IeC {\`e}gre les temps de transfert. Les valeurs en gras correspondent au traitement de r\IeC {\'e}f\IeC {\'e}rence.}}{101}{table.7.1}} -\newlabel{tab-convo-gene3reg8-2070}{{7.1}{101}{Performances des kernels effectuant la convolution non-séparable sur le modèle du listing \ref {lst-convo-gene3reg8}, sur GPU C2070. Le temps d'exécution correspond à la seule exécution du kernel. Le débit global intègre les temps de transfert. Les valeurs en gras correspondent au traitement de référence}{table.7.1}{}} -\@writefile{lot}{\contentsline {table}{\numberline {7.2}{\ignorespaces Performances des kernels effectuant la convolution non-s\IeC {\'e}parable sur le mod\IeC {\`e}le du listing \ref {lst-convo-gene3reg8}, sur GPU GTX280. Le temps d'ex\IeC {\'e}cution correspond \IeC {\`a} la seule ex\IeC {\'e}cution du kernel. Le d\IeC {\'e}bit global int\IeC {\`e}gre les temps de transfert. Les valeurs en gras correspondent au traitement de r\IeC {\'e}f\IeC {\'e}rence.}}{101}{table.7.2}} -\newlabel{tab-convo-gene3reg8-480}{{7.2}{101}{Performances des kernels effectuant la convolution non-séparable sur le modèle du listing \ref {lst-convo-gene3reg8}, sur GPU GTX280. Le temps d'exécution correspond à la seule exécution du kernel. Le débit global intègre les temps de transfert. Les valeurs en gras correspondent au traitement de référence}{table.7.2}{}} -\@writefile{toc}{\contentsline {section}{\numberline {7.3}Impl\IeC {\'e}mentation optimis\IeC {\'e}e de la convolution non s\IeC {\'e}parable}{101}{section.7.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.1}{\ignorespaces Multiplicit\IeC {\'e} des implications des pixels de la zone d'int\IeC {\'e}r\IeC {\^e}t d'un thread dans les calculs de convolution. Le nombre de calculs dans lequel est impliqu\IeC {\'e} un pixel est inscrit en son centre. Le premier pixel du paquet, ou pixel de base, est rep\IeC {\'e}r\IeC {\'e} par ses coordonn\IeC {\'e}es $(x, y)$ ; le dernier a pour coordonn\IeC {\'e}es $(x+7,y)$}}{102}{figure.7.1}} -\newlabel{fig-convo-overlap}{{7.1}{102}{Multiplicité des implications des pixels de la zone d'intérêt d'un thread dans les calculs de convolution. Le nombre de calculs dans lequel est impliqué un pixel est inscrit en son centre. Le premier pixel du paquet, ou pixel de base, est repéré par ses coordonnées $(x, y)$ ; le dernier a pour coordonnées $(x+7,y)$\relax }{figure.7.1}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Cas d'un masque de taille 3$\times $3 ($k=1$) o\IeC {\`u} l'on d\IeC {\'e}nombre 6 colonnes centrales, soit 18 pixels de multiplicit\IeC {\'e} maximale 3.}}}{102}{figure.7.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Cas d'un masque de taille 5$\times $5 ($k=2$) o\IeC {\`u} l'on d\IeC {\'e}nombre 4 colonnes centrales, soit 20 pixels de multiplicit\IeC {\'e} maximale 5.}}}{102}{figure.7.1}} -\@writefile{lot}{\contentsline {table}{\numberline {7.3}{\ignorespaces Performances des kernels effectuant la convolution non-s\IeC {\'e}parable sur le mod\IeC {\`e}le du listing \ref {lst-convo-8x8pL3}, sur GPU C2070. Le temps d'ex\IeC {\'e}cution correspond \IeC {\`a} la seule ex\IeC {\'e}cution du kernel. Le d\IeC {\'e}bit global int\IeC {\`e}gre les temps de transfert. Les valeurs en gras correspondent au traitement de r\IeC {\'e}f\IeC {\'e}rence }}{103}{table.7.3}} -\newlabel{tab-convo-8x8p}{{7.3}{103}{Performances des kernels effectuant la convolution non-séparable sur le modèle du listing \ref {lst-convo-8x8pL3}, sur GPU C2070. Le temps d'exécution correspond à la seule exécution du kernel. Le débit global intègre les temps de transfert. Les valeurs en gras correspondent au traitement de référence \relax }{table.7.3}{}} -\newlabel{lst-convo-8x8pL3}{{7.2}{103}{Kernel réalisant la convolution par un masque 3$\times $3 dont les coefficients normalisés sont en mémoire constante}{lstlisting.7.2}{}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {7.2}Kernel r\IeC {\'e}alisant la convolution par un masque 3$\times $3 dont les coefficients normalis\IeC {\'e}s sont en m\IeC {\'e}moire constante.}{103}{lstlisting.7.2}} -\@writefile{toc}{\contentsline {section}{\numberline {7.4}Cas de la convolution s\IeC {\'e}parable}{104}{section.7.4}} -\@writefile{lot}{\contentsline {table}{\numberline {7.4}{\ignorespaces Co\IeC {\^u}t, en ms, de la copie effectu\IeC {\'e}e entre les deux phases de convolution 1D, sur C2070.}}{105}{table.7.4}} -\newlabel{tab-convo-memcpy}{{7.4}{105}{Coût, en ms, de la copie effectuée entre les deux phases de convolution 1D, sur C2070}{table.7.4}{}} -\newlabel{lst-convo-1Dv}{{7.3}{105}{Kernel réalisant la convolution verticale 3$\times $1}{lstlisting.7.3}{}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {7.3}Kernel r\IeC {\'e}alisant la convolution verticale 3$\times $1.}{105}{lstlisting.7.3}} -\newlabel{lst-convo-1Dh}{{7.4}{106}{Kernel réalisant la convolution horizontale 1$\times $3}{lstlisting.7.4}{}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {7.4}Kernel r\IeC {\'e}alisant la convolution horizontale 1$\times $3.}{106}{lstlisting.7.4}} -\@writefile{toc}{\contentsline {section}{\numberline {7.5}Conclusion}{107}{section.7.5}} -\@writefile{lot}{\contentsline {table}{\numberline {7.5}{\ignorespaces Performances des kernels effectuant la convolution s\IeC {\'e}parable sur le mod\IeC {\`e}le des listings \ref {lst-convo-1Dv} et \ref {lst-convo-1Dh}, sur GPU C2070. Le temps d'ex\IeC {\'e}cution correspond \IeC {\`a} l'ex\IeC {\'e}cution des 2 kernels et de la copie int\IeC {\'e}rm\IeC {\'e}diaire. Le d\IeC {\'e}bit global int\IeC {\`e}gre les temps de transfert.}}{108}{table.7.5}} -\newlabel{tab-convo-sep}{{7.5}{108}{Performances des kernels effectuant la convolution séparable sur le modèle des listings \ref {lst-convo-1Dv} et \ref {lst-convo-1Dh}, sur GPU C2070. Le temps d'exécution correspond à l'exécution des 2 kernels et de la copie intérmédiaire. Le débit global intègre les temps de transfert}{table.7.5}{}} +\@writefile{toc}{\contentsline {section}{\numberline {7.1}Introduction}{103}{section.7.1}} +\@writefile{toc}{\contentsline {section}{\numberline {7.2}Impl\IeC {\'e}mentation g\IeC {\'e}n\IeC {\'e}rique de la convolution non s\IeC {\'e}parable}{103}{section.7.2}} +\@writefile{loa}{\contentsline {algocf}{\numberline {9}{\ignorespaces Convolution g\IeC {\'e}n\IeC {\'e}rique sur GPU}}{104}{algocfline.9}} +\newlabel{algo-convo-gene}{{9}{104}{Implémentation générique de la convolution non séparable\relax }{algocfline.9}{}} +\newlabel{lst-convo-gene3reg8}{{7.1}{104}{Kernel réalisant la convolution par un masque moyenneur 3$\times $3 dont les coefficients normalisés sont codés \textit {en dur}, dans les registres du GPU}{lstlisting.7.1}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {7.1}Kernel r\IeC {\'e}alisant la convolution par un masque moyenneur 3$\times $3 dont les coefficients normalis\IeC {\'e}s sont cod\IeC {\'e}s \textit {en dur}, dans les registres du GPU.}{104}{lstlisting.7.1}} +\@writefile{lot}{\contentsline {table}{\numberline {7.1}{\ignorespaces Performances des kernels effectuant la convolution non-s\IeC {\'e}parable sur le mod\IeC {\`e}le du listing \ref {lst-convo-gene3reg8}, sur GPU C2070. Le temps d'ex\IeC {\'e}cution correspond \IeC {\`a} la seule ex\IeC {\'e}cution du kernel. Le d\IeC {\'e}bit global int\IeC {\`e}gre les temps de transfert. Les valeurs en gras correspondent au traitement de r\IeC {\'e}f\IeC {\'e}rence.}}{105}{table.7.1}} +\newlabel{tab-convo-gene3reg8-2070}{{7.1}{105}{Performances des kernels effectuant la convolution non-séparable sur le modèle du listing \ref {lst-convo-gene3reg8}, sur GPU C2070. Le temps d'exécution correspond à la seule exécution du kernel. Le débit global intègre les temps de transfert. Les valeurs en gras correspondent au traitement de référence}{table.7.1}{}} +\@writefile{lot}{\contentsline {table}{\numberline {7.2}{\ignorespaces Performances des kernels effectuant la convolution non-s\IeC {\'e}parable sur le mod\IeC {\`e}le du listing \ref {lst-convo-gene3reg8}, sur GPU GTX280. Le temps d'ex\IeC {\'e}cution correspond \IeC {\`a} la seule ex\IeC {\'e}cution du kernel. Le d\IeC {\'e}bit global int\IeC {\`e}gre les temps de transfert. Les valeurs en gras correspondent au traitement de r\IeC {\'e}f\IeC {\'e}rence.}}{105}{table.7.2}} +\newlabel{tab-convo-gene3reg8-480}{{7.2}{105}{Performances des kernels effectuant la convolution non-séparable sur le modèle du listing \ref {lst-convo-gene3reg8}, sur GPU GTX280. Le temps d'exécution correspond à la seule exécution du kernel. Le débit global intègre les temps de transfert. Les valeurs en gras correspondent au traitement de référence}{table.7.2}{}} +\@writefile{toc}{\contentsline {section}{\numberline {7.3}Impl\IeC {\'e}mentation optimis\IeC {\'e}e de la convolution non s\IeC {\'e}parable}{105}{section.7.3}} +\@writefile{lof}{\contentsline {figure}{\numberline {7.1}{\ignorespaces Multiplicit\IeC {\'e} des implications des pixels de la zone d'int\IeC {\'e}r\IeC {\^e}t d'un thread dans les calculs de convolution. Le nombre de calculs dans lequel est impliqu\IeC {\'e} un pixel est inscrit en son centre. Le premier pixel du paquet, ou pixel de base, est rep\IeC {\'e}r\IeC {\'e} par ses coordonn\IeC {\'e}es $(x, y)$ ; le dernier a pour coordonn\IeC {\'e}es $(x+7,y)$}}{106}{figure.7.1}} +\newlabel{fig-convo-overlap}{{7.1}{106}{Multiplicité des implications des pixels de la zone d'intérêt d'un thread dans les calculs de convolution. Le nombre de calculs dans lequel est impliqué un pixel est inscrit en son centre. Le premier pixel du paquet, ou pixel de base, est repéré par ses coordonnées $(x, y)$ ; le dernier a pour coordonnées $(x+7,y)$\relax }{figure.7.1}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Cas d'un masque de taille 3$\times $3 ($k=1$) o\IeC {\`u} l'on d\IeC {\'e}nombre 6 colonnes centrales, soit 18 pixels de multiplicit\IeC {\'e} maximale 3.}}}{106}{figure.7.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Cas d'un masque de taille 5$\times $5 ($k=2$) o\IeC {\`u} l'on d\IeC {\'e}nombre 4 colonnes centrales, soit 20 pixels de multiplicit\IeC {\'e} maximale 5.}}}{106}{figure.7.1}} +\@writefile{lot}{\contentsline {table}{\numberline {7.3}{\ignorespaces Performances des kernels effectuant la convolution non-s\IeC {\'e}parable sur le mod\IeC {\`e}le du listing \ref {lst-convo-8x8pL3}, sur GPU C2070. Le temps d'ex\IeC {\'e}cution correspond \IeC {\`a} la seule ex\IeC {\'e}cution du kernel. Le d\IeC {\'e}bit global int\IeC {\`e}gre les temps de transfert. Les valeurs en gras correspondent au traitement de r\IeC {\'e}f\IeC {\'e}rence }}{107}{table.7.3}} +\newlabel{tab-convo-8x8p}{{7.3}{107}{Performances des kernels effectuant la convolution non-séparable sur le modèle du listing \ref {lst-convo-8x8pL3}, sur GPU C2070. Le temps d'exécution correspond à la seule exécution du kernel. Le débit global intègre les temps de transfert. Les valeurs en gras correspondent au traitement de référence \relax }{table.7.3}{}} +\newlabel{lst-convo-8x8pL3}{{7.2}{107}{Kernel réalisant la convolution par un masque 3$\times $3 dont les coefficients normalisés sont en mémoire constante}{lstlisting.7.2}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {7.2}Kernel r\IeC {\'e}alisant la convolution par un masque 3$\times $3 dont les coefficients normalis\IeC {\'e}s sont en m\IeC {\'e}moire constante.}{107}{lstlisting.7.2}} +\@writefile{toc}{\contentsline {section}{\numberline {7.4}Cas de la convolution s\IeC {\'e}parable}{108}{section.7.4}} +\@writefile{lot}{\contentsline {table}{\numberline {7.4}{\ignorespaces Co\IeC {\^u}t, en ms, de la copie effectu\IeC {\'e}e entre les deux phases de convolution 1D, sur C2070.}}{109}{table.7.4}} +\newlabel{tab-convo-memcpy}{{7.4}{109}{Coût, en ms, de la copie effectuée entre les deux phases de convolution 1D, sur C2070}{table.7.4}{}} +\newlabel{lst-convo-1Dv}{{7.3}{109}{Kernel réalisant la convolution verticale 3$\times $1}{lstlisting.7.3}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {7.3}Kernel r\IeC {\'e}alisant la convolution verticale 3$\times $1.}{109}{lstlisting.7.3}} +\newlabel{lst-convo-1Dh}{{7.4}{110}{Kernel réalisant la convolution horizontale 1$\times $3}{lstlisting.7.4}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {7.4}Kernel r\IeC {\'e}alisant la convolution horizontale 1$\times $3.}{110}{lstlisting.7.4}} +\@writefile{toc}{\contentsline {section}{\numberline {7.5}Conclusion}{111}{section.7.5}} +\@writefile{lot}{\contentsline {table}{\numberline {7.5}{\ignorespaces Performances des kernels effectuant la convolution s\IeC {\'e}parable sur le mod\IeC {\`e}le des listings \ref {lst-convo-1Dv} et \ref {lst-convo-1Dh}, sur GPU C2070. Le temps d'ex\IeC {\'e}cution correspond \IeC {\`a} l'ex\IeC {\'e}cution des 2 kernels et de la copie int\IeC {\'e}rm\IeC {\'e}diaire. Le d\IeC {\'e}bit global int\IeC {\`e}gre les temps de transfert.}}{112}{table.7.5}} +\newlabel{tab-convo-sep}{{7.5}{112}{Performances des kernels effectuant la convolution séparable sur le modèle des listings \ref {lst-convo-1Dv} et \ref {lst-convo-1Dh}, sur GPU C2070. Le temps d'exécution correspond à l'exécution des 2 kernels et de la copie intérmédiaire. Le débit global intègre les temps de transfert}{table.7.5}{}} \bibstyle{plain} \bibdata{biblio} -\@writefile{toc}{\contentsline {chapter}{\numberline {8}Conclusion g\IeC {\'e}n\IeC {\'e}rale}{109}{chapter.8}} +\@writefile{toc}{\contentsline {chapter}{\numberline {8}Conclusion g\IeC {\'e}n\IeC {\'e}rale}{113}{chapter.8}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \bibcite{kddcup99}{1} @@ -707,37 +777,39 @@ \bibcite{pelleg2000x}{68} \bibcite{4287006}{69} \bibcite{1521458}{70} -\bibcite{4587843}{71} -\bibcite{Roberts:2010:WGA:1921479.1921499}{72} -\bibcite{ronfard1994region}{73} -\bibcite{rumpf2001level}{74} -\bibcite{sanchezICASSP12}{75} -\bibcite{6288187}{76} -\bibcite{sethian1996fast}{77} -\bibcite{kmeansgpuopengl}{78} -\bibcite{shi2000normalized}{79} -\bibcite{snakegvfopencl12}{80} -\bibcite{convolutionsoup}{81} -\bibcite{graphcutscuda}{82} -\bibcite{strang1999discrete}{83} -\bibcite{sanchez2013highly}{84} -\bibcite{theuwissen2001ccd}{85} -\bibcite{710815}{86} -\bibcite{tukey77}{87} -\bibcite{vedaldi2008quick}{88} -\bibcite{4563095}{89} -\bibcite{Vineet:2009:FMS:1572769.1572796}{90} -\bibcite{volkov2010better}{91} -\bibcite{wang2001image}{92} -\bibcite{wang2003image}{93} -\bibcite{Wang04imagequality}{94} -\bibcite{wong2010demystifying}{95} -\bibcite{wu1993optimal}{96} -\bibcite{xiao2010efficient}{97} -\bibcite{5206542}{98} -\bibcite{Zahn:1971:GMD:1309266.1309359}{99} -\bibcite{zheng2011performance}{100} -\bibcite{zheng2012fast}{101} +\bibcite{tid2008a}{71} +\bibcite{psnrhvsm}{72} +\bibcite{4587843}{73} +\bibcite{Roberts:2010:WGA:1921479.1921499}{74} +\bibcite{ronfard1994region}{75} +\bibcite{rumpf2001level}{76} +\bibcite{sanchezICASSP12}{77} +\bibcite{6288187}{78} +\bibcite{sethian1996fast}{79} +\bibcite{kmeansgpuopengl}{80} +\bibcite{shi2000normalized}{81} +\bibcite{snakegvfopencl12}{82} +\bibcite{convolutionsoup}{83} +\bibcite{graphcutscuda}{84} +\bibcite{strang1999discrete}{85} +\bibcite{sanchez2013highly}{86} +\bibcite{theuwissen2001ccd}{87} +\bibcite{710815}{88} +\bibcite{tukey77}{89} +\bibcite{vedaldi2008quick}{90} +\bibcite{4563095}{91} +\bibcite{Vineet:2009:FMS:1572769.1572796}{92} +\bibcite{volkov2010better}{93} +\bibcite{wang2001image}{94} +\bibcite{wang2003image}{95} +\bibcite{Wang04imagequality}{96} +\bibcite{wong2010demystifying}{97} +\bibcite{wu1993optimal}{98} +\bibcite{xiao2010efficient}{99} +\bibcite{5206542}{100} +\bibcite{Zahn:1971:GMD:1309266.1309359}{101} +\bibcite{zheng2011performance}{102} +\bibcite{zheng2012fast}{103} \citation{CUDAPG} \citation{CUDAPG} \citation{zheng2011performance}