Brevet FR2815160A1 — publié le 20020412

PROCEDE ET DISPOSITIF DE CODAGE D'UN SIGNAL AUDIOFREQUENCE La présente invention concerne les méthodes de codage de signaux audiofréquence. Ces méthodes trouvent une application particulière dans des codeurs à analyse par synthèse, dont le type le plus répandu est le codeur CELP ( Code-Excited Linear Prediction ). Les techniques de codage prédictif à analyse par synthèse sont actuellement très répandues pour le codage de la parole en bande téléphonique (300-3400 Hz) à des débits pouvant descendre jusqu'à 8 kbit/s, tout en conservant une qualité téléphonique. Le premier codeur CELP normalisé en 1992 à l'UIT (Union Internationale des Télécommunications) fut le G. 728 utilisant la technique LD-CELP ( Low Delay CELP ). Cette technique permet de réduire le débit dans un rapport 4 par rapport au codage MIC à 64 kbit/s. On trouvera une description des grandes lignes du G. 728 dans l'article A Low-Delay CELP coder for the CCITT 16 kb/s Speech Coding Standard de J. H. Chen et al., publié dans la revue IEEE Journal on Selected Areas on Communication, Vol. 10-5, juin 1992 pages 830-849. Quelques années plus tard, en 1995, l'UIT a normalisé un codeur CELP appelé G. 729, fonctionnant à 8 kbit/s. Cet algorithme comporte au décodeur un filtre de synthèse muni d'un prédicteur à court terme et à long terme ayant pour entrée un signal d'excitation. Au codeur, les prédicteurs à court et long terme sont d'abord calculés par des méthodes du type prédiction linéaire. Une fois connus ces prédicteurs, il est possible de calculer le signal d'excitation par la méthode dite d'analyse-par-synthèse. Les algorithmes utilisés dans le codeur G. 729 sont décrits dans l'article Design and description of CS-ACELP : a toll quality 8 kb/s speech coder"par R. Salami et al., paru dans IEEE Trans. on Speech and Audio Processing, Vol. 6-2, mars 1998, pages 116-130. Plusieurs normes de codage CELP ont, dans leur principe de base, une organisation semblable à celle décrite dans l'article précédent. On peut citer par exemple les normes de communication avec les mobiles GSM 06.60 et GSM 06.90 encore appelée NB-AMR ( Narrowband Adaptive Multi-Rate ), publiées par l'ETSI ( European Telecommunications Standard Institute ) et les annexes D et E du G. 729. Dans les codeurs CELP dont il a été fait mention précédemment, le signal d'excitation est modélisé par une forme d'onde issue d'un dictionnaire CB (CodeBook en anglais) et remise à la bonne échelle par multiplication par un facteur de gain. L'efficacité du codage CELP consiste à utiliser dans le processus d'analyse par synthèse une réplique du modèle de synthèse du décodeur pour la sélection du signal d'excitation : pour chaque forme d'onde d'indice i du répertoire de modèles d'excitation, on évalue le signal synthétique en sortie du modèle de synthèse, et on retient finalement comme signal d'excitation à transmettre celui qui permet de se rapprocher au mieux du signal à coder suivant un critère d'erreur perceptuelle. En séparant la contribution du passé ( zero input response ) de la synthèse avec des conditions initiales nulles ( zero memory response ), le critère d'erreur perceptuelle E (i) à minimiser peut être écrit à partir des signaux dans le domaine temporel, pour i = 0, 1,.... NC-1 : E (i) = t-g (i). H. U, (1) où : t est le vecteur cible de dimension L à modéliser ; g (i) est le gain de la forme d'onde ; H est la matrice de filtrage associée au filtre H (z) combinant le filtre de pondération perceptuelle W (z) et les filtres de synthèse à long terme 1/ (1-b. z-T) et à court terme 1/A (z) : H (z) =,---- (2) (l-b. z-T). A (z) U, est la forme d'onde d'indice i issue du dictionnaire CB dit répertoire de formes d'onde ; NC le nombre de formes d'onde du dictionnaire. La matrice de filtrage H peut s'exprimer en fonction de la réponse impulsionnelle ho,h1,..., hL-1 sur L échantillons du filtre de fonction de transfert H (z) : L'équation (1) montre que la minimisation du critère CELP revient à une quantification vectorielle avec un critère d'erreur pondérée. La plupart des codeurs CELP actuels comportent un mécanisme de ce type pour la sélection du signal d'excitation. Les calculs menés pour aboutir à ce critère d'erreur perceptuelle sont décrits dans l'article Le traitement du signal vocal par P. Combescure et al., paru dans les Annales des Télécommunications, vol. 50-1, 1995, pages 142-164. La taille L des échantillons du dictionnaire varie de quelques échantillons (5 pour le G. 728) à quelques dizaines (40 pour le G. 729). Le nombre Ne de formes d'onde du dictionnaire peut être codé sur un nombre de bits ayant couramment des valeurs de 4 à quelques dizaines. Dans le cas où ce nombre dépasse la dizaine, il faut faire appel à des méthodes de recherche focalisée ( focussed search ) comme c'est le cas pour le codeur G. 729 et les codeurs de la famille ACELP ( Algebraic CELP) pour laquelle le vecteur d'excitation est formé de quelques impulsions non nulles. En dérivant le critère d'erreur perceptuelle par rapport à g (i), on obtient la valeur optimale du gain g (i) : ar, Num (i) tT. H. U Den (i) UT. HT. H. Uj 1 En remplaçant g (i) par sa valeur dans le critère, l'index lept de la forme d'onde optimale, à transmettre au décodeur, sera tel que le critère CELP suivant soit minimum : Den (i) (5) NC est le nombre de vecteurs du dictionnaire, donc le nombre de recherches à effectuer. Le gain optimal g (lopt) correspondant à l'indice optimal sera quantifié et sa valeur p sera transmise. En fait la minimisation de E (i) est équivalente à maximiser le terme : Crit (i) = f (6) Den (i) (6) Pour éviter les divisions, il est aussi possible d'effectuer une boucle de recherche par itération sur les indices i, par exemple initialisée par i = lopt = 0, chaque itération i consistant à remplacer te par i si [Num (l t)] 2. Den (i) et à stocker les quantités [Num (loft) 2 et Den (lopt), avant d'incrémenter i. Cette façon de procéder permet d'aboutir à différentes structures similaires dont on trouvera quelques exemples dans les normes et GSM et UIT précitées. Dans la pratique, pour que la méthode précédente de sélection du signal d'excitation reste d'une complexité raisonnable, il est fait appel à des dictionnaires particuliers dont l'organisation permet de réduire la complexité de recherche de la forme d'onde optimale. Parmi ces dictionnaires on peut citer les dictionnaires ACELP constitués d'un faible nombre d'impulsions par bloc d'échantillons (pour le G. 729, typiquement 5 impulsions non nulles par bloc de 40 échantillons de signal d'excitation). On peut aussi citer l'excitation VSELP ( Vector Sum Excited Linear Prediction ) constituée de codes binaires de Gray utilisés pour modéliser le signal d'excitation dans la norme GSM 06.20 et dont le principe est décrit dans l'article Vector Sum Excited Linear Prédiction (VSELP) : speech coding at 8 bops par LA. Gerson et al., paru dans les actes de la conférence ICASSP, 1990, pages 461-464. Les codes binaires naturels ont aussi été utilisés, comme décrit dans l'article A robust and fast CELP coder at 16 kbit/s , par A. Le Guyader et al., paru dans le revue Speech Communication, vol. 7,1988, pages 217-226. Dans le codeur G. 728 normalisé à l'UIT, le signal d'excitation est codé sur 10 bits pour chaque vecteur de 5 échantillons avec la répartition suivante : 2 bits pour le gain g (i) et 8 bits pour l'excitation ou forme d'onde Uj (NC = 256). Dans ce cas, le pourcentage du débit pris par le gain est de 20 %, ce qui est important et encore le gain a-t-il été quantifié sur trop peu de bits. Les effets de cette mauvaise quantification sont compensés par la richesse du dictionnaire au prix d'un débit important. Une autre approche consiste à prendre des blocs plus longs, par exemple de 10 échantillons, et de quantifier le gain correctement sur 3 ou 4 bits. Il restera alors dans notre exemple 16 bits pour quantifier les formes d'onde. Dans ce cas, il y aura 216 recherches d'analyse-par-synthèse à effectuer pour chaque vecteur comme indiqué précédemment. Sachant qu'avec les composants actuels, un nombre de recherches d'au plus de quelques milliers est raisonnable, il n'est pas possible de s'offrir les 216 recherches nécessitant chacune le calcul des quantités Num (i) et Den (i) de la relation (6). Dans les cas où l'on veut modéliser des signaux de parole éventuellement bruités avec des débits proches de 1 bit/échantillon, les méthodes classiques s'avèrent difficiles à mettre en oeuvre. Si nous prenons pour exemple un vecteur d'excitation de longueur L = 20 avec 3 bits pour le gain et 16 bits par les formes d'onde, nous sommes de nouveau ramenés au cas précédent : la complexité des 216 recherches est prohibitive si on utilise les méthodes classiques. Dans le codeur décrit dans le brevet US 5 274 741, le signal d'excitation est issu de plusieurs dictionnaires dont les formes d'onde sont constituées de morceaux non nuls, suivis et/ou précédés de blocs ayant des valeurs nulles. Cette façon de définir le dictionnaire permet de faire la recherche en utilisant une procédure identique de recherche pour tous les dictionnaires. En fait, le signal d'excitation est vu dans ce cas comme provenant de la somme de forme d'ondes issues de différents dictionnaires, certaines régions des dictionnaires étant constituées de valeurs nulles. Un inconvénient est que le fait de ne pas tenir compte de la présence des valeurs nulles dans les dictionnaires conduit à une surcharge de calculs. De plus, la minimisation se fait ici sur la longueur du signal d'excitation, même aux endroits où le dictionnaire comporte des blocs de valeurs nulles. Dans le procédé de minimisation séquentielle, ces endroits contribuent de façon significative à l'erreur finale bien que l'on ne connaisse pas encore le bloc de signal d'excitation. Ceci est largement sous-optimal. Dans le codeur décrit dans le brevet US 5621 852, le signal d'excitation d'un codeur CELP est une somme de deux formes d'onde issues de deux dictionnaires, à laquelle est appliquée un seul gain. La minimisation se fait également sur la longueur du signal d'excitation, qui est celle des formes d'ondes additionnées. Il n'y a pas de partitionnement comme dans le brevet US 5 274 741. Un but de l'invention est de proposer une modélisation de l'excitation dans un codeur de type CELP ou analogue et des traitements de complexité raisonnable pour réaliser un codage efficace de signaux audiofréquence. L'invention propose ainsi un procédé de codage d'un signal audiofréquence numérisé en trames successives de L échantillons, comprenant les étapes suivantes : - détermination adaptative de paramètres de synthèse définissant des filtres de synthèse ; - détermination adaptative de paramètres d'excitation définissant un signal d'excitation à appliquer aux filtres de synthèse pour produire un signal synthétique représentatif du signal audiofréquence, en minimisant l'énergie d'un signal d'erreur résultant du filtrage de la différence entre le signal audiofréquence et le signal synthétique par au moins un filtre de pondération perceptuelle ; et - production de valeurs de quantification représentatives des paramètres déterminés, dans lequel les paramètres d'excitation incluent, pour certaines au moins des trames, une forme d'onde de L échantillons associée à un gain, ledit signal d'excitation relatif à la trame résultant de la multiplication de la forme d'onde de L échantillons par le gain associé, la forme d'onde étant constituée d'un nombre K, plus grand que 1, de segments juxtaposés selon une partition déterminée de la trame et issus de dictionnaires respectifs, le k-ième segment étant constitué de Lk échantillons pour 1 impulsionnelle ho,h,....hj d'un filtre composé des filtres de synthèse et d'un filtre de pondération perceptuelle ; /c/précalcul de vecteurs Vk, k, et de matrices Mk, k', k" pour des entiers k, k' = tT. H et et k"tels que 1 k-1 Ak = 1 Lk-et Hk, k (q, r) = 0 si q transposition ; Idl sélection d'au moins un segment issu du dictionnaire relatif au premier segment, par maximisation d'un critère de la forme : Crit1 (i1) = L D 5 (8) Denl (il) où : Num1 (i1) =V. U1 i (9) T Den1 (i1) =UlJ. Mii. U1, i (10) et U1 j désigne un segment d'indice i1 du premier dictionnaire, et les étapes/e/et/f/suivantes pour k allant de 2 à K : leI pour chaque (k-1)-uplet de segments U1i,..., Uki (k-1) [n] venant d'être sélectionné, calcul de nombres FN [n] et FD [n] et d'un vecteur C [n] de la forme : if sélection d'au moins un k-uplet de segments respectivement issus des k dictionnaires relatifs aux segments 1 à k, dont les k-1 premiers segments Ulr,....Ukj proviennent d'un (k-1)-uplet précédemment sélectionné, par maximisation d'un critère de la forme : Crit, (i1 [n],..., i (k-1) [n], ik) =. '''''''' Denk ('l [n],.... i (k-1) []'k) où : Numk (i1[n],..., i (k-1) [n], ik) = FN [n] + Vk, k. Ukik (15) T Denk (i1 [n],.... i (k-1) [n], ik) = FD [n] + C [n]. Ukik + UkJ. Mk, k, k-Ukjk (16) et Ukik désigne un segment d'indice ik du k-ième dictionnaire, la forme d'onde retenue pour la trame étant constituée d'un K-uplet de segments sélectionné à l'étape Ifl pour k = K. Ce procédé permet de modéliser le signal d'excitation par des segments de forme d'onde juxtaposés, de façon que la forme d'onde globale puisse être vue comme un forme d'onde partitionnée en blocs successifs. Grâce à ce partitionnement, on peut adopter de nouvelles méthodes de calcul de l'excitation, en se ramenant à une complexité raisonnable. La recherche de l'excitation procède par optimisation séquentielle et progressive sur la longueur des segments successifs de la forme d'onde. Le gain de complexité permet de proposer des dictionnaires de taille importante en juxtaposant des dictionnaires de taille raisonnable (typiquement : g 210 recherches), ce qui se traduit par une meilleure modélisation du signal d'excitation donc une qualité d'écoute supérieure. Dans le cas de dictionnaires structurés (binaires, ACELP,...), le procédé permet de tirer parti de la structure des dictionnaires pour diminuer de façon encore plus nette la charge de calcul à réaliser pour l'implantation. Dans les boucles de recherche de la forme d'onde optimale, les quantités essentielles sont calculées par des algorithmes rapides en dehors de ces boucles. De façon générale, les calculs décrits par la suite sont agencés, dans leur forme optimale, de sorte que le maximum de calcul soit fait à l'extérieur des boucles de recherche de la forme d'onde optimale. Les dictionnaires structurés sont souvent engendrés au moyen de matrices de transformation. Dans ce cas, pour 1 # k # K, chaque segment de Lk échantillons du dictionnaire relatif au k-ième segment de la partition des trames est le produit d'une matrice de transformation prédéfinie Fk de Lk lignes et nck colonnes par un code respectif de nck échantillons appartenant à un répertoire engendrant le dictionnaire, nck étant un entier plus petit que Lk. La détermination des paramètres d'excitation pour au moins une trame de signal comporte alors les étapes suivantes : laI calcul du vecteur-cible de L échantillons à partir de la trame de signal et des paramètres déterminés pour au moins une trame précédente ; Ibl calcul, sur une longueur de L échantillons, de la réponse impulsionnelle du filtre composé ; /c7 précalcul de vecteurs Vk, k, et de matrices mk, k', k" pour des entiers k, k' = tT et k"tels que 1 k" k' k Mk, k', k" ='T ?'-Hk, k"-k, k'-k' ! /d7 sélection d'au moins un code issu du répertoire relatif au premier segment, par maximisation d'un critère de la forme : Crit, ( ! 1) = "') f (8) Denl (il) où : Num1 (i1) = V1, 1. 1ji (17) T Den1 (i1) = C1. Mm. C1i1 (18) et Cl il désigne un code d'indice i1 du premier répertoire, et ! es étapes/e'/et/f/suivantes pour k allant de 2 à K : le'l pour chaque (k-1) -uplet de codes C1ir,..., Cki (k-1) [n] venant d'être sélectionné, calcul de nombres FN [n] et FD [n] et d'un vecteur C [n] de la forme : ifs sélection d'au moins un k-uplet de codes respectivement issus des k répertoires relatifs aux segments 1 à k, dont les k-1 premiers codes C1jn],..., Cki (k-1) [n] proviennent d'un (k-1)-uplet précédemment sélectionné, par maximisation d'un critère de la forme : Crit iirm ik 1n1 ik- [Numk (i1 [n],..., i (k-1) [n], ik) F rlkl n,..., 1 n, 1 D ('1[]' (k-1) []'k) où : Numk () 1 [n],..., i (k-1) [n], ik) = FN [n] + VCkik (22) T Deni1 [n],.... i (k-1) [n], ik) = FD [n] + C [n]. Ckjk + CkJ. Mk, k, k-Ckjk (23) et Ckjk désigne un code d'indice ik du k-ième répertoire, la forme d'onde retenue pour la trame étant constituée d'un K-uplet de segments respectivement obtenus à partir d'un K-uplet de codes sélectionné à l'étape Ifl pour k = K. Un autre aspect de la présente invention se rapporte à un codeur de signal audiofréquence comportant des moyens adaptés à la mise en oeuvre d'un procédé tel que défini ci-dessus. D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après d'exemples de réalisation non limitatifs, en référence aux dessins annexés, dans lesquels : - les figures 1 et 2 sont des schémas synoptiques d'un décodeur et d'un codeur CELP pouvant mettre en oeuvre l'invention ; - les figures 3 et 4 sont des organigrammes de procédures de recherche du vecteur d'excitation utilisables dans un codeur selon la figure 2. L'invention est décrite ci-après dans son application à un codeur de parole de type CELP. Le processus de synthèse de parole mis en oeuvre dans un codeur et un décodeur CELP est illustré sur la figure 1. Un générateur d'excitation 10 délivre une forme d'onde d'excitation uil, zu iK de L échantillons notés U, i2 K (n), appartenant à un répertoire prédéterminé en réponse à un index élaboré au codeur. Dans le cas présent, cet index est un index composite forme de K entiers i1, i2,..., iK (K2), le répertoire étant constitué en juxtaposant par blocs K dictionnaires prédéterminés CB1, CB2,..., CBK. La forme d'onde d'excitation U, i2,.... iK est ainsi décomposée en segments respectifs Ul il, U2i2,..., UKIK de LI, L2,..., LK échantillons appartenant aux K dictionnaires élémentaires (LL2 +... +LK = L) : avec, pour 1 Les K dictionnaires Cl1..... CBK d'où sont extraits les segments Ulil, U2i2,.... UKIK peuvent être de dimension différente (Lk :/ ; pour k k'). Le dictionnaire CBk (1 k K) se compose de NCk segments distincts indexés par l'entier ik avec 1 ik NC = NC1 x NC2 x... x NCK. Un amplificateur 12 multiplie la forme d'onde U, zu iK par un gain d'excitation ss, et le signal résultant est soumis à un filtre 14 de synthèse à long terme. Le signal de sortie u du filtre 14 est à son tour soumis à un filtre 16 de synthèse à court terme, dont la sortie s constitue ce qu'on considère ici comme le signal de parole synthétisé. Bien entendu, d'autres filtres peuvent également être mis en oeuvre au niveau du décodeur, par exemple des post-filtres, comme il est bien connu dans le domaine du codage de la parole. Les signaux précités sont des signaux numériques représentés par exemple par des mots de 16 bits à une cadence d'échantillonnage Fe égale par exemple à 8 kHz. Les filtres de synthèse 14,16 sont en général des filtres purement récursifs. Le filtre 14 de synthèse à long terme a typiquement une fonction de transfert de la forme 1/B (z) avec B (z) = 1-b. z-T. Le retard T et le gain b constituent des paramètres de prédiction à long terme (LTP) qui sont déterminés d'une manière adaptative par le codeur. Les paramètres LPC du filtre 16 de synthèse à court terme sont déterminés au codeur par une prédiction linéaire du signal de parole. La fonction de transfert du filtre 16 est ainsi de la forme 1/A (z) avec : dans le cas d'une prédiction linéaire d'ordre p (pu 10 typiquement), ai représentant le i-ième coefficient de prédiction linéaire. Le signal u (n) appliqué au filtre de synthèse à court terme 14 comporte une composante LTP b. u (n-T) et une composante résiduelle, ou séquence d'innovation, ss. U, i2 K (n). Dans un codeur à analyse-par-synthèse, les paramètres caractérisant la composante résiduelle et, optionnellement, la composante LTP sont évalués en boucle fermée, en utilisant un filtre de pondération perceptuelle. La figure 2 montre le schéma d'un codeur CELP. Le signal de parole s (n) est un signal numérique, par exemple fourni par un convertisseur analogique-numérique 20 traitant le signal de sortie amplifié et filtré d'un microphone 22. Le signal s (n) est numérisé en trames successives de NT échantillons elles-mêmes divisées en sous-trames, ou trames d'excitation, de L échantillons d'excitation (par exemple NT = 320, L = 32). Les paramètres LPC, LTP et EXC (index i1, i2,..., iK et gain d'excitation ss) sont obtenus au niveau du codeur par trois modules d'analyse respectifs 24,26, 28. Ces paramètres sont ensuite quantifiés de façon connue en vue d'une transmission numérique efficace, puis soumis à un multiplexeur 30 qui forme le signal de sortie du codeur. Ces paramètres sont également fournis à un module 32 de calcul d'états initiaux de certains filtres du codeur. Ce module 32 comprend essentiellement une chaîne de décodage telle que celle représentée sur la figure 1. Comme le décodeur, le module 32 opère sur la base des paramètres LPC, LTP et EXC quantifiés. Si une interpolation des paramètres LPC est effectuée au décodeur, comme il est courant, la même interpolation est effectuée par le module 32. En l'absence d'erreurs de transmission, le module 32 permet de connaître au niveau du codeur les états antérieurs des filtres de synthèse 14,16 du décodeur, déterminés en fonction des paramètres de synthèse et d'excitation antérieurs à la sous-trame considérée. Dans une première étape du processus de codage, le module 24 d'analyse à court terme détermine les paramètres LPC (coefficients ai du filtre de synthèse à court terme) en analysant les corrélations à court terme du signal de parole s (n). Cette détermination est effectuée par exemple une fois par trame de NT échantillons, de manière à s'adapter à l'évolution du contenu spectral du signal de parole. Les méthodes d'analyse LPC sont bien connues dans la technique. On pourra par exemple se reporter à l'ouvrage Digital Processing of Speech Signals de L. R. Rabiner et R. W. Shafer, Prentice-Hall Int., 1978. La quantification des paramètres LPC peut être effectuée sur les coefficients ai directement, ou sur d'autres paramètres auxquels ils sont liés tels que des coefficients de réflexion, des log-area-ratio LAR, des paramètres de raies spectrales (LSP pour line spectrum parameters, ou LSF pour line spectrum frequencies ), ainsi qu'il est usuel dans les techniques de codage audio. Un exemple de module 24 est décrit dans la norme G. 729 publiée par t'UtT. L'étape suivante du codage consiste en la détermination des paramètres LTP de prédiction à long terme. Ceux-ci sont par exemple déterminés une fois par sous-trame de L échantillons. Un soustracteur 34 soustrait du signal de parole s (n) la réponse à un signal d'entrée nul du filtre de synthèse à court terme 16. Cette réponse est déterminée par un filtre 36 de fonction de transfert 1/A (z) dont les coefficients sont donnés par les paramètres LPC qui ont été déterminés par le module 24, et dont les états initiaux s sont fournis par le module 32 de façon à correspondre aux Mp derniers échantillons du signal synthétique. Le signal de sortie du soustracteur 34 est soumis à un filtre 38 de pondération perceptuelle dont le rôle est d'accentuer les portions du spectre où les erreurs sont les plus perceptibles, c'est-à-dire les zones inter-formantiques. La fonction de transfert W (z) du filtre de pondération perceptuelle est de la forme générale : W (z) = AN (z)/Ap (z), où AN (z) et Ap (z) sont des fonctions de transfert d'ordre Mp de type réponse impulsionnelle finie (RIF) calculées à partir de A (z), par exemple AN (z) = A (z/yi) et Ap (z) = A (z/y2), Y1 et Y2 étant deux coefficients tels que 0 Y2 Y 1 1 (Mp = p). L'analyse LTP en boucle fermée effectuée par le module 26 consiste, de façon classique, à sélectionner pour chaque sous-trame le retard T qui maximise la corrélation normalisée : où x' (n) désigne le signal de sortie du filtre 38 pendant la sous-trame considérée, et yT (n) désigne le produit de convolution SL (n-T) *h' (n). Dans l'expression ci-dessus, h' (0), h' (1),..., h' (L-1) désigne la réponse impulsionnelle du filtre de synthèse pondéré, de fonction de transfert W (z) /A (z). Cette réponse impulsionnelle h'est obtenue par un module 40 de calcul de réponses impulsionnelles, en fonction des paramètres LPC qui ont été déterminés pour la sous-trame, le cas échéant après quantification et interpolation. Les échantillons SL TP (n- T) sont les états antérieurs du filtre 14 de synthèse à long terme, fournis par le module 32. Pour les retards T inférieurs à la longueur d'une sous-trame, les échantillons manquants SL TP (n- T) sont obtenus par interpolation sur la base des échantillons antérieurs, ou à partir du signal de parole résiduel. Les retards T, entiers ou fractionnaires, sont sélectionnés dans une fenêtre déterminée. Pour réduire la plage de recherche en boucle fermée, et donc pour réduire le nombre de convolutions YT (n) à calculer, on peut d'abord déterminer un retard T'en boucle ouverte par exemple une fois par trame, puis sélectionner les retards en boucle fermée pour chaque sous-trame dans un intervalle réduit autour de T'. La recherche en boucle ouverte consiste plus simplement à déterminer le retard T'qui maximise l'autocorrélation du signal de parole s (n) éventuellement filtré par le filtre inverse de fonction de transfert A (z). Une fois que le retard T a été déterminé, le gain gp de prédiction à long terme est obtenu par : Ce gain gLTp est quantifié, et sa valeur quantifiée b est transmise au décodeur dans les paramètres LTP. Pour rechercher l'excitation CELP relative à une sous-trame, le signal b. yT (n), qui a été calculé par le module 26 pour le retard optimal T, est d'abord soustrait du signal x' (n) par le soustracteur 42. Le signal résultant t (n) est appelé cible (target), et noté vectoriellement t dans la relation (1). La réponse impulsionnelle ho, h1,..., h du filtre composé des filtres de synthèse et du filtre de pondération perceptuelle (cf. relation (2) et (3)), est calculée par le module 40. En fonction de cette réponse impulsionnelle et de la cible t, le module 28 de recherche de l'excitation CELP détermine les paramètres EXC qui seront communiqués au décodeur, c'est-à-dire l'index composite i1, i2,..., iK et le gain d'excitation quantifié ss. En référence à la figure 1, le décodeur CELP comprend un démultiplexeur 8 recevant le flux binaire issu du codeur. Les valeurs quantifiées des paramètres d'excitation EXC et des paramètres de synthèse LTP et LPC sont fournies au générateur 10, à l'amplificateur 12 et aux filtres 14,16 pour reconstituer le signal synthétique s, qui peut par exemple être converti en analogique par le convertisseur 18 avant d'être amplifié puis appliqué à un haut-parleur 19 pour restituer la parole originale. On va maintenant décrire le fonctionnement du module 28 du codeur de la figure 2. Le critère d'erreur à minimiser E (i1, i2,.... iK) s'exprime en fonction de l'index composite i1, i2,.... iK et du gain associé g (i1, i2,.... iK) : t (O) t1 - où le vecteur cible t = =--a été décomposé selon la même t (L-1) tK partition que la forme d'onde d'excitation , de la relation (24), c'est-à- tk (O) tk (1) dire tk = avec tk (q) = t (Ak+q) pour 0 s q est de même de la matrice de réponse impulsion ne lie H : Hk k' (O. O) Hk. (0, 1)... Hk' (O, L,-1) HH. (1, 0) H. (1, 1)-.. : k, k'-n k . Hk, k' (Lk-2, Lkl-1) Hk, (Lk-1. 0)... Hk, k. (Lk-1, L,.-1) lignes et Lk'colonnes dont le terme situé à la (q+1)-ième ligne et à la (r+1)-ième colonne (0 q On remarque que la matrice de filtrage H est une matrice particulière, puisque les termes des parallèles à la diagonale principale sont égaux : c'est une matrice dite de Toeplitz. De plus, la partie supérieure de la matrice H est nulle. Ces remarques conduisent aux égalités suivantes : pour1 dont le module 28 tire profit pour accélérer les calculs nécessaires à la détermination des indices optimaux à transmettre. Le gain optimal g(i1,i2,...,iK) est obtenu en prenant la dérivée de E (i1, i2,.... iK) par rapport au gain : Les indices des formes d'onde optimales Ikopt (1 k k : g K) sont obtenus lorsque le critère d'erreur E (i1, i2,.... iK) est minimal ou, de façon équivalente, en maximisant : Dans ce cas, le critère Crit (i1, i2,.... iK) est maximisé pour l'ensemble des NC = NC1 x NC2 x... x NCK formes d'onde, ce qui oblige à prendre des valeurs de NCk correspondant à un nombre de bits d'au plus quelques unités si l'on veut que la complexité reste raisonnable pour une implantation sur les circuits processeurs de signal actuels. Cependant, pour une réalisation de complexité minimale, le module 28 peut tirer parti du fait qu'il n'est pas nécessaire de tout recalculer dans les boucles de recherche sur les formes d'onde. Dans ce qui suit, on décrit un processus de recherche optimale de l'excitation CELP, dans le cas où K = 2 afin d'alléger les notations. Dans les équations donnant Num (i1, i2) et Den (i1, i2), toutes les quantités qui ne sont pas fonction des index i1 et i2 peuvent être calculées une fois pour toutes à l'extérieur des boucles de recherche. Ceci est mis en évidence en réécrivant Num (i1, i2) et Den (i1, i2) : Num (i1, i2) = (V11 +V21). U1i1 +V22. U2i2 (37) Den (il, i2) = M2, 1, 1 lU1ir + 2. U1i1. M2 2 1 U2i2 + U2i2T M2 2 2 U2i2 1 1 2 M2, 2, 2-U2i2 (38) avec : v = tT. H (39) 1'l 1 1, 1 v = tT. H (40) 2, 1 2 2, 1 V2. 2=. H2. 2 (41) 2, 2 2 2, 2 M1, 1. 1 = Hj. H (42) 1, 1, 1 1, 1 T. H (43) M2. 1. 1 = H2, 1H2, (43) m = H TH (44) 2. 2. 1 = H2J. H2. 2 (44) T M2 2, 2=2 2-2, 2 (45) Les vecteurs-lignes (V+V) et V 2 et les matrices (mol, 1, 1 + M2, 1, 1)' (2. M2, 2, 1) et M2, 2, 2 sont calculés une fois pour toutes avant de procéder à la boucle de recherche. De plus, le seul produit scalaire dans les relations (21) et (22) qui soit à calculer NC1 x NC2 fois est le second terme de Den (i1, i2), les autres étant calculables dans une boucle à un seul indice. L'organigramme de la Figure 3 décrit le séquencement des calculs de la recherche simultanée (optimale) des indices i1 et i2 dans les deux dictionnaires CB1 et CB2. A l'étape préliminaire 50, les vecteurs (V-+V2, 1) et V2, et les matrices (M + M2, 1, 1),(2.M. 1) et M2, 2, 2 sont précalculés selon les relations (39) à (45) en fonction de la réponse impulsionnelle ho,h1,..., hL-1 et de la cible t, et l'un des indices (i1 dans l'illustration) est initialisé à 1. Dans la boucle suivante (étape 51), les termes P1 (i1) = (V1, 1 + V2, 1), U1i1 et D1 (i1) = UlJ. (tv) 1)-Uli, sont calculés, de même que le vecteur-ligne Dl (il) = Ul T (Ml @l @l C (il) = 2. Ul T. m il 2, 2, 1. Cette étape 51 est exécutée pour chaque valeur de i1 comprise entre 1 et NC1 (étapes 52-53). Quand i1 = NC1 au test 52, le module 28 commence la recherche de la forme d'onde optimale à l'étape 54 : l'indice i2 est initialisé à 1 et les nombres Nopt et D sont initialisés pour représenter un quotient Npt/D arbitrairement petit. Cette recherche comprend une double boucle sur les indices i1 et i2. Dans la boucle externe, à l'étape 55, les termes P2 (i2) = V2, 2. U2i2 et T D2 (i2) = U2j. M2, 2, 2, U2i2 sont calculés, et l'indice i1 est pris égal à 1 pour initialiser la boucle interne. Celle-ci commence à l'étape 56 par le calcul du terme croisé D3 = C (i1). U2i2. A l'étape suivante 57, le numérateur NNum et le dénominateur Den du critère à maximiser sont calculés selon NNum= [P1 (i1) +P2 (i2)] 2 et Den = D1 (i1) + D2 (i2) + D3, puis ce critère est comparé au précédent optimum, sans effectuer de division, à l'étape 58. Si Nope. Den L'incrémentation de i2 à l'étape 63 fait revenir à l'étape 55 pour l'examen du segment suivant du dictionnaire CB2. La recherche est terminée quand i2 = NC2 au test 62. Le module 28 détermine alors le gain à l'étape 64 selon la relation (33), c'est-à-dire g ('1opt, 12opt) = [P1 (11opt) + P2 (12opt)]/D, p, Lorsque les dictionnaires ont une structure particulière il est également possible d'utiliser leurs propriétés pour accélérer les calculs. En particulier le calcul des termes P1 (i1), P2 (i2), D1 (i1), D2 (i2) et D3 peut être accéléré par des algorithmes rapides connus de l'homme du métier dans le cas de dictionnaires binaires. La procédure selon la figure 3 nécessite une double boucle sur les indices i1 et i2 (K boucles imbriquées dans le cas général), ce qui est relativement consommateur de puissance de calcul. L'invention propose des méthodes de recherche légèrement sous-optimales qui permettent de résoudre ce problème avec une complexité moindre, de l'ordre de la taille d'un dictionnaire. On peut ainsi procéder en K phases. La figure 4 illustre le cas particulier où K = 2. A l'étape préliminaire 70, les vecteurs-ligne Vk, k' = -k, k') et les matrices vk. k"= (Hk, ..Hk, k'), qui correspondent à ceux des équations (39) à (45) quand K = 2, sont précalculés pour 1 # k" # k' # k # K. Dans la première phase 71, les N1 meilleurs candidats du premier dictionnaire CB1 sont sélectionnés en maximisant le critère Crit1 (i1) de la relation (8) sur le premier segment du partitionnement, N1 étant un nombre supérieur ou égal à 1. Cette relation (8) est identique à (6) en ne tenant compte que de la longueur du premier segment de la forme d'onde d'excitation, c'est-à-dire de L1 échantillons. Les produits scalaires requièrent donc sensiblement moins de multiplications. Les N1 indices i1 pour lesquels Crit1(i1) prend les plus grandes valeurs sont notés i1 [1] à i1 [N1]. Pour chaque candidat i1 [n] retenu (1 S ; n s ; N1), le module 28 calcule, à l'étape 72, les quantités FN [n] et FD [n] et le vecteur-ligne CjD] suivants à partir des numérateur et dénominateur obtenus selon les relations (9) et (10) dans la phase de recherche 71 et de la forme d'onde correspondante U 1 i du dictionnaire CB1 : FN [n] =Num., (i1 [n]) +V. U1, (46) FD [n] = Den1 (i1 [n]) + U1, . M.,. U1j (47) il [n] *M2, 1, 1-Ulil [n] C [n] = U1. (2. Mi) (48) il [n]-M2, 2, 1) Ces relations (46) à (48) correspondent aux relations (11) à (13) pour k = 2. Dans une deuxième phase, pour chacun des candidats n sélectionnés dans la première phase 71 (1 : s n : s N1), le module 28 maximise le critère Crit2 (i1 [n], i2) pour l'ensemble des formes d'onde du second dictionnaire CB2 : avec : Numil [n], i2) = FN [n] + V2, 2. U2, 2 (50) Den2 (i1 [n], i2) = FD [n] + C [n]. U2 + U2j. M 2 2-2, 2 (51) i2 2 2, 2, 2- U2 Ces relations (49) à (51) correspondent aux relations (14) à (16) pour k = 2. Si K = 2, le module 28 sélectionne le couple d'indices i1 [n], i2 tel que Crit2 (i1 [n], i2) soit maximal. Le gain correspondant g (i1 [n], i2) est pris égal à Den2 =,-.'''. avant d'être quantifié de façon connue en soi. Den2 ('l [n], i2) La deuxième phase est représentée par la double boucle 73-83 sur la figure 4 (c'est une boucle simple si N1 = 1). Au démarrage 73 de la boucle externe, la variable Critopt est initialisée à 0 et l'index i2 du deuxième segment T à 1. Les termes V2, 2. U2i2 et U2j. 2, 2. U2i2 des relations (50) et (51), qui ne dépendent pas du candidat n, sont d'abord calculés à l'étape 74. Ceci est T généralisable pour K quelconque : les termes Vk, k.Ukik et Uk.Mk, k. Ukik des relations (15) et (16) sont calculables avant d'examiner les N (k-1) candidats ( (k-1)-uplets) précédemment sélectionnés (2kK), ce qui évite d'avoir à refaire les produits matriciels dans chaque itération de la boucle interne. Au démarrage 75 de la boucle interne, l'index n du candidat pour le premier segment est initialisé à 1. Dans chaque itération de cette boucle interne, le module 28 calcule les termes Num2 et Den2 des relations selon (50) et (51) à l'étape 76, puis le quotient Crit = Num2 1 Den2 à l'étape 77. Si Crit2 (i1 [n], i2) > CritQpt (test 78), les indices courants i1 [n] et i2 sont affectés aux indices 11opt et 12opt à l'étape 79, et Crit. est remplacée par Crit = Crit2 (i1 [n], i2). Ensuite, ou si Crit2 (i1 [n], i2) s Critpt, le test 80 de fin de boucle interne (sur n) est effectué. L'incrémentation de n à l'étape 81 fait revenir à l'étape 76 pour l'examen du segment candidat suivant du dictionnaire CB1. Quand n = N1 au test 80, le test 82 de fin de boucle externe (sur i2) est effectué. L'incrémentation de i2 à l'étape 83 fait revenir à l'étape 75 pour l'examen du segment suivant du dictionnaire CB2. La recherche est terminée quand i2 = NC2 au test 82. Le module 28 détermine alors le gain à l'étape 84 selon la relation (33), c'est-à-dire g ('''opt, 12opt) = Num2 iopt, 12opt)/Den2lopt, 12). Si K > 2, le processus est réitéré. Au début de la k-ième phase avec 1 La recherche est terminée quand k = K (avec NK = 1). Le module 28 sélectionne le K-uplet d'indices tel que CritK (i1 [n],..., i (k-1) [n], ik) soit maximal. Le gain correspondant est pris égal à NumK () 1 [n], t2 [n],...,) (k-1) [n],) k)., ....... r DenK =.-',.',.-,,.,,,,,', avant d'être quantifié de façon connue en soi. Den1 [n],) 2 [n],...,) (k-1 n,) k -" A chaque phase k (1 des produits scalaires de vecteurs de dimension Lk. L'optimisation porte donc exclusivement sur le segment de rang k du partitionnement des formes d'onde. On peut se dispenser de considérer l'influence du segment k sur les segments précédents car elle est nulle à cause de la structure de Toeplitz de la matrice H. En revanche, l'influence des segments précédents est prise en compte dans la phase k. L'économie de calcul appréciable faite en ne considérant pas (au cours de la phase k) l'influence du segment k sur les segments suivants conduit à une solution qui n'est que faiblement sous-optimale étant donné que chacun de ces segments suivants fera l'objet d'une recherche ultérieure dans un dictionnaire. L'algorithme illustré par la figure 4 effectue des divisions aux itérations de l'étape 77. On aura noté que l'optimisation peut être effectuée sans division, par la même méthode que sur la figure 3 (test 58). L'agencement des calculs illustré sur la figure 4 permet de réduire encore plus la charge de calcul lorsque les dictionnaires CB1, CB2,.... CBK ont une structure algébrique du type ACELP ou binaire. Ainsi, l'introduction d'une matrice de transformation permet de modifier les propriétés du dictionnaire de formes d'onde. Les matrices de transformation peuvent être optimisées sur un corpus de référence ou posséder elles-mêmes une structure algébrique. Dans ce dernier cas, elles peuvent notamment être utilisées pour générer des codes à valeurs ternaires +1/0/-1 indexés à partir de codes binaires. Partant de NCk = 2rick codes binaires Ckik décrivant toutes les combinaisons possibles de nck échantillons à valeurs 1, on forme un dictionnaire de NCk segments de forme d'onde Ukjk de longueur Lk en appliquant une matrice de transformation Fk à Lk lignes et nck colonnes : Ukik = Fk-Ckik (52) Les expressions (9) à (13) et (15) à (16) sont modifiées en remplaçant les segments Ukik par les codes binaires correspondants Ckik (ce qui donne respectivement les relations (17) à (23)), après avoir remplacé les vecteursT ligne (tf. Hk.) par (t. Hk'-Fk.) et les matrices (.. H.) par (F T. H =jJ.HJ...Hk, k.. Fk.) pour 1 numérateurs Numk (i1 [n],..., i (k-1) [n], ik) et des dénominateurs Denk (i1 [n],.... i (k-1) [n], ik) peut d'autre part être effectué par des algorithmes rapides connus dans le domaine du traitement numérique du signal. A titre d'exemple, des formes d'onde de L = 20 échantillons peuvent être partitionnées en K = 2 segments de Li = L2 = 10 échantillons chacune, avec deux dictionnaires identiques CB1 = CB2 composés de 28 = 256 formes d'onde engendrées par une matrice de transformation Fi = F2 = F donnée par : La structure du dictionnaire peut alors être utilisée pour obtenir les produits scalaires moyennant une charge de calcul minimale. Les méthodes utilisables sont notamment décrites dans les références : A robust and fast CELP coder at 16 kbit/s ?, par A. Le Guyader, D. Massaloux et J. F. Zurcher, paru dans la revue Speech Communication, Vol. 7,1988, pages 217-226 ; et Vector Sum Excited Linear Prediction (VSELP) : speech coding at 8 bps"par LA. Gerson et M. A. Jasiuk, paru dans les actes de la conférence ICASSP, 1990, pages 461-464. Dans cet exemple, on a obtenu des résultats satisfaisant en retenant comme candidats les N1 = 3 indices du dictionnaire de la première partition qui donnent le critère d'erreur le plus faible. Dans les essais qui ont été effectués, le signal de parole était soumis à un détecteur voisé/non-voisé. Selon la décision de celui-ci, il était ensuite soumis à une recherche de type ACELP pour les trames voisées et de type binaire transformé selon la matrice F donnée par (53) pour les trames non-voisées. REVENDICATIONS 1. Procédé de codage d'un signal audiofréquence numérisé en trames successives de L échantillons, comprenant les étapes suivantes : - détermination adaptative de paramètres de synthèse définissant des filtres de synthèse ; - détermination adaptative de paramètres d'excitation définissant un signal d'excitation à appliquer aux filtres de synthèse pour produire un signal synthétique représentatif du signal audiofréquence, en minimisant l'énergie d'un signal d'erreur résultant du filtrage de la différence entre le signal audiofréquence et le signal synthétique par au moins un filtre de pondération perceptuelle ; et - production de valeurs de quantification représentatives des paramètres déterminés, dans lequel les paramètres d'excitation incluent, pour certaines au moins des trames, une forme d'onde de L échantillons associée à un gain, ledit signal d'excitation relatif à la trame résultant de la multiplication de la forme d'onde de L échantillons par le gain associé, la forme d'onde étant constituée d'un nombre K, plus grand que 1, de segments juxtaposés selon une partition déterminée de la trame et issus de dictionnaires respectifs, le k-ième segment étant constitué de Lk échantillons pour 1 : 5 k : g K, les nombres L1 à LK étant des entiers dont la somme est égale à L, caractérisé en ce que la détermination des paramètres d'excitation pour au moins une trame de signal comporte les étapes suivantes : /a/ calcul d'un vecteur-cible de L échantillons à partir de la trame de signal et des paramètres déterminés pour au moins une trame précédente ; /b/ calcul, sur une longueur de L échantillons, d'une réponse impulsionnelle ho, h1,..., hL-1 d'un filtre composé des filtres de synthèse et d'un filtre de pondération perceptuelle ; Icl précalcul de vecteurs Vk ka et de matrices Mk ks k@@ pour des entiers k, k' = tT. H et k"tels que 1 k" partition, Hk, désigne ta matrice de Lk lignes et Lu colonnes dont le terme situé à la (q+1) -ième ligne et à la (r+1) -ième colonne (0 : s q k-1 Ak = Lk et Hk, k (q, r) = 0 si q transposition ; Idl sélection d'au moins un segment issu du dictionnaire relatif au premier segment, par maximisation d'un critère de la forme : où : Num1 (i1) = V. -,. U1,., Den1 (i1) = Ul Mm. U1ji il *mi, i, i. uiii et Ut il désigne un segment d'indice i1 du premier dictionnaire, et les étapes/e/et/f/suivantes pour k allant de 2 à K : leI pour chaque (kw uplet de segments U1j,..., Ukj (k-1rrn] venant d'être sélectionné, calcul de nombres FN [n] et FD [n] et d'un vecteur C [n] de la forme : Ifl sélection d'au moins un k-uplet de segments respectivement issus des k dictionnaires relatifs aux segments 1 à k, dont les k-1 premiers segments L)1r,....L)kjr proviennent d'un (k-1)-uplet précédemment sélectionné, par maximisation d'un critère de la forme : où : Numk (i1 [n],..., i (k-1) [n], ik) = FN [n] + Vk, k, Ukik T Denk (i1 [n],..., i (k-1) [n], ik) = FD[n] + C[n]. Ukik + UkJ. Mk, k, Ukik et Ukik désigne un segment d'indice ik du k-ième dictionnaire, la forme d'onde retenue pour la trame étant constituée d'un K-uplet de segments sélectionné à f'étape/f/pour k = K. 2. Procédé de codage d'un signal audiofréquence numérisé en trames successives de L échantillons, comprenant les étapes suivantes : - détermination adaptative de paramètres de synthèse définissant des filtres de synthèse ; - détermination adaptative de paramètres d'excitation définissant un signal d'excitation à appliquer aux filtres de synthèse pour produire un signal synthétique représentatif du signal audiofréquence, en minimisant l'énergie d'un signal d'erreur résultant du filtrage de la différence entre le signal audiofréquence et le signal synthétique par au moins un filtre de pondération perceptuelle ; et - production de valeurs de quantification représentatives des paramètres déterminés, dans lequel les paramètres d'excitation incluent, pour certaines au moins des trames, une forme d'onde de L échantillons associée à un gain, ledit signal d'excitation relatif à la trame résultant de la multiplication de la forme d'onde de L échantillons par le gain associé, la forme d'onde étant constituée d'un nombre K, plus grand que 1, de segments juxtaposés selon une partition déterminée de la trame et issus de dictionnaires respectifs, le k-ième segment étant constitué de Lk échantillons pour 1 k K, les nombres L1 à LK étant des entiers dont la somme est égale à L, et dans lequel, pour 1 Ibl calcul, sur une longueur de L échantillons, d'une réponse impulsionnelle ho,h,...,hL-1 d'un filtre composé des filtres de synthèse et d'un filtre de pondération perceptuelle ; /c/précalcul de vecteurs Vk, k, et de matrices Mk, k', k" pour des entiers k, k' et k"tels que 1 k" k-1 Ak = L Lk'et Hk, k (q, r) = 0 si q transposition ; Idl sélection d'au moins un code issu du répertoire relatif au premier segment, par maximisation d'un critère de la forme : où : Num1 (i1) = V1, 1. C1 T Den1 (i1) = ClJ. Mi, C1, et Cl il désigne un code d'indice i1 du premier répertoire, et les étapes/e/et/f/suivantes pour k allant de 2 à K : leI pour chaque (k-1)-uplet de codes Cli1pi,..., Ckj(k-1) venant d'être sélectionné, calcul de nombres FN [n] et FD [n] et d'un vecteur C [n] de la forme : Ifl sélection d'au moins un k-uplet de codes respectivement issus des k répertoires relatifs aux segments 1 à k, dont les k-1 premiers codes C1, ,...,Ckjr proviennent d'un (k-1)-uplet précédemment sélectionné, par maximisation d'un critère de la forme : où : Numk (i1 [n],..., i (k-1) [n], ik) = FN [n] + Vk, k. Ckik T Denk (i1 [n],.... i (k-1) [n], ik) = FD [n] + C [n]. Ckik + CkJ. Mk, k, k-Ckik et Ckik désigne un code d'indice ik du k-ième répertoire, la forme d'onde retenue pour la trame étant constituée d'un K-uplet de segments respectivement obtenus à partir d'un K-uplet de codes sélectionné à l'étape Ifl pour k = K. 3. Procédé selon la revendication 2, dans lequel les codes des répertoires sont des codes binaires à valeurs 1. 4. Procédé selon l'une quelconque des revendications précédentes, dans lequel le gain associé à la forme d'onde retenue pour une trame est pris ... Num (t1 n],) 2 [n],...,) (k-1) n],) k).,.,......, égal au rapport -rK . r,. ,.. i . ''etatif audit K-uplet "-DenK) 1n],) 2n],...,) k-1) [n,) k sélectionné à l'étape Ifl pour k = K. 5. Procédé selon l'une quelconque des revendications précédentes, dans lequel les nombres L1 à LK sont identiques, de même que les dictionnaires relatifs aux K segments. 6. Procédé selon la revendication 5, dans lequel K = 2. 7. Codeur de signal audiofréquence, comprenant : - des moyens pour recevoir le signal audiofréquence numérisé en trames successives de L échantillons ; - des moyens de détermination adaptative de paramètres de synthèse définissant des filtres de synthèse ; - des moyens de détermination adaptative de paramètres d'excitation définissant un signal d'excitation à appliquer aux filtres de synthèse pour produire un signal synthétique représentatif du signal audiofréquence, en minimisant l'énergie d'un signal d'erreur résultant du filtrage de la différence entre le signal audiofréquence et le signal synthétique par au moins un filtre de pondération perceptuelle ; et - des moyens de production de valeurs de quantification représentatives des paramètres déterminés, dans lequel les paramètres d'excitation incluent, pour certaines au moins des trames, une forme d'onde de L échantillons associée à un gain, ledit signal d'excitation relatif à la trame résultant de la multiplication de la forme d'onde de L échantillons par le gain associé, la forme d'onde étant constituée d'un nombre K, plus grand que 1, de segments juxtaposés selon une partition déterminée de la trame et issus de dictionnaires respectifs, le k-ième segment étant constitué de Lk échantillons pour 1 k K, les nombres L1 à LK étant des entiers dont la somme est égale à L, caractérisé en ce que les moyens de détermination adaptative des paramètres d'excitation comportent : - des moyens de calcul d'un vecteur-cible de L échantillons à partir d'une trame de signal et des paramètres déterminés pour au moins une trame précédente ; - des moyens de calcul, sur une longueur de L échantillons, d'une réponse impulsionnelle ho, h1,.... hL-1 d'un filtre composé des filtres de synthèse et d'un filtre de pondération perceptuelle ; - des moyens de précalcul de vecteurs V k, et de matrices Mk, k', k' pour des = tTH entiers k, k'et k"tels que 1 ligne et à la (r+1)-ième colonne (0 kr1 Hk, k, (q, r) = hq+Ak-r-Ak'avec, pour 1 s ; k si q - des moyens de sélection d'au moins un segment issu du dictionnaire relatif au premier segment, par maximisation d'un critère de la forme : où : Num1 (i1) =V.) i. U1,1 Den1 (i1) = U1-J. Mm. U1ji 1 1, 1, 1-Uljl et Ul il désigne un segment d'indice i1 du premier dictionnaire ; - des moyens d'optimisation pour effectuer les opérations suivantes pour k allant de 2 à K : - pour chaque (k-1)-uplet de segments U1i1[n], ..., Uki(k-1)[n] venant d'être sélectionné, calcul de nombres FN [n] et FD[n] et d'un vecteur C [n] de la forme : - sélection d'au moins un k-uplet de segments respectivement issus des k dictionnaires relatifs aux segments 1 à k, dont les k-1 premiers segments LMri,....L)kj/r proviennent d'un (k-1)-uplet précédemment sélectionné, par maximisation d'un critère de la forme : où : Numk (il[n],.... i (k-1) [n], ik) = FN [n] + Vk, k Ukik T Denk (i1 [n],..., i (k-1) [n], ik) = FD [n] + C [n]. Ukik + Uke. Mk, k, k, Ukik et Ukik désigne un segment d'indice ik du k-ième dictionnaire, - des moyens pour produire la forme d'onde retenue pour une trame sous forme d'un K-uplet de segments sélectionné par les moyens d'optimisation pour k = K. 8. Codeur de signal audiofréquence, comprenant : - des moyens pour recevoir le signal audiofréquence numérisé en trames successives de L échantillons ; - des moyens de détermination adaptative de paramètres de synthèse définissant des filtres de synthèse ; - des moyens de détermination adaptative de paramètres d'excitation définissant un signal d'excitation à appliquer aux filtres de synthèse pour produire un signal synthétique représentatif du signal audiofréquence, en minimisant l'énergie d'un signal d'erreur résultant du filtrage de la différence entre le signal audiofréquence et le signal synthétique par au moins un filtre de pondération perceptuelle ; et - des moyens de production de valeurs de quantification représentatives des paramètres déterminés, dans lequel les paramètres d'excitation incluent, pour certaines au moins des trames, une forme d'onde de L échantillons associée à un gain, ledit signal d'excitation relatif à la trame résultant de la multiplication de la forme d'onde de L échantillons par le gain associé, la forme d'onde étant constituée d'un nombre K, plus grand que 1, de segments juxtaposés selon une partition déterminée de la trame et issus de dictionnaires respectifs, le k-ième segment étant constitué de Lk échantillons pour 1 : : ; k : : ; K, les nombres L1 à LK étant des entiers dont la somme est égale à L, et dans lequel, pour 1 : : ; k : : ; K, chaque segment de Lk échantillons du dictionnaire relatif au k-ième segment de la partition est le produit d'une matrice de transformation prédéfinie Fk de Lk lignes et nck colonnes par un code respectif de nck échantillons appartenant à un répertoire engendrant le dictionnaire, nck étant un entier plus petit que Lk, caractérisé en ce que les moyens de détermination des paramètres d'excitation comportent : - des moyens de calcul d'un vecteur-cible de L échantillons à partir d'une trame de signal et des paramètres déterminés pour au moins une trame précédente ; des moyens de calcul, sur une longueur de L échantillons, d'une réponse impulsionnelle ho, h1,..., hL-1 d'un filtre composé des filtres de synthèse et d'un filtre de pondération perceptuelle ; des moyens de précalcul de vecteurs Vk, k, et de matrices Mk, k', k" pour des = tT. H entiers k, k'et k"tels que 1 kJ Hk, k, (q, r) = hq+Ak-r-Ak'avec, pour 1 si q où : Num1 (i1) = V1. C1j1 T Den1 (i1) =C1. M, C1., et Cl il désigne un code d'indice i1 du premier répertoire ; - des moyens d'optimisation pour effectuer les opérations suivantes pour k allant de 2 à K : - pour chaque (k-1)-up)etdecodesC1r,...,Ck,r venant d'être sélectionné, calcul de nombres FN [n] et FD [n] et d'un vecteur C [n] de la forme : - sélection d'au moins un k-uplet de codes respectivement issus des k répertoires relatifs aux segments 1 à k, dont les k-1 premiers codes C1r,.... Ck, proviennent d'un (k-1) -uplet précédemment sélectionné, par maximisation d'un critère de la forme : où : Numk (i1 [n],.... i (k-1) [n], ik) = FN [n] + Vkk, k Ckik Denk (i1 [n],..., i (k-1) [n], ik) = FD [n] + C [n]. Ckik + CkJ.) . Ck k'ik et Ckik désigne un code d'indice ik du k-ième répertoire, - des moyens pour produire la forme d'onde retenue pour une trame sous forme d'un K-uplet de segments respectivement obtenus à partir d'un K-uplet de codes sélectionné par les moyens d'optimisation pour k = K. 9. Codeur selon la revendication 7 ou 8, dans lequel les moyens de détermination des paramètres d'excitation comportent en outre des moyens pour calculer le gain associé à la forme d'onde retenue pour une trame selon le rapport NumK (i1[n], i2[n],..., i (k-1) [n], ik).. DenK DenHn], i2 [n],.... ! (k-1) [n]. ! k) '"'" se ! eet. onne par ! es moyens d'optimisation pour k = K. 10. Codeur selon l'une quelconque des revendications 7 à 9, dans lequel les nombres L1 à LK sont identiques, de même que les dictionnaires relatifs aux K segments.