• Par téléphone :
• Examen 60% : – 01.44.27.88.44 (en journée)
– Correction des examens 2007 et 2008
pendant le dernier cours.
1
Programme Auteurs
Type Date Lieu Contenu
Plan
• Introduction
Le multimédia • Numérisation / Compression
• Compression audio
• Compression image/vidéo
2
Origines Composants du multimédia
• Terme apparu fin des années 1980, lorsque les supports
de stockage se sont développés comme les CD-ROM. Données informatiques
Applications/Outils
• Graphisme :
– Infographie, dessin bitmap ou vectoriel, images de
synthèse ;
• Vidéo :
– Dessins animés, montage assisté par ordinateur ;
• Jeux vidéo
• Web
• PAO, CAO, etc.
• Enseignement assisté par ordinateur
• VoIP, Visio-conférence, etc.
3
Média passif
• Présentation indépendante des aspects
temporels (entiers, réels, chaînes de
caractères, textes ou images)
• En pratique, les données passives
engagent des retardements pour leur
présentation
• La temporalité (propriété mineure) n’a pas
besoin d’être ajoutée au niveau modèle de
données
4
Média actif Média adressable
• Le temps détermine plusieurs propriétés du média. • Possibilité de soumettre des requêtes sur son
– Données actives (son ou vidéo) nécessitent des contenu.
intervalles de temps pour leur présentation (ex. un • Interface homme-machine, accès non séquentiel
temps de lecture pour sa restitution)
– Recherche de mots dans un document texte,
– Références croisées qui portent sur un intervalle
temporel valide (ex. sur une vidéo l’apparition et la – Avancer, reculer, aller à un endroit précis, etc. sur un
disparition d’un personnage de la scène) document vidéo,
– Contraintes temporelles pour la récupération des – Sur une image cela n’a pas de sens (média non
données pour l’affichage du média (ex. sur des adressable).
données de type son, la récupération de deux
échantillons consécutifs doit se faire à un certain seuil • Hypermédia : désigne l’utilisation de liens
pour ne pas percevoir de distorsions lors de la hypertextes dans le contenu.
restitution sur un haut parleur)
• Télévision interactive
5
Versions (12/07) Vidéo en ligne
Flash Player Flash Player Flash Player Flash Player
6 7 8 9
l
t
t
p
s
c
e
y
e
c
e
y
pe
m
.
.
_
t
o
e
Vidéo en ligne
Numérisation/Compression
sons / images / vidéos
Partie 1
6
Numériser Numériser
• Le multimédia, nécessite de structurer et • Principe général : transformer des
synchroniser des contenus avec une possibilité
d’interaction (liens hypertextes, recherche, objets continues (à valeurs « réelles »)
navigation vidéo, etc.) en objets discrets (à valeurs entière)
– Son
• Média très différents par nature :
– Discrets et continus (son analogique) – Images
– Sonores et visuels – Vidéos
– Fixes et animés
Numériser Compresser
• Caractéristiques quantifiables d’un son ou d’une • Action de transformer des données en une
image représentation plus compacte :
– fréquence des ondes sonores émises dont la
combinaison définit physiquement la hauteur et le – Occupent moins d’espace qu’avant
timbre du son compression
– l’amplitude des ondes qui en définit la « puissance » – Il n’existe pas de compresseur absolu
7
Un exemple simple Terminologie
• Codage ASCII : 1 octet par caractère • Compression sans pertes/codage réversible :
– Les données originales peuvent être reconstituées
• Compression avec pertes/codage non réversible :
• Fichier texte contenant 100 ‘a’ – Les données originales ne peuvent être reconstituées
– Taille du fichier : 100 octets exactement
– Deux contenus différents peuvent être codés de la
même manière
• Stockage sous la forme “100a” • Compression spatiale :
– Même information stockée – 2D ou une seule image
– Taille du fichier : 4 octets • Compression temporelle :
– 4/100 taux de compression de 96% – 3D ou vidéo
8
Terminologie Codes de longueur fixe
• Chaque symbole à coder est représenté • Codes de longueur fixe
– Les mots de code sont tous de même longueur
par un mot de code
– Par exemple : ASCII, Unicode
• Un mot de code est composé de signes
élémentaires • Supposons qu’il y ait n symboles à coder :
– La valence est le nombre de signes – Nombre minimum de bits : log2 n
élémentaires utilisés – Exemple avec 6 symboles : {a, b, c, d, e, f}
• log2 6 = 2.58… = 3 bits par symbole
– Un code est binaire s’il est de valence 2 • Un codage : a=000, b=001, c=010, d=011, e=100, f=101
10-34
9
Codes complets Codage compressif
• Un code de longueur max n est complet si • L’objectif est d’obtenir un codage
– Il est intelligible
– Tout ajout d’un mot de code de longueur
compressif :
inférieur ou égale à n le rend inintelligible – Intelligible : il est possible de décoder de
manière unique
• Égalité de Kraft-McMillan (CN) – Efficace : les symboles les plus fréquents
n Lp sont codés par des mots de code les plus
∑p =1 V
p −1
=V courts
Théorème du codage de la
Entropie
source
• Donne une limite au codage compressif sans perte • Il existe un code préfixe avec une longueur
moyenne à moins d’un bit de l’entropie
• Soit n le nombre de symboles et pi la probabilité – Exemple : {A,B} avec p(A)=0.6 et p(B)=0.4
d’apparition du i-ème symbole :
n
– H = 0.97 bits
H = ∑ − pi log 2 pi
i =1 • Il existe des codes aussi proches que l’on veut
• H = plus petit nombre moyen de bits utilisables (pour les du minimum théorique :
codes binaires) – Groupement de symboles nécessaire
– Exemple : {A,B} avec p(A)=0.6 et p(B)=0.4 : H = 0.97 bits
– Entropie maximale quand les symboles apparaissent avec
même probabilité (moins prévisible) • Efficacité nécessite de prendre en compte les
fréquences d’apparition des symboles
10
Codage de Huffman Codage de Huffman
• Disposer les symbole par fréquence • Disposer les symbole par fréquence
• Connecter récursivement les deux nœuds de plus petite • Connecter récursivement les deux nœuds de plus petite
probabilité en créant les nœuds intermédiaires probabilité en créant les nœuds intermédiaires
• Mettre un label sur les branches • Mettre un label sur les branches
• En déduire le codage : • En déduire le codage :
– A=000, B=0010, C=0011, D=010, etc. – A=000, B=0010, C=0011, D=010, etc.
6
.
0
4
.
P
5
=
=
.
.
.
P
5
=
=
.
.
P
5
=
=
.
.
Codage de Huffman Codage de Huffman
• Disposer les symbole par fréquence • Disposer les symbole par fréquence
• Connecter récursivement les deux nœuds de plus petite • Connecter récursivement les deux nœuds de plus petite
probabilité en créant les nœuds intermédiaires probabilité en créant les nœuds intermédiaires
• Mettre un label sur les branches • Mettre un label sur les branches
• En déduire le codage : • En déduire le codage :
– A=000, B=0010, C=0011, D=010, etc. – A=000, B=0010, C=0011, D=010, etc.
1
1
0
1
0
6
.
.
0
4
0
1
.
.
0
1
0
5
=
=
0
2
.
.
.
.
1
1
0
1
P
5
=
=
.
.
0
1
0
0
P
5
=
=
.
.
11
Caractéristiques Exercice
• Le code utilise un nombre minimal de bits par {A,B} avec p(A)=0.6 et p(B)=0.4
symbole :
• A=0, B= 1 :
– Optimal en utilisant des mots de codes – longueur moyenne = 0.6*1+0.4*1 = 1
– Peut être éloigné de la borne théorique • AA=00, AB=01, BA=10, BB=11 :
– Optimal si les fréquences sont des puissances – longueur moyenne = 1
inverses de 2 : 1/2, 1/4, 1/8, 1/16… • AAA=00, AAB=110, ABA=100, ABB=101, BAA=010, BAB=011,
BBA=1110, BBB=1111 :
– Longueur moyenne = 0.981
• Le dictionnaire doit être envoyé avec le code
• Peut-être amélioré si les fréquences sont Et avec 4 caractères ?
variables dans les données
Limite théorique = 0.97
– Codage adaptatif
12
LZW compression LZW Compression
/QED/QE/QEE/QEB
w:= NULL
Conclusion
• Approches simples pour compresser :
– Huffman
– Shannon-Fano Compression audio
– LZW
• Sans pertes
13
Plan Transmission d’audio
• Téléchargement de fichier, lecture après
• Introduction – systèmes de partage de fichier
• Numérisation
• En streaming : lecture pendant le téléchargement
• Etendue dynamique – Web
– fonctionnalités de lecteur (avancer, reculer, etc.)
• Compression et codage
• Interactive
– VoIP
– musique collaborative
14
Formats communs Compression
• Musique • Sans pertes
– CD, DVD PCM – Méthodes classiques (Huffman, LZW, etc.)
– MP3, Ogg Vorbis
• Avec pertes
• Voix
– Méthodes basée sur les caractéristiques
– A-law/ -law (téléphonie numérique de
de l’audio et de l’ouïe
base)
– GSM (téléphonie mobile) – Plus efficaces / perte de qualité
0
t
• ∆p : pression relative
– unité le plus fin (typiquement) : 20 Pa
– échelle : environ 100 Pa
15
Numérisation Numérisation
p p
0 0
t t
0 0
t t
16
Numérisation
Deux étapes
p
• Echantillonnage
– sampling en anglais
– discrétisation dans le temps
0
t
• Quantification
– quantization en anglais
– discrétisation dans l'amplitude
17
Fréquence d’échantillonnage Fréquence d’échantillonnage
p p
0 0
t t
0 0
t t
18
Fréquences audibles L’audio CD et les audiophiles
• Gamme de 20 Hz à 20 kHz (environ) : • L’audio CD : d’une qualité
– Dépend des individus et de l’âge suffisante ?
– fréquence nécessaire : 40,0 kHz
– marge d’erreur : ???
• Large de bande : – fréquence CD : 44,1 kHz
– un peu moins de 20 kHz
• L’audio DVD : fréquences plus
élevées
• Fréquence d’échantillonnage nécessaire : – 48, 96, ou … 192,0 kHz
– 40 kHz (1 échantillon chaque 25 sec) – Meilleure qualité :
• Hautes fréquences (notes claires)
– CD audio : 44,1 kHz
19
Quantification
Etendue dynamique
p
• le rapport entre deux valeurs :
– la différence entre le plus haut et le plus bas
niveau possible
– la valeur minimale décelable du signal
– l’intensité du signal au lieu de l’amplitude – dB SPL (« sound pressure level »)
20
Equivalences
Valeurs typiques
rapport intensité décibels
• 0 dB : limite audible
x:1 10 log10 x dB • 20 à 30 dB : conversation à voix basse
• 40-50 dB : bibliothèque
1,26 1,00 dB • 60-70 dB : télévision
1,58 1,99 dB • 70-80 dB : aspirateur
• 90-100 dB : circulation dense
2,00 3,01 dB • 110-120 dB : discothèque, concert
4,00 6,02 dB • 120 dB : seuil de la douleur
• 120-130 dB : avion au décollage (à 300m)
10,00 10,00 dB • 180 dB : fusée Ariane au décollage
20,00 13,00 dB
• Sensibilité variable selon la fréquence :
100,00 20,00 dB – maximum entre 2 et 4kHz
21
Plan Compression avec pertes
• Réduire le débit, sans trop dégrader la qualité sonore
• Introduction
• Numérisation • Utilisation de processeurs de signaux (DSP)
22
Traitement par sous-bande Le psychoacoustique
• spectre divisé en 32 sous-bandes : • Prise en compte des connaissances sur
12 samples 12 samples 12 samples
l’ouïe :
d
F
0
r
e
-
– On transforme en domaine fréquentiel
l
d
F
1
r
e
-
l
d
F
2
r
e
– On supprime ce qu’on ne peut pas
-
12 samples 12 samples 12 samples entendre
l
d
F
1
r
e
-
1
v
3
v
u
b
ê
t
s
s
-
é
t
t
n
s
(
)
8
0
m
q
s
q
s
l
t
t
o
e
6
0
6
0
l
l
t
t
o
e
4
0
4
0
i
d
s
q
s
d
s
q
s
e
2
0
2
0
0
8
F
h
r
z
0
23
Plan La prévisibilité de la voix
• Introduction • Trois types de vocalisation
– sonorisée
• Numérisation • par exemple les voyelles
• Etendue dynamique • très périodique
– fricative
• Compression et codage • par exemple s, f, et v
• Numérisation du son • corrélations à court terme
– occlusive
• Numérisation de la voix • par exemple p, t, et k
• des bruits très courts
24
La qualité de la voix Des codages
• MOS = « Mean Opinion Score » • Exemples de codages de la voix :
– 5 Excellent – 1016 standard DoD à 4.8 kbps (MOS 3.5)
– 4 Bon
– GSM de l’ITU à 13 kbps (MOS 3.6)
– 3 Moyen assez bon
– 2 Médiocre – G 711 de l’ITU à 64 kbps (MOS 4.2)
– 1 Mauvais
• Pour la voix sur IP
• Basé sur des sondages (peut varier) – G 723.1 de l’ITU à 5.3 kbps (MOS 3.7)
Conclusion
• Compression audio :
– Prise en compte de connaissances sur le Compression images/vidéos
fonctionnement de la voix et de l’ouïe pour
affiner le codage.
25
Principe général L’oeil humain
• Comme pour la voix, on n’encode pas • Deux éléments
– les bâtonnets (« rods ») : environ 120 M
tout • vision nocturne
• perception de formes et mouvement
– quelles longueurs d’onde ?
– les cônes : environ 6,5 M
– à quelle finesse ? • vision diurne
• perception des couleurs
• 3 types
– « bleu » (sensible aux ondes courtes)
• Dépend de l’œil humain – « vert » (sensible aux ondes moyens)
– « rouge » (sensible aux ondes longues)
• en cas de manque : « daltonisme »
350 400 450 500 550 600 650 700 750 800
source : http://en.wikipedia.org/wiki/Cone_cell
d’après Bowmaker J.K. and Dartnall H.J.A., "Visual pigments of rods and cones in a
human retina." J. Physiol. 298: pp 501-511 (1980).
26
Eléments de la couleur Sensibilité de l’oeil
• Luminance (intensité) • Luminance
– Energie rayonnant d’une source jusqu’à l’œil
– (clarté pour la réflexion d’un objet)
– Sensibilité élevée
– Claire ou sombre
• Chrominance (variations de couleur)
• Teinte
– Longueur d’onde dominante – Sensibilité faible
– Type de couleur (bleu, jaune, rouge) – 350 000 couleurs différentes
– 128 teintes
• Saturation • sensibilité maximale pour la jaune
– Fonction inverse de la largeur de la bande du spectre émis
ou réfléchi – 20 saturations
– Pâle ou vive • sensibilité maximale pour la rouge violacé
27
Synthèse additive : exemple Synthèse soustractive
l’image couleur :
• Absorption pondérée de plusieurs composantes primaires
28
Modèle CIE XYZ (tristimulus) Traduction entre RVB et XYZ
• Coordonnées : (Y)
• X, Y, et Z • X, Y, et Z sont chacun une somme
• les nouvelles ‘couleurs’ pondérée des composantes primaires
primaires (remplacent R, G, B)
(X)
• Chacune correspond au niveau
d’excitation d’un des types de
bâtonnet
• Comprend le triangle de
Maxwell • x et y : la chromaticité
• x et y produisent toutes les – x = X / (X+Y+Z)
variantes de couleur
possible – y = Y / (X+Y+Z)
29
Modèles CIE Luv et Lab Image Matricielle
• Définis par la CIE en 1976 • Composition en termes de « pixels »
– le modèle Yxy ne correspond pas linéairement – picture elements
à notre perception de couleurs
30
Nombre de bits par pixel Réduction en profondeur
• Possible de passer de plusieurs couleurs à
bits couleurs genre d’image peu de couleurs
4 16 texte ou dessin
• Définition de palettes
8 256 texte ou dessin
– Par image ou groupe d’images
16 65 536 image
24 16 M photo • Avantage : réduction de la taille utilisée
• Inconvénient : augmentation du temps de
32 1G photo calcul et de restitution
31
Codage non réversible Quantification vectorielle
• Codage : fonction non injective • Découpage de l’image en blocs (carrés) de pixels
– même codage pour deux images différentes – Recherche du plus proche bloc dans la table des blocs
– Codage du bloc par son numéro de bloc
• But : même codage pour deux images • Calcul de la table des blocs
perceptivement semblables – Corpus d’images représentatives (?)
– Recherche des classes de blocs et des représentants de
classe
• Méthodes : • Algorithmes (nuées dynamiques, LBG)
– Quantification vectorielle
– Codage par sous-bandes • Facteur de compression important
– Transformations linéaires – Répétitions de motif
– Extension multi résolution (méthodes fractales)
• Méta données
– Informations décrivant le contenu de l’image, les conditions
de son acquisition et les différents traitements qu’elle a subit
• Type de compression
– Réversible ou non réversible (taux de compression)
32
Principaux formats
Compression GIF et PNG
Méta données Compression Multi résolution
• GIF utilise une compression LZW (propriétaire)
BMP - - -
– Palette de 2 à 256 couleurs
TIFF dans l’entête réversible - – Utilisation de la transparence
GIF, PNG - réversible - – Plusieurs images peuvent être stockées dans le
- non réversible -
même fichier (gif animées)
JFIF
SPIFF séparé de l’entête non réversible -
• PNG utilise une combinaison de Huffman et de
JTIP - non réversible oui
LZ77
Flashpix séparé de l’entête non réversible oui
– MNG étend PNG pour mettre plusieurs images
PhotoCD - - oui
Transformations ponctuelles
Traitement d’images
Exemple : contraste
• Transformations ponctuelles
– Pour chaque pixel px(a,b) d’une image écart-type de la luminance des pixels
• nouvelle valeur du px = F(valeur(a,b))
• F quelconque (linéaire, non linéaire)
– identique pour tous les pixels
• Filtrage spatial
– Pour chaque pixel px(a,b) d’une image
• nouvelle valeur du px = G(valeurs pixels au voisinage du
px)
• G quelconque (linéaire, non linéaire)
– identique pour tous les pixels
33
Filtrage spatial
Exemple : filtres passe-bas et passe-haut
écart-type de la luminance des pixels
Compression images
Le format JFIF/PEG
34
Codage JFIF : exemples JPEG - étapes
49k 14k 7k (230k non compressé)
• Nécessité de l’étape 1 :
– DCT nécessite une matrice carrée
– Faire une DCT sur l’image entière serait couteux
35
DCT unidimensionnelle DCT bidimensionnelle
l
D
t
•
s
• Transformation :
l
t
:
o
c
o
p
c
–
,
N −1
a(0) = 1
h
(2n+1)ωπ
t
n
o
p
a
q
e
–
F(ω) = a(u) ∑ f(n)cos
,
2
)
t
r
o
c
s
2 16 a(p) = 1 [ p ≠ 0 ]
.
n=0
• Transformation inverse
N −1
(2n+1)ωπ
f'(n) = a(u)
2 ∑
F(ω )cos
16
ω=0
f(i, j) F(u, v)
DCT DCT
70 9 10
• 64 (8 x 8) 0 0 0 0 0
0 – noir 0 0 0
fonctions de base 255 – blanc 90 0 0 0 0 0 0 0
-89 0 0 0 0 0 0 0
• Superposition de
0 0 0 0 0 0 0 0
ces fonctions 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
36
Exemple 3. Quantification
• Gagner de l’espace : diminuer la précision du stockage :
– Basses fréquences plus pertinentes => précision plus élevée pour
les basses fréquences.
– Seule partie avec pertes.
• Matrice de quantification :
– Valeurs de la DCT divisées par celle de la matrice de quantification
et arrondies.
– Coefficients de la matrice de plus en plus grands lorsqu'on
s'éloigne de la position (0,0), pour filtrer les hautes fréquences (œil
sensible aux basses fréquences)
– JPEG : deux matrices pour chrominance et luminance.
4. Compression différentielle
DPCM : Differential Pulse Code Modulation
37
5. Zig-Zag et RLE 6. Codage de Huffman
• Zig-zag regroupe les hauts coefficients en bout de vecteur
• RLE (Run-length encoding) : • Codage standard
– Les hautes fréquences sont en principe presque toutes nulles
• Longues séquences de 0
– On remplace le vecteur par une suite (skip,value) :
• Skip = nombre de 0 consécutifs
• Value= valeur suivant le dernier 0 (nombre de bits pour coder + valeur)
…
0
1
5
1
,
Exemple
Exercice
D
7
t
t
a
p
.
.
_
i
a
u
a
n
33 0 -37 0 0 0 -1 0
1 60
0 0 0 0 0 0 0 0
-37 0 -11 0 8 0 0 0
2
50 0 0 0 0 0 0 0 0
3 0 0 8 0 7 0 -2 0
40
4 0 0 0 0 0 0 0 0
-1 0 0 0 -2 0 -5 0
l
s
a
t
t
30
5
0 0 0 0 0 0 0 0
6 20
7
• Il faut donc coder :
10
8
– (6)(33), (2,6)(-37), (1,6)(-37), (6,4)(-11), …
1 2 3 4 5 6 7 8
• Quelle compression obtient-on ?
38
Autres modes JPEG
• (Mode séquentiel)
• Mode sans perte : Compression Vidéo
– DCT + quantification est remplacée
• Mode progressif
– Première passe : AC + quelques DCT
– Passes suivantes : DCT suivants
• Motion JPEG :
– Application à chaque image d’une vidéo
39
3 1 1 1 1 1
1 1 1 1
9 2
8 8 4 0
(
3 2 2
0
es
2 2
4 8 4 8
2
6 8 4
0 0 8 0 0 4
P
6 0 8 4 x i
u l
×
×
×
×
×
×
×
×
×
×
×
l
t
2 1 1 1 1 1
H
7 7 7 7
1
0 0 0 0 0 )
o
2
6 0 6
6 8 6 8 8 8
2
8 0 8
2
0 0 0 0 0
,
p
u
F
0
H
1
l 0
H H
D
0
H
0
p
C
D D
V
7
p i
D
0
H
i
, 2
R R C d
l
C
R
0
, D
l
a a
e e e
2
M
a
e
a
, e
p
a
e
o
1
/
H
y d y d
6
H
F
n
X y d
0
D
o
W
D ,
r
A
p
1 1
A
R V
A
p
0 0
a
m
X
p
G
a
e
1 e
8 8
e
G
r
A
0
t
H u
r 0 0
t
d u
y
t A
p p
0 r
i
r
e
R
a
e
y d
, , 2 , 2 , 1 , 1 , 1 , 1
8
9
8 7
2 5 3 1
0 0 0
2 M
7 8
A
9 5
7 0 8 0 4
, 1 , , e
6 6
v d
3 1 5 2 5 9
, 4 , , , , , ,
a
g
P
• Exemple :
i
x
6 0 4
2 2 9
4 6 4 0
e
9 3
0
p
r
2
0 0 8 0 0 8
e
x i
2
0 6
t
l
s
s i
0 0 0 0 0 0 8
( ( (
( ( ( ( ( ( (
e
. 0 . 0 . 0
l
s
2 2 1 1 1 1
8
. . . . . . .
9 9
8
) ) )
3 1 1
0 6 4 0
) ) ) ) ) ) )
( (
A A
p p
1
p 6
I
p p
3 2
p 8
r r
1 1 1 1 1 1
a
r
m
2 3
: 4 : : 8 :
x x
o o
: 6 : 6 : 6 x : 6 : 6 : 6
o
3 2 1 3
9 9 9 9 9 9
3
7 8
1 1
e
: 4
5
4
: 6 : 6
9 9
)
) )
a ’
s U
p
y
T
s U
y
T
s è
s U
p
s U
s U a
e c
p
– 60 images seconde
f
e
d w
i
a
o c l
e d
compression MPEG
e
l
y
f
r
k
a
d
f
i
l
d
a
l
y
o
f
r p
na
o
a
r 7
d
c
1
a i
o
5
7
1
o T
m
5
N N
5
- 0
1
o m
- 2
V
o o
d
m
-
0 l
r
u
5
p
l i
- n - n r
u i p l
s s
Q
- 2
m
es
i
f n
i
h
a n t
o l i
n e
a a
t t
i
n t e
e v
n
c o
v e
r
p u l
e
n e
d v
x i
l
n n
i
e d
1
p r
ev
i
v d
i
x t
H a a
d d
i
s
d e
a (
1 e
d e
l
s i
i
D e
o
5
e r r e
s l o
r
d
l o
n
T o i
- 2
l
d d u
;
,
s o
e
P
z i z i
e
a
,
V r l o
o
a w
i
a
, D
o i
s
e
w
, n t
i i
o l
s s
e e
(
n t
s
l P
a u
t
o
d d h
e
o s
h a
v D
u l
h
H
n
o
t a
d
r
" " ;
i
e a
r i a
s
D
x
e e
l
u
t ,
r H H o P
d
s
i
d f
T
i
e
s l
, n
i
e s
t
- D - D
o
e
L V
f t n
s i
e
i
n
m
o s
t
e
i
t C e
r o
R R
d
n
a
r i i
s
a
t h
a a a
a a
e e D
n e ex
a
h n
i
s
r
d
o
t
p i
s
r
t t
u
n n
a l
i
d d a
i y y
t
t
n
i
h
a
c
u s
f
H
y
s
a
n t D
S
f
s
d
e
" "
e
s s
s s
D e
a
c
S
e
M
Bande passante
s
2 2 t
H T T
R e d
t
P
C
c
/
M
9
7
V V w a
/
a
e d D
r
s s
T i
n v
o i
s
b
P o O
4 6
v
o
t
C
E
a a
d
z i z i p
n
o T S
y d
e t
M M n
A
i
n E
r
a
L r p
s
e e o
. .
n
r
o
9
r
m d
M
2
C
- n
a z i
2
l o
a
c n
o 6
p
s
l a
7 c
j
l
1 s U s U n
D -
n c
d
P
e e
d
0
, M
g t
qu
p c
d d
c D " n
p
s a
e o
H
o
a
d
o P
a H T
m
o o
A n
u
D
S m
Q
r
n n
- D
m
H
T
r
o
a t
p
C e
V
p
f S H
r d
i D
x
e
P P z i
f
e
C
D A
T s p
d n
H a
D D e
o x i
s )
n
/
a
e
T
r
V
A
P P
a
D 5
i
/
V
y d e
a
m
d , 3
T
n t
l
s
5
i i
H H s
D
t
"
i
d
3 "
, i
S s s
T I o
t
D D
H
o
p
, n
T
V
T T a l
I T
, n M
e
- D
i p
a
l
f y a U
-
V V
c
T P V
n s
s s
o
y
h R
T
U s t
- d d
r
R
i i .
s s s
i
z
r
a
n E e
o
a
m
R d
o
B
l
d
e
p p
u .
d
D
e
y d
a l a l
. T
B e
o
t
f
1
) i
y y
f
g
T i
.
c 1 "
H
i 1
s s
n e 5
s . .
e D
7
e
e d
4
.
0 T
d
d 3
,
s
9 i
.
y
b
i
z i
n
H
o i
S
e
S
a
g
D
m i
M a
T
ny t
P
n
l
T
a
d
–
–
–
–
• MPEG-2 :
• MPEG-1 :
et suivantes
• Pour une vidéo :
• Pour une image :
images/seconde
40
MPEG (suite) MPEG
• Pas uniquement la vidéo :
– Partie 1 : système : synchronisation entre
vidéo et son
– Partie 2 : Vidéo
– Partie 3 : Audio
• MP1 ou MPEG-1 Part 3 Layer 1
• MP2 ou MPEG-1 Part 3 Layer 2
• MP3 ou MPEG-1 Part 3 Layer 3
Frames consecutives
– Partie 4 : conformité (méthodes, jeux de test)
– Partie 5 : simulation (implémentation C)
41
I Frames MPEG-xxx
• MPEG-3 abandonné rapidement :
• Utilisation de JPEG pour le codage : – MPEG-2 pouvait faire la même chose sans beaucoup de modifications
Conclusion
• Format JFIF très utilisé :
– Bon taux de compression
Multimédia :
– Manque transparence/animations système et programmation
– Utilisé dans MPEG
Partie 2
• Formats vidéo :
– Complexe à mettre en œuvre
– Compression élevée.
42
Serveur multimedia OS serveur multimedia
Un exemple typique détaillé : serveur VoD Fortes contraintes temps-réel
• Ordonnancement temps-réel :
– Deadline fortes garanties sans adaptation
– Opérations terminées trop tard inutiles
43
Gestion quasi temps-réel Ordonnancement
• Taches : • Si ordonnancement possible :
– Unité de base à ordonnancer – L’ordonnanceur garanti la deadline
• Sinon l’utilisateur est accepté en qualité dégradée ou refusé :
– Contraintes temporelles : – L’acceptation ne doit pas dégrader les utilisateurs déjà présents
• Périodiques, Deadlines
– Ressource : CPU • Utilisation du processeur :
– Indépendantes
m
– Préemptive ou pas
i
i
• Gestionnaire de taches
i
– Contrôle d’admission (nouvel utilisateur accepté ?)
– m : nombre de processus
– Détermine l’ordonnancement – Ci : temps CPU du processus i
– Doit fournir des garanties – Pi : période du processus i
44
Ordonnancement sur deadline Contrôle d’admission
EDF : Earliest deadline first
• RMS
• Priorité = première deadline d’abord – Ordonnancement peut être garanti si :
/
1
i
m
i
i
• EDF
– Garanti si (utilisation<100%) :
i
i
i
Ordonnancement : exemple Ordonnancement : exemple
P
)
r
e
r
or
e
r
or
s
A
0
B
0
C
0
• U = 10/30 + 15/40 + 5/50 = 0.808
– ~ 80% du CPU utilisé
– Borne pour RMS : 0.78 (pas de garantie)
– Borne pour EDF : 1 (ok)
45
Ordonnancement : exemple 2 Ordonnancement : exemple 2
)
r
e
r
or
e
r
or
s
A
0
B
0
C
0
• U = 15/30 + 15/40 + 5/50 = 0.975
– ~ 98% du CPU utilisé
– Peut être ordonnancé avec EDF
46
Utilisateurs multiples Avance/retour rapide
• k utilisateurs regardant le même film = k • Utilisation de buffers :
– Taux de 4Mbps : buffer de 10mn = 300Mo
utilisateurs regardant des films
différents • En cas d’avance rapide :
– Dépassement du buffer : activation d’un flux privé
– Remplissage à partir du flux le plus proche
• Near VoD :
– À la reprise :
– Films à des horaires fixés • Jouer depuis le buffer
• Supprimer le flux privé
– Pas de fonctions avance/retour rapide
• Remplissage du buffer classique
/
•
d
t
t
c
e
v
u
,
i
l
m
p
o
e
• Sur un disque :
– Placement contigu
– Modèle à petits blocs
– Modèle à grands blocs
2/3/2009 187
47
Modèles à grands/petits blocs Grands blocs
• Stockage non contigu : • Aspects positifs :
– Remplacement de frames simple, avance/retour rapide ok – Peu d’entrées dans l’index
• Blocs de 256Ko, 16Ko par frame : environ 16 par bloc
• Grands blocs : plusieurs frames par bloc • 216,000 frames au total : 13500 entrées
– Taille constante – Bonne utilisation du disque
– Index de blocs
– Stockage éventuel du numéro de la première frame de
chaque bloc • Aspects négatifs :
– N frames ne tiennent par exactement dans un bloc
• Petits blocs : une frame (audio/vidéo/texte) par bloc • Espace perdu ou frame découpées
– Temps de lecture constant – Double buffering plus difficile
– Index de frames
– Avance/retour rapide : utilisation élevée du disque
48
Stockage Mise en cache
N
0
P
7
• Fichiers multimédia lus du début à la fin
•
s
=
=
,
.
– LRU ne convient pas
• Deux approches :
– Mise en cache de blocs
– Mise en cache de fichiers
49
Ordonnancement du disque
• Données multimédia souvent prédictibles
– lecture séquentielle
• Vision statique : les films ont la même vitesse de lecture Programmation multimédia
– Diviser les requêtes en rounds
– Rounds traités l’un après l’autre
• LDUs structurés :
– Hiérarchie décrivant le contenu (XML)
synchronisation – Hiérarchie décrivant le codage (mpeg)
50
Un exemple de LDUs Synchronisation multimédia
• Intra ou inter-objets
51
Sur un réseau Notion de scénario temporel
• Synchronisation naturelle (intrinsèque aux média) :
• Un scénario temporel :
– objets média qui s’enchaînent dans le
temps
– plusieurs traces d’exécution qui respectent
ou pas une spécification de la
synchronisation
• Source : un fichier, capture vidéo, audio, …
• Canal réseau : gigue, pertes, engorgement
• Destination : ressources limitées
52
Information temporelle Modèle synchrone
• Instants vs. intervalles
Scénario temporel
• STP (Simple temporal problems ) :
– passage d’intervalles à instants
53
Introduction
SMIL • Tendance actuelle :
– Diversité des formats et des plates formes :
Synchronized Multimedia • pas de format d’échange, pérennité, …
– Multimédia et web se développent en parallèle
Integration Language • Multimédia sur le web - problèmes d’intégration :
– Médias entre eux (mp3, vidéo, texte, ..)
– Avec le web (insérer vidéo, permettre de la synchro)
54
Structure d’un document SMIL Organisation d’un document
• Composants accessibles via des urls : • Deux parties :
– En dehors du fichier SMIL
– Entête : contient des informations du
– Ces composants peuvent avoir des types de
médias différents : audio, vidéo, texte, image, etc. niveau du document
– Corps : contient le scénario temporel, les
• Méthode de synchronisation animations, les transitions et les objets
media utilisés
• Interactions des utilisateurs : CAT (Global) et
liens spatio-temporels, changements
dynamiques dans la présentation (événements)
<smil xmlns="http://www/w3.org/2000/SMIL20/Language">
<head>
<layout type="text/smil-basic">
<region id="left-video" left="20" top="50" z-index="1"/>
Entête
</layout>
<region id="left-text" left="20" top="120" z-index="1"/>
<region id="right-text" left="150" top="120" z-index="1"/> Entête : aspect spatial
</head>
<body>
• Régions et sous-régions (hiérarchie)
<par>
<seq>
<img src="graph" region="left-video" dur="45s"/>
<text src="graph-text" region="left-text"/>
Région 1 Région 2
</seq>
<par> Corps a
<a href="http://www.w3.org/People/Berners-Lee">
<video src="tim-video" region="left-video"/>
</a> b
<text src="tim-text" region="right-text"/>
</par>
<seq>
c
<audio src="joe-audio"/>
<video id="jv" src="joe-video" region="right-video"/>
</seq> Région 3
</par>
</body>
</smil>
55
Corps du document Objets
• Scénario temporel (synchronisation) • Marqués avec les balises :
– défini récursivement : Schedule elements – Audio, Video, Text, Img, Textstream,
Animation, Ref, Param, et … Prefetch
Synchronisation Synchronisation
• L’attribut dur (duration) • Attribut begin, end
– “intrinsic”: durée du média (durée du fichier
externe). – Valeur = décalage par rapport à l’élément père
– “explicit”: durée spécifiée (dur= “15s”) • begin= “13 s”
– Autre horloge
• L’attribut repeat • begin= “e2.end + 5 s ”
– RepeatCount=“3” : durée du média
– Temps absolu
• begin= “wallclock(2001-01-01Z)”
– RepeatDur=“12 s” : – Événement asynchrone (interactivité)
• begin = “bouton.click”
56
Découpage des media L’élément séquentiel : seq
• Clipping spatial effectué à travers les régions et • Jouer en séquence un ensemble d’objets
sous-régions
• Attributs
• Clipping temporel effectué avec les attributs
clip-begin et clip-end (médias externes) – Fill : utilisé pour la « persistance » sur l’écran
– Remove : effacer de l’écran dès la terminaison
<video id="a" src="attendre.mpg"
clip-begin=“smpte=00:01:45"
clip-end=“smpte=00:01:55"
– Freeze : garder la dernière image après
/>
… terminaison
<seq>
<image id="a" regionName=“x” src="attendre.gif“
fill=“freeze”/>
<video id="b" regionName=“x” src="video.au dur="20 s" />
Media Tranche </seq>
57
Transitions Liens hypermédia temporisés
...
<transition id="wipe1" type=“zigZagWipWipe" subtype="leftToRight" dur="1s"/>
<transition id="wipe2" type=“veeWipe" subtype="leftToRight" dur="1s"/>
...
• Extension de la sémantique des URLs
<seq> – http://foo.com/path.smil#ancre(begin(id(ancre))
<img src="butterfly.jpg" dur="5s"... />
<img src="eagle.jpg" dur="5s" fill="transition" transIn="wipe1" ... />
<img src="wolf.jpg" dur="5s" fill="transition" transIn="wipe2"
– deux types (a: totalité, area: partie)
transOut=“wipe1” ... /> – sauts dans l’espace et dans le temps
</seq>
• Attribut show
– Replace (valeur par défaut)
Transition Transition Transition
– New (fork)
– Pause (Appel de procédure)
Préchargement Exemple
• Réduire les délais de chargement : • Préchargement d’une image (affichage juste après la vidéo) :
– Lier ordonnancement et gestion de ressources (BP, CPU)
– Scénario pour la gestion de ressources à partir du scénario <smilmlns="http://www.w3.org/2001/SMIL20/CR/Language">
temporel <body>
<seq>
<par>
<prefetch id="endimage“ src=“tes.gif"/>
<text id="interlude" src=“pleasewait.html” fill="freeze"/>
</par>
<video id="main-event" src="rtsp://www.example.org/video.mpg"/>
<img src="http://www.example.org/logo.gif" dur="5s"/>
</seq>
</body>
</smil>
58
Conclusions
• Grande simplicité d’utilisation :
– Proche du html, xml Localisation des médias
– Format ouvert Systèmes Pair-à-pair
• Impact grandissant mais pas idéal : Partie 3
– Browsers HTML pas engagés
– Lecture avec Real One Player notamment
– Conception avec LimSee II
Deux problèmes de
Où placer le média ?
localisation
• Gros fichiers et forte demande
– Surcharge pour un serveur centralisé
• Où placer le média ? • Effets d’un réseau moindre effort
– Délais, gigue, pertes quand le serveur est loin du récepteur
– les CDNs
• Solutions : Réplication, proximité vers l’utilisateur
59
Comment trouver le média ?
• Emplacement dynamique
– Exemple : réseaux poste à poste
• Multiples copies d’un fichier stockées
• Postes qui se connectent, se déconnectent, se déplacent Content distribution networks
– Indexation classique par moteur de recherche impossible
serveur surchargé
réseau d’accès
lien congestionné
commutateur
pénurie de bande passante à la couche
applicative
60
Équilibrage de charge Serveurs mandataires
• Avantages
lien congestionné
– Décharge un serveur surchargé
• Désavantages substitut
– N’aide pas les clients sans proxy substitut
– Hors contrôle du serveur principal
• copies à jour ?
• facturation ? client client
61
CDN : Composants Interaction serveur – CDN
fr.news.yahoo.com
• Les substituts (mise en cache) 1. Le serveur pousse les 1
– distribution de données aux clients données vers le CDN serveur
OU CDN
• Infrastructure d’annuaire Le CDN tire les données infrastructure
– dirige le client vers le substitut du serveur de distribution
2
• Infrastructure de distribution 2. Le serveur demande de
– distribution de données serveur substituts l’information et de la
→
comptabilité du CDN
OU
• Infrastructure de comptabilité infrastructure
– récolte d’informations clients Le CDN fournit de
l’information et de la de comptabilité
– tarification de serveur comptabilité au serveur
62
Annuaire et DNS
fr.news.yahoo.com
Choix du substitut
Akamai DNS
Akamai • Soit le document XYZ
CDN – Numérotation des serveurs de 0 à n
lyon.yahoo.akamai.com
marseille.yahoo.akamai.com substitut
– Le document XYZ est placé sur le serveur
58.15.100.152 (XYZ mod n)
substitut
145.155.10.15
Annuaire et DNS
fr.news.yahoo.com
Proximité géographique
Akamai Akamai DNS
CDN
• Comment choisir le plus proche ?
– Même ISP, même AS ?
substitut
– Utiliser BGP pour avoir une connaissance
du réseau substitut
63
Applications du P2P
• Partage de fichiers (musique, films, etc.)
Réseaux pair-à-pair • Calcul distribué
• VoIP (Skype)
Localisation de contenus et • TV, VoD
DHTs • Travail collaboratif
Caractéristiques Attractivité
• Large échelle : millions de noeuds • Coût faible :
• Dynamique : arrivées et départs fréquents – Les utilisateurs partagent leurs ressources
• Peu ou pas d’infrastructure – Peu ou pas de serveurs d’infrastructure
– Aucun serveur central
– Éventuellement des serveurs de connexion • Disponibilité forte
• Symétrique : tous les nœuds sont équivalents – Moyens de calcul :
• Nombreuses machines connectées simultanément
– Parfois une hiérarchie est introduite
– Moyens de stockage :
• Communication possible entre tous les pairs • Si les fichiers sont suffisament répliqués, ils sont
– Pas toujours vrai : routeurs NAT, firewall toujours disponibles chez de nombreux usagers.
64
Services offerts Overlay P2P
• Entrer dans le réseau • Réseau
• Quitter le réseau – de niveau applicatif
– virtuel :
• Partage de fichiers : • La topologie sous-jacente est transparente pour
– Publication : l’utilisateur
• insérer un nouveau fichier, offrir des ressources • Les liens sont des connexions TCP ou des entrées
– Recherche : dans une table de voisins
• trouver les pairs fournissant des ressources ou un fichier de
nom X (efficacité, fiabilité, passage à l’échelle)
– Récupération : • Le réseau doit être maintenu en
• obtenir une copie d’un fichier permanence :
• Similaire pour les autres applications – mes voisins sont-ils toujours actifs ?
65
Problèmes du non structuré Évolution
• Inefficace
– Les requêtes sont propagées par inondation
– Même avec un routage “intelligent”, le pire cas
est toujours en O(n) (messages envoyés)
• Incomplet
– En l’absence de résultat, est-ce parce qu’il n’y
en a pas ?
66
Napster Napster
• Connexion : • Connexion :
– Connexion au serveur – Connexion au serveur
– Transmission de la liste de – Transmission de la liste de
fichiers partagés fichiers partagés
• Recherche : requête • Recherche :
– Envoi de requêtes au – Envoi de requêtes au
serveur serveur
– Recherche dans la base et réponse – Recherche dans la base et
envoi d’une liste de pairs envoi d’une liste de pairs
• Récupération : … • Récupération : …
– Contact direct du/des pair – Contact direct du/des pair
ayant le fichier ayant le fichier
– Prise en compte du taux de – Prise en compte du taux de
transfert transfert
67
Overlays non structurés Gnutella
• Pas de structure fixée a priori • Application décentralisée, chaque pair :
– Stocke des fichiers
– Organisation des pairs en une structure – Route les requêtes (recherche de fichiers) de/vers ses
aléatoire voisins
• Ex : chaque pair choisi 3 voisins au hasard – Répond au requêtes s’il possède les fichiers
• Structure plate (tous égaux) ou hierarchique
– Le service P2P est construit sur ce graphe • Principe = recherche par inondation :
– Si le pair n’a pas le fichier il transmet à 7 de ses voisins.
• Approches classiques : – Idem pour les voisins avec une profondeur 10 maximum.
– Gnutella – Pas de boucles mais les paquets peuvent être reçus
plusieurs fois.
– KaZaA/FastTrack
– BitTorrent
Inondation Gnutella
• Avantages :
= source
– Recherche rapide
= envoi requête – Arrivée et départ simples
– Les fichiers populaires sont trouvés avec un petit TTL
• Permet de récupérer depuis plusieurs sources.
= traitement
• Inconvénients
= résultat – TTL limité => pas de garantie de trouver un fichier
disponible
– Overhead élevé pour la recherche
= envoi réponse • Passage à l’échelle peu aisé
– Charge répartie de manière non uniforme
68
FastTrack, KaZaA, eDonkey FastTrack, KaZaA, eDonkey
• Résolution du problème d’échelle avec • Avantages
une hiérarchie à 2 niveaux – Plus stable
– Plus complet (les recherches dans l’overlay les
super-nœuds permettent d’explorer plus
• Clients : nœuds standards complètement)
• Super-pairs avec plus de ressources : – Passe mieux à l’échelle
– Un client peut (ou pas) décider d’être un super
pair à la connexion • Inconvénients
– Acceptent des connexions de clients et – Pas réellement P2P (super nœuds plus sensibles)
peuvent les mettre en contact • eDonkey : les super-pairs sont de serveurs
– Gèrent les recherches dans un overlay de SP – Overhead important
État en 2004
Un exemple supplémentaire
Bittorrent
69
Bittorrent - principes Eléments de base
• Serveurs web :
• Défauts des systèmes classiques : – Fournissent les fichiers d’infos (.torrent)
– Vision client/serveur – Contiennent : nom, taille, checksum, @IP du tracker
• Utilisateurs :
• Bittorrent : système P2P avec – Downloaders : pairs qui téléchargent
– Seeders : pairs qui possèdent le fichier entier mais
mécanismes d’incitation au partage. continuent de le fournir
70
Mécanismes « incitatifs » Mécanismes « incitatifs »
• Optimistic Unchoking • Anti-snubbing
– Un pair est « unchocked » toutes les 30s – Un pair peut être « chocked » par tous les
– Indépendant du taux de téléchargement autres
– Permet de tester des connexions non – Pose problème tant qu’il ne trouve pas de
utilisées voisin avec l’ « Optimistic Unchoking »
– Rend possible le free-riding – Après 60s sans téléchargement avec un
voisin il peut le mettre en « opportunistic »
de manière forcée.
Deuxième génération
Les approches DHT • Problème du non structuré :
– Pas de réponse garantie ou à un coût élevé
(inondation complète du réseau)
Overlays structurés
• Objectifs de base :
– Éviter l’inondation pour la recherche.
– Garantir une réponse avec un nombre borné
de sauts.
– Fournir une réponse complète.
71
Caractéristiques idéales Distributed Hash Tables
• Coopération • Idée globale :
• Arrivées et départs simples (mise à jour – Un identifiant est associé à chaque objet
rapide, peu d’overhead) – Exemple : ID = hachage du contenu
• Tolérant aux fautes (départ brusque)
• Anonyme • Une opération de base, la recherche :
• Sécurité – Lookup(ID)
• Auto-organisation – Input : un entier ID
• Trafic bien réparti – Output : un pair avec des infos sur ID
DHTs DHTs
• Le hachage idéal • Le réseau structuré :
– x = nom d’une chanson
– H(x) = @IP/port d’une machine qui stocke la
– Noeuds = machines/utilisateurs
chanson – Lien (A,B) si A connait l’@IP de B dans sa
– Impossible en pratique table de routage
– Donnée d h(d) = clef
• Les IDs sont stockés par les pairs :
– Chaque pair est responsable d’un certain nombre
– Chaque machine a une table d’association
d’Ids des clefs vers les @IP des fournisseurs
– Hachage permet de trouver le pair ayant les des données pour les clefs sous sa
informations responsabilité
72
Idée générale
(K1,V1) K V
K V
K V
K V
Exemples de DHT
K V
Chord - CAN
K V
K V
K V
K V
K V
K V
insert
(K1,V1) retrieve (K1)
N48 N10
73
Chord - Assignation des clefs Chord - Routage sur l’anneau
• Clefs : SHA-1 du contenu • Objectif : qui possède la clef k ?
• ID des nœuds : SHA-1 de l’@IP • Plusieurs approches :
• Clef k donnée au premier nœud d’ID >= k – Un nœud ne connait que son successeur :
N56 N1 • Routage sur l’anneau
N51 • Routage en O(N)
N8
• Complexité spatiale en O(1), successeur
N48 N10 – Chaque nœud connait tous les autres :
• Routage en O(1)
N14 • Complexité spatiale en O(N)
N42 • Cout supplémentaire ?
N21
N38 – Autres approches ?
N30 K26
1/16
1/32
1/64
K80 N90 1/128
N80
N60
74
Chord - « Finger table » Chord - Routage des requêtes
• Finger i pointe vers n+2i : m voisins • La requête pour k est transférée au finger
maximal plus petit que k
N120
• m étapes maximum
112 ¼ ½ Lookup( K54 )
K54
N56 N0
N51 N8
N10
1/8 N48
N14
1/16
1/32 N42
1/64
1/128 N21
N38
N80 N30 298
75
Chord - Arrivée Chord - Arrivée
1. Recherche(36) 1. Recherche(36)
2. N36 affecte son 2. N36 affecte son
successeur successeur
3. Les clefs de 26 N25 3. Les clefs de 26 N25
à 36 sont à 36 sont K30
attribuées à N36 N36 attribuées à N36 N36
4. N25 affecte son 4. N25 affecte son
successeur successeur
N40 K30 N40 K38
5. Les tables finger K38 5. Les tables finger
sont mises à sont mises à
jour plus tard jour plus tard
(complexe) (complexe)
76
Chord - Pannes/départs Deuxième exemple : CAN
• Le protocole fonctionne si chacun connait son • Content Adressable Network
successeur
• Pour rendre le protocole plus sur : • Un modèle simple et intuitif
– Chacun connait plusieurs successeurs – Espace euclidien
– Stabilisation différente
• Départs volontaires :
– Peuvent être traités comme une panne • Mais pas le plus déployé
– Le nœud peut transférer ses clefs à son
successeur et informer son prédécesseur et son – Tapestry et Pastry ont plusieurs
successeur de leurs existences réciproques applications basées dessus :
• Nœuds malicieux ? • Stockage distribué, filtre spam distribué, …
77
3
2 1
4
) ) ) )
e d d
r r T
C
’
n
e c é h é
j
o o
n
t
o
2
à
u u
t
i
p
o
c i a d
u
r
o
i e
r r
œ
e v
u
v
e u
e
s
d
e
l
n
s
e
d
e
n
(
J
u
p
C
, p
A
s
s
t
t i
u
)
,
d
i
t
e I “
v n
(x,y)
CAN - routage
(a,b)
3
2 1
4
) ) ) )
e d d
r r T
C
’
e c é h é
j
o o
n
t
o
2 à
u u
t i
a
p
i
c a d
u
r
o
i
e
r r
œ
e v
u
v
e u
e
s
d
e
l
n
s
e
d e
n
(
J
u
p
, C
p
A
s
s t
t i u
)
,
d
i
o
i
e t I
“
v n
– rien d’autre
é
• L’état d’un nœud
I
– Ses propres données
CAN - routage
78
3 3
2 1 2 1
4 4
) ) ) ) ) ) ) )
a a
I I
L L
e d d e d d
r r T r r T
C C
’ ’
l l
n n
e c é h é e c é h é
a a
é é
j j
o o o o
s s
o o
n
t t
o
2 2
à à
u u u u
t t
i i
a a
p p
o o
s s
v v
c i a d c i a d
u u
r r
o o
e e
i e i e
r r r r
v v
r r
œ
e v e v
n n
u u
v
e e
e u e u
e e
s s
r r
n n
d d
e
J J
l l
n n
s s
e e
d
e e
e e
n n
( (
J J
u
p p
C C
, p , p
o o
e e
œ œ
A A
s s
s s
t t
q q
t i t i
u u
) )
, ,
N N
d d
i i
d d
o o
i i
t t
e I “ e I “
v n v n
i i
” ”
s s
é é
, p
3
2 1
4
) ) ) )
e d d
r r T
C
’
e c é h é
j
o o
n
t
o
2 à
u u
t i
a
p
i
c a d
u
r
o
i
e
r r
œ
e v
u
v
e u
e
s
d
e
l
n
s
e
d e
n
(
J
u
p
, C
p
– routage
A
s
s t
t i u
)
,
d
i
o
i
e t I
“
v n
I
• mises à jour périodiques
• L’espace doit être réparée
(
J
, p
CAN - Défaillance d’un nœud
)
79
CAN - Routage résistant CAN - Routage résistant
destination
source
i
t
t
e
80
CAN - Routage résistant CAN - facteur d’échelle
• Soit
– n le nombre de nœuds dans le CAN
– d le nombre de dimensions de l’espace virtuel
• Voisins
– le nombre par nœud est 2d
• Chemins entre les nœuds
– (dn1/d)/4 sauts, en moyenne
• Tapestry et Chord
– log(n) voisins par nœud
– log(n) sauts sur un chemin
81
Skype
• Protocole pas
Skype complètement connu
– Propriétaire
VoIP en P2P/DHT – Contrôle et contenu
crypté
82
Construction de l’overlay Construction de l’overlay
• Nœuds ordinaires : • Contact serveur de login
– Listes d’@ IP de SN
– Jusqu’à 200 entrées
• Super nœuds :
• Signaler sa présence :
– Certaines @IP sont fixes – Contacter un SN
– Fournis par Skype – Contacter ses voisins (à travers le SN) et
leur signaler sa présence
• Serveur de login :
– Utilisés à la connexion pour trouver des SN
83
Devenir un SN Devenir un SN
• Bande passante élevée, @IP publique
– Détails pas clairs (on ne choisit pas) • Carte des SN au niveau mondial
– Très variable ( churn, durée des sessions)
Skype - Conclusion
• VoIP a d’autres prérequis que le simple
transfert de fichiers :
– Délai, gigue, etc.
Conclusions
84
Clefs du succès
• Coût faible :
– peu ou pas d’infrastructure
– Serveurs de connexion
• Applications à succès :
– Téléchargement de fichiers, VoIP, TV sur IP, VoD, …
85