• Aucun résultat trouvé

2.5 Structure segment

2.5.3 Am´ elioration de l’architecture HGW

La modification de l’algorithme HGW que nous proposons [24] est motiv´ee par le fait de pouvoir traiter des images de grandes tailles sans avoir `a stocker en entier la ligne `a ´

eroder/dilater. Ceci permet pour des architectures flots de donn´ees de retirer les m´emoires de lignes. En effet, le principal d´efaut de l’approche standard est li´e au fait que les propa- gations r´ealisant le calcul de g et h doivent ˆetre faite dans un sens oppos´e ce qui implique d’avoir connaissance de la ligne en entier ou de la m´emoriser compl`etement.

2.5.3.1 Principe de fonctionnement

La figure 2.59 montre `a quels instants, pour un ´el´ement structurant k = 7, sont r´eini- tialis´es les propagations. Les pixels repr´esent´es en noir symbolisent les pixels r´eintroduits (provenant de la ligne originale) et les gris clair les valeurs propag´ees.

Un bloc est d´efini comme ´etant un groupe de pixels entre deux insertions de pixels ori- ginaux, la propagation au sein d’un bloc est ind´ependante de celle des autres. Par exemple, dans la figure 2.59, les pixels de g [A0, A6] forment un bloc. On remarque dans le calcul de h que si une rotation centr´ee des blocs est r´ealis´ee avant propagation, les pixels origi- naux r´eintroduits dans g et h le sont aux mˆemes indices. Cette rotation avant propagation, produisant le tableau f0, supprime la n´ecessit´e d’effectuer un passage dans le sens vid´eo inverse. Un exemple de rotation des blocs de f produisant f0 avant la propagation de h0 est pr´esent´e en figure 2.60. Il est bien sˆur n´ecessaire apr`es propagation de reconstruire h `a partir de h0 en retournant les blocs de ce dernier.

L’architecture fonctionnelle de la mise en œuvre de l’algorithme HGW modifi´e est pro- pos´ee en figure 2.61. Elle permet donc de supprimer la n´ecessit´e d’une propagation dans le sens indirect et permettra d’´economiser une importante quantit´e de m´emoire.

CHAPITRE 2. PROCESSEURS DE VOISINAGE FLOTS DE DONN ´EES

Sens de parcours pour le calcul de g

Sens de parcours pour le calcul de h

Fig. 2.59: Instants des initialisations de g et h avec f dans le cadre de l’algorithme HGW

Fig. 2.60: Rotation des blocs de taille 7 dans le cadre de l’algorithme HGW modifi´e

2.5.3.2 Architecture flot de donn´ees

Plusieurs architectures flot de donn´ees existent pour r´ealiser des ´erosions/dilatations, mais les m´emoires utilis´ees n’ont pas une taille ind´ependante de la taille de l’image consi- d´er´ee. L’architecture pr´esent´ee ici reprend l’approche HGW modifi´ee afin de produire une architecture o`u la seule d´ependance, en terme de taille des m´emoires, est relative `a la taille maximale de l’´el´ement structurant segment consid´er´e.

L’architecture r´ealis´ee est compl`etement pipeline et produit un pixel r´esultat par cycle, sans interruption entre le traitement de deux lignes (de mˆeme taille) d’une image. Toutes les remarques cit´ees pr´ec´edemment relatives `a l’approche HGW ont ´et´e prises en compte afin d’obtenir une unit´e mat´erielle r´ealisant des ´erosions/dilatations sans erreurs sur les bords.

L’unit´e de propagation doit propager les pixels dans le sens vid´eo en consid´erant la taille k de l’´el´ement structurant, mais aussi la taille M de la ligne. La figure 2.62 pr´esente une vue simplifi´ee de l’unit´e. Elle est compos´ee d’un compteur modulo k et d’un compteur de pixels modulo M . Ceux-ci commandent, via un comparateur, le multiplexeur permettant la r´einitialisation de la propagation lorsqu’un nouveau bloc ou une nouvelle ligne se pr´esentent.

Fig. 2.62: Sch´ema simplifi´e de l’unit´e de propagation de l’architecture HGW modifi´ee produisant des dilatations de taille k sur des lignes de taille M

C’est sur l’unit´e de retournement des blocs qu’est bas´ee la modification de l’algorithme HGW. Elle est capable de retourner des blocs de donn´ees de fa¸con pipeline avec une cadence de un pixel par cycle, c’est-`a-dire sans temps mort. Le retournement des blocs fonctionne de la mani`ere suivante : pendant qu’un bloc n est ´ecrit dans la m´emoire, le bloc n − 1 est lu dans le sens inverse. Ce mode de fonctionnement implique l’utilisation d’une m´emoire double port avec d’un cˆot´e une ´ecriture avec, par exemple, un d´ecompteur et de l’autre une lecture avec un compteur.

Un probl`eme subsiste lorsque M n’est pas un multiple de k (la taille de la ligne n’est pas un multiple de la taille de l’´el´ement structurant), le dernier bloc ´etant plus court, la lecture de l’avant-dernier bloc n’est pas compl`ete. Il faut g´erer ce cas en ´ecrivant dans un

CHAPITRE 2. PROCESSEURS DE VOISINAGE FLOTS DE DONN ´EES

autre ordre le dernier bloc pour qu’il puisse sortir lorsque la prochaine ligne commence. La figure 2.63 pr´esente un exemple de retournement de blocs sur deux lignes.

La gestion de la m´emoire hors du dernier bloc est r´ealis´ee de sorte que lorsqu’on ´ecrit `

a une adresse 2n+ x (avec x, k < 2n) on lit les donn´ees `a l’adresse k − x. `A l’arriv´ee d’un

nouveau bloc, il suffit de faire le contraire, c’est-`a-dire ´ecrire en x et lire en 2n+ k − x. Lorsque l’on arrive en bout de ligne, il faut ´ecrire les donn´ees avec des adresses d´e- croissantes. Au d´ebut de la nouvelle ligne, on reprend l’´ecriture de fa¸con standard, mais les derni`eres donn´ees de la ligne pr´ec´edente doivent ˆetre lues juste avant l’´ecriture puis- qu’´ecrites dans le mˆeme espace d’adresse. La m´emoire double port `a lecture prioritaire garantit que lorsqu’une adresse est pr´esent´ee sur le port, il est possible de r´ecup´erer la valeur index´ee avant de l’´ecraser.

Fig. 2.63: Etat des m´´ emoires de retournement de bloc de l’architecture HGW

Sur la figure 2.64 est pr´esent´ee une vue simplifi´ee du syst`eme de retournement de blocs. On retrouve les compteurs de pixels modulo k ainsi que l’´electronique de gestion des bancs

m´emoires. Les multiplexeurs permettent, lorsque le dernier bloc se pr´esente, de changer la logique d’´ecriture des pixels telle que pr´esent´ee aux ´etapes 2 et 3 de la figure 2.64.

Fig. 2.64: Sch´ema fonctionnel de l’unit´e de retournement de blocs de l’architecture HGW

La latence, engendr´ee par la succession de deux unit´es de retournement, correspond `a deux blocs de taille k. Afin de pr´esenter les pixels de g et h de fa¸con synchronis´ee, il est n´ecessaire de mettre en place une ligne `a retard en sortie de la propagation produisant g. Sachant que dans le calcul de r, on acc`ede `a g(x + k2) et `a h(x − k2), et que les pixels provenant de h arrivent deux blocs en avance par rapport `a ceux de g, la taille de la ligne `

a retard doit avoir une taille ´equivalente `a un bloc, soit k ´el´ements.

La figure 2.65 montre comment est retard´e g pour que les sorties des unit´es produisant g et h soient correctement synchronis´ees.

Fig. 2.65: Synchronisation des donn´ees de l’architectrure HGW modifi´ee

Plusieurs possibilit´es existent quant `a la r´ealisation de cette unit´e. On peut utiliser une m´emoire double port avec un port en ´ecriture `a une adresse x et un port en lecture `a une adresse x + k. On peut ´egalement utiliser une m´emoire simple port `a lecture prioritaire avec une gestion d’adresse modulo k. Il est ´egalement possible, pour une taille maximale d’´el´ement structurant pas trop importante, d’utiliser une m´emoire distribu´ee sur le circuit. Ces possibilit´es d´ependent ´evidemment du circuit vis´e (FPGA, ASIC, ...).

Les deux propagations r´ealis´ees, il est maintenant n´ecessaire de fusionner les pixels afin de produire le r´esultat de la dilatation. Cette op´eration suppose que les sorties pixels g

CHAPITRE 2. PROCESSEURS DE VOISINAGE FLOTS DE DONN ´EES

et h soient synchronis´ees. Cette unit´e dispose d’un compteur modulo M pour mettre en place la bonne politique de gestion des bords `a chaque instant. Elle prend en entr´ee la taille de la ligne, le nombre de pixels `a propager dans le padding et la taille de l’´el´ement structurant. La figure 2.66 pr´esente le sch´ema simplifi´e de cette unit´e. Le comparateur “Detection fin de ligne” indique lorsqu’il ne faut plus prendre en compte la sortie de g pour la ligne en cours (x + k2 ≥ M − 1 avec x l’indice du pixel). Le comparateur “D´etection padding propag´e” indique jusqu’`a quel indice doit ˆetre propag´e le dernier maximum de g (lorsque M ≤ x +k2 < M + PSA). Le comparateur “D´etection d´ebut de ligne” sert `a ne pas tenir compte de h au d´ebut d’une ligne (c’est `a dire lorsque x −k2 < 0).

Fig. 2.66: Sch´ema simplifi´e de l’unit´e de fusion de l’architecture HGW r´ealisant une dilatation

La latence de cette architecture est proportionnelle `a la taille de l’´el´ement structurant, le temps de traitement d’une image peut donc varier quelque peu. Cette latence s’exprime de la fa¸con suivante : L = 3 · k2 · Tclk avec Tclk correspondant `a la p´eriode en seconde du

syst`eme et k la taille de l’´el´ement structurant segment.

L’architecture propos´ee permet de disposer des premiers pixels r´esultats avant que la premi`ere ligne n’ait ´et´e totalement envoy´ee, contrairement `a la mise en œuvre mat´erielle de l’algorithme de Lemonnier ou mˆeme lors de l’utilisation de processeurs de voisinage stan- dard. Cette r´eduction de la latence est importante lors de la cascade d’un grand nombre d’op´erateurs mais ´egalement lorsque plusieurs passes dans le mˆeme syst`eme sont n´eces- saires.

Si des a priori sur la taille des ´el´ements structurants sont connus, il serait tr`es int´eressant de r´eduire la taille des m´emoires afin de diminuer fortement la taille du circuit. `A titre d’exemple le circuit `a une surface de 260000 portes avec des ESS de taille 1024, mais avec des ESS de taille 128, la surface du circuit tombe `a 38000 portes. La figure 2.67 montre l’´evolution du nombre de portes en fonction de la taille maximale k en consid´erant une taille de ligne de 2048 pixels. On remarque que la solution propos´ee est pertinente, car la surface du circuit est moindre pour des ´el´ements structurants strictement inf´erieurs `a la taille d’une demi-ligne.

La surface occup´ee par la m´emoire dans ces syst`emes est plus importante que la logique. C’est la raison pour laquelle une architecture capable de se dispenser de coˆuteuses m´emoires de lignes est pertinente. Il est possible avec ce syst`eme d’augmenter `a moindres coˆuts la taille des images pouvant ˆetre trait´ees tout en ayant un nombre de portes largement

Fig. 2.67: Nombre de portes en fonction du k maximal

inf´erieur aux architectures actuelles, pour peu qu’on limite la taille maximale de l’´el´ement structurant au quart de la taille de la ligne.