37
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 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

Embed Size (px)

Citation preview

Page 1: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 2: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE 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

Page 3: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 4: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 5: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 6: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 7: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 8: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 8

Les FPGA pour les SOPCDéfinition des systèmes sur puce

Page 9: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 10: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 11: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 12: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 13: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME 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

Page 14: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME 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

Page 15: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME 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

Page 16: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME 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

Page 17: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME 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

Page 18: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME 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

Page 19: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME 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

Page 20: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME 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

Page 21: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME 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

Page 22: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 23: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 24: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 25: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 26: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 27: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 28: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 29: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 30: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 31: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME 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

Page 32: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME 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

Page 33: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 34: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 35: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 36: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

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

Page 37: Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 MISE EN ŒUVRE DUNE APPLICATION DE TRAITEMENT DIMAGE SUR LA PLATE FORME ML310

Mémoire d'Ingénieur CNAM en Electronique 05/12/2006 Page 37

QUESTIONS ?