12.07.2015 Views

Algorithmes de la morphologie mathématique pour - Pastel - HAL

Algorithmes de la morphologie mathématique pour - Pastel - HAL

Algorithmes de la morphologie mathématique pour - Pastel - HAL

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Algorithmes</strong> <strong>de</strong> <strong>la</strong> <strong>morphologie</strong> <strong>mathématique</strong> <strong>pour</strong> les architectures orientées fluxJaromír BRAMBORAlgorithme 5.11 : ngbGAlgoGenSIMD Skeleton algorithmique généralisé <strong>de</strong> travail géodésiqueSIMD sur le voisinage1 ngbGAlgoGenSIMD :: [Streamize (PVec I α)] → [ExtrNgb (PVec I α)] → [NgbGOp (PVec I α)]2 → ( Ar ( I , I ) (PVec I α), Ar ( I , I ) (PVec I α))3 → Ar ( I , I ) (PVec I α)4 ngbGAlgoGenSIMD = ngbGAlgoGen5.4 <strong>Algorithmes</strong> <strong>pour</strong> les GPUCette section sera consacrée aux algorithmes morphologiques <strong>de</strong> base, non dépendants du sens duparcours <strong>de</strong> l’image, qui utilisent les moyens fonctionnels du pipeline graphique et qui sont <strong>de</strong>stinés àêtre exécutés sur les processeurs graphiques.Il est possible d’envisager plusieurs approches à <strong>la</strong> construction <strong>de</strong> ces algorithmes. Nous mentionnons:• L’approche utilisant les opérations <strong>de</strong> Minkowski, q.v. page 118.• L’approche utilisant l’échantillonnage <strong>de</strong> textures dans l’unité <strong>de</strong> traitement <strong>de</strong>s fragments, q.v.page 120.• L’approche utilisant les point sprites, q.v. page 120.5.4.1 Traitement <strong>de</strong>s bords <strong>de</strong> <strong>la</strong> texture sur les GPUNotre explication <strong>de</strong>s algorithmes <strong>pour</strong> les GPU commencera par l’explication <strong>de</strong>s capacités matériellesparticulières <strong>de</strong>s processeurs graphiques <strong>pour</strong> l’échantillonnage <strong>de</strong>s textures avec les in<strong>de</strong>x pointanten <strong>de</strong>hors du domaine <strong>de</strong> <strong>la</strong> texture. Il s’agit <strong>de</strong>s capacités <strong>de</strong> <strong>la</strong> gestion <strong>de</strong>s bords lors <strong>de</strong> l’échantillonnage<strong>de</strong> <strong>la</strong> texture. Dans les algorithmes utilisés couramment <strong>de</strong> <strong>la</strong> <strong>morphologie</strong> <strong>mathématique</strong>, nousallons faire appel le plus souvent à <strong>la</strong> fonction <strong>de</strong> <strong>la</strong> valeur constante du bord <strong>de</strong> l’image mais d’autrespossibilités (les valeurs reflétées etc.) peuvent être envisagées.Sachant que l’image à traiter est représentée dans le GPU en tant que texture, nous pouvons bénéficier<strong>de</strong> ces capacités <strong>pour</strong> simplifier <strong>la</strong> construction <strong>de</strong>s algorithmes morphologiques travail<strong>la</strong>nt sur levoisinage dans ce matériel. Ainsi, le calcul à effectuer sera le même <strong>pour</strong> tout le domaine <strong>de</strong> l’image, ycompris <strong>pour</strong> les zones dans lesquelles l’élément structurant désigne les pixels à l’extérieur <strong>de</strong> ce <strong>de</strong>rnier.L’uniformité du calcul est un phénomène important dans ce cas, car nous n’aurons pas à traiter plusieurszones <strong>de</strong> l’image avec une fonction du kernel spécifique <strong>pour</strong> chacune <strong>de</strong>s zones. Cette uniformitéva se traduire par l’utilisation <strong>de</strong> <strong>la</strong> comman<strong>de</strong> géométrique couvrant entièrement notre domaine d’intérêt– rectangle <strong>de</strong> dimension <strong>de</strong> l’image dans ce cas précis.Remarquons que les fonctionnalités <strong>de</strong> <strong>la</strong> gestion <strong>de</strong>s bords sont ajustées lors <strong>de</strong> <strong>la</strong> création <strong>de</strong> <strong>la</strong>texture et ne sont effectuées qu’une fois dans <strong>la</strong> phase <strong>de</strong> l’initialisation <strong>de</strong> notre algorithme.5.4.2 Approche utilisant les opérations <strong>de</strong> MinkowskiUne possible approche <strong>pour</strong> implémenter les algorithmes <strong>de</strong> <strong>la</strong> <strong>morphologie</strong> <strong>mathématique</strong> utiliseles opérations <strong>de</strong> Minkowski (cf. <strong>la</strong> section 4.6.3 traitant d’éléments structurants, page 86). Il s’agit <strong>de</strong>l’approche qui est décrite par Hopf et Ertl dans leur article HE00 , le plus ancien (année 2000) que nousayons pu consulter et qui implémentait les opérations morphologiques sur les GPU utilisant les capacitésmatérielles qui étaient à disposition à l’époque.Sachant que les GPU grand public gar<strong>de</strong>nt <strong>la</strong> compatibilité rétroactive, il est possible d’envisagerl’utilisation <strong>de</strong> cette approche également sur les processeurs graphiques mo<strong>de</strong>rnes, mais son utilité pratiqueest moindre car ces nouveaux processeurs nous offrent d’autres possibilités <strong>pour</strong> une implémentationplus rapi<strong>de</strong>. En revanche, les métho<strong>de</strong>s qui sont basées directement sur les opérations <strong>de</strong> Minkowski118

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!