Upload
serina-stephenson
View
40
Download
3
Embed Size (px)
DESCRIPTION
Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles. RAULET Mickaël 18 mai 2005 Mitsubishi ITE - Equipe Software Radio IETR/INSA - Groupe Image INRIA – Groupe AOSTE. Plan. Introduction Objectifs Problématique SynDEx Minimisation mémoire - PowerPoint PPT Presentation
Citation preview
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
1UMR6164
Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures
Parallèles
RAULET Mickaël18 mai 2005
Mitsubishi ITE - Equipe Software Radio IETR/INSA - Groupe Image
INRIA – Groupe AOSTE
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
2
Plan
• Introduction– Objectifs– Problématique
• SynDEx
• Minimisation mémoire
• Applications
• Conclusions perspectives
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
3
Introduction : Objectifs
• 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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
4
Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réelsur 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)
Introduction : Problématique
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
5
Introduction : Problématique
Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réelsur architectures distribuées hétérogènes
– Applications fortement orientées données
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
6
Introduction : Problématique
Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réelsur architectures distribuées hétérogènes
– Minimisation des ressources et exécution “suffisamment” rapide
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
7
Introduction : Problématique
Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réelsur architectures distribuées hétérogènes
– Distribution/ordonnancement des traitements
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
8
Introduction : Problématique
Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réelsur 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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
9
Introduction : Problématique
• 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émoireNécessité d’une méthodologie adaptée
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
10
SynDEx : Présentation
• 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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
11
SynDEx : Caractéristiques
• 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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
12
SynDEx : Caractéristiques
Graphe d’Architecture
Graphe d’ Algorithme
Adéquation
root DSP1FIFOs
Opéra-
tionsOpér
a-tions
Graphe Temporel
- Niveaux hiérarchiques
- Conditionnement- Répétition
www.syndex.org
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
13
SynDEx : Caractéristiques
• 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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
14
Plan
• Introduction
• SynDEx– Présentation– Caractéristiques– Chaîne de développement
• Minimisation mémoire
• Applications
• Conclusions perspectives
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
15
SynDEx : Chaîne de développement
Algorithme Architecture
ExécutifsSpécifiques
ExécutifsGénériques
Adéquation
• Télécommunication – UMTS
– MC-CDMA
• Vidéo– LAR
– MPEG4
• Plate-formes– Sundance– Pentek
• Composant– DSP– FPGA
Bibliothèques
• Prototypage rapide et domaine d’applications
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
16
FPGA1 (Virtex)
SDBaSDBbCP0CP1CP2CP3
PALtoYUV (BT829)
VID_IN
DSP2 (TMS320C6416)
SDBaSDBbCP0CP1PCI
YUVtoPAL (BT864a)
VID_OUT
DSP3 (TMS320C6414)
SDBaSDBb
VID_INVID_OUT
PC (Pentium)
PCI
PCI (BUS_PCI)
Bus_6 (CP)
Bus_3 (SDB)
IN (VID_IN)
OUT (VID_OUT)
Bus_1 (SDB)
Embedded Motherboard: SMT320
SMT361
SMT319
SMT358
Personal Computer
SynDEx : Chaîne de développement
• Exemple de topologie : Sundance
Plusieurs types de processeurs et de communicateurs
Framegrabber
Module FPGA
Module DSP
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
17
SynDEx : Chaîne de développement
Génération de code
Génériquel’architectureDépendant de
l’applicationDépendant de
Type de mediaDépendant du
Type de processeur
Dépendant du
SynDEx.m4x
C62x.m4x
C64x.m4x
Pentium.m4x
Fpga.m4x
SDB.m4x (C62x , C64x, Fpga)
CP.m4x (C62x , C64x, Fpga)
BUS_PCI_RAM.m4x ( Pentium, C62x, C64x)
BUS_PCI_SAM.m4x ( Pentium, C62x , C64x)
TCP.m4x (Pentium, C62x)
Bifo.m4x (C62x, Fpga)
Bifo_DMA.m4x (C62x, Fpga)
ApplicationName.m4x
• Arborescence des bibliothèques
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
18
SynDEx : Chaîne de 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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
19
Plan
• Introduction
• SynDEx
• Minimisation mémoire– Objectifs– Principes d’allocation– Mono-composant– Multi-composants
• Applications
• Conclusions perspectives
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
20
Minimisation mémoire : Objectifs
Algorithme Architecture
Adéquation
Génération de
Code
Minimisationdes allocations
de buffers
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
21
allocD
allocD allocD
allocD
Minimisation mémoire : Principes d’allocation
Une allocation (buffer) allouée pour chaque sortie
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
22
o2
opr1RamD/P
o1
o4
o3
all.Po1
all.Po2
all.Po4
all.Po3
all.D_o1o2
all.D_o2o3al
l.D_o
1o2
all.D
_o2o
3
all.D_o3o4al
l.D_o
3o4 al
l.Po1
all.P
o2
all.P
o4
all.P
o3
all.Dlo1
all.Dlo2
all.Dlo4
all.Dlo3
all.D
lo1
all.D
l2al
l.Dlo
4al
l.Dlo
3
all.D
_o3o
4
ESPACE MEMOIRE RAM données données communiquées locales programmes
Minimisation mémoire : Mono-composant
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
23
b
a
c e
df
Graphe d ’intervalles
Minimisation mémoire : Mono-composant
• Coloriage de graphe– Approche classique– minimisation des buffers (« registre »)
Tri par ordre croissant des dates de début
• Méthode gloutonne• Minimum de couleur• Buffers de même type et de même taille
3 couleurs = 3 buffers
TfTd
Durée d ’allocation du registre
Légende
ac
b
d
e
f
Graphe d’intervalles
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
24
Minimisation mémoire : 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
TfTd
Durée d ’allocation du registre
Légende
taille
TfTd
Durée d ’allocation du registre
Légende
taill
a(3)
c(1)
b(2)
d(1)
e(2)
f (1)
minimum global = 6
Ordretotalop1 op2 op3 op4 op5 op6
Tri par ordre décroissant des dates de finTri par ordre décroissant des dates de fin (f,e,d, c,b ,a)
Tri par ordre croissant des dates de débutTri par ordre croissant des dates de début (a,b,c,d,e,f)
Tri par ordre décroissant des taillesTri par ordre décroissant des tailles ( b,a ,e,c,d,f)
étape 1
a
étape 2
a b
étape 3
(a,e) b
étape 4
(a,e) b c
étape 5
(a,e,d) b c
étape 6
(a,e,d) (b,f) c
Minimum 6 couleurs =
6 registres
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
25
Plan
• Introduction
• SynDEx
• Minimisation mémoire– Objectifs– Principes d’allocation– Mono-composant– Multi-composants
• Applications
• Conclusions perspectives
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
26
Minimisation mémoire : 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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
27
Opr1 Com1a Com2a Opr2
processeur1 processeur2
RAMD/P SAM
RAMD/P
send receive
send receive
in out
calc1
calc2
incalc1
outcalc2
allocD
allocD
allocD
allocDallocD
allocDallocD
allocD
allocPallocDl
allocPallocDl
allocPallocDl
allocPallocDl
Minimisation mémoire : Multi-composants
• Distribution/ordonnancement
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
28
in
calc
out
send receive
Opr1 Comr1a Comr2a Opr2
processeur1 processeur2
RAMD/P SAM
RAMD/P
all.Pin
all.Dlinall.Pcalc
all.Dlcalc
all.Poutall.Dlout
all.Din/calc
all.Din/calc
all.Dcalc/out
all.Din/calc
loop loop loop loop
endloop endloop endloop endloop
in_ini
in_end
out_ini
out_end
Minimisation mémoire : Multi-composants
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
29
in
send
Opr1 Comr1a
processeur1
RAMD/P
loop loop
endloop endloop
in
sendPre-E
Pre-F
Suc-E
Suc-F
in
sendPre-E
Pre-F
Suc-E
Suc-Fs_full
Pre-F Suc-F
Suc-E
Pre-E
s_empty
Minimisation mémoire : Multi-composants
• Schéma de principe dans SynDEx
Dur
ée d
e vi
e du
buf
fer
sur
un c
ycle
Pas de réutilisation possibledes buffers communiquésinter-processeurs
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
30
Minimisation mémoire : Multi-composants
send
Opr1 Comr1a
processeur1
RAMD/P
loop loop
endloop endloop
in1
Suc-E
Pre-E
s_empty
s_full
Pre-F
Suc-F Dur
ée d
e vi
e du
buf
fer
min
imal
eCalcul
in1
send
loop loop
endloop endloop
Calcul
Pre-FSuc-F
Pre-ESuc-E
Communications bloquantesModèle SynDEx
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
31
Minimisation mémoire : Multi-composants
send
Opr1 Comr1a
processeur1
RAMD/P
loop loop
endloop endloop
in1
Suc-E
Pre-E
s_empty
s_full
Pre-F
Suc-F
Dur
ée d
e vi
e du
buf
fer
= a
déqu
atio
nCalcul
in1
send
loop loop
endloop endloop
Calcul2
Calcul1
Pre-FSuc-F
Pre-E
Suc-E
Communications comme sur le graphe temporel
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
32
Minimisation mémoire : 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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
33
o2
o1
o4
o3
o5
c1
c2
sp
meT
Minimisation mémoire : Multi-composants
• Principe de la réutilisationopr1 opr2Com1a
all.D_c1o5
all.D_o5c2
all.D_o1o2
all.D_o2o3
all.D_o3o4
all.D_o1o2
all.D_c2o4
Opr1RAM
Opr2RAM
sp
meT
all.
Dc
2o
4
all.
D_c
1o5
all.D
_o5c
2all.D
_o1
o2
all.D
_o2o
3
all.
Do3
o4
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
34
Minimisation mémoire :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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
35
Plan
• Introduction
• SynDEx
• Minimisation mémoire
• Applications– UMTS– MPEG-4– LAR
• Conclusions perspectives
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
36
Applications : UMTS FDD
• 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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
37
init
Applications : UMTS (Tx)
• inittrame
slot
• trame par trame• slot par slot
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
38
Applications : UMTS
• Minimisation UMTS
• 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
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
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
39
Applications : MPEG-4
• 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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
40
Application : Décodeur 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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
41
Application : Décodeur MPEG-4 Description gros grain
• Description niveau Image– Images I– Images P– Images B
• Base des descriptions plus détaillées – Description niveau intermédiaire– Description bas niveau
Séquence Vidéo
Image BImage I
Affichage Image
Image P
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
42
Application : Décodeur MPEG-4Description gros grain
affichage
Récupération de l’image dans le flux
Mémorisation image
Choix du type
de décodaged’image
Vop_coding_type = 0 Vop_coding_type = 1 Vop_coding_type = 4
Image I Image BImage P
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
43
Application : Décodeur MPEG-4Description gros grain
• Description de haut niveau– Gros grain– Résultats sur DSP (C6416 à 400 MHz)
Extension de ces résultats sur DSP à 1GHz Temps moyen avec communications
• QCIF : 5 ms
• CIF : 12 ms
• 640*480 : 30 ms
temps moyen temps moyenmax I max P du décodage avec comm.
176*144 (QCIF) - 2048 kbps 6,3 ms 7 ms 5,6 ms 12,2 ms352*288 (CIF) - 2048 kbps 22,5 ms 23,3 ms 14,3 ms 30,4 ms640*480 - 2048 kbps 50,5 ms 50,7 ms 34,2 ms 75 ms
temps de décodage
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
44
Application : Décodeur MPEG-4Description 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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
45
Application : Décodeur MPEG-4Description grain fin
• Schéma hiérachiques : Séquence Vidéo
Image PImage I
Description haut niveau
Niveau macrobloc
Niveau bloc
Macrobloc I
MB INTRA I
VLC inverse MBBlocs Luminance
I Bloc Cb I Bloc Cr I
X1 I X2 I X3 I X4 I XCb I XCr I
Description Images I bas niveau
Macrobloc P
MB non codé
Blocs Luminance non codés
Bloc CbNon codé
Bloc CrNon codé
MB Codé
MB INTER MB INTERQ MB INTER4V
Interpolation MBBlocs Luminance
PBloc Cb P Bloc Cr P
X1P X2 P X3 P X4 P XCb P XCr P
cbp Xn = 0 cbp Xn = 1
MB INTRA P MB INTRAQ P
Description Images P bas niveau
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
46
• Complexité SynDEx du décodeur bas niveau– Nombre d’opérations proportionnel au nombre de macroblocs
– Temps pour générer l’exécutif Temps pour générer l’exécutif (QCIF > 12 h !)(QCIF > 12 h !)
– Longueur de l’exécutif Longueur de l’exécutif Nombre d’opérations Nombre d’opérations
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
Description intermédiaire niveau macroblocDescription intermédiaire niveau macrobloc
Application : Décodeur MPEG-4Description grain fin
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
47
Application : Décodeur MPEG-4Description gros grain
• Décodeur MPEG-4 sur 2 processeurs : – description de haut niveau (352*288)
• Gain de 54 recopies• Minimisation mémoire :
– Gain de 1,6 (Granularité de l’application trop forte)
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
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
48
Application : Décodeur MPEG-4Description gros grain
• Haut niveau
taille 80*64 haut niveau
sans optimisation Tétris
436 316 409 392
gain : 1,07
taille 80*64 niveau intermédiaire
sans optimisation Tétris
3 350 224 291 416
gain : 11
taille 176*144 niveau intermédiaire
sans optimisation Tétris
40 480 416 780 276
gain : 52
taille 80*64 bas niveau
sans optimisation Tétris
7 876 428 768 012
gain : 10
• Niveau intermédiaire
• Bas niveau
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
49
Applications : LAR
• 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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
50
Codeur_contours
xsc_coder
im_sommets
im_tailles
im_i
CoefQuant_AC2x2
stream_AC2x2
Decodeur_contours
xsc_decoder
stream_AC_reconst2x2
im_org
im_tailles
im_sommets
im_reconst
Post_traitement
im_quant_i
im_tailles
im_sommets
temp
imQuant_o
Display_2
xsc_client
Y
U
V
Imagedécodée
post-traitée
Codeur de contour
Post-traitement
Application : CODEC LAR
Recup_Param
xsc_coder
CoefQuant_AC2x2
seuil_grad
CoefQuant
CoefQuantcr
seuil_gradcr
Read_pic
xsc_server
Y
U
V
Display_3
xsc_coder
Y
U
V
Codeur_Y
xsc_coder
im_i
seuil_grad
CoefQuant_i
stream_ErPred
Taille_flux_ErPred
stream_quad
Taille_flux_quad
im_Quant
im_sommets
im_tailles_o
Decodeur_Y
xsc_decoder
stream_ErPred
stream_quad
Y
im_tailles
im_sommets
Image d’origne
Lecture del’image
Paramétrage
Codeur de luminance
Codeur_UV
xsc_coder
seuil_grad
CoefQuant_i
u_im_i
v_im_i
u_im_Quant
v_im_Quant
u_stream_ErPred
u_Taille_flux_ErPred
uv_stream_quad
uv_Taille_flux_quad
v_stream_ErPred
v_Taille_flux_ErPred
Display_1
xsc_coder
Y
U
V
Decodeur_UV
xsc_decoder
u_stream_ErPred
uv_stream_quad
v_stream_ErPred
U
V
Display
xsc_client
Y
U
V
Imagereconstruiteau codeur
Imagedécodée
Codeur de chrominance Décodeur de chr
Image décodée
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
51
Application : CODEC LAR Slice
Recup_Param
xsc_coder
CoefQuant_AC2x2
seuil_grad
CoefQuant
CoefQuantcr
seuil_gradcr
Read_Pic
xsc_server
Y
U
V
Fork
x pixels
x pixels
x pixels
y p
ixe
ls
y/m
pix
els
y/m
pix
els
Div
isio
n par
m (i
ci m
=2)
Image originale
1/2 imageoriginale
1/2 imageoriginale
Paramét
Codeur_Y
xsc_coder
im_i
seuil_grad
CoefQuant_i
stream_ErPred
Taille_flux_ErPred
stream_quad
Taille_flux_quad
im_Quant
im_sommets
im_tailles_o
Codeur_Y
xsc_coder
im_i
seuil_grad
CoefQuant_i
stream_ErPred
Taille_flux_ErPred
stream_quad
Taille_flux_quad
im_Quant
im_sommets
im_tailles_o
Join
Joinx pixels
x pixels
x pixels
x pixels
x pixels
y/m
pix
els
y/m
pix
els
y/m
pix
els
y/m
pix
els
y p
ixe
lsy
pix
els
Codeur de luminance
Codeur de luminance
1/2 imagedes sommets
1/2 imagedes sommets
1/2 imagereconstruite
1/2 imagereconstruite
Imagereconstruite
Imagedes sommets
Decodeur_Y
xsc_decoder
stream_ErPred
stream_quad
Y
im_tailles
im_sommets
Decodeur_Y
xsc_decoder
stream_ErPred
stream_quad
Y
im_tailles
im_sommets
Join
x pixels
x pixelsx pixels
y p
ixe
ls
y/m
pix
els
y/m
pix
els
Décodeur de luminance
Décodeur de luminance 1/2 imagedécodée
1/2 imagedécodée
Imagedécodée
Reco
mp
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
52
• Codec LAR sur 2 Processeurs
– Div_pic = 1– 117 opérations– 352*288
CODEC LAR processeur 1 processeur 2
SynDEx sans optimisation
2 514 000 1 926 000
optimisation 1 1 788 000 1 686 000
Tétris multi-composants 931 000 874 000
Gain 3 2,1
• Codec LAR sur 2 processeurs
– Div_pic = 2– 239 opérations– 352*288
CODEC LAR processeur 1 processeur 2
SynDEx sans optimisation
2 980 000 2 342 000
Registre 1 959 000 1 759 000
Tétris multi-composants 777 000 785 000
Gain 3,9 3
Application : CODEC LAR
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
53
Plan
• Introduction
• SynDEx
• Minimisation mémoire
• Applications
• Conclusions perspectives
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
54
Conclusions perspectives :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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
55
Conclusions perspectives :Optimisation mémoire
Algorithme Architecture
Adéquation
Génération de
Code
Mise en place d’une
heuristiquemulti-critère :Algorithme Génétique
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
56
Conclusions perspectives :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 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
57
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
58
• 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 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 QDMAUtilisation du QDMA(accélération des transferts mémoires)(accélération des transferts mémoires)
Application : Décodeur MPEG-4Minimisation mémoire
RAULET Mickaël – 18 mai 2005
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
59
• 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
Image
Bloc 8x8
Transfert du bloc 8x8dans l’image
Transfert du bloc 8x8 de l’image dans le bloc
Bloc 8x8
Image
Isolement d’un macrobloc dans une image Stockage d’un bloc dans l’image
Application : Décodeur MPEG-4Minimisation mémoire