EP1692689A1 - Optimized multiple coding method - Google Patents

Optimized multiple coding method

Info

Publication number
EP1692689A1
EP1692689A1 EP04805538A EP04805538A EP1692689A1 EP 1692689 A1 EP1692689 A1 EP 1692689A1 EP 04805538 A EP04805538 A EP 04805538A EP 04805538 A EP04805538 A EP 04805538A EP 1692689 A1 EP1692689 A1 EP 1692689A1
Authority
EP
European Patent Office
Prior art keywords
coders
encoder
coding
block
functional blocks
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
EP04805538A
Other languages
German (de)
French (fr)
Other versions
EP1692689B1 (en
Inventor
David Virette
Claude Lamblin
Abdellatif Benjelloun Touimi
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
Priority to PL04805538T priority Critical patent/PL1692689T3/en
Publication of EP1692689A1 publication Critical patent/EP1692689A1/en
Application granted granted Critical
Publication of EP1692689B1 publication Critical patent/EP1692689B1/en
Not-in-force legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/002Dynamic bit allocation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0212Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes

Definitions

  • the present invention relates to the encoding / decoding of digital signals, in applications for transmission or storage of multimedia signals such as audio signals (speech and / or sounds) or video.
  • the present invention is in the context of an optimization of "multiple coding” techniques, implemented as soon as a digital signal, or a portion of this signal, is coded according to several coding techniques.
  • This multiple coding can be performed simultaneously (in one pass) or not.
  • the processes can be carried out on the same signal, or possibly on versions derived from the same signal (for example according to different bandwidths).
  • Multiple coding is, for example, in the case of the same content which is coded according to several formats and then transmitted to terminals that do not support the same coding formats. If it is a real-time broadcast, the processing should be done simultaneously. If it is a question of access to a database, the codings can be carried out one after another, delayed. In these examples, the multiple coding makes it possible to code the same signal in different formats by using several coders (or possibly several rates or several modes of the same encoder), each encoder operating independently of the other coders.
  • multi-mode coding (with reference to the selection of a "mode” of coding).
  • mode the number of coders sharing a "common past” are required to encode the same signal portion.
  • the coding techniques used may be different or from a single coding structure. However, they will not be completely independent unless they are "memory-free" techniques.
  • the coding selection is performed a priorV by an analysis of the signal on the segment under consideration (selection according to the characteristics of the signal), however, the difficulty of producing a robust classification of the signal for this selection. This has led to proposing a selection of optimal mode after encoding of all the modes, at the cost however of a high complexity.
  • the decision a priori is made from a classification of the input signal.
  • signal classification There are many methods of signal classification.
  • the encoder can switch between different modes by optimizing an objective quality measurement, the decision is therefore a posteriori based on the characteristics of the input signal, the report referred flow / SQNR (for "Signal to Quantization Noise Ratio") and the current state of the encoder.
  • a posteriori based on the characteristics of the input signal
  • the report referred flow / SQNR (for "Signal to Quantization Noise Ratio")
  • the current state of the encoder Such a coding scheme makes it possible to obtain an improvement in the quality.
  • the different codings being made in parallel, the resulting complexity of this type of system is prohibitive.
  • Other techniques combining a priori decision and a closed-loop improvement have been proposed. In the document :
  • Multimode variable bit rate speech coding an efficient paradigm for high-quality low-rate representation of speech. Das, A. DeJaco, A. Manjunath, S. Ananthapadmanabhan, A. Huang, J. Choy, E. Acoustics, Speech, and Signal Processing, 1999. ICASSP '99 Proceedings, 1999 IEEE International Conference, Volume: 4, 15-19 Mar 1999 Page (s): 2307 -2310 vol.4,
  • the proposed system makes a first selection (open-loop selection) of the mode, depending on the characteristics of the signal. This decision can be made by classification. Then, from an error measurement, if the performances of the selected mode are not satisfactory, a higher rate mode is applied and the operation is repeated (according to a decision sought in closed loop).
  • the present invention improves the situation.
  • the method of the invention comprises the following preparatory steps: a) identifying the functional blocks forming each encoder, as well as one or more functions performed by each block, b) identifying, among said functions, functions that are common to each block; one coder to another, and c) performing said common functions, once and for all, for at least a part of all the coders, within at least one same calculation module.
  • the above steps are implemented by a computer program product comprising program instructions for this purpose.
  • the present invention also relates to such a computer program product, intended to be stored in a memory of a ⁇ ⁇ mInstitut treatment, in particular a computer or mobile terminal, or on a removable memory medium and intended to cooperate with a reader of the processing unit.
  • the present invention also relates to a device for aiding in compression encoding, for implementing the method according to the invention, and then including a memory adapted to store instructions of a computer program product of the aforementioned type.
  • FIG. 1a schematically illustrates the application context of the present invention, with a plurality of encoders placed in parallel
  • FIG. 1b schematically illustrates the application of the invention, with the sharing of functional blocks between several coders in parallel
  • FIG. 1c schematically illustrates the application of the invention, with the sharing of functional blocks in multi-mode coding
  • FIG. 1d schematically illustrates the application of the invention, in trellis multi-mode coding
  • FIG. 2 schematically represents the main functional blocks of a perceptual frequency coder
  • FIG. 3 schematically represents the main functional blocks of a synthesis analysis coder
  • FIG. 4a schematically represents the main functional blocks of a TDAC coder
  • FIG. 4b diagrammatically represents the format of the bit stream coded by the coder of FIG. 4a
  • FIG. 5 diagrammatically represents the application of the invention to a plurality of TDAC coders in parallel, in an advantageous embodiment
  • FIG. 6a schematically represents the main functional blocks of an MPEG-1 (layer I and II) coder
  • FIG. 6b diagrammatically represents the format of the bitstream coded by the coder of FIG. 6a;
  • FIG. 7 diagrammatically represents the application of the invention to a plurality of MPEG-1 coders (layer I and II) connected in parallel, according to an advantageous embodiment
  • FIG. 8 shows in more detail the functional blocks of a synthesis analysis coder, here of the NB-AMR type according to the 3GPP standard.
  • FIG. 1a there is shown a plurality of encoders CO, C1,..., CN, in parallel and each receiving an input signal s 0 .
  • Each encoder comprises functional blocks BF1 to BFn for implementing successive coding steps and ultimately outputting a coded bitstream BS0, BS1, ..., BSN. It is furthermore indicated that in an application in multi-mode coding, the outputs of the coders C0 to CN are connected to an optimal mode selection module MM and the bit stream BS of the optimal coder is transmitted (dotted line arrows in the figure 1a).
  • all the coders of the example of FIG. 1a have the same number of functional blocks, but of course all these functional blocks are not necessarily provided in all the coders, in practice.
  • Some BFi function blocks are sometimes identical from one mode (or encoder) to another, while others differ only in quantizer level. Usable relationships also exist when encoders from the same coding family are used, using similar models or computing parameters physically related to the signal.
  • the invention proposes to identify the functional blocks that make up each of the coders.
  • the technical similarities between the coders are then exploited by considering the functional blocks whose functions are equivalent or similar.
  • the invention proposes: on the one hand to define so-called "common” operations, and to perform them only once for all the coders;
  • the invention proposes: on the one hand to define so-called "common” operations, and to perform them only once for all the coders;
  • calculation methods specific to each coder and in particular using the results of these common calculations These methods of calculation produce a result possibly different from that produced by a complete coding.
  • the objective is then to accelerate the processing by exploiting the information available and provided in particular by the common calculations.
  • Such methods for accelerating calculations are for example implemented in techniques intended to reduce the complexity of transcoding operations (so-called "intelligent transcoding" techniques).
  • Figure 1b illustrates the proposed solution.
  • the aforementioned "common" operations are performed once for at least one part of the coders and, preferably, for all the coders, in an independent module Ml which will redistribute the results. obtained at least part of the coders, or preferably all these coders. It is thus a sharing between at least part of all coders CO to CN (or “pooling” hereafter) of the results obtained.
  • Such an independent module M1 can be part of a device for a multiple compression coding as defined above.
  • the existing functional block or blocks BF1 to BFn of the same or more different coders is used, this or these coders being chosen according to criteria which will be described later.
  • the present invention can implement several strategies which, of course, may differ depending on the role of the functional block considered.
  • a first strategy is to use the parameters of the encoder whose bit rate is the lowest to focus the search parameters for all other modes.
  • a second strategy is to use the parameters of the encoder whose rate is the highest, then to "degrade” progressively to the encoder whose bit rate is the lowest.
  • the present invention makes it possible to reduce the complexity of the calculations preliminary to the a posteriori selection of an encoder carried out in the last step, for example by the last module MM before the transmission of the bit stream BS.
  • MSPi partial selection module
  • FIG. 1d A more sophisticated variant of the multi-mode structure based on the functional block cutting described above is now proposed, with reference to FIG. 1d.
  • the multi-mode structure of FIG. 1d is called "trellis", with several possible paths in the trellis.
  • All possible paths of the lattice are shown so that it is in a tree form.
  • each path of the trellis is defined by a combination of operating modes of the functional blocks, each functional block supplying several possible variants of the next functional block.
  • each coding mode is derived from the combination of operating modes of the functional blocks: the functional block 1 has Ni modes of operation, the functional block 2 has N 2 , and so on up to the block P.
  • the the set of NN Ni x N 2 x ... x N p possible combinations is therefore represented by a lattice of NN branches describing, end-to-end, a complete multi-mode encoder with NN modes. Some branches of the lattice may be removed a priori and thus define a tree with a reduced number of branches.
  • a first feature of this structure is that it provides, for a given functional block, a common calculation module per output of the previous functional block. These common calculation modules perform the same operations, but on the basis of different signals since they come from different previous blocks.
  • the common calculation modules of the same level are pooled: the results of a given module usable by the following modules are provided to these following modules.
  • a partial selection, made at the end of the processing of each functional block advantageously makes it possible to eliminate the less efficient branches according to the chosen criterion. It is therefore possible to reduce the number of branches of the trellis to be evaluated.
  • the chosen trellis path is the one passing through the lowest flow functional block, or the highest rate functional block according to the coding context, and the results obtained from the lowest (or highest) bit rate functional block are adapted to the bit rates of at least a portion of the other functional blocks by a focused search of parameters for at least part of all other functional blocks, up to the highest (or lowest) rate functional block.
  • a given flow function block is chosen and at least a portion of the parameters specific to this functional block are progressively adapted:
  • the invention applies to any compression scheme implementing the multiple encoding of a multimedia content.
  • Three embodiments are presented in the following, in the field of audio compression (speech and sound).
  • the first two exemplary embodiments are in the context of the family of transform coders, the following document of which can be given for reference:
  • CELP Code Excited Linear Prediction
  • Transformers or subband coders These are transform or transform compression coders based on psychoacoustic criteria.
  • This type of encoder proceeds by transforming blocks of the time signal to obtain a set of coefficients.
  • the transformations are of the time-frequency type, one of the most used transformations being the Modified Discrete Cosine Transform (MDCT), before the quantization of these coefficients, an algorithm allocates the bits so that the quantization noise is the least audible possible.
  • MDCT Modified Discrete Cosine Transform
  • the binary allocation and the quantization of the coefficients implement a masking curve, obtained using a psychoacoustic model allowing to evaluate, for each spectral line considered, a masking threshold representative of the amplitude necessary for a sound at this frequency to be audible
  • Figure 2 gives the schematic diagram of a frequency encoder.
  • the main functional blocks are: a block 21 for transforming the time / frequency of the signal So digital audio input, - a block 22 for determining a perceptual model from the transformed signal, - a block 23 for quantization and coding, from the perceptual model, - and a block 24 for formatting the bit stream to obtain a coded audio frame St c .
  • Synthetic analysis coders (CELP coding)
  • the reconstructed signal synthesis model is used at the encoder to extract the parameters modeling the signals to be coded. These signals can be sampled at the frequency of 8 kHz (telephone band 300-3400 Hz) or at a higher frequency, for example at 16 kHz for wideband coding (bandwidth 50 Hz to 7 kHz).
  • the compression ratio varies from 1 to 16.
  • These encoders operate at rates of 2 to 16 kbit / s in the telephone band, and at speeds of 6 to 32 kbit / s in the extended band. .
  • the CELP type digital coding device currently used as a synthesis analysis coder, is presented in FIG.
  • the speech signal s 0 is sampled and converted into a sequence of frames of a number L of samples. Each frame is synthesized by filtering a waveform extracted from a directory (called “dictionary"), multiplied by a gain, through two filters varying in time.
  • the fixed excitation dictionary is a finite set of waveforms of the L samples.
  • the first filter is a long-term prediction filter.
  • a "LTP" analysis (for "Long Term Prediction”) makes it possible to evaluate the parameters of this long-term predictor which exploits the periodicity of the voiced sounds, this harmonic component being modeled in the form of an adaptive dictionary (block 32)
  • the second filter is a short-term prediction filter.
  • LPC Linear Prediction Coding
  • Decoding is, for its part, much less complex than coding.
  • the bitstream generated by the coder enables the decoder, after demultiplexing, to obtain the quantization index of each parameter.
  • the decoding of the parameters and the application of the synthesis model then make it possible to reconstruct the signal.
  • the first embodiment relates to the perceptual frequency coder called "TDAC” and described in particular in the published document US-2001/027393.
  • This TDAC encoder is used to encode digital audio signals sampled at 16 kHz (wide band).
  • Figure 4a illustrates the main functional blocks of this encoder.
  • An audio signal x (n) limited in band at 7 kHz and sampled at 16 kHz is cut into frames of 320 samples (20 ms).
  • a modified discrete cosine transform (or "MDC") is applied (function block 41) on input signal frames of 640 samples with 50% overlap, thus with a refresh of the MDCT analysis every 20 ms.
  • the spectrum is limited to 7225 Hz by setting the last 31 coefficients to zero (only the first 289 coefficients are different of 0).
  • a masking curve (block 42) is determined from this spectrum and all masked coefficients are set to zero.
  • the spectrum is divided into 32 bands of unequal widths. Any masked bands are determined according to the transformed coefficients of the signals. For each band of the spectrum, the energy of the MDCT coefficients is calculated (to obtain scale factors).
  • the 32 scale factors constitute the spectral envelope of the signal which is then quantized and coded * by entropy coding (functional block 43), and finally transmitted in the coded frame s c .
  • the dynamic allocation of the bits is based on a band masking curve (functional block 42) calculated from the decoded and dequantized version of the spectral envelope. This measurement makes it possible to have compatibility between the bit allocation of the encoder and the decoder.
  • the normalized MDCT coefficients in each band are then quantized (function block 45) by vector quantizers using size-nested dictionaries, the dictionaries being composed of a type II permutation code union.
  • the information on the tone (coded here on a bit Bi) and the voicing (coded here on a bit Bo), as well as the spectral envelope e q (i) and the coded coefficients y q (j) are multiplexed (block 46 of FIG. 4a) and transmitted in frames.
  • this encoder can operate at several rates, it is proposed to make a multi-rate encoder for example at 16, 24 and 32 kbit / s.
  • the following functional blocks can be shared between the different modes: MDCT Transform (Block 41), voicingng Detection (Function Block 47 of FIG. 4a) and Tone Detection (Function Block 48 of FIG. Figure 4a), • Calculation, quantization and entropic coding of the spectral envelope (block 43), • Calculation of a masking curve, coefficient by coefficient, and a masking curve per band (block 42).
  • the bit allocation block 44 is used in several passes, and the number of bits allocated is adjusted for the transquantification performed by each coder (blocks 45_1,..., 45_ (K-2), 45_ (K -1)), as will be seen below.
  • these transquantifications use the results obtained by the quantization function block 45_0 for a chosen encoder, index 0 (the lowest rate encoder in the example described).
  • the only functional biocs of the encoders that act without real interaction are the multiplexing blocks 46_0, 46_1, ..., 46 K-2), 46_ (K-1), although they all use the same voicing information and tone, as well as the same coded spectral envelope. As such, it is simply stated that a partial pooling of the multiplexing can be conducted, again.
  • the strategy employed is to exploit the results of the two bit allocation and quantization functional blocks made for the bit stream (0), at the lowest bit rate D 0 , to accelerate the operations of the two corresponding function blocks for the K-1 other bitstream (k) (l ⁇ k ⁇ K). It is also possible to consider the multi-rate coding scheme which uses a bit-allocation functional block per bit stream (without factorization provided for this block) but mutualizes a part of the quantization operations thereafter.
  • the multiple coding techniques presented below are advantageously based on intelligent transcoding used for the reduction of the coded audio stream bit rate, generally located in a node of the network.
  • bit streams k, 0 ⁇ k ⁇ K are classified according to an increasing order of rates (DQ ⁇ D- I ⁇ ... ⁇ D ⁇ - ⁇ ).
  • bit stream 0 corresponds to the lowest bit rate.
  • M is the number of bands
  • e q () is the decoded and dequantized value of the spectral envelope on the band
  • s b (1) is the masking threshold for this band.
  • a second phase is used to perform the readjustment. This step is preferably done by a succession of iterative operations based on a perceptual criterion that adds or removes bits from the bands.
  • the bits are added to the bands where the perceptual improvement is the most important. This perceptual improvement is measured by the variation of the noise to mask ratio between the initial and final allocation of the bands. The rate is increased for the band where this variation is greatest. In the opposite case where the total number of distributed bits is greater than that available, the extraction of bits on the bands is dual to the latter procedure.
  • the first determination step by the above formula can be done once based on the lowest bit rate D 0 .
  • the TDAC encoder uses a vector quantization using size-nested dictionaries, the dictionaries being composed of a type II permutation code union. This type of quantization applies to each of the vectors of the MDCT coefficients on a band. Such a vector is normalized beforehand by using the dequantized value of the spectral envelope on this band. We notice :
  • the quantization result for each band i of the frame is a code word m t transmitted in the bit stream. It represents the index of the quantized vector in the dictionary and calculated from the following information: • the number L, in the set CL (b ⁇ , d f ) of the leaders of the dictionary C (b "d t ), of quantized leader vector Y (i) nearest neighbor of a current leader Y (i),
  • Y (i) is the leading vector of the aforementioned vector Y (i), obtained by descending ordering of its components (the corresponding permutation is denoted perm (i)), • and Y q (i) is the quantized vector of Y ( i) (or "/ e nearest neighbor" of Y (i) in the dictionary C (bj 5 ,)).
  • the notation ⁇ (A) indicates the parameter used in the processing performed to obtain the bitstream of the encoder k.
  • the parameters without this exponent being calculated once and for all for the bit stream 0. They are independent of the flow (or mode) considered.
  • the MPEG-1 Layer encoder l & l1 shown in FIG. 6a, uses a filterbank with 32 uniform subbands (block 61 of FIG. 6a) to perform the time / frequency transformation of the input audio signal n0.
  • the output samples of each subband are grouped and then normalized by a common scale factor (determined by function block 67) before being quantized (block 62).
  • the number of levels of the uniform scalar quantizer used for each subband results from a dynamic bit allocation procedure (performed by block 63). This procedure uses a psychoacoustic model (block 64) to determine the bit distribution that makes the quantization noise as noticeable as possible.
  • the hearing models proposed in the standard are based on the estimation of the spectrum obtained by a fast Fourier transform (FFT) of the input temporal signal (made by block 65).
  • FFT fast Fourier transform
  • the frame s c multiplexed by the block 66 of FIG. 6a and which is finally transmitted, contains, after a headless field HD, the set of samples of the quantized subbands E S B, which represent the main information, and complementary information used for the decoding operation constituted by the scaling factors F E and the allocation of bits Ai.
  • the construction of a multi-rate encoder in one application of the invention, can be carried out by pooling the following functional blocks, with reference to FIG. 7: • Filter bank analysis 61 • Determination of scaling factors 67 • FFT Fourier transform calculation 65 • Determination of masking thresholds according to a psychoacoustic model 64.
  • the two blocks 64 and 65 already provide the signal to mask ratios (SMR arrows of FIGS. 6a and 7) used for the bit allocation procedure (block 70 of FIG. 7).
  • bit allocation of FIG. 7 Only the quantization functional block 62_0 to 62_ (K-1) is therefore specific to each bit stream corresponding to a rate D k , 0 ⁇ k ⁇ K-1. The same is true for the multiplexing block 66_0 to 66 K-1). * Bit allocation
  • the allocation is preferentially done by a succession of iterative steps as follows.
  • Step 0 Zero initialization of the number of bits b, of each of the sub-bands i, 0 ⁇ / ⁇ M.
  • Steps 1 and 2 are repeated iteratively until the total number of available bits, corresponding to the operating rate, is distributed. The result is then a bit distribution vector (b 0 , b 15 ..., b M _-).
  • steps 1 and 2 are shared with a few other modifications, including: • the function block having as output K bit distribution vectors is obtained when the total number of available bits corresponding to the bit rate D k of the bit stream k is distributed, at the iteration of steps 1 and . 2. • The stop of the iteration of steps 1 and 2 is done when the total number of available bits corresponding to the highest bit rate D ⁇ _ ⁇ is totally distributed (it is recalled that the bit streams are ordered according to an order increasing flow rates).
  • the K outputs of this bit allocation block then feed the quantization blocks for each of the bit streams at the given bit rate.
  • the last exemplary embodiment relates to the coding of the multi-mode speech with a posterior decision from the 3GPP NB-AMR coder (for "Narrow-Band Adaptive Multi-Rate”). ) which is an adaptive multi-rate bandwidth speech coder, according to a 3GPP standard.
  • This encoder which belongs to the well-known family of CELP coders whose principle was briefly described above, has eight modes (or bit rates) ranging from 12.2 kbit / s to 4.75 kbit / s, all based on the technique ACELP (for "Algebraic Code Excited Linear Prediction”).
  • Figure 8 gives the functional block coding scheme of this encoder. This structure was exploited in order to realize a post-decision multi-mode encoder, based on 4 modes of the NB-AMR encoder (7.4, 6.7, 5.9, 5.15).
  • the functional blocks of these four modes are used for trellis multi-mode coding, as seen above with reference to Figure 1d.
  • the 3GPP NB-AMR coder is working on a 3.4 kHz band-limited speech signal sampled at 8 kHz cut into 20 ms frames (160 samples). Each frame has 4 subframes of 5 ms (40 samples) grouped 2 by 2 in "super subframes" of 10 ms (80 samples). For all modes, the same types of parameters are extracted from the signal but with variants of modeling and / or quantification of these parameters. In the NB-AMR encoder, five types of parameters are to be analyzed and coded. LSP settings (for "One
  • the LTP delay, the gain of the adaptive excitation, the fixed excitation, the gain of the fixed excitation are treated once per subframe.
  • These 4 modes of the NB-AMR encoder (7.4, 6.7, 5.9, 5.15) have identical modules such as preprocessing, analysis of linear prediction coefficients, signal calculation weighted.
  • the signal preprocessing is 80 Hz high-pass cut-off filtering to suppress the continuous components combined with division of the input signals to avoid overflows.
  • the quantization of the LSP parameters from , 15 kbit / s is done on 23 bits, that of the other three modes on 26 bits.
  • the Cartesian product vector quantization (so-called "split VQ") of the LSP parameters divides the LSP parameters into 3 sub-vectors, of dimension 3, 3 and 4.
  • the first sub-vector composed of The first 3 LSP is quantized on 8 bits by the same dictionary for the four modes.
  • the second sub-vector composed of the following 3 LSPs is quantized for the 3 high-speed modes by a dictionary of size 512 (9 bits) and for the mode with 5,15 by half of this dictionary (one vector out of 2).
  • the third and last sub-vector composed of the last 4 LSPs is quantized for the 3 high-speed modes by a dictionary of size 512 (9 bits) and for the mode of lower bit rate by a dictionary of size 128 (7 bits).
  • the transformation in the normalized frequency domain, the calculation of the squared error criterion weights and the MA prediction (for "Moving Average") of the LSP residue to be quantized are identical for the 4 modes.
  • the three broadband modes use the same dictionaries to quantify the LSPs, they can share, in addition to the same vector quantization module, the inverse transformation (to return from the normalized frequency domain to the cosine domain), as well as the calculation of the LSPs. Quantified Q for each subframe
  • the calculation of the target signal for the adaptive excitation depends on the weighted signal (regardless of the mode); the quantized filter A Q j (z) (same "for 3 modes) and the past of the subframe (different for each sub-frame other than the first sub-frame).
  • the signal- Target for fixed excitation is obtained by removing from the previous target signal the contribution of the filtered adaptive excitation of this subframe (which is different from one mode to another except for the first subframe of the first 3 modes).
  • the search in this dictionary of absolute delays is focused around the delay found in open loop (range of ⁇ 5 for the 5.15 mode, ⁇ 3 for the other modes).
  • the target signal and the open-loop delay being identical, the result of this closed-loop search is also identical.
  • the other two dictionaries are of the differential type and make it possible to code the difference between the current delay and the integer delay Tu which is closest to the fractional delay of the preceding sub-frame.
  • the first 5-bit differential dictionary used for the odd subframes of the 7.4 mode, is 1/3 resolution around the integer delay TM in the interval [T -5 +2/3, TM + 4 + 2/3].
  • the second 4-bit differential dictionary included in the first one, is used for the odd subframes of the modes at 6.7 and 5.9 as well as for the last three subframes of the 5.15 mode.
  • This second dictionary is of integer resolution around the integer delay T M in the interval PV ⁇ -5, T +4] plus a resolution of 1/3 in the interval [T -1 + 2/3, TM + 2/3 ].
  • ACELP Fixed dictionaries belong to the well-known family of ACELP dictionaries.
  • the structure of an ACELP directory is based on the ISPP (Interleaved Single-Pulse Permutation) concept, which consists of dividing all L positions into K interleaved tracks, each of the N pulses being located in certain predefined tracks.
  • the 4 modes (7.4, 6.7, 5.9, 5.15) use the same slice of the 40 samples of a 5-track subframe of length 8 interleaved, as shown in Table 2a.
  • Table 2b shows, for the 3 modes (7.4, 6.7, 5.9) the dictionary rate, the number of pulses and their distribution in the tracks.
  • the distribution of the 2 pulses of the ACELP 9-bit dictionary of the 5.15 mode is even more constrained.
  • Table 2a Interleaved Cutting of the 40 Positions of a Subframe of the 3GPP NB-AMR Encoder
  • Table 2b Pulse Distribution in the Tracks for 7.4 Modes; 6.7; 5.9 3GPP NB-AMR Encoder
  • the gains of the adaptive and fixed excitations are quantified on 7 or 6 bits (with an MA prediction applied to the gain of the fixed excitation) by a joint vector quantization minimizing the CELP criterion.
  • the preprocessing block 81
  • the analysis of the linear prediction coefficients windowowing and calculation of the autocorrelations 82, implementation of the Levinson-Durbin algorithm 83, transformation A (z) ⁇ LSP 84, LSP interpolation and inverse transformation 862
  • the calculation of the weighted input signal 87 • the transformation of the LSP parameters in the normalized frequency domain, the calculation of the weights of the criterion d quadratic error for the vector quantization of the LSPs, the MA prediction of the LSP residue, the vector quantization of the first 3 LSPs (in block 85).
  • Non-identical functional blocks can be accelerated by exploiting those of another mode or a common processing module. Depending on the constraints of the application (in terms of quality and / or complexity), different variants can be used. Some examples are described below. It is also possible to rely on intelligent transcoding techniques between CELP coders.
  • also quantifies Y for the 7.4 modes; 6.7 and 5.9 o otherwise (case "Flag 1"), Yh quantizes Y for modes at 7.4; 6.7 and 5.9
  • This implementation gives a result identical to that of the non-optimized multi-mode coding. If one wishes to further reduce the complexity of the quantization, one can stop at step 1 and take Y- as a quantized vector for the high-speed modes if this vector is considered sufficiently close to Y. This simplification can therefore give a different result from an exhaustive search.
  • the search for the open-loop LTP delay of the 5.15 mode can exploit the results of that of the other modes. If the two open-loop delays found on the 2 super-frames are close enough to allow differential coding, the open-loop search of the 5.15 mode is not performed. Rather, the results of the higher modes are used. Otherwise, we can:
  • FIG. 1d it is proposed to produce a trellis multi-mode encoder allowing several combinations of functional blocks, each functional block having at least two modes of operation (or flows).
  • This new encoder was constructed from the four NB-AMR encoder rates mentioned above (5.15, 5.90, 6.70, 7.40).
  • this encoder there are four functional blocks: the LPC block, the LTP block, the fixed excitation block and the gain block. Referring to Table 1 presented above, Table 3a below summarizes for each of these functional blocks, its number of flow rates and its flow rates.
  • Table 3a Number of flow rates and flow rates of the functional blocks for the four modes (5,15; 5,90; 6,70; 7,40) of the NB-AMR encoder.
  • the multi-rate encoder thus obtained has a high granularity in rates, with 32 possible modes given in Table 3b. However, it is indicated that the encoder thus obtained is not interoperable with the aforementioned NB-AMR encoder.
  • Table 3b the modes corresponding to the three flows of the NB-AMR (5.15, 5.90, 6.70) are shown in bold, the exclusion of the highest bit rate of the LTP functional block eliminating the flow of 7 40.
  • Table 3b Flow rate per functional and global block of the multi-mode lattice encoder
  • This encoder has 32 possible bit rates, 5 bits are needed to identify the mode used.
  • the pooling of functional blocks is exploited.
  • Different coding strategies are applied for the different functional blocks.
  • the functional block 1 comprising the quantification of the LSPs
  • the low bit rate is preferred as mentioned above in the following manner: the first compound sub-vector of the first 3 LSPs is quantified on 8 bits by the same dictionary for the two flows associated with this functional block, -
  • the second sub-vector composed of the following 3 LSPs is quantized on 8 bits by the dictionary of the smallest bit rate.
  • This dictionary corresponds to half of the dictionary of higher speed, one searches in the other half of the dictionary only if the distance between the 3 LSP and the element chosen in the dictionary exceeds a certain threshold.
  • the third and last compound sub-vector of the last 4 LSPs is quantized by a dictionary of size 512 (9 bits) and by a dictionary of size 128 (7 bits).
  • the search for the open-loop LTP delay is performed twice per frame for the 24-bit LTP delay and is performed once per frame for the 20-bit one.
  • the computation of the LTP delay in open loop is carried out as follows:
  • the present invention makes it possible to provide an effective solution to the problem of the complexity of multiple codings, by pooling and accelerating the calculations implemented by the various coders.
  • the coding structures can therefore be represented using functional blocks describing the various operations performed during a treatment.
  • the functional blocks of the different encodings implemented in multiple coding have strong relationships that are exploited in the sense of the present invention. These relations are particularly strong when the different codings correspond to different modes of the same structure.
  • the present invention is flexible from the point of view of complexity. It is indeed possible to decide a priori the maximum complexity of the multiple coding and to adapt the number of coders explored as a function of this complexity.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Amplifiers (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Separation By Low-Temperature Treatments (AREA)

Abstract

The invention relates to the compression coding of digital signals such as multimedia signals (audio or video), and more particularly a method for multiple coding, wherein several encoders each comprising a series of functional blocks receive an input signal in parallel. According to the invention, a) the functional blocks (BF10, , BFnN) forming each encoder are identified, along with one or several functions carried out of each block, b) functions which are common to various encoders are itemized and c) said common functions are carried out definitively for a part of at least all of the encoders within at least one same calculation module. (BF1CC, , BFnCC).

Description

Procédé de codage multiple optimisé Optimized multiple coding method
La présente invention concerne le codage/décodage de signaux numériques, dans des applications de transmission ou de stockage de signaux multimédia tels que les signaux audio (parole et/ou sons) ou vidéo.The present invention relates to the encoding / decoding of digital signals, in applications for transmission or storage of multimedia signals such as audio signals (speech and / or sounds) or video.
Pour offrir mobilité et continuité, les services de communication multimédia modernes et innovants doivent pouvoir fonctionner dans une grande variété de conditions. Le dynamisme du secteur de la communication multimédia, l'hétérogénéité des réseaux, de l'accès et des terminaux ont engendré une prolifération de formats de compression.To provide mobility and continuity, modern and innovative multimedia communication services must be able to operate under a wide variety of conditions. The dynamism of the multimedia communication sector, the heterogeneity of networks, access and terminals have led to a proliferation of compression formats.
La présente invention s'inscrit dans le contexte d'une optimisation des techniques de "codage multiple", mises en œuvre dès lors qu'un signal numérique, ou une portion de ce signal, est codé selon plusieurs techniques de codage. Ce codage multiple peut être effectué de manière simultanée (en une seule passe) ou non. Les traitements peuvent s'effectuer sur le même signal, ou éventuellement sur des versions dérivées du même signal (par exemple selon des bandes passantes différentes). On distingue donc le "codage multiple" des "transcodages", où chaque codeur effectue la compression d'une version issue du décodage du signal compressé par le codeur précédent.The present invention is in the context of an optimization of "multiple coding" techniques, implemented as soon as a digital signal, or a portion of this signal, is coded according to several coding techniques. This multiple coding can be performed simultaneously (in one pass) or not. The processes can be carried out on the same signal, or possibly on versions derived from the same signal (for example according to different bandwidths). One thus distinguishes the "multiple coding" of the "transcodings", where each coder carries out the compression of a version resulting from the decoding of the signal compressed by the preceding encoder.
Le codage multiple se présente par exemple dans le cas d'un même contenu qui est codé selon plusieurs formats et transmis ensuite à des terminaux ne supportant pas les mêmes formats de codage. S'il s'agit d'une diffusion en temps réel, le traitement devra être effectué en simultané. S'il s'agit d'accès à une base de données, les codages pourront être effectués l'un après l'autre, en différé. Dans ces exemples, le codage multiple permet de coder un même signal selon des formats différents en utilisant plusieurs codeurs (ou éventuellement plusieurs débits ou plusieurs modes d'un même codeur), chaque codeur fonctionnant de manière indépendante des autres codeurs.Multiple coding is, for example, in the case of the same content which is coded according to several formats and then transmitted to terminals that do not support the same coding formats. If it is a real-time broadcast, the processing should be done simultaneously. If it is a question of access to a database, the codings can be carried out one after another, delayed. In these examples, the multiple coding makes it possible to code the same signal in different formats by using several coders (or possibly several rates or several modes of the same encoder), each encoder operating independently of the other coders.
Un autre usage de codage multiple se rencontre dans des structures de codage où plusieurs codeurs se trouvent en compétition pour coder un segment de signal, un seul codeur étant finalement sélectionné pour le codage de ce segment. Le choix du codeur sélectionné peut s'effectuer à l'issue du traitement de ce segment, voire même ultérieurement (par décision retardée). Dans ce qui suit, on désignera par "codage multi-modes" ce type de structure (en référence à la sélection d'un "mode" de codage). Dans ces structures multi-modes, plusieurs codeurs partageant un "passé commun" sont amenés à coder la même portion de signal. Les techniques de codage utilisées peuvent être différentes, ou issues d'une unique structure de codage. Elles ne seront cependant pas totalement indépendantes sauf s'il s'agit de techniques "sans mémoire". En effet, dans le cas (courant) de techniques de codage mettant en œuvre des traitements récursifs, le traitement d'un segment donné de signal dépend de la manière dont ce signal a été codé dans le passé. Il y a donc une certaine dépendance entre les codeurs, dès lors qu'un codeur devra prendre en compte dans ses mémoires la sortie d'un autre codeur.Another use of multiple coding occurs in encoding structures where multiple encoders compete to encode a signal segment, with only one encoder ultimately selected for encoding that segment. The choice of the selected encoder can be made at the end of the processing of this segment, or even later (by delayed decision). In what follows, this type of structure will be referred to as "multi-mode coding" (with reference to the selection of a "mode" of coding). In these multi-mode structures, several coders sharing a "common past" are required to encode the same signal portion. The coding techniques used may be different or from a single coding structure. However, they will not be completely independent unless they are "memory-free" techniques. Indeed, in the (current) case of coding techniques implementing recursive processing, the processing of a given signal segment depends on the way in which this signal has been coded in the past. There is therefore a certain dependence between the encoders, since an encoder will have to take into account in its memories the output of another encoder.
Dans ces différents contextes, la notion de "codage multiple" a été introduite ainsi que les conditions d'usage de telles techniques. Cependant la complexité de mise en œuvre peut s'avérer rédhibitoire.In these different contexts, the notion of "multiple coding" has been introduced as well as the conditions of use of such techniques. However, the complexity of implementation can be prohibitive.
Par exemple, dans le cas de serveurs de contenus qui diffusent un même contenu sous plusieurs formats adaptés aux conditions d'accès, de réseaux et terminaux de différents clients, cette opération devient extrêmement complexe à mesure qu'augmente le nombre de formats désiré. S'il s'agit d'une diffusion temps réel, on se trouve rapidement limité par les ressources du système étant donné que les différents formats sont codés en parallèle. Le deuxième cas d'usage mentionné concerne les applications de codage multi-modes, permettant la sélection d'un codeur parmi un ensemble pour chaque portion de signal analysé. La sélection demande la définition d'un critère, les plus courants visant à l'optimisation du compromis débit-distorsion. Le signal étant analysé sur des segments temporels successifs, à chaque segment plusieurs codages sont évalués. On sélectionne ensuite le codage de débit le plus faible pour une qualité donnée, ou celui de meilleure qualité pour un débit donné. On notera que d'autres contraintes que celles de débit/distorsion peuvent être utilisées.For example, in the case of content servers that broadcast the same content in several formats adapted to the access conditions, networks and terminals of different clients, this operation becomes extremely complex as the number of desired formats increases. If it is a real-time broadcast, one is quickly limited by the resources of the system since the different formats are coded in parallel. The second use case mentioned concerns multi-mode coding applications, allowing the selection of one encoder from a set for each portion of signal analyzed. The selection requires the definition of a criterion, the most common aiming at the optimization of the rate-distortion compromise. The signal being analyzed over successive time segments, at each segment several codings are evaluated. The lowest bit rate coding for a given quality is then selected, or the best bit rate coding for a given bit rate. It will be noted that other constraints than those of flow / distortion can be used.
En général, dans de telles structures, la sélection du codage s'effectue "a priorV par une analyse du signal sur le segment considéré (sélection selon les caractéristiques du signal). Cependant, la difficulté de produire une classification robuste du signal pour cette sélection a conduit à proposer une sélection "a posteήorV du mode optimal après codage de l'ensemble des modes, au prix toutefois d'une complexité élevée.In general, in such structures, the coding selection is performed a priorV by an analysis of the signal on the segment under consideration (selection according to the characteristics of the signal), however, the difficulty of producing a robust classification of the signal for this selection. This has led to proposing a selection of optimal mode after encoding of all the modes, at the cost however of a high complexity.
Des méthodes intermédiaires combinant les deux approches ont été proposées pour alléger le coût de calcul. Ces stratégies sont cependant sous- optimales et s'avèrent moins performantes que l'exploration de tous les modes. L'exploration de tous les modes ou d'une grande partie des modes constitue une application de codage multiple qui présente une complexité potentiellement élevée, difficilement compatible a priori avec le codage en temps réel par exemple.Intermediate methods combining the two approaches have been proposed to reduce the cost of calculation. These strategies, however, are suboptimal and prove to be less efficient than the exploration of all modes. The exploration of all the modes or a large part of the modes constitutes a multiple coding application which presents a potentially high complexity, hardly compatible a priori with the real-time coding for example.
Actuellement, la plupart des opérations de codage multiple et de transcodage ne prennent pas en compte les interactions entre les formats et entre le format et son contenu. Quelques techniques de codage multi-modes ont été proposées, mais la décision du mode utilisé se fait généralement a priori soit sur le signal (par classification, comme par exemple le codeur SMV pour "Selectable Mode Vocoder"), soit en fonction des conditions du réseau (par exemple dans les codeurs AMR pour "Adaptive Multi-Rate").Currently, most multi-coding and transcoding operations do not take into account the interactions between formats and between the format and its content. Some multi-mode coding techniques have been proposed, but the decision of the mode used is generally a priori on the signal (by classification, for example the SMV coder for "Selectable Mode Vocoder"), depending on the network conditions (for example in AMR encoders for Adaptive Multi-Rate).
Dans les documents : "An overview of variable rate speech coding for cellular networks", Gersho, A.; Paksoy, E.; Wireless Communications, 1992. Conférence Proceedings, 1992 IEEE International Conférence on Selected Topics, 25-26 Jun 1992 Page(s) : 172 -175,In the documents: "An overview of variable rate speech coding for cellular networks", Gersho, A .; Paksoy, E .; Wireless Communications, 1992. Conference Proceedings, 1992 IEEE International Conference on Selected Topics, 25-26 Jun 1992 Page (s): 172 -175,
"A variable rate speech coding algorithm for cellular networks", Paksoy, E.; Gersho, A.; Speech Coding for Télécommunications, 1993. Proceedings, IEEE Workshop 1993, Page(s): 109-110,"A variable rate speech coding algorithm for cellular networks", Paksoy, E .; Gersho, A .; Speech Coding for Telecommunications, 1993. Proceedings, IEEE Workshop 1993, Page (s): 109-110,
"Variable rate speech coding for multiple access wireless networks", Paksoy E.; Gersho A.; Electrotechnical Conférence, 1994, Proceedings, 7th Mediterranean, 12-14 Apr 1994 Page(s): 47 -50 vol.1 ,"Variable rate speech coding for multiple access wireless networks", Paksoy E .; Gersho A .; Electrotechnical Conference, 1994, Proceedings, 7th Mediterranean, 12-14 Apr 1994 Page (s): 47 -50 vol.1,
plusieurs modes de sélection sont présentés, en particulier une décision contrôlée par la source et une décision contrôlée par le réseau.several selection modes are presented, in particular a decision controlled by the source and a decision controlled by the network.
Dans le cas d'une décision contrôlée par la source, la décision a priori s'effectue à partir d'une classification du signal d'entrée. Il existe alors de nombreuses méthodes de classification du signal.In the case of a decision controlled by the source, the decision a priori is made from a classification of the input signal. There are many methods of signal classification.
Dans le cas d'une décision contrôlée par le réseau, il est plus simple de réaliser un codeur multi-modes dont le débit est choisi par un module externe plutôt que par la source. La méthode la plus simple consiste à élaborer une famille de codeurs chacun à débit fixe mais dont les débits sont différents entre codeurs et de commuter entre ces différents débits pour obtenir un mode courant désiré. Quelques travaux ont aussi été présentés sur la possibilité de combiner plusieurs critères pour sélectionner a priori le mode qui doit être utilisé, notamment dans les documents :In the case of a decision controlled by the network, it is simpler to produce a multi-mode encoder whose bit rate is chosen by an external module rather than by the source. The simplest method is to develop a family of coders each fixed rate but whose flow rates are different between coders and to switch between these different rates to obtain a desired current mode. Some work was also presented on the possibility of combining several criteria to select a priori the mode to be used, particularly in documents:
"Variable-rate for the basic speech service in UMTS" Berruto, E.; Sereno, D.; Vehicular Technology Conférence, 1993 IEEE 43rd, 18-20 May 1993 Page(s): 520 -523"Variable-rate for basic speech service in UMTS" Berruto, E .; Sereno, D .; Vehicular Technology Conference, 1993 IEEE 43rd, 18-20 May 1993 Page (s): 520 -523
"A VR-CELP codée implementation for CDMA mobile communications" Cellario, L.; Sereno, D.; Giani, M.; Blocher, P.; Hellwig, K.; Acoustics, Speech, and Signal Processing, 1994, ICASSP-94, 1994 IEEE International Conférence, Volume: 1 , 19-22 Apr 1994 Page(s): 1/281 -I/284 vol.1."A VR-CELP coded implementation for CDMA mobile communications" Cellario, L .; Sereno, D .; Giani, M .; Blocher, P .; Hellwig, K .; Acoustics, Speech, and Signal Processing, 1994, ICASSP-94, 1994 IEEE International Conference, Volume: 1, 19-22 Apr 1994 Page (s): 1/281 -I / 284 vol.1.
Tous les algorithmes de codage multi-modes avec sélection du mode de codage a priori souffrent d'un même inconvénient, en particulier lié à des problèmes de robustesse de la classification a priori.All the multi-mode coding algorithms with selection of the prior coding mode suffer from the same drawback, in particular related to problems of robustness of the classification a priori.
C'est pourquoi des techniques utilisant une décision a posteriori du mode de codage ont été proposées. Par exemple dans le document :This is why techniques using a posteriori decision of the coding mode have been proposed. For example in the document:
"Finite state CELP for variable rate speech coding" Vaseghi, S.V; Acoustics, Speech, and Signal Processing, 1990, ICASSP-90, 1990 International Conférence, 3-6 Apr 1990 Page(s) : 37 -40 vol.1 ,"Finite state CELP for variable rate speech coding" Vaseghi, S.V; Acoustics, Speech, and Signal Processing, 1990, ICASSP-90, 1990 International Conference, 3-6 Apr 1990 Page (s): 37-40 vol.1,
le codeur peut commuter entre différents modes par optimisation d'une mesure de qualité objective, la décision se fait donc a posteriori en fonction des caractéristiques du signal d'entrée, du rapport visé débit/SQNR (pour "Signal to Quantization Noise Ratio") et de l'état courant du codeur. Un tel schéma de codage permet d'obtenir une amélioration de la qualité. Cependant, les différents codages étant réalisés en parallèle, la complexité résultante de ce type de système est prohibitive. D'autres techniques combinant une décision a priori et une amélioration en boucle fermée ont été proposées. Dans le document :the encoder can switch between different modes by optimizing an objective quality measurement, the decision is therefore a posteriori based on the characteristics of the input signal, the report referred flow / SQNR (for "Signal to Quantization Noise Ratio") and the current state of the encoder. Such a coding scheme makes it possible to obtain an improvement in the quality. However, the different codings being made in parallel, the resulting complexity of this type of system is prohibitive. Other techniques combining a priori decision and a closed-loop improvement have been proposed. In the document :
"Multimode variable bit rate speech coding: an efficient paradigm for high- quality low-rate représentation of speech signa Das, A.; DeJaco, A.; Manjunath, S.; Ananthapadmanabhan, A.; Huang, J.; Choy, E.; Acoustics, Speech, and Signal Processing, 1999. ICASSP '99 Proceedings, 1999 IEEE International Conférence, Volume: 4, 15-19 Mar 1999 Page(s): 2307 -2310 vol.4,"Multimode variable bit rate speech coding: an efficient paradigm for high-quality low-rate representation of speech." Das, A. DeJaco, A. Manjunath, S. Ananthapadmanabhan, A. Huang, J. Choy, E. Acoustics, Speech, and Signal Processing, 1999. ICASSP '99 Proceedings, 1999 IEEE International Conference, Volume: 4, 15-19 Mar 1999 Page (s): 2307 -2310 vol.4,
le système proposé effectue une première sélection (sélection en boucle ouverte) du mode, en fonction des caractéristiques du signal. Cette décision peut être effectuée par classification. Ensuite, à partir d'une mesure d'erreur, si les performances du mode sélectionné ne sont pas satisfaisantes, un mode de débit plus élevé est appliqué et l'opération se répète (selon une décision recherchée en boucle fermée).the proposed system makes a first selection (open-loop selection) of the mode, depending on the characteristics of the signal. This decision can be made by classification. Then, from an error measurement, if the performances of the selected mode are not satisfactory, a higher rate mode is applied and the operation is repeated (according to a decision sought in closed loop).
De même, dans les documents :Similarly, in the documents:
* "Variable rate speech coding for umts" Cellario, L.; Sereno, D.; Speech Coding for Télécommunications, 1993. Proceedings, IEEE Workshop, 1993* "Variable rate speech coding for umts" Cellario, L .; Sereno, D .; Speech Coding for Telecommunications, 1993. Proceedings, IEEE Workshop, 1993
Page(s): 1 -2Page (s): 1 -2
"Phonetically-based vector excitation coding of speech at 3.6 kbps" Wang, S.; Gersho, A.; Acoustics, Speech, and Signal Processing, 1989. ICASSP-89., 1989 International Conférence, 23-26 May 1989 Page(s): 49 -52 vol.1"Phonetically-based vector excitation coding of speech at 3.6 kbps" Wang, S .; Gersho, A .; Acoustics, Speech, and Signal Processing, 1989. ICASSP-89., 1989 International Conference, 23-26 May 1989 Page (s): 49 -52 vol.1
* "A modified CS-ACELP algorithm for variable-rate speech coding robust in noisy environments" Beritelli, F.; IEEE Signal Processing Letters, Volume: 6 Issue: 2, Feb 1999 Page(s): 31 -34, des techniques similaires ont été utilisées. Une première sélection en boucle ouverte est réalisée après classification du signal d'entrée (classification phonétique, ou voisé/non-voisé), ensuite une décision en boucle fermée est effectuée : - soit sur le codeur complet et, dans ce cas, tout le segment de parole est codé à nouveau; *" - soit sur une partie du codage, comme dans les références ci-avant précédées d'une étoile (*), pour lesquels le choix du dictionnaire à utiliser est effectué en boucle fermée.* "A modified CS-ACELP algorithm for robust variable-rate speech coding in noisy environments" Beritelli, F .; IEEE Signal Processing Letters, Volume: 6 Issue: 2, Feb 1999 Page (s): 31 -34, similar techniques were used. A first open-loop selection is performed after classification of the input signal (phonetic classification, or voiced / unvoiced), then a closed loop decision is made: - either on the complete encoder and, in this case, all the speech segment is coded again; * " - or on a part of the coding, as in the above references preceded by a star (*), for which the choice of the dictionary to be used is done in a closed loop.
L'ensemble des études mentionnées ci-dessus tend à résoudre le problème de la complexité de la sélection optimale du mode par l'utilisation, totale ou partielle, d'une sélection ou pré-sélection a priori, qui évite le codage multiple ou diminue le nombre de codeurs à mettre en œuvre en parallèle.All the studies mentioned above tend to solve the problem of the complexity of the optimal selection of the mode by the use, total or partial, of a selection or pre-selection a priori, which avoids the multiple coding or decreases the number of coders to be implemented in parallel.
Toutefois, aucune technique de l'art antérieur permettant de réduire la complexité des codages réalisés en parallèle n'a été proposée.However, no technique of the prior art that makes it possible to reduce the complexity of the codings made in parallel has been proposed.
La présente invention vient améliorer la situation.The present invention improves the situation.
Elle propose à cet effet un procédé de codage multiple en compression, dans lequel un signal d'entrée est destiné à alimenter en parallèle une pluralité de codeurs comportant chacun une succession de blocs fonctionnels, en vue d'un codage en compression dudit signal par chaque codeur.To this end, it proposes a method of multiple coding in compression, in which an input signal is intended to supply in parallel a plurality of coders each comprising a succession of functional blocks, for compression coding of said signal by each encoder.
Le procédé de l'invention comporte les étapes préparatoires ci-après : a) identifier les blocs fonctionnels formant chaque codeur, ainsi qu'une ou plusieurs fonctions réalisées par chaque bloc, b) repérer, parmi lesdites fonctions, des fonctions qui sont communes d'un codeur à l'autre, et c) exécuter lesdites fonctions communes, une fois pour toutes, pour une partie au moins de tous les codeurs, au sein d'au moins un même module de calcul.The method of the invention comprises the following preparatory steps: a) identifying the functional blocks forming each encoder, as well as one or more functions performed by each block, b) identifying, among said functions, functions that are common to each block; one coder to another, and c) performing said common functions, once and for all, for at least a part of all the coders, within at least one same calculation module.
Dans une réalisation avantageuse, les étapes ci-avant sont mises en œuvre par un produit programme d'ordinateur comportant des instructions de programme à cet effet. A ce titre, la présente invention vise aussi un tel produit programme d'ordinateur, destiné à être stocké dans une mémoire d'une~ιmité de traitement, notamment d'un ordinateur ou d'un terminal mobile, ou sur un support mémoire amovible et destiné à coopérer avec un lecteur de l'unité de traitement.In an advantageous embodiment, the above steps are implemented by a computer program product comprising program instructions for this purpose. As such, the present invention also relates to such a computer program product, intended to be stored in a memory of a ~ ιmité treatment, in particular a computer or mobile terminal, or on a removable memory medium and intended to cooperate with a reader of the processing unit.
La présente invention vise aussi un dispositif d'aide à un codage en compression, pour la mise en œuvre du procédé selon l'invention, et comportant alors une mémoire propre à stocker des instructions d'un produit programme d'ordinateur du type précité.The present invention also relates to a device for aiding in compression encoding, for implementing the method according to the invention, and then including a memory adapted to store instructions of a computer program product of the aforementioned type.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés sur lesquels :Other features and advantages of the invention will appear on examining the detailed description below, and the attached drawings in which:
- la figure 1a illustre schématiquement le contexte d'application de la présente invention, avec une pluralité de codeurs mis en parallèle,FIG. 1a schematically illustrates the application context of the present invention, with a plurality of encoders placed in parallel,
- la figure 1b illustre schématiquement l'application de l'invention, avec la mise en partage de blocs fonctionnels entre plusieurs codeurs mis en parallèle,FIG. 1b schematically illustrates the application of the invention, with the sharing of functional blocks between several coders in parallel,
- la figure 1c illustre schématiquement l'application de l'invention, avec la mise en partage de blocs fonctionnels en codage multi-modes,FIG. 1c schematically illustrates the application of the invention, with the sharing of functional blocks in multi-mode coding,
- la figure 1d illustre schématiquement l'application de l'invention, en codage multi-modes en treillis,FIG. 1d schematically illustrates the application of the invention, in trellis multi-mode coding,
- la figure 2 représente schématiquement les blocs fonctionnels principaux d'un codeur fréquentiel perceptuel, - la figure 3 représente schématiquement les blocs fonctionnels principaux d'un codeur à analyse par synthèse, - la figure 4a représente schématiquement les blocs fonctionnels principaux d'un codeur TDAC,FIG. 2 schematically represents the main functional blocks of a perceptual frequency coder; FIG. 3 schematically represents the main functional blocks of a synthesis analysis coder; FIG. 4a schematically represents the main functional blocks of a TDAC coder,
- la figure 4b représente schématiquement le format du flux binaire codé par le codeur de la figure 4a, - la figure 5 représente schématiquement l'application de l'invention à une pluralité de codeurs TDAC en parallèle, selon une réalisation avantageuse, -- la figure 6a représente schématiquement les blocs fonctionnels principaux d'un codeur MPEG-1 (layer I et II),FIG. 4b diagrammatically represents the format of the bit stream coded by the coder of FIG. 4a; FIG. 5 diagrammatically represents the application of the invention to a plurality of TDAC coders in parallel, in an advantageous embodiment; FIG. 6a schematically represents the main functional blocks of an MPEG-1 (layer I and II) coder,
- la figure 6b représente schématiquement le format du flux binaire codé par le codeur de la figure 6a,FIG. 6b diagrammatically represents the format of the bitstream coded by the coder of FIG. 6a;
- la figure 7 représente schématiquement l'application de l'invention à une pluralité de codeurs MPEG-1 (layer I et II) mis en parallèle, selon une réalisation avantageuse,FIG. 7 diagrammatically represents the application of the invention to a plurality of MPEG-1 coders (layer I and II) connected in parallel, according to an advantageous embodiment,
- et la figure 8 représente plus en détails les blocs fonctionnels d'un codeur à analyse par synthèse, ici de type NB-AMR selon la norme 3GPP.and FIG. 8 shows in more detail the functional blocks of a synthesis analysis coder, here of the NB-AMR type according to the 3GPP standard.
On se réfère tout d'abord à la figure 1a sur laquelle on a représenté une pluralité de codeurs CO, C1 , ..., CN, en parallèle et recevant chacun un signal d'entrée s0. Chaque codeur comporte des blocs fonctionnels BF1 à BFn pour mettre en œuvre des étapes successives de codage et délivrer finalement un flux binaire codé BS0, BS1, ..., BSN. On indique en outre que dans une application en codage multi-modes, les sorties des codeurs C0 à CN sont reliées à un module MM de sélection du mode optimal et le flux binaire BS du codeur optimal est transmis (flèches en traits pointillés de la figure 1a).Referring firstly to FIG. 1a, there is shown a plurality of encoders CO, C1,..., CN, in parallel and each receiving an input signal s 0 . Each encoder comprises functional blocks BF1 to BFn for implementing successive coding steps and ultimately outputting a coded bitstream BS0, BS1, ..., BSN. It is furthermore indicated that in an application in multi-mode coding, the outputs of the coders C0 to CN are connected to an optimal mode selection module MM and the bit stream BS of the optimal coder is transmitted (dotted line arrows in the figure 1a).
Pour une raison de simplicité, tous les codeurs de l'exemple de la figure 1a ont le même nombre de blocs fonctionnels, mais bien entendu tous ces blocs fonctionnels ne sont pas nécessairement prévus dans tous les codeurs, en pratique. Certains blocs fonctionnels BFi sont parfois identiques d'un mode (ou d'un codeur) à l'autre, d'autres ne diffèrent qu'au niveau des quantificateurs. Des relations exploitables existent aussi lorsque l'on utilise des codeurs issus d'une même famille de codage, utilisant des modèles similaires ou calculant des paramètres liés physiquement au signal.For the sake of simplicity, all the coders of the example of FIG. 1a have the same number of functional blocks, but of course all these functional blocks are not necessarily provided in all the coders, in practice. Some BFi function blocks are sometimes identical from one mode (or encoder) to another, while others differ only in quantizer level. Usable relationships also exist when encoders from the same coding family are used, using similar models or computing parameters physically related to the signal.
Ce sont ces relations que la présente invention propose d'exploiter, afin de réduire la complexité des opérations de codage multiple.It is these relationships that the present invention proposes to exploit, in order to reduce the complexity of multiple coding operations.
Dans un premier temps, l'invention propose d'identifier les blocs fonctionnels composant chacun des codeurs. On exploite ensuite les similarités techniques entre les codeurs en considérant les blocs fonctionnels dont les fonctions sont équivalentes ou voisines. Pour chacun de ces blocs, l'invention propose : • d'une part de définir des opérations dites "communes", et de les effectuer une seule fois pour l'ensemble des codeurs; • d'autre part, de mettre en œuvre des méthodes de calcul spécifiques à chaque codeur et utilisant notamment les résultats de ces calculs communs. Ces méthodes de calcul produisent un résultat éventuellement différent de celui produit par un codage complet. L'objectif est alors en fait d'accélérer les traitements en exploitant les informations disponibles et fournies notamment par les calculs communs. De tels procédés permettant d'accélérer les calculs sont par exemple mis en œuvre dans des techniques destinées à réduire la complexité des opérations de transcodage (dites techniques de "transcodage intelligent').In a first step, the invention proposes to identify the functional blocks that make up each of the coders. The technical similarities between the coders are then exploited by considering the functional blocks whose functions are equivalent or similar. For each of these blocks, the invention proposes: on the one hand to define so-called "common" operations, and to perform them only once for all the coders; On the other hand, to implement calculation methods specific to each coder and in particular using the results of these common calculations. These methods of calculation produce a result possibly different from that produced by a complete coding. The objective is then to accelerate the processing by exploiting the information available and provided in particular by the common calculations. Such methods for accelerating calculations are for example implemented in techniques intended to reduce the complexity of transcoding operations (so-called "intelligent transcoding" techniques).
La figure 1 b illustre la solution proposée. Dans l'exemple représenté, les opérations "communes" précitées sont effectuées une seule fois pour une partie au moins des codeurs et, préférentiellement, pour l'ensemble des codeurs, dans un module indépendant Ml qui redistribuera les résultats obtenus à une partie au moins des codeurs, ou préférentiellement à tous ces codeurs. Il s'agit ainsi d'une mise en partage entre une partie au moins de tous les codeurs CO à CN (ou "mutualisation" ci-après) des résultats obtenus. Un tel module indépendant Ml peut faire partie d'un dispositif d'aide à un codage multiple en compression tel que défini ci-avant.Figure 1b illustrates the proposed solution. In the example shown, the aforementioned "common" operations are performed once for at least one part of the coders and, preferably, for all the coders, in an independent module Ml which will redistribute the results. obtained at least part of the coders, or preferably all these coders. It is thus a sharing between at least part of all coders CO to CN (or "pooling" hereafter) of the results obtained. Such an independent module M1 can be part of a device for a multiple compression coding as defined above.
Dans une variante avantageuse, plutôt que d'avoir recours à un module de calcul externe Ml, on utilise le ou les blocs fonctionnels existants BF1 à BFn d'un même ou de plusieurs codeurs distincts, ce ou ces codeurs étant choisis selon des critères qui seront décrits plus loin.In an advantageous variant, rather than having recourse to an external calculation module M1, the existing functional block or blocks BF1 to BFn of the same or more different coders is used, this or these coders being chosen according to criteria which will be described later.
La présente invention peut mettre en œuvre plusieurs stratégies qui, bien entendu, peuvent différer selon le rôle du bloc fonctionnel considéré.The present invention can implement several strategies which, of course, may differ depending on the role of the functional block considered.
Une première stratégie consiste à utiliser les paramètres du codeur dont le débit est le plus faible pour focaliser la recherche des paramètres pour tous les autres modes.A first strategy is to use the parameters of the encoder whose bit rate is the lowest to focus the search parameters for all other modes.
A l'inverse, une deuxième stratégie consiste à utiliser les paramètres du codeur dont le débit est le plus élevé, puis de "dégrader" progressivement jusqu'au codeur dont le débit est le plus faible.Conversely, a second strategy is to use the parameters of the encoder whose rate is the highest, then to "degrade" progressively to the encoder whose bit rate is the lowest.
Bien entendu, si l'on souhaite privilégier un codeur particulier, il est possible de coder un segment de signal en utilisant ce codeur, puis, en appliquant les deux stratégies ci-avant, d'atteindre les codeurs de débit supérieur et inférieur.Of course, if it is desired to favor a particular encoder, it is possible to encode a signal segment using this encoder, then, by applying the two strategies above, to reach the upper and lower rate encoders.
Bien entendu, d'autres critères que le débit peuvent être utilisés pour piloter la recherche. On peut par exemple, pour certains blocs fonctionnels, favoriser le codeur dont les paramètres se prêtent le mieux à une extraction (ou une analyse) et/ou à un codage efficaces des paramètres similaires des autres codeurs, l'efficacité pouvant être jugée selon la complexité, la qualité ou un compromis des deux.Of course, other criteria than flow can be used to drive the search. For some functional blocks, for example, it is possible to favor the encoder whose parameters lend themselves best to efficient extraction (or analysis) and / or coding of similar parameters from the others. coders, the efficiency being judged according to the complexity, the quality or a compromise of the two.
Il peut être prévu aussi de créer un module de codage indépendant, non présent dans les codeurs, mais permettant un codage plus efficace des paramètres du bloc fonctionnel considéré, pour l'ensemble des codeurs.It may also be envisaged to create an independent coding module, not present in the coders, but allowing a more efficient coding of the parameters of the functional block considered, for all the coders.
Ces diverses stratégies de mise en œuvre sont particulièrement intéressantes dans le cas du codage multi-modes. Dans ce contexte illustré à la figure 1c, la présente invention permet de réduire la complexité des calculs préliminaires à la sélection a posteriori d'un codeur effectuée en dernière étape, par exemple par le dernier module MM avant la transmission du flux binaire BS.These various implementation strategies are particularly interesting in the case of multi-mode coding. In this context illustrated in FIG. 1c, the present invention makes it possible to reduce the complexity of the calculations preliminary to the a posteriori selection of an encoder carried out in the last step, for example by the last module MM before the transmission of the bit stream BS.
Dans ce cas particulier du codage multi-modes, une variante de la présente invention, représentée dans l'exemple de la figure 1c, propose d'introduire un module de sélection partielle MSPi (avec i = 1 , 2,..., N) après chaque étape de codage (donc après les blocs fonctionnels BFM à BFiNi mis en compétition et dont le résultat du ou des blocs sélectionnés BFicc va être utilisé par la suite). Ainsi, les similitudes entre les différents modes sont exploitées pour accélérer le calcul de chaque bloc fonctionnel. Tous les schémas de codage ne seront alors pas obligatoirement évalués.In this particular case of multi-mode coding, a variant of the present invention, represented in the example of FIG. 1c, proposes to introduce a partial selection module MSPi (with i = 1, 2, ..., N ) after each coding step (thus after the functional blocks BFM to BFiNi put in competition and whose result of the selected block or blocks BFicc will be used later). Thus, the similarities between the different modes are exploited to speed up the calculation of each functional block. All coding schemes will not necessarily be evaluated.
Une variante plus sophistiquée de la structure multi-modes reposant sur la découpe en blocs fonctionnels décrite ci-avant est maintenant proposée, en référence à la figure 1d. La structure multi-modes de la figure 1d est dite "en treillis", avec plusieurs chemins possibles dans le treillis. En fait, sur la figure 1d, on a représenté tous les chemins possibles du treillis de sorte qu'il se présente sous une forme arborescente. On indique en particulier que chaque chemin du treillis est défini par une combinaison de modes de fonctionnement des blocs fonctionnels, chaque bloc fonctionnel alimentant plusieurs variantes possibles du bloc fonctionnel suivant. Ainsi, chaque mode de codage est issu de la combinaison de modes de fonctionnement des blocs fonctionnels : le bloc fonctionnel 1 possède Ni modes de fonctionnement, le bloc fonctionnel 2 en possède N2, et ainsi de suite jusqu'au bloc P. L'ensemble des NN= Ni x N2 x ... x Np combinaisons possibles est donc représenté par un treillis de NN branches décrivant, bout-à- bout, un codeur multi-modes complet à NN modes. On peut éventuellement supprimer a priori certaines branches du treillis et définir ainsi une arborescence comportant un nombre réduit de branches. Une première particularité de cette structure est qu'elle prévoit, pour un bloc fonctionnel donné, un module de calculs communs par sortie du bloc fonctionnel précédent. Ces modules de calculs communs effectuent les mêmes opérations, mais sur la base de signaux différents puisqu'ils sont issus de blocs antérieurs différents. Avantageusement, les modules de calculs communs d'un même niveau sont mutualisés : les résultats d'un module donné exploitables par les modules suivants sont fournis à ces modules suivants. D'autre part, une sélection partielle, effectuée à l'issue du traitement de chaque bloc fonctionnel, permet avantageusement de supprimer les branches les moins performantes selon le critère choisi. On peut donc réduire le nombre de branches du treillis à évaluer.A more sophisticated variant of the multi-mode structure based on the functional block cutting described above is now proposed, with reference to FIG. 1d. The multi-mode structure of FIG. 1d is called "trellis", with several possible paths in the trellis. In fact, in Figure 1d, all possible paths of the lattice are shown so that it is in a tree form. In particular, it is indicated that each path of the trellis is defined by a combination of operating modes of the functional blocks, each functional block supplying several possible variants of the next functional block. Thus, each coding mode is derived from the combination of operating modes of the functional blocks: the functional block 1 has Ni modes of operation, the functional block 2 has N 2 , and so on up to the block P. The the set of NN = Ni x N 2 x ... x N p possible combinations is therefore represented by a lattice of NN branches describing, end-to-end, a complete multi-mode encoder with NN modes. Some branches of the lattice may be removed a priori and thus define a tree with a reduced number of branches. A first feature of this structure is that it provides, for a given functional block, a common calculation module per output of the previous functional block. These common calculation modules perform the same operations, but on the basis of different signals since they come from different previous blocks. Advantageously, the common calculation modules of the same level are pooled: the results of a given module usable by the following modules are provided to these following modules. On the other hand, a partial selection, made at the end of the processing of each functional block, advantageously makes it possible to eliminate the less efficient branches according to the chosen criterion. It is therefore possible to reduce the number of branches of the trellis to be evaluated.
Une application avantageuse de cette structure multi-modes en treillis est la suivante.An advantageous application of this multi-mode lattice structure is as follows.
Lorsque les blocs fonctionnels sont susceptibles d'opérer à des débits respectifs différents et en utilisant des paramètres respectifs propres auxdits débits, pour un bloc fonctionnel donné, le chemin du treillis choisi est celui traversant le bloc fonctionnel de débit le plus faible, ou encore le bloc fonctionnel de débit le plus élevé selon le contexte de codage, et les résultats obtenus du bloc fonctionnel de débit le plus faible (ou le plus élevé) sont adaptés aux débits d'une partie au moins des autres blocs fonctionnels par une recherche focalisée de paramètres pour une partie au moins de tous les autres blocs fonctionnels, jusqu'au bloc fonctionnel de débit le plus élevé (ou respectivement le plus faible).When the functional blocks are capable of operating at different respective flow rates and using respective parameters specific to said flow rates, for a given functional block, the chosen trellis path is the one passing through the lowest flow functional block, or the highest rate functional block according to the coding context, and the results obtained from the lowest (or highest) bit rate functional block are adapted to the bit rates of at least a portion of the other functional blocks by a focused search of parameters for at least part of all other functional blocks, up to the highest (or lowest) rate functional block.
En variante, on choisit un bloc fonctionnel de débit donné et on adapte progressivement au moins une partie des paramètres propres à ce bloc fonctionnel :As a variant, a given flow function block is chosen and at least a portion of the parameters specific to this functional block are progressively adapted:
- jusqu'au bloc fonctionnel capable d'opérer au débit le plus faible, par recherche focalisée, et - jusqu'au bloc fonctionnel capable d'opérer au débit le plus élevé, par recherche focalisée.- to the functional block capable of operating at the lowest rate, by focussed search, and - to the functional block capable of operating at the highest rate, by focussed search.
De manière générale, on réduit ainsi la complexité associée au codage multiple.In general, this reduces the complexity associated with multiple coding.
L'invention s'applique à tout schéma de compression mettant en œuvre le codage multiple d'un contenu multimédia. Trois exemples de réalisation sont présentés dans ce qui suit, dans le domaine de la compression audio (parole et son). Les deux premiers exemples de réalisation se situent dans le contexte de la famille des codeurs par transformée, dont on peut donner le document suivant à titre de référence :The invention applies to any compression scheme implementing the multiple encoding of a multimedia content. Three embodiments are presented in the following, in the field of audio compression (speech and sound). The first two exemplary embodiments are in the context of the family of transform coders, the following document of which can be given for reference:
"Perceptual Coding of Digital Audio", Painter, T.; Spanias, A.; Proceedings of the IEEE, Vol. 88, No 4, April 2000."Perceptual Coding of Digital Audio", Painter, T .; Spanias, A .; Proceedings of the IEEE, Vol. 88, No. 4, April 2000.
Le troisième exemple de réalisation se situe dans le contexte des codeurs CELP, dont on peut donner le document suivant à titre de référence : "Code Excited Linear Prédiction (CELP): High quality speech at very low bit rates" Schroeder M.R.; Atal B.S.; Acoustics, Speech, and Signal Processing, 1985. Proceedings. 1985 IEEE International Conférence, Page(s): 937-940. Un rappel des principales caractéristiques de ces deux familles de codage est tout d'abord présenté dans ce qui suit.The third exemplary embodiment is in the context of CELP coders, the following document of which can be cited for reference: "Code Excited Linear Prediction (CELP): High quality speech at very low bit rates" Schroeder MR; Atal BS; Acoustics, Speech, and Signal Processing, 1985. Proceedings. 1985 IEEE International Conference, Page (s): 937-940. A reminder of the main characteristics of these two families of coding is first presented in the following.
* Les codeurs par transformée ou en sous bandes II s'agit de codeurs en compression par transformée ou en sous bandes basés sur des critères psychoacoustiques. Ce type de codeur procède par transformation sur des blocs du signal temporel pour obtenir un ensemble de coefficients. Les transformations sont du type temps-fréquence, l'une des transformations les plus utilisées étant la transformée en cosinus discrète modifiée (dit "MDCT, de l'anglais "Modified Discrète Cosine Transform"). Avant la quantification de ces coefficients, un algorithme procède à l'allocation des bits de façon à ce que le bruit de quantification soit le moins audible possible. L'allocation binaire et la quantification des coefficients mettent en œuvre une courbe de masquage, obtenue à l'aide d'un modèle psychoacoustique permettant d'évaluer, pour chaque raie spectrale considérée, un seuil de masquage représentatif de l'amplitude nécessaire pour qu'un son à cette fréquence soit audible. La figure 2 donne le schéma de principe d'un codeur fréquentiel. On remarquera que la structure sous forme de blocs fonctionnels est bien représentée. En se référant à la figure 2, les blocs fonctionnels principaux sont : - un bloc 21 de transformation temps/fréquence du signal audionumérique d'entrée So, - un bloc 22 de détermination d'un modèle perceptuel à partir du signal transformé, - un bloc 23 de quantification et codage, à partir du modèle perceptuel, - et un bloc 24 de formatage du flux binaire pour obtenir une trame audio codée Stc.Transformers or subband coders These are transform or transform compression coders based on psychoacoustic criteria. This type of encoder proceeds by transforming blocks of the time signal to obtain a set of coefficients. The transformations are of the time-frequency type, one of the most used transformations being the Modified Discrete Cosine Transform (MDCT), before the quantization of these coefficients, an algorithm allocates the bits so that the quantization noise is the least audible possible The binary allocation and the quantization of the coefficients implement a masking curve, obtained using a psychoacoustic model allowing to evaluate, for each spectral line considered, a masking threshold representative of the amplitude necessary for a sound at this frequency to be audible Figure 2 gives the schematic diagram of a frequency encoder. in the form of functional blocks is well represented Referring to FIG. 2, the main functional blocks are: a block 21 for transforming the time / frequency of the signal So digital audio input, - a block 22 for determining a perceptual model from the transformed signal, - a block 23 for quantization and coding, from the perceptual model, - and a block 24 for formatting the bit stream to obtain a coded audio frame St c .
* Les codeurs à analyse par synthèse (codage CELP) Dans les codeurs à analyse par synthèse, le modèle de synthèse du signal reconstruit est utilisé au codeur pour extraire les paramètres modélisant les signaux à coder. Ces signaux peuvent être échantillonnés à la fréquence de 8 kHz (bande téléphonique 300-3400 Hz) ou à une fréquence plus élevée, par exemple à 16 kHz pour le codage en bande élargie (bande passante de 50Hz à 7 kHz). Selon l'application et la qualité désirée, le taux de compression varie de 1 à 16. Ces codeurs fonctionnent à des débits de 2 à 16 kbit/s en bande téléphonique, et à des débits de 6 à 32 kbit/s en bande élargie. Le dispositif de codage numérique de type CELP, codeur à analyse par synthèse le pt s utilisé actuellement, est présenté à la figure 3 sous forme de blocs fonctionnels principaux. Le signal de parole s0 est échantillonné et converti en une suite de trames d'un nombre L d'échantillons. Chaque trame est synthétisée en filtrant une forme d'onde extraite d'un répertoire (appelé "dictionnaire"), multipliée par un gain, à travers deux filtres variant dans le temps. Le dictionnaire d'excitation fixe est un ensemble fini de formes d'ondes des L échantillons. Le premier filtre est un filtre de prédiction à long terme. Une analyse "LTP' (pour "Long Term Prédiction") permet d'évaluer les paramètres de ce prédicteur à long terme qui exploite la périodicité des sons voisés, cette composante harmonique étant modélisée sous la forme d'un dictionnaire adaptatif (bloc 32). Le second filtre est un filtre de prédiction à court terme. Les méthodes d'analyse "LPC" (pour "Linear Prédiction Coding") permettent d'obtenir ces paramètres de prédiction à court terme, représentatifs de la fonction de transfert du conduit vocal et caractéristiques de l'enveloppe du spectre du signal. Le procédé utilisé pour déterminer la séquence d'innovation est la méthode d'analyse par synthèse qui se résume comme suit. Au codeur, un grand nombre de séquences d'innovation du dictionnaire d'excitation fixes sont filtrées par le filtre LPC (filtre de synthèse du bloc fonctionnel 34 de la figure 3). Au préalable, l'excitation adaptative a été obtenue de façon similaire. La forme d'onde sélectionnée est celle produisant le signal synthétique le plus proche du signal original (minimisation de l'erreur au niveau du bloc fonctionnel 35), selon un critère de pondération perceptuelle (bloc fonctionnel 36) qui est connu en général sous le nom de critère "CELP Dans le schéma de principe du codeur CELP donné à la figure 3, l'extraction de la fréquence fondamentale des sons voisés (ou "pitch"), appliquée sur le signal résultant de l'analyse LPC du bloc 31, permet ensuite d'en extraire la corrélation à long terme au niveau du bloc 32, appelée composante harmonique ou excitation adaptative (E.A.). Le signal résiduel est enfin modélisé classiquement par quelques impulsions, dont l'ensemble des positions est prédéfini dans un répertoire, appelé répertoire d'excitation fixe (E.F) dans le bloc 33.* Synthetic analysis coders (CELP coding) In synthesis analysis coders, the reconstructed signal synthesis model is used at the encoder to extract the parameters modeling the signals to be coded. These signals can be sampled at the frequency of 8 kHz (telephone band 300-3400 Hz) or at a higher frequency, for example at 16 kHz for wideband coding (bandwidth 50 Hz to 7 kHz). Depending on the application and the desired quality, the compression ratio varies from 1 to 16. These encoders operate at rates of 2 to 16 kbit / s in the telephone band, and at speeds of 6 to 32 kbit / s in the extended band. . The CELP type digital coding device, currently used as a synthesis analysis coder, is presented in FIG. 3 in the form of main functional blocks. The speech signal s 0 is sampled and converted into a sequence of frames of a number L of samples. Each frame is synthesized by filtering a waveform extracted from a directory (called "dictionary"), multiplied by a gain, through two filters varying in time. The fixed excitation dictionary is a finite set of waveforms of the L samples. The first filter is a long-term prediction filter. A "LTP" analysis (for "Long Term Prediction") makes it possible to evaluate the parameters of this long-term predictor which exploits the periodicity of the voiced sounds, this harmonic component being modeled in the form of an adaptive dictionary (block 32) The second filter is a short-term prediction filter. "Linear Prediction Coding" (LPC) analysis methods make it possible to obtain these short-term prediction parameters, which are representative of the vocal tract transfer function. and Characteristics of the Signal Spectrum Envelope The method used to determine the innovation sequence is the synthesis analysis method which is summarized as follows: At the encoder, a large number of innovation sequences from the fixed excitation are filtered by the LPC filter (synthesis filter of the function block 34 of Figure 3), beforehand the adaptive excitation has been obtained in a similar way. st that producing the synthetic signal closest to the original signal (minimizing the error at the functional block 35), according to a perceptual weighting criterion (functional block 36) which is generally known as the "CELP" criterion In the block diagram of the CELP coder given in FIG. 3, the extraction of the fundamental frequency of the voiced sounds (or "pitch"), applied to the signal resulting from the LPC analysis of the block 31, then makes it possible to extract the long-term correlation at block 32, called the harmonic component or adaptive excitation (EA). The residual signal is finally modeled conventionally by a few pulses, all of the positions of which are predefined in a directory called fixed excitation directory (EF) in block 33.
Le décodage est, quant à lui, beaucoup moins complexe que le codage. Le flux binaire généré par le codeur permet au décodeur, après démultiplexage, d'obtenir l'index de quantification de chaque paramètre. Le décodage des paramètres et l'application du modèle de synthèse permettent alors de reconstruire le signal.Decoding is, for its part, much less complex than coding. The bitstream generated by the coder enables the decoder, after demultiplexing, to obtain the quantization index of each parameter. The decoding of the parameters and the application of the synthesis model then make it possible to reconstruct the signal.
On décrit ci-après les trois exemples de réalisation précités, en commençant tout d'abord par un codeur par transformée du type représenté sur la figure 2.The three aforementioned embodiments are described below, starting first with a transform coder of the type shown in FIG. 2.
* Premier exemple de réalisation : application à un codeur "TDAC"* First example of implementation: application to a coder "TDAC"
Le premier exemple de réalisation concerne le codeur fréquentiel perceptuel dit "TDAC" et décrit notamment dans le document publié US-2001/027393. Ce codeur TDAC est utilisé pour coder des signaux audio numériques échantillonnés à 16 kHz (bande élargie). La figure 4a illustre les blocs fonctionnels principaux de ce codeur. Un signal audio x(n) limité en bande à 7 kHz et échantillonné à 16 kHz est découpé en trames de 320 échantillons (20 ms). Une transformée en cosinus discrète modifiée (ou "MDC ) est appliquée (bloc fonctionnel 41) sur des trames du signal d'entrée de 640 échantillons avec un recouvrement de 50 %, donc avec un rafraîchissement de l'analyse MDCT toutes les 20 ms. On limite le spectre à 7225 Hz en mettant à zéro les 31 derniers coefficients (seuls les 289 premiers coefficients sont différents de 0). Une courbe de masquage (bloc 42) est déterminée à partir de ce spectre et tous les coefficients masqués sont mis à zéro. Le spectre est divisé en 32 bandes de largeurs inégales. Les éventuelles bandes masquées sont déterminées en fonction des coefficients transformés des signaux. Pour chaque bande du spectre, l'énergie des coefficients MDCT est calculée (pour obtenir des facteurs d'échelle). Les 32 facteurs d'échelle constituent l'enveloppe spectrale du signal qui est ensuite quantifiée puis codée* par on codage entropique (bloc fonctionnel 43), et enfin transmise dans la trame codée sc.The first embodiment relates to the perceptual frequency coder called "TDAC" and described in particular in the published document US-2001/027393. This TDAC encoder is used to encode digital audio signals sampled at 16 kHz (wide band). Figure 4a illustrates the main functional blocks of this encoder. An audio signal x (n) limited in band at 7 kHz and sampled at 16 kHz is cut into frames of 320 samples (20 ms). A modified discrete cosine transform (or "MDC") is applied (function block 41) on input signal frames of 640 samples with 50% overlap, thus with a refresh of the MDCT analysis every 20 ms. The spectrum is limited to 7225 Hz by setting the last 31 coefficients to zero (only the first 289 coefficients are different of 0). A masking curve (block 42) is determined from this spectrum and all masked coefficients are set to zero. The spectrum is divided into 32 bands of unequal widths. Any masked bands are determined according to the transformed coefficients of the signals. For each band of the spectrum, the energy of the MDCT coefficients is calculated (to obtain scale factors). The 32 scale factors constitute the spectral envelope of the signal which is then quantized and coded * by entropy coding (functional block 43), and finally transmitted in the coded frame s c .
L'allocation dynamique des bits (bloc fonctionnel 44) se base sur une courbe de masquage par bande (bloc fonctionnel 42) calculée à partir de la version décodée et déquantifiée de l'enveloppe spectrale. Cette mesure permet d'avoir une compatibilité entre l'allocation binaire du codeur et du décodeur. Les coefficients MDCT normalisés dans chaque bande sont ensuite quantifiés (bloc fonctionnel 45) par des quantificateurs vectoriels utilisant des dictionnaires imbriqués en taille, les dictionnaires étant composés d'une union de codes à permutation de type II. Finalement, en se référant à la figure 4b, les informations sur la tonalité (codées ici sur un bit Bi) et le voisement (codées ici sur un bit Bo), ainsi que l'enveloppe spectrale eq(i) et les coefficients codés yq(j) sont multiplexes (bloc 46 de la figure 4a) et transmis en trames.The dynamic allocation of the bits (functional block 44) is based on a band masking curve (functional block 42) calculated from the decoded and dequantized version of the spectral envelope. This measurement makes it possible to have compatibility between the bit allocation of the encoder and the decoder. The normalized MDCT coefficients in each band are then quantized (function block 45) by vector quantizers using size-nested dictionaries, the dictionaries being composed of a type II permutation code union. Finally, with reference to FIG. 4b, the information on the tone (coded here on a bit Bi) and the voicing (coded here on a bit Bo), as well as the spectral envelope e q (i) and the coded coefficients y q (j) are multiplexed (block 46 of FIG. 4a) and transmitted in frames.
Ce codeur pouvant fonctionner à plusieurs débits, on se propose de réaliser un codeur multi-débits par exemple à 16, 24 et 32 kbit/s. Dans ce schéma de codage, les blocs fonctionnels suivants peuvent être mis en commun entre les différents modes: • Transformée MDCT (bloc 41), • Détection de voisement (bloc fonctionnel 47 de la figure 4a) et détection de tonalité (bloc fonctionnel 48 de la figure 4a), • Calcul, quantification et codage entropique de l'enveloppe spectrale (bloc 43), • Calcul d'une courbe de masquage, coefficient par coefficient, et d'une courbe de masquage par bande (bloc 42).Since this encoder can operate at several rates, it is proposed to make a multi-rate encoder for example at 16, 24 and 32 kbit / s. In this coding scheme, the following functional blocks can be shared between the different modes: MDCT Transform (Block 41), Voicing Detection (Function Block 47 of FIG. 4a) and Tone Detection (Function Block 48 of FIG. Figure 4a), • Calculation, quantization and entropic coding of the spectral envelope (block 43), • Calculation of a masking curve, coefficient by coefficient, and a masking curve per band (block 42).
Ces différents blocs constituent 61,5% de la complexité du traitement dans le processus de codage. Leur factorisation est donc d'un intérêt important pour réduire cette complexité lors de la génération de plusieurs flux binaires correspondants à des débits différents.These different blocks make up 61.5% of the processing complexity in the coding process. Their factorization is therefore of great interest to reduce this complexity when generating several bit streams corresponding to different rates.
Les résultats de ces blocs fonctionnels permettent déjà d'obtenir une première partie commune à tous les flux binaires de sortie qui contient les bits d'information sur le voisement, la tonalité et l'enveloppe spectrale codée.The results of these functional blocks already make it possible to obtain a first portion common to all the output bit streams which contains the information bits on the voicing, the tone and the coded spectral envelope.
Dans une première variante de cet exemple de réalisation, il est possible de réaliser les opérations d'allocation des bits et de quantification pour chacun des flux binaires de sortie correspondant à chacun des débits binaires considérés. Ces deux opérations sont effectuées exactement de la même manière qu'habituellement dans un codeur TDAC.In a first variant of this exemplary embodiment, it is possible to carry out the bit allocation and quantization operations for each of the output bit streams corresponding to each of the bit rates considered. These two operations are performed in exactly the same way as usual in a TDAC encoder.
Dans une seconde variante plus avancée telle qu'illustrée sur la figure 5, on peut mettre en œuvre des techniques de transcodage "intelligent (comme décrit dans le document publié US-2001/027393 cité ci-avant) pour réduire davantage la complexité et mutualiser certaines opérations, notamment : - l'allocation de bits (bloc fonctionnel 44), - et aussi la quantification des coefficients (blocs fonctionnels 45_i), comme on le verra ci-après. Sur la figure 5, les blocs fonctionnels mis en partage entre les codeurs (ou "mutualisés") portent la même référence que ceux d'un seul codeur TDAC tel que représenté sur la figure 4a. Il s'agit des blocs 41 , 42, 47, 48, 43 et 44. En particulier, le bloc 44 d'allocation des bits est utilisé en plusieurs passes, et le nombre de bits alloués est ajusté pour la transquantification qu'effectue chaque codeur (blocs 45_1, ... , 45_(K-2), 45_(K-1)), comme on le verra ci- après. On remarque en outre que ces transquantifications utilisent les résultats obtenus par le bloc fonctionnel 45_0 de quantification pour un codeur choisi, d'indice 0 (le codeur de débit le plus faible dans l'exemple décrit). Finalement, les seuls biocs fonctionnels des codeurs qui agissent sans interaction réelle sont les blocs de multiplexage 46_0, 46_1 ,..., 46 K-2), 46_(K-1), bien qu'ils utilisent tous les mêmes informations de voisement et de tonalité, ainsi que la même enveloppe spectrale codée. A ce titre, on indique simplement qu'une mutualisation partielle du multiplexage peut être menée, là encore.In a second, more advanced variant as illustrated in FIG. 5, it is possible to implement "intelligent" transcoding techniques (as described in the document published US-2001/027393 cited above) to further reduce complexity and pool certain operations, in particular: the allocation of bits (functional block 44), and also the quantization of the coefficients (functional blocks 45_i), as will be seen hereafter: In Figure 5, the functional blocks shared between the encoders (or "pooled") bear the same reference as those of a single TDAC encoder as represented in FIG. 4a: blocks 41, 42, 47, 48, 43 and 44. in particular, the bit allocation block 44 is used in several passes, and the number of bits allocated is adjusted for the transquantification performed by each coder (blocks 45_1,..., 45_ (K-2), 45_ (K -1)), as will be seen below. Note further that these transquantifications use the results obtained by the quantization function block 45_0 for a chosen encoder, index 0 (the lowest rate encoder in the example described). Finally, the only functional biocs of the encoders that act without real interaction are the multiplexing blocks 46_0, 46_1, ..., 46 K-2), 46_ (K-1), although they all use the same voicing information and tone, as well as the same coded spectral envelope. As such, it is simply stated that a partial pooling of the multiplexing can be conducted, again.
Pour les deux blocs fonctionnels d'allocation de bits et de quantification, la stratégie employée consiste à exploiter les résultats des deux blocs fonctionnels d'allocation des bits et de quantification réalisés pour le flux binaire (0), au débit le plus bas D0 , pour accélérer les opérations des deux blocs fonctionnels correspondants pour les K-1 autres flux binaire (k) (l ≤ k <K). On peut aussi considérer le schéma de codage multi-débits qui utilise un bloc fonctionnel d'allocation de bits par flux binaire (sans factorisation prévue pour ce bloc) mais mutualise une partie des opérations de quantification ensuite.For the two bit allocation and quantization functional blocks, the strategy employed is to exploit the results of the two bit allocation and quantization functional blocks made for the bit stream (0), at the lowest bit rate D 0 , to accelerate the operations of the two corresponding function blocks for the K-1 other bitstream (k) (l ≤ k <K). It is also possible to consider the multi-rate coding scheme which uses a bit-allocation functional block per bit stream (without factorization provided for this block) but mutualizes a part of the quantization operations thereafter.
Les techniques de codage multiple présentées ci-après se basent avantageusement sur un transcodage intelligent utilisé pour la réduction du débit binaire de flux audio codé, généralement situé dans un nœud du réseau.The multiple coding techniques presented below are advantageously based on intelligent transcoding used for the reduction of the coded audio stream bit rate, generally located in a node of the network.
Dans la suite, les flux binaires k , 0 ≤ k < K, sont classés suivant un ordre croissant de débits (DQ< D-I <...< Dκ-ι). Ainsi, le flux binaire 0 correspond au débit binaire le plus bas. * Allocation de bitsIn the following, the bit streams k, 0 ≤ k <K, are classified according to an increasing order of rates (DQ <D- I <... <Dκ-ι). Thus, bit stream 0 corresponds to the lowest bit rate. * Bit allocation
L'allocation de bits dans le codeur TDAC se réalise en deux phases. D'abord un premier calcul du nombre de bits à allouer à chaque bande est effectué de préférence suivant la formule suivante : où c = est une constante, Bit allocation in the TDAC encoder is done in two phases. Firstly, a first calculation of the number of bits to be allocated to each band is preferably carried out according to the following formula: where c = is a constant,
B est le nombre total de bits disponibles,B is the total number of bits available,
M est le nombre de bandes, eq ( ) est la valeur décodée et déquantifiée de l'enveloppe spectrale sur la bande , et sb(î) est le seuil de masquage pour cette bande.M is the number of bands, e q () is the decoded and dequantized value of the spectral envelope on the band, and s b (1) is the masking threshold for this band.
Chacune des valeurs obtenues est arrondie à l'entier naturel le plus proche. Si le débit total alloué n'est pas exactement égal à celui disponible, une seconde phase est utilisée pour réaliser le réajustement. Cette étape se fait préférentiellement par une succession d'opérations itératives basées sur un critère perceptuel qui ajoute ou retire des bits aux bandes.Each of the values obtained is rounded to the nearest natural integer. If the total flow allocated is not exactly equal to that available, a second phase is used to perform the readjustment. This step is preferably done by a succession of iterative operations based on a perceptual criterion that adds or removes bits from the bands.
Ainsi, si le nombre total de bits distribués est inférieur à celui disponible, l'ajout de bits se fait aux bandes où l'amélioration perceptuelle est la plus importante. Cette amélioration perceptuelle est mesurée par la variation du rapport bruit à masque entre l'allocation initiale et finale des bandes. Le débit est augmenté pour la bande où cette variation est la plus grande. Dans le cas contraire où le nombre total de bits distribués est supérieur à celui disponible, l'extraction de bits sur les bandes se fait de manière duale à cette dernière procédure.Thus, if the total number of bits distributed is less than that available, the bits are added to the bands where the perceptual improvement is the most important. This perceptual improvement is measured by the variation of the noise to mask ratio between the initial and final allocation of the bands. The rate is increased for the band where this variation is greatest. In the opposite case where the total number of distributed bits is greater than that available, the extraction of bits on the bands is dual to the latter procedure.
Dans le schéma de codage multi-débits correspondant au codeur TDAC, il est possible de factoriser certaines opérations pour l'allocation de bits. Ainsi, la première phase de détermination par la formule ci-avant peut se faire une seule fois en se basant sur le débit binaire D0 le plus bas. La phase de réajustement en ajoutant des bits peut se faire ensuite de manière continue. Une fois que le nombre total de bit distribué atteint le nombre correspondant à un débit binaire d'un flux binaire k, k=1 ,2...,K-1 , la distribution courante est considérée comme celle qui est utilisée pour la quantification des vecteurs de coefficients normalisés par bande de ce flux binaire.In the multi-rate coding scheme corresponding to the TDAC coder, it is possible to factorize certain operations for bit allocation. So, the first determination step by the above formula can be done once based on the lowest bit rate D 0 . The readjustment phase by adding bits can then be done continuously. Once the total number of bits distributed reaches the number corresponding to a bit rate of a bit stream k, k = 1, 2 ..., K-1, the current distribution is considered as that which is used for the quantization band-normalized coefficient vectors of this bit stream.
* Quantification des coefficients Pour ce qui concerne la quantification des coefficients, le codeur TDAC utilise une quantification vectorielle utilisant des dictionnaires imbriqués en taille, les dictionnaires étant composés d'une union de codes à permutation de type II. Ce type de quantification s'applique sur chacun des vecteurs des coefficients MDCT sur une bande. Un tel vecteur est normalisé au préalable en utilisant la valeur déquantifiée de l'enveloppe spectrale sur cette bande. On note :Quantification of Coefficients As far as the quantization of coefficients is concerned, the TDAC encoder uses a vector quantization using size-nested dictionaries, the dictionaries being composed of a type II permutation code union. This type of quantization applies to each of the vectors of the MDCT coefficients on a band. Such a vector is normalized beforehand by using the dequantized value of the spectral envelope on this band. We notice :
- C(b,,^,) le dictionnaire correspondant au nombre de bits bl et à la dimension di t - C (b ,, ^,) the dictionary corresponding to the number of bits b l and the dimension d it
- N(bi 5^,) le nombre d'éléments dans ce dictionnaire,- N (b i 5 ^,) the number of elements in this dictionary,
- CL{t>i,d l'ensemble de ses leaders, et - Nl(b,,^) le nombre de leaders.- CL {t> i , d all of its leaders, and - Nl (b ,, ^) the number of leaders.
Le résultat de quantification pour chaque bande i de la trame est un mot de code mt transmis dans le flux binaire. Il représente l'index du vecteur quantifié dans le dictionnaire et calculé à partir des informations suivantes : • le numéro L, , dans l'ensemble CL(b{,df) des leaders du dictionnaire C(b„dt), du vecteur leader quantifié Y (i) plus proche voisin d'un leader courant Y(i) ,The quantization result for each band i of the frame is a code word m t transmitted in the bit stream. It represents the index of the quantized vector in the dictionary and calculated from the following information: • the number L, in the set CL (b { , d f ) of the leaders of the dictionary C (b "d t ), of quantized leader vector Y (i) nearest neighbor of a current leader Y (i),
• le rang η de Yq (i) dans la classe du leader Ϋq (i) , • et la combinaison de signes signq(i) à appliquer à Yq (i) (ou à Ϋq (i)), où l'on précise les notations suivantes : • Y(i) est le vecteur des valeurs absolues des coefficients normalisés de la bande i, • sign(i) est le vecteur des signes des coefficients normalisés de la bande i,The rank η of Y q (i) in the class of the leader Ϋ q (i), • and the combination of signs sign q (i) to be applied to Y q (i) (or to Ϋ q (i)), where we specify the following notations: • Y (i) is the vector of the absolute values of normalized coefficients of the band i, • sign (i) is the vector of the signs of the normalized coefficients of the band i,
• Y(î) est le vecteur leader du vecteur Y{i) précité, obtenu par ordonnancement décroissant de ses composantes (la permutation correspondante est notée perm(i)), • et Yq (i) est le vecteur quantifié de Y(i) (ou "/e plus proche voisin" de Y(i) dans le dictionnaire C(bj 5 ,)).• Y (i) is the leading vector of the aforementioned vector Y (i), obtained by descending ordering of its components (the corresponding permutation is denoted perm (i)), • and Y q (i) is the quantized vector of Y ( i) (or "/ e nearest neighbor" of Y (i) in the dictionary C (bj 5 ,)).
Dans la suite, la notation α(A) , avec un exposant k , indique le paramètre utilisé dans le traitement effectué pour obtenir le flux binaire du codeur k. Les paramètres sans cet exposant étant calculés une seule fois pour toutes pour le flux binaire 0. Ils sont indépendants du débit (ou du mode) considéré.In the following, the notation α (A) , with an exponent k, indicates the parameter used in the processing performed to obtain the bitstream of the encoder k. The parameters without this exponent being calculated once and for all for the bit stream 0. They are independent of the flow (or mode) considered.
La propriété "d'imbrication" des dictionnaires précitée s'exprime selon la relation : avec aussi : The "nesting" property of the aforementioned dictionaries is expressed according to the relation: with also:
On note le complémentaire de dans Son cardinal est égal à L'obtention des mots de code (avec 0≤k <K), résultats de la quantification du vecteur des coefficients de la bande i pour chacun des flux binaires k, se fait comme suit. • Pour le flux binaire k = 0 , l'opération de quantification se fait de manière classique comme habituellement dans le codeur TDAC. Elle permet d'obtenir les paramètres, et r 0) qui permettent de construire le mot de code w,(0) . On détermine d'ailleurs dans cette même étape les vecteurs Y(i) et sign(i) . Ils sont stockés en mémoire, ainsi que la permutation correspondante perm(i) , pour être utilisés, le cas échéant, dans les étapes suivantes relatives aux autres flux binaires. • Pour les flux binaires l ≤ k < K , on procède de manière incrémentale, de k = l jusqu'à k ≈ K-î, en utilisant préférentiellement les étapes suivantes : Si (bP ≈ bW) alors : 1. le mot de code, sur la bande i, de la trame du flux binaire k est le même que celui de la trame du flux binaire (k-l) : Sinon, i.e. {b,k) > bjk-l)) : 2. On recherche parmi les N- -1- ,d,)) leaders de CL(bîk),d,) le plus proche voisin de ?(/) , 3. Avec le résultat de l'étape 2 et connaissant le plus proche voisin de î(i) dans on teste si le plus proche voisin de ?(/) dans est dans (cas "Flag=0" ci- après) ou CE(b fc), d) (cas "Flag=1" ci-après), 4. Si Flag=0 ((le leader le plus proche de Y (/) dans est aussi son plus proche voisin dans CL(b k),dt)) alors : Si Flag=1 (le leader le plus proche de Ϋ(i) dans trouvé à l'étape 2 est aussi son plus proche voisin dans CJ(b,(/° ,d)), soit ήk) son numéro (avec L{k) ≥ NLψ;k~X),d ), alors on effectue les étapes ci-après : a. Recherche du rang r,w de (nouveau vecteur quantifié de Y(i) dans la classe du leader par exemple par l'algorithme de Schalkwijk en utilisant permit), b. Détermination de en utilisant sign(i) et perm(i), c. Détermination du mot de code ,(i) à partir de r/*-1 et sign(k)(i) .We notice the complementary of in His cardinal is equal to Obtaining the codewords (with 0≤k <K), results of the quantization of the vector of the coefficients of the band i for each of the bit streams k, is as follows. • For the bit stream k = 0, the quantization operation is done conventionally as usual in the TDAC coder. It allows to obtain the parameters, and r 0) which make it possible to construct the code word w, (0) . Moreover, the vectors Y (i) and sign (i) are determined in this same step. They are stored in memory, as well as the perm permutation perm (i), to be used, if necessary, in the following steps relating to other bitstreams. • For the bit streams l ≤ k <K, we proceed incrementally, from k = 1 to k ≈ K-1, preferably using the following steps: If (bP ≈ bW) then: 1. the word of code, on the band i, the frame of the bit stream k is the same as that of the frame of the bit stream (kl): Otherwise, ie {b, k) > bj k - l) ): 2. We search among the N- -1 -, d,)) leaders of CL (b1k ) , d,) nearest neighbor of? (/), 3. With the result of step 2 and knowing the nearest neighbor of i (i) in we test if the nearest neighbor of? (/) in is in (case "Flag = 0" below) or EC (b k), d) ("Flag = 1" case below), 4. If Flag = 0 ((the closest leader of Y (/) in is also its closest neighbor in CL (b k) , d t )) then: If Flag = 1 (the closest leader to Ϋ (i) in found in step 2 is also its nearest neighbor in CJ (b, (/ °, d)), or ή k) its number (with L {k) ≥ NLψ; k ~ X) , d), then the following steps are performed: a. Search for rank r, w of (new quantified vector of Y (i) in the leader's class for example by the Schalkwijk algorithm using permit), b. Determination of using sign (i) and perm (i), c. Determining the codeword, (i) from r / * - 1 and sign (k) (i).
* Deuxième exemple de réalisation : application à un codeur par transformée de type MPEG-1 Layer l&llSecond Example: Application to an MPEG-1 Layer Transform Encoder
Le codeur MPEG-1 Layer l&ll, présenté à la figure 6a, utilise un banc de filtres à 32 sous-bandes uniformes (bloc 61 de la figure 6a) pour réaliser la transformation temps/fréquence du signal audio d'entrée so. Les échantillons de sortie de chaque sous-bande sont regroupés, puis normalisés par un facteur d'échelle commun (déterminé par le bloc fonctionnel 67) avant d'être quantifiés (bloc 62). Le nombre de niveaux du quantificateur scalaire uniforme utilisé pour chaque sous-bande résulte d'une procédure d'allocation dynamique des bits (réalisée par le bloc 63). Cette procédure utilise un modèle psychoacoustique (bloc 64) pour déterminer la répartition des bits qui rend le bruit de quantification le moins perceptible possible. Les modèles d'audition proposés dans la norme se basent sur l'estimation du spectre obtenu par une transformée de Fourier rapide (FFT) du signal temporel d'entrée (réalisée par le bloc 65). En se référant à la figure 6b, la trame sc, multiplexée par le bloc 66 de la figure 6a et qui est finalement transmise, contient, après un champ d'entêté HD, l'ensemble des échantillons des sous-bandes quantifiés ESB, qui représentent l'information principale, et une information complémentaire utilisée pour l'opération de décodage constituée par les facteurs d'échelle FE et l'allocation de bits Ai.The MPEG-1 Layer encoder l & l1, shown in FIG. 6a, uses a filterbank with 32 uniform subbands (block 61 of FIG. 6a) to perform the time / frequency transformation of the input audio signal n0. The output samples of each subband are grouped and then normalized by a common scale factor (determined by function block 67) before being quantized (block 62). The number of levels of the uniform scalar quantizer used for each subband results from a dynamic bit allocation procedure (performed by block 63). This procedure uses a psychoacoustic model (block 64) to determine the bit distribution that makes the quantization noise as noticeable as possible. The hearing models proposed in the standard are based on the estimation of the spectrum obtained by a fast Fourier transform (FFT) of the input temporal signal (made by block 65). Referring to FIG. 6b, the frame s c , multiplexed by the block 66 of FIG. 6a and which is finally transmitted, contains, after a headless field HD, the set of samples of the quantized subbands E S B, which represent the main information, and complementary information used for the decoding operation constituted by the scaling factors F E and the allocation of bits Ai.
A partir de ce schéma de codage, la construction d'un codeur multi-débits, dans une application de l'invention, peut être réalisée en mettant en commun les blocs fonctionnels suivants, en se référant à la figure 7 : • Banc de filtres d'analyse 61 • Détermination des facteurs d'échelle 67 • Calcul 65 de la transformée de Fourier FFT • Détermination des seuils de masquage suivant un modèle psychoacoustique 64.From this coding scheme, the construction of a multi-rate encoder, in one application of the invention, can be carried out by pooling the following functional blocks, with reference to FIG. 7: • Filter bank analysis 61 • Determination of scaling factors 67 • FFT Fourier transform calculation 65 • Determination of masking thresholds according to a psychoacoustic model 64.
Les deux blocs 64 et 65 fournissent déjà les rapports signal à masque (flèches SMR des figures 6a et 7), utilisés pour la procédure d'allocation de bits (bloc 70 de la figure 7).The two blocks 64 and 65 already provide the signal to mask ratios (SMR arrows of FIGS. 6a and 7) used for the bit allocation procedure (block 70 of FIG. 7).
Dans cet exemple de réalisation tel que représenté sur la figure 7, il est possible de tirer profit de la procédure utilisée pour l'allocation de bits pour la mettre aussi en commun, mais en ajoutant toutefois quelques modifications à l'allocation (bloc 70 d'allocation des bits de la figure 7). Seul le bloc fonctionnel de quantification 62_0 à 62_(K-1) est donc spécifique à chaque flux binaire correspondant à un débit Dk , 0 ≤ k ≤ K- l . Il en va de même pour le bloc de multiplexage 66_0 à 66 K-1). * Allocation des bitsIn this exemplary embodiment as shown in FIG. 7, it is possible to take advantage of the procedure used for the allocation of bits to also put it in common, but adding however some modifications to the allocation (block 70). bit allocation of FIG. 7). Only the quantization functional block 62_0 to 62_ (K-1) is therefore specific to each bit stream corresponding to a rate D k , 0 ≤ k ≤ K-1. The same is true for the multiplexing block 66_0 to 66 K-1). * Bit allocation
Dans le codeur MPEG-1 Layer l&ll, l'allocation se fait préférentiellement par une succession d'étapes itératives comme suit.In the MPEG-1 Layer encoder I & II, the allocation is preferentially done by a succession of iterative steps as follows.
Etape 0 : Initialisation à zéro du nombres de bits b, de chacune des sous- bandes i, 0 < / < M .Step 0: Zero initialization of the number of bits b, of each of the sub-bands i, 0 </ <M.
Etape 1 : Mise à jour de la fonction de distorsion NMR( ) (appelée "rapport bruit à masque", de l'anglais "Noise to Mask Ratio") sur chacune des sous- bandes : NMR (i) = SMR (i) - SNR (b, ) , où SNR(bt) est le rapport signal à bruit correspondant au quantificateur ayant un nombre de bits b, , et SMR(i) le rapport signal à masque fourni par le modèle psychoacoustique.Step 1: Update the NMR distortion function () (called "Noise to Mask Ratio") on each of the subbands: NMR (i) = SMR (i) - SNR (b,), where SNR (b t ) is the signal to noise ratio corresponding to the quantizer having a number of bits b,, and SMR (i) the signal to mask ratio provided by the psychoacoustic model.
Etape 2 : Incrémentation du nombre de bits bk de la sous-bande ;0 où cette distorsion est maximale: b,o = b,o +ε , /'„ = argmax[NMR(z')] où ε est une valeur entière positive dépendant de la bande, en général prise égale à 1.Step 2: Incrementing the number of bits b k of the subband; 0 where this distortion is maximum: b, o = b o + ε, / '"= argmax [NMR (z')] where ε is a positive integer value depending on the band, generally taken as equal to 1.
Les étapes 1 et 2 sont répétées de manière itérative jusqu'à ce que le nombre total de bits disponibles, correspondant au débit de fonctionnement, soit distribué. Le résultat est alors un vecteur de distribution de bits (b0,b15...,bM_-).Steps 1 and 2 are repeated iteratively until the total number of available bits, corresponding to the operating rate, is distributed. The result is then a bit distribution vector (b 0 , b 15 ..., b M _-).
Dans le schéma de codage multi-débits, ces étapes sont mises en commun avec quelques autres modifications, notamment : • le bloc fonctionnel ayant pour sortie K vecteurs de distributions de bits est obtenu lorsque le nombre total de bits disponibles correspondant au débit binaire Dk du flux binaire k est distribué, à l'itération des étapes 1 et.2. • L'arrêt de l'itération des étapes 1 et 2 se fait lorsque le nombre total de bits disponibles correspondant au débit binaire le plus élevé Dκ_λ est totalement distribué (on rappelle que les flux binaires sont ordonnés suivant un ordre croissant de débits).In the multi-rate coding scheme, these steps are shared with a few other modifications, including: • the function block having as output K bit distribution vectors is obtained when the total number of available bits corresponding to the bit rate D k of the bit stream k is distributed, at the iteration of steps 1 and . 2. • The stop of the iteration of steps 1 and 2 is done when the total number of available bits corresponding to the highest bit rate D κ _ λ is totally distributed (it is recalled that the bit streams are ordered according to an order increasing flow rates).
On notera que les vecteurs de distribution de bits sont obtenus successivement à partir de k = 0 jusqu'à k = K-l . Les K sorties de ce bloc d'allocation de bits alimentent alors les blocs de quantification pour chacun des flux binaires au débit donné.Note that the bit distribution vectors are obtained successively from k = 0 to k = K-1. The K outputs of this bit allocation block then feed the quantization blocks for each of the bit streams at the given bit rate.
* Troisième exemple de réalisation : application à un codeur de type CELP Le dernier exemple de réalisation concerne le codage de la parole multi- modes à décision a posteriori à partir du codeur 3GPP NB-AMR (pour "Narrow-Band Adaptive Multi-Rate") qui est un codeur de parole en bande téléphonique multi-débits adaptatif, selon une norme 3GPP. Ce codeur qui appartient à la famille bien connue des codeurs CELP dont le principe a été décrit brièvement plus haut, comporte huit modes (ou débits) allant de 12,2 kbit/s à 4,75 kbit/s, tous basés sur la technique ACELP (pour "Algebraic Code Excited Linear Prédiction"). La figure 8 donne le schéma de codage en blocs fonctionnels de ce codeur. Cette structure a été exploitée afin de réaliser un codeur multi-modes à décision a posteriori, basé sur 4 modes du codeur NB- AMR (7,4; 6,7; 5,9; 5,15).Third Embodiment: Application to a CELP Encoder The last exemplary embodiment relates to the coding of the multi-mode speech with a posterior decision from the 3GPP NB-AMR coder (for "Narrow-Band Adaptive Multi-Rate"). ) which is an adaptive multi-rate bandwidth speech coder, according to a 3GPP standard. This encoder, which belongs to the well-known family of CELP coders whose principle was briefly described above, has eight modes (or bit rates) ranging from 12.2 kbit / s to 4.75 kbit / s, all based on the technique ACELP (for "Algebraic Code Excited Linear Prediction"). Figure 8 gives the functional block coding scheme of this encoder. This structure was exploited in order to realize a post-decision multi-mode encoder, based on 4 modes of the NB-AMR encoder (7.4, 6.7, 5.9, 5.15).
Dans une première variante, seule la mutualisation des blocs fonctionnels identiques est exploitée (les résultats des quatre codages sont alors identiques à ceux des quatre codages en parallèle). Dans une deuxième variante, la complexité est encore plus réduite. Les calculs de blocs fonctionnels non identiques pour certains modes sont accélérés en exploitant ceux d'un autre mode ou d'un module de traitement commun, comme on le verra ci-après. Les résultats des quatre codages ainsi mutualisés sont alors différents de ceux des quatre codages en parallèle.In a first variant, only the sharing of the identical functional blocks is exploited (the results of the four codings are then identical to those of the four parallel codings). In a second variant, the complexity is even smaller. The non-identical functional block calculations for some modes are accelerated by exploiting those of another mode or a common processing module, as will be seen below. The results of the four encodings thus shared are then different from those of the four codings in parallel.
Dans une autre variante encore, les blocs fonctionnels de ces quatre modes sont utilisés pour un codage multi-modes en treillis, comme on l'a vu ci-avant en référence à la figure 1d.In yet another variant, the functional blocks of these four modes are used for trellis multi-mode coding, as seen above with reference to Figure 1d.
On rappelle brièvement ci-après les quatre modes (7,4; 6,7; 5,9; 5,15) du codeur 3GPP NB-AMR.The four modes (7.4, 6.7, 5.9, 5.15) of the 3GPP NB-AMR encoder are briefly described below.
Le codeur 3GPP NB-AMR travaille sur un signal de parole limité en bande à 3,4 kHz et échantillonné à 8 kHz découpé en trames de 20 ms (160 échantillons). Chaque trame comporte 4 sous-trames de 5 ms (40 échantillons) regroupées 2 par 2 dans des "super sous-trames" de 10 ms (80 échantillons). Pour tous les modes, les mêmes types de paramètres sont extraits du signal mais avec des variantes de modélisation et/ou de quantification de ces paramètres. Dans le codeur NB-AMR, cinq types de paramètres sont à analyser et à coder. Les paramètres LSP (pour "UneThe 3GPP NB-AMR coder is working on a 3.4 kHz band-limited speech signal sampled at 8 kHz cut into 20 ms frames (160 samples). Each frame has 4 subframes of 5 ms (40 samples) grouped 2 by 2 in "super subframes" of 10 ms (80 samples). For all modes, the same types of parameters are extracted from the signal but with variants of modeling and / or quantification of these parameters. In the NB-AMR encoder, five types of parameters are to be analyzed and coded. LSP settings (for "One
Spectral Pairs') sont traités une fois par trame pour tous les modes, sauf pour le mode 12,2 (donc une fois par super sous-trame). Les autres paramètresSpectral Pairs') are processed once per frame for all modes, except for 12.2 mode (so once per super subframe). Other parameters
(notamment le retard LTP, le gain de l'excitation adaptative, l'excitation fixe, le gain de l'excitation fixe) sont traités une fois par sous-trame.(in particular the LTP delay, the gain of the adaptive excitation, the fixed excitation, the gain of the fixed excitation) are treated once per subframe.
Les quatre modes considérés ici (7,4; 6,7; 5,9; 5,15) se distinguent essentiellement par les quantifications de leurs paramètres. L'allocation binaire de ces 4 modes est résumée dans le tableau 1 ci-après. Tableau 1: Allocation binaire des 4 modes (7,4; 6,7; 5,9; 5,15) du codeur 3GPP NB-AMRThe four modes considered here (7.4, 6.7, 5.9, 5.15) are distinguished essentially by the quantifications of their parameters. The binary allocation of these 4 modes is summarized in Table 1 below. Table 1: Binary Allocation of the 4 Modes (7.4, 6.7, 5.9, 5.15) of the 3GPP NB-AMR Encoder
Ces 4 modes du codeur NB-AMR (7,4; 6,7; 5,9; 5,15) possèdent des modules identiques comme par exemple le pré-traitement, l'analyse des coefficients de prédiction linéaire, le calcul de signal pondéré. Le pré-traitement du signal est un filtrage passe-haut de fréquence de coupure 80 Hz pour supprimer les composantes continues combiné à une division par deux des signaux d'entrée pour éviter des débordements. L'analyse LPC comprend des sous-modules de fenêtrage, de calcul des autocorrélations, de mise en œuvre de l'algorithme de Levinson-Durbin, de transformation A(z)-»LSP, de calcul des paramètres LSPj non quantifiées pour chaque sous-trame (i=0,...,3) par interpolation entre les LSP de la trame passée et ceux de la trame courante, et de transformation inverse (LSPr» Aj(z)).These 4 modes of the NB-AMR encoder (7.4, 6.7, 5.9, 5.15) have identical modules such as preprocessing, analysis of linear prediction coefficients, signal calculation weighted. The signal preprocessing is 80 Hz high-pass cut-off filtering to suppress the continuous components combined with division of the input signals to avoid overflows. The LPC analysis includes sub-modules of windowing, autocorrelation calculation, implementation of the Levinson-Durbin algorithm, A (z) - »LSP transformation, calculation of unquantized LSPj parameters for each sub-module. -frame (i = 0, ..., 3) by interpolation between the LSPs of the past frame and those of the current frame, and of inverse transformation (LSPr »Aj (z)).
Le calcul du signal de parole pondéré réside en un filtrage par le filtre de pondération perceptuelle où Aj(z) est le filtre non quantifié de la sous-trame d'indice i avec γi =0,94 et γ2=0,6).The calculation of the weighted speech signal lies in a filtering by the perceptual weighting filter where Aj (z) is the unquantized filter of the subscript of index i with γi = 0.94 and γ 2 = 0.6).
D'autres blocs fonctionnels ne sont identiques que pour trois de ces modes (7,4; 6,7; 5,9). Par exemple, la recherche du retard LTP en boucle ouverte effectuée sur le signal pondéré une fois par super sous-trame pour ces trois modes. Pour le mode à 5,15, elle n'est effectuée en revanche qu'une fois par trame.Other functional blocks are identical for only three of these modes (7.4, 6.7, 5.9). For example, searching for LTP delay in open loop performed on the weighted signal once per super subframe for these three modes. For the 5.15 mode, however, it is performed only once per frame.
De même, si les quatre modes utilisent une quantification vectorielle pondérée prédictive MA (pour "Moving Average") d'ordre 1 à moyenne supprimée et par produit cartésien des paramètres LSP dans le domaine fréquentiel normalisé, la quantification des paramètres LSP du mode à 5,15 kbit/s se fait sur 23 bits, celle des trois autres modes sur 26 bits. Après transformation dans le domaine fréquentiel normalisé, la quantification vectorielle par produit cartésien (dite "split VQ") des paramètres LSP scinde les 10 paramètres LSP en 3 sous- vecteurs, de dimension 3, 3 et 4. Le premier sous-vecteur composé des 3 premiers LSP est quantifié sur 8 bits par le même dictionnaire pour les quatre modes. Le deuxième sous-vecteur composé des 3 LSP suivants est quantifié pour les 3 modes haut débit par un dictionnaire de taille 512 (9 bits) et pour le mode à 5,15 par la moitié de ce dictionnaire (un vecteur sur 2). Le troisième et dernier sous-vecteur composé des 4 derniers LSP est quantifié pour les 3 modes haut débit par un dictionnaire de taille 512 (9 bits) et pour le mode de plus faible débit par un dictionnaire de taille 128 (7 bits). La transformation dans le domaine fréquentiel normalisé, le calcul des poids du critère d'erreur quadratique et la prédiction MA (pour "Moving Average") du résidu LSP à quantifier sont identiques pour les 4 modes. Les trois modes haut débit utilisant les même dictionnaires pour quantifier les LSP, ils peuvent partager, en plus du même module de quantification vectorielle, la transformation inverse (pour revenir du domaine fréquentiel normalisé vers le domaine en cosinus), ainsi que le calcul des LSPQj quantifiées pour chaque sous-trameLikewise, if the four modes use an average 1-to-average predefined weighted vector prediction MA (for "Moving Average") quantization and LSP parameters in the normalized frequency domain, the quantization of the LSP parameters from , 15 kbit / s is done on 23 bits, that of the other three modes on 26 bits. After transformation in the normalized frequency domain, the Cartesian product vector quantization (so-called "split VQ") of the LSP parameters divides the LSP parameters into 3 sub-vectors, of dimension 3, 3 and 4. The first sub-vector composed of The first 3 LSP is quantized on 8 bits by the same dictionary for the four modes. The second sub-vector composed of the following 3 LSPs is quantized for the 3 high-speed modes by a dictionary of size 512 (9 bits) and for the mode with 5,15 by half of this dictionary (one vector out of 2). The third and last sub-vector composed of the last 4 LSPs is quantized for the 3 high-speed modes by a dictionary of size 512 (9 bits) and for the mode of lower bit rate by a dictionary of size 128 (7 bits). The transformation in the normalized frequency domain, the calculation of the squared error criterion weights and the MA prediction (for "Moving Average") of the LSP residue to be quantized are identical for the 4 modes. Since the three broadband modes use the same dictionaries to quantify the LSPs, they can share, in addition to the same vector quantization module, the inverse transformation (to return from the normalized frequency domain to the cosine domain), as well as the calculation of the LSPs. Quantified Q for each subframe
(i=0 3) par interpolation entre les LSP quantifiés de la trame passée et ceux de la trame courante, et enfin la transformation inverse LSPQj → AQj(z). Les recherches en boucle fermée des excitations adaptative et fixe sont faites séquentiellement et nécessitent au préalable le calcul de la réponse impulsionnelle du filtre de synthèse pondéré, puis de signaux-cible. La réponse impulsionnelle du filtre de synthèse pondéré (Ai(z/γ1)/[AQi(z)Ai(z/γ2)]) est identique pour les 3 modes haut débit (7,4; 6,7; 5,9). Pour chaque sous- trame, le calcul du signal-cible pour l'excitation adaptative dépend du signal pondéré (indépendamment du mode); du filtre quantifié AQj(z) (identique" pour 3 des modes) et du passé de la sous-trame (différent pour chaque sous-trame autre que la première sous-trame). Pour chaque sous-trame, le signal-cible pour l'excitation fixe est obtenu en retirant au signal-cible précédent la contribution de l'excitation adaptative filtrée de cette sous-trame (qui est différente d'un mode à l'autre sauf pour la première sous-trame des 3 premiers modes).(i = 0 3) by interpolation between the quantized LSPs of the past frame and those of the current frame, and finally the inverse transformation LSP Q j → A Q j (z). The closed-loop searches of the adaptive and fixed excitations are done sequentially and require the calculation of the impulse response of the weighted synthesis filter and then of the target signals beforehand. The impulse response of the weighted synthesis filter (Ai (z / γ 1 ) / [A Q i (z) A 1 (z / γ 2 )]) is identical for the 3 high-speed modes (7.4, 6.7; 5.9). For each subframe, the calculation of the target signal for the adaptive excitation depends on the weighted signal (regardless of the mode); the quantized filter A Q j (z) (same "for 3 modes) and the past of the subframe (different for each sub-frame other than the first sub-frame). For each subframe, the signal- Target for fixed excitation is obtained by removing from the previous target signal the contribution of the filtered adaptive excitation of this subframe (which is different from one mode to another except for the first subframe of the first 3 modes).
Trois dictionnaires adaptatifs sont utilisés. Le premier dictionnaire, pour les sous-trames paires (i=0 et 2) des modes (7,4; 6,7; 5,9) et pour la première sous-trame du mode à 5,15, comporte 256 retards absolus fractionnaires, de résolution 1/3 dans l'intervalle [19 + 1/3,84 + 2/3] et de résolution entière dans l'intervalle [85,143]. La recherche dans ce dictionnaire de retards absolus est focalisée autour du retard trouvé en boucle ouverte (intervalle de ±5 pour le mode à 5,15, de ±3 pour les autres modes). Pour la première sous-trame des modes (7,4; 6,7; 5,9), le signal-cible et le retard en boucle ouverte étant identique, le résultat de cette recherche en boucle fermée l'est aussi. Les deux autres dictionnaires sont de type différentiel et permettent de coder la différence entre le retard courant et le retard entier Tu le plus proche du retard fractionnaire de la sous-trame précédente. Le premier dictionnaire différentiel sur 5 bits, utilisé pour les sous-trames impaires du mode à 7,4, est de résolution 1/3 autour du retard entier TM dans l'intervalle [T -5 +2/3, TM+4 +2/3]. Le deuxième dictionnaire différentiel sur 4 bits, inclus dans le premier, est utilisé pour les sous-trames impaires des modes à 6,7 et 5,9 ainsi que pour les trois dernières sous-trames du mode à 5,15. Ce deuxième dictionnaire est de résolution entière autour du retard entier TM dans l'intervalle PVι-5, T +4] plus une résolution de 1/3 dans l'intervalle [T -1 + 2/3, TM + 2/3].Three adaptive dictionaries are used. The first dictionary, for the even subframes (i = 0 and 2) of the modes (7.4, 6.7, 5.9) and for the first subframe of the 5.15 mode, comprises 256 absolute delays. fractional, 1/3 resolution in the range [19 + 1 / 3.84 + 2/3] and full resolution in the range [85,143]. The search in this dictionary of absolute delays is focused around the delay found in open loop (range of ± 5 for the 5.15 mode, ± 3 for the other modes). For the first sub-frame of the modes (7.4, 6.7, 5.9), the target signal and the open-loop delay being identical, the result of this closed-loop search is also identical. The other two dictionaries are of the differential type and make it possible to code the difference between the current delay and the integer delay Tu which is closest to the fractional delay of the preceding sub-frame. The first 5-bit differential dictionary, used for the odd subframes of the 7.4 mode, is 1/3 resolution around the integer delay TM in the interval [T -5 +2/3, TM + 4 + 2/3]. The second 4-bit differential dictionary, included in the first one, is used for the odd subframes of the modes at 6.7 and 5.9 as well as for the last three subframes of the 5.15 mode. This second dictionary is of integer resolution around the integer delay T M in the interval PVι-5, T +4] plus a resolution of 1/3 in the interval [T -1 + 2/3, TM + 2/3 ].
Les dictionnaires fixes appartiennent à la famille bien connue des dictionnaires ACELP. La structure d'un répertoire ACELP est basée sur le concept ISPP (pour "Interleaved Single-Pulse Permutation") qui consiste à diviser l'ensemble des L positions en K pistes entrelacées, chacune des N impulsions étant localisée dans certaines pistes prédéfinies. Les 4 modes (7,4; 6,7; 5,9; 5,15) utilisent la même découpe des 40 échantillons d'une sous-trame en 5 pistes de longueur 8 entrelacées, comme le montre le tableau 2a. Le tableau 2b montre, quant à lui, pour les 3 modes (7,4; 6,7; 5,9) le débit du dictionnaire, le nombre d'impulsions et leur répartition dans les pistes. La répartition des 2 impulsions du dictionnaire ACELP à 9 bits du mode à 5,15 est encore plus contrainte.Fixed dictionaries belong to the well-known family of ACELP dictionaries. The structure of an ACELP directory is based on the ISPP (Interleaved Single-Pulse Permutation) concept, which consists of dividing all L positions into K interleaved tracks, each of the N pulses being located in certain predefined tracks. The 4 modes (7.4, 6.7, 5.9, 5.15) use the same slice of the 40 samples of a 5-track subframe of length 8 interleaved, as shown in Table 2a. Table 2b shows, for the 3 modes (7.4, 6.7, 5.9) the dictionary rate, the number of pulses and their distribution in the tracks. The distribution of the 2 pulses of the ACELP 9-bit dictionary of the 5.15 mode is even more constrained.
Tableau 2a: Découpe en pistes entrelacées des 40 positions d'une sous-trame du codeur 3GPP NB-AMR Tableau 2b: Répartition des impulsions dans les pistes pour les modes 7,4; 6,7; 5,9 du codeur 3GPP NB-AMRTable 2a: Interleaved Cutting of the 40 Positions of a Subframe of the 3GPP NB-AMR Encoder Table 2b: Pulse Distribution in the Tracks for 7.4 Modes; 6.7; 5.9 3GPP NB-AMR Encoder
Les gains des excitations adaptative et fixe sont quantifiés sur 7 ou 6 bits (avec une prédiction MA appliquée au gain de l'excitation fixe) par une quantification vectorielle conjointe minimisant le critère CELP.The gains of the adaptive and fixed excitations are quantified on 7 or 6 bits (with an MA prediction applied to the gain of the fixed excitation) by a joint vector quantization minimizing the CELP criterion.
* Codage multi-modes à décision a posteriori n'exploitant que la mutualisation des blocs fonctionnels identiques A partir de ce schéma de codage, la construction d'un codeur multi-modes à décision a posteriori peut être réalisée en mettant en commun les blocs fonctionnels suivants.* Post-decision multi-mode coding exploiting only the sharing of identical functional blocks From this coding scheme, the construction of a post-decision multi-mode coder can be achieved by pooling the functional blocks following.
En se référant à la figure 8, pour les 4 modes, on effectue en commun : • le pré-traitement (bloc 81), • l'analyse des coefficients de prédiction linéaire (fenêtrage et calcul des autocorrélations 82, mise en œuvre de l'algorithme de Levinson-Durbin 83, transformation A(z)→LSP 84, interpolation des LSP et transformation inverse 862), • le calcul du signal d'entrée pondéré 87, • la transformation des paramètres LSP dans le domaine fréquentiel normalisé, le calcul des poids du critère d'erreur quadratique pour la quantification vectorielle des LSP, la prédiction MA du résidu LSP, la quantification vectorielle des 3 premiers LSP (dans le bloc 85).Referring to FIG. 8, for the 4 modes, the following is done in common: • the preprocessing (block 81), • the analysis of the linear prediction coefficients (windowing and calculation of the autocorrelations 82, implementation of the Levinson-Durbin algorithm 83, transformation A (z) → LSP 84, LSP interpolation and inverse transformation 862), • the calculation of the weighted input signal 87, • the transformation of the LSP parameters in the normalized frequency domain, the calculation of the weights of the criterion d quadratic error for the vector quantization of the LSPs, the MA prediction of the LSP residue, the vector quantization of the first 3 LSPs (in block 85).
Pour tous ces blocs, leur complexité cumulée est ainsi divisée par 4. Pour les 3 modes de plus haut débit (7,4; 6,7; 5,9), on effectue : • la quantification vectorielle des 7 derniers LSP (une fois par trame) (dans le bloc 85 de la figure 8), • la recherche du retard LTP en boucle ouverte (2 fois par trame) (bloc 88), • l'interpolation des LSP quantifiés (861) et la transformation inverse vers les filtres AQi (pour chaque sous-trame), • le calcul de la réponse impulsionnelle 89 du filtre de synthèse pondéré (pour chaque sous-trame).For all these blocks, their cumulative complexity is thus divided by 4. For the 3 higher throughput modes (7.4, 6.7, 5.9), we perform: • the vector quantization of the last 7 LSPs (once per frame) (in block 85 of FIG. 8), • the search for the LTP delay in open loop (twice per frame) (block 88), • the interpolation of the quantized LSPs (861) and the inverse transformation to the filters A Q i (for each subframe), • the computation of the impulse response 89 of the weighted synthesis filter (for each subframe).
Pour ces blocs, les calculs ne sont plus effectués 4 fois mais 2 fois, une fois pour les 3 modes à plus haut débit et une fois pour le mode à faible débit. Leur complexité est donc divisée par 2.For these blocks, the calculations are no longer performed 4 times but twice, once for the 3 higher rate modes and once for the low rate mode. Their complexity is therefore divided by 2.
On peut aussi, pour ces 3 modes de plus haut débit, mutualiser pour la première sous-trame le calcul des signaux-cible pour l'excitation fixe (bloc 91 sur la figure 8) et adaptative (bloc 90), ainsi que la recherche LTP en boucle fermée (bloc 881). Il faut noter que la mutualisation de ces opérations pour la première sous-trame ne produit des résultats identiques que dans le contexte du codage multiple de type multi-modes à décision à posteriori. Dans le contexte général de codage multiple, le passé de la première sous-trame est, comme pour les 3 autres sous-trames, différent selon les débits, ces opérations conduisent généralement alors à des résultats différents.It is also possible, for these 3 higher rate modes, to pool for the first sub-frame the calculation of the target signals for the fixed excitation (block 91 in FIG. 8) and adaptive excitation (block 90), as well as the search LTP closed loop (block 881). It should be noted that the pooling of these operations for the first sub-frame produces identical results only in the context of multiple coding of multi-mode type with a posteriori decision. In the general context of multiple coding, the past of the first sub-frame is, as for the other 3 sub-frames, different according to the flow rates, these operations generally lead to different results.
* Codage multi-modes à décision a posteriori avancée Des blocs fonctionnels non identiques peuvent être accélérés en exploitant ceux d'un autre mode ou d'un module de traitement commun. Selon les contraintes de l'application (en termes de qualité et/ou de complexité), on peut utiliser différentes variantes. Quelques exemples sont décrits ci-après. Il est aussi possible de s'appuyer sur des techniques de transcodage intelligent entre codeurs CELP.* Advanced post-decision multi-mode coding Non-identical functional blocks can be accelerated by exploiting those of another mode or a common processing module. Depending on the constraints of the application (in terms of quality and / or complexity), different variants can be used. Some examples are described below. It is also possible to rely on intelligent transcoding techniques between CELP coders.
* La quantification vectorielle du deuxième sous-vecteur de LSP* The vector quantization of the second sub-vector of LSP
On peut, comme dans le cas du mode de réalisation pour le codeur TDAC, exploiter l'imbrication de certains dictionnaires pour accélérer les calculs. Ainsi, le dictionnaire du deuxième sous-vecteur de LSP du mode à 5,15 étant inclus dans celui des 3 autres modes, la quantification de ce sous-vecteur Y par les 4 modes peut être ainsi avantageusement combinée: • Etape 1 : Chercher son plus proche voisin Y| dans le plus petit dictionnaire (correspondant à la moitié du grand dictionnaire) o Yι quantifie Y pour le mode à 5, 15 • Etape 2: Chercher le plus proche voisin Yh dans le complémentaire dans le grand dictionnaire (soit l'autre moitié du dictionnaire)One can, as in the case of the embodiment for the TDAC encoder, exploit the nesting of certain dictionaries to accelerate the computations. Thus, the dictionary of the second LSP sub-vector of the 5.15 mode being included in that of the other 3 modes, the quantification of this sub-vector Y by the four modes can thus be advantageously combined: • Step 1: Finding its nearest neighbor Y | in the smallest dictionary (corresponding to half of the big dictionary) Y Y quantifies Y for the mode at 5, 15 • Step 2: Find the nearest neighbor Yh in the complement in the big dictionary (ie the other half of the dictionary )
• Etape 3: Tester si le plus proche voisin de Y dans le dictionnaire à 9 bits est Yι (cas "Flag=0") ou Yh (cas "Flag=1") o cas "Flag≈O" : Y| quantifie aussi Y pour les modes à 7,4; 6,7 et 5,9 o sinon (cas "Flag=1"), Yh quantifie Y pour les modes à 7,4; 6,7 et 5,9 Cette mise en œuvre donne un résultat identique à celui du codage multi- mode non optimisé. Si l'on désire réduire davantage la complexité de la quantification, on peut s'arrêter à l'étape 1 et prendre Y- comme vecteur quantifié pour les modes haut débit si ce vecteur est jugé suffisamment proche de Y. Cette simplification peut donc donner un résultat différent d'une recherche exhaustive.• Step 3: Test if the nearest neighbor of Y in the 9-bit dictionary is Yι (case "Flag = 0") or Y h (case "Flag = 1") o case "Flag≈O": Y | also quantifies Y for the 7.4 modes; 6.7 and 5.9 o otherwise (case "Flag = 1"), Yh quantizes Y for modes at 7.4; 6.7 and 5.9 This implementation gives a result identical to that of the non-optimized multi-mode coding. If one wishes to further reduce the complexity of the quantization, one can stop at step 1 and take Y- as a quantized vector for the high-speed modes if this vector is considered sufficiently close to Y. This simplification can therefore give a different result from an exhaustive search.
* Accélération de la recherche LTP en boucle ouverte* Acceleration of LTP research in open loop
La recherche du retard LTP en boucle ouverte du mode à 5,15 peut exploiter les résultats de celle des autres modes. Si les deux retards en boucle ouverte trouvés sur les 2 super sous-trames sont suffisamment proches pour permettre un codage différentiel, la recherche en boucle ouverte du mode à 5,15 n'est pas effectuée. On utilise plutôt les résultats des modes supérieurs. Sinon, on peut :The search for the open-loop LTP delay of the 5.15 mode can exploit the results of that of the other modes. If the two open-loop delays found on the 2 super-frames are close enough to allow differential coding, the open-loop search of the 5.15 mode is not performed. Rather, the results of the higher modes are used. Otherwise, we can:
- effectuer la recherche classique, - ou focaliser la recherche en boucle ouverte sur toute la trame autour des deux retards en boucle ouverte trouvés par les modes supérieurs.- perform the classic search, - or focus the open-loop search on the entire frame around the two open-loop delays found by the higher modes.
A l'inverse, on peut aussi effectuer d'abord la recherche du retard en boucle ouverte sur le mode à 5,15 et focaliser les deux recherches du retard en boucle ouverte des modes supérieurs autour de la valeur déterminée par le mode à 5,15.Conversely, it is also possible to first carry out the search for the open-loop delay in the 5.15 mode and focus the two searches for the open-loop delay of the higher modes around the value determined by the 5-mode. 15.
Dans une troisième variante plus avancée, illustrée à la figure 1d, on se propose de réaliser un codeur multi-modes en treillis permettant plusieurs combinaisons de blocs fonctionnels, chaque bloc fonctionnel possédant au moins deux modes de fonctionnement (ou débits). On construit ce nouveau codeur à partir des quatre débits du codeur NB-AMR cités ci-avant (5,15; 5,90; 6,70; 7,40). Dans ce codeur, on distingue quatre blocs fonctionnels: le bloc LPC, le bloc LTP, le bloc excitation fixe et le bloc de gains. En se référant au tableau 1 présenté ci-avant, le tableau 3a ci-après récapitule pour chacun de ces blocs fonctionnels, son nombre de débits et ses débits. In a third, more advanced variant, illustrated in FIG. 1d, it is proposed to produce a trellis multi-mode encoder allowing several combinations of functional blocks, each functional block having at least two modes of operation (or flows). This new encoder was constructed from the four NB-AMR encoder rates mentioned above (5.15, 5.90, 6.70, 7.40). In this encoder, there are four functional blocks: the LPC block, the LTP block, the fixed excitation block and the gain block. Referring to Table 1 presented above, Table 3a below summarizes for each of these functional blocks, its number of flow rates and its flow rates.
Tableau 3a: Nombre de débits et débits des blocs fonctionnels pour les quatre modes (5,15; 5,90; 6,70; 7 , 40 ) du codeur NB-AMR . Table 3a: Number of flow rates and flow rates of the functional blocks for the four modes (5,15; 5,90; 6,70; 7,40) of the NB-AMR encoder.
On a donc P=4 blocs fonctionnels et 2 x 3 x 4 x 2 = 48 combinaisons possibles. Dans l'exemple particulier de réalisation, on choisit de ne pas considérer le haut-débit du bloc fonctionnel 2 (LTP débit 26 bits/trame). Un autre choix est possible, bien entendu.We thus have P = 4 functional blocks and 2 x 3 x 4 x 2 = 48 possible combinations. In the particular embodiment, it is chosen not to consider the high bit rate of the functional block 2 (LTP bit rate 26 bits / frame). Another choice is possible, of course.
Le codeur multi-débits ainsi obtenu possède une grande granularité en débits, avec 32 modes possibles donnés dans le tableau 3b. Toutefois, on indique que le codeur ainsi obtenu n'est pas interopérable avec le codeur NB-AMR précité. Dans le tableau 3b, les modes correspondants aux trois débits du NB- AMR (5,15; 5,90; 6,70) sont présentés en gras, l'exclusion du débit le plus élevé du bloc fonctionnel LTP éliminant le débit de 7,40.The multi-rate encoder thus obtained has a high granularity in rates, with 32 possible modes given in Table 3b. However, it is indicated that the encoder thus obtained is not interoperable with the aforementioned NB-AMR encoder. In Table 3b, the modes corresponding to the three flows of the NB-AMR (5.15, 5.90, 6.70) are shown in bold, the exclusion of the highest bit rate of the LTP functional block eliminating the flow of 7 40.
Tableau 3b: Débit par bloc fonctionnel et global du codeur multi-modes en treillis Table 3b: Flow rate per functional and global block of the multi-mode lattice encoder
Ce codeur possédant 32 débits possibles, 5 bits sont nécessaires pour identifier le mode utilisé. Comme dans la variante précédente, la mutualisation de blocs fonctionnels est exploitée. On applique des stratégies de codage différentes pour les différents blocs fonctionnels. Par exemple, pour le bloc fonctionnel 1 comprenant la quantification des LSP, on privilégie le bas débit comme mentionné ci-avant de la manière suivante : - Le premier sous-vecteur composé des 3 premiers LSP est quantifié sur 8 bits par le même dictionnaire pour les deux débits associés à ce bloc fonctionnel, - Le deuxième sous-vecteur composé des 3 LSP suivants est quantifié sur 8 bits par le dictionnaire du plus petit débit. Ce dictionnaire correspondant à la moitié du dictionnaire de plus haut débit, on n'effectue la recherche dans l'autre moitié du dictionnaire que si la distance entre les 3 LSP et l'élément choisi dans le dictionnaire dépasse un certain seuil. - Le troisième et dernier sous-vecteur composé des 4 derniers LSP est quantifié par un dictionnaire de taille 512 (9 bits) et par un dictionnaire de taille 128 (7 bits).This encoder has 32 possible bit rates, 5 bits are needed to identify the mode used. As in the previous variant, the pooling of functional blocks is exploited. Different coding strategies are applied for the different functional blocks. For example, for the functional block 1 comprising the quantification of the LSPs, the low bit rate is preferred as mentioned above in the following manner: the first compound sub-vector of the first 3 LSPs is quantified on 8 bits by the same dictionary for the two flows associated with this functional block, - The second sub-vector composed of the following 3 LSPs is quantized on 8 bits by the dictionary of the smallest bit rate. This dictionary corresponds to half of the dictionary of higher speed, one searches in the other half of the dictionary only if the distance between the 3 LSP and the element chosen in the dictionary exceeds a certain threshold. The third and last compound sub-vector of the last 4 LSPs is quantized by a dictionary of size 512 (9 bits) and by a dictionary of size 128 (7 bits).
Par contre, comme mentionné ci-avant dans la deuxième variante (correspondant au codage multi-modes à décision a posteriori avancée), on choisit de privilégier le haut-débit pour le bloc fonctionnel 2 (retard LTP). Dans le codeur NB-AMR, la recherche du retard LTP en boucle ouverte est effectuée deux fois par trame pour le retard LTP de 24 bits et elle est effectuée une seule fois par trame pour celui de 20 bits. Pour ce bloc fonctionnel, on souhaite favoriser le haut débit. Donc, le calcul du retard LTP en boucle ouverte est réalisé de la manière suivante:On the other hand, as mentioned above in the second variant (corresponding to the multi-mode coding with advanced posterior decision), one chooses to privilege the high bitrate for the functional block 2 (LTP delay). In NB-AMR coder, the search for the open-loop LTP delay is performed twice per frame for the 24-bit LTP delay and is performed once per frame for the 20-bit one. For this functional block, it is desired to promote broadband. Therefore, the computation of the LTP delay in open loop is carried out as follows:
- On calcule deux retards en boucle ouverte sur les 2 super sous-trames. S'ils sont suffisamment proches pour permettre un codage différentiel; la recherche en boucle ouverte sur la trame entière n'est pas effectuée. On utilise plutôt les résultats des deux super sous-trames. - Sinon, on effectue une recherche en boucle ouverte sur toute la trame en la focalisant autour des deux retards en boucle ouverte trouvés précédemment. Une variante réduisant la complexité retient uniquement le retard en boucle ouverte de la première.- Two open-loop delays are calculated on the 2 super-subframes. If they are close enough to allow differential coding; the open loop search on the entire frame is not performed. Instead, the results of the two super-frames are used. - Otherwise, we perform an open loop search on the entire frame by focusing around the two open loop delays found previously. A complexity-reducing variant retains only the open-loop delay of the first.
Après certains blocs fonctionnels, il est possible de réaliser une sélection partielle permettant de réduire le nombre de combinaisons à explorer. Par exemple, après le bloc fonctionnel 1 (LPC), on peut éliminer les combinaisons avec 26 bits pour ce bloc si la performance du débit de 23 bits est suffisamment proche ou inversement éliminer le mode à 23 bits si sa performance est trop dégradée par rapport au mode à 26 bits.After some functional blocks, it is possible to make a partial selection to reduce the number of combinations to explore. For example, after Function Block 1 (LPC), 26-bit combinations can be eliminated for this block if the performance of the 23-bit rate is close enough or conversely eliminate the 23-bit mode if its performance is too degraded compared to in 26-bit mode.
Ainsi, la présente invention permet de fournir une solution efficace au problème de la complexité des codages multiples, par la mutualisation et l'accélération des calculs mis en œuvre par les différents codeurs. Les structures de codage peuvent donc être représentées à l'aide de blocs fonctionnels décrivant les différentes opérations effectuées au cours d'un traitement. Les blocs fonctionnels des différents codages mis en œuvre dans un codage multiple possèdent des relations fortes qui sont exploitées au sens de la présente invention. Ces relations sont particulièrement fortes lorsque les différents codages correspondent à différents modes d'une même structure. On indique enfin que la présente invention est flexible du point de vue de la complexité. Il est possible en effet de décider a priori la complexité maximum du codage multiple et d'adapter le nombre de codeurs explorés en fonction de cette complexité. Thus, the present invention makes it possible to provide an effective solution to the problem of the complexity of multiple codings, by pooling and accelerating the calculations implemented by the various coders. The coding structures can therefore be represented using functional blocks describing the various operations performed during a treatment. The functional blocks of the different encodings implemented in multiple coding have strong relationships that are exploited in the sense of the present invention. These relations are particularly strong when the different codings correspond to different modes of the same structure. Finally, it is pointed out that the present invention is flexible from the point of view of complexity. It is indeed possible to decide a priori the maximum complexity of the multiple coding and to adapt the number of coders explored as a function of this complexity.

Claims

Revendications claims
1. Procédé de codage multiple en compression, dans lequel un signal d'entrée est destiné à alimenter en parallèle une pluralité de codeurs comportant chacun une succession de blocs fonctionnels, en vue d'un codage en compression dudit signal par chaque codeur, caractérisé en ce qu'il comporte les étapes préparatoires ci-après* : a) identifier les blocs fonctionnels formant chaque codeur, ainsi qu'une ou plusieurs fonctions réalisées par chaque bloc, b) repérer, parmi lesdites fonctions, des fonctions qui sont communes d'un codeur à l'autre, et c) exécuter lesdites fonctions communes, une fois pour toutes, pour une partie au moins de tous les codeurs, au sein d'au moins un même module de calcul.A method of multiple coding in compression, wherein an input signal is adapted to supply in parallel a plurality of encoders each comprising a succession of functional blocks, for encoding in compression of said signal by each encoder, characterized in that that it comprises the preparatory steps hereinafter: * a) identifying the functional blocks forming each coder, and one or more functions performed by each block, b) identifying, among said functions, functions which are common to one coder to another, and c) perform said common functions, once and for all, for at least a part of all the coders, within at least one same calculation module.
2. Procédé selon la revendication 1 , caractérisé en ce que ledit module de calcul est constitué par un ou plusieurs blocs de l'un des codeurs.2. Method according to claim 1, characterized in that said computation module is constituted by one or more blocks of one of the coders.
3. Procédé selon la revendication 2, caractérisé en ce que, pour chaque fonction exécutée à l'étape c), on utilise au moins un bloc fonctionnel d'un codeur choisi parmi ladite pluralité de codeurs, et en ce que le bloc dudit codeur choisi est agencé pour délivrer des résultats partiels aux autres codeurs, pour un codage efficace, auprès desdits autres codeurs, vérifiant un critère optimal entre la complexité et la qualité du codage.3. Method according to claim 2, characterized in that, for each function executed in step c), at least one functional block of an encoder chosen from said plurality of encoders is used, and in that the block of said encoder selected is arranged to deliver partial results to other coders, for efficient coding, from said other coders, verifying an optimal criterion between the complexity and the quality of the coding.
4. Procédé selon la revendication 3, dans lequel les codeurs sont susceptibles d'opérer à des débits respectifs différents, caractérisé en ce que le codeur choisi est le codeur de débit le plus faible, et en ce que les résultats obtenus, suite à l'exécution de la fonction à l'étape c) avec des paramètres propres au codeur choisi, sont adaptés aux débits d'une partie au moins des autres codeurs par une recherche focalisée de paramètres pour une partie au moins de tous les autres modes, jusqu'au codeur de débit le plus élevé. 4. The method as claimed in claim 3, in which the coders are capable of operating at different respective bit rates, characterized in that the chosen coder is the weakest bit rate encoder, and in that the results obtained, following the execution of the function in step c) with parameters specific to the chosen encoder, are adapted to the bit rates of at least part of the other coders by a focused search of parameters for at least part of all the other modes, until 'to the highest rate encoder.
5. Procédé selon la revendication 3, dans lequel les codeurs sont susceptibles d'opérer à des débits respectifs différents, caractérisé en ce que le codeur choisi est le codeur de débit le plus élevé, et en ce que les résultats obtenus, suite à l'exécution de la fonction à l'étape c) avec des paramètres propres au codeur choisi, sont adaptés aux débits d'une partie au moins des autres codeurs par une recherche focalisée de paramètres pour une* partie au moins de tous les autres modes, jusqu'au codeur de débit le plus faible.5. Method according to claim 3, in which the encoders are able to operate at different respective rates, characterized in that the chosen encoder is the highest bit rate encoder, and in that the results obtained, following the execution of the function in step c) with parameters specific to the chosen coder, are adapted to a portion flows at least one of other coders by a focused search for parameters for some at least of * all other modes, to the lowest bit rate encoder.
6. Procédé selon la revendication 4, prise en combinaison avec la revendication 5, caractérisé en ce que, pour un débit donné, on utilise le bloc fonctionnel d'un codeur opérant audit débit donné, en tant que module de calcul, et on adapte progressivement au moins une partie des paramètres propres à ce codeur : - jusqu'au codeur de débit le plus élevé, par recherche focalisée, et - jusqu'au codeur de débit le plus faible, par recherche focalisée.6. Method according to claim 4, taken in combination with claim 5, characterized in that, for a given bit rate, the functional block of an encoder operating at said given bit rate, as a calculation module, is used and adapted. progressively at least a portion of the parameters specific to this encoder: - up to the highest rate encoder, by focused search, and - to the lowest rate encoder, by focused search.
7. Procédé selon la revendication 1 , dans lequel les blocs fonctionnels des différents codeurs sont agencés en treillis, avec plusieurs chemins possibles dans le treillis, caractérisé en ce que chaque chemin du treillis est défini par une combinaison de modes de fonctionnement des blocs fonctionnels, chaque bloc fonctionnel alimentant plusieurs variantes possibles du bloc fonctionnel suivant.7. Method according to claim 1, in which the functional blocks of the different coders are arranged in lattices, with several possible paths in the trellis, characterized in that each path of the trellis is defined by a combination of operating modes of the functional blocks, each functional block supplying several possible variants of the next functional block.
8. Procédé selon la revendication 7, caractérisée en ce que l'on prévoit un module de sélection partielle, après chaque étape de codage menée par un ou plusieurs blocs fonctionnels, capable de sélectionner les résultats fournis par un ou plusieurs de ces blocs fonctionnels, pour des étapes suivantes de codage. 8. Method according to claim 7, characterized in that a partial selection module is provided, after each coding step carried out by one or more functional blocks, capable of selecting the results provided by one or more of these functional blocks, for subsequent coding steps.
9. Procédé selon la revendication 7, dans lequel les blocs fonctionnels sont susceptibles d'opérer à des débits respectifs différents et en utilisant des paramètres respectifs propres auxdits débits, caractérisé en ce que, pour un bloc fonctionnel donné, le chemin du treillis choisi est celui traversant le bloc fonctionnel de débit le plus faible, et en ce que les résultats obtenus dudit bloc fonctionnel de débit le plus faible sont adaptés aux débits d'une partie au moins des autres blocs fonctionnels- par une recherche focalisée de paramètres pour une partie au moins de tous les autres blocs fonctionnels, jusqu'au bloc fonctionnel de débit le plus élevé.The method according to claim 7, wherein the functional blocks are capable of operating at different respective rates and using respective parameters specific to said flows, characterized in that, for a given functional block, the selected trellis path is the one passing through the lowest bit rate functional block, and in that the results obtained from said lowest bit rate functional block are adapted to the bit rates of at least part of the other functional blocks-by a focused search of parameters for a part at least all other functional blocks up to the highest rate functional block.
10. Procédé selon la revendication 7, dans lequel les blocs fonctionnels sont susceptibles d'opérer à des débits respectifs différents et en utilisant des paramètres respectifs propres auxdits débits, caractérisé en ce que, pour un bloc fonctionnel donné, le chemin du treillis choisi est celui traversant le bloc fonctionnel de débit le plus élevé, et en ce que les résultats obtenus dudit bloc fonctionnel de débit le plus élevé sont adaptés aux débits d'une partie au moins des autres blocs fonctionnels par une recherche focalisée de paramètres pour une partie au moins de tous les autres blocs fonctionnels, jusqu'au bloc fonctionnel de débit le plus faible.The method according to claim 7, wherein the functional blocks are capable of operating at different respective rates and using respective parameters specific to said rates, characterized in that, for a given functional block, the selected trellis path is the one passing through the highest rate functional block, and in that the results obtained from said highest rate functional block are adapted to the bit rates of at least a portion of the other functional blocks by a focused search of parameters for a portion of the less than all other functional blocks, up to the lowest throughput functional block.
11. Procédé selon la revendication 9, prise en combinaison avec la revendication 10, caractérisé en ce que, pour un débit donné associé aux paramètres d'un bloc fonctionnel d'un codeur, on utilise le bloc fonctionnel opérant audit débit donné, en tant que module de calcul, et on adapte progressivement au moins une partie des paramètres propres à ce bloc fonctionnel:11. The method according to claim 9, taken in combination with claim 10, characterized in that, for a given bit rate associated with the parameters of a functional block of an encoder, the functional block operating at said given bit rate, as a function block, is used. as a calculation module, and progressively adapting at least a portion of the parameters specific to this functional block:
- jusqu'au bloc fonctionnel capable d'opérer au débit le plus faible, par recherche focalisée, et- to the functional block capable of operating at the lowest rate, by focussed search, and
- jusqu'au bloc fonctionnel capable d'opérer au débit le plus élevé, par recherche focalisée. - to the functional block capable of operating at the highest rate, by focussed search.
12. Procédé selon la revendication 1, caractérisé en ce que ledit module de calcul est un module indépendant desdits codeurs, et agencé pour redistribuer des résultats obtenus à l'étape c) à tous les codeurs.12. Method according to claim 1, characterized in that said computation module is a module independent of said coders, and arranged to redistribute the results obtained in step c) to all the coders.
13. Procédé selon la revendication 12, prise en combinaison avec la revendication 2, caractérisé en ce que le module indépendant et le ou les blocs de l'un au moins des codeurs sont agencés pour échanger mutuellement des résultats obtenus à l'étape c), et en ce que le module de calcul est agencé pour effectuer un transcodage d'adaptation entre blocs fonctionnels de codeurs différents.13. The method of claim 12, taken in combination with claim 2, characterized in that the independent module and the block or blocks of at least one of the coders are arranged to mutually exchange the results obtained in step c). , and in that the calculation module is arranged to perform an adaptation transcoding between functional blocks of different coders.
14. Procédé selon l'une des revendications 12 et 13, caractérisé en ce que le module indépendant comporte un bloc de codage au moins partiel et un bloc de transcodage d'adaptation.14. Method according to one of claims 12 and 13, characterized in that the independent module comprises an at least partial coding block and an adaptation transcoding block.
15. Procédé selon l'une des revendications précédentes, dans lequel les codeurs en parallèle sont agencés pour opérer en codage multi-modes, caractérisé en ce que l'on prévoit un module de sélection a posteriori, capable de sélectionner un codeur parmi les codeurs.15. Method according to one of the preceding claims, in which the parallel coders are arranged to operate in multi-mode coding, characterized in that a posterior selection module is provided, capable of selecting an encoder from among the coders. .
16. Procédé selon la revendication 15, caractérisé en ce que l'on prévoit un module de sélection partielle, après chaque étape de codage menée par un ou plusieurs blocs fonctionnels, indépendant des codeurs et capable de sélectionner un ou plusieurs codeurs.16. The method of claim 15, characterized in that there is provided a partial selection module, after each coding step conducted by one or more functional blocks, independent of the encoders and capable of selecting one or more encoders.
17. Procédé selon l'une des revendications précédentes, dans lequel les codeurs sont de type par transformée, caractérisé en que le module de calcul comporte un bloc d'allocation de bits, partagé entre tous les codeurs, chaque allocation de bits effectuée pour un codeur étant suivie d'une adaptation à ce codeur notamment en fonction de son débit. Method according to one of the preceding claims, in which the encoders are of the transform type, characterized in that the calculation module comprises a bit allocation block, shared between all the coders, each bit allocation performed for one encoder being followed by an adaptation to this encoder in particular according to its flow.
18. Procédé selon la revendication 17, caractérisé en ce que le procédé comporte en outre une étape de quantification, dont les résultats sont fournis à tous les codeurs.18. The method of claim 17, characterized in that the method further comprises a quantization step, the results of which are provided to all coders.
19. Procédé selon la revendication 18, caractérisé en ce qu'il comporte en outre des étapes communes à tous les codeurs parmi :19. The method of claim 18, characterized in that it further comprises steps common to all the coders among:
- une transformée temps-fréquence (MDCT),a time-frequency transform (MDCT),
- une détection de voisement dans le signal d'entrée,a voicing detection in the input signal,
- une détection de tonalité, - la détermination d'une courbe de masquage,- a tone detection, - the determination of a masking curve,
- et un codage d'enveloppe spectrale.and a spectral envelope coding.
20. Procédé selon la revendication 17, dans lequel les codeurs effectuent un codage en sous-bande (MPEG-1), caractérisé en ce que le procédé comporte en outre des étapes communes à tous les codeurs parmi :20. The method according to claim 17, wherein the coders perform a sub-band coding (MPEG-1), characterized in that the method further comprises steps common to all the coders among:
- l'application d'un banc de filtres d'analyse,- the application of an analysis filter bank,
- une détermination de facteurs d'échelle,- a determination of scale factors,
- un calcul de transformée spectrale (FFT),a spectral transform calculation (FFT),
- et la détermination de seuils de masquage suivant un modèle psychoacoustique.- and the determination of masking thresholds according to a psychoacoustic model.
21. Procédé selon l'une des revendications 1 à 16, dans lequel les codeurs sont du type à analyse par synthèse (CELP), caractérisé en ce que le procédé comporte des étapes communes à tous les codeurs parmi au moins : - un pré-traitement,21. Method according to one of claims 1 to 16, wherein the coders are of the type of analysis by synthesis (CELP), characterized in that the method comprises steps common to all the coders among at least: - a pre- treatment,
- l'analyse de coefficients de prédiction linéaire,- analysis of linear prediction coefficients,
- un calcul de signal d'entrée pondéré,a weighted input signal calculation,
- et une quantification pour au moins une partie des paramètres. and a quantization for at least a portion of the parameters.
22. Procédé selon la revendication 21, prise en combinaison avec la revendication 16, caractérisé en ce que le module de sélection partielle est mis en œuvre après une étape partagée de quantification vectorielle pour des paramètres à court terme (LPC).22. The method of claim 21, taken in combination with claim 16, characterized in that the partial selection module is implemented after a shared vector quantization step for short-term parameters (LPC).
23. Procédé selon la revendication 21, prise en combinaison avec la revendication 16, caractérisé en ce que le module de sélection partielle est mis en œuvre après une étape partagée de recherche de paramètre à long terme (LTP) en boucle ouverte.23. The method of claim 21, taken in combination with claim 16, characterized in that the partial selection module is implemented after a shared step of long-term parameter search (LTP) open loop.
24. Produit programme d'ordinateur destiné à être stocké dans une mémoire d'une unité de traitement, notamment d'un ordinateur ou d'un terminal mobile, ou sur un support mémoire amovible et destiné à coopérer avec un lecteur de l'unité de traitement, caractérisé en ce qu'il comporte des instructions pour la mise en œuvre du procédé de transcodage selon l'une des revendications précédentes.24. Computer program product intended to be stored in a memory of a processing unit, in particular a computer or a mobile terminal, or on a removable memory medium and intended to cooperate with a reader of the unit processing, characterized in that it comprises instructions for implementing the transcoding method according to one of the preceding claims.
25. Dispositif d'aide à un codage multiple en compression, codage dans lequel un signal d'entrée est destiné à alimenter en parallèle une pluralité de codeurs comportant chacun une succession de blocs fonctionnels, en vue d'un codage en compression dudit signal par chaque codeur, caractérisé en ce qu'il comporte une mémoire propre à stocker des instructions d'un produit programme d'ordinateur selon la revendication 24.25. A device for coding multiple compression coding in which an input signal is intended to supply in parallel a plurality of coders each comprising a succession of functional blocks, for compression coding said signal by each encoder, characterized in that it comprises a memory adapted to store instructions of a computer program product according to claim 24.
26. Dispositif selon la revendication 25, caractérisé en ce qu'il comporte en outre un module de calcul indépendant (Ml) pour la mise en œuvre du procédé selon l'une des revendications 12 à 16 et 22, 23. 26. Device according to claim 25, characterized in that it further comprises an independent calculation module (M1) for implementing the method according to one of claims 12 to 16 and 22, 23.
EP04805538A 2003-12-10 2004-11-24 Optimized multiple coding method Not-in-force EP1692689B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PL04805538T PL1692689T3 (en) 2003-12-10 2004-11-24 Optimized multiple coding method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0314490A FR2867649A1 (en) 2003-12-10 2003-12-10 OPTIMIZED MULTIPLE CODING METHOD
PCT/FR2004/003009 WO2005066938A1 (en) 2003-12-10 2004-11-24 Optimized multiple coding method

Publications (2)

Publication Number Publication Date
EP1692689A1 true EP1692689A1 (en) 2006-08-23
EP1692689B1 EP1692689B1 (en) 2009-09-09

Family

ID=34746281

Family Applications (1)

Application Number Title Priority Date Filing Date
EP04805538A Not-in-force EP1692689B1 (en) 2003-12-10 2004-11-24 Optimized multiple coding method

Country Status (12)

Country Link
US (1) US7792679B2 (en)
EP (1) EP1692689B1 (en)
JP (1) JP4879748B2 (en)
KR (1) KR101175651B1 (en)
CN (1) CN1890714B (en)
AT (1) ATE442646T1 (en)
DE (1) DE602004023115D1 (en)
ES (1) ES2333020T3 (en)
FR (1) FR2867649A1 (en)
PL (1) PL1692689T3 (en)
WO (1) WO2005066938A1 (en)
ZA (1) ZA200604623B (en)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7987089B2 (en) * 2006-07-31 2011-07-26 Qualcomm Incorporated Systems and methods for modifying a zero pad region of a windowed frame of an audio signal
WO2008048064A1 (en) * 2006-10-19 2008-04-24 Lg Electronics Inc. Encoding method and apparatus and decoding method and apparatus
KR101411900B1 (en) * 2007-05-08 2014-06-26 삼성전자주식회사 Method and apparatus for encoding and decoding audio signal
US9653088B2 (en) * 2007-06-13 2017-05-16 Qualcomm Incorporated Systems, methods, and apparatus for signal encoding using pitch-regularizing and non-pitch-regularizing coding
KR101403340B1 (en) * 2007-08-02 2014-06-09 삼성전자주식회사 Method and apparatus for transcoding
CA2729751C (en) * 2008-07-10 2017-10-24 Voiceage Corporation Device and method for quantizing and inverse quantizing lpc filters in a super-frame
FR2936898A1 (en) * 2008-10-08 2010-04-09 France Telecom CRITICAL SAMPLING CODING WITH PREDICTIVE ENCODER
MX2011011399A (en) * 2008-10-17 2012-06-27 Univ Friedrich Alexander Er Audio coding using downmix.
GB2466201B (en) * 2008-12-10 2012-07-11 Skype Ltd Regeneration of wideband speech
US9947340B2 (en) * 2008-12-10 2018-04-17 Skype Regeneration of wideband speech
GB0822537D0 (en) 2008-12-10 2009-01-14 Skype Ltd Regeneration of wideband speech
KR20110001130A (en) * 2009-06-29 2011-01-06 삼성전자주식회사 Apparatus and method for encoding and decoding audio signals using weighted linear prediction transform
KR101747917B1 (en) * 2010-10-18 2017-06-15 삼성전자주식회사 Apparatus and method for determining weighting function having low complexity for lpc coefficients quantization
CN102394658A (en) * 2011-10-16 2012-03-28 西南科技大学 Composite compression method oriented to mechanical vibration signal
US9386267B1 (en) * 2012-02-14 2016-07-05 Arris Enterprises, Inc. Cooperative transcoding to multiple streams
JP2014123865A (en) * 2012-12-21 2014-07-03 Xacti Corp Image processing apparatus and imaging apparatus
US9549178B2 (en) * 2012-12-26 2017-01-17 Verizon Patent And Licensing Inc. Segmenting and transcoding of video and/or audio data
KR101595397B1 (en) * 2013-07-26 2016-02-29 경희대학교 산학협력단 Method and apparatus for integrated encoding/decoding of different multilayer video codec
WO2015012514A1 (en) * 2013-07-26 2015-01-29 경희대학교 산학협력단 Method and apparatus for integrally encoding/decoding different multi-layer video codecs
CN104572751A (en) * 2013-10-24 2015-04-29 携程计算机技术(上海)有限公司 Compression storage method and system for calling center sound recording files
SE538512C2 (en) 2014-11-26 2016-08-30 Kelicomp Ab Improved compression and encryption of a file
SE544304C2 (en) * 2015-04-17 2022-03-29 URAEUS Communication Systems AB Improved compression and encryption of a file
US10872598B2 (en) * 2017-02-24 2020-12-22 Baidu Usa Llc Systems and methods for real-time neural text-to-speech
US10896669B2 (en) 2017-05-19 2021-01-19 Baidu Usa Llc Systems and methods for multi-speaker neural text-to-speech
US10872596B2 (en) 2017-10-19 2020-12-22 Baidu Usa Llc Systems and methods for parallel wave generation in end-to-end text-to-speech
US11587548B2 (en) * 2020-06-12 2023-02-21 Baidu Usa Llc Text-driven video synthesis with phonetic dictionary
US11514634B2 (en) 2020-06-12 2022-11-29 Baidu Usa Llc Personalized speech-to-video with three-dimensional (3D) skeleton regularization and expressive body poses

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0398318A (en) * 1989-09-11 1991-04-23 Fujitsu Ltd Voice coding system
US5734789A (en) * 1992-06-01 1998-03-31 Hughes Electronics Voiced, unvoiced or noise modes in a CELP vocoder
US5495555A (en) * 1992-06-01 1996-02-27 Hughes Aircraft Company High quality low bit rate celp-based speech codec
JP3227291B2 (en) * 1993-12-16 2001-11-12 シャープ株式会社 Data encoding device
US5602961A (en) * 1994-05-31 1997-02-11 Alaris, Inc. Method and apparatus for speech compression using multi-mode code excited linear predictive coding
US5956674A (en) * 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
JP3134817B2 (en) * 1997-07-11 2001-02-13 日本電気株式会社 Audio encoding / decoding device
US6141638A (en) * 1998-05-28 2000-10-31 Motorola, Inc. Method and apparatus for coding an information signal
US6249758B1 (en) * 1998-06-30 2001-06-19 Nortel Networks Limited Apparatus and method for coding speech signals by making use of voice/unvoiced characteristics of the speech signals
US6173257B1 (en) * 1998-08-24 2001-01-09 Conexant Systems, Inc Completed fixed codebook for speech encoder
US6192335B1 (en) * 1998-09-01 2001-02-20 Telefonaktieboiaget Lm Ericsson (Publ) Adaptive combining of multi-mode coding for voiced speech and noise-like signals
JP3579309B2 (en) * 1998-09-09 2004-10-20 日本電信電話株式会社 Image quality adjusting method, video communication device using the method, and recording medium recording the method
SE521225C2 (en) * 1998-09-16 2003-10-14 Ericsson Telefon Ab L M Method and apparatus for CELP encoding / decoding
US7272556B1 (en) * 1998-09-23 2007-09-18 Lucent Technologies Inc. Scalable and embedded codec for speech and audio signals
US6691084B2 (en) * 1998-12-21 2004-02-10 Qualcomm Incorporated Multiple mode variable rate speech coding
US6260009B1 (en) * 1999-02-12 2001-07-10 Qualcomm Incorporated CELP-based to CELP-based vocoder packet translation
US6640209B1 (en) * 1999-02-26 2003-10-28 Qualcomm Incorporated Closed-loop multimode mixed-domain linear prediction (MDLP) speech coder
DE19911179C1 (en) * 1999-03-12 2000-11-02 Deutsche Telekom Mobil Method for adapting the operating mode of a multi-mode codec to changing radio conditions in a CDMA mobile radio network
JP2000287213A (en) * 1999-03-31 2000-10-13 Victor Co Of Japan Ltd Moving image encoder
US6532593B1 (en) * 1999-08-17 2003-03-11 General Instrument Corporation Transcoding for consumer set-top storage application
US6604070B1 (en) * 1999-09-22 2003-08-05 Conexant Systems, Inc. System of encoding and decoding speech signals
US6574593B1 (en) * 1999-09-22 2003-06-03 Conexant Systems, Inc. Codebook tables for encoding and decoding
AU7486200A (en) * 1999-09-22 2001-04-24 Conexant Systems, Inc. Multimode speech encoder
US6581032B1 (en) * 1999-09-22 2003-06-17 Conexant Systems, Inc. Bitstream protocol for transmission of encoded voice signals
US6522746B1 (en) * 1999-11-03 2003-02-18 Tellabs Operations, Inc. Synchronization of voice boundaries and their use by echo cancellers in a voice processing system
JP3549788B2 (en) * 1999-11-05 2004-08-04 三菱電機株式会社 Multi-stage encoding method, multi-stage decoding method, multi-stage encoding device, multi-stage decoding device, and information transmission system using these
FR2802329B1 (en) * 1999-12-08 2003-03-28 France Telecom PROCESS FOR PROCESSING AT LEAST ONE AUDIO CODE BINARY FLOW ORGANIZED IN THE FORM OF FRAMES
WO2001052241A1 (en) * 2000-01-11 2001-07-19 Matsushita Electric Industrial Co., Ltd. Multi-mode voice encoding device and decoding device
SE519976C2 (en) * 2000-09-15 2003-05-06 Ericsson Telefon Ab L M Coding and decoding of signals from multiple channels
SE519981C2 (en) * 2000-09-15 2003-05-06 Ericsson Telefon Ab L M Coding and decoding of signals from multiple channels
US6615169B1 (en) * 2000-10-18 2003-09-02 Nokia Corporation High frequency enhancement layer coding in wideband speech codec
JP2002202799A (en) * 2000-10-30 2002-07-19 Fujitsu Ltd Voice code conversion apparatus
EP1410513A4 (en) * 2000-12-29 2005-06-29 Infineon Technologies Ag Channel codec processor configurable for multiple wireless communications standards
US6614370B2 (en) * 2001-01-26 2003-09-02 Oded Gottesman Redundant compression techniques for transmitting data over degraded communication links and/or storing data on media subject to degradation
US6658383B2 (en) * 2001-06-26 2003-12-02 Microsoft Corporation Method for coding speech and music signals
US7200561B2 (en) * 2001-08-23 2007-04-03 Nippon Telegraph And Telephone Corporation Digital signal coding and decoding methods and apparatuses and programs therefor
JP2003125406A (en) * 2001-09-25 2003-04-25 Hewlett Packard Co <Hp> Method and system for optimizing mode selection for video coding based on oriented aperiodic graph
US7095343B2 (en) * 2001-10-09 2006-08-22 Trustees Of Princeton University code compression algorithms and architectures for embedded systems
JP2003195893A (en) * 2001-12-26 2003-07-09 Toshiba Corp Device and method for speech reproduction
US6829579B2 (en) * 2002-01-08 2004-12-07 Dilithium Networks, Inc. Transcoding method and system between CELP-based speech codes
US7254533B1 (en) * 2002-10-17 2007-08-07 Dilithium Networks Pty Ltd. Method and apparatus for a thin CELP voice codec
US7133521B2 (en) * 2002-10-25 2006-11-07 Dilithium Networks Pty Ltd. Method and apparatus for DTMF detection and voice mixing in the CELP parameter domain
US7023880B2 (en) * 2002-10-28 2006-04-04 Qualcomm Incorporated Re-formatting variable-rate vocoder frames for inter-system transmissions
JP2004208280A (en) * 2002-12-09 2004-07-22 Hitachi Ltd Encoding apparatus and encoding method
EP1579427A4 (en) * 2003-01-09 2007-05-16 Dilithium Networks Pty Ltd Method and apparatus for improved quality voice transcoding
KR100554164B1 (en) * 2003-07-11 2006-02-22 학교법인연세대학교 Transcoder between two speech codecs having difference CELP type and method thereof
US7469209B2 (en) * 2003-08-14 2008-12-23 Dilithium Networks Pty Ltd. Method and apparatus for frame classification and rate determination in voice transcoders for telecommunications
US7305055B1 (en) * 2003-08-18 2007-12-04 Qualcomm Incorporated Search-efficient MIMO trellis decoder
US7433815B2 (en) * 2003-09-10 2008-10-07 Dilithium Networks Pty Ltd. Method and apparatus for voice transcoding between variable rate coders
US7613606B2 (en) * 2003-10-02 2009-11-03 Nokia Corporation Speech codecs
US7170988B2 (en) * 2003-10-27 2007-01-30 Motorola, Inc. Method and apparatus for network communication
FR2867648A1 (en) * 2003-12-10 2005-09-16 France Telecom TRANSCODING BETWEEN INDICES OF MULTI-IMPULSE DICTIONARIES USED IN COMPRESSION CODING OF DIGITAL SIGNALS
US20050258983A1 (en) * 2004-05-11 2005-11-24 Dilithium Holdings Pty Ltd. (An Australian Corporation) Method and apparatus for voice trans-rating in multi-rate voice coders for telecommunications

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
EP1692689B1 (en) 2009-09-09
CN1890714B (en) 2010-12-29
KR101175651B1 (en) 2012-08-21
WO2005066938A1 (en) 2005-07-21
US7792679B2 (en) 2010-09-07
JP2007515677A (en) 2007-06-14
JP4879748B2 (en) 2012-02-22
US20070150271A1 (en) 2007-06-28
ZA200604623B (en) 2007-11-28
PL1692689T3 (en) 2010-02-26
FR2867649A1 (en) 2005-09-16
CN1890714A (en) 2007-01-03
DE602004023115D1 (en) 2009-10-22
KR20060131782A (en) 2006-12-20
ATE442646T1 (en) 2009-09-15
ES2333020T3 (en) 2010-02-16

Similar Documents

Publication Publication Date Title
EP1692689B1 (en) Optimized multiple coding method
RU2326450C2 (en) Method and device for vector quantisation with reliable prediction of linear prediction parameters in voice coding at variable bit rate
CA2512179C (en) Method for encoding and decoding audio at a variable rate
EP1593116B1 (en) Method for differentiated digital voice and music processing, noise filtering, creation of special effects and device for carrying out said method
EP1905010A2 (en) Hierarchical encoding/decoding device
EP2115741A1 (en) Advanced encoding / decoding of audio digital signals
WO2005083889A1 (en) Dimensional vector and variable resolution quantisation
WO2009055493A1 (en) Scalable speech and audio encoding using combinatorial encoding of mdct spectrum
CA2766864C (en) Improved coding /decoding of digital audio signals
WO2011004098A1 (en) Allocation of bits in an enhancement coding/decoding for improving a hierarchical coding/decoding of digital audio signals
US20050108009A1 (en) Apparatus for coding of variable bitrate wideband speech and audio signals, and a method thereof
EP2080194B1 (en) Attenuation of overvoicing, in particular for generating an excitation at a decoder, in the absence of information
EP1836699B1 (en) Method and device for carrying out optimized audio coding between two long-term prediction models
EP1037196A1 (en) Method for coding, decoding and transcoding an audio signal
EP2652735B1 (en) Improved encoding of an improvement stage in a hierarchical encoder
EP2009623A1 (en) Speech coding
WO2023165946A1 (en) Optimised encoding and decoding of an audio signal using a neural network-based autoencoder
WO2011144863A1 (en) Encoding with noise shaping in a hierarchical encoder
FR2791166A1 (en) METHODS OF ENCODING, DECODING AND TRANSCODING
WO2002029786A1 (en) Method and device for segmental coding of an audio signal
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
FR2980620A1 (en) Method for processing decoded audio frequency signal, e.g. coded voice signal including music, involves performing spectral attenuation of residue, and combining residue and attenuated signal from spectrum of tonal components

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

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 HU IE IS IT LI LU MC NL PL PT RO SE SI SK TR

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20070621

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

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

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 HU IE IS IT LI LU MC NL 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: 602004023115

Country of ref document: DE

Date of ref document: 20091022

Kind code of ref document: P

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

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

NLV1 Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents act
REG Reference to a national code

Ref country code: ES

Ref legal event code: FG2A

Ref document number: 2333020

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

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

REG Reference to a national code

Ref country code: PL

Ref legal event code: T3

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

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

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

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

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

Ref country code: PT

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

Effective date: 20100111

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

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

BERE Be: lapsed

Owner name: FRANCE TELECOM

Effective date: 20091130

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

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

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

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

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

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

26N No opposition filed

Effective date: 20100610

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

Ref country code: LI

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

Effective date: 20091130

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

Ref country code: CH

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

Effective date: 20091130

Ref country code: BE

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

Effective date: 20091130

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

Ref country code: BG

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

Effective date: 20091130

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

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

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

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 12

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

Ref country code: GB

Payment date: 20151027

Year of fee payment: 12

Ref country code: DE

Payment date: 20151022

Year of fee payment: 12

Ref country code: IT

Payment date: 20151023

Year of fee payment: 12

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

Ref country code: ES

Payment date: 20151110

Year of fee payment: 12

Ref country code: PL

Payment date: 20151026

Year of fee payment: 12

Ref country code: FR

Payment date: 20151023

Year of fee payment: 12

REG Reference to a national code

Ref country code: DE

Ref legal event code: R119

Ref document number: 602004023115

Country of ref document: DE

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20161124

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST

Effective date: 20170731

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

Ref country code: IT

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

Effective date: 20161124

Ref country code: FR

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

Effective date: 20161130

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

Ref country code: DE

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

Effective date: 20170601

Ref country code: GB

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

Effective date: 20161124

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 NON-PAYMENT OF DUE FEES

Effective date: 20161124

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

Ref country code: ES

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

Effective date: 20161125

REG Reference to a national code

Ref country code: ES

Ref legal event code: FD2A

Effective date: 20181120