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...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<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 BRAMBORframebuffer. Ou ils peuvent également être réutilisés lors <strong>de</strong> <strong>la</strong> prochaine application <strong>de</strong> l’opération <strong>de</strong> <strong>la</strong>morphologique <strong>mathématique</strong>. Nous profiterons partiellement du fait que les données sont déjà présentesdans le framebuffer et l’initialisent ainsi dans le cas où l’élément structurant <strong>de</strong> l’opération suivantecontiendrait le vecteur désignant le pixel central. Nonobstant que le framebuffer soit ainsi initialisé, nous<strong>de</strong>vons procé<strong>de</strong>r à une copie <strong>de</strong> ses valeurs vers une texture qui serait utilisée <strong>pour</strong> l’échantillonnage dansl’opération suivante.5.4.3 Approche utilisant l’échantillonnage complexe <strong>de</strong>s textures dans l’unité <strong>de</strong> traitement<strong>de</strong>s fragmentsLes processeurs graphiques plus récents offrent <strong>la</strong> possibilité d’exécuter le programme sur chacun <strong>de</strong>sfragments. Nous allons exploiter cette capacité matérielle <strong>pour</strong> pouvoir introduire une autre approche àl’implémentation <strong>de</strong>s opérations morphologiques <strong>de</strong> base sur les processeurs graphiques.L’idée <strong>de</strong> cette approche consiste à utiliser l’échantillonnage massif <strong>de</strong> <strong>la</strong> texture, effectué dans l’unité<strong>de</strong> traitement <strong>de</strong>s fragments lors <strong>de</strong> l’application du kernel <strong>de</strong> traitement sur le stream <strong>de</strong>s fragments. Laforme précise <strong>de</strong> cet échantillonnage est dictée par <strong>la</strong> forme <strong>de</strong> l’élément structurant, qui, une fois traduità une liste <strong>de</strong>s vecteurs <strong>de</strong> dép<strong>la</strong>cement dans le domaine <strong>de</strong>s in<strong>de</strong>x, peut être utilisée <strong>pour</strong> accé<strong>de</strong>r auxvaleurs <strong>de</strong>s éléments <strong>de</strong> <strong>la</strong> texture. Remarquons que l’opération morphologique est calculée égalementdans l’unité <strong>de</strong>s fragments. Par conséquent, le fragment modifié résultat porte l’information sur le résultat<strong>de</strong> cette opération morphologique comme <strong>la</strong> valeur <strong>de</strong> <strong>la</strong> couleur qui est à inscrire dans le framebuffer.Dans les algorithmes <strong>de</strong> ce type, notre comman<strong>de</strong> graphique ne sera composée que d’un seul rectanglequi couvre <strong>la</strong> surface dans le framebuffer correspondant au domaine <strong>de</strong> l’image et sur <strong>la</strong>quellenous affichons les résultats du traitement. Notons également que nous travaillons avec une seule image<strong>de</strong> texture. Nous travaillerons avec plusieurs images <strong>de</strong> texture dans le cas où nous voudrions effectuerune opération morphologique plus complexe faisant appel à plusieurs images, e.g. les opérations géodésiquesen font partie.L’initialisation du framebuffer n’est pas nécessaire dans ce cas car l’opération morphologique <strong>de</strong> réduction<strong>de</strong>s valeurs du voisinage est calculée entièrement par le processeur <strong>de</strong>s fragments (fprocessor).Ainsi, nous n’avons pas besoin <strong>de</strong> faire appel aux opérations du blending dans <strong>la</strong> phase <strong>de</strong> post-traitement<strong>de</strong>s fragments. En effet, nous n’avons pas besoin <strong>de</strong>s opérations raster <strong>pour</strong> effectuer le kernel <strong>de</strong> l’opérationmorphologique <strong>de</strong> base, mais nous pouvons utiliser <strong>la</strong> fonctionnalité du blending <strong>pour</strong> distribuerle calcul et alléger <strong>la</strong> charge <strong>de</strong>s unités <strong>de</strong> traitement <strong>de</strong>s fragments, notamment lors du travail avec lesopérations géodésiques qui utilisent un masque à niveaux <strong>de</strong> gris. Si le masque est binaire, l’applicationdu masque par le blending ne semble pas <strong>la</strong> meilleure solution car les GPU possè<strong>de</strong>nt <strong>la</strong> fonctionnalité dustencil buffer, également englobé dans le bloc <strong>de</strong>s raster opérations lors du post-traitement <strong>de</strong>s fragments,qui assure exactement cette opération.Remarquons que l’exécution <strong>de</strong> ce kernel <strong>de</strong> traitement <strong>de</strong>s fragments est parallélisée dans les processeursgraphiques par le paradigme <strong>de</strong> <strong>la</strong> réplication fonctionnelle (cf. le skeleton farm, page 67).Sachant que c’est le bloc <strong>de</strong> traitement <strong>de</strong>s fragments qui est le plus parallélisé au niveau du matériel,cette approche à l’implémentation a toutes les prédispositions <strong>pour</strong> profiter pleinement <strong>de</strong>s capacités <strong>de</strong>sGPU mo<strong>de</strong>rnes. La figure 5.15 illustre le fonctionnement <strong>de</strong> cette approche. Nous y démontrons, <strong>pour</strong> unexemple concret d’un élément structurant, <strong>de</strong> quelle manière on procè<strong>de</strong> lors <strong>de</strong> l’extraction <strong>de</strong>s texels(<strong>de</strong>s données à partir <strong>de</strong> <strong>la</strong> texture) désignés par cet élément structurant.5.4.4 Approche utilisant les point spritesParmi les capacités particulières <strong>de</strong>s GPU <strong>pour</strong> le calcul <strong>de</strong>stiné à <strong>la</strong> synthèse <strong>de</strong>s images, nous trouvonsune fonctionnalité intéressante qui peut nous servir, effectivement, <strong>pour</strong> implémenter les opérationsmorphologiques sur les GPU – les point sprites.Il s’agit d’une technique spéciale, mais couramment utilisée dans <strong>la</strong> synthèse d’images <strong>pour</strong> créerfacilement les objets <strong>de</strong> 2 dimensions et les p<strong>la</strong>cer dans l’image. Le principe <strong>de</strong> cette technique est simple.120

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

Saved successfully!

Ooh no, something went wrong!