EP1692687A1 - Transcoding between the indices of multipulse dictionaries used for coding in digital signal compression - Google Patents

Transcoding between the indices of multipulse dictionaries used for coding in digital signal compression

Info

Publication number
EP1692687A1
EP1692687A1 EP04805537A EP04805537A EP1692687A1 EP 1692687 A1 EP1692687 A1 EP 1692687A1 EP 04805537 A EP04805537 A EP 04805537A EP 04805537 A EP04805537 A EP 04805537A EP 1692687 A1 EP1692687 A1 EP 1692687A1
Authority
EP
European Patent Office
Prior art keywords
positions
pulse
subframe
format
encoder
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
EP04805537A
Other languages
German (de)
French (fr)
Other versions
EP1692687B1 (en
Inventor
Claude Lamblin
Mohamed Ghenania
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 PL04805537T priority Critical patent/PL1692687T3/en
Publication of EP1692687A1 publication Critical patent/EP1692687A1/en
Application granted granted Critical
Publication of EP1692687B1 publication Critical patent/EP1692687B1/en
Not-in-force legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/173Transcoding, i.e. converting between two coded representations avoiding cascaded coding-decoding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders

Definitions

  • the present invention relates to the encoding / decoding of digital signals, particularly in applications for transmitting or storing multimedia signals such as audio signals (speech and / or sounds).
  • the synthesis model is used in coding to extract the parameters modeling the signals to be coded.
  • 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 rates of 6 to 32 kbit / s in broadband.
  • CELP type digital coding / decoding device which is the most widely used synthesis analysis coder / decoder for the coding / decoding of speech signals, is briefly described below.
  • the speech signal is sampled and converted into a series of blocks of the samples called frames. In general, each frame is cut into smaller blocks of L samples, called subframes.
  • Each block is synthesized by filtering a waveform extracted from a repertoire (also called dictionary), multiplied by a gain, through two filters varying in time.
  • the excitation dictionary is a finite set of waveforms of L samples.
  • the first filter is the long-term prediction filter.
  • LTP Long Term Prediction
  • LPC Linear Prediction Coding
  • the method used to determine the innovation sequence is the method of synthesis analysis.
  • a large number of excitation dictionary innovation sequences are filtered by the two LTP and LPC filters, and the selected waveform is the one producing the synthetic signal closest to the original signal according to a criterion.
  • perceptual weighting commonly known as the CELP criterion.
  • CELP coders such as CELP decoders, are well known to those skilled in the art.
  • the multi-rate encoder of ITU-T G.723.1 is a good example of a synthesis-based encoder using multi-pulse dictionaries.
  • the pulse positions are all distinct.
  • the two encoder rates (6.3 kbit / s and 5.3 kbit / s) model the innovation signal by dictionary-derived waveforms that have only a limited number of non-zero pulses: 6 or 5 for broadband, 4 for low bit rate. These pulses are of amplitude +1 or -1.
  • the G.723.1 encoder In its 6.3 kbit / s mode, the G.723.1 encoder alternately uses two dictionaries: - in the first used for even subframes, the waveforms have 6 pulses and, - in the second one, used for odd subframes, they have 5 pulses.
  • a single restriction is imposed on the positions of the pulses of any vector-code. These positions must all have the same parity, that is, they are all odd or even.
  • the positions of the 4 pulses In the 5.3 kbit / s mode dictionary, the positions of the 4 pulses are more constrained. In addition to the same parity constraint as the broadband mode dictionaries, each pulse has a limited choice of positions.
  • the 5.3 kbit / s mode multi-pulse dictionary belongs to the well-known family of ACELP dictionaries.
  • the structure of an ACELP directory is based on the ISPP technique (for "Interleaved Single-Pulse Permutation") which consists in dividing all the L positions into K interleaved tracks, each of the N pulses being located in certain predefined tracks.
  • the L dimension of code words can be extended to Z + N.
  • the block size of 60 samples was extended to 64 samples and the 32 even (odd) positions were divided into 4 tracks. interlaced length 8 not overlapping. So there are two groups of 4 tracks, one for each parity. Table 1 below shows for each pulse denoted io to / 3 all of these 4 tracks for the even positions. . . . .
  • the ACELP innovation dictionaries are used in many synthetic analysis coders that are standardized (ITU-T G.723.1, ITU-T G.729, IS-641, 3GPP NB-AMR, 3GPP WB-AMR). Tables 2 to 4 below show some examples of these ACELP dictionaries for a block length of 40 samples. Note that the parity constraint is not used in these dictionaries.
  • Table 2 shows the 17-bit ACELP dictionary and 4 non-zero pulses ⁇ 1, used in the ITU-T G.729 8-bit / sec encoder, in the 7.4 kbit / s IS-641 encoder as well as in the 7.4 and 7.95 kbit / s modes of the 3GPP NB-AMR encoder.
  • Table 2 ACELP Dictionary Pulses and Amplitudes of ITU-T G.729 8 kbit / s, IS641 7.4 kbit / s and 3GPP NB-AMR 7.4 and 7.95 kbit / s Encoders
  • each code vector contains 10 non-zero pulses of amplitude ⁇ 1.
  • the block of 40 samples is divided into 5 tracks of length 8, each containing 2 pulses. Note that the two pulses of the same track can overlap and result in a single pulse amplitude ⁇ 2.
  • This dictionary is presented in Table 3.
  • Table 3 Positions and magnitudes of the pulses in the ACELP dictionary of the 3GPP NB-AMR 12.2 kbit / s encoder
  • Table 4 presents the 11-bit ACELP dictionary and 2 non-zero pulses of ⁇ 1 amplitude, used in the low-bit-rate (6.4 bps / sec) extension of the ITU-T G.729 encoder and in the 5.9 kbit / s mode of the 3GPP NB-AMR encoder.
  • this step amounts to looking for the combination of pulses that optimizes the proximity between the signal to be modeled and the signal resulting from the choice of pulses.
  • this exploration may be exhaustive or not (so more or less complex).
  • the algorithm for encoding a vector of standardized transform coefficients exploits this property to determine its nearest neighbor among all the code vectors while calculating only a limited number of distance criteria (with a use of so-called "absolute leaders").
  • ACELP multi-pulse dictionaries In synthetic-based coders, exploration of multi-pulse dictionaries is not exhaustive except for small dictionaries. For higher-rate dictionaries, only a small percentage of the dictionary is explored. For example, the exploration of ACELP multi-pulse dictionaries is usually done in two steps. To simplify this search, a first step pre-selects for each possible pulse position its amplitude (and hence its sign as indicated above) by a simple quantization of a signal dependent on the input signal. The amplitudes of the pulses being fixed, the positions of the pulses are then sought by a synthesis analysis technique (according to the CELP criterion).
  • Some of these known methods are used in the standard coders mentioned above. Their purpose is to reduce the number of combinations of positions to explore based on the properties of the signal to be modeled. For example, we can cite the so-called "depth-first tree” algorithm, used by many standardized ACELP coders. In this algorithm, certain positions are preferred, such as the local maxima of the tracks of a target signal depending on the input signal, the synthetic signal passed and the filter composed of the synthesis and perceptual weighting filters. There are several variants depending on the size of the dictionary used. To explore the ACELP dictionary at 35 bits and 10 pulses (table 3), the first pulse is placed at the same position as the overall maximum of the target signal. Then, four iterations are performed by circular permutation of the consecutive tracks.
  • the position of the second pulse is set to the local maximum of one of the other 4 tracks, the positions of the other eight remaining pulses are searched sequentially in pairs in nested loops.
  • this same ACELP dictionary is explored by a different method of focusing.
  • the algorithm performs an iterative search by nesting four pulse search loops (one per pulse).
  • the search is focused by making the entry in the inner loop (search for the last pulse belonging to the tracks 3 or 4) conditional on exceeding an adaptive threshold; This threshold also depends on the properties of the target signal (local and average maxima of the first 3 tracks).
  • the maximum number of explorations of combinations of 4 pulses is fixed at 1440 (17.6% of the 8192 combinations).
  • Transcoding becomes necessary when, in a transmission chain, a compressed signal frame sent by an encoder can not continue its path, in this format. Transcoding makes it possible to convert this frame into another format compatible with the rest of the transmission chain.
  • the most basic solution (and the most common at the moment) is the end-to-end addition of a decoder and an encoder.
  • the compressed frame comes in a first format, it is uncompressed. This decompressed signal is then recompressed in a second format accepted later in the communication chain.
  • This cascading of a decoder and an encoder is called “tandem". This solution is very expensive in complexity (mainly because of the recoding) and it degrades the quality.
  • the second coding is done on a decoded signal, which is a degraded version of the original signal.
  • a frame may encounter several tandems before reaching its destination. We can easily imagine the cost in calculation and the loss of quality.
  • the delays related to each tandem operation builds up and can interfere with the interactivity of communications.
  • Another case of multiple-coding in parallel is post-decision multi-mode compression.
  • the complexity of each of the modes of compression limits the number and / or leads to elaborate a selection a priori of a very limited number of modes.
  • New multimedia communication applications (such as audio and video) often require multiple codings either in cascade (transcoding) or in parallel (multi-coding and multi-mode coding with ex-post decision).
  • the complexity barrier posed by all these codings remains a problem to be solved, in spite of the increase of the current processing powers.
  • Most of these known multi-coding operations do not take into account the interactions between the formats and between the format of E and its contents.
  • some intelligent transcoding techniques have been proposed that do not just decode but recode, but exploit the similarities between encoding formats and thus reduce the complexity while limiting the degradation provided.
  • the encodings can be strictly identical. They can be identical in the modeling and the calculation of the parameter, but can be differentiated simply by the translation of the coding in the form of bits. Finally, they can be completely different as much by the modeling of the parameter as its quantification, or even by its frequency of analysis or sampling.
  • the two coders are distinguished only by the binary translation of the calculated parameter, it suffices to decode the binary field of the first format, then to return to the binary domain using the coding method according to the second format .
  • This conversion can also be performed by bijective correspondence tables. This is the case, for example when transcoding the fixed excitations of the G.729 standard to the AMR standard (7.4 and 7.95kbit / s).
  • both encoding formats compute a parameter in the same way but quantify it differently.
  • the differences in quantification can be related to the chosen precision or to the chosen method (scalar, vector, predictive, or other). It is then enough to decode the parameter, then to quantify it by the method of the second coding format.
  • This known method is currently applied, in particular for the transcoding of excitation gains.
  • the decoded parameter must be modified before requantification. For example, if the encoders have parameter analysis frequencies or different frame / subframe lengths, it is common to interpolate / decimate the parameters. The interpolation can be done for example according to the method described in the published document US2003 / 033142. Another possible modification is to round the parameter to the precision imposed on it by the second coding format. This case is especially for the height of the fundamental frequency (or "pitch").
  • this procedure makes it possible to requantize a vector of a first dictionary by a vector of a second dictionary. For this purpose, it distinguishes two cases according to whether or not the vector to be requantized in the second dictionary. If the quantified vector belongs to the new dictionary, the modeling is identical; otherwise, the partial decoding method is applied.
  • the present invention proposes, in contrast to all these known techniques, a multi-pulse transcoding based on a selection of a subset of combinations of pulse positions of a set of sets of pulses from a combination of pulse positions of another set of sets of pulses, the two sets being distinguishable by the number of pulses they contain and by the rules governing their positions and / or their amplitudes.
  • This transcoding is very useful in particular for multiple coding in cascade (transcoding) or in parallel (multi-coding and multi-mode coding).
  • the present invention firstly proposes a transcoding method between a first encoder / decoder in compression and at least one second encoder / decoder in compression.
  • These first and second encoders / decoders are of pulse type and use multi-pulse dictionaries in which each pulse has a position marked by an associated index.
  • the transcoding method in the sense of the invention comprises the following steps: a) where appropriate, adaptation of coding parameters between said first and second coders / decoders, b) obtaining, from the first coder / decoder, a selected number of respectively associated pulse positions and position indices, c) for each given index current pulse position, forming a group of pulse positions having at least the current pulse position and associated index pulse positions immediately below and immediately above the given index, d) selecting, as a function of pulse positions allowed by the second coder / decoder, at least a part of the pulse positions in a set consisting of a union of said groups formed in step c), and e) transmitting the positions of the pulses thus selected to the second encoder / decoder, for coding / decoding from said transmitted positions.
  • step d) involves a number of possible pulse positions less than the total number of possible pulse positions of the dictionary of the second coder / decoder.
  • step e) in the case where the second encoder / decoder mentioned above is an encoder, the selected pulse positions are transmitted to this encoder, for search coding only among the transmitted positions. In the case where the aforementioned second encoder / decoder is a decoder, these selected pulse positions are transmitted for a decoding of these positions.
  • step b) uses a partial decoding of the bitstream provided by the first coder / decoder in order to identify a first number of pulse positions used by the first coder / decoder, in a first coding format.
  • the number chosen in step b) preferably corresponds to this first number of pulse positions.
  • the above steps are implemented by a computer program product comprising program instructions for this purpose.
  • the present invention also aims at such a 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 intended for to cooperate with a drive of the processing unit.
  • the present invention also relates to a transcoding device between first and second encoders / decoders in compression, and then having a memory adapted to store instructions of a computer program product of the type described above.
  • FIG. 1a diagrammatically represents the transcoding context within the meaning of the present invention, in a "cascade" configuration
  • FIG. 1b diagrammatically represents the transcoding context in the sense of the present invention, in a "parallel" configuration
  • FIG. 2 diagrammatically represents the different cases provided for the transcoding processes to be performed;
  • FIG. 2a schematically represents an adaptation processing provided for the case where the sampling frequencies of the first E and second S encoders are different,
  • FIG. 2b diagrammatically represents a variant of the processing of FIG. 2a;
  • FIG. 3 summarizes the steps of the transcoding method within the meaning of the invention;
  • FIG. 4 diagrammatically represents the case of two sub-frames respectively of the encoders E and S, of different durations L e and L s (with L e > L s ), but with the same sampling frequencies;
  • FIG. 4b represents by way of example a practical case of FIG. 4 illustrating the temporal correspondence between a G.723.1 coder and a G.729 coder,
  • FIG. 5 diagrammatically illustrates the division of the excitation of the first encoder E with the rhythm of the second encoder S;
  • FIG. 6 illustrates the case where one of the pseudo-subframes STE'O is empty,
  • FIG. 7 schematically represents an adaption processing provided for the case where the subframe durations of the first E and second S encoders are different.
  • the present invention is part of the modeling and coding of multimedia digital signals such as audio signals (speech and / or sounds) by multi-pulse dictionaries. It can be implemented in the context cascading or parallel coding / multiple decoding or any other system using the modeling of a signal by a multi-pulse representation and which, from the knowledge of a first set of pulses belonging to a first set, must determine at least one set of pulses of a second set.
  • n n ⁇ 2 sets.
  • transcoding between two coders is described below, but, of course, the transcoding between an encoder and a decoder can be deduced without major difficulty.
  • a transcoding device D between a first encoder E, using a first encoding format COD1, and a second encoder S, using a second encoding format COD2.
  • the encoder E delivers a coded binary stream (or "train") S C E (as a succession of coded frames) to the transcoding device D, which comprises a partial decoding module 10 for recovering the number N e of pulse positions used in the first coding format and the positions p e of these pulses.
  • the transcoding device in the sense of the invention proceeds to extract the neighborhoods of the right v e d and left v e g of each pulse position p e and selects, in the union of these neighborhoods, pulse positions that will be recognized by the second encoder S.
  • the module 11 of the transcoding device shown in FIGS. 1a and 1b thus performs these steps to deliver this selection of positions (noted Sj in these FIGS. 1a and 1b) to the second encoder S.
  • Sj a sub-directory smaller than the size of the dictionary usually used by the second encoder S is formed, according to an advantage provided by the invention.
  • the encoding performed by the encoder S is of course faster because it is more restricted, without affecting the quality of the coding.
  • the transcoding device D further comprises a module 12 for at least partial decoding of the coded stream S C E delivered by the first coder E.
  • the module 12 then supplies the second coder S with a version at least partially decoded s'o of the original signal So.
  • the second encoder S then delivers, on the basis of this version s'o, a coded bitstream s C s-
  • the transcoding device D thus performs an encoding adaptation between the first encoder E and the second encoder S, advantageously favoring a faster (because more restricted) coding with the second encoder S.
  • the entity referenced S in FIGS. 1a and 1b may be a decoder and, in this variant, the device D within the meaning of the invention performs a transcoding, properly speaking, between an encoder E and a decoder S, this decoding performing quickly thanks to the information provided by the device D.
  • the transcoding device D within the meaning of the present invention operates between a first encoder / decoder E and a second encoder / decoder S.
  • the arrangement of the encoder E, the transcoder D and the encoder S can respect a "cascade" configuration, as shown in FIG. 1a.
  • this arrangement can comply with a configuration "in parallel".
  • the two encoders E and S receive the original signal s 0 and the two encoders E and S respectively deliver the codestreams S C E and s C s-
  • the second encoder S no longer has to receive here the version s' 0 of Figure 1a and the at least partial decoding module 12 of the transcoder device D is no longer necessary.
  • the encoder E can provide an output compatible with the input of the module 1 (both with respect to its number of pulses and with respect to its pulse positions), the module 10 can simply be omitted or "short-circuited".
  • transcoding device D may simply be equipped with a memory storing instructions for implementing the above steps and a processor for processing these instructions.
  • the application of the invention is therefore as follows.
  • the first encoder E has performed its encoding operation on a given signal so (eg the original signal).
  • the positions of the pulses chosen by the first coder E are thus available.
  • This coder has determined these positions p e by a technique which is specific to it during the coding process.
  • the second encoder S must also perform its coding.
  • the second encoder S has only the bitstream generated by the first coder, and the invention is applicable here to "intelligent" transcoding as defined hereinabove.
  • the second encoder S also has the signal available to the first encoder and the invention applies here to "intelligent multi-coding".
  • a system that wants to encode the same content in several formats can exploit the information of a first format to simplify the coding operations of other formats.
  • the invention can also be applied to the particular case of multiple coding in parallel, which is the multi-mode coding with a posterior decision.
  • the present invention makes it possible to rapidly determine the positions p s (or, noted indiscriminately still below, Sj) pulses for another coding format from positions p e (or, noted indiscriminately still below, ei) pulses of a first format. It makes it possible to considerably reduce the calculation complexity of this operation for the second encoder by limiting the number of possible positions.
  • the first coder uses the positions chosen by the first coder to define a restricted set of positions in the set of possible positions of the second coder, a restricted set in which the best set of positions for the pulses will be sought. a gain in complexity while limiting the degradation of the signal compared to a conventional exhaustive or focused search.
  • the present invention limits the number of possible positions by defining a restricted set of positions from the positions of the first encoding format. It differs from existing solutions insofar as they use only the properties of the signal to be modeled to limit the number of possible positions, by favoring and / or eliminating positions.
  • each pulse of a set of a first set two neighborhoods (a right and a left) of adjustable width more or less constrained are defined and a set of possible positions is extracted from it, in which at least one combination of pulses respecting the constraints of the second set.
  • the transcoding method makes it possible to optimize the complexity / quality compromise by adapting the number of pulse positions and / or the respective sizes (in terms of combinations of pulse positions) of the right and left neighborhoods for each pulse. .
  • This adjustment can be done at the start of processing or at each subframe depending on the authorized complexity and / or the set of starting positions.
  • the invention also makes it possible to adjust / limit the number of combinations of positions by advantageously favoring immediate neighborhoods.
  • the present invention also relates to a computer program product whose algorithm is designed in particular for the extraction of neighboring positions which facilitates the composition of the combinations of pulses of the second set.
  • Encoders can be distinguished by many features. In particular, two of them substantially determine the mode of operation of the invention. This is the sampling frequency and the duration of a sub-frame.
  • Figure 2 summarizes the different cases.
  • - the number of pulse positions N e , N s - the sampling frequencies F e , F s respectively, - and the subfield times L e , L s that use the encoders E and S respectively.
  • the adaptation and recovery steps of the number of pulse positions N e , N s can advantageously be reversed or simply conducted simultaneously.
  • the sampling frequencies are compared. If the frequencies are equal, we compare, in test 23, the subframe times. Otherwise, the sampling frequencies are adapted, in step 32, according to a method described hereinafter.
  • the subframe durations are equal, we compare, in the test 24, the numbers of pulse positions N e and N s used. respectively by the first and the second coding format. Otherwise, the subframe times are adapted in step 33 by a method which will also be described hereinafter.
  • steps 22, 23, 32 and 33 together define step a) of adaptation of the coding parameters mentioned above. It is indicated that the steps 22 and 32 (adaptation of the sampling frequencies), on the one hand, and the steps 23 and 33 (adaptation of the subframe durations), on the other hand. can be reversed.
  • the encoder E calculated the positions of its N e pulses on the sub-frame s e . We note below ⁇ j (or, indistinctly, p e ) these positions.
  • the restricted set P s of the preferred positions for the pulses of the repertoire of the encoder S then consists of N e positions e, and their neighborhoods.
  • V d and v g ' ⁇ 0 are the sizes of the right and left neighborhoods of the pulse i.
  • the values of v d and v i, chosen in step 27 of FIG. 2, are larger or smaller depending on the desired complexity and quality. These sizes can be set arbitrarily at the start of processing, or be chosen at each sub-frame s e .
  • the set P s then contains each position ⁇ j as well as its v d neighbors on the right and its v g 'neighbors on the left.
  • N s pulses of S belong to pre-defined subsets of positions, a given number of pulses sharing the same subset of allowed positions.
  • the 12.2 bit / sec pulses of the 3GPP NB-AMR encoder are distributed 2 by 2 in 5 different subsets, as shown in Table 3 given above.
  • the N ' s subsets Sj resulting from the intersection of P s with one of the sets 7j are constituted, in step 30 of FIG. 2, according to the relation: Sj ⁇ P S n 7 ⁇
  • the invention exploits the structure of the directories.
  • the directory of the encoder S is of type ACELP, it is the intersections of the positions of the tracks with P s that are calculated.
  • the directory of the encoder E is also of the ACELP type, the procedure for extracting neighborhoods also exploits the structure in tracks and the two steps of extraction of the neighborhoods and composition of the restricted subsets of positions, are judiciously associated.
  • the neighborhood extraction algorithm takes into account the composition of the combinations of pulses according to the constraints of the second set. As will be seen later, neighborhood extraction algorithms are elaborated to facilitate the composition of the combinations of pulses of the second set. An example of such an algorithm is illustrated by one of the embodiments given below (ACELP 2 pulses to ACELP 4 pulses).
  • the number of combinations of possible positions is thus limited and the size of the subset of the encoder directory S is generally much smaller than that of the original repertoire, which greatly reduces the complexity of the penultimate step of the transcoding. It is specified here that the number of combinations of pulse positions defines the size of the aforementioned subset. It is furthermore specified that it is the number of pulse positions that is reduced in the sense of the invention, which leads to a reduction in the number of combinations of pulse positions and thus makes it possible to obtain a sub-number of pulse positions. restricted directory.
  • the step referenced 46 in FIG. 3 then consists in launching the search for the best set of positions for the N s pulses in this sub-directory of restricted size.
  • the selection criterion is similar to that of the process of coding. To further reduce complexity, the exploration of this subdirectory can be accelerated using known focusing techniques described above.
  • FIG. 3 summarizes the steps of the invention for the case where the encoder E uses at least as many pulses as the encoder S. It is however indicated that, as already seen with reference to FIG. number of positions N s in the second format (the format of S) is greater than the number of positions N ⁇ in the first format (the format of E), the treatment provided is distinguished by only a few advantageous variants which will be described later.
  • step a) of adaptation of the coding parameters (if necessary and represented for this purpose by dotted lines in FIG. 3 in block 41): - recovery of the positions e ⁇ of the encoder pulses E, and preferably of a number N e of positions (step 42 corresponding to step b) above), _ extraction of neighborhoods and formation of neighborhood groups according to the relation:
  • step 43 (step 43 corresponding to step c) mentioned above)
  • step 45 the coder S then chooses a set of positions in the restricted directory obtained in step 44.
  • the method therefore continues with a step 46 of searching in this subdirectory received by the encoder S of an optimal set of positions (opt (Sj)) having the second number N s of positions, as indicated above.
  • This step 46 of searching for the optimal set of positions is implemented preferentially by a focused search to accelerate the exploration of the sub-directory.
  • the processing continues naturally by the coding then carried out by the second coder S.
  • N e is close to N s , typically N e ⁇ N s ⁇ 2N e , then a preferred way of determining the positions is conceivable, although the previous treatment is still quite applicable. Complexity can still win by directly fixing the positions of S pulses from those of E. Indeed, the first S N e pulses are placed on the positions of those of E. N s N e pulses remaining are placed as close as possible (in the immediate vicinity) of the N th first pulses. So, we test at step 25 of the FIG. 2 if the numbers N ⁇ and N s are close (with N e > N s ) and, if so, proceed as described above for the choice of the pulse positions in step 26.
  • the processing of the first embodiment uses a direct quantization of the time scale ⁇ of the first format by that of the second format.
  • This quantization operation which can be tabulated or calculated by a formula, thus makes it possible to find, for each position of a subframe of the first format, its equivalent in a subframe of the second format and vice versa.
  • F e and F s are the respective sampling frequencies of E and S, and T and L s their lengths subframe, [D denoting the integer part.
  • NB-AMa 10 11 121 131 14 15 16 17 18 19 20 211 22 23 2425 2627 28 29 30 311 32 331 34 35 36, 37 3839
  • WB-AMR 0 23 5 U 8 10 13141618192122242627293032343537384042 143 454648505153545658596162
  • Table 5a Time correspondence table from NB-AMR to WB-AMR B-AMH 0 1 2 3 4 6 7 9 10 11 12 13 1415 16 171819 2021222324252627 282930 31 NB- AMR 10 11 11 12 13 13 14 14 15 1 16 17 18 18 19 19 WB-AMW 32 33i 34! 35!
  • Table 5c Restricted Temporal Matching Table from NB-AMR to WB-AMR
  • Table 5d Restricted time correspondence table from WB-AMR to NB-AMR
  • step 51 of FIG. 2a direct quantization of the time scale from the first frequency to the second frequency
  • step 52 of Figure 2a determination according to this quantization, each pulse position in a subframe with the second encoding format characterized by the second sampling frequency, from a pulse position in a subframe to the first format of coding characterized by the first sampling frequency
  • the quantization step a1) is carried out by calculation and / or fobulation from a function which, at a pulse position p e in a first-format subframe, matches a position p s pulse in a subframe with the second format, and this function is substantially a linear combination involving a multiplier coefficient corresponding to the ratio of the second sampling frequency to the first sampling frequency.
  • the transcoding method is completely reversible and adapts both in a transcoding direction (E-> S) and in the other (S-> E).
  • a conventional principle of change of sampling frequency is used. We start from the sub-frame containing the pulses found by the first format. We oversample at the frequency equal to the least common multiple of the two sampling frequencies F ⁇ and F s . Then, after low-pass filtering, we sub-sample to return to the sampling frequency of the second format, that is to say F s . We obtain a subframe at the frequency F s containing the pulses of filtered E.
  • the result of the over-sampling / low-pass filtering / subsampling operations can be tabulated for each possible position of a sub-frame of E.
  • This processing can also be performed by "on-line" calculation.
  • a'1 oversampling a sub-frame with the first coding format characterized by the first sampling frequency, at a frequency F pcm equal to to the least common multiple of the first and second sampling frequencies (step 53 of FIG. 2b), and a'2) applying to the oversampled sub-frame a low-pass filtering (step 53 of FIG. 2b)
  • the method is continued by obtaining, preferably by thresholding, an optionally variable number of positions, these positions being adapted to the pulses of E (step 56) as in the first embodiment above. * Equal sampling frequencies but different subframe durations
  • a preferred embodiment proposes a low complexity solution for determining a restricted repertoire of position combinations for the second format pulses from the positions of the pulses. of the first format.
  • the subframe of S and that of E are not of the same size, it is not possible to establish a direct temporal correspondence between a subframe of S and a subframe of E.
  • the FIG. 4 shows (in which the E and S subframes are respectively designated ST E and STs), the subframes boundaries of the two formats are not aligned and over time these subframes are shifted by one compared to the other.
  • a position p e of the subframe i ⁇ of the format of E corresponds to the position p s of the sub-frame j s of the format of S, where p s and j s are respectively the remainder and the quotient of the Euclidean division.
  • the positions p e located in a sub-frame j s are used to determine, according to the general processing described above, a restricted set of positions for pulses of S in the sub-frame j s .
  • L e > L s it may happen that a subframe of S contains no pulse.
  • the pulses of the sub-frame STE0 are represented by vertical lines.
  • the format of E can very well concentrate the pulses of STE0 at the end of the sub-frame so that the pseudo subframe STE'O does not contain any impulses. All the pulses placed by E are found in STE'1 when cutting. In this case, a conventional focused search is preferentially applied to the pseudo STE'O subframe.
  • This common reference is the position (number 0) from which the positions of the pulses in the following subframes are numbered.
  • This position 0 can be defined in different ways, depending on the system using the transcoding method within the meaning of the present invention. For example, for a transcoding module included in an equipment of a transmission system, it will be natural to take as origin the first position of the first frame received after the start of the equipment. -
  • the disadvantage of this choice is that the positions take larger and larger values and it may become necessary to limit them. For this, it is sufficient to update the position of the common origin whenever possible.
  • the position of the common origin is updated each time the boundaries of the subframes of E and S are aligned. This happens periodically, the period (in samples) being equal to the least common multiple of L e and L s .
  • L e and / or L s are not constant in time. It is no longer possible to find a common multiple at the two subframe lengths, now denoted L e (n) and L s (n), where n is the subframe number. In this case, the values L e (n) and L s (n) should be summed up as they are and compare the two obtained sums with each subframe:
  • step 7 are preferably as follows: a20) definition of a common origin O to the subframes of the first and second formats (step 70), a21) division of the successive subframes of the first coding format characterized by a first subframe duration, to form pseudo-frames of durations L ' e corresponding to the second subframe duration (step 71), a22) updating of the common origin O (step 79), a23) and determining correspondence between the pulse positions in pseudo-subframes p ' e and second format subframes (step 80).
  • the test 72 of FIG. 7 is discriminated in the following cases: the first and second durations are fixed in time (output "o" of the test 72), and the first and second durations vary in time (output "n” of test 72).
  • the temporal position of the common origin is periodically updated (step 74) at each instant when respective subframe boundaries of first duration St (L e ) and second duration St (L s ). are aligned in time (test 73 performed on these borders).
  • the two respective summations of the subframes in the first format T e (k) and subframes in the second format T s (k ') are carried out successively.
  • step 78 detects an occurrence of an equality between said two sums, defining a time of updating of said common origin (test 77), a223) resetting the two aforementioned amounts (step 78), after said occurrence, for a future detection of 'a next common origin.
  • the first embodiment is applied to intelligent transcoding between the MP-MLQ model of G.723.1 at 6.3 kbit / s and the ACELP model at 4 pulses of G.723.1 at 5.3 kbit / s.
  • Intelligent transcoding of the G.723.1's high bitrate to low bit rate brings together a 6 and 5 pulse MP-MLQ model with an ACELP model at 4 pulses.
  • the exemplary embodiment presented here makes it possible to determine the positions of the four pulses of the ACELP from the positions of the pulses of the MP-MLQ.
  • the ITU-T G.723.1 multi-rate encoder and its multi-pulse directories have been presented above. It is specified only that a frame of G.723.1 has 240 samples at 8 kHz, and is divided into four subframes of 60 samples. The same restriction is imposed on the pulse positions of any code vector of each of the three multi-pulse dictionaries. These positions must all have the same parity (all pairs or all odd).
  • the sub-frame of 60 (+4) positions is thus cut into two gates of 32 positions.
  • the even grid has the positions numbered [0, 2, 4, ..., 58, (60,62)].
  • the odd grid has the positions [1, 3, 5, ..., 59, (61,63)]. For each flow, the exploration of the directory, even if not exhaustive, remains complex as indicated previously.
  • the innovation signal of a sub-frame is modeled by an element of the 5.3 kbps G.723.1 ACELP directory that knows the 6.3 kbps G.723.1 MP-MLQ directory element. / s determined during a first coding.
  • a next step then consists in directly extracting the right and left neighborhoods of these 5 pulses. The right and left neighborhoods are taken here equal to 2.
  • the set P s of the selected positions is: p s
  • the combination of these selected positions constitutes the new restricted directory in which the search will take place.
  • the procedure for selecting the optimal positions set is based on the criterion CELP as does G.723.1 in the 5.3 kbit / s mode.
  • the exploration can be exhaustive or, preferably, focused.
  • the number of combinations can be further restricted by considering only the parity chosen in the 6.3 kbit / s mode (in the example cited the even parity). In this case, the number of combinations in the restricted directory is 144.
  • the set P s of the selected positions is: p s ⁇ ⁇ 2,3,4,5,6 ⁇
  • the initial distribution of these positions for the 4 pulses is:
  • Example 2 illustrates the application of the invention to intelligent transcoding between ACELP models of the same length.
  • this second exemplary embodiment is applied to intelligent transcoding between the 4-pulse ACELP of the G.729 at 8 kbit / s and the ACELP at 2 pulses of the G.729 at 6.4 bit / s.
  • Intelligent transcoding between the 6.4 kbit / s and 8 kbit / s modes of the G.729 encoder brings together a two-pulse and a four-pulse ACELP repertoire.
  • the example presented here makes it possible to determine the positions of 4 pulses (8 kbit / s) from the positions of 2 pulses (6.4 kbit / s) and vice versa.
  • a G.729 frame has 80 samples at 8 kHz. This frame is divided into two subframes of 40 samples. For each subframe, the G.729 models the innovation signal by pulses according to the ACELP model. It uses four in the 8 kbit / s mode and two in the 6.4 kbit / s mode. Tables 2 and 4 above give the positions that pulses can take for these two rates. At 6.4 kbit / s, a exhaustive search of all combinations (512) positions is performed. At 8 kbit / s, a focused search is preferably used.
  • All pulses are characterized by their track and their rank in this track.
  • the 8 kbit / s mode places a pulse on each of the first three tracks and the last pulse on one of the last two tracks.
  • the 6.4 kbit / s mode puts its first pulse on the tracks Pi or P 3 , and its second pulse on the tracks Po, Pi, P 2 or P 4 .
  • the interlacing of tracks is used in this embodiment to facilitate the extraction of neighborhoods and the composition of restricted subsets of positions.
  • To move from one track to another simply move one unit to the right or to the left. For example, if one is in the 5 th position of track 2 (of absolute position 22), an offset of 1 to the right (+1) moves to the 5 th position of track 3 (of absolute position 23) and a left shift (-1) passed the 5 -th position of the track 1 (absolute position 21).
  • a subframe of G.729 is considered to be in the 6.4 kbit / s mode.
  • Two pulses are placed by this encoder but it is necessary to determine the positions of the other pulses that must place the G.729 at 8 kbit / s.
  • the selection step is therefore immediate.
  • Two of the four G.729 pulses at 8 kbit / s are selected at the same positions as the 6.4 kbit / s mode, and then the two remaining pulses are placed in close proximity to the first two. As indicated above, the track structure is exploited.
  • Table 8 Selection of the restricted repertoire from G. 729 to 8 / s from the two pulses in the ACELP directory of G. 729 at 6.4 kbps. Preferentially, it is therefore sought to balance the distribution of the 4 positions with respect to the two starting positions, but it indicates that another choice can be made.
  • the first step is the recovery of the positions of the four pulses generated by the 8 kbit / s mode.
  • the decoding of the bit index (over 13 bits) of the 4 positions makes it possible to obtain their rank in their respective track for the first three positions (tracks 0 to 2) and the track (3 or 4) of the fourth pulse as well. than his rank in this track.
  • Each position e ⁇ (O ⁇ i ⁇ 4) is characterized by the pair (Pi.nrii) where pi is the index of its track and ⁇ ij its rank in this track.
  • pi is the index of its track and ⁇ ij its rank in this track.
  • the restriction on the right neighbor for a position of the fourth pulse belonging to the fourth track makes it possible to ensure that the neighboring position is not outside the sub-frame.
  • edge effects must be taken into account.
  • edge effects therefore amounts to ensuring that: m ⁇ 7 if p + d> 4 and that m> 0 if pd ⁇ 0.
  • the fourth and last step is to perform the search for the optimal torque in the two subsets obtained.
  • the search algorithm like the normalized one using the track structure
  • the track storage of the pulses further simplify the search algorithm. In practice, it is therefore useless to explicitly constitute the subsets So and Si restricted because sets T'j can be used alone.
  • a neighborhood of size 1 For a neighborhood of size 1, less than 8% of combinations of positions is to explore on average without exceeding 10% (50 combinations). For a neighborhood size 2, less than 17% of combinations of positions is to explore on average and at most 25% of the combinations is to explore.
  • the complexity of the treatment proposed in the invention (by adding the cost of the search in the directory restricted to the cost of the extraction of neighborhoods associated with the composition of the intersections) represents less than 30% of an exhaustive search for an equivalent quality.
  • the last example illustrates the transitions between the 8 kbit / s G.729 ACELP model and the 6.3 kbit / s G.723.1 MP-MLQ model.
  • Intelligent pulse transcoding between G.723.1 (6.3 kbit / s mode) and G.729 (8 kbit / s mode) has two major difficulties.
  • the second difficulty is related to the different structure of the dictionaries, the ACELP type for the G.729 and the MP-MLQ type for the G.723.1.
  • the example of realization presented here shows how the invention overcomes these two difficulties in order to transcode the pulses at a lower cost while preserving the quality of the transcoding.
  • a temporal correspondence is made between the positions in the two formats taking into account the difference in size of the subframes for aligning the positions relative to an origin common to E and S.
  • the lengths of the subframes of the G: 729 and G.723.1 having as the smallest multiple-common 120 the temporal correspondence is performed in blocks of 120 samples or two subframes of G.723.1 for three subframes of G.729, as shown in the example of Figure 4b.
  • blocks of 240 samples are chosen, ie a G.723.1 frame (4 subframes) for three G.729 frames (6 subframes).
  • the selection of a subset of the MP-MLQ directory of G.723.1 at 6.3 kbit / s is now described from elements of the 4-pulse G.729 ACELP directory at 8 kbit / s.
  • the first step consists in recovering the positions of the pulses in blocks of 3 sub-frames (index / e , 0 / / e ⁇ 2) of the G.729.
  • p e (i e ) a position of the subframe i e of this block.
  • the neighborhoods are then extracted from these 12 positions. It should be noted that the right (respectively left) neighborhoods of the positions of the sub-frame STSO (respectively STS1) can be allowed to leave their subframe, these neighboring positions then being in the subframe STS1 (respectively STSO ).
  • the temporal matching and neighborhood extraction step can be reversed.
  • the right (respectively left) neighborhoods of the positions of the STEO subframe (respectively STE2) can be allowed to leave their subframe, these neighboring positions then being in the subframe STE1.
  • the right (respectively left) neighborhoods of the positions in STE1 can lead to neighboring positions in STE2 (respectively STEO).
  • the last step is to explore for each sub-frame STS its restricted directory thus formed to select the N p (6 or 5) pulses of the same parity.
  • This procedure may be derived from the standard algorithm or may be inspired by other focusing procedures.
  • the MP-MLQ does not impose any constraints on the impulses, apart from their parity. On a sub-frame, they must all be of the same parity. We must therefore split P s o and P s ⁇ into two subsets, with:
  • This subdirectory is finally transmitted to the selection algorithm which determines the N p best positions within the meaning of the CELP criterion for the STSO and STS1 subframes of G.723.1. This considerably reduces the number of combinations tested. Indeed, for example in the sub-frame STSO, there remain 9 even positions and 8 odd positions instead of 30 and 30.
  • the present invention makes it possible to determine at a lower cost the positions of a set of pulses from a first set of pulses, the two sets of pulses belonging to two multi-pulse repertoires.
  • These two directories can be distinguished by their size, the length and the number of pulses of their codewords as well as by the rules governing the positions and / or amplitudes of the pulses.
  • the invention also makes it possible to exploit the structure of the starting and / or arrival directories in order to further reduce the complexity.
  • the invention is easily applicable to two multi-pulse models having different structural constraints.
  • the second exemplary embodiment having the passage between two models having a different number of pulses but based on the same ACELP structure, it will be understood that the invention advantageously makes it possible to use the structure of the directories to reduce the complexity. transcoding.
  • the third example showing the passage between an MP-MLQ model and an ACELP model, it will be understood that the invention can be applied even for coders of different subframe lengths or sampling frequencies.
  • the invention makes it possible to adjust the quality / complexity compromise and, in particular, to greatly reduce the computation complexity for a minimal degradation compared to a conventional search for a multi-pulse model.

Abstract

The invention relates to compressive transcoding between pulse coders using multipulse dictionaries in which each pulse occupies a position marked by an index. For each current pulse position supplied by a first coder, a neighborhood (Vge, Vde) is formed around that position. As a function of the pulse positions accepted by the second coder, pulse positions are selected in an ensemble constituted by a union of the neighborhoods. The second coder finally receives this selection (sj), involving a number of pulse positions smaller than the total number of pulse positions in the dictionary of the second coder.

Description

Transcodage entre indices de dictionnaires multi-impulsionnels utilisés en codage en compression de signaux numériques Transcoding between multi-pulse dictionary indices used in digital signal compression coding
La présente invention concerne le codage/décodage de signaux numériques, notamment dans des applications de transmission ou de stockage des signaux multimédias tels que les signaux audio (parole et/ou sons).The present invention relates to the encoding / decoding of digital signals, particularly in applications for transmitting or storing multimedia signals such as audio signals (speech and / or sounds).
Dans le domaine du codage en compression, de nombreux codeurs modélisent un signal de L échantillons par des impulsions en nombre restreint, très inférieur au nombre total d'échantillons. C'est, par exemple, le cas de certains codeurs audio fréquentiels tels que le codeur audio dit "TDAC" décrit notamment dans le document publié US-2001/027393. Dans ce codeur, les coefficients de transformée en cosinus discrète modifiée normalisés dans chaque bande sont quantifiés par des quantificateurs vectoriels utilisant des dictionnaires algébriques imbriqués en taille, ces codes algébriques comportent en général quelques composantes non nulles, les autres composantes étant égales à zéro. C'est aussi le cas de la majorité des codeurs de parole à analyse par synthèse notamment de type "ACELP' (pour "Algebraic Code Excited Linear Prédiction"), de type MP-MLQ (pour "MultiPulse Maximum Likelihood Quantization"), ou autres. En effet, pour modéliser le signal d'innovation, ces codeurs utilisent un répertoire, composé de formes d'ondes ayant très peu de composantes non nulles dont les positions et les amplitudes obéissent, de plus, à des règles prédéterminées.In the field of compression coding, many coders model a signal of L samples by pulses in a small number, much smaller than the total number of samples. This is, for example, the case of certain audio frequency coders such as the audio coder called "TDAC" described in particular in the published document US-2001/027393. In this coder, the modified discrete cosine transform coefficients normalized in each band are quantized by vector quantizers using algebraic dictionnaries nested in size, these algebraic codes generally comprise some non-zero components, the other components being equal to zero. This is also the case for the majority of synthetic analysis speech coders, notably of the "ACELP" type (for "Algebraic Code Excited Linear Prediction"), of the MP-MLQ (for "MultiPulse Maximum Likelihood Quantization") type, or In fact, to model the innovation signal, these coders use a repertoire consisting of waveforms having very few non-zero components whose positions and amplitudes obey, moreover, predetermined rules.
On décrit brièvement ci-après de tels codeurs à analyse par synthèse.Briefly hereinafter are described such synthetic analysis coders.
Dans ces codeurs à analyse par synthèse, le modèle de synthèse est utilisé au codage pour extraire les paramètres modélisant les signaux à coder. Ces signaux peuvent être échantillonnés à la fréquence téléphonique (Fe = 8 kHz) ou à une fréquence plus élevée, par exemple à 16 kHz pour le codage en bande élargie (bande passante de 50 Hz à 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.In these synthesis analysis coders, the synthesis model is used in coding to extract the parameters modeling the signals to be coded. These signals can be sampled at the telephone frequency (F e = 8 kHz) or at a higher frequency, for example at 16 kHz for wide band coding (bandwidth 50 Hz to 7 kHz). Depending on the application and 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 rates of 6 to 32 kbit / s in broadband.
Le principe d'un dispositif de codage/décodage numérique de type CELP, qui est le codeur/décodeur à analyse par synthèse le plus utilisé actuellement pour le codage/décodage des signaux de parole, est brièvement décrit ci- après. Le signal de parole est échantillonné et converti en une suite de blocs de L' échantillons appelés trames. En général, chaque trame est découpée en blocs plus petits de L échantillons, appelés sous-trames. Chaque bloc est synthétisé en filtrant une forme d'onde extraite d'un répertoire (appelé aussi dictionnaire), multipliée par un gain, à travers deux filtres variant dans le temps. Le dictionnaire d'excitation est un ensemble fini de formes d'ondes de L échantillons. Le premier filtre est le filtre de prédiction à long terme. Une analyse dite "LTP' (pour "Long Term Prédiction") permet d'évaluer les paramètres de ce filtre de prédiction à long terme qui exploite la périodicité des sons voisés (représentant typiquement la fréquence du fondamental (fréquence de vibration des cordes vocales)). Le second filtre est le 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 du spectre du signal (représentant typiquement les modulations dues à la forme prise par les lèvres, à la position de la langue et du larynx, ou autres).The principle of a CELP type digital coding / decoding device, which is the most widely used synthesis analysis coder / decoder for the coding / decoding of speech signals, is briefly described below. The speech signal is sampled and converted into a series of blocks of the samples called frames. In general, each frame is cut into smaller blocks of L samples, called subframes. Each block is synthesized by filtering a waveform extracted from a repertoire (also called dictionary), multiplied by a gain, through two filters varying in time. The excitation dictionary is a finite set of waveforms of L samples. The first filter is the long-term prediction filter. An analysis called "LTP" (for "Long Term Prediction") allows to evaluate the parameters of this long-term prediction filter that exploits the periodicity of voiced sounds (typically representing the frequency of the fundamental (frequency of vibration of the vocal cords) The second filter is the short-term prediction filter.The "LPC" (Linear Prediction Coding) analysis methods make it possible to obtain these short-term prediction parameters, which are representative of the transfer function of the conduit. vocal and signal spectrum characteristics (typically representing the modulations due to the shape taken by the lips, the position of the tongue and larynx, or other).
Le procédé utilisé pour déterminer la séquence d'innovation est la méthode d'analyse par synthèse. Au niveau du codeur, un grand nombre de séquences d'innovation du dictionnaire d'excitation sont filtrées par les deux filtres LTP et LPC, et la forme d'onde sélectionnée est celle produisant le signal synthétique le plus proche du signal original selon un critère de pondération perceptuelle, connu en général sous le nom de critère CELP. On décrit brièvement ci-après l'utilisation de dictionnaires multi-impulsionnels dans de tels codeurs à analyse par synthèse, étant bien entendu toutefois que les codeurs CELP, comme les décodeurs CELP, sont bien connus de l'homme de l'art.The method used to determine the innovation sequence is the method of synthesis analysis. At the encoder level, a large number of excitation dictionary innovation sequences are filtered by the two LTP and LPC filters, and the selected waveform is the one producing the synthetic signal closest to the original signal according to a criterion. perceptual weighting, commonly known as the CELP criterion. The use of multi-pulse dictionaries in such synthetic analysis encoders is briefly described below, it being understood, however, that CELP coders, such as CELP decoders, are well known to those skilled in the art.
Le codeur multi-débits de la norme UIT-T G.723.1 est un bon exemple de codeur à analyse par synthèse utilisant des dictionnaires multi-impulsionnels. Ici, les positions d'impulsions sont toutes distinctes. Les deux débits du codeur (6,3 kbit/s et 5,3 kbit/s) modélisent le signal d'innovation par des formes d'onde extraites de dictionnaires qui ne comportent qu'un nombre restreint d'impulsions non nulles: 6 ou 5 pour le haut débit, 4 pour le bas débit. Ces impulsions sont d'amplitude +1 ou -1. Dans son mode à 6,3 kbit/s, le codeur G.723.1 utilise alternativement deux dictionnaires : - dans le premier utilisé pour les sous-trames paires, les formes d'ondes comportent 6 impulsions et, - dans le deuxième utilisé pour les sous-trames impaires, elles comportent 5 impulsions. Pour ces deux dictionnaires, une seule restriction est imposée aux positions des impulsions de tout vecteur-code. Ces positions doivent toutes avoir la même parité, c'est-à-dire qu'elles sont toutes paires ou toutes impaires. Dans le dictionnaire du mode à 5,3 kbit/s, les positions des 4 impulsions sont plus contraintes. Outre la même contrainte de parité que les dictionnaires du mode haut débit, chaque impulsion a un choix limité de positions.The multi-rate encoder of ITU-T G.723.1 is a good example of a synthesis-based encoder using multi-pulse dictionaries. Here, the pulse positions are all distinct. The two encoder rates (6.3 kbit / s and 5.3 kbit / s) model the innovation signal by dictionary-derived waveforms that have only a limited number of non-zero pulses: 6 or 5 for broadband, 4 for low bit rate. These pulses are of amplitude +1 or -1. In its 6.3 kbit / s mode, the G.723.1 encoder alternately uses two dictionaries: - in the first used for even subframes, the waveforms have 6 pulses and, - in the second one, used for odd subframes, they have 5 pulses. For these two dictionaries, a single restriction is imposed on the positions of the pulses of any vector-code. These positions must all have the same parity, that is, they are all odd or even. In the 5.3 kbit / s mode dictionary, the positions of the 4 pulses are more constrained. In addition to the same parity constraint as the broadband mode dictionaries, each pulse has a limited choice of positions.
Le dictionnaire multi-impulsionnel du mode à 5,3 kbit/s appartient à la famille bien connue des dictionnaires ACELP. La structure d'un répertoire ACELP est basée sur la technique 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. Dans certaines applications, la dimension L des mots de codes peut être étendue à Z.+N. Ainsi dans le cas du répertoire du mode bas débit du codeur selon la norme UIT-T G.723.1, la dimension du bloc de 60 échantillons a été étendue à 64 échantillons et les 32 positions paires (respectivement impaires) ont été divisées en 4 pistes entrelacées de longueur 8 ne se recouvrant pas. Il y a donc deux groupes de 4 pistes, un pour chaque parité. La table 1 ci-après présente pour chaque impulsion notée io à /3 l'ensemble de ces 4 pistes pour les positions paires. . . . .The 5.3 kbit / s mode multi-pulse dictionary belongs to the well-known family of ACELP dictionaries. The structure of an ACELP directory is based on the ISPP technique (for "Interleaved Single-Pulse Permutation") which consists in dividing all the L positions into K interleaved tracks, each of the N pulses being located in certain predefined tracks. In some applications, the L dimension of code words can be extended to Z + N. Thus in the case of the encoder low bit rate directory according to ITU-T G.723.1, the block size of 60 samples was extended to 64 samples and the 32 even (odd) positions were divided into 4 tracks. interlaced length 8 not overlapping. So there are two groups of 4 tracks, one for each parity. Table 1 below shows for each pulse denoted io to / 3 all of these 4 tracks for the even positions. . . . .
Table T. Positions et amplitudes des impulsions du dictionnaire ACELP du codeur G.723.1 à 5,3 kbit/s Table T. Positions and Amplitudes of ACELP Code Pulses of the G.723.1 5.3 kbit / s Encoder
Les dictionnaires d'innovation ACELP sont utilisés dans de nombreux codeurs à analyse par synthèse qui sont normalisés (UIT-T G.723.1 , UIT-T G.729, IS- 641, 3GPP NB-AMR, 3GPP WB-AMR). Les tables 2 à 4 ci-après présentent quelques exemples de ces dictionnaires ACELP pour une longueur de bloc de 40 échantillons. On notera que la contrainte de parité n'est pas utilisée dans ces dictionnaires. La table 2 présente le dictionnaire ACELP à 17 bits et 4 impulsions non nulles d'amplitude ±1, utilisé dans le codeur UIT-T G.729 à 8 bkit/s, dans le codeur IS-641 à 7,4 kbit/s ainsi que dans les modes 7,4 et 7,95 kbit/s du codeur 3GPP NB-AMR.The ACELP innovation dictionaries are used in many synthetic analysis coders that are standardized (ITU-T G.723.1, ITU-T G.729, IS-641, 3GPP NB-AMR, 3GPP WB-AMR). Tables 2 to 4 below show some examples of these ACELP dictionaries for a block length of 40 samples. Note that the parity constraint is not used in these dictionaries. Table 2 shows the 17-bit ACELP dictionary and 4 non-zero pulses ± 1, used in the ITU-T G.729 8-bit / sec encoder, in the 7.4 kbit / s IS-641 encoder as well as in the 7.4 and 7.95 kbit / s modes of the 3GPP NB-AMR encoder.
Table 2: Positions et amplitudes des impulsions du dictionnaire ACELP des codeurs UIT-T G.729 à 8 kbit/s, IS641 à 7,4 kbit/s et 3GPP NB-AMR à 7,4 et 7,95 kbit/s Dans le dictionnaire ACELP à 35 bits utilisé dans le mode 12,2 kbit/s du codeur 3GGPP NB-AMR, chaque vecteur-code contient 10 impulsions non nulles d'amplitude ±1. Le bloc de 40 échantillons est divisé en 5 pistes de longueur 8, chacune contenant 2 impulsions. On note que les deux impulsions d'une même piste peuvent se recouvrir et résulter en une seule impulsion d'amplitude ±2. Ce dictionnaire est présenté à la table 3. Table 2: ACELP Dictionary Pulses and Amplitudes of ITU-T G.729 8 kbit / s, IS641 7.4 kbit / s and 3GPP NB-AMR 7.4 and 7.95 kbit / s Encoders In the 35-bit ACELP dictionary used in the 12.2 kbit / s mode of the 3GGPP NB-AMR encoder, each code vector contains 10 non-zero pulses of amplitude ± 1. The block of 40 samples is divided into 5 tracks of length 8, each containing 2 pulses. Note that the two pulses of the same track can overlap and result in a single pulse amplitude ± 2. This dictionary is presented in Table 3.
Table 3: Positions et amplitudes des impulsions du dictionnaire ACELP du codeur 3GPP NB-AMR à 12,2 kbit/s Table 3: Positions and magnitudes of the pulses in the ACELP dictionary of the 3GPP NB-AMR 12.2 kbit / s encoder
Enfin, la table 4 présente le dictionnaire ACELP à 11 bits et 2 impulsions non nulles d'amplitude ±1, utilisé dans l'extension à bas débit (6,4 bkit/s) du codeur UIT-T G.729 et dans le mode 5,9 kbit/s du codeur 3GPP NB-AMR.Finally, Table 4 presents the 11-bit ACELP dictionary and 2 non-zero pulses of ± 1 amplitude, used in the low-bit-rate (6.4 bps / sec) extension of the ITU-T G.729 encoder and in the 5.9 kbit / s mode of the 3GPP NB-AMR encoder.
Table 4: Positions et amplitudes des impulsions du dictionnaire ACELP des codeurs UIT-T G.729 à 6,4 kbit/s et 3GPP NB-AMR à 5,9 kbit/s Table 4: ACELP Dictionary Pulses and Amplitudes of ITU-T G.729 6.4 kbit / s and 3GPP NB-AMR 5.9 kbit / s Encoders
On décrit ci-après ce que l'on entend par "l'exploration" des dictionnaires multi- impulsionnels. Comme pour toute opération de quantification, la recherche de la modélisation optimale d'un vecteur à coder consiste à choisir dans l'ensemble (ou dans un sous-ensemble) des vecteurs-codes du dictionnaire, celui qui lui "ressemble" le plus, c'est-à-dire celui qui minimise une mesure de distance entre lui et ce vecteur d'entrée. Pour ce faire, on procède à une étape dite "d'exploration" des dictionnaires.What is meant by "exploration" of multi-pulse dictionaries is described below. As with any quantization operation, the search for the optimal modeling of a vector to be coded consists in choosing from the set (or in a subset) of the code vectors of the dictionary, the one that "resembles" it the most, that is to say the one that minimizes a measure of distance between him and this input vector. To do this, we proceed to a step called "exploration" of the dictionaries.
Dans le cas des dictionnaires multi-impulsionnels, cette étape revient à rechercher la combinaison d'impulsions qui optimise la proximité entre le signal à modéliser et le signal résultant du choix des impulsions. Selon la taille et/ou la structure du dictionnaire, cette exploration peut être exhaustive ou non (donc plus ou moins complexe).In the case of multi-pulse dictionaries, this step amounts to looking for the combination of pulses that optimizes the proximity between the signal to be modeled and the signal resulting from the choice of pulses. Depending on the size and / or structure of the dictionary, this exploration may be exhaustive or not (so more or less complex).
Les dictionnaires utilisés dans le codeur TDAC précité étant des unions de codes à permutation de type II, l'algorithme de codage d'un vecteur de coefficients de transformée normalisés exploite cette propriété pour déterminer son plus proche voisin parmi tous les vecteurs-codes tout en ne calculant qu'un nombre limité de critères de distance (avec une utilisation de vecteurs dits "leaders absolus").Since the dictionaries used in the aforementioned TDAC coder are type II permutation code unions, the algorithm for encoding a vector of standardized transform coefficients exploits this property to determine its nearest neighbor among all the code vectors while calculating only a limited number of distance criteria (with a use of so-called "absolute leaders").
Dans les codeurs à analyse par synthèse, l'exploration des dictionnaires multi- impulsionnels n'est pas exhaustive sauf pour les dictionnaires de faible taille. Pour les dictionnaires à plus haut débit, seul un petit pourcentage du dictionnaire est exploré. Par exemple, l'exploration des dictionnaires multi- impulsionnels de type ACELP est généralement effectuée en deux étapes. Pour simplifier cette recherche, une première étape présélectionne pour chaque position possible d'impulsion son amplitude (donc son signe comme indiqué ci-avant) par une simple quantification d'un signal dépendant du signal d'entrée. Les amplitudes des impulsions étant fixées, les positions des impulsions sont alors recherchées par une technique d'analyse par synthèse (selon le critère CELP). En dépit de l'exploitation de la structure en ISPP et du nombre restreint d'impulsions, une recherche exhaustive des combinaisons des positions n'est effectuée que pour les dictionnaires bas débit (typiquement inférieur ou égal à 12 bits). C'est le cas par exemple, pour le dictionnaire ACELP à 11 bits (table 4) utilisé dans le codeur G.729 à 6,4 kbit/s où les 512 combinaisons de positions de 2 impulsions sont toutes testées pour sélectionner la meilleure, ce qui revient à calculer les 512 critères CELP correspondants. -In synthetic-based coders, exploration of multi-pulse dictionaries is not exhaustive except for small dictionaries. For higher-rate dictionaries, only a small percentage of the dictionary is explored. For example, the exploration of ACELP multi-pulse dictionaries is usually done in two steps. To simplify this search, a first step pre-selects for each possible pulse position its amplitude (and hence its sign as indicated above) by a simple quantization of a signal dependent on the input signal. The amplitudes of the pulses being fixed, the positions of the pulses are then sought by a synthesis analysis technique (according to the CELP criterion). Despite the exploitation of the IPPH structure and the limited number of pulses, an exhaustive search of combinations of positions is performed only for low rate dictionaries (typically less than or equal to 12 bits). This is the case, for example, for the 11-bit ACELP dictionary (table 4) used in the 6.4 kbit / s G.729 coder where the 512 combinations of 2 pulse positions are all tested to select the best one, which amounts to calculating the corresponding 512 CELP criteria. -
Pour les dictionnaires à plus haut débit, diverses méthodes dites de focalisation ont été proposées. On parle alors de "recherche focalisée".For the higher rate dictionaries, various so-called focusing methods have been proposed. This is called "focused research".
Certaines de ces méthodes, connues, sont utilisées dans les codeurs normalisés cités ci-avant. Leur but est de réduire le nombre de combinaisons de positions à explorer en se basant sur les propriétés du signal à modéliser. Par exemple, on peut citer l'algorithme dit "depth-first tree", utilisé par beaucoup de codeurs ACELP standardisés. Dans cet algorithme, on privilégie certaines positions telles que les maxima locaux des pistes d'un signal-cible dépendant du signal d'entrée, du signal synthétique passé et du filtre composé des filtres de synthèse et de pondération perceptuelle. Il en existe plusieurs variantes selon la taille du dictionnaire utilisé. Pour explorer le dictionnaire ACELP à 35 bits et 10 impulsions (table 3), la première impulsion est placée à la même position que le maximum global du signal-cible. Puis, quatre itérations sont effectuées par permutation circulaire des pistes consécutives. A chaque itération, la position de la deuxième impulsion est fixée au maximum local d'une des 4 autres pistes, les positions des huit autres impulsions restantes sont recherchées séquentiellement par paires dans des boucles imbriquées. On teste à chaque itération 256 (=4 pairesxδxδ) combinaisons différentes, ce qui permet donc de n'explorer que 1024 combinaisons de positions des 10 impulsions parmi les 225 du dictionnaire. Une autre variante est utilisée dans le codeur IS641 où un pourcentage plus élevé de combinaisons du dictionnaire à 17 bits et 4 impulsions (table 2) est exploré. On teste 768 combinaisons parmi les 8192 (=213) combinaisons de positions d'impulsions. Dans le codeur G.729 à 8 kbit/s, ce même dictionnaire ACELP est exploré par une méthode différente de focalisation. L'algorithme effectue une recherche itérative en imbriquant quatre boucles de recherche des impulsions (une par impulsion). La recherche est focalisée en rendant l'entrée dans la boucle intérieure (recherche de la dernière impulsion appartenant aux pistes 3 ou 4) conditionnelle au dépassement d'un seuil adaptatif; Ce seuir dépend aussi des propriétés du signal-cible (maxima locaux et moyennes des 3 premières pistes). De plus, le nombre maximal d'explorations de combinaisons de 4 impulsions est fixé à 1440 (soit 17,6 % des 8192 combinaisons).Some of these known methods are used in the standard coders mentioned above. Their purpose is to reduce the number of combinations of positions to explore based on the properties of the signal to be modeled. For example, we can cite the so-called "depth-first tree" algorithm, used by many standardized ACELP coders. In this algorithm, certain positions are preferred, such as the local maxima of the tracks of a target signal depending on the input signal, the synthetic signal passed and the filter composed of the synthesis and perceptual weighting filters. There are several variants depending on the size of the dictionary used. To explore the ACELP dictionary at 35 bits and 10 pulses (table 3), the first pulse is placed at the same position as the overall maximum of the target signal. Then, four iterations are performed by circular permutation of the consecutive tracks. At each iteration, the position of the second pulse is set to the local maximum of one of the other 4 tracks, the positions of the other eight remaining pulses are searched sequentially in pairs in nested loops. At each iteration 256 (= 4 pairs xδxδ) different combinations are tested, which makes it possible to explore only 1024 combinations of positions of the 10 pulses among the 2 25 of the dictionary. Another variant is used in the IS641 encoder where a higher percentage of combinations of the 17-bit dictionary and 4 pulses (table 2) is explored. We tests 768 combinations among the 8192 (= 2 13 ) combinations of pulse positions. In the 8 kbit / s G.729 encoder, this same ACELP dictionary is explored by a different method of focusing. The algorithm performs an iterative search by nesting four pulse search loops (one per pulse). The search is focused by making the entry in the inner loop (search for the last pulse belonging to the tracks 3 or 4) conditional on exceeding an adaptive threshold; This threshold also depends on the properties of the target signal (local and average maxima of the first 3 tracks). In addition, the maximum number of explorations of combinations of 4 pulses is fixed at 1440 (17.6% of the 8192 combinations).
Dans le codeur G.723.1 à 6,3 kbit/s, toutes les 2 χ25 χC3 5 0 (respectivement 2χ26 χC3 6 0) combinaisons de 5 (respectivement 6) impulsions ne sont pas explorées. Pour chaque grille, l'algorithme emploie une analyse connue, de type "multipulse", pour rechercher séquentiellement les positions et les amplitudes des impulsions. Comme pour les dictionnaires ACELP, des variantes existent pour restreindre le nombre de combinaisons testées.In the G.723.1 encoder at 6.3 kbit / s, every 2 χ2 5 χC 3 5 0 (respectively 2χ2 6 χC 3 6 0 ) combinations of 5 (respectively 6) pulses are not explored. For each grid, the algorithm uses a known "multipulse" analysis to sequentially search the positions and amplitudes of the pulses. As with ACELP dictionaries, variants exist to restrict the number of combinations tested.
De telles techniques présentent toutefois les problèmes ci-après.Such techniques, however, have the following problems.
L'exploration, même sous-optimale, d'un dictionnaire multi-impulsionnel constitue dans beaucoup de codeurs une opération coûteuse en temps de calcul. Par exemple, dans les codeurs G.723.1 à 6,3kbit/s et le G.729 à 8 kbit/s, cette recherche représente près de la moitié de la complexité totale du codeur. Pour le NB-AMR, elle représente le tiers de la complexité totale du codeur. Pour le codeur TDAC, elle représente le quart de la complexité totale du codeur. On comprendra en particulier que cette complexité devient critique lorsque plusieurs codages doivent être effectués par une même unité de traitement, telle qu'une passerelle chargée de gérer de nombreuses communications en parallèle ou un serveur distribuant de nombreux contenus multimédias. Le problème de la complexité est encore accru par la multiplicité des formats de compression qui circulent sur les réseaux.The exploration, even suboptimal, of a multi-pulse dictionary is in many coders an expensive operation in computing time. For example, in G.723.1 encoders at 6.3kbit / s and G.729 at 8kbit / s, this search represents almost half of the total complexity of the encoder. For the NB-AMR, it represents one third of the total complexity of the encoder. For the TDAC encoder, it represents one quarter of the total complexity of the encoder. It will be understood in particular that this complexity becomes critical when several codings must be performed by the same processing unit, such as a gateway responsible for managing many parallel communications or a server distributing a large number of multimedia contents. The problem of complexity is further increased by the multiplicity of compression formats that circulate on networks.
En effet, pour offrir mobilité et continuité, les services de communication multimédias modernes et innovants doivent pouvoir fonctionner dans une grande variété de conditions. Le dynamisme du secteur de la communication multimédia et l'hétérogénéité des réseaux, accès et terminaux ont engendré une prolifération de formats de compression dont la présence dans les chaînes de communication nécessite plusieurs codages soit en cascade (transcodage), soit en parallèle (codage multi-format ou codage multi-mode).Indeed, to offer mobility and continuity, modern and innovative multimedia communication services must be able to operate in a wide variety of conditions. The dynamism of the multimedia communication sector and the heterogeneity of networks, accesses and terminals have led to a proliferation of compression formats whose presence in communication channels requires several codings either in cascade (transcoding) or in parallel (multi-coding). -format or multi-mode encoding).
On définit ci-après ce que l'on entend par "transcodage". Le transcodage devient nécessaire lorsque, dans une chaîne de transmission, une trame de signal compressée émise par un codeur ne peut plus poursuivre son chemin, sous ce format. Le transcodage permet de convertir cette trame sous un autre format compatible avec la suite de la chaîne de transmission. La solution la plus élémentaire (et la plus courante à l'heure actuelle) est la mise bout à bout d'un décodeur et d'un codeur. La trame compressée arrive sous un premier format, elle est décompressée. Ce signal décompressé est alors recompressé sous un second format accepté par la suite de la chaîne de communication. Cette mise en cascade d'un décodeur et d'un codeur est appelée "tandem". Cette solution est très coûteuse en complexité (essentiellement à cause du recodage) et elle dégrade la qualité. En effet, le second codage se fait sur un signal décodé, qui est une version dégradée du signal original. Par ailleurs, une trame peut rencontrer plusieurs tandems avant d'arriver à destination. On imagine aisément le coût en calcul et la perte de qualité. De plus, les retards liés à chaque opération de tandem s'accumulent et peuvent nuire à l'interactivité des communications.What is meant by "transcoding" is defined below. Transcoding becomes necessary when, in a transmission chain, a compressed signal frame sent by an encoder can not continue its path, in this format. Transcoding makes it possible to convert this frame into another format compatible with the rest of the transmission chain. The most basic solution (and the most common at the moment) is the end-to-end addition of a decoder and an encoder. The compressed frame comes in a first format, it is uncompressed. This decompressed signal is then recompressed in a second format accepted later in the communication chain. This cascading of a decoder and an encoder is called "tandem". This solution is very expensive in complexity (mainly because of the recoding) and it degrades the quality. Indeed, the second coding is done on a decoded signal, which is a degraded version of the original signal. In addition, a frame may encounter several tandems before reaching its destination. We can easily imagine the cost in calculation and the loss of quality. In addition, the delays related to each tandem operation builds up and can interfere with the interactivity of communications.
Par ailleurs, la complexité pose aussi problème dans le cadre d'un système de compression multi-format où un même contenu est compressé sous plusieurs formats. C'est le cas des serveurs de contenus qui diffusent un même contenu sous plusieurs formats adaptés aux conditions d'accès, de réseaux et terminaux des différents clients. Cette opération de multi-codage devient extrêmement complexe à mesure qu'augmente le nombre de formats désirés, ce qui sature rapidement les ressources du système.In addition, the complexity is also problematic in the context of a multi-format compression system where the same content is compressed in several formats. This is the case of content servers that broadcast the same content in several formats adapted to the conditions of access, networks and terminals of different customers. This multi-coding operation becomes extremely complex as the number of desired formats increases, which quickly saturates system resources.
Un autre cas de codage multiple en parallèle est la compression multi-mode à décision a posteriori. A chaque segment de signal à coder, plusieurs modes de compression sont effectués et celui qui optimise un critère donné ou obtient le meilleur compromis débit/distorsion est sélectionné. Là encore, la complexité de chacun des modes de compression en limite le nombre et/ou conduit à élaborer une sélection a priori d'un nombre très restreint de modes.Another case of multiple-coding in parallel is post-decision multi-mode compression. For each signal segment to be encoded, several compression modes are performed and the one that optimizes a given criterion or obtains the best compromise between bit rate and distortion is selected. Here again, the complexity of each of the modes of compression limits the number and / or leads to elaborate a selection a priori of a very limited number of modes.
On décrit ci-après les approches, connues, qui ont été mises en œuvre pour tenter de résoudre les problèmes posés décrits ci-avant.The following are known approaches which have been implemented in an attempt to solve the problems described above.
Les nouvelles applications de communication multimédia (tels que l'audio et la vidéo) nécessitent souvent plusieurs codages soit en cascade (transcodage) soit en parallèle (multi-codage et codage multi-mode à décision a posteriori). La barrière de complexité posée par tous ces codages reste un problème à résoudre, malgré l'augmentation des puissances de traitement actuelles. La plupart de ces opérations connues de codage multiple ne prennent pas en compte les interactions entre les formats et entre le format de E et son contenu. Cependant, quelques techniques de transcodage intelligent ont été proposées qui ne se contentent plus de décoder puis recoder, mais exploitent les similitudes entre formats de codages et permettent ainsi de réduire la complexité tout en limitant la dégradation apportée.New multimedia communication applications (such as audio and video) often require multiple codings either in cascade (transcoding) or in parallel (multi-coding and multi-mode coding with ex-post decision). The complexity barrier posed by all these codings remains a problem to be solved, in spite of the increase of the current processing powers. Most of these known multi-coding operations do not take into account the interactions between the formats and between the format of E and its contents. However, some intelligent transcoding techniques have been proposed that do not just decode but recode, but exploit the similarities between encoding formats and thus reduce the complexity while limiting the degradation provided.
On décrit ci-après des méthodes de transcodage dit "intelligent'.Hereinafter described "intelligent" transcoding methods.
Au sein d'une même famille de codeurs (CELP, paramétrique, par transformée, ou autre), tous les codeurs extraient du signal les mêmes paramètres physiques. Pourtant, il existe une grande variété de modélisation et/ou quantification de ces paramètres. Ainsi, d'un codeur à un autre, un même paramètre peut être codé de la même manière, ou, au contraire, très différemment.Within the same encoder family (CELP, parametric, transform, or other), all the encoders extract the same physical parameters from the signal. However, there is a wide variety of modeling and / or quantification of these parameters. Thus, from one coder to another, the same parameter can be coded in the same way, or, on the contrary, very differently.
Par ailleurs, les codages peuvent être strictement identiques. Ils peuvent être identiques dans la modélisation et le calcul du paramètre, mais se différencier simplement par la traduction du codage sous forme de bits. Enfin, ils peuvent être complètement différents tant par la modélisation du paramètre que sa quantification, voire par sa fréquence d'analyse ou d'échantillonnage.Moreover, the encodings can be strictly identical. They can be identical in the modeling and the calculation of the parameter, but can be differentiated simply by the translation of the coding in the form of bits. Finally, they can be completely different as much by the modeling of the parameter as its quantification, or even by its frequency of analysis or sampling.
Si la modélisation et le calcul d'un paramètre sont strictement identiques, y compris dans la traduction binaire, il suffit de recopier le champ binaire correspondant du train binaire généré par le premier codeur vers celui du second. Ce cas très favorable se présente par exemple lors d'un transcodage de la norme G.729 à la norme IS-641 pour l'excitation adaptative (retards LTP).If the modeling and the calculation of a parameter are strictly identical, including in the binary translation, it is sufficient to copy the corresponding binary field of the bit stream generated by the first coder to that of the second. This very favorable case occurs for example when transcoding the G.729 standard to the IS-641 standard for adaptive excitation (LTP delays).
Si, pour le même paramètre, les deux codeurs ne se distinguent que par la traduction binaire du paramètre calculé, il suffit de décoder le champ binaire du premier format, puis de repasser dans le domaine binaire en utilisant la méthode de codage selon le second format. Cette conversion peut aussi être effectuée par des tables de correspondance bijective. C'est le cas par exemple lors d'un transcodage des excitations fixes de la norme G.729 à la norme AMR (7,4 et 7,95kbit/s).If, for the same parameter, the two coders are distinguished only by the binary translation of the calculated parameter, it suffices to decode the binary field of the first format, then to return to the binary domain using the coding method according to the second format . This conversion can also be performed by bijective correspondence tables. This is the case, for example when transcoding the fixed excitations of the G.729 standard to the AMR standard (7.4 and 7.95kbit / s).
Dans les deux cas précédents, le transcodage du paramètre se fait en restant au niveau des bits. Une simple manipulation de bits permet de rendre le paramètre compatible avec le second format de codage. En revanche, lorsqu'un paramètre extrait du signal est modélisé ou quantifié différemment par deux formats de codage, le passage de l'un vers l'autre ne se fait pas aussi simplement. Plusieurs méthodes ont été proposées. Elles opèrent soit au niveau du paramètre, soit au niveau de l'excitation, soit au niveau du signal décodé.In the two previous cases, the transcoding of the parameter is done while remaining at the level of the bits. Simple bit manipulation makes the parameter compatible with the second coding format. On the other hand, when a parameter extracted from the signal is modeled or quantified differently by two coding formats, the transition from one to the other is not so simple. Several methods have been proposed. They operate either at the parameter level, at the level of the excitation, or at the level of the decoded signal.
Pour le transcodage dans le domaine des paramètres, rester au niveau du paramètre est possible lorsque les deux formats de codage calculent un paramètre de la même manière mais le quantifient différemment. Les différences de quantifications peuvent être liées à la précision choisie ou encore à la méthode choisie (scalaire, vectorielle, prédictive, ou autre). Il suffit alors de décoder le paramètre, puis de le quantifier par la méthode du second format de codage. Cette méthode connue est appliquée actuellement, notamment pour le transcodage des gains d'excitations. Souvent, il faut modifier le paramètre décodé avant sa requantification. Par exemple, si les codeurs ont des fréquences d'analyse du paramètre ou des longueurs de trames/sous-trames différentes, il est courant d'interpoler/décimer les paramètres. L'interpolation peut se faire par exemple selon la méthode décrite dans le document publié US2003/033142. Une autre modification possible est d'arrondir le paramètre à la précision qui lui est imposée par le second format de codage. Ce cas se présente surtout pour la hauteur de la fréquence fondamentale (ou "pitch").For transcoding in the parameter domain, staying at the parameter level is possible when both encoding formats compute a parameter in the same way but quantify it differently. The differences in quantification can be related to the chosen precision or to the chosen method (scalar, vector, predictive, or other). It is then enough to decode the parameter, then to quantify it by the method of the second coding format. This known method is currently applied, in particular for the transcoding of excitation gains. Often the decoded parameter must be modified before requantification. For example, if the encoders have parameter analysis frequencies or different frame / subframe lengths, it is common to interpolate / decimate the parameters. The interpolation can be done for example according to the method described in the published document US2003 / 033142. Another possible modification is to round the parameter to the precision imposed on it by the second coding format. This case is especially for the height of the fundamental frequency (or "pitch").
S'il n'est pas possible de transcoder un paramètre en restant dans le domaine du paramètre, on peut remonter à un niveau supérieur dans le décodage. Il s'agit du domaine de l'excitation, sans pour autant aller jusqu'au domaine du signal. Cette technique a été proposée pour les gains dans la référence : "Improving transcoding capability of speech coders in clean and frame erasured channel environments" de Hong-Goo Kang, Hong Kook Kim, Cox, R.V., dans Speech Coding, 2000, Proceedings 2000, IEEE Workshop on Speech Coding, Pages 78-80.If it is not possible to transcode a parameter while remaining in the parameter domain, one can go back to a higher level in the decoding. he This is the field of excitation, without going to the domain of the signal. This technique has been proposed for gains in the reference: "Improving transcoding capability of speech coders in clean and frame erasured channel environments" of Hong-Goo Kang, Kim Hong Kook, Cox, RV, in Speech Coding, 2000, Proceedings 2000, IEEE Workshop on Speech Coding, Pages 78-80.
Enfin, une dernière solution (la plus complexe et la moins "intelligente") consiste à recalculer explicitement le paramètre comme le ferait le codeur, mais à partir d'un signal synthétisé. Cette opération revient à une sorte de tandem partiel, seuls certains paramètres étant entièrement recalculés. Cette méthode a été appliquée à divers paramètres tels que l'excitation fixe, les gains dans la référence IEEE précitée, ou le pitch.Finally, a last solution (the most complex and the least "intelligent") is to explicitly recalculate the parameter as the encoder would, but from a synthesized signal. This operation returns to a kind of partial tandem, only certain parameters being entirely recalculated. This method has been applied to various parameters such as fixed excitation, gains in the aforementioned IEEE reference, or pitch.
Pour le transcodage des impulsions, même si plusieurs techniques ont été développées afin de calculer les paramètres rapidement et à moindre coût, peu de ces solutions aujourd'hui ont une approche intelligente pour calculer les impulsions d'un format à partir du paramètre équivalent sous un autre format. En codage à analyse par synthèse, le transcodage intelligent des codes impulsionnels n'est appliqué que lorsque la modélisation est identique (ou proche). En revanche, si les modélisations sont différentes, la méthode du tandem partiel est utilisée. Il faut noter que pour limiter la complexité de cette opération, des approches focalisées exploitant les propriétés du signal décodé ou d'un signal dérivé tel qu'un signal-cible ont été proposées. Dans le document précité US-2001/027393, dans l'exemple de réalisation mettant en œuvre un codeur par transformée MDCT, est présentée une procédure de changement de débit qui peut être considérée comme un cas particulier du transcodage intelligent. En effet, cette procédure permet de requantifier un vecteur d'un premier dictionnaire par un vecteur d'un second dictionnaire. Elle distingue pour cela deux cas selon l'appartenance ou non du vecteur à requantifier dans le deuxième dictionnaire. Si le vecteur quantifié appartient au nouveau dictionnaire, la modélisation est identique ; sinon, la méthode du décodage partiel est appliquée.For transcoding pulses, even though several techniques have been developed to calculate parameters quickly and cheaply, few of these solutions today have an intelligent approach to compute the pulses of a format from the equivalent parameter under a other format. In synthesis analysis coding, intelligent transcoding of pulse codes is applied only when modeling is identical (or near). On the other hand, if the modelizations are different, the partial tandem method is used. It should be noted that in order to limit the complexity of this operation, focused approaches exploiting the properties of the decoded signal or of a derived signal such as a target signal have been proposed. In the aforementioned document US-2001/027393, in the exemplary embodiment implementing an MDCT transform coder, a rate change procedure is presented which can be considered as a special case of intelligent transcoding. Indeed, this procedure makes it possible to requantize a vector of a first dictionary by a vector of a second dictionary. For this purpose, it distinguishes two cases according to whether or not the vector to be requantized in the second dictionary. If the quantified vector belongs to the new dictionary, the modeling is identical; otherwise, the partial decoding method is applied.
La présente invention propose, en se démarquant de toutes ces techniques connues, un transcodage multi-impulsionnel basé sur une sélection d'un sous- ensemble de combinaisons de positions d'impulsions d'un ensemble de jeux d'impulsions à partir d'une combinaison de positions d'impulsions d'un autre ensemble de jeux d'impulsions, les deux ensembles pouvant se distinguer par le nombre d'impulsions qu'ils comportent ainsi que par les règles régissant leurs positions et/ou leurs amplitudes. Ce transcodage est très utile notamment pour les codages multiples en cascade (transcodages) ou en parallèle (multi-codages et codages multi-modes).The present invention proposes, in contrast to all these known techniques, a multi-pulse transcoding based on a selection of a subset of combinations of pulse positions of a set of sets of pulses from a combination of pulse positions of another set of sets of pulses, the two sets being distinguishable by the number of pulses they contain and by the rules governing their positions and / or their amplitudes. This transcoding is very useful in particular for multiple coding in cascade (transcoding) or in parallel (multi-coding and multi-mode coding).
A cet effet, la présente invention propose tout d'abord un procédé de transcodage entre un premier codeur/décodeur en compression et au moins un second codeur/décodeur en compression. Ces premier et second codeurs/décodeurs sont de type impulsionnel et utilisent des dictionnaires multi-impulsionnels dans lesquels chaque impulsion comporte une position repérée par un indice associé.For this purpose, the present invention firstly proposes a transcoding method between a first encoder / decoder in compression and at least one second encoder / decoder in compression. These first and second encoders / decoders are of pulse type and use multi-pulse dictionaries in which each pulse has a position marked by an associated index.
Le procédé de transcodage au sens de l'invention comporte les étapes suivantes : a) le cas échéant, adaptation de paramètres de codage entre lesdits premier et second codeurs/décodeurs, b) obtention, à partir du premier codeur/décodeur, d'un nombre choisi de positions d'impulsions et d'indices de positions respectivement associés, c) pour chaque position d'impulsion courante d'indice donné, formation d'un groupe de positions d'impulsions comportant au moins la position d'impulsion courante et des positions d'impulsions d'indices associés immédiatement inférieurs et immédiatement supérieurs à l'indice donné, d) sélection, en fonction de positions d'impulsions admises par le second codeur/décodeur, d'une partie au moins des positions d'impulsions dans un ensemble constitué par une union desdits groupes formés à l'étape c), et e) transmission des positions des impulsions ainsi sélectionnées au second codeur/décodeur, pour un codage/décodage à partir desdites positions transmises.The transcoding method in the sense of the invention comprises the following steps: a) where appropriate, adaptation of coding parameters between said first and second coders / decoders, b) obtaining, from the first coder / decoder, a selected number of respectively associated pulse positions and position indices, c) for each given index current pulse position, forming a group of pulse positions having at least the current pulse position and associated index pulse positions immediately below and immediately above the given index, d) selecting, as a function of pulse positions allowed by the second coder / decoder, at least a part of the pulse positions in a set consisting of a union of said groups formed in step c), and e) transmitting the positions of the pulses thus selected to the second encoder / decoder, for coding / decoding from said transmitted positions.
Ainsi, la sélection de l'étape d) fait intervenir un nombre de positions d'impulsions possibles inférieur au nombre total de positions d'impulsions possibles du dictionnaire du second codeur/décodeur.Thus, the selection of step d) involves a number of possible pulse positions less than the total number of possible pulse positions of the dictionary of the second coder / decoder.
On comprendra en particulier qu'à l'étape e), dans le cas où le second codeur/décodeur précité est un codeur, les positions d'impulsion sélectionnées sont transmises à ce codeur, pour un codage par recherche uniquement parmi les positions transmises. Dans le cas où le second codeur/décodeur précité est un décodeur, ces positions d'impulsion sélectionnées sont transmises pour un décodage de ces positions.It will be understood in particular that in step e), in the case where the second encoder / decoder mentioned above is an encoder, the selected pulse positions are transmitted to this encoder, for search coding only among the transmitted positions. In the case where the aforementioned second encoder / decoder is a decoder, these selected pulse positions are transmitted for a decoding of these positions.
Préférentiellement, l'étape b) utilise un décodage partiel du flux binaire fourni par le premier codeur/décodeur en vue d'identifier un premier nombre de positions d'impulsions qu'utilise le premier codeur/décodeur, dans un premier format de codage. Ainsi, le nombre choisi à l'étape b) correspond préférentiellement à ce premier nombre de positions d'impulsions.Preferably, step b) uses a partial decoding of the bitstream provided by the first coder / decoder in order to identify a first number of pulse positions used by the first coder / decoder, in a first coding format. Thus, the number chosen in step b) preferably corresponds to this first number of pulse positions.
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 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. La présente invention vise aussi un dispositif de transcodage entre des premier et second codeurs/décodeurs en compression, et comportant alors une mémoire propre à stocker des instructions d'un produit programme d'ordinateur du type décrit ci-avant.In an advantageous embodiment, the above steps are implemented by a computer program product comprising program instructions for this purpose. In this respect, the present invention also aims at such a 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 intended for to cooperate with a drive of the processing unit. The present invention also relates to a transcoding device between first and second encoders / decoders in compression, and then having a memory adapted to store instructions of a computer program product of the type described above.
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 représente schématiquement le contexte de transcodage au sens de la présente invention, dans une configuration "en cascade",FIG. 1a diagrammatically represents the transcoding context within the meaning of the present invention, in a "cascade" configuration,
- la figure 1b représente schématiquement le contexte de transcodage au sens de la présente invention, dans une configuration "en parallèle",FIG. 1b diagrammatically represents the transcoding context in the sense of the present invention, in a "parallel" configuration,
- la figure 2 représente schématiquement les différents cas prévus pour les traitements de transcodage à effectuer, - la figure 2a représente schématiquement un traitement d'adaptation prévu pour le cas où les fréquences d'échantillonnage des premier E et second S codeurs sont différentes,FIG. 2 diagrammatically represents the different cases provided for the transcoding processes to be performed; FIG. 2a schematically represents an adaptation processing provided for the case where the sampling frequencies of the first E and second S encoders are different,
- la figure 2b représente schématiquement une variante du traitement de la figure 2a, - la figure 3 résume les étapes du procédé de transcodage au sens de l'invention,FIG. 2b diagrammatically represents a variant of the processing of FIG. 2a; FIG. 3 summarizes the steps of the transcoding method within the meaning of the invention;
- la figure 4 représente schématiquement le cas de deux sous-trames respectivement des codeurs E et S, de durées différentes Le et Ls (avec Le>Ls), mais de mêmes fréquences d'échantillonnage, - la figure 4b représente à titre d'exemple un cas pratique de la figure 4 en illustrant la correspondance temporelle entre un codeur G.723.1 et un codeur G.729,FIG. 4 diagrammatically represents the case of two sub-frames respectively of the encoders E and S, of different durations L e and L s (with L e > L s ), but with the same sampling frequencies; FIG. 4b represents by way of example a practical case of FIG. 4 illustrating the temporal correspondence between a G.723.1 coder and a G.729 coder,
- la figure 5 illustre schématiquement le découpage de l'excitation du premier codeur E au rythme du second codeur S, - la figure 6 illustre le cas où l'une des pseudo-sous-trames STE'O est vide, la figure 7 représente schématiquement un traitement d'adaptation prévu pour le cas où les durées de sous-trame des premier E et second S codeurs sont différentes.FIG. 5 diagrammatically illustrates the division of the excitation of the first encoder E with the rhythm of the second encoder S; FIG. 6 illustrates the case where one of the pseudo-subframes STE'O is empty, FIG. 7 schematically represents an adaption processing provided for the case where the subframe durations of the first E and second S encoders are different.
On indique tout d'abord que la présente invention s'inscrit dans la modélisation et le codage des signaux numériques multimédia tels que les signaux audio (parole et/ou sons) par des dictionnaires multi-impulsionnelsr Elle peut être mise en œuvre dans le cadre du codage/décodage multiple en cascade ou en parallèle ou de tout autre système utilisant la modélisation d'un signal par une représentation multi-impulsionnelle et qui, à partir de la connaissance d'un premier jeu d'impulsions appartenant à un premier ensemble, doit déterminer au moins un jeu d'impulsions d'un second ensemble. Par souci de concision, seul le cas d'un passage d'un premier ensemble vers un autre ensemble est décrit mais l'invention s'applique aussi dans le cas de passage vers n (n ≥ 2) ensembles. Par ailleurs, on ne décrit ci-après que le cas d'un "transcodage" entre deux codeurs, mais, bien entendu, le transcodage entre un codeur et un décodeur, s'en déduit sans difficulté majeure.It is firstly indicated that the present invention is part of the modeling and coding of multimedia digital signals such as audio signals (speech and / or sounds) by multi-pulse dictionaries. It can be implemented in the context cascading or parallel coding / multiple decoding or any other system using the modeling of a signal by a multi-pulse representation and which, from the knowledge of a first set of pulses belonging to a first set, must determine at least one set of pulses of a second set. For the sake of brevity, only the case of a passage from one set to another set is described but the invention is also applicable in the case of passage to n (n ≥ 2) sets. Furthermore, only the case of a "transcoding" between two coders is described below, but, of course, the transcoding between an encoder and a decoder can be deduced without major difficulty.
On considère donc le cas de deux modélisations d'un signal par des jeux d'impulsions correspondant à deux systèmes de codage. Sur les figures 1a etWe therefore consider the case of two modelizations of a signal by sets of pulses corresponding to two coding systems. In Figures 1a and
1b, on a représenté un dispositif de transcodage D entre un premier codeur E, utilisant un premier format de codage COD1 , et un second codeur S, utilisant un second format de codage COD2. Le codeur E délivre un flux (ou "train") binaire codé SCE (SOUS la forme d'une succession de trames codées) au dispositif de transcodage D, lequel comporte un module 10 de décodage partiel pour récupérer le nombre Ne de positions d'impulsions utilisées dans le premier format de codage et les positions pe de ces impulsions. Comme on le verra en détail ci-après, le dispositif de transcodage au sens de l'invention procède à une extraction des voisinages de droite ve d et de gauche ve g de chaque position d'impulsion pe et sélectionne, dans l'union de ces voisinages, des positions d'impulsions qui seront reconnues par le second codeur S. Le module 11 du dispositif de transcodage représenté sur les figures 1a et 1b effectue donc ces étapes pour délivrer cette sélection de positions (notée Sj sur ces figures 1a et 1b) au second codeur S. On comprendra en particulier qu'à partir de cette sélection Sj, on constitue un sous-répertoire de taille inférieure à la taille du dictionnaire qu'utilise habituellement le second codeur S, selon un avantage que procure l'invention. En utilisant ce sous-répertoire, le codage qu'effectue le codeur S est bien entendu plus rapide car plus restreint, sans nuire pour autant à la qualité de codage.1b, there is shown a transcoding device D between a first encoder E, using a first encoding format COD1, and a second encoder S, using a second encoding format COD2. The encoder E delivers a coded binary stream (or "train") S C E (as a succession of coded frames) to the transcoding device D, which comprises a partial decoding module 10 for recovering the number N e of pulse positions used in the first coding format and the positions p e of these pulses. As will be seen in detail below, the transcoding device in the sense of the invention proceeds to extract the neighborhoods of the right v e d and left v e g of each pulse position p e and selects, in the union of these neighborhoods, pulse positions that will be recognized by the second encoder S. The module 11 of the transcoding device shown in FIGS. 1a and 1b thus performs these steps to deliver this selection of positions (noted Sj in these FIGS. 1a and 1b) to the second encoder S. It will be understood in particular that from this selection Sj a sub-directory smaller than the size of the dictionary usually used by the second encoder S is formed, according to an advantage provided by the invention. By using this subdirectory, the encoding performed by the encoder S is of course faster because it is more restricted, without affecting the quality of the coding.
Dans l'exemple représenté sur la figure 1a, le dispositif de transcodage D comporte en outre un module 12 de décodage au moins partiel du flux codé SCE que délivre le premier codeur E. Le module 12 fournit alors au second codeur S une version au moins partiellement décodée s'o du signal d'origine So. Le second codeur S délivre ensuite, sur la base de cette version s'o, un flux binaire codé sCs-In the example shown in FIG. 1a, the transcoding device D further comprises a module 12 for at least partial decoding of the coded stream S C E delivered by the first coder E. The module 12 then supplies the second coder S with a version at least partially decoded s'o of the original signal So. The second encoder S then delivers, on the basis of this version s'o, a coded bitstream s C s-
Dans cette configuration, le dispositif de transcodage D effectue donc une adaptation de codage entre le premier codeur E et le second codeur S, en favorisant avantageusement un codage plus rapide (car plus restreint) auprès du second codeur S. Bien entendu, en variante, l'entité référencée S sur les figures 1a et 1b peut être un décodeur et, dans cette variante, le dispositif D au sens de l'invention effectue un transcodage, proprement dit, entre un codeur E et un décodeur S, ce décodage s'effectuant rapidement grâce aux informations fournies par le dispositif D. Le processus étant réversible, on comprendra que, de façon beaucoup plus générale, le dispositif de transcodage D au sens de la présente invention opère entre un premier codeur/décodeur E et un second codeur/décodeur S.In this configuration, the transcoding device D thus performs an encoding adaptation between the first encoder E and the second encoder S, advantageously favoring a faster (because more restricted) coding with the second encoder S. Of course, alternatively, the entity referenced S in FIGS. 1a and 1b may be a decoder and, in this variant, the device D within the meaning of the invention performs a transcoding, properly speaking, between an encoder E and a decoder S, this decoding performing quickly thanks to the information provided by the device D. The process being reversible, it will be understood that, in a much more general manner, the transcoding device D within the meaning of the present invention operates between a first encoder / decoder E and a second encoder / decoder S.
On indique que l'agencement du codeur E, du transcodeur D et du codeur S peut respecter une configuration "en cascade", comme représentée sur la figure 1a. Dans la variante représentée sur la figure 1b, cet agencement peut respecter une configuration "en parallèle". Dans ce cas, les deux codeurs E et S reçoivent le signal original s0 et les deux codeurs E et S délivrent respectivement les flux codés SCE et sCs- Bien entendu, le second codeur S n'a plus à recevoir ici la version s'0 de la figure 1a et le module de décodage au moins partiel 12 du dispositif de transcodage D n'est plus nécessaire. On indique en outre que, si le codeur E peut fournir une sortie compatible avec l'entrée du module 1 (tant par rapport à son nombre d'impulsions- que par rapport à ses positions d'impulsions), le module 10 peut simplement être omis ou "court-circuité".It is pointed out that the arrangement of the encoder E, the transcoder D and the encoder S can respect a "cascade" configuration, as shown in FIG. 1a. In the variant shown in FIG. 1b, this arrangement can comply with a configuration "in parallel". In this case, the two encoders E and S receive the original signal s 0 and the two encoders E and S respectively deliver the codestreams S C E and s C s- Of course, the second encoder S no longer has to receive here the version s' 0 of Figure 1a and the at least partial decoding module 12 of the transcoder device D is no longer necessary. It is furthermore indicated that, if the encoder E can provide an output compatible with the input of the module 1 (both with respect to its number of pulses and with respect to its pulse positions), the module 10 can simply be omitted or "short-circuited".
On indique en outre que le dispositif de transcodage D peut simplement être équipé d'une mémoire stockant les instructions pour mettre en œuvre les étapes ci-avant et d'un processeur pour traiter ces instructions.It is further indicated that transcoding device D may simply be equipped with a memory storing instructions for implementing the above steps and a processor for processing these instructions.
L'application de l'invention se situe donc comme suit. Le premier codeur E a effectué son opération de codage sur un signal donné so (par exemple le signal original). On dispose donc des positions des impulsions choisies par le premier codeur E. Ce codeur a déterminé ces positions pe par une technique qui lui est propre lors du processus de codage. Le second codeur S doit réaliser lui aussi son codage. Dans le cas du transcodage, le second codeur S ne dispose que du train binaire généré par le premier codeur et l'invention est ici applicable au transcodage dit "intelligent' tel que défini ci-avant. Dans le cas du codage multiple en parallèle, le second codeur S dispose aussi du signal dont dispose le premier codeur et l'invention s'applique ici au "multi-codage intelligent'. En effet, un système qui désire coder un même contenu sous plusieurs formats peut exploiter les informations d'un premier format pour simplifier les opérations de codage des autres formats. L'invention peut aussi s'appliquer au cas particulier du codage multiple en parallèle qu'est le codage multi-mode à décision a posteriori. La présente invention permet de déterminer rapidement les positions ps (ou, notée indistinctement encore ci-après, Sj) des impulsions pour un autre format de codage à partir de positions pe (ou, notée indistinctement encore ci-après, ei) des impulsions d'un premier format. Elle permet de réduire considérablement la complexité de calcul de cette opération pour le second codeur en limitant le nombre de positions possibles. A cet effet, elle utilise les positions choisies par le premier codeur pour définir un ensemble restreint "de positions dans l'ensemble des positions possibles du second codeur, ensemble restreint dans lequel on recherchera le meilleur jeu de positions pour les impulsions. Il en résulte un gain en complexité important tout en limitant la dégradation du signal par rapport à une recherche exhaustive ou focalisée classique.The application of the invention is therefore as follows. The first encoder E has performed its encoding operation on a given signal so (eg the original signal). The positions of the pulses chosen by the first coder E are thus available. This coder has determined these positions p e by a technique which is specific to it during the coding process. The second encoder S must also perform its coding. In the case of transcoding, the second encoder S has only the bitstream generated by the first coder, and the invention is applicable here to "intelligent" transcoding as defined hereinabove.In the case of multiple coding in parallel, the second encoder S also has the signal available to the first encoder and the invention applies here to "intelligent multi-coding". Indeed, a system that wants to encode the same content in several formats can exploit the information of a first format to simplify the coding operations of other formats. The invention can also be applied to the particular case of multiple coding in parallel, which is the multi-mode coding with a posterior decision. The present invention makes it possible to rapidly determine the positions p s (or, noted indiscriminately still below, Sj) pulses for another coding format from positions p e (or, noted indiscriminately still below, ei) pulses of a first format. It makes it possible to considerably reduce the calculation complexity of this operation for the second encoder by limiting the number of possible positions. For this purpose, it uses the positions chosen by the first coder to define a restricted set of positions in the set of possible positions of the second coder, a restricted set in which the best set of positions for the pulses will be sought. a gain in complexity while limiting the degradation of the signal compared to a conventional exhaustive or focused search.
On comprendra ainsi que la présente invention limite le nombre de positions possibles en définissant un ensemble restreint de positions à partir des positions du premier format de codage. Elle se distingue des solutions existantes dans la mesure où celles-ci utilisent uniquement les propriétés du signal à modéliser pour limiter le nombre de positions possibles, en privilégiant et/ou en éliminant des positions.It will thus be understood that the present invention limits the number of possible positions by defining a restricted set of positions from the positions of the first encoding format. It differs from existing solutions insofar as they use only the properties of the signal to be modeled to limit the number of possible positions, by favoring and / or eliminating positions.
Préférentiellement, pour chaque impulsion d'un jeu d'un premier ensemble, on définit deux voisinages (un droit et un gauche) de largeur ajustable plus ou moins contrainte et on en extrait un ensemble de positions possibles, dans lequel sera présélectionnée au moins une combinaison d'impulsions respectant les contraintes du deuxième ensemble.Preferably, for each pulse of a set of a first set, two neighborhoods (a right and a left) of adjustable width more or less constrained are defined and a set of possible positions is extracted from it, in which at least one combination of pulses respecting the constraints of the second set.
Avantageusement, le procédé de transcodage permet d'optimiser le compromis complexité/qualité en adaptant le nombre de positions d'impulsions et/ou les tailles respectives (en terme de combinaisons de positions d'impulsions) des voisinages droit et gauche, pour chaque impulsion. Cet ajustement peut être effectué au début du traitement ou à chaque sous-trame en fonction de la complexité autorisée et/ou du jeu de positions de départ. L'invention permet aussi d'ajuster/limiter le nombre de combinaisons de positions en favorisant avantageusement les voisinages immédiats.Advantageously, the transcoding method makes it possible to optimize the complexity / quality compromise by adapting the number of pulse positions and / or the respective sizes (in terms of combinations of pulse positions) of the right and left neighborhoods for each pulse. . This adjustment can be done at the start of processing or at each subframe depending on the authorized complexity and / or the set of starting positions. The invention also makes it possible to adjust / limit the number of combinations of positions by advantageously favoring immediate neighborhoods.
Comme indiqué ci-avant, la présente invention vise aussi un produit programme d'ordinateur dont l'algorithme est conçu notamment pour l'extraction de- positions voisines qui facilite la composition des combinaisons d'impulsions du deuxième ensemble.As indicated above, the present invention also relates to a computer program product whose algorithm is designed in particular for the extraction of neighboring positions which facilitates the composition of the combinations of pulses of the second set.
Comme indiqué précédemment, l'hétérogénéité des réseaux et des contenus peut mettre en présence des formats de codage très variés. Les codeurs peuvent se distinguer par de nombreuses caractéristiques. En particulier, deux d'entre elles déterminent sensiblement le mode de fonctionnement de l'invention. Il s'agit de la fréquence d'échantillonnage et de la durée d'une sous-trame. Ci-après, les différents cas possibles sont présentés en correspondance de mises en œuvre de l'invention selon ces différents cas.As mentioned above, the heterogeneity of networks and content can bring into play a variety of coding formats. Encoders can be distinguished by many features. In particular, two of them substantially determine the mode of operation of the invention. This is the sampling frequency and the duration of a sub-frame. Hereinafter, the various possible cases are presented in correspondence of implementations of the invention according to these different cases.
La figure 2 synthétise les différents cas. Dans un premier temps, on obtient : - les nombres de positions d'impulsions Ne,Ns, - les fréquences d'échantillonnage Fe,Fs respectives, - et les durées de sous-trame Le,Ls qu'utilisent respectivement les codeurs E et S (étape 21). Ainsi, on comprendra déjà que les étapes d'adaptation et de récupération des nombres de positions d'impulsions Ne, Ns peuvent avantageusement être interverties ou simplement menées simultanément.Figure 2 summarizes the different cases. First, we obtain: - the number of pulse positions N e , N s , - the sampling frequencies F e , F s respectively, - and the subfield times L e , L s that use the encoders E and S respectively (step 21). Thus, it will be already understood that the adaptation and recovery steps of the number of pulse positions N e , N s can advantageously be reversed or simply conducted simultaneously.
Au test 22, on compare les fréquences d'échantillonnage. Si les fréquences sont égales, on compare, au test 23, les durées de sous-trame. Sinon, on adapte les fréquences d'échantillonnage, à l'étape 32, selon un procédé décrit ci-après. A l'issue du test 23, si les durées de sous-trame sont égales, on compare, au test 24, les nombres de positions d'impulsions Ne et Ns utilisés respectivement par le premier et le second format de codage. Sinon, on adapte les durées de sous-trame à l'étape 33 selon un procédé qui sera aussi décrit ci-après. On comprendra que les étapes 22, 23, 32 et 33 définissent ensemble l'étape a) d'adaptation des paramètres de codage citée ci-avant. On indique que les étapes 22 et 32 (adaptation des fréquences d'échantillonnage), d'une part, et les étapes 23 et 33 (adaptation des durées de sous-trame), d'autre part. peuvent être inversées.In test 22, the sampling frequencies are compared. If the frequencies are equal, we compare, in test 23, the subframe times. Otherwise, the sampling frequencies are adapted, in step 32, according to a method described hereinafter. At the end of the test 23, if the subframe durations are equal, we compare, in the test 24, the numbers of pulse positions N e and N s used. respectively by the first and the second coding format. Otherwise, the subframe times are adapted in step 33 by a method which will also be described hereinafter. It will be understood that steps 22, 23, 32 and 33 together define step a) of adaptation of the coding parameters mentioned above. It is indicated that the steps 22 and 32 (adaptation of the sampling frequencies), on the one hand, and the steps 23 and 33 (adaptation of the subframe durations), on the other hand. can be reversed.
On décrit d'abord ci-après le cas où les fréquences d'échantillonnage sont égales et les durées de sous-trames sont égales.First, the case where the sampling frequencies are equal and the subframe durations are equal are described below.
Ce cas est le plus favorable. Cependant, il faut distinguer encore le cas où le premier format utilise plus d'impulsions que le second (Ne ≥ Ns), et le cas contraire (Ne < Ns), selon le résultat du test 24.This case is the most favorable. However, it is necessary to distinguish again the case where the first format uses more pulses than the second one (N e ≥ N s ), and the opposite case (N e <N s ), according to the result of the test 24.
* Cas Ne ≥ Ns de la figure 2* Case N e ≥ N s of Figure 2
Le principe est le suivant. En considérant les deux codeurs E et S, leurs répertoires utilisent respectivement Ne et Ns impulsions à chaque sous-trame.The principle is the following. Considering the two encoders E and S, their repertoires respectively use N e and N s pulses to each subframe.
Le codeur E a calculé les positions de ses Ne impulsions sur la sous-trame se. On note ci-après βj (ou, indistinctement, pe) ces positions. L'ensemble restreint Ps des positions privilégiées pour les impulsions du répertoire du codeur S est alors constitué de Ne positions e,et de leurs voisinages.The encoder E calculated the positions of its N e pulses on the sub-frame s e . We note below βj (or, indistinctly, p e ) these positions. The restricted set P s of the preferred positions for the pulses of the repertoire of the encoder S then consists of N e positions e, and their neighborhoods.
où Vd et vg' ≥ 0 sont les tailles des voisinages droit et gauche de l'impulsion i. Les valeurs de vd et v^, , choisies à l'étape 27 de la figure 2, sont plus ou moins grandes selon la complexité et la qualité désirées. Ces tailles peuvent être fixées arbitrairement au début du traitement, ou être choisies à chaque sous-trame se. A l'étape 29 de la figure 2, l'ensemble Ps contient alors chaque position βj ainsi que ses vd voisins de droite et ses vg' voisins de gauche. where V d and v g '≥ 0 are the sizes of the right and left neighborhoods of the pulse i. The values of v d and v i, chosen in step 27 of FIG. 2, are larger or smaller depending on the desired complexity and quality. These sizes can be set arbitrarily at the start of processing, or be chosen at each sub-frame s e . In step 29 of FIG. 2, the set P s then contains each position βj as well as its v d neighbors on the right and its v g 'neighbors on the left.
Pour chacune des Ns impulsions du répertoire du codeur S, il faut ensuite définir les positions que cette impulsion a le droit de prendre parmi celles proposées par Ps.For each of the N s pulses of the encoder directory S, it is then necessary to define the positions that this pulse has the right to take among those proposed by P s .
Pour cela, on introduira des règles présidant à la construction du répertoire de S. On suppose que les Ns impulsions de S appartiennent à des sous- ensembles pré-définis de positions, un nombre donné d'impulsions partageant un même sous-ensemble de positions autorisées. Par exemple, les 10 impulsions du mode 12,2 bit/s du codeur 3GPP NB-AMR sont réparties 2 par 2 dans 5 sous-ensembles différents, comme le montre la table 3 donnée ci- avant. On note N's le nombre de sous-ensembles de positions différents (N's≤ Ns dans cet exemple puisque N's=5), et 7j (pour j=1 à N's) les sous-ensembles de positions définissant le répertoire de S.For this, we will introduce rules governing the construction of the repertoire of S. It is assumed that the N s pulses of S belong to pre-defined subsets of positions, a given number of pulses sharing the same subset of allowed positions. For example, the 12.2 bit / sec pulses of the 3GPP NB-AMR encoder are distributed 2 by 2 in 5 different subsets, as shown in Table 3 given above. We denote N ' s the number of subsets of different positions (N' s ≤ N s in this example since N ' s = 5), and 7j (for j = 1 to N' s ) the subsets of positions defining the repertoire of S.
A partir de l'ensemble Ps, les N's sous-ensembles Sj issus de l'intersection de Ps avec l'un des ensembles 7j sont constitués, à l'étape 30 de la figure 2, selon la relation : Sj≈ PS n 7}From the set P s , the N ' s subsets Sj resulting from the intersection of P s with one of the sets 7j are constituted, in step 30 of FIG. 2, according to the relation: Sj ≈ P S n 7}
Les voisinages vd et v^ doivent être d'une taille suffisante pour qu'aucune intersection ne soit vide. On doit permettre ainsi un réajustement des tailles de voisinage, si nécessaire, en fonction du jeu d'impulsions de départ. C'est l'objet du test 34 de la figure 2, avec une augmentation de la taille des voisinages (étape 35) et retour vers la définition de l'union Ps des groupes formés à l'étape c) (étape 29 sur la figure 2) si l'une des intersections est vide. Au contraire, si aucune intersection Sj n'est vide, c'est le sous-répertoire constitué par ces intersections Sj qui est envoyé au codeur S (étape de fin 31).The neighborhoods v d and v ^ must be large enough so that no intersection is empty. In this way, neighborhood sizes need to be readjusted, if necessary, according to the starting set of pulses. This is the object of the test 34 of FIG. 2, with an increase in the size of the neighborhoods (step 35) and return to the definition of the union P s of the groups formed in step c) (step 29 on Figure 2) if one of the intersections is empty. On the contrary, if no intersection Sj is empty, it is the subdirectory constituted by these intersections Sj which is sent to the encoder S (end step 31).
Avantageusement, l'invention exploite la structure des répertoires. Par exemple, si le répertoire du codeur S est de type ACELP, ce sont les intersections des positions des pistes avec Ps qui sont calculées. Si le répertoire du codeur E est aussi de type ACELP, la procédure d'extraction des voisinages exploite aussi la structure en pistes et les deux étapes d'extraction des voisinages et composition des sous-ensembles restreints de positions, sont judicieusement associées. En particulier, il est intéressant que l'algorithme d'extraction des voisinages prenne en compte la composition des combinaisons d'impulsions selon les contraintes du deuxième ensemble. Comme on le verra plus loin, des algorithmes d'extraction de voisinages sont élaborés pour faciliter la composition des combinaisons d'impulsions du deuxième ensemble. Un exemple d'un tel algorithme est illustré par l'un des modes de réalisation donnés plus loin (ACELP à 2 impulsions vers ACELP à 4 impulsions).Advantageously, the invention exploits the structure of the directories. For example, if the directory of the encoder S is of type ACELP, it is the intersections of the positions of the tracks with P s that are calculated. If the directory of the encoder E is also of the ACELP type, the procedure for extracting neighborhoods also exploits the structure in tracks and the two steps of extraction of the neighborhoods and composition of the restricted subsets of positions, are judiciously associated. In particular, it is interesting that the neighborhood extraction algorithm takes into account the composition of the combinations of pulses according to the constraints of the second set. As will be seen later, neighborhood extraction algorithms are elaborated to facilitate the composition of the combinations of pulses of the second set. An example of such an algorithm is illustrated by one of the embodiments given below (ACELP 2 pulses to ACELP 4 pulses).
Le nombre de combinaisons de positions possibles est ainsi restreint et la taille du sous-ensemble du répertoire du codeur S est généralement très inférieure à celle du répertoire original, ce qui réduit grandement la complexité de l'avant-demière étape du transcodage. On précise ici que le nombre de combinaisons de positions d'impulsions définit la taille du sous-ensemble précité. On précise en outre que c'est le nombre de positions d'impulsions que l'on diminue au sens de l'invention, ce qui entraîne une diminution du nombre de combinaisons de positions d'impulsions et permet alors d'obtenir un sous- répertoire de taille restreinte.The number of combinations of possible positions is thus limited and the size of the subset of the encoder directory S is generally much smaller than that of the original repertoire, which greatly reduces the complexity of the penultimate step of the transcoding. It is specified here that the number of combinations of pulse positions defines the size of the aforementioned subset. It is furthermore specified that it is the number of pulse positions that is reduced in the sense of the invention, which leads to a reduction in the number of combinations of pulse positions and thus makes it possible to obtain a sub-number of pulse positions. restricted directory.
L'étape référencée 46 sur la figure 3 consiste alors à lancer la recherche du meilleur jeu de positions pour les Ns impulsions dans ce sous-répertoire de taille restreinte. Le critère de sélection est similaire à celui du processus de codage. Pour réduire davantage la complexité, on peut accélérer l'exploration de ce sous-répertoire en utilisant des techniques de focalisation connues décrites ci-avant.The step referenced 46 in FIG. 3 then consists in launching the search for the best set of positions for the N s pulses in this sub-directory of restricted size. The selection criterion is similar to that of the process of coding. To further reduce complexity, the exploration of this subdirectory can be accelerated using known focusing techniques described above.
La figure 3 résume les étapes de l'invention pour le cas où le codeur E utilise au moins autant d'impulsions que le codeur S. On indique toutefois que, comme on l'a déjà vu en référence à la figure 2, si le nombre de positions Ns au second format (le format de S) est supérieur au nombre de positions Nβ au premier format (le format de E), le traitement prévu ne se distingue que par quelques variantes avantageuses qui seront décrites plus loin.FIG. 3 summarizes the steps of the invention for the case where the encoder E uses at least as many pulses as the encoder S. It is however indicated that, as already seen with reference to FIG. number of positions N s in the second format (the format of S) is greater than the number of positions N β in the first format (the format of E), the treatment provided is distinguished by only a few advantageous variants which will be described later.
En bref, ces étapes de la figures 3 se résument comme suit. Après une étape a) éventuelle d'adaptation des paramètres de codage (si nécessaire et représentée à cet effet par des traits pointillés sur la figure 3 dans le bloc 41) : - récupération des positions e\ des impulsions du codeur E, et préférentiellement d'un nombre Ne de positions (étape 42 correspondant à l'étape b) précitée), _ extraction des voisinages et formation des groupes de voisinages selon la relation :In short, these steps of FIG. 3 are summarized as follows. After a possible step a) of adaptation of the coding parameters (if necessary and represented for this purpose by dotted lines in FIG. 3 in block 41): - recovery of the positions e \ of the encoder pulses E, and preferably of a number N e of positions (step 42 corresponding to step b) above), _ extraction of neighborhoods and formation of neighborhood groups according to the relation:
(étape 43 correspondant à l'étape c) précitée)(step 43 corresponding to step c) mentioned above)
- composition des sous-ensembles restreints de positions {Sj= PsHTj} formant la sélection de l'étape d) précitée et correspondant à l'étape 44 représentée sur la figure 3, et - et transmission de cette sélection au codeur S (étape 45 correspondant à l'étape e) précitée).- composition of the restricted subsets of positions {S j = P s HTj} forming the selection of step d) above and corresponding to step 44 shown in Figure 3, and - and transmission of this selection to the encoder S (step 45 corresponding to step e) above).
On indique qu'après cette étape 45, le codeur S choisit ensuite un jeu de positions dans le répertoire restreint obtenu à l'étape 44. Le procédé se poursuit donc par une étape 46 de recherche dans ce sous- répertoire reçu par le codeur S d'un jeu de positions optimal (opt(Sj)) comportant le second nombre Ns de positions, comme indiqué ci-avant. Cette étape 46 de recherche du jeu de positions optimal est mise en œuvre préférentiellement par une recherche focalisée pour accélérer l'exploration du sous-répertoire. Le traitement' se poursuit naturellement par le codage qu'effectue ensuite le second codeur S.It is indicated that after this step 45, the coder S then chooses a set of positions in the restricted directory obtained in step 44. The method therefore continues with a step 46 of searching in this subdirectory received by the encoder S of an optimal set of positions (opt (Sj)) having the second number N s of positions, as indicated above. This step 46 of searching for the optimal set of positions is implemented preferentially by a focused search to accelerate the exploration of the sub-directory. The processing continues naturally by the coding then carried out by the second coder S.
On décrit maintenant les traitements prévus pour le cas où le nombre d'impulsions Ne utilisées par le premier format de codage est inférieur au nombre d'impulsions Ns utilisées par le second format de codage.Procedures are now described for the case where the number of pulses N e used by the first coding format is smaller than the number of pulses N s used by the second coding format.
* cas Ne < Ns de la figure 2 Si le format de S utilise plus d'impulsions que le format de E, le traitement est similaire au traitement exposé ci-dessus. Cependant, il peut arriver que des impulsions du format de S n'aient pas de positions dans le répertoire restreint. Dans ce cas, dans une première réalisation, on autorise toutes les positions possibles pour ces impulsions. Dans une seconde réalisation, préférée, on augmente simplement la taille des voisinages à V'd et Vg, à l'étape 28 de la figure 2.* case N e <N s of figure 2 If the S format uses more pulses than the E format, the treatment is similar to the treatment described above. However, it may happen that S-format pulses do not have positions in the restricted directory. In this case, in a first embodiment, all possible positions for these pulses are allowed. In a second, preferred embodiment, the size of the neighborhoods at V'd and V g is simply increased in step 28 of FIG.
* cas Ne<Ns<2Ne de la figure 2* case N e <N s <2N e of figure 2
Un cas particulier doit être souligné ici. Si Ne est proche de Ns, typiquement Ne<Ns <2Ne, alors une manière préférée de déterminer les positions est envisageable, bien que le traitement précédent reste encore tout à fait applicable. On peut encore gagner en complexité en fixant directement les positions des impulsions de S à partir de celles de E. En effet, les Ne premières impulsions de S sont placées sur les positions de celles de E. Les Ns-Ne impulsions restantes sont placées le plus près possible (au voisinage immédiat) des Ne premières impulsions. Ainsi, on teste à l'étape 25 de la figure 2 si les nombres Nβ et Ns sont proches (avec Ne>Ns) et, dans l'affirmative, on procède comme décrit ci-avant pour le choix des positions d'impulsions à l'étape 26.A special case must be emphasized here. If N e is close to N s , typically N e <N s < 2N e , then a preferred way of determining the positions is conceivable, although the previous treatment is still quite applicable. Complexity can still win by directly fixing the positions of S pulses from those of E. Indeed, the first S N e pulses are placed on the positions of those of E. N s N e pulses remaining are placed as close as possible (in the immediate vicinity) of the N th first pulses. So, we test at step 25 of the FIG. 2 if the numbers N β and N s are close (with N e > N s ) and, if so, proceed as described above for the choice of the pulse positions in step 26.
Bien entendu, dans les deux cas Ne<Ns et Ne<Ns<2Ne, si, malgré ces précautions, l'une des intersections Sj est vide, on augmente simplement la taille des voisinages V Λ ., à' l'étape 35, comme décrit dans e cas où- Ne > NS.Of course, in both cases N e <N s and N e <N s <2N e , if, despite these precautions, one of the intersections S j is empty, the size of the neighborhoods V Λ. step 35, as described in the case where Ne> N S.
Finalement, dans tous les cas, si aucune intersection Sj n'est vide, on transmet le sous-répertoire formé par les Sj au second codeur S (étape 31).Finally, in any case, if no intersection S j is empty, the subdirectory formed by the Sj is transmitted to the second encoder S (step 31).
On décrit maintenant les traitements prévus à l'étape d'adaptation a) lorsque les paramètres de codage des premier et second formats ne sont pas les mêmes, en particulier en terme de fréquences d'échantillonnage et de durées de sous-trame.The processing operations envisaged in the adaptation step a) are now described when the coding parameters of the first and second formats are not the same, in particular in terms of sampling frequencies and subframe durations.
On distingue alors les cas ci-après.We then distinguish the following cases.
* Durées de sous-trame égales mais fréquences d'échantillonnages différentes* Equal subframe durations but different sampling frequencies
Cette situation correspond au cas "n" pour le test 22 et "o" pour le test 23 de la figure 2. L'adaptation a) porte alors sur l'étape 32 de la figure 2.This situation corresponds to the case "n" for the test 22 and "o" for the test 23 of FIG. 2. The adaptation a) then relates to the step 32 of FIG.
On ne peut plus appliquer directement ici le traitement précédent car les deux formats n'ont pas le même découpage du temps. En effet, du fait des fréquences d'échantillonnage différentes, les deux trames ne comportent pas le même nombre d'échantillons sur une même durée.We can not apply directly here the previous treatment because the two formats do not have the same division of time. Indeed, because of the different sampling rates, the two frames do not have the same number of samples over the same duration.
Plutôt que de déterminer les positions des impulsions du format du codeur S sans tenir compte de celles du format du codeur E, comme le ferait un tandem, on propose ici deux traitements selon deux modes de réalisation distincts. Ces traitements sont de faible complexité, en établissant une correspondance entre les positions des deux formats qui permet alors de se ramener ensuite au traitement décrit ci-avant (comme si les fréquences d'échantillonnage étaient égales).Rather than determining the positions of the pulses of the encoder S format without taking into account those of the format of the encoder E, as would a tandem, here two treatments are proposed according to two distinct embodiments. These These processes are of low complexity, by matching the positions of the two formats, which can then be reduced to the treatment described above (as if the sampling frequencies were equal).
Le traitement du premier mode de réalisation utilise une quantification directe de l'échelle temporelle~du premier format par celle du deuxième format. Cette opération de quantification qui peut être tabulée ou calculée par une formule, permet ainsi de trouver, pour chaque position d'une sous-trame du premier format, son équivalent dans une sous-trame du second format et réciproquement.The processing of the first embodiment uses a direct quantization of the time scale ~ of the first format by that of the second format. This quantization operation, which can be tabulated or calculated by a formula, thus makes it possible to find, for each position of a subframe of the first format, its equivalent in a subframe of the second format and vice versa.
Par exemple, la correspondance entre les positions pβ et ps dans les sous- trames des deux formats peut être définie par la formule suivante :For example, the correspondence between the positions p β and p s in the subframes of the two formats can be defined by the following formula:
Ps = *ΛA0,5 , O≤ pe < Le et O≤ ps < Lε Ps = * ΛA0.5, O≤ p e <L e and O≤ p s <L ε
où Fe et Fs sont les fréquences d'échantillonnages respectives de E et S, et Le et Ls leurs longueurs de sous-trame, [ J dénotant la partie entière.where F e and F s are the respective sampling frequencies of E and S, and T and L s their lengths subframe, [D denoting the integer part.
Selon les caractéristiques de l'unité de traitement, cette correspondance pourra utiliser la formule ci-avant ou avantageusement être tabulée pour les Le valeurs. On peut aussi choisir une solution intermédiaire en ne tabulant queDepending on the characteristics of the processing unit, this correspondence may use the formula above or advantageously be tabulated for L e values. We can also choose an intermediate solution by tabulating only
les le premières valeurs (le = — , d étant le plus grand commun diviseur de Le d et Ls), les positions restantes se déduisant alors aisément.l e the first values (l = e -, where d is the greatest common divisor of e L d and L s), the remaining positions being deduced then easily.
Il faut noter qu'on peut aussi faire correspondre plusieurs positions de la sous- trame de S à une position d'une sous-trame de E. Par exemple, en retenant F les positions immédiatement inférieure et immédiatement supérieure à ~* pe . Fe A partir de l'ensemble des positions ps correspondant aux positions pβ, on applique le traitement général décrit plus haut (extraction des voisinages, composition des combinaisons d'impulsions, sélection de la combinaison optimale).It should be noted that one can also map several positions of the subframe of S to a position of a subframe of E. For example, by holding F the positions immediately below and immediately greater than ~ * p e . F e From the set of positions p s corresponding to the positions p β , the general treatment described above (neighborhood extraction, composition of the pulse combinations, selection of the optimal combination) is applied.
On retrouvera ce cas de durées- de sous-trame égales mais de-fréquences d'échantillonnage différentes sur les tables 5a à 5d ci-après, en référence à un exemple de réalisation où le codeur E est de type 3GPP NB-AMR et le codeur S est de type WB-AMR. Le codeur NB-AMR a une sous-trame de 40 échantillons pour une fréquence d'échantillonnage de 8 kHz. Le codeur WB- AMR utilise, quant à lui, 64 échantillons par sous-trame à 12,8 kHz. Dans les deux cas, la sous-trame a une durée de 5 ms. La table 5a donne la correspondance des positions dans une sous-trame du NB-AMR vers une sous-trame du WB-AMR, et la table 5b la correspondance inverse. Les tables de correspondance restreinte sont données dans les tables 5c et 5d.This case of equal subframe durations but of different sampling frequencies will be found on the tables 5a to 5d hereinafter, with reference to an exemplary embodiment where the encoder E is 3GPP NB-AMR type and the encoder S is of type WB-AMR. The NB-AMR encoder has a sub-frame of 40 samples for a sampling frequency of 8 kHz. The WB-AMR encoder uses 64 samples per subframe at 12.8 kHz. In both cases, the subframe has a duration of 5 ms. Table 5a gives the correspondence of the positions in a NB-AMR subframe to a WB-AMR subframe, and Table 5b the reverse mapping. The restricted correspondence tables are given in tables 5c and 5d.
NB-AMa 10 11 121 131 14 15 16 17 18 19 20 211 22 23 2425 2627 28 29 30 311 32 331 34 35 36 ,37 3839NB-AMa 10 11 121 131 14 15 16 17 18 19 20 211 22 23 2425 2627 28 29 30 311 32 331 34 35 36, 37 3839
WB-AMR 0235U8 10 13141618192122242627293032343537384042 143 454648505153545658596162 Table 5a: Table de correspondance temporelle du NB-AMR vers WB-AMR B-AMH 0 1 2 3 4 6 7 9 10 11 12 13 1415 16 171819 2021222324252627 282930 31 NB-AMR 10 11 11 12 13 13 14 14 15 1 16 17 18 18 19 19 WB-AMW 32 33i 34! 35! 36 37 38 39 40 41 42431 44 45 464748 49 ,50 51 52 ,53 54 ,55 56 57 58 5 60 61 62 63 NB-AMR 202121222323242425262627282829293031313233333434353636373838 39 39 Table 5b: Table de correspondance temporelle du WB-AMR vers NB-AMRWB-AMR 0 23 5 U 8 10 13141618192122242627293032343537384042 143 454648505153545658596162 Table 5a: Time correspondence table from NB-AMR to WB-AMR B-AMH 0 1 2 3 4 6 7 9 10 11 12 13 1415 16 171819 2021222324252627 282930 31 NB- AMR 10 11 11 12 13 13 14 14 15 1 16 17 18 18 19 19 WB-AMW 32 33i 34! 35! 36 37 38 39 40 41 42431 44 45 464748 49, 50 51 52, 53 54, 55 56 57 58 5 60 61 62 63 NB-AMR 202121222323242425262627282829293031313233333434353636373838 39 39 Table 5b: Time correspondence table from WB-AMR to NB-AMR
Table 5c: Table de correspondance temporelle restreinte du NB-AMR vers WB-AMR Table 5d: Table de correspondance temporelle restreinte du WB-AMR vers NB-AMR Table 5c: Restricted Temporal Matching Table from NB-AMR to WB-AMR Table 5d: Restricted time correspondence table from WB-AMR to NB-AMR
En bref, en se réfèrent à la figure 2a, on prévoit les étapes ci-après : ai) de quantification directe d'échelle temporelle de la première fréquence vers la seconde fréquence (étape 51 de la figure 2a), a2) et de détermination, en fonction de cette quantification, de chaque position d'impulsion dans une sous-trame au second format de codage caractérisé par la seconde fréquence d'échantillonnage, à partir d'une position d'impulsion dans une sous-trame au premier format de codage caractérisé par la première fréquence d'échantillonnage (étape 52 de la figure 2a).In brief, with reference to FIG. 2a, the following steps are provided: a) direct quantization of the time scale from the first frequency to the second frequency (step 51 of FIG. 2a), a2) and determination according to this quantization, each pulse position in a subframe with the second encoding format characterized by the second sampling frequency, from a pulse position in a subframe to the first format of coding characterized by the first sampling frequency (step 52 of Figure 2a).
En termes généraux, l'étape ai) de quantification s'effectue par calcul et/ou fabulation à partir d'une fonction qui, à une position pe d'impulsion dans une sous-trame au premier format, fait correspondre une position ps d'impulsion dans une sous-trame au second format, et cette fonction se présente sensiblement comme une combinaison linéaire faisant intervenir un coefficient multiplicatif correspondant au rapport de la seconde fréquence d'échantillonnage sur la première fréquence d'échantillonnage.In general terms, the quantization step a1) is carried out by calculation and / or fobulation from a function which, at a pulse position p e in a first-format subframe, matches a position p s pulse in a subframe with the second format, and this function is substantially a linear combination involving a multiplier coefficient corresponding to the ratio of the second sampling frequency to the first sampling frequency.
Par ailleurs, pour passer inversement d'une position d'impulsion dans une sous-trame au second format ps à une position d'impulsion dans une sous- trame au premier format pe, on applique bien entendu une fonction inverse de cette combinaison linéaire appliquée à une position d'impulsion dans une sous-trame au second format ps.Furthermore, to switch inversely from a pulse position in a subframe to the second format p s to a pulse position in a subframe of the first format p e , of course an inverse function of this combination is applied. linear applied to a pulse position in a subframe in the second format p s .
On comprendra que le procédé de transcodage est complètement réversible et s'adapte aussi bien dans un sens de transcodage (E->S) que dans l'autre (S->E). Dans un second mode de réalisation de l'adaptation des fréquences d'échantillonnage, on utilise un principe classique de changement de fréquence d'échantillonnage. On part de la sous-trame contenant les impulsions trouvées par le premier format. On sur-échantillonne à la fréquence égale au plus petit commun multiple des deux fréquences d'échantillonnage Fθ et Fs. Puis, après filtrage passe-bas, on sous-échantillonne pour revenir à la fréquence d'échantillonnage du second format, c'est-à-dire Fs. On obtient une sous-trame à la fréquence Fs contenant les impulsions de E filtrées. Là encore, on peut tabuler le résultat des opérations de sur-échantillonnage/filtrage passe-bas/sous-échantillonnage pour chaque position possible d'une sous- trame de E. Ce traitement peut aussi s'effectuer par calcul "en ligne". Comme dans le premier mode de réalisation de l'adaptation des fréquences d'échantillonnage, on pourra associer une seule ou plusieurs positions de S à une position de E, comme expliqué ci-après, et appliquer le traitement général au sens de l'invention décrit ci-avant.It will be understood that the transcoding method is completely reversible and adapts both in a transcoding direction (E-> S) and in the other (S-> E). In a second embodiment of the adaptation of the sampling frequencies, a conventional principle of change of sampling frequency is used. We start from the sub-frame containing the pulses found by the first format. We oversample at the frequency equal to the least common multiple of the two sampling frequencies F θ and F s . Then, after low-pass filtering, we sub-sample to return to the sampling frequency of the second format, that is to say F s . We obtain a subframe at the frequency F s containing the pulses of filtered E. Again, the result of the over-sampling / low-pass filtering / subsampling operations can be tabulated for each possible position of a sub-frame of E. This processing can also be performed by "on-line" calculation. As in the first embodiment of the adaptation of the sampling frequencies, it will be possible to associate a single or several positions of S with a position of E, as explained hereinafter, and to apply the general treatment in the sense of the invention described above.
Comme illustré dans la variante représentée sur la figure 2b, on prévoit les étapes ci-après : a'1) sur-échantillonner une sous-trame au premier format de codage caractérisé par la première fréquence d'échantillonnage, à une fréquence Fpcm égale au plus petit commun multiple des première et seconde fréquences d'échantillonnage (étape 53 de la figure 2b), et a'2) appliquer à la sous-trame sur-échantillonnée un filtrage passe-bas (étapeAs illustrated in the variant represented in FIG. 2b, the following steps are provided: a'1) oversampling a sub-frame with the first coding format characterized by the first sampling frequency, at a frequency F pcm equal to to the least common multiple of the first and second sampling frequencies (step 53 of FIG. 2b), and a'2) applying to the oversampled sub-frame a low-pass filtering (step
54 de la figure 2b), suivi d'un sous-échantillonnage, pour atteindre une fréquence d'échantillonnage correspondant à la seconde fréquence d'échantillonnage (étape 55 de la figure 2b).54 of FIG. 2b), followed by a subsampling, to reach a sampling frequency corresponding to the second sampling frequency (step 55 of FIG. 2b).
Le procédé se poursuit par l'obtention, préférentiellement par seuillage, d'un nombre de positions éventuellement variable, ces positions étant adaptées des impulsions de E (étape 56) comme dans le premier mode de réalisation ci- avant. * Fréquences d'échantillonnages égales mais durées de sous-trame différentesThe method is continued by obtaining, preferably by thresholding, an optionally variable number of positions, these positions being adapted to the pulses of E (step 56) as in the first embodiment above. * Equal sampling frequencies but different subframe durations
On décrit maintenant le traitement prévu dans le cas où les fréquences d'échantillonnage sont égales mais les durées de sous-trame sont différentes. Cette situation correspond au cas "n" pour le test 23 mais "o" pour le test 22 de la figure 2. L'adaptation a) porte alors sur l'étape 33 de la figure 2.We now describe the treatment provided in the case where the sampling frequencies are equal but the subframe times are different. This situation corresponds to the case "n" for the test 23 but "o" for the test 22 of FIG. 2. The adaptation a) then relates to the step 33 of FIG.
Comme dans le cas ci-avant, on ne peut pas appliquer directement l'étape d'extraction des voisinages telle quelle. Il faut d'abord rendre compatibles les deux sous-trames. Ici, les sous-trames sont différentes par leurs tailles. Face à cette incompatibilité, plutôt que de calculer les positions des impulsions comme le fait le tandem, une réalisation préférée propose une solution à faible complexité permettant de déterminer un répertoire restreint de combinaisons de positions pour les impulsions du second format à partir des positions des impulsions du premier format. Cependant, la sous-trame de S et celle de E n'étant pas de même taille, il n'est pas possible d'établir une correspondance temporelle directe entre une sous-trame de S et une sous-trame de E. Comme le montre la figure 4 (dans laquelle les sous trames de E et S sont désignées respectivement par STE et STs), les frontières des sous-trames des deux formats ne sont pas alignées et au cours du temps ces sous-trames se décalent l'une par rapport à l'autre.As in the case above, it is not possible to directly apply the neighborhood extraction step as it is. First you have to make the two sub-frames compatible. Here, the subframes are different in size. Faced with this incompatibility, rather than calculating the positions of the pulses as the tandem does, a preferred embodiment proposes a low complexity solution for determining a restricted repertoire of position combinations for the second format pulses from the positions of the pulses. of the first format. However, since the subframe of S and that of E are not of the same size, it is not possible to establish a direct temporal correspondence between a subframe of S and a subframe of E. As the FIG. 4 shows (in which the E and S subframes are respectively designated ST E and STs), the subframes boundaries of the two formats are not aligned and over time these subframes are shifted by one compared to the other.
Dans un mode de réalisation préféré, on propose de découper l'excitation de E en pseudo-sous-trames de la taille de celles de S et au rythme de S. Sur la figure 5, on a représenté les pseudo sous-trames notées STE'. En pratique, cela revient aussi à effectuer une correspondance temporelle entre les positions dans les deux formats en prenant en compte la différence de taille des sous-trames pour aligner les positions relativement à une origine commune à E et S. La détermination de cette origine commune est décrite en détail plus loin. Une position p°β (respectivement p°s) du premier format (respectivement du second format) par rapport à cette origine coïncide avec la position pβ (respectivement ps) de la sous-trame /' θ (respectivement js) de E (respectivement S) relativement à cette sous-trame. On a ainsi : et p0s-Ps+)sLs avec O≤ pθ < Le et O≤ ps < Ls In a preferred embodiment, it is proposed to split the excitation of E into pseudo-subframes the size of those of S and at the rate of S. In FIG. 5, the pseudo subframes denoted by STE are represented. . In practice, this also means performing a temporal correspondence between the positions in the two formats by taking into account the difference in size of the subframes to align the positions relative to an origin common to E and S. The determination of this common origin is described in detail below. A position p ° β (respectively p ° s ) of the first format (respectively the second format) with respect to this origin coincides with the position p β (respectively p s ) of the subframe / ' θ (respectively j s ) of E (respectively S) relative to this subframe. We thus have: and p 0 s-Ps + ) sL s with O≤ p θ <L e and O≤ p s <L s
A une position pe de la sous-trame iβ du format de E correspond-la position ps de la sous-trame js du format de S, ps et js étant respectivement le reste et le quotient de la division euclidienne par Ls de la position p°e de pe par rapport à une origine O commune à E et S : fe e "^ le^lee>)/ Js = et ps ≡ {pe + ieLe)[Ls] avec O≤ pe < Le et O≤ ps < Ls |_ J dénotant la partie entière, = dénotant le modulo, l'indice d'une sous-trame de E (respectivement S) étant donné par rapport l'origine commune O.At a position p e of the subframe i β of the format of E corresponds to the position p s of the sub-frame j s of the format of S, where p s and j s are respectively the remainder and the quotient of the Euclidean division. L s the p ° e p e position relative to a common origin O to e and s fe e "^ l e ^ l ee>) / Js = and p s ≡ {p e + i e L e ) [L s ] with O≤ p e <L e and O≤ p s <L s | _ J denoting the integer part, = denoting the modulo, the index of a subframe of E (respectively S) being given in relation to the common origin O.
Ainsi, les positions pe situées dans une sous-trame js sont utilisées pour déterminer, selon le traitement général décrit ci-avant, un ensemble restreint de positions pour des impulsions de S dans la sous-trame js. Toutefois, lorsque Le > Ls, il peut arriver qu'une sous-trame de S ne contienne aucune impulsion. Dans l'exemple de la figure 6, les impulsions de la sous-trame STE0 sont représentées par des traits verticaux. Le format de E peut très bien concentrer les impulsions de STE0 en fin de sous-trame si bien que la pseudo sous-trame STE'O ne contient alors aucune impulsion. Toutes les impulsions placées par E se retrouvent dans STE'1 lors du découpage. Dans ce cas, une recherche focalisée classique est préférentiellement appliquée à la pseudo sous-trame STE'O.Thus, the positions p e located in a sub-frame j s are used to determine, according to the general processing described above, a restricted set of positions for pulses of S in the sub-frame j s . However, when L e > L s , it may happen that a subframe of S contains no pulse. In the example of FIG. 6, the pulses of the sub-frame STE0 are represented by vertical lines. The format of E can very well concentrate the pulses of STE0 at the end of the sub-frame so that the pseudo subframe STE'O does not contain any impulses. All the pulses placed by E are found in STE'1 when cutting. In this case, a conventional focused search is preferentially applied to the pseudo STE'O subframe.
On décrit maintenant des réalisations préférées pour la détermination d'une origine temporelle O commune aux deux formats. Cette référence commune constitue la position (numéro 0) à partir de laquelle sont numérotées les positions des impulsions dans les sous-trames suivantes. Cette position 0 peut être définie de différentes manières, dépendant du système exploitant le procédé de transcodage au sens de la présente invention. Par exemple, pour un module de transcodage inclus dans un équipement d'un système de transmission, il sera naturel de prendre pour origine la première position de la première trame reçue après la mise en route de l'équipement. -Preferred embodiments are now described for determining a time origin O common to both formats. This common reference is the position (number 0) from which the positions of the pulses in the following subframes are numbered. This position 0 can be defined in different ways, depending on the system using the transcoding method within the meaning of the present invention. For example, for a transcoding module included in an equipment of a transmission system, it will be natural to take as origin the first position of the first frame received after the start of the equipment. -
Toutefois, l'inconvénient de ce choix est que les positions prennent des valeurs de plus en grandes et il peut devenir nécessaire de les limiter. Pour cela, il suffit de remettre à jour la position de l'origine commune à chaque fois que cela est possible. Ainsi, si les longueurs respectives Le et Ls des sous- trames de E et S, sont constantes au cours du temps, la position de l'origine commune est remise à jour à chaque fois que les frontières des sous-trames de E et S sont alignées. Cela arrive périodiquement, la période (en échantillons) étant égale au plus petit commun multiple de Le et Ls.However, the disadvantage of this choice is that the positions take larger and larger values and it may become necessary to limit them. For this, it is sufficient to update the position of the common origin whenever possible. Thus, if the respective lengths L e and L s of the subframes of E and S are constant over time, the position of the common origin is updated each time the boundaries of the subframes of E and S are aligned. This happens periodically, the period (in samples) being equal to the least common multiple of L e and L s .
On peut aussi envisager le cas où Le et/ou Ls ne sont pas constantes dans le temps. Il n'est plus possible de trouver un multiple commun aux deux longueurs de sous-trame, notées à présent Le(n) et Ls(n), n représentant le numéro de la sous-trame. Dans ce cas, il convient de sommer au fur et à mesure les valeurs Le(n) et Ls(n) et comparer à chaque sous-trame les deux sommes obtenues :We can also consider the case where L e and / or L s are not constant in time. It is no longer possible to find a common multiple at the two subframe lengths, now denoted L e (n) and L s (n), where n is the subframe number. In this case, the values L e (n) and L s (n) should be summed up as they are and compare the two obtained sums with each subframe:
A chaque fois que l'on a Te(k) = Ts(k'), l'origine commune est remise à jour (et prise à la position k*Le ou encore à k'*Ls). Quant aux deux sommes Te et Ts, elles sont préférentiellement réinitialisées. En bref et plus généralement, en appelant première (respectivement seconde) durée de sous-trame la durée de sous-trame du premier (respectivement second) format de codage, les étapes d'adaptation effectuées lorsque les durées de sous-trame sont différentes sont résumées sur la figure 7 et sont préférentiellement les suivantes : a20) définition d'une origine commune O aux sous-trames des premier et second formats (étape 70), a21) découpage des sous-trames successives du premier format de codage caractérisé par une première durée de sous-trame, pour former des pseudosous-trames de durées L'e correspondantes à la seconde durée de sous-trame (étape 71), a22) mise à jour de l'origine commune O (étape 79), a23) et détermination de correspondance entre les positions d'impulsions dans les pseudo-sous-trames p'e et dans les sous-trames au second format (étape 80).Whenever we have T e (k) = T s (k '), the common origin is updated (and taken at the position k * L e or again at k' * L s ). As for the two sums T e and T s , they are preferentially reset. In short and more generally, by calling the first (respectively second) subframe duration the subframe duration of the first (respectively second) encoding format, the adaptation steps performed when the subframe times are different are summarized in FIG. 7 and are preferably as follows: a20) definition of a common origin O to the subframes of the first and second formats (step 70), a21) division of the successive subframes of the first coding format characterized by a first subframe duration, to form pseudo-frames of durations L ' e corresponding to the second subframe duration (step 71), a22) updating of the common origin O (step 79), a23) and determining correspondence between the pulse positions in pseudo-subframes p ' e and second format subframes (step 80).
Préférentiellement, pour déterminer l'origine commune O, on discrimine au test 72 de la figure 7 les cas suivants : - les première et seconde durées sont fixes dans le temps (sortie "o" du test 72), et - les première et seconde durées varient dans le temps (sortie "n" du test 72).Preferably, to determine the common origin O, the test 72 of FIG. 7 is discriminated in the following cases: the first and second durations are fixed in time (output "o" of the test 72), and the first and second durations vary in time (output "n" of test 72).
Dans le premier cas, la position temporelle de l'origine commune est remise périodiquement à jour (étape 74) à chaque instant où des frontières de sous- trames respectives de première durée St(Le) et de seconde durée St(Ls) sont alignées dans le temps (test 73 effectué sur ces frontières). Dans le second cas, préférentiellement : a221) on effectue successivement les deux sommations respectives des sous- trames au premier format Te(k) et des sous-trames au second format Ts(k') (étape 76), a222) on détecte une occurrence d'une égalité entre lesdites deux sommes, définissant un instant de remise à jour de ladite origine commune (test 77), a223) on réinitialise les deux sommes précitées (étape 78), après ladite occurrence, pour une future détection d'une prochaine origine commune.In the first case, the temporal position of the common origin is periodically updated (step 74) at each instant when respective subframe boundaries of first duration St (L e ) and second duration St (L s ). are aligned in time (test 73 performed on these borders). In the second case, preferably: a221), the two respective summations of the subframes in the first format T e (k) and subframes in the second format T s (k ') (step 76), a222), are carried out successively. detects an occurrence of an equality between said two sums, defining a time of updating of said common origin (test 77), a223) resetting the two aforementioned amounts (step 78), after said occurrence, for a future detection of 'a next common origin.
Maintenant, dans le cas où les durées de sous-trame et les fréquences d'échantillonnage sont différentes, il suffit de combiner judicieusement les algorithmes de correspondance entre les positions de E et S décrites dans les deux cas précédents.Now, in the case where the subframe times and the sampling frequencies are different, it is sufficient to judiciously combine the correspondence algorithms between the positions of E and S described in the two previous cases.
* EXEMPLES DE REALISATION* EXAMPLES OF REALIZATION
On décrit maintenant trois exemples de réalisation du transcodage au sens de l'invention. Ces exemples de réalisation décrivent la mise en œuvre des traitements prévus dans les cas présentés ci-avant dans des codeurs de parole à analyse par synthèse normalisés. Les deux premiers modes illustrent le cas favorable où les fréquences d'échantillonnage, comme les durées des sous-trames, sont identiques. Le dernier exemple illustre le cas où les durées des sous-trames sont différentes.Three embodiments of transcoding within the meaning of the invention will now be described. These exemplary embodiments describe the implementation of the treatments provided in the cases presented above in standard speech analysis coders. The first two modes illustrate the favorable case where the sampling frequencies, like the durations of the subframes, are identical. The last example illustrates the case where the duration of the sub-frames are different.
* Exemple de réalisation n°1 Le premier exemple de réalisation est appliqué au transcodage intelligent entre le modèle MP-MLQ du G.723.1 à 6,3 kbit/s et le modèle ACELP à 4 impulsions du G.723.1 à 5,3 kbit/s.* Exemplary example 1 The first embodiment is applied to intelligent transcoding between the MP-MLQ model of G.723.1 at 6.3 kbit / s and the ACELP model at 4 pulses of G.723.1 at 5.3 kbit / s.
Un transcodage intelligent du débit haut vers le débit bas du G.723.1 met en présence un modèle MP-MLQ à 6 et 5 impulsions avec un modèle ACELP à 4 impulsions. L'exemple de réalisation présenté ici permet de déterminer les positions des 4 impulsions de l'ACELP à partir des positions des impulsions du MP-MLQ.Intelligent transcoding of the G.723.1's high bitrate to low bit rate brings together a 6 and 5 pulse MP-MLQ model with an ACELP model at 4 pulses. The exemplary embodiment presented here makes it possible to determine the positions of the four pulses of the ACELP from the positions of the pulses of the MP-MLQ.
On rappelle ci-après le fonctionnement du codeur G.723.1.The operation of the G.723.1 encoder is described below.
Le codeur multi-débits UIT-T G.723.1 et ses répertoires multi-impulsionnels ont été présentés ci-avant. Il est précisé seulement qu'une trame du G.723.1 comporte 240 échantillons à 8 kHz, et qu'elle est divisée en quatre sous- trames de 60 échantillons. La même restriction est imposée aux positions des impulsions de tout vecteur-code de chacun des trois dictionnaires multi- impulsionnels. Ces positions doivent toutes avoir la même parité (toutes paires ou toutes impaires). La sous-trame de 60(+4) positions est ainsi découpée en deux grilles de 32 positions. La grille paire comporte les positions numérotées [0, 2, 4,..., 58, (60,62)]. La grille impaire comporte les positions [1, 3, 5,..., 59,(61,63)]. Pour chaque débit, l'exploration du répertoire, même non exhaustive, reste complexe comme indiqué précédemment.The ITU-T G.723.1 multi-rate encoder and its multi-pulse directories have been presented above. It is specified only that a frame of G.723.1 has 240 samples at 8 kHz, and is divided into four subframes of 60 samples. The same restriction is imposed on the pulse positions of any code vector of each of the three multi-pulse dictionaries. These positions must all have the same parity (all pairs or all odd). The sub-frame of 60 (+4) positions is thus cut into two gates of 32 positions. The even grid has the positions numbered [0, 2, 4, ..., 58, (60,62)]. The odd grid has the positions [1, 3, 5, ..., 59, (61,63)]. For each flow, the exploration of the directory, even if not exhaustive, remains complex as indicated previously.
On décrit maintenant la sélection d'un sous-ensemble du répertoire ACELP du G.723.1 à 5,3 kbit/s à partir d'un élément d'un répertoire MP-MLQ du G.723.1 à 6,3 kbit/s.The selection of a subset of the 5.3 kbps G.723.1 ACELP directory from an item in a 6.3 kbps G.723.1 MP-MLQ directory is now described.
On cherche à modéliser le signal d'innovation d'une sous-trame par un élément du répertoire ACELP du G.723.1 à 5,3 kbit/s connaissant l'élément du répertoire MP-MLQ du G.723.1 à 6,3 kbit/s déterminé lors d'un premier codage. On dispose donc des Ne positions (Ne=5 ou 6) des impulsions choisies par le codeur G.723.1 à 6,3 kbit/s. Par exemple, on peut supposer que les positions extraites du train binaire du codeur G.723.1 à 6,3kbit/s pour une sous-trame dont l'excitation est modélisée par Ne=5 impulsions sont : e0 = 0; e1 = 8; e2 = 28; e3 = 38; e4 = 46; On rappelle qu'aucune adaptation des fréquences d'échantillonnage ou des durées de sous-trames n'est à faire ici. Après cette étape de récupération des positions e), une étape suivante consiste alors à extraire directement les voisinages droits et gauches de ces 5 impulsions. Les voisinages droits et gauches sont pris ici égaux à 2. L'ensemble Ps des positions sélectionnées est : ps The innovation signal of a sub-frame is modeled by an element of the 5.3 kbps G.723.1 ACELP directory that knows the 6.3 kbps G.723.1 MP-MLQ directory element. / s determined during a first coding. Thus N e positions (N e = 5 or 6) of the pulses chosen by the G.723.1 coder at 6.3 kbit / s are available. For example, it can be assumed that the positions extracted from the bit stream of the G.723.1 encoder at 6.3 kbit / s for a subframe whose excitation is modeled by N e = 5 pulses are: e 0 = 0; e 1 = 8; e 2 = 28; e 3 = 38; e 4 = 46; It is recalled that no adaptation of sampling frequencies or subframe times is to be done here. After this step of recovering the positions e), a next step then consists in directly extracting the right and left neighborhoods of these 5 pulses. The right and left neighborhoods are taken here equal to 2. The set P s of the selected positions is: p s
La troisième étape consiste à composer l'ensemble restreint des positions possibles pour chaque impulsion (ici une piste) du répertoire ACELP du G.723.1 à 5,3 kbit/s en prenant Ns=4 intersections de Ps avec les 4 ensembles des positions des pistes paires (respectivement impaires) autorisées par ce dernier répertoire (comme représenté dans la table 1).The third step consists of composing the restricted set of possible positions for each pulse (here a track) of the G.723.1 ACELP directory at 5.3 kbit / s by taking N s = 4 intersections of P s with the 4 sets of positions of the odd (odd) tracks allowed by the latter directory (as shown in Table 1).
Pour la parité paire : s0 = ^ΓK0'8'16'*"'56}; SI = ^n{2'ιo>io "'58}; S2 =4'i2'2o'-'52'<6°)}; s3 =^n{6"i4'22'"-'54'(62>}; d'OÙ : S0 = {0,8,40,48}; Si = {2,10,26,}; S2 = {28,36,44}; S3 = {6,30,38,46};For the even parity: s 0 = ^ ΓK 0 ' 8 ' 16 ' * " 56 } ; S I = ^ n {2 ' ιo > io "'58}; S 2 = ^ π 4 ' i 2 ' 2o '-' 52 '< 6 ° )}; s 3 = ^ n { 6 " i4 ' 22 '" - ' 54 ' (62 >} ; where : S 0 = {0,8,40,48}; Si = {2,10,26,}; S 2 = {28.36.44}; S 3 = {6,30,38,46};
Pour la parité impaire : S3 = Psf]{7„l5,-, 55,(63)}; d'Où : S0 = {l,9}; S1 = {27}; S2 = {29,37,45}; S3 = {7,39,47};For odd parity: S 3 = P s f] {7.15, -, 55, (63)}; where: S 0 = {l, 9}; S 1 = {27}; S 2 = {29.37.45}; S 3 = {7.39.47};
La combinaison de ces positions sélectionnées constitue le nouveau répertoire restreint dans lequel s'effectuera la recherche. Pour cette dernière étape, la procédure de sélection du jeu de positions optimales s'appuie sur le critère CELP comme le fait le G.723.1 au mode 5,3 kbit/s. L'exploration peut être exhaustive ou, de préférence, focalisée.The combination of these selected positions constitutes the new restricted directory in which the search will take place. For this last step, the procedure for selecting the optimal positions set is based on the criterion CELP as does G.723.1 in the 5.3 kbit / s mode. The exploration can be exhaustive or, preferably, focused.
Le nombre de combinaisons de positions dans le répertoire restreint est égal à 180 (=4*3*3*4+2*1*3*3) au lieu des 8192 (=2*8*8*8*8) combinaisons de positions du répertoire ACELP du G.723.1 à 5,3 kbit/s.The number of combinations of positions in the restricted repertoire is equal to 180 (= 4 * 3 * 3 * 4 + 2 * 1 * 3 * 3) instead of 8192 (= 2 * 8 * 8 * 8 * 8) combinations of ACELP directory positions of G.723.1 at 5.3 kbit / s.
On indique qu'on peut restreindre davantage le nombre de combinaisons en ne considérant que la parité choisie au mode 6,3 kbit/s (dans l'exemple cité la parité paire). Dans ce cas, le nombre de combinaisons du répertoire restreint est égal à 144.It is indicated that the number of combinations can be further restricted by considering only the parity chosen in the 6.3 kbit / s mode (in the example cited the even parity). In this case, the number of combinations in the restricted directory is 144.
Il peut arriver (selon les taille des voisinages considérées) que pour une des quatre impulsions, l'ensemble Ps ne contienne aucune position pour une piste du modèle ACELP (cas où l'un des ensemble S,- est vide). Ainsi, pour des voisinages de taille 2, quand les positions des Ne impulsions sont toutes sur la même piste, Ps ne contient que des positions de cette piste et des pistes adjacentes. Dans ce cas, selon le compromis qualité/complexité désiré, il est possible soit de remplacer l'ensemble S,- par 7} (ce qui revient à ne pas restreindre l'ensemble des positions de cette piste), soit d'augmenter le voisinage droit (ou gauche) des impulsions. Par exemple, si toutes les impulsions du code à 6,3 kbit/s sont sur la piste 2, avec des voisinages droit et gauche égaux à 2, la piste 0 n'aura pas de positions quelle que soit la parité. Il suffit alors d'augmenter de 2 la taille du voisinage gauche et/ou droit pour attribuer des positions à cette piste 0.It can happen (depending on the size of the considered neighborhoods) that for one of the four pulses, the set P s contains no position for a track of the model ACELP (case where one of the set S, - is empty). Thus, for neighborhoods of size 2, when the positions of the N e pulses are all on the same track, P s contains only positions of this track and adjacent tracks. In this case, according to the desired quality / complexity compromise, it is possible either to replace the set S, - by 7} (which amounts to not restricting all the positions of this track), or to increase the neighborhood right (or left) impulses. For example, if all pulses in the 6.3 kbit / s code are on track 2, with right and left neighborhoods equal to 2, track 0 will have no positions regardless of parity. It is then sufficient to increase by 2 the size of the left and / or right neighborhood to assign positions to this track 0.
Pour illustrer cette réalisation, on part de l'exemple suivant : e 0 = 4; ei = 12; e = 20; e3 = 36; e4 = 52;To illustrate this realization, we start from the following example: e 0 = 4; ei = 12; e = 20; e 3 = 36; e 4 = 52;
L'ensemble Ps des positions sélectionnées est : ps ≈ {2,3,4,5,6}|J {l0,l 1,12,13,14}^) {l8,19,20,21,22}{J {34,35,36,37,38}^ {50,51,52,53,54} En supposant que l'on veuille garder la même parité, la répartition initiale de ces positions pour les 4 impulsions est :The set P s of the selected positions is: p s ≈ {2,3,4,5,6} | J {l0, l 1,12,13,14} ^) {l8,19,20,21,22 } {J {34,35,36,37,38} ^ {50,51,52,53,54} Assuming that we want to keep the same parity, the initial distribution of these positions for the 4 pulses is:
So=0; S7={2, 10, 18, 34, 50}; S2={4, 12, 20, 36, 52}; S3={6, 14, 22, 38, 54}; En augmentant de 2 le voisinage gauche des impulsions, on obtient : S0={0, 8, 16, 32, 48}; S,={2, 10, 18, 34, 50}; S2={4, 12, 20, 36, 52}; S3={6, 14, 22, 38, 54} (avec donc S0 ≠ 0 ).S o = 0; S 7 = {2, 10, 18, 34, 50}; S 2 = {4, 12, 20, 36, 52}; S 3 = {6, 14, 22, 38, 54}; By increasing the left neighborhood of the pulses by 2, we obtain: S 0 = {0, 8, 16, 32, 48}; S, = {2, 10, 18, 34, 50}; S 2 = {4, 12, 20, 36, 52}; S 3 = {6, 14, 22, 38, 54} (thus with S 0 ≠ 0).
* Exemple de réalisation n°2 Le second exemple suivant illustre l'application de l'invention aux transcodages intelligents entre des modèles ACELP de même longueur. En particulier, ce second exemple de réalisation est appliqué au transcodage intelligent entre l'ACELP à 4 impulsions du G.729 à 8 kbit/s et l'ACELP à 2 impulsions du G.729 à 6,4 bits/s.* Exemplary Example 2 The following second example illustrates the application of the invention to intelligent transcoding between ACELP models of the same length. In particular, this second exemplary embodiment is applied to intelligent transcoding between the 4-pulse ACELP of the G.729 at 8 kbit / s and the ACELP at 2 pulses of the G.729 at 6.4 bit / s.
Un transcodage intelligent entre les modes 6,4 kbit/s et 8 kbit/s du codeur G.729, met en présence un répertoire ACELP à deux impulsions et un second à quatre impulsions. L'exemple présenté ici permet de déterminer les positions de 4 impulsions (8kbit/s) à partir des positions de 2 impulsions (6,4 kbit/s) et réciproquement.Intelligent transcoding between the 6.4 kbit / s and 8 kbit / s modes of the G.729 encoder brings together a two-pulse and a four-pulse ACELP repertoire. The example presented here makes it possible to determine the positions of 4 pulses (8 kbit / s) from the positions of 2 pulses (6.4 kbit / s) and vice versa.
On rappelle succinctement le fonctionnement du codeur UIT-T G.729. Ce codeur peut fonctionner à trois débits: 6,4; 8 et 11,8 kbit/s. On considère donc ici les deux premiers débits. Une trame de G.729 comporte 80 échantillons à 8 kHz. Cette trame est divisée en deux sous-trames de 40 échantillons. Pour chaque sous-trame, le G.729 modélise le signal d'innovation par des impulsions selon le modèle ACELP. Il en utilise quatre au mode 8 kbit/s et deux pour le mode 6,4 kbit/s. Les tables 2 et 4 ci-avant donnent les positions que peuvent prendre les impulsions pour ces deux débits. A 6,4 kbit/s, une recherche exhaustive de toutes les combinaisons (512) des positions est effectuée. A 8 kbit/s, une recherche focalisée est préférentiellement utilisée.Briefly, the operation of the ITU-T G.729 coder is described. This encoder can operate at three rates: 6.4; 8 and 11.8 kbit / s. We therefore consider here the first two flows. A G.729 frame has 80 samples at 8 kHz. This frame is divided into two subframes of 40 samples. For each subframe, the G.729 models the innovation signal by pulses according to the ACELP model. It uses four in the 8 kbit / s mode and two in the 6.4 kbit / s mode. Tables 2 and 4 above give the positions that pulses can take for these two rates. At 6.4 kbit / s, a exhaustive search of all combinations (512) positions is performed. At 8 kbit / s, a focused search is preferably used.
Le traitement général au sens de l'invention est encore utilisé ici. Toutefois et de façon avantageuse, on tire partie ici de la structure ACELP commune aux deux répertoires. La mise en correspondance des jeux de positions exploite ainsi une découpe de la sous-trame de 40 échantillons en 5 pistes de 8 positions, donnés dans la table 6 ci-après.General treatment within the meaning of the invention is still used here. However, and advantageously, here we take advantage of the ACELP structure common to both directories. The mapping of the sets of positions thus exploits a subframe cut of 40 samples in 5 tracks of 8 positions, given in table 6 below.
Pistes Positions Po 0, 5, 10, 15, 20, 25, 30, 35 Pi 1, 6, 11, 16, 21, 26, 31, 36 J?2 2, 7, 12, 17, 22, 27, 32, 37 J?3 3, 8, 13, 18, 23, 28, 33, 38 P4 4, 9, 14, 19, 24, 29, 34, 39 Table 6: Répartition des positions en cinq pistes dans les dictionnaires ACELP du G.729Tracks Positions Po 0, 5, 10, 15, 20, 25, 30, 35 Pi 1, 6, 11, 16, 21, 26, 31, 36 J? 2 2, 7, 12, 17, 22, 27, 32 , 37 J? 3 3, 8, 13, 18, 23, 28, 33, 38 P 4 4, 9, 14, 19, 24, 29, 34, 39 Table 6: Distribution of positions in five tracks in ACELP dictionaries from G.729
Dans les deux répertoires, les positions des impulsions se partagent ces pistes, comme le montre la table 7 ci-après.In both directories, the pulse positions share these tracks, as shown in Table 7 below.
Toutes les impulsions sont caractérisées par leur piste et leur rang dans cette piste. Le mode à 8 kbit/s place une impulsion sur chacune des trois premières pistes et la dernière impulsion sur l'une des deux dernières pistes. Le mode à 6,4 kbit/s quant à lui place sa première impulsion sur les pistes Pi ou P3, et sa deuxième impulsion sur les pistes Po, Pi, P2 ou P4. All pulses are characterized by their track and their rank in this track. The 8 kbit / s mode places a pulse on each of the first three tracks and the last pulse on one of the last two tracks. The 6.4 kbit / s mode puts its first pulse on the tracks Pi or P 3 , and its second pulse on the tracks Po, Pi, P 2 or P 4 .
Ta e 7; Répartition des impulsions des répertoires ACELP du G. 729 à 8 et 6, 4 kbit/s dans les cinq pistes .Ta e 7; Distribution of ACELP pulses of G. 729 at 8 and 6, 4 kbit / s in the five tracks.
L'entrelacement des pistes (structure ISSP) est exploité dans cette réalisation pour faciliter l'extraction des voisinages et la composition des sous-ensembles restreints de positions. Ainsi, pour se déplacer d'une piste à une autre, il suffit de se décaler d'une unité vers la droite ou vers la gauche. Par exemple, si l'on se place à la 5lè e position de la piste 2 (de position absolue 22), un décalage de 1 vers la droite (+1) fait passer à la 5lème position de la piste 3 (de position absolue 23) et un décalage vers la gauche (-1) fait passer à la 5lème position de la piste 1 (de position absolue 21).The interlacing of tracks (ISSP structure) is used in this embodiment to facilitate the extraction of neighborhoods and the composition of restricted subsets of positions. Thus, to move from one track to another, simply move one unit to the right or to the left. For example, if one is in the 5 th position of track 2 (of absolute position 22), an offset of 1 to the right (+1) moves to the 5 th position of track 3 (of absolute position 23) and a left shift (-1) passed the 5 -th position of the track 1 (absolute position 21).
Plus généralement, un décalage de ±d d'une position se traduit ici par les effets suivants. Au niveau des pistes P/ : voisinage droit : P{ => P +^≡5 voisinage gauche : Pt => P -^SMore generally, an offset of ± d of a position is reflected here by the following effects. At the level of the tracks P /: right neighbor: P { => P + ^ ≡5 left neighborhood: P t => P - ^ S
Au niveau du rang m dans la piste : * voisinage droit : si (i+d) ≤ 4: m, = mi sinon: mi => mt +l * voisinage gauche : si (i-d) 0: mt => mt sinon: m */, => m, -1At the level of the rank m in the track: * right neighborhood: if (i + d) ≤ 4: m, = m i otherwise: m i => m t + l * left neighborhood: if (id) 0: t = m> m t otherwise: m * / => m, -1
On décrit maintenant la sélection d'un sous-ensemble du répertoire ACELP à 4 impulsions du codeur G.729 à 8 kbit/s à partir d'un élément d'un répertoire ACELP à 2 impulsions du codeur G.729 à 6,4 kbit/s.The selection of a subset of the 4-pulse ACELP repertoire of the 8 kbit / s G.729 encoder is now described from a 2-pulse ACELP directory element of the G.729 to 6.4 encoder. kbit / s.
On considère une sous-trame de G.729 au mode 6,4 kbit/s. Deux impulsions sont placées par ce codeur mais il faut déterminer les positions des autres impulsions que doit placer le G.729 à 8 kbit/s. Pour restreindre radicalement la complexité, une seule position par impulsion est choisie et une seule combinaison de positions est retenue. Avantageusement, l'étape de sélection est donc immédiate. On choisit deux des quatre impulsions du G.729 à 8 kbit/s aux mêmes positions que celles du mode à 6,4 kbit/s, puis on place les deux impulsions restantes à proximité immédiate des deux premières. Comme indiqué ci-avant, la structure en pistes est exploitée. A la première étape de récupération des deux positions par décodage de l'indice binaire (sur 9 bits) des 2 positions, les deux pistes correspondantes sont aussi déterminées. A partir de ces deux pistes (éventuellement identiques), les trois dernières étapes d'extraction des voisinages, de composition des sous-ensembles restreints et de sélection d'une combinaison d'impulsions sont alors judicieusement associées. On distingue plusieurs cas selon les pistes P,- (/'=0 à 4) sur lesquelles se trouvent les deux impulsions du mode à 6,4 kbit/s.A subframe of G.729 is considered to be in the 6.4 kbit / s mode. Two pulses are placed by this encoder but it is necessary to determine the positions of the other pulses that must place the G.729 at 8 kbit / s. To radically restrict complexity, only one position per pulse is chosen and only one combination of positions is retained. Advantageously, the selection step is therefore immediate. Two of the four G.729 pulses at 8 kbit / s are selected at the same positions as the 6.4 kbit / s mode, and then the two remaining pulses are placed in close proximity to the first two. As indicated above, the track structure is exploited. In the first step of recovering the two positions by decoding the binary index (on 9 bits) of the two positions, the two corresponding tracks are also determined. From these two tracks (possibly identical), the last three steps of neighborhood extraction, composition of restricted subsets and selection of a combination of pulses are then judiciously associated. There are several cases according to the tracks P, - (/ ' = 0 to 4) on which are located the two pulses 6.4 kbit / s mode.
On note eι< les positions des impulsions du mode à 6,4 kbit/s et Sk celle du mode à 8 kbit/s. La table 8 ci-après présente pour chacun des cas les positions choisies. Les colonnes notées "Pj+d-P précisent la loi de voisinage au niveau des pistes et aboutissant à la piste Pj. On rappelle qu'au niveau des pistes Pf. * pour le voisinage droit : Pt => R(/+£/)=5 pour le voisinage gauche : P{ P(i-d)≡5The pulse positions of the 6.4 kbit / s mode and Sk of the 8 kbit / s mode are noted. Table 8 below presents for each case the positions chosen. The columns denoted "P j + d -P specify the neighborhood law at the level of the tracks and ending at the track P. It is recalled that at the level of the tracks Pf. * For the right neighborhood: P t => R ( / + £ /) = 5 for the left neighborhood: P { P (id) ≡5
Table 8 : Choix du répertoire restreint du G. 729 à 8 kit/s à partir des deux impulsions du répertoire ACELP du G. 729 à 6, 4 kbit/ s . Préférentiellement, on cherche donc à équilibrer la répartition des 4 positions par rapport aux deux positions de départ, mais on indique qu'un autre choix peut être effectué. Quatre cas (signalés par un exposant entre parenthèses dans la table 8) peuvent poser toutefois des problèmes d'effets de bord: Cas (1) : si ei = 0, alors on ne peut pas prendre s3=eι-1. On choisira s3= eo+2. Cas (2) : si ei = 39, alors on ne peut pas prendre so=eι+1. On choisit s0= eo -1. Cas (3): si ei = 38, alors on ne peut pas prendre s0=eo+2. On choisit s0= ei -2. Cas (4): si ei = 39, alors on ne peut pas prendre So=eι+1. On choisit So= eo -3. Pour diminuer encore la complexité, le signe de chaque impulsion S peut être pris égal à celui de l'impulsion θj de laquelle elle est déduite. Table 8: Selection of the restricted repertoire from G. 729 to 8 / s from the two pulses in the ACELP directory of G. 729 at 6.4 kbps. Preferentially, it is therefore sought to balance the distribution of the 4 positions with respect to the two starting positions, but it indicates that another choice can be made. Four cases (indicated by an exponent in parentheses in table 8) can, however, cause edge effects problems: Case (1): if ei = 0, then we can not take s 3 = eι-1. We choose s 3 = eo + 2. Case (2): if ei = 39, then we can not take so = eι + 1. We choose s 0 = eo -1. Case (3): if ei = 38, then we can not take s 0 = eo + 2. We choose s 0 = ei -2. Case (4): if ei = 39, then we can not take So = eι + 1. We choose So = eo -3. To further reduce the complexity, the sign of each pulse S can be taken as equal to that of the pulse θj from which it is deduced.
On décrit maintenant la sélection d'un sous-ensemble du répertoire ACELP à 2 impulsions du G.729 à 6,4 kbit/s à partir d'un élément d'un répertoire ACELP à 4 impulsions du G.729 à 8 kbit/s. Pour une sous-trame de G.729 au mode à 8 kbit/s, la première étape est la récupération des positions des quatre impulsions générées par le mode 8 kbit/s. Le décodage de l'indice binaire (sur 13 bits) des 4 positions permet d'obtenir leur rang dans leur piste respective pour les trois premières positions (des pistes 0 à 2) et la piste (3 ou 4) de la quatrième impulsion ainsi que son rang dans cette piste. Chaque position eι (O≤ i <4) est caractérisée par le couple (Pi.nrii) où pi est l'indice de sa piste et ιτij son rang dans cette piste. On a: βj avec O≤ mj <8 et pi≈i pour i<3 et p3≈ 3 ou 4.The selection of a subset of the ACELP directory at 2 pulses of the G.729 at 6.4 kbit / s from an element of a 4-pulse G.729 ACELP repertoire at 8 kbit / s is now described. s. For a G.729 subframe in the 8 kbit / s mode, the first step is the recovery of the positions of the four pulses generated by the 8 kbit / s mode. The decoding of the bit index (over 13 bits) of the 4 positions makes it possible to obtain their rank in their respective track for the first three positions (tracks 0 to 2) and the track (3 or 4) of the fourth pulse as well. than his rank in this track. Each position eι (O≤ i <4) is characterized by the pair (Pi.nrii) where pi is the index of its track and ιτij its rank in this track. We have: βj with O≤ mj <8 and pi≈i for i <3 and p 3 ≈ 3 or 4.
Comme déjà mentionné, l'extraction des voisinages et la composition des sous-ensembles restreints sont combinées et exploitent avantageusement la structure ISSP commune aux deux répertoires. En exploitant la propriété de positions voisines induite par l'entrelacement des pistes, on construit les cinq intersections T'j de l'ensemble Ps des voisinages des 4 positions avec les 5 pistes Pj. T'j≈PsnPj Ainsi, un voisin droit (respectivement gauche) de +1 (respectivement -1) de l'impulsion (p,m) appartient à T'p+ι si p<4 (respectivement à T'p-ι si p>0), sinon (cas p=4) à TO à condition que m<7 (respectivement à T'4 (cas i=0) à condition que m>0). La restriction sur le voisin droit pour une position de la quatrième impulsion appartenant à la quatrième piste (respectivement gauche pour une position de la première piste) permet de s'assurer que la position voisine n'est pas en dehors de la sous-trame.As already mentioned, the extraction of neighborhoods and the composition of restricted subsets are combined and advantageously exploit the ISSP structure common to both directories. By exploiting the property of neighboring positions induced by the interlacing of the tracks, the five intersections T'j of the set P s of the neighborhoods of the 4 positions are constructed with the 5 tracks Pj. T'j≈PsnP j Thus, a right (respectively left) neighbor of +1 (respectively -1) of the pulse (p, m) belongs to T ' p + ι if p <4 (respectively to T' p - ι if p> 0), otherwise (case p = 4) to TO provided that m <7 (respectively at T ' 4 (case i = 0) provided that m> 0). The restriction on the right neighbor for a position of the fourth pulse belonging to the fourth track (respectively left for a position of the first track) makes it possible to ensure that the neighboring position is not outside the sub-frame.
Ainsi, en utilisant la notation modulo 5 (=5), un voisin droit (respectivement gauche) de +1 (respectivement -1) de l'impulsion (p,m) appartient à T'(P+1)=5 (respectivement à T Ό≡S)- On rappelle qu'il faut tenir compte des effets de bord. En généralisant à une taille d de voisinage, un voisin droit de +d (respectivement gauche de -d) de l'impulsion (p,m) appartient à T'(P+d)=5 (respectivement à Le rang du voisin à ±d est égal à m si p+d≤4 (ou p- d≥O), sinon le rang m est incrémenté pour un voisin droit et décrémenté pour un voisin gauche. La prise en compte des effets de bord revient donc à s'assurer que: m<7 si p+d>4 et que m>0 si p-d <0.Thus, using the notation modulo 5 (= 5), a right neighbor (respectively left) of +1 (respectively -1) of the impulse (p, m) belongs to T '( P + 1) = 5 (respectively at T Ό≡S) - Remember that edge effects must be taken into account. By generalizing to a neighborhood size d, a right neighbor of + d (respectively left of -d) of the pulse (p, m) belongs to T '( P + d ) = 5 (respectively to The rank of the neighbor at ± d is equal to m if p + d≤4 (or p- d≥O), otherwise the rank m is incremented for a right neighbor and decremented for a left neighbor. Taking into account edge effects therefore amounts to ensuring that: m <7 if p + d> 4 and that m> 0 if pd <0.
A partir de cette répartition des voisins dans les 5 pistes, il est simple de déterminer les sous-ensembles restreints So et Si des positions des deux impulsions : La quatrième et dernière étape consiste à effectuer la recherche du couple optimal dans les deux sous-ensembles obtenus. L'algorithme de recherche (comme celui normalisé exploitant la structure en pistes) et le rangement par piste des impulsions simplifient là encore l'algorithme de recherche. En pratique, il est donc inutile de constituer explicitement les sous-ensembles restreints So et Si car les ensembles T'j peuvent être utilisés seuls.From this distribution of the neighbors in the 5 tracks, it is easy to determine the restricted subsets So and Si of the positions of the two pulses: The fourth and last step is to perform the search for the optimal torque in the two subsets obtained. The search algorithm (like the normalized one using the track structure) and the track storage of the pulses further simplify the search algorithm. In practice, it is therefore useless to explicitly constitute the subsets So and Si restricted because sets T'j can be used alone.
Dans l'exemple ci-après, le mode à 8 kbit/s du G.729 a placé ses quatre impulsions aux positions suivantes : e0= 5 ; eι= 21 ; e2= 22 ; e3= 34 ;In the example below, the 8 kbit / s mode of G.729 has set its four pulses to the following positions: e 0 = 5; eι = 21; e 2 = 22; e 3 = 34;
Ces 4 positions sont caractérisées par les 4 couples (0,1), (1 , 4), (2,4)These 4 positions are characterized by the 4 couples (0,1), (1,4), (2,4)
(4,6). Si l'on prend un voisinage fixe égal à 1 , on construit les 5 intersections T'j comme suit : e0 : (0, 1) donne : (4,0) à gauche et (1, 1) à droite ei : (1 ,4) donne : (0,4) à gauche et (2,4) à droite e2 : (2,4) donne : (1,4) à gauche et (3,4) à droite e3 :(4,6) donne : (3, 6) à gauche et (0,7) à droite(4,6). If we take a fixed neighborhood equal to 1, we construct the 5 intersections T'j as follows: e 0 : (0, 1) gives: (4.0) on the left and (1, 1) on the right ei: (1, 4) gives: (0.4) on the left and (2.4) on the right e 2 : (2.4) gives: (1.4) on the left and (3.4) on the right e 3 : (4,6) gives: (3, 6) on the left and (0,7) on the right
On a donc : T'0={(0,1),(0,4),(0,7)}; T'3={(3,4),(3,6)}; En revenant à la notation par positions : T'0={5,20,35}; ^={21, 6}; T'2={22}; T'3={23,33}; T'4 = {34,4}We thus have: T ' 0 = {(0,1), (0,4), (0,7)}; T ' 3 = {(3,4), (3,6)}; Returning to the notation by positions: T ' 0 = {5,20,35}; ^ = {21, 6}; T ' 2 = {22}; T ' 3 = {23.33}; T ' 4 = {34.4}
A la dernière étape, un algorithme semblable à celui du G.729 à 6,4 kbit/s effectue la recherche du meilleur couple d'impulsions. Cet algorithme est ici bien moins complexe car le nombre de combinaisons de positions à explorer est très restreint. Dans l'exemple, il n'y a que 4 (= Cardinal(T'ι) + Cardinal(T'3)) fois 8 (= Cardinal(T'o) + Cardina T' + Cardinal(T'2) + Cardinal(T'4)) combinaisons à tester, soit 32 combinaisons au lieu de 512.In the last step, an algorithm similar to that of the 6.4 kbit / s G.729 performs the search for the best pulse pair. This algorithm is here less complex because the number of combinations of positions to explore is very small. In the example, there are only 4 (= Cardinal (T'ι) + Cardinal (T ' 3 )) times 8 (= Cardinal (T'o) + Cardina T' + Cardinal (T ' 2 ) + Cardinal (T ' 4 )) combinations to be tested, ie 32 combinations instead of 512.
Pour un voisinage de taille 1 , moins de 8% des combinaisons des positions est à explorer en moyenne sans dépasser 10% (50 combinaisons). Pour un voisinage de taille 2, moins de 17% des combinaisons des positions est à explorer en moyenne et au plus 25% des combinaisons est à explorer. Pour un voisinage de taille 2, la complexité du traitement proposé dans l'invention (en cumulant le coût de la recherche dans le répertoire restreint au coût de l'extraction des voisinages associé à la composition des intersections) représente moins de 30% d'une recherche exhaustive pour une qualité équivalente.For a neighborhood of size 1, less than 8% of combinations of positions is to explore on average without exceeding 10% (50 combinations). For a neighborhood size 2, less than 17% of combinations of positions is to explore on average and at most 25% of the combinations is to explore. For a neighborhood size 2, the complexity of the treatment proposed in the invention (by adding the cost of the search in the directory restricted to the cost of the extraction of neighborhoods associated with the composition of the intersections) represents less than 30% of an exhaustive search for an equivalent quality.
* Exemple de réalisation n°3* Execution example n ° 3
Le dernier exemple illustre les passages entre le modèle ACELP du G.729 à 8 kbit/s et le modèle MP-MLQ du G.723.1 à 6,3 kbit/s.The last example illustrates the transitions between the 8 kbit / s G.729 ACELP model and the 6.3 kbit / s G.723.1 MP-MLQ model.
Un transcodage intelligent des impulsions entre le G.723.1 (mode 6,3 kbit/s) et le G.729 (mode 8 kbit/s) comporte deux difficultés importantes. En premier lieu, la taille des trames est différente (40 échantillons pour le G.729 contre 60 échantillons pour le G.723.1). La seconde difficulté est liée à la structure différente des dictionnaires, du type ACELP pour le G.729 et du type MP-MLQ pour le G.723.1. L'exemple de réalisation présenté ici montre comment l'invention lève ces deux difficultés afin de transcoder à moindre coût les impulsions tout en préservant la qualité du transcodage.Intelligent pulse transcoding between G.723.1 (6.3 kbit / s mode) and G.729 (8 kbit / s mode) has two major difficulties. First, the size of the frames is different (40 samples for G.729 versus 60 samples for G.723.1). The second difficulty is related to the different structure of the dictionaries, the ACELP type for the G.729 and the MP-MLQ type for the G.723.1. The example of realization presented here shows how the invention overcomes these two difficulties in order to transcode the pulses at a lower cost while preserving the quality of the transcoding.
On effectue d'abord une correspondance temporelle entre les positions dans les deux formats en prenant en compte la différence de taille des sous-trames pour aligner les positions relativement à une origine commune à E et S. Les longueurs des sous-trames du G:729 et du G.723.1 ayant comme plus petit - commun multiple 120, la correspondance temporelle est effectuée par blocs de 120 échantillons soit deux sous-trames de G.723.1 pour trois sous-trames de G.729, comme le montre l'exemple de la figure 4b. En variante, on peut préférer travailler sur des blocs de trames complètes. Dans ce cas, on choisit des blocs de 240 échantillons soit une trame de G.723.1 (4 sous-trames) pour trois trames de G.729 (6 sous-trames).Firstly, a temporal correspondence is made between the positions in the two formats taking into account the difference in size of the subframes for aligning the positions relative to an origin common to E and S. The lengths of the subframes of the G: 729 and G.723.1 having as the smallest multiple-common 120, the temporal correspondence is performed in blocks of 120 samples or two subframes of G.723.1 for three subframes of G.729, as shown in the example of Figure 4b. Alternatively, it may be preferred to work on blocks of complete frames. In this case, blocks of 240 samples are chosen, ie a G.723.1 frame (4 subframes) for three G.729 frames (6 subframes).
On décrit maintenant la sélection d'un sous-ensemble du répertoire MP-MLQ du G.723.1 à 6,3 kbit/s à partir d'éléments du répertoire ACELP à 4 impulsions du G.729 à 8 kbit/s. La première étape consiste à récupérer les positions des impulsions par blocs de 3 sous-trames (d'index /e, 0≤/e≤2) du G.729. On note pe(ie) une position de la sous-trame ie de ce bloc.The selection of a subset of the MP-MLQ directory of G.723.1 at 6.3 kbit / s is now described from elements of the 4-pulse G.729 ACELP directory at 8 kbit / s. The first step consists in recovering the positions of the pulses in blocks of 3 sub-frames (index / e , 0 / / e ≤ 2) of the G.729. We denote p e (i e ) a position of the subframe i e of this block.
Avant d'extraire les voisinages, on convertit ces 12 positions pe(ie) en 12 positions notées ps(js), réparties dans deux sous-trames (d'index ;s, 0≤ s≤1) de G.723.1. On peut utiliser la relation générale ci-avant (faisant intervenir le modulo de la longueur de sous-trame) pour réaliser l'adaptation des durées de sous-trames. On préfère toutefois ici distinguer simplement trois cas selon l'indice ie : si ie =0, alors js =0 et ps= pβ si ie =2, alors ;s =1 et ps= pθ+20 si ie =1 , alors si pe<20js =0 et ps= pe+40, sinon (pe≥20) : ys =1 et ps- Pe-20Before extracting the neighborhoods, these 12 positions p e (i e ) are converted into 12 positions denoted p s (js), distributed in two sub-frames (indexes; s , 0 s s1 ) of G. 723.1. We can use the general relation above (involving the modulo of the subframe length) to realize the adaptation of the subframe durations. Here, however, it is preferred to distinguish simply three cases according to the index i e : if i e = 0, then j s = 0 and p s = p β if i e = 2, then; s = 1 and p s = p θ +20 if i e = 1, then if p e <20j s = 0 and p s = p e +40, otherwise (p e ≥20): y s = 1 and p s - Pe-20
On n'effectue ainsi ni division ni opération modulo n. Les 4 positions récupérées dans la sous-trame STEO du bloc sont directement attribuées à la sous-trame STSO avec la même position, celles de la sous- trame STE2 du bloc sont directement attribuées à la sous-trame STS1 avec un incrément de +20 de position, les positions de la sous-trame STE1 inférieurs à 20 sont attribuées à la sous-trame STSO avec un incrément de +40, les autres étant attribuées à la sous-trame STS1 avec un décrément de -20.This is neither division nor modulo operation. The 4 positions retrieved in the block's STEO sub-frame are directly assigned to the STSO sub-frame with the same position, those of the block's STE2 sub-frame are directly assigned to the STS1 subframe with an increment of +20 the position of the sub-frame STE1 less than 20 are assigned to the sub-frame STSO with an increment of +40, the others being allocated to the sub-frame STS1 with a decrement of -20.
On extrait ensuite les voisinages de ces 12 positions. Il faut noter que l'on peut autoriser les voisinages droits (respectivement gauches) des positions de la sous-trame STSO (respectivement STS1) à sortir de leur sous-trame, ces positions voisines étant alors dans la sous-trame STS1 (respectivement STSO).The neighborhoods are then extracted from these 12 positions. It should be noted that the right (respectively left) neighborhoods of the positions of the sub-frame STSO (respectively STS1) can be allowed to leave their subframe, these neighboring positions then being in the subframe STS1 (respectively STSO ).
L'étape de correspondance temporelle et d'extraction de voisinage peuvent être inversées. Dans ce cas, on peut autoriser les voisinages droits (respectivement gauches) des positions de la sous-trame STEO (respectivement STE2) à sortir de leur sous-trame, ces positions voisines étant alors dans la sous-trame STE1. De même, les voisinages droits (respectivement gauches) des positions dans STE1 , peuvent conduire à des positions voisines dans STE2 (respectivement STEO).The temporal matching and neighborhood extraction step can be reversed. In this case, the right (respectively left) neighborhoods of the positions of the STEO subframe (respectively STE2) can be allowed to leave their subframe, these neighboring positions then being in the subframe STE1. Similarly, the right (respectively left) neighborhoods of the positions in STE1 can lead to neighboring positions in STE2 (respectively STEO).
Une fois l'ensemble des positions restreintes pour chaque sous-trame STS constitué, la dernière étape consiste à explorer pour chaque sous-trame STS son répertoire restreint ainsi constitué pour sélectionner les Np (6 ou 5) impulsions de même parité. Cette procédure peut être dérivée de l'algorithme normalisé ou s'inspirer d'autres procédures de focalisation.Once the set of restricted positions for each sub-frame STS constituted, the last step is to explore for each sub-frame STS its restricted directory thus formed to select the N p (6 or 5) pulses of the same parity. This procedure may be derived from the standard algorithm or may be inspired by other focusing procedures.
Pour illustrer cet exemple de réalisation, on considère trois sous-trames duTo illustrate this embodiment, we consider three subframes of
G.729 qui vont permettre de construire les sous-répertoires de deux sous- trames du G.723.1. En supposant que le G.729 donne les positions suivantes : STEO : e0o= 5 ; e01= 1 ; e02= 32 ; e03= 39; STE1 : eι0= 15 ; e1 ≈ 31; e12≈ 22 ; e13- 4; STE2 : e20≈ 0 ; e21= 1 ; e22= 37; e23= 24 , après application de l'étape ci-avant de correspondance temporelle, l'attribution de ces 12 positions aux sous-trames STSO et STS1 est : STS0 : s00= 5; s0ι≈ 1 ; s02= 32 ; s03= 39;(s0k=e0k) STSO : s'10= 55 ; s'ι3= 44; (s'0k≈e1k+40, si e1k<20) STS1 : s'n≈ 11; s'12= 2 (s'1k=e1k-20, si e1k≥20) STS1 : s20≈ 20 ; s21≈ 21 ; s22= 57 ; s23= 44 ; (s0k=e2k+20)G.729 which will make it possible to build the subdirectories of two subframes of G.723.1. Assuming that G.729 gives the following positions: STEO: e 0 o = 5; e 01 = 1; e 02 = 32; e 03 = 39; STE1: eι 0 = 15; e 1 ≈ 31; e 12 ≈ 22; e 13 - 4; STE2: e 20 ≈ 0; e 21 = 1; e 22 = 37; e 23 = 24, after applying the above step of time matching, the assignment of these 12 positions to the sub-frames STSO and STS1 is: STS0: s 00 = 5; s 0 ι≈ 1; s 02 = 32; 03 s = 39; (s = e 0k 0k) STSO: s' = 10 55; where s 3 = 44; (s' 0k ≈e 1k +40, if e 1k <20) STS1: s'n≈ 11; s '12 = 2 (s' 1k = e -20 1k, 1k if e ≥20) STS1: s 20 ≈ 20; s 21 ≈ 21; s 22 = 57; s 23 = 44; (s 0k = e 2k + 20)
On a donc les jeux de positions {1, 5, 32, 39, 44, 55} pour la sous-trame STSO et {2, 11 , 20, 21 , 44, 57} pour la sous-trame STS1.Thus we have the sets of positions {1, 5, 32, 39, 44, 55} for the sub-frame STSO and {2, 11, 20, 21, 44, 57} for the subframe STS1.
Il faut à présent en extraire les voisinages. En prenant par exemple un voisinage fixé à 1 , on obtient : ps0 = {0,1,2}|J{4,556}(J{31,32J33}1J{38,39,40}U{43,44!45}(J{54,55,56} PΛ = {1A3)U {10,11,12}1J {20,21,22|J {21,22,23}(J {43,44,45}|J {56,57,58}We must now extract the neighborhoods. Taking for example a neighborhood fixed at 1, we obtain: p s0 = {0,1,2} | J {4,5 5 6} (J {31,32 J 33} 1J {38,39,40} U {43,44 ; 45} (J {54,55,56} P Λ = {1A3) U {10,11,12} 1J {20,21,22 | J {21,22,23} (J {43 , 44.45} | J {56,57,58}
Le MP-MLQ n'impose aucune contrainte aux impulsions, mis à part leur parité. Sur une sous-trame, elles doivent être toutes de la même parité. Il faut donc ici scinder Pso et Psι en deux sous ensembles, avec :The MP-MLQ does not impose any constraints on the impulses, apart from their parity. On a sub-frame, they must all be of the same parity. We must therefore split P s o and P s ι into two subsets, with:
- Ps0 : {0,2,4,6,32,40,44,54,56} et {1,5,31,33,39,43,45,55}- P s0 : {0,2,4,6,32,40,44,54,56} and {1,5,31,33,39,43,45,55}
- Ps1 : {2,10,12,20,22,44,56} et {1 ,3,11 ,21 ,23,43,45,57}- P s1 : {2,10,12,20,22,44,56} and {1, 3,11, 21, 23,43,45,57}
Ce sous-répertoire est enfin transmis à l'algorithme de sélection qui détermine les Np meilleures positions au sens du critère CELP pour les sous-trames STSO et STS1 du G.723.1. On restreint ainsi considérablement le nombre de combinaisons testées. En effet, par exemple dans la sous-trame STSO, il reste 9 positions paires et 8 positions impaires au lieu de 30 et 30.This subdirectory is finally transmitted to the selection algorithm which determines the N p best positions within the meaning of the CELP criterion for the STSO and STS1 subframes of G.723.1. This considerably reduces the number of combinations tested. Indeed, for example in the sub-frame STSO, there remain 9 even positions and 8 odd positions instead of 30 and 30.
On s'assure toutefois de certaines précautions dans les cas où les positions choisies par le G.729 sont telles que l'extraction des voisinages donne un nombre N de positions possibles inférieur au nombre de positions du G.723.1 (N<NP). C'est le cas notamment lorsque les positions du G.729 se suivent toutes (ex : {0,1 ,2,3}). On prévoit alors deux possibilités : - augmenter la taille du voisinage pour les sous-trames concernées jusqu'à obtenir une taille suffisante pour Ps (taille≥/Vp), - ou sélectionner les N premières impulsions et autoriser pour les Np-N impulsions restantes une recherche parmi les 30-N positions restantes de la grille, comme décrit ci-avant.However, certain precautions are taken in cases where the positions chosen by G.729 are such that the extraction of neighborhoods gives a number N of possible positions less than the number of positions of G.723.1 (N <N P ). This is particularly the case when the positions of G.729 follow each other (eg {0,1, 2,3}). Two possibilities are then foreseen: - to increase the size of the neighborhood for the subframes concerned until obtaining a sufficient size for P s (size≥ / V p ), - or to select the first N pulses and to allow for N p - N remaining pulses a search among the remaining 30-N positions of the grid, as described above.
On décrit maintenant le traitement inverse consistant à sélectionner un sous- ensemble du répertoire ACELP à 4 impulsions du G.729 à 8 kbit/s à partir d'éléments d'un répertoire MP-MLQ du G.723.1 à 6,3 kbit/s.The inverse process of selecting a subset of the ACELP repertoire of four 8 kbit / s G.729 pulses from elements in a 6.3 kbit G.723.1 MP-MLQ repertoire is now described. s.
Globalement, le traitement est similaire. Deux sous-trames de G.723.1 correspondent à 3 trames de G.729. Ici aussi, on extrait les positions du G.723.1 que l'on traduit dans l'échelle de temps du G.729. On pourra avantageusement traduire ces positions sous la forme "piste - rang dans la piste" afin de profiter comme précédemment de la structure ACELP pour extraire les voisinages et rechercher les positions optimales.Overall, the treatment is similar. Two subframes of G.723.1 correspond to 3 frames of G.729. Here too, we extract the positions of G.723.1 that we translate in the time scale of G.729. We can advantageously translate these positions in the form "track - rank in the track" to take advantage of the structure ACELP as previously to extract neighborhoods and search for optimal positions.
Les mêmes aménagements que précédemment sont prévus pour prévenir les cas où l'extraction des voisinages donnerait des positions en nombre insuffisant (ici moins de 4 positions).The same arrangements as previously are planned to prevent cases where the extraction of neighborhoods would give positions in insufficient number (here less than 4 positions).
Ainsi, la présente invention permet de déterminer à moindre coût les positions d'un jeu d'impulsions à partir d'un premier jeu d'impulsions, les deux jeux d'impulsions appartenant à deux répertoires multi-impulsionnels. Ces deux répertoires peuvent se distinguer par leur taille, la longueur et le nombre d'impulsions de leurs mots de codes ainsi que par les règles régissant les positions et/ou amplitudes des impulsions. On privilégie les voisinages des positions des impulsions du (ou des) jeu(x) choisi(s) dans le premier répertoire pour déterminer celles d'un jeu dans le deuxième répertoire. L'invention permet en plus d'exploiter la structure des répertoires de départ et/ou d'arrivée pour réduire davantage la complexité. A travers le premier exemple ci-avant présentant le passage d'un modèle MP-MLQ à un modèle ACELP, on comprendra que l'invention s'applique aisément à deux modèles multi- impulsionnels ayant des contraintes structurelles différentes. A travers le second exemple- de réalisation présentant le passage entre deux modèles- possédant un nombre d'impulsions différent mais basés sur la même structure ACELP, on comprendra que l'invention permet avantageusement l'exploitation de la structure des répertoires pour réduire la complexité de transcodage. A travers le troisième exemple présentant le passage entre un modèle MP-MLQ et un modèle ACELP, on comprendra que l'invention peut s'appliquer même pour des codeurs de longueurs de sous-trames ou de fréquences d'échantillonnage différentes. L'invention permet d'ajuster le compromis qualité/complexité et, en particulier, de réduire fortement la complexité de calcul pour une dégradation minime par rapport à une recherche classique d'un modèle multi-impulsionnel. Thus, the present invention makes it possible to determine at a lower cost the positions of a set of pulses from a first set of pulses, the two sets of pulses belonging to two multi-pulse repertoires. These two directories can be distinguished by their size, the length and the number of pulses of their codewords as well as by the rules governing the positions and / or amplitudes of the pulses. We favor the neighborhoods of the positions of the impulses of the (or) set (s) chosen (s) in the first directory to determine those of a game in the second directory. The invention also makes it possible to exploit the structure of the starting and / or arrival directories in order to further reduce the complexity. Through the first example above showing the transition from a MP-MLQ model to an ACELP model, it will be understood that the invention is easily applicable to two multi-pulse models having different structural constraints. Through the second exemplary embodiment having the passage between two models having a different number of pulses but based on the same ACELP structure, it will be understood that the invention advantageously makes it possible to use the structure of the directories to reduce the complexity. transcoding. Through the third example showing the passage between an MP-MLQ model and an ACELP model, it will be understood that the invention can be applied even for coders of different subframe lengths or sampling frequencies. The invention makes it possible to adjust the quality / complexity compromise and, in particular, to greatly reduce the computation complexity for a minimal degradation compared to a conventional search for a multi-pulse model.

Claims

Revendications claims
1. Procédé de transcodage entre un premier codeur/décodeur en compression et au moins un second codeur/décodeur en compression, lesdits premier et second codeurs/décodeurs étant de type impulsionnel et utilisant des dictionnaires multi-impulsionnels dans lesquels chaque impulsion comporte une position repérée par un indice associé, caractérisé en ce qu'il comporte les étapes suivantes : a) le cas échéant, adaptation de paramètres de codage entre lesdits premier et second codeurs/décodeurs, b) obtention, à partir du premier codeur/décodeur, d'un nombre choisi (Ne) de positions d'impulsions et d'indices de positions (βj) respectivement associés, c) pour chaque position d'impulsion courante d'indice donné, formation d'un groupe de positions d'impulsions comportant au moins la position d'impulsion courante et des positions d'impulsions d'indices associés immédiatement inférieurs et immédiatement supérieurs à l'indice donné, d) sélection, en fonction de positions d'impulsions (Tj) admises par le second codeur/décodeur, d'une partie au moins des positions d'impulsions dans un ensemble (Ps) constitué par une union desdits groupes formés à l'étape c), et e) transmission des positions d'impulsions ainsi sélectionnées au second codeur/décodeur, pour un codage/décodage à partir desdites positions transmises, ladite sélection de l'étape d) faisant alors intervenir un nombre de positions d'impulsions possibles inférieur au nombre total de positions d'impulsions possibles du dictionnaire du second codeur/décodeur.A transcoding method between a first encoder / decoder in compression and at least a second encoder / decoder in compression, said first and second encoders / decoders being of pulse type and using multi-pulse dictionaries in which each pulse comprises a marked position by an associated index, characterized in that it comprises the following steps: a) where appropriate, adaptation of coding parameters between said first and second coders / decoders, b) obtaining, from the first coder / decoder, a selected number (N e ) of respectively associated pulse positions and position indices (βj), c) for each given index current pulse position, forming a group of pulse positions comprising at least one minus the current pulse position and associated index pulse positions immediately below and immediately above the given index, d) selection, depending on positi pulses (Tj) admitted by the second encoder / decoder, at least a part of the pulse positions in a set (P s ) consisting of a union of said groups formed in step c), and e) transmitting the pulse positions thus selected to the second encoder / decoder, for encoding / decoding from said transmitted positions, said selection of step d) then involving a number of possible pulse positions less than the total number of positions possible pulses of the dictionary of the second coder / decoder.
2. Procédé selon la revendication 1 , dans lequel le premier codeur/décodeur (E) utilise, dans un premier format de codage, un premier nombre d'impulsions, caractérisé en ce que ledit nombre (Ne) choisi à l'étape b) correspond à ce premier nombre de positions d'impulsions. 2. Method according to claim 1, wherein the first coder / decoder (E) uses, in a first coding format, a first number of pulses, characterized in that said number (N e ) chosen in step b ) corresponds to this first number of pulse positions.
3. Procédé selon la revendication 2, dans lequel :The method of claim 2, wherein:
- le premier codeur/décodeur (E) utilise, dans un premier format de codage, un premier nombre (Ne) de positions d'impulsions, - le second codeur/décodeur (S) utilise, dans un second format de codage, un second nombre (Ns) de positions d'impulsions, caractérisé en ce qu'il comporte en- outre une étape consistant à discriminer au moins les cas où :the first coder / decoder (E) uses, in a first coding format, a first number (N e ) of pulse positions, the second coder / decoder (S) uses, in a second coding format, a second number (N s ) of pulse positions, characterized in that it further comprises a step of discriminating at least the cases where:
- le premier nombre (Ne) est supérieur ou égal au second nombre (Ns), - le premier nombre (Ne) est inférieur au second nombre (Ns).the first number (N e ) is greater than or equal to the second number (N s ), the first number (N e ) is less than the second number (N s ).
4. Procédé selon la revendication 3, dans lequel le premier nombre (Ne) est supérieur ou égal au second nombre (Ns) (Ne≥Ns), caractérisé en ce que chaque groupe formé à l'étape c) comporte des positions d'impulsions voisines de droite (v'd) et des positions d'impulsions voisines de gauche (v'g) de ladite position d'impulsion courante d'indice donné, et en ce que les nombres respectifs de positions d'impulsions voisines de gauche et de droite sont choisis en fonction d'un compromis en complexité et en qualité de transcodage.4. Method according to claim 3, wherein the first number (N e ) is greater than or equal to the second number (N s ) (N e ≥N s ), characterized in that each group formed in step c) comprises neighboring right pulse positions (v ' d ) and left neighbor pulse positions (v'g) of said given index current pulse position, and that the respective numbers of positions of neighboring left and right pulses are chosen according to a compromise in complexity and quality of transcoding.
5. Procédé selon la revendication 4, caractérisé en ce qu'à l'étape d), on construit un sous-répertoire de combinaisons de positions d'impulsions résultant des intersections (Sj) de :5. Method according to claim 4, characterized in that in step d), a subdirectory of combinations of pulse positions resulting from the intersections (Sj) of:
- l'ensemble (Ps) constitué par une union desdits groupes formés à l'étape c), etthe set (P s ) constituted by a union of said groups formed in step c), and
- des positions d'impulsions (Tj) admises par le second codeur/décodeur, de sorte que ledit sous-répertoire soit de taille inférieure au nombre de combinaisons de positions d'impulsions (Tj) admises par le second codeur/décodeur. - Pulse positions (Tj) allowed by the second encoder / decoder, so that said subdirectory is smaller than the number of combinations of pulse positions (T j ) allowed by the second encoder / decoder.
6. Procédé selon la revendication 5, caractérisé en ce que, après l'étape e), on recherche dans ledit sous-répertoire un jeu de positions optimal comportant ledit second nombre (Ns) de positions, au niveau du second codeur (S).6. Method according to claim 5, characterized in that, after step e), an optimal set of positions including said second number (N s ) of positions at the second encoder (S) is searched in said sub-directory. ).
7. Procédé selon la revendication 6, caractérisé en ce que l'étape de recherche du jeu de positions optimal est mise en œuvre par une recherche focalisée pour accélérer l'exploration dudit sous-répertoire.7. A method according to claim 6, characterized in that the optimal positions of game searching step is implemented by a search focused to accelerate the exploration of said subdirectory.
8. Procédé selon l'une des revendications précédentes, dans lequel ledit premier codeur/décodeur est agencé pour délivrer une succession de trames codées, caractérisé en ce que les nombres respectifs de positions d'impulsions dans les groupes formés à l'étape c) sont successivement choisis d'une trame à l'autre.8. Method according to one of the preceding claims, wherein said first coder / decoder is arranged to deliver a succession of coded frames, characterized in that the respective numbers of pulse positions in the groups formed in step c) are successively chosen from one frame to another.
9. Procédé selon la revendication 3, dans lequel le premier nombre (Ne) est inférieur au second nombre (Ns) (Ne<Ns), caractérisé en ce que l'on teste en outre si les positions d'impulsions prévues dans le second nombre de positions d'impulsions (Ns) se retrouvent parmi des positions d'impulsions des groupes formés à l'étape c), et, en cas de réponse négative à ce test, on augmente le nombre de positions d'impulsions dans les groupes formés à l'étape c).9. The method of claim 3, wherein the first number (N e ) is smaller than the second number (N s ) (N e <N s ), characterized in that it is further tested whether the pulse positions in the second number of pulse positions (N s ) are found among pulse positions of the groups formed in step c), and, in the case of a negative response to this test, the number of positions of pulses in the groups formed in step c).
10. Procédé selon la revendication 3, caractérisé en ce que l'on discrimine en outre le cas où le second nombre Ns est compris entre une et deux fois le premier nombre Ne (Ne<Ns<2Ne), et, dans ce cas : d) on sélectionne d'emblée les Ne positions d'impulsions, c2) et on sélectionne en outre un nombre complémentaire de positions d'impulsions Ns-Ne, définies dans le voisinage immédiat des positions d'impulsions sélectionnées à l'étape d). 10. Process according to claim 3, characterized in that the case where the second number N s is between one and twice the first number N e (N e <Ns <2N e ) is discriminated further, and in this case: d) the N e pulse positions, c 2) are selected from the outset and a complementary number of pulse positions N s -N e , defined in the immediate vicinity of the pulse positions, is further selected; selected in step d).
11. Procédé selon l'une des revendications précédentes, dans lequel ledit premier codeur/décodeur est agencé pour opérer avec une première fréquence d'échantillonnage donnée et à partir d'une première durée donnée de sous-trame, caractérisé en ce que lesdits paramètres de codage pour lesquels est réalisée ladite adaptation de l'étape a) comportent au moins une durée de sous-trame et une fréquence d'échantillonnage, tandis que le second codeur/décodeur opère avec une seconde fréquence d'échantillonnage et une seconde durée de sous-trame, et en ce que, à l'étape a), on discrimine les quatre cas suivants : - les première et seconde durées sont égales et les première et seconde fréquences sont égales, - les première et seconde durées sont égales et les première et seconde fréquences sont différentes, - les première et seconde durées sont différentes et les première et seconde fréquences sont égales, - les première et seconde durées sont différentes et les première et seconde fréquences sont différentes.11. Method according to one of the preceding claims, wherein said first encoder / decoder is arranged to operate with a given first sampling frequency and from a first given duration of subframe, characterized in that said parameters coding for which said adaptation of step a) is carried out comprise at least one subframe duration and a sampling frequency, while the second coder / decoder operates with a second sampling frequency and a second duration of sampling. subframe, and that, in step a), the following four cases are discriminated: the first and second durations are equal and the first and second frequencies are equal; the first and second durations are equal; first and second frequencies are different, - the first and second durations are different and the first and second frequencies are equal, - the first and second durations are di different and the first and second frequencies are different.
12. Procédé selon la revendication 11, dans lequel les première et seconde durées sont égales et les première et seconde fréquences d'échantillonnage sont différentes, caractérisé en ce qu'il comporte des étapes : ai) de quantification directe d'échelle temporelle de la première fréquence vers la seconde fréquence, a2) et de détermination, en fonction de ladite quantification, de chaque position d'impulsion dans une sous-trame au second format de codage caractérisé par la seconde fréquence d'échantillonnage, à partir d'une position d'impulsion dans une sous-trame au premier format de codage caractérisé par la première fréquence d'échantillonnage. 12. The method of claim 11, wherein the first and second durations are equal and the first and second sampling frequencies are different, characterized in that it comprises steps: a) direct quantization time scale of the first frequency to the second frequency, a2) and determining, according to said quantization, each pulse position in a subframe with the second encoding format characterized by the second sampling frequency, from a position pulse in a subframe with the first encoding format characterized by the first sampling frequency.
13. Procédé selon la revendication 12, caractérisé en ce que l'étape ai) de quantification s'effectue par calcul et/ou fabulation à partir d'une fonction qui, à une position d'impulsion dans une sous-trame au premier format (pe), fait correspondre une position d'impulsion dans une sous-trame au second format (ps), ladite fonction se présentant sensiblement comme une combinaison linéaire faisant intervenir un coefficient multiplicatif correspondant au rapport de la seconde fréquence d'échantillonnage sur la première fréquence d'échantillonnage.13. The method as claimed in claim 12, characterized in that the quantization step a1) is carried out by calculation and / or fabulation from a function which, at a pulse position in a subframe in the first format. (p e ), maps a pulse position in a subframe to the second format (p s ), said function being substantially a linear combination involving a multiplicative coefficient corresponding to the ratio of the second sampling frequency to the first sampling frequency.
14. Procédé selon la revendication 13, caractérisé en ce que, pour passer inversement d'une position d'impulsion dans une sous-trame au second format (ps) à une position d'impulsion dans une sous-trame au premier format (pe), on applique une fonction inverse de la ladite combinaison linéaire appliquée à une position d'impulsion dans une sous-trame au second format (ps).Method according to claim 13, characterized in that, to switch inversely from a pulse position in a second format sub-frame (p s ) to a pulse position in a first-format subframe ( p e ), an inverse function of said linear combination applied to a pulse position in a second format subframe (p s ) is applied.
15. Procédé selon la revendication 11, dans lequel les première et seconde durées sont égales et les première et seconde fréquences d'échantillonnage sont différentes, caractérisé en ce qu'il comporte les étapes suivantes : a'1) sur-échantillonner une sous-trame au premier format de codage caractérisé par la première fréquence d'échantillonnage, à une fréquence égale au plus petit commun multiple des première et seconde fréquences d'échantillonnage, et a'2) appliquer à la sous-trame sur-échantillonnée un filtrage passe-bas, suivi d'un sous-échantillonnage, pour atteindre une fréquence d'échantillonnage correspondant à la seconde fréquence d'échantillonnage.15. The method of claim 11, wherein the first and second durations are equal and the first and second sampling frequencies are different, characterized in that it comprises the following steps: a'1) oversampling a sub-sampling frame with the first coding format characterized by the first sampling frequency, at a frequency equal to the least common multiple of the first and second sampling frequencies, and a'2) applying to the oversampled sub-frame a pass filtering below, followed by subsampling, to reach a sampling frequency corresponding to the second sampling frequency.
16. Procédé selon la revendication 15, caractérisé en ce que le procédé se poursuit par l'obtention, par seuillage, d'un nombre de positions, le cas échéant, variable. 16. The method of claim 15, characterized in that the process continues by obtaining, by thresholding, a number of positions, if necessary, variable.
17. Procédé selon la revendication 12, caractérisé en ce qu'il comporte en outre une étape de mise en correspondance, pour chaque position (pe) d'une impulsion d'une sous-trame au premier format de codage caractérisé par la première fréquence d'échantillonnage, d'un groupe de positions d'impulsions (ps) dans une sous-trame au second format de codage caractérisé par la seconde fréquence d'échantillonnage, chaque groupe comportant un nombre de~ positions -qui- est fonction du- rapport entre la seconde- et la première fréquence d'échantillonnage (Fs/Fe).17. Method according to claim 12, characterized in that it further comprises a mapping step, for each position (p e ) of a pulse of a sub-frame to the first coding format characterized by the first sampling frequency, a group of pulse positions (p s ) in a subframe with the second encoding format characterized by the second sampling frequency, each group having a number of ~ positions -which is the ratio between the second and the first sampling frequency (F s / F e ).
18. Procédé selon la revendication 11, dans lequel les première et seconde durées de sous-trames sont différentes, caractérisé en ce qu'il comporte les étapes : a20) de définition d'une origine commune (O) aux sous-trames des premier et second formats, a21) de découpage des sous-trames successives du premier format de codage caractérisé par une première durée de sous-trame, pour former des pseudo-sous-trames de durées correspondantes à la durée de sous-trame du second format, a22) de mise à jour de ladite origine commune, a23) et d'une détermination de correspondance entre les positions d'impulsions dans les pseudo-sous-trames et dans les sous-trames au second format.18. The method of claim 11, wherein the first and second subframe times are different, characterized in that it comprises the steps: a20) of defining a common origin (O) to the subframes of the first and second formats, a21) of cutting the successive subframes of the first encoding format characterized by a first subframe duration, to form pseudo-subframes of durations corresponding to the subframe duration of the second format, a22) updating said common origin, a23) and a determination of correspondence between the pulse positions in the pseudo-subframes and in the sub-frames in the second format.
19. Procédé selon la revendication 18, caractérisé en ce que l'on discrimine en outre les cas suivants :19. Process according to claim 18, characterized in that the following cases are furthermore discriminated:
- les première et seconde durées sont fixes dans le temps, etthe first and second durations are fixed in time, and
- les première et seconde durées varient dans le temps.the first and second durations vary in time.
20. Procédé selon la revendication 19, dans lequel les première et seconde durées sont fixes dans le temps, caractérisé en ce que la position temporelle de ladite origine commune est remise périodiquement à jour à chaque instant où des frontières de sous-trames respectives de première et de seconde durée sont alignées dans le temps.The method of claim 19, wherein the first and second durations are time-fixed, characterized in that the time position of said common origin is periodically updated at each time when respective first and second time subframe boundaries are aligned in time.
21. Procédé selon la revendication 19, dans lequel les première et seconde durées varient dans le temps, caractérisé en ce que : a221) on effectue successivement deux sommations respectives des durées des sous-trames au premier format et des durées des sous-trames au second format, a222) on détecte une occurrence d'une égalité entre lesdites deux sommes, définissant un instant de remise à jour de ladite origine commune, a223) on réinitialise lesdites deux sommes, après ladite occurrence, pour une future détection d'une prochaine origine commune.21. The method of claim 19, wherein the first and second durations vary over time, characterized in that a221) successively performs two respective summations of the duration of the subframes to the first format and the duration of the subframes to second format, a222) detecting an occurrence of an equality between said two sums, defining an update time of said common origin, a223) resetting said two sums, after said occurrence, for a future detection of a next common origin.
22. 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.22. 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.
23. Dispositif de transcodage entre un premier codeur/décodeur en compression et au moins un second codeur/décodeur en compression, lesdits premier et second codeurs/décodeurs étant de type impulsionnel et utilisant des dictionnaires multi-impulsionnels dans lesquels chaque impulsion comporte une position repérée par un indice associé, caractérisé en ce qu'il comporte une mémoire propre à stocker des instructions d'un produit programme d'ordinateur selon la revendication 22. 23. Transcoding device between a first encoder / decoder in compression and at least a second encoder / decoder in compression, said first and second encoders / decoders being of impulse type and using multi-pulse dictionaries in which each pulse has a marked position by an associated index, characterized in that it comprises a memory adapted to store instructions of a computer program product according to claim 22.
EP04805537A 2003-12-10 2004-11-24 Transcoding between the indices of multipulse dictionaries used for coding in digital signal compression Not-in-force EP1692687B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PL04805537T PL1692687T3 (en) 2003-12-10 2004-11-24 Transcoding between the indices of multipulse dictionaries used for coding in digital signal compression

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0314489A FR2867648A1 (en) 2003-12-10 2003-12-10 TRANSCODING BETWEEN INDICES OF MULTI-IMPULSE DICTIONARIES USED IN COMPRESSION CODING OF DIGITAL SIGNALS
PCT/FR2004/003008 WO2005066936A1 (en) 2003-12-10 2004-11-24 Transcoding between the indices of multipulse dictionaries used for coding in digital signal compression

Publications (2)

Publication Number Publication Date
EP1692687A1 true EP1692687A1 (en) 2006-08-23
EP1692687B1 EP1692687B1 (en) 2008-03-19

Family

ID=34746280

Family Applications (1)

Application Number Title Priority Date Filing Date
EP04805537A Not-in-force EP1692687B1 (en) 2003-12-10 2004-11-24 Transcoding between the indices of multipulse dictionaries used for coding in digital signal compression

Country Status (12)

Country Link
US (1) US7574354B2 (en)
EP (1) EP1692687B1 (en)
JP (1) JP4970046B2 (en)
KR (1) KR101108637B1 (en)
CN (1) CN1890713B (en)
AT (1) ATE389933T1 (en)
DE (1) DE602004012600T2 (en)
ES (1) ES2303129T3 (en)
FR (1) FR2867648A1 (en)
MX (1) MXPA06006621A (en)
PL (1) PL1692687T3 (en)
WO (1) WO2005066936A1 (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2867649A1 (en) * 2003-12-10 2005-09-16 France Telecom OPTIMIZED MULTIPLE CODING METHOD
KR20070074546A (en) * 2004-08-31 2007-07-12 코닌클리케 필립스 일렉트로닉스 엔.브이. Method and device for transcoding
FR2880724A1 (en) * 2005-01-11 2006-07-14 France Telecom OPTIMIZED CODING METHOD AND DEVICE BETWEEN TWO LONG-TERM PREDICTION MODELS
US20060262851A1 (en) * 2005-05-19 2006-11-23 Celtro Ltd. Method and system for efficient transmission of communication traffic
KR100918377B1 (en) * 2006-05-30 2009-09-22 주식회사 메디슨 Method for compressing image
US8214200B2 (en) * 2007-03-14 2012-07-03 Xfrm, Inc. Fast MDCT (modified discrete cosine transform) approximation of a windowed sinusoid
ES2529292T3 (en) 2007-04-29 2015-02-18 Huawei Technologies Co., Ltd. Encoding and decoding method
CN101295506B (en) * 2007-04-29 2011-11-16 华为技术有限公司 Pulse coding and decoding method and device
EP2045800A1 (en) * 2007-10-05 2009-04-08 Nokia Siemens Networks Oy Method and apparatus for transcoding
CN101931414B (en) * 2009-06-19 2013-04-24 华为技术有限公司 Pulse coding method and device, and pulse decoding method and device
US8738679B2 (en) * 2009-07-03 2014-05-27 Stmicroelectronics International N.V. Offset-free sinc interpolator and related methods
CN102299760B (en) 2010-06-24 2014-03-12 华为技术有限公司 Pulse coding and decoding method and pulse codec
US8805697B2 (en) * 2010-10-25 2014-08-12 Qualcomm Incorporated Decomposition of music signals using basis functions with time-evolution information
CN102623012B (en) * 2011-01-26 2014-08-20 华为技术有限公司 Vector joint coding and decoding method, and codec
WO2013048171A2 (en) * 2011-09-28 2013-04-04 엘지전자 주식회사 Voice signal encoding method, voice signal decoding method, and apparatus using same
US8731081B2 (en) * 2011-12-07 2014-05-20 Motorola Mobility Llc Apparatus and method for combinatorial coding of signals
EP3579418A4 (en) * 2017-08-07 2020-06-10 Shenzhen Goodix Technology Co., Ltd. Vector quantization digital-to-analog conversion circuit for oversampling converter
CN114598558B (en) * 2022-03-28 2023-10-31 厦门亿联网络技术股份有限公司 Cascade self-repairing system and self-repairing method for audio equipment

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3109594B2 (en) * 1998-08-18 2000-11-20 日本電気株式会社 Mobile communication system and mobile terminal connection method
US6604070B1 (en) * 1999-09-22 2003-08-05 Conexant Systems, Inc. System of encoding and decoding speech signals
US7315815B1 (en) * 1999-09-22 2008-01-01 Microsoft Corporation LPC-harmonic vocoder with superframe structure
US7222070B1 (en) * 1999-09-22 2007-05-22 Texas Instruments Incorporated Hybrid speech coding and system
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
US6687668B2 (en) * 1999-12-31 2004-02-03 C & S Technology Co., Ltd. Method for improvement of G.723.1 processing time and speech quality and for reduction of bit rate in CELP vocoder and CELP vococer using the same
US6704703B2 (en) * 2000-02-04 2004-03-09 Scansoft, Inc. Recursively excited linear prediction speech coder
JP4231987B2 (en) * 2001-06-15 2009-03-04 日本電気株式会社 Code conversion method between speech coding / decoding systems, apparatus, program, and storage medium
US7272555B2 (en) * 2001-09-13 2007-09-18 Industrial Technology Research Institute Fine granularity scalability speech coding for multi-pulses CELP-based algorithm
US6829579B2 (en) * 2002-01-08 2004-12-07 Dilithium Networks, Inc. Transcoding method and system between CELP-based speech codes
JP2005515486A (en) * 2002-01-08 2005-05-26 ディリチウム ネットワークス ピーティーワイ リミテッド Transcoding scheme between speech codes by CELP
JP4304360B2 (en) 2002-05-22 2009-07-29 日本電気株式会社 Code conversion method and apparatus between speech coding and decoding methods and storage medium thereof
JP4238535B2 (en) * 2002-07-24 2009-03-18 日本電気株式会社 Code conversion method and apparatus between speech coding and decoding systems and storage medium thereof
RU2331933C2 (en) * 2002-10-11 2008-08-20 Нокиа Корпорейшн Methods and devices of source-guided broadband speech coding at variable bit rate
US7363218B2 (en) * 2002-10-25 2008-04-22 Dilithium Networks Pty. Ltd. Method and apparatus for fast CELP parameter mapping
US7523032B2 (en) * 2003-12-19 2009-04-21 Nokia Corporation Speech coding method, device, coding module, system and software program product for pre-processing the phase structure of a to be encoded speech signal to match the phase structure of the decoded signal
US7177804B2 (en) * 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
ES2303129T3 (en) 2008-08-01
ATE389933T1 (en) 2008-04-15
EP1692687B1 (en) 2008-03-19
CN1890713B (en) 2010-12-08
CN1890713A (en) 2007-01-03
PL1692687T3 (en) 2008-10-31
KR20060131781A (en) 2006-12-20
FR2867648A1 (en) 2005-09-16
DE602004012600T2 (en) 2009-04-30
WO2005066936A1 (en) 2005-07-21
JP2007515676A (en) 2007-06-14
MXPA06006621A (en) 2006-08-31
JP4970046B2 (en) 2012-07-04
US7574354B2 (en) 2009-08-11
DE602004012600D1 (en) 2008-04-30
KR101108637B1 (en) 2012-02-09
US20070124138A1 (en) 2007-05-31

Similar Documents

Publication Publication Date Title
EP1692687B1 (en) Transcoding between the indices of multipulse dictionaries used for coding in digital signal compression
EP2277172B1 (en) Concealment of transmission error in a digital signal in a hierarchical decoding structure
EP2104936B1 (en) Low-delay transform coding using weighting windows
WO2005083889A1 (en) Dimensional vector and variable resolution quantisation
WO2015197989A1 (en) Resampling of an audio signal by interpolation for low-delay encoding/decoding
EP1994531A2 (en) Improved coding/decoding of a digital audio signal, in celp technique
WO2005066938A1 (en) Optimized multiple coding method
EP1836699B1 (en) Method and device for carrying out optimized audio coding between two long-term prediction models
EP2080194B1 (en) Attenuation of overvoicing, in particular for generating an excitation at a decoder, in the absence of information
EP1037196B1 (en) Method for coding, decoding and transcoding an audio signal
EP2795618B1 (en) Method of detecting a predetermined frequency band in an audio data signal, detection device and computer program corresponding thereto
EP0906613A1 (en) Method and device for coding an audio signal by &#34;forward&#34; and &#34;backward&#34; lpc analysis
EP2769378A2 (en) Improved hierarchical coding
EP1197952B1 (en) Coding method of the prosody for a very low bit rate speech encoder
EP2652735B1 (en) Improved encoding of an improvement stage in a hierarchical encoder
EP1665234B1 (en) Information flow transmission method whereby said flow is inserted into a speech data flow, and parametric codec used to implement same
WO2011144863A1 (en) Encoding with noise shaping in a hierarchical encoder
FR2830970A1 (en) Telephone channel transmission speech signal error sample processing has errors identified and preceding/succeeding valid frames found/samples formed following speech signal period and part blocks forming synthesised frame.
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)
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

REF Corresponds to:

Ref document number: 602004012600

Country of ref document: DE

Date of ref document: 20080430

Kind code of ref document: P

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

Free format text: LANGUAGE OF EP DOCUMENT: FRENCH

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

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

REG Reference to a national code

Ref country code: ES

Ref legal event code: FG2A

Ref document number: 2303129

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

NLV1 Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents act
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: 20080319

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

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

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

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

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

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

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

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

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

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

26N No opposition filed

Effective date: 20081222

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

Ref country code: EE

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

Effective date: 20080319

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

BERE Be: lapsed

Owner name: FRANCE TELECOM S.A.

Effective date: 20081130

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

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

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

Ref country code: 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: 20080319

Ref country code: BE

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

Effective date: 20081130

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

Ref country code: CH

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

Effective date: 20081130

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

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

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

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

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

Payment date: 20151105

Year of fee payment: 12

Ref country code: IT

Payment date: 20151023

Year of fee payment: 12

Ref country code: GB

Payment date: 20151027

Year of fee payment: 12

Ref country code: DE

Payment date: 20151022

Year of fee payment: 12

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

Ref country code: PL

Payment date: 20151026

Year of fee payment: 12

Ref country code: ES

Payment date: 20151110

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

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

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

Effective date: 20161130

Ref country code: IT

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

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

Effective date: 20161124