• Aucun résultat trouvé

Le modèle des réseaux associatifs

devant être connu au préalable, l’état des connexions locales du graphe doit donc être stocké dans chaque pixel de la région. La structure reconfigurable permettant d’établir une connexion d’un voisin vers un autre et permettant le stockage de son état est appelée connexion programmable. Les connexions programmables peuvent avoir différentes formes qui seront détaillées à la section 4.4.

L’utilisation des graphes peut se faire de différentes manières en traitement d’image, selon le type de graphe considéré. Les trois types de graphes les plus utilisés sont les suivants :

– Graphe fortement connexe : pour toute paire de noeuds du graphe, il existe une chemin permettant d’aller d’un noeud à l’autre dans le graphe, et ce dans les deux sens (fig. 4.2).

– Graphe symétrique : les connexions existant sont toutes bidirectionnelles (fig. 4.1). Un graphe symétrique est fortement connexe (la réciproque n’est pas vraie).

– Arbre couvrant : graphe orienté en direction d’un point terminal appelé racine, dans lequel tout processeur élémentaire a un et un seul antécédent connecté par une connexion unidirectionnelle, à l’exception du point racine qui n’en a pas (fig. 4.3).

L’utilisation de ces graphes est définie dans le modèle des réseaux associatifs pré- senté à la section suivante.

4.3

Le modèle des réseaux associatifs

Le modèle des réseaux associatifs, introduit par Alain Mérigot à l’université d’Orsay [Mer97] est défini et formalisé dans les thèses de Siamak Mohammadi [Moh96] et Bertrand Ducourthial [Duc00]. Dans cette section, nous rappelons ses éléments essentiels et sa philosophie sans présenter à nouveau son formalisme. Le modèle des réseaux associatifs permet de définir des régions, ensembles de pro- cesseurs élémentaires de taille et de forme arbitraire afin de leur appliquer des pri- mitives régionales appelées associations. Ces ensembles de processeurs forment des composantes connexes qui sont définies par un graphe dont les noeuds sont connec- tés directement ou indirectement par des arcs. Ces graphes sont des sous-graphes du graphe d’interconnexion physique des processeurs, ils sont définis localement par l’état des connexions programmables entre un processeur local et les proces- seurs voisins. Les particularités du modèle des réseaux associatifs sont les suivantes : – Les primitives régionales ne sont appliquées qu’à des processeurs faisant par-

tie d’une même composante connexe (région).

– Les données issues de chaque processeur sont combinées grâce à des opéra- teurs logiques ou arithmétiques associatifs, ce qui permet de garantir l’in- dépendance du résultat quelque soit l’ordre dans lequel sont traitées les va- riables. Grâce au réseau d’interconnexion, il est possible d’effectuer des opé-

Fig. 4.1 – Graphe symétrique Fig. 4.2 – Graphe fortement connexe

Fig. 4.3 – Arbre couvrant rations régionales distribuées sur les données.

Dans le modèle des réseaux associatifs, deux types principaux d’associations sont définis :

– association lorsqu’elle est exécutée sur un graphe symétrique (les connexions entre paires de processeurs sont bidirectionnelles, cf fig.4.4)

– prefix-association lorsqu’elle est exécutée sur un arbre couvrant (cf fig.4.5).

Fig. 4.4 – Example d’association utilisant l’opérateur max (les données des pixels sont en noir, le résultat de l’association en rouge)

4.3. Le modèle des réseaux associatifs

Fig. 4.5 – Example de prefix-association utilisant l’opérateur addition (les données des pixels sont en noir, le résultat de la prefix-association en rouge)

Ces deux types de primitives régionales sont fondamentalement différentes, par la structure des graphes sur lesquels elles reposent et par les opérateurs locaux qu’elles utilisent.

Une association, qu’elle soit prefix ou non, est associée à un opérateur. Elle re- tourne dans chaque processeur de la région une valeur correspondant à l’itération de l’opérateur sur chacun des ancêtres du processeur. Les an-

cêtres sont définis comme l’ensemble des processeurs reliés au processeur considéré

par un chemin de connexion orienté de l’ancêtre vers le processeur considéré. – Dans le cas d’une association non prefix, le graphe des connexions est bidi-

rectionnel entre chaque paire de processeurs adjacents. Par récurrence, toute paire de processeur de la région est connectée par un réseau bidirectionnel. Ainsi l’ensemble des ancêtres d’un processeur de la région est l’ensemble des processeurs de cette région. Le résultat de l’association, qui ne dépend que des ancêtres et de l’opérateur considéré, est nécessairement le même dans chacun des pixels puisque tous les pixels ont le même ensemble d’ancêtres. Une association permet donc d’avoir un résultat identique sur chacun des processeurs de la région considérée.

En pratique, l’implantation d’une primitive association n’est cependant pas définie comme dans le modèle des réseaux associatifs. Celui-ci spécifie que le résultat est obtenu par itération de l’opérateur sur les données de chacun des processeurs élémentaires (une fois et une seule sur chaque donnée). Cependant une telle implantation est contraignante car elle nécessiterait non seulement de déplacer les données à travers chaque processeur une fois et une seule en finissant par un processeur donné (ce que l’on peut obtenir avec une structure d’arbre couvrant), mais surtout de faire cela pour chaque processeur. Compte tenu du résultat théorique que l’on doit obtenir, à savoir le même résultat dans chacun des processeurs, la solution utilisée en pratique est de limiter le champ des opérateurs utilisables dans les associations aux opérateurs idem- potents, et de laisser le réseau se stabiliser seul. L’association réalisée dans ce cadre d’application est alors appelée direct-association [Duc00]. Le résultat obtenu est le même que celui que l’on pourrait obtenir en utilisant le modèle théorique, mais la contrainte très forte de ne passer dans chaque processeur qu’une seule fois n’est plus présente.

structure de type arbre couvrant, les ancêtres d’un processeur sont différents d’un processeur à l’autre, de fait le résultat de la prefix-association peut être différent d’un processeur à l’autre dans l’arbre couvrant.

Outre le fait que le résultat dépende du processeur considéré, un des fonde- ments de la prefix-association est l’utilisation de la structure d’arbre couvrant. Celle-ci permet en effet d’obtenir dans la racine le résultat de l’association non prefix sur la région couverte par l’arbre. En effet, l’opérateur associatif sera appliqué une fois et une seule en chacun des pixels de la région en par- tant des feuilles (processeurs situés à l’extrémité du graphe) vers la racine de l’arbre.

La prefix-association sera donc utilisée pour implanter deux types de primi- tives :

1. les associations avec des opérateurs non idempotents, le résultat devant être redistribué à chaque pixel de la région ensuite (grace à un opéra- teur max par exemple). La primitive fondamentale de ce type la plus importante pour le traitement d’image est la somme régionale.

2. les prefix-associations pour lesquelles le résultat n’est pas le même dans chacun des processeurs, et qui sont bien moins utiles que la primitive décrite précédemment.

Nous appelons modèle limité des réseaux associatifs la limitation du modèle des ré- seaux associatifs aux primitives de direct-association et de prefix-association. Dans la suite de cette thèse, nous n’envisagerons que des implantations asynchrones de la direct-association et de la prefix-association. Il est possible d’envisager des implan- tations synchrones de ces primitives (car celles-ci n’ont besoin que de la structure de graphe). Toutefois, ces implantations synchrones sont inefficaces d’un point de vue énergétique (les opérateurs fonctionnent en permanence alors qu’ils ne sont utiles uniquement lorsque des données sont présentes). Le passage à des opérateurs combinatoires (sans mémorisation asynchrone) ou asynchrones permet de résoudre ce problème.