[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 g
i 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 :

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