FR 2947944 A1 20110114 FR 0954682 A 20090707 Codage/Décodage perfectionné 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). L'invention s'applique plus particulièrement au 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) d'amélioration. La norme G.722 à 48, 56 et 64 kbit/s est un exemple de codec scalable en débit, tandis que les codecs UIT-T G.729.1 et MPEG-4 CELP sont des exemples de codecs scalables à la fois en débit et en largeur de bande. 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 25 d'amélioration. La couche de base est générée par un codec à débit fixe, qualifié de � codec coeur �, garantissant la qualité minimale du codage. Cette couche doit être 2947944 -2 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 5 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. 10 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. 15 * 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 20 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 qui utilisent le codec G.729. Le codeur G.729.1 est schématisé sur la figure 1. Le signal d'entrée en bande élargie sWb , é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 2947944 -3 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~B , avant codage 5 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. 10 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 sHB . Une extension de bande 15 paramétrique (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 cl,,,, 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 (de type TDAC pour � Time Domain Aliasing Cancellation � dans la norme G.729.1) est 20 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 25 Erasure Concealment �, en vue de reconstituer d'éventuelles trames effacées. - 4 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. 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 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). - 5 Le signal de sortie en bande élargie sWh , é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. 10 Le filtre W,B (z) (bloc 300) est un filtre de pondération perceptuelle, avec compensation de gain, appliqué au signal d'erreur en bande basse dLB . Des transformées MDCT sont ensuite calculées (bloc 301 et 302) pour obtenir : - le spectre MDCT DAB du signal de différence, filtré perceptuellement, et - le spectre MDCT SHB du signal original de la bande haute. 15 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) Y(1) ... Y(319)] = [DAB (0) Di, (1) ... DAB (159) SHB (0) SHB (1) ... SHB (159)] Ce spectre est divisé en dix-huit sous-bandes, une sous-bande j étant affectée 20 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) k A noter que les coefficients 280-319 correspondants à la bande de fréquence 7000 Hz ù 8000 Hz ne sont pas codés; ils sont mis à zéro au décodeur, car la bande passante du codec est de 50-7000 Hz. J sb bound (j) nb coef (j) 0 0 16 1 16 16 2 32 16 3 48 16 4 64 16 5 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)}j_0 17 est calculée dans le bloc 304 suivant la formule : - 7 sb bound (j+l)ù1 log rms(j) = 1 1 ùlog, L Y(k)2 +�rms , j = 0,...,17 2 nb CO2 (J) , k=sbbound(j) ou E rms = 2ù24 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 5 j=0,...,17), obtenues par simple quantification scalaire : rms_index( j)=round (2.logrms( j)) où la notation � round � désigne l'arrondi à l'entier le plus proche, et avec la contrainte : -11 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. * 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 : ms q(i) = 2� 1111S index(j) 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 DAB du signal de différence décodé en bande basse, filtré perceptuellement, - 9 - 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 5 MDCT inverse, notée IMDCT (blocs 408 et 410), et la pondération perceptuelle inverse (filtre noté WLB (z)-1) est appliquée au signal d~B (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). 10 Les blocs 306 et 402 réalisent une opération identique à partir des valeurs rms _ index(j) , 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 : 15 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 L nbit(j) nbits _ VQ l=o 20 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. 2947944 -10- 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, 321 Tableau 2 : Valeurs possibles de nombre de bits alloués dans les sous-bandes TDAC. 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 x nb_coef (j))+ offset où offset = -2. Puisque les valeurs rms _ q(j) = 2� rmsùindex(j) cette formule se simplifie sous la forme : 2 ùrms index(j) pour j = 0,...,16 -(rms index( j)ù1) pour j =17 A partir de l'importance perceptuelle de chaque sous-bande, l'allocation nbit(j) est calculée comme suit : nbit(j) = arg min nb coef (~) x (ap(7) ù X0 )ù r rER nb coi(J) où ~opt est un paramètre optimisé par dichotomie pour satisfaire la contrainte globale ip(j) 2947944 -11- 17 nbit(j) nbits _ VQ l=o en s'approchant au mieux du seuil nbits VQ. On décrit plus en détail maintenant l'incidence de la pondération perceptuelle 5 (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 WLB (z) de pondération perceptuelle dans la bande basse (bloc 300), comme indiqué ci-avant. En substance, le filtrage de pondération perceptuelle permet de mettre en forme le bruit 10 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 en bande étroite sont de la forme Â(z/yl)/Â(z/y2) où 0 15 CELP revient ainsi à minimiser l'erreur quadratique dans un domaine de signal pondéré perceptuellement par ce type de filtre. Cependant, pour assurer la continuité spectrale lorsque les spectres DAB et SHB sont accolés (bloc 303 de la figure 3), le filtre W~B (z) est défini sous la forme : WLB(z)= fac A(z/yi) Â(z /y2) avec yl = 0,96, y2 = 0,6 et fac = P E (ù7z)' âi i=o p E(ù71) ai i=o 2947944 - 12 - Le facteur fac permet d'assurer à la jonction des bandes basse et haute (4 kHz) un gain du filtre à 1 à 4 kHz. Il est important de noter que, dans le codage TDAC selon la norme G.729.1, le codage ne repose que sur un critère énergétique. 5 * Inconvénients de l'art antérieur Le critère énergétique du codage TDAC de G.729.1, utilisé dans la bande haute (4000-7000 Hz), n'est pas optimal d'un point de vue perceptuel, notamment pour coder des signaux musicaux. Le filtre de pondération perceptuel est particulièrement adapté aux signaux de 10 parole. Il est largement utilisé dans les normes de codage de la parole basé sur le format de codage de type CELP. Cependant, pour les signaux musicaux, il apparaît que cette pondération perceptuelle basée sur une mise en forme du bruit de quantification suivant les formants du signal d'entrée est insuffisante. La plupart des codeurs audio s'appuient sur un codage par transformée utilisant des modèles de 15 masquage fréquentiel, ou masquage simultané; ils sont plus génériques (dans le sens où ils n'utilisent pas un modèle de production de la parole à l'instar du CELP) et sont donc plus adaptés pour coder les signaux musicaux. On pourra se référer au document intitulé "Introduction to digital audio coding and standards", de M. Bosi et R. Goldberg, publié par Kluver Academic 20 Publishers, en 2003, pour avoir plus de détails sur les modèles de masquage et leur application dans les codeurs par transformée. Il existe donc un besoin d'améliorer la qualité de codage des signaux pour un meilleur rendu perceptuel, tout en gardant l'interopérabilité avec le codage G.729.1. La présente invention vient améliorer la situation. Elle propose à cet effet, un procédé de codage hiérarchique d'un signal numérique d'entrée en plusieurs sous-bandes fréquentielles comportant un codage 2947944 - 13 - coeur du signal d'entrée selon un premier débit et au moins un codage d'amélioration de débit supérieur d'un signal résiduel, le codage coeur utilisant une allocation binaire selon un critère énergétique. Le procédé est tel qu'il comporte les étapes suivantes pour le codage d'amélioration: 5 - calcul d'un seuil de masquage fréquentiel pour au moins une partie des bandes de fréquences traitées par le codage d'amélioration; - détermination d'une importance perceptuelle par sous bande de fréquence en fonction du seuil de masquage calculé et en fonction du nombre de bits alloués pour le codage coeur; 10 - allocation binaire de bits dans les sous-bandes fréquentielles traitées par le codage d'amélioration, en fonction de l'importance perceptuelle déterminée; et -codage du signal résiduel selon l'allocation de bits. Ainsi, le codage selon l'invention profite d'une couche de codage d'amélioration pour améliorer la qualité de codage d'un point de vue perceptuel. La 15 couche d'amélioration va ainsi bénéficier d'un masquage fréquentiel qui n'existe pas dans l'étage de codage coeur, pour allouer au mieux les bits dans les bandes fréquentielles du codage d'amélioration. Cette opération ne modifie pas le codage coeur qui reste ainsi compatible avec le codage normalisé existant, garantissant ainsi l'interopérabilité avec les 20 équipements déjà sur le marché qui utilisent le codage normalisé existant. Les différents modes particuliers de réalisation mentionnés ci-après peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé de codage défini ci-dessus. Dans un mode de réalisation particulier, l'étape de détermination d'une 25 importance perceptuelle comporte: 2947944 - 14 - - une première étape de définition d'une première importance perceptuelle pour au moins une sous bande de fréquence du codage d'amélioration, en fonction du seuil de masquage fréquentiel dans la sous-bande, de valeurs quantifiés du codage de l'enveloppe spectrale pour la sous bande de fréquence et d'un facteur de 5 normalisation déterminé; -une deuxième étape de soustraction à la première importance perceptuelle d'un rapport entre le nombre de bits alloués pour le codage coeur et le nombre de coefficients dans ladite sous-bande. Ainsi, la première importance perceptuelle qui sera utilisé pour la couche 10 d'amélioration, ne prend pas en compte le codage coeur mais uniquement le rapport signal à masque pour définir une importance perceptuelle. Cette importance perceptuelle est déterminée sur le signal d'entrée du codeur par transformée. La prise en compte du codage coeur se fait simplement par soustraction du nombre de bits moyen par échantillon déjà alloués. L'utilisation de l'importance 15 perceptuelle basée sur le rapport signal à masque permettrait d'obtenir une allocation optimale au sens perceptuel. Cependant cette allocation serait utile si l'on codait directement le signal d'entrée de la couche de codage par transformée. Hors, dans le cadre de l'invention, une première couche de codage par transformée, basée sur une allocation énergétique a alloué un certain nombre de bits par sous-bande. 20 Si l'on veut améliorer la qualité en codant le signal résiduel de cette couche du codeur coeur sans gaspiller de débit, il est nécessaire d'adapter l'importance perceptuelle basée sur le rapport signal à masque du signal d'entrée au signal résiduel. Pour cela, on soustrait de la première importance perceptuelle une valeur représentative du nombre de bits alloués dans le codeur coeur. Il faut noter que l'on ne 25 peut pas calculer l'importance perceptuelle basée sur le rapport signal à masque d'un signal résiduel. En effet, dans ce cas la courbe de masquage qui serait calculée 2947944 - 15 - n'aurait pas réellement de sens perceptif, puisqu'elle ne se baserait pas sur le signal réellement perçu. Dans une variante de réalisation, l'importance perceptuelle est déterminée en outre en fonction de bits alloués pour un codage d'amélioration du codage coeur, 5 précédent, ayant une allocation binaire selon un critère énergétique. Dans le décodeur G.729.1 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). Même au plus haut débit du codage G.729.1 (32 kbit/s) certaines bandes de fréquence restent ainsi 10 extrapolées. Avant d'appliquer le codage d'amélioration selon la présente invention on peut d'abord faire appel à un premier codage d'amélioration du codage coeur pour combler le manque de débit du codage coeur pour ces sous-bandes non transmises. Ce premier codage d'amélioration utilise le signal original et fonctionne selon des critères énergétiques pour l'allocation de bits. Selon un mode de réalisation de 15 l'invention ce premier codage d'amélioration vient modifier le nombre de bits nbit(j) alloués aux sous-bandes et la sous-bande décodée Yq(k) (définie plus tard à la figure 5). Le codage d'amélioration selon l'invention prend donc également en compte les bits alloués lors de ce premier codage d'amélioration, en plus des bits alloués dans 20 le codage coeur. Avantageusement, le seuil de masquage est déterminé pour une sous-bande, par une convolution entre: - une expression d'une enveloppe spectrale calculée, et - une fonction d'étalement faisant intervenir une fréquence centrale de ladite 25 sous-bande. 2947944 -16- Dans une variante de réalisation, le procédé comporte une étape d'obtention d'une information selon laquelle le signal à coder est tonal ou non tonal et les étapes de calcul du seuil de masquage et de détermination d'une importance perceptuelle en fonction de ce seuil de masquage, ne sont menées que si le signal est non tonal. 5 Ainsi, le codage est adapté au signal qu'il soit tonal ou pas et permet une allocation optimale des bits. Dans une application particulièrement adaptée de l'invention, le codage d'amélioration est un codage d'amélioration de type TDAC dans un codeur étendu dont le codage coeur est de type codeur normalisé G.729.1. 10 Ainsi, la qualité du codec G.729.1 dans la bande élargie (50-7000 Hz), est améliorée. Une telle amélioration est importante pour étendre la bande du codeur G.729.1 de la bande élargie (50-7000Hz) à la bande super-élargie (50-14000Hz). La présente invention se rapporte à également un procédé de décodage hiérarchique d'un signal numérique en plusieurs sous-bandes fréquentielles 15 comportant un décodage coeur d'un signal reçu selon un premier débit et au moins un décodage d'amélioration de débit supérieur, d'un signal résiduel, le décodage coeur utilisant une allocation binaire selon un critère énergétique. Le procédé est tel qu'il comporte les étapes suivantes pour le décodage d'amélioration: - calcul d'un seuil de masquage fréquentiel pour au moins une partie des 20 sous-bandes de fréquences traitées par le décodage d'amélioration; - détermination d'une importance perceptuelle par sous-bande de fréquence en fonction du seuil de masquage calculé et en fonction du nombre de bits alloués pour le décodage coeur; - allocation de bits dans les sous-bandes fréquentielles traitées par le 25 décodage d'amélioration, en fonction de l'importance perceptuelle déterminée; et - décodage du signal résiduel selon l'allocation de bits. 2947944 - 17 - De la même façon et avec les mêmes avantages que pour le codage l'étape de détermination d'une importance perceptuelle comporte: - une première étape de définition d'une première importance perceptuelle pour au moins une sous- bande de fréquence du décodage d'amélioration, en fonction 5 du seuil de masquage fréquentiel dans la sous-bande, de valeurs quantifiés du décodage de l'enveloppe spectrale pour la sous-bande de fréquence et d'un facteur de normalisation déterminé; - une deuxième étape de soustraction à la première importance perceptuelle d'un rapport entre le nombre de bits alloués pour le décodage coeur et le nombre de 10 coefficients dans ladite sous-bande. L'invention se rapporte à un codeur hiérarchique d'un signal numérique d'entrée en plusieurs sous-bandes fréquentielles comportant un codeur coeur du signal d'entrée selon un premier débit et au moins un codeur d'amélioration de débit supérieur, d'un signal résiduel, le codeur coeur utilisant une allocation binaire selon 15 un critère énergétique. Le codeur d'amélioration comporte: - un module de calcul d'un seuil de masquage fréquentiel pour au moins une partie des bandes de fréquences traitées par le codeur d'amélioration; - un module de détermination d'une importance perceptuelle par sous bande de fréquence en fonction du seuil de masquage calculé et en fonction du nombre de 20 bits alloués pour le codeur coeur; - un module d'allocation binaire de bits dans les sous-bandes fréquentielles traitées par le codeur d'amélioration, en fonction de l'importance perceptuelle déterminée; et - un module de codage du signal résiduel selon l'allocation de bits. 25 Elle se rapporte également à un décodeur hiérarchique d'un signal numérique en plusieurs sous-bandes fréquentielles comportant un décodeur coeur 2947944 - 18 - d'un signal reçu selon un premier débit et au moins un décodeur d'amélioration de débit supérieur, d'un signal résiduel, le décodeur coeur utilisant une allocation binaire selon un critère énergétique. Le décodeur d'amélioration comporte: - un module de calcul d'un seuil de masquage fréquentiel pour au moins une 5 partie des sous-bandes de fréquences traitées par le décodeur d'amélioration; - un module de détermination d'une importance perceptuelle par sous-bande de fréquence en fonction du seuil de masquage calculé et en fonction du nombre de bits alloués pour le décodeur coeur; - un module d'allocation de bits dans les sous-bandes fréquentielles traitées 10 par le décodeur d'amélioration, en fonction de l'importance perceptuelle déterminée; et - un module de décodage du signal résiduel selon l'allocation de bits. Enfin, l'invention se rapporte à un programme informatique comportant des instructions de code pour la mise en oeuvre des étapes d'un procédé de codage selon 15 l'invention, lorsqu'elles sont exécutées par un processeur et à un programme informatique comportant des instructions de code pour la mise en oeuvre des étapes d'un procédé de décodage selon l'invention, lorsqu'elles sont exécutées par un processeur. D'autres caractéristiques et avantages de l'invention apparaîtront plus 20 clairement à la lecture de la description suivante, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels: - la figure 1 illustre la structure d'un codeur de type G.729.1 décrit précédemment; - la figure 2 illustre la structure d'un décodeur de type G.729.1 décrit 25 précédemment; 2947944 - 19 - - la figure 3 illustre la structure d'un codeur TDAC inclus dans le codeur de type G.729.1 et décrit précédemment: - la figure 4 illustre la structure d'un décodeur TDAC inclus dans un décodeur de type G.729.1 et tel que décrit précédemment; 5 - la figure 5 illustre la structure d'un codeur TDAC comportant un codage d'amélioration selon un mode de réalisation de l'invention; - la figure 6 illustre la structure d'un décodeur TDAC comportant un décodage d'amélioration selon un mode de réalisation de l'invention; - la figure 7 illustre une fonction d'étalement avantageuse pour le masquage 10 au sens de l'invention; - la figure 8 illustre une normalisation de la courbe de masquage, dans une forme de réalisation de l'invention; - la figure 9 illustre la structure d'un codeur G.729.1 étendu en bande de fréquence dans lequel un codeur TDAC selon un mode de réalisation de l'invention, 15 est inclus; - la figure 10 illustre la structure d'un décodeur G.729.1 étendu en bande de fréquence dans lequel un décodeur TDAC selon un mode de réalisation de l'invention, est inclus; - la figure 1 la illustre un exemple de réalisation matérielle d'un terminal 20 incluant un codeur selon un mode de réalisation de l'invention; et - la figure 1 lb illustre un exemple de réalisation matérielle d'un terminal incluant un décodeur selon un mode de réalisation de l'invention. Un des objets de l'invention est l'amélioration de la qualité de G.729.1 en 25 bande élargie (50-7000 Hz), notamment pour les signaux musicaux. On rappelle ici que le codage G.729.1 a une bande utile de 50 à 7000 Hz. De plus la qualité de 2947944 -20- G.729.1 pour certains signaux tels que les signaux musicaux n'est pas transparente à son plus haut débit (32 kbit/s) û cette limitation est due à la structure hiérarchique CELP+TDBWE+TDAC et au débit limité à 32 kbit/s. Cette invention est motivée par la normalisation en cours à l'UIT-T d'une 5 extension scalable de G.729.1 visant en particulier à étendre la bande codée par G.729.1 à la bande super-élargie (50-14000 Hz). L'expérience montre que l'extension de bande (ex: 7000-14000 Hz) d'un signal à bande limitée (ex: 50-7000 Hz) requiert d'avoir un signal à bande limitée qui soit déjà de bonne qualité; en effet l'extension de bande fait ressortir les défauts existants dans ce signal. Ainsi, il existe un besoin 10 d'amélioration de la qualité de G.729.1 en bande élargie (50-7000 Hz). L'amélioration de la qualité de G.729.1 peut être réalisée avec une ou plusieurs couches d'amélioration de débit supplémentaire (en plus de 32 kbit/s). En pratique ces couches d'amélioration de débit supplémentaire peuvent servir à la fois à l'extension de bande (7000-14000 Hz) et à l'amélioration de qualité dans la bande 15 élargie (50-7000 Hz). Ainsi une partie du débit supplémentaire des couches d'amélioration peut être consacrée à l'amélioration du signal en bande élargie décodé par un décodeur G.729.1. A noter qu'on peut distinguer deux coeurs dans le codage hiérarchique considéré dans le présent document: G.729.1 a un codeur coeur CELP en bande 20 étroite, tandis que l'extension en bande super-élargie (50-14000Hz) de G.729.1 a pour coeur G.729.1. Dans la suite par les termes codage coeur et débit coeur on entend un codage de type G.729.1 et le débit associé de 32 kbit/s. Dans un mode de réalisation de l'invention, on s'intéresse plus 25 particulièrement à un codeur et un décodeur TDAC tel que décrit précédemment, dans lequel une couche d'amélioration est intégrée. 2947944 - 21 - La figure 5 décrit un tel codeur TDAC amélioré. On considère une extension scalable de G.729.1 en plusieurs couches d'amélioration. Ici le codage coeur est un codage G.729.1, qui utilise un codage TDAC dans la bande [50-7000 Hz] à partir du débit de 14 kbit/s et jusqu'à 32 kbit/s. 5 On suppose qu'entre 32 et 48 kbit/s deux couches d'amélioration de 8 kbit/s sont produites afin d'étendre la bande de 7000 à 14000 Hz et de remplacer les sous-bandes non transmises du codage TDAC de G.729.1. Ces couches d'amélioration de 8 kbit/s permettant d'aller de 32 à 48 kbit/s ne sont pas décrites ici. L'invention porte sur deux couches d'amélioration de 8 kbit/s supplémentaires 10 du codage TDAC dans la bande 50 à 7000 Hz et qui font passer le débit de 48 kbit/s à 56 et 64 kbit/s. Le codeur appliquant la présente invention comporte des couches d'amélioration qui rajoute du débit au débit coeur de G.729.1 (32 kbits). Ces couches d'amélioration servent à la fois à améliorer la qualité dans la bande élargie (50-7000 15 Hz) et à étendre la bande supérieure de 7000 à 14000 Hz. Dans la suite on ignore l'extension de 7000 à 14000 Hz, car cette fonctionnalité n'influence pas la mise en oeuvre de la présente invention. Pour des raisons de simplicité les modules correspondants à l'extension de bande de 7000 à 14000 Hz ne sont pas illustrés sur les figures 5 et 6. 20 On retrouve ici les mêmes blocs (blocs 500 à 507) que ceux utilisés dans la couche de base du G.729.1 (blocs 300 à 307) tel que décrit en référence à la figure 3. Le codeur TDAC selon un mode de réalisation de l'invention comporte ici une couche d'amélioration (blocs 509 à 513) qui améliore la couche coeur (blocs 504 à 507). 25 A noter que le bloc 507 correspond ici à la quantification vectorielle sphérique (spherical vector quantization ou SVQ) de G.729.1, qui peut comporter 2947944 - 22 - une modification telle que mentionnée précédemment. Ainsi, dans ce bloc 507, on fait appel à un premier codage d'amélioration du codage coeur G.729.1 pour combler le manque de débit pour les sous-bandes non transmises (où nbit(j) = 0). Cette modification utilise le signal original Y(k) et fonctionne selon des critères 5 énergétiques pour l'allocation de bits. Le nombre de bits nbit(j) alloués aux sous- bandes et la sous-bande décodée Yq(k) sont alors modifiés. Le bloc 506 effectue une allocation binaire basée sur des critères énergétiques telle que décrit en référence à la figure 3. La couche coeur est donc codée et envoyée au module de multiplexage 508. 10 Le signal coeur est également décodé localement dans le codeur par le bloc 510 qui effectue une déquantification sphérique et mise à l'échelle ; ce signal coeur est soustrait du signal original en 509, dans le domaine transformé, pour obtenir un signal résiduel err(k). Ce signal résiduel est ensuite codé à partir d'un débit de 48 kbit/s, dans le bloc 513. 15 Le bloc 511 calcule une courbe de masquage à partir de l'enveloppe spectrale codée rms q(j) obtenue par le bloc 505, 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 20 de l'enveloppe d'énergie 6 2( j) = rms _ q(j) 2 x nb _ coef (j) , par une fonction d'étalement B(v) . Dans un premier mode de réalisation, ce masquage n'est effectué que sur la bande haute du signal, avec : 17 M(j)= Ld 2(k)xB(v1 ûvk) k=10 -23- où v k 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. En termes plus génériques, le seuil de masquage M(j), pour une sous-bande j, 5 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• Une fonction d'étalement avantageuse est celle présentée à la figure 7. Il 10 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 M(J) = M+ (J)+M- (J)+d 2 (J) j =l,..,16 M+(17) j=17 où 15 M+(J)=62(Jù1).A2(J)+M+(Jù1).A2(J) j =11,..,17 m-u) =d2 (i+1). Ai (i)+m- (i+1). AI Ci) j=10,..,16 A2 (J)=10 10 (vi ))i-i) Al (J)=1010 et 20 27 ( v .+i ) Les valeurs de A1(j) et A2 (j) peuvent être pré-calculées et stockées. - 24 - La bande basse étant déjà filtrée perceptuellement par le module 500, l'application du seuil de masquage est dans ce mode de réalisation, 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 exemple par sa valeur sur la dernière sous-bande de la bande basse. Une première étape de calcul d'importance perceptuelle est alors effectuée en prenant en compte le rapport signal-à-masque donné par : 1 (6 2 (j) 21og2M(j) L'importance perceptuelle est donc définie comme suit dans le bloc 511 : 2 loge (6 2(j))+offset pour j = 0..9 ip(j)=~ (62 . loge M(j) +normfac +offset où offset = -2 et normfac est un facteur de normalisation calculé suivant la relation : normfac =loge E62(j)xB(v9 ûv1) =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 définie ci-dessus s'écrit maintenant : 2 rms û index(j) pour 2 [rms _ index(j) û log mask(j)] pour pour j =10..17 ip(j) j=0,...,9 j =10,...,17 - 25 - où log mask(j) = log, (M(j)) ûnormfac . 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). 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 : 17 normfac =loge ~6z (j)xB(vioûvj) 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)=E62(k)xB(v; ùvk) k=0 Le seuil de masquage est ensuite appliqué uniquement à la bande haute après 15 normalisation du seuil de masquage par sa valeur sur la dernière sous-bande de la bande basse: normfac =loge [2(J)XB(V _vi) , J=o ou encore par sa valeur sur la première sous-bande de la bande haute : normfac =loge [2(J)XB(V _vi) J=o 20 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 2947944 - 26 - (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). A partir de ce calcul de masquage fréquentiel, une première importance perceptuelle ipÙ), est envoyée au bloc 512 d'allocation binaire pour le codage 5 d'amélioration. Ce bloc 512 reçoit également les informations d'allocations de bits nbitù) de la couche coeur du codage TDAC, G.729.1. Le bloc 512 définit ainsi une nouvelle importance perceptuelle qui prend en compte ces deux informations. 10 Ainsi, une seconde importance perceptuelle est définie comme suit: nbit(j) p(j) ù pour j=1, ..., 18 (j) i nb_coeff(j) où nbitù) représente le nombre de bits alloués par la couche de base à la bande de fréquence j, et nbcoeff(j) représente le nombre de coefficients de la bande j selon le tableau 1 décrit précédemment. En d'autres termes, la nouvelle importance perceptuelle est calculée par soustraction à la première importance perceptuelle, d'un rapport entre le nombre de bits alloués pour le codage coeur et le nombre de coefficients possibles dans la sous-bande. Avec cette nouvelle importance perceptuelle, le bloc 512 effectue une allocation de bits sur le signal résiduel pour coder la couche d'amélioration. Cette allocation de bits est calculée comme suit: nbit _err(j)=arg,~ b ~f minnb_coef(j)x(ip'(j)ùkpt)ùr où l'optimisation doit satisfaire la contrainte 17 L nbit _ err(j) nbits _ VQ _ err l=o 2947944 - 27 - nbits _ VQ _ err correspondant au nombre de bits supplémentaire dans la couche d'amélioration (320 bits pour les 2 couches de 8 kbit/s). Elle prend donc en compte la nouvelle importance perceptuelle calculée. Le signal résiduel err(k) est ensuite codé par le module 513 par quantification 5 vectorielle sphérique, en utilisant le nombre de bits alloués nbit err(j) tel que calculé précédemment. Ce signal résiduel codé est ensuite multiplexé avec le signal issu du codage coeur et l'enveloppe codée, par le module de multiplexage 508. Ce codage d'amélioration, étend non seulement le débit alloué mais améliore d'un 10 point de vue perceptuel, le codage du signal. On rappelle que la couche d'amélioration du codage TDAC tel que décrit peut s'appliquer après avoir modifié le codage TDAC de G.729.1. Dans les couches d'amélioration de 32 à 48 kbit/s, une première amélioration (non décrite ici) du codage TDAC de G.729.1 est réalisée. Cette amélioration alloue des bits aux sous- 15 bandes comprises entre 4 et 7 kHz auxquelles aucun débit n'a été alloué par le codage coeur TDAC de G.729.1 même à son plus haut débit de 32 kbit/s. Cette première amélioration du codage TDAC de G.729.1 utilise donc le signal original entre 4 et 7 kHz et ne met pas en oeuvre les étapes de calcul d'un seuil de masquage ni de détermination de l'importance perceptuelle du procédé de codage de l'invention. On 20 considère que le bloc 507 correspond à ce codage TDAC modifié intégrant cette amélioration. Ainsi, dans la couche d'amélioration du procédé de codage de l'invention, aux débits allant de 48 kbit/s à 64 kbit/s, la détermination de l'importance perceptuelle (blocs 511, 512) prend non seulement en compte les bits alloués pour le codage coeur ou de base mais également les bits alloués pour le codage d'amélioration précédent, en l'occurrence, le codage d'amélioration de débit 40 kbit/s. 2947944 - 28 - La figure 5 illustre non seulement le codeur TDAC avec son étage de codage d'amélioration mais sert également à une illustration des étapes du procédé de codage selon un mode de réalisation de l'invention tel que décrit précédemment et notamment des étapes de: 5 - calcul d'un seuil de masquage fréquentiel pour au moins une partie des bandes de fréquences traitées par le codage d'amélioration; - détermination d'une importance perceptuelle par sous-bande de fréquence en fonction du seuil de masquage calculé et en fonction du nombre de bits alloués pour le codage coeur; 10 - allocation binaire de bits dans les sous-bandes fréquentielles traitées par le codage d'amélioration, en fonction de l'importance perceptuelle déterminée; et - codage du signal résiduel selon l'allocation de bits. La figure 6 illustre le décodeur TDAC avec un étage de décodage d'amélioration ainsi que les étapes d'un procédé de décodage selon un mode de 15 réalisation de l'invention. Le décodeur comporte les modules (601, 602, 603, 606, 607, 608, 609 et 610) identiques à ceux décrits pour le décodage TDAC du codeur G.729.1 en référence à la figure 4 (401, 402, 403, 406, 407, 408, 409 et 410). A noter que le bloc 606 de postraitement dans le domaine MDCT (visant à mettre en forme le bruit de codage) 20 est ici optionnel car l'invention vient améliorer la qualité du spectre MDCT décodé issu du bloc 603. Le module 605 du décodeur correspond au module 511 du codeur et fonctionne de la même façon à partir des valeurs quantifiées de l'enveloppe spectrale. A partir de la première importance perceptuelle ipÙ) calculée par ce module 25 605, le module d'allocation 604, détermine une seconde importance perceptuelle en 2947944 - 29 - prenant en compte l'allocation de bits reçus du codage coeur, de la même façon que dans le module 512 du codage. Cette allocation de bits pour le codage d'amélioration permet au module 611 de décoder le signal reçu du module de démultiplexage 600, par déquantification 5 vectorielle sphérique. Le signal décodé issu du module 611 est un signal d'erreur err(k) qui est ensuite combiné en 612, au signal coeur décodé en 603. Ce signal est ensuite traité comme pour le codage G.729.1 décrit en référence à la figure 4, pour donné un signal en différence dLB en bande basse et un signal SHB 10 en bande haute. On indique aussi que le calcul d'un masquage fréquentiel effectué par le module 511 ou 605 et tel que décrit précédemment, 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 15 particulièrement avantageux lorsque le signal à coder n'est pas tonal. 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 de minimisation du rapport bruit de codage à masque donne alors une allocation des bits qui n'est pas obligatoirement optimale. 20 On peut donc pour améliorer cette allocation, utiliser une allocation des bits suivant des critères énergétiques pour un signal tonal. Ainsi, dans une variante de réalisation, le calcul du seuil de masquage et la détermination de l'importance perceptuelle en fonction de ce seuil de masquage selon l'invention n'est appliqué que si le signal à coder n'est pas tonal. 25 En termes génériques, on obtient donc une information (du bloc 505) selon laquelle le signal à coder est tonal ou non tonal, et la pondération perceptuelle de la 2947944 -30- bande haute, avec la détermination du seuil de masquage et la normalisation, ne sont menées que si le signal est non tonal. Avec un codage coeur de type G.729.1, le bit relatif au mode du codage de l'enveloppe spectrale (bloc 505 ou 601) indique un mode "Huffman différentiel" ou 5 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". 10 Ainsi, il peut être tiré un avantage de la � détection de tonalité du signal � pour mettre en oeuvre le masquage fréquentiel ou non. Plus particulièrement, ce calcul de seuil de masquage est appliquée dans le cas où l'enveloppe spectrale a été codée en mode "Huffman différentiel" et la première importance perceptuelle est définie alors au sens de l'invention, comme suit : 15 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", la première 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 ip(j) 20 ip(j) 2947944 -31- On décrit maintenant une application possible de l'invention à une extension de l'encodeur G.729.1, en particulier en bande super-élargie. En référence à la figure 9, un tel codeur est illustré. L'extension en bande 5 super-élargie du codeur G.729.1 tel que représenté consiste en une extension des fréquences codées par le module 915, la bande de fréquence utilisée passant de [50Hz-7KHz] à [50Hz-14kHz] et en une amélioration de la couche de base du G.729.1 par le module de codage TDAC (bloc 910) et tel que décrit en référence à la figure 5. 10 Ainsi, le codeur tel que représenté en figure 9, comporte les mêmes modules que le codage coeur G.729.1 représenté en figure 1 et un module supplémentaire d'extension de bande 915 qui fournit un signal d'extension au module de multiplexage 912. Cette extension de bande de fréquence est calculée sur le signal original 15 pleine bande SswB alors que le signal d'entrée du codeur coeur est obtenu par décimation (bloc 913) et filtrage passe-bas (bloc 914). A la sortie de ces blocs, le signal d'entrée en bande élargie SWB est obtenu. Le module 910 de codage TDAC est différent de celui illustré en figure 1. Ce module est par exemple celui décrit en référence à la figure 5 et fournit au module de 20 multiplexage, à la fois le signal coeur codé et le signal d'amélioration codé selon l'invention. De la même façon, un décodeur G.729.1 étendu en bande super-élargie est décrit en référence à la figure 10. Il comporte les mêmes modules que le décodeur G.729.1 décrit en référence à la figure 2. 25 Il comporte cependant un module supplémentaire d'extension de bande 1014 qui reçoit du module de démultiplexage 1000, le signal d'extension de bande. 2947944 - 32 - Il comporte également le banc de filtres de synthèse (blocs 1015, 1016) permettant d'obtenir le signal de sortie en bande super-élargie Sswb . Le module 1003 de décodage TDAC est également différent du module de décodage TDAC illustré en référence à la figure 2. Ce module est par exemple celui 5 décrit et illustré en référence à la figure 6. Il reçoit donc du module de démultiplexage, à la fois le signal coeur et le signal d'amélioration. Dans le mode de réalisation privilégié présenté précédemment, l'invention est utilisée pour améliorer la qualité du codage TDAC dans le codec G.729.1. Naturellement l'invention s'applique à d'autres types de codage par transformée avec 10 une allocation binaire et à l'extension scalable d'autres codecs coeur que G.729.1. Un exemple de réalisation matérielle du codeur et du décodeur tel que décrit e n référence aux figures 5 et 6 est maintenant décrit en référence aux figures 1 l a et llb. Ainsi, la figure lla illustre un codeur ou terminal comprenant un 15 codeur tel que décrit en figure 5. Il comporte un processeur PROC coopérant avec un bloc mémoire BM comportant une mémoire de stockage et/ou de travail MEM. Ce terminal comporte un module d'entrée apte à recevoir un signal en bande basse dLB et un signal SHB en bande haute ou tout type de signaux numériques à coder. Ces signaux peuvent provenir d'un autre étage de codage ou d'un réseau de 20 communication, d'une mémoire de stockage de contenu numérique. Le bloc mémoire BM peut avantageusement comporter un programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de codage au sens de l'invention, lorsque ces instructions sont exécutées par le processeur PROC, et notamment les étapes de: 25 - calcul d'un seuil de masquage fréquentiel pour au moins une partie des sous-bandes de fréquences traitées par le codage d'amélioration; 2947944 - 33 - - détermination d'une importance perceptuelle par sous-bande de fréquence en fonction du seuil de masquage calculé et en fonction du nombre de bits alloués pour le codage coeur; - allocation de bits dans les sous-bandes fréquentielles traitées par le codage 5 d'amélioration, en fonction de l'importance perceptuelle déterminée; et - codage du signal résiduel selon l'allocation de bits. Typiquement, la description de la figure 5 reprend les étapes d'un algorithme d'un tel programme informatique. Le programme informatique peut également être stocké sur un support mémoire lisible par un lecteur du terminal ou codeur ou 10 téléchargeable dans l'espace mémoire de celui-ci. Le terminal comporte un module de sortie apte à transmettre un flux multiplexé issu du codage des signaux d'entrée. De la même façon, la figure llb illustre un exemple de décodeur ou de terminal comportant un décodeur tel que décrit en référence à la figure 6. 15 Ce terminal comporte un processeur PROC coopérant avec un bloc mémoire BM comportant une mémoire de stockage et/ou de travail MEM. Le terminal comporte un module d'entrée apte à recevoir un flux multiplexé provenant par exemple d'un réseau de communication, d'un module de stockage. Le bloc mémoire peut avantageusement comporter un programme 20 informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de décodage au sens de l'invention, lorsque ces instructions sont exécutées par le processeur PROC, et notamment les étapes de: - calcul d'un seuil de masquage fréquentiel pour au moins une partie des sous-bandes de fréquences traitées par le décodage d'amélioration; 2947944 -34- - détermination d'une importance perceptuelle par sous-bande de fréquence en fonction du seuil de masquage calculé et en fonction du nombre de bits alloués pour le décodage coeur; - allocation de bits dans les sous-bandes fréquentielles traitées par le 5 décodage d'amélioration, en fonction de l'importance perceptuelle déterminée; et - décodage du signal résiduel selon l'allocation de bits. Typiquement, la description de la figure 6 reprend les étapes d'un algorithme d'un tel programme informatique. Le programme informatique peut également être stocké sur un support mémoire lisible par un lecteur du terminal ou téléchargeable 10 dans l'espace mémoire de celui-ci. Le terminal comporte un module de sortie apte à transmettre des signaux décodés (dLB, SHB) pour un autre étage de codage ou pour une restitution de contenu. Bien évidemment, un tel terminal peut comporter à la fois le codeur et le décodeur selon l'invention. 15 REVENDICATIONS1. Procédé de codage hiérarchique d'un signal numérique d'entrée en plusieurs sous-bandes fréquentielles comportant un codage coeur du signal d'entrée selon un premier débit et au moins un codage d'amélioration de débit supérieur d'un signal résiduel, le codage coeur utilisant une allocation binaire (506) selon un critère énergétique, caractérisé en ce qu'il comporte les étapes suivantes pour le codage d'amélioration: - calcul d'un seuil de masquage fréquentiel (511) pour au moins une partie 10 des bandes de fréquences traitées par le codage d'amélioration; - détermination (511,512) d'une importance perceptuelle par sous-bande de fréquence en fonction du seuil de masquage calculé et en fonction du nombre de bits alloués pour le codage coeur; - allocation binaire (512) de bits dans les sous-bandes fréquentielles traitées 15 par le codage d'amélioration, en fonction de l'importance perceptuelle déterminée; et - codage du signal résiduel (513) selon l'allocation de bits. 2. Procédé selon la revendication 1, caractérisé en ce que l'étape de détermination d'une importance perceptuelle comporte: 20 - une première étape (511) de définition d'une première importance perceptuelle pour au moins une sous bande de fréquence du codage d'amélioration, en fonction du seuil de masquage fréquentiel dans la sous-bande, de valeurs quantifiés du codage de l'enveloppe spectrale pour la sous bande de fréquence et d'un facteur de normalisation déterminé; 2947944 - 36 - - une deuxième étape (512) de soustraction à la première importance perceptuelle d'un rapport entre le nombre de bits alloués pour le codage coeur et le nombre de coefficients dans ladite sous-bande. 5 3. Procédé selon la revendication 1, caractérisé en ce que l'importance perceptuelle est déterminée en outre en fonction de bits alloués pour un codage d'amélioration du codage coeur, précédent, ayant une allocation binaire selon un critère énergétique. 4. Procédé selon la revendication 1, caractérisé en ce que le seuil de masquage est déterminé pour une sous-bande, par une convolution entre: - une expression d'une enveloppe spectrale calculée, et - une fonction d'étalement faisant intervenir une fréquence centrale de ladite sous-bande. 5. Procédé selon la revendication 1, caractérisé en ce qu'il comporte en outre une étape d'obtention d'une information selon laquelle le signal à coder est tonal ou non tonal et que les étapes de calcul du seuil de masquage et de détermination d'une importance perceptuelle en fonction de ce seuil de masquage, ne sont menées que si le signal est non tonal. 6. Procédé selon la revendication 1, caractérisé en ce que le codage d'amélioration est un codage d'amélioration de type TDAC dans un codeur étendu dont le codage coeur est de type codeur normalisé G.729.1. 2947944 -37- 7. Procédé de décodage hiérarchique d'un signal numérique en plusieurs sous-bandes fréquentielles comportant un décodage coeur d'un signal reçu selon un premier débit et au moins un décodage d'amélioration de débit supérieur, d'un signal résiduel, le décodage coeur utilisant une allocation binaire selon un critère 5 énergétique, caractérisé en ce qu'il comporte les étapes suivantes pour le décodage d'amélioration: - calcul d'un seuil de masquage fréquentiel (605) pour au moins une partie des sous-bandes de fréquences traitées par le décodage d'amélioration; - détermination (604) d'une importance perceptuelle par sous-bande de 10 fréquence en fonction du seuil de masquage calculé et en fonction du nombre de bits alloués pour le décodage coeur; - allocation de bits (604, 605) dans les sous-bandes fréquentielles traitées par le décodage d'amélioration, en fonction de l'importance perceptuelle déterminée; et 15 -décodage (611) du signal résiduel selon l'allocation de bits. 8. Procédé de décodage selon la revendication 7, caractérisé en ce que l'étape de détermination d'une importance perceptuelle comporte: - une première étape (605) de définition d'une première importance 20 perceptuelle pour au moins une sous- bande de fréquence du décodage d'amélioration, en fonction du seuil de masquage fréquentiel dans la sous-bande, de valeurs quantifiés du décodage de l'enveloppe spectrale pour la sous-bande de fréquence et d'un facteur de normalisation déterminé; - une deuxième étape (604) de soustraction à la première importance 25 perceptuelle d'un rapport entre le nombre de bits alloués pour le décodage coeur et le nombre de coefficients possibles dans ladite sous-bande. 2947944 - 38 - 9. Codeur hiérarchique d'un signal numérique d'entrée en plusieurs sous-bandes fréquentielles comportant un codeur coeur du signal d'entrée selon un premier débit et au moins un codeur d'amélioration de débit supérieur d'un signal résiduel, le 5 codeur coeur utilisant une allocation binaire (506) selon un critère énergétique, caractérisé en ce que le codeur d'amélioration comporte: - un module (511) de calcul d'un seuil de masquage fréquentiel pour au moins une partie des bandes de fréquences traitées par le codeur d'amélioration; - un module de détermination (512) d'une importance perceptuelle par sous 10 bande de fréquence en fonction du seuil de masquage calculé et en fonction du nombre de bits alloués pour le codeur coeur; - un module d'allocation binaire (512) de bits dans les sous-bandes fréquentielles traitées par le codeur d'amélioration, en fonction de l'importance perceptuelle déterminée; et 15 -un module de codage du signal résiduel (513) selon l'allocation de bits. 10. Décodeur hiérarchique d'un signal numérique en plusieurs sous-bandes fréquentielles comportant un décodeur coeur d'un signal reçu selon un premier débit et au moins un décodeur d'amélioration de débit supérieur, d'un signal résiduel, le 20 décodeur coeur utilisant une allocation binaire selon un critère énergétique, caractérisé en ce qu'il comporte le décodeur d'amélioration comporte: - un module de calcul d'un seuil de masquage fréquentiel (605) pour au moins une partie des sous-bandes de fréquences traitées par le décodeur d'amélioration; 2947944 - 39 - - un module de détermination (604) d'une importance perceptuelle par sous-bande de fréquence en fonction du seuil de masquage calculé et en fonction du nombre de bits alloués pour le décodeur coeur; - un module d'allocation de bits (604) dans les sous-bandes fréquentielles 5 traitées par le décodeur d'amélioration, en fonction de l'importance perceptuelle déterminée; et - un module de décodage (611) du signal résiduel selon l'allocation de bits. 11. Programme informatique comportant des instructions de code pour la 10 mise en oeuvre des étapes d'un procédé de codage selon l'une des revendications 1 à 6, lorsqu'elles sont exécutées par un processeur. 12. Programme informatique comportant des instructions de code pour la mise en oeuvre des étapes d'un procédé de décodage selon l'une des revendications 7 15 à 8, lorsqu'elles sont exécutées par un processeur.