Vous êtes sur la page 1sur 163

ISSN xxxx-xxxx

Outils pour la compression


Application la compression des signaux audio
N. MOREAU

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

tude suffisante dans le cadre dun cours de base en traitement du signal


au dbut des annes 2000

N. MOREAU
Licence de droits dusage

12 mars 2009
page 1/162

compltement dfinies par leur densit de probabilit conjointe


pX (x) =

(2)N/2

det RX

1
exp( xt R1
X x)
2

o RX est la matrice dautocovariance

RX

rX (0)

= E{X(m)X (m)} =

rX (1)
..
.

rX (1)
..
.
..
.

rX (N 1)

rX (N 1)

..

rX (1)
rX (1)
rX (0)

..
.
..
.

matrice de Toeplitz de dimension N N . En outre, on supposera le processus X(n) autor2


gressif dordre P , cest dire obtenu par filtrage dun bruit blanc centr W (n) de variance W
par un filtre dordre P de fonction de transfert 1/A(z). Lintrt de prendre comme exemple la
quantification dun processus autorgressif, est de pouvoir exprimer simplement toutes les caractristiques statistiques de la source en fonction des paramtres du filtre comme, par exemple, sa
densit spectrale de puissance
2
W
SX (f ) =
|A(f )|2
et de donner lexpression analytique de la puissance de lerreur de quantification pour diffrents
schmas de quantification lorsque lon choisit comme mesure de distorsion lerreur quadratique.
Une comparaison des performances des diffrents schmas de quantification est alors possible.
Dun point de vue pratique, cet exemple nest pas absurde puisquil est un modle raisonnable
pour un certain nombre de signaux, par exemple pour du signal de parole (la stationnarit nest
alors vraie que de faon locale) lorsque lon choisit un ordre P suffisamment lev (8 ou 10 par
exemple).

N. MOREAU
Licence de droits dusage

12 mars 2009
page 2/162

Premire partie

Outils pour la compression

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

CHAPITRE 1. QUANTIFICATION SCALAIRE


8

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

Quantification scalaire optimale

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

Conditions ncessaires doptimalit

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

1.2. QUANTIFICATION SCALAIRE OPTIMALE

(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

on obtient la premire galit de la formule (1.2).


Comme
Z
Z
Z
upX (u)du =
pX (u)du
ui

ui

upX|i (u)du

o pX|i est la densit de probabilit conditionnelle de X sachant que X i , on obtient


Z
i
x
=
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

Puissance de lerreur de quantification

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

CHAPITRE 1. QUANTIFICATION SCALAIRE

x(n)

i(n)

Rgle du
plus proche voisin
x1

Inspection
dans une table

xL

...

x1

...

x(n)

xL

Fig. 1.2 Encodeur et dcodeur.


On appelle
(i) = ti ti1
la longueur de lintervalle [ti1 , ti ] et
Prob (i) = Prob {X [ti1 , ti ]} = pX (
xi )(i)
la probabilit que X(n) appartienne lintervalle [ti1 , ti ].
La puissance de lerreur de quantification scrit
2
Q
=

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

Elle scrit aussi


2
Q

L
X

Prob (i)

i=1

2 (i)
2
= E{ }.
12
12

La puissance de lerreur de quantification ne dpend que de la longueur des intervalles (i). On


2 . Posons
cherche {(1) (L)} minimisant Q
3 (i) = pX (
xi )3 (i).
Comme
L
X

(i) =

i=1

L
X
i=1

i 1/3

[pX (
x )]

(i)

[pX (u)]1/3 du = cste

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

1.2. QUANTIFICATION SCALAIRE OPTIMALE

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 .

Comme L = 2b , on obtient la formule dite de Benett


2
Q

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

CHAPITRE 1. QUANTIFICATION SCALAIRE

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

Quantification scalaire prdictive

1.3.1

Principe

Dans le dveloppement prcdent, on a vu que, pendant lopration de quantification, aucune


exploitation des liens statistiques pouvant exister entre les valeurs successives du signal nest
ralise. Nous allons voir que le quantificateur scalaire prdictif cherche dcorrler le signal
3

On utilise habituellement le nologisme companding pour compressing + expanding.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 10/162

1.3. QUANTIFICATION SCALAIRE PRDICTIVE

avant de le quantifier et que lexploitation de la corrlation amliore le comportement global du


systme, cest dire diminue la puissance de lerreur due la quantification.
Le schma de principe du quantificateur scalaire prdictif est donn figure 1.3. On retranche

x(n)

y(n)
+

Q 1

y(n) +

x(n)
+

+
v(n)

A(z)

Fig. 1.3 Schma de principe du quantificateur prdictif.


au signal x(n) un nouveau signal v(n). On ralise ensuite une procdure dencodage/dcodage
sur le signal y(n) = x(n) v(n). Au dcodeur, on rajoute v(n) la valeur reconstruite y(n). On
peut tout de suite remarquer que, dans une application relle de codage, ce schma nest pas
trs raliste puisque il faudrait alors transmettre aussi au dcodeur le signal v(n) mais attendons
la fin de ce chapitre pour montrer comment on passe dun schma dit en boucle ouverte un
schma en boucle ferme plus raliste mais plus compliqu analyser.
Si on retranche une valeur au signal avant encodage pour la rajouter aprs dcodage, lerreur
de quantification q(n) = y(n) y(n) et lerreur de reconstruction q(n) = x(n) x
(n) sont
ncessairement gales chaque instant puisque
q(n) = y(n) y(n) = x(n) v(n) [
x(n) v(n)] = q(n).
Leurs puissances respectives sont donc identiques. Comme ce qui intresse lutilisateur du systme
complet est davoir une erreur de reconstruction de puissance la plus faible possible, le problme
se ramne simplement chercher minimiser la puissance de lerreur de quantification. Si on
suppose ralise une quantification scalaire optimale de y(n), on sait que la puissance de lerreur
de quantification a pour expression
2
Q
= c Y2 22b .
2 se ramne
On en conclut que chercher minimiser la puissance de lerreur de reconstruction Q

chercher minimiser la puissance Y2 de y(n).


On a une grande libert dans le choix de v(n). Si on prend v(n) sous la forme

v(n) =

P
X

ai x(n i)

i=1

en introduisant P paramtres, on parle de prdiction linaire lordre P . Le signal y(n) est


lerreur de prdiction. Il a pour expression
y(n) = x(n) v(n) = x(n) +

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

CHAPITRE 1. QUANTIFICATION SCALAIRE

La minimisation de Y2 porte sur les coefficients de ce filtre prdicteur.


Ce problme a fait lobjet de nombreuses tudes partir des annes 60. Tous les livres
actuels prsentant les techniques de base en traitement du signal incluent un chapitre traitant de
ce problme. On pourra, par exemple, consulter le livre de S. Kay [4]. On ne fera ici que quelques
rappels succincts.

1.3.2

Quelques rappels sur la thorie de la prdiction linaire

Introduction : minimisation au sens des moindres carrs


Comme cette thorie, utilisable actuellement dans de nombreuses applications en traitement
du signal, a justement t dveloppe dans le bt de dterminer des codeurs de parole dbit
rduit et que, dans un codeur de parole, le traitement est alors par bloc de N chantillons5 , le
problme peut se poser de la faon suivante : connaissant x = [x(0) x(N 1)]t dterminer
a = [a1 aP ]t minimisant la puissance (empirique) de lerreur de prdiction
Y2
aopt = arg min
a

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

Le vecteur aopt est celui qui vrifie


2

= 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

comme on le verra par la suite dans la deuxime partie de ce document

N. MOREAU
Licence de droits dusage

12 mars 2009
page 12/162

1.3. QUANTIFICATION SCALAIRE PRDICTIVE

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

= E{Y (n)} = E{[X(n) +

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

ai aj E{X(n i)X(n j)}

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.

La minimisation de Y2 relativement a entrane les quations normales


Raopt = r
et comme la matrice dautocovariance R est dfinie positive (except le cas limite o X(n) est
un p.a. harmonique), elle est inversible. On a donc
aopt = R1 r.

(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

CHAPITRE 1. QUANTIFICATION SCALAIRE

reste symtrique mais elle nest plus forcment dfinie positive.


Dans la pratique o on ne dispose que de N donnes observes, on dsire maintenir cette
proprit de positivit. On peut observer questimer la fonction dautocovariance par
1
rX (k) =
N

NX
1k

x(n)x(n + k) pour k = 0 P

n=0

et r partir de rX (k) maintient le caractre dfini positif de R


donc permet
puis construire R
toujours son inversion. On peut alors dterminer les coefficients du filtre par
1 r
aopt = R

(1.9)

et la puissance du signal rsiduel par

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

E{Y (n)X(n i)} = 0 i = 1 P.

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

La formule SX (f ) = Y2 /|A(f )|2 suggre un deuxime estimateur spectral : partir des N


donnes observes, on calcule les coefficients du filtre blanchissant en ralisant une analyse LPC
puis on exploite la formule prcdente.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 14/162

1.3. QUANTIFICATION SCALAIRE PRDICTIVE

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

CHAPITRE 1. QUANTIFICATION SCALAIRE

En exploitant (1.7), le gain de prdiction a pour expression


Gp (P ) =

rX (0)
.
PP
rX (0) + i=1 aopt
i rX (i)

Il dpend de lordre de la prdiction P . Le


peut aussi scrire en fonction des
QPgain de prdiction
2 ) le gain de prdiction est gal
2
coefficients PARCOR. Comme Y2 = X
(1

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

Valeur asymptotique du gain de prdiction

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

Gnralement lorsque lon augmente lordre de prdiction, la puissance de lerreur de prdiction


dcroit rapidement puis reste pratiquement constante partir dun certain ordre P0 . Cela est
d au fait que le signal ntant plus corrl au del de cet ordre, on ne peut plus amliorer la
prdiction en augmentant lordre. En appelant Y2 la plus petite puissance possible et pour P
suffisamment lev, on a
det R(P + 1) (Y2 )P +1 .
On a donc
Gp () =

2
X
.
limP [det R(P )]1/P

(1.12)

La valeur asymptotique du gain de prdiction peut aussi sexprimer en fonction de la densit


spectrale de puissance SX (f ) du p.a. X(n).
Montrons dabord que la puissance de lerreur de prdiction en utilisant tout le pass dun
processus stationnaire de densit spectrale SX (f ) est donne par
Z
Y2 = exp(

1/2

1/2

loge SX (f )df ).

En effet, crivons B(z) sous la forme


B(z) = 1 +

P
X

i
aopt
=
i z

i=1

P
Y

(1 pi z 1 ) avec |pi | < 1

i=1

puisque le polynme B(z) est dphasage minimal. On peut donc crire


P
P
Y
X
1
loge [ (1 pi z )] =
loge (1 pi z 1 ) = 1 z 1 + 2 z 2 +
i=1
7

i=1

en spcifiant explicitement dans cette section la dimension de la matrice R

N. MOREAU
Licence de droits dusage

12 mars 2009
page 16/162

1.3. QUANTIFICATION SCALAIRE PRDICTIVE

pour z appartenant un domaine dexistence qui inclut le cercle unit. On a donc


Z +1/2
loge [B(f )]df = 0
1/2

en appliquant le thorme de Cauchy. On en dduit


Z
Z +1/2
Z +1/2
loge (Y2 )df
loge [SX (f )]df =

1/2

1/2

1/2

+1/2

ce qui entrane le rsultat.


Comme la puissance du signal est gale
Z
2
X
=

loge (|B(f )|2 )df = loge (Y2 )

1/2

SX (f )df

1/2

on obtient une nouvelle expression pour la valeur asymptotique du gain de prdiction


R 1/2
1/2 SX (f )df
Gp () =
R 1/2
exp( 1/2 loge SX (f )df )

(1.13)

comme une fonction de la densit spectrale de puissance du signal quantifier uniquement.


Cette expression sinterprte comme le rapport entre la moyenne arithmtique et la moyenne
gomtrique de SX (f ). En effet, si on considre SX (f ) valu sur N valeurs dans lintervalle
[1/2, 1/2] ou ce qui revient au mme dans lintervalle [0, 1], on obtient
Z 1
N 1
k
1 X
SX ( )
SX (f )df
N
N
0
k=0

Z
exp(

loge SX (f )df ) 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

CHAPITRE 1. QUANTIFICATION SCALAIRE

1.3.5

Quantification scalaire prdictive en boucle ferme

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)

Fig. 1.4 Quantificateur prdictif en boucle ferme.


On peut se poser maintenant le problme de la dtermination des coefficients du polynme
A(z). Les signaux que lon cherche quantifier ntant pas stationnaires, il faut actualiser ces
coefficients intervalles rguliers. Si les signaux peuvent tre considrs comme localement stationnaires sur N chantillons, il suffit dactualiser ces coefficients tous les N chantillons. Le
calcul se fait gnralement partir du signal x(n). On dit que la prdiction est calcule de faon
forward. Bien quil soit ncessaire de transmettre cette information au dcodeur, ce transfert est
possible car il peut rclamer un dbit peu lev. On peut aussi calculer les coefficients du filtre
partir du signal x
(n). Dans ce cas, on dit que la prdiction est calcule de faon backward. Il
nest pas ncessaire alors de transmettre cette information. Ladaptation peut mme se faire
larrive de chaque nouvel chantillon x
(n) par un algorithme du gradient (mthode adaptative).
Comparons plus en dtail les avantages et les inconvnients respectifs de ces deux mthodes.
La prdiction forward utilise des donnes plus fiables (cest particulirement important lorsque les
proprits statistiques du signal voluent rapidement) mais il faut transmettre une information

N. MOREAU
Licence de droits dusage

12 mars 2009
page 18/162

1.3. QUANTIFICATION SCALAIRE PRDICTIVE

adjacente (side-information) et il faut attendre larrive du dernier chantillon de la fentre


courante avant de commencer la procdure dencodage sur lensemble de la fentre. On a donc
un dlai de reconstruction dau moins N chantillons. Avec une prdiction backward le dlai de
reconstruction peut tre rendu trs court mais la prdiction est moins bonne car ralise partir
dchantillons dgrads. On remarque galement que, dans ce cas, le codeur est plus sensible aux
erreurs de transmission. Ce choix est essentiellement fonction de lapplication.
Il reste examiner le problme de la stabilit du filtre au dcodeur puisque il est autorgressif.
On ne peut, en aucun cas, accepter un risque dinstabilit. On a vu que, si lestimation de la
matrice dautocovariance est faite en maintenant son caractre dfini positif, alors la stabilit du
filtre est assure, les ples de la fonction de transfert sont lintrieur du cercle unit.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 19/162

CHAPITRE 1. QUANTIFICATION SCALAIRE

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

La quantification vectorielle est une gnralisation immdiate de la quantification scalaire.


On appelle quantificateur vectoriel de dimension N et de taille L une application de RN dans
un ensemble fini C contenant L vecteurs de dimension N
Q : RN C avec C = {
x1 x
L } o`
u x
i RN .
Lespace RN est partitionn en L rgions ou cellules dfinies par
i = {x : Q(x) = x
i }.
On appelle C un dictionnaire, assimilable une matrice si ncessaire, et x
i un reprsentant, un
vecteur de sortie ou un vecteur de reproduction. On dit galement que C reprsente lalphabet
de reproduction et x
i les symboles de reproduction conformment au vocabulaire habituel en
thorie de linformation.
La formule (1.1) se gnralise directement en utilisant la densit de probabilit conjointe et
la norme euclidienne
L Z
1 X
2
Q =
||u x
i ||2 pX (u)du.
(2.1)
N
i
u
i=1

Il sagit de dterminer le dictionnaire C, cest dire les vecteurs de reproduction {


x1 x
L }
2
minimisant Q . Cette minimisation conduit deux conditions ncessaires doptimalit qui sexpriment de faon identique au cas scalaire.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 21/162

CHAPITRE 2. QUANTIFICATION VECTORIELLE

1. Etant donn un dictionnaire C = {


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 du plus proche voisin. Cette partition est appele la partition de Vorono.
2. Etant donn une partition, les meilleurs reprsentants sont obtenus par la condition du
centrode. Pour une distorsion quadratique
R
i upX (u)du
i
i
x
= E{X|X } = R
.
i pX (u)du
On montre sur le trac de gauche de la figure 2.1 une ralisation x(n) dun p.a. AR(2) gaussien
et centr en fonction de n. Le trac de droite est obtenu partir de cette ralisation en formant
des vecteurs de dimension N = 2 soit x(m) = [x(2m) x(2m + 1)]t et en projetant chaque vecteur
x(m) dans le plan. On obtient un nuage de points qui a tendance saligner dautant plus le
long de la premire diagonale que le premier coefficient dautocovariance normalis se rapproche
de 1.
10
10

8
6

4
2

0
2
4

6
8

10

10

20

40

60

80

100

120

140

10

10

Fig. 2.1 Exemple dune ralisation dun p.a. AR(2).


Les tracs de la figure 2.2 montrent deux faons de partitionner le plan. La partition de
Vorono correspondant au quantificateur vectoriel a t obtenue par application de lalgorithme
de Lloyd-Max gnralis (cf section suivante) au cas vectoriel lorsque b = 2 et N = 2 cest dire
lorsque le nombre de reprsentants L est gal 16. La partition correspondant au quantificateur
scalaire, interprte dans le plan, impose des lments de forme rectangulaire et des positions
pour les reprsentants identiques relativement aux deux axes. On peut montrer que le rapport
des deux axes de lellipse sur le deuxime trac de la figure 2.1 est gal (1 + 1 )/(1 1 ) o 1
est le coefficient de covariance dordre 1 normalis. On en dduit que, plus la corrlation est forte
entre les composantes du vecteur, plus est efficace le quantificateur vectoriel parce quil sadapte
la configuration du nuage de points tandis que le quantificateur scalaire ne subit pratiquement
pas de modification. 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.
La figure 2.3 reprsente le cas dune sinusode entache de bruit. On voit clairement que le
quantificateur vectoriel sadapte beaucoup mieux aux caractristiques du signal.
Un thorme d Shannon [5] montre mme que pour des signaux non-corrls, des sources
sans mmoire pour employer la terminologie habituelle en thorie de linformation, il y a un gain
ralisable par quantification vectorielle. Ce problme prsente de fortes analogies avec celui de
lempilement de sphres [6].

N. MOREAU
Licence de droits dusage

12 mars 2009
page 22/162

2.3. CONSTRUCTION DU DICTIONNAIRE OPTIMAL

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

Construction du dictionnaire optimal

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

CHAPITRE 2. QUANTIFICATION VECTORIELLE

calcul explicite nest pas ncessaire) la partition optimale {1 L }.


3. A partir de tous les chantillons tiquets par le mme numro, on en dduit un nouveau
reprsentant par un calcul de moyenne.
4. On calcule la distorsion moyenne associe cette base dapprentissage et on arrte cet
algorithme si la distorsion ne dcrot presque plus, cest--dire si la dcroissance devient
infrieure un seuil, sinon on reprend les deux tapes prcdentes.
On assure la dcroissance de la distorsion moyenne mais on ne tend pas toujours vers le minimum global. On atteint simplement un minimum local. En fait, il nexiste mme pas de thormes
prouvant que lon atteint un minimum local. De nouveaux algorithmes bass sur des techniques
de recuit simul, par exemple, permettent (en thorie) damliorer les performances du quantificateur.
Linitialisation du dictionnaire pose un problme. Lalgorithme dit LBG [7], gnralement
adopt, permet de rsoudre ce problme. Les diffrentes tapes sont les suivantes.
1. On cherche dabord le dictionnaire compos dun seul vecteur minimisant la distorsion
moyenne. Cest le centre de gravit de lensemble de la base dapprentissage. On le notera
x
0 (b = 0). Si on appelle L0 le nombre de vecteurs composant la base dapprentissage, la
distorsion est gale
L0 1
1 1 X
2
2
Q (b = 0) = 0
||x(m)||2 = X
L N
m=0

puisque le signal est suppos centr.


2. On partage ensuite ce vecteur en 2 vecteurs nots x
0 (b = 1) et x
1 (b = 1) avec x
0 (b = 1) =
x
0 (b = 0) et x
1 (b = 1) = x
0 (b = 0) + . Le choix du vecteur  pose un problme. On choisit
des petites valeurs.
3. Connaissant x
0 (b = 1) et x
1 (b = 1), on classe tous les vecteurs de la base dapprentissage
relativement ces deux vecteurs (on tiquette tous les vecteurs soit par 0 soit par 1) puis
on calcule les nouveaux centres de gravit x
0 (b = 1) et x
1 (b = 1) de tous les vecteurs
tiquets respectivement 0 ou 1.
4. On calcule la distorsion
0

2
Q
(b

L 1
1 1 X
= 1) = 0
||x(m) x
||2
L N
m=0

et on itre ce processus tant que la dcroissance de la distorsion reste importante. On


remarquera que lon assure constamment la dcroissance grce au choix particulier des
initialisations. On applique ainsi un certain nombre de fois la rgle du plus proche voisin et
la condition du centrode pour obtenir 2 vecteurs de reproduction minimisant la distorsion
moyenne.
5. On partage nouveau ces 2 vecteurs en 2 ...
6. On arrte lalgorithme lorsque lon a atteint le nombre de vecteurs dsir.

2.4

Performances du quantificateur optimal

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

2.4. PERFORMANCES DU QUANTIFICATEUR OPTIMAL

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

[pX (x)]N/(N +2) dx

(N +2)/N

22b

RN

o pX (x) reprsente maintenant la densit de probabilit conjointe et o (N ) est une constante


qui ne dpend que de N . Dans le cas gaussien
2
Q
(N )

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

CHAPITRE 2. QUANTIFICATION VECTORIELLE


30

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

En principe, il suffit de regrouper les chantillons du signal comprimer en une succession


de vecteurs de dimension N , dappliquer la rgle du plus proche voisin pour obtenir le numro
du vecteur lencodage et dextraire un vecteur dans une table une adresse donne pour
fournir le vecteur de reproduction au dcodage. Dans la pratique, toute une srie de difficults
apparaissent, essentiellement dues la puissance de calcul rduite des microprocesseurs actuels1
car le traitement, aussi bien lencodage quau dcodage, doit tre gnralement ralis en temps
rel. En fait, les calculs les plus lourds proviennent lencodage car au dcodage il suffit daller
chercher un vecteur dans une table une adresse donne.
Prenons lexemple du codage du signal de parole en bande tlphonique une rsolution
b = 1. On cherche, par exemple, raliser un codeur 8 kbit/s. Comment choisir la dimension N
des vecteurs et le nombre de vecteurs L composant le dictionnaire ? On vient de voir que lon a
intrt augmenter N mais la taille du dictionnaire crot alors de faon exponentielle puisque L =
2bN , la charge de calcul (nombre de multiplications - accumulations) galement puisquelle est
proportionnelle N L = N 2bN , soit 2bN par chantillon ou 2bN fe multiplications - accumulations
par seconde. On peut admettre que les microprocesseurs de signal actuels acceptent une charge
de calcul de lordre de 108 multiplications - accumulations par seconde. On doit donc avoir
2bN 8 103 108
1

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

2.5. UTILISATION DU QUANTIFICATEUR

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

Quantification vectorielle arborescente

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

Quantification vectorielle par produit cartsien

On dcompose un vecteur en plusieurs sous-vecteurs de dimensions ventuellement diffrentes


et on applique une quantification vectorielle particulire pour chaque sous-vecteur. On perd alors
la possibilit dexploiter la dpendance statistique qui peut exister entre toutes les composantes
du vecteur. Il faut trouver une faon de dcomposer un vecteur de telle sorte P
quil nexiste plus
de dpendance entre les sous-parties. La complexit devient proportionnelle i Li o Li est le
nombre de vecteurs composant le dictionnaire Ci .

2.5.3

Quantification vectorielle de type gain-forme

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

Quantification vectorielle multi-tages

On procde par approximations successives. On ralise une premire quantification vectorielle


grossire, puis une deuxime quantification vectorielle portant sur lerreur de quantification, etc.
comme illustr figure 2.5.

2.5.5

Quantification vectorielle par transforme

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

CHAPITRE 2. QUANTIFICATION VECTORIELLE

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

Fig. 2.5 Quantification scalaire ou vectorielle multi-tages.


dune quantification dans le domaine transforme mais cette quantification est gnralement scalaire. Un chapitre entier est consacr cette tude. Il est parfois utile dassocier transformation
et quantification vectorielle pour pouvoir concentrer linformation dans un vecteur de dimension
infrieure en ngligeant les composantes trs peu nergtiques. La rduction de la complexit
peut tre importante par cette opration de troncation. La transformation orthogonale la plus
utilise est la transforme de Fourier discrte et la transforme en cosinus.

2.5.6

Quantification vectorielle algbrique

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

Quantification vectorielle de type gain-forme

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

Rgle du plus proche voisin

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

2.6. QUANTIFICATION VECTORIELLE DE TYPE GAIN-FORME

j
x

Rgle du
plus proche voisin
x1

...

xL

g 1 ... g L

g 1 ... g L

Inspection
dans une table
x1

...

xL

Fig. 2.6 Quantificateur vectoriel de type forme-gain.

x2
g1 x 1

x1

Fig. 2.7 Quantification vectorielle forme-gain.


soit la projection orthogonale de x sur x
j . Ce gain est donn par
< x g(j)
xj , x
j >= 0
g(j) =

< x, x
j >
||
xj ||2

en appelant < x, y > le produit scalaire de deux vecteurs x et y. Comme


min ||x g(j)
xj ||2 )
xj ||2 min(||x||2 2g(j) < x, x
j > +g 2 (j)||
j

min ||x g(j)


xj ||2 min(||x||2
j

< x, x
j >2
)
||
xj ||2

en remplaant g(j) par sa valeur, la minimisation relativement j devient une maximisation


min ||x g(j)
xj ||2 max
j

< x, x
j >2
x
j

max
<
x,
>2 max |cosj |
j
j
||
xj ||2
||
xj ||

o j reprsente langle compris entre x et x


j . La rgle du plus proche voisin consiste donc, dans
ce cas, choisir parmi tous les vecteurs possibles, le vecteur prsentant langle minimum (
prs) avec x.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 29/162

CHAPITRE 2. QUANTIFICATION VECTORIELLE

2.6.2

Algorithme de Lloyd-Max

Montrons comment on construit le premier dictionnaire, celui qui est caractristique de la


forme. On a vu que lalgorithme de Lloyd-Max se dcompose en deux tapes. Connaissant une
base dapprentissage compos de M vecteurs x(m) et un dictionnaire initial compos des L1
vecteurs x
j , que lon supposera norms sans perte de gnralit, on cherche dabord la meilleure
partition des M vecteurs en L1 classes. On tiquette chaque vecteur de la base dapprentissage
par lindice j qui maximise < x(m), x
j >2 . Connaissant cette partition, on actualise ensuite
le dictionnaire. A partir des M (j) vecteurs x(m) associs lancien vecteur x
j , on calcule le
nouveau vecteur x
j qui minimise lerreur quadratique moyenne
2
Q
(j)

M (j)
M (j)
X
1 X
2
< x(m), x
||x(m)||
j >2 ].
=
[
M (j)
m=1

m=1

Il suffit de maximiser par rapport x


j lexpression
M (j)

Q=

< x(m), x
j >2 = (
xj )t
xj

m=1

en appelant la matrice de covariance empirique


M (j)

x(m)xt (m).

m=1

La maximisation de Q, sous la contrainte ||


xj || = 1, peut tre ralise par la mthode des
multiplicateurs de Lagrange. On annule la drive par rapport x
j de lexpression
(
xj )t
xj [(
xj )t x
j 1].
On obtient

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

Codage par transforme, codage en


sous-bandes
3.1

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

CHAPITRE 3. CODAGE PAR TRANSFORME, CODAGE EN SOUS-BANDES

3.2

Equivalence entre bancs de filtres et transformes

Considrons un banc de M filtres avec quantification (scalaire) des signaux de sous-bandes


comme le montre le schma de la figure 3.1. On suppose que tous les filtres sont des filtres
q (n)
0

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

scrivent de faon matricielle

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

3.2. EQUIVALENCE ENTRE BANCS DE FILTRES ET TRANSFORMES

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

on en dduit directement la relation entre les rponses impulsionnelles


hk (n) = 2 h(n) cos(2

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.

On montre que la condition de reconstruction parfaite scrit :


h2 (n) + h2 (n + M ) = 1 pour n = 0 M 1

(3.2)

avec
f (n) = h(n) pour n = 0 N 1
condition vrifie par
h(n) = f (n) = sin[(2n + 1)

].
4M

Cette transformation est trs utilise (en codage audio).


Il reste dterminer N et M . Cest une question dlicate dans la pratique car la transformation doit satisfaire des contraintes contradictoires. On dsire gnralement de bonnes proprits
frquentielles (peu de recouvrement dans le domaine frquentiel, rsolution frquentielle importante) sans trop nuire la rsolution temporelle (pour accepter des variations rapides de la
puissance instantane du signal). Cette question sera aborde dans la deuxime partie de ce
document.
1

Exception : utilisation de transformes en ondelettes surtout en codage dimage.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 33/162

CHAPITRE 3. CODAGE PAR TRANSFORME, CODAGE EN SOUS-BANDES

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

Allocation de bits optimale

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

bk bM est donne par


bk = b +

Y2
1
log2 2k
2

(3.5)

o b est le nombre moyen de bits par composante et o


M
1
Y

2 = (

Y2k )1/M

k=0

N. MOREAU
Licence de droits dusage

12 mars 2009
page 34/162

3.3. ALLOCATION DE BITS

est la moyenne gomtrique des puissances.


En effet, on sait que, quels que soient M rels positifs, la moyenne arithmtique est suprieure
ou gale la moyenne gomtrique et que lgalit a lieu lorsque les M nombres sont gaux ce
qui scrit
M 1
M
1
Y
1 X
ak (
ak )1/M .
M
k=0

En posant ak =

Y2k 22bk ,

k=0

cette relation devient

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)

On obtient ainsi lquation (3.5).


Lquation (3.6) a une interptation intressante. Elle veut dire que la quantification scalaire
optimale de chaque variable alatoire Yk (m) entrane la mme erreur quadratique moyenne. On
aboutit la conclusion importante suivante : tout se passe comme si on cherchait rendre lerreur
de reconstruction la plus proche possible dun bruit blanc pleine bande.
La puissance de lerreur de quantification a pour expression
M
1
Y

2
Q
= c(1) (

Y2k )1/M 22b .

(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

CHAPITRE 3. CODAGE PAR TRANSFORME, CODAGE EN SOUS-BANDES

3.3.4

Complments

Dans la prsentation standard de lallocation optimale de bits faite prcdemment, on a crit


2 en fonction de 2 et du nombre de bits b consacr la quantification du
explicitement Q
k
Yk
k
signal de sous-bande Yk (m). La formule (3.3) rclame que le nombre de niveaux de quantification
soit lev. Cette hypothse est trop contraignante dans la pratique.
Supposons que pour chaque signal de sous-bande, on dispose dun certain nombre de quantificateurs possibles et que lon note Qk (ik ) le quantificateur slectionn. On choisit, par exemple,
de quantifier chaque signal Yk (m) par un quantificateur scalaire uniforme pour diffrentes rsolutions. Dans ce cas trs simple, le numro ik est la rsolution bk . On suppose, galement, que pour
chaque quantificateur on puisse en dduire (ou mesurer) la puissance de lerreur de quantification
2 (i ) quil engendre. On note b (i ) le nombre de bits quil rclame. On verra au chapitre 4
Q
k
k k
k
quil est possible de raliser un codage entropique aprs une quantification uniforme. Dans ce
cas, on montrera que le nombre de bits ncessaire pour quantifier ce signal peut tre diminu, ce
qui expliquera la notation bk (ik ) et le fait que bk (ik ) puisse tre non-entier.
Si lon simpose une combinaison quelconque de M quantificateurs i = [i0 , , iM 1 ]t parmi
toutes les combinaisons possibles, on peut alors calculer la puissance de lerreur de quantification
2
Q
(i) =

M 1
1 X 2
Qk (ik )
M

(3.9)

k=0

et le nombre de bits moyen ncessaire pour quantifier les M signaux


M 1
1 X
bk (ik ).
b(i) =
M

(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

En utilisant les relations (3.9) et (3.10), on obtient


iopt () = arg min[
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

3.4. TRANSFORMATION OPTIMALE

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

il suffit de dterminer la valeur de qui maximise


2
opt = arg max[Q
[iopt ()] + b[iopt ()] bd ].

Les M composantes de iopt (opt ) caractrisent les M quantificateurs optimaux.


Considrons lexemple suivant. On suppose quune transforme orthogonale dcompose le
signal en M = 4 sous-bandes. On se donne la puissance Y2k des signaux de sous-bandes par
simple tirage dune variable alatoire. On imagine que lon dispose de 4 quantificateurs possibles
par sous-bande. Les quantificateurs sont des quantificateurs uniformes ; ils sont suivis par un
2 (i ) en faisant comme si la formule (3.3)
codage entropique. On dtermine les puissances Q
k
k
tait valide avec bk {0, , 3}. Pour simuler le codage entropique et obtenir les expressions
bk (ik ), on diminue lgrement de faon alatoire la valeur bk . La figure 3.2 visualise lensemble
des points dont les coordonnes sont calcules partir des formules (3.9) et (3.10) ainsi que les
droites dquation (3.11). Il sagit de trouver quels sont les 4 quantificateurs qui engendrent le
2 la plus petite possible. La figure 3.3 montre
point dabscisse infrieure bd = 4 et dordonne Q
1

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

CHAPITRE 3. CODAGE PAR TRANSFORME, CODAGE EN SOUS-BANDES


0.2

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

Fig. 3.3 La fonction () est une fonction concave.


2 donn par (3.8), il suffit donc de chercher la transformation T
Q
opt qui minimise la moyenne
gomtrique des puissances des signaux de sous-bande. On se limite au cas des transformations
orthogonales qui imposent dj N = M .
Considrons la matrice de covariance du vecteur X(m), matrice de Toeplitz de dimension
M M,

1
1 M 1

..
..
..
1

.
.
.
2
.
RX = X

..
..
..

.
.
.
1
M 1 1
1

Ecrivons la matrice de covariance du vecteur transform Y (m) sous la forme

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

Son dterminant a pour expression


det RY =

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

CHAPITRE 3. CODAGE PAR TRANSFORME, CODAGE EN SOUS-BANDES

Si, en plus, on applique la transforme de Karhunen-Loeve, sachant que on a toujours


2
X
=

M 1
1 X
k
M
k=0

o 0 M 1 sont les valeurs propres de RX relativement des vecteurs propres normaliss


mais que
M
1
M
1
Y
Y
2 1/M
(
Yk )
=(
k )1/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

Le gain de transformation a donc pour expression


1 PM 1
k=0 k
M
Gt (M ) =
.
1 PM 1
exp( M k=0 loge k )
On montre deux rsultats [14].
Si k est une valeur propre de la matrice de covariance RX du processus X(n) et si SX (f )
est la densit spectrale de ce processus, alors
k = SX (k ).
Les M frquences 0 M 1 sont appeles les frquences propres. Elles ne possdent pas
la proprit dtre uniformment rparties dans lintervalle [0, 1].
Quelle que soit une fonction g(.), on a
Z 1/2
M 1
1 X
g(k ) =
g[SX (f )]df.
M M
1/2
lim

k=0

Ce rsultat est connu sous le nom de thorme de Szego.


Connaissant ces deux rsultats, on en dduit que
R 1/2
1/2 SX (f )df
.
Gt () =
R 1/2
exp( 1/2 loge [SX (f )]df )
On reconnat lexpression du gain de prdiction donne par la formule (1.13). On a donc
Gt () = Gp ().
Asymptotiquement les techniques de quantification bases sur le codage par transforme et sur
la quantification prdictive, donnent des rsultats identiques. Toutefois, pour une valeur donne

N. MOREAU
Licence de droits dusage

12 mars 2009
page 40/162

3.5. PERFORMANCES

du paramtre M , la quantification prdictive lordre M peut paratre prfrable lutilisation


de la transforme optimale de dimension M car le quantificateur par transforme exploite la corrlation contenue dans le signal jusqu lordre M simplement. Par contre, dans le quantificateur
prdictif, il y a exploitation de la corrlation un ordre suprieur grce la boucle de prdiction. Si le processus quantifier est autorgressif dordre P , il suffit de raliser une prdiction
lordre P pour que le gain de prdiction atteigne sa valeur asymptotique. Ce nest pas le cas du
quantificateur par transforme.
On peut remarquer quemployer la transforme de Karhunen-Loeve consiste chercher faire
en sorte que {Y20 Y2M 1 } soit une estimation spectrale la plus fidle possible de SX (f ).

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

Fig. 3.4 Diffrentes mthodes de quantification lorsque b = 2.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 41/162

CHAPITRE 3. CODAGE PAR TRANSFORME, CODAGE EN SOUS-BANDES

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

Codage sans bruit dune source discrte sans mmoire

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

CHAPITRE 4. CODAGE ENTROPIQUE

{x1 xLX }. On parle alors de source discrte sans mmoire. On note


pX (i) = Prob {X(n) = xi }
la distribution des diffrentes probabilits. Cette distribution est indpendante de linstant dobservation n puisque le processus alatoire est stationnaire.

4.2.1

Entropie dune source

On appelle information propre de lvnement {X(n) = xi } la quantit


I(xi ) = log2 pX (i).
Elle est positive ou nulle. Elle est exprime en bits/symbole1 puisque lon a pris un logarithme
en base 2. On appelle information propre moyenne ou entropie de la source X(n) lesprance de
la variable alatoire I(xi )
H(X) = E{I(xi )}
H(X) =

LX
X

pX (i) log2 pX (i) .

(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

Codage dune source

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

4.2. CODAGE SANS BRUIT DUNE SOURCE DISCRTE SANS MMOIRE


1

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

Code instantan uniquement dcodable


Remarquons tout dabord quil semble exister un problme associ un code de longueur
variable : faut-il ajouter des sparateurs entre mots du code dans une squence ? Cela nest pas
ncessaire si le code vrifie la condition dite du prfixe : aucun mot du code ne doit tre un
prfixe dun autre mot du code.
Prenons lexemple dune source ne pouvant prendre que six valeurs diffrentes {x1 , , x6 }.
Le code dfini par les associations donnes table 4.1 est un code valide, on dit uniquement
Symboles
Codes

x1
0

x2
100

x3
101

x4
110

x5
1110

x6
1111

Tab. 4.1 Dfinition dun code.


dcodable, puisque, recevant par exemple la chane binaire 11001110101110, on en dduit la

N. MOREAU
Licence de droits dusage

12 mars 2009
page 45/162

CHAPITRE 4. CODAGE ENTROPIQUE

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

Fig. 4.2 Arbre binaire associ un code uniquement dcodable.


pas forcment complet. Le nombre de branches entre le noeud initial, la racine, et un noeud
terminal, une feuille, spcifie la longueur du code associ.
Ingalit de Kraft
Considrons un code binaire C = {c1 cLX } reprsentant sans erreur une source. Une
condition ncessaire et suffisante pour que ce code vrifie la condition du prfixe est que
LX
X

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

2lmax = 2lmax 2lmax = 1.

i=1

N. MOREAU
Licence de droits dusage

12 mars 2009
page 46/162

4.2. CODAGE SANS BRUIT DUNE SOURCE DISCRTE SANS MMOIRE


0

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

Introduisons un multiplieur de Lagrange et crivons pour i = 1 LX


LX
LX
X
X
j
j
[
p
(j)l(c
)
+

2l(c ) ] = 0.
X
l(ci )
j=1

j=1

On obtient

pX (i) loge 2 2l(c ) = 0


soit
i

2l(c ) =
Comme

LX
X
i=1

pX (i)
.
loge 2
L

2l(c ) =

X
X
1
pX (i) = 1
loge 2

i=1

cela impose la valeur de la constante loge 2 = 1. On obtient


i

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

pX (i) log2 pX (i)

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

Thorme du codage sans bruit dune source discrte sans mmoire

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

CHAPITRE 4. CODAGE ENTROPIQUE

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)

Lgalit a lieu si et seulement si p(i) = q(i) quel que soit i = 1 L.


En effet, on sait que, pour tout x positif,
log2 x (x 1) log2 e.
Donc

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

Lgalit est atteinte si et seulement si q(i)/p(i) = 1 quel que soit i.


Lexpression
L
X
p(i)
D(p||q) =
p(i) log2
q(i)

(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

On cre une nouvelle distribution de probabilit de la forme


i

q(i) = a2l(c )
avec a 1 puisque
LX
X

q(i) = 1 = a

i=1

LX
X

2l(c ) .

i=1

La proposition 1 dit que


LX
X

pX (i) log2 a

i=1

soit

LX
X
i=1

pX (i) log2 pX (i)

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

4.2. CODAGE SANS BRUIT DUNE SOURCE DISCRTE SANS MMOIRE

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)

o H(X) est lentropie de la source et l la longueur moyenne du code.

4.2.4

Construction dun code

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

pX (i)d log2 pX (i)e

i=1

LX
X

pX (i) log2 pX (i) +

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

CHAPITRE 4. CODAGE ENTROPIQUE


LX
X

2l(c )

LX
X

i=1

pX (i)

i=1
LX
X

2l(c ) 1

i=1

on en dduit quil existe un code instantan vrifiant la condition du prfixe.


Algorithme de Huffman
Lalgorithme qua propos Huffman en 1951 consiste construire progressivement un arbre
binaire en partant des noeuds terminaux.
On part des deux listes {x1 xLX } et {pX (1) pX (LX )}.
On slectionne les deux symboles les moins probables, on cre deux branches dans larbre
et on les tiquette par les deux symboles binaires 0 et 1.
On actualise les deux listes en rassemblant les deux symboles utiliss en un nouveau symbole
et en lui associant comme probabilit la somme des deux probabilits slectionnes.
On recommence les deux tapes prcdentes tant quil reste plus dun symbole dans la liste.
On montre que cet algorithme est lalgorithme optimal. Pour aucun autre code uniquement
dcodable, la longueur moyenne des mots du code est infrieure.
Premier exemple
Prenons lexemple dune source ne pouvant prendre que six valeurs diffrentes et supposons
connues les probabilits. Elles sont donnes table 4.2. Lentropie de cette source est gale 2,06
bits. Le code de Shannon entrane une longueur moyenne gale 2,28 bits. Lalgorithme de
Huffman fournit larbre binaire schmatis figure 4.3. La table de codage est indique table 4.1.
La longueur moyenne est gale 2,1 bits, valeur trs voisine de la limite thorique.
Symboles
Probabilits

x1
0,5

x2
0,15

x3
0,17

x4
0,08

x5
0,06

x6
0,04

Tab. 4.2 Probabilits associes aux six vnements {X(n) = xi }.

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

4.2. CODAGE SANS BRUIT DUNE SOURCE DISCRTE SANS MMOIRE

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

Fig. 4.3 Illustration de lalgorithme de Huffman.


vrifie
H(X)

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

CHAPITRE 4. CODAGE ENTROPIQUE

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

Tab. 4.3 Probabilits associes aux 2, 4 et 8 vnements possibles.


N
l/N

1
1

2
0,905

3
0,908

Tab. 4.4 Nombres moyens de bits par symbole.

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. CODAGE SANS BRUIT DUNE SOURCE DISCRTE AVEC MMOIRE

4.3

Codage sans bruit dune source discrte avec mmoire

On a examin dans le dveloppement prcdent le cas le plus lmentaire. Gnralement il


existe une dpendance statistique entre les chantillons successifs de la source que lon va chercher
exploiter pour rduire le nombre de bits ncessaire pour reprsenter exactement la source.

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

information conditionnelle de lvnement {Y = y j } sachant que lvnement {X = xi } est


ralis, la quantit
I(y j |xi ) = log2 pY |X (j|i)
entropie conditionnelle de la variable alatoire discrte Y sachant que lvnement {X = xi }
est ralis
LY
X
i
H(Y |x ) =
pY |X (j|i) log2 pY |X (j|i)
j=1

entropie conditionnelle de Y sachant X, lesprance de lentropie conditionnelle prcdente,


cest--dire
LX
X
H(Y |X) =
pX (i)H(Y |xi )
i=1

H(Y |X) =

LX X
LY
X

pXY (i, j) log2 pY |X (j|i).

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

Par exemple X(n) et X(n + k). Dans ce cas, LX = LY .

N. MOREAU
Licence de droits dusage

12 mars 2009
page 53/162

CHAPITRE 4. CODAGE ENTROPIQUE

En effet
H(X, Y ) =

LX X
LY
X

pXY (i, j) log2 pXY (i, j)

i=1 j=1

H(X, Y ) =

LX X
LY
X

pXY (i, j) log2 pX (i)pY |X (j|i)

i=1 j=1

H(X, Y ) =

LX
X

pX (i) log2 pX (i)

i=1

4.3.2

LX X
LY
X

pXY (i, j) log2 pY |X (j|i).

i=1 j=1

Thorme du codage sans bruit dune source discrte avec mmoire

Les dfinitions prcdentes et la relation (4.6) se gnralisent au cas de N variables alatoires


discrtes. Considrons le vecteur
X N = [X(mN ) X(mN + N 1)]t
et la probabilit conjointe
Prob {X(mN ) = xi1 , , X(mN + N 1) = xiN } = pX N (i1 , , iN ) = pX N (i).
On dfinit lentropie de ce vecteur par
H(X N ) =

pX N (i) log2 pX N (i).

On appelle dbit entropique


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

Exemple dune source markovienne

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

4.3. CODAGE SANS BRUIT DUNE SOURCE DISCRTE AVEC MMOIRE

p(1|2)
X

p(2|2)

p(2|1)

Fig. 4.4 Diagramme dtat dune source markovienne.


conditionnelles indpendantes de linstant dobservation. On parle alors de source markovienne
lordre 1. Appelons
p(i|j) = pX(n)|X(n1) (i|j) = Prob {X(n) = xi |X(n 1) = xj }.
Cette source peut tre reprsente par le diagramme dtat donn la figure 4.4 o les diffrents
vnements {X(n) = xi } sont les tats possibles et les probabilits conditionnelles p(i|j) sont les
probabilits de transition. On note
p(i) = Prob {X(n) = xi }
la probabilit dtre dans ltat xi . On suppose que p(i) ne dpend pas de linstant dobservation
n. On ne se proccupe donc pas dun ventuel rgime transitoire.
Si une probabilit p(i|i) est importante, cela voudra dire que le symbole xi apparatra vraisemblablement plusieurs fois de suite. On aura donc tout intrt coder ce symbole en spcifiant
le nombre de rptition. On parle de codage par plage (run-lenght coding).
Exemple de la transmission de documents par tlcopie
Il sagit de transmettre par le rseau tlphonique public et de reproduire en noir et blanc
un document dactylographi au format A4 (210 297 mm2 ) en environ une minute 4.8 kbit/s
[22]. On donne simplement dans ce paragraphe quelques informations permettant de comprendre
la mthode de codage effectue. On se limite la description du codage appel codage unidimensionnel dans la recommandation. Il existe une deuxime mthode de codage, un codage
bidimensionnel, qui tient compte dune information relative la ligne prcdente mais cette
mthode est trop particulire pour que sa description dans cet ouvrage soit intressante.
La page A4 est lue de la gauche vers la droite et de haut en bas. La dfinition est de 4 lignes
par mm et de 1728 lments dimage (pixels) en noir et blanc par ligne. Il y a donc environ 2
Mbits transmettre. Pendant une minute 4.8 kbit/s, on transmet environ 300 kbits. Le taux
de compression doit donc tre voisin de 7.
On est dans le cas dune source X(n), la suite des pixels dfinie par le balayage sur les lignes,
que lon peut supposer markovienne lordre 1. Cette source peut prendre deux tats x1 et x2
correspondants respectivement un pixel noir et un pixel blanc. On remarque que toutes les
probabilits sont entirement dtermins par la simple connaissance des deux probabilits p(2|1)
et p(1|2) puisque
p(1|1) = 1 p(2|1)
p(2|2) = 1 p(1|2)

N. MOREAU
Licence de droits dusage

12 mars 2009
page 55/162

CHAPITRE 4. CODAGE ENTROPIQUE

(il faut bien aller quelque part) et que


p(1) = [1 p(2|1)]p(1) + p(1|2)p(2)
p(2) = 1 p(1)
soit
p(1) =
p(2) =

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

4.4. QUANTIFICATEUR SCALAIRE AVEC CONTRAINTE ENTROPIQUE


0
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
26
27
28
29
30
31

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

Quantificateur scalaire avec contrainte entropique

4.4.1

Introduction

On a donn au dbut du chapitre 1 une prsentation trs intuitive du quantificateur scalaire


uniforme puis on sest pos le problme de la dtermination du quantificateur scalaire optimal
lorsque le processus quantifier X(n) a une densit de probabilit marginale pX (x) quelconque.
On rappelle la formule (1.1) donnant la puissance de lerreur de quantification
2
Q

L Z
X
k=1

(x x
k )2 pX (x)dx

xk

en fonction de la partition {1 L } de laxe rel, des reprsentants {


x1 x
L } et de la densit
de probabilit pX (x) lorsque lon choisit comme mesure de distorsion, lerreur quadratique. La
2 relativement aux paramtres tk dfinissant la frontire entre les partitions k
minimisation de Q
et k+1 et relativement aux reprsentants x
k ne fournit pas une solution analytique exploitable
directement. On obtient simplement deux conditions ncessaires doptimalit
tk =

N. MOREAU
Licence de droits dusage

x
k + x
k+1
2

12 mars 2009
page 57/162

CHAPITRE 4. CODAGE ENTROPIQUE

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

On rappelle la formule (1.3) donnant la puissance de lerreur de quantification


L

2
Q
=

1 X
pX (
xk )3 (k)
12
k=1

en fonction de (k) = tk tk1 , la longueur de lintervalle [tk1 , tk ].


Donnons une nouvelle justification de la formule (1.5) en rappelant dabord quun quantificateur scalaire non-uniforme est quivalent un quantificateur scalaire uniforme prcd dune
transformation non-linaire et suivi de la transformation inverse. En appelant le pas de quantification du quantificateur uniforme, f (x) la caractristique et g(x) la drive de f (x), on a la
relation

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

Par passage la limite, on obtient


2
Q

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

4.4. QUANTIFICATEUR SCALAIRE AVEC CONTRAINTE ENTROPIQUE

La fonction g(x) nest pas quelconque. Elle doit vrifier la contrainte


Z +A
Z A
0
g(x)dx =
f (x)dx = 2f (A).
A

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

Utilisons lingalit de Hlder qui dit que


Z +A
Z
u(x)v(x)dx [
A

+A
a

1/a

u (x)dx]

+A

v b (x)dx]1/b

pourvu que a et b soient des entiers positifs vrifiant


1 1
+ = 1.
a b
Lingalit est remplace par une galit lorsque ua (x) est proportionnel v b (x). Choisissons
u(x) = [

pX (x) 1/3
]
g2 (x)

v(x) = g2/3 (x)


et a = 3 et b = 3/2. On obtient
Z +A
Z
1/3
pX (x)dx [
A

+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

On retrouve la formule (1.4)


2
Q

4.4.3

1
= [
12

+A

1/3

pX (x)dx]3 22b .

Quantificateur avec contrainte entropique

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

CHAPITRE 4. CODAGE ENTROPIQUE

Expression de lentropie
Lentropie de la sortie du quantificateur a pour expression
=
H(X)

L
X

Prob (k) log2 Prob (k)

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 )

en exploitant la formule (4.7). On obtient finalement


=
H(X)

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

Par passage la limite, on obtient


=
H(X)

Z
pX (x) log2 pX (x)dx log2

=
H(X)

Z
pX (x)dx +

pX (x) log2 g(x)dx

Z
pX (x) log2 pX (x)dx log2 +

pX (x) log2 g(x)dx.

Le premier terme ne dpend que de la source. Il sappelle lentropie diffrentielle et on le note


conventionnellement
Z +
h(X) =
pX (x) log2 pX (x)dx.

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

Le signe de h(X) dpend du support de pX (x). Si A est respectivement infrieur ou suprieur


1, lentropie diffrentielle sera ngative ou positive.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 60/162

4.4. QUANTIFICATEUR SCALAIRE AVEC CONTRAINTE ENTROPIQUE

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

pX (i)f (x ) = pX (k)f (x ) + (1 pX (k))

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

pX (i)f (xi ) f (pX (k)xk + (1 pX (k))f (

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)

Puisque la fonction x2 est une fonction convexe, on a


2
Q

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

CHAPITRE 4. CODAGE ENTROPIQUE

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

Capacit dun canal discret sans mmoire

4.5.1

Introduction

Si un canal, recevant linstant n un symbole dentre X(n) appartenant lalphabet AX =


{x1 xLX }, fournit un symbole de sortie Y (n) appartenant lalphabet AY = {y 1 y LY }
et si le symbole de sortie ne dpend que du symbole dentre au mme instant, on dira que le
canal est discret et sans mmoire. On le reprsente par le schma donn figure 4.5. Le canal peut
tre bruit. Il est donc naturel de chercher caractriser lapplication, un symbole dentre
correspond un symbole de sortie, par lensemble des probabilits conditionnelles
pY |X (j|i) = Prob {Y (n) = y j |X(n) = xi }.
On supposera que les deux alphabets AX et AY possdent le mme nombre de symboles. Lensemble des probabilits conditionnelles peut tre mis sous la forme dune matrice carre. Pour
un canal peu bruit, cette matrice sera proche de la matrice identit.
La question que lon se pose est la suivante : quelle est la quantit dinformation que procure
lvnement {Y (n) = y j } concernant lvnement {X(n) = xi } ?

N. MOREAU
Licence de droits dusage

12 mars 2009
page 62/162

4.5. CAPACIT DUN CANAL DISCRET SANS MMOIRE

x1

p(1|1)

y1

x2

p(2|1)

y2

xL

p(L|1)

yL

Fig. 4.5 Canal bruit.

4.5.2

Information mutuelle

Linformation mutuelle des deux vnements {X(n) = xi } et {Y (n) = y j } est la quantit


I(xi ; y j ) = log2
I(xi ; y j ) = log2

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

pXY (i, j)I(xi ; y j )

i=1 j=1

I(X; Y ) =

LX X
LY
X

pXY (i, j) log2

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

CHAPITRE 4. CODAGE ENTROPIQUE

Comme lquation (4.11) scrit


I(X; Y ) =

LX X
LY
X

pXY (i, j) log2

i=1 j=1

I(X; Y ) =

LX
X

pX (i) log2 pX (i) +

i=1

LX X
LY
X

pX (i)
pX|Y (i|j)

pXY (i, j) log2 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

pX (i)pY |X (j|i) log2

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

k=1 pX (k)pY |X (j|k)

i=1 j=1

4.5.3

pY |X (j|i)

Thorme de codage pour un canal bruit

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.

La source est caractrise par son dbit entropique H(X).


Le canal est caractris par sa
capacit C. On montre que si

H(X)
C

N. MOREAU
Licence de droits dusage

12 mars 2009
page 64/162

4.5. CAPACIT DUN CANAL DISCRET SANS MMOIRE

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

Exemple : canal binaire symtrique

Le canal est schmatis la figure 4.6. Il est caractris par la matrice



 

pY |X (1|1) pY |X (2|1)
1 pe
pe
=
.
pY |X (1|2) pY |X (2|2)
pe
1 pe
Calculons la capacit de ce canal. Il sagit de maximiser linformation mutuelle moyenne en

1p e

x1
pe

y1
pe

x2

y2
1p e

Fig. 4.6 Canal binaire symtrique.


fonction de la probabilit p = pX (1). Utilisons la formule
I(X; Y ) = H(Y ) H(Y |X).
Comme
H(Y |X) = pH(Y |x1 ) + (1 p)H(Y |x2 )
et que
H(Y |x1 ) = H(Y |x2 ) = (1 pe ) log2 (1 pe ) pe log2 pe
H(Y |x1 ) = H(Y |x2 ) = f (pe )
on remarque que
H(Y |X) = pf (pe ) + (1 p)f (pe ) = f (pe )
est indpendant de p. Dautre part, comme
H(Y ) = f [pY (1)] = f [p(1 pe ) + (1 p)pe ]
et que la fonction f (x) atteint son maximum pour x = 1/2 ce qui entrane p = 1/2, on obtient
H(Y ) = 1. La capacit du canal binaire symtrique est donc gale
C = 1 f (pe ).
Lorsque le canal est non-bruit, la capacit est gale 1. Lorsque pe = 1/2, la capacit est nulle.
Gnralement le calcul de la capacit dun canal est beaucoup plus difficile que dans ce cas l.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 65/162

CHAPITRE 4. CODAGE ENTROPIQUE

4.6

Codage dune source discrte avec un critre de fidlit

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

petite distorsion tolrable lorsque H(X)


> C. Cette thorie montre lexistence de cette fonction
mais ne fournit pas une mthode permettant de construire un code ayant ces performances.
Au lieu doptimiser sur tous les codes dterministes ayant une structure donne en respectant une contrainte sur le dbit de transmission, on sintresse, comme dans tout ce chapitre,
des codes caractriss par des fonctions alatoires et on impose une contrainte sur le dbit
dinformation.

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,

son dbit entropique H(X)


et le nombre dlments LX constituant lalphabet AX existent les
ingalits

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. CODAGE DUNE SOURCE DISCRTE AVEC UN CRITRE DE FIDLIT

On appelle fonction dbit-distorsion


b(D) = min I(pX|X
)
Q
pX|X

o Q est lensemble de toutes les probabilits conditionnelles vrifiant


) D.
d(p
X|X
La fonction dbit-distorsion ne dpend que de la source.
Pour gnraliser ce rsultat des sources avec mmoire, il faudrait regrouper N symboles
dentre, former le vecteur
XN = [x(mN ) x(mN + N 1)]t
et dfinir une suite de fonctions bN (D). On montre que
bN (D) bN +1 (D).
Si lon veut une distorsion nulle, le codage doit se faire sans perte. On a b(0) = H(X). Si
D augmente, lensemble Q augmente galement ce qui entrane que la fonction dbit-distorsion
est une fonction non-croissante. Plus prcisment, on montre que cest une fonction continue,
convexe, strictement dcroissante. Si lon accepte une distorsion suprieure ou gale la puissance
de la source (dans le cas dune mesure de distorsion quadratique), alors il nest mme plus
2 ) = 0.
ncessaire de chercher la coder. On a b(X

4.6.3

Thormes

Thorme du codage de source


Connaissant la fonction dbit-distorsion b(D), on peut montrer que quel que soit D 0 et
quel que soit  > 0, il existe un quantificateur vectoriel compos de L vecteurs de dimension N
vrifiant
1
log2 L < B(D) + 
N
et entranant une distorsion moyenne infrieure ou gale D + .
Codage combin source-canal
Le thorme de codage pour un canal bruit dit que si la capacit du canal est suffisante,
cest--dire suprieure ou gale au dbit entropique de la source, il ny a pas de problme. Si cette
capacit est insuffisante, le rsultat nouveau est que lon peut dabord raliser une compression en
acceptant une distorsion telle que b(D) = C puis effectuer un codage canal avec une probabilit
derreur aussi faible que lon veut.

4.6.4

Cas particulier : mesure de distorsion quadratique

Borne infrieure de Shannon pour une source sans mmoire


Pour une mesure de distorsion quadratique, on montre que la fonction dbit-distorsion pour
2 est minore par
une source non-gaussienne sans mmoire de puissance X
b(D) h(X)

N. MOREAU
Licence de droits dusage

1
log2 2eD.
2

12 mars 2009
page 67/162

CHAPITRE 4. CODAGE ENTROPIQUE

Cette ingalit permet de donner la borne infrieure de la puissance de lerreur de quantification


pour une source gaussienne sans mmoire
b=

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)

Le quantificateur scalaire avec contrainte entropique a une puissance de lerreur de quantification


gale e/6 = 1, 42 fois cette limite. On dit que le quantificateur scalaire avec contrainte
entropique est
1
e
log2
= 0, 25 bit
2
6
de la limite thorique. La courbe b(D) + 0, 25 est parfois appele lasymptote de Gish-Pierce.
2 a
Ce rsultat est intressant car il montre que toute source sans mmoire et de puissance X
une fonction dbit-distorsion en dessous de celle dune source gaussienne et de mme puissance
lorsque la mesure de distrosion est lerreur quadratique. La source gaussienne est donc la source
la plus difficile reproduire.
Source avec mmoire
De la mme faon que pour une source discrte avec mmoire, on gnralise sans trop de
difficult le rsultat prcdent. On appelle dbit entropique diffrentiel dune source continue, la
limite
1

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)

Comme on dmontre que


2
E{xt 1
X x} = N X

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

4.6. CODAGE DUNE SOURCE DISCRTE AVEC UN CRITRE DE FIDLIT


2
2eX
1

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

CHAPITRE 4. CODAGE ENTROPIQUE

N. MOREAU
Licence de droits dusage

12 mars 2009
page 70/162

Deuxime partie

Application : compression des signaux


audio

N. MOREAU
Licence de droits dusage

12 mars 2009
page 71/162

Chapitre 5

Introduction
5.1

Caractristiques des signaux de parole

Le signal de parole est un signal trs complexe possdant de nombreuses caractristiques. On


se contentera ici de prsenter quelques proprits significatives en compression.
La figure 5.1 montre un signal de parole de dure une demi-seconde prononc par un locuteur
fminin dans le domaine temporel ( gauche) et dans le domaine frquentiel ( droite). On voit
sur le trac de gauche que ce signal nest videmment pas stationnaire mais quil peut tre
considr comme localement stationnaire pendant des dures de lordre de quelques dizaines de
ms. En codage de la parole, il est tout fait standard de choisir des fentres danalyse de 20 ms.
100

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

Pas dexemple de ce type sur ce trac.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 73/162

CHAPITRE 5. INTRODUCTION

de la vritable (mais inaccessible) densit spectrale de puissance. Appelons S1 (f ) cette densit


spectrale. Elle est reprsente par la courbe prsentant de nombreux pics. La deuxime estimation
S2 (f ) utilise un modle autorgressif, cest--dire admet que le signal analys est le rsultat
du filtrage dun bruit blanc par un filtre ne comportant que des ples. La courbe S2 (f ) est
beaucoup plus lisse. Elle correspond lenveloppe spectrale. Une observation dtaille de ces
courbes montre que S1 (f ) peut tre vu, en premire approximation, comme la multiplication de
S2 (f ) par un ensemble dimpulsions de mme puissance rgulirement espaces2 . Cela veut dire
quil parait raisonnable de modliser un son vois par le filtrage dun peigne de Dirac par un filtre
autorgressif. Pour des sons non-voiss, des test dcoute montrent quil est raisonnable dutiliser
le mme type de filtre la condition de remplacer le peigne de Dirac par un bruit blanc.

5.2

Caractristiques des signaux de musique

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

Pour plus de dtails, on se reportera lexcellent article3 [23].

5.3.1

Signal de parole en bande tlphonique

On a class les diffrentes normalisations et recommandations en fonction des applications.


2

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

5.3. NORMES ET RECOMMANDATIONS

Rseau tlphonique public


Plusieurs recommandations ont t dfinies sous lgide de lUnion Internationale des Tlcommunications, secteur des Tlcommunications (UIT-T) pour le rseau tlphonique public
ces trente dernires annes.
Depuis 1972, la recommandation G.711 prcise un codage par modulation par impulsions
codes (MIC ou PCM pour pulse code modulation) correspondant un dbit de 64 kbit/s :
lamplitude des chantillons est simplement quantifie sur 8 bits aprs une compression de
type non linaire. La plupart des rseaux tlphoniques commuts du monde entier utilisent
ce codeur.
Depuis 1984, la recommandation G.721 dfinit un codage MIC diffrentiel adaptatif (MICDA
ou ADPCM) correspondant un dbit de 32 kbit/s : on ne quantifie plus directement lamplitude de lchantillon mais la diffrence entre lamplitude et une valeur prdite dtermine
par un filtrage de type adaptatif. Ce codeur est utilis pour la concentration de voies pour
les transmissions par cables sous-marins ou par satellites. Il est aussi utilis pour la norme
europenne de tlphone sans cordon DECT (Digital Enhanced Cordless Telecommunications).
Pour les dbits 16/24/32/40 kbit/s, il existe une version multidbit (G.726) ou codes
imbriqus (G.727) du codeur prcdent.
Un codeur 16 kbit/s bas sur des techniques de modlisation et de quantification vectorielle, a t slectionn par lUIT-T en 1991. Cette recommandation G.728 est galement
appele LD-CELP (Low Delay Code Excited Linear Predictive coder) mettant en vidence
que cest un codeur de type CELP (long dveloppement par la suite) et quil prsente
un faible dlai de reconstruction, proprit particulirement importante pour un change
tlphonique.
Une comptition internationale a slectionn en 1995 un codeur 8 kbit/s associant le
codeur ACELP (Algebraic Code Excited Linear Predictive coder) tudi lUniversit de
Sherbrooke (Canada) et dans les laboratoires de France Telecom Lannion et le codeur de
NTT. Il sagit du codeur G.729.
Enfin un codeur 6.3 kbit/s, le codeur G.723.1, spcifie la partie son du visiophone.
Communication avec les mobiles
Les communications avec les mobiles ont connu un grand dveloppement ces vingt dernires
annes. La nature du canal de transmission, une liaison radio, rclame dconomiser au maximum
la largeur de bande du signal transmis pour permettre un grand nombre dutilisateurs.
Depuis 1989, il existe une norme europenne dite GSM 06.10 (ou 6.20 ?) (Groupe Spcial
Mobile) slectionne par le European Telecommunications Standard Institute (ETSI). Une
norme concernant lAmrique du Nord appele IS 54 a t dfinie en 1990 par le Telecommunication Industry Association (TIA). Louverture du service Itineris par France Telecom
a eu lieu le 1er Juillet 1992. Cette premire gnration tait base sur les techniques daccs
multiples par division du temps (TDMA) et sur les codeurs de source4 , RPE-LTP (Regular Pulse Excitation - Long Term Prediction) en Europe 13 kbit/s, VSELP (Vector Sum
Excited Linear Predictive coder) en Amrique du Nord 8 kbit/s.
Une nouvelle norme (GSM 06.60) a t dfinie en 1996 visant amliorer la qualit du
codeur GSM. Il sagit du codeur EFR (Enhanced Full-Rate) [24]. En absence derreurs, on
peut dire que sa qualit est quivalente celle du G.726 32 kbit/s.
Depuis 1999 existe un nouveau codeur (GSM 06.90) ralisant le partage du dbit entre
4

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

codage de source et codage de canal dpendant des conditions de propagation. Il est


dbit variable (codeur AMR pour Adaptive Multi Rate) entre 4,75 et 12,2 kbit/s (en
ralit entre 11,4 et 22,8 kbit/s).
De nouvelles standardisations (3GPP pour 3rd Generation Partnership Project) apparaissent visant lmergence des systmes de communication avec les mobiles dits de troisime gnration Universal Mobile Telephone System (UMTS). Une collaboration UIT/ETSI
a permis la dfinition du codeur G.722.2 qui est un codeur de parole en bande largie.

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

Signal de parole en bande largie

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

Signal de musique en bande Hi-Fi

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

5.3. NORMES ET RECOMMANDATIONS

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

DRM ne pas confondre avec Digital Right Management au cur de MPEG-21 !

N. MOREAU
Licence de droits dusage

12 mars 2009
page 78/162

5.3. NORMES ET RECOMMANDATIONS

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

Codeurs de signaux de parole


6.1

Les codeurs MIC et MICDA

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

Le codeur LPC10 2.4 kbit/s

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

Fig. 6.1 Schma trs gnral dun codeur de parole.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 81/162

CHAPITRE 6. CODEURS DE SIGNAUX DE PAROLE

6.2.1

Dtermination des coefficients du filtre

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 .

Dans la pratique, il faut raliser une estimation de la fonction dautocovariance. On remplace


une moyenne statistique rX (k) = E{X(n)X(n k)} par une moyenne temporelle
N 1
1 X
rX (k) =
x(n)x(n k).
N
n=k

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

Cas des sons non voiss

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

en exploitant la fonction matlab randn par exemple

N. MOREAU
Licence de droits dusage

12 mars 2009
page 82/162

6.2. LE CODEUR LPC10 2.4 KBIT/S

On reconstruit un signal qui a la mme distribution de la puissance en fonction de la frquence


mais les formes donde sont diffrentes. Comme loreille est relativement insensible des modifications de la phase, on reconstruit par ce mcanisme un signal qui est peru approximativement
identique au signal original. On appelle ce type de codeur un vocodeur.
Tout se raisonnement est valable en supposant que le signal de parole puisse tre considr
comme la ralisation dun processus alatoire AR. Cette hypothse est assez raliste pour des
sons non-voiss uniquement.

6.2.3

Cas des sons voiss

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

Fig. 6.2 Cas de sons voiss.


Le problme qui se pose maintenant est de trouver un modle y(n) pour y(n) qui permette
par filtrage dobtenir SX (f ) SX (f ) et qui soit trs conome en dbit. Un peigne de la forme
y(n) =

+
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

CHAPITRE 6. CODEURS DE SIGNAUX DE PAROLE

et que la fonction dautocorrlation2 qui est donne par


rY (k, n) = E{Y (n)Y (n k)} = 2 E{

+
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

Dtermination sons voiss/sons non voiss

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

Son expression est plus simple que celle de la fonction dautocovariance.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 84/162

6.3. LE CODEUR CELP

6.2.5

Contrainte de dbit

Toutes les 20 ms, on transmet les paramtres suivants.


Les coefficients du filtre A(z). Dans le codeur LPC10, P = 10. En prenant comme ordre de
grandeur 3 ou 4 bits pour coder un coefficient, on obtient un dbit de lordre de 1.8 kbit/s.
La puissance Y2 dans le cas dun son non vois ou de faon quivalente le coefficient
dans le cas dun son vois ce qui cote 50 6 300 bit/s (pour couvrir 50 dB par pas de
1 dB).
La distinction vois/non vois soit 50 bits/s.
Enfin la priode fondamentale soit 50 log2 (T0max T0min ) = 350 bits/s.
En sommant toutes ces contributions, on obtient un dbit global de 2.5 kbit/s !

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

et de calculer les paramtres gk et nk de ce modle en minimisant le critre


N
1
X

[x(n) x
(n)]2 .

n=0

Comparativement la dtermination de lentre du filtre de synthse du codeur LPC10 dans


le cas de sons voiss, il y a deux innovations. Il ne sagit plus dun peigne car la position des
impulsions nest plus rgulire et il ne sagit plus de rendre SX (f ) SX (f ) mais bien de rendre
x
(n) x(n). On parle de modlisation par la synthse. A lmetteur on cherche construire
explicitement ce qui sera effectivement ralis au rcepteur. La deuxime ide de B. Atal trois
ans plus tard [34] a t dexploiter la quantification vectorielle qui venait dtre introduite. Lide
consistait proposer comme candidat possible pour lentre du filtre de synthse un vecteur de
dimension N choisi dans un dictionnaire prdfini comme le montre le schma de la figure 6.3
et un gain g. Ce schma de principe montre que le problme sexprime simplement. Connaissant
les N chantillons de la fentre danalyse courante x = [x(0) x(N 1)], il sagit de dterminer
les coefficients a1 aP dun filtre autoregressif dordre P , le numro i dun vecteur dans un
dictionnaire et un gain g minimisant la norme du vecteur derreur. La minimisation conjointe
tant difficile, la minimisation se fait en deux temps. Dans une premire tape, on suppose que
le filtre est soumis une entre blanche. On cherche donc modliser le signal de parole par un
processus alatoire AR. On fait une analyse LPC. Une fois les coefficients du filtre dtermins,
il sagit de caractriser lentre de ce filtre.
On peut fournir un autre schma de principe strictement quivalent au prcdent3 , visualis
figure 6.4, en privilgiant lapproche thorie de linformation plutt que lapproche modlisation paramtrique et faire les commentaires suivants.
3

excepte la fonction de pondration introduite plus tard

N. MOREAU
Licence de droits dusage

12 mars 2009
page 85/162

CHAPITRE 6. CODEURS DE SIGNAUX DE PAROLE


x(m)

Min || x x ||

L1

r(m)

1
x(m)

N1

A(z)

g(m)
i(m)

Fig. 6.3 Schma de principe du codeur CELP.

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

Il sagit dabord dune quantification vectorielle dite gain-forme. On a dj vu dans le cadre


du cours sur la quantification vectorielle que minimiser ||x gj x
k || relativement j et k plutt
k
que ||x x
|| relativement k uniquement permet de grer commodment lvolution au cours
du temps de la puissance instantane du signal. On joue sur le fait que la forme (un vecteur
norm) qui caractrise le contenu spectral du signal et le gain (un scalaire) qui caractrise sa
puissance sont deux informations assez dcorrles.
On ralise ensuite une adaptation rgulire du dictionnaire de quantification vectorielle la
statistique locale du signal par une opration de filtrage. On exploite un modle de production
actualis toutes les vingtaines de millisecondes, tous les N = 160 chantillons. On dispose de
deux niveaux de dictionnaires. Le premier dictionnaire, compos des vecteurs {c0 cL1 }, est
gnralement choisi de faon couvrir peu prs uniformment lespace RN . Il est dtermin
une bonne fois pour toutes et il est connu en termes identiques lmetteur et au rcepteur.
Le second dictionnaire est ractualis rgulirement par filtrage. Les paramtres du filtre sont
calculs en ralisant une analyse LPC partir des N chantillons du signal dans la fentre
danalyse courante. Cette opration de filtrage a pour but de partitionner finement lespace RN
l o le vecteur x a de fortes chances dapparatre et de faon grossire le reste de lespace.
Deux autres caractristiques seront introduites dans ce chapitre. La premire est lemploi
dune fonction de pondration dans le domaine frquentiel, note W (z) sur le schma, de faon
mettre en forme le bruit de quantification. Cette mise en forme est grossire contrairement au
cas des codeurs de musique o on utilise un modle daudition labor comme on le verra plus
tard car, pour les dbits viss (de 4.8 16 kbit/s), le bruit de quantification est trop lev et
la bande utile (infrieure 4 kHz) est trop rduite pour justifier un modle prcis. La seconde
caractristique (non reprsente sur le schma) est la ncessit dintroduire un prdicteur long
terme possdant une structure de type ADPCM.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 86/162

6.3. LE CODEUR CELP

6.3.2

Dtermination des coefficients du filtre de synthse

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

on construit deux nouveaux polynmes dordre P + 1


B1 (z) = A(z) + z P 1 A(z 1 )
B2 (z) = A(z) z P 1 A(z 1 ).
On montre que ces deux polynmes ont les proprits suivantes.
Le polynme B1 (z) est un polynme symtrique. Le polynme B2 (z) est un polynme
antisymtrique.
Si toutes les racines de A(z) sont lintrieur du cercle unit, toutes les racines de B1 (z)
et de B2 (z) sont sur le cercle unit.
Les racines de B1 (z) et B2 (z) apparaissent de faon alterne sur le cercle unit.
Si P est pair, on peut crire B1 (z) et B2 (z) sous la forme
P/2

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

CHAPITRE 6. CODEURS DE SIGNAUX DE PAROLE

Si P est impair, on obtient


(P +1)/2

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

Les Line Spectrum Pairs 1 P vrifient les relations


0 < 1 < < P < .
Connaissant les coefficients ai , on en dduit les coefficients i . Rciproquement, connaissant les
coefficients i , on en dduit les coefficients ai puisque
A(z) =

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

Introduction dun facteur perceptuel


Les fonctions de cot quadratiques se prtent bien aux calculs : elles possdent la bonne
proprit de fournir un systme linaire lorsque lon drive ce critre par rapport aux paramtres
inconnus. Par contre, ce critre nest pas forcment bien adapt notre systme auditif. Une
correction perceptive est trs largement utilise pour pallier cet inconvnient [36]. On rajoute
une fonction de pondration, sous la forme dun filtre de fonction de transfert W(z), avant le
critre de minimisation comme lindique la figure 6.5.
x(m)

A(z)

A(z/ )

L1

r(m)

Min || . ||

1
x(m)

N1

g(m)

A(z)

j(m)

Fig. 6.5 Introduction dune fonction de pondration W (z) = A(z)/A(z/).


Tout un dveloppement sur les phnomnes de masquage dun son par un autre sera donn
ultrieurement. Disons simplement maintenant que le bruit d la quantification est moins
perceptible lorsque le signal a beaucoup dnergie. On dit que le signal masque le bruit. Il nest
pas possible de jouer sur la puissance totale du bruit de quantification. Par contre il est possible
de modifier la forme spectrale du bruit. On cherche donc une fonction de pondration qui attribue
moins dimportance aux zones frquentielles nergtiques cest--dire aux zones formantiques. On
montre que la fonction de transfert W (z) = A(z)/A(z/) avec 0 < < 1 joue ce rle. En effet,
si on note
P
Y
1
P
A(z) = 1 + a1 z + + aP z
=
(1 pi z 1 )
i=1

N. MOREAU
Licence de droits dusage

12 mars 2009
page 88/162

6.3. LE CODEUR CELP

o pi spcifie la ieme racine du polynme A(z), on remarque que


P

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)

Fig. 6.7 Modlisation du signal perceptuel.


gramme met clairement en vidence le fait que lon cherche modliser le signal perceptuel p
par p. On appelle par la suite filtre perceptuel, le filtre caractris par la fonction de transfert
1/A(z/). Le choix de la valeur numrique du facteur perceptuel permet de moduler la fonction
de pondration sa convenance. Pour = 1, tout se passe comme si on nutilisait pas de fonction
de pondration ; on effectue une modlisation du signal original. Lerreur de reconstruction x x

sera approximativement blanche. Pour = 0, on ralise une modlisation du signal rsiduel.


Lerreur de reconstruction aura la forme spectrale du signal original. On choisit gnralement
voisin de 0.8.
Choix du modle dexcitation
Le schma de la figure 6.3 laisse penser que lon choisit, comme modle pour lexcitation, un
vecteur unique issu dun dictionnaire et un seul gain. Pour plus de gnralit, on prendra une

N. MOREAU
Licence de droits dusage

12 mars 2009
page 89/162

CHAPITRE 6. CODEURS DE SIGNAUX DE PAROLE

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

o h(n) est la rponse impulsionnelle du filtre perceptuel et o n = 0 caractrise le premier


chantillon de la fentre danalyse courante. Lexpression prcdente se dcompose en deux termes
p(n) =

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

la contribution dans la fentre courante de lexcitation provenant des fentres prcdentes. On


appelle ce vecteur le ringing, peut-tre parce quune mauvaise gestion de ce terme entrane un
artefact la frquence fe /N dsagrable auditivement. On note
f j = [f j (0) f j (N 1)]t
avec
j

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

6.3. LE CODEUR CELP

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

En notations matricielles, ce problme devient : tant donn une matrice F appartenant RN L ,


compose des L vecteurs colonnes f j , et un vecteur p appartenant RN , extraire de F une matrice
A appartenant RN K , compose de K vecteurs colonnes parmi L, et trouver un vecteur g de
dimension K de faon minimiser
D = ||p Ag||2 = ||p p||2 .
Il sagit dun problme classique de minimisation au sens des moindres carrs si lon suppose
connus les indices j(1) j(K), cest--dire la matrice A [37]. On dtermine g partir du systme
sur-dimensionn p = Ag. On crit que la meilleure approximation p de p est la projection
orthogonale de p dans le sous-espace engendr par les vecteurs colonnes de A ou que le vecteur
p p est orthogonal tous les vecteurs engendrant ce sous-espace. On obtient les quations
normales
(f j(k) )t (p Ag) = 0 pour k = 1 K
ou de faon matricielle
At Ag = At p.
La matrice A est gnralement de rang complet. La matrice At A est donc dfinie positive.
Cette rsolution se fait alors en utilisant la dcomposition de Choleski, par exemple, ou par
des algorithmes rapides si on impose une forme Toeplitz ou proche de Toeplitz cette matrice.
Malheureusement les indices sont inconnus et doivent tre dtermins simultanment avec les
gains.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 91/162

CHAPITRE 6. CODEURS DE SIGNAUX DE PAROLE

Il existe un algorithme optimal : il suffit de dterminer toutes les matrices A correspondant


toutes les combinaisons de K vecteurs parmi L, de rsoudre pour chaque matrice A les quations
normales, dvaluer le critre et de slectionner la combinaison qui minimise ce critre. Sachant
quil existe L!/K!(L K)! combinaisons possibles et que des ordres de grandeur pour K, L et
N sont K = 3, L = 256 et N = 40, on est amen rsoudre 256 255 254/6 cest--dire prs
de 3 millions de systmes linaires dordre 3 toutes les 5 ms ! Il est donc ncessaire de se limiter
un algorithme sous-optimal.
Prcisons le problme. La minimisation de D consiste choisir une combinaison j(1) j(K),
rsoudre les quations normales At Ag = At p, enfin slectionner la combinaison qui maximise
g t At Ag puisque la minimisation de ||p p||2 est quivalente la maximisation de ||
p||2 . En effet,
il suffit dappliquer le thorme de Pythagore
||p p||2 = ||p||2 ||
p||2
et de remarquer que ||p||2 est constant. Puisque
g = (At A)1 At p
le problme consiste finalement slectionner la combinaison j(1) j(K) qui maximise
||
p||2 = pt A(At A)1 At p
puis calculer les gains en rsolvant, une seule fois, les quations normales correspondant la
combinaison choisie.
Algorithme itratif standard
La difficult provient essentiellement de linversion de la matrice At A. Il existe deux faons (au
moins) de simplifier le traitement. On se limite la recherche dun vecteur la fois, lexpression
At A est alors un scalaire, le calcul des indices et des gains se fait de faon itrative. Ou alors,
on impose des proprits particulires la matrice A, par exemple : At A = I quelle que soit la
combinaison. La premire mthode est tout fait standard. Elle a t propose par [33] pour
une excitation multi-impulsionnelle. Elle est largement utilise dans la pratique mais elle est,
malheureusement, sous optimale. La seconde mthode conduit un algorithme optimal mais
elle impose des contraintes trop fortes la matrice F : elle doit tre compose de vecteurs
orthogonaux.
On prsente, ici, lalgorithme itratif standard. On note < x, y > le produit scalaire des deux
vecteurs x et y. A la premire itration, un seul vecteur f j est slectionn. On a
At A =< f j , f j >
At p =< f j , p > .
On doit donc choisir lindex j qui maximise
< p, f j >< f j , f j >1 < f j , p >=

< f j , p >2
< fj, fj >

puis calculer le gain


g1 =

N. MOREAU
Licence de droits dusage

< f j(1) , p >


< f j(1) , f j(1) >

12 mars 2009
page 92/162

6.3. LE CODEUR CELP

A la k eme itration, la contribution des k 1 premiers vecteurs f j(i) est retire de p


pk = p

k1
X

gi f j(i)

i=1

et un nouvel index j(k) et un nouveau gain gk sont calculs vrifiant


j(k) = arg max
j

gk =

< f j , pk >2
< fj, fj >

< f j(k) , pk >


< f j(k) , f j(k) >

Choix du dictionnaire dexcitation


Cet algorithme est applicable quel que soit le contenu du dictionnaire dexcitation. Si on
choisit C = I o C est la matrice compose des vecteurs colonnes cj et I la matrice identit de
dimension N N , on obtient une excitation multi-impulsionnelle. Les indices slectionns j(k)
caractrisent les positions des impulsions choisies et les gains gk dfinissent les amplitudes. Dans
le codeur CELP classique, on initialise le dictionnaire dexcitation par des tirages dune variable
alatoire gaussienne centre ou on le construit par apprentissage en utilisant une variante de
lalgorithme de Lloyd-Max. Dans ces deux cas, on peut vrifier que la complexit du traitement
est assez importante. Pour rduire cette complexit, on peut chercher dfinir un dictionnaire
comportant une forte structure par exemple imposer des valeurs ternaires {+1, -1, 0} et choisir
des positions rgulires dans le dictionnaire pour les valeurs non nulles. Cest la particularit du
codeur G.729 [38] qui est appel pour cette raison le codeur ACELP (Algebraic CELP).
Introduction dun dictionnaire adaptatif
On sait que, pour dterminer les coefficients du filtre A(z), on minimise lnergie de lerreur
de prdiction
P
X
X
D1 =
[x(n)
ai x(n i)]2
n

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

CHAPITRE 6. CODEURS DE SIGNAUX DE PAROLE


0.4

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

Fig. 6.10 Prdiction court terme et long terme.


le dveloppement prsent prcdemment en supposant b et Q prdtermins. On cherche des
vecteurs
cj(k) dans le dictionnaire dexcitation et des gains gk de faon ce que le vecteur
PK
j(k) filtr par le filtre 1/B(z) puis par le filtre perceptuel 1/A(z/) donne le vecteur
k=1 gk c
modlis p le plus ressemblant possible au vecteur p. On a vu que le signal perceptuel modlis
avait pour expression
p(n) =

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

6.3. LE CODEUR CELP

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

On remarque que p1 et pk ont exactement la mme forme et sinterprtent de la mme faon,


comme le filtrage dun vecteur connu par le filtre perceptuel partant de conditions initiales nulles
et dune pondration par un gain. Lalgorithme standard consiste donc dabord minimiser le
critre
||(p p0 ) p1 ||2
pour dterminer Q et b puis minimiser le critre
||(p p0 p1 ) p2 ||2
pour dterminer j(2) et g2 , etc. On remarque que les deux paramtres du prdicteur long terme
Q et b peuvent tre calculs exactement de la mme manire que les paramtres j(k) et gk la
condition de construire un dictionnaire adaptatif comportant lexcitation passe

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

CHAPITRE 6. CODEURS DE SIGNAUX DE PAROLE

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

Codeurs de signaux de musique


7.1

Principe des codeurs perceptuels

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

CHAPITRE 7. CODEURS DE SIGNAUX DE MUSIQUE

-Estimateur SX (f-) Modle

spectral

daudition
?(f )
Allocation
de bits

x(n)

x(m)

X(m)-

Chane

X(m)
-

?
- Q1

- binaire

x
(m)

x
(n)
Emetteur

Rcepteur

-Canal -

Fig. 7.2 Schma de principe dun codeur perceptuel


codage entropique plus des informations adjacentes comme par exemple le rsultat de lallocation
de bits, information a priori ncessaire au rcepteur. Au rcepteur, il faut construire le vecteur

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

7.2. CODEUR MPEG-1 LAYER1

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

Fig. 7.4 Elimination des composantes masques.


composantes peuvent tre limines et que le rapport signal sur masque moyen est de lordre de
12 dB ce qui rclame donc 2 bits en moyenne par composante. Le taux de compression est donc
de lordre de 2 16/2 = 16. Pour du signal de musique au format CD, le dbit le plus faible tout
en respectant la contrainte dinaudibilit (dans cette fentre) est de lordre dune quarantaine de
kbit/s. On voit tout de suite que tout dpend de la prcision avec laquelle on a dfini le modle
psychoacoustique. Dfinir un bon modle est un problme trs dlicat.
En ralit, la dfinition dun codeur audio ne se rsume pas cette dmarche. Toute une srie
de problmes spcifiques doivent tre tudis. Les deux prochaines sections dcrivant les deux
codeurs perceptuels de base devraient montrer que la ralisation dun codeur audio prsentant
de bonnes performances est le rsultat de nombreux compromis assez subtils. Si on dsire une
tude beaucoup plus labore, on se rfrera [40].

7.2

Codeur MPEG-1 Layer1

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

CHAPITRE 7. CODEURS DE SIGNAUX DE MUSIQUE

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

La transformation temps/frquences utilise est un banc de M = 32 filtres pseudo-QMF1


ralisant une partition uniforme de laxe des frquences comme le montre le trac de la figure 7.5
qui ne visualise que les rponses en frquence des premiers filtres du banc. Ce banc de filtres nest
20

|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

Modlisation psychoacoustique et allocation de bits

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

Filtres miroir en quadrature


Pour mettre clairement en vidence le fait que ce sont dabord des signaux avant dtre des composantes dun
vecteur ayant une interprtation frquentielle, on a gard la notation utilise la section 3.2 plutt que la notation
X(m) de ce chapitre.
2

N. MOREAU
Licence de droits dusage

12 mars 2009
page 100/162

7.2. CODEUR MPEG-1 LAYER1

dans la fentre danalyse courante. A partir de SX (f ), le codeur calcule un seuil de masquage


(f ) en utilisant un modle psycho-acoustique puis un rapport signal sur masque SX (f )/(f ).
A partir de ces M rapports signal sur masque, le codeur ralise une allocation de bits cest dire
dtermine le nombre de bits bk avec lesquels sera quantifie chaque composante du vecteur ak .
Lalgorithme adopt est lalgorithme greedy standard.

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

Il sagit de quantificateurs de type midtread [2, page 117].

N. MOREAU
Licence de droits dusage

12 mars 2009
page 101/162

CHAPITRE 7. CODEURS DE SIGNAUX DE MUSIQUE


NoQ
SB0
SB1
SB2
SB3
SB4
SB5
SB6
SB7
SB8
SB9
SB10
SB11
SB12
SB13
SB14
SB15
SB16
SB17
SB18
SB19
SB20
SB21
SB22
SB23
SB24
SB25
SB26

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

Tab. 7.2 Nombre de pas de quantification possible par sous-bandes.


comprises entre 0 et 7.5 kHz, accepte 16 quantificateurs. Il faudra donc, en premier lieu, consacrer
4 bits pour spcifier le numro du quantificateur slectionn. On notera ce numro N oQk . Ces
deux premiers groupes se distingue par une configuration diffrente des quantificateurs possibles.
Le troisime groupe accepte 8 quantificateurs, le quatrime 4. Les sous-bandes 27 32 ne sont
pas codes.
Pour reconstruire le signal, le rcepteur a besoin de connatre non seulement les mots de
code associs chaque composante du vecteur ak et aux facteurs dchelle mais aussi lallocation
de bits ralise lmetteur. Cette dernire information doit donc tre transmise dans le flux
binaire. Elle cote 11 4 + 12 3 + 4 2 = 88 bits. En supposant par exemple que 20 sousbandes soient transmises parmi les 27 possibles (les 5 dernires ne le sont jamais), linformation
adjacente (allocation de bits + facteurs dchelle) reprsente 88+120 bits. A 96 kbit/s, le nombre
de bits restants pour coder les amplitudes des signaux de sous-bande normaliss est gal
96 384/44.1 88 120 = 628 bits. A 64 kbit/s, il reste 350 bits. On voit donc que le nombre de
bits rserv la partie noble baisse beaucoup. On comprend alors pourquoi ce codeur fournit
une bonne qualit tout en diminuant le dbit jusqu ce que lon atteigne un dbit critique en
dessous duquel la qualit seffondre.

7.3

Codeur MPEG-2 AAC

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

7.3. CODEUR MPEG-2 AAC


100

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)

Remarquons, quau rcepteur, connaissant i et g, on peut reconstruire

[|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

CHAPITRE 7. CODEURS DE SIGNAUX DE MUSIQUE


5.5
10000

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

Fig. 7.8 Les vecteurs |X| et g gauche. Le vecteur i droite.


bits suffisant pour reprsenter exactement le vecteur i est donc gal M 3. Ce nombre total
est-il ncessaire ? Il existe certainement une solution plus conomique en ralisant un codage de
Huffman. En ralit, la solution adopte dans ce codeur est de partitioner laxe des frquences en
51 bandes correspondant grosso modo des demi-bandes critiques, de dterminer dans chaque
bande la valeur maximale atteinte par i(k) puis de raliser un codage spar dans chaque bande en
utilisant des tables de Huffman indexes sur la valeur maximale et construite par apprentissage.
La chane binaire devra donc comporter les mots de code des M entiers i(k), les mots de code
des 51 valeurs maximales et les mots de code des facteurs dchelle g(k).
Il ne reste plus qu dterminer le vecteur des facteurs dchelle g. A priori on peut voir
ce problme comme un simple problme doptimisation : il sagit de dterminer g minimisant
la puissance de lerreur de reconstruction sous la contrainte que le nombre de bits ncessaire
soit infrieur au nombre de bits disponibles. Cette solution nest en fait pas raliste car on peut
constater quelle nautoriserait que des taux de compression faibles (de lordre de 2) si on veut
que le signal reconstruit soit transparent. Pour obtenir des taux de compression plus levs (de
10 15), il faut exploiter les rsultats de psychoacoustique et mettre en forme spectralement le
bruit de reconstruction. Il sagit, en ralit, dun problme doptimisation sous 2 contraintes : une
contrainte de dbit, le nombre de bits ncessaire doit tre infrieur au nombre de bits disponible,
et la contrainte psychoacoustique SQ (f ) < (f ) f . Lalgorithme doptimisation propos dans
le document normatif est un algorithme de type gradient bas sur la proprit suivante. Si on
augmente un facteur dchelle g(k), on diminue lentier i(k). On diminue donc le dbit mais
on augmente la puissance du bruit de reconstruction dans la zone frquentielle caractrise par
lindice k. Rappelons que lalgorithme propos est facultatif, il ne fait pas partie de la norme.
Comme les facteurs dchelle doivent tre transmis, ils consomment une partie du dbit binaire
disponible. Il nest pas raisonnable de vouloir transmettre M facteurs dchelle. La partition de
laxe des frquences prcdente en 51 bandes est aussi utilises pour les facteurs dchelle ce qui
explique la courbe en marches descalier de la figure 7.8. Le codage du premier facteur dchelle
est ralis sur 8 bits, le codage des 50 suivants est ralis en codant (k) = g(k) g(k 1) par
une table de Huffman.
Notons que le codeur MPEG-2 AAC est un codeur perceptuel en boucle ferme. Lalgorithme
de dtermination des facteurs dchelle exploite la valeur relle de lerreur de reconstruction et
non la valeur suppose aprs une opration darrondi.
Cette prsentation ne donne que les grands principes. Une tude plus dtaille est ncessaire
si on veut avoir une bonne connaissance de ce codeur. De nombreux points devraient tre approfondis. Prenons juste un exemple et examinons le trac de la figure 7.9. Le signal de musique

N. MOREAU
Licence de droits dusage

12 mars 2009
page 104/162

7.4. CODEUR DOLBY AC-3


5000
4000
3000
2000
1000
0
1000
2000
3000
4000
5000
1000

2000

3000

4000

5000

6000

7000

Fig. 7.9 Commutation fentres longues/fentres courtes.


visualis est un signal de piano mettant en vidence la frappe dune note. Il prsente une monte en puissance importante. Tant que le signal est relativement stationnaire dans une fentre
danalyse, on a sans doute intrt rechercher une bonne rsolution frquentielle ce qui ncessite
une fentre danalyse longue. Dans la ou les fentres o le signal prsente une non stationnarit
caractrise, on a plutt intrt rechercher une bonne rsolution temporelle. On a alors besoin
de fentres danalyse plus courtes. Dans le codeur MPEG-2 AAC, une fentre de N = 2048
chantillons est divise en 8 sous fentres de 256 chantillons. Pour respecter les conditions de
reconstruction parfaite donnes par lquation (3.2), il faut introduire des fentres de transition
en amont et en aval. Bien entendu il faut dfinir un critre qui permette de dcider une commutation fentres longues/fentres courtes. Le critre propos5 dans le document normatif est
assez subtil. Il exploite le gain de prdiction : dans une monte en puissance le signal nest pas
trs prdictible. Cette commutation fentres longues/fentres courtes donne de bons rsultats
mais un effet trs important sur le dlai de reconstruction. En effet, on ne peut dcider une
commutation quaprs avoir observ compltement une monte en puissance et dans ce cas il
faut introduire une fentre de transition en amont de la monte en puissance. On se rappelle que
des dlais de reconstruction longs sont incompatibles avec des communications bi-directionnelles
ce qui explique lexistence dune version du codeur AAC dite low delay dans MPEG-4, version
dans laquelle la notion de fentres courtes a t supprime ...

7.4

Codeur Dolby AC-3

[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

Bien entendu, il ne fait pas partie de la norme.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 105/162

CHAPITRE 7. CODEURS DE SIGNAUX DE MUSIQUE

Regroupement des exposants avec un indicateur dcrivant leur mode de groupement

7.5

Modle psychoacoustique : calcul du seuil de masquage

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

7.5. MODLE PSYCHOACOUSTIQUE : CALCUL DU SEUIL DE MASQUAGE

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

Tab. 7.3 Bandes critiques. Les frquences sont exprimes en Hz.


Dans cette table, les 24 bandes critiques sont artificiellement juxtaposes. En fait, loreille
peut former une bande critique autour de nimporte quelle frquence. La relation entre une
frquence exprime en Hertz dans lintervalle [20 Hz - 20 kHz] et une frquence exprime en Bark
6

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

CHAPITRE 7. CODEURS DE SIGNAUX DE MUSIQUE

dans lintervalle [1 - 24] sapproxime par lexpression suivante


fB = 13 arctg[0.76

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

7.5. MODLE PSYCHOACOUSTIQUE : CALCUL DU SEUIL DE MASQUAGE

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

CHAPITRE 7. CODEURS DE SIGNAUX DE MUSIQUE

N. MOREAU
Licence de droits dusage

12 mars 2009
page 110/162

Chapitre 8

Codage audio : complments


Le dveloppement de codeurs perceptuels de haute qualit dbit rduit a t lobjet dimportants efforts de recherche ces vingt dernires annes. Le codeur actuellement le plus abouti est
le codeur AAC prsent dans MPEG-2 et MPEG-4. Il fait toujours lobjet damliorations dues
essentiellement lintroduction de nouveaux outils. Dans ce chapitre on prsente deux volutions
rcentes caractristiques : la recherche de codeurs de bonne qualit faible dbit mais aussi la
recherche de codeurs de trs bonne qualit voir du sans perte. Notons toutefois que ces deux
volutions ne prsentent pas du tout les mmes taux de compression et par consquent le mme
intrt. Disposer dun codeur bas dbit tout en maintenant une qualit acceptable intresse
considrablement plus les oprateurs que de disposer dun codeur sans perte prsentant un faible
taux de compression. Un dveloppement sera quand mme consacr ce codeur dans ce document car il possde une proprit intressante sur le plan pdagogique : les algorithmes utiliss
dans ce codeur sont des adaptations directes dalgorithmes dvelopps en codage dimage. Cette
convergence codage audio/codage dimage est suffisamment rare pour tre note.
Dans ce chapitre, on prsentera relativement sommairement ces volutions rcentes du codeur
AAC. Dans le chapitre suivant, on ralisera une tude beaucoup plus approfondie de loutil
consacr au codage stro.

8.1

Codeurs bas-dbits/qualit acceptable

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

Premier outil : Spectral Band Replication (SBR)

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

site internet www.3gpp.org puis onglets Technical bodies, SA WG4, Specifications

N. MOREAU
Licence de droits dusage

12 mars 2009
page 111/162

CHAPITRE 8. CODAGE AUDIO : COMPLMENTS


100

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

Deuxime outil : Parametric stereo (PS)

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

8.1. CODEURS BAS-DBITS/QUALIT ACCEPTABLE

stro. La technique intensity stereo exploite cette proprit en ne transmettant dans


les hautes frquences quun seul signal plus des facteurs dchelle fonctions du temps et
des frquences pour encoder des diffrences dintensit entre les deux voies stro. On
exploite le fait que la perception des composantes hautes frquences est directement relie
lenveloppe nergtique temporelle. En considrant que ce codage est effectu dans la
demi-bande hautes frquences, le gain en dbit est de lordre de 25 % pour des signaux
stro. Le gain peut tre suprieur pour des signaux multi-canaux car il ny a toujours
transfert que dun seul canal (dans la demi-bande hautes frquences).
Un regain dintrt sest exprim ces dernires annes pour la compression audio multicanaux
(stro mais aussi pour le format 5.1) sous la pression du march du DVD ou des oprateurs
tlphoniques qui veulent, par exemple, des systmes de reproduction du son de bonne qualit
sur un tlphone mobile ...
Principe du codage audio paramtrique stro
Le schma de principe est donn la figure 8.2. Lorsque le dbit vis est faible (quelques

x1 (n) - Codeur - - Dcodeur s(n)


Procdure s(n)
x2 (n) - de
mono
mono
downmix
Extraction
-des paramtres

Paramtres
spatiaux

Codeur

Procdure
dupmix

x
1 (n)
x
2 (n)

Synthse
paramtrique
Dcodeur

Fig. 8.2 Schma de principe dun codeur audio paramtrique


dizaines de kbit/s), il nexiste plus gure quune seule possibilit : construire dabord partir
de tous les canaux un seul signal (procdure de downmix), coder ce signal avec un codeur
standard, par exemple le codeur MPEG-4 AAC, et transmettre cette information avec des informations adjacentes. Le dveloppement de la sous section suivante consacre la perception
de lespace sonore montrera quen ralit il existe trois informations adjacentes significatives :
la diffrence intercanale de temps (ICTD), la diffrence intercanale dintensit (ICLD) et la cohrence intercanale (ICC). On peut interprter cette dmarche comme une gnralisation de la
technique Intensity stereo. Au rcepteur, on reconstruit une image spatiale en fabriquant un
signal stro ou multicanaux (procdure dupmix) partir du signal mono cod et des informations adjacentes. Ces informations adjacentes tant indpendantes du codeur, cette technique est
assez gnrale. Elle prsente aussi le grand intrt dassurer une compatibilit arrire complte
avec une transmission mono. On peut remarquer aussi quil nest pas ncessaire de sintresser
aux conditions de masquage dans un contexte binaural.
Deux quipes distinctes ont particulirement travaill dans ce domaine en proposant deux
techniques assez similaires. Faller et al. dnomment leur proposition codage par indices binauraux (BCC pour Binaural Cue Coding) [46] [47] [48]. Breebart et al. parlent de codage stro
paramtrique (PS pour Parametric Stereo) [49]. Dautres quipes proposent des contributions,
par exemple [50] [51]. On pourra trouver des rfrences aux travaux MPEG dans [52] [53].
Rsultats
La description paramtrique du champ sonore spatial qui est ralise permet dobtenir une
reprsentation extrmement compacte (quelques kbit/s). Cette technique a t dveloppe dans

N. MOREAU
Licence de droits dusage

12 mars 2009
page 113/162

CHAPITRE 8. CODAGE AUDIO : COMPLMENTS

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

Perception de lespace sonore

On donne juste quelques rsultats de psychoacoustique relatifs lcoute binaurale dans le


cas le plus simple, une source sonore en champ libre [45, 54].
La direction dincidence du son est caractrise par son azimut (angle que fait la direction
incidente avec le demi-plan vertical situ dans laxe du visage) et llvation (angle que fait cette
direction incidente avec un plan horizontal). La localisation en lvation qui donne des rsultats
trs diffrents suivant la nature du signal et la localisation en distance qui est lie lintensit
perue (pour un son pur la distance subjective est dautant plus importante que son intensit
est leve) ninterviendront pas par la suite.
Deux indices binauraux sont impliqus dans la localisation en azimut.
La diffrence de temps darrive dun son loreille gauche et loreille droite : la diffrence
interaurale de temps (ITD : Interaural Time Difference). Elle est significative surtout en
basses frquences, frquences infrieures 1500 Hz (longueur donde gale 23 cm correspondant la distance interaurale).
Lattnuation due la tte entranant une diffrence dintensit : la diffrence interaurale
dintensit (ou de niveau ILD : Interaural Level Difference). Une source place la gauche
dun auditeur engendre une plus grande intensit du signal loreille gauche qu loreille
droite. Elle est significative surtout en hautes frquences.
Le troisime indice binaural exploit en codage est celui qui est reli ltendue subjective dune
source : un vnement auditif peut tre peru de faon trs ponctuelle ou au contraire tre trs
peu localis comme par exemple lors dun concert dans une glise cause des rflexions multiples.
On parle alors de cohrence interaurale (IC : Interaural coherence).
Il existe dautres lments de psychoacoustique relatifs la perception de lespace sonore mais
ils ne sont gure exploits en codage audio. On en donne quelques exemples :
Effet de prcdence ou la loi du premier front donde. Deux sons qui arrivent aux oreilles
dans un temps assez bref sont entendus comme un seul et cest alors le premier qui dtermine la perception spatiale.
Si le dlai est suprieur quelques ms, les rflexions dune source sonore sur les obstacles
environnants (lorsquelles sont perues distinctement) sont appels des chos tandis que les
rflexions suivantes se fusionnent habituellement pour former la rverbration.
Le signal audio entrant dans le systme auditif peut tre vu comme une version filtre du
signal issu de la source. Ce filtrage est caractris par une fonction de transfert (HRTF :
Head-Related Transfert Functions) qui dpend de chaque source. Lensemble de la tte et
du pavillon ralise un filtrage complexe dont leffet est notable entre 500 et 16000 Hz.
Les rsultats de psychoacoustique fournissent donc des indices relatifs aux signaux en entre
du systme auditif. Dans une coute au casque, les indices mesurs directement sur les signaux
audio sont pratiquement identiques aux indices binauraux. Il nen nest plus de mme a priori
pour une retransmission par hauts-parleurs car il faudrait tenir compte des fonctions de transfert acoustiques du couple transducteurs/oreilles (HRTF). En ralit, dans une application de

N. MOREAU
Licence de droits dusage

12 mars 2009
page 114/162

8.2. CODEURS HAUT-DBITS/SANS PERTE OU PRESQUE SANS PERTE

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

Codeurs haut-dbits/sans perte ou presque sans perte

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

o lopration indispensable de quantification Q(.) permettait de ramener r(n) au mme format


que x(n) et o le calcul des coefficients ak et bk tait ralis par des algorithmes classiques, par
exemple lalgorithme de Levinson en virgule fixe. Ces systmes de compression ralisaient ensuite
un codage entropique de lerreur de prdiction par codage de Huffman mais le plus souvent par
codage de Rice qui est adapt une source laplacienne cest dire une source o les faibles
valeurs sont les plus frquentes.
Vu limportance de ce type de codage dans ces codeurs, on donne le principe du code de Rice
partir dun exemple. Prenons lexemple du codage de la valeur +26 qui a pour reprsentation
binaire 0 011010, les points de suspension traduisant le fait quil faudrait une information
supplmentaire pour tre prcis savoir la valeur maximale permise. On choisit un entier m par
exemple 3. Le mot de code est alors construit de la faon suivante : on code dabord son signe, ici
avec le bit 0, puis on utilise directement les 3 bits les moins signifiants i.e. 010. Il reste reprsenter
les bits les plus signifiants 11. Traduit de binaire en dcimale cela donne 3, on rajoute donc 3
zros suivi dun 1 final ce qui donne finalement le mot de code 00100001. La connaissance de la
valeur maximale possible de la source nest pas ncessaire ici. Il faut videmment que les valeurs
faibles aient des probabilits dapparition fortes pour que cela soit intressant. Le paramtre m
est constant dans une fentre danalyse et peut tre pris gal m = log2 (loge (2)E{R(n)}). Le
code de Rice est un cas particulier du code de Golomb lorsque le paramtre m est une puissance
de 2, ce qui facilite beaucoup son implantation.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 115/162

CHAPITRE 8. CODAGE AUDIO : COMPLMENTS

8.2.2

Normalisation ISO/IEC MPEG-4

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

8.2. CODEURS HAUT-DBITS/SANS PERTE OU PRESQUE SANS PERTE

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

CHAPITRE 8. CODAGE AUDIO : COMPLMENTS

N. MOREAU
Licence de droits dusage

12 mars 2009
page 118/162

Chapitre 9

Codage stro : une prsentation


synthtique
Au chapitre prcdent on a juste donn le principe du codage audio paramtrique stro.
Dans ce chapitre, on se propose de raliser une tude beaucoup plus prcise de ce type de codage.
Larticle de Breebart [49] est une excellente introduction mais la lecture de cet article nest pas
toujours trs facile parce que certains rsultats importants sont souvent prsents sans luxe de
dtails et parce que ces rsultats ne sont parfois que des approximations trs raisonnables sans
doute pour un spcialiste de ce domaine mais loin dtre videntes pour un nophyte. On propose
ici un clairage essentiellement de traiteur de signal.

9.1

Hypothses de base et notations

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)

la matrice dintercovariance en posant c = X1 /X2 .


Les trois indices intercanaux prsents au chapitre prcdent, la diffrence dintensit ICLD,
la diffrence de temps ICTD et la cohrence ICC, sont obtenus partir dune estimation des
puissances et de la fonction dintercovariance
ICLD = 10 log10

X
1
2 = 20 log10 c

X
2

ICT D = arg max |


(n0 )|
n0

(9.2)

ICC = |
(n0 = ICT D)|.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 119/162

CHAPITRE 9. CODAGE STRO : UNE PRSENTATION SYNTHTIQUE

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

Dtermination des indices intercanaux

9.2.1

Estimation de la puissance et de lintercovariance

On exploite les estimateurs standards de la puissance dun signal et de lintercovariance entre


deux signaux. On obtient pour la puissance
2

X
=

N 1
1 X 2
1
1
||X||2
x (n) = xt x = X t X =
N
N
N
N
n=0

et pour le coefficient (0)


PN 1

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

9.2. DTERMINATION DES INDICES INTERCANAUX

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

Fig. 9.1 A gauche signal stro, droite fonction dintercovariance correspondante.


approximativement gale 0 dB, la diffrence de temps est de 8 chantillons correspondant
0.2 ms et la cohrence est lgrement suprieure 0.8, caractristiques dune source sonore bien
localise approximativement gale distance des deux haut-parleurs.

9.2.2

Evaluation des indices intercanaux

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

CHAPITRE 9. CODAGE STRO : UNE PRSENTATION SYNTHTIQUE

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

<{X t1 (b) X 3 (b, n0 )}


||X 1 (b)|| ||X 2 (b)||

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

en conformit avec lquation (9.3), on obtient lapproximation


X 3 (b) = exp[j ICP D(b)] X 2 (b).
On a donc
X t1 (b)X 3 (b) = X t1 (b)X 2 (b) exp[j ICP D(b)]
X t1 (b)X 3 (b) = |X t1 (b)X 2 (b)| exp[j ICP D(b)] exp[j ICP D(b)] = |X t1 (b)X 2 (b)|
ce qui entrane
ICC(b) =

|X t1 (b) X 2 (b)|
.
||X 1 (b)|| ||X 2 (b)||

Pour des bandes critiques correspondant des frquences leves nmax


est faible. Il faudrait alors sintresser
0
des valeurs de n0 fractionnaires pour avoir une bonne prcision. A prciser.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 122/162

9.3. PROCDURE DE DOWNMIX

9.2.3

Conclusion

Finalement, pour chaque tuile de la dcomposition temps/frquences, connaissant X 1 (b) et


X 2 (b), on calcule les trois indices intercanaux
ICLD(b) = 10 log10

||X 1 (b)||2
||X 2 (b)||2

ICP D(b) = arg{X t1 (b) X 2 (b)}


ICC(b) =

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

Dveloppement dans le domaine temporel

Dterminons le vecteur (normalis) p = [cos() sin()]t maximisant la puissance de S(n) =


= pt X(n). On obtient

pt [X1 (n)X2 (n)]t

popt = arg max E{[pt X(n)]2 } = arg max pt E{X(n)X t (n)}p = arg max pt p
p

sous la contrainte ||p|| = 1. Cest un problme classique dAnalyse en Composantes Principales


(ACP). On annule la drive de pt p [pt p 1] par rapport p. On obtient p = p. Le
paramtre est donc une valeur propre de la matrice . En prmultipliant cette quation par pt ,
on obtient pt p = pt p = . 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 .
Les valeurs propres de la matrice 0 donne par (9.1) ont pour expression

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

appele downmix passif dans la littrature

N. MOREAU
Licence de droits dusage

12 mars 2009
page 123/162

CHAPITRE 9. CODAGE STRO : UNE PRSENTATION SYNTHTIQUE

La plus grande valeur propre est

1
= (c + 1/c + ).
2
Si on lassocie au premier vecteur propre on obtient
tan() =

(0)
2(0)
.
=
1/c
c 1/c +

Si on lassocie au deuxime vecteur propre on obtient


tan() =

(0)
2(0)
.
=
c
c 1/c

Dans les deux cas, si on exploite la relation


tan(2) =
on obtient

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)

la fonction y() prsente un extremum pour




1
2(0)
.
= arctan
2
c 1/c
Lexamen des 4 cas possibles suivant le signe de (0) et de c 1/c conduit prendre modulo
/2 comme dans lquation (9.6). Connaissant opt , on en dduit s1 (n) et s2 (n).

9.3.2

Dans le domaine frquentiel

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


1 X t1 (b)X 2 (b) + X t2 (b)X 1 (b)
=
2
||X1 (b)|| ||X2 (b)||
||X1 (b)|| ||X2 (b)||
(0, b) =

|X t1 (b)X 2 (b)|
cos[ICP D(b)]
||X1 (b)|| ||X2 (b)||

(0, b) = ICC(b) cos[ICP D(b)].


Les trois indices intercanaux donns par (9.4) sont donc suffisants pour calculer le signal monophonique s(n).

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

CHAPITRE 9. CODAGE STRO : UNE PRSENTATION SYNTHTIQUE

ou pour simplifier les notations



 


S
cos() sin()
X1
=
.
S0
sin() cos()
X2
Au rcepteur il faut faire les oprations inverses
 



1
cos() sin()
S
X
.
2 = sin() cos()
S0
X
1 = X1 et X
2 = X2 . Comme on ne le connat
Si on connaissait S 0 ou s0 (n), on obtiendrait5 X
pas, on introduit plusieurs modifications.

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)

Fig. 9.2 Restitution strophonique.


x2 (n) au canal droit. Le troisime sommet O correspond la place de lauditeur (sweet spot).
Les deux canaux crent une source virtuelle positionne en M qui est caractrise par langle
xOM gal , lazimuth de la source. En remarquant que = 0 lorsque c est trs grand (la
source virtuelle est en A) et = 0 lorsque c est trs petit (la source virtuelle est en B), on
obtient
4
= 0 ( + 1).

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

Il faut rajouter des conditions dues la synthse OLA.

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

Fig. 9.3 Angle en fonction de c pour diffrentes valeurs de (0).


la faon la plus lmentaire est de prendre une simple version retarde ou de raliser un filtrage
par un filtre en peigne et par un filtre passe-tout. Dans [49], Breebaart propose dutiliser un filtre
de rponse impulsionnelle


N/2
2 X
k
k
h(n) =
cos 2 n + 2 (k 1)
N
N
N
k=0

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

Rglage des puissances

On a vu que S et S 0 lmetteur nont pas du tout la mme puissance. Si au rcepteur S 0


est dduit de S, on supposera que lon engendre dabord une composante de mme puissance. Il
faudra donc ensuite rgler convenablement les puissances. Si on crit


 

S
cos()
0
S
=
S0
0
sin()
S0
on voit que cette paramtrisation entrane la conservation des puissances S2 + S20 = S2 . Il suffit
de sassurer ensuite que le rapport des puissances soit gal au rapport des valeurs propres donn
par (9.7)

1
2
42 (0) 4
tan() =
=
avec = 1 +
.

1
1+
(c + 1/c)2

9.4.3

Alignement de phase

On introduit un alignement de phase comme le propose Breebaart et al. [49] en rajoutant


une matrice supplmentaire sous la forme

 




1
X
exp(j1 )
0
cos() sin()
cos()
0
S
.
2 =
0
exp(j2 )
sin() cos()
0
sin()
S0
X
Donnons une interprtation de 1 et 2 dans le plan complexe. On remarquera dabord quune
interprtation dans le plan complexe ne peut se faire quavec des scalaires (complexes) et non des
vecteurs alors que lon veut interprter le comportement dun certain nombre de composantes
dans une sous bande. En ralit on interprtera un comportement moyen spcifique de chaque
sous bande.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 127/162

CHAPITRE 9. CODAGE STRO : UNE PRSENTATION SYNTHTIQUE

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
-

Fig. 9.4 Dans le plan complexe : cas o S = X1 + X2 .


de phase intercanale
ICP D(b) = arg{X t1 (b) X 2 (b)}
sinterprte comme langle (Ox, OM1 ) (Ox, OM2 ) = (OM1 , OM2 ). On introduit la diffrence
de phase totale (Overall Phase Difference)
OP D(b) = arg{X t1 (b) S (b)}.
dont linterprtation dans le plan complexe est donne la figure 9.4. On voit que si on pose
1 et X
2 au rcepteur align en moyenne
1 = OP D et 2 = OP D ICP D, on obtiendra X
avec X1 et X2 lmetteur.
1 et X
2 , deux synthses OLA, une pour chaque voie, permettent ensuite de
Connaissant X
calculer x
1 (n) et x
2 (n).

9.4.4

Informations transmettre dans le canal

Pour chaque tuile de la dcomposition temps/frquences on doit transmettre lICLD, lICPD,


lICC et a priori lOPD. En ralit le transfert de lOPD nest pas ncessaire.
En effet, si on ralise un downmix passif S = X1 + X2 , Lapierre et Lefebvre [51] ont montr
que
OP D = arg{X t1 (X 1 + X 2 )} = arg{||X 1 ||2 + |X t1 X2 | exp(j ICP D)}
OP D = arg{

|X t1 X2 |
||X 1 ||
+
exp(j ICP D)}
||X 2 || ||X 1 || ||X 2 ||

OP D = arg{c + ICC exp(j ICP D)}.


Ce rsultat se gnralise directement dans le cas dun downmix actif. En effet
OP D = arg{X t1 [cos()X 1 + sin()X 2 ]}
OP D = arg{cos()

|X t1 X2 |
||X 1 ||
+ sin()
exp(jICP D)}
||X 2 ||
||X 1 || ||X 2 ||

OP D = arg{cos() c + sin() ICC exp(j ICP D)}.

N. MOREAU
Licence de droits dusage

12 mars 2009
page 128/162

9.5. DRAFT INTERNATIONAL STANDARD

9.5

Draft International Standard

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

Tab. 9.1 Dictionnaire de quantification pour lICLD, lICPD et lOPD.


danalyse. Si on transfre ces paramtres toutes les 20 ms, le dbit correspondant est de 2 kbit/s.
On montre, figure 9.5, les angles calculs au rcepteur en fonction du temps pour lensemble
des bandes critiques lorsque le signal strophonique trait est le rsultat dun double panoramique dintensit. On rappelle que pour un panoramique dintensit, les deux canaux x1 (n) et
x2 (n) sont crs partir dune source unique s(n) de la faon suivante x1 (n) = g1 s(n) et
x2 (n) = g2 s(n). Ici on a simultanment un violon paraissant se dplacer du haut parleur
gauche vers le haut parleur droit puis retour vers le haut parleur gauche et un piano paraissant
faire le chemin inverse.
100

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

CHAPITRE 9. CODAGE STRO : UNE PRSENTATION SYNTHTIQUE

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

Script de la fonction appelante

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

CHAPITRE 10. UN CODEUR DE PAROLE

fprintf(Gamma = %.2f\n, Gamma)


% Lecture du signal
prefixe = C:\Documents and Settings\Nicolas\Mes documents;
prefixe_in = [prefixe \mes_signaux\signaux_ref\fe_8\];
prefixe_out = [prefixe \mes_signaux\signaux_temp\];
signal_xn = wavread([prefixe_in voix_femme_1.wav], [0.15 3]*Fe);
Nbre_ech = length(signal_xn);
Nbre_ech_visu = Fe/4;
axe_temps = (0:Nbre_ech_visu-1)/Fe;
vmax_xn = max(abs(signal_xn));
figure(1); hold off
plot(axe_temps, signal_xn(1:Nbre_ech_visu)); hold on
axis([0 Nbre_ech_visu/Fe 1.1*max(abs(signal_xn))*[-1 1]])
% Quelques rservations
etat_yn = zeros(P,1);
etat_pn = zeros(P,1);
etat_ringing = zeros(P,1);
etat_xn_hat = zeros(P,1);
signal_yn = zeros(Nbre_ech, 1);
signal_yn_hat = zeros(Nbre_ech, 1);
signal_xn_hat = zeros(Nbre_ech, 1);
buffer_yn_hat = zeros(L_plt+M_prime,1);
vn = 0.56 - 0.44*cos(2*pi*(0:N-1)/(N-1));
% Traitement par fenetre
Nbre_fen = fix((Nbre_ech-N)/M) + 1;
Nbre_fen_visu = fix((Nbre_ech_visu-N)/M) + 1;
for no_fen = 1:Nbre_fen
n1 = (no_fen-1)*M + 1;
n2 = n1 + N - 1;
n3 = n1 + (N-M)/2;
n4 = n3 + M - 1;
% Analyse LPC et calcul du signal rsiduel
xn = vn.*signal_xn(n1:n2);
[a sigma2] = analyse_lpc(xn, P);
xn = signal_xn(n3:n4);
[yn, etat_yn] = filtre_ma(a, xn, etat_yn);
signal_yn(n3:n4) = yn;
% Calcul du signal perceptuel
a_percep = a.*(Gamma.^(0:P));
[pn, etat_pn] = filtre_ar(1, a_percep, yn, etat_pn);
% Filtrage du dictionnaire "stochastique"
Dico_F = zeros(size(Dico_C));
alpha = zeros(L,1);

N. MOREAU
Licence de droits dusage

12 mars 2009
page 134/162

10.2. SCRIPT DE LA FONCTION APPELANTE

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

CHAPITRE 10. UN CODEUR DE PAROLE

% 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. SCRIPT DES FONCTIONS APPELES

plot(axe_freq, perio_xn_hat_db, r);


plot(axe_freq, perio_en_db, k);
axis([0 Fe/2000 0 100])
end
drawnow
fprintf(pause \n); pause
else
if rem(no_fen,20) ==0
fprintf(no_fen = %3d/%3d\n, no_fen, Nbre_fen)
end
end
end
wavwrite(signal_xn, Fe, [prefixe_out voix_originale]);
wavwrite(signal_xn_hat, Fe, [prefixe_out codeur_celp_avec_plt_gamma]);

10.3

Script des fonctions appeles

function [a, sigma2] = analyse_lpc(xn, P)


N = length(xn);
rk = zeros(P+1,1);
for k = 1:P+1
rk(k) = xn(1:N-k+1)*xn(k:N)/N;
end
if rk(1) > 0
R = toeplitz(rk(1:P));
a = [1; -inv(R)*rk(2:P+1)];
sigma2 = a*rk;
else
a = [1; zeros(P,1)];
sigma2 = 0;
end
function [yn, etat] = filtre_ma(bi, xn, etat)
P = length(etat);
yn = zeros(size(xn));
for n = 1:length(xn)
yn(n) = bi(1)*xn(n) + bi(2:P+1)*etat;
etat(2:P) = etat(1:P-1);
etat(1) = xn(n);
end
function [yn, etat] = filtre_ar(b0, ai, xn, etat)
P = length(etat);
yn = zeros(size(xn));
for n = 1:length(xn)
yn(n) = b0*xn(n) - ai(2:P+1)*etat;
etat(2:P) = etat(1:P-1);
etat(1) = yn(n);
end

N. MOREAU
Licence de droits dusage

12 mars 2009
page 137/162

CHAPITRE 10. UN CODEUR DE PAROLE

function [gains, indices] = determination_gains_formes(en, Dico, ...


alpha, Nbre_vecteurs)
[M, L] = size(Dico);
gains = zeros(Nbre_vecteurs,1);
indices = ones(Nbre_vecteurs,1);
for k = 1:Nbre_vecteurs
critere_max = 0;
for j = 1:L
beta = Dico(:,j)*en;
if alpha(j) ~= 0
critere = abs(beta)/alpha(j);
else
critere = 0;
end
if critere > critere_max
gains(k) = beta/(alpha(j)^2);
indices(k) = j;
critere_max = critere;
end
end
en = en - gains(k)*Dico(:,indices(k));
end

N. MOREAU
Licence de droits dusage

12 mars 2009
page 138/162

Chapitre 11

Un codeur de musique
11.1

Introduction

Le programme propos simule le codeur MPEG-1 Layer-1 comprimant un signal de musique


chantillonn 44.1 kHz un dbit compris entre 64 et 96 kbit/s. Seules les tables de quantification spcifiques de cette frquence dchantillonnage et de cette gamme de dbit sont fournies.
Contrairement au programme simulant un codeur de parole, celui-ci construit vritablement un
fichier intermdiaire o sont rangs les mots de code. Toutefois la syntaxe spcifique du document
normatif nest pas respecte.

11.2

Script de la fonction appelante

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

CHAPITRE 11. UN CODEUR DE MUSIQUE

[hn, Mat_H] = init_banc_pqmf;


tables_quantif;
init_mpa1;
% Encodage
fprintf(Encodage %d kbits/s du fichier %s \n, Debit_kbs, nom)
fid_bit_stream = fopen(bit_stream, w);
xn = zeros(N_mpeg, 1);
xn_mpa = zeros(N_mpeg, 1);
Mat_sb = zeros(D_mpeg, M_mpeg);
hann = sqrt(8/3)/2*(ones(N_mpeg, 1) - cos(2*pi*(0:N_mpeg-1)/N_mpeg));
Retard_yn = N_mpeg + (D_mpeg-1)*M_mpeg;
Retard_mpa = N_mpeg + (D_mpeg-1)*M_mpeg/2;
no_ech_sb = 1;
Nbre_blocs = fix(Nbre_ech/M_mpeg);
for no_bloc = 1:Nbre_blocs
% Actualisation de xn et de xn_mpa
n1 = (no_bloc-1)*M_mpeg + 1;
n2 = n1 + M_mpeg - 1;
xn(1:N_mpeg-M_mpeg) = xn(M_mpeg+1:N_mpeg);
xn(N_mpeg-M_mpeg+1:N_mpeg) = signal_xn(n1:n2);
xn_mpa(1:N_mpeg-M_mpeg) = xn_mpa(M_mpeg+1:N_mpeg);
xn_mpa(N_mpeg-M_mpeg+1:N_mpeg) = xn(2*N_mpeg-Retard_mpa-M_mpeg+1:2*N_mpeg-Retard_mpa);
% Banc de filtres danalyse
Mat_sb(no_ech_sb,:) = (Mat_H*xn);
no_ech_sb = rem(no_bloc,D_mpeg) + 1;
% Tous les 12 chantillons de sous-bande
if rem(no_bloc, D_mpeg) == 0
% Calcul du seuil de masquage
[seuil1_db, seuil2_db, SMR_db_sb] = mpeg_mpa1(xn_mpa);
% Allocation de bits
NOQ = mpeg_alloc(SMR_db_sb, Debit_kbs);
% Quantification et construction du bit-stream
ecrit_bit_stream(fid_bit_stream, NOQ, Mat_sb)
% Quelques visualisations
off_set = 90;
figure(2); hold off
temp = fft(xn_mpa.*hann);
X1 = 10*log10((abs(temp(1:N_mpeg/2)).^2)/N_mpeg);
axe_freq = (0:N_mpeg/2-1)*Fe/1000/N_mpeg;
plot(axe_freq, X1+off_set); hold on
plot(axe_freq, seuil1_db+off_set, r);
plot(axe_freq, seuil2_db+off_set, g);
val_old = SMR_db_sb(1);
for k = 1:M_mpeg
ind = (k-1)*8+1:k*8+1;
plot(ind(1)*Fe/1000/N_mpeg*[1 1], [val_old SMR_db_sb(k)])

N. MOREAU
Licence de droits dusage

12 mars 2009
page 140/162

11.2. SCRIPT DE LA FONCTION APPELANTE

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

CHAPITRE 11. UN CODEUR DE MUSIQUE

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

Script des fonctions appeles

function [hn, Mat_H] = init_banc_pqmf


% Dfinition de la rponse impulsionnelle du filtre prototype
% et de la matrice de modulation du banc de filtres PQMF
global N_mpeg M_mpeg
temp = [ 0.202407
0.200452
0.194668
0.185290
0.172685
0.157347
0.139868
0.120900
0.101123
0.081224
0.061849
0.043576
0.026907
0.012227
-0.000189
-0.010185
-0.017733
-0.022906
-0.025873
-0.026882
-0.026238
-0.024271
-0.021336
-0.017773

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

11.3. SCRIPT DES FONCTIONS APPELES

-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];

Mat_H = zeros(M_mpeg, N_mpeg);


for k = 0:M_mpeg-1
t2 = ((2*k+1)*pi/(2*M_mpeg))*((0:N_mpeg-1)+M_mpeg/2);
Mat_H(k+1,:) = hn.*cos(t2);
end
function init_tables_quantif

N. MOREAU
Licence de droits dusage

12 mars 2009
page 143/162

CHAPITRE 11. UN CODEUR DE MUSIQUE

% Initialisation de toutes les tables de quantification


global Fact_ech Rsb_iso_1_3 Rsb_iso_4_11 Rsb_iso_12_23 Rsb_iso_24_27
% Facteurs dchelle
Fact_ech = [2.00000000000000,
1.00000000000000,
0.50000000000000,
0.25000000000000,
0.12500000000000,
0.06250000000000,
0.03125000000000,
0.01562500000000,
0.00781250000000,
0.00390625000000,
0.00195312500000,
0.00097656250000,
0.00048828125000,
0.00024414062500,
0.00012207031250,
0.00006103515625,
0.00003051757813,
0.00001525878906,
0.00000762939453,
0.00000381469727,
0.00000190734863,

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];

% Rapport signal/bruit en fonction du nombre de pas de quantification


% La troisime colonne donne le nombre de bits ncessaire
% Pour n=3,5,7,9 on "groupe" par 3 => ceil(log2(n^3))/3
% pour les sous-bandes
Rsb_iso_1_3 = [0 0.00
3 7.00
7 16.00
15 25.28
31 31.59
63 37.75
127 43.84
255 49.89
511 55.93
1023 61.96
2047 67.98
4095 74.01
8191 80.03
16383 86.05
32767 92.01
65535 98.01

0,1 et 2
0
1.67
3
4
5
6
7
8
9
10
11
12
13
14
15
16];

% pour les sous-bandes 3 10

N. MOREAU
Licence de droits dusage

12 mars 2009
page 144/162

11.3. SCRIPT DES FONCTIONS APPELES

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];

% pour les sous-bandes 11 22


Rsb_iso_12_23 = [0 0.00 0
3 7.00 1.67
5 11.00 2.33
7 16.00 3
9 20.84 3.33
15 25.28 4
31 31.59 5
65535 98.01 16];
% pour les sous-bandes 23 26
Rsb_iso_24_27 = [0 0.00 0
3 7.00 1.67
5 11.00 2.33
65535 98.01 16];
A_B = [3
7
15
31
63
127
255
511
1023
2047
4095
8191
16383
32767

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

CHAPITRE 11. UN CODEUR DE MUSIQUE

% Dfinitions de constantes utilises dans le modle


% psychoacoustique no 1 de mpeg
global Fe LTq_i LTq_k Table_z Frontieres_i Frontieres_k Larg_f
% Dtermination des indices "k" en fonction des indices "i"
i1 = 1:48;
i2 = (49:72)-48;
i3 = (73:108)-72;
i_to_k = [i1 (2*i2+48) (4*i3+96)];
% Seuil daudition absolue
LTq_i = [25.87 14.85 10.72
4.32 3.92 3.57
1.83 1.53 1.23
-0.96 -1.38 -1.79
-4.09 -4.37 -4.60
-4.81 -4.65 -4.43
-2.06 -1.32 -0.64
1.74 1.93 2.11
3.25 3.49 3.74
6.15 7.07 8.10
17.23 19.34 21.64
40.25 44.27 48.59
68.00 68.00 68.00
68.00 68.00 68.00

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

...
...
...
...
...
...
...
...
...
...
...
...
...

% Seuil daudition absolue en fonction des indices "k"


LTq_k = zeros(250, 1);
for i = 1:length(LTq_i)
LTq_k(i_to_k(i)) = LTq_i(i);
end
for k = 1:250
if LTq_k(k) == 0
LTq_k(k) = last_nonzero;
else
last_nonzero = LTq_k(k);
end
end
% Frquences Bark en fonction des indices "i"
Table_z = [ .850 1.694 2.525 3.337 4.124 4.882 5.608 6.301
6.959 7.581 8.169 8.723 9.244 9.734 10.195
11.037 11.421 11.783 12.125 12.448 12.753 13.042
13.578 13.826 14.062 14.288 14.504 14.711 14.909
15.284 15.460 15.631 15.796 15.955 16.110 16.260
16.547 16.685 16.820 16.951 17.079 17.205 17.327
17.680 17.905 18.121 18.331 18.534 18.731 18.922
19.289 19.464 19.635 19.801 19.963 20.120 20.273
20.565 20.705 20.840 20.972 21.099 21.222 21.342

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

11.3. SCRIPT DES FONCTIONS APPELES

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

CHAPITRE 11. UN CODEUR DE MUSIQUE

%
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

11.3. SCRIPT DES FONCTIONS APPELES

if X(k) - X(k+j) < 7


tonal(k) = 0;
end
end
end
end
for k = 63:126
if max_local(k)
tonal(k) = 1;
for j = [-3 -2 2 3]
if X(k) - X(k+j) < 7
tonal(k) = 0;
end
end
end
end
for k = 127:250
if max_local(k)
tonal(k) = 1;
for j = [-6:-2 2:6]
if X(k) - X(k+j) < 7
tonal(k) = 0;
end
end
end
end
% Recherche des raies tonales
X_tm = zeros(250,1);
for k = 1:250
if tonal(k)
temp = 10^(X(k-1)/10) + 10^(X(k)/10) + 10^(X(k+1)/10);
X_tm(k) = 10*log10(temp);
X(k-1) = -100;
X(k)
= -100;
X(k+1) = -100;
else
X_tm(k) = -100;
end
end
X_nm = -100*ones(250, 1);
k = 1;
for k1 = Frontieres_k
geom_mean = 1;
pow = 0;
raies_en_sb = 0;
while k <= k1

N. MOREAU
Licence de droits dusage

12 mars 2009
page 149/162

CHAPITRE 11. UN CODEUR DE MUSIQUE

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

11.3. SCRIPT DES FONCTIONS APPELES

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

CHAPITRE 11. UN CODEUR DE MUSIQUE

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

11.3. SCRIPT DES FONCTIONS APPELES

seuil1_db = seuil1_db + offset;


seuil2_db = seuil2_db + offset;
SMR_db_sb = zeros(1,32);
for i = 1:32
SMR_db_sb(i) = max(perio_xn_db((i-1)*8+1:i*8)) - seuil2_db(i*8);
end
function i0 = ppv(k0)
if k0 <= 48
i0 = k0;
elseif k0 <= 96
i0 = floor((k0-48)/2) + 48;
else
i0 = round((k0-96)/4) + 72;
end
if i0 > 108
i0 = 108;
end
function le_vf = vf(dz, j, X)
if dz < -1
le_vf = 17 * (dz + 1) - (0.4 * X(j) + 6);
elseif dz < 0
le_vf = (0.4 * X(j) + 6) * dz;
elseif dz < 1
le_vf = -17 * dz;
else
le_vf = -(dz - 1) * (17 - 0.15 * X(j)) - 17;
end
function NOQ = mpeg_alloc(SMR, Debit_kbs)
% Procdure dallocation de bits
global Fe
global Rsb_iso_1_3 Rsb_iso_4_11 Rsb_iso_12_23 Rsb_iso_24_27
SMR = [SMR(1:27) zeros(1,5)];
Bits_disp_init = Debit_kbs*1000*384/Fe - 88;
Bits_disp = Bits_disp_init;
NOQ = ones(1,27);
NOQ_max = [15*ones(1,11) 7*ones(1,12) 3*ones(1,4)];
MNR = -SMR(1:27);
MNR_init = MNR;
SNR = zeros(1,27);
Nbre_bits = zeros(1,27);
Scf = zeros(1,27);
iter = 0;
iter_max = 1000;

N. MOREAU
Licence de droits dusage

12 mars 2009
page 153/162

CHAPITRE 11. UN CODEUR DE MUSIQUE

while Bits_disp > 0


[temp kmin] = min(MNR);
if NOQ(kmin) == NOQ_max(kmin)
MNR(kmin) = 100;
else
Scf(kmin) = 1;
NOQ(kmin) = NOQ(kmin) + 1;
if kmin < 4
SNR(kmin)
= Rsb_iso_1_3(NOQ(kmin),2);
Nbre_bits(kmin) = Rsb_iso_1_3(NOQ(kmin),3);
elseif kmin < 12
SNR(kmin)
= Rsb_iso_4_11(NOQ(kmin),2);
Nbre_bits(kmin) = Rsb_iso_4_11(NOQ(kmin),3);
elseif kmin < 24
SNR(kmin)
= Rsb_iso_12_23(NOQ(kmin),2);
Nbre_bits(kmin) = Rsb_iso_12_23(NOQ(kmin),3);
elseif kmin < 28
SNR(kmin)
= Rsb_iso_24_27(NOQ(kmin),2);
Nbre_bits(kmin) = Rsb_iso_24_27(NOQ(kmin),3);
end
MNR(kmin) = SNR(kmin) - SMR(kmin);
Bits_disp_old = Bits_disp;
Bits_disp = Bits_disp_init - 6*sum(Scf) - 12*sum(Nbre_bits);
end
iter = iter + 1;
if iter > iter_max
fprintf(Dans mpeg_alloc Bits_disp_init = %d Bits_disp = %d \n, Bits_disp_init, Bits_
return
end
end
function ecrit_bit_stream(fid_bit_stream, NOQ, Mat_sb)
% Quantification de la matrice des signaux de sous-bande
% et construction du bit stream
global Fact_ech Rsb_iso_1_3 Rsb_iso_4_11 Rsb_iso_12_23 Rsb_iso_24_27
% On crit dabord lallocation binaire
for k = 1:11
fwrite(fid_bit_stream, NOQ(k)-1, ubit4);
end
for k = 12:23
fwrite(fid_bit_stream, NOQ(k)-1, ubit3);
end
for k = 24:27
fwrite(fid_bit_stream, NOQ(k)-1, ubit2);
end
for k = 1:27
if k < 4

N. MOREAU
Licence de droits dusage

12 mars 2009
page 154/162

11.3. SCRIPT DES FONCTIONS APPELES

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

CHAPITRE 11. UN CODEUR DE MUSIQUE

precision = [ubit int2str(nbre_bits_prec)];


for n = 1:12
fwrite(fid_bit_stream, indices_ech(n)-1, precision);
end
end
end
end
function [Mat_sb_q, stop] = lit_bit_stream(fid_bit_stream)
% Lecture du bit stream et reconstruction de la matrice des signaux de sous-bande
global Fact_ech Rsb_iso_1_3 Rsb_iso_4_11 Rsb_iso_12_23 Rsb_iso_24_27
Mat_sb_q = zeros(12,32);
stop = 0;
% On lit dabord les allocations binaires
for k = 1:11
[val nbre] = fread(fid_bit_stream, 1, ubit4);
if nbre == 0
stop = 1;
return
end
NOQ(k) = val + 1;
if k < 4
Nbre_pas_quantif(k) = Rsb_iso_1_3(NOQ(k),1);
elseif k < 12
Nbre_pas_quantif(k) = Rsb_iso_4_11(NOQ(k),1);
end
end
for k = 12:23
[val nbre] = fread(fid_bit_stream, 1, ubit3);
if nbre == 0
stop = 1;
return
end
NOQ(k) = val + 1;
Nbre_pas_quantif(k) = Rsb_iso_12_23(NOQ(k),1);
end
for k = 24:27
[val nbre] = fread(fid_bit_stream, 1, ubit2);
if nbre == 0
stop = 1;
return
end
NOQ(k) = val + 1;
Nbre_pas_quantif(k) = Rsb_iso_24_27(NOQ(k),1);
end

N. MOREAU
Licence de droits dusage

12 mars 2009
page 156/162

11.3. SCRIPT DES FONCTIONS APPELES

% Ensuite les facteurs dchelle


for k = 1:27
if Nbre_pas_quantif(k) > 0
indice_Scf = fread(fid_bit_stream, 1, ubit6);
Scf(k) = Fact_ech(indice_Scf);
end
end
% 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;
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
ind = fread(fid_bit_stream, 1, precision);
n1 = (n-1)*3 + 1;
ind3 = fix(ind/carre);
ind2 = fix((ind - carre*ind3)/Nbre_pas_quantif(k));
ind1 = ind - carre*ind3 - Nbre_pas_quantif(k)*ind2;
Mat_sb_q(n1,k) = dico(ind1+1);
Mat_sb_q(n1+1,k) = dico(ind2+1);
Mat_sb_q(n1+2,k) = dico(ind3+1);
end
else
nbre_bits_prec = log2(Nbre_pas_quantif(k)+1);
precision = [ubit int2str(nbre_bits_prec)];
for n = 1:12
indice_ech = fread(fid_bit_stream, 1, precision);
Mat_sb_q(n,k) = dico(indice_ech+1);
end
end
else
Scf(k) = 0;
Mat_sb_q(:,k) = zeros(12,1);
end
end

N. MOREAU
Licence de droits dusage

12 mars 2009
page 157/162

CHAPITRE 11. UN CODEUR DE MUSIQUE

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

[22] CCITT, Normalisation des tlcopieurs du groupe 3 pour la transmission de documents,


Fascicule VII.3, Recommandation T.4, 1980.
[23] A. Le Guyader, P. Philippe, and J. Rault, Synthse des normes de codage de la parole
et du son (UIT-T, ETSI et ISO/MPEG), Annales des Tlcommunications, 55, no 9-10,
pp. 425441, 2000.
[24] European Telecommunication Standard, Digital cellular telecommunications system ; Enhanced Full Rate (EFR) speech transcoding (GSM 06.60), Final Draft 1996.
[25] B. Bessette, R. Salami, R. Lefebvre, M. Jelinek, J. Rotola-Pukkila, J. Vainio, H. Mikkola,
and K. Jarvinen, The adaptive multirate wideband speech codec (AMR-WB), IEEE Trans.
on Speech and Audio Processing, vol. 10, no. 8, pp. 620636, November 2002.
[26] K. Konstantinides, An introduction to Super Audio CD and DVD-Audio, IEEE Signal
Processing Magazine, July 2003.
[27] Norme internationale ISO/CEI 11172, Codage de limage anime et du son associ pour les
supports de stockage numrique jusqu environ 1,5 Mbit/s, 1993.
[28] International Organization for Standardization, ISO/IEC 13818-7 (MPEG-2 Advanced Audio Coding, AAC), 1997.
[29] International Organization for Standardization, ISO/IEC 14496-3 (Information technology
- Very low bitrate audio-visual coding), 1998.
[30] International Organization for Standardization, ISO/IEC 14496-3 :2005 (Information technology - Coding of audio-visual objects), 2005.
[31] P. Collen, Techniques denrichissement de spectre des signaux audionumriques. PhD thesis,
ENST, Novembre 2002.
[32] Union Internationale des Tlcommunications, Recommandation BS.1387 : Mthode de mesure objective de la qualit du son peru, 2001.
[33] B. Atal and J. Remde, A new model of lpc excitation for producing natural-sounding speech
at low bit rates, Proc. Int. Conf. Acoust., Speech, Signal Processing, pp. 614617, 1982.
[34] M. Schroeder and B. Atal, Code-excited linear prediction (CELP) : high-quality speech at
very low bit rates, Proc. Int. Conf. Acoust., Speech, Signal Processing, pp. 937940, 1985.
[35] F. Itakura, Line spectrum representation of linear predictive coefficients of speech signals,
J. Acoust. Soc. Am., 57, 1975.
[36] B. Atal and M. Schroeder, Predictive coding of speech signals and subjective error criteria,
IEEE Trans. Acoust., Speech, Signal Processing, vol. ASSP-27, June 1979.
[37] G. Golub and C. Van Loan, Matrix computations. Johns Hopkins University Press, 1983
(Second Edition 1989).
[38] Union Internationale des Tlcommunications, Recommandation G.729 : Codage de la parole
8 kbit/s par prdiction linaire avec excitation par squences codes structure algbrique
conjugue, 1996.
[39] R. Salami, C. Laflamme, J. Adoul, A. Kataoka, S. Hayashi, C. Lamblin, D. Massaloux,
S. Proust, P. Kroon, and Y. Shoham, Design and description of CS-ACELP : a toll quality
8 kb/s speech coder, IEEE Trans. on Speech and Audio Processing, vol. 6, no. 2, pp. 116
130, March 1998.
[40] T. Painter and A. Spanias, Perceptual coding of digital audio, Proceedings of the IEEE,
vol. 88, April 2000.
[41] O. Derrien, S. Larbi, M. Perreau-Guimaraes, and N. Moreau, Le codeur MPEG-2 AAC
expliqu aux traiteurs de signaux, Annales des Tlcommunications, Septembre-Octobre
2000.

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

Contexte acadmique } avec modifications


Par le tlchargement ou la consultation de ce document, lutilisateur accepte la licence
dutilisation qui y est attache, telle que dtaille dans les dispositions suivantes, et sengage la respecter intgralement.
La licence confre lutilisateur un droit dusage sur le document consult ou tlcharg, totalement
ou en partie, dans les conditions dfinies ci-aprs, et lexclusion de toute utilisation commerciale.
Le droit dusage dfini par la licence autorise un usage dans un cadre acadmique, par un utilisateur
donnant des cours dans un tablissement denseignement secondaire ou suprieur et lexclusion expresse des formations commerciales et notamment de formation continue. Ce droit comprend :
le droit de reproduire tout ou partie du document sur support informatique ou papier,
le droit de diffuser tout ou partie du document destination des lves ou tudiants,
le droit de modifier la forme ou la prsentation du document,
le droit dintgrer tout ou partie du document dans un document composite et de le diffuser dans ce
nouveau document, condition que :
Lauteur soit inform,
Le document driv soit diffus dans un cadre acadmique.
Les mentions relatives la source du document et/ou son auteur doivent tre conserves dans leur
intgralit.
Le droit dusage dfini par la licence est personnel et non exclusif. Tout autre usage que ceux prvus
par la licence est soumis autorisation pralable et expresse de lauteur : sitepedago@enst.fr

N. MOREAU
Licence de droits dusage

12 mars 2009
page 162/162

Vous aimerez peut-être aussi