CA2766864C - Codage/decodage perfectionne de signaux audionumeriques - Google Patents

Codage/decodage perfectionne de signaux audionumeriques Download PDF

Info

Publication number
CA2766864C
CA2766864C CA2766864A CA2766864A CA2766864C CA 2766864 C CA2766864 C CA 2766864C CA 2766864 A CA2766864 A CA 2766864A CA 2766864 A CA2766864 A CA 2766864A CA 2766864 C CA2766864 C CA 2766864C
Authority
CA
Canada
Prior art keywords
coding
frequency
decoding
band
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CA2766864A
Other languages
English (en)
Other versions
CA2766864A1 (fr
Inventor
David Virette
Stephane Ragot
Balazs Kovesi
Pierre Berthet
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of CA2766864A1 publication Critical patent/CA2766864A1/fr
Application granted granted Critical
Publication of CA2766864C publication Critical patent/CA2766864C/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/002Dynamic bit allocation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0212Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

L'invention se rapporte à un procédé de codage hiérarchique d'un signal audiofréquence numérique d'entrée en plusieurs sous-bandes fréquentielles comportant un codage cur 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 cur utilisant une allocation binaire (506) selon un critère énergétique. Le procédé est tel 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 des bandes de fréquences traitées par le codage d'amélioration;- détermination (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 cur;- allocation binaire (512) 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 (513) selon l'allocation de bits. L'invention se rapporte également à un procédé de décodage, un codeur et décodeur adaptés.

Description

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 d'amélioration. La couche de base est générée par un codec à débit fixe, qualifié de codec c ur , garantissant la qualité minimale du codage. Cette couche doit être
-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 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.

Le codeur G.729.1 est schématisé sur la figure 1. Le signal d'entrée en bande élargie s ,h , é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
-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, , avant codage CELP en bande étroite (bloc 105) à 8 et 12 kbit/s. Ce filtrage passe-haut tient compte du fait que la bande utile est définie comme couvrant l'intervalle 50-7000 Hz.
Le codage CELP en bande étroite est un codage CELP en cascade comprenant comme premier étage un codage G.729 modifié sans filtre de prétraitement et comme deuxième étage un dictionnaire CELP fixe supplémentaire.

La bande haute est d'abord prétraitée (bloc 106) pour compenser le repliement dû au filtre passe-haut (bloc 102) combiné avec la décimation (bloc 103). La bande haute est ensuite filtrée par un filtre passe-bas (bloc 107) éliminant les composantes entre 3000 et 4000 Hz de la bande haute (c'est-à-dire les composantes entre 7000 et 8000 Hz dans le signal original) pour obtenir le signal sHB . Une extension de bande 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 dLB 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 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.
-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 à

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 s,,b , échantillonné à 16 kHz, est obtenu par l'intermédiaire du banc de filtres QMF de synthèse (blocs 209, 210, 211, 212 et 213) intégrant le repliement inverse (bloc 208).

La description de la couche de codage par transformée est détaillée ci-après.

* Rappels sur le codeur par transformée TDAC dans le codeur G.729.1 Le codage par transformée de type TDAC dans le codeur G.729.1 est illustré
sur la figure 3.

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 LB . Des transformées MDCT sont ensuite calculées (bloc 301 et 302) pour obtenir :

- le spectre MDCT DLB du signal de différence, filtré perceptuellement, et - le spectre MDCT SHB du signal original de la bande haute.

Ces transformées MDCT (blocs 301 et 302) s'appliquent à 20 ms de signal échantillonné à 8 kHz (160 coefficients). Le spectre Y(k) issu du bloc 303 de fusion comprend ainsi 2 x 160, soit 320 coefficients. Il est défini comme suit :

[Y (0) y(1) ... Y(319)] _ [DLB (0) DLB (1) ... Die (159) SHB (0) SHB (1) ...SHB (159)j Ce spectre est divisé en dix-huit sous-bandes, une sous-bande j étant affectée d'un nombre de coefficients noté nb _ coef (j) . Le découpage en sous-bandes est spécifié dans le tableau 1 ci-après.

Ainsi, une sous-bande j comprend les coefficients Y(k) avec sb _bound (j) <_ k < sb - bound (j + 1).
-6-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)
7 112 16
8 128 16
9 144 16 5 Tableau 1 : Limites et taille des sous-bandes en codage TDAC
L'enveloppe spectrale {log_ rms(j)}1_o 17 est calculée dans le bloc 304 suivant la formule :

sb _ hound (j+1)-1 log_ rms(j) log, 1 1 Y(k)'` +Er,ns , j = 0,.... 17 2 nb _ coef (j) k=sb_bound(j) où ErmS = 2 L'enveloppe spectrale est codée à débit variable dans le bloc 305. Ce bloc 305 produit des valeurs quantifiées, entières, notées rms _ index(j) (avec j=0,...,17), obtenues par simple quantification scalaire :

rets_index(j)=round (2=log- rms(j)) où la notation round désigne l'arrondi à l'entier le plus proche, et avec la contrainte :

-11 <- rms _ index(j) < +20 Cette valeur quantifiée rms _ index(j) est transmise au bloc d'allocation de bits 306.

Le codage de l'enveloppe spectrale, lui-même, est effectué encore par le bloc 305, séparément pour la bande basse (rms _ index(j) , avec j=0,...,9) et pour la bande haute (rms _ index(j) , avec j=10,...,17). Dans chaque bande, deux types de codage peuvent être choisis selon un critère donné, et, plus précisément, les valeurs rms _ index(j) :

- peuvent être codées par codage dit de Huffman différentiel , - ou peuvent être codées par codage binaire naturel.

Un bit (0 ou 1) est transmis au décodeur pour indiquer le mode de codage qui a été choisi.

Le nombre de bits alloués à chaque sous-bande pour sa quantification est déterminé au bloc 306 à partir de l'enveloppe spectrale quantifiée issue du bloc 305.
L'allocation des bits effectuée minimise l'erreur quadratique tout en respectant la contrainte d'un nombre de bits entier alloué par sous-bande et d'un nombre de bits maximum à ne pas dépasser. Le contenu spectral des sous-bandes est ensuite codé
par quantification vectorielle sphérique (bloc 307).

Les différents flux binaires générés par les blocs 305 et 307 sont ensuite multiplexés et structurés en un train binaire hiérarchique au bloc de multiplexage 308.

* 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 :

rets-q(j) = 2'h rns_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 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 1 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 w (bloc 409) résultant de la transformée inverse.

On décrit plus particulièrement ci-après l'allocation de bits aux sous-bandes (bloc 306 de la figure 3 ou bloc 402 de la figure 4).

Les blocs 306 et 402 réalisent une opération identique à partir des valeurs rms - index(j) , j=0,...,17. On se contente donc par la suite de décrire uniquement le fonctionnement du bloc 306.

Le but de l'allocation binaire est de répartir entre chacune des sous-bandes un certain budget de bits (variable) noté nbits _VQ , avec :

nbits _ VQ = 351- nbits - ris , 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=O,...,17), alloués à chacune des sous-bande avec comme contrainte globale :

nbit(j) < nbits VQ
I--o Dans la norme G.729.1, les valeurs nbit(j) (j=O,...,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.
-10-Taille de la Ensemble des valeurs autorisées nbit(j) (en nombre de bits) sous-bandej nb_coef(j) 8 R 8 = 10, 7,10,12,13,14,15,161 16 R 16 = 10, 9,14,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}
Tableau 2: Valeurs possibles de nombre de bits alloués dans les sous-bandes TDAC.

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) = - logz (rms _ q(j) x nb _coef (j))+ offset où offset = -2.

Puisque les valeurs rms - q(j) = 2"' cette formule se simplifie sous la forme :

2 rms _ index(j) pour j = 0, ...,16 iP(j) _ 1 (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(j)x(ip(j)-ri fEFi rrJ>_c.xfl j) où A,, est un paramètre optimisé par dichotomie pour satisfaire la contrainte globale
-11-Y. nbit(j) nbits _VQ
i--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 (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 W,B (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 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 < y2 < yl < 1 et Å(z) représente un spectre de prédiction linéaire (LPC). L'analyse par synthèse en codage 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 :
Å(zly, ) WLB (z) = fac Å(z l y2) (-Y2) ` â;
avec y, = 0,96, y2 = 0,6 et fac = i-0 P
Y, (-Y)`âi =o
-12-Le facteurfac 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.

* 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 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 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 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 audiofréquence numérique d'entrée en plusieurs sous-bandes fréquentielles
- 13-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 selon un critère énergétique. Le procédé est tel qu'il comporte les étapes suivantes pour le codage d'amélioration:

- 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;

- 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 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 é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 importance perceptuelle comporte:
-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 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 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 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.

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 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
- 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, 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 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 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 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 sous-bande.
-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.

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.

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 audiofréquence 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 é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 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 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.
- 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 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 coefficients dans ladite sous-bande.

L'invention se rapporte à un codeur hiérarchique d'un signal audiofréquence 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 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 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.

Elle se rapporte également à un décodeur hiérarchique d'un signal audiofréquence numérique en plusieurs sous-bandes fréquentielles comportant un
- 18-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 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 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 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 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 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 précédemment;
-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;

- 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 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, 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 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 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
-20-G.729.1 pour certains signaux tels que les signaux musicaux n'est pas transparente à
son plus haut débit (32 kbitls) - 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 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 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 é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 é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 kbitls.

Dans un mode de réalisation de l'invention, on s'intéresse plus 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.
-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.

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 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 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.

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).

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
-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 é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.

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.

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 de l'enveloppe d'énergie &2 (j) = rms - q(j)2 x nb coef (j), par une fonction d'étalementB(v) .

Dans un premier mode de réalisation, ce masquage n'est effectué que sur la bande haute du signal, avec :

M(j)= ~Q2(k)xB(vj -vk) k=10
-23-où vk est la fréquence centrale de la sous-bande k en Bark, le signe X désignant multiplié par , avec la fonction d'étalement décrite ci-après.

En termes plus génériques, le seuil de masquage M(j), pour une sous-bande j, est donc défini par une convolution entre :

- une expression de l'enveloppe spectrale, et - une fonction d'étalement faisant intervenir une fréquence centrale de la sous-bande J.

Une fonction d'étalement avantageuse est celle présentée à la figure 7. Il s'agit d'une fonction triangulaire dont la première pente est de +27dB/Bark et -1OdB/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)+ô2(j) j=1,..,16 M+ (17) j =17 où

M+(J)=â2(j-1).A2(j)+M+(j-1)=A2(j) j=11,..,17 M-(J)=Q2(j+l)=A1(j)+M-(j+1).i (j) j=10,..,16 et O2 (j)=1o Les valeurs de i (j) et 0, (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 :

â2 (j) 1 - log, 2 M(j) L'importance perceptuelle est donc définie comme suit dans le bloc 511 :
2 loge (&2(j))+offset pour j = 0.9 ip(j) _ 1 logz ~!~ +normfac +offset pour j =10..17 2 M(j) où offset = -2 et normfac est un facteur de normalisation calculé suivant la relation :

normfac=logz yà2(j)XB(vg -vj) lj=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 j=0,...,9 ip(j) 2 [ris _ index(j) - log mask(j)] pour j =10,...,17
-25-où log- mask(j)=log2(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 :

normfac=loge yâ2(j)xB(v10-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 :

M(j) =1 â2 (k) x B(vj - vk ) k=0 Le seuil de masquage est ensuite appliqué uniquement à la bande haute après normalisation du seuil de masquage par sa valeur sur la dernière sous-bande de la bande basse:

normfac=loge [2(j)xB(v _vi) , j=0 ou encore par sa valeur sur la première sous-bande de la bande haute :

normfac = log, l &2 (j) x B(v10 _V
1) lj=o Bien entendu, ces relations donnant le facteur de normalisation normfac ou le seuil de masquage M(j) sont généralisables à un nombre de sous-bandes quelconque
-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(j), est envoyée au bloc 512 d'allocation binaire pour le codage d'amélioration.

Ce bloc 512 reçoit également les informations d'allocations de bits nbit(j) 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.

Ainsi, une seconde importance perceptuelle est définie comme suit:
ip (j) = ip(j)- nbit(j) ff(j) pour j=1, ..., 18 nb _ coe où nbit(j) représente le nombre de bits alloués par la couche de base à la bande de fréquence j, et nb_coeff(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,ERnn min~nb coef (j) x (ip' (j) - Å ) - r où l'optimisation doit satisfaire la contrainte 1 nbit _ err(j) S nbits_VQ _ err l=d
-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 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 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-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 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.
-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:

- 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;

- 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 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) 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(j) calculée par ce module 605, le module d'allocation 604, détermine une seconde importance perceptuelle en
-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 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
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 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.

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.

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
-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 un mode "binaire naturel direct". Ce bit de mode peut être interprété comme une détection de tonalité, car, en général, un signal tonal conduit à un codage d'enveloppe par le mode "binaire naturel direct", tandis que la plupart des signaux non tonaux, ayant une dynamique spectrale plus limitée, conduisent à un codage d'enveloppe par le mode "Huffman différentiel".

Ainsi, 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 :

2 rms _ index(j) pour j = 0..9 ip(j) _ 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 :

1 rms - index(j) pour j0,..,16 ip(j) =
(rms - index(j) -1) pour j =17
-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 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.

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 pleine bande S,swB 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 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.

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.
-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 Sswn .

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 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 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 en référence aux figures 5 et 6 est maintenant décrit en référence aux figures 11 a et I lb.

Ainsi, la figure lla illustre un codeur ou terminal comprenant un 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 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:

- 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;
-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 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 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 11b illustre un exemple de décodeur ou de terminal comportant un décodeur tel que décrit en référence à la figure 6.

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 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;
-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 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 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.

Claims (10)

REVENDICATIONS
1. Procédé de codage hiérarchique d'un signal audiofréquence numérique d'entrée en plusieurs sous-bandes fréquentielles comportant un codage coeur du signal d'entrée destiné à encoder des coefficients de transformée de type MDCT

selon un premier débit et au moins un codage d'amélioration du codage des coefficients de type MDCT de débit supérieur d'un signal résiduel, le codage coeur utilisant une allocation binaire (506) selon un critère énergétique, le procédé
comportant les étapes suivantes pour le codage d'amélioration:
- calcul d'un seuil de masquage fréquentiel (511) pour des bandes de fréquences traitées par le codage d'amélioration, le seuil de masquage étant normalisé;
- 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 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, dans lequel l'étape de détermination d'une importance perceptuelle comporte:
- 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é;
-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.
3. Procédé selon la revendication 1, dans lequel 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, dans lequel 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, comprenant 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, dans lequel 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.
7. Procédé de décodage hiérarchique d'un signal audiofréquence numérique en plusieurs sous-bandes fréquentielles comportant un décodage coeur d'un signal reçu destiné à décoder des coefficients de transformée de type MDCT selon un premier débit et au moins un décodage d'amélioration du décodage des coefficients de type MDCT 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é comprenant les étapes suivantes pour le décodage d'amélioration:
- calcul d'un seuil de masquage fréquentiel (605) pour des sous-bandes de fréquences traitées par le décodage d'amélioration, le seuil de masquage étant normalisé;

- 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é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 -décodage (611) du signal résiduel selon l'allocation de bits.
8. Procédé de décodage selon la revendication 7, dans lequel l'étape de détermination d'une importance perceptuelle comporte:
- une première étape (605) 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 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 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.
9. Codeur hiérarchique d'un signal audiofréquence numérique d'entrée en plusieurs sous-bandes fréquentielles comportant un codeur coeur du signal d'entrée destiné à encoder des coefficients de transformée de type MDCT selon un premier débit et au moins un codeur d'amélioration du codage des coefficients de type MDCT
de débit supérieur d'un signal résiduel, le codeur coeur utilisant une allocation binaire (506) selon un critère énergétique, dans lequel le codeur d'amélioration comporte:
- un module (511) de calcul d'un seuil de masquage fréquentiel pour des bandes de fréquences traitées par le codeur d'amélioration, le seuil de masquage étant normalisé;

- un module de détermination (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 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 -un module de codage du signal résiduel (513) selon l'allocation de bits.
10. Décodeur hiérarchique d'un signal audiofréquence numérique en plusieurs sous-bandes fréquentielles comportant un décodeur coeur d'un signal reçu destiné à décoder des coefficients de transformée de type MDCT selon un premier débit et au moins un décodeur d'amélioration du décodage des coefficients de type MDCT de débit supérieur, d'un signal résiduel, le décodeur coeur utilisant une allocation binaire selon un critère énergétique, dans lequel le décodeur d'amélioration comporte:
- un module de calcul d'un seuil de masquage fréquentiel (605) pour des sous-bandes de fréquences traitées par le décodeur d'amélioration, le seuil de masquage étant normalisé;
- 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 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.
CA2766864A 2009-07-07 2010-06-25 Codage/decodage perfectionne de signaux audionumeriques Active CA2766864C (fr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0954682 2009-07-07
FR0954682A FR2947944A1 (fr) 2009-07-07 2009-07-07 Codage/decodage perfectionne de signaux audionumeriques
PCT/FR2010/051307 WO2011004097A1 (fr) 2009-07-07 2010-06-25 Codage/décodage perfectionne de signaux audionumériques

Publications (2)

Publication Number Publication Date
CA2766864A1 CA2766864A1 (fr) 2011-01-13
CA2766864C true CA2766864C (fr) 2015-10-27

Family

ID=41531514

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2766864A Active CA2766864C (fr) 2009-07-07 2010-06-25 Codage/decodage perfectionne de signaux audionumeriques

Country Status (7)

Country Link
US (1) US8812327B2 (fr)
EP (1) EP2452336B1 (fr)
KR (1) KR101698371B1 (fr)
CN (1) CN102576536B (fr)
CA (1) CA2766864C (fr)
FR (1) FR2947944A1 (fr)
WO (1) WO2011004097A1 (fr)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011086924A1 (fr) * 2010-01-14 2011-07-21 パナソニック株式会社 Appareil de codage audio et procédé de codage audio
FR3003682A1 (fr) * 2013-03-25 2014-09-26 France Telecom Mixage partiel optimise de flux audio codes selon un codage par sous-bandes
FR3003683A1 (fr) * 2013-03-25 2014-09-26 France Telecom Mixage optimise de flux audio codes selon un codage par sous-bandes
CN108198564B (zh) * 2013-07-01 2021-02-26 华为技术有限公司 信号编码和解码方法以及设备
KR102547480B1 (ko) * 2014-12-09 2023-06-26 돌비 인터네셔널 에이비 Mdct-도메인 에러 은닉
JP6611042B2 (ja) * 2015-12-02 2019-11-27 パナソニックIpマネジメント株式会社 音声信号復号装置及び音声信号復号方法
AU2018338424B2 (en) * 2017-09-20 2023-03-02 Voiceage Corporation Method and device for efficiently distributing a bit-budget in a CELP codec
CN114708874A (zh) * 2018-05-31 2022-07-05 华为技术有限公司 立体声信号的编码方法和装置
EP3751567B1 (fr) * 2019-06-10 2022-01-26 Axis AB Procédé, programme informatique, codeur et dispositif de surveillance
CN111246469B (zh) * 2020-03-05 2020-10-16 北京花兰德科技咨询服务有限公司 人工智能保密通信系统及通信方法
CN111294367B (zh) 2020-05-14 2020-09-01 腾讯科技(深圳)有限公司 音频信号后处理方法和装置、存储介质及电子设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495552A (en) * 1992-04-20 1996-02-27 Mitsubishi Denki Kabushiki Kaisha Methods of efficiently recording an audio signal in semiconductor memory
JPH07160297A (ja) * 1993-12-10 1995-06-23 Nec Corp 音声パラメータ符号化方式
DE19743662A1 (de) * 1997-10-02 1999-04-08 Bosch Gmbh Robert Verfahren und Vorrichtung zur Erzeugung eines bitratenskalierbaren Audio-Datenstroms
FI109393B (fi) * 2000-07-14 2002-07-15 Nokia Corp Menetelmä mediavirran enkoodaamiseksi skaalautuvasti, skaalautuva enkooderi ja päätelaite
WO2003077235A1 (fr) * 2002-03-12 2003-09-18 Nokia Corporation Ameliorations de rendement dans le codage audio evolutif
DE10236694A1 (de) * 2002-08-09 2004-02-26 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum skalierbaren Codieren und Vorrichtung und Verfahren zum skalierbaren Decodieren
FR2849727B1 (fr) * 2003-01-08 2005-03-18 France Telecom Procede de codage et de decodage audio a debit variable
DE602004004950T2 (de) * 2003-07-09 2007-10-31 Samsung Electronics Co., Ltd., Suwon Vorrichtung und Verfahren zum bitraten-skalierbaren Sprachkodieren und -dekodieren
KR100561869B1 (ko) * 2004-03-10 2006-03-17 삼성전자주식회사 무손실 오디오 부호화/복호화 방법 및 장치
US7392195B2 (en) * 2004-03-25 2008-06-24 Dts, Inc. Lossless multi-channel audio codec
FR2888699A1 (fr) * 2005-07-13 2007-01-19 France Telecom Dispositif de codage/decodage hierachique
DE602006018618D1 (de) * 2005-07-22 2011-01-13 France Telecom Verfahren zum umschalten der raten- und bandbreitenskalierbaren audiodecodierungsrate
KR100827458B1 (ko) * 2006-07-21 2008-05-06 엘지전자 주식회사 오디오 부호화 방법
FR2912249A1 (fr) * 2007-02-02 2008-08-08 France Telecom Codage/decodage perfectionnes de signaux audionumeriques.
US8032359B2 (en) * 2007-02-14 2011-10-04 Mindspeed Technologies, Inc. Embedded silence and background noise compression
JP4708446B2 (ja) * 2007-03-02 2011-06-22 パナソニック株式会社 符号化装置、復号装置およびそれらの方法
JP4871894B2 (ja) * 2007-03-02 2012-02-08 パナソニック株式会社 符号化装置、復号装置、符号化方法および復号方法
WO2008114075A1 (fr) * 2007-03-16 2008-09-25 Nokia Corporation Codeur
US8209190B2 (en) * 2007-10-25 2012-06-26 Motorola Mobility, Inc. Method and apparatus for generating an enhancement layer within an audio coding system
WO2009144953A1 (fr) * 2008-05-30 2009-12-03 パナソニック株式会社 Codeur, décodeur et procédés apparentés
US8200496B2 (en) * 2008-12-29 2012-06-12 Motorola Mobility, Inc. Audio signal decoder and method for producing a scaled reconstructed audio signal
US8219408B2 (en) * 2008-12-29 2012-07-10 Motorola Mobility, Inc. Audio signal decoder and method for producing a scaled reconstructed audio signal

Also Published As

Publication number Publication date
US8812327B2 (en) 2014-08-19
WO2011004097A1 (fr) 2011-01-13
EP2452336A1 (fr) 2012-05-16
US20120185255A1 (en) 2012-07-19
CN102576536A (zh) 2012-07-11
KR20120032025A (ko) 2012-04-04
CN102576536B (zh) 2013-09-04
EP2452336B1 (fr) 2013-11-27
FR2947944A1 (fr) 2011-01-14
KR101698371B1 (ko) 2017-01-26
CA2766864A1 (fr) 2011-01-13

Similar Documents

Publication Publication Date Title
CA2766864C (fr) Codage/decodage perfectionne de signaux audionumeriques
EP2115741B1 (fr) Codage/decodage perfectionnes de signaux audionumeriques
CA2766777C (fr) Allocation de bits dans un codage/decodage d&#39;amelioration d&#39;un codage/decodage hierarchique de signaux audionumeriques
EP1989706B1 (fr) Dispositif de ponderation perceptuelle en codage/decodage audio
EP1905010B1 (fr) Codage/décodage audio hiérarchique
CA2512179C (fr) Procede de codage et de decodage audio a debit variable
EP1907812B1 (fr) Procede de commutation de debit en decodage audio scalable en debit et largeur de bande
EP2366177B1 (fr) Codage de signal audionumerique avec mise en forme du bruit dans un codeur hierarchique
AU2008316860B2 (en) Scalable speech and audio encoding using combinatorial encoding of MDCT spectrum
EP1692689B1 (fr) Procede de codage multiple optimise
EP1989707A2 (fr) Procede de codage binaire d&#39;indices de quantification d&#39;une enveloppe d&#39;un signal, procede de decodage d&#39;une enveloppe d&#39;un signal et modules de codage et decodage correspondants
WO2007107670A2 (fr) Procede de post-traitement d&#39;un signal dans un decodeur audio
FR2737360A1 (fr) Procedes de codage et de decodage de signaux audiofrequence, codeur et decodeur pour la mise en oeuvre de tels procedes

Legal Events

Date Code Title Description
EEER Examination request