(19)
(11) EP 1 989 705 B1

(12) FASCICULE DE BREVET EUROPEEN

(45) Mention de la délivrance du brevet:
15.08.2012  Bulletin  2012/33

(21) Numéro de dépôt: 07731604.0

(22) Date de dépôt:  13.02.2007
(51) Int. Cl.: 
G10L 19/00(2006.01)
G10L 19/08(2006.01)
(86) Numéro de dépôt:
PCT/FR2007/050779
(87) Numéro de publication internationale:
WO 2007/099244 (07.09.2007 Gazette  2007/36)

(54)

PROCEDE DE LIMITATION DE GAIN D'EXCITATION ADAPTATIVE DANS UN DECODEUR AUDIO

VERFAHREN ZUR BEGRENZUNG DER ADAPTIVEN ERREGUNGSVERSTÄRKUNG BEI EINEM AUIDODECODER

METHOD FOR LIMITING ADAPTIVE EXCITATION GAIN IN AN AUDIO DECODER


(84) Etats contractants désignés:
AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

(30) Priorité: 28.02.2006 FR 0650688

(43) Date de publication de la demande:
12.11.2008  Bulletin  2008/46

(73) Titulaire: FRANCE TELECOM
75015 Paris (FR)

(72) Inventeurs:
  • KOVESI, Balazs
    F-22300 Lannion (FR)
  • VIRETTE, David
    F-22560 Pleumeur-Bodou (FR)


(56) Documents cités: : 
EP-A- 1 207 519
US-A- 5 960 386
US-A- 5 708 757
US-A- 5 987 406
   
       
    Il est rappelé que: Dans un délai de neuf mois à compter de la date de publication de la mention de la délivrance de brevet européen, toute personne peut faire opposition au brevet européen délivré, auprès de l'Office européen des brevets. L'opposition doit être formée par écrit et motivée. Elle n'est réputée formée qu'après paiement de la taxe d'opposition. (Art. 99(1) Convention sur le brevet européen).


    Description


    [0001] La présente invention concerne un procédé de limitation de gain d'excitation adaptative dans un décodeur d'un signal audio. Elle concerne également un décodeur d'un signal audio codé au moyen d'un codeur comprenant un filtre prédictif à long terme.

    [0002] L'invention trouve une application avantageuse dans le domaine du codage et du décodage de signaux numériques tels que les signaux audiofréquences.

    [0003] L'invention est particulièrement bien adaptée à la transmission de signaux de parole et/ou audio sur réseaux de paquets, de type voix sur IP par exemple, pour fournir une qualité acceptable lors du décodage après une perte de paquets en évitant notamment la saturation des filtres prédictifs à long terme (LTP pour « Long Term Prediction ») utilisés au décodage dans le contexte de codage CELP (« Code Exciting Linear Prediction »).

    [0004] On peut citer comme exemple de codeur CELP le système G.729 recommandé à l'UIT-T, conçu pour des signaux de parole en bande téléphonique entre 300 et 3400 Hz échantillonnés à 8 kHz et transmis à un débit fixe de 8 kbit/s avec des trames de 10 ms. Le fonctionnement détaillé de ce codeur est spécifié dans l'article de R: Salami, C. Laflamme, J. P. Adoul, A. Kataoka, S. Hayashi, T. Moriya, C. Lamblin, D. Massaloux, S. Proust, P. Kroon et Y. Shoham. "Design and description of CS-ACELP : a toll quality 8 kb/s speech coder", IEEE Trans. on Speech and Audio Processing, Vol.6-2, mars 1998, PP.116-130.

    [0005] Sur la figure 1(a) est représentée une vue haut niveau d'un codeur G.729. Cette figure fait apparaître un filtrage passe-haut 101 de pré-traitement destiné à éliminer les signaux de fréquence inférieure à 50 Hz. Le signal de parole S(n) ainsi filtré est ensuite analysé par le bloc 102 afin de déterminer un filtre Â(z) de prédiction linéaire (LPC pour « Linear Prediction Coding »), lequel est transmis au multiplexeur 104 sous la forme d'un indice indexant le vecteur quantifié (QV) dans un dictionnaire.

    [0006] Le signal original S(n) filtré par le filtre Â(z), appelé alors excitation, est traité par le bloc 103 de manière à en extraire les paramètres mentionnés sur le tableau de la figure 2. Ces paramètres sont ensuite codés puis transmis au multiplexeur MUX 104.

    [0007] Le fonctionnement du bloc 103 de codage de l'excitation est détaillé à la figure 1(b). Comme on peut le voir sur cette figure, l'excitation est codée en trois étapes :
    • dans une première étape, un filtrage de prédiction à long terme (LTP) est effectué par les blocs 106, 107, 110 Le filtre LTP du codeur G.729 est un filtre d'ordre égal à 1. La période P d'excitation adaptative, ou période de « pitch », exprimée en valeur entière P0 complétée éventuellement par une valeur fractionnaire P0_fractionnaire, ainsi que le gain gp d'excitation adaptative, ou gain de « pitch », sont déterminés par analyse par synthèse de façon à minimiser l'erreur entre le signal d'excitation cible issu du bloc 105 et le signal synthétisé donné par x(n) = gp.x(n-P), n représentant un échantillon du signal,
    • puis, dans une deuxième étape, la différence résiduelle entre ces deux signaux est modélisée, d'une part, par un code fixe c(n), ou code innovateur, extrait d'un dictionnaire innovateur ACELP 108 à quatre impulsions ± 1, et, d'autre part, par un gain gc d'excitation fixe 109. Le code fixe c(n) et la gain gc sont déterminés en minimisant en 111' l'erreur entre le signal résiduel issu de l'étage de LTP précédent et le signal gc.c(n),
    • enfin, dans une dernière étape, les paramètres résultant, à savoir la période P de pitch, le code fixe c(n) et les gains gp de pitch et gc d'excitation fixe, sont codés et transmis au multiplexeur 104.


    [0008] La figure 1(c) montre comment un décodeur G.729 classique reconstruit le signal de parole à partir des données reçues du multiplexeur 104 par le démultiplexeur 112. L'excitation est reconstituée par sous-trames de 5 ms en ajoutant deux contributions :
    • une première contribution résultant du décodage 115 de la période P de pitch et du décodage 118 du gain gp de pitch pour reconstituer en sortie des blocs 116, 117 le signal LTP d'excitation adaptative x(n) = gp.x(n-P),
    • une deuxième contribution résultant du décodage 113 de l'excitation fixe c(n) mise à l'échelle par le gain ge décodé par le bloc 118 pour reconstituer l'excitation fixe ge.c(n).
    • ces deux contributions sont ensuite additionnées pour fournir l'excitation décodée x(n) = gp.x(n-P) + ge.c(n).


    [0009] L'excitation ainsi décodée est mise en forme par le filtre 120 de synthèse LPC 1/Â(z) dont les coefficients sont décodés par le bloc 119 dans le domaine des paires de raies spectrales (LSF) et interpolés par sous-trame de 5 ms. Afin d'améliorer la qualité et masquer certains artefacts de codage, le signal reconstruit est ensuite traité par un post-filtre adaptatif 121 et un filtre passe-haut 122 de post-traitement. Le décodeur de la figure 1 (c) s'appuie donc sur le modèle source-filtre pour synthétiser le signal.

    [0010] Dans le cas de l'excitation issue du filtre LTP de prédiction à long terme, et dans le but de générer un signal d'excitation capable de suivre rapidement les attaques du signal, les codeurs de type CELP autorisent généralement le choix d'un gain gp de pitch supérieur à 1. En conséquence, le décodeur est localement instable. Cependant, cette instabilité est contrôlée par le modèle d'analyse par synthèse qui minimise en permanence l'écart entre le signal d'excitation LTP et le signal cible original.

    [0011] Lors d'erreurs de transmission ou de perte de trames, cette instabilité peut entraîner d'importantes dégradations dues au décalage entre codeur et décodeur. En effet, dans ces circonstances, la valeur de gain gp de pitch non reçue dans une trame est généralement remplacée par la valeur de gp dans la trame précédente, et, bien que la nature variable du signal de parole constitué d'une alternance de périodes voisées avec un gain de pitch proche de 1 et non voisées avec un gain de pitch inférieur à 1 permet, en général, de limiter les problèmes potentiels liés à cette instabilité locale, il n'en reste pas moins vrai cependant que, pour certains signaux, notamment les signaux voisés, des erreurs de transmission dans des zones stationnaires périodiques peuvent provoquer des dégradations importantes lorsque par exemple le gain gp de remplacement est plus élevé que le gain réel et que la trame affectée est suivie de trames à gain élevé, comme cela se produit lors des attaques. Cette situation peut alors entraîner rapidement une saturation du filtre LTP par effet cumulatif lié au caractère récursif du filtrage prédictif à long terme.

    [0012] Une première solution à ce problème est de limiter le gain gp de pitch à 1, mais cette contrainte a pour effet de dégrader les performances des codeurs CELP pour les attaques.

    [0013] D'autres solutions proposent de ne limiter le gain gp de pitch à une valeur inférieure ou égale à 1 que lorsque cela est jugé nécessaire. En particulier:
    • La méthode décrite dans le brevet américain n° 5,960,386 peut se décomposer en plusieurs étages situés au codeur. Tout d'abord, une procédure de détection d'une possible instabilité utilisant le gain de pitch préalablement calculé et une moyenne des gains de pitch précédents. Ensuite, dans le cas où il n'y a pas de risque d'instabilité, le gain de pitch préalablement calculé est conservé. Dans le cas contraire, une procédure itérative de contrôle du gain de pitch permet d'adapter ce gain pour éliminer le risque d'instabilité.
    • Dans les brevets américains n° 5,893,060 et 5,987,406, une procédure de détection des instabilités au codeur est décrite. Cette procédure utilise les paramètres spectraux LSP pour déterminer la présence de résonances dans le spectre, calcule la durée de la résonance en nombre de trames, et évalue la possible instabilité en fonction de la valeur du gain de pitch. Dans le cas où une instabilité est détectée, la valeur du gain de pitch est saturée à un seuil et la recherche du vecteur de gain dans la quantification vectorielle des gains de pitch est modifiée pour que le vecteur choisi ait une valeur de gain de pitch inférieure à ce seuil.
    • Dans l'article de R. Salami précité et le brevet américain n° 5'708757 est décrite une procédure de détection d'une possible saturation et du calcul de la valeur de gain de pitch associée, présente au codeur dans la norme G729, est décrite. Cette méthode, appelée "taming", prend en compte l'erreur maximum potentielle commise par le décodeur sur le calcul de l'excitation. Si cette erreur dépasse un certain seuil quand le gain de pitch est supérieur à 1, correspondant à un filtre instable, le gain est modifié pour prendre une valeur inférieure à 1 afin de rendre le filtre stable. L'idée est donc de détecter au codeur des zones où l'accumulation des erreurs de transmission précédentes peut causer une saturation du filtre à long terme localement instable, notamment lors de longues zones fortement voisées. Ces zones sont détectées en examinant la sortie d'un deuxième filtrage à long terme avec une excitation constante qui simule l'erreur maximum potentielle. Une technique identique est utilisée dans la norme ITU-T G.723.1. Ce codeur utilise un prédicteur à long terme d'ordre 5 pour lequel le gain de pitch est un vecteur de 5 coefficients appliqués sur 5 échantillons consécutifs du passé. Ces vecteurs de gain sont quantifiés par quantification vectorielle. Alors que la stabilité d'un filtre à long terme d'ordre 1, comme celui du codeur G.729, se vérifie très facilement en comparant le seul coefficient de gain avec la valeur 1, cette vérification est beaucoup plus compliquée pour un filtre à long terme d'ordre supérieur. En effet, la stabilité d'un filtre à long terme utilisant un jeu de gain dépend également de la nature du signal, par exemple du pitch. Donc, le même jeu de gain peut être stable dans une situation et instable dans une autre. C'est pourquoi il est difficile d'estimer la propagation d'une erreur, car la nature d'erreur potentielle ne peut pas être connue au codeur, et il n'est pas simple de détecter les zones potentiellement instables ni de déterminer l'atténuation à appliquer pour rétablir la stabilité du filtre. La solution mise en oeuvre dans la norme G.723.1 est de trouver, par apprentissage, pour chaque vecteur de gain possible du codeur un gain moyen équivalent d'ordre 1. Ces valeurs sont stockées dans un tableau. On utilise donc ce filtre équivalent d'ordre 1 pour estimer l'erreur maximum potentielle accumulée dans le filtre à long terme, et ainsi identifier les zones instables où il faut limiter le gain en cas d'une erreur accumulée importante et calculer le gain à appliquer pour rendre le filtre stable.


    [0014] Toutefois, les solutions proposées par ces techniques connues pour éviter le risque de saturation des filtres LTP en cas de pertes ou d'erreurs de transmission posent les problèmes suivants :
    • La décision de modifier le gain gp associé à la prédiction à long terme étant réalisée au codeur a priori, il n'est pas possible de contrôler complètement l'état du décodeur et son comportement après une perte de trame, lesquels sont par hypothèse ignorés du codeur. Aussi, les techniques existantes peuvent continuer à générer des dégradations audio au décodage lors d'erreurs de transmission, ceci malgré la décision prise par le codeur de modifier le gain.
    • La limitation à 1 du gain gp de pitch associée aux techniques décrites plus haut peut entraîner une légère dégradation de la qualité par exemple sur les attaques qui génèrent normalement des gains supérieurs à 1. Le choix du seuil de déclenchement est en effet un compromis entre qualité et sécurité. Un seuil bas déclencherait la limitation trop souvent, entraînant une dégradation inutile, surtout en cas d'absence d'erreurs de transmission. Inversement, un seuil plus élevé ne garantirait pas une protection suffisante en cas de taux d'erreur élevés.


    [0015] Aussi, le problème technique à résoudre par l'objet de la présente invention est de proposer un procédé de limitation de gain d'excitation adaptative dans un décodeur d'un signal audio codé au moyen d'un codeur comprenant un filtre prédictif à long terme, à la suite d'une perte de trame de transmission entre ledit codeur et ledit décodeur, qui permettrait de ne limiter le gain gp d'excitation adaptative, ou gain de pitch, que dans le cas où une instabilité du filtre LTP est effectivement constatée, et d'assurer le meilleur compromis possible entre la qualité du décodage et sa robustesse vis-à-vis des pertes de trame.

    [0016] La solution au problème technique posé consiste, selon la présente invention, en ce que ledit procédé comprend les étapes correspondantes à la revendication 1.

    [0017] D'une manière générale, on entend ici par « perte de trame » aussi bien la non-réception d'une trame que des erreurs de transmission dans une trame.

    [0018] Selon un mode de réalisation, ladite valeur arbitraire est égale à une valeur du gain d'excitation adaptative déterminée lors de ladite trame perdue par un algorithme de dissimulation d'erreur.

    [0019] A titre d'exemple d'algorithme de dissimulation d'erreur, ladite valeur arbitraire est égale à la valeur du gain d'excitation adaptative pour la trame non perdue précédant ladite trame perdue.

    [0020] Selon un autre exemple, ladite valeur arbitraire est définie à partir d'une détection de voisement de la trame précédente. Pour une trame voisée, ladite valeur arbitraire est égale à 1, sinon la valeur arbitraire est égale à 0. Dans ce dernier cas, l'excitation est composée d'un bruit aléatoire.

    [0021] Comme on le verra en détail plus loin, le procédé conforme à l'invention présente l'avantage de ne modifier le gain gp de pitch que lorsqu'une possible instabilité du filtre LTP est détectée au décodeur lui-même et non au codeur comme dans les techniques connues. De plus, le procédé de l'invention prend en compte à la fois l'état réel du décodeur et l'information exacte sur les erreurs de transmission parvenues.

    [0022] Le procédé, objet de l'invention, peut être utilisée de manière autonome, c'est-à-dire dans des structures de codage qui ne prévoient pas de limitation du gain de pitch au niveau du codeur.

    [0023] Cependant, et de manière avantageuse, l'invention prévoit que ledit gain d'excitation adaptative est fourni audit décodeur par un codeur équipé d'un dispositif de limitation de gain. Le procédé conforme à l'invention peut donc être aussi utilisé en combinaison avec une technique de « taming » a priori connue, installée au codeur. Les avantages des deux techniques sont alors cumulés : la technique a priori permet de limiter les trop longues séquences de gains de pitch supérieurs à 1. En effet, de telles séquences entraînent une importante propagation de l'erreur, contraignant le procédé de l'invention à modifier le signal sur de longues périodes. Cependant un seuil trop bas de déclenchement de la technique de « taming » a priori dégrade le signal. L'invention permet alors de réduire le nombre de déclenchements de la technique de « taming » a priori en augmentant le seuil, car même si cette technique ne détecte pas le risque d'explosion, le procédé a posteriori selon l'invention le détecte et y remédie.

    [0024] Selon l'invention, ladite fonction d'indication d'erreur est de la forme :


    où:
    • N est l'ordre du filtre prédictif à long terme, généralement impair,
    • les gains git sont égaux aux gains d'excitation adaptative gi dudit filtre prédictif à long terme pour les trames reçues ou aux gains d'excitation adaptative gi_FEC (FEC pour « Frame Erasure Concealment») dudit filtre prédictif à long terme dans la trame précédente pour les trames perdues,
    • et(n) vaut 0 pour les trames reçues et 1 pour les trames perdues.
    • P est la période d'excitation adaptative.


    [0025] Bien entendu, dans le cas le plus simple, l'ordre N du filtre LTP peut être pris égal à 1.

    [0026] Dans un premier mode de mise en oeuvre du procédé conforme à l'invention, le gain gp d'excitation adaptative d'un filtre prédictif à long terme d'ordre 1 est limité à la valeur 1 si ledit paramètre d'indication d'erreur est supérieur audit seuil donné.

    [0027] De même, l'invention prévoit qu'un facteur correctif est appliqué aux gains gi d'excitation adaptative d'un filtre prédictif à long terme d'ordre supérieur à 1 si ledit paramètre d'indication d'erreur est supérieur audit seuil donné.

    [0028] Dans un deuxième mode de mise en oeuvre, ledit au moins un gain d'excitation adaptative est limité par une fonction linéaire dudit seuil donné si ledit paramètre d'indication d'erreur est supérieur audit seuil. Cette disposition avantageuse permet de rendre la limitation de gain plus progressive et d'éviter un effet de seuil brutal.

    [0029] L'invention concerne également un programme comprenant des instructions enregistrées sur un support lisible par un ordinateur pour mettre en oeuvre les étapes du procédé selon l'invention, lorsque ledit programme est exécuté sur un ordinateur.

    [0030] L'invention concerne enfin un décodeur d'un signal audio codé au moyen d'un codeur comprenant les caractéristiques de la revendication 11.

    [0031] La description qui va suivre en regard des dessins annexés, donnés à titre d'exemples non limitatifs, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée.

    La figure 1 (a) est un schéma de haut niveau d'un codeur G.729.

    La figure 1 (b) est un schéma détaillé du bloc de codage de l'excitation du codeur de la figure 1 (a).

    La figure 1 (c) est un schéma du décodeur associé au codeur de la figure 1 (a).

    La figure 2 est un tableau donnant les divers paramètres de codage du codeur de la figure 1 (a)

    La figure 3 est un schéma d'un décodeur conforme à l'invention.



    [0032] L'invention va maintenant être décrite de manière détaillée dans le cadre d'un décodeur G.729 et d'un filtrage de prédiction à long terme LTP d'ordre N=1. Le cas d'un filtre LTP d'ordre N quelconque sera traité à la fin de la présente description.

    [0033] On rappelle que le signal d'excitation xc(n) issu du bloc 103 de codage de l'excitation de la figure 1 (a) et explicité à la figure 1 (b) est la somme de l'excitation adaptative gp.xc(n-P) et de l'excitation fixe gp.c(n) :


    où :
    • gp est le gain de l'excitation adaptative ou gain de pitch,
    • P est la valeur du pitch ou longueur de la période. Le codeur G.729 utilise une résolution fractionnelle par pas de 1/3 pour les petites valeurs de pitch (P < 85) pour mieux modéliser les sons voisés aigus. L'excitation adaptative avec un pitch fractionnel est obtenue par interpolation avec sur-échantillonnage,
    • gc est le gain de l'excitation fixe,
    • c(n) est le mot de code fixe, ou innovateur.


    [0034] L'excitation adaptative dépend uniquement de l'excitation passée et permet de modéliser efficacement les signaux périodiques, notamment voisés, où l'excitation elle-même se répète quasi périodiquement. La partie fixe c(n) apporte l'innovation dans l'excitation totale pour modéliser la différence entre les périodes, c'est-à-dire pour corriger l'erreur entre l'excitation adaptative et le résidu de prédiction.

    [0035] Comme on l'a vu plus haut, ce signal d'excitation est optimisé au codeur en utilisant la technique d'analyse par synthèse. On effectue donc le filtrage de synthèse de cette excitation avec le filtre quantifié pour vérifier le résultat qu'on obtiendra au décodeur. Ceci explique pourquoi il est possible d'utiliser un filtrage à long terme localement instable, c'est-à-dire avec une valeur de gp supérieur à 1, pour modéliser une attaque du signal car l'augmentation de l'énergie due à cette instabilité est contrôlée. Par contre, ce contrôle est perturbé par les éventuelles pertes de trame.

    [0036] Au décodeur, dans le cas d'une trame perdue, ou erronée, l'algorithme de dissimulation des erreurs utilise un signal d'excitation estimé à partir du signal d'excitation passé. Typiquement, on réutilise uniquement le filtrage à long terme LTP en gardant la dernière valeur du pitch correctement décodée

    [0037] . On injecte donc une perturbation dans le signal d'excitation du décodeur, noté xd(n). Pour les trames valides suivantes, même si il est possible de décoder correctement tous les paramètres gp, P, gc et c(n) de génération de l'excitation, l'excitation obtenue ne sera pas exacte car l'excitation passée xd(n-P) est perturbée. L'erreur injectée pendant la trame perdue peut donc se propager par la suite sur de nombreuses trames à cause de la récursivité du filtrage à long terme dans les périodes voisées, en particulier quand gp est proche de 1. Par contre, quand gp a une valeur faible ou égale à zéro pendant plusieurs zones non-voisées, l'effet de la perturbation s'affaiblit ou s'annule car le poids du code innovateur c(n) est plus important que le poids du passé.

    [0038] Il est donc essentiel de pouvoir estimer l'importance de l'erreur accumulée dans la partie adaptative, due aux erreurs de transmission. A cet effet, il est proposé de modifier selon la figure 3 le décodeur représenté sur la figure 1 (c).

    [0039] On peut voir sur la figure 3 que, parallèlement au filtrage à long terme LTP, le décodeur comprend une ligne de traitement du signal d'excitation issu du démultiplexeur 112 constituée par les blocs 211 à 215. Cette ligne de traitement du décodeur ainsi décrit sert également d'illustration des principales étapes du procédé de limitation du gain d'excitation adaptative selon l'invention.

    [0040] Le bloc 211 est destiné à détecter si une trame est correctement reçue ou non. Ce bloc de détection est suivi d'un module 212 qui effectue une opération analogue à un filtrage à long terme LTP. Plus précisément, le module 212 calcule une fonction xt(n) d'indication d'erreur dont les valeurs sont représentatives de l'erreur accumulée au décodage sur l'excitation adaptative à la suite d'une perte de transmission. Dans un mode de réalisation, cette fonction est donnée par :


    et(n) est égal à :
    • 1 pour les trames non reçues ou erronées afin de modéliser l'erreur injectée dans la boucle adaptative,
    • 0 pour les trames valides, quand l'erreur se propage uniquement à cause de la récursivité du filtre à long terme.
      gt est égal à :
    • gp_FEC, valeur du gain de pitch de la trame précédente pour les trames non reçues,
    • gp pour les trames valides.


    [0041] Ensuite, un module 213 calcule à partir des valeurs de la fonction xt(n) fournies par le module 212, un paramètre St d'indication d'erreur. Pour une trame valide, un comparateur 214 vérifie si le paramètre St ne dépasse pas un certain seuil S0. En cas de dépassement et si le gain gp de pitch décodé est supérieur à 1, la valeur de gp est limitée, car dans ce cas il y a risque de saturation du filtre LTP.

    [0042] Le paramètre St d'indication d'erreur peut être la somme des valeurs de la fonction xt(n), ou bien la valeur maximale, la moyenne ou la somme des carrés de ces valeurs.

    [0043] Le comparateur 214 est suivi d'un discriminateur 215 apte à déterminer la valeur g't du gain de pitch à appliquer au bloc 117 pour la trame en cours, à savoir la valeur gp de pitch décodée ou une valeur limitée.

    [0044] Dans le cas où le paramètre St dépasse le seuil S0 et si le gain gp de pitch décodé est supérieur à 1, le gain g't peut être limité systématiquement à 1 par exemple, quelle que soit l'ampleur du dépassement. Mais on peut également prévoir une limitation plus progressive qui consiste à définir le gain g't comme une fonction linéaire du paramètre St de la forme :


    S étant un coefficient arbitraire permettant d'ajuster la pente de la variation de g't avec St.

    [0045] Il est également possible de prévoir une limitation du gain par rapport à deux seuils successifs, avec une limitation linéaire entre les deux seuils et une limitation à 1 au-delà du deuxième, comme cela est illustré dans l'exemple suivant.

    [0046] A titre d'exemple pratique, pour une trame valide, les paramètres LTP, P et gp, sont transmis pour chaque sous-trame de 5 ms contenant 40 échantillons. Le traitement pour éviter la saturation du filtre LTP, objet de l'invention, est également réalisé à la cadence des sous-trames. Le paramètre St d'indication d'erreur, par exemple la somme de la fonction xt(n), est calculé pour chaque sous-trame. La valeur de ce paramètre est limitée à 120, ce qui correspond à une valeur moyenne de 3 :



    [0047] Si le gain de pitch de la sous-trame courante est supérieur à 1 et la valeur de St est supérieure à un seuil de 80, correspondant à une valeur moyenne des échantillons xt(n) supérieure à 2, ce qui montre que l'erreur cumulée est importante, on diminue la valeur du gain de pitch selon l'équation suivante:



    [0048] Pour la valeur maximale de St (St = 120) le nouveau gain de pitch sera g't=1, pour les autres valeurs de St 80 <St <120, 1 >g't>gt.

    [0049] Quand la valeur du gain de pitch est modifiée par le procédé décrit ci-dessus, on effectue une mise à jour de la mémoire du signal xt(n) avec la nouvelle valeur g't.

    [0050] Au contraire, si le gain de pitch de la sous-trame actuelle est inférieur à 1 ou la valeur de St est inférieure à 80, correspondant à une erreur cumulée dans le filtre de synthèse à long terme faible, on ne modifie pas la valeur du gain de pitch décodée et g't=gt.

    [0051] Finalement, pour générer l'excitation du filtre de synthèse, à la place du gain de pitch décodé on utilise g't :



    [0052] Dans l'exemple de réalisation présenté ici, le filtre à long terme du codeur est un filtre d'ordre 1. Cependant, si le codeur utilise un filtre à long terme LTP d'ordre N supérieur, comme par exemple pour le codeur G.723.1, le pseudo-filtre LTP utilisé pour définir la fonction d'indication d'erreur peut être le filtre équivalent d'ordre 1 ou plus avantageusement un filtre identique à celui utilisé dans le codeur, en particulier de même ordre. Pour identifier pendant les trames valides les zones instables où il convient de limiter le gain en cas d'une erreur cumulée importante et pour déterminer l'atténuation nécessaire, on utilise toujours le filtre équivalent d'ordre 1.

    [0053] Dans le cas où le paramètre St dépasse le seuil S0 et si le gain équivalent gc est supérieur à 1, le gain g't peut être calculé de la même manière que pour un filtre d'ordre 1. On applique alors le facteur correctif g't/ ge aux gains gi du filtre d'ordre supérieur.


    Revendications

    1. Procédé de limitation du gain d'excitation adaptative dans un décodeur d'un signal audio codé au moyen d'un codeur comprenant un filtre prédictif à long terme, à la suite d'une perte de trame de transmission entre ledit codeur et ledit décodeur, caractérisé en ce que ledit procédé comprend les étapes consistant, au décodeur, à :

    - détecter si une trame est correctement reçue ou non,

    - établir une fonction d'indication d'erreur de la forme :


    où :

    - N est l'ordre du filtre prédictif à long terme,

    - les gains git sont égaux aux gains d'excitation adaptative dudit filtre prédictif à long terme pour les trames reçues ou aux gains d'excitation adaptative dudit filtre prédictif à long terme dans la trame précédente pour les trames perdues,

    - et(n) vaut 0 pour les trames reçues et 1 pour les trames perdues.

    - P est la période d'excitation adaptative décodée pour les trames reçues ou dernièrement correctement décodée pour les trames perdues,

    - calculer au cours du décodage des valeurs de ladite fonction d'indication d'erreur,

    - calculer un paramètre d'indication d'erreur à partir desdites valeurs de la fonction d'indication d'erreur,

    - comparer ledit paramètre d'indication d'erreur à au moins un seuil donné,

    - appliquer une limitation à au moins un gain d'excitation adaptative en cas de comparaison positive si un gain équivalent audit au moins un gain d'excitation adaptative est supérieure à une valeur donnée.


     
    2. Procédé selon la revendication 1, caractérisé en ce que ledit gain équivalent est le gain gp d'excitation adaptative d'un filtre prédictif à long terme d'ordre 1.
     
    3. Procédé selon la revendication 1, caractérisé en ce que ledit gain équivalent est le gain équivalent ge d'un filtre prédictif à long terme d'ordre supérieur à 1.
     
    4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ledit paramètre d'indication d'erreur est un paramètre représentatif de l'énergie de ladite fonction d'indication d'erreur.
     
    5. Procédé selon la revendication 4, caractérisé en ce que ledit paramètre représentatif est donné par la somme des valeurs de la fonction d'indication d'erreur.
     
    6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le gain gp d'excitation adaptative d'un filtre prédictif à long terme d'ordre 1 est limité à la valeur 1 si ledit paramètre d'indication d'erreur est supérieur audit seuil donné.
     
    7. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'un facteur correctif est appliqué aux gains gi d'excitation adaptative d'un filtre prédictif à long terme d'ordre supérieur à 1 si ledit paramètre d'indication d'erreur est supérieur audit seuil donné.
     
    8. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que ledit au moins un gain d'excitation adaptative est limité par une fonction linéaire dudit seuil donné si ledit paramètre d'indication d'erreur est supérieur audit seuil.
     
    9. Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce que ledit gain d'excitation adaptative est fourni audit décodeur par un codeur équipé d'un dispositif de limitation de gain.
     
    10. Programme comprenant des instructions enregistrées sur un support lisible par un ordinateur pour mettre en oeuvre les étapes du procédé selon les revendications 1 à 9, lorsque ledit programme est exécuté sur un ordinateur.
     
    11. Décodeur d'un signal audio codé au moyen d'un codeur comprenant un filtre prédictif à long terme, caractérisé en ce que ledit décodeur comprend :

    - un bloc (211) de détection de pertes de trames de transmission,

    - un module (222) de calcul de valeurs d'une fonction d'indication d'erreur, la fonction d'indication d'erreur étant de la forme :


    où :

    - N est l'ordre du filtre prédictif à long terme,

    - les gains git sont égaux aux gains d'excitation adaptative dudit filtre prédictif à long terme pour les trames reçues ou aux gains d'excitation adaptative dudit filtre prédictif à long terme dans la trame précédente pour les trames perdues,

    - et(n) vaut 0 pour les trames reçues et 1 pour les trames perdues.

    - P est la période d'excitation adaptative décodée pour els trames reçues ou dernièrement correctement décodée pour les trames perdues,

    - un module (213) de calcul d'un paramètre d'indication d'erreur à partir desdites valeurs de la fonction d'indication d'erreur,

    - un comparateur (214) dudit paramètre d'indication d'erreur à au moins un seuil donné,

    - un discriminateur (215) apte à déterminer en fonction du résultat fourni par le comparateur (214) une valeur d'au moins un gain d'excitation adaptative à utiliser par le décodeur.


     


    Claims

    1. Method for limiting the adaptive excitation gain in a decoder of an audio signal coded by a coder comprising a long-term predictive filter, following transmission frame loss between said coder and said decoder, characterized in that said method comprises the steps consisting, in the decoder, in:

    - detecting whether a frame is correctly received or not,

    - establishing an error indication function of the form:


    in which:

    - N is the order of the long-term predictive filter,

    - the gains git are equal to the adaptive excitation gains of said long-term predictive filter for the frames received or to the adaptive excitation gains of said long-term predictive filter in the preceding frame for the frames lost,

    - et(n) has the value 0 for the frames received and 1 for the frames lost.

    - P is the adaptive excitation period decoded for the frames received or most recently correctly decoded for the frames lost,

    - calculating, during the decoding, the values of said error indication function,

    - calculating an error indication parameter on the basis of said values of the error indication function,

    - comparing said error indication parameter to at least one given threshold,

    - applying a limitation to at least one adaptive excitation gain in case of a positive comparison if a gain equivalent to said at least one adaptive excitation gain is greater than a given value.


     
    2. Method according to Claim 1, characterized in that said equivalent gain is the adaptive excitation gain gp of a 1st order long-term predictive filter.
     
    3. Method according to Claim 1, characterized in that said equivalent gain is the equivalent gain ge of a long-term predictive filter of an order greater than 1.
     
    4. Method according to any one of Claims 1 to 3, characterized in that said error indication parameter is a parameter representative of the energy of said error indication function.
     
    5. Method according to Claim 4, characterized in that said representative parameter is given by the sum of the values of the error indication function.
     
    6. Method according to any one of Claims 1 to 5, characterized in that the adaptive excitation gain gp of a first order long-term predictive filter is limited to the value 1 if said error indication parameter is greater than said given threshold.
     
    7. Method according to any one of Claims 1 to 5, characterized in that a corrective factor is applied to the adaptive excitation gains gi of a long-term predictive filter of an order greater than 1 if said error indication parameter is greater than said given threshold.
     
    8. Method according to any one of Claims 1 to 5, characterized in that said at least one adaptive excitation gain is limited by a linear function of said given threshold if said error indication parameter is greater than said threshold.
     
    9. Method according to any one of Claims 1 to 8, characterized in that said adaptive excitation gain is supplied to said decoder by a coder equipped with a gain limiting device.
     
    10. Program comprising instructions stored on a computer-readable medium for implementing the steps of the method according to Claims 1 to 9, when said program is executed on a computer.
     
    11. Decoder of an audio signal coded by a coder comprising a long-term predictive filter, characterized in that said decoder comprises:

    - a block (211) for detecting transmission frame losses,

    - a module (222) for calculating values of an error indication function, the error indication function being of the form:


    in which:

    - N is the order of the long-term predictive filter,

    - the gains git are equal to the adaptive excitation gains of said long-term predictive filter for the frames received or to the adaptive excitation gains of said long-term predictive filter in the preceding frame for the frames lost,

    - et(n) has the value 0 for the frames received and 1 for the frames lost,

    - P is the adaptive excitation period decoded for the frames received or most recently correctly decoded for the frames lost,

    - a module (213) for calculating an error indication parameter on the basis of said values of the error indication function,

    - a comparator (214) for comparing said error indication parameter to at least one given threshold,

    - a discriminator (215) suitable for determining, according to the result supplied by the comparator (214), a value of at least one adaptive excitation gain to be used by the decoder.


     


    Ansprüche

    1. Verfahren zum Begrenzen der adaptiven Erregungsverstärkung in einem Decodierer eines Audiosignals, das mittels eines Codierers codiert ist, der ein langfristiges prädiktives Filter enthält, als Folge eines Übertragungsrahmenverlusts zwischen dem Codierer und dem Decodierer, dadurch gekennzeichnet, dass das Verfahren die folgenden Schritte umfasst, die im Decodierer darin bestehen:

    - zu detektieren, ob ein Rahmen korrekt empfangen worden ist oder nicht,

    - eine Fehlerangabefunktion mit der folgenden Form zu erstellen:


    wobei:

    - N die Ordnung des langfristigen prädiktiven Filters ist,

    - die Verstärkungen git gleich den adaptiven Erregungsverstärkungen des langfristigen prädiktiven Filters für die empfangenen Rahmen oder gleich den adaptiven Erregungsverstärkungen des langfristigen prädiktiven Filters in dem vorhergehenden Rahmen für die verlorenen Rahmen sind,

    - et(n) für die empfangenen Rahmen 0 ist und für die verlorenen Rahmen 1 ist,

    - P die Periode der adaptiven Erregung ist, die für die empfangenen Rahmen decodiert wurde oder für die verlorenen Rahmen zuletzt korrekt decodiert wurde,

    - im Verlauf der Decodierung Werte der Fehlerangabefunktion zu berechnen,

    - einen Fehlerangabeparameter anhand der Werte der Fehlerangabefunktion zu berechnen,

    - den Fehlerangabeparameter mit wenigstens einem gegebenen Schwellenwert zu vergleichen,

    - eine Beschränkung auf wenigstens eine adaptive Erregungsverstärkung im Fall eines positiven Vergleichs anzuwenden, falls eine Verstärkung, die zu der wenigstens einen adaptiven Erregungsverstärkung äquivalent ist, größer als ein gegebener Wert ist.


     
    2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die äquivalente Verstärkung die adaptive Erregungsverstärkung gp eines langfristigen prädiktiven Filters der Ordnung 1 ist.
     
    3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die äquivalente Verstärkung die äquivalente Verstärkung ge eines langfristigen prädiktiven Filters mit einer Ordnung größer als 1 ist.
     
    4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass der Fehlerangabeparameter ein Parameter ist, der die Energie der Fehlerangabefunktion repräsentiert.
     
    5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass der repräsentative Parameter durch die Summe der Werte der Fehlerangabefunktion gegeben ist.
     
    6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die adaptive Erregungsverstärkung gp eines langfristigen prädiktiven Filters der Ordnung 1 auf den Wert 1 begrenzt wird, falls der Fehlerangabeparameter größer als der gegebene Schwellenwert ist.
     
    7. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass auf die adaptiven Erregungsverstärkungen gi eines langfristigen prädiktiven Filters der Ordnung größer als 1 ein Korrekturfaktor angewendet wird, falls der Fehlerangabeparameter größer als der gegebene Schwellenwert ist.
     
    8. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die wenigstens eine adaptive Erregungsverstärkung durch eine lineare Funktion des gegebenen Schwellenwerts begrenzt wird, falls der Fehlerangabeparameter größer als der Schwellenwert ist.
     
    9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die adaptive Erregungsverstärkung an den Decodierer durch einen Codierer geliefert wird, der mit einer Verstärkungsbegrenzungsvorrichtung ausgerüstet ist.
     
    10. Programm, das Befehle enthält, die in einem von einem Rechner lesbaren Träger aufgezeichnet sind, um die Schritte des Verfahrens nach den Ansprüchen 1 bis 9 auszuführen, wenn das Programm auf einem Rechner ausgeführt wird.
     
    11. Decodierer eines Audiosignals, das mittels eines Codierers codiert ist, der ein langfristiges prädiktives Filter enthält, dadurch gekennzeichnet, dass der Decodierer Folgendes umfasst:

    - einen Block (211) für die Detektion von Übertragungsrahmenverlusten,

    - ein Modul (222) zum Berechnen von Werten einer Fehlerangabefunktion, wobei die Fehlerangabefunktion die folgende Form besitzt:


    wobei:

    - N die Ordnung des langfristigen prädiktiven Filters ist,

    - die Verstärkungen git gleich den adaptiven Erregungsverstärkungen des langfristigen prädiktiven Filters für die empfangenen Rahmen oder gleich den adaptiven Erregungsverstärkungen des langfristigen prädiktiven Filters im vorhergehenden Rahmen für die verlorenen Rahmen sind,

    - et(n) für die empfangenen Rahmen 0 ist und für die verlorenen Rahmen 1 ist,

    - P die Periode der adaptiven Erregung ist, die für die empfangenen Rahmen decodiert worden ist oder für die verlorenen Rahmen zuletzt korrekt decodiert worden ist,

    - ein Modul (213) zum Berechnen eines Fehlerangabeparameters anhand der Werte der Fehlerangabefunktion,

    - einen Komparator (214) des Fehlerangabeparameters mit wenigstens einem gegebenen Schwellenwert,

    - einen Diskriminator (215), der dafür ausgelegt ist, als Funktion des von dem Komparator (214) gelieferten Ergebnisses einen Wert wenigstens einer adaptiven Erregungsverstärkung, der von dem Decodierer zu verwenden ist, zu bestimmen.


     




    Dessins




















    Références citées

    RÉFÉRENCES CITÉES DANS LA DESCRIPTION



    Cette liste de références citées par le demandeur vise uniquement à aider le lecteur et ne fait pas partie du document de brevet européen. Même si le plus grand soin a été accordé à sa conception, des erreurs ou des omissions ne peuvent être exclues et l'OEB décline toute responsabilité à cet égard.

    Documents brevets cités dans la description




    Littérature non-brevet citée dans la description