WO2016005690A1 - Mise a jour des états d'un post-traitement a une fréquence d'échantillonnage variable selon la trame - Google Patents

Mise a jour des états d'un post-traitement a une fréquence d'échantillonnage variable selon la trame Download PDF

Info

Publication number
WO2016005690A1
WO2016005690A1 PCT/FR2015/051864 FR2015051864W WO2016005690A1 WO 2016005690 A1 WO2016005690 A1 WO 2016005690A1 FR 2015051864 W FR2015051864 W FR 2015051864W WO 2016005690 A1 WO2016005690 A1 WO 2016005690A1
Authority
WO
WIPO (PCT)
Prior art keywords
decoded signal
sampling frequency
frame
post
frequency
Prior art date
Application number
PCT/FR2015/051864
Other languages
English (en)
Inventor
Jérôme DANIEL
Balazs Kovesi
Original Assignee
Orange
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange filed Critical Orange
Priority to US15/325,643 priority Critical patent/US10424313B2/en
Priority to CN201580037397.4A priority patent/CN106489178B/zh
Priority to JP2017500355A priority patent/JP6607915B2/ja
Priority to KR1020177003571A priority patent/KR102271224B1/ko
Priority to EP15742373.2A priority patent/EP3167447B1/fr
Priority to ES15742373.2T priority patent/ES2686349T3/es
Publication of WO2016005690A1 publication Critical patent/WO2016005690A1/fr

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/26Pre-filtering or post-filtering
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes

Definitions

  • the present invention relates to the processing of an audiofrequency signal for its transmission or storage. More particularly, the invention relates to an update of the states of a post-processing of a decoded audio-frequency signal, when the sampling frequency varies from one signal frame to another.
  • the invention applies more particularly to the case of linear prediction decoding such as CELP ("Coded Excitation Linear Prediction") type decoding.
  • Linear prediction coded algorithms such as "Algebraic Coded Excitation” (ACELP) type codecs, are known to be suitable for speech signals and are well modeled for their production.
  • ACELP Algebraic Coded Excitation
  • sampling frequency at which the CELP coding algorithm operates is generally predetermined and identical in each coded frame; examples of sampling frequencies are:
  • s p (n) 0.5s (n - T) + 0.5i (/ z + T)
  • This processing requires a memory of the past signal whose size must cover the different possible pitch values T (to know the value s (n - T)).
  • the value of the pitch T is not known for the next frame, so in general, to cover the worst possible case, MAXPITCH + 1 samples of the decoded signal passed are memorized for the postprocessing.
  • MAXPITCH gives the maximum pitch length at the given sampling frequency, for example in general this value is 289 to 16 kHz or 231 to 12.8 kHz.
  • An additional sample is often stored and then performs a de-emphasis filtering of order 1. We will not detail here this deemphasis filtering which is not the subject of the present invention.
  • ITU-T G.722.2 the wideband input and output signal is sampled at 16 kHz but the CELP coding operates at 12.8 kHz. Note that the ITU-T G.718 and G.718 Annex C codes also work with 8 and / or 32 kHz input / output frequencies, with a 12.8 kHz CELP core.
  • the input signal is normally broadband (at 16 kHz) and the low band (0-4 kHz) is obtained by a QMF filter bank to obtain a signal sampled at 8 kHz before coding by a CELP algorithm derived from ITU-T G.729 and G.729 Annex A.
  • fs 1 and fs 2 16kHz.
  • a change in rate over time, from one frame to another may in this case cause switching between these two frequencies (fs 1 and fs 2 ) depending on the range of flow rates covered. This frequency switching between two frames can cause audible and annoying artifacts for several reasons.
  • one option is to disable post-processing over the duration of the transition frame (the frame after the internal sampling rate change). This option does not produce a desirable result in general because the noise that was post-filtered reappears abruptly on the transition frame.
  • Another option is to leave the post-processing active but by setting the memories to zero. With this method, the quality obtained is very poor.
  • Another possibility is also to consider a memory at 16 kHz as if it were at 12.8 kHz by keeping only the last 4/5 samples of this memory or conversely, to consider a memory at 12.8 kHz as if it were at 16 kHz, either by adding 1/5 of zeros at the beginning (towards the past) of this memory to have the right length, either by memorizing 20% more samples at 12.8 kHz to have enough in case of change of internal sampling frequency . The listening tests show that these solutions do not give a satisfactory quality.
  • the present invention improves the situation.
  • the method proposes a method for updating the states of a post-processing applied to a decoded audio-frequency signal.
  • the method is such that, for a current decoded signal frame, sampled at a sampling frequency different from the previous frame, it comprises the following steps:
  • the post-processing memory is adapted to the sampling frequency of the current frame that is post-processed. This technique improves post-processing quality in the transition frames between two sampling rates while minimizing the increase in complexity (computational load, ROM, RAM and PROM).
  • the interpolation is performed starting from the most recent sample of the decoded signal. passed and interpolating in the reverse chronological direction and in the case where the sampling frequency of the previous frame is lower than the sampling frequency of the current frame, the interpolation is performed starting from the oldest sample decoded signal passed and interpolating in the chronological direction.
  • This interpolation mode makes it possible to use only one storage array (of length corresponding to the maximum of the signal period for the largest sampling frequency) to record the decoded signal passed before and after resampling. Indeed, in both directions of resampling, the interpolation is adapted to the fact that from the moment when a sample of the past signal is used for an interpolation, it is no longer used for the following interpolation. It can thus be replaced by the interpolated one in the storage array.
  • the decoded signal passed, resampled is stored in the same buffer as the decoded signal passed before resampling.
  • the interpolation is of linear type.
  • the decoded signal passed is of fixed length depending on a possible maximum of speech signal period.
  • the state update method is particularly suitable in the case where the postprocessing is applied to the decoded signal on a low frequency band to decrease the low frequency noise.
  • the invention also relates to a method for decoding a current frame of an audiofrequency signal comprising a step of selecting a decoding sampling frequency, a post-processing step.
  • the process is such that in the where the preceding frame is sampled at a first sampling frequency different from a second sampling frequency of the current frame, it comprises updating the states of the post-processing according to a method as described.
  • the low-frequency processing of the decoded signal is therefore adapted to the internal sampling frequency of the decoder, the quality of this post-processing being then improved.
  • the invention relates to a device for processing a decoded audio-frequency signal, characterized in that it comprises, for a current frame of decoded signal, sampled at a sampling frequency different from the previous frame:
  • a resampling module for resampling at the sampling frequency of the current frame, by interpolation, the obtained decoded signal obtained
  • a post-processing module using the decoded signal passed resampled as a memory of the post-processing of the current frame.
  • This device has the same advantages as the method described above, which it implements.
  • the present invention also relates to an audio-frequency signal decoder comprising a module for selecting a decoding sampling frequency and at least one processing device as described.
  • the invention relates to a computer program comprising code instructions for implementing the steps of the method of updating the states as described, when these instructions are executed by a processor.
  • the invention relates to a storage medium, readable by a processor, integrated or not to the processing device, possibly removable, storing a computer program implementing a method of updating the states as described above.
  • FIG. 1 illustrates in flowchart form a method for updating the states of a post-processing according to one embodiment of the invention
  • FIG. 2 illustrates an example of resampling from 16 kHz to 12.8 kHz, according to one embodiment of the invention
  • FIG. 3 illustrates an example of resampling of, 12.8kHz to 16kHz according to one embodiment of the invention
  • FIG. 4 illustrates an exemplary decoder comprising decoding modules operating at different sampling frequencies, and a processing device according to one embodiment of the invention
  • FIG. 5 illustrates a hardware representation of a processing device according to one embodiment of the invention.
  • FIG. 1 illustrates in flowchart form the steps implemented in the process of updating the states of a post-processing according to one embodiment of the invention.
  • the method according to one embodiment of the invention applies when the internal decoding frequency CELP in the current frame (/ 3 ⁇ 4) is different from the internal frequency of CELP decoding of the previous frame (/ 3 ⁇ 4): fsi ⁇ fs 2
  • the CELP coder or decoder has two internal sampling frequencies: 12.8kHz for low bit rates and 16kHz for high bit rates. Of course, other internal sampling frequencies may be provided within the scope of the invention.
  • the process for updating the post-processing states implemented on a decoded audio-frequency signal comprises a first step E101 of recovery in a buffer buffer, also called a buffer, of a decoded signal passed, memorized during the decoding of the previous frame .
  • this decoded signal of the previous frame (Mem fsi) is at a first internal sampling frequency fsi.
  • the memorized decoded signal length is a function, for example, of the maximum value of the speech signal period (or "pitch").
  • the maximum value of the coded pitch is 289.
  • the same memory buffer of 290 samples is used for both cases, at 16 kHz all the indices from 0 to 289 are necessary, at 12.8 kHz only the indices of 58 to 289 are useful.
  • the last sample of the memory (index 289) therefore always contains the last sample of the decoded signal passed, regardless of the sampling frequency. Note that at the two sampling frequencies (12.8 kHz or 16 kHz) the memory covers the same time support, 18.125 ms. Note also that at 12.8 kHz it is also possible to use the indices from 0 to 231 and to ignore the samples from 232 to 289. Intermediate positions are also possible but from a programming point of view these solutions are not not practical. In the preferred implementation of the invention the first solution is used (indices 58 to 289).
  • this decoded past signal is resampled at the internal sampling frequency of the current frame 3 ⁇ 4.
  • This resampling is performed for example by a linear interpolation method of low complexity.
  • Other types of interpolations may be used such as cubic interpolation or "splines" for example.
  • the interpolation used makes it possible to use only one RAM storage array (a single buffer memory).
  • the figure also illustrates how these signals are stored in the buffer.
  • the samples stored at 12.8 kHz are aligned with the end of the mem buffer (whichever is preferred).
  • the numbers give the index of the location in the storage array. Empty round dotted markers of index 0 to 3 correspond to unused locations at 12.8 kHz.
  • pf5 is a table pointer (addressing) for the 16 kHz input signal
  • pf4 is a table pointer for the 12.8 kHz output signal.
  • nb_block contains the number of blocks to process in the for loop.
  • pf4 [0] is the array value pointed to by the pointer pf4
  • pf4 [-l] is the previous value and so on. It's the same for pf5.
  • the pointers pf5 and pf4 recede in steps of 5 and 4 samples respectively.
  • Part b) of Figure 2 illustrates the case where samples at 12.8 kHz are aligned with the beginning of the buffer "mem" and the locations of the index 16 to 19 are not used. In this case, as illustrated by the full arrow, interpolation must start from the oldest sample to be able to rewrite the result in the same table.
  • the empty square at 16 kHz represents the beginning of the decoded signal of the current frame. Note that the first sample of the current frame at 16 kHz is identical to that at 12.8 kHz (same time time), this is represented by an empty circle.
  • the dotted arrows give for each 16 kHz output sample the 12.8 kHz input samples from which they are interpolated in the case of linear interpolation. For the interpolation of the last output sample one must also use the first sample of the current frame at 12.8 kHz, which is well known as explained above. This dependence is illustrated by a broken arrow in FIG.
  • the figure also shows how these signals are stored in the buffer, the numbers give the index of the location in the array.
  • the samples stored at 12.8 kHz are aligned with the end of the buffer "mem" (according to the preferred implementation). Empty round dotted markers from index 0 to 3 correspond to locations not available (because not used) at 12.8 kHz
  • the interpolation is carried out starting from the oldest sample (thus that of index 0 at the output) to be able to rewrite the result of the interpolation in the same table of memory because the old value in these locations is not used to perform the following interpolations.
  • the solid arrow shows the direction of the interpolation, the numbers written in the arrow correspond to the order in which the output samples are interpolated.
  • pf4 is a table pointer for the input signal at 12.8 kHz which points to the beginning of the filter memory, this memory is stored from the nb_bloâ me sample of the tableau mem.
  • pf5 is a table pointer for the 16 kHz output signal, it points to the first element of the mem array.
  • nb_block contains the number of blocks to process.
  • nb_block-l blocks are processed in the for loop, and the last block is processed separately.
  • pf4 [0] is the array value pointed to by the pointer pf4,
  • pf4 [l] is the next value and so on. It's the same for pf5.
  • the pointers pf5 and pf4 advance in steps of 5 and 4 samples respectively.
  • the decoded signal of the current frame is stored in the syn array, syn [0] is the first sample of the current frame
  • Part b) of Figure 3 illustrates the case where the samples at 12.8 kHz are aligned with the beginning of the buffer "mem" and the locations of the index 16 to 19 are not used. In this case, as shown by the full arrow, you need to interpolate from the most recent sample to be able to rewrite the result in the same table.
  • step E102 of resampling of the memory Mem. FSI. at the frequency / 3 ⁇ 4 we obtain the memory or decoded signal passed, resampled (Mem fs2). This decoded signal passed resampled is used in step E103 as a new postprocessing memory of the current frame.
  • the post-processing is similar to that described in ITU-T Recommendation G.718.
  • FIG. 4 now describes an exemplary decoder comprising a processing device 410 in one embodiment of the invention.
  • the output signal y (n) (mono) is sampled at the frequency fs out which can take the values of 8, 16, 32 or 48 kHz.
  • the bitstream is de-multiplexed at 401 and decoded.
  • the decoder determines at 402, here according to the rate of the current frame, how often fs 1 or fs 2 decode the information from a CELP coder.
  • either the decoding module 403 for the frequency fs 1 or the decoding module 404 for the frequency 3 ⁇ 4 is implemented to decode the received signal.
  • CELP decoding at 16 kHz is not detailed here because it goes beyond the scope of the invention.
  • the output of the CELP decoder in the current frame is then post-filtered by the processing device 410 implementing the process of updating the post-processing states described with reference to FIG. 1.
  • This device comprises post-processing modules. 420 and 421 adapted to the respective sampling frequencies fsj and 3 ⁇ 4 able to carry out a low-frequency noise reduction type after-treatment, also called low-frequency post-filtering, similarly to the "bass post-filter" (BPF) of the ITU-T T G.718, using the post-processing memories resampled by the resampling module 422.
  • the processing device also comprises a resampling module 422 resampling a decoded signal passed , stored for the previous frame, by interpolation.
  • the decoded signal passed from the previous frame (Mem fsj), sampled at the frequency fsj, is resampled at the frequency s 2 to obtain a decoded past signal resampled (Mem 3 ⁇ 4) used as a post-memory. processing of the current frame.
  • fsfi used as the post-processing memory of the current frame.
  • a high band signal (resampled at the frequency fs out ) decoded by the decoding module 405 can be added at 406 to the resampled low band signal.
  • the decoder also provides for the use of additional decoding modes, such as inverse frequency transform decoding (block 430) in the case where the input signal to be encoded has been coded by a transform coder.
  • additional decoding modes such as inverse frequency transform decoding (block 430) in the case where the input signal to be encoded has been coded by a transform coder.
  • the coder analyzes the type of signal to be coded and chooses the coding technique best suited to this signal.
  • Transform coding is mainly used for musical signals that are generally badly coded by a CELP-type predictive coder.
  • FIG. 5 shows an example of a hardware embodiment of a processing device 500 according to one embodiment of the invention. This may be an integral part of an audio-frequency signal decoder or equipment receiving audio-frequency signals. It can be integrated into a communication terminal, a set-top box set-top box or a home gateway.
  • This type of device comprises a processor PROC 506 cooperating with a memory block BM having a memory storage and / or work MEM.
  • Such a device comprises an input module 501 adapted to receive audio signal frames and in particular a memorized part (Buf pre c) of a previous frame at a first sampling frequency / ⁇ .
  • It comprises an output module 502 capable of transmitting a current frame of post-processed audio frequency signal s' (n).
  • the processor PROC controls the obtaining module 503 of a decoded signal passed, stored for the previous frame. Typically, the obtaining of this decoded past signal is performed by simple reading in a memory of the buffer type, included in the memory block BM.
  • the processor also controls a resampling module 504 to re-sample by interpolation the past decoded signal obtained at 503.
  • the memory block may advantageously comprise a computer program comprising code instructions for implementing the steps of the process for updating the post-processing states in the sense of the invention, when these instructions are executed by the processor PROC, and in particular the steps of obtaining a decoded signal passed, stored for the previous frame, of resampling by interpolation of the obtained decoded signal obtained and of using the decoded signal passed resampled as a memory of the post-processing of the current frame.
  • FIG. 1 repeats the steps of an algorithm of such a computer program.
  • the computer program can also be stored on a memory medium readable by a reader of the device or downloadable in the memory space thereof.
  • the memory MEM generally records all the data necessary for the implementation of the method.
  • nb_bloc len_mem_16 / 5;
  • nb_bloc len_mem_16 / 5;
  • pf5 [1] 0.2f * pf4 [0] -f 0. .8f * pf4 [1]
  • pf5 [2] 0.4f * pf4 [1] -f O.fpf4 [2]
  • pf5 [3] 0.6f * pf4 [2] -f 0..4f * pf4 [3]
  • pf5 [4] 0.8f * pf4 [3] -f 0. .2f * syn [0]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

L'invention se rapporte à un procédé de mise à jour des états d'un post-traitement appliqué à un signal audiofréquence décodé. Le procédé est tel que, pour une trame courante de signal décodé, échantillonnée à une fréquence d'échantillonnage différente de la trame précédente, il comporte les étapes suivantes: - obtention (E101) d'un signal décodé passé, mémorisé pour la trame précédente; - ré-échantillonnage (E102) par interpolation du signal décodé passé obtenu; - utilisation du signal décodé passé ré-échantillonné comme mémoire du post-traitement (E103) de la trame courante. L'invention se rapporte également à un procédé de décodage incluant la mise à jour des états d'un post-traitement, un dispositif de traitement mettant en œuvre le procédé de mise à jour des états de post-traitement.

Description

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

Claims

REVENDICATIONS
Procédé de mise à jour des états d'un post-traitement appliqué à un signal audiofréquence décodé, caractérisé en ce que, pour une trame courante de signal décodé, échantillonnée à une fréquence d'échantillonnage différente de la trame précédente, le procédé comporte les étapes suivantes:
- obtention (E101) d'un signal décodé passé, mémorisé pour la trame précédente;
- ré-échantillonnage (E102) à la fréquence d'échantillonnage de la trame courante, par interpolation, du signal décodé passé obtenu;
- utilisation du signal décodé passé ré-échantillonné comme mémoire (E103) du posttraitement de la trame courante.
Procédé selon la revendication 1, caractérisé en ce que, dans le cas où la fréquence d'échantillonnage de la trame précédente est supérieure à la fréquence d'échantillonnage de la trame courante, l'interpolation est effectuée en partant de l'échantillon le plus récent du signal décodé passé et en interpolant dans le sens chronologique inverse et dans le cas où la fréquence d'échantillonnage de la trame précédente est inférieure à la fréquence d'échantillonnage de la trame courante, l'interpolation est effectuée en partant de l'échantillon le plus ancien du signal décodé passé et en interpolant dans le sens chronologique
Procédé selon la revendication 1 ou 2, caractérisé en ce que le signal décodé passé, rééchantillonné est mémorisé dans une même mémoire tampon que le signal décodé passé avant ré-échantillonnage.
Procédé selon l'une des revendications 1 à 3, caractérisé en ce que l'interpolation est de type linéaire.
Procédé selon la revendication 1, caractérisé en ce que le signal décodé passé est de longueur fixée en fonction d'un maximum possible de période de signal de parole.
Procédé selon l'une des revendications précédentes, caractérisé en ce que le posttraitement est appliqué au signal décodé sur une bande de fréquence basse pour diminuer le bruit basse-fréquence.
Procédé de décodage d'une trame courante d'un signal audiofréquence comportant une étape de sélection d'une fréquence d'échantillonnage de décodage, une étape de posttraitement, caractérisé en ce que, dans le cas où la trame précédente est échantillonnée à une première fréquence d'échantillonnage différente d'une deuxième fréquence d'échantillonnage de la trame courante, le procédé comporte une mise à jour des états du post-traitement selon un procédé conforme à l'une des revendications 1 à 6. 8. Dispositif de traitement d'un signal audiofréquence décodé, caractérisé en ce qu'il comporte, pour une trame courante de signal décodé, échantillonnée à une fréquence d'échantillonnage différente de la trame précédente:
- un module d'obtention (422, 503) d'un signal décodé passé, mémorisé pour la trame précédente;
- un module de ré-échantillonnage (422, 504) pour ré-échantillonner à la fréquence d'échantillonnage de la trame courante, par interpolation, le signal décodé passé obtenu;
- un module de post-traitement (420, 421, 505) utilisant le signal décodé passé ré-échantillonné comme mémoire du post-traitement de la trame courante.
9. Décodeur de signal audiofréquence caractérisé en ce qu'il comporte un module de sélection d'une fréquence d'échantillonnage de décodage et un dispositif de traitement conforme à la revendication 8. 10. Programme informatique comportant des instructions de code pour la mise en œuvre des étapes du procédé de mise à jour des états selon l'une des revendications 1 à 6, lorsque ces instructions sont exécutées par un processeur.
11. Support de stockage lisible par un processeur, sur lequel est stocké un programme informatique comprenant des instructions de code pour l'exécution des étapes du procédé de mise à jour des états selon l'une des revendications 1 à 6.
PCT/FR2015/051864 2014-07-11 2015-07-06 Mise a jour des états d'un post-traitement a une fréquence d'échantillonnage variable selon la trame WO2016005690A1 (fr)

Priority Applications (6)

Application Number Priority Date Filing Date Title
US15/325,643 US10424313B2 (en) 2014-07-11 2015-07-06 Update of post-processing states with variable sampling frequency according to the frame
CN201580037397.4A CN106489178B (zh) 2014-07-11 2015-07-06 利用根据帧的可变采样频率对后处理状态进行更新
JP2017500355A JP6607915B2 (ja) 2014-07-11 2015-07-06 フレームに基づく可変サンプリング周波数による後処理状態の更新
KR1020177003571A KR102271224B1 (ko) 2014-07-11 2015-07-06 프레임에 따른 가변 샘플링 주파수에 의한 후처리 상태들의 업데이트
EP15742373.2A EP3167447B1 (fr) 2014-07-11 2015-07-06 Mise a jour des états d'un post-traitement a une fréquence d'échantillonnage variable selon la trame
ES15742373.2T ES2686349T3 (es) 2014-07-11 2015-07-06 Actualización de los estados de un postratamiento a una frecuencia de muestreo variable según la trama

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1456734A FR3023646A1 (fr) 2014-07-11 2014-07-11 Mise a jour des etats d'un post-traitement a une frequence d'echantillonnage variable selon la trame
FR1456734 2014-07-11

Publications (1)

Publication Number Publication Date
WO2016005690A1 true WO2016005690A1 (fr) 2016-01-14

Family

ID=52016692

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2015/051864 WO2016005690A1 (fr) 2014-07-11 2015-07-06 Mise a jour des états d'un post-traitement a une fréquence d'échantillonnage variable selon la trame

Country Status (8)

Country Link
US (1) US10424313B2 (fr)
EP (1) EP3167447B1 (fr)
JP (1) JP6607915B2 (fr)
KR (1) KR102271224B1 (fr)
CN (1) CN106489178B (fr)
ES (1) ES2686349T3 (fr)
FR (1) FR3023646A1 (fr)
WO (1) WO2016005690A1 (fr)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3023646A1 (fr) * 2014-07-11 2016-01-15 Orange Mise a jour des etats d'un post-traitement a une frequence d'echantillonnage variable selon la trame
EP2988300A1 (fr) * 2014-08-18 2016-02-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Commutation de fréquences d'échantillonnage au niveau des dispositifs de traitement audio
CN111223491B (zh) * 2020-01-22 2022-11-15 深圳市倍轻松科技股份有限公司 一种提取音乐信号主旋律的方法、装置及终端设备

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774452A (en) * 1995-03-14 1998-06-30 Aris Technologies, Inc. Apparatus and method for encoding and decoding information in audio signals
JP3653826B2 (ja) * 1995-10-26 2005-06-02 ソニー株式会社 音声復号化方法及び装置
US6070137A (en) * 1998-01-07 2000-05-30 Ericsson Inc. Integrated frequency-domain voice coding using an adaptive spectral enhancement filter
JP4135242B2 (ja) * 1998-12-18 2008-08-20 ソニー株式会社 受信装置及び方法、通信装置及び方法
AU2006208530B2 (en) * 2005-01-31 2010-10-28 Microsoft Technology Licensing, Llc Method for generating concealment frames in communication system
KR100813259B1 (ko) * 2005-07-13 2008-03-13 삼성전자주식회사 입력신호의 계층적 부호화/복호화 장치 및 방법
WO2008072701A1 (fr) * 2006-12-13 2008-06-19 Panasonic Corporation Post-filtre et procédé de filtrage
CN1975861B (zh) * 2006-12-15 2011-06-29 清华大学 声码器基音周期参数抗信道误码方法
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8401865B2 (en) * 2007-07-18 2013-03-19 Nokia Corporation Flexible parameter update in audio/speech coded signals
US9788018B2 (en) * 2008-06-30 2017-10-10 Microsoft Technology Licensing, Llc Error concealment techniques in video decoding
US8600737B2 (en) * 2010-06-01 2013-12-03 Qualcomm Incorporated Systems, methods, apparatus, and computer program products for wideband speech coding
WO2012020090A1 (fr) * 2010-08-12 2012-02-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Rééchantillonnage de signaux de sortie de codecs audio basés qmf
US8620660B2 (en) * 2010-10-29 2013-12-31 The United States Of America, As Represented By The Secretary Of The Navy Very low bit rate signal coder and decoder
FR2992766A1 (fr) * 2012-06-29 2014-01-03 France Telecom Attenuation efficace de pre-echos dans un signal audionumerique
CN109448745B (zh) * 2013-01-07 2021-09-07 中兴通讯股份有限公司 一种编码模式切换方法和装置、解码模式切换方法和装置
FR3001593A1 (fr) * 2013-01-31 2014-08-01 France Telecom Correction perfectionnee de perte de trame au decodage d'un signal.
FR3015754A1 (fr) * 2013-12-20 2015-06-26 Orange Re-echantillonnage d'un signal audio cadence a une frequence d'echantillonnage variable selon la trame
FR3023646A1 (fr) * 2014-07-11 2016-01-15 Orange Mise a jour des etats d'un post-traitement a une frequence d'echantillonnage variable selon la trame

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"ISO/IEC 14496-3:2001(E) - Subpart 3: Speech Coding - CELP", INTERNATIONAL STANDARD ISO/IEC, XX, XX, 1 January 2001 (2001-01-01), pages 1 - 172, XP007902532 *
"ITU-T G.718 - Frame error robust narrow-band and wideband embedded variable bit-rate coding of speech and audio from 8-32 kbit/s", 30 June 2008 (2008-06-30), XP055087883, Retrieved from the Internet <URL:http://www.itu.int/rec/T-REC-G.718-200806-I> [retrieved on 20131112] *
C. LAFLAMME ET AL.: "wideband speech coding technique based on algebraic CELP", ICASSP, 1991
G. ROY; P. KABAL: "Wideband CELP speech coding at 16 kbits/sec", ICASSP, 1991

Also Published As

Publication number Publication date
CN106489178B (zh) 2019-05-07
CN106489178A (zh) 2017-03-08
US20170148461A1 (en) 2017-05-25
FR3023646A1 (fr) 2016-01-15
EP3167447B1 (fr) 2018-06-06
KR102271224B1 (ko) 2021-06-29
EP3167447A1 (fr) 2017-05-17
JP2017521714A (ja) 2017-08-03
JP6607915B2 (ja) 2019-11-20
KR20170028988A (ko) 2017-03-14
US10424313B2 (en) 2019-09-24
ES2686349T3 (es) 2018-10-17

Similar Documents

Publication Publication Date Title
EP2867893B1 (fr) Atténuation efficace de pré-échos dans un signal audionumérique
EP2080195B1 (fr) Synthèse de blocs perdus d&#39;un signal audionumérique
EP3020043B1 (fr) Facteur d&#39;échelle optimisé pour l&#39;extension de bande de fréquence dans un décodeur de signaux audiofréquences
WO2015197989A1 (fr) Ré-échantillonnage par interpolation d&#39;un signal audio pour un codage /décodage à bas retard
EP2277172A1 (fr) Dissimulation d&#39;erreur de transmission dans un signal audionumerique dans une structure de decodage hierarchique
EP3330964B1 (fr) Ré-échantillonnage d&#39;un signal audio pour un codage /décodage à bas retard
EP3103116B1 (fr) Extension ameliorée de bande de fréquence dans un décodeur de signaux audiofréquences
WO2014118468A1 (fr) Correction perfectionnée de perte de trame au décodage d&#39;un signal
EP3084959B1 (fr) Ré-échantillonnage d&#39;un signal audio cadencé à une fréquence d&#39;échantillonnage variable selon la trame
EP2936488B1 (fr) Atténuation efficace de pré-échos dans un signal audionumérique
FR3007563A1 (fr) Extension amelioree de bande de frequence dans un decodeur de signaux audiofrequences
EP3167447B1 (fr) Mise a jour des états d&#39;un post-traitement a une fréquence d&#39;échantillonnage variable selon la trame
EP2347411B1 (fr) Attenuation de pre-echos dans un signal audionumerique
EP2005424A2 (fr) Procede de post-traitement d&#39;un signal dans un decodeur audio
FR2783651A1 (fr) Dispositif et procede de filtrage d&#39;un signal de parole, recepteur et systeme de communications telephonique
WO2014009657A1 (fr) Traitement d&#39;amelioration de la qualite des signaux audiofrequences

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15742373

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017500355

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 15325643

Country of ref document: US

ENP Entry into the national phase

Ref document number: 20177003571

Country of ref document: KR

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2015742373

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015742373

Country of ref document: EP