Brevet FR3023646A1 — publié le 20160115

Mise à jour des états d'un post-traitement à une fréquence d'échantillonnage variable selon la trame La présente invention se rapporte au traitement d'un signal audiofréquence pour sa transmission ou son stockage. Plus particulièrement, l'invention se rapporte à une mise à jour des états d'un post-traitement d'un signal audiofréquence décodé, lorsque la fréquence d'échantillonnage varie d'une trame de signal à l'autre. L'invention s'applique plus particulièrement au cas d'un décodage par prédiction linéaire comme le décodage de type CELP (pour "Coded Excitation Linear Prediction"). Les codecs par prédiction linéaire, tels que les codecs de type ACELP (pour "Algebraic Coded Excitation"), sont réputés adaptés aux signaux de parole, dont ils modélisent bien la production. La fréquence d'échantillonnage à laquelle fonctionne l'algorithme de codage CELP est en général prédéterminée et identique dans chaque trame codée ; des exemples de fréquences d'échantillonnage sont : - 8 kHz dans les codeurs CELP définis dans UIT-T G.729, G.723.1, G.729.1 - 12,8 kHz pour la partie CELP des codeurs 3GPP AMR-WB, UIT-T G.722.2, G.718 - 16 kHz dans les codeurs décrits par exemple dans les articles de G. Roy, P. Kabal, "Wideband CELP speech coding at 16 kbits/sec", ICASSP 1991, et de C. Laflamme et al., 16 kbps "wideband speech coding technique based on algebraic CELP", ICASSP 1991. On notera par ailleurs que dans le cas d'un codec tel que décrit dans la recommandation UIT-T G.718, un module de traitement d'amélioration du signal décodé par réduction du bruit basse-fréquence est présent. Il est nommé « bass post-filter » en anglais (BPF) ou « post-filtrage basse-fréquence ». Il s'applique à la même fréquence d'échantillonnage que le décodage CELP. Le but de ce post-traitement est d'éliminer le bruit basse-fréquence entre les premières harmoniques d'un signal de parole voisée. Ce post-traitement est surtout important pour les voix de femme aigues où la distance entre les harmoniques est plus grande et le bruit moins masqué. Malgré le fait que le nom usuel de ce post-traitement dans le domaine du codage est « post-filtrage basse fréquence », il ne s'agit pas, en fait, d'un simple filtrage mais plutôt d'un post-traitement assez complexe qui contient en général des modules de « poursuite du pitch » ("Pitch Tracking" en anglais), de « renforcement du pitch » ("Pitch Enhancer" en anglais), de « filtrage passe bas » ("Low-pass filtering" ou "LP-filtering" en anglais) et des modules d'additions. Ce type de post-traitement est décrit en détails par exemple dans la recommandation G.718 (06/2008) "Frame error robust narrowband and wideband embedded variable bit-rate coding of speech and audio from 8-32 kbit/s", chapitre 7.14.1. Le schéma bloc de ce post-traitement est illustré à la figure 29 de ce même document. Nous rappelons seulement ici les principes et les éléments nécessaires pour la compréhension de ce présent document. La technique décrite utilise une décomposition en deux bandes de fréquence, bande basse et bande haute. Un filtrage adaptatif est appliqué sur la bande basse, déterminée pour concerner les fréquences inférieures aux premières harmoniques du signal synthétisé. Ce filtrage adaptatif est ainsi paramétré par la période T du signal de parole, dite « pitch ». En effet, les équations des opérations faites par le module de « renforcement du pitch » sont les suivantes : le signal avec du pitch renforcé (n) est obtenu comme f (n) = (1- (n) + as p (n) où s p (n) = - T)+ 0.5(n + T) Et (n) est le signal décodé. Ce traitement requiert une mémoire du signal passé dont la taille doit couvrir les différentes valeurs possibles de pitch T (pour connaitre la valeur .Î(n-T)). La valeur du pitch T n'est pas connu pour la trame suivante, ainsi en général, pour couvrir le pire cas possible, MAXPITCH+1 échantillons du signal décodé passé sont mémorisés pour le post-traitement. MAXPITCH donne la longueur maximale du pitch à la fréquence d'échantillonnage donnée, par exemple en général cette valeur est de 289 à 16 kHz ou 231 à 12.8 kHz. Un échantillon supplémentaire est souvent mémorisé pour ensuite effectuer un filtrage de désaccentuation d'ordre 1. Nous ne détaillerons pas ici ce filtrage de désaccentuation qui ne fait pas l'objet de la présente invention. Lorsque la fréquence d'échantillonnage du signal à l'entrée ou en sortie du codec n'est pas identique à la fréquence interne de codage CELP, un ré-échantillonnage est mis en oeuvre. Par exemple : - Dans les codecs 3GPP AMR-WB, UIT-T G.722.2, le signal d'entrée et de sortie en bande élargie est échantillonné à 16 kHz mais le codage CELP fonctionne à la fréquence de 12.8 kHz. On notera que les codecs UIT-T G.718 et G.718 Annexe C fonctionnent également avec des fréquences d'entrée/sortie de 8 et/ou 32 kHz, avec un coeur CELP à 12.8 kHz. - Dans le codec UIT-T G.729.1, le signal d'entrée est normalement en bande élargie (à 16 kHz) et la bande basse (0-4 kHz) est obtenue par un banc de filtres de type QMF pour obtenir un signal échantillonné à 8 kHz avant codage par un algorithme CELP dérivé des codecs UIT-T G.729 et G.729 Annexe A. On s'intéresse ici à une catégorie de codecs supportant au moins deux fréquences d'échantillonnage internes, la fréquence d'échantillonnage pouvant être sélectionnée de façon adaptative dans le temps et variable d'une trame à l'autre. En général, pour une gamme de « bas » débits, le codeur CELP fonctionnera à une fréquence d'échantillonnage moindre, par exemple fs, =12,8kHz et pour une gamme de débits plus élevés, le codeur fonctionnera à une fréquence supérieure, par exemple fs, =16kHz. Un changement de débit au cours du temps, d'une trame à une autre, pourra dans ce cas occasionner une commutation entre ces deux fréquences ( fs, et fs,) selon la gamme de débits couverts. Cette commutation de fréquences entre deux trames peut occasionner des artéfacts audibles et gênants, pour plusieurs raisons. Une des raisons occasionnant ces artefacts est que la commutation de fréquences internes de décodage empêche le post-filtrage basse-fréquence de fonctionner au moins dans la première trame après la commutation, car la mémoire du post-traitement (c'est-à-dire le signal synthétisé passé) se retrouve à une fréquence d'échantillonnage différente du signal nouvellement synthétisé. Pour remédier à ce problème, une option consiste à désactiver le post-traitement sur la durée de la trame de transition (la trame après le changement de fréquence d'échantillonnage interne). Cette option ne produit pas un résultat désirable en général, car le bruit qui était post-filtré réapparaît brutalement sur la trame de transition. Une autre option est de laisser le post-traitement actif mais en mettant les mémoires à zéro. Avec cette méthode, la qualité obtenue est très médiocre. Une autre possibilité est aussi de considérer une mémoire à 16 kHz comme si elle était à 12.8 kHz en ne gardant que les derniers 4/5 échantillons de cette mémoire ou inversement, de considérer une mémoire à 12.8 kHz comme si elle était à 16 kHz, soit en ajoutant 1/5 de zéros au début (vers le passé) de cette mémoire pour avoir la bonne longueur, soit en mémorisant 20% de plus des échantillons à 12.8 kHz pour en avoir assez en cas de changement de fréquence d'échantillonnage interne. Les tests d'écoute montrent que ces solutions ne donnent pas une qualité satisfaisante. Il existe donc un besoin de trouver une solution de meilleure qualité pour éviter une rupture du post-traitement en cas de changement de fréquence d'échantillonnage d'une trame à l'autre. La présente invention vient améliorer la situation. A cet effet, elle propose un procédé de mise à jour des états d'un post-traitement appliqué à un signal audiofréquence décodé. Le procédé est tel que, pour une trame courante de signal décodé, échantillonnée à une fréquence d'échantillonnage différente de la trame précédente, il comporte les étapes suivantes: - obtention d'un signal décodé passé, mémorisé pour la trame précédente; - ré-échantillonnage par interpolation du signal décodé passé obtenu; - utilisation du signal décodé passé ré-échantillonné comme mémoire du post-traitement de la trame courante. Ainsi, la mémoire du post-traitement est adaptée à la fréquence d'échantillonnage de la trame courante qui est post-traitée. Cette technique permet d'améliorer la qualité du post-traitement dans les trames de transition entre deux fréquences d'échantillonnage tout en minimisant l'augmentation de la complexité (charge de calcul, mémoire ROM, RAM et PROM). 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 ré-échantillonnage défini ci-dessus. Dans un mode particulier de réalisation, dans le cas où la fréquence d'échantillonnage de la trame précédente est supérieure à la fréquence d'échantillonnage de la trame courante, 10 l'interpolation est effectuée en partant de l'échantillon le plus récent du signal décodé passé et en interpolant dans le sens chronologique inverse et dans le cas où la fréquence d'échantillonnage de la trame précédente est inférieure à la fréquence d'échantillonnage de la trame courante, l'interpolation est effectuée en partant de l'échantillon le plus ancien du signal décodé passé et en interpolant dans le sens chronologique. 15 Ce mode d'interpolation permet de n'utiliser qu'un seul tableau de stockage (de longueur correspondant au maximum de période de signal pour la fréquence d'échantillonnage la plus grande) pour enregistrer le signal décodé passé avant et après ré-échantillonnage. En effet, dans les deux sens de ré-échantillonnage, l'interpolation est adaptée au fait qu'à partir du moment où un échantillon du signal passé est utilisé pour une 20 interpolation, il n'est plus utilisé pour l'interpolation suivante. Il peut ainsi être remplacé par celui interpolé dans le tableau de stockage. Ainsi, dans un mode avantageux de réalisation, le signal décodé passé, ré-échantillonné est mémorisé dans une même mémoire tampon que le signal décodé passé avant ré-échantillonnage. 25 On optimise ainsi l'utilisation de la mémoire RAM du dispositif mettant en oeuvre ce procédé. Dans un mode particulier de réalisation l'interpolation est de type linéaire. Ce type d'interpolation est de faible complexité. Pour une implémentation efficace, le signal décodé passé est de longueur fixée en 30 fonction d'un maximum possible de période de signal de parole. Le procédé de mise à jour des états est particulièrement adapté au cas où le post-traitement est appliqué au signal décodé sur une bande de fréquence basse pour diminuer le bruit basse-fréquence. L'invention se rapporte également à un procédé de décodage d'une trame courante 35 d'un signal audiofréquence comportant une étape de sélection d'une fréquence d'échantillonnage de décodage, une étape de post-traitement. Le procédé est tel que, dans le cas où la trame précédente est échantillonnée à une première fréquence d'échantillonnage différente d'une deuxième fréquence d'échantillonnage de la trame courante, il comporte une mise à jour des états du post-traitement selon un procédé tel que décrit. Le traitement basse-fréquence du signal décodé est donc adapté à la fréquence d'échantillonnage interne du décodeur, la qualité de ce post-traitement étant alors améliorée. L'invention se rapporte à un dispositif de traitement d'un signal audiofréquence décodé, caractérisé en ce qu'il comporte, pour une trame courante de signal décodé, échantillonnée à une fréquence d'échantillonnage différente de la trame précédente: - un module d'obtention d'un signal décodé passé, mémorisé pour la trame précédente; - un module de ré-échantillonnage pour ré-échantillonner par interpolation le signal décodé passé obtenu; - un module de post-traitement utilisant le signal décodé passé ré-échantillonné comme mémoire du post-traitement de la trame courante. Ce dispositif présente les mêmes avantages que le procédé décrit précédemment, qu'il met en oeuvre. La présente invention vise également un décodeur de signal audiofréquence comportant un module de sélection d'une fréquence d'échantillonnage de décodage et au moins un dispositif de traitement tel que décrit. L'invention vise un programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de mise à jour des états 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 traitement, éventuellement amovible, mémorisant un programme informatique mettant en oeuvre un procédé de mise à jour des états 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 sous forme d'organigramme un procédé de mise à jour des états d'un post-traitement selon un mode de réalisation de l'invention; la figure 2 illustre un exemple de ré-échantillonnage de 16kHz à 12.8kHz, selon un mode de réalisation de l'invention; la figure 3 illustre un exemple de ré-échantillonnage de, 12.8kHz à 16kHz selon un mode de réalisation de l'invention; la figure 4 illustre un exemple de décodeur comportant des modules de décodage fonctionnant à des fréquences d'échantillonnage différentes, et un dispositif de traitement selon un mode de réalisation de l'invention; et la figure 5 illustre une représentation matérielle d'un dispositif de traitement selon un mode de réalisation de l'invention. La figure 1 illustre sous forme d'organigramme les étapes mises en oeuvre dans le procédé de mise à jour des états d'un post-traitement selon un mode de réalisation de l'invention. On se place ici dans le cas où la trame précédant la trame courante à traiter est à une première fréquence d'échantillonnage fsi alors que la trame courante est à une deuxième fréquence d'échantillonnage fs2. En d'autres termes, dans une application liée au décodage, le procédé selon un mode de réalisation de l'invention, s'applique lorsque la fréquence interne de décodage CELP dans la trame courante (fs2) est différente de la fréquence interne de décodage CELP de la trame précédente (fsi): fsi fs2 Dans le mode de réalisation décrit ici, le codeur ou décodeur CELP a deux fréquences d'échantillonnage internes: 12,8kHz pour les bas débits et 16 kHz pour les hauts débits. Bien évidemment, d'autres fréquences d'échantillonnage internes peuvent être prévues dans le cadre de l'invention. Le procédé de mise à jour des états de post-traitement mis en oeuvre sur un signal audiofréquence décodé comporte une première étape E101 de récupération dans une mémoire tampon encore appelé buffer, d'un signal décodé passé, mémorisé lors du décodage de la trame précédente. Comme mentionné précédemment, ce signal décodé de la trame précédente (Mem. fsi) est à une première fréquence d'échantillonnage interne fsi. La longueur de signal décodé mémorisé est fonction par exemple de la valeur maximale de la période (ou "pitch") de signal de parole. Par exemple, à 16 kHz de fréquence d'échantillonnage la valeur maximale du pitch codé est de 289. La longueur du signal décodé mémorisé est alors len mem 16=290 échantillons. Pour une fréquence interne à 12.8 kHz le signal décodé mémorisé a une longueur de len mem 12=(290/5)*4 = 232 échantillons. Pour optimiser la mémoire RAM on utilise ici le même buffer de mémoire de 290 échantillons pour les deux cas, à 16 kHz tous les indices de 0 à 289 sont nécessaires, à 12.8 kHz seul les indices de 58 à 289 sont utiles. Le dernier échantillon de la mémoire (de l'indice 289) contient donc toujours le dernier échantillon du signal décodé passé, indépendamment de la fréquence d'échantillonnage. A noter qu'aux deux fréquences d'échantillonnage (12.8 kHz ou 16 kHz) la mémoire couvre le même support temporel, 18.125 ms. A noter également qu'à 12.8 kHz il est également possible d'utiliser les indices de 0 à 231 et d'ignorer les échantillons de 232 à 289. Des positions intermédiaires sont également possible mais d'un point de vue programmation ces solutions ne sont pas pratiques. Dans l'implémentation préférée de l'invention la première solution est utilisée (indices de 58 à 289). A l'étape E102, ce signal décodé passé est ré-échantillonné à la fréquence d'échantillonnage interne de la trame courante fs2. Ce ré-échantillonnage s'effectue par exemple par une méthode d'interpolation linéaire de faible complexité. D'autres types d'interpolations pourront être utilisés comme l'interpolation cubique ou des "splines" par exemple. Dans un mode particulier avantageux, l'interpolation utilisée permet de n'utiliser qu'un seul tableau de stockage RAM (une seule mémoire tampon). Le cas d'un changement de la fréquence d'échantillonnage interne de 16 kHz vers 12.8 kHz est illustré à la figure 2. Les longueurs représentées sont ici réduites pour simplifier 10 la description. Sur cette figure la longueur de la mémoire marquée « nnenn » est de len mem 16=20 échantillons à 16 kHz (marqueurs carrés pleins) et de len mem 12=16 échantillons à 12.8 kHz (marqueurs ronds pleins). Le rond vide à 12.8 kHz à droite représente le début du signal décodé de la trame courante. Les flèches en pointillé donnent pour chaque échantillon de sortie à 12.8 kHz les échantillons d'entrée à 16 kHz à partir desquelles ils sont 15 interpolés dans le cas d'une interpolation linéaire. La figure illustre également comment ces signaux sont stockés dans la mémoire tampon. Dans la partie a.), les échantillons mémorisés à 12.8 kHz sont alignés avec la fin du buffer « nnem » (selon l'implémentation préférée). Les chiffres donnent l'indice de l'emplacement dans le tableau de stockage. Les marqueurs ronds vides en pointillés de 20 l'indice 0 à 3 correspondent aux emplacements non utilisés à 12.8 kHz. On peut observer qu'en procédant à l'interpolation en partant de l'échantillon le plus récent (donc celui de l'indice 19 sur la figure) et en interpolant dans le sens chronologique inverse, on peut réécrire le résultat dans le même tableau car l'ancienne valeur de cet emplacement ne sert plus pour l'interpolation suivante. La flèche pleine montre le sens de 25 l'interpolation, les numéros écrits dans la flèche correspondent à l'ordre dans lequel les échantillons de sortie sont interpolés. On voit également que les poids d'interpolation se répètent périodiquement, par pas de 5 échantillons d'entrée soit 4 échantillons de sortie. Ainsi, dans un mode de réalisation particulier, on peut procéder l'interpolation par blocs de 5 échantillons d'entrée et 4 30 échantillons de sortie. Il y a ainsi nb bloc = len mem 16 I 5 = len mem 12 I 4 blocs à traiter. A titre illustratif, un exemple d'instructions de code de style langage C, pour effectuer cette interpolation, est donné en Annexe 1, où pf5 est un pointeur de tableau (adressage) pour le signal d'entrée à 16 kHz, pf4 35 est un pointeur de tableau pour le signal de sortie à 12.8 kHz. Au début les deux pointent au même endroit, à la fin du tableau mem de longueur len mem 16 (les indices utilisés sont de 0 à len mem 16-1). nb bloc contient le nombre de blocs à traiter dans la boucle for. pf4[0] est la valeur de tableau pointée par le pointeur pf4, pf4[-1J est la valeur précédente et ainsi de suite. C'est la même chose pour pf5. A la fin de chaque itération les pointeurs pf5 et pf4 reculent par pas de 5 et 4 échantillons respectivement. Avec cette solution l'augmentation de la complexité (nombre d'opérations, PROM, ROM) est très faible et l'allocation d'un nouveau tableau RAM n'est pas nécessaire. La partie b.) de la figure 2 illustre le cas où les échantillons à 12.8 kHz sont alignés avec le début du buffer « mem » et les emplacements de l'indice 16 à 19 ne sont pas utilisés. Dans ce cas, comme illustre la flèche pleine, il faut procéder l'interpolation en partant de l'échantillon le plus ancien pour pouvoir réécrire le résultat dans le même tableau. De la même façon, la figure 3 illustre le cas de changement de la fréquence d'échantillonnage interne de 12.8 kHz vers 16 kHz, toujours avec des longueurs réduites pour simplifier la description : len mem .1620 échantillons à 16 kHz (marqueurs carrés pleins) et len mem /2=16 échantillons à 12.8 kHz (marqueurs ronds pleins). Le carré vide à 16 kHz représente le début du signal décodé de la trame courante. A noter que le premier échantillon de la trame courante à 16 kHz est identique à celui à 12.8 kHz (même moment temporel), ceci est représenté par un rond vide. Les flèches en pointillé donnent pour chaque échantillon de sortie à 16 kHz les échantillons d'entrée à 12.8 kHz à partir desquelles ils sont interpolés dans le cas d'une interpolation linéaire. Pour l'interpolation du dernier échantillon de sortie on doit également utiliser le premier échantillon de la trame courante à 12.8 kHz, qui est bien connu comme expliqué précédemment. Cette dépendance est illustrée par une flèche discontinue sur la figure 3. La figure montre aussi comment ces signaux sont stockés dans la mémoire tampon, les chiffres donnent l'indice de l'emplacement dans le tableau. Dans la partie a.) les échantillons mémorisés à 12.8 kHz sont alignés avec la fin du buffer « mem » (selon l'implémentation préférée). Les marqueurs ronds vides en pointillés de l'indice 0 à 3 correspondent aux emplacements non disponible (car non utilisé) à 12.8 kHz On peut observer que cette fois, l'interpolation est effectuée en partant de l'échantillon le plus ancien (donc celui d'indice 0 en sortie) pour pouvoir réécrire le résultat de l'interpolation dans le même tableau de mémoire car l'ancienne valeur à ces emplacements ne sert pas pour effectuer les interpolations suivantes. La flèche pleine montre le sens de l'interpolation, les numéros écrits dans la flèche correspondent à l'ordre dans lequel les échantillons de sortie sont interpolés. On voit également que le poids d'interpolation se répète périodiquement par pas de 4 échantillons d'entrée soit 5 échantillons de sortie. Ainsi il est avantageux de procéder l'interpolation par blocs de 4 échantillons d'entrée et 5 échantillons de sortie. Il y a donc toujours nb bloc= len mem 161 5 = len mem 121 4 blocs à traiter, sauf que cette fois, le dernier bloc est particulier car il utilise également la première valeur de la trame courante. Il est également intéressant à observer que l'indice du première échantillon à 12.8 kHz dans la mémoire « mem » (4 sur la figure 3) est égal au nombre de blocs à traiter, nb bloc , car entre les 2 fréquences il y a un échantillon de décalage par bloc. A titre illustratif, un exemple d'instructions de code de style langage C est donné en Annexe 2 pour effectuer cette interpolation: Le dernier bloc est traité séparément car il dépend également du premier échantillon de la trame courante noté syn[0] En analogie avec le cas précédent, pf4 est un pointeur de tableau pour le signal d'entrée à 12.8 kHz qui pointe sur le début de la mémoire du filtre, cette mémoire est stockée à partir du nb blocè" échantillon du tableau mem. pf5 est un pointeur de tableau pour le signal de sortie à 16 kHz, il pointe sur le premier élément du tableau mem. nb bloc contient le nombre de blocs à traiter. nb bloc-1 blocs sont traités dans la boucle for, puis le dernier bloc est traité séparément. pf4[0] est la valeur de tableau pointée par le pointeur pf4, pf4[1] est la valeur suivante et ainsi de suite. C'est la même chose pour pf5. A la fin de chaque itération les pointeurs pf5 et pf4 avancent par pas de 5 et 4 échantillons respectivement. Le signal décodé de la trame courante est stocké dans le tableau syn, syn[0] est le premier échantillon de la trame courante Avec cette solution l'augmentation de la complexité (nombre d'opérations, PROM, ROM) est très faible et l'allocation d'un nouveau tableau RAM n'est pas nécessaire. La partie b.) de la figure 3 illustre le cas où les échantillons à 12.8 kHz sont alignés avec le début du buffer « mem » et les emplacements de l'indice 16 à 19 ne sont pas utilisés. Dans ce cas, comme illustre la flèche pleine, il faut procéder l'interpolation en partant de l'échantillon le plus récent pour pouvoir réécrire le résultat dans le même tableau. On revient à présent à la figure 1. Après l'étape E102 de ré-échantillonnage de la mémoire Mem. fsi. à la fréquence fs2, on obtient la mémoire ou signal décodé passé, ré- échantillonné (Mem. fs2). Ce signal décodé passé ré-échantillonné est utilisé à l'étape E103 comme nouvelle mémoire du post-traitement de la trame courante. Dans un mode de réalisation particulier, le post-traitement est similaire à celui décrit dans la recommandation UIT-T G.718. La mémoire du signal décodé passé ré-échantillonné est ici utilisée pour connaitre les valeurs (n -T) pour n = 0...T-1 telle que décrite précédemment en rappel de la technique "bass-post-filter" de G.718. La figure 4 décrit à présent un exemple de décodeur comportant un dispositif de traitement 410 dans un mode de réalisation de l'invention. Le signal de sortie y(n) (mono), est échantillonné à la fréquence fs' qui peut prendre les valeurs de 8, 16, 32 ou 48 kHz. Pour chaque trame reçue, le train binaire est dé-multiplexé en 401 et décodé. Le décodeur détermine en 402, ici en fonction du débit de la trame courante, à quelle fréquence fs, ou fs2 décoder les informations issues d'un codeur CELP. En fonction de la fréquence d'échantillonnage, soit le module de décodage 403 pour la fréquence fs, soit le module de décodage 404 pour la fréquence fs2 est mis en oeuvre pour décoder le signal reçu. Le décodeur CELP fonctionnant à la fréquence fs, = 12,8 kHz (bloc 403) est une extension multi-débits de l'algorithme de décodage UIT-T G.718 initialement défini entre 8 et 32 kbit/s. En particulier il comprend le décodage de l'excitation CELP et un filtrage de synthèse de prédiction linéaire 1/Â1(z). Le décodeur CELP fonctionnant à la fréquence fs2 = 16 kHz (bloc 404) est une extension multi-débits à 16 kHz de l'algorithme de décodage UIT-T G.718 initialement défini à entre 8 et 32 kbit/s et à 12,8 kHz. La mise en oeuvre du décodage CELP à 16 kHz n'est pas détaillée ici car elle dépasse le cadre de l'invention. On ne s'intéresse pas ici au problème de la mise à jour des états du décodeur CELP lors d'une commutation de la fréquence fs, à la fréquence fs2. La sortie du décodeur CELP dans la trame courante est ensuite post-filtrée par le dispositif de traitement 410 mettant en oeuvre le procédé de mise à jour des états de post- traitement décrit en référence à la figure 1. Ce dispositif comporte des modules de post-traitement 420 et 421 adaptés aux fréquences d'échantillonnage respectivesfsi etfs2 aptes à effectuer un post-traitement de type diminution du bruit basse fréquence encore appelé post-filtrage basse fréquence, de façon similaire au « bass post-filter » (BPF) du codec UTT-T G.718, en utilisant les mémoires de post-traitement ré-échantillonnées par le module de ré- échantillonnage 422. En effet, le dispositif de traitement comporte également un module de ré-échantillonnage 422 effectuant le ré-échantillonnage d'un signal décodé passé, mémorisé pour la trame précédente, par interpolation. Ainsi, le signal décodé passé de la trame précédente (Mem. fs/), échantillonné à la fréquence fsj est ré-échantillonné à la fréquence fs2 pour obtenir un signal décodé passé ré-échantillonné (Mem. fs2) utilisé comme mémoire du post-traitement de la trame courante. Inversement, le signal décodé passé de la trame précédente (Mem. Fs2), échantillonné à la fréquence fs2 est ré-échantillonné à la fréquence fsi pour obtenir un signal décodé passé ré-échantillonné (Mem. fsi) utilisé comme mémoire du post-traitement de la trame courante. Le signal post-traité par le dispositif de traitement 410 est ensuite ré-échantillonné à la fréquence de sortie fe, par les modules de ré-échantillonnage 411 et 412, avec par exemple feu =32 kHz. Ceci revient à effectuer soit un ré-échantillonnage de fs, à fe" , en 411, soit un ré-échantillonnage de fs, à fs°' en 412. Dans des variantes, d'autres opérations de post-traitement (filtrage passe-haut, etc.) pourront être utilisées en complément ou en remplacement des blocs 420 et 421. Selon la fréquence de sortie fs°e, un signal bande haute (ré-échantillonné à la fréquence fs01e) décodé par le module de décodage 405 peut être ajouté en 406 au signal bande basse ré-échantillonné. Le décodeur prévoit également l'utilisation de modes supplémentaires de décodage, tel qu'un décodage par transformée fréquentielle inverse (bloc 430) dans le cas où le signal d'entrée à coder a été codé par un codeur par transformée. En effet le codeur analyse le type de signal à coder et choisi la technique de codage la mieux adaptée à ce signal. Le codage par transformée est surtout utilisé pour les signaux musicaux qui sont en généralement mal codés par un codeur prédictif de type CELP. La figure 5 représente un exemple de réalisation matérielle d'un dispositif de traitement 500 selon un mode de réalisation de l'invention. Celui-ci peut faire partie intégrante d'un décodeur de signal audiofréquence ou d'un équipement recevant des signaux audiofréquences. Il peut être intégré à un terminal de communication, un décodeur de salon de type set-top box ou encore d'une passerelle domestique. Ce type de dispositif comporte un processeur PROC 506 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 501 apte à recevoir des trames de signal audio et notamment une partie mémorisée (Bufprec) d'une trame précédente à une première fréquence d'échantillonnage fs, . Il comporte un module de sortie 502 apte à transmettre une trame courante de signal audio fréquence post-traité s'(n). Le processeur PROC contrôle le module d'obtention 503 d'un signal décodé passé, mémorisé pour la trame précédente. Typiquement, l'obtention de ce signal décodé passé s'effectue par simple lecture dans une mémoire de type mémoire tampon, compris dans le bloc mémoire BM. Le processeur contrôle également un module de ré-échantillonnage 504 pour ré-échantillonner par interpolation le signal décodé passé obtenu en 503. Il contrôle aussi un module de post-traitement 505 utilisant le signal décodé passé ré- échantillonné comme mémoire de post-traitement pour effectuer un post-traitement de la trame courante. 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 mise à jour des états de post-traitement au sens de l'invention, lorsque ces instructions sont exécutées par le processeur PROC, et notamment les étapes d'obtention d'un signal décodé passé, mémorisé pour la trame précédente, de ré-échantillonnage par interpolation du signal décodé passé obtenu et d'utilisation du signal décodé passé ré-échantillonné comme mémoire du post-traitement de la trame courante. Typiquement, la description de la figure 1 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 de manière générale, toutes les données nécessaires à la mise en oeuvre du procédé. I ANNEXE 1: pf4 = &mem[len_mem_16-1]; pf5 = pf4; nb_bloc = len_mem_16 / 5; for (c=0; c REVENDICATIONS1. Procédé de mise à jour des états d'un post-traitement appliqué à un signal audiofréquence décodé, caractérisé en ce que, pour une trame courante de signal décodé, échantillonnée à une fréquence d'échantillonnage différente de la trame précédente, le procédé comporte les étapes suivantes: - obtention (E101) d'un signal décodé passé, mémorisé pour la trame précédente; - ré-échantillonnage (E102) par interpolation du signal décodé passé obtenu; - utilisation du signal décodé passé ré-échantillonné comme mémoire (E103) du post-traitement de la trame courante. 2. Procédé selon la revendication 1, caractérisé en ce que, dans le cas où la fréquence d'échantillonnage de la trame précédente est supérieure à la fréquence d'échantillonnage de la trame courante, l'interpolation est effectuée en partant de l'échantillon le plus récent du signal décodé passé et en interpolant dans le sens chronologique inverse et dans le cas où la fréquence d'échantillonnage de la trame précédente est inférieure à la fréquence d'échantillonnage de la trame courante, l'interpolation est effectuée en partant de l'échantillon le plus ancien du signal décodé passé et en interpolant dans le sens chronologique 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que le signal décodé passé, ré-échantillonné est mémorisé dans une même mémoire tampon que le signal décodé passé avant ré-échantillonnage. 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que l'interpolation est de type linéaire. 5. Procédé selon la revendication 1, caractérisé en ce que le signal décodé passé est de longueur fixée en fonction d'un maximum possible de période de signal de parole. 6. Procédé selon l'une des revendications précédentes, caractérisé en ce que le post-traitement est appliqué au signal décodé sur une bande de fréquence basse pour diminuer le bruit basse-fréquence. 7. Procédé de décodage d'une trame courante d'un signal audiofréquence comportant une étape de sélection d'une fréquence d'échantillonnage de décodage, une étape de post-traitement, caractérisé en ce que, dans le cas où la trame précédente est échantillonnée à une première fréquence d'échantillonnage différente d'une deuxième fréquenced'échantillonnage de la trame courante, le procédé comporte une mise à jour des états du post-traitement selon un procédé conforme à l'une des revendications 1 à 6. 8. Dispositif de traitement d'un signal audiofréquence décodé, caractérisé en ce qu'il comporte, pour une trame courante de signal décodé, échantillonnée à une fréquence d'échantillonnage différente de la trame précédente: - un module d'obtention (422, 503) d'un signal décodé passé, mémorisé pour la trame précédente; - un module de ré-échantillonnage (422, 504) pour ré-échantillonner par interpolation le signal décodé passé obtenu; - un module de post-traitement (420, 421, 505) utilisant le signal décodé passé ré-échantillonné comme mémoire du post-traitement de la trame courante. 9. Décodeur de signal audiofréquence caractérisé en ce qu'il comporte un module de sélection d'une fréquence d'échantillonnage de décodage et un dispositif de traitement conforme à la revendication 8. 10. Programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de mise à jour des états selon l'une des revendications 1 à 6, lorsque ces instructions sont exécutées par un processeur. 11. Support de stockage lisible par un processeur, sur lequel est stocké un programme informatique comprenant des instructions de code pour l'exécution des étapes du procédé de mise à jour des états selon l'une des revendications 1 à 6. 30