Brevet FR3007184A1 — publié le 20141219

Contrôle du traitement d'atténuation d'un bruit de quantification introduit par un codage en compression La présente invention concerne le contrôle d'un traitement de signal, en particulier de signaux audio numériques dans le domaine des télécommunications. Ces signaux peuvent être des signaux de parole, de musique ou autres. Généralement, le débit nécessaire pour faire transiter un signal audio avec une qualité suffisante est un paramètre important en télécommunications. Afin de réduire ce paramètre et d'augmenter alors le nombre de communications possibles via un même réseau, des codeurs audio ont été développées notamment pour compresser la quantité d'informations nécessaire pour transmettre un signal. Certains codeurs permettent d'atteindre des taux de compression de l'information particulièrement élevés. De tels codeurs utilisent en général des techniques avancées de modélisation et de quantification de l'information. Ainsi, de tels codeurs ne transmettent que des modèles ou des données partielles dus signal. Le signal décodé, bien qu'il ne soit pas identique au signal original (puisqu'une partie de l'information n'a pas été transmise du fait de l'opération de quantification), reste néanmoins très proche du signal original. La différence, du point de vue mathématique, entre le signal décodé et le signal original est alors appelée "bruit de quantification" ou "bruit de codage". On peut parler aussi de "distorsion" introduite par le codage/décodage. Les traitements en compression de signaux sont souvent conçus de manière à minimiser le bruit de quantification et, en particulier, à rendre ce bruit de quantification le moins audible possible. Il existe alors des techniques prenant en compte les caractéristiques psycho-acoustiques de l'audition, dans le but de "masquer" ce bruit. Toutefois, pour obtenir des débits les plus faibles possibles, le bruit de quantification peut demeurer audible, parfois, ce qui, dans certaines circonstances, dégrade l'intelligibilité du signal et/ou la qualité du signal. Il existe déjà des systèmes de réduction de bruit de quantification qui comportent un premier module d'estimation du bruit de quantification selon différentes techniques et un deuxième module de traitement de réduction de bruit sur le signal décodé (qui constitue le signal d'entrée du module), à partir de cette estimation. La problématique de ces systèmes est de trouver un compromis entre une réduction trop forte qui peut dégrader le signal utile et une réduction trop faible qui conserve bien le signal utile mais laisse le signal de bruit audible. Cette problématique est d'autant plus vraie lorsque le signal utile est complexe, par exemple lorsqu'il est composé d'un mélange de parole et de bruit ambiant. Une solution de post-filtrage est par exemple décrite dans le document des auteurs 3- L.Garcia, C.Marro et B. Kôvesi, intitulé "a PCM coding noise reduction for ITU-T G.711.1", dans Interspeech 2008, pour un codeur de type normalisé ITU-T G.711. Pour éviter la distorsion du signal utile par le post-traitement ce document propose de limiter l'agressivité du traitement de réduction de bruit par une limitation de l'atténuation maximale, par exemple à -6dB et de garder le signal post-filtré dans l'intervalle de quantification du quantificateur scalaire MIC (Modulation par Impulsion et Codage). Cependant, cette solution est certes adaptée au codage MIC mais n'est pas toujours applicable ou efficace pour d'autres types de codage en compression, notamment pour un codage de type MICDA (pour "Modulation par Impulsion et Codage Différentiel Adaptatif"). De même pour le codage MIC, il peut être intéressant d'améliorer la performance du post-filtrage : La limitation de l'atténuation maximale à -6 dB est un compromis. Une atténuation plus forte donnerait un meilleur résultat pour la parole propre par contre quelques distorsions audible commencerait à apparaitre pour les signaux plus complexes. Idéalement le seuil devrait être adaptatif, en fonction du type de signal. Il existe donc un besoin de contrôler le traitement de réduction de bruit de quantification engendré par un codage différent du codage MIC et pour des signaux audio qui peuvent être complexes. La présente invention vient améliorer la situation. Elle propose à cet effet, un procédé de contrôle d'un traitement d'atténuation de bruit de quantification d'un signal audio numérique décodé, le bruit de quantification étant généré par un codage en compression comportant une opération de quantification, le procédé comportant une étape d'obtention d'une estimation du bruit de quantification à partir d'un signal disponible au décodeur. Le procédé est tel qu'il comporte les étapes suivantes: - détermination d'un critère psycho-acoustique à partir d'un signal disponible au décodeur; - détermination, par trame de signal, des niveaux d'atténuation à appliquer au traitement d'atténuation de bruit du signal décodé, en fonction de l'estimation du bruit de quantification et du critère psycho-acoustique déterminé. Ainsi, le contrôle de l'atténuation du traitement s'effectue de façon précise de manière à adapter au mieux l'atténuation du bruit au signal décodé. L'utilisation d'un critère psycho-acoustique pour déterminer les niveaux d'atténuation permet d'obtenir une atténuation forte du bruit de codage pour un signal de parole (où le bruit de quantification est particulièrement audible) et une atténuation faible voire nulle pour les enregistrements avec bruit de fond pour lesquels le bruit de quantification n'est pas audible (car masqué par le bruit de fond). Cette mise en oeuvre est adaptée à différents types de codage en compression et n'est donc pas limitée au codage de type MIC ou MICDA. 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 contrôle défini ci-dessus. Dans un mode de réalisation, le critère psycho-acoustique est une courbe de masquage et le procédé comporte en outre une étape de comparaison entre l'estimation du bruit de quantification et la courbe de masquage pour déterminer, par trame de signal décodé, les niveaux d'atténuation à appliquer au traitement d'atténuation de bruit du signal décodé. Ainsi, la comparaison entre l'estimation du bruit de quantification et la courbe de masquage permet de déterminer les endroits du signal où le bruit de quantification peut être masqué et permet ainsi d'adapter au mieux les niveaux d'atténuation à appliquer au traitement d'atténuation du bruit du signal décodé. De façon simple et précise, dans un mode possible de réalisation, l'étape de comparaison détermine un nombre de coefficients du bruit de quantification estimé, supérieurs à la courbe de masquage, la détermination des niveaux d'atténuation par trame de signal étant fonction du nombre de coefficients déterminés. De façon particulière, le traitement d'atténuation de bruit est inhibé par un niveau d'atténuation nul lorsque le nombre de coefficients déterminés est inférieur à un seuil prédéterminé. Ainsi, lorsque le signal audio est un enregistrement de bruit de fond ou un enregistrement musical, celui-ci masque le bruit de quantification qui n'a pas besoin d'être atténué. La comparaison entre le bruit estimé et la courbe de masquage permet de définir les trames qui ont cette caractéristique et d'inhiber dans ce cas, le traitement d'atténuation qui n'est donc pas nécessaire. Ceci diminue donc la complexité globale du traitement et permet d'éviter la dégradation du signal utile par le post-traitement d'atténuation de bruit. Dans une variante de réalisation présentant les mêmes avantages, l'étape de comparaison détermine un écart de niveau entre le bruit de quantification estimé et la courbe de masquage pour les coefficients du bruit estimé supérieurs à la courbe de masquage, la détermination des niveaux d'atténuation à appliquer au traitement d'atténuation de bruit étant fonction de la valeur de cet écart. Dans un mode particulier de réalisation, des caractéristiques représentatives des niveaux d'atténuation déterminés pour la trame courante sont mis en mémoire et les niveaux d'atténuation de la trame courante sont déterminés en outre en fonction des caractéristiques des niveaux d'atténuation mémorisés pour un nombre prédéterminé de trames précédentes. La prise en compte des niveaux d'atténuation des trames précédentes permet des transitions plus douces entre des niveaux d'atténuation différents à appliquer pour des trames successives. L'invention s'applique parfaitement dans le cas d'un codage de type MICDA mais peut aussi s'appliquer pour d'autres types de codage en compression audio. La présente invention vise également un dispositif de contrôle d'un traitement de d'atténuation de bruit de quantification d'un signal audio numérique décodé, le bruit de quantification étant généré par un codeur en compression comportant un module de quantification, le dispositif recevant une estimation du bruit de quantification à partir d'un signal disponible au décodeur par un module d'estimation. Le dispositif est tel qu'il comporte: - un module détermination d'un critère psycho-acoustique à partir d'un signal disponible au décodeur; - un module de détermination par trame de signal, d'un niveau d'atténuation à appliquer au traitement d'atténuation de bruit du signal décodé, en fonction de l'estimation du bruit de quantification reçu et du critère psycho-acoustique déterminé. Ce dispositif présente les mêmes avantages que le procédé décrit précédemment, qu'il met en oeuvre. L'invention vise également un dispositif de post-traitement d'un signal audio numérique décodé, qui comporte: - un module d'estimation du bruit de quantification à partir d'un signal disponible au décodeur; - un dispositif de contrôle d'un traitement d'atténuation du bruit de quantification tel que décrit; et - un module de filtrage effectuant le traitement d'atténuation du signal décodé avec les niveaux d'atténuation issus du dispositif de contrôle. Elle vise un programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de contrôle tel que décrit, lorsque ces instructions sont exécutées par un processeur. Enfin l'invention se rapporte à un support de stockage, lisible par un processeur, intégré ou non au dispositif de contrôle, éventuellement amovible, mémorisant un programme informatique mettant en oeuvre un procédé de contrôle tel que décrit précédemment. 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 de façon schématique la structure générale d'un codec comportant un module de post-traitement d'atténuation de bruit de quantification et un dispositif de contrôle de l'atténuation du traitement d'atténuation selon un mode de réalisation de l'invention; - la figure 2 illustre sous forme d'organigramme, les étapes principales d'un procédé de contrôle d'atténuation selon un mode de réalisation de l'invention; - la figure 3 illustre un codec de type MICDA pour lequel le procédé et le dispositif selon l'invention peut être mis en oeuvre; la figure 4 illustre un mode de réalisation particulier du procédé de contrôle selon l'invention, pour un codec de type normalisé ITU-T G.722; la figure 5 illustre les fenêtres mises en oeuvre pour le calcul d'une distribution spectrale de puissance pour la mise oeuvre du procédé de contrôle d'atténuation selon un mode de réalisation de l'invention; la figure 6a illustre une modélisation dans le domaine des Barks d'une fonction élémentaire de masquage utilisée pour définir une courbe de masquage dans un mode de réalisation de l'invention; La figure 6b illustre une courbe de masquage représentant un critère psycho- acoustique dans un mode de réalisation de l'invention; La figure 7 illustre un exemple de règles de prise en compte des caractéristiques représentatives des niveaux d'atténuation des trames précédentes pour déterminer l'atténuation à appliquer à la trame courante; La figure 8 représente un tableau indiquant le pourcentage de trames pour lesquelles le traitement d'atténuation de bruit a été mis en oeuvre en fonction des paramètres du système de contrôle selon l'invention pour deux catégories de signaux (valeurs du bas pour les échantillons de parole propre et valeurs du haut pour les échantillons de contenus mixte); et La figure 9 illustre un exemple de réalisation matérielle d'un dispositif de contrôle selon un mode de réalisation de l'invention. En référence à la figure 1, une chaine de traitement d'un signal audio est présentée. Un signal s(n) est codé en compression par un codeur COD comportant une opération de quantification Q. Ce signal codé est transmis via un canal de transmission CA puis décodé par un décodeur DEC homologue du codeur COD. Le signal ainsi décodé, noté x(n), présente alors un bruit de quantification b(n) qui se définit mathématiquement comme un écart (s(n) - x(n)). Une unité de traitement d'atténuation TBQ du bruit de quantification est prévu en aval du décodeur DEC, pour supprimer ou au moins limiter le bruit de quantification (pour le rendre moins audible) dans le signal x(n). Pour effectuer ce traitement d'atténuation du bruit de quantification, que l'on appellera également post-traitement, l'unité de traitement comporte un module BQ d'estimation du bruit de quantification B(0. Cette estimation peut se faire à partir du signal décodé x(n) (comme c'était le cas pour le codage de type MIC dans l'article déjà cité) et/ou éventuellement à partir d'un signal intermédiaire (1) issu du décodeur où encore à partir du train binaire (7) reçus en entrée E. Chaque coefficient de B(f) donne la puissance du bruit dans la bande de fréquence f correspondante. Le dispositif de contrôle du traitement DC reçoit en entrée l'estimation du bruit de codage et comporte un module NA de détermination des niveaux d'atténuation par bande de fréquence à appliquer au traitement d'atténuation du bruit de quantification. Cette détermination s'effectue à partir du bruit estimé B(f), d'un critère psycho-acoustique M(f) déterminé par le module P-A et éventuellement de la distribution spectrale de puissance du signal décodé X(0. Les niveaux d'atténuation ainsi déterminés permettent de régler les paramètres du filtre FILT qui appliqué au signal décodé x(n), effectue le traitement d'atténuation de bruit. Dans le cas où le dispositif DC détermine un niveau d'atténuation nul pour toutes les bandes de fréquence, cela revient à inhiber le filtrage du module FILT. Le signal post-traité x'(n) est fourni en sortie S du dispositif de traitement TBQ. La figure 2 illustre sous forme d'organigramme, les étapes principales d'un procédé de contrôle du traitement d'atténuation de bruit de quantification, selon un mode de réalisation. Ainsi, à l'étape E201, une estimation du bruit de quantification est effectuée à partir du signal décodé x(n) et/ou éventuellement à partir d'un signal intermédiaire (1) issu du décodeur ou encore à partir du train binaire (7) reçu (I et T ne sont pas représentés sur la figure 2). Cette estimation du bruit de quantification est fournie en entrée du dispositif de contrôle DC de la figure 1. L'estimation du bruit de quantification B(f), peut être effectuée par exemple selon la technique d'estimation décrite dans le document "a PCM coding noise reduction for ITU-T G.711.1" référencé précédemment où la variance du bruit de codage est estimée à partir de la variance du signal décodé de la trame courante, la forme spectrale étant supposée être blanche. Pour les signaux de faible niveau (variance du signal décodé inférieur à un seuil) la variance du bruit de codage est constante (on utilise la partie linéaire du quantificateur MIC). Pour les plus forts niveaux du signal décodé, la variance du bruit de codage est corrélée et approximativement proportionnelle avec celle du signal décodé (on utilise la partie logarithmique du quantificateur MIC, le rapport signal à bruit est à peu près constant). Pour un codeur de type MICDA on peut faire une estimation relativement précise du bruit de quantification en analogie avec la technique utilisée pour un codeur MIC. Le quantificateur d'un codeur MICDA est également un quantificateur de type logarithmique multiplié par un facteur d'échelle qui encode l'erreur de prédiction. Ainsi la variance de bruit de quantification est corrélée et approximativement proportionnelle avec la variance de l'erreur de prédiction décodée. La division de la variance de l'erreur de prédiction décodée par une constante obtenue par apprentissage, permet donc de faire une estimation relativement précise de la variance de bruit de codage. La forme spectrale du bruit de codage est également supposée blanche. L'erreur de prédiction décodée est par exemple obtenue à l'issu de calculs intermédiaires effectués au décodeur ou obtenue par décodage partiel du train binaire reçu. Dans ces cas le module d'estimation du bruit utilise comme entrée soit un signal intermédiaire issu du décodeur (l'erreur de prédiction décodée) soit le train binaire reçu. D'autres techniques d'estimation du bruit de quantification peuvent bien sûr être utilisées sans que cela ne s'écarte du cadre de l'invention. En E202, une étape d'obtention d'un critère psycho-acoustique est effectuée. Ce critère psycho-acoustique peut être défini comme étant une limite au-delà de laquelle, le bruit est audible par l'oreille humaine. Un exemple de critère psycho-acoustique est une courbe de masquage. Le masquage psycho-acoustique est en effet un phénomène perceptif où un son peut potentiellement être non perçu en présence d'un autre, dans ce cas le premier son est masqué. C'est un phénomène spectral mais aussi temporel. De nombreuses modélisations du phénomène existent, on peut citer par exemple la modélisation par filtres à distribution gammatone des auteurs G.Charestan, R.Heusdens et S.van de Par dans le document intitulé "a Gammatone-based psychoacoustical modeling approach for speech and audio coding" dans Proceedings ProRISC/IEEE : Workshop on Circuits, Systems and Signal Processing, Veldhoven, the Netherlands, 2001. Un autre exemple de calcul d'une courbe de masquage est décrit dans le document des auteurs Y.Mahieux & J-P.Petit intitulé "High-qua/ity audio transform coding at 64kbps", dans IEEE Transactions on Communications, vol.42, no.11, november 1994. D'autres méthodes d'obtention d'une courbe de masquage de calcul peuvent être utilisées. De même d'autres critères psycho-acoustique peuvent être pris en compte. A la place de courbe de masquage, il est possible d'utiliser un autre critère psycho-acoustique, par exemple, la réponse fréquentielle d'un filtre de pondération perceptuel W(z). Les filtres de pondération perceptuels sont connus dans l'état d'art, ils sont obtenus après une analyse LPC ("Linear Predictive Coding" en anglais) centré sur la trame courante. Les filtres de pondération perceptuels sont utilisés dans pratiquement tous les codeurs de type CELP. Les exemples de calcul de courbe de masquage cités calculent la courbe de masquage à partir du signal original s(n), qui n'est pas disponible au décodeur. Néanmoins le signal décodé x(n) étant très proche du signal original s(n), une estimation de la courbe de masquage peut donc être faite au décodeur en utilisant ces techniques à partir du signal décodé x(n). C'est le cas illustré sur la figure 2. Comme pour l'estimation du bruit de quantification, le critère psycho-acoustique utilisé peut également être déterminé à partir d'un signal intermédiaire (I) issu du décodeur ou encore à partir du train binaire (T) reçu (I et T non représentés sur la figure 2). Par exemple on peut obtenir un filtre de pondération perceptuel W(z) à partir du filtre LPC A(z) quantifié et codé dans le train binaire reçu. A partir de l'estimation du bruit de quantification B(f) et du critère psycho-acoustique 111(0 obtenu et éventuellement de la distribution spectrale de puissance du signal décodé X(0, une étape E203 est mise en oeuvre pour déterminer les niveaux d'atténuation par bande de fréquence fdu traitement d'atténuation à appliquer au signal décodé x(n). Cette étape de détermination des niveaux d'atténuation à appliquer tient compte par exemple de la comparaison de l'estimation du bruit de quantification à la courbe de masquage ou encore de la comparaison du spectre du bruit de quantification à la réponse fréquentielle d'un filtre de pondération perceptuel. En fonction de cette comparaison, lorsque par exemple le bruit de quantification est supérieur à la courbe de masquage, cela signifie qu'il n'est pas totalement masqué et qu'une atténuation de ce bruit de quantification est alors à effectuer. Les niveaux d'atténuation sont alors modulés par exemple en fonction du nombre de coefficients du bruit de quantification supérieur à cette courbe de masquage. On peut par exemple limiter l'atténuation maximale autorisé en fonction du nombre de coefficients du bruit de quantification supérieur à cette courbe de masquage. A l'inverse, lorsque le bruit de quantification est inférieur à la courbe de masquage (ou le spectre inférieur à la réponse fréquentielle du filtre perceptuel) au moins pour la majorité des coefficients, alors cela signifie que ce bruit de quantification est masqué et qu'un traitement d'atténuation n'est pas nécessaire. Le niveau d'atténuation peut alors être déterminé comme étant nul pour la totalité de la bande de fréquence. Cela correspond alors à une inhibition du traitement d'atténuation. Un autre facteur que le nombre de coefficients du bruit de quantification supérieur à cette courbe de masquage peut être utilisé pour moduler le filtre d'atténuation en fonction du critère psycho-acoustique. Par exemple pour les coefficients où le bruit de quantification est supérieur à la courbe de masquage, on additionne l'écart B(f)-M(f) en dB de ces coefficients, et on compare la somme obtenue à des seuils prédéterminés. Une faible valeur de cette somme signifie que même si dans certaines bandes de fréquence le bruit est supérieur au masque, ces deux signaux sont très proches. Cela signifie donc que le bruit est très faiblement audible et que l'atténuation doit donc être limitée. Ainsi, les niveaux d'atténuation déterminés permettent de calculer les paramètres du filtre d'atténuation effectuant le traitement d'atténuation du bruit de quantification à l'étape E204. Le signal x'(n) résultant est alors un signal post-traité dans lequel le bruit de quantification n'est pas ou peu audible. Pour stabiliser le contrôle, dans un mode de réalisation particulier, on peut modifier les niveaux d'atténuation ou encore un état d'activation ou de désactivation rk du post-filtre (post-traitement activé ou désactivé) en fonction des états précédents, en imposant par exemple que le traitement soit activé si un nombre minimum ta de trames consécutives autorise le post-filtrage et désactivé pour un nombre minimum tna de trames consécutives autorisant l'inverse. Un mode de réalisation particulier va maintenant être décrit dans le cas d'un codec de type MICDA. On rappelle ci-dessous, en référence à la figure 3, les caractéristiques de la technologie MICDA. La technologie MICDA ou ADPCM (pour « Adaptative Differential Pulse Code Modulation » en anglais) est une technique de compression des signaux multimédias. Les exemples de codeurs utilisant la technologie MICDA les plus connus et les plus utilisés sont deux codeurs de parole, normalisés à l'UIT-T (Union Internationale des Télécommunications): le codeur UIT-T G.726 pour des signaux en bande téléphonique (ou bande étroite) échantillonnés à 8 kHz (codeur DECT pour « Digital Enhanced Cordless Telecommunications» en anglais) et le codeur UIT-T G.722 pour des signaux en bande élargie échantillonnés à 16 kHz (codeur voix HD pour la VoIP). Le codage MICDA est un codage prédictif où l'échantillon courant est prédit par un prédicteur adaptatif de type ARMA (pour « Auto Regressive Moving Average » en anglais) à partir des valeurs décodées passées. En utilisant les valeurs décodées aussi à l'encodeur donné par un quantificateur inverse local (Qa-1), le décodeur peut faire la même prédiction que l'encodeur. L'adaptation du prédicteur est également faite à partir des valeurs décodées (du signal décodé et de l'erreur de prédiction décodée), échantillon par échantillon, sans transmission d'information supplémentaire. L'encodeur MICDA (COD) représenté en figure 3, quantifie la différence e(n) (l'erreur de prédiction) entre la prédiction xp (n), issu du prédicteur adaptatif (Pred.A), de l'échantillon courant et la vraie valeur s(n) de l'échantillon courant en utilisant un quantificateur scalaire adaptatif (Qa). L'amplitude codée de l'erreur de prédiction est composée de 2 parties : une partie constante y(I(n)) stockée en mémoire ROM indexée par les valeurs de quantification scalaire et un facteur adaptatif multiplicatif v(n) (dans le domaine linéaire) appelé facteur d'échelle, dont l'adaptation est faite sans transmission d'information supplémentaire, échantillon par échantillon, en fonction de l'indice de quantification transmis. Dans le flux binaire ("bitstream" en anglais) MICDA, on transmet donc uniquement les indices de quantification scalaire obtenus en quantifiant l'erreur de prédiction échantillon par échantillon. Ces indices de quantification scalaire se décomposent en un bit de signe sign(n) et un indice de quantification d'amplitude I(n). Pour décoder le flux binaire, le décodeur (DECOD) effectue une quantification inverse échantillon par échantillon de l'erreur de prédiction utilisant le quantificateur adaptatif inverse (Qa-1). Le décodeur fait également la même prédiction de l'échantillon courant que celle effectuée à l'encodeur, en utilisant le même prédicteur adaptatif ARMA (Pred.A) (en l'absence d'erreurs de transmission) adapté échantillon par échantillon. En cas d'erreurs de transmission, le prédicteur et le quantificateur au décodeur divergent de ceux à l'encodeur. Grâce à l'utilisation de facteurs d'oubli ils re-convergent généralement en quelques millisecondes. La valeur décodée de l'échantillon courant est obtenue en additionnant la prédiction et la valeur déquantifiée de l'erreur de prédiction. Le bruit de quantification d'une telle architecture de codeur MICDA revient finalement à b (0= s (n) - x (n) = e(n)- eQ(n) lorsqu'on ne prend pas en compte des erreurs de transmission. Les prédictions n'apportent pas d'erreur supplémentaire car elles se font en parallèle à partir du signal décodé. Le mode de réalisation décrit ci-après est donné pour un contrôle d'un post-filtre de traitement d'atténuation du bruit de quantification de la bande basse d'un codeur de type normalisé UIT-T G.722. Un tel codeur est par exemple décrit dans le document " Rec. ITU-T G.722, 7 kHz audio-coding within 64 kbit/s, Sep. 2012". Dans ce codeur, le signal de la sous-bande basse est en effet codé par un codeur indépendant MICDA. La figure 4 représente les étapes détaillées du procédé de contrôle dans ce mode de réalisation. Soit le signal décodé x(n), dont on suppose qu'il est la somme du signal d'origine s(n) et du bruit de codage b(n), on considère à l'étape E401 des trames de longueurs 1=40 échantillons qui sont fenêtré par une fenêtre de Hanning asymétrique Hanning64 de 64 échantillons selon l'équation (1) ci dessous. On fait ainsi un recouvrement des trames sur les 24 premiers échantillons. Hanning64 (k) ( (1) "1- 0.5 - 0.5cos k 48,,k = 0:47 ( 7/- 0.5 + 0.5cos (k - 47)- ,,k = 48:63 16 Ce type de fenêtrage est illustré en référence à la figure 5 où on peut voir le signal (x(n)), les fenêtres de Hanning asymétriques (fen.) et les limites de trame (lim.). La flèche indiquée sur la figure représente le recouvrement. Cette fenêtre permet d'assurer une continuité et a l'avantage de ne pas introduire de retard supplémentaire car elle ne nécessite pas la connaissance des échantillons appartenant à la trame suivante. Bien sûr d'autres types de fenêtres peuvent être également utilisées, comme par exemple une fenêtre symétrique Hamming de 72 échantillons centrée sur la trame, en couvrant également 16 échantillons de la trame suivante ("Lookahead" en anglais). L'utilisation d'une telle fenêtre augmentera cependant le retard algorithmique par la durée de 16 échantillons (2 ms avec la fréquence d'échantillonnage de 8000 Hz). A l'étape E401 de la figure 4, est également effectué un calcul de la distribution spectrale de puissance X(f) de cette trame fenêtrée sur 64 points selon l'équation (2) ci- dessous. Seuls les 32 premiers coefficients sont gardés, ceci à cause de la symétrie de cette transformée. 2 X( f )= (FFT (x(n - 24-).Hanning 64 (n))) (2) A l'étape E402, le masque 111(f) est calculé en utilisant l'implémentation du modèle de Schroeder présenté dans le document cité précédemment des auteurs Y.Mahieux & J-P. Petit. Dans l'exemple de réalisation, pour chaque coefficient X(f), on calcule la courbe d'étalement associée M, (f ) dans le domaine des Barks. L'échelle Bark (d'après Barkhausen) est une division de type logarithmique des fréquences audibles (de 20 Hz à 22 kHz) en 24 bandes critiques beaucoup plus révélatrices de la perception auditive que l'échelle linéaire en Hertz. La fonction élémentaire de masquage M, (f )encore appelée courbe d'étalement de la membrane basilaire, est estimée dans le domaine des Barks par une simple forme géométrique représentée en figure 6a. Cette modélisation, au lieu d'être triangulaire comme habituellement est ici trapézoïdale. Dans le domaine des Barks, pour une bande critique autour de la fréquence f, on a un plateau à 0 dB sous X(f). En dessous de la bande critique, on a une décroissance de -27dB/Barks et au-dessus de la bande critique, une décroissance de -10dB/Barks. Pour la fréquence centrale f de la courbe d'étalement, on considère un masquage nul. Dans l'implémentation originale de Mahieux et Petit, la valeur de 0 dB est de -30. On a ainsi les équations (3) suivantes: Vie (1;32),M (v)dB si V=0 (3) 1 1 si -1 2 si Le masque total 111(f) est leur somme. La figure 6b représente en trait pointillé cette courbe de masquage 111(f) en comparaison à la distribution spectrale de puissance X(f) représentée en trait plein. Dans cet exemple de réalisation la courbe de masquage a été déterminée à partir du signal décodé. En fonction du type de codage, le train binaire reçu par le décodeur peut contenir d'autres types de signaux qui permettent de déterminer la courbe de masquage. On peut par exemple déduire la courbe de masquage à partir de l'enveloppe spectrale quantifiée. C'est le cas par exemple dans le codeur TDAC décrit dans Y.Mahieux & J-P.Petit intitulé "High-quality audio transform coding at 64kbps", dans IEEE Transactions on Communications, vol.42, no.11, november 1994 . Une version quantifiée de la courbe de masquage peut aussi être transmise dans le train binaire. Dans tous les cas on peut obtenir une estimation de la courbe de masquage à partir des signaux disponibles au décodeur. A l'étape E403 de la figure 4, une comparaison ck est effectuée entre la courbe de masquage 111(f) et le bruit de quantification estimé B(f). On appelle ak le nombre de coefficients B(f) supérieurs à 111(f) et « le seuil de comparaison. La comparaison de ak et « nous donne l'état ck de la trame. ck = 0 sinon Cet état est par exemple enregistré en mémoire à l'étape E404 pour chaque trame de signal ainsi comparée. Une décision dk sur le niveau maximal d'atténuation à appliquer au post-traitement est alors prise à l'étape E405. Cette décision peut aussi comprendre un état d'activation (ou de désactivation) du post-filtre, appelé rk . Dans l'exemple de réalisation la décision dk peut avoir 3 valeurs différentes. dk = 0, le post-filtrage est désactivé dk = 6, le post-filtrage est limité à une atténuation maximale de 6dB dk =12, le post-filtrage est limité à une atténuation maximale de 12dB. Cette décision dk peut être obtenue en fonction de l'état actuel ck de la trame courante mais peut aussi prendre en compte les p états des trames précédentes Cjek-p,k-11 et la décision précédente dk par un mécanisme d'hystérésis. Ces caractéristiques sont représentatives des niveaux d'atténuation déterminés pour les trames précédentes. Dans ce cas, une première décision est prise sur rk , l'état d'activation du post- filtrage. Cette décision intermédiaire permet de nuancer la variation d'atténuation, le passage d'un filtrage désactivé à une limitation à 12dB pouvant être mal perçue. 1 si ak Le mécanisme d'hystérésis fonctionne comme ceci: on regarde les c et, JE[k-p;k] si Vi e [k - p;k -1],c,. c, alors rk = ck sinon rk = rk _1 0 si rk = 0 On en déduit l'atténuation maximale dk = 6 si rk =1 et rk = 0 12 si rk =1 et rk = 1 Cette hystérésis entraîne un retard de p trames pour changer d'état, mais les trames étant très courtes, on a seulement un retard de 5*p ms. De plus, on garde une continuité, en évitant les problèmes d'activation et de désactivation alternés qui pourraient être intempestifs, ou de changement trop brutaux de niveaux d'atténuation. Une illustration du diagramme de l'hystérésis décrit ci-dessus est représentée en figure 7 pour p=10. On y voit les p états précédents ck pris en compte ainsi que la décision rk_i pour l'étape de décision (dec. rk). La deuxième étape de décision (dec. dk) prend en compte la valeur actuelle de rk et la valeur précédente rk_i pour déterminer la décision dk. Un autre type d'hystérésis pourrait bien sûr être choisi, moins strict. Par exemple, la décision rk pourrait être choisie en fonction de la majorité de ck précédents. Le système présenté a été développé pour un système de réduction du bruit de quantification de la bande basse du codeur G.722. CC, °dB et p sont des paramètres du système de contrôle ainsi décrit. Ils ont été déterminés de manière à résoudre la contrainte suivante : activer le post-filtrage lorsqu'on est certain de son efficacité et à l'inverse le désactiver lorsqu'il y a un risque que le post- traitement dégrade le signal décodé. Par expérimentation, après un premier test d'écoute avec un post-filtre non contrôlé, on a constaté une nette amélioration pour les items de parole propre et à l'inverse quelques dégradations pour les items de contenus mixtes. Par rapport à une base d'apprentissage, on fait une recherche dans l'espace p) du maximum de décision non nulle pour les contenus de parole propre conjoint au minimum de décision non nulle pour les contenus mixtes. Un optimum local stable est trouvé pour x=7, °dB = -18 et p=10. La figure 8 donne le pourcentage de trames avec post-filtrage activé pour les échantillons de parole propre (chiffre du bas) et les échantillons de contenus mixte (chiffre en haut) en fonctions des paramètres c et °dB . Le point local optimal choisi est indiqué en grisé foncé. Pour cette case, le post-traitement est activé seulement pour 4.8% de trames pour le contenu mixte mais activé pour 92.3 % de trames pour la parole propre. Les valeurs dans les points voisins (cases indiquées en grisé clair) sont également acceptables. Cette implémentation apporte ainsi une robustesse au post-traitement. Le filtre (FILT) d'atténuation (ou de réduction) de bruit mettant en oeuvre le post-traitement E204 reprend les principes du filtre utilisé dans l'annexe C du codeur normalisé ITU-T G.711.1. Pour une trame k, à partir du signal décodé x(n)et l'estimation du bruit pour la même trame, on calcule dans le domaine fréquentiel un filtre W(k) (f ) par la technique de la TSNR ("Two Step Noise Reduction") décrit par exemple dans le document intitulé "a Two-step noise reduction technique"des auteurs C.Plapous, C.Marro, L.Mauuary & P.Scalart, dans ICASSP 2004. A partir de la distribution spectrale en puissance (PSD) pour la trame k du signal décodé X(k)(f ) et de l'estimation de bruit 73(k) ( f ), on a un rapport signal à bruit (RSB) a posteriori ' RSB(k) - post X(k)(f) RSBp(o)st(f )= -(k) B (f) Le rapport signal à bruit a priori pour la trame est calculé en deux étapes. Tout d'abord on calcule une première estimation RSBpnol par une décision dirigée entre le RSB a priori final de la trame précédente et le RSB a posteriori: RSBp(k)ol ,8RSBp(kn12) + (1- fl)max(RSBp(kos)t-1,0) RSBprio, permet de calculer un premier filtre de réduction de bruit W, (f ), d'après la forme de Wiener : RSBp(kr)o, (f) Wl(k) f = 1+ RSB(k) ( f ) priol Ce filtre permet d'affiner l'estimation du RSB a priori en considérant cette fois ci, la PSD du signal filtré par Wi . Une deuxième estimation du RSB a priori est alors donné par : RSBp(kri?o, (f )= X(k) f ) (Wl(k) f ))2 73(k) (f ) Le filtre est alors calculé à partir de cette deuxième version du RSB par la forme de Wiener : w(k)(f )= 1+ RSB(pkri)o, ( f ) La décision dk influe sur les coefficients W(0, et ainsi sur l'agressivité de l'atténuation de bruit. Le contrôle est le suivant : - dk = 0, le post-filtre est désactivé, on a alors Vf,Wm(f)=1 RSBp(krz?o 2 f) - dk = 6, le post-filtre est limité à -6d B, Vf,W',(f )= max(w ( f ),0.5) - dk =12, le post-filtre est limité à -12dB, Vf,W',(f )= max (W ( f ),0.25) Par transformée de Fourier inverse et réorganisation des coefficients, un filtre FIR temporel et causal h(n) est calculée : hi(k) (n) = iFFT (W',(k) ( f )) La réorganisation des coefficients est la suivante : hi(k) (n +32) pourn = 0:31 h(k) (n) Cette réponse impulsionnelle est fenêtrée par une fenêtre symétrique de Hanning à 33 coefficients de façon à réduire de moitié la taille nécessaire de FIR. Dans le cas où le post- filtre est désactivé, la réponse temporelle h(n) est remplacée par une impulsion unique et unitaire au 17ème coefficient. Selon une variante de réalisation, le calcul du masque peut s'effectuer sur une version pré-filtrée du signal à la place du signal décodé simple Par exemple, le premier filtrage du signal X(f). W(f) peut être pris comme version pré-filtré. Ce mode de réalisation décrit trois niveaux d'atténuation maximale possible pour le filtrage. Il est bien évidemment possible de prévoir un nombre différent de niveaux d'atténuation et des valeurs différentes pour ces niveaux. Dans l'exemple de réalisation donné, pour déterminer les niveaux d'atténuation par bande de fréquence trois signaux d'entrée ont été utilisés : X(f), B(f) et 111(0 X(f) et B(f) ont été utilisés pour déterminer le filtre d'atténuation initial W(k)(f), puis ce filtre a été limité en tenant en compte également la comparaison de M(0 et de B(f). Dans d'autres modes de réalisation le module de détermination des niveaux d'atténuation peut n'avoir que deux entrées, l'estimation du bruit de quantification B(f) et le critère psycho-acoustique 111(0 Par exemple les niveaux d'atténuation peuvent être déterminés simplement comme suit : l'atténuation est inhibé (0) pour les bandes de fréquences où B(f) 111(0 (le bruit est audible). La figure 9 représente un exemple de réalisation matérielle d'un dispositif de contrôle 900 selon l'invention. Celui-ci peut faire partie intégrante d'un dispositif de 30 traitement de réduction de bruit de quantification (TBQ) ou encore d'un décodeur audiofréquence ou d'un équipement recevant des signaux audio décodés. Ce type de dispositif comporte un processeur PROC coopérant avec un bloc mémoire BM comportant une mémoire de stockage et/ou de travail MEM. Un tel dispositif comporte un module d'entrée E apte à recevoir un signal audio 35 numérique x(n) , une estimation du bruit de quantification B(f) déterminé à partir du signal le (n - 32) pourn = 32:63 décodé, et un module de sortie S apte à transmettre le niveau d'atténuation dk déterminé par le dispositif à un module de filtrage intégré ou non au dispositif. 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 contrôle au sens de l'invention, lorsque ces instructions sont exécutées par le processeur PROC, et notamment les étapes de détermination d'un critère psycho-acoustique à partir du signal décodé et de détermination, par trame de signal, d'un niveau d'atténuation à appliquer au traitement d'atténuation de bruit du signal décodé, en fonction de l'estimation du bruit de quantification et du critère psycho-acoustique déterminé. Typiquement, la description des figures 2 et 4 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 dispositif ou téléchargeable dans l'espace mémoire de celui-ci. La mémoire MEM enregistre les états d'atténuation des trames et leurs niveaux respectifs d'atténuation utilisés dans un mode de réalisation du procédé de contrôle et de manière générale, toutes les données nécessaires à la mise en oeuvre du procédé. Dans un mode possible de réalisation, le dispositif ainsi décrit peut également comporter les fonctions de décodage, les fonctions de traitement en plus des fonctions de contrôle du niveau d'atténuation selon l'invention.20 REVENDICATIONS1. Procédé de contrôle d'un traitement d'atténuation de bruit de quantification d'un signal audio numérique décodé, le bruit de quantification étant généré par un codage en compression comportant une opération de quantification, le procédé comportant une étape d'obtention (E201) d'une estimation du bruit de quantification à partir d'un signal disponible au décodeur et étant caractérisé en qu'il comporte les étapes suivantes: - détermination (E202) d'un critère psycho-acoustique à partir d'un signal disponible au décodeur; - détermination (E203), par trame de signal, des niveaux d'atténuation à appliquer au traitement d'atténuation (E204) de bruit du signal décodé, en fonction de l'estimation du bruit de quantification et du critère psycho-acoustique déterminé. 2. Procédé selon la revendication 1, caractérisé en ce que le critère psycho-acoustique est une courbe de masquage et en ce que le procédé comporte en outre une étape de comparaison entre l'estimation du bruit de quantification et la courbe de masquage pour déterminer, par trame de signal décodé, les niveaux d'atténuation à appliquer au traitement d'atténuation de bruit du signal décodé.3. 4. 5. Procédé selon la revendication 2, caractérisé en ce que l'étape de comparaison détermine un nombre de coefficients du bruit de quantification estimé, supérieurs à la courbe de masquage, la détermination des niveaux d'atténuation par trame de signal étant fonction du nombre de coefficients déterminés. Procédé selon la revendication 3, caractérisé en ce que le traitement d'atténuation de bruit est inhibé par un niveau d'atténuation nul lorsque le nombre de coefficients déterminés est inférieur à un seuil prédéterminé. Procédé selon la revendication 2, caractérisé en ce que l'étape de comparaison détermine un écart de niveau entre le bruit de quantification estimé et la courbe de masquage pour les coefficients du bruit estimé supérieurs à la courbe de masquage, la détermination des niveaux d'atténuation à appliquer au traitement d'atténuation de bruit étant fonction de la valeur de cet écart. 6. Procédé selon la revendication 1, caractérisé en ce que des caractéristiques représentatives des niveaux d'atténuation déterminé pour la trame courante sontmis en mémoire et en ce que les niveaux d'atténuation de la trame courante sont déterminés en outre en fonction des caractéristiques des niveaux d'atténuation mémorisés pour un nombre prédéterminé de trames précédentes. 7. Procédé selon la revendication 1, caractérisé en ce que le bruit de quantification est engendré par un codage de type MICDA. 8. Dispositif de contrôle d'un traitement de d'atténuation de bruit de quantification d'un signal audio numérique décodé, le bruit de quantification étant généré par un codeur en compression comportant un module de quantification, le dispositif recevant une estimation du bruit de quantification à partir d'un signal disponible au décodeur par un module d'estimation (BQ) et étant caractérisé en qu'il comporte: - un module détermination (P-A) d'un critère psycho-acoustique à partir d'un signal disponible au décodeur; - un module de détermination (NA) par trame de signal, d'un niveau d'atténuation à appliquer au traitement d'atténuation de bruit du signal décodé, en fonction de l'estimation du bruit de quantification reçu et du critère psycho-acoustique déterminé. 9. Dispositif de post-traitement d'un signal audio numérique décodé, caractérisé en ce qu'il comporte: - un module d'estimation (BQ) du bruit de quantification à partir d'un signal disponible au décodeur; - un dispositif de contrôle d'un traitement d'atténuation du bruit de quantification selon la revendication 8; et - un module de filtrage (FILT) effectuant le traitement d'atténuation du signal décodé avec les niveaux d'atténuation issus du dispositif de contrôle. 10. Programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de contrôle selon l'une des revendications 1 à 7, lorsque ces instructions sont exécutées par un processeur.35