EP2115741B1 - Advanced encoding / decoding of audio digital signals - Google Patents

Advanced encoding / decoding of audio digital signals Download PDF

Info

Publication number
EP2115741B1
EP2115741B1 EP08762010A EP08762010A EP2115741B1 EP 2115741 B1 EP2115741 B1 EP 2115741B1 EP 08762010 A EP08762010 A EP 08762010A EP 08762010 A EP08762010 A EP 08762010A EP 2115741 B1 EP2115741 B1 EP 2115741B1
Authority
EP
European Patent Office
Prior art keywords
subband
signal
band
coding
masking threshold
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
EP08762010A
Other languages
German (de)
French (fr)
Other versions
EP2115741A1 (en
Inventor
Stéphane RAGOT
Cyril Guillaume
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of EP2115741A1 publication Critical patent/EP2115741A1/en
Application granted granted Critical
Publication of EP2115741B1 publication Critical patent/EP2115741B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech 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 spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0204Speech 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 spectral analysis, e.g. transform vocoders or subband vocoders using subband decomposition
    • 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/02Speech 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 spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/002Dynamic bit allocation
    • 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/02Speech 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 spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0212Speech 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 spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
    • 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/02Speech 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 spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding

Definitions

  • the present invention relates to a sound data processing.
  • This processing is adapted in particular to the transmission and / or storage of digital signals such as audio-frequency signals (speech, music, or other).
  • the LTP long-term prediction parameters including the pitch period, represent the fundamental vibration of the speech signal (when it is voiced), while the LPC short-term prediction parameters represent the spectral envelope. of this signal.
  • all of these LPC and LTP parameters thus resulting from a speech coding, can be transmitted in blocks to a peer decoder, via one or more telecommunication networks, to then restore the initial speech signal.
  • the encoder In conventional speech coding, the encoder generates a fixed rate bit stream. This flow constraint simplifies the implementation and use of the encoder and the decoder. Examples of such systems are the ITU-T G.711 64 kbit / s standard coding, the 8 kbit / s ITU-T G.729 coding or the 12.2 kbit / s GSM-EFR coding.
  • variable rate bit stream In some applications (such as mobile telephony or VoIP for "Internet Protocol"), it is best to generate a variable rate bit stream. Flow values are taken in a predefined set. Such a coding technique, called “multi-rate” is therefore more flexible than a fixed rate coding technique.
  • Hierarchical coding having the capacity to provide varied bit rates, is described below by distributing the information relating to an audio signal to be coded in hierarchical subsets, so that this information can be used in order of importance. in terms of audio rendering quality.
  • the criterion taken into account for determining the order is a criterion for optimizing (or rather reducing) the quality of the coded audio signal.
  • Hierarchical coding is particularly suited to transmission over heterogeneous networks or having variable available rates over time, or to transmission to terminals with varying capacities.
  • Hierarchical audio coding (or " scalable ) can be described as follows.
  • the bit stream includes a base layer and one or more enhancement layers.
  • the base layer is generated by a low-bandwidth codec (fixed), called a "codec heart", guaranteeing the minimum coding quality.
  • This layer must be received by the decoder to maintain an acceptable level of quality. Improvement layers are used to improve quality. However, they may not all be received by the decoder.
  • the main advantage of hierarchical coding is that it allows an adaptation of the bit rate simply by " truncation of the bit stream ".
  • the number of layers i.e., the number of possible truncations of the bitstream
  • the number of layers defines the granularity of the coding.
  • scalable scalability and bandwidth encoding techniques with a CELP heart-coder, a telephone band, and one or more broadband enhancement layer (s).
  • An example of such systems is given in the ITU-T G.729.1 8-32 kbit / s fine grain standard.
  • the G.729.1 coding / decoding algorithm is summarized below.
  • the G.729.1 encoder is an extension of the ITU-T G.729 coder. It is a modified G.729 heart-coded core encoder producing a bandwidth ranging from narrowband (50-4000 Hz) to wideband (50-7000 Hz) at a rate of 8 to 32 kbit / s for conversational services. This codec is compatible with existing VoIP devices (most of which are equipped according to G.729). Finally, it should be noted that G.729.1 was approved in May 2006.
  • the G.729.1 coder is schematized on the figure 1 .
  • the broadband input signal s wb sampled at 16 kHz, is first decomposed into two subbands by QMF (for "Quadrature Mirror Filter") filtering.
  • the low band (0-4000 Hz) is obtained by LP low-pass filtering (block 100) and decimation (block 101), and the high band (4000-8000 Hz) by HP high-pass filtering (block 102) and decimation (block 103).
  • the LP and HP filters are of length 64.
  • the low band is pretreated with a high-pass filter eliminating the components below 50 Hz (block 104), to obtain the signal S LB , before CELP coding in narrow band (block 105) at 8 and 12 kbit / s.
  • This high-pass filtering takes into account that the Useful band is defined as covering the range 50-7000 Hz.
  • the narrow-band CELP coding is a cascaded CELP coding comprising as a first stage a modified G.729 coding without pre-processing filter and as a second stage an additional fixed CELP dictionary.
  • the high band is first pretreated (block 106) to compensate for the folding due to the high-pass filter (block 102) combined with the decimation (block 103).
  • the high band is then filtered by a low pass filter (block 107) eliminating the components between 3000 and 4000 Hz from the high band (that is, the components between 7000 and 8000 Hz in the original signal) to obtain the signal S HB .
  • a band extension (block 108) is then performed.
  • the error signal d LB of the low band is calculated (block 109) from the output of the CELP coder (block 105) and a predictive coding by transform (for example of the TDAC type for "Time Domain Aliasing Cancellation" in the G.729.1) is carried out at block 110.
  • a predictive coding by transform for example of the TDAC type for "Time Domain Aliasing Cancellation" in the G.729.1
  • Additional parameters can be transmitted by the block 111 to a homologous decoder, this block 111 performing a so-called “FEC” treatment for "Frame Erasure Concealment", in order to reconstitute possible erased frames.
  • the different bitstreams generated by the coding blocks 105, 108, 110 and 111 are finally multiplexed and structured into a hierarchical bit stream in the multiplexing block 112.
  • the coding is performed by 20 ms sample blocks (or frames). 320 samples per frame.
  • the G.729.1 homologous decoder is illustrated on the figure 2 .
  • the bits describing each frame of 20 ms are demultiplexed in block 200.
  • the bit stream of the 8 and 12 kbit / s layers is used by the CELP decoder (block 201) to generate the narrow-band synthesis (0-4000 Hz).
  • the portion of the bit stream associated with the 14 kbit / s layer is decoded by the tape extension module (block 202).
  • the portion of the bit stream associated with data rates greater than 14 kbit / s is decoded by the TDAC module (block 203).
  • Pre-echo and post-echo processing is performed by blocks 204 and 207 as well as enrichment (block 205) and aftertreatment of the low band (block 206).
  • the broadband output signal ⁇ wb sampled at 16 kHz, is obtained via the QMF synthesis filter bank (blocks 209, 210, 211, 212 and 213) incorporating the inverse folding (block 208).
  • the TDAC type transform coding in the G.729.1 encoder is illustrated on the figure 3 .
  • This spectrum is divided into eighteen sub-bands, a sub-band j being assigned a number of coefficients noted nb_coef ( j ).
  • the subband splitting is specified in Table 1 below.
  • a subband j comprises the coefficients Y ( k ) with sb_bound ( j ) ⁇ k ⁇ sb_bound ( j + 1).
  • Table 1 TDAC Encoding Boundary Limits and Size J sb_bound ( j ) nb_coef ( j ) 0 0 16 1 16 16 2 32 16 3 48 16 4 64 16 5 80 16 6 96 16 7 112 16 8 128 16 9 144 16 10 160 16 11 176 16 12 192 16 13 208 16 14 224 16 15 240 16 16 256 16 17 272 8 18 280 -
  • the spectral envelope is coded at a variable rate in block 305.
  • This quantized value rms _index ( j ) is transmitted to the bit allocation block 306.
  • the number of bits allocated to each sub-band for its quantization is determined in block 306 from the quantized spectral envelope from block 305.
  • the allocation of the bits performed minimizes the squared error while respecting the constraint of a number of integer bits allocated per subband and a maximum number of bits not to be exceeded.
  • the spectral content of the subbands is then encoded by spherical vector quantization (block 307).
  • the different bit streams generated by the blocks 305 and 307 are then multiplexed and structured into a hierarchical bit stream at the multiplexing block 308.
  • the TDAC type transform decoding step in the G.729.1 decoder is illustrated on the figure 4 .
  • the decoded spectral envelope (block 401) makes it possible to find the allocation of the bits (block 402).
  • each of the subbands is found by inverse spherical vector quantization (block 403).
  • the sub-bands not transmitted, due to a lack of "budget" of bits, are extrapolated (block 404) from the MDCT transform of the signal at the output of the band extension block (block 202 of FIG. figure 2 ).
  • IMDCT inverse MDCT transform
  • W LB inverse perceptual weighting
  • the subbands bit allocation (block 306 of FIG. figure 3 or block 402 of the figure 4 ).
  • nbit ( j ) arg min r ⁇ R nb_coef j ⁇ nb_coef j ⁇ ip j - ⁇ Opt - r where ⁇ opt is a parameter optimized by dichotomy.
  • the TDAC coding uses the perceptual weighting W LB ( z ) filter in the low band (block 300), as indicated above.
  • perceptual weighting filtering allows you to format the coding noise.
  • the principle of this filtering is to exploit the fact that it is possible to inject more noise in the frequency zones where the original signal has a high energy.
  • the most common perceptual weighting filters used in narrow-band CELP coding are of the form ⁇ (z / ⁇ 1) / ⁇ (z / ⁇ 2) where 0 ⁇ ⁇ 2 ⁇ ⁇ 1 ⁇ 1 and ⁇ (z) represents a prediction spectrum linear (LPC).
  • LPC prediction spectrum linear
  • the fac factor makes it possible to ensure at the junction of the low and high bands (4 kHz) a gain of the filter at 1 to 4 kHz. It is important to note that in the G.729.1 TDAC coding, the coding is based on an energetic criterion only.
  • the joint coding of these two signals is carried out in the MDCT domain according to the criterion of the quadratic error.
  • the high band is coded according to energy criteria, which is suboptimal (in the "perceptual" sense of the term).
  • multi-band coding may be considered, a perceptual weighting filter being applied to the signal of at least one band in the time domain, and the set of subbands being coded together. by transform coding. If we want to apply the perceptual weighting in the frequency domain, then there is the problem of continuity and homogeneity of the spectra between subbands.
  • the present invention improves the situation.
  • the present invention therefore proposes to calculate a frequency perceptual weighting, using a masking threshold, on only a part of the frequency band (at least on the "second subband” mentioned above) and to ensure spectral continuity with at least another frequency band (at least the aforementioned "first sub-band”) by normalizing the masking threshold on the spectrum covering these two frequency bands.
  • the allocation of the bits for the second sub-band at least is determined furthermore according to a standardized masking curve calculation, applied at least to the second sub-band.
  • the application of the invention makes it possible to transmit the bits to the sub-bands that require the most bits according to a perceptual criterion.
  • perceptual frequency weighting is then applied by masking a part of the audio band, so as to improve the audio quality by optimizing in particular the distribution of bits between subbands according to criteria. perceptual.
  • the transformed signal in the second subband is weighted by a factor proportional to the square root of the normalized masking threshold for the second subband.
  • the normalized masking threshold is not used for the allocation of the bits to the subbands as in the first application mode above, but it can advantageously be used to directly weight the signal of the second sub-band at least in the transformed domain.
  • the present invention is advantageously, but not exclusively, applied to a TDAC-type transform coding in a global encoder according to the G.729.1 standard, the first subband being included in a low frequency band, whereas the second subband is included in a low frequency band, while the second subband is included in a low frequency band.
  • -band is included in a high frequency band that can extend up to 7000 Hz, or even more (typically up to 14 kHz) in band extension.
  • the application of the invention may then consist in providing a perceptual weighting for the high band while ensuring spectral continuity with the low band.
  • the signal from the core coding can be perceptually weighted and the implementation of the invention is advantageous in the sense that the entire spectral band can finally be perceptually weighted.
  • the signal from the core coding may be a signal representative of a difference between an original signal and a synthesis of this original signal (called “difference signal” or "error signal”).
  • difference signal or "error signal”
  • a first decoding application mode homologous to the first application mode of the coding defined above, aims at the allocation of bits to the decoding and a number of bits to be allocated to each subband is determined from a decoding spectral envelope.
  • the bit allocation for the at least second subband is further determined according to a normalized masking curve calculation applied at least to the second subband.
  • a second method of applying decoding within the meaning of the invention consists in weighting the transformed signal in the second subband by the square root of the normalized masking threshold. This embodiment will be described in detail with reference to the figure 10B .
  • the invention provides an improvement to the perceptual weighting performed in the transform coder by exploiting the masking effect known as "simultaneous masking" or "frequency masking".
  • This property corresponds to the modification of the hearing threshold in the presence of a so-called “masking” sound. This phenomenon is observed typically when, for example, one tries to hold a discussion with ambient noise, for example in the street and that the noise of a vehicle comes to "hide” the voice of a speaker.
  • an approximate masking threshold is calculated for each spectrum line. This threshold is the one above which the line concerned is supposed to be audible.
  • the masking threshold is calculated from the convolution of the signal spectrum with a spreading function B ( v ) modeling the masking effect of a sound (sinusoid or filtered white noise) by another sound (sinusoid or noise filtered white).
  • the spreading function may be a function of the level of the line and / or the frequency of the masking line. A detection of "peaks" can also be implemented.
  • An application of the invention described hereinafter makes it possible to improve the TDAC coding of the encoder according to the G.729.1 standard, in particular by applying a perceptual weighting of the high band (4 to 7 kHz) while ensuring the continuity spectral between low and high bands for a satisfactory and joint coding of these two bands.
  • the input signal is sampled at 16 kHz, bandwidth 50 Hz to 7 kHz.
  • the encoder always operates at the maximum rate of 32 kbit / s, while the decoder can receive the core (8 kbit / s), as well as one or more enhancement layers (12 to 32 kbit / s per step). 2 kbit / s), as in G.729.1. Coding and decoding have the same architecture as that presented to figures 1 and 2 .
  • blocks 110 and 203 are modified as described in figures 6 and 7 .
  • the modified TDAC coder is identical to that of the figure 3 , except that the allocation of the bits following the squared error (block 306) is now replaced by a masking curve calculation and a modified bit allocation (blocks 606 and 607), the invention forming part of the calculation of the masking curve (block 606) and its use in the allocation of bits (block 607).
  • the modified TDAC decoder is presented on the figure 7 in this first embodiment.
  • This decoder is identical to that of the figure 4 , except that the allocation of the bits following the squared error (block 402) is replaced by a masking curve calculation and a modified bit allocation (blocks 702 and 703).
  • the invention relates to blocks 702 and 703.
  • An advantageous spreading function is that presented to the figure 5 . It is a triangular function whose first slope is + 27dB / Bark and -10dB / Bark for the second.
  • ⁇ 1 ( j ) and ⁇ 2 ( j ) can be pre-calculated and stored.
  • a first embodiment of the invention is described below for the allocation of bits in a hierarchical coder such as the G.729.1 encoder.
  • bit allocation criterion is based here on the signal-to-mask ratio given by: 1 2 ⁇ log 2 ⁇ ⁇ 2 j M j
  • the masking threshold is normalized by its value on the last subband of the low band.
  • the definition of the term ip ( j ) , j 10, ..., 17, is changed.
  • FIG 8 An illustration of the standardization of the masking threshold is given in figure 8 , showing the connection of the high band on which the masking (4-7 kHz) is applied to the low band (0-4 kHz).
  • the standardization of the masking threshold can be rather carried out from the value of the band.
  • these relations giving the normalization factor normfac or the masking threshold M ( j ) can be generalized to any number of sub-bands (different, in total, from eighteen) in high band (with a different number of eight), as in low band (with a different number of ten).
  • the normalized masking threshold is not used to weight the energy in the definition of the perceptual importance, as in the first embodiment described above, but it serves to directly weight the high band signal before TDAC coding.
  • This second embodiment is illustrated on the Figures 9A (for encoding) and 10A (for decoding).
  • a variant of this second mode, which is the object of the present invention, in particular for the decoding performed, is illustrated on the Figures 9B (for encoding) and 10B (for decoding).
  • the masking threshold is calculated (block 905 of the Figure 9A and block 906b of the Figure 9B ) from the unquantized spectral envelope.
  • the peer decoder is shown in the figure 10A .
  • the block 1002 is then performed as described in Ragot et al. supra.
  • Block 1004 also performs a function similar to that of block 405 of the figure 4 .
  • This second embodiment may be particularly advantageous, particularly in an implementation according to the 3GPP-AMR-WB + standard, which is the preferred context of the document Ragot et al. supra.
  • the coded information remains the envelope of energy (rather than the masking threshold itself as on the Figures 9A and 10A ).
  • the masking threshold is calculated and normalized (block 906b of the Figure 9B ) from the coded spectral envelope (block 905b).
  • the masking threshold is calculated and standardized (block 1011b of the figure 10B ) from the decoded spectral envelope (block 1001b), the decoding of the envelope making it possible to perform a level adjustment (block 1010b of the figure 10B ) from the quantized values rms_q ( j ).
  • a masking threshold is calculated for each sub-band, at least for the sub-bands of the high frequency band, this masking threshold being normalized to ensure spectral continuity between the subbands concerned.
  • the calculation of the masking threshold is particularly advantageous when the signal to be coded is not tonal, in the first mode, as in the second embodiment, described above.
  • the application of the spreading function B (v) results in a masking threshold very close to a tone a little more spread out in frequencies.
  • the allocation criterion minimizing the masked coding noise ratio then gives a bit of bit allocation.
  • the same is true for the direct weighting of the high band signal according to the second embodiment. It is therefore preferred, for a tonal signal, to use a bit allocation according to energy criteria.
  • the invention is applied only if the signal to be encoded is not tonal.
  • the bit relating to the mode of the coding of the spectral envelope indicates a "differential Huffman" mode or a "natural direct binary” mode.
  • This mode bit can be interpreted as a tone detection, since, in general, a tonal signal leads to envelope coding by the "natural direct binary” mode, while most non-tonal signals, having a spectral dynamic more limited, lead to envelope coding by the "Differential Huffman" mode.
  • the module 904 of the Figure 9A can, by calculating the spectral envelope, determine whether the signal is tonal or not and so Block 905 is bypassed if yes.
  • the module 904 can make it possible to determine whether the signal is tonal or not and so bypass the block 907 in the affirmative.
  • the figure 11 generalize the normalization of the masking curve (described in figure 8 ) in the case of super wide band coding.
  • the signals in this embodiment are sampled at a frequency of 32 kHz (instead of 16 kHz) for a useful band of 50 Hz - 14 kHz.
  • the masking curve log 2 [ M ( j )] is then defined at least for the sub-bands ranging from 7 to 14 kHz.
  • the spectrum covering the band 50 Hz - 14 kHz is coded by subbands and the allocation of bits to each subband is made from the spectral envelope as in the G.729.1 encoder.
  • a partial masking threshold can be calculated as previously described.
  • the standardization of the masking threshold as illustrated on the figure 11 , so also generalizes to the case where the high band has more subbands or covers a wider frequency area than in G.729.1.
  • a first T1 transform is applied to the time weighted difference signal.
  • a second transform T2 is applied to the signal on the first high band between 4 and 7 kHz and a third transform T3 is applied to the signal on the second high band between 7 and 14 kHz.
  • the invention is not limited to signals sampled at 16kHz. Its implementation is particularly advantageous also for signals sampled at higher frequencies, such as for the extension of the G.729.1 encoder to signals sampled not at 16 kHz but at 32 kHz, as described above. If the TDAC coding is generalized to such a frequency band (50 Hz - 14 kHz instead of 50 Hz - 7 kHz currently), the advantage provided by the invention will be really major.
  • the invention also aims to improve the TDAC coding, in particular by applying a perceptual weighting of the high-bandwidth (4-14 kHz) while ensuring the spectral continuity between bands, this criterion being important for a joint coding of the band.
  • first low band and the second high and extended band up to 14 kHz.
  • the perceptual weighting in the low band is not necessary for the application of the invention.
  • the present invention also relates to a first computer program, stored in a memory of an encoder of a telecommunication terminal and / or stored on a memory medium intended to cooperate with a reader of said encoder.
  • This first program then comprises instructions for implementing the coding method defined above, when these instructions are executed by an encoder processor.
  • the present invention also relates to an encoder comprising at least one memory storing this first computer program.
  • FIGS. 6 , 9A and 9B may constitute flowcharts of this first computer program, or further illustrate the structure of such an encoder, according to different embodiments and variants.
  • the present invention also relates to a second computer program, stored in a memory of a decoder of a telecommunication terminal and / or stored on a storage medium intended to cooperate with a reader of said decoder.
  • This second program then comprises instructions for implementing the decoding method defined above, when these instructions are executed by a processor of the decoder.
  • the present invention also relates to a decoder comprising at least one memory storing this second computer program.
  • FIG. 7 , 10A , 10B may constitute flowcharts of this second computer program, or further illustrate the structure of such a decoder, according to different embodiments and variants.

Landscapes

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

Abstract

The method involves determining a frequency masking threshold from a masking curve calculation block (606) for applying to a sub band in order to apply a perceptual weighting to the sub band in the transformed field. The masking threshold is normalized for permitting spectral continuity between the two sub bands. The number of bits to be allocated to each sub band is determined from a spectral envelope based on the normalized masking curve calculation applied to the sub-band. Independent claims are also included for the following: (1) a method for decoding a signal (2) a computer program comprising a set of instructions to perform a method for coding a signal (3) a computer program comprising a set of instructions to perform a method for decoding a signal (4) a decoder comprising a memory.

Description

La présente invention concerne un traitement de données sonores.The present invention relates to a sound data processing.

Ce traitement est adapté notamment à la transmission et/ou au stockage de signaux numériques tels que des signaux audiofréquences (parole, musique, ou autres).This processing is adapted in particular to the transmission and / or storage of digital signals such as audio-frequency signals (speech, music, or other).

Différentes techniques existent pour coder sous forme numérique un signal audiofréquences. Les techniques les plus courantes sont :

  • les méthodes de codage de forme d'onde, telles que le codage MIC (pour "Modulation par Impulsions Codées") et MICDA (pour "Modulation par Impulsion et Codage Différentiel Adaptatif"), dits aussi "PCM" et "ADPCM" en anglais,
  • les méthodes de codage paramétrique par analyse par synthèse comme le codage CELP (pour "Code Excited Linear Prediction"), et
  • les méthodes de codage perceptuel en sous-bandes ou par transformée.
Various techniques exist for digitally encoding an audio frequency signal. The most common techniques are:
  • waveform coding methods, such as MIC (for "Coded Pulse Modulation") and ADPCM (for "Pulse Modulation and Adaptive Differential Coding") coding, also known as "PCM" and "ADPCM" in English ,
  • parametric coding methods using synthetic analysis such as Code Excited Linear Prediction (CELP), and
  • perceptual encoding methods in subbands or by transform.

Ces techniques traitent le signal d'entrée de façon séquentielle échantillon par échantillon (MIC ou MICDA) ou par blocs d'échantillons dits "trames" (CELP et codage par transformée).These techniques treat the input signal sequentially sample by sample (MIC or ADPCM) or sample blocks called "frames" (CELP and transform coding).

On rappelle rapidement qu'un signal sonore tel qu'un signal de parole peut être prédit à partir de son passé récent (par exemple de 8 à 12 échantillons à 8 kHz) au moyen de paramètres évalués sur des fenêtres courtes (10 à 20 ms dans cet exemple). Ces paramètres de prédiction à court terme, représentatifs de la fonction de transfert du conduit vocal (par exemple pour prononcer des consonnes), sont obtenus par des méthodes d'analyse LPC (pour "Linear Prediction Coding"). On met en oeuvre aussi une corrélation à plus long terme pour déterminer des périodicités de sons voisés (par exemple les voyelles) dues à la vibration des cordes vocales. Il s'agit donc de déterminer au moins la fréquence fondamentale du signal voisé qui varie typiquement de 60 Hz (voix grave) à 600 Hz (voix aiguë) selon les locuteurs. On détermine alors, par une analyse LTP (pour "Long Term Prediction"), les paramètres LTP d'un prédicteur à long terme, et en particulier l'inverse de la fréquence fondamentale, appelée souvent "période de pitch". On définit alors le nombre d'échantillons dans une période de pitch par le rapport Fe/F0 (ou sa partie entière), où :

  • Fe est la cadence d'échanlillonnage, et
  • F0 est la fréquence fondamentale.
It is quickly recalled that a sound signal such as a speech signal can be predicted from its recent past (for example from 8 to 12 samples at 8 kHz) using parameters evaluated on short windows (10 to 20 ms). in this example). These short-term prediction parameters, representative of the transfer function of the vocal tract (for example to pronounce consonants), are obtained by LPC (for Linear Prediction Coding) analysis methods. A longer-term correlation is also used to determine the periodicities of voiced sounds (eg vowels) due to the vibration of the vocal cords. It is therefore a question of determining at least the fundamental frequency of the voiced signal which varies typically from 60 Hz (deep voice) to 600 Hz (high voice) according to the speakers. Then, by LTP analysis (for "Long Term Prediction"), the LTP parameters of a long-term predictor, and in particular the inverse of the fundamental frequency, often called the pitch period. We then define the number of samples in a pitch period by the ratio F e / F 0 (or its integer part), where:
  • F e is the sampling rate, and
  • F 0 is the fundamental frequency.

On retiendra donc que les paramètres de prédiction à long terme LTP, dont la période de pitch, représentent la vibration fondamentale du signal de parole (lorsqu'il est voisé), tandis que les paramétres de prédiction à court terme LPC représentent l'enveloppe spectrale de ce signal.We therefore note that the LTP long-term prediction parameters, including the pitch period, represent the fundamental vibration of the speech signal (when it is voiced), while the LPC short-term prediction parameters represent the spectral envelope. of this signal.

Dans certains codeurs, l'ensemble de ces paramètres LPC et LTP, résultant donc d'un codage de parole, peuvent être transmis par blocs vers un décodeur homologue, via un ou plusieurs réseaux de télécommunication, pour restituer ensuite le signal de parole initial.In some coders, all of these LPC and LTP parameters, thus resulting from a speech coding, can be transmitted in blocks to a peer decoder, via one or more telecommunication networks, to then restore the initial speech signal.

En codage de parole conventionnel, le codeur génère un flux binaire à débit fixe. Cette contrainte de débit simplifie la mise en oeuvre et l'utilisation du codeur et du décodeur. Des exemples de tels systèmes sont le codage normalisé UIT-T G.711 à 64 kbit/s, le codage nomalisé UIT-T G.729 à 8 kbit/s ou le codage GSM-EFR à 12,2 kbit/s.In conventional speech coding, the encoder generates a fixed rate bit stream. This flow constraint simplifies the implementation and use of the encoder and the decoder. Examples of such systems are the ITU-T G.711 64 kbit / s standard coding, the 8 kbit / s ITU-T G.729 coding or the 12.2 kbit / s GSM-EFR coding.

Dans certaines applications (comme la téléphonie mobile ou la voix sur IP pour « Internet Protocol »), il est préférable de générer un flux binaire à débit variable. Les valeurs du débit sont prises dans un ensemble prédéfini. Une telle technique de codage, dite « multi-débits » s'avère donc plus flexible qu'une technique de codage à débit fixe.In some applications (such as mobile telephony or VoIP for "Internet Protocol"), it is best to generate a variable rate bit stream. Flow values are taken in a predefined set. Such a coding technique, called "multi-rate" is therefore more flexible than a fixed rate coding technique.

On peut distinguer plusieurs techniques de codage multi-débits :

  • le codage multi-modes contrôlé par la source et/ou le canal, mis en oeuvre notamment dans les codeurs 3GPP AMR-NB, 3GPP AMR-WB, ou 3GPP2 VMR-WB,
  • le codage hiérarchique (ou codage "scalable") qui génère un flux binaire dit « hiérarchique » car il comprend un débit coeur et une ou plusieurs couche(s) d'amélioration (le codage normalisé selon G.722 à 48, 56 et 64 kbit/s étant typiquement scalable en débit, tandis que les codecs UIT-T G.729.1 et MPEG-4 CELP sont scalables à la fois en débit et en largeur de bande),
  • le codage à descriptions multiples, décrit notamment dans :
    • " A multiple description speech coder based on AMR-WB for mobile ad hoc networks", H. Dong, A. Gersho, J.D. Gibson, V. Cuperman, ICASSP, p. 277-280, vol.1 (Mai 2004 ).
Several multi-rate coding techniques can be distinguished:
  • multi-mode coding controlled by the source and / or the channel, implemented in particular in 3GPP AMR-NB, 3GPP AMR-WB or 3GPP2 VMR-WB coders,
  • the hierarchical coding (or "scalable " coding) that generates a so-called "hierarchical" bitstream because it comprises a core rate and one or more layer (s) The G.722 standardized coding at 48, 56 and 64 kbit / s is typically bitrate scalable, while the ITU-T G.729.1 and MPEG-4 CELP codecs are scalable in both bitrate and bitrate. bandwidth),
  • multi-description coding, described in particular in:
    • " A multiple description speech coder based on AMR-WB for mobile ad hoc networks ", H. Dong, A. Gersho, JD Gibson, V. Cuperman, ICASSP, pp. 277-280, vol.1 (May 2004 ).

On détaille ci-après le codage hiérarchique, ayant la capacité de fournir des débits variés, en répartissant les informations relatives à un signal audio à coder dans des sous-ensembles hiérarchisés, de telle sorte que ces informations puissent être utilisées par ordre d'importance sur le plan de la qualité de rendu audio. Le critère pris en compte pour déterminer l'ordre est un critère d'optimisation (ou plutôt de moindre dégradation) de la qualité du signal audio codé. Le codage hiérarchique est particulièrement adapté à la transmission sur des réseaux hétérogènes ou présentant des débits disponibles variables au cours du temps, ou encore à la transmission à destination de terminaux présentant des capacités variables.Hierarchical coding, having the capacity to provide varied bit rates, is described below by distributing the information relating to an audio signal to be coded in hierarchical subsets, so that this information can be used in order of importance. in terms of audio rendering quality. The criterion taken into account for determining the order is a criterion for optimizing (or rather reducing) the quality of the coded audio signal. Hierarchical coding is particularly suited to transmission over heterogeneous networks or having variable available rates over time, or to transmission to terminals with varying capacities.

Le concept de base du codage audio hiérarchique (ou "scalable") peut être décrit comme suit.The basic concept of hierarchical audio coding (or " scalable ") can be described as follows.

Le flux binaire comprend une couche de base et une ou plusieurs couches d'amélioration. La couche de base est générée par un codec à bas débit (fixe), qualifié de « codec coeur », garantissant la qualité minimale du codage. Cette couche doit être reçue par le décodeur pour maintenir un niveau de qualité acceptable. Les couches d'amélioration servent à améliorer la qualité. Il peut arriver toutefois qu'elles ne soient pas toutes reçues par le décodeur.The bit stream includes a base layer and one or more enhancement layers. The base layer is generated by a low-bandwidth codec (fixed), called a "codec heart", guaranteeing the minimum coding quality. This layer must be received by the decoder to maintain an acceptable level of quality. Improvement layers are used to improve quality. However, they may not all be received by the decoder.

L'intérêt principal du codage hiérarchique est qu'il permet alors une adaptation du débit par simple « troncature du flux binaire ». Le nombre de couches (c'est-à-dire le nombre de troncatures possibles du flux binaire) définit la granularité du codage. On parle de codage à « granularité forte » si le flux binaire comprend peu de couches (de l'ordre de 2 à 4) et de codage à « granularité fine » permet par exemple un pas de l'ordre de 1 à 2 kbit/s.The main advantage of hierarchical coding is that it allows an adaptation of the bit rate simply by " truncation of the bit stream ". The number of layers (i.e., the number of possible truncations of the bitstream) defines the granularity of the coding. We speaks of coding " strong granularity " if the bitstream comprises few layers (of the order of 2 to 4) and coding " fine granularity " allows for example a step of the order of 1 to 2 kbit / s .

On décrit plus particulièrement ci-après les techniques de codage scalable en débit et en largeur de bande, avec un codeur coeur de type CELP, en bande téléphonique et une ou plusieurs couche(s) d'amélioration en bande élargie. Un exemple de tels systèmes est donné dans la norme UIT-T G.729.1 de 8 à 32 kbit/s à granularité fine. L'algorithme de codage/décodage G.729.1 est résumé ci-après.Specifically described below are scalable scalability and bandwidth encoding techniques, with a CELP heart-coder, a telephone band, and one or more broadband enhancement layer (s). An example of such systems is given in the ITU-T G.729.1 8-32 kbit / s fine grain standard. The G.729.1 coding / decoding algorithm is summarized below.

* Rappels sur le codeur G.729.1 * Reminders on the G.729.1 encoder

Le codeur G.729.1 est une extension du codeur UIT-T G.729. Il s'agit d'un codeur hiérarchique à coeur G.729, modifié, produisant un signal dont la bande va de la bande étroite (50-4000 Hz) à la bande élargie (50-7000 Hz) à un débit de 8 à 32 kbit/s pour les services conversationnels. Ce codec est compatible avec les équipements de voix sur IP existants (la plupart étant équipés selon la norme G.729). Il convient d'indiquer enfin que la norme G.729.1 a été approuvée en mai 2006.The G.729.1 encoder is an extension of the ITU-T G.729 coder. It is a modified G.729 heart-coded core encoder producing a bandwidth ranging from narrowband (50-4000 Hz) to wideband (50-7000 Hz) at a rate of 8 to 32 kbit / s for conversational services. This codec is compatible with existing VoIP devices (most of which are equipped according to G.729). Finally, it should be noted that G.729.1 was approved in May 2006.

Le codeur G.729.1 est schématisé sur la figure 1. Le signal d'entrée en bande élargie swb , échantillonné à 16 kHz, est d'abord décomposé en deux sous-bandes par filtrage QMF (pour "Quadrature Mirror Filter"). La bande basse (0-4000 Hz) est obtenue par le filtrage passe-bas LP (bloc 100) et décimation (bloc 101), et la bande haute (4000-8000 Hz) par filtrage passe-haut HP (bloc 102) et décimation (bloc 103). Les filtres LP et HP sont de longueur 64.The G.729.1 coder is schematized on the figure 1 . The broadband input signal s wb , sampled at 16 kHz, is first decomposed into two subbands by QMF (for "Quadrature Mirror Filter") filtering. The low band (0-4000 Hz) is obtained by LP low-pass filtering (block 100) and decimation (block 101), and the high band (4000-8000 Hz) by HP high-pass filtering (block 102) and decimation (block 103). The LP and HP filters are of length 64.

La bande basse est prétraitée par un filtre passe-haut éliminant les composantes en dessous de 50 Hz (bloc 104), pour obtenir le signal SLB , avant codage CELP en bande étroite (bloc 105) à 8 et 12 kbit/s. Ce filtrage passe-haut tient compte du fait que la bande utile est définie comme couvrant l'intervalle 50-7000 Hz. Le codage CELP en bande étroite est un codage CELP en cascade comprenant comme premier étage un codage G.729 modifié sans filtre de prétraitement et comme deuxième étage un dictionnaire CELP fixe supplémentaire.The low band is pretreated with a high-pass filter eliminating the components below 50 Hz (block 104), to obtain the signal S LB , before CELP coding in narrow band (block 105) at 8 and 12 kbit / s. This high-pass filtering takes into account that the Useful band is defined as covering the range 50-7000 Hz. The narrow-band CELP coding is a cascaded CELP coding comprising as a first stage a modified G.729 coding without pre-processing filter and as a second stage an additional fixed CELP dictionary.

La bande haute est d'abord prétraitée (bloc 106) pour compenser le repliement dû au filtre passe-haut (bloc 102) combiné avec la décimation (bloc 103). La bande haute est ensuite fïltrée par un filtre passe-bas (bloc 107) éliminant les composantes entre 3000 et 4000 Hz de la bande haute (c'est-à-dire les composantes entre 7000 et 8000 Hz dans le signal original) pour obtenir le signal SHB . Une extension de bande (bloc 108) est ensuite réalisée.The high band is first pretreated (block 106) to compensate for the folding due to the high-pass filter (block 102) combined with the decimation (block 103). The high band is then filtered by a low pass filter (block 107) eliminating the components between 3000 and 4000 Hz from the high band (that is, the components between 7000 and 8000 Hz in the original signal) to obtain the signal S HB . A band extension (block 108) is then performed.

Une particularité importante de l'encodeur G.729.1 selon la figure 1 est la suivante. Le signal d'erreur dLB de la bande basse est calculé (bloc 109) à partir de la sortie du codeur CELP (bloc 105) et un codage prédictif par transformée (par exemple de type TDAC pour « Time Domain Aliasing Cancellation » dans la norme G.729.1) est réalisé au bloc 110. En référence à la figure 1, on voit en particulier que l'encodage TDAC est appliqué à la fois au signal d'erreur sur la bande basse et au signal filtré sur la bande haute.An important feature of the G.729.1 encoder according to the figure 1 is the following. The error signal d LB of the low band is calculated (block 109) from the output of the CELP coder (block 105) and a predictive coding by transform (for example of the TDAC type for "Time Domain Aliasing Cancellation" in the G.729.1) is carried out at block 110. With reference to figure 1 it is seen in particular that the TDAC encoding is applied to both the error signal on the low band and the signal filtered on the high band.

Des paramètres supplémentaires peuvent être transmis par le bloc 111 à un décodeur homologue, ce bloc 111 réalisant un traitement dit « FEC » pour « Frame Erasure Concealment », en vue de reconstituer d'éventuelles trames effacées.Additional parameters can be transmitted by the block 111 to a homologous decoder, this block 111 performing a so-called "FEC" treatment for "Frame Erasure Concealment", in order to reconstitute possible erased frames.

Les différents flux binaires générés par les blocs de codage 105, 108, 110 et 111 sont enfin multiplexés et structurés en un train binaire hiérarchique dans le bloc de multiplexage 112. Le codage est réalisé par blocs d'échantillons (ou trames) de 20 ms, soit 320 échantillons par trame.The different bitstreams generated by the coding blocks 105, 108, 110 and 111 are finally multiplexed and structured into a hierarchical bit stream in the multiplexing block 112. The coding is performed by 20 ms sample blocks (or frames). 320 samples per frame.

Le codec G.729.1 a donc une architecture en trois étapes de codage comprenant :

  • le codage CELP en cascade,
  • l'extension de bande paramétrique par le module 108, de type TDBWE (pour « Time Domain Bandwidth Extension »), et
  • un codage prédictif par transformée TDAC, appliqué après une transformation de type MDCT (pour « Modified Discrete Cosine Transform » ou « transformation en cosinus discrète modifiée »).
The G.729.1 codec therefore has a three-step coding architecture comprising:
  • cascading CELP coding,
  • the parametric band extension by the module 108, of the TDBWE (for "Time Domain Bandwidth Extension") type, and
  • a TDAC transform predictive coding, applied after an MDCT (Modified Discrete Cosine Transform) transformation.

*Rappels sur le décodeur G.729.1* Reminders on the G.729.1 decoder

Le décodeur homologue selon la norme G.729.1 est illustré sur la figure 2. Les bits décrivant chaque trame de 20 ms sont démultiplexés dans le bloc 200.The G.729.1 homologous decoder is illustrated on the figure 2 . The bits describing each frame of 20 ms are demultiplexed in block 200.

Le flux binaire des couches à 8 et 12 kbit/s est utilisé par le décodeur CELP (bloc 201) pour générer la synthèse en bande étroite (0-4000 Hz). La portion du flux binaire associée à la couche à 14 kbit/s est décodée par le module d'extension de bande (bloc 202). La portion du flux binaire associée aux débits supérieurs à 14 kbit/s est décodée par le module TDAC (bloc 203). Un traitement des pré-échos et post-échos est réalisé par les blocs 204 et 207 ainsi qu'un enrichissement (bloc 205) et un post-traitement de la bande basse (bloc 206).The bit stream of the 8 and 12 kbit / s layers is used by the CELP decoder (block 201) to generate the narrow-band synthesis (0-4000 Hz). The portion of the bit stream associated with the 14 kbit / s layer is decoded by the tape extension module (block 202). The portion of the bit stream associated with data rates greater than 14 kbit / s is decoded by the TDAC module (block 203). Pre-echo and post-echo processing is performed by blocks 204 and 207 as well as enrichment (block 205) and aftertreatment of the low band (block 206).

Le signal de sortie en bande élargie wb , échantillonné à 16 kHz, est obtenu par l'intermédiaire du banc de filtres QMF de synthèse (blocs 209, 210, 211, 212 et 213) intégrant le repliement inverse (bloc 208).The broadband output signal ŝ wb , sampled at 16 kHz, is obtained via the QMF synthesis filter bank (blocks 209, 210, 211, 212 and 213) incorporating the inverse folding (block 208).

La description de la couche de codage par transformée est détaillée ci-après.The description of the transform coding layer is detailed below.

* Rappels sur le codeur par transformée TDAC dans le codeur G.729.1 * Feedback on the TDAC Transform Encoder in the G.729.1 Encoder

Le codage par transformée de type TDAC dans le codeur G.729.1 est illustré sur la figure 3.The TDAC type transform coding in the G.729.1 encoder is illustrated on the figure 3 .

Le filtre WLB (z) (bloc 300) est un filtre de pondération perceptuelle, avec compensation de gain, appliqué au signal d'erreur en bande basse dLB . Des transformées MDCT sont ensuite calculées (bloc 301 et 302) pour obtenir :

  • le spectre MDCT D LB w
    Figure imgb0001
    du signal de différence, filtré perceptuellement, et
  • le spectre MDCT SHB du signal original de la bande haute.
The filter W LB ( z ) (block 300) is a perceptual weighting filter, with gain compensation, applied to the low band error signal d LB. MDCT transforms are then calculated (blocks 301 and 302) to obtain:
  • the MDCT spectrum D LB w
    Figure imgb0001
    of the difference signal, filtered perceptually, and
  • the MDCT spectrum S HB of the original signal to the high band.

Ces transformées MDCT (blocs 301 et 302) s'appliquent à 20 ms de signal échantillonné à 8 kHz (160 coefficients). Le spectre Y(k) issu du bloc 303 de fusion comprend ainsi 2 x 160, soit 320 coefficients. Il est défini comme suit : Y 0 Y 1 Y 319 = D LB w 0 D LB w 1 D LB w 159 S HB 0 S HB 1 S HB 159

Figure imgb0002
These MDCT transforms (blocks 301 and 302) apply to 20 ms of sampled signal at 8 kHz (160 coefficients). The spectrum Y (k) from the block 303 of fusion thus comprises 2 x 160, or 320 coefficients. It is defined as follows: Y 0 Y 1 Y 319 = D LB w 0 D LB w 1 D LB w 159 S HB 0 S HB 1 S HB 159
Figure imgb0002

Ce spectre est divisé en dix-huit sous-bandes, une sous-bande j étant affectée d'un nombre de coefficients noté nb_coef(j). Le découpage en sous-bandes est spécifié dans le tableau 1 ci-après.This spectrum is divided into eighteen sub-bands, a sub-band j being assigned a number of coefficients noted nb_coef ( j ). The subband splitting is specified in Table 1 below.

Ainsi, une sous-bande j comprend les coefficients Y(k) avec sb_bound(j) ≤ k < sb_bound(j + 1). Tableau 1 : Limites et taille des sous-bandes en codage TDAC J sb_bound(j) nb_coef (j) 0 0 16 1 16 16 2 32 16 3 48 16 4 64 16 5 80 16 6 96 16 7 112 16 8 128 16 9 144 16 10 160 16 11 176 16 12 192 16 13 208 16 14 224 16 15 240 16 16 256 16 17 272 8 18 280 - Thus, a subband j comprises the coefficients Y ( k ) with sb_bound ( j ) ≤ k <sb_bound ( j + 1). Table 1: TDAC Encoding Boundary Limits and Size J sb_bound ( j ) nb_coef ( j ) 0 0 16 1 16 16 2 32 16 3 48 16 4 64 16 5 80 16 6 96 16 7 112 16 8 128 16 9 144 16 10 160 16 11 176 16 12 192 16 13 208 16 14 224 16 15 240 16 16 256 16 17 272 8 18 280 -

L'enveloppe spectrale {log_rms(j)} j=0,...,17 est calculée dans le bloc 304 suivant la formule : log_ rms j = 1 2 log 2 1 nb_coef j k = sb_bound j sb_bound j + 1 - 1 Y k 2 + ε rms , j = 0 , , 17

Figure imgb0003

εrms = 2-24.The spectral envelope {log_ rms (j)} j = 0, ..., 17 is calculated in block 304 using the formula: log_ rms j = 1 2 log 2 1 nb_coef j Σ k = sb_bound j sb_bound j + 1 - 1 Y k 2 + ε rms , j = 0 , ... , 17
Figure imgb0003

where ε rms = 2 -24 .

L'enveloppe spectrale est codée à débit variable dans le bloc 305. Ce bloc 305 produit des valeurs quantifiée, entières, notées rms_index(j) (avec j=0,..., 17), obtenues par simple quantification scalaire : r m s _ i n d e x j = r o u n d 2 l o g _ r m s j

Figure imgb0004

où la notation « round » désigne l'arrondi à l'entier le plus proche, et avec la contrainte : 11 r m s _ i n d e x j + 20
Figure imgb0005

Cette valeur quantifiée rms _index(j) est transmise au bloc d'allocation de bits 306.The spectral envelope is coded at a variable rate in block 305. This block 305 produces quantized, integer values, denoted rms_index ( j ) (with j = 0, ..., 17), obtained by simple scalar quantization: r m s _ i not d e x j = r o u not d 2 l o boy Wut _ r m s j
Figure imgb0004

where the notation "round" designates the rounding to the nearest integer, and with the constraint: - 11 r m s _ i not d e x j + 20
Figure imgb0005

This quantized value rms _index ( j ) is transmitted to the bit allocation block 306.

Le codage de l'enveloppe spectrale, lui-même, est effectué encore par le bloc 305, séparément pour la bande basse (rms_index(j), avec j=0,...,9) et pour la bande haute (rms_index(j), avec j=10,...,17). Dans chaque bande, deux types de codage peuvent être choisis selon un critère donné, et, plus précisément, les valeurs rms_index(j) :

  • peuvent être codées par codage dit « de Huffman différentiel »,
  • ou peuvent être codées par codage binaire naturel.
Un bit (0 ou 1) est transmis au décodeur pour indiquer le mode de codage qui a été choisi.The coding of the spectral envelope, itself, is carried out again by the block 305, separately for the low band ( rms_index ( j ), with j = 0, ..., 9) and for the high band ( rms_index ( j ), with j = 10, ..., 17). In each band, two types of coding can be chosen according to a given criterion, and, more precisely, the values rms_index ( j ):
  • can be coded by "differential Huffman" coding,
  • or can be encoded by natural binary coding.
A bit (0 or 1) is transmitted to the decoder to indicate the encoding mode that has been chosen.

Le nombre de bits alloués à chaque sous-bande pour sa quantification est déterminé au bloc 306 à partir de l'enveloppe spectrale quantifiée issue du bloc 305. L'allocation des bits effectuée minimise l'erreur quadratique tout en respectant la contrainte d'un nombre de bits entier alloué par sous-bande et d'un nombre de bits maximum à ne pas dépasser. Le contenu spectral des sous-bandes est ensuite codé par quantification vectorielle sphérique (bloc 307).The number of bits allocated to each sub-band for its quantization is determined in block 306 from the quantized spectral envelope from block 305. The allocation of the bits performed minimizes the squared error while respecting the constraint of a number of integer bits allocated per subband and a maximum number of bits not to be exceeded. The spectral content of the subbands is then encoded by spherical vector quantization (block 307).

Les différents flux binaires générés par les blocs 305 et 307 sont ensuite multiplexés et structurés en un train binaire hiérarchique au bloc de multiplexage 308.The different bit streams generated by the blocks 305 and 307 are then multiplexed and structured into a hierarchical bit stream at the multiplexing block 308.

* Rappel sur le décodeur par transformée dans le décodeur G.729.1 * Reminder on the decoder by transform in the G.729.1 decoder

L'étape de décodage par transformée de type TDAC dans le décodeur G.729.1 est illustrée sur la figure 4.The TDAC type transform decoding step in the G.729.1 decoder is illustrated on the figure 4 .

De façon symétrique à l'encodeur (figure 3), l'enveloppe spectrale décodée (bloc 401) permet de retrouver l'allocation des bits (bloc 402). Le décodage d'enveloppe (bloc 401) reconstruit les valeurs quantifiées de l'enveloppe spectrale (rms_index(j), pour j=0,...,17), à partir du train binaire généré par le bloc 305 (multiplexé) et en déduit l'enveloppe décodée : r m s _ q j = 2 ½ r m s _ i n d e x j

Figure imgb0006
Symmetrically to the encoder ( figure 3 ), the decoded spectral envelope (block 401) makes it possible to find the allocation of the bits (block 402). The envelope decoding (block 401) reconstructs the quantized values of the spectral envelope ( rms_index ( j ), for j = 0, ..., 17), from the bit stream generated by the block 305 (multiplexed) and deduce the decoded envelope: r m s _ q j = 2 ½ r m s _ i not d e x j
Figure imgb0006

Le contenu spectral de chacune des sous-bandes est retrouvé par quantification vectorielle sphérique inverse (bloc 403). Les sous-bandes non transmises, faute de « budget » de bits suffisant, sont extrapolées (bloc 404) à partir de la transformée MDCT du signal en sortie du bloc d'extension de bande (bloc 202 de la figure 2).The spectral content of each of the subbands is found by inverse spherical vector quantization (block 403). The sub-bands not transmitted, due to a lack of "budget" of bits, are extrapolated (block 404) from the MDCT transform of the signal at the output of the band extension block (block 202 of FIG. figure 2 ).

Après mise à niveau de ce spectre (bloc 405) en fonction de l'enveloppe spectrale et post-traitement (bloc 406), le spectre MDCT est séparé en deux (bloc 407) :

  • avec 160 premiers coefficients correspondant au spectre D ^ LB w
    Figure imgb0007
    du signal de différence décodé en bande basse, filtré perceptuellement,
  • et 160 coefficients suivants correspondant au spectre HB du signal original décodé en bande haute.
After upgrading this spectrum (block 405) as a function of the spectral envelope and after-treatment (block 406), the MDCT spectrum is separated into two (block 407):
  • with 160 first coefficients corresponding to the spectrum D ^ LB w
    Figure imgb0007
    the decoded difference signal in a low band, filtered perceptually,
  • and 160 subsequent coefficients corresponding to the spectrum Ŝ HB of the original decoded high band signal.

Ces deux spectres sont transformés en des signaux temporels par transformée MDCT inverse, notée IMDCT (blocs 408 et 410), et la pondération perceptuelle inverse (filtre noté WLB (z)-1) est appliquée au signal d ^ LB w

Figure imgb0008
(bloc 409) résultant de la transformée inverse.These two spectra are transformed into time signals by inverse MDCT transform, denoted IMDCT (blocks 408 and 410), and the inverse perceptual weighting (filter denoted W LB ( z ) -1 ) is applied to the signal. d ^ LB w
Figure imgb0008
(block 409) resulting from the inverse transform.

On décrit plus particulièrement ci-après l'allocation de bits aux sous-bandes (bloc 306 de la figure 3 ou bloc 402 de la figure 4).The subbands bit allocation (block 306 of FIG. figure 3 or block 402 of the figure 4 ).

Les blocs 306 et 402 réalisent une opération identique à partir des valeurs rms_index(j),j=0,...,17. On se contente donc par la suite de décrire uniquement le fonctionnement du bloc 306.Blocks 306 and 402 perform an identical operation from values rms _ index ( j ), j = 0, ..., 17. It is therefore sufficient later to describe only the operation of the block 306.

Le but de l'allocation binaire est de répartir entre chacune des sous-bandes un certain budget de bits (variable) noté nbits_VQ, avec : n b i t s _ V Q = 351 n b i t s _ r m s ,

Figure imgb0009
nbits_rms est le nombre de bits utilisés par le codage de l'enveloppe spectrale.The purpose of the binary allocation is to distribute between each of the sub-bands a certain bit budget (variable) denoted nbits_VQ, with: not b i t s _ V Q = 351 - not b i t s _ r m s ,
Figure imgb0009
where nbits_rms is the number of bits used by the coding of the spectral envelope.

Le résultat de l'allocation est le nombre entier de bits, noté nbit(j) (avec j=0,...,17), alloués à chacune des sous-bande avec comme contrainte globale : j = 0 17 nbit j nbits_ VQ

Figure imgb0010
The result of the allocation is the integer bits nbit noted (j) (j = 0, ..., 17), allocated to each sub-band with such global constraint: Σ j = 0 17 nbit j nbits_ VQ
Figure imgb0010

Dans la norme G.729.1, les valeurs nbit(j) (j=0,...,17), sont de plus contraintes par le fait que nbit(j) doit être choisi parmi un jeu de valeurs réduit spécifié au tableau 2 ci-après. Tableau 2 : Valeurs possibles de nombre de bits alloués dans les sous-bandes TDAC. Taille de la sous-bande j nb_coef(j) Ensemble des valeurs autorisées nbit(j) (en nombre de bits) 8 R8 = {0, 7, 10, 12, 13, 14, 15, 16} 16 R16 = {0, 9, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32} In the G.729.1 standard, the nbit ( j ) values ( j = 0, ..., 17) are further constrained by the fact that nbit ( j ) must be selected from a reduced set of values specified in Table 2. below. Table 2: Possible values of number of bits allocated in TDAC subbands. Size of the sub-band j nb_coef ( j ) Set of allowed values nbit ( j ) (in number of bits) 8 R 8 = {0, 7, 10, 12, 13, 14, 15, 16} 16 R 16 = {0, 9, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}

L'allocation dans la norme G.729.1 repose sur une "importance perceptuelle" par sous-bande liée à l'énergie de la sous-bande, notée ip(j) (j=0..17), définie comme suit : ip j = 1 2 log 2 rms_q j 2 × nb_coef j + offset

Figure imgb0011

offset = -2.The allocation in G.729.1 is based on a "perceptual importance" per subband related to the energy of the subband, denoted ip ( j ) ( j = 0..17), defined as follows: ip j = 1 2 log 2 rms_q j 2 × nb_coef j + offset
Figure imgb0011

where offset = -2.

Puisque les valeurs rms_q(j) = 2½ rms_index(j), cette formule se simplifie sous la forme : ip j = { 1 2 rms_index j pour j = 0 , , 16 1 2 rms_index j - 1 pour j = 17

Figure imgb0012

A partir de l'importance perceptuelle de chaque sous-bande, l'allocation nbit(j) est calculée comme suit : nbit j = arg min r R nb_coef j nb_coef j × ip j - λ opt - r
Figure imgb0013

où λ opt est un paramètre optimisé par dichotomie.Since the rms values _ q ( j ) = 2 ½ rms _ index ( j ) , this formula is simplified as: ip j = { 1 2 rms_index j for j = 0 , ... , 16 1 2 rms_index j - 1 for j = 17
Figure imgb0012

From the perceptual importance of each sub-band, the allocation nbit ( j ) is calculated as follows: nbit j = arg min r R nb_coef j nb_coef j × ip j - λ Opt - r
Figure imgb0013

where λ opt is a parameter optimized by dichotomy.

On décrit plus en détail maintenant l'incidence de la pondération perceptuelle (filtrage du bloc 300) sur l'allocation de bits (bloc 306) du codeur par transformée TDAC.The incidence of perceptual weighting (filtering of block 300) on the bit allocation (block 306) of the TDAC transform coder is described in more detail below.

Dans la norme G.729.1, le codage TDAC utilise le filtre WLB (z) de pondération perceptuelle dans la bande basse (bloc 300), comme indiqué ci-avant. En substance, le filtrage de pondération perceptuelle permet de mettre en forme le bruit de codage. Le principe de ce filtrage est d'exploiter le fait qu'il est possible d'injecter plus de bruit dans les zones de fréquences où le signal original a une forte énergie.In the G.729.1 standard, the TDAC coding uses the perceptual weighting W LB ( z ) filter in the low band (block 300), as indicated above. In essence, perceptual weighting filtering allows you to format the coding noise. The principle of this filtering is to exploit the fact that it is possible to inject more noise in the frequency zones where the original signal has a high energy.

Les filtres de pondération perceptuelle les plus couramment utilisés en codage CELP en bande étroite sont de la forme Â(z/γ1)/Â(z/γ2) où 0 ≤ γ2 ≤ γ1 < 1 et Â(z) représente un spectre de prédiction linéaire (LPC). L'analyse par synthèse en codage CELP revient ainsi à minimiser l'erreur quadratique dans un domaine de signal pondéré perceptuellement par ce type de filtre.The most common perceptual weighting filters used in narrow-band CELP coding are of the form  (z / γ1) /  (z / γ2) where 0 ≤ γ2 ≤ γ1 <1 and  (z) represents a prediction spectrum linear (LPC). CELP coding synthesis analysis Thus, it amounts to minimizing the quadratic error in a perceptually weighted signal domain by this type of filter.

Cependant, pour assurer la continuité spectrale lorsque les spectres D LB w

Figure imgb0014
et SHB sont accolés (bloc 303 de la figure 3), le filtre WLB (z) est défini sous la forme : W LB z = fac A ^ z / γ 1 A ^ z / γ 2
Figure imgb0015

avec γ1 = 0,96, γ2 = 0,6 et fac = i = 0 p - γ 2 i a ^ i i = 0 p - γ 1 i a ^ i
Figure imgb0016
However, to ensure spectral continuity when the spectra D LB w
Figure imgb0014
and S HB are contiguous (block 303 of the figure 3 ), the filter W LB ( z ) is defined as: W LB z = uni AT ^ z / γ 1 AT ^ z / γ 2
Figure imgb0015

with γ 1 = 0.96, γ 2 = 0.6 and uni = Σ i = 0 p - γ 2 i at ^ i Σ i = 0 p - γ 1 i at ^ i
Figure imgb0016

Le facteur fac permet d'assurer à la jonction des bandes basse et haute (4 kHz) un gain du filtre à 1 à 4 kHz. Il est important de noter que, dans le codage TDAC selon la norme G.729.1, le codage ne repose que sur un critère énergétique.The fac factor makes it possible to ensure at the junction of the low and high bands (4 kHz) a gain of the filter at 1 to 4 kHz. It is important to note that in the G.729.1 TDAC coding, the coding is based on an energetic criterion only.

* Inconvénients de l'art antérieur * Disadvantages of the prior art

Dans la norme G.729.1, l'encodeur TDAC traite conjointement :

  • le signal différence, entre la bande basse originale et la synthèse CELP, filtré perceptuellement par un filtre du type Â(z/γ1)/Â(z/γ2) compensé en gain (assurant une continuité spectrale), et
  • la bande haute qui contient le signal bande haute original.
Le signal bande basse correspond aux fréquences 50 Hz-4 kHz, tandis que le signal bande haute correspond aux fréquences 4-7 kHz.In the G.729.1 standard, the TDAC encoder deals jointly with:
  • the difference signal, between the original low band and the CELP synthesis, perceptually filtered by a gain-compensated λ (z / γ1) / λ (z / γ2) filter (ensuring spectral continuity), and
  • the high band which contains the original high band signal.
The low band signal corresponds to the frequencies 50 Hz-4 kHz, while the high band signal corresponds to the frequencies 4-7 kHz.

Le codage conjoint de ces deux signaux est réalisé dans le domaine MDCT suivant le critère de l'erreur quadratique. Ainsi, la bande haute est codée suivant des critères énergétiques, ce qui est sous-optimal (au sens « perceptuel » du terme).The joint coding of these two signals is carried out in the MDCT domain according to the criterion of the quadratic error. Thus, the high band is coded according to energy criteria, which is suboptimal (in the "perceptual" sense of the term).

De façon plus générale encore, on pourra considérer le cas d'un codage dans plusieurs bandes, un filtre de pondération perceptuelle étant appliqué au signal d'au moins une bande dans le domaine temporel, et l'ensemble des sous-bandes étant codées conjointement par codage par transformée. Si l'on veut appliquer la pondération perceptuelle dans le domaine des fréquences, il se pose alors le problème de la continuité et de l'homogénéité des spectres entre sous-bandes.More generally, the case of multi-band coding may be considered, a perceptual weighting filter being applied to the signal of at least one band in the time domain, and the set of subbands being coded together. by transform coding. If we want to apply the perceptual weighting in the frequency domain, then there is the problem of continuity and homogeneity of the spectra between subbands.

La présente invention vient améliorer la situation.The present invention improves the situation.

Elle propose à cet effet un procédé de codage d'un signal en plusieurs sous-bandes, dans lequel au moins une première et une deuxième sous-bande, adjacentes, sont codées par transformée.It proposes for this purpose a method of coding a signal in several sub-bands, in which at least one first and one second sub-band, adjacent, are encoded by transform.

Au sens de l'invention, pour appliquer une pondération perceptuelle, dans le domaine transformée, au moins à la deuxième sous-bande, le procédé comporte :

  • une détermination d'au moins un seuil de masquage fréquentiel à appliquer sur la deuxième sous-bande, et
  • une normalisation dudit seuil de masquage pour assurer une continuité spectrale entre lesdites première et deuxième sous-bandes.
Within the meaning of the invention, in order to apply a perceptual weighting, in the transformed domain, to at least the second subband, the method comprises:
  • a determination of at least one frequency masking threshold to be applied on the second subband, and
  • normalizing said masking threshold to provide spectral continuity between said first and second subbands.

La présente invention propose donc de calculer une pondération perceptuelle fréquentielle, utilisant un seuil de masquage, sur une partie seulement de la bande de fréquences (au moins sur la « deuxième sous-bande » précitée) et d'assurer la continuité spectrale avec au moins une autre bande de fréquences (au moins la « première sous-bande » précitée) en normalisant le seuil de masquage sur le spectre couvrant ces deux bandes de fréquences.The present invention therefore proposes to calculate a frequency perceptual weighting, using a masking threshold, on only a part of the frequency band (at least on the "second subband" mentioned above) and to ensure spectral continuity with at least another frequency band (at least the aforementioned "first sub-band") by normalizing the masking threshold on the spectrum covering these two frequency bands.

Dans un premier mode d'application de l'invention, dans lequel un nombre de bits à allouer à chaque sous-bande est déterminé à partir d'une enveloppe spectrale, l'allocation des bits pour la deuxième sous-bande au moins est déterminée en outre en fonction d'un calcul de courbe de masquage normalisé, appliqué au moins à la deuxième sous-bande.In a first embodiment of the invention, in which a number of bits to be allocated to each sub-band is determined from a spectral envelope, the allocation of the bits for the second sub-band at least is determined furthermore according to a standardized masking curve calculation, applied at least to the second sub-band.

Ainsi, au lieu de prévoir, dans ce premier mode de réalisation, une allocation de bits basée sur des critères uniquement énergétiques, l'application de l'invention permet d'aflecter les bits aux sous-bandes qui nécessitent le plus de bits selon un critère perceptuel. On applique alors, au sens de ce premier mode de réalisation, une pondération perceptuelle fréquentielle par masquage d'une partie de la bande audio, de façon à améliorer la qualité audio en optimisant en particulier la répartition des bits entre sous-bandes suivant des critères perceptuels.Thus, instead of providing, in this first embodiment, a bit allocation based on purely energetic criteria, the application of the invention makes it possible to transmit the bits to the sub-bands that require the most bits according to a perceptual criterion. For the purposes of this first embodiment, perceptual frequency weighting is then applied by masking a part of the audio band, so as to improve the audio quality by optimizing in particular the distribution of bits between subbands according to criteria. perceptual.

Dans un deuxième mode d'application de l'invention, le signal transformé, dans la deuxième sous-bande, est pondéré par un facteur proportionnel à la racine carrée du seuil de masquage normalisé pour la deuxième sous-bande.In a second embodiment of the invention, the transformed signal in the second subband is weighted by a factor proportional to the square root of the normalized masking threshold for the second subband.

Dans ce second mode, le seuil de masquage normalisé n'est pas utilisé pour l'allocation des bits aux sous-bandes comme dans le premier mode d'application ci-avant, mais il peut servir avantageusement à pondérer directement le signal de la deuxième sous-bande au moins, dans le domaine transformé.In this second mode, the normalized masking threshold is not used for the allocation of the bits to the subbands as in the first application mode above, but it can advantageously be used to directly weight the signal of the second sub-band at least in the transformed domain.

La présente invention s'applique avantageusement, mais non limitativement, à un codage par transformée de type TDAC dans un codeur global selon la norme G.729.1, la première sous-bande étant incluse dans une bande de basses fréquences, tandis que la deuxième sous-bande est incluse dans une bande de hautes fréquences qui peut s'étendre jusqu'à 7000 Hz, voire plus (typiquement jusqu'à 14 kHz) en extension de bande. L'application de l'invention peut consister alors à prévoir une pondération perceptuelle pour la bande haute tout en assurant la continuité spectrale avec la bande basse.The present invention is advantageously, but not exclusively, applied to a TDAC-type transform coding in a global encoder according to the G.729.1 standard, the first subband being included in a low frequency band, whereas the second subband is included in a low frequency band, while the second subband is included in a low frequency band. -band is included in a high frequency band that can extend up to 7000 Hz, or even more (typically up to 14 kHz) in band extension. The application of the invention may then consist in providing a perceptual weighting for the high band while ensuring spectral continuity with the low band.

On rappelle que dans ce type de codeur global à structure hiérarchique, le codage par transformée intervient dans une couche supérieure d'un codeur hiérarchique global. Avantageusement :

  • la première sous-bande comporte alors un signal issu d'un codage de coeur du codeur hiérarchique,
  • et la deuxième sous-bande comporte un signal original.
It will be recalled that in this type of global coder with a hierarchical structure, transform coding intervenes in a higher layer of a global hierarchical coder. Advantageously:
  • the first subband then comprises a signal resulting from a core coding of the hierarchical coder,
  • and the second subband has an original signal.

Comme dans le codeur G.729.1, le signal issu du codage de coeur peut être pondéré perceptuellement et la mise en oeuvre de l'invention est avantageuse dans le sens où toute la bande spectrale peut finalement être pondérée perceptuellement.As in the G.729.1 coder, the signal from the core coding can be perceptually weighted and the implementation of the invention is advantageous in the sense that the entire spectral band can finally be perceptually weighted.

Comme dans le codeur G.729.1, le signal issu du codage de coeur peut être un signal représentatif d'une différence entre un signal original et une synthèse de ce signal original (appelé « signal différence » ou encore « signal d'erreur »). On verra en effet, en référence à la figure 12 décrite plus loin, que le fait de disposer du signal original n'est pas forcément une nécessité pour la mise en oeuvre de l'invention, de façon avantageuse.As in the G.729.1 coder, the signal from the core coding may be a signal representative of a difference between an original signal and a synthesis of this original signal (called "difference signal" or "error signal"). . We will see indeed, with reference to the figure 12 described below, that the fact of having the original signal is not necessarily a necessity for the implementation of the invention, advantageously.

La présente invention vise aussi un procédé de décodage, homologue du procédé de codage défini ci-avant, dans lequel au moins une première et une deuxième sous-bande, adjacentes, sont décodées par transformée. Pour appliquer une pondération perceptuelle, dans le domaine transformé, au moins à la deuxième sous-bande, le procédé de décodage comporte alors :

  • une détermination d'au moins un seuil de masquage fréquentiel à appliquer sur la deuxième sous-bande, à partir d'une enveloppe spectrale décodée, et
  • une normalisation dudit seuil de masquage pour assurer une continuité spectrale entre lesdites première et deuxième sous-bandes.
The present invention also relates to a decoding method, homologous to the coding method defined above, in which at least one first and one second subband, adjacent, are decoded by transform. To apply a perceptual weighting, in the transformed domain, to at least the second subband, the decoding method then comprises:
  • a determination of at least one frequency masking threshold to be applied on the second subband, from a decoded spectral envelope, and
  • normalizing said masking threshold to provide spectral continuity between said first and second subbands.

Un premier mode d'application du décodage, homologue du premier mode d'application du codage défini ci-avant, vise l'allocation de bits au décodage et un nombre de bits à allouer à chaque sous-bande est déterminé à partir d'un décodage d'enveloppe spectrale. Selon une mise en oeuvre de l'invention, l'allocation des bits pour la deuxième sous-bande au moins est déterminée en outre en fonction d'un calcul de courbe de masquage normalisé, appliqué au moins à la deuxième sous-bande.A first decoding application mode, homologous to the first application mode of the coding defined above, aims at the allocation of bits to the decoding and a number of bits to be allocated to each subband is determined from a decoding spectral envelope. According to one implementation of the invention, the bit allocation for the at least second subband is further determined according to a normalized masking curve calculation applied at least to the second subband.

Un deuxième mode d'application du décodage au sens de l'invention consiste à pondérer le signal transformé dans la deuxième sous-bande, par la racine carrée du seuil de masquage normalisé. Ce mode de réalisation sera décrit en détail en référence à la figure 10B.A second method of applying decoding within the meaning of the invention consists in weighting the transformed signal in the second subband by the square root of the normalized masking threshold. This embodiment will be described in detail with reference to the figure 10B .

D'ailleurs, d'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée, donnée à titre d'exemple ci-après, et des dessins annexés sur lesquels, outre les figures 1 à 4 présentées précédemment :

  • la figure 5 illustre une fonction d'étalement avantageuse pour le masquage au sens de l'invention,
  • la figure 6 illustre, à titre de comparaison avec la figure 3, la structure d'un encodage TDAC utilisant un calcul de courbe de masquage 606 pour l'allocation de bits selon un premier mode d'application de l'invention,
  • la figure 7 illustre, à titre de comparaison avec la figure 4, la structure d'un décodage TDAC homologue de la figure 6, utilisant un calcul de courbe de masquage 702 selon le premier mode d'application de l'invention,
  • la figure 8 illustre une normalisation de la courbe de masquage, dans une première forme de réalisation où la fréquence d'échantillonnage est de 16 kHz et le masquage de l'invention appliqué pour la bande haute 4-7 kHz,
  • la figure 9A illustre la structure d'un encodage TDAC modifiée, avec pondération directement du signal dans les hautes fréquences 4-7 kHz dans un deuxième mode d'application de l'invention, et codage du seuil de masquage normalisé,
  • la figure 9B illustre la structure d'un encodage TDAC dans une variante du deuxième mode d'application illustré sur la figure 9A, avec ici un codage de l'enveloppe spectrale,
  • la figure 10A illustre la structure d'un décodage TDAC homologue de la figure 9A, selon le deuxième mode d'application de l'invention,
  • la figure 10B illustre la structure d'un décodage TDAC homologue de la figure 9B, selon le deuxième mode d'application de l'invention, avec ici un calcul du seuil de masquage au décodage,
  • la figure 11 illustre la normalisation de la courbe de masquage en bande super-élargie dans une deuxième forme de réalisation de l'invention où la fréquence d'échantillonnage est de 32 kHz et le masquage de l'invention appliqué pour la bande haute élargie de 4 à 14 kHz, et
  • la figure 12 illustre la puissance spectrale, en sortie de codage CELP, du signal de différence DLB (en trait plein) et du signal original SLB (en traits pointillés).
Moreover, other advantages and characteristics of the invention will appear on examining the detailed description, given by way of example below, and the appended drawings in which, in addition to the Figures 1 to 4 previously presented:
  • the figure 5 illustrates an advantageous spreading function for masking within the meaning of the invention,
  • the figure 6 illustrates, for comparison with the figure 3 , the structure of a TDAC encoding using a masking curve calculation 606 for the allocation of bits according to a first embodiment of the invention,
  • the figure 7 illustrates, for comparison with the figure 4 , the structure of a TDAC decode homologous to the figure 6 using a masking curve calculation 702 according to the first embodiment of the invention,
  • the figure 8 illustrates a normalization of the masking curve, in a first embodiment where the sampling frequency is 16 kHz and the masking of the invention applied for the high band 4-7 kHz,
  • the Figure 9A illustrates the structure of a modified TDAC encoding, with directly weighting of the signal in the high frequencies 4-7 kHz in a second embodiment of the invention, and coding of the standardized masking threshold,
  • the Figure 9B illustrates the structure of a TDAC encoding in a variant of the second mode of application illustrated on the Figure 9A , here with a coding of the spectral envelope,
  • the figure 10A illustrates the structure of a TDAC decoding peer of the Figure 9A according to the second embodiment of the invention,
  • the figure 10B illustrates the structure of a TDAC decoding peer of the Figure 9B according to the second embodiment of the invention, with here a calculation of the decoding masking threshold,
  • the figure 11 illustrates the normalization of the super-wideband masking curve in a second embodiment of the invention where the sampling frequency is 32 kHz and the masking of the invention applied for the broadband widened from 4 to 14 kHz, and
  • the figure 12 illustrates the spectral power, at the output of the CELP coding, of the difference signal D LB (in solid lines) and of the original signal S LB (in dashed lines).

On décrit ci-après une application de l'invention qui s'avère avantageuse mais non limitative dans un encodeur/décodeur selon la norme G.729.1 décrit précédemment en référence aux figures 1 à 4, en incorporant, selon l'invention, une information de masquage.An application of the invention which is advantageous but not limiting in an encoder / decoder according to the G.729.1 standard described above with reference to FIGS. Figures 1 to 4 , incorporating, according to the invention, a masking information.

Auparavant toutefois, les notions de compensation de gain en filtrage perceptuel et de masquage fréquentiel sont présentées ci-après, pour mieux appréhender le principe de l'invention.Previously, however, the notions of gain compensation perceptual filtering and frequency masking are presented below, to better understand the principle of the invention.

L'invention apporte un perfectionnement à la pondération perceptuelle réalisée dans le codeur par transformée en exploitant l'effet de masquage connu sous le nom de « masquage simultané » ou « masquage fréquentiel ».The invention provides an improvement to the perceptual weighting performed in the transform coder by exploiting the masking effect known as "simultaneous masking" or "frequency masking".

Cette propriété correspond à la modification du seuil d'audition en présence d'un son dit « masquant ». Ce phénomène est observé typiquement lorsque, par exemple, on essaie de tenir une discussion avec du bruit ambiant, par exemple en pleine rue et que le bruit d'un véhicule vient « masquer » la voix d'un locuteur.This property corresponds to the modification of the hearing threshold in the presence of a so-called "masking" sound. This phenomenon is observed typically when, for example, one tries to hold a discussion with ambient noise, for example in the street and that the noise of a vehicle comes to "hide" the voice of a speaker.

Un exemple d'utilisation du masquage dans un codec audio peut être trouvé dans le document Mahieux et al. :

  • " High-quality audio transform coding at 64 kbps", Y. Mahieux, J.P. Petit, IEEE Transactions on Communications, Volume 42, no. 11, Pages: 3010 - 3019 (Novembre 1994 ).
An example of using masking in an audio codec can be found in Mahieux et al. :
  • " High-quality audio transform coding at 64 kbps ", Mahieux Y., JP Petit, IEEE Transactions on Communications, Volume 42, No. 11, Pages: 3010-3019 (November 1994) ).

Dans ce document, un seuil de masquage approximatif est calculé pour chaque raie du spectre. Ce seuil est celui au-dessus duquel la raie concernée est supposée audible. Le seuil de masquage est calculé à partir de la convolution du spectre du signal avec une fonction d'étalement B(v) modélisant l'effet de masquage d'un son (sinusoïde ou bruit blanc filtré) par un autre son (sinusoïde ou bruit blanc filtré).In this document, an approximate masking threshold is calculated for each spectrum line. This threshold is the one above which the line concerned is supposed to be audible. The masking threshold is calculated from the convolution of the signal spectrum with a spreading function B ( v ) modeling the masking effect of a sound (sinusoid or filtered white noise) by another sound (sinusoid or noise filtered white).

Un exemple d'une telle fonction d'étalement est présenté sur la figure 5. Cette fonction est définie dans un domaine fréquentiel dont l'unité est le Bark. L'échelle de fréquence est représentative de la sensibilité fréquentielle de l'oreille. Une approximation usuelle de la conversion d'une fréquence f en Hertz, en « fréquences » notées ν (en Barks), est donnée par la relation suivante : υ = 13 arctan 0.00076 f + 3.5 arctan f 7500 2

Figure imgb0017

Dans ce document, le calcul du seuil de masquage est effectué par sous-bande plutôt que par raie. Le seuil ainsi obtenu est utilisé pour pondérer perceptuellement chacune des sous-bandes. L'allocation des bits est ainsi effectuée, non pas en minimisant l'erreur quadratique mais en minimisant le rapport « bruit de codage à masque », le but étant de mettre en forme le bruit de codage de tel sorte qu'il soit inaudible (en dessous du seuil de masquage).An example of such a spreading function is presented on the figure 5 . This function is defined in a frequency domain whose unit is the Bark. The frequency scale is representative of the frequency sensitivity of the ear. A usual approximation of the conversion of a frequency f in Hertz, in "frequencies" noted ν (in Barks), is given by the following relation: υ = 13 arctan 0.00076 f + 3.5 arctan f 7500 2
Figure imgb0017

In this document, the calculation of the masking threshold is performed by subband rather than by line. The threshold thus obtained is used to perceptually weight each of the subbands. The allocation of the bits is thus performed, not by minimizing the square error but by minimizing the "mask-to-mask noise" ratio, the aim being to shape the coding noise so that it is inaudible ( below the masking threshold).

Bien entendu, d'autres modèles de masquage ont été encore proposés. Typiquement, la fonction d'étalement peut être fonction du niveau de la raie et/ou de la fréquence de la raie masquante. Une détection des « pics » peut aussi être mise en oeuvre.Of course, other masking models have been proposed. Typically, the spreading function may be a function of the level of the line and / or the frequency of the masking line. A detection of "peaks" can also be implemented.

Il convient d'indiquer que pour réduire la sous-optimalité du codage selon la norme G.729.1, on pourrait penser à intégrer une technique de masquage fréquentiel dans l'allocation des bits, de façon similaire à celle présentée dans le document Mahieux et al. Néanmoins, la nature hétérogène des deux signaux bande basse et bande haute ne permet pas d'appliquer directement la technique de masquage pleine bande de ce document. D'une part, le seuil de masquage pleine bande ne peut pas vraiment être calculé dans le domaine MDCT, car le signal bande basse n'est pas homogène à un signal « original ». D'autre part, appliquer un seuil de masquage sur toute la bande de fréquences reviendrait à pondérer une nouvelle fois le signal en bande basse qui est déjà pondérée par le filtre de type Â(z/γ1)/Â(z/γ2), la pondération supplémentaire par un seuil n'ayant alors aucun sens pour ce signal de bande basse.It should be noted that to reduce the under-optimality of coding according to G.729.1, one might consider integrating a frequency masking bit allocation, similar to that presented in Mahieux et al. Nevertheless, the heterogeneous nature of the two low-band and high-band signals does not make it possible to directly apply the full-band masking technique of this document. On the one hand, the full-band masking threshold can not really be calculated in the MDCT domain because the low band signal is not homogeneous with an "original" signal. On the other hand, applying a masking threshold over the entire frequency band would again weight the low band signal that is already weighted by the λ (z / γ1) / λ (z / γ2) type filter, the additional weighting by a threshold then having no meaning for this low band signal.

Une application de l'invention décrite ci-après permet d'améliorer le codage TDAC de l'encodeur selon la norme G.729.1, en particulier en appliquant une pondération perceptuelle de la bande haute (4 à 7 kHz) tout en assurant la continuité spectrale entre bandes basse et haute pour un codage satisfaisant et conjoint de ces deux bandes.An application of the invention described hereinafter makes it possible to improve the TDAC coding of the encoder according to the G.729.1 standard, in particular by applying a perceptual weighting of the high band (4 to 7 kHz) while ensuring the continuity spectral between low and high bands for a satisfactory and joint coding of these two bands.

Dans un encodeur et/ou un décodeur selon la norme G.729.1, perfectionnés par la mise en oeuvre de l'invention, seuls les codeur et décodeur TDAC sont modifiés, dans l'exemple décrit ci-après.In an encoder and / or a decoder according to the G.729.1 standard, improved by the implementation of the invention, only the TDAC coder and decoder are modified, in the example described below.

Le signal d'entrée est échantillonné à 16 kHz, de bande utile 50 Hz à 7 kHz. En pratique le codeur fonctionne toujours au débit maximal de 32 kbit/s, tandis que le décodeur peut recevoir le coeur (8 kbit/s), ainsi qu'une ou plusieurs couches d'amélioration (12 à 32 kbit/s par pas de 2 kbit/s), comme dans la norme G.729.1. Les codage et décodage ont la même architecture que celle présentée aux figures 1 et 2. Ici, seuls les blocs 110 et 203 sont modifiés tels que décrits aux figures 6 et 7.The input signal is sampled at 16 kHz, bandwidth 50 Hz to 7 kHz. In practice, the encoder always operates at the maximum rate of 32 kbit / s, while the decoder can receive the core (8 kbit / s), as well as one or more enhancement layers (12 to 32 kbit / s per step). 2 kbit / s), as in G.729.1. Coding and decoding have the same architecture as that presented to figures 1 and 2 . Here, only blocks 110 and 203 are modified as described in figures 6 and 7 .

Dans un premier mode de réalisation décrit ci-après en référence à la figure 6, le codeur TDAC modifié est identique à celui de la figure 3, mis à part que l'allocation des bits suivant l'erreur quadratique (bloc 306) est désormais remplacée par un calcul de courbe de masquage et une allocation des bits modifiée (blocs 606 et 607), l'invention s'inscrivant dans le cadre du calcul de la courbe de masquage (bloc 606) et de son utilisation dans l'allocation des bits (bloc 607).In a first embodiment described below with reference to the figure 6 , the modified TDAC coder is identical to that of the figure 3 , except that the allocation of the bits following the squared error (block 306) is now replaced by a masking curve calculation and a modified bit allocation (blocks 606 and 607), the invention forming part of the calculation of the masking curve (block 606) and its use in the allocation of bits (block 607).

De même, le décodeur TDAC modifié est présenté sur la figure 7 dans ce premier mode de réalisation. Ce décodeur est identique à celui de la figure 4, mis à part que l'allocation des bits suivant l'erreur quadratique (bloc 402) est remplacée par un calcul de courbe de masquage et une allocation des bits modifiée (blocs 702 et 703). De façon symétrique au codeur TDAC modifié, l'invention se rapporte aux blocs 702 et 703.Similarly, the modified TDAC decoder is presented on the figure 7 in this first embodiment. This decoder is identical to that of the figure 4 , except that the allocation of the bits following the squared error (block 402) is replaced by a masking curve calculation and a modified bit allocation (blocks 702 and 703). Symmetrically with the modified TDAC encoder, the invention relates to blocks 702 and 703.

Les blocs 606 et 702 réalisent une opération identique à partir des valeurs rms_index(j), j=0,...,17. De même, les blocs 607 et 703 réalisent une opération identique à partir des valeurs log_mask(j) et rms_index(j), j=0,...,17.Blocks 606 and 702 perform an identical operation from the values rms_index ( j ) , j = 0, ..., 17. Similarly, the blocks 607 and 703 perform an identical operation from the values log_mask ( j ) and rms_index ( j ), j = 0, ..., 17.

Dans ce qui suit, on ne décrit donc que le fonctionnement des blocs 606 et 607.In what follows, only the operation of blocks 606 and 607 is described.

Le bloc 606 calcule une courbe de masquage à partir de l'enveloppe spectrale quantifiée rms_ q(j) où j=0,...,17 est le numéro de la sous-bande.Block 606 computes a masking curve from the quantized spectral envelope rms_ q ( j ) where j = 0, ..., 17 is the number of the subband.

Le seuil de masquage M(j) de la sous-bande j est défini par la convolution de l'enveloppe d'énergie σ̂2 (j) = rms_q(j)2×nb_coef(j), par une fonction d'étalement B(v) . Dans l'exemple de réalisation donné ici du codage TDAC dans l'encodeur G.729.1, ce masquage n'est effectué que sur la bande haute du signal, avec : M j = k = 10 17 σ ^ 2 k × B ν j - ν k

Figure imgb0018

  • vk est la fréquence centrale de la sous-bande k en Bark,
  • le signe « × » désignant « multiplié par », avec la fonction d'étalement décrite ci-après.
The masking threshold M ( j ) of the subband j is defined by the convolution of the energy envelope σ 2 ( j ) = rms_q ( j ) 2 × nb_coef ( j ) , by a spreading function B (v). In the exemplary embodiment given here of the TDAC coding in the G.729.1 encoder, this masking is performed only on the high band of the signal, with: M j = Σ k = 10 17 σ ^ 2 k × B ν j - ν k
Figure imgb0018
  • where v k is the central frequency of the sub-band k in Bark,
  • the sign "×" denoting "multiplied by", with the spreading function described below.

En termes plus génériques, le seuil de masquage M(j), pour une sous-bande j, est donc défini par une convolution entre :

  • une expression de l'enveloppe spectrale, et
  • une fonction d'étalement faisant intervenir une fréquence centrale de la sous-bande j.
In more generic terms, the mask threshold M (j) for a subband j is therefore defined by a convolution between:
  • an expression of the spectral envelope, and
  • a spreading function involving a central frequency of the sub-band j .

Une fonction d'étalement avantageuse est celle présentée à la figure 5. Il s'agit d'une fonction triangulaire dont la première pente est de +27dB/Bark et -10dB/Bark pour la deuxième. Cette représentation de la fonction d'étalement permet le calcul itératif de la courbe de masquage suivant : M j = { M - 10 j = 10 M + j + M - j + σ ^ 2 j j = 1 , .. , 16 M + 17 j = 17

Figure imgb0019

M + j = σ ^ 2 j - 1 Δ 2 j + M + j - 1 Δ 2 j j = 11 , .. , 17
Figure imgb0020
M - j = σ ^ 2 j + 1 Δ 1 j + M - j + 1 Δ 1 j j = 10 , .. , 16
Figure imgb0021

et Δ 2 j = 10 - 10 10 υ j - υ j - 1
Figure imgb0022
Δ 1 j = 10 27 10 υ j - υ j + 1
Figure imgb0023
An advantageous spreading function is that presented to the figure 5 . It is a triangular function whose first slope is + 27dB / Bark and -10dB / Bark for the second. This representation of the spreading function allows the iterative calculation of the following masking curve: M j = { M - 10 j = 10 M + j + M - j + σ ^ 2 j j = 1 , .. , 16 M + 17 j = 17
Figure imgb0019

or M + j = σ ^ 2 j - 1 Δ 2 j + M + j - 1 Δ 2 j j = 11 , .. , 17
Figure imgb0020
M - j = σ ^ 2 j + 1 Δ 1 j + M - j + 1 Δ 1 j j = 10 , .. , 16
Figure imgb0021

and Δ 2 j = 10 - 10 10 υ j - υ j - 1
Figure imgb0022
Δ 1 j = 10 27 10 υ j - υ j + 1
Figure imgb0023

Les valeurs de Δ1(j) et Δ2(j) peuvent être pré-calculées et stockées.The values of Δ 1 ( j ) and Δ 2 ( j ) can be pre-calculated and stored.

On décrit ci-après un premier mode d'application de l'invention à l'allocation de bits dans un codeur hiérarchique tel que l'encodeur G.729.1.A first embodiment of the invention is described below for the allocation of bits in a hierarchical coder such as the G.729.1 encoder.

Le critère d'allocation de bits se fonde ici sur le rapport signal-à-masque donné par : 1 2 log 2 σ ^ 2 j M j

Figure imgb0024
The bit allocation criterion is based here on the signal-to-mask ratio given by: 1 2 log 2 σ ^ 2 j M j
Figure imgb0024

La bande basse étant déjà filtrée perceptuellement, l'application du seuil de masquage est limitée à la bande haute. De manière à assurer la continuité spectrale entre le spectre en bande basse et celui en bande haute pondéré par le seuil de masquage et pour éviter de biaiser l'allocation binaire, le seuil de masquage est normalisé par sa valeur sur la dernière sous-bande de la bande basse.The low band is already filtered perceptually, the application of the masking threshold is limited to the high band. In order to ensure the spectral continuity between the low and high band spectrum weighted by the masking threshold and to avoid biasing the bit allocation, the masking threshold is normalized by its value on the last subband of the low band.

L'importance perceptuelle est donc redéfinie comme suit : ip j = { 1 2 log 2 σ ^ 2 j + offset pour j = 0..9 1 2 log 2 σ ^ 2 j M j + normfac + offset pour j = 10..17

Figure imgb0025

offset = -2 et normfac est un facteur de normalisation calculé suivant la relation : normfac = log 2 j = 9 17 σ ^ 2 j × B ν 9 - ν j
Figure imgb0026

On note que l'importance perceptuelle ip(j), j=0,...,9, est identique à celle définie dans la norme G.729.1. Par contre, la définition du terme ip(j) , j=10,...,17, est changée.The perceptual importance is redefined as follows: ip j = { 1 2 log 2 σ ^ 2 j + offset for j = 0..9 1 2 log 2 σ ^ 2 j M j + normfac + offset for j = 10..17
Figure imgb0025

where offset = -2 and normfac is a normalization factor calculated according to the relation: normfac = log 2 Σ j = 9 17 σ ^ 2 j × B ν 9 - ν j
Figure imgb0026

We note that the perceptual importance ip ( j ) , j = 0, ..., 9, is identical to that defined in the G.729.1 standard. On the other hand, the definition of the term ip ( j ) , j = 10, ..., 17, is changed.

L'importance perceptuelle redéfinie ci-dessus s'écrit maintenant : ip j = { 1 2 rms_index j pour j = 0 , , 9 1 2 rms_index j - log_ mask j pour j = 10 , , 17

Figure imgb0027

où log_ mask(j) = log2(M (j)) - normfac.
On comprendra que la deuxième ligne de l'accolade pour le calcul de l'importance perceptuelle est une expression de la mise en oeuvre de l'invention selon cette première application à l'allocation de bits dans un codage par transformée en tant que couche supérieure d'un codeur hiérarchique.The perceptual importance redefined above is now written: ip j = { 1 2 rms_index j for j = 0 , ... , 9 1 2 rms_index j - log_ mask j for j = 10 , ... , 17
Figure imgb0027

where log_ mask ( j ) = log 2 ( M ( j )) - normfac .
It will be understood that the second line of the brace for calculating the perceptual importance is an expression of the implementation of the invention according to this first application to the allocation of bits in a transform coding as an upper layer a hierarchical coder.

Une illustration de la normalisation du seuil de masquage est donnée en figure 8, montrant le raccord de la bande haute sur laquelle est appliquée le masquage (4-7 kHz) à la bande basse (0-4 kHz).An illustration of the standardization of the masking threshold is given in figure 8 , showing the connection of the high band on which the masking (4-7 kHz) is applied to the low band (0-4 kHz).

Les blocs 607 et 703 effectuent alors les calculs d'allocation de bits : nbit j = arg min r R nb_coef j nb_coef j × ip j - λ opt - r

Figure imgb0028

où λ opt est obtenu par dichotomie comme dans la norme G.729.1.Blocks 607 and 703 then perform the bit allocation calculations: nbit j = arg min r R nb_coef j nb_coef j × ip j - λ Opt - r
Figure imgb0028

where λ opt is obtained by dichotomy as in the G.729.1 standard.

La seule différence par rapport aux blocs 307 et 402 de l'art antérieur est donc la définition de l'importance perceptuelle ip(j) pour les sous-bandes de la bande haute.The only difference with respect to blocks 307 and 402 of the prior art is therefore the definition of the perceptual importance ip ( j ) for the subbands of the high band.

Dans une variante de ce mode de réalisation où la normalisation du seuil de masquage s'effectue par rapport à sa valeur sur la dernière sous-bande de la bande basse, la normalisation du seuil de masquage peut être plutôt réalisée à partir de la valeur du seuil de masquage dans la première sous-bande de la bande haute, comme suit : normfac = log 2 j = 10 17 σ ^ 2 j × B ν 10 - ν j

Figure imgb0029
In a variant of this embodiment in which the masking threshold is normalized with respect to its value on the last subband of the low band, the standardization of the masking threshold can be rather carried out from the value of the band. masking threshold in the first subband of the high band, as follows: normfac = log 2 Σ j = 10 17 σ ^ 2 j × B ν 10 - ν j
Figure imgb0029

Dans une autre variante encore, le seuil de masquage peut être calculé sur l'ensemble de la bande de fréquences, avec : M j = k = 0 17 σ ^ 2 k × B ν j - ν k

Figure imgb0030

Le seuil de masquage est ensuite appliqué uniquement à la bande haute après normalisation du seuil de masquage par sa valeur sur la dernière sous-bande de la bande basse: normfac = log 2 j = 0 17 σ ^ 2 j × B ν 9 - ν j ,
Figure imgb0031
ou encore par sa valeur sur la première sous-bande de la bande haute : normfac = log 2 j = 0 17 σ ^ 2 j × B ν 10 - ν j
Figure imgb0032
In another variant, the masking threshold can be calculated over the entire frequency band, with: M j = Σ k = 0 17 σ ^ 2 k × B ν j - ν k
Figure imgb0030

The masking threshold is then applied only to the high band after normalization of the masking threshold by its value on the last subband of the low band: normfac = log 2 Σ j = 0 17 σ ^ 2 j × B ν 9 - ν j ,
Figure imgb0031
or by its value on the first subband of the high band: normfac = log 2 Σ j = 0 17 σ ^ 2 j × B ν 10 - ν j
Figure imgb0032

Bien entendu, ces relations donnant le facteur de normalisation normfac ou le seuil de masquage M(j) sont généralisables à un nombre de sous-bandes quelconque (différents, au total, de dix-huit) en bande haute (avec un nombre différent de huit), comme en bande basse (avec un nombre différent de dix).Of course, these relations giving the normalization factor normfac or the masking threshold M ( j ) can be generalized to any number of sub-bands (different, in total, from eighteen) in high band (with a different number of eight), as in low band (with a different number of ten).

De manière générale, on relèvera aussi que l'on cherche une continuité en énergie entre la bande haute et la bande basse, alors que l'on utilise pour ce faire le signal différence, pondéré perceptuellement, en bande basse d LB W ,

Figure imgb0033
, et non pas le signal original lui-même. En réalité, comme illustré sur la figure 12, le codage CELP sur le signal différence (courbe en trait plein) donne, en fin de bande basse (après 2700 Hz, typiquement), un niveau d'énergie très proche du signal original lui-même (courbe en traits pointillés). Comme dans le codage G.729.1, seul le signal différence pondéré perceptuellement est disponible en bande basse, on utilise cette observation pour déterminer le facteur de formalisation du masque en bande haute.In general, we also note that we are looking for a continuity in energy between the high band and the low band, whereas we use the difference signal, weighted perceptually, in low band. d LB W ,
Figure imgb0033
, not the original signal itself. In reality, as illustrated on the figure 12 , the CELP coding on the difference signal (curve in solid line) gives, at the end of the low band (after 2700 Hz, typically), a level of energy very close to the original signal itself (curve in dashed lines). As in the G.729.1 coding, only the perceptually weighted difference signal is available in the low band, this observation is used to determine the formalization factor of the high band mask.

Dans un deuxième mode de réalisation, le seuil de masquage normalisé n'est pas utilisé pour pondérer l'énergie dans la définition de l'importance perceptuelle, comme dans le premier mode de réalisation décrit ci-avant, mais il sert à pondérer directement le signal de bande haute avant codage TDAC.In a second embodiment, the normalized masking threshold is not used to weight the energy in the definition of the perceptual importance, as in the first embodiment described above, but it serves to directly weight the high band signal before TDAC coding.

Ce deuxième mode de réalisation est illustré sur les figures 9A (pour l'encodage) et 10A (pour le décodage). Une variante de ce deuxième mode, que vise la présente invention en particulier pour le décodage effectué, est illustré sur les figures 9B (pour l'encodage) et 10B (pour le décodage).This second embodiment is illustrated on the Figures 9A (for encoding) and 10A (for decoding). A variant of this second mode, which is the object of the present invention, in particular for the decoding performed, is illustrated on the Figures 9B (for encoding) and 10B (for decoding).

Dans les figures 9A et 9B, le spectre Y(k) issu du bloc 903 est divisé en dix-huit sous-bandes et l'enveloppe spectrale est calculée (bloc 904) comme décrit précédemment.In the Figures 9A and 9B the spectrum Y ( k ) from block 903 is divided into eighteen subbands and the spectral envelope is calculated (block 904) as previously described.

En revanche, le seuil de masquage est calculé (bloc 905 de la figure 9A et bloc 906b de la figure 9B) à partir de l'enveloppe spectrale non quantifiée.On the other hand, the masking threshold is calculated (block 905 of the Figure 9A and block 906b of the Figure 9B ) from the unquantized spectral envelope.

Dans la réalisation de la figure 9A, on code directement une information représentative de la pondération par le seuil de masquage M(j), plutôt que coder l'enveloppe spectrale. En pratique, dans cette réalisation, on code les facteurs d'échelle sf(j), seulement à partir de j = 10 et jusqu'à j = 17.In the realization of the Figure 9A , information is directly coded representative of the weighting by the masking threshold M ( j ), rather than encoding the spectral envelope. In practice, in this embodiment, scale factors sf ( j ) are coded only from j = 10 to j = 17.

En effet, les facteurs d'échelle sont donnés par :

  • sf(j) = 1, pour j = 0,...,9 , sur la bande basse,
  • et par la racine carrée du seuil de masquage normalisé M(j), pour la bande haute, soit sf j = M j ,
    Figure imgb0034
    , pour j = 10, ..., 17.
Indeed, scale factors are given by:
  • sf ( j ) = 1, for j = 0, ..., 9, on the low band,
  • and by the square root of the normalized masking threshold M ( j ), for the high band, either sf j = M j ,
    Figure imgb0034
    For j = 10, ..., 17.

Ainsi, il n'est pas besoin de coder les facteurs d'échelle pour j = 0,...,9 et l'on ne code les facteurs d'échelle que pour j =10,...,17.Thus, it is not necessary to code the scale factors for j = 0, ..., 9 and scale factors are only coded for j = 10, ..., 17.

En référence à la figure 9A encore, l'information correspondant aux facteurs d'échelle sf(j), pour j=10,···,17, peut être codée (bloc 906) par une technique de codage d'enveloppe du même type que celle utilisée dans l'encodeur G.729.1 (bloc 305 de la figure 3), par exemple par quantification scalaire suivi d'un codage de Huffman différentiel pour la partie de bande haute.With reference to the Figure 9A furthermore, the information corresponding to the scaling factors sf ( j ), for j = 10, ···, 17, may be encoded (block 906) by an envelope coding technique of the same type as that used in FIG. 'G.729.1 encoder (block 305 of the figure 3 ), for example by scalar quantization followed by differential Huffman coding for the high band portion.

Le spectre Y(k) est ensuite divisé (bloc 907) par les facteurs d'échelle décodés, sf_q(j), j = 0,···,17 avant codage de type dit «gain-forme» (de l'anglais « gain-shape coding »). Ce codage est réalisé par quantification algébrique suivant l'erreur quadratique, tel que décrit dans le document Ragot et al :

  • " Low-complexity multi-rate lattice vector quantization with application to wideband TCX speech coding at 32 kbit/s", S. Ragot, B. Bessette, et R. Lefebvre, Proceedings ICASSP - Montreal (Canada), Pages: 501-504, vol.1 (2004 ).
Cette méthode quantification de type gain-forme est mise en oeuvre en particulier dans la norme 3GPP AMR-WB+.The spectrum Y ( k ) is then divided (block 907) by the decoded scale factors, sf _ q ( j ), j = 0, ···, 17 before the so-called "gain-shape" type coding. English " gain-shape coding "). This coding is performed by algebraic quantization according to the quadratic error, as described in the document Ragot et al:
  • " Low-complexity multi-rate lattice vector quantization with application to wideband TCX speech coding at 32 kbps, S. Ragot, B. Bessette, and R. Lefebvre, Proceedings ICASSP - Montreal (Canada), Pages: 501-504, vol.1 (2004) ).
This gain-form type quantization method is implemented in particular in the 3GPP AMR-WB + standard.

Le décodeur homologue est illustré à la figure 10A. Les facteurs d'échelle sf_q(j), j = 0,···,17, sont décodés dans le bloc 1001. Le bloc 1002 est réalisé alors comme décrit dans le document Ragot et al. précité.The peer decoder is shown in the figure 10A . The scale factors sf _ q (j), j = 0, ···, 17, are decoded in block 1001. The block 1002 is then performed as described in Ragot et al. supra.

L'extrapolation des sous-bandes manquantes (bloc 1003 de la figure 10A) suit le même principe que dans le décodeur G.729.1 (bloc 404 de la figure 4). Ainsi, si une sous-bande décodée ne comprend que des zéros, le spectre décodé par l'extension de bande remplace alors cette sous-bande.The extrapolation of the missing subbands (block 1003 of the figure 10A ) follows the same principle as in the G.729.1 decoder (block 404 of the figure 4 ). Thus, if a decoded subband contains only zeros, then the spectrum decoded by the band extension replaces that subband.

Le bloc 1004 réalise également une fonction similaire à celle du bloc 405 de la figure 4. Cependant, les facteurs d'échelle sf_ q(j), j=0,···,17 sont utilisés à la place de l'enveloppe spectrale décodée, rms_q(j), j =0,···,17.Block 1004 also performs a function similar to that of block 405 of the figure 4 . However, the scaling factors sf_q ( j ) , j = 0, ···, 17 are used in place of the decoded spectral envelope, rms_q ( j ) , j = 0, ···, 17.

Ce deuxième mode de réalisation peut s'avérer particulièrement avantageux notamment dans une implémentation selon la norme 3GPP-AMR-WB+ qui se présente comme le contexte de prédilection du document Ragot et al. précité.This second embodiment may be particularly advantageous, particularly in an implementation according to the 3GPP-AMR-WB + standard, which is the preferred context of the document Ragot et al. supra.

Dans une variante de ce deuxième mode de réalisation, telle que représentée sur les figures 9B et 10B (les mêmes références sur les figures 9A et 9B, et 10A et 10B, désignant les mêmes éléments), l'information codée reste l'enveloppe d'énergie (plutôt que le seuil de masquage lui-même comme sur les figures 9A et 10A).In a variant of this second embodiment, as represented on the Figures 9B and 10B (the same references on the Figures 9A and 9B , and 10A and 10B , designating the same elements), the coded information remains the envelope of energy (rather than the masking threshold itself as on the Figures 9A and 10A ).

Au codage, le seuil de masquage est calculé et normalisé (bloc 906b de la figure 9B) à partir de l'enveloppe spectrale codée (bloc 905b). Au décodage, le seuil de masquage est calculé et normalisé (bloc 1011b de la figure 10B) à partir de l'enveloppe spectrale décodée (bloc 1001b), le décodage de l'enveloppe permettant de réaliser un ajustement de niveau (bloc 1010b de la figure 10B) à partir des valeurs quantifiées rms_q(j).At the coding, the masking threshold is calculated and normalized (block 906b of the Figure 9B ) from the coded spectral envelope (block 905b). At decoding, the masking threshold is calculated and standardized (block 1011b of the figure 10B ) from the decoded spectral envelope (block 1001b), the decoding of the envelope making it possible to perform a level adjustment (block 1010b of the figure 10B ) from the quantized values rms_q ( j ).

Ainsi, en cas de sous-bandes décodées nulles, il est avantageusement possible, dans cette variante, d'effectuer une extrapolation et de maintenir un niveau de signal décodé correct.Thus, in the case of zero decoded subbands, it is advantageously possible in this variant to extrapolate and maintain a decoded signal level that is correct.

De manière générale, dans le premier comme dans le deuxième mode de réalisation, on comprendra que l'on calcule un seuil de masquage pour chaque sous-bande, au moins pour les sous-bandes de la bande des hautes fréquences, ce seuil de masquage étant normalisé pour assurer une continuité spectrale entre les sous-bandes concernées.In general, in the first as in the second embodiment, it will be understood that a masking threshold is calculated for each sub-band, at least for the sub-bands of the high frequency band, this masking threshold being normalized to ensure spectral continuity between the subbands concerned.

On indique aussi que le calcul d'un masquage fréquentiel au sens de l'invention peut être effectué ou non selon le signal à coder (en particulier s'il est tonal ou non).It is also indicated that the calculation of frequency masking in the sense of the invention may or may not be carried out according to the signal to be encoded (in particular if it is tonal or not).

Il a pu être observé en effet que le calcul du seuil de masquage est particulièrement avantageux lorsque le signal à coder n'est pas tonal, dans le premier mode, comme dans le deuxième mode de réalisation, décrits ci-avant.It has indeed been observed that the calculation of the masking threshold is particularly advantageous when the signal to be coded is not tonal, in the first mode, as in the second embodiment, described above.

Si le signal est tonal, l'application de la fonction d'étalement B(v) résulte en un seuil de masquage très proche d'un ton un peu plus étalé en fréquences. Le critère d'allocation minimisant le rapport bruit de codage à masque donne alors une allocation des bits assez médiocre. Il en va de même pour la pondération directe du signal de bande haute selon le deuxième mode de réalisation. Il est donc préféré, pour un signal tonal, d'utiliser une allocation des bits suivant des critères énergétiques. Ainsi, de façon préférentielle, l'invention n'est appliquée que si le signal à coder n'est pas tonal.If the signal is tonal, the application of the spreading function B (v) results in a masking threshold very close to a tone a little more spread out in frequencies. The allocation criterion minimizing the masked coding noise ratio then gives a bit of bit allocation. The same is true for the direct weighting of the high band signal according to the second embodiment. It is therefore preferred, for a tonal signal, to use a bit allocation according to energy criteria. Thus, preferably, the invention is applied only if the signal to be encoded is not tonal.

En termes génériques, on obtient donc une information (du bloc 305) selon laquelle le signal à coder est tonal ou non tonal, et la pondération perceptuelle de la bande haute, avec la détermination du seuil de masquage et la normalisation, ne sont menées que si le signal est non tonal.In generic terms, we thus obtain information (from block 305) according to which the signal to be encoded is tonal or non-tonal, and the perceptual weighting of the high band, with the determination of the masking threshold and normalization, are conducted only if the signal is non-tonal.

On décrit maintenant la mise en oeuvre de cette observation dans un encodeur selon la norme G.729.1. Le bit relatif au mode du codage de l'enveloppe spectrale (bloc 305 de la figure 3 notamment) indique un mode "Huffman différentiel" ou un mode "binaire naturel direct". Ce bit de mode peut être interprété comme une détection de tonalité, car, en général, un signal tonal conduit à un codage d'enveloppe par le mode "binaire naturel direct", tandis que la plupart des signaux non tonaux, ayant une dynamique spectrale plus limitée, conduisent à un codage d'enveloppe par le mode "Huffman différentiel".The implementation of this observation is now described in an encoder according to the G.729.1 standard. The bit relating to the mode of the coding of the spectral envelope (block 305 of the figure 3 in particular) indicates a "differential Huffman" mode or a "natural direct binary" mode. This mode bit can be interpreted as a tone detection, since, in general, a tonal signal leads to envelope coding by the "natural direct binary" mode, while most non-tonal signals, having a spectral dynamic more limited, lead to envelope coding by the "Differential Huffman" mode.

Ainsi, il peut être tiré un avantage de la « détection de tonalité du signal » pour mettre en oeuvre l'invention ou non. Plus particulièrement, l'invention est appliquée dans le cas où l'enveloppe spectrale a été codée en mode "Huffman différentiel" et l'importance perceptuelle est définie alors au sens de l'invention, comme suit : ip j = { 1 2 rms_index j pour j = 0..9 1 2 rms_index j - log_ mask j pour j = 10..17

Figure imgb0035
Thus, an advantage of the "signal tone detection" can be derived to implement the invention or not. More particularly, the invention is applied in the case where the spectral envelope has been coded in "differential Huffman" mode and the perceptual importance is defined in the sense of the invention, as follows: ip j = { 1 2 rms_index j for j = 0..9 1 2 rms_index j - log_ mask j for j = 10..17
Figure imgb0035

Par contre, si l'enveloppe a été codée en mode "binaire naturel direct", l'importance perceptuelle reste telle que définie dans la norme G.729.1 : ip j = { 1 2 rms_index j pour j = 0 , , 16 1 2 rms_index j - 1 pour j = 17

Figure imgb0036
On the other hand, if the envelope has been coded in "direct natural binary" mode, the perceptual importance remains as defined in the G.729.1 standard: ip j = { 1 2 rms_index j for j = 0 , ... , 16 1 2 rms_index j - 1 for j = 17
Figure imgb0036

On indique que dans le deuxième mode de réalisation, le module 904 de la figure 9A peut, en calculant l'enveloppe spectrale, déterminer si le signal est tonal ou non et ainsi le bloc 905 est contourné dans l'affirmative. De même, pour le mode de réalisation décrit à la figure 9B, le module 904 peut permettre de déterminer si le signal est tonal ou non et ainsi contourner le bloc 907 dans l'affirmative.It is indicated that in the second embodiment, the module 904 of the Figure 9A can, by calculating the spectral envelope, determine whether the signal is tonal or not and so Block 905 is bypassed if yes. Similarly, for the embodiment described in Figure 9B , the module 904 can make it possible to determine whether the signal is tonal or not and so bypass the block 907 in the affirmative.

On décrit maintenant une application possible de l'invention à une extension de l'encodeur G.729.1, en particulier en bande super-élargie.A possible application of the invention to an extension of the G.729.1 encoder, in particular in super-wideband, is now described.

La figure 11 généralise la normalisation de la courbe de masquage (décrite à la figure 8) au cas d'un codage en bande super-élargie. Les signaux sont, dans cette réalisation, échantillonnés à une fréquence de 32 kHz (au lieu de 16 kHz) pour une bande utile de 50 Hz - 14 kHz. La courbe de masquage log2[M(j)] est alors définie au moins pour les sous-bandes allant de 7 à 14 kHz.The figure 11 generalize the normalization of the masking curve (described in figure 8 ) in the case of super wide band coding. The signals in this embodiment are sampled at a frequency of 32 kHz (instead of 16 kHz) for a useful band of 50 Hz - 14 kHz. The masking curve log 2 [ M ( j )] is then defined at least for the sub-bands ranging from 7 to 14 kHz.

En effet, le spectre couvrant la bande 50Hz - 14 kHz est codé par sous-bandes et l'allocation des bits à chaque sous-bande est réalisée à partir de l'enveloppe spectrale comme dans l'encodeur G.729.1. Dans ce cas, un seuil de masquage partiel peut être calculé comme décrit précédemment.Indeed, the spectrum covering the band 50 Hz - 14 kHz is coded by subbands and the allocation of bits to each subband is made from the spectral envelope as in the G.729.1 encoder. In this case, a partial masking threshold can be calculated as previously described.

La normalisation du seuil de masquage, telle qu'illustrée sur la figure 11, se généralise donc aussi au cas où la bande haute comporte plus de sous-bandes ou couvre une zone de fréquences plus large que dans la norme G.729.1.The standardization of the masking threshold, as illustrated on the figure 11 , so also generalizes to the case where the high band has more subbands or covers a wider frequency area than in G.729.1.

En référence à la figure 11, sur la bande basse entre 50 Hz et 4 kHz, une première transformée T1 est appliquée au signal différence pondéré temporellement. Une deuxième transformée T2 est appliquée au signal sur la première bande haute entre 4 et 7 kHz et une troisième transformée T3 est appliquée au signal sur la deuxième bande haute entre 7 et 14 kHz.With reference to the figure 11 on the low band between 50 Hz and 4 kHz, a first T1 transform is applied to the time weighted difference signal. A second transform T2 is applied to the signal on the first high band between 4 and 7 kHz and a third transform T3 is applied to the signal on the second high band between 7 and 14 kHz.

On comprendra ainsi que l'invention ne se limite pas à des signaux échantillonnés à 16kHz. Sa mise en oeuvre est particulièrement avantageuse aussi pour des signaux échantillonnés à des fréquences supérieures, comme pour l'extension de l'encodeur selon la norme G.729.1 à des signaux échantillonnés non plus à 16 kHz mais à 32 kHz, comme décrit ci-avant. Si le codage TDAC est généralisé à une telle bande de fréquences (50 Hz - 14 kHz au lieu de 50 Hz - 7kHz actuellement), l'avantage procuré par l'invention sera réellement majeur.It will thus be understood that the invention is not limited to signals sampled at 16kHz. Its implementation is particularly advantageous also for signals sampled at higher frequencies, such as for the extension of the G.729.1 encoder to signals sampled not at 16 kHz but at 32 kHz, as described above. If the TDAC coding is generalized to such a frequency band (50 Hz - 14 kHz instead of 50 Hz - 7 kHz currently), the advantage provided by the invention will be really major.

En effet, dans la gamme de fréquences 4-14 kHz, les limites du critère d'erreur quadratique deviennent vraiment rédhibitoires et, pour que l'allocation des bits reste quasi-optimale, une pondération perceptuelle exploitant le masquage fréquentiel au sens de l'invention s'avère très avantageuse.Indeed, in the 4-14 kHz frequency range, the limits of the quadratic error criterion become really unacceptable and, for bit allocation to remain near optimal, a perceptual weighting exploiting the frequency masking in the sense of the invention is very advantageous.

Ainsi, l'invention vise également à améliorer le codage TDAC, en particulier en appliquant une pondération perceptuelle de la bande haute étendue (4-14 kHz) tout en assurant la continuité spectrale entre bandes, ce critère étant important pour un codage conjoint de la première bande basse et de la deuxième bande haute et étendue jusqu'à 14 kHz.Thus, the invention also aims to improve the TDAC coding, in particular by applying a perceptual weighting of the high-bandwidth (4-14 kHz) while ensuring the spectral continuity between bands, this criterion being important for a joint coding of the band. first low band and the second high and extended band up to 14 kHz.

On a décrit ci-avant une réalisation dans laquelle la bande basse était toujours pondérée perceptuellement. Cette réalisation n'est aucunement nécessaire pour la mise en oeuvre de l'invention. Dans une variante, le codeur hiérarchique est mis en oeuvre avec un codeur coeur dans une première bande de fréquences, et le signal d'erreur associé à ce codeur coeur est directement transformé, sans pondération perceptuelle dans cette première bande de fréquences, pour être codé conjointement avec le signal transformé d'une deuxième bande de fréquences. A titre d'exemple, le signal original peut être échantillonné à 16 kHz et décomposé en deux bandes de fréquences (de 0 à 4000 Hz et de 4000 à 8000 Hz) par un banc de filtres approprié, de type QMF. Le codeur peut être typiquement, dans une telle réalisation, un codeur selon la norme G.711 (avec compression PCM). Le codage par transformée est effectué alors sur :

  • le signal différence entre le signal original et la synthèse G.711 dans la première bande de fréquences (0-4000 Hz), et
  • le signal original, pondéré perceptuellement dans le domaine fréquentiel selon l'invention, dans une deuxième bande de fréquences (4000-8000 Hz).
An embodiment has been described above in which the low band was always weighted perceptually. This embodiment is not necessary for the implementation of the invention. In a variant, the hierarchical coder is implemented with a core coder in a first frequency band, and the error signal associated with this core coder is directly transformed, without perceptual weighting in this first frequency band, to be coded. together with the transformed signal of a second frequency band. By way of example, the original signal can be sampled at 16 kHz and decomposed into two frequency bands (from 0 to 4000 Hz and from 4000 to 8000 Hz) by an appropriate filter bank, of the QMF type. The encoder can typically be, in such an embodiment, an encoder according to the G.711 standard (with PCM compression). The transform coding is then performed on:
  • the difference signal between the original signal and the G.711 synthesis in the first frequency band (0-4000 Hz), and
  • the original signal, perceptually weighted in the frequency domain according to the invention, in a second frequency band (4000-8000 Hz).

Ainsi, dans cette réalisation, la pondération perceptuelle dans la bande basse n'est pas nécessaire pour l'application de l'invention.Thus, in this embodiment, the perceptual weighting in the low band is not necessary for the application of the invention.

Dans une autre variante, le signal original est échantillonné à 32 kHz et décomposé en deux bandes de fréquences (de 0 à 8000 Hz et de 8000 à 16000 Hz) par un banc de filtres approprié, de type QMF. Le codeur peut être ici un codeur selon la norme G.722 (compression ADPCM en deux sous-bandes), et le codage par transformée est effectué sur :

  • le signal différence entre le signal original et le signal de synthèse G.722 dans la première bande de fréquences (0-8000 Hz), et
  • le signal original, lequel est encore pondéré perceptuellement selon l'invention dans un domaine fréquentiel restreint à la deuxième bande de fréquences (8000-16000 Hz).
In another variant, the original signal is sampled at 32 kHz and decomposed into two frequency bands (0 to 8000 Hz and 8000 to 16000 Hz) by an appropriate filter bank, QMF type. The encoder can be here an encoder according to the G.722 standard (ADPCM compression in two sub-bands), and the transform coding is performed on:
  • the difference signal between the original signal and the G.722 synthesis signal in the first frequency band (0-8000 Hz), and
  • the original signal, which is still weighted perceptually according to the invention in a frequency domain restricted to the second frequency band (8000-16000 Hz).

On indique enfin que la présente invention vise aussi un premier programme informatique, stocké dans une mémoire d'un codeur d'un terminal de télécommunication et/ou stocké sur un support mémoire destiné à coopérer avec un lecteur dudit codeur. Ce premier programme comporte alors des instructions pour la mise en oeuvre du procédé de codage défini ci-avant, lorsque ces instructions sont exécutées par un processeur du codeur.Finally, it is pointed out that the present invention also relates to a first computer program, stored in a memory of an encoder of a telecommunication terminal and / or stored on a memory medium intended to cooperate with a reader of said encoder. This first program then comprises instructions for implementing the coding method defined above, when these instructions are executed by an encoder processor.

La présente invention vise aussi un codeur comportant au moins une mémoire stockant ce premier programme informatique.The present invention also relates to an encoder comprising at least one memory storing this first computer program.

On comprendra que les figures 6, 9A et 9B peuvent constituer des organigrammes de ce premier programme informatique, ou illustrer encore la structure d'un tel codeur, selon des modes de réalisation et variantes distincts.It will be understood that figures 6 , 9A and 9B may constitute flowcharts of this first computer program, or further illustrate the structure of such an encoder, according to different embodiments and variants.

La présente invention vise aussi un deuxième programme informatique, stocké dans une mémoire d'un décodeur d'un terminal de télécommunication ct/ou stocké sur un support mémoire destiné à coopérer avec un lecteur dudit décodeur. Ce deuxième programme comporte alors des instructions pour la mise en oeuvre du procédé de décodage défini ci-avant, lorsque ces instructions sont exécutées par un processeur du décodeur.The present invention also relates to a second computer program, stored in a memory of a decoder of a telecommunication terminal and / or stored on a storage medium intended to cooperate with a reader of said decoder. This second program then comprises instructions for implementing the decoding method defined above, when these instructions are executed by a processor of the decoder.

La présente invention vise aussi un décodeur comportant au moins une mémoire stockant ce deuxième programme informatique.The present invention also relates to a decoder comprising at least one memory storing this second computer program.

On comprendra aussi que les figures 7, 10A, 10B peuvent constituer des organigrammes de ce deuxième programme informatique, ou illustrer encore la structure d'un tel décodeur, selon des modes de réalisation et variantes distincts.It will also be understood that figures 7 , 10A , 10B may constitute flowcharts of this second computer program, or further illustrate the structure of such a decoder, according to different embodiments and variants.

Claims (19)

  1. Method of encoding an audio signal in a plurality of subbands, wherein at least one first and one second adjacent subband are encoded by transform (601, 602; 901, 902),
    characterized in that, to apply a perceptual weighting, in the transformed domain, at least to the second subband, the method comprises:
    - a determination of at least one frequency masking threshold (606; 905; 906b) to be applied to the second subband, and
    - a normalization of said masking threshold to ensure a spectral continuity between said first and second subbands.
  2. Method according to Claim 1, wherein a number of bits to be allocated to each subband is determined from a spectral envelope,
    characterized in that the allocation of the bits (607) for at least the second subband is also determined according to a normalized masking curve calculation, applied to at least the second subband (606).
  3. Method according to Claim 2, wherein the encoding is done on more than two subbands, the first subband being included in a first spectral band and the second subband being included in a second spectral band, characterized in that the number of bits per subband nbit(j) is given, for each subband of index j, according to a perceptual importance ip(j) calculated on the basis of a relation of the following type:
    - ip(j)=½rms_index(j), if j is a subband index within the first band, and
    - ip(j)=½[rms_index(j)-log_mask(j)], if j is a subband index within the second band with log_mask(j)=log2(M(j))-normfac in which:
    - rms_index(j) are quantized values deriving from the encoding of the envelope, for the subband j,
    - M(j) is the masking threshold for said subband of index j, and
    - normfac is a determined normalization factor to ensure the spectral continuity between said first and second subbands.
  4. Method according to Claim 1, characterized in that the transformed signal, in the second subband, is weighted (905) by a factor proportional to the square root of the normalized masking threshold for the second subband.
  5. Method according to Claim 4, wherein encoding is done over more than two subbands, the first subband being included in a first spectral band and the second subband being included in a second spectral band, characterized in that weighting values of M j
    Figure imgb0043
    are encoded (906), M(j) being the normalized masking threshold for a subband of index j, included in the second spectral band.
  6. Method according to one of the preceding claims, characterized in that the encoding by transform takes place in an upper layer (110) of a hierarchical encoder,
    - the first subband including a signal d LB W
    Figure imgb0044
    deriving from a core encoding (105) of the hierarchical encoder,
    - and the second subband including an original signal (SHB).
  7. Method according to Claim 6, characterized in that the signal d LB W
    Figure imgb0045
    deriving from the core encoding is perceptually weighted (600; 900).
  8. Method according to one of Claims 6 and 7, characterized in that the signal d LB W
    Figure imgb0046
    deriving from the core encoding is a signal representative of a difference between an original signal and a synthesis of this original signal.
  9. Method according to one of Claims 6 to 8, characterized in that the encoding by transform is of TDAC type in a global encoder according to the standard G.729.1, and in that the first subband is included in a low frequency band (T1), whereas the second subband is included in a high frequency band.
  10. Method according to Claim 9, characterized in that the high frequency band extends to 7000 Hz (T2), at least (T3).
  11. Method according to one of the preceding claims, wherein a spectral envelope is calculated (604; 904), characterized in that the masking threshold, for a subband, is defined by a convolution between:
    - an expression of the spectral envelope, and
    - a spreading function involving a central frequency of said subband.
  12. Method according to one of the preceding claims, wherein information (305) is obtained according to which the signal to be encoded is tonal or non-tonal, characterized in that the perceptual weighting of the second subband, with the determination of the masking threshold and the normalization, are conducted only if the signal is non-tonal.
  13. Method of decoding an audio signal in a plurality of subbands, wherein at least one first and one second adjacent subband are decoded by transform (709, 711; 1007, 1009),
    characterized in that, to apply a perceptual weighting, in the transformed domain, at least to the second subband, the method comprises:
    - a determination of at least one frequency masking threshold (702; 1001; 1011b) to be applied to the second subband, based on a decoded spectral envelope, and
    - a normalization of said masking threshold to ensure a spectral continuity between said first and second subbands.
  14. Method according to Claim 13, wherein a number of bits to be allocated to each subband (703) is determined from a spectral envelope decoding (701),
    characterized in that the allocation of the bits (703) for at least the second subband is furthermore determined according to a normalized masking curve calculation (702) applied at least to the second subband.
  15. Method according to Claim 13, characterized in that the transformed signal, in the second subband, is weighted (1004) by a factor proportional to the square root of the normalized masking threshold for the second subband.
  16. Computer program, stored in a memory of an encoder of a telecommunication terminal and/or stored on a memory medium intended to cooperate with a reader of said encoder,
    characterized in that it comprises instructions for implementing the encoding method according to one of Claims 1 to 12 when said instructions are executed by a processor of the encoder.
  17. Encoder, characterized in that it comprises at least one memory storing a computer program according to Claim 16.
  18. Computer program, stored in a memory of a decoder of a telecommunication terminal and/or stored on a memory medium intended to cooperate with a reader of said decoder,
    characterized in that it comprises instructions for implementing the decoding method according to one of Claims 13 to 15 when said instructions are executed by a processor of the decoder.
  19. Decoder, characterized in that it comprises at least one memory storing a computer program according to Claim 18.
EP08762010A 2007-02-02 2008-01-30 Advanced encoding / decoding of audio digital signals Active EP2115741B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0700747A FR2912249A1 (en) 2007-02-02 2007-02-02 Time domain aliasing cancellation type transform coding method for e.g. audio signal of speech, involves determining frequency masking threshold to apply to sub band, and normalizing threshold to permit spectral continuity between sub bands
PCT/FR2008/050150 WO2008104663A1 (en) 2007-02-02 2008-01-30 Advanced encoding / decoding of audio digital signals

Publications (2)

Publication Number Publication Date
EP2115741A1 EP2115741A1 (en) 2009-11-11
EP2115741B1 true EP2115741B1 (en) 2010-07-07

Family

ID=38477199

Family Applications (1)

Application Number Title Priority Date Filing Date
EP08762010A Active EP2115741B1 (en) 2007-02-02 2008-01-30 Advanced encoding / decoding of audio digital signals

Country Status (10)

Country Link
US (1) US8543389B2 (en)
EP (1) EP2115741B1 (en)
JP (1) JP5357055B2 (en)
KR (1) KR101425944B1 (en)
CN (1) CN101622661B (en)
AT (1) ATE473504T1 (en)
DE (1) DE602008001718D1 (en)
ES (1) ES2347850T3 (en)
FR (1) FR2912249A1 (en)
WO (1) WO2008104663A1 (en)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2054878B1 (en) * 2006-08-15 2012-03-28 Broadcom Corporation Constrained and controlled decoding after packet loss
AU2009267530A1 (en) * 2008-07-11 2010-01-14 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. An apparatus and a method for generating bandwidth extension output data
PL2304723T3 (en) * 2008-07-11 2013-03-29 Fraunhofer Ges Forschung An apparatus and a method for decoding an encoded audio signal
WO2010028292A1 (en) * 2008-09-06 2010-03-11 Huawei Technologies Co., Ltd. Adaptive frequency prediction
WO2010028297A1 (en) * 2008-09-06 2010-03-11 GH Innovation, Inc. Selective bandwidth extension
WO2010028301A1 (en) * 2008-09-06 2010-03-11 GH Innovation, Inc. Spectrum harmonic/noise sharpness control
WO2010031049A1 (en) * 2008-09-15 2010-03-18 GH Innovation, Inc. Improving celp post-processing for music signals
WO2010031003A1 (en) * 2008-09-15 2010-03-18 Huawei Technologies Co., Ltd. Adding second enhancement layer to celp based core layer
EP2645367B1 (en) * 2009-02-16 2019-11-20 Electronics and Telecommunications Research Institute Encoding/decoding method for audio signals using adaptive sinusoidal coding and apparatus thereof
FR2947944A1 (en) * 2009-07-07 2011-01-14 France Telecom PERFECTED CODING / DECODING OF AUDIONUMERIC SIGNALS
ES2441069T3 (en) * 2009-10-08 2014-01-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Multimode decoder for audio signal, multimode encoder for audio signal, procedure and computer program using noise modeling based on linearity-prediction-coding
US8898057B2 (en) * 2009-10-23 2014-11-25 Panasonic Intellectual Property Corporation Of America Encoding apparatus, decoding apparatus and methods thereof
EP2555188B1 (en) * 2010-03-31 2014-05-14 Fujitsu Limited Bandwidth extension apparatuses and methods
US9443534B2 (en) * 2010-04-14 2016-09-13 Huawei Technologies Co., Ltd. Bandwidth extension system and approach
EP2562750B1 (en) * 2010-04-19 2020-06-10 Panasonic Intellectual Property Corporation of America Encoding device, decoding device, encoding method and decoding method
US8600737B2 (en) 2010-06-01 2013-12-03 Qualcomm Incorporated Systems, methods, apparatus, and computer program products for wideband speech coding
EP3079153B1 (en) 2010-07-02 2018-08-01 Dolby International AB Audio decoding with selective post filtering
US8831933B2 (en) 2010-07-30 2014-09-09 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for multi-stage shape vector quantization
US9208792B2 (en) 2010-08-17 2015-12-08 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for noise injection
KR101826331B1 (en) * 2010-09-15 2018-03-22 삼성전자주식회사 Apparatus and method for encoding and decoding for high frequency bandwidth extension
CA2929800C (en) * 2010-12-29 2017-12-19 Samsung Electronics Co., Ltd. Apparatus and method for encoding/decoding for high-frequency bandwidth extension
US9536534B2 (en) * 2011-04-20 2017-01-03 Panasonic Intellectual Property Corporation Of America Speech/audio encoding apparatus, speech/audio decoding apparatus, and methods thereof
US9173025B2 (en) 2012-02-08 2015-10-27 Dolby Laboratories Licensing Corporation Combined suppression of noise, echo, and out-of-location signals
US8712076B2 (en) 2012-02-08 2014-04-29 Dolby Laboratories Licensing Corporation Post-processing including median filtering of noise suppression gains
CN103548080B (en) * 2012-05-11 2017-03-08 松下电器产业株式会社 Hybrid audio signal encoder, voice signal hybrid decoder, sound signal encoding method and voice signal coding/decoding method
CA2897321C (en) 2013-01-08 2018-09-04 Dolby International Ab Model based prediction in a critically sampled filterbank
CA3029037C (en) * 2013-04-05 2021-12-28 Dolby International Ab Audio encoder and decoder
CN104217727B (en) 2013-05-31 2017-07-21 华为技术有限公司 Signal decoding method and equipment
US9418671B2 (en) * 2013-08-15 2016-08-16 Huawei Technologies Co., Ltd. Adaptive high-pass post-filter
EP3062535B1 (en) * 2013-10-22 2019-07-03 Industry-Academic Cooperation Foundation, Yonsei University Method and apparatus for processing audio signal
KR101498113B1 (en) * 2013-10-23 2015-03-04 광주과학기술원 A apparatus and method extending bandwidth of sound signal
CN111105806B (en) 2014-03-24 2024-04-26 三星电子株式会社 High-frequency band encoding method and apparatus, and high-frequency band decoding method and apparatus
CN110875047B (en) * 2014-05-01 2023-06-09 日本电信电话株式会社 Decoding device, method thereof, and recording medium
KR20230066137A (en) 2014-07-28 2023-05-12 삼성전자주식회사 Signal encoding method and apparatus and signal decoding method and apparatus
WO2017033113A1 (en) 2015-08-21 2017-03-02 Acerta Pharma B.V. Therapeutic combinations of a mek inhibitor and a btk inhibitor
US10628165B2 (en) * 2017-08-17 2020-04-21 Agora Lab, Inc. Gain control for multiple description coding
EP3483880A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Temporal noise shaping
EP3483884A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Signal filtering
EP3483878A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder supporting a set of different loss concealment tools
EP3483886A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Selecting pitch lag
WO2019091576A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoders, audio decoders, methods and computer programs adapting an encoding and decoding of least significant bits
EP3483883A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio coding and decoding with selective postfiltering
EP3483879A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Analysis/synthesis windowing function for modulated lapped transformation
EP3483882A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Controlling bandwidth in encoders and/or decoders
KR102189733B1 (en) * 2019-06-12 2020-12-11 주식회사 에이치알지 Electronic device for measuring large animal intake and method for operation thereof
WO2024034389A1 (en) * 2022-08-09 2024-02-15 ソニーグループ株式会社 Signal processing device, signal processing method, and program

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695700A (en) * 1992-09-09 1994-04-08 Toshiba Corp Method and device for speech coding
US5623577A (en) * 1993-07-16 1997-04-22 Dolby Laboratories Licensing Corporation Computationally efficient adaptive bit allocation for encoding method and apparatus with allowance for decoder spectral distortions
US5632003A (en) * 1993-07-16 1997-05-20 Dolby Laboratories Licensing Corporation Computationally efficient adaptive bit allocation for coding method and apparatus
US5625743A (en) * 1994-10-07 1997-04-29 Motorola, Inc. Determining a masking level for a subband in a subband audio encoder
US5790759A (en) * 1995-09-19 1998-08-04 Lucent Technologies Inc. Perceptual noise masking measure based on synthesis filter frequency response
CA2185745C (en) * 1995-09-19 2001-02-13 Juin-Hwey Chen Synthesis of speech signals in the absence of coded parameters
CN1183685C (en) * 1998-05-27 2005-01-05 微软公司 System and method for entropy ercoding quantized transform coefficients of a sigral
JP3515903B2 (en) * 1998-06-16 2004-04-05 松下電器産業株式会社 Dynamic bit allocation method and apparatus for audio coding
US6363338B1 (en) * 1999-04-12 2002-03-26 Dolby Laboratories Licensing Corporation Quantization in perceptual audio coders with compensation for synthesis filter noise spreading
JP2003280697A (en) * 2002-03-22 2003-10-02 Sanyo Electric Co Ltd Method and apparatus for compressing audio
AU2003234763A1 (en) * 2002-04-26 2003-11-10 Matsushita Electric Industrial Co., Ltd. Coding device, decoding device, coding method, and decoding method
FR2850781B1 (en) * 2003-01-30 2005-05-06 Jean Luc Crebouw METHOD FOR DIFFERENTIATED DIGITAL VOICE AND MUSIC PROCESSING, NOISE FILTERING, CREATION OF SPECIAL EFFECTS AND DEVICE FOR IMPLEMENTING SAID METHOD
US7333930B2 (en) * 2003-03-14 2008-02-19 Agere Systems Inc. Tonal analysis for perceptual audio coding using a compressed spectral representation
BRPI0517780A2 (en) * 2004-11-05 2011-04-19 Matsushita Electric Ind Co Ltd scalable decoding device and scalable coding device
US7562021B2 (en) * 2005-07-15 2009-07-14 Microsoft Corporation Modification of codewords in dictionary used for efficient coding of digital media spectral data
ATE518224T1 (en) * 2008-01-04 2011-08-15 Dolby Int Ab AUDIO ENCODERS AND DECODERS

Also Published As

Publication number Publication date
KR20090104846A (en) 2009-10-06
DE602008001718D1 (en) 2010-08-19
CN101622661B (en) 2012-05-23
US20100121646A1 (en) 2010-05-13
FR2912249A1 (en) 2008-08-08
ES2347850T3 (en) 2010-11-04
US8543389B2 (en) 2013-09-24
JP2010518422A (en) 2010-05-27
WO2008104663A1 (en) 2008-09-04
EP2115741A1 (en) 2009-11-11
ATE473504T1 (en) 2010-07-15
KR101425944B1 (en) 2014-08-06
CN101622661A (en) 2010-01-06
JP5357055B2 (en) 2013-12-04

Similar Documents

Publication Publication Date Title
EP2115741B1 (en) Advanced encoding / decoding of audio digital signals
EP2452337B1 (en) Allocation of bits in an enhancement coding/decoding for improving a hierarchical coding/decoding of digital audio signals
EP2452336B1 (en) Improved coding /decoding of digital audio signals
JP5161069B2 (en) System, method and apparatus for wideband speech coding
EP1905010B1 (en) Hierarchical audio encoding/decoding
WO2007093726A2 (en) Device for perceptual weighting in audio encoding/decoding
EP1692689B1 (en) Optimized multiple coding method
KR102105305B1 (en) Method and apparatus for encoding and decoding audio signal using layered sinusoidal pulse coding
US9047877B2 (en) Method and device for an silence insertion descriptor frame decision based upon variations in sub-band characteristic information
WO2007107670A2 (en) Method for post-processing a signal in an audio decoder

Legal Events

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

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20090728

AK Designated contracting states

Kind code of ref document: A1

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

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

DAX Request for extension of the european patent (deleted)
GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

RIN1 Information on inventor provided before grant (corrected)

Inventor name: GUILLAUME, CYRIL

Inventor name: RAGOT, STEPHANE

AK Designated contracting states

Kind code of ref document: B1

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

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

Free format text: NOT ENGLISH

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REF Corresponds to:

Ref document number: 602008001718

Country of ref document: DE

Date of ref document: 20100819

Kind code of ref document: P

REG Reference to a national code

Ref country code: NL

Ref legal event code: VDEP

Effective date: 20100707

REG Reference to a national code

Ref country code: ES

Ref legal event code: FG2A

Ref document number: 2347850

Country of ref document: ES

Kind code of ref document: T3

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

Ref country code: SI

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

Effective date: 20100707

LTIE Lt: invalidation of european patent or patent extension

Effective date: 20100707

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

Ref country code: NO

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

Effective date: 20101007

Ref country code: FI

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

Effective date: 20100707

Ref country code: AT

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

Effective date: 20100707

Ref country code: LT

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

Effective date: 20100707

Ref country code: NL

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

Effective date: 20100707

REG Reference to a national code

Ref country code: IE

Ref legal event code: FD4D

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

Ref country code: PL

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

Effective date: 20100707

Ref country code: HR

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

Effective date: 20100707

Ref country code: BG

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

Effective date: 20101007

Ref country code: CY

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

Effective date: 20100707

Ref country code: IS

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

Effective date: 20101107

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

Ref country code: SE

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

Effective date: 20100707

Ref country code: LV

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

Effective date: 20100707

Ref country code: GR

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

Effective date: 20101008

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

Ref country code: DK

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

Effective date: 20100707

Ref country code: IE

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

Effective date: 20100707

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

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

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

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

Ref country code: EE

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

Effective date: 20100707

Ref country code: CZ

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

Effective date: 20100707

Ref country code: RO

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

Effective date: 20100707

Ref country code: SK

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

Effective date: 20100707

26N No opposition filed

Effective date: 20110408

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602008001718

Country of ref document: DE

Effective date: 20110408

BERE Be: lapsed

Owner name: FRANCE TELECOM

Effective date: 20110131

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

Ref country code: MC

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

Effective date: 20110131

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

Ref country code: BE

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

Effective date: 20110131

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

Ref country code: MT

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

Effective date: 20100707

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

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

Ref country code: CH

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

Effective date: 20120131

Ref country code: LI

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

Effective date: 20120131

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

Ref country code: LU

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

Effective date: 20110130

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

Ref country code: PT

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

Effective date: 20100707

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

Ref country code: TR

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

Effective date: 20100707

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

Ref country code: HU

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

Effective date: 20100707

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 8

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 9

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 10

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 11

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

Ref country code: IT

Payment date: 20230103

Year of fee payment: 16

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

Ref country code: GB

Payment date: 20231219

Year of fee payment: 17

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

Ref country code: FR

Payment date: 20231219

Year of fee payment: 17

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

Ref country code: ES

Payment date: 20240202

Year of fee payment: 17

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

Ref country code: DE

Payment date: 20231219

Year of fee payment: 17