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

Advanced encoding / decoding of audio digital signals

Info

Publication number
EP2115741A1
EP2115741A1 EP08762010A EP08762010A EP2115741A1 EP 2115741 A1 EP2115741 A1 EP 2115741A1 EP 08762010 A EP08762010 A EP 08762010A EP 08762010 A EP08762010 A EP 08762010A EP 2115741 A1 EP2115741 A1 EP 2115741A1
Authority
EP
European Patent Office
Prior art keywords
subband
band
signal
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.)
Granted
Application number
EP08762010A
Other languages
German (de)
French (fr)
Other versions
EP2115741B1 (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

Classifications

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

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).
  • - waveform coding methods such as PCM (for "Coded Pulse Modulation") and ADPCM (for "Pulse Modulation and Adaptive Differential Coding"), also known as “PCM” "and” ADPCM “in English
  • PCM Coded Pulse Modulation
  • ADPCM Pulse Modulation and Adaptive Differential Coding
  • CELP Code Excited Linear Prediction
  • 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.
  • LPC Linear Prediction Coding
  • 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.
  • 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 decoder. Examples of such systems are the ITU-T G.711 64 kbit / s standard encoding, the ITU-T G.729 8 kbit / s standard encoding, or the 12.2 kbit / s GSM-EFR encoding.
  • 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.
  • 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) enhancement (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 bit rate and bandwidth), the 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, p. 277-280, vol. 1 ( May 2004).
  • 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.
  • the bit stream includes a base layer and one or more enhancement layers.
  • the base layer is generated by a low-rate (fixed) codec, known as a "core coded", which guarantees the minimum quality of the coding. 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 bandwidth and scalability encoding techniques are described below, with a CELP core-type coder, in 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-shaped hierarchical encoder producing a bandwidth ranging from narrow band (50-4000 Hz) to wide band (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 shown schematically in FIG. 1.
  • the broadband input signal s wb sampled at 16 kHz, is first broken down 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 (i.e. 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 type
  • TDAC for "Time Domain Aliasing Cancellation" in the G.729.1 standard) is carried out at block 110.
  • the TDAC encoding is applied to both the error signal on the band. bass and the filtered signal on the high band.
  • 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 bit streams 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 codec therefore has a three-step coding architecture comprising:
  • the homologous decoder according to the G.729.1 standard is illustrated in FIG. 2.
  • the bits describing each 20 ms frame are demultiplexed in the 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 extended band output signal s wb sampled at 16 kHz, is obtained via the QMF synthesis filter bank (blocks 209, 210, 211, 212 and 213) integrating the inverse folding (block 208).
  • the TDAC type transform coding in the G.729.1 encoder is illustrated in FIG.
  • 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 (block 301 and 302) to obtain: - the MDCT spectrum D ⁇ 3 of the difference signal, perceptually filtered, and the MDCT spectrum S HB of the original signal of the high band.
  • 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:
  • 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 sub-band j comprises the coefficients Y (k) with sb-bound (j) ⁇ k ⁇ sb-bound (j + 1).
  • the spectral envelope JlOg-ZmS (J) J _ o ⁇ is calculated in block 304 according to the formula:
  • This value rms _index (j) is transmitted to bit allocation block 306.
  • two types of coding may be chosen according to a given criterion, and, more precisely, the rms values _index (j): may be coded by "differential Huffman" coding, - or may be coded by natural binary coding .
  • a bit (0 or 1) is transmitted to the decoder to indicate the encoding mode that has been chosen.
  • 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 step of TDAC-type transform decoding in the G.729.1 decoder is illustrated in FIG. 4.
  • the decoded spectral envelope (block 401) makes it possible to recover the allocation.
  • each of the subbands is found by inverse spherical vector quantization (block 403).
  • the non-transmitted sub-bands, 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. 2).
  • the spectrum MDCT is separated into two (block 407): with 160 first coefficients corresponding to the spectrum D ⁇ B of a decoded difference signal in low band, perceptually filtered, and 160 subsequent coefficients corresponding to the spectrum S HB of the original decoded signal in high band.
  • IMDCT inverse MDCT transform time signals
  • W 18 (Z) 1 the inverse perceptual weighting filter
  • W 18 (Z) 1 the inverse perceptual weighting
  • Table 2 Possible values of number of bits allocated in TDAC subbands.
  • nbit (j) arg rR m, in nb_ coef (j) x (ip (j) -A) - r
  • 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 ⁇ l ⁇ 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.
  • the W LB (z) filter is defined as:
  • 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 TDAC encoder jointly processes: the difference signal, between the original low band and the CELP synthesis, perceptually filtered by a ⁇ (z / ⁇ 1) / ⁇ (z / ⁇ 2) compensated filter. gain (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.
  • 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). 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.
  • the present invention improves the situation.
  • 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.
  • 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 assign the bits to the sub-bands which 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 first subband then comprises a signal resulting from a core coding of the hierarchical coder
  • the second subband comprises an original signal
  • 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”
  • 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.
  • the decoding method then comprises: a determination of at least one frequency masking threshold to be applied on the second subband, starting from a decoded spectral envelope, and a normalization of said masking threshold to provide spectral continuity between said first and second subbands.
  • 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 FIG.
  • FIG. 5 illustrates an advantageous spreading function for masking in the sense of the invention
  • FIG. 6 illustrates, for comparison with FIG. 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
  • FIG. 7 illustrates, for comparison with FIG. 4, the structure of a homologous TDAC decoding of FIG. 6, using a curve calculation 702 according to the first embodiment of the invention
  • FIG. 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
  • FIG. 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
  • FIG. 9B illustrates the structure of a TDAC encoding in a variant of the second application mode illustrated in FIG. 9A, here with a coding of the spectral envelope
  • FIG. 10A illustrates the structure of a homologous TDAC decoding of FIG. 9A, according to the second embodiment application of the invention
  • FIG. 10A illustrates the structure of a homologous TDAC decoding of FIG. 9A, according to the second embodiment application of the invention
  • FIG. 1B illustrates the structure of a homologous TDAC decoding of FIG. 9B, according to the second embodiment of the invention, with here a calculation of the decoding masking threshold
  • FIG. 11 illustrates the normalization of the curve. in a second embodiment of the invention where the sampling frequency is 32 kHz and the masking of the invention applied for the high band widened from 4 to 14 kHz
  • FIG. 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).
  • 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).
  • FIG. 5 An example of such a spreading function is shown in FIG. 5. This function is defined in a frequency domain whose unit is Bark. The frequency scale is representative of the frequency sensitivity of the ear. A usual approximation of the conversion of a frequency / in Hertz, in "frequencies" noted ⁇ (in Barks), is given by the following relation:
  • 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).
  • the spreading function may be a function of the level of the line and / or the frequency of the masking line. 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.
  • the coding and decoding have the same architecture as that shown in FIGS. 1 and 2. Here, only blocks 110 and 203 are modified as described in FIGS. 6 and 7.
  • the modified TDAC coder is identical to that of FIG. 3, except that the allocation of bits following the quadratic 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 shown in FIG. 7 in this first embodiment.
  • This decoder is identical to that of FIG. 4, except that the allocation of bits following the quadratic 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.
  • the masking threshold M (J) of the sub-band j is defined by the convolution of the energy envelope ⁇ 2 (J) -rms -q (j) 2 ⁇ nb-coef (j), by a function spreading B (v).
  • this masking is performed only on the high band of the signal, with:
  • the masking threshold M (J) for a sub-band j is therefore defined by a convolution between:
  • FIG. 5 An advantageous spreading function is that shown in FIG. 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:
  • a 1 (J) and A 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.
  • the bit allocation criterion is based here on the signal-to-mask ratio given by 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.
  • normfac log ; ⁇ a 2 U) XB (V 9 - V 1 )
  • log_ mask (j) log 2 [M (J)) - normfac.
  • the second line of the brace for the calculation of 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.
  • An illustration of the standardization of the masking threshold is given in FIG. 8, showing the connection of the high band on which the masking (4-7 kHz) is applied to the low band (0-4 kHz).
  • a 0 1 is obtained by dichotomy as in the G.729.1 standard.
  • the standardization of the masking threshold can be rather carried out from the value of the band.
  • normfac log 2 ⁇ ⁇ 2 (j) x ⁇ (v 10 -v ; )
  • the masking threshold can be calculated over the entire frequency band, with:
  • 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 B (V 10 - V 1 )
  • 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 the 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.
  • FIGS. 9A and 9B This second embodiment is illustrated in FIGS. 9A (for encoding) and 10A (for decoding).
  • FIGS. 9B A variant of this second mode, which is the object of the present invention, in particular for the decoding performed, is illustrated in FIGS. 9B (for encoding) and 10B (for decoding).
  • FIGS. 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.
  • the masking threshold is calculated (block 905 of FIG. 9A and block 906b of FIG. 9B) from the unquantized spectral envelope.
  • information representative of the weighting is directly coded by the masking threshold M (J), rather than encoding the spectral envelope.
  • 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 kbit / s", 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.
  • the peer decoder is shown in Figure 10A.
  • the scaling factors sf _q (j), j - 0, - - -, 17, are decoded in the block 1001.
  • the block 1002 is then carried out as described in the document Ragot et al. supra.
  • This second embodiment may be particularly advantageous especially in an implementation according to the standard 3 GPP-AMR-WB + which is presented as the preferred context of the document Ragot et al. supra.
  • the coded information remains the envelope of FIG. energy (rather than the masking threshold itself as in Figs. 9A and 10A).
  • the masking threshold is calculated and normalized (block 906b of FIG. 9B) from the coded spectral envelope (block 905b).
  • the masking threshold is calculated and normalized (block 1011b of FIG. 10B) from the decoded spectral envelope (block 1001b), the decoding of the envelope making it possible to perform a level adjustment (block 1010b of FIG. 10B) from the values quantified 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 FIG. 9A can, by calculating the spectral envelope, determine whether the signal is tonal or not and thus Block 905 is bypassed if yes.
  • the module 904 can make it possible to determine whether the signal is tonal or not and thus bypass the block 907 in the affirmative.
  • Figure 11 generalizes 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 is thus generalized to the case where the high band has more subbands or covers a wider frequency range than in the G.729.1 standard.
  • a first transform T1 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 hierarchical coder is implemented with a heart coder in a first frequency band, and the error signal associated with this heart 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.
  • the original signal can be sampled at 16 kHz and decomposed into two frequency bands (from 0 to
  • the encoder can typically be, in such an embodiment, an encoder according to the standard
  • the transform coding is then performed on: the signal difference between the original signal and the synthesis G.711 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).
  • the perceptual weighting in the low band is not necessary for the application of the invention.
  • 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 signal difference between the original signal and the synthesis signal G.122 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).
  • 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 distinct 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.
  • FIGS. 7, 10A, 10B can constitute flowcharts of this second computer program, or further illustrate the structure of such a decoder, according to different embodiments and variants.

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

Codage/décodage perfectionnés de signaux audionumériques Advanced coding / decoding of digital audio signals
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 Prédiction"), 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 PCM (for "Coded Pulse Modulation") and ADPCM (for "Pulse Modulation and Adaptive Differential Coding"), also known as "PCM" "and" ADPCM "in English, the methods of parametric coding by synthesis analysis as coding CELP (for" Code Excited Linear Prediction "), and - perceptual coding 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 Prédiction Coding"). On met en œuvre 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 Prédiction"), 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'échantillonnage, et - Fo 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 - Fo 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 œuvre 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 normalisé 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 decoder. Examples of such systems are the ITU-T G.711 64 kbit / s standard encoding, the ITU-T G.729 8 kbit / s standard encoding, or the 12.2 kbit / s GSM-EFR encoding.
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 œuvre 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 cœur 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 codées 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.l (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) enhancement (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 bit rate and bandwidth), the 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, p. 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 codée à bas débit (fixe), qualifié de « codée cœur », 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-rate (fixed) codec, known as a "core coded", which guarantees the minimum quality of the coding. 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 cœur 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.More specifically, the scalable bandwidth and scalability encoding techniques are described below, with a CELP core-type coder, in 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 à cœur 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 codée 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-shaped hierarchical encoder producing a bandwidth ranging from narrow band (50-4000 Hz) to wide band (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 shown schematically in FIG. 1. The broadband input signal s wb , sampled at 16 kHz, is first broken down 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 filtré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 (i.e. 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 typeAn important feature of the G.729.1 encoder according to Figure 1 is as follows. 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 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.TDAC for "Time Domain Aliasing Cancellation" in the G.729.1 standard) is carried out at block 110. With reference to FIG. 1, it can be seen in particular that the TDAC encoding is applied to both the error signal on the band. bass and the filtered signal 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 multiplexes 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. Le codée G.729.1 a donc une architecture en trois étapes de codage comprenant :The different bit streams 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 codec therefore has a three-step coding architecture comprising:
- le codage CELP en cascade,- cascading CELP coding,
- 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 Discrète Cosine Transform » ou « transformation en cosinus discrète modifiée »).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 (for "Modified Discrete Cosine Transform") transformation; "Modified discrete cosine 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 homologous decoder according to the G.729.1 standard is illustrated in FIG. 2. The bits describing each 20 ms frame are demultiplexed in the 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 swb , é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 extended band output signal s wb , sampled at 16 kHz, is obtained via the QMF synthesis filter bank (blocks 209, 210, 211, 212 and 213) integrating 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. 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^3 du signal de différence, filtré perceptuellement, et le spectre MDCT SHB du signal original de la bande haute.The TDAC type transform coding in the G.729.1 encoder is illustrated in FIG. 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 (block 301 and 302) to obtain: - the MDCT spectrum D ^ 3 of the difference signal, perceptually filtered, and the MDCT spectrum S HB of the original signal of 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 :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:
[F(O) 7(l)-r(319)] = [D^ (O) D^ (I) - D^ (159) SHB (0) SHB (\) - - - SHB (\59)][F (O) 7 (1) -r (319)] = [D 1 (O) D 1 (I) -D 1 (159) S HB (O) S HB (1) - - - S HB (\) 59)]
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) . Thus, a sub-band j comprises the coefficients Y (k) with sb-bound (j) <k <sb-bound (j + 1).
Tableau 1 : Limites et taille des sous-bandes en codage TDACTable 1: TDAC Encoding Boundary Limits and Size
L'enveloppe spectrale JlOg-ZmS(J)J _o π est calculée dans le bloc 304 suivant la formule :The spectral envelope JlOg-ZmS (J) J _ o π is calculated in block 304 according to the formula:
1 1 sb boundj j +I)-I log_rms(j) = -log2 ∑ Y(kf+εrj , j = 0,...,\7 nb_coef(j) t=a •b_bound(j) où <ç _ = 2 . L'enveloppe spectrale est codée à débit variable dans le bloc 305. Ce bloc 305 produit des valeurs quantifiées, entières, notées rms _index(j) (avec J=O,..., 17), obtenues par simple quantification scalaire : rms _ index(j) = round (2 • log_ rms (J)) où la notation « round » désigne l'arrondi à l'entier le plus proche, et avec la contrainte :1 1 sb boundj j + I) -I log_rms (j) = -log 2 Σ Y (kf + ε rj , j = 0, ..., \ 7 nb_coef (j) t = a • b_bound (j) where < ç _ = 2. The spectral envelope is coded at variable rate in block 305. This block 305 produces quantized values, integer, denoted rms _index (j) (with J = 0, ..., 17), obtained by simple scalar quantization: rms _ index (j) = round (2 • log_rms (J)) where the notation "round" designates the rounding to the nearest integer, and with the constraint:
- 11 ≤ rms _ index(j) ≤ +20 Cette valeur quantifiée rms _index(j) est transmise au bloc d'allocation de bits 306.This value rms _index (j) is transmitted to 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.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 may be chosen according to a given criterion, and, more precisely, the rms values _index (j): may be coded by "differential Huffman" coding, - or may be coded by natural binary coding .
Un bit (0 ou 1) est transmis au décodeur pour indiquer le mode de codage qui a été choisi.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 multiplexes et structurés en un train binaire hiérarchique au bloc de multiplexage 308. * Rappel sur le décodeur par transformée dans le décodeur G.729.1The 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. * 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. 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 (multiplexe) et en déduit l'enveloppe décodée : rms _q(j) = 2'A m"-mdexϋ) The step of TDAC-type transform decoding in the G.729.1 decoder is illustrated in FIG. 4. In a symmetrical manner to the encoder (FIG. 3), the decoded spectral envelope (block 401) makes it possible to recover the allocation. bits (block 402). 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 block 305 (multiplexed) and deduce the decoded envelope: rms _q (j) = 2 'A m "- mdexϋ)
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 non-transmitted sub-bands, 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. 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^B du signal de différence décodé en bande basse, filtré perceptuellement, et 160 coefficients suivants correspondant au spectre SHB du signal original décodé en bande haute.After upgrading this spectrum (block 405) according to the spectral envelope and post-processing (block 406), the spectrum MDCT is separated into two (block 407): with 160 first coefficients corresponding to the spectrum D ^ B of a decoded difference signal in low band, perceptually filtered, and 160 subsequent coefficients corresponding to the spectrum S HB of the original decoded signal in high band.
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é W18 (Z) 1 ) est appliquée au signal d™B (bloc 409) résultant de la transformée inverse. 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).These two spectra are transformed into inverse MDCT transform time signals, denoted IMDCT (blocks 408 and 410), and the inverse perceptual weighting (filter denoted W 18 (Z) 1 ) is applied to the resulting signal of B (block 409). of the inverse transform. The sub-bit allocation (block 306 of FIG. 3 or block 402 of FIG. 4) is described more particularly below.
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 rms values _index (j), j = 0, ..., 17. It is therefore sufficient to describe only the operation of 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 : nbits VQ = 351- nbits _ rms , où nbits _ rms est le nombre de bits utilisés par le codage de l'enveloppe spectrale.The purpose of the bit allocation is to distribute between each of the sub-bands a certain bit budget (variable) denoted nbits VQ, with: nbits VQ = 351- nbits_rms, 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 :The result of the allocation is the integer number of bits, denoted nbit (j) (with j = 0, ..., 17), allocated to each of the sub-bands with as global constraint:
17 ∑nbit(j) ≈ nbits _VQ17 Σnbit (j) ≈ nbits _VQ
Dans la norme G.729.1, les valeurs nbit(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.In the G.729.1 standard, the nbit (j) values (/=0,...,17) are further constrained by the fact that nbit (j) must be selected from a reduced set of values specified in Table 2 hereinafter.
Taille de la Ensemble des valeurs autorisées nbit(j) (en nombre de bits) sous-bande jSize of the Set of Allowed Values nbit (j) (in number of bits) subband j
nb_coef(j)nb_coef (j)
R g -{0,7,10,12,13,14,15,16}R g - {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,3216 R 16 - {0,9,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30, 31,32
Tableau 2 : Valeurs possibles de nombre de bits alloués dans les sous-bandes TDAC. L'allocation dans la nonne G.729.1 repose sur une "importance perceptuelle" par sous- bande liée à l'énergie de la sous-bande, notée ip(j) (/=0..17), définie comme suit :Table 2: Possible values of number of bits allocated in TDAC subbands. The allocation in the G.729.1 standard is based on a "perceptual importance" per subband related to the energy of the subband, denoted ip (j) (/=0..17), defined as follows:
ψ(j) = -Iog2(rms _q(jf x nb_coef (j)) + offsetψ (j) = -Iog 2 (rms _q (jf x nb_coef (j)) + offset
où offset = -2.where offset = -2.
Puisque les valeurs rms _q(j) = 2Y2 rms-mdex(}) , cette formule se simplifie sous la forme :Since the rms values _q (j) = 2 Y2 rms - mdex (}) , this formula is simplified as:
— rms _index(j) pour j = 0,...,16 ip(j) =- rms _index (j) for j = 0, ..., 16 ip (j) =
— {rms _index(j) -\) pour j = 11- {rms _index (j) - \) for j = 11
A partir de l'importance perceptuelle de chaque sous-bande, l'allocation nbit(j) est calculée comme suit : nbit(j) = arg reR m , in nb_ coef(j) x (ip(j) - Â )- rFrom the perceptual importance of each sub-band, the allocation nbit (j) is computed as follows: nbit (j) = arg rR m, in nb_ coef (j) x (ip (j) -A) - r
où λ est un paramètre optimisé par dichotomie.where λ 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/γl)/Â(z/γ2) où 0 < γ2 < γl < 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 <γl <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^B et SHB sont accolés (bloc 303 de la figure 3), le filtre WLB (z) est défini sous la forme :However, to ensure spectral continuity when the D ^ B and S HB spectra are contiguous (block 303 of Figure 3), the W LB (z) filter is defined as:
A{z l γ2)A {z l γ2)
avec γi = 0,96, γ2 = 0,6 et fac = with γi = 0.96, γ 2 = 0.6 and fac =
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/γl)/Â(z/γ2) compensé en gain (assurant une continuité spectrale), et - la bande haute qui contient le signal bande haute original.In the G.729.1 standard, the TDAC encoder jointly processes: the difference signal, between the original low band and the CELP synthesis, perceptually filtered by a λ (z / γ1) / λ (z / γ2) compensated filter. gain (ensuring spectral continuity), and - the high band which contains the original high band signal.
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.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). 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.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). 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é, 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, 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'affecter 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 assign the bits to the sub-bands which 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. 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 cœur du codeur hiérarchique, et la deuxième sous-bande comporte un signal original.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. 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 comprises an original signal.
Comme dans le codeur G.729.1, le signal issu du codage de cœur peut être pondéré perceptuellement et la mise en œuvre 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 cœur 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 œuvre 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"). . It will be seen, with reference to FIG. 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, starting from a decoded spectral envelope, and a normalization of 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 œuvre 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 1OB.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 FIG.
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,Moreover, other advantages and characteristics of the invention will emerge on examining the detailed description, given by way of example below, and the appended drawings in which, in addition to FIGS. 1 to 4 presented above: FIG. 5 illustrates an advantageous spreading function for masking in the sense of the invention; FIG. 6 illustrates, for comparison with FIG. 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, FIG. 7 illustrates, for comparison with FIG. 4, the structure of a homologous TDAC decoding of FIG. 6, using a curve calculation 702 according to the first embodiment of the 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 1OB 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).FIG. 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, FIG. 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, FIG. 9B illustrates the structure of a TDAC encoding in a variant of the second application mode illustrated in FIG. 9A, here with a coding of the spectral envelope; FIG. 10A illustrates the structure of a homologous TDAC decoding of FIG. 9A, according to the second embodiment application of the invention, FIG. 1B illustrates the structure of a homologous TDAC decoding of FIG. 9B, according to the second embodiment of the invention, with here a calculation of the decoding masking threshold, FIG. 11 illustrates the normalization of the curve. in a second embodiment of the invention where the sampling frequency is 32 kHz and the masking of the invention applied for the high band widened from 4 to 14 kHz, and FIG. 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 is described below which proves to be advantageous but not limiting in an encoder / decoder according to the G.729.1 standard described above with reference to FIGS. 1 to 4, incorporating, according to the invention, a piece of information masking.
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 codée 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", Y. Mahieux, JP Small, 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 / en Hertz, en « fréquences » notées υ (en Barks), est donnée par la relation suivante :An example of such a spreading function is shown in FIG. 5. This function is defined in a frequency domain whose unit is Bark. The frequency scale is representative of the frequency sensitivity of the ear. A usual approximation of the conversion of a frequency / in Hertz, in "frequencies" noted υ (in Barks), is given by the following relation:
υ = υ =
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).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 œuvre.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. 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/γl)/Â(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 which 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 œuvre 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 cœur (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. The coding and decoding have the same architecture as that shown in FIGS. 1 and 2. Here, only blocks 110 and 203 are modified as described in FIGS. 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 hereinafter with reference to FIG. 6, the modified TDAC coder is identical to that of FIG. 3, except that the allocation of bits following the quadratic 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.Likewise, the modified TDAC decoder is shown in FIG. 7 in this first embodiment. This decoder is identical to that of FIG. 4, except that the allocation of bits following the quadratic 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 rms values _index (j), j = 0, ..., 17. Similarly, blocks 607 and 703 perform an identical operation from log_ mask (j) values. 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 x 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 :The masking threshold M (J) of the sub-band j is defined by the convolution of the energy envelope σ 2 (J) -rms -q (j) 2 × nb-coef (j), by a function spreading 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:
1717
M{j) = ∑ σ2 {k) x B{v] - vk ) i = 10 où vk est la fréquence centrale de la sous-bande k en Bark, le signe « x » désignant « multiplié par », avec la fonction d'étalement décrite ci-après. 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 :M {j) = Σ σ 2 {k) x B {v ] - v k ) i = 10 where v k is the central frequency of the sub-band k in Bark, the sign "x" denoting "multiplied by", with the spreading function described below. In more generic terms, the masking threshold M (J) for a sub-band j is therefore defined by a convolution between:
- une expression de l'enveloppe spectrale, etan expression of the spectral envelope, and
- une fonction d'étalement faisant intervenir une fréquence centrale de la sous-bande j.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 -lOdB/Bark pour la deuxième. Cette représentation de la fonction d'étalement permet le calcul itératif de la courbe de masquage suivant :An advantageous spreading function is that shown in FIG. 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" (10) j - 10M " (10) j - 10
M (j) = M+ (j) + M (j) + σ2 (j) j = l,..,l6M (j) = M + (j) + M (j) + σ 2 (j) j = 1, .., 16
M+ [Il) J = V ouM + [Il] J = V or
M + (j) = σ2 (J -I) - A2 (J) + M+ (J -I) - A2 (J) y = l l,..,17 M (j) = σ2 (j + \) - A1 (J) + M- (J + I) - A1 (J) j = 10,..,16 etM + (j) = σ 2 (J-I) - A 2 (J) + M + (J-I) - A 2 (J) y = 11,., 17 M (j) = σ 2 (j) + 1) - A 1 (J) + M- (J + I) - A 1 (J) j = 10, .., 16 and
~1(V ~ 1 ( V
A2 (J) = IO vu A 2 (J) = IO seen
Les valeurs de A1(J) et A2(J) peuvent être pré-calculées et stockées.The values of A 1 (J) and A 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 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 bit allocation criterion is based here on the signal-to-mask ratio given by 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 :The perceptual importance is redefined as follows:
où offset = -2 et normfac est un facteur de normalisation calculé suivant la relation :where offset = -2 and normfac is a normalization factor calculated according to the relation:
normfac = log; ^a2 U) X B(V9 - V1 )normfac = log ; ^ a 2 U) XB (V 9 - V 1 )
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.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 :The perceptual importance redefined above is now written:
— rms _index(j) pour j = 0,...,9 ip(j) =- rms _index (j) for j = 0, ..., 9 ip (j) =
-[rms _ index(j) - log_ mask(j)] pour j = 10,...,17- [rms _ index (j) - log_ mask (j)] for j = 10, ..., 17
où log_ mask(j) = log2 [M(J)) - normfac .where log_ mask (j) = log 2 [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 œuvre 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. 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).It will be understood that the second line of the brace for the calculation of 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. An illustration of the standardization of the masking threshold is given in FIG. 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 reR m , in nb _ coef(j) x (ip(j) - λopt)- rBlocks 607 and 703 then carry out the bit allocation calculations: nbit (j) = arg rR m, in nb_coef (j) x (ip (j) - λ opt ) - r
où A0 1 est obtenu par dichotomie comme dans la norme G.729.1.where A 0 1 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 :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 = log2 ∑ σ2(j)x β(v10 -v;)normfac = log 2 Σ σ 2 (j) x β (v 10 -v ; )
/=io/ = Io
Dans une autre variante encore, le seuil de masquage peut être calculé sur l'ensemble de la bande de fréquences, avec :In another variant, the masking threshold can be calculated over the entire frequency band, with:
1717
M (j) = ∑σ2 (k)x B(v} -vk) i=0M (j) = Σσ 2 (k) x B (v ) -v k ) i = 0
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: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 = log2 - v })normfac = log 2 - v } )
J=O ou encore par sa valeur sur la première sous-bande de la bande haute :J = O or by its value on the first subband of the high band:
normfac = log2 B(V10 - V1) normfac = log 2 B (V 10 - V 1 )
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érent, 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 the 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™B , 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 normalisation 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 the low band of B , and not not the original signal itself. In fact, as illustrated in FIG. 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. same (curve in dotted 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 normalization 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 9 A (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). 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.This second embodiment is illustrated in FIGS. 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 in FIGS. 9B (for encoding) and 10B (for decoding). In Figs. 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 FIG. 9A and block 906b of FIG. 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 dej = 10 et jusqu'à j = 17.In the embodiment of FIG. 9A, information representative of the weighting is directly coded by the masking threshold M (J), rather than encoding the spectral envelope. In practice, in this embodiment, the scaling factors sf (j) are coded only from j = 10 to j = 17.
En effet, les facteurs d'échelle sont donnés par : 5/"(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) = JMj]) , pour J = 10, ..., 17.Indeed, the scale factors are given by: 5 / " (j) - 1, for j = 0, • • •, 9, on the low band, and by the square root of the standardized masking threshold M (J ), for the high band, Sf (J) = JMj]), for J = 10, ..., 17.
Ainsi, il n'est pas besoin de coder les facteurs d'échelle pourj = 0,...,9 et l'on ne code les facteurs d'échelle que pourj =10, ...,17.Thus, it is not necessary to code the scale factors for j = 0, ..., 9 and the scaling factors are only coded for j = 10, ..., 17.
En référence à la figure 9 A encore, l'information correspondant aux facteurs d'échelle sf(j) , pour y = 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.Referring again to FIG. 9A, the information corresponding to the scaling factors sf (j), for y = 10, • • •, 17, may be encoded (block 906) by a packet envelope coding technique. same type as that used in the G.729.1 encoder (block 305 of FIG. 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 = O,- - -,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 - Montréal (Canada), Pages: 501-504, vol.l (2004).The spectrum Y (k) is then divided (block 907) by the decoded scale factors, sf _q (j), J = 0, - - -, before the so-called "gain-shape" type coding (of the 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 kbit / s", S. Ragot, B. Bessette, and R. Lefebvre, Proceedings ICASSP - Montreal (Canada), Pages: 501-504 , vol. 1 (2004).
Cette méthode quantification de type gain-forme est mise en œuvre en particulier dans la norme 3GPP AMR- WB+.This gain-form type quantization method is implemented in particular in the 3GPP AMR-WB + standard.
Le décodeur homologue est illustré à la figure 1OA. 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 Figure 10A. The scaling factors sf _q (j), j - 0, - - -, 17, are decoded in the block 1001. The block 1002 is then carried out as described in the document 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 FIG. 10A) follows the same principle as in the G.729.1 decoder (block 404 of FIG. 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 FIG. 4. However, scale factors sf _q (j), j = 0, - - -, 17, are used in place of the envelope spectral decoded, 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 3 GPP- 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 especially in an implementation according to the standard 3 GPP-AMR-WB + which is presented as 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 9 A et 10A).In a variant of this second embodiment, as shown in FIGS. 9B and 10B (the same references in FIGS. 9A and 9B, and 10A and 10B, designating the same elements), the coded information remains the envelope of FIG. energy (rather than the masking threshold itself as in Figs. 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 FIG. 9B) from the coded spectral envelope (block 905b). At decoding, the masking threshold is calculated and normalized (block 1011b of FIG. 10B) from the decoded spectral envelope (block 1001b), the decoding of the envelope making it possible to perform a level adjustment (block 1010b of FIG. 10B) from the values quantified 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 œuvre 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 FIG. 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 œuvre 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 :Thus, an advantage of "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:
— rms _ index(j) pour j - 0..9 ip(j) =- rms _ index (j) for j - 0..9 ip (j) =
— [rms _ index(j) - log_ mask(j)] pour 7 = 10..17- [rms _ index (j) - log_ mask (j)] for 7 = 10..17
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 :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:
— rms _ index(j) pour j - 0,...,16 ip(j) =- rms _ index (j) for j - 0, ..., 16 ip (j) =
— {rms _ index(j) - 1) pour j = 17- {rms _ index (j) - 1) for j = 17
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 FIG. 9A can, by calculating the spectral envelope, determine whether the signal is tonal or not and thus Block 905 is bypassed if yes. Likewise, for the embodiment described in FIG. 9B, the module 904 can make it possible to determine whether the signal is tonal or not and thus 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.Figure 11 generalizes 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 in FIG. 11, is thus generalized to the case where the high band has more subbands or covers a wider frequency range than in the G.729.1 standard.
En référence à la figure 11, sur la bande basse entre 50 Hz et 4 kHz, une première transformée Tl 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 FIG. 11, on the low band between 50 Hz and 4 kHz, a first transform T1 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 œuvre 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 œuvre de l'invention. Dans une variante, le codeur hiérarchique est mis en œuvre avec un codeur cœur dans une première bande de fréquences, et le signal d'erreur associé à ce codeur cœur 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 à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 one variant, the hierarchical coder is implemented with a heart coder in a first frequency band, and the error signal associated with this heart 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. For example, the original signal can be sampled at 16 kHz and decomposed into two frequency bands (from 0 to
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 norme4000 Hz and 4000 to 8000 Hz) by a suitable filter bank, type QMF. The encoder can typically be, in such an embodiment, an encoder according to the standard
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).G.711 (with PCM compression). The transform coding is then performed on: the signal difference between the original signal and the synthesis G.711 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.122 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 signal difference between the original signal and the synthesis signal G.122 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 œuvre 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. 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 et/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 œuvre du procédé de décodage défini ci-avant, lorsque ces instructions sont exécutées par un processeur du décodeur.It will be understood that FIGS. 6, 9A and 9B may constitute flowcharts of this first computer program, or further illustrate the structure of such an encoder, according to distinct 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.
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, 1OA, 1OB 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 FIGS. 7, 10A, 10B can constitute flowcharts of this second computer program, or further illustrate the structure of such a decoder, according to different embodiments and variants.

Claims

REVENDICATIONS
1. 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 (601, 602 ; 901, 902), caractérisé en ce que, pour appliquer une pondération perceptuelle, dans le domaine transformé, au moins à la deuxième sous-bande, le procédé comporte : une détermination d'au moins un seuil de masquage fréquentiel (606 ; 905 ; 906b) à 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.A method of encoding a multi-subband signal, wherein at least one adjacent first and second sub-bands are transform coded (601, 602, 901, 902), characterized in that, for applying a perceptual weighting in the transformed domain to at least the second subband, the method comprises: determining at least one frequency masking threshold (606; 905; 906b) to be applied to the second subband; and - normalizing said masking threshold to ensure spectral continuity between said first and second subbands.
2. Procédé selon la revendication 1, dans lequel un nombre de bits à allouer à chaque sous-bande est déterminé à partir d'une enveloppe spectrale, caractérisé en ce que l'allocation des bits (607) 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 (606).The method of claim 1, wherein a number of bits to be allocated to each subband is determined from a spectral envelope, characterized in that the bit allocation (607) for the second subband is minus is further determined based on a normalized masking curve calculation applied at least to the second subband (606).
3. Procédé selon la revendication 2, dans lequel le codage est effectué sur plus de deux sous-bandes, la première sous-bande étant incluse dans une première bande spectrale et la deuxième sous-bande étant incluse dans une deuxième bande spectrale, caractérisé en ce que le nombre de bits par sous-bande nbit(j) est donné, pour chaque sous-bande d'indice j, en fonction d'une importance perceptuelle ip(j) calculée à partir d'une relation du type :The method of claim 2, wherein the coding is performed 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, as a function of a perceptual importance ip (j) calculated from a relation of the type:
- ip(j) = — rms _index(j) , si j est un indice de sous-bande dans la première bande, et- ip (j) = - rms _index (j), if j is a subband index in the first band, and
- ip(j) = — [rms _index(j) -log_mask(j)] , si j est un indice de sous-bande dans la- ip (j) = - [rms _index (j) -log_mask (j)], if j is a subband index in the
deuxième bande, avec log_ mask(j) - log2 [M(J)) - normfac , où : rms _index(j) sont des valeurs quantifiées issues du codage de l'enveloppe, pour la sous-bande j,second band, with log_ mask (j) - log 2 [M (J)) - normfac, where: rms _index (j) are quantized values from the envelope encoding, for subband j,
M(j) est le seuil de masquage pour ladite sous-bande d'indice j, et normfac est un facteur de normalisation déterminé pour assurer la continuité spectrale entre lesdites première et deuxième sous-bandes.M (j) is the masking threshold for said subband of index j, and normfac is a normalization factor determined to ensure spectral continuity between said first and second subbands.
4. Procédé selon la revendication 1, caractérisé en ce que le signal transformé, dans la deuxième sous-bande, est pondéré (905) par un facteur proportionnel à la racine carrée du seuil de masquage normalisé pour la deuxième sous-bande.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. Procédé selon la revendication 4, dans lequel le codage est effectué sur plus de deux sous-bandes, la première sous-bande étant incluse dans une première bande spectrale et la deuxième sous-bande étant incluse dans une deuxième bande spectrale, caractérisé en ce que l'on code (906) des valeurs de pondération de JM ( j) , où M ( j) est le seuil de masquage normalisé pour une sous-bande d'indice j, incluse dans la deuxième bande spectrale.The method of claim 4 wherein the coding is performed 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 what is coded (906) of the weighting values of JM (j), where M (j) is the normalized masking threshold for a subband of index j included in the second spectral band.
6. Procédé selon l'une des revendications précédentes, caractérisé en ce que le codage par transformée intervient dans une couche supérieure (110) d'un codeur hiérarchique, - la première sous-bande comportant un signal (d™B ) issu d'un codage de cœur (105) du codeur hiérarchique, - et la deuxième sous-bande comportant un signal original (SHB)-6. Method according to one of the preceding claims, characterized in that the transform coding intervenes in an upper layer (110) of a hierarchical coder, the first subband comprising a signal (d ™ B ) issued from a core coding (105) of the hierarchical coder, and the second subband including an original signal (S HB ) -
7. Procédé selon la revendication 6, caractérisé en ce que le signal ( dJB ) issu du codage de cœur est pondéré perceptuellement (600 ; 900).7. Method according to claim 6, characterized in that the signal (dJ B ) from the core coding is perceptually weighted (600; 900).
8. Procédé selon l'une des revendications 6 et 7, caractérisé en ce que le signal (d™B ) issu du codage de cœur est un signal représentatif d'une différence entre un signal original et une synthèse de ce signal original. 8. Method according to one of claims 6 and 7, characterized in that the signal (d ™ B ) from the core coding is a signal representative of a difference between an original signal and a synthesis of this original signal.
9. Procédé selon l'une des revendications 6 à 8, caractérisé en ce que le codage par transformée est de type TDAC dans un codeur global selon la norme G.729.1, et en ce que la première sous-bande est incluse dans une bande de basses fréquences (Tl), tandis que la deuxième sous-bande est incluse dans une bande de hautes fréquences.9. Method according to one of claims 6 to 8, characterized in that the transform coding is TDAC type in a global encoder according to the G.729.1 standard, and in that the first subband is included in a band. low frequency (Tl), while the second subband is included in a high frequency band.
10. Procédé selon la revendication 9, caractérisé en ce que la bande de hautes fréquences s'étend jusqu'à 7000 Hz (T2), au moins (T3).10. The method of claim 9, characterized in that the high frequency band extends up to 7000 Hz (T2), at least (T3).
11. Procédé selon l'une des revendications précédentes, dans lequel une enveloppe spectrale est calculée (604 ; 904), caractérisé en ce que le seuil de masquage, pour une sous-bande, est défini par une convolution entre : - une expression de l'enveloppe spectrale, et une fonction d'étalement faisant intervenir une fréquence centrale de ladite sous- bande.11. Method according to one of the preceding claims, in which a spectral envelope is calculated (604; 904), characterized in that the masking threshold, for a sub-band, is defined by a convolution between: the spectral envelope, and a spreading function involving a central frequency of said subband.
12. Procédé selon l'une des revendications précédentes, dans lequel on obtient une information (305) selon laquelle le signal à coder est tonal ou non tonal, caractérisé en ce que la pondération perceptuelle de la deuxième sous-bande, avec la détermination du seuil de masquage et la normalisation, ne sont menées que si le signal est non tonal.12. Method according to one of the preceding claims, wherein one obtains an information (305) 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 normalization, are conducted only if the signal is non-tonal.
13. Procédé de décodage d'un signal en plusieurs sous-bandes, dans lequel au moins une première et une deuxième sous-bande, adjacentes, sont décodées par transformée (709, 711 ; 1007, 1009), caractérisé en ce que, pour appliquer une pondération perceptuelle, dans le domaine transformé, au moins à la deuxième sous-bande, le procédé comporte : une détermination d'au moins un seuil de masquage fréquentiel (702 ; 1001 ;A method of decoding a multi-subband signal, wherein at least one adjacent first and second sub-bands are decoded by transform (709, 711; 1007, 1009), characterized in that, for applying a perceptual weighting in the transformed domain to at least the second subband, the method comprises: determining at least one frequency masking threshold (702; 1001;
1011b) à 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. 1011b) to be applied on the second subband, from a decoded spectral envelope, and - a normalization of said masking threshold to ensure spectral continuity between said first and second subbands.
14. Procédé selon la revendication 13, dans lequel un nombre de bits à allouer à chaque sous-bande (703) est déterminé à partir d'un décodage d'enveloppe spectrale (701), caractérisé en ce que l'allocation des bits (703) pour la deuxième sous-bande au moins est déterminée en outre en fonction d'un calcul de courbe de masquage normalisé (702), appliqué au moins à la deuxième sous-bande.The method of claim 13, wherein a number of bits to be allocated to each sub-band (703) is determined from a spectral envelope decoding (701), characterized in that the bit allocation ( 703) for at least the second subband is further determined based on a normalized masking curve calculation (702) applied at least to the second subband.
15. Procédé selon la revendication 13, caractérisé en ce que le signal transformé, dans la deuxième sous-bande, est pondéré (1004) par un facteur proportionnel à la racine carrée du seuil de masquage normalisé pour la deuxième sous-bande.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. 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, caractérisé en ce qu'il comporte des instructions pour la mise en œuvre du procédé de codage selon l'une des revendications 1 à 12 lorsque lesdites instructions sont exécutées par un processeur du codeur.16. Computer program, stored in a memory of an encoder of a telecommunications terminal and / or stored on a storage medium intended to cooperate with a reader of said encoder, characterized in that it comprises instructions for the implementation encoding method according to one of claims 1 to 12 when said instructions are executed by an encoder processor.
17. Codeur, caractérisé en ce qu'il comporte au moins une mémoire stockant un programme informatique selon la revendication 16.17. Encoder, characterized in that it comprises at least one memory storing a computer program according to claim 16.
18. Programme informatique, stocké dans une mémoire d'un décodeur d'un terminal de télécommunication et/ou stocké sur un support mémoire destiné à coopérer avec un lecteur dudit décodeur, caractérisé en ce qu'il comporte des instructions pour la mise en œuvre du procédé de décodage selon l'une des revendications 13 à 15 lorsque lesdites instructions sont exécutées par un processeur du décodeur.18. Computer program, stored in a memory of a decoder of a telecommunications terminal and / or stored on a storage medium intended to cooperate with a reader of said decoder, characterized in that it comprises instructions for the implementation of the decoding method according to one of claims 13 to 15 when said instructions are executed by a processor of the decoder.
19. Décodeur, caractérisé en ce qu'il comporte au moins une mémoire stockant un programme informatique selon la revendication 18. 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 true EP2115741A1 (en) 2009-11-11
EP2115741B1 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
WO2008022181A2 (en) * 2006-08-15 2008-02-21 Broadcom Corporation Updating of decoder states after packet loss concealment
CA2730232C (en) * 2008-07-11 2015-12-01 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. An apparatus and a method for decoding an encoded audio signal
KR101278546B1 (en) * 2008-07-11 2013-06-24 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. An apparatus and a method for generating bandwidth extension output data
US8532983B2 (en) * 2008-09-06 2013-09-10 Huawei Technologies Co., Ltd. Adaptive frequency prediction for encoding or decoding an audio signal
US8532998B2 (en) * 2008-09-06 2013-09-10 Huawei Technologies Co., Ltd. Selective bandwidth extension for encoding/decoding audio/speech signal
US8515747B2 (en) * 2008-09-06 2013-08-20 Huawei Technologies Co., Ltd. Spectrum harmonic/noise sharpness control
US8577673B2 (en) * 2008-09-15 2013-11-05 Huawei Technologies Co., Ltd. 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
WO2010093224A2 (en) * 2009-02-16 2010-08-19 한국전자통신연구원 Encoding/decoding method for audio signals using adaptive sine wave pulse coding and apparatus thereof
FR2947944A1 (en) * 2009-07-07 2011-01-14 France Telecom PERFECTED CODING / DECODING OF AUDIONUMERIC SIGNALS
KR101425290B1 (en) * 2009-10-08 2014-08-01 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. Multi-Mode Audio Signal Decoder, Multi-Mode Audio Signal Encoder, Methods and Computer Program using a Linear-Prediction-Coding Based Noise Shaping
WO2011048820A1 (en) * 2009-10-23 2011-04-28 パナソニック株式会社 Encoding apparatus, decoding apparatus and methods thereof
WO2011121782A1 (en) * 2010-03-31 2011-10-06 富士通株式会社 Bandwidth extension device and bandwidth extension method
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
MY183707A (en) 2010-07-02 2021-03-09 Dolby Int Ab Selective post filter
US9236063B2 (en) * 2010-07-30 2016-01-12 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for dynamic bit allocation
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
CN103493131B (en) * 2010-12-29 2016-11-16 三星电子株式会社 For the equipment encoded/decoded for high frequency bandwidth extension and method
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
US9489962B2 (en) * 2012-05-11 2016-11-08 Panasonic Corporation Sound signal hybrid encoder, sound signal hybrid decoder, sound signal encoding method, and sound signal decoding method
ES2613747T3 (en) 2013-01-08 2017-05-25 Dolby International Ab Model-based prediction in a critically sampled filter bank
US10043528B2 (en) * 2013-04-05 2018-08-07 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
US10204630B2 (en) * 2013-10-22 2019-02-12 Electronics And Telecommunications Research Instit Ute Method for generating filter for audio signal and parameterizing device therefor
KR101498113B1 (en) * 2013-10-23 2015-03-04 광주과학기술원 A apparatus and method extending bandwidth of sound signal
EP3913628A1 (en) 2014-03-24 2021-11-24 Samsung Electronics Co., Ltd. High-band encoding method
ES2761681T3 (en) * 2014-05-01 2020-05-20 Nippon Telegraph & Telephone Encoding and decoding a sound signal
CN107077855B (en) 2014-07-28 2020-09-22 三星电子株式会社 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
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
EP3483886A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Selecting pitch lag
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
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
EP3483880A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Temporal noise shaping
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
EP3483884A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Signal filtering
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
CA2185745C (en) * 1995-09-19 2001-02-13 Juin-Hwey Chen Synthesis of speech signals in the absence of coded parameters
US5790759A (en) * 1995-09-19 1998-08-04 Lucent Technologies Inc. Perceptual noise masking measure based on synthesis filter frequency response
EP1080542B1 (en) * 1998-05-27 2006-09-06 Microsoft Corporation System and method for masking quantization noise of audio signals
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
US7752052B2 (en) * 2002-04-26 2010-07-06 Panasonic Corporation Scalable coder and decoder performing amplitude flattening for error spectrum estimation
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
WO2006049205A1 (en) * 2004-11-05 2006-05-11 Matsushita Electric Industrial Co., Ltd. Scalable decoding apparatus and scalable encoding apparatus
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2008104663A1 *

Also Published As

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

Similar Documents

Publication Publication Date Title
EP2115741B1 (en) Advanced encoding / decoding of audio digital signals
EP2452336B1 (en) Improved coding /decoding of digital audio signals
EP2452337B1 (en) Allocation of bits in an enhancement coding/decoding for improving a hierarchical coding/decoding of digital audio signals
EP1989706B1 (en) Device for perceptual weighting in audio encoding/decoding
JP5161069B2 (en) System, method and apparatus for wideband speech coding
EP1905010B1 (en) Hierarchical audio encoding/decoding
EP1692689B1 (en) Optimized multiple coding method
EP2005424A2 (en) Method for post-processing a signal in an audio decoder
FR2737360A1 (en) Audio digital signal coding method of successive sample blocks - using spectral analysis to select vector dictionary for each sample block and allocating vector and scalar quantisation bits

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: ES

Payment date: 20230201

Year of fee payment: 16

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

Ref country code: DE

Payment date: 20221220

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