WO2007096550A2 - Codage/decodage perfectionnes d'un signal audionumerique, en technique celp - Google Patents

Codage/decodage perfectionnes d'un signal audionumerique, en technique celp Download PDF

Info

Publication number
WO2007096550A2
WO2007096550A2 PCT/FR2007/050780 FR2007050780W WO2007096550A2 WO 2007096550 A2 WO2007096550 A2 WO 2007096550A2 FR 2007050780 W FR2007050780 W FR 2007050780W WO 2007096550 A2 WO2007096550 A2 WO 2007096550A2
Authority
WO
WIPO (PCT)
Prior art keywords
dictionary
dictionaries
vector
pattern
basic
Prior art date
Application number
PCT/FR2007/050780
Other languages
English (en)
Other versions
WO2007096550A3 (fr
Inventor
Dominique Massaloux
Romain Trilling
Claude Lamblin
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 AT07731605T priority Critical patent/ATE520121T1/de
Priority to US12/224,205 priority patent/US8271274B2/en
Priority to EP07731605A priority patent/EP1994531B1/fr
Priority to CN2007800065199A priority patent/CN101401153B/zh
Priority to KR1020087023140A priority patent/KR101370017B1/ko
Priority to JP2008555849A priority patent/JP5188990B2/ja
Publication of WO2007096550A2 publication Critical patent/WO2007096550A2/fr
Publication of WO2007096550A3 publication Critical patent/WO2007096550A3/fr

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0007Codebook element generation

Definitions

  • the present invention relates to the coding / decoding of digital audio signals, known as "CELP” (for "Code Excited Linear Prediction”).
  • the compression coding of such signals can intervene for their transmission or storage.
  • the signals may be speech signals or more generally digitized sound signals. More particularly, this invention relates to the technique of predictive coding in which:
  • LPC Linear Prediction Coding
  • the invention relates to the family of coders CELP (for "Code Excited Linear Prediction"), which select the excitation signal from among a set of candidate signals by comparing the output of the synthesis filter, excited by this signal, to original signal, with introduction of perceptual weighting.
  • coders have been widely used for encoding speech signals in bit rates of 6 to 24 kbit / s, and adopted in particular in ITU-T G.729, GSM-EFR, 3GPP / WB-AMR standards.
  • the invention finds an advantageous application in hierarchical coding systems described in detail below and for which the bit stream is formed of a base layer followed by additional layers to improve the quality.
  • FIG. 1 A general diagram of a CELP encoder is given in Figure 1.
  • Figure 2 shows the associated decoder.
  • CELP Code-Excited Linear Prediction
  • the encoder segments an input signal S (n) into sample blocks or "frames" (typically of the order of 10 to 20 ms of signal).
  • an LPC analysis is performed to estimate and quantify the parameters of the short-term linear prediction filter.
  • the excitation signal exc (z) is modeled using two dictionaries:
  • the adaptive dictionary DICa intended to model the periodicity of the harmonic sounds
  • the present invention rather aims at the "fixed" dictionary DICf, whereas what concerns the adaptive dictionary DICa is preferentially not dealt with in what follows.
  • the modeling of the excitation signal is generally performed on sample blocks corresponding to signal subframes typically of the order of 5 ms.
  • the selection of an optimal code word in a dictionary (which is also called "vector- code ", or” waveform ") is performed by minimizing the energy of the perceptually weighted error signal, which is expressed by a relation of the type:
  • E ( z ) W (z) (S (z) - S (z)), where the notation E (z), S (z), S (z) represent the z transforms, respectively, of the signal of weighted error of the original signal to be encoded and the reconstructed signal.
  • the filter W (z) is the perceptual weighting filter 1 1 (typically
  • the weighted error signal E (z) can be expressed by a relation of the type:
  • the signals exc pass (n) and exc current (n) respectively represent the past excitation signal (null signal on the current block) and current (zero memory signal).
  • CELP minimization criterion (subsequent modules 13 and 14) is then expressed by searching in a dictionary of the waveform ⁇ c (n); 0 ⁇ n ⁇ N-1 ⁇ which minimizes the quantity:
  • the elements ⁇ h (n ⁇ represent the impulse response of the filter H (defined above by the relation (1) above).
  • the filter H is causal, that is to say that the elements h (n) such that n ⁇ 0 are zero.
  • the elements h ( ⁇ ) such that n ⁇ 0 can be non-zero.
  • the optimal gain associated with the selected code vector is quantized.
  • a quantization index and the index associated with the selected code vector are transmitted (via a telecommunication network) or simply stored for subsequent transmission. It is on the basis of these indices that the decoding can then take place.
  • the excitation dictionary is guided by constraints of flow, quality (or efficiency for a given flow) and complexity. For a restricted bit rate, it will be difficult to obtain a good reproduction quality for any signal to be encoded. Complexity is also an important factor. For all communication applications, the real-time constraint imposes limitations on the calculation time.
  • the first CELP dictionaries proposed in the literature were random code vectors, which required calculating the numerator and the denominator of the criterion for each dictionary vector. The search for the best code word was then of prohibitive complexity.
  • Structured dictionaries were then proposed to speed up the search for the optimal waveform, some search computations being performed once for different input signals (or “pooled calculations") due to the induced relationships between the vectors by the dictionary structure.
  • One of the most popular categories of structured dictionaries is the family of algebraic dictionaries, composed of pulses whose position is defined by an algebraic code or according to a network of points (typically a Gosset network), regular or not.
  • the most classic representatives of such dictionaries are known as ACELP (for "Algebraic CELP").
  • the filtering of the fixed dictionary presupposes a certain continuity of the process because the filters tend to widen the support of the filtered signal, and since it is generally not possible to correct the excitation of the preceding block, irregularities at the edge of the Coded sample blocks, poorly controlled by the process, may appear.
  • orthogonal dictionaries can also be provided in this context.
  • Hierarchical coding structures are now briefly described. Such structures, also called “scalable”, provide coding binary data that are divided into successive layers.
  • a base layer is formed of the bits absolutely necessary for the decoding of the bitstream, and determining a minimum quality of decoding.
  • the following layers progressively improve the quality of the decoded signal, each new layer providing new information, which, exploited at decoding, output a signal of increasing quality.
  • One of the peculiarities of hierarchical coders is the possibility of intervening at any level of the transmission or storage chain to remove a part of the bitstream without having to give any particular indication to the coder or the decoder.
  • the decoder uses the binary information it receives and produces a signal of corresponding quality.
  • Hierarchical CELP coders also called “nested CELPs”
  • dictionaries which can be different on each floor or identical.
  • the present invention improves the situation.
  • an initial dictionary (hereinafter also called “basic dictionary”) is constructed in: providing the same sequence of pulses forming a basic pattern,
  • pulse sequence is understood to mean a succession of samples comprising pulses and possibly one or more zero samples between the pulses, and / or at the beginning and / or at the end of the succession.
  • the dictionary thus constructed is a CELP excitation dictionary of the so-called "fixed" type (referenced DICf for example in FIGS. 1 and 2 described above).
  • the basic pattern appearing at each occurrence in an excitation vector is multiplied by an amplitude associated with said occurrence, this amplitude being for example chosen from a set comprising the values +1 and -1.
  • all the vectors of the initial dictionary include the same number of occurrences of the basic pattern.
  • an initial dictionary can be defined by:
  • CELP excitation vector dictionaries these dictionaries being defined by the data of a basic pattern, appearing according to one or more occurrences, each occurrence being multiplied by an amplitude.
  • the patterns possibly appearing at the edge of the block are truncated to fit exactly in the block.
  • a dictionary obtained by the method in the sense of the invention, gathering vectors of dimension N, is then defined by a basic pattern, which is "displaced" in the block of length N.
  • Each pattern appears according to K occurrences that we add up, each occurrence being itself defined by:
  • a multi-pulse dictionary well known in the state of the art, constitutes a particular case of a dictionary thus obtained, insofar as the length of a pattern in the case of a dictionary multi-pulse is simply 1.
  • This type of multi-pulse dictionary will be referred to hereinafter as the "trivial basic dictionary".
  • the method in the sense of the invention makes it possible to construct combinations of dictionaries (initial and constructed as described above without also excluding the use of one or more additional multi-pulse dictionaries).
  • a dictionary obtained by the method in the sense of the invention may consist of: a single non-trivial basic dictionary, defined by a basic pattern (of length greater than 1), by the positions of the pattern and by the associated amplitude according to the different occurrences, or
  • a global dictionary can be constructed by a sum of basic dictionaries of which at least one is an initial dictionary defined by a basic pattern.
  • the vectors of the global dictionary are formed in this case by adding the common position pulses of the basic dictionaries vectors, preferably weighted one by one by a gain each associated with a dictionary.
  • a global dictionary can be constructed by a union of basic dictionaries, at least one of which is an initial dictionary defined by a basic pattern. In this case, the global dictionary simply includes all the vectors of all the basic dictionaries.
  • the basic pattern comprises at least one central pulse, preceded and succeeded by at least one pulse of sign opposite to the sign of the central pulse. More precisely, the pattern may comprise in all three pulses of which:
  • a second pulse preceding the central pulse and a third pulse succeeding the central pulse, the signs of the second and third pulses being opposite to that of the central pulse, the amplitude of the second and third pulses being lower, absolute value, that of the central pulse and, advantageously, variable between 0 (not included) and about half the amplitude of the central pulse, in absolute value.
  • a coding / decoding device comprising a cascading of dictionaries, at least one initial dictionary of which is subsequent in the cascade, this initial dictionary comprising such a symmetrical pattern with a previous central pulse and pulses and next of amplitudes opposite to that of the central amplitude.
  • This device may advantageously comprise a high-pass filtering in a global perceptual weighting filter intervening in coding in particular in the search for an optimal excitation vector.
  • this realization proposes a cascading of a multi-pulse dictionary with a dictionary defined by a motive symmetrical with respect to its center, whose occurrences of the center of the motif describe the same set as the occurrences of the pulses of the multi-pulse dictionary.
  • This implementation makes it possible to broaden the spectral range of the initial basic dictionary by adding one or more additional basic dictionaries, the search in these additional basic dictionaries then being spectrally focused by modifying the perceptual weighting filter. intervening in the search for the optimal vector, the choice of this modification and that of the motif of these additional basic dictionaries possibly being linked.
  • the positions of the patterns and / or pulses in the vectors of the dictionaries in particular when they are cascaded, describe preferentially identical sets, the position of a pattern being marked substantially by the position of a central pulse in the sequence of pulses forming the pattern.
  • the position of a pattern can be identified by the position in the sample block of the center of the pattern, if the pattern includes a number odd of samples. However, in a strictly equivalent way, a possible even length pattern may be completed by a zero to produce an odd length. More generally, any other variant for locating the position of the patterns may be considered.
  • the invention proposes very simple techniques for decoding the index of the vectors of such dictionaries, by adding the scaled occurrences of the pattern or patterns whose position and the amplitude factor for each occurrence are transmitted.
  • an index is formed preferably comprising at least indications:
  • the index further includes an indication of the dictionary in which the best candidate vector has been found.
  • the index includes in particular an indication relative to the aforementioned initial dictionary and hence an indication as to the basic pattern that made it possible to construct the dictionary and therefore the best candidate vector.
  • the index In the case of a single basic dictionary, the index already reflects the amplitude and position associated with each of its occurrences. To decode the best candidate vector, it is then sufficient to position the basic pattern at the different positions that it must occupy in each occurrence, multiply it by the associated amplitudes, and sum the occurrences. In the case of a union of basic dictionaries, the index further informs about the selected base dictionary, as indicated above. In the case of a sum of basic dictionaries, we have the amplitudes and positions of the occurrences of each basic pattern and we proceed in an equivalent way to the case of the union, but by summing the contributions of all the patterns.
  • the best candidate vector is reconstructed preferentially from the index:
  • the indices of the vectors in each of the dictionaries are preferably determined, and from there, for each index, the last three steps described above are applied.
  • the dictionary constructed within the meaning of the invention preferably comprises allowable pattern positions which describe a highly structured set, advantageously as a set of pulse positions of an ACELP dictionary.
  • the cascading of dictionaries including at least one basic dictionary is very advantageous. This variant is particularly suitable for the case of hierarchical coding structures. Nevertheless, the different basic dictionaries do not play the same role because, typically, the first dictionary ensures the coding of a minimum quality of the signals that it is desired to reproduce. The following dictionaries are intended to improve this quality, and will consolidate the coding, reduce sensitivity to the type of signal, or other.
  • the cascading of a plurality of dictionaries amounts to constructing a single global dictionary obtained by summation of the dictionaries weighted by gains, as indicated above.
  • each excitation vector corresponds to the sum of vectors derived from basic dictionaries multiplied by a gain, the basic dictionaries being explored one after the other, subtracting the known contribution of the partial excitation produced. by the vectors of the previous dictionaries.
  • the cascaded dictionaries are explored one after the other, subtracting, for a current dictionary, a known contribution of a partial excitation produced by the vectors of at least one preceding dictionary, which confers a hierarchical coding structure.
  • the search in a dictionary for the purposes of the invention of a candidate excitation vector is carried out according to an estimate of a CELP criterion, little modified with respect to the prior art and then including the steps: a) calculating the convolution of the impulse response of a filter resulting from the product of an LPC synthesis filter by a perceptual filter, with the basic pattern of the dictionary, to obtain a convoluted filter vector, b) calculate the elements of an inter-correlation vector between a candidate target vector and the convoluted filter vector, c) optionally correcting elements of the inter-correlation vector to account for a truncation of the basic pattern to at least one block edge, d) calculating the elements of an autocorrelation matrix of the convoluted filter vector, e) optionally correcting elements of said matrix to take account of a truncation of the basic pattern at the m oin a block edge, f) search for the best candidate vector using a CELP criterion expressed
  • the estimate of the CELP criterion is slightly modified by the addition of the steps c) and e), with respect to the estimation of the criterion CELP in the sense of the prior art.
  • the present invention aims not only at the method defined above, but also at the dictionary, itself, of CELP excitation vectors, capable of being constructed by a device for encoding / decoding digital audio signals, by an implementation of the process within the meaning of the invention.
  • It also relates to a computer program comprising instructions for implementing the method of constructing a dictionary as defined above.
  • an advantageous embodiment consists in providing a device including means (such as a processor, a calculation memory, etc.) for generating the CELP excitation vectors of one or more dictionaries of which at least one is a dictionary. to be constructed by the implementation of the method within the meaning of the invention.
  • these dictionaries can be constructed by executing a computer program of the aforementioned type, then stored in a memory of such a coding / decoding device, for example by virtue of the use of an algebraic law associating the indices. from vectors to the code vectors themselves (as for example in the ACELP technique).
  • the present invention also relates to a use of such a device for the coding / decoding of digital audio signals (thus typically a coding / decoding method), as well as the computer program intended for a device for encoding / decoding digital audio signals, and comprising instructions for the implementation of such use.
  • all or part of the general and optional characteristics expressed above can be applied both for the construction of the dictionary, for the dictionary itself or for the coding / decoding device comprising at least one dictionary thus constructed. or for the use of such a device, or for the computer program generating the dictionary or for the computer program for the use of the device.
  • the invention proposes dictionaries of excitation vectors of the CELP type and their use, which offer a great potential wealth of contents for a moderate size.
  • the decoding of the associated indices is of low complexity, despite this variety of forms.
  • the present invention proposes a category of CELP dictionaries permitting the encoding of a large variety of excitation signals for relatively moderate data rates, and furthermore offering fast and efficient algorithms for the selection of the appropriate vector.
  • FIG. 3a illustrates a basic pattern for the implementation of the invention
  • FIGS. 3b and 3c respectively illustrate a first A 0 and a second A 1 set of the positions of the first and second occurrences of a basic pattern
  • FIG. 3d illustrates an example of vector-code selected by setting implementation of the invention
  • FIG. 4 is a table of modifications of the autocorrelation matrix in the estimation of the CELP criterion using a dictionary in the sense of the invention
  • FIG. 5 illustrates the main steps of finding the best code vector in a dictionary; within the meaning of the invention, by applying the "corrected" CELP criterion to take account of the presence of patterns, part of which is located outside a current block,
  • FIG. 6 illustrates an exemplary union of dictionaries within the meaning of the invention
  • FIG. 7 illustrates an exemplary sum of dictionaries within the meaning of the invention
  • FIGS. 8a and 8b illustrate a first and a second basic dictionary in an exemplary embodiment of the present invention for improving a CELP coder according to the G.729 standard
  • FIG. 8c compares the shape of the average spectra of the waveforms of the dictionary of FIG. 8a and the dictionary of FIG. 8b,
  • FIG. 9 illustrates an exemplary embodiment of a CELP coder according to the G.729 standard perfected by an exemplary implementation of the present invention.
  • the code vectors of a base dictionary are obtained by defining a base pattern y (j) (-p ⁇ j ⁇ p) as a series of samples (FIG. 3a) which moves in a block of length N, truncating the pattern when it overflows the block.
  • y (j) (-p ⁇ j ⁇ p)
  • N a series of samples
  • the box in dashed lines bearing the reference D2 of FIG. 7 illustrates some vectors V21, V22, V2n of a basic dictionary thus constructed.
  • the first vector V21 comprises a base pattern Pat (D2) comprising a succession of eleven pulses. To the left of this pattern is the "end" of an inverse polarity pattern and truncated so that only its ninth to eleventh pulses appear in the vector V21.
  • the next vector V22 takes the whole Pat (D2) pattern and another right truncated pattern of reverse polarity. In vectors V21 and V22, the patterns are disjoint.
  • the last vector V2n two basic patterns are taken up with the same polarity, but their respective centers occupy positions sufficiently close so that the two patterns overlap partially.
  • the overlapping pulses add up together, taking into account their sign.
  • the last vector V2n of the dictionary D2 in the example of FIG. 7 comprises the sum of the pulses of the two basic patterns at their edges, right for the one and left for the other (tenth and eleventh pulses of the pattern global from the left).
  • the (negative) pulse of the center of the second pattern of the vector V21 vanishes with the second (positive) pulse of the vector V12 in the sum of the vectors V21 + V12.
  • pattern positions are such that patterns overlap at least partially (in the case of the vector V2n).
  • the pulses of the overlapping patterns are added one by one.
  • y (j) (-p ⁇ j ⁇ p) having the advantage of making more clear the following developments, seems to impose a priori an odd number 2p + 1 of elements in the basic pattern (-p ⁇ j ⁇ p).
  • this feature is not necessary for the implementation of the present invention. If one wishes to use a pattern having an even number of elements, it suffices to add a null element on one of the edges, and the formulation applied here is still usable.
  • Each occurrence k is characterized by: - the amplitude assigned to it, s k , taking its values in a set S k , - by the position of the basic pattern, which can be represented, for example, by the position a k to which one places one's center.
  • a k takes its values in a set A k , and can possibly be outside the interval [0, N -I], the only constraint being, of course, that the intersection of the patterns and the block not zero.
  • the second occurrence is characterized by the center a x which can be placed at the four positions of
  • Each vector (c (n) ⁇ is defined by the set of positions of the centers of the basic patterns of each of the occurrences that compose it.
  • the vectors ⁇ c (n ⁇ of the basic dictionary are deduced from the vectors ⁇ c o (n) ⁇ by convolution with the base pattern y and truncation at the terminals of the segment [0. ⁇ / -1].
  • the truncation function t ⁇ n) introduces nonlinearities in the expression of c ⁇ n), which can be overcome by extending the vector ⁇ c (n ⁇ of dimension N to the vector ⁇ c '(n) ⁇ , of dimension (N + 2p):
  • H O involves the calculation of two quantities: numerator Num and denominator Den.
  • the number of non-zero elements h m (n, j) thus depends on the number of non-zero elements h ( ⁇ ) such that n ⁇ 0. If we assume that the filter H (z) is causal, all elements b d ( ⁇ ) such that n ⁇ N-1 are zero.
  • central is conventionally expressed by
  • N-I ⁇ (i, j) ⁇ h '(n-i) ⁇ h' (n-j) is an element of the autocorrelation matrix of
  • the modified matrix thus makes it possible to write the denominator of the search in the dictionary within the meaning of the invention in the form: ⁇ - ⁇ KI KI
  • step 53 O correlation vector between the target vector x (n) and the vector ⁇ h '(i) ⁇ (obtained in step 51).
  • step 63 of FIG. 5 These elements are eventually corrected (general step 63 of FIG. 5) to take account of the patterns appearing at the edge of the block. Indeed, for all the pairs (%, ⁇ / ) of which at least one of the elements corresponds to the occurrence of a pattern that overflows on one of the block edges (arrow O at the output of the test 58), in step 60, corrected elements ⁇ ' ⁇ a k , ci ⁇ ) are calculated.
  • the search for the best waveform is then carried out (step 61) using the conventional CELP search criterion, expressed as the maximization of a ratio in which the numerator implements the vector ⁇ d (a k ) ⁇ and the denominator the elements ⁇ '(a k , a t ), to finally obtain the best vector-code VC (step 62).
  • FIG. 5 can illustrate, as an organogram, a part of the algorithm of the computer program allowing the use of a coding / decoding device comprising at least one dictionary within the meaning of the invention.
  • Simplifications of the above method may also be provided.
  • the relative energy of the elements that are squeezed out in the truncation operation is small relative to the energy of the elements that remain in the block, for the occurrences of the edges, it can be expected simply to neglect the effects. board (without then conducting tests 54 and 58).
  • at least one (preferably step 63) or the two correction steps 53 and 63 can simply be deleted.
  • Two methods of combination can be provided to provide a global dictionary capable of providing various representations of waveforms, in particular to provide a very satisfactory spectral richness. Indeed, it is possible to orient the contents of each basic dictionary to one or more categories of signals.
  • FIG. 6 illustrates such a dictionary, presenting the union of two basic dictionaries D1 and D2, constructed from the same sets of positions for the centers of occurrences and the same sets of amplitudes, and each with two patterns comprising respectively: a single pulse Pat (D1) for the first base dictionary D1; and the pulse sequence Pat (D2) according to the pattern of FIG. 3a for the second base dictionary D2.
  • each of the basic dictionaries is preferably explored separately, the best waveforms resulting from the search in each basic dictionary then being compared with each other in order to select the most appropriate one.
  • the complexity of the search is in this case equivalent to the sum of the complexities of searches in each basic dictionary. The rapid searches, induced by the advantageous structure of the basic dictionaries as we saw earlier, have proved very effective.
  • Exploration variants may also be proposed. For example, it is possible to first determine one (or more) basic dictionary (s) among the dictionaries that make up the global dictionary, and then to limit the search to the basic dictionaries thus preselected.
  • the decoding of the indexes can be carried out by first identifying the base dictionary that has been selected (for example by comparing the index of the selected vector-code with values stored in memory corresponding to the boundaries of the basic dictionaries in the dictionary full). Then, the index of the code vector is decoded in the basic dictionary as previously indicated.
  • the vectors of the dictionaries are formed simply by adding, one by one and sample by sample, all the vectors of the base dictionaries, possibly weighted by gains as in the second embodiment. which is described later.
  • Figure 7 illustrates the principle of such an addition of basic dictionaries.
  • two dictionaries D1, D2 are added only and it will be noted that the weights of the pulses of the vectors V1 i of the dictionary D1 are the same, in the sum D1 + D2, as those of the pulses of the vectors V2j of the dictionary D2. .
  • a code vector belonging to a basic dictionary D2 can be represented by indicating the positions of the centers of the patterns and the amplitudes of the occurrences in the different dictionaries, that is to say for the different reasons, and then adding up the patterns scaled and so placed.
  • the components of the code vectors of such a dictionary, obtained by summation of basic dictionaries, are expressed by a relation of the type:
  • a second embodiment of a sum of basic dictionaries gives rise to simpler search algorithms.
  • the principle consists in cascading the summation of the basic dictionaries, a different gain being associated with each sub-vector coming from the basic dictionaries.
  • the excitation vector is expressed by:
  • each basic dictionary is more particularly intended to enrich the global dictionary and, for example, according to a particular type of excitation signal, it may be advantageous to use different perceptual filters W 1 (z) (for / from 0 to / -1) for the different searches in the basic dictionaries.
  • W 1 (z) for / from 0 to / -1
  • a first base dictionary rather apt to represent the low frequency part of the excitation signal
  • a second basic dictionary rather intended to represent the high frequency part.
  • the conventional perceptual filter can be cascaded with a high-pass filter. Such an operation could also be called "spectral focusing". It will be described in detail below, with reference to Figure 9, to illustrate a particular embodiment.
  • this second embodiment advantageously adapts to hierarchical CELP coding structures.
  • the bitstream is hierarchized and, in the implementation of this second embodiment, the bits corresponding to the indices and the gains of each of the code sub-vectors of the base dictionaries can constitute layers. separate hierarchical (or "participate" in distinct layers). If the decoder receives only a part of this information, it will be able to reconstitute at least a part of the excitation by decoding the indices and gains received associated with the sub-code-vectors of the basic dictionaries of the first layers and by summing the excitations partial thus obtained.
  • the first basic dictionary then provides the minimum quality coding and the following will allow a gradual increase in quality and a better consideration of the possible variety of signals, for example by offering an expanded spectral content.
  • the bit stream of the first layer is "compatible" with that of the ITU-T G.729 standard encoder so that an encoder or a decoder within the meaning of the invention can operate with a decoder or an encoder according to the G.729 and its annexes for the 8 kbit / s rate.
  • the hierarchy is ensured by the use of a dictionary according to the cascaded summation variant of the basic dictionaries in the sense of the invention.
  • the block size is 5ms, ie 40 samples at 8 kHz.
  • the first basic dictionary D1 (FIG. 8a) is of the "trivial" type and corresponds simply to the ACELP dictionary of the G.729 encoder, whose vectors are obtained by adding four signed pulses whose positions belong to the sets indicated in the table 2 given later.
  • I 1 U IT-T G.729 (“Coding of Speech at 8 kbit / s using the Conjugate Structure Algebraic Code Excited Linear Prediction (CS-ACELP)", March 1996 ).
  • the second basic dictionary D2 (FIG. 8b) is a non-trivial dictionary, whose base pattern (or "tri-pulse"), of length three, comprises three respective amplitude pulses -a, +1 and -a, with preferentially 0 ⁇ ⁇ 0.35.
  • the value a may advantageously be chosen dynamically according to the characteristics of the input signal. The number of occurrences, the amplitudes and the positions of the centers of the pattern are identical to those of the first dictionary.
  • FIG. 8c shows the shape of the average spectra of the waveforms of the first dictionary (arrow D1) and the second dictionary (arrow D2). It is found that the first dictionary has a spectrally flat content, while the second dictionary is richer in high frequencies.
  • FIG. 9 illustrates an encoder according to this embodiment.
  • a first stage ET-1 introduces the adaptive dictionary DICa (vector ⁇ p (n) ⁇ ) and its associated gain g p , then the first fixed dictionary D1 (vector [C 1 (Ii))) and the associated gain gi.
  • a second stage ET-2 presents the search in the second fixed dictionary D2 (vector ⁇ c 2 (n) ⁇ ) and the associated gain g 2 .
  • the search in the first basic dictionary D1 is known and uses, for example, one or the other of the fast and focused algorithms described in the G.729 standard and its reduced complexity Annex A (ITU-T Recommendation G.729, "Annex A: Reduced complexity 8 kbit / s CS-ACELP speech coded", November 1996).
  • the search in the second base dictionary D2 also takes advantage of this fast algorithm, as described above.
  • FIG. 9 can then schematically represent a device within the meaning of the invention, in particular here a coding device.
  • h (n) is zero for n ⁇ 0 or n ⁇ 40
  • h '(ri) is nonzero in principle for -l ⁇ n ⁇ 40.
  • the correction (step 60) to be made to the elements ⁇ '( ⁇ k , ci ⁇ ) to take account of the left edge is as follows:
  • ⁇ '(0,0) 0 (0,0) + ⁇ 2 x Yj ⁇ ⁇ n + V) 2 + 2 ⁇ h' (n) xh (n + V)
  • the present invention is not limited to the embodiment described above by way of example; it extends to other variants.
  • the dictionaries defined by the implementation of the invention offer great flexibility of use. Each block being totally independent of those which precede it or which follow it, it is possible to use for a block a dictionary totally different from that used for the neighboring blocks without particular precautions. This avoids possible problems of continuity. It is then very easy to adapt the dictionaries used to the signal to be coded, for example by modifying the pattern (s) used for the basic dictionaries. It can also be expected to modify the sets that define the positions of the centers of the patterns in the occurrences and / or sets of amplitudes. These possible modifications are for example particularly suitable for the case of variable rate encoders governed by the source.

Landscapes

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

Abstract

L'invention vise la construction de dictionnaires de vecteurs d'excitation CELP, perfectionnés, pour le codage/décodage de signaux audionumériques. Habituellement, chaque vecteur de dimension N comporte des impulsions susceptibles d'occuper N positions valides. L'invention propose de construire des dictionnaires de structure particulière en : - prévoyant une même suite d'impulsions formant un motif de base, - et en affectant le motif de base à chaque vecteur d'excitation du dictionnaire, selon une ou plusieurs occurrences à une ou plusieurs positions respectives parmi les N positions valides précitées. L'invention propose aussi une combinaison de dictionnaires ainsi construits avec éventuellement des dictionnaires multi-impulsionnels classiques, par union ou somme ou mise en cascade.

Description

Codage/décodage perfectionnés d'un signal audionumériαue, en technique CELP
La présente invention concerne le codage/décodage de signaux audionumériques, en technique dite "CELP" (pour "Code Excited Linear Prédiction").
Le codage en compression de tels signaux peut intervenir pour leur transmission ou leur stockage. Les signaux peuvent être des signaux de parole ou plus généralement des signaux sonores digitalisés. Plus particulièrement, cette invention concerne la technique du codage prédictif dans laquelle :
- une prédiction à court terme d'un signal d'entrée est tout d'abord effectuée pour estimer un filtre de synthèse (dit filtre "LPC" pour "Linear Prédiction Coding"),
- puis le signal résiduel obtenu par filtrage du signal original par le filtre LPC est modélisé (par un signal dit "d'excitation" qui produit par filtrage le signal reconstruit) et codé.
Plus précisément, l'invention concerne la famille des codeurs CELP (pour "Code Excited Linear Prédiction"), qui sélectionnent le signal d'excitation parmi un ensemble de signaux candidats en comparant la sortie du filtre de synthèse, excité par ce signal, au signal original, avec introduction d'une pondération perceptuelle. De tels codeurs ont été largement employés pour le codage des signaux de parole dans des débits de 6 à 24 kbit/s, et adoptés notamment dans les normes UIT-T G.729, GSM-EFR, 3GPP/WB-AMR.
L'invention trouve une application avantageuse dans des systèmes de codage hiérarchique décrits en détail plus loin et pour lesquels le train binaire est formé d'une couche de base suivie de couches supplémentaires permettant d'améliorer la qualité. Etat de la technique antérieure
Un schéma général d'un codeur CELP est donné à la figure 1. La figure 2 présente le décodeur associé.
Des détails quant à ce type de codeur/décodeur sont donnés notamment dans une référence de base :
"Code-Excited Linear Prédiction (CELP): High Quality Speech at Very Low Bit Rates", B. S. Atal et M R. Schroeder, ICASSP, 1985, pp.937-940.
En référence à la figure 1 , le codeur segmente un signal d'entrée S(n) en blocs d'échantillons ou "trames" (typiquement de l'ordre de 10 à 20 ms de signal). Ensuite, une analyse LPC 10 est effectuée pour estimer et quantifier les paramètres du filtre de prédiction linéaire à court terme. Dans la plupart des cas, la modélisation du signal d'excitation exc(z) s'effectue ensuite à l'aide de deux dictionnaires :
- le dictionnaire adaptatif DICa destiné à modéliser la périodicité des sons harmoniques, et
- le dictionnaire DICf dit "fixe" pour la partie non harmonique et les sons non voisés.
La présente invention vise plutôt le dictionnaire "fixe" DICf, tandis que ce qui concerne le dictionnaire adaptatif DICa n'est préférentiellement pas traité dans ce qui suit.
La modélisation du signal d'excitation s'effectue en général sur des blocs d'échantillons correspondant à des sous-trames de signal typiquement de l'ordre de 5 ms. Dans ce qui suit, on considérera le cas d'une sous-trame de signal comprenant Λ/ échantillons (par exemple N=40 échantillons à 8 kHz de fréquence d'échantillonnage). Dans un tel codeur, la sélection d'un mot de code optimal dans un dictionnaire (que l'on dénomme également "vecteur- code", ou "forme d'onde") s'effectue par minimisation de l'énergie du signal d'erreur pondéré perceptuellement, ce qui s'exprime par une relation du type :
E(z) =W(z)(S(z) - S(z)) , où les notations E(z), S(z), S(z) représentent les transformées en z, respectivement, du signal d'erreur pondéré, du signal original à coder et du signal reconstruit.
Le filtre W(z) est le filtre de pondération perceptuelle 1 1 (classiquement du
A(z I y ) type — - — — , A(z) désignant le filtre d'analyse LPC, et les facteurs γx et γ2
réglant le degré de pondération perceptuelle).
On peut exprimer le signal d'erreur pondéré E(z) par une relation du type :
Figure imgf000004_0001
- \l Aq(z) correspond au filtre 12 de synthèse LPC,
- res(z) est le signal résiduel LPC,
- exc(z) est le signal d'excitation défini par :
[eXC courant O) = g * C(rt) Sl 0 < H ≤ N ~ 1
Les signaux excpassê (n) et exccourant(n) représentent respectivement le signal d'excitation passé (signal nul sur le bloc courant) et courant (signal à mémoire nulle).
Ainsi, on applique des gains respectifs appropriés g = ga' et g = gf ι aux
signaux c(n) = ca' (n) et c(n)= cf' (n) en sortie des dictionnaires adaptatif DICa et fixe DICf. Puis, ces signaux sont additionnés pour obtenir le signal d'excitation exc(n) . Plus particulièrement, dans l'exemple de la figure 1 , on définit le signal S(n) dont la transformée en z, S(z) , représente la prédiction de l'excitation passée selon une relation du type : exe ^M)
S(z) = passe
Aq(z)
W(z) On définit classiquement aussi le filtre composé : H(z) = — — (1 )
A q (z) et le "signal cible filtré" par une relation du type : x(z) = H(z)(res(z) - excpassé (z)) .
Il découle de ces relations, pour le signal d'erreur pondéré, une expression du type :
E(z) = x(z) - H(z) x exccourant (z) .
Le critère de minimisation CELP (modules subséquents 13 et 14) s'exprime alors par la recherche dans un dictionnaire de la forme d'onde {c(n); 0 ≤ n ≤ N-l} qui minimise la quantité :
E = £(x(tt) - £ XC*(tt))2 ,
B=O
. . . . Num j-t ou encore, qui maximise le rapport - ""°
Den /V-I
∑c"(n)2
B=O
avec cw (n) = h(n) * c(n) = ∑h(i) x c(n - i)
Les éléments {h(n}} représentent la réponse impulsionnelle du filtre H (défini ci-avant par la relation (1 ) ci-dessus).
On considère généralement que le filtre H est causal, c'est-à-dire que les éléments h(n) tels que n < 0 sont nuls. Cependant, dans ce qui suit, on se placera dans un cas plus général où tout ou partie des éléments h(ή) tels que n < 0 peuvent être non nuls.
Classiquement, la technique dite du "backward filtering" exposée dans : "Fast CELP coding based on algebraic codes", J. P. Adoul, P.
Mabilleau, M. Delprat, S. Morissette, ICASSP 1987, pp. 1957-1960, permet de pré-calculer des éléments communs à tous les vecteurs (en particulier l'intercorrélation entre le vecteur cible et le filtre H{z)) pour le numérateur, par :
N-I N-I Num = ∑c(k) χ d(k) avec d(k) = ∑x(n) χ h(n- k); pour k allant de 0 à N -I k=0 n=k
De la même façon, il est possible de calculer l'autocorrélation du filtre H(z) en préalable à la recherche dans le dictionnaire, et de l'utiliser pour accélérer les calculs du dénominateur, avec :
N-I N-2 N-I
Den = ∑c(k)2 xφ(k,k) + 2∑ ∑c(k) x c(k') xφ(k,k') , k=0 k=O k'=k+l
N-I où : φ(k,k') = ∑h(n- k) χ h(n- k') , pour k et k' allant de 0 à N -I
B=O
Le gain optimal associé au vecteur-code sélectionné est quantifié. Un indice de quantification ainsi que l'indice associé au vecteur-code sélectionné sont transmis (via un réseau de télécommunication) ou simplement stockés pour une transmission ultérieure. C'est sur la base de ces indices que le décodage peut ensuite intervenir.
Au décodage, en référence à la figure 2, les gains respectifs gα ι , gf ι sont
décodés et les indices i°pt Jf des vecteurs-code respectivement sélectionnés permettent de retrouver les éléments qui les composent, pour reconstruire le signal d'excitation, puis le signal reconstruit (modules subséquents 21 et 22). Le choix du dictionnaire d'excitation est guidé par des contraintes de débit, de qualité (ou d'efficacité pour un débit donné) et de complexité. Pour un débit restreint, il sera difficile d'obtenir une bonne qualité de reproduction pour tout signal à coder. La complexité est également un facteur important. Pour toutes les applications de communication, la contrainte de temps réel impose des limitations sur le temps de calcul. Les premiers dictionnaires CELP proposés dans la littérature étaient formés de vecteurs-code tirés aléatoirement, ce qui imposait le calcul du numérateur et du dénominateur du critère pour chaque vecteur du dictionnaire. La recherche du meilleur mot de code était alors d'une complexité prohibitive.
Des dictionnaires structurés ont ensuite été proposés pour accélérer la recherche de la forme d'onde optimale, certains calculs de recherche étant réalisés une fois pour différents signaux d'entrée (ou "calculs mutualisés") grâce aux relations induites entre les vecteurs de par la structure du dictionnaire. Une des catégories les plus populaires de dictionnaires structurés est la famille des dictionnaires algébriques, composés d'impulsions dont la position est définie par un code algébrique ou encore selon un réseau de points (typiquement un réseau de Gosset), régulier ou non. Les représentants les plus classiques de tels dictionnaires sont connus sous le nom d'ACELP (pour "Algebraic CELP"). Ces dictionnaires structurés permettent d'éviter le stockage des mots de code, une relation bi-univoque permettant de calculer les éléments des vecteurs-code à partir de leur indice.
Par ailleurs, ces dictionnaires ont donné lieu à des recherches rapides accélérées par des algorithmes d'exploration focalisée sous-optimaux mais très efficaces. Ainsi, pour un dictionnaire multi-impulsionnel, les expressions du numérateur et dénominateur définies plus haut se simplifient si l'on suppose que les vecteurs d'un tel dictionnaire sont constitués de K impulsions, d'amplitudes sk avec k compris entre 0 et K-I (ces amplitudes étant en pratique souvent réduites à un simple signe), avec :
K-I
Num = ∑sk x d(ak) k=0
K-I K-IK-I et Den = ∑sk 2 χφ(ak,ak) + 2χ ∑∑sk χ sι χφ(ak,aι) , k=0 k=0 I=I où α^ et a, représentent les positions auxquelles apparaissent les impulsions.
Cependant, ces dictionnaires, lorsque la contrainte de débit en limite la taille, présentent l'inconvénient d'un certain manque de richesse au niveau du contenu. Les impulsions deviennent peu nombreuses, et, de ce fait, très clairsemées. On parle alors de "Sparse Codebooks" (ou "dictionnaires clairsemés"). Tous les échantillons non nuls ont la même amplitude et il est difficile de bien représenter l'équilibre en amplitude entre les échantillons du bloc avec très peu d'impulsions. Les dégradations induites par l'usage de dictionnaires algébriques trop pauvres sont alors très audibles. Elles se caractérisent par exemple par une certaine raucité du signal.
Pour pallier ces inconvénients, la technique dite de "sparseness réduction" (que l'on pourrait traduire par "réduction du caractère clairsemé") a été proposée dans US-6,029,125. Elle propose d'enrichir un dictionnaire multi- impulsionnel comportant un faible nombre d'impulsions (et donc présentant un "caractère clairsemé") soit par l'addition avec un signal de bruit, soit par filtrage à l'aide d'un filtre passe-tout, qui disperse les impulsions sans modifier le module du spectre du signal. Un tel filtrage agit essentiellement au niveau de la phase. Ces modifications du dictionnaire peuvent être introduites a posteriori au décodage ou peuvent être introduites dans le processus de sélection (donc au codage).
Toutefois, lorsqu'elle est introduite dans le codeur, l'addition de bruit empêche l'usage d'algorithmes rapides de sélection de la forme d'onde optimale. Par ailleurs, le filtrage du dictionnaire fixe suppose a priori une certaine continuité du processus car les filtres tendent à élargir le support du signal filtré, et comme il n'est généralement pas possible de corriger l'excitation du bloc précédent, des irrégularités au bord des blocs d'échantillons codés, mal contrôlées par le processus, peuvent apparaître.
En outre, si l'on souhaite adapter le type de modification apportée au dictionnaire en fonction du signal, il n'y a pas d'autres solutions que de prévoir des filtres différents et passer de filtres à d'autres, ce qui peut également engendrer des distorsions.
Par ailleurs, comme indiqué déjà plus haut, la technique présentée dans ce document US-6,029,125 vise certes à remédier au manque d'impulsions d'un dictionnaire en appliquant une modification qui conserve l'allure spectrale du dictionnaire. Or, il est souvent nécessaire d'enrichir les dictionnaires multi- impulsionnels, en incluant des vecteurs-code qui encodent mieux certaines parties du spectre, en particulier les hautes fréquences, ce qui est incompatible avec la solution retenue dans US-6,029,125.
D'autres types de dictionnaires ont été proposés pour accroître les performances en maintenant des complexités de recherche acceptables. Ainsi, les dictionnaires cascades (ou "multi-stage" en vocable anglo-saxon), éventuellement différents, donnent lieu à plusieurs recherches CELP successives, chaque recherche produisant l'indice d'un vecteur-code sélectionné avec son gain associé. Le vecteur d'excitation s'exprime alors par :
/-1 exccourant (n) = ∑gι x c Xn) ; 0 ≤ n ≤ N -l , si l'on suppose que l'on met en
cascade un nombre / de dictionnaires.
La recherche conjointe des sous-vecteurs-codes (c,(n)} dans les / dictionnaires peut être complexe. En pratique, une méthode sous-optimale de recherche en série est utilisée et consiste à sélectionner la forme d'onde optimale dans le premier dictionnaire et calculer le gain associé, puis à quantifier ce gain et soustraire la contribution connue de ce premier dictionnaire, ce qui, en reprenant les expressions présentées plus haut, se traduit par :
W(z) {exe*™, (n) si n < 0
E& = T AqT{zT) (res& ~ exc^ ^ " exc2 (»)) ' avΘC excι (») = Ig1 X C1 (H /) si nO /≤ n /≤ N Λ, - 1I
Figure imgf000010_0001
Le "signal cible filtré" est modifié en x'(z) = H(z)(res(z) - excι(z)) et la sélection du sous-vecteur du second dictionnaire est ainsi effectuée. Le processus est ensuite itéré pour tous les dictionnaires successifs.
Il est à noter que l'usage de dictionnaires orthogonaux peut aussi être prévue dans ce contexte.
On décrit brièvement maintenant les structures de codage hiérarchique. De telles structures, encore appelées "scalables", fournissent au codage des données binaires qui se répartissent en couches successives. Une couche de base est formée des éléments binaires absolument nécessaires au décodage du train binaire, et déterminant une qualité minimum de décodage. Les couches suivantes permettent d'améliorer progressivement la qualité du signal décodé, chaque nouvelle couche amenant de nouvelles informations, qui, exploitées au décodage, fournissent en sortie un signal de qualité croissante. L'une des particularités des codeurs hiérarchiques est la possibilité d'intervenir à un niveau quelconque de la chaîne de transmission ou de stockage pour supprimer une partie du train binaire sans devoir fournir d'indication particulière au codeur ni au décodeur. Le décodeur utilise les informations binaires qu'il reçoit et produit un signal de qualité correspondante. On retrouve dans la composition des traitements de codage hiérarchique la notion de "couches" de codage. Ces couches peuvent être construites par la mise en œuvre de procédés issus de techniques différentes. En variante, les différentes couches de codage peuvent être issues d'un même type de traitement, dans lequel il est possible d'améliorer la qualité en fournissant simplement des données supplémentaires. Ainsi les codeurs CELP hiérarchiques, encore dénommés "CELP imbriqués", utilisent en général plusieurs dictionnaires, qui peuvent être différents à chaque étage ou identiques.
Néanmoins, les dictionnaires cascades et les dictionnaires intervenant dans les structures de codage hiérarchique présentent encore les mêmes problèmes que ceux décrits précédemment.
La présente invention vient améliorer la situation.
Elle vise en particulier à remédier au manque de richesse, en termes de formes d'onde et de contenu spectral, des dictionnaires CELP à bas débits, tout en conservant la grande facilité de décodage et la faible complexité associées à ces dictionnaires. Elle offre en outre un enrichissement progressif de ces dictionnaires, ce qui est particulièrement intéressant dans le contexte des structures de codage hiérarchique. Elle a également pour objet de proposer une alternative séduisante aux techniques dites "anti-sparseness" et, dans un cadre plus général, peut contribuer à l'enrichissement des dictionnaires clairsemés, avec un meilleur contrôle de la continuité entre blocs successifs.
Elle propose à cet effet un procédé de construction d'un dictionnaire de vecteurs d'excitation de type CELP, pour le codage/décodage de signaux audionumériques, chaque vecteur de dimension N comportant des impulsions susceptibles d'occuper N positions valides. Dans le procédé au sens de l'invention, un dictionnaire initial (appelé aussi ci- après "dictionnaire de base") est construit en : - prévoyant une même suite d'impulsions formant un motif de base,
- et en affectant le motif de base à chaque vecteur d'excitation du dictionnaire, selon une ou plusieurs occurrences à une ou plusieurs positions respectives parmi lesdites N positions valides.
On entend ici par "suite d'impulsions" une succession d'échantillons comportant des impulsions et éventuellement un ou plusieurs échantillons nuls entre les impulsions, et/ou en début et/ou en fin de la succession.
Préférentiellement, le dictionnaire ainsi construit est un dictionnaire d'excitation CELP de type dit "fixe" (référencé DICf par exemple sur les figures 1 et 2 décrites ci-avant).
Préférentiellement, le motif de base apparaissant à chaque occurrence dans un vecteur d'excitation est multiplié par une amplitude associée à ladite occurrence, cette amplitude étant par exemple choisie parmi un ensemble comportant les valeurs +1 et -1.
Préférentiellement encore, tous les vecteurs du dictionnaire initial comportent un même nombre d'occurrences du motif de base.
Ainsi, un dictionnaire initial peut être défini par :
- la suite d'impulsions formant le motif de base,
- le nombre d'occurrences du motif dans chaque vecteur, - des ensembles de positions admises pour les occurrences desdits motifs, et
- des ensembles d'amplitudes à associer aux occurrences desdits motifs.
L'invention propose ainsi la construction de dictionnaires de vecteurs d'excitation CELP, ces dictionnaires étant définis par la donnée d'un motif de base, apparaissant selon une ou plusieurs occurrences, chaque occurrence étant multipliée par une amplitude. Les motifs apparaissant éventuellement en bordure de bloc (trames ou sous-trames d'échantillons) sont tronqués pour s'insérer exactement dans le bloc.
En termes plus génériques, on comprendra que les motifs apparaissant en bordure de bloc d'un vecteur sont tronqués et les impulsions restantes des motifs tronqués occupent le début ou la fin du bloc.
Un dictionnaire obtenu par le procédé au sens de l'invention, rassemblant des vecteurs de dimension N, est alors défini par un motif de base, que l'on "déplace" dans le bloc de longueur N. Chaque motif apparaît selon K occurrences que l'on additionne, chaque occurrence étant elle-même définie par :
- un terme d'amplitude (éventuellement de polarité), c'est-à-dire que le motif est multiplié par une valeur donnée (par exemple ± 1 ) pour chaque occurrence,
- et la position du motif dans l'occurrence.
On relèvera toutefois qu'un dictionnaire multi-impulsionnel, bien connu de l'état de l'art, constitue un cas particulier d'un dictionnaire ainsi obtenu, dans la mesure où la longueur d'un motif dans le cas d'un dictionnaire multi- impulsionnel est simplement de 1. Ce type de dictionnaire multi-impulsionnel sera désigné ci-après sous le nom de "dictionnaire de base trivial".
Par ailleurs, le procédé au sens de l'invention permet de construire des combinaisons de dictionnaires (initiaux et construits comme décrit ci-avant sans exclure aussi le recours à un ou plusieurs dictionnaires supplémentaires multi-impulsionnels classiques).
Ainsi, un dictionnaire obtenu par le procédé au sens de l'invention peut consister en : - un unique dictionnaire de base, non trivial, défini par un motif de base (de longueur supérieure à 1 ), par les positions du motif et par l'amplitude associée selon les différentes occurrences, ou
- une union de dictionnaires de base, dans laquelle au moins l'un des dictionnaires de base est un dictionnaire de base non trivial, ou
- ou une somme de dictionnaires de base, éventuellement pondérée, dans laquelle au moins l'un des dictionnaires de base est un dictionnaire de base non trivial, les occurrences de tous les motifs étant sommées entre elles.
En termes plus génériques, un dictionnaire global peut être construit par une somme de dictionnaires de base dont l'un au moins est un dictionnaire initial défini par un motif de base. Les vecteurs du dictionnaire global sont formés dans ce cas par addition des impulsions de positions communes des vecteurs des dictionnaires de base, préférentiellement pondérés un à un par un gain associé chacun à un dictionnaire.
En variante, un dictionnaire global peut être construit par une union de dictionnaires de base dont l'un au moins est un dictionnaire initial défini par un motif de base. Dans ce cas, le dictionnaire global comporte simplement tous les vecteurs de tous les dictionnaires de base.
La construction de tels dictionnaires permet déjà de prévoir des types variés de contenus. Selon la forme des motifs de base et leur nombre d'occurrences, on pourra obtenir des vecteurs d'excitation d'allures variées, possédant éventuellement un nombre relativement élevé d'impulsions non nulles. Par exemple, le choix du motif de base peut être guidé par des considérations d'ordre spectral. Cette richesse de contenu ne nécessite pas, pour autant, une taille particulièrement importante du dictionnaire car, par le jeu de l'addition des occurrences des motifs, on peut varier les formes des vecteurs d'excitation avec un nombre modéré de motifs et d'occurrences. Ainsi, il est possible de représenter des vecteurs d'excitation ayant un contenu spectral sensiblement différent de celui des dictionnaires multi-impulsionnels classiques, pour des ensembles d'indices équivalents.
Dans une telle réalisation, on peut prévoir que le motif de base comporte au moins une impulsion centrale, précédée et succédée d'au moins une impulsion de signe opposé au signe de l'impulsion centrale. Plus précisément, le motif peut comporter en tout trois impulsions dont :
- une impulsion centrale,
- une seconde impulsion précédant l'impulsion centrale, - et une troisième impulsion succédant l'impulsion centrale, les signes des seconde et troisième impulsions étant opposés à celui de l'impulsion centrale, l'amplitude des seconde et troisième impulsions étant inférieure, en valeur absolue, à celle de l'impulsion centrale et, de façon avantageuse, variable entre 0 (non compris) et environ la moitié de l'amplitude de l'impulsion centrale, en valeur absolue.
Il s'est alors avéré avantageux de prévoir un dispositif de codage/décodage comportant une mise en cascade de dictionnaires, dont au moins un dictionnaire initial est subséquent dans la cascade, ce dictionnaire initial comportant un tel motif symétrique à impulsion centrale et impulsions précédente et suivante d'amplitudes opposées à celle de l'amplitude centrale. Ce dispositif peut comporter avantageusement un filtrage passe-haut dans un filtre global de pondération perceptuel intervenant notamment au codage dans la recherche d'un vecteur d'excitation optimal. Un exemple d'une telle réalisation sera décrit en détails plus loin, en référence aux figures 8a, 8b, 8c et 9. Cette réalisation a permis de focaliser la recherche dans le dictionnaire initial par l'usage d'un filtre passe-haut.
On indique simplement ici que cette réalisation propose une mise en cascade d'un dictionnaire multi-impulsionnel avec un dictionnaire défini par un motif symétrique par rapport à son centre, dont les occurrences du centre du motif décrivent le même ensemble que les occurrences des impulsions du dictionnaire multi-impulsionnel.
Cette mise en œuvre permet d'élargir le domaine spectral du dictionnaire de base initial par l'apport d'un ou plusieurs dictionnaires de base supplémentaires, la recherche dans ces dictionnaires de base supplémentaires étant alors focalisée spectralement par la modification du filtre de pondération perceptuel intervenant dans la recherche du vecteur optimal, le choix de cette modification et celui du motif de ces dictionnaires de base supplémentaires étant éventuellement liés.
De manière plus générale, dans le cas d'une union ou sommation de plusieurs dictionnaires de base, on utilise des dictionnaires de base dont les centres des motifs et les amplitudes associées décrivent les mêmes ensembles mais pour des motifs différents.
Ainsi, en termes plus génériques, les positions des motifs et/ou des impulsions dans les vecteurs des dictionnaires, notamment lorsqu'ils sont mis en cascade, décrivent des ensembles préférentiellement identiques, la position d'un motif étant repérée sensiblement par la position d'une impulsion centrale dans la suite d'impulsions formant le motif.
Il est alors possible de mutualiser les calculs et les algorithmes de traitements rapides car les techniques de recherche d'un vecteur d'excitation meilleur candidat restent rapides dans les dictionnaires construits au sens de l'invention, puisque ces derniers exploitent la structure particulière des dictionnaires multi-impulsionnels classiques, et permettent l'utilisation de traitements efficaces mis en place pour le cas des dictionnaires multi- impulsionnels.
On indique ici que la position d'un motif peut être repérée par la position dans le bloc de l'échantillon du centre du motif, si le motif comprend un nombre impair d'échantillons. Toutefois, de manière strictement équivalente, un éventuel motif de longueur paire pourra être complété par un zéro afin de produire une longueur impaire. Plus généralement, toute autre variante pour repérer la position des motifs peut être envisagée.
L'invention propose des techniques très simples de décodage de l'indice des vecteurs de tels dictionnaires, par addition des occurrences mises à l'échelle du ou des motifs dont la position et le facteur d'amplitude pour chaque occurrence sont transmis.
En termes génériques, au codage, après détermination d'un vecteur meilleur candidat dans un dictionnaire initial, on forme un indice comportant préférentiellement au moins des indications :
- de la ou des position(s) du motif de base dans le vecteur meilleur candidat, et
- de la ou des amplitude(s) associée(s) à la ou les position(s) du motif, ledit indice étant destiné à être transmis pour un décodage ultérieur.
Si l'on prévoit une pluralité de dictionnaires, l'indice comporte en outre une indication du dictionnaire dans lequel le vecteur meilleur candidat a été trouvé.
Ainsi, si le vecteur meilleur candidat a été trouvé dans un dictionnaire initial comportant un motif de base, l'indice comporte en particulier une indication relative au dictionnaire initial précité et, de là, une indication quant au motif de base qui a permis de construire le dictionnaire et donc le vecteur meilleur candidat.
Dans le cas d'un unique dictionnaire de base, l'indice reflète déjà l'amplitude et la position associées à chacune de ses occurrences. Pour décoder le vecteur meilleur candidat, il suffit alors de positionner le motif de base aux différentes positions qu'il doit occuper dans chaque occurrence, le multiplier par les amplitudes associées, et faire la somme des occurrences. Dans le cas d'une union de dictionnaires de base, l'indice informe en outre sur le dictionnaire de base sélectionné, comme indiqué précédemment. Dans le cas d'une somme de dictionnaires de base, on dispose des amplitudes et positions des occurrences de chaque motif de base et on procède de manière équivalente au cas de l'union, mais en sommant les contributions de tous les motifs.
Le décodage des indices des vecteurs d'un dictionnaire au sens de l'invention est très simple.
Au décodage, on reconstruit le meilleur vecteur candidat préférentiellement à partir de l'indice :
- éventuellement dans le cas d'une utilisation d'une union de dictionnaires, en déterminant déjà le motif de base correspondant au dictionnaire initial indiqué par l'indice,
- en positionnant le motif de base aux positions indiquées par l'indice,
- en multipliant le motif à chaque position par une amplitude associée indiquée par l'indice,
- et en additionnant les motifs multipliés et disposés auxdites positions indiquées.
Dans le cas d'une utilisation d'une somme de dictionnaires, on détermine préférentiellement les indices des vecteurs dans chacun des dictionnaires et, de là, on applique pour chaque indice, les trois dernières étapes décrites ci- avant.
II est possible d'accélérer la recherche dans des dictionnaires au sens de l'invention et il est apparu particulièrement intéressant de munir les ensembles de positions des motifs d'une structure forte, par exemple celle des dictionnaires ACELP, pour adapter les traitements rapides de recherche, très efficaces, mis en place habituellement dans les dictionnaires ACELP. Ainsi, en termes plus génériques, le dictionnaire construit au sens de l'invention comporte préférentiellement des positions admises de motif qui décrivent un ensemble fortement structuré, avantageusement comme un ensemble de positions d'impulsions d'un dictionnaire ACELP.
Comme indiqué ci-avant, dans le cas de l'utilisation d'une pluralité de dictionnaires, il est particulièrement intéressant de munir deux ou plusieurs dictionnaires de base d'ensembles identiques de positions de motifs, pour pouvoir réutiliser les mêmes traitements dans la recherche dans les dictionnaires. Ainsi, l'un de ces dictionnaires au moins peut avantageusement être de type ACELP.
La mise en cascade de dictionnaires incluant au moins un dictionnaire de base est très avantageuse. Cette variante est particulièrement adaptée au cas de structures de codage hiérarchique. Néanmoins, les différents dictionnaires de base ne jouent pas le même rôle car, typiquement, le premier dictionnaire assure le codage d'une qualité minimale des signaux qu'il est souhaité de reproduire. Les dictionnaires suivants sont plutôt destinés à améliorer cette qualité, et permettront de consolider le codage, de réduire la sensibilité au type de signal, ou autre.
En termes plus génériques, la mise en cascade d'une pluralité de dictionnaires revient à construire un unique dictionnaire global obtenu par sommation des dictionnaires pondérée par des gains, comme indiqué ci-avant.
Dans ce cas, chaque vecteur d'excitation correspond à la somme de vecteurs issus de dictionnaires de base multipliés par un gain, les dictionnaires de base étant explorés l'un après l'autre, en soustrayant la contribution connue de l'excitation partielle produite par les vecteurs des dictionnaires précédents. Ainsi, dans cette réalisation avantageuse, les dictionnaires mis en cascade sont explorés l'un après l'autre, en soustrayant, pour un dictionnaire courant, une contribution connue d'une excitation partielle produite par les vecteurs d'au moins un dictionnaire précédent, ce qui confère une structure de codage hiérarchique.
De façon particulièrement avantageuse, la recherche dans un dictionnaire au sens de l'invention d'un vecteur d'excitation meilleur candidat s'effectue selon une estimation d'un critère CELP, peu modifiée par rapport à l'art antérieur et comportant alors les étapes : a) calculer la convolution de la réponse impulsionnelle d'un filtre résultant du produit d'un filtre de synthèse LPC par un filtre perceptuel, avec le motif de base du dictionnaire, pour obtenir un vecteur de filtre convolué, b) calculer les éléments d'un vecteur d'inter-corrélation entre un vecteur cible candidat et le vecteur de filtre convolué, c) corriger éventuellement des éléments du vecteur d'inter-corrélation pour tenir compte d'une troncature du motif de base à au moins un bord de bloc, d) calculer les éléments d'une matrice d'autocorrélation du vecteur de filtre convolué, e) corriger éventuellement des éléments de ladite matrice pour tenir compte d'une troncature du motif de base à au moins un bord de bloc, f) effectuer une recherche du vecteur meilleur candidat à l'aide d'un critère CELP exprimé comme une maximisation d'un rapport dans lequel le numérateur fait intervenir les éléments du vecteur d'inter-corrélation et le dénominateur fait intervenir les éléments de la matrice d'autocorrélation.
On comprendra que, dès lors que la recherche peut faire apparaître des motifs de base en bordure de bloc, l'estimation du critère CELP est légèrement modifiée par l'ajout des étapes c) et e), par rapport à l'estimation du critère CELP au sens de l'art antérieur.
D'ailleurs, des simplifications aux algorithmes de recherche optimaux des dictionnaires de base sont en outre proposées lorsque l'énergie relative des parties à tronquer est faible devant celles des parties qui restent dans le bloc pour les motifs du bord. Dans ce cas, l'une des étapes c) et e), ou les deux, pourront être omises.
D'autres simplifications sont également proposées, visant à tronquer les réponses impulsionnelles des filtres de synthèse multipliés par le filtre perceptuel, et à tronquer le vecteur de filtre convolué calculé à l'étape a).
La présente invention vise non seulement le procédé défini ci-avant, mais aussi le dictionnaire, lui-même, de vecteurs d'excitation CELP, susceptible d'être construit par un dispositif de codage/décodage de signaux audionumériques, par une mise en œuvre du procédé au sens de l'invention.
Elle vise aussi un programme informatique comportant des instructions pour la mise en œuvre du procédé de construction d'un dictionnaire tel que défini ci- avant.
Elle vise aussi le dispositif de codage/décodage de signaux audionumériques, comportant au moins un dictionnaire au sens de l'invention. Typiquement, une réalisation avantageuse consiste à prévoir un dispositif incluant des moyens (tels qu'un processeur, une mémoire de calcul, etc) pour générer les vecteurs d'excitation CELP d'un ou plusieurs dictionnaires dont l'un au moins est un dictionnaire à construire par la mise en œuvre du procédé au sens de l'invention.
Avantageusement, ces dictionnaires peuvent être construits par l'exécution d'un programme informatique du type précité, stocké alors dans une mémoire d'un tel dispositif de codage/décodage, par exemple grâce à l'emploi d'une loi algébrique associant les indices de vecteurs aux vecteurs-code eux-mêmes (comme par exemple dans la technique ACELP). La présente invention vise aussi une utilisation d'un tel dispositif pour le codage/décodage de signaux audionumériques (donc typiquement un procédé de codage/décodage), ainsi que le programme informatique destiné à un dispositif de codage/décodage de signaux audionumériques, et comportant des instructions pour la mise en œuvre d'une telle utilisation.
De manière générale, tout ou partie des caractéristiques générales et optionnelles exprimées ci-avant peuvent s'appliquer aussi bien pour la construction du dictionnaire, que pour le dictionnaire lui-même ou pour le dispositif de codage/décodage comportant au moins un dictionnaire ainsi construit ou pour l'utilisation d'un tel dispositif, ou encore pour le programme informatique générant le dictionnaire ou pour le programme informatique permettant l'utilisation du dispositif.
Ainsi, l'invention propose des dictionnaires de vecteurs d'excitation de type CELP et leur utilisation, qui offrent une grande richesse potentielle de contenus pour une taille modérée. Le décodage des indices associés est de faible complexité, en dépit de cette variété de formes. On peut en outre mettre en place des algorithmes rapides de sélection du vecteur optimal, en tirant parti de la composition particulière de ces dictionnaires.
On retiendra alors que la présente invention propose une catégorie de dictionnaires CELP permettant l'encodage d'une grande variété de signaux d'excitation pour des débits relativement modérés, et offrant en outre des algorithmes rapides et efficaces pour la sélection du vecteur adéquat.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés sur lesquels, outre les figures 1 et 2 décrites ci-avant : - la figure 3a illustre un motif de base pour la mise en œuvre de l'invention,
- les figures 3b et 3c illustrent respectivement un premier A0 et un deuxième A1 ensemble des positions de la première et de la deuxième occurrence d'un motif de base, - la figure 3d illustre un exemple de vecteur-code sélectionné par la mise en œuvre de l'invention,
- la figure 4 est une table des modifications de la matrice d'autocorrélation dans l'estimation du critère CELP utilisant un dictionnaire au sens de l'invention, - la figure 5 illustre les principales étapes de recherche du meilleur vecteur- code dans un dictionnaire au sens de l'invention, par application du critère CELP "corrigé" pour tenir compte de la présence de motifs dont une partie est située hors d'un bloc courant,
- la figure 6 illustre un exemple d'union de dictionnaires au sens de l'invention,
- la figure 7 illustre un exemple de somme de dictionnaires au sens de l'invention,
- les figures 8a et 8b illustrent un premier et un second dictionnaire de base dans un exemple de réalisation de la présente invention pour perfectionner un codeur CELP selon la norme G.729,
- la figure 8c compare l'allure des spectres moyens des formes d'ondes du dictionnaire de la figure 8a et du dictionnaire de la figure 8b,
- la figure 9 illustre un exemple de réalisation d'un codeur CELP selon la norme G.729 perfectionné par un exemple de mise en œuvre de la présente invention.
En référence tout d'abord aux figures 3a à 3d, on décrit ci-après le contenu d'un dictionnaire "de base" au sens de l'invention. Les vecteurs-code d'un dictionnaire de base sont obtenus en définissant un motif de base y(j) (-p ≤ j ≤ p) comme une suite d'échantillons (figure 3a) qui se déplace dans un bloc de longueur N, en tronquant le motif lorsqu'il déborde du bloc. On additionne K occurrences de ce même motif, multipliées par un facteur d'amplitude, pour former les vecteurs-code du dictionnaire.
A titre d'exemple, l'encadré en traits pointillés portant la référence D2 de la figure 7 illustre quelques vecteurs V21 , V22, V2n d'un dictionnaire de base ainsi construit. Le premier vecteur V21 comporte un motif de base Pat(D2) comportant une succession de onze impulsions. A gauche de ce motif, on remarque la "fin" d'un motif de polarité inverse et tronqué de sorte que seules ses neuvième à onzième impulsions apparaissent dans le vecteur V21. Le vecteur suivant V22 reprend le motif Pat(D2) entier et un autre motif tronqué à droite et de polarité inverse. Dans les vecteurs V21 et V22, les motifs sont disjoints. En revanche, dans le dernier vecteur V2n, deux motifs de base sont repris avec la même polarité, mais leurs centres respectifs occupent des positions suffisamment proches pour que les deux motifs se chevauchent partiellement. Dans ce cas, les impulsions qui se chevauchent s'additionnent entre elles, en tenant compte de leur signe. Par exemple, le dernier vecteur V2n du dictionnaire D2 dans l'exemple de la figure 7 comporte la somme des impulsions des deux motifs de base en leurs bords, droit pour l'un et gauche pour l'autre (dixième et onzième impulsions du motif global à partir de la gauche). De même, l'impulsion (négative) du centre du deuxième motif du vecteur V21 s'annule avec la deuxième impulsion (positive) du vecteur V12 dans la somme des vecteurs V21 +V12.
Ainsi, en termes plus génériques, parmi les positions admises des motifs de base dans chaque bloc d'un vecteur d'excitation, des positions de motifs sont telles que des motifs se recouvrent au moins partiellement (cas du vecteur V2n). Dans ce cas, les impulsions des motifs se recouvrant sont additionnées une à une. On remarquera que la formulation donnée ci-avant : y(j) (-p ≤ j ≤ p) , présentant l'avantage de rendre plus clairs les développements qui suivent, semble imposer a priori un nombre impair 2p+1 d'éléments dans le motif de base (-p ≤ j ≤ p) . En fait, comme mentionné auparavant, cette particularité n'est aucunement nécessaire pour la mise en œuvre de la présente invention. Si l'on souhaite utiliser un motif ayant un nombre pair d'éléments, il suffit de rajouter un élément nul sur l'un des bords, et la formulation appliquée ici est encore utilisable.
Chaque vecteur {c(n}} d'un dictionnaire de base, de dimension N, est construit en additionnant K vecteurs d'occurrence yk tels que : y k = {sk χ yk(n)}, pour n allant de 0 à /V- 1 et k allant de 0 à K- 1
Ces vecteurs sont formés d'un motif de base affecté d'une amplitude donnée, tronqué si nécessaire au(x) bord(s) et complété par des zéros. Chaque occurrence k se caractérise: - par l'amplitude qui lui est affectée, sk, prenant ses valeurs dans un ensemble Sk , - par la position du motif de base, qui peut être représentée, par exemple, par la position ak à laquelle on place son centre. ak prend ses valeurs dans un ensemble Ak , et peut éventuellement se situer à l'extérieur de l'intervalle [0,N -I] , la seule contrainte étant, bien entendu, que l'intersection des motifs et du bloc ne soit pas nulle.
Les figures 3b et 3c illustrent un tel dictionnaire pour lequel en particulier K=2. La première occurrence est caractérisée par le centre a0 qui peut se placer aux cinq positions d'un ensemble de positions A0 = fy,a%,al,cβ,c%j et par l'amplitude s0 <= S0 = {+ 1} (figure 3b). La seconde occurrence est caractérisée par le centre ax qui peut se placer aux quatre positions de
Figure imgf000026_0001
(figure 3c). Le dictionnaire est alors composé de : 5 (positions AJ) X 4 (positions A1) x 2 (polarités pour A0) x 2 (polarités pour Ai) = 80 vecteurs-codes. Un exemple de vecteur-code de ce dictionnaire (défini par les positions αo=αo et ax-<\ et par les amplitudes so=+l et ^1 =-1) est donné à la figure 3d.
On a donc : k, )_[y(fi si n = ak + j; Max(-p-ak)≤j≤Min(p,N-l-ak); ak<=Ak { 0 si ak £ Ak
Ce qui s'écrit aussi :
Figure imgf000026_0002
en utilisant les fonctions δ (.) de
Kroenecker et de troncature t(n) = 0 si ne[0,N-ï\
Chaque vecteur (c(n)} est défini par l'ensemble des positions des centres des motifs de base de chacune des occurrences qui le composent
K-I _^ (ao,aι,...,aκ_ι)Gγ[Ak , où γ[ désigne le produit cartésien des ensembles, et k=0
K-I par l'ensemble des amplitudes (S07S1,...,S^1) G Y[Sk associées aux différentes
occurrences. Les composantes c(n) (O≤n≤N-ï) s'obtiennent par sommation des
(éventuelles) contributions des K vecteurs yk à l'échantillon n, selon la relation :
K-I K-I P c(n) = ∑skχ yk (n) = ∑sk x ∑ y(j) x δin -cιk- j) x t{n); 0≤n≤N-l k=0 k=0 j=-p
Si l'on définit les vecteurs {co(n)} de dimension (N + 2p) tels que :
K-I co(n) = ∑sk χδ(n-ak), avec -p≤n≤N-1 + p, k=0
alors c(n) = t(n)χ ∑y(j)χc0 (n- j)
J=-P
Les vecteurs {c(n}} du dictionnaire de base se déduisent des vecteurs {co(n)} par convolution avec le motif de base y et troncature aux bornes du segment [0.Λ/-1].
On voit que les vecteurs {co(n)} sont définis par la donnée des centres
K-I
(a0, Ci1,..., Cix-1) <≡γ[ Ak des motifs de base et celle des amplitudes k=0 K-I (i'o,^,...,^^)^]^^ . Si les centres s'ordonnent de manière structurée, on k=0 comprendra qu'il est possible de tirer parti de cette structure pour définir des algorithmes rapides afin d'accélérer la sélection du vecteur-code dans le dictionnaire.
La fonction de troncature t{n) introduit des non-linéarités dans l'expression de c{n), dont on peut s'affranchir en étendant le vecteur {c(n}} de dimension N au vecteur {c'(n)}, de dimension (N + 2p) :
Figure imgf000028_0001
On peut donc faire apparaître trois parties dans le vecteur {c\n)} : c\n) = cc(n) + cg(n) + cd(n); -p≤n≤N-1+p
P La partie centrale cc(n)= ∑y(j)χc0 (n- j); -p≤n≤ N-l+p correspond à la
J=-P convolution de {co(n)} avec le motif de base et ses composantes dans les intervalles des bords, [-p,-l]et [N,N + p-l] sont non nulles a priori. Les deux autres termes annulent les éventuelles composantes non nulles des bords de cc(n) et correspondent aux effets induits par la possible troncature du motif aux bords :
- avec l'effet du bord gauche du bloc :
Figure imgf000028_0002
- et celui du bord droit du bloc :
Figure imgf000028_0003
On décrit maintenant la recherche d'un vecteur-code dans un dictionnaire de base.
On rappelle que le critère CELP à maximiser : N-I
(∑x(n)c»(n))2
Num _ «=0
Dm ∑c"(nγ
H=O fait intervenir le calcul de deux quantités : le numérateur Num et le dénominateur Den.
On définit le vecteur {<?*(«)} de dimension (N + 2p) par la convolution du vecteur {c'(n)} donné ci-dessus avec la réponse impulsionnelle du filtre H{z). Cependant, dans la sélection de la forme d'onde optimale, seuls les Λ/ éléments centraux de ce vecteur sont utilisés.
+00 c*(n) = ∑h(i)χc'(n-i) = bc(n) + bg(n) + bd(n), avec -p≤n≤N-1 + p
+00
Dans cette expression, le facteur central bc(n)= ∑h(i)χcc(n-i) se calcule en
(=—00 introduisant le vecteur {h'(i)}, correspondant à la convolution de la réponse
impulsionnelle du filtre H avec le motif de base (soit h'(i)= ∑h(i- j)χy(j)).
On obtient alors
Figure imgf000029_0001
= ∑ C0(H-Ox ∑h(i'- j)χy(j)
On retiendra que le facteur central s'exprime alors de la manière suivante
K-I bM) = ∑Λ'(/) xco(n- i) = ∑skx h'(n - ak) k=0
Le facteur "bord gauche" bg (n) = ∑h(n - ï) x cg (i) ,
p-l Mιn(-l,p+j) soit bg(n) = - ∑ ∑co(j)χh(n-i)χy(i- j), s'écrit aussi : j=-2p ι=Max(-p+j,-p) Mιn(-l,at+p) bg (n) = ~sk x ∑Λ(Λ - /) x y(/ - ak) , akέT ι=Max(-p+at,-p)
en introduisant l'ensemble Tg = rassemblant pour les K
Figure imgf000030_0001
ensembles Ak, k <= [θ,K -l] , les positions -2p≤ak< p .
Le nombre de termes dans le facteur bJn) dépend des domaines de définition
Ak des centres ak du motif de base dans les ACoccurrences. Cependant, pour que les motifs recouvrent au moins partiellement le bloc courant, il convient d'éviter que le centre soit trop éloigné du premier échantillon de ce bloc, de plus de p échantillons. Cette condition s'écrit ak≥-p, ce qui entraîne:
K-I
Min(-l,ak+p) = -l, et Tg = [JAk n[-p,p-l] k=0
Mιn(p—ak ,p)
Donc bg (n) = - ∑ sk x ∑ h(n + i) x y(-i - ak )
Mιn(p-j, p)
En définissant la fonction h"(n,j)= ∑h(n + i)χy(-i- j) , ι=l
le facteur "bord gauche" s'exprime alors bg(n) = - ∑skχh"(n,ak).
On relèvera que cette dernière expression ne fait intervenir, pour chaque occurrence k, que les valeurs ak des centres qui sont dans l'intervalle [-p, p-1].
Le facteur "bord droit" s'écrit au départ bd(n) = -∑h(n-i)χcd(i) et, en
reprenant les principes appliqués au bord gauche ci-avant :
N+2p-l Mιn(N+p-l,j+p) bd(n) = - ∑ c0U)x ∑h(n-i)χy(i-j), so\t
]=N-p ι=Max(N, j-p) *>_-(«) = -∑ sk x ∑h(n-i)x y(i-ak), avec Td = n[N-p,N + 2p-l]
Figure imgf000031_0001
De manière symétrique au cas précédent, le centre du motif est au plus distant de p échantillons du bord droit, ce qui entraîne ak ≤N + p-l, donc :
Max(N,ak-p) = N et Td = n[N - p,N + p-l]
Figure imgf000031_0002
Mιn(N+p-ι.j+p)
En définissant une fonction hm(n,j)= ∑h(n-ï)χy(i- j), on peut aussi ι=N écrire :
bd(n) = -∑skxhm(n,ak)
Le nombre d'éléments hm(n,j) non nuls dépend ainsi du nombre d'éléments non nuls h(ή) tels que n < 0.Si l'on suppose que le filtre H(z) est causal, tous les éléments bd(ή) tels que n≤N-1 sont nuls.
Donc, dans le cas d'un filtre causal où h(ή) = 0 si n < 0 , les effets de bord droit n'ont aucune incidence sur ce calcul.
Dans ce qui suit, on supposera qu'un motif ne peut être tronqué des deux côtés à la fois. Le cas contraire signifierait qu'un motif puisse être de taille supérieure à la longueur N du bloc, l'invention pouvant néanmoins s'appliquer aussi pour ce dernier cas.
On décrit maintenant l'application du critère CELP avec un dictionnaire au sens de l'invention. Le calcul du numérateur peut être mené comme suit.
/V-I /V-I
Num = ∑x(n)cw(n) = ∑x(n) x (bc (n) + bg (n) + bd (n))
= xhm(n,ak)
Figure imgf000032_0001
N-I K-I Le terme "central" ∑x(n)χ∑skχh'(n-ak) est similaire à l'expression
B=O k=0 habituelle du numérateur du critère de sélection de la forme d'onde optimale dans un dictionnaire multi-impulsionnel. Comme dans la recherche classique,
N-I on définit d(ak) = ∑x(n)χh'(n-ak) et ce terme "central" devient alors
Figure imgf000032_0002
II est possible d'obtenir une expression similaire pour tout le numérateur du dictionnaire au sens de l'invention en posant :
/V-I d(ak)-∑x(n)xh"(n,ak)) si a,, GTn
/V-I d\ak) = d(ak)-∑x(n)xhm(n,ak) si ak<≡Td
B=O d{ak) si ak£Teyjτd
ce qui revient à apporter une correction aux éléments d{ak) pour les centres ak qui appartiennent aux ensembles I^ et Td, c'est-à-dire correspondant à des occurrences où le motif, placé sur le bord, nécessite une troncature.
K-I
On a alors Num = ∑skχd'{ak) , ce qui est semblable au numérateur de la k=0 recherche de la meilleure forme d'onde d'un dictionnaire de type multi- impulsionnel classique.
Le calcul du dénominateur se fait comme suit. /V-I
Den = ∑(c"(n))2 avec
e{nY sk x hm(n,ak)
Figure imgf000033_0001
- 2 st x h'(n - a k) l ∑ s, x hm(n, a, )
Figure imgf000033_0002
+ 2 ]sk x h"(n,ak) ∑s, x hm(n,a,) αt eF. α, er.
Le terme "central" s'exprime de manière classique par
sk x s, xφ(ak,a,) .
Figure imgf000033_0003
N-I φ(i,j) = ∑h'(n-i) χ h'(n- j) est un élément de la matrice d'autocorrélation du
vecteur {h' (ri)}. Pour la recherche de la forme d'onde optimale, seuls les éléments de la matrice d'autocorrélation faisant intervenir les positions des centres du motif dans les différentes occurrences sont utilisés.
Cette dernière expression est encore semblable à celle du dénominateur dans le cas d'un dictionnaire multi-impulsionnel classique. En revanche, pour tout le dénominateur estimé dans le critère CELP avec un dictionnaire au sens de l'invention, on introduit une fonction d'autocorrélation modifiée de la façon présentée dans la table de la figure 4. Moyennant la prise en compte de cette modification de la fonction d'autocorrélation, il est possible d'obtenir une expression identique au cas d'un dictionnaire multi-impulsionnel classique.
La matrice modifiée permet ainsi d'écrire le dénominateur de la recherche dans le dictionnaire au sens de l'invention sous la forme : κ-ι K-I K-I
Den = ∑sk 2 xφ'(ak,ak) + 2x ∑ ∑sk x sι xφ'(ak,aι) k=0 k=0 l=k+l qui est identique à celle du dénominateur pour la recherche dans un dictionnaire multi-impulsionnel classique.
On décrit maintenant la recherche proprement dite dans le dictionnaire au sens de l'invention.
En référence à la figure 5, on prévoit préférentiellement les étapes suivantes, On calcule (étape 51 ) le vecteur convolution de la réponse impulsionnelle du
filtre H avec le motif de base: h'(ï) = ∑h(i - j) x y(j) .
/V-I
On calcule ensuite (étape 52) les éléments d(ak) = ∑x(ή) χh'(n-ak) , du
B=O vecteur de corrélation entre le vecteur cible x(n) et le vecteur {h'(i)} (obtenu à l'étape 51 ). On corrige éventuellement ces éléments (étape générale 53 de la figure 5) pour les motifs apparaissant en bordure de bloc. En effet, pour des valeurs de k ≡ {θ,l,...,K -l} telles que les centres ak ^ Ak des motifs imposent une troncature des motifs aux bords d'un bloc (flèche O en sortie du test 54), on calcule des éléments corrigés d'(ak) (étape 56). Sinon (flèche N en sortie du test 54), on impose d'(ak) = d(ak) (étape 55). On obtient dans les deux cas un vecteur {d'(ak)} tenant avantageusement compte des effets de bord, à la fin de l'étape 53.
On calcule ensuite (étape 57) les éléments de la matrice d'autocorrélation de {h'(i)} pour la détermination du dénominateur : /V-I φ(ak,ak) = ∑h'(n - ak)2 , ak e Ak; k = O → K -I , et
B=O
/V-I φ(ak,a,) = ∑h'(n- ak) χ h'(n -aι) avec
B=O αt e Aj, α, e A,, H = 0 → I -l, / = έ + l → I -l .
On corrige éventuellement ces éléments (étape générale 63 de la figure 5) pour tenir compte encore des motifs apparaissant en bordure de bloc. En effet, pour tous les couples (%,α/) dont l'un au moins des éléments correspond à l'occurrence d'un motif qui déborde sur l'un des bords de bloc (flèche O en sortie du test 58), on calcule à l'étape 60 des éléments corrigés φ'{ak,ciι) .
Sinon (pas de motif en bordure de bloc, ce qui correspond à la flèche N en sortie du test 58), on impose φ'(ak,a,) = φ(ak, a,) à l'étape 59. On obtient dans les deux cas des éléments de matrice tenant avantageusement compte des effets de bord, à la fin de l'étape générale 63.
On effectue ensuite (étape 61 ) la recherche de la meilleure forme d'onde à l'aide du critère classique de recherche CELP, exprimé comme la maximisation d'un rapport dans lequel le numérateur met en œuvre le vecteur {d'(ak)} et le dénominateur les éléments φ'(ak,at) , pour obtenir finalement le meilleur vecteur-code VC (étape 62).
On indique ici que la figure 5 peut illustrer, en tant qu'organigramme, une partie de l'algorithme du programme informatique permettant l'utilisation d'un dispositif de codage/décodage comportant au moins un dictionnaire au sens de l'invention.
La recherche de la forme d'onde dans un dictionnaire de base au sens de l'invention se ramène finalement à celle, connue et efficace, de la recherche dans un dictionnaire multi-impulsionnel classique. En particulier, si les positions des centres ak e At des occurrences k (allant de 0 à K-λ ) des motifs décrivent les positions des impulsions de dictionnaires structurés de type ACELP, il sera possible d'utiliser les algorithmes rapides efficaces qui ont été développés pour de tels dictionnaires ACELP.
On a supposé que le motif est d'une taille inférieure à celle du bloc. Toutefois, dans le cas contraire, il suffit d'introduire une zone ^ nF1, où les deux corrections s'appliquent, sans perte de généralité du procédé.
Des simplifications du procédé ci-dessus peuvent aussi être prévues. Par exemple, lorsque l'énergie relative des éléments qui sont évincés dans l'opération de troncature est faible par rapport à l'énergie des éléments qui restent dans le bloc, pour les occurrences des bords, il peut être prévu simplement de négliger les effets de bord (sans mener alors les tests 54 et 58). Dans ce cas, l'une au moins (préférentiellement l'étape 63) ou les deux étapes de correction 53 et 63 peuvent être simplement supprimées.
On décrit maintenant quelques compositions possibles des dictionnaires de base.
Deux procédés de combinaison peuvent être prévus pour offrir un dictionnaire global capable de fournir des représentations variées des formes d'onde, en particulier pour offrir une richesse spectrale très satisfaisante. En effet, il est possible d'orienter le contenu de chaque dictionnaire de base vers une ou plusieurs catégories de signaux.
* Union de dictionnaires de base
L'union de dictionnaires de base permet de fournir un dictionnaire unique dont chaque partie correspond à un dictionnaire de base. Pour une portion de signal qui sera mieux représentée par l'un des dictionnaires de base, on trouvera alors la meilleure forme d'onde dans ce dictionnaire de base pour représenter cette portion de signal.
La figure 6 illustre un tel dictionnaire, présentant l'union de deux dictionnaires de base D1 et D2, construits à partir des mêmes ensembles de positions pour les centres des occurrences et les mêmes ensembles d'amplitudes, et chacun à deux motifs comportant respectivement : - une impulsion unique Pat(D1 ) pour le premier dictionnaire de base D1 , - et la suite d'impulsions Pat(D2) selon le motif de la figure 3a pour le second dictionnaire de base D2.
Pour un vecteur d'excitation à coder donné, on explore préférentiellement chacun des dictionnaires de base séparément, les meilleures formes d'onde issues de la recherche dans chaque dictionnaire de base étant ensuite comparées entre elles pour en sélectionner la plus appropriée. La complexité de la recherche est dans ce cas équivalente à la somme des complexités des recherches dans chaque dictionnaire de base. Les recherches rapides, induites par la structure avantageuse des dictionnaires de base comme on l'a vu précédemment, se sont révélées très efficaces.
Des variantes d'exploration peuvent être aussi proposées. Par exemple, il est possible de déterminer en premier lieu un (ou plusieurs) dictionnaire(s) de base parmi les dictionnaires qui composent le dictionnaire global, puis de limiter ensuite la recherche aux dictionnaires de base ainsi présélectionnés.
Le décodage des index peut être mené en identifiant tout d'abord le dictionnaire de base qui a été sélectionné (par exemple en comparant l'indice du vecteur-code sélectionné à des valeurs stockées en mémoire correspondant aux frontières des dictionnaires de base dans le dictionnaire complet). Ensuite, on procède au décodage de l'indice du vecteur-code dans le dictionnaire de base de la manière indiquée précédemment.
* Somme de dictionnaires de base Cette réalisation est avantageuse. Il s'agit de construire et utiliser des dictionnaires additionnant les vecteurs des dictionnaires de base pour tirer parti des caractéristiques propres aux dictionnaires de base qui le composent, mais aussi tirer parti de leurs caractéristiques conjointes.
Ainsi, dans le cas d'une somme de dictionnaires, les vecteurs des dictionnaires sont formés simplement en additionnant, un à un et échantillon par échantillon, tous les vecteurs des dictionnaires de base, éventuellement pondérés par des gains comme dans le second mode de réalisation qui est décrit plus loin.
En effet, deux modes de réalisation sont proposés ci-après pour la mener la somme de plusieurs dictionnaires.
Dans un premier mode de réalisation, le dictionnaire global D=D1 +D2 est obtenu en additionnant les formes d'ondes issues de chaque dictionnaire de base. La figure 7 illustre le principe d'une telle addition de dictionnaires de base. Dans l'exemple représenté, on additionne deux dictionnaires D1 , D2 seulement et on relèvera que les pondérations des impulsions des vecteurs V1 i du dictionnaire D1 sont les mêmes, dans la somme D1 +D2, que celles des impulsions des vecteurs V2j du dictionnaire D2.
On définit alors ici un gain unique associé à une somme donnée. Ainsi, on bénéficie toujours de l'avantage relatif à la simplicité du décodage utilisant des dictionnaires dont l'un au moins est un dictionnaire de base. En effet, un vecteur-code appartenant à un dictionnaire de base D2 pourra être représenté en indiquant les positions des centres des motifs et les amplitudes des occurrences dans les différents dictionnaires, c'est-à-dire pour les différents motifs, et en additionnant ensuite les motifs mis à l'échelle et ainsi placés. Les composantes des vecteurs-code d'un tel dictionnaire, obtenu par sommation de / dictionnaires de base, s'expriment par une relation du type :
/-1 c(n) = ^c1 (n) ' Θt 'Θ vecteur d'excitation courant s'écrit :
1=0
/-1 exCœuranM) = g x ^c, («) si 0 < n < N - 1 .
II peut être avantageux aussi d'adapter les algorithmes rapides proposés dans le cadre d'un unique dictionnaire de base à la somme de dictionnaires décrite ci-avant. A titre d'exemple illustratif, on considère la somme de deux dictionnaires de base, ce qui s'écrit :
c(n) = cι(n) + c2 (n) = ∑sk χ y{ (rή + ∑St χ y2' (n) , où les indices 1 et 2 sont k=0 1=0 relatifs respectivement aux vecteurs issus du premier motif ^1 et du second motif y2 , rencontrés selon Ki et respectivement K2 occurrences. Comme dans le cas d'un unique dictionnaire de base décrit précédemment, il est possible de définir des vecteurs {h[(i)},ψî(i,ak);ak <≡ Tg ι
Figure imgf000039_0001
<≡ Td ι ] correspondant au premier motif et des vecteurs fyii)}, f%(i,ak);ak
Figure imgf000039_0002
correspondant au second motif. On retrouve encore les expressions classiques des numérateurs et dénominateurs des recherches dans des dictionnaires multi-impulsionnels, à condition d'adapter les expressions des vecteurs de corrélations comme suit. Pour l'intercorrélation avec le vecteur cible, il est possible de calculer des vecteurs modifiés {d[(ak)} et [d2'(ak)} comme proposé plus haut et le
K1 -1 K2 -1 numérateur s'écrit alors : Num = ∑sk x d[(ak) + ∑s, x d2' (a,) . k=0 1=0 Le cas du dénominateur est cependant plus compliqué car, outre les
1 1 O O autocorrélations φ[(ak ,a[ ); ak e Ak , a[ e At et φ2' {ak ,aι ); ak G Ak , ai G A{ définies plus haut, il convient de faire intervenir les corrélations entre les occurrences du premier motif et celles du second motif. Ainsi, par exemple, pour des valeurs de centres
Figure imgf000040_0002
e Aj telles que
Figure imgf000040_0001
<£ Tg ι ur] et af G Af telles
que af ^ Y1 urj , avec k < I , il convient de calculer :
/V-I φ'(ak ι ,af ) = ∑h[(n-ak ι ) x h2' (n- af ) .
B=O
Ces expressions peuvent devenir assez compliquées dans le cas général, même si elles restent à la portée de l'homme du métier, Le dénominateur peut toujours être exprimé selon une relation du type :
Den = ∑sk 2 k2 x φ'(ak,ak) + 2x ∑∑st x S1 x φ'(ak,a,) k kj k<l de sorte qu'il est toujours possible de calculer les éléments d'une matrice d'autocorrélation modifiée et, là encore, les algorithmes de recherche accélérée des codes multi-impulsionnels peuvent être utilisés.
Un second mode de réalisation d'une somme de dictionnaires de base donne lieu à des algorithmes de recherche plus simples. Le principe consiste à cascader la sommation des dictionnaires de base, un gain différent étant associé à chaque sous-vecteur issu des dictionnaires de base. Dans ce cas, le vecteur d'excitation s'exprime par :
/-1 eXC couran, («) = ∑ £, * C, («) Si 0 ≤ Λ ≤ -V - 1 .
1=0
Cette variante est très avantageuse en termes de complexité. Elle présente encore d'autres avantages. Comme chaque dictionnaire de base est plus particulièrement destiné à enrichir le dictionnaire global et, par exemple selon un type particulier de signaux d'excitation, il peut être avantageux d'utiliser des filtres perceptuels différents W1 (z) (pour / allant de 0 à /-1 ) pour les différentes recherches dans les dictionnaires de base. Par exemple, on peut utiliser un premier dictionnaire de base plutôt apte à bien représenter la partie basse fréquence du signal d'excitation, et un second dictionnaire de base plutôt destiné à représenter la partie haute fréquence. Il sera alors particulièrement avantageux dans un tel schéma de favoriser la partie haute fréquence du spectre dans la recherche dans le second dictionnaire de base. Par exemple, dans la seconde recherche, le filtre perceptuel classique peut être mis en cascade avec un filtre passe-haut. Une telle opération pourrait d'ailleurs être qualifiée de "focalisation spectrale". Elle sera décrite en détail plus loin, en référence à la figure 9, pour illustrer un exemple de réalisation particulier.
Enfin, ce second mode de réalisation s'adapte avantageusement aux structures de codage CELP hiérarchiques. En effet, dans ces structures, le train binaire est hiérarchisé et, dans la mise en œuvre de ce second mode de réalisation, les bits correspondant aux indices et aux gains de chacun des sous-vecteurs-code des dictionnaires de base peuvent constituer des couches hiérarchiques distinctes (ou "participer" à des couches distinctes). Si le décodeur ne reçoit qu'une partie de ces informations, il pourra reconstituer au moins une partie de l'excitation en décodant les indices et gains reçus associés aux sous-vecteurs-code des dictionnaires de base des premières couches et en additionnant les excitations partielles ainsi obtenues. Comme indiqué plus haut, le premier dictionnaire de base assure alors le codage de qualité minimale et les suivants permettront une augmentation progressive de la qualité et une meilleure prise en compte de la possible variété des signaux, par exemple en offrant un contenu spectral élargi.
On décrit maintenant un exemple de réalisation de l'invention appliquée à un codeur/décodeur existant. L'exemple de réalisation décrit ci-dessous se situe dans le contexte d'un codeur CELP hiérarchique produisant un train binaire formé de deux couches dont une première couche correspond au codage "cœur" de la structure hiérarchique, qui fonctionne au débit de 8 kbit/s et une seconde couche apporte une amélioration de la qualité pour 4 kbit/s supplémentaires, ce qui produit un débit total de 12 kbit/s. Le train binaire de la première couche est "compatible" avec celui du codeur normalisé UIT-T G.729 de sorte qu'un codeur ou respectivement un décodeur au sens de l'invention puisse opérer avec un décodeur ou respectivement un codeur conforme à la norme G.729 et ses annexes pour le débit de 8 kbit/s.
Dans l'exemple de réalisation proposé, la hiérarchie est assurée par l'usage d'un dictionnaire selon la variante de sommation cascadée des dictionnaires de base au sens de l'invention. La taille du bloc est de 5ms, soit 40 échantillons à 8 kHz.
Le premier dictionnaire de base D1 (figure 8a) est de type "trivial" et correspond simplement au dictionnaire ACELP du codeur G.729, dont les vecteurs s'obtiennent en additionnant quatre impulsions signées dont les positions appartiennent aux ensembles indiqués dans la table 2 donnée plus loin. Pour plus de détails, on pourra se référer utilement à la recommandation de I1U IT-T G.729 {"Coding of Speech at 8 kbit/s using Conjugate Structure Algebraic Code Excited Linear Prédiction (CS-ACELP)", Mars 1996).
II s'agit donc d'un dictionnaire de base associé à un motif restreint à l'impulsion centrale (p = 0), avec K = 4 occurrences, les ensembles S0, S^! S2, S3 étant donnés dans la seconde colonne de la table 2, et les ensembles A), Ai1 -A2, A3 dans la dernière.
Figure imgf000043_0001
Table 2: Dictionnaire ACELP du codeur G.729
Le second dictionnaire de base D2 (figure 8b) est un dictionnaire non trivial, dont le motif de base (ou "tri-pulses"), de longueur trois, comporte trois impulsions d'amplitudes respectives -a, +1 et -a, avec préférentiellement 0 < α < 0,35. La valeur a peut avantageusement être choisie dynamiquement en fonction des caractéristiques du signal d'entrée. Le nombre d'occurrences, les amplitudes et les positions des centres du motif sont identiques à ceux du premier dictionnaire.
La figure 8c montre l'allure des spectres moyens des formes d'ondes du premier dictionnaire (flèche D1 ) et du second dictionnaire (flèche D2). On constate que le premier dictionnaire présente un contenu spectralement plat, tandis que le second dictionnaire est plus riche en hautes fréquences.
Cette observation permet d'améliorer la qualité obtenue par la première couche de codage, laquelle fournit une restitution de bonne qualité pour les signaux de parole dans la partie basse fréquence de la zone [300-3400 Hz], et tend à décroître en énergie et en fidélité lorsque l'on se rapproche des hautes fréquences. Pour mieux focaliser la recherche dans le second dictionnaire de base aux hautes fréquences du spectre, lors de l'exploration de ce second dictionnaire, un filtre passe-haut supplémentaire Hp(z) est appliqué au filtre W(z).
La figure 9 illustre un codeur selon cet exemple de réalisation. Un premier étage ET-1 introduit le dictionnaire adaptatif DICa (vecteur {p(n)}) et son gain associé gp, puis le premier dictionnaire fixe D1 (vecteur [C1(Ii))) et le gain associé g-i. Un second étage ET-2 présente la recherche dans le second dictionnaire fixe D2 (vecteur {c2(n)}) et le gain associé g2. Les recherches dans le dictionnaire adaptatif DICa et le premier dictionnaire fixe D1 utilisent le filtre perceptuel W1[Z)=W[Z), tel que celui défini par exemple dans la norme G.729.
Le second dictionnaire D2 utilise une recherche focalisée dans les hautes fréquences par l'apport du filtre Hp(z) : W2(z) = W(z) χ Hp(z) .
La recherche dans le premier dictionnaire de base D1 est connue et utilise par exemple l'un ou l'autre des algorithmes rapides et focalisés décrits dans la norme G.729 et son annexe A à complexité réduite (Recommandation UIT-T G.729, "Annex A: Reduced complexity 8 kbit/s CS-ACELP speech codée", Novembre 1996).
La recherche dans le second dictionnaire de base D2 tire également parti de cet algorithme rapide, comme décrit plus haut.
Par souci de lisibilité ci-après, tous les indices "2" relatifs au second dictionnaire seront omis dans ce qui suit (par exemple H2 (z) devient H(z) , clin) devient c*(n) , etc.).
Selon une première simplification, la réponse impulsionnelle du filtre
est tronquée aux éléments h(n) tels que 0 < n < 39 (en
Figure imgf000044_0001
rappelant que la longueur des blocs N = 40). Le vecteur {cw(n)} est donc défini pour -l≤n<40. Comme mentionné plus haut, le bord droit n'intervient pas {bd(ri) = 0) grâce au fait que h(n) = 0 pour n<0 (filtre causal). On voit aussi que les positions des centres ak sont toutes dans le bloc [0, 39].
3 Dans ces conditions, l'ensemble Tg =[jAt n[-l,θ] ne comporte qu'un seul k=0 élément, à savoir la position αo=O, dans l'ensemble A0 uniquement et correspondant à la première position du motif tri-pulses sur la première occurrence : Tg ={θ}.
La figure 9 peut alors représenter schématiquement un dispositif au sens de l'invention, en particulier ici un dispositif de codage.
Comme mentionné précédemment, on calcule d'abord (première étape référencée 51 sur la figure 5) le vecteur convolution de la réponse impulsionnelle du filtre H avec le motif de base, ce qui donne : h' (ri) = -ah(n + l) + h(ή) - ah(n-l)
Comme h(n)est nul pour n<0 ou n≥40, h' (ri) est en revanche non nul a priori pour -l≤n<40.
3 Pour calculer le numérateur Num = ∑skχ.d'(ak) du critère CELP, on calcule
39 tout d'abord l'intercorrélation d(ak) = ∑x(n)χh'(n-ak) (étape 52), modifiée
(étape générale 53) en :
si ak=0 (étape 56 de la figure 5)
Figure imgf000045_0001
si ak≠0 (étape 55 de la figure 5) La correction à apporter se limite donc à corriger le premier élément :
39 d'(0) = d(0)-∑x(n)χh"(n,0) avec h"(n,0) = -a x h(n + 1) .
B=O
Les ensembles Ak couvrent toutes les positions du bloc [0, 39]. Il est donc nécessaire de calculer d'(j) pour tout 0 < j ≤ 39 , avec la relation :
39 39 d'(0) = ∑x(n) x h\n) + a∑x(n) x h(n + 1)
B=O B = O
39 et d'(j) = d(j)= ∑x(n)χh'(n-j) si 1 < 7 ≤ 39
B=J-I
Pour le dénominateur, on doit calculer les autocorrélations (étape 57) :
39 φ(ak,ak) = ∑h'(n-ak)2, k = 0→39 et
B=O
39
[Ci^a1) = ∑h'(n- ak)xh'(n- Ci1), k = 0→38,l = k + l→39
B=O
(On rappelle que la notation k = x→ y signifie bien entendu : "pour k allant de x à y").
39
La contrainte h'(n) = 0 pour n<-\ entraîne φ(i,j)= ∑h'(n-i)χh'(n- j) n=Mαx(j-l,0) pour tout couple d'éléments (i,j) avec i<j, en gardant à l'esprit que φ(i,j) = φ(j,i).
La correction (étape 60) à apporter aux éléments φ'(αk,ciι) pour tenir compte du bord gauche est la suivante :
38 38
^'(0,0) = 0(0,0) + α2 x Yjι{n + V)2 + 2α∑ h'(n) x h(n + V)
B=O B=O
38 φ'(0,αι) = φ(0,αι) + α ^Λ(n + l)xΛ'(n-α;); l≤α;<39 n=α; — 1 II n'est donc finalement pas nécessaire de calculer h' (40) , seuls les éléments h' (ri) , avec -l ≤ n < 39 , intervenant dans le calcul. On rappelle que les autres éléments φ(ak,ak) , avec ak ≠ O , et φ(ak,a,) , avec ak ≠ 0,a, ≠ O , n'ont pas à être corrigés et on fixe φ'(ak,a,) = φ(ak,a,) dans ce cas (étape 59 de la figure 5).
Des simplifications supplémentaires peuvent d'autre part être apportées, en particulier pour un coefficient a petit. En effet, pour le calcul du dénominateur, si l'on exprime les éléments h'(n) = -ah(n-l) + h(n) -ah(n + l) , il est possible de faire apparaître la fonction d'autocorrélation :
/V-I φo(i, j) = ∑h(n - i) χ h(n - j) i, j = O → _V -1 du filtre H(z). n=Max(ι,j)
On peut alors décider de négliger tous les termes faisant intervenir des éléments de cette matrice lorsqu'ils sont multipliés par a2. En outre, on peut ne pas prendre en compte les effets de bord dans le calcul du dénominateur, considérant qu'ils interviennent peu dans la somme
39
∑(c"(n))2 , sachant que p=1 et a est largement inférieur à 1.
B=O
De là, on peut négliger les effets de bord aussi bien au numérateur qu'au dénominateur.
Enfin, il est possible d'introduire une simplification supplémentaire qui permet de calculer les éléments de la matrice d'autocorrélation du second dictionnaire de base exactement de la même façon que celui du premier. Cette simplification consiste à tronquer {h' (ri)} dans l'intervalle [0,39} . L'erreur ainsi produite dépend de la valeur de a mais aussi de la pente du spectre.
Typiquement, pour un signal ayant une forte concentration en énergie dans les basses fréquences, la valeur de h(0) est du même ordre que celle des éléments voisins et on comprendra que h'(-l) = -a χ h(0) influence peu le calcul. Bien entendu, la présente invention ne se limite pas à la forme de réalisation décrite ci-avant à titre d'exemple ; elle s'étend à d'autres variantes.
De façon générale, les dictionnaires définis par la mise en œuvre de l'invention offrent une grande souplesse d'utilisation. Chaque bloc étant totalement indépendant de ceux qui le précèdent ou qui le suivent, il est possible d'utiliser pour un bloc un dictionnaire totalement différent de celui utilisé pour les blocs voisins sans précautions particulières. On s'affranchit ainsi d'éventuels problèmes de continuité. Il est alors très facile d'adapter les dictionnaires utilisés au signal à coder, par exemple en modifiant le ou les motifs utilisé(s) pour les dictionnaires de base. Il peut être prévu aussi de modifier les ensembles qui définissent les positions des centres des motifs dans les occurrences et/ou les ensembles d'amplitudes. Ces modifications possibles sont par exemple particulièrement adaptées au cas des codeurs à débit variable gouvernés par la source.

Claims

Revendications
1. Procédé de construction d'un dictionnaire de vecteurs d'excitation de type CELP, pour le codage/décodage de signaux audionumériques, chaque vecteur de dimension N comportant des impulsions susceptibles d'occuper N positions valides, caractérisé en ce qu'un dictionnaire initial est construit en :
- prévoyant une même suite d'impulsions formant un motif de base,
- et en affectant le motif de base à chaque vecteur d'excitation du dictionnaire, selon une ou plusieurs occurrences à une ou plusieurs positions respectives parmi lesdites N positions valides.
2. Procédé selon la revendication 1 , caractérisé en ce que le motif de base apparaissant à chaque occurrence dans un vecteur d'excitation est multiplié par une amplitude associée à ladite occurrence.
3. Procédé selon la revendication 2, caractérisé en ce que l'amplitude associée à une occurrence est choisie parmi un ensemble comportant les valeurs +1 et -1.
4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que tous les vecteurs du dictionnaire initial comportent un même nombre d'occurrences dudit motif.
5. Procédé selon la revendication 4, caractérisé en ce que le dictionnaire initial est défini par :
- la suite d'impulsions formant le motif de base,
- le nombre d'occurrences du motif dans chaque vecteur,
- des ensembles de positions admises pour les occurrences desdits motifs, et
- des ensembles d'amplitudes à associer aux occurrences desdits motifs.
6. Procédé selon l'une des revendications précédentes, caractérisé en ce que les motifs apparaissant en bordure de bloc d'un vecteur sont tronqués et les impulsions restantes des motifs tronqués occupent le début ou la fin du bloc.
7. Procédé selon l'une des revendications précédentes, caractérisé en ce que, parmi les positions admises des motifs dans chaque bloc d'un vecteur, des positions de motifs sont telles que des motifs se recouvrent au moins partiellement, et en ce que les impulsions des motifs se recouvrant sont additionnées une à une.
8. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'un dictionnaire global est construit par une somme de dictionnaires de base dont l'un au moins est un dictionnaire initial défini par un motif de base, et en ce que les vecteurs du dictionnaire global sont formés par addition des impulsions de positions communes des vecteurs des dictionnaires de base.
9. Procédé selon la revendication 8, caractérisé en ce que les vecteurs des dictionnaires de base sont pondérés par un gain associé chacun à un dictionnaire, pour construire ladite somme.
10. Procédé selon l'une des revendications précédentes 1 à 7, caractérisé en ce qu'un dictionnaire global est construit par une union de dictionnaires de base dont l'un au moins est un dictionnaire initial défini par un motif de base, et en ce que le dictionnaire global comporte tous les vecteurs de tous les dictionnaires de base.
1 1. Procédé selon l'une des revendications 8 à 10, caractérisé en ce que l'un au moins des dictionnaires intervenant dans l'union ou la somme est de type ACELP.
12. Procédé selon l'une des revendications précédentes, caractérisé en ce que le dictionnaire construit comporte des positions admises de motif qui décrivent un ensemble qui est structuré comme un ensemble de positions d'impulsions d'un dictionnaire ACELP.
13. Procédé selon l'une des revendications précédentes, caractérisé en ce que le motif de base comporte au moins une impulsion centrale, précédée et succédée d'au moins une impulsion de signe opposé au signe de l'impulsion centrale.
14. Procédé selon la revendication 13, caractérisé en ce que le motif comporte trois impulsions dont :
- une impulsion centrale,
- une seconde impulsion précédant l'impulsion centrale,
- et une troisième impulsion succédant l'impulsion centrale, les signes des seconde et troisième impulsions étant opposés à celui de l'impulsion centrale, l'amplitude des seconde et troisième impulsions étant inférieure, en valeur absolue, à celle de l'impulsion centrale.
15. Procédé selon la revendication 14, caractérisé en ce que l'amplitude des première et seconde impulsions est variable entre 0 et environ la moitié de l'amplitude de l'impulsion centrale, en valeur absolue.
16. Programme informatique comportant des instructions pour la mise en œuvre du procédé de construction d'un dictionnaire, selon l'une des revendications 1 à 15.
17. Dictionnaire de vecteurs d'excitation de type CELP, pour le codage/décodage de signaux audionumériques, caractérisé en ce qu'il comprend des vecteurs d'excitation de dimension N comportant une même suite d'impulsions, formant un motif de base, selon une ou plusieurs occurrences à une ou plusieurs positions respectives parmi N positions valides.
18. Dispositif de codage/décodage de signaux audionumériques, comportant au moins un dictionnaire selon la revendication 17.
19. Dispositif selon la revendication 18, caractérisé en ce qu'il comporte une pluralité de dictionnaires mis en cascade et incluant au moins un dictionnaire initial obtenu par la mise en œuvre du procédé selon l'une des revendications 1 à 15.
20. Dispositif selon la revendication 19, caractérisé en ce que les positions des motifs et/ou des impulsions dans les vecteurs desdits dictionnaires en cascade décrivent des ensembles identiques, la position d'un motif étant repérée sensiblement par la position d'une impulsion centrale dans la suite d'impulsions formant le motif.
21. Dispositif selon l'une des revendications 19 et 20, caractérisé en ce qu'il comporte un dictionnaire initial, construit par la mise en œuvre du procédé selon l'une des revendications 13 à 15 et subséquent dans ladite cascade de dictionnaires.
22. Dispositif selon la revendication 21 , caractérisé en ce qu'il comporte, pour la recherche dans le dictionnaire subséquent, un filtrage passe-haut dans un filtre global de pondération perceptuel intervenant notamment au codage dans la recherche d'un vecteur d'excitation optimal.
23. Utilisation du dispositif selon l'une des revendications 18 à 22 pour le codage/décodage de signaux audionumériques, dans laquelle, au codage, après détermination d'un vecteur meilleur candidat dans un dictionnaire initial, on forme un indice comportant au moins des indications :
- de la ou des position(s) du motif de base dans le vecteur meilleur candidat, et
- de la ou des amplitude(s) associée(s) à la ou les position(s) du motif, ledit indice étant destiné à être transmis pour un décodage ultérieur.
24. Utilisation selon la revendication 23, dans laquelle, au décodage, on reconstruit le meilleur vecteur candidat à partir de l'indice :
- en positionnant le motif de base aux positions indiquées par l'indice,
- en multipliant le motif à chaque position par une amplitude associée,
- et en additionnant les motifs multipliés et disposés auxdites positions indiquées.
25. Utilisation selon l'une des revendications 23 et 24, dans laquelle le dispositif comporte une mise en cascade d'une pluralité de dictionnaires qui revient à construire un unique dictionnaire global obtenu par sommation des dictionnaires pondérée par des gains, selon une mise en œuvre du procédé selon la revendication 9.
26. Utilisation selon la revendication 25, dans laquelle les dictionnaires mis en cascade sont explorés l'un après l'autre, en soustrayant, pour un dictionnaire courant, une contribution connue d'une excitation partielle produite par les vecteurs d'au moins un dictionnaire précédent, ce qui confère une structure de codage hiérarchique.
27. Utilisation selon l'une des revendications 23 à 26, dans laquelle la recherche d'un vecteur d'excitation meilleur candidat dans un dictionnaire s'effectue selon une estimation d'un critère CELP comportant les étapes : - calculer la convolution d'une réponse impulsionnelle d'un filtre résultant de la multiplication d'un filtre de synthèse LPC par un filtre perceptuel, avec le motif de base du dictionnaire, pour obtenir un vecteur de filtre convolué,
- calculer les éléments d'un vecteur d'inter-corrélation entre un vecteur cible candidat et le vecteur de filtre convolué,
- calculer les éléments d'une matrice d'autocorrélation du vecteur de filtre convolué, et
- effectuer une recherche du vecteur meilleur candidat à l'aide d'un critère
CELP exprimé comme une maximisation d'un rapport dans lequel le numérateur fait intervenir les éléments du vecteur d'inter-corrélation et le dénominateur fait intervenir les éléments de la matrice d'autocorrélation.
28. Utilisation selon la revendication 27, dans laquelle ladite recherche est menée dans un dictionnaire obtenu par la mise en œuvre du procédé selon la revendication 6, et, pour tenir compte d'une troncature du motif de base à au moins un bord de bloc, on corrige, le cas échéant, des éléments du vecteur d'inter-corrélation et/ou des éléments de ladite matrice.
29. Programme informatique destiné à un dispositif de codage/décodage de signaux audionumériques, comportant des instructions pour la mise en œuvre de l'utilisation selon l'une des revendications 23 à 28.
PCT/FR2007/050780 2006-02-22 2007-02-13 Codage/decodage perfectionnes d'un signal audionumerique, en technique celp WO2007096550A2 (fr)

Priority Applications (6)

Application Number Priority Date Filing Date Title
AT07731605T ATE520121T1 (de) 2006-02-22 2007-02-13 Verbesserte celp kodierung oder dekodierung eines digitalen audiosignals
US12/224,205 US8271274B2 (en) 2006-02-22 2007-02-13 Coding/decoding of a digital audio signal, in CELP technique
EP07731605A EP1994531B1 (fr) 2006-02-22 2007-02-13 Codage ou decodage perfectionnes d'un signal audionumerique, en technique celp
CN2007800065199A CN101401153B (zh) 2006-02-22 2007-02-13 Celp技术中改进的数字音频信号的编码/解码
KR1020087023140A KR101370017B1 (ko) 2006-02-22 2007-02-13 Celp 기술에서의 디지털 오디오 신호의 개선된 코딩/디코딩
JP2008555849A JP5188990B2 (ja) 2006-02-22 2007-02-13 Celp技術における、デジタルオーディオ信号の改善された符号化/復号化

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0601563 2006-02-22
FR0601563 2006-02-22

Publications (2)

Publication Number Publication Date
WO2007096550A2 true WO2007096550A2 (fr) 2007-08-30
WO2007096550A3 WO2007096550A3 (fr) 2007-10-11

Family

ID=37308852

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2007/050780 WO2007096550A2 (fr) 2006-02-22 2007-02-13 Codage/decodage perfectionnes d'un signal audionumerique, en technique celp

Country Status (7)

Country Link
US (1) US8271274B2 (fr)
EP (1) EP1994531B1 (fr)
JP (1) JP5188990B2 (fr)
KR (1) KR101370017B1 (fr)
CN (1) CN101401153B (fr)
AT (1) ATE520121T1 (fr)
WO (1) WO2007096550A2 (fr)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2466672B (en) * 2009-01-06 2013-03-13 Skype Speech coding
GB2466673B (en) 2009-01-06 2012-11-07 Skype Quantization
GB2466674B (en) * 2009-01-06 2013-11-13 Skype Speech coding
US20100174539A1 (en) * 2009-01-06 2010-07-08 Qualcomm Incorporated Method and apparatus for vector quantization codebook search
GB2466675B (en) 2009-01-06 2013-03-06 Skype Speech coding
GB2466670B (en) * 2009-01-06 2012-11-14 Skype Speech encoding
GB2466671B (en) * 2009-01-06 2013-03-27 Skype Speech encoding
GB2466669B (en) * 2009-01-06 2013-03-06 Skype Speech coding
US8452606B2 (en) * 2009-09-29 2013-05-28 Skype Speech encoding using multiple bit rates
JP5525540B2 (ja) * 2009-10-30 2014-06-18 パナソニック株式会社 符号化装置および符号化方法
PT2515299T (pt) * 2009-12-14 2018-10-10 Fraunhofer Ges Forschung Dispositivo de quantificação vetorial, dispositivo de codificação de voz, método de quantificação vetorial e método de codificação de voz
US8924203B2 (en) * 2011-10-28 2014-12-30 Electronics And Telecommunications Research Institute Apparatus and method for coding signal in a communication system
KR102459010B1 (ko) 2013-05-24 2022-10-27 돌비 인터네셔널 에이비 오디오 인코더 및 디코더
US9418671B2 (en) * 2013-08-15 2016-08-16 Huawei Technologies Co., Ltd. Adaptive high-pass post-filter
ES2856199T3 (es) 2013-10-18 2021-09-27 Fraunhofer Ges Forschung Concepto para codificar una señal de audio y decodificar una señal de audio usando información de conformación espectral relacionada con la voz
WO2015055532A1 (fr) * 2013-10-18 2015-04-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Concept pour l'encodage d'un signal audio et le décodage d'un signal audio au moyen d'informations déterministiques et de type bruit
CN105723455B (zh) 2013-11-13 2020-01-24 弗劳恩霍夫应用研究促进协会 用于编码音频信号的编码器、音频发送系统和用于确定校正值的方法
EP2980795A1 (fr) 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codage et décodage audio à l'aide d'un processeur de domaine fréquentiel, processeur de domaine temporel et processeur transversal pour l'initialisation du processeur de domaine temporel
EP2980794A1 (fr) 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codeur et décodeur audio utilisant un processeur du domaine fréquentiel et processeur de domaine temporel
US10847170B2 (en) * 2015-06-18 2020-11-24 Qualcomm Incorporated Device and method for generating a high-band signal from non-linearly processed sub-ranges

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0967594A1 (fr) * 1997-10-22 1999-12-29 Matsushita Electric Industrial Co., Ltd. Codeur de sons et decodeur de sons
US20020138256A1 (en) * 1998-08-24 2002-09-26 Jes Thyssen Low complexity random codebook structure

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI98104C (fi) * 1991-05-20 1997-04-10 Nokia Mobile Phones Ltd Menetelmä herätevektorin generoimiseksi ja digitaalinen puhekooderi
JPH10133697A (ja) * 1996-09-05 1998-05-22 Seiko Epson Corp 音声符号化方法およびその装置
JP3235543B2 (ja) * 1997-10-22 2001-12-04 松下電器産業株式会社 音声符号化/復号化装置
JP3174756B2 (ja) * 1998-03-31 2001-06-11 松下電器産業株式会社 音源ベクトル生成装置及び音源ベクトル生成方法
JP3175667B2 (ja) * 1997-10-28 2001-06-11 松下電器産業株式会社 ベクトル量子化法
JP4173940B2 (ja) * 1999-03-05 2008-10-29 松下電器産業株式会社 音声符号化装置及び音声符号化方法
US6449313B1 (en) * 1999-04-28 2002-09-10 Lucent Technologies Inc. Shaped fixed codebook search for celp speech coding
US6236960B1 (en) * 1999-08-06 2001-05-22 Motorola, Inc. Factorial packing method and apparatus for information coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0967594A1 (fr) * 1997-10-22 1999-12-29 Matsushita Electric Industrial Co., Ltd. Codeur de sons et decodeur de sons
US20020138256A1 (en) * 1998-08-24 2002-09-26 Jes Thyssen Low complexity random codebook structure

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
EHARA H ET AL: "A HIGH QUALITY 4-KBIT/S SPEECH CODING ALGORITHM BASED ON MDP-CELP" VTC 2000-SPRING. 2000 IEEE 51ST. VEHICULAR TECHNOLOGY CONFERENCE PROCEEDINGS. TOKYO, JAPAN, MAY 15-18, 2000, IEEE VEHICULAR TECHNOLGY CONFERENCE, NEW YORK, NY : IEEE, US, vol. VOL. 2 OF 3. CONF. 51, 15 mai 2000 (2000-05-15), pages 1572-1576, XP000968135 ISBN: 0-7803-5719-1 *
YASUNAGA K ET AL: "Dispersed-pulse codebook and its application to a 4KB/S speech coder" ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, 2000. ICASSP '00. PROCEEDINGS. 2000 IEEE INTERNATIONAL CONFERENCE ON 5-9 JUNE 2000, PISCATAWAY, NJ, USA,IEEE, vol. 3, 5 juin 2000 (2000-06-05), pages 1503-1506, XP010507636 ISBN: 0-7803-6293-4 *

Also Published As

Publication number Publication date
US8271274B2 (en) 2012-09-18
ATE520121T1 (de) 2011-08-15
KR20080110757A (ko) 2008-12-19
JP5188990B2 (ja) 2013-04-24
WO2007096550A3 (fr) 2007-10-11
US20090222273A1 (en) 2009-09-03
KR101370017B1 (ko) 2014-03-05
CN101401153A (zh) 2009-04-01
CN101401153B (zh) 2011-11-16
JP2009527784A (ja) 2009-07-30
EP1994531A2 (fr) 2008-11-26
EP1994531B1 (fr) 2011-08-10

Similar Documents

Publication Publication Date Title
EP1994531B1 (fr) Codage ou decodage perfectionnes d&#39;un signal audionumerique, en technique celp
EP1692689B1 (fr) Procede de codage multiple optimise
DK2102619T3 (en) METHOD AND DEVICE FOR CODING TRANSITION FRAMEWORK IN SPEECH SIGNALS
EP0801790B1 (fr) Procede de codage de parole a analyse par synthese
WO2009033288A1 (fr) Procédé et dispositif de recherche dans un livre de codes algébriques lors d&#39;un codage vocal ou audio
EP0782128A1 (fr) Procédé d&#39;analyse par prédiction linéaire d&#39;un signal audiofréquence, et procédés de codage et de décodage d&#39;un signal audiofréquence en comportant application
WO1996021221A1 (fr) Procede de codage de parole a prediction lineaire et excitation par codes algebriques
EP0801788B1 (fr) Procede de codage de parole a analyse par synthese
EP1692687B1 (fr) Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques
EP0721180A1 (fr) Procédé de codage de parole à analyse par synthèse
EP1836699B1 (fr) Procédé et dispositif de codage audio optimisé entre deux modèles de prediction à long terme
FR2654542A1 (fr) Procede et dispositif de codage de filtres predicteurs de vocodeurs tres bas debit.
EP2589045B1 (fr) Codage/décodage prédictif linéaire adaptatif
EP1192619B1 (fr) Codage et decodage audio par interpolation
EP1192618B1 (fr) Codage audio avec liftrage adaptif
EP1192621B1 (fr) Codage audio avec composants harmoniques
WO2002029786A1 (fr) Procede et dispositif de codage segmental d&#39;un signal audio
EP1194923B1 (fr) Procedes et dispositifs d&#39;analyse et de synthese audio
WO2013135997A1 (fr) Modification des caractéristiques spectrales d&#39;un filtre de prédiction linéaire d&#39;un signal audionumérique représenté par ses coefficients lsf ou isf
WO2001003121A1 (fr) Codage et decodage audio avec composants harmoniques et phase minimale
WO2001003119A1 (fr) Codage et decodage audio incluant des composantes non harmoniques du signal

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007731605

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2008555849

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 200780006519.9

Country of ref document: CN

Ref document number: 3442/KOLNP/2008

Country of ref document: IN

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 1020087023140

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 12224205

Country of ref document: US