[0001] L'invention concerne un procédé et un dispositif d'atténuation des pré-échos lors
du décodage d'un signal audionumérique.
[0002] Pour le transport des signaux audionumériques sur les réseaux de transmission, qu'il
s'agisse par exemple de réseaux fixes ou mobiles, ou pour le stockage des signaux,
on fait appel à des processus de compression (ou codage source) mettant en oeuvre
des systèmes de codage du type codage temporel ou codage fréquentiel par transformée.
[0003] Le procédé et le dispositif, objets de l'invention, ont ainsi comme domaine d'application
la compression des signaux sonores, en particulier les signaux audionumériques codés
par transformée fréquentielle.
[0004] La figure 1 représente à titre illustratif, un schéma de principe du codage et du
décodage, d'un signal audio numérique par transformée incluant une analyse-synthèse
par addition/recouvrement selon l'art antérieur.
[0005] Certaines séquences musicales, telles que les percussions et certains segments de
parole comme les plosives (/k/, /t/, ...), sont caractérisées par des attaques extrêmement
brusques qui se traduisent par des transitions très rapides et une variation très
forte de la dynamique du signal en l'espace de quelques échantillons. Un exemple de
transition est donné à la figure 1 à partir de l'échantillon 410.
[0006] Pour le traitement de codage/décodage, le signal d'entrée est découpé en blocs d'échantillons
de longueur L (représentés ici par des traits verticaux en pointillés). Le signal
d'entrée est noté
x(
n). La découpe en blocs successifs conduit à définir les blocs
xN = [
x(N.L) ...
x(N.L+L-1) ] = [
xN(0) ...
xN(L-1)], où N est l'indice de la trame, L est la longueur de la trame. A la figure
1 on a L=160 échantillons. Dans le cas de la transformée modulée en cosinus modifiée
MDCT (pour "Modified Discrete Cosine Transform" en anglais), deux blocs x
N(n) et x
N+1(n) sont analysés conjointement pour donner un bloc de coefficients transformés associés
à la trame d'indice N.
[0007] La division en blocs, aussi appelés trames, opérée par le codage par transformée
est totalement indépendante du signal sonore et les transitions apparaissent donc
en un point quelconque de la fenêtre d'analyse. Or après décodage par transformée,
le signal reconstruit est entaché de "bruit" (ou distorsion) engendré par l'opération
quantification (Q)-quantification inverse (Q
-1). Ce bruit de codage est réparti temporellement de façon relativement uniforme sur
tout le support temporel du bloc transformé, c'est-à-dire sur toute la longueur de
la fenêtre de longueur 2L d'échantillons (avec recouvrement de L échantillons). L'énergie
du bruit de codage est en général proportionnelle à l'énergie du bloc et est fonction
du débit de décodage.
[0008] Pour un bloc comportant une attaque (comme le bloc 320-340 de la figure 1) l'énergie
du signal est élevée, le bruit est donc également de niveau élevé.
[0009] En codage par transformée, le niveau du bruit de codage est inférieur à celui du
signal pour les échantillons de forte énergie qui suivent immédiatement la transition,
mais le niveau est supérieur à celui du signal pour les échantillons d'énergie plus
faible, notamment sur la partie précédant la transition (échantillons 160 - 410 de
la figure 1). Pour la partie précitée, le rapport signal à bruit est négatif et la
dégradation résultante, peut apparaître très gênante à l'écoute. On appelle pré-écho
le bruit de codage antérieur à la transition et post-écho le bruit postérieur à la
transition.
[0010] On peut observer sur la figure 1 que le pré-écho affecte la trame précédant la transition
ainsi que la trame où se produit la transition.
[0011] Les expériences psycho-acoustiques ont montré que l'oreille humaine effectue un pré-masquage
temporel des sons assez limité, de l'ordre de quelques millisecondes. Le bruit précédant
l'attaque, ou pré-écho, est audible lorsque la durée du pré-écho est supérieure à
la durée du pré-masquage.
[0012] L'oreille humaine effectue également un post-masquage d'une durée plus longue, de
5 à 60 millisecondes, lors du passage de séquences de forte énergie à des séquences
de faible énergie. Le taux ou niveau de gêne acceptable pour les post-échos est donc
plus important que pour les pré-échos.
[0013] Le phénomène des pré-échos, plus critique, est d'autant plus gênant que la longueur
des blocs en nombre d'échantillons est importante. Or, en codage par transformée,
il est nécessaire d'avoir une résolution fidèle des zones fréquentielles les plus
significatives. A fréquence d'échantillonnage fixée et à débit fixé, si on augmente
le nombre de points de la fenêtre on disposera de plus de bits pour coder les raies
fréquentielles jugées utiles par le modèle psycho acoustique, d'où l'avantage d'utiliser
des blocs de grande longueur. Le codage MPEG AAC (Advanced Audio Coding), par exemple,
utilise une fenêtre de grande longueur qui contient un nombre fixe d'échantillons,
2048, soit sur une durée de 64 ms à une fréquence d'échantillonnage de 32 kHz. Les
codeurs par transformée utilisés pour les applications conversationnelles utilisent
souvent une fenêtre de durée 40 ms à 16 kHz et une durée de renouvellement de trame
de 20 ms.
[0014] Dans le but de réduire l'effet gênant précité du phénomène des pré-échos différentes
solutions ont jusqu'ici été proposées.
[0015] Une première solution consiste à appliquer un filtrage adaptatif. Dans la zone précédant
la transmission due à l'attaque, le signal reconstitué est en fait constitué du signal
original et du bruit de quantification superposé au signal.
[0017] La mise en oeuvre d'un tel filtrage nécessite la connaissance de paramètres dont
certains sont estimés au décodeur à partir des échantillons bruités. Par contre, des
informations telles que l'énergie du signal d'origine ne peuvent être connues qu'au
codeur et doivent par conséquent être transmises. Lorsque le bloc reçu contient une
variation brusque de dynamique, le traitement de filtrage lui est appliqué.
[0018] Le processus de filtrage précité ne permet pas de retrouver le signal d'origine,
mais procure une forte réduction des pré-échos. Il nécessite toutefois de transmettre
les paramètres auxiliaires supplémentaires au décodeur.
[0019] Une technique qui ne nécessite pas la transmission de paramètres auxiliaires est
décrite dans la demande de brevet français
FR 06 01466. La méthode décrite permet de discriminer la présence des pré-échos et d'atténuer
les pré-échos d'un signal audionumérique engendré par codage hiérarchique (générant
un train binaire multicouches) à partir d'un codage par transformée, générant du pré-écho,
et d'un codage temporel, ne générant pas de pré-échos.
[0020] Cette demande de brevet décrit plus précisément la détection au décodeur d'une zone
de basse énergie précédant une transition vers une zone de forte énergie, l'atténuation
des pré-échos dans les zones de basse énergie détectées et l'inhibition de l'atténuation
des pré-échos dans la zone de forte énergie. Le traitement permettant d'atténuer les
pré-échos est basé sur une comparaison entre le signal issu d'un décodage par transformée
(générant des pré-échos) et un signal issu d'un décodage temporel (non générateur
d'échos).
[0021] Cette technique ne nécessite pas de transmission d'information auxiliaire spécifique
venant du codeur mais nécessite la présence d'un signal de référence issu d'un décodage
temporel.
[0022] Tous les décodeurs utilisant un décodage par transformée ne dispose pas nécessairement
d'un signal de référence issu d'un décodage temporel. De plus, dans le cas où un tel
signal de référence est disponible au décodeur, il n'est pas toujours adapté pour
calculer l'atténuation des pré-échos.
[0023] Un codeur scalable stéréo, par exemple l'extension en stéréo de la norme UIT-T G.729.1,
peut fonctionner de la manière décrite ci-après.
[0024] Le codeur calcule la moyenne des deux canaux gauche et droit du signal stéréo, puis
code cette moyenne par le codeur G.729.1, et enfin transmet des paramètres supplémentaires
d'extension stéréo. Le train binaire transmis au décodeur comporte donc une couche
G.729.1 avec des couches supplémentaires d'extension stéréo. Par exemple, une première
couche supplémentaire comporte des paramètres reflétant la différence d'énergie par
sous-bande (dans le domaine transformé) entre les deux canaux du signal stéréo. Une
seconde couche comporte par exemple les coefficients transformés du signal résiduel,
défini comme la différence entre le signal original et le signal décodé à partir du
train binaire G.729.1 et de la première couche.
[0025] Le décodeur G.729.1 en mode étendu, décode d'abord le signal mono et retrouve en
fonction des paramètres transmis, les coefficients transformés des deux canaux gauche
et droit.
[0026] Le décodage du signal mono par un décodeur de type G.729.1 apporte un signal de référence
basé sur la moyenne des deux canaux. Dans le cas où la différence de niveaux entre
les deux canaux est grande, l'enveloppe temporelle du signal mono sera alors faible
par rapport à la sortie de la transformée inverse du canal de plus grand niveau et
fort par rapport à la sortie de la transformée inverse du canal de plus faible niveau.
[0027] L'utilisation d'une référence comme la sortie du décodeur G.729.1 pour atténuer les
pré-échos ne sera donc pas efficace pour le décodage stéréo : Dans le canal de plus
grand niveau on détectera à tort trop de pré-écho et on supprimera donc du signal
utile tandis que dans le canal de plus faible niveau on ne détectera ni ne supprimera
tous les pré-échos.
[0028] Il existe donc un besoin d'une technique d'atténuation précise de pré-échos au décodage,
dans le cas où un signal issu d'un décodage temporel n'est pas disponible ou n'est
pas performant et où aucune information auxiliaire n'est transmise par le codeur.
Cette technique doit, de plus, pouvoir fonctionner pour le codage mono et stéréo.
[0029] A cet effet, la présente invention traite d'un procédé d'atténuation de pré-échos
dans un signal audionumérique engendré à partir d'un codage par transformée, dans
lequel, au décodage, pour une trame courante de ce signal audionumérique, le procédé
comporte:
- une étape de définition d'un signal concaténé, à partir au moins du signal reconstruit
de la trame courante;
- une étape de division dudit signal concaténé en sous-blocs d'échantillons de longueur
déterminée;
- une étape de calcul d'enveloppe temporelle du signal concaténé;
- une étape de détection de transition de l'enveloppe temporelle vers une zone à forte
énergie;
- une étape de détermination des sous-blocs de basse énergie précédant un sous-bloc
dans lequel une transition a été détectée; et
- une étape d'atténuation dans les sous-blocs déterminés,
le procédé étant caractérisé en ce que l'atténuation s'effectue selon un facteur d'atténuation
calculé pour chacun des sous-blocs déterminés, en fonction de l'enveloppe temporelle
du signal concaténé et de l'enveloppe temporelle du signal reconstruit de la trame
précédente.
[0030] Ainsi, le facteur d'atténuation est défini sur des caractéristiques propres au signal
décodé qui ne nécessitent pas de transmission d'information du codeur ni de signal
issu d'un décodage non générateur d'échos.
[0031] Un facteur adapté à chaque sous-bloc de la trame courante et calculé à partir du
signal reconstruit permet d'améliorer la qualité du traitement d'atténuation des pré-échos.
[0032] Le signal concaténé peut être défini à partir du signal reconstruit de la trame courante
et de la deuxième partie de la trame courante tel que défini ultérieurement en référence
à la figure 2. Dans ce cas, la méthode n'introduit pas de retard temporel.
[0033] Dans le cas où on s'autorise un retard temporel, le signal concaténé est défini comme
le signal reconstruit de la trame courante et de la trame suivante.
[0034] Le signal concaténé peut être physiquement stocké à différents endroits par sous-blocs.
[0035] 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é
défini ci-dessus.
[0036] Ainsi, dans un mode particulier de réalisation, une valeur minimale est fixée pour
une valeur d'atténuation du facteur en fonction de l'enveloppe temporelle du signal
reconstruit de la trame précédente.
[0037] Ceci permet d'éviter une trop grande différence d'atténuation d'une trame à une autre
en particulier sur le niveau de bruit de fond et ainsi d'éviter des artéfacts audibles.
[0038] L'enveloppe temporelle du signal reconstruit de la trame précédente peut par exemple
être déterminée par le calcul de l'énergie minimale par sous-bloc ou encore par le
calcul de l'énergie moyenne ou tout autre calcul.
[0039] Dans un mode particulier de réalisation de l'invention, le facteur d'atténuation
est déterminé en fonction de l'enveloppe temporelle dudit sous-bloc, du maximum de
l'enveloppe temporelle du sous-bloc comprenant ladite transition et de l'enveloppe
temporelle du signal reconstruit de la trame précédente.
[0040] Dans un exemple de réalisation, l'enveloppe temporelle est déterminée par un calcul
d'énergie par sous-blocs.
[0041] Avantageusement, le procédé comporte en outre une étape de calcul et de mémorisation
de l'enveloppe temporelle de la trame courante après l'étape d'atténuation dans les
sous-blocs déterminés.
[0042] Ce calcul d'enveloppe temporelle sera donc utilisé pour traiter la trame suivante.
Ce calcul est précis puisque le signal n'est plus perturbé par les pré-échos.
[0043] Avantageusement, un facteur d'atténuation de valeur 1 est attribué aux échantillons
dudit sous-bloc comportant la transition ainsi qu'aux échantillons des sous-blocs
suivants dans la trame courante.
[0044] L'atténuation est donc inhibée dans ces sous-blocs qui ne comportent pas de pré-échos.
[0045] Dans un mode de réalisation particulier, le facteur d'atténuation est déterminé par
sous-bloc déterminé selon les étapes suivantes:
- calcul du rapport de l'énergie maximale déterminée dans le sous-bloc comportant une
transition sur l'énergie du sous-bloc courant;
- comparaison du rapport à un premier seuil;
- dans le cas où le rapport est inférieur ou égal au premier seuil, attribution d'une
valeur inhibant l'atténuation au facteur d'atténuation;
- dans le cas où le rapport est supérieur au premier seuil:
- comparaison du rapport à un deuxième seuil;
- dans le cas où le rapport est inférieur ou égal au deuxième seuil, attribution d'une
valeur d'atténuation faible au facteur d'atténuation;
- dans le cas où le rapport est supérieur au deuxième seuil, attribution d'une valeur
d'atténuation forte au facteur d'atténuation.
[0046] Ce mode de réalisation particulier s'est révélé particulièrement efficace et est
simple à mettre en oeuvre.
[0047] Avantageusement, le procédé prévoit la détermination d'une fonction de lissage entre
les facteurs calculés échantillon par échantillon.
[0048] Ceci permet également d'éviter des artéfacts audibles lors d'une variation trop brusque
des valeurs d'atténuation.
[0049] Dans une variante de mise en oeuvre, une correction de facteur est effectuée pour
le sous-bloc précédant le sous-bloc comportant une transition, en appliquant une valeur
d'atténuation inhibant l'atténuation, au facteur d'atténuation appliqué à un nombre
prédéterminé d'échantillons du sous-bloc précédant le sous-bloc comportant une transition.
[0050] Ceci permet donc de ne pas diminuer l'amplitude de l'attaque par la fonction de lissage
définie pour les valeurs d'atténuation.
[0051] La présente invention vise également un dispositif d'atténuation de pré-échos dans
un signal audionumérique engendré à partir d'un codeur par transformée, dans lequel,
le dispositif associé à un décodeur comprend pour traiter une trame courante de ce
signal audionumérique:
- un module de définition d'un signal concaténé, à partir au moins du signal reconstruit
de la trame courante;
- un module de division dudit signal concaténé en sous-blocs d'échantillons de longueur
déterminée;
- un module de calcul d'enveloppe temporelle du signal concaténé;
- un module de détection de transition de l'enveloppe temporelle vers une zone à forte
énergie;
- un module de détermination des sous-blocs de basse énergie précédant un sous-bloc
dans lequel une transition a été détectée; et
- un module d'atténuation dans les sous-blocs déterminés.
Le dispositif est tel que le module d'atténuation effectue l'atténuation selon un
facteur d'atténuation calculé pour chacun des sous-blocs déterminés, en fonction de
l'enveloppe temporelle du signal concaténé et de l'enveloppe temporelle du signal
reconstruit de la trame précédente.
[0052] L'invention vise un décodeur d'un signal audionumérique comportant un dispositif
tel que décrit précédemment.
[0053] Un tel décodeur peut par exemple être un décodeur de type G.729.1-SWB/stéréo étudié
à la question 23 de l'UIT-T, commission 16.
[0054] L'invention peut être intégrée à un tel décodeur en mode stéréo ou en mode SWB (pour
"super Wide Band" anglais).
[0055] Enfin, l'invention vise un programme informatique comportant des instructions de
code pour la mise en oeuvre des étapes du procédé d'atténuation tel que décrit, lorsque
ces instructions sont exécutées par un processeur.
[0056] 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 décrite précédemment illustre un système de codage-décodage par transformée
selon l'état de l'art;
- la figure 2 illustre la configuration du signal reconstruit par rapport à la trame
courante d'un signal;
- la figure 3 illustre un dispositif d'atténuation de pré-échos dans un décodeur de
signal audionumérique;
- la figure 4a représente le signal concaténé lorsqu'une transition se trouve dans la
deuxième partie de la trame courante;
- la figure 4b représente le signal concaténé lorsqu'une transition se trouve dans le
signal reconstruit de la trame courante;
- la figure 5 illustre un organigramme représentant un mode de réalisation général des
étapes du calcul du facteur d'atténuation selon de l'invention;
- la figure 6 illustre un organigramme détaillé de la mise en oeuvre du procédé d'atténuation
selon un mode de réalisation de l'invention;
- la figure 7 illustre un mode de réalisation particulier du calcul du facteur d'atténuation
selon l'invention;
- la figure 8a illustre un exemple de signal audionumérique pour lequel l'invention
selon un mode de réalisation est mis en oeuvre;
- la figure 8b illustre le même signal audionumérique pour lequel l'invention selon
une variante de réalisation est mise en oeuvre;
- la figure 9 illustre le signal concaténé lorsque l'attaque se situe dans le deuxième
sous-bloc de la deuxième partie de la trame courante;
- la figure 10 illustre le signal concaténé lorsque l'attaque se situe dans le troisième
sous-bloc de la deuxième partie de la trame courante;
- la figure 11 illustre le signal concaténé lorsque l'attaque se situe dans le premier
sous-bloc de la deuxième partie de la trame courante;
- la figure 12 illustre le signal concaténé lorsque l'attaque se situe dans le quatrième
sous-bloc de la deuxième partie de la trame courante;
- les figures 13a et 13b illustrent respectivement un codeur et un décodeur de type
G.729.1SWB/stéréo, le décodeur comportant un dispositif d'atténuation selon l'invention;
- les figures 14a et 14b illustrent respectivement un codeur et un décodeur de type
G.729.1 SWB, le décodeur comportant un dispositif d'atténuation selon l'invention;
- la figure 15 illustre un exemple d'un dispositif d'atténuation selon l'invention.
[0057] La
figure 2 représente une trame du signal décodé ainsi que la configuration du signal reconstruit
par addition recouvrement tel que décrit en référence à la figure 1. Dans la suite,
la notation suivante est utilisée en référence à la figure 2 et à l'équation suivante
:

où N est l'indice de la trame, L est la longueur de la trame, x
rec,N est le signal reconstruit de la trame N, x
tr,
N est le signal de longueur 2L issu de la transformation inverse MDCT de la trame N.
Sans rentrer dans les détails de la MDCT et de la transformation inverse MDCT, on
définit le signal intermédiaire x
tr,N de longueur 2L pour la trame N comme:

où y
r(n) et y
i(n) sont des signaux intermédiaires qui ne sont pas détaillés ici. Alors on peut montrer
que le signal reconstruit x
rec,
N de la trame N est donné par:

La reconstruction s'effectue donc par addition-recouvrement.
[0058] On remarque que le signal intermédiaire comprend une partie antisymétrique et une
partie symétrique. Lors du décodage de la trame N, on reçoit le train binaire qui
permet de trouver x
tr,N ; on peut donc reconstruire x
rec,N(n), n=0...L-1. Par contre on ne dispose que de la « moitié » de l'information sur
la trame future d'indice N+1, c'est-à-dire x
tr,N, n=L...2L-1, sur la trame future d'indice N+1. Il est important de noter que pour
toutes les variantes de réalisation de la MDCT (et de son inverse) on peut toujours
définir un signal intermédiaire x
tr,N de la forme définie ci-dessus. Cependant dans certaines réalisations le signal x
tr,N n'est pas explicite en tant que tel, seuls les signaux intermédiaires y
r(n) et y
i(n), comprenant du « repliement temporel », sont disponibles.
[0059] Ainsi, dans un décodeur par transformée, le signal reconstruit de la trame courante
(xrec,N(n), n = 0 à L-1) est obtenu par addition pondérée de la deuxième partie de la sortie de la transformée
inverse des coefficients MDCT de la trame précédente (
xtr,N-1(n), n = L à 2L-1) et de la première partie de la sortie de la transformée inverse des coefficients
MDCT de la trame courante
(xtr,N(n), n = 0 à L-1). La deuxième partie de la sortie de la transformée inverse des coefficients MDCT
de la trame courante
(xtr,N(n), n = L à 2L-1) sera gardée en mémoire et deviendra
xtr,N-
l(n), n =
L à 2L-1 pour être exploitée pour obtenir le signal reconstruit de la trame suivante. Pour
simplifier, dans la suite, les termes "première partie de la trame courante", "deuxième
partie de la trame courante", "signal reconstruit de la trame courante" seront utilisés.
Dans la trame suivante, la deuxième partie de la trame courante devient donc la deuxième
partie de la trame précédente.
[0060] Pour encore simplifier les figures on introduit également la notation suivante pour
la deuxième partie de la trame courante mis à niveau, c'est-à-dire multiplié par la
valeur maximale de la fenêtre de synthèse de la transformée MDCT:

[0061] En particulier, pour une attaque située dans la trame courante, en première ou deuxième
partie, le procédé d'atténuation des pré-échos selon un mode de réalisation de l'invention
génère un signal concaténé [x
rec,N(0) ...
X,,,,
N(L-1) x
cur2h,N(0) ... x
cur2h,N(L-1)], à partir du signal reconstruit de la trame courante x
rec,N(n) et du signal de la deuxième partie de la trame courante mis à niveau x
cur2h,N(n).
[0062] Ce signal concaténé est divisé en sous-blocs d'échantillons de longueur déterminée,
ici un nombre pair.
[0063] Le procédé détermine les sous-blocs du bloc courant nécessitant une atténuation de
pré-échos.
[0064] Le procédé d'atténuation comporte également une étape de calcul du facteur d'atténuation
à appliquer aux sous-blocs déterminés. Le calcul s'effectue pour chacun des sous-blocs
en fonction de l'enveloppe temporelle du signal concaténé.
[0065] Ce calcul peut aussi s'effectuer en fonction en outre de l'enveloppe temporelle du
signal reconstruit de la trame précédente.
[0066] Ainsi en référence à la
figure 3, un dispositif d'atténuation 100 comporte un module 101 de définition d'un signal
concaténé, un module 102 de division du signal concaténé en sous-blocs, un module
103 de calcul d'enveloppe temporelle du signal concaténé, un module 104 de détection
de transition de l'enveloppe temporelle vers une zone à forte énergie et de détermination
des sous-blocs de basse énergie précédant un sous-bloc dans lequel une transition
a été détectée et un module 105 d'atténuation dans les sous-blocs déterminés. Le module
d'atténuation est apte à appliquer un facteur d'atténuation aux sous-blocs déterminés
par le module 104, le facteur d'atténuation étant déterminé par le module d'atténuation
en fonction de l'enveloppe temporelle du signal concaténé.
[0067] En référence à la figure 3, le dispositif d'atténuation est compris dans un décodeur
comportant un module 110 de quantification inverse (Q
-1), un module 120 de transformée inverse (MDCT
-1), un module 130 de reconstruction du signal par addition/recouvrement (add/rec) comme
décrit en référence à la figure 1 et délivrant un signal reconstruit au dispositif
d'atténuation selon l'invention.
[0068] Les figures 4a et 4b illustrent des exemples de signaux comportant des transitions
ou attaques dans le signal. Le phénomène de pré-écho existe lorsque l'énergie d'une
partie du signal dans une fenêtre MDCT est nettement supérieure (attaque) à celle
des autres parties. Le pré-écho est alors observé dans les parties à basse énergie
avant l'attaque. C'est donc dans cette partie qu'il faut atténuer les pré-échos.
[0069] Deux cas sont possibles: l'attaque ou la transition du signal se trouve dans la trame
courante (L premiers échantillons) ou dans la trame suivante (L échantillons suivants)
correspondant à la deuxième partie de la trame courante comme représenté en figure
2.
[0070] La
figure 4a représente un signal concaténé avec une attaque du signal dans la deuxième partie
de la trame courante. On peut voir sur cette figure la découpe en K
2 sous-blocs k de longueur N
2 échantillons avec N
2=L/K
2, K
2=4. Les L premiers échantillons représentent le signal reconstruit de la trame courante
x
rec,N(n), n=0, ..., L-1. Les L échantillons suivants (L à 2L-1) représentent la deuxième
partie de la trame courante x
cut2h,N(n), n=0, ..., L-1. Dans la trame suivante, cette deuxième partie devient la première
partie de la trame précédente.
[0071] A noter que la deuxième partie de la trame courante est symétrique par propriété
de la transformée inverse MDCT. En effet selon l'invention les pré-échos sont atténués
sans introduire de retard supplémentaire dans le décodage par transformée. Lors du
décodage de la trame courante, le décodeur synthétise les échantillons x
tr,N (n), n=0, ..., 2L-1, mais ne peut utiliser que les échantillons x
tr,N (n), n=0, ..., L-1 pour reconstruire x
rec,N (n), n=0, ..., L-1.
[0072] On voit que l'attaque ou transition se trouve dans la trame suivante (mais sans pouvoir
donner encore sa position), il faut donc atténuer le pré-écho pour les L premiers
échantillons de la trame courante du signal reconstruit.
[0073] La
figure 4b représente le même signal une trame plus tard, cette fois l'attaque se trouve dans
la trame courante du signal reconstruit, dans le troisième sous-bloc (k=2). Il faut
donc atténuer le pré-écho dans les deux premiers sous-blocs.
[0074] Le procédé d'atténuation des pré-échos selon l'invention délivre des facteurs d'atténuation
du pré-écho pour chaque échantillon de la trame. Ce procédé va maintenant être décrit
en référence aux figures 5 et 6.
[0075] L'organigramme représenté en
figure 5 illustre les différentes étapes de calcul du facteur d'atténuation selon l'invention
pour une trame courante.
[0076] A l'étape 201, l'enveloppe temporelle du signal reconstruit de la trame courante
est calculée et à l'étape 202, l'enveloppe temporelle de la deuxième partie de la
trame courante mise à niveau est calculée.
[0077] L'enveloppe temporelle est par exemple obtenue par le calcul de l'énergie par sous-blocs
comme décrit en référence à la figure 6. Elle peut être obtenue par d'autres méthodes,
en calculant par exemple la moyenne des valeurs absolues du signal par sous-blocs,
ou encore la valeur maximale ou la valeur médiane de chaque sous-bloc. L'enveloppe
peut également être obtenue par exemple comme un opérateur de type Teager-Kaiser suivi
par un filtrage passe-bas. Dans tous les cas on suppose ici, sans perte de généralité,
que l'enveloppe temporelle est définie avec une résolution temporelle d'une valeur
par sous-bloc, la taille des sous-blocs étant flexible.
[0078] A l'étape 203, une fonction de facteur d'atténuation est définie à partir des enveloppes
de la trame courante définie aux étapes 201 et 202 et à partir de l'enveloppe du signal
reconstruit de la trame précédente (T
env(x
rec,N-1(n)).
[0079] L'étape 204 optionnelle, définie une fonction de lissage sur les valeurs obtenues
du facteur d'atténuation afin d'éviter les discontinuités qui pourrait se révéler
dans le signal traité.
[0080] En référence à la
figure 6, le procédé d'atténuation dans un mode de réalisation détaillé de l'invention va
maintenant être décrit.
[0081] Ainsi, à l'étape 301, comme illustré en figure 4a ou 4b, le signal est découpé en
sous-blocs de longueur N
2 = L/ K
2. On obtient ainsi 2
K2 sous-blocs.
[0082] A l'étape 302, l'énergie
En(k) des
K2 sous-blocs du signal reconstruit
xrec,N (n) est calculée.
[0083] A l'étape 303, l'énergie de chaque sous-bloc de la deuxième partie de la trame courante
mise à niveau x
cur2h,N(n), est calculée. Seules
K2/2 valeurs sont différentes du fait de la symétrie de cette partie du signal comme
représenté en figure 4a.
[0084] Le maximum des énergies des sous-blocs de signal
xrec,N(
n) et
xcur2h(
n) est calculé à l'étape 304 sur les
K2 +
K2 / 2 = 3
K2 /2 blocs et son indice est mémorisé dans
ind1.
[0085] La valeur de l'énergie maximale
maxen ainsi calculée est également mémorisée.
[0086] A l'étape 305 un compteur de boucle est initialisé. Dans la boucle des étapes 306
à 309, on détermine en 307, pour chaque sous-bloc précédent le sous-bloc d'indice
ind1 un facteur d'atténuation g(k) en fonction de son énergie En(k), de l'énergie
maximale max
en et de l'énergie moyenne du signal reconstruit de la trame précédente x
rec,N-1 et on attribue ce facteur en 308 à tous les échantillons du sous-bloc.
[0087] A l'étape 310 on calcule l'indice du premier échantillon du sous-bloc à l'énergie
maximale. A l'étape 311 on vérifie s'il est inférieur à la longueur de la trame. Si
oui, le sous-bloc d'énergie maximale est dans la trame courante et on attribue le
facteur 1, c'est-à-dire une valeur inhibant l'atténuation, à tous les échantillons
à partir du début du sous-bloc jusqu'à la fin de la trame dans la boucle des étapes
311-312-313.
[0088] A l'étape 314 l'énergie moyenne de la trame courante reconstruite, c'est à dire des
K
2 premiers blocs du signal reconstruit
xrec,N (
n), est calculée et mémorisée. Elle sera utilisée dans la trame suivante pour le calcul
des nouveaux facteurs. Dans une variante on peut remplacer l'équation de cette étape
par une autre qui tient compte également de l'atténuation des pré-échos, par exemple
par l'équation suivante :

[0089] Ainsi, on prend en compte le signal traité qui n'est plus perturbé par des pré-échos.
[0090] Aux étapes 315 et 316, une fonction de lissage des facteurs est déterminée et appliquée
échantillon par échantillon pour éviter des variations trop brusques du facteur.
[0091] Cette fonction de lissage est par exemple définie par les équations suivantes:

où on pondère le facteur défini pour l'échantillon précédent et le facteur de l'échantillon
courant pour obtenir le facteur lissé.
[0092] Le dernier facteur d'atténuation obtenu pour le dernier sous-bloc à atténuer de la
trame courante est mémorisé pour une utilisation dans la trame suivante à l'étape
315.
[0093] D'autres fonctions de lissage sont possibles comme par exemple une transition linéaire
entre les deux valeurs de facteur, soit avec une pente constante (par exemple par
pas de 0.05), soit avec une longueur fixe (par exemple sur 16 échantillons).
[0094] Une fois les facteurs ainsi calculés, l'atténuation de pré-écho est faite sur le
signal reconstruit de la trame courante en multipliant chaque échantillon par le facteur
correspondant :

[0095] L'étape 307 de calcul du facteur d'atténuation pour un sous-bloc, est maintenant
détaillée dans un mode de réalisation particulier de l'invention en référence à la
figure 7.
[0096] Dans ce mode de réalisation, on calcule d'abord à l'étape 401, le rapport max
en / En(k) de l'énergie maximale déterminée à l'étape 304 sur l'énergie du sous-bloc
traité.
[0097] En pratique, ce rapport peut être inversé et les seuils adaptés en conséquence.
[0098] On teste à l'étape 402 si ce rapport est inférieur ou égal à un premier seuil S1.
La valeur de S1 est fixée à 16 dans l'exemple, cette valeur étant optimisée expérimentalement.
[0099] Si oui, la variation de l'énergie par rapport à l'énergie maximale est faible pour
produire un pré-écho gênant, aucune atténuation n'est alors nécessaire. Le facteur
est alors fixé à l'étape 403, à une valeur d'atténuation inhibant l'atténuation, c'est-à-dire
1.
[0100] Sinon, on teste à l'étape 404 si le rapport r est inférieur ou égal à un deuxième
seuil S2. La valeur de S2 est fixée à 32 dans l'exemple, cette valeur étant optimisée
expérimentalement.
[0101] Si oui, cela veut dire que l'on peut avoir un petit pré-écho gênant qui est à atténuer
légèrement en fixant le facteur à l'étape 405, à une valeur d'atténuation faible,
par exemple à 0,5. Quand le rapport est supérieur à ce deuxième seuil, le risque de
pré-écho est alors maximal et on applique à l'étape 406 une valeur d'atténuation forte
au facteur, par exemple 0,1.
[0102] Dans la plupart des cas, surtout quand le pré-écho est gênant, la trame qui précède
la trame de pré-écho a une énergie homogène qui correspond à l'énergie du bruit de
fond à ce moment. Selon l'expérience il n'est pas utile ni même souhaitable que l'énergie
du signal devienne inférieure à l'énergie moyenne de la trame précédente après le
traitement de pré-écho.
[0103] A l'étape 407 on calcule donc une valeur limite du facteur
limr avec lequel on obtient pour le sous-bloc donné exactement la même énergie que l'énergie
moyenne de la trame précédente. Puis à l'étape 408, on limite cette valeur à un maximum
de 1 puisqu'on s'intéresse ici aux valeurs d'atténuation.
[0104] La valeur
limg ainsi obtenue sert comme limite inférieure dans le calcul final du facteur d'atténuation
à l'étape 409.
[0105] Dans une variante de réalisation du calcul du facteur d'atténuation, une caractéristique
de débit du signal transmis peut-être pris en compte. En effet, dans une transmission
à bas débit, le bruit de quantification est en général important, ce qui augmente
le risque de pré-écho gênant. A l'opposé, à très haut débit, la qualité de codage
peut être très bonne et aucune atténuation de pré-écho n'est alors nécessaire.
[0106] Dans le cas d'un codage/décodage multi-débit, l'information de débit peut donc être
prise en compte pour déterminer le facteur d'atténuation.
[0107] Les
figures 8a et 8b illustrent la mise en oeuvre du procédé d'atténuation de l'invention sur un exemple
typique.
[0108] Dans cet exemple le signal est échantillonné à 8 kHz, la longueur de la trame est
de 160 échantillons et chaque trame est divisée en 4 sous-blocs de 40 échantillons.
[0109] Dans la partie a.) de la figure 8a, 3 trames du signal original correspondant à la
partie bande étroite (0-4000Hz) du canal gauche d'un signal stéréo échantillonné à
16 kHz, sont représentées. Une attaque ou transition dans le signal est située dans
le sous-bloc commençant à l'indice 360. Ce signal à été codé par exemple par une extension
stéréo du codeur G.729.1.
[0110] Dans la partie b.) de la figure 8a, le résultat du décodage (uniquement le canal
gauche) sans traitement de pré-écho est illustré. On peut observer le pré-écho à partir
de l'échantillon 160 (début de la trame précédant la trame avec l'attaque).
[0111] La partie c.) montre l'évolution du facteur d'atténuation de pré-écho (ligne continue)
obtenu par la mise en oeuvre du procédé selon l'invention. La ligne pointillée représente
le facteur avant lissage.
[0112] La partie d.) illustre le résultat du décodage après application du traitement de
pré-écho (multiplication du signal b.) avec le signal c.)). On voit que le pré-écho
a bien été supprimé.
[0113] La figure 8b illustre le même exemple typique pour lequel une mise en oeuvre d'une
variante de réalisation du procédé d'atténuation selon l'invention est effectuée.
[0114] Si on observe bien la figure 8a on s'aperçoit que le facteur lissé ne remonte pas
à 1 au moment de l'attaque, ce qui implique une diminution de l'amplitude de l'attaque.
L'impact perceptible de cette diminution est très faible mais peut néanmoins être
évité.
[0115] Pour cela, on peut par exemple affecter, avant lissage, la valeur de facteur 1 aux
quelques derniers échantillons du sous-bloc précédant le sous-bloc où se situe l'attaque.
La partie c.) de la figure 8b donne un exemple d'une telle correction. Dans cet exemple
on a affecté la valeur de facteur 1 aux 16 derniers échantillons du sous-bloc précédent
le sous-bloc avec l'attaque, à partir de l'indice 344.
[0116] Ainsi la fonction de lissage accroit progressivement le facteur pour avoir une valeur
proche de 1 au moment de l'attaque. L'amplitude de l'attaque est alors préservée.
[0117] La difficulté de cette méthode est de savoir, dans la trame qui précède la trame
comportant l'attaque, si l'attaque se situe dans le premier sous-bloc ou non.
[0118] Si l'attaque se situe dans le premier sous-bloc, alors la valeur de facteur 1 doit
être affectée aux derniers échantillons de la trame. Le problème est que sur le signal
concaténé on ne peut pas déterminer avec certitude la position de l'attaque, à cause
de la symétrie de cette partie du signal concaténé qui reflète en fait la propriété
bien connue de " repliement temporel " de la transformée MDCT.
[0119] Les
figures 9 et 10 illustrent le signal concaténé correspondant à la deuxième trame des figures 8a et
8b.
[0120] On peut en effet voir que l'attaque est dans le sous-bloc k=5 du signal concaténé.
Cette attaque sera donc soit dans le deuxième soit dans le troisième sous bloc du
signal reconstruit de la trame suivante. Elle ne sera donc pas dans le premier sous-bloc
de la trame suivante. Il n'est alors pas nécessaire d'affecter la valeur de facteur
à 1 aux derniers échantillons de la trame courante. Ceci est valable que le signal
ait effectivement l'attaque dans le deuxième sous-bloc de la trame suivante (cas de
la figure 9) ou dans le troisième sous-bloc (cas de la figure 10).
[0121] Par contre, comme représenté en
figure 11 ou 12, quand l'attaque est dans le 1
er ou dans le 4
éme sous-bloc de la trame suivante, on détecte l'attaque dans le sous-bloc k=4 du signal
concaténé à cause de la symétrie de cette partie du signal concaténé.
[0122] Or si l'attaque est dans le premier sous-bloc, il faut affecter la valeur de facteur
à 1 aux derniers échantillons de la trame mais cela n'est pas nécessaire quand l'attaque
est dans le 4
ème sous-bloc.
[0123] Une solution est de toujours affecter la valeur de facteur à 1 aux derniers échantillons
de la trame si l'attaque est détectée dans le 4
éme sous-bloc du signal concaténé. Si dans la trame suivante, l'attaque est dans le premier
sous-bloc (cas de la figure 11) le fonctionnement est alors optimal. Par contre quand
l'attaque est dans le 4
ème sous-bloc (cas de la figure 12), l'atténuation est sous-optimale car autour de la
fin de la trame, le facteur d'atténuation de pré-écho augmente vers 1 pour quelques
échantillons puis redescend vers le niveau correct d'atténuation au début de la trame
suivante. L'impact subjectif de cette sous-optimalité est faible car quand l'attaque
se trouve dans le 4
ème sous-bloc de la trame suivante son amplitude est bien diminuée par le fenêtrage d'analyse.
Le pré-écho provoqué par cette attaque est faible.
[0124] Les figures 9 à 12 ont été obtenues avec le même signal d'entrée, en le décalant
de la longueur d'un sous-bloc pour déplacer la position de l'attaque dans la trame.
On peut observer en comparant les figures 11 et 12 par exemple, la différence de niveau
de pré-écho en fonction de la position de l'attaque : quand l'attaque se trouve dans
le 4
éme sous-bloc le pré-écho est nettement plus faible.
[0125] Le procédé objet de l'invention utilise un exemple particulier de calcul du début
de l'attaque (recherche du maximum d'énergie par sous-bloc) mais peut fonctionner
avec toute autre méthode de détermination du début de l'attaque.
[0126] Le procédé objet de l'invention précitée s'appliquent à l'atténuation des pré-échos
dans tout codeur par transformée qui utilise un banc de filtre MDCT ou tout banc de
filtres à reconstruction parfaite à valeur réelle ou complexe, ou les bancs de filtres
à reconstruction presque parfaite ainsi que les bancs de filtres utilisant la transformée
de Fourier ou la transformée en ondelettes.
[0127] Il est à noter que dans le cas où un retard d'une trame est tolérable au décodeur,
les problèmes de localisation de transitoire (attaque) dans la seconde partie du signal
concaténé peuvent être évités. Le procédé de réduction des pré-échos s'applique alors
directement au signal reconstruit et non plus au signal concaténé qui est hybride
entre signal reconstruit / signal intermédiaire avec repliement temporel. Les moyens
de détection de transition, de calcul de facteur d'atténuation et de réduction de
pré-échos décrits précédemment s'appliquent.
[0128] Par ailleurs, dans le cas où le signal concaténé n'est pas défini explicitement,
il est toujours possible d'utiliser le signal reconstruit à la trame courante et un
signal intermédiaire de la MDCT inverse pour réaliser les opérations décrites précédemment.
[0129] Des exemples d'application de l'invention sont donnés ci-après.
[0130] Un exemple de codeur de signal stéréo est décrit en référence à la figure 13a. Un
décodeur adapté comportant un dispositif d'atténuation selon l'invention est décrit
en référence à la figure 13b.
[0131] La
figure 13a montre un exemple de codeur, pour lequel des informations stéréo sont transmises
par bande de fréquences et sont décodées dans le domaine fréquentiel.
[0132] Un signal mono
M est calculé à partir des signaux d'entrée de la voie gauche
L et droite
R par des moyens de matriçage 500.
[0133] Le codeur intègre également des moyens de transformation temps-fréquence 502, 503
et 504 apte à réaliser une transformée, par exemple une transformée de Fourier discrète
ou DFT (de l'anglais « Discrete Fourier Transform »), une transformée MDCT (de l'anglais
« Modified Discrete Cosine Transform »), une transformée MCLT (de l'anglais « Modulated
Complex Lapped Transform »).
[0134] On obtient ainsi, à partir des valeurs
L, R et
M correspondant aux signaux temporels gauche et droit, et mono, des valeurs de signaux
fréquentiels gauche
L et droit
R, et mono
M. On utilisera pour décrire les figures 13 et 14 les caractères en italique pour des
signaux dans le domaine fréquentiel.
[0135] Le signal mono
M est également quantifié et codé par les moyens 501 par exemple par le codeur G.729.1
normalisé à l'UIT-T. Ce module délivre le train binaire de coeur bst
1 et également le signal mono décodé
M̂ transformé dans le domaine fréquentiel.
[0136] Le module 505 effectue le codage paramétrique stéréo à partir des signaux fréquentiels
L, R, et
M et du signal décodé
M̂. Il délivre la première couche d'extension optionnelle du train binaire bst
2 et les deux canaux du signal stéréo décodé
L et
R̂ qu'on obtient en décodant les deux couche bst
1 et bst
2.
[0137] Le signal résiduel stéréo dans le domaine fréquentiel est calculé par les moyens
506 et 507 et encodé par le moyen de codage 508 et on obtient la deuxième couche d'extension
optionnelle du train binaire bst
3.
[0138] Le signal encodé de coeur bst
1 et les couches d'extension optionnelles bst
2 et bst
3 sont transmis au décodeur.
[0139] La
figure 13b montre un exemple de décodeur susceptible de recevoir le signal encodé de coeur bst
1 et les couches d'extension optionnelles bst
2 et bst
3.
[0140] Des moyens de décodage 600 permettent de décoder le train binaire coeur bst
1 et d'obtenir le signal décodé mono
M̂. Si la première couche d'extension optionnelle bst
2 est disponible elle peut être décodée par les moyens de décodage stéréo paramétrique
601 pour construire le signal stéréo décodé
L et
R à partir du signal décodé mono
M̂. Sinon,
L et
R̂ seront égale a
M̂.
[0141] Quand la deuxième couche d'extension optionnelle bst
3 est également disponible elle est décodée par les moyens de décodage 602 pour obtenir
le signal résiduel stéréo dans le domaine fréquentiel. Ceci s'ajoute au signal stéréo
décodé
L̂ et
R̂ pour augmenter la précision de la représentation fréquentielle du signal. Sinon,
quand cette deuxième couche d'extension n'est pas disponible
L et
R̂ restent inchangés.
[0142] Ces deux signaux subissent une transformation inverse fréquence-temps par les modules
605 et 606, une reconstruction par addition/recouvrement par les modules respectifs
607 et 608. Une réduction des pré-échos selon l'invention est alors effectuée par
les modules d'atténuation 609 et 610 tels que décrit en référence à la figure 3, pour
obtenir les deux canaux du signal stéréo temporel décodé
L̃ et
R̃.
[0143] Un autre exemple de décodeur comportant un dispositif selon l'invention est maintenant
décrit en référence aux figures 14a et 14b.
[0144] La
figure 14a montre un exemple de codeur de l'extension en bande super-élargie d'un codeur bande
élargie de type G.729.1. Le signal d'entrée en bande super-élargie S
32 est sous-échantillonné par les moyens de sous-échantillonnage 700 pour obtenir un
signal en bande élargie S
16. Ce signal est quantifié et codé par les moyens 701 par exemple par le codeur ITU
G.729.1. Ce module délivre le train binaire de coeur bst
1 et également le signal bande élargie décodé
Ŝ16 dans le domaine fréquentiel.
[0145] Le signal d'entrée en bande super-élargie S
32 est transformé dans le domaine fréquentiel par les moyens de transformation 704.
Les fréquences de la bande haute (bande 7000 -14000Hz) non codées dans la partie bande
élargie seront encodées par les moyens de codage 704. Ce codage est basé sur le spectre
du signal bande élargie décodé
Ŝ16. Les paramètres codés constituent la première extension optionnelle du train binaire
bst
2.
[0146] Une deuxième couche optionnelle du train binaire bst
3 fourni par les moyens de codage 705, contient les paramètres pour améliorer la qualité
de la bande élargie (50-7000 Hz).
[0147] Le décodeur de la
figure 14b représente un décodeur en bande super-élargie (50-14000 Hz) correspondant à l'encodeur
de la figure 14a. Le train binaire de coeur bst
1 est décodé par un codeur en bande élargie de type G.729.1 (module 800). On obtient
donc le spectre du signal décodé en bande élargie. Ce spectre est éventuellement amélioré
par le décodage en 801 de la deuxième couche d'extension optionnelle bst
3. Le module 801 comprend également la transformation fréquence-temps du signal bande
élargie. La présente invention n'intervient pas dans cette transformation fréquence-temps
pour réduire les pré-échos car ici on dispose des signaux temporels sans écho (composants
CELP et TDBWE du codeur G.729.1) et donc la technique décrit dans la demande de brevet
français
FR 06 01466 peut être appliquée. Le signal bande élargie décodé est ensuite sur-échantillonné
par un facteur de 2 dans les moyennes de sur-échantillonnage 802.
[0148] Quand la première couche d'extension optionnelle bst
2 est disponible au décodeur, elle est décodée par les moyens de décodage 803.
[0149] Ce décodage est basé sur le spectre du signal bande élargie décodé Ŝ
16. Le spectre ainsi obtenu contient les valeurs non-nulles uniquement dans la zone
de fréquence 7000-14000 Hz non codée par la partie en bande élargie. Dans cette configuration,
entre 7000 et 14000 Hz, on ne dispose donc pas de signaux de référence sans pré-écho.
Le dispositif d'atténuation selon l'invention est donc mis en oeuvre.
[0150] Le signal temporel est obtenu par transformation inverse fréquence-temps par le module
504. Le module de reconstruction par addition/recouvrement fourni un signal reconstruit.
La réduction des pré-échos selon la présente invention est effectué par le module
d'atténuation 807 tel que décrit en référence à la figure 3.
[0151] A noter que pour cette application, le signal après transformation inverse MDCT ne
contient que des fréquences supérieures à 7000 Hz. L'enveloppe temporelle de ce signal
peut donc être déterminée avec une très grande précision, ce qui augmente l'efficacité
de l'atténuation des pré-échos par le procédé d'atténuation de l'invention.
[0152] Un exemple de réalisation d'un dispositif d'atténuation selon l'invention est maintenant
décrit en référence à la
figure 15.
[0153] Matériellement, ce dispositif 100 au sens de l'invention comporte typiquement, un
processeur µP coopérant avec un bloc mémoire BM incluant une mémoire de stockage et/ou
de travail, ainsi qu'une mémoire tampon MEM précitée en tant que moyen pour mémoriser
par exemple l'enveloppe temporelle de la trame courante, le facteur d'atténuation
calculé pour le dernier échantillon de la trame courante, l'énergie des sous-blocs
de la trame courante ou toutes autres données nécessaire à la mise en oeuvre du procédé
d'atténuation tel que décrit en référence aux figures 5 à 7. Ce dispositif reçoit
en entrée des trames successives du signal numérique Se et délivre le signal Sa reconstruit
avec atténuation de pré-échos le cas échéant.
[0154] Le bloc mémoire BM peut comporter un programme informatique comportant les instructions
de code pour la mise en oeuvre des étapes du procédé selon l'invention lorsque ces
instructions sont exécutées par un processeur µP du dispositif et notamment une étape
de définition d'un signal concaténé, à partir au moins du signal reconstruit de la
trame courante, une étape de division dudit signal concaténé en sous-blocs d'échantillons
de longueur déterminée, une étape de calcul d'enveloppe temporelle du signal concaténé,
une étape de détection de transition de l'enveloppe temporelle vers une zone à forte
énergie, une étape de détermination des sous-blocs de basse énergie précédant un sous-bloc
dans lequel une transition a été détectée et une étape d'atténuation dans les sous-blocs
déterminés.
[0155] L'atténuation s'effectue selon un facteur d'atténuation calculé pour chacun des sous-blocs
déterminés, en fonction de l'enveloppe temporelle du signal concaténé.
[0156] Les figures 5 à 7 peuvent illustrer l'algorithme d'un tel programme informatique.
[0157] Ce dispositif d'atténuation selon l'invention peut être indépendant ou intégré dans
un décodeur de signal numérique.
1. Verfahren zur Dämpfung von Vorechos in einem audiodigitalen Signal, das ausgehend
von einer Transformationscodierung erzeugt wird, bei dem bei der Decodierung für einen
laufenden Rahmen dieses audiodigitalen Signals das Verfahren aufweist:
- einen Schritt der Definition (CONC) eines verketteten Signals ausgehend mindestens
vom rekonstruierten Signal des laufenden Rahmens;
- einen Schritt der Teilung (DIV, 301) des verketteten Signals in Teilblöcke von Tastproben
bestimmter Länge;
- einen Schritt des Berechnens (ENV, 302) einer zeitlichen Hüllkurve des verketteten
Signals;
- einen Schritt der Erfassung (DETECT, 304) des Übergangs der zeitlichen Hüllkurve
in eine Zone mit starker Energie;
- einen Schritt der Bestimmung (DETECT, 304) der Teilblöcke niedriger Energie, die
vor einem Teilblock liegen, in dem ein Übergang erfasst wurde, und gekennzeichnet durch
- einen Schritt der Dämpfung (ATT) in den bestimmten Teilblöcken,
wobei das Verfahren
dadurch gekennzeichnet ist, dass die Dämpfung gemäß einem Dämpfungsfaktor durchgeführt wird,
der für jeden der bestimmten Teilblöcke berechnet wird, abhängig von der zeitlichen
Hüllkurve des verketteten Signals und der zeitlichen Hüllkurve des rekonstruierten
Signals des vorhergehenden Rahmens.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass ein Mindestwert für einen Dämpfungswert des Faktors abhängig von der zeitlichen Hüllkurve
des rekonstruierten Signals des vorhergehenden Rahmens festgelegt wird.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Dämpfungsfaktor abhängig von der zeitlichen Hüllkurve des Teilblocks, dem Maximum
der zeitlichen Hüllkurve des den Übergang enthaltenden Teilblocks und der zeitlichen
Hüllkurve des rekonstruierten Signals des vorhergehenden Rahmens bestimmt wird.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die zeitliche Hüllkurve durch eine Energieberechnung pro Teilblöcke bestimmt wird.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass es außerdem einen Schritt der Berechnung und der Speicherung der zeitlichen Hüllkurve
des laufenden Rahmens nach dem Schritt der Dämpfung in den bestimmten Teilblöcken
aufweist.
6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass ein Dämpfungsfaktor des Werts 1 den Tastproben des den Übergang aufweisenden Teilblocks
sowie den Tastproben der folgenden Teilblöcke im laufenden Rahmen zugeteilt wird.
7. Verfahren nach Anspruch 4,
dadurch gekennzeichnet, dass der Dämpfungsfaktor pro bestimmtem Teilblock gemäß den folgenden Schritten bestimmt
wird:
- Berechnung des Verhältnisses der bestimmten maximalen Energie in dem einen Übergang
aufweisenden Teilblock zur Energie des laufenden Teilblocks;
- Vergleich des Verhältnisses mit einer ersten Schwelle;
- wenn das Verhältnis niedriger als die oder gleich der ersten Schwelle ist, Zuteilung
eines die Dämpfung verhindernden Werts zum Dämpfungsfaktor;
- wenn das Verhältnis höher als die erste Schwelle ist:
. Vergleich des Verhältnisses mit einer zweiten Schwelle;
. wenn das Verhältnis niedriger als die oder gleich der zweiten Schwelle ist, Zuteilung
eines schwachen Dämpfungswerts zum Dämpfungsfaktor;
. wenn das Verhältnis höher als die zweite Schwelle ist, Zuteilung eines starken Dämpfungswerts
zum Dämpfungsfaktor.
8. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass eine Glättungsfunktion zwischen den Tastprobe für Tastprobe berechneten Faktoren
bestimmt wird.
9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass eine Faktorkorrektur für den Teilblock durchgeführt wird, der vor dem einen Übergang
aufweisenden Teilblock liegt, indem ein die Dämpfung verhindernder Dämpfungswert an
den Dämpfungsfaktor angewendet wird, der an eine vorbestimmte Anzahl von Tastproben
des vor dem einen Übergang aufweisenden Teilblock liegenden Teilblocks angewendet
wird.
10. Vorrichtung zur Dämpfung von Vorechos in einem audiodigitalen Signal, das ausgehend
von einem Transformationscodierer erzeugt wird, bei dem die einem Decodierer zugeordnete
Vorrichtung zur Verarbeitung eines laufenden Rahmens dieses audiodigitalen Signals
enthält:
- ein Modul (101) zur Definition eines verketteten Signals ausgehend mindestens von
dem rekonstruierten Signals des laufenden Rahmens;
- ein Modul (102) zur Teilung des verketteten Signals in Teilblöcke von Tastproben
bestimmter Länge;
- ein Modul (103) zur Berechnung einer zeitlichen Hüllkurve des verketteten Signals;
- ein Modul (104) zur Erfassung des Übergangs der zeitlichen Hüllkurve in eine Zone
starker Energie;
- ein Modul (104) zur Bestimmung der Teilblöcke niedriger Energie, die vor einem Teilblock
liegen, in dem ein Übergang erfasst wurde; und gekennzeichnet durch
- ein Modul (105) zur Dämpfung in den bestimmten Teilblöcken,
wobei die Vorrichtung
dadurch gekennzeichnet ist, dass das Dämpfungsmodul die Dämpfung gemäß einem für jeden der
bestimmten Teilblöcke berechneten Dämpfungsfaktor abhängig mindestens von der zeitlichen
Hüllkurve des verketteten Signals und der zeitlichen Hüllkurve des rekonstruierten
Signals des vorhergehenden Rahmens durchführt.
11. Decodierer eines audiodigitalen Signals, der eine Vorrichtung nach Anspruch 10 aufweist.
12. EDV-Programm, das Codeanweisungen für die Durchführung der Schritte des Verfahrens
nach einem der Ansprüche 1 bis 9 aufweist, wenn diese Anweisungen von einem Prozessor
ausgeführt werden.