Académique Documents
Professionnel Documents
Culture Documents
N. MOREAU
Licence de droits dusage
en fin de document
12 mars 2009
Introduction
Les annes cinquante ont vu le dveloppement dune thorie, le codage de source, visant
formaliser le premier (et le dernier) lment dune chane de communication numrique : le
passage dun signal analogique ( temps continu et valeurs continues) vers un signal numrique
( temps discret et valeurs discrtes). Dans ce document, on parlera peu de cette thorie car
le problme sest en fait dplac. Il ne sagit plus tellement dtudier la distorsion apporte au
signal analogique par une opration dchantillonnage1 puis de quantification. Il sagit plutt
dexaminer sil est possible de comprimer de linformation partir dun signal lui mme dj
sous une forme numrique de faon pouvoir le stocker (dans des mmoires de masse) ou le
dplacer (dans un rseau) cot rduit sans apporter une dgradation qui le rende sans intrt.
Prenons lexemple dun signal de musique. On sait quil peut tre reconstruit avec une qualit
quasi parfaite (qualit CD) sil a t chantillonn une frquence de 44.1 kHz puis quantifi
avec une rsolution de 16 bits. Un CD stockant environ 70 minutes de signal de musique en stro
soit 44100 4 60 70 750 Mo, on peut donc actuellement2 collectionner de lordre dune
centaine de CD sur un disque dur de PC. Ce chiffre peut paratre insuffisant pour des fans de
musique ... Si on veut tlcharger de la musique sur le rseau Internet, le besoin de compression
est aussi vident : le tlchargement de lquivalent dun CD un dbit de lordre dun mgabit/s
rclame approximativement une heure ! La rvolution actuelle apporte laccs de la musique
par le phnomne MP3 est due simplement au fait quun taux de compression de 10 15
appliqu des signaux de musique sans dgradation perceptible change largement la donne.
Dans ce document, on prsentera dabord les outils standards (quantificateur scalaire, quantificateur prdictif, quantificateur vectoriel, techniques de codage par transforme, en sous-bandes,
codage entropique). Pour pouvoir comparer les performances de ces outils, on prendra un exemple
acadmique, celui de la quantification dune ralisation x(n) dun processus alatoire monodimensionnel X(n). Cest une approche thorique mais elle permettra non seulement de donner
des mesures objectives de ces performances mais aussi de mettre en vidence la cohrence qui
existe entre tous les outils disponibles. Dans une deuxime partie, on sintressera la compression des signaux audio (parole en bande tlphonique, en bande largie, musique en bande
Hi-Fi).
Dans tout ce document, on fera appel des notions de base en traitement du signal. On
utilisera les notations suivantes. On considrera un processus alatoire mono-dimensionnel X(n)
2 et de densit spectrale de puissance S (f ). On le supposera
stationnaire, centr, de puissance X
X
galement gaussien dabord parce que le caractre gaussien est maintenu par toute transformation
linaire en particulier un filtrage ce qui simplifie beaucoup le formalisme et aussi parce quon
verra quun signal gaussien est le signal le plus difficile coder, celui qui entrane la puissance
de lerreur de quantification la plus leve. On notera X(m) le vecteur colonne de dimension N
construit partir de X(mN ) X(mN + N 1). Ces N variables alatoires sont statistiquement
1
2
N. MOREAU
Licence de droits dusage
12 mars 2009
page 1/162
(2)N/2
det RX
1
exp( xt R1
X x)
2
RX
rX (0)
= E{X(m)X (m)} =
rX (1)
..
.
rX (1)
..
.
..
.
rX (N 1)
rX (N 1)
..
rX (1)
rX (1)
rX (0)
..
.
..
.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 2/162
Premire partie
N. MOREAU
Licence de droits dusage
12 mars 2009
page 3/162
Chapitre 1
Quantification scalaire
1.1
Introduction
Considrons un signal temps discret x(n) prenant ses valeurs dans lintervalle [A, +A].
Dfinir un quantificateur scalaire avec une rsolution de b bits par chantillon consiste raliser
trois oprations :
1. une partition de lintervalle [A, +A] en L = 2b intervalles distincts {1 L } de longueurs {1 L },
2. une numrotation des lments de la partition {i1 iL },
3. la slection dun reprsentant par intervalle, lensemble de ces reprsentants composant un
dictionnaire (codebook)1 C = {
x1 x
L }.
La procdure dencodage ( lmetteur) consiste dcider quel lment de la partition
appartient x(n) puis lui associer le numro i(n) {1 L = 2b } correspondant. Cest le numro
de lintervalle choisi, le symbole canal, qui sera transmis ou stock. La procdure de dcodage
(au rcepteur) consiste associer au numro i(n) le reprsentant correspondant x
(n) = x
i(n)
choisi parmi lensemble des reprsentants {
x1 x
L }. Formellement, on peut observer quun
quantificateur est une application non bijective de [A, +A] dans un ensemble fini C plus une
rgle daffectation
x
(n) = x
i(n) {
x1 x
L } ssi x(n) i .
Cest un processus irrversible entranant une perte dinformation, une erreur de quantification que lon notera q(n) = x(n) x
(n). Il est ncessaire de dfinir une mesure de distorsion
d[x(n), x
(n)]. On choisira par la suite la mesure de distorsion la plus simple, lerreur quadratique
d[x(n), x
(n)] = |x(n) x
(n)|2 .
Cest une mesure de distorsion ponctuelle (par lettre). Il est ncessaire de dfinir une mesure de
distorsion plus globale. On prendra lerreur quadratique moyenne (EQM)
D = E{|X(n) x
(n)|2 }.
Cette erreur est donc simplement la puissance de lerreur de quantification. On la notera par la
2.
suite Q
Les tracs de la figure 1.1 montrent gauche le signal avant quantification et les lments
dune partition de lintervalle [A, +A] lorsque b = 3 et droite lensemble des reprsentants
correspondants et le signal reconstruit. On observe aussi le comportement de lerreur de quanti1
Dans le cas scalaire, on parle habituellement de niveaux de quantification, de pas de quantification, de seuil
de dcision. On adoptera directement le vocabulaire propre la quantification vectorielle.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 5/162
8
5
10
15
20
25
30
35
40
45
50
10
15
20
25
30
35
40
45
50
Fig. 1.1 Signal avant quantification et partition de lintervalle [A, +A] gauche et ensemble
des reprsentants, signal reconstruit et erreur de quantification droite.
fication. Nest pas matrialis ici le flux binaire circulant entre lmetteur et le rcepteur.
Le problme consiste dfinir maintenant le quantificateur optimal cest dire dterminer
les lments de la partition {1 L } et lensemble des reprsentants {
x1 x
L } minimisant
2.
Q
1.2
On suppose que x(n) est la ralisation dun p.a. X(n) stationnaire valeurs relles. Pour la
quantification scalaire, ce qui compte cest uniquement la distribution des valeurs que prend le
p.a. X(n) linstant n. Aucune exploitation directe de la corrlation existant entre les valeurs
que prend le processus des instants diffrents nest possible. La connaissance de la densit de
probabilit marginale de X(n) est donc suffisante. On la notera pX (.).
1.2.1
Pour caractriser le quantificateur scalaire optimal, il faut trouver la partition et les reprsentants minimisant
L Z
X
2
2
Q = E{[X(n) x
(n)] } =
(u x
i )2 pX (u)du.
(1.1)
i=1
ui
Cette minimisation conjointe nadmet pas de solution simple. Par contre deux conditions ncessaires doptimalit sont faciles obtenir. Si on connat les reprsentants {
x1 x
L }, on peut
1
L
calculer la meilleure partition { }. Si on se donne la partition, on peut en dduire les
meilleurs reprsentants. On peut dire que la partie encodage du quantificateur doit tre optimale
tant donne la partie dcodage et rciproquement. Ces deux conditions ncessaires doptimalit
sobtiennent simplement lorsque lon choisit, comme mesure de distorsion, lerreur quadratique.
1. Etant donn un dictionnaire {
x1 x
L }, la meilleure partition est celle qui vrifie
i = {x : (x x
i )2 (x x
j )2 j {1 L} }.
Cest la rgle dite du plus proche voisin.
En effet, si lon appelle ti la valeur dfinissant la frontire entre les partitions i et i+1 , la
2 relativement ti est obtenue en crivant
minimisation de lerreur quadratique moyenne Q
Z ti
Z ti+1
i 2
[
(u x
) pX (u)du +
(u x
i+1 )2 pX (u)du] = 0
ti ti1
ti
N. MOREAU
Licence de droits dusage
12 mars 2009
page 6/162
(ti x
i )2 pX (ti ) (ti x
i+1 )2 pX (ti ) = 0
soit
ti =
x
i + x
i+1
.
2
2. Etant donne une partition {1 L }, les meilleurs reprsentants sont obtenus par la
condition dite du centrode (ou centre de gravit) de la partie de la densit de probabilit
place dans la rgion i
R
i upX (u)du
i
= E{X|X i }.
(1.2)
x
= Ru
p
(u)du
i
X
u
2 relativement x
En effet, on remarque dabord que la minimisation de Q
i ne fait intervenir
quun lment de la somme donne par (1.1). En crivant ensuite
Z
(u x
i )2 pX (u)du = 0
x
i ui
Z
Z
i
pX (u)du = 0
upX (u)du + 2
x
2
ui
ui
ui
upX|i (u)du
x
i = E{X|X i }.
La valeur que lon doit choisir est la valeur moyenne de X dans lintervalle considr2 .
On peut montrer que ces deux conditions doptimalit ne sont pas suffisantes pour garantir
loptimalit du quantificateur sauf dans le cas dune distribution gaussienne.
On remarque que la connaissance explicite de la partition nest pas ncessaire. Cette partition
est entirement dtermine par la connaissance de la mesure de distorsion, par lapplication de
la rgle du plus proche voisin et par lensemble des reprsentants. Le schma de lencodeur et du
dcodeur est donn figure 1.2.
1.2.2
Lorsque le nombre L de niveaux de quantification est lev, il est possible dobtenir explicitement, contrairement au cas prcdent, lexpression de la partition optimale et de la puissance
de lerreur de quantification uniquement en fonction de la densit de probabilit pX (x). Cette
hypothse dite de haute rsolution veut dire que la densit de probabilit peut tre suppose
constante dans lintervalle [ti1 , ti ] et que le reprsentant peut tre pris au milieu de lintervalle.
On peut donc crire
pX (x) pX (
xi ) pour x [ti1 , ti [
x
i
ti1 + ti
.
2
Ce rsultat a une interprtation en mcanique : le moment dinertie dun objet par rapport un point est
minimum lorsque ce point est le centre de gravit.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 7/162
x(n)
i(n)
Rgle du
plus proche voisin
x1
Inspection
dans une table
xL
...
x1
...
x(n)
xL
L
X
pX (
xi )
ti
(u x
i )2 du.
ti1
i=1
Comme
ti
i 2
+(i)/2
u2 du =
(u x
) du =
ti1
(i)/2
3 (i)
12
on obtient
L
1 X
pX (
xi )3 (i).
12
2
Q
=
(1.3)
i=1
L
X
Prob (i)
i=1
2 (i)
2
= E{ }.
12
12
(i) =
i=1
L
X
i=1
i 1/3
[pX (
x )]
(i)
puisque cette intgrale ne dpend plus des (i), on cherche minimiser la somme des cubes de
L nombres positifs ayant une somme constante. Il suffit de les prendre tous gaux. On a donc
(1) = = (L)
ce qui implique
3 (1) = = 3 (L)
N. MOREAU
Licence de droits dusage
12 mars 2009
page 8/162
pX (
x1 )3 (1) = = pX (
xL )3 (L).
Cette relation veut dire quun intervalle sera dautant plus petit que la probabilit que X(n)
appartienne cet intervalle sera leve et que tous les intervalles auront la mme contribution
dans la puissance de lerreur de quantification. La puissance de lerreur de quantification a pour
expression
L
2
Q
= 3
12
avec
Z
1 +
[pX (u)]1/3 du.
=
L
On obtient donc
2
Q
=
1
12L2
Z
3
[pX (u)]1/3 du .
1
=
12
Z
+
1/3
[pX (u)]
3
du
22b .
(1.4)
Cette dmonstration nest pas rigoureuse mathmatiquement. Elle sera reprise la fin du chapitre 4 lorsque lon comparera ce mode de quantification ce que lon appellera le quantificateur
avec contrainte entropique.
Deux cas particuliers sont intressants. Lorsque X(n) est distribu suivant une loi uniforme,
on obtient
A2 2b
2
2
22b .
Q
=
2
= X
3
On pourrait remarquer que le passage par la formule de Benett nest pas indispensable. On peut
obtenir ce rsultat directement !
2 , pour laquelle
Pour une source gaussienne, centre, de puissance X
1
x2
pX (x) = q
exp( 2 )
2X
2
2X
on a
1
x2
exp(
2 )du
2 1/6
6X
(2X )
Z +
Z +
1
x2
1/3
2 1/3
[pX (u)] du = (2X )
3
exp(
2 )du
2 1/2
6X
(23X )
Z +
2 1/3
3.
[pX (u)]1/3 du = (2X
)
Z
1/3
[pX (u)]
du =
On en dduit que
2
Q
=
1
2
2X
33/2 22b
12
2
2
Q
= c X
22b
avec
(1.5)
c=
N. MOREAU
Licence de droits dusage
3
.
2
12 mars 2009
page 9/162
Cette formule va servir de rfrence dans toute la suite de cet ouvrage. Elle admet lcriture
quivalente suivante
2
10 log10 X
2 = 6.05 b 4.35 dB.
Q
On en dduit la rgle des 6 dB par bit. On peut montrer que pour toute autre distribution
(laplacienne, etc.), la puissance minimale de lerreur de quantification est toujours comprise
entre ces deux valeurs. Le cas de la loi uniforme est le cas le plus favorable, le cas de la loi
gaussienne est le cas le plus dfavorable. Les travaux de Shannon et la thorie dbit/distorsion
formalisent cette constatation.
Il serait intressant de connatre les proprits statistiques de lerreur de quantification. On
peut montrer que lerreur de quantification est dcorrle avec le signal reconstruit mais que cette
proprit nest pas vraie avec le signal original. On peut montrer galement que, uniquement dans
le cadre de lhypothse de haute-rsolution, lerreur de quantification est modlisable par un bruit
blanc. Une analyse dtaille est possible (se reporter lexcellent papier [1]).
1.2.3
Complments
Algorithme de Lloyd-Max
Dans la pratique, on ne connat pas pX (x). Pour construire un quantificateur, on utilise des
donnes empiriques, une base dapprentissage, en associant chaque valeur le mme poids et on
applique lalgorithme de Lloyd-Max, gnralement dans sa variante dite LBG. Cet algorithme
ayant t gnralis au cas vectoriel, il sera prsent au chapitre suivant.
Transformation non-linaire
Un quantificateur scalaire non-uniforme peut-tre vu comme un quantificateur scalaire uniforme prcd dune transformation non-linaire et suivi de la transformation inverse3 . On dfinit
la transformation par sa caractristique f (x). Dans cette optique, le problme consiste choisir
la transformation non-linaire qui minimise la puissance de lerreur de quantification. Cette tude
fait lobjet dun dveloppement consquent dans les deux ouvrages de N. Jayant et P. Noll [2]
et dA. Gersho et R. Gray [3]. Ce dveloppement ne me parat plus fondamental depuis que le
quantificateur vectoriel est devenu le vritable outil de base.
Facteur dchelle
Lors de la mise en uvre dune procdure de quantification sur des signaux rels (parole, musique, image), un problme important est lestimation du paramtre A qui varie avec le temps, les
signaux rels ne vrifiant pas lhypothse de stationnarit ! On examinera ce problme au chapitre
suivant en introduisant une quantification particulire dite gain/shape particulirement bien
adapte aux signaux qui ont des variations de puissance instantane importantes par exemple
les signaux audio.
1.3
1.3.1
Principe
N. MOREAU
Licence de droits dusage
12 mars 2009
page 10/162
x(n)
y(n)
+
Q 1
y(n) +
x(n)
+
+
v(n)
A(z)
v(n) =
P
X
ai x(n i)
i=1
P
X
ai x(n i).
i=1
La relation entre x(n) et y(n) correspond une opration de filtrage de fonction de transfert4
B(z) = 1 + a1 z 1 + + aP z P .
4
Malgr des notations identiques pour viter de les alourdir, on ne confondra pas les coefficients ai et lordre
P du filtre gnrateur de x(n) et les coefficients et lordre du polynme prdicteur. Dans tout ce chapitre, il ne
sera question que du filtre prdicteur.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 11/162
1.3.2
avec
Y2 =
N 1
1 X 2
1
y (n) = y t y.
N
N
n=0
Comme
y(0)
y(1)
..
.
y(N 1)
x(0)
x(1)
..
.
x(N 1)
x(1)
x(0)
..
.
..
.
x(N 2)
x(P )
x(P + 1)
..
.
x(N P 1)
a1
..
.
aP
soit
y = x + a
on peut crire
Y2 =
1
1
(x + a)t (x + a) = (xt x + 2(t x)t a + at t a).
N
N
= 2t x + 2t aopt = 0.
a Y
Si t est inversible, on obtient
aopt = (t )1 t x.
Le minimum a pour expression
Y2 =
5
1 t
1
1
[x x + 2(t x)t aopt + (aopt )t (t x)] = xt x + (t x)t aopt .
N
N
N
N. MOREAU
Licence de droits dusage
12 mars 2009
page 12/162
Approche thorique
On suppose que le signal x(n) peut tre interprt (modlis) comme la ralisation dun p.a.
stationnaire de fonction dautocovariance rX (k) = E{X(n)X(n k)}. On recherche le vecteur a
minimisant la puissance de lerreur de prdiction
Y2
P
X
ai X(n i)]2 }
i=1
Y2
= E{X (n)} + 2
P
X
ai E{X(n)X(n i)} +
i=1
P X
P
X
i=1 j=1
rX (1)
rX (0)
.
.
t
2
2
..
.
.
Y = X + 2a
+a
.
.
.
rX (P )
rX (P 1)
rX (P 1)
..
a
.
rX (0)
2
Y2 = X
+ 2rt a + at Ra.
(1.6)
2
2
(Y2 )min = X
+ 2(aopt )t r (aopt )t r = X
+ (aopt )t r.
(1.7)
On a aussi
On remarque que lensemble des deux quations (1.6) et (1.7) admet la reprsentation matricielle
unique
2
rX (0) rX (1)
rX (P )
1
Y
..
.
.
.
.
a1 0
rX (1)
.
.
.
. = .
.
(1.8)
..
..
..
.
.
.
.
rX (1) . .
.
aP
0
rX (P )
rX (1) rX (0)
Comparaison des deux approches
Les deux solutions sont trs comparables ce qui nest pas tonnant puisque N1 t x est une
estime du vecteur r et N1 t est une estime de R. Plus prcisment les deux approches sont
asymptotiquement quivalentes puisque, si le signal X(n) est un p.a. ergodique, cest dire
si
+N
X
1
x(n)x(n + k) = E{X(n)X(n + k)}
lim
N 2N + 1
n=N
on a
t
t x
= R et lim
= r.
N N
N N
La diffrence (essentielle mais subtile) est que la matrice de covariance exacte tant dfinie
positive (sauf dans le cas limite o le processus est harmonique), cette matrice est toujours
inversible alors que la matrice t (exprime ici pour P = 1 pour simplifier)
x2 (1) + x2 (N 2)
x(0)x(1) + + x(N 3)x(N 2)
x(0)x(1) + + x(N 3)x(N 2)
x2 (0) + x2 (N 3)
lim
N. MOREAU
Licence de droits dusage
12 mars 2009
page 13/162
NX
1k
x(n)x(n + k) pour k = 0 P
n=0
(1.9)
Y2 = rX (0) + (aopt )t r.
On dit que lon fait une analyse LPC (Linear Predictive Coding).
On peut montrer aussi que la proprit de positivit entrane que tous les zros du polynme
A(z) sont lintrieur du cercle unit ce qui assure la stabilit du filtre 1/A(z). Cest une
proprit trs importante dans la pratique comme on le verra dans la deuxime partie de ce
document lorsque lon sintressera au codage de la parole dbit rduit.
Filtre blanchissant
On peut montrer que lerreur de prdiction Y (n) est blanche (plus exactement que le signal
X(n) a t blanchi). En effet, on remarque que
E{|Y (n)|2 }
=0
ai
Supposons P grand. Comme Y (n) est non corrl avec tous les X(n i) prcdents et que
Y (n i) est une combinaison linaire de ces X(n i), on en dduit que Y (n) est non corrl
avec Y (n i). Lerreur de prdiction Y (n) est donc un bruit blanc mais cette proprit nest
vrifie a priori que si P (comportement asymptotique). On appelle le filtre donnant Y (n)
partir de X(n) le filtre blanchissant.
Si Y (n) a t totalement blanchi, on peut crire
SY (f ) = |A(f )|2 SX (f ) = Y2 .
On a donc
SX (f ) =
Y2
.
|A(f )|2
On rappelle que lestimateur spectral le plus standard est le priodogramme : partir des N
donnes observes [x(0) x(N 1)] on calcule
N 1
1 X
k
k
x(n) exp(j2 n)|2 pour k = 0 N/2.
SX (fk = ) = |
N
N
N
n=0
N. MOREAU
Licence de droits dusage
12 mars 2009
page 14/162
Algorithme de Levinson
Pour calculer le prdicteur optimal lordre P , il suffit de rsoudre le systme linaire de P
quations P inconnues donn par (1.6) ou par (1.9). On peut, par exemple, utiliser lalgorithme
de Gauss. Celui-ci ncessite O(P 3 ) oprations. Il existe des algorithmes rapides rclamant O(P 2 )
oprations, exploitant les proprits de centro-symtrie de la matrice R. Le fait quils soient
rapides ne prsentent plus autant dintrt que dans les annes 60 lorsquils ont t conus
mais ils prsentent toujours de lintrt, spcialement en codage de la parole, car ils mettent
en vidence des paramtres quivalents aux coefficients ai et prsentant de meilleurs facults de
codage.
Lalgorithme le plus clbre est lalgorithme de Levinson. On donne la description de cet
algorithme sans aucune justification. On consultera par exemple [4] pour plus de dtails.
Cest un algorithme rcursif sur lordre : connaissant le prdicteur optimal lordre j, on
obtient le prdicteur lordre j + 1. On note aj1 ajj les coefficients du prdicteur lordre j,
j = rX (j)/rX (0) les coefficients dautocovariance normaliss et j2 la variance de lerreur de
2
prdiction cet ordre. Lorsque lindice j atteint lordre P , on a aj=P
= ai et j=P
= Y2 .
i
a11 = k1 = 1
2
12 = (1 k12 )X
Pour j = 2 P
j1
j = j + a1j1 j1 + + aj1
1
2
kj = j /j1
Pour i = 1 j 1
aji = aj1
+ kj aj1
i
ji
ajj = kj
2
2 (1 k 2 ).
j2 = j1
+ kj j = j1
j
Les coefficients k1 kP sont appels les coefficients de corrlation partielle (PARCOR). La
dernire quation de lalgorithme prcdent montre que tous ces coefficients sont en module
infrieur 1 puisque les variances sont toujours positives. Cest cette proprit qui les rend
particulirement intressant en codage.
En crivant sous forme matricielle lensemble des quations (1.8) pour j = 0 P sans chercher expliciter la partie triangulaire suprieure de la matrice apparaissant au second membre,
on obtient6
P x x
1
0 0
P ..
..
.
..
0 . . . . . . ..
a1
.
.
.
=
(1.10)
R
..
.
..
..
..
..
.
.
. x
.
. 0 ..
aPP a11 1
0 0 02
qui sinterprte comme une dcomposition de Choleski de la matrice dautocovariance.
1.3.3
Gain de prdiction
Dfinition
On appelle gain de prdiction (gain d la prdiction) le rapport des puissances des erreurs
de quantification obtenues en utilisant le quantificateur optimal sans prdiction et avec prdiction
rsolution b constante. Il est gal
Gp =
2 22b
2
c X
X
=
.
2
c Y 22b
Y2
(1.11)
On observera que la matrice dautocovariance R est cette fois ci de dimension P + 1 alors quelle tait de
dimension P prcdemment. On ne fait pas de distinction dans les notations pour ne pas les alourdir tant que
cette distinction nest pas vraiment ncessaire.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 15/162
rX (0)
.
PP
rX (0) + i=1 aopt
i rX (i)
k
i
i=1
Gp (P ) = QP
2
i=1 (1 ki )
Cest une fonction croissante de P . On peut montrer quil tend vers une limite Gp () que
lon appellera la valeur asymptotique du gain de prdiction.
1.3.4
Cette valeur asymptotique peut sexprimer sous diffrentes formes, par exemple en fonction
du dterminant de la matrice dautocovariance. En effet en prenant le dterminant des deux
membres de lquation (1.10), on obtient7
det R(P + 1) =
P
Y
j2 .
j=0
2
X
.
limP [det R(P )]1/P
(1.12)
1/2
1/2
loge SX (f )df ).
P
X
i
aopt
=
i z
i=1
P
Y
i=1
i=1
N. MOREAU
Licence de droits dusage
12 mars 2009
page 16/162
1/2
1/2
1/2
+1/2
1/2
SX (f )df
1/2
(1.13)
Z
exp(
N
1
N 1
Y
1 X
SX (k/N ))1/N )
loge SX (k/N )) = exp(loge (
N
k=0
k=0
Z
exp(
N
1
Y
loge SX (f )df ) (
SX (
k=0
k 1/N
)) .
N
Le signal le moins prdictible est le bruit blanc. La valeur asymptotique du gain de prdiction est gale 1 comme le montre la formule (1.13). La moyenne arithmtique et la moyenne
gomtrique sont gales. Aucun gain ne peut tre espr en utilisant une quantification scalaire
prdictive plutt quune quantification scalaire standard. Inversement le signal le plus prdictible
est un processus de la forme
Y (n) =
K
X
ak cos(2fk n + k )
k=1
o k sont des phases alatoires. Le gain de prdiction est infini. Comme la puissance de lerreur
de quantification, ou de lerreur de reconstruction, a pour limite
2
Q
=c
2
X
22b
Gp ()
on voit que lon peut quantifier sans distorsion un processus harmonique quel que soit le choix
de b. Cest videmment purement thorique car cela veut simplement dire quil suffit de coder les
diffrentes phases avec un nombre fini de bits et quensuite plus aucune information na besoin
dtre transmise pendant un temps aussi long que lon veut !
Le rapport inverse de la valeur asymptotique du gain de prdiction porte le nom de mesure
dtalement spectral.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 17/162
1.3.5
Reprenons le schma de principe du quantificateur prdictif donn figure 1.3. Sous cette
forme, le quantificateur exige la transmission chaque instant n non seulement du numro i(n),
rsultat de la quantification de lerreur de prdiction y(n), mais aussi dun autre numro qui serait
associ la quantification de la prdiction v(n) elle-mme. Ce schma de quantification, appel
schma de quantification en boucle ouverte, nest donc pas raliste puisque lon na pas intrt,
rsolution constante, multiplier les informations coder. On prfre raliser une prdiction en
boucle ferme ou autour du quantificateur comme le montre la figure 1.4 puisque lon peut alors
consacrer toutes les ressources binaires disponibles la quantification de lerreur de prdiction
y(n). Il nest plus ncessaire de transmettre v(n) au rcepteur puisque v(n) reprsente maintenant
la prdiction du signal reconstruit x
(n). Cette prdiction peut tre ralise de faon identique
lmetteur. Il suffit quune copie du traitement ralis au rcepteur soit faite lmetteur.
On parle de dcodeur local ( lmetteur) et de dcodeur lointain (au rcepteur). Cette faon de
procder a un cot : la prdiction se fait sur le signal reconstruit x
(n) et non sur le signal original
x(n). Ce nest pas grave tant que x
(n) est une bonne approximation de x(n), cest--dire lorsque
le taux de compression vis est peu lev.
x(n)
r(n)
+
r(n) +
Q 1
x(n)
+
+
v(n)
A(z)
Q 1
r(n) +
x(n)
+
Q 1
A(z)
r(n)
+
+
x(n)
A(z)
N. MOREAU
Licence de droits dusage
12 mars 2009
page 18/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 19/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 20/162
Chapitre 2
Quantification vectorielle
2.1
Introduction
Lorsque la rsolution est faible, il est naturel de vouloir regrouper plusieurs chantillons x(n)
dans un vecteur x(m) et de chercher quantifier lensemble. On parle de quantification vectorielle.
Entre la rsolution b, la dimension N des vecteurs et la taille L du dictionnaire, on a alors la
relation
L = 2bN .
Il nest plus ncessaire que b soit un entier. Il suffit que le produit bN le soit ou mme que, simplement, L le soit. La quantification vectorielle permet donc de dfinir des rsolutions fractionnaires.
Mais ce nest pas la proprit essentielle : le quantificateur vectoriel permet de prendre en compte
directement la corrlation contenue dans le signal plutt que de chercher dabord dcorrler le
signal puis quantifier un signal dcorrl comme le fait le quantificateur scalaire prdictif. Ce
quantificateur serait parfait sil navait pas un dfaut majeur : la complexit du traitement en
termes du nombre de multiplications/additions traiter est exponentiel en fonction de N .
2.2
Formalisme
N. MOREAU
Licence de droits dusage
12 mars 2009
page 21/162
8
6
4
2
0
2
4
6
8
10
10
20
40
60
80
100
120
140
10
10
N. MOREAU
Licence de droits dusage
12 mars 2009
page 22/162
Fig. 2.2 Comparaison des performances entre quantification vectorielle et quantification scalaire
lorsque la rsolution est gale 2. Le quantificateur vectoriel comprend L = 16 reprsentants de
dimension 2. Le quantificateur scalaire comprend L = 4 reprsentants.
0.5
0.5
0.5
0.5
0.5
0.5
0.5
0.5
Fig. 2.3 Comparaison des performances entre quantification vectorielle et quantification scalaire
pour une sinusode entache de bruit.
2.3
Dans la pratique, on ne connat pas la densit de probabilit conjointe pX (x). Pour construire
un quantificateur, on utilise des donnes empiriques, une base dapprentissage, en associant
chaque valeur le mme poids. La base dapprentissage doit tre compose dun grand nombre
dchantillons reprsentatifs de la source. Pour constituer une base dapprentissage caractristique du signal de parole par exemple, on utilise plusieurs phrases phontiquement quilibres
prononces par plusieurs locuteurs masculins, fminins, jeunes, plus gs, etc.
On donne ici une description sommaire de lalgorithme dit de Lloyd-Max permettant de
construire un quantificateur. Cest un algorithme itratif vrifiant successivement les deux conditions doptimalit.
L }, par exemple par tirage alatoire.
1. On initialise le dictionnaire {
x1 x
2. Connaissant ce dictionnaire {
x1 x
L }, on tiquette chaque chantillon de la base dapprentissage, par le numro de son plus proche voisin. On dtermine ainsi implicitement (le
N. MOREAU
Licence de droits dusage
12 mars 2009
page 23/162
2
Q
(b
L 1
1 1 X
= 1) = 0
||x(m) x
||2
L N
m=0
2.4
Dans le cadre de lhypothse de haute-rsolution, Zador [8] a montr que la formule de Benett
(cas scalaire)
Z
3
1
2
1/3
[pX (x)] dx
22b
Q =
12
R
N. MOREAU
Licence de droits dusage
12 mars 2009
page 24/162
donnant la puissance de lerreur de quantification en fonction de la densit de probabilit marginale du processus et de la rsolution, se gnralise au cas vectoriel. On obtient
2
Q
(N ) = (N )
Z
(N +2)/N
22b
RN
Z
= (N )
2
Q
(N )
[
RN
(2)N/2
1
exp( xt R1 x)]N/(N +2) dx
2
det R
(N +2)/N
22b
(N +2)/N
1/(N +2)
N/(N +2) N + 2 N/2
) (det R)
22b
= (N ) (2)
(
N
2
Q
(N ) = (N )2(
N + 2 (N +2)/2
)
(det R)1/N 22b
N
soit
2
Q
(N ) = c(N )(det R)1/N 22b .
On montre que
3
> c(N ) > c() = 1.
2
Lorsque N = 1, on retrouve la formule (1.5).
Comme dans le cas de la quantification scalaire prdictive, on peut chiffrer lamlioration des
performances apporte par la quantification vectorielle relativement la quantification scalaire.
Le gain de quantification vectorielle dfini de faon similaire (1.11) se dcompose en deux termes
c(1) =
Gv (N ) =
2
X
c(1)
.
c(N ) (det R)1/N
Le rapport c(1)/c(N ) est toujours suprieur 1 ce qui montre que, mme pour une source sans
mmoire, une quantification vectorielle est prfrable mais cette contribution reste limite parce
que
c(1)
c(1)
10 log10
< 10 log10
= 4.35 dB.
c(N )
c()
Le deuxime rapport traduit la prise en compte de la corrlation existant entre les diffrentes
composantes du vecteur par le quantificateur vectoriel. Lorsque N , il tend vers la valeur
asymptotique du gain de prdiction Gp () comme le montre lquation (1.12).
La figure 2.4 montre les rapports signal sur bruit correspondant la quantification vectorielle
(en fonction de N ) et la quantification scalaire prdictive (en fonction de P + 1) pour b = 2.
On visualise galement la limite du rapport signal sur bruit correspondant la quantification
vectorielle lorsque N tend vers linfini. Le rapport signal sur bruit correspondant au quantificateur
scalaire prdictif est gal
RSBQSP = 6, 02 b 4, 35 + 10 log10 Gp ()
ds que P 2. Le dcalage de 4,35 dB existant entre les deux droites horizontales est d au
rapport c(1)/c(). Il chiffre le gain apport par la grande souplesse du quantificateur vectoriel
dans le choix de la forme gomtrique de la partition.
Le quantificateur vectoriel exploite directement la corrlation existant dans le signal. Le
quantificateur scalaire prdictif exploite galement cette corrlation mais en ralisant au pralable
une opration de dcorrlation.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 25/162
25
Rsb [dB]
20
15
10
5
Quantification scalaire prdictive
Quantification vectorielle
Codage entropique avec mmoire
0
10
12
en fonction de N ou de P
14
16
18
20
Fig. 2.4 Rapport signal sur bruit en fonction de N pour le quantificateur vectoriel et en fonction
de P + 1 pour le quantificateur scalaire prdictif.
Ds que N devient suprieur une valeur relativement faible, le quantificateur vectoriel a
des performances meilleures que le quantificateur scalaire prdictif. Lorsque N augmente, les
performances du quantificateur vectoriel se rapprochent rapidement de la valeur limite pour un
processus stationnaire. On peut montrer quil nexiste pas de quantificateur procurant un rapport
signal sur bruit meilleur que cette limite. Le quantificateur vectoriel peut donc tre considr
comme le quantificateur optimal pourvu que N soit suffisamment lev.
2.5
Utilisation du quantificateur
Par exemple, un algorithme de codage de la parole peut tre implant dans un tlphone portable, interdisant
lemploi de Pentium 1GHz.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 26/162
ce qui entrane N 13 pour b = 1. Cest trs insuffisant pour au moins deux raisons. Dune part,
le signal de parole est trop complexe pour pouvoir tre rsum 213 vecteurs. Dautre part, la
fonction dautocorrlation ne sannule pas en quelques dizaines dchantillons. Un quantificateur
vectoriel ne rclame pas que les composantes du vecteur quantifier soient dcorrles (corrlation
intra-fentre) car il sadapte justement cette corrlation. Par contre, il faut chercher dcorrler
au maximum les vecteurs entre eux (corrlation inter-fentre). Avec N = 13, les corrlations
inter-fentres restent encore significatives pour du signal de parole.
Il est possible daugmenter N et L sans trop modifier la charge de calcul en structurant le
dictionnaire. De trs nombreuses propositions ont t faites dont on trouvera un expos trs
dtaill dans [3]. On ne donne ici quune description trs sommaire des nombreuses possibilits.
2.5.1
On a une collection de dictionnaires composs chacun de deux vecteurs (cas dun arbre
binaire). A la premire tape, on slectionne le plus proche voisin de x(m) dans le premier
dictionnaire. A la deuxime tape, on slectionne le plus proche voisin de x(m) dans lun ou
lautre des deux dictionnaires dpendant du premier choix, ... Le cot calcul par chantillon
pour un dictionnaire standard est gal 2bN . Il devient gal 2bN en imposant une structure
arborescente binaire. Pour construire ce dictionnaire, lalgorithme LBG est spcialement adapt
puisquil fournit tous les dictionnaires intermdiaires (aprs une lgre adaptation). Remarquons
quau dcodage, seul le dictionnaire de taille 2bN est utilis.
2.5.2
2.5.3
Cest une forme particulire du cas prcdent. Lide est de sparer dans deux dictionnaires
distincts ce qui est caractristique de la forme, le contenu spectral du vecteur, et ce qui est caractristique du gain, lnergie du vecteur. Le dictionnaire vectoriel est alors compos de vecteurs
(ventuellement) norms. Prenons lexemple du signal de parole. Que lon parle doucement ou
voix forte, le contenu spectral du signal est peu modifi. Par contre, son nergie est fortement
amplifie. Ces deux types dinformation sont fortement dcorrls ce qui justifie cette mthode.
2.5.4
2.5.5
On ralise une transformation orthogonale initiale puis on applique une quantification vectorielle sur le vecteur transform. Puisquune transformation orthogonale laisse invariante la norme
des vecteurs, lerreur quadratique moyenne reste inchange. A priori, cette transformation est
peu intressante. Pour coder des signaux, on ralise souvent une transformation initiale suivie
N. MOREAU
Licence de droits dusage
12 mars 2009
page 27/162
i 1 (n)
x(n)
Q1
Q 1
1
Q 1
2
x(n)
+
Q 1
1
i (n)
Q2
Q 1
2
i 3 (n)
Q3
Q 1
3
2.5.6
Le dictionnaire nest plus construit par application de lalgorithme de Lloyd-Max. Il est indpendant des proprits statistiques de la source. Il consiste rpartir les vecteurs de reproduction
de faon rgulire dans lespace. On parle alors de quantification vectorielle sur rseaux. Ces dictionnaires sont largement utiliss car ils permettent de rduire trs fortement la charge de calcul
et ils nont pas besoin dtre mmoriss.
2.6
Une quantification vectorielle particulire, la quantification vectorielle gain-forme, est largement utilise, spcialement en codage audio, car cette quantification vectorielle permet de grer
commodment lvolution au cours du temps de la puissance instantane dune source sonore.
Plutt que de minimiser la norme ||x x
j || relativement j, on minimise ||x gi x
j || relativement
i et j. On montre, dans cette section, comment est modifie la rgle du plus proche voisin et
comment on construit le dictionnaire optimal.
2.6.1
L1 } est comOn utilise deux dictionnaires comme le montre la figure 2.6. Le premier {
x1 x
1
L
pos de L1 vecteurs de dimension N ventuellement norms, le second {
g g 2 } est compos
de L2 scalaires. La minimisation de lerreur quadratique relativement aux deux indices i et j
peut tre ralise par une recherche exhaustive. On prfre, au prix dune approximation, raliser cette minimisation en deux temps. On recherche dabord parmi tous les vecteurs du premier
dictionnaire, le vecteur prsentant la forme la plus proche du vecteur x. On quantifie ensuite le
gain de faon scalaire.
Considrons le schma reprsent figure 2.7. On appelle g(j) le gain tel que le vecteur g(j) x
j
N. MOREAU
Licence de droits dusage
12 mars 2009
page 28/162
j
x
Rgle du
plus proche voisin
x1
...
xL
g 1 ... g L
g 1 ... g L
Inspection
dans une table
x1
...
xL
x2
g1 x 1
x1
< x, x
j >
||
xj ||2
< x, x
j >2
)
||
xj ||2
< x, x
j >2
x
j
max
<
x,
>2 max |cosj |
j
j
||
xj ||2
||
xj ||
N. MOREAU
Licence de droits dusage
12 mars 2009
page 29/162
2.6.2
Algorithme de Lloyd-Max
M (j)
M (j)
X
1 X
2
< x(m), x
||x(m)||
j >2 ].
=
[
M (j)
m=1
m=1
Q=
< x(m), x
j >2 = (
xj )t
xj
m=1
x(m)xt (m).
m=1
xj =
xj .
Le paramtre est donc une valeur propre de la matrice . En prmultipliant cette quation par
(
xj )t , on obtient
(
xj )t
xj = (
xj )t x
j = .
Le premier terme tant lexpression que lon cherche maximiser, il suffit de choisir le vecteur
propre associ la plus grande valeur propre de la matrice de covariance empirique. Cest un
rsultat classique danalyse de donnes en composantes principales [2].
N. MOREAU
Licence de droits dusage
12 mars 2009
page 30/162
Chapitre 3
Introduction
Jusqu une priode rcente, on faisait classiquement la distinction entre codage par transforme et codage en sous-bandes. Dans un codeur par transforme, on construit dabord, partir
du signal, un vecteur de dimension N . On applique ensuite une transforme caractrise par une
matrice gnralement orthogonale ou unitaire (par exemple construite partir de la transforme
de Fourier discrte ou de la transforme en cosinus discrte) puis on code les coefficients dans le
domaine transform. Au rcepteur, on ralise la transformation inverse. Dans un codeur en sousbandes, on commence par filtrer le signal par un banc de filtres danalyse, on sous-chantillonne
chaque signal de sous-bande puis on code sparment chaque signal sous-chantillonn. Au rcepteur, on dcode chaque composante, on ralise un sur-chantillonnage et une interpolation
par un banc de filtres de synthse puis on additionne les diffrents signaux reconstitus. Ces
deux techniques de codage sont formellement quivalentes. On prsentera cette quivalence dans
la section 3.2. Pour plus dtails, on consultera la littrature consacre la thorie des bancs
de filtres reconstruction parfaite [9, 10], aux systmes multirsolution, aux transformes par
ondelettes [11].
Dans la dfinition dun systme de codage, un problme important est lallocation des bits
disponibles entre diffrents sous-ensembles. On peut imaginer deux cas extrmes : rpartir des
bits entre plusieurs parties htrognes, comme par exemple entre les coefficients dun filtre et
le signal dexcitation dans un codeur de parole, ou rpartir des bits entre diffrents lments
prsentant a priori la mme distribution, comme par exemple les chantillons successifs dun
signal. On se propose de montrer, dans une deuxime partie, que les techniques de codage par
transforme (ou en sous-bandes) consistent chercher rendre non-homognes les diffrentes
composantes dun vecteur de faon pouvoir rserver davantage de bits pour les composantes
les plus significatives. On montrera que la transformation optimale, la transforme de KarhunenLoeve, est celle qui dcorrle les composantes du vecteur transform. Elle concentre le maximum
de la puissance contenue dans le signal dans un nombre minimum de composantes.
On verra galement que la minimisation de lerreur quadratique moyenne, critre que lon a
privilgi jusqu prsent, a pour effet de rendre le bruit de quantification le plus blanc possible.
Cest une approche quelque peu thorique : en pratique, le problme nest pas vraiment de
chercher rendre le bruit de quantification le moins puissant et le plus blanc possible. On cherche
plutt imposer des contraintes la forme spectrale du bruit pour respecter des contraintes
psychoacoustqiues ou psychovisuelles. On parlera de codage perceptuel. Cette question ne sera
pas traite dans ce chapitre. On abordera cette question dans la deuxime partie de ce document.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 31/162
3.2
y (m)
H 0 (f)
+ y (m)
0
F 0(f)
F 1(f)
q 1 (n)
x(n)
H 1 (f)
y 1 (m)
+
+ y (m)
1
x(n)
+
q (n)
M1
+ y (m)
y (m)
H (f)
M1
M1
M1
F (f)
M1
Fig. 3.1 Schma de principe dun codeur en sous-bandes (avec sous-chantillonnage critique).
rponse impulsionnelle finie, causaux et comportant le mme nombre de coefficients N . On
appelle M 0 le facteur de sous-chantillonnage et on note b0 bM 1 le nombre de bits que lon
accordera la quantification de chaque signal de sous-bandes. On remarque que si M 0 = M ,
la quantification dans le domaine transform porte sur le mme nombre dchantillons que si la
quantification avait lieu dans le domaine temporel. Le sous-chantillonnage est alors critique, le
banc de filtres est dcimation maximale. Cest le choix habituel en codage (que lon supposera
vrifi par la suite).
En construisant le vecteur x(m) = [x0 (m) xN 1 (m)]t partir de ses composantes polyphases xl (m) = x(mM l) et le vecteur y(m) = [y0 (m) yM 1 (m)]t partir des signaux de
sous-bandes, les M quations
yk (m) =
N
1
X
hk (l)x(mM l)
l=0
..
y(m) =
.
hM 1 (0)
h0 (0)
..
.
h0 (N 1)
..
.
x(m) = T x(m).
(3.1)
hM 1 (N 1)
Le banc de filtres danalyse est donc quivalent une transformation T caractrise par une
matrice rectangulaire M N dont les vecteurs lignes sont les rponses impulsionnelles des filtres
danalyse. On montre de mme que le banc de filtres de synthse est quivalent une transformation P caractrise par une matrice rectangulaire N M dont les vecteurs colonnes renverss
sont les rponses impulsionnelles des filtres de synthse. La condition gnrale de reconstruction
parfaite, la condition de bi-orthogonalit, est simplement que le produit matriciel PT donne
la matrice identit lorsque N = M (cas trivial). Dans le cas habituel lorsque N > M (cas
non-trivial), la condition de bi-orthogonalit se gnralise [10].
N. MOREAU
Licence de droits dusage
12 mars 2009
page 32/162
Obtenir les rponses impulsionnelles hk (n) et fk (n) vrifiant cette condition est un problme
difficile. Pour simplifier ce problme, on se contente presque toujours1 , de bancs de filtres moduls en introduisant une contrainte forte sur hk (n) et fk (n). Ces rponses impulsionnelles sont
obtenues partir des rponses impulsionnelles de filtres prototypes h(n) et f (n) par modulation : hk (n) = h(n)dk (n) et fk (n) = f (n)dk (n) pour k = 0 M 1 et n = 0 N 1. On
remarque que lquation (3.1) devient
y(m) = D u(m) avec u(m) = h x(m)
o D est la matrice de modulation et o lopration consiste multiplier deux vecteurs
composantes par composantes. Le vecteur u(m) est simplement la version fentre du vecteur
x(m) par la fentre de pondration h.
Il sagit de dterminer dk (n), h(n) et f (n). Si on part dun filtre prototype passe-bas idal
de frquence de coupure 1/4M et si on construit partir de ce filtre prototype les rponses en
frquence H0 (f ) HM 1 (f ) des M filtres du banc de la faon suivante
Hk (f ) = H(f
2k + 1
2k + 1
) + H(f +
),
4M
4M
2k + 1
n).
4M
On obtient des relations quivalentes pour le banc de filtres de synthse. Dans la pratique, il est
impossible dempcher du recouvrement dans le domaine frquentiel cause du caractre fini de
N . On montre quil existe tout de mme des solutions au problme de la reconstruction parfaite.
La plus classique est la transforme en cosinus discrte modifie (MDCT, TDAC, MLT ...) o la
matrice D est une matrice en cosinus avec des phases appropries
r
dk (n) =
cos[(2k + 1)(2n + 1 + N M )
] pour k = 0 M 1
M
4M
n = 0 N 1.
(3.2)
avec
f (n) = h(n) pour n = 0 N 1
condition vrifie par
h(n) = f (n) = sin[(2n + 1)
].
4M
N. MOREAU
Licence de droits dusage
12 mars 2009
page 33/162
3.3
Allocation de bits
3.3.1
Dfinition du problme
Les M composantes yk (m) du vecteur y(m) = T x(m) peuvent tre interprtes comme la ra2 2
lisation de M processus alatoires stationnaires Yk (m) de puissance Y2k . On note Q
QM 1
0
les puissances des M erreurs de quantification. En admettant que la condition de reconstruction
parfaite entrane la conservation de la puissance comme dans le cas dune transformation orthogonale ou unitaire (lorsque N = M ), on en dduit que la puissance de lerreur de reconstruction
(celle qui intresse lutilisateur)
1
2
2
2
Q
}
E{||X(m) X(m)||
= E{|X(n) X(n)| } =
N
est gale la moyenne arithmtique des puissances des erreurs de quantification des diffrentes
composantes (erreurs introduites localement par les quantificateurs)
2
Q
M 1
1
1 X 2
2
=
E{||Y (m) Y (m)|| } =
Qk .
M
M
k=0
Le premier problme que lon examine est le suivant. On applique une transformation T quelconque. On dispose de bM bits pour quantifier scalairement les M coefficients, les M signaux
de sous-bandes. On cherche la faon optimale dallouer les ressources binaires bM disponibles. Il
2 sous la contrainte
sagit donc de dterminer le vecteur b = [b0 bM 1 ]t minimisant Q
M
1
X
bk bM.
k=0
3.3.2
2 en fonction de 2 et
Dans le cadre de lhypothse haute rsolution, on peut exprimer Q
Yk
k
2 dpend de b
de bk en appliquant (1.5). On rappelle la formule en soulignant le fait que Q
k
k
2
Q
(bk ) = ck (1) Y2k 22bk
k
(3.3)
o ck (1) est une constante qui ne dpend que de la densit de probabilit marginale de Yk (m).
Lhypothse de gaussiannit se rpercutant sur les signaux de sous-bandes, toutes les constantes
ck (1) sont gales. On appelle c(1) cette constante commune.
Montrons que lallocation optimale de bits minimisant
2
Q
=
M 1
c(1) X 2 2bk
Yk 2
M
(3.4)
k=0
sous la contrainte
PM 1
k=0
Y2
1
log2 2k
2
(3.5)
2 = (
Y2k )1/M
k=0
N. MOREAU
Licence de droits dusage
12 mars 2009
page 34/162
En posant ak =
Y2k 22bk ,
k=0
M 1
M
1
M
1
PM 1
Y
Y
1 X 2 2bk
2 2bk 1/M
(
)
=(
Yk 2
Yk 2
Y2k )1/M 22 k=0 bk /M
M
k=0
k=0
k=0
M 1
1 X 2 2bk
2 22b .
Yk 2
M
k=0
La valeur optimale est atteinte lorsque tous les termes intervenant dans la somme sont gaux.
Dans ce cas, lingalit devient une galit. Quel que soit k, on a
Y2k 22bk = 2 22b
(3.6)
soit
s
bk
=2
Y2k
2
(3.7)
2
Q
= c(1) (
(3.8)
k=0
3.3.3
Algorithme pratique
La formule (3.5) nest pas exploitable directement. En effet, le nombre de bits bk obtenu nest
pas forcment un nombre entier ; il nest mme pas assur dtre un nombre positif. Une solution
consiste utiliser un algorithme sous-optimal2 rpartissant progressivement les bits l o ils ont
le plus deffet [3]
Initialisation
b0 = = bM 1 = 0
2 = 2 2
Q
= Y2M 1
Y
Q
0
P0M 1 M 1
Tant que k=0 bk < bM
2
l = arg maxk Q
k
bl = bl + 1
2 /4
l2 = Q
l
2
Cest un algorithme de type glouton (greedy), adjectif utilis chaque fois que le choix optimal est ralis
chaque tape de lalgorithme dans lespoir dobtenir un rsultat optimal global.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 35/162
3.3.4
Complments
M 1
1 X 2
Qk (ik )
M
(3.9)
k=0
(3.10)
k=0
2 en fonction de b. Lensemble de
Ces deux rsultats sont symboliss par un point dans le plan Q
ces points forme un nuage qui nest pas quelconque comme le montre la figure 3.2. La thorie
dbit-distorsion prsente (trs succinctement) au chapitre 4 montrera quil existe vraisemblablement une enveloppe convexe. On recherche le point du nuage, ou de lenveloppe convexe,
2 (i) sous la contrainte que b(i) soit infrieur ou gal une valeur dsire b .
minimisant Q
d
On procde en deux temps [12]. On recherche dabord un point sur lenveloppe convexe en
fonction dun paramtre puis on dtermine la valeur optimale de ce paramtre.
2 = b + . Pour une pente
Examinons la premire optimisation. Soit la droite dquation Q
donne, on cherche la droite, cest dire le paramtre , passant par un point du nuage et
2 la plus basse possible. Comme (i) = 2 (i) + b(i) le
prsentant une intersection avec laxe Q
Q
point du nuage recherch est caractris par
2
iopt () = arg min[Q
(i) + b(i)].
i
M 1
M 1
1 X
1 X 2
Qk (ik ) +
bk (ik )]
M
M
soit
iopt () = arg
k=0
M
1
X
k=0
k=0
2
min[Q
(ik ) + bk (ik )].
k
ik
On constate quil suffit de raliser M minimisations indpendantes ce qui vite davoir examiner toutes les combinaisons des diffrents quantificateurs. Prenons le cas o on serait amen
N. MOREAU
Licence de droits dusage
12 mars 2009
page 36/162
slectionner un quantificateur parmi 15 dans chacune des 32 sous-bandes comme on le verra par
la suite dans le cas du codeur audio MPEG-1. La remarque prcdente nest pas anodine puisque
lon passe de 1532 comparaisons 15 32 !
On procde maintenant la deuxime optimisation. Toutes les droites dtermines par la
minimisation prcdente sont caractrises par une quation qui ne dpend plus que de
2
[iopt ()] = Q
+ b.
(3.11)
Parmi toutes les droites possibles, il suffit de choisir celle qui maximise lordonne du point
dintersection avec la droite b = bd . Comme cette ordonne a pour expression
() = [iopt ()] bd
cest dire
2
() = Q
[iopt ()] + b[iopt ()] bd
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
10
2 (i), b(i)).
Fig. 3.2 Ensemble des points de coordonnes (Q
que la fonction () est une fonction concave. Un simple algorithme du gradient permet donc
dobtenir opt . On en dduit les M quantificateurs optimaux.
3.4
2
Q
Transformation optimale
Dans un deuxime temps, on recherche parmi toutes les transformations T celle qui minimise
aprs allocation optimale des bM bits disponibles sur le vecteur transform. Pour minimiser
N. MOREAU
Licence de droits dusage
12 mars 2009
page 37/162
0.1
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
1
1 M 1
..
..
..
1
.
.
.
2
.
RX = X
..
..
..
.
.
.
1
M 1 1
1
Y20
0,1 Y0 Y1
0,M 1 Y0 YM 1
..
.
.
..
..
1,0 Y1 Y0
.
RY =
..
..
..
.
.
M 2,M 1 YM 2 YM 1
.
M 1,0 YM 1 Y0
M 1,M 2 YM 1 YM 2
Y2M 1
en posant
E{Yi Yj }
i,j = q
.
E{Yi2 }E{Yj2 }
On obtient
Y0
0
RY =
..
.
0
avec
0
..
.
..
.
0
RY =
..
.
..
.
0
0
..
.
0
YM 1
0
RY
..
.
0
Y0
1,0
..
.
0,1
..
.
..
.
..
.
..
.
M 1,0
M 1,M 2
0
..
.
..
.
..
.
..
.
0
0,M 1
..
.
M 2,M 1
1
0
..
.
0
YM 1
M
1
Y
Y2k det RY .
(3.12)
k=0
N. MOREAU
Licence de droits dusage
12 mars 2009
page 38/162
3.5. PERFORMANCES
Comme
det RY = det RX det T T t = det RX
puisque la transforme est suppose orthogonale, on cherche la transformation T minimisant la
moyenne gomtrique des puissances, tout en maintenant constant le dterminant de RY . La
relation (3.12) montre que la transformation optimale est celle qui maximise le dterminant de
0
0
0
0
la matrice RY . Si lon appelle 0 M 1 les valeurs propres de RY , on sait [13] que ces valeurs
0
propres sont relles non ngatives puisque RY est dfinie non ngative et que la somme des
valeurs propres est gale M puisque la trace dune matrice est invariante par transformation
orthogonale. On a
M
1
M 1
Y
1 X 0 M
0
0
det RY =
k (
k ) = 1
(3.13)
M
k=0
k=0
en appliquant, une nouvelle fois, la proprit que la moyenne arithmtique dun ensemble de
rels non-ngatifs est suprieure ou gale la moyenne gomtrique. Lgalit est atteinte lorsque
toutes les valeurs propres sont gales 1, cest dire lorsque les composantes du vecteur transform sont dcorrles.
Si lon appelle V la matrice carre construite partir des vecteurs propres de RX et la
matrice diagonale construite partir des valeurs propres, on obtient
RX V = V .
On sait que la matrice V est une matrice orthogonale. On peut donc crire
V t E{XX t }V =
E{V t X(V t X)t } = .
Le vecteur transform par la transformation T = V t a ses composantes dcorrles. Cest donc la
transformation optimale. On appelle cette transformation la transformation de Karhunen-Loeve.
La transforme de Karhunen-Loeve ralise donc une dcomposition du vecteur X(m) sur les
vecteurs propres de la matrice de covariance. Elle produit des coefficients dcorrls et on peut
montrer que cest la transforme qui russit concentrer le maximum de puissance dans le plus
petit nombre de coefficients. Toutefois elle a deux inconvnients trs importants. La charge de
calcul est souvent prohibitive parce que cette transforme dpend du signal et que lalgorithme
de calcul des valeurs propres et des vecteurs propres dune matrice, bas sur des factorisations
QR successives, est trs lourd. Cette transforme prsente galement linconvnient de ne pas
avoir dinterprtation frquentielle simple.
3.5
Performances
3.5.1
Gain de transformation
Le fait de raliser une transformation quelconque y(m) = T x(m) puis une allocation de bits
optimale apporte dj un gain puisque
1 PM 1 2
2 22b
c(1)X
k=0 Yk
M
Gt =
QM 1 2 1/M 2b = QM 1 2 1/M
c(1)( k=0 Yk )
2
( k=0 Yk )
apparat comme le rapport dune moyenne arithmtique sur une moyenne gomtrique de nombres
positifs et ne peut tre que suprieur ou gal 1. Ce gain3 d la transformation et lallocation
de bits optimale est fonction de T et de M .
3
Dans la littrature des codeurs dimage, on emploie habituellement le terme de gain de codage qui na bien
sr rien voir avec le gain de codage employ en codage de canal.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 39/162
M 1
1 X
k
M
k=0
k=0
na lieu que dans ce cas, on remarque que le gain de transformation est gal au rapport de
la moyenne arithmtique et de la moyenne gomtrique des valeurs propres de la matrice de
covariance RX
1 PM 1
k
M
.
Gt (M ) = QM 1k=0
1/M
( k=0 k )
La transforme de Karhunen-Loeve est la transformation qui entrane le gain de transformation
le plus lev.
La moyenne gomtrique scrit
(
M
1
Y
1/M
k )
k=0
M 1
1 X
= exp(
loge k ).
M
k=0
k=0
N. MOREAU
Licence de droits dusage
12 mars 2009
page 40/162
3.5. PERFORMANCES
3.5.2
Rsultats de simulation
On quantifie le signal reprsent figure 2.1 avec une rsolution de 2 bits par chantillon. On
montre figure 3.4 les partitions et les reprsentants correspondant un quantificateur scalaire
non-uniforme, un quantificateur vectoriel et un quantificateur scalaire avec allocation optimale
de bits prcde dune transformation de Karhunen-Loeve (pour N = M = 2, il sagit dune
simple rotation des axes de 45 degrs).
8
N. MOREAU
Licence de droits dusage
12 mars 2009
page 41/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 42/162
Chapitre 4
Codage entropique
4.1
Introduction
Considrons un signal x(t) temps continu et bande limite [B, +B]. On lchantillonne
une frquence suprieure ou gale la frquence de Nyquist fe = 2B. On obtient, sans perte
dinformation, un signal temps discret x(n). On interprtera ce signal comme la ralisation
dun processus alatoire temps discret X(n). On suppose que ce processus alatoire possde
les bonnes proprits habituelles de stationnarit et dergodicit.
Ce processus est valeurs continues. Supposons quil ait t ensuite quantifi avec une rsolution importante. Ce processus alatoire devient un processus alatoire valeurs discrtes,
cest--dire que X(n) prend ses valeurs dans un ensemble fini. En thorie de linformation, on
appelle X(n) la source dinformation, lensemble fini comprenant LX lments lalphabet dentre
AX = {x1 xLX } et les lments xi les symboles dentre ou lettres de lalphabet. On cherche
maintenant comprimer cette information. Lobjet de ce chapitre est dexpliquer dabord que,
moyennant certaines hypothses, il est possible de raliser cette opration sans apporter de distorsion. On parle alors de codage sans bruit, sans perte ou de codage entropique. Malheureusement
les taux de compression permis sont gnralement insuffisants. On acceptera donc une certaine
distorsion. On montrera quil existe une fonction appele fonction dbit-distorsion donnant une
limite infrieure pour la distorsion lorsque lon simpose le dbit ou inversement une limite infrieure pour le dbit lorsque lon simpose la distorsion. On introduira galement dans ce chapitre
la notion de capacit dun canal de transmission de faon pouvoir noncer le thorme du
codage combin source-canal. On rexaminera la procdure de quantification scalaire en introduisant un nouveau mode de quantification, le quantificateur scalaire avec contrainte entropique,
que lon comparera au quantificateur examin dans les chapitres prcdents, le quantificateur de
Lloyd-Max.
Le dveloppement prsent dans ce chapitre est plutt sommaire. La plupart des thormes
ne sont pas dmontrs. On laissera le lecteur consulter les travaux de C. Shannon [15, 16] sur
lesquels est base la thorie de linformation et les ouvrages de rfrence [17, 18, 19, 5], plus
particulirement [20]. Ce dveloppement est galement incomplet. Par exemple, il ne prsente
pas lalgorithme de Ziv-Lempel [20] largement utilis pour comprimer des fichiers informatiques
grce la commande UNIX compress.
4.2
On suppose, dans une premire tape, que le processus X(n) est une suite de variables
alatoires indpendantes et identiquement distribues (suite i.i.d.) prenant ses valeurs dans AX =
N. MOREAU
Licence de droits dusage
12 mars 2009
page 43/162
4.2.1
LX
X
(4.1)
i=1
Lentropie2 est la quantit dinformation quapporte, en moyenne, une ralisation de X(n). Elle
donne le nombre de bits ncessaires en moyenne pour dcrire compltement la source. Elle mesure
lincertitude associe la source.
Prenons lexemple dune source binaire, X(n) {x1 , x2 }, sans mmoire et notons pour simplifier les notations p = pX (1). Lentropie de cette source vaut
H(X) = p log2 p (1 p) log2 (1 p).
Elle est visualise figure 4.1. Lentropie est positive ou nulle. Elle est nulle si p = 0 ou p = 1, cest-dire si la source est totalement prdictible. Elle est maximale et gale 1 si les deux symboles
sont quiprobables. Cest une fonction concave de p. Ces rsultats se gnralisent. On montre
que lentropie dune source discrte est positive ou nulle. Elle est nulle lorsque X(n) est presque
srement gale une valeur possible ; la source est alors totalement prdictible. Lentropie est
maximale et vaut log2 LX lorsque les valeurs possibles sont quiprobables. On a
0 H(X) log2 LX .
4.2.2
Dfinitions
Dans les chapitres prcdents, on na pas cherch dfinir de faon prcise le mot codage.
On a simplement dit que lon cherchait associer un scalaire x(n) ou un vecteur x(m) =
[x(mN ) x(mN + N 1)]t , un nombre i(n) ou i(m) {1 L} avec L = 2bN , le paramtre
b spcifiant le nombre de bits par chantillon. Dans ce chapitre, linformation transmettre ou
stocker, modlise par le processus alatoire X(n), prend ses valeurs dans un ensemble fini,
lalphabet dentre AX , et on dsire reprsenter (coder) les diffrents lments de cet ensemble
de faon adapte aux caractristiques du canal de transmission et de faon efficace.
1
Si lon suivait les recommandations de lUIT-T, on parlerait de shannon/symbole pour ne pas, justement, le
confondre avec le bit qui est lunit de comptage des symboles binaires employer pour coder une information. On
utilise dans ce document la terminologie usuelle.
2
La notation habituelle H(X) ne veut pas dire que H est une fonction des valeurs prises par la variable alatoire
X. Lentropie ne dpend que de la distribution des probabilits pX (i).
N. MOREAU
Licence de droits dusage
12 mars 2009
page 44/162
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Fig. 4.1 Entropie dune source binaire sans mmoire en fonction de la probabilit p dobtenir
un des 2 symboles.
De faon adapte aux caractristiques du canal de transmission veut dire que la reprsentation
de chaque symbole dentre, un mot du code, peut tre construite partir dlments dun autre
alphabet adapt au canal. On supposera par la suite que cet alphabet est compos de deux
lments AC = {a1 , a2 }, par exemple les deux symboles binaires habituels 0 et 1.
De faon efficace veut dire que lon cherche reprsenter la source en utilisant le minimum de
bits, cest--dire en minimisant la longueur moyenne des mots du code. Prcdemment, tous les
mots du code avaient la mme longueur bN . Maintenant, on va trs naturellement associer aux
symboles dentre les plus probables, les mots de code les plus courts. Le code est dit longueur
variable.
Plus prcisment, on appelle codage de la source X(n) une application de lalphabet AX dans
lensemble des suites finies dlments de lalphabet AC . Le code C = {c1 cLX } est lensemble
de ces suites. Chaque suite possible ci = [ai(1) ai(l) ] est un mot du code. Le nombre dlments
de AC composant un mot est la longueur l du mot. La longueur moyenne des mots du code est
donne par
LX
X
l =
pX (i)l(ci ).
i=1
x1
0
x2
100
x3
101
x4
110
x5
1110
x6
1111
N. MOREAU
Licence de droits dusage
12 mars 2009
page 45/162
squence x4 , x1 , x5 , x3 , x4 . On constate que le dcodage des symboles se fait sans rfrence aux
mots de code futurs. Le code est dit instantan. On se limitera par la suite ce cas particulier.
Le code prcdent vrifie aussi la condition du prfixe. Une faon simple de vrifier la condition
du prfixe ou de construire un code vrifiant cette condition est de tracer un graphe orient en
forme darbre binaire, dtiqueter chaque branche partant dun noeud par les symboles 0 ou
1 et dassocier un mot du code chaque noeud terminal en prenant comme mot de code la
succession des symboles binaires sur les branches comme le montre la figure 4.2. Cet arbre nest
x1
0
x
0
1
1
2
3
x4
0
x5
0
x6
2l(c ) 1
(4.2)
i=1
o l(ci ) est la longueur du mot de code ci . Par exemple, sur la figure 4.2, on trouve
21 + 3 23 + 2 24 = 1.
Donnons simplement le principe de la dmonstration de la condition ncessaire lorsque LX
est une puissance de 2. Considrons larbre complet reprsentant lensemble des LX mots dun
0
code C dont tous les mots du code auraient la mme longueur lmax telle que
LX = 2lmax .
Ce code vrifie la relation (4.2) puisque
LX
X
i=1
N. MOREAU
Licence de droits dusage
12 mars 2009
page 46/162
On passe de larbre associ au code C larbre associ au code C en laguant un certain nombre
de branches et en crant de nouvelles. Elaguer des branches ne modifie pas le premier membre
de (4.2) puisque lon sera toujours amen remplacer deux termes de la forme 2l par 2l+1 . Il
en sera de mme si lon cre de nouvelles branches puisque lon remplacera 2l par 2 2l1 .
Code optimal
Relchons la contrainte suivant laquelle les quantits l(ci ) doivent tre des entiers et remplaons le signe dingalit par une galit dans (4.2). Le code optimal est celui qui minimise la
longueur moyenne
LX
X
l =
pX (i)l(ci )
i=1
sous la contrainte
LX
X
2l(c ) = 1.
i=1
2l(c ) ] = 0.
X
l(ci )
j=1
j=1
On obtient
2l(c ) =
Comme
LX
X
i=1
pX (i)
.
loge 2
L
2l(c ) =
X
X
1
pX (i) = 1
loge 2
i=1
2l(c ) = pX (i).
l(ci ) = log2 pX (i).
La longueur moyenne correspondant au code optimal est donne par
l =
LX
X
i=1
pX (i)l(ci ) =
LX
X
i=1
l = H(X).
Parmi tous les codes vrifiant la condition du prfixe, celui qui minimise la longueur moyenne des
mots du code a une longueur moyenne gale lentropie de la source. Lentropie H(X) apparat
donc comme une limite fondamentale pour reprsenter sans distorsion une source dinformation.
4.2.3
Le dveloppement qui suit a simplement pour but de prciser le rsultat prcdent lorsque
lon impose aux longueurs des mots du code dtre des valeurs entires. Ces rsultats ont t
dmontrs par Shannon en 1948 [15].
N. MOREAU
Licence de droits dusage
12 mars 2009
page 47/162
Proposition 1
Si p(1) p(L) et q(1) q(L) sont deux distributions de probabilit quelconques, alors
L
X
p(i) log2
i=1
q(i)
0.
p(i)
q(i)
q(i)
(
1) log2 e
p(i)
p(i)
log2
ou
L
X
p(i) log2
i=1
q(i) X
q(i)
1) log2 e = 0.
p(i)(
p(i)
p(i)
i=1
(4.3)
i=1
sappelle lentropie relative ou distance de Kullback-Leibler entre deux distributions de probabilit. Elle est toujours positive ou nulle. Elle sinterprte comme une mesure de distance entre
deux distributions de probabilit bien que cela ne soit pas, proprement parler, une distance
puisque ce nest pas une expression symtrique et quelle ne respecte pas lingalit triangulaire !
Proposition 2
Tout codage de la source X(n) par un code instantan uniquement dcodable entrane une
longueur moyenne vrifiant
H(X) l.
En effet, tout code instantan uniquement dcodable vrifie lingalit de Kraft
LX
X
2l(c ) 1.
i=1
q(i) = a2l(c )
avec a 1 puisque
LX
X
q(i) = 1 = a
i=1
LX
X
2l(c ) .
i=1
pX (i) log2 a
i=1
soit
LX
X
i=1
2l(c )
0
pX (i)
LX
X
pX (i)l(ci ) + log2 a 0
i=1
H(X) l log2 a.
On obtient donc la formule dsire puisque log2 a 0.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 48/162
Proposition 3
Il existe un code instantan uniquement dcodable vrifiant
l < H(X) + 1.
En effet, choisissons un code tel que
log2 pX (i) l(ci ) < log2 pX (i) + 1.
A partir de la premire ingalit
l(ci ) log2 pX (i)
on obtient
i
2l(c ) pX (i)
LX
X
2l(c )
i=1
LX
X
pX (i) = 1.
i=1
On en dduit lexistence dun code ayant cette distribution des longueurs. A partir de la deuxime
ingalit, on obtient
LX
LX
X
X
pX (i)l(ci ) <
pX (i) log2 pX (i) + 1
i=1
i=1
l < H(X) + 1.
Thorme
Pour toute source discrte sans mmoire X(n), il existe un code instantan reprsentant
exactement cette source et uniquement dcodable vrifiant
H(X) l < H(X) + 1
(4.4)
4.2.4
Code de Shannon
La faon la plus simple de procder est de choisir
l(ci ) = d log2 pX (i)e
o dxe reprsente le plus petit entier suprieur ou gal x. On a
l =
LX
X
i=1
LX
X
i=1
LX
X
pX (i)
i=1
l H(X) + 1.
Comme
2d log2 pX (i)e 2log2 pX (i)
N. MOREAU
Licence de droits dusage
12 mars 2009
page 49/162
2l(c )
LX
X
i=1
pX (i)
i=1
LX
X
2l(c ) 1
i=1
x1
0,5
x2
0,15
x3
0,17
x4
0,08
x5
0,06
x6
0,04
4.2.5
Gnralisation
La double ingalit (4.4) est trop imprcise car la valeur de H(X) est gnralement faible.
Pour diminuer cette imprcision, on forme un vecteur alatoire, not X N , en regroupant N
variables alatoires X(mN ) X(mN +N 1) et on cherche associer toute ralisation possible
de ce vecteur un mot du code. Cela correspond, dans ce cas, une application de lensemble
produit AX AX dans lensemble des suites finies. On conserve, dans ce paragraphe,
lhypothse que la source est sans mmoire.
Thorme
On montre que si on regroupe N symboles de la source et si on lui associe un mot du code
ci de longueur l(ci ), alors il un existe un code tel que la longueur moyenne
l =
P r(X N )l(ci )
XN
N. MOREAU
Licence de droits dusage
12 mars 2009
page 50/162
0,5
0
x1
0,32
0
1
0,5
0,18
1
0,08
0,15
1
0,1
3
0,17
0,06
x5
x6
0,04
l
1
< H(X) + .
N
N
(4.5)
Le rapport l/N reprsente le nombre moyen de bits par symbole ncessaire et suffisant pour
pouvoir reprsenter exactement la source.
Il existe un autre thorme consistant supposer que la longueur de tous les mots du code
est identique et permettre N de varier. Ce thorme dit que quel que soit > 0, il existe un
code tel que si
l
H(X) +
N
alors la probabilit pe pour qu une squence X(mN ) X(mN + N 1) on ne puisse pas lui
associer un mot du code, peut tre rendue arbitrairement petite pourvu que N soit suffisamment
grand. Ce thorme dit galement que si
l
H(X)
N
il nexiste pas de code pour lequel la probabilit pe puisse tre rendue arbitrairement petite.
Deuxime exemple
Supposons une source sans mmoire ne pouvant prendre que deux valeurs de probabilits
connues. Formons un vecteur de dimension 2 puis un vecteur de dimension 3. Lensemble des
probabilits des diffrents vnements est donn table 4.3. Lentropie de cette source est gale
0,88 bit. Les nombres moyens de bits par symbole sont donns table 4.4. Ils ne crent pas
forcment une suite dcroissante lorsque N augmente mais ils vrifient la double ingalit (4.5).
N. MOREAU
Licence de droits dusage
12 mars 2009
page 51/162
x1 x1 x1
0,343
x1 x1
0,49
1
x x2 x1
0,147
x1 x1 x2
0,147
x1
0,7
x1 x2
0,21
1
x x2 x2
0,063
x2
0,3
x2 x1
0,21
2
x x1 x1
0,147
x2 x2
0,09
2
x x1 x2
0,063
x2 x2 x1
0,063
x2 x2 x2
0,027
1
1
2
0,905
3
0,908
4.2.6
Codage arithmtique
Il nest plus question de rechercher un code instantan comme prcdemment. Cette technique
de codage code simultanment plusieurs symboles la fois.
Considrons cinq symboles dont on suppose connue la distribution des probabilits donne
table 4.5 et associons chaque symbole une partie de lintervalle [0 1[ en fonction de sa probabilit comme indiqu dans cette table. Coder (simultanment) par exemple les trois symboles
Symboles
Probabilits
Intervalles
x1
0,1
[0 - 0,1[
x2
0,2
[0,1 - 0,3[
x3
0,1
[0,3 - 0,4[
x4
0,4
[0,4 - 0,8[
x5
0,2
[0,8 - 1[
Tab. 4.5 Probabilits associes aux cinq vnements {X(n) = xi } et dfinition des intervalles
de codage.
[x3 , x2 , x4 ] consiste rechercher un sous-ensemble de lintervalle [0 1[ de la faon suivante.
On slectionne dabord lintervalle [0, 3 0, 4[ associ au symbole x3 .
On inclut ensuite lintervalle [0, 1 0, 3[ spcifique du symbole x2 dans lintervalle [0, 3
0, 4[ ce qui donne lintervalle [0, 31 0, 33[.
On poursuit avec x4 ce qui donne les deux bornes du nouvel intervalle
0, 31 + 0, 4 (0, 33 0, 31) = 0, 318
0, 31 + 0, 8 (0, 33 0, 31) = 0, 326.
Coder [x3 , x2 , x4 ] revient transmettre nimporte quel rel appartenant lintervalle [0, 318
0, 326[ par exemple 0,32 ou plus prcisment celui qui a la reprsentation binaire la plus conomique possible par exemple {0101001} puisque 22 + 24 + 27 = 0,3203.
Au dcodeur, on ralise le traitement suivant
Puisque 0,3203 appartient lintervalle [0, 3 0, 4[ on dcide x3 .
Comme
0, 3203 0, 3
= 0, 202 [0, 1 0, 3[
0, 4 0, 3
on dcide x2 .
Etc.
Pour plus de dtails, en particulier pour comprendre comment dans la pratique on obtient
les reprsentations binaires les plus conomiques, on consultera larticle [21].
N. MOREAU
Licence de droits dusage
12 mars 2009
page 52/162
4.3
4.3.1
Nouvelles dfinitions
Considrons deux variables alatoires discrtes3 X et Y prenant leurs valeurs dans respectivement AX = {x1 xLX } et AY = {y 1 y LY } et notons les probabilits conjointes
pXY (i, j) = Prob {X = xi , Y = y j }
et les probabilits conditionnelles
pY |X (i|j) = Prob {Y = y j |X = xi }.
On appelle
information conjointe des 2 vnements {X = xi } et {Y = y j }, la quantit
I(xi , y j ) = log2 pXY (i, j)
entropie conjointe de deux variables alatoires discrtes X et Y , lesprance de linformation
conjointe
LX X
LY
X
H(X, Y ) =
pXY (i, j) log2 pXY (i, j)
i=1 j=1
H(Y |X) =
LX X
LY
X
i=1 j=1
La relation
pXY (i, j) = pX (i)pY |X (j|i)
entrane la relation suivante entre lentropie H(X), lentropie conjointe H(X, Y ) et lentropie
conditionnelle H(Y |X)
H(X, Y ) = H(X) + H(Y |X).
(4.6)
3
N. MOREAU
Licence de droits dusage
12 mars 2009
page 53/162
En effet
H(X, Y ) =
LX X
LY
X
i=1 j=1
H(X, Y ) =
LX X
LY
X
i=1 j=1
H(X, Y ) =
LX
X
i=1
4.3.2
LX X
LY
X
i=1 j=1
H(X)
= lim
H(X N ).
N N
On montre quil est possible dassocier une source un code uniquement dcodable pourvu que
le nombre de bits moyen par symbole soit suprieur ou gal au dbit entropique.
Si la source est sans mmoire, on a
X
H(X N ) = N
pX (i) log2 pX (i) = N H(X).
i
Le dbit entropique de cette source est donc gal lentropie de la source. De faon gnrale, on
a lingalit
0 H(X)
H(X) log2 LX .
Tout ce dveloppement dmontre quil existe un code capable de reprsenter exactement la source
un dbit gal au dbit entropique mais nexplique pas toujours comment construire ce code.
On remarquera galement quun codage efficace ne peut tre ralis quau dpend du dlai
de reconstruction.
4.3.3
Gnralits
Considrons le cas dune source discrte X(n) prenant ses valeurs dans {x1 xLX } et supposons connues toutes les probabilits conditionnelles que lon ait lvnement {X(n) = xi } sachant qu linstant prcdent on avait lvnement {X(n1) = xj }. On suppose ces probabilits
N. MOREAU
Licence de droits dusage
12 mars 2009
page 54/162
p(1|2)
X
p(2|2)
p(2|1)
N. MOREAU
Licence de droits dusage
12 mars 2009
page 55/162
p(1|2)
p(2|1) + p(1|2)
p(2|1)
.
p(2|1) + p(1|2)
.
Si on est dans ltat x1 , lentropie conditionnelle H(X(n)|X(n1) = x1 ) reprsente le nombre
de bits ncessaire pour coder son volution partir de ltat x1 . On a
H(X(n)|X(n 1) = x1 ) = p(1|1) log2 p(1|1) p(2|1) log2 p(2|1) = f [p(2|1)]
avec f (u) = u log2 u (1 u) log2 (1 u) pour 0 u 1 dont le graphe est visualise figure
4.1. On obtient de mme
H(X(n)|X(n 1) = x2 ) = f [p(1|2)].
Le dbit entropique est la moyenne (pondre par la probabilit dtre dans ltat correspondant)
des entropies conditionnelles. On obtient
H(X(n)|X(n 1)) = p(1)H(X(n)|X(n 1) = x1 ) + p(2)H(X(n)|X(n 1) = x2 )
H(X(n)|X(n 1)) = g[p(1|2), p(2|1)].
En conclusion, sans connaissance des caractristiques de la source, il faut utiliser 1 bit par
symbole. Par contre, si les probabilits de transition sont faibles, le dbit entropique est faible et
il doit exister un code efficace.
Pour le construire, la mthode la plus simple consiste
scanner un grand nombre de feuilles crites, dessines, etc. pour constituer une base dapprentissage,
raliser deux histogrammes sur le nombre de noirs (et blancs) conscutifs permettant une
estimation des probabilits des vnements : avoir un seul noir (blanc), deux noirs (blancs),
..., k noirs (blancs) successifs,
appliquer lalgorithme de Huffman,
comparer lefficacit de cette mthode avec le calcul du dbit entropique dduit dune
estimation de p(1|2) et p(2|1).
La recommandation parue en 1980 stipule que chaque mot de code reprsente effectivement
le nombre de pixels blanc ou noir successifs. Il sagit donc dun codage par plage. Les squences
de noir et de blanc se produisent alternativement. Toute ligne commence par une squence de
blanc comportant ventuellement 0 lment et se termine par un mot de code particulier (EOL).
Les mots de code sont longueur variable. Il existe deux listes de mots de code distinctes pour
les squences correspondant au blanc et au noir. Les squences dune longueur de 0 63 lments
dimage correspondant au blanc sont codes avec les mots de code donns table 4.6. Si une
squence a une longueur suprieure ou gale 64 lments, un premier mot de code spcifie dans
quel intervalle il appartient, le second mot de code spcifie le reste de la division par 64. Il existe
une deuxime table de mots de code spcifiant la longueur des squences correspondant au noir
(table non fournie dans ce document).
N. MOREAU
Licence de droits dusage
12 mars 2009
page 56/162
00110101
000111
0111
1000
1011
1100
1110
1111
10011
10100
00111
01000
001000
000011
110100
110101
101010
101011
0100111
0001100
0001000
0010111
0000011
0000100
0101000
0101011
0010011
0100100
0011000
00000010
00000011
00011010
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
00011011
00010010
00010011
00010100
00010101
00010110
00010111
00101000
00101001
00101010
00101011
00101100
00101101
00000100
00000101
00001010
00001011
01010010
01010011
01010100
01010101
00100100
00100101
01011000
01011001
01011010
01011011
01001010
01001011
00110010
00110011
00110100
64
128
192
256
320
384
448
512
576
640
704
768
832
896
960
1024
1088
1152
1216
1280
1344
1408
1472
1536
1600
1664
1728
EOL
11011
10010
010111
0110111
00110110
00110111
01100100
01100101
01101000
01100111
011001100
011001101
011010010
011010011
011010100
011010101
011010110
011010111
011011000
011011001
011011010
011011011
010011000
010011001
010011010
011000
010011011
000000000001
Tab. 4.6 Mots de code spcifiant la longueur des squences correspondant au blanc lors de la
transmission de documents par tlcopie.
4.4
4.4.1
Introduction
L Z
X
k=1
(x x
k )2 pX (x)dx
xk
N. MOREAU
Licence de droits dusage
x
k + x
k+1
2
12 mars 2009
page 57/162
x
k = E{X|X k }.
Ces deux conditions sont exploites dans lalgorithme de Lloyd-Max largement utilis dans la
pratique pour construire un quantificateur mais on ne peut pas assurer loptimalit du quantificateur obtenu. On sait simplement que la suite des puissances obtenues par cet algorithme est une
suite non-croissante ! On a vu galement que, lorsque lon suppose que le nombre de niveaux de
quantification L est lev, on obtient explicitement, contrairement au cas prcdent, lexpression
de la partition optimale uniquement en fonction de la densit de probabilit pX (x).
On introduit dans cette section un nouveau mode de quantification (scalaire) appel quantification avec contrainte entropique. Dans la minimisation prcdente permettant dobtenir les
deux conditions ncessaires doptimalit, il sagissait en fait dune minimisation sous contrainte.
La contrainte tait que le nombre de niveaux de quantification L tait fixe, gal 2b . On peut
2 relativement aux tk et x
trs bien chercher minimiser Q
k sous la contrainte que lentropie
de la sortie du quantificateur soit infrieure ou gale b. Comme
H(X)
log2 L = b
H(X)
on peut esprer obtenir un quantificateur plus performant.
On se placera dans le cas o le nombre de niveaux de quantification L est lev : la densit
de probabilit peut tre alors suppose constante dans lintervalle [tk1 , tk ] et le reprsentant x
k
peut tre pris au milieu de cet intervalle.
4.4.2
Quantificateur de Lloyd-Max
2
Q
=
1 X
pX (
xk )3 (k)
12
k=1
0
f (
xk ) = g(
xk ).
(4.7)
(k)
La puissance de lerreur de quantification scrit
L
2
Q
1 X
2
=
pX (
xk ) 2 k (k).
12
g (
x )
k=1
2
=
12
pX (x)
dx.
g 2 (x)
Supposons, pour simplifier, que le support de pX (x) soit lintervalle [A, +A] et que la densit
de probabilit soit une fonction paire. Le pas de quantification du quantificateur uniforme est
donn par
2f (A)
=
.
L
N. MOREAU
Licence de droits dusage
12 mars 2009
page 58/162
En posant
g(x)
2f (A)
g(x) =
on doit finalement minimiser
1
12L2
2
Q
=
sous la contrainte
+A
pX (x)
dx
g2 (x)
+A
g(x)dx = 1.
A
+A
a
1/a
u (x)dx]
+A
v b (x)dx]1/b
pX (x) 1/3
]
g2 (x)
+A
On a donc
2
Q
Z
pX (x) 1/3 +A
g(x)dx]2/3 .
dx]
[
g2 (x)
A
Z +A
1
1/3
[
pX (x)dx]3
2
12L A
avec lgalit si
1/3
g(x) = R A
pX (x)
1/3
A pX (x)dx
4.4.3
1
= [
12
+A
1/3
pX (x)dx]3 22b .
Il sagit de minimiser
2
Q
2
=
12
pX (x)
dx
g 2 (x)
(4.8)
de la sortie du quantificateur
en imposant une contrainte sur lentropie H(X)
b.
H(X)
N. MOREAU
Licence de droits dusage
12 mars 2009
page 59/162
Expression de lentropie
Lentropie de la sortie du quantificateur a pour expression
=
H(X)
L
X
k=1
avec
Prob (k) = Prob {X [tk1 , tk ]} = p(
xk )(k).
On a donc
=
H(X)
L
X
pX (
xk )(k) log2 pX (
xk )(k)
k=1
=
H(X)
=
H(X)
L
X
pX (
xk )(k) log2 pX (
xk )
L
X
k=1
k=1
L
X
L
X
pX (
xk )(k) log2 pX (
xk )
k=1
pX (
xk )(k) log2 (k)
pX (
xk )(k) log2
k=1
g(
xk )
L
X
pX (
x )(k) log2 pX (
x )
L
X
pX (
xk )(k) log2 +
k=1
k=1
L
X
pX (
xk )(k) log2 g(
xk ).
(4.9)
k=1
Z
pX (x) log2 pX (x)dx log2
=
H(X)
Z
pX (x)dx +
Z
pX (x) log2 pX (x)dx log2 +
Lentropie diffrentielle caractrise la quantit dinformation que possde une source continue
sans mmoire. Elle partage la plupart des proprits de lentropie dune source discrte sans
mmoire except le fait quelle nest pas ncessairement positive. Par exemple, pour une source
prsentant une distribution uniforme dans lintervalle [A/2, A/2], on obtient
Z
h(X) =
1
log2 A dx = log2 A.
A
N. MOREAU
Licence de droits dusage
12 mars 2009
page 60/162
Ingalit de Jensen
Cette ingalit est souvent utilise en thorie de linformation. Elle dit que si X est une
variable alatoire sur lintervalle [a, b] et si f (x) est une fonction convexe dans cet intervalle,
alors
E{f (X)} f (E{X}).
De plus, si f (x) est strictement convexe alors lgalit a lieu si et seulement si X = E{X} avec
une probabilit gale 1, cest dire si X est une constante.
Dmontrons le premier rsultat lorsque X est une variable alatoire discrte prenant les
valeurs x1 et x2 avec les probabilits pX (1) et pX (2). Comme une fonction convexe est une
fonction vrifiant
f (x1 ) + (1 )f (x2 ) f (x1 + (1 )x2 )
x1 , x2 [a, b] et 0 1, on peut crire
pX (1)f (x1 ) + (1 pX (1))f (x2 ) f (pX (1)x1 + (1 pX (1))x2 )
cest dire
E{f (X)} f (E{X}).
Pour une variable alatoire X prenant ses valeurs dans {x1 xL }, il suffit de supposer que cette
proprit est vraie lordre k 1 et dcrire
k
X
i=1
k1
X
i=1
pX (i)
f (xi )
1 pX (k)
k
X
k1
X
pX (i)f (xi ) pX (k)f (xk ) + (1 pX (k))f (
i=1
i=1
k
X
i=1
k1
X
i=1
k
X
pX (i)
xi )
1 pX (k)
pX (i)
xi )
1 pX (k)
k
X
pX (i)f (x ) f (
pX (i)xi ).
i
i=1
i=1
Par passage la limite, ce rsultat se gnralise au cas dune variable alatoire valeurs continues.
Quantificateur optimal
Lquation (4.8) scrit
2
Q
=
2
1
E{
}.
12 g 2 (X)
2
1
(E{
})2
12
g(X)
avec lgalit si g(x) prend une valeur constante note g0 sur tout le support de pX (x). Ceci veut
dire que le meilleur quantificateur de la source continue X(n) est tout simplement le quantificateur uniforme suivi dun codage entropique. La constante g0 doit vrifier la contrainte
h(X) log2 + log2 g0 b
N. MOREAU
Licence de droits dusage
12 mars 2009
page 61/162
ce qui entrane
2h(X)b .
g0
La puissance de lerreur de quantification est donc minore par
2
Q
1 2h(X) 2b
2
2 .
12
(4.10)
Source gaussienne
Donnons lexpression de lentropie diffrentielle dune source gaussienne. On a
Z +
q
2
2 + x
pX (x)[log2 2X
h(X) =
2 log2 e]dx
2X
Z
log2 e +
pX (x)dx +
pX (x)x2 dx
2
2
X
q
2 + log2 e
h(X) = log2 2X
2
1
2
.
h(X) = log2 2eX
2
En reportant dans (4.10), on obtient
Z
q
2
h(X) = log2 2X
2
Q
=
e 2 2b
2
.
6 X
La constante e/6 est gale 1,42. Le gain apport par le quantificateur avec contrainte entropique relativement au quantificateur de Lloyd-Max est de
3/2
3 3
=
= 1, 91
e/6
e
soit 2,81 dB.
4.5
4.5.1
Introduction
N. MOREAU
Licence de droits dusage
12 mars 2009
page 62/162
x1
p(1|1)
y1
x2
p(2|1)
y2
xL
p(L|1)
yL
4.5.2
Information mutuelle
pX (i)pY (j)
pXY (i, j)
pY (j)
pX (i)
= log2
.
pY |X (j|i)
pX|Y (i|j)
Linformation mutuelle4 est gale zro si lvnement {Y (n) = y j } est indpendant de lvnement {X(n) = xi }. Elle est maximale si pY |X (j|i) = 1, cest--dire si le canal est sans erreur
pour cette paire. Dans ce cas, elle est gale linformation propre I(xi ). Elle reprsente donc la
quantit dinformation que fournit le symbole reu y j sur le symbole mis xi .
Linformation mutuelle moyenne est lesprance de I(xi ; y j ). Elle scrit
I(X; Y ) =
LX X
LY
X
i=1 j=1
I(X; Y ) =
LX X
LY
X
i=1 j=1
pX (i)pY (j)
.
pXY (i, j)
(4.11)
Donnons quelques proprits de I(X; Y ). Remarquons tout dabord que linformation mutuelle
moyenne est lentropie relative dfinie par lquation (4.3) entre la probabilit conjointe et le
produit des probabilits marginales
I(X; Y ) = D(pXY ||pX pY ).
On en dduit que I(X; Y ) est non-ngatif et vaut 0 si et seulement si les deux variables alatoires
X et Y sont indpendantes. Linformation mutuelle moyenne I(X; Y ) mesure la dissimilitude
entre la probabilit conjointe et ce quelle serait si les deux variables alatoires taient indpendantes. Elle mesure la quantit dinformation que les deux variables alatoires sapportent
mutuellement.
4
On observera soigneusement les diffrents signes de ponctuation dans les notations. La virgule tant traditionnellement associe des probabilits conjointes, on utilise un point-virgule pour noter une information mutuelle.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 63/162
LX X
LY
X
i=1 j=1
I(X; Y ) =
LX
X
i=1
LX X
LY
X
pX (i)
pX|Y (i|j)
i=1 j=1
on obtient
I(X; Y ) = H(X) H(X|Y ).
Linformation mutuelle moyenne mesure donc la rduction dincertitude sur X due la connaissance de Y . Lentropie conditionnelle H(X|Y ) peut tre considre comme lincertitude moyenne
concernant le symbole mis par la source aprs que le symbole produit au rcepteur ait t spcifi. Pour un canal peu bruit, lentropie conditionnelle est presque nulle. Linformation mutuelle
est alors maximale. Elle est pratiquement gale lentropie de la source. Linformation mutuelle
moyenne caractrise le transfert dinformation.
En dveloppant lquation (4.11), on obtient directement
I(X; Y ) = H(X) + H(Y ) H(X, Y ).
Lorsque Y = X, on a
I(X; X) = H(X).
Donnons lexpression de linformation mutuelle moyenne en mettant en vidence les probabilits conditionnelles pY |X (j|i) qui caractrisent le canal et les probabilits pX (i) associes aux
symboles de la source
I(X; Y ) =
LX X
LY
X
i=1 j=1
Comme
pY (j) =
LX
X
pY (j)
.
pY |X (j|i)
pX (k)pY |X (j|k)
k=1
on obtient
I(X; Y ) =
LX X
LY
X
PLX
pX (i)pY |X (j|i) log2
i=1 j=1
4.5.3
pY |X (j|i)
On appelle capacit dun canal le maximum de linformation mutuelle moyenne sur toutes
les distributions possibles de la source
C = max I(X; Y ).
pX (i)
La capacit dun canal est la plus grande quantit dinformation qui peut tre transmise travers
lui. Comme I(X; Y ) 0, I(X; Y ) = H(X) H(X|Y ) et que H(X|Y ) 0, on en dduit
C log2 L.
H(X)
C
N. MOREAU
Licence de droits dusage
12 mars 2009
page 64/162
alors une transmission avec une probabilit derreur aussi faible que lon veut est possible. On
montre galement que si
H(X)
>C
alors une transmission avec une probabilit derreur aussi faible que lon veut devient impossible.
4.5.4
1p e
x1
pe
y1
pe
x2
y2
1p e
N. MOREAU
Licence de droits dusage
12 mars 2009
page 65/162
4.6
4.6.1
Problme
Le thorme prcdent indique que si la capacit du canal est insuffisante compte tenu du dbit
entropique de la source, aucune transmission nest possible avec une probabilit derreur aussi
faible que lon veut mais cest, en fait, le cas pratique qui nous intresse. Au prix dune certaine
distorsion, on dsire comprimer un signal. Est-il possible, dans ce cas, dvaluer les performances
du systme ? Une fonction que lon appelle fonction dbit-distorsion permet de dterminer la plus
4.6.2
Fonction dbit-distorsion
Considrons une source discrte caractrise par lalphabet AX = {x1 xLX }. On rappelle
quentre lentropie H(X) de la source, si lon ne tient pas compte de sa mmoire ventuelle,
0 H(X)
H(X) log2 LX .
On nexamine ici que le cas le plus simple, savoir le codage dune source discrte sans mmoire.
Introduisons un nouvel alphabet AX = {
x1 x
LX } que lon appellera alphabet de reproduction.
Lopration de codage peut tre reprsente par le mme schma que celui de la figure 4.5 o on
remplace y k par x
k . On caractrise chaque branche par les probabilits de transition
pX|X
j |X(n) = xi }.
(j|i) = Prob {X(n) = x
Il faut, en plus, associer chaque branche une mesure de distorsion que lon supposera, pour
simplifier, ne comportant pas deffet de mmoire (ou danticipation). On parle alors de mesure
de distorsion par lettre et on la note d(xi , x
j ). Rappelons lexpression de linformation mutuelle
moyenne
PLX
LX
LX X
X
(j|k)
k=1 pX (k)pX|X
=
I(X; X)
pX (i)pX|X
.
(j|i) log2
pX|X
(j|i)
i=1 j=1
On cherche lalphabet de reproduction optimal. Cela veut dire que les degrs de libert sont,
dans ce problme, les probabilits conditionnelles. Les probabilits pX (i) sont imposes par la
source. Pour mettre ceci en vidence, on note linformation mutuelle moyenne
I(pX|X
) = I(X; X).
La distorsion moyenne a pour expression
)=
d(p
X|X
LX
LX X
X
pX X (i, j)d(xi , x
j )
i=1 j=1
)=
d(p
X|X
LX
LX X
X
i j
pX (i)pX|X
).
(j|i)d(x , x
i=1 j=1
N. MOREAU
Licence de droits dusage
12 mars 2009
page 66/162
4.6.3
Thormes
4.6.4
N. MOREAU
Licence de droits dusage
1
log2 2eD.
2
12 mars 2009
page 67/162
2
1
1
1
2
2
log2 2eX
log2 2eQ
= log2 X
2
2
2
2
Q
soit
2
2
Q
= X
22b .
(4.12)
h(X)
= lim
h(XN )
N N
avec
Z
h(XN ) =
pXN (x) log2 pXN (x)dx
RN
o pXN (x) est la densit de probabilit conjointe du vecteur alatoire compos de N symboles
2 et de matrice dautocorrlation
successifs. Pour une source gaussienne centre, de puissance X
normalise X , la densit de probabilit conjointe a pour expression
pXN (x) =
1
2 )N/2
(2X
det X
e(x
t 1 x)/2 2
X
X
On a donc
h(XN ) =
1
2
2 N
pX (x) log2 (2X
) det X dx
Z
log2 e +
+ 2
pX (x)xt 1
X xdx
2X
1
log2 e
2 N
h(XN ) =
log2 (2X
) det X +
E{xt 1
X x}.
2
2
2X
(4.13)
on obtient
1
2 N
log2 (2eX
) det X
2
1
2
h(X)
= lim log2 2eX
(det X )1/N
N 2
h(XN ) =
N. MOREAU
Licence de droits dusage
12 mars 2009
page 68/162
h(X)
= log2
2
Gp ()
cause de la relation (1.12). On peut en dduire que la borne infrieure de la puissance de lerreur
de quantification pour une source gaussienne avec mmoire est gale
2
Q
=
4.6.5
2
X
22b .
Gp ()
(4.14)
Gnralisation
Considrons la formule (4.12). On en dduit directement le nombre de bits minimum ncessaire pour quantifier une source avec un rapport signal sur bruit donn
b
2
1
log2 X
2 .
2
Q
(4.15)
La formule (4.15) admet une premire gnralisation comme on vient de le voir. On obtient la
formule (4.14). Dans la pratique, on a vu quil existe plusieurs mthodes permettant dexploiter
la corrlation (filtre blanchissant, quantification vectorielle, transformation ou bancs de filtres
...). La valeur asymptotique Gp () du gain de prdiction est uniquement fonction de la densit
spectrale SX (f ) de la source
R 1/2
1/2 SX (f )df
Gp () = R 1/2
.
(4.16)
loge SX (f )df
1/2
e
Les relations (4.14) et (4.16) permettent dobtenir le nombre de bits minimum ncessaire pour
quantifier une source corrle
Z
1 +1/2
SX (f )
b
log2
(4.17)
2 df.
2 1/2
Q
Une deuxime gnralisation est ncessaire car, dans le cadre du codage de signaux audiofrquence, on verra que ce nest pas la minimisation de la puissance du bruit de quantification qui
est le problme essentiel. On cherchera quel est le dbit ncessaire et suffisant pour que la densit
spectrale de puissance du bruit soit infrieure une densit spectrale de puissance limite fournie par un modle daudition. On montre [18] que lquation (4.17) se gnralise sous la forme
suivante
Z
1 +1/2
SX (f )
b
max[0, log2
] df .
(4.18)
2 1/2
SQ (f )
Intuitivement, cette formule se dduit directement de (4.17) ou de (4.15) en observant quil est
inutile de chercher quantifier le signal dans les bandes de frquences o SX (f ) SQ (f ) et que,
dans les bandes de frquence lmentaires [f, f + df [ vrifiant SX (f ) > SQ (f ), la densit de
bits ncessaire est donne par
db
1
SX (f )
log2 c(1)
.
df
2
SQ (f )
La thorie indique donc que, pour coder un signal, connaissant la densit spectrale de puissance du
0
signal et du bruit tolrable, il faut dterminer les bandes de frquence [fk , fk ] telles que SX (f )
SQ (f ) puis allouer les ressources binaires disponibles en fonction du rapport SX (f )/SQ (f ).
N. MOREAU
Licence de droits dusage
12 mars 2009
page 69/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 70/162
Deuxime partie
N. MOREAU
Licence de droits dusage
12 mars 2009
page 71/162
Chapitre 5
Introduction
5.1
0.4
90
0.3
80
0.2
70
Puissance [dB]
Amplitude
0.1
0.1
60
50
40
30
0.2
20
0.3
10
0.4
0
0.05
0.1
0.15
0.2
0.25
Temps [s]
0.3
0.35
0.4
0.45
0.5
4
Frquence [kHz]
Fig. 5.1 Exemple dun signal de parole (La bas ...) dans le domaine temporel ( gauche) et
dans le domaine frquentiel ( droite). Les chantillons qui ont permis la dtermination des deux
estimations spectrales sont compris entre les deux barres verticales du trac de gauche.
On distingue ensuite diffrents types de sons : des sons voiss, des sons non-voiss1 , des
plosives. La compression des sons voiss et non-voiss peut tre ralise dans de bonnes conditions
comme on le verra par la suite. Il nen sera pas de mme, par contre, pour les plosives et pour
les transitions entre phonmes.
La troisime caractristique, trs importante comme on le verra par la suite galement, est
lexistence dun modle de production simple et efficace. Pour sen convaincre examinons le trac
de droite de la figure 5.1 donnant deux estimations spectrales. La premire estimation est ralise
en calculant un priodogramme, cest--dire en prenant le module au carr de la transforme de
Fourier discrte de N chantillons. On admettra que ce calcul procure une bonne approximation
1
N. MOREAU
Licence de droits dusage
12 mars 2009
page 73/162
CHAPITRE 5. INTRODUCTION
5.2
Le trac de gauche de la figure 5.2 montre un signal de violon dune dure dune demiseconde. Comme pour le signal de parole, on remarque des variations de puissance instantane
90
0.15
80
0.1
70
0.05
60
Puissance [dB]
100
0.2
Amplitude
0.25
0.05
50
40
0.1
30
0.15
20
0.2
10
0.25
0
0.05
0.1
0.15
0.2
0.25
Temps [s]
0.3
0.35
0.4
0.45
0.5
10
12
Frquence [kHz]
14
16
18
20
Fig. 5.2 Exemple dun signal de violon dans le domaine temporel ( gauche) et dans le domaine
frquentiel ( droite).
importantes. Elles peuvent tre considrables, jusqu 90 dB, et pas uniquement pour des signaux
trs percussifs. Cela peut tre le cas par exemple dans une symphonie de Mahler entre des
passages pianissimo et des passages fortissimo ! La reprsentation spectrale sur le trac de droite,
entre 0 et 20 kHz (ce signal est chantillonn 44.1 kHz), traduit le timbre de linstrument. Les
partiels qui sont les composantes spectrales prdominantes peuvent tre relies harmoniquement
ou pas. Dans le cas du violon, on peut observer que cest approximativement le cas. Ce quil faut
surtout noter cest quil nexiste plus de modle de production simple mettre en uvre. Les
sons musicaux sont produits de faons trop diffrentes.
5.3
Normes et recommandations
5.3.1
Tout au moins jusqu 2 kHz environ. Lcart entre les impulsions qui est, dans cet exemple, environ gal
200 Hz, est appel la frquence fondamentale, la frquence de pitch.
3
mais qui aurait dj besoin dtre actualis !
N. MOREAU
Licence de droits dusage
12 mars 2009
page 74/162
Tous les dbits indiqus dans ce paragraphe correspondent au codage de source. Il faut rajouter approximativement le mme dbit pour le codage du canal, par exemple 9,8 kbit/s dans le cas du GSM, le dbit total tant
de 22,8 kbit/s.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 75/162
CHAPITRE 5. INTRODUCTION
Autres applications
Dans dautres applications, par exemple pour des communications scurises entre organismes
inter-gouvernementaux, pour des applications militaires (norme OTAN), pour des communications avec des mobiles par satellite (MSAT et INMARSAT), on rclame un dbit faible au prix
dune dgradation importante du signal. Le dpartement de la Dfense amricain (US DoD) a
standardis en 1991 un codeur 4,8 kbit/s, appel FS 1016, pour remplacer lancien standard
fdral FS 1015 ou LPC10 de qualit trs mdiocre dfini en 1976.
5.3.2
Lintrt de transmettre un signal de parole en bande largie (fe =16 kHz) est dobtenir un
signal de parole reconstitu plus net et plus intelligible que dans le cas de la bande tlphonique.
Les applications sont les confrences audiovisuelles, le visiophone, la tlphonie sur haut-parleurs.
Une norme UIT-T 64 kbit/s dite G.722 a t normalise en 1986. Ce codeur est bas sur
un codage en deux sous-bandes contenant un codeur MICDA (norme G.721) dans chaque
sous-bande. Pour pouvoir transmettre simultanment des donnes sur le mme canal, un
dbit rduit 56 kbit/s est galement possible.
Un nouveau codeur (G.722.1) a t dfini en 1999 pour des dbits de 24 et 32 kbit/s.
Une nouvelle normalisation UIT-T en 2002, le codeur G.722.2, a t au pralable accept par
lorganisme de normalisation 3GPP sous la dnomination de AMR-WB. Une description
trs complte est disponible dans [25].
5.3.3
Le format de rfrence pour le signal de musique est habituellement celui du disque compact : le signal est chantillonn 44.1 kHz puis quantifi scalairement sur 16 bits. Le dbit
correspondant est alors de 705 kbit/s (en mono, 1.4 Mbit/s en stro).
Concernant le support, on peut noter quil est fragile, il peut tre ray, et que, par consquent,
les bits doivent tre protgs. Deux tages de codes correcteurs de type Reed Solomon entranant
un dbit de 2.9 Mbit/s ont t introduits. Un CD peut tre interprt comme un canal de
transmission ayant un dbit de 4.3 Mbit/s.
On peut noter galement quil existe dautres supports [26] : le Super Audio CD (SACD)
et le DVD-Audio. Le premier est le rsultat de lchantillonnage du signal 2.82 MHz sur 1 bit
(modulation sigma/delta), le second correspond une frquence dchantillonnage de 48, 96 ou
192 kHz et une quantification sur 24 bits. Ces deux supports, actuellement en comptition,
permettent de stocker de 2 6 canaux. Ils entranent approximativement la mme qualit (une
amlioration de la dynamique en puissance de lordre dune vingtaine de dB relativement celle
du CD) et la mme capacit (de lordre de 5 Go). Quen sera-t-il des nouveaux supports annoncs,
le HD-DVD et le Blu-Ray Disc ?
N. MOREAU
Licence de droits dusage
12 mars 2009
page 76/162
MPEG-1
La premire application ncessitant une opration de compression a t celle de la diffusion
de signaux audio sous forme numrique5 (DAB). Ces tudes ont abouti en 1992 la partie audio
de la norme internationale ISO/CEI 11172 [27], plus connue sous le nom de MPEG-1 Audio.
Des deux codeurs en finale, le codeur MUSICAM et le codeur ASPEC, cest le premier qui a
t slectionn. Le codeur est compos de trois couches (layers) de qualit quivalente pour
des dbits de 192, 128 et 96 kbit/s mais de complexit croissante. Le clbre format MP3 est
en ralit le MPEG-1 layer 3. Bien quil corresponde la complexit la plus importante, cette
complexit est considre maintenant comme trs raisonnable.
MPEG-2
Dans le domaine de laudio, il ny a pas une trs grande diffrence entre le codeur MPEG-1 et le
codeur MPEG-2 normalis en 1994 (ISO/IEC 13818) pour des applications de type TVHD, DVD,
minidisque6 . Le second est une extension multi-voies (5.1) du premier. Il introduit beaucoup plus
de souplesse dans le choix des frquences dchantillonnage, des dbits. Ce nouveau codeur a la
proprit dtre backward compatible cest dire quun dcodeur MPEG-1 a la possibilit
dinterprter un flux MPEG-2 ce qui est plus inhabituel que dtre forward compatible lorsque
un dcodeur MPEG-2 peut aussi dcoder un flux MPEG-1. Cette proprit est importante dans
un rseau de diffusion car sil est facile de basculer dun codeur un autre lmetteur par contre
on ne peut pas demander des millions de tlspectateurs de changer brutalement de dcodeurs.
Cette compatibilit arrire est pnalisante en terme de performance du systme de compression
si bien que des nouvelles tudes ont t lances se librant de cette contrainte et ont abouti
en 1997 une nouvelle normalisation [28]. Il sagit du codeur AAC (Audio Advanced Coder)
qui assure une qualit transparente avec des taux de compression plus levs. Il est rput
comme tant transparent au dbit de 384 kbit/s dans la configuration 5.1, ce qui correspond
approximativement une transparence 64 kbit/s en mono. Cest le codeur le plus performant
lheure actuelle, cest le codeur qui est utilis dans les iPod.
Signalons quil existe dautres codeurs propritaires, par exemple le Dolby AC3 paru en
1995, le Sony ATRC3 pour le minidisque (qui a disparu), etc.
MPEG-4
MPEG-4 est un standard beaucoup plus ambitieux. Il a pour vocation de reprsenter des
sons (parole et musique) dorigine naturelle (issus dun microphone) ou dorigine synthtique
(fabriqus par une machine). Il a aussi pour vocation de dfinir des objets sonores susceptibles
dtre manipuls de faon former des scnes sonores. La premire normalisation a eu lieu en
1998 [29]. Elle a t ensuite complte en 1999. Cette normalisation a subi plusieurs rvisions
depuis. La prsentation qui suit est issue du Draft International Standard datant de 2005 [30].
Pour des sons dorigine naturelle, MPEG-4 ne cherche pas fournir des codeurs assurant
ncessairement la transparence ou mme proches de la transparence comme pour les standards
MPEG-1 et MPEG-2. Il dfinit une famille de codeurs de 2 plusieurs centaines de kbit/s assurant
la meilleure qualit possible pour un dbit donn. En dessous de 64 kbit/s et a fortiori pour des
dbits trs faibles, il ne faut pas rver : la qualit peut tre raisonnable, on parle alors de qualit
5
On remarquera que cette application, tudie ds le milieu des annes 80, na toujours pas vritablement t
exploite !
6
Les professionnels de laudio, au dbut des annes 80, semblent avoir t trs rticents lintroduction de
traitements numriques des signaux de musique, rticence qui a progressivement cde cause de la souplesse
et des performances de ces techniques. Ils, en particulier les gens de tlvision, se sont rallis aux techniques de
compression la fin des annes 80.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 77/162
CHAPITRE 5. INTRODUCTION
intermdiaire, ou mme mdiocre. MPEG-4 dfinit aussi une famille de codeurs hirarchiques
(scalables) pour avoir la possibilit de modifier le dbit en cas de congestion dans un rseau.
Le train binaire est construit en plusieurs couches de telle sorte que le dcodeur puisse traiter
tout ou une partie du train binaire (au dtriment de la qualit).
MPEG-4 fournit une boite outils regroupant plusieurs algorithmes de compression :
De 2 24 kbit/s pour des signaux de parole en bande tlphonique ou en bande largie,
deux techniques de codage sont utilises.
Le codeur MPEG-4 HVXC (Harmonic Vector eXcitation Coding) opre des dbits
compris entre 2 et 4 kbit/s. Il traite des signaux de parole en bande tlphonique. Il
accepte des manipulations de type time-stretching (modification de la dure dun enregistrement sans modification du pitch) permettant, par exemple, de consulter de larges
bases de donnes de parole de faon rapide.
Le codeur MPEG-4 CELP prend le relais partir de 4 kbit/s. Il permet de traiter des
signaux de parole soit en bande tlphonique, soit en bande largie. Pour des signaux
de parole en bande tlphonique, cest un codeur CELP standard trs comparable au
codeur UIT-T G.729. Pour des signaux de parole en bande largie, un premier codage
bas sur lexploitation dun modle de production comme prcdemment traite la bande
de frquences [04] kHz. Un second codage bas sur lexploitation dun modle daudition
comme dans un codeur de type MPEG-1 ou MPEG-2 se charge de la bande [4 7] kHz.
De 6 plusieurs centaines de kbit/s pour des signaux de musique monophoniques,
strophoniques ou multicanaux (gnralement au format 5.1), le codeur MPEG-4 AAC
est presque une recopie du codeur MPEG-2 AAC. Pour des dbits suprieurs 64 kbit/s par
canal on sait que ce codeur vrifie le critre de transparence. Pour des dbits infrieurs, il
cherche la meilleure qualit pour un dbit donn. Il existe plusieurs variantes de ce codeur :
la version Low Delay pour des communications interactives,
une variante dite BSAC (Bit Slice Arithmetic Coding) pour avoir une scalabilit de
granularit trs fine (1kbit/s),
une version TWIN-VQ (Transform Weighted INterleave-Vector Quantization) assurant
de meilleures performances que le codeur AAC entre 6 et 16 kbit/s.
Pour gagner en dbit sans toucher la qualit, un outil rcent a t rajout. Il sagit de
loutil SBR (Spectral Band Replication) qui est le rsultat de plusieurs travaux comme
par exemple [31]. Dans cette mthode, la contribution hautes frquences du signal de
musique est reconstruite partir du spectre basses frquences avec trs peu dinformations
additionnelles. Ainsi on peut obtenir un dbit de 24 kbit/s en utilisant 22 kbit/s pour
les basses frquences (le codeur AAC codant un signal sous chantillonn par un facteur
2) et 2 kbit/s pour reconstruire les hautes frquences. Les performances du codeur AAC
sont alors nettement amliores faible dbit. Ce codeur est un candidat pour plusieurs
normes : Digital Radio Mondiale7 , 3GPP, DVB.
Dans le cadre des signaux de musique il faut aussi rajouter dans la liste prcdente les
codeurs paramtriques.
Le codeur MPEG-4 HILN (Harmonic and Individual Line plus Noise coding) code du
signal de musique dans la gamme des dbits 4 16 kbit/s. Il utilise une reprsentation
du signal base sur des sinusodes, des groupes de sinusodes relies harmoniquement et
des composantes de bruit. Les paramtres propres chaque objet sont cods individuellement. Cela procure une grande souplesse la restitution. Comme pour le codeur
de parole HVXC il accepte des manipulations de type time-stretching.
Cette ide est gnralise dans le cas du codeur MPEG-4 SSC (SinuSoidal Coding) qui
dcompose le signal en davantage dobjets : des sinusodes, des transitoires, du bruit
et galement une image spatiale dans le cas de signaux stro ou mme multicanaux
7
N. MOREAU
Licence de droits dusage
12 mars 2009
page 78/162
comme on le verra au chapitre 8. Il est capable de coder un signal pleine bande dbit
rduit avec une trs bonne qualit.
Lorsque le codeur MPEG-4 AAC est utilis avec les outils SBR et Parametric stereo il
prend le nom de MPEG-4 AAC+ ou HE-AACv2 (High Efficiency).
Pour terminer il faut citer le codeur MPEG-4 SLS (Scalable Lossless coding). Il sagit de
codage sans perte ou scalable du dbit offert par le codeur AAC jusquau sans perte avec
une granularit assez fine. On nest donc plus dans la gamme de dbit prcdente. Les
dbits concerns sont compris entre 64 et 705 kbit/s pour un signal monophonique. On
notera que le codage sans perte nassure pas un taux de compression bien lev, de lordre
de 2. La limite infrieure pour le dbit est donc de lordre de 300 kbit/s pour du sans perte.
Pour des sons dorigine synthtique, on trouve :
Un algorithme de synthse de la parole (synthse Text-to-Speech) qui est un outil assez
basique pour des applications multi-mdia. Les informations de parole transmises sont soit
des lments de lalphabet phontique international, soit du texte crit dans nimporte quel
langage.
Un langage pour engendrer de la musique. Il sagit du langage SAOL (Structured Audio
Orchestra Language). MPEG-4 permet dexploiter le format MIDI.
MPEG-4 standardize la faon de dcrire une scne. Il dfinit lendroit dans un systme
de coordonns o se trouve (se dplace) un objet sonore (navigation dans une scne). Il
dcrit galement la faon dont est modifie lapparence de chaque objet. Il peut sagir de
modifications prosodiques pour de la parole ou de rverbration et de spatialisation pour
de la musique.
Le dveloppement prcdent, ax essentiellement dans une optique compression, laisse sous silence de nombreuses potentialits de la norme MPEG-4. Pour juste suggrer ces potentialits,
on reprendra un exemple cit dans [30].
Supposons que, dans une application particulire, on dsire transmettre avec une bonne qualit le son cr par une personne parlant dans un environnement rverbrant avec un fond musical
stro. Dans une approche traditionnelle, il suffirait dutiliser un codeur audio fonctionnant
32 kbit/s par canal par exemple. Avec MPEG-4 on peut reprsenter le signal global comme la
runion de plusieurs objets : le son prononc par une personne passant au travers dun rverbrateur auquel on additionne un extrait de musique produit de faon synthtique. On transmet
la voix en utilisant loutil CELP un dbit de 16 kbit/s, on synthtise la musique en utilisant
loutil SA un dbit de 2 kbit/s et on rajoute 1 ou 2 kbit/s pour dcrire laspect stro et le
rverbrateur. En conclusion, qualit quivalente, lapproche MPEG-4 oriente objets cote
moins de 20 kbit/s alors quune approche plus traditionnelle demanderait 64 kbit/s. De plus la
personne qui coute au rcepteur peut vouloir ncouter que la personne seule ce que permet
seulement lapproche MPEG-4.
MPEG-7, MPEG-21
Les travaux de MPEG-7 ne traitent pas des problmes de compression. Il sagit dindexation.
MPEG-21 axe ses travaux sur des problmes lis la scurit de contenus multi-mdia. Les
techniques employes sont, par exemple, les techniques de tatouage.
5.3.4
Evaluation de la qualit
La qualit des signaux audio reconstruits (parole ou musique) ne peut pas tre apprcie
laide de critres objectifs du type rapport signal bruit. Comme on le verra plus particulirement lorsque lon tudiera les codeurs de musique, puissances de bruit (due la compression)
N. MOREAU
Licence de droits dusage
12 mars 2009
page 79/162
CHAPITRE 5. INTRODUCTION
quivalentes, certains codeurs entranent une bonne qualit et dautres une mauvaise. La forme
spectrale du bruit joue un rle trs important dans sa perception. On est donc oblig de se contenter de tests subjectifs (des coutes) mais ces tests subjectifs sont dits formels car les protocoles
sont dfinis trs prcisment.
Pour des codeurs de parole de qualit intrinsquement mdiocre, on ralise des tests dintelligibilit : mthode de jugement par catgories absolues ACR (Absolute Category Rating), par
catgories de dgradation DCR (Degradation Category Rating), etc.
Pour les codeurs audio, on veut gnralement quils soient de trs bonne qualit. On exige
alors la transparence. Pour pouvoir comparer des codeurs entre eux, on emploie la mthode dite
doublement aveugle triple stimulus et rfrence dissimule. Il sagit de la recommandation
UIT-R BS.1116. On fait couter de jeunes (au del de 30 ans, loreille se dgrade) musiciens (on
rclame des oreilles exerces) des enregistrements courts (entre 5 et 10 secondes) de morceaux
de musique slectionns (existence dune base de donnes MPEG). Chaque enregistrement est
rpt 3 fois. On offre deux possibilits : soit la squence A/B/A soit la squence A/A/B o A
reprsente le signal original et B le signal cod/reconstruit. La premire rponse rclame est la
suivante : B se trouve-t-il en 2me ou en 3me position ? On rclame aussi une opinion (une note
entre 0 et 5) sur B : le bruit d la compression est-il totalement inaudible (5), trs lgrement
gnant (4), un peu gnant (3), gnant (2), mauvais (1) ou trs mauvais (0) ? Un traitement
statistique est ensuite ralis permettant une comparaison objective entre codeurs.
Pour des codeurs audio de dbits compris entre 20 et 64 kbits/s o on est oblig de se
contenter dune qualit intermdiaire ou acceptable, cest la mthode MUSHRA (MUlti Stimulus test with Hidden Reference and Anchor) qui est gnralement employe. Il sagit de la
recommandation UIT-R BS.1534-1.
Notons quil existe tout de mme des tests objectifs qui peuvent donner des rsultats significatifs. On peut par exemple citer lalgorithme PEAK au coeur de la recommandation UIT-R
BS.1387-1 [32].
N. MOREAU
Licence de droits dusage
12 mars 2009
page 80/162
Chapitre 6
A dvelopper :
Dbit de rfrence : fe = 8 kHz, quantification sur 12 bits 96 kbit/s
Codeur MIC 64 kbit/s : quantification scalaire non uniforme (cf 1.2.3)
Codeur MICDA 32 kbit/s : quantification scalaire prdictive en boucle ferme (cf 1.3.5)
6.2
Ce codeur ne prsente plus aucun intrt pratique. Par contre, il prsente un grand intrt
pdagogique car il est la base des codeurs de parole actuels.
Considrons le schma de la figure 6.1 o x(n) est le signal de parole original, y(n) le signal
en sortie du filtre danalyse, y(n) lentre du filtre de synthse et x
(n) le signal de parole
reconstruit. Le codeur LPC10 calcule les coefficients du filtre
A(z) = 1 + a1 z 1 + aP z P
partir du signal original puis dtermine lentre du filtre de synthse de telle sorte que la
qualit du signal reconstruit soit la meilleure possible tout en respectant la contrainte de dbit
(2.4 kbit/s). Il exploite des fentres danalyse dune vingtaine de ms en supposant le signal
localement stationnaire dans chacune de ces fentres. On notera par la suite
x = [x(0) x(N 1)]t
les N = 160 chantillons (pour du signal de parole chantillonn fe = 8 kHz) dans chacune de
ces fentres.
x(n)
y(n)
A(z)
LPC
1
A(z)
a
Emetteur
y(n)
Flux binaire
Q
x(n)
a
Canal
Rcepteur
N. MOREAU
Licence de droits dusage
12 mars 2009
page 81/162
6.2.1
On sappuie sur la thorie de la prdiction linaire. On rappelle que la puissance de lerreur de prdiction sexprime en fonction des coefficients du filtre prdicteur et de la fonction
dautocovariance rX (k) du processus X(n) sous la forme
2
Y2 = X
+ 2rt a + at Ra
a1
rX (1)
rX (0)
..
.
.
..
..
..
a= . r=
R=
.
aP
rX (P )
rX (P 1)
rX (P 1)
..
.
.
rX (0)
En crivant que la drive de Y2 relativement au vecteur a est gale au vecteur nul, on obtient
les quations normales
Raopt = r
et la puissance minimale
2
(Y2 )min = X
+ rt aopt .
On rappelle que le choix particulier des bornes de la sommation qui impose que lon utilise
strictement les donnes uniquement dans lintervalle [0, N 1] ait d au fait que lon obtient une
proprit pratique trs importante : on assure ainsi la stabilit du filtre de synthse. Une fois
dtermins, ces coefficients doivent tre quantifis puis les mots de code transmis ce qui permet
de reconstruire au rcepteur les coefficients du filtre de synthse.
6.2.2
La thorie de la prdiction linaire permet daffirmer que si x(n) peut tre considr comme la
ralisation dun processus alatoire AR dordre P0 , alors il existe un filtre de fonction de transfert
A(z) totalement blanchissant ds que son ordre P devient suprieur ou gal P0 . Dans ce cas,
on peut crire que la densit spectrale de puissance de lerreur de prdiction est gale
SY (f ) = Y2 .
Comme on sait aussi que
SY (f ) = |A(f )|2 SX (f ),
on en dduit que
SX (f ) =
Y2
.
|A(f )|2
Supposons que lon choisisse comme entre du filtre de synthse une ralisation quelconque dun
bruit blanc1 de puissance Y2 = Y2 . On voit alors que lon a la proprit suivante au niveau des
densits spectrales de puissance
SX (f ) =
1
Y2
= SX (f ).
|A(f )|2
N. MOREAU
Licence de droits dusage
12 mars 2009
page 82/162
6.2.3
Les tracs de la figure 6.2 sont relatifs un son vois o lon montre aussi bien dans le
domaine temporel ( gauche) que dans le domaine frquentiel ( droite) le signal original x(n)
et lerreur de prdiction y(n). Le filtre A(z) nest manifestement pas totalement blanchissant.
Il reste dans le signal y(n) une priodicit assez marque, visible aussi bien dans le domaine
temporel que dans le domaine frquentiel. Pendant une dure de 32 ms, on a approximativement
7.5 priodes. La frquence fondamentale est donc de lordre de f0 7.5/0.032 250 Hz. On
observe bien dans le domaine frquentiel un spectre de raies avec une frquence fondamentale de
250 Hz (correspondant un locuteur fminin) et les diffrents harmoniques.
100
0.4
90
0.3
80
0.2
70
0.1
S (f) [dB]
60
50
0.1
40
30
0.2
20
0.3
10
0.4
0.12
0.125
0.13
0.135
Temps [s]
0.14
0.145
0.15
0.5
1.5
2
2.5
Frquences [kHz]
3.5
+
X
(n mT0 + )
m=
est un bon candidat. Dans cette expression, (n) est le symbole de Kronecker qui vaut 1 si n
= 0, 0 sinon, T0 = fe /f0 est la priode fondamentale exprime en nombre dchantillons et
une valeur appartenant {0, , T0 1} traduisant notre incertitude sur la phase. Le signal
y(n) peut tre alors interprt comme la ralisation dun processus alatoire Y (n) dont il est
intressant de dterminer les proprits.
On remarque que la moyenne a pour expression
E{Y (n)} =
TX
0 1
=0
N. MOREAU
Licence de droits dusage
+
1 X
(n mT0 + ) =
T0 m=
T0
12 mars 2009
page 83/162
+
X
(n mT0 + )
m=
vaut
2
rY (k, n) = E{
+
X
+
X
(n k lT0 + )}
l=
(n mT0 + )} =
m=
2
T0
si k est un multiple de T0 , 0 sinon. La moyenne et la fonction dautocorrlation tant indpendantes de linstant dobservation n, le processus Y (n) est stationnaire de moyenne 1/T0 et de
fonction dautocorrlation
+
2 X
rY (k) =
(k mT0 ).
T0 m=
La densit spectrale de puissance SY (f ) est la transforme de Fourier temps discret de rY (k).
On a donc
SY (f ) =
+
2 X
T0
+
X
(k mT0 ) exp(j2f k) =
k= m=
+
2 X
exp(j2f mT0 )
T0 m=
ou de faon quivalente
SY (f ) = 2
+
X
(f
m=
m
)
T0
en se rappelant quun train dimpulsions de dirac admet une sorte de dveloppement en srie de
Fourier et que lon a donc la formule gnrale
+
X
+
1 X j2 n t
(t nT ) =
e T .
T
n=
n=
Comme le trac de droite de la figure 6.2 a t obtenu partir dun nombre fini de donnes
observes, on voit sur ce trac le lobe principal de la transforme de Fourier temps discret
de la fentre de pondration. Dans cette simulation, on a pris une fentre de Hamming de dure
2N . Le lobe principal a pour largeur 4fe /2N ce qui correspond 100 Hz, valeur cohrente avec
celle observe sur le trac.
Le filtrage de y(n) par le filtre dont le module au carr de la rponse en frquence est
reprsent en noir sur la figure 6.2 donnera bien un signal dont la densit spectrale de puissance
se superposera avec le trac en bleu de cette figure.
6.2.4
Le codeur LPC10 doit dterminer sil sagit dun son vois ou non vois dans la fentre
danalyse courante. Cette dtermination se fait en ralisant au pralable une estimation de la
fonction dautocorrlation normalise de lerreur de prdiction y(n) pour de nombreuses valeurs
de k. Si cette fonction dcrot vers 0 rapidement (comparaison un seuil), on en dduit que le
son est non vois. Dans le cas dun signal vois, cette fonction est presque priodique de priode
T0 ce qui fournit un estimateur de la priode fondamentale. Dans la pratique, il faut prendre
quelques prcautions car un algorithme rudimentaire a tendance dterminer comme frquence
fondamentale, le 2me ou mme le 3me harmonique ... Dans la pratique, il faudra assurer des
transitions pas trop brutales lorsque lon passera dune fentre danalyse la suivante. Il faudra,
en particulier, faire en sorte que le choix de (information non code) entrane une transition
douce entre les peignes successifs.
2
N. MOREAU
Licence de droits dusage
12 mars 2009
page 84/162
6.2.5
Contrainte de dbit
6.3
Le codeur CELP
6.3.1
Introduction
La plupart des codeurs de parole en bande tlphonique, spcialement dans la gamme des
dbits de 4.8 16 kbit/s, sont des codeurs de type CELP (Code Excited Linear Predictive
coder).
Le principe de ces codeurs a t introduit par B. Atal au dbut des annes 80. La premire
ide de base de B. Atal [33] a t de proposer un nouveau modle pour lexcitation du filtre de
synthse de la forme
K
X
y(n) =
gk (n nk )
k=1
[x(n) x
(n)]2 .
n=0
N. MOREAU
Licence de droits dusage
12 mars 2009
page 85/162
Min || x x ||
L1
r(m)
1
x(m)
N1
A(z)
g(m)
i(m)
x(n)
W(z) =
A(z)
A(z/)
y(n)
Y0
.
.
.
Y N-1
Formes
Regle du
plus proche
voisin
Modelisation
1
A(z/)
Gains
Inspection
dans
une table
Y0
.
.
.
Y N-1
y(n)
Coefficients
1 = A(z/)
W(z)
A(z)
x(n)
1
A(z/)
Fig. 6.4 Autre schma de principe du codeur CELP (avec fonction de pondration).
N. MOREAU
Licence de droits dusage
12 mars 2009
page 86/162
6.3.2
Le premier traitement consiste dterminer puis coder les coefficients du filtre utilis
la synthse. Une modlisation par prdiction linaire est quasi systmatiquement utilise. Le
choix de lordre de prdiction P rsulte dun compromis. Il doit tre suffisamment lev pour
reproduire correctement la structure formantique du signal de parole : un ordre 8 est ncessaire
pour crer quatre pics dans le spectre et on sait que le signal de parole comporte gnralement
quatre formants. Inversement, lordre doit tre le plus faible possible pour conomiser le dbit.
On choisit donc habituellement P compris entre 8 et 16.
Les coefficients du filtre doivent tre cods. Dans la pratique, on ne quantifie pas directement
les coefficients a1 aP du filtre A(z) car ils ont de mauvaises proprits de codage. On prfre
quantifier, de faon scalaire ou vectorielle, les coefficients k1 kP du filtre en treillis correspondant. Ces coefficients peuvent tre calculs partir des coefficients de corrlation normaliss
1 P en utilisant lalgorithme de Levinson. Ils possdent la bonne proprit dtre toujours
compris entre 1 et +1 (si le filtre est stable) mais la distribution statistique de ces coefficients
nest pas du tout uniforme dans cet intervalle. Comme il est plus simple de quantifier un scalaire prsentant une distribution relativement uniforme, on peut faire subir ces coefficients une
transformation non-linaire de la forme
Ki = log
1 + ki
.
1 ki
On sait, en effet, que, lorsque les ples de la fonction de transfert 1/A(z) se rapprochent du
cercle unit ou, de faon quivalente, lorsque les ki prennent des valeurs voisines de 1, la rponse
en frquence 1/A(f ) prsente un maximum de plus en plus accentu. On appelle ces nouveaux
coefficients les Log Area Ratios.
Il existe une quatrime reprsentation de ces coefficients quivalente aux trois reprsentations
prcdentes possdant des proprits de codage encore meilleures. Il sagit des Line Spectrum
Pairs [35]. On en donne une prsentation trs succincte. A partir du polynme dordre P
A(z) = 1 +
P
X
ai z 1
i=1
B1 (z) = (1 + z
(1 2 cos 2i1 z 1 + z 2 )
i=1
P/2
B2 (z) = (1 z 1 )
(1 2 cos 2i z 1 + z 2 ).
i=1
N. MOREAU
Licence de droits dusage
12 mars 2009
page 87/162
B1 (z) =
(1 2 cos 2i1 z 1 + z 2 )
i=1
(P 1)/2
B2 (z) = (1 z
(1 2 cos 2i z 1 + z 2 ).
i=1
B1 (z) + B2 (z)
.
2
La quantification des coefficients i doit conserver les ingalits prcdentes pour maintenir la
stabilit du filtre de synthse. Si lon quantifie la diffrence entre deux coefficients successifs, ces
relations sont automatiquement conserves.
6.3.3
Modlisation de lexcitation
A(z)
A(z/ )
L1
r(m)
Min || . ||
1
x(m)
N1
g(m)
A(z)
j(m)
N. MOREAU
Licence de droits dusage
12 mars 2009
page 88/162
Y
z
A( ) = 1 + a1 z 1 + + aP P z P =
(1 pi z 1 ).
i=1
Le module de la rponse en frquence du filtre 1/A(z/) prsente des pics moins accentus
que celui du filtre 1/A(z) puisque les ples du filtre 1/A(z/) sont ramens vers le centre du
cercle unit par rapport ceux du filtre 1/A(z). Le module de la rponse en frquence du filtre
W (z) = A(z)/A(z/) a donc la forme souhaite comme le montre le trac centr grosso modo
0 dB de la figure 6.6.
100
80
60
40
20
20
0.5
1.5
2.5
3.5
Fig. 6.6 Rponses en frquences des filtres 1/A(z), 1/A(z/) et A(z)/A(z/) pour un son vois
dont le spectre est visualis en pointills. Dans cet exemple = 0.8.
Le diagramme donnant le principe de la modlisation devient celui de la figure 6.7. Ce diax(m)
A(z)
p(m)
A(z/ )
Min || . ||
L1
y(m)
N1
g(m)
1
A(z/ )
p(m)
j(m)
N. MOREAU
Licence de droits dusage
12 mars 2009
page 89/162
entre de la forme
y =
K
X
gk cj(k)
k=1
o K est le nombre de vecteurs qui composent cette excitation, lordre de modlisation de lexcitation (habituellement K = 2 ou 3). A priori, chaque vecteur peut tre issu dun dictionnaire
distinct comme on le verra par la suite mais on supposera pour commencer que ces K vecteurs
sont issus du mme dictionnaire C = {c0 cL1 }. Le problme consiste donc chercher K
vecteurs cj(1) cj(K) dans un dictionnaire dexcitation et K gains g1 gK de faon ce que le
vecteur y filtr par le filtre perceptuel 1/A(z/) donne le vecteur modlis p
le plus ressemblant
possible au vecteur p.
Dictionnaire filtr
La forme du modle de lexcitation tant fixe, il faut, maintenant, dterminer la valeur
numrique des paramtres. On minimise ||p p||2 relativement aux indices j(1) j(K) et aux
gains g1 gK . Il faut donc mettre en vidence dans le critre ce qui est connu, cest--dire ce
qui a pu tre calcul prcdemment, et ce qui dpend explicitement des inconnues j(k) et gk . Le
signal perceptuel modlis a pour expression
p(n) =
h(i)
y (n i) pour n = 0 N 1
i=0
n
X
h(i)
y (n i) +
i=0
h(i)
y (n i).
i=n+1
Le premier terme est a priori inconnu mais le deuxime terme est connu puisquil fait intervenir
y(n) pour n < 0 cest dire lexcitation du filtre de synthse dtermine dans la fentre danalyse
prcdente. Finalement le signal perceptuel modlis scrit
p(n) =
K
X
gk
n
X
h(i)c
(n i) +
i=0
k=1
On note
j(k)
h(i)
y (n i).
i=n+1
X
X
p = [
h(i)
y (i)
h(i)
y (N 1 i)]t
0
i=1
i=N
f (n) =
n
X
h(i)cj (n i)
i=0
cj
le rsultat du filtrage du vecteur par le filtre perceptuel partant de conditions initiales nulles.
Cette opration de filtrage peut tre caractrise par lexpression matricielle
h(0)
0
.
.
0
h(1)
h(0) .
.
.
cj = Hcj .
fj =
.
.
.
.
0
h(N 1)
.
. h(1) h(0)
N. MOREAU
Licence de droits dusage
12 mars 2009
page 90/162
Le nouveau schma de principe devient celui de la figure 6.8. On met en vidence le dictionnaire dexcitation C et le dictionnaire filtr F , tous les deux composs des L vecteurs nots
respectivement cj et f j .
x(m)
r(m)
A(z)
p(m)
p 0 (m)
Min || p p ||
1
C
N1
1
A(z/ )
A(z/ )
+
p(m)
Fig. 6.8 Modlisation du signal perceptuel par K vecteurs issus du dictionnaire filtr.
On peut faire la remarque suivante. Dans toutes les expressions prcdentes, on a suppos,
implicitement, que les filtres mis en jeu taient invariants. En fait, ils sont simplement localement
invariants. Le vecteur p0 est donc la rponse libre du filtre dont les coefficients sont caractristiques de la fentre courante. On ne touche pas au vecteur dtat du filtre lorsque lon passe
dune fentre lautre.
Minimisation au sens des moindres carrs
A partir de maintenant, pour simplifier les notations, on appelle p le vecteur perceptuel auquel
on a enlev la contribution provenant des fentres prcdentes. Le problme de la dtermination
de lexcitation dans un codeur CELP peut tre exprim de la faon suivante. Connaissant p et
f 0 f L1 , trouver les indices j(1) j(K) et les gains g1 gK de faon minimiser
D = ||p p||2 = ||p
K
X
gk f j(k) ||2 .
k=1
N. MOREAU
Licence de droits dusage
12 mars 2009
page 91/162
< f j , p >2
< fj, fj >
N. MOREAU
Licence de droits dusage
12 mars 2009
page 92/162
k1
X
gi f j(i)
i=1
gk =
< f j , pk >2
< fj, fj >
i=1
par rapport aux P paramtres inconnus ai . Il sagit dune prdiction dite court terme puisque,
pour prdire la valeur du signal lindice n, on utilise les P chantillons prcdents. Une fois le
calcul ralis par simple rsolution du systme linaire obtenu en drivant D1 par rapport aux
P paramtres inconnus, on filtre le signal x(n) par le filtre de fonction de transfert A(z) dordre
P . On obtient le signal rsiduel court terme y(n). La visualisation de ce signal, spcialement
pour des sons voiss, montre que toute la redondance place dans le signal de parole na pas
t extraite. Il reste une certaine priodicit comme le montre les tracs de la figure 6.9. Cette
priodicit correspond, physiologiquement, la priode de vibration des cordes vocales. On peut
chercher caractriser cette information en introduisant deux nouveaux paramtres b et Q puis
en minimisant lnergie dune nouvelle erreur de prdiction
X
D2 =
[y(n) by(n Q)]2
n
par rapport ces deux paramtres inconnus. On parle alors de prdiction long terme. On
remarquera que cette minimisation ne peut pas tre ralise comme la prcdente puisque, pour
D1 , P est fix, alors que pour D2 , Q est un paramtre dterminer.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 93/162
0.3
0.2
0.1
0.1
0.2
0.3
0.4
0.12
0.125
0.13
0.135
Temps [s]
0.14
0.145
0.15
Fig. 6.9 Signal de parole x(n) et signal rsiduel y(n) pour un locuteur fminin.
Minimisation en boucle ouverte
Pour calculer les valeurs optimales de b et Q, il suffit de driver D2 par rapport b pour
obtenir b optimal comme une fonction de Q, de reporter cette valeur dans D2 puis de choisir
la valeur de Q qui minimise le critre. Ce nest pas forcment la solution la plus adapte. On
prfre, gnralement, une solution en boucle ferme.
Minimisation en boucle ferme
Introduisons la fonction de transfert
B(z) = 1 bz Q .
A la synthse, on utilise le filtre inverse 1/B(z) qui doit tre plac en amont du filtre de fonction
de transfert 1/A(z). Le diagramme fonctionnel correspondant est donn figure 6.10. Reprenons
x(n)
r(n)
A(z)
1
A(z/ )
p(n)
p 0 (n)
0
+
N1
Min || p p ||
1
A(z/ )
b zQ
n
X
h(i)
y (n i) +
i=0
N. MOREAU
Licence de droits dusage
h(i)
y (n i) pour n = 0 N 1.
i=n+1
12 mars 2009
page 94/162
Mais y(n) pour n 0, a priori inconnu, se dcompose aussi en une partie inconnue qui ne dpend
que des cj(k) et gk et une partie connue
y(n) =
K
X
gk cj(k) (n) + b
y (n Q)
k=1
si on admet les hypothses que les paramtres b et Q du prdicteur long terme ont t dtermins
et que
n Q < 0 n 0 N 1
cest--dire
Q N.
La valeur du dcalage doit donc tre suprieure ou gale la taille de la fentre danalyse.
Finalement le signal perceptuel modlis scrit
p(n) =
K
X
k=1
gk
n
X
h(i)cj(k) (n i) + b
i=0
n
X
h(i)
y (n i Q) +
i=0
h(i)
y (n i).
i=n+1
On appelle
pk (0) pk (N 1)]t
pk = [
avec
p0 (n) =
h(i)
y (n i)
i=n+1
n
X
p1 (n) = b
h(i)
y (n i Q)
i=0
n
X
pk (n) = gk
h(i)cj(k) (n i).
i=0
y(Qmax )
.
y(2N )
y(2N + 1) . y(N )
.
.
.
.
.
.
.
.
.
.
.
.
.
C=
.
.
.
.
.
.
y(Qmax + N 1) . y(N 1)
y(N )
. y(1)
Ce dictionnaire possde deux proprits intressantes. Dabord, la matrice correspondante a
une structure de Toeplitz. On pourrait voir que cette proprit permet de rduire le nombre
doprations mises en jeu lorsque lon filtre ce dictionnaire. Ensuite, lorsque lon passe dune
fentre danalyse la suivante, lensemble du dictionnaire nest pas remis en cause. Uniquement
N vecteurs doivent tre actualiss. Les autres sen dduisent par translation vers la gauche.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 95/162
Remarques
La contrainte Q N est trop forte dans la pratique. Il est ncessaire dintroduire un traitement par sous-fentre et de dterminer un modle pour lexcitation pour chaque sous-fentre. En
effet la frquence fondamentale moyenne est de lordre de 100 Hz pour un locuteur masculin et
de 250 Hz pour un locuteur fminin. Cela veut dire que les valeurs probables de Q sont respectivement gales 80 et 32. Comme la valeur habituellement choisie pour N est de 160, il semble
ncessaire de diviser la fentre danalyse en, au moins, 5 sous-fentres mais, gnralement on se
0
limite 4 sous-fentres de N = 40 chantillons car cela deviendrait trop coteux en terme de
dbit.
On peut prolonger le dictionnaire C vers la droite en le construisant de la faon suivante. La
premire fois, on utilise les N 1 chantillons disponibles y(N + 1) y(1) et on les complte
par y(N + 1), la deuxime fois on utilise les N 2 chantillons y(N + 2) y(1) et on les
complte par y(N + 2)
y (N + 3), etc. On obtient
C=
y(Qmax )
.
.
.
.
y(Qmax + N 1)
. y(N ) y(N + 1)
.
.
.
.
.
.
.
.
.
.
.
y(1)
. y(1) y(N + 1)
. y(Qmin )
.
.
.
.
.
.
.
.
.
.
On sarrte lindice Qmin . Ceci rsout artificiellement le problme de la taille trop leve de la
sous-fentre pour la priode fondamentale dun locuteur fminin. Il suffit de choisir Qmin = 20,
par exemple. On prend
Qmax = Qmin + 127
si lon dcide de coder lindice sur 7 bits.
6.3.4
Conclusion
Nous navons donn dans ce document que les principes sur lesquels sont btis les codeurs de
parole de type CELP. Pour obtenir du signal reconstruit de qualit convenable, il est ncessaire
de rgler tous les paramtres mis en jeu de faon prcise et de rajouter toute une srie dastuces.
Pour en avoir une certaine ide, on pourra consulter le papier [39].
On donne simplement ici les informations transmises dans le rseau dans le cas du codeur
G.729 8 kbit/s.
Coefficients du filtre de synthse 1/A(z) dordre P = 10
Actualisation toutes les 10 ms (fentre danalyse de 80 chantillons)
Codage des Line Spectrum Pairs sur 18 bits
Entre du filtre de synthse e(n) = e1 (n) + e2 (n)
Actualisation toutes les 5 ms
Prdicteur long terme : e1 (n) = g1 e(n )
g1 cod sur 3 bits, cod sur 7 bits
: caractristique de la priode fondamentale (pitch)
e2 (n) = g2 sk (n) o sk (n) [s0 sL1 ] = 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
N. MOREAU
Licence de droits dusage
12 mars 2009
page 96/162
Chapitre 7
On montre, figure 7.1, lamplitude dun signal de violon en fonction du temps ( gauche) et
la rpartition de la puissance de ce signal en fonction de la frquence ( droite). Comme pour
100
0.2
90
0.15
80
0.1
70
0.05
60
SX(f) [dB]
0.25
50
0.05
40
0.1
30
0.15
20
0.2
10
0.25
0.15
0.16
0.17
0.18
Temps [s]
0.19
0.2
10
12
Frquences [kHz]
14
16
18
20
Fig. 7.1 Signal de violon dans le domaine temporel ( gauche) et dans le domaine frquentiel
( droite)
les codeurs de parole, un algorithme de compression est essentiellement une boucle consistant
remplir dabord un buffer avec N chantillons comme le montre le schma de la figure 7.2, traiter
ensuite ces N chantillons puis passer la fentre danalyse suivante. La fentre danalyse est
toujours avec recouvrement, le dcalage entre deux fentres danalyse tant caractris par le
paramtre M < N . Le vecteur x(m) est donc de la forme
x(m) = [x(mM ), , x(mM + N 1)]t [v(0), , v(N 1)]t
o loprateur correspond une multiplication de deux vecteurs composante par composante
et o v est une fentre de pondration. Les fentres danalyse tant gnralement dune vingtaine
de ms, le paramtre N qui devrait tre gal 44.1 20 = 882 est gal 512 (MPEG-1 et AC3)
ou 2048 (MPEG-2 AAC). La valeur du paramtre M dpend du codeur : M = 32 N/2 pour
le codeur MPEG-1, M = N/2 pour les codeurs AC3 et MPEG-2 AAC.
Le schma de principe dun codeur perceptuel montre que celui-ci se dcompose en trois
modules distincts qui sont activs chaque fentre danalyse : une transformation temps-frquences
de la forme X(m) = Hx(m), une allocation de bits sous le contrle dun modle daudition et
une quantification scalaire ou vectorielle des composantes du vecteur X(m) suivie dun codage
entropique. La chane binaire transmise dans le canal est constitue des mots de code issus du
N. MOREAU
Licence de droits dusage
12 mars 2009
page 97/162
spectral
daudition
?(f )
Allocation
de bits
x(n)
x(m)
X(m)-
Chane
X(m)
-
?
- Q1
- binaire
x
(m)
x
(n)
Emetteur
Rcepteur
-Canal -
X(m),
revenir dans le domaine temporel par la transforme inverse x
(m) = F X(m)
puis
extraire la cadence fe les chantillons x
(n). Dans le codeur MPEG-2 AAC, le calcul de lerreur
de reconstruction q(n) = x(n) x
(n) est explicite lmetteur en disposant dune copie locale
du rcepteur. Cette information est exploite dans le module dallocation de bits. On parle de
codage en boucle ferme comme dans le cas des codeurs de parole.
On rappelle que lon a montr, section 3.2, lquivalence entre bancs de filtres et transformes.
Les modules des composantes du vecteur X(m) ont une interprtation frquentielle si on choisit
correctement la transforme, la MDCT en gnral. On admettra, dans cette section introductive,
que ces modules fournissent une bonne estimation de la densit spectrale de puissance SX (f ) du
signal de musique dans la fentre danalyse courante.
Les codeurs perceptuels cherchent liminer les composantes du vecteur X(m) qui ne sont
pas audibles et quantifier avec le minimum de bits les composantes restantes. Il faut dfinir
un critre dinaudibilit : cest le rle du modle daudition. Les rsultats de psychoacoustique,
dvelopps la section 7.5, montre quun son pur (une sinusode) ou un bruit bande troite
peut tre inaudible (masqu) en prsence dun autre son pur ou bruit bande troite. Sur le
trac de gauche de la figure 7.3, on a isol une composante de la DSP SX (f ). La courbe ayant
70
70
60
60
50
50
SX(f) [dB]
80
SX(f) [dB]
80
40
40
30
30
20
20
10
10
5
6
Frquences [kHz]
10
5
6
Frquences [kHz]
10
Fig. 7.3 Courbe de masquage ( gauche). Seuil de masquage ( droite). On ne montre que
leurs contributions dans la bande [0 10] kHz
vaguement la forme dun chapeau donne la puissance de la sinusode masque juste la limite
N. MOREAU
Licence de droits dusage
12 mars 2009
page 98/162
de linaudibilit. Comme, en ralit, les N chantillons dun son de musique dans la fentre
danalyse courante sexpriment sous la forme dune somme de M composantes frquentielles, il
faut gnraliser ces rsultats de psychoacoustique et sommer les diffrentes contributions. On
obtient le seuil de masquage (f ) visualis sur le trac de droite en superposition avec la DSP
SX (f ). Lerreur due lopration de quantification entrane une perturbation inaudible si sa
DSP SQ (f ) vrifie la relation
SQ (f ) < (f )
quel que soit f et quelle que soit la fentre danalyse. La formule (4.18) dont on rappelle lexpression
Z
1 +1/2
SX (f )
b
max[0, log2
] df
2 1/2
SQ (f )
donnant le dbit ncessaire et suffisant pour coder une source de DSP SX (f ) avec une distortion
de DSP SQ (f ), fournit la marche suivre. Comme [SQ (f )]max = (f ), il faut partitionner
finement laxe des frquences, dterminer les bandes de frquence vrifiant SX (f ) > (f ) puis
allouer les bits en fonction du rapport SX (f )/(f ) en appliquant la rgle des 6 dB par bit.
Le trac de la figure 7.4 montre que, dans cette fentre danalyse, approximativement 50 % des
80
70
60
SX(f) [dB]
50
40
30
20
10
5
6
Frquences [kHz]
10
7.2
On ne donne ici que quelques informations succinctes relatives la partie audio de la norme
internationale ISO/CEI 11172 [27]. Cette norme autorise 3 frquences dchantillonnage dif-
N. MOREAU
Licence de droits dusage
12 mars 2009
page 99/162
frentes : 32, 44.1 et 48 kHz. Elle autorise galement une large gamme de dbit. Dans cette
section, on supposera la frquence dchantillonnage gale 44.1 kHz et les dbits viss compris
entre 64 et 96 kbit/s par voie. Toutes les tables fournies seront donc uniquement celles relatives
cette frquence dchantillonnage et ces dbits.
7.2.1
Transformation temps/frquences
|H(f)| [dB]
20
40
60
80
100
0.5
1.5
2.5
3
Frquences [kHz]
3.5
4.5
Fig. 7.5 Rponses en frquence du banc de filtres PQMF dans la bande [0 - 5] kHz.
pas reconstruction parfaite mais, en absence de quantification, le RSB est suprieur 90 dB
ce qui suffisant puisque le RSB propre au format CD est lui mme de cet ordre de grandeur. Ce
banc de filtres dlivre M signaux de sous-bande qui sont sous-chantillonns par un facteur 32.
On obtient les chantillons de sous-bande2 yk (m). Indpendamment dans chaque sous-bande, le
codeur construit un vecteur y k regroupant 12 chantillons tous les 32*12=384 chantillons x(n)
correspondant approximativement une dizaine de ms. Pour chaque vecteur y k , la composante
la plus importante en valeur absolue parmi les 12 permet de dfinir un facteur dchelle gk et
den dduire un vecteur normalis ak . Chaque facteur dchelle est exprim en dB puis quantifi
laide dun dictionnaire couvrant plus de 100 dB par pas de 2 dB ce qui ncessite 6 bits.
Le choix de 12 chantillons est le rsultat dun compromis. Pour des valeurs plus faibles, le
dbit associ aux facteurs dchelle devient trop important. Pour des valeurs plus leves, des
phnomnes dcho commencent tre audibles car il ny a plus de masquage temporel. A priori,
ce codeur prsente une bonne rsolution temporelle (les signaux de sous-bande sont actualiss
frquemment) mais une mauvaise rsolution frquentielle (les largeurs des bandes passantes des
filtres du banc sont de lordre de 22/32 = 0.7 kHz).
7.2.2
Les chantillons du signal x(n) ayant contribu la dtermination des M vecteurs ak sont
aussi utiliss pour raliser une estimation de la densit spectrale de puissance SX (f ) de ce signal
1
N. MOREAU
Licence de droits dusage
12 mars 2009
page 100/162
7.2.3
Quantification
La quantification de chacune des composantes des vecteurs normaliss ak est ensuite ralise en utilisant des quantificateurs scalaires uniformes dans lintervalle [-1, +1] avec un pas de
quantification fonction de bk .
Chaque signal de sous-bande dispose dun certain nombre de quantificateurs possibles. Chaque
quantificateur est caractris par un nombre de pas de quantification L et un rapport signal sur
2 / 2 (un point dans un plan dbit-distorsion). Les valeurs adoptes par la norme ISO
bruit X
Q
pour les rapports signal sur bruit en fonction du nombre de pas de quantification sont donnes
table 7.1. On donne galement, dans un but de comparaison, le rapport signal sur bruit thorique
L
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
16383
32767
65535
SN RISO
7.00
11.00
16.00
20.84
25.28
31.59
37.75
43.84
49.89
55.93
61.96
67.98
74.01
80.03
86.05
92.01
98.01
20 log10 L
9.54
13.98
16.90
19.08
23.52
29.82
35.99
42.08
48.13
54.17
60.20
66.22
72.25
78.27
84.29
90.31
96.33
b
1.67
2.33
3
3.33
4
5
6
7
8
9
10
11
12
13
14
15
16
Tab. 7.1 Rapports signal sur bruit en fonction du nombre de pas de quantification.
pour une source uniforme. Il est donn par la formule (1.5) en posant c(1) = 1.
On remarque que le nombre de pas de quantification est toujours un nombre impair de faon
ce que la valeur 0 soit toujours un reprsentant possible3 . Le problme qui en rsulte est que,
pour des valeurs faibles de L, il existe une diffrence significative entre b = log2 L et la valeur
entire immdiatement suprieure dlog2 Le. Il y a donc un risque de gaspillage de bits. Dans
la norme ISO, ce problme est rsolu en regroupant 3 chantillons si L 9. Le nombre bits
consomms est alors donn par
1
b = dlog2 L3 e.
3
La quatrime colonne de la table 7.1 donne la rsolution b (le nombre de bits quivalent par
chantillon) en fonction de L.
La table 7.2 indique quels sont les quantificateurs permis dans chacune des sous-bandes. Ils
sont indiqus par leur nombre de pas de quantification [27, page 52]. On remarque que les sousbandes se dcomposent en 5 groupes. Les deux premiers groupes, correspondant aux frquences
3
N. MOREAU
Licence de droits dusage
12 mars 2009
page 101/162
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
1
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
2
7
7
7
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
3
15
15
15
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
65535
65535
65535
65535
4
31
31
31
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
5
63
63
63
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
6
127
127
127
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
7
255
255
255
63
63
63
63
63
63
63
63
65535
65535
65535
65535
65535
65535
65535
65535
65535
65535
65535
65535
8
511
511
511
127
127
127
127
127
127
127
127
9
1023
1023
1023
255
255
255
255
255
255
255
255
10
2047
2047
2047
511
511
511
511
511
511
511
511
11
4095
4095
4095
1023
1023
1023
1023
1023
1023
1023
1023
12
8191
8191
8191
2047
2047
2047
2047
2047
2047
2047
2047
13
16383
16383
16383
4095
4095
4095
4095
4095
4095
4095
4095
14
32767
32767
32767
8191
8191
8191
8191
8191
8191
8191
8191
15
65535
65535
65535
65535
65535
65535
65535
65535
65535
65535
65535
7.3
Tous les dtails techniques de ce codeur peuvent tre trouvs dans [28]. Une description plus
didactique est ralise dans larticle [41]. On se contente ici den donner les principes.
On montre, figure 7.6, du signal de piano dans le domaine temporel ( gauche) et dans le
domaine frquentiel ( droite). Cette reprsentation spectrale est simplement obtenue en prenant
les modules des composantes du vecteur X(m) et en les exprimant en dB. La transforme utilise
dans le codeur MPEG-2 AAC est la MDCT avec N = 2048 et M = 1024. Le trac de la figure 7.7
reprsente toujours |X| mais en abscisse les frquences sont ici exprimes en Bark et en ordonne
lchelle est devenue linaire. On a un effet de zoom dans les basses frquences et les valeurs
importantes sont fortement amplifies.
On observera dabord que la MDCT est une transforme valeurs relles mais pas ncessairement positives. Le codeur MPEG-2 AAC traite les signes part4 . La quantification du module
4
En ralit, pas toujours ! On ne rentrera pas dans ce genre de dtails ici. On ne parlera pas non plus de la
faon dont sont cods les signes.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 102/162
5000
90
4000
80
3000
70
Echelle en dB
2000
1000
0
60
50
40
1000
2000
30
3000
20
4000
10
5000
500
1000
1500
2000
2500
3000
3500
4000
4500
8
Frquences (kHz)
5000
10
12
14
16
Fig. 7.6 Signal de piano dans le domaine temporel ( gauche), dans le domaine frquentiel (
droite)
10000
9000
8000
Echelle linaire
7000
6000
5000
4000
3000
2000
1000
0
10
15
Frquences (bark)
20
25
Fig. 7.7 Modules des composantes du vecteur X(m) avec en abscisse les frquences exprimes
en Bark et en ordonne une chelle linaire.
des composantes du vecteur X(m) est ralise de la faon suivante. Supposons que lon connaisse
M paramtres g = [g(0) g(M 1)] que lon appellera par la suite facteurs dchelle. A
lmetteur, on calcule un vecteur dentiers suivant la formule
i = round([
|X(0)|
|X(M 1)|
]).
g(0)
g(M 1)
[|X(0)|
|X(M
1)|] = [g(0) i(0) g(M 1) i(M 1)]
puis [
x(0) x
(M 1)] en rcuprant les informations de signe mais que lon fait une erreur
de reconstruction cause de lopration darrondi. Les tracs de la figure 7.8 montrent, pour
un choix donn du vecteur des facteurs dchelle g (courbe en marche descalier sur le trac de
gauche), le vecteur dentiers i ( droite). On observera les valeurs en ordonnes. De valeurs relles
comprises entre 0 et 10000, on passe des valeurs entires comprises entre 0 et 5.
Connaissant le vecteur i = [i(0) i(M 1)], on peut se poser un problme de codage et se
demander quel est le cot en bits de cette information. Sur cet exemple, comme tous les entiers
sont infrieurs 8, 3 bits suffisent pour coder exactement chaque entier. Le nombre total de
N. MOREAU
Licence de droits dusage
12 mars 2009
page 103/162
9000
4.5
8000
4
3.5
Echelle linaire
Echelle linaire
7000
6000
5000
3
2.5
4000
3000
1.5
2000
1000
0.5
10
15
Frquences (bark)
20
25
10
15
Frquences (bark)
20
25
N. MOREAU
Licence de droits dusage
12 mars 2009
page 104/162
2000
3000
4000
5000
6000
7000
7.4
[42]
cf http ://www.atsc.org
Encodage de 1 5.1 canaux de 32 640 kbits/s
Transformation temps-frquences : MDCT (TDAC = Time Domain Aliasing Cancelation)
Fentres recouvrantes de 512 chantillons
Fentres 2 fois plus petites si volution significative de la puissance dans la 2me moiti de
la fentre
Coefficients de la transforme : format virgule flottante (mantisse + exposant)
Mantisse : opration darrondi (prcision fonction du rapport signal masque)
Exposant facteur dchelle
Exploitation de lenveloppe spectrale
1er exposant (frquence la plus basse) transmis en absolu, les autres de faon diffrentielle
5
N. MOREAU
Licence de droits dusage
12 mars 2009
page 105/162
7.5
7.5.1
Introduction
On prsente dans cette section, de faon la plus synthtique possible, quelques informations
permettant de comprendre la signification du phnomne de masquage et comment est calcul un
seuil de masquage. Lunique rsultat de la psychoacoustique qui nous intresse ici est de chercher
dduire des caractristiques spectrales dun signal de musique, la densit spectrale dun bruit
susceptible dtre rajout au signal original sans que ce bruit soit peru. Pour plus dinformations
concernant le domaine de la perception des sons, on consultera par exemple [43, 44, 45].
7.5.2
Loreille
On sait que loreille se dcompose en trois parties : loreille externe qui est forme du pavillon
et du conduit auditif, loreille moyenne comprenant la chane ossiculaire et le tympan et loreille
interne comprenant la cochle. Loreille externe et loreille moyenne ralisent une fonction de
filtrage de type passe-bande entre 20 Hz et 20 kHz dont le module de la rponse en frquence
est directement reli au seuil daudition absolue. Elles ralisent aussi une fonction dadaptation
dimpdance entre le milieu arien de propagation des ondes et le milieu liquide de loreille
interne. Loreille interne est compose de la cochle qui contient un liquide dans lequel baigne
la membrane basilaire. Celle-ci est stimule par le mouvement de ltrier. Cette membrane peut
tre vue, une fois droule, comme un segment de droite de longueur donne (3.5 cm) do part
un grand nombre de fibres nerveuses. Toute excitation sonore met en vibration cette membrane.
Tout se passe comme si un son pur (une sinusode) une frquence donne f1 et de puissance
2 voyait cette puissance tale sur une portion de la membrane basilaire centre autour dune
X
position particulire fonction de f1 et comme si chaque fibre mesurait cette puissance tale
en dlivrant en consquence des dcharges de potentiel daction dans les neurones du nerf
auditif. Si on appelle k la position dune fibre particulire le long de la membrane basilaire et
SE (k) la quantit de puissance mesure par cette fibre, Zwicker [43] dclare lgitime dinterprter
k comme une frquence relie la frquence f1 par une relation non-linaire. Celle-ci devient
linaire si la frquence est exprime suivant une nouvelle chelle appele chelle des Bark. Cette
nouvelle chelle des frquences est directement relie la notion de bandes critiques prsente
la sous-section 7.5.3. Les fonctions dtalement SE (k) qui seront lorigine du calcul du seuil
de masquage comme on le verra la sous-section 7.5.4, refltent ltendue et limportance de
lexcitation cre dans le systme auditif par le son excitant.
Zwicker a montr que lhypothse quil avait faite conduisait prendre un banc de filtres
comme reprsentation du systme auditif (en oubliant le filtrage passe-bande initial). En effet,
imaginons une sinusode x(n) = a sin(2f1 n) entrant dans M filtres de rponse en frquence
Hk (f ). Les M signaux de sous-bandes ont pour expression
yk (n) = a|Hk (f1 )|sin(2f1 n + k (f1 )).
2 |H (f )|2 . Le terme 2 reprsente la puissance transmise par
Ils ont comme puissance Y2k = X
k 1
Yk
le son pur excitant de frquence f1 la kme position de la membrane basilaire. Si on trace
|Hk (f1 )|2 en fonction de k, on obtient la fonction dtalement SE (k) fonction de f1 .
7.5.3
Bandes critiques
Diffrentes expriences conduisent la mme notion de bandes critiques et fournissent approximativement les mmes largeurs de bandes. On ne dcrit ici quune seule, celle qui est directement relie au seuil daudition absolu. Deux sons purs simultans de frquences diffrentes sont
N. MOREAU
Licence de droits dusage
12 mars 2009
page 106/162
dtects une puissance plus faible que ne lest un seul dentre eux la condition que leur cart
de frquence ne dpasse pas une certaine valeur. Plus prcisment, considrons une sinusode
2 de cette sinusode vrifie 2 S (f ) o S (f ) est le seuil
la frquence f1 . Si la puissance X
a 1
a
X
daudition absolu, cette sinusode sera audible. Imaginons une deuxime sinusode de frquence
f2 voisine de f1 et de puissance identique la premire. Des mesures exprimentales montrent
2 S (f ). Considrons N sinuque lensemble des deux sinusodes sera audible pourvu que 2X
a 1
2 . La
sodes des frquences f1 < f2 < < fN rgulirement rparties et de mme puissance X
2 S (f )
proprit prcdente, savoir lensemble des N sinusodes est audible pourvu que N X
a 1
est vrifie la condition que la largeur de bande f = fN f1 soit infrieure un seuil appel largeur de la bande critique dans le voisinage de la frquence f1 . Cette exprience montre
que, finalement, on peut admettre que la puissance perue par loreille dans une bande critique
est gale la somme de toutes les puissances des composantes dans cette bande de frquence :
loreille ralise une intgration des puissances dans une bande critique. On peut galement dire
que loreille se comporte comme un banc de filtres ralisant une partition non-rgulire de laxe
des frquences puis somme la puissance dans chaque sous-bande.
La bande audible est divise en 24 bandes critiques dont la rpartition frquentielle est donne
table 7.3 [43]. On dfinit une nouvelle chelle frquentielle, lchelle des Barks6 , correspondant
simplement au numro de la bande critique.
Numro
de la bande
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Frquence
infrieure
20
100
200
300
400
510
630
770
920
1080
1270
1480
1720
2000
2320
2700
3150
3700
4400
5300
6400
7700
9500
12000
15500
Frquence
suprieure
100
200
300
400
510
630
770
920
1080
1270
1480
1720
2000
2320
2700
3150
3700
4400
5300
6400
7700
9500
12000
15500
Largeur de la
bande critique
80
100
100
100
110
120
140
150
160
190
210
240
280
320
380
450
550
700
900
1100
1300
1800
2500
3500
Il existe une autre chelle, lchelle MEL, qui est approximativement 100 fois plus fine.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 107/162
7.5.4
fH
fH 2
] + 3.5 arctg[(
) ].
1000
7500
Courbes de masquage
50
50
45
45
40
40
35
35
30
30
Puissances [dB]
Puissances [dB]
Loreille a la proprit de ne pas percevoir un son en prsence dun autre pourvu que les
caractristiques de ces deux sons aient des relations particulires. Cest le phnomne de masquage. Il existe deux types de masquage dun son par un autre. On parle de masquage temporel si
deux sons apparaissent de faon successive et de masquage frquentiel si deux sons apparaissent
simultanment. Le phnomne de masquage temporel peut tre intressant en codage mais il ne
sera pas prsent ici. Introduisons le masquage frquentiel.
On rappelle quune sinusode de frquence f1 nest audible, dans une ambiance parfaitement
silencieuse, qu la condition que sa puissance soit suprieure au seuil daudition absolu cette
frquence. Considrons maintenant le cas de deux sinusodes. La premire sinusode, la sinusode
2 donne, largement supmasquante, est une frquence particulire f1 et a une puissance X
1
2
rieure Sa (f1 ). On mesure, pour toutes les frquences f2 dans la bande audible, la puissance X
2
de la deuxime sinusode, la sinusode masque, la limite daudition en prsence de la premire
2 (f ) sappelle la courbe de masquage ou la courbe deffet de masque.
sinusode. La fonction X
2
2
Lallure de cette courbe de masquage est donne figure 7.10 ( gauche) lorsque le son masquant
est une sinusode.
25
20
25
20
15
15
10
10
5
6
Frequences [kHz]
10
10
12
Frequences [kHz]
14
16
18
20
Fig. 7.10 A gauche : courbe de masquage lorsque le son masquant est une sinusode. A droite :
influence de la frquence sur la forme de la courbe de masquage.
Les courbes de masquage dune sinusode par une autre sinusode7 ne sont pas les seules
courbes intressantes. La psychoacoustique nous donne aussi des rsultats prcis dans le cas o
le signal masqu est un bruit bande troite. De plus, un signal musical pouvant tre considr
comme compos dun certain nombre de sons purs, modlisables par des sinusodes, et de sons
qui ne le sont pas, modlisables par des bruits bande troite, il est ncessaire dexaminer les
quatre cas suivants : le masquage dune sinusode par une sinusode, le masquage dune sinusode
par un bruit bande troite et plus particulirement le masquage dun bruit bande troite par
une sinusode et le masquage dun bruit bande troite par un bruit bande troite. Les courbes
reprsentes figure 7.10 sont, en ralit, les courbes de masquage dune sinusode par un bruit
bande troite et ont t obtenues par simulation en appliquant le modle psychoacoustique no 1
de MPEG.
7
Dans la littrature, on appelle courbe deffet de masque dun son X le seuil daudition relev en prsence du
son X masquant. Pour viter toute ambigut, on prfre parler ici de courbe de masquage dun son Y par un
son X.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 108/162
Toutes ces courbes, quel que soit le cas envisag8 ont la mme allure, une forme en triangle.
2
Examinons ces courbes de faon plus prcise et tudions linfluence des paramtres f1 et X
1
2 (f ). La premire proprit de ces courbes est de prsenter leur maximum la frquence
sur X
2
2
2 la frquence f est infrieure la
f1 . On remarque sur la figure 7.10 que la puissance X
1
2
2 . La diffrence 2 (f = f ) 2 sappelle lindice de masquage. La deuxime
puissance X
2
1
X
X
1
2
1
proprit est de prsenter une dissymtrie importante. La pente des courbes est plus accentue
vers les frquences infrieures la frquence du son masquant que vers les frquences suprieures.
La pente des courbes dpend de la frquence f1 du son masquant. Elle devient moins accentue
mesure que la frquence f1 crot. Si lon exprime la frquence en Bark et les puissances en dB,
on montre que les courbes de masquage peuvent tre modlises par des segments de droite dont
la pente devient indpendante de la frquence f1 . Hlas, la pente vers les frquences suprieures
2 . Elle est dautant moins accentue que 2 est important.
reste dpendante de X
X1
1
7.5.5
Seuil de masquage
Le dveloppement prcdent est encore insuffisant pour nous car il ne traite que le cas o le
son masquant et le son masqu sont des sons purs ou des bruits bande troite de largeur de
bande infrieure ou gale celle dune bande critique. Dune part, un signal audio est compose
dune infinit de contributions : la densit spectrale de puissance SX (f ) caractrise justement
limportance relative de chaque contribution. Dautre part, on cherche dterminer un signal
la limite dinaudibilit, le bruit de quantification, et ce signal possde lui aussi une infinit de
contributions.
Deux types de problmes se posent. On est en prsence de nombreux sons masquants :
comment faut-il les additionner pour dterminer la puissance du son masqu juste la limite
daudition ? On est en prsence de nombreux sons masqus : comment peut-on gnraliser ? Ces
problmes sont difficiles ; ils sont peu traits dans la littrature crite par les acousticiens parce
quils sont spcifiques de lapplication codage9 . Les psychoacousticiens ne savent pas dcrire avec
prcision le phnomne de masquage lorsque le nombre de composantes masquantes est suprieur
2 ou 3 alors que lon a besoin de pouvoir traiter le cas de 512 ou mme 1024 composantes
masquantes ! Cest tout le problme des lois daddition en psychoacoustique comme on vient de
le mentionner. Les modles disponibles en codage ont t dtermins par des ingnieurs qui ont
dfini la valeur numrique de quelques paramtres aprs un trs grand nombre dcoutes mettant
en uvre le codeur complet.
Un exemple de seuil de masquage dans la bande [0 10] kHz calcul partir dun signal de
violon est donn la figure 7.3. Il sagit du modle psychoacoustique no 1 du standard MPEG-1
fourni de faon facultative dans le document normatif.
except le masquage dune sinusode par une sinusode, car il introduit des phnomnes de battement lorsque
deux frquences de sons purs sont proches, mais il est inutile en codage
9
et depuis peu de temps de lapplication tatouage
N. MOREAU
Licence de droits dusage
12 mars 2009
page 109/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 110/162
Chapitre 8
8.1
Le codeur audio HE-AACv2 dvelopp dans le cadre de MPEG-4 et de lETSI 3rd Generation
Partnership project1 (3GPP) est construit autour du codeur MPEG-4 AAC et exploite les deux
outils intituls Spectral Band Replication (SBR) et Parametric stereo (PS). Il a pour objectif
la gamme de dbits 8 kbit/s mono 48 kbit/s en stro (ou au format 5.1 ou surround 64
kbit/s).
8.1.1
Cette technique dextension de bande a t propose en 1999 dans le cadre de la normalisation de la radio numrique en bande AM (consortium Digital Radio Mondiale (DRM)). Elle
a t normalise en 2003. Elle consiste chercher reconstruire chaque instant le contenu
hautes frquences du signal partir de son contenu basses frquences. Par exemple, pour un son
priodique entretenu, le signal est compos dune frquence fondamentale et dune srie dharmoniques dont les frquences sont multiples de la frquence fondamentale comme le suggre le trac
de la figure 8.1. La position des harmoniques suivant laxe des frquences na donc pas besoin
dtre transmise. Il suffit de coder lamplitude de ces harmoniques. Cela est ralis en gnral
en codant lenveloppe spectrale calcule, par exemple, par une analyse LPC. On a vu que le
1
N. MOREAU
Licence de droits dusage
12 mars 2009
page 111/162
90
80
70
50
S (f) [dB]
60
40
30
20
10
10
12
Frquences [kHz]
14
16
18
20
Fig. 8.1 Possibilit de reconstruire le spectre hautes frquences partir des basses frquences.
codage de lenveloppe spectrale, pour un codeur de parole, ncessite de lordre dun kbit/s. La
majeure partie du dbit disponible est donc rserve au codage du contenu basses frquences, la
partie hautes frquences ne rclamant globalement que quelques kbit/s.
Le principe de cette mthode est le suivant.
Le signal dentre x(n) est sous-chantillonn, par exemple par un facteur 2, puis cod par
un codeur standard fournissant la 1re partie de la chane binaire. Si ce codeur donne une
qualit raisonnable un dbit de D bit/s lorsquil est appliqu des signaux pleine bande,
on peut raisonnablement penser quil ncessitera D/2 bit/s lorsquil exploitera des signaux
demi-bande. Dans le cadre du codeur audio HE-AACv2, il sagit bien entendu du codeur
AAC. Le codeur AAC mis en uvre est pratiquement le codeur AAC habituel except
peut tre le fait que le modle psychoacoustique a t modifi tant donnes les exigences
rduites de ce codeur.
Le signal dentre est aussi traduit dans le domaine frquentiel et analys. Dans le cadre du
codeur audio HE-AACv2, le signal dentre est trait par un banc de 64 filtres QMF fournissant des signaux de sous-bande. La 2me partie de la chane binaire code des informations
caractristiques de lenveloppe spectrale, de la prsence ou labsence dharmoniques et de
la relation entre puissance des composantes tonales et non tonales.
8.1.2
Un bref historique
Ds que le problme de la compression audio sest pos, cest dire au milieu des annes 80,
plusieurs techniques ont t dveloppes pour coder des signaux en stro. La dmarche initiale
a consist raliser un codage perceptuel sur chacun des deux canaux mais ce codage spar des
deux canaux entranant des dbits prohibitifs, rapidement on a vu deux techniques simposer.
Le M/S stereo coding dabord. Au lieu de transmettre la voie gauche et la voie droite
on transmet la somme normalise (M : middle channel) et la diffrence (S : side channel).
Ce matriage est ralis dans le domaine frquentiel de faon slective. Ce procd est
inversible (cest un avantage) mais le taux de compression est fonction du signal (cest un
inconvnient). Le taux de compression est au maximum gal 2 quand les deux canaux
gauche et droite sont pratiquement gaux mais ce nest pas le cas le plus frquent. Pour
des signaux audio multicanaux, ce procd peut tre utilis par paire denceintes.
LIntensity stereo coding ensuite. Au dessus de 2 kHz, le systme auditif humain nest pas
sensible aux diffrences de phase entre les signaux gauche et droite dun enregistrement
N. MOREAU
Licence de droits dusage
12 mars 2009
page 112/162
Paramtres
spatiaux
Codeur
Procdure
dupmix
x
1 (n)
x
2 (n)
Synthse
paramtrique
Dcodeur
N. MOREAU
Licence de droits dusage
12 mars 2009
page 113/162
le cadre de MPEG-4, spcialement pour le codeur HE-AACv2 pour obtenir un dbit total de
24 kbit/s [53]. Ce procd permet donc un taux de compression extrmement lev. Des tests
dcoutes [53] montre que ce codeur 24 kbit/s est approximativement quivalent au codeur
HE-AAC stro 32 kbit/s qui est lui mme approximativement quivalent lAAC stro 64
kbit/s. La qualit nest pas parfaite mais acceptable. On parle de qualit intermdiaire.
Trs rcemment cette technique a t gnralise au format 5.1. Il sagit du codeur MPEG
Surround. On peut dire que le dbit ncessaire pour obtenir une bonne qualit pour le format
5 canaux tait de lordre de 300 kbit/s en 1994 avec le codeur MPEG-2 layer 3, de 200 kbit/s en
2000 avec le codeur MPEG-4 AAC, de 128 kbit/s en 2004 avec le codeur HE-AAC et aujourdhui
de 64 kbit/s avec cette nouvelle technologie de codage audio paramtrique.
8.1.3
N. MOREAU
Licence de droits dusage
12 mars 2009
page 114/162
compression, le but nest pas de chercher interprter finement le rle de ces indices dans la
construction de leffet spatial mais de faire en sorte que les indices relatifs aux signaux reconstruits au rcepteur soient approximativement les mmes que ceux des signaux originaux. Comme
on value des indices similaires lITD, ILD et IC directement sur les signaux source, il est
prfrable de dfinir de nouvelles appellations. On les appelle la diffrence intercanale de temps
(ICTD), la diffrence intercanale dintensit (ICLD) et la cohrence intercanale (ICC). Pour une
application en compression, ce qui compte cest que les trois paramtres intercanaux soient encods et reconstruits correctement ce qui entranera la similarit des paramtres binauraux des
signaux originaux et reconstruits.
8.2
8.2.1
Introduction
Un codage sans perte nentrane jamais des taux de compression suprieurs 2 ou 3. Des
tudes montrent quun taux de compression moyen sur un corpus important est de lordre de 2
pour des signaux chantillonns 48 kHz et quantifis sur 16 bits, lgrement suprieur pour des
signaux chantillonns 96 kHz, lgrement infrieurs pour des signaux quantifis sur 24 bits. Ce
type de codage est essentiellement ncessaire pour des applications professionnelles (post production) o on ne peut pas se permettre de dcoder un fichier de musique au format AAC, le traiter
puis le sauvegarder au format AAC et de recommencer. Plusieurs encodage/dcodage successifs
(tandem coding) dgradent assez rapidement (au del de 2 ou 3 tandem) le signal. Si on rajoute
la couche AAC ( 128 kbit/s en stro) une couche damlioration de 384 kbit/s, on nobserve plus de dgradation sensible avant un nombre important dtapes dencodage/dcodage.
Les principales applications sont donc des oprations en studio et pour de larchivage.
Jusqu une date assez rcente [55], les systmes de compression sans perte disponibles (AudioPak, LTAC, Musiccompress ...) utilisaient le plus souvent un modle prdictif de la forme
r(n) = x(n) Q[
P
X
a
k x(n k)
k=1
Q
X
bk e(n k)]
k=1
N. MOREAU
Licence de droits dusage
12 mars 2009
page 115/162
8.2.2
Principe
Un codeur sans perte ou scalable avec une granularit assez fine entre le sans perte et le
codage AAC un dbit de lordre de 64 kbit/s par voie a t normalis rcemment [56], [57]. Le
principe du traitement est le suivant. Le signal dentre est dabord cod AAC (core layer), la
diffrence entre le signal dentre et le signal reconstruit est ensuite code de faon hirarchique
jusquau codage sans perte et fournit la couche damlioration (enhancement layer). Les deux
couches sont ensuite multiplexes.
Concernant la couche damlioration, une transformation temps/frquence sur le signal dentre est ralise par une IntMDCT consistant en une approximation entire inversible de la
MDCT. La soustraction avec ce qui est produit par le codeur AAC est ralise dans le domaine
frquentiel. Un encodage de lerreur par deux codages par plan de bits a lieu ensuite : un codage
de Golomb et un codage arithmtique cod context. Il y a pseudo-exploitation dun modle
psychoacoustique en partant des MSB vers les LSB : lerreur de reconstruction doit garder une
forme spectrale approximativement quivalente au seuil de masquage lorsque lon augmente le
dbit et que lon se rapproche du codage sans perte.
Quelques dtails
Remarquons dabord que la transforme MDCT est dcomposable en un ensemble de rotations lmentaires, chaque rotation tant caractrise par une matrice de rotation, elle-mme
dcomposable de la faon suivante
1
1 0
1
cos sin
=
0 1
1
0 1
sin cos
avec = (cos 1)/ sin et = sin . La transformation
x
cos sin
X
=
y
sin cos
Y
se calcule alors en 3 tapes successives
z = x + [y], Y = y + [z], X = z + [Y ]
qui sinversent directement
z = X [Y ], y = Y [z], x = z [y].
Si chaque tape on rajoute une opration darrondi, on obtient une transformation qui, partir
de valeurs entires, donne des valeurs entires et qui est inversible
= z + Q[Y ].
z = x + Q[y], Y = y + Q[ z], X
En exploitant cette proprit base sur le schma lifting propos par Daubechies et Sweldens en
1996 ou sur les rseaux en chelle (Bruekers, Enden 1992), on obtient la IntMDCT. La diffrence
entre les spectres de puissance de signaux de musique calculs partir de la MDCT et de la
IntMDCT montrent que la IntMDCT est une bonne approximation : la diffrence est blanche,
une soixantaine de dB moins puissante que le signal original. Des rsultats rcents montrent
que lon peut rendre cette erreur plus puissante dans les basses frquences que dans les hautes
frquences.
Concernant la soustraction dans le domaine frquentiel, le calcul de lerreur rsiduelle entre
les valeurs c(k) du spectre calcul partir de lIntMDCT et leurs contreparties c(k) issues du
N. MOREAU
Licence de droits dusage
12 mars 2009
page 116/162
codeur AAC ncessite de prendre des prcautions car il faut assurer linversibilit du codeur
AAC. Les valeurs prises par c(k) doivent tre entires et si on appelle i(k) lentier associ au mot
de code spcifi par le codeur AAC lindice k, la relation entre i(k) et c(k) doit tre dterministe
(utilisation de tables et interpolation).
Le codage entropique exploite le code de Golomb (adapt des sources laplaciennes) par plan
de bits (du MSB vers LSB pour crer une chane binaire imbrique). Lutilisation dun codage
arithmtique est bas sur le contexte (dcomposition des donnes spectrales en 3 bandes ( < 4
kHz < 11 kHz).
N. MOREAU
Licence de droits dusage
12 mars 2009
page 117/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 118/162
Chapitre 9
9.1
On note x1 (n) et x2 (n) les deux canaux stro. Pour pouvoir faire le lien avec des rsultats standards de traitement du signal, il est commode de pouvoir interprter ces deux signaux
comme tant la ralisation de p.a. stationnaires, ergodiques, centrs X1 (n) et X2 (n) de puissances
2 et E{X 2 (n)} = 2 et de fonction dintercovariance normalise
E{X12 (n)} = X
2
X2
1
(n0 ) =
E{X1 (n)X2 (n + n0 )}
q
.
2 2
X
1 X2
On notera
X1 (n)
= E{
X2 (n)
[X1 (n)X2 (n)]} =
0
2
X
1
(0)X1 X2
(0)X1 X2
2
X
2
= X1 X2 = X1 X2
c
(0)
(0) 1/c
(9.1)
X
1
2 = 20 log10 c
X
2
(9.2)
ICC = |
(n0 = ICT D)|.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 119/162
Le rapport des puissances est exprim en dB. Il prend typiquement ses valeurs dans lintervalle
[-40, +40] dB. LICTD est exprim en nombre dchantillons. LICC, compris entre 0 et 1, donne
ltendue de lvnement auditif. Proche de 1, lvnement auditif est peru de faon relativement
compact. Voisin de 0, on peroit deux vnements distincts. Approximativement gal 0.4, il en
rsulte une sensation quilibre dtendue pour donner un ordre de grandeur.
En ralit des tudes de psychoacoustique montrent que le calcul de ces indices intercanaux
doit tre ralis dans le plan temps/ frquences avec une actualisation temporelle toutes les 30
50 ms et une rsolution frquentielle homogne aux chelles Bark. Cest lhypothse de base la
plus fondamentale de ce problme. La dcomposition temps/frquences la plus adapte semble
donc tre celle obtenue par un banc de filtres cochlaires. Notons que cette dcomposition doit
tre ralise aussi bien lmetteur quau rcepteur. Lemploi dun banc de filtres cochlaires
ntant pas envisageable pour des raisons de complexit de traitement et galement cause de
la difficult de dfinir le banc de filtres de synthse assurant la reconstruction parfaite, il faut
donc se rabattre sur lemploi dun banc de filtres ou dune transforme plus simple, par exemple
la transforme de Fourier discrte.
Pour ne pas alourdir les notations, on note x = [x(0) x(N 1)]t le vecteur construit partir
du signal x(n) observ dans la fentre danalyse courante de dure N chantillons et X = Ax le
vecteur transform1 . La transformation utilise habituellement est la transforme de Fourier
court terme avec une fentre de pondration recouvrante de 50%. Pour simplifier le formalisme,
on supposera que A est la matrice de Fourier2 de dimension N N vrifiant At A = I.
9.2
9.2.1
X
=
N 1
1 X 2
1
1
||X||2
x (n) = xt x = X t X =
N
N
N
N
n=0
x1 (n)x2 (n)
X t1 X 2
=
(0) = qP n=0
.
PN 1 2
||X1 || ||X2 ||
N 1 2
n=0 x2 (n)
n=0 x1 (n)
En ralit on dsire une estimation de la fonction dintercovariance pour n0 6= 0. Il parat
commode dintroduire le vecteur x3 dduit de x2 par dcalage circulaire ( gauche)
x3 (n0 ) = [x2 (n0 ) x2 (N 1)x2 (0) x2 (n0 1)]t .
On obtient
(n0 ) =
xt1 x3 (n0 )
xt x (n0 )
X t X (n0 )
= 1 3
= 1 3
.
||x1 || ||x3 (n0 )||
||x1 || ||x2 ||
||X 1 || ||X 2 ||
Comme
X3 (k, n0 ) =
N
1
X
x2 (n + n0 mod N ) exp(j2
n=0
k
k
n) = X2 (k) exp(j2 n0 )
N
N
Conflit de notation : X(n) spcifie un p.a. et X un vecteur transform. Comme la rfrence au p.a. est peu
frquente, ce conflit nest pas trs gnant.
2
La dfinition de la TFD entrane une matrice non normalise. On la supposera ici normalise pour simplifier.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 120/162
on a
1
N 1
(9.3)
n0 ) exp(j2
n0 )] X 2 .
N
N
Donnons lexpression du produit scalaire X t1 X 2 en exploitant la proprit de symtrie hermitienne. On a
X 3 (n0 ) = diag[1 exp(j2
X t1 X 2 = X1 (0)X2 (0) + X1 (
N/21
X
N
N
)X2 ( ) +
[X1 (k)X2 (k) + X1 (N k)X2 (N k)]
2
2
k=1
X t1 X 2 = X1 (0)X2 (0) + X1 (
N/21
X
N
N
)X2 ( ) +
[X1 (k)X2 (k) + X1 (k)X2 (k)]
2
2
k=1
X t1 X 2
N/21
X
N
N
= X1 (0)X2 (0) + X1 ( )X2 ( ) + 2<
X1 (k)X2 (k)}.
2
2
k=1
On montre, figure 9.1, gauche le signal strophonique et droite la fonction dintercovariance correspondante. Pour ce signal strophonique, la diffrence dintensit intercanale est
0.2
0.8
0.15
0.6
0.1
0.4
0.05
0.2
0.2
0.05
0.4
0.1
0.6
0.15
0.2
0.8
50
100
150
200
250
300
350
400
450
500
1
50
40
30
20
10
10
20
30
40
50
9.2.2
Les indices intercanaux sont calculs dans chaque tuile de la dcomposition temps/frquences.
On note X(b) le sous-vecteur de X spcifique de la bande critique b
X(b) = [X(kb ) X(kb+1 1)]t
o kb spcifie la premire composante de la b-me bande critique. Il ne comporte que les composantes correspondant des frquences comprises entre 0 et fe /2 mais il ne faut pas oublier de
prendre en compte, lorsque cest ncessaire, les composantes comprises entre fe /2 et fe . Ainsi un
produit scalaire de la forme X t1 X 2 qui fournit une valeur relle doit scrire
X t1 (b)X 2 (b) + X t2 (b)X 1 (b) = 2<{X t1 (b)X 2 (b)}
dans le domaine des sous-bandes pour continuer fournir une valeur relle.
On obtient
N. MOREAU
Licence de droits dusage
12 mars 2009
page 121/162
la diffrence dintensit
ICLD(b) = 10 log10
Pkb+1 1
2
2
X
||X 1 (b)||2
k=kb |X1 (k)|
1
= 10 log10
=
10
log
10 Pkb+1 1
2
||X 2 (b)||2
X2
|X2 (k)|2
k=kb
la diffrence de temps
ICT D(b) = arg
avec
(n0 ) =
max
n0 {nmax
nmax
}
0
0
|
(n0 )|
et nmax
le plus petit entier tel que
0
kb max
n
1
N 0
et la cohrence
ICC(b) = |
(n0 = ICT D(b))|.
Pour viter une maximisation coteuse en temps de calcul et des problmes de prcision
dlicats traiter3 , le calcul de lICTD peut tre remplac par celui de la diffrence de phase
intercanale
ICP D(b) = arg{X t1 (b) X 2 (b)}
en se basant sur la justification suivante. Lexploitation de la cohrence est significative si elle
prend une valeur proche de 1. Cest le cas si un signal est une version translate de lautre. Si
on note X(f ) la transforme de Fourier dun signal x(n), la transforme de Fourier du signal
x(n + n0 ) est gale X(f ) exp(j2f n0 ). Dans ce cas, lICTD et lICPD sont directement relis
puisque
arg{X t X exp(j2f n0 )} = 2f n0
ce qui entrane
ICP D = 2f ICT D.
Connaissant lICPD, on en dduit lICC. En effet, comme
X 3 (b) = diag[exp(j2
kb
kb+1 1
n0 ) exp(j2
n0 )] X 2 (b)
N
N
|X t1 (b) X 2 (b)|
.
||X 1 (b)|| ||X 2 (b)||
N. MOREAU
Licence de droits dusage
12 mars 2009
page 122/162
9.2.3
Conclusion
||X 1 (b)||2
||X 2 (b)||2
9.3
|X t1 (b) X 2 (b)|
.
||X 1 (b)|| ||X 2 (b)||
(9.4)
Procdure de downmix
A lmetteur, on dispose des deux canaux stro x1 (n) et x2 (n). On recherche le signal
monophonique qui sera cod par la suite.
La solution qui vient directement lesprit est de
construire le signal s(n) = [x1 (n) + x2 (n)]/ 2. Cette solution4 nest pas forcment la meilleure
car elle ne garantit mme pas la conservation de la puissance lorsque (0) 6= 0
1
1 2
2
S2 = E{[X1 (n) + X2 (n)]2 } = (X
+ X
+ 2(0)X1 X2 )
1
2
2
2
expression qui peut mme tre nulle si (0) = 1. Lide gnrale est de dterminer s(n) par
lintermdiaire dune rotation en crivant
x1 (n)
cos() sin()
s(n)
(9.5)
=
x2 (n)
sin() cos()
s0 (n)
et de dterminer langle qui maximise la puissance de s(n). En ralit, le traitement que lon
va prsenter pour commencer dans le domaine temporel sera ralis dans le domaine frquentiel,
plus prcisment pour chaque tuile de la dcomposition temps/frquences. Une synthse OLA
permettra de revenir ensuite au signal s(n) dans le domaine temporel.
9.3.1
popt = arg max E{[pt X(n)]2 } = arg max pt E{X(n)X t (n)}p = arg max pt p
p
1
1,2 = (c + 1/c ) avec = (c 1/c)2 + 42 (0).
2
Les deux vecteurs propres tant orthogonaux, si on appelle [cos() sin()]t le premier vecteur
propre (normalis), le deuxime vecteur propre est ncessairement [ sin() cos()]t . On a donc
c
(0)
cos() sin()
cos() sin()
1 0
=
= V .
(0) 1/c
sin() cos()
sin() cos()
0 2
4
N. MOREAU
Licence de droits dusage
12 mars 2009
page 123/162
1
= (c + 1/c + ).
2
Si on lassocie au premier vecteur propre on obtient
tan() =
(0)
2(0)
.
=
1/c
c 1/c +
(0)
2(0)
.
=
c
c 1/c
2 tan()
1 tan2 ()
1
= arctan
2
2(0)
c 1/c
angle compris entre /4 et +/4. Lorsque est positif, cest dire quand (0) et c 1/c sont
de mme signe, alors
s(n) = cos()x1 (n) + sin()x2 (n).
Lorsque est ngatif, on doit choisir
s(n) = sin()x1 (n) + cos()x2 (n).
Il est plus simple de toujours calculer le signal dominant par la premire relation en choisissant
1
2(0)
opt
= mod
arctan
,
.
(9.6)
2
c 1/c
2
Lorsque lon choisit = opt , la relation (9.5) est simplement la transforme de Karhunen Loeve
applique au vecteur X(n)
S(n)
X1 (n)
t
=V
S 0 (n)
X2 (n)
On a
S(n)
E{
[S(n)S 0 (n)]} = V t V = X1 X2 .
S 0 (n)
Les deux signaux S(n) et S 0 (n) ont alors pour puissances respectives S2 = X1 X2 1 et S2 0 =
X1 X2 2 et ils ne sont pas corrls. On peut remarquer que le rapport des deux valeurs propres
cest dire des deux puissances est donn par
1
2
c + 1/c
42 (0) 4
=
=
avec = 1 +
.
(9.7)
1
1+
(c + 1/c)2
c + 1/c +
Pour dterminer opt , une autre dmarche est possible. En effet, partir de (9.5), on obtient
directement
2
2
S2 = cos2 ()X
+ 2 cos() sin()(0)X1 X2 + sin2 ()X
2
1
2
2
S2 0 = sin2 ()X
2 cos() sin()(0)X1 X2 + cos2 ()X
2
1
N. MOREAU
Licence de droits dusage
12 mars 2009
page 124/162
9.4. AU RCEPTEUR
ou
S2 =
S2
1
1
1
y()
= c cos2 () + 2(0) cos() sin() + sin2 () = (c + ) +
X1 X2
c
2
c
2
S2 0 =
S2 0
1
1
1
y()
= c sin2 () 2(0) cos() sin() + cos2 () = (c + )
X1 X2
c
2
c
2
avec
y() = (c 1/c) cos(2) + 2(0) sin(2).
Comme
y()
= 2(c 1/c) sin(2) + 4(0) cos(2)
9.3.2
Ce dveloppement ralis dans le domaine temporel peut tre ralis pour chaque tuile de
la dcomposition temps/frquences. Il faut dterminer les angles opt (b) pour b = 1 B. Ils
dpendent uniquement de
||X 1 (b)||
c(b) =
||X 2 (b)||
et de
(0, b) =
|X t1 (b)X 2 (b)|
cos[ICP D(b)]
||X1 (b)|| ||X2 (b)||
9.4
Au rcepteur
On dcode le train binaire transmis contenant les informations spcifiques du signal monophonique s(n) et des trois indices binauraux. On conservera pour s(n) et ces trois indices les
mmes notations par la suite bien quil y ait ncessairement une distortion due ltape de
quantification. On supposera cette distorsion ngligeable devant les approximations rsultant de
ltape de modlisation. En particulier on supposera que la quantification de ces indices ne les
dnature pas (ils gardent la mme influence perceptuelle).
On a vu qu lmetteur on caractrisait s(n) par lintermdiaire dune rotation pour chaque
tuile b de la dcomposition temps/frquences et pour chaque composante k {kb kb+1 1}
de la b-me bande critique en crivant
S(k)
cos(opt (b)) sin(opt (b))
X1 (k)
=
S 0 (k)
sin(opt (b)) cos(opt (b))
X2 (k)
N. MOREAU
Licence de droits dusage
12 mars 2009
page 125/162
9.4.1
Gnration de s0 (n)
Il sagit dobtenir un signal qui puisse se substituer s0 (n). Intressons nous dabord la
procdure de downmix et cherchons une interprtation physique dans le cas dune restitution
en strophonie. On supposera les deux signaux x1 (n) et x2 (n) alimentant deux hauts-parleurs
placs aux sommets A et B dun triangle isocle caractris par langle BOx = xOA = 0 comme
le montre le schma de la figure 9.2. Par convention, le signal x1 (n) correspond au canal gauche et
y
6
x1 (n)
A
j
6u
p
1
-i
O
M
- x
0
vR
B
x2 (n)
On montre, figure 9.3, langle en fonction de c pour diffrentes valeurs de (0) lorsque 0 = 30
degrs.
En premire approximation, dans le cas dune seule source sonore, on peut admettre que le
signal s(n) spcifie cette source virtuelle et que le signal s0 (n) reprsente linformation orthogonale savoir leffet d la rverbration. Comme on sait que la rverbration est compose
dun grand nombre de versions retardes et attnues de la source on peut admettre que s0 (n)
doit tre une version dcorrle de s(n) mais avoir la mme enveloppe spectro-temporelle et que
5
N. MOREAU
Licence de droits dusage
12 mars 2009
page 126/162
9.4. AU RCEPTEUR
30
rho
rho
rho
rho
=
=
=
=
0.5
0.1
0.1
0.5
20
Angle [degrs]
10
10
20
30
0.5
1.5
2
2.5
3
Rapport des puissances c
3.5
4.5
avec N = 640. On montre que le spectre damplitude est plat et que le spectre de phase est trs
hach. On peut galement vrifier quil a un gain en puissance gal 1.
9.4.2
1
2
42 (0) 4
tan() =
=
avec = 1 +
.
1
1+
(c + 1/c)2
9.4.3
Alignement de phase
N. MOREAU
Licence de droits dusage
12 mars 2009
page 127/162
Plaons nous lmetteur et supposons donc que les vecteurs X 1 (b) et X 2 (b) puissent tre
reprsents par deux nombres complexes X1 et X2 . Considrons la reprsentation donne la
figure 9.4. En appelant M1 et M2 les images des deux nombres complexes X1 et X2 , la diffrence
6
S = X1 + X2
X2
3
ICP D
OP D1
X1
-
9.4.4
|X t1 X2 |
||X 1 ||
+
exp(j ICP D)}
||X 2 || ||X 1 || ||X 2 ||
|X t1 X2 |
||X 1 ||
+ sin()
exp(jICP D)}
||X 2 ||
||X 1 || ||X 2 ||
N. MOREAU
Licence de droits dusage
12 mars 2009
page 128/162
9.5
Le document [30] montre quen ralit il ny a pas de downmix actif. Le signal monophonique
est directement donn par s(n) = [x1 (n) + x2 (n)]/2.
On donne, table 9.1, les dictionnaires de quantification pour les paramtres ICLD, ICPD et
ICC. Apparemment lOPD est galement quantifi avec le dictionnaire de lICPD et transmis.
Dans lhypothse o on ne transfre que les 3 premiers paramtres, cela cote 10 bits par fentre
ICLD
ICPD
ICC
-25
4
0
1
-18
7
/4
0.937
-14
10
/2
0.841
-10
14
3/4
0.6
-7
18
0.367
-4
25
5/4
0
-2
3/2
-0.589
7/4
-1
90
80
70
60
50
40
30
20
10
100
200
300
400
500
600
700
800
900
Fig. 9.5 Angles en fonction du temps calculs pour lensemble des bandes critiques.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 129/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 130/162
Troisime partie
Programmes matlab
N. MOREAU
Licence de droits dusage
12 mars 2009
page 131/162
Chapitre 10
Un codeur de parole
10.1
Introduction
Le programme propos ne simule pas proprement parler un codeur de parole. A partir dun
fichier de signal de parole en bande tlphonique (Fe = 8 kHz) au format wave (chantillons sur
16 bits), il ne construit pas un fichier contenant les mots de code transmettre (le bitstream).
Il se contente de ltape de modlisation consistant dterminer les paramtres du filtre de
synthse et les paramtres caractrisant le signal dentre de ce filtre chaque fentre danalyse.
Pour simuler un vrai codeur, il reste raliser ltape de quantification de ces paramtres et
sparer clairement ce que doivent raliser le codeur et le dcodeur. Comme un codeur de parole
obit un schma danalyse par la synthse, le programme de simulation du dcodeur se rduit
un petit sous-ensemble du programme complet (plus le dcodage des mots de code).
Avec les valeurs proposs pour la longueur de la fentre danalyse, lordre du filtre de synthse,
la dimension des dictionnaires, ce programme simule un codeur un dbit de lordre de 10 kbit/s.
10.2
clear
% Paramtres
Fe = 8000;
N = 320;
M = 160;
P = 12;
Nbre_sfen = 4;
M_prime = M/Nbre_sfen;
L_plt = 256;
L = 512;
Dico_C = randn(M/Nbre_sfen,L);
Nbre_vecteurs = 2;
Gamma = 0.8;
% Estimation du dbit
nbre_bits_a = 30;
nbre_bits_gain = 5;
D = (nbre_bits_a + Nbre_sfen*Nbre_vecteurs*(nbre_bits_gain+log2(L)))*Fe/M;
D = D + Nbre_sfen*(nbre_bits_gain+log2(L_plt))*Fe/M;
fprintf(Dbit = %d kbits/s\n, round(D/1000))
N. MOREAU
Licence de droits dusage
12 mars 2009
page 133/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 134/162
for i = 1:L
Dico_F(:,i) = filter(1, a_percep, Dico_C(:,i));
alpha(i) = norm(Dico_F(:,i));
end
% Dtermination de lentre du filtre de synthse
yn_hat = zeros(M,1);
for no_sfen = 1:Nbre_sfen
n5 = (no_sfen-1)*M_prime + 1;
n6 = no_sfen*M_prime;
% Construction de Dico_C_plt partir de buffer_yn_hat
Dico_C_plt = zeros(M_prime, L_plt);
for i = 1:L_plt
Dico_C_plt(:,i) = buffer_yn_hat(i:i+M_prime-1);
end
% Filtrage du dictionaire
Dico_F_plt = zeros(M_prime,L_plt);
alpha_plt = zeros(L_plt,1);
for i = 1:L_plt
Dico_F_plt(:,i) = filter(1, a_percep, Dico_C_plt(:,i));
alpha_plt(i) = norm(Dico_F_plt(:,i));
end
% Recherche du 1er vecteur dans le dictionnaire adaptatif
ringing = filtre_ar(1, a_percep, zeros(M_prime,1), etat_ringing);
en = pn(n5:n6) - ringing;
[gain_plt, indice_plt] = determination_gains_formes(en, Dico_F_plt, ...
alpha_plt, 1);
yn_hat(n5:n6) = yn_hat(n5:n6) + gain_plt*Dico_C_plt(:,indice_plt);
en = en - gain_plt*Dico_F_plt(:,indice_plt);
% Recherche dans le dictionnaire stochastique
[gains, indices] = determination_gains_formes(en, Dico_F, alpha, ...
Nbre_vecteurs);
for k = 1:Nbre_vecteurs
yn_hat(n5:n6) = yn_hat(n5:n6) + gains(k)*Dico_C(:,indices(k));
end
% Actualisation du buffer sauvegardant yn_hat
for l = 1:L_plt
buffer_yn_hat(l) = buffer_yn_hat(l+M_prime);
end
buffer_yn_hat(L_plt+1:L_plt+M_prime) = yn_hat(n5:n6);
% Actualisation du ringing
[ans, etat_ringing] = filtre_ar(1, a_percep, yn_hat(n5:n6), etat_ringing);
end
signal_yn_hat(n3:n4) = yn_hat;
N. MOREAU
Licence de droits dusage
12 mars 2009
page 135/162
% Calcul de xn_hat
[xn_hat, etat_xn_hat] = filtre_ar(1, a, yn_hat, etat_xn_hat);
signal_xn_hat(n3:n4) = xn_hat;
% Visualisations
if no_fen <= Nbre_fen_visu
figure(1);
plot(axe_temps(n1:n2), vmax_xn*vn, r);
plot(axe_temps(1:n4), signal_xn_hat(1:n4), r);
plot(axe_temps(n3)*[1 1], 1.1*vmax_xn*[-1 1], g)
plot(axe_temps(n4)*[1 1], 1.1*vmax_xn*[-1 1], g)
figure(3); hold off
plot(xn); hold on
plot(xn_hat, r)
plot(xn-xn_hat, k)
plot([1 M], [0 0])
for no_sfen = 1:Nbre_sfen
n5 = (no_sfen-1)*M_prime + 1;
plot(n5*[1 1], 1.1*max(abs(xn))*[-1 1], g)
end
axis([1 M 1.1*max(abs(xn))*[-1 1]])
% Visualisations des spectres dans la fenetre danalyse prcdente
off_set = 90;
axe_freq = (0:N/2-1)*Fe/N/1000;
if no_fen > 1
n1 = (no_fen-2)*M + 1;
n2 = n1 + N - 1;
signal_pond = vn.*signal_xn(n1:n2);
temp = (abs(fft(signal_pond)).^2)/N;
perio_xn_db = 10*log10(temp(1:N/2)) + off_set;
[a_bis sigma2_bis] = analyse_lpc(signal_pond, P);
temp = abs(fft(a_bis,N)).^2;
spectre_lpc_xn_db = 10*log10(sigma2_bis./temp(1:N/2)) + off_set;
signal_pond = vn.*signal_xn_hat(n1:n2);
temp = (abs(fft(signal_pond)).^2)/N;
perio_xn_hat_db = 10*log10(temp(1:N/2)) + off_set;
[a_bis sigma2_bis] = analyse_lpc(signal_pond, P);
temp = abs(fft(a_bis,N)).^2;
spectre_lpc_xn_hat_db = 10*log10(sigma2_bis./temp(1:N/2)) + off_set;
signal_pond = vn.*(signal_xn(n1:n2)-signal_xn_hat(n1:n2));
temp = (abs(fft(signal_pond)).^2)/N;
perio_en_db = 10*log10(temp(1:N/2)) + off_set;
figure(2); hold off
plot(axe_freq, perio_xn_db, linewidth, 2); hold on
N. MOREAU
Licence de droits dusage
12 mars 2009
page 136/162
10.3
N. MOREAU
Licence de droits dusage
12 mars 2009
page 137/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 138/162
Chapitre 11
Un codeur de musique
11.1
Introduction
11.2
clear all
global Fe N_mpeg M_mpeg D_mpeg
Fe = 44100;
N_mpeg = 512;
M_mpeg = 32;
D_mpeg = 12;
Debit_kbs = 64;
% Lecture du signal
prefixe = C:\Documents and Settings\Nicolas\Mes documents;
prefixe_in = [prefixe \mes_signaux\signaux_ref\fe_44.1\];
prefixe_out = [prefixe \mes_signaux\signaux_temp\];
nom = partita_no3;
signal_xn = wavread([prefixe_in nom], [1.7 2.7]*Fe);
Nbre_ech = length(signal_xn);
signal_xn = (signal_xn(:,1)+signal_xn(:,2))/2;
figure(1); hold off
plot((1:Nbre_ech)/Fe, signal_xn); hold on
xlabel(Temps [s])
ylabel (Amplitudes)
axis([0 Nbre_ech/Fe 1.1*max(abs(signal_xn))*[-1 1]]);
drawnow
% Quelques initialisations
N. MOREAU
Licence de droits dusage
12 mars 2009
page 139/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 140/162
plot(ind*Fe/1000/N_mpeg, SMR_db_sb(k)*ones(9,1))
val_old = SMR_db_sb(k);
end
plot([0 Fe/2], [0 0], :);
xlabel(Frequences [kHz]);
ylabel(Puissances [dB]);
axis([0 Fe/1000/2 -20 100]);
drawnow
end
if rem(no_bloc,100) == 0
fprintf( %4.2f, no_bloc*M_mpeg/Fe)
if rem(no_bloc,1000) == 0
fprintf(\n)
end
end
end
fprintf(\n)
fclose(fid_bit_stream);
% Dcodage
fprintf(Dcodage \n)
fid_bit_stream = fopen(bit_stream);
signal_xn_hat = zeros(Nbre_ech,1);
xn_hat = zeros(N_mpeg,1);
Mat_sb_q = zeros(D_mpeg,M_mpeg);
Nbre_blocs_deb_transf = N_mpeg/M_mpeg + D_mpeg;
no_bloc = 0;
no_ech_sb = 1;
while 1
no_bloc = no_bloc + 1;
% Banc de filtres de synthse
xn_hat = xn_hat + Mat_H*Mat_sb_q(no_ech_sb,:);
no_ech_sb = rem(no_bloc,D_mpeg) + 1;
if no_bloc >= Nbre_blocs_deb_transf
n1 = (no_bloc-Nbre_blocs_deb_transf)*M_mpeg + 1;
n2 = n1 + M_mpeg - 1;
signal_xn_hat(n1:n2) = xn_hat(1:M_mpeg);
end
xn_hat(1:N_mpeg-M_mpeg) = xn_hat(M_mpeg+1:N_mpeg);
xn_hat(N_mpeg-M_mpeg+1:N_mpeg) = zeros(M_mpeg,1);
if rem(no_bloc,D_mpeg) == 0
[Mat_sb_q, stop] = lit_bit_stream(fid_bit_stream);
if stop
fprintf(\n)
break
end
end
N. MOREAU
Licence de droits dusage
12 mars 2009
page 141/162
if rem(no_bloc,100) == 0
fprintf( %4.2f, no_bloc*M_mpeg/Fe)
if rem(no_bloc,1000) == 0
fprintf(\n)
end
end
end
fclose(fid_bit_stream);
wavwrite(signal_xn, Fe, [prefixe_out signal_original]);
wavwrite(signal_xn_hat, Fe, [prefixe_out signal_reconstruit]);
wavwrite((signal_xn-signal_xn_hat(1:Nbre_ech)), ...
Fe, [prefixe_out diff]);
figure(1);
plot((1:Nbre_ech)/Fe, signal_xn-signal_xn_hat(1:Nbre_ech), r);
11.3
0.202283
0.199359
0.192648
0.182422
0.169084
0.153153
0.135239
0.116004
0.096135
0.076307
0.057155
0.039242
0.023036
0.008901
-0.002919
-0.012303
-0.019243
-0.023845
-0.026300
-0.026863
-0.025855
-0.023616
-0.020492
-0.016824
N. MOREAU
Licence de droits dusage
0.201916
0.198029
0.190409
0.179361
0.165321
0.148837
0.130527
0.111068
0.091148
0.071432
0.052540
0.035012
0.019297
0.005724
-0.005495
-0.014264
-0.020608
-0.024652
-0.026604
-0.026747
-0.025399
-0.022904
-0.019613
-0.015858
0.201307
0.196465
0.187952
0.176113
0.161407
0.144402
0.125745
0.106105
0.086174
0.066610
0.048011
0.030899
0.015693
0.002692
-0.007917
-0.016074
-0.021827
-0.025326
-0.026799
-0.026537
-0.024867
-0.022143
-0.018706
-0.014882
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
12 mars 2009
page 142/162
-0.013900 -0.012915
-0.009994 -0.009039
-0.006285 -0.005411
-0.002954 -0.002196
-0.000121 0.000499
0.002142 0.002616
0.003814 0.004141
0.004915 0.005106
0.005495 0.005565
0.005624 0.005597
0.005397 0.005292
0.004901 0.004745
0.004227 0.004041
0.003461 0.003264
0.002673 0.002479
0.001918 0.001740
0.001238 0.001082
0.000658 0.000531
0.000194 0.000097
-0.000154 -0.000224
-0.000394 -0.000440
-0.000539 -0.000561
-0.000604 -0.000612
-0.000612 -0.000607
-0.000575 -0.000561
-0.000513 -0.000494
-0.000434 -0.000415
-0.000356 -0.000337
-0.000281 -0.000262
-0.000213 -0.000197
-0.000156 -0.000143
-0.000111 -0.000103
-0.000078 -0.000070
-0.000051 -0.000046
-0.000035 -0.000030
-0.000022 -0.000019
-0.000013 -0.000013
-0.000008 -0.000008
-0.000005 -0.000005
-0.000003 -0.000003
hn = [0 fliplr(temp(2:256))
-0.011936
-0.008103
-0.004564
-0.001470
0.001084
0.003051
0.004435
0.005265
0.005611
0.005549
0.005176
0.004580
0.003852
0.003067
0.002287
0.001567
0.000936
0.000413
0.000005
-0.000286
-0.000477
-0.000580
-0.000615
-0.000599
-0.000545
-0.000475
-0.000397
-0.000316
-0.000245
-0.000183
-0.000132
-0.000094
-0.000065
-0.000043
-0.000027
-0.000019
-0.000011
-0.000005
-0.000003
-0.000003
temp];
-0.010960 ...
-0.007183 ...
-0.003744 ...
-0.000777 ...
0.001632 ...
0.003453 ...
0.004691 ...
0.005395 ...
0.005629 ...
0.005481 ...
0.005044 ...
0.004408 ...
0.003658 ...
0.002870 ...
0.002101 ...
0.001400 ...
0.000793 ...
0.000299 ...
-0.000078 ...
-0.000343 ...
-0.000510 ...
-0.000596 ...
-0.000615 ...
-0.000588 ...
-0.000529 ...
-0.000456 ...
-0.000375 ...
-0.000299 ...
-0.000229 ...
-0.000170 ...
-0.000121 ...
-0.000084 ...
-0.000057 ...
-0.000038 ...
-0.000024 ...
-0.000016 ...
-0.000011 ...
-0.000005 ...
-0.000003 ...
-0.000003];
N. MOREAU
Licence de droits dusage
12 mars 2009
page 143/162
1.58740105196820,
0.79370052598410,
0.39685026299205,
0.19842513149602,
0.09921256574801,
0.04960628287401,
0.02480314143700,
0.01240157071850,
0.00620078535925,
0.00310039267963,
0.00155019633981,
0.00077509816991,
0.00038754908495,
0.00019377454248,
0.00009688727124,
0.00004844363562,
0.00002422181781,
0.00001211090890,
0.00000605545445,
0.00000302772723,
0.00000151386361,
1.25992104989487, ...
0.62996052494744, ...
0.31498026247372, ...
0.15749013123686, ...
0.07874506561843, ...
0.03937253280921, ...
0.01968626640461, ...
0.00984313320230, ...
0.00492156660115, ...
0.00246078330058, ...
0.00123039165029, ...
0.00061519582514, ...
0.00030759791257, ...
0.00015379895629, ...
0.00007689947814, ...
0.00003844973907, ...
0.00001922486954, ...
0.00000961243477, ...
0.00000480621738, ...
0.00000240310869, ...
0.00000120155435];
0,1 et 2
0
1.67
3
4
5
6
7
8
9
10
11
12
13
14
15
16];
N. MOREAU
Licence de droits dusage
12 mars 2009
page 144/162
Rsb_iso_4_11 = [0
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
0.00
7.00
11.00
16.00
20.84
25.28
31.59
37.75
43.84
49.89
55.93
61.96
67.98
74.01
80.03
98.01
0
1.67
2.33
3
3.33
4
5
6
7
8
9
10
11
12
13
16];
0.750000000
0.875000000
0.937500000
0.968750000
0.984375000
0.992187500
0.996093750
0.998046875
0.999023438
0.999511719
0.999755859
0.999877930
0.999938965
0.999969482
-0.250000000
-0.125000000
-0.062500000
-0.031250000
-0.015625000
-0.007812500
-0.003906250
-0.001953125
-0.000976563
-0.000488281
-0.000244141
-0.000122070
-0.000061035
-0.000030518];
function init_mpa1
N. MOREAU
Licence de droits dusage
12 mars 2009
page 145/162
en fonction
8.50 7.10
3.25 2.95
0.90 0.56
-2.21 -2.63
-4.78 -4.91
-4.17 -3.87
-0.04 0.47
2.28 2.46
4.02 4.32
9.25 10.54
24.15 26.88
53.22 58.18
68.00 68.00
68.00];
des indices
6.11 5.37
2.67 2.39
0.21 -0.17
-3.03 -3.41
-4.97 -4.98
-3.54 -3.19
0.89 1.23
2.63 2.82
4.64 4.98
11.97 13.56
29.84 33.05
63.49 68.00
68.00 68.00
"i"
4.79
2.11
-0.56
-3.77
-4.92
-2.82
1.51
3.03
5.35
15.31
36.52
68.00
68.00
...
...
...
...
...
...
...
...
...
...
...
...
...
N. MOREAU
Licence de droits dusage
...
10.629
13.317
15.100
16.406
17.447
19.108
20.421
21.457
...
...
...
...
...
...
...
...
12 mars 2009
page 146/162
21.677
22.984
23.749
24.225
24.542
21.882
23.102
23.821
24.271
24.574
22.074 22.253
23.213 23.317
23.888 23.952
24.316 24.358
25 25];
22.420
23.415
24.013
24.398
22.576
23.506
24.070
24.436
22.721
23.592
24.125
24.473
22.857
23.673
24.176
24.508
...
...
...
...
Frontieres_i = [1 2 3 5 6 8 9 11 13 15 17 20 23 27 32 37 ...
45 50 55 61 68 75 81 93 106];
Frontieres_k = zeros(1, length(Frontieres_i));
for i = 1:length(Frontieres_i)
Frontieres_k(i) = i_to_k(Frontieres_i(i));
end
% Dtermination de la "largeur" des bandes critiques
f_250_c = [0 Frontieres_k 296];
f_250_d = [0 Frontieres_k 256];
upper_bound = 1;
lower_bound = 1;
while upper_bound < 250
lower_bound = lower_bound + 1;
for k = 1:25
if lower_bound >= f_250_c(k) & lower_bound < f_250_c(k+1)
larg_bas = f_250_c(k+1) - f_250_c(k);
no_ech_bas = f_250_c(k+1) - lower_bound;
end
end
if no_ech_bas >= ceil(larg_bas/2)
larg_fen = ceil(larg_bas/2);
else
for k = 1:25
if upper_bound >= f_250_c(k) & upper_bound < f_250_c(k+1)
larg_haut = f_250_c(k+1) - f_250_c(k);
no_ech_haut = upper_bound - f_250_c(k);
end
end
no_ech_tot = no_ech_haut + no_ech_bas;
larg_fen = ceil((larg_bas*no_ech_bas/no_ech_tot+larg_haut*no_ech_haut/no_ech_tot)/2);
end
upper_bound = lower_bound + larg_fen;
Larg_f(lower_bound) = larg_fen;
end
function [seuil1_db, seuil2_db, SMR_db_sb] = mpa1_mpeg(xn_mpa)
% Calcul du seuil de masquage correspondant au modle psychoacoustique
% no 1 de mpeg (cf pages 122-128 de la norme ISO/CEI 11172-3:1993 (F))
% Entrees
%
xn_mpa(512,1) : signal non pondr
N. MOREAU
Licence de droits dusage
12 mars 2009
page 147/162
%
plus quelques constantes dfinies dans init_mpa1_mpeg.m
% Sorties
%
seuil1_db(1,256) : seuil de masquage exprime en db
%
seuil2_db(1,256) : min du precedent dans chacune des 32 sous-bandes
%
veritable seuil utilise par le codeur mpeg pour raliser son
%
allocation binaire
%
SMR_db_sb(1,32) : 27 rapports signal/masque,
%
les autres ne seront pas exploites
%
global Fe LTq_i LTq_k Table_z Frontieres_i Frontieres_k Larg_f
% Etape 1 : Analyse FFT
% *********************
N = length(xn_mpa);
hann = sqrt(8/3)/2*[ones(N, 1) - cos(2*pi*(0:N-1)/N)];
if sum(abs(xn_mpa)) > 0
X1 = fft(xn_mpa.*hann);
X1 = (abs(X1(1:N/2+1)).^2)/N;
perio_xn_db = 10*log10(X1);
else
perio_xn_db = zeros(N/2+1,1);
end
offset = max(perio_xn_db) - 96;
X = perio_xn_db - offset;
% Etape 2 : Determination du niveau de pression acoustique
% ********************************************************
% Non programme
% Etape 3 : Prise en compte du seuil daudition absolu
% ****************************************************
% Non programme
% Etape 4 : Determination des composantes tonales et non-tonales
% **************************************************************
% Recherche des maxima locaux
max_local = zeros(250, 1);
for k = 3:250
if X(k) > X(k-1) & X(k) >= X(k+1)
max_local(k) = 1;
end
end
tonal = zeros(250, 1);
for k = 3:62
if max_local(k)
tonal(k) = 1;
for j = [-2 2]
N. MOREAU
Licence de droits dusage
12 mars 2009
page 148/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 149/162
geom_mean = geom_mean*k;
pow = pow + 10^(X(k)/10);
k = k + 1;
raies_en_sb = raies_en_sb + 1;
end
geom_mean = floor(geom_mean^(1/raies_en_sb));
X_nm(geom_mean) = 10*log10(pow);
end
X_tm_avant = X_tm;
X_nm_avant = X_nm;
% Etape 5 : Decimation des composantes masquantes
% ***********************************************
for k = 1:250
if X_tm(k) < LTq_k(k)
X_tm(k) = -100;
end
if X_nm(k) < LTq_k(k)
X_nm(k) = -100;
end
end
% Elimination des raies tonales voisines: fenetre glissante
upper_bound = 1;
lower_bound = 1;
while upper_bound < 250
[ans, max_ix] = max(X_tm(lower_bound:upper_bound));
for k = lower_bound:upper_bound
if k-lower_bound+1 ~= max_ix
X_tm(k) = -100;
end
end
lower_bound = lower_bound + 1;
upper_bound = lower_bound + Larg_f(lower_bound);
end
% Etape 6 : Calcul des seuils de masquage individuels
% ***************************************************
% decimation : indices "k" vers indices "i"
Nbre_comp_i = length(Table_z);
X_tm_i = -100*ones(Nbre_comp_i, 1);
X_nm_i = -100*ones(Nbre_comp_i, 1);
for k = 1:250
if X_tm(k) >= -10
X_tm_i(ppv(k)) = X_tm(k);
end
N. MOREAU
Licence de droits dusage
12 mars 2009
page 150/162
end
for k = 1:250
if X_nm(k) >= -10
X_nm_i(ppv(k)) = X_nm(k);
end
end
% Etape 6->7 : Calcul des seuils de masquage globaux
% *************************************************
seuil_m = zeros(Nbre_comp_i, 1);
no_tm = 0;
no_nm = 0;
for i = 1:Nbre_comp_i
if X_tm_i(i) > -100
no_tm = no_tm + 1;
end
if X_nm_i(i) > -100
no_nm = no_nm + 1;
end
end
tab_tm = zeros(1,no_tm);
tab_nm = zeros(1,no_nm);
ix = 1;
for i = 1:Nbre_comp_i
if X_tm_i(i) > -100
tab_tm(ix) = i;
ix = ix + 1;
end
end
ix = 1;
for i = 1:Nbre_comp_i
if X_nm_i(i) > -100
tab_nm(ix) = i;
ix = ix + 1;
end
end
for i = 1:Nbre_comp_i
sum_tm = 0;
z_i = Table_z(i);
for j = tab_tm
z_j = Table_z(j);
dz = z_i - z_j;
if dz >= -3 & dz < 8
LT_tm = X_tm_i(j) + (-1.525 - 0.275*z_j - 4.5) + vf(dz, j, X_tm_i);
sum_tm = sum_tm + 10 ^ (LT_tm/10);
N. MOREAU
Licence de droits dusage
12 mars 2009
page 151/162
end
end
sum_nm = 0;
for j = tab_nm
z_j = Table_z(j);
dz = z_i - z_j;
if dz >= -3 & dz < 8
LT_nm = X_nm_i(j) + (-1.525 - 0.175*z_j - 0.5) + vf(dz, j, X_nm_i);
sum_nm = sum_nm + 10 ^ (LT_nm/10);
end
end
seuil_m(i) = 10 * log10(10^(LTq_i(i)/10) + sum_tm + sum_nm);
end
% Etape 8 : Determination
%
- du seuil de masquage
%
- du seuil de masquage minimum dans chaque sous-bande
%
- des rapports signal sur masque
% ****************************************************************
seuil1_db = zeros(1,256);
seuil2_db = zeros(1,256);
for i = 1:6
t1 = seuil_m(8*(i-1)+1:8*(i));
seuil1_db(8*(i-1)+1:8*(i)) = t1;
seuil2_db(8*(i-1)+1:8*(i)) = ones(1,8)*min(t1);
end
for i = 7:12
i1 = i - 6;
t1 = seuil_m(49+4*(i1-1):48+4*(i1));
t2(1:2:7) = t1;
t2(2:2:8) = t1;
seuil1_db(8*(i-1)+1:8*(i)) = t2;
seuil2_db(8*(i-1)+1:8*(i)) = ones(1,8)*min(t1);
end
for i = 13:30
i1 = i - 12;
t1 = seuil_m(73+2*(i1-1):72+2*(i1));
t2(1:4:5) = t1;
t2(2:4:6) = t1;
t2(3:4:7) = t1;
t2(4:4:8) = t1;
seuil1_db(8*(i-1)+1:8*(i)) = t2;
seuil2_db(8*(i-1)+1:8*(i)) = ones(1,8)*min(t1);
end
for i = 31:32
seuil1_db(8*(i-1)+1:8*(i)) = ones(1,8)*min(t1);
seuil2_db(8*(i-1)+1:8*(i)) = ones(1,8)*min(t1);
end
N. MOREAU
Licence de droits dusage
12 mars 2009
page 152/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 153/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 154/162
Nbre_pas_quantif(k)
elseif k < 12
Nbre_pas_quantif(k)
elseif k < 24
Nbre_pas_quantif(k)
elseif k < 28
Nbre_pas_quantif(k)
end
= Rsb_iso_1_3(NOQ(k),1);
= Rsb_iso_4_11(NOQ(k),1);
= Rsb_iso_12_23(NOQ(k),1);
= Rsb_iso_24_27(NOQ(k),1);
end
% On crit ensuite les facteurs dchelle
for k = 1:27
if Nbre_pas_quantif(k) > 0
vmax = max(abs(Mat_sb(:,k)));
indice_Scf = 63;
while vmax > Fact_ech(indice_Scf) & indice_Scf >= 2
indice_Scf = indice_Scf - 1;
end
if vmax > Fact_ech(1)
indice_Scf = 1;
end
fwrite(fid_bit_stream, indice_Scf, ubit6);
Scf(k) = Fact_ech(indice_Scf);
end
end
% On crit enfin les chantillons de sous-bandes
for k = 1:27
if Nbre_pas_quantif(k) > 0
alpha = 2*Scf(k)/Nbre_pas_quantif(k);
dico = -Scf(k)+alpha/2:alpha:Scf(k)-alpha/2;
indices_ech = zeros(12, 1);
for n = 1:12
[val indice] = min(abs(dico - Mat_sb(n,k)));
indices_ech(n) = indice;
end
if Nbre_pas_quantif(k) <= 9
nbre_bits_prec = ceil(log2(Nbre_pas_quantif(k)^3));
precision = [ubit int2str(nbre_bits_prec)];
carre = Nbre_pas_quantif(k)^2;
for n = 1:4
n1 = (n-1)*3 + 1;
ind = indices_ech(n1)-1 + ...
(indices_ech(n1+1)-1)*Nbre_pas_quantif(k) + ...
(indices_ech(n1+2)-1)*carre;
fwrite(fid_bit_stream, ind, precision);
end
else
nbre_bits_prec = log2(Nbre_pas_quantif(k)+1);
N. MOREAU
Licence de droits dusage
12 mars 2009
page 155/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 156/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 157/162
N. MOREAU
Licence de droits dusage
12 mars 2009
page 158/162
Bibliographie
[1] S. Lipshitz, R. Wannamaker, and J. Vanderkooy, Quantization and dither : a theoretical
survey, J. Audio Eng. Soc., vol. 40, no. 5, pp. 355375, May 1992.
[2] N. Jayant and P. Noll, Digital coding of waveforms. Prentice Hall, 1984.
[3] A. Gersho and R. Gray, Vector quantization and signal compression. Kluwer Academic
Publishers, 1992.
[4] S. Kay, Modern spectral estimation - Theory and application. Prentice Hall, 1988.
[5] R. Gray, Source coding theory. Kluwer Academic Publishers, 1990.
[6] N. Sloane, Les empilements de sphres, Pour la Science, pp. 4455, Mars 1984.
[7] Y. Linde, A. Buzo, and R. Gray, An algorithm for vector quantizer design, IEEE Trans.
on Communications, vol. COM-28, January 1980.
[8] P. Zador, Asymptotic quantization error of continuous signals and the quantization dimension, IEEE Trans. on Information Theory, vol. IT-28, pp. 139149, March 1982.
[9] H. Malvar, Signal processing with lapped transforms. Artech House, 1992.
[10] P. Vaidyanathan, Multirate digital filters, filter banks, polyphase networks and applications : A tutorial, Proceedings of the IEEE, January 1990.
[11] O. Rioul, Ondelettes rgulires : application la compression dimages fixes. PhD thesis,
ENST, Mars 1993.
[12] Y. Shoham and A. Gersho, Efficient bit allocation for an arbitrary set of quantizers, IEEE
Trans. on Acoust., Speech, and Signal Processing, vol. 36, no. 9, pp. 14451453, September
1988.
[13] S. Haykin, Adaptive filter theory. Prentice Hall, 1991 (2eme dition).
[14] R. Gray, On the asymptotic eigenvalue distribution of toeplitz matrices, IEEE Trans. on
Information Theory, vol. IT-18, no.6, pp. 725730, November 1972.
[15] C. Shannon, A mathematical theory of communication, Bell System Technical Journal,
vol. 27, pp. 379423 and 623656, 1948.
[16] C. Shannon, Coding theorems for a discrete source with a fidelity criterion, IRE Nat.
Conv. Rec., vol. part 4, pp. 142163, 1959.
[17] R. Gallager, Information theory and reliable communication. Wiley, 1968.
[18] T. Berger, Rate-distortion theory : A mathematical basis for data compression. Prentice-Hall,
1971.
[19] R. Blahut, Principles and practice of information theory. Addison-Wesley, 1987.
[20] T. Cover and J. Thomas, Elements of information theory. Wiley series in Telecommunications, 1991.
[21] P. Howard and J. Vitter, Arithmetic coding for data compression, Processing of the IEEE,
vol. 82, no. 6, pp. 857865, 1994.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 159/162
BIBLIOGRAPHIE
N. MOREAU
Licence de droits dusage
12 mars 2009
page 160/162
BIBLIOGRAPHIE
[42] Advanced television systems comittee, Digital audio compression standard (AC-3), 1995.
[43] E. Zwicker and E. Feldtkeller, Psychoacoustique, loreille rcepteur dinformation. Masson,
Collection technique et scientifique des tlcommunications, 1981.
[44] B. Moore, An introduction to the psychology of hearing. Academic Press, Second edition,
1982.
[45] A. Goy, La Perception Auditive. Polycopi ENST, 2002.
[46] F. Baumgarte and C. Faller, Binaural cue coding - Part I : Psychoacoustic fundamentals and
design principles, IEEE Trans. on Speech and Audio Processing, vol. 11, no. 6, pp. 509519,
November 2003.
[47] C. Faller and F. Baumgarte, Binaural cue coding - Part II : Schemes and applications,
IEEE Trans. on Speech and Audio Processing, vol. 11, no. 6, pp. 520531, November 2003.
[48] C. Faller, Parametric coding of spatial audio. PhD thesis, Ecole Polytechnique Fdrale de
Lausanne, 2004.
[49] J. Breebaart, S. van de Par, A. Kohlrausch, and E. Schuijers, Parametric coding of stereo
audio, EURASIP Journal on Applied Signal Processing, pp. 13051322, 2005.
[50] M. Briand, Etudes dalgorithmes dextraction des informations de spatialisation sonore : application aux formats multicanaux. PhD thesis, Institut National Polytechnique de Grenoble,
Mars 2007.
[51] J. Lapierre and R. Lefebvre, On improving parametric stereo audio coding, 120th Convention AES, Paris, May 2006.
[52] J. Herre, From joint stereo to spatial audio coding - recent progress and standardization,
Proc. of the 7th Int. Conference on Digital Audio Effects, Naples, October 2004.
[53] H. Purnhagen, Low complexity parametric stereo coding in MPEG-4, Proc. of the 7th Int.
Conference on Digital Audio Effects, Naples, October 2004.
[54] O. Calvet, Acoustique applique aux techniques du son. Editions Casteilla, 2002.
[55] M. Hans and R. Schafer, Lossless compression of digital audio, IEEE Signal Processing
Magazine, July 2001.
[56] R. Geiger, R. Yu, J. Herre, S. Rahardja, S. Kim, X. Lin, and M. Schmidt, ISO/IEC MPEG4 High-Definition Scalable Advanced Audio Coding, 120th Convention AES, Paris, May
2006.
[57] R. Yu, S. Rahardja, L. Xiao, and C. Ko, A fine granular scalable to lossless audio coder,
IEEE Trans. on Audio, Speech, and Language Processing, vol. 14, July 2006.
N. MOREAU
Licence de droits dusage
12 mars 2009
page 161/162
BIBLIOGRAPHIE
N. MOREAU
Licence de droits dusage
12 mars 2009
page 162/162