Vous êtes sur la page 1sur 75

Compression de sources sonores

N. MOREAU
GET - ENST/TSI
nicolas.moreau@enst.fr

20 décembre 2007 Licence de droits d’usage Page 1


Nicolas MOREAU
Idée directrice

• Codage audio : domaine assez complexe


• Différents types de signaux
? Parole en bande téléphonique, en bande élargie
? Musique en bande Hi-Fi
• Plusieurs organismes de standardisation/normalisation
• Nombreuses normalisations/recommandations
• Plan de l’exposé
• Focalisation sur les codeurs
? Musique : codeurs “perceptuels” MPEG-4 AAC, AAC+
? Parole : codeur “CELP”
? Musique/parole : codeurs “paramétriques”
• Leur place dans le paysage
• Les principes, les informations transmises

20 décembre 2007 Licence de droits d’usage Page 2


Nicolas MOREAU
Généralités

• Parole
• Bande téléphonique : ∆B = 300 Hz - 3.3 kHz, Fe = 8 kHz
Débit : 13 bits × 8 kHz = 104 → 6 kbit/s
• Bande élargie : ∆B = 50 Hz - 7 kHz, Fe = 16 kHz
Débit : 14 bits × 16 kHz = 224 → 24 kbit/s
• Musique Bande Hi-Fi
• Qualité “FM” : ∆B = 20 Hz - 15 kHz, Fe = 32 kHz
Débit : 16 bits × 32 kHz = 512 → 64 kbit/s (monovoie)
• Qualité “CD” : ∆B = 20 Hz - 20 kHz, Fe = 44.1 kHz
Débit : 16 bits × 44.1 kHz = 705 → 64 kbit/s
(1.4 Mbit/s → 96 kbit/s en stéréo)
• Qualité “Studio” : ∆B = 20 Hz - 22 kHz, Fe = 48 kHz
Débit : 16 bits × 48 kHz = 768 → 64 kbit/s
(3.84 Mbit/s → 384 kbit/s en 5.1)
• Qualité “parfaite” : ∆B = 20 Hz - 40 kHz, Fe = 96 kHz
Débit : 24 bits × 96 kHz = 13.8 → ? Mbit/s en 5.1
20 décembre 2007 Licence de droits d’usage Page 3
Nicolas MOREAU
CD et nouveaux supports

• CD
• Fe = 44.1 kHz, résolution = 16 bits
Débit = 705 kbit/s en mono (1.4 Mbit/s en stéréo)
• Existence de codes correcteurs sophistiqués
? 2 étages de codes Reed Solomon séparés par un entrelaceur
? + bits d’information + bits de commandes (gestion des pistes)
+ “Eight-to-fourteen modulation” + bits de synchronisation
⇒ CD ≡ canal à 4.3 Mbit/s
• Nouveaux supports
• DVD-Audio : Fe = 48, 96 ou 192 kHz / 24 bits
SACD (Super Audio CD) : Fe = 2.82 MHz / 1 bit
(modulation “sigma-delta”)
Approximativement équivalents en qualité et en capacité (≈ 5 Go)
Multi-canaux (de 2 à 6)
• Prochainement : HD-DVD, Blu-Ray Disc ? Capacité × 5
20 décembre 2007 Licence de droits d’usage Page 4
Nicolas MOREAU
Un “bon” codeur : résultat d’un compromis

• Débit
Codeur monodébit, multidébit, hiérarchique (“scalable”, train
binaire en plusieurs “couches”)
• Qualité
• Complexité (exprimée en MIPS sur un DSP, en % sur un PC)
Implantation en virgule fixe, en virgule flottante
• Retard de reconstruction (critique en “full duplex”)
Retard algorithmique : dépend de la durée d’une “fenêtre
d’analyse”
Retard total ≈ 3× retard algorithmique < 150 ms
• Tenue aux erreurs de transmission
Communications avec les mobiles : codes correcteurs d’erreurs
Communications sur IP : problème de pertes de paquets
20 décembre 2007 Licence de droits d’usage Page 5
Nicolas MOREAU
Evaluation de la qualité

• Test subjectif (écoute) formel (protocole expérimental)


• Codeurs de parole : qualité médiocre ⇒ tests d’intelligibilité
(Absolute Category Rating, Degradation Category Rating, etc.)
• Codeurs audio débits compris entre 20 et 64 kbits/s
Qualité “intermédiaire” ⇒ méthode MUSHRA
Recommandation UIT-R BS.1534-1
• Codeurs audio de très bonne qualité
“Transparence” ⇒ Recommandation UIT-R BS.1116
• Recommandation UIT-R BS.1116
• Enregistrements courts (entre 5 et 10 secondes) répétés 3 fois
• Deux possibilités ABA/AAB (A = original, B = codé/reconstruit)
• Réponse réclamée : B en 2ème ou en 3ème position ?
Opinion sur B (5 niveaux)
• Traitement statistique ⇒ comparaison “objective” entre codeurs

20 décembre 2007 Licence de droits d’usage Page 6


Nicolas MOREAU
Organismes de standardisation/normalisation

• UIT-T (SC16/WP3/Q7-10)
• Parole en bande téléphonique sur réseaux fixes + paquets
• Téléphonie, visiophonie, VoIP
• ISO/IEC (JTC1/SC29/WG11)
• Musique en bande Hi-Fi
• Baladeurs, DVD, TNT, streaming, brodcasting, Digital Radio
Mondiale
• ETSI, TIA, 3GPP
• Parole en bande téléphonique ou élargie/Musique sur réseaux
mobiles
• Téléphonie, streaming, ...
• INMARSAT, OTAN, DoD
• Parole sur des réseaux particuliers
• Transmissions par satellites, communications militaires
20 décembre 2007 Licence de droits d’usage Page 7
Nicolas MOREAU
Parole en bande téléphonique

• Réseau téléphonique commuté


Recommandations UIT-T
• 64 kbit/s : G.711 en 1972
PCM : Pulse Code Modulation
• 32 kbit/s : G.721 en 1984
ADPCM : Adaptive Differential PCM
• 16/24/32/40 kbit/s : G.726 (version multidébit)
G.727 (version à codes imbriqués)
• 16 kbit/s : G.728 en 1991
LD-CELP : Low Delay Code Excited Linear Prediction
• 8 kbit/s : G.729 en 1995
CS-ACELP : Conjugate Structure Algebraic CELP
• 5.3/6.3 kbit/s : G.723.1 en 1995

20 décembre 2007 Licence de droits d’usage Page 8


Nicolas MOREAU
Parole en bande téléphonique : applications

• Réseau téléphonique commuté


• 64 kbit/s G.711 : Réseau RNIS
• 32 kbit/s G.721 G.726 G.727 :
Transmissions par cables sous-marins, satellites
Norme européenne téléphone sans cordon DECT
(Digital Enhanced Cordless Telecommunications)
Protocoles de transmission par paquets
(Packetized Voiced Protocol)
• 16 kbit/s G.728 : Transmissions réseaux par paquets ATM ou IP
• 8 kbit/s G.729 : Liaisons satellites
• 5.3/6.3 kbit/s G.723.1 : Visiophonie RTC

20 décembre 2007 Licence de droits d’usage Page 9


Nicolas MOREAU
Parole en bande téléphonique (suite)

• Communication avec les mobiles : ETSI en Europe


(European Telecommunications Standards Institute)
• 1ere génération
? 13 (22.8) kbit/s GSM 06.10 en 1988
RPE-LTP : Regular Pulse Excitation Long Term Predictor
• 2eme génération
? 5.6 (11.4) kbit/s GSM 06.20 “Half-Rate” en 1994
? 12.2 (22.8) kbit/s GSM 06.60 “Enhanced Full-Rate” en 1996 (ACELP)
? 4.75 → 12.2 (11.4/22.8) kbit/s GSM 06.90 en 1999
ACELP-AMR : Adaptive Multi Rate
• 3eme génération : 3GPP (3rd Generation Partnership Project)
? AMR-WB (wide band) : collaboration UIT/ETSI G.722.2

20 décembre 2007 Licence de droits d’usage Page 10


Nicolas MOREAU
Parole en bande téléphonique (suite)

• Autres applications
• Communications sécurisées :
2.4 kbit/s US DoD (LPC10) en 1976 (puis en 1997)
4.8 kbit/s : US DoD en 1991
• Communications avec les mobiles par satellite :
INMARSAT ≈ 6 kbit/s : IMBE en 1990
• Applications militaires (normes OTAN)
4800 ... 800, 600, 400 bits/s

20 décembre 2007 Licence de droits d’usage Page 11


Nicolas MOREAU
Parole en bande élargie

• Communications de groupe : téléconférence, téléphonie sur


haut-parleurs
• 48/56/64 kbit/s : G.722 en 1986
SB-MICDA
• 24/32 kbit/s : G.722.1 en 1999
LCTC : Low Complexity Transform Coder
• Téléphonie mobile
• 6.6/ ... /23.85 kbit/s : AMR-WB, G.722.2 en 2002

20 décembre 2007 Licence de droits d’usage Page 12


Nicolas MOREAU
Normalisations : MPEG-1, MPEG-2

• En 1992 : MPEG-1 (Diffusion audio numérique (DAB))


• Mono/stéréo, Fe = 32, 44.1 ou 48 kHz
• 3 couches de qualité équivalente mais de complexité croissante :
Transparence 705 → 192, 128, 96 kbit/s
• MP3 = MPEG-1 Layer 3
• En 1994, 1997 : MPEG-2 (TNT, TVHD, DVD, etc.)
• Extension multi-voies (5.1) du MPEG-1, nombreuses fréquences
d’échantillonnage, nombreux débits
• MPEG-2 BC (Backward Compatible)
• MPEG-2 AAC (Audio Advanced Coder)
? Codeur le plus performant à l’heure actuelle (utilisé dans les iPods)
? Transparence à ≈ 64 kbit/s (384 kbit/s dans la configuration 5.1)
? Plusieurs “profils”, nombreux “outils”
? Complexité ≈ 100 MIPS (codeur), 10 MIPS (décodeur)
• Autres codeurs “propriétaire” : Dolby AC3 en 1995, etc.
20 décembre 2007 Licence de droits d’usage Page 13
Nicolas MOREAU
MPEG-4

• Objectifs ambitieux
• Sons d’origine naturelle (microphone) ou synthétique (machine)
• Définition d’objets sonores, de scènes sonores
• Normalisations
• Première version : en 1998
• Nombreuses révisions, nombreux compléments
• “Draft International Standard” en 2005
ISO/IEC 14496-3 :2005
“Information technology - Coding of audio-visual objects”

20 décembre 2007 Licence de droits d’usage Page 14


Nicolas MOREAU
MPEG-4 : Sons d’origine naturelle

• Définition d’une famille de codeurs hiérarchiques


705 → 64 kbit/s ⇒ “Transparence”
64 → 2 kbit/s ⇒ Qualité “intermédiaire” (ou médiocre)
• Parole en bande téléphonique, bande élargie
• 24 → 4 kbit/s : Codeur CELP (≈ UIT-T G.729)
• 4 → 2 kbit/s : Codeur HVXC (Harmonic Vector eXcitation Coding)
• Musique en bande Hi-Fi
• 64 → 16 kbit/s : Codeur MPEG-2 AAC
Variante BSAC (Bit Slice Arithmetic Coding)
Version TWIN-VQ (Transform Weighted INterleave-VQ)
Outil SBR (Spectral Band Replication)
Outil Parametric stereo
• 24 → 2 kbit/s : Codeur HILN (Harmonic and Individual Line plus
Noise coding)
20 décembre 2007 Licence de droits d’usage Page 15
Nicolas MOREAU
MPEG-4 : Sons d’origine naturelle (suite)

• MPEG-4 AAC+ ou HE-AACv2 (High Efficiency)


• AAC + SBR (Spectral Band Replication) + Parametric stereo
• Taux de compression élevé : 2 × 705 → 24 kbit/s
• Qualité intermédiaire
• Candidat pour plusieurs normes : Digital Radio Mondiale, 3GPP, ...
• MPEG-4 SLS (Scalable lossless Coding)
• Taux de compression faible
705 → ≈ 300 kbit/s (sans perte) → ≈ 64 kbit/s (scalable)
Studio de production

20 décembre 2007 Licence de droits d’usage Page 16


Nicolas MOREAU
MPEG-4 : Autres potentialités

• Sons d’origine synthétique


• Algorithme de synthèse de la parole
Synthèse ”Text-To-Speech”
• Langage pour engendrer de la musique
SAOL : Structured Audio Orchestra Language
• Exploitation du format MIDI
• Standardization de la façon de décrire une scène
• Définition de l’endroit dans un système de coordonnées où se
trouve (se déplace) un objet sonore (navigation dans une scène)
• Façon dont est modifiée l’apparence de chaque objet
• Modifications prosodiques pour de la parole
• Réverbération, spatialisation pour de la musique

20 décembre 2007 Licence de droits d’usage Page 17


Nicolas MOREAU
Transformées de Fourier

• à “temps continu” (TFTC)


Z +∞ Z +∞
x(t) = X (f ) exp(j2πft) df
X (f ) = x(t) exp(−j2πft) dt
−∞ −∞

• à “temps discret” (TFTD)


Z +1/2 +∞
X
x(n) = X (f ) exp(j2πfn) df
X (f ) = x(n) exp(−j2πfn)
−1/2 n=−∞

• “discrète” (TFD, FFT)


N−1 N−1
1 X k X k
x(n) = X (k ) exp(j2π n)
X (k ) = x(n) exp(−j2π n)
N N N
k=0 n=0

X =Hx

20 décembre 2007 Licence de droits d’usage Page 18


Nicolas MOREAU
TFD : Interprétation fréquentielle

N−1 N/2
1 X k 1 X k
x(n) = X (k ) exp(j2π n) = |X (k )| cos(2π n + φ(k ))
N N N N
k =0 k =0

N k
[|X (0)|2 · · · |X ( )|2 ] ⇒ {S(fk = )}fk =0···1/2
2 N

“Densité Spectrale de Puissance” ou “Spectre de puissance”


100
0.4

90
0.3

80
0.2
70

0.1
60

0 S (f) [dB]
X
50

−0.1 40

30
−0.2

20
−0.3

10
−0.4
0
0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0 1 2 3 4 5 6 7 8
Temps [s] Fréquences [kHz]

20 décembre 2007 Licence de droits d’usage Page 19


Nicolas MOREAU
Exemple d’un signal de parole : “Là-bas il y a ...”

0.4

0.3

0.2

0.1

−0.1

−0.2

−0.3

−0.4

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1


Temps [s]

100
0.4

90
0.3

80
0.2
70

0.1
60

S (f) [dB]
0
50

X
−0.1 40

30
−0.2

20
−0.3

10
−0.4
0
0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0 1 2 3 4 5 6 7 8
Temps [s] Fréquences [kHz]

“Fenêtres d’analyse” recouvrantes 20 ms (N = 160 si Fe = 8 kHz)


20 décembre 2007 Licence de droits d’usage Page 20
Nicolas MOREAU
Exemple d’un signal de musique : violon

0.25

0.2

0.15

0.1

0.05

−0.05

−0.1

−0.15

−0.2

−0.25
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Temps [s]

0.25 100

0.2 90

0.15 80

0.1 70

0.05 60

S (f) [dB]
0 50

X
−0.05 40

−0.1 30

−0.15 20

−0.2 10

−0.25 0
0.15 0.16 0.17 0.18 0.19 0.2 0 2 4 6 8 10 12 14 16 18 20
Temps [s] Fréquences [kHz]

“Fenêtres d’analyse” recouvrantes 20 ms ⇒ N = 512, 1024 ou 2048

20 décembre 2007 Licence de droits d’usage Page 21


Nicolas MOREAU
Autre exemple : piano

0.2

0.15

0.1

0.05

−0.05

−0.1

−0.15

−0.2

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1


Temps [s]

100
0.2

90
0.15
80

0.1
70

0.05
60

S (f) [dB]
0 50

X
−0.05 40

30
−0.1

20
−0.15

10
−0.2
0
0.45 0.46 0.47 0.48 0.49 0.5 0 5 10 15 20
Temps [s] Fréquences [kHz]

Spectre de puissance caractéristique du “timbre” de l’instrument


20 décembre 2007 Licence de droits d’usage Page 22
Nicolas MOREAU
Codeurs de parole : plan de l’exposé

• Codeur PCM à 64 kbit/s : QS non uniforme


• Codeur ADPCM à 32 kbit/s
• Rappels de la théorie de la prédiction linéaire
• Principe du codeur ADPCM
• Introduction d’un modèle de production de type “source/filtre”
• Détermination des coefficients du filtre
“Analyse LPC” toutes les 20 ms (N = 160)
• Détermination de l’entrée du filtre
? Codeur LPC10 à 2.4 kbit/s
Bruit blanc pour des sons non voisés
Train d’impulsions pour des sons voisés
? Codeur RELP (Residual Excitation Linear Prediction) et
“multi-impulsionnel” : schéma en “boucle ouverte”
? Codeur CELP à 8 kbit/s : schéma en “boucle fermée”

20 décembre 2007 Licence de droits d’usage Page 23


Nicolas MOREAU
Quantification scalaire

8 8

6 6

4 4

2 2

0 0

−2 −2

−4 −4

−6 −6

−8 −8

5 10 15 20 25 30 35 40 45 50 5 10 15 20 25 30 35 40 45 50

• b = résolution = nombre de bits/échantillon


• Bruit de quantification q(n) = x(n) − x̂(n) modélisable par un bruit
blanc de puissance
σX2
σQ2 = c σX2 2−2b ⇒ 10 log10 = 6.02 b − cdB
σQ2

• Règle des “6 dB par bit”


20 décembre 2007 Licence de droits d’usage Page 24
Nicolas MOREAU
Quantification vectorielle

x(n)

X0 X0
. x(m) Regle du i(m) Inspection x(m) .
. .
. plus proche dans .
voisin une table
X N-1 X N-1

x(n)
1 L
x x

Regroupement des échantillons 2 par 2 puis projection dans le plan

10
8

8
6
6
4
4

2
2

0 0

−2
−2

−4
−4
−6
−6
−8

−8
−10

20 40 60 80 100 120 140 −8 −6 −4 −2 0 2 4 6 8

20 décembre 2007 Licence de droits d’usage Page 25


Nicolas MOREAU
Performances comparées QS/QV

8 8

6 6

4 4

2 2

0 0

−2 −2

−4 −4

−6 −6

−8 −8

−8 −6 −4 −2 0 2 4 6 8 −8 −6 −4 −2 0 2 4 6 8

QS : N = 1 L = 4 QV : N = 2 L = 16
2 2
σQ |QS > σQ |QV

20 décembre 2007 Licence de droits d’usage Page 26


Nicolas MOREAU
Codeur MIC (64 kbit/s)

• QS mal adaptée à des signaux présentant des variations de


puissance instantanée importantes
• Maintenir un RSB ≈ cst
• Utilisation d’une caractéristique non-linéaire
y (n) = f [x(n)], ŷ (n) = QSunif [y(n)], x̂(n) = f −1 [ŷ (n)]
“Loi A” en Europe, “Loi µ” aux États-Unis
• “COMPANDING” = “COMPressing” + “expANDING”
10

−2

−4

−6

−8

−10
−10 −8 −6 −4 −2 0 2 4 6 8 10

20 décembre 2007 Licence de droits d’usage Page 27


Nicolas MOREAU
Codeur MICDA : QS prédictive

x(n) + y(n) y(n) + x(n)


+ Q Q −1 +
− +

v(n)
A’(z)

• Erreur de quantification : q(n) = y(n) − ŷ(n)


Erreur de reconstruction : q̄(n) = x(n) − x̂(n) = q(n)
Erreur de prédiction : y(n) = x(n) − v (n) = x(n) + Pi=1 ai x(n − i)
P

• Chaque fenêtre d’analyse : [x(0) · · · x(N − 1)]


N−1
X N−1
X P
X
aopt = arg min y 2 (n) = arg min [x(n) + ai x(n − i)]2
a1 ···aP a1 ···aP
n=0 n=0 i=1

• Codeur à 32 kbit/s ⇒ quantifier y(n) sur 4 bits


20 décembre 2007 Licence de droits d’usage Page 28
Nicolas MOREAU
Codeur MICDA : QS prédictive en boucle fermée

x(n) + y(n) y(n) + x(n)


+ Q Q −1 +
− +

v(n)
A’(z)

x(n) + r(n) r(n) + x(n)


+ Q Q −1 +
− +

v(n)
A(z)

+ r(n) + x(n)
+ Q Q −1 +
− +

Q −1 A(z)

r(n)
+
+
+
x(n)
A(z)

• Schéma en “boucle ouverte” non réaliste


⇒ Schéma en “boucle fermée”
• Décodeur “local” / Décodeur “lointain”
20 décembre 2007 Licence de droits d’usage Page 29
Nicolas MOREAU
Prédiction linéaire : approche “Moindres Carrés”

• Connaissant x(0) · · · x(N − 1) on cherche a1 · · · aP minimisant


N−1
X N−1
X
y 2 (n) = [x(n) + a1 x(n − 1) + · · · + aP x(n − P)]2
n=0 n=0

• Expression matricielle
···
2 3 2 3 2 32 3
y (0) x(0) x(−1) x(−P) a1
.. .. .. .. 76 . 7
= + 5 4 .. 5
6 7 6 7 6
4 . 5 4 . 5 4 . .
y (N − 1) x(N − 1) x(N − 2) ··· x(N − P − 1) aP

y = x + Γa
• Solution
∂ t ∂ t
[y y ] = [x x + 2x t Γa + at Γt Γa] = 0 ⇒ aopt = −(Γt Γ)−1 Γt x
∂a ∂a

20 décembre 2007 Licence de droits d’usage Page 30


Nicolas MOREAU
Théorie de la prédiction linéaire

• Connaissant le p.a. X (n) on cherche a1 · · · aP minimisant


E{Y 2 (n)} = E{[X (n) + a1 X (n − 1) + · · · + aP X (n − P)]2 }
• Minimisation de :
σY2 = σX2 + 2 r t a + at Ra
··· rX (P − 1)
2 3 2 3
rX (1) rX (0)
r =4 .
. .
. .. ..
5 R=4
6 7 6 7
. . . . 5
rX (P) rX (P − 1) · · · rX (0)
• Solution : équations normales (de Yule-Walker)
aopt = −R −1 r

σY2 = at r

20 décembre 2007 Licence de droits d’usage Page 31


Nicolas MOREAU
Théorie de la prédiction linéaire (propriétés)

• Le filtre A(z) = 1 + a1 z −1 + · · · + aP z −P est le filtre “blanchissant”


• Si X (n) est un p.a. AR d’ordre P0 , alors il existe un filtre
totalement blanchissant dès que P ≥ P0
• On en déduit
σY2
SY (f ) = |A(f )|2 SX (f ) = σY2 ⇒ SX (f ) =
|A(f )|2

20 décembre 2007 Licence de droits d’usage Page 32


Nicolas MOREAU
Faire une “Analyse LPC”

• A partir de x(0) · · · x(N − 1) calculer


N−1−k
1 X
r̂ (k ) = x(n)x(n + k ) pour k = 0 · · · P
N
n=0

• Résoudre a = −R̂ −1 r̂
• Filtrer x(n) ⇒ le signal “résiduel” y(n)
100
0.4

90
0.3
80

0.2
70

0.1
S (f) [dB] 60

0 50
X

−0.1 40

30
−0.2

20
−0.3

10
−0.4
0
0.12 0.125 0.13 0.135 0.14 0.145 0.15 0 0.5 1 1.5 2 2.5 3 3.5 4
Temps [s] Fréquences [kHz]

20 décembre 2007 Licence de droits d’usage Page 33


Nicolas MOREAU
Codeurs de parole : recherche d’un modèle

x(n) y(n) Flux binaire y(n) 1 x(n)


A(z) −1 A(z)
Q Q
LPC a a

Emetteur Canal Récepteur

• 1ère étape : modélisation de x(n) par la réalisation d’un


processus AR(P) ⇒ détermination des coefficients du filtre de
synthèse 1/A(z)
• 2ème étape : modélisation de l’entrée du filtre de synthèse
• 1ère tentative : rendre SX̂ (f ) ≈ SX (f ) ⇒ “vocodeur”
• Autres tentatives : codeurs “hybrides”, codeurs
“analyse-par-synthèse”
20 décembre 2007 Licence de droits d’usage Page 34
Nicolas MOREAU
Codeur LPC10 (2.4 kbit/s)

• Sons non voisés : ŷ(n) = réalisation bruit blanc puissance σY2


σY2
SX̂ (f ) =
|A(f )|2

• Sons voisés : ŷ(n) = α


P
k λ(n − kT0 + φ)
X δ(f − kf0 )
SX̂ (f ) = α
|A(kf0 )|2
k

• Débit (actualisation et transmission des paramètres du modèle


toutes les 20 ms)
• A(z) ≈ 50 × 10 × 3 ou 4 ≈ 1.8 kbit/s
QV des “Line Spectrum Pairs”
• σY2 ≈ 50 × 6 ≈ 300 bit/s (couvrir 50 dB par pas de 1 dB)
• Distinction voisé/non voisé = 50 bits/s
• Pitch : 50 × log2 (T0max − T0min ) = 350 bits/s
20 décembre 2007 Licence de droits d’usage Page 35
Nicolas MOREAU
Codeur CELP : Approche “QV”

x(n)

X0 Formes X0
. Regle du Inspection .
. .
. plus proche Gains dans .
voisin une table
X N-1 X N-1

1 L
f f

1 Coefficients 1
Modelisation
A(z) A(z)

• Dictionnaire de quantification vectorielle adapté par filtrage

20 décembre 2007 Licence de droits d’usage Page 36


Nicolas MOREAU
Codeur CELP : Approche “Modélisation
paramétrique”

x(m)

− Min || x − x ||
0 L−1
0 r(m) 1
x(m)
A(z)
N−1 g(m)
i(m)

• Modèle de production “source-filtre”


• Schéma de codage “analyse-par-synthèse”
• QV “gain-forme” et “multi-étages”

20 décembre 2007 Licence de droits d’usage Page 37


Nicolas MOREAU
Codeur CELP : Informations transmises

6 x(m)

?-
0 i(m) L − 1 − min ||x − x̂||2
Emetteur
0 g(m)
-× - 1 6
ŷ(m) A(z) x̂(m)
N−1
6 6
? 6
6 Canal
? 0 i(m) L − 1
6 0 g(m)
-× 1
Récepteur - -
ŷ(m) A(z) x̂(m)
N−1
?

• Chaque fenêtre d’analyse : P coefficients, un no, un gain

20 décembre 2007 Licence de droits d’usage Page 38


Nicolas MOREAU
Cas du codeur UIT-T G.729 à 8 kbit/s

• Coefficients du filtre de synthèse 1/A(z) d’ordre P = 10


• Actualisation toutes les 10 ms (fenêtre d’analyse de 80
échantillons)
• Codage des “Line Spectrum Pairs” sur 18 bits
• Entrée du filtre de synthèse e(n) = e1 (n) + e2 (n)
• Actualisation toutes les 5 ms
• Prédicteur à long terme : e1 (n) = g1 e(n − λ)
• g1 codé sur 3 bits, λ codé sur 7 bits
λ : caractéristique de la période fondamentale (“pitch”)
• e2 (n) = g2 sk (n) où sk (n) ∈ [s0 · · · sL−1 ] = dictionnaire de QV
• g2 codé sur 4 bits, k codé sur 13+4 bits
• Toutes les 10 ms : 18 + 2 × (3 + 7 + 4 + 17) = 80 ⇒ 8 kbit/s

20 décembre 2007 Licence de droits d’usage Page 39


Nicolas MOREAU
Compression audio

• Domaine de recherche très actif ces 20 dernières années


• Codeurs très efficaces largement disponibles actuellement
• Différentes approches en fonction du taux de compression :
• Taux de compression “standards” (705 → ≈ 64 kbit/s)
Nécessité de la “transparence”
Baladeurs MP3, DVD, TNT
Elimination des composantes inaudibles ⇒ codeurs “perceptuels”
• Taux de compression élevés (705 → ≈ 24 kbit/s)
Qualité “intermédiaire”
Streaming, téléphones mobiles
• Taux de compression faibles (705 → ≈ 300 kbit/s → ≈ 64 kbit/s)
Codage sans perte ou presque sans perte
Archivage, studios production

20 décembre 2007 Licence de droits d’usage Page 40


Nicolas MOREAU
Codeurs de musique : plan de l’exposé

• Principe des codeurs “perceptuels”


• Codeur MPEG-1 Layer-1
• Propriétés du banc de filtres d’analyse et de synthèse
• Etude du module de quantification
• Procédure d’allocation de bits : exploitation de quelques résultats
de psychoacoustique
• Codeur MPEG-2 (MPEG-4) AAC
• Caractéristiques de ce codeur
• Une simulation matlab
• Codage stéréo

20 décembre 2007 Licence de droits d’usage Page 41


Nicolas MOREAU
Principe des codeurs “perceptuels”

SX (f )
- Estimateur
spectral
- Modèle
d’audition
Φ(f )
?
Allocation
x(n) de bits
?
X (m)
?- Chaı̂ne ? X̂ (m)
x(m) binaire
- H - Q - - Q −1 - F - x̂(m)

- x̂(n)

 Emetteur -Canal - Récepteur -

• Transformation temps-fréquences : X (m) = H x(m)


• Allocation de bits sous le contrôle d’un modèle d’audition
• QS/QV des composantes X (m) + codage entropique
• Au récepteur, reconstruction du signal : x̂(m) = F X̂ (m)

20 décembre 2007 Licence de droits d’usage Page 42


Nicolas MOREAU
Transformation temps-fréquences :
Exemple banc de filtres

100 100

90
0.15 90

80 80
0.1

70 70
0.05
60 60

50 0 50

40 40
−0.05

30 30

−0.1
20 20

10 −0.15 10

0 0
0 5 10 15 20 200 400 600 800 1000 1200 1400 1600 1800 0 5 10 15 20

N/2M−1 N/2−1
X k X k
x(n) = |X (k )| cos(2π n + φ(k )) + · · · + |X (k)| cos(2π n + φ(k))
N N
k=0 k =(M−1)N/2M

20 décembre 2007 Licence de droits d’usage Page 43


Nicolas MOREAU
Résolutions temporelle, fréquentielle

• Résolution temporelle
0.2

0.15

0.1

0.05

Amplitude 0

−0.05

−0.1

−0.15

−0.2
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
Temps [s]

• Résolution fréquentielle
• Gamme tempérée : diviser une octave en 12 intervalles √ (demi-tons)
12
f0 , f1 , · · · , f11 , 2f0 vérifiant fk = αfk −1 avec α = 2
• Plus petit√intervalle audible ≤ un quart de ton
24
• ∆(f ) = ( 2 − 1)f ⇒ 3 Hz à 100 Hz, 30 Hz à 1000 Hz etc.

20 décembre 2007 Licence de droits d’usage Page 44


Nicolas MOREAU
Phénomène de masquage, seuil de masquage

80 80

70 70

60 60

50 50
SX(f) [dB]

S (f) [dB]
40 40

X
30 30

20 20

10 10

0 0
0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10
Fréquences [kHz] Fréquences [kHz]

• Résultats de psychoacoustique : 1 sinusoı̈de “masquante” + 1


sinusoı̈de “masquée”
• Double généralisation nécessaire : Nombreuses sinusoı̈des
“masquantes”, nombreuses sinusoı̈des “masquées”
• Erreur inaudible si SQ (f ) < Φ(f ) ∀f et ∀ la fenêtre d’analyse
20 décembre 2007 Licence de droits d’usage Page 45
Nicolas MOREAU
Un résultat de la théorie du codage de source

80 80

70 70

60 60

50 50
SX(f) [dB]

SX(f) [dB]
40 40

30 30

20 20

10 10

0 0
0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10
Fréquences [kHz] Fréquences [kHz]

• Débit nécessaire et suffisant pour quantifier une source de DSP


SX (f ) en acceptant un bruit de DSP SQ (f ) :
Z +1/2
1 SX (f )
b≥ max[0, log2 ] df
2 −1/2 SQ (f )

• Déterminer les bandes de fréquence vérifiant SX (f ) > Φ(f )


Allouer les bits en fonction du rapport SX (f )/Φ(f )
• Ici : suppression ≈ 50% des composantes, RSBmoy ≈ 12 dB
⇒ Taux compression ≈ 2 × 16/2 = 16
20 décembre 2007 Licence de droits d’usage Page 46
Nicolas MOREAU
En réalité : c’est plus compliqué ...

5000

4000

3000

2000

1000

−1000

−2000

−3000

−4000

−5000

1000 2000 3000 4000 5000 6000 7000

• Nombreux problèmes
• Par exemple celui de la résolution temporelle/fréquentielle
Son entretenu : bonne résolution fréquentielle ⇒ fenêtres longues
Son percusif : bonne résolution temporelle ⇒ fenêtres courtes
Codeur AAC : commutation fenêtres longues/courtes
• Nombreux compromis assez subtils
• Débit, Qualité, Complexité
• Délai de reconstruction, Robustesse aux erreurs
20 décembre 2007 Licence de droits d’usage Page 47
Nicolas MOREAU
Codeur MPEG-1 Layer-1 :
Transformation temps-fréquences

20

0
Estimation spectrale Modele d’audition

Allocation −20
de bits

|H(f)| [dB]
−40
q (m)
0

y (m)
0
H (z) 32 32 F (z) −60
0 0

x(n) x(n)

q (m) −80
31

y (m)
31
H (z) 32 32 F (z)
31 31
−100
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Fréquences [kHz]

• Banc de M = 32 filtres modulés (N = 512)


2k + 1 2k + 1
Hk (f ) = H(f − ) + H(f + )
4M 4M
• Pas de reconstruction parfaite mais RSB > 90 dB
• M  N ⇒ bonne résolution temporelle (∝ M) mais mauvaise
résolution fréquentielle (∝ 1/M)
20 décembre 2007 Licence de droits d’usage Page 48
Nicolas MOREAU
Codeur MPEG-1 Layer-1 :
Module de quantification

• Pour chaque sous-bande k ∈ {0 · · · M − 1}


• Construction d’un vecteur : y k = [yk (0) · · · yk (11)]
• Détermination d’un “facteur d’échelle” : gk = max[yk (0) · · · yk (11)]
• Normalisation des composantes [yk (0) · · · yk (11)]/gk
• QS uniforme des gk exprimés en dB
QS uniforme des composantes normalisées, pas de quantification
fonction du nombre de bits “alloués” bk
• Détermination de b0 · · · bM−1 : procédure d’allocation de bits
• Si fe = 44.1 kHz, débit visé ≈ 64 kbit/s
⇒ B = (64/44.1) × 32 × 12 ≈ 560 bits disponibles
• Attribution des bits aux composantes les plus “gourmandes”
(greedy algorithm)

20 décembre 2007 Licence de droits d’usage Page 49


Nicolas MOREAU
Codeur MPEG-1 Layer-1 :
Informations transmises

• Dans chaque fenêtre d’analyse


(32 × 12 = 384 échantillons ⇒ 9 ms lorsque Fe = 44.1 kHz)
• Allocation de bits b0 · · · bM−1 explicitement transmise (88 bits)
• Chaque facteur d’échelle gk codé sur 6 bits si bk > 0
Ex : 120 bits si 20 sous-bandes transmises
• Bits restants : mots de code associés à chaque composante
normalisée
• Bits restants :
96 kbit/s : 96000*384/44100 - 88 - 120 = 628 bits
64 kbit/s : 350 bits, etc.
⇒ impossible de diminuer davantage le débit

20 décembre 2007 Licence de droits d’usage Page 50


Nicolas MOREAU
Codeur MPEG-2 (MPEG-4) AAC :
Transformation temps-fréquences

• Connaissant le vecteur x(m) = [x(mM) · · · x(mM + N − 1)]


⇒ X (m) = [X (0) · · · X (M − 1)](m)
• MDCT : Transformée en cosinus discrète modifiée
N = 2048, M = 1024
• Transformée avec recouvrement ⇒ problème au récepteur pour
assurer la “reconstruction parfaite” ...
100
5000

90
4000

80
3000

70
2000

1000 Echelle en dB 60

0 50

−1000 40

−2000 30

−3000 20

−4000 10

−5000
0
0 2 4 6 8 10 12 14 16
500 1000 1500 2000 2500 3000 3500 4000 4500 5000 Fréquences (kHz)

20 décembre 2007 Licence de droits d’usage Page 51


Nicolas MOREAU
Bandes critiques, échelle des Bark

• L’oreille se comporte comme un banc de filtres


• Banc de filtres PQMF, transformée MDCT : partition uniforme de
l’axe des fréquences
• Transformée en ondelettes : partition en octaves de l’axe des
fréquences
• Il faudrait une partition en 1/3 d’octave ...
100
10000

90
9000

80
8000

70
7000

60
Echelle linéaire
6000
Echelle en dB

50 5000

40 4000

30 3000

20 2000

10 1000

0 0
0 2 4 6 8 10 12 14 16 0 5 10 15 20 25
Fréquences (kHz) Fréquences (bark)

20 décembre 2007 Licence de droits d’usage Page 52


Nicolas MOREAU
Quantification des coefficients
X = [X (0) · · · X (M − 1)]
• Si on connaı̂t les “facteurs d’échelle” g = [g(0) · · · g(M − 1)]
• A l’émetteur, calcul du vecteur d’entiers
i = round([X (0)/g(0) · · · X (M − 1)/g(M − 1)])
• Au récepteur, reconstruction de
[X̂ (0) · · · X̂ (M − 1)] = [g(0) × i(0) · · · g(M − 1) × i(M − 1)]
puis de [x̂(0) · · · x̂(M − 1)]
• Erreur de reconstruction
q = [x(0) · · · x(M − 1)] − [x̂(0) · · · x̂(M − 1)]
5.5
10000

5
9000
4.5
8000
4
7000
3.5
Echelle linéaire

Echelle linéaire

6000
3

5000
2.5

4000
2

3000
1.5

2000 1

1000 0.5

0 0
0 5 10 15 20 25 0 5 10 15 20 25
Fréquences (bark) Fréquences (bark)
20 décembre 2007 Licence de droits d’usage Page 53
Nicolas MOREAU
Codage du vecteur i = [i(0) · · · i(M − 1)]

• 1ère solution : M = 1024 entiers vérifiant 0 ≤ i(k) ≤ 8 (ici)


⇒ nombre de bits nécessaire B = 1024 × 3 > nombre de bits
disponibles = 1024 × 96/44.1
• Solution plus économique : codage de Huffman
• Partition de l’axe des fréquences en 51 “bandes”
Dans chaque bande : détermination de max i(k) puis codage
séparé
• Dans le “bitstream” : mots de code des i(k ) + mots de code des
max i(k) + mots de code des g(k)
5.5

4.5

3.5
Echelle linéaire

2.5

1.5

0.5

0
0 5 10 15 20 25
20 décembre 2007 Licence de droits d’usage
Fréquences (bark) Page 54
Nicolas MOREAU
Détermination des facteurs d’échelle
g = [g(0) · · · g(M − 1)]

• A priori simple problème d’optimisation : déterminer g minimisant


2 sous la contrainte nombre de bits nécessaire < nombre de bits
σQ
disponible
• Solution n’autorisant que des taux de compression faibles (de
l’ordre de 2) si on veut que le signal reconstruit soit “transparent”
• Pour obtenir des taux de compression élevé (de l’ordre de 10) :
exploitation des résultats de psychoacoustique
• “Mise en forme spectrale” du bruit de reconstruction
• Problème d’optimisation sous contraintes
• Contrainte de débit : nombre de bits nécessaire < nombre de bits
disponible
• Contrainte “psychoacoustique” : SQ (f ) < Φ(f ) ∀f

20 décembre 2007 Licence de droits d’usage Page 55


Nicolas MOREAU
Codeur MPEG-2 AAC : informations transmises

• Dans chaque fenêtre d’analyse


(1024 échantillons ⇒ 23 ms lorsque Fe = 44.1 kHz)
• Partition de l’axe des fréquences en 51 “sous-bandes”
• Facteurs d’échelle
? Codage du 1er directement sur 8 bits
? Codage de ∆(k) = g(k ) − g(k − 1) pour les 50 suivants
? Utilisation d’une table de Huffman
• Coefficients de la MDCT
? 4 composantes dans la 1ère sous-bande, 32 dans la dernière
? Codage du signe à part (pas toujours)
? Détermination de la valeur max dans chaque sous-bande ⇒ choix
d’une table de Huffman parmi 11 (information transmise)
? Codage des i(k )

20 décembre 2007 Licence de droits d’usage Page 56


Nicolas MOREAU
MPEG-4 AAC + SBR (Spectral Band Replication)

100

90

80

70

60

SX(f) [dB]
50

40

30

20

10

0
0 2 4 6 8 10 12 14 16 18 20
Fréquences [kHz]

• Bas débits/qualité intermédiaire


• BF ⇒ codage AAC du signal sous-échantillonné (facteur 2)
• HF ⇒ modélisation paramétrique : sinusoı̈des + bruit
• 24 kbit/s = 22 kbit/s (BF) + 2 kbit/s (HF)
20 décembre 2007 Licence de droits d’usage Page 57
Nicolas MOREAU
MPEG-4 SLS (Scalable Lossless coding)

• Hauts débits/très bonne qualité


• Codage AAC (core layer) + codage de l’erreur dans le domaine
transformé (enhancement layer)
• Techniques développées en codage d’image
• MDCT à valeurs entières exploitant le schéma lifting
• Codage par plan de bits, algorithme EZW
• Codage arithmétique contextuel

20 décembre 2007 Licence de droits d’usage Page 58


Nicolas MOREAU
ATSC Digital Audio Compression (AC-3)
Standard

• cf http ://www.atsc.org
• Encodage de 1 à 5.1 canaux de 32 à 640 kbits/s
• Transformation temps-fréquences : MDCT
Fenêtres recouvrantes de 512 échantillons
• Coefficients de la transformée : format virgule flottante
Mantisse + exposant
• Mantisse : opération d’arrondi
Précision fonction du rapport signal à masque
• Exposant ≡ “facteur d’échelle”
Exploitation de ”l’enveloppe spectrale”

20 décembre 2007 Licence de droits d’usage Page 59


Nicolas MOREAU
En résumé (compression)

• Un codeur incontournable : AAC


• Transparence à ≈ 64 kbit/s (par canal)
• Stratégie de codage issue directement des travaux de Shannon
• Très grande importance d’un modèle psychoacoustique
• Recherche / Développement
• Recherche : encore quelques problèmes intéressants
Convergence codeurs parole/musique, multi-canaux, ...
• mais surtout développement
• Besoin de sécurité réclamé par les “majors”

20 décembre 2007 Licence de droits d’usage Page 60


Nicolas MOREAU
Codage stéréo

• Vieux problème (années 80)


• Transmission séparée des deux voies :
44.1 × 16 × 2 = 705 × 2 = 1.4 Mbit/s → 2 × 96 = 192 kbit/s
• M/S stereo coding :
Transmission de la somme (M : middle channel)
et de la différence (S : side channel)
Matriçage dans le domaine fréquentiel
• Intensity stereo coding :
Oreille insensible aux différences de phase au delà de 2 kHz
⇒ transmission d’un seul signal dans les hautes fréquences +
paramètres spécifiques des différences d’intensité
• Gain en débit moyen : “transparence” à 128 kbit/s

20 décembre 2007 Licence de droits d’usage Page 61


Nicolas MOREAU
Compression audio multicanaux

• Fort regain d’intérêt ces dernières années pour la compression


audio multicanaux (stéréo et format 5.1) : DVD, télévision
numérique (sur téléphone mobile), radio numérique, ...
• But visé :
• Stéréo : 1.4 Mbit/s → 24 kbit/s
MPEG-4 HE-AACv2 (High Efficiency Advanced Audio Coder)
• Format 5.1 : 3.5 Mbit/s → 64 kbit/s
“MPEG Surround”
3.5 Mbit/s → 300 kbit/s (MPEG-2 Layer 3 en 1994)
3.5 Mbit/s → 200 kbit/s (MPEG-4 AAC en 2000)
3.5 Mbit/s → 128 kbit/s (MPEG-4 HE-AACv2 en 2004)
Taux de compression très élevés (> 50)
Qualité acceptable (“intermédiaire”)

20 décembre 2007 Licence de droits d’usage Page 62


Nicolas MOREAU
Codage stéréo paramétrique : principe

x1 (n) x̂1 (n)


- s(n) ŝ(n) -
x2 (n) Procédure - Codeur -- Décodeur - Procédure x̂2 (n)
- de downmix mono mono d’upmix -
- Extraction
- Synthèse
6
des paramètres
- - paramétrique
- Paramètres
spatiaux
Codeur Décodeur

• Codeur mono : codeur AAC (une vingtaine de kbit/s)


• Paramètres spatiaux (quelques kbit/s)
• Localisation de la source en azimuth : ICLD, ICTD
• Étendue subjective de la source : ICC

20 décembre 2007 Licence de droits d’usage Page 63


Nicolas MOREAU
Perception de l’espace sonore

• Source sonore en champ libre : 3 indices binauraux


• Localisation en azimut
• Différence temps d’arrivée oreilles gauche/droite
Différence Interaurale de Temps (ITD)
Significative aux basses fréquences < 1500 Hz
(longueur d’onde > 23 cm)
• Atténuation due à la tête entraı̂nant une différence d’intensité
Différence Interaurale d’Intensité (ILD)
Significative aux hautes fréquences
• Etendue subjective d’une source
Cohérence interaurale (IC)
• Localisation en élévation et en distance : non traitée

20 décembre 2007 Licence de droits d’usage Page 64


Nicolas MOREAU
Perception de l’espace sonore :
Application en codage

• Indices “intercanaux” ≡ indices “binauraux”


ICLD = 10 log10 σX2 1 /σX2 2
ICTD = arg max |E{X1 (n)X2 (n + n0 )}|
n0

ICC = |E{X1 (n)X2 (n + n0 )}|/σX1 σX2 pour n0 = ICTD

• Pas d’HRTF (Head-Related Transfert Function)


• Pas de connexion directe avec un problème d’analyse et de
synthèse de champs sonores

20 décembre 2007 Licence de droits d’usage Page 65


Nicolas MOREAU
Signal stéréo et intercovariance

0.2 1

0.8
0.15

0.6
0.1
0.4

0.05
0.2

0 0

−0.2
−0.05

−0.4
−0.1
−0.6

−0.15
−0.8

−0.2 −1
50 100 150 200 250 300 350 400 450 500 −50 −40 −30 −20 −10 0 10 20 30 40 50

• Signal stéréo : voie gauche x1 (n) et voie droite x2 (n)


• Intercovariance normalisée
PN−1
x1 (n) x2 (n + n0 )
ρ(n0 ) = PN−1n=0 PN−1 2
2
n=0 x1 (n) n=0 x2 (n + n0 )

• ICLD ≈ 0 db, ICTD ≈ -8 échantillons, ICC ≈ 0.9


20 décembre 2007 Licence de droits d’usage Page 66
Nicolas MOREAU
1er traitement : procédure de downmix

• A partir d’un signal stéréo, créer un signal mono



• Pourquoi pas s(n) = [x1 (n) + x2 (n)]/ 2 ?
Pas conservation de la puissance :
σS2 = (σX2 1 + σX2 2 + 2RX1 X2 (0))/2
• Introduction d’une rotation
    
s(n) cos(θ) sin(θ) x1 (n)
=
s0 (n) − sin(θ) cos(θ) x2 (n)

• Recherche de θ de telle sorte que s(n) soit le signal “dominant”

20 décembre 2007 Licence de droits d’usage Page 67


Nicolas MOREAU
Procédure de downmix (suite)

• Problème classique d’Analyse en Composantes Principales


Calcul du vecteur propre associé à la plus grande valeur propre
de la matrice de covariance
" #
σX2 1
 
X1 (n) RX1 X2 (0)
E{ [X1 (n)X2 (n)]} =
X2 (n) RX1 X2 (0) σX2 2

• Calcul pour chaque tuile du plan temps/fréquences


(30 ms, échelle Bark)
• FFT sur chaque voie, synthèse OLA

20 décembre 2007 Licence de droits d’usage Page 68


Nicolas MOREAU
2ème traitement : évaluation des indices
intercanaux

• Estimation de ces indices pour chaque tuile du plan


temps/fréquences
• Pour chaque fenêtre d’analyse
[x1,2 (0) · · · x1,2 (N − 1)] → [X1,2 (0) · · · X1,2 (N − 1)]

Pour chaque bande critique


X 1,2 (b) = [X1,2 (kb ) · · · X1,2 (kb+1 − 1)]t

• ICLD(b) = 10 log10 ||X 1 (b)||2 /||X 2 (b)||2


• Intercovariance : RX1 X2 (b, n0 ) = <[X t1 (b) X ∗3 (b, n0 )] avec
X3 (k, n0 ) = X2 (k ) exp(j2π Nk n0 )
• ICTD(b) = arg maxn0 |RX1 X2 (b, n0 )|
• ICC(b) = |RX1 X2 (b, n0 = ICTD(b))|
• Quantification et codage ...
20 décembre 2007 Licence de droits d’usage Page 69
Nicolas MOREAU
Au récepteur : procédure d’upmix

• Reconstruire deux signaux x̂1 (n) et x̂2 (n) à partir d’un seul s(n) et
de θ
• Relation entre θ et ψ caractérisant la source virtuelle lorsque x1 (n)
et x2 (n) créés par un “panoramique d’intensité” x1,2 (n) = g1,2 x(n)

6
x1 (n)
A
j u
6 p M
*i ψ -
O - x
ψ0
R
v

B x2 (n)

20 décembre 2007 Licence de droits d’usage Page 70


Nicolas MOREAU
Codeur MPEG-4 HILN

• HILN = Harmonic and Individual Line plus Noise


• Pour chaque fenêtre d’analyse m, modélisation du signal sous la
forme de P sinusoı̈des plus du bruit
P(m)
X
x̂(n) = ak (m) cos (2πfk (m)n + ϕk (m)) + e(n)
k=1

• Applications visées
• Représentation parcimonieuse ⇒ codage 2 → 24 kbit/s
• “Time stretching” : Modifier la durée d’un enregistrement sans
toucher à la tonalité

20 décembre 2007 Licence de droits d’usage Page 71


Nicolas MOREAU
Détermination des paramètres fk , ak et ϕk

• Initialisation

[x(0) · · · x(N − 1)] → [X (0) · · · X (N − 1)]

[x̂(0) · · · x̂(N − 1)] = [0 · · · 0]


• Pour k = 1 · · · P
1. Détermination de la fréquence

[x̂(0) · · · x̂(N − 1)] → [X̂ (0) · · · X̂ (N − 1)]

1
fk = arg max[|X (0) − X̂ (0)| · · · |X (N − 1) − X̂ (N − 1)|]
N
2. Détermination de l’amplitude ak et de la phase ϕk
3. Actualisation : x̂(n) = x̂(n) + ak cos[2πfk n + ϕk ]

20 décembre 2007 Licence de droits d’usage Page 72


Nicolas MOREAU
Détermination de ak et ϕk

• Minimisation de
N−1
X
[x(n) − ak cos(2πfk n + ϕk )]2
n=0

• Solution optimale : vecteur d’erreur ⊥ sous-espace engendré par

c = [cos(2πfk 0) · · · cos(2πfk (N − 1))]t

s = [sin(2πfk 0) · · · sin(2πfk (N − 1))]t


Si α = (At A)−1 At x où A = [c s]
q
ak = α12 + α22 ϕk = − arctan(α2 /α1 )

20 décembre 2007 Licence de droits d’usage Page 73


Nicolas MOREAU
Plusieurs problèmes

Fréquences [kHz]
4

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Temps [s]

• Tri et appariement des fréquences (a priori nombre variable)


• Continuité des phases
• Interpolation entre fenêtres : synthèse “OLA” (OverLapp and Add)
• Introduction d’un modèle psychoacoustique
• “Time stretching” : modifier N sans toucher aux fk , ak
20 décembre 2007 Licence de droits d’usage Page 74
Nicolas MOREAU
Quelques références bibliographiques

• Outils de base
• N. Jayant, P. Noll, Digital coding of waveforms, Prentice Hall, 1984
• A. Gersho, R.M. Gray, Vector quantization and signal compression,
Kluwer Academic Publishers, 1992
• N. Moreau, Techniques de compression des signaux, Masson 1995
• Codage de la parole
• R. Salami et al., Design and description of CS-ACELP : a toll
quality 8 kb/s speech coder, IEEE Trans. on SAP, March 1998
• Codage de la musique
• T. Painter, A. Spanias, Perceptual coding of digital audio,
Proceedings of the IEEE, April 2000

20 décembre 2007 Licence de droits d’usage Page 75


Nicolas MOREAU

Vous aimerez peut-être aussi