Vous êtes sur la page 1sur 90

RMLL 08

Linux et le Codesign pour la conception des systmes embarqus

Patrice KADIONIK
IMS ENSEIRB Universit de Bordeaux 1 France Ahmed BEN ATITALLAH ENIS Universit de Tunis - Tunisie

Linux et Codesign
pk/enseirb/2008

-1-

PARTIE 1

OBJECTIFS ET PROBLMATIQUE

Linux et Codesign
pk/enseirb/2008

-2-

OBJECTIFS
Conception et ralisation dun systme embarqu multimdia modulaire pour ltude et le dveloppement de codeurs vido.

NIOS II

RAM Ethernet

FPGA FPGA
RAM H.263

Interface de contrle sous Clinux


Linux et Codesign
pk/enseirb/2008

-3-

PROBLMATIQUE
Complexit des systmes embarqus (Multimdia, Tlcommunications). numriques

Les processeurs standards deviennent incapables de rpondre aux exigences de ces systmes.
10000000

an
100000

no
d oi L

1000000

n Lo
e

10000 1000 100 10 1985

id

re oo M

Sh

Capacit des
1990 1995

Batteries
2010 2015

2000 2005

Les lois empiriques de lvolution de llectronique


Linux et Codesign
pk/enseirb/2008

-4-

PROBLMATIQUE
Le choix dune architecture pour les systmes embarqus multimdia doit tre un compromis entre : Flexibilit. Consommation rduite. Performance. Cot faible. Rapidit de conception (Time To Market). Pour la conception dun tel systme complexe, une mthodologie de conception rigoureuse doit tre utilise.
Linux et Codesign
pk/enseirb/2008

-5-

PARTIE 2

MTHODOLOGIE DE CONCEPTION

Linux et Codesign
pk/enseirb/2008

-6-

CONCEPTION DES SYSTEMES NUMERIQUES


Les systmes numriques deviennent aujourd'hui de plus en plus complexes au niveau intgration et fonctionnalits. On est en mesure d'intgrer tout dans un mme composant (single chip). Ceci est en fait li la loi empirique de Moore (pour une surface de silicium donne, on double le nombre de transistors intgrs tous les 24 mois).

Linux et Codesign
pk/enseirb/2008

-7-

CONCEPTION DES SYSTEMES NUMERIQUES


On travaille maintenant au niveau systme (ou fonctionnalit) et non au niveau porte logique (pour le grand bien des lectroniciens). Les fonctionnalits peuvent tre implantes dans des composants spcifiques de type ASIC (Application Specific Integrated Circuit). On parle alors de Systme sur Silicium SoC (System on Chip). Les fonctionnalits peuvent tre implantes dans des composants logiques programmables de type FPGA (Field Programmable Gate Array). On parle alors de systme SoPC (System on Programmable Chip).
Linux et Codesign
pk/enseirb/2008

-8-

CONCEPTION DES SYSTEMES NUMERIQUES


L'approche schmatique au niveau porte logique ou fonctionnalits de base RTL (Register Transfer Logic) est dlaisse pour la conception des systmes complexes au profit d'une approche textuelle . On utilise des langages de description de matriel comme VHDL (Very high speed integrated circuit Hardware Description Language) ou Verilog pour synthtiser une fonctionnalit numrique. Ces langages de description de matriel sont en fait de vritables langages de programmation informatiques, orients objet. Ils sont utiliss conjointement avec un synthtiseur (compilateur) ou un simulateur.
Linux et Codesign
pk/enseirb/2008

-9-

CONCEPTION DES SYSTEMES NUMERIQUES


Ces langages ont permis de travailler avec un niveau d'abstraction plus grand laissant les basses besognes au synthtiseur. On a pu rapidement dvelopper des bibliothques de fonctionnalits comme une interface USB, un contrleur MAC Ethernet que l'on appelle blocs IP (Intellectual Property). On peut les acheter ou bien utiliser des blocs IP libres (comme du logiciel libre) dont le site phare de rfrence est http://www.opencores.org.

Linux et Codesign
pk/enseirb/2008

- 10 -

CONCEPTION DES SYSTEMES NUMERIQUES


On peut ainsi voir la conception d'un systme numrique complexe comme un assemblage de blocs IP si bien que les langages de description de matriel sont un peu comme un langage assembleur vis vis d'un langage plus volu comme le langage C. Les langages de description de matriel sont aussi intressants pour la facilit de modification et de rutilisation d'un design prcdent pour un nouveau design (design reuse). Cela permet de rduire aussi le Time To Market (TTM) !

Linux et Codesign
pk/enseirb/2008

- 11 -

CONCEPTION DE SoPC

Processeur RISC RAM Acclrateur Matriel

DSP BUS

Systme SoPC implant dans un circuit logique programmable


Linux et Codesign
pk/enseirb/2008

- 12 -

HW/SW CODESIGN
Lapproche SoPC : cohabitation de deux ressources logicielle et matrielle sur une mme puce : codesign.

Le codesign utilise le matriel et le logiciel pour une fonctionnalit implanter : Le logiciel est utilis pour sa flexibilit. Le matriel (i.e. FPGA et ASIC) est utilis pour ses performances.

Linux et Codesign
pk/enseirb/2008

- 13 -

LE BESOIN DUN SYSTME DEXPLOITATION

La logique programme incluse dans les systmes embarqus est de plus en plus complexe. Une approche logicielle de type superboucle (boucle infinie + interruptions) devient trop sommaire pour grer et matriser la complexit. On a donc besoin dutiliser un systme dexploitation offrant diffrents services ncessaires pour mieux grer la complexit algorithmique logicielle.

Linux et Codesign
pk/enseirb/2008

- 14 -

LE BESOIN DUN SYSTME DEXPLOITATION


Un systme dexploitation offre ainsi diffrents services pour mieux apprhender la complexit :
Apport du multitche. Une application monolithique est divise en une somme de tches coopratives (systme multitche). Matrise des contraintes temporelles (systme Temps Rel). Masquage des spcificits du matriel. On y accde de faon homogne et standard. Dveloppement de pilotes de priphrique (driver) simplifi pour pouvoir avoir accs aux acclrateurs matriels. Apport dun systme de fichiers. Possibilit de communications rseau : pour un contrle du systme distance par exemple.
Linux et Codesign
pk/enseirb/2008

- 15 -

PARTIE 3

LES PROCESSEURS POUR LE SOPC

Linux et Codesign
pk/enseirb/2008

- 16 -

INTERET DUN PROCESSEUR POUR LE SOPC


Lorsque l'on conoit un systme numrique complexe, on met en oeuvre gnralement un processeur embarqu. Ce processeur embarqu est : Soit un bloc IP : on parle de processeur softcore. Soit dj implant dans le circuit lectronique en dur : on parle de processeur hardcore. Le processeur de ce type est gnralement plus performant que le processeur du type prcdent.

Linux et Codesign
pk/enseirb/2008

- 17 -

INTERET DUN PROCESSEUR POUR LE SOPC


Le processeur embarqu allie la souplesse du logiciel l'acclration du temps d'excution du matriel. Une fonctionnalit particulire peut donc tre compose d'une partie matrielle couple une fonctionnalit logicielle ddie : on a donc une conception conjointe matrielle-logicielle ou codesign. Le codesign implique donc une conception en mme temps du matriel et du logiciel, ce qui est une nouvelle mthodologie par rapport la mthodologie de conception classique (conception matrielle puis conception logicielle)...
Linux et Codesign
pk/enseirb/2008

- 18 -

CHOIX DU PROCESSEUR
Le choix d'un processeur pour le SoPC peut se faire sur diffrents critres : Processeur hardcore : pour ses performances au dtriment de la flexibilit. Processeur softcore : pour sa flexibilit de mise jour au dtriment de performances moindres que le prcdent. La portabilit vers n'importe quel circuit FPGA est assure en tant donc circuit FPGA indpendant. Il est aussi possible de migrer vers un circuit de type ASIC en cas d'une production en grande srie. Gnralement, on privilgie les processeurs softcore pour s'affranchir des problmes d'obsolescence et pour pouvoir bnficier facilement des volutions apportes en refaisant une synthse.
Linux et Codesign
pk/enseirb/2008

- 19 -

LES PROCESSEURS SOFTCORE POUR LE SOPC


Le processeur softcore peut tre libre : Il est dcrit en langage de description de matriel (VHDL, Verilog). Le code source peut tre librement distribu et implant dans n'importe quel circuit programmable FPGA. On est alors indpendant du type de circuit FPGA.

Linux et Codesign
pk/enseirb/2008

- 20 -

LES PROCESSEURS SOFTCORE POUR LE SOPC


Le processeur softcore peut tre propritaire : Il est distribu par exemple sous forme d'une netlist pour tre implante dans un circuit FPGA. Il est gnralement li un fondeur de circuit FPGA particulier (comme Altera ou Xilinx). On ne peut pas l'utiliser dans un circuit FPGA autre que celui pour lequel il est prvu. On a donc ici une bote noire.

Linux et Codesign
pk/enseirb/2008

- 21 -

LES PROCESSEURS SOFTCORE POUR LE SOPC


On trouvera principalement au niveau des processeurs softcore libres : Le processeur Leon http://www.gaisler.com/index.html. Le processeur OpenRisc http://www.opencores.org/projects.cgi/web/or1k/overview. Autre processeur : F-CPU http://www.f-cpu.org. Autres processeurs : clones de 6800, 68HC11, 68K, PIC : http://www.opencores.org/browse.cgi/filter/category_micropr ocessor

Linux et Codesign
pk/enseirb/2008

- 22 -

LES PROCESSEURS SOFTCORE POUR LE SOPC


On trouvera principalement au niveau des processeurs softcore propritaires : Le processeur NIOS et NIOS II d'Altera http://www.altera.com. Le processeur Microblaze de Xilinx http://www.xilinx.com.

Linux et Codesign
pk/enseirb/2008

- 23 -

LE PROCESSEUR SOFTCORE MICROBLAZE

Linux et Codesign
pk/enseirb/2008

- 24 -

LE PROCESSEUR SOFTCORE MicroBlaze


MicroBlaze : ARCHITECTURE Jeu dinstructions 32 bits. 32 registres de donnes. Pipeline 3 niveaux. Cache dinstructions et de donnes configurable. Bus interne LMB et CoreConnect IBM. Pas de MMU. Produit commercial de Xilinx.

Linux et Codesign
pk/enseirb/2008

- 25 -

LE PROCESSEUR SOFTCORE MicroBlaze


MicroBlaze : LOGICIELS Plateforme de dveloppement Xilinx XPS. Chane doutils GNU (compilation croise). Simulateur XMD. OS supports : Clinux. Portage GPL http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux/. microC/OS II. Produit commercial. Noyau ATI. Produit commercial.

Linux et Codesign
pk/enseirb/2008

- 26 -

LE PROCESSEUR SOFTCORE NIOS II

Linux et Codesign
pk/enseirb/2008

- 27 -

LE PROCESSEUR SOFTCORE NIOS II


NIOS II : ARCHITECTURE 2 versions : NIOS I et NIOS II. Seule NIOS II prsente. 3 cores possibles : fast, economy, standard. Jeu dinstructions 32 bits. 32 registres dont 6 de contrle. Pipeline 6 niveaux (fast). Cache dinstructions et de donnes configurable. Bus interne Avalon. Pas de MMU. Produit commercial dAltera.

Linux et Codesign
pk/enseirb/2008

- 28 -

LE PROCESSEUR SOFTCORE NIOS II


NIOS II : LOGICIELS Plateforme de dveloppement Quartus II. Chane doutils GNU (compilation croise). IDE Eclipse Simulateur ModelSim. OS supports : Clinux. Portage GPL
Version intgr lIDE : http://www.niosforum.com/ Version sous Linux : http://nioswiki.jot.com/WikiHome

microC/OS II. Produit commercial. Noyau Nucleus. Produit commercial. eCos.


Linux et Codesign
pk/enseirb/2008

- 29 -

PARTIE 4 ENVIRONNEMENT DE DVELOPPEMENT DU SYSTEME

Linux et Codesign
pk/enseirb/2008

- 30 -

PLATEFORME POUR LA MISE EN UVRE DU CODESIGN

Linux et Codesign
pk/enseirb/2008

- 31 -

FPGA STRATIX II DALTERA

Architecture dun composant Stratix II


Linux et Codesign
pk/enseirb/2008

- 32 -

PROCESSEUR PROPRITAIRE NIOS II


Pour rappel, le processeur embarqu NIOS II (version fast) dAltera choisi possde les caractristiques suivantes : Processeur RISC cadenc 120 MHz (142 DMIPS). 6 niveaux de pipeline. 64 Ko de cache dinstructions et de donnes. Multiplication et division cbles. Bus de donne et dinstruction sur 32bits. 32 niveaux dinterruption. 256 instructions personnalises.
Linux et Codesign
pk/enseirb/2008

- 33 -

ENVIRONNEMENT LOGICIEL

Linux et Codesign
pk/enseirb/2008

- 34 -

LINUX ET LEMBARQU
Pourquoi retrouve-t-on Linux dans lembarqu ? Logiciel Libre, disponible gratuitement au niveau source. Fiabilit reconnu du systme. Portabilit sur diffrentes plateformes matrielles. Il est possible davoir des versions Temps Rel. On a un systme dexploitation multitche. On a un systme de fichiers disponible. On a une connectivit TCP/IP en standard.
Linux et Codesign
pk/enseirb/2008

- 35 -

LINUX ET LEMBARQU
Linux pour lembarqu existe donc pour 2 catgories de processeurs 32 bits : Processeur avec MMU (Memory Management Unit) : Linux embarqu : version Linux standard. Processeur sans MMU : Clinux : version Linux adapte. Clinux est originellement un driv du noyau Linux pour les microcontrleurs sans MMU. Il existe un portage Libre Clinux pour le processeur NIOS II dAltera.
Linux et Codesign
pk/enseirb/2008

- 36 -

PARTIE 5 PLATEFORME DE TRAITEMENT VIDO

Linux et Codesign
pk/enseirb/2008

- 37 -

SYSTME DE TRAITEMENT VIDO


Une plateforme matrielle de traitement vido a t ralise afin de supporter la conception matriel/logiciel (HW/SW codesign).

8 bits

24 bits Traitement Restitution

Acquisition

Systme dacquisition et de traitement vido La plateforme permet lacquisition et laffichage des images de 640x480 pixels en 256 niveaux de gris.
Linux et Codesign
pk/enseirb/2008

- 38 -

SYSTME DE TRAITEMENT VIDO


Le coeur du systme est une carte cible Altera Stratix II :

Circuit FPGA Stratix II EP2S30F672C5. 1 Mo de SRAM 16 bits, 16 Mo de SDRAM 32 bits, 16 Mo de mmoire Flash. 1 support CompactFlash type I. 1 interface Ethernet 10/100 Mb/s. 2 ports srie (RS-232 DB9). 1 connecteur JTAG. 4 boutons poussoirs, 8 leds utilisateurs. 2 afficheurs 7 segments. 1 afficheur LCD 2x16.

Linux et Codesign
pk/enseirb/2008

- 39 -

SYSTME DE TRAITEMENT VIDO

Linux et Codesign
pk/enseirb/2008

- 40 -

INTERFACE CAMRA
Clk_system master_wr Clk_14Mhz master_addrw B U S A V A L O N

8 Bits LDV FDV

Contrle Camra

32 Bits

FIFO

32 Bits

DMA

32 Bits

master_waitreq

Synoptique de linterface camra

Linux et Codesign
pk/enseirb/2008

- 41 -

INTERFACE VGA

Clk_system B U S A V A L O N

master_rd master_addrw 32 Bits


Palette de couleur

DMA

32 Bits

FIFO

32 Bits

32 Bits

master_waitreq

FIFO 32 Bits

Contrle VGA

24Bits HS VS

Synoptique de linterface VGA VGA Lancelot : www.fpga.nl


Linux et Codesign
pk/enseirb/2008

MUX

- 42 -

ARCHITECTURE DU SYSTME VIDO


NIOS II processor DMA Camera DMA VGA

Arbitrage Bus Avalon

SDRAM Clinux

SRAM

Synchronisation de linterface Camra et VGA


Un seul contrleur DMA peut accder la mmoire. Le contrleur DMA-VGA est prioritaire pour ne pas avoir une discontinuit dans laffichage.
Linux et Codesign
pk/enseirb/2008

- 43 -

GESTION DU TEMPS
Le DMA ncessite 3 cycles dhorloge pour transfrer un mot de 32 bits. Notre systme vido doit tre capable de fonctionner avec une frquence minimale de 20,5 MHz. Les accs la mmoire dimage SRAM par le contrleur DMA-Camera/VGA ne consomment que 17 % du temps total (lhorloge systme est de 120 MHz). Il reste donc 83 % de temps CPU libre pour la partie traitement (codecs vido en codesign). Par contre, 100 % du temps CPU est disponible si lon a accde la SDRAM.
Linux et Codesign
pk/enseirb/2008

- 44 -

PARTIE 6

IMPLANTATION DU CODEUR H.263

Linux et Codesign
pk/enseirb/2008

- 45 -

COMPRESSION VIDO
H.261 (1990) H.263 (1995/96) H.263+ (1997/98) MPEG-2 H.262 (1994/95) MPEG-2 MPEG-1 (1994) (1992) H.264 MPEG-4 (2003) H.263++ (2000)

UIT-T

UIT-T/ MPEG

MPEG

MPEG-4 (1999/00)

1990

1992

1994

1996

1998

2000

2002

2004

Les normes de codage vido


Linux et Codesign
pk/enseirb/2008

- 46 -

NORME H.263
Norme de compression vido base sur la norme H.261 et ddie la vido trs bas dbit sur Internet, rseaux locaux et rseaux mobiles. Dbits entre 5 kb/s 64 kb/s. Incorpore dans le standard de terminal multimdia H.323. Applications : vidoconfrence, visiophonie. Formats vido en entre accepts : CIF (352x288 pixels). QCIF (176x144 pixels). SQCIF (128x96 pixels).
Linux et Codesign
pk/enseirb/2008

- 47 -

NORME H.263
+

TCD

Q QI TCDI
Vecteur de mouvement

CLV Bitstream
EM : Estimation de Mouvement CM : Compensation de Mouvement TCD : Transforme en Cosinus Discrte TCDI : TCD Inverse Q : Quantification QI : Quantification Inverse CLV : Code de Longueur Variable

EM/CM

+ +

Mmoire Schma de codage de la norme H.263


Linux et Codesign
pk/enseirb/2008

- 48 -

NORME H.263

Le codage INTRA : conduit une image de type I :


Transforme en Cosinus Discrte Quantification Codage entropique

Le codage INTER : conduit des images de type P et B :


Estimation de Mouvement Transforme en Cosinus Discrte Quantification Codage entropique

Linux et Codesign
pk/enseirb/2008

- 49 -

CONFIGURATION ETUDIE
La majorit des codeurs dvelopps le sont sous forme logicielle et ne font pas appel ou peu des acclrateurs matriels. Lide de dpart a t donc de choisir un tel codeur satisfaisant la norme H.263 et qui soit suffisamment gnrique et reprsentatif des diffrents oprateurs algorithmiques utiliss par lensemble des diffrentes normes de compression vido. Laccs aux fichiers sources du codeur permettra didentifier ces oprateurs coteux en temps de calcul mais qui sont de bons candidats une implantation matrielle en vue dune acclration. Lensemble de ltude a t faite sous Clinux et excute par le processeur NIOS II.
Linux et Codesign
pk/enseirb/2008

- 50 -

APPROCHE DE CODESIGN

Notre approche pour la conception HW/SW se compose de trois tapes : Implantation logicielle de lalgorithme. Dtection des traitements critiques dans lalgorithme (mesure des temps d excution). Implantation HW/SW de lalgorithme pour optimisation.

Linux et Codesign
pk/enseirb/2008

- 51 -

SQUENCES DE TEST (Fichier)


Squences Statiques standards :

Claire

Miss America

Akiyo

Squences Dynamiques standards :

Foreman
pk/enseirb/2008

Carphone
Linux et Codesign

News
- 52 -

ETUDE DE LA COMPLEXIT
Algorithme de recherche exhaustive (Full Search Block Matching). Fentre de recherche +/-15 pixels. Diffrentes valeurs du pas de quantification (QP=8,13, 31). Utilisation de vidos QCIF @10 Hz. La qualit de codage est donne par les valeurs de PSNR (Peak Signal To Noise Ratio) et SSIM (Structural SIMilarity).
Linux et Codesign
pk/enseirb/2008

- 53 -

ETUDE DE LA COMPLEXIT
CLV Q/QI 0,09% Autres 1,06% 1,18%
Contrle 0,73% CM 0,35%

TCD/TCDI 36,91%

EM/CM 60,76%

SAD 98,92%

Rpartition du temps CPU par bloc de traitement pour la squence Miss America QP=13
Linux et Codesign
pk/enseirb/2008

- 54 -

ETUDE DE LA COMPLEXIT
FLASH,SRAM,SDRAM ETHERNET CAMERA/VGA Interface Camera/VGA

Interface RAM

Interface Ethernet

Codeur H.263
3

AVALON

TCD-2D
3

TCDI-2D
3

NIOS II CPU
3

IRQ

SAD

C.I :Q/QI Timer UART

Clinux
USB

Linux et Codesign
pk/enseirb/2008

- 55 -

ESTIMATION DE MOUVEMENT (EM)


Codeur H.263
3

AVALON

TCD-2D
3

TCDI-2D
3

NIOS II CPU
3

SAD
Linux et Codesign
pk/enseirb/2008

C.I :Q/QI

- 56 -

ALGORITHME DE BLOCK MATCHING (BMAs)


Le Block Matching (BMA) est la mthode dEM la plus utilise, vue sa faible complexit algorithmique. Le BMA est bas sur la comparaison dun Macrobloc (MB : 16x16 pixels) de limage courante aux MBs de limage de rfrence dans une fentre de recherche.
MB Courant Fentre de Recherche MB le + Ressemblant

Image Courante
pk/enseirb/2008

Image de Rfrence
- 57 -

Linux et Codesign

ALGORITHME DE BLOCK MATCHING


Le critre le plus utilis pour lEM est la Somme des valeurs Absolues des Diffrences (SAD).
15 15

SAD( x, y ) = Ycur(i, j ) Yprev( x + i, y + j )


j =0 i =0

Avec : Ycur : la luminance du macrobloc courant. Yprev : la luminance du macrobloc de rfrence. (x,y) : les coordonnes du macrobloc de rfrence dans la fentre de recherche.

Linux et Codesign
pk/enseirb/2008

- 58 -

ALGORITHME DE BLOCK MATCHING


Le plus primitif des BMAs est lalgorithme de recherche exhaustive (FS).
Fentre de recherche

Cette mthode cherche loptimum parmi tous les Vecteurs de Mouvement possibles lintrieur de la fentre de recherche.
Linux et Codesign
pk/enseirb/2008

- 59 -

COPROCESSEUR SAD
data_A
32 A1 B1 A2 B2 A3 B3

data_B
32 A4 B4

Reg

Reg

Reg

Reg

Reg

Reg

Reg

Reg

LUnit de Traitement contient modules 2 entres sur 8 bits chacune.

+
32

Resultat

Unit de Traitement
16 Pixels

Unit_Contrle
A B A B A B A B

Le module SAD 1x16 permet le calcul du SAD dune ligne de MB en un cycle.

UT1

UT2

UT3

UT4

Calcul du SAD 1x16


Linux et Codesign
pk/enseirb/2008

Resultat SAD_1x16

- 60 -

COPROCESSEUR SAD
16 Pixels A B A

Unit_Contrle
B A B A B

UT1

UT2

UT3

UT4

+
16 Pixels A B A

Unit_Contrle
B A B A B

UT1

UT2

UT3

UT4

16 Pixels A B A

Unit_Contrle
B A B A B

UT1

UT2

UT3

UT4

+
Resultat SAD_16x16

Calcul du SAD 16x16


Linux et Codesign
pk/enseirb/2008

- 61 -

COPROCESSEUR SAD
200000000 180000000 160000000 140000000 120000000 100000000 80000000 60000000 40000000 20000000 0 SAD_SW Miss America Foreman SAD_HW
Cycles d'horloge

Nombre de cycles pour le calcul du SAD en SW et HW


La solution HW pour le calcul du SAD est 2 fois plus rapide que la solution SW. Pour acclrer le traitement, il existe plusieurs algorithmes de recherche rapides conduisant des complexits plus faibles : Recherche en Diamant (DS). Recherche en petit Diamant (SDS). Recherche en Croix-Diamant (CDS). Recherche en Hexagone (HEX).
Linux et Codesign
pk/enseirb/2008

- 62 -

EVALUATION DES PERFORMANCES DE LEM

38,5 39
38 37 FS

33
34 33

32,8 32,6
32

FS
Y PSNR

32,4
Y PSNR 31 32,2 FS FS DS DS SDS SDS CDS CDS HEX HEX

Y PSNR

Y PSNR

36 35 34 33

DS DS SDS SDS CDS CDS


HEX HEX

37,5

32 30
29 28

31,8 31,6 31,4 31,2


27

36,5 32 14 4

15

16

17 14

18 19

19

26 31 10 50 30 55 5060 Rate (kbps) Rate (kbps) 70 65 90 70

Rate Rate (kbps)

PSNR=f(Rate) pour la squence Miss America

PSNR=f(Rate) pour la squence Foreman

La mthode exhaustive donne de meilleure qualit par rapport aux diffrentes mthodes de recherche rapides
PSNR (Peak Signal To Noise Ratio) Linux et Codesign
pk/enseirb/2008

- 63 -

EVALUATION DES PERFORMANCES DE LEM

Nombre de cycles des diffrents algorithmes dEM


7000000 Nombre de cycles d'horloge 6000000 5000000 4000000 3000000 2000000 1000000 0 DS SDS CDS HEX QP=8 QP=13 QP=31

Squence Foreman Mais la recherche en Hexagone permet une qualit dimage et une rapidit de recherche acceptable.
Linux et Codesign
pk/enseirb/2008

- 64 -

TRANSFORME EN COSINUS DISCRTE DIRECT ET INVERSE (TCD/TCDI)


Codeur H.263
3

AVALON

TCD-2D
3

TCDI-2D
3

NIOS II CPU
3

SAD
Linux et Codesign
pk/enseirb/2008

C.I :Q/QI

- 65 -

TCD
c(k )c(l ) 7 7 (2n + 1)k yk ,l = 4 xn,m cos 16 n =0 m =0 (2m + 1)l cos 16

avec

1 2 pour = 0 c ( ) = 1 pour 0

n,m : sont les coordonnes dans le domaine spatial. k,l : sont les coordonnes dans le domaine frquentiel.

Linux et Codesign
pk/enseirb/2008

- 66 -

TCD

Deux architectures ont t retenues pour limplantation de TCD/TCDI-2D : Architecture de Loeffler utilise 11 MUL et 29 ADD. La mthode de la distribution arithmtique permet dimplanter une somme de produits sans lutilisation de multiplications.

Linux et Codesign
pk/enseirb/2008

- 67 -

ARCHITECTURE DE LOEFFLER
1re ETAGE 2me ETAGE 3me ETAGE 4me ETAGE

0 1 2 3 4 5 6 7
2 C3 2 C1

0 4 2 C6 2 6 7 3 5 1

Architecture modifie de Loeffler


Linux et Codesign
pk/enseirb/2008

- 68 -

DISTRIBUTION ARITHMTIQUE

yl =

F (a
B 1 j =1

,u

( j)

)2

F (a , u
l
l m

(0)

avec

F al ,u (j) =

) a
3 m =0

( u mj )

B : nombre de bits du coefficient dentre um um(j) : est le jme bit de um de valeur 1 ou 0 am : coefficient constant

Linux et Codesign
pk/enseirb/2008

- 69 -

IMPLANTATION DE LA TCD
250

120 Nombre de cycles d'horloge 100 80 Loffler 60 40 20 0


TCD TCDI

200 150 100 50 0

F(MHz)

Loeffler Loeffler_DSP D.A

Loffler_DSP D.A

TCD

TCDI

Frquence de fonctionnement pour la TCD/TCDI

Nombre de cycles pour le traitement dun bloc 8x8 par la TCD/TCDI

larchitecture Loeffler_DSP permet de meilleures performances que larchitecture Loeffler sans DSPs. Larchitecture de Loeffler ne ncessite que 11 cycles au lieu de 120 cycles pour la DA. La solution Loeffler_DSP savre au minimum 5 fois plus rapide.
Linux et Codesign
pk/enseirb/2008

- 70 -

TCD/TCDI-2D
Reset Start Clk Data_in
MUX

Contrleur
Control

Dataavailable Readyfordata Waitrequest

Data_out
TCD/TCDI 1D

Transposition Mmoire

Architecture du coprocesseur pour la TCD/TCDI-2D


Linux et Codesign
pk/enseirb/2008

- 71 -

TCD/TCDI-2D
NIOS II processor DMA

AvalonTM Switch Fabric


Arbitrage Arbitrage

Bus Avalon TCD/TCDI-2D coprocesseur

E/S

RAM

Connexion du coprocesseur TCD/TCD-2D avec le systme embarqu multimdia Le traitement dun bloc de taille 8x8 ncessite 720 cycles dont 97 cycles pour le traitement matriel par la TCD/TCDI-2D.
Linux et Codesign
pk/enseirb/2008

- 72 -

EVALUATION DU COPROCESSEUR TCD/TCD-2D


Nombre de cycles ncessaires pour le traitement par TCD+TCDI de la squence Miss America
140000000 Nombre de cycles d'horloge 100000000 80000000 60000000 40000000 20000000 0 TCD/TCDI_SW_flottant TCD/TCDI_SW_entier
Nombre de cycles d'horloge 3500000 3000000 2500000 2000000 1500000 1000000 500000 0 TCD/TCDI_SW_entier TCD/TCDI_HW

120000000

QP=8

QP=13

QP=31

QP=8

QP=13

QP=31

Traitement par TCD/TCDI_SW en flottant et en entier

La solution SW sur des entiers est 37 fois plus rapide que celle sur des rels.

Traitement par TCD/TCDI en SW_entier et HW

La solution HW est 6 fois plus rapide que la solution logicielle sur des entiers.
Linux et Codesign
pk/enseirb/2008

- 73 -

EVALUATION DU COPROCESSEUR TCD/TCD-2D


Reconstruction de la 8me image de la squence Miss America pour QP=8

Image reconstruite TCD/TCDI_SW_flottant PSNR-Y = 38,27dB PSNR-Cb = 38,61dB PSNR-Cr = 37,83dB SSIM = 0,9945

Image reconstruite TCD/TCDI_SW_entier PSNR-Y = 38,07dB PSNR-Cb = 38,55dB PSNR-Cr = 37,56dB SSIM = 0,9943

Image reconstruite TCD/TCDI_HW PSNR-Y = 38,17dB PSNR-Cb = 38,48dB PSNR-Cr = 37,83dB SSIM = 0,9944

PSNR (Peak Signal To Noise Ratio) & SSIM (Structural SIMilarity) Linux et Codesign
pk/enseirb/2008

- 74 -

QUANTIFICATION DIRECTE ET INVERSE (Q/QI)


Codeur H.263
3

AVALON

TCD-2D
3

TCDI-2D
3

NIOS II CPU
3

SAD
Linux et Codesign
pk/enseirb/2008

C.I :Q/QI

- 75 -

Q/QI
Equation de Quantification :
COF , INTRA 2.QP LEVEL = QP COF 2 , INTER 2.QP

LEVEL = sign(COF ). LEVEL

Equation de Quantification Inverse :


QP.(2. LEVEL + 1), si QP =" impair " REC = QP.(2. LEVEL + 1) 1, si QP =" pair"

REC = sign( LEVEL). REC

La division est effectue sur des entiers. Utilisation des instructions multi-cycles pour limplantation de lquation de Q/QI.
Linux et Codesign
pk/enseirb/2008

- 76 -

IMPLANTATION DE LA Q/QI
Clk

Dataa

32

Reg
Clk

Clk

>>16

Comparateur

32

Reg

Resultat

Datab

32

Reg

-127 & 127

Architecture de linstruction pour la Quantification INTRA


Clk
32

Dataa

Reg
Clk +

Clk

Datab

32

Reg

>>1

>>16

Comparateur

32

Reg

Resultat

-127 & 127

Architecture de linstruction pour la Quantification INTER


Linux et Codesign
pk/enseirb/2008

- 77 -

IMPLANTATION DE LA Q/QI
Clk

Dataa

32

Reg
Clk

X
<<1
+

Datab(0) Clk

Datab

32

Reg

-1

M U X

32

Reg

Resultat

Architecture de linstruction pour la Quantification Inverse


2 cycles dhorloge sont ncessaires pour lexcution dune instruction. Le traitement dun bloc de taille 8x8 ncessite 1200 cycles dont 128 cycles pour le traitement matriel.
Linux et Codesign
pk/enseirb/2008

- 78 -

EVALUATION DES INSTRUCTIONS DE Q/QI


Nombre de cycles ncessaires pour le traitement par Q+QI de la squence Miss America
4000000 Nombre de cycles d'horloge 3500000 3000000 2500000 2000000 1500000 1000000 500000 0 Q/QI_SW QP=8 QP=13 QP=31 Q/QI_HW

Traitement par Q/QI en SW et HW


La solution HW est 4 fois plus rapide que la solution SW.
Linux et Codesign
pk/enseirb/2008

- 79 -

EVALUATION DES INSTRUCTIONS DE Q/QI


Reconstruction de la 8me image de la squence Miss America pour QP=8

Image reconstruite SW PSNR-Y = 38,27dB PSNR-Cb = 38,61dB PSNR-Cr = 37,83dB SSIM = 0,9945

Image reconstruite HW PSNR-Y = 38,27dB PSNR-Cb = 38,61dB PSNR-Cr = 37,83dB SSIM = 0,9945

PSNR (Peak Signal To Noise Ratio) & SSIM (Structural SIMilarity) Linux et Codesign
pk/enseirb/2008

- 80 -

IMPLANTATION HW/SW DU CODEUR H.263

Linux et Codesign
pk/enseirb/2008

- 81 -

SYSTME EMBARQU MULTIMDIA


FLASH,SRAM,SDRAM ETHERNET CAMERA/VGA Interface Camera/VGA

Interface RAM

Interface Ethernet

Codeur H.263
3

AVALON

TCD-2D
3

TCDI-2D
3

NIOS II CPU
3

IRQ

SAD

C.I :Q/QI Timer UART

Clinux
USB

Linux et Codesign
pk/enseirb/2008

- 82 -

SYSTME EMBARQU MULTIMDIA

Les rsultats de limplantation de notre systme embarqu multimdia sur FPGA Stratix II EP2S60 sont : ALUTs : 20,550/48,352 (43%). Blocs RAMs : 1,157,888/2,544,192 (46%). Blocs DSPs : 64/288 (22%). Broches dE/S : 181/493 (37%). PLL : 1/6 (17%). Frquence de fonctionnement : 120 MHz.

Linux et Codesign
pk/enseirb/2008

- 83 -

EVALUATION DE LIMPLANTATION HW/SW DU H.263


(a)1618 ms
TCD/TCDI 1,56% Q/QI 1,87% Autre 2,63%

(b)72 ms
EM/CM 28,53%

Autre 51,69% TCD/TCDI 5,62% Q/QI 14,16%

EM/CM 93,94%

Rpartition du temps CPU en utilisant la solution (a) SW et (b) HW/SW pour la squence Miss America
La solution HW/SW du codeur H.263 est 20 fois plus rapide que la solution SW. En utilisant lapproche codesign pour limplantation du codeur H.263, on arrive coder des squences QCIF@15 Hz.
Linux et Codesign
pk/enseirb/2008

- 84 -

ARCHITECTURE DU SYSTME VIDO


0x2000000

NIOS II processor

DMA Camera

DMA VGA

DMA TCD/ TCDI-2D

TCD/TCDI-2D

MB-YCbCr

Camera acquisition image

Arbitrage Bus Avalon

Arbitrage

VGA Image recontruite

SDRAM Clinux

coprocesseur SAD

SRAM

coprocesseur TCD/TCDI-2D
0x20FFFFF

Cartographie SRAM

Interconnexion des diffrents priphriques et coprocesseurs Nous appliquons notre codeur sur le flux issu de la camra. On arrive ainsi afficher au vol sur le moniteur VGA aprs dcodage des squences QCIF@15 Hz.
Linux et Codesign
pk/enseirb/2008

- 85 -

SYSTME EMBARQU MULTIMDIA

Linux et Codesign
pk/enseirb/2008

- 86 -

CONCLUSION

Linux et Codesign
pk/enseirb/2008

- 87 -

CONCLUSION
Ralisation dune plateforme programmable de traitement vido dans un environnement de conception en codesign. Lacquisition et la restitution vido consomme ( 120 MHz) 17% du temps total. Des acclrateurs matriels tels que le SAD, TCD/TCDI et Q/QI pour le codeur H.263 ont t dvelopps en langage VHDL. En utilisant lapproche codesign pour le codeur H.263, on arrive coder des squences QCIF@15 Hz (120 MHz) sous Clinux.
Linux et Codesign
pk/enseirb/2008

- 88 -

CONCLUSION
Amlioration dun facteur du 20 du temps du codage par rapport la solution tout logicielle. Constitution dune bibliothque de modules IP gnriques de traitement vido afin de lutiliser dans ltude dautres codeurs vido dans lapproche codesign. La plateforme ralise peut supporter diffrentes normes de compression vido telles que H.26x et MPEG. La validit de lensemble de ltude a t aussi vrifie en lappliquant lensemble Camra-VGA.
Linux et Codesign
pk/enseirb/2008

- 89 -

Remerciements : Lexemple du codeur prsent est issu de la thse soutenue par A. Ben Atitallah, collgue maintenant.

Linux et Codesign
pk/enseirb/2008

- 90 -