\relax \citation{KassWT88} \citation{ChesnaudRB99} \citation{ChesnaudRB99} \citation{catanB09} \citation{cremD09} \citation{brunett} \citation{KauffmannP08} \@writefile{toc}{\contentsline {section}{\numberline {I}Introduction}{1}} \newlabel{related}{{\unhbox \voidb@x \hbox {I-A}}{1}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {I-A}}Related work}{1}} \newlabel{contrib}{{\unhbox \voidb@x \hbox {I-B}}{1}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {I-B}}Contribution}{1}} \citation{ChesnaudRB99} \citation{ChesnaudRB99} \citation{ChesnaudRB99} \citation{ChesnaudRB99} \newlabel{secCPUalgooutlines}{{II}{2}} \@writefile{toc}{\contentsline {section}{\numberline {II}Sequential algorithm: outlines}{2}} \newlabel{secCPUalgodetails}{{III}{2}} \@writefile{toc}{\contentsline {section}{\numberline {III}Sequential algorithm: details}{2}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-A}}Criterion}{2}} \newlabel{cpualgosimple}{{1}{2}} \@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces Sequential algorithm: outlines}}{2}} \newlabel{fig:labelinit}{{1a}{2}} \newlabel{sub@fig:labelinit}{{(a)}{a}} \newlabel{fig:labelit1}{{1b}{2}} \newlabel{sub@fig:labelit1}{{(b)}{b}} \newlabel{fig:labelit2}{{1c}{2}} \newlabel{sub@fig:labelit2}{{(c)}{c}} \newlabel{fig:labelit4}{{1d}{2}} \newlabel{sub@fig:labelit4}{{(d)}{d}} \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces segmentation of a noisy image}}{2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Initial contour}}}{2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {End of first iteration (4 nodes) }}}{2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {End of second iteration (8 nodes)}}}{2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {End of fourth iteration (29 nodes)}}}{2}} \newlabel{images_algo}{{1}{2}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-B}}CPU implementation}{2}} \citation{CUDAPG} \newlabel{CPUcontrib_segments}{{2}{3}} \newlabel{CPUbresenham}{{2}{3}} \newlabel{CPUcontrib_pixels}{{2}{3}} \@writefile{loa}{\contentsline {algocf}{\numberline {2}{\ignorespaces Sequential simplified algorithm}}{3}} \newlabel{cpualgo}{{2}{3}} \newlabel{cumuls}{{2}{3}} \newlabel{debinit}{{3}{3}} \newlabel{fininit}{{9}{3}} \newlabel{loopnewnodes}{{10}{3}} \newlabel{loopmovenodes}{{11}{3}} \newlabel{kernelGL}{{15}{3}} \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces the three most-consumming functions for various image sizes}}{3}} \newlabel{CPUprofile}{{2}{3}} \citation{ChesnaudRB99} \citation{Harris07} \citation{CUDAPG} \newlabel{GPUgeneralites}{{IV}{4}} \@writefile{toc}{\contentsline {section}{\numberline {IV}NVidia's GPU architecture}{4}} \newlabel{GPUimplementation}{{V}{4}} \@writefile{toc}{\contentsline {section}{\numberline {V}GPU implementation}{4}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-A}}Pre-computations}{4}} \citation{CUDAFT} \citation{CUDAPG} \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces \texttt {compute\_blocks\_prefixes()} details.}}{5}} \newlabel{GPUcumuls}{{3}{5}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-B}}Segment contributions}{5}} \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces \texttt {scan\_blocksums()} details.}}{6}} \newlabel{GPUscansomblocs}{{4}{6}} \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces \texttt {add\_sums2prefixes()} details.}}{6}} \newlabel{GPUaddsoms2cumuls}{{5}{6}} \@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Optimization of node locations using 8 position tests around each node.}}{6}} \newlabel{GPUtopo}{{6}{6}} \@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces structure for segments contributions computation. Gray symbols help to locate inactive threads as opposed to black ones that figure active threads.}}{7}} \newlabel{contribs_segments}{{7}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-C}}Segments with a slope $k$ such as $|k|\leq 1$}{7}} \@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces zoom on part a of segment with $|k| < 1$, at pixel level.}}{7}} \newlabel{tripix}{{8}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-D}}Parameters estimation}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-E}}End of segmentation}{7}} \newlabel{gpualgosimple}{{3}{7}} \@writefile{loa}{\contentsline {algocf}{\numberline {3}{\ignorespaces Parralel GPU algorithm: outlines. \texttt {<<<...>>>} indicates a GPU kernel parallel process.}}{7}} \newlabel{secSpeedups}{{VI}{7}} \@writefile{toc}{\contentsline {section}{\numberline {VI}Speedups}{7}} \bibstyle{IEEEtran} \bibdata{IEEEabrv,biblio} \bibcite{KassWT88}{1} \bibcite{ChesnaudRB99}{2} \bibcite{catanB09}{3} \bibcite{cremD09}{4} \bibcite{brunett}{5} \bibcite{KauffmannP08}{6} \bibcite{CUDAPG}{7} \bibcite{Harris07}{8} \bibcite{CUDAFT}{9} \@writefile{lot}{\contentsline {table}{\numberline {I}{\ignorespaces GPU (C2050) vs CPU timings.}}{8}} \newlabel{tabresults}{{I}{8}} \newlabel{secConclusion}{{VII}{8}} \@writefile{toc}{\contentsline {section}{\numberline {VII}Conclusion}{8}} \@writefile{toc}{\contentsline {section}{References}{8}}