FR 2702590 A1 19940916 FR 9302881 A 19930312 I DESCRIPTION Domaine technique La présente invention concerne un dispositif de codage et de décodage numériques de la parole, un procédé d'exploration d'un dictionnaire pseudo-logarithmique de délais LTP, et un procédé d'analyse LTP. Etat de la technique antérieure De manière connue, un dispositif de codage numérique de la parole consiste, après échantillonnage du signal analogique, à effectuer la compression des données binaires du signal de parole numérisé Le dispositif de décodage effectue l'opération inverse et restitue un signal analogique différent du signal original, mais le plus voisin possible d'un point de vue perceptuel. Un dispositif de codage-décodage numérique de la parole est caractérisé par le débit numérique des données à transmettre entre le codeur et le décodeur, la qualité du signal reconstitué au décodeur, et la complexité de la technique de compression mise en oeuvre. Les codeurs prédictifs sont utilisés pour des débits assez faibles (de 4 à 16 kbits/s pour une fréquence d'échantillonnage de 8 k Hz) et une bonne qualité de codage. Ils intègrent des propriétés du signal de parole liées à sa production et d'autres liées à sa perception par un auditeur humain: Stationnarité locale du signal de parole: le signal de parole peut être prédit à partir de son passé récent (de 8 à 12 échantillons à 8 k Hz) au moyen de paramètres évalués sur des fenêtres de 10 à 20 ms Ces paramètres de prédiction à court terme, représentatifs de la fonction de transfert du conduit vocal, sont obtenus par des méthodes d'analyse "LPC" (Linear Prediction Coding). Périodicité des sons voisés (par exemple: les voyelles): cette corrélation à plus long terme est due à la vibration des cordes vocales La cadence de vibration (fréquence fondamentale) varie de 60 à 400 Hz selon les locuteurs Une analyse "LTP" (Long Term Prediction) permet d'évaluer les paramètres d'un prédicteur à long terme exploitant cette particularité. Masquage du bruit par le signal: dans les fréquences voisines d'un maximum d'énergie du signal, l'oreille est moins sensible au bruit de codage. Cette propriété est exploitée par l'introduction d'un "filtre perceptuel" au codage de l'onde résiduelle issue des prédicteurs à court et long terme, et éventuellement à l'analyse LTP Ce filtre permet de redistribuer le bruit dans les zones fréquentielles o il est masqué par le signal. De manière classique, un codeur prédictif est composé d'un module de prédiction à court terme, un module de prédiction à long terme, puis un module effectuant le codage de l'onde résiduelle à l'aide d'une méthode d'analyse par synthèse, ainsi que décrit dans l'article de P Kroon et B S Atal intitulé "Predictive Coding of Speech Using Analysis by Synthesis Techniques" (Advances in Speech Signal Processing, Ed Furui S, Sondhi M M, pages 141-164, 1991). Selon le type de codage de l'onde résiduelle, on distingue plusieurs familles de codeurs: codeurs APC, Multipulse-Excited, CELP, comme décrit dans l'article de P Kroon et B S Atal. Ce type de dispositif de codage est largement utilisé, essentiellement dans des systèmes de transmission par voie terrestre ou satellite, ou dans des applications de stockage. Différentes réalisations du module de prédiction à long terme ou module LTP, connues de l'homme de l'art, vont être passées en revue à présent. La forme générale d'un prédicteur à long terme d'ordre p est: p-1 P(Z)= 1 Xk)z(+k) k=O Le nombre p de coefficients de ce prédicteur varie généralement de 1 à 3 Si on considère le cas des prédicteurs du 1 er ordre: P(Z) = 1 -,z-. A l'analyse, les paramètres 6 et A sont déterminés par minimisation de l'énergie d'un signal d'erreur e(n) sur un bloc de N échantillons du signal x(n): N-i Min E(L) = Ee(n)2 avec e(n)=x(n)-, fl(n-À) ( 1) n=-O x(n) représente le signal d'entrée lui-même s(n) ou le résidu LPC r(n) Cette analyse dite "en boucle ouverte" est décrite dans l'article de B S Atal intitulé "Predictive Coding of Speech at Low Bit Rates" (IEEE Trans Commun, COM-30, pages 600-614, avril 1982). Ce type d'analyse peut être avantageusement remplacé par une analyse en boucle fermée, anticipant l'opération effectuée au décodeur pour produire le signal de synthèse i(n). A la synthèse on obtient: s(z) = 1 () P() u(z) (avec u(n) = signal d'excitation) A(z) P(Z) Si ê(z)= 1 u(z), alors e(n)=u(n)+,f 8 (n-) représente le signal résiduel P(z) reconstruit, ou excitation de synthèse du filtre LPC 1/A(z). La modélisation du résidu r(n) par le signal ê(n) s'améliore lorsque l'on remplace le signal d'erreur e(n) de l'équation ( 1) par: e(n) = r(n) -l/(n) ( 2) comme par exemple le codeur "RPELTP" décrit dans l'article de P Vary, K. Hellwig, C Galand, M Rosso, JP Petit, D Massaloux intitulé "Speech Codec for the European Mobile Radio System" (Globecom, pages 1065-1069, 1986). Le prédicteur à long terme décrit dans l'article de W B Kleijn, D J Krasinski et R H Ketchum intitulé "An Efficient Stochastically Excited Linear Predictive Coding Algorithm for High Quality Low Bit Rate Transmission of Speech" (Speech Commun, vol VII, pages 305-316, 1988) adopte une philosophie "CELP" pour une analyse LTP effectuée également en boucle fermée A chaque période est associée une forme d'onde u = (n A),n = O > N-1 dans un dictionnaire CELP Ce dictionnaire mis à jour à chaque analyse LTP, est appelé "dictionnaire adaptatif" L'analyse LTP est remplacée par la recherche du code optimal dans le dictionnaire adaptatif, résolue par les équations classiques du CELP, ce qui revient à remplacer e(n) dans l'équation ( 1) et l'équation ( 2) par: e(n) = hg(n)*(t(n) -fuz(n)), N = O -> N-1 avec hg(n) = r i du filtre perceptuel Hg(z)= A ((z)() A 72 (Z)A(Z) (lorsque l'on choisit y, = 1, r 2 = g, Hg I(z) = A) Ag(z) Le signal t(n) ("target") s'exprime à partir du résidu LPC r(n) et du signal e, (n) obtenu en prolongeant l'excitation passée î(n) par des échantillons nuls: t(n) = r(n) -ep(n) N = O -> N 1 avec e (n) = {e(n) n de sa mémoire. D'autre part, les analyses en boucle fermée utilisent le signal ê(n) qui n'est connu, au début du bloc analysé, que pour N N Cette restriction diminue l'efficacité d'un prédicteur à long terme sur les voix à fréquence fondamentale élevée (voix de femmes et d'enfants) On peut y remédier en extrapolant le signal e(n) pour N > 0 Dans l'article de W B Kleijn, D J Krasinski et R H Ketchum cité précédemment, on utilise la périodicité supposée du signal pour chaque période candidate X en remplaçant î(n), N > O par ê(n -2) si N complexité de l'analyse LTP. Un certain nombre d'algorithmes rapides décrits dans l'article de W.B Kleijn, D J Krasinski et R H Ketchum intitulé "Fast Methods for the CELP Speech Coding Algorithm", (IEEE Trans on ASSP, vol 38, No 8, pages 1330-1341, Août 1990) ont été conçus pour accélérer les calculs dans le prédicteur à long terme, principalement dans le cadre de l'analyse par dictionnaire adaptatif, fondamentalement plus complexe Ces algorithmes sont généralement perturbés par l'introduction d'éléments extrapolés de î(n). Un dernier point concerne la précision du prédicteur à long terme: pour un prédicteur d'ordre 1 avec délais X entiers, la périodicité T recherchée est limitée aux multiples de la période d'échantillonnage T, Deux méthodes ont été proposées permettant d'améliorer la précision sur T: augmenter l'ordre du prédicteur, ce qui bien sûr augmente la complexité de l'analyse, mais augmente aussi le nombre des gains à coder; utiliser un prédicteur à "haute résolution temporelle", comme décrit dans l'article de P Kroon et B S Atal intitulé "Pitch Predictors with High Temporal Resolution" (Proc ICASSP, pages 661-664, avril 1990) Cette technique fait intervenir des délais fractionnaires du type,+ p+Il D avec 2 e N, = 0, 1,,D 1, par interpolation du signal passé analysé L'interpolation est effectuée par suréchantillonnage suivi d'un filtrage passe-bas Cette opération peut être efficacement mise en place au moyen d'une structure polyphasée, telle que décrite dans l'article de R E Crochiere et L R Rabiner intitulé "Interpolation and Decimation of Digital Signals: A Tutorial Review" ("Proc of the IEEE" vol. 69, No 3, mars 1981). Le problème de la réunion des techniques d'extrapolation du signal,(n) et de prédiction à haute résolution temporelle est résolu par un processus récursif coûteux en complexité décrit dans la demande de brevet WO 91:03790 de l A Gerson, M A Jasiuk intitulée "Digital Speech Coder Having Improved Sub-Sample Resolution Long Term Predictor": pour chaque période fractionnaire +ço ID, les échantillons ê(n), nÄO inconnus sont remplacés récursivement par des échantillons issus d'une interpolation du signal passé ê(n), N L'invention a pour objet un dispositif numérique de codage et de décodage de la parole dans lequel on améliore le fonctionnement du module de prédiction à long terme tel que défini dans ces différents documents de l'art antérieur. Exposé de l'invention L'invention propose, à cet effet, un dispositif de codage et de décodage numériques de la parole comprenant, au codage: un module d'analyse LPC (prédiction à court terme), un module d'analyse LTP (prédiction à long terme), un module de codage de l'onde résiduelle utilisant une méthode d'analyse par synthèse; au décodage: un module de décodage de l'onde résiduelle, un module de synthèse LTP et un module de synthèse LPC; caractérisé en ce que le module d'analyse LTP utilise un dictionnaire de délais à structure pseudo-logarithmique dans lequel les délais sont rangés en ordre croissant; ce dictionnaire étant constitué de Q segments adjacents, chacun d'une résolution donnée, les résolutions des segments successifs diminuant géométriquement dans un rapport k rationnel tel que k > 1, tandis que le nombre d'éléments L de chaque segment reste constant. L'intérêt de ces précisions emboîtées est de maintenir à peu près constante la précision relative sur le délai, et de là l'erreur sur la périodicité du signal due à l'échantillonnage L'invention permet de plus d'obtenir un codage simple et efficace du délai. Les résolutions des délais dans les différents segments du dictionnaire pseudo-logarithmique sont des rationnels R = p / q, p e N, q E N (N: ensemble des entiers naturels). On a pour cela étendu les méthodes d'analyse à haute résolution temporelle évoquées (délais = À, I R avec , e N, R e N) au cas des résolutions fractionnaires (délais Z = RI x q/p Àt,q,p EN) Avantageusement dans une première variante, le dictionnaire des délais est découpé en Q segments adjacents S (i = O -* Q i) comprenant chacun L délais A chaque segment Si correspond une résolution /, les résolutions des segments successifs décroissant dans un rapport k rationnel donné (P = _, / k) Si l'on appelle y, le dernier délai du segment Si, ce segment est formé des L délais Aj=yi-j/I, j=L-1-O avec j R entiers La condition d'adjacence entre segments est assurée par ri-, = Y L I R, i = 1-> Q 1 Si l'on introduit A"" = dernier délai du dictionnaire et RQ_ = résolution du dernier segment, on montre qu'un tel dictionnaire est entièrement défini par la donnée des valeurs {Q,L,k,,, L,RQI} et la condition RQ_ EN. Dans une seconde variante, le dictionnaire des délais est découpé en Q segments adjacents S,(i = O o > Q-i) comprenant chacun L délais. A chaque segment 51 correspond une résolution R,, les résolutions des segments successifs décroissant dans un rapport k rationnel donné (Ri =R, -_ I k) Si l'on appelle,i le premier délai du segment Si, ce segment est formé des L délais:,j =,8 +j Il R,j=O->L-1 avec Aj R, entiers La condition d'adjacence entre segments est assurée par,8 =,/il + L R 1 _ i = 1 -> Q 1 Si l'on introduit,-,_, =ler délai du dernier segment et RQ_= résolution du dernier segment, on montre qu'un tel dictionnaire est entièrement défini par la donnée des valeurs {Q,L,k,/Q_,RQ_,} et la condition RQP 1 _,SQ_ EN. Avantageusement, le dispositif permet un codage du délai LTP simple et peu coûteux en stockage, du type, selon la première variante: code(,)= i + f', avec $i = {Xi = 7, jl /1, = L1 O} avec et j'=L-1-j selon la seconde variante: code () =L i+ j avec S,={t 2 =f,+j IR,j=O-L-I} Avantageusement, une réalisation particulière de dictionnaire pseudo-logarithmique de délais tel que définis ci-dessus est le dictionnaire D, formé de délais fractionnaires, de résolution R= p>l, ou entiers, que l'on peut décrire de la façon suivante: chaque segment S,,i = O > 3 de résolution R, = 23-i est formé des délais o (pl, ç = O -R,-1, les délais,o entiers formant un sousensemble S de Si comportant N = 2 '+ 3 éléments: Si O ={,110 j = gnu 1, uo +jj=-> ni (enposantn l= 0) j= O Avantageusement, une procédure sousoptimale efficace d'exploration d'un dictionnaire pseudo-logarithmique des délais tel que défini dans la première ou la second variante de l'invention, tirant parti de sa structure particulière, permet de réduire considérablement la complexité de la recherche du meilleur délai: dans une première passe, on sélectionne K(i) maxima locaux du critère à maximiser parmi un ensemble restreint de a(i) délais de chaque segment Si; dans une seconde passe, on explore le dictionnaire de manière limitée au voisinage des valeurs sélectionnées dans la première passe. Avantageusement la taille des segments L est un multiple de Ki L-', le choix pour a( 0) de Xk,, ou d'un sous-multiple de L/ki-l introduisant un espacement régulier des délais explorés dans la première passe. Avantageusement, on introduit une simplification supplémentaire à la recherche de la première passe en remplaçant la maximisation de E'(,) = N(G)2 / D(À), o N(,t) et D(,) représentent respectivement le numérateur et le dénominateur du gain optimal associé à chaque délai A, par celle de N( ): on calcule donc les maxima locaux de l'intercorrélation N(,t), pour tous les segments i = O> Q-1, dans la première passe. L'invention propose également un procédé d'analyse LTP en boucle fermée avec filtrage perceptuel de performances équivalentes à l'analyse LTP par dictionnaire adaptatif et de complexité moindre, reposant sur l'expression suivante du signal d'erreur dont on minimise l'énergie: e(n) = hg(n)*(r(n) -/&(n)) les points précédant le sous-bloc courant (tels que N % en débit. La structure pseudo-logarithmique, outre qu'elle organise le concept précédemment énoncé, permet également d'établir une correspondance simple entre l'indice de chaque délai du dictionnaire pseudo- logarithmique et sa valeur, facilitant les opérations de codage et décodage du délai Aucun stockage n'est nécessaire pour trouver les délais dans le dictionnaire. Cette structure facilite de plus la conception d'un tel dictionnaire: un tel dictionnaire est en effet totalement défini par la donnée de quelques paramètres Pour une application donnée, le choix de ces paramètres est gouverné par les contraintes de l'application Il est alors simple de déterminer le ou les dictionnaire(s) pseudo-logarithmique(s) convenant à cette application. La présente invention décrit en outre un procédé très peu complexe permettant la mise en place d'un module d'exploration d'un tel dictionnaire Bien que sous optimale, une telle technique a montré des performances équivalentes à la recherche optimale La réduction de complexité obtenue avec ce procédé est importante Si l'on compare les temps de calcul dans un codeur de type CELP des deux techniques suivantes: technique de référence: analyse LTP par "codebook" adaptatif avec sélection du délai optimal par méthode d'autocorrélation comme définie dans l'article de messieurs Kleijn, Krasinski et Ketchum, intitulé "Fast Methods for the CELP Speech Coding Algorithm", cité plus haut; technique proposée dans l'invention: analyse LTP du type présenté selon la procédure sous optimale. Bien que ne produisant pas les mêmes résultats, ces deux techniques ont été jugées d'une qualité subjective équivalente. Sur un micro-ordinateur, le traitement du module LTP utilisant la technique proposée dans l'invention est trois fois plus rapide que celui du module utilisant une version optimisée de la technique de référence Cette version optimisée exploite au maximum les méthodes permettant de diminuer la complexité de la technique de référence: si l'on compare les temps de calcul de la version non optimisée de la technique de référence à ceux de la technique proposée, on obtient un gain supérieur à 11. Brève description des dessins Les figures 1 A et 1 B représentent le dispositif de codage et le dispositif de décodage de la parole selon l'invention; la figure 2 représente une réalisation particulièrement intéressante du dispositif de codage représenté à la figure 1 A; la figure 3 illustre le fonctionnement d'un dictionnaire pseudo-logarithmique de délais; la figure 4 illustre la procédure de calcul du signal x(n -A), At rationnel intervenant dans le module LTP; la figure 5 montre, sur une séquence de parole réelle, l'évolution du critère E'() lorsque X parcourt le dictionnaire D; la figure 6 détaille le dictionnaire D; la figure 7 présente une procédure de codage et décodage des délais du dictionnaire D; la figure 8 décrit les modules de calcul du signal e Jn) intervenant dans la recherche du délai optimal de D; les figures 9 à 12 montrent le fonctionnement de cette recherche du délai dans le cadre de la réalisation du module LTP. il Exposé détaillé des modes de réalisation La présente invention concerne un dispositif numérique de codage de la parole de type codeur prédictif utilisant une prédiction à court terme du signal permettant la modélisation des formants, une prédiction à long terme destinée à restituer la structure fine du spectre, puis un codage de l'onde résiduelle à l'aide d'une méthode d'analyse par synthèse; une description générale de ce type de codeurs étant réalisée dans l'article de messieurs Kroon et Atal cité précédemment Les prédicteurs à court terme et à long terme sont calculés par des méthodes de prédiction linéaire connues sous le nom d'analyse LPC ("Linear Prediction Coding") et analyse LTP ("Long Term Prediction") Les figures l A et 1 B représentent un dispositif numérique de codage et un dispositif numérique de décodage de la parole faisant l'objet de la présente invention Le dispositif de codage comprend successivement: un capteur 10; un filtre 11; un convertisseur analogique/numérique 12; un module LPC 13; un module de codage de résidu ou CODRES 14; un module LTP 15 recevant en entrée le signal d'entrée ou le signal de sortie du module LPC 13: x(n) = s(n) ou r(n), et éventuellement le signal î(n), résiduel reconstruit issu du module CODRES 14. Ce dispositif de codage fonctionne de la manière suivante: Le signal analogique, après conversion en numérique, est segmenté en trames de No échantillons s(n) Ces échantillons sont analysés dans le module LPC 13 par une méthode classique de prédiction linéaire Ce module 13 produit en sortie des paramètres PLPC transmis au décodeur et No échantillons de signal résiduel r(n). Ensuite, le module LTP 15 accepte en entrée N échantillons d'un signal x(n) qui peut provenir d'une sous-segmentation du signal s(n) lui-même ou bien de r(n) Lorsque le module LTP 15 fonctionne en boucle fermée, il doit recevoir également en entrée des échantillons de résiduel reconstruit (ou "excitation de synthèse") issus par bouclage du module de codage de résidu 14 Le module LTP peut éventuellement utiliser aussi les paramètres PLPC (dictionnaire adaptatif, filtre perceptuel) Ce module 15 produit les paramètres de sortie PLTP (gain quantifié P et indice id du délai) et élabore un signal de prédiction à long terme p(n). Ensuite, le module de codage de résidu 14 effectue le codage de l'excitation résiduelle Les paramètres de codage de cette excitation sont transmis au décodeur Lorsque nécessaire, ce module 14 comprend un décodeur local permettant le calcul de l'excitation de synthèse (ou résiduel reconstruit) e (n) La figure 1 B présente le schéma du dispositif de décodage correspondant au dispositif de codage représenté sur la figure 1 A Ce dispositif de décodage comprend successivement: un module de démultiplexage 20; un module de décodage de résidu ou CODRES-1 21; un module de synthèse LTP (ou LTP-1) 22; un module de synthèse LPC (ou LPC-1) 23; un convertisseur numérique analogique 24; un filtre 25; un haut-parleur 26. Le module de décodage de résidu 21 effectue le décodage des paramètres PCODRES et calcule N échantillons d'un signal u(n) Ce signal entre dans le module 22 conjointement avec les paramètres PL Tp qui y seront décodés Après filtrage de u(n) par 1/ P(z), on obtient i(n). Ce signal entre alors dans le module 23 qui effectue le décodage des paramètres P Lp C et le filtrage de é(n) par l /A(z) Ce module 23 produit en sortie les No échantillons du signal de synthèse 9 (n), pour une trame, qui sont convertis en analogique. Diverses réalisations du dispositif de l'invention étant possibles, on va considérer à présent une réalisation particulièrement intéressante à titre d'exemple. Cette réalisation représentée à la figure 2, donnée à titre d'exemple, a les particularités suivantes: l'analyse LTP (module 13), qui sera décrite plus en détail ultérieurement, est une analyse en boucle fermée, utilisant les signaux r(n) et î(n) en entrée, avec un filtre perceptuel calculé à partir des paramètres PLPC fournis par le module LPC; codage de l'excitation résiduelle: les signaux r(n), p(n) et e(n) entrent dans un module 14 de type CELP qui utilise une procédure classique de recherche dans un dictionnaire CELP pour quantifier le signal résiduel tel que décrit dans l'article de B S Atal cité précédemment Un tel dictionnaire est formé par exemple de NF formes d'ondes aléatoires de statistiques gaussiennes Les paramètres PLPC entrant dans le module CELP 14 ' permettent de calculer le filtre perceptuel W(z) = A(z) / Ar(z), (y = 0 75). Après sélection de la meilleure forme d'onde du dictionnaire, le module 14 ' produit les paramètres PCELP (gain quantifié et indice ic de la forme d'onde), et le signal résiduel reconstruit i(n)= p(n)+ uic(n). Pour une fréquence d'échantillonnage de 8 k Hz, la présente réalisation du dispositif effectue un codage du signal de parole au débit de 8 kbit/s, avec les caractéristiques suivantes: Trame LPC: 24 ms (N = 192) Sous trames: 4 ms (No = 32) Débit LPC: 42 bits/trame(ordre l O) Débit LTP 1 b 1 x 6 bits/Itrame fl: 3 bits J Excitation: facteur d'échelle: 6 bitsl trame indice CELP i: l Obits O gain y: 3 bits 13 x 6 bits/ trame (NF = 1024) J La présente invention se situe au niveau du module LTP dont le fonctionnement va être décrit à présent Le module d'analyse LTP de l'invention repose sur l'exploration d'un dictionnaire de délais de type pseudo-logarithmique. Un module d'analyse LTP d'ordre 1, quel que soit le type d'analyse, calcule le délai X du prédicteur P(z) qui minimise un certain critère d'erreur La présente invention regroupe l'ensemble des délais explorés en un dictionnaire présentant une structure pseudo-logarithmique Ces délais X sont des nombres rationnels, rangés en ordre croissant dans le dictionnaire. Le dictionnaire est découpé en Q segments adjacents si(i = O o-> Q i) comprenant chacun L délais A chaque segment Si correspond une résolution J?, et si on appelle ri le dernier délai du segment S,, le segment Si est formé de la façon suivante, comme représenté sur les figures 3 A et 3 B: Si ={j =ri-j/-,j=L-1-> O} ( 4) Le délai r, peut éventuellement être fractionnaire mais les délais A' doivent vérifier Àj R entier Vi, Vj, donc pour chaque segment S,, il faut et il suffit que r, soit entier. Les résolutions des segments successifs décroissent dans un rapport k rationnel donné: R = -,_I / k,i = 1 Q 1 ( 5) La condition d'adjacente entre segments (figure 3 B) est assurée par: r,_,=r,-L/R i= 1->Q-1 ( 6) Si l'on appelle À t le dernier délai du dictionnaire (' = Q-), on montre que la condition yr, EN est réalisée pour tout i = O à Q-1 si et seulement si: E-I A"| N ( 7) Le dictionnaire est alors totalement défini par la donnée des valeurs {Q=nombre de segments, L=taille des segments, k=facteur de décroissance des résolutions,,,, =demrnier délai du dictionnaire, RQ-i = résolution du dernier segment telle que l'équation ( 7) soit vérifiée} On peut alors calculer ,, (premier délai du dictionnaire) par la formule: -t l)k-1 Ro, et si on définit la longueur li des segments Si comme i = i y,-1, on a alors (figure 3 B): l, =k i_, iî= 1 -Q 1 ( 8) La structure pseudo-logarithmique en base k du dictionnaire de délais apparaît dans les équations ( 5) et ( 8). On peut construire un dictionnaire du même type en s'appuyant sur les premiers délais,fi de chaque segment: S, ={g=,, + j/-, j= O > L-}, ( 4 ') et en définissant la condition d'adjacence par (figure 3 C): pi = -,_, +L /R 1 ( 6 ') Il faut alors remplacer la donnée de A, par celle de /_-= premier délai du dernier segment, et la condition ( 7) par: R-1,Q-1 E N ( 7 ') Bien que légèrement différent, ce dictionnaire est totalement équivalent à celui décrit en figure 3 B. Ces dictionnaires pseudo-logarithmiques de délais permettent un codage du délai simple et peu coûteux en stockage, du type: code(Aj,)= L i+ j', avec(i = ri JIR,) e S, (voir équation( 4))etj'=L-1-j pour un dictionnaire défini par les équations ( 4), ( 6) et ( 7). Un codage du même type est réalisable pour un dictionnaire défini par les équations ( 4 '), ( 6 ') et ( 7 '). On va considérer ci-dessous un exemple donné de dictionnaire qui sera repris dans la suite de la description Il constitue une réalisation particulièrement intéressante de la présente invention. D=dictionnaire à 256 délais ( 8 bits) tel que: Q= 4 L= 64 k= 2 |A, =,t 2 i+ 119 (avec 2, = plus petit délai entier) R 3 = 1 Tous les types d'analyse LTP utilisent un critère à minimiser qui fait intervenir un signal x(n) pour un certain délai 2 et N = O à N 1 (en boucle ouverte, x(n) représente s(n) ou r(n), et en boucle fermée,(n)). On va tout d'abord définir ce signal x(n -2) dans le cas particulier o le délai A est un rationnel: En effet lorsque A appartient au dictionnaire défini précédemment, il est de la forme, = Ai/R tel que A, e N,R rationnel R (résolution du segment qui contient 2) est un rationnel a priori quelconque, du type R = p/q, p EN et q EN. On définit x(n 2), N = O -> N1 en étendant la technique décrite par P Kroon au cas d'une résolution R=p/q rationnelle On passe du signal x(n) au signal y(n) de résolution multipliée par x(plq) à l'aide de méthodes classiques d'interpolation de signal comme décrit dans l'article de messieurs Crochière et Rabiner cité plus haut. Comme montré à la figure 4, le signal x(n) est d'abord suréchantillonné d'un facteur p dans un suréchantillonneur 30, produisant un signal x'(n) qui entre dans un filtre H(z) passe-bas 31 dont la fréquence de coupure est inférieure à f, /Max(p,q)(f =fm, /2) Le signal x"(n) issu de ce filtrage est ensuite sous-échantillonné d'un facteur q, dans un sous-échantillonneur 32 pour donner y(n). i=l On a donc: y(n)=x"(nq) avec x"(n)= jh(i)x'(n-i) i=-I i=-I On peut aussi exprimer x" (n) par x" (n) =,h( jp + q))(k j) i=-llp i=-I Ip si k=E(n Ip),n-=qpl: (On considère la notation E(x)=partie entière de x) Pour un délai À,=, /Ravec AI e N, on définit x(n) par: x(n-,l) = y(n R -2 I) Vn { 0,1,,N-1} =y(np/q-21) si R=p/q Alors x(n) = x"(np2 lq) On voit qu'il est intéressant de calculer à partir de (,Iq) les valeurs 2, e N et q E{ 0, 1,p-1 } telles que Aq=A 20 p: El=-1-m,l+ l | (p I) mod( 21 q1,p) lLa notation q=mod (p,n) signifie q= reste de p modulo nl Alors: x(n-)= A) h(jp+ço)x(n-2 o-j),n=O->N-1 ( 9) 1 =-y; En pratique, on choisit par exemple pour H(z) un sinus cardinal fenêtré et échantillonné d'un facteur Max(p,q) Les p filtres {h,(j),j=-Ilp >Ilp}, = O o->p-1 sont les filtres polyphasés construits à partir de H(z). Lorsque p > q, on a alors ho défini par {ho( 0) = 1, et ho(j) = Osi j O} et donc pour les valeurs de, entières on trouve pour x(n) le signal x(n) décalé de X points. Pour q= 1, on retrouve l'expression donnée précédemment dans le cadre de l'analyse LTP a haute résolution. On décrit ci-dessous le procédé de recherche du délai optimum dans le dictionnaire pseudo-logarithmique défini dans la présente invention. Quel que soit le type d'analyse LTP, la recherche du délai optimal revient à minimiser un critère: N-I E( 4) =e(n) n=O Si l'on définit de façon générale e(n) comme: e(n)=v(n)-fl(n-4), v(n) étant un signal connu indépendant de X et x(n-4) défini pour chaque délai candidat, les expressions de ces deux signaux dépendant du type d'analyse utilisé, alors la minimisation de E( 4) revient à maximiser: Et {) = E v(n) E( ) no= O La recherche du délai optimum nécessite le calcul, pour chaque délai A, les deux quantités: N(À) = > v(n)x(n) H-Io N-I D,) = Z x(n) n=O N( 1) et D(I) représentent respectivement le numérateur et le dénominateur du gain optimum,8 associé à chaque délai A Ces deux quantités interviennent dans E'( 2) Par exemple,lorsque p n'est pas quantifié en boucle, on a E'(t) = N( 2)2 / D(X). Dans tous les cas, l'évaluation de E'() pour chaque délai-A, est un processus nécessitant de nombreux calculs, en particulier lorsque l'on utilise des délais non entiers, et dans le cas d'analyses en boucle fermée, dès que l'on doit extrapoler le signal î(n). Diverses méthodes ont été proposées pour réduire la complexité de cette recherche: Analyse LTP à haute résolution: calcul des critères E'( 2 o) tels que o e N et interpolation des critères comme décrit dans l'article de P Kroon et B.S Atal cité précédemment Cette méthode est une méthode approchée et reste relativement complexe. Dictionnaire adaptatif: prolongement de la sommation dans E'() pour utiliser une méthode d'autocorrélation telle que définie dans l'article de A Le Guyader, D Massaloux and J P Petit intitulé "Robust and Fast Code Excited Linear Predictive Coding of Speech Signals" (Proc ICASSP, pages 120-123, Mai 1989), "Backward Filtering" pour le calcul des numérateurs tel que défini dans l'article de I M Trancoso et B S Atal intitulé "Efficient Procedures for Finding the Optimum Innovation in Stochastic Coders" (Proc ICASSP, pages 2375-2378, avril 1986), récurrence dans le calcul des dénominateurs, comme décrit dans l'article de W B Kleijn, D J Krasinski et R H Ketchumrn intitulé "An Efficient Stochastically Excited Linear Predictive Coding Algorithm for High Quality Low Bit Rate Transmission of Speech" cité précédemment Ces procédures sont cependant perturbées par l'introduction de signaux e(n) extrapolés et se compliquent avec l'usage de délais fractionnaires. Il est donc intéressant de simplifier encore cette procédure de recherche, et dans le cadre du dictionnaire de délais de l'invention, de s'appuyer pour cela sur sa structure particulière. Si l'on étudie l'évolution du critère E'(t) pour A variant dans un dictionnaire de délais de l'invention tel que défini précédemment, on constate que la courbe E'n()avec E'( 2)=E'( 2)I/v(n)2 présente elle- même une structure pseudo-logarithmique et que ses maxima en sont relativement amortis: à titre d'exemple, la figure 5 montre l'évolution de E'( t) pour A e dictionnaire D, sur une trame voisée d'un échantillon de parole. Cette étude suggère le fractionnement de la recherche en deux passes: dans une première passe: dans chaque segment Si, calcul du critère sur un nombre restreint a(i) de délais tel que Vi = 1 Q 1, a(i) = ka(i 1). Sélection d'un certain nombre K(i) de maxima locaux pour chaque segment; dans une seconde passe: exploration limitée au voisinage des extrema locaux sélectionnés dans la première passe, pour chaque segment. Bien entendu, la progression a(i)= ka(i -1) est limitée par L si à partir de i L on a a(i)>L alors a(i)=L pour i>i L et la recherche sous- optimale en deux passes est remplacée par une recherche optimale (en une seule passe) pour les segments i L à Q-1. Un cas est plus particulièrement intéressant: lorsque L est un multiple de ki L-, Alors le choix pour a( 0) de L/K-' ou d'un sous-multiple de L/Ki introduit un espacement régulier des délais explorés dans la première passe On montre que ces délais forment alors f ki L -il l'ensemble: 7 ro-0 /+jxa,j=l k-a(o) j, le pas a étant égal à L/(Roa(O)). Dans le cas particulier du dictionnaire D introduit plus haut, cette technique d'exploration en deux passes s'introduit de la manière suivante: Pour ce dictionnaire L = 64, k Q-1 = 8, Ro = 8 Le choix a( 0) = 8 permet d'explorer dans la première passe un sous-ensemble DO de D constitué de délais régulièrement espacés de D avec un pas a= 1 On montre que = 2 + 7 et que DO est en fait formé des 120 délais entiers consécutifs { 20 = + j j = O 119} extraits du dictionnaire D. Il est possible d'introduire une simplification supplémentaire à la recherche de la première passe On remplace la maximisation de E'() = N(X)2 /D(A) par celle de N() La normalisation qu'apporte la division par D(A) s'avère généralement superflue dans cette première passe par essence plus grossière que la recherche complète On s'intéresse donc aux maxima locaux de l'intercorrélation N( ), pour tous les segments i = 0-> Q-1, dans la première passe. La deuxième passe utilise par contre le critère complet E'( 2) et doit être effectuée aussi sur tous les segments: même pour les segments i > i L tqa(i)>L, car il faut évaluer E'(X) sur les extrema locaux de N() sélectionnés dans la première passe. L'analyse LTP par dictionnaire adaptatif, très performante, est aussi très complexe, du fait de la présence de la boucle fermée d'une part, et du filtre perceptuel d'autre part Une variante de cette analyse, diminuant la complexité intrinsèque du processus sans en dégrader les performances subjectives est proposée ici: elle repose sur une modification de l'expression ( 3) du signal d'erreur dont on minimise l'énergie (critère E(X) à minimiser). On peut en effet conserver l'usage d'un filtre perceptuel sans souscrire entièrement à la philosophie "CELP" du dictionnaire adaptatif, en prenant: e(n) =hg (n)*(r(n)-/fi(n -)) ( 10) Dans cette expression, le signal î(n -2)( éventuellement fractionnaire, ê éventuellement extrapolé) est continu au niveau de la frontière du sous- bloc: les points précédant le sous-bloc courant (tq N = O -> N 1) sont les points (e(n -),n e,(n)=hg(n)*i(n) sert à plusieurs analyses LTP. En ce qui concemrne les délais fractionnaires, on utilise la commutabilité des filtres linéaires et on applique le filtre d'interpolation aux échantillons préfiltrés g,,(n) (ceci n'est toutefois pas applicable aux échantillons utilisant un signal ê(n) extrapolé). On va à présent décrire un exemple de réalisation particulièrement intéressant de la présente invention: le dictionnaire D cité précédemment est d'abord présenté en détail L'exploration de ce dictionnaire est présentée avec la procédure accélérée décrite dans le cadre de l'analyse LTP définie ci-dessus. Le module LTP ainsi conçu est intégré à titre d'exemple au dispositif de codage présenté plus haut. Ce dictionnaire a été défini précédemment Les délais y sont du type fractionnaire, de résolution R =p>l 1, ou entiers On peut décrire D de la façon suivante (figure 6): chaque segment Si,i = O 3 de résolution = 23-' est formé des délais %o-I/Rq= 0-l, les délais A O entiers formant un sous-ensemble S de S, comportant ni = 2 f+ 3 éléments: ri- Si O =j O =ui+jlyj=O- O ni vecpi=?_ o±j (en posant N = 0). j=O Un seul filtre d'interpolation H(z) est nécessaire pour l'ensemble du dictionnaire On prend en pratique: h(i) = w(i) sin(izr/ 8) ( 8/ ir), i = -I -> I, w(i) étant une fonction de fenêtrage, et I étant un multiple de 8: I = 8 J On définit les filtres: hç,(j)=h(-I+ 8 j+ 9),j= 0-> 2 J-1 et q= 1,2, 7. Les algorithmes de codage et décodage des délais de ce dictionnaire D sont présentés à la figure 7 et implantés de façon simple à l'aide de décalages et opérateurs logiques, en utilisant la table des quatre valeurs,u (premier délai entier dans chaque segment) Le code décrit ici perturbe l'ordre naturel des délais dans le dictionnaire sans que cela change quoi que ce soit à la description qui précède. 2 = O o-q I 8 ED O o N, q O, 1,7} o:Ao-p Z(iseg) On pose: avec iseg e{O, 1,2,3}=n segment ip' =e 12 'g On a alors: code 2 = liseg( 2 bits), 2 '0 ( 3 +iseg bits), 9 '( 3 iseg bits)l = 8 bits L'analyse LTP utilise le critère modifié calculé à partir de l'équation ( 10) et fait donc intervenir un signal w(n-A)=hg(n)*(n,), n = O > N 1,, éventuellement fractionnaire. On connaît les signaux i(n) et êj(n) pour N Selon les valeurs de,; le calcul de i,(n-,t) fait intervenir l'un des quatre procédés suivants: Délai A = -o entier > N: module ETWO 40 (voir figure 8 A) éw(n-20) est connu. Délai A = Ao entier _N+J: module ETW 2 42 (voir figure 8 C) 2 J-1 w(n A) hg Y (j)ê w(n A + J- j)( 1 j=o Délai 2 = 2 o-9 18 fractionnaire, 20 (N-l-,o +J) j=o (n x) est ensuite obtenu en filtrant,(n-) par Hg(z). Dans ces modules ETW 0, ETW 1, ETW 2, ETW 3 représentés aux figures 8 A, 8 B, 8 C et 8 D, on a: Hg (z) = Thg(i) z-i filtre perceptuel H 9,(z) = hçd(i)z-' filtre polyphasé La recherche s'effectue en deux passes suivant le principe décrit plus haut. Ainsi que mentionné précédemment, le dictionnaire D a l'avantage de permettre (en choisissant a(O)= 8) la coincidence entre l'ensemble des délais explorés dans la première et l'ensemble des délais entiers de D (c'est-à-dire U Si dans la description précédente). i=O La première passe, effectuée uniquement sur les numérateurs N(.o), est très rapide car elle ne fait intervenir aucune opération d'interpolation. Le choix de = N 8 est particulièrement intéressant car il restreint au premier segment de D la nécessité d'extrapoler e(n) dans la première passe. Le module LTP donné ici à titre d'exemple s'intègre au dispositif présenté plus haut comme réalisation particulièrement intéressante de la présente invention. On prend: o?, =N-8 = 24 et J= 2:H(z) est un FIR (filtre à réponse impulsionnelle finie) de longueur 33. Le nombre K(i) de maxima locaux que l'on retient dans chaque segment S$ lors de la première passe de la recherche du délai est indiqué dans la table ci-dessous Ces valeurs résultent de l'observation sur un certain nombre d'échantillons de parole, du nombre de maxima de N( o) qu'il est nécessaire de retenir pour s'assurer de la présence du délai optimal dans leur voisinage. i /Si K(i) 0 1 1 1 2 2 3 1 La procédure complète de recherche du délai dans D sur le présent exemple est décrite dans la figure 9 Les signaux resw(n), iw(n) et e(n) entrent dans le module de recherche 45 On trouve en sortie de ce module 45 le délai A sélectionné et le critère E'(A) associé Sur cette figure 9 on a la notation suivante: A, E'(A): délai A cherché et critère associé lA, E'(A)l*: A et E'(A) sont éventuellement mis à jour. On rappelle 2 =N-8 Les modules P 1 Si,i = O à 3 référencés respectivement 46, 47, 48 et 49 effectuent la première passe de la recherche sur les segments Si Leur fonctionnement détaillé est illustré par la figure 10 Ces modules produisent en sortie K(i),i = O à 3 ( 1 ou 2) valeurs de délais entiers A, sélectionnés et les valeurs d'intercorrélation N(A,) associées. La deuxième passe de la recherche est décrite par les modules P 2 Si, i = O à 3 référencés respectivement 50, 51, 52 et 53 En entrée de ces modules, outre les signaux resw(n),e W(n) et e(n), on trouve les sorties des modules Pl Si correspondants Chaque module P 2 Si effectue la maximisation du critère E'(A) et sort le délai A associé au critère maximum. Les figures 12 A, 12 B, 12 C et 12 D montrent le fonctionnement des modules P 2 Si, qui utilisent les modules de sélection SE Lj, j = O à 3 décrits respectivement par les figures 11 A, 11 B,1 l C et 11 D: -SELO présente les calculs effectués pour un délai entier lorsqu'aucune extrapolation de ew(n) n'est nécessaire; SEL présente les calculs effectués pour un délai entier avec extrapolation de 'w(n); SEL 2 présente les calculs effectués pour un délai fractionnaire lorsqu'aucune extrapolation de Jw(n) n'est nécessaire; -SEL 3 présente les calculs effectués pour un délai fractionnaire avec extrapolation de W,(n). Les modules PS 55 calculent le produit scalaire N'-I ères o(n) e(n O n= O N-i Les modules NORM 56 calculent l'énergie ge_(n-t)2. n=O Les modules COMP 57 calculent E'(A) et sélectionnent A=A si e'() > E'(A) La valeur de délai A issue de la deuxième passe est le délai sélectionné par le module de recherche dans le dictionnaire D. REVENDICATIONS 1 Dispositif de codage et de décodage numériques de la parole comprenant, au codage: un module ( 13) d'analyse LPC (prédiction à court terme) un module ( 15) d'analyse LTP (prédiction à long terme), un module ( 14) de codage de l'onde résiduelle utilisant une méthode d'analyse par synthèse; au décodage: un module de décodage de l'onde résiduelle ( 21), un module de synthèse LTP ( 22) et un module de synthèse LPC ( 23); caractérisé en ce que le module d'analyse LTP utilise un dictionnaire de délais à structure pseudo-logarithmique dans lequel les délais sont rangés en ordre croissant; ce dictionnaire étant constitué de Q segments adjacents, chacun d'une résolution donnée, les résolutions des segments successifs diminuant géométriquement dans un rapport k rationnel tel que k > 1, tandis que le nombre d'éléments L de chaque segment reste constant. 2 Dispositif selon la revendication 1, caractérisé en ce que le dictionnaire des délais est découpé en Q segments adjacents S, (i = O -> Q -1) comprenant chacun L délais; en ce qu'une résolution R, correspond à chaque segment Si, les résolutions des segments successifs décroissant dans un rapport k rationnel donné (k,-= R/ k); en ce qu'on appelle ryi le dernier délai du segment Si, ce segment étant formé des L délais ,%=y,-j/I I,j=L-l->O avec Aj J entiers; en ce que la condition d'adjacence entre segments est assurée par ri, = yr L / i = 1-> Q -1; en ce que 2, étant le dernier délai du dictionnaire et R _I la résolution du dernier segment, un tel dictionnaire est entièrement défini par la donnée des valeurs {Q,L,k, =x,;,R&_i} et la condition RP _ =, EN. 3 Dispositif selon la revendication 1, caractérisé en ce que le dictionnaire des délais est découpé en Q segments adjacents S,(i= O o->QI) comprenant chacun L délais; en ce qu'une résolution k correspond à chaque segment S,, les résolutions des segments successifs décroissant dans un rapport k rationnel donné (R = R-_I /k); en ce qu'on appelle,8 le premier délai du segment Si, ce segment étant formé des L délais: Af.=/+j/ll J=O->L-l avec j R, entiers; en ce que la condition d'adjacence entre segments est assurée par,8 =,_i + L / Ré_ i = 1 -> Q -1; en ce que éQI étant le premier délai du dernier segment et RQ-_ la résolution du dernier segment, un tel dictionnaire est entièrement défini par la donnée des valeurs {Q,L,k,,Q_,RQ _} et la condition RQ_ p Q_, e N. 4 Dispositif selon la revendication 2, caractérisé en ce qu'il utilise le codage suivant du délai LTP: code(, )=L i+ +j', avec Si = { 1 j = yi j /,j = L-1 > O} et j'=L-1 j Dispositif selon la revendication 3, caractérisé en ce qu'il utilise le codage suivant du délai LTP: code( j)=L i+j avec Si ={ 2, =i +j l&, j=O L-} 6 Dispositif selon la revendication 2, caractérisé en ce que dans le dictionnaire pseudo-logarithmique de délais LTP, chaque segment S$,i=O-> 3 de résolution = 23-', est formé des délais -/ R,ç= O O -1, les délais A entiers formant un sous-ensemble Si de Si comportantni = 2 i+ 3 éléments: SO= =i i= i-,ae,=_ +nj (enposantn_,= 0) j=o 7 Procédé d'exploration d'un dictionnaire pseudo- logarithmique de délais LTP selon l'une quelconque des revendications précédentes, caractérisé en ce que dans une première passe, on sélectionne K(i) maxima locaux du critère à maximiser parmi un ensemble restreint de a(i) délais de chaque segment S; et dans une seconde passe, on explore le dictionnaire de manière limitée au voisinage des valeurs sélectionnées dans la première passe. 8 Procédé selon la revendication 7, caractérisé en ce que la taille des segments L étant un multiple de K-l, on choisit pour a(O) la valeur i,-, ou d'un sous-multiple de /ki-, introduisant un espacement régulier des délais explorés dans la première passe. 9 Procédé selon la revendication 7, caractérisé en ce que l'on remplace dans la première passe la maximisation de E'() = N( )2 / D(A), o N(A) et D(A) représentent respectivement le numérateur et le dénominateur du gain optimal associé à chaque délai A, par celle de N( ). Procédé d'exploration d'un dictionnaire pseudo-logarithmique de délais LTP selon la revendication 1, caractérisé en ce qu'on minimise l'énergie en considérant l'expression suivante du signal d'erreur e(n) = hg(n)*(r(n) -,/(n -,)) les points précédant le sous-bloc courant (tels que N éventuellement extrapolé). 11 Procédé d'analyse LTP en boucle fermée avec filtrage perceptuel, caractérisé en ce qu'on minimise l'énergie en considérant l'expression suivante du signal d'erreur: e(n) = hg (n)*(r(n) -/O(n)) les points précédant le sous-bloc courant (tels N éventuellement extrapolé).