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 BRAMBOR3.4. MODÈLE STREAM DU CALCUL ET LES ARCHITECTURES ASSOCIÉES<strong>de</strong> leur construction. Tandis que DirectX est lié aux technologies <strong>de</strong> Microsoft, OpenGL est modu<strong>la</strong>blepar extensions où chaque fabricant <strong>de</strong>s architectures <strong>de</strong> traitement 3D peut exposer les fonctionnalités<strong>de</strong> son matériel par une extension propriétaire. La standardisation <strong>de</strong> <strong>la</strong> structure <strong>de</strong> base du OpenGLest effectuée par OpenGL Architectural Review Board, ARB, qui regroupe les équipes issues <strong>de</strong> grandsfabricants <strong>de</strong> solutions <strong>pour</strong> le graphisme. Les extensions du standard OpenGL qui ont été approuvées parARB mais qui n’étaient pas, <strong>pour</strong> différentes raisons, incluses au standard sont appelées ARB Extensionset exportent le plus souvent l’interface <strong>de</strong>s fonctionnalités <strong>de</strong>s GPU les plus récents.Les solutions logiciels basées sur OpenGL (ou Mesa) ont un grand avantage par rapport au DirectX– c’est leur facilité <strong>de</strong> portage vers une p<strong>la</strong>teforme <strong>de</strong> système d’exploitation différente. Nous avons utilisé<strong>pour</strong> nos expériences les <strong>de</strong>ux p<strong>la</strong>teformes <strong>pour</strong> finalement migrer totalement vers Mesa car nousvoulions gar<strong>de</strong>r <strong>la</strong> portabilité <strong>de</strong> nos solutions et effectuer <strong>de</strong>s tests comparatifs <strong>pour</strong> <strong>de</strong>s systèmes d’exploitationdifférents (Windows XP et une distribution <strong>de</strong> Linux).Un autre avantage d’OpenGL <strong>pour</strong>rait également être mentionné. C’est le fait que <strong>la</strong> plupart <strong>de</strong>s<strong>la</strong>ngages <strong>de</strong> script (e.g. Python, Haskell) ont <strong>la</strong> possibilité <strong>de</strong> programmation <strong>de</strong>s GPU via une bibliothèquecompatible avec OpenGL même si les fonctions qu’ils offrent n’incluent pas toujours les ARBExtension dont nous aurions besoin <strong>pour</strong> notre travail. Pour plus <strong>de</strong> détails sur ces interfaces, nous renvoyonsle lecteur à <strong>la</strong> littérature traitant d’OpenGL WNDS99, <strong>HAL</strong>04, Dal03, KBR03 et à <strong>la</strong> littérature traitant <strong>de</strong>DirectX Gra03, Mig04 .3.4.5.5 Langages d’ombrage <strong>pour</strong> le temps réel - Cg, GLSL, HLSLComme les processeurs graphiques ont évolué à partir <strong>de</strong>s pipelines fixes ou configurables vers lespipelines programmables, les <strong>la</strong>ngages <strong>de</strong> haut niveau <strong>de</strong>stinés aux blocs programmables à l’intérieurd’un GPU ont fait leur apparition. On les appelle les <strong>la</strong>ngages d’ombrage <strong>pour</strong> le temps réel (angl.Shading <strong>la</strong>nguages), avec une spécification du temps réel dans leur nom <strong>pour</strong> les distinguer <strong>de</strong>s <strong>la</strong>ngagesd’ombrage (c<strong>la</strong>ssiques) <strong>de</strong>stinés au rendu <strong>de</strong>s images et <strong>de</strong>s scènes complexes et où l’exigence du tempsréel ne figure pas (e.g. Ren<strong>de</strong>rMan <strong>de</strong> Pixar Animation Studios). Leur nom ombrage (angl. sha<strong>de</strong>rs) estdérivé du fait que le traitement <strong>de</strong>s vertex et <strong>de</strong>s fragments est utilisé <strong>pour</strong> le calcul <strong>de</strong>s ombres ou <strong>de</strong>l’illumination locale dans <strong>la</strong> synthèse <strong>de</strong>s images.Le premier <strong>de</strong>s <strong>la</strong>ngages d’ombrage <strong>pour</strong> le temps réel que nous mentionnons est nommé Cg FK03 . Sonnom est une abréviation <strong>de</strong> C for graphics et il s’agit d’un <strong>la</strong>ngage développé par NVidia. Il s’incorporeà travers <strong>de</strong>s bibliothèques fournies par le fabricant dans les <strong>de</strong>ux API présentés. Ainsi, nous pouvonsl’utiliser avec le DirectX et aussi avec OpenGL. Le <strong>de</strong>uxième <strong>la</strong>ngage d’ombrage est nommé HLSL(High Level Shading Language) <strong>de</strong> Microsoft et vient <strong>de</strong> compléter DirectX. Le troisième est nomméGLSL (OpenGL Shading Language) et complète OpenGL via les ARB Extensions.Tous les trois sont <strong>la</strong>rgement inspirés du <strong>la</strong>ngage C, dont ils ont <strong>la</strong> syntaxe, mais ils ont défini leurspropres types et i<strong>de</strong>ntificateurs qui reflètent les types utilisés dans le traitement sur les GPU. Ainsi,il n’est pas difficile <strong>pour</strong> un programmeur connaissant le <strong>la</strong>ngage C d’adopter ces <strong>la</strong>ngages. Pour unecomparaison <strong>de</strong>s fonctionnalités <strong>de</strong> ces trois <strong>la</strong>ngages, nous renvoyons le lecteur à un article Lov05 .Ces <strong>la</strong>ngages nous servent comme base <strong>pour</strong> le traitement à l’intérieur du GPU. La gran<strong>de</strong> partie <strong>de</strong>l’algorithme <strong>de</strong> traitement d’images sur les GPU est implémentée par ces <strong>la</strong>ngages car c’est le GPU quiassure l’exécution tant que le programme d’application, exécuté dans le GPP, ne fait que coordonner letravail du GPU, assure l’envoi <strong>de</strong>s comman<strong>de</strong>s graphiques et se charge <strong>de</strong> <strong>la</strong> lecture <strong>de</strong>s résultats.3.4.6 Calcul sur les flux <strong>de</strong> données avec les GPU3.4.6.1 GPGPUNotre manière <strong>de</strong> travailler entre dans <strong>la</strong> catégorie du calcul général sur les processeurs graphiquesqui s’est différenciée du calcul c<strong>la</strong>ssique <strong>de</strong> rendu d’images 3D et constitue aujourd’hui une branche55

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

Saved successfully!

Ooh no, something went wrong!