WO2002029786A1 - Method and device for segmental coding of an audio signal - Google Patents

Method and device for segmental coding of an audio signal Download PDF

Info

Publication number
WO2002029786A1
WO2002029786A1 PCT/FR2001/003060 FR0103060W WO0229786A1 WO 2002029786 A1 WO2002029786 A1 WO 2002029786A1 FR 0103060 W FR0103060 W FR 0103060W WO 0229786 A1 WO0229786 A1 WO 0229786A1
Authority
WO
WIPO (PCT)
Prior art keywords
samples
signal
segments
frame
segment
Prior art date
Application number
PCT/FR2001/003060
Other languages
French (fr)
Inventor
Alain Le Guyader
Catherine Quinquis
Original Assignee
France Telecom
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 France Telecom filed Critical France Telecom
Priority to AU2001293950A priority Critical patent/AU2001293950A1/en
Publication of WO2002029786A1 publication Critical patent/WO2002029786A1/en

Links

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/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
    • G10L2019/0001Codebooks
    • G10L2019/0004Design or structure of the codebook
    • G10L2019/0005Multi-stage vector quantisation
    • 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
    • G10L2019/0001Codebooks
    • G10L2019/0007Codebook element generation

Definitions

  • the present invention relates to the coding methods of audio frequency signals. These methods find particular application in coders with analysis by synthesis, of which the most widespread type is the coder CELP (“Code-Excited Linear Prediction”).
  • G.728 A general description of G.728 can be found in the article "A Low-Delay CELP coder for the CCITT 16 kb / s Speech Coding Standard" by JH Chen et al., Published in the journal IEEE Journal on Selected Areas on Communication, Vol. 10-5, June 1992 pages 830-849.
  • the ITU standardized a CELP coder called G.729, operating at 8 kbit / s.
  • This algorithm includes at the decoder a synthesis filter provided with a short-term and long-term predictor having as input an excitation signal.
  • the short and long term predictors are first calculated by methods of the linear prediction type. Once these predictors are known, it is possible to calculate the excitation signal by the so-called analysis-by-synthesis method.
  • the algorithms used in the G.729 coder are described in the article "Design and description of CS-ACELP: a toll quality 8 kb / s speech coder" by R. Salami et al., Published in IEEE Trans. On Speech and Audio Processing, Vol.
  • CELP coding standards have, in their basic principle, an organization similar to that described in the previous article. communication with mobiles GSM 06.60 and GSM 06.90 also called NB-AMR ("Narrowband Adaptive Multi-Rate"), published by ETSI ("European Telecommunications Standard Institute") and annexes D and E of G.729.
  • NB-AMR Narrowband Adaptive Multi-Rate
  • ETSI European Telecommunications Standard Institute
  • ETSI European Telecommunications Standard Institute
  • the efficiency of CELP coding consists in using in the process of analysis by synthesis a replica of the synthesis model of the decoder for the selection of the excitation signal: for each waveform of index i of the repertoire of models of excitation, the synthetic signal is evaluated at the output of the synthesis model, and finally, as the excitation signal to be transmitted, the one which makes it possible to get as close as possible to the signal to be coded according to a perceptual error criterion.
  • t is the target vector of dimension L to be modeled
  • g (i) is the gain of the waveform
  • H is the filter matrix associated with the filter H (z) combining the perceptual weighting filter W (z) and the long-term synthesis filters 1 / (1 - bz ⁇ ⁇ ) and short-term 1 / A (z) :
  • U j is the waveform of index i from the dictionary CB called repertoire of waveforms; NC the number of waveforms in the dictionary.
  • the filtering matrix H can be expressed as a function of the impulse response h 0 , h. ,, .... h -1 on L samples of the transfer function filter H (z):
  • Equation (1) shows that the minimization of the CELP criterion amounts to a vector quantization with a weighted error criterion.
  • Most current CELP coders include such a mechanism for selection of the excitation signal. The calculations carried out to arrive at this perceptual error criterion are described in the article "The processing of the voice signal" by P. Combescure et al., Published in the Telecommunications Annals, vol. 50-1, 1995, pages 142-164.
  • the size L of the samples in the dictionary varies from a few samples (5 for the G.728) to a few tens (40 for the G.729).
  • the number N c of dictionary waveforms can be coded on a number of bits commonly having values from 4 to a few tens.
  • focussed search As is the case for the G.729 coder and the coders of the ACELP family (“Algebraic CELP) for which the excitation vector is formed by a few non-zero pulses.
  • the index l opt of the optimal waveform, to be transmitted to the decoder will be such that the following CELP criterion is minimum:
  • NC is the number of vectors in the dictionary, therefore the number of searches to perform.
  • the optimal gain g (l opt ) corresponding to the optimal index will be quantified and its value ⁇ will be transmitted.
  • the minimization of E (i) is equivalent to maximizing the term:
  • VSELP Vector Sum Excited Linear Prediction
  • VSELP Vector Sum Excited Linear Prediction
  • the percentage of the bit rate taken by the gain is 20%, which is important and still the gain has been quantified on too few bits.
  • the effects of this poor quantification are offset by the richness of the dictionary at the cost of a significant throughput.
  • Another approach is to take longer blocks, for example 10 samples, and to quantify the gain correctly on 3 or 4 bits. In our example, there will remain 16 bits to quantify the waveforms. In this case, there will be 2 16 analysis-by-synthesis searches to be carried out for each vector as indicated above. Knowing that with the current components, a number of searches of more than a few thousand is reasonable, it is not possible to afford the 2 16 searches each requiring the calculation of the quantities Num (i) and Den (i ) of relation (6).
  • the excitation signal is seen in this case as coming from the sum of waveforms coming from different dictionaries, certain regions of the dictionaries being made up of zero values.
  • a disadvantage is that the fact of not taking account of the presence of the null values in the dictionaries leads to an overload of computations.
  • the minimization is done here over the length of the excitation signal, even at the places where the dictionary contains blocks of zero values. In the sequential minimization process, these locations contribute significantly to the final error, although the excitation signal block is not yet known. This is largely suboptimal.
  • the excitation signal of a CELP coder is a sum of two waveforms from two dictionaries, to which a single gain is applied. The minimization is also done over the length of the excitation signal, which is that of the added waveforms. There is no partitioning as in US Patent 5,274,741.
  • An object of the invention is to propose a modeling of the excitation in a CELP or similar type coder and processing operations of reasonable complexity in order to carry out an effective coding of audio frequency signals.
  • the invention thus proposes a method of coding an audio-frequency signal digitized in successive frames of L samples, comprising the following steps:
  • the excitation parameters include, for at least some of the frames, a waveform of L samples associated with a gain, said excitation signal relating to the frame resulting from the multiplication of the waveform of L samples by the associated gain, the waveform being made up of a number K, greater than 1, of segments juxtaposed according to a determined partition of the frame and coming from dictionaries respective, the k-th segment being made up of L k samples for 1 ⁇ k ⁇ K, the numbers L 1 to L ⁇ being integers whose sum is equal to L.
  • the determination of the excitation parameters for at least one signal frame comprises the following steps: lai calculation of a target vector of L samples from the signal frame and parameters determined for at least one previous frame; / b / calculation, over a length of L samples, of an impulse response h 0 , h. ,, ..., h L-1 of a filter composed of the synthesis filters and a perceptual weighting filter;
  • M kk . k “ H k ..H kk .
  • t k denotes the k-th vector, of L k samples, obtained by subdividing the target vector according to said partition
  • H kk . denotes the matrix of L k lines and L k columns whose term located in the (q + 1) -th row and in the (r + 1) -th column (0 ⁇ q ⁇ L k ,
  • This method makes it possible to model the excitation signal by juxtaposed waveform segments, so that the overall waveform can be seen as a waveform partitioned into successive blocks.
  • the search for excitation proceeds by sequential and progressive optimization over the length of the successive segments of the waveform.
  • the gain in complexity makes it possible to propose dictionaries of large size by juxtaposing dictionaries of reasonable size (typically ⁇ 2 10 searches), which results in better modeling of the excitation signal therefore a higher listening quality.
  • the method makes it possible to take advantage of the structure of the dictionaries to reduce even more clearly the computational load to be carried out for the implementation.
  • the essential quantities are calculated by fast algorithms outside these loops.
  • the calculations described below are arranged, in their optimal form, so that the maximum of calculation is done outside the search loops of the optimal waveform.
  • Structured dictionaries are often generated using transformation matrices.
  • each segment of L k samples of the dictionary relating to the k-th segment of the partition of the frames is the product of a predefined transformation matrix F k of L k rows and nck columns by a respective code of nck samples belonging to a directory generating the dictionary, nck being an integer smaller than L k .
  • Den 1 (i1) C1 i1 ⁇ M 1 1 1 .C1 i1 (18) and Cl j ., Denotes an index code il of the first directory, and the steps le'l and / f / following for k ranging from 2 to K: le'l for each (kl) -uplet of codes C1 h j n j Ck j (ki) [n] ve nan t to be selected, calculation of numbers FN [n] and FD [n] and of a vector C [n] of the form:
  • FIGS. 1 and 2 are block diagrams of a CELP decoder and coder capable of implementing the invention
  • FIGS. 3 and 4 are flow diagrams of procedures for searching for the excitation vector usable in an encoder according to FIG. 2.
  • the invention is described below in its application to a CELP type speech coder.
  • the speech synthesis process implemented in a CELP coder and decoder is illustrated in FIG. 1.
  • An excitation generator 10 delivers an excitation waveform U f1 i2 j "of L samples denoted U h i2 JK ( ⁇ ), belonging to a predetermined repertoire in response to an index produced by the coder.
  • this index is a composite index formed by whole K il, i2, .... iK (K> 2), the directory being constituted by juxtaposing by blocks K predetermined dictionaries CB1, CB2, ..., CBK .
  • the K dictionaries CB1, ..., CBK from which the segments Ul j . ,, U2 i2 , ..., UK iK are extracted can be of different dimensions (L k ⁇ L k . For k ⁇ k ').
  • NCk (1 ⁇ k ⁇ K) consists of NCk distinct segments indexed by the integer ik with 1 ⁇ ik ⁇ NCk.
  • An amplifier 12 multiplies the waveform U S1 i2 iK by an excitation gain ⁇ , and the resulting signal is subjected to a long-term synthesis filter 14.
  • the output signal u of the filter 14 is in turn subjected to a short-term synthesis filter 16, the output of which constitutes what is considered here as the synthesized speech signal.
  • filters can also be implemented at the level of the decoder, for example post-filters, as is well known in the field of speech coding.
  • the aforementioned signals are digital signals represented for example by 16-bit words at a sampling rate F e equal for example to 8 kHz.
  • the synthesis filters 14, 16 are generally purely recursive filters.
  • the delay T and the gain b constitute long-term prediction parameters (LTP) which are determined adaptively by the coder.
  • the LPC parameters of the short-term synthesis filter 16 are determined at the coder by a linear prediction of the speech signal.
  • the transfer function of the filter 16 is thus of the form 1 / A (z) with:
  • the signal u (n) applied to the short-term synthesis filter 14 comprises an LTP bu component (nT) and a residual component, or innovation sequence, ⁇ .U h j2 jK (n).
  • the parameters characterizing the residual component and, optionally, the LTP component are evaluated in a closed loop, using a perceptual weighting filter.
  • FIG. 2 shows the diagram of a CELP coder.
  • the speech signal s (n) is a digital signal, for example supplied by an analog-digital converter 20 processing the amplified and filtered output signal from a microphone 22.
  • the LPC, LTP and EXC parameters index i1, j2 iK and excitation gain ⁇ ) are obtained at the coder by three respective analysis modules 24, 26, 28. These parameters are then quantified in a known manner for the purpose of an efficient digital transmission, then subjected to a multiplexer 30 which forms the output signal of the encoder.
  • This module 32 essentially comprises a decoding chain such as that shown in FIG. 1. Like the decoder, the module 32 operates on the basis of the quantized LPC, LTP and EXC parameters. If an interpolation of the LPC parameters is carried out at the decoder, as is common, the same interpolation is carried out by the module 32. In the absence of transmission errors, the module 32 makes it possible to know at the level of the coder the previous states of the synthesis filters 14, 16 of the decoder, determined as a function of the synthesis and excitation parameters prior to the sub-frame considered.
  • the short-term analysis module 24 determines the LPC parameters (coefficients a ⁇ of the short-term synthesis filter) by analyzing the short-term correlations of the speech signal s (n). This determination is made for example once per frame of N ⁇ samples, so as to adapt to the evolution of the spectral content of the speech signal.
  • LPC analysis methods are well known in the art. We can for example refer to the book “Digital Processing of Speech Signais” by LR Rabiner and RW Shafer, Prentice-Hall Int., 1978.
  • LPC parameters can be performed on the coefficients a t directly, or on d other parameters to which they are linked such as reflection coefficients, LAR "log-area-ratios", spectral line parameters (LSP for "line spectrum parameters, or LSF for” line spectrum frequencies "), as well as it is common in audio coding techniques.
  • LSP line spectrum parameters
  • LSF line spectrum frequencies
  • the next step in coding is to determine the LTP parameters for long-term prediction. These are for example determined once per subframe of L samples.
  • a subtractor 34 subtracts from the speech signal s (n) the response to a zero input signal from the short-term synthesis 16. This response is determined by a filter 36 of transfer function 1 / A (z) whose coefficients are given by the LPC parameters which have been determined by the module 24, and whose initial states are provided. by the module 32 so as to correspond to the M p last samples of the synthetic signal.
  • the output signal from the subtractor 34 is subjected to a perceptual weighting filter 38 whose role is to accentuate the portions of the spectrum where the errors are most perceptible, that is to say the inter-forming zones.
  • the closed loop LTP analysis performed by the module 26 consists, in a conventional manner, in selecting for each subframe the delay T which maximizes the normalized correlation:
  • x '(n) denotes the output signal of the filter 38 during the sub-frame considered
  • y ⁇ (n) denotes the convolution product S
  • h '(0), h' (1), ..., h '(L-1) denotes the impulse response of the weighted synthesis filter, with transfer function W (z) / A (z).
  • This impulse response h ' is obtained by a module 40 for calculating impulse responses, as a function of the LPC parameters which have been determined for the sub-frame, where appropriate after quantization and interpolation.
  • the samples S LTP (nT) are the previous states of the long-term synthesis filter 14, provided by the module 32.
  • the missing samples S TP (nT) are obtained by interpolation on the basis of previous samples, or from the residual speech signal.
  • the delays T whole or fractional, are selected in a specific window.
  • an open loop delay T ' for example once per frame, then select the closed loop delays for each subframe in a reduced interval around T'.
  • the open loop search consists more simply in determining the delay T 'which maximizes the autocorrelation of the speech signal s (n) possibly filtered by the reverse filter with transfer function A (z).
  • This gain g LTP is quantized, and its quantized value b is transmitted to the decoder in the LTP parameters.
  • the signal by ⁇ (n), which has been calculated by the module 26 for the optimal delay T, is first subtracted from the signal x '(n) by the subtractor 42.
  • the resulting signal t (n) is called target, and denoted vectorially t in relation (1).
  • the impulse response h 0 , h. ,, ..., h L-1 of the filter composed of the synthesis filters and the perceptual weighting filter (cf. relation (2) and (3)), is calculated by the module 40 .
  • the module 28 for searching for the excitation CELP determines the parameters EXC which will be communicated to the decoder, that is to say the composite index i1, i2 iK and the gain of quantified excitation ⁇ .
  • the CELP decoder comprises a demultiplexer 8 receiving the bit stream from the coder.
  • the quantized values of the excitation parameters EXC and of the synthesis parameters LTP and LPC are supplied to the generator 10, to the amplifier 12 and to the filters 14, 16 to reconstruct the synthetic signal s, which can for example be converted into analog by the converter 18 before being amplified and then applied to a loudspeaker 19 to restore the original speech.
  • E (i1, i2, ..., iK) is expressed as a function of the composite index il, i2, ..., iK and the associated gain g (i1, i2, .. ., iK):
  • H k, k ' ⁇ being a matrix at L k
  • the filtering matrix H is a particular matrix, since the terms of the parallels to the main diagonal are equal: it is a so-called Toeplitz matrix. In addition, the upper part of the matrix H is zero.
  • the optimal gain g (i1, i2, .... iK) is obtained by taking the derivative of E (i1, i2 iK) with respect to the gain: j Num (i1, i2 iK) g (i1, i2, .. (33)
  • the indices of the optimal waveforms lk opt (1 ⁇ k ⁇ K) are obtained when the error criterion E (i1, i2, ..., iK) is minimal or, equivalently, by maximizing:
  • the module 28 can take advantage of the fact that it is not necessary to recalculate everything in the search loops on the waveforms.
  • Den (i1, ⁇ 2) U1 h ⁇ ( Ml> 1j1 + + 2.U1 i1 ⁇ .M 221 .U2 i2 + U2 j2 ⁇ M 2> 2 ⁇ 2 .U2 i2
  • the vectors (V 11 + V 21 ) and V 22 and the matrices (M 111 + M 211 ), (2.M 221 ) and M 222 are precalculated according to the relations (39) to (45 ) as a function of the impulse response h 0 , h. ,, .... h L _., and the target t, and one of the indices (it in the illustration) is initialized to 1.
  • the terms P1 (i1) (V 1 1 + V 2 -
  • the index i2 is initialized to 1 and the numbers N opt and D opt are initialized to represent an arbitrarily small quotient N opt / D opt .
  • This search includes a double loop on the indices il and i2.
  • the terms P2 (i2) V 22 .U2 j2 and
  • step 59 the test 60 for the end of the internal loop (on it) is carried out. Incrementing it in step 61 returns to step 56 for examining the next segment of the dictionary CB1.
  • the end of external loop test 62 (on i2) is carried out.
  • Incrementing i2 in step 63 returns to step 55 for examining the next segment of the dictionary CB2.
  • the module 28 determines the gain in step 64 according to the relation (33), that is to say
  • the procedure according to FIG. 3 requires a double loop on the indices il and i2 (K nested loops in the general case), which is relatively consumer of computing power.
  • the invention proposes slightly sub-optimal search methods which make it possible to solve this problem with less complexity, of the order of the size of a dictionary.
  • the N1 best candidates of the first dictionary CB1 are selected by maximizing the criterion Crit 1 (i1) of the relation (8) on the first segment of the partitioning, N1 being a number greater than or equal to 1.
  • module 28 calculates, at step 72, the quantities FN [n] and FD [n] and the following line vector C [n] from numerator and denominator obtained according to relations (9) and (10) in the research phase 71 and the corresponding waveform U1 j ., r n ⁇ from the dictionary CB1:
  • the module 28 maximizes the criterion Crit 2 (i1 [n], i2) for all the waveforms of the second dictionary CB2:
  • the module 28 selects the pair of indices i1 [n], i2 such that Crit 2 (i1 [n], i2) is maximum.
  • the corresponding gain g (i1 [n], i2) is taken equal to
  • the variable Crit opt is initialized to 0 and the index i2 of the second segment to 1.
  • the terms V 2 2 .U2 i2 and U2 .M 2 2 2 .U2 i2 of relations (50) and (51), which do not depend on the candidate n, are first calculated in step 74.
  • V kk .Uk ik and Uk ik r .M kkk .Uk jk of the relations (15) and (16 ) are calculable before examining the N (k-1) candidates ((kl) -uplets) previously selected (2 ⁇ k ⁇ K), which avoids having to redo the matrix products in each iteration of the internal loop .
  • the candidate's index n for the first segment is initialized to 1.
  • the end of internal loop 80 test (on n) is performed. Incrementing n at step 81 returns to step 76 for examining the next candidate segment of the dictionary CB1.
  • the test 82 for the end of the external loop (on i2) is carried out.
  • Incrementing i2 at step 83 returns to step 75 for examining the next segment of the CB2 dictionary.
  • the module 28 determines the gain in step 84 according to the relation (33), that is to say
  • the process is repeated.
  • the quantities FN [n] and FD [n] and the line vector C [n] are updated according to relations (11) to (13).
  • the module 28 selects Nk k-tuples, by maximizing criterion of the relation (14).
  • the module 28 selects the K-tuplet of indices such that Crit ⁇ (i1 [n] i (k-1) [n], ik) is maximum. The corresponding gain is taken equal to
  • the search provides one or more waveform segments from the dictionary CBk of size NCk, using scalar products of vectors of dimension L k .
  • the optimization therefore relates exclusively to the segment of rank k of the partitioning of the waveforms.
  • the influence of the preceding segments is taken into account in phase k.
  • the appreciable calculation economy made by not considering (during phase k) the influence of the segment k on the following segments leads to a solution which is only slightly sub-optimal since each of these following segments will be searched later in a dictionary.
  • the algorithm illustrated in FIG. 4 performs divisions at the iterations of step 77. It will have been noted that the optimization can be carried out without division, by the same method as in FIG. 3 (test 58).
  • transformation matrix makes it possible to modify the properties of the waveform dictionary.
  • the transformation matrices can be optimized on a reference corpus or have an algebraic structure themselves. In the latter case, they can notably be used to generate codes with +1 / 0 / -1 ternary values indexed from binary codes.
  • NCk 2 nck binary codes
  • Ck jk describing all the possible combinations of nck samples with values ⁇ 1
  • F k 2 nck binary codes
  • Den k (i1 [n] i (k— 1) [n], ik) can on the other hand be carried out by fast algorithms known in the field of digital signal processing.
  • the dictionary structure can then be used to obtain the scalar products with a minimal computational load.
  • the methods that can be used are described in particular in the references: "A robust and fast CELP coder at 16 kbit / s", by A. Le Guyader, D. Massaloux and J.F. Zurcher, published in the journal Speech Communication, Vol. 7, 1988, pages 217-226; and "Vector Sum Excited Linear Prediction (VSELP): speech coding at 8 bps" by A. Gerson and M.A. Jasiuk, published in the proceedings of the ICASSP conference, 1990, pages 461-464.

Abstract

An audio frequency signal is quantified in a CELP-type encoder or the like using perceptual weighting. Synthesizer filters receive a frame-by-frame excitation signal as being the product of a wave form for gain. The wave form is partitioned into segments with predefined size. Said partitioning is used to carry out an efficient calculation of the excitation, thereby limiting the complexity of the encoder while remaining very close to the optimal solution.

Description

PROCEDE ET DISPOSITIF DE CODAGE SEGMENTAL D ' UN SIGNAL AUDIO METHOD AND DEVICE FOR SEGMENTAL CODING OF AN AUDIO SIGNAL
La présente invention concerne les méthodes de codage de signaux audiofréquence. Ces méthodes trouvent une application particulière dans des codeurs à analyse par synthèse, dont le type le plus répandu est le codeur CELP (« Code-Excited Linear Prédiction »).The present invention relates to the coding methods of audio frequency signals. These methods find particular application in coders with analysis by synthesis, of which the most widespread type is the coder CELP (“Code-Excited Linear Prediction”).
Les techniques de codage prédictif à analyse par synthèse sont actuellement très répandues pour le codage de la parole en bande téléphonique (300-3400 Hz) à des débits pouvant descendre jusqu'à 8 kbit/s, tout en conservant une qualité téléphonique.The techniques of predictive coding with analysis by synthesis are currently very widespread for the coding of speech in the telephone band (300-3400 Hz) at bit rates which can go down to 8 kbit / s, while maintaining telephone quality.
Le . premier codeur CELP normalisé en 1992 à l'UlT (Union Internationale des Télécommunications) fut le G.728 utilisant la technique LD-CELP (« Low Delay CELP »). Cette technique permet de réduire le débit dans un rapport 4 par rapport au codage MIC à 64 kbit/s. On trouvera une description des grandes lignes du G.728 dans l'article « A Low-Delay CELP coder for the CCITT 16 kb/s Speech Coding Standard » de J. H. Chen et al., publié dans la revue IEEE Journal on Selected Areas on Communication, Vol. 10-5, juin 1992 pages 830-849.The . first CELP coder standardized in 1992 at the ITU (International Telecommunication Union) was G.728 using the LD-CELP (“Low Delay CELP”) technique. This technique makes it possible to reduce the bit rate in a ratio 4 compared to the MIC coding at 64 kbit / s. A general description of G.728 can be found in the article "A Low-Delay CELP coder for the CCITT 16 kb / s Speech Coding Standard" by JH Chen et al., Published in the journal IEEE Journal on Selected Areas on Communication, Vol. 10-5, June 1992 pages 830-849.
Quelques années plus tard, en 1995, l'UlT a normalisé un codeur CELP appelé G.729, fonctionnant à 8 kbit/s. Cet algorithme comporte au décodeur un filtre de synthèse muni d'un prédicteur à court terme et à long terme ayant pour entrée un signal d'excitation. Au codeur, les prédicteurs à court et long terme sont d'abord calculés par des méthodes du type prédiction linéaire. Une fois connus ces prédicteurs, il est possible de calculer le signal d'excitation par la méthode dite d'analyse-par-synthèse. Les algorithmes utilisés dans le codeur G.729 sont décrits dans l'article « Design and description of CS-ACELP : a toll quality 8 kb/s speech coder" par R. Salami et al., paru dans IEEE Trans. on Speech and Audio Processing, Vol. 6-2, mars 1998, pages 116-130. Plusieurs normes de codage CELP ont, dans leur principe de base, une organisation semblable à celle décrite dans l'article précédent. On peut citer par exemple les normes de communication avec les mobiles GSM 06.60 et GSM 06.90 encore appelée NB-AMR (« Narrowband Adaptive Multi-Rate »), publiées par l'ETSI (« European Télécommunications Standard Institute ») et les annexes D et E du G.729. Dans les codeurs CELP dont il a été fait mention précédemment, le signal d'excitation est modélisé par une forme d'onde issue d'un dictionnaire CB (CodeBook en anglais) et remise à la bonne échelle par multiplication par un facteur de gain. L'efficacité du codage CELP consiste à utiliser dans le processus d'analyse par synthèse une réplique du modèle de synthèse du décodeur pour la sélection du signal d'excitation : pour chaque forme d'onde d'indice i du répertoire de modèles d'excitation, on évalue le signal synthétique en sortie du modèle de synthèse, et on retient finalement comme signal d'excitation à transmettre celui qui permet de se rapprocher au mieux du signal à coder suivant un critère d'erreur perceptuelle.A few years later, in 1995, the ITU standardized a CELP coder called G.729, operating at 8 kbit / s. This algorithm includes at the decoder a synthesis filter provided with a short-term and long-term predictor having as input an excitation signal. In the coder, the short and long term predictors are first calculated by methods of the linear prediction type. Once these predictors are known, it is possible to calculate the excitation signal by the so-called analysis-by-synthesis method. The algorithms used in the G.729 coder are described in the article "Design and description of CS-ACELP: a toll quality 8 kb / s speech coder" by R. Salami et al., Published in IEEE Trans. On Speech and Audio Processing, Vol. 6-2, March 1998, pages 116-130. Several CELP coding standards have, in their basic principle, an organization similar to that described in the previous article. communication with mobiles GSM 06.60 and GSM 06.90 also called NB-AMR ("Narrowband Adaptive Multi-Rate"), published by ETSI ("European Telecommunications Standard Institute") and annexes D and E of G.729. In the CELP coders mentioned above, the excitation signal is modeled by a waveform from a CB dictionary (CodeBook in English) and reset to the correct scale by multiplication by a gain factor. The efficiency of CELP coding consists in using in the process of analysis by synthesis a replica of the synthesis model of the decoder for the selection of the excitation signal: for each waveform of index i of the repertoire of models of excitation, the synthetic signal is evaluated at the output of the synthesis model, and finally, as the excitation signal to be transmitted, the one which makes it possible to get as close as possible to the signal to be coded according to a perceptual error criterion.
En séparant la contribution du passé (« zéro input response ») de la synthèse avec des conditions initiales nulles (« zéro memory response »), le critère d'erreur perceptuelle E(i) à minimiser peut être écrit à partir des signaux dans le domaine temporel, pour i = 0, 1 , ..., NC-1 :By separating the contribution from the past ("zero input response") from the synthesis with zero initial conditions ("zero memory response"), the perceptual error criterion E (i) to be minimized can be written from the signals in the time domain, for i = 0, 1, ..., NC-1:
Figure imgf000004_0001
où : t est le vecteur cible de dimension L à modéliser ; g(i) est le gain de la forme d'onde ;
Figure imgf000004_0001
where: t is the target vector of dimension L to be modeled; g (i) is the gain of the waveform;
H est la matrice de filtrage associée au filtre H(z) combinant le filtre de pondération perceptuelle W(z) et les filtres de synthèse à long terme 1/(1 - b.z) et à court terme 1/A(z) :H is the filter matrix associated with the filter H (z) combining the perceptual weighting filter W (z) and the long-term synthesis filters 1 / (1 - bz ~ τ ) and short-term 1 / A (z) :
Figure imgf000004_0002
Figure imgf000004_0002
Uj est la forme d'onde d'indice i issue du dictionnaire CB dit répertoire de formes d'onde ; NC le nombre de formes d'onde du dictionnaire. La matrice de filtrage H peut s'exprimer en fonction de la réponse impulsionnelle h0, h.,, .... h -1 sur L échantillons du filtre de fonction de transfert H(z) :U j is the waveform of index i from the dictionary CB called repertoire of waveforms; NC the number of waveforms in the dictionary. The filtering matrix H can be expressed as a function of the impulse response h 0 , h. ,, .... h -1 on L samples of the transfer function filter H (z):
Figure imgf000004_0003
Figure imgf000004_0003
L'équation (1 ) montre que la minimisation du critère CELP revient à une quantification vectorielle avec un critère d'erreur pondérée. La plupart des codeurs CELP actuels comportent un mécanisme de ce type pour la sélection du signal d'excitation. Les calculs menés pour aboutir à ce critère d'erreur perceptuelle sont décrits dans l'article « Le traitement du signal vocal » par P. Combescure et al., paru dans les Annales des Télécommunications, vol. 50-1 , 1995, pages 142-164. La taille L des échantillons du dictionnaire varie de quelques échantillons (5 pour le G.728) à quelques dizaines (40 pour le G.729). Le nombre Nc de formes d'onde du dictionnaire peut être codé sur un nombre de bits ayant couramment des valeurs de 4 à quelques dizaines. Dans le cas où ce nombre dépasse la dizaine, il faut faire appel à des méthodes de recherche focalisée (« focussed search ») comme c'est le cas pour le codeur G.729 et les codeurs de la famille ACELP (« Algebraic CELP) pour laquelle le vecteur d'excitation est formé de quelques impulsions non nulles.Equation (1) shows that the minimization of the CELP criterion amounts to a vector quantization with a weighted error criterion. Most current CELP coders include such a mechanism for selection of the excitation signal. The calculations carried out to arrive at this perceptual error criterion are described in the article "The processing of the voice signal" by P. Combescure et al., Published in the Telecommunications Annals, vol. 50-1, 1995, pages 142-164. The size L of the samples in the dictionary varies from a few samples (5 for the G.728) to a few tens (40 for the G.729). The number N c of dictionary waveforms can be coded on a number of bits commonly having values from 4 to a few tens. If this number exceeds ten, it is necessary to use focused search methods ("focussed search") as is the case for the G.729 coder and the coders of the ACELP family ("Algebraic CELP) for which the excitation vector is formed by a few non-zero pulses.
En dérivant le critère d'erreur perceptuelle par rapport à g(i), on obtient la valeur optimale du gain g(i) :By deriving the perceptual error criterion with respect to g (i), we obtain the optimal value of the gain g (i):
Figure imgf000005_0001
Figure imgf000005_0001
En remplaçant g(i) par sa valeur dans le critère, l'index lopt de la forme d'onde optimale, à transmettre au décodeur, sera tel que le critère CELP suivant soit minimum:By replacing g (i) by its value in the criterion, the index l opt of the optimal waveform, to be transmitted to the decoder, will be such that the following CELP criterion is minimum:
Figure imgf000005_0002
NC est le nombre de vecteurs du dictionnaire, donc le nombre de recherches à effectuer. Le gain optimal g(lopt) correspondant à l'indice optimal sera quantifié et sa valeur β sera transmise. En fait la minimisation de E(i) est équivalente à maximiser le terme :
Figure imgf000005_0002
NC is the number of vectors in the dictionary, therefore the number of searches to perform. The optimal gain g (l opt ) corresponding to the optimal index will be quantified and its value β will be transmitted. In fact the minimization of E (i) is equivalent to maximizing the term:
Critd) = I^ £ (6, Pour éviter les divisions, il est aussi possible d'effectuer une boucle de recherche par itération sur les indices i, par exemple initialisée par i = lopt = 0, chaque itération i consistant à remplacer lopt par i siCritd) = I ^ £ (6, To avoid divisions, it is also possible to perform a search loop by iteration on the indices i, for example initialized by i = l opt = 0, each iteration i consisting in replacing l opt by i if
[Num(lopt)]2.Den(i) < [Num(i)]2.Den(lopt) (7) et à stocker les quantités [Num(lopt)]2 et Den(lopt), avant d'incrémenter i. Cette façon de procéder permet d'aboutir à différentes structures similaires dont on trouvera quelques exemples dans les normes et GSM et UIT précitées. Dans la pratique, pour que la méthode précédente de sélection du signal d'excitation reste d'une complexité raisonnable, il est fait appel à des dictionnaires particuliers dont l'organisation permet de réduire la complexité de recherche de la forme d'onde optimale. Parmi ces dictionnaires on peut citer les dictionnaires ACELP constitués d'un faible nombre d'impulsions par bloc d'échantillons (pour le G.729, typiquement 5 impulsions non nulles par bloc de 40 échantillons de signal d'excitation).[Num (l opt )] 2 .Den (i) <[Num (i)] 2 .Den (l opt ) (7) and to store the quantities [Num (l opt )] 2 and Den (l opt ), before incrementing i. This way of proceeding makes it possible to arrive at different similar structures of which one will find some examples in the standards and GSM and ITU mentioned above. In practice, so that the previous method of selecting the excitation signal remains of reasonable complexity, special dictionaries are used, the organization of which makes it possible to reduce the complexity of finding the optimal waveform. Among these dictionaries one can cite the ACELP dictionaries consisting of a small number of pulses per block of samples (for G.729, typically 5 non-zero pulses per block of 40 samples of excitation signal).
On peut aussi citer l'excitation VSELP (« Vector Sum Excited Linear Prédiction ») constituée de codes binaires de Gray utilisés pour modéliser le signal d'excitation dans la norme GSM 06.20 et dont le principe est décrit dans l'article « Vector Sum Excited Linear Prédiction (VSELP) : speech coding at 8 bps » par LA. Gerson et al., paru dans les actes de la conférence ICASSP, 1990, pages 461-464. Les codes binaires naturels ont aussi été utilisés, comme décrit dans l'article « A robust and fast CELP coder at 16 kbit/s », par A. Le Guyader et al., paru dans le revue Speech Communication, vol. 7, 1988, pages 217-226.One can also quote the excitation VSELP (“Vector Sum Excited Linear Prediction”) made up of Gray binary codes used to model the excitation signal in the standard GSM 06.20 and whose principle is described in the article “Vector Sum Excited Linear Prediction (VSELP): speech coding at 8 bps "by LA. Gerson et al., Published in the proceedings of the ICASSP conference, 1990, pages 461-464. Natural binary codes have also been used, as described in the article "A robust and fast CELP coder at 16 kbit / s", by A. Le Guyader et al., Published in the journal Speech Communication, vol. 7, 1988, pages 217-226.
Dans le codeur G.728 normalisé à l'UlT, le signal d'excitation est codé sur 10 bits pour chaque vecteur de 5 échantillons avec la répartition suivante : 2 bits pour le gain g(i) et 8 bits pour l'excitation ou forme d'onde Uj (NC = 256). Dans ce cas, le pourcentage du débit pris par le gain est de 20 %, ce qui est important et encore le gain a-t-il été quantifié sur trop peu de bits. Les effets de cette mauvaise quantification sont compensés par la richesse du dictionnaire au prix d'un débit important.In the G.728 coder standardized at the ITU, the excitation signal is coded on 10 bits for each vector of 5 samples with the following distribution: 2 bits for the gain g (i) and 8 bits for the excitation or waveform U j (NC = 256). In this case, the percentage of the bit rate taken by the gain is 20%, which is important and still the gain has been quantified on too few bits. The effects of this poor quantification are offset by the richness of the dictionary at the cost of a significant throughput.
Une autre approche consiste à prendre des blocs plus longs, par exemple de 10 échantillons, et de quantifier le gain correctement sur 3 ou 4 bits. Il restera alors dans notre exemple 16 bits pour quantifier les formes d'onde. Dans ce cas, il y aura 216 recherches d'analyse-par-synthèse à effectuer pour chaque vecteur comme indiqué précédemment. Sachant qu'avec les composants actuels, un nombre de recherches d'au plus de quelques milliers est raisonnable, il n'est pas possible de s'offrir les 216 recherches nécessitant chacune le calcul des quantités Num(i) et Den(i) de la relation (6).Another approach is to take longer blocks, for example 10 samples, and to quantify the gain correctly on 3 or 4 bits. In our example, there will remain 16 bits to quantify the waveforms. In this case, there will be 2 16 analysis-by-synthesis searches to be carried out for each vector as indicated above. Knowing that with the current components, a number of searches of more than a few thousand is reasonable, it is not possible to afford the 2 16 searches each requiring the calculation of the quantities Num (i) and Den (i ) of relation (6).
Dans les cas où l'on veut modéliser des signaux de parole éventuellement bruités avec des débits proches de 1 bit/échantillon, les méthodes classiques s'avèrent difficiles à mettre en oeuvre. Si nous prenons pour exemple un vecteur d'excitation de longueur L = 20 avec 3 bits pour le gain et 16 bits par les formes d'onde, nous sommes de nouveau ramenés au cas précédent : la complexité des 216 recherches est prohibitive si on utilise les méthodes classiques. Dans le codeur décrit dans le brevet US 5 274 741 , le signal d'excitation est issu de plusieurs dictionnaires dont les formes d'onde sont constituées de morceaux non nuls, suivis et/ou précédés de blocs ayant des valeurs nulles. Cette façon de définir le dictionnaire permet de faire la recherche en utilisant une procédure identique de recherche pour tous les dictionnaires. En fait, le signal d'excitation est vu dans ce cas comme provenant de la somme de forme d'ondes issues de différents dictionnaires, certaines régions des dictionnaires étant constituées de valeurs nulles. Un inconvénient est que le fait de ne pas tenir compte de la présence des valeurs nulles dans les dictionnaires conduit à une surcharge de calculs. De plus, la minimisation se fait ici sur la longueur du signal d'excitation, même aux endroits où le dictionnaire comporte des blocs de valeurs nulles. Dans le procédé de minimisation séquentielle, ces endroits contribuent de façon significative à l'erreur finale bien que l'on ne connaisse pas encore le bloc de signal d'excitation. Ceci est largement sous-optimal. Dans le codeur décrit dans le brevet US 5 621 852, le signal d'excitation d'un codeur CELP est une somme de deux formes d'onde issues de deux dictionnaires, à laquelle est appliquée un seul gain. La minimisation se fait également sur la longueur du signal d'excitation, qui est celle des formes d'ondes additionnées. Il n'y a pas de partitionnement comme dans le brevet US 5 274 741.In the cases where one wants to model speech signals possibly noisy with bit rates close to 1 bit / sample, the conventional methods prove difficult to implement. If we take for example an excitation vector of length L = 20 with 3 bits for the gain and 16 bits for the waveforms, we are again brought back to the previous case: the complexity of the 2 16 searches is prohibitive if we use the methods classics. In the coder described in US Pat. No. 5,274,741, the excitation signal comes from several dictionaries, the waveforms of which consist of non-zero pieces, followed and / or preceded by blocks having zero values. This way of defining the dictionary allows searching using an identical search procedure for all dictionaries. In fact, the excitation signal is seen in this case as coming from the sum of waveforms coming from different dictionaries, certain regions of the dictionaries being made up of zero values. A disadvantage is that the fact of not taking account of the presence of the null values in the dictionaries leads to an overload of computations. In addition, the minimization is done here over the length of the excitation signal, even at the places where the dictionary contains blocks of zero values. In the sequential minimization process, these locations contribute significantly to the final error, although the excitation signal block is not yet known. This is largely suboptimal. In the coder described in US Pat. No. 5,621,852, the excitation signal of a CELP coder is a sum of two waveforms from two dictionaries, to which a single gain is applied. The minimization is also done over the length of the excitation signal, which is that of the added waveforms. There is no partitioning as in US Patent 5,274,741.
Un but de l'invention est de proposer une modélisation de l'excitation dans un codeur de type CELP ou analogue et des traitements de complexité raisonnable pour réaliser un codage efficace de signaux audiofréquence.An object of the invention is to propose a modeling of the excitation in a CELP or similar type coder and processing operations of reasonable complexity in order to carry out an effective coding of audio frequency signals.
L'invention propose ainsi un procédé de codage d'un signal audiofréquence numérisé en trames successives de L échantillons, comprenant les étapes suivantes :The invention thus proposes a method of coding an audio-frequency signal digitized in successive frames of L samples, comprising the following steps:
- détermination adaptative de paramètres de synthèse définissant des filtres de synthèse ;- adaptive determination of synthesis parameters defining synthesis filters;
- détermination adaptative de paramètres d'excitation définissant un signal d'excitation à appliquer aux filtres de synthèse pour produire un signal synthétique représentatif du signal audiofréquence, en minimisant l'énergie d'un signal d'erreur résultant du filtrage de la différence entre le signal audiofréquence et le signal synthétique par au moins un filtre de pondération perceptuelle ; et - production de valeurs de quantification représentatives des paramètres déterminés, dans lequel les paramètres d'excitation incluent, pour certaines au moins des trames, une forme d'onde de L échantillons associée à un gain, ledit signal d'excitation relatif à la trame résultant de la multiplication de la forme d'onde de L échantillons par le gain associé, la forme d'onde étant constituée d'un nombre K, plus grand que 1 , de segments juxtaposés selon une partition déterminée de la trame et issus de dictionnaires respectifs, le k-ième segment étant constitué de Lk échantillons pour 1 < k < K, les nombres L1 à Lκ étant des entiers dont la somme est égale à L. Selon l'invention, la détermination des paramètres d'excitation pour au moins une trame de signal comporte les étapes suivantes : lai calcul d'un vecteur-cible de L échantillons à partir de la trame de signal et des paramètres déterminés pour au moins une trame précédente ; /b/ calcul, sur une longueur de L échantillons, d'une réponse impulsionnelle h0, h.,, ..., hL-1 d'un filtre composé des filtres de synthèse et d'un filtre de pondération perceptuelle ; Ici précalcul de vecteurs Vk k- et de matrices Mk k- k» pour des entiers k, k' et k" tels que 1 < k" < k' < k < K, avec Vk k. = tj .Hk k. et- adaptive determination of excitation parameters defining an excitation signal to be applied to the synthesis filters to produce a signal synthetic representative of the audio signal, minimizing the energy of an error signal resulting from the filtering of the difference between the audio signal and the synthetic signal by at least one perceptual weighting filter; and - production of quantization values representative of the determined parameters, in which the excitation parameters include, for at least some of the frames, a waveform of L samples associated with a gain, said excitation signal relating to the frame resulting from the multiplication of the waveform of L samples by the associated gain, the waveform being made up of a number K, greater than 1, of segments juxtaposed according to a determined partition of the frame and coming from dictionaries respective, the k-th segment being made up of L k samples for 1 <k <K, the numbers L 1 to L κ being integers whose sum is equal to L. According to the invention, the determination of the excitation parameters for at least one signal frame comprises the following steps: lai calculation of a target vector of L samples from the signal frame and parameters determined for at least one previous frame; / b / calculation, over a length of L samples, of an impulse response h 0 , h. ,, ..., h L-1 of a filter composed of the synthesis filters and a perceptual weighting filter; Here precalculation of vectors V kk - and of matrices M kk - k "for integers k, k 'and k" such that 1 <k "<k'<k<K, with V kk . = tj .H kk . and
Mk k. k" = Hk ..Hk k. , où tk désigne le k-ième vecteur, de Lk échantillons, obtenu en subdivisant le vecteur-cible selon ladite partition, Hk k. désigne la matrice de Lk lignes et Lk. colonnes dont le terme situé à la (q+1 )-ième ligne et à la (r+1 )-ième colonne (0 < q < Lk,M kk . k " = H k ..H kk ., where t k denotes the k-th vector, of L k samples, obtained by subdividing the target vector according to said partition, H kk . denotes the matrix of L k lines and L k columns whose term located in the (q + 1) -th row and in the (r + 1) -th column (0 <q <L k ,
0 < r < Lk.) vaut Hk k.(q, r) = hq+Λk_r_Λk. avec, pour 1 < k < K : k-i Λk = ∑ L et Hk k(q, r) = 0 si q < r, et (.)τ désigne l'opération de k'=l transposition ;0 <r <L k .) Is worth H kk . (Q, r) = h q + Λk _ r _ Λk . with, for 1 <k <K: ki Λk = ∑ L and H kk (q, r) = 0 if q <r, and (.) τ denotes the operation of k '= l transposition;
/d/ sélection d'au moins un segment issu du dictionnaire relatif au premier segment, par maximisation d'un critère de la forme : C Crπitti.01 ) -- [N D u e m nlι(('j 1 1))F ( (R8)) / d / selection of at least one segment from the dictionary relating to the first segment, by maximizing a criterion of the form: C C r π it t i.0 1 ) - [ N D u e m n l ι ( ( ' j 1 1 ) ) F ( ( R 8) )
où : Num1(i1) = V1 1.U1i1 (9)where: Num 1 (i1) = V 1 1 .U1 i1 (9)
Den.,(i1 ) = U1j1 τ M1 ^ ^.U^ (10) et U1 désigne un segment d'indice il du premier dictionnaire, et les étapes le/ et IV suivantes pour k allant de 2 à K : le/ pour chaque (k-l)-uplet de segments U1i1 [nj, ..., Ukj^k_1^nj venant d'être sélectionné, calcul de nombres FN[n] et FD[n] et d'un vecteur C[n] de la forme :Den., ( I1 ) = U1 j1 τ M 1 ^ ^ .U ^ (10) and U1 denotes a segment of index il from the first dictionary, and the following steps le / and IV for k ranging from 2 to K: the / for each (kl) -uplet of segments U1 i1 [nj , ..., Uk j ^ k _ 1 ^ nj just selected, calculation of numbers FN [n] and FD [n] and of a vector C [n] of the form:
FN[n] = Vk k..Uk'ik.[n] (11)
Figure imgf000009_0001
FN [n] = V kk ..Uk ' ik . [n] (11)
Figure imgf000009_0001
FD[n] = Den^ilfn], i2[n], .... i(k-1)[n]) + £ Uk',^-^ ιk..Uk'ik.[n] k'=1FD [n] = Den ^ ilfn], i2 [n], .... i (k-1) [n]) + £ Uk ', ^ - ^ ιk ..Uk' ik . [n] k '= 1
Figure imgf000009_0002
Figure imgf000009_0002
C[n] = 2. k£1Uk'ik [n].Mkιk k. (13) k'=1C [n] = 1 2 k £ Uk 'ik [n] .M kιk k. (13) k '= 1
IV sélection d'au moins un k-uplet de segments respectivement issus des k dictionnaires relatifs aux segments 1 à k, dont les k-1 premiers segments
Figure imgf000009_0003
Ukj,k_.| nι proviennent d'un (k-l)-uplet précédemment sélectionné, par maximisation d'un critère de la forme :
IV selection of at least one k-tuplet of segments respectively from k dictionaries relating to segments 1 to k, including the first k-1 segments
Figure imgf000009_0003
Uk j , k _. | n ι come from a (kl) -uplet previously selected, by maximizing a criterion of the form:
Crit mmi if k-1 πm \VΛ - [Numk(i1 ["1 Kk-i )[n], ik)fCrit mmi if k-1 πm \ VΛ - [ Num k ( i1 ["1 Kk-i) [n], ik) f
Cr,tk(l1 [n] (k 1 )[n]' lk) ~ Denk(i1 [n] i(k-1 )[n], ik) (14) où : Numk(i1[n] i(k-1)[n], ik) = FN[n] + Vk k.Ukjk (15) Cr, tk (l1 [n] (k 1) [n] ' lk) ~ Den k (i1 [n] i (k-1) [n], ik) (14) where: Num k (i1 [n] i (k-1) [n], ik) = FN [n] + V kk .Uk jk (15)
Denk(i1[n] i(k-1)[n], ik) = FD[n] + C[n].Ukjk + Uk^.M,- k k.Ukjk (16) et Ukjk désigne un segment d'indice ik du k-ième dictionnaire, la forme d'onde retenue pour la trame étant constituée d'un K-uplet de segments sélectionné à l'étape IV pour k = K.Den k (i1 [n] i (k-1) [n], ik) = FD [n] + C [n] .Uk jk + Uk ^ .M, - kk .Uk jk (16) and Uk jk denotes a segment of index ik from the k-th dictionary, the waveform retained for the frame consisting of a K-tuplet of segments selected in step IV for k = K.
Ce procédé permet de modéliser le signal d'excitation par des segments de forme d'onde juxtaposés, de façon que la forme d'onde globale puisse être vue comme un forme d'onde partitionnée en blocs successifs.This method makes it possible to model the excitation signal by juxtaposed waveform segments, so that the overall waveform can be seen as a waveform partitioned into successive blocks.
Grâce à ce partitionnement, on peut adopter de nouvelles méthodes de calcul de l'excitation, en se ramenant à une complexité raisonnable. La recherche de l'excitation procède par optimisation séquentielle et progressive sur la longueur des segments successifs de la forme d'onde.Thanks to this partitioning, we can adopt new calculation methods excitement, reduced to a reasonable complexity. The search for excitation proceeds by sequential and progressive optimization over the length of the successive segments of the waveform.
Le gain de complexité permet de proposer des dictionnaires de taille importante en juxtaposant des dictionnaires de taille raisonnable (typiquement < 210 recherches), ce qui se traduit par une meilleure modélisation du signal d'excitation donc une qualité d'écoute supérieure.The gain in complexity makes it possible to propose dictionaries of large size by juxtaposing dictionaries of reasonable size (typically <2 10 searches), which results in better modeling of the excitation signal therefore a higher listening quality.
Dans le cas de dictionnaires structurés (binaires, ACELP, ...), le procédé permet de tirer parti de la structure des dictionnaires pour diminuer de façon encore plus nette la charge de calcul à réaliser pour l'implantation. Dans les boucles de recherche de la forme d'onde optimale, les quantités essentielles sont calculées par des algorithmes rapides en dehors de ces boucles. De façon générale, les calculs décrits par la suite sont agencés, dans leur forme optimale, de sorte que le maximum de calcul soit fait à l'extérieur des boucles de recherche de la forme d'onde optimale.In the case of structured dictionaries (binary, ACELP, ...), the method makes it possible to take advantage of the structure of the dictionaries to reduce even more clearly the computational load to be carried out for the implementation. In the optimal waveform search loops, the essential quantities are calculated by fast algorithms outside these loops. Generally, the calculations described below are arranged, in their optimal form, so that the maximum of calculation is done outside the search loops of the optimal waveform.
Les dictionnaires structurés sont souvent engendrés au moyen de matrices de transformation.Structured dictionaries are often generated using transformation matrices.
Dans ce cas, pour 1 < k < K, chaque segment de Lk échantillons du dictionnaire relatif au k-ième segment de la partition des trames est le produit d'une matrice de transformation prédéfinie Fk de Lk lignes et nck colonnes par un code respectif de nck échantillons appartenant à un répertoire engendrant le dictionnaire, nck étant un entier plus petit que Lk. La détermination des paramètres d'excitation pour au moins une trame de signal comporte alors les étapes suivantes : /a/ calcul du vecteur-cible de L échantillons à partir de la trame de signal et des paramètres déterminés pour au moins une trame précédente ; /b/ calcul, sur une longueur de L échantillons, de la réponse impulsionnelle du filtre composé ; Ic'l précalcul de vecteurs Vk k- et de matrices Mk k. k.. pour des entiers k, k' et k" tels que 1 < k" < k' < k < K, avec Vk k. = tf.Hk k..Fk. etIn this case, for 1 <k <K, each segment of L k samples of the dictionary relating to the k-th segment of the partition of the frames is the product of a predefined transformation matrix F k of L k rows and nck columns by a respective code of nck samples belonging to a directory generating the dictionary, nck being an integer smaller than L k . The determination of the excitation parameters for at least one signal frame then comprises the following steps: / a / calculation of the target vector of L samples from the signal frame and of the parameters determined for at least one previous frame; / b / calculation, over a length of L samples, of the impulse response of the compound filter; Ic'l precalculation of vectors V kk - and of matrices M kk . k .. for integers k, k 'and k "such that 1 <k"<k'<k<K, with V kk . = tf.H kk ..F k . and
k,k',k" = Fk"-Hk,k"- k,k,-Fk' ; Id'l sélection d'au moins un code issu du répertoire relatif au premier segment, par maximisation d'un critère de la forme : Crit.iD - [Numl('1)f ,a ϋπtl(l1) - De(i1) (8) où: Num1(i1) = V1.,.01;., (17)k, k ', k " = F k" - H k, k "- k, k , - F k';Id'l selection of at least one code from the directory relating to the first segment, by maximizing a form criterion: Crit.iD - [ Num l (' 1 ) f, a ϋπtl (l1) - De (i1) (8) where: Num 1 (i1) = V 1 .,. 01;., (17)
Den1(i1) = C1i1 τM1 1 1.C1i1 (18) et Clj., désigne un code d'indice il du premier répertoire, et les étapes le'l et /f / suivantes pour k allant de 2 à K : le'l pour chaque (k-l)-uplet de codes C1hjnj Ck j(k-i)[n] venant d'être sélectionné, calcul de nombres FN[n] et FD[n] et d'un vecteur C[n] de la forme :Den 1 (i1) = C1 i1 τ M 1 1 1 .C1 i1 (18) and Cl j ., Denotes an index code il of the first directory, and the steps le'l and / f / following for k ranging from 2 to K: le'l for each (kl) -uplet of codes C1 h j n j Ck j (ki) [n] ve nan t to be selected, calculation of numbers FN [n] and FD [n] and of a vector C [n] of the form:
FN[n] = Numk_1(i1[n],i2[n] i(k-1)[n]) + £ Vk k..Ck'ik.[n] (19) k'=1 k-1 FD[n] = Den^MM, i2[n] i(k-1)[n]) + ∑ Ck'jk.[n τ Mk k. k..Ck'ik.[n] k'=1FN [n] = Num k _ 1 (i1 [n], i2 [n] i (k-1) [n]) + £ V kk ..Ck ' ik . [n] (19) k '= 1 k-1 FD [n] = Den ^ MM, i2 [n] i (k-1) [n]) + ∑ Ck' jk . [n τ M kk . k ..Ck ' ik . [n] k '= 1
+ 2. K∑ ∑ Ck"jk,.T Mk k, k,Ck'ik.[n] (20) k'=2 k"=1+ 2. K ∑ ∑ Ck " jk , .TM kk , k , Ck ' ik . [N] (20) k' = 2 k" = 1
C[n]= 2.k£1Ck'jk[n].Mkk.k. (21) k'=1C [n] = 2. k £ 1 Ck ' jk [n] .M kk . k . (21) k '= 1
/f/ sélection d'au moins un k-uplet de codes respectivement issus des k répertoires relatifs aux segments 1 à k, dont les k-1 premiers codes C1.ιrnι, •••' C"ki(k-l)[n] proviennent d'un (k-l)-uplet précédemment sélectionné, par maximisation d'un critère de la forme : r Crιt M(ι1M[n] ι(k- -1M)i[nnij, iιik-) = [N-=u —mk(.i.1.[.n] . i ^(k —-1.).[-n] ,,i .k,) .f (14) k L J J ' Denk(ι1[n] ι(k-1)[n],ιk) ' où : Numk(i1[n] i(k-1)[n], ik) = FN[n] + Vkk.Ckik (22)/ f / selection of at least one k-tuplet of codes respectively from the k directories relating to segments 1 to k, including the first k-1 codes C1 . ιr n ι, ••• 'C " k i (kl) [n] come from a (kl) -uplet previously selected, by maximizing a criterion of the form: r Crιt M (ι1 M [n] ι (k- -1 M ) i [ n nij, iιik-) = [N- = u —m k (.i.1. [. n]. i ^ (k —-1.). [- n], , i .k,) .f (14) k LJJ 'Den k (ι1 [n] ι (k-1) [n], ιk)' where: Num k (i1 [n] i (k-1) [ n], ik) = FN [n] + V kk .Ck ik (22)
Denk(i1[n] i(k-1)[n], ik) = FD[n] + C[n].Ckik + Ckjk τMk k k.Ckik (23) et Ckjk désigne un code d'indice ik du k-ième répertoire, la forme d'onde retenue pour la trame étant constituée d'un K-uplet de segments respectivement obtenus à partir d'un K-uplet de codes sélectionné à l'étape /f / pour k = K.Den k (i1 [n] i (k-1) [n], ik) = FD [n] + C [n] .Ck ik + Ck jk τ M kkk .Ck ik (23) and Ck jk denotes a code index ik of the k-th repertoire, the waveform retained for the frame consisting of a K-tuplet of segments respectively obtained from a K-tuplet of codes selected in step / f / for k = K.
Un autre aspect de la présente invention se rapporte à un codeur de signal audiofréquence comportant des moyens adaptés à la mise en œuvre d'un procédé tel que défini ci-dessus. D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après d'exemples de réalisation non limitatifs, en référence aux dessins annexés, dans lesquels :Another aspect of the present invention relates to an audiofrequency signal encoder comprising means suitable for implementing a method as defined above. Other features and advantages of the present invention will appear in the following description of nonlimiting exemplary embodiments, with reference to the appended drawings, in which:
- les figures 1 et 2 sont des schémas synoptiques d'un décodeur et d'un codeur CELP pouvant mettre en oeuvre l'invention ;- Figures 1 and 2 are block diagrams of a CELP decoder and coder capable of implementing the invention;
- les figures 3 et 4 sont des organigrammes de procédures de recherche du vecteur d'excitation utilisables dans un codeur selon la figure 2.FIGS. 3 and 4 are flow diagrams of procedures for searching for the excitation vector usable in an encoder according to FIG. 2.
L'invention est décrite ci-après dans son application à un codeur de parole de type CELP. Le processus de synthèse de parole mis en oeuvre dans un codeur et un décodeur CELP est illustré sur la figure 1.The invention is described below in its application to a CELP type speech coder. The speech synthesis process implemented in a CELP coder and decoder is illustrated in FIG. 1.
Un générateur d'excitation 10 délivre une forme d'onde d'excitation Uf1 i2 j« de L échantillons notés Uh i2 JK(Π), appartenant à un répertoire prédéterminé en réponse à un index élaboré au codeur. Dans le cas présent, cet index est un index composite forme de K entiers il , i2, .... iK (K > 2), le répertoire étant constitué en juxtaposant par blocs K dictionnaires prédéterminés CB1 , CB2, ..., CBK. La forme d'onde d'excitation UM i2 iK est ainsi décomposée en segments respectifs Ul^, U2j2, .... UKlK de L1 ( L2 Lκ échantillons appartenant aux K dictionnaires élémentaires (L1 + L2 + ... + Lκ = L) :An excitation generator 10 delivers an excitation waveform U f1 i2 j "of L samples denoted U h i2 JK (Π), belonging to a predetermined repertoire in response to an index produced by the coder. In the present case, this index is a composite index formed by whole K il, i2, .... iK (K> 2), the directory being constituted by juxtaposing by blocks K predetermined dictionaries CB1, CB2, ..., CBK . Form U M excitation wave i2 iK is thus decomposed into respective segments ^ Ul, U2 j2, .... UK lK of L 1 ( L 2 L κ samples belonging to K elementary dictionaries (L 1 + L 2 + ... + L κ = L):
Figure imgf000012_0001
avec, pour 1 < k < K
Figure imgf000012_0001
with, for 1 <k <K
Figure imgf000012_0002
Figure imgf000012_0002
Les K dictionnaires CB1 , ..., CBK d'où sont extraits les segments Ulj.,, U2i2, ..., UKiK peuvent être de dimension différente (Lk ≠ Lk. pour k ≠ k').The K dictionaries CB1, ..., CBK from which the segments Ul j . ,, U2 i2 , ..., UK iK are extracted can be of different dimensions (L k ≠ L k . For k ≠ k ').
Le dictionnaire CBk (1 < k < K) se compose de NCk segments distincts indexés par l'entier ik avec 1 < ik < NCk. En général, NCk sera une puissance entière de 2 (NCk = 2nck), et la transmission de l'index composite requerra donc nc1 + nc2 + ... + ncK bits par forme d'onde d'excitation, soit NC = NC1 x NC2 χ ... x NCK.The dictionary CBk (1 <k <K) consists of NCk distinct segments indexed by the integer ik with 1 <ik <NCk. In general, NCk will be an integer power of 2 (NCk = 2 nck ), and the transmission of the composite index will therefore require nc1 + nc2 + ... + ncK bits per excitation waveform, i.e. NC = NC1 x NC2 χ ... x NCK.
Un amplificateur 12 multiplie la forme d'onde US1 i2 iK par un gain d'excitation β, et le signal résultant est soumis à un filtre 14 de synthèse à long terme. Le signal de sortie u du filtre 14 est à son tour soumis à un filtre 16 de synthèse à court terme, dont la sortie s constitue ce qu'on considère ici comme le signal de parole synthétisé. Bien entendu, d'autres filtres peuvent également être mis en oeuvre au niveau du décodeur, par exemple des post-filtres, comme il est bien connu dans le domaine du codage de la parole.An amplifier 12 multiplies the waveform U S1 i2 iK by an excitation gain β, and the resulting signal is subjected to a long-term synthesis filter 14. The output signal u of the filter 14 is in turn subjected to a short-term synthesis filter 16, the output of which constitutes what is considered here as the synthesized speech signal. Of course, other filters can also be implemented at the level of the decoder, for example post-filters, as is well known in the field of speech coding.
Les signaux précités sont des signaux numériques représentés par exemple par des mots de 16 bits à une cadence d'échantillonnage Fe égale par exemple à 8 kHz. Les filtres de synthèse 14, 16 sont en général des filtres purement récursifs. Le filtre 14 de synthèse à long terme a typiquement une fonction de transfert de la forme 1/B(z) avec B(z) = 1 - b.z. Le retard T et le gain b constituent des paramètres de prédiction à long terme (LTP) qui sont déterminés d'une manière adaptative par le codeur. Les paramètres LPC du filtre 16 de synthèse à court terme sont déterminés au codeur par une prédiction linéaire du signal de parole. La fonction de transfert du filtre 16 est ainsi de la forme 1/A(z) avec :The aforementioned signals are digital signals represented for example by 16-bit words at a sampling rate F e equal for example to 8 kHz. The synthesis filters 14, 16 are generally purely recursive filters. The long-term synthesis filter 14 typically has a transfer function of the form 1 / B (z) with B (z) = 1 - bz ~ τ . The delay T and the gain b constitute long-term prediction parameters (LTP) which are determined adaptively by the coder. The LPC parameters of the short-term synthesis filter 16 are determined at the coder by a linear prediction of the speech signal. The transfer function of the filter 16 is thus of the form 1 / A (z) with:
Figure imgf000013_0001
dans le cas d'une prédiction linéaire d'ordre p (p ≈ 10 typiquement), aj représentant le i-ième coefficient de prédiction linéaire.
Figure imgf000013_0001
in the case of a linear prediction of order p (typically p ≈ 10), a j representing the i-th coefficient of linear prediction.
Le signal u(n) appliqué au filtre de synthèse à court terme 14 comporte une composante LTP b.u(n-T) et une composante résiduelle, ou séquence d'innovation, β.Uh j2 jK(n). Dans un codeur à analyse-par-synthèse, les paramètres caractérisant la composante résiduelle et, optionnellement, la composante LTP sont évalués en boucle fermée, en utilisant un filtre de pondération perceptuelle.The signal u (n) applied to the short-term synthesis filter 14 comprises an LTP bu component (nT) and a residual component, or innovation sequence, β.U h j2 jK (n). In an analysis-by-synthesis coder, the parameters characterizing the residual component and, optionally, the LTP component are evaluated in a closed loop, using a perceptual weighting filter.
La figure 2 montre le schéma d'un codeur CELP. Le signal de parole s(n) est un signal numérique, par exemple fourni par un convertisseur analogique-numérique 20 traitant le signal de sortie amplifié et filtré d'un microphone 22. Le signal s(n) est numérisé en trames successives de Nτ échantillons elles-mêmes divisées en sous-trames, ou trames d'excitation, de L échantillons d'excitation (par exemple Nτ = 320, L = 32). Les paramètres LPC, LTP et EXC (index i1 , j2 iK et gain d'excitation β) sont obtenus au niveau du codeur par trois modules d'analyse respectifs 24, 26, 28. Ces paramètres sont ensuite quantifiés de façon connue en vue d'une transmission numérique efficace, puis soumis à un multiplexeur 30 qui forme le signal de sortie du codeur. Ces paramètres sont également fournis à un module 32 de calcul d'états initiaux de certains filtres du codeur. Ce module 32 comprend essentiellement une chaîne de décodage telle que celle représentée sur la figure 1. Comme le décodeur, le module 32 opère sur la base des paramètres LPC, LTP et EXC quantifiés. Si une interpolation des paramètres LPC est effectuée au décodeur, comme il est courant, la même interpolation est effectuée par le module 32. En l'absence d'erreurs de transmission, le module 32 permet de connaître au niveau du codeur les états antérieurs des filtres de synthèse 14, 16 du décodeur, déterminés en fonction des paramètres de synthèse et d'excitation antérieurs à la sous-trame considérée.Figure 2 shows the diagram of a CELP coder. The speech signal s (n) is a digital signal, for example supplied by an analog-digital converter 20 processing the amplified and filtered output signal from a microphone 22. The signal s (n) is digitized in successive frames of N τ samples themselves divided into sub-frames, or excitation frames, of L excitation samples (for example N τ = 320, L = 32). The LPC, LTP and EXC parameters (index i1, j2 iK and excitation gain β) are obtained at the coder by three respective analysis modules 24, 26, 28. These parameters are then quantified in a known manner for the purpose of an efficient digital transmission, then subjected to a multiplexer 30 which forms the output signal of the encoder. These parameters are also supplied to a module 32 for calculating the initial states of certain coder filters. This module 32 essentially comprises a decoding chain such as that shown in FIG. 1. Like the decoder, the module 32 operates on the basis of the quantized LPC, LTP and EXC parameters. If an interpolation of the LPC parameters is carried out at the decoder, as is common, the same interpolation is carried out by the module 32. In the absence of transmission errors, the module 32 makes it possible to know at the level of the coder the previous states of the synthesis filters 14, 16 of the decoder, determined as a function of the synthesis and excitation parameters prior to the sub-frame considered.
Dans une première étape du processus de codage, le module 24 d'analyse à court terme détermine les paramètres LPC (coefficients a^ du filtre de synthèse à court terme) en analysant les corrélations à court terme du signal de parole s(n). Cette détermination est effectuée par exemple une fois par trame de Nτ échantillons, de manière à s'adapter à l'évolution du contenu spectral du signal de parole. Les méthodes d'analyse LPC sont bien connues dans la technique. On pourra par exemple se reporter à l'ouvrage « Digital Processing of Speech Signais » de L.R. Rabiner et R.W. Shafer, Prentice-Hall Int., 1978. La quantification des paramètres LPC peut être effectuée sur les coefficients at directement, ou sur d'autres paramètres auxquels ils sont liés tels que des coefficients de réflexion, des « log-area-ratio » LAR, des paramètres de raies spectrales (LSP pour « line spectrum parameters, ou LSF pour « line spectrum frequencies »), ainsi qu'il est usuel dans les techniques de codage audio. Un exemple de module 24 est décrit dans la norme G.729 publiée par I' UIT.In a first step of the coding process, the short-term analysis module 24 determines the LPC parameters (coefficients a ^ of the short-term synthesis filter) by analyzing the short-term correlations of the speech signal s (n). This determination is made for example once per frame of N τ samples, so as to adapt to the evolution of the spectral content of the speech signal. LPC analysis methods are well known in the art. We can for example refer to the book “Digital Processing of Speech Signais” by LR Rabiner and RW Shafer, Prentice-Hall Int., 1978. The quantification of LPC parameters can be performed on the coefficients a t directly, or on d other parameters to which they are linked such as reflection coefficients, LAR "log-area-ratios", spectral line parameters (LSP for "line spectrum parameters, or LSF for" line spectrum frequencies "), as well as it is common in audio coding techniques. An example of module 24 is described in standard G.729 published by the ITU.
L'étape suivante du codage consiste en la détermination des paramètres LTP de prédiction à long terme. Ceux-ci sont par exemple déterminés une fois par sous-trame de L échantillons. Un soustracteur 34 soustrait du signal de parole s(n) la réponse à un signal d'entrée nul du filtre de synthèse à court terme 16. Cette réponse est déterminée par un filtre 36 de fonction de transfert 1/A(z) dont les coefficients sont donnés par les paramètres LPC qui ont été déterminés par le module 24, et dont les états initiaux s sont fournis par le module 32 de façon à correspondre aux Mp derniers échantillons du signal synthétique. Le signal de sortie du soustracteur 34 est soumis à un filtre 38 de pondération perceptuelle dont le rôle est d'accentuer les portions du spectre où les erreurs sont les plus perceptibles, c'est-à-dire les zones inter-formantiques.The next step in coding is to determine the LTP parameters for long-term prediction. These are for example determined once per subframe of L samples. A subtractor 34 subtracts from the speech signal s (n) the response to a zero input signal from the short-term synthesis 16. This response is determined by a filter 36 of transfer function 1 / A (z) whose coefficients are given by the LPC parameters which have been determined by the module 24, and whose initial states are provided. by the module 32 so as to correspond to the M p last samples of the synthetic signal. The output signal from the subtractor 34 is subjected to a perceptual weighting filter 38 whose role is to accentuate the portions of the spectrum where the errors are most perceptible, that is to say the inter-forming zones.
La fonction de transfert W(z) du filtre de pondération perceptuelle est de la forme générale : W(z) = AN(z)/Ap(z), où AN(z) et Ap(z) sont des fonctions de transfert d'ordre Mp de type réponse impulsionnelle finie (RIF) calculées à partir de A(z), par exemple AN(z) = A(z/γι) et Ap(z) = A(z/γ2), γ-, et γ2 étant deux coefficients tels que 0 < γ2 < γ1 < 1 (Mp = p).The transfer function W (z) of the perceptual weighting filter is of the general form: W (z) = A N (z) / A p (z), where A N (z) and A p (z) are order transfer functions M p of finite impulse response (RIF) type calculated from A (z), for example A N (z) = A (z / γι) and A p (z) = A (z / γ 2 ), γ-, and γ 2 being two coefficients such that 0 <γ 21 <1 (M p = p).
L'analyse LTP en boucle fermée effectuée par le module 26 consiste, de façon classique, à sélectionner pour chaque sous-trame le retard T qui maximise la corrélation normalisée :The closed loop LTP analysis performed by the module 26 consists, in a conventional manner, in selecting for each subframe the delay T which maximizes the normalized correlation:
Figure imgf000015_0001
où x'(n) désigne le signal de sortie du filtre 38 pendant la sous-trame considérée, et yτ(n) désigne le produit de convolution S|_τp(n-T)*h'(n) . Dans l'expression ci-dessus, h'(0), h'(1 ), ..., h'(L-1 ) désigne la réponse impulsionnelle du filtre de synthèse pondéré, de fonction de transfert W(z)/A(z). Cette réponse impulsionπelle h' est obtenue par un module 40 de calcul de réponses impulsionnelles, en fonction des paramètres LPC qui ont été déterminés pour la sous-trame, le cas échéant après quantification et interpolation. Les échantillons SLTP(n-T) sont les états antérieurs du filtre 14 de synthèse à long terme, fournis par le module 32. Pour les retards T inférieurs à la longueur d'une sous-trame, les échantillons manquants S TP(n-T) sont obtenus par interpolation sur la base des échantillons antérieurs, ou à partir du signal de parole résiduel. Les retards T, entiers ou fractionnaires, sont sélectionnés dans une fenêtre déterminée. Pour réduire la plage de recherche en boucle fermée, et donc pour réduire le nombre de convolutions yτ(n) à calculer, on peut d'abord déterminer un retard T' en boucle ouverte par exemple une fois par trame, puis sélectionner les retards en boucle fermée pour chaque sous-trame dans un intervalle réduit autour de T'. La recherche en boucle ouverte consiste plus simplement à déterminer le retard T' qui maximise l'autocorrélation du signal de parole s(n) éventuellement filtré par le filtre inverse de fonction de transfert A(z). Une fois que le retard T a été déterminé, le gain gLTP de prédiction à long terme est obtenu par :
Figure imgf000015_0001
where x '(n) denotes the output signal of the filter 38 during the sub-frame considered, and y τ (n) denotes the convolution product S | _ τp (nT) * h '(n). In the above expression, h '(0), h' (1), ..., h '(L-1) denotes the impulse response of the weighted synthesis filter, with transfer function W (z) / A (z). This impulse response h 'is obtained by a module 40 for calculating impulse responses, as a function of the LPC parameters which have been determined for the sub-frame, where appropriate after quantization and interpolation. The samples S LTP (nT) are the previous states of the long-term synthesis filter 14, provided by the module 32. For the delays T less than the length of a sub-frame, the missing samples S TP (nT) are obtained by interpolation on the basis of previous samples, or from the residual speech signal. The delays T, whole or fractional, are selected in a specific window. To reduce the search range in closed loop, and therefore to reduce the number of convolutions y τ (n) to calculate, we can first determine an open loop delay T 'for example once per frame, then select the closed loop delays for each subframe in a reduced interval around T'. The open loop search consists more simply in determining the delay T 'which maximizes the autocorrelation of the speech signal s (n) possibly filtered by the reverse filter with transfer function A (z). Once the delay T has been determined, the gain g LTP of long-term prediction is obtained by:
Figure imgf000016_0001
Figure imgf000016_0001
Ce gain gLTP est quantifié, et sa valeur quantifiée b est transmise au décodeur dans les paramètres LTP.This gain g LTP is quantized, and its quantized value b is transmitted to the decoder in the LTP parameters.
Pour rechercher l'excitation CELP relative à une sous-trame, le signal b.yτ(n), qui a été calculé par le module 26 pour le retard optimal T, est d'abord soustrait du signal x'(n) par le soustracteur 42. Le signal résultant t(n) est appelé cible (target), et noté vectoriellement t dans la relation (1 ). La réponse impulsionnelle h0, h.,, ..., hL-1 du filtre composé des filtres de synthèse et du filtre de pondération perceptuelle (cf. relation (2) et (3)), est calculée par le module 40.To find the CELP excitation relating to a subframe, the signal by τ (n), which has been calculated by the module 26 for the optimal delay T, is first subtracted from the signal x '(n) by the subtractor 42. The resulting signal t (n) is called target, and denoted vectorially t in relation (1). The impulse response h 0 , h. ,, ..., h L-1 of the filter composed of the synthesis filters and the perceptual weighting filter (cf. relation (2) and (3)), is calculated by the module 40 .
En fonction de cette réponse impulsionnelle et de la cible t, le module 28 de recherche de l'excitation CELP détermine les paramètres EXC qui seront communiqués au décodeur, c'est-à-dire l'index composite i1 , i2 iK et le gain d'excitation quantifié β.As a function of this impulse response and of the target t, the module 28 for searching for the excitation CELP determines the parameters EXC which will be communicated to the decoder, that is to say the composite index i1, i2 iK and the gain of quantified excitation β.
En référence à la figure 1 , le décodeur CELP comprend un démultiplexeur 8 recevant le flux binaire issu du codeur. Les valeurs quantifiées des paramètres d'excitation EXC et des paramètres de synthèse LTP et LPC sont fournies au générateur 10, à l'amplificateur 12 et aux filtres 14, 16 pour reconstituer le signal synthétique s, qui peut par exemple être converti en analogique par le convertisseur 18 avant d'être amplifié puis appliqué à un haut-parleur 19 pour restituer la parole originale.With reference to FIG. 1, the CELP decoder comprises a demultiplexer 8 receiving the bit stream from the coder. The quantized values of the excitation parameters EXC and of the synthesis parameters LTP and LPC are supplied to the generator 10, to the amplifier 12 and to the filters 14, 16 to reconstruct the synthetic signal s, which can for example be converted into analog by the converter 18 before being amplified and then applied to a loudspeaker 19 to restore the original speech.
On va maintenant décrire le fonctionnement du module 28 du codeur de la figure 2.We will now describe the operation of the module 28 of the coder of FIG. 2.
Le critère d'erreur à minimiser E(i1 , i2, ..., iK) s'exprime en fonction de l'index composite il , i2, ..., iK et du gain associé g(i1 , i2, ..., iK) :
Figure imgf000017_0001
The error criterion to be minimized E (i1, i2, ..., iK) is expressed as a function of the composite index il, i2, ..., iK and the associated gain g (i1, i2, .. ., iK):
Figure imgf000017_0001
où le vecteur cible t = a été décomposé selon la mêmewhere the target vector t = has been decomposed according to the same
Figure imgf000017_0002
partition que la forme d'onde d'excitation UM j2 iK de la relation (24), c'est-à-
Figure imgf000017_0002
partition as the excitation waveform U M j2 iK of the relation (24), that is
Lk.. Il enL k .. There
Figure imgf000017_0003
est de même de la matrice de réponse impulsionnelle H
Figure imgf000017_0003
so is the impulse response matrix H
Figure imgf000017_0004
f k,k(o-o) k,ko. - Hkιk.(0,Lk.-1)
Figure imgf000017_0004
f k, k (oo) k, ko. - H kιk (0, L k-1.).
Hk>k-(1.0) Hkιk.(1,1) \H k> k - (1.0) H kιk . (1,1) \
Hk,k' ~ étant une matrice à Lk H k, k '~ being a matrix at L k
• '• Hk,k,(Lk-2.Lk--1)• '• H k, k , ( L k-2.L k --1)
Hkk.(Lk-1,0) ... Hkk,(Lk-1,Lk-1) lignes et Lk. colonnes dont le terme situé à la (q+1)-ième ligne et à laH kk . (L k -1,0) ... H kk , (L k -1, L k -1) lines and L k . columns whose term located on the (q + 1) -th row and at the
(r+1)-ième colonne (0 < q < Lk et 0 < r < Lk.) vaut Hk k ,(q, r) = hq+Λk_r_Λk., avec(r + 1) -th column (0 <q <L k and 0 <r <L k .) is H kk , (q, r) = h q + Λk _ r _ Λk ., with
Hk k(q, r) = 0 si q < r.H kk (q, r) = 0 if q <r.
On remarque que la matrice de filtrage H est une matrice particulière, puisque les termes des parallèles à la diagonale principale sont égaux : c'est une matrice dite de Toeplitz. De plus, la partie supérieure de la matrice H est nulle. Ces remarques conduisent aux égalités suivantes : pour 1 <k< k'≤K Hklk- = (0) (31) pour 1 < k < K et 1 < i < K-k (quand les blocs sont de même taille) : k+i,i+l = k,l (32) dont le module 28 tire profit pour accélérer les calculs nécessaires à la détermination des indices optimaux à transmettre.Note that the filtering matrix H is a particular matrix, since the terms of the parallels to the main diagonal are equal: it is a so-called Toeplitz matrix. In addition, the upper part of the matrix H is zero. These remarks lead to the following equality: for 1 <k <k'≤KH klk - = (0) (31) for 1 <k <K and 1 <i <Kk (when the blocks are the same size): k + i , i + l = k, l (32) which module 28 takes advantage of to accelerate the calculations necessary for determining the optimal indices to be transmitted.
Le gain optimal g(i1, i2, .... iK) est obtenu en prenant la dérivée de E(i1, i2 iK) par rapport au gain : j Num(i1,i2 iK) g(i1,i2,.. (33)The optimal gain g (i1, i2, .... iK) is obtained by taking the derivative of E (i1, i2 iK) with respect to the gain: j Num (i1, i2 iK) g (i1, i2, .. (33)
" Den(i1,i2,...,iK)"Den (i1, i2, ..., iK)
avec : Num(i1, i2, . -•.iK)=∑ ∑ f-Hk.k-Uk (34) k=1 k'=1with: Num (i1, i2,. - • .iK) = ∑ ∑ fH k . k -Uk (34) k = 1 k '= 1
^ Den(i1, i2 iK) = ∑ ∑Uk' kkT.Hkk,Uk'ik. k=1 k'=1^ Den (i1, i2 iK) = ∑ ∑Uk ' kk TH kk , Uk' ik . k = 1 k '= 1
Figure imgf000018_0001
Figure imgf000018_0001
Les indices des formes d'onde optimales lkopt (1 < k < K) sont obtenus lorsque le critère d'erreur E(i1, i2, ..., iK) est minimal ou, de façon équivalente, en maximisant :The indices of the optimal waveforms lk opt (1 <k <K) are obtained when the error criterion E (i1, i2, ..., iK) is minimal or, equivalently, by maximizing:
Prit.i \v\ - [Num(i1,i2 iK)f . Cπt(l1 ' l2 lK) - Den(i1,i2 iK) (36) Prit.i \ v \ - [Num (i1, i2 iK) f. " Cπt (l1 ' l2 lK) - Den (i1, i2 iK) (36)
Dans ce cas, le critère Crit(i1, i2 iK) est maximisé pour l'ensemble des NC = NC1 x NC2 x ... x NCK formes d'onde, ce qui oblige à prendre des valeurs de NCk correspondant à un nombre de bits d'au plus quelques unités si l'on veut que la complexité reste raisonnable pour une implantation sur les circuits processeurs de signal actuels.In this case, the criterion Crit (i1, i2 iK) is maximized for the set of NC = NC1 x NC2 x ... x NCK waveforms, which obliges to take values of NCk corresponding to a number of bits of not more than a few units if the complexity is to remain reasonable for implementation on current signal processor circuits.
Cependant, pour une réalisation de complexité minimale, le module 28 peut tirer parti du fait qu'il n'est pas nécessaire de tout recalculer dans les boucles de recherche sur les formes d'onde.However, for an implementation of minimal complexity, the module 28 can take advantage of the fact that it is not necessary to recalculate everything in the search loops on the waveforms.
Dans ce qui suit, on décrit un processus de recherche optimale de l'excitation CELP, dans le cas où K = 2 afin d'alléger les notations.In what follows, we describe a process of optimal search for CELP excitation, in the case where K = 2 in order to lighten the notations.
Dans les équations donnant Num(i1,i2) et Den(i1,i2), toutes les quantités qui ne sont pas fonction des index il et i2 peuvent être calculées une fois pour toutes à l'extérieur des boucles de recherche. Ceci est mis en évidence en réécrivant Num(i1 ,i2) et Den(i1 ,i2) :In the equations giving Num (i1, i2) and Den (i1, i2), all the quantities which are not a function of the indices il and i2 can be calculated once and for all outside the search loops. This is highlighted by rewriting Num (i1, i2) and Den (i1, i2):
Num(i1, i2) = (V1f1 + V21).U1n + V22.U2i2 (37)Num (i1, i2) = (V 1f1 + V 21 ) .U1 n + V 22 .U2 i2 (37)
Den(i1, \2) = U1h τ (Ml>1j1 +
Figure imgf000018_0002
+ 2.U1i1 τ.M221.U2i2 + U2j2 τM2>2ι2.U2i2
Den (i1, \ 2) = U1 h τ ( Ml> 1j1 +
Figure imgf000018_0002
+ 2.U1 i1 τ .M 221 .U2 i2 + U2 j2 τ M 2> 2ι2 .U2 i2
(38) avec: VVl1,11 == tt}}..HH1111 (39)(38) with: VVl 1 , 1 1 == tt}} .. HH 1111 (39)
Figure imgf000019_0001
Figure imgf000019_0001
M1,1,1 = : H1,1-H1,1 (42) M 1,1,1 = : H 1,1- H 1,1 (42)
M2,1,1 = H2,1 H2,1 (43) M 2.1.1 = H 2.1 H 2.1 (43)
M2,2,1 = H2,1 H2,2 (44) M 2.2.1 = H 2.1 H 2.2 (44)
M2,2,2 = H22.H22 (45) Les vecteurs-lignes (V11 +V21) et V22 et les matrices M 2,2,2 = H 22 .H 22 (45) The vector-lines (V 11 + V 21 ) and V 22 and the matrices
(M1,1,1 + M2,ι,ι)' (2-M2,2.ι) et M2,2,2 sont ca|culés une fois pour toutes avant de procéder à la boucle de recherche. De plus, le seul produit scalaire dans les relations (21) et (22) qui soit à calculer NC1 x NC2 fois est le second terme de Den(i1, i2), les autres étant calculables dans une boucle à un seul indice.( M 1,1,1 + M 2, ι, ι) '( 2 - M 2,2.ι) and M 2,2,2 are ca | once and for all before proceeding to the search loop. In addition, the only scalar product in relations (21) and (22) that can be calculated NC1 x NC2 times is the second term of Den (i1, i2), the others being calculable in a loop with a single index.
L'organigramme de la Figure 3 décrit le séquencement des calculs de la recherche simultanée (optimale) des indices il et i2 dans les deux dictionnaires CB1 et CB2.The flowchart in Figure 3 describes the sequencing of the calculations for the simultaneous (optimal) search for the indices il and i2 in the two dictionaries CB1 and CB2.
A l'étape préliminaire 50, les vecteurs (V11 +V21) et V22 et les matrices (M111 + M211), (2.M221) et M222 sont précalculés selon les relations (39) à (45) en fonction de la réponse impulsionnelle h0, h.,, .... hL_., et de la cible t, et l'un des indices (il dans l'illustration) est initialisé à 1. Dans la boucle suivante (étape 51), les termes P1(i1) = (V1 1 + V2 -|).U1j1 etIn the preliminary step 50, the vectors (V 11 + V 21 ) and V 22 and the matrices (M 111 + M 211 ), (2.M 221 ) and M 222 are precalculated according to the relations (39) to (45 ) as a function of the impulse response h 0 , h. ,, .... h L _., and the target t, and one of the indices (it in the illustration) is initialized to 1. In the loop next (step 51), the terms P1 (i1) = (V 1 1 + V 2 - | ). U1 j1 and
D1(i1) = U1J .(M1 (1 + M2ι1ι1).U1i1 sont calculés, de même que le vecteur-ligneD1 (i1) = U1 J. (M 1 (1 + M 2ι1ι1 ). U1 i1 are calculated, as well as the line vector
C(i1) = 2.U1j .M22 v Cette étape 51 est exécutée pour chaque valeur de il comprise entre 1 et NC1 (étapes 52-53). Quand M = NC1 au test 52, le moduleC (i1) = 2.U1 j .M 22 v This step 51 is executed for each value of it between 1 and NC1 (steps 52-53). When M = NC1 in test 52, the module
28 commence la recherche de la forme d'onde optimale à l'étape 54 : l'indice i2 est initialisé à 1 et les nombres Nopt et Dopt sont initialisés pour représenter un quotient Nopt/Dopt arbitrairement petit.28 begins the search for the optimal waveform in step 54: the index i2 is initialized to 1 and the numbers N opt and D opt are initialized to represent an arbitrarily small quotient N opt / D opt .
Cette recherche comprend une double boucle sur les indices il et i2. Dans la boucle externe, à l'étape 55, les termes P2(i2) = V22.U2j2 etThis search includes a double loop on the indices il and i2. In the outer loop, in step 55, the terms P2 (i2) = V 22 .U2 j2 and
D2(i2) = U2 .M222.U2i2 sont calculés, et l'indice M est pris égal à 1 pour initialiser la boucle interne. Celle-ci commence à l'étape 56 par le calcul du terme croisé D3 = C(i1 ).U2j2. A l'étape suivante 57, le numérateur NNum et le dénominateur Den du critère à maximiser sont calculés selonD2 (i2) = U2 .M 222 .U2 i2 are calculated, and the index M is taken equal to 1 for initialize the internal loop. This begins at step 56 by calculating the cross term D3 = C (i1) .U2 j2 . In the next step 57, the numerator NNum and the denominator Den of the criterion to be maximized are calculated according to
NNum = [P1 (i1 ) + P2(i2)]2 et Den = D1 (i1 ) + D2(i2) + D3, puis ce critère est comparé au précédent optimum, sans effectuer de division, à l'étape 58. SiNNum = [P1 (i1) + P2 (i2)] 2 and Den = D1 (i1) + D2 (i2) + D3, then this criterion is compared to the previous optimum, without performing a division, in step 58. If
Nopt.Den < Dopt.NNum, les indices courants il et i2 sont affectés aux indicesN opt .Den <D opt .NNum, the current indices il and i2 are assigned to the indices
I10pt et I20pt à l'étape 59, et les nombres Nopt et Dopt sont mis à jour en conséquence. Ensuite, ou si Nopt.Den > Dopt.NNum, le test 60 de fin de boucle interne (sur il ) est effectué. L'incrémentation de il à l'étape 61 fait revenir à l'étape 56 pour l'examen du segment suivant du dictionnaire CB1. Quand il = NC1 au test 60, le test 62 de fin de boucle externe (sur i2) est effectué.I1 0pt and I2 0pt in step 59, and the numbers N opt and D opt are updated accordingly. Then, or if N opt .Den> D opt .NNum, the test 60 for the end of the internal loop (on it) is carried out. Incrementing it in step 61 returns to step 56 for examining the next segment of the dictionary CB1. When it = NC1 in test 60, the end of external loop test 62 (on i2) is carried out.
L'incrémentation de i2 à l'étape 63 fait revenir à l'étape 55 pour l'examen du segment suivant du dictionnaire CB2.Incrementing i2 in step 63 returns to step 55 for examining the next segment of the dictionary CB2.
La recherche est terminée quand i2 = NC2 au test 62. Le module 28 détermine alors le gain à l'étape 64 selon la relation (33), c'est-à-direThe search is finished when i2 = NC2 in test 62. The module 28 then determines the gain in step 64 according to the relation (33), that is to say
90 l2opt) = [P1 (H0pt) + p2(l2opt)] Dopt.90 l2 opt) = [P1 (H 0 pt) + p 2 (l2 opt )] D opt .
Lorsque les dictionnaires ont une structure particulière il est également possible d'utiliser leurs propriétés pour accélérer les calculs. En particulier le calcul des termes P1 (il ), P2(i2), D1 (il ), D2(i2) et D3 peut être accéléré par des algorithmes rapides connus de l'homme du métier dans le cas de dictionnaires binaires.When the dictionaries have a particular structure it is also possible to use their properties to speed up calculations. In particular, the calculation of the terms P1 (it), P2 (i2), D1 (it), D2 (i2) and D3 can be accelerated by fast algorithms known to those skilled in the art in the case of binary dictionaries.
La procédure selon la figure 3 nécessite une double boucle sur les indices il et i2 (K boucles imbriquées dans le cas général), ce qui est relativement consommateur de puissance de calcul. L'invention propose des méthodes de recherche légèrement sous-optimales qui permettent de résoudre ce problème avec une complexité moindre, de l'ordre de la taille d'un dictionnaire.The procedure according to FIG. 3 requires a double loop on the indices il and i2 (K nested loops in the general case), which is relatively consumer of computing power. The invention proposes slightly sub-optimal search methods which make it possible to solve this problem with less complexity, of the order of the size of a dictionary.
On peut ainsi procéder en K phases. La figure 4 illustre le cas particulier où K = 2. A l'étape préliminaire 70, les vecteurs-ligne vk k' = (tk-Hk k' ) et ,es matrices Mk,k',k" = (Hk k"-Hk k' )> °lu' correspondent à ceux des équations (39) à (45) quand K = 2, sont précalculés pour 1 < k" < k' < k < K.We can thus proceed in K phases. FIG. 4 illustrates the particular case where K = 2. In the preliminary step 70, the line vectors v kk ' = (tk- H kk') and, are matrices M k, k ', k " = ( H kk "- H kk ')> ° l u ' correspond to those of equations (39) to (45) when K = 2, are precalculated for 1 <k"<k'<k<K.
Dans la première phase 71 , les N1 meilleurs candidats du premier dictionnaire CB1 sont sélectionnés en maximisant le critère Crit1(i1 ) de la relation (8) sur le premier segment du partitionnement, N1 étant un nombre supérieur ou égal à 1.In the first phase 71, the N1 best candidates of the first dictionary CB1 are selected by maximizing the criterion Crit 1 (i1) of the relation (8) on the first segment of the partitioning, N1 being a number greater than or equal to 1.
Cette relation (8) est identique à (6) en ne tenant compte que de la longueur du premier segment de la forme d'onde d'excitation, c'est-à-dire de L1 échantillons. Les produits scalaires requièrent donc sensiblement moins de multiplications.This relation (8) is identical to (6) taking into account only the length of the first segment of the excitation waveform, that is to say of L 1 samples. Scalars therefore require significantly less multiplication.
Les N1 indices il pour lesquels Crit1(î1 ) prend les plus grandes valeurs sont notés i1 [1] à i1 [N1]. Pour chaque candidat i1 [n] retenu (1 < n ≤ N1 ), le module 28 calcule, à l'étape 72, les quantités FN[n] et FD[n] et le vecteur-ligne C[n] suivants à partir des numérateur et dénominateur obtenus selon les relations (9) et (10) dans la phase de recherche 71 et de la forme d'onde correspondante U1j.,rnι du dictionnaire CB1 :The N1 indices il for which Crit 1 (î1) takes the largest values are denoted i1 [1] to i1 [N1]. For each candidate i1 [n] selected (1 <n ≤ N1), module 28 calculates, at step 72, the quantities FN [n] and FD [n] and the following line vector C [n] from numerator and denominator obtained according to relations (9) and (10) in the research phase 71 and the corresponding waveform U1 j ., r n ι from the dictionary CB1:
FN[n] = Nu(i1 [n]) + V2 1.U1i1 [n] (46)FN [n] = Nu (i1 [n]) + V 2 1 .U1 i1 [n] (46)
FD[n] = De(i1[n]) + U1i1 [nj.M2 1 1.U1i1 [n] (47)FD [n] = De (i1 [n]) + U1 i1 [n jM 2 1 1 .U1 i1 [n] (47)
C[n] = U1i1 [nf.(2.M2|2 1 ) (48)C [n] = U1 i1 [n f. (2.M 2 | 2 1 ) (48)
Ces relations (46) à (48) correspondent aux relations (11 ) à (13) pour k = 2.These relations (46) to (48) correspond to relations (11) to (13) for k = 2.
Dans une deuxième phase, pour chacun des candidats n sélectionnés dans la première phase 71 (1 < n ≤ N1 ), le module 28 maximise le critère Crit2(i1[n], i2) pour l'ensemble des formes d'onde du second dictionnaire CB2 :In a second phase, for each of the candidates n selected in the first phase 71 (1 <n ≤ N1), the module 28 maximizes the criterion Crit 2 (i1 [n], i2) for all the waveforms of the second dictionary CB2:
Critrf1[ ln] J. l2) ' = J& Den2(ι1 [#n], ι2) (49) ' avec : Num2(i1 [n], i2) = FN[n] + V2 2.U2j2 (50)Critrf1 [ l n] J. l2) '= J & Den 2 (ι1 [#n], ι2) (49)' with: Num 2 (i1 [n], i2) = FN [n] + V 2 2 .U2 j2 (50)
Den2(i1 [n], i2) = FD[n] + C[n].U2j2 + U2 .M2 2 2.U2i2 (51 )Den 2 (i1 [n], i2) = FD [n] + C [n] .U2 j2 + U2 .M 2 2 2 .U2 i2 (51)
Ces relations (49) à (51 ) correspondent aux relations (14) à (16) pour k = 2.These relations (49) to (51) correspond to relations (14) to (16) for k = 2.
Si K = 2, le module 28 sélectionne le couple d'indices i1 [n], i2 tel que Crit2(i1 [n], i2) soit maximal. Le gain correspondant g(i1 [n], i2) est pris égal àIf K = 2, the module 28 selects the pair of indices i1 [n], i2 such that Crit 2 (i1 [n], i2) is maximum. The corresponding gain g (i1 [n], i2) is taken equal to
-=r — 2;,, r , ' ; avant d'être quantifié de façon connue en soi. Den2(ι1[n], ι2)- = r - 2 ; ,, r , '; before being quantified in a manner known per se. Den 2 (ι1 [n], ι2)
La deuxième phase est représentée par la double boucle 73-83 sur la figure 4 (c'est une boucle simple si N1 = 1). Au démarrage 73 de la boucle externe, la variable Critopt est initialisée à 0 et l'index i2 du deuxième segment à 1. Les termes V2 2.U2i2 et U2 .M2 2 2.U2i2 des relations (50) et (51 ), qui ne dépendent pas du candidat n, sont d'abord calculés à l'étape 74. Ceci est généralisable pour K quelconque : les termes Vk k.Ukik et Ukik r.Mk k k.Ukjk des relations (15) et (16) sont calculables avant d'examiner les N(k-1 ) candidats ((k-l )-uplets) précédemment sélectionnés (2 < k ≤ K), ce qui évite d'avoir à refaire les produits matriciels dans chaque itération de la boucle interne.The second phase is represented by the double loop 73-83 in FIG. 4 (it is a simple loop if N1 = 1). At start 73 of the loop external, the variable Crit opt is initialized to 0 and the index i2 of the second segment to 1. The terms V 2 2 .U2 i2 and U2 .M 2 2 2 .U2 i2 of relations (50) and (51), which do not depend on the candidate n, are first calculated in step 74. This is generalizable for any K: the terms V kk .Uk ik and Uk ik r .M kkk .Uk jk of the relations (15) and (16 ) are calculable before examining the N (k-1) candidates ((kl) -uplets) previously selected (2 <k ≤ K), which avoids having to redo the matrix products in each iteration of the internal loop .
Au démarrage 75 de la boucle interne, l'index n du candidat pour le premier segment est initialisé à 1. Dans chaque itération de cette boucle interne, le module 28 calcule les termes Num2 et Den2 des relations selon (50) et (51 ) à l'étape 76, puis le quotient Crit = Num2 / Den2 à l'étape 77. Si Crit2(i1 [n], i2) > Critopt (test 78), les indices courants i1 [n] et i2 sont affectés aux indices I10pt et I20pt à l'étape 79, et Critopt est remplacée par Crit = Crit2(i1[n], i2) . Ensuite, ou si Crit2(i1 [n], i2) < Critopt, le test 80 de fin de boucle interne (sur n) est effectué. L'incrémentation de n à l'étape 81 fait revenir à l'étape 76 pour l'examen du segment candidat suivant du dictionnaire CB1. Quand n = N1 au test 80, le test 82 de fin de boucle externe (sur i2) est effectué. L'incrémentation de i2 à l'étape 83 fait revenir à l'étape 75 pour l'examen du segment suivant du dictionnaire CB2. La recherche est terminée quand i2 = NC2 au test 82. Le module 28 détermine alors le gain à l'étape 84 selon la relation (33), c'est-à-direAt the start 75 of the internal loop, the candidate's index n for the first segment is initialized to 1. In each iteration of this internal loop, the module 28 calculates the terms Num 2 and Den 2 of the relations according to (50) and ( 51) in step 76, then the quotient Crit = Num 2 / Den 2 in step 77. If Crit 2 (i1 [n], i2)> Crit opt (test 78), the current indices i1 [n] and i2 are assigned to the indices I1 0pt and I2 0pt in step 79, and Crit opt is replaced by Crit = Crit 2 (i1 [n], i2). Then, or if Crit 2 (i1 [n], i2) <Crit opt , the end of internal loop 80 test (on n) is performed. Incrementing n at step 81 returns to step 76 for examining the next candidate segment of the dictionary CB1. When n = N1 in test 80, the test 82 for the end of the external loop (on i2) is carried out. Incrementing i2 at step 83 returns to step 75 for examining the next segment of the CB2 dictionary. The search is finished when i2 = NC2 in test 82. The module 28 then determines the gain in step 84 according to the relation (33), that is to say
9(' V l2opt) = Num2(" V l2oPt) ' Den2(' V l2oPt)-9 ('V l2 opt) = Num 2 ("V l2 o P t)' Den 2 ('V l2 o P t) -
Si K > 2, le processus est réitéré. Au début de la k-ième phase avec 1 < k < K, les quantités FN[n] et FD[n] et le vecteur-ligne C[n] sont mis à jour selon les relations (11 ) à (13). Au cours de cette k-ième phase (1 < k < K), le module 28 sélectionne Nk k-uplets, en maximisant critère de la relation (14).If K> 2, the process is repeated. At the start of the k-th phase with 1 <k <K, the quantities FN [n] and FD [n] and the line vector C [n] are updated according to relations (11) to (13). During this k-th phase (1 <k <K), the module 28 selects Nk k-tuples, by maximizing criterion of the relation (14).
La recherche est terminée quand k = K (avec NK = 1 ). Le module 28 sélectionne le K-uplet d'indices tel que Critκ(i1 [n] i(k-1 )[n], ik) soit maximal. Le gain correspondant est pris égal àThe search is finished when k = K (with NK = 1). The module 28 selects the K-tuplet of indices such that Crit κ (i1 [n] i (k-1) [n], ik) is maximum. The corresponding gain is taken equal to
Numκ(i1 [n], i2[n] i(k-1 )[n], ik) t .| (.. 4.- . . -=7 — /-, , i r — .,, Λ sr , ., s avant d être quantifie de façon connue en soi. Denκ(ι1 [n], ι2[n] (k-1 )[n], ιk) γ Num κ (i1 [n], i2 [n] i (k-1) [n], ik) t . | ( .. 4 .-.. - = 7 - / -,, i r -. ,, Λ sr,., S before being quantified in a manner known per se. Den κ (ι1 [n], ι2 [n] (k-1) [n], ιk) γ
A chaque phase k (1 < k < K), la recherche fournit un ou plusieurs segments de forme d'onde issus du dictionnaire CBk de taille NCk, en utilisant des produits scalaires de vecteurs de dimension Lk. L'optimisation porte donc exclusivement sur le segment de rang k du partitionnement des formes d'onde. On peut se dispenser de considérer l'influence du segment k sur les segments précédents car elle est nulle à cause de la structure de Toeplitz de la matrice H. En revanche, l'influence des segments précédents est prise en compte dans la phase k. L'économie de calcul appréciable faite en ne considérant pas (au cours de la phase k) l'influence du segment k sur les segments suivants conduit à une solution qui n'est que faiblement sous-optimale étant donné que chacun de ces segments suivants fera l'objet d'une recherche ultérieure dans un dictionnaire.At each phase k (1 <k <K), the search provides one or more waveform segments from the dictionary CBk of size NCk, using scalar products of vectors of dimension L k . The optimization therefore relates exclusively to the segment of rank k of the partitioning of the waveforms. One can dispense with considering the influence of the segment k on the preceding segments because it is null because of the Toeplitz structure of the matrix H. On the other hand, the influence of the preceding segments is taken into account in phase k. The appreciable calculation economy made by not considering (during phase k) the influence of the segment k on the following segments leads to a solution which is only slightly sub-optimal since each of these following segments will be searched later in a dictionary.
L'algorithme illustré par la figure 4 effectue des divisions aux itérations de l'étape 77. On aura noté que l'optimisation peut être effectuée sans division, par la même méthode que sur la figure 3 (test 58).The algorithm illustrated in FIG. 4 performs divisions at the iterations of step 77. It will have been noted that the optimization can be carried out without division, by the same method as in FIG. 3 (test 58).
L'agencement des calculs illustré sur la figure 4 permet de réduire encore plus la charge de calcul lorsque les dictionnaires CB1 , CB2, .... CBK ont une structure algébrique du type ACELP ou binaire.The arrangement of the calculations illustrated in FIG. 4 makes it possible to further reduce the calculation load when the dictionaries CB1, CB2, ... CBK have an algebraic structure of the ACELP or binary type.
Ainsi, l'introduction d'une matrice de transformation permet de modifier les propriétés du dictionnaire de formes d'onde. Les matrices de transformation peuvent être optimisées sur un corpus de référence ou posséder elles-mêmes une structure algébrique. Dans ce dernier cas, elles peuvent notamment être utilisées pour générer des codes à valeurs ternaires +1 / 0 / -1 indexés à partir de codes binaires. Partant de NCk = 2nck codes binaires Ckjk décrivant toutes les combinaisons possibles de nck échantillons à valeurs ±1 , on forme un dictionnaire de NCk segments de forme d'onde Ukik de longueur Lk en appliquant une matrice de transformation Fk à Lk lignes et nck colonnes :Thus, the introduction of a transformation matrix makes it possible to modify the properties of the waveform dictionary. The transformation matrices can be optimized on a reference corpus or have an algebraic structure themselves. In the latter case, they can notably be used to generate codes with +1 / 0 / -1 ternary values indexed from binary codes. Starting from NCk = 2 nck binary codes Ck jk describing all the possible combinations of nck samples with values ± 1, we form a dictionary of NCk waveform segments Uk ik of length L k by applying a transformation matrix F k to L k rows and nck columns:
Ukik = Fk.Ckik (52)Uk ik = F k .Ck ik (52)
Les expressions (9) à (13) et (15) à (16) sont modifiées en remplaçant les segments Ukjk par les codes binaires correspondants Ckjk (ce qui donne respectivement les relations (17) à (23)), après avoir remplacé les vecteurs- ligne (tf.Hkιk.) par (tJ.Hk k,Fk. ) et les matrices (Hk J..Hk k. ) parThe expressions (9) to (13) and (15) to (16) are modified by replacing the segments Uk jk by the corresponding binary codes Ck jk (which gives respectively the relations (17) to (23)), after having replaced the line vectors (tf.H kιk .) by (tJ.H kk , F k .) and the matrices (H k J..H kk .) by
ψj -Hk k"-Hk,k,-Fk' J P°ur 1k" ≤ k' ≤ k ≤ dans les calculs faits une fois pour toutes à l'étape 70 pour obtenir les vecteurs Vk k- et les matrices Mk k. k».ψj - H kk " - H k, k , - F k 'JP ° ur 1k " ≤ k ' ≤ k ≤ in the calculations made once and for all in step 70 to obtain the vectors V kk - and the matrices M kk . k ".
Compte tenu de la nature binaire des codes Ckjk, le calcul des numérateurs Numk(i1 [π], .... i(k— 1 )[n], ik) et des dénominateursGiven the binary nature of Ck jk codes, the calculation of Num k numerators (i1 [π], .... i (k— 1) [n], ik) and denominators
Denk(i1[n] i(k— 1 )[n], ik) peut d'autre part être effectué par des algorithmes rapides connus dans le domaine du traitement numérique du signal.Den k (i1 [n] i (k— 1) [n], ik) can on the other hand be carried out by fast algorithms known in the field of digital signal processing.
A titre d'exemple, des formes d'onde de L = 20 échantillons peuvent être partitionnées en K = 2 segments de L1 = L2 = 10 échantillons chacune, avec deux dictionnaires identiques CB1 = CB2 composés de 28 = 256 formes d'onde engendrées par une matrice de transformation F1 = F2 = F donnée par : 00 0 0 0 0 0 0 1 0 0 0 0 0 0For example, waveforms of L = 20 samples can be partitioned into K = 2 segments of L 1 = L 2 = 10 samples each, with two identical dictionaries CB1 = CB2 composed of 2 8 = 256 forms d wave generated by a transformation matrix F 1 = F 2 = F given by: 00 0 0 0 0 0 0 1 0 0 0 0 0 0
00100000 0001000000100000 00010000
F = 00001000 00000100 (53) 00000010 00000000 00000001 00000000F = 00001000 00000100 (53) 00000010 00000000 00000001 00000000
La structure du dictionnaire peut alors être utilisée pour obtenir les produits scalaires moyennant une charge de calcul minimale. Les méthodes utilisables sont notamment décrites dans les références : « A robust and fast CELP coder at 16 kbit/s », par A. Le Guyader, D. Massaloux et J.F. Zurcher, paru dans la revue Speech Communication, Vol. 7, 1988, pages 217-226 ; et « Vector Sum Excited Linear Prédiction (VSELP) : speech coding at 8 bps" par A. Gerson et M.A. Jasiuk, paru dans les actes de la conférence ICASSP, 1990, pages 461-464.The dictionary structure can then be used to obtain the scalar products with a minimal computational load. The methods that can be used are described in particular in the references: "A robust and fast CELP coder at 16 kbit / s", by A. Le Guyader, D. Massaloux and J.F. Zurcher, published in the journal Speech Communication, Vol. 7, 1988, pages 217-226; and "Vector Sum Excited Linear Prediction (VSELP): speech coding at 8 bps" by A. Gerson and M.A. Jasiuk, published in the proceedings of the ICASSP conference, 1990, pages 461-464.
Dans cet exemple, on a obtenu des résultats satisfaisant en retenant comme candidats les N1 = 3 indices du dictionnaire de la première partition qui donnent le critère d'erreur le plus faible. Dans les essais qui ont été effectués, le signal de parole était soumis à un détecteur voisé/non-voisé. Selon la décision de celui-ci, il était ensuite soumis à une recherche de type ACELP pour les trames voisées et de type binaire transformé selon la matrice F donnée par (53) pour les trames non-voisées. In this example, satisfactory results have been obtained by choosing as candidates the N1 = 3 dictionary indices of the first partition which give the lowest error criterion. In the tests which were carried out, the speech signal was subjected to a voiced / unvoiced detector. According to the latter's decision, it was then subjected to a search of ACELP type for the voiced frames and of binary type transformed according to the matrix F given by (53) for the non-voiced frames.

Claims

R E V E N D I C A T I O N S
1. Procédé de codage d'un signal audiofréquence numérisé en trames successives de L échantillons, comprenant les étapes suivantes :1. Method for coding an audio-frequency signal digitized in successive frames of L samples, comprising the following steps:
- détermination adaptative de paramètres de synthèse définissant des filtres de synthèse ;- adaptive determination of synthesis parameters defining synthesis filters;
- détermination adaptative de paramètres d'excitation définissant un signal d'excitation à appliquer aux filtres de synthèse pour produire un signal synthétique représentatif du signal audiofréquence, en minimisant l'énergie d'un signal d'erreur résultant du filtrage de la différence entre le signal audiofréquence et le signal synthétique par au moins un filtre de pondération perceptuelle ; et- adaptive determination of excitation parameters defining an excitation signal to be applied to the synthesis filters to produce a synthetic signal representative of the audio signal, by minimizing the energy of an error signal resulting from the filtering of the difference between the audio signal and the synthetic signal by at least one perceptual weighting filter; and
- production de valeurs de quantification représentatives des paramètres déterminés, dans lequel les paramètres d'excitation incluent, pour certaines au moins des trames, une forme d'onde de L échantillons associée à un gain, ledit signal d'excitation relatif à la trame résultant de la multiplication de la forme d'onde de L échantillons par le gain associé, la forme d'onde étant constituée d'un nombre K, plus grand que 1 , de segments juxtaposés selon une partition déterminée de la trame et issus de dictionnaires respectifs, le k-ième segment étant constitué de Lk échantillons pour 1 ≤ k < K, les nombres L1 à Lκ étant des entiers dont la somme est égale à L, caractérisé en ce que la détermination des paramètres d'excitation pour au moins une trame de signal comporte les étapes suivantes : lai calcul d'un vecteur-cible de L échantillons à partir de la trame de signal et des paramètres déterminés pour au moins une trame précédente ;production of quantization values representative of the determined parameters, in which the excitation parameters include, for at least some of the frames, a waveform of L samples associated with a gain, said excitation signal relating to the resulting frame multiplication of the waveform of L samples by the associated gain, the waveform consisting of a number K, greater than 1, of segments juxtaposed according to a determined partition of the frame and coming from respective dictionaries , the k-th segment being made up of L k samples for 1 ≤ k <K, the numbers L 1 to L κ being integers whose sum is equal to L, characterized in that the determination of the excitation parameters for at at least one signal frame comprises the following steps: lai calculating a target vector of L samples from the signal frame and the parameters determined for at least one previous frame;
Ibl calcul, sur une longueur de L échantillons, d'une réponse impulsionnelle h0, h1 h -1 d'un filtre composé des filtres de synthèse et d'un filtre de pondération perceptuelle ; Ici précalcul de vecteurs Vk k. et de matrices Mk k- kM pour des entiers k, k' et k" tels que 1 < k" < k' < k < K, avec Vk k. = tJ.Hk k. etIbl calculation, over a length of L samples, of an impulse response h 0 , h 1 h -1 of a filter composed of the synthesis filters and of a perceptual weighting filter; Here precalculation of vectors V kk . and of matrices M kk - k M for integers k, k 'and k "such that 1 <k"<k'<k<K, with V kk . = tJ.H kk . and
Mk k' k" = ^k k"'-^k,k' ' ou *k désigne le k-ième vecteur, de Lk échantillons, obtenu en subdivisant le vecteur-cible selon ladite partition, Hkk. désigne la matrice de Lk lignes et Lk. colonnes dont le terme situé à la (q+1)-ième ligne et à la (r+1)-ième colonne (0 < q < Lk, 0 < r < Lk.) vaut Hk k-(q, r) = hq+Λk_r_Λk, avec, pour 1 < k < K : k-1 Λk = ∑Lk. et Hkk(q, r) = 0 si q < r, et (.)τ désigne l'opération de k'=ι transposition ; M kk 'k " = ^ kk"' - ^ k , k '' or * k denotes the k-th vector, of L k samples, obtained by subdividing the target vector according to said partition, H kk . denotes the matrix of L k lines and L k . columns whose term located in the (q + 1) -th row and in the (r + 1) -th column (0 <q <L k , 0 <r <L k .) equals H kk - (q, r ) = h q + Λk _ r _ Λk , with, for 1 <k <K: k-1 Λk = ∑L k . and H kk (q, r) = 0 if q <r, and (.) τ denotes the operation of k '= ι transposition;
/d/ sélection d'au moins un segment issu du dictionnaire relatif au premier segment, par maximisation d'un critère de la forme :/ d / selection of at least one segment from the dictionary relating to the first segment, by maximizing a criterion of the form:
Crit f m- tNumι(i1>FCrit f m- t Num ι ( i1 > F
Cπtι(,1) - D Deenn.,(Mi1)) où: Num1(i1) = V1 1.U1i1 Den^il) = U1i1 τ.M1 1ι1.U1i1 et U1 désigne un segment d'indice il du premier dictionnaire, s étapes lel et IV suivantes pour k allant de 2 à K : lel pour chaque (k-l)-uplet de segments
Figure imgf000026_0001
venant d'être sélectionné, calcul de nombres FN[n] et FD[n] et d'un vecteur C[n] de la forme :
Cπt ι (, 1) - D Deenn., (Mi1)) where: Num 1 (i1) = V 1 1 .U1 i1 Den ^ il) = U1 i1 τ .M 1 1ι1 .U1 i1 and U1 denotes a segment d index il of the first dictionary, s following steps lel and IV for k ranging from 2 to K: lel for each (kl) -uplet of segments
Figure imgf000026_0001
having just been selected, calculation of numbers FN [n] and FD [n] and of a vector C [n] of the form:
FN[n] = Num^fllln], i2[n] i(k-1)[n])+ £ Vk k,Uk'ik.[n] k'=1 k-1FN [n] = Num ^ fllln], i2 [n] i (k-1) [n]) + £ V kk , Uk ' ik . [n] k '= 1 k-1
FD[n] = Den^^illn], i2[n] i(k-1)[n]) + ∑ Uk'ik.[n τ ].Mkk.k,.Uk, ik.[n] k'=1 k-1 k'-1 + 2. ∑ ∑ Uk"jk„rn].Mk k. k".Uk'ik.[n] k'=2 k"=lFD [n] = Den ^^ illn], i2 [n] i (k-1) [n]) + ∑ Uk ' ik . [n τ ] .M kk . k , .Uk , ik . [n] k '= 1 k-1 k'-1 + 2. ∑ ∑ Uk " jk „ r n] .M kk . k ".Uk' ik . [n ] k '= 2 k "= l
C[n] = 2.k£1Uk'jk ι:[n].Mk)kιk, ; k'=1 IV sélection d'au moins un k-uplet de segments respectivement issus des k dictionnaires relatifs aux segments 1 à k, dont les k-1 premiers segments Ul^^, .... Uk^^^ proviennent d'un (k-l)-uplet précédemment sélectionné, par maximisation d'un critère de la forme :C [n] = 2.k £ 1 Uk ' jk ι : [n] .M k) kιk,; k '= 1 IV selection of at least one k-tuplet of segments respectively from the k dictionaries relating to the segments 1 to k, of which the first k-1 segments Ul ^^, .... Uk ^^^ come from a (kl) -uplet previously selected, by maximizing a criterion of the form:
^ -x I- „ H Γ T 'n [Numk(i1[n] i(k-1)[n],ik)]2 ^ -x I - „ H Γ T ' n [Num k (i1 [n] i (k-1) [n], ik)] 2
Crιtk(ι1[n],...,ι(k-1)[n],ιk) = i-=-- — κ...L r ... ') i ..'* k x ' Denk(ι1[n],...,ι(k-1)[n],ιk) où: Numk(i1[n] i(k-1)[n], ik) = FN[n] + Vkk.Ukik Denk(i1 [n] i(k-1 )[n], ik) = FD[n] + C[n].Ukjk + Ukik r.Mkιkιk.Ukik et Ukik désigne un segment d'indice ik du k-ième dictionnaire, la forme d'onde retenue pour la trame étant constituée d'un K-uplet de segments sélectionné à l'étape IV pour k = K.Crιt k (ι1 [n], ..., ι (k-1) [n], ιk) = i - = - - κ ... L r ... ') i ..' * kx 'Den k (ι1 [n], ..., ι (k-1) [n], ιk) where: Num k (i1 [n] i (k-1) [n], ik) = FN [n] + V kk .Uk ik Den k (i1 [n] i (k-1) [n], ik) = FD [n] + C [n] .Uk jk + Uk ik r .M kιkιk .Uk ik and Uk ik denotes a segment of index ik of the k-th dictionary, the waveform retained for the frame consisting of a K-tuplet of segments selected in step IV for k = K.
2. Procédé de codage d'un signal audiofréquence numérisé en trames successives de L échantillons, comprenant les étapes suivantes :2. Method for coding an audio-frequency signal digitized in successive frames of L samples, comprising the following steps:
- détermination adaptative de paramètres de synthèse définissant des filtres de synthèse ;- adaptive determination of synthesis parameters defining synthesis filters;
- détermination adaptative de paramètres d'excitation définissant un signal d'excitation à appliquer aux filtres de synthèse pour produire un signal synthétique représentatif du signal audiofréquence, en minimisant l'énergie d'un signal d'erreur résultant du filtrage de la différence entre le signal audiofréquence et le signal synthétique par au moins un filtre de pondération perceptuelle ; et - production de valeurs de quantification représentatives des paramètres déterminés, dans lequel les paramètres d'excitation incluent, pour certaines au moins des trames, une forme d'onde de L échantillons associée à un gain, ledit signal d'excitation relatif à la trame résultant de la multiplication de la forme d'onde de L échantillons par le gain associé, la forme d'onde étant constituée d'un nombre K, plus grand que 1 , de segments juxtaposés selon une partition déterminée de la trame et issus de dictionnaires respectifs, le k-ième segment étant constitué de Lk échantillons pour 1 < k < K, les nombres L1 à Lκ étant des entiers dont la somme est égale à L, et dans lequel, pour 1 < k < K, chaque segment de Lk échantillons du dictionnaire relatif au k-ième segment de la partition est le produit d'une matrice de transformation prédéfinie Fk de Lk lignes et nck colonnes par un code respectif de nck échantillons appartenant à un répertoire engendrant le dictionnaire, nck étant un entier plus petit que Lk, caractérisé en ce que la détermination des paramètres d'excitation pour au moins une trame de signal comporte les étapes suivantes : lai calcul d'un vecteur-cible de L échantillons à partir de la trame de signal et des paramètres déterminés pour au moins une trame précédente ; /b/ calcul, sur une longueur de L échantillons, d'une réponse impulsionnelle h0, h1 , ..., hL-1 d'un filtre composé des filtres de synthèse et d'un filtre de pondération perceptuelle ;- adaptive determination of excitation parameters defining an excitation signal to be applied to the synthesis filters to produce a synthetic signal representative of the audio signal, by minimizing the energy of an error signal resulting from the filtering of the difference between the audio signal and the synthetic signal by at least one perceptual weighting filter; and - production of quantization values representative of the determined parameters, in which the excitation parameters include, for at least some of the frames, a waveform of L samples associated with a gain, said excitation signal relating to the frame resulting from the multiplication of the waveform of L samples by the associated gain, the waveform being made up of a number K, greater than 1, of segments juxtaposed according to a determined partition of the frame and coming from dictionaries respective, the k-th segment being made up of L k samples for 1 <k <K, the numbers L 1 to L κ being integers whose sum is equal to L, and in which, for 1 <k <K, each segment of L k samples of the dictionary relative to the k-th segment of the partition is the product of a predefined transformation matrix F k of L k lines and nck columns by a respective code of nck samples belonging to a generated directory ant the dictionary, nck being an integer smaller than L k , characterized in that the determination of the excitation parameters for at least one signal frame comprises the following steps: lai calculation of a target vector of L samples from the signal frame and parameters determined for at least one previous frame; / b / calculation, over a length of L samples, of an impulse response h 0 , h 1 , ..., h L-1 of a filter composed of the synthesis filters and of a perceptual weighting filter;
Ici précalcul de vecteurs Vk k- et de matrices Mk k- k.. pour des entiers k, k' et k" tels que 1 < k" < k' < k < K, avec Vk k. = tj .Hk k..Fk. etHere precalculation of vectors V kk - and of matrices M kk - k .. for integers k, k 'and k "such that 1 <k"<k'<k<K, with V kk . = tj .H kk ..F k . and
Mk k. k.. = rT kX.Hk k„.Hk k..Fk. , où tk désigne le k-ième vecteur, de Lk échantillons, obtenu en subdivisant le vecteur-cible selon ladite partition, Hk k. désigne la matrice de Lk lignes et Lk- colonnes dont le terme situé à la (q+1 )-ième ligne et à la (r+1 )-ième colonne (0 < q < Lk,M kk . k .. = rT k XH kk „.H kk ..F k . , where t k denotes the k-th vector, of L k samples, obtained by subdividing the target vector according to said partition, H kk . denotes the matrix of L k rows and L k - columns whose term located in the (q + 1) -th row and in the (r + 1) -th column (0 <q <L k ,
0 < r < Lk.) vaut Hk k ,(q, r) = hq+Λk_r_Λk. avec, pour 1 < k < K : k-1 Λk = ∑ Lk, et Hk k(q, r) = 0 si q < r, et (.)τ désigne l'opération de k'=1 transposition ; /d/ sélection d'au moins un code issu du répertoire relatif au premier segment, par maximisation d'un critère de la forme : c CrriHtπ") --
Figure imgf000028_0001
où : Num.,(i1 ) = V1 1.C1i1
0 <r <L k .) Is H kk , (q, r) = h q + Λk _ r _ Λk . with, for 1 <k <K: k-1 Λk = ∑ L k , and H kk (q, r) = 0 if q <r, and (.) τ denotes the operation of k '= 1 transposition; / d / selection of at least one code from the directory relating to the first segment, by maximizing a criterion of the form: c C r r iHtπ " ) -
Figure imgf000028_0001
where: Num., (i1) = V 1 1 .C1 i1
Den1(i1 ) = C1j1 τ M1 1 1.C1i1 et Clj-, désigne un code d'indice il du premier répertoire, s étapes le/ et IV suivantes pour k allant de 2 à K : lel pour chaque (k-l)-uplet de codes Cl^^j, ..., Ckj/k_1 ^n-, venant d'être sélectionné, calcul de nombres FN[n] et FD[n] et d'un vecteur C[n] de la forme :Den 1 (i1) = C1 j1 τ M 1 1 1 .C1 i1 and Cl j -, designates an index code il of the first repertoire, s steps le / and IV following for k going from 2 to K: lel for each (kl) -uplet of codes Cl ^^ j, ..., Ck j / k _ 1 ^ n -, having just been selected, calculation of numbers FN [n] and FD [n] and of a vector C [n] of the form:
FN[n] = Vk k-.Ck'ik.[n]
Figure imgf000028_0002
k-1 FD[n] = Den^M tn], i2[n] i(k-1 )[n]) + £ Ck'ik.[n τ ].Mk k. k..Ck'ik.[n] k'=ι k— 1 k'-1 + 2. £ £ Ck"ik..[J].Mk k. k...Ck'ik.[n] k'=2 k"=1
Figure imgf000029_0001
FN [n] = V kk -.Ck ' ik . [not]
Figure imgf000028_0002
k-1 FD [n] = Den ^ M tn], i2 [n] i (k-1) [n]) + £ Ck ' ik . [n τ ] .M kk . k ..Ck ' ik . [n] k '= ι k— 1 k'-1 + 2. £ £ Ck " ik .. [ J ] .M kk . k ... Ck' ik . [n] k '= 2 k" = 1
Figure imgf000029_0001
IV sélection d'au moins un k-uplet de codes respectivement issus des k répertoires relatifs aux segments 1 à k, dont les k-1 premiers codes C1j1 [n], ..., Ckj(k_1 )[n] proviennent d'un (k-l )-uplet précédemment sélectionné, par maximisation d'un critère de la forme :IV selection of at least one k-tuplet of codes respectively from k directories relating to segments 1 to k, including the first k-1 codes C1 j1 [n] , ..., Ck j (k _ 1) [n ] come from a (kl) -uplet previously selected, by maximizing a criterion of the form:
Crit «1 M i. k-1 Uni \ \ - [Num (i1 i(k-1 )[n], ik)]2 Cπtk(l1 [n] I(k 1 )[n]' lk) - Denk(i1 [n] i(k-1 )[n], ik) où : Numk(i1 [n] i(k-1 )[n], ik) = FN[n] + Vk k.Ckjk Crit "1 M i. k-1 Uni \ \ - [ Num ( i1 i (k-1) [n], ik)] 2 Cπtk (l1 [n] I (k 1) [n] ' lk) - Den k (i1 [n] i (k-1) [n], ik) where: Num k (i1 [n] i (k- 1) [n], ik) = FN [n] + V kk .Ck jk
Denk(i1 [n] i(k-1 )[n], ik) = FD[n] + C[n].Ckik + Ck .M,, k k.Ckik et Ckjk désigne un code d'indice ik du k-ième répertoire, la forme d'onde retenue pour la trame étant constituée d'un K-uplet de segments respectivement obtenus à partir d'un K-uplet de codes sélectionné à l'étape IV pour k = K.Den k (i1 [n] i (k-1) [n], ik) = FD [n] + C [n] .Ck ik + Ck .M ,, kk .Ck ik and Ck jk denotes a code of index ik of the k-th repertoire, the waveform retained for the frame consisting of a K-tuplet of segments respectively obtained from a K-tuplet of codes selected in step IV for k = K.
3. Procédé selon la revendication 2, dans lequel les codes des répertoires sont des codes binaires à valeurs ±1.3. Method according to claim 2, in which the directory codes are binary codes with values ± 1.
4. Procédé selon l'une quelconque des revendications précédentes, dans lequel le gain associé à la forme d'onde retenue pour une trame est pris4. Method according to any one of the preceding claims, in which the gain associated with the waveform selected for a frame is taken
- ol βl l nnnnrt Numκ(i1 [n], i2[n],..., i(k-1 )[n], ik) l ιn.ût égal au rapport -=; — ,.. r . , r rr. — „ .. . ., , relatif audit K-uplet a Denκ(ι1 [n], ι2[n] ι(k-1 )[n], ιk) sélectionné à l'étape IV pour k = K.- ol βl l nnnnrt Num κ (i1 [n], i2 [n], ..., i (k-1) [n], ik) l ιn . was equal to the ratio - =; -, .. r . , r rr. - „... ., Concerning said K-tuple has Den κ (ι1 [n], ι2 [n] ι (k-1) [n], ιk) selected in step IV for k = K.
5. Procédé selon l'une quelconque des revendications précédentes, dans lequel les nombres L1 à Lκ sont identiques, de même que les dictionnaires relatifs aux K segments.5. Method according to any one of the preceding claims, in which the numbers L 1 to L κ are identical, as are the dictionaries relating to the K segments.
6. Procédé selon la revendication 5, dans lequel K = 2.6. Method according to claim 5, in which K = 2.
7. Codeur de signal audiofréquence, comprenant :7. Audiofrequency signal encoder, comprising:
- des moyens pour recevoir le signal audiofréquence numérisé en trames successives de L échantillons ;means for receiving the digital audio signal in successive frames of L samples;
- des moyens de détermination adaptative de paramètres de synthèse définissant des filtres de synthèse ; - des moyens de détermination adaptative de paramètres d'excitation définissant un signal d'excitation à appliquer aux filtres de synthèse pour produire un signal synthétique représentatif du signal audiofréquence, en minimisant l'énergie d'un signal d'erreur résultant du filtrage de la différence entre le signal audiofréquence et le signal synthétique par au moins un filtre de pondération perceptuelle ; etmeans of adaptive determination of synthesis parameters defining synthesis filters; means of adaptive determination of excitation parameters defining an excitation signal to be applied to the synthesis filters to produce a synthetic signal representative of the audio frequency signal, by minimizing the energy of an error signal resulting from the filtering of the difference between the audio signal and the synthetic signal by at least one perceptual weighting filter; and
- des moyens de production de valeurs de quantification représentatives des paramètres déterminés, dans lequel les paramètres d'excitation incluent, pour certaines au moins des trames, une forme d'onde de L échantillons associée à un gain, ledit signal d'excitation relatif à la trame résultant de la multiplication de la forme d'onde de L échantillons par le gain associé, la forme d'onde étant constituée d'un nombre K, plus grand que 1 , de segments juxtaposés selon une partition déterminée de la trame et issus de dictionnaires respectifs, le k-ième segment étant constitué de Lk échantillons pour 1 < k ≤ K, les nombres L1 à Lκ étant des entiers dont la somme est égale à L, caractérisé en ce que les moyens de détermination adaptative des paramètres d'excitation comportent :means for producing quantization values representative of the determined parameters, in which the excitation parameters include, for at least some of the frames, a waveform of L samples associated with a gain, said excitation signal relating to the frame resulting from the multiplication of the waveform of L samples by the associated gain, the waveform being made up of a number K, greater than 1, of segments juxtaposed according to a determined partition of the frame and originating of respective dictionaries, the k-th segment consisting of L k samples for 1 <k ≤ K, the numbers L 1 to L κ being integers whose sum is equal to L, characterized in that the means for adaptively determining the excitation parameters include:
- des moyens de calcul d'un vecteur-cible de L échantillons à partir d'une trame de signal et des paramètres déterminés pour au moins une trame précédente ;means for calculating a target vector of L samples from a signal frame and parameters determined for at least one previous frame;
- des moyens de calcul, sur une longueur de L échantillons, d'une réponse impulsionnelle h0, h1 h^ d'un filtre composé des filtres de synthèse et d'un filtre de pondération perceptuelle ;means for calculating, over a length of L samples, an impulse response h 0 , h 1 h ^ of a filter composed of the synthesis filters and of a perceptual weighting filter;
- des moyens de précalcul de vecteurs Vk k, et de matrices Mk k. k- pour des entiers k, k' et k" tels que 1 < k" < k' ≤ k ≤ K, avec Vk k. = tk r.Hk k. et- means of precalculation of vectors V kk , and of matrices M kk . k - for integers k, k 'and k "such that 1 <k"<k' ≤ k ≤ K, with V kk . = t k r .H kk . and
Mk k. k.. = Hk τ».Hk k. , où tk désigne le k-ième vecteur, de Lk échantillons, obtenu en subdivisant le vecteur-cible selon ladite partition, Hk k- désigne la matrice de Lk lignes et Lk. colonnes dont le terme situé à la (q+1 )-ième ligne et à la (r+1 )-ième colonne (0 < q < Lk, 0 ≤ r < Lk>) vaut k-1 Hk k.(q, r) = hq+Λk_r_Λk. avec, pour 1 < k < K : Λk = ∑ Lk. et Hk k(q, r) = 0 k'=l si q < r, et (.)τ désigne l'opération de transposition ; - des moyens de sélection d'au moins un segment issu du dictionnaire relatif au premier segment, par maximisation d'un critère de la forme :M kk . k .. = H k τ ".H kk . , where t k denotes the k-th vector, of L k samples, obtained by subdividing the target vector according to said partition, H kk - denotes the matrix of L k lines and L k . columns whose term located in the (q + 1) -th row and in the (r + 1) -th column (0 <q <L k , 0 ≤ r <L k >) equals k-1 H kk . ( q, r) = h q + Λk _ r _ Λk . with, for 1 <k <K: Λk = ∑ L k . and H kk (q, r) = 0 k '= l if q <r, and (.) τ denotes the transposition operation; means for selecting at least one segment from the dictionary relating to the first segment, by maximizing a criterion of the form:
[Num^il)]2 [Num ^ il)] 2
CritiM) Deα,(i1) où: Num1(i1) = V11.U1j1 CritiM) Deα, (i1) where: Num 1 (i1) = V 11 .U1 j1
Figure imgf000031_0001
et U1 désigne un segment d'indice il du premier dictionnaire ;
Figure imgf000031_0001
and U1 designates a segment of index il from the first dictionary;
- des moyens d'optimisation pour effectuer les opérations suivantes pour k allant de 2 à K :- optimization means for performing the following operations for k ranging from 2 to K:
- pour chaque (k-l)-uplet de segments
Figure imgf000031_0002
venant d'être sélectionné, calcul de nombres FN[n] et FD[n] et d'un vecteur C[n] de la forme :
- for each (kl) -uplet of segments
Figure imgf000031_0002
having just been selected, calculation of numbers FN [n] and FD [n] and of a vector C [n] of the form:
FN[n] = Vkk..Uk'ik.[n]
Figure imgf000031_0003
k-1 FD[n] = Denk_.,(i1[n], i2[n], ..., i(k-1)[n]) + £ Uk' ^ Mkk.k,Uk'ik.[n] k'=1 k-1 k'-1 + 2- ∑ ∑ Uk"jk.,[n].Mkιk.ιk...Uk'jk.[nj k'=2 k"=l ctn]= 2.∑Uk'ik[n].Mkιkιk. ; k'≈i
FN [n] = V kk ..Uk ' ik . [not]
Figure imgf000031_0003
k-1 FD [n] = Den k _., (i1 [n], i2 [n], ..., i (k-1) [n]) + £ Uk '^ M kk . k , Uk ' ik . [n] k '= 1 k-1 k'-1 + 2 - ∑ ∑ Uk " jk ., [n] .M kιk . ιk ... Uk' jk . [n j k '= 2 k" = l c t n ] = 2.∑Uk ' ik [n] .M kιkιk . ; k'≈i
- sélection d'au moins un k-uplet de segments respectivement issus des k dictionnaires relatifs aux segments 1 à k, dont les k-1 premiers segments U1j.,rnι Uk^.,^, proviennent d'un- selection of at least one k-tuplet of segments respectively from the k dictionaries relating to the segments 1 to k, of which the first k-1 segments U1 j ., r n ι Uk ^., ^, come from a
(k-l)-uplet précédemment sélectionné, par maximisation d'un critère de la forme :(k-l) -uplet previously selected, by maximizing a criterion of the form:
Figure imgf000031_0004
où : Numk(i1[n] i(k-1)[n], ik) = FN[n] + Vkk.Ukjk
Figure imgf000031_0004
where: Num k (i1 [n] i (k-1) [n], ik) = FN [n] + V kk .Uk jk
Denk(i1[n] i(k-1)[n], ik) = FD[n] + C[n].Ukik + Ukik τMkkk.Ukjk et Ukjk désigne un segment d'indice ik du k-ième dictionnaire, - des moyens pour produire la forme d'onde retenue pour une trame sous forme d'un K-uplet de segments sélectionné par les moyens d'optimisation pour k = K.Den k (i1 [n] i (k-1) [n], ik) = FD [n] + C [n] .Uk ik + Uk ik τ M kkk .Uk jk and Uk jk denotes an index segment ik from the k-th dictionary, means for producing the waveform retained for a frame in the form of a K-tuplet of segments selected by the optimization means for k = K.
8. Codeur de signal audiofréquence, comprenant : - des moyens pour recevoir le signal audiofréquence numérisé en trames successives de L échantillons ;8. Audiofrequency signal coder, comprising: means for receiving the digitized audiofrequency signal in successive frames of L samples;
- des moyens de détermination adaptative de paramètres de synthèse définissant des filtres de synthèse ;means of adaptive determination of synthesis parameters defining synthesis filters;
- des moyens de détermination adaptative de paramètres d'excitation définissant un signal d'excitation à appliquer aux filtres de synthèse pour produire un signal synthétique représentatif du signal audiofréquence, en minimisant l'énergie d'un signal d'erreur résultant du filtrage de la différence entre le signal audiofréquence et le signal synthétique par au moins un filtre de pondération perceptuelle ; et - des moyens de production de valeurs de quantification représentatives des paramètres déterminés, dans lequel les paramètres d'excitation incluent, pour certaines au moins des trames, une forme d'onde de L échantillons associée à un gain, ledit signal d'excitation relatif à la trame résultant de la multiplication de la forme d'onde de L échantillons par le gain associé, la forme d'onde étant constituée d'un nombre K, plus grand que 1 , de segments juxtaposés selon une partition déterminée de la trame et issus de dictionnaires respectifs, le k-ième segment étant constitué de Lk échantillons pour 1 < k < K, les nombres L1 à Lκ étant des entiers dont la somme est égale à L, et dans lequel, pour 1 < k < K, chaque segment de Lk échantillons du dictionnaire relatif au k-ième segment de la partition est le produit d'une matrice de transformation prédéfinie Fk de Lk lignes et nck colonnes par un code respectif de nck échantillons appartenant à un répertoire engendrant le dictionnaire, nck étant un entier plus petit que Lk, caractérisé en ce que les moyens de détermination des paramètres d'excitation comportent :means of adaptive determination of excitation parameters defining an excitation signal to be applied to the synthesis filters to produce a synthetic signal representative of the audio frequency signal, by minimizing the energy of an error signal resulting from the filtering of the difference between the audio signal and the synthetic signal by at least one perceptual weighting filter; and - means for producing quantization values representative of the determined parameters, in which the excitation parameters include, for at least some of the frames, a waveform of L samples associated with a gain, said relative excitation signal the frame resulting from the multiplication of the waveform of L samples by the associated gain, the waveform consisting of a number K, greater than 1, of segments juxtaposed according to a determined partition of the frame and from respective dictionaries, the k-th segment being made up of L k samples for 1 <k <K, the numbers L 1 to L κ being integers whose sum is equal to L, and in which, for 1 <k < K, each segment of L k samples of the dictionary relating to the k-th segment of the partition is the product of a predefined transformation matrix F k of L k rows and nck columns by a respective code of nck samples belonging to a rep rtoire generating the dictionary, nck being an integer smaller than L k , characterized in that the means for determining the excitation parameters comprise:
- des moyens de calcul d'un vecteur-cible de L échantillons à partir d'une trame de signal et des paramètres déterminés pour au moins une trame précédente ; - des moyens de calcul, sur une longueur de L échantillons, d'une réponse impulsionnelle h0, h., , ..., hL_-, d'un filtre composé des filtres de synthèse et d'un filtre de pondération perceptuelle ;means for calculating a target vector of L samples from a signal frame and parameters determined for at least one previous frame; means of calculation, over a length of L samples, of an impulse response h 0 , h.,, ..., h L _-, of a filter composed of the synthesis filters and of a weighting filter perceptual;
- des moyens de précalcul de vecteurs Vk k- et de matrices Mk k. k» pour des entiers k, k' et k" tels que 1 < k" < k' < k < K, avec Vk k- = tf.Hk k,.Fk. et- means for precomputing vectors V kk - and matrices M kk . k "for integers k, k 'and k" such that 1 <k "<k'<k<K, with V kk - = tf.H kk , .F k . and
Mk k. k» = F|^.Hk k„.Hk k..Fk. , où tk désigne le k-ième vecteur, de Lk échantillons, obtenu en subdivisant le vecteur-cible selon ladite partition, Hk k. désigne la matrice de Lk lignes et Lk, colonnes dont le terme situé à la (q+1 )-ième ligne et à la (r+1)-ième colonne (0 < q < Lk, 0 < r < Lk.) vaut k-1 Hk,k'(q- = hq+Λk-r-Λk' a ec- P°ur 1 < k < K : Λk = ∑ Lk- et Hk k(q, r) = 0 k'=l si q < r, et (.)τ désigne l'opération de transposition ;M kk . k "= F | ^ .H kk „.H kk ..F k . , where t k denotes the k-th vector, of L k samples, obtained by subdividing the target vector according to said partition, H kk . denotes the matrix of L k rows and L k , columns whose term located in the (q + 1) -th row and in the (r + 1) -th column (0 <q <L k , 0 <r <L k .) is worth k-1 H k, k '(q- = h q + Λk-r- Λ k' a ec - P ° ur 1 < k <K: Λk = ∑ L k - and H kk (q, r) = 0 k '= l if q <r, and (.) τ denotes the transposition operation;
- des moyens de sélection d'au moins un segment issu du dictionnaire relatif au premier segment, par maximisation d'un critère de la forme :means for selecting at least one segment from the dictionary relating to the first segment, by maximizing a criterion of the form:
_ ., ,.„ . [Nunr M )]2 Crιt,(ι1 ) = L _ 1V.. ,'J 1 ' Den.,(ι1 ) où : Num.,(i1 ) = V1 1.C1j1 _.,,. „. [Nunr M)] 2 Crιt, (ι1) = L _ 1V .., ' J 1 ' Den., (Ι1) where: Num., (I1) = V 1 1 .C1 j1
Den1(i1 ) = C1i1 τ M1 1 1.C1i1 et Clj-, désigne un code d'indice M du premier répertoire ;Den 1 (i1) = C1 i1 τ M 1 1 1 .C1 i1 and Cl j -, denotes an index code M from the first directory;
- des moyens d'optimisation pour effectuer les opérations suivantes pour k allant de 2 à K : - pour chaque (k-l )-uplet de codes 01^ Cki(k-i)[n] venant d'être sélectionné, calcul de nombres FN[n] et FD[n] et d'un vecteur C[n] de la forme :- optimization means to perform the following operations for k ranging from 2 to K: - for each (kl) -uplet of codes 01 ^ C k i (ki) [n] just selected, calculation of numbers FN [n] and FD [n] and a vector C [n] of the form:
FN[n] = Vk k..Ck'ik.[π]
Figure imgf000033_0001
k -1
FN [n] = V kk ..Ck ' ik . [π]
Figure imgf000033_0001
k -1
FD[n] = Denk_.,(i1 [n], i2[n] i(k-1 )[n]) + £ Ck'ik,[n τ ].Mk k. k..Ck'ik.[n] k =1FD [n] = Den k _., (I1 [n], i2 [n] i (k-1) [n]) + £ Ck ' ik , [n τ ] .M kk . k ..Ck ' ik . [n] k = 1
+ 2- ∑ ∑ Ck"ik"[π]- k1k',k"-Ck,ik'[n] k'=2 k"=1 C[n] = 2. k£1Ck'ik [n].Mk k k. ; k'=1 + 2 - ∑ ∑ Ck "ik" [π] - k 1 k ', k "- Ck, ik' [n] k '= 2 k" = 1 C [n] = 2. k £ 1 Ck ' ik [n] .M kkk . ; k '= 1
- sélection d'au moins un k-uplet de codes respectivement issus des k répertoires relatifs aux segments 1 à k, dont les k-1 premiers codes Cl ^^j Ck^.,^--] proviennent d'un (k-l )-uplet précédemment sélectionné, par maximisation d'un critère de la forme :. r C-rιt
Figure imgf000034_0001
où : Numk(i1 [n] i(k-1 )[n], ik) = FN[n] + Vk k.Ckik
- selection of at least one k-tuplet of codes respectively from k directories relating to segments 1 to k, of which the first k-1 codes Cl ^^ j Ck ^., ^ -] come from a (kl) -uplet previously selected, by maximizing a criterion of the form:. r C-rιt
Figure imgf000034_0001
where: Num k (i1 [n] i (k-1) [n], ik) = FN [n] + V kk .Ck ik
Denk(i1[n], ..., i(k-1 )[n], ik) = FD[n] + C[n].Ckjk + Ckjk τ.Mk k>k.Ckjk et Ckik désigne un code d'indice ik du k-ième répertoire,Den k (i1 [n], ..., i (k-1) [n], ik) = FD [n] + C [n] .Ck jk + Ck jk τ .M k k> k .Ck jk and Ck ik designates an index code ik from the k-th directory,
- des moyens pour produire la forme d'onde retenue pour une trame sous forme d'un K-uplet de segments respectivement obtenus à partir d'un K-uplet de codes sélectionné par les moyens d'optimisation pour k = K.means for producing the waveform retained for a frame in the form of a K-tuplet of segments respectively obtained from a K-tuplet of codes selected by the optimization means for k = K.
9. Codeur selon la revendication 7 ou 8, dans lequel les moyens de détermination des paramètres d'excitation comportent en outre des moyens pour calculer le gain associé à la forme d'onde retenue pour une trame selon le rapport ^mκ(^'.^ ]™ '^ relatif audit K-uplet sélectionné par les Denκ(ι1 [n], ι2[n] (k-1)[n], ιk) moyens d'optimisation pour k = K.9. The encoder according to claim 7 or 8, in which the means for determining the excitation parameters further comprise means for calculating the gain associated with the waveform retained for a frame according to the ratio ^ m κ (^ ' . ^ ] ™ '^ relating to said K-tuplet selected by Den κ (ι1 [n], ι2 [n] (k-1) [n], ιk) optimization means for k = K.
10. Codeur selon l'une quelconque des revendications 7 à 9, dans lequel les nombres L1 à Lκ sont identiques, de même que les dictionnaires relatifs aux K segments. 10. Encoder according to any one of claims 7 to 9, in which the numbers L 1 to L κ are identical, as are the dictionaries relating to the K segments.
PCT/FR2001/003060 2000-10-06 2001-10-04 Method and device for segmental coding of an audio signal WO2002029786A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001293950A AU2001293950A1 (en) 2000-10-06 2001-10-04 Method and device for segmental coding of an audio signal

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR00/12792 2000-10-06
FR0012792A FR2815160B1 (en) 2000-10-06 2000-10-06 METHOD AND DEVICE FOR CODING AN AUDIO FREQUENCY SIGNAL

Publications (1)

Publication Number Publication Date
WO2002029786A1 true WO2002029786A1 (en) 2002-04-11

Family

ID=8855072

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2001/003060 WO2002029786A1 (en) 2000-10-06 2001-10-04 Method and device for segmental coding of an audio signal

Country Status (3)

Country Link
AU (1) AU2001293950A1 (en)
FR (1) FR2815160B1 (en)
WO (1) WO2002029786A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9659567B2 (en) 2013-01-08 2017-05-23 Dolby International Ab Model based prediction in a critically sampled filterbank

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0395076A2 (en) * 1989-04-28 1990-10-31 Fujitsu Limited Speech coding apparatus
US5621852A (en) * 1993-12-14 1997-04-15 Interdigital Technology Corporation Efficient codebook structure for code excited linear prediction coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0395076A2 (en) * 1989-04-28 1990-10-31 Fujitsu Limited Speech coding apparatus
US5621852A (en) * 1993-12-14 1997-04-15 Interdigital Technology Corporation Efficient codebook structure for code excited linear prediction coding

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ATKINSON I A ET AL: "TIME ENVELOPE VOCODER, A NEW LP BASED CODING STRATEGY FOR USE AT BIT RATES OF 2.5 KB/S AND BELOW", IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS,US,IEEE INC. NEW YORK, vol. 13, no. 2, 1 February 1995 (1995-02-01), pages 449 - 457, XP000489310, ISSN: 0733-8716 *
GUPTA S K ET AL: "PITCH-SYNCHRONOUS FRAME-BY-FRAME AND SEGMENT-BASED ARTICULATORY ANALYSIS BY SNTHESIS", JOURNAL OF THE ACOUSTICAL SOCIETY OF AMERICA,US,AMERICAN INSTITUTE OF PHYSICS. NEW YORK, vol. 94, no. 5, 1 November 1993 (1993-11-01), pages 2517 - 2530, XP000413476, ISSN: 0001-4966 *
MEMON N: "A 2-D vector excitation coding technique - A pattern matching technique for speech coding", SIGNAL PROCESSING. EUROPEAN JOURNAL DEVOTED TO THE METHODS AND APPLICATIONS OF SIGNAL PROCESSING,NL,ELSEVIER SCIENCE PUBLISHERS B.V. AMSTERDAM, vol. 67, no. 2, 18 June 1998 (1998-06-18), pages 163 - 172, XP004129648, ISSN: 0165-1684 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9659567B2 (en) 2013-01-08 2017-05-23 Dolby International Ab Model based prediction in a critically sampled filterbank
US9892741B2 (en) 2013-01-08 2018-02-13 Dolby International Ab Model based prediction in a critically sampled filterbank
US10102866B2 (en) 2013-01-08 2018-10-16 Dolby International Ab Model based prediction in a critically sampled filterbank
US10573330B2 (en) 2013-01-08 2020-02-25 Dolby International Ab Model based prediction in a critically sampled filterbank
US10971164B2 (en) 2013-01-08 2021-04-06 Dolby International Ab Model based prediction in a critically sampled filterbank
US11651777B2 (en) 2013-01-08 2023-05-16 Dolby International Ab Model based prediction in a critically sampled filterbank
US11915713B2 (en) 2013-01-08 2024-02-27 Dolby International Ab Model based prediction in a critically sampled filterbank

Also Published As

Publication number Publication date
FR2815160A1 (en) 2002-04-12
AU2001293950A1 (en) 2002-04-15
FR2815160B1 (en) 2003-01-17

Similar Documents

Publication Publication Date Title
EP0782128B1 (en) Method of analysing by linear prediction an audio frequency signal, and its application to a method of coding and decoding an audio frequency signal
EP0749626B1 (en) Speech coding method using linear prediction and algebraic code excitation
EP1692689B1 (en) Optimized multiple coding method
EP0801790B1 (en) Speech coding method using synthesis analysis
EP1994531A2 (en) Improved coding/decoding of a digital audio signal, in celp technique
EP0801788B1 (en) Speech coding method using synthesis analysis
EP0721180B1 (en) Analysis by synthesis speech coding
EP0195441B1 (en) Method for low bite rate speech coding using a multipulse excitation signal
FR2880724A1 (en) OPTIMIZED CODING METHOD AND DEVICE BETWEEN TWO LONG-TERM PREDICTION MODELS
EP0616315A1 (en) Digital speech coding and decoding device, process for scanning a pseudo-logarithmic LTP codebook and process of LTP analysis
WO2002029786A1 (en) Method and device for segmental coding of an audio signal
EP1192619B1 (en) Audio coding and decoding by interpolation
EP1192618B1 (en) Audio coding with adaptive liftering
EP1192621B1 (en) Audio encoding with harmonic components
JP4007730B2 (en) Speech encoding apparatus, speech encoding method, and computer-readable recording medium recording speech encoding algorithm
FR2980620A1 (en) Method for processing decoded audio frequency signal, e.g. coded voice signal including music, involves performing spectral attenuation of residue, and combining residue and attenuated signal from spectrum of tonal components
FR2796189A1 (en) AUDIO CODING AND DECODING METHODS AND DEVICES
WO2013135997A1 (en) Modifying the spectral characteristics of a linear prediction filter of a digital audio signal represented by the lsf or isf coefficients thereof
EP1192620A1 (en) Audio encoding and decoding including non harmonic components of the audio signal

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP