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 BRAMBOR4.5. MODÈLE FORMEL DU TRAITEMENT EN PIPELINE GRAPHIQUEIl existe plusieurs types <strong>de</strong> données qui sont utilisés par les GPU mo<strong>de</strong>rnes <strong>pour</strong> le traitement etpeuvent varier le long du calcul, s’agissant <strong>de</strong> nombres entiers ou <strong>de</strong> nombres à une virgule flottanteà diverses précisions. Ainsi, il est possible d’avoir les données stockées dans les textures en nombresentiers mais d’effectuer le calcul dans le pipeline graphique en virgule flottante.Pour pouvoir rester facilement compréhensible dans nos prochaines explications, nous n’allons paschercher à construire un modèle le plus complet possible <strong>pour</strong> le GPU, même si ce<strong>la</strong> <strong>pour</strong>rait être envisagé.Pour le stockage <strong>de</strong> données sur le GPU, nous allons utiliser un type <strong>de</strong> nombres entiers Int duHaskell. Nous appliquons cette approche sans perte d’utilité puisque les algorithmes que nous décrivonsemploient <strong>de</strong>s nombres entiers <strong>pour</strong> l’expression <strong>de</strong>s pixels dans les images. C’est également le cas <strong>pour</strong>les opérations morphologiques dans le domaine digital. Les types re<strong>la</strong>tives à l’in<strong>de</strong>xation seront <strong>de</strong>s types<strong>de</strong> nombres entiers, basés sur le type d’in<strong>de</strong>xation <strong>de</strong> base I que l’on a déjà défini dans 4.3.1.1.Un autre point est à remarquer. Même si les possibilités <strong>de</strong>s GPU actuels permettent aussi le travai<strong>la</strong>vec les données 3D en utilisant les textures 3D, nous ne travaillerons qu’avec les algorithmes travail<strong>la</strong>ntavec les images 2D. Nos données <strong>pour</strong>rons ainsi contenir plusieurs composantes par pixel mais ellesresteront <strong>de</strong> dimension 2. Ce<strong>la</strong> va nous conduire à <strong>de</strong>s définitions spécialisées <strong>pour</strong> 2 dimensions etsurtout à une in<strong>de</strong>xation par tuple (I, I).Pour donner une vue globale <strong>de</strong>s différents types que nous expliquons par <strong>la</strong> suite, nous présentons<strong>la</strong> table 4.1 qui récapitule leurs i<strong>de</strong>ntificateurs, désignation et définition.Type Désignation DéfinitionCElmnt Élément <strong>de</strong> couleur type CElmnt = IntC Vecteur <strong>de</strong> couleur type C = PVec I CElmntCI In<strong>de</strong>x <strong>de</strong> couleur type CI = IPos Coordonnée <strong>de</strong> position type Pos = IP Vecteur <strong>de</strong> position type P = PVec I PosDpth Profon<strong>de</strong>ur type Dpth = ITXB Bord <strong>de</strong> <strong>la</strong> texture type TXB = CTX Texture type TX = (Ar (I,I) C, [TXB])TXP Position dans <strong>la</strong> texture type TXP = (I,I)TXI In<strong>de</strong>x <strong>de</strong> texture type TXI = IShape Primitive <strong>de</strong> <strong>la</strong> géométrie data Shape = Rect | Line | PointV Vertex type V = (P, [(CI,C)], [(TXI, TXP)])F Fragment type F = (P, Dpth, [(CI,C)], [(TXI, TXP)])FBO Frame buffer object type FBO tfbo = Ar (I,I) tfboFB Frame buffer type FB = (Ar I (FBO C), [FBO Dpth])PX Pixel type PX = (P, Ar I C)Env Environnement type Env = (FB, [TX])Commands Comman<strong>de</strong>s graphiques type Commands = ([Shape],[V])TAB. 4.1 : Types <strong>de</strong> données <strong>pour</strong> les algorithmes utilisant le pipeline graphique et les GPU4.5.1.1 Types <strong>pour</strong> les couleursNous définissons <strong>de</strong>ux types <strong>pour</strong> <strong>la</strong> manipu<strong>la</strong>tion <strong>de</strong> <strong>la</strong> couleur sur les GPU. Le type CElmnt représenteune seule composante <strong>de</strong> <strong>la</strong> couleur et sera défini <strong>pour</strong> les besoins <strong>de</strong> cette thèse en utilisant le type<strong>de</strong> nombres entiers Int.type CElmnt = IntLe <strong>de</strong>uxième type que nous définissons ici, type C, représente <strong>la</strong> couleur <strong>de</strong> plusieurs composantesque nous percevons comme un vecteur. Dans notre approche, ce vecteur a son correspondant dans le77

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

Saved successfully!

Ooh no, something went wrong!