Brevet FR2947945A1 — publié le 20110114

Allocation de bits dans un codage/décodage d'amélioration d'un codage/décodage hiérarchique de signaux audionumériques La présente invention concerne un procédé d'allocation binaire pour un 5 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 10 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 (le codage normalisé selon G.722 à 48, 56 et 64 kbit/s étant typiquement scalable en débit, tandis que les codecs UIT-T G.729.1 et MPEG-4 CELP sont scalables à la fois en débit et en largeur de bande). 15 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 20 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 25 décrit comme suit. 2947945 -2 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 à 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 qui utilisent le codec G.729. 2947945 -3 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 5 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 CELP en bande étroite (bloc 105) à 8 et 12 kbit/s. Ce filtrage passe-haut tient compte 10 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 15 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 paramétrique (bloc 108) est ensuite réalisée. 20 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 réalisé au bloc 110. En référence à la figure 1, on voit en particulier que l'encodage - 4 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. 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 15 type MDCT (pour � Modified Discrete Cosine Transform � ou � transformation en cosinus discrète modifiée �). * Rappels sur le décodeur G.729.1 20 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 25 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 - 5 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 sWb , é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 10 Le codage par transformée de type TDAC dans le codeur G.729.1 est illustré sur la figure 3. Le filtre WLB (z) (bloc 300) est un filtre de pondération perceptuelle, avec compensation de gain, appliqué au signal d'erreur en bande basse d,. Des 15 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. 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 20 comprend ainsi 2 x 160, soit 320 coefficients. Il est défini comme suit : [Y(0) Y(1) ... Y(319)] = [DAB (0) D;1(1) ... DiB (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. 2947945 -6 Ainsi, une sous-bande j comprend les coefficients Y(k) avec sb û bound (j) k 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. * Rappel sur le décodeur par transformée dans le décodeur G.729.1 10 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 15 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 20 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 25 et post-traitement (bloc 406), le spectre MDCT est séparé en deux (bloc 407) : 5 - 9 - avec 160 premiers coefficients correspondant au spectre DAB du signal de 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 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. 10 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) , j=0,...,17. On se contente donc par la suite de décrire uniquement le fonctionnement du bloc 306. 15 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 20 j=0,...,17), alloués à chacune des sous-bande avec comme contrainte globale : 17 Lnbit(j) nbits VQ l=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.5 - 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) -11- 17 nbit(j) nbits _ VQ l=o en se rapprochant au mieux du seuil nbits VQ. De nouvelles perspectives d'extension en bande super élargie, (SWB pour "Super Wide Band" en anglais), d'un codeur coeur de type G.729.1 tel que décrit ci-dessus ou de type G.718 sont actuellement en cours de discussion. Une solution possible d'extension est décrite par exemple dans le document des auteurs M. Tammi, L. Laaksonen, A. Ràmô, H. Toukomaa, intitulé "Scalable Superwideband Extension for Wideband Coding", ICASSP, 2009. Ce document décrit un système de codage/décodage en bande super-élargie comportant un étage de codage coeur de type G.729.1 ou G.718 et un étage d'extension de bande. Le codage coeur effectue le codage de la bande de fréquence allant de 0 à 7 kHz alors que la bande d'extension effectue un codage dans la bande de fréquence allant de 7 à 14 kHz. Une première couche de codage d'extension est basée sur un modèle paramétrique s'appuyant sur deux modes de codage: un mode générique et un mode sinusoïdal. Le mode générique utilise une méthode de transposition dans le domaine MDCT pour la génération artificielle des coefficients MDCT hautes fréquences (7-14 kHz) à partir des fréquences basses (0-7 kHz). La bande de fréquence basse permettant de coder une bande de fréquence haute est sélectionnée sur un critère de maximisation de la corrélation normalisée. 2947945 - 12 - Le mode sinusoïdal est normalement utilisé pour les signaux particulièrement harmoniques ou tonaux. Dans ce mode, les composantes les plus énergétiques sont sélectionnées. On transmet alors leurs positions, leurs amplitudes et leurs signes. Cette première couche est transmise avec un débit de 4 kbit/s. Dans cet 5 article, une seconde couche d'amélioration de la bande 7-14 kHz est proposée, elle est basée sur le codage de sinusoïdes additionnelles permettant de s'approcher au plus du spectre MDCT du signal d'entrée. L'allocation de bits pour cette deuxième couche d'extension est fixée une fois pour toute. Ainsi, le codage d'extension présentée dans ce document, n'améliore le signal 10 que dans la bande de fréquence d'extension allant de 7 à 14 kHz. La bande de fréquence de 0 à 7 kHz du codage coeur n'est pas modifiée. Il peut arriver cependant que certaines sous-bandes de fréquence de la bande de fréquence coeur ne reçoivent pas suffisamment de débit. Dans le cas où 0 bit est alloué à une sous-bande de codage coeur, le décodeur 15 utilise alors directement le signal synthétisé issu de la première couche de codage d'extension de bande TDBWE pour la bande 4-7kHz, pour combler les bandes non allouées. Il s'avère cependant que ces bandes peuvent parfois pénaliser la qualité perçue lorsque le codeur est combiné à un module d'extension de bande 7-14kHz. 20 En effet, l'ajout des hautes fréquences augmente parfois la perception de défauts issus des basses fréquences. Ainsi, une extension de bande peut accentuer les défauts de codage de la couche coeur. Il existe donc un besoin d'amélioration globale de la qualité du signal codé 25 sur toute la bande de fréquence et pas seulement sur la bande de fréquence d'extension. 2947945 - 13 - La présente invention vient améliorer la situation. Elle propose à cet effet, un procédé d'allocation binaire dans un codage/décodage d'amélioration d'un codage/décodage hiérarchique comprenant un codage/décodage coeur dans une première bande de fréquence et un codage/décodage 5 d'extension de bande dans une deuxième bande de fréquence. Le procédé est tel que, pour un nombre prédéterminé de bits à allouer pour le codage/décodage d'amélioration, un premier nombre de bits (nbit enhanced(j)) est alloué à un codage/décodage de correction du codage/décodage coeur dans la première bande de fréquence et selon un premier mode de codage/décodage et un deuxième nombre de 10 bits (nbsin) est alloué à un codage/décodage d'amélioration du codage/décodage d'extension dans la deuxième bande de fréquence et selon un deuxième mode de codage/décodage. Ainsi, le procédé d'allocation selon un mode de réalisation de l'invention permet tout en effectuant une amélioration du codage d'extension en bande de 15 fréquence d'un codage coeur, d'allouer des bits supplémentaires pour corriger également le codage coeur dans la première bande de fréquence. Ceci permet d'obtenir un bon compromis entre le codage d'amélioration du codage coeur et celui de la bande d'extension. Ce compromis est obtenu de manière adaptative de façon à s'adapter au mieux au signal à coder et au format de codage mis 20 en oeuvre. La qualité globale du signal codé est ainsi améliorée. 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é d'allocation défini ci-dessus. Dans un mode de réalisation particulier, le procédé comporte les étapes suivantes: 2947945 - 14 - - obtention du nombre de bits alloué (nbitù)) pour le codage/décodage coeur, par sous-bande de fréquence de la première bande de fréquence; - dans les sous-bandes de fréquence où le nombre de bits alloué pour le codage/décodage coeur ne dépasse pas un seuil prédéterminé, allocation d'un nombre 5 de bits par sous-bande, constituant le premier nombre de bits pour le codage/décodage de correction du codage/décodage coeur; - allocation du second nombre de bits alloué pour le codage/décodage d'amélioration du codage/décodage d'extension, en fonction du premier nombre de bits alloué et du nombre prédéterminé de bits à allouer. 10 Ainsi, pour les sous-bandes de fréquence du codage coeur qui n'ont reçus que très peu d'allocation de bits, l'allocation selon un mode de réalisation de l'invention permet d'allouer des bits supplémentaires pour ces sous-bandes de fréquence de façon à améliorer le codage coeur dans ces sous-bandes et ceci tout en garantissant aussi une amélioration pour le codage d'extension. 15 Dans un mode particulier de réalisation, un nombre minimal de bits est fixé par sous-bande de fréquence pour l'allocation du premier nombre de bits. Ainsi, chaque sous-bande de fréquence a un débit associé garanti et donc un codage garanti. De façon simple, le seuil prédéterminé est fixé à 0. 20 Dans une variante de réalisation, le seuil prédéterminé est supérieur à 0 et si le premier nombre de bits alloué est supérieur au nombre de bits prédéterminé, la valeur du seuil est réduite. L'allocation est plus adaptée au signal, une correction maximale du codage coeur étant alors effectuée pour optimiser au mieux le débit alloué. Cette optimisation 25 est faite au fur et à mesure en adaptant le seuil. 2947945 - 15 - Dans un mode particulier de réalisation, le procédé comporte une étape de réception d'information de tonalité d'un signal résiduel résultant d'une différence entre un signal issu d'une première couche d'extension de bande et le signal original et en cas de signal résiduel tonal, le second nombre de bits alloué pour le 5 codage/décodage d'amélioration de l'extension de bande est plus important que le premier nombre. Dans une variante, cette information de tonalité est calculée directement sur le signal original, par exemple par une détection de pic d'énergie dans le spectre. Ainsi la couche d'amélioration de l'extension de bande est adaptée au type de 10 signal qu'elle a à coder. Le codage selon le mode de codage d'extension étant particulièrement adapté au signal de type tonal, la priorité est ainsi donnée à ce mode de codage. Dans une application particulièrement adaptée de l'invention, le codage/décodage coeur est de type codage/décodage normalisé G.729.1, le premier 15 mode de codage/décodage étant un codage/décodage par transformée et le second mode de codage/décodage étant un codage/décodage paramétrique. La présente invention se rapporte également un module d'allocation binaire dans un codeur/décodeur d'amélioration d'un codeur/décodeur hiérarchique comprenant un module de codage/décodage coeur dans une première bande de 20 fréquence et un module de codage/décodage d'extension de bande dans une deuxième bande de fréquence. Ce module d'allocation comporte: - des moyens d'allocation d'un premier nombre de bits (nbit enhancedù)) à un module de codage/décodage de correction du codeur/décodeur coeur dans la première bande de fréquence et selon un premier mode de codage/décodage, pour un 25 nombre prédéterminé de bits à allouer pour le codeur/décodeur d'amélioration, et 2947945 -16- - des moyens d'allocation d'un deuxième nombre de bits (nbsin) à un module de codage/décodage d'amélioration du codeur/décodeur d'extension dans la deuxième bande de fréquence et selon un deuxième mode de codage/décodage. L'invention se rapporte à un codeur hiérarchique comprenant un module 5 d'allocation selon l'invention. L'invention se rapporte également à un décodeur hiérarchique comprenant un module d'allocation selon l'invention. Enfin, l'invention se rapporte à un programme informatique comportant des 10 instructions de code pour la mise en oeuvre des étapes d'un procédé d'allocation selon l'invention, lorsqu'elles sont exécutées par un processeur. D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante, donnée uniquement à titre 15 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 précédemment; 20 - 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; - la figure 5 illustre la structure d'un codeur G.729.1 étendu en bande de 25 fréquence dans lequel l'invention peut être mis en oeuvre; 2947945 - 17 - - la figure 6 illustre la structure d'un décodeur G.729.1 étendu en bande de fréquence dans lequel l'invention peut être mis en oeuvre; - la figure 7 illustre un codeur d'amélioration comportant un module d'allocation de bits selon l'invention mettant en oeuvre un procédé d'allocation selon 5 un mode de réalisation de l'invention; - la figure 8 illustre un exemple de réalisation matérielle d'un module d'allocation selon l'invention; On décrit maintenant une application possible de l'invention à une extension de 10 l'encodeur G.729.1, en particulier en bande super-élargie. En référence à la figure 5, une extension en bande super-élargie d'un codeur coeur de type G.729.1 incluant l'invention selon un mode de réalisation, est maintenant décrit. Un tel codeur tel que représenté consiste en une extension des fréquences 15 codées par le module 515, 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 510) et tel que décrit ultérieurement en référence à la figure 7. Le codeur tel que représenté en figure 5, comporte les mêmes modules que le 20 codage coeur G.729.1 représenté en figure 1 et un module supplémentaire d'extension de bande 515 qui fournit un signal d'extension au module de multiplexage 512. Ce module de codage d'extension 515 fonctionne dans la bande de fréquence allant de 7 à 14 kHz, dite deuxième bande de fréquence par rapport à la première bande de fréquence allant de 0 à 7 kHz du codage coeur. 25 Cette extension de bande de fréquence est calculée sur le signal original pleine bande SswB alors que le signal d'entrée du codeur coeur est obtenu par 2947945 - 18 - décimation (bloc 516) et filtrage passe-bas (bloc 517). A la sortie de ces blocs, le signal d'entrée en bande élargie SWB est obtenu. Le module 515 comporte une première couche de codage d'extension basée sur un modèle paramétrique s'appuyant sur deux modes de codage, un mode 5 générique et un mode sinusoïdal, selon que le signal original SWB est tonal ou non tonal comme décrit dans le document de M. Tammi, L. Laaksonen, A. Ràmô, H. Toukomaa, intitulé "Scalable Superwideband Extension for Wideband Coding", ICASSP, 2009. Il comporte également une couche de codage d'amélioration de cette première 10 couche de codage par un codage en mode sinusoïdal et dont l'allocation de bits s'effectue selon un procédé d'allocation de bits tel que décrit en référence à la figure 7. Pour cela, le module d'extension 515 reçoit des informations du codeur TDAC 510, notamment, le nombre de bits alloués dans les sous-bandes de fréquence 15 du codage coeur. Dans un mode de réalisation possible, le module d'allocation tel que décrit ultérieurement en référence à la figure 7, est intégré au module d'extension 515. Dans un autre mode de réalisation, ce module est intégré au module TDAC 510. Dans encore un autre mode de réalisation, ce module est indépendant des deux 20 modules 510 et 515 et communique les résultats d'allocation de bits aux deux modules respectifs. Ainsi selon l'invention, un module d'allocation de bits alloue un premier nombre de bits à un codage de correction du codage coeur dans la première bande de fréquence et selon un premier mode de codage, dans le cas présent, un codage par 25 transformée. Cette allocation s'effectue selon un nombre prédéterminé de bits à allouer pour le codage d'amélioration. 2947945 - 19 - Le module alloue un deuxième nombre de bits à un codage d'amélioration du codage d'extension dans la deuxième bande de fréquence et selon un deuxième mode de codage, ici le mode paramétrique sinusoïdal. Lorsque les modèles du codage coeur et de l'extension de bande sont 5 différents, l'allocation de débit entre ces deux modèles peut s'avérer difficile. En effet, on aura généralement un modèle de codage de forme d'onde pour le coeur, par exemple un codeur par transformée qui tente de coder au mieux le signal original. Pour l'extension de bande, on utilise plus généralement des modèles paramétriques qui ont pour but de représenter perceptuellement les fréquences hautes sans pour 10 autant s'attacher à coder fidèlement la forme d'onde. L'allocation de débit entre les deux modèles peut dans ce cas être difficile. Les critères d'amélioration du codeur coeur et de l'extension de bande sont différents et peuvent difficilement être comparés l'un à l'autre. Cette allocation sera détaillée ultérieurement en référence à la figure 7. 15 Ainsi, le module 510 de codage TDAC reçoit une allocation supplémentaire de bits pour effectuer une correction de codage coeur dans un certain nombre de sous-bandes. Il fournit au module de multiplexage en plus du signal codé coeur, des bits supplémentaires de codage de correction du codage coeur. De la même façon, un décodeur G.729.1 en mode super-élargi est décrit en 20 référence à la figure 6. Il comporte les mêmes modules que le décodeur G.729.1 décrit en référence à la figure 2. Il comporte cependant un module supplémentaire d'extension de bande 614 qui reçoit du module de démultiplexage 600, le signal d'extension de bande ainsi que le signal d'amélioration du codage d'extension selon l'allocation définie par le module 25 d'allocation décrit en référence à la figure 7. Le décodeur comporte également le 2947945 - 20 - banc de filtres de synthèse (blocs 616, 615) permettant d'obtenir le signal de sortie en bande super-élargie Sswb . Le module 603 de décodage TDAC reçoit du module de multiplexage, en plus du signal coeur codé, des bits supplémentaires de correction du codage coeur selon 5 l'allocation de bits définie par le module d'allocation décrit en référence à la figure 7. Le décodeur ainsi décrit bénéficie donc du codage d'amélioration mis en oeuvre par le codeur d'amélioration tel que maintenant décrit en référence à la figure 7. Dans un mode de réalisation, l'allocation binaire ne peut pas être recalculée 10 au décodeur, cette information est alors transmise dans la couche d'amélioration correspondante. Dans un autre mode de réalisation, le décodeur peut effectuer le même calcul d'allocation binaire qu'au codeur en répartissant le débit entre la correction du codeur coeur et l'extension de bande. Le module d'allocation s'appuie sur l'allocation binaire 15 du codeur coeur et éventuellement sur une information venant de la première couche d'extension de bande, à savoir l'indication de tonalité. Un module d'allocation comme décrit en référence à la figure 7, met en oeuvre le procédé d'allocation selon l'invention. Ce module peut de la même façon que pour le codeur, s'intégrer dans le 20 module décodeur TDAC 603, dans le module d'extension 614 ou être indépendant. La figure 7 représente un module d'allocation de bits 701 selon l'invention et reprend les principales étapes d'un procédé d'allocation de bits selon l'invention. Le bloc 306 représenté sur la figure 7 correspond au bloc d'allocation de bits pour le codage coeur et tel que décrit dans le codeur TDAC de la figure 3, pour le 25 codage coeur G.729.1. 2947945 - 21 - Ce bloc d'allocation coeur délivre une information d'allocation de bits nbit(j) du codage coeur, par sous-bande de fréquence de la bande de fréquence coeur. Cette information est reçue par le module 701 d'allocation de bits conjointe. En fonction d'un débit disponible pour le codage d'amélioration, le module 701 5 alloue un premier nombre de bits nbit enhanced(j) pour effectuer une correction du codage coeur de type transformée dans une première bande de fréquence et un deuxième nombre de bits nbsin pour le codage de type paramétrique sinusoïdal, d'amélioration du codage d'extension dans une deuxième bande de fréquence. Plus particulièrement, le module 701 reçoit un nombre de bits alloués pour le 10 codage coeur pour chacune des sous-bandes de la première bande de fréquence. Ce nombre de bits par sous-bande est comparé à un seuil prédéterminé. Dans les sous-bandes de fréquence où le nombre de bits alloué est inférieur au seuil, le module 701 alloue un nombre de bits minimum d'une valeur prédéfinie, par exemple 9 bits. 15 Les bits disponibles restants par rapport au débit autorisé pour le codage d'amélioration, par exemple un débit autorisé de 4 kbit/s, sont alloués pour le codage d'amélioration du codage d'extension, c'est-à-dire la deuxième couche de codage d'extension tel que décrit en référence à la figure 5. De façon simple, le seuil peut être fixé à 0. Ainsi, seules les sous-bandes de 20 fréquence qui n'ont reçus aucun débit, ont une allocation supplémentaire de bits pour corriger le codage coeur dans ces sous-bandes. Dans une variante de réalisation, le seuil prédéterminé est supérieur à 0. Un premier essai est effectué avec un nombre minimum de bits à allouer pour les sous-bandes qui ont une allocation inférieure à ce seuil. Dans le cas où de nombreuses 25 sous-bandes ont une allocation de bits inférieure au seuil, il se peut que le débit disponible soit dépassé. Dans ce cas, le seuil est diminué pour effectuer un deuxième 2947945 - 22 - essai. Cette diminution peut se faire par exemple par dichotomie, jusqu'à trouver un seuil qui permette d'allouer le nombre minimum de bits par sous-bandes. Le nombre de bits restants est alors alloué pour le codage sinusoïdal d'extension de bande. Il correspond au nombre de sinusoïdes qui peuvent être codés 5 pour le codage d'amélioration du codage d'extension. Le module d'allocation 701 fournit donc une première allocation de bits par sous-bande, nbit-enhancedù) à un bloc de codage de correction du codage coeur 703 qui effectue une quantification vectorielle sphérique d'un signal résiduel issu de la quantification vectorielle sphérique du codeur TDAC du codage coeur G.729.1, s 10 et du signal original 5HB. Le bloc de codage de correction 703 délivre ainsi au bloc multiplexeur 704, un signal de correction du codage coeur selon le nombre de bits alloué pour ce codage. Le module d'allocation 701 délivre une deuxième allocation de bits nb sin à 15 un bloc 702 de codage d'amélioration du codage d'extension de bande. Ce bloc de codage reçoit le signal de la première couche d'extension de bande sw, ainsi que le signal original SSWB et code le signal résiduel issu du calcul de différence de ces deux signaux. Dans une variante de réalisation, le module 701 reçoit également une 20 information de tonalité du signal résiduel. Ce calcul de tonalité est donné par exemple dans le document ICASSP 2009 référencé ci-dessus. Le signal d'amélioration codé issu du bloc 702 est transmis au bloc de multiplexage 704 selon l'allocation de bits déterminé par le procédé d'allocation. 2947945 - 23 - Le codage d'amélioration illustré sur cette figure 7 est par exemple intégré dans un codeur G.729.1 en bande super-élargie tel que décrit en référence à la figure 5. Le module d'allocation est par exemple situé dans le module d'extension de 5 bande 515. Il reçoit du TDAC 510, les informations d'allocation du codage coeur. I1 transmet le premier nombre de bits alloué au codeur TDAC qui effectue la quantification vectorielle sphérique du bloc 703. Il transmet à la seconde couche de codage du module d'extension 515, le deuxième nombre de bits alloué pour le codage en mode sinusoïdal du bloc 702. 10 Dans une variante de réalisation, ce module d'allocation de bits est intégré au module TDAC 510 de la figure 5. Il délivre le premier nombre de bits alloué au bloc de quantification du codeur TDAC et le deuxième nombre de bits alloué au module d'extension 515 pour le codage d'amélioration du bloc 702. Dans encore une autre variante, le module d'allocation est indépendant des 15 modules 510 et 515 et envoie respectivement aux deux modules, le premier nombre de bits alloué et le deuxième nombre de bits alloué. L'invention a été décrite ici pour une réalisation dans un codeur G.729.1 en bande super-élargie. Elle peut bien évidemment s'intégrer dans un codeur en bande élargie de type 20 G.718 ou dans tout autre codeur hiérarchique ayant un codage coeur dans une première bande de fréquence et un codage d'amélioration dans une deuxième bande de fréquence. Cette figure 7 représente l'étage de codage d'amélioration. Pour le décodage d'amélioration, les mêmes opérations peuvent être effectuées. Un module d'allocation 25 701 donne alors le nombre de bits nbit enhanced(j) pour le décodage d'amélioration (SVQ decod) du décodage coeur réalisé par exemple dans le module de décodage 2947945 - 24 - TDAC 603 de la figure 6 et le nombre de bits nbsin pour le décodage d'amélioration de la couche d'extension (sinus decod), réalisé par exemple par le module de décodage d'extension 614 de la figure 6. Un exemple de réalisation matérielle d'un module d'allocation tel que 5 représenté et décrit en référence à la figure 7 est maintenant décrit en référence à la figure 8. Ainsi, la figure 8 illustre un module d'allocation comportant un processeur PROC coopérant avec un bloc mémoire BM comportant une mémoire de stockage et/ou de travail MEM. 10 Ce module comporte un module d'entrée apte à recevoir un nombre de bits par sous-bande nbitù) de la première bande de fréquence d'un codeur coeur. 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é d'allocation au sens de l'invention, lorsque ces instructions sont exécutées 15 par le processeur PROC, et notamment les étapes, pour un nombre prédéterminé de bits à allouer pour un codage/décodage d'amélioration: - d'allocation, d'un premier nombre de bits à un codage/décodage de correction du codage/décodage coeur dans la première bande de fréquence et selon un premier mode de codage/décodage; 20 - d'allocation d'un deuxième nombre de bits à un codage/décodage d'amélioration du codage/décodage d'extension dans la deuxième bande de fréquence et selon un deuxième mode de codage/décodage. Typiquement, la description de la figure 7 reprend les étapes d'un algorithme d'un tel programme informatique. Le programme informatique peut également être 25 stocké sur un support mémoire lisible par un lecteur du module ou d'un codeur intégrant le module d'allocation ou téléchargeable dans l'espace mémoire de celui-ci. 2947945 - 25 - Le module d'allocation comporte un module de sortie apte à transmettre le premier nombre de bits nbit enhanced(j) alloué pour le codage de correction du codage coeur et un deuxième nombre de bits nbsin pour le codage d'amélioration du codage d'extension. 5 Ce module d'allocation peut être intégré dans un codeur/décodeur hiérarchique de type G.729.1 en bande super-élargie ou plus généralement dans tout codeur/décodeur hiérarchique avec extension en bande de fréquence. 10 REVENDICATIONS1. Procédé d'allocation binaire dans un codage/décodage d'amélioration d'un codage/décodage hiérarchique comprenant un codage/décodage coeur dans une première bande de fréquence et un codage/décodage d'extension de bande dans une deuxième bande de fréquence, caractérisé en ce que, pour un nombre prédéterminé de bits à allouer pour le codage/décodage d'amélioration, un premier nombre de bits (nbit enhanced(j)) est alloué à un codage/décodage de correction du codage/décodage coeur dans la première bande de fréquence et selon un premier mode de codage/décodage et un deuxième nombre de bits (nb_sin) est alloué à un codage/décodage d'amélioration du codage/décodage d'extension dans la deuxième bande de fréquence et selon un deuxième mode de codage/décodage. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte les 15 étapes suivantes: - obtention du nombre de bits alloué (nbitù)) pour le codage/décodage coeur, par sous-bande de fréquence de la première bande de fréquence; - dans les sous-bandes de fréquence où le nombre de bits alloué pour le codage/décodage coeur ne dépasse pas un seuil prédéterminé, allocation d'un nombre 20 de bits par sous-bande, constituant le premier nombre de bits pour le codage/décodage de correction du codage/décodage coeur; - allocation du second nombre de bits alloué pour le codage/décodage d'amélioration du codage/décodage d'extension, en fonction du premier nombre de bits alloué et du nombre prédéterminé de bits à allouer. 2947945 - 27 - 3. Procédé selon la revendication 2, caractérisé en ce que un nombre minimal de bits est fixé par sous-bande de fréquence pour l'allocation du premier nombre de bits. 4. Procédé selon la revendication 2, caractérisé en ce que le seuil 5 prédéterminé est fixé à 0. 5. Procédé selon la revendication 3, caractérisé en ce que le seuil prédéterminé est supérieur à 0 et en ce que si le premier nombre de bits alloué est supérieur au nombre de bits prédéterminé, la valeur du seuil est réduite. 6. Procédé selon la revendication 2, caractérisé en ce qu'il comporte une 10 étape de réception d'information de tonalité d'un signal résiduel résultant d'une différence entre un signal issu d'une première couche d'extension de bande et le signal original et en cas de signal résiduel tonal, le second nombre de bits alloué pour le codage/décodage d'amélioration de l'extension de bande est plus important que le premier nombre. 7. Procédé selon la revendication 1, caractérisé en ce que le codage/décodage coeur est de type codage/décodage normalisé G.729.1, le premier mode de codage/décodage étant un codage/décodage par transformée et le second mode de codage/décodage étant un codage/décodage paramétrique. 8. Module d'allocation binaire dans un codeur/décodeur d'amélioration d'un codeur/décodeur hiérarchique comprenant un module de codage/décodage coeur dans une première bande de fréquence et un module de codage/décodage d'extension de bande dans une deuxième bande de fréquence, caractérisé en ce qu'il comporte: - des moyens d'allocation d'un premier nombre de bits (nbit enhancedù)) à 25 un module de codage/décodage de correction du codeur/décodeur coeur dans la 2947945 - 28 - première bande de fréquence et selon un premier mode de codage/décodage, pour un nombre prédéterminé de bits à allouer pour le codeur/décodeur d'amélioration, et - des moyens d'allocation d'un deuxième nombre de bits (nbsin) à un module de codage/décodage d'amélioration du codeur/décodeur d'extension dans la 5 deuxième bande de fréquence et selon un deuxième mode de codage/décodage. 9. Codeur hiérarchique caractérisé en ce qu'il comprend un module d'allocation selon la revendication 8. 10. Décodeur hiérarchique, caractérisé en ce qu'il comprend un module d'allocation selon la revendication 8. 10 11. Programme informatique comportant des instructions de code pour la mise en oeuvre des étapes d'un procédé d'allocation selon l'une des revendications 1 à 7, lorsqu'elles sont exécutées par un processeur. 15 2025