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 BRAMBORFonction mkV <strong>de</strong> création d’un vertexLa fonction mkV crée un vertex à partir <strong>de</strong> ses composantes. La fonction (, , ) prend trois paramètres etcrée un triplet.mkV :: P → [ ( CI , C ) ] → [ ( TXI , TXP) ] → VmkV p cs xps = ( ,, ) p cs xpsFonction mkF <strong>de</strong> création d’un fragmentLa fonction mkF crée un fragment à partir <strong>de</strong> ses composantes. La fonction (, , , ) prend quatre paramètreset crée un quadruplet.mkF :: P → Dpth → [ ( CI , C ) ] → [ ( TXI , TXP) ] → FmkF p d cs xps = ( ,,, ) p d cs xpsFonction mkEnv <strong>de</strong> création <strong>de</strong> l’environnement du pipeline graphiqueLa fonction mkEnv crée, à partir d’un framebuffer FB et d’une liste <strong>de</strong>s textures TX , l’environnementdu travail Env du GPU :mkEnv :: FB → [ TX ] → EnvmkEnv fb txs = ( , ) fb txsFonctions getTXs, getFB <strong>de</strong> manipu<strong>la</strong>tion <strong>de</strong> l’environnementLa fonction getTXs retourne <strong>la</strong> liste <strong>de</strong>s textures [TX] à partir <strong>de</strong> l’environnement Env du pipeline graphique:getTXs :: Env → [ TX ]getTXs (_, txs) = txsLa fonction getFB retourne le framebuffer FB à partir <strong>de</strong> l’environnement Env :getFB :: Env → FBgetFB ( fb , _) = fbDimension <strong>de</strong>s arrays, fonctions dimsAr1D et dimsAr2DLa fonction dimsAr1D retourne <strong>la</strong> taille d’un vecteur PVec ou d’un array 1D :dimsAr1D :: Ar I α → IdimsAr1D ar = q−p+1where (p,q) = bounds $ ar ;La fonction dimsAr2D retourne un tuple correspondant aux dimensions d’un array 2D dans <strong>la</strong> premièreet <strong>de</strong>uxième coordonnée, respectivement :dimsAr2D :: Ar ( I , I ) α → ( I , I )dimsAr2D ar = (r−p+1, s−q+1)where ( (p,q), (r ,s) ) = bounds $ ar ;Tests SIMD et dép<strong>la</strong>cement conditionnel SIMDPour pouvoir assurer l’évaluation <strong>de</strong>s expressions conditionnelles en SIMD, nous définissons <strong>la</strong> fonction<strong>de</strong> test testSIMD qui applique <strong>la</strong> fonction cnd du test logique entre chaque élément <strong>de</strong>s <strong>de</strong>ux vecteurspaquetés pv 1 et pv 2 . Le résultat <strong>de</strong> cette fonction est un masque représenté par un vecteur paquetédont les éléments sont les valeurs booléennes et qui contiennent soit <strong>la</strong> valeur True, soit <strong>la</strong> valeur Falsedans le cas où le test a réussi ou échoué, respectivement.202

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

Saved successfully!

Ooh no, something went wrong!