Exploration d’architectures génériques sur FPGA pour des algorithmes d’imagerie multispectrale

Le nombre de transistors sur puce croissant de manière exponentielle a permis d’augmenter de manière considérable la complexité des systèmes embarqués disponibles. Cette complexité est accrue par l’augmentation de la diversité des composants intégrés, diversité qui devient de plus en plus importante. Les progrès significatifs en termes de conception de circuit permettent dorénavant d’intégrer des composants analogiques ou d’autres types (par exemple mécanique) avec des transistors CMOS. Les performances des circuits ne se limitent plus à la miniaturisation mais à la diversification des composants. Cette diversification est prise en compte dans la loi « More than Moore », loi remplaçant la loi de Moore présentée par l’ITRS et présentée en Figure 1-1[1][2].Cette loi montre que les systèmes embarqués deviennent de plus en plus complexes et hétérogènes. Le nombre de blocs s’accroit ainsi que leurs diversités, ce qui devient une difficulté majeure dans la spécification et conception de ces systèmes. Cette difficulté va s’accroitre de manière significative avec l’augmentation du nombre et de la complexité des cœurs d’un système embarqué.

Les spécifications de la conception de systèmes sur puce (appelé SoC pour System On Chip) ainsi que leur validation sont à l’heure actuelle des challenges importants. L’espace de conception des architectures est très vaste, trop vaste pour qu’un concepteur système puisse définir des architectures adaptées parmi tous les composants de calcul, de mémorisation, de communication et de contrôle pour un ou des algorithmes de traitement du signal et de l’image. Le choix de l’architecture doit se faire dès les premières étapes du flot de conception afin de répondre aux contraintes de « Time To Market ». En effet, les premiers outils de codesign [3][4][5][6], apparus dans les années 90, ont montré l’impossibilité d’un choix efficace des composants d’une architecture dans les dernières étapes du cycle de conception.

La simulation des systèmes multi composants hétérogènes devient également inadaptée car trop coûteuse en temps pour des simulations post-placement routage et trop loin du fonctionnement réel sur circuit pour les simulations fonctionnelles. La simulation est supplantée par le prototypage rapide et l’émulation qui permettent la vérification, l’exploration et la validation de système appropriées aux contraintes de « Time To Market » actuelles.

Les architectures embarquées conçues pour des applications de traitement de signal et d’images à contraintes temps réel fortes sont des architectures multiprocesseurs à plusieurs dizaines voire centaines de processeurs. On parle respectivement d’architectures « multicores » ou « manycores » (se référant respectivement à des dizaines et centaines de cœurs de calcul sur SoC). Ces cœurs bien souvent hétérogènes sont interconnectés via des architectures de communication de type réseau sur puce (NoC Network On Chip) afin de supporter un nombre élevé de cœurs pour des communications rapides et de faible consommation. L’architecture SoC qui utilise plusieurs processeurs connectés via le NoC est définie comme MPSoC(Multi-Processors System on Chip) [8]. Les circuits programmables notamment les FPGA (Field-Programmable Gate Array) sont utilisés pour l’émulation et le test des architectures, dans de nombreuses applications nécessitant le prototypage rapide d’application d’électronique numérique (télécommunication, traitement d’images, l’aéronautique…). Les circuits les plus évolués peuvent intégrer des cœurs de processeurs, logiciels ou matériels, des opérateurs câblés dédiés (appelés également blocs IP pour Intellectual Property) pour effectuer efficacement le prototypage de systèmes embarqués. A l’heure actuelle, un seul circuit FPGA ne possède pas assez de ressources pour supporter une architecture SoC complète. Ces architectures ont besoin d’être partitionnées sur plusieurs circuits reconfigurables, en général sur les plateformes multi-FPGA pour l’émulation et le test.

Imagerie couleur et multispectrale 

Imagerie couleur 

L’imagerie couleur est une image numérique qui contient des informations de couleur pour chaque pixel [8].Un espace de couleurs associe des nombres aux couleurs visibles. Compte tenu des limites de la vision humaine, ces nombres se présentent généralement sous la forme de triplets. Chaque couleur de lumière peut donc être caractérisée par un point dans un espace à trois dimensions. Il existe plusieurs espaces couleur (RGB, XYZ, L*a*b …), les espaces les plus utilisés étant présentés ci-dessous.

L’espace de couleur RGB 

C’est l’espace de base, supporté nativement par la plupart des cartes vidéo. En combinant les trois primitives RGB (respectivement Red, Green et Blue pour rouge vert et bleu), il est possible d’obtenir, ou presque, toutes les couleurs du visible. Le mélange des pigments de peinture permet d’obtenir toutes les couleurs possibles par filtrage de la lumière en retirant des composantes, et en ne réfléchissant que les couleurs désirées [10]. Ceci est appelé un système soustractif. Le système de couleur RGB est un système additif car la lumière est ajoutée. Ainsi dosées, les trois composantes permettent de représenter un grand nombre de couleurs, mais certaines couleurs visibles par l’œil n’ont pas de représentation dans cet espace.

L’espace de couleur XYZ 

L’espace couleur CIE (Commission Internationales de l’Eclairage) XYZ a été défini afin de corriger certains défauts présents dans l’espace RGB. Cet espace résulte les travaux de Judd [12] et est constitué de trois primaires X, Y et Z, dites virtuelles. Ainsi, l’espace couleur XYZ présente les propriétés suivantes :

• Les triplets décrivant chaque couleur en fonction de ses primaires ont tous des valeurs positives pour les spectres visibles ;
• La fonction Y(λ) représente approximativement la sensibilité de l’œil humain à la luminosité. Par conséquent, la composante Y est habituellement considérée comme la composante luminance du spectre incident ;
• Chaque spectre d’égale énergie est associé à un triplet dont toutes les composantes sont égales [12].

L’espace CIE L*a*b* 

L’espace CIE L*a*b* est un modèle de représentation des couleurs développé en 1976 par la CIE. Comme tous les systèmes issus du système CIE XYZ, il caractérise une couleur à l’aide d’un paramètre d’intensité correspondant à la luminance et de deux paramètres de chrominance qui décrivent la couleur. Il a été spécialement étudié pour que les distances calculées entre couleurs correspondent aux différences perçues par l’œil humain.

• La combinaison L* est la clarté, allant de 0 (noir) à 100 (blanc).
• La composante a* représente la gamme de l’axe rouge (valeur positive) ->vert (négative) en passant par le blanc (0) si la clarté vaut 100.
• La composante b* représente la gamme de l’axe jaune (valeur positive) -> bleu (négative) en passant par le blanc (0) si la clarté vaut 100.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Chapitre 1. Introduction
1.1 Contribution
1.2 Plan du manuscrit
1.2.1 Applications et principes de base des architectures
1.2.2 Proposition d’une méthodologie pour la conception et l’exploration de NoC
1.2.3 Implémentation et évaluation des NoC pour l’évaluation et l’exploration de l’espace de conception
1.2.4 Expérimentation : Implantation d’algorithmes d’imagerie multi-spectrale
Chapitre 2. Applications et principe de base des architectures
2.1 Imagerie couleur et multispectrale
2.1.1 Imagerie couleur
2.1.2 Imagerie Multispectrale
2.2 Processus d’authentification en Imagerie Multispectrale
2.2.1 Principe de l’algorithme d’authentification pour les œuvres d’arts
2.2.2 Calculs de distance dans des espaces couleurs
2.2.3 Calculs de distance dans l’espace spectral
2.2.4 Conclusion
2.3 Les architectures programmables embarquées pour l’algorithme d’authentification
2.3.1 Processeur généraliste dans l’embarqué : AMD Athlon 64
2.3.2 Processeur spécialisé : GPU
2.4 Performances sur CPU et GPU
2.4.1 Exécutions sur CPU
2.4.2 Exécutions sur GPU (Graphics Processing Unit)
2.4.3 Analyse des temps d’exécution sur architecture CPU et GPU
2.5 Les réseaux de communication sur puces
2.5.1 Le réseau sur puce (NoC)
2.5.2 Les NoCs sur FPGA
2.6 Conclusion
Chapitre 3. Proposition d’une méthodologie pour la conception et l’exploration de NoC
3.1 Architectures NoC et plateformes d’évaluation
3.1.1 Les NoC sur FPGA
3.1.2 Les plateformes d’évaluation et d’émulation de NoC
3.2 Méthodologie pour la conception et l’exploration de NoC : proposition d’un flot de conception
3.2.1 Structure de NoC
3.2.2 Algorithme de routage
3.2.3 Blocs d’adaptation pour la communication inter-FPGA
3.2.4 Blocs d’émulation
3.2.5 Spécification des transferts de données
3.2.6 Spécification de partitionnement
3.2.7 Flot de conception
3.3 Evaluation des performances
3.3.1 Latence
3.3.2 Mesure du débit
3.4 Conclusion
Chapitre 4. Implémentations et évaluation des performances des NoCs
4.1 Le NoC Hermes
4.1.1 Structure du NoC Hermes
4.1.2 L’interface graphique pour la génération du NoC : ATLAS
4.2 Objectifs et outils pour l’évaluation et l’exploration
4.2.1 L’interface graphique NoCGen
4.2.2 Les architectures Xilinx et les outils associés
4.3 Etude des performances sur mono-FPGA
4.3.1 Exploration du nombre de nœuds
4.3.2 Impact des blocs d’émulation
4.3.3 Exploration de la taille des paquets, des flits et du nombre de blocs d’émulation
4.3.4 Exploration des différents algorithmes de routage et du placement des blocs d’émulation
4.4 Etude des performances du NoC sur multi-FPGA
4.4.1 Evaluation temporelle
4.5 Analyse des résultats pour le dimensionnement du NoC
4.6 Conclusion
Chapitre 5. Conclusion

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *