Mémoire d'Ingénieur CNAM en Electronique 05/12/2006
MISE EN ŒUVRE D’UNE APPLICATION DE TRAITEMENT D’IMAGE SUR LA
PLATE FORME ML310
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 2
PLAN
Définition des systèmes sur puce
Description de la carte de prototypage rapide ML310
Description puis l’implantation du module de compression d’image JPEG en matériel
Partie logicielle de l’application de traitement d’image
Démonstration
Conclusion
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 3
But du projet
Réaliser une application de traitement d’image en utilisant au mieux les ressources de la carte ML310 :– capacités du FPGA embarqué
– capacités des périphériques matériels
– capacités logicielles
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 4
Les systèmes sur puce
Début années 90 Actuellement
Système sur circuit imprimé
Implantation dans un seul composant ASIC ou FPGA
Définition des systèmes sur puce
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 5
Définition des SOPC/SOC
« System On Programmable Chip» : est une collection d’éléments en interaction sur un seul circuit programmable.
Cependant, tous les circuits intégrés ne sont pas des SOPC, un SOPC implémente une fonction « complète » – Décodeur MPEG2 vidéo + audio + système + transport +
graphique + interface utilisateur
Les éléments constitutifs d’un SOPC sont "complexes", réutilisables et de nature variée
Définition des systèmes sur puce
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 6
Avantages du système sur puce
Faible encombrement
Robustesse améliorée (mécanique, électromagnétique)
Faible consommation électrique
Meilleures performances en fréquence
Temps de mise sur le marché plus court
Diminution du coût global
Définition des systèmes sur puce
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 7
Contraintes des systèmes sur puce
Méthodologie de développement plus stricte
Absence d ’outils « polyvalent » pour le partitionnement automatique logiciel/matériel
De fortes dépendances entre le logiciel et le matériel
Définition des systèmes sur puce
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 8
Les FPGA pour les SOPCDéfinition des systèmes sur puce
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006
Description de la carte de prototypage rapide ML310
Les caractéristiques matérielles Les outils de développement du matériel Les outils de développement du logiciel
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 10
FPGA
Audio, Ethernet USB, ports Série et //
PCI
IDE
CompactFlash
DDR
E/S
Description de la carte de prototypage rapide ML310
JTAG
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 11
Le FPGA XC2VP308 Unités de gestion des horloges
•Multiplication/Division de fréquence•Contrôle du déphasage des horloges
2 PowerPC 405•Masque créé par IBM•Processeur RISC fonctionnant à 300MHz
556 Entrées/Sorties « SelectIO Ultra » •Configurable en tension 1,2 à 3,3V•47 Normes différentes PCI,LVTTL…
4 RocketIO Multi-Gigabit•Convertisseurs Série => Parallèle•Jusqu’à 6,3 Gbit/s
136 Multiplieurs•18x18 bits résultat sur 36 bits
Blocs Logiques Configurables « CLB »•Réalisation de fonctions logiques synchrones, asynchrones ou de mémorisation
Description de la carte de prototypage rapide ML310
136 Blocs SelectRAM•Mémoire double port de 18Kb• Configurables de 16Kx1bit à 512x36bits
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 12
Les périphériques de la ML310
RS232
SMBus
EEPROM SPI
GPIO/LEDs
256MB DDR DIMM
High-Speed PM1
High-Speed PM2
Bus PCI page suivante
CF System ACE
JTAG
Description de la carte de prototypage rapide ML310
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 13
AMD Flash
GPIO
IDE(2)
USB(2)
RS232(2)
PS/2 K
Port //
SMBus
Audio
Ali M1535+South Bridge
Intel GD8255910/100 Ethernet NIC
RJ45
Bus PCI 3,3V du FPGA
PCI3,3V
TIPCI 2250
PCI5V
Description de la carte de prototypage rapide ML310
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 14
Outils de développement matériel de la carte ML310
Simulation
MODELSIM
Synthèse
SYNPLIFY
ISE
Développement Matériel de l’IP
Xilinx Platform Studio
Développement de la Plate Forme Matérielle
Description de la carte de prototypage rapide ML310
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 15
Outils de développement du matériel de la carte ML310
Xilinx Platform Studio (XPS)
Carte ML310
ISE Développement Matériel de l’IP
Simulation
MODELSIM
Synthèse
SYNPLIFY
FPGAXC2VP30
EntréesSorties
Développement de la Plate Forme Matérielle
PPC
Bus CoreConnect
Interface BUS/IP Périphériques et Bus
CartesPériphériques
Générer le BitStream
IP ISE
IP ISE
Développement de L’interface entre l’IP et la
Plate Forme Matérielle
Description de la carte de prototypage rapide ML310
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 16
Outils de développement du logiciel de la carte ML310
Mode Stand-Alone avec Xilinx Platform Studio– Réservé aux applications simples
– Les librairies pour accéder aux périphériques sont à développer par l’utilisateur
Utilisation d’un système d’exploitation OS– VxWorks
• Nécessite des équipements matériels supplémentaires (VisionProbe)
• Nécessite des outils délivrés sous licences payantes (SingleStep, Tornado)
– Linux• Pas de matériel supplémentaire
• De nombreux outils libres et sous licences disponibles
Description de la carte de prototypage rapide ML310
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 17
Outils de développement du logiciel pour LINUX
Drivers et Modules LinuxNoyau Linux
Interpréteur de commandes
Le Matériel
L’Utilisateur
Les Applications
Partie libre
Description de la carte de prototypage rapide ML310
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 18
Compilateur Gcc
Version d’évaluation De MontaVista
Outils de développement du logiciel pour LINUX 2
Xilinx Platform Studio
Compilateur Croisé CrossTool
Les applications de traitement d’image
Les utilitaires « Server Web, librairies… »
Librairies + Noyau Linux Générique
= Drivers et Modules LinuxNoyau Linux
Description de la carte de prototypage rapide ML310
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 19
Répartition des applications
Compilateur GccDisque Dur de la ML310
Version d’évaluation De MontaVista
Xilinx Platform Studio
Compilateur Croisé CrossTool
Drivers et Modules Linux
Les utilitaires« Server Web, librairies… »
Carte ML310
CartesCompact Flash
Noyau Linux
Les Applications de traitement d’image
Compilateur Gcc
PC
Disque dur du PC
Xilinx Platform Studio
Version d’évaluationMontaVista
CrossTool
Disque partagé
ConsoleTelnet
Liaison Ethernet
Description de la carte de prototypage rapide ML310
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006
APPLICATION DE TRAITEMENT D ’IMAGE
Principe de la compression JPEG Préparation de l’implantation du noyau JPEG sur le FPGA de la carte ML310
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 21
Le format de fichier embarquant un flux codé en JPEG est JFIF (JPEG File Interchange Format, soit en français Format d'échange de fichiers JPEG),
Principe de la compression JPEG
Rééchantillonnage de la chrominance, car l'oeil ne peut discerner de différences de chrominance au sein d'un carré de 2x2 points
Découpage de chaque composante en blocs de 8x8 pointsApplication de la fonction 2D DCT transformation en cosinus discrète
qui décompose la matrice 8x8 en somme de fréquencesQuantification de chaque bloc, on applique un coefficient de perte pour diminuer valeurs des hautes fréquences (ratio taille/qualité)Encodage de l'image en parcourant le bloc en zig-zag suivi d’un
codage RLE ou codage des répétitions pour enlever un maximum de valeurs nullesCompression de l'image avec la méthode d'Huffman
Application de traitement d’image
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 22
Caractéristique du noyau JPEG
Composant JPEG est disponible sur le site OPENCORERespecte la norme JPEG ISO ITU-T81:– Basé sur une DCT à 2D. – Encodage selon la méthode Huffman.– Type de fichier de sortie JFIF Header. – Trois taux de compression pour une image couleur ou noir et blanc
RGB de 352x288 codée sur 24bits.
Ressources matérielles :– Prévu pour être implanté dans un FPGA XILINX Virtex
XC2V1000 (Technologie précédant le Virtex II Pro)– Conçu à partir de 3 IP Xilinx Coregen dont la DCT (2D Forward
DCT) – 11 BlockRAMs utilisés, 3969 LUTs utilisées – Fréq. Horloge : 41.2 MHz for XC2V1000-4
Application de traitement d’image
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 23
Adaptation du code JPEG à la cible FPGA XC2VP30
OpenCore JPEG
Pour unFPGAXILINX
XC2V1000
Adaptation de
l’OpenCore JPEG
Pour unFPGAXILINX
XC2VP30
XilinxPlatformStudio
ModelSim
Simulations
Application de traitement d’image
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 24
Résultats
Occupe 7976 LUT soit 29% du FPGA
Peut être implanté en plus de l’environnement PCI
Constats:– La fréquence de fonctionnement maximale simulée après
placement routage est de 33MHz
– Le fonctionnement du code de simulation n’est pas stable
– Le fichier de l’image compressée JPEG est généré pour la simulation fonctionnelle du code VHDL
Application de traitement d’image
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 25
Modifications apportées
Résolution des problèmes liés à l’instabilité du code• Réécriture du fichier de simulation
Amélioration de l’interface de contrôle du composant• Ajout d’une FIFO d’entrée
• Ajout d’un contrôleur de remplissage de la FIFO
• Ajout d’un contrôleur de synchronisation de la compression
Obtention du fichier de l’image compressée JPEG• Ajout de la logique nécessaire et de la mémoire pour
stocker le fichier résultat selon le standard JPEG
Application de traitement d’image
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 26
Le composant JPEG modifié
OpenCoreJPEGPour
un FPGAXILINX
XC2VP30
Buffer deStockage de l’image JPEG
Nouveau Fichier de Simulation
Logique de
Gestion des
adresses
Données CompresséesJPEG Modifié
FIFOD’Entrée
Contrôleur deCompression
Contrôleur deRemplissage
Initialisation de la compression
Reset du composant
Nb L/C IM C/NB
Lancement deLa compression
Envoi deL’image
RGB
RGB
FIFO Pleine
RGB
RGB
La FIFO Contient
DesDonnées
Busy
ImageEnvoyée
Attente de la Fin de CompressionCompression
TerminéeExtraction deL’image JPEG
Données Compressées
FichierJPEG
Application de traitement d’image
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 27
Préparation de l’implantation
33MHz
100MHz
Répartition des Entrées/sorties sur 4 registres de 32 bits– Trois en entrée
– Un en sortie
Application de traitement d’image
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 28
Résultat de la simulation du composant JPEG modifié 2
Image BMP 352x288 24 bits297 Ko (304 182 octets)
Image JPEG 352x288 24 bits9.96 Ko (10 204 octets)
Application de traitement d’image
Effets de blocs dusà la DCT
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006
IMPLANTATION DU COMPOSANT JPEG SUR LA CARTE ML310
Le choix des interfaces entre le processeur et le composant Les résultats de l’implantation
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 30
Interfaçage du composant JPEG au bus Coreconnect
Implantation du composant JPEG sur la carte ML310
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 31
Résultats de l’implantation du composant JPEG sur la carte ML310
La fréquence de fonctionnement réelle est de 10MHz
Capacité de traitement maximum 6 images par secondes au format 352x288 24 bit quelque soit la charge du processeur sous Linux
Taux Faible Taux Moyen Taux Fort
Moyenne pour 10 Images de
352x28812 25 61
Implantation du composant JPEG sur la carte ML310
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006
PARTIE LOGICIELLE
Cahier des charges de la partie logicielleSéquence d’acquisition puis de compression depuis une page HTML
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 33
Cahier des charges pour la partie logicielle
Acquisition de l’image depuis une WebCam connectée sur le port USB de la ML310
Application utilisable depuis le réseau Ethernet– Lancement de l’acquisition/compression depuis une page
HTML• Avec paramétrage de la taille de l’image
– Affichage de l’image prise par la WebCam Sur la page HTML et sur un moniteur relié à la carte ML310
– Affichage des images compressées sur le page HTML
Partie logicielle
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 34
Disque Dur
Carte ML310
Déroulement de l’application logicielle
Liaison Ethernet
ServeurApache
Lancement de l’application depuis
unNavigateur Windows
InitialisationDe la WebCam
En 640x480
640x480
Lancement deL’Acquisition
Puis de la Compression
YUV420640x480
YUV420640x480
BMP640x480
BMP640x480
JPEG C1-2320x240
JPEG C1-3320x240JPEG C2-2
320x240
JPEG C1-4320x240JPEG C2-3
320x240JPEG C3-2320x240
JPEG C2-4320x240JPEG C3-3
320x240JPEG C3-4320x240
JPEG C1-1320x240JPEG C2-1
320x240JPEG C3-1320x240
JPEG N1-4320x240JPEG N2-4
320x240JPEG N3-4320x240
JPEG N1-3320x240JPEG N2-3
320x240JPEG N3-3320x240
JPEG N1-2320x240JPEG N2-2
320x240JPEG N3-2320x240
BMP320x240
BMP320x240
BMP320x240
BMP320x240
BMP320x240
BMP320x240
BMP320x240
JPEG C1-1320x240JPEG C2-1320x240JPEG C3-1320x240
JPEG N1-1320x240JPEG N2-1
320x240JPEG N3-1320x240
Partie logicielle
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 35
Démonstration
Lancement de la console en mode Telnet
Page du serveur Apache
Lien vers l’acquisition puis compression d’une image de 640x480 24bits
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 36
Conclusion
L’application est fonctionnelle même si les performances ne sont optimalesD’un point de vue personnel– Acquérir des connaissances sur les FPGA
• Programmation• Simulation • Synthèse• Implantation
– Acquérir des connaissances sur le logiciel embarqué• Mise en place d’un OS• Développement des couches logicielles bas niveau
Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 37
QUESTIONS ?