Brevet FR2737360A1 — publié le 19970131

PROCEDES DE CODAGE ET DE DECODAGE DE SIGNAUX AUDIOFREQUENCE, CODEUR ET DECODEUR POUR LA MISE EN OEUVRE DE TELS PROCEDES La présente invention concerne le domaine du codage numérique des signaux audiofréquence à des fins de compression. Pour transmettre ou stocker efficacement sous forme numérique des signaux audiofréquence (de la parole ou de la musique), la première étape du traitement, le codage de source, consiste à utiliser des codeurs cherchant à réaliser une compression de l'information aussi importante que possible sans dégradation audible du signal reconstruit. Actuellement, il n'existe pas un schéma de codage unique pour des signaux audiofréquence. Deux démarches, a priori assez distinctes, sont habituellement utilisées. Pour du signal de parole en bande téléphonique, le codeur CELP (voir M. Schroeder et B. Atal : "Code excited linear prediction (CELP) High-quality speech at very low rates", Proceedings ICASSP, pages 937-940, 1985.) a montré sa supériorité. Il s'agit fondamentalement d'une quantification vectorielle de type "gain-forme" avec un dictionnaire de quantification régulièrement adapté aux caractéristiques statistiques à court terme du signal par une opération de filtrage (Voir N. Moreau : "Techniques de Compression des Signaux", Collection Technique et Scientifique des Télécommunications, Masson, 1995).Cette démarche est justifiée par le fait que le signal de parole admet un modèle de production simple et efficace de type "source-filtre". Dans le codeur CELP, la quantification vectorielle de l'excitation est réalisée avec une procédure d"analyse-par-synthèse". L'exploitation sommaire d'un modèle d'audition permet une mise en forme spectrale grossière du bruit de codage. Pour du signal de musique, il n'existe pas de modèle de production étant donné la variété des sources sonores possibles ; par contre un modèle d'audition élaboré est généralement utilisé. Les codeurs adaptés à de la musique, par exemple Musicam à la base du codeur MPEG-Audio (voir Norme internationale ISO/CEI 11172 : "Codage de l'image animée et du son associé pour les supports de stockage numérique jusqu'à environ 1,5 Mbit/sw, 1993) ou Aspec (voir K.Brandenburg et al : ASPEC : Adaptative perceptual entropy coding of high quality music signais", Proceedings of the 90th AES convention, pages 1-11, 1991) utilisé dans la troisième couche de MPEG-Audio cherchent essentiellement à réaliser régulièrement une mise en forme spectrale du bruit de codage de façon à ce que la densité spectrale de puissance de ce bruit soit, quelle que soit la fréquence et quel que soit l'instant, toujours en-dessous d'une courbe appelée le seuil de masquage (voir N. Jayant et al. : "Signal compression based on models of human perception", Proceedings IEEE, 81 (10) : 1385-1422, Octobre 1993). Cette deuxième famille de codeurs relève des codeurs en sous-bandes ou par transformées. Compte tenu de l'équivalence formelle entre les codeurs en sous-bandes et les codeurs par transformées, on considère ci-dessous le seul cas des codeurs en sous-bandes. Le schéma de principe d'une chaîne de codage et de décodage en sous-bandes est représenté sur la Figure 1. I 1 est composé des quatre éléments principaux suivants 1. Un banc de filtres d'analyse 10. Ce banc de filtres effectue une décomposition du signal original x(n) en M signaux. Les filtres d'analyse sont généralement des filtres passe-bande. Les signaux en sortie de ces filtres sont à bande étroite, et ils sont appelés les signaux de sous-bande. Ces signaux sont ensuite sous-échantillonnés (étage 12). On appelle ces signaux de sous-bande souséchantillonnés, les signaux de sous-bande décimés, et on les note y0 (m)...1(m). On On note hO(n)...hMl(n) les réponses impulsionnelles des filtres d'analyse (OSn 2. un étage de quantification 14, sous le contrôle du troisième élément. 3. Un dispositif 16 qui effectue l'allocation des bits disponibles pour la quantification des signaux de sousbande décimés, en exploitant un modèle d'audition, à partir de paramètres spectraux du signal x(n) évalués par une unité 18. 4. Un banc de filtres de synthèse 22. Les signaux de sous-bande décimés et quantifiés, notés y (m),..., -l(m) sont sur-échantillonnés (étage 20), puis filtrés par les filtres de synthèse. On appelle les signaux en sortie des filtres de synthèse, les signaux de sous-bande interpolés.Le signal de synthèse x(n) est la somme de ces signaux. Les filtres de synthèse sont également des filtres passe-bande. On note f0(n)...fM-l(n) les réponses impulsionnelles des filtres de synthèse (OSn On a supposé que tous les filtres sont de même longueur N. On appelle le rapport K = N/L le "facteur de recouvrement". Généralement, les bancs de filtres d'analyse et de synthèse réalisent une découpe régulière ou en octaves de l'axe des fréquences. Les bancs de filtres utilisés en pratique sont des bancs de filtres pseudo-QMF, ou des bancs de filtres à reconstruction parfaite, ou encore ils correspondent à des transformées en ondelettes. Le plus souvent, on a la relation suivante entre fk(n) et h k (n) fk(n)=hk(N-l-n), pour Osn Il a été proposé d'appliquer un codage de type CELP aux signaux décomposés en sous-bandes (voir M. Yong et A. Gersho : Subband vector excitation coding with adaptive bitallocation", Proceedings ICASSP, 1989). La synthèse comporte alors des décodages CELP suivis d'un suréchantillonnage des signaux de sous-bande décimés ainsi restitués et du passage des signaux suréchantillonnés dans le banc de filtres de synthèse. Les techniques antérieures ont permis l'élaboration de plusieurs codeurs performants et termes de qualité auditive du signal reconstruit. Toutefois, les taux de compression accessibles par ces méthodes ne sont pas encore suffisants. Les délais de reconstruction introduits par ces méthodes sont également encore trop élevés pour pouvoir développer de nouveaux services, par exemple, en communication de groupes (audio et visioconférences numériques, téléphonie sur haut-parleurs, etc.). Un but de la présente invention est de proposer un processus de codage et de décodage de qualité avec des délais de reconstruction modérés. L'invention propose ainsi un procédé de codage d'un signal numérique audiofréquence traité par blocs successifs de L échantillons, dans lequel on stocke P dictionnaires vectoriels contenant chacun des vecteurs prédéterminés de N échantillons. Le procédé de codage comprend les étapes suivantes - analyser le spectre du signal audiofréquence pour déterminer des indices d'allocation - en fonction desdits indices d'allocation, sélectionner des dictionnaires vectoriels parmi les P dictionnaires vectoriels pour chaque bloc de L échantillons, et allouer des bits de quantification vectorielle et des bits de quantification scalaire à chaque dictionnaire vectoriel sélectionné - pour chaque bloc de L échantillons et pour chaque dictionnaire vectoriel sélectionné à l'égard de ce bloc, déterminer l'indice d'un vecteur optimal dans ledit dictionnaire sélectionné et l'indice d'un gain associé dans un dictionnaire de gains, le vecteur optimal et le gain associé étant respectivement sélectionnés, par un processus d'analyse par synthèse, parmi 2b(k) vecteurs dudit dictionnaire sélectionné et parmi 2c(k) gains du dictionnaire de gains, b(k) et c(k) désignant respectivement le nombre de bits de quantification vectorielle et le nombre de bits de quantification scalaire alloués audit dictionnaire sélectionné ; et - former un flux binaire de sortie incluant les indices d'allocation et les indices des vecteurs optimaux et des gains associés. Complémentairement, l'invention propose un procédé de décodage d'un flux binaire d'entrée pour synthétiser, en blocs successifs de L échantillons numériques, un signal audiofréquence codé par le flux binaire d'entrée, dans lequel on stocke P dictionnaires vectoriels contenant chacun des vecteurs prédéterminés de N échantillons.Le procédé de décodage comprend les étapes suivantes - pour chaque bloc de L échantillons du signal à synthétiser, sélectionner des dictionnaires vectoriels parmi les P dictionnaires vectoriels et allouer à chaque dictionnaire vectoriel sélectionné des bits de quantification vectorielle et des bits de quantification scalaire inclus dans le flux binaire d'entrée, sur la base d'indices d'allocation inclus dans le flux binaire d'entrée - pour chaque bloc de L échantillons et pour chaque dictionnaire vectoriel sélectionné à l'égard de ce bloc, calculer une contribution au signal de synthèse en multipliant un vecteur optimal par un gain associé, le vecteur optimal étant obtenu dans ledit dictionnaire vectoriel sélectionné au moyen d'un indice correspondant aux bits de quantification vectorielle alloués audit dictionnaire sélectionné dans le flux binaire d'entrée, et le gain associé étant obtenu à partir d'un indice dans un dictionnaire de gains, correspondant aux bits de quantification scalaire alloués audit dictionnaire sélectionné dans le flux binaire d'entrée ; et - combiner lesdites contributions calculées pour former le signal audiofréquence. Dans un mode de réalisation de l'invention, la bande passante du signal audiofréquence est subdivisée en M sousbandes, M étant un entier au plus égal au nombre P de dictionnaires vectoriels, et chacun des P dictionnaires vectoriels est associé à une sous-bande respective et contient des vecteurs de N échantillons représentant des signaux à bande étroite incluse dans la sous-bande associée audit dictionnaire vectoriel. L'invention peut dans ce cas être vue comme une généralisation du codage en sous-bandes standard, qui en améliore les performances. Le processus de synthèse mis en oeuvre dans un décodeur en sous-bandes consiste à sommer des vecteurs (les réponses impulsionnelles des filtres de synthèse) multipliés par des gains respectifs (les signaux de sous-bandes quantifiés et décimés). L'approche de l'invention est de sommer non pas des vecteurs invariables, mais des vecteurs optimaux sélectionnés dans des dictionnaires vectoriels par un processus d'analyse-parsynthèse, les gains associés étant également quantifiés au moyen d'un ou plusieurs dictionnaires. En d'autres termes, les signaux de sous-bande interpolés sont quantifiés par une quantification vectorielle, au lieu d'une quantification scalaire suivie d'une interpolation.Les dictionnaires utilisés dans la quantification vectorielle peuvent être adaptés au signal par apprentissage. Par ailleurs, on n'a plus besoin du banc de filtres d'analyse au niveau du codeur. La partition du spectre fréquentiel en sous-bandes n'est soumise à aucune contrainte, contrairement au codage en sous-bandes classique où la structure des filtres d'analyse et de synthèse limite les possibilités. L'invention permet en outre de prendre en compte aisément la périodicité des sons voisés par une technique de dictionnaire adaptatif, bien connue dans le domaine du codage CELP comme améliorant la qualité, mais délicate à mettre en oeuvre dans les codeurs en sous-bandes habituels. Enfin, le bruit de codage introduit dans une sousbande par la quantification des autres signaux de sous-bande est réduit. Il est à noter que l'invention permet d'utiliser des vecteurs de longueur N plus grande que la longueur L des blocs d'analyse. Au niveau du codeur, le processus d'analyse par synthèse relatif à un bloc courant de L échantillons comprend alors, après réception des échantillons dudit bloc courant et des N-L échantillons suivants, la formation d'un vecteur cible de N échantillons en soustrayant d'un vecteur d'analyse de N échantillons, correspondant aux L échantillons du bloc courant et aux N-L échantillons suivants, des contributions des vecteurs optimaux déterminés relativement aux E[(N-1)/L] blocs précédents, E[.] désignant la partie entière. Un processus dual est mis en oeuvre au niveau du décodeur pour reconstruire le signal audiofréquence.On réalise ainsi une quantification vectorielle à recouvrement, ci-aprèsappeléeOVL-VQ (pour"OVerLap-VectorQuantization"). Un recouvrement de cette nature entre vecteurs sommés a été utilisé dans le domaine de la synthèse de sons musicaux à modélisation sinusoidale (voir E.B. George et al. "Generalized overlap-add sinusoidal modeling applied to quasi-harmonic tone synthesis", Proceedings IEEE Workshop on Applications of Signal Processing to Audio and Acoustics, 1993). Mais il est inhabituel de l'inclure dans un schéma de quantification. L'analogie faite ci-dessus entre l'invention et les codeurs en sous-bandes classiques est transposable au cas général des codeurs à transformées. La structure des dictionnaires vectoriels utilisés ne reflète pas nécessairement une décomposition explicite en sous-bandes de la bande passante du signal d'entrée. Un autre aspect de l'invention concerne un codeur audiofréquence pour traiter un signal numérique audiofréquence en blocs successifs de L échantillons, comprenant - P dictionnaires vectoriels contenant chacun des vecteurs prédéterminés de N échantillons - des moyens d'analyse du spectre du signal audiofréquence pour déterminer des indices d'allocation ;; - des moyens d'allocation de bits pour sélectionner des dictionnaires vectoriels parmi les P dictionnaires vectoriels pour chaque bloc de L échantillons, et allouer des bits de quantification vectorielle et des bits de quantification scalaire à chaque dictionnaire vectoriel sélectionné, en fonction des indices d'allocation déterminés par les moyens d'analyse de spectre - des moyens d'analyse par synthèse pour déterminer pour chaque bloc de L échantillons et pour chaque dictionnaire vectoriel sélectionné à l'égard de ce bloc, l'indice d'un vecteur optimal dans ledit dictionnaire sélectionné et l'indice d'un gain associé dans un dictionnaire de gains, le vecteur optimal et le gain associé étant respectivement sélectionnés, par un processus d'analyse par synthèse, parmi 2b(k) vecteurs dudit dictionnaire sélectionné et parmi 2c(k) gains du dictionnaire de gains, b(k) et c(k) désignant respectivement le nombre de bits de quantification vectorielle et le nombre de bits de quantification scalaire alloués audit dictionnaire sélectionné par les moyens d'allocation de bits ; et - des moyens pour former un flux binaire de sortie incluant les indices d'allocation et les indices des vecteurs optimaux et des gains associés. L'invention a également pour objet un décodeur audiofréquence pour synthétiser, en blocs successifs de L échantillons numériques, un signal audiofréquence codé par un flux binaire d'entrée, comprenant - P dictionnaires vectoriels contenant chacun des vecteurs prédéterminés de N échantillons - des moyens d'allocation de bits pour sélectionner des dictionnaires vectoriels parmi les P dictionnaires vectoriels et allouer à chaque dictionnaire vectoriel sélectionné des bits de quantification vectorielle et des bits de quantification scalaire inclus dans le flux binaire d'entrée, sur la base d'indices d'allocation inclus dans le flux binaire d'entrée - des moyens pour calculer, pour chaque bloc de L échantillons et pour chaque dictionnaire vectoriel sélectionné à l'égard de ce bloc , une contribution au signal de synthèse en multipliant un vecteur optimal par un gain associé, le vecteur optimal étant obtenu dans ledit dictionnaire vectoriel sélectionné au moyen d'un indice correspondant aux bits de quantification vectorielle alloués audit dictionnaire sélectionné dans le flux binaire d'entrée, et le gain associé étant obtenu à partir d'un indice dans un dictionnaire de gains, correspondant aux bits de quantification scalaire alloués audit dictionnaire sélectionné dans le flux binaire d'entrée ; et - des moyens pour combiner lesdites contributions calculées de façon à former le signal audiofréquence D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après d'un exemple de réalisation non limitatif, en référence aux dessins annexés, dans lesquels - la figure 1, précédemment discutée montre un schéma de principe d'une chaîne de codage et de décodage en sous bandes - les figures 2 et 3 sont des schémas synoptiques respectivement d'un codeur et d'un décodeur selon l'invention ; et - la figure 4 est un graphique illustrant un exemple de forme d'onde représentée par un vecteur d'un dictionnaire de sous-bande. Revenant au schéma de la figure 1, le signal de synthèse x(n), restitué par un décodeur en sous-bandes à l'instant n (exprimé en multiples de la période d'échantillonnage) tel que n=mL+i, L désignant le facteur de décimation et m et i désignant deux entiers avec OSi où Ym~j désigne le signal de la sous-bande k décimé et relatif à la période de sous-échantillonnage m-j, et f k (jL+i) désigne la réponse impulsionnelle du filtre de synthèse de la sous-bande k pour un retard de jL+i( Si on interprète les périodes de sous-échantillonage comme des blocs d'analyse de L échantillons, et si on propose de mettre à jour les vecteurs fk=(fk(0) fk(l) fk(N~l)) à chaque bloc d'analyse en les sélectionnant dans un dictionnaire respectif, le signal de synthèse devient q(k,m-j) désignant l'indice dans le dictionnaire relatif à la sous-bande k du vecteur fq(k m-j) sélectionné pour le bloc m-j. La quantité =ks' s'interprète alors comme un coefficient ou gain associé au vecteur fk (k,m- j ) dans un schéma de quantification du signal par une combinaison linéaire de vecteurs. Cette quantification vectorielle est à recouvrement (OVL-VQ) lorsque K > 1, c'est-à-dire N > L, un même vecteur s'étendant sur plusieurs blocs d'analyse. On note que l'expression (2) peut être généralisée à un nombre P de dictionnaires vectoriels supérieur au nombre M de sous-bandes. I1 est notamment possible d'attribuer plusieurs dictionnaires distincts à une ou plusieurs sousbandes, contenant des vecteurs de natures différentes (par exemple sinusoldes et bruits à bande étroite), les bits de quantification pouvant être alloués de manière distincte à un ou plusieurs dictionnaires de sous-bande si l'observation du spectre du signal le permet. Une autre possibilité est de prévoir plusieurs dictionnaires de longueurs différentes pour une même sousbande, ces dictionnaires pouvant avoir ou ne pas avoir des parties communes. Lorsque cette sous-bande est retenue dans le processus d'allocation des bits, on sélectionne le dictionnaire d'où extraire le vecteur optimal en fonction du nombre de bits alloués à la sous-bande. Cette solution est relativement exigeante en termes d'espace mémoire nécessaire, mais elle a pour avantage de permettre une structure optimisée des dictionnaires selon le nombre de bits de quantification alloués. On peut également prévoir un dictionnaire vectoriel supplémentaire constitué par un dictionnaire adaptatif contenant des échantillons passés du signal de synthèse, auquel des bits de quantification sont alloués en fonction d'une détection voisé/non voisé opérée sur le signal à coder. La technique du dictionnaire adaptatif est utilisée dans les codeurs CELP ou analogues pour rendre compte de la hauteur tonale ("pitch") de la parole (voir W.B. Kleijn et al: "Improved speech quality and efficient vector quantization in SELP", Proc. ICASSP, New York, 1988, pages 155-158). Enfin, l'expression (2) peut encore être généralisée au cas où plusieurs vecteurs peuvent être sélectionnés dans un même dictionnaire, ce qu'autorise l'allocation dynamique des bits de quantification. Ceci complique la forme de l'expression (2), mais n'apporte pas de complexité supplémentaire dans la structure du codeur ou du décodeur. On note s(k,m) le nombre de vecteurs sélectionnés dans le dictionnaire k pour le bloc m, q(r,k,m) l'indice du (r+l)ième (0sr On note la contribution au signal de synthèse du (r+l)-ième vecteur sélectionné dans le dictionnaire k pour le bloc m. La composante wr m(i) contribue au signal de synthèse à k l'instant mL+i (Wr,m(i)=O si i est la contribution globale au signal de synthèse des vecteurs sélectionnés lors du traitement du bloc m, ci-après appelée "contribution du bloc m". Dans l'expression (3), P'=P+l si un dictionnaire adaptatif est prévu, P étant le nombre de dictionnaires de vecteurs fixes, et P'=P sinon. Si on se limite à 0si Les indices de quantification étant transmis bloc après bloc, le décodeur est en mesure de reconstruire un bloc du signal de synthèse dès qu'il a reçu les indices de quantification relatifs à ce bloc, étant donné que le second terme du membre de droite de l'équation (4) ne fait intervenir que des contributions de blocs antérieurs. Au niveau du codeur, les indices de quantification sont déterminés bloc par bloc par un processus d'analyse par synthèse. Mais la minimisation porte sur des vecteurs de longueur N supérieure à la longueur L des blocs (lorsque K > 1). Ces vecteurs présentent des recouvrements d'un bloc à l'autre. La composante i (05i Le processus d'analyse par synthèse relatif à un bloc m consiste à caractériser le premier terme du membre de droite de l'équation (5). Le second terme correspond aux contributions des vecteurs déterminés pour les blocs antérieurs.Ce second terme est soustrait du vecteur d'entrée =(x(mL) ,...,x (mL+N-1) ) constitué des échantillons du signal audiofréquence appartenant au bloc m et des N-L échantillons suivants pour former un vecteur cibleYm=(vm(l),...,vm(N-l)): pour 05i En référence à la figure 2, un codeur selon l'invention comporte une mémoire tampon 30 recevant les échantillons successifs du signal audiofréquence à coder x(n). Le signal x(n) a été échantilonné et numérisé en amont du codeur. La mémoire 30 doit avoir une capacité d'au moins N échantillons pour qu'on puisse disposer du vecteur d'entrée de de N échantillons lors des traitements relatifs au bloc m. Le spectre à court terme du signal d'entrée est analysé, sur des périodes généralement plus longues que les blocs, par un module 32 d'estimation du spectre à court terme. Le spectre peut par exemple être caractérisé par des paramètres LSP ("Line Spectrum Pairs") calculés à partir des autocorrélations du signal d'entrée. Les paramètres LSP sont quantifiés de façon connue par un module 33 fournissant des indices de quantification Q. L'utilisation des paramètres LSP est classique dans le domaine du codage audio (voir par exemple F.K. Soong and B.H. Juang : "Line spectrum pair (LSP) and speech data compression", Proceedings ICASSP, pages 1.10.1-1.10.4, 1984). Le codeur représenté sur la figure 2 utilise un dictionnaire adaptatif 42 pour rendre compte des corrélations à long terme du signal d'entrée. Un détecteur de voisement 34 examine le signal d'entrée pour identifier les blocs voisés. Cet examen peut être effectué sur des périodes plus longues que les blocs. Le détecteur 34 délivre un bit V dont la valeur permet de repérer les blocs voisés et les blocs non voisés. La détection du voisement est également une fonction standard dans les codeurs audio. Le bit V et les indices Q de quantification des paramètres LSP sont fournis à un module 36 d'allocation des bits. Ce module 36 sélectionne un ensemble de dictionnaires vectoriels pour chaque bloc. Pour chaque dictionnaire vectoriel sélectionné pour un bloc, le module 36 délivre par exemple un quadruplet k, b(k), c(k), g(k), dans lequel k indique le dictionnaire vectoriel sélectionné, b(k) désigne le nombre de bits de quantification vectorielle alloués au dictionnaire k, c(k) désigne le nombre de bits de quantification scalaire alloués au dictionnaire k, et g(k) désigne un facteur d'échelle du gain. Dans le cas général les nombres de bits b(k) et c(k) alloués à un même dictionnaire vectoriel peuvent être distincts. Pour simplifier la description, on considère ci-après le cas particulier où b(k)=c(k).Les facteurs d'échelle g(k) permettent de régler la dynamique des gains en fonction des caractéristiques du spectre. Pour allouer les bits de quantification, le module 36 peut mettre en oeuvre les algorithmes d'allocation classiquement utilisés dans les codeurs en sous-bandes (voir par exemple A. Gersho et R.M. Gray, "Vector Quantization and Signal Compression", Kluwer Academic Publishers, 1992, page 234), en réservant un nombre donné de bits au dictionnaire adaptatif pour les blocs repérés comme voisés par le bit V. Les quadruplets k, b(k), c(k), g(k) sont fournis par le module 36 à un module 38 de minimisation qui détermine les indices de quantification q, q' des vecteurs optimaux et des gains associés relativement au bloc courant. Le dictionnaire adaptatif 42 et les M dictionnaires vectoriels de sous-bande 44 sont stockés dans une mémoire 40 du codeur à laquelle accède le module 38. La figure 2 montre la mémoire 40 comme contenant également un dictionnaire de gains 46, commun à tous les dictionnaires vectoriels 42, 44. Dans de nombreuses applications, la structure du dictionnaire de gains peut toutefois être suffisamment simple pour qu'on puisse se dispenser de le stocker, chaque gain pouvant dans ce cas être calculé rapidement sur la base de son indice q'. On peut également prévoir plusieurs dictionnaires de gains (stockés ou non) affectés chacun à un ou plusieurs des dictionnaires vectoriels.Lorsqu'un dictionnaire vectoriel est sélectionné, on va alors chercher la valeur du gain associé dans le dictionnaire de gains qui lui est affecté. Pour chaque dictionnaire vectoriel k qui a été sélectionné par le module 36 pour un bloc m, le module 38 détermine un vecteur optimal fqk(k,m) parmi les 2b(k) premiers vecteurs du dictionnaire vectoriel k (0sq(k,m) Yq' m) parmi les 2c(k) premiers gains du dictionnaire de gains 46 (0#q' (k,m) l, l'indice k du dictionnaire vectoriel concerné figure dans s(k,m) quadruplets distincts fournis par le module 36). La contribution Zm= (Zm(0)1, ..., Zm(N-1)) du bloc m qui a été synthétisé par le module de minimisation 38, est adressée à un module 48 de mise à jour du dictionnaire adaptatif. Le module 48 met à jour les échantillons du dictionnaire adaptatif 42 en vue du traitement des blocs suivants, selon l'une des méthodes classiquement utilisées dans les codeurs de parole à dictionnaire adaptatif. Le codeur comporte un module 50 qui calcule la somme des contributions au signal de synthèse des K-l blocs précédant le bloc courant (second terme du membre de droite de l'équation (5)). Une fois qu'un bloc a été traité, sa contribution Zm sur N échantillons est fournie au module 48 pour que celui-ci en tienne compte dans le traitement des blocs suivants, en appliquant les décalages appropriés. Un soustracteur 52 retranche du vecteur d'entrée sm de N échantillons relatif au bloc m la somme des contributions des blocs m-K+l à m-l calculée par le module 50 pour fournir le vecteur cible Ym (équation (6)) au module de minimisation 38. Si le codeur dispose d'une puissance de calcul importante, on peut envisager que le module 38 opère la minimisation de façon globale pour tous les dictionnaires vectoriels sélectionnés, cest-à-dire par exemple qu'il détermine l'ensemble des indices q, q' définissant selon l'équation (3) une contribution Zm = (zm(0),... zm(N-l)) du bloc m qui présente une distance minimale avec le vecteur cible vm, c'est-à-dire qui minimise le critère d'erreur Pour alléger la charge de calcul, la procédure de minimisation comporte avantageusement plusieurs étages de minimisation successifs. Chaque étage correspond aux traitements relatifs à un quadruplet k,b,c,g fourni par le module 36.Ces traitements consistent par exemple à - déterminer le couple d'indices q(k,m), q' q'(k,m) qui minimise le critère d'erreur avec 05q(k,m) présentant une distance minimale avec le vecteur cible y, ; puis - recalculer le vecteur cible Ym pour l'étage suivant en retirant du vecteur cible précédent la contribution L'ordre dans lequel les quadruplets k,b,c,g sont traités dans la procédure de minimisation multi-étages n'est pas indifférent, les différents vecteurs n'étant généralement pas orthogonaux. Le module 36 fournit les quadruplets k,b,c,g dans un ordre déterminé en fonction d'une observation du signal d'entrée.Lorsqu'un bloc est détecté comme voisé, il convient de traiter le dictionnaire adaptatif 42 dans le premier étage. L'ordre de traitement des dictionnaires de sous-bande sélectionnés depend du spectre du signal d'entrée. Une possibilité est d'estimer la distribution de l'énergie du signal d'entrée dans les différentes sous-bandes et de sélectionner les dictionnaires de sous-bande 44 dans un ordre d'énergies décroissantes. On peut également prévoir de traiter en priorité les sous-bandes dans lequelles le signal présente des résonances prononcées, l'acuité des résonances pouvant classiquement être évaluée sur la base de la distribution des paires de raies spectrales que représentent les paramètres LSP. Les indices de quantification Q des paramètres LSP, le bit voisé/non voisé V et les jeux d'indices q, q' sont adressés à un multiplexeur 54 qui construit selon un format déterminé le flux binaire transmis ou stocké en vue d'un décodage ultérieur. Les indices de quantification des paramètres LSP définissent de façon univoque l'allocation des bits du flux de sortie aux dictionnaires de sous-bande 44. Néanmoins, la même distribution des bits entre les dictionnaires 44 peut a priori correspondre à plusieurs jeux distincts d'indices de quantification des paramètres LSP. I1 est donc envisageable de réduire le débit binaire de sortie en caractérisant l'allocation par des indices d'allocation Q occupant un plus petit nombre de bits que les indices de quantification des paramètres LSP. I1 suffit que le module 33 quantifie les paramètres LSP (ou d'autres paramètres spectraux fournis par le module 32) de manière à produire des indices d'allocation Q caractérisant de façon univoque la distribution des bits entre les dictionnaires 44, un débit minimal étant atteint lorsque cette caractérisation est biunivoque. La figure 3 montre un décodeur pour restituer le signal de synthèse x Le décodeur comporte un module 70 qui calcule la somme des contributions au signal de synthèse des K-1 blocs précédant le bloc courant. Ce module 70 reçoit du module 58 la contribution Zm sur N échantillons du bloc m au signal de synthèse pour en tenir compte dans le traitement des blocs suivants. Le module 70 opère de façon semblable au module correspondant 50 du codeur. Toutefois il délivre seulement L (et non N) échantillons par bloc, à savoir les seconds termes du membre de droite de l'équation (4). La somme de ces L échantillons est ajoutée par l'additionneur 72 aux L échantillons correspondants Azm zm(i), avec OSi Dans une réalisation pratique, le codeur et le décodeur des figures 2 et 3 peuvent être incorporés chacun dans un processeur de signal numérique (DSP) programmé pour exécuter les fonctions des modules décrits ci-dessus, ou dans un circuit intégré spécifique (ASIC). I1 est théoriquement possible de prévoir, pour chaque sous-bande k et chaque nombre de bits b(k) possible, un dictionnaire vectoriel de 2b(k) vecteurs sélectionné lorsque la sous-bande k est retenue pour le module 36 avec allocation de b(k) bits de quantification vectorielle. C'est pour limiter l'espace mémoire requis qu'on affecte un dictionnaire à chaque sous-bande dans l'exemple précédemment décrit, et qu'on recherche les vecteurs optimaux dans les 2b(k) premiers vecteurs. On peut également concevoir des compromis entre ces deux solutions extrêmes. Typiquement, chaque dictionnaire vectoriel 44 comprend jusqu'à 32 vecteurs représentant des signaux à bande étroite incluse dans la sous-bande à laquelle ledit dictionnaire est affecté.Ces signaux à bande étroite peuvent comprendre - des sinusoides ayant des fréquences dans la sousbande respective, modulées par la réponse impulsionnelle d'un filtre passe-bas. Un vecteur de ce type est présenté sur la figure 4 - des bruits à bande étroite, obtenus en filtrant un bruit blanc par un filtre passe-bande ayant une réponse en fréquence centrée dans la sous-bande respective. Lorsqu'un dictionnaire relatif à une sous-bande k contient des vecteurs de type sinusoide modulée, ces vecteurs sont ordonnés en vue de maximiser l'écart minimal entre leurs fréquences, quel que soit b(k). Si ss(k) désigne la largeur de la sous-bande et a(k) sa fréquence inférieure, les vecteurs de type sinusoide modulée sont ordonnées de façon que leurs fréquences respectives soit dans l'ordre suivant a(k) a(k)+(l/2)ss(k), a(k)+(l/4)ss(k), a(k)+(3/4)ss(k), a(k)+(l/8)ss(k), a(k)+(3/8)B(k), a(k)+(7/8)ss(k)... A titre indicatif, les inventeurs ont pu valider un codeur du type de celui de la figure 2, appelé codeur en sous-bandes à analyse par synthèse, ou SBAS ("Sub-Band Analysis-by-Synthetis coder") dans l'exemple particulier cidessous. Le signal d'entrée échantillonné à 8 kHz est traité en blocs de L=40 échantillons. La dimension des vecteurs composant le dictionnaire adaptatif et les dictionnaires vectoriels de sous-bande est de N=120. M=16 sous-bandes réalisent une partition non uniforme de la bande passante du signal d'entrée, à savoir huit sous-bandes de largeur 125 Hz entre 0 et 1 kHz, quatre sous-bandes de largeur 250 Hz entre 1 et 2 kHz, et quatre sous-bandes de largeur 500 Hz entre 2 et 4 kHz. L'analyse spectrale et la détection de voisement sont faites tous les 160 échantillons et réclament 28 bits de quantification.L'indice de quantification du retard LTP (c'est-à-dire l'indice du vecteur optimal du dictionnaire adaptatif) réclame 7 bits, et le gain associé 2 bits. On utilise un total de 12 bits par bloc pour les vecteurs optimaux des dictionnaires de sous-bande, alloués conformément à l'algorithme décrit à la page 234 de l'ouvrage de A. Gersho et R.M. Gray, "Vector Quantization and Signal Compression, Kluwer Academic Publishers, 1992, et 12 bits pour les gains associés, les bits alloués au retard et au gain LTP venant s'ajouter à ces 24 bits pour les blocs non voisés. On réalise ainsi un codeur de débit égal à 8 kbits/s, le codage de chaque bloc de 5 ms nécessitant 7+2+12+12+(28/4)=40 bits. La complexité de ce codeur est réduite parce qu'on utilise une minimisation multi-étages avec des dictionnaires de taille limitée (s32 vecteurs), et parce que les dictionnaires de sous-bande sont fixes (pas de filtrage des dictionnaires comme dans les codeurs CELP). En outre, le retard de codage de ce codeur est faible, de l'ordre de 25 ms (cinq blocs). REVENDICATIONS 1. Procédé de codage d'un signal numérique audiofréquence (x(n)) traité par blocs successifs de L échantillons, caractérisé en ce qu'on stocke P dictionnaires vectoriels (44) contenant chacun des vecteurs prédéterminés de N échantillons, le procédé comprenant les étapes suivantes - analyser le spectre du signal audiofréquence pour déterminer des indices d'allocation (Q) - en fonction desdits indices d'allocation, sélectionner des dictionnaires vectoriels parmi les P dictionnaires vectoriels pour chaque bloc de L échantillons, et allouer des bits de quantification vectorielle et des bits de quantification scalaire à chaque dictionnaire vectoriel sélectionné - pour chaque bloc (m) de L échantillons et pour chaque dictionnaire vectoriel (k) sélectionné à l'égard de ce bloc, déterminer l'indice (q) d'un vecteur optimal dans ledit dictionnaire sélectionné et l'indice (q') d'un gain associé dans un dictionnaire de gains (46), le vecteur optimal et le gain associé étant respectivement sélectionnés, par un processus d'analyse par synthèse, parmi 2b(k) vecteurs dudit dictionnaire sélectionné et parmi 2c(k) gains du dictionnaire de gains, b(k) et c(k) désignant respectivement le nombre de bits de quantification vectorielle et le nombre de bits de quantification scalaire alloués audit dictionnaire sélectionné ; et - former un flux binaire de sortie incluant les indices d'allocation et les indices des vecteurs optimaux et des gains associés. 2. Procédé selon la revendication 1, caractérisé en ce que la bande passante du signal audiofréquence est subdivisée en M sous-bandes, M étant un entier au plus égal au nombre P de dictionnaires vectoriels, et en ce que chacun des P dictionnaires vectoriels est associé à une sous-bande respective et contient des vecteurs de N échantillons représentant des signaux à bande étroite incluse dans la sous-bande associée audit dictionnaire vectoriel. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce qu'on stocke en outre un dictionnaire vectoriel adaptatif (42) contenant des vecteurs de N échantillons constitués d'échantillons passés d'un signal de synthèse construits à partir des vecteurs optimaux et des gains associés précédemment déterminés. 4. Procédé selon la revendication 3, caractérisé en ce qu'on détecte les blocs voisés du signal audiofréquence, le dictionnaire adaptatif étant sélectionné pour un bloc, et des bits de quantification lui étant alloués, lorsque ledit bloc est détecté comme voisé. 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que la longueur N des vecteurs des dictionnaires vectoriels est plus grande que la longueur L des blocs du signal audiofréquence, et en ce que le processus d'analyse par synthèse relatif à un bloc courant (m) de L échantillons comprend, après réception des échantillons dudit bloc courant et des N-L échantillons suivants, la formation d'un vecteur cible (xm) de N échantillons en soustrayant d'un vecteur d'analyse (sm) de N échantillons, correspondant aux L échantillons du bloc courant et aux N-L échantillons suivants, des contributions (zm-j) des vecteurs optimaux déterminés relativement aux E[ (N-1)/L] blocs précédents, E[.] désignant la partie entière. 6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le processus d'analyse par synthèse relatif à un bloc de L échantillons comprend une minimisation en plusieurs étages successifs, chaque étage de minimisation comportant les étapes suivantes - sélectionner un vecteur optimal dans un dictionnaire vectoriel sélectionné affecté audit étage et sélectionner un gain associé de manière à minimiser une distance entre un vecteur cible (m) de N échantillons et une contribution (wkm) sur N échantillons égale au produit dudit vecteur optimal et du gain associé ; et - recalculer le vecteur cible (vm) en lui retranchant ladite contribution sur N échantillons et en ce que les dictionnaires vectoriels sélectionnés sont affectés aux étages de minimisation sur la base des indices d'allocation (Q). 7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que pour chaque bloc (m) de L échantillons et pour chaque dictionnaire vectoriel (k) sélectionné à l'égard de ce bloc, le vecteur optimal est sélectionné parmi les 2b(k) premiers vecteurs dudit dictionnaire sélectionné. 8. Procédé de décodage d'un flux binaire d'entrée pour synthétiser, en blocs successifs de L échantillons numériques, un signal audiofréquence codé par le flux binaire d'entrée, caractérisé en ce qu'on stocke P dictionnaires vectoriels (44) contenant chacun des vecteurs prédéterminés de N échantillons, le procédé comprenant les étapes suivantes - pour chaque bloc de L échantillons du signal à synthétiser, sélectionner des dictionnaires vectoriels parmi les P dictionnaires vectoriels et allouer à chaque dictionnaire vectoriel sélectionné des bits de quantification vectorielle et des bits de quantification scalaire inclus dans le flux binaire d'entrée, sur la base d'indices d'allocation (Q) inclus dans le flux binaire d'entrée - pour chaque bloc de L échantillons (m) et pour chaque dictionnaire vectoriel (k) sélectionné à l'égard de Ak ce bloc, calculer une contribution (wm) au signal de synthèse en multipliant un vecteur optimal par un gain associé, le vecteur optimal étant obtenu dans ledit dictionnaire vectoriel sélectionné au moyen d'un indice correspondant aux bits de quantification vectorielle alloués audit dictionnaire sélectionné dans le flux binaire d'entrée, et le gain associé étant obtenu à partir d'un indice dans un dictionnaire de gains, correspondant aux bits de quantification scalaire alloués audit dictionnaire sélectionné dans le flux binaire d'entrée ; et Ak - combiner lesdites contributions calculées (wm) pour former le signal audiofréquence (x(n)). 9. Procédé selon la revendication 8, caractérisé en ce que la bande passante du signal audiofréquence est subdivisée en M sous-bandes, M étant un entier au plus égal au nombre P de dictionnaires vectoriels, et en ce que chacun des P dictionnaires vectoriels est associé à une sous-bande respective et contient des vecteurs de N échantillons représentant des signaux à bande étroite incluse dans la sous-bande associée audit dictionnaire vectoriel. 10. Procédé selon la revendication 8 ou 9, caractérisé en ce qu'on stocke en outre un dictionnaire vectoriel adaptatif (42) contenant des vecteurs de N échantillons constitués d'échantillons passés du signal de synthèse, le dictionnaire adaptatif étant sélectionné pour un bloc, et des bits de quantification lui étant alloués, lorsqu ' un bit (v) inclus dans le flux binaire d'entrée indique que ledit bloc est voisé. 11. Procédé selon l'une quelconque des revendications 8 à 10, caractérisé en ce que la longueur N des vecteurs des dictionnaires vectoriels est plus grande que la longueur L des blocs du signal audiofréquence. 12. Procédé selon la revendication 11, caractérisé en ce que la combinaison des contributions calculées pour former le signal audiofréquence comporte les étapes suivantes pour un bloc courant m - calculer la somme (zm) des contributions (2m) calculées relativement aux dictionnaires vectoriels (k) sélectionnés à l'égard du bloc courant - calculer le signal de synthèse sur le bloc courant selon où x(mL+i) désigne l'échantillon du signal de synthèse à l'instant mL+i, i étant un entier tel que OSi E[.] représentant la partie entière. 13. Codeur audiofréquence pour traiter un signal numérique audiofréquence en blocs successifs de L échantillons, caractérisé en ce qu'il comprend - P dictionnaires vectoriels (44) contenant chacun des vecteurs prédéterminés de N échantillons - des moyens (32,33) d'analyse du spectre du signal audiofréquence pour déterminer des indices d'allocation (Q);; - des moyens (36) d'allocation de bits pour sélectionner des dictionnaires vectoriels parmi les P dictionnaires vectoriels pour chaque bloc de L échantillons, et allouer des bits de quantification vectorielle et des bits de quantification scalaire à chaque dictionnaire vectoriel sélectionné, en fonction desdits indices d'allocation - des moyens d'analyse par synthèse (38, 50, 52) pour déterminer pour chaque bloc (m) de L échantillons et pour chaque dictionnaire vectoriel (k) sélectionné à l'égard de ce bloc, l'indice (q) d'un vecteur optimal dans ledit dictionnaire sélectionné et l'indice (ql) d'un gain associé dans un dictionnaire de gains (46), le vecteur optimal et le gain associé étant respectivement sélectionnés, par un processus d'analyse par synthèse, parmi 2b(k) vecteurs dudit dictionnaire sélectionné et parmi 2c(k) gains du dictionnaire de gains, b(k) et c(k) désignant respectivement le nombre de bits de quantification vectorielle et le nombre de bits de quantification scalaire alloués audit dictionnaire sélectionné par les moyens (36) d'allocation de bits ; et - des moyens (54) pour former un flux binaire de sortie incluant les indices d'allocation et les indices des vecteurs optimaux et des gains associés. 14. Codeur selon la revendication 13, caractérisé en ce que la bande passante du signal audiofréquence est subdivisée en M sous-bandes, M étant un entier au plus égal au nombre P de dictionnaires vectoriels, et en ce que chacun des P dictionnaires vectoriels est associé à une sous-bande respective et contient des vecteurs de N échantillons représentant des signaux à bande étroite incluse dans la sous-bande associée audit dictionnaire vectoriel. 15. Codeur selon la revendication 13 ou 14, caractérisé en ce qu'il comprend en outre un dictionnaire vectoriel adaptatif (42) contenant des vecteurs de N échantillons constitués d'échantillons passés d'un signal de synthèse construits à partir des vecteurs optimaux et des gains associés précédemment déterminés, et un détecteur de voisement (34) pour détecter les blocs voisés du signal audiofréquence, les moyens d'allocation des bits (36) étant agencés pour sélectionner le dictionnaire adaptatif et lui allouer des bits de quantification pour chaque bloc détecté comme voisé par le détecteur de voisement. 16. Codeur selon l'une quelconque des revendications 13 à 15, caractérisé en ce que la longueur N des vecteurs des dictionnaires vectoriels est plus grande que la longueur L des blocs du signal audiofréquence, et en ce que les moyens d'analyse par synthèse comprennent des moyens (50) pour calculer des contributions (am-j) des vecteurs optimaux déterminés relativement aux E[(N-1)/L] blocs précédant un bloc courant (m), E[.] désignant la partie entière, un soustracteur (52) pour former un vecteur cible (Ym) de N échantillons en soustrayant d'un vecteur d'analyse (sm) de N échantillons, correspondant aux L échantillons du bloc courant et aux N-L échantillons suivants, les contributions calculées pour lesdits moyens (50) de calcul des contributions, et des moyens de minimisation (38) pour sélectionner les vecteurs optimaux et les gains associés relativement aux dictionnaires vectoriels sélectionnés par les moyens d'allocation de bits (36) à l'égard du bloc courant de manière à minimiser une distance entre le vecteur cible (Ym) et la somme des vecteurs optimaux pondérés par leurs gains associés. 17. Décodeur audiofréquence pour synthétiser, en blocs successifs de L échantillons numériques, un signal audiofréquence codé par un flux binaire d'entrée, caractérisé en ce qu'il comprend - P dictionnaires vectoriels (44) contenant chacun des vecteurs prédéterminés de N échantillons - des moyens (56) d'allocation de bits pour sélectionner des dictionnaires vectoriels parmi les P dictionnaires vectoriels et allouer à chaque dictionnaire vectoriel sélectionné des bits de quantification vectorielle et des bits de quantification scalaire inclus dans le flux binaire d'entrée, sur la base d'indices d'allocation (Q) inclus dans le flux binaire d'entrée - des moyens (58) pour calculer, pour chaque bloc (m) de L échantillons et pour chaque dictionnaire vectoriel (k) sélectionné à l'égard de ce bloc , une contribution (2m) au signal de synthèse en multipliant un vecteur optimal par un gain associé, le vecteur optimal étant obtenu dans ledit dictionnaire vectoriel sélectionné au moyen d'un indice correspondant aux bits de quantification vectorielle alloués audit dictionnaire sélectionné dans le flux binaire d'entrée, et le gain associé étant obtenu à partir d'un indice dans un dictionnaire de gains, correspondant aux bits de quantification scalaire alloués audit dictionnaire sélectionné dans le flux binaire d'entrée ; et - des moyens (70,72) pour combiner lesdites contributions calculées (wu) de façon à former le signal audiofréquence (x(n)).