Vous êtes sur la page 1sur 86

Le module APMM

• Aperçu des différentes phases du


Applications Multimédia traitement des données multimédia :
– Applications du multimédia.
– Codage et décodage, compression
Jean-Loup Guillaume – Structuration et description
Jean-loup.guillaume@lip6.fr – Programmation multimédia
– Diffusion de contenus multimédia

Le module APMM - Notation Me contacter !


• Contrôle continu 40% : • Par mail :
– Rapport/code à rendre pour un TME – Jean-Loup.Guillaume@lip6.fr
• Monôme, binôme

• 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

Cours 1 10/02 313 - 41 Introduction • Des slides/images sont empruntés à :


Compression son – images - vidéo
TD 1-2 10/02 313 - 41 Codage
– Timur Friedman
Cours 2-3 12/02 313 - 41 Compression son – images - vidéo
– Anne Fladenmuller
Systèmes - Programmation – Autres auteurs
Cours 4-5 13/02 203/205-41 Localisation des contenus
CDN – P2P • Wikipedia…
TME 3-4 11/03 208 - 31 SMIL

TME 5-6 12/03 208 - 31 P2P

TME 7-8 13/03 208 - 31 JPEG

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 pouvant utiliser plusieurs médias distincts Textes graphiques


simultanément :
– Texte,
– Musique, son, voix,
– Images fixes ou animées, MULTIMEDIA
– Vidéos,
– Interface homme-machine interactive.

• Désigne aussi un PC avec des composants multimédia : Sons vidéos photos


– Écran, carte son, webcam, etc.

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)

Comment lire du multimédia Lecteurs multimédia (12/07)


• CD-ROM multimédia

• Téléphones 3G, PDA, etc.

• Télévision interactive

• Le web prend une place de plus en plus importante :


– HTML permet déjà du multimédia/hypermédia
– Norme HTML 5.0 en cours de rédaction (draft disponible)
– Utilisation de Flash, SMIL permet d’incorporer vidéos, sons,
interactivité.

5
Versions (12/07) Vidéo en ligne
Flash Player Flash Player Flash Player Flash Player
6 7 8 9

Mature Markets1 98.8% 98.8% 98.3% 95.7%

US/Canada 99.0% 99.0% 98.5% 96.8%

Europe2 98.1% 98.1% 97.6% 94.3%

Japan 99.5% 99.5% 99.3% 95.3%

Emerging Markets3 97.4% 97.3% 95.5% 93.3%


h

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

• Nécessité d’avoir un mode de représentation • Une représentation numérique binaire


unique

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

• Ces deux données sont purement quantitatives,


elles désignent un nombre de périodes par • Pourquoi compresser ?
seconde (fréquence), et un écart mesurable par – Espace disque
rapport à un point central d’une vibration – Temps de transmission sur un réseau
(amplitude). (images, vidéo à la demande, etc.)

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

Compression sans pertes Compression avec pertes


• Retrouver les données originales en • Données originales perdues :
– Taille réduite par l’élimination d’information
décompressant :
– Choix d’un taux de compression plus ou moins
– Gain d’espace sans perte d’information préjudiciable au contenu
– Faire en sorte que l’utilisateur ne s’en rende pas
compte (compression dédiée)
• Utilisé si l’intégrité des données est
importante : • Applications :
– Audio : mp3, ogg, wma, etc.
– Document texte, code, etc.
– Images : jpeg, etc.
– winzip, gzip, compress, bzip, GIF – Vidéos : MPEG, « divx », etc.

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

Codes de longueur variable Exemples


• Les mots de codes ont des tailles variables a b c d e f
selon les symboles Fréquence 25 12 10 9 8 5
– Lp = nombre de mots de code de longueur p Code 1 01 10 100 101 1011 0011
Code 2 0 101 100 111 1101 1100
• Un code est :
– intelligible s’il a un unique décodage • Code 1 : 10101 = « bd » ou « da », pas intelligible
– préfixe si aucun mot de code n’est préfixe d’un • Code 2 : préfixe (donc intelligible)
autre (il est alors intelligible) :
– instantané si on peut le décoder au fur et à
mesure de l’arrivée des mots de code (CNS : il est
préfixe)

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

– Lp = nombre de mots de code de longueur p

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

Codage de Shannon-Fano Codage dictionnaire


• Calcul des fréquences
d’apparition • Typiquement LZ ou LZW :
– A=15, B=7, C=6, D=6, E=5
• Tri puis séparation en deux – Dictionnaire de symbole créé
ensembles de taille aussi dynamiquement
proches que possible (et
recommencer sur chaque
ensemble) – Initialement le dictionnaire contient les 256
• La branche de gauche est caractères ASCII
associée à 0, celle de droite
à 1 (ou l’inverse) – Fichier codé
– A=00, B=01, C=10, D=110,
E=111 • Liste des adresses dans le dictionnaire
– Taille moyenne ~ 2.28b/s
– Optimum ~ 2.18b/s • Le dictionnaire est reconstruit à la
décompression

12
LZW compression LZW Compression
/QED/QE/QEE/QEB
w:= NULL

Tant qu’il y a des caractères


lire un caractère K (sur 8 bits)
si wK existe déjà dans le dico
w := wK (1)
sinon
écrire code de w (/ 12 bits) ---- limite la taille du dictionnaire
ajouter wK dans le dico
w := K (1)
fin si
Fin tant que

Écrire code de w (/ 12 bits)


/;Q;E;D;256;E;260;261;257;B

Conclusion
• Approches simples pour compresser :
– Huffman
– Shannon-Fano Compression audio
– LZW

• Sans pertes

• Ne nécessitent aucun a priori sur les données


– Compression pas forcément élevée
– Peu adaptés au contenus son/image/vidéo

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

L’impact de l’interactif Interactivité : trois niveaux


• Non-interactif • Non-interactif non streaming
– on peut passer longtemps à coder – Codage long et décodage long possibles
• codecs qui sont asymétrique par rapport au • Non interactif streaming
temps nécessaire pour codage, décodage – Codage long possible
– si non-streaming : on peut passer – Buffer réduit en réception : décodage rapide
longtemps à décoder aussi
• Interactif
• Interactif – Codage et décodage très rapides
– codage et décodage doivent être rapides – Contraintes temps-réel

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é

Un signal audio analogique


Deux axes réels
p
• t : temps
– unité le plus fin (typiquement) : sec
– échelle : milliers de sec

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

Numérisation - échantillonage Numérisation - quantification


p p

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

Echantillonnage Th. de Nyquist-Shannon


p • Pour pouvoir reconstruire un signal
analogique à partir des échantillons
numérisés, la fréquence d'échantillonnage
doit être au moins deux fois la bande
0
passante du signal original.
t

• Formulé par Harry Nyquist en 1928


• Prouvé par Claude E. Shannon en 1949

17
Fréquence d’échantillonnage Fréquence d’échantillonnage
p p

0 0
t t

Fréquence d’échantillonnage Fréquence d’échantillonnage


p p

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

Fréquences de la voix Plan


• gamme de 500 Hz à 2 kHz (environ) • Introduction
• Numérisation
• canal audio CCITT 300 Hz à 3,4 kHz
• bande passante : 3,1 kHz • Etendue dynamique
• fréquence d’échantillonnage nécessaire : • Compression et codage
6,2 kHz

• qualité téléphonique : 8 kHz (G.711, GSM)


– (un échantillon chaque 125 sec)

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

0 • pour une quantification sur m bits :


t
– Valeurs entières : différence + 1
– 2m : 1

• typiquement exprimé en décibels (dB)

Décibels Etendue dynamique humaine


• Pression minimale décelable : 20 Pa
• Motivations : focaliser sur … – la norme pour l’audio : dB re 20 Pa


– l’intensité du signal au lieu de l’amplitude – dB SPL (« sound pressure level »)

– les rapports au lieu des valeurs absolues • Seuil de sensation : 200 Pa


– au dessus, plus supportable

• Rapport de pression de 10 millions toléré par l’oreille humaine


• Audio :
– l’être humain est sensible aux • Puissance = carré de la pression => rapport de 10^14
– On utilise une échelle logarithmique
dédoublement (triplement, etc.), réduction – 20 log10(p1/p0) = 140 dB
en deux (trois, etc.) de l’intensité du son

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

Etendue dynamique CD Etendue dynamique CD


• 16 bits/échantillon • L’audio CD : d’une qualité suffisante ?
0000 0000 0000 0000 = − 32 768
– étendue dynamique humaine : 140 dB
1000 0000 0000 0000 = 0
1111 1111 1111 1111 = + 32 767 – étendue dynamique CD : 96 dB
– étendue dynamique d’un orchestre : 90 dB
• p1/p0 = (32 767 + 32 768 + 1) / 1= 65 536
• 20 log10(p1/p0) = 96,33 dB • L’audio DVD : encore plus étendue
– jusqu’à 24 bits (12, 16, 20, ou 24)
• environ 96 dB – étendue dynamique : 144 dB

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)

• Etendue dynamique • Compromis entre plusieurs caractéristiques :


– débit
• Compression et codage – qualité
• exprimée en MOS (Mean Opinion Score) de 1 à 5
– retard
• introduit par la compression (peut varier de 0,125 à 30 ms)
– complexité de l'algorithme
• exprimée en MIPS requis pour le DSP

Plan Audio MPEG


• Débit
• Introduction – 1,5 Mbit/s pour vidéo et audio
– environ 0,4 Mbit/s pour deux canaux audio)
• Numérisation
• Échantillonnage à 32, 44.1 ou 48 kHz
• Etendue dynamique
• Précision équivalant à une quantification à 16 bits par
• Compression et codage échantillon

• Numérisation du son • 3 niveaux de compression possibles (par rapport à 48x16=768


kbit/s), de complexité croissante :
• Numérisation de la voix – niveau 1 : 192 kbit/s (compression 4:1)
– niveau 2 : 128 kbit/s (compression 6:1)
– niveau 3 : 64 kbit/s (compression 12:1)

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
-

Tonalités audibles Masquage du son


i

é
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

Prévisibilité = compressibilité Exemple G.728


• Les vocodeurs • Echantillonage à 8000 Hz
– modélisent la voix
• est-ce sonorisée, fricative, occlusive ? • 5 échantillons (délai de codage < 1ms)
• quel niveau ? – quel vecteur ressemble le plus ? (1024
• un filtre à appliquer
poss.)
• Les codecs hybrides – quel coefficients du filtre ?
– envoi de l'information vocoder – 10 bits de codage
– accompagné par un signal dit de l'excitation
• à partir d'une liste de « vecteurs »
– débit : 16 Kbps

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.

• Différences entre codage du son (large


bande de fréquences) et de la voix
(bande beaucoup plus faible)

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 »

Stimulation des bâtonnets et


Longueurs d’onde
cônes Batonnets
• Entre 380 nm et 760 nm S : short
M : medium
L : long
ultra- violet bleu vert jaune orange rouge infra-
violet rouge

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é

Couleurs pures et la vision Modèles RGB et CMY


• Nous n’apercevons pas que des couleurs pures RGB (RVB) : additif CMY/CMYK : soustractif
(pour les moniteurs) (pour les imprimantes)
• Des mélanges de fréquences atteignent nos yeux

• Ces mélanges sont aperçus comme des couleurs


en eux mêmes

• La correspondance entre mélange et perception


est très complexe
– Elle admet plusieurs modèles explicatifs
source : http://developer.apple.com/documentation/mac/ACI/ACI-48.html

27
Synthèse additive : exemple Synthèse soustractive
l’image couleur :
• Absorption pondérée de plusieurs composantes primaires

• Trois types de filtres d’une lumière blanche


– Cyan, Magenta, Jaune

• Couleurs complémentaires de RVB


– (0,0,0) Blanc
– (1,1,0) Bleu
– (1,0,1) Vert
– (0,1,1) Rouge
– (1,1,1) Noir

luminance rouge luminance verte luminance bleue

Nombreux modèles Modèle : triangle de Maxwell


• Triangle de Maxwell (RGB) • Essentiellement le
modèle RGB vert
– Couleurs non représentables
• Autres modèles • Chaque couleur est
– Différents moyens de représenter les couleurs composée de bleu,
cyan jaune
vert, et rouge
– CIE Yxy blanc
– XYZ : excitation d’un type de bâtonnet • Il existe des
– Luv et Lab : perception linéaire des couleurs couleurs qu’on ne
peut pas produire bleu magenta rouge
– LCH : contrôle des moniteurs ainsi

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

• Produit toutes les couleurs


possibles
(Z)

Modèle CIE Yxy


Traduction entre XYZ et Yxy
• Commission Internationale
de l'Eclairage (norme de
1931) • Y : la luminance
• Coordonnés –Y=Y
– x et y la chromaticité
– Y (pas montré) la luminance

• 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

• luminance : L* • Rapport de côtés (aspect ratio)

• chrominance 4×3 3×2


– u*, v*
informatique photographique
– a* = rouge/vert, b* = jaune/bleu

Définition d’une image Résolution d’une image


• Basse définition • Nombre de pixels par unité de surface
– 76k 320×240
– 300k 640×480
– 480k 800×600
• Périphérique de restitution
• Moyenne définition
– 780k 1024×768 • Ecran
– 997k 1152×854 – distance entre deux luminophores
– 1.3M 1280×1024 – 0.15 mm à 0.7 mm
• Haute définition
– 2.1M 1600×1200
• Imprimante
– 3.1M 2048×1536
– taille du point coloré
– 4.9M 2560×1920
– … – 0.02 mm à 0.08 mm

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

Palette : exemples Codage réversible


16M 256 16
• Codage + décodage : fonction identité

• Méthodes de compression classique


– Fanno-Shannon
– Huffman

• Taux de compression dépendant


fortement de l’image

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)

Exemple Caractéristiques des formats


1 2 3 • Entête
– Codage utilisé
Table des blocs : – Définition et résolution de l’image
– Représentation de la luminance et des couleurs (palette)

• 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)

Image originelle Image codée (232123)

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

Pourquoi JPEG Codage JFIF (JPEG)


• Compression avec des méthodes sans pertes (Huffman, • Joint Photographic Experts Group
LZW) pas suffisantes pour les images et la vidéo
• JPEG codage avec pertes (version de base), basé sur • Choix d’un taux de compression
deux observations : – Table normalisée de quantification associée
– Le contenu est relativement stable : peu d’altérations dans
une petite zone (typiquement 8x8). En mode fréquentiel :
hautes fréquences correspondent à des petits détails et du • Découpage de l’image en blocs de 8×8 pixels
bruit – Chaque bloc est traité en plusieurs phases
– L’œil humain est beaucoup plus sensible aux modifications
des basses fréquences que des hautes fréquences.
• Performances
– Taux de compression = 10 pour une image identique à
• Codage avec perte qui vise principalement à supprimer l’original
les hautes fréquences et à prendre cette perte en compte – Taux de compression = 100 pour une image reconnaissable
pour compresser au maximum.

34
Codage JFIF : exemples JPEG - étapes
49k 14k 7k (230k non compressé)

1. Préparation des blocs


2. DCT (Discrete Cosine Transform)
3. Quantification
4. Compression différentielle
5. Zig-zag et run-length encoding
6. Codage de Huffman

1. Préparation des blocs 2. DCT


• Transformation Cosinus Discrète
– Discrete Cosine Transform

• Conversion d’un bloc 8x8 dans le domaine fréquentiel :


– Exemple : liste de 12 entiers entre 1 et 3
• (2, 3, 1, 2, 2, 0, 1, 1, 0, 1, 0, 0).
• Tri + comptage des fréquences : (4,4,3,1 ).
• Perte d’information mais fréquences capturées.
– Fourier, DCT…

• 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.

• Décompression : multiplier par le contenu de la matrice.

4. Compression différentielle
DPCM : Differential Pulse Code Modulation

• Seul le premier bloc est codé.


• Les autres sont codés en différence par rapport
à ce premier bloc, en espérant :
– Que les valeurs soient faibles (moins de bits pour
coder).
– Soient proches de 0 et compressés par les étapes
suivantes.
– Deux étapes pour y arriver.

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
.

.
_

200 0 -446 0 0 0 -31.7 0 6 9 12 15 18 21 24 27


0 0 0 0 0 0 0 0 9 12 15 18 21 24 27 30
• Sans compression: 8 x 8 x 8 bits = 512 bits -446
0
0
0
-200
0
0
0
185
0
0
0
0
0
0
0
12
15
15
18
18
21
21
24
24
27
27
30
30
33
33
36
0 0 185 0 200 0 -76.5 0 18 21 24 27 30 33 36 39
• En plus, si 3 couleurs (RGB) 0
-31.7
0
0
0
0
0
0
0
-76.5
0
0
0
-200
0
0
21 24 27 30 33 36 39 42
24 27 30 33 36 39 42 45
– donc 1536 bits. 0 0 0 0 0 0 0 0 27 30 33 36 39 42 45 48

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

Formats analogiques Formats numériques


• NTCS (Standard US) :
– Porteuse 4.429 MHz ; 30 images/s
• Haute définition
– Entrelacement : 525 lignes (60 Hz) – Deux fois plus de lignes et colonnes que les
– Mauvaise qualité en cas de perturbation systèmes conventionnels
• SECAM :
– Chrominance envoyée une ligne sur deux – Frame rate: 50 or 60 frames per second
– Perte de qualité mais non visible à l’œil
– Zones rouges et bleues mal rendues • Ratio : 16:9 ou 4:3
– Disparition en 2010 en France
• PAL :
• Mode entrelacé ou progressif :
– Porteuse 4,43 MHz ; 25 images/s – Systèmes conventionnels (NTSC, PAL,
– Avantages de SECAM mais plus proche de NTSC SECAM) sont entrelacés
• Remplacement à terme par la TNT. – HDTV, moniteurs sont progressifs

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

– Taux de 43,2 Mo par seconde


n d

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

– Quantification de 8 bits par pixel


a L
u
c t

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

– 720,000 pixels par image (frame),


e 2
s

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 -

– Baisse typique à 4,24 Mo avec une


s
y 4
t e e
, M
/
a
n
6
n t

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

– Trois types de frames :


Mode progressif uniquement
Débits de l’ordre de 1.2 Mbit/s
changements de scènes)
méthode de compression

– Débits de l’ordre de 4 à 6 Mbit/s


MPEG
– Sans compression : taille image x

• I (Intracoded) frames - images codées en JPEG


Bande passante

– Redondance temporelle, spatiale et subjective :


• Deux frames successives sont similaires en général
352x240 pixels à 30 images par seconde en NTSC
– Sans compression : résolution x taille pixel

– Images vectorielles : dépend des primitives

• P (Predictive) frames - différence avec la frame précédente


compression et du contenu (typiquement des
– Avec compression : dépend de la méthode de
– Avec compression : dépend de l’image et de la

352x288 pixels à 25 images par seconde en PAL/SECAM

• B (Bidirectional) frames - différence avec les frames précédentes

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)

Frames MPEG Frames MPEG


• I-Frame
– Frames • Entraîne des pertes
indépendantes
(avance et retour • Codage très lent, décodage rapide :
rapide)
• P-Frame – Pas utilisable pour de la visioconférence
– Prédites à partir
des I ou P-frames (plutôt H263)
précédentes
• B-Frame • Frames envoyées dans un ordre différent :
– Prédites à partir
des I et P-frames – Affichage : IPPBBBPPIPPBBBPPI
précédentes et
suivantes – Envoi : IPPPBBBPIPPPBBBPI
– Utilisation de buffers

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

– Blocs de 8x8 • MPEG-4 :


– Débute en 1998, draft en 2003 (MPEG-3 abandonné)
– DCT sur les blocs – Compression vidéo : H-264, divx, …
– Codage par objets :
– Quantification avec une valeur constante •

Extraction depuis les scènes
Codage spécifique pour chaque objet
pour tous les coefficients (pas de matrice – Amélioration de toutes les techniques de MPEG-2 (meilleurs encodeurs
notamment)
de quantification)
• MPEG-7 - multimédia :
– Recherche d’informations
– Combinaison d’objets pour former une scène
– Indépendance entre contenu et présentation

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

• Serveurs fonctionnent comme un magnétoscope (lecteur • Ordonnancement de processus :


DVD) – A qui envoyer les morceaux de vidéos et quand ?
– Rate Monotonic Scheduling, Earliest Deadline First

• Système VoD ou near-VoD : • Système de fichiers


– VoD : lecture à tout moment – Comment stocker les fichiers ?
– Near-VoD : films programmés à horaires fixes – Contraintes temps-réel, avance/retour rapide, utilisateurs multiples
– Placement des fichiers sur le disque, Mise en cache
• Terminologie :
– Serveurs avec streaming : push servers • Ordonnancement du disque
– Où placer les fichiers sur le disque ?
– Serveurs de fichiers classique : pull servers
– Très prédictible
– Approche statique ou dynamique

Ordonnancement Ordonnancement multimedia


• Ordonnancement classique : • Cas simples : taille des fichiers fixée, nombre de fichier fixé
– Équité
– Optimisation de l’utilisation de ressources

• Ordonnancement temps-réel :
– Deadline fortes garanties sans adaptation
– Opérations terminées trop tard inutiles

• Ordonnancement multimédia : • Cas plus réaliste :


– Taille variable
– Deadline souples garanties : adaptation à la charge – Résolution variable
– Opérations terminées trop tard : moins bonne qualité – Nombre variable

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

Préemption Ordonnancement monotone


RMS : Rate Monotonic Scheduling

• Contraintes sur les processus :


– Doivent se terminer dans leur période
– Indépendants
– Temps CPU de chaque requête est constant
– Si non périodiques, pas de deadline
– Préemption

• Priorité déterminée par le taux d’exécution


– Exemple d’un processus lancé toutes les 40ms
• fréquence = priorité = 25Hz
– Hautes priorités prioritaire sur les basses.

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

Systèmes de fichiers Avance/retour rapide


• Transfert rapide • Jouer à une vitesse plus rapide (impossible en général)
• Stockage élevé
• Données non compressées :
• Données fournies sans délai : – Jouer une frame sur k
– Serveur multimédia (VoD)
– Difficile si rien n’est planifié • Données compressées :
– Si indépendance des frames : indexation pour trouver les k-
• Pas d’opération de lecture mais uniquement un start ièmes frames
– Ensuite le serveur envoie au taux fixé – MPEG : I, P, et B
• Décompresser et recompresser toutes les k frames comme une I
– L’utilisateur gère le taux d’affichage
• Débit plus élevé
– L’utilisateur peut faire stop ou pause • Prévision : créer un MPEG avec seulement une frame sur k
– Retour en arrière = start depuis le début – Séparation entre audio et vidéo

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

Placement des fichiers Placement contigu


• Fichiers multimédia : • Simple
– Grande taille • Ok si planifié à l’avance sans changement
– Écrits une fois mais lus souvent • Pose problème si vidéo/audio/texte sont
– Lecture séquentielle stockés dans des fichiers différents

/

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

Petits blocs Plusieurs fichiers


• Aspects positifs : • Near VoD
– Peu d’espace disque perdu – Films de 2h avec 5mn d’intervalle
– Double buffering facile (frame courante ou – 24 flux : frames stockées ensemble
suivante)
– Avance rapide facile (uniquement frames I) • Films avec popularité variable
– Loi de Zipf
• Probabilité que le prochain client choisisse le k-ème film
• Aspects négatifs : le plus populaire est C/k
• C/1 + C/2 + …. + C/N = 1
– Index de grande taille
• C constante de normalisation
– Stockage des trous (temps constant) : – Stockage des fichiers populaires au centre du
• Index des trous à remplir avec des frames si possible 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

Mise en cache de blocs Mise en cache de fichiers


• De nombreux usagers • Fichiers très volumineux :
regardent simultanément – Pas tous stockés sur disque
– Blocs stockés jusqu’à
être vus par tous – DVD, cassettes, etc.
– La désynchronisation
entre usagers détermine
la taille du cache • Transféré sur disque à la demande :
– Mise en route longue
• Resynchroniser les flux
– Accélérer l’un et ralentir
l’autre • Première minutes stockées sur disque :
– Copie sur disque de manière transparente

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

• Vision dynamique : vitesse (débit) variable


– Deadline sur les requêtes (maintenir le frame rate)
– Scan-EDF
• EDF : requête avec la deadline la plus proche
• SCAN : requêtes sur le trajet de la tête de lecture
• Requêtes dont la deadline est proche, traitement dans l’ordre du
cylindre

Un document multimédia Unités de présentation


• Objets composés d’une séquence
d’unités élémentaires
– Logical Data Units (LDU)

• 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

Synchronisation multimédia Valeurs typiques


Média Couplage Décalage

vidéo animation corrélés 120ms

audio synchro des lèvres 80ms

image annotation superposée 240ms


texte annotation non superposée 500ms
audio animation corrélés 80ms

audio fort (stéréo) 11us


faible (plusieurs orateurs) 120ms
très faible (musique de fond) 500ms
image fort (musique avec notes) 5ms
faible (audio avec diapositives) 500ms
texte annotations textuelles 240ms

curseur commentaire associé à un élément désigne 500ms


graphique

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

Notion de scénario temporel Information temporelle


• Scénario déterministes ou pas • Synchronisés grâce à :
– Instants de début et de fin
– Durée de l’objet

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)

• Cadre du travail W3C


– SYMM Working Group (SMIL 1.0 et 2.0)

Objectifs Organisations impliquées


• Format texte avec intégration d’objets média • Oratrix, Real Networks, Microsoft, IBM,
• Basé sur des technologies classiques : Macromedia, Intel, Philips, Panasonic,
– XML, etc. Nokia Produits
• Notion de documents temporisés et de • Institution publiques: INRIA, CWI, NIST,
synchronisation WGBH …Syst. Expérimentaux
• Neutralité vis-à-vis des protocoles d’accès
réseaux et formats des médias RTP, RTSP, • Points forts :
Mpeg,... – Version 1.0 est un succès relatif …
• Rassembler les industriels du multimédia et du – Langage très simple
web autour d’un format ouvert (le défi) – Plus en plus d’intégration avec les autres
standards du web

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

• Schedule = Parallel | Seq | Excl • Attributs :


| Media object – Src : localisation du fichier (URL)
| ancres (dep/arr) • rtsp://rtsp.example.org/video.mpg
| Switch – Type : type mime (par exemple video/mpeg)
| priorityClass – Region : identifiant d’une surface d’affichage
| Prefetch – Dur : durée de l’objet média

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>

L’élément parallèle : par L’élément switch


• Jouer en parallèle un ensemble d’objets • Un élément à choisir parmi un ensemble
d ’éléments alternatifs
– Terminaison fixée • Choix est basé sur des valeurs d’attributs
– Attributs : – language, screen size, depth, bitrate,
systemRequired
a par – …et des préférences de l’utilisateur
a
b b b ...
c <switch>
<audio src="joe-audio-better-quality" language="fr"/>
<audio src="joe-audio" language="en"/>
</switch>
...

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

• Implémentation : les CDNs


• Comment trouver le média ? – « Content Distribution Networks »
– les DHTs – Réseaux de diffusion de contenu
– Exemple : Akamai

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

• Solution : localisation dynamique

• Implémentation : les DHTs (systèmes P2P structurés)


– « Distributed Hash Tables »
– Tables de hachage distribuées
– Exemples : Tapestry, Pastry, Chord, CAN

Les problèmes Équilibrage de charge


réseau serveur

réseau fédérateur serveur surchargé

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é

pénurie de bande passante


• Désavantages
– N’aide pas au niveau de délai ou gigue
– Ne résoud pas la congestion dans le
« proxy » Web
réseau

Serveurs mandataires CDN : architecture


serveur
• Avantages
– Délais plus courts CDN
– Enlève la congestion infrastructure
infrastructure
– Décharge le serveur principal d’annuaire
de distribution et
comptabilité

• 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

Fonctionnement Infrastructure d’annuaire


• Seul du contenu statique est utilisable par le • Basé sur le DNS
système
– infrastructure déjà existante
• Le nom modifié contient le nom de fichier
original et l’identifiant du fournisseur :
– http://a73.g.akamaitech.net/7/23/ • Ajout d’un serveur DNS spécialisé
– cnn.com/af/x.gif
– Choix en fonction de :
• En cas de requête sur Akamai :
• Mesures de délai, latence, gigue, etc.
– Vérification de l’existence du fichier dans le cache
– Si absent, requête sur le fournisseur réel et mise • Politiques
en cache

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

• Problème en cas de panne : n n-1


– Renumérotation de tous les fichiers
DNS query: – Fichiers plus demandés : serveurs surchargés
www.yahoo.com
– Hachage consistant (charge bien répartie,
p3.sophia.inria.fr
DNS serveur local (sophia.inria.fr) résistant aux pannes, etc.)
128.4.4.12
128.4.30.15
DNS response:
A 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

– Triangulation des clients avec ping


– Mesure QoS (gigue, délai, débit)
DNS query
DNS serveur local
p3.sophia.inria.fr (sophia.inria.fr)
128.4.30.15 128.4.4.12
DNS response

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 ?

Systèmes centralisés Overlays non structurés


• Type Napster Bob Alice • Les overlays sont des structures génériques, on peut les
utiliser comme on veut avec des opérations d’insertion de
• Avantages : nœuds, de suppression, de recherche de contenu…
– Recherche efficace
• Avantages
– Bande passante limitée
– Flexibilité : pas de structure => arrivées et départs simples
– Pas d’information sur – Requêtes complexes
les nœuds • Inconvénients :
• Inconvénients : – Recherche de contenus difficile – inondation
• horizon limité
– Nœud central sensible • Tradeoff entre l’overhead et la taille de l’overlay accessible
– Passage à l’échelle Judy Jane
limité

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 ?

• Améliorations possibles mais malgré


tout…
262

Les origines : Napster (1999) Napster


• Objectif : application P2P pour le partage de • Connexion :
fichiers mp3 – Connexion au serveur
– Transmission de la liste de
– Chaque utilisateur peut contribuer avec ses fichiers partagés
propres fichiers • Recherche : join
– Envoi de requêtes au
• Fonctionnement : serveur
– Recherche dans la base et
– Serveur central maintenant une liste des pairs envoi d’une liste de pairs
actifs et de leurs fichiers. • Récupération : …
• Stockage et téléchargement distribué : – Contact direct du/des pair
ayant le fichier
– Les clients font office de serveurs de fichiers
– Prise en compte du taux de
– Tout le contenu téléchargé est partagé transfert

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

Napster Après Napster


• Protocoles de téléchargement de fichiers :
• Avantages : – 1999 : Napster
– Peu d’overhead – 2000 : Gnutella, eDonkey
– 2001 : Kazaa
– Succès garanti (si le fichier est publié, il – 2002 : eMule, BitTorrent
sera trouvé) – 2003 : Skype
– 2004 : PPLive
• Inconvénients – TV : TVKoo, TVAnts, PPStream, SopCast
– A venir : VoD, jeux applications distribuées
– Serveur central (critique)
• Tentative de décentralisation à plus ou moins forte échelle
– Passe mal à l’échelle

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

• Ne passe pas à l’échelle • Trackers :


– Free-riding dans les réseaux P2P – Nœuds ne partageant pas de contenu
– Liste des paris partageant le contenu
• Téléchargent sans contribuer – Partie critique

• 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

Fichiers Mécanismes « incitatifs »


• Les fichiers sont découpés en morceaux de taille • Au plus 4 uploads simultanés
fixe (typiquement 256Ko)
• Chaque downloader annonce aux autres pairs les – Éviter d’avoir trop de connexions TCP
morceaux qu’il possède ouvertes simultanément
• Des codes de hachage sont utilisés pour tous les • Contrôle de congestion difficile avec beaucoup
morceaux afin de garantir leur intégrité. de connexions partageant la BP.
– Réévalué toutes les 10 secondes
• Téléchargement des morceaux :
– « Rarest order first » (avec randomisation pour que – Basé sur le taux de téléchargement :
tout le monde ne veuille pas le même) • 4 pairs intéressés avec le meilleur taux de
– Méthode pour accélérer la fin du téléchargement téléchargement (réciprocité)
– Principe « un prété pour un rendu »

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)

Chord - Protocole Chord - Structure logique


• Fonction de hachage : la clef est • Espace d’adressage m-bit (2m IDs)
– typiquement m=160
calculée avec SHA-1 sur m bits. • Nœuds organisés sur un anneau
• Les @IP sont hachées de la même N56 N1
manière. N51 N8

N48 N10

• Les identifiants sont ordonnés sur un N14


cercle anneau. N42
N21
N38
N30

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

Chord - Routage sur l’anneau Chord - « Finger table »


N120
N10 Où est la clef 80 ?
¼ ½
N105

“N90 a K80” N32 1/8

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

Chord - Routage Chord - Arrivée


1. Recherche(36)
• Chaque nœud transmet une requête sur
2. N36 affecte son
au moins la moitié de la distance le successeur
3. Les clefs de 26 N25
séparant de la cible.
à 36 sont
• Théorème : avec forte probabilité, le attribuées à N36 N36
nombre de nœuds avant d’arriver à 4. N25 affecte son
successeur
destination est O(log N) N40 K30
5. Les tables finger K38
sont mises à
jour plus tard
(complexe)

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)

Chord - Arrivée Chord - Arrivées


1. Recherche(36) • Recherche
– Si les tables finger sont à jour (ou presque) : O(log N)
2. N36 affecte son – Successeur ok, tables finger erronées : recherche plus lente
successeur
– Successeur incorrect : pas de garantie
3. Les clefs de 26 N25
à 36 sont K30
• Performance :
attribuées à N36 N36 – Si le système est stabilisé : O(log N)
4. N25 affecte son – Sinon
successeur
N40 K38
• Certaines tables finger peuvent être incomplètes (impact faible)
• De nouveaux nœuds peuvent se trouver entre la destination et son
5. Les tables finger prédécesseur
sont mises à – La recherche doit être propagée par les nouveaux nœuds un par un
jour plus tard
(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é, …

CAN : solution CAN - routage


• Système virtuel de coordonnées cartésiennes
– Espace des clefs

• Espace partitionnée parmi tous les nœuds


– chaque nœud « possède » un morceau d’espace

• Pour chaque point de l’espace :


– Stockage de données en ce point
– Routage d’un point à un autre
– Fonctions assurées par le nœud auquel appartient le
point de l’espace

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)

CAN - insertion d’un nœud

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

– Information à propos de ses voisins

CAN - insertion d’un nœud

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

é é

CAN - insertion d’un nœud


CAN - insertion d’un nœud

, 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

– seuls les voisins sont impliqués


– les données du nœud défaillant

• de la redondance dans les voisins

• les voisins assument la responsabilité


CAN - insertion d’un nœud

(
J

, p
CAN - Défaillance d’un nœud

)
79
CAN - Routage résistant CAN - Routage résistant

destination

source

CAN - Routage résistant CAN - Routage résistant


d

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

DHT - Conclusions DHT - Problèmes


• Limiter les nombres de contacts • Localisation DHT Vs. Localisation réelle
– Peu d’informations à stocker sur chaque sommet
– Mises à jour plus rapides
– A est le voisin Chord/CAN de B
• Limiter le diamètre – A est à Paris, B à Tokyo
– Inondation rapide si besoin
– Recherche en temps borné garanti
• Défaillance de plusieurs nœuds ?
• Nombreuses approches récentes :
– Optimisation de ces paramètres • Concentrations de trafic
– Topologies sous-jacentes de plus en plus complexes. – Nœuds responsables pour des fichiers
fréquemment réclamées

81
Skype
• Protocole pas
Skype complètement connu
– Propriétaire
VoIP en P2P/DHT – Contrôle et contenu
crypté

Skype Overlay Skype Overlay


• Nœuds ordinaires (ON)
– Connectés aux super nœuds

• Super Nœuds (SN)


– Connectés entre eux Messages
– Overlay non structuré (similaire à Gnutella ?) échangés
– Agissent comme directory servers (similaire aux index durant la
serveur de Napster) connexion

• Serveur de connexion Skype


– Seul composant central
– Stocke et vérifie login/pass
– Stocke la liste de contacts SN ON Voisins

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

SN – Serveurs d’Index SN – Relai


• Super Nœuds = index • SN peuvent relayer des informations :
– Indexation des utilisateurs connectés et de
leur @IP – Traverser des serveurs NAT
– Eviter des chemins congestionnés
• Si un contact n’est pas trouvé dans l’index
local du SN : Alice
– La recherche est diffusée aux super nœuds Call
voisins
– Implémentation pas complètement comprise Skype
• Inondation similaire à Gnutella Bob relay
node

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

• Skype semble gérer ces contraintes


malgré le churn élevé

• Protocole pas entièrement compris

84
Clefs du succès
• Coût faible :
– peu ou pas d’infrastructure
– Serveurs de connexion

• Chacun peu introduire les contenus


– Fait-maison, illégal, légal, …

• Forte disponibilité des contenus :


– accessibles presque en permanence

• Applications à succès :
– Téléchargement de fichiers, VoIP, TV sur IP, VoD, …

85

Vous aimerez peut-être aussi