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.

Jaromír BRAMBOR5.4. ALGORITHMES POUR LES GPURectangle <strong>de</strong> rendupixel PÉchantillonnage <strong>de</strong> <strong>la</strong> texture<strong>pour</strong> pixel PÉlémentstructurantÉlémentstructuranttransposéFIG. 5.15 : Utilisation d’échantillonnage <strong>de</strong> <strong>la</strong> texture dans l’unité <strong>de</strong> traitement <strong>de</strong>s fragment <strong>pour</strong> l’extractiondu voisinageNous voudrions afficher dans le framebuffer un objet rectangu<strong>la</strong>ire et texturé à partir d’un minimum <strong>de</strong>comman<strong>de</strong>s. Donc, notre primitive géométrique qui passera par <strong>la</strong> comman<strong>de</strong> graphique du GPP au GPUest un point. C’est d’ici que l’on a dérivé leur appel<strong>la</strong>tion point sprites.En effet, c’est l’unité d’assemb<strong>la</strong>ge <strong>de</strong>s primitives qui, étant préa<strong>la</strong>blement configurée <strong>pour</strong> ce travail,remp<strong>la</strong>ce chaque point désignant un point sprite par un rectangle dont les vertex contiennent les in<strong>de</strong>xpointant vers <strong>la</strong> texture associée à ce point sprite et dont <strong>la</strong> position est re<strong>la</strong>tive à <strong>la</strong> position du point quia été passé par <strong>la</strong> comman<strong>de</strong> graphique.En effet, nous voulions exploiter cette technique <strong>pour</strong> une autre version <strong>de</strong> l’implémentation <strong>de</strong>s opérations<strong>de</strong> Minkowski. Supposant que nous puissions créer un point sprite ayant les dimensions <strong>de</strong> notreimage à traiter, nous <strong>pour</strong>rions percevoir une séquence <strong>de</strong>s point sprites comme <strong>la</strong> version graphique<strong>de</strong> l’élément structurant. En effet, chaque point <strong>de</strong> cette liste définirait le dép<strong>la</strong>cement <strong>de</strong> l’image et sinous avions bien configuré l’unité du blending, <strong>de</strong> <strong>la</strong> même manière que nous l’avons fait dans 5.4.2,page 118, <strong>pour</strong> l’approche utilisant les opérations <strong>de</strong> Minkowski, nous aurions obtenu les résultats <strong>de</strong>notre opération morphologique <strong>de</strong> base dans le framebuffer.Le problème <strong>de</strong> cette métho<strong>de</strong> est qu’il n’est pas habituel <strong>de</strong> traiter les point sprites qui sont <strong>de</strong> dimensionségales à celles <strong>de</strong> l’image et que le support <strong>de</strong> gran<strong>de</strong>s dimensions lors <strong>de</strong> ce travail varie d’un GPUà l’autre. En effet, les GPU d’ATI <strong>de</strong>vrait avoir cette possibilité tant que notre GPU d’expérimentation,NVidia GeForce 6800, permettrait d’afficher les point sprites <strong>de</strong> seulement 63 × 63 pixels.Ainsi, nous <strong>la</strong>issons cette technique comme problème ouvert <strong>pour</strong> l’avenir. Notons que même si cettemétho<strong>de</strong> présente <strong>de</strong> gran<strong>de</strong>s similitu<strong>de</strong>s avec celle qui utilisait les opérations <strong>de</strong> Minkowski (cf. 5.4.2,page 118), elle permet <strong>de</strong> passer moins d’informations par une comman<strong>de</strong> graphique ; si cette <strong>de</strong>rnièreidée ne participait pas à l’augmentation signifiante du temps d’exécution (car on n’épargne qu’un nombretrès peu important <strong>de</strong> données lors du transfert <strong>de</strong> <strong>la</strong> comman<strong>de</strong> graphique par le bus liant le GPP avec leGPU), les point sprites <strong>pour</strong>raient se présenter comme une métho<strong>de</strong> idéale à l’écriture plus logique <strong>de</strong>sprogrammes morphologiques <strong>pour</strong> les GPU car <strong>la</strong> signification et <strong>la</strong> manière <strong>de</strong> fonctionner <strong>de</strong>s pointsprites sont très proches <strong>de</strong>s vecteurs définissant les éléments structurants.5.4.5 Description <strong>de</strong>s algorithmes <strong>pour</strong> les processeurs graphiques par le formalismefonctionnelDans cette section, nous voulons démontrer comment nous construisons <strong>de</strong>s algorithmes <strong>pour</strong> lesGPU et comment nous pouvons décrire un tel algorithme formellement utilisant les définitions mentionnéesdans <strong>la</strong> section 4.5, page 76, du chapitre 4 qui présentait le modèle formel du traitement en pipelinegraphique.Nous présentons d’abord l’algorithme 5.12, défini par <strong>la</strong> fonction gpuTexture, qui est trivial qui nefait qu’échantillonner une texture et n’applique aucune opération supplémentaire. Donc, cet algorithmeeffectue le rendu <strong>de</strong> <strong>la</strong> texture dans le framebuffer. Il prend <strong>de</strong>ux paramètres, cmd est <strong>la</strong> comman<strong>de</strong>graphique qui va décrire <strong>la</strong> zone <strong>pour</strong> le rendu et e est l’environnement du travail du GPU. Notons quecet environnement doit être initialisé <strong>pour</strong> ce travail ; il doit contenir une texture (spécifiée par son in<strong>de</strong>xtxi) et le framebuffer du GPU doit être également prêt à accueillir <strong>de</strong>s résultats (e.g. une zone <strong>de</strong> mémoire<strong>de</strong> texture connectée au framebuffer).121

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

Saved successfully!

Ooh no, something went wrong!