Vous êtes sur la page 1sur 59

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

Optimisations Mémoire dans la


Méthodologie AAA pour Code
Embarqué sur Architectures
Parallèles

RAULET Mickaël
18 mai 2006

Mitsubishi ITE - Equipe Software Radio


IETR/INSA - Groupe Image
INRIA – Groupe AOSTE

UMR
6164 1
Plan
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Introduction
– Objectifs
– Problématique

• SynDEx

• Minimisation mémoire

• Applications

• Conclusions perspectives

RAULET Mickaël – 18 mai 2006 2


Introduction : Objectifs
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Développement d’une méthodologie de


prototypage rapide pour architectures
complexes
– Diminution du temps de développement pour
le portage sur une cible multi-composants
(PC, DSP et/ou FPGA)

• Développement d’applications dans le


domaine de l’embarqué (téléphonie
mobile, décodeurs de salons)
– Réalisation de démonstrateurs

RAULET Mickaël – 18 mai 2006 3


Introduction : Problématique
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

Prototypage rapide
d’applications de traitement du signal et images
pour systèmes embarqués temps réel
sur architectures distribuées
hétérogènes

– Méthodologies pour passer rapidement


(automatiquement) d’une description de haut niveau
de l’application à une implantation exécutable
– Méthodologie AAA (Adéquation Algorithme
Architecture)

RAULET Mickaël – 18 mai 2006 4


Introduction : Problématique
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

Prototypage rapide
d’applications de traitement du signal et images
pour systèmes embarqués temps réel
sur architectures distribuées
hétérogènes

– Applications fortement orientées données

RAULET Mickaël – 18 mai 2006 5


Introduction : Problématique
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

Prototypage rapide
d’applications de traitement du signal et images
pour systèmes embarqués temps réel
sur architectures distribuées
hétérogènes

– Minimisation des ressources et exécution


“suffisamment” rapide

RAULET Mickaël – 18 mai 2006 6


Introduction : Problématique
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

Prototypage rapide
d’applications de traitement du signal et images
pour systèmes embarqués temps réel
sur architectures distribuées
hétérogènes

– Distribution/ordonnancement des traitements

RAULET Mickaël – 18 mai 2006 7


Introduction : Problématique
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

Prototypage rapide
d’applications de traitement du signal et images
pour systèmes embarqués temps réel
sur architectures distribuées
hétérogènes

– Mise en oeuvre conjointe de composants cible variés


– Travaux essentiellement sur cibles multi-composants

RAULET Mickaël – 18 mai 2006 8


Introduction : Problématique
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Systèmes multi-composants
• Systèmes embarqués
– Limitation mémoire
• Traitement du signal, télécommunications et
vidéo
– Consommation mémoire importante

Nécessité d’une optimisation mémoire


Nécessité d’une méthodologie adaptée

RAULET Mickaël – 18 mai 2006 9


SynDEx : Présentation
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• SynDEx : Synchronized Distributed Executives


– Logiciel de CAO niveau système pour applications
distribuées temps réel et embarquées
– INRIA Rocquencourt projet AOSTE (Y. Sorel)

• Fonctionnalités
– Partitionnement/ordonnancement automatiques
d’une application sur une architecture cible
– Algorithme glouton basée sur une minimisation de la
latence (optimisation orientée vitesse)
– Génération d’un exécutif distribué indépendant de la
cible

RAULET Mickaël – 18 mai 2006 10


SynDEx : Caractéristiques
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Approche globale
• Modèle unifié de graphes
– Algorithme : parallélisme potentiel
– Architecture : parallélisme disponible
– Implantations : transformations de graphes
• Adéquation
– Choix d’une implantation optimisée
• But
– Génération automatique d’exécutifs
• taillés sur mesure aux applications,
• basés sur un ordonnancement hors-ligne des calculs et des
communications

RAULET Mickaël – 18 mai 2006 11


SynDEx : Caractéristiques
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

Graphe Temporel

root FIFOs DSP1

Graphe d’Architecture

Graphe d’ Algorithme
Adéquation

Opéra
-tions Opéra
-tions

- Niveaux hiérarchiques
- Conditionnement
- Répétition

www.syndex.org
RAULET Mickaël – 18 mai 2006 12
SynDEx : Caractéristiques
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Exécutif supporte :
– l’exécution de l’algorithme sur l’architecture
– l’ordonnancement, les communications et les synchronisations

• Taillé sur mesure :


– Minimisation du surcoût spatial et temporel
– Implantation optimisée (latence)
– Sans inter-blocage, garantie ordre total du graphe d’algorithme

• Basé sur macro-code


– Indépendant du processeur
– Supportant des architectures hétérogènes, portabilité

• Basé sur des bibliothèques génériques dépendantes


– des processeurs (DSP, PC, FPGA…)
– des communicateurs (SAM=FIFO, RAM)

RAULET Mickaël – 18 mai 2006 13


Plan
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Introduction

• SynDEx
– Présentation
– Caractéristiques
– Chaîne de développement

• Minimisation mémoire

• Applications

• Conclusions perspectives

RAULET Mickaël – 18 mai 2006 14


SynDEx : Chaîne de
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES développement
• Prototypage rapide et domaine d’applications

Algorithme Adéquation Architecture

• Télécommunication
• Plate-formes
– UMTS – Sundance
– MC-CDMA – Pentek
• Vidéo Exécutifs • Composant
– LAR Génériques – DSP
– MPEG4 – FPGA

Bibliothèques
Exécutifs
Spécifiques
RAULET Mickaël – 18 mai 2006 15
SynDEx : Chaîne de
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES développement
• Exemple de topologie : Sundance
PC (Pentium)
Personal Computer
PCI

Embedded Motherboard: SMT320


DSP2 (TMS320C6416) PCI (BUS_PCI
)
SDBa
SDBb
CP0
Module DSP
CP1
PCI
Bus_6 (CP)
SMT361
FPGA1 (Virtex)
SDBa
SDBb
CP0 Module FPGA
CP1
CP2 Bus_3 (SDB)
CP3 SMT358
Bus_1 (SDB)
IN (VID_IN) PALtoYUV (BT829)
DSP3 (TMS320C6414)
VID_IN
SDBa
SDBb
OUT (VID_OUT) YUVtoPAL (BT864a)
Framegrabber
VID_IN
VID_OUT VID_OUT
SMT319

 Plusieurs types de processeurs et de communicateurs

RAULET Mickaël – 18 mai 2006 16


SynDEx : Chaîne de
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES développement
• Arborescence des bibliothèques
Génération de code

Générique Dépendant de Dépendant de


l’architecture l’application
SynDEx.m4x ApplicationName.m4x

Dépendant du Dépendant du
Type de processeur Type de media
C62x.m4x SDB.m4x (C6 2x , C64x , Fpga )
C64x.m4x CP.m4x (C 62x , C64x , Fpga )
Pentium.m4x BUS_PCI_RAM.m4x ( Pentium , C62x , C64x )
Fpga.m4x BUS_PCI_SAM.m4x ( Pentium , C62x , C64x )
TCP.m4x ( Pentium , C62x )
Bifo.m4x (C62x, Fpga )
Bifo_DMA.m4x (C62x, Fpga )

RAULET Mickaël – 18 mai 2006 17


SynDEx : Chaîne de
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES développement
• Développements de nombreuses bibliothèques
• Vérification fonctionnelle
– Ajout de fonction d’affichage de l’image directement
sous SynDEx
• Display générique
• Webcam
• Vérification et exploration architecturale  TCP
– facilitant la vérification fonctionnelle de l’application
• séparation de codeur-décodeur
– possibilité de décrire des architectures complexes
(multi-PC)
• plateformes de test et de vérification

RAULET Mickaël – 18 mai 2006 18


Plan
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Introduction

• SynDEx

• Minimisation mémoire
– Objectifs
– Principes d’allocation
– Mono-composant
– Multi-composants

• Applications

• Conclusions perspectives

RAULET Mickaël – 18 mai 2006 19


Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Objectifs

Algorithme Architecture

Adéquation

Génération Minimisation
de des allocations
Code de buffers

RAULET Mickaël – 18 mai 2006 20


Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Principes d’allocation
allocD

allocD

allocD allocD

 Une allocation (buffer) allouée pour chaque sortie

RAULET Mickaël – 18 mai 2006 21


Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Mono-composant

Ram ESPACE MEMOIRE RAM


opr1
D/P données
communiquées
données
locales programmes
all.Po1

all.Dlo1
o1 all.Dlo1

all.D_o1o2
all.D_o1o2
all.Po2

all.Dl2
all.D_o2o3
o2 all.Dlo2

all.Po4

all.Po2
all.Po3

all.Po1
all.D_o2o3

all.D_o3o4
all.D_o3o4

all.Dlo4 all.Dlo3
o3
all.Po3
all.Dlo3
all.D_o3o4
o4 all.Po4
all.Dlo4
RAULET Mickaël – 18 mai 2006 22
Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Mono-composant
• Coloriage de graphe Légende
– Approche classique Td Tf

– minimisation des buffers (« registre ») Durée d ’allocation du registre

f
b
a e
c Graphe d’intervalles
d
Tri par ordre croissant des dates de début

b
d
a f

c e
3 couleurs = 3 buffers
Graphe d ’intervalles
• Méthode gloutonne
• Minimum de couleur
• Buffers de même type et de même taille
RAULET Mickaël – 18 mai 2006 23
Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Mono-composant
• Autre Méthode mono-composant
– Minimisation « tétris »
• Basée également sur la durée de vie des buffers
• Basée uniquement sur des buffers de même type
Légende Tri par ordre croissant des dates de début (a,b,c,d,e,f)
Td Tf
Tri par ordre décroissant des dates de fin (f,e,d, b, c,a)
taille
taill
Durée d ’allocation du registre
Tri par ordre décroissant des tailles (a,b,e,c,d,f)
a
Ordre total étape 1
a b
op1 op2 op3 op4 op5 op6
étape 2
(a,e) b

b(2) f (1) Minimum 6 couleurs étape 3


(a,e) b c

=
étape 4
a(3) e(2) (a,e,d) b c

c(1) étape 5
d(1) 6 registres étape 6
(a,e,d) (b,f) c

minimum global = 6

RAULET Mickaël – 18 mai 2006 24


Plan
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Introduction

• SynDEx

• Minimisation mémoire
– Objectifs
– Principes d’allocation
– Mono-composant
– Multi-composants

• Applications

• Conclusions perspectives

RAULET Mickaël – 18 mai 2006 25


Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Multi-composants
• Considération des buffers communiqués
inter-processeurs
– Diminution accrue de l’espace mémoire
• Durée de vie des buffers communiqués
liée au modèle de synchronisation de
SynDEx

RAULET Mickaël – 18 mai 2006 26


Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Multi-composants
• Distribution/ordonnancement
processeur1 processeur2

RAM RAM
Opr1 Com1a SAM Com2a Opr2
D/P D/P

allocP
allocDl
allocP
allocDl
allocD allocD
allocD
calc1 send receive
allocD calc1
in in out out
allocD calc2
allocD

calc2 send receive allocD


allocD
allocP allocP
allocDl allocDl
RAULET Mickaël – 18 mai 2006 27
Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Multi-composants
processeur1 processeur2

RAM RAM
Opr1 Comr1a SAM Comr2a Opr2
D/P D/P

in_ini out_ini

loop all.Pin loop loop loop


all.Pcalc
all.Dlin
in all.Dlcalc

all.Din/calc send receive


all.Din/calc all.Din/calc calc
all.Dcalc/out

out
all.Pout
endloop endloop endloop all.Dlout
endloop
in_end
out_end
RAULET Mickaël – 18 mai 2006 28
Minimisation mémoire :
Multi-composants
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Schéma de principe dans SynDEx


processeur1

Opr1
RAM
Comr1a
Suc-E
D/P
in

Durée de vie du buffer


loop loop Pre-F
Suc-F
send

sur un cycle
Suc-E s_empty
Pre-E
in
Suc-E
Pre-F Suc-F
in
send Pas dePre-F
réutilisation possible
Suc-F
s_full
des buffers communiqués
Pre-E send
inter-processeurs Pre-E
endloop endloop RAULET Mickaël – 18 mai 2006 29
Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Multi-composants
processeur1 loop loop
RAM
Opr1 Comr1a
D/P

in1

Durée de vie
loop loop

minimale
du buffer
Suc-E Pre-F
s_empty Suc-F
in1 Suc-F send
Pre-E
Pre-F send Suc-E
s_full Pre-E

Calcul
Calcul
Communications
Modèle SynDEx bloquantes
endloop endloop endloop endloop
RAULET Mickaël – 18 mai 2006 30
Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Multi-composants
processeur1 loop loop
RAM
Opr1 Comr1a
D/P

Durée de vie du buffer


loop loop in1

= adéquation
Suc-E Pre-F
s_empty Suc-F
in1 Suc-F send
Pre-F send Calcul1 Pre-E

s_full Pre-E
Suc-E
Calcul
Communications
Calcul2
comme sur le
endloop
graphe temporel
endloop
endloop endloop
RAULET Mickaël – 18 mai 2006 31
Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Multi-composants
• Solution :
– Modifications du modèle SynDEx
– Sans changement de l’ordre total
– Avec prise en compte des temps de
communications
• Sans changement de la latence
– Optimisations de la mémoire avec un gain
important

RAULET Mickaël – 18 mai 2006 32


Minimisation mémoire :
Multi-composants
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Principe de la réutilisation
opr1 Com1a opr2 Opr1 Opr2
RAM RAM
o1
all.D_o1o2

all.D_o1o2 all.D_c1o5

all.D_o1o2
c1

all.D_c1o5
Temps

o2

all.D_o2o3
o5

all.D_o5c2
all.D_o2o3

Temps

all.D c2o4

all.D o3o4
o3 c2 all.D_o5c2
all.D_o3o4
o4 all.D_c2o4

RAULET Mickaël – 18 mai 2006 33


Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Conclusion
• Minimisation mémoire mono-composant efficace
– Minimisation « registre »
– Minimisation « tétris »

• Minimisation mémoire multi-composants


– Prise en compte des buffers communiqués inter-processeurs

• Optimisation supplémentaire de la génération de code


– Opérations implicites générant des « recopies » de buffers à
buffers :
• Explode – implode
• Conditionnement
• Retard ou mémoire

RAULET Mickaël – 18 mai 2006 34


Plan
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Introduction

• SynDEx

• Minimisation mémoire

• Applications
– UMTS
– MPEG-4
– LAR

• Conclusions perspectives

RAULET Mickaël – 18 mai 2006 35


Applications : UMTS FDD
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Troisième génération de téléphone


portable
• Caractéristiques
– Débits maximum 2 Mbits/sec
– Temps réel 10ms par trame
– 1 trame = 15 slots

RAULET Mickaël – 18 mai 2006 36


Applications : UMTS (Tx)
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• init
• trame par trame trame
• slot par slot
slot
init

RAULET Mickaël – 18 mai 2006 37


Applications : UMTS
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Minimisation UMTS
Modulation Démodulation
SynDEx 1 435 348 2 185 612
Registre 792 460 920 596
Tétris 727 128 808 140
Tétris multi-composant 274 220 376 284
Gain maximum 7 7

• Portage sur un C6203 à 512 ko de RAM


• Automatique  Mieux que manuellement
• Gain de 7  Très proche d’un gain attendu de 7.5
• Minimisation de toutes les recopies  Diminution du temps

RAULET Mickaël – 18 mai 2006 38


Applications : MPEG-4
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Successeur de MPEG-2
• Norme composée de sous-parties
– Partie 2 = Vidéo
• Norme complexe (boîte à outils)
– Scène composée d’objets
– Images de synthèse
– Images naturelles
–…

RAULET Mickaël – 18 mai 2006 39


Application : Décodeur
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES MPEG-4

• Décodeur images I (Intra) existant :


– Description bas niveau  Granularité fine
• 3 niveaux d’abstraction de description
– Niveau image  haut niveau
• Image I, P et B
– Niveau macrobloc  niveau intermédiaire
• 16 * 16 pixels
– Niveau bloc  bas niveau
• 6 blocs dans un macrobloc
– 4 blocs de luminance
– 2 blocs de chrominance

RAULET Mickaël – 18 mai 2006 40


Application : Décodeur MPEG-4
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
Description gros grain

• Description niveau Image


– Images I
– Images P
Séquence Vidéo
– Images B

Image I Image P Image B

Affichage Image

• Base des descriptions plus détaillées


– Description niveau intermédiaire
– Description bas niveau

RAULET Mickaël – 18 mai 2006 41


Application : Décodeur MPEG-4
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
Description gros grain

Récupération de l’image
dans le flux
Choix affichage
du type
de décodage
d’image

Mémorisation
Vop_coding_type = 0 Vop_coding_type = 1 imageVop_coding_type = 4

Image I Image P Image B

RAULET Mickaël – 18 mai 2006 42


Application : Décodeur MPEG-4
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
Description gros grain

• Description de haut niveau


– Gros grain
– Résultats sur DSP (C6416 à 400 MHz)
temps de décodage temps moyen temps moyen
max I max P du décodage avec comm.
176*144 (QCIF) - 2048 kbps 6,3 ms 7 ms 5,6 ms 12,2 ms
352*288 (CIF) - 2048 kbps 22,5 ms 23,3 ms 14,3 ms 30,4 ms
640*480 - 2048 kbps 50,5 ms 50,7 ms 34,2 ms 75 ms

 Extension de ces résultats sur DSP à 1GHz


 Temps moyen avec communications
• QCIF : 5 ms
• CIF : 12 ms
• 640*480 : 30 ms

RAULET Mickaël – 18 mai 2006 43


Application : Décodeur MPEG-4
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
Description grain fin

• Décodeur bas niveau  grain fin


– Granularité du décodeur :
• VLC inverse (VLC = codage à longueur variable)
• Scan inverse (scan = balayage)
• DCT inverse (DCT = transformée discrète en cosinus)
• …
– Possibilité de parallélisme

• Basée sur
– Description haut niveau
– Description images I bas niveau

RAULET Mickaël – 18 mai 2006 44


Application : Décodeur MPEG-4
Description grain fin
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Schéma hiérachiques :
Séquence Vidéo

Description haut niveau


Image I Image P

Macrobloc I Macrobloc P
Niveau macrobloc

MB Codé MB non codé

MB INTRA I MB INTRA P MB INTRAQ P MB INTER MB INTERQ MB INTER4V

Blocs Luminance Blocs Luminance Blocs Luminance Bloc Cb Bloc Cr


VLC inverse MB Bloc Cb I Bloc Cr I Interpolation MB Bloc Cb P Bloc Cr P
I P non codés Non codé Non codé

X1 I X2 I X3 I X4 I XCb I XCr I X1P X2 P X3 P X4 P XCb P XCr P


Niveau bloc

Description Images I Description Images P


bas niveau cbp Xn = 0 cbp Xn = 1
bas niveau
RAULET Mickaël – 18 mai 2006 45
Application : Décodeur MPEG-4
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
Description grain fin
• Complexité SynDEx du décodeur bas niveau
– Nombre d’opérations proportionnel au nombre de macroblocs

taille de la vidéo(1) nombre d'opérations

1 MB 493
5 MB 2 385
10 MB 4 720
20 MB 9 390
50 MB 23 400
99 MB 32 273
(1)
en nombre de macroblocs MB
– Temps pour générer l’exécutif 
(QCIF > 12 h !)
Nombre d’opérations 
– Longueur de l’exécutif 

Description intermédiaire niveau macrobloc

RAULET Mickaël – 18 mai 2006 46


Application : Décodeur MPEG-4
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
Description gros grain
• Décodeur MPEG-4 sur 2 processeurs :
– description de haut niveau (352*288)
Decodeur MPEG4 processeur 1 processeur 2
SynDEx 253 452 3 323 292
Registre 253 452 3 020 000
Tétris multi-composants 152 076 2 030 000
Gain maximum 1,6 1,6

• Gain de 54 recopies
• Minimisation mémoire :
– Gain de 1,6 (Granularité de l’application trop forte)

RAULET Mickaël – 18 mai 2006 47


Application : Décodeur MPEG-4
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
Description gros grain
• Haut niveau

taille 80*64 haut niveau


sans optimisation Tétris
436 316 409 392
gain : 1,07

• Niveau intermédiaire
taille 80*64 niveau intermédiaire taille 176*144 niveau intermédiaire
sans optimisation Tétris sans optimisation Tétris
3 350 224 291 416 40 480 416 780 276
gain : 11 gain : 52

• Bas niveau
taille 80*64 bas niveau
sans optimisation Tétris
7 876 428 768 012
gain : 10

RAULET Mickaël – 18 mai 2006 48


Applications : LAR
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Méthode développé au sein du laboratoire


Image
• Méthode basée contenu
• Méthode hiérarchique
– Images fixes
– Fort taux de compression

RAULET Mickaël – 18 mai 2006 49


Application : CODEC LAR
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

Codeur de contour
Paramétrage Codeur_contours
xsc_coder
Recup_Param
im_sommets stream_AC2x2
xsc_coder
im_tailles
CoefQuant_AC2x2
im_i
seuil_grad
CoefQuant_AC2x2

Codeur de luminance
CoefQuant
CoefQuantcr
Image décodée
seuil_gradcr Codeur_Y
Decodeur_Y Decodeur_contours Post-traitement
xsc_coder
xsc_decoder xsc_decoder
Post_traitement
im_i stream_ErPred
stream_ErPred Y stream_AC_reconst2x2 im_reconst
seuil_grad Taille_flux_ErPred
stream_quad im_tailles im_org
CoefQuant_i stream_quad im_quant_i temp
im_sommets im_tailles
Taille_flux_quad im_tailles imQuant_o
im_sommets
im_Quant im_sommets

im_sommets
im_tailles_o
Display_1

Image
Read_pic xsc_coder
xsc_server Y
Y
Codeur_UV reconstruite U
Display
xsc_client
au codeur
xsc_coder
U V
seuil_grad u_im_Quant Y
V
CoefQuant_i v_im_Quant U Display_2
xsc_client
Lecture de u_im_i u_stream_ErPred V

v_im_i u_Taille_flux_ErPred Y
l’image
Decodeur_UV
uv_stream_quad xsc_decoder U
uv_Taille_flux_quad V
u_stream_ErPred U
v_stream_ErPred
uv_stream_quad V Image
v_Taille_flux_ErPred
v_stream_ErPred
décodée
Codeur de chrominance Image
Décodeur de chr décodée
post-traitée
Display_3
xsc_coder
Y
U
V

Image d’origne

RAULET Mickaël – 18 mai 2006 50


Application : CODEC LAR
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Slice

Codeur de luminance
Codeur_Y
xsc_coder Décodeur de luminance
im_i stream_ErPred Decodeur_Y
seuil_grad Taille_flux_ErPred xsc_decoder
CoefQuant_i stream_quad
stream_ErPred Y
Taille_flux_quad
stream_quad im_tailles
im_Quant
1/2 image im_sommets

1/2 image im_sommets


im_tailles_o des sommets

y/m pixels
originale Image

y/m pixels
des sommets 1/2 image
1/2 image décodée

y/m pixels
Paramét reconstruite x pixels
x pixels

y/m pixels

y pixels
Recup_Param
xsc_coder
CoefQuant_AC2x2
Join x pixels Image
seuil_grad
Image originale x pixels décodée
Division par m (ici m=2)

CoefQuant
x pixels
CoefQuantcr Read_Pic 1/2 image
seuil_gradcr xsc_server
des sommets
y pixels

y pixels
Y
Fork y/m pixels Join Join

y pixels

Recom p
U
V
1/2 image
originale
1/2 image
y/m pixels

x pixels x pixels
reconstruite x pixels
Image
y/m pixels
x pixels

y/m pixels
reconstruite
x pixels
Codeur de luminance
Codeur_Y x pixels
xsc_coder
Décodeur de luminance 1/2 image
im_i stream_ErPred Decodeur_Y décodée
seuil_grad Taille_flux_ErPred xsc_decoder
CoefQuant_i stream_quad
stream_ErPred Y
Taille_flux_quad
stream_quad im_tailles
im_Quant
im_sommets
im_sommets
im_tailles_o

RAULET Mickaël – 18 mai 2006 51


Application : CODEC LAR
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Codec LAR sur 2 CODEC LAR processeur 1 processeur 2


Processeurs SynDEx sans optimisation 2 514 000 1 926 000
– Div_pic = 1 optimisation 1 1 788 000 1 686 000
– 117 opérations
Tétris multi-composants 931 000 874 000
– 352*288
Gain 3 2,1

• Codec LAR sur 2 CODEC LAR processeur 1 processeur 2


processeurs SynDEx sans optimisation 2 980 000 2 342 000
– Div_pic = 2 Registre 1 959 000 1 759 000
– 239 opérations
Tétris multi-composants 777 000 785 000
– 352*288
Gain 3,9 3

RAULET Mickaël – 18 mai 2006 52


Plan
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

• Introduction

• SynDEx

• Minimisation mémoire

• Applications

• Conclusions perspectives
RAULET Mickaël – 18 mai 2006 53
Conclusions perspectives :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Optimisation mémoire
• Conclusion
– Génération de code automatique embarquée
– Post-traitement mémoire efficace
– Codage dans l’outil SynDEx
• Temps de minimisation efficace pour trouver la solution
• Perspectives
– Mise en place de la cache
• Travaux de F. Urban
– Mise en place des algorithmes génétiques
• Minimisation multi-critères

RAULET Mickaël – 18 mai 2006 54


Conclusions perspectives :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Optimisation mémoire

Algorithme Architecture

Adéquation

Mise en place
d’une
heuristique
Génération multi-critère :
de Algorithme
Code Génétique

RAULET Mickaël – 18 mai 2006 55


Conclusions perspectives :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Applications
• Conclusion
– Diversité des applications
– Complexité des applications
• Niveau de granularité différent
• Perspectives
– Intégration d’un décodeur MPEG4-AVC dans un terminal (projet Mobim@ge)
– Extension du LAR (LAR vidéo)
– Extension de la méthodologie AAA pour des systèmes multi-couches (G. Roquier)
• Alliant vidéo et télécommunications

RAULET Mickaël – 18 mai 2006 56


INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

RAULET Mickaël – 18 mai 2006 57


Application : Décodeur MPEG-4
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
Minimisation mémoire

• Utiliser intelligemment les mémoires suivant l’application


– Traitement sur des données en mémoire interne :
 Plus rapide qu’avec des données en mémoire externe

• Pour le décodeur MPEG-4 :


– Objectif : placement mémoire optimal sur les DSP
• Buffers touchant au flux  mémoire interne
• Buffers image  mémoire externe : temps de décodage 

Utilisation du QDMA
(accélération des transferts mémoires)

RAULET Mickaël – 18 mai 2006 58


Application : Décodeur MPEG-4
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
Minimisation mémoire

• Utilisation du QDMA pour le décodeur :


– Transferts mémoires externe-interne et externe-externe
• Mémorisation de l’image, recopie dans les buffers de sortie de l’image

Transfert du bloc 8x8 Transfert du bloc 8x8


de l’image dans le bloc dans l’image

Bloc 8x8 Bloc 8x8

Image Image

Isolement d’un macrobloc dans une image Stockage d’un bloc dans l’image

RAULET Mickaël – 18 mai 2006 59

Vous aimerez peut-être aussi