3 \citation{ChesnaudRB99}
4 \citation{ChesnaudRB99}
8 \citation{KauffmannP08}
9 \@writefile{toc}{\contentsline {section}{\numberline {I}Introduction}{1}}
10 \newlabel{related}{{\unhbox \voidb@x \hbox {I-A}}{1}}
11 \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {I-A}}Related work}{1}}
12 \newlabel{contrib}{{\unhbox \voidb@x \hbox {I-B}}{1}}
13 \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {I-B}}Contribution}{1}}
14 \citation{ChesnaudRB99}
15 \citation{ChesnaudRB99}
16 \citation{ChesnaudRB99}
17 \citation{ChesnaudRB99}
18 \newlabel{secCPUalgooutlines}{{II}{2}}
19 \@writefile{toc}{\contentsline {section}{\numberline {II}Sequential algorithm: outlines}{2}}
20 \newlabel{secCPUalgodetails}{{III}{2}}
21 \@writefile{toc}{\contentsline {section}{\numberline {III}Sequential algorithm: details}{2}}
22 \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-A}}Criterion}{2}}
23 \newlabel{cpualgosimple}{{1}{2}}
24 \@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces Sequential algorithm: outlines}}{2}}
25 \newlabel{fig:labelinit}{{1a}{2}}
26 \newlabel{sub@fig:labelinit}{{(a)}{a}}
27 \newlabel{fig:labelit1}{{1b}{2}}
28 \newlabel{sub@fig:labelit1}{{(b)}{b}}
29 \newlabel{fig:labelit2}{{1c}{2}}
30 \newlabel{sub@fig:labelit2}{{(c)}{c}}
31 \newlabel{fig:labelit4}{{1d}{2}}
32 \newlabel{sub@fig:labelit4}{{(d)}{d}}
33 \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces segmentation of a noisy image}}{2}}
34 \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Initial contour}}}{2}}
35 \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {End of first iteration (4 nodes) }}}{2}}
36 \@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {End of second iteration (8 nodes)}}}{2}}
37 \@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {End of fourth iteration (29 nodes)}}}{2}}
38 \newlabel{images_algo}{{1}{2}}
39 \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-B}}CPU implementation}{2}}
41 \newlabel{CPUcontrib_segments}{{2}{3}}
42 \newlabel{CPUbresenham}{{2}{3}}
43 \newlabel{CPUcontrib_pixels}{{2}{3}}
44 \@writefile{loa}{\contentsline {algocf}{\numberline {2}{\ignorespaces Sequential simplified algorithm}}{3}}
45 \newlabel{cpualgo}{{2}{3}}
46 \newlabel{cumuls}{{2}{3}}
47 \newlabel{debinit}{{3}{3}}
48 \newlabel{fininit}{{9}{3}}
49 \newlabel{loopnewnodes}{{10}{3}}
50 \newlabel{loopmovenodes}{{11}{3}}
51 \newlabel{kernelGL}{{15}{3}}
52 \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces the three most-consumming functions for various image sizes}}{3}}
53 \newlabel{CPUprofile}{{2}{3}}
54 \citation{ChesnaudRB99}
57 \newlabel{GPUgeneralites}{{IV}{4}}
58 \@writefile{toc}{\contentsline {section}{\numberline {IV}NVidia's GPU architecture}{4}}
59 \newlabel{GPUimplementation}{{V}{4}}
60 \@writefile{toc}{\contentsline {section}{\numberline {V}GPU implementation}{4}}
61 \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-A}}Pre-computations}{4}}
64 \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces \texttt {compute\_blocks\_prefixes()} details.}}{5}}
65 \newlabel{GPUcumuls}{{3}{5}}
66 \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-B}}Segment contributions}{5}}
67 \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces \texttt {scan\_blocksums()} details.}}{6}}
68 \newlabel{GPUscansomblocs}{{4}{6}}
69 \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces \texttt {add\_sums2prefixes()} details.}}{6}}
70 \newlabel{GPUaddsoms2cumuls}{{5}{6}}
71 \@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Optimization of node locations using 8 position tests around each node.}}{6}}
72 \newlabel{GPUtopo}{{6}{6}}
73 \@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}}
74 \newlabel{contribs_segments}{{7}{7}}
75 \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-C}}Segments with a slope $k$ such as $|k|\leq 1$}{7}}
76 \@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces zoom on part a of segment with $|k| < 1$, at pixel level.}}{7}}
77 \newlabel{tripix}{{8}{7}}
78 \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-D}}Parameters estimation}{7}}
79 \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-E}}End of segmentation}{7}}
80 \newlabel{gpualgosimple}{{3}{7}}
81 \@writefile{loa}{\contentsline {algocf}{\numberline {3}{\ignorespaces Parralel GPU algorithm: outlines. \texttt {<<<...>>>} indicates a GPU kernel parallel process.}}{7}}
82 \newlabel{secSpeedups}{{VI}{7}}
83 \@writefile{toc}{\contentsline {section}{\numberline {VI}Speedups}{7}}
85 \bibdata{IEEEabrv,biblio}
87 \bibcite{ChesnaudRB99}{2}
91 \bibcite{KauffmannP08}{6}
95 \@writefile{lot}{\contentsline {table}{\numberline {I}{\ignorespaces GPU (C2050) vs CPU timings.}}{8}}
96 \newlabel{tabresults}{{I}{8}}
97 \newlabel{secConclusion}{{VII}{8}}
98 \@writefile{toc}{\contentsline {section}{\numberline {VII}Conclusion}{8}}
99 \@writefile{toc}{\contentsline {section}{References}{8}}