Está en la página 1de 89

Projet de n dtudes

ENSEEIHT

par Emmanuel Ravelli

PRDICTION NON-LINAIRE POUR LE CODAGE AUDIO SANS PERTES

eectu au groupe de recherche sur la parole et laudio de luniversit de Sherbrooke sous la tutelle de :

Philippe Gournay

ii

Remerciements
Je tiens tout particulirement remercier Monsieur Philippe Gournay, qui a encadr ce projet de n dtude avec enthousiasme, et a su me conseiller ecacement tout en me laissant travailler trs librement. Merci galement : Monsieur Roch Lefebvre, pour mavoir acceuilli au sein de son groupe de recherche. Monsieur Jean-Yves Tourneret (enseignant-chercheur lENSEEIHT), sans qui ce stage naurait pas eu lieu. Madame Corinne Mailhes (enseignant-chercheur lENSEEIHT), pour son enseignement en compression du signal. Mes parents, pour laide quils mont apport durant ce stage. Mes amis, pour leur soutien moral.

iii

iv

Table des matires


Introduction 1 Le codage audio sans perte 1.1 1.2 1.3 1.4 Codage audio avec perte et codage audio sans perte . . . . . . . . . . . . . . . . . . Structure dun codeur audio sans perte . . . . . . . . . . . . . . . . . . . . . . . . . . Le dcoupage en trames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La dcorrlation intra-canal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1 1.4.2 1.5 1.6 1.7 Par prdiction linaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Par transforme orthogonale . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 3 4 4 5 5 6 6 8 9 9 10 13 13 14 15 16 16 17 18 25 28 28 30 35

La dcorrlation inter-canaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La prdiction linaire stro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Codage entropique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.7.1 1.7.2 Densit de probabilit du rsidu . . . . . . . . . . . . . . . . . . . . . . . . . Le codage de Rice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Prdiction non linaire avec un ltre de Volterra 2.1 Le ltre de Volterra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 2.1.2 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.3 Rsolution dans le cas gnral . . . . . . . . . . . . . . . . . . . . . . . . . . . Simplications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prdiction du canal de gauche . . . . . . . . . . . . . . . . . . . . . . . . . . . Prdiction du canal de droite . . . . . . . . . . . . . . . . . . . . . . . . . . . Approche forward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Approche backward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Prdiction non linaire stro avec un ltre de Volterra . . . . . . . . . . . . . . . . .

Prdiction non linaire monophonique sur les rsidus de la prdiction linaire stro avec un ltre de Volterra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 2.3.2 Prdiction non linaire avec un ltre de Volterra : approche backward . . . . Prdiction avec un ltre de Volterra adaptatif . . . . . . . . . . . . . . . . . .

2.4

Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v

3 Prdiction non linaire avec un rseau de neurones 3.1 Gnralits sur les rseaux de neurones . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4 Le neurone formel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le rseau de neurones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le Perceptron - Historique (extraits de [24]) . . . . . . . . . . . . . . . . . . . Lapprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rseaux de neurones pour la prdiction non linaire . . . . . . . . . . . . . . Les rseaux utiliss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mise en oeuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Quantication des coecients . . . . . . . . . . . . . . . . . . . . . . . . . . . Les rseaux utiliss, algorithme dapprentissage . . . . . . . . . . . . . . . . . Le surapprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mise en oeuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Techniques pour limiter le surapprentissage . . . . . . . . . . . . . . . . . . . Inuence du nombre de neurones . . . . . . . . . . . . . . . . . . . . . . . . . Comparaison avec un apprentissage simple . . . . . . . . . . . . . . . . . . . Comparaison avec la prdiction linaire stro backward . . . . . . . . . . . .

37 37 37 39 39 40 41 41 41 42 45 48 50 50 50 51 52 55 56 57 58 59 59 60 61 61 63 64 64 65 65 65 65 65 66 67 67

Prdiction non linaire stro avec un rseau MLP : approche forward . . . . . . . .

Prdiction non linaire stro avec un rseau MLP : approche backward . . . . . . .

Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Codec prdiction linaire et non linaire stro backward 4.1 4.2 Les types de chiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schma du codeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.3 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.4 Analyse par trame - Gestion des trames . . . . . . . . . . . . . . . . . . . . . Analyse LPC stro backward . . . . . . . . . . . . . . . . . . . . . . . . . . . Apprentissage des rseaux MLP . . . . . . . . . . . . . . . . . . . . . . . . . . Filtrage et choix de la prdiction . . . . . . . . . . . . . . . . . . . . . . . . . Codage entropique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Construction de la trame binaire . . . . . . . . . . . . . . . . . . . . . . . . . Gestion du buer des donnes compresses . . . . . . . . . . . . . . . . . . . Analyse LPC stro au dcodage . . . . . . . . . . . . . . . . . . . . . . . . . Apprentissage des rseaux au dcodage . . . . . . . . . . . . . . . . . . . . . Dcodage de Rice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Filtrage de synthse et entrelacement . . . . . . . . . . . . . . . . . . . . . . .

Schma du dcodeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Evaluation des performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi

4.4.1 4.4.2 4.4.3 4.5

Inuence de lordre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inuence du nombre dpoques . . . . . . . . . . . . . . . . . . . . . . . . . . Confrontation des performances . . . . . . . . . . . . . . . . . . . . . . . . . .

67 67 68 69 71 71 71 72 72 73 77

Amlioration du codeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 Perspectives dvolution 5.1 Le Rseau de Fonctions Base Radiale (RBF network) . . . . . . . . . . . . . . . . . 5.1.1 5.1.2 5.1.3 5.2 Le rseau standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le rseau autorgressif (RBF-AR) . . . . . . . . . . . . . . . . . . . . . . . . Lapprentissage du rseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Le rseau PRNN ( pipelined recurrent neural network) . . . . . . . . . . . . . . . . .

Conclusion

vii

Introduction
De nos jours, de plus en plus de mdias sont numriss (image, son, vido. . . ) et stocks ou transmis dans un format numrique. Cela a plusieurs avantages, dont le plus important est labsence de perte de qualit du mdia numris pendant son transport ou lors de traitements sur celuici ( laide de logiciels, par exemple). Il existe galement quelques inconvnients intrinsques au caractre numrique, notamment la perte de prcision lors du passage du monde analogique au monde numrique (appel conversion analogique / numrique ou chantillonnage). Pour que le signal numris soit rigoureusement le mme que le signal dorigine, il faudrait numriser ce dernier avec une prcision innie, donc en stockant une quantit innie dinformations. . . Cest videmment trs thorique et impossible raliser. En pratique, la limite de prcision ncessaire est xe gnralement par celle du rcepteur nal de ce mdia : lil pour limage, loreille pour le son. Or, pour des utilisations professionnelles, cette limite peut tre xe assez haute (96khz/24bits pour le son) et les chiers numriques prennent alors rapidement beaucoup de place : 2.304 Mbits pour une seconde dune piste mono ( 96khz/24bits). Comme les studios enregistrent gnralement leurs travaux en multi-pistes, lespace ncessaire au stockage devient trs important. Cest pourquoi il a t ncessaire de dvelopper des algorithmes pour rduire la taille de ces chiers audio : cest la compression audio (ou codage audio). Les algorithmes de compression audio les plus connus ( MP3, WMA, OGG...) sont des algorithmes de compression avec perte (ou compression destructive) car la compression enlve des informations du chier audio : le chier original et le chier dcompress ne sont pas identiques. Or, ce type de compression nest pas adapt au travaux raliss dans les studios. En eet, pourquoi faire beaucoup deort travailler le mixage dun morceau en nesse, lchantillonner en 24 bits / 96 KHz, faire attention la qualit du son dans les moindres dtails, si cest pour nalement utiliser une compression destructive et ainsi perdre tous les dtails du morceau ? Cest pourquoi il a t ncessaire de dvelopper des algorithmes de compression sans perte. Depuis un an, le groupe de recherche sur la parole et laudio de luniversit de Sherbrooke acceuille des tudiants en stage an de travailler sur le codage audio sans perte. Le premier stage a consist en ltude, limplmentation et loptimisation dun algorithme de compression audio sans perte. Lalgorithme dvelopp utilisait une technique de prdiction linaire mais nexploitait pas 1

les similitudes qui existent entre les deux canaux dun signal stro. Le second stage sest donc naturellement focalis sur laspect stro du codage audio sans perte. Lalgorithme qui y a t dvelopp utilisait une technique de prdiction linaire stro. Cependant, la prdiction linaire prsente des limites. Cest pourquoi le stage que jai eectu et qui est une suite logique des deux stages prcdents, porte sur un autre type de prdiction : la prdiction non linaire. Le premier chapitre de cette tude prsente quelques gnralits sur le codage audio sans perte. Les deuxime et troisime parties se consacrent ltude de deux types de prdiction non linaire : respectivement la prdiction avec un ltre de Volterra et la prdiction avec un rseau de neurones. On a ensuite retenu la technique qui donnait les meilleurs rsultats et on la implemente en langage C, dont les spcications sont dcrites dans le chapitre 4. Enn le dernier chapitre ouvre la prsente tude sur de nouvelles voies qui pourraient tre explores en codage audio sans perte.

Chapitre 1

Le codage audio sans perte


1.1 Codage audio avec perte et codage audio sans perte

Le codage audio (ou compression audio) permet de rduire la taille dun chier audio pour quil tienne le moins de place possible sur le disque dur, ou quil soit plus facilement exportable via disquette ou rseau. Pour ce faire, il faut rduire le nombre de donnes contenues dans le chier audio, soit en optimisant la faon dont ce dernier inventorie les donnes, soit en supprimant les informations qui savrent superues. Suivant quon fait appel lune ou lautre de ces mthodes, on distinguera 2 types de codage : le codage avec perte et le codage sans perte. Le codage audio avec perte permet dobtenir des ratios de compression trs levs (de lordre de 12 pour le mp3) mais pour cela, le codage audio avec perte doit supprimer des donnes : le chier dcompress nest pas identique au chier original. Cependant, lcoute, on distinguera dicilement les 2 chiers. Le codage audio avec perte est donc destin uniquement lcoute de chiers audio. Il existe beaucoup dalgorithmes dirents de codage audio avec perte suivant lutilisation qui en est faite : les algorithmes destins la transmission de donnes en streaming par internet (Real Audio G2, Microsoft ASF), les algorithmes ddis au codage de la parole (ADPCM, CELP, ACELP...), les algorithmes destins au codage de chiers audio (MP3, Twin VQ, VQF, ATRAC...). Le codage audio sans perte donne des ratios de compression beaucoup moins levs (de lordre de 2 ou 3). Mais, comme son nom lindique, avec le codage audio sans perte, il ny a aucune perte de donnes, cest dire que le chier original et le chier dcompress sont strictement identiques. Le codage audio sans perte est donc plutot destin larchivage de chiers audio en vue dun ventuel travail sur le chier original (par exemple pour le mastering en studio). Le nombre dalgorithmes de codage audio sans perte est assez limit : il existe beaucoup de codecs (Monkey Audio, LTAC, LPAC, Shorten, WavZip, MUSICompress...) mais les techniques utilises sont trs semblables ; seul LTAC se distingue du lot car il utilise une technique trs dirente de tous les autres codecs. 3

1.2

Structure dun codeur audio sans perte

Le schma de base pour un codeur audio sans perte dans le cas simple dun signal monophonique est le suivant [2] :
Signal audio Dcoupage en trame x[n] Dcorrlation du signal e[n] Codage entropique Signal compress

Fig. 1.1 - Schma bloc dun codeur audio sans perte Le signal audio est dans un premier temps dcompos en trames conscutives. La deuxime tape consiste enlever la redondance dune trame du signal audio : cest la dcorrlation du signal. Il y a deux grandes familles de codeur audio sans perte qui se distinguent par la mthode quils emploient pour dcorrler le signal : Les codeurs qui utilisent la prdiction linaire Les codeurs qui utilisent une transforme orthogonale Dans le cas simple de la g. 1.1, seul la dcorrlation intra-canal est reprsente. De nombreux codeurs se contentent de coder sparment les canaux dun signal audio multi-canaux comme sil sagissait de signaux monophoniques. Mais si on veut proter des similitudes qui existent entre les dirents canaux, il faudra envisager une dcorrlation inter-canaux. On reviendra sur ce type de dcorrlation plus tard. Le signal obtenu aprs dcorrlation, quon appelle rsidu, est cod laide dun codage entropique : cest la dernire tape. Le chier compress est alors compos : du rsidu des paramtres de la prdiction linaire ou de la transforme orthogonale. Le rsidu a une amplitude moyenne qui est bien infrieure celle du signal original et une densit spectrale relativement plate. Une amplitude plus faible signie que moins de bits sont ncessaires pour coder chaque chantillon du rsidu. Comme le codage du rsidu ncessite moins de bits que le codage du signal original et que le nombre de bits ncessaire au codage des coecients nest pas trs important, la taille du chier compress est alors infrieure la taille du chier original. Dans notre travail, nous nous intresserons la deuxime tape : nous tudierons une autre mthode de dcorrlation, la prdiction non linaire, et nous verrons que dans certains cas, un codeur utilisant ce type de prdiction donne de meilleurs ratios de compression quun codeur utilisant une prdiction linaire.

1.3

Le dcoupage en trames

La premire tape consiste dcouper le signal en trames. En eet, dans la mesure o tous les algorithmes calculent des paramtres dpendant des statistiques du signal, il est ncessaire que celui ci soit stationnaire, ou quasi stationnaire. 4

La taille de la trame sera constante pour viter de rajouter sa longueur len-tte de chaque trame ce qui peut tre lourd en terme de dbit. Les trames ne doivent tre ni trop courtes ( sinon len-tte de chaque trame risque dtre trop long par rapport linformation audio ), ni trop longues ( car lalgorithme ne serait alors pas assez adaptatif ). Typiquement, les codeurs existants travaillent sur des trames de 13 26 ms [2].

1.4

La dcorrlation intra-canal

La deuxime tape consiste enlever la redondance contenue dans une trame du canal audio. Pour raliser cette tape, les codeurs existant mettent en oeuvre principalement deux techniques.

1.4.1

Par prdiction linaire

Cette technique est la plus utilise, elle consiste prdire la valeur dun chantillon x(n) partir dune combinaison linaire de K chantillons passs x(n k). x b(n) =
K X

k=1

ak x(n k )

(1.1) (1.2)

o x b(n) est la valeur prdite, e(n) est lerreur de prdiction et ak sont les coecients du prdicteur. Idalement, le prdicteur dcorrle le signal, par consquent lerreur de prdiction e(n) est dcorrle et sa densit spectrale de puissance est constante (spectre blanc). Ces chantillons ayant un niveau gnralement plus faible, ils ncessitent moins de bits pour tre reprsents. Le signal compress est alors reprsent par les paramtres du prdicteur et les chantillons du signal derreur. Le prdicteur optimal est celui qui minimise la puissance de lerreur de prdiction E e(n)2 . On cherche donc les coecients ak qui minimisent E e(n)2 , et ceci conduit au systme dquations .. . rx (K 2) rx (K 1) .. . rx (2) rx (K 2) a2 . . . . . . = . . . rx (1) aK 1 rx (K 1) rx (0) aK rx (K ) a1 rx (1)

e(n) = x(n) x b(n)

linaires de Yule-Walker : rx (0) rx (1) rx (1) . .. . . . rx (K 2)

(1.3)

rx (K 1) rx (K 2)

rx (1)

o rx (k ) = E {x(n)x(n k )} est la fonction dautocorrlation de x(n). On remarque que la matrice couramment ralis par lalgorithme de Levinson-Durbin. Cest un algorithme itratif (sur lordre du prdicteur) qui rsout le systme en un nombre restreint doprations sans calculer linverse de la matrice dautocorrlation. 5

dautocorrlation est une matrice de Toeplitz symtrique. La rsolution de ce systme est alors

Augmenter lordre de prdiction K permet de diminuer de facon intressante la variance de lerreur de prdiction jusqu un certain seuil ; au del, le gain nest plus signicatif. On peut quantier lecacit du prdicteur linaire en calculant le gain de prdiction GP , qui est linverse du rapport
2 de lnergie de lerreur de prdiction 2 e sur lnergie du signal original x . Cest une mesure de la

redondance court terme dans le signal original dont la limite GP,max dpend dune mesure qui est fonction de la densit spectrale de puissance de x. GP = 2 x 2 e (1.4)

1.4.2

Par transforme orthogonale

Le codeur audio sans perte LTAC (Lossless Transform Audio Compression [3]) est le seul codeur existant utilisant une transforme orthogonale. Il se base sur un schma similaire celui dalgorithmes de compression avec perte :

Fig. 1.2 - Structure dun codeur par transforme La transformation utilise est une transforme en cosinus discrte (DCT), cest une transformation orthogonale trs utilise et ses proprits de rpartition de lnergie sont connues. Elle est reprsente par la matrice A et son inverse est AT . Le bloc Q est un bloc de quantication. Elle permet de reconstruire une bonne partie de linformation du signal partir de peu de valeurs quanties. des b c[k ] et du rsidu e[n], encods par deux codes entropiques. Au dcodage, les b c[k ] permettent de Les coecients c[k ] de la transforme sont quantis en b c[k ]. Le signal compress est donc constitu

calculer x b[n] et le rsidu permet de retrouver x[n] = x b[n] + e[n].

1.5

La dcorrlation inter-canaux

De rapides calculs dintercorrlation entre les voies gauche et droite eectus sur des tranches de signaux musicaux htrognes permettent de se rendre compte de la forte corrlation qui peut exister entre les deux voies. La gure 1.3 permet de la visualiser pour 3 signaux de musique. Il sagit de lintercorrlation entre les 2 canaux dune tranche de signal longue de 40 ms (soit typiquement 2 trames de calcul 48 kHz). On y remarque immdiatement que lintercorrlation est forte dans certains cas et quil serait dommage de ne pas exploiter cette redondance. 6

Des techniques permettant den tirer parti ont t dveloppes dans le cadre des algorithmes de compression avec perte, comme par exemple lintensity stro. Il existe aussi des mthodes paramtriques qui ne font que restituer une impression de strophonie. Plus dinformations sur ces techniques sont accessibles dans [4] et [5].

Fig. 1.3 - Intercorrlation des voies gauche et droite de 3 signaux audio Les codeurs audio sans perte peuvent mettre en oeuvre une dcorrlation inter-canaux rudimentaire en travaillant sur les signaux dits " mid " (cest--dire linformation moyenne) et " side " (soit linformation latrale) : m(t) = s(t) = 1 (g (t) + d(t)) 2 1 (g (t) d(t)) 2 (1.5) (1.6)

o g (t) et d(t) sont respectivement les voies gauche et droite du signal audio stro. Ainsi, si les deux voies sont fortement corrles un mme instant, le signal s(t) sera trs faible et le codage entropique trs ecace. Le problme rside dans le fait que ce type dopration ne tient pas compte dun ventuel dphasage entre les 2 voies. Ainsi, la voie gauche et la voie droite peuvent tre strictement identiques avec un certain dphasage, mais il ny aura aucun gain li cette opration puisque le signal dirence s(t) ne sera pas nul. Cette technique ne sera donc pas adapte au codage audio sans perte et dautre solutions ont t envisages, comme la prdiction linaire stro. 7

1.6

La prdiction linaire stro

Une technique de prdiction linaire pouvant tirer parti des signaux stro a t adapte au codage audio sans perte dans [6] et implmente en 2002, par le groupe de recherche qui a dvelopp les LTAC et LPAC : cette technique utilise la prdiction linaire stro et a t tendue plus largement aux signaux multi-canaux [7]. Lintrt de la prdiction linaire stro est quelle eectue simultanment une dcorrlation intra- et inter-canal. Si on note x1 (n) lchantillon linstant n du signal de la voie gauche et x2 (n) celui du signal de la voie droite, le prdicteur linaire stro estime x1 (n) laide dune combinaison linaire des Ka valeurs passes x1 (n k) et dune combinaison linaire des Kb valeurs passes x2 (n k) .
Ka X Kb X

x b1 (n) =

k=1

ak x1 (n k ) +

k=1

bk x2 (n k)

(1.7)

Lensemble des coecients ak constitue lautoprdicteur de la voie x1 et lensemble des coecients bk constitue linterprdicteur de la voie x1 . Comme dans le cas de la prdiction linaire monophonique, on cherche minimiser la variance tions linaire dont la matrice R1 est form de 4 sous-matrices de Toeplitz symtriques. Dans le cas particulier o on a Ka = Kb , le systme peut tre rsolu avec lalgorithme de Levinson-Durbin multi-canaux [8]. Mais dans le cas Ka 6= Kb , cette algorithme ne peut pas tre utilis et on est oblig dinverser la matrice. Sa forme symtrique permet dutiliser la dcomposition de Cholesky [7] pour raliser linversion. Pour la prdiction du signal de la voie droite, on peut tirer parti de lentrelacement des voies x1 et x2 [6]. En eet, lchantillon x1 (n) qui vient dtre calcul par le dcodeur peut-tre utilis pour prdire x2 (n) .
Kc X Kd X

de lerreur de prdiction e1 (n) = x1 (n) x b1 (n). Cette minimisation conduit un systme dqua-

x b2 (n) =

k=0

ck x1 (n k) +

k=1

dk x2 (n k )

(1.8)

La minimisation de lerreur de prdiction e2 (n) conduit aux mme types dquations et la matrice du systme R2 pourra aussi tre inverse laide dune dcomposition de Cholesky. La gure 1.4 montre lvolution du gain de prdiction en fonction de lordre pour un chier de musique ( chant capella, les canaux gauche et droite sont trs similaires ). Dans le cas de lanalyse stro, lordre de lautoprdicteur est x 5 et lordre de linterprdicteur incrment de 0 9. 8

Fig. 1.4 - Gains de prdiction avec une prdiction LPC stro En premire constatation, on retrouve la similarit entre les 2 canaux, puisque les 2 prdicteurs linaires mono donnent le mme gain de prdiction. On peut alors noter lapport de la prdiction stro par rapport une simple analyse LPC : Une amlioration trs faible sur le canal de gauche. En eet, les 2 voies tant quasi-similaires, les chantillons passs de la voie de droite napportent pas plus dinformation que les chantillons passs de la voie de gauche. Un fort gain de 15 dB sur le canal de droite ds le premier niveau dinterprdiction. Ce rsultat nest pas surprenant dans la mesure o les voies gauche et droite tant trs proche, la prdiction linaire stro de x2 [n] (canal de droite) sera trs ecace puisquelle tire parti de lchantillon x1 [n] .

1.7

Codage entropique

Le codage entropique est ncessaire an de rduire le dbit du rsidu e[n] et des coecients de la transforme orthogonale dans le cas du LTAC. Le codage entropique le plus connu est le codage de Human mais il en existe beaucoup dautres. On peut trouver une prsentation du codage entropique en gnral dans [9].

1.7.1

Densit de probabilit du rsidu

Le codage entropique du rsidu de la prdiction dpend de la densit de probabilit de ses chantillons. La gure 1.5 extraite de [10] montre la rpartition des rsidus de prdiction. Les cercles le plus de la distribution des rsidus de prdiction est la densit de probabilit laplacienne. Il existe 9 reprsentent les valeurs observes. Ces courbes montrent que la distribution thorique se rapprochant

une famille de codeurs entropiques adapt aux alphabets distribus selon une loi laplacienne : il sagit des codes de Golomb.

Fig. 1.5 - Densit de probabilit du rsidu de prdiction linaire

1.7.2

Le codage de Rice

Le codage de Rice est une forme particulire du codage de Golomb. Comme nous lavons vu, cest un code adapt lorsque les chantillons de faible amplitude sont trs nombreux, ce qui est le cas du rsidu de prdiction linaire. Ce code, qui dpend dun paramtre k , est un code de Golomb de paramtre m = 2k . m est appel paramtre de Golomb. Les chantillons de faible amplitude sont intressants car ils ncessitent peu de bits pour tre cods. Prenons par exemple la srie suivante :

en base 10 : 10, 14, 15, 46 en base 2 : 1010, 1110, 1111, 101110

(1.9) (1.10)

Dans le cas dun signal cod sur 16 bits, il faudrait concatner 4 chanes de 16 bits (soient 64 bits) pour reprsenter cette suite de 4 chantillons. Lidal serait de concatner les 4 chanes en utilisant le nombre de bits ncessaires, 101011101111101110 (soient 18 bits). Mais une telle reprsentation bute sur un problme de taille : il est strictement impossible de dissocier les 4 chantillons. . . Le codage de Rice intervient alors ce niveau en introduisant une technique pour concatner des chanes de longueurs direntes tout en permettant de bien les dissocier. Le code de Rice dun entier n est dtermin en trois parties, comme indiqu ci-dessous : 1. Un bit de signe. 10

2. Le code unitaire de q = eucildienne.

n
2k

(q 0 suivis dun 1). b c reprsente le quotient de la division

3. Les k bits de poids faible de n (reste de la division euclidienne). Durant le processus, le paramtre k optimal peut tre actualis de direntes manires. On peut lindexer sur la valeur moyenne dun certain nombre dchantillons passs, ou le calculer laide de lestimateur de m , donn dans [2] et [10] : m = log2 (ln(2)E {|e [n]|}) prendra k = 4 puisque 3 chantillons sur 4 peuvent tre cods sur 4 bits. 1. Codage de (10)10 = (1010)2 sign(10) = 0 10/24 = 0 4 bits de poids faible : 1010 Le code de (10)10 est donc : 0|1|1010 2. Codage de (14)10 = (1110)2 sign(14) = 0 14/24 = 0 4 bits de poids faible : 1110 Le code de (14)10 est donc : 0|1|1110 3. Codage de (15)10 = (1111)2 sign(15) = 0 15/24 = 0 4 bits de poids faible : 1111 Le code de (15)10 est donc : 0|1|1111 4. Codage de (46)10 = (101110)2 sign(46) = 0 46/24 = 2 4 bits de poids faible : 1110 Le code de (46)10 est donc : 0|001|1110 La concatnation des 4 chanes reprsente alors 26 bits contre 64 bits si on avait cod simplement les valeurs sur 16 bits, soit un ratio de compression suprieur 2. Pour de plus amples prcisions sur les codes de Rice Golomb, ici prsents simplement sous leur aspect technique, le lecteur pourra consulter [12] et [11]. (1.11)

Reprenons la chane dchantillons introduite plus haut an dillustrer le codage de Rice. On

11

12

Chapitre 2

Prdiction non linaire avec un ltre de Volterra


On a vu dans la partie prcdente que la majorit des codeurs audio sans pertes existants sont bass sur une prdiction linaire. La prdiction linaire permet dobtenir un rsidu dont lnergie est plus faible que le signal original. Ce rsidu peut alors tre reprsent par un nombre de bits moins important grce un codage entropique adapt la distribution laplacienne du rsidu : le codage de Rice. On a vu aussi que le gain de prdiction dune prdiction linaire augmentait avec lordre jusqu un certain seuil. Pour dpasser ce seuil, il faudra donc envisager dautre types de prdiction : des prdictions non linaires. On tudiera dans un premier temps une prdiction non linaire base sur un ltre de Volterra. Ce type de prdiction a t tudi dans le cas dun codeur de parole avec pertes [13] [15]. Les conclusions de ces articles taient les suivantes : la prdiction non linaire donne de meilleurs gains de prdiction quune simple prdiction linaire mais il existe des problmes de stabilit au niveau du dcodeur, ceci tant du la quantication du rsidu (mme si le prdicteur nest pas quanti). Or pour un codeur sans perte, le rsidu nest pas quanti, ce problme ne se posera donc pas dans notre cas.

2.1

Le ltre de Volterra
Soit x(n) le signal dentre du ltre de Volterra et y (n) le signal de sortie. La relation qui

lie x(n) et y (n) est : y (n) = " P N X X ...


P X

k=1

i1 =1

ik =1

hk (i1 , ..., ik ).x(n i1 )...x(n ik )

(2.1)

o hk (m1 , ..., mk ) sont les coecients du ltre. N reprsente lordre de la non linarit, P reprsente lordre du ltre. 13

Dans notre cas, on utilise le ltre de Volterra comme un prdicteur : on cherche prdire x(n) partir de ses valeurs prcdentes x(n i), i = 1, .., P et k = 1, .., N. Pour chaque trame, on va donc h i chercher les coecients du ltre qui minimisent lerreur quadratique moyenne E (x(n) y (n))2 . On observera que la sortie du ltre est linaire vis--vis de chaque coecient du ltre de Volterra. En vertu de cette proprit, lerreur quadratique moyenne ne possde quun seul minimum global et nous pouvons le calculer analytiquement. Mais la complexit augmente fortement avec lordre de la non-linarit. On se limitera donc lordre 2.

y (n) =

P X i=1

h1 (i)x(n i) +

P P X X i=1 j =1

h2 (i, j )x(n i)x(n j )

(2.2)

2.1.1

Rsolution dans le cas gnral

[13]. Ecrivons (2.2) sous une forme vectorielle :

h i On cherche minimiser lerreur quadratique E (x(n) y (n))2 . Ce problme a t rsolu dans

y (n) =

= hT xn

P X i=1

h1 (i)x(n i) +

P P X X i=1 j =1

h2 (i, j )x(n i)x(n j ) (2.3)

avec

h=

h1 (1) . . . h1 (P ) h2 (1, 1) h2 (1, 2) . . . h2 (1, P ) h2 (2, 1) . . . h2 (2, P ) . . . h2 (P, P )

xn = 14

x(n 1) . . . x(n 1)x(n 1) x(n 1)x(n 2) . . . x(n 1)x(n P ) x(n 2)x(n 1) . . . x(n P )

(2.4)

x(n 2)x(n P ) . . . x(n P )x(n P )

Lerreur de prdiction est donne par : e2 = E e(n)2 2 = E (x(n) y (n))


2 T

(2.5) (2.6) (2.7) (2.8) (2.9)

= E (x(n)2 ) 2E (x(n)hT xn ) + E (hT xn hT xn )


T

= E (x(n)2 ) 2hT m + hT Mh avec m = E (x(n)xn ) et

= E (x(n) ) 2h E (x(n)xn ) + h

E (xT n xn )h

M = E (xT n xn )

(2.10)

Les coecients optimaux hopt qui minimisent lerreur quadratique vrient : (e2 ) h

=0

(2.11) (2.12)

h=hopt

2m + 2Mhopt = 0 ce qui donne la solution optimale pour les coecients du ltre hopt = M1 m

(2.13)

2.1.2

Simplications

Etant donn que lon a h2 (i, j ) = h2 (j, i) (2.14)

On peut rcrire (2.2) sous la forme :


P X i=1 P P X X i=1 j =i

y (n) =

h1 (i)x(n i) +

h2 (i, j ).x(n i)x(n j ) (2.15)

= hT xn

15

avec :

h= On a alors
P (P +3) 2

h1 (1) . . . h1 (P ) h2 (1, 1) h2 (1, 2) . . . h2 (1, P ) h2 (2, 2) . . . h2 (2, P ) . . . h2 (P, P )

xn =

x(n 1) . . . x(n 1)x(n 1) x(n 1)x(n 2) . . . x(n 1)x(n P ) x(n 2)x(n 2) . . . x(n P )

x(n 2)x(n P ) . . . x(n P )x(n P )

coecients au lieu de P (P + 1).

2.2

Prdiction non linaire stro avec un ltre de Volterra

An dexploiter la corrlation entre les 2 canaux du signal stro, on a vu dans 1.5 quune prdiction linaire stro donnait de bons rsultats. Cette technique peut tre tendue aux ordres suprieurs grce un ltre de Volterra ayant pour entres les valeurs passes de x1 (n) et x2 (n).

2.2.1

Prdiction du canal de gauche

Pour prdire x1 (n), on va utiliser un ltre de Volterra qui a pour entres les valeurs passes de x1 (n) et x2 (n) :

x b1 (n) =

P1 X i=1

a1 (i)x1 (n i) +

P2 X i=1

P 1N L P 1NL X X i=1 j =i

a2 (i, j )x1 (n i) x1 (n j ) b2 (i, j )x2 (n i) x2 (n j )

(2.16)

b1 (i)x2 (n i) +

P 2N L P 2N L X X i=1 j =i

que lon peut crire sous forme vectorielle x b1 (n) = hT 1 x1n 16 (2.17)

avec

a1 (P1 ) a2 (1, 1) . . . a2 (1, P1N L ) a2 (2, 2) . . . h1 = a2 (2, P1N L ) . . . a2 (P1N L , P1NL ) b1 (1) . . . b1 (P2 ) b2 (1, 1) . . . b2 (P2N L , P2NL )

a1 (1) . . .

x1 (n P1 ) x1 (n 1)x1 (n 1) . . . x1 (n 1)x1 (n P1N L ) x1 (n 2)x1 (n 2) . . . ; x1n = x1 (n 2)x1 (n P1N L ) . . . x1 (n P1N L )x1 (n P1NL ) x2 (n 1) . . . x2 (n P2 ) x2 (n 1)x2 (n 1) . . . x2 (n P2N L )x2 (n P2NL )

x1 (n 1) . . .

La solution optimale pour les coecients du ltre est alors


1 h1opt = M 1 m1

(2.18)

avec m1 = E (x1 [n] x1n ) et M1 = E (xT 1n x1n ) (2.19)

2.2.2

Prdiction du canal de droite

Pour la prdiction du canal de droite, on peut tirer parti de lentrelacement des voies x1 et x2 . En eet, lchantillon x1 [n] qui vient dtre calcul par le dcodeur peut-tre utilis pour prdire x2 [n] . x b2 [n] =
P1 X i=1

c1 (i)x2 [n i] +

P2 X i=0

P 1NL P 1NL X X i=1 j =i

c2 (i, j )x2 [n i] x2 [n j ] d2 (i, j )x1 [n i] x1 [n j ]

(2.20)

d1 (i)x1 [n i] +

P 2N L P 2N L X X i=0 j =i

17

qui peut scrire sous la forme vectorielle x b2 [n] = hT 2 x2n (2.21)

La solution optimale pour les coecients du ltre est alors


1 h2opt = M 2 m2

(2.22)

avec M2 = E (xT 2n x2n )

m2 = E (x2 [n] x2n )

et

(2.23)

Nombre de coecients du ltre et choix des ordres : Le nombre de coecients pour le canal de gauche est N1 = P1 + (P1N L + 1) P1N L (P2N L + 1) P2N L + P2 + 2 2 (2.24)

et le nombre de coecients du canal de droite est N2 = N1 + P2N L + 2 (2.25)

Dans [1], il a t retenu les valeurs P 1 = 20 et P 2 = 10 pour la prdiction linaire stro. Nous choisirons donc dans ltude qui suit : P 1 = 20, P 2 = 10 et P1N L = P2NL = 10, an de comparer avec les rsultats obtenus pour la prdiction linaire stro. Les valeurs de P1N L et P2NL ne sont pas choisies trop grandes pour ne pas avoir un nombre trop important de coecients. Pour P1 = 20, P2 = 10 et P1N L = P2NL = 10, on a : N1 = 140 et N2 = 152 ( Alors que pour P1 = P1N L = 20 et P2 = P2NL = 10, on aurait : N1 = 295 et N2 = 307 )

2.2.3

Approche forward

On tudie dans un premier temps une approche forward du prdicteur : la trame utilise pour dterminer les paramtres du prdicteur est celle sur laquelle on applique le prdicteur. Cest lapproche naturellement utilis en codage audio sans perte. Le chier compress est alors compos : du rsidu des paramtres de la prdiction 18

Estimation de m1 , m2 , M1 et M2 : Les vecteurs et matrices m1 , m2 , M1 et M2 sont estims sur une trame tendue an daugmenter le nombre dchantillons utiliss et ainsi amliorer la prcision de lestimation. Ces trames tendues sont pondres par une fentre de Hamming ( voir g 2.1 ). m1 = 1 N n0 1 N n0 1 N n0 1 N n0
N X N X N X N X

x1et. [n] x1et. n xT 1et. n x1et. n x2et. [n] x2et. n xT 2et. n x2et. n

(2.26)

n=1+n0

M1

(2.27)

n=1+n0

m2

(2.28)

n=1+n0

M2

(2.29)

n=1+n0

avec N le nombre dchantillon de la trame tendue et n0 = max (P1 , P2 , P1N L , P2NL ).

Fig. 2.1 - Trame tendue Inversion des matrices M1 et M2 Linversion des matrices M1 et M2 est ralise laide dune dcomposition de Cholesky. Or, pour utiliser cette technique, il faut que les matrices soient dnies positives. Comme il se peut que certaines valeurs propres soient nulles, il est ncessaire de conditionner les matrices. Pour cela, on ajoutera un sur la diagonale de la matrice. Dans le cas de la prdiction linaire, ce correspond lnergie dun bruit ctif dont le niveau est 40dB plus faible que la voie la plus puissante. On prendra la mme valeur de pour les matrices M1 et M2 . Mise en oeuvre Lalgorithme a t test sur 16 chiers audio : 12 chiers dune base de donne de test MPEG, deux chiers de parole convertis 8khz (engl8 et germ8) et deux chiers de musique rock (clapton et u2_court). On a choisi les ordres suivants : P1 = 20, P2 = 10 et P1N L = P2N L = 10. On a pris une longueur de trame de 20ms (882 chantillons 44,1 kHz) et un recouvrement de 5ms. On a alors calcul le gain de prdiction sur chaque trame des voies gauche et droite de chaque chier. 19

La Figure 2.2 montre la dirence avec le gain de prdiction obtenu avec un prdicteur linaire stro ( minimum, maximum et moyenne ). Le prdicteur linaire stro utilise le mme algorithme mais sans la partie non linaire (P1N L = P2N L = 0). La dernire colonne du tableau correspond au gain apport par la technique qui consiste choisir la prdiction qui donne le meilleur gain de prdiction.
Gp min -0.00 0 -7.70 -12.34 -0.16 -0.91 -0.39 -6.63 -4.34 -18.01 -0.46 -4.22 -5.13 -8.95 -8.20 -5.36 -3.81 -7.97 -0.39 -0.27 -0.06 -0.03 -0.56 -0.36 -0.24 -1.02 -1.40 -0.68 -0.21 -0.43 -0.54 -0.56 Gp max 5.24 3.13 7.11 6.96 1.56 1.45 0.72 0.60 5.19 0.78 0.83 2.46 8.54 7.37 1.86 2.96 1.77 1.99 0.32 0.56 6.03 4.63 1.75 1.31 1.17 1.25 1.77 1.70 1.60 1.62 1.02 2.34 Gp moyenne 2.08 1.17 0.19 0.15 0.24 0.16 0.10 -0.42 0.89 -3.17 0.13 0.15 1.41 0.79 -0.19 0.01 0.30 0.31 0.02 0.02 1.58 1.73 0.32 0.21 0.04 0.06 0.20 0.13 0.17 0.16 0.09 0.08 Gp moyenne 2 2.08 1.17 0.36 0.34 0.24 0.16 0.10 0.01 0.95 0.03 0.14 0.31 1.45 1.26 0.16 0.22 0.31 0.33 0.04 0.04 1.58 1.73 0.32 0.21 0.05 0.06 0.23 0.17 0.17 0.17 0.10 0.09

bagp cast clapton engl engl8 germ germ8 gloc harp orch pitc popm stri trum u2_court vega

Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite

Fig. 2.2 - Dirence entre les gains de prdiction obtenus avec une prdiction non linaire et les gains de prdiction obtenus avec une prdiction linaire ( > 0 = GP nonlin > GP lin ) pour une prdiction stro forward On remarque tout dabord que le gain par rapport au prdicteur linaire dpend beaucoup du type de signal audio. Par exemple, le chier Bagp, un signal audio de cornemuse, obtient un gain moyen sur toutes les trames de 2.1 dB pour la voie gauche et de 1.2 dB pour la voie droite. Alors que le chier Orch, un enregistrement dorchestre symphonique, obtient un gain de 0.02 dB pour les voies gauche et droite. On remarque ensuite que pour des chiers de parole, on obtient de bien meilleurs rsultats en bande troite (sauf pour le canal droit de engl ). La gure 2.3 montre une partie voise du canal gauche du signal de parole germ (chantillonn 48 khz) ainsi que les rsidus des prdictions stro linaire et non linaire. La gure 2.4 montre la mme partie voise du signal mais chantillonn 20

8 khz (germ8) ainsi que les rsidus des prdictions. Le gain apport par la prdiction non linaire est signicatif pour le signal chantillonn 8khz (gain entre 3 et 7 dB par rapport la prdiction linaire). Mais on peut remarquer ici que pour un signal de parole 8khz, une prdiction long terme serait certainement au moins aussi ecace que la prdiction non linaire.

Fig. 2.3 - (de haut en bas) signal de parole chantillon 48 khz, rsidu de la prdiction linaire et rsidu de la prdiction non linaire ( les rsidus sont la mme chelle)

Fig. 2.4 - (de haut en bas) signal de parole chantillon 8 khz, rsidu de la prdiction linaire et rsidu de la prdiction non linaire ( les rsidus sont la mme chelle) 21

La gure suivante est un extrait du chier cast (castagnette) ainsi que les rsidus des prdictions linaire et non linaire. On voit bien que la prdiction non linaire rduit lamplitude des "claquements" de la castagnette ( gain de 5 7 dB par rapport la prdiction linaire).

Fig. 2.5 - (de haut en bas) signal de castagnette chantillon 48 khz, rsidu de la prdiction linaire et rsidu de la prdiction non linaire ( les rsidus sont la mme chelle) Les gures suivantes sont les histogrammes des gains du prdicteur non linaire par rapport au prdicteur linaire par trame pour deux chiers : clapton et vega. On remarque que pour une petite proportion des trames, le prdicteur non linaire se comporte moins bien que le prdicteur linaire, cest pourquoi la technique qui consiste choisir, pour chaque trame, la prdiction qui donne le meilleur gain de prdiction peut amliorer les rsultats.
35

50

30

45

40
25

35
Nombre de trames Nombre de trames

20

30

25

15

20

10

15

10
5

5
0 0.2

0.2

0.4

0.6

0.8

1.2

1.4

1.6

0 1

0.5

0 deltaGp (en dB)

0.5

1.5

deltaGp (en dB)

Fig. 2.6 - Histogramme de Gp pour la voie gauche de clapton 22

Fig. 2.7 - Histogramme de Gp pour la voie droite de clapton

60

120

50

100

40
Nombres de trames

80
Nombres de trames

30

60

20

40

10

20

0 0.6

0.4

0.2

0.2 0.4 deltaGp (en dB)

0.6

0.8

1.2

0 1

0.5

0.5 1 deltaGp (en dB)

1.5

2.5

Fig. 2.8 - Histogramme de Gp pour la voie gauche de vega Bilan

Fig. 2.9 - Histogramme de Gp pour la voie droite de vega

Si on fait un bilan sur tous les chiers, on obtient en moyenne un gain de 0.48dB pour la voie gauche et 0.1dB sur la voie droite. Lorsquon choisit la meilleure prdiction, on obtient en moyenne un gain de 0.52dB pour la voie gauche et 0.39dB sur la voie droite. Le gain nest donc pas trs important en moyenne.

canal gauche Gain par rapport au linaire Gain par rapport au linaire 0.48dB 0.52dB

canal droite 0.1dB 0.39dB

(choix meilleur prdiction) Tab. 2.1 - Moyenne des gains - prdiction stro forward Quantication des coecients Dans lapproche forward, il faut considrer la quantication des coecients. Or il a t montr dans [7] que les techniques actuelles de quantication des coecients du prdicteur LPC ne pouvait pas sappliquer la prdiction linaire stro. La solution avait t dutiliser une quantication scalaire uniforme sur 12 bits. De plus, tant donn que la dynamique des coecients peut varier normment dune trame lautre, une quantication adaptative avait t adopte. Le prdicteur linaire ntant quun cas particulier du prdicteur utilisant un ltre de Volterra (ltre dordre 1), il doit en tre de mme pour le prdicteur non linaire. Pour chaque trame on va donc raliser les oprations suivantes : Recherche du coecient dont lamplitude en valeur absolue est maximale cmax 23

Calcul du facteur dchelle F qui est le rapport entre la plus grande valeur codable 2Nb (o Nb est le nombre de bits de quantications) et le plus grand coecient cmax . F = 2Nb cmax

Remarquons que si le coecient le plus grand ne dpasse pas lunit en valeur absolue, le facteur dchelle est automatiquement gal la plus grande valeur codable. Tous les coecients sont alors multiplis par ce facteur dchelle et arrondis lentier le plus proche. La gure suivante montre le gain de prdiction obtenu sur les 2 canaux du chier clapton en fonction du nombre de bits de quantication. On remarque que pour obtenir le mme gain de prdiction quune prdiction sans quantication 102 prs, il est ncessaire de quantier les coecients sur 12 bits.
30

25

20
Gain de prdiction (en dB)

15

10

8 10 12 Nombre de bits de quantification

14

16

18

20

Fig. 2.10 - Gain de prdiction en fonction du nombre de bits de quantication pour la voie gauche (trait plein) et la voie droite (trait pointill) du chier clapton

De plus, le prdicteur non linaire a un nombre trs important de coecients transmettre : avec P1 = 20, P2 = 10 et P1N L = P2N L = 10, le prdicteur non linaire a 231 coecients de plus que le prdicteur linaire (292 au lieu de 61). Pour des trames de 882 chantillons (20ms 44,1khz) le dbit li aux coecients serait alors de 1.98 bits/chantillons contre 0.41 bits/chantillons (si les coecients sont cods sur 12 bits). 24

Le gain apport par le non linaire, qui nest pas trs important, sera donc perdu au nal cause du nombre important de coecients transmettre. On envisagera donc dans ce qui suit une conguration backward, pour ne pas avoir transmettre les coecients.

2.2.4

Approche backward

Lapproche backward a t introduite dans [16] an de rduire le dlai de codage. Dans ce type danalyse, les coecients du prdicteur ne sont pas calculs sur la trame de signal coder, mais sur la trame prcdente. Ainsi, le dcodeur disposant des chantillons de la trame prcdente, il peut calculer les coecients du prdicteur en utilisant la mme mthode que le codeur. On voit alors quil ny a plus de coecients de prdiction transmettre. Enn, il nest pas ncessaire de stocker une trame de signal pour faire une nouvelle analyse. Cette technique a donn naissance au LD-CELP (Low-Delay CELP), un codeur de parole 16 kb/s faible dlai dencodage. La perte de trame constitue le principal dfaut de ce codeur. On imagine les dicults faire une analyse LPC backward lorsque la trame est perdue ou errone. Loptique dune prdiction linaire stro porte en backward est par consquent sduisante : pas de coecients transmettre, donc pas de quantication raliser pas de limite dans le choix des ordres de prdiction (si ce nest le temps de calcul) enn on peut raliser autant danalyse que ncessaire. Le seul inconvnient tant une diminution du gain de prdiction par rapport lapproche forward, puisque les coecients seront calculs sur la trame passe. Mise en oeuvre : La longueur des trames est aussi de 20ms mais le recouvrement (5ms) nest que dun seul cot tant donn que lanalyse se fait sur les chantillons passs. On choisit dans cette approche de pondrer la trame tendue par une fentre asymtrique an de privilgier les chantillons les plus rcents : 95% de la fentre correspond la moiti dune fentre de Hamming et la partie restante est un quart de priode dune fonction cosinus.

Fig. 2.11 - Trame tendue Pour que le prdicteur soit plus adaptatif, on dcide d eectuer une analyse en sous-trames : le prdicteur est mis jour 4 fois par trames, le prdicteur restant identique sur des sous-trames de 25

5ms. Le tableau suivant ( gure 2.11 )montre le gain en dB par rapport un prdicteur linaire stro. Le prdicteur linaire stro utilise le mme algorithme mais sans la partie non-linaire.

bagp cast clapton engl engl8 germ germ8 gloc harp orch pitc popm stri trum u2_court vega

Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite

Gp min -1.83 -2.43 -12.56 -6.09 -11.11 -6.04 -13.53 -28.57 -20.20 -22.75 -15.61 -22.78 -21.73 -25.73 -18.08 -11.96 -4.35 -3.19 -2.953 -3.09 -1.20 -1.70 -6.29 -8.88 -5.86 -6.03 -4.66 -6.24 -6.66 -6.28 -14.93 -17.29

Gp max 5.48 3.19 6.08 4.36 1.47 2.52 2.26 3.48 9.11 13.04 3.02 4.43 7.81 9.76 5.44 7.91 1.80 1.51 0.58 0.60 6.34 5.07 1.57 1.32 0.39 1.69 3.30 2.72 1.34 0.86 0.77 1.68

Gp moyenne 1.88 0.86 -0.17 -0.16 -0.42 -0.53 -0.13 -0.84 -0.28 -3.29 -0.09 -0.15 0.04 -0.21 -0.64 -0.36 -0.02 -0.00 -0.31 -0.36 1.55 1.68 -0.26 -0.38 -0.29 -0.24 -0.32 -0.46 -0.51 -0.57 -0.10 -0.18

Gp moyenne 2 1.89 0.89 0.13 0.10 0.03 0.01 0.07 0.03 0.39 0.06 0.08 0.32 0.63 0.96 0.23 0.30 0.11 0.12 0.00 0.00 1.55 1.69 0.06 0.02 0.00 0.00 0.15 0.09 0.01 0.00 0.03 0.02

Fig. 2.12 - Dirence entre les gains de prdiction obtenus avec une prdiction non linaire et les gains de prdiction obtenus avec une prdiction linaire ( > 0 = GP nonlin > GP lin ) pour une prdiction stro backward On remarque que le gain est toujours ngatif en moyenne sur chaque trame sauf pour deux chiers : bagp et pitc, et pour le canal gauche de germ8. Mme si deux trames conscutives sont trs similaires, il existe de petites dirences qui perturbent le prdicteur. En eet, prdire une trame avec un prdicteur dont lanalyse a t faite sur la trame prcdente peut tre vu comme une prdiction forward auquel on a fait subir une variation minime des coecients. Or, le prdicteur non linaire est beaucoup plus sensible cette variation que le prdicteur linaire, ce qui explique les rsultats obtenus. 26

Les gures suivantes sont les histogrammes des gains du prdicteur non linaire par rapport au prdicteur linaire par trame pour deux chiers : clapton et vega.
400

250

350

200
300

Nombres de trames

Nombres de trames

250

150

200

150

100

100

50
50

0 12

10

6 4 deltaGp (en dB)

0 7

2 1 deltaGp (en dB)

Fig. 2.13 - Histogramme de Gp pour la voie gauche de clapton


1000
800

Fig. 2.14 - Histogramme de Gp pour la voie droite de clapton

900

700

800
600

700
Nombres de trames

600

500

Nombres de trames

500

400

400

300

300
200

200
100

100

0 16

14

12

10

8 6 deltaGp (en dB)

0 18

16

14

12

10

8 6 deltaGp (en dB)

Fig. 2.15 - Histogramme de Gp pour la voie gauche de vega

Fig. 2.16 - Histogramme de Gp pour la voie droite de vega

On remarque quil y a tout de mme certaines trames dont le gain est positif, ce gain pouvant atteindre 2 dB, cest pourquoi la technique qui consiste choisir, pour chaque trame, la prdiction qui donne le meilleur gain de prdiction peut amliorer les rsultats. Bilan Si on fait un bilan sur tous les chiers, on obtient en moyenne un gain de -0.01dB pour la voie gauche et -0.32dB sur la voie droite. Lorsquon choisit la meilleure prdiction, on obtient en moyenne un gain de 0.34dB pour la voie gauche et 0.29dB sur la voie droite.

27

canal gauche Gain par rapport au linaire Gain par rapport au linaire -0.01dB 0.34dB

canal droite -0.32dB 0.29dB

(choix meilleur prdiction) Tab. 2.2 - Moyenne des gains - prdiction stro backward Le gain nest donc pas trs important en moyenne et si on considre la grande complexit de calcul que requiert la prdiction non linaire, cette technique est au nal peu intressante.

2.3

Prdiction non linaire monophonique sur les rsidus de la prdiction linaire stro avec un ltre de Volterra

On peut envisager une autre conguration : sparer la prdiction linaire et la prdiction non linaire en deux tapes distinctes : on eectue dabord une prdiction linaire stro puis on applique une prdiction non linaire monophonique chaque rsidu de la prdiction linaire.

2.3.1

Prdiction non linaire avec un ltre de Volterra : approche backward

Comme on la vu prcdemment, il ny a aucun intrt raliser une prdiction forward tant donn le nombre trs important de coecients transmettre. Nous allons donc tudier dans ce qui suit une prdiction backward sur chaque rsidu de la prdiction linaire stro. r b1 (n) = r b2 (n) =
P X i=1 P X i=1

h1 (i)r1 (n i) + h1 (i)r2 (n i) +

P P X X i=1 j =i P P X X i=1 j =i

h2 (i, j ).r1 (n i)r1 (n j ) h2 (i, j ).r2 (n i)r2 (n j )

o r1 et r2 sont les rsidus de la prdiction linaire stro. Mise en oeuvre : La longueur des trames est de 20ms, le recouvrement de 5ms. On pondre la trame tendue par une fentre asymtrique an de privilgier les chantillons les plus rcents : 95% de la fentre correspond la moiti dune fentre de Hamming et la partie restante est un quart de priode dune fonction cosinus. Pour que le prdicteur soit plus adaptatif, on dcide deectuer une analyse en sous-trames : le prdicteur est mis jour 4 fois par trames, le prdicteur restant identique sur des sous-trames de 5ms. Le tableau suivant (gure 2.16) montre le gain par rapport une prdiction linaire. Le prdicteur linaire utilise le mme algorithme mais sans la partie non-linaire. On a choisit un ordre P = 10. 28

bagp cast clapton engl engl8 germ germ8 gloc harp orch pitc popm stri trum u2_court vega

Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite

Gp min -0.28 -0.05 -6.08 -5.56 -6.36 -5.11 -1.03 -0.01 -12.58 -0.07 -1.40 -0.00 -10.11 -0.00 -1.05 -2.77 -3.06 -1.28 -0.20 -0.09 -0.00 -0.00 -0.92 -2.60 -1.70 -3.83 -0.09 -0.03 -7.89 -3.23 -2.25 -0.09

Gp max 1.76 0.41 1.67 1.13 1.46 0.40 0.38 0.02 4.17 0.06 1.01 0.04 5.69 0.00 1.16 1.31 0.40 0.46 0.41 0.37 2.39 1.02 0.70 1.12 0.30 0.26 0.19 0.15 0.78 0.62 0.48 0.08

Gp moyenne 0.54 0.05 -0.04 -0.03 -0.13 -0.12 -0.00 0.00 -0.04 0.00 0.02 0.00 0.14 0.00 0.00 0.00 -0.01 -0.01 0.00 0.01 0.26 0.18 0.00 -0.05 -0.00 -0.02 0.00 0.00 -0.33 -0.26 0.00 0.00

Gp moyenne 2 0.54 0.05 0.02 0.01 0.03 0.00 0.01 0.00 0.17 0.00 0.04 0.00 0.50 0.00 0.00 0.00 0.01 0.01 0.01 0.01 0.26 0.18 0.04 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.00

Fig. 2.17 - Dirence entre les gains de prdiction obtenus avec une prdiction non linaire et les gains de prdiction obtenus avec une prdiction linaire ( > 0 = GP nonlin > GP lin ) pour une prdiction mono backward sur les rsidus On remarque que le gain est ngatif ou trs proche de 0 en moyenne sur chaque trame sauf pour deux chiers : bagp et pitc, et pour le canal gauche de germ8. Bilan Si on fait un bilan sur tous les chiers, on obtient en moyenne un gain de 0.03dB pour la voie gauche et -0.02dB sur la voie droite. Lorsquon choisit la meilleure prdiction, on obtient en moyenne un gain de 0.10dB pour la voie gauche et 0.02dB sur la voie droite. Le gain est pratiquement nul. Cette technique ne prsente donc pas dintrt.

canal gauche Gain par rapport au linaire Gain par rapport au linaire 0.03dB 0.10dB

canal droite -0.02dB 0.02dB

(choix meilleur prdiction) Tab. 2.3 - Moyenne des gains - prdiction mono backward sur rsidus 29

2.3.2

Prdiction avec un ltre de Volterra adaptatif

Ces ltres, dcrits dans [17], utilisent des algorithmes pour mettre jour leurs coecients pour chaque nouvel chantillon du signal dentre. Toutes les dmonstrations sont aussi prsentes en dtail dans [41]. Le ltre LMS Cest le ltre le plus simple qui minimise lerreur quadratique e (n)2 = (x (n) x b (n))2 h1 (i, n)x(n i) +
P X P X i=1 j =i

(2.30)

avec x b (n) =

Les quations de mise jour des coecients sont

P X i=1

h2 (i, j, n).x(n i)x(n j )

h1 (i, n + 1) = h1 (i, n)

1 e (n) 2 h1 (i, n) = h1 (i, n) + 1 e (n) x(n i)

(2.31) (2.32)

et h2 (i, j, n + 1) = h2 (i, j, n) 2 e (n) 2 h2 (i, j, n) = h2 (i, j, n) + 2 e (n) x(n i)x(n j ) (2.33) (2.34)

o 1 et 2 sont des constantes positives. Avec les notations vectorielles : e(n) = x(n) hT n xn hn+1 = hn + xn e(n) (2.35) (2.36)

o est une matrice diagonale dont les P premiers coecients sont 1 et dont les autres sont 2 . On pourra donc utiliser lalgorithme suivant : Algorithme LMS : Initialisation h0 est initialis 0. Boucle x b (n) = hT n xn e(n) = x(n) x b (n)

hn+1 =hn + xn e(n)

Cependant, au ltre LMS, on prfrera le ltre NLMS qui est moins sensible aux variations de dynamique de lentre et a de meilleurs proprits de convergence. 30

Le ltre NLMS Le ltre NLMS est un ltre LMS normalis. Lquation de mise jour des coecients est : x1n x2n hn+1 =hn + 1 + 2 e(n) + kx1n k + kx2n k o est une petite constante qui empche une division par 0. x1n est la partie linaire de xn et x2n la partie non linaire. Mise en oeuvre (les tests sont eectus sur 2 chiers : clapton et vega) : 1. On applique dabord le ltre sans la partie non linaire an de dterminer le 1 optimal (celui qui maximise la moyenne des gains de prdiction par trame). Fichier Clapton : ordre mu1 opt. Gain voie gauche Gain voie droite Fichier Vega : ordre mu1 opt. Gain voie gauche Gain voie droite 5 0.03 0.93 1.34 10 0.06 1.46 1.86 5 0.03 0.83 1.47 10 0.06 1.00 1.66

Tab. 2.4 - Gains de prdiction NLMS - chier clapton

Tab. 2.5 - Gains de prdiction NLMS - chier vega On peut dja remarquer que la prdiction NLMS linaire donne de meilleurs gains de prdictions quune prdiction linaire backward pour un ordre 10 ( voir 2.3.1 ) : NLMS clapton voie gauche clapton voie droite clapton voie gauche clapton voie droite 1.00 1.66 1.46 1.86 linaire backward 0.78 1.54 1.53 1.81

Tab. 2.6 - Gains de prdiction - comparaison NLMS avec linaire backward De plus, on peut augmenter lordre du NLMS sans trop augmenter la complexit des calculs contrairement la prdiction linaire backward. 2. On applique le ltre avec la partie non linaire : pour le 1 dtermin prcdemment, on recherche 2 qui maximise le gain de prdiction. Malheuresement, quelque soit lordre et quelque soit 2 , le gain de prdiction est infrieure en moyenne au gain obtenu avec une prdiction 31

linaire. La gure suivante montre la moyenne des gains de prdiction par trame en fonction
2 et droite de clapton et pour un ordre 5. de 2 pour les voies gauche

2
Gain de prdiction (en dB)

10

12 9 10

10

10

10

10

10

10

10

10

10

mu2

Fig 2.17 - Gain de prdiction en fonction de mu2 3. Par contre, pour certaines trames, la prdiction non linaire donne un meilleur gain de prdiction. On pourrait donc envisager une technique qui consisterait, pour chaque trame, choisir la prdiction qui donne le meilleur gain de prdiction. La gure suivante montre la moyenne des gains de prdiction par trame obtenue avec cette technique, en fonction de 2 , pour les voies gauche et droite de clapton et pour un ordre 5.

9 8 7 6
deltaGp (en dB)

x 10

5 4 3 2 1 0 10 10

10

10

10 mu2

10

10

Fig. 2.18 - Gain par rapport au linaire en fonction de mu2 - choix de la meilleure prdiction 32

On atteint un maximum pour 104 < 2 < 103 . Mais le gain apport est tellement faible ( au maximum 8.103 dB) que cette technique prsente peu dintrt.

Le ltre AP (Ane projection) Algorithme AP : Initialisation h0 est initialis 0. Boucle R = [xn xn1 ... xn q+1 ] x(n) x(n 1) e = RT hn1 . . . x(n q + 1) 1 hn = hn1 + R RT R e Mise en oeuvre (les tests sont eectus sur 2 chiers : clapton et vega) : 1. On applique dabord le ltre sans la partie non linaire. Lordre de projection est 2. Fichier Clapton : ordre mu opt. Gain voie gauche Gain voie droite 5 0.02 0.72 1.27 10 0.03 1.92 1.51

Tab. 2.7 - Gains de prdiction AP - chier clapton Fichier Vega : ordre mu opt. Gain voie gauche Gain voie droite 5 0.02 0.82 1.20 10 0.03 1.39 1.74

Tab. 2.8 - Gains de prdiction AP - chier vega On remarque tout dabord que les gains de prdiction sont infrieurs ceux obtenus avec le ltre NLMS. 2. On applique ensuite le ltre avec la partie non linaire, mais comme pour le ltre NLMS, la partie non linaire namliore pas le gain de prdiction. 33

Le ltre RLS Ce ltre minimise la fonction derreur n X 2 nk x(k ) hT J (n) = n xk


k=0

(2.37)

o 0 1 , est un facteur qui controle la capacit de mmoire du ltre. En annulant la driv de J , on trouve facilement les coecients optimaux : hn = C1 (n)p(n) (2.38)

avec C(n) = et p(n) =

k=0 n X

n X

nk xk xT k

(2.39)

nk x(k )xk

(2.40)

k=0

On peut tout dabord dduire de (2.39) et (2.40) : C(n) = C(n 1) + xn xT n p(n) = p(n 1) + x(n)xn En utilisant le lemme dinversion matricielle, on dduit alors de (2.41) :
1 (n 1) C1 (n) = 1 C1 (n 1) 1 k(n)xT nC

(2.41) (2.42)

(2.43)

avec k(n) = Mais 2.44 est aussi quivalent

1 C1 (n 1)xn 1 (n 1)x 1 + 1 xT n nC

(2.44)

1 (n 1)xn k(n) = 1 C1 (n 1)xn 1 k(n)xT nC 1 1 1 = C (n 1) 1 k(n)xT (n 1) xn nC

= C1 (n)xn

(2.45)

En utilisant (2.41) , (2.42) et (2.45), on a nalement : hn = C1 (n)p(n) = C1 (n)p(n 1) + C1 (n)xn x(n) = hn1 k(n)xT n hn1 + k(n)x(n)

1 (n 1)p(n 1) + C1 (n)xn x(n) = C1 (n 1)p(n 1) k(n)xT nC

= hn1 + k(n)e(n) Algorithme RLS :

avec e(n) = x(n) hT n1 xn

On pourra donc utiliser lalgorithme suivant :

34

Initialisation h0 est initialis 0. C1 (0) = 1 I avec une petite constante positive Boucle k(n) = x b (n) =
1 C1 (n1)xn 1 (n1)x 1+1 xT nC hT x n1 n

1 (n 1) C1 (n) = 1 C1 (n 1) 1 k(n)xT nC

e(n) = x(n) x b (n)

hn = hn1 + k(n)e(n)

Mise en oeuvre (les tests sont eectus sur 2 chiers : clapton et vega). On prend = 1, = 0.00001 : Fichier Clapton : ordre Gain voie gauche 5 Lin 0.02 Non Lin 0.04 10 Lin 0.03 Non Lin -0.17

Gain voie droite -0.08 0.00 -0.04 0.04 Tab. 2.9 - Gains de prdiction RLS - chier clapton Fichier Vega : ordre Gain voie gauche 5 Lin 0.07 Non Lin 0.06 10 Lin 0.08 Non Lin -0.01

Gain voie droite 0.08 0.04 0.09 0.07 Tab. 2.10 - Gains de prdiction RLS - chier vega On remarque que les gains de prdiction sont infrieurs ceux obtenus avec les 2 ltres prcdents. Il ny a donc pas dintrt utiliser cette technique mme si le non linaire amliore le gain dans certains cas.

2.4

Conclusions

Le but de ce chapitre tait de voir si une prdiction base sur un ltre de volterra donnait de meilleurs gains de prdiction quune simple prdiction linaire. Nous avons dabord tudi une prdiction stro adaptative par trame (approche forward et backward) puis nous avons tudi deux types de prdiction mono sur les rsidus de la prdiction linaire stro : une prdiction adaptative par trame (approche backward) et une prdiction adaptative par chantillon. Nous sommes parvenu aux conclusions suivantes : Un prdicteur stro base sur un ltre de Volterra donne de meilleurs gains de prdiction quune prdiction stro linaire en forward. Mais ce type de prdiction cote trop cher en 35

terme de dbit cause du nombre trs important de coecients transmettre. En backward, un prdicteur stro bas sur un ltre de Volterra amliore trs peu les gains de prdiction dune prdiction stro linaire au prix dune grande complexit. Une prdiction mono sur les rsidus avec un ltre de Volterra namliore pas ou alors trs peu les gains de prdiction dune prdiction linaire, que ce soit pour un prdicteur adaptatif par trame ou un prdicteur adaptatif par chantillon. Finalement, nous pouvons en conclure que la prdiction non linaire avec un ltre de Volterra, quelle que soit lapproche choisie, namliore pas les performances dun codeur audio sans perte.

36

Chapitre 3

Prdiction non linaire avec un rseau de neurones


Dans [13], les auteurs montrent quun rseau de neurones est plus performant quun ltre de Volterra pour prdire des signaux de parole ( en forward ). De plus un rseau de neurones utilise moins de coecients quun ltre de Volterra pour des ordres gaux. Les rsultats prometteurs de cet article nous ont donc pouss tudier ce type de prdiction dans le cas de signaux audio. Nous verrons donc dans cette partie si une prdiction avec un rseau de neurone est plus performante quune prdiction linaire pour un codeur audio sans perte. Nous rappellerons dans un premier temps ce quest un rseau de neurones. Puis nous tudierons, comme nous lavons fait pour le ltre de Volterra, une approche forward et une approche backward du prdicteur.

3.1
3.1.1

Gnralits sur les rseaux de neurones


Le neurone formel

La description dun rseau de neurones commence par la reprsentation dun neurone formel. Le modle le plus simple et le plus ancien de neurone formel est le modle Mc Culloch et Pitts [19]. Le "neurone" de Mc Culloch et Pitts est un automate boolen seuil dont la sortie S est donne par la fonction de transfert : S = f (x ) o n X x = wi .ei
i=1

(3.1)

Le vecteur (ei )i=1..n reprsente le vecteur des entres de lunit. 37

Le vecteur (wi )i=1..n est le vecteur des "poids" des connexions associes lunit. Le poids wi pondre linuence de la i-me entre dans le signal total reu par lunit. est un paramtre de seuil. x est ltat dactivation de lunit dont lanalogue biologique est le potentiel membranaire. Dans le modle dorigine, la fonction f est une fonction "seuil" qui peut tre indiremment, une fonction de Heaviside : f (x) = ou, une fonction "signe" : f (x) = ( +1 si x 0 1 si x 0 ( 1 si x 0

0 si x 0

(3.2)

(3.3)

Les biologistes et les chercheurs soucieux de vraisemblance biologique prfrent donner une description continue du neurone. La fonction f est alors une fonction borne, continue et croissante. Les fonctions les plus courantes sont les fonctions "sigmodes" : f (x) = et f (x) = 1 exp(x) 1 + exp(x) (3.5) 1 1 + exp(x) (3.4)

qui sont respectivement a valeurs dans [0, 1] et dans [1, 1]. Le paramtre est un paramtre de gain qui mesure la raideur de la sigmode. Remarquons que dans la limite dun gain inni, on retrouve
1.5
1.5

les fonctions a valeurs discrtes donnes prcdemment.

0.5

0.5

f(x)

f(x)

0.5

0.5

1.5 5

0 x

1.5 5

0 x

Fig. 3.1 - Fonction "seuil"

Fig. 3.2 : Fonction "sigmode"

Dans toute la suite, le neurone formel aura comme fonction de transfert une fonction sigmode valeurs dans [1, 1] et un gain = 1. De plus, on xera le seuil 0 et on ajoutera une constante 38

b appell biais. La relation entre-sortie du neurone est alors donne par les galits : exp(x) S=1 1+exp(x) + b o n X wi .ei x =
i=1

(3.6)

3.1.2

Le rseau de neurones

Linterconnexion dun ensemble dunits du type de celles dcrites dans le paragraphe prcdent dnit un rseau de neurones. On peut distinguer deux grandes familles de rseaux : les rseaux non-rcurrents ou feedforward et les rseaux rcurrents. Dans un rseau feedforward , les units sont organises en couches successives. Les sorties des units dune couche servent dentres aux units de la couche suivante. Au sein dune mme couche, les units ne sont pas connectes entre elles. La premire couche est appele la couche dentre, la dernire, la couche de sortie et les couches intermdiaires sont appeles les couches caches. Sil existe des boucles, dans le graphe orient des connexions, le rseau est dit rcurrent.

Couche dentre

Couche de sortie
Fig. 3.3 - Rseau "feedforward" Fig. 3.4 - Rseau rcurrent

3.1.3

Le Perceptron - Historique (extraits de [24])

Cest en 1958 que Rosenblatt [20] conoit le Perceptron, un rseau de neurones "feedforward" possdant seulement deux couches : une couche dentre et une couche de sortie. Ce rseau, qui parvient apprendre identier des formes simples et calculer certaines fonctions logiques, constitue le premier systme articiel exhibant une facult jusque l rserve au vivant : la capacit dapprendre par lexprience ; cest le premier rseau de neurones articiel proprement dit. Les travaux de Rosenblatt suscitent au dbut des annes 60 un vif enthousiasme chez les scientiques alors fortement impliqus dans la recherche sur lintelligence articielle. Cet enthousiasme se 39

voit pourtant brusquement refroidi en 1969 lorsque deux scientiques amricains de renom, Minsky et Papert [21], publient un livre qui met jour les limites intrinsques du Perceptron. Ce quont dmontr Minsky et Papert cest quun rseau de neurones de type perceptron est incapable de rsoudre toute une classe de problmes simples (les problmes non linairement sparables). Certes lutilisation de couches intermdiaires, "caches", de neurones, permettrait de contourner cette limitation, condition de disposer dun mcanisme dapprentissage appropri pour ces neurones additionnels. Mais cest prcisment ce mcanisme qui lpoque fait cruellement dfaut, ce qui fait dire en substance aux deux savants amricains, qu "un rseau de type perceptron ne sera jamais capable de faire quoi que ce soit dintressant". Il faut attendre le dbut des annes 80 pour voir un regain dintrt pour les rseaux de neurones articiels. Celui-ci sexplique tout dabord par les rsultats des travaux de Hopeld [22] qui dmontre, en 1982, lutilit des rseaux rcurrents dans la comprhension et la modlisation des processus de la mmoire et rend manifeste la relation existant, sur le plan formel, entre ce type de rseaux et des systmes physiques (tels que les verres de spin) pour lesquels la physique statistique fournit un cadre thorique parfaitement appropri. Paralllement aux travaux de Hopeld, Werbos conoit un mcanisme dapprentissage pour les rseaux multicouches de type perceptron : cest lalgorithme dapprentissage par "Back-propagation" (rtro-propagation de lerreur) qui fournit un moyen simple dentraner les neurones des couches caches. Cet algorithme sera rellement popularis en 1986 par Rumelhart et al [23] dans un livre : "Parallel Distributed Processing".

3.1.4

Lapprentissage

Les techniques dapprentissage se rpartissent en trois grandes familles : Lapprentissage non supervis modie les poids du rseau en fonction dun critre interne, indpendant de ladquation entre le comportement du rseau et la tache quil doit eectuer. Lapprentissage supervis, au contraire, dispose dun comportement de rfrence vers lequel il tente de faire converger le rseau. Lapprentissage semi-supervis suppose quun comportement de rfrence prcis nest pas disponible, mais quen revanche il est possible dobtenir des indications qualitatives ou lacunaires sur les performances du rseau. Nous nous intresserons ici uniquement lapprentissage supervis. Le but de lapprentissage supervis est dinculquer un comportement de rfrence au rseau. Ce comportement de rfrence est dni partir dun ensemble reprsentatif dexemples appel base dapprentissage. Cet ensemble est compos de couples dapprentissage forms dun vecteur dentre appel patron dentre et dun vecteur de la sortie dsire appel patron de rfrence. Lapprentissage consistera alors dterminer les poids des direntes liaisons du rseau de manire obtenir, lorsquon prsente au rseau un patron dentre, une valeur en sortie aussi proche que possible du patron de rfrence correspondant. 40

Lapprentissage comprend quatre tapes de calcul : 1. Initialisation des poids du rseau. 2. Prsentation des patrons dentre de la base dapprentissage et calcul de ltat du rseau. 3. Calcul de lerreur. Lerreur est une fonction de la dirence entre la sortie obtenue et la sortie dsire. On choisira en gnral lerreur quadratique. 4. Modication des poids synaptiques. Cette modication seectue grce un algorithme dapprentissage comme par exemple la rtro-propagation du gradient. Les tapes 2-3-4 (une poque) sont rptes jusqu la n de lapprentissage : on sarrte lorsque lerreur descend en dessous dune certaine valeur ou aprs un certain nombre dpoques.

3.1.5
linaire :

Rseaux de neurones pour la prdiction non linaire

Dans la littrature, trois types de rseaux de neurones ont t utiliss pour la prdiction non Les rseaux de type perceptron multi-couche [25], [26], [27], [28], [29], [30], [31], [32], [33], [34], [35]. Les rseaux fonctions de bases radiales [36], [37], [39], [40]. Les rseaux rcurrents [42], [43]. Quelque soit le rseau utilis, on cherchera prdire un signal x(n) partir de ses P valeurs prcdentes. Le rseau aura donc P entres et 1 sortie et il sera entrain de telle manire quil ait en sortie une valeur aussi proche que possible de x(n) lorsquon lui prsente en entre les valeurs x(n 1), x(n 2), ..., x(n P ). On tudiera une prdiction non linaire avec le rseau de neurones dont la structure est la plus

simple : le perceptron multi-couches ou multi-layer perceptron ( MLP ). Marcos Faundez a tudi ce type de prdiction pour un codeur de parole de type ADPCM [25]-[31]. Une grande partie de mon tude sest inspire de ses travaux.

3.2

Prdiction non linaire stro avec un rseau MLP : approche forward

On tudie dans un premier temps une approche forward du prdicteur.

3.2.1

Les rseaux utiliss

Prdiction du canal gauche Le premier rseau prdit x1 (n) partir des chantillons passs x1 (n i) et x2 (n j ) avec 41

1 i P1 et 1 j P2 . Le premier rseau a donc P1 + P2 neurones dentres et une sortie.

Prdiction du canal de droite Pour la prdiction du signal de la voie droite, on peut tirer parti de lentrelacement des voies x1 et x2 . Le deuxime rseau prdit donc x2 (n) partir des chantillons passs x1 (n i) et x2 (n j ) sortie. avec 0 i P2 et 1 j P1 . Le deuxime rseau a donc P1 + P2 + 1 neurones dentres et une

Choix de P1 et P2 Pour comparer avec les rsultats obtenus avec une prdiction linaire stro et avec une prdiction stro avec un ltre de Volterra, on choisira P1 = 20 et P2 = 10. Choix du nombre de neurones caches Plus le rseau MLP a de neurones, plus il est performant. Dun autre cot, plus le rseau a de neurones, plus lapprentissage ncessitera des calculs complexes et plus le prdicteur aura de paramtres et donc plus le codeur aura de paramtres transmettre. Dans [25], les auteurs ont utiliss un rseau MLP pour prdire des signaux de parole. Il a t montr quune couche cache avec deux neurones cachs tait un bon compromis entre la performance et la complexit des calculs. Bien que les signaux audio que nous allons utiliser soient plus riches que des signaux de parole, nous allons tout de mme utiliser des rseaux deux neurones cachs pour limiter le nombre de paramtres.

3.2.2
0

Apprentissage
0

Algorithme dApprentissage
10
10

LevenbergMarquardt Descente du gradient Descente du gradient avec momentum 10


1

LevenbergMarquardt Gradients conjugus ( PowelBeale ) Gradients conjugus ( FletcherReeves ) Gradients conjugus ( PolakRibire ) 10
1

Erreur quadratique moyenne

10

Erreur quadratique moyenne

10

10

10

10

10

10

10

20

30

40

50

60

70

80

90

100

10

10

20

30

40

50

60

70

80

90

100

Nombre dpoques

Nombre dpoques

Fig. 3.5 - Erreur quadratique moyenne dune base dapprentissage ( une trame du chier clapton) en fonction du nombre dpoques pour dirents algorithmes dapprentissage 42

Fig. 3.6 - Erreur quadratique moyenne dune base dapprentissage ( une trame du chier clapton) en fonction du nombre dpoques pour dirents algorithmes dapprentissage

Pour des petits rseaux, lalgorithme de Levenberg-Marquardt [44] est le plus ecace : il converge en quelques poques mais il ncessite linversion dune matrice de taille N chaque poque ( N tant le nombre de paramtres du rseau ). Les gures 3.5, 3.6, 3.7 montrent lerreur quadratique moyenne dune base dapprentissage ( une trame du chier clapton ) en fonction du nombre dpoques pour dirents algorithmes dApprentissage.
10
0

LevenbergMarquardt QuasiNewton ( algo. BFGS ) QuasiNewton ( algo. OSS )


1

10

Erreur quadratique moyenne

10

10

10

10

10

20

30

40

50

60

70

80

90

100

Nombre dpoques

Fig. 3.7 - Erreur quadratique moyenne dune base dapprentissage ( une trame du chier clapton) en fonction du nombre dpoques pour dirents algorithmes dapprentissage Le multi-start Larticle [27] propose la technique suivante : pour chaque trame, on entrane le rseau plusieurs fois avec direntes initialisations ; on garde alors lapprentissage qui donne le meilleur gain de prdiction. Les direntes initialisations sont : 1 initialisation qui reprend le rseau entran de la trame prcdente ( celui qui a donn le meilleur gain ). 4 initialisations alatoires : chaque poids est initialis alatoirement selon la rgle de NguyenWidrow ([45]). Cette technique est test sur un extrait du chier Clapton ( 98 trames de longueurs 1024 chantillons, lalgorithme dapprentissage est Levenberg-Marquardt avec 50 poques ). Les gures suivantes montrent le gain de prdiction pour 3 trames en fonction du nombre dpoques pour les direntes initialisations. On remarque que linitialisation des poids du rseau a une grande inuence sur la convergence de lapprentissage : On peut avoir une dirence de gain de 5dB la n de lapprentissage pour deux initialisations direntes ( gure 3.8 ). 43

Lapprentissage avec les poids de la trame prcdente converge trs vite. Deux trames conscutives tant trs similaires, les poids du rseau pour deux trames conscutives sont aussi assez semblables. Lapprentissage avec les poids de la trame prcdente est dans la majorit des cas celui qui donne le meilleur gain de prdiction ( environ 50% des trames ).
35

30

30

25

25

20

Gain de prdiction (en dB)

15

Gain de prdiction (en dB)

20

15

10

10

5
5

10
10

15

15
0 5 10 15 20 25 30 Nombre dpoques 35 40 45 50

10

15

20

25

30

35

40

45

50

Nombre dpoques

Fig. 3.8 - Gain de prdiction (en dB) en fonction du nombre dpoques pour les 5 initialisations (trame 1)
30

Fig. 3.9 - Gain de prdiction (en dB) en fonction du nombre dpoques pour les 5 initialisations (trame 2)

25

20
Gain de prdiction (en dB)

15

10

10

10

15

20

25

30

35

40

45

50

Nombre dpoques

Fig. 3.10 - Gain de prdiction (en dB) en fonction du nombre dpoques pour les 5 initialisations (trame 3) La gure suivante montre la moyenne des gains de prdiction par trame en fonction du nombre dpoques ( voie gauche et voie droite de lextrait du chier clapton ) avec le multi-start 44

avec un seul apprentissage par trame et sans rinitialisation des poids du rseau Le multi-start apporte donc un gain non ngligeable.

28

27

26
Gain de prdiction (en dB)

25

24

23

22

21

10

15

20 25 30 Nombre dpoques

35

40

45

50

Fig. 3.11 - Gain de prdiction en fonction du nombre dpoques avec multi-start (voie gauche : , voie droite : ) et sans muti-start (voie gauche : - - - , voie droite : - - )

3.2.3

Mise en oeuvre

Lalgorithme a t test sur les mmes chiers audio que pour le ltre de Volterra. On a pris une longueur de trame de 20ms. Lapprentissage utilise la technique dnie prcdemment (multi-start) avec 5 initialisations et 50 poques. On a alors calcul le gain de prdiction sur chaque trame des voies gauche et droite de chaque chier. La Figure 3.12 montre la dirence avec le gain de prdiction obtenue avec un prdicteur linaire stro (minimum, maximum et moyenne). La dernire colonne du tableau correspond au gain apport par la technique qui consiste choisir la prdiction qui donne le meilleur gain de prdiction. 45

bagp cast clapton engl engl8 germ germ8 gloc harp orch pitc popm stri trum u2_court vega

Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite Gauche Droite

Gp min -4.28 -6.90 -.3.38 -4.21 0.13 0.23 -5.16 -13.70 -2.52 -4.22 -4.42 -4.12 -1.54 -2.06 -1.14 -1.26 -0.80 -3.17 -2.61 -0.64 -1.80 -2.10 -29.62 -4.69 -0.31 -2.17 -8.09 -13.68 -4.32 -5.13 -6.02 -5.30

Gp max 10.26 5.07 11.86 12.69 6.09 7.47 9.83 30.54 21.03 23.33 8.86 23.97 13.51 16.31 14.41 14.08 8.48 7.13 10.96 10.68 12.84 13.67 6.78 6.18 7.84 11.48 13.37 13.74 5.71 6.49 6.88 8.91

Gp moyenne 5.12 2.68 2.70 2.60 1.60 2.65 3.11 10.24 2.76 5.67 2.87 8.67 4.12 5.91 6.27 6.53 2.35 2.49 6.30 6.78 4.78 4.53 3.88 3.51 3.97 3.89 8.04 8.26 1.05 1.21 2.93 3.17

Gp moyenne 2 5.14 2.76 2.73 2.64 1.60 2.65 3.19 10.29 2.86 5.74 2.98 8.69 4.20 6.00 6.28 6.55 2.36 2.50 6.32 6.78 4.78 4.53 3.95 3.60 3.91 3.91 8.08 8.31 1.07 1.24 2.99 3.20

Fig. 3.12 - Dirence entre les gains de prdiction obtenus avec une prdiction non linaire MLP et les gains de prdiction obtenus avec une prdiction linaire ( > 0 = GP nonlin > GP lin ) pour une prdiction stro forward Les rsultats sont donc bien suprieurs ceux obtenus avec le ltre de Volterra. Pour la grande majorit des trames, le gain par rapport au linaire est positif. Les seules trames o le rseau se comporte moins bien quun prdicteur linaire correspondent aux zones de silence des signaux. La gure 3.13 montre une partie voise du canal gauche du signal de parole germ (chantillonn 48 khz) ainsi que les rsidus des prdictions stro linaire, non linaire avec un ltre de Volterra et non linaire avec un rseau MLP. La gure 3.14 montre la mme partie voise du signal mais chantillonn 8 khz (germ8) ainsi que les rsidus des prdictions. Ces gures illustrent bien le gain apport par le rseau de neurone.

46

Fig. 3.13 - (de haut en bas) signal de parole chantillon 48 khz, rsidu de la prdiction linaire, rsidu de la prdiction non linaire (Volterra) et rsidu de la prdiction non linaire (MLP) ( les rsidus sont la mme chelle)

Fig. 3.14 - (de haut en bas) signal de parole chantillon 8 khz, rsidu de la prdiction linaire, rsidu de la prdiction non linaire (Volterra) et rsidu de la prdiction non linaire (MLP) ( les rsidus sont la mme chelle) Bilan : Si on fait un bilan sur tous les chiers, on obtient en moyenne un gain de 3.87dB pour la voie gauche et 4.92 dB pour la voie droite. Le gain est donc beaucoup plus important que celui obtenu avec un ltre de Volterra.

47

canal gauche Gain par rapport au linaire Gain par rapport au linaire 3.87dB 3.90dB

canal droite 4.92dB 4.96dB

(choix meilleur prdiction) Tab. 3.1 - Moyenne des gains - prdiction stro forward

3.2.4

Quantication des coecients

Dans lapproche forward, il faut considrer la quantication des coecients. Dans [30], un rseau MLP a t utilis pour prdire des signaux de parole. Les paramtres du rseau ont t quantis avec une quantication scalaire uniforme et il a t montr que les poids et biais des direntes couches du rseau ncessitaient un nombre de bits de quantication dirents : les poids de la seconde couche sont plus sensibles la quantication que les poids de la premire couche. Les gures suivantes montrent la valeur des coecients du rseau pour 3 trames de la voie gauche de clapton. On remarque que la dynamique des coecients peut varier considrablement dune trame lautre. On envisagera donc une quantication scalaire uniforme dont lchelle est adapte chaque trame comme pour la quantication des coecients du ltre de Volterra.

.
1500
4 x 10
4

1000
2

500

0
0

0
1

2
2

500
3

1000

10

20

30

40

50

60

70

10

20

30

40

50

60

70

10

20

30

40

50

60

70

Fig. 3.15,3.16,3.17 - Valeur des coecients du rseau (voie Gauche) pour 3 trames direntes

On a alors ralis plusieurs tests de quantication sur les coecients dtermins avec le chier clapton : on a quanti sparment les poids et les biais de la premire et de la deuxime couche. Les gures suivantes montrent le gain de prdiction obtenu sur les 2 canaux en fonction du nombre de bits de quantication. On remarque que les paramtres du rseau de neurones sont beaucoup plus sensibles la quantication que les coecients du ltre de Volterra (voir Fig. 2.10). Pour ne pas trop perdre en gain de prdiction, il est ncessaire, quelque soit le paramtre, de quantier au moins sur 20 bits. Dans notre cas, on ne voit aucune dirence entre les poids de la premire et de la seconde couche. 48

30

30

25

25

20

20
Gain de prdiction (en dB)
Gain de prdiction (en dB)

15

15

10

10

5
0

10

15

20

25

30

10

10

15

20

25

30

Nombre de bits de quantification

Nombre de bits de quantification

Fig. 3.18 - Gain de prdiction en fonction du nombre de bits de quantication pour les poids de la premiere couche (voie gauche : , voie droite : - - -)
30

Fig. 3.19 - Gain de prdiction en fonction du nombre de bits de quantication pour les biais de la premiere couche (voie gauche : , voie droite : - - -)
30

25

25

20 20
Gain de prdiction (en dB) Gain de prdiction (en dB)

15

15

10

10

0 5 5

10

15

10

15

20

25

30

10

10

15

20

25

30

Nombre de bits de quantification

Nombre de bits de quantification

Fig. 3.20 - Gain de prdiction en fonction du nombre de bits de quantication pour les poids de la seconde couche (voie gauche : , voie droite : - - -)

Fig. 3.21 - Gain de prdiction en fonction du nombre de bits de quantication pour le biai de la seconde couche (voie gauche : , voie droite : - - -)

Les coecients dun rseau de neurone sont donc beaucoup plus sensibles la quantication que les coecients dun prdicteur linaire : pour quantier un paramtre du rseau, il faut presque deux fois plus de bits que pour quantier un coecient dun prdicteur linaire stro. De plus le rseau a deux fois plus de paramtres quun prdicteur linaire : 132 au lieu de 61. Pour des trames de 1024 chantillons le dbit li aux coecients serait alors de 1.29 bits/chantillons contre 0.36 bits/chantillons (si les coecients du prdicteur linaire sont cods sur 12 bits et ceux du prdicteur non linaire cods sur 20 bits). Le gain apport par le rseau MLP, mme si il est relativement 49

important, sera donc perdu au nal cause de limportant dbit li aux coecients a transmettre. On envisagera donc dans la partie suivante une conguration backward.

3.3

Prdiction non linaire stro avec un rseau MLP : approche backward

Nous avons vu dans la partie prcdente quune prdiction non linaire base de rseau de neurones MLP donnait de bien meilleurs gains de prdiction quune prdiction linaire. Malheuresement, les paramtres tant trs sensibles la quantication, il est ncessaire de les coder sur un nombre important de bits, ce qui rend un rseau de neurone MLP inutilisable dans un codeur forward. Cest pourquoi, nous allons tudier dans cette partie une approche backward du prdicteur.

3.3.1

Les rseaux utiliss, algorithme dapprentissage

On utilise les mme rseaux que pour lapproche forward : on prend P1 = 20 et P1 = 10 on choisit des rseaux deux neurones cachs. On a ici aucune limite sur le nombre de paramtres du prdicteur car on a pas besoin de les transmettre mais ce choix est fait pour limiter la complexit des calculs. Lalgorithme dapprentissage utilis est Levenberg-Marquardt car il est le plus performant comme on la vu dans 3.2.2.

3.3.2

Le surapprentissage

Dans [26], le problme du surapprentissage ("overtraining") est mis en vidence. Dans une conguration "backward", le rseau est entran sur une trame et test sur la suivante. Si le rseau est parfaitement adapt la trame utilise pour lapprentissage, il se peut quil ne le soit plus la trame de test : on dit alors quil y a surapprentissage. Le rseau ne doit donc pas tre spcique aux donnes utilises pour lapprentissage, il doit tre capable de gnraliser. Pour viter ce problme de surapprentissage, il faut que le nombre dpoques utilises pour lapprentissage ne soit pas trop lev. Il ne doit pas non plus tre trop petit car le rseau naurait alors plus aucun pouvoir de prdiction. La gure suivante montre le gain de prdiction dune trame du chier clapton en fonction du nombre dpoques pour direntes initialisations alatoires ( zoom ). 50

28

27.95

27.9

Gain de prdiction (en dB)

27.85

27.8

27.75

27.7

27.65

27.6

27.55 10 20 30 40 50 60 Nombre dpoques 70 80 90 100

Fig. 3.22 - Gain de prdiction en fonction du nombre dpoques pour une trame du chier clapton et pour direntes initialisations alatoires (zoom)

On voit bien que le gain de prdiction diminue partir dun certain nombre dpoques. Le choix du nombre dpoques sera donc primordial.

3.3.3

Mise en oeuvre

On prend une longueur de trame gale 1024 chantillons. On eectue une analyse en soustrames de 256 chantillons. Les tests sont eectus sur des extraits ( 25 trames) des chiers clapton et vega. On utilise la technique dnie dans 3.2.2 ( multi-start ) : pour chaque trame, on eectue 4 initialisations, 1 correspondant au rseau dtermin pour la trame prcdente. On choisit celle qui donne le meilleure gain de prdiction, le gain tant celui de la trame utilise pour lapprentissage. Les 2 gures suivantes montrent la moyenne des gains de prdiction obtenus en fonction du nombre dpoques. 51

24

45

23

22

40

21
Gain de prdiction (en dB) Gain de prdiction (en dB)

20

35

19

18

30

17

16

25

15

14

10

15

20 25 30 Nombre dpoques

35

40

45

50

20

10

15

20 25 30 Nombre dpoques

35

40

45

50

Fig. 3.23 - Gain de prdiction en fonction du nombre dpoques pour un extrait du chier clapton (voie gauche : , voie droite - - -)

Fig. 3.24 - Gain de prdiction en fonction du nombre dpoques pour un extrait du chier vega (voie gauche : , voie droite - - -)

On remarque que le surapprentissage peut tre trs marqu ( cas du chier clapton ). Fichier Clapton : le maximum est atteint pour 3 poques sur la voie gauche ( 21.3 dB ) et 6 poques sur la voie droite ( 23.9 dB ). Fichier Vega : le maximum est atteint pour 45 poques sur la voie gauche ( 28.4 dB ) et 49 poques sur la voie droite ( 42.1 dB ).

3.3.4

Techniques pour limiter le surapprentissage

On trouve dans la littrature deux principales techniques pour limiter le surapprentissage : la rgularisation bayesienne et la validation. La troisieme technique prsente est une adaptation du multi-start lapproche backward. La rgularisation bayesienne Dans [47], il a t montr que la valeur des poids tait plus importante que leur nombre an de limiter le surapprentissage. On montre, que si un grand rseau est utilis et que lalgorithme dapprentissage trouve une erreur quadratique moyenne faible avec des poids de valeurs absolues faibles, alors les performances en gnralisation dpendent de la taille des poids plutt que de leur nombre. Une ide a donc t de remplacer la fonction derreur de lalgorithme dapprentissage par lerreur quadratique rgularise :
n X j =1 2 wj

msereg = .mse +

52

Une minimisation de cette fonction derreur permet dobtenir une valeur absolue des poids du rseaux relativement faible et donc, pour la raison nonce prcdemment, cela permet de limiter le surapprentissage. Le problme se trouve dans lestimation des paramtres et . Il est possible de combiner lestimation de et avec Levenberg-Marquardt grce une analyse bayesienne : cest lalgorithme de Levenberg-Marquardt avec rgularisation bayesienne, tudi en dtail dans [46]. Mise en oeuvre On eectue les mme tests que dans la partie prcdente mais avec lalgorithme de rgularisation bayesienne. Les 2 gures suivantes montrent la moyenne des gains de prdiction obtenus en fonction du nombre dpoques ( avec les rsultats obtenus dans la partie prcdente pour comparaison ).
24 45 23

22

40

21
Gain de prdiction (en dB) Gain de prdiction (en dB)

20

35

19

18

30

17

16

25

15

14

10

15

20

25

30

35

40

45

50

20

10

15

Nombre dpoques

20 25 30 Nombre dpoques

35

40

45

50

Fig. 3.25 - Gain de prdiction en fonction du nombre dpoques pour un extrait du chier clapton (voie gauche : , voie droite - - -)

Fig. 3.26 - Gain de prdiction en fonction du nombre dpoques pour un extrait du chier vega (voie gauche : , voie droite - - -)

Cette technique limite donc bien le surrapprentissage. On obtient les gains de prdiction suivants : Fichier Clapton : le plafond est autour de 21.3dB pour la voie gauche et 23.8dB pour la voie droite Fichier Vega : le plafond est autour de 28.4dB pour la voie gauche et 42.1dB pour la voie droite La validation Cette technique consiste calculer lerreur dune trame supplmentaire appele trame de validation pendant lapprentissage. Cette erreur devrait diminuer avec les poques. Mais ds quelle commence augmenter, on arrte lapprentissage, car cela veut dire quil y a surapprentissage. On pourra choisir comme trame de validation la trame qui prcde la trame utilise pour lapprentissage ou encore la sous-trame qui prcde la sous-trame de test. Le tableau suivant montre les gains 53

de prdiction obtenus. Notons que lon a limit le nombre dpoques 100 lorsquil ny avait pas validation. Trame de validation Sous-trame qui prcde la sous-trame de test Clapton Vega G : 18.8dB D : 22.5dB Trame qui prcede la trame dapprentissage G : 18.9dB D : 23.1dB

G : 28.3dB D : 42.1dB G : 28.1dB D : 41.7dB Tab. 3.2 - Gains de prdiction - Validation

Lavantage de cette technique est quil ny a pas xer au pralable un nombre dpoques commun toutes les trames. Mais, malheuresement, les gains obtenus sont infrieurs ceux obtenus avec lalgorithme de Levenberg-Marquardt avec rgularisation bayesienne. Amlioration du multi-start Dans la partie prcdente, le choix de la meilleure initialisation du multi-start se fait partir du gain de la trame utilise pour lapprentissage. On pourra envisager une technique base sur le mme principe mais o le choix de la meilleure initialisation se fera partir du gain de prdiction de la trame de test. Linconvnient de cette technique est que le choix de linitilisation devra tre transmis au dcodeur : 2 bits pour chaque canal. Les 2 gures suivantes montrent la moyenne des gains de prdiction obtenues en fonction du nombre dpoques ( avec les rsultats obtenus dans la partie prcdente pour comparaison ).
26

45

24

40

Gain de prdiction (en dB)

Gain de prdiction (en dB)

22

35

20

30

18

25
16

14

10

15

20

25

30

35

40

45

50

20

10

15

20

25

30

35

40

45

50

Nombre dpoques

Nombre dpoques

Fig. 3.27 - Gain de prdiction en fonction du nombre dpoques pour un extrait du chier clapton (voie gauche : , voie droite - - -)

Fig. 3.28 - Gain de prdiction en fonction du nombre dpoques pour un extrait du chier vega (voie gauche : , voie droite - - -)

Le surapprentissage est dans ce cas beaucoup moins prononc et on obtient mme de meilleurs rsultats quavec lalgorithme de rgularisation bayesienne. 54

Fichier Clapton : le plafond est autour de 21.5dB pour la voie gauche et 24.1dB pour la voie droite Fichier Vega : le plafond est autour de 28.4dB pour la voie gauche et 42.1dB pour la voie droite Cette technique est donc idale et cest celle-ci que lon retiendra par la suite.

3.3.5

Inuence du nombre de neurones

Dans lapproche backward, il ny a aucune limite sur le nombre de paramtres du prdicteur car on na pas besoin de les transmettre. Le nombre de neurones du rseau nest donc limit que par la complexit des calculs. Les gures suivantes montre la moyenne des gains de prdiction obtenus en fonction du nombre dpoques pour des rseaux 1 , 2 et 4 neurones cachs.
22 24.5

21.5 24

Gain de prdiction (en dB)

21
Gain de prdiction (en dB)

23.5

20.5

23

20

19.5

22.5

19

10

15

20

25

30

35

40

45

50

22

10

15

Nombre dpoques

20 25 30 Nombre dpoques

35

40

45

50

Fig. 3.29 - Gain de prdiction en fonction du nombre dpoques pour un extrait du chier clapton - voie gauche (1 neurone : , 2 : - - -, 4 : )
29

Fig. 3.30 - Gain de prdiction en fonction du nombre dpoques pour un extrait du chier clapton - voie droite (1 neurone : , 2 : - - -, 4 : )
42.5 42

28

41.5
27

41
Gain de prdiction (en dB)

26

Gain de prdiction (en dB)


0 5 10 15 20 25 30 35 40 45 50

40.5

25

40

24

39.5

39
23

38.5
22

38
21

37.5

10

15

Nombre dpoques

20 25 30 Nombre dpoques

35

40

45

50

Fig. 3.31 - Gain de prdiction en fonction du nombre dpoques pour un extrait du chier vega - voie gauche (1 neurone : , 2 : - - -, 4 : ) 55

Fig. 3.32 - Gain de prdiction en fonction du nombre dpoques pour un extrait du chier vega - voie droite (1 neurone : , 2 : - - -, 4 : )

Dans lapproche forward, plus le rseau a de neurones, plus il est performant. Mais nous remarquons ici que cela ne sapplique pas au cas backward : plus le rseau a de neurones, plus il sera adapt la trame utilise pour lapprentissage et moins il sera capable de gnraliser. En eet, on remarque quun rseau avec seulement un neurone cach donne presque toujours un meilleur gain de prdiction ( sauf pour la voie gauche de vega ).

3.3.6

Comparaison avec un apprentissage simple

On compare la technique retenue prcdemment avec un apprentissage simple qui ne rinitialise pas le rseau pour chaque sous-trame. La seule initialisation du rseau raliser est alors pour la premire trame : pour ne pas utiliser de gnrateur alatoire, on initialisera les poids de la premire couche 0 et ceux de la seconde couche 1 ( biais 0). Les gures suivantes montre la moyenne des gains de prdiction obtenus en fonction du nombre dpoques pour des rseaux 1 , 2 et 4 neurones cachs.

21.5

24.5

24

21
23.5
Gain de prdiction (en dB)

Gain de prdiction (en dB)

20.5

23

20

22.5

22

19.5
21.5

19

21

18.5

20.5

10

15

20 25 30 Nombre dpoques

35

40

45

50

10

15

20

25

30

35

40

45

50

Nombre dpoques

Fig. 3.33 - Gain de prdiction en fonction du nombre dpoques pour un extrait du chier clapton - voie gauche (1 neurone : , 2 : - - -, 4 : ) 56

Fig. 3.34 - Gain de prdiction en fonction du nombre dpoques pour un extrait du chier clapton - voie droite (1 neurone : , 2 : - - -, 4 : )

28.6

42.2

42
28.4

41.8
28.2
Gain de prdiction (en dB)

28

Gain de prdiction (en dB)

41.6

41.4

27.8

41.2

41

27.6

40.8
27.4

40.6

27.2

10

15

20 25 30 Nombre dpoques

35

40

45

50

40.4

10

15

20 25 30 Nombre dpoques

35

40

45

50

Fig. 3.35 - Gain de prdiction en fonction du nombre dpoques pour un extrait du chier vega - voie gauche (1 neurone : , 2 : - - -, 4 : )

Fig. 3.36 - Gain de prdiction en fonction du nombre dpoques pour un extrait du chier vega - voie droite (1 neurone : , 2 : - - -, 4 : )

On remarque dans un premier temps que, comme dans 3.3.5, un rseau 1 neurone donne de meilleurs gains de prdiction sauf pour la voie gauche de vega. Le cas du chier clapton montre bien que plus le rseau de neurones, plus le surapprentissage est marqu. On remarque ensuite que la technique retenue prcdemment (multi-start modi) permet de gagner entre 0.1 et 0.2 dB pour un rseau un neurone cach.

3.3.7

Comparaison avec la prdiction linaire stro backward

On teste sur les 2 extraits utiliss prcdemment lapprentissage retenu dans la partie prcdente. Les rseaux ont donc un seul neurone et le nombre dpoques sera x 10. Les gures suivantes montrent le gain par rapport une prdiction linaire stro pour les 100 sous-trames de chaque voie.
6
2.5

5
2

1.5

deltaGp (en dB)

deltaGp (en dB)

0.5

0.5

1.5

2
0 20 40 60 Numro de la soustrame 80 100 120

20

40

60 Numro de la soustrame

80

100

120

Fig. 3.37 - Voie gauche de clapton 57

Fig. 3.38 - Voie droite de clapton

7 5 6 4
deltaGp (en dB) deltaGp (en dB)

2 1 1 0

20

40

60 Numro de la soustrame

80

100

120

20

40

60 Numro de la soustrame

80

100

120

Fig. 3.39 - Voie gauche de vega

Fig. 3.40 - Voie droite de vega

La prdiction avec un rseau MLP apporte donc un gain signicatif par rapport une prdiction linaire. On remarque aussi que pour un petit nombre de sous-trames, la prdiction linaire donne de meilleurs gains de prdiction. Nous envisagerons donc la technique qui consiste choisir, pour chaque sous-trame, la prdiction qui donne le meilleur gain de prdiction. Pour que le dcodeur sache quelle prdiction a t choisie au niveau du codeur, il faudra transmettre un bit par sous-trame et par voie.

3.4

Conclusions

Le but de ce chapitre tait de voir si une prdiction base sur un rseau de neurones donnait de meilleurs gains de prdiction quune simple prdiction linaire. Nous avons dabord tudi une approche forward du prdicteur stro puis une approche backward. Nous sommes parvenu aux conclusions suivantes : Un prdicteur stro bas sur un rseau de neurones donne de meilleurs gains de prdiction quune prdiction stro linaire en forward. Mais ce type de prdiction coute trop cher en terme de dbit cause du nombre important de coecients transmettre ainsi que du nombre important de bits ncessaires la quantication. En backward, un prdicteur stro bas sur un rseau de neurones amliore de manire signicative les gains de prdiction par rapport une prdiction stro linaire. On a vu que le multi-start amlior est la technique qui donnait les meilleurs rsultats. Cependant, on a vu aussi quun apprentissage qui nutilisait pas de multi-start perdait seulement entre 0.1 et 0.2 dB en gain de prdiction. Comme le multi-start ncessite 4 fois plus de calculs, ce gain nest pas forcment justi.

58

Chapitre 4

Codec prdiction linaire et non linaire stro backward


Aprs avoir tudi un certain nombre de mthodes de prdiction non linaire, nous avons retenu celle qui donnait les meilleurs rsultats : une prdiction stro avec un rseau de neurones MLP en backward. De plus, nous avons vu quun rseau avec seulement un seul neurone donnait de meilleurs rsultats et quil ntait pas ncessaire denvisager un apprentissage multi-start tant donn le faible gain quil apporte et la grande complexit des calculs quil ncessite. On a vu aussi que pour obtenir un gain de prdiction optimal, il faut raliser deux analyses pour chaque sous-trame : une linaire et une avec un rseau de neurones et choisir celle qui donne le meilleur gain de prdiction. Nous allons dcrire dans cette partie comment on intgre la technique retenue dans un codeur implment en C. Un codeur implmentant une prdiction linaire stro avait dja t ralis. Les codes ont donc t repris et complts pour intgrer la prdiction non linaire avec le rseau MLP. Une grande partie des descriptions des direntes parties du codeur sont donc des extraits de [1].

4.1

Les types de chiers

Fichier dentre Les chiers dentre sont des chiers binaires sans entte ( contrairement aux chiers .wav). Les voies gauches et droites sont entrelaces. Fichier de sortie Le chier compress est compos de : une entte : comprenant le nombre total de trames ainsi que le nombre dchantillons de la dernire trame 59

pour chaque trame : les rsidus encods par le code de Rice ainsi que 2 bits transmis au dcodeur pour quil sache quelle prdiction le codeur a choisi pour chaque voie.

4.2

Schma du codeur
codage de trame

Donnes fichier audio

Dcalage des donnes Dsentrelacement Trame Etendue G Trame Etendue D

Stockage trame passe

Trame tendue G passe Trame tendue D passe

Analyse LPC stro

Stockage base dapprentissage

Base dapprentissage G Base dapprentissage D

Apprentissage des rseaux

analyse

Coefficients LPC G Coefficients LPC D Filtrage LPC

Rseau entrain G Rseau entrain D Filtrage MLP

filtrage

Bit choix prdiction G Bit choix prdiction D

Rsidu MLP G Rsidu MLP D Choix meilleur prdiction Rsidu LPC G Rsidu LPC D

Rsidu G Rsidu D Trame binaire Construction trame binaire Sous-trame code G Sous-trame code D

Codage de Rice

codage entropique

Fig. 4.1 - Schma du codeur 60

4.2.1

Analyse par trame - Gestion des trames

Il sagit ici de dcrire les blocs de dcalage des donnes - dsentrelacement et de stockage de la trame passe. Etant donn que lanalyse se fait sur la trame qui prcde la trame coder, il faut avoir disposition deux trames conscutives. Cest pourquoi on travaillera avec une trame tendue comprenant deux trames conscutives ainsi qun recouvrement paramtrable gauche de la trame danalyse an de disposer dun nombre de donnes susant pour le calcul des corrlations de la prdiction linaire. Le systme de roulement dune trame lautre consiste simplement dcaler les donnes gauche de manire insrer la nouvelle trame droite comme dcrit sur la gure 4.2.

Fig. 4.2 - Gestion des trames

4.2.2

Analyse LPC stro backward

Fentre de pondration Les coecients de prdiction linaire stro sont estimes sur la trame prcdente et ncessitent de calculer les fonctions dauto et intercorrlation, avec une fentre de pondration adquate. Plusieurs types de fentres ont t tests dans [2], et la fentre de Hamming assurait les meilleures performances. Cependant, cette fentre, centre sur la trame prcdente donne plus dimportance des chantillons passs dune dizaine de millisecondes si la trame est de dure 20 ms. Lide consiste alors construire une fentre non symtrique, qui donne plus de poids des chantillons plus rcents (autour de 5 ms). Une mthode de fentre hybride est mise en oeuvre dans [2]. La fentre retenue pour le codeur backward, illustre par la gure 6.3 se divise en 2 parties : Une partie gauche identique une demi fentre de Hamming (95 % de la fentre). Une partie droite en quart de priode de cosinus, dont la retombe est rapide (5% de la fentre). Analyse LPC stro Les sous blocs des matrices R1 et R2 sont construits facilement du fait de leur proprits (matrice dites Toeplitz) partir des vecteurs des autocorrlations et intercorrlations. Linversion des matrices R1 et R2 est une implmentation de la librairie de fonctions LAPACK. Il sagit dune librairie 61

de fonctions initialement dveloppes dans des universits en langage Fortran 77, permettant de rsoudre ecacement des problmes dalgbre linaire. Il existe aujourdhui une version transpose en C, dont lutilisation ncessite de prendre quelques prcautions, notamment lorsquon doit passer des matrices. En eet, en langage C, une matrice doit tre passe comme un seul vecteur, les lignes tant concatnes. En Fortran 77, une matrice est passe galement par un vecteur, mais dont les colonnes sont mises bout bout. Les matrices R1 et R2 que lon doit dcomposer par Cholesky et inverser doivent donc tre passes en colonnes aux fonctions de la librairie. Les matrices R1 et R2 sont conditionnes en ajoutant un bruit ctif sur les diagonales. Cette opration est indispensable, sous peine de ne pas pouvoir inverser les matrices (risques de valeurs propres nulles). Analyse en sous-trames Comme il ny a pas de coecients transmettre, lanalyse LPC stro backward peut tre renouvele aussi souvent que souhait. On peut donc rpter le calcul des coecients de prdiction sur un certain nombre de sous-trames, comme cela est illustr par la gure 4.3. Le modle LPC est calcul sur la zone pondre par la fentre et appliqu sur la sous-trame grise. Cette frquence danalyse permet dadapter le modle plus souvent sans aecter le dbit. Cependant, la charge de calcul est plus importante.

Fig. 4.3 - Analyse backward sur des sous-trames 62

4.2.3

Apprentissage des rseaux MLP

Pour implmenter un rseau de neurones MLP, on a utilis une librairie crite en C++. Cette librairie est le code source dun livre sur des mthodes avances dapprentissage de rseaux de neurones []. Elle a t choisie car ctait le seul code trouv sur internet qui tait gratuit et qui implmentait lalgorithme de Levenberg-Marquardt. On utilise 2 classes de cette librairie : La classe TrainingSet qui implmente une base dapprentissage. La classe LayerNet qui implmente un rseau MLP ainsi que lalgorithme de LevenbergMarquardt. La classe TrainingSet Elle est compose des attributs suivants : Un certain nombre dinformations comme la taille du patron dentre, la taille du patron de rfrence ainsi que le nombre de couples dapprentissage. Les donnes de la base dapprentissage. Ses donnes sont ranges dans un tableau selon le schma suivant :
patron dentre 1 patron dentre 2 patron dentre 3 patron dentre N

patron de rfrence 1

patron de rfrence 2

patron de rfrence 3

patron de rfrence N

Fig. 4.4 - Structure dune base dapprentissage La classe LayerNet Les attributs de la classe LayerNet sont toutes les informations ncessaires la cration du rseau MLP : le mode ( rel ou complexe ), le nombre de couches, le nombre de neurones de chaque couches, la fonction de transfert du neurone de sortie. Le constructeur initialise ces paramtres, alloue la mmoire ncessaire et initialise les poids du rseau ( biais 0, poids de la premire couche 0 et poids de la seconde couche 1). La classe comprend aussi un certain nombre de mthodes mais nous nen utiliserons que 3 : la mthode lev_marq, qui entraine le rseau avec lalgorithme de Levenberg-Marquardt. Elle a comme entres une base dapprentissage du type TrainingSet ainsi que le nombre dpoques. la mthode trial, qui calcule la sortie du rseau pour une entre donne. Gestion de la base dapprentissage On utilisera un buer pour stocker la base dapprentissage. Ce buer comprend la base dapprentissage elle-mme mais aussi la base de test correspondante. En eet, la base de test dune sous-trame donne fait partie de la base dapprentissage de la sous-trame suivante. Le passage dune 63

sous-trame une autre consiste alors dcaler les donnes du buer gauche de manire insrer la nouvelle base de test droite. Lapprentissage est alors ralis avec la premire partie du buer ( base dapprentissage), la deuxime partie ( base de test ) sera utilis pour le ltrage.

4.2.4

Filtrage et choix de la prdiction

Filtrage LPC On ralise ici le ltrage LPC. Les calculs tant raliss sur des nombres ottants de prcision 32 bits, il convient de porter une attention particulire aux arrondis. En eet, le rsidu de prdiction doit tre entier an dtre compress par un codeur entropique. Si cet arrondi nest pas correctement ralis, il sera impossible de retrouver au bit prs le chier original au dcodage. Filtrage avec le rseau MLP Il sagit simplement de prsenter au rseau les patrons dentres de la base de test et de calculer la sortie grce la mthode trial. Comme pour le ltrage LPC, on arrondit lentier le plus proche la valeur prdite. Choix de la prdiction Pour chaque sous-trame, on calcule un rsidu avec une prdiction LPC, un rsidu avec le rseau MLP ainsi que lnergie de chaque rsidu. On choisit la prdiction qui donne le rsidu dnergie minimale. Un bit pour chaque voie est ajout la trame code pour que le dcodeur sache quelle prdiction raliser.

4.2.5

Codage entropique

Caractristiques du codeur entropique. Il sagit dun code de Rice tel quil est dcrit dans 1.7.2. Nous avons vu que dans ce type de codeur, le paramtre de Golomb est adaptatif. Cependant, la dynamique des rsidus coder peut varier beaucoup sur la longueur dune trame, cest pourquoi il est conseill de remettre jour ce paramtre une frquence suprieure la frquence de trame. Ainsi, on pourra calculer le paramtre optimal de Golomb sur chaque sous-trame. Paramtre de Golomb et encodage Une srie de 32 paramtres de Golomb adapts la dynamique maximale des rsidus est stocke dans un vecteur. Lalgorithme va alors identier la valeur maximale du rsidu coder sur la soustrame et en dduire un paramtre de Golomb. Chaque sous-trame de chaque canal est alors encode en une trame binaire de longueur variable, avec en entte le code sur 5 bits du paramtre de Golomb. 64

4.2.6

Construction de la trame binaire

Les rsidus de chaque sous-trame sont assembls dans une mme trame binaire dont la structure est donne par la gure 4.5.
Paramtre Golomb sous-trame G1 Paramtre Golomb sous-trame D1 Paramtre Golomb sous-trame G2 Paramtre Golomb sous-trame D2 Paramtre Golomb sous-trame GN Paramtre Golomb sous-trame DN

2 bits de choix

Code Rice soustrame G1

Code 2 bits de Rice choix soustrame D1

Code Rice soustrame G2

Code Rice soustrame D2

2 bits de choix

Code Rice soustrame GN

Code Rice soustrame DN

Fig. 4.5 - Construction de la trame binaire

4.3
4.3.1

Schma du dcodeur
Gestion du buer des donnes compresses

Le dcodeur va ainsi dabord lire lentte du chier compress dont la longueur est connue : elle contient le nombre de trames dcoder et la longueur de la dernire trame. Ensuite, la solution retenue consiste envoyer la fonction de dcodage de trame un long buer dont on est sr quil contient susamment de bits pour dcoder une trame stro. La composition de la trame binaire et le nombre dchantillons dcoder sont connus. Un compteur dtermine quelle trame est dcode, an de prvoir le cas particulier de la dernire trame. Une fois que la trame de signal stro est reconstruite, le programme dcale les donnes dans le buer des bits compresss et rclame au programme principal de complter ce buer avec des nouvelles donnes. Ce processus sapparente un buer circulaire. Un autre buer permet de conserver en mmoire les donnes audio de la trame prcdente.

4.3.2

Analyse LPC stro au dcodage

Une analyse LPC stro doit tre ralise sur la trame prcdemment dcode an den dduire les paramtres LPC qui vont permettre de dcoder la sous-trame de rsidus prsente. Lorsquune trame a t dcode, les donnes sont dcales vers la gauche. Ensuite, des analyses LPC stro sont ralises et appliques aux sous-trames : toutes ces oprations sont identiques aux oprations ralises dans la partie analyse LPC du codeur.

4.3.3

Apprentissage des rseaux au dcodage

Lapprentissage est grer de la mme facon quau codage. 65

codage de trame

Trame stro dcode

Entrelacement

Stockage trame passe

Trame tendue G passe Trame tendue D passe

Analyse LPC stro

Nombre de bits utiliss pour dcoder la trame

Trame dcode G Trame dcode D Construction Trame de signal Base dapprentissage G Base dapprentissage D

Stockage base dapprentissage

Apprentissage des rseaux

analyse

Coefficients LPC G Coefficients LPC D Rseau entrain G Rseau entrain D Sous-trame dcode G Sous-trame dcode D

Filtrage synthse : MLP ou LPC

filtrage synthse

Bit choix prdiction G Bit choix prdiction D

Buffer des donnes compresses

Sous-trame rsidu G Sous-trame rsidu D Rcupration des bits de choix Sous-trame code G Sous-trame code D

Dcodage de Rice

dcodage entropique

Fig. 4.6 - Schma du dcodeur

4.3.4

Dcodage de Rice

On rcupre dabord les 2 bits de choix de la prdiction ainsi que les 2 bits pour le ltrage NLMS. Le pointeur sur le buer de donnes binaire est dplac du nombre de bits qui sont utiliss pour le dcodage. Daprs la conguration de la trame compresse, les 5 premiers bits correspondent au 66

paramtre de Golomb de la premire sous-trame gauche de NST chantillons. Une fois le paramtre de Golomb connu, le module de dcodage de Rice peut dcoder chantillon par chantillon jusqu ce quil ait atteint NST chantillons. Lopration est alors rpte pour la premire sous-trame droite, et ainsi de suite jusqu la dernire sous-trame droite.

4.3.5

Filtrage de synthse et entrelacement

Les signaux obtenus sont ltrs avec le ltre choisi au niveau du codeur. Lorsque toutes les soustrames ont t successivement dcodes, il est alors possible dentrelacer les donnes dcompresses.

4.4
4.4.1

Evaluation des performances


Inuence de lordre

On cherche dans un premier temps voir linuence que peut avoir lordre des auto- et interprdicteurs sur le ratio de compression. Pour cela, on xe le nombre dpoques des 2 rseaux 3. Les tests sont eectus sur un extrait du chier clapton. Les rsultats sont prsents dans le tableau 4.1. Ordres P1 /P2 20/10 20/20 30/10 30/20 30/30 40/10 1.6182 1.6227 1.6238 1.6281 1.6293 1.6268 Ratio Ordres P1 /P2 40/30 40/40 50/10 50/20 50/50 60/60 1.6333 1.6332 1.6292 1.6325 1.6345 1.6342 Ratio

40/20 1.6320 Tab. 4.1 - Inuence de lordre des auto- et interprdicteurs sur le ratio de compression Le maximum est obtenu pour la combinaison P1 = 50/P2 = 50. Mais dans ce cas, les calculs ncessaires lapprentissage deviennent trs complexe. On se limitera donc la combinaison P1 = 40/P2 = 20 qui semble tre un bon compromis entre la performance et la complexit des calculs. Ordres retenus : P1 = 40/P2 = 20

4.4.2

Inuence du nombre dpoques

On tudie dans un second temps linuence du nombre dpoques de lapprentissage des rseaux sur le ratio de compression. Le chier utilis est la base de test MPEG. Les rsultats sont prsents dans le tableau 4.2. 67

Nombre dpoques rseau G / rseau D 1 2 3 4 5 6 7 8 9 10

Ratio 2.5125 2.5510 2.5671 2.5695 2.5702 2.5721 2.5732 2.5735 2.5741 2.5744

15 2.5744 Tab. 4.2 - Inuence du nombre dpoques sur le ratio de compression On atteint un plafond pour un nombre dpoques gale 10. On ralisera donc lapprentissage des rseaux avec un nombre dpoques gale 10.

Nombre dpoques retenu : 10

4.4.3

Confrontation des performances

On compare le codec dvelopp au cours du stage avec : le mme codec mais sans la prdiction non linaire. Cest le codec qui utilise une prdiction stro linaire backward, et qui a t dvelopp pendant le stage de Jean-Luc Garcia [1] les codecs LPAC et Monkeys, qui sont les codecs de ltat de lart les plus performants Base de chiers MPEG Cette base est constitue de 12 chiers dja utiliss dans les parties prcdentes. Ces chiers ont pour particularit de prsenter une dynamique relativement faible. Algorithme LPAC Monkeys Linaire MLP

Ratio 2.503 2.573 2.381 2.574 Tab. 4.3 - Comparaison des rsultats sur la base de test MPEG Le gain est signicatif : alors que le codec qui utilise une prdiction linaire se situe en dessous des performances de LPAC et Monkeys, notre codec obtient le meilleur ratio de compression. 68

Autre base de chiers Ces tests sont raliss sur des chiers de musique de styles dirents : pop, jazz, classique, rock, lectronique... On voit que les ratios obtenus avec notre codec sont tous suprieurs aux ratios obtenus avec le codec qui utilise une prdiction linaire. De plus, les ratios obtenus sont tous suprieurs ceux de LPAC, et juste en dessous de ceux de Monkeys. Algorithme Born in the USA concerto Cosmic girl Luka Polonaise LPAC 1.424 1.924 1.521 1.422 2.610 Monkeys 1.461 1.998 1.578 1.490 2.700 Linaire 1.416 1.872 1.539 1.455 2.295 MLP 1.448 1.938 1.564 1.476 2.654

Training 1.582 1.621 1.568 1.604 Tab. 4.4 - Comparaison des rsultats sur des chiers de musique de styles dirents

4.5

Amlioration du codeur

On a vu dans 2.3.2 quun ltre NLMS non linaire ne donnait pas de meilleurs gains de prdiction quun ltre NLMS linaire. Mais on a vu aussi que le ltre NLMS linaire donnait des gains de prdiction compris entre 1 et 2 dB. Les rsidus de la prdiction stro ne sont donc pas completement dcorrls et un ltrage NLMS permet denlever encore de la redondance dans le signal. On peut donc amliorer notre codec en ajoutant un ltre NLMS sur les rsidus de la prdiction stro. Pour optimiser au maximum la dcorrlation des rsidus, on va mme raliser un ltrage NLMS en cascade : deux ltres NLMS sur chaque voie. Quelques tests raliss sur la base de test MPEG ont montrs quun premier ltre dordre 200 (avec = 0.07) et un second ltre dordre 10 (avec = 0.03) donnaient les meilleurs rsultats. Confrontation des performances On compare le codec amlior avec le codec prcdent et les 2 codecs de ltat de lart.

Base de chiers MPEG Algorithme LPAC Monkeys Linaire MLP MLP + NLMS

Ratio 2.503 2.573 2.381 2.574 2.720 Tab. 4.5 - Comparaison des rsultats sur la base de test MPEG 69

Autre base de chiers Algorithme Born in the USA concerto Cosmic girl Luka Polonaise LPAC 1.424 1.924 1.521 1.422 2.610 Monkeys 1.461 1.998 1.578 1.490 2.700 Linaire 1.416 1.872 1.539 1.455 2.295 MLP 1.448 1.938 1.564 1.476 2.654 MLP +NLMS 1.461 2.000 1.578 1.491 2.701

Training 1.582 1.621 1.571 1.604 1.617 Tab. 4.6 - Comparaison des rsultats sur des chiers de musique de styles dirents Le codec amlior donne donc les meilleurs performances, avec des ratios comparables ceux de Monkeys.

70

Chapitre 5

Perspectives dvolution
Dans le chapitre 4, nous avons etudi une prdiction non linaire avec un reseau de neurones MLP. Mais le rseau MLP nest pas le seul type de rseaux de neurones utilis pour faire de la prdiction. On trouve dans la littrature deux autres types de rseaux : le rseau fonction radiale de base et le rseau PRNN. Ces deux types de rseaux ont t tudis dans le cadre du codage de la parole et donne de bons rsultats. Une perspective dvolution serait donc dtudier ces rseaux dans le cadre du codage audio sans perte.

5.1

Le Rseau de Fonctions Base Radiale (RBF network)

Ces rseaux ont t tudis dans [36], [37], [39] et [40]. Ces articles montrent quune prdiction avec un rseau RBF donne de meilleurs gains de prdiction quune prdiction linaire pour des signaux de parole.

5.1.1

Le rseau standard

Un rseau de Fonctions Base Radiale a la mme structure quun perceptron une couche cache (de taille K ) et un neurone de sortie. Les cellules de sortie eectuent une combinaison linaire de fonctions non linaires, fournies par les neurones de la couche cache. Ces fonctions produisent une rponse dirente de zro seulement lorsque lentre se situe dans une petite rgion bien localise de lespace des variables. Bien que plusieurs modles de telles fonctions existent, le plus courant est de type gaussien : Si on note le vecteur des entres dun neurone i = (ii )i=1..n et S sa sortie, on a :
n X (ii ti )2

S = exp( i=1 71

22

t = (ti )i=1..n est appele le centre du neurone et sa largeur. La relation dentre-sortie du rseau est donc : Sre seau =
K X

k=1

wk exp(

ki tk k2 ) 2 2 k

Plus le vecteur dentre est proche du centre dune Gaussienne, plus la sortie du neurone de la premire couche qui lui correspond est leve. Le terme "Fonction Base Radiale" vient du fait que la Gaussienne est symtrique radialement, cest--dire que la valeur de sortie obtenue est la mme pour toutes les entres situes une mme distance du centre de la Gaussienne. En thorie, le rseau de fonctions base radiale est capable, tout comme le perceptron multicouches, deectuer une approximation arbitrairement proche de nimporte quelle transformation non linaire. La principale dirence entre les deux est la nature de la fonction dactivation des neurones de la couche cache. La non-linarit sigmodale utilise dans le perceptron multicouches fournit une sortie dirente de zro pour une rgion inniment grande de lespace dentre, ce qui lui confre un certain pouvoir de gnralisation dans des rgions o peu de donnes dapprentissage sont disponibles. Au contraire, la non-linarit radiale utilise ici, ne fournit une rponse dirente de zro que localement. Le nombre dunits caches ncessaire pour permettre au rseau de recouvrir lensemble de lespace dentre peut ds lors savrer parfois trs lev. Un autre inconvenient des rseaux RBF par rapport des rseaux de type perceptron est quils requirent une base dapprentissage plus large. Par contre, son principal avantage est que son apprentissage est plus simple et plus rapide.

5.1.2

Le rseau autorgressif (RBF-AR)


D X d=0 K X D X

La relation entre-sortie dun rseau autorgressif est : Sre seau = w0,d id + wk,d id exp( ki tk k ) 2 2 k
2

k=1 d=0

5.1.3

Lapprentissage du rseau

Lapprentissage du rseau se fait en trois tapes. Les deux premires sont non-supervises et la dernire est supervise. La procdure est la suivante : 1. Calcul des centres tk par un algorithme de quantication vectorielle (par ex. la k-moyenne). 2. Calcul des largeurs k en calculant lcart type associ lensemble des vecteurs dentre correspondant chaque centre tk et en identiant un facteur de lissage r optimal : k = r.stdj 3. Calcul des poids w par la rsolution dun systme dquation linaire en minimisant un critre derreur E (par. ex. lerreur quadratique moyenne). 72

Dans [36], il est dcrit un algorithme plus performant qui utilise le ltre de Kalman. Cet algorithme permet lapprentissage simultan des centres, des largeurs et des poids. On pourra aussi aller voir [38] pour une tude dtaille des dirents algorithmes dapprentissage.

5.2

Le rseau PRNN ( pipelined recurrent neural network)

En 1995, Haykin et Li [41] ont prsent un nouveau prdicteur non linaire bas sur un rseau de neurone PRNN (pipelined recurrent neural network). Lalgorithme dapprentissage utilis par Haykin and Li tait un algorithme de descente du gradient. Mais les performances de ce prdicteur, en terme de gain de prdiction, tait moins bonne que celles dun simple prdicteur linaire. Dans [42], Jens Baltersee propose un nouvel algorithme pour le prdicteur non linaire de Haykin et Li, un algorithme des moindres carrs rcursif tendu (ERLS). Grce cet algorithme, il surpasse le gain de prdiction dun prdicteur linaire RLS de 2dB. Le rseau de neurones PRNN consiste en la mise en srie dun certain nombre de rseaux RNN ( recurrent neural network ou rseau de neurones rcurrent).

z-1

z-1

Sorties

z-1 z-1

Entres

Le rseau RNN Le rseau de neurones rcurrent RNN a la mme structure que le perceptron de Rosenblatt ; la dirence est que certaine des sorties sont rinjectes avec un retard en entre du rseau. La fonction de transfert des neurones de la couche de sortie est une fonction sigmode. Si on note P le nombre dentres du rseau, N le nombre de neurones de la couche de sortie et F le nombre de sorties qui sont rinjectes en entre du rseau (connexions "feedback") alors les paramtres du rseau forme une matrice W de dimension (P + F + 1) N . Les P + F premires 73

lignes correspondent aux poids associs chaque neurone et la dernire ligne est le biais de chaque neurone. Le rseau PRNN dcrit dans [41] est la mise en srie de M modules RNN identiques, selon la conguration suivante :

premiers modules, on a enlev la connexion feedback de la sortie et lentre corrsepondante a t relie la sortie du module suivant. Tous les modules partagent la mme matrice W . On note s(n) le signal de parole coder. Le rseau PRNN est entrain de telle manire quil prdise s(n) partir des valeurs prcdentes s(n i), i = 1..M + N. Pour cela , on met en entre du module k , les valeurs s(n k ), s(n k 1), .., s(n k p) et on aura en sortie une valeur prdite de s(n k + 1). On associe alors chaque module une erreur ek (n) :

Chaque module a N neurones, P entres,1 sortie et N connexions feedback. Pour les M 1

ek (n) = s(n k 1) yk,1 (n) Et on dnit la fonction erreur pour le rseau PRNN : E (n) =
M X i=1

i1 e2 i (n) avec [0, 1]

Lapprentissage consistera alors minimiser cette fonction. Dans [43], on a choisi de mettre jour les paramtres de la matrice W pour chaque echantillon de s(n). La procdure de prdiction peut alors tre dcrite en trois tapes : 1. On calcule les erreurs de prdiction ek (n), k = 1..M et la fonction erreur E (n). 74

2. On met jour jour la matrice W grce un des deux algorithmes dcrit dans [43] qui calcule une matrice de correction W additionner W . 3. On calcule les nouvelles valeurs dtat du rseau. En ce qui concerne linitialisation de la matrice W , on utilise la procdure suivante : 1. On prend les L premiers chantillons du signal s. 2. On calcule L matrices de correction W et on en fait la moyenne : on obtient We poque . 3. On met jour la matrice W grce We poque . On rpte alors 2 et 3 un nombre de fois determin empiriquement. Les articles [42] et [43] montrent quune prdiction adaptative avec un rseau PRNN donne de meilleurs gains de prdiction quune simple prdiction linaire adaptative. Un travail qui pourra tre envisag serait donc dintegrer un rseau RBF ou un rseau PRNN dans un codeur audio sans perte et voir si cela donne de meilleurs rsultats quun codeur qui utilise un rseau MLP.

75

76

Conclusion
Le codage audio sans perte est ncessaire lorsquon souhaite rduire la taille dun chier audio sans perdre dinformations lors de la compression. Pour raliser ce type de compression, les codeurs existants utilise le schma : dcoupage en trames - dcorrlation - codage entropique. La majorit des codeurs existants utilise la prdiction linaire pour dcorrler le signal. Or ce type de prdiction a des limites, cest pourquoi notre tude a port sur deux autres types de prdiction : une prdiction non linaire avec un ltre de Volterra et une prdiction non linaire avec un rseau de neurones. Nous avons dabord ralis des simulations avec Matlab et relev les conclusions suivantes : En approche forward : une prdiction non linaire stro avec un ltre de Volterra et une prdiction non linaire stro avec un rseau de neurones donnent de meilleurs gains de prdiction quune prdiction linaire stro. Le nombre trs important de coecients des prdictions non linaires rendent ce type de prdiction inutilisable dans un codeur audio sans perte en conguration forward car le dbit li aux coecients est trop important. En approche backward : une prdiction non linaire stro avec un rseau de neurones donne de meilleurs gains de prdiction quune prdiction linaire stro, mais ce nest pas le cas pour une prdiction non linaire stro avec un ltre de Volterra. Une prdiction mono avec un ltre de Volterra sur les rsidus de la prdiction linaire stro ne donne pas de meilleurs gains de prdiction quune prdiction linaire mono , que ce soit dans une approche bacward ou dans une approche adaptative par chantillon. On en a alors dduit que la seule conguration qui peut tre intgre un codeur audio sans perte et donner de meilleurs rsultats quun codeur avec une prdiction linaire est une prdiction non linaire stro avec un rseau de neurones en backward. Cette conguration a alors t implmente en C et teste sur des chiers de musique de style dirents. Les ratios obtenus sont suprieurs ceux obtenus avec un codeur utilisant une prdiction linaire. On a pu apporter des amliorations en ajoutant un ltrage NLMS linaire sur les rsidus de la prdiction stro an de dcorrler au maximum les signaux. Les ratios obtenus sont comparables ceux de Monkey Audio, le codeur existant le plus performant. Cependant, nous navons implment quun seul type de rseau de neurones, le plus simple. Ils en 77

existent beaucoup dautres : le rseau RBF, le rseau PRNN... Il serait donc intressant deectuer des simulations avec dautres types de rseaux an de voir si ils donnent de meilleurs rsultats quun rseau de neurones MLP.

78

Bibliographie
[1] JeanLuc Garcia, Codage audio stro sans perte, rapport de stage, fevrier-juillet 2003, groupe de recherche sur la parole et laudio, universit de Sherbrooke. [2] M. Hans et R. Shafer, Lossless compression of digital audio, IEEE Signal Processing magazine, pp 21-32, 2001. [3] T. Liebchen, M. Purat et P. Noll, Improved lossless transform coding of audio signals. [4] J.D. Johnston, Perceptual transform of wide band stereo signals, IEEE, 1989. [5] J.D. Johnston et A.J. Ferreira, Sum dierence stereo transform coding, IEEE, 1992. [6] P. Cambridge et M. Todd, Audio data compression techniques, 94th AES convention, 1993. [7] T. Liebchen, Lossless audio coding using adaptative multichannel prediction, 113th AES convention, 2002. [8] L. Marple, Jr, Digital analysis with applications, pp. 386-421, 1987. [9] A. Gersho et R. Gray, Vector Quantization and Signal Compression, MA : Kluwer Academic, 1992. [10] T. Robinson, Simple lossless and near lossless waveform compression, http ://wwwsvr.eng.cam.ac.uk/reports/abstracts/robinson tr156.html. [11] S.W. Golomb, Run-Length Encodings, IEEE Trans Info. Theory, Vol 12 pp 399-401 1966. [12] R. F. Rice, Some practical universal noiseless coding techniques, Tech Rep. JPL-79-22, JetPropulsion Laboratory, Pasadena, CA, mars 1979. [13] J. Thyssen, H. Nielsen and S. D. Hansen, Non-linear short term prediction in speech coding, In proc. Int. Conf. Acoustics, Speech & signal processing, Australia. Pp.I-185, I-188, April 1994. [14] J. Thyssen, H. Nielsen and S. D. Hansen, Quantization of Non-Linear Predictors in Speech Coding, Proc. ICASSP95, pp. 265-268, 1995. [15] E. Mumolo, D. Francescato, "Adaptive predictive coding of speech by means of volterra predictors", Nonlinear Digital Signal Processing, IEEE Winter Workshop on , Pages :2.1_4.1 2.1_4.4, Jan. 17-20, 1993. 79

[16] J.H. Chen, R.V. Cox, A Low-Delay CELP Coder for the CCITT 16kb/s Speech Coding Standard, IEEE J. Select. Areas Commun. vol. 10, No. 5, pp 830-849, juin 1992. [17] V. J. Mathews, Adaptive polynomial lters," IEEE Signal Processing Magazine, Vol. 8, No. 3, pp. 10-26, July 1991. [18] S. Haykin, Adaptive Filter Theory, (Englewood Clis, NJ : Prnetice Hall, Inc., 1991). [19] W. S. McCulloch and W. Pitts. A logical calculus of ideas immanent in nervous activity. Bulletin of Mathematical Biophysics, 5 :115133, 1943. [20] Rosenblatt, F. (1962). Principles of Neurodynamics. New York : Spartan Books. [21] M. Minsky and S. Papert, Perceptrons, expanded edition, MIT Press, 1988. [22] J.J. Hopeld, "Neural networks and physical systems with emergent collective computational abilities," Prot : Nat. Acad. Sci., vol. 79, Apr. 1982, pp. 2554-2558. [23] David E. Rumelhart, Georey E. Hinton, and Ronald J. Williams. Learning representations by back-propagating errors. Nature, 323(9) :533536, October 1986. [24] http ://www-dapnia.cea.fr/Spp/Experiences/OPAL/bib/nnhistory.html#ref_Rosenblat [25] M. Fandez, E. Monte and F. Vallverd "A comparative study between linear and nonlinear speech prediction". Biological & articial computation : from neuroscience to technology, IWANN97. Ed. Springer Verlag ISBN 3-540-63047-3, pp.1154-1163 [26] M. Faundez, Francesc Vallverdu & Enric Monte, "Nonlinear prediction with neural nets in ADPCM" ICASSP-98 ., Vol I, pp.345-348. SP11.3 Seattle, USA [27] M. Fandez, F. Vallverd & E. Monte Ecient nonlinear prediction in ADPCM. 5th International Conference on Electronics, circuits and systems, ICECS98. Vol.3 pp.543-546. September 1998 Lisboa. [28] M. Fandez, O. Oliva "ADPCM with nonlinear prediction". EUSIPCO-98., Rodas pp 12051208. [29] M. Fandez , "Adaptive Hybrid Speech coding with a MLP/LPC structure". IWANN99 [30] O. Oliva , M. Fandez "A comparative study of several ADPCM schemes with linear and nonlinear prediction" EUROSPEECH99 , Budapest, Vol. 3, pp.1467-1470 [31] M. Fandez "Nonlinear predictive models computation in adpcm schemes". European signal processing conference, EUSIPCO2000,September de 2000, Tampere, Vol. II, pp 813-816, ISBN 952-15-0445-5 [32] Gas B, Zarader J.L, Sellem P et Didiot J.C ; " Speech coding by limited weigths Neural Networks " ; International Conference On System, Man and Cybernetics (ICSMC 97), Orlando, Foride USA, Octobre 1997, vol 5, pp 4081-4086. 80

[33] Chavy C, Gas B et Zarader J.L ; " Discriminative coding with predictive neural networks " ; International Conference on Articial Neural Networks (ICANN 99). September 1999, Edimburg, Scottland, pp 216-220. [34] Gas B, Zarader J.L , Chavy C ; " A new approach to speech coding : the Neural Predictive Coding " ; Journal of Advanced Computational Intelligence, Vol 4, n 1, Janvier 2001, pp 120127. [35] J.L. Zarader, Gas B., Chavy C., Charles Elie Nelson D. ; " New Compression and decompression of speech by a Neural Predictive Coding (NPC)" ;WSES Intern. Conf. in Signal Speech and Image processing (SSIP01). Advances in Signal Processing and Communications. September 2001, Malta, pp 119-124. [36] M. Birgmeier, A fully Kalman-trained radial basis function network for nonlinear speech modeling, in Proc. 1995 IEEE int. Conf. Neural Networks, ICNN95 Perth, Nov. 1995. [37] M. Birgmeier "Nonlinear prediction of speech signals using radial basis function networks". EUSIPCO 1996,vol. 1 pag. 459-462. [38] S. Haykin. Neural Networks : A Comprehensive Foundation. Mc Millan College Publishing Co., 1994. [39] F. Diaz y A. Figueiras "Nonlinear prediction for speech coding using radial basis functions". ICASSP 1995, pp.788-791 [40] F. Diaz de Maria and A. R. Figueiras-Vidal Radial basis functions for nonlinear prediction of speech in analysis-by-synthesis coders, in Proc. IEEE workshop on nonli. Signal and image processing NSIP95, Haldiki, June 1995 [41] S. Haykin and L. Li. Non-linear Adaptive Prediction of Non-stationary Signals. IEEE Transactions on Signal Processing, 43(2) :526-535,1995. [42] J. Baltersee and J.A. Chambers, Non-linear Adaptive Prediction of Speech with a Pipelined Recurrent Neural Network and a Linearised Recursive Least Squares Algorithm, European Conference on Signal Analysis and Prediction (ECSAP-97), Prague, Czech Republic, June 24-27, 1997. [43] D. Mandic, J. Baltersee and J.A. Chambers, Non-linear Adaptive Prediction of Speech with a Pipelined Recurrent Neural Network, Invited chapter in Signal Analysis and Prediction, Birkhaueser, Boston, 1998. [44] M. T. Hagan and M. Menhaj, "Training multilayer networks with the Marquardt algorithm," IEEE Transactions on Neural Networks, vol. 5, no. 6, 1944, pp. 989-993. [45] D. Nguyen and B. Widrow, "Improving the learning speed of 2-layer neural networks by choosing initial values of the adaptive weights," Proceedings of the IJCNN, vol. 3,pp. 21-26, July 1990. [46] D. Foresee and M. Hagan, "Gauss-Newton Approximation to Bayesian Learning," Proceedings of the 1997 International Joint Conference on Neural Networks. 81

[47] Bartlett, P.L. (1997), "For valid generalization, the size of the weights is more important than the size of the network," in Mozer, M.C., Jordan, M.I., and Petsche, T., (eds.) Advances in Neural Information Processing Systems 9, Cambrideg, MA : The MIT Press, pp. 134-140.

82

También podría gustarte