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...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<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 BRAMBORsndParcours p VsndParcours p AVfstfstFIG. 7.1 : Décomposition du kernel en <strong>de</strong>ux parties et en <strong>de</strong>ux parcours <strong>de</strong> l’image lors <strong>de</strong> l’évaluation <strong>de</strong>sfonctions distance chamfer. L’exemple d’élément structurant <strong>pour</strong> le 4-voisinage et <strong>la</strong> grille carrée.De plus, certaines architectures matérielles dédiées à <strong>la</strong> <strong>morphologie</strong> <strong>mathématique</strong> implémententces algorithmes en utilisant le stockage local <strong>de</strong> plusieurs lignes vidéo, on parle <strong>de</strong>s lignes à retard. Leséléments du voisinage local d’une partie du kernel décomposé est extrait à partir <strong>de</strong> ces lignes par <strong>de</strong>smécanismes standards <strong>de</strong> l’extraction du voisinage.Ayant à disposition <strong>de</strong>s architectures avec les capacités SIMD, nous nous <strong>de</strong>mandons comment profiterdu parallélisme <strong>de</strong> données <strong>pour</strong> ces traitements. Et nous nous apercevons que le fait d’utiliser lesparcours vidéo et anti-vidéo, qui étaient présentés comme avantageux <strong>pour</strong> le traitement à l’échelle <strong>de</strong>spixels, <strong>de</strong>vient gênant <strong>pour</strong> les traitements à l’échelles <strong>de</strong>s vecteurs paquetés. Il est, en effet, extrêmementcoûteux d’effectuer <strong>la</strong> propagation d’une valeur élément par élément à l’intérieur d’un vecteur paqueté,surtout à cause du non-support d’un tel traitement par les jeux d’instructions multimédia 1 .Pourtant, le traitement à l’échelle <strong>de</strong>s vecteurs paquetés peut utiliser <strong>la</strong> force du calcul SIMD. C’est<strong>pour</strong>quoi nous n’allons pas utiliser le parcours vidéo ou anti-vidéo directement mais nous les diviseronsen quatre phases en total. Dans chacune <strong>de</strong>s phases, nous allons utiliser une direction <strong>de</strong> propagationdifférente et nous allons travailler à l’échelle <strong>de</strong>s vecteurs paquetés. La figure 7.2 illustre cette situation.Nous pouvons y percevoir <strong>la</strong> différence entre le traitement à l’échelle <strong>de</strong>s éléments <strong>de</strong> base, q.v.fig. 7.2(a), et le traitement à l’échelle <strong>de</strong>s vecteurs paquetés, q.v. fig. 7.2(b). La <strong>de</strong>rnière figure montreégalement <strong>de</strong> quelle manière on regroupe les éléments <strong>de</strong> l’image dans les vecteurs paquetés. Notonsque l’axe <strong>de</strong> vectorisation est, dans les quatre phases, perpendicu<strong>la</strong>ire au sens du parcours. Le kernel ducalcul est également décomposé en quatre parties, chacune d’elles à utiliser dans une phase différente.La formule suivanteparcours ar = p D ◦ p C ◦ p B ◦ p A $ ardécrit formellement ce procédé. Notons que l’ordre d’application <strong>de</strong> ces phases, comme présenté par <strong>la</strong>formule précé<strong>de</strong>nte, n’est qu’une possibilité parmi d’autres. Il existe, en effet, quatre manières d’ordonnerles phases et nous pouvons les utiliser dans les algorithmes ayant <strong>la</strong> même structure <strong>de</strong> fonctionnementque <strong>la</strong> fonction distance :parcours ar = (p D ◦ p C ) ◦ (p B ◦ p A ) $ ar= (p D ◦ p C ) ◦ (p A ◦ p B ) $ ar= (p C ◦ p D ) ◦ (p B ◦ p A ) $ ar= (p D ◦ p C ) ◦ (p A ◦ p B ) $ arLa problématique <strong>de</strong> <strong>la</strong> vectorisation a déjà été discutée dans <strong>la</strong> section dédiée au paquetage et dépaquetage<strong>de</strong>s données (cf. 4.4.3, page 68). En pratique, l’axe <strong>de</strong> vectorisation est choisi comme i<strong>de</strong>ntiqueà celui <strong>de</strong> stockage <strong>de</strong>s données dans <strong>la</strong> mémoire. Ce qui veut dire que <strong>de</strong>ux (p A et p D ) <strong>de</strong>s quatre phases<strong>de</strong> <strong>la</strong> propagation SIMD sont applicables directement comme présenté ci-<strong>de</strong>ssus. Pour pouvoir appliquerl’approche SIMD dans les <strong>de</strong>ux phases restantes (p B et p C ), nous <strong>de</strong>vons faire appel aux techniques <strong>de</strong>1Nous nous basons sur les jeux d’instructions que nous avons pu consulter – Intel IA-32 (MMX, SSE, SSE2, SSE3) etSuperH SHmedia148

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

Saved successfully!

Ooh no, something went wrong!