WO2006075078A1 - Procede et dispositif de codage optimise entre deux modeles de prediction a long terme - Google Patents

Procede et dispositif de codage optimise entre deux modeles de prediction a long terme Download PDF

Info

Publication number
WO2006075078A1
WO2006075078A1 PCT/FR2006/000038 FR2006000038W WO2006075078A1 WO 2006075078 A1 WO2006075078 A1 WO 2006075078A1 FR 2006000038 W FR2006000038 W FR 2006000038W WO 2006075078 A1 WO2006075078 A1 WO 2006075078A1
Authority
WO
WIPO (PCT)
Prior art keywords
format
dictionary
coding
ltp
orders
Prior art date
Application number
PCT/FR2006/000038
Other languages
English (en)
Inventor
Mohamed Ghenania
Claude Lamblin
Original Assignee
France Telecom
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom filed Critical France Telecom
Priority to US11/795,085 priority Critical patent/US8670982B2/en
Priority to AT06709052T priority patent/ATE515019T1/de
Priority to EP06709052A priority patent/EP1836699B1/fr
Priority to CN200680003179XA priority patent/CN101124625B/zh
Publication of WO2006075078A1 publication Critical patent/WO2006075078A1/fr

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

Definitions

  • the present invention relates to the encoding / decoding in compression of digital audio signals, especially speech signals and / or multimedia signals, in particular for transmission or storage applications. More specifically, it aims at an efficient determination of the parameters of a second long-term prediction model (or "LTP" for
  • Long Term Prediction from the parameters of at least a first LTP prediction model.
  • Compression encoders use digital audio signal properties such as its local stationary, exploited by short-term prediction filters, as well as its harmonic structure, exploited by LTP long-term prediction filters.
  • speech-voiced sounds such as vowels
  • the long-term correlation is modeled by an LTP filter denoted by P (z) which makes it possible to restore the harmonic structure by using a synthesis filter of the type:
  • the delay T is also called “pitch” period, or simply "pitch”.
  • the filter parameters vary according to the signals to be coded and for the same signal over time.
  • the range of pitch periods seeks to cover the range of fundamental frequencies of the human voice (from low to high voices). For the same speaker, this frequency also varies temporally.
  • the coefficient (s) of the filter evolve (s) also in time.
  • the parameters of P (z) are determined either by an open-loop analysis or by a closed-loop analysis or most often by a combination of the two analyzes.
  • Open loop analysis is performed by minimizing the prediction error on the signal to be modeled.
  • Closed-loop analysis (known as "synthesis analysis") minimizes the squared error, usually weighted, between the voice signal to be modeled and the synthesis signal.
  • an open loop search is first provided to determine a first estimate of the pitch called "open loop pitch”. Then, a synthesis analysis search on a restricted neighborhood around this anchor value makes it possible to obtain a more precise value of the pitch.
  • These analyzes are performed on sample blocks. The lengths of the open and closed loop analysis blocks are not necessarily equal. Often, only one open-loop analysis is performed for multiple closed-loop analyzes.
  • the determination of the LTP parameters is very expensive in computational complexity. It usually consists of an open loop on a large block of samples followed by closed loops on several sub-sample blocks (also called sub-frames).
  • the open loop search of the harmonic delay is a very expensive operation, coding. Usually, it requires the calculation of a function of auto-correlation of the signal for many values (in fact on range of variation of the delays). In the ITU-T G.723.1 coder, this delay range has 125 integral delays (from 18 to 142) and the open loop delay is estimated every 15 ms (ie for blocks of 120 samples).
  • the closed loop analysis jointly determines the gain vector ( ⁇ ⁇ ) and a delay ⁇ (as a candidate pitch) of each subframe by exploring a dictionary of gain vectors for several candidate pitch values. This analysis accounts for nearly half of the total complexity of the 5.3 kbps G.723.1 encoder.
  • the complexity of the LTP analysis is particularly 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.
  • Several codings are then provided, either in cascade (or "transcoding") or in parallel (multi-format coding or multi-mode coding).
  • Transcoding is typically used when, in a transmission chain, a compressed signal frame transmitted by an encoder can not continue 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.
  • multi-format compression systems where the same content is compressed in several formats (typically in the case of content servers that broadcast the same content in several formats adapted to the access conditions, networks and terminals of the various end users) the multi-coding operation becomes extremely complex as the number of desired formats increases, which can quickly saturate the resources of the systems.
  • Another case of multiple-coding in parallel is the post-decision multi-mode compression according to which, at each signal segment to be coded, several modes of compression are executed and the mode which optimizes a given criterion or obtains the best compromise rate / distortion is selected.
  • 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.
  • Transcoding between two LTP monotap models is the simplest case. Most of the methods currently proposed concern the transcoding between delays, the transcoding of the LTP gain being done most often at the level of the signal itself (we speak of tandem "part!). When the two models are identical (same dictionary of delays and same length of subframe), a simple copy of the bit fields of the delays of a flow of bits towards the other is enough. When the dictionaries differ in their resolution (integer or fractional 1/3, 1/6, etc.) and / or their ranges of values, a transcoding in the binary domain or parameters, with a possible transformation, is used. The transformation can be quantization, truncation, doubling, or splitting.
  • an interpolation of the delays can be provided. For example, the delays of a first format covering an output subframe are interpolated. We can then use this interpolated delay only when it is close to the delay obtained at the previous subframe, otherwise a conventional search is conducted.
  • Another more direct method, without interpolation, is to select a delay among these delays of the first format. This selection can be made according to several criteria: last sub-frame, sub-frame having the most samples in common with the subframe of the second format or that which maximizes a criterion dependent on the LTP gain.
  • the determined delay is an anchor value for finding the delay of the second format.
  • the open loop delay of the second format can be used as the open loop delay of the second format around which a conventional or restricted closed-loop search is performed, or as a first estimate thereof, or as an anchoring of a delay trajectory.
  • a transcoding between a monotap LTP modeling and a multitap LTP modeling it is nowadays only expected to be implemented simply in the signal domain, because of the dissimilarity of the modelizations.
  • Most of the existing transcoding techniques are limited to reducing the complexity of the open loop of the second format by selecting as open loop delay one of the delays of the first format or an interpolation of these delays.
  • some techniques have been proposed to also reduce the complexity of the closed loop.
  • the fractional delay ⁇ 'of a monotap model is determined from the coefficient vector ( ⁇ ⁇ ) of a multitap model by calculating the expression:
  • This determination and the composition of the subsets are as follows: the overall gain of each vector of the earnings dictionary is calculated; then, from 170 global gains corresponding to the 170 vectors of the dictionary, 8 sub- sets are made and only one of these subsets is selected based on the LTP gain of the first single-ended model.
  • P mono (z) P mu i t i (z), for all the considered integer delays T.
  • this difficulty could be circumvented because the control procedure stability holds the maximum gain among the estimated gains (which can then be very dissimilar) and the adaptive pre-filter is inhibited for any multiptap model gains vector when, over the delay range considered, the estimated earnings are too different or the jigs on the delay are too dissimilar or too big. If, for the modules of adaptive pre-filtering and instability control of the long-term prediction filter, it is possible to circumvent the estimation difficulty without degrading the performances, these advantages are more difficult to achieve with the module of LTP analysis itself which plays a crucial role on the quality.
  • the 170 global gains calculated for each vector of the 170 entries of the dictionary can be very far from optimal gains.
  • the calculation of the fractional delay ⁇ 1 as seen in the prior art WO-03058407 above can lead to a poor determination of the fractional delay.
  • the present invention aims to switch from a LTP model to a single coefficient (monotap) to a multi-coefficient LTP model (multitap) and vice versa, as well as switching between two multitap LTP models.
  • it proposes a process whose complexity can be adjusted, in particular according to a desired compromise between a targeted complexity and a desired quality.
  • a device for implementing the method according to the invention is, moreover, very useful for multiple coding in cascade (transcoding) or in parallel (multi-coding and multi-mode coding).
  • the invention aims first of a coding method in a second format, from information obtained by the implementation of at least one coding step in a first format.
  • the first and second formats implement, in particular for the coding of a speech signal, a step of searching LTP long term prediction parameters by scanning at least one dictionary comprising candidate parameters, one of which least first and second coding format using a multi-coefficient filtering (called "multitap" above), for a fine search LTP parameters.
  • the method comprises the following steps: a) defining orders of at least one dictionary used by the second coding format, b) retrieving a priori information, obtained following the determination of the LTP parameters during coding according to the first format, to select at least one order of said dictionary, c) to apply the selected order to the candidates of said dictionary to select a limited number of first candidates, and d) to perform the second coding, to carry out LTP search only among said limited number of candidates.
  • the invention is thus distinguished from existing solutions by the definition of orders in the dictionary and the exploitation of these orders in the dictionary search procedure.
  • FIG. 1a diagrammatically represents an intelligent transcoding system using a coding device according to the second format in the sense of the invention
  • FIG. 1 b schematically represents a multiple coding system in parallel, using a coding device according to the second format in the sense of the invention
  • FIG. 2 illustrates the main steps of the process within the meaning of the invention
  • FIG. 3 diagrammatically represents the means implemented by a coding device in the sense of the invention
  • FIG. 4a showing a block diagram of a Code Excited Linear Prediction (CELP) coder
  • FIG. 4b schematically represents the steps of the LTP analysis of an encoder according to the ITU-T G.729 standard
  • FIG. 4c schematically represents the steps of the LTP analysis of an encoder according to the ITU-T G.723.1 standard (6.3 kbit / s),
  • FIG. 5a illustrates a correspondence between the frames of an encoder according to the ITU-T G.723.1 standard (30 ms) and the frames of an encoder according to the standard
  • FIG. 5b illustrates a correspondence between the sub-frames of the G.729 encoder (5 ms) and the sub-frames of the G.723.1 encoder (7.5 ms),
  • FIG. 6 illustrates the search of the open-loop pitch of the G.729 from the pitch values of the G.723.1
  • FIGS. 7a and 7b respectively illustrate the association between even (and odd) subframes of the G.729 coder and the LTP parameter set resulting from the G.723.1 coder as an encoder according to the first format
  • FIG. represents an array of G.723.1 subframes (right column CD) to G.729 subframes (left column CG)
  • FIGS. 9a and 9b show histograms of reduced exploration sizes (number of occurrences on the ordinate) in dictionaries (initially of 85 vectors for FIG. 9a and 170 vectors for FIG. 9b), and guaranteeing less than 1 % reduction in quality according to the CELP criterion
  • - Figure 10 schematically shows the selection of N elements of the second dictionary when several orders are formed in a particular embodiment.
  • the present invention is therefore part of the multiple coding in cascade or in parallel or in any other system using, to represent the long-term periodicity of a signal, a monotap or multitap type of modeling.
  • the invention makes it possible from the knowledge of the parameters of a first model to determine the parameters of a second model in the case where at least one of the two models uses multitap modeling.
  • m (m ⁇ ) first models to n (n). ⁇ 2) second models where m and n are absolutely arbitrary).
  • the first coder has performed its coding operation on a given signal (for example the original signal S 0 ). There are therefore LTP parameters, denoted LTP1, chosen by the first coder COD1. This coder has determined these parameters by a technique that is specific to it during the coding process.
  • the second coder COD2 must also perform its coding.
  • the second coder COD2 has only the bit stream BS1 generated by the first coder COD1 and then including the bit codes of the parameters LTP1.
  • the invention is here applicable to intelligent transcoding.
  • the second coder COD2 also has the original signal S 0 (or a derived version) available to the first coder COD1 and the invention applies here to intelligent multi-coding. It is indicated that the invention can also be applied to the case particular of the multiple coding in parallel which is the multi-mode coding with a posteriori decision.
  • the present invention relates to the determination of a parameter of a LTP model, denoted LTP2, from at least one LTP1 parameter of another LTP model, when at least one of the two models is a multitap model.
  • LTP2 a parameter of a LTP model
  • LTP1 parameter of another LTP model
  • the invention provides the following steps, with reference now to FIG.
  • At least one ORD (DIC2) command of the second format dictionary is selected (step 26); in step 27, an ordered succession is obtained; elements of the dictionary e 2 , ⁇ j 2 , ⁇ k 2 , ...,
  • step 29 advantageously limits the exploration to the first elements e 2 , ⁇ 2 of the dictionary DIC 2 thus ordered (step 29), this number of elements being preferably chosen according to the desired quality / complexity compromise (target quality / authorized complexity), a step 28.
  • the operations led respectively by the first coder COD1 and the second coder COD2, the latter having the dictionary DIC2 (reference 25), have been separated into two blocks 20 and 24.
  • the first coder COD1 determined the parameters LTP1, in step 21, using at least its dictionary DIC1 (step 22).
  • the parameters LTP2 obtained (step 30) by applying the dictionary classification of the second coder within the meaning of the invention can themselves be used for the classification of a dictionary according to a third coding format (not shown), where appropriate, and so on for cascading transcoding or multiple coding in parallel.
  • FIG. 2 is given here only for mainly didactic purposes.
  • the notation ⁇ j 2 , ⁇ j 2 , ⁇ k 2 , ... elements of the dictionary DIC2 is not really conventional, as will be seen later.
  • the classification of the DIC2 dictionary (step 25b) and the limitation of its elements to be taken into account for the search according to the quality / complexity criterion (step 28) can be conducted jointly substantially in one and the same step.
  • FIG. 2 shows a first coder COD1 delivering the prior information (step 23) to the second coder COD2.
  • the second coder COD2 can simply recover from the first coder COD1 the binary codes of the parameters LTP1 that the first coder has determined and retrieve this information a priori, thanks in particular to the knowledge of the type of coding and the dictionary used by the first encoder COD1.
  • FIG. 3 shows a coding device according to the second format, within the meaning of the invention.
  • This device is arranged to use coding information by implementing an encoding according to a first format (here the parameters LTP1 recovered from the coding according to the first format COD1).
  • the device within the meaning of the invention comprises, in the example shown:
  • a memory MEM storing a correspondence table defining, according to the parameters LTP1 determined by the first coding format, commands from a dictionary that the second coding format uses, means, such as an interface 31, for recovering a signal giving at least a prior information on parameters LTP1 during coding according to the first format,
  • means 32 active on receiving this signal to consult the correspondence table and select at least one order of the dictionary of the second format,
  • computing means such as a processor 35, for:
  • the processor 35 manages all or part of the modules of the device. For this purpose, it can be animated by a computer program product.
  • the present invention also aims at such a computer program product, stored in a memory of a processing unit or on a removable medium intended to cooperate with a reader of said processing unit or downloadable from a remote site, and comprising instructions for implementing all or part of the steps of the method according to the invention.
  • the device COD2 within the meaning of the invention, can directly recover the parameters LTP1 of the first coder COD1 in order to deduce the aforementioned information and, hence, the order of its dictionary DIC2, or, alternatively, receiving from the first coder COD1 directly the information a priori on the order of its dictionary, the first coder COD1. In the latter case, the first coder COD1 already plays a particular role in the invention.
  • the present invention also provides a system including the first encoder and the device within the meaning of the invention.
  • the device of FIG. inserted in a coding system implementing at least a first and a second coding format.
  • This system then comprises at least one coding device according to the first format COD1 and a coding device in the sense of the invention and then applying second format COD2.
  • the invention aims at such a system.
  • the first format encoding device and the second format encoding device may be cascaded for transcoding as shown in Fig. 1a.
  • the encoding device according to the first format and the coding device according to the second format can be put in parallel, for multiple coding, as represented in FIG. 1b.
  • the second coder COD2 can recover from the first coder COD1 (when the latter has determined the parameters LTP1) information that will enable it to order its dictionary DIC2 (see FIG. 2). . Then, a search LTP only among the first elements (e 2 , ef) DIC2 dictionary so ordered will maintain a good quality of the second coding.
  • the exploitation of the orders of the second dictionary DIC2 offers great flexibility on the number of ordered elements to be explored. It is then possible: - to freely adjust the quality / complexity compromise,
  • This adjustment can be made at the beginning of treatment. It can also be performed at each block to be processed according to parameters of the first coding format and / or the characteristics of the signal to be coded (for example, according to a voicing criterion). For the same block, the complexity may also vary depending on the LTP subframes.
  • the invention offers a great flexibility which makes it possible to dynamically distribute the computing power available between the modules of the second encoder and / or the resources for processing the LTP subframes.
  • the dictionary DIC1 associated with a parameter of the first LTP model that orders DIC2 dictionary associated with a parameter of the second model LTP are determined. It is indicated that the determination of an order consists in classifying the elements of the second dictionary DIC2 according to a certain criterion. A ranking (or "order") is given by indexing the elements of the dictionary DIC2.
  • a first example is the elementary partition of a dictionary DIC1 of N elements in N disjoint classes of size 1.
  • N orders of the second dictionary are then determined.
  • More sophisticated partitions may be chosen, in particular by techniques known per se of quantization (vector or scalar) or of classification of the data.
  • vector or scalar vector or scalar
  • the procedures for determining the partition of the first dictionary in N classes and calculating the N commands of the second dictionary can be iterated, the number N being able to vary during the iterations.
  • a maximum number of elements to be retained is chosen, this number being able to differ according to the orders and / or classes of the first dictionary.
  • the classes of the first dictionary are not necessarily disjoined.
  • the same element can be associated with more than one order of the second dictionary. Choice of order or combination orders can then take into account factors other than the current LTP parameter of the first dictionary.
  • the number of orders and the orders that are appropriate in the second dictionary are determined by a statistical and / or analytical study, as a function of successive sets of LTP parameters according to the first model.
  • This study defines, for each class of the partition of the dictionary associated with a LTP parameter of the first format, a classification of the dictionary of a parameter of the second format.
  • a statistical study was carried out on an off-line bench by associating in the same coder the LTP model of the first format and the LTP model of the second format. Paralleling the two LTP analyzes was the preferred learning configuration. Of course, other configurations may be used, including a conventional tandem cascading the two encodings.
  • the statistical study ensures, for each element of the first dictionary (or each class of its partition), a classification of the elements of the second dictionary according to a certain criterion.
  • this criterion evaluates the impact on the quality of the returned signal.
  • the quality criterion can be that used in the coding to select the second parameter LTP.
  • other criteria can be used, in particular the solicitation of an element of the second dictionary for a class of the first dictionary.
  • a combination of criteria can also be used.
  • An analytical study can also be performed to determine orders of the second dictionary based on a partition of the first dictionary.
  • the analytical study complements the statistical study described above. It is preferentially limited to dictionary parts that lead to satisfactory analytical approximations.
  • an LTP parameter of the second coding format is now described from the LTP parameters according to the first coding format.
  • the partition of a first dictionary is preferably exploited and the commands of the second dictionary which are associated with this partition of the first dictionary.
  • each current subframe of the second coding format corresponds to a single sub-frame of the first coding format.
  • the first coding format has selected a set of parameters LTP (called "first set LTP1"). Thanks to the partition of the dictionary associated with one of the LTP parameters of the first model, a search order of the second dictionary is selected by choosing the order associated with the class of the element of the first set LTP1. Then, the second dictionary is explored according to the order thus determined.
  • the number of elements tested is restricted. In general, we will remember that among all the elements of the second dictionary, only the first elements determined by the order that has been chosen are tested.
  • the two coding formats When the two coding formats have LTP subframes of different durations, it happens that a current subframe of the second format may correspond to more than one subframe of the first format.
  • This situation is illustrated in Figure 5b, by way of example.
  • the first coding format selected sets of LTP parameters. Thanks to the partition of the dictionary associated with one of the LTP parameters of the first model, it is possible to preselect exploration orders of the second dictionary by choosing the orders associated with the classes of the elements of the first games. It may be that only one order is finally selected if the parameters chosen for the first subframes belong to the same class of the partition of the first dictionary. However, this is a special case. We are then brought back to the previous diagram corresponding to LTP subframes of identical duration. If, on the contrary, more than one order has been preselected, only one order (for example the most preselected order) may be retained, or the one which corresponds to the sub-frame of the first format which covers the plus the current subframe of the second format.
  • K orders have been selected, we first examine the first element of each K orders, eliminating any redundancies. Ki elements (Ki ⁇ K) are obtained. Then, we add K 2 elements, such as K 2 ⁇ K and l ⁇ 2 ⁇ NKi, chosen from the set consisting of the second element of K orders (by eliminating any redundancies), and so on until we obtain N elements, N being the maximum number of elements of the second dictionary to be tested. This selection of N elements ⁇
  • N elements retained in the set ENS can be chosen for example according to the maximum complexity allowed. In this ranking, it is also possible to focus on the items most often ranked among the first.
  • the choice of Ni is such that ⁇ T Ni> N and makes it possible to treat the rankings fairly or, on the contrary, to favor certain rankings. Then, we select all the elements present in the K subsets, then the elements present in K-1 subsets and so on until we retain N elements. If N elements have not been so obtained, the number of elements is completed by, for example, successively taking the following elements in the K subsets.
  • the second dictionary is preferably explored according to a "dynamic" order thus determined.
  • This dynamic ordering procedure from predetermined and stored orders can also be applied when the classes of the partition are not disjoint and an element of the first dictionary belongs to more than one class.
  • Three cases of transition from a first LTP model to a second LTP model are described below, illustrating the application of the invention to different models and types of LTP parameters.
  • the examples are given only for a first and a second dictionary, the invention is easily generalized to more than a first and / or second dictionary. * Case of the transition from a monotap model to a multitap model
  • the parameters of the monotap model of a COD1 format are available and it is sought to determine at a lower cost of calculation and / or resources those of the multitap model of a COD2 format.
  • the coder COD 1 determined the pair ( ⁇ e , ⁇ e) of parameters of the LTP monotap filter.
  • the coding of a COD2 subframe requires the determination of ( ⁇ s , (/? I) s ) (where i is a gain index) of LTP multitap filter parameters.
  • the parameter set of the first model is therefore ( ⁇ e , ⁇ e ) -
  • the set of parameters of the second model is ( ⁇ s , ( ⁇ j ) s) -
  • the determination of the delay ⁇ s is done by one of the known methods of the state of the art. For example, it is possible to use the intelligent transcoding method which directly determines this delay ⁇ s by choosing as delay, the one determined by COD1 on its sub-frame which shares the most samples with the current COD2 subframe. (if ⁇ e is delayed fractional, we take its integer part or the nearest integer). This situation will be described later with reference in particular to FIGS. 7a and 7b.
  • the gain vector ( ⁇ ⁇ ) s for each COD2 subframe is determined from at least one of the gains ⁇ e of the COD1 subframes.
  • the first dictionary here the dictionary of the scalar gains ⁇ e .
  • orders of the second dictionary associated with this partition are determined. These orders correspond here to all the vectors of gains ( ⁇ ⁇ ) s . From the scalar LTP gains ⁇ e chosen by the first COD1 format for its subframes corresponding to a current COD2 subframe, the orders of the second dictionary associated with the classes of these scalar gains are preselected.
  • the optimal gain vector of a multitap LTP filter of a second coding format is thus determined from at least one gain of a monotap LTP filter of a first format, significantly reducing the exploration complexity of the second dictionary of gain vectors and limiting the number of gain vectors to be tested.
  • the solution according to the invention makes it possible to adjust the exploration of the dictionary by according to the quality sought and complexity constraints. It will be understood that the invention involves more the different orders of the dictionary of vectors of gains than predefined and fixed subsets as in the aforementioned reference.
  • the steps outlined above can be applied to the focus of the closed-loop search in the two G.723.1 gain vector dictionaries from the LTP gains of the G.729 encoder.
  • the set of parameters of the first model is therefore written ( ⁇ e , (A) e) (where i is a gain index), while the set of parameters of the second model is written ( ⁇ s ./? S) - From at least one set of parameters selected by the first coder COD1, it is sought to obtain a delay ⁇ s and a gain ⁇ s for the format COD2.
  • a partition of the first dictionary which is, in this case, that of the vectors of gains ( ⁇ ⁇ ) e .
  • orders of the second dictionary associated with the partition of the first dictionary are then determined.
  • the second dictionary consists of all the jitter values ( ⁇ - ⁇ e s) - From gains vectors ( ⁇ ⁇ ) e selected by the first COD1 format, for its subframes which correspond to the current COD2 subframe, the second dictionary commands associated with the classes of these gain vectors are preselected. Then, only one of these orders can be retained, or an order can be dynamically constituted. Finally, the "neighborhood" values thus determined around one or more anchoring delays ⁇ ' s are explored. The determination of the anchoring delay (s) is made by a method known in the state of the art.
  • the present invention therefore proposes an original solution making it possible to reduce the complexity of the determination of the delay ⁇ s by reducing the number of tested delay values of a monotap LTP model of a second coding format based on the knowledge of the parameters. of a multitap LTP model of a first coding format.
  • Most of the methods of the prior art only use the delay without exploiting the vector of gains.
  • the two types of parameters are used here. Nevertheless, contrary to the teaching of this last reference, a vector of gains points to a set of several jitter values and not to a single value as in this reference. According to one of the advantages afforded by the invention, the problems associated with the approximation of a multitap LTP filter by a single monotap filter are thus overcome.
  • the ordered neighborhoods are intervals of increasing size. This measurement is particularly advantageous for focusing the search in open loop and / or closed.
  • An exemplary embodiment will be described below, relating to the closed-loop search of the LTP delay of the 8 kbit / s ITU-T G.729 encoder from the LTP parameters of the ITU-T G.723.1 6.3 kbit coder. / s.
  • the set of parameters of the first model is therefore written ( ⁇ e, (/ ?,) e) -
  • the set of parameters of the second model is also written ( ⁇ s , ⁇ ; ) s ) - From at least a set of parameters selected by the first format COD1, one seeks to obtain a delay ⁇ s and a vector of gains (#) s for the second format COD2.
  • the determination of the delay ⁇ s from at least one delay ⁇ e is made by a method known from the state of the art.
  • the implementation of the present invention makes it possible here to determine with a low complexity the vector of gains ( ⁇ ⁇ ) s for each subframe of the second format COD2 from at least one vector of gains ( ⁇ ⁇ ) th subframes of the first COD1 format.
  • a partition of the first dictionary has been performed, which is in this case that of the gain vectors ( ⁇ i) e .
  • the orders of the second dictionary (here the one of the gain vectors ( ⁇ ⁇ ) s ) which are associated with this partition are then determined.
  • the commands of the second dictionary associated with the classes of these gain vectors are preselected . Then, only one of these orders can be retained, or an order can be dynamically and evolutionarily constituted. Finally, the first earnings vectors determined by this order are tested to select the best one.
  • ITU-T G.723.1 for the first two, and a bit rate change within a multi-bit encoder (ITU-T G.723.1) for the latter.
  • ITU-T G.723.1 A description of these two ITU-T coders is first given as well as their LTP modelings.
  • the synthesis model is used to extract the parameters modeling the signals to be coded.
  • the compression ratio varies from 1 to 16 so that these encoders operate at rates of 2 to 16 kbit / s in the telephone band, and at rates of 6 to 32 kbit / s. enlarged band.
  • the coding and digital decoding device of CELP type, synthesis analysis coder most currently used for the coding of the speech signals, is presented on the 4a.
  • the speech signal S 0 is sampled and converted into a series of blocks of (L 1 ) 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 fixed excitation 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.
  • a LTR (Long Term Prediction) analysis is used to evaluate the parameters of this long-term predictor that exploits the frequency of voiced sounds.This predictor is equivalent to a dictionary storing the past excitation for different delays. called “adaptive excitation dictionary”
  • the second filter is the short-term prediction filter
  • LPC Linear Prediction Coding
  • the speech signal S 0 undergoes the LPC analysis 41 (not represented in detail), as well as an LTP analysis with a repertoire construction.
  • fixed excitations 46 and adaptive excitations 45 for supplying the synthesis filter 44.
  • a perceptual weighting module 42 and an error minimization module 43 are also provided.
  • the method used to determine the innovation sequence is therefore 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 that producing the closest synthetic signal of the original signal according to a criterion.
  • perceptual weighting commonly known as the CELP criterion.
  • the ITU-T G.729 coder operates on a 3.4 kHz band-limited speech signal sampled at 8 kHz and cut into 10 ms frames (ie 80 samples per frame). Each frame is divided into two sub-frames (numbered hereinafter 0 and 1) of 40 samples (5 ms).
  • the LTP model of the ITU-T G.729 encoder is based on fractional resolution monotap modeling. At each frame, the LTP analysis determines a delay ⁇ ⁇ and a gain ⁇ ⁇ for each subframe.
  • Figure 4b shows the main steps. At each frame, an open-loop delay search, denoted ⁇ OL, is performed in the value range [20; 143] (step 401).
  • the delay of the first sub-frame is searched in a closed loop around the open-loop delay ⁇ OL on the range [ ⁇ OL-3; ⁇ O L + 3] (step 402). So using the synthesis analysis, the delay ⁇ o of the even subframe is determined with
  • the delay ⁇ i of the second sub-frame is determined with a fractional resolution of 1/3 by synthesis analysis around ⁇ o over the range [int ( ⁇ o) -52/3; int ( ⁇ 0 ) +4 2/3 ].
  • int ( ⁇ o) being the integer part of the possibly fractional delay A 0 (step 404).
  • the gain ⁇ is calculated once the determined closed-loop delay (steps 403 and 405). After searching for the fixed excitation, the gain ⁇ is quantized together with the gain of the fixed excitation by a seven-bit vector quantization.
  • the definition set (or dictionary) of the G.729 monotap LTP gain is therefore 128.
  • the ITU-T G.723.1 coder operates on a 3.4 kHz band-limited speech signal sampled at 8 kHz and cut into 30 ms frames (240 samples per frame). Each frame has 4 subframes of 7.5 ms (60 samples) grouped 2 by 2 in super subframes of 15 ms (120 samples).
  • the ITU-T G.723.1 coder uses multitap 5-order modeling.
  • the long-term predictor coefficients are vector quantized using two dictionaries previously stored at 85 or 170 inputs for the 6.3 kbit / s mode, while the 5.3 kbit / s mode uses only the 170-input dictionary. In the 6.3 kbit / s mode, the choice of the explored dictionary depends on the delay value of the even subframes.
  • Figure 4c illustrates the main steps of the LTP analysis of the G.723.1 encoder.
  • two open loop LTP analyzes once per super subframe
  • two closed loop LTPs one for each subframe
  • the delays ⁇ a of even subframes (subframes 0 and 2) are searched in closed loop around the corresponding delay ⁇ 'OL over the range [ ⁇ 'OL-1; ⁇ 'OL + 1] -
  • the earnings vector dictionary is also explored by synthetic analysis (step 411).
  • a similar search joint search of the gain vector and the closed loop delay
  • the search for a delay ⁇ 2 ⁇ + i in a loop closed is limited to the vicinity of the closed-loop delay of the previous sub-frame [ ⁇ 2i -1; ⁇ 2 ⁇ + 2] (step 412).
  • a G.723.1 coding frame corresponds to three G.729 coding frames. It thus appears that the subframes of G.729 do not coincide with those of G.723.1, but on the contrary the seconds (7.5 ms) overlap the first ones (5 ms).
  • Figure 5b shows a frame of the G723.1 coding and three G.729 coding frames and their respective subframes. The subframes of the G.723.1 frame are numbered from 0 to 3. The three G.729 frames are grouped and their subframes are numbered from 0 to 5.
  • the delay is taken equal to the integer part of that of the sub-frames 1 and 4 of G.729.
  • a closed loop is performed around the previous delay (even sub-frame). This closed loop can be identical to that of G.723.1, but can also be restricted according to the desired complexity, or even eliminated to keep then the same value of delay on the two even and odd subframes.
  • the delay has been determined, it is still necessary to determine a vector of 5 gains in the vector dictionary of 5 coefficients selected by the G.723.1 coder.
  • the implementation of the present invention makes it possible to restrict the exploration to a limited number of gain vectors determined from the monotap LTP gains of the G.729 coder subframes.
  • Each subframe of G.723.1 covers (at least partially) two subframes of G.729.
  • Each of these two gains is associated with a ranking C (gi) of the vectors of the multitap coefficient vector dictionary. This dictionary is selected by the delay value of the even subframe of G.723.1.
  • the selection criterion is the CELP criterion conventionally used by G.723.1 for exploring the dictionaries of vectors with LTP coefficients.
  • the solution exposed here allows a very strong reduction in the complexity of LTP analysis of G.723.1 coding without compromising quality.
  • FIGS. 9a and 9b show, for the two dictionaries, the histogram of the exploration sizes which guarantee a loss on the CELP criterion strictly less than 1% compared to a complete exploration. . It is noted that the exploration sizes (on the abscissa) are much smaller than the total size of the dictionary.
  • the average size is 39 for the dictionary with 85 vectors and 49 for the dictionary with 170 vectors.
  • the statistical study shows, even for average exploration sizes, well below the dictionary sizes (48 instead of 85 and 58 instead of 170), that the restricted exploration is optimal according to the CELP criterion (practically no loss on the CELP criterion). Focused research can therefore lead to performance equivalent to exhaustive search while exploring just over half of the size 85 dictionary and one third of the 170 dictionary.
  • Second Embodiment Determination of 8 kbit / s G.729 Monotap LTP Parameters from 6.3 kbps G.723.1 Multitap LTP Parameters
  • each of the three G.729 frames first adopts for delay in open loop the delay of one of the subframes of the G.723.1 encoder.
  • the correspondence between G.729 frames and G.723.1 subframe is illustrated in Figure 6.
  • the delay chosen by the G.723.1 encoder may be outside the range of values allowed by the G.729 encoder. Indeed, the smallest value allowed by the G.729 encoder is 19 while it is 18 for the G.723.1 encoder.
  • Several solutions are possible to work around this problem. Typically, one can for example double the delay from the G.723.1 coder, or more simply add 1.
  • the standard closed-loop search of the G.729 encoder first consists in successively testing all the integer values of the range (7 values for A 0 and 10 for ⁇ i). Once the best integer value has been selected, the different fractions (-2/3, -1/3, 1/3, 2/3) are tested to determine the best one according to the chosen criterion, in this case the one that maximizes the criterion CELP. For the even subframe, note that the fractional part is only searched if the integer part of ⁇ o is less than 85.
  • the first dictionary (in the definition of the invention given above) is one of the two LTP gain vector dictionaries of the G.723.1 coder, the second dictionary being one of two sets of integer values of neighborhood (or jitter) around an anchoring delay. It will be understood that the invention can easily be applied to more than one first dictionary, on the one hand, and more than one second dictionary, on the other hand.
  • each G.729 subframe is associated with one or two G.723.1 subframes.
  • the neighborhood values of ⁇ ' are ranked in order of decreasing importance. The number of values tested is then determined according to the targeted complexity or the quality / complexity ratio.
  • the anchor value ⁇ ' may be different from the delay A 1 of the set of parameters ( ⁇ j, (/? ⁇ ) j) determined for the associated sub-frame G.723.1. This point is explained later where we take into account the parity of the subframes (even or odd). In a first Alternatively, one can simply ignore a possible difference.
  • the set of ordered neighborhoods is modified as a function of the difference ( ⁇ r ⁇ ') and the size of this set is possibly modified. Preferentially, subtract the difference ( ⁇ j- ⁇ 1 ) from each element of this ordered neighborhood according to the gains (/? I) j and consider its intersection with the set of definition of neighborhoods (here the interval [-3; 3] for even subframes and the interval [-5.4] for odd subframes, as discussed below.
  • the strategy can therefore be adapted to the subframe or the gap between the delays, or to the two criteria combined.
  • the search must be performed around the open-loop delay ⁇ O ⁇ _ on the range [ ⁇ OL-3; ⁇ OL + 3].
  • the gain vector (s) chosen by the G.723.1 encoder orders of all 7 jitter values (-3, -2, -1, 0, 1, 2, 3) are determined.
  • subframe 0 (respectively 2) of the G.729 encoder, there is only one subframe of the associated G.723.1 and therefore only one gain vector and, thus, a single order.
  • two sub-frames of the G.723.1 coder are associated with the sub-frame 4 of the G.729 coder, as shown in FIG. 7a.
  • the delay ⁇ ⁇ of the set of parameters ( ⁇ j > (/? Oj) of (or of) associated G.723.1 subframes may be different of this anchor value ⁇ ' 2p
  • the vector (s) ( ⁇ ⁇ ) ⁇ of gains chosen by the G.723.1 encoder orders of all the 10 jitter values are preselected and modified according to the difference ( ⁇ j- ⁇ '2 P ) - Let N (N ⁇ 10) be the maximum allowed number of tested values.
  • the total search range is [ ⁇ 'o- ⁇ zi, AO + ⁇ m] - Two orders corresponding to the gain vectors ⁇ ) Q and (/? J) i are preselected. Then ordered neighborhoods are modified according to the differences ( ⁇ o- ⁇ 'o) and ( ⁇ -i- ⁇ 'o). These two differences are limited because:
  • the G.729 closed-loop delay ⁇ ' o is in the neighborhood (in the range [-3.3]) of the open-loop delay (here, taken equal to ⁇ Q corresponding to the delay in closed loop of G.723.1),
  • the difference between the closed-loop delays of an even sub-frame and the next odd sub-field is limited because the difference ( ⁇ -i- ⁇ o) is in the interval [-1, 2].
  • the total search range is [ ⁇ ' 2 -52/3; ⁇ '2 + 4 2/3 ].
  • An order corresponding to the vector of gains ( ⁇ ⁇ ) 2 is selected.
  • the ordered neighborhood is modified according to the difference [A 2 -X 2 ).
  • the difference between ⁇ 2 and K 2 can be large and the intersection of the ordered neighborhood, modified by subtracting ( ⁇ 2- ⁇ 2), can be zero.
  • the search is made over the entire range [ ⁇ 'i-5 2/3 ; ⁇ 'i + 42/3] -
  • the use of ordered neighborhoods can also be conditioned by a threshold on ⁇ ⁇ 2 - ⁇ ' 2 ⁇ . For example, neighborhoods are restricted only if ⁇ ⁇ 2 - ⁇ ' 2 ⁇ ⁇ 2>; otherwise the whole range [-5.4] is explored. The choice of this variant can also depend on the authorized complexity.
  • the total search range is [ ⁇ '4-52 / 3; ⁇ 4 + 4 2/3 ].
  • An order corresponding to the vector of gains ( ⁇ fo is selected, then the ordered neighborhood is modified according to the difference ( ⁇ 3 - ⁇ 4 ), as in the case of subfield 1, this difference is limited.
  • the closed-loop delay of G.729, ⁇ ' 2 is in the neighborhood ([-3.3]) of the open-loop delay (here taken as the closed-loop delay ⁇ 3 of G.723.1).
  • explores the first N values of the modified ordered set The solution presented here allows a very strong reduction in the complexity of the LTP analysis of G.729 coding, compared to the exploration of complete neighborhoods. test only 60% (respectively 40%) of the neighborhood values if the gain vector of the G.723.1 encoder is in the dictionary with 170 entries (respectively 85 entries).
  • the delay of the even subframes can be used as the open loop delay of the super subframe and then restricted. the variation range of the closed loop delay of the mode to
  • each 5.3 kbit / s subframe adopts for delay that the 6.3 kbit / s mode has chosen for the same subframe.
  • the gain vector that maximizes a criterion is then selected as described above.

Abstract

L'invention concerne un procédé de codage selon un second format, à partir d'informations obtenues par la mise en œuvre d'un codage selon un premier format. Ces premier et second formats utilisent, notamment pour le codage d'un signal de parole, une recherche de paramètres de prédiction à long terme LTP par exploration d'un dictionnaire comportant des paramètres candidats. Le procédé comporte les étapes suivantes : a) définir (25b) des ordres d'un dictionnaire (25) qu'utilise le second format de codage, b) récupérer (23) une information a priori, obtenue suite à la détermination des paramètres LTP au cours du codage selon le premier format, pour sélectionner (26) un ordre dudit dictionnaire, c) appliquer (27) l'ordre sélectionné aux candidats dudit dictionnaire pour choisir (29) un nombre limité de premiers candidats, et d) pour effectuer le second codage, mener la recherche LTP uniquement parmi ledit nombre limité de candidats (30).

Description

Procédé et dispositif de codage optimisé entre deux modèles de prédiction à long terme
La présente invention concerne le codage/décodage en compression de signaux audionumériques, notamment de signaux de parole et/ou de signaux multimédias, notamment pour des applications de transmission ou de stockage. Elle vise plus particulièrement une détermination efficace des paramètres d'un second modèle de prédiction à long terme (ou "LTP" pour
"Long Term Prédiction"), à partir des paramètres d'au moins un premier modèle de prédiction LTP.
Les codeurs en compression utilisent des propriétés du signal audionumérique telles que sa stationnante locale, exploitée par des filtres de prédiction à court terme, ainsi que sa structure harmonique, exploitée par des filtres de prédiction à long terme LTP. Typiquement, les sons voisés d'un signal de parole (tels que les voyelles) présentent une corrélation à long terme due à la vibration des cordes; vocales. La corrélation à long terme est modélisée par un filtre LTP noté P(z) qui permet de restituer la structure harmonique en utilisant un filtre de synthèse du type :
HLT(z) = - l
I -P(z) La forme la plus simple du filtre de prédiction à long terme est le filtre P(z) à un seul coefficient β (appelé aussi gain) et à retard entier T tel que P(z) = βz . Le retard T est aussi appelé période de "pitch", ou plus simplement "pitch".
Actuellement, des modélisations plus élaborées visent :
- une modélisation à plusieurs coefficients (dite "multitap") : P(z) = ^ β i
O1.z -T- Z
=-k k - ou encore une modélisation à retards multiples : P(z) = ∑βiZ~iτ ,
J=I - ou encore une modélisation à retard fractionnaire qui utilise des sur et sous
2/-1 échantillonnages avec des filtres d'interpolation : P(z) = /?^jp/(?)z"(r"/+') ,
(=0 où pour un retard (T + 11 D) , de résolution 1/D, les coefficients p{î) sont donnés par P1(I) = hinter(iD -I), O≤l≤D-l , hMBr étant un filtre d'interpolation de longueur 2ID + 1 .
Les paramètres du filtre (retard et gain(s)) varient selon les signaux à coder et pour un même signal au cours du temps. Par exemple, en codage de parole, la plage des périodes de pitch cherche à couvrir la gamme des fréquences fondamentales de la voix humaine (des voix graves aux voix aiguës). Pour un même locuteur, cette fréquence varie aussi temporellement. De même, le(s) coefficient(s) du filtre évolue(nt) aussi dans le temps.
Au codage, les paramètres de P(z) sont déterminés soit par une analyse en boucle ouverte soit par une analyse en boucle fermée ou le plus souvent par une combinaison des deux analyses. L'analyse en boucle ouverte est effectuée en minimisant l'erreur de prédiction sur le signal à modéliser. L'analyse en boucle fermée (dite "analyse par synthèse") minimise l'erreur quadratique, habituellement pondérée, entre le signal vocal à modéliser et le signal de synthèse. Habituellement, une recherche en boucle ouverte est d'abord prévue afin de déterminer une première estimation du pitch appelée "pitch en boucle ouverte". Puis, une recherche à analyse par synthèse sur un voisinage restreint autour de cette valeur d'ancrage permet d'obtenir une valeur plus précise du pitch. Ces analyses sont effectuées sur des blocs d'échantillons. Les longueurs des blocs d'analyse en boucle ouverte et fermée ne sont pas nécessairement égales. Souvent, une seule analyse en boucle ouverte est effectuée pour plusieurs analyses en boucle fermée.
Pour tout modèle LTP (monotap ou multitap), la détermination des paramètres LTP est très coûteuse en complexité de calcul. Elle est généralement constituée d'une boucle ouverte sur un grand bloc d'échantillons suivie de boucles fermées sur plusieurs sous-blocs d'échantillons (appelés aussi sous-trames). En particulier, la recherche en boucle ouverte du délai harmonique est une opération très coûteuse, au codage. Habituellement, elle nécessite le calcul d'une fonction d'auto-corrélation du signal pour de nombreuses valeurs (en fait sur plage de variation des retards). Dans le codeur selon la norme UIT-T G.723.1 , cette plage de retards comporte 125 retards entiers (de 18 à 142) et le retard en boucle ouverte est estimé toutes les 15 ms (soit donc pour des blocs de 120 échantillons). Dans le codeur selon la norme UIT-T G.729 à 8 kbit/s, l'analyse en boucle ouverte est effectuée toutes les 10 ms (à chaque bloc de 80 échantillons) et explore une plage de 124 retards entiers (de 20 à 143). Cette opération constitue près de 70% de la complexité de l'analyse LTP pour ce type de codage.
Même si elle est focalisée autour du retard obtenu en boucle ouverte, la boucle fermée est aussi extrêmement coûteuse en calculs et, par conséquent, en ressources. Elle nécessite la génération d'excitations adaptatives et leur filtrage. Par exemple, dans le codage G.723.1 qui utilise un modèle LTP multitap, l'analyse en boucle fermée détermine conjointement le vecteur de gains (β\) et un délai λ (en tant que pitch candidat) de chaque sous-trame en explorant un dictionnaire de vecteurs de gains pour plusieurs valeurs de pitch candidates. Cette analyse constitue près de la moitié de la complexité totale du codeur G.723.1 à 5,3 kbit/s.
La complexité de l'analyse LTP est particulièrement 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. Il est alors prévu plusieurs codages, soit en cascade (ou "transcodage"), soit en parallèle (codage multi-format ou codage multi-mode). Le transcodage est typiquement utilisé 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, arrivant sous un premier format, est décompressée. Ce signal décompressé est alors re-compressé 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". Néanmoins, cette solution est très coûteuse en complexité (essentiellement à cause du recodage) et dégrade la qualité, le second codage se faisant en effet 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, ce qui accroît encore le coût en calcul et la perte de qualité. En outre, les retards liés à chaque opération de tandem s'accumulent et peuvent nuire à l'interactivité des communications.
Quant aux systèmes de compression multi-format où un même contenu est compressé sous plusieurs formats (typiquement dans le cas de serveurs de contenus qui diffusent un même contenu sous plusieurs formats adaptés aux conditions d'accès, de réseaux et terminaux des différents utilisateurs finaux), l'opération de multi-codage devient extrêmement complexe à mesure qu'augmente le nombre de formats désirés, ce qui peut rapidement saturer les ressources des systèmes. Un autre cas de codage multiple en parallèle est la compression multi-mode à décision a posteriori selon laquelle, à chaque segment de signal à coder, plusieurs modes de compression sont exécutés et le mode 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.
Actuellement, la plupart des opérations de codage multiple ne prennent pas encore pleinement en compte les similitudes entre formats de codages, ce qui pourrait pourtant réduire la complexité et le retard algorithmique tout en limitant la dégradation apportée. Pour un même paramètre de format de codage, les différences entre codeurs résident dans la modélisation, la méthode et/ou la fréquence de calcul, ou encore la quantification. De manière générale, les solutions proposées aujourd'hui s'attachent à limiter le nombre de valeurs explorées pour les paramètres d'un second modèle LTP en utilisant les paramètres choisis par le premier format, pour réduire la complexité de la recherche LTP du deuxième format.
Le transcodage entre deux modèles LTP monotap est le cas le plus simple. La plupart des méthodes actuellement proposées concernent le transcodage entre retards, le transcodage du gain LTP étant effectué le plus souvent au niveau du signal-même (on parle de tandem "partie!"). Lorsque les deux modèles sont identiques (même dictionnaire de retards et même longueur de sous-trame), une simple recopie des champs binaires des retards d'un flux de bits vers l'autre suffit. Lorsque les dictionnaires diffèrent par leur résolution (entière ou fractionnaire 1/3, 1/6, etc) et/ou par leurs plages de valeurs, un transcodage dans le domaine binaire ou des paramètres, avec une transformation éventuelle, est utilisé. La transformation peut être une quantification, une troncature, un doublement ou un dédoublement. Lorsque les longueurs de sous-trames des deux formats sont différentes, on peut prévoir une interpolation des retards. Par exemple, les retards d'un premier format recouvrant une sous-trame de sortie sont interpolés. On peut alors n'utiliser ce retard interpolé que lorsque celui-ci est proche du retard obtenu à la sous-trame précédente, sinon une recherche classique est menée. Une autre méthode plus directe, sans interpolation, consiste à sélectionner un retard parmi ces retards du premier format. Cette sélection peut être effectuée selon plusieurs critères : dernière sous-trame, sous-trame ayant le plus d'échantillons en commun avec la sous-trame du second format ou encore celle qui maximise un critère dépendant du gain LTP. Le retard déterminé est une valeur d'ancrage pour la recherche du retard du deuxième format. Il peut être utilisé comme retard en boucle ouverte du second format autour duquel est effectué une recherche en boucle fermée classique ou restreinte, ou comme une première estimation de celui-ci, ou comme ancrage d'une trajectoire de retard. Dans le cas d'un transcodage entre une modélisation LTP monotap et une modélisation LTP multitap, on ne prévoit aujourd'hui qu'une mise en œuvre simplement dans le domaine signal, du fait de la dissemblance des modélisations. La plupart des techniques de transcodage existantes se limitent à réduire la complexité de la boucle ouverte du second format en sélectionnant comme retard en boucle ouverte l'un des retards du premier format ou une interpolation de ces retards. Toutefois, quelques techniques ont été proposées pour réduire aussi la complexité de la boucle fermée.
Dans le document WO-03058407, le retard fractionnaire Λ' d'un modèle monotap est déterminé à partir du vecteur de coefficients (β\) d'un modèle multitap en calculant l'expression :
Σ Jβ]
2 J=-2
Dans le document référencé [1] :
"An Efficient Transcoding Algorithm For G.723.1 And G.729A Speech Coders", Sung-Wan Yoon, Sung-Kyo Jung, Young-Cheol Park, and Dae-Hee Youn, Proc. Eurospeech 2001, pp.2499-2502, la recherche en boucle fermée du vecteur de gains d'un modèle multitap est restreinte à un sous-ensemble du dictionnaire des gains multitap, déterminé par le gain du modèle monotap du premier format. Cette détermination, ainsi que la composition des sous-ensembles s'effectuent comme suit : le gain global de chaque vecteur du dictionnaire de gains est calculé; puis, à partir de 170 gains globaux correspondant aux 170 vecteurs du dictionnaire, 8 sous- ensembles sont constitués et un seul de ces sous-ensembles est sélectionné en fonction du gain LTP du premier modèle monotap.
Dans une variante selon le document référencé [2] :
"Transcoding algorithm for G723.1 and AMR speech Coders: for interoperability between VoIP and Mobile Networks", Sung-Wan Yoon and al., Proc. Eurospeech 2003, pp. 1101-1104, les sous-ensembles sont composés par apprentissage comme suit : la plage de variation du gain monotap d'un codeur NB-AMR est divisée en 8 sous- sections, puis, pour chaque sous-section, une étude statistique sur un tandem NB-AMR permet de déterminer M vecteurs de gains des dictionnaires d'un codeur selon la norme G.723.1. Ces vecteurs de gain sont statistiquement les plus probables. Le nombre M est pris égal à 40 pour le dictionnaire comportant 85 vecteurs et à 85 pour le dictionnaire comportant 170 vecteurs. Lors de la recherche du vecteur de gains optimal, l'exploration du dictionnaire est limitée au sous-ensemble associé à la sous-section à laquelle appartient le gain du codeur NB-AMR.
A la connaissance des inventeurs, il n'existe aujourd'hui aucune technique de transcodage entre deux modélisations LTP multitap. Comme on l'a vu ci-avant, la plupart des solutions actuelles ne concernent que les modèles LTP monotap. Certaines techniques proposent un transcodage entre un modèle multitap et un modèle monotap mais se limitent à réduire la complexité de la recherche du retard en boucle ouverte du second format.
Parmi les quelques approches proposées pour réduire la complexité de la boucle fermée, certaines sont basées sur une approximation d'un filtre LTP multitap par un filtre LTP monotap (fractionnaire ou non). Par exemple, dans le cas d'une approximation d'un filtre multitap : k
-T-i
Pmulti(z) = ∑βiz i≈-k par un filtre monotap non fractionnaire Pmono(z) = βz ^τ δ\
on estime un gain β et une gigue S de retard tels que :
Pmono(z) = Pmuiti(z) , pour tous les retards entiers T considérés.
L'approximation d'un modèle LTP multitap par un modèle LTP monotap est déjà exploitée depuis la norme UIT-T G.723.1 , en fait pour estimer le préfiltre adaptatif et aussi pour contrôler l'instabilité du filtre LTP. Les études menées pendant la conception du codeur selon la norme G.723.1 ont montré qu'il n'est pas toujours possible d'approximer de manière satisfaisante un filtre LTP multitap par un filtre LTP monotap, sur une large plage de retards, avec un même gain β et une même gigue δ sur le retard. Pour un même vecteur de gains (βt), l'estimation du couple optimal (β , δ ) peut varier fortement en fonction du retard T. Dans le codeur selon G.723.1 , cette difficulté a pu être contournée car la procédure de contrôle de stabilité retient le gain maximum parmi les gains estimés (qui peuvent être alors très dissemblables) et le pré- filtre adaptatif est inhibé pour tout vecteur de gains du modèle multiptap lorsque, sur la plage de retards considérée, les gains estimés sont trop différents ou les gigues sur le retard sont trop dissemblables ou trop grandes. Si, pour les modules de pré-filtrage adaptatif et de contrôle d'instabilité du filtre de prédiction à long terme, il est possible de contourner la difficulté d'estimation sans dégrader les performances, ces avantages sont plus difficilement atteignables avec le module d'analyse LTP lui-même qui joue un rôle crucial sur la qualité. Ainsi, selon le vecteur de gains et/ou le retard considérés, les 170 gains globaux calculés pour chaque vecteur des 170 entrées du dictionnaire, comme vu dans l'art antérieur ci-avant [1], peuvent être très éloignés des gains optimaux. De même, selon le vecteur de gains (βt) et/ou le retard λ, le calcul du retard fractionnaire λ\ comme vu dans l'art antérieur WO-03058407 ci-avant, peut conduire à une mauvaise détermination du retard fractionnaire. Que l'approche soit analytique ou statistique, l'approximation, sur une large gamme de retards, d'un filtre LTP multitap par un seul filtre LTP monotap (ou l'approximation inverse) est trop imprécise. Pour résoudre ce problème, on pourrait, pour tenir compte de la variation du gain β et/ou du la gigue δ selon le retard T, stocker pour chaque retard T un couple {β ,δ ). Cependant, cette solution serait trop coûteuse en stockage puisqu'elle nécessiterait, pour chaque vecteur de gain et pour chaque retard de la plage, de stocker un couple. Dans le cas de l'approximation des filtres LTP multitap du codeur G.723.1 qui comporte deux dictionnaires multitap de 170 et 85 vecteurs, avec une plage de 125 retards, il faudrait stocker 31875 (=125*(170+85)) couples. De plus, cette solution ne résoudrait pas les cas où l'approximation d'un multitap par un monotap est vraiment trop imprécise, voire erronée. On notera qu'à l'inverse, plusieurs couples (β ,δ ) peuvent aussi constituer de bonnes approximations d'un filtre LTP multitap. La présente invention vient améliorer la situation.
Tout d'abord, la présente invention vise le passage d'un modèle LTP à un seul coefficient (monotap) vers un modèle LTP à plusieurs coefficients (multitap) et inversement, ainsi que le passage entre deux modèles LTP multitap. En particulier, elle propose un procédé dont la complexité peut être ajustée, notamment en fonction d'un compromis désiré entre une complexité visée et une qualité souhaitée. Un dispositif pour la mise en œuvre du procédé selon l'invention est, en outre, très utile pour les codages multiples en cascade (transcodages) ou en parallèle (multi-codages et codages multi-mode).
Ainsi, l'invention vise d'abord un procédé de codage selon un second format, à partir d'informations obtenues par la mise en œuvre d'au moins une étape de codage selon un premier format. Les premier et second formats mettent en œuvre, notamment pour le codage d'un signal de parole, une étape de recherche de paramètres de prédiction à long terme LTP par exploration d'au moins un dictionnaire comportant des paramètres candidats, l'un au moins des premier et second format de codage utilisant un filtrage à plusieurs coefficients (dit "multitap" ci-avant), pour une recherche fine des paramètres LTP.
Selon une définition générale de l'invention, le procédé comporte les étapes suivantes : a) définir des ordres d'au moins un dictionnaire qu'utilise le second format de codage, b) récupérer une information a priori, obtenue suite à la détermination des paramètres LTP au cours du codage selon le premier format, pour sélectionner au moins un ordre dudit dictionnaire, c) appliquer l'ordre sélectionné aux candidats dudit dictionnaire pour choisir un nombre limité de premiers candidats, et d) pour effectuer le second codage, mener la recherche LTP uniquement parmi ledit nombre limité de candidats. L'invention se distingue donc des solutions existantes par la définition d'ordres dans le dictionnaire et l'exploitation de ces ordres dans la procédure d'exploration du dictionnaire.
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 :
- la figure 1a représente schématiquement un système de transcodage intelligent utilisant un dispositif de codage selon le second format au sens de l'invention,
- la figure 1 b représente schématiquement un système de codage multiple en parallèle, utilisant un dispositif de codage selon le second format au sens de l'invention,
- la figure 2 illustre les étapes principales du procédé au sens de l'invention, - la figure 3 représente schématiquement les moyens mis en œuvre par un dispositif de codage au sens de l'invention,
- la figure 4a représentant un schéma de principe d'un codeur CELP (pour "Code Excited Linear Prédiction"), - la figure 4b représente schématiquement les étapes de l'analyse LTP d'un codeur selon la norme UIT-T G.729,
- la figure 4c représente schématiquement les étapes de l'analyse LTP d'un codeur selon la norme UIT-T G.723.1 (6,3 kbit/s),
- la figure 5a illustre une correspondance entre les trames d'un codeur selon la norme UIT-T G.723.1 (30 ms) et les trames d'un codeur selon la norme
UIT-T G.729 (10 ms),
- la figure 5b illustre une correspondance entre les sous-trames du codeur G.729 (5 ms) et les sous-trames du codeur G.723.1 (7,5 ms),
- la figure 6 illustre la recherche du pitch en boucle ouverte du G.729 à partir des valeurs de pitch du G.723.1 ,
- les figures 7a et 7b illustrent respectivement l'association entre sous- trames paires (respectivement impaires) du codeur G.729 et le jeu de paramètres LTP issu du codeur G.723.1 en tant que codeur selon le premier format, - la figure 8 représente un tableau d'association des sous-trames du G.723.1 (colonne de droite CD) aux sous-trames du G.729 (colonne de gauche CG),
- les figures 9a et 9b représentent des histogrammes de tailles d'exploration réduites (nombre d'occurrences en ordonnée) dans des dictionnaires (initialement de 85 vecteurs pour la figure 9a et de 170 vecteurs pour la figure 9b), et garantissant moins de 1% de réduction de qualité selon le critère CELP, et - la figure 10 représente schématiquement la sélection de N éléments du second dictionnaire quand plusieurs ordres sont constitués, dans une réalisation particulière.
La présente invention s'inscrit donc dans le cadre du codage multiple en cascade ou en parallèle ou dans tout autre système utilisant, pour représenter la périodicité à long terme d'un signal, une modélisation de type monotap ou multitap. L'invention permet à partir de la connaissance des paramètres d'un premier modèle de déterminer les paramètres d'un second modèle dans le cas où au moins l'un des deux modèles utilise une modélisation multitap. Par souci de concision, seul le cas d'un passage d'un premier modèle vers un second est décrit mais on comprendra que l'invention s'applique aussi dans le cas de passage de m (m^) premiers modèles vers n (n ≥2) seconds modèles (où m et n sont absolument quelconques). En référence aux figures 1a et 1b, on considère donc le cas de deux modélisations LTP d'un signal correspondant à deux systèmes de codage COD1 et COD2. Il peut s'agir d'un passage du premier système de codage COD1 au second système de codage COD2, en cascade notamment par transcodage intelligent (figure 1a), ou en parallèle notamment en optimisant le codage multiple (figure 1b). Le premier codeur a effectué son opération de codage sur un signal donné (par exemple le signal original S0). On dispose donc des paramètres LTP, notés LTP1 , choisis par le premier codeur COD1. Ce codeur a déterminé ces paramètres par une technique qui lui est propre lors du processus de codage. Le second codeur COD2 doit réaliser lui aussi son codage. Dans le cas du transcodage, le second codeur COD2 ne dispose que du train binaire BS1 généré par le premier codeur COD1 et incluant alors les codes binaires des paramètres LTP1. L'invention est donc ici applicable au transcodage intelligent. Dans le cas du codage multiple en parallèle, le second codeur COD2 dispose aussi du signal d'origine S0 (ou d'une version dérivée) dont dispose le premier codeur COD1 et l'invention s'applique ici au multi- codage intelligent. On indique que 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 porte sur la détermination d'un paramètre d'un modèle LTP, noté LTP2, à partir d'au moins un paramètre LTP1 d'un autre modèle LTP, quand l'un au moins des deux modèles est un modèle multitap. Au lieu de rechercher le paramètre du second format de codage dans son ensemble de définition (ou "dictionnaire"), l'invention prévoit les étapes suivantes, en se référant maintenant à la figure 2 :
- dans le dictionnaire DIC2 du second format de codage (portant la référence 25 sur la figure 2), on détermine initialement des ordres ORD1 , ORD2, ...,
ORDN (étape 25b de la figure 2),
- à partir de l'un au moins des paramètres LTP1 du premier format de codage, on sélectionne au moins un ordre ORD(DIC2) du dictionnaire du second format (étape 26), - à l'étape 27, on obtient une succession ordonnée des éléments du dictionnaire e2, βj2, βk 2, ...,
- on limite avantageusement l'exploration aux premiers éléments e2, βj2 du dictionnaire DIC2 ainsi ordonné (étape 29), ce nombre d'éléments étant de préférence choisi selon le compromis qualité/complexité voulu (qualité visée/complexité autorisée), à une étape 28.
Ainsi, on comprendra que l'on peut limiter, par la mise en œuvre de l'invention, le nombre d'éléments du second dictionnaire DIC2 sur lequel la recherche LTP va porter pendant le second codage COD2, tout en assurant une bonne qualité du codage COD2. Sur la figure 2, on a séparé en deux blocs 20 et 24 les opérations menées respectivement par le premier codeur COD1 et le second codeur COD2, ce dernier disposant du dictionnaire DIC2 (référence 25). De son côté, le premier codeur COD1 a déterminé les paramètres LTP1 , à l'étape 21 , en utilisant au moins son dictionnaire DIC1 (étape 22). On comprendra alors que la manière dont le premier codeur COD1 a déterminé ses paramètres LTP1 , typiquement à partir du signal d'origine S0, constitue une information a priori (étape 23) qui peut être utilisée par le second codeur pour ordonner son dictionnaire DIC2. Finalement, les paramètres LTP2 obtenus (étape 30) en appliquant la classification du dictionnaire du second codeur au sens de l'invention, pourront eux-mêmes servir à la classification d'un dictionnaire selon encore un troisième format de codage (non représenté), le cas échéant, et ainsi de suite pour un transcodage en cascade ou un codage multiple en parallèle.
On notera que la figure 2 n'est donnée ici qu'à des fins principalement didactiques. Par exemple, la notation βj2, βj2, βk 2, ... des éléments du dictionnaire DIC2 n'est pas réellement conventionnelle, comme on le verra plus loin. Par ailleurs, la classification du dictionnaire DIC2 (étape 25b) et la limitation de ses éléments à prendre en compte pour la recherche en fonction du critère qualité/complexité (étape 28) peuvent être menées conjointement sensiblement en une même étape. Enfin, on a représenté sur la figure 2 un premier codeur COD1 délivrant les informations a priori (étape 23) au second codeur COD2. Néanmoins, en variante, le second codeur COD2 peut simplement récupérer du premier codeur COD1 les codes binaires des paramètres LTP1 que le premier codeur a déterminé et retrouver ces informations a priori grâce notamment à la connaissance du type de codage et du dictionnaire utilisé par le premier codeur COD1.
On a représenté sur la figure 3 un dispositif de codage selon le second format, au sens de l'invention. Ce dispositif est agencé pour utiliser des informations de codage par la mise en œuvre d'un codage selon un premier format (ici les paramètres LTP1 récupérés du codage selon le premier format COD1). Le dispositif au sens de l'invention comporte, dans l'exemple représenté :
- une mémoire MEM stockant une table de correspondance définissant, en fonction des paramètres LTP1 déterminés par le premier format de codage, des ordres d'un dictionnaire qu'utilise le second format de codage, - des moyens, tels qu'une interface 31 , pour récupérer un signal donnant au moins une information a priori sur des paramètres LTP1 au cours d'un codage selon le premier format,
- des moyens 32 actifs sur réception de ce signal pour consulter la table de correspondance et sélectionner au moins un ordre du dictionnaire du second format,
- des moyens de calcul, tel qu'un processeur 35, pour :
• ordonner le dictionnaire 33 du second format selon l'ordre sélectionné, en vue de choisir un nombre limité de premiers candidats dans le dictionnaire 33, et
• poursuivre le codage selon le second format, avec d'autres modules 34 le cas échéant, en menant la recherche LTP uniquement parmi ce nombre limité de candidats.
Bien entendu, le processeur 35 gère tout ou partie des modules du dispositif. A cet effet, il peut être animé par un produit programme d'ordinateur.
La présente invention vise d'ailleurs un tel produit programme d'ordinateur, stocké dans une mémoire d'une unité de traitement ou sur un support amovible destiné à coopérer avec un lecteur de ladite unité de traitement ou téléchargeable d'un site distant, et comportant des instructions pour la mise en œuvre de tout ou partie des étapes du procédé selon l'invention.
On comprendra en particulier que le dispositif COD2, au sens de l'invention, peut directement récupérer les paramètres LTP1 du premier codeur COD1 pour en déduire l'information a priori précitée et, de là, l'ordre de son dictionnaire DIC2, ou, en variante recevoir du premier codeur COD1 directement les informations a priori sur l'ordre de son dictionnaire, du premier codeur COD1. Dans ce dernier cas, le premier codeur COD1 joue déjà un rôle particulier dans l'invention.
La présente invention vise aussi un système incluant le premier codeur et le dispositif au sens de l'invention. En effet, le dispositif de la figure 3 peut être inséré dans un système de codage mettant en œuvre au moins un premier et un second format de codage. Ce système comporte alors au moins un dispositif de codage selon le premier format COD1 et un dispositif de codage au sens de l'invention et appliquant alors second format COD2. A ce titre, l'invention vise un tel système. Le dispositif de codage selon le premier format et le dispositif de codage selon le second format peuvent être mis en cascade, pour un transcodage, comme représenté sur la figure 1a. En variante, le dispositif de codage selon le premier format et le dispositif de codage selon le second format peuvent être mis en parallèle, pour un codage multiple, comme représenté sur la figure 1 b.
Dans la mise en œuvre de l'invention, on retiendra que le second codeur COD2 peut récupérer du premier codeur COD1 (lorsque ce dernier a déterminé les paramètres LTP1) des informations qui vont lui permettre d'ordonner son dictionnaire DIC2 (voir figure 2). Ensuite, une recherche LTP uniquement parmi les premiers éléments (e2, ef) du dictionnaire DIC2 ainsi ordonné permettra de conserver une bonne qualité du second codage.
Avantageusement, l'exploitation des ordres du second dictionnaire DIC2 offre une grande flexibilité sur le nombre d'éléments ordonnés à explorer. Il est alors possible : - d'ajuster librement le compromis qualité/complexité,
- ou encore, pour une complexité donnée, optimiser la qualité,
- ou, inversement, minimiser la complexité pour une qualité donnée.
Cet ajustement peut être effectué au début du traitement. Il peut aussi être effectué à chaque bloc à traiter en fonction de paramètres du premier format de codage et/ou des caractéristiques du signal à coder (par exemple, en fonction d'un critère de voisement). Pour un même bloc, la complexité peut aussi varier en fonction des sous-trames LTP. L'invention offre une grande flexibilité qui permet de répartir dynamiquement la puissance de calcul disponible entre les modules du second codeur et/ou les ressources pour traiter les sous-trames LTP.
Préférentiellement, c'est à partir d'une partition initiale du dictionnaire DIC1 associé à un paramètre du premier modèle LTP que l'on détermine des ordres du dictionnaire DIC2 associé à un paramètre du second modèle LTP. On indique que la détermination d'un ordre consiste à classer les éléments du second dictionnaire DIC2 selon un certain critère. Un classement (ou "ordre") est donné par une indexation des éléments du dictionnaire DIC2.
Plusieurs types de partition du premier dictionnaire DIC1 peuvent être prévus. Un premier exemple est la partition élémentaire d'un dictionnaire DIC1 de N éléments en N classes disjointes de taille 1. N ordres du deuxième dictionnaire sont alors déterminés. Des partitions plus élaborées peuvent être choisies, notamment par des techniques connues en soi de quantification (vectorielle ou scalaire) ou de classification des données. Avantageusement, il est possible de regrouper des ordres similaires, ce qui revient à modifier la partition initiale du premier dictionnaire et, en conséquence, le nombre d'ordres du deuxième dictionnaire. On peut aussi recalculer les ordres une fois qu'ils ont été regroupés. Les procédures de détermination de la partition du premier dictionnaire en N classes et de calcul des N ordres du second dictionnaire peuvent être itérées, le nombre N pouvant d'ailleurs varier au cours des itérations. En variante ou en complément, pour limiter la mémoire nécessaire au stockage des ordres du second dictionnaire, pour chacun de ces ordres, un nombre maximal d'éléments à retenir est choisi, ce nombre pouvant différer selon les ordres et/ou les classes du premier dictionnaire.
Dans une variante encore, les classes du premier dictionnaire ne sont pas forcément disjointes. Typiquement, un même élément peut être associé à plus d'un ordre du second dictionnaire. Le choix de l'ordre ou la combinaison des ordres peut alors prendre en compte d'autres facteurs que le paramètre LTP courant du premier dictionnaire.
Initialement, le nombre d'ordres et les ordres qui conviennent dans le second dictionnaire sont déterminés par une étude statistique et/ou analytique, en fonction de jeux successifs de paramètres LTP selon le premier modèle. Cette étude définit donc, pour chaque classe de la partition du dictionnaire associé à un paramètre LTP du premier format, un classement du dictionnaire d'un paramètre du second format. Une étude statistique a été réalisée sur un banc hors ligne en associant dans un même codeur le modèle LTP du premier format et le modèle LTP du deuxième format. La mise en parallèle des deux analyses LTP a été la configuration préférée d'apprentissage. Bien entendu, d'autres configurations peuvent être utilisées, notamment un tandem conventionnel qui met en cascade les deux codages. L'étude statistique assure, pour chaque élément du premier dictionnaire (ou chaque classe de sa partition), un classement des éléments du second dictionnaire selon un certain critère. Préférentiellement, ce critère évalue l'impact sur la qualité du signal restitué. En effet, le critère de qualité peut être celui utilisé au codage pour sélectionner le second paramètre LTP. Bien entendu, d'autres critères peuvent être utilisés, notamment la sollicitation d'un élément du second dictionnaire pour une classe du premier dictionnaire. En outre, une combinaison de critères peut aussi être utilisée.
Une étude analytique peut aussi être effectuée pour déterminer des ordres du second dictionnaire en fonction d'une partition du premier dictionnaire. Préférentiellement, l'étude analytique vient en complément de l'étude statistique décrite ci-avant. Elle est préférentiellement limitée aux parties de dictionnaire qui conduisent à des approximations analytiques satisfaisantes.
On décrit maintenant la détermination d'un paramètre LTP du second format de codage, à partir des paramètres LTP selon le premier format de codage. Dans le cadre de la conception d'algorithmes pour une exploration restreinte du second dictionnaire connaissant les paramètres LTP choisis par le premier format de codage, on exploite préférentiellement la partition d'un premier dictionnaire et les ordres du second dictionnaire qui sont associés à cette partition du premier dictionnaire.
Par souci de clarté de l'exposé, on décrit d'abord les principes de l'algorithme utilisé quand les deux formats de codage ont des sous-trames LTP de durée identique. A chaque sous-trame courante du deuxième format de codage correspond une seule sous-trame du premier format de codage. Pour cette première sous-trame, le premier format de codage a sélectionné un jeu de paramètres LTP (dit "premier jeu LTP1"). Grâce à la partition du dictionnaire associé à l'un des paramètres LTP du premier modèle, on sélectionne un ordre d'exploration du second dictionnaire en choisissant l'ordre associé à la classe de l'élément du premier jeu LTP1. Puis, le second dictionnaire est exploré suivant l'ordre ainsi déterminé. De plus, en fonction d'un compromis qualité/complexité et/ou éventuellement du nombre maximal d'éléments du second dictionnaire retenu pour la classe, le nombre d'éléments testés est restreint. De manière générale, on retiendra donc que, parmi tous les éléments du second dictionnaire, seuls sont testés les premiers éléments déterminés par l'ordre qui a été choisi.
Quand les deux formats de codage ont des sous-trames LTP de durées différentes, il advient qu'une sous-trame courante du deuxième format peut correspondre à plus d'une sous-trame du premier format. Cette situation est illustrée sur la figure 5b, à titre d'exemple. Pour ces premières sous-trames, le premier format de codage a sélectionné des jeux de paramètres LTP. Grâce à la partition du dictionnaire associé à l'un des paramètres LTP du premier modèle, on présélectionne des ordres d'exploration du second dictionnaire en choisissant les ordres associés aux classes des éléments des premiers jeux. Il se peut qu'un seul ordre soit finalement sélectionné si les paramètres choisis pour les premières sous-trames appartiennent à la même classe de la partition du premier dictionnaire. Il s'agit toutefois d'un cas particulier. On est alors ramené au schéma précédent correspondant à des sous-trames LTP de durée identique. Si, au contraire, plus d'un ordre a été présélectionné, on peut ne retenir qu'un seul ordre (par exemple l'ordre le plus présélectionné), ou encore celui qui correspond à la sous-trame du premier format qui couvre le plus la sous-trame courante du deuxième format.
Selon le type de paramètre LTP de la partition du premier dictionnaire, d'autres critères peuvent être retenus. Au lieu de ne retenir qu'un seul ordre, une autre solution consiste à combiner au moins une partie des différents ordres présélectionnés. Plusieurs procédures de combinaison sont possibles. Par exemple, si K ordres ont été retenus, on examine d'abord le premier élément de chacun des K ordres, en éliminant les redondances éventuelles. On obtient Ki éléments (Ki <K). Puis, on ajoute K2 éléments, tels que K2 ≤K et l<2≤ N-K-i, choisis dans l'ensemble constitué par le deuxième élément des K ordres (en éliminant les redondances éventuelles), et ainsi de suite jusqu'à obtenir N éléments, N étant le nombre maximal d'éléments du second dictionnaire à tester. On a représenté schématiquement cette sélection de N éléments θ|, eit ..., βk, ... en tant que premiers éléments de K ordres ORD1 , ORD2, ..., ORDK, sur la figure 10. Le nombre N d'éléments retenus dans l'ensemble ENS peut être choisi par exemple en fonction de la complexité maximale autorisée. Dans ce classement, il est aussi possible de privilégier les éléments les plus souvent classés parmi les premiers.
En variante, on peut aussi constituer K sous-ensembles des classements en présélectionnant les Ni (-=N) premiers éléments de chaque classement Q (1 ...r-K). Le choix des Ni est tel que ^T Ni > N et permet de traiter équitablement les classements ou, au contraire, de privilégier certains classements. Puis, on sélectionne tous les éléments présents dans les K sous- ensembles, ensuite les éléments présents dans K-1 sous-ensembles et ainsi de suite jusqu'à retenir N éléments. Si N éléments n'ont pas été ainsi obtenus, on complète le nombre d'éléments en prenant par exemple successivement les éléments suivants dans les K sous-ensembles.
On peut évidemment combiner certaines de ces stratégies de classement. On indique de manière générale que le second dictionnaire est préférentiellement exploré suivant un ordre "dynamique" ainsi déterminé. Cette procédure de constitution d'ordre dynamique à partir d'ordres prédéterminés et stockés peut aussi être appliquée quand les classes de la partition ne sont pas disjointes et qu'un élément du premier dictionnaire appartient à plus d'une classe. On décrit ci-après trois cas de passage d'un premier modèle LTP vers un deuxième modèle LTP, illustrant l'application de l'invention à différents modèles et types de paramètres LTP. Bien entendu, bien que les exemples ne soient donnés que pour un premier et un second dictionnaire, l'invention se généralise aisément à plus d'un premier et/ou second dictionnaire. * Cas du passage d'un modèle monotap vers un modèle multitap
On dispose des paramètres du modèle monotap d'un format COD1 et l'on cherche à déterminer à moindre coût de calcul et/ou de ressources ceux du modèle multitap d'un format COD2. Pour chaque sous-trame, le codeur COD 1 a déterminé le couple (λe,βe) de paramètres du filtre LTP monotap. Le codage d'une sous-trame de COD2 requiert la détermination de couples (Λs,(/?i)s) (où i est un indice de gain) de paramètres du filtre LTP multitap. Le jeu de paramètres du premier modèle est donc (λee)- Le jeu de paramètres du deuxième modèle est (λs,(βj)s)-
La détermination du retard λs est faite par une des méthodes connues de l'état de l'art. Par exemple, il est possible d'utiliser la méthode de transcodage intelligent qui détermine directement ce retard Λs en choisissant comme retard, celui déterminé par COD1 sur sa sous-trame qui partage le plus d'échantillons avec la sous-trame courante de COD2 (si ce retard Λe est fractionnaire, on prend sa partie entière ou l'entier le plus proche). Cette situation sera décrite plus loin en référence notamment aux figures 7a et 7b.
On détermine alors, avec une complexité faible au sens de l'invention, le vecteur de gains (β\)s pour chaque sous-trame de COD2 à partir de l'un au moins des gains βe des sous-trames de COD1. Par une étude associant les deux modèles LTP, on a effectué une partition du premier dictionnaire (ici le dictionnaire des gains scalaires βe). On détermine ensuite des ordres du deuxième dictionnaire, associés à cette partition. Ces ordres correspondent ici à l'ensemble des vecteurs de gains (β\)s. A partir des gains LTP scalaires βe choisis par le premier format COD1 pour ses sous-trames correspondant à une sous-trame courante de COD2, les ordres du deuxième dictionnaire associés aux classes de ces gains scalaires sont présélectionnés. Puis, un seul de ces ordres peut être retenu, ou encore, un ordre est dynamiquement constitué. Enfin, les N premiers vecteurs de gains déterminés par cet ordre sont testés pour sélectionner le meilleur vecteur (selon un critère tel que le critère habituel CELP). On rappelle que, grâce aux ordres, le nombre N peut être aisément ajustable en fonction par exemple du compromis qualité/complexité désiré. En général, N est bien inférieur à la taille du second dictionnaire. Selon l'un des avantages de la présente invention, on détermine ainsi le vecteur de gains optimal d'un filtre LTP multitap d'un second format de codage à partir d'au moins un gain d'un filtre LTP monotap d'un premier format, en réduisant considérablement la complexité d'exploration du second dictionnaire des vecteurs de gains et en limitant le nombre de vecteurs de gains à tester. Contrairement à la référence [2] donnée ci-avant où, pour chaque gain monotap, un sous-ensemble de vecteurs de gains de taille fixe est associé, la solution au sens de l'invention permet d'ajuster l'exploration du dictionnaire en fonction de la qualité visée et des contraintes de complexité. On comprendra que l'invention fait intervenir davantage les différents ordres du dictionnaire de vecteurs de gains que des sous-ensembles prédéfinis et fixes comme dans la référence précitée.
Dans le cas d'un transcodage intelligent du codeur UIT-T G.729 à 8 kbit/s vers le codeur UIT-T G.723.1 à 6,3 kbit/s, qui sera décrit plus loin en tant qu'exemple de réalisation, les étapes exposées ci-avant pourront s'appliquer à la focalisation de la recherche en boucle fermée dans les deux dictionnaires de vecteurs de gains du G.723.1 à partir des gains LTP du codeur G.729.
* Cas du passage d'un modèle multitap vers un modèle monotap
Ce cas de figure est l'inverse du précédent. On dispose des paramètres du modèle LTP multitap d'un premier format COD1 et l'on cherche à déterminer à moindre coût ceux du modèle LTP monotap d'un second format
COD2. Le jeu de paramètres du premier modèle s'écrit donc (Λe,(A )e) (où i est un indice de gain), tandis que le jeu de paramètres du deuxième modèle s'écrit (Λs./?s)- A partir d'au moins un jeu de paramètres sélectionnés par le premier codeur COD1 , on cherche à obtenir un retard λs et un gain βs pour le format COD2. Par une étude associant les deux modèles LTP, on a effectué une partition du premier dictionnaire qui est, dans ce cas, celui des vecteurs de gains (β\)e. On détermine ensuite, au sens de l'invention, des ordres du deuxième dictionnaire, associés à la partition du premier dictionnaire. Ici, le deuxième dictionnaire est constitué de l'ensemble des valeurs de gigue (Λes)- A partir des vecteurs de gains (β\)e choisis par le premier format COD1 , pour ses sous-trames qui correspondent à la sous-trame courante de COD2, les ordres du deuxième dictionnaire associés aux classes de ces vecteurs de gains sont présélectionnés. Ensuite, un seul de ces ordres peut être retenu, ou encore, un ordre peut être dynamiquement constitué. Enfin, les valeurs de "voisinage" ainsi déterminées autour d'un ou plusieurs retards d'ancrage Λ's sont explorées. La détermination du (ou des) retards d'ancrage est faite par une méthode connue dans l'état de l'art. La présente invention propose donc une solution originale permettant de réduire la complexité de la détermination du retard Λs, en réduisant le nombre de valeurs de retards testés d'un modèle LTP monotap d'un second format de codage à partir de la connaissance des paramètres d'un modèle LTP multitap d'un premier format de codage. La plupart des méthodes de l'art antérieur n'utilisent que le retard sans exploiter le vecteur de gains. Comme dans le document WO-03058407, on utilise ici les deux types de paramètres. Néanmoins, contrairement à l'enseignement de cette dernière référence, un vecteur de gains pointe sur un ensemble de plusieurs valeurs de gigue et non pas sur une seule valeur comme dans cette référence. Selon l'un des avantages que procure l'invention, on s'affranchit ainsi des problèmes liés à l'approximation d'un filtre LTP multitap par un seul filtre monotap.
Dans une variante avantageuse, pour limiter le stockage, les voisinages ordonnés sont des intervalles de taille croissante. Cette mesure est particulièrement avantageuse pour focaliser la recherche en boucle ouverte et/ou fermée. Un exemple de réalisation sera décrit plus loin, relatif à la recherche en boucle fermée du retard LTP du codeur UIT-T G.729 à 8 kbit/s à partir des paramètres LTP du codeur UIT-T G.723.1 à 6,3 kbit/s.
* Cas du passage d'un modèle multitap vers un modèle multitap A la connaissance des inventeurs, ce cas n'a jamais été étudié dans l'art antérieur.
On dispose des paramètres du modèle multitap d'un premier format COD1 et l'on cherche à déterminer à moindre coût ceux du modèle multitap d'un second format COD2. Le jeu de paramètres du premier modèle s'écrit donc (Λe,(/?, )e)- Le jeu de paramètres du deuxième modèle s'écrit aussi (Λs, {β;)s)- A partir d'au moins un jeu de paramètres sélectionné par le premier format COD1 , on cherche à obtenir un retard Λs et un vecteur de gains (#)s pour le second format COD2. La détermination du retard Λs à partir d'au moins un retard Λe est faite par une méthode connue de l'état de l'art. On retiendra que la mise en œuvre de la présente invention permet ici de déterminer avec une complexité faible le vecteur de gains (β\)s pour chaque sous-trame du second format COD2 à partir d'au moins un vecteur de gains (β\)e des sous-trames du premier format COD1. Par une étude associant les deux modèles LTP multitap, on a effectué, au sens de l'invention, une partition du premier dictionnaire qui est dans ce cas celui des vecteurs de gains (βi)e. On détermine ensuite les ordres du deuxième dictionnaire (ici celui des vecteurs de gains (β\)s) qui sont associés à cette partition. A partir des vecteurs de gains (β\)e choisis par le premier format COD1 pour ses sous-trames qui correspondent à la sous-trame courante du second format COD2, les ordres du deuxième dictionnaire associés aux classes de ces vecteurs de gains sont présélectionnés. Ensuite, un seul de ces ordres peut être retenu, ou encore un ordre peut être dynamiquement et évolutivement constitué. Enfin, les premiers vecteurs de gains déterminés par cet ordre sont testés pour sélectionner le meilleur.
Un exemple de réalisation entre les débits 6,3 kbit/s et 5,3 kbit/s du codeur UIT-T G.723.1 illustrant ce dernier cas est présenté plus loin.
** EXEMPLES DE REALISATION
On présente ci-après trois exemples de réalisation qui visent le transcodage entre deux formats de codage différents UIT-T G.729 et UIT-T
G.723.1 pour les deux premiers, et un changement de débit au sein d'un codeur multidébit (UIT-T G.723.1 ) pour le dernier. Une description de ces deux codeurs UIT-T est d'abord donnée ainsi que leurs modélisations LTP.
Codeurs UIT-T G.729 à 8 kbit/s et UIT-T G.723.1 (6,3 kbit/s et 5,3 kbit/s)
Ces deux codeurs appartiennent à la famille des codeurs CELP, codeurs à analyse par synthèse. Codeurs à analyse par synthèse
Dans ces codeurs, le modèle de synthèse est utilisé 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 de sorte que ces codeurs fonctionnent à des débits de 2 à 16 kbit/s en bande téléphonique, et à des débits de 6 à 32 kbit/s en bande élargie. Le dispositif de codage et décodage numérique de type CELP, codeur à analyse par synthèse le plus utilisé actuellement pour le codage des signaux de parole, est présenté sur la 4a. Le signal de parole S0 est échantillonné et converti en une suite de blocs de (L1) é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 d'excitation fixe), 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 "LTR' (Long Term Prédiction) permet d'évaluer les paramètres de ce prédicteur à long terme qui exploite la périodicité des sons voisés. Ce prédicteur est équivalent à un dictionnaire stockant l'excitation passée pour différents retards. Ce dictionnaire est généralement appelé "dictionnaire d'excitation adaptative". Le second filtre est le filtre de prédiction à court terme. Les méthodes d'analyse "LPC" (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.
Ainsi, en se référant à la figure 4a représentant un schéma de principe d'un codeur CELP, le signal de parole S0 subit l'analyse LPC 41 (non représentée en détail), ainsi qu'une analyse LTP avec une construction du répertoire des excitations fixes 46 et des excitations adaptatives 45 pour alimenter le filtre de synthèse 44. On prévoit en outre dans la boucle ainsi constituée un module de pondération perceptuelle 42 et une module de minimisation de l'erreur 43.
Le procédé utilisé pour déterminer la séquence d'innovation est donc la méthode d'analyse par synthèse. Au 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 d'origine selon un critère de pondération perceptuelle, connu en général sous le nom de critère CELP.
Modèle LTP du G.729 à 8 kbit/s (monotap)
Le codeur UIT-T G.729 opère sur un signal de parole limité en bande à 3,4 kHz, échantillonné à 8 kHz et découpé en trames de 10 ms (soit 80 échantillons par trame). Chaque trame est divisée en deux sous-trames (numérotées ci-après 0 et 1) de 40 échantillons (5 ms). Le modèle LTP du codeur UIT-T G.729 se base sur une modélisation monotap à résolution fractionnaire. A chaque trame, l'analyse LTP détermine un retard λ\ et un gain β\ pour chaque sous-trame. La figure 4b en présente les principales étapes. A chaque trame, une recherche du retard en boucle ouverte, noté ΛOL, est effectuée dans la plage de valeurs [20 ; 143] (étape 401 ). Puis, le retard de la première sous-trame est recherché en boucle fermée autour du retard en boucle ouverte ΛOL sur la plage [ΛOL-3; ΛOL+3] (étape 402). En utilisant donc l'analyse par synthèse, le retard Λo de la sous-trame paire est déterminé avec
1 2 une résolution fractionnaire de 1/3 dans la plage [19- ;84-] et en résolution
entière dans la plage [85; 143]. Puis, le retard Λi de la seconde sous-trame est déterminé avec une résolution fractionnaire de 1/3 par analyse par synthèse autour de Λo sur la plage [int(Λo)-52/3; int(Λ0)+42/3]. int(Λo) étant la partie entière du retard éventuellement fractionnaire A0 (étape 404). Pour chaque sous-trame, le gain β est calculé une fois le retard en boucle fermée déterminé (étapes 403 et 405). Après la recherche de l'excitation fixe, le gain β est quantifié conjointement avec le gain de l'excitation fixe par une quantification vectorielle sur sept bits. L'ensemble de définition (ou dictionnaire) du gain LTP monotap du G.729 a donc une taille de 128.
Modèle LTP du G.723.1 (multitap)
Le codeur UIT-T G.723.1 opère sur un signal de parole limité en bande à 3,4 kHz, échantillonné à 8 kHz et découpé en trames de 30 ms (soit 240 échantillons par trame). Chaque trame comporte 4 sous-trames de 7,5 ms (60 échantillons) regroupées 2 par 2 dans des super sous-trames de 15 ms (120 échantillons). Le codeur UIT-T G.723.1 utilise une modélisation multitap d'ordre 5. Les coefficients du prédicteur à long terme sont quantifiés vectoriellement au moyen de deux dictionnaires préalablement stockés à 85 ou 170 entrées pour le mode à 6,3 kbit/s, tandis que le mode à 5,3 kbit/s n'utilise que le dictionnaire à 170 entrées. Dans le mode 6,3 kbit/s, le choix du dictionnaire exploré dépend de la valeur de retard des sous-trames paires.
La figure 4c illustre les principales étapes de l'analyse LTP du codeur G.723.1. A chaque trame, deux analyses LTP en boucle ouverte (une fois par super sous-trame) sont effectuées afin d'estimer un retard Λ'OL (i = 0 OU 1 ) sur la plage [18; 142] pour chaque bloc de 120 échantillons (étape 410). Puis, pour chaque super sous-trame, deux analyses LTP en boucle fermée (une pour chaque sous-trame) sont effectuées. Les retards Λa des sous-trames paires (sous-trames 0 et 2) sont recherchés en boucle fermée autour du retard Λ'OL correspondant sur la plage [Λ'OL-1 ; Λ'OL+1]- Conjointement avec cette recherche, le dictionnaire de vecteurs de gains est aussi exploré par analyse par synthèse (étape 411). Pour les sous-trames impaires (sous-trames 1 et 3), une recherche similaire (recherche conjointe du vecteur de gains et du retard en boucle fermée) est effectuée et la recherche d'un retard Λ2ι+i en boucle fermée est limitée au voisinage du retard en boucle fermée de la sous-trame précédente [Λ2i-1 ; Λ2ι+2] (étape 412).
Premier exemple de réalisation : détermination des paramètres LTP multitap du G.723.1 à 6,3 kbit/s à partir des paramètres LTP Monotap du G.729 à 8 kbit/s
Comme présenté sur la figure 5a, en prenant classiquement une origine temporelle commune, une trame de codage G.723.1 correspond à trois trames de codage G.729. Il apparaît donc que les sous-trames du G.729 ne coïncident pas avec celles du G.723.1 , mais qu'au contraire les secondes (7,5 ms) chevauchent les premières (5 ms). La figure 5b représente une trame du codage G723.1 et trois trames de codage G.729 et leurs sous-trames respectives. Les sous-trames de la trame du G.723.1 sont numérotées de 0 à 3. Les trois trames du G.729 sont regroupées et leurs sous-trames sont numérotées de 0 à 5.
Détermination du retard du filtre multitap
La détermination du retard est directe. Ainsi pour les sous-trames paires du G723.1 , c'est-à-dire les sous-trames 0 et 2, le retard est pris égal à la partie entière de celui des sous-trames 1 et 4 du G.729. Pour les sous-trames impaires, une boucle fermée est effectuée autour du retard précédent (sous- trame paire). Cette boucle fermée peut être identique à celle du G.723.1 , mais peut aussi être restreinte selon la complexité désirée, voire éliminée pour garder alors la même valeur de retard sur les deux sous-trames paires et impaires.
Détermination des coefficients du filtre multitap
Ici, on ne considère qu'un seul premier dictionnaire qui est l'ensemble des 128 gains LTP monotap du G.729 tandis que l'on considère deux seconds dictionnaires possibles (les deux dictionnaires de vecteurs de gains du G.723.1 dont le choix dépend du retard des sous-trames).
Une fois le retard déterminé, il reste encore à déterminer un vecteur de 5 gains dans le dictionnaire de vecteurs de 5 coefficients que sélectionne le codeur G.723.1. La mise en œuvre de la présente invention permet d'en restreindre l'exploration à un nombre limité de vecteurs de gains déterminés à partir des gains LTP monotap des sous-trames du codeur G.729.
Au préalable, une étude statistique a été réalisée en associant au sein d'un même codeur le modèle multitap du codeur G.723.1 et le modèle monotap du codeur G.729. Cette étude a permis pour chacun des 128 gains LTP monotap du G.729 de classer les 170 et 85 vecteurs de gains LTP multitap des deux dictionnaires du G.723.1 selon leur impact sur la qualité du signal restitué. Ici, c'est le critère CELP qui est utilisé à cette fin. Pour chacun de ces deux dictionnaires du G.723.1 , on a ainsi obtenu 128 ordres (ou classements) associés à la partition élémentaire de l'ensemble des 128 gains LTP monotap.
Chaque sous-trame du G.723.1 couvre (au moins partiellement) deux sous- trames du G.729. Tout d'abord, on extrait les deux gains monotap (notés gi et g2) de ces deux sous-trames correspondantes du G.729. A chacun de ces deux gains, est associé un classement C(gi) des vecteurs du dictionnaire de vecteurs de coefficients multitap. Ce dictionnaire est sélectionné par la valeur du retard de la sous-trame paire du G.723.1.
Soit N le nombre maximal, autorisé, de vecteurs de gains multitap pour la sous-trame courante du codeur G.723.1. Si les deux gains du G.729 sont égaux, il n'y a donc qu'un seul classement et les N premiers éléments ordonnés par ce classement du dictionnaire de vecteurs de gains sont retenus. Sinon, on constitue un ordre de N éléments à partir de deux ordres différents. Par exemple, on constitue deux sous-ensembles des classements C(gi) et C(g2) en présélectionnant leurs Ni et N2 (respectivement) premiers éléments. Ni et N2 sont inférieurs ou égaux à N. On peut traiter équitablement les deux classements (Ni=N2) ou privilégier l'un des deux classements. Par exemple, on peut privilégier le classement associé au gain monotap le plus grand (typiquement si g-i>g2 alors O ^I2<Ni -=N). On peut aussi privilégier celui dont la sous-trame du G.729 recouvre le plus la sous-trame du G.723.1 considérée. Puis, on sélectionne tout d'abord tous les éléments appartenant aux deux sous-ensembles. On complète l'ensemble formant le dictionnaire, à N, en prenant alternativement dans les deux sous-ensembles l'élément le mieux classé parmi les restants. Là encore, on peut, en complétant, favoriser l'un des deux sous-ensembles. On peut, bien entendu, combiner certaines de ces stratégies. Par exemple, choisir Ni=N2 mais après sélection des éléments communs, poursuivre par les éléments restants de l'un des deux classements avant de compléter éventuellement par les éléments restants de l'autre classement. La stratégie peut aussi varier selon la sous-trame du G.723.1 considérée. Finalement, l'exploration du dictionnaire de vecteurs de gains est limitée aux N vecteurs déterminés grâce à l'ordre "dynamique" ainsi constitué. Cette exploration focalisée permet de sélectionner le meilleur vecteur de gains. Préférentiellement, le critère de sélection est le critère CELP utilisé classiquement par le G.723.1 pour l'exploration des dictionnaires des vecteurs à 5 coefficients LTP. La solution exposée ici permet une très forte réduction de la complexité de l'analyse LTP du codage G.723.1 sans pour autant nuire à la qualité. A titre d'exemple de performances, on a représenté sur les figures 9a et 9b, pour les deux dictionnaires, l'histogramme des tailles d'exploration qui garantissent une perte sur le critère CELP strictement inférieure à 1% par rapport à une exploration complète. On note que les tailles d'exploration (en abscisse) sont bien inférieures à la taille totale du dictionnaire. Ainsi, la taille moyenne est de 39 pour le dictionnaire à 85 vecteurs et de 49 pour le dictionnaire à 170 vecteurs. Sur la base d'apprentissage utilisée, l'étude statistique montre, même pour des tailles d'exploration moyennes, bien inférieures aux tailles des dictionnaires (48 au lieu de 85 et 58 au lieu de 170), que l'exploration restreinte est optimale selon le critère CELP (pratiquement pas de perte sur le critère CELP). La recherche focalisée peut donc mener à des performances équivalentes à la recherche exhaustive tout en n'explorant qu'à peine plus de la moitié du dictionnaire de taille 85 et le tiers du dictionnaire de taille 170. Ces chiffres illustrent bien la réduction de complexité qu'apporte la mise en oeuvre de la présente invention.
Par ailleurs, un stockage complet des 128 ordres pour les deux dictionnaires représente un total de 128*(170+85) =32640 valeurs d'index à stocker. En réalité, il n'est pas nécessaire de retenir toutes ces valeurs puisque, comme indiqué ci-dessus, seul un nombre limité est nécessaire. Ainsi, pour une perte nulle sur le critère CELP, les essais montrent qu'il suffirait de stocker environ 13582 indices. En choisissant une contrainte moins forte sur le critère CELP, on peut encore réduire ce nombre Ousqu'à atteindre 11251 valeurs pour 1% de perte). Il peut encore être fortement réduit en adoptant pour l'ensemble des gains monotap une autre partition que la partition élémentaire.
Deuxième exemple de réalisation : détermination des paramètres LTP monotap du G.729 à 8 kbit/s à partir des paramètres LTP multitap du G.723.1 à 6,3 kbit/s
A l'inverse du mode de réalisation précédent, on dispose des paramètres du modèle LTP multitap d'une trame de G.723.1 et on cherche à obtenir les paramètres LTP monotap du G.729 pour trois trames c'est-à-dire six sous- trames (voir figure 5b).
Détermination du retard en boucle ouverte
La recherche en boucle ouverte a été éliminée. Pour cela, chacune des trois trames G.729 adopte tout d'abord pour retard en boucle ouverte le retard de l'une des sous-trames du codeur G.723.1. La correspondance entre trames G.729 et sous-trame G.723.1 est illustrée sur la figure 6.
Toutefois, il est à noter que le retard choisi par le codeur G.723.1 peut être hors de la plage de valeurs autorisées par le codeur G.729. En effet, la plus petite valeur autorisée par le codeur G.729 est 19 alors qu'elle est de 18 pour le codeur G.723.1. Plusieurs solutions sont possibles pour contourner ce problème. Typiquement, on peut par exemple doubler le retard issu du codeur G.723.1 , ou plus simplement lui ajouter 1.
Détermination du retard en boucle fermée Une fois les retards en boucle ouverte fixés pour les trois trames du codeur G.729, il reste à effectuer pour chaque sous-trame la recherche en boucle fermée. On rappelle que les plages de valeurs sont les suivantes :
Λo e [ΛOL-3;ΛOL+3] et λλ e [int(Λ0)-5- ; int(Λ0)+4-]
La recherche en boucle fermée standard du codeur G.729 consiste tout d'abord à tester successivement toutes les valeurs entières de la plage (7 valeurs pour A0 et 10 pour Λi). Une fois sélectionnée la meilleure valeur entière, les différentes fractions (-2/3, -1/3, 1/3, 2/3) sont testées pour déterminer la meilleure selon le critère choisi, en l'espèce celle qui maximise le critère CELP. Pour la sous-trame paire, on notera que la partie fractionnaire n'est recherchée que si la partie entière de Λo est inférieure à 85.
Ici, le premier dictionnaire (dans la définition de l'invention donnée ci-avant) est l'un des deux dictionnaires de vecteurs de gains LTP du codeur G.723.1 , le second dictionnaire étant l'un des deux ensembles des valeurs entières de voisinage (ou gigue) autour d'un retard d'ancrage. On comprendra alors que l'invention peut s'appliquer aisément à plus d'un premier dictionnaire, d'une part, et à plus d'un second dictionnaire, d'autre part. Pour réduire la complexité de la recherche en boucle fermée des valeurs entières au voisinage de la valeur d'ancrage λ' (/I0L ou int(Λo)), on propose, au sens de l'invention, de limiter le nombre de valeurs entières de retard testées par les boucles fermées. En fonction du choix du vecteur de gains LTP fait par le G.723.1 , seul un nombre réduit de valeurs est testé. Le retard entier est déterminé dans cet ensemble restreint. Puis, la partie fractionnaire est recherchée de façon classique.
Auparavant, une étude statistique a été réalisée en associant au sein d'un même codeur le modèle multitap du G.723.1 et le modèle monotap du G.729. Cette étude a permis, pour chacun des vecteurs de gains des deux dictionnaires LTP multitap du G.723.1 , d'établir pour les deux voisinages de recherche en boucle fermée du G.729 (sous-trames paire et impaire) un ordre d'importance des valeurs de voisinage selon leur impact sur la qualité du signal restitué. Cette classification permet de choisir le nombre de valeurs testées selon les contraintes de qualité et de complexité et de limiter, pour chacune des six sous-trames du G.729, l'étendue de la boucle fermée à partir du choix des gains (β{) fait pour les sous-trames du G.723.1. En utilisant la correspondance entre sous-trames du tableau de la figure 8, chaque sous- trame G.729 est associée à une ou deux sous-trames G.723.1. A partir du vecteur de 5 coefficients du vecteur de gains (β\), les valeurs de voisinage de λ' sont classées par ordre d'importance décroissante. Le nombre de valeurs testées est alors déterminé en fonction de la complexité visée ou du rapport qualité/complexité visé.
L'association entre sous-trames paires (respectivement impaires) du codeur G.729 et le jeu de paramètres (Λj,(βi)j) issu du codeur G.723.1 est illustrée sur la figure 7a (respectivement sur la figure 7b).
On notera que pour certaines sous-trames, la valeur d'ancrage Λ' peut être différente du retard A1 du jeu de paramètres (Λj,(/?ι)j) déterminé pour la sous- trame G.723.1 associée. Ce point est explicité plus loin où l'on prend en compte la parité des sous-trames (paires ou impaires). Dans une première variante, on peut simplement ne pas tenir compte d'une différence éventuelle. Avantageusement, dans une autre variante, l'ensemble des voisinages ordonnés est modifié en fonction de la différence (ΛrΛ') et la taille de cet ensemble est éventuellement modifiée. Préférentiellement, on soustrait la différence (Λj-Λ1) à chaque élément de ce voisinage ordonné selon les gains (/?i)j et on considère son intersection avec l'ensemble de définition des voisinages (ici l'intervalle [-3;3] pour les sous-trames paires et l'intervalle [-5,4] pour les sous-trames impaires, comme on le verra plus loin).
On peut aussi conditionner l'utilisation des voisinages restreints en fonction de l'écart entre les deux retards. La stratégie peut donc être adaptée à la sous- trame ou à l'écart entre les retards, ou aux deux critères combinés.
Sous-trames paires
La recherche doit être effectuée autour du retard en boucle ouverte ΛOι_ sur la plage [ΛOL-3; ΛOL+3]. En fonction du (des) vecteurs de gains choisi(s) par le codeur G.723.1 , des ordres de l'ensemble des 7 valeurs de gigue (-3, -2, -1 , 0, 1 , 2, 3) sont déterminés. Pour la sous-trame 0 (respectivement 2) du codeur G.729, il n'y a qu'une seule sous-trame du G.723.1 associée et donc un seul vecteur de gains et, ainsi, un seul ordre. Par contre, deux sous-trames du codeur G.723.1 sont associées à la sous-trame 4 du codeur G.729, comme le montre la figure 7a. Deux ordres de l'ensemble des voisinages sont donc présélectionnés par les vecteurs de gains (β\)2 et (β\)z. Comme indiqué ci- avant, on peut retenir un seul ordre ou combiner les 2 ordres. Si on ne retient que l'ordre associé au vecteur (β\)z, ou si l'on fixe λz~λz (où λz est la valeur d'ancrage), aucun traitement particulier n'est effectué. Autrement, l'ensemble ordonné des 7 voisinages correspondant à {βfo est modifié en fonction de (Λ2- Λ3). Puis, on complète éventuellement avec l'ensemble ordonné selon iβ\)z. Les N premiers éléments selon l'ordre obtenu sont testés, la taille N (N<7) est définie en fonction de la complexité ou du compromis qualité/complexité visé. Sous-trames impaires
La recherche doit être menée autour de la partie entière Λ'2p de la sous-trame
(paire) précédente sur la plage [ΛV52/3; Λ'2P+42/3_. Pour ces sous-trames impaires, comme pour la sous-trame paire 4, le retard λ\ du jeu de paramètres (Λj>(/?Oj) de (ou des) sous-trames G.723.1 associé(es) peut être différent de cette valeur d'ancrage Λ'2p. En fonction du (des) vecteur(s) (β\)\ de gains choisi(s) par le codeur G.723.1 , des ordres de l'ensemble des 10 valeurs de gigue sont présélectionnés et modifiés en fonction de la différence (Λj-Λ'2P)- Soit N (N<10) le nombre maximal autorisé de valeurs testées.
Pour déterminer la plage de recherche restreinte, on procède préférentiel lement comme suit pour chaque sous-trame impaire.
Sous-trame 1 :
La plage totale de recherche est [λ'o-δzï, AO+^m]- Deux ordres correspondants aux vecteurs de gains {β)Q et (/?j)i sont présélectionnés. Puis, les voisinages ordonnés sont modifiés en fonction des différences (Λo-Λ'o) et (Λ-i-Λ'o). Ces deux écarts sont limités car :
- d'une part, le retard λ'o en boucle fermée du G.729 est dans le voisinage (dans l'intervalle [-3,3]) du retard en boucle ouverte (ici, pris égal à λQ correspondant au retard en boucle fermée du G.723.1 ),
- d'autre part, dans le codeur G.723.1 , l'écart entre les retards en boucle fermée d'une sous-trame paire et la sous-trame impaire suivante est limité car la différence (Λ-i-Λo) est dans l'intervalle [-1 , 2].
A partir des Ni et N2 premiers éléments des voisinages modifiés, on constitue un voisinage ordonné unique de taille N. On sélectionne tout d'abord les valeurs communes aux deux sous-ensembles, puis on complète l'ensemble, si nécessaire, en prenant alternativement la meilleure valeur restante dans les deux sous-ensembles. La recherche en boucle fermée est alors menée dans le sous-ensemble ainsi constitué. Sous-trame 3 :
La plage totale de recherche est [Λ'2-52/3; Λ'2+42/3]. Un ordre correspondant au vecteur de gains (β\)2 est sélectionné. Puis, le voisinage ordonné est modifié en fonction de la différence [A2-X2). Contrairement au cas précédent, l'écart entre λ2 et K2 peut être important et l'intersection du voisinage ordonné, modifié en soustrayant (Λ2-Λ 2), peut être nulle. Dans ce cas, préférentiellement, la recherche est faite sur toute la plage [Λ'i-52/3; Λ'i+42/3]- L'utilisation de voisinages ordonnés peut aussi être conditionnée à un seuil sur \λ2- λ'2\. Par exemple, les voisinages ne sont restreints que si \λ2- λ'2\<2> ; autrement toute la plage [-5,4] est explorée. Le choix de cette variante peut aussi dépendre de la complexité autorisée.
Sous-trame 5 :
La plage totale de recherche est [Λ'4-52/3; Λ 4+42/3]. Un ordre correspondant au vecteur de gains (βfo est sélectionné. Puis, le voisinage ordonné est modifié en fonction de la différence (Λ34). Comme dans le cas de la sous-trame 1 , cet écart est limité. En effet, le retard en boucle fermée du G.729, Λ'2, est dans le voisinage ([-3,3]) du retard en boucle ouverte (ici pris égal au retard en boucle fermée Λ3 du G.723.1 ). On explore les N premières valeurs de l'ensemble ordonné modifié. La solution présentée ici permet une très forte réduction de la complexité de l'analyse LTP du codage G.729. Par rapport à l'exploration des voisinages complets, l'invention permet de ne tester que 60% (respectivement 40 %) des valeurs de voisinage si le vecteur de gains du codeur G.723.1 est dans le dictionnaire à 170 entrées (respectivement 85 entrées).
Troisième exemple de réalisation : détermination des paramètres LTP multitap du codeur G.723.1 à 5,3 kbit/s à partir des paramètres LTP multitap du codeur G.723.1 à 6,3 kbit/s Les deux modèles sont très proches et ne se distinguent pratiquement que par le choix du dictionnaire des vecteurs de gains LTP multitap.
Détermination du retard du filtre multitap
De façon similaire à la détermination du retard d'un monotap décrit ci-avant à partir des paramètres LTP multitap, on peut utiliser le retard des sous-trames paires, en tant que retard en boucle ouverte de la super sous-trame, puis restreindre la plage de variation du retard en boucle fermée du mode à
5,3 kbit/s en fonction du vecteur de cinq coefficients du filtre choisi par le mode à 6,3 kbit/s. Préférentiellement, aucun traitement autre qu'une simple recopie du retard n'est nécessaire. Ainsi, chaque sous-trame du 5,3 kbit/s adopte pour retard celui que le mode 6,3 kbit/s a choisi pour la même sous-trame.
Détermination des coefficients du filtre multitap
Ici, on a un seul second dictionnaire qui est le dictionnaire à 170 vecteurs de cinq coefficients du mode à 5,3 kbit/s tandis qu'il faut considérer deux "premiers dictionnaires", selon la terminologie utilisée dans la définition générale de l'invention. Ces deux premiers dictionnaires sont les deux dictionnaires de vecteurs de gains utilisés par le mode à 6,3 kbit/s du G.723.1.
Dans cet exemple de réalisation, on cherche donc à déterminer pour le mode à 5,3 kbit/s un vecteur de gains dans le dictionnaire à 170 entrées à partir d'un vecteur de gains sélectionné par le mode 6,3 kbit/s dans l'un des deux dictionnaires (à 170 ou à 85 vecteurs).
L'un des deux cas peut sembler trivial car si le mode 6,3 kbit/s utilise pour la sous-trame courante le même dictionnaire (le dictionnaire à 170 vecteurs), on peut être tenté de choisir pour le mode 5,3 kbit/s le même vecteur que le mode à 6,3 kbit/s. Néanmoins, cette approche apporte une dégradation sensible du signal. En effet, bien que la modélisation LTP soit identique pour les deux modes (même dictionnaires de retards et de vecteurs de 5 gains), il faut garder à l'esprit que le reste du processus de codage n'est pas le même. Le filtrage LTP n'est donc pas appliqué au même signal et il faut alors élargir le choix de vecteurs de coefficients du filtre pour le mode 5,3 kbit/s.
A cet effet, une étude a été réalisée sur les deux dictionnaires pour associer à chacun des vecteurs, un classement des vecteurs du dictionnaire à 170 vecteurs.
Ainsi, pour sélectionner un vecteur de gains pour le mode 5,3 kbit/s, il est préféré, à partir du choix du vecteur de gains fait par le mode 6,3 kbit/s, de n'explorer dans le grand dictionnaire (170 vecteurs) qu'un ensemble restreint aux N premiers vecteurs du classement associé au vecteur de gain choisi par le mode 6,3 kbit/s. La taille N dépend de la complexité ou de la qualité ou du compromis/qualité complexité désiré. Dans ce sous-ensemble, on sélectionne alors le vecteur de gains qui maximise un critère, préférentiellement le critère CELP, comme décrit ci-avant.

Claims

Revendications
1. Procédé de codage selon un second format, à partir d'informations obtenues par la mise en œuvre d'au moins une étape de codage selon un premier format, les premier et second formats mettant en œuvre, notamment pour le codage d'un signal de parole, une étape de recherche de paramètres de prédiction à long terme LTP par exploration d'au moins un dictionnaire comportant des paramètres candidats, l'un au moins des premier et second format de codage utilisant un filtrage à plusieurs coefficients pour une recherche fine des paramètres LTP, caractérisé en ce qu'il comporte les étapes suivantes : a) définir des ordres d'au moins un dictionnaire qu'utilise le second format de codage, b) récupérer une information a priori, obtenue suite à la détermination des paramètres LTP au cours du codage selon le premier format, pour sélectionner au moins un ordre dudit dictionnaire, c) appliquer l'ordre sélectionné aux candidats dudit dictionnaire pour choisir un nombre limité de premiers candidats, et d) pour effectuer le second codage, mener la recherche LTP uniquement parmi ledit nombre limité de candidats.
2. Procédé selon la revendication 1 , dans lequel le premier format de codage utilise un premier dictionnaire, caractérisé en ce que ladite information a priori est une information de partition du premier dictionnaire concernant une classe de la partition à laquelle appartient un paramètre LTP obtenu au cours du codage selon le premier format.
3. Procédé selon la revendication 2, caractérisé en ce que l'on prévoit initialement une partition élémentaire du premier dictionnaire comportant N éléments, en N classes disjointes de taille 1.
4. Procédé selon la revendication 2, dans lequel le premier format de codage utilise un premier dictionnaire et le second format de codage utilise un second dictionnaire, caractérisé en ce que l'on prévoit une partition du premier dictionnaire en classes non disjointes, de sorte qu'un même élément peut être associé à plus d'un ordre du second dictionnaire.
5. Procédé selon l'une des revendications 2 à 4, dans lequel le premier format de codage utilise un premier dictionnaire et le second format de codage utilise un second dictionnaire, caractérisé en ce que l'on prévoit un regroupement d'ordres similaires pour modifier dynamiquement la partition initiale du premier dictionnaire et, de là, le nombre d'ordres du second dictionnaire.
6. Procédé selon la revendication 5, caractérisé en ce que l'on prévoit en outre une opération consistant à recalculer successivement les ordres du second dictionnaire, une fois regroupés, et en ce que l'on modifie dynamiquement la partition initiale du premier dictionnaire et/ou les ordres ainsi regroupés.
7. Procédé selon l'une des revendications 2 à 6, dans lequel le premier format de codage utilise un premier dictionnaire et le second format de codage utilise un second dictionnaire, caractérisé en ce que, pour chacun des ordres du second dictionnaire, un nombre maximal d'éléments du second dictionnaire à retenir est choisi en fonction des classes du premier dictionnaire et/ou des ordres du second dictionnaire, pour limiter une ressource en mémoire utilisée pour le stockage des ordres du second dictionnaire.
8. Procédé selon l'une des revendications précédentes, caractérisé en ce que ledit nombre limité de candidats est choisi en fonction d'un compromis entre qualité et complexité du second codage.
9. Procédé selon la revendication 8, dans lequel un signal d'entrée à coder est traité par blocs de données, caractérisé en ce que ledit compromis est fixé dynamiquement, à chaque bloc de données à traiter en fonction de paramètres du premier format de codage et/ou de caractéristiques du signal à coder.
10. Procédé selon la revendication 9, caractérisé en ce que ledit compromis est fixé dynamiquement en fonction de sous-trames LTP que comporte chaque bloc de données.
11. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte une étape initiale consistant à mener une étude statistique et/ou analytique, en fonction de jeux successifs de paramètres LTP selon le premier format de codage, pour déterminer un nombre d'ordres et des ordres appropriés dans un dictionnaire qu'utilise le second format de codage.
12. Procédé selon l'une des revendications 2 à 11 , dans lequel un signal d'entrée à coder est traité par blocs de données comportant chacun, pour le premier format de codage, des premières sous-trames LTP et, pour le second format de codage, des secondes sous-trames LTP, caractérisé en ce que, pour des premières et secondes sous-trames de durée identique, à chaque sous-trame courante du deuxième format de codage correspond une seule sous-trame du premier format de codage, et en ce que : - le premier format de codage sélectionne un premier jeu de paramètres LTP pour la sous-trame courante,
- à partir de la partition par classes du dictionnaire associé à l'un des paramètres LTP du premier format, on sélectionne un ordre d'exploration du dictionnaire du second format en choisissant un ordre associé à la classe de l'élément dudit premier jeu, et
- suivant l'ordre ainsi sélectionné, un nombre limité de premiers candidats du dictionnaire du second format est exploré.
13. Procédé selon l'une des revendications 2 à 11 , dans lequel un signal d'entrée à coder est traité par blocs de données comportant chacun, pour le premier format de codage, des premières sous-trames LTP et, pour le second format de codage, des secondes sous-trames LTP, caractérisé en ce que, pour des premières et secondes sous-trames de durées différentes : - le premier format de codage sélectionne une pluralité de jeux de paramètres LTP, pour des premières sous-trames correspondant sensiblement une seconde sous-trame courante,
- à partir de la partition par classes du dictionnaire associé à l'un des paramètres LTP du premier format, on présélectionne des ordres d'exploration du dictionnaire du second format en choisissant les ordres associés aux classes des éléments desdits jeux de paramètres LTP,
- à partir de la présélection desdits ordres, on détermine au moins un ordre préféré, et
- ledit dictionnaire du second format est exploré suivant l'ordre préféré, en se limitant à ses premiers éléments.
14. Procédé selon la revendication 13, caractérisé en ce que l'ordre préféré est celui le plus présélectionné parmi les ordres présélectionnés pour une seconde sous-trame courante.
15. Procédé selon la revendication 13, caractérisé en ce que l'ordre préféré est celui qui correspond à la sous-trame du premier format qui couvre le plus une sous-trame courante du deuxième format.
16. Procédé selon la revendication 13, caractérisé en ce que l'on retient une combinaison d'une pluralité d'ordres du dictionnaire du second format selon les étapes suivantes, pour obtenir un ordre dynamique de N éléments du dictionnaire du second format :
- on présélectionne K ordres,
- on examine le premier élément de chacun des K ordres en éliminant les redondances éventuelles, pour obtenir Ki éléments, avec Ki <K,
- on ajoute K2 éléments choisis dans un ensemble constitué par le deuxième élément des K ordres, en éliminant les redondances éventuelles, et tels que K2 ≤ K et K2≤ N-Ki, et l'on répète sensiblement ces étapes jusqu'à obtenir lesdits N éléments.
17. Procédé selon la revendication 13, caractérisé en ce que l'on retient une combinaison d'une pluralité d'ordres du dictionnaire du second format selon les étapes suivantes, pour obtenir un ordre dynamique de N éléments du dictionnaire du second format : - on constitue K sous-ensembles de classements en présélectionnant les Nj premiers éléments, avec Nj ^J, de chaque classement Q, avec i compris entre 1 et K, - on choisit les Nj éléments de sorte ^]Ni > N ,
- on sélectionne tous les éléments présents dans les K sous-ensembles, et on répète cette dernière étape avec une sélection des éléments présents dans K-i sous-ensembles, où i augmente par récurrence jusqu'à retenir N éléments.
18. Procédé selon l'une des revendications précédentes, dans lequel le premier format de codage utilise un filtrage à coefficient unique pour des premières sous-trames LTP tandis que le second format de codage utilise un filtrage à plusieurs coefficients pour des secondes sous-trames LTP, caractérisé en ce que :
- pour chaque première sous-trame, par la mise en œuvre du premier format de codage, on détermine un couple (λee) de premiers paramètres du filtre LTP à coefficient unique, - pour le codage d'une seconde sous-trame courante, on détermine une pluralité de couples (λs,(β\)s) de paramètres du filtre LTP à plusieurs coefficients sur la base du jeu de paramètres du premier format (Λe,/?e), avec :
• une détermination d'un retard LTP Λs correspondant préférentiellement à celui déterminé par le premier format de codage sur une première sous-trame qui recouvre le plus la seconde sous- trame courante,
• une détermination d'un vecteur de gains (β\)s pour la seconde sous- trame courante à partir de l'un au moins des gains βe des premières sous-trames, par la mise en œuvre des étapes b), c) et d) où les ordres du dictionnaire du second format correspondent à un ensemble de vecteurs de gains (β\)s de la seconde sous-trame.
19. Procédé selon la revendication 18, caractérisé en ce que, pour le codage d'une seconde sous-trame courante :
- à partir de premiers gains LTP du premier format (βe) choisis pour une ou plusieurs premières sous-trames correspondant à une seconde sous-trame courante, les ordres du dictionnaire du deuxième format, associés à des classes des premiers gains LTP, sont présélectionnés,
- un seul de ces ordres est constitué, de préférence dynamiquement, à partir desdits ordres présélectionnés pour ladite seconde sous-trame courante, et
- N premiers vecteurs de seconds gains, déterminés par l'ordre constitué, sont testés pour sélectionner, selon un critère choisi, un meilleur vecteur de gains à associer à la seconde sous-trame.
20. Procédé selon l'une des revendications 1 à 17, dans lequel le second format de codage utilise un filtrage à coefficient unique pour des secondes sous-trames LTP tandis que le premier format de codage utilise un filtrage à plusieurs coefficients pour des premières sous-trames LTP, caractérisé en ce que :
- pour chaque première sous-trame, par la mise en œuvre du premier format de codage, on détermine un premier jeu de paramètres LTP Λe,(#)e correspondant à un couple comportant un retard LTP Λe et un vecteur de gains associés {βt)e du filtre LTP à plusieurs coefficients,
- on effectue une partition d'un dictionnaire des vecteurs de gains (β\)e du premier format,
- pour le codage d'une seconde sous-trame courante par le second format, on détermine des ordres d'un dictionnaire du second format pour des premières sous-trames correspondant à la seconde sous-trame courante, ledit dictionnaire du second format étant constitué d'un ensemble de valeurs de gigue et lesdits ordres de ce dictionnaire étant associés à la partition du dictionnaire du premier format,
- on détermine un ordre des valeurs de gigue et on explore successivement des valeurs de retards LTP pour le second format, sur les valeurs de gigue j ainsi ordonnées et autour d'un ou plusieurs retards d'ancrage déterminés en fonction des retards Λe sur les premières sous-trames.
21. Procédé selon la revendication 20, caractérisé en ce que l'on teste différentes valeurs de retards LTP selon un critère choisi.
22. Procédé selon l'une des revendications 20 et 21 , caractérisé en ce que lesdites valeurs de gigue ainsi ordonnées sont d'amplitudes de taille croissante en fonction de l'exploration.
23. Procédé selon l'une des revendications 1 à 17, dans lequel le premier format de codage utilise un filtrage à plusieurs coefficients sur des première sous-trames LTP et le second format de codage utilise un filtrage à plusieurs coefficients sur des secondes sous-trames LTP, caractérisé en ce que :
- à partir d'au moins un premier jeu de paramètres sélectionné par le premier format et incluant au moins un vecteur de gains (β\)e déterminé pour au moins une première sous-trame, on mène une partition du dictionnaire du premier format correspondant à un dictionnaire des vecteurs de gains du premier format (β\)e,
- on en déduit des ordres du dictionnaire du second format correspondant à un dictionnaire des vecteurs de gains (β\)s du second format, lesdits ordres étant associés à ladite partition,
- à partir de vecteurs de gains (β\)e choisis par le premier format pour des premières sous-trames qui couvrent sensiblement la seconde sous-trame courante, des ordres du deuxième dictionnaire associés à des classes de ladite partition sont présélectionnés,
- on retient l'un des ordres présélectionnés,
- on détermine plusieurs vecteurs de gains à associer à la seconde sous- > trame courante, en fonction de l'ordre retenu, et
- on sélectionne, par tests sur lesdits plusieurs vecteurs de gain, le meilleur vecteur de gain selon un critère choisi.
24. Procédé selon l'une des revendications 19, 21 et 23, caractérisé en ce que le critère choisi est le critère CELP.
25. Dispositif de codage selon un second format, agencé pour utiliser des informations de codage obtenues par la mise en œuvre d'un codage selon un premier format, les premier et second formats mettant en œuvre, notamment pour le codage d'un signal de parole, une recherche de paramètres de prédiction à long terme LTP par exploration d'un dictionnaire comportant des paramètres candidats, l'un au moins des premier et second format de codage utilisant un filtrage à plusieurs coefficients pour une recherche fine des paramètres LTP, caractérisé en ce qu'il comporte : - une mémoire stockant une table de correspondance définissant, en fonction de paramètres LTP déterminés par le premier format de codage, des ordres d'un dictionnaire qu'utilise le second format de codage,
- des moyens pour récupérer un signal donnant au moins une information a priori sur des paramètres LTP au cours d'un codage selon le premier format,
- des moyens actifs sur réception dudit signal pour consulter ladite table de correspondance et sélectionner au moins un ordre dudit dictionnaire du second format, - des moyens de calcul pour :
• ordonner ledit dictionnaire du second format selon l'ordre sélectionné, en vue de choisir un nombre limité de premiers candidats dans le dictionnaire, et • poursuivre le codage selon le second format, en menant la recherche LTP uniquement parmi ce nombre limité de candidats.
26. Système de codage mettant en œuvre au moins un premier et un second format de codage, caractérisé en ce qu'il comporte au moins un dispositif de codage selon le premier format et un dispositif de codage selon la revendication 25, appliquant ledit second format.
27. Système de codage selon la revendication 26, caractérisé en ce que le dispositif de codage selon le premier format et le dispositif de codage selon le second format sont mis en cascade, pour un transcodage.
28. Système de codage selon la revendication 26, caractérisé en ce que le dispositif de codage selon le premier format et le dispositif de codage selon le second format sont mis en parallèle, pour un codage multiple.
29. Produit programme d'ordinateur, stocké dans une mémoire d'une unité de traitement ou sur un support amovible destiné à coopérer avec un lecteur de ladite unité de traitement ou téléchargeable d'un site distant, caractérisé en ce qu'il comporte des instructions pour la mise en œuvre de tout ou partie des étapes du procédé selon l'une des revendications 1 à 24.
PCT/FR2006/000038 2005-01-11 2006-01-09 Procede et dispositif de codage optimise entre deux modeles de prediction a long terme WO2006075078A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US11/795,085 US8670982B2 (en) 2005-01-11 2006-01-09 Method and device for carrying out optimal coding between two long-term prediction models
AT06709052T ATE515019T1 (de) 2005-01-11 2006-01-09 Verfahren und vorrichtung zur ausführung einer optimalizierten audiokodierung zwischen zwei langzeitvorhersagemodellen
EP06709052A EP1836699B1 (fr) 2005-01-11 2006-01-09 Procédé et dispositif de codage audio optimisé entre deux modèles de prediction à long terme
CN200680003179XA CN101124625B (zh) 2005-01-11 2006-01-09 实现介于两种长时预测模型之间最优编码的方法和装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0500272A FR2880724A1 (fr) 2005-01-11 2005-01-11 Procede et dispositif de codage optimise entre deux modeles de prediction a long terme
FR0500272 2005-01-11

Publications (1)

Publication Number Publication Date
WO2006075078A1 true WO2006075078A1 (fr) 2006-07-20

Family

ID=34954835

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2006/000038 WO2006075078A1 (fr) 2005-01-11 2006-01-09 Procede et dispositif de codage optimise entre deux modeles de prediction a long terme

Country Status (6)

Country Link
US (1) US8670982B2 (fr)
EP (1) EP1836699B1 (fr)
CN (1) CN101124625B (fr)
AT (1) ATE515019T1 (fr)
FR (1) FR2880724A1 (fr)
WO (1) WO2006075078A1 (fr)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2839969B1 (fr) 2002-05-27 2005-04-01 Jean Couturier Liant hydraulique resultant du melange d'un liant sulfatique et d'un liant a caractere pouzzolanique
US7912700B2 (en) * 2007-02-08 2011-03-22 Microsoft Corporation Context based word prediction
US7809719B2 (en) * 2007-02-08 2010-10-05 Microsoft Corporation Predicting textual candidates
US8521520B2 (en) * 2010-02-03 2013-08-27 General Electric Company Handoffs between different voice encoder systems
CN103138874B (zh) * 2011-11-23 2016-07-06 中国移动通信集团公司 一种编解码动态协商方法及设备
US9406307B2 (en) * 2012-08-19 2016-08-02 The Regents Of The University Of California Method and apparatus for polyphonic audio signal prediction in coding and networking systems
US9830920B2 (en) 2012-08-19 2017-11-28 The Regents Of The University Of California Method and apparatus for polyphonic audio signal prediction in coding and networking systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003058407A2 (fr) * 2002-01-08 2003-07-17 Dilithium Networks Pty Limited Procede et systeme de transcodage entre des codes de la parole de type celp
WO2005066936A1 (fr) * 2003-12-10 2005-07-21 France Telecom Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6260009B1 (en) * 1999-02-12 2001-07-10 Qualcomm Incorporated CELP-based to CELP-based vocoder packet translation
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
JP2002202799A (ja) * 2000-10-30 2002-07-19 Fujitsu Ltd 音声符号変換装置
JP2002229599A (ja) * 2001-02-02 2002-08-16 Nec Corp 音声符号列の変換装置および変換方法
JP4231987B2 (ja) * 2001-06-15 2009-03-04 日本電気株式会社 音声符号化復号方式間の符号変換方法、その装置、そのプログラム及び記憶媒体
US6829579B2 (en) * 2002-01-08 2004-12-07 Dilithium Networks, Inc. Transcoding method and system between CELP-based speech codes
JP4263412B2 (ja) * 2002-01-29 2009-05-13 富士通株式会社 音声符号変換方法
CA2388439A1 (fr) * 2002-05-31 2003-11-30 Voiceage Corporation Methode et dispositif de dissimulation d'effacement de cadres dans des codecs de la parole a prevision lineaire
US20040057521A1 (en) * 2002-07-17 2004-03-25 Macchina Pty Ltd. Method and apparatus for transcoding between hybrid video CODEC bitstreams
US7519532B2 (en) * 2003-09-29 2009-04-14 Texas Instruments Incorporated Transcoding EVRC to G.729ab
US7792670B2 (en) * 2003-12-19 2010-09-07 Motorola, Inc. Method and apparatus for speech coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003058407A2 (fr) * 2002-01-08 2003-07-17 Dilithium Networks Pty Limited Procede et systeme de transcodage entre des codes de la parole de type celp
WO2005066936A1 (fr) * 2003-12-10 2005-07-21 France Telecom Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GHENANIA M ET AL: "TRANSCODAGE INTELLIGENT A FAIBLE COMPLEXITE EXTRE LES CODEURS UIT-T G.729 ET 3GPP NB-AMR (12.2 KBIT/S)", CORESA. COMPRESSION ET REPRESENTATION DES SIGNAUX AUDIOVISUELS, 25 May 2004 (2004-05-25), pages 85 - 88, XP001199662 *
JIN-KYU CHOI ET AL: "Improvement issues on transcoding algorithms: for the flexible usage to the various pairs of speech codec", 2004 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, vol. 1, 17 May 2004 (2004-05-17) - 21 May 2004 (2004-05-21), MONTREAL, QUE., CANADA, pages 269 - 272, XP002345813, ISBN: 0-7803-8484-9 *

Also Published As

Publication number Publication date
US8670982B2 (en) 2014-03-11
EP1836699A1 (fr) 2007-09-26
CN101124625B (zh) 2012-02-29
US20080306732A1 (en) 2008-12-11
CN101124625A (zh) 2008-02-13
EP1836699B1 (fr) 2011-06-29
ATE515019T1 (de) 2011-07-15
FR2880724A1 (fr) 2006-07-14

Similar Documents

Publication Publication Date Title
EP1692689B1 (fr) Procede de codage multiple optimise
EP2277172B1 (fr) Dissimulation d&#39;erreur de transmission dans un signal audionumerique dans une structure de decodage hierarchique
EP0749626B1 (fr) Procede de codage de parole a prediction lineaire et excitation par codes algebriques
EP1994531B1 (fr) Codage ou decodage perfectionnes d&#39;un signal audionumerique, en technique celp
JP3134817B2 (ja) 音声符号化復号装置
EP1836699B1 (fr) Procédé et dispositif de codage audio optimisé entre deux modèles de prediction à long terme
EP1692687B1 (fr) Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques
EP3161659A1 (fr) Ré-échantillonnage par interpolation d&#39;un signal audio pour un codage /décodage à bas retard
EP2727107A1 (fr) Fenêtres de pondération en codage/décodage par transformée avec recouvrement, optimisées en retard
EP2795618B1 (fr) Procédé de détection d&#39;une bande de fréquence prédéterminée dans un signal de données audio, dispositif de détection et programme d&#39;ordinateur correspondant
EP0428445B1 (fr) Procédé et dispositif de codage de filtres prédicteurs de vocodeurs très bas débit
EP2080194B1 (fr) Attenuation du survoisement, notamment pour la generation d&#39;une excitation aupres d&#39;un decodeur, en absence d&#39;information
WO1998047134A1 (fr) Procede et dispositif de codage d&#39;un signal audiofrequence par analyse lpc &#39;avant&#39; et &#39;arriere&#39;
EP1875465A1 (fr) Procede d&#39;adaptation pour une interoperabilite entre modeles de correlation a cout terme de signaux numeriques
CA2300647A1 (fr) Procedes de codage, de decodage et de transcodage audio
EP1197952B1 (fr) Procédé de codage de la prosodie pour un codeur de parole à très bas débit
EP0616315A1 (fr) Dispositif de codage et de décodage numérique de la parole, procédé d&#39;exploration d&#39;un dictionnaire pseudo-logarithmique de délais LTP, et procédé d&#39;analyse LTP
EP2589045B1 (fr) Codage/décodage prédictif linéaire adaptatif
WO2023165946A1 (fr) Codage et décodage optimisé d&#39;un signal audio utilisant un auto-encodeur à base de réseau de neurones
FR2980620A1 (fr) Traitement d&#39;amelioration de la qualite des signaux audiofrequences decodes

Legal Events

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

Ref document number: 2006709052

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 200680003179.X

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2006709052

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11795085

Country of ref document: US