Brevet FR2912249A1 — publié le 20080808

Codage/décodage perfectionnés de signaux audionumériques La présente invention concerne un traitement de données sonores. Ce traitement est adapté notamment à la transmission et/ou au stockage de signaux numériques tels que des signaux audiofréquences (parole, musique, ou autres). Différentes techniques existent pour coder sous forme numérique un signal audiofréquences. Les techniques les plus courantes sont : les méthodes de codage de forme d'onde, telles que le codage MIC (pour "Modulation par Impulsions Codées") et MICDA (pour "Modulation par Impulsion et Codage Différentiel Adaptatif'), dits aussi "PCM" et "ADPCM" en anglais, les méthodes de codage paramétrique par analyse par synthèse comme le codage CELP (pour "Code Excited Linear Prediction"), et les méthodes de codage perceptuel en sous-bandes ou par transformée. Ces techniques traitent le signal d'entrée de façon séquentielle échantillon par échantillon (MIC ou MICDA) ou par blocs d'échantillons dits "trames" (CELP et codage par transformée). On rappelle rapidement qu'un signal sonore tel qu'un signal de parole peut être prédit à partir de son passé récent (par exemple de 8 à 12 échantillons à 8 kHz) au moyen de paramètres évalués sur des fenêtres courtes (10 à 20 ms dans cet exemple). Ces paramètres de prédiction à court terme, représentatifs de la fonction de transfert du conduit vocal (par exemple pour prononcer des consonnes), sont obtenus par des méthodes d'analyse LPC (pour "Linear Prediction Coding"). On met en oeuvre aussi une corrélation à plus long terme pour déterminer des périodicités de sons voisés (par exemple les voyelles) dues à la vibration des cordes vocales. Il s'agit donc de déterminer au moins la fréquence fondamentale du signal voisé qui varie typiquement de 60 Hz (voix grave) à 600 Hz (voix aiguë) selon les locuteurs. On détermine alors, par une analyse LTP (pour "Long Terni Prediction"), les paramètres LTP d'un 2 prédicteur à long terme, et en particulier l'inverse de la fréquence fondamentale, appelée souvent "période de pitch". On définit alors le nombre d'échantillons dans une période de pitch par le rapport Fe/Fo (ou sa partie entière), où : - Fe est la cadence d'échantillonnage, et - Fo est la fréquence fondamentale. On retiendra donc que les paramètres de prédiction à long terme LTP, dont la période de pitch, représentent la vibration fondamentale du signal de parole (lorsqu'il est voisé), tandis que les paramètres de prédiction à court terme LPC représentent l'enveloppe spectrale de ce signal. Dans certains codeurs, l'ensemble de ces paramètres LPC et LTP, résultant donc d'un codage de parole, peuvent être transmis par blocs vers un décodeur homologue, via un ou plusieurs réseaux de télécommunication, pour restituer ensuite le signal de parole initial. En codage de parole conventionnel, le codeur génère un flux binaire à débit fixe. Cette contrainte de débit simplifie la mise en oeuvre et l'utilisation du codeur et du décodeur. Des exemples de tels systèmes sont le codage normalisé UIT-T G.711 à 64 kbit/s, le codage normalisé UIT-T G.729 à 8 kbit/s ou le codage GSM-EFR à 12,2 kbit/s. Dans certaines applications (comme la téléphonie mobile ou la voix sur IP pour Internet Protocol ), il est préférable de générer un flux binaire à débit variable. Les valeurs du débit sont prises dans un ensemble prédéfini. Une telle technique de codage, dite multi-débits s'avère donc plus flexible qu'une technique de codage à débit fixe. 25 On peut distinguer plusieurs techniques de codage multi-débits : le codage multi-modes contrôlé par la source et/ou le canal, mis en oeuvre notamment dans les codeurs 3GPP AMR-NB, 3GPP AMR-WB, ou 3GPP2 VMRWB, 30 - le codage hiérarchique (ou codage "scalable") qui génère un flux binaire dit hiérarchique car il comprend un débit coeur et une ou plusieurs couche(s) 20 d'amélioration (le codage normalisé selon G.722 à 48, 56 et 64 kbit/s étant typiquement scalable en débit, tandis que les codecs UITT G.729.1 et MPEG-4 CELP sont scalables à la fois en débit et en largeur de bande), le codage à descriptions multiples, décrit notamment dans : "A multiple description speech coder based on AMR-WB for mobile ad hoc networks", H. Dong, A. Gersho, J.D. Gibson, V. Cuperman, ICASSP, p. 277-280, vol.1 (Mai 2004). On détaille ci-après le codage hiérarchique, ayant la capacité de fournir des débits variés, en répartissant les informations relatives à un signal audio à coder dans des sous-ensembles hiérarchisés, de telle sorte que ces informations puissent être utilisées par ordre d'importance sur le plan de la qualité de rendu audio. Le critère pris en compte pour déterminer l'ordre est un critère d'optimisation (ou plutôt de moindre dégradation) de la qualité du signal audio codé. Le codage hiérarchique est particulièrement adapté à la transmission sur des réseaux hétérogènes ou présentant des débits disponibles variables au cours du temps, ou encore à la transmission à destination de terminaux présentant des capacités variables. Le concept de base du codage audio hiérarchique (ou "scalable") peut être décrit comme suit. Le flux binaire comprend une couche de base et une ou plusieurs couches d'amélioration. La couche de base est générée par un codec à bas débit (fixe), qualifié de codec coeur , garantissant la qualité minimale du codage. Cette couche doit être reçue par le décodeur pour maintenir un niveau de qualité acceptable. Les couches d'amélioration servent à améliorer la qualité. Il peut arriver toutefois qu'elles ne soient pas toutes reçues par le décodeur. L'intérêt principal du codage hiérarchique est qu'il permet alors une adaptation du débit par simple troncature du flux binaire . Le nombre de couches (c'est-à-dire le nombre de troncatures possibles du flux binaire) définit la granularité du codage. On parle de codage à granularité forte si le flux binaire comprend peu de couches (de l'ordre de 2 à 4) et de codage à granularité fine permet par exemple un pas de l'ordre de 1 à 2 kbit/s. On décrit plus particulièrement ci-après les techniques de codage scalable en débit et en largeur de bande, avec un codeur coeur de type CELP, en bande téléphonique et une ou plusieurs couche(s) d'amélioration en bande élargie. Un exemple de tels systèmes est donné dans la norme UIT-T G.729.1 de 8 à 32 kbit/s à granularité fine. L'algorithme de codage/décodage G.729.1 est résumé ci-après. * Rappels sur le codeur G.729.1 Le codeur G.729.1 est une extension du codeur UIT-T G.729. Il s'agit d'un codeur hiérarchique à coeur G.729, modifié, produisant un signal dont la bande va de la bande étroite (50-4000 Hz) à la bande élargie (50-7000 Hz) à un débit de 8 à 32 kbit/s pour les services conversationnels. Ce codec est compatible avec les équipements de voix sur IP existants (la plupart étant équipés selon la norme G.729). Il convient d'indiquer enfin que la norme G.729.1 a été approuvée en mai 2006. Le codeur G.729.1 est schématisé sur la figure 1. Le signal d'entrée en bande élargie su,, , échantillonné à 16 kHz, est d'abord décomposé en deux sous-bandes par filtrage QMF (pour "Quadrature Mirror Filter"). La bande basse (0-4000 Hz) est obtenue par le filtrage passe- bas LP (bloc 100) et décimation (bloc 101), et la bande haute (4000-8000 Hz) par filtrage passe-haut HP (bloc 102) et décimation (bloc 103). Les filtres LP et HP sont de longueur 64. La bande basse est prétraitée par un filtre passe-haut éliminant les composantes en dessous de 50 Hz (bloc 104), pour obtenir le signal s, 8 , avant codage CELP en bande étroite (bloc 105) à 8 et 12 kbit/s. Ce filtrage passe-haut tient compte du fait que la bande utile est définie comme couvrant l'intervalle 50-7000 Hz. Le codage CELP en bande étroite est un codage CELP en cascade comprenant comme premier étage un codage G.729 modifié sans filtre de prétraitement et comme deuxième étage un dictionnaire CELP fixe supplémentaire. La bande haute est d'abord prétraitée (bloc 106) pour compenser le repliement dû au filtre passe-haut (bloc 102) combiné avec la décimation (bloc 103). La bande haute est ensuite filtrée par un filtre passe-bas (bloc 107) éliminant les composantes entre 3000 et 4000 Hz de la bande haute (c'est-à-dire les composantes entre 7000 et 8000 Hz dans le signal original) pour obtenir le signal s HB . Une extension de bande (bloc 108) est ensuite réalisée. Une particularité importante de l'encodeur G.729.1 selon la figure 1 est la suivante. Le signal d'erreur d,B de la bande basse est calculé (bloc 109) à partir de la sortie du codeur CELP (bloc 105) et un codage prédictif par transformée (par exemple de type TDAC pour Time Domain Aliasing Cancellation dans la norme G.729.1) est réalisé au bloc 110. En référence à la figure 1, on voit en particulier que l'encodage TDAC est appliqué à la fois au signal d'erreur sur la bande basse et au signal filtré sur la bande haute. Des paramètres supplémentaires peuvent être transmis par le bloc 111 à un décodeur homologue, ce bloc 111 réalisant un traitement dit FEC pour Frame Erasure Concealment , en vue de reconstituer d'éventuelles trames effacées. Les différents flux binaires générés par les blocs de codage 105, 108, 110 et 111 sont enfin multiplexés et structurés en un train binaire hiérarchique dans le bloc de multiplexage 112. Le codage est réalisé par blocs d'échantillons (ou trames) de 20 ms, soit 320 échantillons par trame. 6 Le codec G.729.1 a donc une architecture en trois étapes de codage comprenant : le codage CELP en cascade, l'extension de bande paramétrique par le module 108, de type TDBWE (pour Time Domain Bandwidth Extension ), et un codage prédictif par transformée TDAC, appliqué après une transformation de type MDCT (pour Modified Discrete Cosine Transform ou transformation en cosinus discrète modifiée ). * Rappels sur le décodeur G.729.1 Le décodeur homologue selon la norme G.729.1 est illustré sur la figure 2. Les bits décrivant chaque trame de 20 ms sont démultiplexés dans le bloc 200. Le flux binaire des couches à 8 et 12 kbit/s est utilisé par le décodeur CELP (bloc 201) pour générer la synthèse en bande étroite (0- 4000 Hz). La portion du flux binaire associée à la couche à 14 kbit/s est décodée par le module d'extension de bande (bloc 202). La portion du flux binaire associée aux débits supérieurs à 14 kbit/s est décodée par le module TDAC (bloc 203). Un traitement des pré-échos et post-échos est réalisé par les blocs 204 et 207 ainsi qu'un enrichissement (bloc 205) et un post-traitement de la bande basse (bloc 206). Le signal de sortie en bande élargie s b , échantillonné à 16 kHz, est obtenu par l'intermédiaire du banc de filtres QMF de synthèse (blocs 209, 210, 211, 212 et 213) intégrant le repliement inverse (bloc 208). La description de la couche de codage par transformée est détaillée ci-après. * Rappels sur le codeur par transformée TDAC dans le codeur G.729.1 Le codage par transformée de type TDAC dans le codeur G.729.1 est illustré sur la figure 3.25 Le filtre W18 (z) (bloc 300) est un filtre de pondération perceptuelle, avec compensation de gain, appliqué au signal d'erreur en bande basse Des transformées MDCT sont ensuite calculées (bloc 301 et 302) pour obtenir : le spectre MDCT D;a du signal de différence, filtré perceptuellement, et le spectre MDCT SHB du signal original de la bande haute. Ces transformées MDCT (blocs 301 et 302) s'appliquent à 20 ms de signal échantillonné à 8 kHz (160 coefficients). Le spectre Y(k) issu du bloc 303 de fusion comprend ainsi 2 x 160, soit 320 coefficients. Il est défini comme suit : [Y(0) VO)... Y(319)] = [Dia (0) Dca (1) ... Dia (159) SHB (0) SHB (1) ... SHB (159) Ce spectre est divisé en dix-huit sous-bandes, une sous-bande j étant affectée d'un nombre de coefficients noté nb _ coef(j) . Le découpage en sous-bandes est spécifié dans le tableau 1 ci-après. Ainsi, une sous-bande j comprend les coefficients Y(k) avec sb_bound(j) J sb_bound(j) nb_coef(j) 0 0 16 1 16 16 2 32 16 3 48 16 4 64 16 80 16 6 96 16 7 112 16 8 128 16 9 144 16 160 16 11 176 16 12 192 16 13 208 16 14 224 16 240 16 ' 16 256 16 17 272 8 18 280 - Tableau 1 : Limites et taille des sous-bandes en codage TDAC L'enveloppe spectrale {log_ rms(j)};_:o l7 est calculée dans le bloc 304 suivant la 5 formule : 1 1 sh hound (j+l)ùI log rms(j) = ~ log2 Y(k)2 + e nb _ coef (j) rms k=sh bound (j ) où rma =2-24. , j =0,...,17 9 L'enveloppe spectrale est codée à débit variable dans le bloc 305. Ce bloc 305 produit des valeurs quantifiées, entières, notées rms _ index(j) (avec j=0,...,17), obtenues par simple quantification scalaire : rms _ index(j) = round (2 • log_ rms(j) ) où la notation round désigne l'arrondi à l'entier le plus proche, et avec la contrainte -11 rms index(j) +20 Cette valeur quantifiée rms _ index(j) est transmise au bloc d'allocation de bits 306. Le codage de l'enveloppe spectrale, lui-même, est effectué encore par le bloc 305, séparément pour la bande basse ( rms index(j) , avec j=0,...,9) et pour la bande haute ( rms _index( j) , avec j=10,...,17). Dans chaque bande, deux types de codage peuvent être choisis selon un critère donné, et, plus précisément, les valeurs rms _ index(j) : peuvent être codées par codage dit de Huffman différentiel , - ou peuvent être codées par codage binaire naturel. Un bit (0 ou 1) est transmis au décodeur pour indiquer le mode de codage qui a été choisi. Le nombre de bits alloués à chaque sous-bande pour sa quantification est déterminé au bloc 306 à partir de l'enveloppe spectrale quantifiée issue du bloc 305. L'allocation des bits effectuée minimise l'erreur quadratique tout en respectant la contrainte d'un nombre de bits entier alloué par sous-bande et d'un nombre de bits maximum à ne pas dépasser. Le contenu spectral des sous-bandes est ensuite codé par quantification vectorielle sphérique (bloc 307). Les différents flux binaires générés par les blocs 305 et 307 sont ensuite multiplexés et structurés en un train binaire hiérarchique au bloc de multiplexage 308. 10 * Rappel sur le décodeur par transformée dans le décodeur G.729.1 L'étape de décodage par transformée de type TDAC dans le décodeur G.729.1 est illustrée sur la figure 4. De façon symétrique à l'encodeur (figure 3), l'enveloppe spectrale décodée (bloc 401) permet de retrouver l'allocation des bits (bloc 402). Le décodage d'enveloppe (bloc 401) reconstruit les valeurs quantifiées de l'enveloppe spectrale (rms _index( j) , pour j=0,...,17), à partir du train binaire généré par le bloc 305 (multiplexé) et en déduit l'enveloppe décodée : rms_q(j) = 2 rms_index(i) Le contenu spectral de chacune des sous-bandes est retrouvé par quantification vectorielle sphérique inverse (bloc 403). Les sous-bandes non transmises, faute de budget de bits suffisant, sont extrapolées (bloc 404) à partir de la transformée MDCT du signal en sortie du bloc d'extension de bande (bloc 202 de la figure 2). Après mise à niveau de ce spectre (bloc 405) en fonction de l'enveloppe spectrale et post-traitement (bloc 406), le spectre MDCT est séparé en deux (bloc 407) : - avec 160 premiers coefficients correspondant au spectre i5 du signal de 20 différence décodé en bande basse, filtré perceptuellement, - et 160 coefficients suivants correspondant au spectre SHB du signal original décodé en bande haute. Ces deux spectres sont transformés en des signaux temporels par transformée MDCT 25 inverse, notée IMDCT (blocs 408 et 410), et la pondération perceptuelle inverse (filtre noté W1B (z)-') est appliquée au signal d~,~ (bloc 409) résultant de la transformée inverse. On décrit plus particulièrement ci-après l'allocation de bits aux sous-bandes (bloc 306 de la figure 3 ou bloc 402 de la figure 4). Les blocs 306 et 402 réalisent une opération identique à partir des valeurs rms _index()) , j=0,...,17. On se contente donc par la suite de décrire uniquement le fonctionnement du bloc 306. Le but de l'allocation binaire est de répartir entre chacune des sous-bandes un certain budget de bits (variable) noté nbits _VQ, avec : nbits _ VQ = 351 û nbits _ rms , où nbits _ rms est le nombre de bits utilisés par le codage de l'enveloppe spectrale. Le résultat de l'allocation est le nombre entier de bits, noté nbit(j) (avec j=0,...,17), alloués à chacune des sous-bande avec comme contrainte globale : 17 nbit(j) = nbits VQ 1=o Dans la norme G.729.1, les valeurs nbit(j) (j=0,...,17), sont de plus contraintes par le fait que nbit(j) doit être choisi parmi un jeu de valeurs réduit spécifié au tableau 2 ci-après. Taille de la Ensemble des valeurs autorisées nbit(j) (en nombre de bits) sous-bande j nb_coef(j) 8 R 8 ={0,7,10,12,13,14,15,16} 16 R 16 =10,9,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30, 31, 32} Tableau 2 : Valeurs possibles de nombre de bits alloués dans les sous-bandes TDAC. 5 L'allocation dans la norme G.729.1 repose sur une "importance perceptuelle" par sous-bande liée à l'énergie de la sous-bande, notée ip(j) (j=0..17), définie comme suit : ip(j) _ -log2(rms_q(j)2 xnb_coef(j))+offset où offset = -2. Puisque les valeurs rms _ q(j) = 2 A --index(/' , cette formule se simplifie sous la forme : ip(j) _ 2 rms index(j) pour j = 0,...,16 (rms_index(j)û1) pour j=17 A partir de l'importance perceptuelle de chaque 10 calculée comme suit :sous-bande, l'allocation nbit(j) est nbit(j) = arg min lnb _ coef (j) x (ip(j) û )û r~ reR où 20p, est un paramètre optimisé par dichotomie. 15 On décrit plus en détail maintenant l'incidence de la pondération perceptuelle (filtrage du bloc 300) sur l'allocation de bits (bloc 306) du codeur par transformée TDAC. Dans la norme G.729.1, le codage TDAC utilise le filtre W18 (z) de pondération perceptuelle dans la bande basse (bloc 300), comme indiqué ci-avant. En substance, le 20 filtrage de pondération perceptuelle permet de mettre en forme le bruit de codage. Le principe de ce filtrage est d'exploiter le fait qu'il est possible d'injecter plus de bruit dans les zones de fréquences où le signal original a une forte énergie. Les filtres de pondération perceptuelle les plus couramment utilisés en codage CELP 25 en bande étroite sont de la forme Â(z/y l)/Â(z/y2) où 0 * Inconvénients de l'art antérieur 15 Dans la norme G.729.1, l'encodeur TRAC traite conjointement : - le signal différence, entre la bande basse originale et la synthèse CELP, filtré perceptuellement par un filtre du type Â(z/yl)/Â(z/y2) compensé en gain (assurant une continuité spectrale), et 20 - la bande haute qui contient le signal bande haute original. Le signal bande basse correspond aux fréquences 50 Hz-4 kHz, tandis que le signal bande haute correspond aux fréquences 4-7 kHz. Le codage conjoint de ces deux signaux est réalisé dans le domaine MDCT suivant le 25 critère de l'erreur quadratique. Ainsi.. la bande haute est codée suivant des critères énergétiques, ce qui est sous-optimal (au sens perceptuel du terme). 14 De façon plus générale encore, on pourra considérer le cas d'un codage dans plusieurs bandes, un filtre de pondération perceptuelle étant appliqué au signal d'au moins une bande dans le domaine temporel, et l'ensemble des sous-bandes étant codées conjointement par codage par transformée. Si l'on veut appliquer la pondération perceptuelle dans le domaine des fréquences, il se pose alors le problème de la continuité et de l'homogénéité des spectres entre sous-bandes. La présente invention vient améliorer la situation. Elle propose à cet effet un procédé de codage d'un signal en plusieurs sous-bandes, dans lequel au moins une première et une deuxième sous-bande, adjacentes, sont codées par transformée. 15 Au sens de l'invention, pour appliquer une pondération perceptuelle, dans le domaine transformé, au moins à la deuxième sous-bande, le procédé comporte : - une détermination d'au moins un seuil de masquage fréquentiel à appliquer sur la deuxième sous-bande, et - une normalisation dudit seuil de masquage pour assurer une continuité spectrale 20 entre lesdites première et deuxième sous-bandes. La présente invention propose donc de calculer une pondération perceptuelle fréquentielle, utilisant un seuil de masquage, sur une partie seulement de la bande de fréquences (au moins sur la deuxième sousbande précitée) et d'assurer la 25 continuité spectrale avec au moins une autre bande de fréquences (au moins la première sous-bande précitée) en normalisant le seuil de masquage sur le spectre couvrant ces deux bandes de fréquences. Dans un premier mode d'application de l'invention, dans lequel un nombre de bits à 30 allouer à chaque sous-bande est déterminé à partir d'une enveloppe spectrale, l'allocation des bits pour la deuxième sous-bande au moins est déterminée en outre en10 15 fonction d'un calcul de courbe de masquage normalisé, appliqué au moins à la deuxième sous-bande. Ainsi, au lieu de prévoir, dans ce premier mode de réalisation, une allocation de bits basée sur des critères uniquement énergétiques, l'application de l'invention permet d'affecter les bits aux sous-bandes qui nécessitent le plus de bits selon un critère perceptuel. On applique alors, au sens de ce premier mode de réalisation, une pondération perceptuelle fréquentielle par masquage d'une partie de la bande audio, de façon à améliorer la qualité audio en optimisant en particulier la répartition des bits entre sous-bandes suivant des critères perceptuels. Dans un deuxième mode d'application de l'invention, le signal transformé, dans la deuxième sous-bande, est pondéré par un facteur proportionnel à la racine carrée du seuil de masquage normalisé pour la deuxième sous-bande. Dans ce second mode, le seuil de masquage normalisé n'est pas utilisé pour l'allocation des bits aux sous-bandes comme dans le premier mode d'application ci-avant, mais il peut servir avantageusement à pondérer directement le signal de la deuxième sous-bande au moins, dans le domaine transformé. 20 La présente invention s'applique avantageusement, mais non limitativement, à un codage par transformée de type TDAC dans un codeur global selon la norme G.729.1, la première sous-bande étant incluse dans une bande de basses fréquences, tandis que la deuxième sous-bande est incluse dans une bande de hautes fréquences qui peut 25 s'étendre jusqu'à 7000 Hz, voire plus (typiquement jusqu'à 14 kHz) en extension de bande. L'application de l'invention peut consister alors à prévoir une pondération perceptuelle pour la bande haute tout en assurant la continuité spectrale avec la bande basse.15 On rappelle que dans ce type de codeur global à structure hiérarchique, le codage par transformée intervient dans une couche supérieure d'un codeur hiérarchique global. Avantageusement : la première sous-bande comporte alors un signal issu d'un codage de coeur du codeur hiérarchique, et la deuxième sous-bande comporte un signal original. Comme dans le codeur G.729.1, le signal issu du codage de coeur peut être pondéré perceptuellement et la mise en oeuvre de l'invention est avantageuse dans le sens où toute la bande spectrale peut finalement être pondérée perceptuellement. Comme dans le codeur G.729.1, le signal issu du codage de coeur peut être un signal représentatif d'une différence entre un signal original et une synthèse de ce signal original (appelé signal différence OU encore signal d'erreur ). On verra en effet, en référence à la figure 12 décrite plus loin, que le fait de disposer du signal original n'est pas forcément une nécessité pour la mise en oeuvre de l'invention, de façon avantageuse. La présente invention vise aussi un procédé de décodage, homologue du procédé de codage défini ci-avant, dans lequel au moins une première et une deuxième sous-bande, adjacentes, sont décodées par transformée. Pour appliquer une pondération perceptuelle, dans le domaine transformé, au moins à la deuxième sous-bande, le procédé de décodage comporte alors : une détermination d'au moins un seuil de masquage fréquentiel à appliquer sur la deuxième sous-bande, à partir d'une enveloppe spectrale décodée, et une normalisation dudit seuil de masquage pour assurer une continuité spectrale entre lesdites première et deuxième sous-bandes. Un premier mode d'application du décodage, homologue du premier mode d'application du codage défini ci-avant, vise l'allocation de bits au décodage et un nombre de bits à allouer à chaque sous-bande est déterminé à partir d'un décodage d'enveloppe spectrale. Selon une mise en oeuvre de l'invention, l'allocation des bits pour la deuxième sous-bande au moins est déterminée en outre en fonction d'un calcul de courbe de masquage normalisé, appliqué au moins à la deuxième sous-bande. Un deuxième mode d'application du décodage au sens de l'invention consiste à pondérer le signal transformé dans la deuxième sous-bande, par la racine carrée du seuil de masquage normalisé. Ce mode de réalisation sera décrit en détail en référence à la figure 10B. D'ailleurs, d'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée, donnée à titre d'exemple ci-après, et des dessins annexés sur lesquels, outre les figures 1 à 4 présentées précédemment : - la figure 5 illustre une fonction d'étalement avantageuse pour le masquage au sens de l'invention, la figure 6 illustre, à titre de comparaison avec la figure 3, la structure d'un encodage TDAC utilisant un calcul de courbe de masquage 606 pour l'allocation de bits selon un premier mode d'application de l'invention, -la figure 7 illustre, à titre de comparaison avec la figure 4, la structure d'un décodage TDAC homologue de 1a figure 6, utilisant un calcul de courbe de masquage 702 selon le premier mode d'application de l'invention, - la figure 8 illustre une normalisation de la courbe de masquage, dans une première forme de réalisation où la fréquence d'échantillonnage est de 16 kHz et le masquage de l'invention appliqué pour la bande haute 4-7 kHz, - la figure 9A illustre la structure d'un encodage TDAC modifiée, avec pondération directement du signal dans les hautes fréquences 4-7 kHz dans un deuxième mode d'application de l'invention, et codage du seuil de masquage normalisé, - la figure 9B illustre la structure d'un encodage TDAC dans une variante du deuxième mode d'application illustré sur la figure 9A, avec ici un codage de l'enveloppe spectrale, la figure 10A illustre la structure d'un décodage TDAC homologue de la figure 9A, selon le deuxième mode d'application de l'invention, la figure 10B illustre la structure d'un décodage TDAC homologue de la figure 9B, selon le deuxième mode d'application de l'invention, avec ici un calcul du seuil de masquage au décodage, la figure 11 illustre la normalisation de la courbe de masquage en bandesuper- élargie dans une deuxième forme de réalisation de l'invention où la fréquence d'échantillonnage est de 32 kHz et le masquage de l'invention appliqué pour la bande haute élargie de 4 à 14 kHz, et la figure 12 illustre la puissance spectrale, en sortie de codage CELP, du signal de différence D1B (en trait plein) et du signal original SLB (en traits pointillés). On décrit ci-après une application de l'invention qui s'avère avantageuse mais non limitative dans un encodeur/décodeur selon la norme G.729.1 décrit précédemment en référence aux figures 1 à 4, en incorporant, selon l'invention, une information de masquage. Auparavant toutefois, les notions de compensation de gain en filtrage perceptuel et de masquage fréquentiel sont présentées ci-après, pour mieux appréhender le principe de l'invention. 20 L'invention apporte un perfectionnement à la pondération perceptuelle réalisée dans le codeur par transformée en exploitant l'effet de masquage connu sous le nom de masquage simultané ou masquage fréquentiel . Cette propriété correspond à la modification du seuil d'audition en présence d'un son 25 dit masquant . Ce phénomène est observé typiquement lorsque, par exemple, on essaie de tenir une discussion avec du bruit ambiant, par exemple en pleine rue et que le bruit d'un véhicule vient masquer la voix d'un locuteur. Un exemple d'utilisation du masquage dans un codec audio peut être trouvé dans le 30 document Mahieux et al. :15 "High-quality audio transform coding at 64 kbps ", Y. Mahieux, J.P. Petit, IEEE Transactions on Communications, Volume 42, no. 11, Pages : 3010 û 3019 (Novembre 1994). Dans ce document, un seuil de masquage approximatif est calculé pour chaque raie du spectre. Ce seuil est celui au-dessus duquel la raie concernée est supposée audible. Le seuil de masquage est calculé à partir de la convolution du spectre du signal avec une fonction d'étalement B(v) modélisant l'effet de masquage d'un son (sinusoïde ou bruit blanc filtré) par un autre son (sinusoïde ou bruit blanc filtré). Un exemple d'une telle fonction d'étalement est présenté sur la figure 5. Cette fonction est définie dans un domaine fréquentiel dont l'unité est le Bark. L'échelle de fréquence est représentative de la sensibilité fréquentielle de l'oreille. Une approximation usuelle de la conversion d'une fréquence f en Hertz, en fréquences notées v (en Barks), est donnée par la relation suivante : 7500) Dans ce document, le calcul du seuil de masquage est effectué par sous-bande plutôt que par raie. Le seuil ainsi obtenu est utilisé pour pondérer perceptuellement chacune des sous-bandes. L'allocation des bits est ainsi effectuée, non pas en minimisant l'erreur quadratique mais en minimisant le rapport bruit de codage à masque , le but étant de mettre en forme le bruit de codage de tel sorte qu'il soit inaudible (en dessous du seuil de masquage). Bien entendu, d'autres modèles de masquage ont été encore proposés. Typiquement, la 25 fonction d'étalement peut être fonction du niveau de la raie et/ou de la fréquence de la raie masquante. Une détection des pics peut aussi être mise en oeuvre. Il convient d'indiquer que pour réduire la sous-optimalité du codage selon la norme G.729.1, on pourrait penser à intégrer une technique de masquage fréquentiel dans /( f 2.\ v= 13•arctan(0.00076• f)+3.5•arctan l'allocation des bits, de façon similaire à celle présentée dans le document Mahieux et al. Néanmoins, la nature hétérogène des deux signaux bande basse et bande haute ne permet pas d'appliquer directement la technique de masquage pleine bande de ce document. D'une part, le seuil de masquage pleine bande ne peut pas vraiment être calculé dans le domaine MDCT, car le signal bande basse n'est pas homogène à un signal original . D'autre part, appliquer un seuil de masquage sur toute la bande de fréquences reviendrait à pondérer une nouvelle fois le signal en bande basse qui est déjà pondérée par le filtre de type Â(z/yl)/Â(z/y2), la pondération supplémentaire par un seuil n'ayant alors aucun sens pour ce signal de bande basse. Une application de l'invention décrite ci-après permet d'améliorer le codage TDAC de l'encodeur selon la norme G.729.1, en particulier en appliquant une pondération perceptuelle de la bande haute (4 à 7 kHz) tout en assurant la continuité spectrale entre bandes basse et haute pour un codage satisfaisant et conjoint de ces deux bandes. Dans un encodeur et/ou un décodeur selon la norme G.729.1, perfectionnés par la mise en oeuvre de l'invention, seuls les codeur et décodeur TDAC sont modifiés, dans l'exemple décrit ci-après. 20 Le signal d'entrée est échantillonné à 16 kHz, de bande utile 50 Hz à 7 kHz. En pratique le codeur fonctionne toujours au débit maximal de 32 kbit/s, tandis que le décodeur peut recevoir le coeur (8 kbit/s), ainsi qu'une ou plusieurs couches d'amélioration (12 à 32 kbit/s par pas de 2 kbit/s), comme dans la norme G.729.1. Les codage et décodage ont la même architecture que celle présentée aux figures 1 et 2. Ici, 25 seuls les blocs 110 et 203 sont modifiés tels que décrits aux figures 6 et 7. Dans un premier mode de réalisation décrit ci-après en référence à la figure 6, le codeur TDAC modifié est identique à celui de la figure 3, mis à part que l'allocation des bits suivant l'erreur quadratique (bloc 306) est désormais remplacée par un calcul 30 de courbe de masquage et une allocation des bits modifiée (blocs 606 et 607),15 l'invention s'inscrivant dans le cadre du calcul de la courbe de masquage (bloc 606) et de son utilisation dans l'allocation des bits (bloc 607). De même, le décodeur TDAC modifié est présenté sur la figure 7 dans ce premier mode de réalisation. Ce décodeur est identique à celui de la figure 4, mis à part que l'allocation des bits suivant l'erreur quadratique (bloc 402) est remplacée par un calcul de courbe de masquage et une allocation des bits modifiée (blocs 702 et 703). De façon symétrique au codeur TDAC modifié, l'invention se rapporte aux blocs 702 et 703. Les blocs 606 et 702 réalisent une opération identique à partir des valeurs rms _index( j) , j=0,...,17. De même, les blocs 607 et 703 réalisent une opération identique à partir des valeurs log_ mask(j) et rms _index( j , j=0,...,17. Dans ce qui suit, on ne décrit donc que le fonctionnement des blocs 606 et 607. Le bloc 606 calcule une courbe de masquage à partir de l'enveloppe spectrale quantifiée rms _ q(j) où j=0,...,17 est le numéro de la sous-bande. Le seuil de masquage M(j) de la sous-bande j est défini par la convolution de 20 l'enveloppe d'énergie 62 (j) = rms _ q(j) 2 x nb _ coef (j) , par une fonction d'étalement B(v) . Dans l'exemple de réalisation donné ici du codage TDAC dans l'encodeur G.729.1, ce masquage n'est effectué que sur la bande haute du signal, avec : 17 M(j)=2(k)xB(v~ û vk) k=10 25 où vk est la fréquence centrale de la sous-bande k en Bark, le signe x désignant multiplié par , avec la fonction d'étalement décrite ci-après.15 En termes plus génériques, le seuil de masquage M(j), pour une sous-bande j, est donc défini par une convolution entre : - une expression de l'enveloppe spectrale, et - une fonction d'étalement faisant intervenir une fréquence centrale de la sous-bande j. 5 Une fonction d'étalement avantageuse est celle présentée à la figure 5. Il s'agit d'une fonction triangulaire dont la première pente est de +27dB/Bark et -10dB/Bark pour la deuxième. Cette représentation de la fonction d'étalement permet le calcul itératif de la courbe de masquage suivant : M- (10) j =10 10 M(j)= M+(j)+M-(j)+â-Z(j) j=1,..,16 M+ (17) j =17 où M+(j)=6Z(j-1).A2(A +M+(j-1).020) j=11,..,17 M (j)=â•2(j+l)•A,(i)+M (j+l)•0,(i) j=10,..,16 A2(j)=10 27 O,(j)=10 Les valeurs de 0, (j) et A2(j) peuvent être pré-calculées et stockées. 20 On décrit ci-après un premier mode d'application de l'invention à l'allocation de bits dans un codeur hiérarchique tel que l'encodeur G.729.1. Le critère d'allocation de bits se fonde ici sur le rapport signal-à-masque donné par : ùloge 2 MU)) et 15 25 La bande basse étant déjà filtrée perceptuellement, l'application du seuil de masquage est limitée à la bande haute. De manière à assurer la continuité spectrale entre le spectre en bande basse et celui en bande haute pondéré par le seuil de masquage et pour éviter de biaiser l'allocation binaire, le seuil de masquage est normalisé par sa valeur sur la dernière sous-bande de la bande basse. L'importance perceptuelle est donc redéfinie comme suit : [!log2 (62(j))+offset pour j = 0..9 iP(j) _ ( -2 (j) loge + normfac -1-offset pour j =10..17 ,M(j), où offsea = -2 et normfac est un facteur de normalisation calculé suivant la relation : 17 normfac loge EQ2(j)xB(v9 ûv~) l=9 On note que l'importance perceptuelle ip(j) , j=0,...,9, est identique à celle définie dans la norme G.729.1. Par contre, la définition du terme ip(j) , j=10,...,17, est changée. L'importance perceptuelle redéfinie ci-dessus s'écrit maintenant : 2 rms _ index(j) pour j = 0,..., 9 2 [rms index(j) û log mask(j)] pour j =10,...,17 où log_ mask(j) =loge (M(j)) û normfac . On comprendra que la deuxième ligne de l'accolade pour le calcul de l'importance 20 perceptuelle est une expression de la mise en oeuvre de l'invention selon cette première application à l'allocation de bits dans un codage par transformée en tant que couche supérieure d'un codeur hiérarchique. iP(j) Une illustration de la normalisation du seuil de masquage est donnée en figure 8, montrant le raccord de la bande haute sur laquelle est appliquée le masquage (4-7 kHz) à la bande basse (0-4 kHz). Les blocs 607 et 703 effectuent alors les calculs d'allocation de bits : nbit(j)=arg min Inbûcoef(j)x(ip(j)û)ûrl YER nh_coeJ(J) où est obtenu par dichotomie comme dans la norme G.729.1. La seule différence par rapport aux blocs 307 et 402 de l'art antérieur est donc la définition de l'importance perceptuelle ip(j) pour les sous-bandes de la bande haute. Dans une variante de ce mode de réalisation où la normalisation du seuil de masquage s'effectue par rapport à sa valeur sur la dernière sous-bande de la bande basse, la normalisation du seuil de masquage peut être plutôt réalisée à partir de la valeur du seuil de masquage dans la première sous-bande de la bande haute, comme suit : normfac = log2 17 1 ô-2( j) x B(vto ù v i) j=10 Dans une autre variante encore, le seuil de masquage peut être calculé sur l'ensemble de la bande de fréquences, avec : 17 M(j) = l62(k)xB(v û vk) k=0 Le seuil de masquage est ensuite appliqué uniquement à la bande haute après normalisation du seuil de masquage par sa valeur sur la dernière sous-bande de la bande basse: 17 normfac=loge [2(J)XB(V ùV1) i=o 25 ou encore par sa valeur sur la première sous-bande de la bande haute : 17 normfac =loge 1 [2(J)XB(V ,o ù vi ) =o Bien entendu, ces relations donnant le facteur de normalisation normfac ou le seuil de masquage M(j) sont généralisables à un nombre de sous-bandes quelconque (différent, au total, de dix-huit) en bande haute (avec un nombre différent de huit), comme en bande basse (avec un nombre différent de dix). De manière générale, on relèvera aussi que l'on cherche une continuité en énergie 10 entre la bande haute et la bande basse, alors que l'on utilise pour ce faire le signal différence, pondéré perceptuellement, en bande basse d a , et non pas le signal original lui-même. En réalité, comme illustré sur la figure 12, le codage CELP sur le signal différence (courbe en trait plein) donne, en fin de bande basse (après 2700 Hz, typiquement), un niveau d'énergie très proche du signal original lui-même (courbe en 15 traits pointillés). Comme dans le codage G.729.1, seul le signal différence pondéré perceptuellement est disponible en bande basse, on utilise cette observation pour déterminer le facteur de normalisation du masque en bande haute. Dans un deuxième mode de réalisation, le seuil de masquage normalisé n'est pas utilisé 20 pour pondérer l'énergie dans la définition de l'importance perceptuelle, comme dans le premier mode de réalisation décrit ci-avant, mais il sert à pondérer directement le signal de bande haute avant codage TDAC. Ce deuxième mode de réalisation est illustré sur les figures 9A (pour l'encodage) et 25 10A (pour le décodage). Une variante de ce deuxième mode, que vise la présente invention en particulier pour le décodage effectué, est illustré sur les figures 9B (pour l'encodage) et 10B (pour le décodage). 26 Dans les figures 9A et 9B, le spectre Y(k) issu du bloc 903 est divisé en dix-huit sous-bandes et l'enveloppe spectrale est calculée (bloc 904) comme décrit précédemment. En revanche, le seuil de masquage est calculé (bloc 905 de la figure 9A et bloc 906b de la figure 9B) à partir de l'enveloppe spectrale non quantifiée. Dans la réalisation de la figure 9A, on code directement une information représentative de la pondération par le seuil de masquage M(j), plutôt que coder l'enveloppe spectrale. En pratique, dans cette réalisation, on code les facteurs d'échelle sf (j), seulement à partir de j = 10 et jusqu'à j = 17. En effet, les facteurs d'échelle sont donnés par : sf (j) = 1, pour j = 0,. ,9 , sur la bande basse, et par la racine carrée du seuil de masquage normalisé MU), pour la bande haute, soit sf (j) = -Pd( j) , pour] = 10, ..., 17. Ainsi, il n'est pas besoin de coder les facteurs d'échelle pour j = 0,...,9 et l'on ne code les facteurs d'échelle que pour] =10,...,17. En référence à la figure 9A encore, l'information correspondant aux facteurs d'échelle sf (j) , pour j =10,...,17 , peut être codée (bloc 906) par une technique de codage d'enveloppe du même type que celle utilisée dans l'encodeur G.729.1 (bloc 305 de la figure 3), par exemple par quantification scalaire suivi d'un codage de Huffman différentiel pour la partie de bande haute. Le spectre Y(k) est ensuite divisé (bloc 907) par les facteurs d'échelle décodés, sf q(j) , j = 0,.• •,17 avant codage de type dit gain-forme (de l'anglais gain- shape coding ). Ce codage est réalisé par quantification algébrique suivant l'erreur quadratique, tel que décrit dans le document Ragot et al : 27 "Low-complexity multi-rate lattice vector quantization with application to wideband TCX speech coding at 32 kbit/s", S. Ragot, B. Bessette, et R. Lefebvre, Proceedings ICASSP - Montreal (Canada), Pages: :501-504, vol.l (2004). Cette méthode quantification de type gain-forme est mise en oeuvre en particulier dans la norme 3GPP AMR-WB+. Le décodeur homologue est illustré à la figure 10A. Les facteurs d'échelle sf _ q(j) , j = 0,.. ,17 , sont décodés dans le bloc 1001. Le bloc 1002 est réalisé alors comme décrit dans le document Ragot et al. précité. L'extrapolation des sous-bandes manquantes (bloc 1003 de la figure 10A) suit le même principe que dans le décodeur G.729.1 (bloc 404 de la figure 4). Ainsi, si une sous-bande décodée ne comprend que des zéros, le spectre décodé par l'extension de bande remplace alors cette sous-bande. Le bloc 1004 réalise également une fonction similaire à celle du bloc 405 de la figure 4. Cependant, les facteurs d'échelle sf __ q(j) , j = 0,.. .,17 , sont utilisés à la place de l'enveloppe spectrale décodée, rms _ q(j) , j = 0,.. . ,17 . 20 Ce deuxième mode de réalisation peut s'avérer particulièrement avantageux notamment dans une implémentation selon la norme 3GPP-AMR-WB+ qui se présente comme le contexte de prédilection du document Ragot et al. précité. Dans une variante de ce deuxième mode de réalisation, telle que représentée sur les 25 figures 9B et 10B (les mêmes références sur les figures 9A et 9B, et 10A et 10B, désignant les mêmes éléments), l'information codée reste l'enveloppe d'énergie (plutôt que le seuil de masquage lui-même comme sur les figures 9A et 10A). Au codage, le seuil de masquage est calculé et normalisé (bloc 906b de la figure 9B) à 30 partir de l'enveloppe spectrale codée (bloc 905b). Au décodage, le seuil de masquage 15 est calculé et normalisé (bloc 101l b de la figure 10B) à partir de l'enveloppe spectrale décodée (bloc 1001b), le décodage de l'enveloppe permettant de réaliser un ajustement de niveau (bloc 1010b de la figure 1013) à partir des valeurs quantifiées rms_q(j). Ainsi, en cas de sous-bandes décodées nulles, il est avantageusement possible, dans cette variante, d'effectuer une extrapolation et de maintenir un niveau de signal décodé correct. De manière générale, dans le premier comme dans le deuxième mode de réalisation, on comprendra que l'on calcule un seuil de masquage pour chaque sous-bande, au moins pour les sous-bandes de la bande des hautes fréquences, ce seuil de masquage étant normalisé pour assurer une continuité spectrale entre les sous-bandes concernées. On indique aussi que le calcul d'un masquage fréquentiel au sens de l'invention peut être effectué ou non selon le signal à coder (en particulier s'il est tonal ou non). Il a pu être observé en effet que le calcul du seuil de masquage est particulièrement avantageux lorsque le signal à coder n'est pas tonal, dans le premier mode, comme dans le deuxième mode de réalisation, décrits ci-avant. Si le signal est tonal, l'application de :la fonction d'étalement B(v) résulte en un seuil de masquage très proche d'un ton un peu plus étalé en fréquences. Le critère d'allocation minimisant le rapport bruit de codage à masque donne alors une allocation des bits assez médiocre. Il en va de même pour la pondération directe du signal de bande haute selon le deuxième mode de réalisation. Il est donc préféré, pour un signal tonal, d'utiliser une allocation des bits suivant des critères énergétiques. Ainsi, de façon préférentielle, l'invention n'est appliquée que si le signal à coder n'est pas tonal. En termes génériques, on obtient donc une information (du bloc 305) selon laquelle le signal à coder est tonal ou non tonal, et la pondération perceptuelle de la bande haute, avec la détermination du seuil de masquage et la normalisation, ne sont menées que si le signal est non tonal. On décrit maintenant la mise en oeuvre de cette observation dans un encodeur selon la norme G.729.1. Le bit relatif au mode du codage de l'enveloppe spectrale (bloc 305 de la figure 3 notamment) indique un mode "Huffman différentiel" ou un mode "binaire naturel direct". Ce bit de mode peut être interprété comme une détection de tonalité, car, en général, un signal tonal conduit à un codage d'enveloppe par le mode "binaire naturel direct", tandis que la plupart des signaux non tonaux, ayant une dynamique spectrale plus limitée, conduisent à un codage d'enveloppe par le mode "Huffman différentiel". Ainsi, ii peut être tiré un avantage de la détection de tonalité du signal pour mettre en oeuvre l'invention ou non. Plus particulièrement, l'invention est appliquée dans le cas où l'enveloppe spectrale a été codée en mode "Huffman différentiel" et l'importance perceptuelle est définie alors au sens de l'invention, comme suit : 2 rms _ index(j) pour j = 0..9 2 [rms _ index(j) ù log_ mask(j)] pour j =10..17 Par contre, si l'enveloppe a été codée en mode "binaire naturel direct", l'importance perceptuelle reste telle que définie dans la norme G.729.1 : 2 rms _ index(j) pour j = 0,...,16 2 (rms _ index(j) -1) pour j =17 On indique que dans le deuxième mode de réalisation, le module 904 de la figure 9A peut, en calculant l'enveloppe spectrale, déterminer si le signal est tonal ou non et ainsi ip(j) ip(j) le bloc 905 est contourné dans l'affirmative. De même, pour le mode de réalisation décrit à la figure 9B, le module 904 peut permettre de déterminer si le signal est tonal ou non et ainsi contourner le bloc 907 dans l'affirmative. On décrit maintenant une application possible de l'invention à une extension de l'encodeur G.729.1, en particulier en bande super-élargie. La figure 11 généralise la normalisation de la courbe de masquage (décrite à la figure 8) au cas d'un codage en bande super-élargie. Les signaux sont, dans cette réalisation, échantillonnés à une fréquence de 32 kHz (au lieu de 16 kHz) pour une bande utile de 50 Hz û 14 kHz. La courbe de masquage loge [M(j)] est alors définie au moins pour les sous-bandes allant de 7 à 14 kHz. En effet, le spectre couvrant la bande 50Hz - 14 kHz est codé par sous-bandes et l'allocation des bits à chaque sous-bande est réalisée à partir de l'enveloppe spectrale comme dans l'encodeur G.729.1. Dans ce cas, un seuil de masquage partiel peut être calculé comme décrit précédemment. La normalisation du seuil de masquage, telle qu'illustrée sur la figure 11, se généralise 20 donc aussi au cas où la bande haute comporte plus de sous-bandes ou couvre une zone de fréquences plus large que dans la norme G.729.1. En référence à la figure 11, sur la bande basse entre 50 Hz et 4 kHz, une première transformée Ti est appliquée au signal différence pondéré temporellement. Une 25 deuxième transformée T2 est appliquée au signal sur la première bande haute entre 4 et 7 kHz et une troisième transformée T3 est appliquée au signal sur la deuxième bande haute entre 7 et 14 kHz. On comprendra ainsi que l'invention ne se limite pas à des signaux échantillonnés à 30 16kHz. Sa mise en oeuvre est particulièrement avantageuse aussi pour des signaux échantillonnés à des fréquences supérieures, comme pour l'extension de l'encodeur selon la norme G.729.1 à des signaux échantillonnés non plus à 16 kHz mais à 32 kHz, comme décrit ci-avant. Si le codage TDAC est généralisé à une telle bande de fréquences (50 Hz ù 14 kHz au lieu de 50 Hz ù 7kHz actuellement), l'avantage procuré par l'invention sera réellement majeur. En effet, dans la gamme de fréquences 4-14 kHz, les limites du critère d'erreur quadratique deviennent vraiment rédhibitoires et, pour que l'allocation des bits reste quasi-optimale, une pondération perceptuelle exploitant le masquage fréquentiel au sens de l'invention s'avère très avantageuse. Ainsi, l'invention vise également à améliorer le codage TDAC, en particulier en appliquant une pondération perceptuelle de la bande haute étendue (4-14 kHz) tout en assurant la continuité spectrale entre bandes, ce critère étant important pour un codage conjoint de la première bande basse et de la deuxième bande haute et étendue jusqu'à 14 kHz. On a décrit ci-avant une réalisation dans laquelle la bande basse était toujours pondérée perceptuellement. Cette réalisation n'est aucunement nécessaire pour la mise en oeuvre de l'invention. Dans une variante, le codeur hiérarchique est mis en oeuvre avec un codeur coeur dans une première bande de fréquences, et le signal d'erreur associé à ce codeur coeur est directement transformé, sans pondération perceptuelle dans cette première bande de fréquences, pour être codé conjointement avec le signal transformé d'une deuxième bande de fréquences. A titre d'exemple, le signal original peut être échantillonné à 16 kHz et décomposé en deux bandes de fréquences (de 0 à 4000 Hz et de 4000 à 8000 Hz) par un banc de filtres approprié, de type QMF. Le codeur peut être typiquement, dans une telle réalisation, un codeur selon la norme G.711 (avec compression PCM). Le codage par transformée est effectué alors sur : - le signal différence entre le signal original et la synthèse G.711 dans la première bande de fréquences (0-4000 Hz), et le signal original, pondéré perceptuellement dans le domaine fréquentiel selon l'invention, dans une deuxième bande de fréquences (4000-8000 Hz). Ainsi, dans cette réalisation, la pondération perceptuelle dans la bande basse n'est pas nécessaire pour l'application de l'invention. Dans une autre variante, le signal original est échantillonné à 32 kHz et décomposé en deux bandes de fréquences (de 0 à 8000 Hz et de 8000 à 16000 Hz) par un banc de filtres approprié, de type QMF. Le codeur peut être ici un codeur selon la norme G.722 (compression ADPCM en deux sous-bandes), et le codage par transformée est effectué sur : le signal différence entre le signal original et le signal de synthèse G.722 dans la première bande de fréquences (0-8000 Hz), et le signal original, lequel est encore pondéré perceptuellement selon l'invention dans un domaine fréquentiel restreint à la deuxième bande de fréquences (8000- 16000 Hz). On indique enfin que la présente invention vise aussi un premier programme informatique, stocké dans une mémoire d'un codeur d'un terminal de télécommunication et/ou stocké sur un support mémoire destiné à coopérer avec un lecteur dudit codeur. Ce premier programme comporte alors des instructions pour la mise en oeuvre du procédé de codage défini ci-avant, lorsque ces instructions sont exécutées par un processeur du codeur. La présente invention vise aussi un codeur comportant au moins une mémoire stockant ce premier programme informatique. On comprendra que les figures 6, 9A et 9B peuvent constituer des organigrammes de ce premier programme informatique, ou illustrer encore la structure d'un tel codeur, selon des modes de réalisation et variantes distincts. 10 33 La présente invention vise aussi un deuxième programme informatique, stocké dans une mémoire d'un décodeur d'un terminal de télécommunication et/ou stocké sur un support mémoire destiné à coopérer avec un lecteur dudit décodeur. Ce deuxième programme comporte alors des instructions pour la mise en oeuvre du procédé de décodage défini ci-avant, lorsque ces instructions sont exécutées par un processeur du décodeur. La présente invention vise aussi un décodeur comportant au moins une mémoire stockant ce deuxième programme informatique. On comprendra aussi que les figures 7, 10A, 10B peuvent constituer des organigrammes de ce deuxième programme informatique, ou illustrer encore la structure d'un tel décodeur, selon des modes de réalisation et variantes distincts. REVENDICATIONS 1. Procédé de codage d'un signal en plusieurs sous-bandes, dans lequel au moins une première et une deuxième sous-bande, adjacentes, sont codées par transformée (601, 602 ; 901, 902), caractérisé en ce que, pour appliquer une pondération perceptuelle, dans le domaine transformé, au moins à la deuxième sous-bande, le procédé comporte : une détermination d'au moins un seuil de masquage fréquentiel (606 ; 905 ; 906b) à appliquer sur la deuxième sous-bande, et une normalisation dudit seuil de masquage pour assurer une continuité spectrale entre lesdites première et deuxième sous-bandes. 2. Procédé selon la revendication 1, dans lequel un nombre de bits à allouer à chaque sous-bande est déterminé à partir d'une enveloppe spectrale, caractérisé en ce que l'allocation des bits (607) pour la deuxième sous-bande au moins est déterminée en outre en fonction d'un calcul de courbe de masquage normalisé, appliqué au moins à la deuxième sous-bande (606). 3. Procédé selon la revendication 2, dans lequel le codage est effectué sur plus de deux sous-bandes, la première sous-bande étant incluse dans une première bande spectrale et la deuxième sous-bande étant incluse dans une deuxième bande spectrale, caractérisé en ce que le nombre de bits par sous-bande nbit(j) est donné, pour chaque sous-bande d'indice j, en fonction d'une importance perceptuelle ip(j) calculée à partir d'une relation du type : - ip(j) = 2 rms _index( j) , si j est un indice de sous-bande dans la première bande, et - ip(j) _ 1 [rms _ index(j) û log_ mask(j)] , si j est un indice de sous-bande dans la deuxième bande, avec log_ mask(j) = log, (M(j)) û normfac , où : 34rms index(j) sont des valeurs quantifiées issues du codage de l'enveloppe, pour la sous-bande j, M(j) est le seuil de masquage pour ladite sous-bande d'indice j, et normfac est un facteur de normalisation déterminé pour assurer la continuité spectrale entre lesdites première et deuxième sous-bandes. 4. Procédé selon la revendication 1, caractérisé en ce que le signal transformé, dans la deuxième sous-bande, est pondéré (905) par un facteur proportionnel à la racine carrée du seuil de masquage normalisé pour la deuxième sous-bande. 5. Procédé selon la revendication 4, dans lequel le codage est effectué sur plus de deux sous-bandes, la première sous-bande étant incluse dans une première bande spectrale et la deuxième sous-bande étant incluse dans une deuxième bande spectrale, caractérisé en ce que l'on code (906) des valeurs de pondération de . JM (j) , où M( j) est le seuil de masquage normalisé pour une sous-bande d'indice j, incluse dans la deuxième bande spectrale. 6. Procédé selon l'une des revendications précédentes, caractérisé en ce que le codage par transformée intervient dans une couche supérieure (110) d'un codeur hiérarchique, - la première sous-bande comportant un signal (d H) issu d'un codage de coeur (105) du codeur hiérarchique, et la deuxième sous-bande comportant un signal original (SHB). 7. Procédé selon la revendication 6, caractérisé en ce que le signal (d B) issu du codage de coeur est pondéré perceptuellement (600 ; 900). 8. Procédé selon l'une des revendications 6 et 7, caractérisé en ce que le signal (d; ) issu du codage de coeur est un signal représentatif d'une différence entre un signal original et une synthèse de ce signal original. 9. Procédé selon l'une des revendications 6 à 8, caractérisé en ce que le codage par transformée est de type TDAC dans un codeur global selon la norme G.729.1, et en ce que la première sous-bande est incluse dans une bande de basses fréquences (T1), tandis que la deuxième sous-bande est incluse dans une bande de hautes fréquences. 10. Procédé selon la revendication 9, caractérisé en ce que la bande de hautes fréquences s'étend jusqu'à 7000 Hz (T2), au moins (T3). 11. Procédé selon l'une des revendications précédentes, dans lequel une enveloppe spectrale est calculée (604 ; 904), caractérisé en ce que le seuil de masquage, pour une sous-bande, est défini par une convolution entre : une expression de l'enveloppe spectrale, et - une fonction d'étalement faisant intervenir une fréquence centrale de ladite sous-bande. 12. Procédé selon l'une des revendications précédentes, dans lequel on obtient une information (305) selon laquelle le signal à coder est tonal ou non tonal, caractérisé en ce que la pondération perceptuelle de la deuxième sous-bande, avec la détermination du seuil de masquage et la normalisation, ne sont menées que si le signal est non tonal. 13. Procédé de décodage d'un signal en plusieurs sous-bandes, dans lequel au moins une première et une deuxième sous-bande, adjacentes, sont décodées par transformée (709, 711 ; 1007, 1009), caractérisé en ce que, pour appliquer une pondération perceptuelle, dans le domaine transformé, au moins à la deuxième sous-bande, le procédé comporte : une détermination d'au moins un seuil de masquage fréquentiel (702 ; 1001 ; 1011b) à appliquer sur la deuxième sous-bande, à partir d'une enveloppe spectrale décodée, et - une normalisation dudit seuil de masquage pour assurer une continuité spectrale entre lesdites première et deuxième sous-bandes. 14. Procédé selon la revendication 13, dans lequel un nombre de bits à allouer à chaque sous-bande (703) est déterminé à partir d'un décodage d'enveloppe spectrale (701), caractérisé en ce que l'allocation des bits (703) pour la deuxième sous-bande au moins est déterminée en outre en fonction d'un calcul de courbe de masquage normalisé (702), appliqué au moins à la deuxième sous-bande. 15. Procédé selon la revendication 13, caractérisé en ce que le signal transformé, dans la deuxième sous-bande, est pondéré (1004) par un facteur proportionnel à la racine carrée du seuil de masquage normalisé pour la deuxième sous-bande. 16. Programme informatique, stocké dans une mémoire d'un codeur d'un terminal de télécommunication et/ou stocké sur un support mémoire destiné à coopérer avec un lecteur dudit codeur, caractérisé en ce qu'il comporte des instructions pour la mise en oeuvre du procédé de codage selon l'une des revendications 1 à 12 lorsque lesdites instructions sont exécutées par un processeur du codeur. 17. Codeur, caractérisé en ce qu'il comporte au moins une mémoire stockant un programme informatique selon la revendication 16. 18. Programme informatique, stocké dans une mémoire d'un décodeur d'un terminal de télécommunication et/ou stocké sur un support mémoire destiné à coopérer avec un lecteur dudit décodeur, caractérisé en ce qu'il comporte des instructions pour la mise en oeuvre du procédé de décodage selon l'une des revendications 13 à 15 lorsque lesdites instructions sont exécutées par un processeur du décodeur. 19. Décodeur, caractérisé en ce qu'il comporte au moins une mémoire stockant un programme informatique selon la revendication 18.