Note : Les descriptions sont présentées dans la langue officielle dans laquelle elles ont été soumises.
CA 02899438 2015-07-24
WO 2014/118468
PCT/FR2014/050166
1
Correction perfectionnée de perte de trame au décodage d'un signal
La présente invention concerne une correction de signal, notamment dans un
décodeur, en cas de perte
de trame à la réception du signal par ce décodeur.
Le signal se présente sous la forme d'une succession d'échantillons, découpée
en trames successives et
on entend alors par trame un segment de signal composé d'un ou plusieurs
échantillons (une
réalisation où une trame comporte un échantillon unique étant possible si le
signal se présente sous la
forme d'une succession d'échantillons, comme par exemple dans les codecs selon
la recommandation
UIT-T G.711).
L'invention se situe dans le domaine du traitement numérique du signal,
notamment mais non
exclusivement dans le domaine du codage/décodage d'un signal audio. Les pertes
de trames
interviennent lorsqu'une communication (soit par transmission en temps-réel,
soit par stockage en vue
d'une transmission ultérieure) utilisant un codeur et un décodeur, est
perturbée par les conditions de
canal (à cause de problèmes radio, de congestion de réseau d'accès, etc.).
Dans ce cas, le décodeur utilise des mécanismes de correction (ou masquage )
de perte de trames
pour tenter de substituer le signal manquant par un signal reconstitué, en
utilisant les informations
disponibles au sein du décodeur (par exemple le signal déjà décodé ou les
paramètres reçus dans des
trames précédentes). Cette technique permet de maintenir une bonne qualité de
service malgré des
performances de canal dégradées.
Les techniques de correction de perte de trames sont le plus souvent très
dépendantes du type de
codage utilisé.
Dans le cas du codage d'un signal de parole basé sur des technologies de type
CELP (pour Code
Excited Linear Prediction ), la correction de perte de trame exploite en
particulier le modèle CELP.
Par exemple, dans un codage selon la recommandation UIT-T G.722.2, la solution
pour remplacer une
trame perdue (ou un paquet ) consiste à prolonger l'utilisation d'un gain de
prédiction à long terme
en l'atténuant, ainsi qu'à prolonger l'utilisation de chaque paramètre ISF
(pour Imittance Spectral
Frequency ) en les faisant tendre vers leurs moyennes respectives. La hauteur
tonale du signal de
parole (ou pitch , paramètre désigné LTP lag ) est aussi répétée. Par
ailleurs, on fournit au
CA 02899438 2015-07-24
WO 2014/118468
PCT/FR2014/050166
2
décodeur des valeurs aléatoires de paramètres caractérisant l'innovation
(l'excitation dans le
codage CELP).
Il convient de noter déjà que l'application de ce type de méthode, pour des
codages par transformée ou
des codages de forme d'ondes de type PCM ou ADPCM , nécessite un une
analyse
paramétrique de type CELP du signal passé au niveau du décodeur, ce qui
introduit une complexité
supplémentaire.
Dans la recommandation UIT-T G.711 correspondant à un codeur de forme d'ondes,
un exemple
informatif de traitement de correction de perte de trame (donné dans la partie
Appendice I du texte de
cette recommandation) consiste à trouver une période de pitch dans le signal
de parole déjà décodé et à
répéter la dernière période de pitch par recouvrement-addition (ou overlap-
add en anglais) entre le
signal déjà décodé et le signal répété (reconstruit par masquage). Ce
traitement permet de gommer
les artefacts audio mais nécessite un délai supplémentaire au décodeur (délai
correspondant à la durée
du recouvrement).
La technique la plus employée pour corriger la perte de trame dans le cas d'un
codage par transformée
consiste à répéter le spectre décodé dans la dernière trame reçue. Par
exemple, dans le cas du codage
selon la recommandation UIT-T G.722.1, la transformée MLT (pour modulated
lapped transform ),
équivalente à une transformée en cosinus discrète modifiée (ou MDCT pour
modified discrete cosine
transform ) avec un recouvrement de 50% et des fenêtres d' analyse/synthèse
de forme sinusoïdale,
permet d'assurer une transition (entre la dernière trame perdue et la trame
répétée) qui est
suffisamment lente pour gommer les artefacts liés à la simple répétition du
spectre ; typiquement, si
plus d'une trame est perdue, le spectre répété est mis à zéro.
Avantageusement, cette méthode de masquage ne nécessite pas de délai
supplémentaire puisqu'elle
exploite le recouvrement-addition entre le signal reconstitué et le signal
passé pour réaliser une sorte de
fondu enchaîné (avec repliement temporel dû à la transformée MLT). Il s'agit
d'une technique très
peu coûteuse en termes de ressources.
Toutefois, elle présente un défaut lié à l'incohérence temporelle entre le
signal juste avant la perte de
trame et le signal répété. Il en résulte une discontinuité (ou incohérence) de
phase, qui peut produire
des artefacts audio importants si la durée de recouvrement entre les signaux
associés à deux trames est
réduite (comme c'est le cas en particulier lorsque des fenêtres MDCT dites à
faible retard sont
CA 02899438 2015-07-24
WO 2014/118468
PCT/FR2014/050166
3
utilisées). On a illustré cette situation de durée courte de recouvrement sur
la figure 1B dans le cas
d'une transformée MLT à faible retard, en comparaison de la situation
habituelle de la figure 1 A dans
laquelle des fenêtres longues en sinus sont utilisées selon la recommandation
G.722.1 (offrant alors une
grande durée de recouvrement ZRA, avec une modulation très progressive). Il
apparait qu'une
modulation par une fenêtre à faible retard produit un déphasage qui est
audible du fait d'une zone de
recouvrement courte ZRB, comme représenté sur la figure 1B.
Dans ce cas, quand bien même une solution combinant une recherche de pitch
(cas du décodage selon
la recommandation G.711 App. I) et un recouvrement-addition produit pas la
fenêtre d'une transformée
MDCT serait mise en oeuvre, elle ne serait pas suffisante pour supprimer les
artefacts audio liés
notamment au déphasage entre différentes composantes fréquentielles.
La présente invention vient améliorer la situation.
Elle propose à cet effet un procédé de traitement d'un signal comportant une
succession d'échantillons
répartis en trames successives, le procédé étant mis en oeuvre pendant un
décodage dudit signal pour
remplacer au moins une trame de signal perdue au décodage. En particulier, le
procédé comporte les
étapes :
a) recherche, dans un signal valide disponible au décodage, d'un segment de
signal, de durée
correspondant à une période déterminée en fonction dudit signal valide,
b) analyse spectrale du segment, pour une détermination de composantes
spectrales du segment,
c) synthèse d'au moins une trame de remplacement de la trame perdue, par
construction d'un signal de
synthèse à partir d'une partie au moins des composantes spectrales.
On entend ici par trame un bloc d'au moins un échantillon. Dans la plupart
des codecs, ces trames
sont constituées de plusieurs échantillons. Toutefois, dans des codecs
notamment de type PCM (pour
Pulse Code Modulation ), par exemple selon la recommandation G.711, le signal
est constitué
simplement d'une succession d'échantillons (une trame au sens de
l'invention ne comportant alors
qu'un unique échantillon). L'invention peut alors aussi s'appliquer à ce type
de codecs.
Par exemple, le signal valide peut être constitué des dernières trames valides
reçues avant la perte de
trame. Eventuellement, on peut avoir recours aussi à une ou quelques trames
valides suivantes, reçues
après la trame perdue (bien qu'une telle réalisation entraîne un retard au
décodage). Les échantillons du
signal valide qui sont utilisés peuvent être directement ceux des trames, et
éventuellement ceux qui
CA 02899438 2015-07-24
WO 2014/118468
PCT/FR2014/050166
4
correspondent à la mémoire de la transformée et qui contiennent typiquement un
repliement (ou
aliasing ) dans le cas d'un décodage par transformée avec recouvrement de
type MLT ou MDCT.
L'invention apporte alors une solution avantageuse à la correction de perte de
trame(s), notamment
dans le cas où un retard supplémentaire au décodeur est proscrit, par exemple
lorsque l'on utilise un
décodeur par transformée avec des fenêtres ne permettant pas d'avoir un
recouvrement suffisamment
grand entre le signal de substitution et le signal issu du dépliement temporel
(cas typique des fenêtres à
faible retard pour une MDCT ou une MLT, comme représenté sur la figure 1B).
L'invention offre un
avantage particulier pour un recouvrement, du fait de l'utilisation des
composantes spectrales sur les
dernières trames valides reçues pour construire un signal de synthèse
comportant la coloration spectrale
des ces dernières trames valides. Néanmoins, l'invention s'applique bien
entendu à tout type de
codage/décodage (par transformée, CELP, PCM, ou autres).
Dans un mode de réalisation, le procédé comporte une recherche, par
corrélation dans le signal valide,
d'une période de répétition, la durée du segment précitée comportant alors au
moins une période de
répétition.
Une telle période de répétition correspond par exemple à une période de
pitch dans le cas d'un
signal de parole voisé (inverse de la fréquence fondamentale du signal).
Néanmoins, le signal peut être
aussi issu d'un signal de musique par exemple, présentant une tonalité globale
à laquelle est associée
une fréquence fondamentale, ainsi qu'une période fondamentale qui pourrait
correspondre à la période
de répétition précitée.
On peut par exemple avoir recours à une recherche de période de répétition
liée à la tonalité du signal.
Par exemple, on peut constituer un premier buffer (ou mémoire tampon en
français) des quelques
derniers échantillons valablement reçus et chercher par corrélation dans un
deuxième buffer de plus
grande taille, les quelques échantillons du deuxième buffer qui correspondent
le mieux dans leur
succession à ceux du premier buffer. L'écart temporel entre ces échantillons
identifiés du deuxième
buffer et ceux du premier buffer peut constituer une période de répétition ou
un multiple de cette
période (selon la finesse de la recherche par corrélation). On peut noter que
le fait de prendre un
multiple de la période de répétition ne dégrade pas la mise en oeuvre de
l'invention, car, dans ce cas,
l'analyse spectrale se fait simplement sur une longueur couvrant plusieurs
périodes au lieu d'une seule,
ce qui contribue à augmenter la finesse de l'analyse.
CA 02899438 2015-07-24
WO 2014/118468
PCT/FR2014/050166
Ainsi, on peut déterminer la durée de signal sur laquelle on effectue
l'analyse spectrale comme étant :
- une durée correspondant à une période de répétition (si une tonalité du
signal est bien
identifiable),
- une durée correspondant à plusieurs périodes de répétition (cycles de
pitch par exemple), si la
5
corrélation donne un premier résultat de corrélation supérieur à un seuil
prédéterminé, comme
expliqué dans un mode de réalisation optionnel ci-après,
- une durée arbitraire de signal (par exemple quelques dizaines
d'échantillons), si une telle
tonalité n'est pas identifiable (signal comportant essentiellement du bruit).
Dans une réalisation particulière, la période de répétition précitée
correspond à une durée pour laquelle
la corrélation dépasse une valeur seuil prédéterminée. Ainsi, dans cette
réalisation, on identifie la durée
du signal dès que la corrélation dépasse une valeur seuil prédéterminée pour
cette durée. La durée
ainsi identifiée correspond à une ou plusieurs périodes associées à une
fréquence de la tonalité globale
précitée. Une telle réalisation permet avantageusement de limiter la
complexité de la recherche par
corrélation (par exemple, en fixant un seuil de corrélation à 60 ou 70%), même
si en réalité on détecte
non pas une seule, mais plusieurs périodes de pitch (par exemple entre deux et
cinq périodes de pitch).
D'une part, la complexité de la recherche par corrélation est alors plus
basse. D'autre part, l'analyse
spectrale sur plusieurs périodes est plus fine et les composantes spectrales
obtenues sont plus finement
analysées.
Concernant l'obtention des composantes spectrales par analyse du segment (par
exemple par
transformée de Fourier rapide, ou FFT ), le procédé comporte en outre une
détermination des phases
respectives associées à ces composantes spectrales et la construction du
signal de synthèse comporte
alors les phases des composantes spectrales. La construction du signal intègre
alors ces phases, comme
on le verra plus loin, pour une optimisation du raccordement du signal de
synthèse aux dernières
trames valides et, dans la plupart des cas naturels, aux trames valides
suivantes.
Dans une réalisation particulière aussi, le procédé comporte en outre une
détermination d'amplitudes
respectives associées aux composantes spectrales, et la construction du signal
de synthèse comporte ces
amplitudes des composantes spectrales (pour leur prise en compte dans la
construction du signal de
synthèse).
Dans une réalisation particulière, il est possible de sélectionner des
composantes issues de l'analyse
pour la construction du signal de synthèse. Par exemple, dans une réalisation
où le procédé comporte
CA 02899438 2015-07-24
WO 2014/118468
PCT/FR2014/050166
6
une détermination d'amplitudes respectives associées aux composantes
spectrales, les composantes
spectrales d'amplitudes les plus élevées peuvent être celles sélectionnées
pour la construction du signal
de synthèse. On peut sélectionner aussi, en complément ou en variante, celles
dont l'amplitude forme
un pic dans le spectre des fréquences.
Dans le cas où seule une partie des composantes spectrales est sélectionnée,
dans une réalisation
particulière, on ajoute du bruit au signal de synthèse pour compenser une
perte d'énergie relative à des
composantes spectrales non sélectionnées pour la construction du signal de
synthèse.
Dans une réalisation, le bruit précité est obtenu par un résidu pondéré
(temporellement) entre le signal
du segment et le signal de synthèse. Il peut par exemple être pondéré par des
fenêtres de recouvrement,
comme dans le cadre d'un codage/décodage par transformation avec recouvrement.
L'analyse spectrale du segment comporte une analyse sinusoïdale par
transformée de Fourier rapide
(FFT), préférentiellement de longueur 2^k, où k est supérieur ou égal à
log2(P), P étant le nombre
d'échantillons dans le segment de signal. Une telle réalisation permet de
réduire la complexité du
traitement, comme détaillé plus loin. On peut noter que d'autres transformées
sont possibles, par
exemple une transformée de type Modulated Complex Lapped Transform (MCLT) en
tant
qu'alternative possible à la transformée FFT.
En particulier, on peut prévoir, dans l'étape d'analyse spectrale :
- une interpolation des échantillons du segment pour obtenir un deuxième
segment comportant
un nombre d'échantillons 2Aceil(log2(P)), où ceil(x) est l'entier supérieur ou
égal à x,
- un calcul de la transformée de Fourier du deuxième segment ; et
- après détermination des composantes spectrales, identification de fréquences
associées aux
composantes, et construction du signal de synthèse par ré-échantillonnage avec
modification
desdites fréquences en fonction du ré-échantillonnage.
La présente invention trouve une application avantageuse mais aucunement
limitative au contexte de
décodage par transformée avec recouvrement. Dans un tel contexte, il peut être
avantageux que le
signal de synthèse soit construit (répété) sur une durée d'au moins deux
trames, de manière à couvrir
aussi les parties comportant un repliement temporel (aliasing) au-delà d'une
seule trame.
CA 02899438 2015-07-24
WO 2014/118468
PCT/FR2014/050166
7
Dans une réalisation particulière, le signal de synthèse peut être construit
sur deux durées de trame et
encore une durée supplémentaire correspondant à un délai introduit par un
filtre de ré-échantillonnage
(notamment dans la réalisation exposée ci-avant et où un ré-échantillonnage
est prévu).
Il peut être avantageux de gérer un buffer de gigue dans certaines
réalisations. Dans le cas où la
correction de perte de trames est réalisée conjointement avec la gestion d'un
buffer de gigue,
l'invention peut alors être appliquée dans ces conditions en adaptant la durée
du signal synthèse.
Dans une réalisation, le procédé comporte en outre une séparation en une bande
de fréquences hautes et
une bande de fréquences basses, du signal issu de la ou des trame(s)
valide(s), et les composantes
spectrales sont sélectionnées dans la bande de fréquences basses. Une telle
réalisation permet de limiter
la complexité du traitement essentiellement à la bande de fréquences basses,
les hautes fréquences
apportant peu de richesse spectrale au signal de synthèse et pouvant être
répétées de façon plus simple.
Dans cette réalisation, la trame de remplacement peut être synthétisée par
addition :
- d'un premier signal construit à partir de composantes spectrales
sélectionnées dans la bande de
fréquences basses, et
- d'un deuxième signal issu d'un filtrage dans la bande de fréquences
hautes,
le deuxième signal étant obtenu par duplication successive d'au moins une demi-
trame valide et sa
version retournée temporellement.
La présente invention vise aussi un programme informatique comportant des
instructions pour la mise
en oeuvre du procédé (dont, par exemple, un organigramme général peut être le
schéma général de la
figure 2, et éventuellement des organigrammes particuliers des figures 5 et/ou
8 dans certains modes de
réalisation).
La présente invention vise aussi un dispositif de décodage d'un signal
comportant une succession
d'échantillons répartis en trames successives, le dispositif comportant des
moyens pour remplacer au
moins une trame de signal perdue, comportant :
a) des moyens de recherche, dans un signal valide disponible au décodage, d'un
segment de signal, de
durée correspondant à une période déterminée en fonction dudit signal valide,
b) des moyens d'analyse spectrale du segment, pour une détermination de
composantes spectrales du
segment,
CA 02899438 2015-07-24
WO 2014/118468
PCT/FR2014/050166
8
c) des moyens de synthèse d'au moins une trame de remplacement de la trame
perdue, par construction
d'un signal de synthèse à partir d'une partie au moins des composantes
spectrales.
Un tel dispositif peut prendre la forme matérielle par exemple d'un processeur
et éventuellement d'une
mémoire de travail, typiquement dans un terminal de communication.
D'autres avantages et caractéristiques de l'invention apparaîtront à la
lecture de la description détaillée
ci-après d'exemples de réalisation de l'invention et à l'examen des dessins
sur lesquels :
- la figure 1 A illustre un recouvrement avec des fenêtres classiques dans
le cadre d'une
transformée MLT,
- la figure 1B illustre un recouvrement avec des fenêtres à faible retard,
en comparaison de la
représentation de la figure 1A,
- la figure 2 représente un exemple de traitement général au sens de
l'invention,
- la figure 3 illustre la détermination d'un segment de signal
correspondant à une période
fondamentale,
- la figure 4 illustre la détermination d'un segment de signal
correspondant à une période
fondamentale, avec, dans cet exemple de réalisation, un décalage la recherche
de corrélation,
- la figure 5 représente un mode de réalisation d'une analyse spectrale du
segment de signal,
- la figure 6 illustre un exemple de réalisation pour recopier, dans les
hautes fréquences, une
trame valide en remplacement de plusieurs trames perdues,
- la figure 7 illustre la reconstruction du signal des trames perdues, avec
la pondération par les
fenêtres de synthèse,
- la figure 8 illustre un exemple d'application du procédé au sens de la
présente invention, au
décodage d'un signal,
- la figure 9 représente schématiquement un dispositif comportant des moyens
de mise en oeuvre
du procédé au sens de l'invention.
Un traitement au sens de l'invention est illustré sur la figure 2. Il est mis
en oeuvre auprès d'un
décodeur. Le décodeur peut être de type quelconque, le traitement étant
globalement indépendant de la
nature du codage/décodage. Dans l'exemple décrit, le traitement s'applique à
un signal audio reçu. Il
peut s'appliquer toutefois de façon plus générale à tout type de signal
analysé par fenêtrage temporel et
transformation, avec une harmonisation à assurer avec une ou plusieurs trames
de remplacement lors
d'une synthèse par recouvrement-addition.
CA 02899438 2015-07-24
WO 2014/118468
PCT/FR2014/050166
9
Au cours d'une première étape Si du traitement de la figure 2, N échantillons
audio sont stockés
successivement dans une mémoire tampon ou buffer (par exemple de type
FIFO). Le buffer audio
b(n) peut être ainsi constitué par exemple de 47 ms de signal, soit par
exemple de 2,35=47/20 trames
audio de 20 ms chacune, à une fréquence d'échantillonnage Fe donnée, par
exemple Fe=32 kHz. Ces
échantillons correspondent à des échantillons déjà décodés et donc accessibles
au moment du
traitement de correction de perte de trame(s). Si le premier échantillon à
synthétiser est l'échantillon
d'indice temporel N (d'une ou plusieurs trames consécutives perdues), le
buffer audio b(n) correspond
alors aux N échantillons précédents d'indices temporels 0 à N-1. Dans le cas
d'un codeur par
transformée, le buffer audio correspond aux échantillons déjà décodés dans la
trame passée (et sont
donc non modifiables). Si l'ajout d'un retard supplémentaire au décodeur est
possible (par exemple de
D échantillons), le buffer peut ne contenir qu'une partie seulement des
échantillons disponibles au
décodeur, laissant par exemple les D derniers échantillons pour le
recouvrement-addition (de l'étape
S10 de la figure 2).
A l'étape de filtrage S2, le buffer audio b(n) est ensuite séparé en deux
bandes de fréquences, une
bande de fréquences basses BB et une bande de fréquences hautes BH avec une
fréquence de
séparation notée Fe ci-après, avec par exemple Fe=41(Hz. Ce filtrage est
préférentiellement un filtrage
sans délai. La taille du buffer audio définie précédemment correspond alors
préférentiellement, avec
cette fréquence Fe, maintenant à N' = N Fe/Fe.
L'étape S3, appliquée sur la bande de fréquences basses, consiste à rechercher
ensuite un point de
bouclage et un segment P correspondant à la période fondamentale (ou période
de pitch ) au sein du
buffer b(n) ré-échantillonné avec la fréquence Fe. A cet effet, on calcule
dans un exemple de
réalisation une corrélation normalisée corr(n) entre :
- un segment cible du buffer (référence CIB de la figure 3), ce segment étant
de taille Ns
comprise entre N'-Ns et N'-1 (d'une durée par exemple de 6ms), et
- un segment glissant de taille Ns qui commence à un échantillon
occupant une position entre
l'échantillon 0 et l'échantillon Ne (avec Ne>N'-Ns ; Ne correspondant pas
exemple à une
durée de 35 ms),
avec :
¨ Ns
rr(n) = n
+ 2 ¨ N s k)
CA 02899438 2015-07-24
WO 2014/118468
PCT/FR2014/050166
En référence à la figure 3, si le maximum de corrélation est trouvé pour
l'échantillon d'indice temporel
n=mc, le point de bouclage avec une période de pitch, d'indice n=pb,
correspond à l'échantillon
mc+Ns et le segment noté p(n) qui suit sur la figure 3 correspond à une
période de pitch de taille P=N' -
Ns-mc, défini entre les échantillons n=pb et n=N' -1.
5
Le segment glissant, de recherche, est antérieur au segment cible, comme
représenté sur la figure 3. En
particulier, le premier échantillon du segment cible correspond au dernier
échantillon du segment de
recherche. Si le maximum de corrélation avec le segment cible CIB est trouvé
antérieurement dans le
segment de recherche en un point d'indice mc, alors il s'écoule au moins une
période de pitch (avec
10 une même intensité de sinusoïde par exemple) entre le point d'indice
temporel mc et l'échantillon
d'indice temporel mc+P. Il s'écoule de la même manière au moins une période de
pitch entre
l'échantillon d'indice mc+Ns (point de bouclage, d'indice pb) et le dernier
échantillon du buffer N'.
Il convient de noter qu'une variante de cette réalisation consiste en une auto-
corrélation sur le buffer,
revenant à trouver une période moyenne P identifiée dans le buffer. Dans ce
cas, le segment servant
pour la synthèse comporte les P derniers échantillons du buffer. Toutefois, un
calcul d'auto-corrélation
sur un grand segment peut être complexe et nécessiter plus de ressource
informatique qu'une simple
corrélation du type décrit ci-avant.
D'ailleurs, une autre variante de cette réalisation consiste à ne pas
rechercher nécessairement le
maximum de corrélation sur tout le segment de recherche, mais à rechercher
simplement un segment
où la corrélation avec le segment cible est supérieure à un seuil choisi (par
exemple 70%). Une telle
réalisation ne donne pas précisément une seule période de pitch P (mais
possiblement plusieurs
périodes successives), mais néanmoins la complexité liée au traitement d'un
long segment de synthèse
(de plusieurs périodes de pitch) nécessite autant, voire moins de ressource,
que la recherche d'un
maximum de corrélation sur tout le segment de recherche.
Dans ce qui suit, on présume qu'une seule période de pitch P sert à la
synthèse du signal, mais il
convient de noter toutefois que le principe du traitement s'applique aussi
bien pour un segment
s'étendant sur plusieurs périodes fondamentales. Les résultats s'avèrent même
meilleurs avec plusieurs
périodes de pitch, en termes de précision sur la transformée FFT et de
richesse sur les composantes
spectrales obtenues.
CA 02899438 2015-07-24
WO 2014/118468
PCT/FR2014/050166
11
Dans le cas où des transitoires seraient présentes dans le signal audio
contenu dans le buffer (pics
d'intensité très courts temporellement, dans le signal audio), il est possible
d'adapter la zone de
recherche de corrélation, par exemple en décalant la recherche de corrélation
(en la faisant commencer
typiquement 20 ms après le début du buffer audio comme illustré à titre
d'exemple sur la figure 4, ou
en effectuant la recherche de corrélation dans une zone temporelle commençant
après la fin d'un
transitoire).
L'étape suivante S4 consiste à décomposer le segment p(n) en une somme de
sinus. Une façon
classique pour décomposer un signal en une somme de sinus consiste à calculer
la transformée de
Fourier discrète (ou DFT en anglais) du signal sur une durée correspondant à
la longueur du signal. On
obtient ainsi la fréquence, la phase et l'amplitude de chacune des composantes
sinusoïdales qui
composent le signal. Dans un mode de réalisation particulier de l'invention,
pour des raisons de
réduction de complexité, cette analyse est faite par une transformée de
Fourier rapide FFT, de taille 2^1(
(avec k supérieur ou égal à log2(P)).
Dans ce mode particulier, l'étape S4 est décomposée en trois opérations, avec,
en référence à la
figure 5:
- l'opération S41 où les échantillons du segment p(n) sont interpolés de
manière à obtenir un
segment p'(n) composé de P' échantillons avec P>=
> P , où ceil(x) est l'entier
supérieur ou égal à x (on peut par exemple et de manière non restrictive
utiliser une
interpolation linéaire ou encore de type spline cubique ) ;
- l'opération S42 avec le calcul de la transformée FFT de p'(n) : ni(k) =
FFT(p'f, ni)); et
- l'opération S43 dans laquelle, à partir de la transformée FFT, on obtient
directement les phases
0(k)et amplitudes (k) des composantes sinusoïdales, les fréquences normalisées
entre 0 et 1
étant données par:
2kPe -o
OZ
A l'étape S5 de la figure 2, les composantes sinusoïdales sont sélectionnées
de manière à ne garder
uniquement que les composantes les plus importantes. Dans un mode de
réalisation particulier, la
sélection des composantes revient à:
- sélectionner tout d'abord les amplitudes A(k) pour lesquelles A(k)>A(k-1)
et A(k)>A(k+1) avec
E
CA 02899438 2015-07-24
WO 2014/118468
PCT/FR2014/050166
12
- ensuite, parmi les amplitudes de cette première sélection, on sélectionne
les composantes, par
exemple par ordre décroissant d'amplitude, de manière à ce que l'amplitude
cumulée des pics
sélectionnés soit d'au moins x% (par exemple x=70%) de l'amplitude cumulée du
demi-spectre.
Il est aussi possible en plus, de limiter le nombre de composantes (par
exemple à 20) de manière à
rendre la synthèse moins complexe. De façon alternative, une recherche d'un
nombre prédéterminé des
pics les plus importants peut être utilisée.
Bien entendu, la méthode de sélection des composantes spectrales ne se limite
pas aux exemples
présentés ci-dessus. Elle est susceptible de variantes. Elle peut notamment se
baser sur tout critère
permettant d'identifier des composantes spectrales utiles à la synthèse du
signal (par exemple des
critères subjectifs liés au masquage, des critères liés l'harmonicité du
signal, ou autres).
L'étape suivante S6 vise une synthèse sinusoïdale. Dans un exemple de
réalisation, elle consiste à
générer un segment s(n) de longueur au moins égale à la taille d'une trame
perdue (T). Dans un mode
de réalisation particulier, une longueur égale à 2 trames (par exemple 40 ms)
est générée de manière à
pouvoir effectuer un mixage sonore de type fondu enchainé (comme une
transition) entre le signal
synthétisé (par correction de perte d'une trame) et le signal décodé à la
trame valide suivante
lorsqu'une telle trame est à nouveau reçue correctement.
Pour anticiper le ré-échantillonnage de la trame (longueur d'échantillons
notée LF), le nombre
d'échantillons à synthétiser peut être augmenté de la moitié de la taille du
filtre de ré-échantillonnage
(LF). Le signal de synthèse s(n) est calculé comme une somme des composantes
sinusoïdales
sélectionnées :
[T F
sel) = , !,A! k) mn; nli,, kt:) n + 9. (0) n E q)
Z
k =0
où k est l'indice des K composantes sélectionnées de l'étape S5. Plusieurs
méthodes classiques pour
réaliser cette synthèse sinusoïdale sont possibles.
L'étape S7 de la figure 2 consiste à injecter du bruit de manière à compenser
la perte d'énergie liée à
l'omission de certaines composantes fréquentielles dans la bande de fréquences
basses. Un mode de
réalisation particulier consiste à calculer le résidu r(n)=p(n)-s(n) entre le
segment correspondant au
pitch p(n) et le signal synthétisé s(n), avec : n e [O:;. P ¨ IL
CA 02899438 2015-07-24
WO 2014/118468
PCT/FR2014/050166
13
F
Ce résidu de taille P est répété de manière à ce qu'il atteigne une taille
2
Le signal s(n) est ensuite mixé (additionné avec éventuellement une
pondération) au signal r(n).
Bien entendu, la méthode de génération du bruit (pour obtenir un bruit de fond
naturel) n'est pas
limitée à l'exemple ci-avant et admet des variantes. Par exemple, il est
possible aussi de calculer le
résidu dans le domaine fréquentiel (en supprimant les composantes spectrales
sélectionnées du spectre
orignal) et d'obtenir un bruit de fond par transformée inverse.
Parallèlement, l'étape S8 consiste à traiter la bande des hautes fréquences
simplement en répétant le
signal. Par exemple, il peut s'agir de répéter une longueur de trame T. Dans
une réalisation plus
sophistiquée, la synthèse de la bande BH est obtenue en prenant les derniers
T' échantillons avant la
perte de trame (avec par exemple T',N/2), et en les retournant temporellement,
puis en les répétant
sans les retourner, et ainsi de suite, comme illustré sur la figure 6. Une
telle réalisation permet
avantageusement d'éviter des artefacts audibles en mettant à même niveau les
intensités en début et fin
de trames.
Dans un mode de réalisation particulier, la trame de taille T' peut être
pondérée de manière à éviter
certain artefacts lorsque les contenus sont particulièrement énergétiques dans
la bande de fréquences
hautes. La pondération (notée W sur la figure 6) peut par exemple prendre la
forme d'une demi-fenêtre
sinusoïdale de 1 ms au début et à la fin de la trame de taille T/2. Les trames
successives peuvent aussi
se recouvrir.
Dans une étape S9, le signal est synthétisé en ré-échantillonnant la bande des
basses fréquences à sa
fréquence Fc d'origine, et en l'additionnant au signal issu de la répétition
de l'étape 58 dans la bande
des fréquences hautes.
A l'étape S10, on procède à un recouvrement-addition qui permet d'assurer une
continuité entre le
signal avant la perte de trame et le signal synthétisé. Par exemple, dans le
cas d'un codage par
transformée à bas délai, on utilise pour la mise en oeuvre de cette étape S10,
les L échantillons situés
entre le début de la partie aliasée (partie repliée restante) de la
transformée MDCT et les trois-
quarts de la taille de la fenêtre (avec par exemple un axe de repliement
temporel des fenêtres comme
habituellement dans le cadre d'une transformée MDCT). En référence à la figure
7, ces échantillons
sont déjà recouverts par la fenêtre de synthèse W1 de la transformée MDCT. De
manière à pouvoir leur
CA 02899438 2015-07-24
WO 2014/118468
PCT/FR2014/050166
14
appliquer une fenêtre de recouvrement W2, les échantillons sont divisés par la
fenêtre W1 (laquelle est
déjà connue du décodeur), puis multipliés par la fenêtre W2. Le signal S(n)
synthétisé par la mise en
oeuvre des étapes Si à S9 décrites précédemment s'exprime ainsi :
W3 q.',n)
S(n) - Sfe:1/2(n) n E L - 1]
avec par exemple, et de manière non limitative, des fonctions de recouvrement
définies par:
ez(n 0,5b13
leen =
2L .1 et 11.73(n) = 1 ¨ 142.2(n). E ¨ 1]
Comme décrit précédemment, si l'on autorise un délai au niveau du décodeur,
cette durée du délai peut
être utilisée pour faire un recouvrement avec la partie synthétisée, en
utilisant toute pondération
appropriée au recouvrement-addition.
Bien entendu, la présente invention ne se limite pas à la forme de réalisation
décrite ci-avant ; elle
s'étend à d'autres variantes.
Ainsi par exemple, la séparation en bandes de fréquences hautes et basses à
l'étape S2 est optionnelle.
Dans une variante de réalisation, le signal issu du buffer (étape Si) n'est
pas séparé en deux sous-
bandes et les étapes S3 à S10 restent identiques à celles décrites ci-avant.
Néanmoins, le traitement des
composantes spectrales dans les basses fréquences seulement permet
avantageusement d'en limiter la
complexité.
L'invention peut être mise en oeuvre dans un décodeur conversationnel, dans le
cas d'une perte de
trame. Matériellement, elle peut être mise en oeuvre dans un circuit pour le
décodage, dans un terminal
de téléphonie typiquement. A cet effet, un tel circuit CIR peut comporter ou
être connecté à un
processeur PROC, comme illustré sur la figure 9, et peut comporter une mémoire
de travail MEM,
programmée avec des instructions de programme informatique selon l'invention
pour exécuter le
procédé ci-avant.
Par exemple, l'invention peut être mise en oeuvre dans un décodeur par
transformée temps réel. En
référence à la figure 8, le décodeur envoie des requêtes pour obtenir une
trame audio dans un buffer de
trames (étape 581). Si la trame est disponible (sortie OK du test), le
décodeur décode la trame (S82)
pour obtenir un signal dans le domaine transformé, opère une transformé
inverse IMDCT (S83) qui
permet alors d'obtenir des échantillons temporels aliasés , et procède à
une dernière étape S84 de
fenêtrage (par une fenêtre de synthèse) et de recouvrement pour obtenir des
échantillons temporels
CA 02899438 2015-07-24
WO 2014/118468 PCT/FR2014/050166
exempts d'aliasing qui seront ensuite envoyés à un convertisseur numérique
analogique pour
restitution.
Lorsqu'une trame est manquante (sortie KO du test), le décodeur utilise alors
le signal déjà décodé
5 ainsi que la partie aliasée de la trame précédente (étape S85), dans
le procédé de correction de perte
de trames au sens de l'invention.