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 BRAMBOR7.5. NOTES SUR L’IMPLÉMENTATION, RÉSULTATS EXPÉRIMENTAUXau résultat <strong>de</strong> <strong>la</strong> propagation verticale précé<strong>de</strong>nte et nous l’utilisons en tant que valeur initiale <strong>pour</strong> <strong>la</strong>propagation (au bord <strong>de</strong> l’image, nous utiliserons le schéma <strong>de</strong> propagation décrit par <strong>la</strong> fonction mfoldl1qui ne travaille pas avec un tel élément).Après avoir terminé <strong>la</strong> propagation, nous gardons <strong>la</strong> valeur du <strong>de</strong>rnier élément B N du stream résultantdans une mémoire temporaire V 2 <strong>pour</strong> pouvoir <strong>la</strong> réutiliser lors <strong>de</strong> <strong>la</strong> prochaine propagation dans <strong>la</strong> mêmedirection.Sur le stream B i , nous appliquons <strong>la</strong> transposition par diagonale, exprimée par le kernel du calcultr2DDiagNxPVecNbf (cf. l’algorithme 6.4) qui utilise, rappelons-le, les fonctions shuffle <strong>pour</strong> exécuter<strong>la</strong> transposition en Nlog 2 N opérations. Le stream résultat C i <strong>de</strong> cette transposition est mis en re<strong>la</strong>tionavec <strong>la</strong> valeur résultante H <strong>de</strong> <strong>la</strong> propagation horizontale 1 précé<strong>de</strong>nte <strong>pour</strong> ensuite appliquer une<strong>de</strong>uxième phase <strong>de</strong> propagation verticale <strong>de</strong>s valeurs à l’ai<strong>de</strong> <strong>de</strong> <strong>la</strong> fonction mfoldl (les mêmes suppositionsse mettent en p<strong>la</strong>ce <strong>pour</strong> le travail sur les bords <strong>de</strong> l’image).Les résultats <strong>de</strong> cette propagation C i sont les résultat semi-finaux. Nous prenons <strong>la</strong> valeur du <strong>de</strong>rnierélément D N et nous <strong>la</strong> sauvegardons comme H 2 <strong>pour</strong> l’évaluation suivante du macro bloc voisin. Lesvaleurs <strong>de</strong> ce stream résultant sont écrites dans <strong>la</strong> mémoire. Ainsi, nous avons obtenu le résultat <strong>de</strong> <strong>de</strong>uxphases <strong>de</strong> propagation au niveau du macro bloc.Macro bloc d’entréeE 1E 2E 3 E 1E 2E 3E 1E 2E 3 E 1E 2E 3InterconnexionsÉlément exécutifValeur intermédiairestockée localementValeur intermédiaire transmisepar le réseaux d’interconnexionsMacro bloc résultantItération 0 Itération 1Itération 2 Itération 3FIG. 7.11 : Propagation à l’échelle <strong>de</strong>s macro blocs lors du calcul avec plusieurs unités exécutives. Une <strong>de</strong>svaleurs intermédiaires est stockée localement dans l’unité, <strong>la</strong> <strong>de</strong>uxième est transmise par le réseau d’interconnexionà l’unité suivante.Il faut noter que l’implémentation physique <strong>de</strong> cette approche <strong>de</strong>man<strong>de</strong> les connaissance <strong>de</strong> l’architecturecible car les valeurs intermédiaires <strong>de</strong> <strong>la</strong> propagation doivent être gérées différemment sur lesarchitectures à un seul fil d’exécution où nous avons besoin d’une mémoire temporaire <strong>pour</strong> les sauvegar<strong>de</strong>rmais qu’elles peuvent être passées à l’unité d’exécution suivante (e.g. sur les architectures àplusieurs fils d’exécution), comme l’illustre <strong>la</strong> fig. 7.11. Si nous n’avons pas d’architecture capable <strong>de</strong>travailler dans une telle configuration, l’utilisation <strong>de</strong> <strong>la</strong> mémoire temporaire <strong>pour</strong> stocker les résultatsintermédiaires <strong>de</strong> <strong>la</strong> propagation doit être envisagée.7.5 Notes sur l’implémentation, résultats expérimentauxLes implémentations <strong>de</strong> <strong>la</strong> fonction distance et <strong>de</strong>s nivellements que nous avons conçues ont été initialement<strong>de</strong>stinées au processeur SuperH SH-5 qui bénéficie <strong>de</strong> 64 registres <strong>de</strong> 64 bits. Ces implémentationsont été incluses dans l’outil MorphoMedia que nous avons développé afin d’obtenir l’indépendance1Après avoir effectué <strong>la</strong> transposition par diagonale, <strong>la</strong> propagation est effectuée, à l’échelle du macro bloc, verticalementmais elle correspond à une propagation horizontale dans l’image159

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

Saved successfully!

Ooh no, something went wrong!