EP3167447B1 - Update of post-processing states with variable sampling frequency according to the frame - Google Patents

Update of post-processing states with variable sampling frequency according to the frame Download PDF

Info

Publication number
EP3167447B1
EP3167447B1 EP15742373.2A EP15742373A EP3167447B1 EP 3167447 B1 EP3167447 B1 EP 3167447B1 EP 15742373 A EP15742373 A EP 15742373A EP 3167447 B1 EP3167447 B1 EP 3167447B1
Authority
EP
European Patent Office
Prior art keywords
post
sampling frequency
decoded signal
processing
signal
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
EP15742373.2A
Other languages
German (de)
French (fr)
Other versions
EP3167447A1 (en
Inventor
Jérôme DANIEL
Balazs Kovesi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
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 SA filed Critical Orange SA
Publication of EP3167447A1 publication Critical patent/EP3167447A1/en
Application granted granted Critical
Publication of EP3167447B1 publication Critical patent/EP3167447B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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 OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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 OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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 OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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 codecs such as "Algebraic Coded Excitation” (ACELP) codecs, are known to be suitable for speech signals and are well modeled for production.
  • ACELP Algebraic Coded Excitation
  • the described technique uses a split in two frequency bands, low band and high band.
  • An adaptive filtering is applied on the low band, determined to concern the frequencies lower than the first harmonics of the synthesized signal.
  • This adaptive filtering is thus parameterized by the period T of the speech signal, called "pitch".
  • This processing requires a memory of the past signal whose size must cover the different possible values of pitch T (to know the value ⁇ ( nT )) .
  • the pitch value 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 stored for post-processing.
  • 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.
  • the sampling frequency can be selected adaptively in time and variable from one frame to another.
  • One example is the MPEG-4 CELP codec of ISO / IEC 14496-3: 2001, which can operate at sampling rates of 8 and 16 kHz.
  • 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 post-processing memory is adapted to the sampling frequency of the current frame that is post-processed. This technique improves the quality of the post-processing in the transition frames between two sampling frequencies 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. This type of interpolation is of low complexity.
  • 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 post-processing 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 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.
  • the figure 1 illustrates in flow chart form the steps implemented in the process of updating the states of a post-processing according to one embodiment of the invention.
  • the frame preceding the current frame to be processed is at a first sampling frequency fs 1 while the current frame is at a second sampling frequency fs 2 .
  • the method according to one embodiment of the invention applies when the internal decoding frequency CELP in the current frame ( fs 2 ) is different from the internal frequency of CELP decoding of the previous frame ( fs 1 ): fs 1 ⁇ 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 fs 1 ) is at a first internal sampling frequency fs 1 .
  • 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.
  • the first solution is used (indices 58 to 289).
  • this decoded past signal is resampled at the internal sampling frequency of the current frame fs 2 .
  • 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).
  • FIG. 2 The case of a change in the internal sampling frequency from 16 kHz to 12.8 kHz is illustrated in figure 2 .
  • the lengths shown here are reduced to simplify the description.
  • the 12.8 kHz empty circle on the right represents the beginning of the decoded signal of the current frame.
  • the dotted arrows give for each 12.8 kHz output sample the 16 kHz input samples from which they are interpolated in the case of linear interpolation.
  • 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.
  • C language style code instructions for performing this interpolation is given in Appendix 1, where pt5 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 [-1] 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.
  • the empty square at 16 kHz represents the beginning of the decoded signal of the current frame.
  • 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 on the figure 3 .
  • 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.
  • index of the first sample at 12.8 kHz in the memory "mem" (4 on the figure 3 ) is equal to the number of blocks to be processed, nb_block, because between the 2 frequencies there is a shift sample per block.
  • pf4 is a table pointer for the 12.8 kHz input signal that points to the beginning of the filter memory, this memory is stored from the nb_blc th sample of the mem array .
  • 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-1 blocks are processed in the for loop , then the last block is processed separately.
  • pf4 [0] is the array value pointed to by the pointer pf4, pf4 [1] is the next value and so on. It's the same for pt5. At the end of each iteration 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
  • step E102 of resampling of the memory Mem . fs 1 . at the frequency fs 2 the memory or decoded signal passed, resampled (Mem fs2 ) is obtained .
  • 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.
  • the figure 4 describes now an example of a 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. Depending on the sampling frequency, either the decoding module 403 for the frequency fs 1 or the decoding module 404 for the frequency fs 2 is used to decode the received signal.
  • the implementation of 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 method of updating the post-processing states described with reference to FIG. figure 1 .
  • This device comprises post-processing modules 420 and 421 adapted to the respective sampling frequencies fs 1 and fs 2 capable of performing a post-processing of low-frequency noise reduction type, also called low-frequency post-filtering, similarly to the "Bass post-filter" (BPF) of the ITU-T G.718 codec, using the post-processing memories resampled by the resampling module 422.
  • BPF Bases post-filter
  • the processing device also comprises a module of resampling 422 resampling a decoded signal passed, stored for the previous frame, by interpolation.
  • the decoded signal passed from the previous frame (Mem fs 1 )
  • sampled at the frequency f 1 is resampled at the frequency f 2 to obtain a decoded past signal resampled (Mem fs 2 ) used as memory post processing of the current frame.
  • the decoded signal passed from the previous frame (Mem Fs 2 ) sampled at the frequency fs 2 is resampled at the frequency fs 1 to obtain a decoded signal passed resampled (Mem fs 1 ) used as memory. post processing 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.
  • the figure 5 represents 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.
  • a device comprises an input module 501 adapted to receive audio signal frames and in particular a stored part (Buf prec ) of a previous frame at a first sampling frequency fs 1 .
  • 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.
  • the description of the figure 1 takes 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.

Description

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

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 Prediction"). Les codecs par prédiction linéaire, tels que les codecs de type ACELP (pour "Algebraic Coded Excitation"), sont réputés adaptés aux signaux de parole, dont ils modélisent bien la production.The invention applies more particularly to the case of linear prediction decoding such as CELP ("Coded Excitation Linear Prediction") type decoding. Linear prediction codecs, such as "Algebraic Coded Excitation" (ACELP) codecs, are known to be suitable for speech signals and are well modeled for 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 .
The sampling frequency at which the CELP coding algorithm operates is generally predetermined and identical in each coded frame; examples of sampling frequencies are:
  • 8 kHz in CELP coders defined in ITU-T G.729, G.723.1, G.729.1
  • 12.8 kHz for the CELP portion of 3GPP AMR-WB encoders, ITU-T G.722.2, G.718
  • 16 kHz in the encoders described for example in the articles of G. Roy, P. Kabal, "Wideband CELP speech coding at 16 kbit / sec", ICASSP 1991 , and of 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 codec 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 post-traitement est surtout important pour les voix de femme aigues où la distance entre les harmoniques est plus grande et le bruit moins masqué.Note also that in the case of a codec as described in ITU-T Recommendation G.718, a signal improvement processing module decoded by low-frequency noise reduction is present. It is called "bass post-filter" in English (BPF) or "low-frequency post-filtering". It applies to the same sampling rate as CELP decoding. The purpose of this post-processing is to eliminate the low-frequency noise between the first harmonics of a voiced speech signal. This post-processing is especially important for high-pitched female voices where the distance between harmonics is greater and the sound less masked.

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-filtering" 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.Despite the fact that the usual name of this post-processing in the field of coding is "post-filtering low frequency", it is not, in fact, a simple filtering but rather a post-processing enough complex which usually contains modules of "Pitch Tracking", "Pitch Enhancer"("PitchEnhancer" in English), "Low-pass filtering"("Low-passfiltering") or "LP-filtering" in English) and add-on modules. This type of post-processing is described in detail for example in Recommendation G.718 (06/2008) "Frame error robust narrowband and wideband embedded bit-rate variable coding of speech and audio from 8-32 kbit / s", chapter 7.14.1. The block diagram of this post-processing is illustrated in Figure 29 of this same 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é f (n) est obtenu comme s ^ f n = 1 α s ^ n + α s p n

Figure imgb0001
s p n = 0.5 s ^ n T + 0.5 s ^ n + T
Figure imgb0002
We only recall here the principles and elements necessary for the understanding of this document. The described technique uses a split in two frequency bands, low band and high band. An adaptive filtering is applied on the low band, determined to concern the frequencies lower than the first harmonics of the synthesized signal. This adaptive filtering is thus parameterized by the period T of the speech signal, called "pitch". Indeed, the equations of the operations made by the "pitch enhancement" module are as follows: the signal with a reinforced pitch ŝ f ( n ) is obtained as s ^ f not = 1 - α s ^ not + α s p not
Figure imgb0001
or s p not = 0.5 s ^ not - T + 0.5 s ^ not + T
Figure imgb0002

Et (n) est le signal décodé.And ŝ ( n ) is the decoded signal.

Ce traitement requiert une mémoire du signal passé dont la taille doit couvrir les différentes valeurs possibles de pitch T (pour connaitre la valeur (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 post-traitement. 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.This processing requires a memory of the past signal whose size must cover the different possible values of pitch T (to know the value ŝ ( nT )) . The pitch value 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 stored for post-processing. 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.

Lorsque la fréquence d'échantillonnage du signal à l'entrée ou en sortie du codec n'est pas identique à la fréquence interne de codage CELP, un ré-échantillonnage est mis en oeuvre. Par exemple :

  • Dans les codecs 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 codecs 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 coeur CELP à 12.8 kHz.
  • Dans le codec 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 codecs UIT-T G.729 et G.729 Annexe A.
When the sampling frequency of the signal at the input or at the output of the codec is not identical to the internal coding frequency CELP, resampling is implemented. For example :
  • In 3GPP AMR-WB, ITU-T G.722.2 codecs, the wideband input and output signal is sampled at 16 kHz but the CELP coding operates at 12.8 kHz. Note that ITU-T G.718 and G.718 Annex C codecs also operate with 8 and / or 32 kHz input / output frequencies, with a 12.8 kHz CELP core.
  • In the ITU-T G.729.1 codec, 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 sampled signal at 8 kHz before coding by a CELP algorithm derived from ITU-T G.729 and G.729 codecs Annex A.

On s'intéresse ici à une catégorie de codecs 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. Le codec MPEG-4 CELP de la norme ISO/IEC 14496-3:2001, susceptible de fonctionner aux fréquences d'échantillonnage de 8 et 16 kHz, en est un exemple. En général, pour une gamme de « bas » débits, le codeur CELP fonctionnera à une fréquence d'échantillonnage moindre, par exemple fs 1 =12,8kHz et pour une gamme de débits plus élevés, le codeur fonctionnera à une fréquence supérieure, par exemple fs 2=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 (fs 1 et fs 2) 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.We are interested here in a category of codecs supporting at least two internal sampling frequencies, the sampling frequency can be selected adaptively in time and variable from one frame to another. One example is the MPEG-4 CELP codec of ISO / IEC 14496-3: 2001, which can operate at sampling rates of 8 and 16 kHz. In general, for a range of "Low" rates, the CELP encoder will operate at a lower sampling rate, for example fs 1 = 12.8kHz and for a higher rate range, the encoder will operate at a higher frequency, for example 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.

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é.One reason for these artifacts is that internal decoding frequency switching prevents low-frequency post-filtering from operating at least in the first frame after switching because the post-processing memory (i.e. the synthesized signal passed) is at a different sampling frequency of the newly synthesized signal.

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.To remedy this problem, 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.

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

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

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.There is therefore a need to find a better solution to avoid a break in the post-processing in case of change of sampling frequency from one frame to another.

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.
The present invention improves the situation.
For this purpose, it 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:
  • obtaining a decoded past signal stored for the previous frame;
  • resampling at the sampling frequency of the current frame, by interpolation, of the obtained decoded signal obtained;
  • use of the decoded signal passed resampled as the post-processing memory of the current frame.

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).Thus, the post-processing memory is adapted to the sampling frequency of the current frame that is post-processed. This technique improves the quality of the post-processing in the transition frames between two sampling frequencies while minimizing the increase in complexity (computational load, ROM, RAM and 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.The various particular embodiments mentioned below may be added independently or in combination with each other, to the steps of the resampling method defined above.

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.In a particular embodiment, in the case where the sampling frequency of the preceding frame is greater than the sampling frequency of the current frame, 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.

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

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.Thus, in an advantageous embodiment, the decoded signal passed, resampled is stored in the same buffer as the decoded signal passed before resampling.

On optimise ainsi l'utilisation de la mémoire RAM du dispositif mettant en oeuvre ce procédé.This optimizes the use of the RAM memory of the device implementing this method.

Dans un mode particulier de réalisation l'interpolation est de type linéaire. Ce type d'interpolation est de faible complexité.In a particular embodiment, the interpolation is of linear type. This type of interpolation is of low complexity.

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.For efficient implementation, the decoded signal passed is of fixed length depending on a possible maximum of speech signal period.

Le procédé de mise à jour des états est particulièrement adapté au cas où le post-traitement est appliqué au signal décodé sur une bande de fréquence basse pour diminuer le bruit basse-fréquence.The state update method is particularly suitable in the case where the post-processing is applied to the decoded signal on a low frequency band to decrease the low-frequency noise.

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

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

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 oeuvre.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 module for obtaining a decoded signal passed, stored for 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 the post-processing memory of the current frame.
This device has the same advantages as the method described above, which it implements.

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

L'invention vise un programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de mise à jour des états tel que décrit, lorsque ces instructions sont exécutées par un processeur.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.

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 oeuvre un procédé de mise à jour des états tel que décrit précédemment.Finally, 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.

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.
Other features and advantages of the invention will appear more clearly on reading the following description, given solely by way of nonlimiting example, and with reference to the appended drawings, in which:
  • the figure 1 illustrates in flowchart form a method of updating the states of a post-processing according to an embodiment of the invention;
  • the figure 2 illustrates an example of resampling from 16kHz to 12.8kHz, according to an embodiment of the invention;
  • the figure 3 illustrates an example of resampling of, 12.8kHz to 16kHz according to one embodiment of the invention;
  • the figure 4 illustrates an example of a decoder comprising decoding modules operating at different sampling rates, and a processing device according to one embodiment of the invention; and
  • the figure 5 illustrates a hardware representation of a processing device according to an embodiment of the invention.

La figure 1 illustre sous forme d'organigramme les étapes mises en oeuvre 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 fs1 alors que la trame courante est à une deuxième fréquence d'échantillonnage fs 2. 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 (fs 2) est différente de la fréquence interne de décodage CELP de la trame précédente (fs1 ): fs1 ≠ fs2
The figure 1 illustrates in flow chart form the steps implemented in the process of updating the states of a post-processing according to one embodiment of the invention.
We are here in the case where the frame preceding the current frame to be processed is at a first sampling frequency fs 1 while the current frame is at a second sampling frequency fs 2 . In other words, in an application related to decoding, the method according to one embodiment of the invention applies when the internal decoding frequency CELP in the current frame ( fs 2 ) is different from the internal frequency of CELP decoding of the previous frame ( fs 1 ): fs 1 ≠ fs 2

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.In the embodiment described here, 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.

Le procédé de mise à jour des états de post-traitement mis en oeuvre 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. fs1 ) est à une première fréquence d'échantillonnage interne fs 1.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 . As previously mentioned, this decoded signal of the previous frame (Mem fs 1 ) is at a first internal sampling frequency fs 1 .

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.The memorized decoded signal length is a function, for example, of the maximum value of the speech signal period (or "pitch").

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.For example, at 16 kHz sampling frequency the maximum value of the coded pitch is 289. The length of the memorized decoded signal is then len_mem_16 = 290 samples.

Pour une fréquence interne à 12.8 kHz le signal décodé mémorisé a une longueur de len_mem_12=(290/5)*4 = 232 échantillons.For an internal frequency at 12.8 kHz the memorized decoded signal has a length of len_mem_12 = (290/5) * 4 = 232 samples.

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.To optimize the RAM memory, 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.

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).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).

A l'étape E102, ce signal décodé passé est ré-échantillonné à la fréquence d'échantillonnage interne de la trame courante fs 2. 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.In step E102, this decoded past signal is resampled at the internal sampling frequency of the current frame fs 2 . 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.

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).In a particular advantageous mode, the interpolation used makes it possible to use only one RAM storage array (a single buffer memory).

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=20 échantillons à 16 kHz (marqueurs carrés pleins) et de len_mem_12=16 é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.The case of a change in the internal sampling frequency from 16 kHz to 12.8 kHz is illustrated in figure 2 . The lengths shown here are reduced to simplify the description. In this figure the length of the memory marked "mem" is len_mem_16 = 20 samples at 16 kHz (full square markers) and len_mem_12 = 16 samples at 12.8 kHz (full round markers). The 12.8 kHz empty circle on the right represents the beginning of the decoded signal of the current frame. The dotted arrows give for each 12.8 kHz output sample the 16 kHz input samples from which they are interpolated in the case of linear interpolation.

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.The figure also illustrates how these signals are stored in the buffer. In part a), 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.

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.It can be observed that by interpolating from the most recent sample (ie that of the index 19 in the figure) and interpolating in the reverse chronological direction, the result can be rewritten in the same table. because the old value of this location is no longer used for the next interpolation. 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.

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 / 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,
pt5 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-1). 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[-1] 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.
We also see that the interpolation weights are repeated periodically, in steps of 5 input samples or 4 output samples. Thus, in a particular embodiment, it is possible to interpolate in blocks of 5 input samples and 4 output samples. There is thus nb_bloc = len_mem_16 / 5 = len_mem_12 / 4 blocks to be treated.
As an illustration, an example of C language style code instructions for performing this interpolation is given in Appendix 1,
where pt5 is a table pointer (addressing) for the 16 kHz input signal, pf4 is a table pointer for the 12.8 kHz output signal. At first the two point to the same place, at the end of the table mem of length len_mem_16 (the indices used are from 0 to len_mem_16- 1) . 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 [-1] is the previous value and so on. It's the same for pf5. At the end of each iteration the pointers pf5 and pf4 recede in steps of 5 and 4 samples respectively.
With this solution the increase in complexity (number of operations, PROM, ROM) is very low and the allocation of a new RAM array is not necessary.

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.Part b.) Of the figure 2 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 illustrated by the full arrow, interpolation must start from the oldest sample to be able to rewrite the result in the same table.

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=20 échantillons à 16 kHz (marqueurs carrés pleins) et len_mem_12=16 é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.In the same way, figure 3 illustrates the case of changing the internal sampling frequency from 12.8 kHz to 16 kHz, again with reduced lengths to simplify the description: len_mem_16 = 20 samples at 16 kHz (full square markers) and len_mem_12 = 16 samples at 12.8 kHz ( full round markers). 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 on the 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 kHzThe figure also shows how these signals are stored in the buffer, the numbers give the index of the location in the array. In part a.) 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

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.We can observe that this time, 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.

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 = len_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.We also see that the interpolation weight repeats periodically in steps of 4 input samples or 5 output samples. So it is advantageous to proceed block interpolation of 4 input samples and 5 output samples. So there is always nb_bloc = len_mem_16 / 5 = l en_mem_12 / 4 blocks to process, except this time, the last block is special because it also uses the first value of the current frame. It is also interesting to observe that the index of the first sample at 12.8 kHz in the memory "mem" (4 on the figure 3 ) is equal to the number of blocks to be processed, nb_block, because between the 2 frequencies there is a shift sample per block.

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 trame courante noté syn[0].
As an illustration, an example of C language style code instructions is given in Appendix 2 to perform this interpolation:
The last block is treated separately because it also depends on the first sample of the current frame noted 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_blc è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-1 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[1] est la valeur suivante et ainsi de suite. C'est la même chose pour pt5. 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 couranteIn analogy with the previous case, pf4 is a table pointer for the 12.8 kHz input signal that points to the beginning of the filter memory, this memory is stored from the nb_blc th sample of the mem array . 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-1 blocks are processed in the for loop , then the last block is processed separately. pf4 [0] is the array value pointed to by the pointer pf4, pf4 [1] is the next value and so on. It's the same for pt5. At the end of each iteration 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

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.With this solution the increase in complexity (number of operations, PROM, ROM) is very low and the allocation of a new RAM array is not necessary.

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.Part b.) Of the 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.

On revient à présent à la figure 1. Après l'étape E102 de ré-échantillonnage de la mémoire Mem. fs1. à la fréquence fs2 , 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.We are now back to figure 1 . After step E102 of resampling of the memory Mem . fs 1 . at the frequency fs 2 , the memory or decoded signal passed, resampled (Mem fs2 ) is obtained . This decoded signal passed resampled is used in step E103 as a new postprocessing memory of the current frame.

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 connaitre les valeurs (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.In a particular embodiment, the post-processing is similar to that described in ITU-T Recommendation G.718. The memory of the decoded signal passed resampled is used here to know the values ŝ ( nT ) for n = 0 ... T-1 as described above as a reminder of the "bass-post-filter" technique of 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.The figure 4 describes now an example of a 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.

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 fs 1 ou fs 2 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 fs 1 soit le module de décodage 404 pour la fréquence fs 2 est mis en oeuvre pour décoder le signal reçu.For each received frame, 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. Depending on the sampling frequency, either the decoding module 403 for the frequency fs 1 or the decoding module 404 for the frequency fs 2 is used to decode the received signal.

Le décodeur CELP fonctionnant à la fréquence fs 1 = 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 1/Â 1(z).The CELP decoder operating at the frequency fs 1 = 12.8 kHz (block 403) is a multi-bit rate extension of the ITU-T G.718 decoding algorithm initially defined between 8 and 32 kbit / s. In particular it includes the decoding of the CELP excitation and a linear prediction synthesis filter 1 / A 1 (z).

Le décodeur CELP fonctionnant à la fréquence fs 2 = 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 oeuvre du décodage CELP à 16 kHz n'est pas détaillée ici car elle dépasse le cadre de l'invention.
The CELP decoder operating at the frequency fs 2 = 16 kHz (block 404) is a multi-rate 16 kHz extension of the ITU-T G.718 decoding algorithm originally defined between 8 and 32 kbit / s and at 12 kHz. , 8 kHz.
The implementation of CELP decoding at 16 kHz is not detailed here because it goes beyond the scope of the 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 fs 1 à la fréquence fs 2 . We are not interested here in the problem of updating the states of the CELP decoder during a switching of the frequency fs 1 to the frequency fs 2 .

La sortie du décodeur CELP dans la trame courante est ensuite post-filtrée par le dispositif de traitement 410 mettant en oeuvre le procédé de mise à jour des états de post-traitement 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 fs1 et fs2 aptes à effectuer un post-traitement de type diminution du bruit basse fréquence encore appelé post-filtrage basse fréquence, de façon similaire au « bass post-filter » (BPF) du codec 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. fs1 ), échantillonné à la fréquence fs1 est ré-échantillonné à la fréquence fs2 pour obtenir un signal décodé passé ré-échantillonné (Mem. fs2 ) utilisé comme mémoire du post-traitement de la trame courante.The output of the CELP decoder in the current frame is then post-filtered by the processing device 410 implementing the method of updating the post-processing states described with reference to FIG. figure 1 . This device comprises post-processing modules 420 and 421 adapted to the respective sampling frequencies fs 1 and fs 2 capable of performing a post-processing of low-frequency noise reduction type, also called low-frequency post-filtering, similarly to the "Bass post-filter" (BPF) of the ITU-T G.718 codec, using the post-processing memories resampled by the resampling module 422. Indeed, the processing device also comprises a module of resampling 422 resampling a decoded signal passed, stored for the previous frame, by interpolation. Thus, the decoded signal passed from the previous frame (Mem fs 1 ), sampled at the frequency f 1 is resampled at the frequency f 2 to obtain a decoded past signal resampled (Mem fs 2 ) used as memory post processing of the current frame.

Inversement, le signal décodé passé de la trame précédente (Mem. Fs2 ), échantillonné à la fréquence fs2 est ré-échantillonné à la fréquence fs1 pour obtenir un signal décodé passé ré-échantillonné (Mem. fs1 ) utilisé comme mémoire du post-traitement de la trame courante.Conversely, the decoded signal passed from the previous frame (Mem Fs 2 ) sampled at the frequency fs 2 is resampled at the frequency fs 1 to obtain a decoded signal passed resampled (Mem fs 1 ) used as memory. post processing of the current frame.

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 fs 1 à fsout, en 411, soit un ré-échantillonnage de fs 2 à fsout en 412.The signal post-processed by the processing device 410 is then resampled at the output frequency fs out , by the resampling modules 411 and 412, with for example fs out = 32 kHz. This amounts to either resampling from fs 1 to fs out at 411, or resampling from fs 2 to fs out at 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.In variants, other post-processing operations (high-pass filtering, etc.) may be used in addition to or instead of blocks 420 and 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é.According to the output frequency fs out , 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.

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.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. Indeed, 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.

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.The figure 5 represents 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.

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 fs 1 .
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 stored part (Buf prec ) of a previous frame at a first sampling frequency fs 1 .

Il comporte un module de sortie 502 apte à transmettre une trame courante de signal audio fréquence post-traité s'(n).It comprises an output module 502 capable of transmitting a current frame of post-processed audio frequency signal 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.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.

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.It also controls a post-processing module 505 using the decoded signal passed resampled as a post-processing memory to effect a post-processing of the current frame.

Le bloc mémoire peut avantageusement comporter un programme informatique comportant des instructions de code pour la mise en oeuvre 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.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.

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.Typically, the description of the figure 1 takes 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.

La mémoire MEM enregistre de manière générale, toutes les données nécessaires à la mise en oeuvre du procédé.The memory MEM generally records all the data necessary for the implementation of the method.

ANNEXE 1 :ANNEX 1 :

        pf4 = &mem[len_mem_16-1];
 pf5 = pf4;
 nb_bloc = len_mem_16/ 5;
 for (c=0; c<nb_bloc; c++)
 {
    pf4[0] = 0.75f * pf5[0] + 0.25f * pf5[-1];
    pf4[-1] = 0.50f * pf5[-1] + 0.50f * pf5[-2];
    pf4[-2] = 0.25f * pf5[-2] + 0.75f * pf5[-3];
    pf4[-3] = pf5[-4];
    pf5 -= 5;
    pf4 -= 4;
 } pf4 = & mem [len_mem_16-1];
 pf5 = pf4;
 nb_bloc = len_mem_16 / 5;
 for (c = 0; c <nb_block; c ++)
 {
    pf4 [0] = 0.75f * pf5 [0] + 0.25f * pf5 [-1];
    pf4 [-1] = 0.50f * pf5 [-1] + 0.50f * pf5 [-2];
    pf4 [-2] = 0.25f * pf5 [-2] + 0.75f * pf5 [-3];
    pf4 [-3] = pf5 [-4];
    pf5 - = 5;
    pf4 - = 4;
 }
    
ANNEXE 2 :APPENDIX 2:

           nb_bloc = len_mem_16 / 5;
    pf4 = & mem[nb_bloc];
    pf5 = &mem[0];
    for (c=0; c< nb_bloc-1; c++)
    {
       pf5[0] = pf4[0];
       pf5[1] = 0.2f * pf4[0] + 0.8f * pf4[1];
       pf5[2] = 0.4f * pf4[1] + 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];
    pf5[1] = 0.2f * pf4[0] + 0.8f * pf4[1];
    pf5[2] = 0.4f * pf4[1] + 0.6f * pf4[2];
    pf5[3] = 0.6f * pf4[2] + 0.4f * pf4[3];
    pf5[4] = 0.8f * pf4[3] + 0.2f * syn[0];    nb_bloc = len_mem_16 / 5;
    pf4 = & mem [nb_block];
    pf5 = & mem [0];
    for (c = 0; c <nb_block-1; c ++)
    {
       pf5 [0] = pf4 [0];
       pf5 [1] = 0.2f * pf4 [0] + 0.8f * pf4 [1];
       pf5 [2] = 0.4f * pf4 [1] + 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];
    pf5 [1] = 0.2f * pf4 [0] + 0.8f * pf4 [1];
    pf5 [2] = 0.4f * pf4 [1] + 0.6f * pf4 [2];
    pf5 [3] = 0.6f * pf4 [2] + 0.4f * pf4 [3];
    pf5 [4] = 0.8f * pf4 [3] + 0.2f * syn [0];
    

Claims (11)

  1. Method of updating post-processing states applied to a decoded audio frequency signal, characterized in that, for a current decoded signal frame, sampled at a different sampling frequency from the preceding frame, the method comprises the following steps:
    - obtaining (E101) a past decoded signal, stored for the preceding frame;
    - resampling (E102) the past decoded signal obtained, at the sampling frequency of the current frame, by interpolation;
    - using the resampled past decoded signal as a memory (E103) for post-processing the current frame.
  2. Method according to Claim 1, characterized in that, in the case where the sampling frequency of the preceding frame is higher than the sampling frequency of the current frame, the interpolation is performed starting from the most recent sample of the past decoded signal and by interpolating in reverse chronological order and in the case where the sampling frequency of the preceding frame is lower than the sampling frequency of the current frame, the interpolation is performed starting from the oldest sample of the past decoded signal and by interpolating in chronological order.
  3. Method according to Claim 1 or 2, characterized in that the resampled past decoded signal is stored in the same buffer memory as the past decoded signal before resampling.
  4. Method according to one of Claims 1 to 3, characterized in that the interpolation is of the linear type.
  5. Method according to Claim 1, characterized in that the past decoded signal is of fixed length according to a maximum possible speech signal period.
  6. Method according to one of the preceding claims, characterized in that the post-processing is applied to the decoded signal on a low frequency band for reducing low-frequency noise.
  7. A method of decoding a current frame of an audio frequency signal comprising a step of selecting a decoding sampling frequency, a step of post-processing, characterized in that, in the case where the preceding frame is sampled at a first sampling frequency different from a second sampling frequency of the current frame, the method comprises an update of the post-processing states according to a method compliant with one of Claims 1 to 6.
  8. Device for processing a decoded audio frequency signal, characterized in that it comprises, for a current frame of decoded signal, sampled at a different sampling frequency from the preceding frame:
    - a module for obtaining (422, 503) a past decoded signal, stored for the preceding frame;
    - a resampling module (422, 504) for resampling the past decoded signal obtained, at the sampling frequency of the current frame, by interpolation;
    - a post-processing module (420, 421, 505) using the resampled past decoded signal as a memory for post-processing the current frame.
  9. Audio frequency signal decoder, characterized in that it comprises a module for selecting a decoding sampling frequency and a processing device compliant with Claim 8.
  10. Computer program comprising code instructions for implementing the steps of the method of updating states according to one of Claims 1 to 6, when these instructions are executed by a processor.
  11. Storage medium readable by a processor, on which a computer program is stored including code instructions for the execution of the steps of the method of updating states according to one of Claims 1 to 6.
EP15742373.2A 2014-07-11 2015-07-06 Update of post-processing states with variable sampling frequency according to the frame Active EP3167447B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1456734A FR3023646A1 (en) 2014-07-11 2014-07-11 UPDATING STATES FROM POST-PROCESSING TO A VARIABLE SAMPLING FREQUENCY ACCORDING TO THE FRAMEWORK
PCT/FR2015/051864 WO2016005690A1 (en) 2014-07-11 2015-07-06 Update of post-processing states with variable sampling frequency according to the frame

Publications (2)

Publication Number Publication Date
EP3167447A1 EP3167447A1 (en) 2017-05-17
EP3167447B1 true EP3167447B1 (en) 2018-06-06

Family

ID=52016692

Family Applications (1)

Application Number Title Priority Date Filing Date
EP15742373.2A Active EP3167447B1 (en) 2014-07-11 2015-07-06 Update of post-processing states with variable sampling frequency according to the frame

Country Status (8)

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

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3023646A1 (en) * 2014-07-11 2016-01-15 Orange UPDATING STATES FROM POST-PROCESSING TO A VARIABLE SAMPLING FREQUENCY ACCORDING TO THE FRAMEWORK
EP2988300A1 (en) * 2014-08-18 2016-02-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Switching of sampling rates at audio processing devices
CN111223491B (en) * 2020-01-22 2022-11-15 深圳市倍轻松科技股份有限公司 Method, device and terminal equipment for extracting music signal main melody

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 (en) * 1995-10-26 2005-06-02 ソニー株式会社 Speech decoding method and apparatus
US6070137A (en) * 1998-01-07 2000-05-30 Ericsson Inc. Integrated frequency-domain voice coding using an adaptive spectral enhancement filter
JP4135242B2 (en) * 1998-12-18 2008-08-20 ソニー株式会社 Receiving apparatus and method, communication apparatus and method
JP5420175B2 (en) * 2005-01-31 2014-02-19 スカイプ Method for generating concealment frame in communication system
KR100813259B1 (en) 2005-07-13 2008-03-13 삼성전자주식회사 Method and apparatus for encoding/decoding input signal
WO2008072701A1 (en) * 2006-12-13 2008-06-19 Panasonic Corporation Post filter and filtering method
CN1975861B (en) * 2006-12-15 2011-06-29 清华大学 Vocoder fundamental tone cycle parameter channel error code resisting method
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
BR122021003886B1 (en) * 2010-08-12 2021-08-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e. V RESAMPLE OUTPUT SIGNALS OF AUDIO CODECS BASED ON 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 (en) * 2012-06-29 2014-01-03 France Telecom EFFECTIVE MITIGATION OF PRE-ECHO IN AUDIONUMERIC SIGNAL
CN109448745B (en) * 2013-01-07 2021-09-07 中兴通讯股份有限公司 Coding mode switching method and device and decoding mode switching method and device
FR3001593A1 (en) * 2013-01-31 2014-08-01 France Telecom IMPROVED FRAME LOSS CORRECTION AT SIGNAL DECODING.
FR3015754A1 (en) * 2013-12-20 2015-06-26 Orange RE-SAMPLING A CADENCE AUDIO SIGNAL AT A VARIABLE SAMPLING FREQUENCY ACCORDING TO THE FRAME
FR3023646A1 (en) * 2014-07-11 2016-01-15 Orange UPDATING STATES FROM POST-PROCESSING TO A VARIABLE SAMPLING FREQUENCY ACCORDING TO THE FRAMEWORK

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
None *

Also Published As

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

Similar Documents

Publication Publication Date Title
EP2867893B1 (en) Effective pre-echo attenuation in a digital audio signal
EP2080195B1 (en) Synthesis of lost blocks of a digital audio signal
EP2951813B1 (en) Improved correction of frame loss when decoding a signal
EP3020043B1 (en) Optimized scale factor for frequency band extension in an audiofrequency signal decoder
EP3161659A1 (en) Resampling of an audio signal by interpolation for low-delay encoding/decoding
EP2277172A1 (en) Concealment of transmission error in a digital signal in a hierarchical decoding structure
EP3103116B1 (en) Improved frequency band extension in an audio signal decoder
EP3084959B1 (en) Resampling of an audio signal interrupted with a variable sampling frequency according to the frame
EP2936488B1 (en) Effective attenuation of pre-echos in a digital audio signal
EP3167447B1 (en) Update of post-processing states with variable sampling frequency according to the frame
EP2347411B1 (en) Pre-echo attenuation in a digital audio signal
EP3175443A1 (en) Determining a budget for lpd/fd transition frame encoding
EP2005424A2 (en) Method for post-processing a signal in an audio decoder
FR2783651A1 (en) DEVICE AND METHOD FOR FILTERING A SPEECH SIGNAL, RECEIVER AND TELEPHONE COMMUNICATIONS SYSTEM
WO2014009657A1 (en) Processing method for improving the quality of audio frequency signals

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20170208

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

GRAJ Information related to disapproval of communication of intention to grant by the applicant or resumption of examination proceedings by the epo deleted

Free format text: ORIGINAL CODE: EPIDOSDIGR1

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

INTG Intention to grant announced

Effective date: 20180108

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

INTC Intention to grant announced (deleted)
INTG Intention to grant announced

Effective date: 20180130

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

Free format text: NOT ENGLISH

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

Ref country code: AT

Ref legal event code: REF

Ref document number: 1006938

Country of ref document: AT

Kind code of ref document: T

Effective date: 20180615

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

Free format text: LANGUAGE OF EP DOCUMENT: FRENCH

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602015012012

Country of ref document: DE

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 4

REG Reference to a national code

Ref country code: NL

Ref legal event code: MP

Effective date: 20180606

REG Reference to a national code

Ref country code: ES

Ref legal event code: FG2A

Ref document number: 2686349

Country of ref document: ES

Kind code of ref document: T3

Effective date: 20181017

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG4D

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180906

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

Ref country code: NO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180906

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

Ref country code: RS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180907

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 1006938

Country of ref document: AT

Kind code of ref document: T

Effective date: 20180606

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181006

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SM

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602015012012

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20180706

Ref country code: MC

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

REG Reference to a national code

Ref country code: BE

Ref legal event code: MM

Effective date: 20180731

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

REG Reference to a national code

Ref country code: IE

Ref legal event code: MM4A

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20180731

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20180731

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20180706

26N No opposition filed

Effective date: 20190307

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20180731

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20180606

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO

Effective date: 20150706

Ref country code: MK

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20180606

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: IT

Payment date: 20230620

Year of fee payment: 9

Ref country code: FR

Payment date: 20230621

Year of fee payment: 9

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20230620

Year of fee payment: 9

Ref country code: ES

Payment date: 20230801

Year of fee payment: 9

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20230620

Year of fee payment: 9